diff --git a/.github/workflows/chromatic.yml b/.github/workflows/chromatic.yml new file mode 100644 index 0000000000..e5e032fc0e --- /dev/null +++ b/.github/workflows/chromatic.yml @@ -0,0 +1,22 @@ +name: "Chromatic" + +on: push + +jobs: + chromatic: + name: Run Chromatic + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v4 + with: + fetch-depth: 0 + - uses: actions/setup-node@v4 + with: + node-version: 22.14.0 + - name: Install pnpm + run: npm install -g pnpm + - name: Install dependencies + run: pnpm install + - name: Run Chromatic + uses: chromaui/action@latest diff --git a/.storybook/main.js b/.storybook/main.js index ae29e8e31d..01fa8074c2 100644 --- a/.storybook/main.js +++ b/.storybook/main.js @@ -1,4 +1,4 @@ -import { dirname, join } from 'node:path' +const { dirname, join } = require('node:path') module.exports = { stories: ['../packages/**/*.stories.@(js|jsx|ts|tsx)'], diff --git a/biome.json b/biome.json index d93b40ad67..a07f82107a 100644 --- a/biome.json +++ b/biome.json @@ -52,7 +52,7 @@ "noRedeclare": "off" }, "correctness": { - "useExhaustiveDependencies": "off", + "useExhaustiveDependencies": "warn", "noUnusedImports": "error" } } diff --git a/chromatic.config.json b/chromatic.config.json new file mode 100644 index 0000000000..97835109ae --- /dev/null +++ b/chromatic.config.json @@ -0,0 +1,7 @@ +{ + "onlyChanged": true, + "projectId": "Project:67dafea9025400b3251fa8ef", + "projectToken": "chpt_242dc59fcdeb02b", + "zip": true, + "buildScriptName": "build:storybook" +} diff --git a/package.json b/package.json index 417476cc5f..a4b05cc8e1 100644 --- a/package.json +++ b/package.json @@ -40,29 +40,29 @@ }, "devDependencies": { "@biomejs/biome": "1.9.4", - "@chromatic-com/storybook": "^1", + "@chromatic-com/storybook": "^3.2.6", "@commitlint/cli": "^9.1.2", "@commitlint/config-conventional": "^9.1.2", "@commitlint/prompt": "^9.1.2", - "@playwright/test": "^1.43.0", - "@storybook/addon-a11y": "^8.3.6", - "@storybook/addon-actions": "^8.3.6", - "@storybook/addon-essentials": "^8.3.6", - "@storybook/addon-interactions": "^8.3.6", - "@storybook/addon-links": "^8.3.6", - "@storybook/addon-storysource": "^8.3.6", - "@storybook/react": "^8.3.6", - "@storybook/react-vite": "^8.3.6", - "@storybook/react-webpack5": "^8.3.6", + "@playwright/test": "^1.51.1", + "@storybook/addon-a11y": "^8.6.7", + "@storybook/addon-actions": "^8.6.7", + "@storybook/addon-essentials": "^8.6.7", + "@storybook/addon-interactions": "^8.6.7", + "@storybook/addon-links": "^8.6.7", + "@storybook/addon-storysource": "^8.6.7", + "@storybook/react": "^8.6.7", + "@storybook/react-vite": "^8.6.7", + "@storybook/react-webpack5": "^8.6.7", "@storybook/test-runner": "^0.17.0", - "@storybook/theming": "^8.3.6", + "@storybook/theming": "^8.6.7", "@types/node": "20.14.9", "@types/react": "18.3.11", "@types/react-dom": "18.3.1", "@vitejs/plugin-react": "4.1.0", "@vtex/shoreline-test-utils": "workspace:*", - "chromatic": "^9.1.0", - "commitizen": "^4.2.0", + "chromatic": "^11.27.0", + "commitizen": "^4.3.1", "concurrently": "^8.2.2", "http-server": "^14.1.1", "husky": "^8.0.3", @@ -75,7 +75,7 @@ "react": "18.3.1", "react-dom": "18.3.1", "react-test-renderer": "18.3.1", - "storybook": "^8.3.6", + "storybook": "^8.6.7", "tslib": "2.6.3", "tsup": "8.1.0", "turbo": "2.2.3", @@ -93,7 +93,7 @@ } }, "dependencies": { - "@storybook/test": "^8.3.6", - "dotenv": "^16.4.5" + "@storybook/test": "^8.6.7", + "dotenv": "^16.4.7" } } diff --git a/packages/charts/README.md b/packages/charts/README.md new file mode 100644 index 0000000000..72a32395d7 --- /dev/null +++ b/packages/charts/README.md @@ -0,0 +1,25 @@ +# 🌊📊 Shoreline Charts + +[Shoreline](https://github.com/vtex/shoreline/tree/main)'s data visualization library, featuring a standard set of charts and their variants, built with Apache Echarts. + +Screenshot_21-Aug_18-02-39_google-chrome + + + +## Install and build +`shoreline-components` and `echarts` are peer dependencies of `shoreline-charts` +```sh +pnpm add @vtex/shoreline echarts @vtex/shoreline-charts +``` +## Run +``` sh +pnpm test # [*] runs all tests from all components at once +pnpm clean # [*] useful if you want to clean all packages at once - since they are linked, sometimes a rebase not followed by a fresh reinstall can cause some issues +pnpm dev:storybook # [components package] runs its storybook alongside the styles package +pnpm dev:docs # [docs package] runs the docs website +``` + +## Contribute to this repo + +Pull requests are welcome, please check our +[development guideline](https://shoreline.vtex.com/guides/code/development-guideline)! diff --git a/packages/charts/package.json b/packages/charts/package.json new file mode 100644 index 0000000000..e40e115b25 --- /dev/null +++ b/packages/charts/package.json @@ -0,0 +1,56 @@ +{ + "name": "@vtex/shoreline-charts", + "description": "Shoreline datavis library", + "version": "0.0.0", + "main": "./dist/index.js", + "module": "./dist/index.mjs", + "types": "./dist/index.d.ts", + "publishConfig": { + "access": "public", + "registry": "https://registry.npmjs.org" + }, + "files": [ + "dist" + ], + "exports": { + ".": { + "require": "./dist/index.js", + "import": "./dist/index.mjs", + "types": "./dist/index.d.ts" + }, + "./css": "./dist/index.css" + }, + "engines": { + "node": ">=16" + }, + "scripts": { + "prebuild": "rm -rf dist", + "dev": "tsup --watch", + "build": "tsup" + }, + "repository": { + "directory": "packages/charts", + "type": "git", + "url": "git+https://github.com/vtex/shoreline.git" + }, + "bugs": { + "url": "https://github.com/vtex/shoreline/issues" + }, + "peerDependencies": { + "@vtex/shoreline": "1.x", + "echarts": "6.x", + "react": "18.x", + "react-dom": "18.x" + }, + "devDependencies": { + "@types/lodash.clonedeep": "^4.5.9", + "@vtex/shoreline": "workspace:*" + }, + "dependencies": { + "@vtex/shoreline-utils": "workspace:*", + "echarts": "^6.0.0", + "echarts-for-react": "^3.0.4", + "lodash.clonedeep": "^4.5.0", + "vitest-canvas-mock": "^0.3.3" + } +} diff --git a/packages/charts/src/benchmarks/__fixtures__/chartData.ts b/packages/charts/src/benchmarks/__fixtures__/chartData.ts new file mode 100644 index 0000000000..6c21c084ee --- /dev/null +++ b/packages/charts/src/benchmarks/__fixtures__/chartData.ts @@ -0,0 +1,52 @@ +export const BAR_CHART_DATA = { + xAxis: { + weekdays: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'], + }, + series: { + dayNumbers: [1, 2, 3, 4, 5, 6, 7], + }, +} + +const dayNumbers_100thousand = [] +const numbers_50thousand = [] +const dayNumbers_30thousand = [] +const dayNumbers_20thousand = [] +const dayNumbers_10thousand = [] +const numbers_5thousand = [] +const numbers_4thousand = [] +const numbers_1thousand = [] + +for (let i = 0; i < 100_000; i++) { + dayNumbers_100thousand.push(i) + if (i <= 1000) numbers_1thousand.push(i) + if (i <= 4_000) numbers_4thousand.push(i) + if (i <= 5_000) numbers_5thousand.push(i) + if (i <= 10_000) dayNumbers_10thousand.push(i) + if (i <= 20_000) dayNumbers_20thousand.push(i) + if (i <= 30_000) dayNumbers_30thousand.push(i) + if (i <= 50_000) numbers_50thousand.push(i) +} + +export const CHART_DATA = { + xAxis: { + weekdays: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'], + }, + series: { + dayNumbers: [1, 2, 3, 4, 5, 6, 7], + dayNumbers_100thousand: dayNumbers_100thousand, + dayNumbers_50thousand: numbers_50thousand, + dayNumbers_30thousand: dayNumbers_30thousand, + dayNumbers_20thousand: dayNumbers_20thousand, + dayNumbers_10thousand: dayNumbers_10thousand, + dayNumbers_5thousand: numbers_5thousand, + dayNumbers_1thousand: numbers_1thousand, + }, +} + +export const CHART_COMPOSITOR_DATA = { + data1: [1, 2, 3, 4, 5], + data2: [1, 3, 2, 5, 4], + data4_thousand: numbers_4thousand, + data5_thousand: numbers_5thousand, + data50_thousand: numbers_50thousand, +} diff --git a/packages/charts/src/benchmarks/barChart.bench.tsx b/packages/charts/src/benchmarks/barChart.bench.tsx new file mode 100644 index 0000000000..fc8e0af65b --- /dev/null +++ b/packages/charts/src/benchmarks/barChart.bench.tsx @@ -0,0 +1,66 @@ +import { beforeAll, bench } from 'vitest' +import { Chart } from '../components/chart' +import { render } from '@vtex/shoreline-test-utils' +import { CHART_DATA } from './__fixtures__/chartData' + +beforeAll(() => { + Object.defineProperty(HTMLElement.prototype, 'clientWidth', { + configurable: true, + value: 300, + }) + Object.defineProperty(HTMLElement.prototype, 'clientHeight', { + configurable: true, + value: 200, + }) +}) + +bench( + 'renders bar chart with 1 thousand points', + async () => { + const { unmount } = render( + + ) + unmount() + }, + { iterations: 300 } +) + +bench( + 'renders bar chart with 5 thousand points', + async () => { + const { unmount } = render( + + ) + unmount() + }, + { iterations: 300 } +) + +bench( + 'renders bar chart with 10 thousand points', + async () => { + const { unmount } = render( + + ) + unmount() + }, + { iterations: 300 } +) diff --git a/packages/charts/src/benchmarks/chartCompositor.bench.tsx b/packages/charts/src/benchmarks/chartCompositor.bench.tsx new file mode 100644 index 0000000000..d2e5c8bfac --- /dev/null +++ b/packages/charts/src/benchmarks/chartCompositor.bench.tsx @@ -0,0 +1,84 @@ +import { beforeAll, bench } from 'vitest' +import { render } from '@vtex/shoreline-test-utils' +import { CHART_DATA } from './__fixtures__/chartData' +import { ChartCompositor } from '../components' + +beforeAll(() => { + Object.defineProperty(HTMLElement.prototype, 'clientWidth', { + configurable: true, + value: 300, + }) + Object.defineProperty(HTMLElement.prototype, 'clientHeight', { + configurable: true, + value: 200, + }) +}) + +bench( + 'renders a chart compositor of bar and line chart both with 1 thousand points', + async () => { + const { unmount } = render( + + ) + unmount() + }, + { iterations: 300 } +) + +bench( + 'renders a chart compositor of bar and line chart both with 5 thousand points', + async () => { + const { unmount } = render( + + ) + unmount() + }, + { iterations: 300 } +) + +bench( + 'renders a chart compositor of bar and line chart both with 10 thousand points', + async () => { + const { unmount } = render( + + ) + unmount() + }, + { iterations: 300 } +) diff --git a/packages/charts/src/benchmarks/lineChart.bench.tsx b/packages/charts/src/benchmarks/lineChart.bench.tsx new file mode 100644 index 0000000000..18e5627798 --- /dev/null +++ b/packages/charts/src/benchmarks/lineChart.bench.tsx @@ -0,0 +1,117 @@ +import { beforeAll, bench } from 'vitest' +import { Chart } from '../components/chart' +import { render } from '@vtex/shoreline-test-utils' +import { CHART_DATA } from './__fixtures__/chartData' + +beforeAll(() => { + Object.defineProperty(HTMLElement.prototype, 'clientWidth', { + configurable: true, + value: 300, + }) + Object.defineProperty(HTMLElement.prototype, 'clientHeight', { + configurable: true, + value: 200, + }) +}) + +bench( + 'renders line chart with 1 thousand points', + async () => { + const { unmount } = render( + + ) + unmount() + }, + { iterations: 300 } +) + +bench( + 'renders line chart with 5 thousand points', + async () => { + const { unmount } = render( + + ) + unmount() + }, + { iterations: 300 } +) + +bench( + 'renders line chart with 10 thousand points', + async () => { + const { unmount } = render( + + ) + unmount() + }, + { iterations: 300 } +) + +bench( + 'renders line chart with 30 thousand points', + async () => { + const { unmount } = render( + + ) + unmount() + }, + { iterations: 300 } +) + +bench( + 'renders line chart with 50 thousand points', + async () => { + const { unmount } = render( + + ) + unmount() + }, + { iterations: 300 } +) + +bench( + 'renders line chart with 100 thousand points', + async () => { + const { unmount } = render( + + ) + unmount() + }, + { iterations: 300 } +) diff --git a/packages/charts/src/benchmarks/scatterChart.bench.tsx b/packages/charts/src/benchmarks/scatterChart.bench.tsx new file mode 100644 index 0000000000..cddccec8e5 --- /dev/null +++ b/packages/charts/src/benchmarks/scatterChart.bench.tsx @@ -0,0 +1,117 @@ +import { beforeAll, bench } from 'vitest' +import { Chart } from '../components/chart' +import { render } from '@vtex/shoreline-test-utils' +import { CHART_DATA } from './__fixtures__/chartData' + +beforeAll(() => { + Object.defineProperty(HTMLElement.prototype, 'clientWidth', { + configurable: true, + value: 300, + }) + Object.defineProperty(HTMLElement.prototype, 'clientHeight', { + configurable: true, + value: 200, + }) +}) + +bench( + 'renders scatter chart with 1 thousand points', + async () => { + const { unmount } = render( + + ) + unmount() + }, + { iterations: 300 } +) + +bench( + 'renders scatter chart with 5 thousand points', + async () => { + const { unmount } = render( + + ) + unmount() + }, + { iterations: 300 } +) + +bench( + 'renders scatter chart with 10 thousand points', + async () => { + const { unmount } = render( + + ) + unmount() + }, + { iterations: 300 } +) + +bench( + 'renders scatter chart with 30 thousand points', + async () => { + const { unmount } = render( + + ) + unmount() + }, + { iterations: 300 } +) + +bench( + 'renders scatter chart with 50 thousand points', + async () => { + const { unmount } = render( + + ) + unmount() + }, + { iterations: 300 } +) + +bench( + 'renders scatter chart with 100 thousand points', + async () => { + const { unmount } = render( + + ) + unmount() + }, + { iterations: 300 } +) diff --git a/packages/charts/src/components/chart-compositor/chart-compositor.tsx b/packages/charts/src/components/chart-compositor/chart-compositor.tsx new file mode 100644 index 0000000000..da5cb8bdd0 --- /dev/null +++ b/packages/charts/src/components/chart-compositor/chart-compositor.tsx @@ -0,0 +1,157 @@ +import type { EChartsOption } from 'echarts' +import { type ComponentPropsWithRef, forwardRef, useMemo } from 'react' +import type { BarChartConfig, ChartConfig, ChartUnit } from '../../types/chart' +import { Chart, type ChartOptions } from '../chart/chart' +import { + checkValidVariant, + getDataToChartCompositor, + getDefaultByType, + getTooltipChartCompositor, + setBarGap, +} from '../../utils/chart' +import { merge } from '@vtex/shoreline-utils' +import { GRID_DEFAULT_STYLE } from '../../theme/chartStyles' +import type EChartsReact from 'echarts-for-react' +import { hooksCompositorAdapter } from '../../utils/hooks' +import cloneDeep from 'lodash.clonedeep' +import { chartCompositorDefaultHooks } from '../../utils/defaultHooks' + +/** + * Used to make charts with multiple different types. + * @status stable + * @example + * + */ +export const ChartCompositor = forwardRef< + EChartsReact | undefined, + ChartCompositorProps +>((props, ref) => { + const { + charts, + xAxis = { type: 'category' }, + yAxis = { type: 'value' }, + title, + tooltip, + option, + style, + loading, + ...otherProps + } = props + + const hookedUnits: ChartUnit[] = useMemo(() => { + const chartsIn = cloneDeep(charts) + + let gap: BarChartConfig['gap'] + chartsIn.forEach((c) => { + if (c.chartConfig.type === 'bar') { + // We assume the last gap defined is the correct one, though it doesn't make sense + // to set multiple different gap values. + gap = c.chartConfig.gap ? c.chartConfig.gap : gap + // we need to set series type to 'bar' since by this point in the pipeline it + // hasn't been filled in yet, and setBarGap needs it to be. + c.series.type = 'bar' + } + }) + + setBarGap( + chartsIn.map((c) => c.series), + gap + ) + + return chartsIn.map((chartIn) => { + if (chartIn.hooks === null) { + return chartIn + } + + const chart = cloneDeep(chartIn) + const { type, variant } = chart.chartConfig + const checkedVariant = + variant && checkValidVariant(type, variant) + ? variant + : getDefaultByType(type) + + const seriesHooks: ((option: EChartsOption) => EChartsOption)[] = + chartCompositorDefaultHooks[type][checkedVariant] + seriesHooks.push(...(chart.hooks ?? [])) + + chart.series = seriesHooks.reduce( + (out, fn) => hooksCompositorAdapter(out, fn), + chart.series + ) + + return chart + }) + }, [charts]) + + const seriesOptions: EChartsOption['series'] = useMemo(() => { + return hookedUnits.map(getDataToChartCompositor) + }, [hookedUnits]) + + const tooltipOptions: EChartsOption['tooltip'] = useMemo(() => { + return getTooltipChartCompositor(tooltip) + }, [tooltip]) + + const chartOptions: EChartsOption = useMemo(() => { + const finalOptions: EChartsOption = {} + + if (loading) return { xAxis: xAxis, yAxis: yAxis } + + if (option) { + finalOptions.grid = option.grid ? option.grid : GRID_DEFAULT_STYLE + } else { + finalOptions.grid = GRID_DEFAULT_STYLE + } + + finalOptions.series = cloneDeep(seriesOptions) + finalOptions.tooltip = cloneDeep(tooltipOptions) + finalOptions.yAxis = cloneDeep(yAxis) + finalOptions.xAxis = cloneDeep(xAxis) + finalOptions.title = cloneDeep(title) + + return option ? merge(option, finalOptions) : finalOptions + }, [xAxis, yAxis, option, tooltipOptions, title, seriesOptions, loading]) + + return ( + + ) +}) + +export interface ChartCompositorOptions { + /** + * The data that will be rendered by the Compostior. Each unit contains + * a SeriesOption from Echarts, the ChartConfig which determines the type of chart and, optionally, + * an array of hook functions that will be applied to that series data. These are the same as + * `Chart.optionHooks` except that they can only effect the series of each chart unit. + * + * By default certain hooks will always be applied to certain chart types. + * This behaviour can be disabled by explicitly passing **null** to hooks. + * @example { series: { data: [1,2,3] }, config: { type: "bar", variant: "horizontal" } } + */ + charts: ChartUnit[] + /** + * Defines which type of tooltip is going to be used by the chart. + * @example { type: "bar", variant: "horizontal" } + */ + tooltip: ChartConfig +} + +export type ChartCompositorProps = ChartCompositorOptions & + Omit, 'title'> & + Omit diff --git a/packages/charts/src/components/chart-compositor/index.ts b/packages/charts/src/components/chart-compositor/index.ts new file mode 100644 index 0000000000..0d5177d6a4 --- /dev/null +++ b/packages/charts/src/components/chart-compositor/index.ts @@ -0,0 +1 @@ +export * from './chart-compositor' diff --git a/packages/charts/src/components/chart-skeleton/chart-skeleton.tsx b/packages/charts/src/components/chart-skeleton/chart-skeleton.tsx new file mode 100644 index 0000000000..0e27a85ed4 --- /dev/null +++ b/packages/charts/src/components/chart-skeleton/chart-skeleton.tsx @@ -0,0 +1,97 @@ +import { Flex, Skeleton, Spinner } from '@vtex/shoreline' +import { forwardRef } from 'react' +import type { ComponentPropsWithoutRef } from 'react' +import '../../theme/components/chartSkeleton.css' + +/** + * Chart skeleton used while loading data. + */ +export const ChartSkeleton = forwardRef( + (props, ref) => { + const { height, width, numLines = 6, numColumns = 7, style } = props + + return ( + + + + + {Array.from({ length: numLines - 1 }).map((_, index) => ( + + ))} + {numLines <= 0 ? null : } + + + + {Array.from({ length: numColumns }).map((_, index) => ( + + ))} + + + ) + } +) + +export type ChartSkeletonProps = { + height?: string | number + width?: string | number + /** + * How many vertical lines there should be. + */ + numLines?: number + /** + * How many categories there are under the X axis. + */ + numColumns?: number +} & ComponentPropsWithoutRef<'div'> + +/** + * One of the `numLines` lines in the chart. Composed of the line itself and the skeleton of the + * Y axis number to it's left. + */ +function ChartSkeletonLine(props: { isXAxisLine?: boolean }) { + const { isXAxisLine } = props + + return ( + + + +
+ + ) +} + +/** + * Represents a value in the Y axis. + */ +function ChartSkeletonXAxisBox() { + return ( + + ) +} diff --git a/packages/charts/src/components/chart-skeleton/index.ts b/packages/charts/src/components/chart-skeleton/index.ts new file mode 100644 index 0000000000..2b1e2c1421 --- /dev/null +++ b/packages/charts/src/components/chart-skeleton/index.ts @@ -0,0 +1 @@ +export * from './chart-skeleton' diff --git a/packages/charts/src/components/chart/chart.tsx b/packages/charts/src/components/chart/chart.tsx new file mode 100644 index 0000000000..89674457b1 --- /dev/null +++ b/packages/charts/src/components/chart/chart.tsx @@ -0,0 +1,387 @@ +import { + useRef, + useMemo, + forwardRef, + useCallback, + type ComponentPropsWithRef, + useEffect, +} from 'react' +import type { EChartsOption, SeriesOption } from 'echarts' +import ReactECharts from 'echarts-for-react' +import * as echarts from 'echarts' +import './locales' +import { defaultTheme } from '../../theme/themes' +import type { ChartConfig } from '../../types/chart' +import { + checkValidVariant, + getChartOptions, + getDefaultByType, +} from '../../utils/chart' +import { canUseDOM, useMergeRef } from '@vtex/shoreline-utils' +import { LEGEND_DEFAULT_STYLE } from '../../theme/chartStyles' +import { formatTimeAxis } from '../../utils/hooks' +import { + toggleSerie, + turnOffSerie, + turnOnAllSeries, + turnOnSerie, +} from '../../utils/legend' +import { + Legend, + type LegendHandle, + type LegendAction, + handleHooks, +} from '../legend' + +import '../../theme/components/chart.css' +import { ChartSkeleton } from '../chart-skeleton/chart-skeleton' +import { chartsDefaultHooks } from '../../utils/defaultHooks' +import { Flex } from '@vtex/shoreline' +import type { Locale } from './locales' +import cloneDeep from 'lodash.clonedeep' + +/** + * Render a Shoreline Chart with Echarts. Mixes user options with defaults determined by chart type. + * @see https://echarts.apache.org/en/index.html + * @example + * + */ +export const Chart = forwardRef( + (props, ref) => { + const { + series, + xAxis = {}, + yAxis = {}, + title, + option, + loading = false, + loadingOptions, + chartConfig, + style, + renderer = 'svg', + locale = 'en', + theme = defaultTheme, + optionHooks = [], + onEvents, + zoom, + checkboxLegend = true, + group, + ...otherProps + } = props + + const chartRef = useRef(null) + const legendRef = useRef(null) + + const hooks: ((series: EChartsOption) => EChartsOption)[] = useMemo(() => { + if (optionHooks === null || chartConfig === null) { + return [] + } + + const { type, variant } = chartConfig + const checkedVariant = + variant && checkValidVariant(type, variant) + ? variant + : getDefaultByType(type) + + const hooks: any[] = [] + + if (!Array.isArray(xAxis) && xAxis.type === 'time') { + hooks.push(formatTimeAxis(locale)) + } + + hooks.push(...chartsDefaultHooks[type][checkedVariant]) + hooks.push(...optionHooks) + + return hooks + }, [chartConfig, optionHooks, xAxis, locale]) + + const finalOptions: EChartsOption = useMemo(() => { + console.log(typeof cloneDeep) + const wholeOption = cloneDeep(option) ?? {} + wholeOption.series = cloneDeep(series) + wholeOption.xAxis = cloneDeep(xAxis) + wholeOption.yAxis = cloneDeep(yAxis) + wholeOption.title = cloneDeep(title) + + if (checkboxLegend) { + wholeOption.legend = LEGEND_DEFAULT_STYLE + // the legend echarts component must exist for + // ours to work, but it can't be visible + } + + if (chartConfig === null) { + return wholeOption + } + + const hookedOptions = hooks.reduce((opt, fn) => fn(opt), wholeOption) + const options = getChartOptions(hookedOptions, chartConfig) || wholeOption + + return options + }, [ + option, + checkboxLegend, + chartConfig, + series, + xAxis, + yAxis, + title, + hooks.reduce, + ]) + + const checkBoxLegend = useCallback( + (params: any) => { + if (!chartRef.current) return + + const chart = chartRef.current.getEchartsInstance() + const series = finalOptions.series as SeriesOption[] + const action = params.name as LegendAction + + switch (action.type) { + case 'selectAll': + turnOnAllSeries( + chart, + series.map((serie) => String(serie.name)) + ) + + break + + case 'exclusive': + series.forEach((s, index) => { + if (index === action.index) turnOnSerie(chart, String(s.name)) + else turnOffSerie(chart, String(s.name)) + }) + + break + + case 'toggle': + if (action.index < series.length) { + toggleSerie(chart, String(series[action.index].name)) + } + + break + + default: + action.type satisfies never + } + + chart.setOption(handleHooks(chartConfig, finalOptions, action)) + + if (action.chartId !== chart.getId() && legendRef.current) { + legendRef.current.setState(action.index, action.type) + } + }, + [finalOptions, chartConfig] + ) + + const connectGroups = useCallback( + (_params?: any) => { + if (!group || !chartRef.current) return + + const chart = chartRef.current.getEchartsInstance() + + chart.group = group + + echarts.connect(group) + }, + [group] + ) + + const handleResize = useCallback(() => { + if (chartRef.current) { + chartRef.current.getEchartsInstance().resize() + } + }, []) + + const onRendered = useCallback( + (_params: any) => { + connectGroups() + }, + [connectGroups] + ) + + useEffect(() => { + if (!canUseDOM) return + + window.addEventListener('resize', handleResize) + + return () => { + window.removeEventListener('resize', handleResize) + } + }, [handleResize]) + + const memoEvents = useMemo(() => { + return { + legendselectchanged: checkBoxLegend, + rendered: onRendered, + } + }, [checkBoxLegend, onRendered]) + + const eventsAdapter = useMemo(() => { + const defaultKeys = Object.keys(memoEvents) + + if (!onEvents) return memoEvents + + const newEvents = { ...memoEvents, ...onEvents } + + // for each key in the memoEvents object, if it exists in the onEvents object + // compose the functions, call both of them + for (let i = 0; i < defaultKeys.length; i++) { + if (onEvents[defaultKeys[i]]) { + newEvents[defaultKeys[i]] = (params: any) => { + memoEvents[defaultKeys[i]](params) + onEvents[defaultKeys[i]](params) + } + } + } + + return newEvents + }, [onEvents, memoEvents]) + + const mergedRef = useMergeRef(ref, chartRef) + + return loading ? ( + + ) : ( + + + {checkboxLegend ? ( + + ) : null} + + ) + } +) + +export interface ChartOptions { + /** + * Echarts Series Options, where you put the data for the chart. + * @example series={[{ data: [1, 2, 3], name: 'Series 1' }, { data: [4, 5, 6], name: 'Series 2' }]} + */ + series: SeriesOption | SeriesOption[] + /** + * Configs containing **type** of chart and its **variants**, each variant is a pre-defined chart style for each type. + * + * **null** means that nothing will be done to the options, and the chart will be rendered as-is. + * @example { type:"line", variant: "default" } + */ + chartConfig: ChartConfig | null + /** + * Defines the look and data of the X axis. Generally you will need to pass the name of the labels + * if this is the categorical axis (which is the default for most charts). + * + * For a _time_ or _value_ axis,`data` should be ommited. + * @example xAxis={{ data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] }} + */ + xAxis?: EChartsOption['xAxis'] + /** + * Defines the look and data of the Y axis. Generally you won't need to fill this out, + * if this is the value axis (which is the default for most charts). + */ + yAxis?: EChartsOption['yAxis'] + /** + * Defines the title, as well as its position and style. + */ + title?: EChartsOption['title'] + /** + * Echarts options for the chart, see [docs](https://echarts.apache.org/en/option.html#title). + * + * Series and axis options should be set with the other props, + * this one is meant to be used for other things, like enabling toolbox features. + */ + option?: EChartsOption + /** + * Functions that will be run on the option object **before** the default styles are applied, in addition to any default hooks that may be applied per chart type. + * + * These functions should receive an **EchartsOption** and return the same. + * + * If set to null no default hooks will be applied. + */ + optionHooks?: ((series: EChartsOption) => EChartsOption)[] | null + /** + * Whether to enable zoom and the zoom bar, which will also make the chart slightly smaller to fit the bar. + */ + zoom?: boolean + /** + * Whether to use the custom Shoreline checkbox legend. Setting to false fallbacks to the default Echarts legend. + */ + checkboxLegend?: boolean + /** + * Defines the group that the chart will be part of. Charts in the same group share many features among them. + * These features include: sharing the tooltip and sharing the same legend. + * + * See [echarts docs](https://echarts.apache.org/en/api.html#echarts.connect). + */ + group?: string + /** + * Whether to render the chart as a SVG or Canvas. Both are about equally as fast, + * but SVGs can scale to any size. + * + * Canvas is required if the chart is meant to be downloaded as a png or jpg, as SVG-rendered charts can only be exported as SVG. + * @default svg + */ + renderer?: 'svg' | 'canvas' + /** + * Set the locale used to format dates. + * @default en + */ + locale?: Locale + /** + * Overrides default shoreline theme. + * @default defaultTheme + */ + theme?: Record | string + /** + * Wether is loading. + * @default false + */ + loading?: boolean + /** + * How many horizontal lines and columns the chart skeleton will have while the chart loads. + * + */ + loadingOptions?: { numLines?: number; numColumns?: number } + /** + * Binds callback functions to certain events, see [docs](https://echarts.apache.org/en/api.html#events) + * for a complete list of available events and their parameters. + */ + onEvents?: Record +} + +export type ChartProps = ChartOptions & + Omit, 'title'> diff --git a/packages/charts/src/components/chart/index.ts b/packages/charts/src/components/chart/index.ts new file mode 100644 index 0000000000..57f27f47ca --- /dev/null +++ b/packages/charts/src/components/chart/index.ts @@ -0,0 +1 @@ +export * from './chart' diff --git a/packages/charts/src/components/chart/locales.ts b/packages/charts/src/components/chart/locales.ts new file mode 100644 index 0000000000..9cb5d86690 --- /dev/null +++ b/packages/charts/src/components/chart/locales.ts @@ -0,0 +1,80 @@ +import * as echarts from 'echarts' + +import ar from 'echarts/lib/i18n/langAR' +import cs from 'echarts/lib/i18n/langCS' +import de from 'echarts/lib/i18n/langDE' +import en from 'echarts/lib/i18n/langEN' +import es from 'echarts/lib/i18n/langES' +import fa from 'echarts/lib/i18n/langFA' +import fi from 'echarts/lib/i18n/langFI' +import fr from 'echarts/lib/i18n/langFR' +import hu from 'echarts/lib/i18n/langHU' +import it from 'echarts/lib/i18n/langIT' +import ja from 'echarts/lib/i18n/langJA' +import ko from 'echarts/lib/i18n/langKO' +import nl from 'echarts/lib/i18n/langNL' +import pl from 'echarts/lib/i18n/langPL' +import ptBr from 'echarts/lib/i18n/langPT-br' +import ro from 'echarts/lib/i18n/langRO' +import ru from 'echarts/lib/i18n/langRU' +import si from 'echarts/lib/i18n/langSI' +import sv from 'echarts/lib/i18n/langSV' +import th from 'echarts/lib/i18n/langTH' +import tr from 'echarts/lib/i18n/langTR' +import uk from 'echarts/lib/i18n/langUK' +import vi from 'echarts/lib/i18n/langVI' +import zh from 'echarts/lib/i18n/langZH' + +echarts.registerLocale('AR', ar) +echarts.registerLocale('CS', cs) +echarts.registerLocale('DE', de) +echarts.registerLocale('EN', en) +echarts.registerLocale('ES', es) +echarts.registerLocale('FA', fa) +echarts.registerLocale('FI', fi) +echarts.registerLocale('FR', fr) +echarts.registerLocale('HU', hu) +echarts.registerLocale('IT', it) +echarts.registerLocale('JA', ja) +echarts.registerLocale('KO', ko) +echarts.registerLocale('NL', nl) +echarts.registerLocale('PL', pl) +echarts.registerLocale('PT-br', ptBr) +echarts.registerLocale('RO', ro) +echarts.registerLocale('RU', ru) +echarts.registerLocale('SI', si) +echarts.registerLocale('SV', sv) +echarts.registerLocale('TH', th) +echarts.registerLocale('TR', tr) +echarts.registerLocale('UK', uk) +echarts.registerLocale('VI', vi) +echarts.registerLocale('ZH', zh) + +export type Locale = + | 'AR' + | 'CS' + | 'DE' + | 'EN' + | 'ES' + | 'FA' + | 'FI' + | 'FR' + | 'HU' + | 'IT' + | 'JA' + | 'KO' + | 'NL' + | 'PL' + | 'PT-br' + | 'RO' + | 'RU' + | 'SI' + | 'SV' + | 'TH' + | 'TR' + | 'UK' + | 'VI' + | 'ZH' + | (string & {}) +// Allows any other string while keeping autocomplete for the others. +// Needed since the user can set their own locales. diff --git a/packages/charts/src/components/index.ts b/packages/charts/src/components/index.ts new file mode 100644 index 0000000000..7e8b63019c --- /dev/null +++ b/packages/charts/src/components/index.ts @@ -0,0 +1,2 @@ +export * from './chart' +export * from './chart-compositor' diff --git a/packages/charts/src/components/legend/index.ts b/packages/charts/src/components/legend/index.ts new file mode 100644 index 0000000000..87d5bdfe40 --- /dev/null +++ b/packages/charts/src/components/legend/index.ts @@ -0,0 +1,2 @@ +export * from './legend' +export * from './legend-item' diff --git a/packages/charts/src/components/legend/legend-item.tsx b/packages/charts/src/components/legend/legend-item.tsx new file mode 100644 index 0000000000..2612a0c553 --- /dev/null +++ b/packages/charts/src/components/legend/legend-item.tsx @@ -0,0 +1,85 @@ +import { Button, Flex, IconCheckSmall } from '@vtex/shoreline' +import { + useRef, + useState, + useMemo, + useCallback, + type ComponentPropsWithoutRef, +} from 'react' +import { getHoverColor } from '../../utils/legend' +import type { LegendItemType } from './legend' + +/** + * Contains the series name and the button that toggles it on/off. + */ +export function LegendItem({ + serie, + onClick, + state, + color, + index, + ...otherProps +}: LegendItemProps) { + const buttonRef = useRef(null) + const [hover, setHover] = useState(false) + + const border = useMemo(() => { + if (state !== 'off') return 'none' + + if (hover) { + return 'var(--sl-border-base-strong-hover)' + } + + return 'var(--sl-border-base-strong)' + }, [state, hover]) + + const backgroundColor = useMemo(() => { + if (state === 'off') return 'transparent' + + if (!hover) return color + + return getHoverColor(color) + }, [state, hover, color]) + + const handleClick = useCallback( + (_e: React.MouseEvent) => { + onClick(String(serie)) + }, + [serie, onClick] + ) + + return ( + e.preventDefault()} + onMouseEnter={() => setHover(true)} + onMouseLeave={() => setHover(false)} + {...otherProps} + > + + {serie} + + ) +} + +export type LegendItemOptions = { + serie: string + onClick: (name: string) => void + state?: LegendItemType['state'] + color: string + index: number +} + +export type LegendItemProps = LegendItemOptions & + Omit, 'onClick'> diff --git a/packages/charts/src/components/legend/legend.tsx b/packages/charts/src/components/legend/legend.tsx new file mode 100644 index 0000000000..f6bec25578 --- /dev/null +++ b/packages/charts/src/components/legend/legend.tsx @@ -0,0 +1,231 @@ +import { + type ComponentPropsWithoutRef, + forwardRef, + useCallback, + useImperativeHandle, + useMemo, + useState, +} from 'react' +import { defaultColorPreset } from '../../theme/colors' +import type { EChartsOption } from 'echarts' +import '../../theme/components/legend.css' +import { changeBarRounding, checkAllSelected } from '../../utils/legend' +import type ReactECharts from 'echarts-for-react' +import { LegendItem } from './legend-item' +import type { ChartConfig, LegendHooks } from '../../types/chart' +import { Flex } from '@vtex/shoreline' +import { checkValidVariant, getDefaultByType } from '../../utils/chart' + +/** + * A Chart's legend which can toggle series on and off. + */ +export const Legend = forwardRef((props, ref) => { + const { series, chartRef, ...otherProps } = props + + if (!series) return + + if (!Array.isArray(series)) return + + const initialState: LegendState = [] + series.forEach((serie) => { + if (serie.name) { + initialState.push({ serie: String(serie.name), state: 'unchecked' }) + } + }) + + const [seriesState, setSeriesState] = useState(initialState) + + /** + * Makes an array of colors to track the colors of each serie. + * Mimics echarts color picking behaviour, if a color is not set in the series + * the next default color is picked. + */ + const colors = useMemo(() => { + let index = 0 + + return series.map((serie) => { + if (!serie.color) { + return defaultColorPreset[index++] + } + // Echarts choses the first by default. + if (Array.isArray(serie.color)) return serie.color[0] + + return serie.color + }) + }, [series]) + + /** + * Pure function that changes the state of the legend. + * Based on the type of action and the index of the change, + * the legend can decide what is the next state to be rendered. + * + * @param {number} index - Index of the serie to change the state. + * @param {string} type - Type of action to perform. Can be 'toggle', 'selectAll' or 'exclusive'. + * @returns {LegendState} The new state of the legend. + */ + const changeState = useCallback( + (index: number, actionType: LegendAction['type']) => { + const newState = [...seriesState] as LegendState + + switch (actionType) { + case 'toggle': + if (index >= seriesState.length) { + return setSeriesState(checkAllSelected(newState)) + } + + newState[index].state = + newState[index].state !== 'off' ? 'off' : 'checked' + break + + case 'selectAll': + newState.forEach((serie) => { + serie.state = 'unchecked' + }) + + break + + case 'exclusive': + newState.forEach((serie, i) => { + if (index !== i) serie.state = 'off' + else serie.state = 'checked' + }) + + break + + default: + actionType satisfies never + } + + const checkedState = checkAllSelected(newState) + setSeriesState(checkedState) + + return checkedState + }, + [seriesState] + ) + + useImperativeHandle( + ref, + () => ({ + setState: (index: number, action: string) => { + changeState(index, action as LegendAction['type']) + }, + }), + [changeState] + ) + + const onClick = useCallback( + (name: string) => { + if (!chartRef.current) return + + const chart = chartRef.current.getEchartsInstance() + const index = seriesState.findIndex((serie) => serie.serie === name) + const newState = [...seriesState] + const seriesChecked: string[] = [] + const seriesUnchecked: string[] = [] + + newState.forEach((serie) => { + if (serie.state === 'checked') seriesChecked.push(serie.serie) + else if (serie.state === 'unchecked') seriesUnchecked.push(serie.serie) + }) + + let actionType: LegendAction['type'] = 'toggle' + + if (seriesUnchecked.length !== 0) { + actionType = 'exclusive' + } else if (seriesChecked.length === 1 && seriesChecked[0] === name) { + actionType = 'selectAll' + } + + const settedState = changeState(index, actionType as LegendAction['type']) + chart.dispatchAction({ + type: 'legendToggleSelect', + // repurposing this field for the extra info we need + name: { + index: index, + type: actionType, + state: settedState, + chartId: chart.getId(), + }, + }) + }, + [seriesState, chartRef, changeState] + ) + + return ( + + {seriesState.map((serie, index) => { + return ( + + ) + })} + + ) +}) + +/** + * Select and execute a legend hook based on the chart config + * @returns the resulting options + */ +export function handleHooks( + chartConfig: ChartConfig | null, + option: EChartsOption, + action: LegendAction +): EChartsOption { + if (!chartConfig) return option + + const type = chartConfig.type + const variant = chartConfig.variant + + const checkedVariant = + variant && checkValidVariant(type, variant) + ? variant + : getDefaultByType(type) + + const hookFunction = legendHooks[type][checkedVariant] + + return hookFunction(option, action) +} + +export type LegendState = LegendItemType[] + +export type LegendItemType = { + serie: string + state: 'checked' | 'unchecked' | 'off' +} + +export type LegendAction = { + index: number + name: string + type: 'toggle' | 'selectAll' | 'exclusive' + state: LegendState + chartId: string +} + +export type LegendHandle = { + setState: (index: number, action: string) => void +} + +type LegendOptions = { + series: EChartsOption['series'] + chartRef: React.RefObject +} + +type LegendProps = LegendOptions & + Omit, 'onClick'> + +/** + * Function that is called based on a chart config + */ +const legendHooks: LegendHooks = { + bar: { + stacked: changeBarRounding, + }, +} diff --git a/packages/charts/src/components/tooltip/index.ts b/packages/charts/src/components/tooltip/index.ts new file mode 100644 index 0000000000..fa5a7e5245 --- /dev/null +++ b/packages/charts/src/components/tooltip/index.ts @@ -0,0 +1 @@ +export * from './tooltip' diff --git a/packages/charts/src/components/tooltip/tooltip.tsx b/packages/charts/src/components/tooltip/tooltip.tsx new file mode 100644 index 0000000000..9a1fc4cbdc --- /dev/null +++ b/packages/charts/src/components/tooltip/tooltip.tsx @@ -0,0 +1,130 @@ +import type { TooltipComponentFormatterCallbackParams } from 'echarts' +import { renderToStaticMarkup } from 'react-dom/server' +import '../../theme/components/tooltip.css' +import { Flex } from '@vtex/shoreline' + +/** + * Tooltip for the Chart component, depending on the tipe of chart it can be + * inverted and normalized to show a percentage of values. + */ +export default function ChartTooltip({ + params, + invert = false, + percentage = false, + dimension, +}: ChartTooltipProps) { + if (Array.isArray(params) && invert) params.reverse() + + return ( + <> +

+ {Array.isArray(params) ? params[0].name : params.name} +

+
+ {Array.isArray(params) ? ( + params.map((param) => ( + + )) + ) : ( + + )} +
+ + ) +} + +/** + * One line of the tooltip, including the colored symbol, series name and value. + */ +function ChartTooltipLine({ + params, + percentage, + dimension, +}: { params: any; percentage: boolean; dimension?: number }) { + return ( + <> +
+
+ + + + {params.seriesName} + + + + {getValueForTooltip(params, percentage, dimension)} + + + +
+
+ + ) +} + +/** + * Extracts the value to be shown in the tooltip from the series + * @param params contains series values + */ +function getValueForTooltip( + params: any, + percentage: boolean, + dimension?: number +) { + if (percentage) { + return `${Math.round(params.value * 1000) / 10}%` + } + + if (!Array.isArray(params.value)) { + return params.value + } + + if (dimension && params.value.length > dimension) { + return params.value[dimension] + } + // Default choice for echarts + return params.value[1] +} + +/** + * Renders the tooltip statically so that it can be passed as an echarts tooltip + * formatter. + */ +export const getTooltipStaticString = (props: FormatterParams) => { + const { params, invert = false, percentage = false, dimension } = props + + return renderToStaticMarkup( + + ) +} + +export type FormatterParams = ChartTooltipProps + +export interface ChartTooltipProps { + params: TooltipComponentFormatterCallbackParams + /** Whether to invert the order of series.*/ + invert?: boolean + /** Whether to show values as a percentage of the total.*/ + percentage?: boolean + /** What dimension should appear as the tooltip value.*/ + dimension?: number +} diff --git a/packages/charts/src/config.ts b/packages/charts/src/config.ts new file mode 100644 index 0000000000..8bde498358 --- /dev/null +++ b/packages/charts/src/config.ts @@ -0,0 +1,26 @@ +import { defaultColorShade } from './theme/colors' +import * as echarts from 'echarts' + +/** + * Adds a hover color mapping to the setted color in the legend colors component. + * It doesn't allow to overwrite a mapping. + * + * @param {string} color - The base color key to which the hover state will be mapped. + * @param {string} hover - The color value to be used when hovering over elements with the base color. +// * @example addHoverToColors('var(--sl-color-red-5)', 'var(--sl-color-red-6)'); + */ +export function addHoverToLegendColor(color: string, hover: string) { + if (Object.keys(defaultColorShade).includes(color)) return + defaultColorShade[color] = hover +} + +/** + * + * @param name Name you're giving to the locale, such as "_PT-br"_ or _"FR"_. + * This is what you will pass to the `locale` prop in `` + * @param locale The actual locale object, see [docs](https://github.com/apache/echarts/blob/release/src/i18n/langEN.ts) + * for details on the format. + */ +export function registerLocale(name: string, locale: any): void { + echarts.registerLocale(name, locale) +} diff --git a/packages/charts/src/index.ts b/packages/charts/src/index.ts new file mode 100644 index 0000000000..eb19aa74fd --- /dev/null +++ b/packages/charts/src/index.ts @@ -0,0 +1,2 @@ +export * from './components' +export * from './config' diff --git a/packages/charts/src/stories/area-charts.stories.tsx b/packages/charts/src/stories/area-charts.stories.tsx new file mode 100644 index 0000000000..5ac03a944a --- /dev/null +++ b/packages/charts/src/stories/area-charts.stories.tsx @@ -0,0 +1,87 @@ +import type { StoryObj } from '@storybook/react' +import { Chart } from '../index' +import { useState } from 'react' +import { Button } from '@vtex/shoreline' + +export default { + title: 'Charts/area', + component: Chart, +} + +type Story = StoryObj + +export const Basic: Story = { + args: { + series: [{ data: [70, 40, 55, 35, 39, 30, 25] }], + xAxis: { data: ['一', '二', '三', '四', '五', '六', '七'] }, + chartConfig: { type: 'area' }, + }, +} + +export const MaximumAmoutOfOverlappedAreas: Story = { + args: { + // style: { height: 550 }, + series: [ + { data: [70, 40, 55, 35, 39, 30, 25], name: 'Product A' }, + { data: [0, 0, 5, 10, 25, 45, 55], name: 'Product B' }, + ], + chartConfig: { type: 'area', variant: 'overlapping' }, + xAxis: { data: ['1º', '2º', '3º', '4º', '5º', '6º', '7º'] }, + }, +} + +export const StackedArea: Story = { + render: () => { + return ( + + ) + }, +} + +export const Loading: Story = { + render: () => { + const [currentSeries, setCurrentSeries] = useState([{}]) + const [isLoading, setIsLoading] = useState(true) + + return ( + <> + + + + ) + }, +} diff --git a/packages/charts/src/stories/bar-charts.stories.tsx b/packages/charts/src/stories/bar-charts.stories.tsx new file mode 100644 index 0000000000..ebec6f340e --- /dev/null +++ b/packages/charts/src/stories/bar-charts.stories.tsx @@ -0,0 +1,294 @@ +import { Chart } from '../index' +import type { StoryObj } from '@storybook/react' +import { useRef, useState } from 'react' +import type EChartsReact from 'echarts-for-react' +import { compactNumber } from '../utils/format' +import { Button, Grid } from '@vtex/shoreline' +import type { SeriesOption } from 'echarts' + +const Bar = { + title: 'Charts/bar', + component: Chart, +} +export default Bar + +type Story = StoryObj + +export const Basic: Story = { + args: { + xAxis: { data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] }, + series: [{ data: [1, 2, 3, 4, 5, 6, 7] }], + chartConfig: { type: 'bar' }, + loading: false, + }, +} + +export const Loading: Story = { + render: () => { + const [currentSeries, setCurrentSeries] = useState([{}]) + const [isLoading, setIsLoading] = useState(true) + + return ( + <> + + + + ) + }, +} +export const Gap1: Story = { + args: { + xAxis: { data: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'] }, + series: [ + { data: [3, 2, 3, 4, 3, 7, 7], name: 'Series 1' }, + { data: [1, 4, 2, 3, 3, 5, 6], name: 'Series 2' }, + ], + chartConfig: { type: 'bar', gap: 1 }, + }, + name: 'Gap-1', +} +export const Gap2: Story = { + args: { + xAxis: { data: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'] }, + series: [ + { data: [3, 2, 3, 4, 3, 7, 7], name: 'Series 1' }, + { data: [1, 4, 2, 3, 3, 5, 6], name: 'Series 2' }, + ], + chartConfig: { type: 'bar', gap: 2 }, + }, + name: 'Gap-2', +} +export const Gap3: Story = { + args: { + xAxis: { data: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'] }, + series: [ + { data: [3, 2, 3, 4, 3, 7, 7], name: 'Series 1' }, + { data: [1, 4, 2, 3, 3, 5, 6], name: 'Series 2' }, + ], + chartConfig: { type: 'bar', gap: 3 }, + }, + name: 'Gap-3', +} + +export const Tooltip: Story = { + render: () => { + const ref = useRef(null) + return ( + { + if (ref.current) { + ref.current.getEchartsInstance().dispatchAction({ + type: 'showTip', + x: 200, + y: 50, + position: ['50%', '50%'], + }) + } + }, + }} + /> + ) + }, +} +export const WithHugeNumbers: Story = { + args: { + xAxis: { data: ['Mon', 'Tue', 'Wed'] }, + yAxis: { + axisLabel: { + formatter: (value: number) => compactNumber(value), + }, + }, + series: [{ data: [12344441, 62346346, 97346346], name: 'Series 1' }], + chartConfig: { type: 'bar' }, + }, +} + +export const Horizontal: Story = { + args: { + yAxis: { data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri'] }, + series: [ + { data: [1, 2, 3, 4, 5], name: 'Series 1' }, + { data: [1, 4, 2, 1, 4], name: 'Series 2' }, + ], + chartConfig: { type: 'bar', variant: 'horizontal', gap: 3 }, + style: { height: 400 }, + }, +} + +export const Stacked: Story = { + render: () => { + return ( + + + + + ) + }, +} + +export const StackedPercentage: Story = { + args: { + chartConfig: { type: 'bar', variant: 'percentage stack', gap: 3 }, + xAxis: { data: ['Q1', 'Q2', 'Q3', 'Q4'] }, + series: [ + { data: [30, 70, 250, 33], name: 'Blue Store' }, + { data: [60, 15, 500, 33], name: 'Purple Store' }, + { data: [10, 15, 250, 33], name: 'Orange Store' }, + ], + style: { width: 400 }, + }, +} + +const data2: (number | object)[] = [] +const data1: number[] = [] + +for (let i = 0; i < 50; i++) { + data1.push((Math.sin(i / 5) * (i / 5 - 10) + i / 6) * 5) + data2.push((Math.cos(i / 5) * (i / 5 - 10) + i / 6) * 5) +} +export const Animation: Story = { + args: { + series: [ + { data: data1, name: 'Default animation' }, + { + data: data2, + name: 'Custom animation', + animationDelay: (idx) => idx * 50, + animationEasing: 'elasticInOut', + }, + ], + title: { + text: 'Reload animation by clicking on the legend', + left: 'center', + }, + chartConfig: { type: 'bar' }, + }, +} + +export const AnimationSpeeds: Story = { + render: () => { + const data: SeriesOption[] = [ + { + name: 'Email', + data: [120, 132, 101, 134, 90, 230, 210], + }, + { + name: 'Union Ads', + data: [220, 182, 191, 234, 290, 330, 260], + }, + { + name: 'Video Ads', + data: [150, 232, 201, 154, 190, 330, 410], + }, + { + name: 'Direct', + data: [320, 332, 301, 334, 390, 330, 320], + }, + ] + return ( + + idx * 100, + animationDelayUpdate: (idx) => idx * 50, + }} + group="A" + /> + idx * 50, + animationDelayUpdate: (idx) => idx * 50, + }} + group="A" + /> + idx * 25, + animationDelayUpdate: (idx) => idx * 50, + }} + group="A" + /> + idx * 15, + animationDelayUpdate: (idx) => idx * 50, + }} + group="A" + /> + + ) + }, +} diff --git a/packages/charts/src/stories/chart-compositor.stories.tsx b/packages/charts/src/stories/chart-compositor.stories.tsx new file mode 100644 index 0000000000..70bf9804f4 --- /dev/null +++ b/packages/charts/src/stories/chart-compositor.stories.tsx @@ -0,0 +1,210 @@ +import type { StoryObj } from '@storybook/react' +import { ChartCompositor } from '../index' +import { CHART_COMPOSITOR_DATA } from '../benchmarks/__fixtures__/chartData' +import { Button } from '@vtex/shoreline' +import { useState } from 'react' + +export default { + title: 'Charts/chart-compositor', + component: ChartCompositor, +} + +type Story = StoryObj + +const data1: number[] = [] +const data2: number[] = [] +const data3: number[] = [] + +for (let i = 0; i < 25; i++) { + data1.push((Math.sin(i / 5) * (i / 5 - 10) + i / 6) * 5) + data2.push((Math.cos(i / 5) * (i / 5 - 10) + i / 6) * 5) + data3.push((data1[i] + data2[i]) / 2) +} +export const Basic: Story = { + args: { + charts: [ + { + series: { data: data1, name: 'Bar 1' }, + chartConfig: { type: 'bar', gap: 1 }, + }, + { + series: { + data: data2, + name: 'Bar 2', + }, + chartConfig: { type: 'bar' }, + }, + { + series: { + data: data3, + name: 'Average', + }, + chartConfig: { type: 'line' }, + }, + ], + tooltip: { type: 'line' }, + style: { height: 550 }, + }, +} + +export const Stress: Story = { + args: { + charts: [ + { + series: { data: CHART_COMPOSITOR_DATA.data4_thousand }, + chartConfig: { type: 'line' }, + }, + { + series: { data: CHART_COMPOSITOR_DATA.data4_thousand }, + chartConfig: { type: 'bar' }, + }, + { + series: { data: CHART_COMPOSITOR_DATA.data4_thousand }, + chartConfig: { type: 'bar' }, + }, + ], + tooltip: { type: 'line' }, + }, +} +export const Loading: Story = { + render: () => { + const [charts, setCharts] = useState([]) + const [isLoading, setIsLoading] = useState(true) + + return ( + <> + + + + ) + }, +} +export const Sunburst: Story = { + args: { + style: { height: 500 }, + tooltip: { type: 'funnel' }, + // option: { grid: { top: '55%' } }, + charts: [ + { series: { data: data1.slice(15, 24) }, chartConfig: { type: 'bar' } }, + { + series: { data: data2.slice(15, 24).map((v) => v / 3) }, + chartConfig: { type: 'bar' }, + }, + { + chartConfig: { type: 'sunburst' }, + series: { + center: ['15%', '35%'], + radius: '70%', + label: { fontSize: 11 }, + data: [ + { + name: '​奶​奶', + children: [ + { + name: '刘', + value: 15, + children: [ + { + name: '你抠死了', + value: 2, + }, + { + name: '表姐', + value: 5, + children: [ + { + name: '儿子', + value: 2, + }, + ], + }, + { + name: '表哥', + value: 4, + }, + ], + }, + { + name: '爸爸', + value: 10, + children: [ + { + name: '我', + value: 5, + }, + { + name: '​弟​弟', + value: 1, + }, + ], + }, + ], + }, + { + name: 'Nan', + children: [ + { + name: 'Nico', + children: [ + { + name: 'Betty', + value: 4, + }, + { + name: 'Jenny', + value: 2, + }, + ], + }, + ], + }, + { + name: 'Ramon', + children: [ + { + name: 'Katya', + children: [ + { name: 'Trix', value: 9 }, + { name: 'Bosco', value: 5 }, + ], + }, + ], + }, + ], + }, + }, + ], + }, +} diff --git a/packages/charts/src/stories/donut-charts.stories.tsx b/packages/charts/src/stories/donut-charts.stories.tsx new file mode 100644 index 0000000000..3c0f07c993 --- /dev/null +++ b/packages/charts/src/stories/donut-charts.stories.tsx @@ -0,0 +1,25 @@ +import { Chart } from '../index' +import type { StoryObj } from '@storybook/react' + +export default { + title: 'Charts/donut', + component: Chart, +} + +type Story = StoryObj + +export const Basic: Story = { + args: { + chartConfig: { type: 'donut' }, + style: { height: 500 }, + series: { + data: [ + { value: 1048, name: 'A' }, + { value: 735, name: 'B' }, + { value: 580, name: 'C' }, + { value: 484, name: 'D' }, + { value: 300, name: 'E' }, + ], + }, + }, +} diff --git a/packages/charts/src/stories/funnel-chart.stories.tsx b/packages/charts/src/stories/funnel-chart.stories.tsx new file mode 100644 index 0000000000..1e90f52407 --- /dev/null +++ b/packages/charts/src/stories/funnel-chart.stories.tsx @@ -0,0 +1,29 @@ +import { Chart } from '../index' +import type { StoryObj } from '@storybook/react' + +export default { + title: 'Charts/funnel', + component: Chart, +} + +type Story = StoryObj + +export const Basic: Story = { + args: { + chartConfig: { type: 'funnel' }, + series: [ + { + name: "This probably shouldn't be visible", + data: [ + { value: 450, name: 'A' }, + { value: 250, name: 'B' }, + { value: 200, name: 'C' }, + { value: 150, name: 'D' }, + { value: 50, name: 'E' }, + ], + }, + ], + style: { width: 600 }, + checkboxLegend: false, + }, +} diff --git a/packages/charts/src/stories/general-charts.stories.tsx b/packages/charts/src/stories/general-charts.stories.tsx new file mode 100644 index 0000000000..e1a3404ef2 --- /dev/null +++ b/packages/charts/src/stories/general-charts.stories.tsx @@ -0,0 +1,235 @@ +import { Chart, ChartCompositor } from '../index' +import type { StoryObj } from '@storybook/react' +import { Grid } from '@vtex/shoreline' +import type { EChartsOption, SeriesOption } from 'echarts' +import { ChartSkeleton } from '../components/chart-skeleton/chart-skeleton' + +export default { + title: 'Charts/general', + component: Chart, +} + +type Story = StoryObj +export const BasicSync: Story = { + render: () => { + return ( + <> + + + + ) + }, +} + +export const TimeAxis: Story = { + args: { + chartConfig: { type: 'line' }, + xAxis: { type: 'time' }, + locale: 'FR', + series: [ + { + //biome-ignore format: matrix + data: [ + [new Date('2025-01-01'), 10], + [new Date('2025-05-01'), 11], + [new Date('2025-10-01'), 12], + ], + name: 'I', + }, + { + //biome-ignore format: matrix + data: [ + [new Date('2025-01-01'), 20], + [new Date('2025-05-01'), 9], + [new Date('2025-10-01'), 15], + ], + name: '💖', + }, + { + //biome-ignore format: matrix + data: [ + [new Date('2025-01-01'), 18], + [new Date('2025-05-01'), 19], + [new Date('2025-10-01'), 17], + ], + name: 'Localization', + }, + ], + style: { width: '600px' }, + }, +} + +export const AnimationUpdateFunctions: Story = { + render: () => { + const axis = { data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] } + // biome-ignore format: + const series: SeriesOption[] = [ + { name: 'Email', type: 'line', data: [120, 132, 101, 134, 90, 230, 210] }, + { name: 'Union Ads', type: 'line', data: [220, 182, 191, 234, 290, 330, 260] }, + { name: 'Video Ads', type: 'line', data: [150, 232, 201, 154, 190, 330, 410] }, + { name: 'Direct', type: 'line', data: [320, 332, 301, 334, 390, 330, 320] }, + ] + // biome-ignore format: + const data: { title: EChartsOption['title']; option: EChartsOption }[] = [ + { title: { text: 'CubicInOut' }, option: { animationEasingUpdate: 'cubicInOut' }}, + { title: { text: 'SinusoidalInOut',}, option: { animationEasingUpdate: 'sinusoidalInOut' }}, + { title: { text: 'QuinticInOut' }, option: { animationEasingUpdate: 'quinticInOut' }}, + { title: { text: 'CircularInOut' }, option: { animationEasingUpdate: 'circularInOut' }}, + ] + + return ( + + {data.map((chart: any) => ( + + ))} + + ) + }, +} + +export const SyncWithCompositor: Story = { + render: () => { + return ( + <> + + + + ) + }, +} + +export const ManyChartsSync: Story = { + render: () => { + return ( + <> + + + + + + + + + + + + ) + }, +} + +export const Loading: Story = { + render: () => { + return + }, +} diff --git a/packages/charts/src/stories/line-charts.stories.tsx b/packages/charts/src/stories/line-charts.stories.tsx new file mode 100644 index 0000000000..05a0277113 --- /dev/null +++ b/packages/charts/src/stories/line-charts.stories.tsx @@ -0,0 +1,125 @@ +import type { StoryObj } from '@storybook/react' +import { Chart } from '../index' + +export default { + title: 'Charts/line', + component: Chart, +} + +type Story = StoryObj + +export const Basic: Story = { + args: { + series: { data: [820, 932, 901, 934, 1290, 1330, 1320] }, + xAxis: { data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] }, + chartConfig: { type: 'line' }, + style: { height: 550 }, + }, +} +export const MultiLines: Story = { + args: { + xAxis: { data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] }, + chartConfig: { type: 'line' }, + series: [ + { + name: 'Email', + data: [120, 132, 101, 134, 90, 230, 210], + }, + { + name: 'Union Ads', + data: [220, 182, 191, 234, 290, 330, 260], + }, + { + name: 'Video Ads', + data: [150, 232, 201, 154, 190, 330, 410], + }, + { + name: 'Direct', + data: [320, 332, 301, 334, 390, 330, 320], + }, + ], + style: { height: 550 }, + }, +} + +export const TrendLine: Story = { + args: { + chartConfig: { type: 'line' }, + style: { height: 550 }, + xAxis: { + type: 'category', + data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'], + }, + series: [ + { + data: [820, 932, 901, 934, 1290, 1330, 1320], + lineStyle: { type: 'dashed' }, + color: '#aaaaaa', + name: 'Trend', + }, + { + data: [720, 1032, 801, 1034, 1190, 1430, 1220], + name: 'Solid', + }, + ], + }, +} + +export const ConfienceBand: Story = { + args: { + chartConfig: { type: 'line' }, + style: { height: 550 }, + zoom: true, + xAxis: { + type: 'category', + data: ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J'], + }, + yAxis: { + type: 'value', + }, + series: [ + { + type: 'line', + name: 'média', + data: [1500, 6700, 8000, 1200, 7600, 9000, 2900, 8500, 1100, 200], + markPoint: { + data: [ + { name: 'min', coord: [9, 200], itemStyle: { color: '#EC3727' } }, + { + name: 'max', + coord: [5, 9000], + itemStyle: { color: '#9C56F3' }, + }, + ], + }, + }, + { + type: 'line', + name: 'limite inferior', + data: [1823, 3671, 2530, 2000, 3927, 2186, 4000, 3370, 1500, 2895], + stack: 'confidence band', + lineStyle: { opacity: 0 }, + }, + { + type: 'line', + name: 'limite superior', + data: [5000, 5000, 5000, 5000, 5000, 5000, 5000, 3000, 5000, 5000], + stack: 'confidence band', + areaStyle: { color: 'grey', opacity: 0.3 }, + lineStyle: { opacity: 0 }, + }, + ], + + option: { + tooltip: { + trigger: 'axis', + }, + visualMap: { + show: false, + min: 1000, + max: 9000, + inRange: { color: ['#EC3727', '#157BF4', '#9C56F3'] }, + }, + }, + }, +} diff --git a/packages/charts/src/stories/scatter-charts.stories.tsx b/packages/charts/src/stories/scatter-charts.stories.tsx new file mode 100644 index 0000000000..676f9b42dc --- /dev/null +++ b/packages/charts/src/stories/scatter-charts.stories.tsx @@ -0,0 +1,135 @@ +import type { StoryObj } from '@storybook/react' +import { Chart, ChartCompositor } from '../index' + +export default { + title: 'Charts/scatter', + component: Chart, +} + +type Story = StoryObj + +export const Basic: Story = { + args: { + series: [ + { + data: [ + [0, 19], + [1, 53], + [2, 27], + [3, 4], + [4, 27], + [5, 36], + [6, 94], + [7, 80], + [8, 31], + [9, 57], + ], + name: 'Serie 1', + }, + { + data: [ + [0, 2], + [1, 4], + [2, 92], + [3, 68], + [4, 2], + [5, 3], + [6, 67], + [7, 3], + [8, 69], + [9, 39], + ], + name: 'Serie 2', + }, + ], + chartConfig: { type: 'scatter' }, + }, +} + +export const ThirdDimensionVariant: Story = { + args: { + series: [ + { + data: [ + [0, 19, 4], + [1, 53, 6], + [2, 27, 8], + [3, 4, 18], + [4, 27, 5], + [5, 36, 3], + [6, 94, 9], + [7, 80, 7], + [8, 31, 5], + [9, 57, 10], + ], + name: 'Serie 1', + }, + { + data: [ + [0, 2], + [1, 4], + [2, 92], + [3, 68], + [4, 2], + [5, 3], + [6, 67], + [7, 3], + [8, 69], + [9, 39], + ], + name: 'Serie 2', + }, + ], + chartConfig: { type: 'scatter', variant: 'third-dimension' }, + }, +} + +export const UsingChartCompositor = { + render: () => { + return ( + + ) + }, +} diff --git a/packages/charts/src/stories/sunburst-chart.stories.tsx b/packages/charts/src/stories/sunburst-chart.stories.tsx new file mode 100644 index 0000000000..e09813fc62 --- /dev/null +++ b/packages/charts/src/stories/sunburst-chart.stories.tsx @@ -0,0 +1,94 @@ +import type { StoryObj } from '@storybook/react' +import { Chart } from '../index' + +export default { + title: 'Charts/sunburst', + component: Chart, +} + +type Story = StoryObj + +export const Basic: Story = { + args: { + chartConfig: { type: 'sunburst' }, + series: { + label: { fontSize: 11 }, + data: [ + { + name: 'Vovó', + children: [ + { + name: 'Uncle Leo', + value: 15, + children: [ + { + name: 'Cousin Jack', + value: 2, + }, + { + name: 'Cousin Mary', + value: 5, + children: [ + { + name: 'Jackson', + value: 2, + }, + ], + }, + { + name: 'Cousin Ben', + value: 4, + }, + ], + }, + { + name: 'Father', + value: 10, + children: [ + { + name: 'Me', + value: 5, + }, + { + name: 'Brother Peter', + value: 1, + }, + ], + }, + ], + }, + { + name: 'Nancy', + children: [ + { + name: 'Uncle Nike', + children: [ + { + name: 'Cousin Betty', + value: 2, + }, + { + name: 'Cousin Jenny', + value: 2, + }, + ], + }, + ], + }, + { + name: 'Ramon', + children: [ + { + name: 'Katya', + children: [ + { name: 'Cousin Trixie', value: 9 }, + { name: 'Auntie Bosco', value: 5 }, + ], + }, + ], + }, + ], + }, + style: { width: 600, height: 600 }, + }, +} diff --git a/packages/charts/src/tests/purity.test.tsx b/packages/charts/src/tests/purity.test.tsx new file mode 100644 index 0000000000..793af4885a --- /dev/null +++ b/packages/charts/src/tests/purity.test.tsx @@ -0,0 +1,52 @@ +import { render } from '@vtex/shoreline-test-utils' +import { beforeAll, test } from 'vitest' +import { Chart } from '../components' +import { expect } from '@vtex/shoreline-test-utils' + +beforeAll(() => { + Object.defineProperty(HTMLElement.prototype, 'clientWidth', { + configurable: true, + value: 300, + }) + Object.defineProperty(HTMLElement.prototype, 'clientHeight', { + configurable: true, + value: 200, + }) +}) + +test('Asserts options are not modified in Bar chart', () => { + const series = [{ data: [1, 2, 3], name: 'A' }] + const xAxis = { data: ['a', 'b', 'c'] } + const { unmount } = render( + + ) + unmount() + expect(series).toEqual([{ data: [1, 2, 3], name: 'A' }]) + expect(xAxis).toEqual({ data: ['a', 'b', 'c'] }) +}) + +test('Asserts options are not modified in Area overlapping chart', () => { + const series = [{ data: [1, 2, 3], name: 'A' }] + const xAxis = { data: ['a', 'b', 'c'] } + const { unmount } = render( + + ) + unmount() + expect(series).toEqual([{ data: [1, 2, 3], name: 'A' }]) + expect(xAxis).toEqual({ data: ['a', 'b', 'c'] }) +}) + +test('Asserts options are not modified in Area stacked chart', () => { + const series = [{ data: [1, 2, 3], name: 'A' }] + const xAxis = { data: ['a', 'b', 'c'] } + const { unmount } = render( + + ) + unmount() + expect(series).toEqual([{ data: [1, 2, 3], name: 'A' }]) + expect(xAxis).toEqual({ data: ['a', 'b', 'c'] }) +}) diff --git a/packages/charts/src/tests/vitest.config.ts b/packages/charts/src/tests/vitest.config.ts new file mode 100644 index 0000000000..d14e1395b2 --- /dev/null +++ b/packages/charts/src/tests/vitest.config.ts @@ -0,0 +1,21 @@ +import { vi } from 'vitest' + +import 'vitest-canvas-mock' + +vi.mock('echarts', async () => { + const echarts = await vi.importActual('echarts') + return { + ...echarts, + init: vi.fn(() => { + return { + setOption: vi.fn(), + resize: vi.fn(), + getOption: vi.fn(), + dispose: vi.fn(), + clear: vi.fn(), + on: vi.fn(), + off: vi.fn(), + } + }), + } +}) diff --git a/packages/charts/src/theme/chartStyles.ts b/packages/charts/src/theme/chartStyles.ts new file mode 100644 index 0000000000..dfde3bc2ac --- /dev/null +++ b/packages/charts/src/theme/chartStyles.ts @@ -0,0 +1,299 @@ +import type { EChartsOption } from 'echarts' +import type { DefaultChartStyles } from '../types/chart' +import { defaultSpinnerColor } from './colors' +import { getTooltipStaticString } from '../components/tooltip' + +const BASE_TOOLTIP_OPIONS: EChartsOption['tooltip'] = { + trigger: 'axis', + borderWidth: 1, + borderColor: 'var(--sl-color-gray-4)', + confine: true, + extraCssText: + 'min-width: 128px; max-width: 268px; padding: var(--sl-space-3) var(--sl-space-4);', + formatter: (params) => { + return getTooltipStaticString({ params }) + }, +} + +export const LEGEND_DEFAULT_STYLE: EChartsOption['legend'] = { show: false } + +export const GRID_DEFAULT_STYLE: EChartsOption['grid'] = { + left: '0', + right: '8', + top: '8', + bottom: '1', + containLabel: true, +} + +export const DEFAULT_DELAY_FUNCTION = (idx: number) => idx * 20 + +// if you're looking for a certain feature in a chart and don't find it here, check themes.ts +export const CHART_STYLES: DefaultChartStyles = { + bar: { + vertical: { + xAxis: { + type: 'category', + }, + yAxis: { + type: 'value', + }, + series: { + type: 'bar', + }, + grid: GRID_DEFAULT_STYLE, + tooltip: { + ...BASE_TOOLTIP_OPIONS, + axisPointer: { + type: 'shadow', + z: -1, + shadowStyle: { color: 'var(--sl-color-gray-1)', opacity: 1 }, + }, + }, + + animationDelay: DEFAULT_DELAY_FUNCTION, + }, + horizontal: { + xAxis: { + type: 'value', + }, + yAxis: { + type: 'category', + }, + series: { + type: 'bar', + itemStyle: { + borderRadius: [0, 4, 4, 0], + }, + }, + grid: GRID_DEFAULT_STYLE, + tooltip: { + ...BASE_TOOLTIP_OPIONS, + axisPointer: { + type: 'shadow', + z: -1, + shadowStyle: { color: 'var(--sl-color-gray-1)', opacity: 1 }, + }, + }, + + animationDelay: DEFAULT_DELAY_FUNCTION, + }, + stacked: { + xAxis: { type: 'category' }, + yAxis: { type: 'value' }, + series: { + type: 'bar', + stack: '__stack', + itemStyle: { + borderRadius: 0, + borderWidth: 2, + borderColor: '#FFFFFF00', + }, + }, + grid: GRID_DEFAULT_STYLE, + tooltip: { + ...BASE_TOOLTIP_OPIONS, + formatter: (params) => { + return getTooltipStaticString({ params, invert: true }) + }, + axisPointer: { + type: 'shadow', + z: -1, + shadowStyle: { color: 'var(--sl-color-gray-1)', opacity: 1 }, + }, + }, + animationDelay: DEFAULT_DELAY_FUNCTION, + }, + 'percentage stack': { + xAxis: { type: 'category' }, + yAxis: { + type: 'value', + axisLabel: { formatter: (value) => `${value * 100}%` }, + }, + series: { + type: 'bar', + stack: '__stack%', + itemStyle: { + borderRadius: 0, + }, + }, + grid: GRID_DEFAULT_STYLE, + tooltip: { + ...BASE_TOOLTIP_OPIONS, + formatter: (params) => { + return getTooltipStaticString({ + params, + invert: true, + percentage: true, + }) + }, + axisPointer: { + type: 'shadow', + z: -1, + shadowStyle: { color: 'var(--sl-color-gray-1)', opacity: 1 }, + }, + }, + animationDelay: DEFAULT_DELAY_FUNCTION, + }, + }, + + line: { + default: { + xAxis: { type: 'category' }, + yAxis: { type: 'value' }, + series: { + type: 'line', + smooth: true, + showSymbol: false, + emphasis: { itemStyle: { color: '#FFFFFF' } }, + }, + tooltip: { ...BASE_TOOLTIP_OPIONS }, + grid: GRID_DEFAULT_STYLE, + animationDuration: 750, + animationDurationUpdate: 300, + animationEasing: 'cubicInOut', + animationEasingUpdate: 'cubicInOut', + }, + }, + + area: { + overlapping: { + xAxis: { type: 'category', boundaryGap: false }, + yAxis: { type: 'value' }, + series: { + type: 'line', + smooth: true, + showSymbol: false, + areaStyle: { opacity: 0.2 }, + emphasis: { itemStyle: { color: '#FFFFFF' } }, + }, + tooltip: { + ...BASE_TOOLTIP_OPIONS, + formatter: (params) => { + return getTooltipStaticString({ params, invert: true }) + }, + }, + grid: GRID_DEFAULT_STYLE, + animationDuration: 750, + animationDurationUpdate: 300, + animationEasing: 'cubicInOut', + animationEasingUpdate: 'cubicInOut', + }, + stacked: { + xAxis: { type: 'category', boundaryGap: false }, + yAxis: { type: 'value' }, + series: { + type: 'line', + smooth: true, + showSymbol: false, + areaStyle: { opacity: 0.15 }, + emphasis: { itemStyle: { color: '#FFFFFF' } }, + stack: '_STACK', + }, + tooltip: { + ...BASE_TOOLTIP_OPIONS, + formatter: (params) => { + return getTooltipStaticString({ params, invert: true }) + }, + }, + grid: GRID_DEFAULT_STYLE, + animationDuration: 750, + animationDurationUpdate: 300, + animationEasing: 'cubicInOut', + animationEasingUpdate: 'cubicInOut', + }, + }, + + funnel: { + default: { + series: { + type: 'funnel', + label: { + show: true, + position: 'inside', + }, + }, + tooltip: { ...BASE_TOOLTIP_OPIONS, trigger: 'item' }, + grid: { ...GRID_DEFAULT_STYLE }, + legend: { ...LEGEND_DEFAULT_STYLE, left: 'center' }, + }, + }, + sunburst: { + default: { + series: { + type: 'sunburst', + radius: '100%', + label: { rotate: 'radial' }, + emphasis: { focus: 'relative' }, + selectedMode: true, + }, + grid: { ...GRID_DEFAULT_STYLE }, + // tooltip: { ...BASE_TOOLTIP_OPIONS, trigger: 'item' }, + }, + }, + donut: { + default: { + series: { + type: 'pie', + radius: ['50%', '90%'], + avoidLabelOverlap: false, + itemStyle: { + borderRadius: 10, + borderColor: '#fff', + borderWidth: 2, + }, + emphasis: { + label: { + show: true, + fontSize: 20, + fontWeight: 'bold', + }, + }, + }, + grid: { ...GRID_DEFAULT_STYLE }, + // legend: { ...LEGEND_DEFAULT_STYLE, left: 'center' }, + }, + }, + scatter: { + default: { + xAxis: { type: 'category' }, + yAxis: { type: 'value' }, + series: { + type: 'scatter', + symbolSize: 15, + }, + tooltip: { ...BASE_TOOLTIP_OPIONS }, + grid: GRID_DEFAULT_STYLE, + animationDuration: 750, + animationDurationUpdate: 300, + animationEasing: 'cubicInOut', + animationEasingUpdate: 'cubicInOut', + }, + 'third-dimension': { + xAxis: { type: 'category' }, + yAxis: { type: 'value' }, + series: { + type: 'scatter', + symbolSize: 15, + }, + tooltip: { + ...BASE_TOOLTIP_OPIONS, + formatter: (params) => getTooltipStaticString({ params, dimension: 2 }), + }, + grid: GRID_DEFAULT_STYLE, + animationDuration: 750, + animationDurationUpdate: 300, + animationEasing: 'cubicInOut', + animationEasingUpdate: 'cubicInOut', + }, + }, +} + +export const DEFAULT_LOADING_SPINNER: EChartsOption['showLoading'] = { + text: '', + spinnerRadius: 10, + maskColor: 'transparent', + zlevel: 0, + + lineWidth: 3, + color: defaultSpinnerColor, +} diff --git a/packages/charts/src/theme/colors.ts b/packages/charts/src/theme/colors.ts new file mode 100644 index 0000000000..8b4555db7a --- /dev/null +++ b/packages/charts/src/theme/colors.ts @@ -0,0 +1,46 @@ +import { presetSunrise } from '@vtex/shoreline' +import { parseTokens } from '@vtex/shoreline-utils' + +export const colors = parseTokens({ + tokens: presetSunrise?.tokens?.color ?? {}, +}) + +export const defaultColorPreset = [ + colors['--sl-blue-8'], + colors['--sl-purple-9'], + colors['--sl-orange-6'], + colors['--sl-pink-8'], + colors['--sl-teal-11'], +] + +export const defaultColorShade: Record = { + [colors['--sl-blue-8']]: colors['--sl-blue-9'], + [colors['--sl-purple-9']]: colors['--sl-purple-10'], + [colors['--sl-orange-6']]: colors['--sl-orange-7'], + [colors['--sl-pink-8']]: colors['--sl-pink-11'], + [colors['--sl-teal-11']]: colors['--sl-teal-12'], + [colors['--sl-gray-6']]: colors['--sl-gray-7'], + [colors['--sl-blue-9']]: colors['--sl-blue-10'], + [colors['--sl-purple-10']]: colors['--sl-purple-11'], + [colors['--sl-orange-7']]: colors['--sl-orange-8'], + [colors['--sl-pink-11']]: colors['--sl-pink-12'], + [colors['--sl-teal-12']]: colors['--sl-teal-13'], + [colors['--sl-gray-7']]: colors['--sl-gray-8'], +} + +export const defaultAreaColors = [ + colors['--sl-blue-11'], + colors['--sl-purple-11'], + colors['--sl-orange-11'], + colors['--sl-pink-11'], + colors['--sl-teal-11'], +] + +export const defaultChartColorConfig = { + lineColor: colors['--sl-gray-6'], + textSoft: colors['--sl-gray-9'], + bgLineColor: colors['--sl-gray-3'], + zoomBoxColor: colors['--sl-pink-4'], +} + +export const defaultSpinnerColor = colors['--sl-blue-8'] diff --git a/packages/charts/src/theme/components/chart.css b/packages/charts/src/theme/components/chart.css new file mode 100644 index 0000000000..51bd9d6b5b --- /dev/null +++ b/packages/charts/src/theme/components/chart.css @@ -0,0 +1,11 @@ +[data-sl-chart] { + gap: 0px, 0px; +} + +div[data-sl-chart="bar-stacked"] g text ~ path { + transform: translate(0px, 1px); +} + +path { + cursor: default; +} diff --git a/packages/charts/src/theme/components/chartSkeleton.css b/packages/charts/src/theme/components/chartSkeleton.css new file mode 100644 index 0000000000..083208c91f --- /dev/null +++ b/packages/charts/src/theme/components/chartSkeleton.css @@ -0,0 +1,31 @@ +[data-sl-chart-skeleton-container] { + min-width: 300; + min-height: 200; + position: relative; + padding-right: 8px; + margin-bottom: 32px; +} +[data-sl-chart-skeleton-spinner] { + position: absolute; + top: 50%; + left: 50%; +} + +[data-sl-inner-flex] { + height: 100%; + width: 100; +} + +[data-ls-chart-skeleton-chart-flex] { + padding-left: 40px; + /*Exactly 40 px needed so that it lines up with the start of the line*/ +} + +[data-sl-chart-skeleton-line-box] { + margin-right: var(--sl-space-2); +} + +[data-sl-chart-skeleton-line] { + width: 100%; + height: 0.5px; +} diff --git a/packages/charts/src/theme/components/index.css b/packages/charts/src/theme/components/index.css new file mode 100644 index 0000000000..1d7f530b29 --- /dev/null +++ b/packages/charts/src/theme/components/index.css @@ -0,0 +1,3 @@ +@import "tooltip.css"; +@import "chart.css"; +@import "legend.css"; diff --git a/packages/charts/src/theme/components/legend.css b/packages/charts/src/theme/components/legend.css new file mode 100644 index 0000000000..da4d3a6111 --- /dev/null +++ b/packages/charts/src/theme/components/legend.css @@ -0,0 +1,46 @@ +[data-sl-chart-legend] { + display: flex; + flex-wrap: wrap; + gap: var(--sl-space-4); + margin: var(--sl-space-2); +} + +[data-sl-chart-legend-container] { + display: flex; + align-items: center; + padding: var(--sl-space-0); + gap: var(--sl-space-1); +} + +[data-sl-chart-legend-button] { + padding: 0%; + cursor: pointer; + width: 12px; + height: 12px; + border-radius: 2px; + border: 0px; + padding-left: 0px; + padding-right: 0px; + text-align: center; + min-width: auto; + min-height: auto; +} + +[data-sl-chart-legend-button]:focus { + box-shadow: var(--sl-focus-ring-base); +} + +[data-sl-chart-legend-check] { + color: var(--sl-fg-inverted); + /* Needs to be !important or the margin gets overwritten by 2 separate styles, each leading to the icon not being centered */ + margin: auto !important; + width: 10px; + height: 10px; +} + +[data-sl-chart-legend-text] { + cursor: pointer; + font: var(--sl-text-caption-1-font); + color: var(--sl-fg-base-soft); + font-size: 0.75rem; +} diff --git a/packages/charts/src/theme/components/tooltip.css b/packages/charts/src/theme/components/tooltip.css new file mode 100644 index 0000000000..c340da7309 --- /dev/null +++ b/packages/charts/src/theme/components/tooltip.css @@ -0,0 +1,40 @@ +[data-sl-chart-tooltip] { + background-color: var(--sl-color-gray-0); + border-radius: 4px; +} +[data-sl-chart-tooltip-data-container] { + display: flex; + justify-content: space-between; + padding: var(--sl-space-1) 0px; + gap: var(--sl-space-2); +} +[data-sl-chart-tooltip-data-serie-container] { + display: flex; + align-items: center; + gap: var(--sl-space-2); +} +[data-sl-chart-tooltip-data-serie-label-line] { + width: 4px; + height: 40px; + display: inline-block; + border-radius: var(--sl-radius-1); +} +[data-sl-chart-tooltip-title] { + font: var(--sl-text-caption-1-font); + letter-spacing: var(--sl-letter-spacing-0); + color: var(--sl-fg-base); + overflow-wrap: break-word; + white-space: normal; +} +[data-sl-chart-tooltip-data-serie-name] { + font: var(--sl-text-body-font); + letter-spacing: var(--sl-text- -letter-spacing); + color: var(--sl-fg-base-soft); + letter-spacing: var(--sl-letter-spacing-2); + white-space: normal; +} +[data-sl-chart-tooltip-data-serie-value] { + font: var(--sl-text-display-3-font); + letter-spacing: var(--sl-letter-spacing-2); + color: var(--sl-fg-base); +} diff --git a/packages/charts/src/theme/themes.ts b/packages/charts/src/theme/themes.ts new file mode 100644 index 0000000000..8712eb8e28 --- /dev/null +++ b/packages/charts/src/theme/themes.ts @@ -0,0 +1,51 @@ +import { defaultChartColorConfig, defaultColorPreset } from './colors' + +export const defaultTheme = { + color: defaultColorPreset, + categoryAxis: { + axisTick: { + show: false, + }, + axisLine: { + show: true, + lineStyle: { + color: defaultChartColorConfig.lineColor, + }, + }, + axisLabel: { + color: defaultChartColorConfig.textSoft, + }, + }, + valueAxis: { + type: 'value', + axisLine: { + show: false, + }, + axisLabel: { + color: defaultChartColorConfig.textSoft, + }, + splitLine: { + lineStyle: { + color: defaultChartColorConfig.bgLineColor, + width: 1, + }, + }, + }, + // if enabled, higlighting a series with a shoreline token color makes it go invisible and flicker + emphasis: { itemStyle: { color: 'inherit' } }, + title: { left: 'center', top: 8 }, + + label: { + color: 'var(--sl-fg-base)', + fontFamily: 'var(--sl-font-family-sans)', + fontWeight: 'var(--sl-font-weight-regular)', + fontSize: 12, + }, + + bar: { + itemStyle: { + borderRadius: [4, 4, 0, 0], + }, + barGap: '1%', + }, +} diff --git a/packages/charts/src/types/chart.ts b/packages/charts/src/types/chart.ts new file mode 100644 index 0000000000..0dfbc5e3cc --- /dev/null +++ b/packages/charts/src/types/chart.ts @@ -0,0 +1,143 @@ +import type { EChartsOption, SeriesOption } from 'echarts' +import type { LegendAction } from '../components/legend' +const BarChartVariantsArray = [ + 'vertical', + 'horizontal', + 'stacked', + 'percentage stack', +] as const +const LineChartVariantsArray = ['default'] as const +const AreaChartVariantsArray = ['overlapping', 'stacked'] as const +const FunnelChartVariantsArray = ['default'] as const +const ScatterChartVariantsArray = ['default', 'third-dimension'] as const +const SunburstChartVariantsArray = ['default'] as const +const DonutChartVariantsArray = ['default'] as const + +/** + * Used to check variants in utils/chart.ts checkValidVariant and getDefaultByTpe + */ +export const ChartVariants = { + bar: { + variants: BarChartVariantsArray, + default: 'vertical' as const, + }, + line: { + variants: LineChartVariantsArray, + default: 'default' as const, + }, + area: { + variants: AreaChartVariantsArray, + default: 'overlapping' as const, + }, + funnel: { + variants: FunnelChartVariantsArray, + default: 'default' as const, + }, + sunburst: { + variants: SunburstChartVariantsArray, + default: 'default' as const, + }, + donut: { + variants: DonutChartVariantsArray, + default: 'default' as const, + }, + scatter: { + variants: ScatterChartVariantsArray, + default: 'default' as const, + }, +} as const + +export type BarChartVariants = (typeof BarChartVariantsArray)[number] +export type LineChartVariants = (typeof LineChartVariantsArray)[number] +export type AreaChartVariants = (typeof AreaChartVariantsArray)[number] +export type FunnelChartVariants = (typeof FunnelChartVariantsArray)[number] +export type ScatterChartVariants = (typeof ScatterChartVariantsArray)[number] +export type SunburstChartVariants = (typeof SunburstChartVariantsArray)[number] +export type DonutChartVariants = (typeof DonutChartVariantsArray)[number] + +export type BarChartConfig = { + type: 'bar' + variant?: BarChartVariants + gap?: 1 | 2 | 3 +} +export type LineChartConfig = { type: 'line'; variant?: LineChartVariants } +export type AreaChartConfig = { type: 'area'; variant?: AreaChartVariants } +export type FunnelChartConfig = { + type: 'funnel' + variant?: FunnelChartVariants +} +export type ScatterChartConfig = { + type: 'scatter' + variant?: ScatterChartVariants +} +export type SunburstChartConfig = { + type: 'sunburst' + variant?: SunburstChartVariants +} + +export type DonutChartConfig = { + type: 'donut' + variant?: DonutChartVariants +} + +export type ChartConfig = + | BarChartConfig + | LineChartConfig + | AreaChartConfig + | FunnelChartConfig + | ScatterChartConfig + | SunburstChartConfig + | DonutChartConfig + +export type ChartUnit = { + series: SeriesOption + chartConfig: ChartConfig + hooks?: ((option: EChartsOption) => EChartsOption)[] | null +} + +export type ChartLoadingConfig = { + text?: string + color?: string + textColor?: string + fontSize?: number +} +export type DefaultChartStyles = { + bar: Record + line: Record + area: Record + funnel: Record + scatter: Record + sunburst: Record + donut: Record +} + +export type DefaultHooks = { + bar: Record EChartsOption)[]> + line: Record EChartsOption)[]> + area: Record EChartsOption)[]> + funnel: Record< + FunnelChartVariants, + ((series: EChartsOption) => EChartsOption)[] + > + scatter: Record< + ScatterChartVariants, + ((series: EChartsOption) => EChartsOption)[] + > + sunburst: Record< + SunburstChartVariants, + ((series: EChartsOption) => EChartsOption)[] + > + donut: Record< + DonutChartVariants, + ((series: EChartsOption) => EChartsOption)[] + > +} + +export type LegendHooks = { + bar?: Partial< + Record< + BarChartVariants, + (option: EChartsOption, action: LegendAction) => EChartsOption + > + > +} diff --git a/packages/charts/src/utils/chart.ts b/packages/charts/src/utils/chart.ts new file mode 100644 index 0000000000..83d8166cd6 --- /dev/null +++ b/packages/charts/src/utils/chart.ts @@ -0,0 +1,207 @@ +import type { EChartsOption, SeriesOption } from 'echarts' +import { CHART_STYLES } from '../theme/chartStyles' +import { + type BarChartConfig, + type ChartConfig, + type ChartUnit, + ChartVariants, +} from '../types/chart' +import { merge } from '@vtex/shoreline-utils' + +/** + * Merges series with default styles series, handling both array and scalar form. + * Every series needs to be merged individually so that every series has + * the configs they need. + */ +const formatSeries = ( + series: SeriesOption | SeriesOption[] | undefined, + defaultStyle: EChartsOption +) => { + if (!series) return + + if (Array.isArray(series)) { + return series.map((serie) => merge(serie, defaultStyle.series)) + } + + return merge(series, defaultStyle.series) +} + +/** + * Applies default styling to the chart by merging user passed options + * with the default. + * + * In a conflict, user options are chosen over defaults. + */ +export const getChartOptions = ( + options: EChartsOption, + chartConfig: ChartConfig +): EChartsOption | undefined => { + const { type, variant } = chartConfig + + if (typeof options === 'undefined') return + + const { series, ...rest } = options + + const defaultStyle = + variant && checkValidVariant(type, variant) + ? CHART_STYLES[type][variant] + : CHART_STYLES[type][getDefaultByType(type)] + + const { series: defaultSeries, ...defaultRest } = defaultStyle + const formattedSeries = formatSeries(series, defaultStyle) + + if (type === 'bar' && Array.isArray(formattedSeries) && chartConfig.gap) { + setBarGap(formattedSeries, chartConfig.gap) + } + + const mergedOptions = merge(defaultRest, rest) + + return { ...mergedOptions, series: formattedSeries } +} + +/** + * Returns the default style for that chart type and variant, + * or for the appropriate default variant if the variant is not passed. + */ +function getDefaultStyle( + type: ChartConfig['type'], + variant?: ChartConfig['variant'] +): EChartsOption { + if (!variant || !checkValidVariant(type, variant)) { + return CHART_STYLES[type][getDefaultByType(type)] + } + + return CHART_STYLES[type][variant] +} + +/** + * Returns the SeriesOption with the options passed and the config + * @param multi MultiChart config that will be used to pass + * @returns SeriesOption correct + */ +export const getDataToChartCompositor = ({ + chartConfig, + series, +}: ChartUnit): SeriesOption => { + const { type, variant } = chartConfig + const defaultStyle = + variant && checkValidVariant(type, variant) + ? CHART_STYLES[type][variant] + : CHART_STYLES[type][getDefaultByType(type)] + + const serieFinal = merge(defaultStyle.series, series) as SeriesOption + + return serieFinal +} + +/** + * Returns the tooltip config according to the ChartConfig passed. + * @param tooltip ChartConfig that will be used to select. + * @returns EChartsOption['tooltip'] + */ +export const getTooltipChartCompositor = ( + tooltip: ChartConfig +): EChartsOption['tooltip'] => { + return getDefaultStyle(tooltip.type, tooltip.variant).tooltip +} + +/** + * Returns an object containing the xAxis and yAxis props, according to the ChartConfig passed in param. + * @param background ChartConfig + * @returns Object containing xAxis, and yAxis props. + */ +export const getBackgroundChartCompositor = ( + background: ChartConfig +): { xAxis: EChartsOption['xAxis']; yAxis: EChartsOption['yAxis'] } => { + const style = getDefaultStyle(background.type, background.variant) + + return { xAxis: style.xAxis, yAxis: style.yAxis } +} + +/** + * Checks if a certan chart type has that variant. + */ +export function checkValidVariant(type: string, variant?: string): boolean { + if (!variant) return false + + return ChartVariants[type].variants.includes(variant) +} + +/** + * Gets default variant for a chart type. + */ +export function getDefaultByType(type: ChartConfig['type']): string { + return ChartVariants[type].default +} + +/** + * Determines whether to enable zoom by default. + * If zoom is undefined, certain chart types will enable zoom anyway. + */ +export function checkZoom( + zoom: boolean | undefined, + type: string | undefined +): boolean { + if (typeof zoom === 'boolean') return zoom + + if (type === 'line') return false // temporaly disabled by default + + return false +} + +/** + * Get the names of series in options. If `series.name` is set return that, if not + * return the appropriate default name. + */ +export function getSeriesNames(option: EChartsOption): string[] { + if (!option.series) return ['series0'] + + const series = option.series + + if (Array.isArray(series)) { + return series.map((v, i) => (v.name ? v.name.toString() : `series${i}`)) + } + + return series.name ? [series.name.toString()] : ['series0'] +} + +/** + * Sets the size of bars and the size of the space between them. A good default is to set `gap` to equal the number of categories. + * @param series + * @param gap The size of the gap between each bar, smaller means larger bars. Chose based on the number of categories and the width of the chart. + */ +export const setBarGap = ( + series: SeriesOption[], + gap: BarChartConfig['gap'] +) => { + let bars = 0 + + for (let i = 0; i < series.length; i++) if (series[i].type === 'bar') bars++ + + if (bars <= 1 || typeof gap === 'undefined') return + + let finalPercentage: number + + switch (gap) { + case 1: + finalPercentage = 100 / (bars + 2) + break + case 2: + finalPercentage = 100 / (bars + 1) + break + case 3: + finalPercentage = 100 / bars + break + default: + gap satisfies never + return + } + + for (let i = series.length - 1; i > -1; i--) { + const serie = series[i] + + if (serie.type === 'bar') { + serie.barCategoryGap = `${finalPercentage.toFixed(0)}%` + } + } +} diff --git a/packages/charts/src/utils/defaultHooks.ts b/packages/charts/src/utils/defaultHooks.ts new file mode 100644 index 0000000000..c3e2c98305 --- /dev/null +++ b/packages/charts/src/utils/defaultHooks.ts @@ -0,0 +1,74 @@ +import type { DefaultHooks } from '../types/chart' +import { + normalizeBarData, + normalizeHorizontalBarData, + roundCap, + normalizeStackedBars, + setAreaGradients, + setAreaColors, + sunburstCoreColoring, +} from './hooks' + +/** + * Functions that are always called for a certain chart config + */ +export const chartsDefaultHooks: DefaultHooks = { + bar: { + vertical: [normalizeBarData], + horizontal: [normalizeHorizontalBarData], + stacked: [roundCap], + 'percentage stack': [normalizeStackedBars], + }, + line: { + default: [], + }, + area: { + overlapping: [setAreaGradients], + stacked: [setAreaColors], + }, + funnel: { + default: [], + }, + sunburst: { + default: [sunburstCoreColoring], + }, + donut: { + default: [], + }, + scatter: { + default: [], + 'third-dimension': [], + }, +} + +/** + * Functions that are always called for a certain chart config + */ +export const chartCompositorDefaultHooks: DefaultHooks = { + bar: { + vertical: [normalizeBarData], + horizontal: [normalizeHorizontalBarData], + stacked: [roundCap], + 'percentage stack': [normalizeStackedBars], + }, + line: { + default: [], + }, + area: { + overlapping: [setAreaGradients], + stacked: [setAreaColors], + }, + funnel: { + default: [], + }, + sunburst: { + default: [sunburstCoreColoring], + }, + scatter: { + default: [], + 'third-dimension': [], + }, + donut: { + default: [], + }, +} diff --git a/packages/charts/src/utils/format.ts b/packages/charts/src/utils/format.ts new file mode 100644 index 0000000000..9355f473fa --- /dev/null +++ b/packages/charts/src/utils/format.ts @@ -0,0 +1,15 @@ +/** + * Abbreviates large numbers, which is useful when a value axis + * has large values. For example: + * - 100.000 = 100K + * - 1.000.000 = 1M + * - 1.000.000.000 = 1B + */ +export const compactNumber = (number: number) => { + const formatter = new Intl.NumberFormat('en-US', { + notation: 'compact', + maximumFractionDigits: 2, + }) + + return formatter.format(number) +} diff --git a/packages/charts/src/utils/hooks.ts b/packages/charts/src/utils/hooks.ts new file mode 100644 index 0000000000..557679052f --- /dev/null +++ b/packages/charts/src/utils/hooks.ts @@ -0,0 +1,415 @@ +import type { EChartsOption, LineSeriesOption, SeriesOption } from 'echarts' +import { defaultTheme } from '../theme/themes' +import { + defaultAreaColors, + defaultColorPreset, + defaultColorShade, +} from '../theme/colors' + +/** + * Apply a hook to a function and keep only the series part of the resulting option. + * + * Enables chart compositor to use the same hooks as a regular chart while limiting the + * changes to only affect one chart unit. + */ +export function hooksCompositorAdapter( + series: SeriesOption, + fn: (option: EChartsOption) => EChartsOption +): SeriesOption { + return fn({ series: series }).series as SeriesOption + // we can be relatively certain no one's gonna return undefined from these +} + +/** + * Fix required so that bars with negative values don't render + * upside down. + */ +export function normalizeBarData(option: EChartsOption): EChartsOption { + const series = option.series + + if (typeof series === 'undefined') return option + + if (Array.isArray(series)) { + option.series = series.map((v: any) => normalizeBarDataInner(v)) + return option + } + + option.series = normalizeBarDataInner(series) + + return option +} + +/** + * Iterates through series data and inverts the border radius of + * points with negative values, so that the border doesn't render upside down. + * + * Most of the complexity here comes from the many different ways series can be layed out. + */ +function normalizeBarDataInner(series: SeriesOption): SeriesOption { + const data: any = series.data + + if (data === null || typeof data === 'undefined') return series + + const defaultBorder = defaultTheme.bar.itemStyle.borderRadius + const invertedBorderRadius = [0, 0, defaultBorder[0], defaultBorder[1]] + + return { + ...series, + data: data.map((v) => { + if ( + typeof v === 'string' || + v instanceof Date || + Array.isArray(v) || // We could allow this case, but i don't think we allow arrays of arrays anywhere + v === null || + typeof v === 'undefined' + ) { + return v + } + + if (typeof v === 'number') { + return v > 0 + ? v + : { value: v, itemStyle: { borderRadius: invertedBorderRadius } } + } + + if (typeof v.value === 'number' && v.value < 0) { + const out = { ...v } + out.itemStyle ??= {} + out.itemStyle.borderRadius = invertedBorderRadius + + return out + } + + return v + }), + } +} + +/** + * Fix required so that bars with negative values don't render + * upside down. + */ +export function normalizeHorizontalBarData( + option: EChartsOption +): EChartsOption { + const series = option.series + + if (typeof series === 'undefined') return option + + if (Array.isArray(series)) { + option.series = series.map((v: any) => normalizeHorizontalBarDataInner(v)) + + return option + } + + option.series = normalizeHorizontalBarDataInner(series) + + return option +} +/** + * Iterates through series data and inverts the border radius of + * points with negative values, so that the border doesn't render upside down. + * + * Most of the complexity here comes from the many different ways series can be layed out. + */ +function normalizeHorizontalBarDataInner(series: SeriesOption): SeriesOption { + if (typeof series === 'undefined' || typeof series.data === 'undefined') + return {} + + const data: any = series.data + + if (data === null || typeof data === 'undefined') return series + + const defaultBorder = defaultTheme.bar.itemStyle.borderRadius + const invertedBorderRadius = [defaultBorder[0], 0, 0, defaultBorder[1]] + + return { + ...series, + data: data.map((v) => { + if ( + typeof v === 'string' || + v instanceof Date || + Array.isArray(v) || // We could allow this case, but i don't think we allow arrays of arrays anywhere + v === null || + typeof v === 'undefined' + ) { + return v + } + + if (typeof v === 'number') { + return v > 0 + ? v + : { value: v, itemStyle: { borderRadius: invertedBorderRadius } } + } + + if (typeof v.value === 'number' && v.value < 0) { + const out = { ...v } + out.itemStyle ??= {} + out.itemStyle.borderRadius = invertedBorderRadius + + return out + } + + return v + }), + } +} +/** + * Used in stacked charts to guarantee that the top bar in the stack + * always has a border radius, and no other bar does. + * + * Also called when series are toggled. + */ +export function roundCap(options: EChartsOption): EChartsOption { + const series = options.series + + if (!Array.isArray(series) || !Array.isArray(series[0].data)) return options + + const defaultBorderRadius = defaultTheme.bar.itemStyle.borderRadius + series[0].data.forEach((_, i) => { + for (let j = series.length - 1; j > -1; j--) { + const data = series[j].data as ( + | number + | { value: number; itemStyle: { borderRadius: number[] } } + )[] + + // Zero value points aren't rendered and should be skipped + if (typeof data[i] === 'object' && data[i].value !== 0) { + data[i] = { + ...data[i], + itemStyle: { + ...data[i].itemStyle, + borderRadius: defaultBorderRadius, + }, + } + break + } + + if (data[i] !== 0) { + data[i] = { + value: data[i], + itemStyle: { borderRadius: defaultBorderRadius }, + } as { value: number; itemStyle: { borderRadius: number[] } } + break + } + } + }) + + return options +} + +/** + * Used in percentage stacked bar charts to map the passed values to + * percentages. + */ +export function normalizeStackedBars(options: EChartsOption): EChartsOption { + const series = options.series + + if (!Array.isArray(series) || !Array.isArray(series[0].data)) return options + + const seriesSums: number[] = [] + for (let i = 0; i < series[0].data.length; i++) { + let currentTotal = 0 + series.forEach((v) => { + const data = v.data as (number | { value: number })[] + const current = data[i] as number | { value: number } + + if (typeof current === 'object') { + currentTotal += current.value + } else { + currentTotal += current + } + }) + + seriesSums.push(currentTotal) + } + + series.forEach((serie) => { + const data = serie.data as (number | { value: number })[] + data.forEach((v, j) => { + let value = 0 + + if (typeof v === 'object') { + value = v.value + } else { + value = v + } + + data[j] = value / seriesSums[j] + }) + }) + + return options +} + +/** + * Used by overlapping area charts to set their area colors + * to have a gradient between series color and transparent. + */ +export function setAreaGradients(options: EChartsOption): EChartsOption { + return setAreaColors(options, true) +} + +/** + * Used by area charts to correctly set their area colors, + * accounting for the possibility of colors being overriden by `series.color`. + * @param gradient wether to interpolate the color to transparent + */ +export function setAreaColors( + options: EChartsOption, + gradient = false +): EChartsOption { + const { series, ...otherProps } = options + + const arraySeries = Array.isArray(series) ? series : [series] + let nextColorIndex = 0 + arraySeries.forEach((v) => { + let areaColor: any + const serie = v as LineSeriesOption + + if (serie.areaStyle) { + return + } + + if (serie.color) { + if (Array.isArray(serie.color)) { + areaColor = serie.color[0] + } else areaColor = serie.color + } else { + areaColor = + defaultColorShade[ + defaultColorPreset[nextColorIndex % defaultAreaColors.length] + ] + } + + serie.areaStyle ??= {} + + if (!gradient) { + serie.areaStyle.color = areaColor + serie.color = areaColor + + nextColorIndex++ + + return + } + + areaColor = { + type: 'linear' as const, + x: 0, + y: 0, + x2: 0, + y2: 1, + global: false, + colorStops: [ + { + offset: 0, + color: areaColor, + }, + { + offset: 1, + color: '#FFFFFF', + }, + ], + } + serie.areaStyle.color = areaColor + + if (!serie.color) { + nextColorIndex++ + } + }) + return { series, ...otherProps } +} + +/** + * Returns a function that formats our matrix based date value format into echarts array of objects format, using the specified locale. + * If options is already an array of objects, does nothing. + * + * Expects options to be like: + * ``` ts + * series: [ + * { + * data: [ + * [new Date('2025-01-01'), 10], + * [new Date('2025-05-01'), 11], + * [new Date('2025-10-01'), 12], + * ], + * name: 'Series 1', + * }, + * ] + * ``` + * Which expands into: + * ``` ts + * series: [ + * { + * data: [ + * { name: new Date('2025-01-01').toLocaleDateString(locale, options), value:[new Date('2025-01-02'),10] }, + * { name: new Date('2025-05-01').toLocaleDateString(locale, options), value:[new Date('2025-05-01'),11] }, + * { name: new Date('2025-10-01').toLocaleDateString(locale, options), value:[new Date('2025-10-01'),12] }, + * ], + * name: 'Series 1', + * }, + * ] + *``` + */ +export function formatTimeAxis( + locale: Intl.LocalesArgument, + formatOptions: Intl.DateTimeFormatOptions = { dateStyle: 'full' } +) { + return (options: EChartsOption) => { + const series = options.series + + if (!Array.isArray(series) || !Array.isArray(series[0].data)) return options + + series.forEach((serie) => { + const data = serie.data as any[] + data.forEach((value: [Date, number], j) => { + data[j] = { + name: value[0].toLocaleDateString(locale, formatOptions), + value: value, + } + }) + series + }) + + return options + } +} + +/** + * Colors the root node in sunburst charts, while still allowing for the user + * to change it. + * + * Could also have been implemented in chart styles, but doing so resulted + * in weird behaviour where user and default would be mixed, not allowing the user + * to change the root node. + */ +export function sunburstCoreColoring(options: EChartsOption): EChartsOption { + const series = options.series as SeriesOption & { + levels: [{ itemStyle: any }] + } + + if (!series) return options + + if (Array.isArray(series)) { + return options + } + + if ( + Array.isArray(series.levels) && + Object.keys(series.levels[0]).length === 0 + ) { + series.levels[0] = { + itemStyle: { color: 'var(--sl-color-gray-11)' }, + } + } + + if (!Array.isArray(series.levels)) { + series.levels = [ + { + itemStyle: { color: 'var(--sl-color-gray-11)' }, + }, + ] + } + + return options +} diff --git a/packages/charts/src/utils/legend.ts b/packages/charts/src/utils/legend.ts new file mode 100644 index 0000000000..b952a1e6e9 --- /dev/null +++ b/packages/charts/src/utils/legend.ts @@ -0,0 +1,189 @@ +import type { EChartsOption } from 'echarts' +import type { LegendAction, LegendState } from '../components/legend' +import { defaultColorShade } from '../theme/colors' +import { defaultTheme } from '../theme/themes' +import { cloneDeep } from 'lodash.clonedeep' + +export function turnOnAllSeries(chart: echarts.ECharts, series: string[]) { + series.forEach((serie) => turnOnSerie(chart, serie)) +} + +export function turnOnSerie(chart: echarts.ECharts, serie: string) { + chart.dispatchAction({ type: 'legendSelect', name: serie }, { silent: true }) +} + +export function turnOffSerie(chart: echarts.ECharts, serie: string) { + chart.dispatchAction( + { type: 'legendUnSelect', name: serie }, + { silent: true } + ) +} + +/** + * Toggles series visibility + */ +export function toggleSerie(chart: echarts.ECharts, serie: string) { + chart.dispatchAction( + { type: 'legendToggleSelect', name: serie }, + { silent: true } + ) +} + +export function getHoverColor(color: string): string { + if (Object.keys(defaultColorShade).includes(color)) { + return defaultColorShade[color] + } + + return color +} + +/** + * If all series are on, makes sure to hide the checkmark for all of them. + * + * If not, the series that are on show their checkmark. + */ +export function checkAllSelected(seriesState: LegendState): LegendState { + const allOn = seriesState.every((serie) => serie.state !== 'off') + + if (allOn) { + return seriesState.map((serie) => ({ + ...serie, + state: 'unchecked', + })) as LegendState + } + + return seriesState.map((serie) => ({ + ...serie, + state: serie.state === 'unchecked' ? 'checked' : serie.state, + })) as LegendState +} + +/** + * Round the border from bar stacked charts + */ +export function changeBarRounding( + options: EChartsOption, + action: LegendAction +): EChartsOption { + switch (action.type) { + case 'toggle': { + return barRoundingToggle(options, action.state) + } + + case 'exclusive': { + return barRoundingExclusive(options, action.index) + } + + default: { + action.type satisfies 'selectAll' + + return {} + } + } +} + +/** + * Round the border for the action.type = 'toggle' + */ +function barRoundingToggle( + options: EChartsOption, + state: LegendState +): EChartsOption { + const defaultBorderRadius = defaultTheme.bar.itemStyle.borderRadius + const series = options.series + const booleanStates = state.map((s) => s.state !== 'off') + + if (!series || !Array.isArray(series)) return options + + const visibleSeries = series + .filter((_, index) => booleanStates[index]) + .map((serie) => cloneDeep(serie)) + + if ( + visibleSeries.length >= series.length || + visibleSeries.length === 0 || + !visibleSeries.every((serie) => serie.data) + ) { + return options + } + + // From the checking above we're certain this array is non empty and has series with non null data + const safeVisibleSeries = visibleSeries as any + for (let i = 0; i < safeVisibleSeries[0].data.length; i++) { + let top = -1 + + // rounding the top + for (let j = safeVisibleSeries.length - 1; j > -1; j--) { + const data = safeVisibleSeries[j].data + + if (data[i].value && data[i].value !== 0) { + data[i].itemStyle = { + ...data[i].itemStyle, + borderRadius: defaultBorderRadius, + } + top = j + + break + } + + if (data[i] !== 0) { + data[i] = { + value: data[i], + itemStyle: { borderRadius: defaultBorderRadius }, + } + top = j + + break + } + } + + // making sure everyone else is not round + for (let j = 0; j < safeVisibleSeries.length; j++) { + if (j === top) continue + + const data = safeVisibleSeries[j].data + + if (typeof data[i] === 'object') { + data[i].itemStyle = { + ...data[i].itemStyle, + borderRadius: [0, 0, 0, 0], + } + } else { + data[i] = { + value: data[i], + itemStyle: { borderRadius: [0, 0, 0, 0] }, + } as { value: number; itemStyle: { borderRadius: number[] } } + } + } + } + + return { series: safeVisibleSeries } +} + +/** + * Round the border for the action.type = 'exclusive' + */ +function barRoundingExclusive( + options: EChartsOption, + index: number +): EChartsOption { + const defaultBorderRadius = defaultTheme.bar.itemStyle.borderRadius + const series = options.series + + if (!series || !Array.isArray(series)) return options + + return { + series: series.map((serie, i) => { + if (i === index) { + return { + ...serie, + itemStyle: { + borderRadius: defaultBorderRadius, + }, + } + } + + return serie + }), + } +} diff --git a/packages/charts/tsconfig.json b/packages/charts/tsconfig.json new file mode 100644 index 0000000000..9907687682 --- /dev/null +++ b/packages/charts/tsconfig.json @@ -0,0 +1,14 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "declarationDir": "declarations" + }, + "include": ["./src"], + "exclude": [ + "node_modules", + "dist", + "**/*.test.*", + "**/*.stories.*", + "**/*test-utils*" + ] +} diff --git a/packages/charts/tsup.config.ts b/packages/charts/tsup.config.ts new file mode 100644 index 0000000000..140dfa0fbe --- /dev/null +++ b/packages/charts/tsup.config.ts @@ -0,0 +1,14 @@ +import { defineConfig } from 'tsup' + +export default defineConfig({ + entry: ['src/index.ts'], + format: ['cjs', 'esm'], + external: ['react'], + splitting: false, + sourcemap: true, + clean: true, + dts: true, + banner: { + js: "'use client'", + }, +}) diff --git a/packages/docs/examples/chart-animation.tsx b/packages/docs/examples/chart-animation.tsx new file mode 100644 index 0000000000..7fcb4bc791 --- /dev/null +++ b/packages/docs/examples/chart-animation.tsx @@ -0,0 +1,34 @@ +import { Chart } from '@vtex/shoreline-charts' + +const data2: number[] = [] +const data1: number[] = [] + +for (let i = 0; i < 25; i++) { + data1.push((Math.sin(i / 5) * (i / 5 - 10) + i / 6) * 5) + data2.push((Math.cos(i / 5) * (i / 5 - 10) + i / 6) * 5) +} + +export default function Example() { + return ( + idx * 50, + animationEasing: 'elasticInOut', + }, + ]} + option={{ + barGap: 0, + catgoryGap: 0, + title: { + text: 'Reload animation by clicking on the legend', + left: 'center', + }, + }} + /> + ) +} diff --git a/packages/docs/examples/chart-area-loading.tsx b/packages/docs/examples/chart-area-loading.tsx new file mode 100644 index 0000000000..f58822a6df --- /dev/null +++ b/packages/docs/examples/chart-area-loading.tsx @@ -0,0 +1,38 @@ +import { Button } from '@vtex/shoreline' +import { Chart } from '@vtex/shoreline-charts' +import { useState } from 'react' + +export default function Example() { + const [currentSeries, setCurrentSeries] = useState([]) + const [isLoading, setIsLoading] = useState(true) + + return ( + <> + + + + ) +} diff --git a/packages/docs/examples/chart-area-stacked.tsx b/packages/docs/examples/chart-area-stacked.tsx new file mode 100644 index 0000000000..5da419fd79 --- /dev/null +++ b/packages/docs/examples/chart-area-stacked.tsx @@ -0,0 +1,17 @@ +import { Chart } from '@vtex/shoreline-charts' + +export default function Example() { + return ( + + ) +} diff --git a/packages/docs/examples/chart-area.tsx b/packages/docs/examples/chart-area.tsx new file mode 100644 index 0000000000..d5a9aa5d64 --- /dev/null +++ b/packages/docs/examples/chart-area.tsx @@ -0,0 +1,15 @@ +import { Chart } from '@vtex/shoreline-charts' + +export default function Example() { + return ( + + ) +} diff --git a/packages/docs/examples/chart-bar-horizontal.tsx b/packages/docs/examples/chart-bar-horizontal.tsx new file mode 100644 index 0000000000..26dba407de --- /dev/null +++ b/packages/docs/examples/chart-bar-horizontal.tsx @@ -0,0 +1,15 @@ +import { Chart } from '@vtex/shoreline-charts' + +export default function Example() { + return ( + + ) +} diff --git a/packages/docs/examples/chart-bar-loading.tsx b/packages/docs/examples/chart-bar-loading.tsx new file mode 100644 index 0000000000..4bda7da469 --- /dev/null +++ b/packages/docs/examples/chart-bar-loading.tsx @@ -0,0 +1,36 @@ +import { Chart } from '@vtex/shoreline-charts' +import { useState } from 'react' +import { Button } from '@vtex/shoreline' + +export default function Example() { + const [currentSeries, setCurrentSeries] = useState([]) + const [isLoading, setIsLoading] = useState(true) + + return ( + <> + + + + ) +} diff --git a/packages/docs/examples/chart-bar-multi-bar.tsx b/packages/docs/examples/chart-bar-multi-bar.tsx new file mode 100644 index 0000000000..41a5406465 --- /dev/null +++ b/packages/docs/examples/chart-bar-multi-bar.tsx @@ -0,0 +1,15 @@ +import { Chart } from '@vtex/shoreline-charts' + +export default function Example() { + return ( + + ) +} diff --git a/packages/docs/examples/chart-bar-with-big-numbers.tsx b/packages/docs/examples/chart-bar-with-big-numbers.tsx new file mode 100644 index 0000000000..66e00b2930 --- /dev/null +++ b/packages/docs/examples/chart-bar-with-big-numbers.tsx @@ -0,0 +1,22 @@ +import { Chart } from '@vtex/shoreline-charts' + +export const compactNumber = (number: number) => { + const formatter = new Intl.NumberFormat('en-US', { + notation: 'compact', + maximumFractionDigits: 2, + }) + + return formatter.format(number) +} +export default function Example() { + return ( + compactNumber(value) }, + }} + series={[{ data: [12344441, 62346346, 97346346] }]} + chartConfig={{ type: 'bar', gap: 3 }} + /> + ) +} diff --git a/packages/docs/examples/chart-bar.tsx b/packages/docs/examples/chart-bar.tsx new file mode 100644 index 0000000000..8cd7d0095b --- /dev/null +++ b/packages/docs/examples/chart-bar.tsx @@ -0,0 +1,11 @@ +import { Chart } from '@vtex/shoreline-charts' + +export default function Example() { + return ( + + ) +} diff --git a/packages/docs/examples/chart-compositor-big.tsx b/packages/docs/examples/chart-compositor-big.tsx new file mode 100644 index 0000000000..7091276705 --- /dev/null +++ b/packages/docs/examples/chart-compositor-big.tsx @@ -0,0 +1,34 @@ +import { ChartCompositor } from '@vtex/shoreline-charts' +const data1: number[] = [] +const data2: number[] = [] +const data3: number[] = [] + +for (let i = 0; i < 25; i++) { + data1.push((Math.sin(i / 5) * (i / 5 - 10) + i / 6) * 5) + data2.push((Math.cos(i / 5) * (i / 5 - 10) + i / 6) * 5) + data3.push((data1[i] + data2[i]) / 2) +} + +export default function Example() { + return ( + + ) +} diff --git a/packages/docs/examples/chart-compositor-loading.tsx b/packages/docs/examples/chart-compositor-loading.tsx new file mode 100644 index 0000000000..e24fbe4aea --- /dev/null +++ b/packages/docs/examples/chart-compositor-loading.tsx @@ -0,0 +1,43 @@ +import { Button } from '@vtex/shoreline' +import { ChartCompositor } from '@vtex/shoreline-charts' +import { useState } from 'react' + +export default function Example() { + const [charts, setCharts] = useState([]) + const [isLoading, setIsLoading] = useState(true) + + return ( + <> + + + + ) +} diff --git a/packages/docs/examples/chart-compositor.tsx b/packages/docs/examples/chart-compositor.tsx new file mode 100644 index 0000000000..39b32f592a --- /dev/null +++ b/packages/docs/examples/chart-compositor.tsx @@ -0,0 +1,13 @@ +import { ChartCompositor } from '@vtex/shoreline-charts' + +export default function Example() { + return ( + + ) +} diff --git a/packages/docs/examples/chart-connection.tsx b/packages/docs/examples/chart-connection.tsx new file mode 100644 index 0000000000..502bbfb064 --- /dev/null +++ b/packages/docs/examples/chart-connection.tsx @@ -0,0 +1,42 @@ +import { Chart, ChartCompositor } from '@vtex/shoreline-charts' + +export default function Example() { + return ( + <> + + + + ) +} diff --git a/packages/docs/examples/chart-different-theme.tsx b/packages/docs/examples/chart-different-theme.tsx new file mode 100644 index 0000000000..81d0a39be0 --- /dev/null +++ b/packages/docs/examples/chart-different-theme.tsx @@ -0,0 +1,31 @@ +import { Chart, addHoverToLegendColor } from '@vtex/shoreline-charts' + +export default function Example() { + addHoverToLegendColor('var(--sl-color-red-10)', 'var(--sl-color-red-11)') + addHoverToLegendColor('var(--sl-color-pink-10)', 'var(--sl-color-pink-11)') + return ( + + ) +} diff --git a/packages/docs/examples/chart-hooks.tsx b/packages/docs/examples/chart-hooks.tsx new file mode 100644 index 0000000000..cb072178a1 --- /dev/null +++ b/packages/docs/examples/chart-hooks.tsx @@ -0,0 +1,31 @@ +import { Chart } from '@vtex/shoreline-charts' + +const hook = (options) => { + const a = options.series[0] + const b = options.series[1] + console.log(a.data[1]) + const average = options.xAxis.data.map((_, i) => (a.data[i] + b.data[i]) / 2) + console.log(average) + options.series.push({ + data: average, + name: 'Average', + type: 'line', + smooth: true, + }) + // some extra styling info needs to be passed since this runs after default styles are applied + return options +} + +export default function Example() { + return ( + + ) +} diff --git a/packages/docs/examples/chart-line-loading.tsx b/packages/docs/examples/chart-line-loading.tsx new file mode 100644 index 0000000000..48a003fc09 --- /dev/null +++ b/packages/docs/examples/chart-line-loading.tsx @@ -0,0 +1,55 @@ +import { Button } from '@vtex/shoreline' +import { Chart } from '@vtex/shoreline-charts' +import { useState } from 'react' + +export default function Example() { + const [currentSeries, setCurrentSeries] = useState([]) + const [isLoading, setIsLoading] = useState(true) + + return ( + <> + + + + ) +} diff --git a/packages/docs/examples/chart-line-trend.tsx b/packages/docs/examples/chart-line-trend.tsx new file mode 100644 index 0000000000..2654a67f02 --- /dev/null +++ b/packages/docs/examples/chart-line-trend.tsx @@ -0,0 +1,23 @@ +import { Chart } from '@vtex/shoreline-charts' + +export default function Example() { + return ( + + ) +} diff --git a/packages/docs/examples/chart-line.tsx b/packages/docs/examples/chart-line.tsx new file mode 100644 index 0000000000..c2171dbcc8 --- /dev/null +++ b/packages/docs/examples/chart-line.tsx @@ -0,0 +1,38 @@ +import { Chart } from '@vtex/shoreline-charts' + +export default function Example() { + return ( + { + return idx * 100 + }, + }} + style={{ height: 550 }} + /> + ) +} diff --git a/packages/docs/package.json b/packages/docs/package.json index e205d3514c..7e170d67c2 100644 --- a/packages/docs/package.json +++ b/packages/docs/package.json @@ -23,6 +23,7 @@ "@vtex/shoreline": "workspace:*", "@vtex/shoreline-ts-table": "workspace:*", "@vtex/shoreline-utils": "workspace:*", + "@vtex/shoreline-charts": "workspace:*", "fs-extra": "11.2.0", "google": "link:@next/third-parties/google", "next": "^15.0.0", diff --git a/packages/docs/pages/_app.tsx b/packages/docs/pages/_app.tsx index a8d471aa83..792b1fd1ae 100644 --- a/packages/docs/pages/_app.tsx +++ b/packages/docs/pages/_app.tsx @@ -1,6 +1,7 @@ import type { AppProps } from 'next/app' import { GoogleAnalytics } from '@next/third-parties/google' import '@vtex/shoreline/themes/sunrise/unlayered' +import '@vtex/shoreline-charts/css' import './global.css' export default function MyApp({ Component, pageProps }: AppProps) { diff --git a/packages/docs/pages/components/_meta.ts b/packages/docs/pages/components/_meta.ts index 11af07261a..6dc97697d9 100644 --- a/packages/docs/pages/components/_meta.ts +++ b/packages/docs/pages/components/_meta.ts @@ -34,6 +34,12 @@ export default { toast: 'Toast', tooltip: 'Tooltip', + DataVisualization: { type: 'separator', title: 'Data Visualization' }, + chart: 'Chart', + 'chart-bar': 'Bar Chart', + 'chart-line': 'Line Chart', + 'chart-area': 'Area Chart', + Date: { type: 'separator', title: 'Date' }, calendar: 'Calendar', 'date-field': 'DateField', @@ -43,9 +49,6 @@ export default { 'range-calendar': 'RangeCalendar', 'time-input': 'TimeInput', - DataVisualization: { type: 'separator', title: 'Data Visualization' }, - 'bar-chart': 'BarChart', - Primitives: { type: 'separator', title: 'Primitives' }, 'accessible-icon': 'AccessibleIcon', clickable: 'Clickable', diff --git a/packages/docs/pages/components/chart-area.mdx b/packages/docs/pages/components/chart-area.mdx new file mode 100644 index 0000000000..5e664f996d --- /dev/null +++ b/packages/docs/pages/components/chart-area.mdx @@ -0,0 +1,18 @@ +# Area Chart + + + + +# Variants + +## Overlapping + + + +## Stacked + + + +## Loading State + + diff --git a/packages/docs/pages/components/chart-bar.mdx b/packages/docs/pages/components/chart-bar.mdx new file mode 100644 index 0000000000..7a98d0040e --- /dev/null +++ b/packages/docs/pages/components/chart-bar.mdx @@ -0,0 +1,24 @@ +# Bar chart + + + + +## Variants + +### Vertical + + + +### Horizontal + + + +## Examples + +### With big numbers + + + +## Loading State + + diff --git a/packages/docs/pages/components/bar-chart.mdx b/packages/docs/pages/components/chart-bar/best-practices.mdx similarity index 100% rename from packages/docs/pages/components/bar-chart.mdx rename to packages/docs/pages/components/chart-bar/best-practices.mdx diff --git a/packages/docs/pages/components/chart-line.mdx b/packages/docs/pages/components/chart-line.mdx new file mode 100644 index 0000000000..388319ed5c --- /dev/null +++ b/packages/docs/pages/components/chart-line.mdx @@ -0,0 +1,20 @@ +# Line chart + + + + +## Variants + +### Default + + + +## Examples + +### Trend Line + + + +## Loading state + + diff --git a/packages/docs/pages/components/chart.mdx b/packages/docs/pages/components/chart.mdx new file mode 100644 index 0000000000..434804689c --- /dev/null +++ b/packages/docs/pages/components/chart.mdx @@ -0,0 +1,12 @@ +# Chart + + + +## Examples + + +## Required props + + +## Optional props + diff --git a/packages/docs/pages/components/chart/animation.mdx b/packages/docs/pages/components/chart/animation.mdx new file mode 100644 index 0000000000..d2a9aba956 --- /dev/null +++ b/packages/docs/pages/components/chart/animation.mdx @@ -0,0 +1,17 @@ +# Chart animation +Defined by `animationDelay`, `animationDuration` and `animationEasing`. + +Delay and duration can receive number or functions. Functions can make every bar have different properties. + +Easing receives a string indicating the [easing function](https://echarts.apache.org/examples/en/editor.html?c=line-easing). + + +## Updating vs adding and removing +`animationDelay` and the others set the delay for when a point is added or removed. To change these properties for updated points we add the 'Update' suffix. + +Generally update animations should be shorter. + +## Performance +Animations are automatically disabled when a certain threshold of points is passed, so as to not hinder performance. + +In _options_ `animationThreshold` configures this threshold, while `animation:false` turns any animation off. diff --git a/packages/docs/pages/components/chart/chart-compositor.mdx b/packages/docs/pages/components/chart/chart-compositor.mdx new file mode 100644 index 0000000000..55ccf901e6 --- /dev/null +++ b/packages/docs/pages/components/chart/chart-compositor.mdx @@ -0,0 +1,12 @@ +# Chart Compositor + + + +## Examples + + +## Loading State + + +## Required Props + diff --git a/packages/docs/pages/components/chart/hooks.mdx b/packages/docs/pages/components/chart/hooks.mdx new file mode 100644 index 0000000000..5e7e48a291 --- /dev/null +++ b/packages/docs/pages/components/chart/hooks.mdx @@ -0,0 +1,20 @@ +# Chart hooks + +The hooks are functions that are applied to the chart options to modify the chart options before it is rendered. +The component receives an array of hooks as a prop and applies them in the order they are passed. +All hook functions receive the chart options as a parameter and return the modified options. + +## Execution Stack + +The hooks are executed in the following order: + +1. Default hooks +2. User hooks +3. Default Shoreline style options +4. User style options + +This way, the user can modify the chart options and the features still will be calculated based on the user options. + +## Example + + diff --git a/packages/docs/pages/components/chart/synchronization.mdx b/packages/docs/pages/components/chart/synchronization.mdx new file mode 100644 index 0000000000..6382fd6ee1 --- /dev/null +++ b/packages/docs/pages/components/chart/synchronization.mdx @@ -0,0 +1,10 @@ +# Synchronization/Grouping +Allows multiple charts in the same `group` to share events, + meaning that when a tooltip is spawned by one of them (on mouse hover), + all other charts in the same group will also spawn a tooltip, at that same serie. + + Toggling one chart's legend will also toggle all the others in the same group. + +As many charts as desired can be part of the same group, so long as all of them have the same value in the `group` prop. +> Charts do not need to share the same series names or axis names for this feature to work. + diff --git a/packages/docs/public/assets/all-chart-area.png b/packages/docs/public/assets/all-chart-area.png new file mode 100644 index 0000000000..656b11ffa6 Binary files /dev/null and b/packages/docs/public/assets/all-chart-area.png differ diff --git a/packages/docs/public/assets/all-chart-bar.png b/packages/docs/public/assets/all-chart-bar.png new file mode 100644 index 0000000000..656b11ffa6 Binary files /dev/null and b/packages/docs/public/assets/all-chart-bar.png differ diff --git a/packages/docs/public/assets/all-chart-line.png b/packages/docs/public/assets/all-chart-line.png new file mode 100644 index 0000000000..329fc89d0d Binary files /dev/null and b/packages/docs/public/assets/all-chart-line.png differ diff --git a/packages/docs/scripts/build-props.mjs b/packages/docs/scripts/build-props.mjs index 9bc6f0eae4..ddadae4219 100644 --- a/packages/docs/scripts/build-props.mjs +++ b/packages/docs/scripts/build-props.mjs @@ -7,131 +7,138 @@ import { format } from 'prettier' const outputDirectory = `${dirname('')}/__props__` const outputFile = 'index.ts' +const chartFile = getPath('charts', 'components', 'chart', 'chart') + const files = [ /** * Primitives */ - getPath('components', 'accessible-icon', 'accessible-icon'), - getPath('components', 'clickable', 'clickable'), - getPath('components', 'clickable', 'clickable-bubble'), - getPath('components', 'combobox', 'combobox'), - getPath('components', 'combobox', 'combobox-provider'), - getPath('components', 'combobox', 'combobox-popover'), - getPath('components', 'combobox', 'combobox-list'), - getPath('components', 'combobox', 'combobox-item'), - getPath('components', 'compose', 'compose'), - getPath('components', 'compose', 'composable'), - getPath('components', 'link-box', 'link-box'), - getPath('components', 'locale', 'locale-provider'), - getPath('components', 'visually-hidden', 'visually-hidden'), + getPath('shoreline', 'components', 'accessible-icon', 'accessible-icon'), + getPath('shoreline', 'components', 'clickable', 'clickable'), + getPath('shoreline', 'components', 'clickable', 'clickable-bubble'), + getPath('shoreline', 'components', 'combobox', 'combobox'), + getPath('shoreline', 'components', 'combobox', 'combobox-provider'), + getPath('shoreline', 'components', 'combobox', 'combobox-popover'), + getPath('shoreline', 'components', 'combobox', 'combobox-list'), + getPath('shoreline', 'components', 'combobox', 'combobox-item'), + getPath('shoreline', 'components', 'compose', 'compose'), + getPath('shoreline', 'components', 'compose', 'composable'), + getPath('shoreline', 'components', 'link-box', 'link-box'), + getPath('shoreline', 'components', 'locale', 'locale-provider'), + getPath('shoreline', 'components', 'visually-hidden', 'visually-hidden'), /** * Components */ - getPath('components', 'alert', 'alert'), - getPath('components', 'bleed', 'bleed'), - getPath('components', 'button', 'button'), - getPath('components', 'center', 'center'), - getPath('components', 'checkbox', 'checkbox'), - getPath('components', 'checkbox', 'checkbox-group'), - getPath('components', 'collection', 'collection'), - getPath('components', 'collection', 'collection-view'), - getPath('components', 'collection', 'collection-row'), - getPath('components', 'confirmation-modal', 'confirmation-modal'), - getPath('components', 'content', 'content'), - getPath('components', 'content', 'container'), - getPath('components', 'contextual-help', 'contextual-help'), - getPath('components', 'divider', 'divider'), - getPath('components', 'drawer', 'drawer-content'), - getPath('components', 'drawer', 'drawer-dismiss'), - getPath('components', 'drawer', 'drawer-footer'), - getPath('components', 'drawer', 'drawer-header'), - getPath('components', 'drawer', 'drawer-heading'), - getPath('components', 'drawer', 'drawer-popover'), - getPath('components', 'drawer', 'drawer-provider'), - getPath('components', 'drawer', 'drawer-trigger'), - getPath('components', 'empty-state', 'empty-state'), - getPath('components', 'empty-state', 'empty-state-actions'), - getPath('components', 'empty-state', 'empty-state-illustration'), - getPath('components', 'field', 'field'), - getPath('components', 'field', 'field-provider'), - getPath('components', 'field', 'field-error'), - getPath('components', 'field', 'field-description'), - getPath('components', 'field', 'field-char-counter'), - getPath('components', 'filter', 'filter'), - getPath('components', 'filter', 'filter-value'), - getPath('components', 'filter', 'filter-trigger'), - getPath('components', 'filter', 'filter-provider'), - getPath('components', 'filter', 'filter-popover'), - getPath('components', 'filter', 'filter-list'), - getPath('components', 'filter', 'filter-list-skeleton'), - getPath('components', 'filter', 'filter-item'), - getPath('components', 'filter', 'filter-item-check'), - getPath('components', 'filter', 'filter-clear'), - getPath('components', 'filter', 'filter-apply'), - getPath('components', 'flex', 'flex'), - getPath('components', 'grid', 'grid'), - getPath('components', 'grid', 'grid-cell'), - getPath('components', 'heading', 'heading'), - getPath('components', 'icon-button', 'icon-button'), - getPath('components', 'input', 'input'), - getPath('components', 'label', 'label'), - getPath('components', 'link', 'link'), - getPath('components', 'menu', 'menu'), - getPath('components', 'menu', 'menu-trigger'), - getPath('components', 'menu', 'menu-separator'), - getPath('components', 'menu', 'menu-provider'), - getPath('components', 'menu', 'menu-popover'), - getPath('components', 'menu', 'menu-item'), - getPath('components', 'modal', 'modal'), - getPath('components', 'modal', 'modal-heading'), - getPath('components', 'modal', 'modal-header'), - getPath('components', 'modal', 'modal-footer'), - getPath('components', 'modal', 'modal-dismiss'), - getPath('components', 'modal', 'modal-content'), - getPath('components', 'page', 'page'), - getPath('components', 'page', 'page-heading'), - getPath('components', 'page', 'page-header'), - getPath('components', 'page', 'page-header-row'), - getPath('components', 'page', 'page-content'), - getPath('components', 'pagination', 'pagination'), - getPath('components', 'popover', 'popover'), - getPath('components', 'popover', 'popover-trigger'), - getPath('components', 'popover', 'popover-provider'), - getPath('components', 'popover', 'popover-dismiss'), - getPath('components', 'radio', 'radio'), - getPath('components', 'radio', 'radio-group'), - getPath('components', 'search', 'search'), - getPath('components', 'select', 'select'), - getPath('components', 'select', 'select-trigger'), - getPath('components', 'select', 'select-provider'), - getPath('components', 'select', 'select-popover'), - getPath('components', 'select', 'select-list'), - getPath('components', 'select', 'select-item'), - getPath('components', 'select', 'select-item-check'), - getPath('components', 'skeleton', 'skeleton'), - getPath('components', 'spinner', 'spinner'), - getPath('components', 'stack', 'stack'), - getPath('components', 'tab', 'tab'), - getPath('components', 'tab', 'tab-provider'), - getPath('components', 'tab', 'tab-panel'), - getPath('components', 'tab', 'tab-list'), - getPath('components', 'table', 'table'), - getPath('components', 'table', 'table-sort-indicator'), - getPath('components', 'table', 'table-row'), - getPath('components', 'table', 'table-header'), - getPath('components', 'table', 'table-header-cell'), - getPath('components', 'table', 'table-cell'), - getPath('components', 'table', 'table-body'), - getPath('components', 'tag', 'tag'), - getPath('components', 'text', 'text'), - getPath('components', 'textarea', 'textarea'), - getPath('components', 'toast', 'toast'), - getPath('components', 'toast', 'toast-stack'), - getPath('components', 'tooltip', 'tooltip'), - getPath('components', 'tooltip', 'tooltip-trigger'), - getPath('components', 'tooltip', 'tooltip-provider'), - getPath('components', 'tooltip', 'tooltip-popover'), - getPath('components', 'tooltip', 'tooltip-arrow'), + getPath('shoreline', 'components', 'alert', 'alert'), + getPath('shoreline', 'components', 'bleed', 'bleed'), + getPath('shoreline', 'components', 'button', 'button'), + getPath('shoreline', 'components', 'center', 'center'), + getPath('shoreline', 'components', 'checkbox', 'checkbox'), + getPath('shoreline', 'components', 'checkbox', 'checkbox-group'), + getPath('shoreline', 'components', 'collection', 'collection'), + getPath('shoreline', 'components', 'collection', 'collection-view'), + getPath('shoreline', 'components', 'collection', 'collection-row'), + getPath( + 'shoreline', + 'components', + 'confirmation-modal', + 'confirmation-modal' + ), + getPath('shoreline', 'components', 'content', 'content'), + getPath('shoreline', 'components', 'content', 'container'), + getPath('shoreline', 'components', 'contextual-help', 'contextual-help'), + getPath('shoreline', 'components', 'divider', 'divider'), + getPath('shoreline', 'components', 'drawer', 'drawer-content'), + getPath('shoreline', 'components', 'drawer', 'drawer-dismiss'), + getPath('shoreline', 'components', 'drawer', 'drawer-footer'), + getPath('shoreline', 'components', 'drawer', 'drawer-header'), + getPath('shoreline', 'components', 'drawer', 'drawer-heading'), + getPath('shoreline', 'components', 'drawer', 'drawer-popover'), + getPath('shoreline', 'components', 'drawer', 'drawer-provider'), + getPath('shoreline', 'components', 'drawer', 'drawer-trigger'), + getPath('shoreline', 'components', 'empty-state', 'empty-state'), + getPath('shoreline', 'components', 'empty-state', 'empty-state-actions'), + getPath('shoreline', 'components', 'empty-state', 'empty-state-illustration'), + getPath('shoreline', 'components', 'field', 'field'), + getPath('shoreline', 'components', 'field', 'field-provider'), + getPath('shoreline', 'components', 'field', 'field-error'), + getPath('shoreline', 'components', 'field', 'field-description'), + getPath('shoreline', 'components', 'field', 'field-char-counter'), + getPath('shoreline', 'components', 'filter', 'filter'), + getPath('shoreline', 'components', 'filter', 'filter-value'), + getPath('shoreline', 'components', 'filter', 'filter-trigger'), + getPath('shoreline', 'components', 'filter', 'filter-provider'), + getPath('shoreline', 'components', 'filter', 'filter-popover'), + getPath('shoreline', 'components', 'filter', 'filter-list'), + getPath('shoreline', 'components', 'filter', 'filter-list-skeleton'), + getPath('shoreline', 'components', 'filter', 'filter-item'), + getPath('shoreline', 'components', 'filter', 'filter-item-check'), + getPath('shoreline', 'components', 'filter', 'filter-clear'), + getPath('shoreline', 'components', 'filter', 'filter-apply'), + getPath('shoreline', 'components', 'flex', 'flex'), + getPath('shoreline', 'components', 'grid', 'grid'), + getPath('shoreline', 'components', 'grid', 'grid-cell'), + getPath('shoreline', 'components', 'heading', 'heading'), + getPath('shoreline', 'components', 'icon-button', 'icon-button'), + getPath('shoreline', 'components', 'input', 'input'), + getPath('shoreline', 'components', 'label', 'label'), + getPath('shoreline', 'components', 'link', 'link'), + getPath('shoreline', 'components', 'menu', 'menu'), + getPath('shoreline', 'components', 'menu', 'menu-trigger'), + getPath('shoreline', 'components', 'menu', 'menu-separator'), + getPath('shoreline', 'components', 'menu', 'menu-provider'), + getPath('shoreline', 'components', 'menu', 'menu-popover'), + getPath('shoreline', 'components', 'menu', 'menu-item'), + getPath('shoreline', 'components', 'modal', 'modal'), + getPath('shoreline', 'components', 'modal', 'modal-heading'), + getPath('shoreline', 'components', 'modal', 'modal-header'), + getPath('shoreline', 'components', 'modal', 'modal-footer'), + getPath('shoreline', 'components', 'modal', 'modal-dismiss'), + getPath('shoreline', 'components', 'modal', 'modal-content'), + getPath('shoreline', 'components', 'page', 'page'), + getPath('shoreline', 'components', 'page', 'page-heading'), + getPath('shoreline', 'components', 'page', 'page-header'), + getPath('shoreline', 'components', 'page', 'page-header-row'), + getPath('shoreline', 'components', 'page', 'page-content'), + getPath('shoreline', 'components', 'pagination', 'pagination'), + getPath('shoreline', 'components', 'popover', 'popover'), + getPath('shoreline', 'components', 'popover', 'popover-trigger'), + getPath('shoreline', 'components', 'popover', 'popover-provider'), + getPath('shoreline', 'components', 'popover', 'popover-dismiss'), + getPath('shoreline', 'components', 'radio', 'radio'), + getPath('shoreline', 'components', 'radio', 'radio-group'), + getPath('shoreline', 'components', 'search', 'search'), + getPath('shoreline', 'components', 'select', 'select'), + getPath('shoreline', 'components', 'select', 'select-trigger'), + getPath('shoreline', 'components', 'select', 'select-provider'), + getPath('shoreline', 'components', 'select', 'select-popover'), + getPath('shoreline', 'components', 'select', 'select-list'), + getPath('shoreline', 'components', 'select', 'select-item'), + getPath('shoreline', 'components', 'select', 'select-item-check'), + getPath('shoreline', 'components', 'skeleton', 'skeleton'), + getPath('shoreline', 'components', 'spinner', 'spinner'), + getPath('shoreline', 'components', 'stack', 'stack'), + getPath('shoreline', 'components', 'tab', 'tab'), + getPath('shoreline', 'components', 'tab', 'tab-provider'), + getPath('shoreline', 'components', 'tab', 'tab-panel'), + getPath('shoreline', 'components', 'tab', 'tab-list'), + getPath('shoreline', 'components', 'table', 'table'), + getPath('shoreline', 'components', 'table', 'table-sort-indicator'), + getPath('shoreline', 'components', 'table', 'table-row'), + getPath('shoreline', 'components', 'table', 'table-header'), + getPath('shoreline', 'components', 'table', 'table-header-cell'), + getPath('shoreline', 'components', 'table', 'table-cell'), + getPath('shoreline', 'components', 'table', 'table-body'), + getPath('shoreline', 'components', 'tag', 'tag'), + getPath('shoreline', 'components', 'text', 'text'), + getPath('shoreline', 'components', 'textarea', 'textarea'), + getPath('shoreline', 'components', 'toast', 'toast'), + getPath('shoreline', 'components', 'toast', 'toast-stack'), + getPath('shoreline', 'components', 'tooltip', 'tooltip'), + getPath('shoreline', 'components', 'tooltip', 'tooltip-trigger'), + getPath('shoreline', 'components', 'tooltip', 'tooltip-provider'), + getPath('shoreline', 'components', 'tooltip', 'tooltip-popover'), + getPath('shoreline', 'components', 'tooltip', 'tooltip-arrow'), /** * ts-table */ @@ -139,18 +146,41 @@ const files = [ /** * Date */ - getPath('components', 'calendar', 'calendar'), - getPath('components', 'calendar', 'calendar-cell'), - getPath('components', 'calendar', 'calendar-grid'), - getPath('components', 'calendar', 'calendar-header'), - getPath('components', 'calendar', 'calendar-provider'), - getPath('components', 'calendar', 'calendar-title'), - getPath('components', 'date-field', 'date-field'), - getPath('components', 'date-picker', 'date-picker'), - getPath('components', 'date-range-picker', 'date-range-picker'), - getPath('components', 'date-segment', 'date-segment'), - getPath('components', 'range-calendar', 'range-calendar'), - getPath('components', 'time-input', 'time-input'), + getPath('shoreline', 'components', 'calendar', 'calendar'), + getPath('shoreline', 'components', 'calendar', 'calendar-cell'), + getPath('shoreline', 'components', 'calendar', 'calendar-grid'), + getPath('shoreline', 'components', 'calendar', 'calendar-header'), + getPath('shoreline', 'components', 'calendar', 'calendar-provider'), + getPath('shoreline', 'components', 'calendar', 'calendar-title'), + getPath('shoreline', 'components', 'date-field', 'date-field'), + getPath('shoreline', 'components', 'date-picker', 'date-picker'), + getPath('shoreline', 'components', 'date-range-picker', 'date-range-picker'), + getPath('shoreline', 'components', 'date-segment', 'date-segment'), + getPath('shoreline', 'components', 'range-calendar', 'range-calendar'), + getPath('shoreline', 'components', 'time-input', 'time-input'), + /** + * Charts + */ + chartFile, + getPath('charts', 'components', 'chart-compositor', 'chart-compositor'), +] + +const chartVariants = [ + { + type: 'Bar', + description: + 'Bar charts use vertical or horizontal data markers to compare individual values. You can use them to compare discrete data or show trends over time.', + }, + { + type: 'Line', + description: + 'Line charts use a series of connected data points to visualize changes and trends over a continuous period. They are ideal for tracking progress, fluctuations, or patterns over time.', + }, + { + type: 'Area', + description: + 'Area charts illustrate how values change over time, making them effective for highlighting trends, showing accumulated totals, or tracking variations in volume across different periods.', + }, ] let tsCode = ` @@ -174,6 +204,23 @@ async function main() { ` } }) + chartVariants.forEach((chartVariant) => { + const ref = getReferences(chartFile)[0] + if (ref) { + const displayName = chartVariant.type + const refName = `${ref?.name}-${chartVariant.type}` + const newRef = { + ...ref, + name: displayName, + description: chartVariant.description, + } + refs[kebabCase(refName)] = newRef + + tsCode += ` + "${kebabCase(refName)}": ${JSON.stringify(newRef)}, + ` + } + }) tsCode += '}' @@ -192,8 +239,8 @@ async function main() { }) } -function getPath(pkg, folder, file) { - return join(dirname(''), `../shoreline/src/${pkg}/${folder}/${file}.tsx`) +function getPath(pkg, path, folder, file) { + return join(dirname(''), `../${pkg}/src/${path}/${folder}/${file}.tsx`) } main() diff --git a/packages/docs/utils/all-components-list.ts b/packages/docs/utils/all-components-list.ts index 1a0c55b49b..38ca373eec 100644 --- a/packages/docs/utils/all-components-list.ts +++ b/packages/docs/utils/all-components-list.ts @@ -55,3 +55,5 @@ export const allPrimitivesList = [ 'locale-provider', 'visually-hidden', ] + +export const allChartsList = ['bar', 'line', 'area'] diff --git a/packages/shoreline/tsup.config.bundled_2y5c6o8a1dz.mjs b/packages/shoreline/tsup.config.bundled_2y5c6o8a1dz.mjs new file mode 100644 index 0000000000..140dfa0fbe --- /dev/null +++ b/packages/shoreline/tsup.config.bundled_2y5c6o8a1dz.mjs @@ -0,0 +1,14 @@ +import { defineConfig } from 'tsup' + +export default defineConfig({ + entry: ['src/index.ts'], + format: ['cjs', 'esm'], + external: ['react'], + splitting: false, + sourcemap: true, + clean: true, + dts: true, + banner: { + js: "'use client'", + }, +}) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index bc602659f8..f24a0fd323 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,18 +9,18 @@ importers: .: dependencies: '@storybook/test': - specifier: ^8.3.6 - version: 8.3.6(storybook@8.3.6) + specifier: ^8.6.7 + version: 8.6.7(storybook@8.6.7(prettier@3.5.3)) dotenv: - specifier: ^16.4.5 - version: 16.4.5 + specifier: ^16.4.7 + version: 16.4.7 devDependencies: '@biomejs/biome': specifier: 1.9.4 version: 1.9.4 '@chromatic-com/storybook': - specifier: ^1 - version: 1.5.0(react@18.3.1) + specifier: ^3.2.6 + version: 3.2.6(react@18.3.1)(storybook@8.6.7(prettier@3.5.3)) '@commitlint/cli': specifier: ^9.1.2 version: 9.1.2 @@ -31,41 +31,41 @@ importers: specifier: ^9.1.2 version: 9.1.2 '@playwright/test': - specifier: ^1.43.0 - version: 1.44.1 + specifier: ^1.51.1 + version: 1.51.1 '@storybook/addon-a11y': - specifier: ^8.3.6 - version: 8.3.6(storybook@8.3.6) + specifier: ^8.6.7 + version: 8.6.7(storybook@8.6.7(prettier@3.5.3)) '@storybook/addon-actions': - specifier: ^8.3.6 - version: 8.3.6(storybook@8.3.6) + specifier: ^8.6.7 + version: 8.6.7(storybook@8.6.7(prettier@3.5.3)) '@storybook/addon-essentials': - specifier: ^8.3.6 - version: 8.3.6(storybook@8.3.6) + specifier: ^8.6.7 + version: 8.6.7(@types/react@18.3.11)(storybook@8.6.7(prettier@3.5.3)) '@storybook/addon-interactions': - specifier: ^8.3.6 - version: 8.3.6(storybook@8.3.6) + specifier: ^8.6.7 + version: 8.6.7(storybook@8.6.7(prettier@3.5.3)) '@storybook/addon-links': - specifier: ^8.3.6 - version: 8.3.6(react@18.3.1)(storybook@8.3.6) + specifier: ^8.6.7 + version: 8.6.7(react@18.3.1)(storybook@8.6.7(prettier@3.5.3)) '@storybook/addon-storysource': - specifier: ^8.3.6 - version: 8.3.6(storybook@8.3.6) + specifier: ^8.6.7 + version: 8.6.7(storybook@8.6.7(prettier@3.5.3)) '@storybook/react': - specifier: ^8.3.6 - version: 8.3.6(@storybook/test@8.3.6(storybook@8.3.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.3.6)(typescript@5.5.2) + specifier: ^8.6.7 + version: 8.6.7(@storybook/test@8.6.7(storybook@8.6.7(prettier@3.5.3)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.6.7(prettier@3.5.3))(typescript@5.5.2) '@storybook/react-vite': - specifier: ^8.3.6 - version: 8.3.6(@storybook/test@8.3.6(storybook@8.3.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.24.0)(storybook@8.3.6)(typescript@5.5.2)(vite@5.4.9(@types/node@20.14.9)(lightningcss@1.27.0)(terser@5.31.0)) + specifier: ^8.6.7 + version: 8.6.7(@storybook/test@8.6.7(storybook@8.6.7(prettier@3.5.3)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.36.0)(storybook@8.6.7(prettier@3.5.3))(typescript@5.5.2)(vite@5.4.9(@types/node@20.14.9)(lightningcss@1.27.0)(terser@5.39.0)) '@storybook/react-webpack5': - specifier: ^8.3.6 - version: 8.3.6(@storybook/test@8.3.6(storybook@8.3.6))(@swc/core@1.5.24(@swc/helpers@0.5.13))(esbuild@0.21.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.3.6)(typescript@5.5.2) + specifier: ^8.6.7 + version: 8.6.7(@storybook/test@8.6.7(storybook@8.6.7(prettier@3.5.3)))(@swc/core@1.11.11(@swc/helpers@0.5.13))(esbuild@0.21.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.6.7(prettier@3.5.3))(typescript@5.5.2) '@storybook/test-runner': specifier: ^0.17.0 - version: 0.17.0(@swc/helpers@0.5.13)(@types/node@20.14.9)(encoding@0.1.13)(prettier@3.3.3) + version: 0.17.0(@swc/helpers@0.5.13)(@types/node@20.14.9)(storybook@8.6.7(prettier@3.5.3)) '@storybook/theming': - specifier: ^8.3.6 - version: 8.3.6(storybook@8.3.6) + specifier: ^8.6.7 + version: 8.6.7(storybook@8.6.7(prettier@3.5.3)) '@types/node': specifier: 20.14.9 version: 20.14.9 @@ -77,16 +77,16 @@ importers: version: 18.3.1 '@vitejs/plugin-react': specifier: 4.1.0 - version: 4.1.0(vite@5.4.9(@types/node@20.14.9)(lightningcss@1.27.0)(terser@5.31.0)) + version: 4.1.0(vite@5.4.9(@types/node@20.14.9)(lightningcss@1.27.0)(terser@5.39.0)) '@vtex/shoreline-test-utils': specifier: workspace:* version: link:packages/test-utils chromatic: - specifier: ^9.1.0 - version: 9.1.0 + specifier: ^11.27.0 + version: 11.27.0 commitizen: - specifier: ^4.2.0 - version: 4.3.0(@types/node@20.14.9)(typescript@5.5.2) + specifier: ^4.3.1 + version: 4.3.1(@types/node@20.14.9)(typescript@5.5.2) concurrently: specifier: ^8.2.2 version: 8.2.2 @@ -101,7 +101,7 @@ importers: version: 23.0.0 lerna: specifier: 8.1.4 - version: 8.1.4(@swc/core@1.5.24(@swc/helpers@0.5.13))(encoding@0.1.13) + version: 8.1.4(@swc/core@1.11.11(@swc/helpers@0.5.13))(encoding@0.1.13) lint-staged: specifier: ^14.0.1 version: 14.0.1(enquirer@2.3.6) @@ -124,14 +124,14 @@ importers: specifier: 18.3.1 version: 18.3.1(react@18.3.1) storybook: - specifier: ^8.3.6 - version: 8.3.6 + specifier: ^8.6.7 + version: 8.6.7(prettier@3.5.3) tslib: specifier: 2.6.3 version: 2.6.3 tsup: specifier: 8.1.0 - version: 8.1.0(@swc/core@1.5.24(@swc/helpers@0.5.13))(postcss@8.4.38)(typescript@5.5.2) + version: 8.1.0(@swc/core@1.11.11(@swc/helpers@0.5.13))(postcss@8.5.3)(typescript@5.5.2) turbo: specifier: 2.2.3 version: 2.2.3 @@ -140,14 +140,45 @@ importers: version: 5.5.2 vite: specifier: 5.4.9 - version: 5.4.9(@types/node@20.14.9)(lightningcss@1.27.0)(terser@5.31.0) + version: 5.4.9(@types/node@20.14.9)(lightningcss@1.27.0)(terser@5.39.0) vitest: specifier: 1.6.0 - version: 1.6.0(@types/node@20.14.9)(jsdom@23.0.0)(lightningcss@1.27.0)(terser@5.31.0) + version: 1.6.0(@types/node@20.14.9)(jsdom@23.0.0)(lightningcss@1.27.0)(terser@5.39.0) wait-on: specifier: 7.2.0 version: 7.2.0 + packages/charts: + dependencies: + '@vtex/shoreline-utils': + specifier: workspace:* + version: link:../utils + echarts: + specifier: ^6.0.0 + version: 6.0.0 + echarts-for-react: + specifier: ^3.0.4 + version: 3.0.4(echarts@6.0.0)(react@18.3.1) + lodash.clonedeep: + specifier: ^4.5.0 + version: 4.5.0 + react: + specifier: 18.x + version: 18.3.1 + react-dom: + specifier: 18.x + version: 18.3.1(react@18.3.1) + vitest-canvas-mock: + specifier: ^0.3.3 + version: 0.3.3(vitest@1.6.0(@types/node@22.7.8)(jsdom@23.0.0)(lightningcss@1.27.0)(terser@5.39.0)) + devDependencies: + '@types/lodash.clonedeep': + specifier: ^4.5.9 + version: 4.5.9 + '@vtex/shoreline': + specifier: workspace:* + version: link:../shoreline + packages/css: dependencies: '@vtex/shoreline-utils': @@ -174,19 +205,22 @@ importers: dependencies: '@next/third-parties': specifier: ^15.0.0 - version: 15.0.0(next@15.0.0(@babel/core@7.24.6)(@opentelemetry/api@1.9.0)(@playwright/test@1.44.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) + version: 15.0.0(next@15.0.0(@babel/core@7.24.6)(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) '@octokit/graphql': specifier: ^8.1.1 version: 8.1.1 '@sentry/nextjs': specifier: ^8.35.0 - version: 8.35.0(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.26.0(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.53.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.26.0(@opentelemetry/api@1.9.0))(encoding@0.1.13)(next@15.0.0(@babel/core@7.24.6)(@opentelemetry/api@1.9.0)(@playwright/test@1.44.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)(webpack@5.91.0(@swc/core@1.5.24(@swc/helpers@0.5.13))(esbuild@0.21.5)) + version: 8.35.0(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.26.0(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.53.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.26.0(@opentelemetry/api@1.9.0))(encoding@0.1.13)(next@15.0.0(@babel/core@7.24.6)(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)(webpack@5.98.0(@swc/core@1.11.11(@swc/helpers@0.5.13))(esbuild@0.21.5)) '@tanstack/react-table': specifier: 8.17.3 version: 8.17.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@vtex/shoreline': specifier: workspace:* version: link:../shoreline + '@vtex/shoreline-charts': + specifier: workspace:* + version: link:../charts '@vtex/shoreline-ts-table': specifier: workspace:* version: link:../ts-table @@ -201,13 +235,13 @@ importers: version: link:@next/third-parties/google next: specifier: ^15.0.0 - version: 15.0.0(@babel/core@7.24.6)(@opentelemetry/api@1.9.0)(@playwright/test@1.44.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 15.0.0(@babel/core@7.24.6)(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) nextra: specifier: ^3.0.15 - version: 3.0.15(@types/react@18.3.11)(acorn@8.13.0)(next@15.0.0(@babel/core@7.24.6)(@opentelemetry/api@1.9.0)(@playwright/test@1.44.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.2) + version: 3.0.15(@types/react@18.3.11)(acorn@8.13.0)(next@15.0.0(@babel/core@7.24.6)(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.2) nextra-theme-docs: specifier: ^3.0.15 - version: 3.0.15(next@15.0.0(@babel/core@7.24.6)(@opentelemetry/api@1.9.0)(@playwright/test@1.44.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(nextra@3.0.15(@types/react@18.3.11)(acorn@8.13.0)(next@15.0.0(@babel/core@7.24.6)(@opentelemetry/api@1.9.0)(@playwright/test@1.44.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 3.0.15(next@15.0.0(@babel/core@7.24.6)(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(nextra@3.0.15(@types/react@18.3.11)(acorn@8.13.0)(next@15.0.0(@babel/core@7.24.6)(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) prettier: specifier: ^3.3.3 version: 3.3.3 @@ -335,7 +369,7 @@ importers: version: 9.3.4 '@testing-library/jest-dom': specifier: 6.4.6 - version: 6.4.6(@jest/globals@29.7.0)(jest@29.7.0(@types/node@20.14.9))(vitest@0.34.6(jsdom@23.0.0)(lightningcss@1.27.0)(playwright@1.44.1)(terser@5.31.0)) + version: 6.4.6(@jest/globals@29.7.0)(jest@29.7.0(@types/node@20.14.9))(vitest@0.34.6(jsdom@23.0.0)(lightningcss@1.27.0)(playwright@1.51.1)(terser@5.39.0)) '@testing-library/react': specifier: 14.3.1 version: 14.3.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -345,7 +379,7 @@ importers: devDependencies: vitest: specifier: 0.34.6 - version: 0.34.6(jsdom@23.0.0)(lightningcss@1.27.0)(playwright@1.44.1)(terser@5.31.0) + version: 0.34.6(jsdom@23.0.0)(lightningcss@1.27.0)(playwright@1.51.1)(terser@5.39.0) packages/ts-table: dependencies: @@ -411,6 +445,9 @@ packages: '@adobe/css-tools@4.4.0': resolution: {integrity: sha512-Ff9+ksdQQB3rMncgqDK78uLznstjyfIf2Arnh22pW8kBpLs6rpKDwgnZT46hin5Hl1WzazzK64DOrhSwYpS7bQ==} + '@adobe/css-tools@4.4.2': + resolution: {integrity: sha512-baYZExFpsdkBNuvGKTKWCwKH57HRZLVtycZS05WTQNVOiXVSeAki3nU35zlRbToeMW8aHlJfyS+1C4BOv27q0A==} + '@ampproject/remapping@2.3.0': resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} @@ -440,78 +477,70 @@ packages: resolution: {integrity: sha512-ZJhac6FkEd1yhG2AHOmfcXG4ceoLltoCVJjN5XsWN9BifBQr+cHJbWi0h68HZuSORq+3WtJ2z0hwF2NG1b5kcA==} engines: {node: '>=6.9.0'} - '@babel/compat-data@7.24.6': - resolution: {integrity: sha512-aC2DGhBq5eEdyXWqrDInSqQjO0k8xtPRf5YylULqx8MCd6jBtzqfta/3ETMRpuKIc5hyswfO80ObyA1MvkCcUQ==} - engines: {node: '>=6.9.0'} - - '@babel/core@7.24.6': - resolution: {integrity: sha512-qAHSfAdVyFmIvl0VHELib8xar7ONuSHrE2hLnsaWkYNTI68dmi1x8GYDhJjMI/e7XWal9QBlZkwbOnkcw7Z8gQ==} + '@babel/code-frame@7.26.2': + resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==} engines: {node: '>=6.9.0'} - '@babel/generator@7.24.6': - resolution: {integrity: sha512-S7m4eNa6YAPJRHmKsLHIDJhNAGNKoWNiWefz1MBbpnt8g9lvMDl1hir4P9bo/57bQEmuwEhnRU/AMWsD0G/Fbg==} + '@babel/compat-data@7.26.8': + resolution: {integrity: sha512-oH5UPLMWR3L2wEFLnFJ1TZXqHufiTKAiLfqw5zkhS4dKXLJ10yVztfil/twG8EDTA4F/tvVNw9nOl4ZMslB8rQ==} engines: {node: '>=6.9.0'} - '@babel/helper-compilation-targets@7.24.6': - resolution: {integrity: sha512-VZQ57UsDGlX/5fFA7GkVPplZhHsVc+vuErWgdOiysI9Ksnw0Pbbd6pnPiR/mmJyKHgyIW0c7KT32gmhiF+cirg==} + '@babel/core@7.24.6': + resolution: {integrity: sha512-qAHSfAdVyFmIvl0VHELib8xar7ONuSHrE2hLnsaWkYNTI68dmi1x8GYDhJjMI/e7XWal9QBlZkwbOnkcw7Z8gQ==} engines: {node: '>=6.9.0'} - '@babel/helper-environment-visitor@7.24.6': - resolution: {integrity: sha512-Y50Cg3k0LKLMjxdPjIl40SdJgMB85iXn27Vk/qbHZCFx/o5XO3PSnpi675h1KEmmDb6OFArfd5SCQEQ5Q4H88g==} + '@babel/core@7.26.10': + resolution: {integrity: sha512-vMqyb7XCDMPvJFFOaT9kxtiRh42GwlZEg1/uIgtZshS5a/8OaduUfCi7kynKgc3Tw/6Uo2D+db9qBttghhmxwQ==} engines: {node: '>=6.9.0'} - '@babel/helper-function-name@7.24.6': - resolution: {integrity: sha512-xpeLqeeRkbxhnYimfr2PC+iA0Q7ljX/d1eZ9/inYbmfG2jpl8Lu3DyXvpOAnrS5kxkfOWJjioIMQsaMBXFI05w==} + '@babel/generator@7.26.10': + resolution: {integrity: sha512-rRHT8siFIXQrAYOYqZQVsAr8vJ+cBNqcVAY6m5V8/4QqzaPl+zDBe6cLEPRDuNOUf3ww8RfJVlOyQMoSI+5Ang==} engines: {node: '>=6.9.0'} - '@babel/helper-hoist-variables@7.24.6': - resolution: {integrity: sha512-SF/EMrC3OD7dSta1bLJIlrsVxwtd0UpjRJqLno6125epQMJ/kyFmpTT4pbvPbdQHzCHg+biQ7Syo8lnDtbR+uA==} + '@babel/helper-compilation-targets@7.26.5': + resolution: {integrity: sha512-IXuyn5EkouFJscIDuFF5EsiSolseme1s0CZB+QxVugqJLYmKdxI1VfIBOst0SUu4rnk2Z7kqTwmoO1lp3HIfnA==} engines: {node: '>=6.9.0'} - '@babel/helper-module-imports@7.24.6': - resolution: {integrity: sha512-a26dmxFJBF62rRO9mmpgrfTLsAuyHk4e1hKTUkD/fcMfynt8gvEKwQPQDVxWhca8dHoDck+55DFt42zV0QMw5g==} + '@babel/helper-module-imports@7.25.9': + resolution: {integrity: sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==} engines: {node: '>=6.9.0'} - '@babel/helper-module-transforms@7.24.6': - resolution: {integrity: sha512-Y/YMPm83mV2HJTbX1Qh2sjgjqcacvOlhbzdCCsSlblOKjSYmQqEbO6rUniWQyRo9ncyfjT8hnUjlG06RXDEmcA==} + '@babel/helper-module-transforms@7.26.0': + resolution: {integrity: sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-plugin-utils@7.24.6': - resolution: {integrity: sha512-MZG/JcWfxybKwsA9N9PmtF2lOSFSEMVCpIRrbxccZFLJPrJciJdG/UhSh5W96GEteJI2ARqm5UAHxISwRDLSNg==} - engines: {node: '>=6.9.0'} - - '@babel/helper-simple-access@7.24.6': - resolution: {integrity: sha512-nZzcMMD4ZhmB35MOOzQuiGO5RzL6tJbsT37Zx8M5L/i9KSrukGXWTjLe1knIbb/RmxoJE9GON9soq0c0VEMM5g==} - engines: {node: '>=6.9.0'} - - '@babel/helper-split-export-declaration@7.24.6': - resolution: {integrity: sha512-CvLSkwXGWnYlF9+J3iZUvwgAxKiYzK3BWuo+mLzD/MDGOZDj7Gq8+hqaOkMxmJwmlv0iu86uH5fdADd9Hxkymw==} + '@babel/helper-plugin-utils@7.26.5': + resolution: {integrity: sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==} engines: {node: '>=6.9.0'} - '@babel/helper-string-parser@7.24.6': - resolution: {integrity: sha512-WdJjwMEkmBicq5T9fm/cHND3+UlFa2Yj8ALLgmoSQAJZysYbBjw+azChSGPN4DSPLXOcooGRvDwZWMcF/mLO2Q==} + '@babel/helper-string-parser@7.25.9': + resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==} engines: {node: '>=6.9.0'} '@babel/helper-validator-identifier@7.24.6': resolution: {integrity: sha512-4yA7s865JHaqUdRbnaxarZREuPTHrjpDT+pXoAZ1yhyo6uFnIEpS8VMu16siFOHDpZNKYv5BObhsB//ycbICyw==} engines: {node: '>=6.9.0'} - '@babel/helper-validator-option@7.24.6': - resolution: {integrity: sha512-Jktc8KkF3zIkePb48QO+IapbXlSapOW9S+ogZZkcO6bABgYAxtZcjZ/O005111YLf+j4M84uEgwYoidDkXbCkQ==} + '@babel/helper-validator-identifier@7.25.9': + resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-option@7.25.9': + resolution: {integrity: sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==} engines: {node: '>=6.9.0'} - '@babel/helpers@7.24.6': - resolution: {integrity: sha512-V2PI+NqnyFu1i0GyTd/O/cTpxzQCYioSkUIRmgo7gFEHKKCg5w46+r/A6WeUR1+P3TeQ49dspGPNd/E3n9AnnA==} + '@babel/helpers@7.26.10': + resolution: {integrity: sha512-UPYc3SauzZ3JGgj87GgZ89JVdC5dj0AoetR5Bw6wj4niittNyFh6+eOGonYvJ1ao6B8lEa3Q3klS7ADZ53bc5g==} engines: {node: '>=6.9.0'} '@babel/highlight@7.24.6': resolution: {integrity: sha512-2YnuOp4HAk2BsBrJJvYCbItHx0zWscI1C3zgWkz+wDyD9I7GIVrfnLyrR4Y1VR+7p+chAEcrgRQYZAGIKMV7vQ==} engines: {node: '>=6.9.0'} - '@babel/parser@7.24.6': - resolution: {integrity: sha512-eNZXdfU35nJC2h24RznROuOpO94h6x8sg9ju0tT9biNtLZ2vuP8SduLqqV+/8+cebSLV9SJEAN5Z3zQbJG/M+Q==} + '@babel/parser@7.26.10': + resolution: {integrity: sha512-6aQR2zGE/QFi8JpDLjUZEPYOs7+mhKXm86VaKFiLP35JQwQb6bwUE+XbvkH0EptsYhbNBSUGaUBLKqxH1xSgsA==} engines: {node: '>=6.0.0'} hasBin: true @@ -530,6 +559,18 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-class-static-block@7.14.5': + resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-import-attributes@7.26.0': + resolution: {integrity: sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-import-meta@7.10.4': resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} peerDependencies: @@ -540,8 +581,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-jsx@7.24.6': - resolution: {integrity: sha512-lWfvAIFNWMlCsU0DRUun2GpFwZdGTukLaHJqRh1JRb80NdAP5Sb1HDHB5X9P9OtgZHQl089UzQkpYlBq2VTPRw==} + '@babel/plugin-syntax-jsx@7.25.9': + resolution: {integrity: sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -576,26 +617,32 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-private-property-in-object@7.14.5': + resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-top-level-await@7.14.5': resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-typescript@7.24.6': - resolution: {integrity: sha512-TzCtxGgVTEJWWwcYwQhCIQ6WaKlo80/B+Onsk4RRCcYqpYGFcG9etPW94VToGte5AAcxRrhjPUFvUS3Y2qKi4A==} + '@babel/plugin-syntax-typescript@7.25.9': + resolution: {integrity: sha512-hjMgRy5hb8uJJjUcdWunWVcoi9bGpJp8p5Ol1229PoN6aytsLwNMgmdftO23wnCLMfVmTwZDWMPNq/D1SY60JQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-react-jsx-self@7.24.6': - resolution: {integrity: sha512-FfZfHXtQ5jYPQsCRyLpOv2GeLIIJhs8aydpNh39vRDjhD411XcfWDni5i7OjP/Rs8GAtTn7sWFFELJSHqkIxYg==} + '@babel/plugin-transform-react-jsx-self@7.25.9': + resolution: {integrity: sha512-y8quW6p0WHkEhmErnfe58r7x0A70uKphQm8Sp8cV7tjNQwK56sNVK0M73LK3WuYmsuyrftut4xAkjjgU0twaMg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-react-jsx-source@7.24.6': - resolution: {integrity: sha512-BQTBCXmFRreU3oTUXcGKuPOfXAGb1liNY4AvvFKsOBAJ89RKcTsIrSsnMYkj59fNa66OFKnSa4AJZfy5Y4B9WA==} + '@babel/plugin-transform-react-jsx-source@7.25.9': + resolution: {integrity: sha512-+iqjT8xmXhhYv4/uiYd8FNQsraMFZIfxVSqxxVSZP0WbbSAWvBXAul0m/zu+7Vv4O/3WtApy9pmaTMiumEZgfg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -604,20 +651,21 @@ packages: resolution: {integrity: sha512-Ja18XcETdEl5mzzACGd+DKgaGJzPTCow7EglgwTmHdwokzDFYh/MHua6lU6DV/hjF2IaOJ4oX2nqnjG7RElKOw==} engines: {node: '>=6.9.0'} - '@babel/template@7.24.6': - resolution: {integrity: sha512-3vgazJlLwNXi9jhrR1ef8qiB65L1RK90+lEQwv4OxveHnqC3BfmnHdgySwRLzf6akhlOYenT+b7AfWq+a//AHw==} + '@babel/runtime@7.26.10': + resolution: {integrity: sha512-2WJMeRQPHKSPemqk/awGrAiuFfzBmOIPXKizAsVhWH9YJqLZ0H+HS4c8loHGgW6utJ3E/ejXQUsiGaQy2NZ9Fw==} engines: {node: '>=6.9.0'} - '@babel/traverse@7.24.6': - resolution: {integrity: sha512-OsNjaJwT9Zn8ozxcfoBc+RaHdj3gFmCmYoQLUII1o6ZrUwku0BMg80FoOTPx+Gi6XhcQxAYE4xyjPTo4SxEQqw==} + '@babel/template@7.26.9': + resolution: {integrity: sha512-qyRplbeIpNZhmzOysF/wFMuP9sctmh2cFzRAZOn1YapxBsE1i9bJIY586R/WBLfLcmcBlM8ROBiQURnnNy+zfA==} engines: {node: '>=6.9.0'} - '@babel/types@7.24.6': - resolution: {integrity: sha512-WaMsgi6Q8zMgMth93GvWPXkhAIEobfsIkLTacoVZoK1J0CevIPGYY2Vo5YvJGqyHqXM6P4ppOYGsIRU8MM9pFQ==} + '@babel/traverse@7.26.10': + resolution: {integrity: sha512-k8NuDrxr0WrPH5Aupqb2LCVURP/S0vBEn5mK6iH+GIYob66U5EtoZvcdudR2jQ4cmTwhEwW1DLB+Yyas9zjF6A==} engines: {node: '>=6.9.0'} - '@base2/pretty-print-object@1.0.1': - resolution: {integrity: sha512-4iri8i1AqYHJE2DstZYkyEprg6Pq6sKx3xn5FpySk9sNhH7qN2LLlHJCfDTZRILNwQNPD7mATWM0TBui7uC1pA==} + '@babel/types@7.26.10': + resolution: {integrity: sha512-emqcG3vHrpxUKTrxcblR36dcrcoRDvKmnL/dCL6ZsHaShW80qxCAcNhzQZrpeM765VzEos+xOi4s+r4IXzTwdQ==} + engines: {node: '>=6.9.0'} '@bcoe/v8-coverage@0.2.3': resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} @@ -693,9 +741,11 @@ packages: '@chevrotain/utils@11.0.3': resolution: {integrity: sha512-YslZMgtJUyuMbZ+aKvfF3x1f5liK4mWNxghFRv7jqRR9C3R3fAOGTTKvxXDa2Y1s9zSbcpuO0cAxDYsc9SrXoQ==} - '@chromatic-com/storybook@1.5.0': - resolution: {integrity: sha512-LkLKv7SWu/6kGep1ft2HA1T/cm14wU0zoW71gE4cZRcgUoRQJtyhITFTLHrjqAxz6bVqNgqzQtd5oBZ2nK3L3g==} + '@chromatic-com/storybook@3.2.6': + resolution: {integrity: sha512-FDmn5Ry2DzQdik+eq2sp/kJMMT36Ewe7ONXUXM2Izd97c7r6R/QyGli8eyh/F0iyqVvbLveNYFyF0dBOJNwLqw==} engines: {node: '>=16.0.0', yarn: '>=1.22.18'} + peerDependencies: + storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 '@commitlint/cli@9.1.2': resolution: {integrity: sha512-ctRrrPqjZ8r4Vc4FXpPaScEpkPwfvB0Us3NK2SD2AnLwXGMxOLFTabDmNySU1Xc40ud2CmJsaV8lpavvzs8ZZA==} @@ -706,16 +756,16 @@ packages: resolution: {integrity: sha512-2zfnsrBJuCNJEKMEmltYlCUEoQNE4anvEBI/SYEuiB1JYXYaELijobDBpqhUVjh5NEpprNTY16oMZat6ewnxOg==} engines: {node: '>=v8.17.0'} - '@commitlint/config-validator@19.0.3': - resolution: {integrity: sha512-2D3r4PKjoo59zBc2auodrSCaUnCSALCx54yveOFwwP/i2kfEAQrygwOleFWswLqK0UL/F9r07MFi5ev2ohyM4Q==} + '@commitlint/config-validator@19.8.0': + resolution: {integrity: sha512-+r5ZvD/0hQC3w5VOHJhGcCooiAVdynFlCe2d6I9dU+PvXdV3O+fU4vipVg+6hyLbQUuCH82mz3HnT/cBQTYYuA==} engines: {node: '>=v18'} '@commitlint/ensure@9.1.2': resolution: {integrity: sha512-hwQICwpNSTsZgj/1/SdPvYAzhwjwgCJI4vLbT879+Jc+AJ6sj2bUDGw/F89vzgKz1VnaMm4D65bNhoWhG3pdhQ==} engines: {node: '>=v8.17.0'} - '@commitlint/execute-rule@19.0.0': - resolution: {integrity: sha512-mtsdpY1qyWgAO/iOK0L6gSGeR7GFcdW7tIjcNFxcWkfLDF5qVbPHKuGATFqRMsxcO8OUKNj0+3WOHB7EHm4Jdw==} + '@commitlint/execute-rule@19.8.0': + resolution: {integrity: sha512-fuLeI+EZ9x2v/+TXKAjplBJWI9CNrHnyi5nvUQGQt4WRkww/d95oVRsc9ajpt4xFrFmqMZkd/xBQHZDvALIY7A==} engines: {node: '>=v18'} '@commitlint/execute-rule@9.1.2': @@ -734,8 +784,8 @@ packages: resolution: {integrity: sha512-XvggqHZ4XSTKOgzJhCzz52cWRRO57QQnEviwGj0qnD4jdwC+8h2u9LNZwoa2tGAuaNM3nSm//wNK7FRZhgiiFA==} engines: {node: '>=v8.17.0'} - '@commitlint/load@19.2.0': - resolution: {integrity: sha512-XvxxLJTKqZojCxaBQ7u92qQLFMMZc4+p9qrIq/9kJDy8DOrEa7P1yx7Tjdc2u2JxIalqT4KOGraVgCE7eCYJyQ==} + '@commitlint/load@19.8.0': + resolution: {integrity: sha512-4rvmm3ff81Sfb+mcWT5WKlyOa+Hd33WSbirTVUer0wjS1Hv/Hzr07Uv1ULIV9DkimZKNyOwXn593c+h8lsDQPQ==} engines: {node: '>=v18'} '@commitlint/load@9.1.2': @@ -758,8 +808,8 @@ packages: resolution: {integrity: sha512-C2sNBQOqeQXMxpWtRnXYKYB3D9yuybPtQNY/P67A6o8XH/UMHkFaUTyIx1KRgu0IG0yTTItRt46FGnsMWLotvA==} engines: {node: '>=v8.17.0'} - '@commitlint/resolve-extends@19.1.0': - resolution: {integrity: sha512-z2riI+8G3CET5CPgXJPlzftH+RiWYLMYv4C9tSLdLXdr6pBNimSKukYP9MS27ejmscqCTVA4almdLh0ODD2KYg==} + '@commitlint/resolve-extends@19.8.0': + resolution: {integrity: sha512-CLanRQwuG2LPfFVvrkTrBR/L/DMy3+ETsgBqW1OvRxmzp/bbVJW0Xw23LnnExgYcsaFtos967lul1CsbsnJlzQ==} engines: {node: '>=v18'} '@commitlint/resolve-extends@9.1.2': @@ -778,32 +828,38 @@ packages: resolution: {integrity: sha512-KMPP5xVePcz3B1dKqcZdU4FZBVOkT+bG3ip4RQX2TeCJoomMkTjd0utALs7rpTGLID6BXbwwXepZCZJREjR/Bw==} engines: {node: '>=v8.17.0'} - '@commitlint/types@19.0.3': - resolution: {integrity: sha512-tpyc+7i6bPG9mvaBbtKUeghfyZSDgWquIDfMgqYtTbmZ9Y9VzEm2je9EYcQ0aoz5o7NvGS+rcDec93yO08MHYA==} + '@commitlint/types@19.8.0': + resolution: {integrity: sha512-LRjP623jPyf3Poyfb0ohMj8I3ORyBDOwXAgxxVPbSD0unJuW2mJWeiRfaQinjtccMqC5Wy1HOMfa4btKjbNxbg==} engines: {node: '>=v18'} '@commitlint/types@9.1.2': resolution: {integrity: sha512-r3fwVbVH+M8W0qYlBBZFsUwKe6NT5qvz+EmU7sr8VeN1cQ63z+3cfXyTo7WGGEMEgKiT0jboNAK3b1FZp8k9LQ==} engines: {node: '>=v8.17.0'} + '@emnapi/core@1.3.1': + resolution: {integrity: sha512-pVGjBIt1Y6gg3EJN8jTcfpP/+uuRksIo055oE/OBkDNcjZqVbfkWCksG1Jp4yZnj3iKWyWX8fdG/j6UDYPbFog==} + '@emnapi/runtime@1.3.1': resolution: {integrity: sha512-kEBmG8KyqtxJZv+ygbEim+KCGtIq1fC22Ms3S4ziXmYKm8uyoLX0MHONVKwp+9opg390VaKRNt4a7A9NwmpNhw==} + '@emnapi/wasi-threads@1.0.1': + resolution: {integrity: sha512-iIBu7mwkq4UQGeMEM8bLwNK962nXdhodeScX4slfQnRhEMMzvYivHhutCIk8uojvmASXXPC2WNEjwxFWk72Oqw==} + '@esbuild/aix-ppc64@0.19.12': resolution: {integrity: sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==} engines: {node: '>=12'} cpu: [ppc64] os: [aix] - '@esbuild/aix-ppc64@0.20.2': - resolution: {integrity: sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==} + '@esbuild/aix-ppc64@0.21.5': + resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} engines: {node: '>=12'} cpu: [ppc64] os: [aix] - '@esbuild/aix-ppc64@0.21.5': - resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} - engines: {node: '>=12'} + '@esbuild/aix-ppc64@0.25.1': + resolution: {integrity: sha512-kfYGy8IdzTGy+z0vFGvExZtxkFlA4zAxgKEahG9KE1ScBjpQnFsNOX8KTU5ojNru5ed5CVoJYXFtoxaq5nFbjQ==} + engines: {node: '>=18'} cpu: [ppc64] os: [aix] @@ -813,15 +869,15 @@ packages: cpu: [arm64] os: [android] - '@esbuild/android-arm64@0.20.2': - resolution: {integrity: sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==} + '@esbuild/android-arm64@0.21.5': + resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} engines: {node: '>=12'} cpu: [arm64] os: [android] - '@esbuild/android-arm64@0.21.5': - resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} - engines: {node: '>=12'} + '@esbuild/android-arm64@0.25.1': + resolution: {integrity: sha512-50tM0zCJW5kGqgG7fQ7IHvQOcAn9TKiVRuQ/lN0xR+T2lzEFvAi1ZcS8DiksFcEpf1t/GYOeOfCAgDHFpkiSmA==} + engines: {node: '>=18'} cpu: [arm64] os: [android] @@ -831,15 +887,15 @@ packages: cpu: [arm] os: [android] - '@esbuild/android-arm@0.20.2': - resolution: {integrity: sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==} + '@esbuild/android-arm@0.21.5': + resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} engines: {node: '>=12'} cpu: [arm] os: [android] - '@esbuild/android-arm@0.21.5': - resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} - engines: {node: '>=12'} + '@esbuild/android-arm@0.25.1': + resolution: {integrity: sha512-dp+MshLYux6j/JjdqVLnMglQlFu+MuVeNrmT5nk6q07wNhCdSnB7QZj+7G8VMUGh1q+vj2Bq8kRsuyA00I/k+Q==} + engines: {node: '>=18'} cpu: [arm] os: [android] @@ -849,15 +905,15 @@ packages: cpu: [x64] os: [android] - '@esbuild/android-x64@0.20.2': - resolution: {integrity: sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==} + '@esbuild/android-x64@0.21.5': + resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} engines: {node: '>=12'} cpu: [x64] os: [android] - '@esbuild/android-x64@0.21.5': - resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} - engines: {node: '>=12'} + '@esbuild/android-x64@0.25.1': + resolution: {integrity: sha512-GCj6WfUtNldqUzYkN/ITtlhwQqGWu9S45vUXs7EIYf+7rCiiqH9bCloatO9VhxsL0Pji+PF4Lz2XXCES+Q8hDw==} + engines: {node: '>=18'} cpu: [x64] os: [android] @@ -867,15 +923,15 @@ packages: cpu: [arm64] os: [darwin] - '@esbuild/darwin-arm64@0.20.2': - resolution: {integrity: sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==} + '@esbuild/darwin-arm64@0.21.5': + resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] - '@esbuild/darwin-arm64@0.21.5': - resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} - engines: {node: '>=12'} + '@esbuild/darwin-arm64@0.25.1': + resolution: {integrity: sha512-5hEZKPf+nQjYoSr/elb62U19/l1mZDdqidGfmFutVUjjUZrOazAtwK+Kr+3y0C/oeJfLlxo9fXb1w7L+P7E4FQ==} + engines: {node: '>=18'} cpu: [arm64] os: [darwin] @@ -885,15 +941,15 @@ packages: cpu: [x64] os: [darwin] - '@esbuild/darwin-x64@0.20.2': - resolution: {integrity: sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==} + '@esbuild/darwin-x64@0.21.5': + resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} engines: {node: '>=12'} cpu: [x64] os: [darwin] - '@esbuild/darwin-x64@0.21.5': - resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} - engines: {node: '>=12'} + '@esbuild/darwin-x64@0.25.1': + resolution: {integrity: sha512-hxVnwL2Dqs3fM1IWq8Iezh0cX7ZGdVhbTfnOy5uURtao5OIVCEyj9xIzemDi7sRvKsuSdtCAhMKarxqtlyVyfA==} + engines: {node: '>=18'} cpu: [x64] os: [darwin] @@ -903,15 +959,15 @@ packages: cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-arm64@0.20.2': - resolution: {integrity: sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==} + '@esbuild/freebsd-arm64@0.21.5': + resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} engines: {node: '>=12'} cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-arm64@0.21.5': - resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} - engines: {node: '>=12'} + '@esbuild/freebsd-arm64@0.25.1': + resolution: {integrity: sha512-1MrCZs0fZa2g8E+FUo2ipw6jw5qqQiH+tERoS5fAfKnRx6NXH31tXBKI3VpmLijLH6yriMZsxJtaXUyFt/8Y4A==} + engines: {node: '>=18'} cpu: [arm64] os: [freebsd] @@ -921,15 +977,15 @@ packages: cpu: [x64] os: [freebsd] - '@esbuild/freebsd-x64@0.20.2': - resolution: {integrity: sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==} + '@esbuild/freebsd-x64@0.21.5': + resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} engines: {node: '>=12'} cpu: [x64] os: [freebsd] - '@esbuild/freebsd-x64@0.21.5': - resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} - engines: {node: '>=12'} + '@esbuild/freebsd-x64@0.25.1': + resolution: {integrity: sha512-0IZWLiTyz7nm0xuIs0q1Y3QWJC52R8aSXxe40VUxm6BB1RNmkODtW6LHvWRrGiICulcX7ZvyH6h5fqdLu4gkww==} + engines: {node: '>=18'} cpu: [x64] os: [freebsd] @@ -939,15 +995,15 @@ packages: cpu: [arm64] os: [linux] - '@esbuild/linux-arm64@0.20.2': - resolution: {integrity: sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==} + '@esbuild/linux-arm64@0.21.5': + resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} engines: {node: '>=12'} cpu: [arm64] os: [linux] - '@esbuild/linux-arm64@0.21.5': - resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} - engines: {node: '>=12'} + '@esbuild/linux-arm64@0.25.1': + resolution: {integrity: sha512-jaN3dHi0/DDPelk0nLcXRm1q7DNJpjXy7yWaWvbfkPvI+7XNSc/lDOnCLN7gzsyzgu6qSAmgSvP9oXAhP973uQ==} + engines: {node: '>=18'} cpu: [arm64] os: [linux] @@ -957,15 +1013,15 @@ packages: cpu: [arm] os: [linux] - '@esbuild/linux-arm@0.20.2': - resolution: {integrity: sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==} + '@esbuild/linux-arm@0.21.5': + resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} engines: {node: '>=12'} cpu: [arm] os: [linux] - '@esbuild/linux-arm@0.21.5': - resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} - engines: {node: '>=12'} + '@esbuild/linux-arm@0.25.1': + resolution: {integrity: sha512-NdKOhS4u7JhDKw9G3cY6sWqFcnLITn6SqivVArbzIaf3cemShqfLGHYMx8Xlm/lBit3/5d7kXvriTUGa5YViuQ==} + engines: {node: '>=18'} cpu: [arm] os: [linux] @@ -975,15 +1031,15 @@ packages: cpu: [ia32] os: [linux] - '@esbuild/linux-ia32@0.20.2': - resolution: {integrity: sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==} + '@esbuild/linux-ia32@0.21.5': + resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} engines: {node: '>=12'} cpu: [ia32] os: [linux] - '@esbuild/linux-ia32@0.21.5': - resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} - engines: {node: '>=12'} + '@esbuild/linux-ia32@0.25.1': + resolution: {integrity: sha512-OJykPaF4v8JidKNGz8c/q1lBO44sQNUQtq1KktJXdBLn1hPod5rE/Hko5ugKKZd+D2+o1a9MFGUEIUwO2YfgkQ==} + engines: {node: '>=18'} cpu: [ia32] os: [linux] @@ -993,15 +1049,15 @@ packages: cpu: [loong64] os: [linux] - '@esbuild/linux-loong64@0.20.2': - resolution: {integrity: sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==} + '@esbuild/linux-loong64@0.21.5': + resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} engines: {node: '>=12'} cpu: [loong64] os: [linux] - '@esbuild/linux-loong64@0.21.5': - resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} - engines: {node: '>=12'} + '@esbuild/linux-loong64@0.25.1': + resolution: {integrity: sha512-nGfornQj4dzcq5Vp835oM/o21UMlXzn79KobKlcs3Wz9smwiifknLy4xDCLUU0BWp7b/houtdrgUz7nOGnfIYg==} + engines: {node: '>=18'} cpu: [loong64] os: [linux] @@ -1011,15 +1067,15 @@ packages: cpu: [mips64el] os: [linux] - '@esbuild/linux-mips64el@0.20.2': - resolution: {integrity: sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==} + '@esbuild/linux-mips64el@0.21.5': + resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} engines: {node: '>=12'} cpu: [mips64el] os: [linux] - '@esbuild/linux-mips64el@0.21.5': - resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} - engines: {node: '>=12'} + '@esbuild/linux-mips64el@0.25.1': + resolution: {integrity: sha512-1osBbPEFYwIE5IVB/0g2X6i1qInZa1aIoj1TdL4AaAb55xIIgbg8Doq6a5BzYWgr+tEcDzYH67XVnTmUzL+nXg==} + engines: {node: '>=18'} cpu: [mips64el] os: [linux] @@ -1029,15 +1085,15 @@ packages: cpu: [ppc64] os: [linux] - '@esbuild/linux-ppc64@0.20.2': - resolution: {integrity: sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==} + '@esbuild/linux-ppc64@0.21.5': + resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} engines: {node: '>=12'} cpu: [ppc64] os: [linux] - '@esbuild/linux-ppc64@0.21.5': - resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} - engines: {node: '>=12'} + '@esbuild/linux-ppc64@0.25.1': + resolution: {integrity: sha512-/6VBJOwUf3TdTvJZ82qF3tbLuWsscd7/1w+D9LH0W/SqUgM5/JJD0lrJ1fVIfZsqB6RFmLCe0Xz3fmZc3WtyVg==} + engines: {node: '>=18'} cpu: [ppc64] os: [linux] @@ -1047,15 +1103,15 @@ packages: cpu: [riscv64] os: [linux] - '@esbuild/linux-riscv64@0.20.2': - resolution: {integrity: sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==} + '@esbuild/linux-riscv64@0.21.5': + resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} engines: {node: '>=12'} cpu: [riscv64] os: [linux] - '@esbuild/linux-riscv64@0.21.5': - resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} - engines: {node: '>=12'} + '@esbuild/linux-riscv64@0.25.1': + resolution: {integrity: sha512-nSut/Mx5gnilhcq2yIMLMe3Wl4FK5wx/o0QuuCLMtmJn+WeWYoEGDN1ipcN72g1WHsnIbxGXd4i/MF0gTcuAjQ==} + engines: {node: '>=18'} cpu: [riscv64] os: [linux] @@ -1065,15 +1121,15 @@ packages: cpu: [s390x] os: [linux] - '@esbuild/linux-s390x@0.20.2': - resolution: {integrity: sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==} + '@esbuild/linux-s390x@0.21.5': + resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} engines: {node: '>=12'} cpu: [s390x] os: [linux] - '@esbuild/linux-s390x@0.21.5': - resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} - engines: {node: '>=12'} + '@esbuild/linux-s390x@0.25.1': + resolution: {integrity: sha512-cEECeLlJNfT8kZHqLarDBQso9a27o2Zd2AQ8USAEoGtejOrCYHNtKP8XQhMDJMtthdF4GBmjR2au3x1udADQQQ==} + engines: {node: '>=18'} cpu: [s390x] os: [linux] @@ -1083,51 +1139,63 @@ packages: cpu: [x64] os: [linux] - '@esbuild/linux-x64@0.20.2': - resolution: {integrity: sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==} + '@esbuild/linux-x64@0.21.5': + resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} engines: {node: '>=12'} cpu: [x64] os: [linux] - '@esbuild/linux-x64@0.21.5': - resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} - engines: {node: '>=12'} + '@esbuild/linux-x64@0.25.1': + resolution: {integrity: sha512-xbfUhu/gnvSEg+EGovRc+kjBAkrvtk38RlerAzQxvMzlB4fXpCFCeUAYzJvrnhFtdeyVCDANSjJvOvGYoeKzFA==} + engines: {node: '>=18'} cpu: [x64] os: [linux] + '@esbuild/netbsd-arm64@0.25.1': + resolution: {integrity: sha512-O96poM2XGhLtpTh+s4+nP7YCCAfb4tJNRVZHfIE7dgmax+yMP2WgMd2OecBuaATHKTHsLWHQeuaxMRnCsH8+5g==} + engines: {node: '>=18'} + cpu: [arm64] + os: [netbsd] + '@esbuild/netbsd-x64@0.19.12': resolution: {integrity: sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] - '@esbuild/netbsd-x64@0.20.2': - resolution: {integrity: sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==} + '@esbuild/netbsd-x64@0.21.5': + resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] - '@esbuild/netbsd-x64@0.21.5': - resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} - engines: {node: '>=12'} + '@esbuild/netbsd-x64@0.25.1': + resolution: {integrity: sha512-X53z6uXip6KFXBQ+Krbx25XHV/NCbzryM6ehOAeAil7X7oa4XIq+394PWGnwaSQ2WRA0KI6PUO6hTO5zeF5ijA==} + engines: {node: '>=18'} cpu: [x64] os: [netbsd] + '@esbuild/openbsd-arm64@0.25.1': + resolution: {integrity: sha512-Na9T3szbXezdzM/Kfs3GcRQNjHzM6GzFBeU1/6IV/npKP5ORtp9zbQjvkDJ47s6BCgaAZnnnu/cY1x342+MvZg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openbsd] + '@esbuild/openbsd-x64@0.19.12': resolution: {integrity: sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==} engines: {node: '>=12'} cpu: [x64] os: [openbsd] - '@esbuild/openbsd-x64@0.20.2': - resolution: {integrity: sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==} + '@esbuild/openbsd-x64@0.21.5': + resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} engines: {node: '>=12'} cpu: [x64] os: [openbsd] - '@esbuild/openbsd-x64@0.21.5': - resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} - engines: {node: '>=12'} + '@esbuild/openbsd-x64@0.25.1': + resolution: {integrity: sha512-T3H78X2h1tszfRSf+txbt5aOp/e7TAz3ptVKu9Oyir3IAOFPGV6O9c2naym5TOriy1l0nNf6a4X5UXRZSGX/dw==} + engines: {node: '>=18'} cpu: [x64] os: [openbsd] @@ -1137,15 +1205,15 @@ packages: cpu: [x64] os: [sunos] - '@esbuild/sunos-x64@0.20.2': - resolution: {integrity: sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==} + '@esbuild/sunos-x64@0.21.5': + resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} engines: {node: '>=12'} cpu: [x64] os: [sunos] - '@esbuild/sunos-x64@0.21.5': - resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} - engines: {node: '>=12'} + '@esbuild/sunos-x64@0.25.1': + resolution: {integrity: sha512-2H3RUvcmULO7dIE5EWJH8eubZAI4xw54H1ilJnRNZdeo8dTADEZ21w6J22XBkXqGJbe0+wnNJtw3UXRoLJnFEg==} + engines: {node: '>=18'} cpu: [x64] os: [sunos] @@ -1155,15 +1223,15 @@ packages: cpu: [arm64] os: [win32] - '@esbuild/win32-arm64@0.20.2': - resolution: {integrity: sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==} + '@esbuild/win32-arm64@0.21.5': + resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} engines: {node: '>=12'} cpu: [arm64] os: [win32] - '@esbuild/win32-arm64@0.21.5': - resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} - engines: {node: '>=12'} + '@esbuild/win32-arm64@0.25.1': + resolution: {integrity: sha512-GE7XvrdOzrb+yVKB9KsRMq+7a2U/K5Cf/8grVFRAGJmfADr/e/ODQ134RK2/eeHqYV5eQRFxb1hY7Nr15fv1NQ==} + engines: {node: '>=18'} cpu: [arm64] os: [win32] @@ -1173,15 +1241,15 @@ packages: cpu: [ia32] os: [win32] - '@esbuild/win32-ia32@0.20.2': - resolution: {integrity: sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==} + '@esbuild/win32-ia32@0.21.5': + resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} engines: {node: '>=12'} cpu: [ia32] os: [win32] - '@esbuild/win32-ia32@0.21.5': - resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} - engines: {node: '>=12'} + '@esbuild/win32-ia32@0.25.1': + resolution: {integrity: sha512-uOxSJCIcavSiT6UnBhBzE8wy3n0hOkJsBOzy7HDAuTDE++1DJMRRVCPGisULScHL+a/ZwdXPpXD3IyFKjA7K8A==} + engines: {node: '>=18'} cpu: [ia32] os: [win32] @@ -1191,15 +1259,15 @@ packages: cpu: [x64] os: [win32] - '@esbuild/win32-x64@0.20.2': - resolution: {integrity: sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==} + '@esbuild/win32-x64@0.21.5': + resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} engines: {node: '>=12'} cpu: [x64] os: [win32] - '@esbuild/win32-x64@0.21.5': - resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} - engines: {node: '>=12'} + '@esbuild/win32-x64@0.25.1': + resolution: {integrity: sha512-Y1EQdcfwMSeQN/ujR5VayLOJ1BHaK+ssyk0AEzPjC+t1lITgsnccPqFjb6V+LsTp/9Iov4ysfjxLaGJ9RPtkVg==} + engines: {node: '>=18'} cpu: [x64] os: [win32] @@ -1465,11 +1533,11 @@ packages: resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - '@joshwooding/vite-plugin-react-docgen-typescript@0.3.0': - resolution: {integrity: sha512-2D6y7fNvFmsLmRt6UCOFJPvFoPMJGT0Uh1Wg0RaigUp7kdQPs6yYn8Dmx6GZkOH/NW0yMTwRz/p0SRMMRo50vA==} + '@joshwooding/vite-plugin-react-docgen-typescript@0.5.0': + resolution: {integrity: sha512-qYDdL7fPwLRI+bJNurVcis+tNgJmvWjH4YTBGXTA8xMuxFrnAz6E5o35iyzyKbq5J5Lr8mJGfrR5GXl+WGwhgQ==} peerDependencies: typescript: '>= 4.3.x' - vite: ^3.0.0 || ^4.0.0 || ^5.0.0 + vite: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 peerDependenciesMeta: typescript: optional: true @@ -1478,6 +1546,10 @@ packages: resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} engines: {node: '>=6.0.0'} + '@jridgewell/gen-mapping@0.3.8': + resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==} + engines: {node: '>=6.0.0'} + '@jridgewell/resolve-uri@3.1.2': resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} engines: {node: '>=6.0.0'} @@ -1492,6 +1564,9 @@ packages: '@jridgewell/sourcemap-codec@1.4.15': resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} + '@jridgewell/sourcemap-codec@1.5.0': + resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} + '@jridgewell/trace-mapping@0.3.25': resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} @@ -1508,6 +1583,12 @@ packages: '@types/react': '>=16' react: '>=16' + '@mdx-js/react@3.1.0': + resolution: {integrity: sha512-QjHtSaoameoalGnKDT3FoIl4+9RwyTmo9ZJGBdLOks/YOiWHoRDI3PUwEzOE7kEmGcV3AFcp9K6dYu9rEuKLAQ==} + peerDependencies: + '@types/react': '>=16' + react: '>=16' + '@mermaid-js/parser@0.3.0': resolution: {integrity: sha512-HsvL6zgE5sUPGgkIDlmAWR1HTNHz2Iy11BAWPTa4Jjabkpguy4Ze2gzfLrg6pdRuBvFwgUYyxiaNqZwrEEXepA==} @@ -1581,6 +1662,9 @@ packages: resolution: {integrity: sha512-C5wRPw9waqL2jk3jEDeJv+f7ScuO3N0a39HVdyFLkwKxHH4Sya4ZbzZsu2JLi6eEqe7RuHipHL6mC7B2OfYZZw==} engines: {node: '>= 10'} + '@napi-rs/wasm-runtime@0.2.4': + resolution: {integrity: sha512-9zESzOO5aDByvhIAsOy9TbpZ0Ur2AJbUI7UT73kcUTS2mxAMHOBaa1st/jAymNoCtvrit99kkzT1FZuXVcgfIQ==} + '@next/env@15.0.0': resolution: {integrity: sha512-Mcv8ZVmEgTO3bePiH/eJ7zHqQEs2gCqZ0UId2RxHmDDc7Pw6ngfSrOFlxG8XDpaex+n2G+TKPsQAf28MO+88Gw==} @@ -1658,8 +1742,8 @@ packages: resolution: {integrity: sha512-q9CRWjpHCMIh5sVyefoD1cA7PkvILqCZsnSOEUUivORLjxCO/Irmue2DprETiNgEqktDBZaM1Bi+jrarx1XdCg==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - '@npmcli/git@5.0.7': - resolution: {integrity: sha512-WaOVvto604d5IpdCRV2KjQu8PzkfE96d50CQGKgywXh2GxXmDeUO5EWcBC4V57uFyrNqx83+MewuJh3WTR3xPA==} + '@npmcli/git@5.0.8': + resolution: {integrity: sha512-liASfw5cqhjNW9UFd+ruwwdEf/lbOAQjLL2XY2dFW/bkJheXDYZgOyul/4gVvEV4BWkTXjYGmDqMw9uegdbJNQ==} engines: {node: ^16.14.0 || >=18.0.0} '@npmcli/installed-package-contents@2.1.0': @@ -1683,74 +1767,74 @@ packages: resolution: {integrity: sha512-Omu0rpA8WXvcGeY6DDzyRoY1i5DkCBkzyJ+m2u7PD6quzb0TvSqdIPOkTn8ZBOj7LbbcbMfZ3c5skwSu6m8y2w==} engines: {node: ^16.14.0 || >=18.0.0} - '@nrwl/devkit@19.3.2': - resolution: {integrity: sha512-n3tFalVPUk1HAJ2VYNnF34yzB9j2+6swFUi4Y92PxD1vN7vrIXnNeaTx2qcee7JDjBpiJ7Zn0KLg2jwiH6hNwA==} + '@nrwl/devkit@19.8.14': + resolution: {integrity: sha512-Oud7BPhFNqE3/YStULn/gHyuGSw2QyxUaHXJApr+DybmYtUms7hQ+cWnY1IY+hRpdtU9ldlg8UYx+VslpS9YNQ==} - '@nrwl/tao@19.3.2': - resolution: {integrity: sha512-I1gW7woqwU6rdlgwj6XXAKcreJ5ptRKI2WpLdZErkrPmaRG/jMZx/yjZrG4PWdIEuZ4ZmYnRsoXbKN6ilCknQw==} + '@nrwl/tao@19.8.14': + resolution: {integrity: sha512-zBeYzzwg43T/Z8ZtLblv0fcKuqJULttqYDekSLILThXp3UOMSerEvruhUgwddCY1jUssfLscz8vacMKISv5X4w==} hasBin: true - '@nx/devkit@19.3.2': - resolution: {integrity: sha512-uD3jaJ1Jvf7B6jqH2t2GH0L6REwcCGBLXq1qs1HRQF5SZrEtuUeusn8wvCKP7dftPK3byLHAG0xHRW4+IUAz/g==} + '@nx/devkit@19.8.14': + resolution: {integrity: sha512-A8dCGttbuqgg9P56VTb0ElD2vM5nc5g0aLnX5PSXo4SkFXwd8DV5GgwJKWB1GO9hYyEtbj4gKek0KxnCtdav4g==} peerDependencies: - nx: '>= 17 <= 20' + nx: '>= 19 <= 21' - '@nx/nx-darwin-arm64@19.3.2': - resolution: {integrity: sha512-MTqPTR1FwfVfIkHKUw95dFlPBN6mbqfJ+KzLHvUSPcqLKelhi82tsisjMoB5sNK0YWcNNVqYW72ojCnHVB0TUg==} + '@nx/nx-darwin-arm64@19.8.14': + resolution: {integrity: sha512-bZUFf23gAzuwVw71dR8rngye5aCR8Z/ouIo+KayjqB0LWWoi3WzO73s4S69ljftYt4n6z9wvD+Trbb1BKm2fPg==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] - '@nx/nx-darwin-x64@19.3.2': - resolution: {integrity: sha512-C8s9X5AlVgl3V5PycLdX+75lpAWq0qQs6QUEAnyxrLM9l+/HRecgoW6uZ7tX6Fnd8WGfMIwyahBw4LyZgk6zTw==} + '@nx/nx-darwin-x64@19.8.14': + resolution: {integrity: sha512-UXXVea8icFG/3rFwpbLYsD6O4wlyJ1STQfOdhGK1Hyuga70AUUdrjVm7HzigAQP/Sb2Nzd7155YXHzfpRPDFYA==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] - '@nx/nx-freebsd-x64@19.3.2': - resolution: {integrity: sha512-XeEpEU0iqJ/5cAPMmjqJ0Sdz89ZtDRj4NdksioyhAHri94X5/3lm3lDs4tB3nObT7p3QL7r/HP1itq5DHYmMSQ==} + '@nx/nx-freebsd-x64@19.8.14': + resolution: {integrity: sha512-TK2xuXn+BI6hxGaRK1HRUPWeF/nOtezKSqM+6rbippfCzjES/crmp9l5nbI764MMthtUmykCyWvhEfkDca6kbA==} engines: {node: '>= 10'} cpu: [x64] os: [freebsd] - '@nx/nx-linux-arm-gnueabihf@19.3.2': - resolution: {integrity: sha512-r4Wl0P94QRBUyiexUcfwKxqFXp48avMG3L0no/ZuNWGODbw1w8ppA4vhnkXtXbIaMdaTGx9eIYO7kFJ2SwMCng==} + '@nx/nx-linux-arm-gnueabihf@19.8.14': + resolution: {integrity: sha512-33rptyRraqaeQ2Kq6pcZKQqgnYY/7zcGH8fHXgKK7XzKk+7QuPViq+jMEUZP5E3UzZPkIYhsfmZcZqhNRvepJQ==} engines: {node: '>= 10'} cpu: [arm] os: [linux] - '@nx/nx-linux-arm64-gnu@19.3.2': - resolution: {integrity: sha512-oaTC4iS1fXnc61ZgSxwCQ2GGIqY64G22udRqNsX9TOtgrT7UA/mjE3Si01r+0xODimOiB525ueyxdIh1MAu6Vg==} + '@nx/nx-linux-arm64-gnu@19.8.14': + resolution: {integrity: sha512-2E70qMKOhh7Fp4JGcRbRLvFKq0+ANVdAgSzH47plxOLygIeVAfIXRSuQbCI0EUFa5Sy6hImLaoRSB2GdgKihAw==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@nx/nx-linux-arm64-musl@19.3.2': - resolution: {integrity: sha512-yyO9bTM7FW7HTYsSQlL4lgbAexUBpzfhdK+RkgsCiW+U/5bi+jFRxo/SbqGUL+IVliFavWyRXahMqOOM6nBq/w==} + '@nx/nx-linux-arm64-musl@19.8.14': + resolution: {integrity: sha512-ltty/PDWqkYgu/6Ye65d7v5nh3D6e0n3SacoKRs2Vtfz5oHYRUkSKizKIhEVfRNuHn3d9j8ve1fdcCN4SDPUBQ==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@nx/nx-linux-x64-gnu@19.3.2': - resolution: {integrity: sha512-DC+llVdL4toLjQkDGBgzoCe26FWIOT+SzRdVcKePoNliZ4jDhkOh3+p75NEIOEcDUgoE9M2iCWEBUjkV978ogw==} + '@nx/nx-linux-x64-gnu@19.8.14': + resolution: {integrity: sha512-JzE3BuO9RCBVdgai18CCze6KUzG0AozE0TtYFxRokfSC05NU3nUhd/o62UsOl7s6Bqt/9nwrW7JC8pNDiCi9OQ==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@nx/nx-linux-x64-musl@19.3.2': - resolution: {integrity: sha512-Wun4v+kuuqv20tJiCENkHGisDqfx029bFufqxx2IOe9TvD6vK4rMMkFVPUoK3FP8EBdaMW4nrR0ZucTFnStl6w==} + '@nx/nx-linux-x64-musl@19.8.14': + resolution: {integrity: sha512-2rPvDOQLb7Wd6YiU88FMBiLtYco0dVXF99IJBRGAWv+WTI7MNr47OyK2ze+JOsbYY1d8aOGUvckUvCCZvZKEfg==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@nx/nx-win32-arm64-msvc@19.3.2': - resolution: {integrity: sha512-bNVf6eu5rWFjHvn0rKHeZYlHUcs3naXvvbduW1g0DPkHG6mt8FYffQmyboN+CSeBd/uWDPNyTUekVWwU7PjtLA==} + '@nx/nx-win32-arm64-msvc@19.8.14': + resolution: {integrity: sha512-JxW+YPS+EjhUsLw9C6wtk9pQTG3psyFwxhab8y/dgk2s4AOTLyIm0XxgcCJVvB6i4uv+s1g0QXRwp6+q3IR6hg==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] - '@nx/nx-win32-x64-msvc@19.3.2': - resolution: {integrity: sha512-8DD5BPa5YrxTOKL3HTAgEd+IXNqRtJfwvbrn2MbOMNMyoMG9Zi5yhFvTH/HTT9Tz6VUHvXP16QWYA3R7eFi7Gg==} + '@nx/nx-win32-x64-msvc@19.8.14': + resolution: {integrity: sha512-RxiPlBWPcGSf9TzIIy62iKRdRhokXMDUsPub9DL2VdVyTMXPZQR25aY/PJeasJN1EQU74hg097LK2wSHi+vzOQ==} engines: {node: '>= 10'} cpu: [x64] os: [win32] @@ -2117,9 +2201,9 @@ packages: resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} - '@playwright/test@1.44.1': - resolution: {integrity: sha512-1hZ4TNvD5z9VuhNJ/walIjvMVvYkZKf71axoF/uiAqpntQJXpG64dlXhoDXE3OczPuTuvjf/M5KWFg5VAVUS3Q==} - engines: {node: '>=16'} + '@playwright/test@1.51.1': + resolution: {integrity: sha512-nM+kEaTSAoVlXmMPH10017vn3FSiFqr/bh4fKg9vmAdMfd9SDqRZNvPSiAHADc/itWak+qPvMPZQOPwCBW7k7Q==} + engines: {node: '>=18'} hasBin: true '@prisma/instrumentation@5.19.1': @@ -2447,13 +2531,22 @@ packages: rollup: optional: true + '@rollup/pluginutils@5.1.4': + resolution: {integrity: sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + '@rollup/rollup-android-arm-eabi@4.18.0': resolution: {integrity: sha512-Tya6xypR10giZV1XzxmH5wr25VcZSncG0pZIjfePT0OVBvqNEurzValetGNarVrGiq66EBVAFn15iYX4w6FKgQ==} cpu: [arm] os: [android] - '@rollup/rollup-android-arm-eabi@4.24.0': - resolution: {integrity: sha512-Q6HJd7Y6xdB48x8ZNVDOqsbh2uByBhgK8PiQgPhwkIw/HC/YX5Ghq2mQY5sRMZWHb3VsFkWooUVOZHKr7DmDIA==} + '@rollup/rollup-android-arm-eabi@4.36.0': + resolution: {integrity: sha512-jgrXjjcEwN6XpZXL0HUeOVGfjXhPyxAbbhD0BlXUB+abTOpbPiN5Wb3kOT7yb+uEtATNYF5x5gIfwutmuBA26w==} cpu: [arm] os: [android] @@ -2462,8 +2555,8 @@ packages: cpu: [arm64] os: [android] - '@rollup/rollup-android-arm64@4.24.0': - resolution: {integrity: sha512-ijLnS1qFId8xhKjT81uBHuuJp2lU4x2yxa4ctFPtG+MqEE6+C5f/+X/bStmxapgmwLwiL3ih122xv8kVARNAZA==} + '@rollup/rollup-android-arm64@4.36.0': + resolution: {integrity: sha512-NyfuLvdPdNUfUNeYKUwPwKsE5SXa2J6bCt2LdB/N+AxShnkpiczi3tcLJrm5mA+eqpy0HmaIY9F6XCa32N5yzg==} cpu: [arm64] os: [android] @@ -2472,8 +2565,8 @@ packages: cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-arm64@4.24.0': - resolution: {integrity: sha512-bIv+X9xeSs1XCk6DVvkO+S/z8/2AMt/2lMqdQbMrmVpgFvXlmde9mLcbQpztXm1tajC3raFDqegsH18HQPMYtA==} + '@rollup/rollup-darwin-arm64@4.36.0': + resolution: {integrity: sha512-JQ1Jk5G4bGrD4pWJQzWsD8I1n1mgPXq33+/vP4sk8j/z/C2siRuxZtaUA7yMTf71TCZTZl/4e1bfzwUmFb3+rw==} cpu: [arm64] os: [darwin] @@ -2482,18 +2575,28 @@ packages: cpu: [x64] os: [darwin] - '@rollup/rollup-darwin-x64@4.24.0': - resolution: {integrity: sha512-X6/nOwoFN7RT2svEQWUsW/5C/fYMBe4fnLK9DQk4SX4mgVBiTA9h64kjUYPvGQ0F/9xwJ5U5UfTbl6BEjaQdBQ==} + '@rollup/rollup-darwin-x64@4.36.0': + resolution: {integrity: sha512-6c6wMZa1lrtiRsbDziCmjE53YbTkxMYhhnWnSW8R/yqsM7a6mSJ3uAVT0t8Y/DGt7gxUWYuFM4bwWk9XCJrFKA==} cpu: [x64] os: [darwin] + '@rollup/rollup-freebsd-arm64@4.36.0': + resolution: {integrity: sha512-KXVsijKeJXOl8QzXTsA+sHVDsFOmMCdBRgFmBb+mfEb/7geR7+C8ypAml4fquUt14ZyVXaw2o1FWhqAfOvA4sg==} + cpu: [arm64] + os: [freebsd] + + '@rollup/rollup-freebsd-x64@4.36.0': + resolution: {integrity: sha512-dVeWq1ebbvByI+ndz4IJcD4a09RJgRYmLccwlQ8bPd4olz3Y213uf1iwvc7ZaxNn2ab7bjc08PrtBgMu6nb4pQ==} + cpu: [x64] + os: [freebsd] + '@rollup/rollup-linux-arm-gnueabihf@4.18.0': resolution: {integrity: sha512-C/zbRYRXFjWvz9Z4haRxcTdnkPt1BtCkz+7RtBSuNmKzMzp3ZxdM28Mpccn6pt28/UWUCTXa+b0Mx1k3g6NOMA==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm-gnueabihf@4.24.0': - resolution: {integrity: sha512-0KXvIJQMOImLCVCz9uvvdPgfyWo93aHHp8ui3FrtOP57svqrF/roSSR5pjqL2hcMp0ljeGlU4q9o/rQaAQ3AYA==} + '@rollup/rollup-linux-arm-gnueabihf@4.36.0': + resolution: {integrity: sha512-bvXVU42mOVcF4le6XSjscdXjqx8okv4n5vmwgzcmtvFdifQ5U4dXFYaCB87namDRKlUL9ybVtLQ9ztnawaSzvg==} cpu: [arm] os: [linux] @@ -2502,8 +2605,8 @@ packages: cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm-musleabihf@4.24.0': - resolution: {integrity: sha512-it2BW6kKFVh8xk/BnHfakEeoLPv8STIISekpoF+nBgWM4d55CZKc7T4Dx1pEbTnYm/xEKMgy1MNtYuoA8RFIWw==} + '@rollup/rollup-linux-arm-musleabihf@4.36.0': + resolution: {integrity: sha512-JFIQrDJYrxOnyDQGYkqnNBtjDwTgbasdbUiQvcU8JmGDfValfH1lNpng+4FWlhaVIR4KPkeddYjsVVbmJYvDcg==} cpu: [arm] os: [linux] @@ -2512,8 +2615,8 @@ packages: cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.24.0': - resolution: {integrity: sha512-i0xTLXjqap2eRfulFVlSnM5dEbTVque/3Pi4g2y7cxrs7+a9De42z4XxKLYJ7+OhE3IgxvfQM7vQc43bwTgPwA==} + '@rollup/rollup-linux-arm64-gnu@4.36.0': + resolution: {integrity: sha512-KqjYVh3oM1bj//5X7k79PSCZ6CvaVzb7Qs7VMWS+SlWB5M8p3FqufLP9VNp4CazJ0CsPDLwVD9r3vX7Ci4J56A==} cpu: [arm64] os: [linux] @@ -2522,18 +2625,23 @@ packages: cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-musl@4.24.0': - resolution: {integrity: sha512-9E6MKUJhDuDh604Qco5yP/3qn3y7SLXYuiC0Rpr89aMScS2UAmK1wHP2b7KAa1nSjWJc/f/Lc0Wl1L47qjiyQw==} + '@rollup/rollup-linux-arm64-musl@4.36.0': + resolution: {integrity: sha512-QiGnhScND+mAAtfHqeT+cB1S9yFnNQ/EwCg5yE3MzoaZZnIV0RV9O5alJAoJKX/sBONVKeZdMfO8QSaWEygMhw==} cpu: [arm64] os: [linux] + '@rollup/rollup-linux-loongarch64-gnu@4.36.0': + resolution: {integrity: sha512-1ZPyEDWF8phd4FQtTzMh8FQwqzvIjLsl6/84gzUxnMNFBtExBtpL51H67mV9xipuxl1AEAerRBgBwFNpkw8+Lg==} + cpu: [loong64] + os: [linux] + '@rollup/rollup-linux-powerpc64le-gnu@4.18.0': resolution: {integrity: sha512-hNVMQK+qrA9Todu9+wqrXOHxFiD5YmdEi3paj6vP02Kx1hjd2LLYR2eaN7DsEshg09+9uzWi2W18MJDlG0cxJA==} cpu: [ppc64] os: [linux] - '@rollup/rollup-linux-powerpc64le-gnu@4.24.0': - resolution: {integrity: sha512-2XFFPJ2XMEiF5Zi2EBf4h73oR1V/lycirxZxHZNc93SqDN/IWhYYSYj8I9381ikUFXZrz2v7r2tOVk2NBwxrWw==} + '@rollup/rollup-linux-powerpc64le-gnu@4.36.0': + resolution: {integrity: sha512-VMPMEIUpPFKpPI9GZMhJrtu8rxnp6mJR3ZzQPykq4xc2GmdHj3Q4cA+7avMyegXy4n1v+Qynr9fR88BmyO74tg==} cpu: [ppc64] os: [linux] @@ -2542,8 +2650,8 @@ packages: cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.24.0': - resolution: {integrity: sha512-M3Dg4hlwuntUCdzU7KjYqbbd+BLq3JMAOhCKdBE3TcMGMZbKkDdJ5ivNdehOssMCIokNHFOsv7DO4rlEOfyKpg==} + '@rollup/rollup-linux-riscv64-gnu@4.36.0': + resolution: {integrity: sha512-ttE6ayb/kHwNRJGYLpuAvB7SMtOeQnVXEIpMtAvx3kepFQeowVED0n1K9nAdraHUPJ5hydEMxBpIR7o4nrm8uA==} cpu: [riscv64] os: [linux] @@ -2552,8 +2660,8 @@ packages: cpu: [s390x] os: [linux] - '@rollup/rollup-linux-s390x-gnu@4.24.0': - resolution: {integrity: sha512-mjBaoo4ocxJppTorZVKWFpy1bfFj9FeCMJqzlMQGjpNPY9JwQi7OuS1axzNIk0nMX6jSgy6ZURDZ2w0QW6D56g==} + '@rollup/rollup-linux-s390x-gnu@4.36.0': + resolution: {integrity: sha512-4a5gf2jpS0AIe7uBjxDeUMNcFmaRTbNv7NxI5xOCs4lhzsVyGR/0qBXduPnoWf6dGC365saTiwag8hP1imTgag==} cpu: [s390x] os: [linux] @@ -2562,8 +2670,8 @@ packages: cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-gnu@4.24.0': - resolution: {integrity: sha512-ZXFk7M72R0YYFN5q13niV0B7G8/5dcQ9JDp8keJSfr3GoZeXEoMHP/HlvqROA3OMbMdfr19IjCeNAnPUG93b6A==} + '@rollup/rollup-linux-x64-gnu@4.36.0': + resolution: {integrity: sha512-5KtoW8UWmwFKQ96aQL3LlRXX16IMwyzMq/jSSVIIyAANiE1doaQsx/KRyhAvpHlPjPiSU/AYX/8m+lQ9VToxFQ==} cpu: [x64] os: [linux] @@ -2572,8 +2680,8 @@ packages: cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-musl@4.24.0': - resolution: {integrity: sha512-w1i+L7kAXZNdYl+vFvzSZy8Y1arS7vMgIy8wusXJzRrPyof5LAb02KGr1PD2EkRcl73kHulIID0M501lN+vobQ==} + '@rollup/rollup-linux-x64-musl@4.36.0': + resolution: {integrity: sha512-sycrYZPrv2ag4OCvaN5js+f01eoZ2U+RmT5as8vhxiFz+kxwlHrsxOwKPSA8WyS+Wc6Epid9QeI/IkQ9NkgYyQ==} cpu: [x64] os: [linux] @@ -2582,8 +2690,8 @@ packages: cpu: [arm64] os: [win32] - '@rollup/rollup-win32-arm64-msvc@4.24.0': - resolution: {integrity: sha512-VXBrnPWgBpVDCVY6XF3LEW0pOU51KbaHhccHw6AS6vBWIC60eqsH19DAeeObl+g8nKAz04QFdl/Cefta0xQtUQ==} + '@rollup/rollup-win32-arm64-msvc@4.36.0': + resolution: {integrity: sha512-qbqt4N7tokFwwSVlWDsjfoHgviS3n/vZ8LK0h1uLG9TYIRuUTJC88E1xb3LM2iqZ/WTqNQjYrtmtGmrmmawB6A==} cpu: [arm64] os: [win32] @@ -2592,8 +2700,8 @@ packages: cpu: [ia32] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.24.0': - resolution: {integrity: sha512-xrNcGDU0OxVcPTH/8n/ShH4UevZxKIO6HJFK0e15XItZP2UcaiLFd5kiX7hJnqCbSztUF8Qot+JWBC/QXRPYWQ==} + '@rollup/rollup-win32-ia32-msvc@4.36.0': + resolution: {integrity: sha512-t+RY0JuRamIocMuQcfwYSOkmdX9dtkr1PbhKW42AMvaDQa+jOdpUYysroTF/nuPpAaQMWp7ye+ndlmmthieJrQ==} cpu: [ia32] os: [win32] @@ -2602,8 +2710,8 @@ packages: cpu: [x64] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.24.0': - resolution: {integrity: sha512-fbMkAF7fufku0N2dE5TBXcNlg0pt0cJue4xBRE2Qc5Vqikxr4VCgKj/ht6SMdFcOacVA9rqF70APJ8RN/4vMJw==} + '@rollup/rollup-win32-x64-msvc@4.36.0': + resolution: {integrity: sha512-aRXd7tRZkWLqGbChgcMMDEHjOKudo1kChb1Jt1IfR8cY/KIpgNviLeJy5FUb9IpSuQj8dU2fAYNMPW/hLKOSTw==} cpu: [x64] os: [win32] @@ -2776,9 +2884,9 @@ packages: resolution: {integrity: sha512-XTWVxnWJu+c1oCshMLwnKvz8ZQJJDVOlciMfgpJBQbThVjKTCG8dwyhgLngBD2KN0ap9F/gOV8rFDEx8uh7R2A==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - '@sigstore/protobuf-specs@0.3.2': - resolution: {integrity: sha512-c6B0ehIWxMI8wiS/bj6rHMPqeFvngFV7cDU/MY+B16P9Z3Mp9k8L93eYZ7BYzSickzuqAQqAq0V956b3Ju6mLw==} - engines: {node: ^16.14.0 || >=18.0.0} + '@sigstore/protobuf-specs@0.3.3': + resolution: {integrity: sha512-RpacQhBlwpBWd7KEJsRKcBQalbV28fvkxwTOJIqhIuDysMMaJW47V4OqW30iJB9uRpqOSxxEAQFdr8tTattReQ==} + engines: {node: ^18.17.0 || >=20.5.0} '@sigstore/sign@1.0.0': resolution: {integrity: sha512-INxFVNQteLtcfGmcoldzV6Je0sbbfh9I16DM4yJPw3j5+TFP8X6uIiA18mvpEa9yyeycAKgPmOA3X9hVdVTPUA==} @@ -2809,203 +2917,179 @@ packages: '@sinonjs/fake-timers@10.3.0': resolution: {integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==} - '@storybook/addon-a11y@8.3.6': - resolution: {integrity: sha512-EeVzUN+WaLtz/DXVBL3rIGvP8+pTuJXA3lEz9CbTQXRO7QMhzTTXLKmp8xmSA2w5H01a8XpjLcZ5LYjdKrvw0g==} + '@storybook/addon-a11y@8.6.7': + resolution: {integrity: sha512-/pGRa27AVpoFG0J2+PTKSQCk6ytbRkcR+5fi75iLlqgp7YZN9rVJ8SYyEXALf/B8Gw9hSk2uxCyT3dA7ZTy52Q==} peerDependencies: - storybook: ^8.3.6 + storybook: ^8.6.7 - '@storybook/addon-actions@8.3.6': - resolution: {integrity: sha512-nOqgl0WoZK2KwjaABaXMoIgrIHOQl9inOzJvqQau0HOtsvnXGXYfJXYnpjZenoZDoZXKbUDl0U2haDFx2a2fJw==} + '@storybook/addon-actions@8.6.7': + resolution: {integrity: sha512-XgZCwIcZGThEyD7e2q7rN/jzg7ZHUxn/ln403eex04jWAGBBbtC2IVuowwCWV8HwDihnhpCZEP6HlgjakOYZbQ==} peerDependencies: - storybook: ^8.3.6 + storybook: ^8.6.7 - '@storybook/addon-backgrounds@8.3.6': - resolution: {integrity: sha512-yBn+a8i5OJzJaX6Bx5MAkfei7c2nvq+RRmvuyvxw11rtDGR6Nz4OBBe56reWxo868wVUggpRTPJCMVe5tDYgVg==} + '@storybook/addon-backgrounds@8.6.7': + resolution: {integrity: sha512-aDFzi83gDhYn0+FGjRYbY5TfBtoG/UgVr9Abi7s5ceabZRhPrYikMyFX0o8V3Z8COl6wUmWmF1luYE4MfXgN2g==} peerDependencies: - storybook: ^8.3.6 + storybook: ^8.6.7 - '@storybook/addon-controls@8.3.6': - resolution: {integrity: sha512-9IMLHgtWPuFoRCt3hDsIk1FbkK5SlCMDW1DDwtTBIeWYYZLvptS42+vGVTeQ8v5SejmVzZkzuUdzu3p4sb3IcA==} + '@storybook/addon-controls@8.6.7': + resolution: {integrity: sha512-6ReB1Sc1qlqvAM7NUmtw2K1cKCgGBs8zYRgL44Q2ti+r55a2ownhm6WUm/kZs2ixSkV9ehm1osiqbGBfAn0Isw==} peerDependencies: - storybook: ^8.3.6 + storybook: ^8.6.7 - '@storybook/addon-docs@8.3.6': - resolution: {integrity: sha512-31Rk1TOhDIzGM2wNCUIB1xKuWtArW0D2Puua9warEXlQ3FtvwmxnPrwbIzw6ufYZDWPwl9phDYTcRh8WqZIoGg==} + '@storybook/addon-docs@8.6.7': + resolution: {integrity: sha512-kgNPEVuLGNJE8EdVQi5Tg2DYgR66/gut07jvhqnJfNqUkj6UpBHad0JR1uwrd7xS3kJs29Fs7UyU87RJnSlwcg==} peerDependencies: - storybook: ^8.3.6 + storybook: ^8.6.7 - '@storybook/addon-essentials@8.3.6': - resolution: {integrity: sha512-MQPFvThlGU7wlda1xhBPQCmDh90cSSZ31OsVs1uC5kJh0aLbY2gYXPurq1G54kzrYo8SMfBxsXrCplz8Ir6UTg==} + '@storybook/addon-essentials@8.6.7': + resolution: {integrity: sha512-PFT62xuknk4wD1hTZEnYbGP1mJFPlhk7zVVlMjoldMUhmbHsFRhdWCpo93Vu9E3BWVxFxL3Jj+UwSwH4uVmekQ==} peerDependencies: - storybook: ^8.3.6 + storybook: ^8.6.7 - '@storybook/addon-highlight@8.3.6': - resolution: {integrity: sha512-A7uU+1OPVXGpkklEUJjSl2VEEDLCSNvmffUJlvW1GjajsNFIHOW2CSD+KnfFlQyPxyVbnWAYLqUP4XJxoqrvDw==} + '@storybook/addon-highlight@8.6.7': + resolution: {integrity: sha512-4KE1RF4XfqII7XrJPgf/1W0t0EWRKmik5Rrpb6WofXfgZ2QYzLFnyESjf67/g2TMgDnle2drfa/pt5tGV4+I2Q==} peerDependencies: - storybook: ^8.3.6 + storybook: ^8.6.7 - '@storybook/addon-interactions@8.3.6': - resolution: {integrity: sha512-Y0YUJj0oE1+6DFkaTPXM/8+dwTSoy0ltj2Sn2KOTJYzxKQYXBp8TlUv0QOQiGH7o/GKXIWek/VlTuvG/JEeiWw==} + '@storybook/addon-interactions@8.6.7': + resolution: {integrity: sha512-FbEWWxCl/5DJDyEGTJqtTJ5XbxM2rOUGCPy+3CkPSpI9yvz3zprRTJRHPFrh7hUqQ4Qkqfjm7JCO29+0CmeE0g==} peerDependencies: - storybook: ^8.3.6 + storybook: ^8.6.7 - '@storybook/addon-links@8.3.6': - resolution: {integrity: sha512-EGEH/kEjndEldbqyiJ8XSASkxqwzL/lgA/+6mHpa6Ljxhk1s5IMGcdA1ymJYJ2BpNdkUxRj/uxAa38eGcQiJ/g==} + '@storybook/addon-links@8.6.7': + resolution: {integrity: sha512-fIiXlaOa9Bv2tbBshQbh/BjzGOilXVx+6nrX9VkLOg7UvzAvivtSraRmPWjgdtsChAHC8Xac42KUCNGQ/rkf5w==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - storybook: ^8.3.6 + storybook: ^8.6.7 peerDependenciesMeta: react: optional: true - '@storybook/addon-measure@8.3.6': - resolution: {integrity: sha512-VHWeGgYjhzhwb2WAqYW/qyEPqg5pwKR/XqFfd+3tEirUs/64olL1l3lzLwZ8Cm07cJ81T8Z4myywb9kObZfQlw==} + '@storybook/addon-measure@8.6.7': + resolution: {integrity: sha512-4dkkCltjKRcJH+ZMv5nbNT0LBQfcXIydVfN9mAvhDsiPFD5eZcHbN4XVfUslECWgrkaa/a6FE1W9PNEUBjCJaA==} peerDependencies: - storybook: ^8.3.6 + storybook: ^8.6.7 - '@storybook/addon-outline@8.3.6': - resolution: {integrity: sha512-+VXpM8SIHX2cn30qLlMvER9/6iioFRSn2sAfLniqy4RrcQmcMP+qgE7ZzbzExt7cneJh3VFsYqBS/HElu14Vgg==} + '@storybook/addon-outline@8.6.7': + resolution: {integrity: sha512-atCpCi2CqAWQwL1nu1l5VpIA4fRMnbD4RZMsEiib1suUfNyJv0RdsSgZhp/f+e9sUS0TtMdwhzWT36eEA7VxhQ==} peerDependencies: - storybook: ^8.3.6 + storybook: ^8.6.7 - '@storybook/addon-storysource@8.3.6': - resolution: {integrity: sha512-L35BJj8vO+jIHSVjCCygoQCHSPt6wiviOLkOMgY1KluslXGHfwHd5am5y9sy4YuFl21SyFPw525/yZj9SLgqpA==} + '@storybook/addon-storysource@8.6.7': + resolution: {integrity: sha512-tIoTQp3MMyF3S4XarMOBVO40DofILO3Mz8upT4wGEfQULLjgCkS2K5c4BbT4de1hF49JsqvPByVlavntWQFTdg==} peerDependencies: - storybook: ^8.3.6 + storybook: ^8.6.7 - '@storybook/addon-toolbars@8.3.6': - resolution: {integrity: sha512-FJH+lRoZXENfpMR/G09ZqB0TmL/k6bv07GN1ysoVs420tKRgjfz6uXaZz5COrhcdISr5mTNmG+mw9x7xXTfX3Q==} + '@storybook/addon-toolbars@8.6.7': + resolution: {integrity: sha512-gR+mRs+Cc5GINZdKgE7afJLFCSMHkz40+zzdrPu6yY2P4B3UOvuQpt+zC/Er5YQ31EEjIvM6/XMQTM0i2db8AA==} peerDependencies: - storybook: ^8.3.6 + storybook: ^8.6.7 - '@storybook/addon-viewport@8.3.6': - resolution: {integrity: sha512-bL51v837W1cng/+0pypkoLsWKWmvux96zLOzqLCpcWAQ4OSMhW3foIWpCiFwMG/KY+GanoOocTx6i7j5hLtuTA==} + '@storybook/addon-viewport@8.6.7': + resolution: {integrity: sha512-kTrt6ByCbBIbqoRqQO9watDl5nSIKCC+R0/EmpEl6ZtzBV3l8trZHdvCHhIqOyv7nfaa7pIeTTG1GD6Gdrxk3w==} peerDependencies: - storybook: ^8.3.6 + storybook: ^8.6.7 - '@storybook/blocks@8.3.6': - resolution: {integrity: sha512-Oc5jU6EzfsENjrd91KcKyEKBh60RT+8uyLi1RIrymC2C/mzZMTEoNIrbnQt0eIqbjlHxn6y9JMJxHu4NJ4EmZg==} + '@storybook/blocks@8.6.7': + resolution: {integrity: sha512-IFhIKO7R1UPpnoG/5tZH0FgC79oYgXNf+7aGUwq29M/CQWy6p/Pvp0y4P962btY1UZRol+SsU//33nH8o6yNRw==} peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - storybook: ^8.3.6 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + storybook: ^8.6.7 peerDependenciesMeta: react: optional: true react-dom: optional: true - '@storybook/builder-vite@8.3.6': - resolution: {integrity: sha512-AF4+oFe1mvIHrLvaYsv8B0YSlXQtSlKTKwrXnUbcAbeGRwMmFKA1t3VyAcXV0yB9MtZ8YJsA/uKRkgGEaN7wJQ==} + '@storybook/builder-vite@8.6.7': + resolution: {integrity: sha512-hgYnVu2cy8clrmDwidu4XjvFMTEi9WiblLH5cPI3LWQjVajIQmDpcWVp6kbD063sIOphh9zYP7cVKGO7ktMB/g==} peerDependencies: - '@preact/preset-vite': '*' - storybook: ^8.3.6 - typescript: '>= 4.3.x' - vite: ^4.0.0 || ^5.0.0 - vite-plugin-glimmerx: '*' - peerDependenciesMeta: - '@preact/preset-vite': - optional: true - typescript: - optional: true - vite-plugin-glimmerx: - optional: true + storybook: ^8.6.7 + vite: ^4.0.0 || ^5.0.0 || ^6.0.0 - '@storybook/builder-webpack5@8.3.6': - resolution: {integrity: sha512-Eqn2k8aA9f0o6IMQNAxGAMfSDeTP3YYCQAtOL5Gt5lgrqLV5JMTbZOfmaRBZ82ej/BBSAopnQKIJjQBBFx6kAQ==} + '@storybook/builder-webpack5@8.6.7': + resolution: {integrity: sha512-MRzfJto3wK6F4jKyyNJ71dMWqs1CQpj27bRjGanhvBsU+nUkZylcoaqGC52FJwzaEkuSzpGgKg/aLLd33VBM9g==} peerDependencies: - storybook: ^8.3.6 + storybook: ^8.6.7 typescript: '*' peerDependenciesMeta: typescript: optional: true - '@storybook/channels@8.1.5': - resolution: {integrity: sha512-R+puP4tWYzQUbpIp8sX6U5oI+ZUevVOaFxXGaAN3PRXjIRC38oKTVWzj/G6GdziVFzN6rDn+JsYPmiRMYo1sYg==} + '@storybook/components@8.6.7': + resolution: {integrity: sha512-8pnjH1w7PZ/Iiuve1/BJY7EO/kmu0qdE34X1ZM8DyHzuy33EL/PfUuhxNkrL4ayMXrEDp/EJMHx2bqO1RdRV6A==} + peerDependencies: + storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 - '@storybook/client-logger@8.1.5': - resolution: {integrity: sha512-zd+aENXnOHsxBATppELmhw/UywLzCxQjz/8i/xkUjeTRB4Ggp0hJlOUdJUEdIJz631ydyytfvM70ktBj9gMl1w==} + '@storybook/core-common@8.6.7': + resolution: {integrity: sha512-k34X1G0HnJnCbCuwoTGmm4LKPY3mPqpTfOL2U8rFBHhwGxT35SIvXcs1mOUyzIQ9riUy8eYJM/FzHGR+478Bog==} + peerDependencies: + storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 - '@storybook/components@8.3.6': - resolution: {integrity: sha512-TXuoGZY7X3iixF45lXkYOFk8k2q9OHcqHyHyem1gATLLQXgyOvDgzm+VB7uKBNzssRQPEE+La70nfG8bq/viRw==} + '@storybook/core-webpack@8.6.7': + resolution: {integrity: sha512-2mPRdRb27/UVO6ke64nCleNOTzUwjp0APFXs7bNhchb2evj6k4VeizCQjScGNy33ORKVwBImmHKyzHzzmAR/9A==} peerDependencies: - storybook: ^8.3.6 + storybook: ^8.6.7 - '@storybook/core-common@8.1.5': - resolution: {integrity: sha512-1QDOT6KPZ9KV7Gs1yyqzvSwGBmNSUB33gckUldSBF4aqP+tZ7W5JIQ6/YTtp3V02sEokZGdL9Ud4LczQxTgy3A==} + '@storybook/core@8.6.7': + resolution: {integrity: sha512-FcvLFA+Qn3+D6LgQkk0MOXA5FBz8DGc0UZmZuVbIwIUV4MV4ywCMwtKdG0cyhtzQg0YNyfiIYWJr7lZ4jLLhYg==} peerDependencies: prettier: ^2 || ^3 peerDependenciesMeta: prettier: optional: true - '@storybook/core-events@8.1.5': - resolution: {integrity: sha512-fgwbrHoLtSX6kfmamTGJqD+KfuEgun8cc4mWKZK094ByaqbSjhnOyeYO1sfVk8qst7QTFlOfhLAUe4cz1z149A==} - - '@storybook/core-webpack@8.3.6': - resolution: {integrity: sha512-ks306CFKD7FePQzRYyTjddiLsSriceblzv4rI+IjVtftkJvcEbxub2yWkV27kPP/e9kSd4Li3M34bX5mkiwkZA==} + '@storybook/csf-plugin@8.6.7': + resolution: {integrity: sha512-HK7yQD4kFu04JOKnUwoFeR58r5WY6ucF0D8zfW4Gx+r8hBJ5K4t3z6k2dlIlRQF1X5+2vNkQOwD8liHjckuZ8Q==} peerDependencies: - storybook: ^8.3.6 - - '@storybook/core@8.3.6': - resolution: {integrity: sha512-frwfgf0EJ7QL29DWZ5bla/g0eOOWqJGd14t+VUBlpP920zB6sdDfo7+p9JoCjD9u08lGeFDqbPNKayUk+0qDag==} + storybook: ^8.6.7 - '@storybook/csf-plugin@8.3.6': - resolution: {integrity: sha512-TJyJPFejO6Gyr3+bXqE/+LomQbivvfHEbee/GwtlRj0XF4KQlqnvuEdEdcK25JbD0NXT8AbyncEUmjoxE7ojQw==} + '@storybook/csf-tools@8.6.7': + resolution: {integrity: sha512-3W2QqA96RAknxIav5fNNk10WoN9txpYsHC6elVB6/3MnIfH5QN3qEoLR8qPcVbO8Rsa+uEi5Zj+q0pKXxq+9UA==} peerDependencies: - storybook: ^8.3.6 + storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 - '@storybook/csf-tools@8.1.5': - resolution: {integrity: sha512-jOfUo0arlaG4LlsdWaRfZCS0I1FhUnkf06ThzRBrrp8mFAPtOpf9iW16J3fYMS5vAdE/v+Z1RxuTRich4/JGdQ==} - - '@storybook/csf@0.1.11': - resolution: {integrity: sha512-dHYFQH3mA+EtnCkHXzicbLgsvzYjcDJ1JWsogbItZogkPHgSJM/Wr71uMkcvw8v9mmCyP4NpXJuu6bPoVsOnzg==} - - '@storybook/csf@0.1.8': - resolution: {integrity: sha512-Ntab9o7LjBCbFIao5l42itFiaSh/Qu+l16l/r/9qmV9LnYZkO+JQ7tzhdlwpgJfhs+B5xeejpdAtftDRyXNajw==} + '@storybook/csf@0.1.13': + resolution: {integrity: sha512-7xOOwCLGB3ebM87eemep89MYRFTko+D8qE7EdAAq74lgdqRR5cOUtYWJLjO2dLtP94nqoOdHJo6MdLLKzg412Q==} '@storybook/global@5.0.0': resolution: {integrity: sha512-FcOqPAXACP0I3oJ/ws6/rrPT9WGhu915Cg8D02a9YxLo0DE9zI+a9A5gRGvmQ09fiWPukqI8ZAEoQEdWUKMQdQ==} - '@storybook/icons@1.2.12': - resolution: {integrity: sha512-UxgyK5W3/UV4VrI3dl6ajGfHM4aOqMAkFLWe2KibeQudLf6NJpDrDMSHwZj+3iKC4jFU7dkKbbtH2h/al4sW3Q==} + '@storybook/icons@1.4.0': + resolution: {integrity: sha512-Td73IeJxOyalzvjQL+JXx72jlIYHgs+REaHiREOqfpo3A2AYYG71AUbcv+lg7mEDIweKVCxsMQ0UKo634c8XeA==} engines: {node: '>=14.0.0'} peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - '@storybook/instrumenter@8.3.6': - resolution: {integrity: sha512-0RowbKwoB/s7rtymlnKNiyWN1Z3ZK5mwgzVjlRmzxDL8hrdi5KDjTNExuJTRR3ZaBP2RR0/I3m/n0p9JhHAZvg==} + '@storybook/instrumenter@8.6.7': + resolution: {integrity: sha512-FeQiV0g5crCWs0P1wKY4xZzb4PxAYNcrm2+9LLGVqwnC7qzrSCPf0p10MlveVfwsen1m6Wbqfe+wl21c31Hfmg==} peerDependencies: - storybook: ^8.3.6 + storybook: ^8.6.7 - '@storybook/manager-api@8.3.6': - resolution: {integrity: sha512-Xt5VFZcL+G/9uzaHjzWFhxRNrP+4rPhSRKEvCZorAbC9+Hv+ZDs1JSZS5wMb4WKpXBZ0rwDVOLwngqbVtfRHuQ==} + '@storybook/manager-api@8.6.7': + resolution: {integrity: sha512-BA8RxaLP07WGF660LWo7qB3Jomr/+MPuCZmuKPqXxPhfIovqYjr0hnugxJBjEah0ic31aNX4NucNfDRuV7F5sA==} peerDependencies: - storybook: ^8.3.6 + storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 - '@storybook/node-logger@8.1.5': - resolution: {integrity: sha512-9qwPX/uGhdHaVjeVUSwJUSbKX7g9goyhGYdKVuCEyl7vHR9Kp7Zkag2sEHmVdd9ixTea3jk2GZQEbnBDNQNGnw==} - - '@storybook/preset-react-webpack@8.3.6': - resolution: {integrity: sha512-Ar0vhJITXa4xsXT3RdgYZ2mhXxE3jfUisQzsITey5a2RVgnSBIENggmRZ/6j1oVgEXFthbarNEsebGiA+2vDZg==} + '@storybook/preset-react-webpack@8.6.7': + resolution: {integrity: sha512-gacUEwKsbCyxpT8S2Qjr/Y3y3x31FPABXXL9pNwG59TjcYZ/IfP4hF+uIE06Q+gqVoG6v/HSkllGTYwyybF2Lw==} engines: {node: '>=18.0.0'} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - storybook: ^8.3.6 + storybook: ^8.6.7 typescript: '*' peerDependenciesMeta: typescript: optional: true - '@storybook/preview-api@8.1.5': - resolution: {integrity: sha512-pv0aT5WbnSYR7KWQgy3jLfuBM0ocYG6GTcmZLREW5554oiBPHhzNFv+ZrBI47RzbrbFxq1h5dj4v8lkEcKIrbA==} - - '@storybook/preview-api@8.3.6': - resolution: {integrity: sha512-/Wxvb7wbI2O2iH63arRQQyyojA630vibdshkFjuC/u1nYdptEV1jkxa0OYmbZbKCn4/ze6uH4hfsKOpDPV9SWg==} + '@storybook/preview-api@8.6.7': + resolution: {integrity: sha512-Rz83Nx43v3Dn9/SjhIsorkcx1gPmlclueuzf6YywJTqE1E/L4dgoe2mOA9MfF0jr0bh3TwEA2J3ii0Jstg1Orw==} peerDependencies: - storybook: ^8.3.6 + storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 '@storybook/react-docgen-typescript-plugin@1.0.6--canary.9.0c3f3b7.0': resolution: {integrity: sha512-KUqXC3oa9JuQ0kZJLBhVdS4lOneKTOopnNBK4tUAgoxWQ3u/IjzdueZjFr7gyBrXMoU6duutk3RQR9u8ZpYJ4Q==} @@ -3013,42 +3097,46 @@ packages: typescript: '>= 4.x' webpack: '>= 4' - '@storybook/react-dom-shim@8.3.6': - resolution: {integrity: sha512-9BO6VXIdli4GHSfiP/Z0gwAf7oQig3D/yWK2U1+91UWDV8nIAgnNBAi76U4ORC6MiK5MdkDfIikIxnLLeLnahA==} + '@storybook/react-dom-shim@8.6.7': + resolution: {integrity: sha512-+JH7gbRI6NRbt9o0l1rY4wFdeVt8wGRddm0b55OBlwBGlFo2nvGVOH73J4AGphXVhfY7z33I3TXIjXQ561UdEQ==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - storybook: ^8.3.6 + storybook: ^8.6.7 - '@storybook/react-vite@8.3.6': - resolution: {integrity: sha512-KXi4ZT4X7DsB4OOIWeR1XMH/Oz6Rp4TlWBNx/TgSEDGYEkPooqZK/O0S+G+VIsrRGQUf/57YqO73mP6kNluxTA==} + '@storybook/react-vite@8.6.7': + resolution: {integrity: sha512-KiTeYaZ+AUQ1AFHSItP8dhUbd2v7Qy8+BB7w64VxQMw/dw5n0Z38lo4Tzdlkn22q2smW2ce4QwAzh2pfTz3b8g==} engines: {node: '>=18.0.0'} peerDependencies: + '@storybook/test': 8.6.7 react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - storybook: ^8.3.6 - vite: ^4.0.0 || ^5.0.0 + storybook: ^8.6.7 + vite: ^4.0.0 || ^5.0.0 || ^6.0.0 + peerDependenciesMeta: + '@storybook/test': + optional: true - '@storybook/react-webpack5@8.3.6': - resolution: {integrity: sha512-8HBnBab6kPJuX0gQGIl6voZXLRdvyXxd5wmHXc0db0T9Ozq5iuNbo9sUEk9QCwJpuQc7lDDmuOkXHVq1WjSibw==} + '@storybook/react-webpack5@8.6.7': + resolution: {integrity: sha512-xRgnrVqUxiBNJPtr1eTDwT/Drq47SIaII7v7dC0sGpeFdfLqjm+043YBMCGYTn67oGD0Sy5GrKBpeo1ahN4YLA==} engines: {node: '>=18.0.0'} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - storybook: ^8.3.6 + storybook: ^8.6.7 typescript: '>= 4.2.x' peerDependenciesMeta: typescript: optional: true - '@storybook/react@8.3.6': - resolution: {integrity: sha512-s3COryqIOYK7urgZaCPb77zlxGjPKr6dIsYmblQJcsFY2ZlG2x0Ysm8b5oRgD8Pv71hCJ0PKYA4RzDgBVYJS9A==} + '@storybook/react@8.6.7': + resolution: {integrity: sha512-6R8znSm7kzsoAJyRbEiDWE+5xjeAIzwEcfT60fqx+uMdd0vDFM7f2uT4fYy+CijWas1oFWcNV/LMd3EqSkBGsQ==} engines: {node: '>=18.0.0'} peerDependencies: - '@storybook/test': 8.3.6 + '@storybook/test': 8.6.7 react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - storybook: ^8.3.6 + storybook: ^8.6.7 typescript: '>= 4.2.x' peerDependenciesMeta: '@storybook/test': @@ -3056,91 +3144,88 @@ packages: typescript: optional: true - '@storybook/source-loader@8.3.6': - resolution: {integrity: sha512-czgQVFMsqeXe0pXjbore8X91gUOnpVVIv2dWsgS2UN9sHh+4B/Uevxx6Lz21074aynGO4bNti1BETGelejIM6w==} + '@storybook/source-loader@8.6.7': + resolution: {integrity: sha512-ycfrPHCs5OUrJTLCXDxvxLVB1zjL7IEepPs53o4RGRWO8xV1z0QfXXiX1drk48rep6dDu+a3mRWfNJ8m0RV/GA==} peerDependencies: - storybook: ^8.3.6 + storybook: ^8.6.7 '@storybook/test-runner@0.17.0': resolution: {integrity: sha512-4mt822j0VF1H/c0//OWSST9eWV0wboncJUQ+hBm5N4wmyuObvwsiMh4pmgXw8Y82wF7g1RIofjEQqAGLa7NjgQ==} engines: {node: ^16.10.0 || ^18.0.0 || >=20.0.0} hasBin: true - '@storybook/test@8.3.6': - resolution: {integrity: sha512-WIc8LzK9jaEw+e3OiweEM2j3cppPzsWod59swuf6gDBf176EQLIyjtVc+Kh3qO4NNkcL+lwmqaLPjOxlBLaDbg==} + '@storybook/test@8.6.7': + resolution: {integrity: sha512-uF1JbBtdT7tuiXfEtHsUShBHIhm2vc0C39nKVJaTWyK9CybajXaj2Ny3IRa3oY9NKnklwGgN+kZ/Z9YiIOc4MQ==} peerDependencies: - storybook: ^8.3.6 + storybook: ^8.6.7 - '@storybook/theming@8.3.6': - resolution: {integrity: sha512-LQjUk6GXRW9ELkoBKuqzQKFUW+ajfGPfVELcfs3/VQX61VhthJ4olov4bGPc04wsmmFMgN/qODxT485IwOHfPQ==} + '@storybook/theming@8.6.7': + resolution: {integrity: sha512-F/i4XS5bew9dvtNiHvDJF0mko1IUbPM9PUjTYPaw6cK8ytS0kdec703MsJ/GUA7seeEWBeGdZjV3ua0pys650A==} peerDependencies: - storybook: ^8.3.6 - - '@storybook/types@8.1.5': - resolution: {integrity: sha512-/PfAZh1xtXN2MvAZZKpiL/nPkC3bZj8BQ7P7z5a/aQarP+y7qdXuoitYQ6oOH3rkaiYywmkWzA/y4iW70KXLKg==} + storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 - '@swc/core-darwin-arm64@1.5.24': - resolution: {integrity: sha512-M7oLOcC0sw+UTyAuL/9uyB9GeO4ZpaBbH76JSH6g1m0/yg7LYJZGRmplhDmwVSDAR5Fq4Sjoi1CksmmGkgihGA==} + '@swc/core-darwin-arm64@1.11.11': + resolution: {integrity: sha512-vJcjGVDB8cZH7zyOkC0AfpFYI/7GHKG0NSsH3tpuKrmoAXJyCYspKPGid7FT53EAlWreN7+Pew+bukYf5j+Fmg==} engines: {node: '>=10'} cpu: [arm64] os: [darwin] - '@swc/core-darwin-x64@1.5.24': - resolution: {integrity: sha512-MfcFjGGYognpSBSos2pYUNYJSmqEhuw5ceGr6qAdME7ddbjGXliza4W6FggsM+JnWwpqa31+e7/R+GetW4WkaQ==} + '@swc/core-darwin-x64@1.11.11': + resolution: {integrity: sha512-/N4dGdqEYvD48mCF3QBSycAbbQd3yoZ2YHSzYesQf8usNc2YpIhYqEH3sql02UsxTjEFOJSf1bxZABDdhbSl6A==} engines: {node: '>=10'} cpu: [x64] os: [darwin] - '@swc/core-linux-arm-gnueabihf@1.5.24': - resolution: {integrity: sha512-amI2pwtcWV3E/m/nf+AQtn1LWDzKLZyjCmWd3ms7QjEueWYrY8cU1Y4Wp7wNNsxIoPOi8zek1Uj2wwFD/pttNQ==} + '@swc/core-linux-arm-gnueabihf@1.11.11': + resolution: {integrity: sha512-hsBhKK+wVXdN3x9MrL5GW0yT8o9GxteE5zHAI2HJjRQel3HtW7m5Nvwaq+q8rwMf4YQRd8ydbvwl4iUOZx7i2Q==} engines: {node: '>=10'} cpu: [arm] os: [linux] - '@swc/core-linux-arm64-gnu@1.5.24': - resolution: {integrity: sha512-sTSvmqMmgT1ynH/nP75Pc51s+iT4crZagHBiDOf5cq+kudUYjda9lWMs7xkXB/TUKFHPCRK0HGunl8bkwiIbuw==} + '@swc/core-linux-arm64-gnu@1.11.11': + resolution: {integrity: sha512-YOCdxsqbnn/HMPCNM6nrXUpSndLXMUssGTtzT7ffXqr7WuzRg2e170FVDVQFIkb08E7Ku5uOnnUVAChAJQbMOQ==} engines: {node: '>=10'} cpu: [arm64] os: [linux] - '@swc/core-linux-arm64-musl@1.5.24': - resolution: {integrity: sha512-vd2/hfOBGbrX21FxsFdXCUaffjkHvlZkeE2UMRajdXifwv79jqOHIJg3jXG1F3ZrhCghCzirFts4tAZgcG8XWg==} + '@swc/core-linux-arm64-musl@1.11.11': + resolution: {integrity: sha512-nR2tfdQRRzwqR2XYw9NnBk9Fdvff/b8IiJzDL28gRR2QiJWLaE8LsRovtWrzCOYq6o5Uu9cJ3WbabWthLo4jLw==} engines: {node: '>=10'} cpu: [arm64] os: [linux] - '@swc/core-linux-x64-gnu@1.5.24': - resolution: {integrity: sha512-Zrdzi7NqzQxm2BvAG5KyOSBEggQ7ayrxh599AqqevJmsUXJ8o2nMiWQOBvgCGp7ye+Biz3pvZn1EnRzAp+TpUg==} + '@swc/core-linux-x64-gnu@1.11.11': + resolution: {integrity: sha512-b4gBp5HA9xNWNC5gsYbdzGBJWx4vKSGybGMGOVWWuF+ynx10+0sA/o4XJGuNHm8TEDuNh9YLKf6QkIO8+GPJ1g==} engines: {node: '>=10'} cpu: [x64] os: [linux] - '@swc/core-linux-x64-musl@1.5.24': - resolution: {integrity: sha512-1F8z9NRi52jdZQCGc5sflwYSctL6omxiVmIFVp8TC9nngjQKc00TtX/JC2Eo2HwvgupkFVl5YQJidAck9YtmJw==} + '@swc/core-linux-x64-musl@1.11.11': + resolution: {integrity: sha512-dEvqmQVswjNvMBwXNb8q5uSvhWrJLdttBSef3s6UC5oDSwOr00t3RQPzyS3n5qmGJ8UMTdPRmsopxmqaODISdg==} engines: {node: '>=10'} cpu: [x64] os: [linux] - '@swc/core-win32-arm64-msvc@1.5.24': - resolution: {integrity: sha512-cKpP7KvS6Xr0jFSTBXY53HZX/YfomK5EMQYpCVDOvfsZeYHN20sQSKXfpVLvA/q2igVt1zzy1XJcOhpJcgiKLg==} + '@swc/core-win32-arm64-msvc@1.11.11': + resolution: {integrity: sha512-aZNZznem9WRnw2FbTqVpnclvl8Q2apOBW2B316gZK+qxbe+ktjOUnYaMhdCG3+BYggyIBDOnaJeQrXbKIMmNdw==} engines: {node: '>=10'} cpu: [arm64] os: [win32] - '@swc/core-win32-ia32-msvc@1.5.24': - resolution: {integrity: sha512-IoPWfi0iwqjZuf7gE223+B97/ZwkKbu7qL5KzGP7g3hJrGSKAvv7eC5Y9r2iKKtLKyv5R/T6Ho0kFR/usi7rHw==} + '@swc/core-win32-ia32-msvc@1.11.11': + resolution: {integrity: sha512-DjeJn/IfjgOddmJ8IBbWuDK53Fqw7UvOz7kyI/728CSdDYC3LXigzj3ZYs4VvyeOt+ZcQZUB2HA27edOifomGw==} engines: {node: '>=10'} cpu: [ia32] os: [win32] - '@swc/core-win32-x64-msvc@1.5.24': - resolution: {integrity: sha512-zHgF2k1uVJL8KIW+PnVz1To4a3Cz9THbh2z2lbehaF/gKHugH4c3djBozU4das1v35KOqf5jWIEviBLql2wDLQ==} + '@swc/core-win32-x64-msvc@1.11.11': + resolution: {integrity: sha512-Gp/SLoeMtsU4n0uRoKDOlGrRC6wCfifq7bqLwSlAG8u8MyJYJCcwjg7ggm0rhLdC2vbiZ+lLVl3kkETp+JUvKg==} engines: {node: '>=10'} cpu: [x64] os: [win32] - '@swc/core@1.5.24': - resolution: {integrity: sha512-Eph9zvO4xvqWZGVzTdtdEJ0Vqf0VIML/o/e4Qd2RLOqtfgnlRi7avmMu5C0oqciJ0tk+hqdUKVUZ4JPoPaiGvQ==} + '@swc/core@1.11.11': + resolution: {integrity: sha512-pCVY2Wn6dV/labNvssk9b3Owi4WOYsapcbWm90XkIj4xH/56Z6gzja9fsU+4MdPuEfC2Smw835nZHcdCFGyX6A==} engines: {node: '>=10'} peerDependencies: '@swc/helpers': '*' @@ -3157,14 +3242,14 @@ packages: '@swc/helpers@0.5.13': resolution: {integrity: sha512-UoKGxQ3r5kYI9dALKJapMmuK+1zWM/H17Z1+iwnNmzcJRnfFuevZs375TA5rW31pu4BS4NoSy1fRsexDXfWn5w==} - '@swc/jest@0.2.36': - resolution: {integrity: sha512-8X80dp81ugxs4a11z1ka43FPhP+/e+mJNXJSxiNYk8gIX/jPBtY4gQTrKu/KIoco8bzKuPI5lUxjfLiGsfvnlw==} + '@swc/jest@0.2.37': + resolution: {integrity: sha512-CR2BHhmXKGxTiFr21DYPRHQunLkX3mNIFGFkxBGji6r9uyIR5zftTOVYj1e0sFNMV2H7mf/+vpaglqaryBtqfQ==} engines: {npm: '>= 7.0.0'} peerDependencies: '@swc/core': '*' - '@swc/types@0.1.7': - resolution: {integrity: sha512-scHWahbHF0eyj3JsxG9CFJgFdFNaVQCNAimBlT6PzS3n/HptxqREjsm4OH6AN3lYcffZYSPxXW8ua2BEHp0lJQ==} + '@swc/types@0.1.19': + resolution: {integrity: sha512-WkAZaAfj44kh/UFdAQcrMP1I0nwRqpt27u+08LMBYMqmQfwwMofYoMh/48NGkMMRfC4ynpfwRbJuu8ErfNloeA==} '@tanstack/react-table@8.17.3': resolution: {integrity: sha512-5gwg5SvPD3lNAXPuJJz1fOCEZYk9/GeBFH3w/hCgnfyszOIzwkwgp5I7Q4MJtn0WECp84b5STQUDdmvGi8m3nA==} @@ -3272,6 +3357,9 @@ packages: resolution: {integrity: sha512-92F7/SFyufn4DXsha9+QfKnN03JGqtMFMXgSHbZOo8JG59WkTni7UzAouNQDf7AuP9OAMxVOPQcqG3sB7w+kkg==} engines: {node: ^16.14.0 || >=18.0.0} + '@tybys/wasm-util@0.9.0': + resolution: {integrity: sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==} + '@types/acorn@4.0.6': resolution: {integrity: sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==} @@ -3290,9 +3378,6 @@ packages: '@types/babel__traverse@7.20.6': resolution: {integrity: sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==} - '@types/body-parser@1.19.5': - resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==} - '@types/chai-subset@1.3.5': resolution: {integrity: sha512-c2mPnw+xHtXDoHmdtcCXGwyLMiauiAyxWMzhGpqHC4nqI/Y5G2XhTampslK2rb59kpcuHon03UH8W6iYUzw88A==} @@ -3302,11 +3387,8 @@ packages: '@types/connect@3.4.36': resolution: {integrity: sha512-P63Zd/JUGq+PdrM1lv0Wv5SBYeA2+CORvbrXbngriYY0jzLUWfQMQQxOhjONEz/wlHOAxOdY7CY65rgQdTjq2w==} - '@types/connect@3.4.38': - resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} - - '@types/conventional-commits-parser@5.0.0': - resolution: {integrity: sha512-loB369iXNmAZglwWATL+WRe+CRMmmBPtpolYzIebFaX4YA3x+BEfLqhUAV9WanycKI3TG1IMr5bMJDajDKLlUQ==} + '@types/conventional-commits-parser@5.0.1': + resolution: {integrity: sha512-7uz5EHdzz2TqoMfV7ee61Egf5y6NkcO4FB/1iCCQnbeiI1F3xzv3vK5dBCXUCLQgGYS+mUeigK1iKQzvED+QnQ==} '@types/debug@4.1.12': resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} @@ -3314,39 +3396,21 @@ packages: '@types/doctrine@0.0.9': resolution: {integrity: sha512-eOIHzCUSH7SMfonMG1LsC2f8vxBFtho6NGBznK41R84YzPuvSBzrhEps33IsQiOW9+VL6NQ9DbjQJznk/S4uRA==} - '@types/emscripten@1.39.13': - resolution: {integrity: sha512-cFq+fO/isvhvmuP/+Sl4K4jtU6E23DoivtbO4r50e3odaxAiVdbfSYRDdJ4gCdxx+3aRjhphS5ZMwIH4hFy/Cw==} - - '@types/escodegen@0.0.6': - resolution: {integrity: sha512-AjwI4MvWx3HAOaZqYsjKWyEObT9lcVV0Y0V8nXo6cXzN8ZiMxVhf6F3d/UNvXVGKrEzL/Dluc5p+y9GkzlTWig==} - '@types/eslint-scope@3.7.7': resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==} - '@types/eslint@8.56.10': - resolution: {integrity: sha512-Shavhk87gCtY2fhXDctcfS3e6FdxWkCx1iUZ9eEUbh7rTqlZT0/IzOkCOVt0fCjcFuZ9FPYfuezTBImfHCDBGQ==} + '@types/eslint@9.6.1': + resolution: {integrity: sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==} '@types/estree-jsx@1.0.5': resolution: {integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==} - '@types/estree@0.0.51': - resolution: {integrity: sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==} - '@types/estree@1.0.5': resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} '@types/estree@1.0.6': resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} - '@types/express-serve-static-core@4.19.3': - resolution: {integrity: sha512-KOzM7MhcBFlmnlr/fzISFF5vGWVSvN6fTd4T+ExOt08bA/dA5kpSzY52nMsI1KDFmUREpJelPYyuslLRSjjgCg==} - - '@types/express@4.17.21': - resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==} - - '@types/find-cache-dir@3.2.1': - resolution: {integrity: sha512-frsJrz2t/CeGifcu/6uRo4b+SzAwT4NYCVPu1GN8IB9XTzrpPkGuV0tmh9mN+/L0PklAlsC3u5Fxt0ju00LXIw==} - '@types/fined@1.1.5': resolution: {integrity: sha512-2N93vadEGDFhASTIRbizbl4bNqpMOId5zZfj6hHqYZfEzEfO9onnU4Im8xvzo8uudySDveDHBOOSlTWf38ErfQ==} @@ -3356,9 +3420,6 @@ packages: '@types/fs-extra@11.0.4': resolution: {integrity: sha512-yTbItCNreRooED33qjunPthRcSjERP1r4MqCZc7wv0u2sUkzTFp45tgUfS5+r7FrZPdmCCNflLhVSP/o+SemsQ==} - '@types/glob@7.2.0': - resolution: {integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==} - '@types/graceful-fs@4.1.9': resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==} @@ -3368,9 +3429,6 @@ packages: '@types/html-minifier-terser@6.1.0': resolution: {integrity: sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==} - '@types/http-errors@2.0.4': - resolution: {integrity: sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==} - '@types/inquirer@8.2.10': resolution: {integrity: sha512-IdD5NmHyVjWM8SHWo/kPBgtzXatwPkfwzyP3fN1jF2g9BWt5WO+8hL2F4o2GKIYsU40PpqeevuUWvkS/roXJkA==} @@ -3395,8 +3453,11 @@ packages: '@types/liftoff@4.0.3': resolution: {integrity: sha512-UgbL2kR5pLrWICvr8+fuSg0u43LY250q7ZMkC+XKC3E+rs/YBDEnQIzsnhU5dYsLlwMi3R75UvCL87pObP1sxw==} - '@types/lodash@4.17.4': - resolution: {integrity: sha512-wYCP26ZLxaT3R39kiN2+HcJ4kTd3U1waI/cY7ivWYqFP6pW3ZNpvi6Wd6PHZx7T/t8z0vlkXMg3QYLa7DZ/IJQ==} + '@types/lodash.clonedeep@4.5.9': + resolution: {integrity: sha512-19429mWC+FyaAhOLzsS8kZUsI+/GmBAQ0HFiCPsKGU+7pBXOQWhyrY6xNNDwUSX8SMZMJvuFVMF9O5dQOlQK9Q==} + + '@types/lodash@4.17.21': + resolution: {integrity: sha512-FOvQ0YPD5NOfPgMzJihoT+Za5pdkDJWcbpuj1DjaKZIr/gxodQjY/uWEFlTNqW2ugXHUiL8lRQgw63dzKHZdeQ==} '@types/mdast@4.0.4': resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==} @@ -3404,15 +3465,9 @@ packages: '@types/mdx@2.0.13': resolution: {integrity: sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==} - '@types/mime@1.3.5': - resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==} - '@types/minimatch@3.0.5': resolution: {integrity: sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==} - '@types/minimatch@5.1.2': - resolution: {integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==} - '@types/minimist@1.2.5': resolution: {integrity: sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==} @@ -3443,14 +3498,8 @@ packages: '@types/pg@8.6.1': resolution: {integrity: sha512-1Kc4oAGzAl7uqUStZCDvaLFqZrW9qWSjXOmBfdgyBP5La7Us6Mg4GBvRlSoaZMhQF/zSj1C8CtKMBkoiT8eL8w==} - '@types/prop-types@15.7.12': - resolution: {integrity: sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==} - - '@types/qs@6.9.15': - resolution: {integrity: sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg==} - - '@types/range-parser@1.2.7': - resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} + '@types/prop-types@15.7.14': + resolution: {integrity: sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==} '@types/react-dom@18.3.1': resolution: {integrity: sha512-qW1Mfv8taImTthu4KoXgDfLuk4bydU6Q/TkADnDWWHwi4NX4BR+LWfTp2sVmTqRrsHvyDDTelgelxJ+SsejKKQ==} @@ -3467,12 +3516,6 @@ packages: '@types/semver@7.5.8': resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} - '@types/send@0.17.4': - resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} - - '@types/serve-static@1.15.7': - resolution: {integrity: sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==} - '@types/shimmer@1.2.0': resolution: {integrity: sha512-UE7oxhQLLd9gub6JKIAhDq06T0F6FnztwMNRvYgjeQSBeMc1ZG/tA47EwfduvkuQS8apbkM/lpLpWsaCeYsXVg==} @@ -3500,8 +3543,8 @@ packages: '@types/yargs-parser@21.0.3': resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} - '@types/yargs@17.0.32': - resolution: {integrity: sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==} + '@types/yargs@17.0.33': + resolution: {integrity: sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==} '@typescript/vfs@1.6.0': resolution: {integrity: sha512-hvJUjNVeBMp77qPINuUvYXj4FyWeeMMKZkxEATEU3hqBAQ7qdTBCUFT7Sp0Zu0faeEtFf+ldXxMEDr/bk73ISg==} @@ -3529,8 +3572,8 @@ packages: '@vitest/pretty-format@2.0.5': resolution: {integrity: sha512-h8k+1oWHfwTkyTkb9egzwNMfJAEx4veaPSnMeKbVSjp4euqGSbQlm5+6VHwTr7u4FJslVVsUG5nopCaAYdOmSQ==} - '@vitest/pretty-format@2.1.3': - resolution: {integrity: sha512-XH1XdtoLZCpqV59KRbPrIhFCOO0hErxrQCMcvnQete3Vibb9UeIOX02uFPfVn3Z9ZXsq78etlfyhnkmIZSzIwQ==} + '@vitest/pretty-format@2.1.9': + resolution: {integrity: sha512-KhRIdGV2U9HOUzxfiHmY8IFHTdqtOhIzCpd8WRdJiE7D/HUcZVD0EgQCVjm+Q9gkUXWgBvMmTtZgIG48wq7sOQ==} '@vitest/runner@0.34.6': resolution: {integrity: sha512-1CUQgtJSLF47NnhN+F9X2ycxUP0kLHQ/JWvNHbeBfwW8CzEGgeskzNnHDyv1ieKTltuR6sdIHV+nmR6kPxQqzQ==} @@ -3562,53 +3605,57 @@ packages: '@vitest/utils@2.0.5': resolution: {integrity: sha512-d8HKbqIcya+GR67mkZbrzhS5kKhtp8dQLcmRZLGTscGVg7yImT82cIrhtn2L8+VujWcy6KZweApgNmPsTAO/UQ==} - '@vitest/utils@2.1.3': - resolution: {integrity: sha512-xpiVfDSg1RrYT0tX6czgerkpcKFmFOF/gCr30+Mve5V2kewCy4Prn1/NDMSRwaSmT7PRaOF83wu+bEtsY1wrvA==} + '@vitest/utils@2.1.9': + resolution: {integrity: sha512-v0psaMSkNJ3A2NMrUEHFRzJtDPFn+/VWZ5WxImB21T9fjucJRmS7xCS3ppEnARb9y11OAzaD+P2Ps+b+BGX5iQ==} - '@webassemblyjs/ast@1.12.1': - resolution: {integrity: sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==} + '@vtex/shoreline-utils@1.0.107': + resolution: {integrity: sha512-ZfRXSWyy8zsq5UxHrTKbd/fxI+aflqsQC5SGGHvN9cYyQ4GlBNN266F+39cPkE4eR2LSJ5vURHVQH9YTko4o7Q==} + engines: {node: '>=20'} - '@webassemblyjs/floating-point-hex-parser@1.11.6': - resolution: {integrity: sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==} + '@webassemblyjs/ast@1.14.1': + resolution: {integrity: sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==} - '@webassemblyjs/helper-api-error@1.11.6': - resolution: {integrity: sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==} + '@webassemblyjs/floating-point-hex-parser@1.13.2': + resolution: {integrity: sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==} - '@webassemblyjs/helper-buffer@1.12.1': - resolution: {integrity: sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==} + '@webassemblyjs/helper-api-error@1.13.2': + resolution: {integrity: sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==} - '@webassemblyjs/helper-numbers@1.11.6': - resolution: {integrity: sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==} + '@webassemblyjs/helper-buffer@1.14.1': + resolution: {integrity: sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==} - '@webassemblyjs/helper-wasm-bytecode@1.11.6': - resolution: {integrity: sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==} + '@webassemblyjs/helper-numbers@1.13.2': + resolution: {integrity: sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==} - '@webassemblyjs/helper-wasm-section@1.12.1': - resolution: {integrity: sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==} + '@webassemblyjs/helper-wasm-bytecode@1.13.2': + resolution: {integrity: sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==} - '@webassemblyjs/ieee754@1.11.6': - resolution: {integrity: sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==} + '@webassemblyjs/helper-wasm-section@1.14.1': + resolution: {integrity: sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==} - '@webassemblyjs/leb128@1.11.6': - resolution: {integrity: sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==} + '@webassemblyjs/ieee754@1.13.2': + resolution: {integrity: sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==} - '@webassemblyjs/utf8@1.11.6': - resolution: {integrity: sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==} + '@webassemblyjs/leb128@1.13.2': + resolution: {integrity: sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==} - '@webassemblyjs/wasm-edit@1.12.1': - resolution: {integrity: sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==} + '@webassemblyjs/utf8@1.13.2': + resolution: {integrity: sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==} - '@webassemblyjs/wasm-gen@1.12.1': - resolution: {integrity: sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==} + '@webassemblyjs/wasm-edit@1.14.1': + resolution: {integrity: sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==} - '@webassemblyjs/wasm-opt@1.12.1': - resolution: {integrity: sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==} + '@webassemblyjs/wasm-gen@1.14.1': + resolution: {integrity: sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==} - '@webassemblyjs/wasm-parser@1.12.1': - resolution: {integrity: sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==} + '@webassemblyjs/wasm-opt@1.14.1': + resolution: {integrity: sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==} - '@webassemblyjs/wast-printer@1.12.1': - resolution: {integrity: sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==} + '@webassemblyjs/wasm-parser@1.14.1': + resolution: {integrity: sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==} + + '@webassemblyjs/wast-printer@1.14.1': + resolution: {integrity: sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==} '@xtuc/ieee754@1.2.0': resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==} @@ -3616,14 +3663,6 @@ packages: '@xtuc/long@4.2.2': resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==} - '@yarnpkg/fslib@2.10.3': - resolution: {integrity: sha512-41H+Ga78xT9sHvWLlFOZLIhtU6mTGZ20pZ29EiZa97vnxdohJD2AF42rCoAoWfqUz486xY6fhjMH+DYEM9r14A==} - engines: {node: '>=12 <14 || 14.2 - 14.9 || >14.10.0'} - - '@yarnpkg/libzip@2.3.0': - resolution: {integrity: sha512-6xm38yGVIa6mKm/DUCF2zFFJhERh/QWp1ufm4cNUvxsONBmfPg8uZ9pZBdOmF6qFGr/HlT6ABBkCSx/dlEtvWg==} - engines: {node: '>=12 <14 || 14.2 - 14.9 || >14.10.0'} - '@yarnpkg/lockfile@1.1.0': resolution: {integrity: sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==} @@ -3643,16 +3682,6 @@ packages: resolution: {integrity: sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - accepts@1.3.8: - resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} - engines: {node: '>= 0.6'} - - acorn-import-assertions@1.9.0: - resolution: {integrity: sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==} - deprecated: package has been renamed to acorn-import-attributes - peerDependencies: - acorn: ^8 - acorn-import-attributes@1.9.5: resolution: {integrity: sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==} peerDependencies: @@ -3663,18 +3692,13 @@ packages: peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - acorn-walk@7.2.0: - resolution: {integrity: sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==} - engines: {node: '>=0.4.0'} - acorn-walk@8.3.2: resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==} engines: {node: '>=0.4.0'} - acorn@7.4.1: - resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==} + acorn-walk@8.3.4: + resolution: {integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==} engines: {node: '>=0.4.0'} - hasBin: true acorn@8.11.3: resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} @@ -3686,6 +3710,11 @@ packages: engines: {node: '>=0.4.0'} hasBin: true + acorn@8.14.1: + resolution: {integrity: sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==} + engines: {node: '>=0.4.0'} + hasBin: true + add-stream@1.0.0: resolution: {integrity: sha512-qQLMr+8o0WC4FZGQTcJiKBVC59JylcPSrTtk6usvmIDFUOCKegapy1VHQwRbFMOFyb/inzUVqHs+eMYKDM1YeQ==} @@ -3693,12 +3722,12 @@ packages: resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} engines: {node: '>= 6.0.0'} - agent-base@7.1.1: - resolution: {integrity: sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==} + agent-base@7.1.3: + resolution: {integrity: sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==} engines: {node: '>= 14'} - agentkeepalive@4.5.0: - resolution: {integrity: sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==} + agentkeepalive@4.6.0: + resolution: {integrity: sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ==} engines: {node: '>= 8.0.0'} aggregate-error@3.1.0: @@ -3726,8 +3755,8 @@ packages: ajv@6.12.6: resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} - ajv@8.15.0: - resolution: {integrity: sha512-15BTtQUOsSrmHCy+B4VnAiJAJxJ8IFgu6fcjFQF3jQYZ78nLSQthlFg4ehp+NLIyfvFgOlxNsjKIEhydtFPVHQ==} + ajv@8.17.1: + resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==} ansi-colors@4.1.3: resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} @@ -3762,8 +3791,8 @@ packages: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} - ansi-regex@6.0.1: - resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} + ansi-regex@6.1.0: + resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==} engines: {node: '>=12'} ansi-styles@2.2.1: @@ -3793,9 +3822,6 @@ packages: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} engines: {node: '>= 8'} - app-root-dir@1.0.2: - resolution: {integrity: sha512-jlpIfsOoNoafl92Sz//64uQHGSyMrD2vYG5d8o2a4qGvyNCvXur7bzIsWtAC/6flI2RYAp3kv8rsfBtaLm7w0g==} - append-transform@2.0.0: resolution: {integrity: sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg==} engines: {node: '>=8'} @@ -3833,6 +3859,10 @@ packages: aria-query@5.3.0: resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} + aria-query@5.3.2: + resolution: {integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==} + engines: {node: '>= 0.4'} + array-buffer-byte-length@1.0.1: resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==} engines: {node: '>= 0.4'} @@ -3845,9 +3875,6 @@ packages: resolution: {integrity: sha512-zHjL5SZa68hkKHBFBK6DJCTtr9sfTCPCaph/L7tMSLcTFgy+zX7E+6q5UArbtOtMBCtxdICpfTCspRse+ywyXA==} engines: {node: '>=0.10.0'} - array-flatten@1.1.1: - resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} - array-ify@1.0.0: resolution: {integrity: sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==} @@ -3885,11 +3912,8 @@ packages: resolution: {integrity: sha512-ISvCdHdlTDlH5IpxQJIex7BWBywFWgjJSVdwst+/iQCoEYnyOaQ95+X1JGshuBjGp6nxKUy1jMgE3zPqN7fQdg==} hasBin: true - async@2.6.4: - resolution: {integrity: sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==} - - async@3.2.5: - resolution: {integrity: sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==} + async@3.2.6: + resolution: {integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==} asynckit@0.4.0: resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} @@ -3902,12 +3926,12 @@ packages: resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} engines: {node: '>= 0.4'} - axe-core@4.9.1: - resolution: {integrity: sha512-QbUdXJVTpvUTHU7871ppZkdOLBeGUKBQWHkHrvN2V9IQWGMt61zf3B45BtzjxEJzYuj0JBjBZP/hmYS/R9pmAw==} + axe-core@4.10.3: + resolution: {integrity: sha512-Xm7bpRXnDSX2YE2YFfBk2FnF0ep6tmG7xPh8iHee8MIcrgq762Nkce856dYtJYLkuIoYZvGfTs/PbZhideTcEg==} engines: {node: '>=4'} - axios@1.7.2: - resolution: {integrity: sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==} + axios@1.8.4: + resolution: {integrity: sha512-eBSYY4Y68NNlHbHBMdeDmKNtDgXWhQsJcGqzO3iLUM0GraQFSS9cVgPX5I9b3lbdFKyYoAEGAZF1DwhTaljNAw==} babel-jest@29.7.0: resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==} @@ -3929,8 +3953,8 @@ packages: babel-polyfill@6.26.0: resolution: {integrity: sha512-F2rZGQnAdaHWQ8YAoeRbukc7HS9QgdgeyJ0rQDd485v9opwuPvjpPFcOOT/WmkKTdgy9ESgSPXDcTNpzrGr6iQ==} - babel-preset-current-node-syntax@1.0.1: - resolution: {integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==} + babel-preset-current-node-syntax@1.1.0: + resolution: {integrity: sha512-ldYss8SbBlWva1bs28q78Ju5Zq1F+8BrqBZZ0VFhLBvhh6lCpC2o3gDJi/5DRLs9FgYZCnmPYIVFU4lRXCkyUw==} peerDependencies: '@babel/core': ^7.0.0 @@ -3978,10 +4002,6 @@ packages: bl@5.1.0: resolution: {integrity: sha512-tv1ZJHLfTDnXE6tMHv73YgSJaWR2AFuPwMntBe7XL/GBFHnT0CLnsHMogfk5+GzCDC5ZWarSCYaIGATZt9dNsQ==} - body-parser@1.20.2: - resolution: {integrity: sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==} - engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} - boolbase@1.0.0: resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} @@ -4003,6 +4023,11 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true + browserslist@4.24.4: + resolution: {integrity: sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + bser@2.1.1: resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==} @@ -4035,10 +4060,6 @@ packages: resolution: {integrity: sha512-tUkzZWK0M/qdoLEqikxBWe4kumyuwjl3HO6zHTr4yEI23EojPtLYXdG1+AQY7MN0cGyNDvEaJ8wiYQm6P2bPxg==} engines: {node: '>=12.17'} - bytes@3.1.2: - resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} - engines: {node: '>= 0.8'} - cac@6.7.14: resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} engines: {node: '>=8'} @@ -4047,8 +4068,8 @@ packages: resolution: {integrity: sha512-/aJwG2l3ZMJ1xNAnqbMpA40of9dj/pIH3QfiuQSqjfPJF747VR0J/bHn+/KdNnHKc6XQcWt/AfRSBft82W1d2A==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - cacache@18.0.3: - resolution: {integrity: sha512-qXCd4rh6I07cnDqh8V48/94Tc/WSfj+o3Gn6NZ0aZovS255bUx8O13uKxRFd2eWG0xgsco7+YItQNPaa5E85hg==} + cacache@18.0.4: + resolution: {integrity: sha512-B+L5iIa9mgcjLbliir2th36yEwPftrzteHYujzsx3dFP/31GCHcIeS8f5MGd80odLOjaOvSpU3EEAmRQptkxLQ==} engines: {node: ^16.14.0 || >=18.0.0} cachedir@2.3.0: @@ -4059,10 +4080,22 @@ packages: resolution: {integrity: sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA==} engines: {node: '>=8'} + call-bind-apply-helpers@1.0.2: + resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} + engines: {node: '>= 0.4'} + call-bind@1.0.7: resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} engines: {node: '>= 0.4'} + call-bind@1.0.8: + resolution: {integrity: sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==} + engines: {node: '>= 0.4'} + + call-bound@1.0.4: + resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==} + engines: {node: '>= 0.4'} + callsites@3.1.0: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} engines: {node: '>=6'} @@ -4085,6 +4118,9 @@ packages: caniuse-lite@1.0.30001637: resolution: {integrity: sha512-1x0qRI1mD1o9e+7mBI7XtzFAP4XszbHaVWsMiGbSPLYekKTJF7K+FNk6AsXH4sUpc+qrsI3pVgf1Jdl/uGkuSQ==} + caniuse-lite@1.0.30001706: + resolution: {integrity: sha512-3ZczoTApMAZwPKYWmwVbQMFpXBDds3/0VciVoUwPUbldlYyVLmRVuRs/PcUZtHpbLRpzzDvrvnFuREsGt6lUug==} + capital-case@1.0.4: resolution: {integrity: sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==} @@ -4099,8 +4135,12 @@ packages: resolution: {integrity: sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==} engines: {node: '>=4'} - chai@5.1.1: - resolution: {integrity: sha512-pT1ZgP8rPNqUgieVaEY+ryQr6Q4HXNg8Ei9UnLUrjN4IA7dvQC5JB+/kxVcPNDHyBcc/26CXPkbNzq3qwrOEKA==} + chai@4.5.0: + resolution: {integrity: sha512-RITGBfijLkBddZvnn8jdqoTypxvqbOLYQkGGxXzeFjVHvudaPw0HNFD9x928/eUwYWd2dPCugVqspGALTZZQKw==} + engines: {node: '>=4'} + + chai@5.2.0: + resolution: {integrity: sha512-mCuXncKXk5iCLhfhwTc0izo0gtEmpz5CtG2y8GiOINBlMVS6v8TMRc5TaLWKS6692m9+dVVfzgeVxR5UxWHTYw==} engines: {node: '>=12'} chalk@1.1.3: @@ -4131,6 +4171,10 @@ packages: resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + chalk@5.4.1: + resolution: {integrity: sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + change-case@4.1.2: resolution: {integrity: sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==} @@ -4138,8 +4182,8 @@ packages: resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} engines: {node: '>=10'} - char-regex@2.0.1: - resolution: {integrity: sha512-oSvEeo6ZUD7NepqAat3RqoucZ5SeqLJgOvVIwkafu6IP3V0pO38s/ypdVUmDDK6qIIHNlYHJAKX9E7R7HoKElw==} + char-regex@2.0.2: + resolution: {integrity: sha512-cbGOjAptfM2LVmWhwRFHEKTPkLwNddVmuqYZQt895yXwAsWsXObCG+YN4DGQ/JBtT4GP1a1lPPdio2z413LmTg==} engines: {node: '>=12.20'} character-entities-html4@2.1.0: @@ -4180,8 +4224,8 @@ packages: resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} engines: {node: '>=10'} - chromatic@11.5.1: - resolution: {integrity: sha512-JMLih17sOwdD8h1w7XRTrs0g1DUicJxWkHzq0/nGB0CMIgfoylHq7uXpPEByu7l78lZLqcgneCPUuVEEfEWJDg==} + chromatic@11.27.0: + resolution: {integrity: sha512-jQ2ufjS+ePpg+NtcPI9B2eOi+pAzlRd2nhd1LgNMsVCC9Bzf5t8mJtyd8v2AUuJS0LdX0QVBgkOnlNv9xviHzA==} hasBin: true peerDependencies: '@chromatic-com/cypress': ^0.*.* || ^1.0.0 @@ -4192,10 +4236,6 @@ packages: '@chromatic-com/playwright': optional: true - chromatic@9.1.0: - resolution: {integrity: sha512-9ib8k4LIfg/88kKufxz1N8vgCB7nlLhJqmx+Vx55cM/6DCB/M6oqroirVRXfdeC7qaZuhyUemPF2QHxBh7GXtQ==} - hasBin: true - chrome-trace-event@1.0.4: resolution: {integrity: sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==} engines: {node: '>=6.0'} @@ -4207,6 +4247,9 @@ packages: cjs-module-lexer@1.3.1: resolution: {integrity: sha512-a3KdPAANPbNE4ZUv9h6LckSl9zLsYOP4MBmhIPkRaeyybt+r4UghLvq+xw/YwUcC1gqylCkL4rdVs3Lwupjm4Q==} + cjs-module-lexer@1.4.3: + resolution: {integrity: sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==} + clean-css@5.3.3: resolution: {integrity: sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==} engines: {node: '>= 10.0'} @@ -4338,6 +4381,10 @@ packages: resolution: {integrity: sha512-9HMlXtt/BNoYr8ooyjjNRdIilOTkVJXB+GhxMTtOKwk0R4j4lS4NpjuqmRxroBfnfTSHQIHQB7wryHhXarNjmQ==} engines: {node: '>=16'} + commander@12.1.0: + resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==} + engines: {node: '>=18'} + commander@2.20.3: resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} @@ -4348,10 +4395,6 @@ packages: resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} engines: {node: '>= 6'} - commander@5.1.0: - resolution: {integrity: sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==} - engines: {node: '>= 6'} - commander@7.2.0: resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} engines: {node: '>= 10'} @@ -4364,8 +4407,8 @@ packages: resolution: {integrity: sha512-e2i4wANQiSXgnrBlIatyHtP1odfUp0BbV5Y5nEGbxtIrStkEOAAzCUirvLBNXHLr7kwLvJl6V+4V3XV9x7Wd9w==} engines: {node: ^12.20.0 || >=14} - commitizen@4.3.0: - resolution: {integrity: sha512-H0iNtClNEhT0fotHvGV3E9tDejDeS04sN1veIebsKYGMuGscFaswRoYJKmT3eW85eIJAs0F28bG2+a/9wCOfPw==} + commitizen@4.3.1: + resolution: {integrity: sha512-gwAPAVTy/j5YcOOebcCRIijn+mSjWJC+IYKivTu6aG8Ei/scoXgfsMRnuAk6b0GRste2J4NGxVdMN3ZpfNaVaw==} engines: {node: '>= 12'} hasBin: true @@ -4408,14 +4451,6 @@ packages: constants-browserify@1.0.0: resolution: {integrity: sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==} - content-disposition@0.5.4: - resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} - engines: {node: '>= 0.6'} - - content-type@1.0.5: - resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} - engines: {node: '>= 0.6'} - conventional-changelog-angular@5.0.13: resolution: {integrity: sha512-i/gipMxs7s8L/QeuavPF2hLnJgH6pEZAttySB6aiQLWcX3puWDL3ACVmvBhJGxnAy52Qc15ua26BufY6KpmrVA==} engines: {node: '>=10'} @@ -4469,19 +4504,12 @@ packages: convert-source-map@2.0.0: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} - cookie-signature@1.0.6: - resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} - - cookie@0.6.0: - resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==} - engines: {node: '>= 0.6'} - core-js@2.6.12: resolution: {integrity: sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==} deprecated: core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js. - core-js@3.37.1: - resolution: {integrity: sha512-Xn6qmxrQZyB0FFY8E3bgRXei3lWDJHhvI+u0q9TKIYM49G8pAr0FgnnrFRAmsbptZL1yxRADVXn+x5AGsbBfyw==} + core-js@3.41.0: + resolution: {integrity: sha512-SJ4/EHwS36QMJd6h/Rg+GyR4A5xE0FSI3eZ+iBVpfqf1x0eTSg1smWLHrA+2jQThZSh97fmSgFSU8B61nxosxA==} core-util-is@1.0.3: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} @@ -4496,13 +4524,13 @@ packages: cose-base@2.2.0: resolution: {integrity: sha512-AzlgcsCbUMymkADOJtQm3wO9S3ltPfYOFD5033keQn9NJzIbtnZj+UdBJe7DYml/8TdbtHJW3j58SOnKhWY/5g==} - cosmiconfig-typescript-loader@5.0.0: - resolution: {integrity: sha512-+8cK7jRAReYkMwMiG+bxhcNKiHJDM6bR9FD/nGBXOWdMLuYawjF5cGrtLilJ+LGd3ZjCXnJjR5DkfWPoIVlqJA==} - engines: {node: '>=v16'} + cosmiconfig-typescript-loader@6.1.0: + resolution: {integrity: sha512-tJ1w35ZRUiM5FeTzT7DtYWAFFv37ZLqSRkGi2oeCK1gPhvaWjkAtfXvLmvE1pRfxxp9aQo6ba/Pvg1dKj05D4g==} + engines: {node: '>=v18'} peerDependencies: '@types/node': '*' - cosmiconfig: '>=8.2' - typescript: '>=4' + cosmiconfig: '>=9' + typescript: '>=5' cosmiconfig@6.0.0: resolution: {integrity: sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==} @@ -4542,9 +4570,9 @@ packages: resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} engines: {node: '>= 8'} - crypto-random-string@4.0.0: - resolution: {integrity: sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==} - engines: {node: '>=12'} + cross-spawn@7.0.6: + resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} + engines: {node: '>= 8'} css-loader@6.11.0: resolution: {integrity: sha512-CTJ+AEQJjq5NzLga5pE39qdiSV56F8ywCIsqNIRF0r7BDgWsN25aazToqAFg7ZrtA/U016xudB3ffgweORxX7g==} @@ -4573,6 +4601,9 @@ packages: engines: {node: '>=4'} hasBin: true + cssfontparser@1.2.1: + resolution: {integrity: sha512-6tun4LoZnj7VN6YeegOVb67KBX/7JJsqvj+pv3ZA7F878/eN33AbGa5b/S/wXxS/tcp8nc40xRUrsPlxIyNUPg==} + cssstyle@3.0.0: resolution: {integrity: sha512-N4u2ABATi3Qplzf0hWbVCdjenim8F3ojEXpBDF5hBpjzW182MjNGLqfmQ0SkSPeQ+V86ZXgeH8aXj6kayd4jgg==} engines: {node: '>=14'} @@ -4762,22 +4793,6 @@ packages: dayjs@1.11.11: resolution: {integrity: sha512-okzr3f11N6WuqYtZSvm+F776mB41wRZMhKP+hc34YdW+KmtYYK9iqvHSwo2k9FEH3fhGXvOPV6yz2IcSrfRUDg==} - debug@2.6.9: - resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - - debug@3.2.7: - resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - debug@4.3.4: resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} engines: {node: '>=6.0'} @@ -4805,6 +4820,15 @@ packages: supports-color: optional: true + debug@4.4.0: + resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + decamelize-keys@1.1.1: resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==} engines: {node: '>=0.10.0'} @@ -4813,8 +4837,8 @@ packages: resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} engines: {node: '>=0.10.0'} - decimal.js@10.4.3: - resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==} + decimal.js@10.5.0: + resolution: {integrity: sha512-8vDa8Qxvr/+d94hSh5P3IJwI5t8/c0KsMp+g8bNw9cY2icONa5aPfvKeieW1WlG0WQYwwhJ7mjui2xtiePQSXw==} decode-named-character-reference@1.0.2: resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==} @@ -4834,6 +4858,10 @@ packages: resolution: {integrity: sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==} engines: {node: '>=6'} + deep-eql@4.1.4: + resolution: {integrity: sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg==} + engines: {node: '>=6'} + deep-eql@5.0.2: resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==} engines: {node: '>=6'} @@ -4879,10 +4907,6 @@ packages: delegates@1.0.0: resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==} - depd@2.0.0: - resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} - engines: {node: '>= 0.8'} - deprecation@2.3.1: resolution: {integrity: sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==} @@ -4890,10 +4914,6 @@ packages: resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} engines: {node: '>=6'} - destroy@1.2.0: - resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} - engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} - detect-file@1.0.0: resolution: {integrity: sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==} engines: {node: '>=0.10.0'} @@ -4988,17 +5008,17 @@ packages: resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==} engines: {node: '>=8'} - dotenv-expand@10.0.0: - resolution: {integrity: sha512-GopVGCpVS1UKH75VKHGuQFqS1Gusej0z4FyQkPdwjil2gNIv+LNsqBlboOzpJFZKVT95GkCyWJbBSdFEFUWI2A==} + dotenv-expand@11.0.7: + resolution: {integrity: sha512-zIHwmZPRshsCdpMDyVsqGmgyP0yT8GAgXUnkdAoJisxvf33k7yO6OuoKmcTGuXPWSsm8Oh88nZicRLA9Y0rUeA==} engines: {node: '>=12'} - dotenv-expand@11.0.6: - resolution: {integrity: sha512-8NHi73otpWsZGBSZwwknTXS5pqMOrk9+Ssrna8xCaxkzEpU9OTf9R5ArQGVw03//Zmk9MOwLPng9WwndvpAJ5g==} + dotenv@16.4.7: + resolution: {integrity: sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==} engines: {node: '>=12'} - dotenv@16.4.5: - resolution: {integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==} - engines: {node: '>=12'} + dunder-proto@1.0.1: + resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} + engines: {node: '>= 0.4'} duplexer@0.1.2: resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} @@ -5006,8 +5026,14 @@ packages: eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - ee-first@1.1.1: - resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} + echarts-for-react@3.0.4: + resolution: {integrity: sha512-rc7SNdr0JoMTkMJspp9ejlZAoipv2mMwbI30ggIgxSZMELdX36C2aJREvJ9OSkyetC/RoO1s7VrefXUrUAMClg==} + peerDependencies: + echarts: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 + react: ^15.0.0 || >=16.0.0 + + echarts@6.0.0: + resolution: {integrity: sha512-Tte/grDQRiETQP4xz3iZWSvoHrkCQtwqd6hs+mifXcjrCuo2iKWbajFObuLJVBlDIJlOzgQPd1hsaKt/3+OMkQ==} ejs@3.1.10: resolution: {integrity: sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==} @@ -5017,6 +5043,9 @@ packages: electron-to-chromium@1.4.812: resolution: {integrity: sha512-7L8fC2Ey/b6SePDFKR2zHAy4mbdp1/38Yk5TsARO66W3hC5KEaeKMMHoxwtuH+jcu2AYLSn9QX04i95t6Fl1Hg==} + electron-to-chromium@1.5.123: + resolution: {integrity: sha512-refir3NlutEZqlKaBLK0tzlVLe5P2wDKS7UQt/3SpibizgsRAPOsqQC3ffw1nlv3ze5gjRQZYHoPymgVZkplFA==} + emittery@0.13.1: resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==} engines: {node: '>=12'} @@ -5027,10 +5056,6 @@ packages: emoji-regex@9.2.2: resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} - encodeurl@1.0.2: - resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} - engines: {node: '>= 0.8'} - encoding@0.1.13: resolution: {integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==} @@ -5040,8 +5065,8 @@ packages: endent@2.1.0: resolution: {integrity: sha512-r8VyPX7XL8U01Xgnb1CjZ3XV+z90cXIJ9JPE/R9SEC9vpw2P6CfsRPJmp20DppC5N7ZAMCmjYkJIa744Iyg96w==} - enhanced-resolve@5.16.1: - resolution: {integrity: sha512-4U5pNsuDl0EhuZpq46M5xPslstkviJuhrdobaRDBk2Jy2KO37FDAJl4lb2KlNabxT0m4MTK2UHNrsAcphE8nyw==} + enhanced-resolve@5.18.1: + resolution: {integrity: sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==} engines: {node: '>=10.13.0'} enquirer@2.3.6: @@ -5077,6 +5102,10 @@ packages: resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} engines: {node: '>= 0.4'} + es-define-property@1.0.1: + resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} + engines: {node: '>= 0.4'} + es-errors@1.3.0: resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} engines: {node: '>= 0.4'} @@ -5084,8 +5113,19 @@ packages: es-get-iterator@1.1.3: resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==} - es-module-lexer@1.5.3: - resolution: {integrity: sha512-i1gCgmR9dCl6Vil6UKPI/trA69s08g/syhiDK9TG0Nf1RJjjFI+AzoWW7sPufzkgYAn861skuCwJa0pIIHYxvg==} + es-module-lexer@1.6.0: + resolution: {integrity: sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ==} + + es-object-atoms@1.1.1: + resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} + engines: {node: '>= 0.4'} + + es-set-tostringtag@2.1.0: + resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==} + engines: {node: '>= 0.4'} + + es-toolkit@1.33.0: + resolution: {integrity: sha512-X13Q/ZSc+vsO1q600bvNK4bxgXMkHcf//RxCmYDaRY5DAcT+eoXjY5hoAPGMdRnWQjvyLEcyauG3b6hz76LNqg==} es6-error@4.1.1: resolution: {integrity: sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==} @@ -5096,8 +5136,8 @@ packages: esast-util-from-js@2.0.1: resolution: {integrity: sha512-8Ja+rNJ0Lt56Pcf3TAmpBZjmx8ZcK5Ts4cAzIOjsjevg9oSXJnl6SUQ2EevU8tv3h6ZLWmoKL5H4fgWvdvfETw==} - esbuild-register@3.5.0: - resolution: {integrity: sha512-+4G/XmakeBAsvJuDugJvtyF1x+XJT4FMocynNpxrvEBViirpfUn2PgNpCHedfWhF4WokNsO/OvMKrmJOIJsI5A==} + esbuild-register@3.6.0: + resolution: {integrity: sha512-H2/S7Pm8a9CL1uhp9OvjwrBh5Pvx0H8qVOxNu8Wed9Y7qv56MPtq+GGM8RJpq6glYJn9Wspr8uw7l55uyinNeg==} peerDependencies: esbuild: '>=0.12 <1' @@ -5106,22 +5146,23 @@ packages: engines: {node: '>=12'} hasBin: true - esbuild@0.20.2: - resolution: {integrity: sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==} - engines: {node: '>=12'} - hasBin: true - esbuild@0.21.5: resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} engines: {node: '>=12'} hasBin: true + esbuild@0.25.1: + resolution: {integrity: sha512-BGO5LtrGC7vxnqucAe/rmvKdJllfGaYWdyABvyMoXQlfYMb2bbRuReWR5tEGE//4LcNJj9XrkovTqNYRFZHAMQ==} + engines: {node: '>=18'} + hasBin: true + escalade@3.1.2: resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} engines: {node: '>=6'} - escape-html@1.0.3: - resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} + escalade@3.2.0: + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} + engines: {node: '>=6'} escape-string-regexp@1.0.5: resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} @@ -5135,11 +5176,6 @@ packages: resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} engines: {node: '>=12'} - escodegen@2.1.0: - resolution: {integrity: sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==} - engines: {node: '>=6.0'} - hasBin: true - eslint-scope@5.1.1: resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} engines: {node: '>=8.0.0'} @@ -5203,10 +5239,6 @@ packages: resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} engines: {node: '>=0.10.0'} - etag@1.8.1: - resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} - engines: {node: '>= 0.6'} - eventemitter3@4.0.7: resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} @@ -5261,12 +5293,8 @@ packages: resolution: {integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - exponential-backoff@3.1.1: - resolution: {integrity: sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==} - - express@4.19.2: - resolution: {integrity: sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==} - engines: {node: '>= 0.10.0'} + exponential-backoff@3.1.2: + resolution: {integrity: sha512-8QxYTVXUkuy7fIIoitQkPwGonB8F3Zj8eEO8Sqg9Zv/bkI7RJAzowee4gr81Hak/dUTpA2Z7VfQgoijjPNlUZA==} extend-shallow@2.0.1: resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} @@ -5282,8 +5310,8 @@ packages: fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} - fast-glob@3.3.2: - resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} + fast-glob@3.3.3: + resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} engines: {node: '>=8.6.0'} fast-json-parse@1.0.3: @@ -5292,11 +5320,11 @@ packages: fast-json-stable-stringify@2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} - fast-uri@2.3.0: - resolution: {integrity: sha512-eel5UKGn369gGEWOqBShmFJWfq/xSJvsgDzgLYC845GneayWvXBf0lJCBn5qTABfewy1ZDPoaR5OZCP+kssfuw==} + fast-uri@3.0.6: + resolution: {integrity: sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==} - fastq@1.17.1: - resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} + fastq@1.19.1: + resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==} fault@2.0.1: resolution: {integrity: sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==} @@ -5320,24 +5348,17 @@ packages: resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} engines: {node: '>=8'} - file-system-cache@2.3.0: - resolution: {integrity: sha512-l4DMNdsIPsVnKrgEXbJwDJsA5mB8rGwHYERMgqQx/xAUtChPJMre1bXBzDEqqVbWv9AIbFezXMxeEkZDSrXUOQ==} - filelist@1.0.4: resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==} - filesize@10.1.2: - resolution: {integrity: sha512-Dx770ai81ohflojxhU+oG+Z2QGvKdYxgEr9OSA8UVrqhwNHjfH9A8f5NKfg83fEH8ZFA5N5llJo5T3PIoZ4CRA==} + filesize@10.1.6: + resolution: {integrity: sha512-sJslQKU2uM33qH5nqewAwVB2QgR6w1aMNsYUp3aN5rMRyXEwJGmZvaWzeJFNTOXWlHQyBFCWrdj3fV/fsTOX8w==} engines: {node: '>= 10.4.0'} fill-range@7.1.1: resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} - finalhandler@1.2.0: - resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==} - engines: {node: '>= 0.8'} - find-cache-dir@3.3.2: resolution: {integrity: sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==} engines: {node: '>=8'} @@ -5353,8 +5374,8 @@ packages: resolution: {integrity: sha512-0rnQWcFwZr7eO0513HahrWafsc3CTFioEB7DRiEYCUM/70QXSY8f3mCST17HXLcPvEhzH/Ty/Bxd72ZZsr/yvw==} engines: {node: '>=0.10.0'} - find-process@1.4.7: - resolution: {integrity: sha512-/U4CYp1214Xrp3u3Fqr9yNynUrr5Le4y0SsJh2lMDDSbpwYSz3M2SMWQC+wqcx79cN8PQtHQIL8KnuY9M66fdg==} + find-process@1.4.10: + resolution: {integrity: sha512-ncYFnWEIwL7PzmrK1yZtaccN8GhethD37RzBHG6iOZoFYB4vSmLLXfeWJjeN5nMvCJMjOtBvBBF8OgxEcikiZg==} hasBin: true find-root@1.1.0: @@ -5396,14 +5417,14 @@ packages: resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} hasBin: true - flatted@3.3.1: - resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} + flatted@3.3.3: + resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==} flexsearch@0.7.43: resolution: {integrity: sha512-c5o/+Um8aqCSOXGcZoqZOm+NqtVwNsvVpWv6lfmSclU954O3wvQKxxK8zj74fPaSJbXpSLTs4PRhh+wnoCXnKg==} - follow-redirects@1.15.6: - resolution: {integrity: sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==} + follow-redirects@1.15.9: + resolution: {integrity: sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==} engines: {node: '>=4.0'} peerDependencies: debug: '*' @@ -5414,6 +5435,10 @@ packages: for-each@0.3.3: resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} + for-each@0.3.5: + resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==} + engines: {node: '>= 0.4'} + for-in@1.0.2: resolution: {integrity: sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==} engines: {node: '>=0.10.0'} @@ -5430,6 +5455,10 @@ packages: resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} engines: {node: '>=14'} + foreground-child@3.3.1: + resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==} + engines: {node: '>=14'} + fork-ts-checker-webpack-plugin@8.0.0: resolution: {integrity: sha512-mX3qW3idpueT2klaQXBzrIM/pHw+T0B/V9KHEvNrqijTq9NFnMZU6oreVxDYcf33P8a5cW+67PjodNHthGnNVg==} engines: {node: '>=12.13.0', yarn: '>=1.0.0'} @@ -5437,22 +5466,14 @@ packages: typescript: '>3.6.0' webpack: ^5.11.0 - form-data@4.0.0: - resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} + form-data@4.0.2: + resolution: {integrity: sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==} engines: {node: '>= 6'} format@0.2.2: resolution: {integrity: sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==} engines: {node: '>=0.4.x'} - forwarded@0.2.0: - resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} - engines: {node: '>= 0.6'} - - fresh@0.5.2: - resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} - engines: {node: '>= 0.6'} - fromentries@1.3.2: resolution: {integrity: sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==} @@ -5478,6 +5499,10 @@ packages: resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==} engines: {node: '>=14.14'} + fs-extra@11.3.0: + resolution: {integrity: sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==} + engines: {node: '>=14.14'} + fs-extra@8.1.0: resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} engines: {node: '>=6 <7 || >=8'} @@ -5536,6 +5561,10 @@ packages: resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} engines: {node: '>= 0.4'} + get-intrinsic@1.3.0: + resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} + engines: {node: '>= 0.4'} + get-nonce@1.0.1: resolution: {integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==} engines: {node: '>=6'} @@ -5553,6 +5582,10 @@ packages: resolution: {integrity: sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==} engines: {node: '>=8'} + get-proto@1.0.1: + resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} + engines: {node: '>= 0.4'} + get-stdin@7.0.0: resolution: {integrity: sha512-zRKcywvrXlXsA0v0i9Io4KDRaAw7+a1ZpjRwl9Wox8PFlVCCHra7E9c4kqXCoCM9nR5tBkaTTZRBoCm60bFqTQ==} engines: {node: '>=8'} @@ -5608,12 +5641,6 @@ packages: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} - glob-promise@4.2.2: - resolution: {integrity: sha512-xcUzJ8NWN5bktoTIX7eOclO1Npxd/dyVqUJxlLIDasT4C7KZyqlPIwkdJ0Ypiy3p2ZKahTjK4M9uC3sNSfNMzw==} - engines: {node: '>=12'} - peerDependencies: - glob: ^7.1.6 - glob-to-regexp@0.4.1: resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} @@ -5622,6 +5649,10 @@ packages: engines: {node: '>=16 || 14 >=14.18'} hasBin: true + glob@10.4.5: + resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} + hasBin: true + glob@7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} deprecated: Glob versions prior to v9 are no longer supported @@ -5679,6 +5710,10 @@ packages: gopd@1.0.1: resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + gopd@1.2.0: + resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} + engines: {node: '>= 0.4'} + graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} @@ -5728,6 +5763,10 @@ packages: resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} engines: {node: '>= 0.4'} + has-symbols@1.1.0: + resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} + engines: {node: '>= 0.4'} + has-tostringtag@1.0.2: resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} engines: {node: '>= 0.4'} @@ -5755,9 +5794,6 @@ packages: hast-util-from-parse5@8.0.1: resolution: {integrity: sha512-Er/Iixbc7IEa7r/XLtuG52zoqn/b3Xng/w6aZQ0xGVxzhw5xUFxcRqdPzP6yFi/4HBYRaifaI5fQ1RH8n0ZeOQ==} - hast-util-heading-rank@3.0.0: - resolution: {integrity: sha512-EJKb8oMUXVHcWZTDepnr+WNbfnXKFNf9duMesmr4S8SXTJBJ9M4Yok08pu9vxdJwdlGRhVumk9mEhkEvKGifwA==} - hast-util-is-element@3.0.0: resolution: {integrity: sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==} @@ -5816,8 +5852,8 @@ packages: resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==} engines: {node: '>=10'} - hosted-git-info@6.1.1: - resolution: {integrity: sha512-r0EI+HBMcXadMrugk0GCQ+6BQV39PiWAZVfq7oIckeGiN7sjRGyQxPdft3nQekFTCQbYxLBH+/axZMeH8UX6+w==} + hosted-git-info@6.1.3: + resolution: {integrity: sha512-HVJyzUrLIL1c0QmviVh5E8VGyUS7xCFPS6yydaVd1UegW+ibV/CohqTH9MkOLDp5o+rb82DMo77PTuc9F/8GKw==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} hosted-git-info@7.0.2: @@ -5843,18 +5879,14 @@ packages: engines: {node: '>=12'} hasBin: true - html-tags@3.3.1: - resolution: {integrity: sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==} - engines: {node: '>=8'} - html-url-attributes@3.0.0: resolution: {integrity: sha512-/sXbVCWayk6GDVg3ctOX6nxaVj7So40FcFAnWlWGNAB1LpYKcV5Cd10APjPjW80O7zYW2MsjBV4zZ7IZO5fVow==} html-void-elements@3.0.0: resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==} - html-webpack-plugin@5.6.0: - resolution: {integrity: sha512-iwaY4wzbe48AfKLZ/Cc8k0L+FKG6oSNRaZ8x5A/T/IVDGyXcbHncM9TdDa93wn0FsSm82FhTKW7f3vS61thXAw==} + html-webpack-plugin@5.6.3: + resolution: {integrity: sha512-QSf1yjtSAsmf7rYBV7XX86uua4W/vkhIt0xNXKbsi2foEeW7vjJQz4bhnpL3xH+l1ryl1680uNv968Z+X6jSYg==} engines: {node: '>=10.13.0'} peerDependencies: '@rspack/core': 0.x || 1.x @@ -5874,10 +5906,6 @@ packages: http-cache-semantics@4.1.1: resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} - http-errors@2.0.0: - resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} - engines: {node: '>= 0.8'} - http-proxy-agent@5.0.0: resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==} engines: {node: '>= 6'} @@ -5899,8 +5927,8 @@ packages: resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} engines: {node: '>= 6'} - https-proxy-agent@7.0.4: - resolution: {integrity: sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==} + https-proxy-agent@7.0.6: + resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} engines: {node: '>= 14'} human-signals@2.1.0: @@ -5948,12 +5976,12 @@ packages: resolution: {integrity: sha512-VuuG0wCnjhnylG1ABXT3dAuIpTNDs/G8jlpmwXY03fXoXy/8ZK8/T+hMzt8L4WnrLCJgdybqgPagnF/f97cg3A==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - ignore@5.3.1: - resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} + ignore@5.3.2: + resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} engines: {node: '>= 4'} - import-fresh@3.3.0: - resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} + import-fresh@3.3.1: + resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} engines: {node: '>=6'} import-in-the-middle@1.11.2: @@ -5964,6 +5992,11 @@ packages: engines: {node: '>=8'} hasBin: true + import-local@3.2.0: + resolution: {integrity: sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==} + engines: {node: '>=8'} + hasBin: true + import-meta-resolve@4.1.0: resolution: {integrity: sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw==} @@ -5993,6 +6026,10 @@ packages: resolution: {integrity: sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + ini@4.1.3: + resolution: {integrity: sha512-X7rqawQBvfdjS10YU1y1YVreA3SsLrW9dX2CewP2EbBJM4ypVNLDkO5y04gejPwKIY9lR+7r9gn3rFPt/kmWFg==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + init-package-json@5.0.0: resolution: {integrity: sha512-kBhlSheBfYmq3e0L1ii+VKe3zBTLL5lDCDWR+f9dLmEGSB3MqLlMlsolubSsyI88Bg6EA+BIMlomAnQ1SwgQBw==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -6039,14 +6076,6 @@ packages: resolution: {integrity: sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==} engines: {node: '>= 12'} - ipaddr.js@1.9.1: - resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} - engines: {node: '>= 0.10'} - - is-absolute-url@4.0.1: - resolution: {integrity: sha512-/51/TKE88Lmm7Gc4/8btclNXWS+g50wXhYJq8HWIBAGUBnoAdRu1aXeh364t/O7wXDAcTJDP8PNuNKWUDWie+A==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - is-absolute@1.0.0: resolution: {integrity: sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==} engines: {node: '>=0.10.0'} @@ -6061,6 +6090,10 @@ packages: resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} engines: {node: '>= 0.4'} + is-arguments@1.2.0: + resolution: {integrity: sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA==} + engines: {node: '>= 0.4'} + is-array-buffer@3.0.4: resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==} engines: {node: '>= 0.4'} @@ -6093,6 +6126,10 @@ packages: is-core-module@2.13.1: resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} + is-core-module@2.16.1: + resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} + engines: {node: '>= 0.4'} + is-date-object@1.0.5: resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} engines: {node: '>= 0.4'} @@ -6129,8 +6166,8 @@ packages: resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==} engines: {node: '>=6'} - is-generator-function@1.0.10: - resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} + is-generator-function@1.1.0: + resolution: {integrity: sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==} engines: {node: '>= 0.4'} is-glob@4.0.3: @@ -6209,6 +6246,10 @@ packages: resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} engines: {node: '>= 0.4'} + is-regex@1.2.1: + resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==} + engines: {node: '>= 0.4'} + is-relative@1.0.0: resolution: {integrity: sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==} engines: {node: '>=0.10.0'} @@ -6221,8 +6262,8 @@ packages: resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==} engines: {node: '>= 0.4'} - is-ssh@1.4.0: - resolution: {integrity: sha512-x7+VxdxOdlV3CYpjvRLBv5Lo9OJerlYanjwFrPR9fuGPjCiNiCzFgAWpiLAohSbsnH4ZAys3SBh+hq5rJosxUQ==} + is-ssh@1.4.1: + resolution: {integrity: sha512-JNeu1wQsHjyHgn9NcWTaXq6zWSR6hqE0++zhfZlkFBbScNkyvxCdeV8sRkSBaeLKxmbpR21brail63ACNxJ0Tg==} is-stream@1.1.0: resolution: {integrity: sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==} @@ -6252,8 +6293,8 @@ packages: resolution: {integrity: sha512-xFuJpne9oFz5qDaodwmmG08e3CawH/2ZV8Qqza1Ko7Sk8POWbkRdwIoAWVhqvq0XeUzANEhKo2n0IXUGBm7A/w==} engines: {node: '>=0.10.0'} - is-typed-array@1.1.13: - resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==} + is-typed-array@1.1.15: + resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==} engines: {node: '>= 0.4'} is-typedarray@1.0.0: @@ -6331,8 +6372,8 @@ packages: resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} engines: {node: '>=8'} - istanbul-lib-instrument@6.0.2: - resolution: {integrity: sha512-1WUsZ9R1lA0HtBSohTkm39WTPlNKSJ5iFk7UwqXkBLoHQT+hfqPsfsTDVuZdKGaBwn7din9bS7SsnoAr943hvw==} + istanbul-lib-instrument@6.0.3: + resolution: {integrity: sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==} engines: {node: '>=10'} istanbul-lib-processinfo@2.0.3: @@ -6355,11 +6396,17 @@ packages: resolution: {integrity: sha512-htOzIMPbpLid/Gq9/zaz9SfExABxqRe1sSCdxntlO/aMD6u0issZQiY25n2GKQUtJ02j7z5sfptlAOMpWWOmvw==} engines: {node: '>=14'} - jake@10.9.1: - resolution: {integrity: sha512-61btcOHNnLnsOdtLgA5efqQWjnSi/vow5HbI7HMdKKWqvrKR1bLK3BPlJn9gcSaP2ewuamUSMB5XEy76KUIS2w==} + jackspeak@3.4.3: + resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} + + jake@10.9.2: + resolution: {integrity: sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==} engines: {node: '>=10'} hasBin: true + jest-canvas-mock@2.5.2: + resolution: {integrity: sha512-vgnpPupjOL6+L5oJXzxTxFrlGEIbHdZqFU+LFNdtLxZ3lRDCl17FlTMM7IatoRQkrcyOTMlDinjUguqmQ6bR2A==} + jest-changed-files@29.7.0: resolution: {integrity: sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -6519,12 +6566,12 @@ packages: node-notifier: optional: true - jiti@1.21.0: - resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==} + jiti@2.4.2: + resolution: {integrity: sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==} hasBin: true - joi@17.13.1: - resolution: {integrity: sha512-vaBlIKCyo4FCUtCm7Eu4QZd/q02bWcxfUO6YSXAZOWF6gzcLBeba8kwotUdYJjDLW8Cz8RywsSOqiNJZW0mNvg==} + joi@17.13.3: + resolution: {integrity: sha512-otDA4ldcIx+ZXsKHWmp0YizCweVRZG96J10b0FevjfuncLO1oX59THoAmHkNubYJ+9gWsYsp5k8v4ib6oDv1fA==} joycon@3.1.1: resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} @@ -6533,8 +6580,8 @@ packages: js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - js-tokens@9.0.0: - resolution: {integrity: sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ==} + js-tokens@9.0.1: + resolution: {integrity: sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==} js-yaml@3.14.1: resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} @@ -6560,9 +6607,9 @@ packages: canvas: optional: true - jsesc@2.5.2: - resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} - engines: {node: '>=4'} + jsesc@3.1.0: + resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} + engines: {node: '>=6'} hasBin: true json-buffer@3.0.1: @@ -6595,8 +6642,8 @@ packages: jsonc-parser@3.2.0: resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} - jsonc-parser@3.2.1: - resolution: {integrity: sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==} + jsonc-parser@3.3.1: + resolution: {integrity: sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==} jsonfile@4.0.0: resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} @@ -6639,10 +6686,6 @@ packages: layout-base@2.0.1: resolution: {integrity: sha512-dp3s92+uNI1hWIpPGH3jK2kxE2lMjdXdr+DH8ynZHpd6PUlH6x6cbuXnoMmiNumznqaNO31xu9e79F0uuZ0JFg==} - lazy-universal-dotenv@4.0.0: - resolution: {integrity: sha512-aXpZJRnTkpK6gQ/z4nk+ZBLd/Qdp118cvPruLSIQzQNRhKwEcdXCOzXuF55VDqIiuAaY3UGZ10DJtvZzDcvsxg==} - engines: {node: '>=14.0.0'} - lerna@8.1.4: resolution: {integrity: sha512-vmzTvNKSY8U1sf8OLKiFWUCGpOXasHlwMj15y2xmaQfIaUsvpsdyvM8AghBm1NB/P+duyWG6vfmyotQlAf+gVg==} engines: {node: '>=18.0.0'} @@ -6790,15 +6833,15 @@ packages: resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} engines: {node: '>=10'} - lilconfig@3.1.1: - resolution: {integrity: sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==} + lilconfig@3.1.3: + resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==} engines: {node: '>=14'} lines-and-columns@1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} - lines-and-columns@2.0.4: - resolution: {integrity: sha512-wM1+Z03eypVAVUCE7QdSqpVIvelbOakn1M0bPDoA4SGWPx3sNDVUiMo3L6To6WWGClB7VyXnhQ4Sn7gxiJbE6A==} + lines-and-columns@2.0.3: + resolution: {integrity: sha512-cNOjgCnLB+FnvWWtyRTzmB3POJ+cXxTA81LoW7u8JdmhfXzriropYwpjShnz1QLLWsQwY7nIxoDmcPTwphDK9w==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} lint-staged@14.0.1: @@ -6839,6 +6882,10 @@ packages: resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==} engines: {node: '>=14'} + local-pkg@0.5.1: + resolution: {integrity: sha512-9rrA30MRRP3gBD3HTGnC6cDFpaE1kVDWxWgqWJUN0RvDNAo+Nz/9GxB+nHOH0ifbVFy0hSA1V6vFDvnx54lTEQ==} + engines: {node: '>=14'} + locate-path@2.0.0: resolution: {integrity: sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==} engines: {node: '>=4'} @@ -6854,6 +6901,9 @@ packages: lodash-es@4.17.21: resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==} + lodash.clonedeep@4.5.0: + resolution: {integrity: sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==} + lodash.flattendeep@4.4.0: resolution: {integrity: sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ==} @@ -6904,6 +6954,10 @@ packages: resolution: {integrity: sha512-5UtUDQ/6edw4ofyljDNcOVJQ4c7OjDro4h3y8e1GQL5iYElYclVHJ3zeWchylvMaKnDbDilC8irOVyexnA/Slw==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + loglevel@1.9.2: + resolution: {integrity: sha512-HgMmCqIJSAKqo68l0rS2AanEWfkxaZ5wNiEFb5ggm08lDs9Xl2KxBlX3PTcaD2chBM1gXAYf491/M2Rv8Jwayg==} + engines: {node: '>= 0.6.0'} + longest-streak@3.1.0: resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} @@ -6918,8 +6972,8 @@ packages: loupe@2.3.7: resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==} - loupe@3.1.2: - resolution: {integrity: sha512-23I4pFZHmAemUnz8WZXbYRSKYj801VDaNv9ETuMh7IrMc7VuVVSo+Z9iLE3ni30+U48iDWfi30d3twAXBYmnCg==} + loupe@3.1.3: + resolution: {integrity: sha512-kkIp7XSkP78ZxJEsSxW3712C6teJVoeHHwgo9zJ380de7IYyJ2ISlxojcH2pC5OFLewESmnRi/+XCDIEEVyoug==} lower-case@2.0.2: resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} @@ -6928,6 +6982,9 @@ packages: resolution: {integrity: sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==} engines: {node: 14 || >=16.14} + lru-cache@10.4.3: + resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} + lru-cache@4.1.5: resolution: {integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==} @@ -6953,6 +7010,9 @@ packages: magic-string@0.30.10: resolution: {integrity: sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==} + magic-string@0.30.17: + resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==} + magic-string@0.30.8: resolution: {integrity: sha512-ISQTe55T2ao7XtlAStud6qwYPZjE4GK1S/BeVPus4jrq6JuOnQ00YKQC581RWhR122W7msZV263KzVeLoqidyQ==} engines: {node: '>=12'} @@ -7006,12 +7066,6 @@ packages: markdown-table@3.0.3: resolution: {integrity: sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==} - markdown-to-jsx@7.5.0: - resolution: {integrity: sha512-RrBNcMHiFPcz/iqIj0n3wclzHXjwS7mzjBNWecKKVhNTIxQepIix6Il/wZCn2Cg5Y1ow2Qi84+eJrryFRWBEWw==} - engines: {node: '>= 10'} - peerDependencies: - react: '>= 0.14.0' - marked@13.0.3: resolution: {integrity: sha512-rqRix3/TWzE9rIoFGIn8JmsVfhiuC8VIQ8IdX5TfzmeBucdY05/0UlzKaw0eVtpcN/OdVFpBk7CjKGo9iHJ/zA==} engines: {node: '>= 18'} @@ -7020,6 +7074,10 @@ packages: match-sorter@6.3.4: resolution: {integrity: sha512-jfZW7cWS5y/1xswZo8VBOdudUiSd9nifYRWphc9M5D/ee4w4AoXLgBEdRbgVaxbMuagBPeUC5y2Hi8DO6o9aDg==} + math-intrinsics@1.1.0: + resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} + engines: {node: '>= 0.4'} + mathjax-full@3.2.2: resolution: {integrity: sha512-+LfG9Fik+OuI8SLwsiR02IVdjcnRCy5MufYLi0C3TdMT56L/pjB0alMVGgoWJF8pN9Rc7FESycZB9BMNWIid5w==} deprecated: Version 4 replaces this package with the scoped package @mathjax/src @@ -7078,10 +7136,6 @@ packages: mdast-util-to-string@4.0.0: resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} - media-typer@0.3.0: - resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} - engines: {node: '>= 0.6'} - memfs@3.5.3: resolution: {integrity: sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==} engines: {node: '>= 4.0.0'} @@ -7100,9 +7154,6 @@ packages: resolution: {integrity: sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==} engines: {node: '>=10'} - merge-descriptors@1.0.1: - resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==} - merge-stream@2.0.0: resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} @@ -7116,10 +7167,6 @@ packages: mermaid@11.3.0: resolution: {integrity: sha512-fFmf2gRXLtlGzug4wpIGN+rQdZ30M8IZEB1D3eZkXNqC7puhqeURBcD/9tbwXsqBO+A6Nzzo3MSSepmnw5xSeg==} - methods@1.1.2: - resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} - engines: {node: '>= 0.6'} - mhchemparser@4.2.1: resolution: {integrity: sha512-kYmyrCirqJf3zZ9t/0wGgRZ4/ZJw//VwaRVGA75C4nhE60vtnIzhl9J9ndkX/h6hxSN7pjg/cE0VxbnNM+bnDQ==} @@ -7242,6 +7289,10 @@ packages: resolution: {integrity: sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==} engines: {node: '>=8.6'} + micromatch@4.0.8: + resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} + engines: {node: '>=8.6'} + mime-db@1.52.0: resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} engines: {node: '>= 0.6'} @@ -7289,6 +7340,10 @@ packages: resolution: {integrity: sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==} engines: {node: '>=16 || 14 >=14.17'} + minimatch@9.0.5: + resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} + engines: {node: '>=16 || 14 >=14.17'} + minimist-options@4.1.0: resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==} engines: {node: '>= 6'} @@ -7315,8 +7370,8 @@ packages: resolution: {integrity: sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==} engines: {node: '>= 8'} - minipass-json-stream@1.0.1: - resolution: {integrity: sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==} + minipass-json-stream@1.0.2: + resolution: {integrity: sha512-myxeeTm57lYs8pH2nxPzmEEg8DGIgW+9mv6D4JZD2pa81I/OBjeU7PtICXV6c9eRGTA5JMDsuIPUZRCyBMYNhg==} minipass-pipeline@1.2.4: resolution: {integrity: sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==} @@ -7349,10 +7404,6 @@ packages: mj-context-menu@0.6.1: resolution: {integrity: sha512-7NO5s6n10TIV96d4g2uDpG7ZDpIhMh0QNfGdJw/W47JswFcosz457wqz/b5sAKvl12sxINGFCn80NZHKwxQEXA==} - mkdirp@0.5.6: - resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} - hasBin: true - mkdirp@1.0.4: resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} engines: {node: '>=10'} @@ -7364,6 +7415,9 @@ packages: mlly@1.7.2: resolution: {integrity: sha512-tN3dvVHYVz4DhSXinXIk7u9syPYaJvio118uomkovAtWBT+RdbP6Lfh/5Lvo519YMmwBafwlh20IPTXIStscpA==} + mlly@1.7.4: + resolution: {integrity: sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw==} + modify-values@1.0.1: resolution: {integrity: sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==} engines: {node: '>=0.10.0'} @@ -7371,8 +7425,8 @@ packages: module-details-from-path@1.0.3: resolution: {integrity: sha512-ySViT69/76t8VhE1xXHK6Ch4NcDd26gx0MzKXLO+F7NOtnqH68d9zF94nT8ZWSxXh8ELOERsnJO/sWt1xZYw5A==} - ms@2.0.0: - resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} + moo-color@1.0.3: + resolution: {integrity: sha512-i/+ZKXMDf6aqYtBhuOcej71YSlbjT3wCO/4H1j8rPvxDJEifdwgg5MaFyu6iYAT8GBZJg2z0dkgK4YMzvURALQ==} ms@2.1.2: resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} @@ -7397,6 +7451,11 @@ packages: mz@2.7.0: resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} + nanoid@3.3.11: + resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + nanoid@3.3.7: resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} @@ -7409,6 +7468,10 @@ packages: resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} engines: {node: '>= 0.6'} + negotiator@0.6.4: + resolution: {integrity: sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==} + engines: {node: '>= 0.6'} + neo-async@2.6.2: resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} @@ -7485,8 +7548,8 @@ packages: encoding: optional: true - node-gyp@10.1.0: - resolution: {integrity: sha512-B4J5M1cABxPc5PwfjhbV5hoy2DP9p8lFXASnEN6hugXOa61416tnTZ29x9sSwAd0o99XNIcpvDDy1swAExsVKA==} + node-gyp@10.3.1: + resolution: {integrity: sha512-Pp3nFHBThHzVtNY7U6JfPjvT/DTE8+o/4xKsLQtBoU+j2HLsGlhcfzflAoUreaJbNmYnX+LlLi0qjV8kpyO6xQ==} engines: {node: ^16.14.0 || >=18.0.0} hasBin: true @@ -7511,6 +7574,9 @@ packages: node-releases@2.0.14: resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} + node-releases@2.0.19: + resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==} + nopt@7.2.1: resolution: {integrity: sha512-taM24ViiimT/XntxbPyJQzCG+p4EKOpgD3mxFwW38mGjVUrfERQOeY4EDHjdnptttfHuHQXFx+lTP08Q+mLa/w==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -7557,8 +7623,8 @@ packages: resolution: {integrity: sha512-uFyyCEmgBfZTtrKk/5xDfHp6+MdrqGotX/VoOyEEl3mBwiEE5FlBaePanazJSVMPT7vKepcjYBY2ztg9A3yPIA==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - npm-package-arg@11.0.2: - resolution: {integrity: sha512-IGN0IAwmhDJwy13Wc8k+4PEbTPhpJnMtfR53ZbOyjkvmEcLS4nCwp6mvMWjS5sUjeiW3mpx6cHmuhKEu9XmcQw==} + npm-package-arg@11.0.3: + resolution: {integrity: sha512-sHGJy8sOC1YraBywpzQlIKBE4pBbGbiF95U6Auspzyem956E0+FtDtsx1ZxlOJkQCZ1AFXAY/yuvtFYrOxF+Bw==} engines: {node: ^16.14.0 || >=18.0.0} npm-package-arg@8.1.1: @@ -7574,8 +7640,8 @@ packages: resolution: {integrity: sha512-shYrPFIS/JLP4oQmAwDyk5HcyysKW8/JLTEA32S0Z5TzvpaeeX2yMFfoK1fjEBnCBvVyIB/Jj/GBFdm0wsgzbA==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - npm-pick-manifest@9.0.1: - resolution: {integrity: sha512-Udm1f0l2nXb3wxDpKjfohwgdFUSV50UVwzEIpDXVsbDMXVIEF81a/i0UhuQbhrPMMmdiq3+YMFLFIRVLs3hxQw==} + npm-pick-manifest@9.1.0: + resolution: {integrity: sha512-nkc+3pIIhqHVQr085X9d2JzPzLyjzQS96zbruppqC9aZRm/x8xx6xhI98gHtsfELP2bE+loHq8ZaHFHhe+NauA==} engines: {node: ^16.14.0 || >=18.0.0} npm-registry-fetch@14.0.5: @@ -7619,11 +7685,11 @@ packages: resolution: {integrity: sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==} engines: {node: '>=0.10.0'} - nwsapi@2.2.10: - resolution: {integrity: sha512-QK0sRs7MKv0tKe1+5uZIQk/C8XGza4DAnztJG8iD+TpJIORARrCxczA738awHrZoHeTjSSoHqao2teO0dC/gFQ==} + nwsapi@2.2.19: + resolution: {integrity: sha512-94bcyI3RsqiZufXjkr3ltkI86iEl+I7uiHVDtcq9wJUTwYQJ5odHDeSzkkrRzi80jJ8MaeZgqKjH1bAWAFw9bA==} - nx@19.3.2: - resolution: {integrity: sha512-eKWs+ahkTKnq9EeWJCE4u8JLeq1cOHnq5DKoiisy2nwUg4KGy1odReegxUMLeEgNBcMI40EUtEJFiTMJSXZQeg==} + nx@19.8.14: + resolution: {integrity: sha512-yprBOWV16eQntz5h5SShYHMVeN50fUb6yHfzsqNiFneCJeyVjyJ585m+2TuVbE11vT1amU0xCjHcSGfJBBnm8g==} hasBin: true peerDependencies: '@swc-node/register': ^1.8.0 @@ -7646,6 +7712,10 @@ packages: object-inspect@1.13.1: resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} + object-inspect@1.13.4: + resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==} + engines: {node: '>= 0.4'} + object-is@1.1.6: resolution: {integrity: sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==} engines: {node: '>= 0.4'} @@ -7673,10 +7743,6 @@ packages: objectorarray@1.0.5: resolution: {integrity: sha512-eJJDYkhJFFbBBAxeh8xW+weHlkI28n2ZdQV/J/DNfWfSKlGEf2xcfAbZTv3riEXHAhL9SVOTs2pRmXiSTf78xg==} - on-finished@2.4.1: - resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} - engines: {node: '>= 0.8'} - once@1.4.0: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} @@ -7808,6 +7874,9 @@ packages: resolution: {integrity: sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ==} engines: {node: '>=8'} + package-json-from-dist@1.0.1: + resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} + package-manager-detector@0.2.2: resolution: {integrity: sha512-VgXbyrSNsml4eHWIvxxG/nTL4wgybMTXCV2Un/+yEc3aDKKU6nQBZjbeP3Pl3qm9Qg92X/1ng4ffvCeD/zwHgg==} @@ -7848,8 +7917,8 @@ packages: resolution: {integrity: sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==} engines: {node: '>=0.10.0'} - parse-path@7.0.0: - resolution: {integrity: sha512-Euf9GG8WT9CdqwuWJGdf3RkUcTBArppHABkO7Lm8IzRQp0e2r/kkFnmhu4TSK30Wcu5rVAZLmfPKSBBi9tWFog==} + parse-path@7.0.1: + resolution: {integrity: sha512-6ReLMptznuuOEzLoGEa+I1oWRSj2Zna5jLWC+l6zlfAI4dbbSaIES29ThzuPkbhNahT65dWzfoZEO6cfJw2Ksg==} parse-url@8.1.0: resolution: {integrity: sha512-xDvOoLU5XRrcOZvnI6b8zA6n9O9ejNk/GExuz1yBuWUGn9KA97GI6HTs6u02wKara1CeVmZhH+0TZFdWScR89w==} @@ -7857,9 +7926,8 @@ packages: parse5@7.1.2: resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==} - parseurl@1.3.3: - resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} - engines: {node: '>= 0.8'} + parse5@7.2.1: + resolution: {integrity: sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ==} pascal-case@3.1.2: resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==} @@ -7912,9 +7980,6 @@ packages: resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} engines: {node: '>=16 || 14 >=14.18'} - path-to-regexp@0.1.7: - resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==} - path-type@3.0.0: resolution: {integrity: sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==} engines: {node: '>=4'} @@ -7926,6 +7991,9 @@ packages: pathe@1.1.2: resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} + pathe@2.0.3: + resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} + pathval@1.1.1: resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} @@ -7992,24 +8060,23 @@ packages: resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} engines: {node: '>=8'} - pkg-dir@5.0.0: - resolution: {integrity: sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==} - engines: {node: '>=10'} - pkg-types@1.1.1: resolution: {integrity: sha512-ko14TjmDuQJ14zsotODv7dBlwxKhUKQEhuhmbqo1uCi9BB0Z2alo/wAXg6q1dTR5TyuqYyWhjtfe/Tsh+X28jQ==} pkg-types@1.2.1: resolution: {integrity: sha512-sQoqa8alT3nHjGuTjuKgOnvjo4cljkufdtLMnO2LBP/wRwuDlo1tkaEdMxCRhyGRPacv/ztlZgDPm2b7FAmEvw==} - playwright-core@1.44.1: - resolution: {integrity: sha512-wh0JWtYTrhv1+OSsLPgFzGzt67Y7BE/ZS3jEqgGBlp2ppp1ZDj8c+9IARNW4dwf1poq5MgHreEM2KV/GuR4cFA==} - engines: {node: '>=16'} + pkg-types@1.3.1: + resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==} + + playwright-core@1.51.1: + resolution: {integrity: sha512-/crRMj8+j/Nq5s8QcvegseuyeZPxpQCZb6HNk3Sos3BlZyAknRjoyJPFWkpNn8v0+P3WiwqFF8P+zQo4eqiNuw==} + engines: {node: '>=18'} hasBin: true - playwright@1.44.1: - resolution: {integrity: sha512-qr/0UJ5CFAtloI3avF95Y0L1xQo6r3LQArLIg/z/PoGJ6xa+EwzrwO5lpNr/09STxdHuUoP2mvuELJS+hLdtgg==} - engines: {node: '>=16'} + playwright@1.51.1: + resolution: {integrity: sha512-kkx+MB2KQRkyxjYPc3a0wLZZoDczmppyGJIvQ43l+aZihkaVvmu/21kiyaHeHjiFxjxNNFnUncKmcGIyOojsaw==} + engines: {node: '>=18'} hasBin: true plop@3.1.2: @@ -8027,9 +8094,9 @@ packages: resolution: {integrity: sha512-OBatVyC/N7SCW/FaDHrSd+vn0o5cS855TOmYi4OkdWUMSJCET/xip//ch8xGUvtr3i44X9LVyWwQlRMTN3pwSA==} engines: {node: '>=10'} - portfinder@1.0.32: - resolution: {integrity: sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg==} - engines: {node: '>= 0.12.0'} + portfinder@1.0.35: + resolution: {integrity: sha512-73JaFg4NwYNAufDtS5FsFu/PdM49ahJrO1i44aCRsDWju1z5wuGDaqyFUQWR6aJoK2JPDWlaYYAGFNIGTSUHSw==} + engines: {node: '>= 10.12'} possible-typed-array-names@1.0.0: resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} @@ -8053,14 +8120,14 @@ packages: peerDependencies: postcss: ^8.1.0 - postcss-modules-local-by-default@4.0.5: - resolution: {integrity: sha512-6MieY7sIfTK0hYfafw1OMEG+2bg8Q1ocHCpoWLqOKj3JXlKu4G7btkmM/B7lFubYkYWmRSPLZi5chid63ZaZYw==} + postcss-modules-local-by-default@4.2.0: + resolution: {integrity: sha512-5kcJm/zk+GJDSfw+V/42fJ5fhjL5YbFDl8nVdXkJPLLW+Vf9mTD5Xe0wqIaDnLuL2U6cDNpTr+UQ+v2HWIBhzw==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 - postcss-modules-scope@3.2.0: - resolution: {integrity: sha512-oq+g1ssrsZOsx9M96c5w8laRmvEu9C3adDSjI8oTcbfkrTE8hx/zfyobUoWIxaKPO8bt6S62kxpw5GqypEw1QQ==} + postcss-modules-scope@3.2.1: + resolution: {integrity: sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 @@ -8071,8 +8138,8 @@ packages: peerDependencies: postcss: ^8.1.0 - postcss-selector-parser@6.1.0: - resolution: {integrity: sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ==} + postcss-selector-parser@7.1.0: + resolution: {integrity: sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==} engines: {node: '>=4'} postcss-value-parser@4.2.0: @@ -8086,8 +8153,8 @@ packages: resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==} engines: {node: ^10 || ^12 || >=14} - postcss@8.4.47: - resolution: {integrity: sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==} + postcss@8.5.3: + resolution: {integrity: sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==} engines: {node: ^10 || ^12 || >=14} postgres-array@2.0.0: @@ -8111,6 +8178,11 @@ packages: engines: {node: '>=14'} hasBin: true + prettier@3.5.3: + resolution: {integrity: sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==} + engines: {node: '>=14'} + hasBin: true + pretty-error@4.0.0: resolution: {integrity: sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==} @@ -8122,10 +8194,6 @@ packages: resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - pretty-hrtime@1.0.3: - resolution: {integrity: sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==} - engines: {node: '>= 0.8'} - proc-log@3.0.0: resolution: {integrity: sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -8137,8 +8205,8 @@ packages: process-nextick-args@2.0.1: resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} - process-on-spawn@1.0.0: - resolution: {integrity: sha512-1WsPDsUSMmZH5LeMLegqkPDrsGgsWwk1Exipy2hvB0o/F0ASzbpIctSCcZIK1ykJvtTJULEH+20WOFjMvGnCTg==} + process-on-spawn@1.1.0: + resolution: {integrity: sha512-JOnOPQ/8TZgjs1JIH/m9ni7FfimjNa/PRx7y/Wb5qdItsnhO0jE4AT7fC0HjC28DUQWDr50dwSYZLdRMlqDq3Q==} engines: {node: '>=8'} process@0.11.10: @@ -8169,18 +8237,11 @@ packages: resolution: {integrity: sha512-2FPputGL+mP3jJ3UZg/Dl9YOkovB7DX0oOr+ck5QbZ5MtORtds8k/BZdn+02peDLI8/YWbmzx34k5fA+fHvCVQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - prop-types@15.8.1: - resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} - property-information@6.5.0: resolution: {integrity: sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==} - protocols@2.0.1: - resolution: {integrity: sha512-/XJ368cyBJ7fzLMwLKv1e4vLxOju2MNAIokcr7meSaNcVbWz/CPcW22cP04mwxOErdA5mwjA8Q6w/cdAQxVn7Q==} - - proxy-addr@2.0.7: - resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} - engines: {node: '>= 0.10'} + protocols@2.0.2: + resolution: {integrity: sha512-hHVTzba3wboROl0/aWRRG9dMytgH6ow//STBZh43l/wQgmMhYhOFi0EHWAPtoCz9IAUymsyP0TSBHkhgMEGNnQ==} proxy-from-env@1.1.0: resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} @@ -8188,8 +8249,8 @@ packages: pseudomap@1.0.2: resolution: {integrity: sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==} - psl@1.9.0: - resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} + psl@1.15.0: + resolution: {integrity: sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==} punycode@1.4.1: resolution: {integrity: sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==} @@ -8209,12 +8270,8 @@ packages: (For a CapTP with native promises, see @endo/eventual-send and @endo/captp) - qs@6.11.0: - resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==} - engines: {node: '>=0.6'} - - qs@6.12.1: - resolution: {integrity: sha512-zWmv4RSuB9r2mYQw3zxQuHWeU+42aKi1wWig/j4ele4ygELZ7PEO6MM7rim9oAQH2A5MWfsAVf/jPvTPgCbvUQ==} + qs@6.14.0: + resolution: {integrity: sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==} engines: {node: '>=0.6'} querystringify@2.2.0: @@ -8227,9 +8284,6 @@ packages: resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==} engines: {node: '>=8'} - ramda@0.29.0: - resolution: {integrity: sha512-BBea6L67bYLtdbOqfp8f58fPMqEwx0doL+pAi8TZyp2YWz8R9G8z9x75CZI8W+ftqhFHCpEX2cRnUUXK130iKA==} - randombytes@2.1.0: resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} @@ -8237,33 +8291,23 @@ packages: resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} engines: {node: '>= 0.6'} - raw-body@2.5.2: - resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==} - engines: {node: '>= 0.8'} - raw.macro@0.4.2: resolution: {integrity: sha512-Z+zKtCweyJ3lGYdUNq/BQwfzqQE2wrXjz0RNEes5nDniPpjvBw64sKYFXStJSfmZUmiBxv4DsN1lto982UAhFQ==} engines: {node: '>=8.9.0'} - react-colorful@5.6.1: - resolution: {integrity: sha512-1exovf0uGTGyq5mXQT0zgQ80uvj2PCwvF8zY1RN9/vbJVSjSo3fsB/4L3ObbF7u70NduSiK4xu4Y6q1MHoUGEw==} - peerDependencies: - react: '>=16.8.0' - react-dom: '>=16.8.0' - - react-confetti@6.1.0: - resolution: {integrity: sha512-7Ypx4vz0+g8ECVxr88W9zhcQpbeujJAVqL14ZnXJ3I23mOI9/oBVTQ3dkJhUmB0D6XOtCZEM6N0Gm9PMngkORw==} - engines: {node: '>=10.18'} + react-confetti@6.4.0: + resolution: {integrity: sha512-5MdGUcqxrTU26I2EU7ltkWPwxvucQTuqMm8dUz72z2YMqTD6s9vMcDUysk7n9jnC+lXuCPeJJ7Knf98VEYE9Rg==} + engines: {node: '>=16'} peerDependencies: - react: ^16.3.0 || ^17.0.1 || ^18.0.0 + react: ^16.3.0 || ^17.0.1 || ^18.0.0 || ^19.0.0 react-docgen-typescript@2.2.2: resolution: {integrity: sha512-tvg2ZtOpOi6QDwsb3GZhOjDkkX0h8Z2gipvTg6OVMUyoYoURhEiRNePT8NZItTVCDh39JJHnLdfCOkzoLbFnTg==} peerDependencies: typescript: '>= 4.3.x' - react-docgen@7.0.3: - resolution: {integrity: sha512-i8aF1nyKInZnANZ4uZrH49qn1paRgBZ7wZiCNBMnenlPzEv0mRl+ShpTVEI6wZNl8sSc79xZkivtgLKQArcanQ==} + react-docgen@7.1.1: + resolution: {integrity: sha512-hlSJDQ2synMPKFZOsKo9Hi8WWZTC7POR8EmWvTSjow+VDgKzkmjQvFm2fk0tmRw+f0vTOIYKlarR0iL4996pdg==} engines: {node: '>=16.14.0'} react-dom@18.3.1: @@ -8271,12 +8315,6 @@ packages: peerDependencies: react: ^18.3.1 - react-element-to-jsx-string@15.0.0: - resolution: {integrity: sha512-UDg4lXB6BzlobN60P8fHWVPX3Kyw8ORrTeBtClmIlGdkOOE+GYQSFvmEU5iLLpwp/6v42DINwNcwOhOLfQ//FQ==} - peerDependencies: - react: ^0.14.8 || ^15.0.1 || ^16.0.0 || ^17.0.1 || ^18.0.0 - react-dom: ^0.14.8 || ^15.0.1 || ^16.0.0 || ^17.0.1 || ^18.0.0 - react-hook-form@7.48.2: resolution: {integrity: sha512-H0T2InFQb1hX7qKtDIZmvpU1Xfn/bdahWBN1fH19gSe4bBEqTfmlr7H3XWTaVtiK4/tpPaI1F3355GPMZYge+A==} engines: {node: '>=12.22.0'} @@ -8296,9 +8334,6 @@ packages: react-is@17.0.2: resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} - react-is@18.1.0: - resolution: {integrity: sha512-Fl7FuabXsJnV5Q1qIOQwx/sagGF18kogb4gpfcG4gjLBWO0WDiiz1ko/ExayuxE7InyQkBLkxRFG5oxY6Uu3Kg==} - react-is@18.3.1: resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} @@ -8422,8 +8457,8 @@ packages: readline2@1.0.1: resolution: {integrity: sha512-8/td4MmwUB6PkZUbV25uKz7dfrmjYWxsW8DVfibWdlHRk/l/DfHKn4pU+dfcoGLFgWOdyGCzINRQD7jn+Bv+/g==} - recast@0.23.9: - resolution: {integrity: sha512-Hx/BGIbwj+Des3+xy5uAtAbdCyqK9y9wbBcDFDYanLS9JnMqf7OeF87HQwUimE87OEc72mr6tkKUKMBBL+hF9Q==} + recast@0.23.11: + resolution: {integrity: sha512-YTUo+Flmw4ZXiWfQKGcwwc11KnoRAYgzAE2E7mXKCjSviTKShtxBsN6YUUBB2gtaBzKzeKunxhUwNHQuRryhWA==} engines: {node: '>= 4'} rechoir@0.8.0: @@ -8462,9 +8497,6 @@ packages: resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==} engines: {node: '>= 0.4'} - rehype-external-links@3.0.0: - resolution: {integrity: sha512-yp+e5N9V3C6bwBeAC4n796kc86M4gJCdlVhiMTxIrJG5UHDMh+PJANf9heqORJbt1nrCbDwIlAZKjANIaVBbvw==} - rehype-katex@7.0.0: resolution: {integrity: sha512-h8FPkGE00r2XKU+/acgqwWUlyzve1IiOKwsEkg4pDL3k48PiE0Pt+/uLtVHDVkN1yA4iurZN6UES8ivHVEQV6Q==} @@ -8483,9 +8515,6 @@ packages: rehype-recma@1.0.0: resolution: {integrity: sha512-lqA4rGUf1JmacCNWWZx0Wv1dHqMwxzsDWYMTowuplHF3xH0N/MmrZ/G3BDZnzAkRmxDadujCjaKM2hqYdCBOGw==} - rehype-slug@6.0.0: - resolution: {integrity: sha512-lWyvf/jwu+oS5+hL5eClVd3hNdmwM1kAC0BUvEGD19pajQMIzcNUd/k9GsfQ+FfECvX+JE+e9/btsKH0EjJT6A==} - relateurl@0.2.7: resolution: {integrity: sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==} engines: {node: '>= 0.10'} @@ -8570,10 +8599,15 @@ packages: resolution: {integrity: sha512-zFa12V4OLtT5XUX/Q4VLvTfBf+Ok0SPc1FNGM/z9ctUdiU618qwKpWnd0CHs3+RqROfyEg/DhuHbMWYqcgljEw==} engines: {node: '>=8'} - resolve.exports@2.0.2: - resolution: {integrity: sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==} + resolve.exports@2.0.3: + resolution: {integrity: sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==} engines: {node: '>=10'} + resolve@1.22.10: + resolution: {integrity: sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==} + engines: {node: '>= 0.4'} + hasBin: true + resolve@1.22.8: resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} hasBin: true @@ -8606,12 +8640,12 @@ packages: resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==} engines: {node: '>= 4'} - reusify@1.0.4: - resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + reusify@1.1.0: + resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - rfdc@1.3.1: - resolution: {integrity: sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg==} + rfdc@1.4.1: + resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} rimraf@3.0.2: resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} @@ -8636,8 +8670,8 @@ packages: engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true - rollup@4.24.0: - resolution: {integrity: sha512-DOmrlGSXNk1DM0ljiQA+i+o0rSLhtii1je5wgk60j49d1jHT5YYttBv1iWOnYSTG+fZZESUOSNiAl89SIet+Cg==} + rollup@4.36.0: + resolution: {integrity: sha512-zwATAXNQxUcd40zgtQG0ZafcRK4g004WtEl7kbuhTWPvf07PsfohXl39jVUvPF7jvNAIkKPQ2XrsDlWuxBd++Q==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true @@ -8666,12 +8700,19 @@ packages: rxjs@7.8.1: resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} + rxjs@7.8.2: + resolution: {integrity: sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==} + safe-buffer@5.1.2: resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} safe-buffer@5.2.1: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + safe-regex-test@1.1.0: + resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==} + engines: {node: '>= 0.4'} + safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} @@ -8686,9 +8727,9 @@ packages: resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==} engines: {node: '>= 10.13.0'} - schema-utils@4.2.0: - resolution: {integrity: sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==} - engines: {node: '>= 12.13.0'} + schema-utils@4.3.0: + resolution: {integrity: sha512-Gf9qqc58SpCA/xdziiHz35F4GNIWYWZrEshUc/G/r5BnLph6xpKuLeoJoQuj5WfBIx/eQLf+hmVPYHaxJu7V2g==} + engines: {node: '>= 10.13.0'} scroll-into-view-if-needed@3.1.0: resolution: {integrity: sha512-49oNpRjWRvnU8NyGVmUaYG4jtTkNonFZI86MmGRDqBphEK2EXT9gdEUoQPZhuBM8yWHxCWbobltqYO5M4XrUvQ==} @@ -8716,19 +8757,15 @@ packages: engines: {node: '>=10'} hasBin: true - semver@7.6.2: - resolution: {integrity: sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==} - engines: {node: '>=10'} - hasBin: true - semver@7.6.3: resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} engines: {node: '>=10'} hasBin: true - send@0.18.0: - resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==} - engines: {node: '>= 0.8.0'} + semver@7.7.1: + resolution: {integrity: sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==} + engines: {node: '>=10'} + hasBin: true sentence-case@3.0.4: resolution: {integrity: sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==} @@ -8736,10 +8773,6 @@ packages: serialize-javascript@6.0.2: resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} - serve-static@1.15.0: - resolution: {integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==} - engines: {node: '>= 0.8.0'} - set-blocking@2.0.0: resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} @@ -8751,9 +8784,6 @@ packages: resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} engines: {node: '>= 0.4'} - setprototypeof@1.2.0: - resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} - shallow-clone@3.0.1: resolution: {integrity: sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==} engines: {node: '>=8'} @@ -8781,16 +8811,36 @@ packages: shell-quote@1.8.1: resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==} + shell-quote@1.8.2: + resolution: {integrity: sha512-AzqKpGKjrj7EM6rKVQEPpB288oCfnrEIuyoT9cyF4nmGa7V8Zk6f7RRqYisX8X9m+Q7bd632aZW4ky7EhbQztA==} + engines: {node: '>= 0.4'} + shiki@1.22.0: resolution: {integrity: sha512-/t5LlhNs+UOKQCYBtl5ZsH/Vclz73GIqT2yQsCBygr8L/ppTdmpL4w3kPLoZJbMKVWtoG77Ue1feOjZfDxvMkw==} shimmer@1.2.1: resolution: {integrity: sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw==} + side-channel-list@1.0.0: + resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} + engines: {node: '>= 0.4'} + + side-channel-map@1.0.1: + resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==} + engines: {node: '>= 0.4'} + + side-channel-weakmap@1.0.2: + resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==} + engines: {node: '>= 0.4'} + side-channel@1.0.6: resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} engines: {node: '>= 0.4'} + side-channel@1.1.0: + resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==} + engines: {node: '>= 0.4'} + siginfo@2.0.0: resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} @@ -8816,6 +8866,9 @@ packages: sisteransi@1.0.5: resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} + size-sensor@1.0.2: + resolution: {integrity: sha512-2NCmWxY7A9pYKGXNBfteo4hy14gWu47rg5692peVMst6lQLPKrVjhY+UTEsPI5ceFRJSl3gVgMYaUi/hKuaiKw==} + slash@3.0.0: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} engines: {node: '>=8'} @@ -8843,12 +8896,12 @@ packages: resolution: {integrity: sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==} engines: {node: '>= 10'} - socks-proxy-agent@8.0.3: - resolution: {integrity: sha512-VNegTZKhuGq5vSD6XNKlbqWhyt/40CgoEw8XxD6dhnm8Jq9IEa3nIa4HwnM8XOqU0CdB0BwWVXusqiFXfHB3+A==} + socks-proxy-agent@8.0.5: + resolution: {integrity: sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==} engines: {node: '>= 14'} - socks@2.8.3: - resolution: {integrity: sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==} + socks@2.8.4: + resolution: {integrity: sha512-D3YaD0aRxR3mEcqnidIs7ReYJFVzWdd6fXJYUM8ixcQcJRGTka/b3saV0KflYhyVJXKhb947GndU35SxYNResQ==} engines: {node: '>= 10.0.0', npm: '>= 3.0.0'} sort-keys@2.0.0: @@ -8904,8 +8957,8 @@ packages: spdx-expression-parse@3.0.1: resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} - spdx-license-ids@3.0.18: - resolution: {integrity: sha512-xxRs31BqRYHwiMzudOrpSiHtZ8i/GeionCBDSilhYRj+9gIcI8wCZTlXZKu9vZIVqViP3dcp9qE5G6AlIaD+TQ==} + spdx-license-ids@3.0.21: + resolution: {integrity: sha512-Bvg/8F5XephndSK3JffaRqdT+gyhfqIPwDHpX80tJrF8QQRYMo8sNMeaZ2Dp5+jhwKnUmIOyFFQfHRkjJm5nXg==} speech-rule-engine@4.0.7: resolution: {integrity: sha512-sJrL3/wHzNwJRLBdf6CjJWIlxC04iYKkyXvYSVsWVOiC2DSkHmxsqOhEeMsBA9XK+CHuNcsdkbFDnoUfAsmp9g==} @@ -8942,13 +8995,12 @@ packages: resolution: {integrity: sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg==} engines: {node: '>=6'} - statuses@2.0.1: - resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} - engines: {node: '>= 0.8'} - std-env@3.7.0: resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==} + std-env@3.8.1: + resolution: {integrity: sha512-vj5lIj3Mwf9D79hBkltk5qmkFI+biIKWS2IBxEyEU3AX1tUf7AoL8nSazCOiiqQsGKIq01SClsKEzweu34uwvA==} + stdin-discarder@0.1.0: resolution: {integrity: sha512-xhV7w8S+bUwlPTb4bAOUQhv8/cSS5offJuX8GQGq32ONF0ZtDWKfkdomM3HMRA+LhX6um/FZ0COqlwsjD53LeQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -8957,9 +9009,14 @@ packages: resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==} engines: {node: '>= 0.4'} - storybook@8.3.6: - resolution: {integrity: sha512-9GVbtej6ZzPRUM7KRQ7848506FfHrUiJGqPuIQdoSJd09EmuEoLjmLAgEOmrHBQKgGYMaM7Vh9GsTLim6vwZTQ==} + storybook@8.6.7: + resolution: {integrity: sha512-9gktoFMQDSCINNGQH869d/sar9rVtAhr0HchcvDA6bssAqgQJvTphY4qC9lH54SxfTJm/7Sy+BKEngMK+dziJg==} hasBin: true + peerDependencies: + prettier: ^2 || ^3 + peerDependenciesMeta: + prettier: + optional: true streamsearch@1.1.0: resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} @@ -9049,8 +9106,8 @@ packages: strip-literal@1.3.0: resolution: {integrity: sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg==} - strip-literal@2.1.0: - resolution: {integrity: sha512-Op+UycaUt/8FbN/Z2TWPBLge3jWrP3xj10f3fnYxf052bKuS3EKs1ZQcVGjnEMdsNVAM+plXRdmjrZ/KgG3Skw==} + strip-literal@2.1.1: + resolution: {integrity: sha512-631UJ6O00eNGfMiWG78ck80dfBab8X6IVFB51jZK5Icd7XAs60Z5y7QdSd/wGIklnWvRbUNloVzhOKKmutxQ6Q==} strong-log-transformer@2.1.0: resolution: {integrity: sha512-B3Hgul+z0L9a236FAUC9iZsL+nVHgoCJnqCbN588DjYxvGXaXaaFbfmQ/JhvKjZwsOukuR72XbHv71Qkug0HxA==} @@ -9137,23 +9194,12 @@ packages: resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} engines: {node: '>=10'} - telejson@7.2.0: - resolution: {integrity: sha512-1QTEcJkJEhc8OnStBx/ILRu5J2p0GjvWsBx56bmZRqnrkdBMUe+nX92jxV+p3dB4CP6PZCdJMQJwCggkNBMzkQ==} - temp-dir@1.0.0: resolution: {integrity: sha512-xZFXEGbG7SNC3itwBzI3RYjq/cEhBkx2hJuKGIUOcEULmkQExXiHat2z/qkISYsuR+IKumhEfKKbV5qXmhICFQ==} engines: {node: '>=4'} - temp-dir@3.0.0: - resolution: {integrity: sha512-nHc6S/bwIilKHNRgK/3jlhDoIHcp45YgyiwcAk46Tr0LfEqGBVpmiAyuiuxeVE44m3mXnEeVhaipLOEWmH+Njw==} - engines: {node: '>=14.16'} - - tempy@3.1.0: - resolution: {integrity: sha512-7jDLIdD2Zp0bDe5r3D2qtkd1QOCacylBuL7oa4udvN6v2pqr4+LcCr67C8DR1zkpaZ8XosF5m1yQSabKAW6f2g==} - engines: {node: '>=14.16'} - - terser-webpack-plugin@5.3.10: - resolution: {integrity: sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==} + terser-webpack-plugin@5.3.14: + resolution: {integrity: sha512-vkZjpUjb6OMS7dhV+tILUW6BhpDR7P2L/aQSAv+Uwk+m8KATX9EccViHTJR2qDtACKPIYndLGCyl3FMo+r2LMw==} engines: {node: '>= 10.13.0'} peerDependencies: '@swc/core': '*' @@ -9168,8 +9214,8 @@ packages: uglify-js: optional: true - terser@5.31.0: - resolution: {integrity: sha512-Q1JFAoUKE5IMfI4Z/lkE/E6+SwgzO+x4tq4v1AyBLRj8VSYvRO6A/rQrPg1yud4g0En9EKI1TvFRF2tQFcoUkg==} + terser@5.39.0: + resolution: {integrity: sha512-LBAhFyLho16harJoWMg/nZsQYgTrg5jXOn2nCYjRUcZZEdE3qa2zb8QEDRUGVZBW4rlazf2fxkg8tztybTaqWw==} engines: {node: '>=10'} hasBin: true @@ -9212,6 +9258,9 @@ packages: tinybench@2.8.0: resolution: {integrity: sha512-1/eK7zUnIklz4JUUlL+658n58XO2hHLQfSk1Zf2LKieUjxidN16eKFEoDEfjHc3ohofSSqK3X5yO6VGb6iW8Lw==} + tinybench@2.9.0: + resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==} + tinyexec@0.3.1: resolution: {integrity: sha512-WiCJLEECkO18gwqIp6+hJg0//p23HXp4S+gGtAKu3mI2F2/sXC4FvHvXvB0zJVVaTPhx1/tOwdbRsa1sOBIKqQ==} @@ -9261,18 +9310,10 @@ packages: tmpl@1.0.5: resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==} - to-fast-properties@2.0.0: - resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} - engines: {node: '>=4'} - to-regex-range@5.0.1: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} - toidentifier@1.0.1: - resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} - engines: {node: '>=0.6'} - tough-cookie@4.1.4: resolution: {integrity: sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==} engines: {node: '>=6'} @@ -9283,8 +9324,8 @@ packages: tr46@1.0.1: resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} - tr46@5.0.0: - resolution: {integrity: sha512-tk2G5R2KRwBd+ZN0zaEXpmzdKyOYksXwywulIX95MBODjSzMIuQnQ3m8JxgbhnL1LeVo7lqQKsYa1O3Htl7K5g==} + tr46@5.1.0: + resolution: {integrity: sha512-IUWnUK7ADYR5Sl1fZlO1INDUhVhatWl7BtJWsIhwJ0UAK7ilzzIa8uIqOO/aYVWHZPJkKbEL+362wrzoeRF7bw==} engines: {node: '>=18'} tree-kill@1.2.2: @@ -9315,8 +9356,8 @@ packages: resolution: {integrity: sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==} engines: {node: '>=6'} - tslib@1.14.1: - resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} + tslib@2.3.0: + resolution: {integrity: sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==} tslib@2.6.3: resolution: {integrity: sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==} @@ -9397,6 +9438,10 @@ packages: resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} engines: {node: '>=4'} + type-detect@4.1.0: + resolution: {integrity: sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==} + engines: {node: '>=4'} + type-fest@0.18.1: resolution: {integrity: sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==} engines: {node: '>=10'} @@ -9429,10 +9474,6 @@ packages: resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} engines: {node: '>=12.20'} - type-is@1.6.18: - resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} - engines: {node: '>= 0.6'} - typedarray-to-buffer@3.1.5: resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==} @@ -9450,8 +9491,8 @@ packages: ufo@1.5.4: resolution: {integrity: sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==} - uglify-js@3.17.4: - resolution: {integrity: sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==} + uglify-js@3.19.3: + resolution: {integrity: sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==} engines: {node: '>=0.8.0'} hasBin: true @@ -9480,10 +9521,6 @@ packages: resolution: {integrity: sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - unique-string@3.0.0: - resolution: {integrity: sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==} - engines: {node: '>=12'} - unist-util-find-after@5.0.0: resolution: {integrity: sha512-amQa0Ep2m6hE2g72AugUItjbuM8X8cGQnFoHk0pGfrFeT9GZhzN5SW8nRsiGKK7Aif4CrACPENkA6P/Lw6fHGQ==} @@ -9544,15 +9581,11 @@ packages: resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} engines: {node: '>= 10.0.0'} - unpipe@1.0.0: - resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} - engines: {node: '>= 0.8'} - unplugin@1.0.1: resolution: {integrity: sha512-aqrHaVBWW1JVKBHmGo33T5TxeL0qWzfvjWokObHA9bYmN7eNDkwOxmLjhioHl9878qDFMAaT51XNroRyuz7WxA==} - unplugin@1.10.1: - resolution: {integrity: sha512-d6Mhq8RJeGA8UfKCu54Um4lFA0eSaRa3XxdAJg8tIdxbu1ubW0hBCZUL7yI2uGyYCRndvbK8FLHzqy2XKfeMsg==} + unplugin@1.16.1: + resolution: {integrity: sha512-4/u/j4FrCKdi17jaxuJA0jClGxB1AvU2hw/IuayPc4ay1XGaJs/rbb4v5WKwAjNifjmXK9PIFyuPiaK8azyR9w==} engines: {node: '>=14.0.0'} upath@2.0.1: @@ -9565,6 +9598,12 @@ packages: peerDependencies: browserslist: '>= 4.21.0' + update-browserslist-db@1.1.3: + resolution: {integrity: sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + upper-case-first@2.0.2: resolution: {integrity: sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==} @@ -9580,8 +9619,9 @@ packages: url-parse@1.5.10: resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} - url@0.11.3: - resolution: {integrity: sha512-6hxOLGfZASQK/cijlZnZJTq8OXAkt/3YGfQX45vvMYXpZoo8NdWZcY73K108Jf759lS1Bv/8wXnHDTSz17dSRw==} + url@0.11.4: + resolution: {integrity: sha512-oCwdVC7mTuWiPyjLUz/COz5TLk6wgp0RCsN+wHZ2Ekneac9w8uuV0njcbbie2ME+Vs+d6duwmYuR3HgQXs1fOg==} + engines: {node: '>= 0.4'} use-callback-ref@1.3.2: resolution: {integrity: sha512-elOQwe6Q8gqZgDA8mrh44qRTQqpIHDcZ3hXTLjBe1i4ph8XpNJnO+aQf3NaG+lriLopI4HMx9VjQLfPQ6vhnoA==} @@ -9608,6 +9648,11 @@ packages: peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 + use-sync-external-store@1.4.0: + resolution: {integrity: sha512-9WXSPC5fMv61vaupRkCKCxsPxBocVnwakBEkMIHHpkTTg6icbJtg6jzgtLDm4bl3cSHAca52rYWih0k4K3PfHw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} @@ -9617,10 +9662,6 @@ packages: utila@0.4.0: resolution: {integrity: sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==} - utils-merge@1.0.1: - resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} - engines: {node: '>= 0.4.0'} - uuid@8.3.2: resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} hasBin: true @@ -9629,8 +9670,8 @@ packages: resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} hasBin: true - v8-to-istanbul@9.2.0: - resolution: {integrity: sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==} + v8-to-istanbul@9.3.0: + resolution: {integrity: sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==} engines: {node: '>=10.12.0'} v8flags@4.0.1: @@ -9647,14 +9688,6 @@ packages: resolution: {integrity: sha512-YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - validate-npm-package-name@5.0.1: - resolution: {integrity: sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - - vary@1.1.2: - resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} - engines: {node: '>= 0.8'} - vaul@0.9.4: resolution: {integrity: sha512-pcyIy1nEk6798ReNQpbVH/T/dYnoJ3bwyq7jmSp134s+bSvpWoSWQthm3/jfsQRvHNYIEK4ZKbkHUJ3YfLfw1w==} peerDependencies: @@ -9739,6 +9772,11 @@ packages: terser: optional: true + vitest-canvas-mock@0.3.3: + resolution: {integrity: sha512-3P968tYBpqYyzzOaVtqnmYjqbe13576/fkjbDEJSfQAkHtC5/UjuRHOhFEN/ZV5HVZIkaROBUWgazDKJ+Ibw+Q==} + peerDependencies: + vitest: '*' + vitest@0.34.6: resolution: {integrity: sha512-+5CALsOvbNKnS+ZHMXtuUC7nL8/7F1F2DnHGjSsszX8zCjWSSviphCb/NuS9Nzf4Q03KyyDRBAXhF/8lffME4Q==} engines: {node: '>=v14.18.0'} @@ -9836,8 +9874,8 @@ packages: walker@1.0.8: resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==} - watchpack@2.4.1: - resolution: {integrity: sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg==} + watchpack@2.4.2: + resolution: {integrity: sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==} engines: {node: '>=10.13.0'} wcwidth@1.0.1: @@ -9875,11 +9913,11 @@ packages: webpack-virtual-modules@0.5.0: resolution: {integrity: sha512-kyDivFZ7ZM0BVOUteVbDFhlRt7Ah/CSPwJdi8hBpkK7QLumUqdLtVfm/PX/hkcnrvr0i77fO5+TjZ94Pe+C9iw==} - webpack-virtual-modules@0.6.1: - resolution: {integrity: sha512-poXpCylU7ExuvZK8z+On3kX+S8o/2dQ/SVYueKA0D4WEMXROXgY8Ez50/bQEUmvoSMMrWcrJqCHuhAbsiwg7Dg==} + webpack-virtual-modules@0.6.2: + resolution: {integrity: sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==} - webpack@5.91.0: - resolution: {integrity: sha512-rzVwlLeBWHJbmgTC/8TvAcu5vpJNII+MelQpylD4jNERPwpBJOE2lEcko1zJX3QJeLjTTAnQxn/OJ8bjDzVQaw==} + webpack@5.98.0: + resolution: {integrity: sha512-UFynvx+gM44Gv9qFgj0acCQK2VE1CtdfwFdimkapco3hlPCJ/zeq73n2yVKimVbtm+TnApIugGhLJnkU6gjYXA==} engines: {node: '>=10.13.0'} hasBin: true peerDependencies: @@ -9900,8 +9938,8 @@ packages: resolution: {integrity: sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==} engines: {node: '>=18'} - whatwg-url@14.0.0: - resolution: {integrity: sha512-1lfMEm2IEr7RIV+f4lUNPOqfFL+pO+Xw3fJSqmjX9AbXcXcYOkCe1P6+9VBZB6n94af16NfZf+sSk0JCBZC9aw==} + whatwg-url@14.2.0: + resolution: {integrity: sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw==} engines: {node: '>=18'} whatwg-url@5.0.0: @@ -9924,6 +9962,10 @@ packages: resolution: {integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==} engines: {node: '>= 0.4'} + which-typed-array@1.1.19: + resolution: {integrity: sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==} + engines: {node: '>= 0.4'} + which@1.3.1: resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} hasBin: true @@ -9943,6 +9985,11 @@ packages: engines: {node: '>=8'} hasBin: true + why-is-node-running@2.3.0: + resolution: {integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==} + engines: {node: '>=8'} + hasBin: true + wicked-good-xpath@1.3.0: resolution: {integrity: sha512-Gd9+TUn5nXdwj/hFsPVx5cuHHiF5Bwuc30jZ4+ronF1qHK5O7HD0sgmXWSEgwKquT3ClLoKPVbO6qGwVwLzvAw==} @@ -9997,8 +10044,8 @@ packages: resolution: {integrity: sha512-v2UQ+50TNf2rNHJ8NyWttfm/EJUBWMJcx6ZTYZr6Qp52uuegWw/lBkCtCbnYZEmPRNL61m+u67dAmGxo+HTULA==} engines: {node: '>=8'} - ws@8.17.0: - resolution: {integrity: sha512-uJq6108EgZMAl20KagGkzCKfMEjxmKvZHG7Tlq0Z6nOky7YF7aq4mOx6xK8TJ/i1LeK4Qus7INktacctDgY8Ow==} + ws@8.18.1: + resolution: {integrity: sha512-RKW2aJZMXeMxVpnZ6bck+RswznaxmzdULiBr6KY7XkTnW8uvt0iT9H5DkHUChXrc+uurzwa0rVI16n/Xzjdz1w==} engines: {node: '>=10.0.0'} peerDependencies: bufferutil: ^4.0.1 @@ -10056,14 +10103,15 @@ packages: engines: {node: '>= 14'} hasBin: true + yaml@2.7.0: + resolution: {integrity: sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==} + engines: {node: '>= 14'} + hasBin: true + yargs-parser@18.1.3: resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==} engines: {node: '>=6'} - yargs-parser@20.2.4: - resolution: {integrity: sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==} - engines: {node: '>=10'} - yargs-parser@20.2.9: resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} engines: {node: '>=10'} @@ -10096,6 +10144,10 @@ packages: resolution: {integrity: sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==} engines: {node: '>=12.20'} + yocto-queue@1.2.0: + resolution: {integrity: sha512-KHBC7z61OJeaMGnF3wqNZj+GGNXOyypZviiKpQeiHirG5Ib1ImwcLBH70rbMSkKfSmUNBsdf2PwaEJtKvgmkNw==} + engines: {node: '>=12.20'} + zod-validation-error@3.4.0: resolution: {integrity: sha512-ZOPR9SVY6Pb2qqO5XHt+MkkTRxGXb4EVtnjc9JpXUOtUB1T9Ru7mZOT361AN3MsetVe7R0a1KZshJDZdgp9miQ==} engines: {node: '>=18.0.0'} @@ -10105,6 +10157,9 @@ packages: zod@3.23.8: resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==} + zrender@6.0.0: + resolution: {integrity: sha512-41dFXEEXuJpNecuUQq6JlbybmnHaqqpGlbH1yxnA5V9MMP4SbohSVZsJIwz+zdjQXSSlR1Vc34EgH1zxyTDvhg==} + zwitch@2.0.4: resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} @@ -10112,9 +10167,11 @@ snapshots: '@adobe/css-tools@4.4.0': {} + '@adobe/css-tools@4.4.2': {} + '@ampproject/remapping@2.3.0': dependencies: - '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/gen-mapping': 0.3.8 '@jridgewell/trace-mapping': 0.3.25 '@antfu/install-pkg@0.4.1': @@ -10132,7 +10189,7 @@ snapshots: '@floating-ui/dom': 1.6.5 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - use-sync-external-store: 1.2.0(react@18.3.1) + use-sync-external-store: 1.4.0(react@18.3.1) '@ariakit/react@0.4.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: @@ -10145,87 +10202,109 @@ snapshots: '@babel/highlight': 7.24.6 picocolors: 1.0.1 - '@babel/compat-data@7.24.6': {} + '@babel/code-frame@7.26.2': + dependencies: + '@babel/helper-validator-identifier': 7.25.9 + js-tokens: 4.0.0 + picocolors: 1.1.1 + + '@babel/compat-data@7.26.8': {} '@babel/core@7.24.6': dependencies: '@ampproject/remapping': 2.3.0 - '@babel/code-frame': 7.24.6 - '@babel/generator': 7.24.6 - '@babel/helper-compilation-targets': 7.24.6 - '@babel/helper-module-transforms': 7.24.6(@babel/core@7.24.6) - '@babel/helpers': 7.24.6 - '@babel/parser': 7.24.6 - '@babel/template': 7.24.6 - '@babel/traverse': 7.24.6 - '@babel/types': 7.24.6 + '@babel/code-frame': 7.26.2 + '@babel/generator': 7.26.10 + '@babel/helper-compilation-targets': 7.26.5 + '@babel/helper-module-transforms': 7.26.0(@babel/core@7.24.6) + '@babel/helpers': 7.26.10 + '@babel/parser': 7.26.10 + '@babel/template': 7.26.9 + '@babel/traverse': 7.26.10 + '@babel/types': 7.26.10 convert-source-map: 2.0.0 - debug: 4.3.5 + debug: 4.4.0 gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 transitivePeerDependencies: - supports-color - '@babel/generator@7.24.6': - dependencies: - '@babel/types': 7.24.6 - '@jridgewell/gen-mapping': 0.3.5 - '@jridgewell/trace-mapping': 0.3.25 - jsesc: 2.5.2 - - '@babel/helper-compilation-targets@7.24.6': + '@babel/core@7.26.10': dependencies: - '@babel/compat-data': 7.24.6 - '@babel/helper-validator-option': 7.24.6 - browserslist: 4.23.1 - lru-cache: 5.1.1 + '@ampproject/remapping': 2.3.0 + '@babel/code-frame': 7.26.2 + '@babel/generator': 7.26.10 + '@babel/helper-compilation-targets': 7.26.5 + '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.10) + '@babel/helpers': 7.26.10 + '@babel/parser': 7.26.10 + '@babel/template': 7.26.9 + '@babel/traverse': 7.26.10 + '@babel/types': 7.26.10 + convert-source-map: 2.0.0 + debug: 4.4.0 + gensync: 1.0.0-beta.2 + json5: 2.2.3 semver: 6.3.1 + transitivePeerDependencies: + - supports-color - '@babel/helper-environment-visitor@7.24.6': {} - - '@babel/helper-function-name@7.24.6': + '@babel/generator@7.26.10': dependencies: - '@babel/template': 7.24.6 - '@babel/types': 7.24.6 + '@babel/parser': 7.26.10 + '@babel/types': 7.26.10 + '@jridgewell/gen-mapping': 0.3.8 + '@jridgewell/trace-mapping': 0.3.25 + jsesc: 3.1.0 - '@babel/helper-hoist-variables@7.24.6': + '@babel/helper-compilation-targets@7.26.5': dependencies: - '@babel/types': 7.24.6 + '@babel/compat-data': 7.26.8 + '@babel/helper-validator-option': 7.25.9 + browserslist: 4.24.4 + lru-cache: 5.1.1 + semver: 6.3.1 - '@babel/helper-module-imports@7.24.6': + '@babel/helper-module-imports@7.25.9': dependencies: - '@babel/types': 7.24.6 + '@babel/traverse': 7.26.10 + '@babel/types': 7.26.10 + transitivePeerDependencies: + - supports-color - '@babel/helper-module-transforms@7.24.6(@babel/core@7.24.6)': + '@babel/helper-module-transforms@7.26.0(@babel/core@7.24.6)': dependencies: '@babel/core': 7.24.6 - '@babel/helper-environment-visitor': 7.24.6 - '@babel/helper-module-imports': 7.24.6 - '@babel/helper-simple-access': 7.24.6 - '@babel/helper-split-export-declaration': 7.24.6 - '@babel/helper-validator-identifier': 7.24.6 - - '@babel/helper-plugin-utils@7.24.6': {} + '@babel/helper-module-imports': 7.25.9 + '@babel/helper-validator-identifier': 7.25.9 + '@babel/traverse': 7.26.10 + transitivePeerDependencies: + - supports-color - '@babel/helper-simple-access@7.24.6': + '@babel/helper-module-transforms@7.26.0(@babel/core@7.26.10)': dependencies: - '@babel/types': 7.24.6 + '@babel/core': 7.26.10 + '@babel/helper-module-imports': 7.25.9 + '@babel/helper-validator-identifier': 7.25.9 + '@babel/traverse': 7.26.10 + transitivePeerDependencies: + - supports-color - '@babel/helper-split-export-declaration@7.24.6': - dependencies: - '@babel/types': 7.24.6 + '@babel/helper-plugin-utils@7.26.5': {} - '@babel/helper-string-parser@7.24.6': {} + '@babel/helper-string-parser@7.25.9': {} '@babel/helper-validator-identifier@7.24.6': {} - '@babel/helper-validator-option@7.24.6': {} + '@babel/helper-validator-identifier@7.25.9': {} - '@babel/helpers@7.24.6': + '@babel/helper-validator-option@7.25.9': {} + + '@babel/helpers@7.26.10': dependencies: - '@babel/template': 7.24.6 - '@babel/types': 7.24.6 + '@babel/template': 7.26.9 + '@babel/types': 7.26.10 '@babel/highlight@7.24.6': dependencies: @@ -10234,122 +10313,135 @@ snapshots: js-tokens: 4.0.0 picocolors: 1.0.1 - '@babel/parser@7.24.6': + '@babel/parser@7.26.10': dependencies: - '@babel/types': 7.24.6 + '@babel/types': 7.26.10 - '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.24.6)': + '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.26.10)': dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/core': 7.26.10 + '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.24.6)': + '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.26.10)': dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/core': 7.26.10 + '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.24.6)': + '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.26.10)': dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/core': 7.26.10 + '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.24.6)': + '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.26.10)': dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/core': 7.26.10 + '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.24.6)': + '@babel/plugin-syntax-import-attributes@7.26.0(@babel/core@7.26.10)': dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/core': 7.26.10 + '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-syntax-jsx@7.24.6(@babel/core@7.24.6)': + '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.26.10)': dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/core': 7.26.10 + '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.24.6)': + '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.26.10)': dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/core': 7.26.10 + '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.24.6)': + '@babel/plugin-syntax-jsx@7.25.9(@babel/core@7.26.10)': dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/core': 7.26.10 + '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.24.6)': + '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.26.10)': dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/core': 7.26.10 + '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.24.6)': + '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.26.10)': dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/core': 7.26.10 + '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.24.6)': + '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.26.10)': dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/core': 7.26.10 + '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.24.6)': + '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.26.10)': dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/core': 7.26.10 + '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.24.6)': + '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.26.10)': dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/core': 7.26.10 + '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-syntax-typescript@7.24.6(@babel/core@7.24.6)': + '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.26.10)': dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/core': 7.26.10 + '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-transform-react-jsx-self@7.24.6(@babel/core@7.24.6)': + '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.26.10)': dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/core': 7.26.10 + '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-transform-react-jsx-source@7.24.6(@babel/core@7.24.6)': + '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.26.10)': dependencies: - '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.6 + '@babel/core': 7.26.10 + '@babel/helper-plugin-utils': 7.26.5 + + '@babel/plugin-syntax-typescript@7.25.9(@babel/core@7.26.10)': + dependencies: + '@babel/core': 7.26.10 + '@babel/helper-plugin-utils': 7.26.5 + + '@babel/plugin-transform-react-jsx-self@7.25.9(@babel/core@7.26.10)': + dependencies: + '@babel/core': 7.26.10 + '@babel/helper-plugin-utils': 7.26.5 + + '@babel/plugin-transform-react-jsx-source@7.25.9(@babel/core@7.26.10)': + dependencies: + '@babel/core': 7.26.10 + '@babel/helper-plugin-utils': 7.26.5 '@babel/runtime@7.24.6': dependencies: regenerator-runtime: 0.14.1 - '@babel/template@7.24.6': + '@babel/runtime@7.26.10': dependencies: - '@babel/code-frame': 7.24.6 - '@babel/parser': 7.24.6 - '@babel/types': 7.24.6 + regenerator-runtime: 0.14.1 - '@babel/traverse@7.24.6': + '@babel/template@7.26.9': dependencies: - '@babel/code-frame': 7.24.6 - '@babel/generator': 7.24.6 - '@babel/helper-environment-visitor': 7.24.6 - '@babel/helper-function-name': 7.24.6 - '@babel/helper-hoist-variables': 7.24.6 - '@babel/helper-split-export-declaration': 7.24.6 - '@babel/parser': 7.24.6 - '@babel/types': 7.24.6 - debug: 4.3.5 + '@babel/code-frame': 7.26.2 + '@babel/parser': 7.26.10 + '@babel/types': 7.26.10 + + '@babel/traverse@7.26.10': + dependencies: + '@babel/code-frame': 7.26.2 + '@babel/generator': 7.26.10 + '@babel/parser': 7.26.10 + '@babel/template': 7.26.9 + '@babel/types': 7.26.10 + debug: 4.4.0 globals: 11.12.0 transitivePeerDependencies: - supports-color - '@babel/types@7.24.6': + '@babel/types@7.26.10': dependencies: - '@babel/helper-string-parser': 7.24.6 - '@babel/helper-validator-identifier': 7.24.6 - to-fast-properties: 2.0.0 - - '@base2/pretty-print-object@1.0.1': {} + '@babel/helper-string-parser': 7.25.9 + '@babel/helper-validator-identifier': 7.25.9 '@bcoe/v8-coverage@0.2.3': {} @@ -10407,12 +10499,13 @@ snapshots: '@chevrotain/utils@11.0.3': {} - '@chromatic-com/storybook@1.5.0(react@18.3.1)': + '@chromatic-com/storybook@3.2.6(react@18.3.1)(storybook@8.6.7(prettier@3.5.3))': dependencies: - chromatic: 11.5.1 - filesize: 10.1.2 + chromatic: 11.27.0 + filesize: 10.1.6 jsonfile: 6.1.0 - react-confetti: 6.1.0(react@18.3.1) + react-confetti: 6.4.0(react@18.3.1) + storybook: 8.6.7(prettier@3.5.3) strip-ansi: 7.1.0 transitivePeerDependencies: - '@chromatic-com/cypress' @@ -10421,13 +10514,13 @@ snapshots: '@commitlint/cli@9.1.2': dependencies: - '@babel/runtime': 7.24.6 + '@babel/runtime': 7.26.10 '@commitlint/format': 9.1.2 '@commitlint/lint': 9.1.2 '@commitlint/load': 9.1.2 '@commitlint/read': 9.1.2 chalk: 4.1.0 - core-js: 3.37.1 + core-js: 3.41.0 get-stdin: 7.0.0 lodash: 4.17.21 resolve-from: 5.0.0 @@ -10438,10 +10531,10 @@ snapshots: dependencies: conventional-changelog-conventionalcommits: 4.3.0 - '@commitlint/config-validator@19.0.3': + '@commitlint/config-validator@19.8.0': dependencies: - '@commitlint/types': 19.0.3 - ajv: 8.15.0 + '@commitlint/types': 19.8.0 + ajv: 8.17.1 optional: true '@commitlint/ensure@9.1.2': @@ -10449,7 +10542,7 @@ snapshots: '@commitlint/types': 9.1.2 lodash: 4.17.21 - '@commitlint/execute-rule@19.0.0': + '@commitlint/execute-rule@19.8.0': optional: true '@commitlint/execute-rule@9.1.2': {} @@ -10471,15 +10564,15 @@ snapshots: '@commitlint/rules': 9.1.2 '@commitlint/types': 9.1.2 - '@commitlint/load@19.2.0(@types/node@20.14.9)(typescript@5.5.2)': + '@commitlint/load@19.8.0(@types/node@20.14.9)(typescript@5.5.2)': dependencies: - '@commitlint/config-validator': 19.0.3 - '@commitlint/execute-rule': 19.0.0 - '@commitlint/resolve-extends': 19.1.0 - '@commitlint/types': 19.0.3 - chalk: 5.3.0 + '@commitlint/config-validator': 19.8.0 + '@commitlint/execute-rule': 19.8.0 + '@commitlint/resolve-extends': 19.8.0 + '@commitlint/types': 19.8.0 + chalk: 5.4.1 cosmiconfig: 9.0.0(typescript@5.5.2) - cosmiconfig-typescript-loader: 5.0.0(@types/node@20.14.9)(cosmiconfig@9.0.0(typescript@5.5.2))(typescript@5.5.2) + cosmiconfig-typescript-loader: 6.1.0(@types/node@20.14.9)(cosmiconfig@9.0.0(typescript@5.5.2))(typescript@5.5.2) lodash.isplainobject: 4.0.6 lodash.merge: 4.6.2 lodash.uniq: 4.5.0 @@ -10507,7 +10600,7 @@ snapshots: '@commitlint/prompt@9.1.2': dependencies: - '@babel/runtime': 7.24.6 + '@babel/runtime': 7.26.10 '@commitlint/load': 9.1.2 chalk: 4.1.2 lodash: 4.17.21 @@ -10520,10 +10613,10 @@ snapshots: fs-extra: 8.1.0 git-raw-commits: 2.0.11 - '@commitlint/resolve-extends@19.1.0': + '@commitlint/resolve-extends@19.8.0': dependencies: - '@commitlint/config-validator': 19.0.3 - '@commitlint/types': 19.0.3 + '@commitlint/config-validator': 19.8.0 + '@commitlint/types': 19.8.0 global-directory: 4.0.1 import-meta-resolve: 4.1.0 lodash.mergewith: 4.6.2 @@ -10532,7 +10625,7 @@ snapshots: '@commitlint/resolve-extends@9.1.2': dependencies: - import-fresh: 3.3.0 + import-fresh: 3.3.1 lodash: 4.17.21 resolve-from: 5.0.0 resolve-global: 1.0.0 @@ -10550,226 +10643,240 @@ snapshots: dependencies: find-up: 4.1.0 - '@commitlint/types@19.0.3': + '@commitlint/types@19.8.0': dependencies: - '@types/conventional-commits-parser': 5.0.0 - chalk: 5.3.0 + '@types/conventional-commits-parser': 5.0.1 + chalk: 5.4.1 optional: true '@commitlint/types@9.1.2': {} + '@emnapi/core@1.3.1': + dependencies: + '@emnapi/wasi-threads': 1.0.1 + tslib: 2.6.3 + '@emnapi/runtime@1.3.1': dependencies: tslib: 2.6.3 - optional: true + + '@emnapi/wasi-threads@1.0.1': + dependencies: + tslib: 2.6.3 '@esbuild/aix-ppc64@0.19.12': optional: true - '@esbuild/aix-ppc64@0.20.2': + '@esbuild/aix-ppc64@0.21.5': optional: true - '@esbuild/aix-ppc64@0.21.5': + '@esbuild/aix-ppc64@0.25.1': optional: true '@esbuild/android-arm64@0.19.12': optional: true - '@esbuild/android-arm64@0.20.2': + '@esbuild/android-arm64@0.21.5': optional: true - '@esbuild/android-arm64@0.21.5': + '@esbuild/android-arm64@0.25.1': optional: true '@esbuild/android-arm@0.19.12': optional: true - '@esbuild/android-arm@0.20.2': + '@esbuild/android-arm@0.21.5': optional: true - '@esbuild/android-arm@0.21.5': + '@esbuild/android-arm@0.25.1': optional: true '@esbuild/android-x64@0.19.12': optional: true - '@esbuild/android-x64@0.20.2': + '@esbuild/android-x64@0.21.5': optional: true - '@esbuild/android-x64@0.21.5': + '@esbuild/android-x64@0.25.1': optional: true '@esbuild/darwin-arm64@0.19.12': optional: true - '@esbuild/darwin-arm64@0.20.2': + '@esbuild/darwin-arm64@0.21.5': optional: true - '@esbuild/darwin-arm64@0.21.5': + '@esbuild/darwin-arm64@0.25.1': optional: true '@esbuild/darwin-x64@0.19.12': optional: true - '@esbuild/darwin-x64@0.20.2': + '@esbuild/darwin-x64@0.21.5': optional: true - '@esbuild/darwin-x64@0.21.5': + '@esbuild/darwin-x64@0.25.1': optional: true '@esbuild/freebsd-arm64@0.19.12': optional: true - '@esbuild/freebsd-arm64@0.20.2': + '@esbuild/freebsd-arm64@0.21.5': optional: true - '@esbuild/freebsd-arm64@0.21.5': + '@esbuild/freebsd-arm64@0.25.1': optional: true '@esbuild/freebsd-x64@0.19.12': optional: true - '@esbuild/freebsd-x64@0.20.2': + '@esbuild/freebsd-x64@0.21.5': optional: true - '@esbuild/freebsd-x64@0.21.5': + '@esbuild/freebsd-x64@0.25.1': optional: true '@esbuild/linux-arm64@0.19.12': optional: true - '@esbuild/linux-arm64@0.20.2': + '@esbuild/linux-arm64@0.21.5': optional: true - '@esbuild/linux-arm64@0.21.5': + '@esbuild/linux-arm64@0.25.1': optional: true '@esbuild/linux-arm@0.19.12': optional: true - '@esbuild/linux-arm@0.20.2': + '@esbuild/linux-arm@0.21.5': optional: true - '@esbuild/linux-arm@0.21.5': + '@esbuild/linux-arm@0.25.1': optional: true '@esbuild/linux-ia32@0.19.12': optional: true - '@esbuild/linux-ia32@0.20.2': + '@esbuild/linux-ia32@0.21.5': optional: true - '@esbuild/linux-ia32@0.21.5': + '@esbuild/linux-ia32@0.25.1': optional: true '@esbuild/linux-loong64@0.19.12': optional: true - '@esbuild/linux-loong64@0.20.2': + '@esbuild/linux-loong64@0.21.5': optional: true - '@esbuild/linux-loong64@0.21.5': + '@esbuild/linux-loong64@0.25.1': optional: true '@esbuild/linux-mips64el@0.19.12': optional: true - '@esbuild/linux-mips64el@0.20.2': + '@esbuild/linux-mips64el@0.21.5': optional: true - '@esbuild/linux-mips64el@0.21.5': + '@esbuild/linux-mips64el@0.25.1': optional: true '@esbuild/linux-ppc64@0.19.12': optional: true - '@esbuild/linux-ppc64@0.20.2': + '@esbuild/linux-ppc64@0.21.5': optional: true - '@esbuild/linux-ppc64@0.21.5': + '@esbuild/linux-ppc64@0.25.1': optional: true '@esbuild/linux-riscv64@0.19.12': optional: true - '@esbuild/linux-riscv64@0.20.2': + '@esbuild/linux-riscv64@0.21.5': optional: true - '@esbuild/linux-riscv64@0.21.5': + '@esbuild/linux-riscv64@0.25.1': optional: true '@esbuild/linux-s390x@0.19.12': optional: true - '@esbuild/linux-s390x@0.20.2': + '@esbuild/linux-s390x@0.21.5': optional: true - '@esbuild/linux-s390x@0.21.5': + '@esbuild/linux-s390x@0.25.1': optional: true '@esbuild/linux-x64@0.19.12': optional: true - '@esbuild/linux-x64@0.20.2': + '@esbuild/linux-x64@0.21.5': optional: true - '@esbuild/linux-x64@0.21.5': + '@esbuild/linux-x64@0.25.1': optional: true - '@esbuild/netbsd-x64@0.19.12': + '@esbuild/netbsd-arm64@0.25.1': optional: true - '@esbuild/netbsd-x64@0.20.2': + '@esbuild/netbsd-x64@0.19.12': optional: true '@esbuild/netbsd-x64@0.21.5': optional: true - '@esbuild/openbsd-x64@0.19.12': + '@esbuild/netbsd-x64@0.25.1': + optional: true + + '@esbuild/openbsd-arm64@0.25.1': optional: true - '@esbuild/openbsd-x64@0.20.2': + '@esbuild/openbsd-x64@0.19.12': optional: true '@esbuild/openbsd-x64@0.21.5': optional: true - '@esbuild/sunos-x64@0.19.12': + '@esbuild/openbsd-x64@0.25.1': optional: true - '@esbuild/sunos-x64@0.20.2': + '@esbuild/sunos-x64@0.19.12': optional: true '@esbuild/sunos-x64@0.21.5': optional: true - '@esbuild/win32-arm64@0.19.12': + '@esbuild/sunos-x64@0.25.1': optional: true - '@esbuild/win32-arm64@0.20.2': + '@esbuild/win32-arm64@0.19.12': optional: true '@esbuild/win32-arm64@0.21.5': optional: true - '@esbuild/win32-ia32@0.19.12': + '@esbuild/win32-arm64@0.25.1': optional: true - '@esbuild/win32-ia32@0.20.2': + '@esbuild/win32-ia32@0.19.12': optional: true '@esbuild/win32-ia32@0.21.5': optional: true - '@esbuild/win32-x64@0.19.12': + '@esbuild/win32-ia32@0.25.1': optional: true - '@esbuild/win32-x64@0.20.2': + '@esbuild/win32-x64@0.19.12': optional: true '@esbuild/win32-x64@0.21.5': optional: true + '@esbuild/win32-x64@0.25.1': + optional: true + '@faker-js/faker@8.4.1': {} '@floating-ui/core@1.6.2': @@ -10998,7 +11105,7 @@ snapshots: jest-util: 29.7.0 jest-validate: 29.7.0 jest-watcher: 29.7.0 - micromatch: 4.0.7 + micromatch: 4.0.8 pretty-format: 29.7.0 slash: 3.0.0 strip-ansi: 6.0.1 @@ -11062,7 +11169,7 @@ snapshots: glob: 7.2.3 graceful-fs: 4.2.11 istanbul-lib-coverage: 3.2.2 - istanbul-lib-instrument: 6.0.2 + istanbul-lib-instrument: 6.0.3 istanbul-lib-report: 3.0.1 istanbul-lib-source-maps: 4.0.1 istanbul-reports: 3.1.7 @@ -11072,7 +11179,7 @@ snapshots: slash: 3.0.0 string-length: 4.0.2 strip-ansi: 6.0.1 - v8-to-istanbul: 9.2.0 + v8-to-istanbul: 9.3.0 transitivePeerDependencies: - supports-color @@ -11102,7 +11209,7 @@ snapshots: '@jest/transform@29.7.0': dependencies: - '@babel/core': 7.24.6 + '@babel/core': 7.26.10 '@jest/types': 29.6.3 '@jridgewell/trace-mapping': 0.3.25 babel-plugin-istanbul: 6.1.1 @@ -11113,7 +11220,7 @@ snapshots: jest-haste-map: 29.7.0 jest-regex-util: 29.6.3 jest-util: 29.7.0 - micromatch: 4.0.7 + micromatch: 4.0.8 pirates: 4.0.6 slash: 3.0.0 write-file-atomic: 4.0.2 @@ -11126,16 +11233,15 @@ snapshots: '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 '@types/node': 20.14.9 - '@types/yargs': 17.0.32 + '@types/yargs': 17.0.33 chalk: 4.1.2 - '@joshwooding/vite-plugin-react-docgen-typescript@0.3.0(typescript@5.5.2)(vite@5.4.9(@types/node@20.14.9)(lightningcss@1.27.0)(terser@5.31.0))': + '@joshwooding/vite-plugin-react-docgen-typescript@0.5.0(typescript@5.5.2)(vite@5.4.9(@types/node@20.14.9)(lightningcss@1.27.0)(terser@5.39.0))': dependencies: - glob: 7.2.3 - glob-promise: 4.2.2(glob@7.2.3) + glob: 10.4.5 magic-string: 0.27.0 react-docgen-typescript: 2.2.2(typescript@5.5.2) - vite: 5.4.9(@types/node@20.14.9)(lightningcss@1.27.0)(terser@5.31.0) + vite: 5.4.9(@types/node@20.14.9)(lightningcss@1.27.0)(terser@5.39.0) optionalDependencies: typescript: 5.5.2 @@ -11145,26 +11251,34 @@ snapshots: '@jridgewell/sourcemap-codec': 1.4.15 '@jridgewell/trace-mapping': 0.3.25 + '@jridgewell/gen-mapping@0.3.8': + dependencies: + '@jridgewell/set-array': 1.2.1 + '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/trace-mapping': 0.3.25 + '@jridgewell/resolve-uri@3.1.2': {} '@jridgewell/set-array@1.2.1': {} '@jridgewell/source-map@0.3.6': dependencies: - '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/gen-mapping': 0.3.8 '@jridgewell/trace-mapping': 0.3.25 '@jridgewell/sourcemap-codec@1.4.15': {} + '@jridgewell/sourcemap-codec@1.5.0': {} + '@jridgewell/trace-mapping@0.3.25': dependencies: '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/sourcemap-codec': 1.5.0 - '@lerna/create@8.1.4(@swc/core@1.5.24(@swc/helpers@0.5.13))(encoding@0.1.13)(typescript@5.5.2)': + '@lerna/create@8.1.4(@swc/core@1.11.11(@swc/helpers@0.5.13))(encoding@0.1.13)(typescript@5.5.2)': dependencies: '@npmcli/run-script': 7.0.2 - '@nx/devkit': 19.3.2(nx@19.3.2(@swc/core@1.5.24(@swc/helpers@0.5.13))) + '@nx/devkit': 19.8.14(nx@19.8.14(@swc/core@1.11.11(@swc/helpers@0.5.13))) '@octokit/plugin-enterprise-rest': 6.0.1 '@octokit/rest': 19.0.11(encoding@0.1.13) byte-size: 8.1.1 @@ -11177,7 +11291,7 @@ snapshots: cosmiconfig: 8.3.6(typescript@5.5.2) dedent: 0.7.0 execa: 5.0.0 - fs-extra: 11.2.0 + fs-extra: 11.3.0 get-stream: 6.0.0 git-url-parse: 13.1.0 glob-parent: 5.1.2 @@ -11201,7 +11315,7 @@ snapshots: npm-packlist: 5.1.1 npm-registry-fetch: 14.0.5 npmlog: 6.0.2 - nx: 19.3.2(@swc/core@1.5.24(@swc/helpers@0.5.13)) + nx: 19.8.14(@swc/core@1.11.11(@swc/helpers@0.5.13)) p-map: 4.0.0 p-map-series: 2.1.0 p-queue: 6.6.2 @@ -11212,7 +11326,7 @@ snapshots: read-package-json: 6.0.4 resolve-from: 5.0.0 rimraf: 4.4.1 - semver: 7.6.2 + semver: 7.7.1 signal-exit: 3.0.7 slash: 3.0.0 ssri: 9.0.1 @@ -11272,6 +11386,12 @@ snapshots: '@types/react': 18.3.11 react: 18.3.1 + '@mdx-js/react@3.1.0(@types/react@18.3.11)(react@18.3.1)': + dependencies: + '@types/mdx': 2.0.13 + '@types/react': 18.3.11 + react: 18.3.1 + '@mermaid-js/parser@0.3.0': dependencies: langium: 3.0.0 @@ -11323,6 +11443,12 @@ snapshots: '@napi-rs/simple-git-win32-arm64-msvc': 0.1.16 '@napi-rs/simple-git-win32-x64-msvc': 0.1.16 + '@napi-rs/wasm-runtime@0.2.4': + dependencies: + '@emnapi/core': 1.3.1 + '@emnapi/runtime': 1.3.1 + '@tybys/wasm-util': 0.9.0 + '@next/env@15.0.0': {} '@next/swc-darwin-arm64@15.0.0': @@ -11349,9 +11475,9 @@ snapshots: '@next/swc-win32-x64-msvc@15.0.0': optional: true - '@next/third-parties@15.0.0(next@15.0.0(@babel/core@7.24.6)(@opentelemetry/api@1.9.0)(@playwright/test@1.44.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)': + '@next/third-parties@15.0.0(next@15.0.0(@babel/core@7.24.6)(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)': dependencies: - next: 15.0.0(@babel/core@7.24.6)(@opentelemetry/api@1.9.0)(@playwright/test@1.44.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + next: 15.0.0(@babel/core@7.24.6)(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 third-party-capital: 1.0.20 @@ -11365,31 +11491,32 @@ snapshots: '@nodelib/fs.walk@1.2.8': dependencies: '@nodelib/fs.scandir': 2.1.5 - fastq: 1.17.1 + fastq: 1.19.1 '@npmcli/agent@2.2.2': dependencies: - agent-base: 7.1.1 + agent-base: 7.1.3 http-proxy-agent: 7.0.2 - https-proxy-agent: 7.0.4 - lru-cache: 10.2.2 - socks-proxy-agent: 8.0.3 + https-proxy-agent: 7.0.6 + lru-cache: 10.4.3 + socks-proxy-agent: 8.0.5 transitivePeerDependencies: - supports-color '@npmcli/fs@3.1.1': dependencies: - semver: 7.6.2 + semver: 7.7.1 - '@npmcli/git@5.0.7': + '@npmcli/git@5.0.8': dependencies: '@npmcli/promise-spawn': 7.0.2 - lru-cache: 10.2.2 - npm-pick-manifest: 9.0.1 + ini: 4.1.3 + lru-cache: 10.4.3 + npm-pick-manifest: 9.1.0 proc-log: 4.2.0 promise-inflight: 1.0.1 promise-retry: 2.0.1 - semver: 7.6.2 + semver: 7.7.1 which: 4.0.0 transitivePeerDependencies: - bluebird @@ -11411,68 +11538,68 @@ snapshots: dependencies: '@npmcli/node-gyp': 3.0.0 '@npmcli/promise-spawn': 7.0.2 - node-gyp: 10.1.0 + node-gyp: 10.3.1 read-package-json-fast: 3.0.2 which: 4.0.0 transitivePeerDependencies: - supports-color - '@nrwl/devkit@19.3.2(nx@19.3.2(@swc/core@1.5.24(@swc/helpers@0.5.13)))': + '@nrwl/devkit@19.8.14(nx@19.8.14(@swc/core@1.11.11(@swc/helpers@0.5.13)))': dependencies: - '@nx/devkit': 19.3.2(nx@19.3.2(@swc/core@1.5.24(@swc/helpers@0.5.13))) + '@nx/devkit': 19.8.14(nx@19.8.14(@swc/core@1.11.11(@swc/helpers@0.5.13))) transitivePeerDependencies: - nx - '@nrwl/tao@19.3.2(@swc/core@1.5.24(@swc/helpers@0.5.13))': + '@nrwl/tao@19.8.14(@swc/core@1.11.11(@swc/helpers@0.5.13))': dependencies: - nx: 19.3.2(@swc/core@1.5.24(@swc/helpers@0.5.13)) + nx: 19.8.14(@swc/core@1.11.11(@swc/helpers@0.5.13)) tslib: 2.6.3 transitivePeerDependencies: - '@swc-node/register' - '@swc/core' - debug - '@nx/devkit@19.3.2(nx@19.3.2(@swc/core@1.5.24(@swc/helpers@0.5.13)))': + '@nx/devkit@19.8.14(nx@19.8.14(@swc/core@1.11.11(@swc/helpers@0.5.13)))': dependencies: - '@nrwl/devkit': 19.3.2(nx@19.3.2(@swc/core@1.5.24(@swc/helpers@0.5.13))) + '@nrwl/devkit': 19.8.14(nx@19.8.14(@swc/core@1.11.11(@swc/helpers@0.5.13))) ejs: 3.1.10 enquirer: 2.3.6 - ignore: 5.3.1 + ignore: 5.3.2 minimatch: 9.0.3 - nx: 19.3.2(@swc/core@1.5.24(@swc/helpers@0.5.13)) - semver: 7.6.2 + nx: 19.8.14(@swc/core@1.11.11(@swc/helpers@0.5.13)) + semver: 7.7.1 tmp: 0.2.3 tslib: 2.6.3 yargs-parser: 21.1.1 - '@nx/nx-darwin-arm64@19.3.2': + '@nx/nx-darwin-arm64@19.8.14': optional: true - '@nx/nx-darwin-x64@19.3.2': + '@nx/nx-darwin-x64@19.8.14': optional: true - '@nx/nx-freebsd-x64@19.3.2': + '@nx/nx-freebsd-x64@19.8.14': optional: true - '@nx/nx-linux-arm-gnueabihf@19.3.2': + '@nx/nx-linux-arm-gnueabihf@19.8.14': optional: true - '@nx/nx-linux-arm64-gnu@19.3.2': + '@nx/nx-linux-arm64-gnu@19.8.14': optional: true - '@nx/nx-linux-arm64-musl@19.3.2': + '@nx/nx-linux-arm64-musl@19.8.14': optional: true - '@nx/nx-linux-x64-gnu@19.3.2': + '@nx/nx-linux-x64-gnu@19.8.14': optional: true - '@nx/nx-linux-x64-musl@19.3.2': + '@nx/nx-linux-x64-musl@19.8.14': optional: true - '@nx/nx-win32-arm64-msvc@19.3.2': + '@nx/nx-win32-arm64-msvc@19.8.14': optional: true - '@nx/nx-win32-x64-msvc@19.3.2': + '@nx/nx-win32-x64-msvc@19.8.14': optional: true '@octokit/auth-token@3.0.4': {} @@ -11551,7 +11678,7 @@ snapshots: '@octokit/request-error': 3.0.3 '@octokit/types': 9.3.2 is-plain-object: 5.0.0 - node-fetch: 2.7.0(encoding@0.1.13) + node-fetch: 2.6.7(encoding@0.1.13) universal-user-agent: 6.0.1 transitivePeerDependencies: - encoding @@ -11906,9 +12033,9 @@ snapshots: '@pkgjs/parseargs@0.11.0': optional: true - '@playwright/test@1.44.1': + '@playwright/test@1.51.1': dependencies: - playwright: 1.44.1 + playwright: 1.51.1 '@prisma/instrumentation@5.19.1': dependencies: @@ -12311,108 +12438,117 @@ snapshots: optionalDependencies: rollup: 3.29.5 - '@rollup/pluginutils@5.1.0(rollup@4.24.0)': + '@rollup/pluginutils@5.1.4(rollup@4.36.0)': dependencies: - '@types/estree': 1.0.5 + '@types/estree': 1.0.6 estree-walker: 2.0.2 - picomatch: 2.3.1 + picomatch: 4.0.2 optionalDependencies: - rollup: 4.24.0 + rollup: 4.36.0 '@rollup/rollup-android-arm-eabi@4.18.0': optional: true - '@rollup/rollup-android-arm-eabi@4.24.0': + '@rollup/rollup-android-arm-eabi@4.36.0': optional: true '@rollup/rollup-android-arm64@4.18.0': optional: true - '@rollup/rollup-android-arm64@4.24.0': + '@rollup/rollup-android-arm64@4.36.0': optional: true '@rollup/rollup-darwin-arm64@4.18.0': optional: true - '@rollup/rollup-darwin-arm64@4.24.0': + '@rollup/rollup-darwin-arm64@4.36.0': optional: true '@rollup/rollup-darwin-x64@4.18.0': optional: true - '@rollup/rollup-darwin-x64@4.24.0': + '@rollup/rollup-darwin-x64@4.36.0': + optional: true + + '@rollup/rollup-freebsd-arm64@4.36.0': + optional: true + + '@rollup/rollup-freebsd-x64@4.36.0': optional: true '@rollup/rollup-linux-arm-gnueabihf@4.18.0': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.24.0': + '@rollup/rollup-linux-arm-gnueabihf@4.36.0': optional: true '@rollup/rollup-linux-arm-musleabihf@4.18.0': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.24.0': + '@rollup/rollup-linux-arm-musleabihf@4.36.0': optional: true '@rollup/rollup-linux-arm64-gnu@4.18.0': optional: true - '@rollup/rollup-linux-arm64-gnu@4.24.0': + '@rollup/rollup-linux-arm64-gnu@4.36.0': optional: true '@rollup/rollup-linux-arm64-musl@4.18.0': optional: true - '@rollup/rollup-linux-arm64-musl@4.24.0': + '@rollup/rollup-linux-arm64-musl@4.36.0': + optional: true + + '@rollup/rollup-linux-loongarch64-gnu@4.36.0': optional: true '@rollup/rollup-linux-powerpc64le-gnu@4.18.0': optional: true - '@rollup/rollup-linux-powerpc64le-gnu@4.24.0': + '@rollup/rollup-linux-powerpc64le-gnu@4.36.0': optional: true '@rollup/rollup-linux-riscv64-gnu@4.18.0': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.24.0': + '@rollup/rollup-linux-riscv64-gnu@4.36.0': optional: true '@rollup/rollup-linux-s390x-gnu@4.18.0': optional: true - '@rollup/rollup-linux-s390x-gnu@4.24.0': + '@rollup/rollup-linux-s390x-gnu@4.36.0': optional: true '@rollup/rollup-linux-x64-gnu@4.18.0': optional: true - '@rollup/rollup-linux-x64-gnu@4.24.0': + '@rollup/rollup-linux-x64-gnu@4.36.0': optional: true '@rollup/rollup-linux-x64-musl@4.18.0': optional: true - '@rollup/rollup-linux-x64-musl@4.24.0': + '@rollup/rollup-linux-x64-musl@4.36.0': optional: true '@rollup/rollup-win32-arm64-msvc@4.18.0': optional: true - '@rollup/rollup-win32-arm64-msvc@4.24.0': + '@rollup/rollup-win32-arm64-msvc@4.36.0': optional: true '@rollup/rollup-win32-ia32-msvc@4.18.0': optional: true - '@rollup/rollup-win32-ia32-msvc@4.24.0': + '@rollup/rollup-win32-ia32-msvc@4.36.0': optional: true '@rollup/rollup-win32-x64-msvc@4.18.0': optional: true - '@rollup/rollup-win32-x64-msvc@4.24.0': + '@rollup/rollup-win32-x64-msvc@4.36.0': optional: true '@sentry-internal/browser-utils@8.35.0': @@ -12458,7 +12594,7 @@ snapshots: '@babel/core': 7.24.6 '@sentry/babel-plugin-component-annotate': 2.22.3 '@sentry/cli': 2.38.0(encoding@0.1.13) - dotenv: 16.4.5 + dotenv: 16.4.7 find-up: 5.0.0 glob: 9.3.5 magic-string: 0.30.8 @@ -12512,7 +12648,7 @@ snapshots: '@sentry/types': 8.35.0 '@sentry/utils': 8.35.0 - '@sentry/nextjs@8.35.0(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.26.0(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.53.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.26.0(@opentelemetry/api@1.9.0))(encoding@0.1.13)(next@15.0.0(@babel/core@7.24.6)(@opentelemetry/api@1.9.0)(@playwright/test@1.44.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)(webpack@5.91.0(@swc/core@1.5.24(@swc/helpers@0.5.13))(esbuild@0.21.5))': + '@sentry/nextjs@8.35.0(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.26.0(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.53.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.26.0(@opentelemetry/api@1.9.0))(encoding@0.1.13)(next@15.0.0(@babel/core@7.24.6)(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)(webpack@5.98.0(@swc/core@1.11.11(@swc/helpers@0.5.13))(esbuild@0.21.5))': dependencies: '@opentelemetry/instrumentation-http': 0.53.0(@opentelemetry/api@1.9.0) '@opentelemetry/semantic-conventions': 1.27.0 @@ -12525,14 +12661,14 @@ snapshots: '@sentry/types': 8.35.0 '@sentry/utils': 8.35.0 '@sentry/vercel-edge': 8.35.0 - '@sentry/webpack-plugin': 2.22.3(encoding@0.1.13)(webpack@5.91.0(@swc/core@1.5.24(@swc/helpers@0.5.13))(esbuild@0.21.5)) + '@sentry/webpack-plugin': 2.22.3(encoding@0.1.13)(webpack@5.98.0(@swc/core@1.11.11(@swc/helpers@0.5.13))(esbuild@0.21.5)) chalk: 3.0.0 - next: 15.0.0(@babel/core@7.24.6)(@opentelemetry/api@1.9.0)(@playwright/test@1.44.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + next: 15.0.0(@babel/core@7.24.6)(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) resolve: 1.22.8 rollup: 3.29.5 stacktrace-parser: 0.1.10 optionalDependencies: - webpack: 5.91.0(@swc/core@1.5.24(@swc/helpers@0.5.13))(esbuild@0.21.5) + webpack: 5.98.0(@swc/core@1.11.11(@swc/helpers@0.5.13))(esbuild@0.21.5) transitivePeerDependencies: - '@opentelemetry/api' - '@opentelemetry/core' @@ -12614,12 +12750,12 @@ snapshots: '@sentry/types': 8.35.0 '@sentry/utils': 8.35.0 - '@sentry/webpack-plugin@2.22.3(encoding@0.1.13)(webpack@5.91.0(@swc/core@1.5.24(@swc/helpers@0.5.13))(esbuild@0.21.5))': + '@sentry/webpack-plugin@2.22.3(encoding@0.1.13)(webpack@5.98.0(@swc/core@1.11.11(@swc/helpers@0.5.13))(esbuild@0.21.5))': dependencies: '@sentry/bundler-plugin-core': 2.22.3(encoding@0.1.13) unplugin: 1.0.1 uuid: 9.0.1 - webpack: 5.91.0(@swc/core@1.5.24(@swc/helpers@0.5.13))(esbuild@0.21.5) + webpack: 5.98.0(@swc/core@1.11.11(@swc/helpers@0.5.13))(esbuild@0.21.5) transitivePeerDependencies: - encoding - supports-color @@ -12674,13 +12810,13 @@ snapshots: '@sigstore/bundle@2.3.2': dependencies: - '@sigstore/protobuf-specs': 0.3.2 + '@sigstore/protobuf-specs': 0.3.3 '@sigstore/core@1.1.0': {} '@sigstore/protobuf-specs@0.2.1': {} - '@sigstore/protobuf-specs@0.3.2': {} + '@sigstore/protobuf-specs@0.3.3': {} '@sigstore/sign@1.0.0': dependencies: @@ -12694,7 +12830,7 @@ snapshots: dependencies: '@sigstore/bundle': 2.3.2 '@sigstore/core': 1.1.0 - '@sigstore/protobuf-specs': 0.3.2 + '@sigstore/protobuf-specs': 0.3.3 make-fetch-happen: 13.0.1 proc-log: 4.2.0 promise-retry: 2.0.1 @@ -12710,7 +12846,7 @@ snapshots: '@sigstore/tuf@2.3.4': dependencies: - '@sigstore/protobuf-specs': 0.3.2 + '@sigstore/protobuf-specs': 0.3.3 tuf-js: 2.2.1 transitivePeerDependencies: - supports-color @@ -12719,7 +12855,7 @@ snapshots: dependencies: '@sigstore/bundle': 2.3.2 '@sigstore/core': 1.1.0 - '@sigstore/protobuf-specs': 0.3.2 + '@sigstore/protobuf-specs': 0.3.3 '@sinclair/typebox@0.27.8': {} @@ -12731,345 +12867,249 @@ snapshots: dependencies: '@sinonjs/commons': 3.0.1 - '@storybook/addon-a11y@8.3.6(storybook@8.3.6)': + '@storybook/addon-a11y@8.6.7(storybook@8.6.7(prettier@3.5.3))': dependencies: - '@storybook/addon-highlight': 8.3.6(storybook@8.3.6) - axe-core: 4.9.1 - storybook: 8.3.6 + '@storybook/addon-highlight': 8.6.7(storybook@8.6.7(prettier@3.5.3)) + '@storybook/global': 5.0.0 + '@storybook/test': 8.6.7(storybook@8.6.7(prettier@3.5.3)) + axe-core: 4.10.3 + storybook: 8.6.7(prettier@3.5.3) - '@storybook/addon-actions@8.3.6(storybook@8.3.6)': + '@storybook/addon-actions@8.6.7(storybook@8.6.7(prettier@3.5.3))': dependencies: '@storybook/global': 5.0.0 '@types/uuid': 9.0.8 dequal: 2.0.3 polished: 4.3.1 - storybook: 8.3.6 + storybook: 8.6.7(prettier@3.5.3) uuid: 9.0.1 - '@storybook/addon-backgrounds@8.3.6(storybook@8.3.6)': + '@storybook/addon-backgrounds@8.6.7(storybook@8.6.7(prettier@3.5.3))': dependencies: '@storybook/global': 5.0.0 memoizerific: 1.11.3 - storybook: 8.3.6 + storybook: 8.6.7(prettier@3.5.3) ts-dedent: 2.2.0 - '@storybook/addon-controls@8.3.6(storybook@8.3.6)': + '@storybook/addon-controls@8.6.7(storybook@8.6.7(prettier@3.5.3))': dependencies: '@storybook/global': 5.0.0 dequal: 2.0.3 - lodash: 4.17.21 - storybook: 8.3.6 + storybook: 8.6.7(prettier@3.5.3) ts-dedent: 2.2.0 - '@storybook/addon-docs@8.3.6(storybook@8.3.6)': + '@storybook/addon-docs@8.6.7(@types/react@18.3.11)(storybook@8.6.7(prettier@3.5.3))': dependencies: - '@mdx-js/react': 3.0.1(@types/react@18.3.11)(react@18.3.1) - '@storybook/blocks': 8.3.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.3.6) - '@storybook/csf-plugin': 8.3.6(storybook@8.3.6) - '@storybook/global': 5.0.0 - '@storybook/react-dom-shim': 8.3.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.3.6) - '@types/react': 18.3.11 - fs-extra: 11.2.0 + '@mdx-js/react': 3.1.0(@types/react@18.3.11)(react@18.3.1) + '@storybook/blocks': 8.6.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.6.7(prettier@3.5.3)) + '@storybook/csf-plugin': 8.6.7(storybook@8.6.7(prettier@3.5.3)) + '@storybook/react-dom-shim': 8.6.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.6.7(prettier@3.5.3)) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - rehype-external-links: 3.0.0 - rehype-slug: 6.0.0 - storybook: 8.3.6 + storybook: 8.6.7(prettier@3.5.3) ts-dedent: 2.2.0 + transitivePeerDependencies: + - '@types/react' - '@storybook/addon-essentials@8.3.6(storybook@8.3.6)': - dependencies: - '@storybook/addon-actions': 8.3.6(storybook@8.3.6) - '@storybook/addon-backgrounds': 8.3.6(storybook@8.3.6) - '@storybook/addon-controls': 8.3.6(storybook@8.3.6) - '@storybook/addon-docs': 8.3.6(storybook@8.3.6) - '@storybook/addon-highlight': 8.3.6(storybook@8.3.6) - '@storybook/addon-measure': 8.3.6(storybook@8.3.6) - '@storybook/addon-outline': 8.3.6(storybook@8.3.6) - '@storybook/addon-toolbars': 8.3.6(storybook@8.3.6) - '@storybook/addon-viewport': 8.3.6(storybook@8.3.6) - storybook: 8.3.6 + '@storybook/addon-essentials@8.6.7(@types/react@18.3.11)(storybook@8.6.7(prettier@3.5.3))': + dependencies: + '@storybook/addon-actions': 8.6.7(storybook@8.6.7(prettier@3.5.3)) + '@storybook/addon-backgrounds': 8.6.7(storybook@8.6.7(prettier@3.5.3)) + '@storybook/addon-controls': 8.6.7(storybook@8.6.7(prettier@3.5.3)) + '@storybook/addon-docs': 8.6.7(@types/react@18.3.11)(storybook@8.6.7(prettier@3.5.3)) + '@storybook/addon-highlight': 8.6.7(storybook@8.6.7(prettier@3.5.3)) + '@storybook/addon-measure': 8.6.7(storybook@8.6.7(prettier@3.5.3)) + '@storybook/addon-outline': 8.6.7(storybook@8.6.7(prettier@3.5.3)) + '@storybook/addon-toolbars': 8.6.7(storybook@8.6.7(prettier@3.5.3)) + '@storybook/addon-viewport': 8.6.7(storybook@8.6.7(prettier@3.5.3)) + storybook: 8.6.7(prettier@3.5.3) ts-dedent: 2.2.0 + transitivePeerDependencies: + - '@types/react' - '@storybook/addon-highlight@8.3.6(storybook@8.3.6)': + '@storybook/addon-highlight@8.6.7(storybook@8.6.7(prettier@3.5.3))': dependencies: '@storybook/global': 5.0.0 - storybook: 8.3.6 + storybook: 8.6.7(prettier@3.5.3) - '@storybook/addon-interactions@8.3.6(storybook@8.3.6)': + '@storybook/addon-interactions@8.6.7(storybook@8.6.7(prettier@3.5.3))': dependencies: '@storybook/global': 5.0.0 - '@storybook/instrumenter': 8.3.6(storybook@8.3.6) - '@storybook/test': 8.3.6(storybook@8.3.6) + '@storybook/instrumenter': 8.6.7(storybook@8.6.7(prettier@3.5.3)) + '@storybook/test': 8.6.7(storybook@8.6.7(prettier@3.5.3)) polished: 4.3.1 - storybook: 8.3.6 + storybook: 8.6.7(prettier@3.5.3) ts-dedent: 2.2.0 - '@storybook/addon-links@8.3.6(react@18.3.1)(storybook@8.3.6)': + '@storybook/addon-links@8.6.7(react@18.3.1)(storybook@8.6.7(prettier@3.5.3))': dependencies: - '@storybook/csf': 0.1.11 '@storybook/global': 5.0.0 - storybook: 8.3.6 + storybook: 8.6.7(prettier@3.5.3) ts-dedent: 2.2.0 optionalDependencies: react: 18.3.1 - '@storybook/addon-measure@8.3.6(storybook@8.3.6)': + '@storybook/addon-measure@8.6.7(storybook@8.6.7(prettier@3.5.3))': dependencies: '@storybook/global': 5.0.0 - storybook: 8.3.6 + storybook: 8.6.7(prettier@3.5.3) tiny-invariant: 1.3.3 - '@storybook/addon-outline@8.3.6(storybook@8.3.6)': + '@storybook/addon-outline@8.6.7(storybook@8.6.7(prettier@3.5.3))': dependencies: '@storybook/global': 5.0.0 - storybook: 8.3.6 + storybook: 8.6.7(prettier@3.5.3) ts-dedent: 2.2.0 - '@storybook/addon-storysource@8.3.6(storybook@8.3.6)': + '@storybook/addon-storysource@8.6.7(storybook@8.6.7(prettier@3.5.3))': dependencies: - '@storybook/source-loader': 8.3.6(storybook@8.3.6) + '@storybook/source-loader': 8.6.7(storybook@8.6.7(prettier@3.5.3)) estraverse: 5.3.0 - storybook: 8.3.6 + storybook: 8.6.7(prettier@3.5.3) tiny-invariant: 1.3.3 - '@storybook/addon-toolbars@8.3.6(storybook@8.3.6)': + '@storybook/addon-toolbars@8.6.7(storybook@8.6.7(prettier@3.5.3))': dependencies: - storybook: 8.3.6 + storybook: 8.6.7(prettier@3.5.3) - '@storybook/addon-viewport@8.3.6(storybook@8.3.6)': + '@storybook/addon-viewport@8.6.7(storybook@8.6.7(prettier@3.5.3))': dependencies: memoizerific: 1.11.3 - storybook: 8.3.6 + storybook: 8.6.7(prettier@3.5.3) - '@storybook/blocks@8.3.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.3.6)': + '@storybook/blocks@8.6.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.6.7(prettier@3.5.3))': dependencies: - '@storybook/csf': 0.1.11 - '@storybook/global': 5.0.0 - '@storybook/icons': 1.2.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@types/lodash': 4.17.4 - color-convert: 2.0.1 - dequal: 2.0.3 - lodash: 4.17.21 - markdown-to-jsx: 7.5.0(react@18.3.1) - memoizerific: 1.11.3 - polished: 4.3.1 - react-colorful: 5.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - storybook: 8.3.6 - telejson: 7.2.0 + '@storybook/icons': 1.4.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + storybook: 8.6.7(prettier@3.5.3) ts-dedent: 2.2.0 - util-deprecate: 1.0.2 optionalDependencies: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@storybook/builder-vite@8.3.6(storybook@8.3.6)(typescript@5.5.2)(vite@5.4.9(@types/node@20.14.9)(lightningcss@1.27.0)(terser@5.31.0))': + '@storybook/builder-vite@8.6.7(storybook@8.6.7(prettier@3.5.3))(vite@5.4.9(@types/node@20.14.9)(lightningcss@1.27.0)(terser@5.39.0))': dependencies: - '@storybook/csf-plugin': 8.3.6(storybook@8.3.6) - '@types/find-cache-dir': 3.2.1 + '@storybook/csf-plugin': 8.6.7(storybook@8.6.7(prettier@3.5.3)) browser-assert: 1.2.1 - es-module-lexer: 1.5.3 - express: 4.19.2 - find-cache-dir: 3.3.2 - fs-extra: 11.2.0 - magic-string: 0.30.10 - storybook: 8.3.6 + storybook: 8.6.7(prettier@3.5.3) ts-dedent: 2.2.0 - vite: 5.4.9(@types/node@20.14.9)(lightningcss@1.27.0)(terser@5.31.0) - optionalDependencies: - typescript: 5.5.2 - transitivePeerDependencies: - - supports-color + vite: 5.4.9(@types/node@20.14.9)(lightningcss@1.27.0)(terser@5.39.0) - '@storybook/builder-webpack5@8.3.6(@swc/core@1.5.24(@swc/helpers@0.5.13))(esbuild@0.21.5)(storybook@8.3.6)(typescript@5.5.2)': + '@storybook/builder-webpack5@8.6.7(@swc/core@1.11.11(@swc/helpers@0.5.13))(esbuild@0.21.5)(storybook@8.6.7(prettier@3.5.3))(typescript@5.5.2)': dependencies: - '@storybook/core-webpack': 8.3.6(storybook@8.3.6) - '@types/node': 22.7.8 + '@storybook/core-webpack': 8.6.7(storybook@8.6.7(prettier@3.5.3)) '@types/semver': 7.5.8 browser-assert: 1.2.1 case-sensitive-paths-webpack-plugin: 2.4.0 - cjs-module-lexer: 1.3.1 + cjs-module-lexer: 1.4.3 constants-browserify: 1.0.0 - css-loader: 6.11.0(webpack@5.91.0(@swc/core@1.5.24(@swc/helpers@0.5.13))(esbuild@0.21.5)) - es-module-lexer: 1.5.3 - express: 4.19.2 - fork-ts-checker-webpack-plugin: 8.0.0(typescript@5.5.2)(webpack@5.91.0(@swc/core@1.5.24(@swc/helpers@0.5.13))(esbuild@0.21.5)) - fs-extra: 11.2.0 - html-webpack-plugin: 5.6.0(webpack@5.91.0(@swc/core@1.5.24(@swc/helpers@0.5.13))(esbuild@0.21.5)) - magic-string: 0.30.10 + css-loader: 6.11.0(webpack@5.98.0(@swc/core@1.11.11(@swc/helpers@0.5.13))(esbuild@0.21.5)) + es-module-lexer: 1.6.0 + fork-ts-checker-webpack-plugin: 8.0.0(typescript@5.5.2)(webpack@5.98.0(@swc/core@1.11.11(@swc/helpers@0.5.13))(esbuild@0.21.5)) + html-webpack-plugin: 5.6.3(webpack@5.98.0(@swc/core@1.11.11(@swc/helpers@0.5.13))(esbuild@0.21.5)) + magic-string: 0.30.17 path-browserify: 1.0.1 process: 0.11.10 - semver: 7.6.3 - storybook: 8.3.6 - style-loader: 3.3.4(webpack@5.91.0(@swc/core@1.5.24(@swc/helpers@0.5.13))(esbuild@0.21.5)) - terser-webpack-plugin: 5.3.10(@swc/core@1.5.24(@swc/helpers@0.5.13))(esbuild@0.21.5)(webpack@5.91.0(@swc/core@1.5.24(@swc/helpers@0.5.13))(esbuild@0.21.5)) + semver: 7.7.1 + storybook: 8.6.7(prettier@3.5.3) + style-loader: 3.3.4(webpack@5.98.0(@swc/core@1.11.11(@swc/helpers@0.5.13))(esbuild@0.21.5)) + terser-webpack-plugin: 5.3.14(@swc/core@1.11.11(@swc/helpers@0.5.13))(esbuild@0.21.5)(webpack@5.98.0(@swc/core@1.11.11(@swc/helpers@0.5.13))(esbuild@0.21.5)) ts-dedent: 2.2.0 - url: 0.11.3 + url: 0.11.4 util: 0.12.5 util-deprecate: 1.0.2 - webpack: 5.91.0(@swc/core@1.5.24(@swc/helpers@0.5.13))(esbuild@0.21.5) - webpack-dev-middleware: 6.1.3(webpack@5.91.0(@swc/core@1.5.24(@swc/helpers@0.5.13))(esbuild@0.21.5)) + webpack: 5.98.0(@swc/core@1.11.11(@swc/helpers@0.5.13))(esbuild@0.21.5) + webpack-dev-middleware: 6.1.3(webpack@5.98.0(@swc/core@1.11.11(@swc/helpers@0.5.13))(esbuild@0.21.5)) webpack-hot-middleware: 2.26.1 - webpack-virtual-modules: 0.6.1 + webpack-virtual-modules: 0.6.2 optionalDependencies: typescript: 5.5.2 transitivePeerDependencies: - '@rspack/core' - '@swc/core' - esbuild - - supports-color - uglify-js - webpack-cli - '@storybook/channels@8.1.5': + '@storybook/components@8.6.7(storybook@8.6.7(prettier@3.5.3))': dependencies: - '@storybook/client-logger': 8.1.5 - '@storybook/core-events': 8.1.5 - '@storybook/global': 5.0.0 - telejson: 7.2.0 - tiny-invariant: 1.3.3 + storybook: 8.6.7(prettier@3.5.3) - '@storybook/client-logger@8.1.5': + '@storybook/core-common@8.6.7(storybook@8.6.7(prettier@3.5.3))': dependencies: - '@storybook/global': 5.0.0 + storybook: 8.6.7(prettier@3.5.3) - '@storybook/components@8.3.6(storybook@8.3.6)': + '@storybook/core-webpack@8.6.7(storybook@8.6.7(prettier@3.5.3))': dependencies: - storybook: 8.3.6 + storybook: 8.6.7(prettier@3.5.3) + ts-dedent: 2.2.0 - '@storybook/core-common@8.1.5(encoding@0.1.13)(prettier@3.3.3)': + '@storybook/core@8.6.7(prettier@3.5.3)(storybook@8.6.7(prettier@3.5.3))': dependencies: - '@storybook/core-events': 8.1.5 - '@storybook/csf-tools': 8.1.5 - '@storybook/node-logger': 8.1.5 - '@storybook/types': 8.1.5 - '@yarnpkg/fslib': 2.10.3 - '@yarnpkg/libzip': 2.3.0 - chalk: 4.1.2 - cross-spawn: 7.0.3 - esbuild: 0.20.2 - esbuild-register: 3.5.0(esbuild@0.20.2) - execa: 5.1.1 - file-system-cache: 2.3.0 - find-cache-dir: 3.3.2 - find-up: 5.0.0 - fs-extra: 11.2.0 - glob: 10.4.1 - handlebars: 4.7.8 - lazy-universal-dotenv: 4.0.0 - node-fetch: 2.7.0(encoding@0.1.13) - picomatch: 2.3.1 - pkg-dir: 5.0.0 - prettier-fallback: prettier@3.3.3 - pretty-hrtime: 1.0.3 - resolve-from: 5.0.0 - semver: 7.6.2 - tempy: 3.1.0 - tiny-invariant: 1.3.3 - ts-dedent: 2.2.0 - util: 0.12.5 - optionalDependencies: - prettier: 3.3.3 - transitivePeerDependencies: - - encoding - - supports-color - - '@storybook/core-events@8.1.5': - dependencies: - '@storybook/csf': 0.1.8 - ts-dedent: 2.2.0 - - '@storybook/core-webpack@8.3.6(storybook@8.3.6)': - dependencies: - '@types/node': 22.7.8 - storybook: 8.3.6 - ts-dedent: 2.2.0 - - '@storybook/core@8.3.6': - dependencies: - '@storybook/csf': 0.1.11 - '@types/express': 4.17.21 + '@storybook/theming': 8.6.7(storybook@8.6.7(prettier@3.5.3)) better-opn: 3.0.2 browser-assert: 1.2.1 - esbuild: 0.21.5 - esbuild-register: 3.5.0(esbuild@0.21.5) - express: 4.19.2 + esbuild: 0.25.1 + esbuild-register: 3.6.0(esbuild@0.25.1) jsdoc-type-pratt-parser: 4.1.0 process: 0.11.10 - recast: 0.23.9 - semver: 7.6.3 + recast: 0.23.11 + semver: 7.7.1 util: 0.12.5 - ws: 8.17.0 + ws: 8.18.1 + optionalDependencies: + prettier: 3.5.3 transitivePeerDependencies: - bufferutil + - storybook - supports-color - utf-8-validate - '@storybook/csf-plugin@8.3.6(storybook@8.3.6)': + '@storybook/csf-plugin@8.6.7(storybook@8.6.7(prettier@3.5.3))': dependencies: - storybook: 8.3.6 - unplugin: 1.10.1 + storybook: 8.6.7(prettier@3.5.3) + unplugin: 1.16.1 - '@storybook/csf-tools@8.1.5': + '@storybook/csf-tools@8.6.7(storybook@8.6.7(prettier@3.5.3))': dependencies: - '@babel/generator': 7.24.6 - '@babel/parser': 7.24.6 - '@babel/traverse': 7.24.6 - '@babel/types': 7.24.6 - '@storybook/csf': 0.1.8 - '@storybook/types': 8.1.5 - fs-extra: 11.2.0 - recast: 0.23.9 - ts-dedent: 2.2.0 - transitivePeerDependencies: - - supports-color + storybook: 8.6.7(prettier@3.5.3) - '@storybook/csf@0.1.11': - dependencies: - type-fest: 2.19.0 - - '@storybook/csf@0.1.8': + '@storybook/csf@0.1.13': dependencies: type-fest: 2.19.0 '@storybook/global@5.0.0': {} - '@storybook/icons@1.2.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@storybook/icons@1.4.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@storybook/instrumenter@8.3.6(storybook@8.3.6)': + '@storybook/instrumenter@8.6.7(storybook@8.6.7(prettier@3.5.3))': dependencies: '@storybook/global': 5.0.0 - '@vitest/utils': 2.1.3 - storybook: 8.3.6 - util: 0.12.5 + '@vitest/utils': 2.1.9 + storybook: 8.6.7(prettier@3.5.3) - '@storybook/manager-api@8.3.6(storybook@8.3.6)': + '@storybook/manager-api@8.6.7(storybook@8.6.7(prettier@3.5.3))': dependencies: - storybook: 8.3.6 - - '@storybook/node-logger@8.1.5': {} + storybook: 8.6.7(prettier@3.5.3) - '@storybook/preset-react-webpack@8.3.6(@storybook/test@8.3.6(storybook@8.3.6))(@swc/core@1.5.24(@swc/helpers@0.5.13))(esbuild@0.21.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.3.6)(typescript@5.5.2)': + '@storybook/preset-react-webpack@8.6.7(@storybook/test@8.6.7(storybook@8.6.7(prettier@3.5.3)))(@swc/core@1.11.11(@swc/helpers@0.5.13))(esbuild@0.21.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.6.7(prettier@3.5.3))(typescript@5.5.2)': dependencies: - '@storybook/core-webpack': 8.3.6(storybook@8.3.6) - '@storybook/react': 8.3.6(@storybook/test@8.3.6(storybook@8.3.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.3.6)(typescript@5.5.2) - '@storybook/react-docgen-typescript-plugin': 1.0.6--canary.9.0c3f3b7.0(typescript@5.5.2)(webpack@5.91.0(@swc/core@1.5.24(@swc/helpers@0.5.13))(esbuild@0.21.5)) - '@types/node': 22.7.8 + '@storybook/core-webpack': 8.6.7(storybook@8.6.7(prettier@3.5.3)) + '@storybook/react': 8.6.7(@storybook/test@8.6.7(storybook@8.6.7(prettier@3.5.3)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.6.7(prettier@3.5.3))(typescript@5.5.2) + '@storybook/react-docgen-typescript-plugin': 1.0.6--canary.9.0c3f3b7.0(typescript@5.5.2)(webpack@5.98.0(@swc/core@1.11.11(@swc/helpers@0.5.13))(esbuild@0.21.5)) '@types/semver': 7.5.8 find-up: 5.0.0 - fs-extra: 11.2.0 - magic-string: 0.30.10 + magic-string: 0.30.17 react: 18.3.1 - react-docgen: 7.0.3 + react-docgen: 7.1.1 react-dom: 18.3.1(react@18.3.1) - resolve: 1.22.8 - semver: 7.6.3 - storybook: 8.3.6 + resolve: 1.22.10 + semver: 7.7.1 + storybook: 8.6.7(prettier@3.5.3) tsconfig-paths: 4.2.0 - webpack: 5.91.0(@swc/core@1.5.24(@swc/helpers@0.5.13))(esbuild@0.21.5) + webpack: 5.98.0(@swc/core@1.11.11(@swc/helpers@0.5.13))(esbuild@0.21.5) optionalDependencies: typescript: 5.5.2 transitivePeerDependencies: @@ -13080,79 +13120,60 @@ snapshots: - uglify-js - webpack-cli - '@storybook/preview-api@8.1.5': + '@storybook/preview-api@8.6.7(storybook@8.6.7(prettier@3.5.3))': dependencies: - '@storybook/channels': 8.1.5 - '@storybook/client-logger': 8.1.5 - '@storybook/core-events': 8.1.5 - '@storybook/csf': 0.1.8 - '@storybook/global': 5.0.0 - '@storybook/types': 8.1.5 - '@types/qs': 6.9.15 - dequal: 2.0.3 - lodash: 4.17.21 - memoizerific: 1.11.3 - qs: 6.12.1 - tiny-invariant: 1.3.3 - ts-dedent: 2.2.0 - util-deprecate: 1.0.2 + storybook: 8.6.7(prettier@3.5.3) - '@storybook/preview-api@8.3.6(storybook@8.3.6)': + '@storybook/react-docgen-typescript-plugin@1.0.6--canary.9.0c3f3b7.0(typescript@5.5.2)(webpack@5.98.0(@swc/core@1.11.11(@swc/helpers@0.5.13))(esbuild@0.21.5))': dependencies: - storybook: 8.3.6 - - '@storybook/react-docgen-typescript-plugin@1.0.6--canary.9.0c3f3b7.0(typescript@5.5.2)(webpack@5.91.0(@swc/core@1.5.24(@swc/helpers@0.5.13))(esbuild@0.21.5))': - dependencies: - debug: 4.3.7 + debug: 4.4.0 endent: 2.1.0 find-cache-dir: 3.3.2 flat-cache: 3.2.0 - micromatch: 4.0.7 + micromatch: 4.0.8 react-docgen-typescript: 2.2.2(typescript@5.5.2) tslib: 2.6.3 typescript: 5.5.2 - webpack: 5.91.0(@swc/core@1.5.24(@swc/helpers@0.5.13))(esbuild@0.21.5) + webpack: 5.98.0(@swc/core@1.11.11(@swc/helpers@0.5.13))(esbuild@0.21.5) transitivePeerDependencies: - supports-color - '@storybook/react-dom-shim@8.3.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.3.6)': + '@storybook/react-dom-shim@8.6.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.6.7(prettier@3.5.3))': dependencies: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - storybook: 8.3.6 + storybook: 8.6.7(prettier@3.5.3) - '@storybook/react-vite@8.3.6(@storybook/test@8.3.6(storybook@8.3.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.24.0)(storybook@8.3.6)(typescript@5.5.2)(vite@5.4.9(@types/node@20.14.9)(lightningcss@1.27.0)(terser@5.31.0))': + '@storybook/react-vite@8.6.7(@storybook/test@8.6.7(storybook@8.6.7(prettier@3.5.3)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.36.0)(storybook@8.6.7(prettier@3.5.3))(typescript@5.5.2)(vite@5.4.9(@types/node@20.14.9)(lightningcss@1.27.0)(terser@5.39.0))': dependencies: - '@joshwooding/vite-plugin-react-docgen-typescript': 0.3.0(typescript@5.5.2)(vite@5.4.9(@types/node@20.14.9)(lightningcss@1.27.0)(terser@5.31.0)) - '@rollup/pluginutils': 5.1.0(rollup@4.24.0) - '@storybook/builder-vite': 8.3.6(storybook@8.3.6)(typescript@5.5.2)(vite@5.4.9(@types/node@20.14.9)(lightningcss@1.27.0)(terser@5.31.0)) - '@storybook/react': 8.3.6(@storybook/test@8.3.6(storybook@8.3.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.3.6)(typescript@5.5.2) + '@joshwooding/vite-plugin-react-docgen-typescript': 0.5.0(typescript@5.5.2)(vite@5.4.9(@types/node@20.14.9)(lightningcss@1.27.0)(terser@5.39.0)) + '@rollup/pluginutils': 5.1.4(rollup@4.36.0) + '@storybook/builder-vite': 8.6.7(storybook@8.6.7(prettier@3.5.3))(vite@5.4.9(@types/node@20.14.9)(lightningcss@1.27.0)(terser@5.39.0)) + '@storybook/react': 8.6.7(@storybook/test@8.6.7(storybook@8.6.7(prettier@3.5.3)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.6.7(prettier@3.5.3))(typescript@5.5.2) find-up: 5.0.0 - magic-string: 0.30.10 + magic-string: 0.30.17 react: 18.3.1 - react-docgen: 7.0.3 + react-docgen: 7.1.1 react-dom: 18.3.1(react@18.3.1) - resolve: 1.22.8 - storybook: 8.3.6 + resolve: 1.22.10 + storybook: 8.6.7(prettier@3.5.3) tsconfig-paths: 4.2.0 - vite: 5.4.9(@types/node@20.14.9)(lightningcss@1.27.0)(terser@5.31.0) + vite: 5.4.9(@types/node@20.14.9)(lightningcss@1.27.0)(terser@5.39.0) + optionalDependencies: + '@storybook/test': 8.6.7(storybook@8.6.7(prettier@3.5.3)) transitivePeerDependencies: - - '@preact/preset-vite' - - '@storybook/test' - rollup - supports-color - typescript - - vite-plugin-glimmerx - '@storybook/react-webpack5@8.3.6(@storybook/test@8.3.6(storybook@8.3.6))(@swc/core@1.5.24(@swc/helpers@0.5.13))(esbuild@0.21.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.3.6)(typescript@5.5.2)': + '@storybook/react-webpack5@8.6.7(@storybook/test@8.6.7(storybook@8.6.7(prettier@3.5.3)))(@swc/core@1.11.11(@swc/helpers@0.5.13))(esbuild@0.21.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.6.7(prettier@3.5.3))(typescript@5.5.2)': dependencies: - '@storybook/builder-webpack5': 8.3.6(@swc/core@1.5.24(@swc/helpers@0.5.13))(esbuild@0.21.5)(storybook@8.3.6)(typescript@5.5.2) - '@storybook/preset-react-webpack': 8.3.6(@storybook/test@8.3.6(storybook@8.3.6))(@swc/core@1.5.24(@swc/helpers@0.5.13))(esbuild@0.21.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.3.6)(typescript@5.5.2) - '@storybook/react': 8.3.6(@storybook/test@8.3.6(storybook@8.3.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.3.6)(typescript@5.5.2) - '@types/node': 22.7.8 + '@storybook/builder-webpack5': 8.6.7(@swc/core@1.11.11(@swc/helpers@0.5.13))(esbuild@0.21.5)(storybook@8.6.7(prettier@3.5.3))(typescript@5.5.2) + '@storybook/preset-react-webpack': 8.6.7(@storybook/test@8.6.7(storybook@8.6.7(prettier@3.5.3)))(@swc/core@1.11.11(@swc/helpers@0.5.13))(esbuild@0.21.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.6.7(prettier@3.5.3))(typescript@5.5.2) + '@storybook/react': 8.6.7(@storybook/test@8.6.7(storybook@8.6.7(prettier@3.5.3)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.6.7(prettier@3.5.3))(typescript@5.5.2) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - storybook: 8.3.6 + storybook: 8.6.7(prettier@3.5.3) optionalDependencies: typescript: 5.5.2 transitivePeerDependencies: @@ -13164,56 +13185,41 @@ snapshots: - uglify-js - webpack-cli - '@storybook/react@8.3.6(@storybook/test@8.3.6(storybook@8.3.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.3.6)(typescript@5.5.2)': + '@storybook/react@8.6.7(@storybook/test@8.6.7(storybook@8.6.7(prettier@3.5.3)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.6.7(prettier@3.5.3))(typescript@5.5.2)': dependencies: - '@storybook/components': 8.3.6(storybook@8.3.6) + '@storybook/components': 8.6.7(storybook@8.6.7(prettier@3.5.3)) '@storybook/global': 5.0.0 - '@storybook/manager-api': 8.3.6(storybook@8.3.6) - '@storybook/preview-api': 8.3.6(storybook@8.3.6) - '@storybook/react-dom-shim': 8.3.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.3.6) - '@storybook/theming': 8.3.6(storybook@8.3.6) - '@types/escodegen': 0.0.6 - '@types/estree': 0.0.51 - '@types/node': 22.7.8 - acorn: 7.4.1 - acorn-jsx: 5.3.2(acorn@7.4.1) - acorn-walk: 7.2.0 - escodegen: 2.1.0 - html-tags: 3.3.1 - prop-types: 15.8.1 + '@storybook/manager-api': 8.6.7(storybook@8.6.7(prettier@3.5.3)) + '@storybook/preview-api': 8.6.7(storybook@8.6.7(prettier@3.5.3)) + '@storybook/react-dom-shim': 8.6.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.6.7(prettier@3.5.3)) + '@storybook/theming': 8.6.7(storybook@8.6.7(prettier@3.5.3)) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - react-element-to-jsx-string: 15.0.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - semver: 7.6.3 - storybook: 8.3.6 - ts-dedent: 2.2.0 - type-fest: 2.19.0 - util-deprecate: 1.0.2 + storybook: 8.6.7(prettier@3.5.3) optionalDependencies: - '@storybook/test': 8.3.6(storybook@8.3.6) + '@storybook/test': 8.6.7(storybook@8.6.7(prettier@3.5.3)) typescript: 5.5.2 - '@storybook/source-loader@8.3.6(storybook@8.3.6)': + '@storybook/source-loader@8.6.7(storybook@8.6.7(prettier@3.5.3))': dependencies: - '@storybook/csf': 0.1.11 + es-toolkit: 1.33.0 estraverse: 5.3.0 - lodash: 4.17.21 - prettier: 3.3.3 - storybook: 8.3.6 + prettier: 3.5.3 + storybook: 8.6.7(prettier@3.5.3) - '@storybook/test-runner@0.17.0(@swc/helpers@0.5.13)(@types/node@20.14.9)(encoding@0.1.13)(prettier@3.3.3)': + '@storybook/test-runner@0.17.0(@swc/helpers@0.5.13)(@types/node@20.14.9)(storybook@8.6.7(prettier@3.5.3))': dependencies: - '@babel/core': 7.24.6 - '@babel/generator': 7.24.6 - '@babel/template': 7.24.6 - '@babel/types': 7.24.6 + '@babel/core': 7.26.10 + '@babel/generator': 7.26.10 + '@babel/template': 7.26.9 + '@babel/types': 7.26.10 '@jest/types': 29.6.3 - '@storybook/core-common': 8.1.5(encoding@0.1.13)(prettier@3.3.3) - '@storybook/csf': 0.1.8 - '@storybook/csf-tools': 8.1.5 - '@storybook/preview-api': 8.1.5 - '@swc/core': 1.5.24(@swc/helpers@0.5.13) - '@swc/jest': 0.2.36(@swc/core@1.5.24(@swc/helpers@0.5.13)) + '@storybook/core-common': 8.6.7(storybook@8.6.7(prettier@3.5.3)) + '@storybook/csf': 0.1.13 + '@storybook/csf-tools': 8.6.7(storybook@8.6.7(prettier@3.5.3)) + '@storybook/preview-api': 8.6.7(storybook@8.6.7(prettier@3.5.3)) + '@swc/core': 1.11.11(@swc/helpers@0.5.13) + '@swc/jest': 0.2.37(@swc/core@1.11.11(@swc/helpers@0.5.13)) expect-playwright: 0.8.0 jest: 29.7.0(@types/node@20.14.9) jest-circus: 29.7.0 @@ -13223,86 +13229,77 @@ snapshots: jest-runner: 29.7.0 jest-serializer-html: 7.1.0 jest-watch-typeahead: 2.2.2(jest@29.7.0(@types/node@20.14.9)) - playwright: 1.44.1 + playwright: 1.51.1 transitivePeerDependencies: - '@swc/helpers' - '@types/node' - babel-plugin-macros - debug - - encoding - node-notifier - - prettier + - storybook - supports-color - ts-node - '@storybook/test@8.3.6(storybook@8.3.6)': + '@storybook/test@8.6.7(storybook@8.6.7(prettier@3.5.3))': dependencies: - '@storybook/csf': 0.1.11 '@storybook/global': 5.0.0 - '@storybook/instrumenter': 8.3.6(storybook@8.3.6) + '@storybook/instrumenter': 8.6.7(storybook@8.6.7(prettier@3.5.3)) '@testing-library/dom': 10.4.0 '@testing-library/jest-dom': 6.5.0 '@testing-library/user-event': 14.5.2(@testing-library/dom@10.4.0) '@vitest/expect': 2.0.5 '@vitest/spy': 2.0.5 - storybook: 8.3.6 - util: 0.12.5 + storybook: 8.6.7(prettier@3.5.3) - '@storybook/theming@8.3.6(storybook@8.3.6)': + '@storybook/theming@8.6.7(storybook@8.6.7(prettier@3.5.3))': dependencies: - storybook: 8.3.6 + storybook: 8.6.7(prettier@3.5.3) - '@storybook/types@8.1.5': - dependencies: - '@storybook/channels': 8.1.5 - '@types/express': 4.17.21 - file-system-cache: 2.3.0 - - '@swc/core-darwin-arm64@1.5.24': + '@swc/core-darwin-arm64@1.11.11': optional: true - '@swc/core-darwin-x64@1.5.24': + '@swc/core-darwin-x64@1.11.11': optional: true - '@swc/core-linux-arm-gnueabihf@1.5.24': + '@swc/core-linux-arm-gnueabihf@1.11.11': optional: true - '@swc/core-linux-arm64-gnu@1.5.24': + '@swc/core-linux-arm64-gnu@1.11.11': optional: true - '@swc/core-linux-arm64-musl@1.5.24': + '@swc/core-linux-arm64-musl@1.11.11': optional: true - '@swc/core-linux-x64-gnu@1.5.24': + '@swc/core-linux-x64-gnu@1.11.11': optional: true - '@swc/core-linux-x64-musl@1.5.24': + '@swc/core-linux-x64-musl@1.11.11': optional: true - '@swc/core-win32-arm64-msvc@1.5.24': + '@swc/core-win32-arm64-msvc@1.11.11': optional: true - '@swc/core-win32-ia32-msvc@1.5.24': + '@swc/core-win32-ia32-msvc@1.11.11': optional: true - '@swc/core-win32-x64-msvc@1.5.24': + '@swc/core-win32-x64-msvc@1.11.11': optional: true - '@swc/core@1.5.24(@swc/helpers@0.5.13)': + '@swc/core@1.11.11(@swc/helpers@0.5.13)': dependencies: '@swc/counter': 0.1.3 - '@swc/types': 0.1.7 + '@swc/types': 0.1.19 optionalDependencies: - '@swc/core-darwin-arm64': 1.5.24 - '@swc/core-darwin-x64': 1.5.24 - '@swc/core-linux-arm-gnueabihf': 1.5.24 - '@swc/core-linux-arm64-gnu': 1.5.24 - '@swc/core-linux-arm64-musl': 1.5.24 - '@swc/core-linux-x64-gnu': 1.5.24 - '@swc/core-linux-x64-musl': 1.5.24 - '@swc/core-win32-arm64-msvc': 1.5.24 - '@swc/core-win32-ia32-msvc': 1.5.24 - '@swc/core-win32-x64-msvc': 1.5.24 + '@swc/core-darwin-arm64': 1.11.11 + '@swc/core-darwin-x64': 1.11.11 + '@swc/core-linux-arm-gnueabihf': 1.11.11 + '@swc/core-linux-arm64-gnu': 1.11.11 + '@swc/core-linux-arm64-musl': 1.11.11 + '@swc/core-linux-x64-gnu': 1.11.11 + '@swc/core-linux-x64-musl': 1.11.11 + '@swc/core-win32-arm64-msvc': 1.11.11 + '@swc/core-win32-ia32-msvc': 1.11.11 + '@swc/core-win32-x64-msvc': 1.11.11 '@swc/helpers': 0.5.13 '@swc/counter@0.1.3': {} @@ -13315,14 +13312,14 @@ snapshots: dependencies: tslib: 2.6.3 - '@swc/jest@0.2.36(@swc/core@1.5.24(@swc/helpers@0.5.13))': + '@swc/jest@0.2.37(@swc/core@1.11.11(@swc/helpers@0.5.13))': dependencies: '@jest/create-cache-key-function': 29.7.0 - '@swc/core': 1.5.24(@swc/helpers@0.5.13) + '@swc/core': 1.11.11(@swc/helpers@0.5.13) '@swc/counter': 0.1.3 - jsonc-parser: 3.2.1 + jsonc-parser: 3.3.1 - '@swc/types@0.1.7': + '@swc/types@0.1.19': dependencies: '@swc/counter': 0.1.3 @@ -13352,8 +13349,8 @@ snapshots: '@testing-library/dom@10.4.0': dependencies: - '@babel/code-frame': 7.24.6 - '@babel/runtime': 7.24.6 + '@babel/code-frame': 7.26.2 + '@babel/runtime': 7.26.10 '@types/aria-query': 5.0.4 aria-query: 5.3.0 chalk: 4.1.2 @@ -13372,7 +13369,7 @@ snapshots: lz-string: 1.5.0 pretty-format: 27.5.1 - '@testing-library/jest-dom@6.4.6(@jest/globals@29.7.0)(jest@29.7.0(@types/node@20.14.9))(vitest@0.34.6(jsdom@23.0.0)(lightningcss@1.27.0)(playwright@1.44.1)(terser@5.31.0))': + '@testing-library/jest-dom@6.4.6(@jest/globals@29.7.0)(jest@29.7.0(@types/node@20.14.9))(vitest@0.34.6(jsdom@23.0.0)(lightningcss@1.27.0)(playwright@1.51.1)(terser@5.39.0))': dependencies: '@adobe/css-tools': 4.4.0 '@babel/runtime': 7.24.6 @@ -13385,12 +13382,12 @@ snapshots: optionalDependencies: '@jest/globals': 29.7.0 jest: 29.7.0(@types/node@20.14.9) - vitest: 0.34.6(jsdom@23.0.0)(lightningcss@1.27.0)(playwright@1.44.1)(terser@5.31.0) + vitest: 0.34.6(jsdom@23.0.0)(lightningcss@1.27.0)(playwright@1.51.1)(terser@5.39.0) '@testing-library/jest-dom@6.5.0': dependencies: - '@adobe/css-tools': 4.4.0 - aria-query: 5.3.0 + '@adobe/css-tools': 4.4.2 + aria-query: 5.3.2 chalk: 3.0.0 css.escape: 1.5.1 dom-accessibility-api: 0.6.3 @@ -13441,12 +13438,16 @@ snapshots: '@tufjs/models@1.0.4': dependencies: '@tufjs/canonical-json': 1.0.0 - minimatch: 9.0.4 + minimatch: 9.0.5 '@tufjs/models@2.0.1': dependencies: '@tufjs/canonical-json': 2.0.0 - minimatch: 9.0.4 + minimatch: 9.0.5 + + '@tybys/wasm-util@0.9.0': + dependencies: + tslib: 2.6.3 '@types/acorn@4.0.6': dependencies: @@ -13456,29 +13457,24 @@ snapshots: '@types/babel__core@7.20.5': dependencies: - '@babel/parser': 7.24.6 - '@babel/types': 7.24.6 + '@babel/parser': 7.26.10 + '@babel/types': 7.26.10 '@types/babel__generator': 7.6.8 '@types/babel__template': 7.4.4 '@types/babel__traverse': 7.20.6 '@types/babel__generator@7.6.8': dependencies: - '@babel/types': 7.24.6 + '@babel/types': 7.26.10 '@types/babel__template@7.4.4': dependencies: - '@babel/parser': 7.24.6 - '@babel/types': 7.24.6 + '@babel/parser': 7.26.10 + '@babel/types': 7.26.10 '@types/babel__traverse@7.20.6': dependencies: - '@babel/types': 7.24.6 - - '@types/body-parser@1.19.5': - dependencies: - '@types/connect': 3.4.38 - '@types/node': 20.14.9 + '@babel/types': 7.26.10 '@types/chai-subset@1.3.5': dependencies: @@ -13490,11 +13486,7 @@ snapshots: dependencies: '@types/node': 20.14.9 - '@types/connect@3.4.38': - dependencies: - '@types/node': 20.14.9 - - '@types/conventional-commits-parser@5.0.0': + '@types/conventional-commits-parser@5.0.1': dependencies: '@types/node': 20.14.9 optional: true @@ -13505,46 +13497,24 @@ snapshots: '@types/doctrine@0.0.9': {} - '@types/emscripten@1.39.13': {} - - '@types/escodegen@0.0.6': {} - '@types/eslint-scope@3.7.7': dependencies: - '@types/eslint': 8.56.10 - '@types/estree': 1.0.5 + '@types/eslint': 9.6.1 + '@types/estree': 1.0.6 - '@types/eslint@8.56.10': + '@types/eslint@9.6.1': dependencies: - '@types/estree': 1.0.5 + '@types/estree': 1.0.6 '@types/json-schema': 7.0.15 '@types/estree-jsx@1.0.5': dependencies: '@types/estree': 1.0.5 - '@types/estree@0.0.51': {} - '@types/estree@1.0.5': {} '@types/estree@1.0.6': {} - '@types/express-serve-static-core@4.19.3': - dependencies: - '@types/node': 20.14.9 - '@types/qs': 6.9.15 - '@types/range-parser': 1.2.7 - '@types/send': 0.17.4 - - '@types/express@4.17.21': - dependencies: - '@types/body-parser': 1.19.5 - '@types/express-serve-static-core': 4.19.3 - '@types/qs': 6.9.15 - '@types/serve-static': 1.15.7 - - '@types/find-cache-dir@3.2.1': {} - '@types/fined@1.1.5': {} '@types/fs-extra@11.0.1': @@ -13557,11 +13527,6 @@ snapshots: '@types/jsonfile': 6.1.4 '@types/node': 20.14.9 - '@types/glob@7.2.0': - dependencies: - '@types/minimatch': 5.1.2 - '@types/node': 20.14.9 - '@types/graceful-fs@4.1.9': dependencies: '@types/node': 20.14.9 @@ -13572,12 +13537,10 @@ snapshots: '@types/html-minifier-terser@6.1.0': {} - '@types/http-errors@2.0.4': {} - '@types/inquirer@8.2.10': dependencies: '@types/through': 0.0.33 - rxjs: 7.8.1 + rxjs: 7.8.2 '@types/istanbul-lib-coverage@2.0.6': {} @@ -13602,7 +13565,11 @@ snapshots: '@types/fined': 1.1.5 '@types/node': 20.14.9 - '@types/lodash@4.17.4': {} + '@types/lodash.clonedeep@4.5.9': + dependencies: + '@types/lodash': 4.17.21 + + '@types/lodash@4.17.21': {} '@types/mdast@4.0.4': dependencies: @@ -13610,12 +13577,8 @@ snapshots: '@types/mdx@2.0.13': {} - '@types/mime@1.3.5': {} - '@types/minimatch@3.0.5': {} - '@types/minimatch@5.1.2': {} - '@types/minimist@1.2.5': {} '@types/ms@0.7.34': {} @@ -13635,6 +13598,7 @@ snapshots: '@types/node@22.7.8': dependencies: undici-types: 6.19.8 + optional: true '@types/normalize-package-data@2.4.4': {} @@ -13650,11 +13614,7 @@ snapshots: pg-protocol: 1.7.0 pg-types: 2.2.0 - '@types/prop-types@15.7.12': {} - - '@types/qs@6.9.15': {} - - '@types/range-parser@1.2.7': {} + '@types/prop-types@15.7.14': {} '@types/react-dom@18.3.1': dependencies: @@ -13666,24 +13626,13 @@ snapshots: '@types/react@18.3.11': dependencies: - '@types/prop-types': 15.7.12 + '@types/prop-types': 15.7.14 csstype: 3.1.3 '@types/resolve@1.20.6': {} '@types/semver@7.5.8': {} - '@types/send@0.17.4': - dependencies: - '@types/mime': 1.3.5 - '@types/node': 20.14.9 - - '@types/serve-static@1.15.7': - dependencies: - '@types/http-errors': 2.0.4 - '@types/node': 20.14.9 - '@types/send': 0.17.4 - '@types/shimmer@1.2.0': {} '@types/stack-utils@2.0.3': {} @@ -13706,7 +13655,7 @@ snapshots: '@types/yargs-parser@21.0.3': {} - '@types/yargs@17.0.32': + '@types/yargs@17.0.33': dependencies: '@types/yargs-parser': 21.0.3 @@ -13719,14 +13668,14 @@ snapshots: '@ungap/structured-clone@1.2.0': {} - '@vitejs/plugin-react@4.1.0(vite@5.4.9(@types/node@20.14.9)(lightningcss@1.27.0)(terser@5.31.0))': + '@vitejs/plugin-react@4.1.0(vite@5.4.9(@types/node@20.14.9)(lightningcss@1.27.0)(terser@5.39.0))': dependencies: - '@babel/core': 7.24.6 - '@babel/plugin-transform-react-jsx-self': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-transform-react-jsx-source': 7.24.6(@babel/core@7.24.6) + '@babel/core': 7.26.10 + '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.10) + '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.10) '@types/babel__core': 7.20.5 react-refresh: 0.14.2 - vite: 5.4.9(@types/node@20.14.9)(lightningcss@1.27.0)(terser@5.31.0) + vite: 5.4.9(@types/node@20.14.9)(lightningcss@1.27.0)(terser@5.39.0) transitivePeerDependencies: - supports-color @@ -13740,20 +13689,20 @@ snapshots: dependencies: '@vitest/spy': 1.6.0 '@vitest/utils': 1.6.0 - chai: 4.4.1 + chai: 4.5.0 '@vitest/expect@2.0.5': dependencies: '@vitest/spy': 2.0.5 '@vitest/utils': 2.0.5 - chai: 5.1.1 + chai: 5.2.0 tinyrainbow: 1.2.0 '@vitest/pretty-format@2.0.5': dependencies: tinyrainbow: 1.2.0 - '@vitest/pretty-format@2.1.3': + '@vitest/pretty-format@2.1.9': dependencies: tinyrainbow: 1.2.0 @@ -13777,7 +13726,7 @@ snapshots: '@vitest/snapshot@1.6.0': dependencies: - magic-string: 0.30.10 + magic-string: 0.30.17 pathe: 1.1.2 pretty-format: 29.7.0 @@ -13810,105 +13759,106 @@ snapshots: dependencies: '@vitest/pretty-format': 2.0.5 estree-walker: 3.0.3 - loupe: 3.1.2 + loupe: 3.1.3 tinyrainbow: 1.2.0 - '@vitest/utils@2.1.3': + '@vitest/utils@2.1.9': dependencies: - '@vitest/pretty-format': 2.1.3 - loupe: 3.1.2 + '@vitest/pretty-format': 2.1.9 + loupe: 3.1.3 tinyrainbow: 1.2.0 - '@webassemblyjs/ast@1.12.1': + '@vtex/shoreline-utils@1.0.107(react@18.3.1)': dependencies: - '@webassemblyjs/helper-numbers': 1.11.6 - '@webassemblyjs/helper-wasm-bytecode': 1.11.6 + csstype: 3.1.3 + deepmerge: 4.3.1 + scule: 1.1.1 + tiny-invariant: 1.3.3 + tiny-warning: 1.0.3 + use-sync-external-store: 1.2.0(react@18.3.1) + transitivePeerDependencies: + - react + + '@webassemblyjs/ast@1.14.1': + dependencies: + '@webassemblyjs/helper-numbers': 1.13.2 + '@webassemblyjs/helper-wasm-bytecode': 1.13.2 - '@webassemblyjs/floating-point-hex-parser@1.11.6': {} + '@webassemblyjs/floating-point-hex-parser@1.13.2': {} - '@webassemblyjs/helper-api-error@1.11.6': {} + '@webassemblyjs/helper-api-error@1.13.2': {} - '@webassemblyjs/helper-buffer@1.12.1': {} + '@webassemblyjs/helper-buffer@1.14.1': {} - '@webassemblyjs/helper-numbers@1.11.6': + '@webassemblyjs/helper-numbers@1.13.2': dependencies: - '@webassemblyjs/floating-point-hex-parser': 1.11.6 - '@webassemblyjs/helper-api-error': 1.11.6 + '@webassemblyjs/floating-point-hex-parser': 1.13.2 + '@webassemblyjs/helper-api-error': 1.13.2 '@xtuc/long': 4.2.2 - '@webassemblyjs/helper-wasm-bytecode@1.11.6': {} + '@webassemblyjs/helper-wasm-bytecode@1.13.2': {} - '@webassemblyjs/helper-wasm-section@1.12.1': + '@webassemblyjs/helper-wasm-section@1.14.1': dependencies: - '@webassemblyjs/ast': 1.12.1 - '@webassemblyjs/helper-buffer': 1.12.1 - '@webassemblyjs/helper-wasm-bytecode': 1.11.6 - '@webassemblyjs/wasm-gen': 1.12.1 + '@webassemblyjs/ast': 1.14.1 + '@webassemblyjs/helper-buffer': 1.14.1 + '@webassemblyjs/helper-wasm-bytecode': 1.13.2 + '@webassemblyjs/wasm-gen': 1.14.1 - '@webassemblyjs/ieee754@1.11.6': + '@webassemblyjs/ieee754@1.13.2': dependencies: '@xtuc/ieee754': 1.2.0 - '@webassemblyjs/leb128@1.11.6': + '@webassemblyjs/leb128@1.13.2': dependencies: '@xtuc/long': 4.2.2 - '@webassemblyjs/utf8@1.11.6': {} + '@webassemblyjs/utf8@1.13.2': {} - '@webassemblyjs/wasm-edit@1.12.1': + '@webassemblyjs/wasm-edit@1.14.1': dependencies: - '@webassemblyjs/ast': 1.12.1 - '@webassemblyjs/helper-buffer': 1.12.1 - '@webassemblyjs/helper-wasm-bytecode': 1.11.6 - '@webassemblyjs/helper-wasm-section': 1.12.1 - '@webassemblyjs/wasm-gen': 1.12.1 - '@webassemblyjs/wasm-opt': 1.12.1 - '@webassemblyjs/wasm-parser': 1.12.1 - '@webassemblyjs/wast-printer': 1.12.1 + '@webassemblyjs/ast': 1.14.1 + '@webassemblyjs/helper-buffer': 1.14.1 + '@webassemblyjs/helper-wasm-bytecode': 1.13.2 + '@webassemblyjs/helper-wasm-section': 1.14.1 + '@webassemblyjs/wasm-gen': 1.14.1 + '@webassemblyjs/wasm-opt': 1.14.1 + '@webassemblyjs/wasm-parser': 1.14.1 + '@webassemblyjs/wast-printer': 1.14.1 - '@webassemblyjs/wasm-gen@1.12.1': + '@webassemblyjs/wasm-gen@1.14.1': dependencies: - '@webassemblyjs/ast': 1.12.1 - '@webassemblyjs/helper-wasm-bytecode': 1.11.6 - '@webassemblyjs/ieee754': 1.11.6 - '@webassemblyjs/leb128': 1.11.6 - '@webassemblyjs/utf8': 1.11.6 + '@webassemblyjs/ast': 1.14.1 + '@webassemblyjs/helper-wasm-bytecode': 1.13.2 + '@webassemblyjs/ieee754': 1.13.2 + '@webassemblyjs/leb128': 1.13.2 + '@webassemblyjs/utf8': 1.13.2 - '@webassemblyjs/wasm-opt@1.12.1': + '@webassemblyjs/wasm-opt@1.14.1': dependencies: - '@webassemblyjs/ast': 1.12.1 - '@webassemblyjs/helper-buffer': 1.12.1 - '@webassemblyjs/wasm-gen': 1.12.1 - '@webassemblyjs/wasm-parser': 1.12.1 + '@webassemblyjs/ast': 1.14.1 + '@webassemblyjs/helper-buffer': 1.14.1 + '@webassemblyjs/wasm-gen': 1.14.1 + '@webassemblyjs/wasm-parser': 1.14.1 - '@webassemblyjs/wasm-parser@1.12.1': + '@webassemblyjs/wasm-parser@1.14.1': dependencies: - '@webassemblyjs/ast': 1.12.1 - '@webassemblyjs/helper-api-error': 1.11.6 - '@webassemblyjs/helper-wasm-bytecode': 1.11.6 - '@webassemblyjs/ieee754': 1.11.6 - '@webassemblyjs/leb128': 1.11.6 - '@webassemblyjs/utf8': 1.11.6 + '@webassemblyjs/ast': 1.14.1 + '@webassemblyjs/helper-api-error': 1.13.2 + '@webassemblyjs/helper-wasm-bytecode': 1.13.2 + '@webassemblyjs/ieee754': 1.13.2 + '@webassemblyjs/leb128': 1.13.2 + '@webassemblyjs/utf8': 1.13.2 - '@webassemblyjs/wast-printer@1.12.1': + '@webassemblyjs/wast-printer@1.14.1': dependencies: - '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/ast': 1.14.1 '@xtuc/long': 4.2.2 '@xtuc/ieee754@1.2.0': {} '@xtuc/long@4.2.2': {} - '@yarnpkg/fslib@2.10.3': - dependencies: - '@yarnpkg/libzip': 2.3.0 - tslib: 1.14.1 - - '@yarnpkg/libzip@2.3.0': - dependencies: - '@types/emscripten': 1.39.13 - tslib: 1.14.1 - '@yarnpkg/lockfile@1.1.0': {} '@yarnpkg/parsers@3.0.0-rc.46': @@ -13927,52 +13877,37 @@ snapshots: abbrev@2.0.0: {} - accepts@1.3.8: - dependencies: - mime-types: 2.1.35 - negotiator: 0.6.3 - - acorn-import-assertions@1.9.0(acorn@8.13.0): - dependencies: - acorn: 8.13.0 - acorn-import-attributes@1.9.5(acorn@8.13.0): dependencies: acorn: 8.13.0 - acorn-jsx@5.3.2(acorn@7.4.1): - dependencies: - acorn: 7.4.1 - acorn-jsx@5.3.2(acorn@8.13.0): dependencies: acorn: 8.13.0 - acorn-walk@7.2.0: {} - acorn-walk@8.3.2: {} - acorn@7.4.1: {} + acorn-walk@8.3.4: + dependencies: + acorn: 8.14.1 acorn@8.11.3: {} acorn@8.13.0: {} + acorn@8.14.1: {} + add-stream@1.0.0: {} agent-base@6.0.2: dependencies: - debug: 4.3.5 + debug: 4.4.0 transitivePeerDependencies: - supports-color - agent-base@7.1.1: - dependencies: - debug: 4.3.5 - transitivePeerDependencies: - - supports-color + agent-base@7.1.3: {} - agentkeepalive@4.5.0: + agentkeepalive@4.6.0: dependencies: humanize-ms: 1.2.1 @@ -13981,17 +13916,17 @@ snapshots: clean-stack: 2.2.0 indent-string: 4.0.0 - ajv-formats@2.1.1(ajv@8.15.0): + ajv-formats@2.1.1(ajv@8.17.1): optionalDependencies: - ajv: 8.15.0 + ajv: 8.17.1 ajv-keywords@3.5.2(ajv@6.12.6): dependencies: ajv: 6.12.6 - ajv-keywords@5.1.0(ajv@8.15.0): + ajv-keywords@5.1.0(ajv@8.17.1): dependencies: - ajv: 8.15.0 + ajv: 8.17.1 fast-deep-equal: 3.1.3 ajv@6.12.6: @@ -14001,10 +13936,10 @@ snapshots: json-schema-traverse: 0.4.1 uri-js: 4.4.1 - ajv@8.15.0: + ajv@8.17.1: dependencies: fast-deep-equal: 3.1.3 - fast-uri: 2.3.0 + fast-uri: 3.0.6 json-schema-traverse: 1.0.0 require-from-string: 2.0.2 @@ -14028,7 +13963,7 @@ snapshots: ansi-regex@5.0.1: {} - ansi-regex@6.0.1: {} + ansi-regex@6.1.0: {} ansi-styles@2.2.1: {} @@ -14051,8 +13986,6 @@ snapshots: normalize-path: 3.0.0 picomatch: 2.3.1 - app-root-dir@1.0.2: {} - append-transform@2.0.0: dependencies: default-require-extensions: 3.0.1 @@ -14088,6 +14021,8 @@ snapshots: dependencies: dequal: 2.0.3 + aria-query@5.3.2: {} + array-buffer-byte-length@1.0.1: dependencies: call-bind: 1.0.7 @@ -14097,8 +14032,6 @@ snapshots: array-each@1.0.1: {} - array-flatten@1.1.1: {} - array-ify@1.0.0: {} array-iterate@2.0.1: {} @@ -14121,11 +14054,7 @@ snapshots: astring@1.8.6: {} - async@2.6.4: - dependencies: - lodash: 4.17.21 - - async@3.2.5: {} + async@3.2.6: {} asynckit@0.4.0: {} @@ -14135,23 +14064,23 @@ snapshots: dependencies: possible-typed-array-names: 1.0.0 - axe-core@4.9.1: {} + axe-core@4.10.3: {} - axios@1.7.2: + axios@1.8.4: dependencies: - follow-redirects: 1.15.6 - form-data: 4.0.0 + follow-redirects: 1.15.9 + form-data: 4.0.2 proxy-from-env: 1.1.0 transitivePeerDependencies: - debug - babel-jest@29.7.0(@babel/core@7.24.6): + babel-jest@29.7.0(@babel/core@7.26.10): dependencies: - '@babel/core': 7.24.6 + '@babel/core': 7.26.10 '@jest/transform': 29.7.0 '@types/babel__core': 7.20.5 babel-plugin-istanbul: 6.1.1 - babel-preset-jest: 29.6.3(@babel/core@7.24.6) + babel-preset-jest: 29.6.3(@babel/core@7.26.10) chalk: 4.1.2 graceful-fs: 4.2.11 slash: 3.0.0 @@ -14160,7 +14089,7 @@ snapshots: babel-plugin-istanbul@6.1.1: dependencies: - '@babel/helper-plugin-utils': 7.24.6 + '@babel/helper-plugin-utils': 7.26.5 '@istanbuljs/load-nyc-config': 1.1.0 '@istanbuljs/schema': 0.1.3 istanbul-lib-instrument: 5.2.1 @@ -14170,16 +14099,16 @@ snapshots: babel-plugin-jest-hoist@29.6.3: dependencies: - '@babel/template': 7.24.6 - '@babel/types': 7.24.6 + '@babel/template': 7.26.9 + '@babel/types': 7.26.10 '@types/babel__core': 7.20.5 '@types/babel__traverse': 7.20.6 babel-plugin-macros@2.8.0: dependencies: - '@babel/runtime': 7.24.6 + '@babel/runtime': 7.26.10 cosmiconfig: 6.0.0 - resolve: 1.22.8 + resolve: 1.22.10 babel-polyfill@6.26.0: dependencies: @@ -14187,27 +14116,30 @@ snapshots: core-js: 2.6.12 regenerator-runtime: 0.10.5 - babel-preset-current-node-syntax@1.0.1(@babel/core@7.24.6): - dependencies: - '@babel/core': 7.24.6 - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.6) - '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.24.6) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.24.6) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.24.6) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.6) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.6) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.6) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.6) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.6) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.6) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.6) - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.24.6) - - babel-preset-jest@29.6.3(@babel/core@7.24.6): - dependencies: - '@babel/core': 7.24.6 + babel-preset-current-node-syntax@1.1.0(@babel/core@7.26.10): + dependencies: + '@babel/core': 7.26.10 + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.26.10) + '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.26.10) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.26.10) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.26.10) + '@babel/plugin-syntax-import-attributes': 7.26.0(@babel/core@7.26.10) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.26.10) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.26.10) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.26.10) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.26.10) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.26.10) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.26.10) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.26.10) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.26.10) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.26.10) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.26.10) + + babel-preset-jest@29.6.3(@babel/core@7.26.10): + dependencies: + '@babel/core': 7.26.10 babel-plugin-jest-hoist: 29.6.3 - babel-preset-current-node-syntax: 1.0.1(@babel/core@7.24.6) + babel-preset-current-node-syntax: 1.1.0(@babel/core@7.26.10) babel-runtime@6.26.0: dependencies: @@ -14249,23 +14181,6 @@ snapshots: inherits: 2.0.4 readable-stream: 3.6.2 - body-parser@1.20.2: - dependencies: - bytes: 3.1.2 - content-type: 1.0.5 - debug: 2.6.9 - depd: 2.0.0 - destroy: 1.2.0 - http-errors: 2.0.0 - iconv-lite: 0.4.24 - on-finished: 2.4.1 - qs: 6.11.0 - raw-body: 2.5.2 - type-is: 1.6.18 - unpipe: 1.0.0 - transitivePeerDependencies: - - supports-color - boolbase@1.0.0: {} brace-expansion@1.1.11: @@ -14290,6 +14205,13 @@ snapshots: node-releases: 2.0.14 update-browserslist-db: 1.0.16(browserslist@4.23.1) + browserslist@4.24.4: + dependencies: + caniuse-lite: 1.0.30001706 + electron-to-chromium: 1.5.123 + node-releases: 2.0.19 + update-browserslist-db: 1.1.3(browserslist@4.24.4) + bser@2.1.1: dependencies: node-int64: 0.4.0 @@ -14310,7 +14232,7 @@ snapshots: builtins@5.1.0: dependencies: - semver: 7.6.2 + semver: 7.7.1 bundle-require@4.2.1(esbuild@0.21.5): dependencies: @@ -14323,15 +14245,13 @@ snapshots: byte-size@8.1.1: {} - bytes@3.1.2: {} - cac@6.7.14: {} cacache@17.1.4: dependencies: '@npmcli/fs': 3.1.1 fs-minipass: 3.0.3 - glob: 10.4.1 + glob: 10.4.5 lru-cache: 7.18.3 minipass: 7.1.2 minipass-collect: 1.0.2 @@ -14342,12 +14262,12 @@ snapshots: tar: 6.2.1 unique-filename: 3.0.0 - cacache@18.0.3: + cacache@18.0.4: dependencies: '@npmcli/fs': 3.1.1 fs-minipass: 3.0.3 - glob: 10.4.1 - lru-cache: 10.2.2 + glob: 10.4.5 + lru-cache: 10.4.3 minipass: 7.1.2 minipass-collect: 2.0.1 minipass-flush: 1.0.5 @@ -14366,6 +14286,11 @@ snapshots: package-hash: 4.0.0 write-file-atomic: 3.0.3 + call-bind-apply-helpers@1.0.2: + dependencies: + es-errors: 1.3.0 + function-bind: 1.1.2 + call-bind@1.0.7: dependencies: es-define-property: 1.0.0 @@ -14374,6 +14299,18 @@ snapshots: get-intrinsic: 1.2.4 set-function-length: 1.2.2 + call-bind@1.0.8: + dependencies: + call-bind-apply-helpers: 1.0.2 + es-define-property: 1.0.1 + get-intrinsic: 1.3.0 + set-function-length: 1.2.2 + + call-bound@1.0.4: + dependencies: + call-bind-apply-helpers: 1.0.2 + get-intrinsic: 1.3.0 + callsites@3.1.0: {} camel-case@4.1.2: @@ -14393,6 +14330,8 @@ snapshots: caniuse-lite@1.0.30001637: {} + caniuse-lite@1.0.30001706: {} + capital-case@1.0.4: dependencies: no-case: 3.0.4 @@ -14413,12 +14352,22 @@ snapshots: pathval: 1.1.1 type-detect: 4.0.8 - chai@5.1.1: + chai@4.5.0: + dependencies: + assertion-error: 1.1.0 + check-error: 1.0.3 + deep-eql: 4.1.4 + get-func-name: 2.0.2 + loupe: 2.3.7 + pathval: 1.1.1 + type-detect: 4.1.0 + + chai@5.2.0: dependencies: assertion-error: 2.0.1 check-error: 2.1.1 deep-eql: 5.0.2 - loupe: 3.1.2 + loupe: 3.1.3 pathval: 2.0.0 chalk@1.1.3: @@ -14458,6 +14407,8 @@ snapshots: chalk@5.3.0: {} + chalk@5.4.1: {} + change-case@4.1.2: dependencies: camel-case: 4.1.2 @@ -14475,7 +14426,7 @@ snapshots: char-regex@1.0.2: {} - char-regex@2.0.1: {} + char-regex@2.0.2: {} character-entities-html4@2.1.0: {} @@ -14521,9 +14472,7 @@ snapshots: chownr@2.0.0: {} - chromatic@11.5.1: {} - - chromatic@9.1.0: {} + chromatic@11.27.0: {} chrome-trace-event@1.0.4: {} @@ -14531,6 +14480,8 @@ snapshots: cjs-module-lexer@1.3.1: {} + cjs-module-lexer@1.4.3: {} + clean-css@5.3.3: dependencies: source-map: 0.6.1 @@ -14650,21 +14601,21 @@ snapshots: commander@11.0.0: {} + commander@12.1.0: {} + commander@2.20.3: {} commander@3.0.2: {} commander@4.1.1: {} - commander@5.1.0: {} - commander@7.2.0: {} commander@8.3.0: {} commander@9.2.0: {} - commitizen@4.3.0(@types/node@20.14.9)(typescript@5.5.2): + commitizen@4.3.1(@types/node@20.14.9)(typescript@5.5.2): dependencies: cachedir: 2.3.0 cz-conventional-changelog: 3.3.0(@types/node@20.14.9)(typescript@5.5.2) @@ -14733,12 +14684,6 @@ snapshots: constants-browserify@1.0.0: {} - content-disposition@0.5.4: - dependencies: - safe-buffer: 5.2.1 - - content-type@1.0.5: {} - conventional-changelog-angular@5.0.13: dependencies: compare-func: 2.0.0 @@ -14777,7 +14722,7 @@ snapshots: handlebars: 4.7.8 json-stringify-safe: 5.0.1 meow: 8.1.2 - semver: 7.6.2 + semver: 7.7.1 split: 1.0.1 conventional-commit-types@3.0.0: {} @@ -14817,13 +14762,9 @@ snapshots: convert-source-map@2.0.0: {} - cookie-signature@1.0.6: {} - - cookie@0.6.0: {} - core-js@2.6.12: {} - core-js@3.37.1: {} + core-js@3.41.0: {} core-util-is@1.0.3: {} @@ -14837,18 +14778,18 @@ snapshots: dependencies: layout-base: 2.0.1 - cosmiconfig-typescript-loader@5.0.0(@types/node@20.14.9)(cosmiconfig@9.0.0(typescript@5.5.2))(typescript@5.5.2): + cosmiconfig-typescript-loader@6.1.0(@types/node@20.14.9)(cosmiconfig@9.0.0(typescript@5.5.2))(typescript@5.5.2): dependencies: '@types/node': 20.14.9 cosmiconfig: 9.0.0(typescript@5.5.2) - jiti: 1.21.0 + jiti: 2.4.2 typescript: 5.5.2 optional: true cosmiconfig@6.0.0: dependencies: '@types/parse-json': 4.0.2 - import-fresh: 3.3.0 + import-fresh: 3.3.1 parse-json: 5.2.0 path-type: 4.0.0 yaml: 1.10.2 @@ -14856,14 +14797,14 @@ snapshots: cosmiconfig@7.1.0: dependencies: '@types/parse-json': 4.0.2 - import-fresh: 3.3.0 + import-fresh: 3.3.1 parse-json: 5.2.0 path-type: 4.0.0 yaml: 1.10.2 cosmiconfig@8.3.6(typescript@5.5.2): dependencies: - import-fresh: 3.3.0 + import-fresh: 3.3.1 js-yaml: 4.1.0 parse-json: 5.2.0 path-type: 4.0.0 @@ -14873,7 +14814,7 @@ snapshots: cosmiconfig@9.0.0(typescript@5.5.2): dependencies: env-paths: 2.2.1 - import-fresh: 3.3.0 + import-fresh: 3.3.1 js-yaml: 4.1.0 parse-json: 5.2.0 optionalDependencies: @@ -14907,22 +14848,24 @@ snapshots: shebang-command: 2.0.0 which: 2.0.2 - crypto-random-string@4.0.0: + cross-spawn@7.0.6: dependencies: - type-fest: 1.4.0 + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 - css-loader@6.11.0(webpack@5.91.0(@swc/core@1.5.24(@swc/helpers@0.5.13))(esbuild@0.21.5)): + css-loader@6.11.0(webpack@5.98.0(@swc/core@1.11.11(@swc/helpers@0.5.13))(esbuild@0.21.5)): dependencies: - icss-utils: 5.1.0(postcss@8.4.38) - postcss: 8.4.38 - postcss-modules-extract-imports: 3.1.0(postcss@8.4.38) - postcss-modules-local-by-default: 4.0.5(postcss@8.4.38) - postcss-modules-scope: 3.2.0(postcss@8.4.38) - postcss-modules-values: 4.0.0(postcss@8.4.38) + icss-utils: 5.1.0(postcss@8.5.3) + postcss: 8.5.3 + postcss-modules-extract-imports: 3.1.0(postcss@8.5.3) + postcss-modules-local-by-default: 4.2.0(postcss@8.5.3) + postcss-modules-scope: 3.2.1(postcss@8.5.3) + postcss-modules-values: 4.0.0(postcss@8.5.3) postcss-value-parser: 4.2.0 - semver: 7.6.3 + semver: 7.7.1 optionalDependencies: - webpack: 5.91.0(@swc/core@1.5.24(@swc/helpers@0.5.13))(esbuild@0.21.5) + webpack: 5.98.0(@swc/core@1.11.11(@swc/helpers@0.5.13))(esbuild@0.21.5) css-select@4.3.0: dependencies: @@ -14938,6 +14881,8 @@ snapshots: cssesc@3.0.0: {} + cssfontparser@1.2.1: {} + cssstyle@3.0.0: dependencies: rrweb-cssom: 0.6.0 @@ -14964,13 +14909,13 @@ snapshots: cz-conventional-changelog@3.3.0(@types/node@20.14.9)(typescript@5.5.2): dependencies: chalk: 2.4.2 - commitizen: 4.3.0(@types/node@20.14.9)(typescript@5.5.2) + commitizen: 4.3.1(@types/node@20.14.9)(typescript@5.5.2) conventional-commit-types: 3.0.0 lodash.map: 4.6.0 longest: 2.0.1 word-wrap: 1.2.5 optionalDependencies: - '@commitlint/load': 19.2.0(@types/node@20.14.9)(typescript@5.5.2) + '@commitlint/load': 19.8.0(@types/node@20.14.9)(typescript@5.5.2) transitivePeerDependencies: - '@types/node' - typescript @@ -15152,7 +15097,7 @@ snapshots: data-urls@5.0.0: dependencies: whatwg-mimetype: 4.0.0 - whatwg-url: 14.0.0 + whatwg-url: 14.2.0 date-fns@2.30.0: dependencies: @@ -15162,14 +15107,6 @@ snapshots: dayjs@1.11.11: {} - debug@2.6.9: - dependencies: - ms: 2.0.0 - - debug@3.2.7: - dependencies: - ms: 2.1.3 - debug@4.3.4: dependencies: ms: 2.1.2 @@ -15182,6 +15119,10 @@ snapshots: dependencies: ms: 2.1.3 + debug@4.4.0: + dependencies: + ms: 2.1.3 + decamelize-keys@1.1.1: dependencies: decamelize: 1.2.0 @@ -15189,7 +15130,7 @@ snapshots: decamelize@1.2.0: {} - decimal.js@10.4.3: {} + decimal.js@10.5.0: {} decode-named-character-reference@1.0.2: dependencies: @@ -15203,6 +15144,10 @@ snapshots: dependencies: type-detect: 4.0.8 + deep-eql@4.1.4: + dependencies: + type-detect: 4.1.0 + deep-eql@5.0.2: {} deep-equal@2.2.3: @@ -15269,14 +15214,10 @@ snapshots: delegates@1.0.0: {} - depd@2.0.0: {} - deprecation@2.3.1: {} dequal@2.0.3: {} - destroy@1.2.0: {} - detect-file@1.0.0: {} detect-indent@5.0.0: {} @@ -15367,34 +15308,48 @@ snapshots: dependencies: is-obj: 2.0.0 - dotenv-expand@10.0.0: {} - - dotenv-expand@11.0.6: + dotenv-expand@11.0.7: dependencies: - dotenv: 16.4.5 + dotenv: 16.4.7 - dotenv@16.4.5: {} + dotenv@16.4.7: {} + + dunder-proto@1.0.1: + dependencies: + call-bind-apply-helpers: 1.0.2 + es-errors: 1.3.0 + gopd: 1.2.0 duplexer@0.1.2: {} eastasianwidth@0.2.0: {} - ee-first@1.1.1: {} + echarts-for-react@3.0.4(echarts@6.0.0)(react@18.3.1): + dependencies: + echarts: 6.0.0 + fast-deep-equal: 3.1.3 + react: 18.3.1 + size-sensor: 1.0.2 + + echarts@6.0.0: + dependencies: + tslib: 2.3.0 + zrender: 6.0.0 ejs@3.1.10: dependencies: - jake: 10.9.1 + jake: 10.9.2 electron-to-chromium@1.4.812: {} + electron-to-chromium@1.5.123: {} + emittery@0.13.1: {} emoji-regex@8.0.0: {} emoji-regex@9.2.2: {} - encodeurl@1.0.2: {} - encoding@0.1.13: dependencies: iconv-lite: 0.6.3 @@ -15410,7 +15365,7 @@ snapshots: fast-json-parse: 1.0.3 objectorarray: 1.0.5 - enhanced-resolve@5.16.1: + enhanced-resolve@5.18.1: dependencies: graceful-fs: 4.2.11 tapable: 2.2.1 @@ -15439,6 +15394,8 @@ snapshots: dependencies: get-intrinsic: 1.2.4 + es-define-property@1.0.1: {} + es-errors@1.3.0: {} es-get-iterator@1.1.3: @@ -15453,7 +15410,20 @@ snapshots: isarray: 2.0.5 stop-iteration-iterator: 1.0.0 - es-module-lexer@1.5.3: {} + es-module-lexer@1.6.0: {} + + es-object-atoms@1.1.1: + dependencies: + es-errors: 1.3.0 + + es-set-tostringtag@2.1.0: + dependencies: + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + has-tostringtag: 1.0.2 + hasown: 2.0.2 + + es-toolkit@1.33.0: {} es6-error@4.1.1: {} @@ -15471,17 +15441,10 @@ snapshots: esast-util-from-estree: 2.0.0 vfile-message: 4.0.2 - esbuild-register@3.5.0(esbuild@0.20.2): + esbuild-register@3.6.0(esbuild@0.25.1): dependencies: - debug: 4.3.5 - esbuild: 0.20.2 - transitivePeerDependencies: - - supports-color - - esbuild-register@3.5.0(esbuild@0.21.5): - dependencies: - debug: 4.3.5 - esbuild: 0.21.5 + debug: 4.4.0 + esbuild: 0.25.1 transitivePeerDependencies: - supports-color @@ -15511,32 +15474,6 @@ snapshots: '@esbuild/win32-ia32': 0.19.12 '@esbuild/win32-x64': 0.19.12 - esbuild@0.20.2: - optionalDependencies: - '@esbuild/aix-ppc64': 0.20.2 - '@esbuild/android-arm': 0.20.2 - '@esbuild/android-arm64': 0.20.2 - '@esbuild/android-x64': 0.20.2 - '@esbuild/darwin-arm64': 0.20.2 - '@esbuild/darwin-x64': 0.20.2 - '@esbuild/freebsd-arm64': 0.20.2 - '@esbuild/freebsd-x64': 0.20.2 - '@esbuild/linux-arm': 0.20.2 - '@esbuild/linux-arm64': 0.20.2 - '@esbuild/linux-ia32': 0.20.2 - '@esbuild/linux-loong64': 0.20.2 - '@esbuild/linux-mips64el': 0.20.2 - '@esbuild/linux-ppc64': 0.20.2 - '@esbuild/linux-riscv64': 0.20.2 - '@esbuild/linux-s390x': 0.20.2 - '@esbuild/linux-x64': 0.20.2 - '@esbuild/netbsd-x64': 0.20.2 - '@esbuild/openbsd-x64': 0.20.2 - '@esbuild/sunos-x64': 0.20.2 - '@esbuild/win32-arm64': 0.20.2 - '@esbuild/win32-ia32': 0.20.2 - '@esbuild/win32-x64': 0.20.2 - esbuild@0.21.5: optionalDependencies: '@esbuild/aix-ppc64': 0.21.5 @@ -15563,9 +15500,37 @@ snapshots: '@esbuild/win32-ia32': 0.21.5 '@esbuild/win32-x64': 0.21.5 + esbuild@0.25.1: + optionalDependencies: + '@esbuild/aix-ppc64': 0.25.1 + '@esbuild/android-arm': 0.25.1 + '@esbuild/android-arm64': 0.25.1 + '@esbuild/android-x64': 0.25.1 + '@esbuild/darwin-arm64': 0.25.1 + '@esbuild/darwin-x64': 0.25.1 + '@esbuild/freebsd-arm64': 0.25.1 + '@esbuild/freebsd-x64': 0.25.1 + '@esbuild/linux-arm': 0.25.1 + '@esbuild/linux-arm64': 0.25.1 + '@esbuild/linux-ia32': 0.25.1 + '@esbuild/linux-loong64': 0.25.1 + '@esbuild/linux-mips64el': 0.25.1 + '@esbuild/linux-ppc64': 0.25.1 + '@esbuild/linux-riscv64': 0.25.1 + '@esbuild/linux-s390x': 0.25.1 + '@esbuild/linux-x64': 0.25.1 + '@esbuild/netbsd-arm64': 0.25.1 + '@esbuild/netbsd-x64': 0.25.1 + '@esbuild/openbsd-arm64': 0.25.1 + '@esbuild/openbsd-x64': 0.25.1 + '@esbuild/sunos-x64': 0.25.1 + '@esbuild/win32-arm64': 0.25.1 + '@esbuild/win32-ia32': 0.25.1 + '@esbuild/win32-x64': 0.25.1 + escalade@3.1.2: {} - escape-html@1.0.3: {} + escalade@3.2.0: {} escape-string-regexp@1.0.5: {} @@ -15573,14 +15538,6 @@ snapshots: escape-string-regexp@5.0.0: {} - escodegen@2.1.0: - dependencies: - esprima: 4.0.1 - estraverse: 5.3.0 - esutils: 2.0.3 - optionalDependencies: - source-map: 0.6.1 - eslint-scope@5.1.1: dependencies: esrecurse: 4.3.0 @@ -15641,12 +15598,10 @@ snapshots: estree-walker@3.0.3: dependencies: - '@types/estree': 1.0.5 + '@types/estree': 1.0.6 esutils@2.0.3: {} - etag@1.8.1: {} - eventemitter3@4.0.7: {} eventemitter3@5.0.1: {} @@ -15665,10 +15620,10 @@ snapshots: execa@5.0.0: dependencies: - cross-spawn: 7.0.3 - get-stream: 6.0.1 + cross-spawn: 7.0.6 + get-stream: 6.0.0 human-signals: 2.1.0 - is-stream: 2.0.1 + is-stream: 2.0.0 merge-stream: 2.0.0 npm-run-path: 4.0.1 onetime: 5.1.2 @@ -15677,7 +15632,7 @@ snapshots: execa@5.1.1: dependencies: - cross-spawn: 7.0.3 + cross-spawn: 7.0.6 get-stream: 6.0.1 human-signals: 2.1.0 is-stream: 2.0.1 @@ -15689,7 +15644,7 @@ snapshots: execa@7.2.0: dependencies: - cross-spawn: 7.0.3 + cross-spawn: 7.0.6 get-stream: 6.0.1 human-signals: 4.3.1 is-stream: 3.0.0 @@ -15701,7 +15656,7 @@ snapshots: execa@8.0.1: dependencies: - cross-spawn: 7.0.3 + cross-spawn: 7.0.6 get-stream: 8.0.1 human-signals: 5.0.0 is-stream: 3.0.0 @@ -15733,43 +15688,7 @@ snapshots: jest-message-util: 29.7.0 jest-util: 29.7.0 - exponential-backoff@3.1.1: {} - - express@4.19.2: - dependencies: - accepts: 1.3.8 - array-flatten: 1.1.1 - body-parser: 1.20.2 - content-disposition: 0.5.4 - content-type: 1.0.5 - cookie: 0.6.0 - cookie-signature: 1.0.6 - debug: 2.6.9 - depd: 2.0.0 - encodeurl: 1.0.2 - escape-html: 1.0.3 - etag: 1.8.1 - finalhandler: 1.2.0 - fresh: 0.5.2 - http-errors: 2.0.0 - merge-descriptors: 1.0.1 - methods: 1.1.2 - on-finished: 2.4.1 - parseurl: 1.3.3 - path-to-regexp: 0.1.7 - proxy-addr: 2.0.7 - qs: 6.11.0 - range-parser: 1.2.1 - safe-buffer: 5.2.1 - send: 0.18.0 - serve-static: 1.15.0 - setprototypeof: 1.2.0 - statuses: 2.0.1 - type-is: 1.6.18 - utils-merge: 1.0.1 - vary: 1.1.2 - transitivePeerDependencies: - - supports-color + exponential-backoff@3.1.2: {} extend-shallow@2.0.1: dependencies: @@ -15785,23 +15704,23 @@ snapshots: fast-deep-equal@3.1.3: {} - fast-glob@3.3.2: + fast-glob@3.3.3: dependencies: '@nodelib/fs.stat': 2.0.5 '@nodelib/fs.walk': 1.2.8 glob-parent: 5.1.2 merge2: 1.4.1 - micromatch: 4.0.7 + micromatch: 4.0.8 fast-json-parse@1.0.3: {} fast-json-stable-stringify@2.1.0: {} - fast-uri@2.3.0: {} + fast-uri@3.0.6: {} - fastq@1.17.1: + fastq@1.19.1: dependencies: - reusify: 1.0.4 + reusify: 1.1.0 fault@2.0.1: dependencies: @@ -15824,33 +15743,16 @@ snapshots: dependencies: escape-string-regexp: 1.0.5 - file-system-cache@2.3.0: - dependencies: - fs-extra: 11.1.1 - ramda: 0.29.0 - filelist@1.0.4: dependencies: minimatch: 5.1.6 - filesize@10.1.2: {} + filesize@10.1.6: {} fill-range@7.1.1: dependencies: to-regex-range: 5.0.1 - finalhandler@1.2.0: - dependencies: - debug: 2.6.9 - encodeurl: 1.0.2 - escape-html: 1.0.3 - on-finished: 2.4.1 - parseurl: 1.3.3 - statuses: 2.0.1 - unpipe: 1.0.0 - transitivePeerDependencies: - - supports-color - find-cache-dir@3.3.2: dependencies: commondir: 1.0.1 @@ -15871,13 +15773,11 @@ snapshots: dependencies: find-file-up: 0.1.3 - find-process@1.4.7: + find-process@1.4.10: dependencies: chalk: 4.1.2 - commander: 5.1.0 - debug: 4.3.5 - transitivePeerDependencies: - - supports-color + commander: 12.1.0 + loglevel: 1.9.2 find-root@1.1.0: {} @@ -15899,14 +15799,14 @@ snapshots: dependencies: detect-file: 1.0.0 is-glob: 4.0.3 - micromatch: 4.0.7 + micromatch: 4.0.8 resolve-dir: 1.0.1 findup-sync@5.0.0: dependencies: detect-file: 1.0.0 is-glob: 4.0.3 - micromatch: 4.0.7 + micromatch: 4.0.8 resolve-dir: 1.0.1 fined@2.0.0: @@ -15921,22 +15821,26 @@ snapshots: flat-cache@3.2.0: dependencies: - flatted: 3.3.1 + flatted: 3.3.3 keyv: 4.5.4 rimraf: 3.0.2 flat@5.0.2: {} - flatted@3.3.1: {} + flatted@3.3.3: {} flexsearch@0.7.43: {} - follow-redirects@1.15.6: {} + follow-redirects@1.15.9: {} for-each@0.3.3: dependencies: is-callable: 1.2.7 + for-each@0.3.5: + dependencies: + is-callable: 1.2.7 + for-in@1.0.2: {} for-own@1.0.0: @@ -15945,7 +15849,7 @@ snapshots: foreground-child@2.0.0: dependencies: - cross-spawn: 7.0.3 + cross-spawn: 7.0.6 signal-exit: 3.0.7 foreground-child@3.1.1: @@ -15953,9 +15857,14 @@ snapshots: cross-spawn: 7.0.3 signal-exit: 4.1.0 - fork-ts-checker-webpack-plugin@8.0.0(typescript@5.5.2)(webpack@5.91.0(@swc/core@1.5.24(@swc/helpers@0.5.13))(esbuild@0.21.5)): + foreground-child@3.3.1: dependencies: - '@babel/code-frame': 7.24.6 + cross-spawn: 7.0.6 + signal-exit: 4.1.0 + + fork-ts-checker-webpack-plugin@8.0.0(typescript@5.5.2)(webpack@5.98.0(@swc/core@1.11.11(@swc/helpers@0.5.13))(esbuild@0.21.5)): + dependencies: + '@babel/code-frame': 7.26.2 chalk: 4.1.2 chokidar: 3.6.0 cosmiconfig: 7.1.0 @@ -15965,23 +15874,20 @@ snapshots: minimatch: 3.1.2 node-abort-controller: 3.1.1 schema-utils: 3.3.0 - semver: 7.6.3 + semver: 7.7.1 tapable: 2.2.1 typescript: 5.5.2 - webpack: 5.91.0(@swc/core@1.5.24(@swc/helpers@0.5.13))(esbuild@0.21.5) + webpack: 5.98.0(@swc/core@1.11.11(@swc/helpers@0.5.13))(esbuild@0.21.5) - form-data@4.0.0: + form-data@4.0.2: dependencies: asynckit: 0.4.0 combined-stream: 1.0.8 + es-set-tostringtag: 2.1.0 mime-types: 2.1.35 format@0.2.2: {} - forwarded@0.2.0: {} - - fresh@0.5.2: {} - fromentries@1.3.2: {} front-matter@4.0.2: @@ -16010,6 +15916,12 @@ snapshots: jsonfile: 6.1.0 universalify: 2.0.1 + fs-extra@11.3.0: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.1 + fs-extra@8.1.0: dependencies: graceful-fs: 4.2.11 @@ -16070,6 +15982,19 @@ snapshots: has-symbols: 1.0.3 hasown: 2.0.2 + get-intrinsic@1.3.0: + dependencies: + call-bind-apply-helpers: 1.0.2 + es-define-property: 1.0.1 + es-errors: 1.3.0 + es-object-atoms: 1.1.1 + function-bind: 1.1.2 + get-proto: 1.0.1 + gopd: 1.2.0 + has-symbols: 1.1.0 + hasown: 2.0.2 + math-intrinsics: 1.1.0 + get-nonce@1.0.1: {} get-package-type@0.1.0: {} @@ -16083,6 +16008,11 @@ snapshots: get-port@5.1.1: {} + get-proto@1.0.1: + dependencies: + dunder-proto: 1.0.1 + es-object-atoms: 1.1.1 + get-stdin@7.0.0: {} get-stream@3.0.0: {} @@ -16115,11 +16045,11 @@ snapshots: git-semver-tags@5.0.1: dependencies: meow: 8.1.2 - semver: 7.6.2 + semver: 7.7.1 git-up@7.0.0: dependencies: - is-ssh: 1.4.0 + is-ssh: 1.4.1 parse-url: 8.1.0 git-url-parse@13.1.0: @@ -16136,11 +16066,6 @@ snapshots: dependencies: is-glob: 4.0.3 - glob-promise@4.2.2(glob@7.2.3): - dependencies: - '@types/glob': 7.2.0 - glob: 7.2.3 - glob-to-regexp@0.4.1: {} glob@10.4.1: @@ -16151,6 +16076,15 @@ snapshots: minipass: 7.1.2 path-scurry: 1.11.1 + glob@10.4.5: + dependencies: + foreground-child: 3.3.1 + jackspeak: 3.4.3 + minimatch: 9.0.5 + minipass: 7.1.2 + package-json-from-dist: 1.0.1 + path-scurry: 1.11.1 + glob@7.2.3: dependencies: fs.realpath: 1.0.0 @@ -16216,16 +16150,16 @@ snapshots: dependencies: array-union: 2.1.0 dir-glob: 3.0.1 - fast-glob: 3.3.2 - ignore: 5.3.1 + fast-glob: 3.3.3 + ignore: 5.3.2 merge2: 1.4.1 slash: 3.0.0 globby@13.2.2: dependencies: dir-glob: 3.0.1 - fast-glob: 3.3.2 - ignore: 5.3.1 + fast-glob: 3.3.3 + ignore: 5.3.2 merge2: 1.4.1 slash: 4.0.0 @@ -16237,6 +16171,8 @@ snapshots: dependencies: get-intrinsic: 1.2.4 + gopd@1.2.0: {} + graceful-fs@4.2.11: {} gray-matter@4.0.3: @@ -16255,7 +16191,7 @@ snapshots: source-map: 0.6.1 wordwrap: 1.0.0 optionalDependencies: - uglify-js: 3.17.4 + uglify-js: 3.19.3 hard-rejection@2.1.0: {} @@ -16279,9 +16215,11 @@ snapshots: has-symbols@1.0.3: {} + has-symbols@1.1.0: {} + has-tostringtag@1.0.2: dependencies: - has-symbols: 1.0.3 + has-symbols: 1.1.0 has-unicode@2.0.1: {} @@ -16327,10 +16265,6 @@ snapshots: vfile-location: 5.0.2 web-namespaces: 2.0.1 - hast-util-heading-rank@3.0.0: - dependencies: - '@types/hast': 3.0.4 - hast-util-is-element@3.0.0: dependencies: '@types/hast': 3.0.4 @@ -16468,13 +16402,13 @@ snapshots: dependencies: lru-cache: 6.0.0 - hosted-git-info@6.1.1: + hosted-git-info@6.1.3: dependencies: lru-cache: 7.18.3 hosted-git-info@7.0.2: dependencies: - lru-cache: 10.2.2 + lru-cache: 10.4.3 html-encoding-sniffer@3.0.0: dependencies: @@ -16496,15 +16430,13 @@ snapshots: he: 1.2.0 param-case: 3.0.4 relateurl: 0.2.7 - terser: 5.31.0 - - html-tags@3.3.1: {} + terser: 5.39.0 html-url-attributes@3.0.0: {} html-void-elements@3.0.0: {} - html-webpack-plugin@5.6.0(webpack@5.91.0(@swc/core@1.5.24(@swc/helpers@0.5.13))(esbuild@0.21.5)): + html-webpack-plugin@5.6.3(webpack@5.98.0(@swc/core@1.11.11(@swc/helpers@0.5.13))(esbuild@0.21.5)): dependencies: '@types/html-minifier-terser': 6.1.0 html-minifier-terser: 6.1.0 @@ -16512,7 +16444,7 @@ snapshots: pretty-error: 4.0.0 tapable: 2.2.1 optionalDependencies: - webpack: 5.91.0(@swc/core@1.5.24(@swc/helpers@0.5.13))(esbuild@0.21.5) + webpack: 5.98.0(@swc/core@1.11.11(@swc/helpers@0.5.13))(esbuild@0.21.5) htmlparser2@3.10.1: dependencies: @@ -16532,33 +16464,25 @@ snapshots: http-cache-semantics@4.1.1: {} - http-errors@2.0.0: - dependencies: - depd: 2.0.0 - inherits: 2.0.4 - setprototypeof: 1.2.0 - statuses: 2.0.1 - toidentifier: 1.0.1 - http-proxy-agent@5.0.0: dependencies: '@tootallnate/once': 2.0.0 agent-base: 6.0.2 - debug: 4.3.5 + debug: 4.4.0 transitivePeerDependencies: - supports-color http-proxy-agent@7.0.2: dependencies: - agent-base: 7.1.1 - debug: 4.3.5 + agent-base: 7.1.3 + debug: 4.4.0 transitivePeerDependencies: - supports-color http-proxy@1.18.1: dependencies: eventemitter3: 4.0.7 - follow-redirects: 1.15.6 + follow-redirects: 1.15.9 requires-port: 1.0.0 transitivePeerDependencies: - debug @@ -16574,7 +16498,7 @@ snapshots: mime: 1.6.0 minimist: 1.2.8 opener: 1.5.2 - portfinder: 1.0.32 + portfinder: 1.0.35 secure-compare: 3.0.1 union: 0.5.0 url-join: 4.0.1 @@ -16585,14 +16509,14 @@ snapshots: https-proxy-agent@5.0.1: dependencies: agent-base: 6.0.2 - debug: 4.3.5 + debug: 4.4.0 transitivePeerDependencies: - supports-color - https-proxy-agent@7.0.4: + https-proxy-agent@7.0.6: dependencies: - agent-base: 7.1.1 - debug: 4.3.5 + agent-base: 7.1.3 + debug: 4.4.0 transitivePeerDependencies: - supports-color @@ -16616,9 +16540,9 @@ snapshots: dependencies: safer-buffer: 2.1.2 - icss-utils@5.1.0(postcss@8.4.38): + icss-utils@5.1.0(postcss@8.5.3): dependencies: - postcss: 8.4.38 + postcss: 8.5.3 ieee754@1.2.1: {} @@ -16628,11 +16552,11 @@ snapshots: ignore-walk@6.0.5: dependencies: - minimatch: 9.0.4 + minimatch: 9.0.5 - ignore@5.3.1: {} + ignore@5.3.2: {} - import-fresh@3.3.0: + import-fresh@3.3.1: dependencies: parent-module: 1.0.1 resolve-from: 4.0.0 @@ -16649,6 +16573,11 @@ snapshots: pkg-dir: 4.2.0 resolve-cwd: 3.0.0 + import-local@3.2.0: + dependencies: + pkg-dir: 4.2.0 + resolve-cwd: 3.0.0 + import-meta-resolve@4.1.0: optional: true @@ -16670,15 +16599,17 @@ snapshots: ini@4.1.1: optional: true + ini@4.1.3: {} + init-package-json@5.0.0: dependencies: npm-package-arg: 10.1.0 promzard: 1.0.2 read: 2.1.0 read-package-json: 6.0.4 - semver: 7.6.2 + semver: 7.7.1 validate-npm-package-license: 3.0.4 - validate-npm-package-name: 5.0.1 + validate-npm-package-name: 5.0.0 inline-style-parser@0.1.1: {} @@ -16711,7 +16642,7 @@ snapshots: mute-stream: 0.0.8 ora: 5.4.1 run-async: 2.4.1 - rxjs: 7.8.1 + rxjs: 7.8.2 string-width: 4.2.3 strip-ansi: 6.0.1 through: 2.3.8 @@ -16729,7 +16660,7 @@ snapshots: mute-stream: 0.0.8 ora: 5.4.1 run-async: 2.4.1 - rxjs: 7.8.1 + rxjs: 7.8.2 string-width: 4.2.3 strip-ansi: 6.0.1 through: 2.3.8 @@ -16763,10 +16694,6 @@ snapshots: jsbn: 1.1.0 sprintf-js: 1.1.3 - ipaddr.js@1.9.1: {} - - is-absolute-url@4.0.1: {} - is-absolute@1.0.0: dependencies: is-relative: 1.0.0 @@ -16784,6 +16711,11 @@ snapshots: call-bind: 1.0.7 has-tostringtag: 1.0.2 + is-arguments@1.2.0: + dependencies: + call-bound: 1.0.4 + has-tostringtag: 1.0.2 + is-array-buffer@3.0.4: dependencies: call-bind: 1.0.7 @@ -16817,6 +16749,10 @@ snapshots: dependencies: hasown: 2.0.2 + is-core-module@2.16.1: + dependencies: + hasown: 2.0.2 + is-date-object@1.0.5: dependencies: has-tostringtag: 1.0.2 @@ -16839,9 +16775,12 @@ snapshots: is-generator-fn@2.1.0: {} - is-generator-function@1.0.10: + is-generator-function@1.1.0: dependencies: + call-bound: 1.0.4 + get-proto: 1.0.1 has-tostringtag: 1.0.2 + safe-regex-test: 1.1.0 is-glob@4.0.3: dependencies: @@ -16894,6 +16833,13 @@ snapshots: call-bind: 1.0.7 has-tostringtag: 1.0.2 + is-regex@1.2.1: + dependencies: + call-bound: 1.0.4 + gopd: 1.2.0 + has-tostringtag: 1.0.2 + hasown: 2.0.2 + is-relative@1.0.0: dependencies: is-unc-path: 1.0.0 @@ -16904,9 +16850,9 @@ snapshots: dependencies: call-bind: 1.0.7 - is-ssh@1.4.0: + is-ssh@1.4.1: dependencies: - protocols: 2.0.1 + protocols: 2.0.2 is-stream@1.1.0: {} @@ -16928,9 +16874,9 @@ snapshots: dependencies: text-extensions: 1.9.0 - is-typed-array@1.1.13: + is-typed-array@1.1.15: dependencies: - which-typed-array: 1.1.15 + which-typed-array: 1.1.19 is-typedarray@1.0.0: {} @@ -16979,7 +16925,7 @@ snapshots: istanbul-lib-instrument@4.0.3: dependencies: - '@babel/core': 7.24.6 + '@babel/core': 7.26.10 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 semver: 6.3.1 @@ -16988,28 +16934,28 @@ snapshots: istanbul-lib-instrument@5.2.1: dependencies: - '@babel/core': 7.24.6 - '@babel/parser': 7.24.6 + '@babel/core': 7.26.10 + '@babel/parser': 7.26.10 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 semver: 6.3.1 transitivePeerDependencies: - supports-color - istanbul-lib-instrument@6.0.2: + istanbul-lib-instrument@6.0.3: dependencies: - '@babel/core': 7.24.6 - '@babel/parser': 7.24.6 + '@babel/core': 7.26.10 + '@babel/parser': 7.26.10 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 - semver: 7.6.2 + semver: 7.7.1 transitivePeerDependencies: - supports-color istanbul-lib-processinfo@2.0.3: dependencies: archy: 1.0.0 - cross-spawn: 7.0.3 + cross-spawn: 7.0.6 istanbul-lib-coverage: 3.2.2 p-map: 3.0.0 rimraf: 3.0.2 @@ -17023,7 +16969,7 @@ snapshots: istanbul-lib-source-maps@4.0.1: dependencies: - debug: 4.3.5 + debug: 4.4.0 istanbul-lib-coverage: 3.2.2 source-map: 0.6.1 transitivePeerDependencies: @@ -17040,13 +16986,24 @@ snapshots: optionalDependencies: '@pkgjs/parseargs': 0.11.0 - jake@10.9.1: + jackspeak@3.4.3: dependencies: - async: 3.2.5 - chalk: 4.1.2 + '@isaacs/cliui': 8.0.2 + optionalDependencies: + '@pkgjs/parseargs': 0.11.0 + + jake@10.9.2: + dependencies: + async: 3.2.6 + chalk: 4.1.0 filelist: 1.0.4 minimatch: 3.1.2 + jest-canvas-mock@2.5.2: + dependencies: + cssfontparser: 1.2.1 + moo-color: 1.0.3 + jest-changed-files@29.7.0: dependencies: execa: 5.1.1 @@ -17087,7 +17044,7 @@ snapshots: chalk: 4.1.2 create-jest: 29.7.0(@types/node@20.14.9) exit: 0.1.2 - import-local: 3.1.0 + import-local: 3.2.0 jest-config: 29.7.0(@types/node@20.14.9) jest-util: 29.7.0 jest-validate: 29.7.0 @@ -17100,10 +17057,10 @@ snapshots: jest-config@29.7.0(@types/node@20.14.9): dependencies: - '@babel/core': 7.24.6 + '@babel/core': 7.26.10 '@jest/test-sequencer': 29.7.0 '@jest/types': 29.6.3 - babel-jest: 29.7.0(@babel/core@7.24.6) + babel-jest: 29.7.0(@babel/core@7.26.10) chalk: 4.1.2 ci-info: 3.9.0 deepmerge: 4.3.1 @@ -17117,7 +17074,7 @@ snapshots: jest-runner: 29.7.0 jest-util: 29.7.0 jest-validate: 29.7.0 - micromatch: 4.0.7 + micromatch: 4.0.8 parse-json: 5.2.0 pretty-format: 29.7.0 slash: 3.0.0 @@ -17130,7 +17087,7 @@ snapshots: jest-diff@29.7.0: dependencies: - chalk: 4.1.2 + chalk: 4.1.0 diff-sequences: 29.6.3 jest-get-type: 29.6.3 pretty-format: 29.7.0 @@ -17169,7 +17126,7 @@ snapshots: jest-regex-util: 29.6.3 jest-util: 29.7.0 jest-worker: 29.7.0 - micromatch: 4.0.7 + micromatch: 4.0.8 walker: 1.0.8 optionalDependencies: fsevents: 2.3.3 @@ -17195,12 +17152,12 @@ snapshots: jest-message-util@29.7.0: dependencies: - '@babel/code-frame': 7.24.6 + '@babel/code-frame': 7.26.2 '@jest/types': 29.6.3 '@types/stack-utils': 2.0.3 chalk: 4.1.2 graceful-fs: 4.2.11 - micromatch: 4.0.7 + micromatch: 4.0.8 pretty-format: 29.7.0 slash: 3.0.0 stack-utils: 2.0.6 @@ -17220,7 +17177,7 @@ snapshots: jest-process-manager: 0.4.0 jest-runner: 29.7.0 nyc: 15.1.0 - playwright-core: 1.44.1 + playwright-core: 1.51.1 rimraf: 3.0.2 uuid: 8.3.2 transitivePeerDependencies: @@ -17237,7 +17194,7 @@ snapshots: chalk: 4.1.2 cwd: 0.10.0 exit: 0.1.2 - find-process: 1.4.7 + find-process: 1.4.10 prompts: 2.4.2 signal-exit: 3.0.7 spawnd: 5.0.0 @@ -17264,8 +17221,8 @@ snapshots: jest-pnp-resolver: 1.2.3(jest-resolve@29.7.0) jest-util: 29.7.0 jest-validate: 29.7.0 - resolve: 1.22.8 - resolve.exports: 2.0.2 + resolve: 1.22.10 + resolve.exports: 2.0.3 slash: 3.0.0 jest-runner@29.7.0: @@ -17305,7 +17262,7 @@ snapshots: '@jest/types': 29.6.3 '@types/node': 20.14.9 chalk: 4.1.2 - cjs-module-lexer: 1.3.1 + cjs-module-lexer: 1.4.3 collect-v8-coverage: 1.0.2 glob: 7.2.3 graceful-fs: 4.2.11 @@ -17327,15 +17284,15 @@ snapshots: jest-snapshot@29.7.0: dependencies: - '@babel/core': 7.24.6 - '@babel/generator': 7.24.6 - '@babel/plugin-syntax-jsx': 7.24.6(@babel/core@7.24.6) - '@babel/plugin-syntax-typescript': 7.24.6(@babel/core@7.24.6) - '@babel/types': 7.24.6 + '@babel/core': 7.26.10 + '@babel/generator': 7.26.10 + '@babel/plugin-syntax-jsx': 7.25.9(@babel/core@7.26.10) + '@babel/plugin-syntax-typescript': 7.25.9(@babel/core@7.26.10) + '@babel/types': 7.26.10 '@jest/expect-utils': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - babel-preset-current-node-syntax: 1.0.1(@babel/core@7.24.6) + babel-preset-current-node-syntax: 1.1.0(@babel/core@7.26.10) chalk: 4.1.2 expect: 29.7.0 graceful-fs: 4.2.11 @@ -17346,7 +17303,7 @@ snapshots: jest-util: 29.7.0 natural-compare: 1.4.0 pretty-format: 29.7.0 - semver: 7.6.2 + semver: 7.7.1 transitivePeerDependencies: - supports-color @@ -17371,7 +17328,7 @@ snapshots: jest-watch-typeahead@2.2.2(jest@29.7.0(@types/node@20.14.9)): dependencies: ansi-escapes: 6.2.1 - chalk: 5.3.0 + chalk: 5.4.1 jest: 29.7.0(@types/node@20.14.9) jest-regex-util: 29.6.3 jest-watcher: 29.7.0 @@ -17407,7 +17364,7 @@ snapshots: dependencies: '@jest/core': 29.7.0 '@jest/types': 29.6.3 - import-local: 3.1.0 + import-local: 3.2.0 jest-cli: 29.7.0(@types/node@20.14.9) transitivePeerDependencies: - '@types/node' @@ -17415,10 +17372,10 @@ snapshots: - supports-color - ts-node - jiti@1.21.0: + jiti@2.4.2: optional: true - joi@17.13.1: + joi@17.13.3: dependencies: '@hapi/hoek': 9.3.0 '@hapi/topo': 5.1.0 @@ -17430,7 +17387,7 @@ snapshots: js-tokens@4.0.0: {} - js-tokens@9.0.0: {} + js-tokens@9.0.1: {} js-yaml@3.14.1: dependencies: @@ -17449,14 +17406,14 @@ snapshots: dependencies: cssstyle: 3.0.0 data-urls: 5.0.0 - decimal.js: 10.4.3 - form-data: 4.0.0 + decimal.js: 10.5.0 + form-data: 4.0.2 html-encoding-sniffer: 4.0.0 http-proxy-agent: 7.0.2 - https-proxy-agent: 7.0.4 + https-proxy-agent: 7.0.6 is-potential-custom-element-name: 1.0.1 - nwsapi: 2.2.10 - parse5: 7.1.2 + nwsapi: 2.2.19 + parse5: 7.2.1 rrweb-cssom: 0.6.0 saxes: 6.0.0 symbol-tree: 3.2.4 @@ -17465,15 +17422,15 @@ snapshots: webidl-conversions: 7.0.0 whatwg-encoding: 3.1.1 whatwg-mimetype: 4.0.0 - whatwg-url: 14.0.0 - ws: 8.17.0 + whatwg-url: 14.2.0 + ws: 8.18.1 xml-name-validator: 5.0.0 transitivePeerDependencies: - bufferutil - supports-color - utf-8-validate - jsesc@2.5.2: {} + jsesc@3.1.0: {} json-buffer@3.0.1: {} @@ -17493,7 +17450,7 @@ snapshots: jsonc-parser@3.2.0: {} - jsonc-parser@3.2.1: {} + jsonc-parser@3.3.1: {} jsonfile@4.0.0: optionalDependencies: @@ -17535,17 +17492,11 @@ snapshots: layout-base@2.0.1: {} - lazy-universal-dotenv@4.0.0: + lerna@8.1.4(@swc/core@1.11.11(@swc/helpers@0.5.13))(encoding@0.1.13): dependencies: - app-root-dir: 1.0.2 - dotenv: 16.4.5 - dotenv-expand: 10.0.0 - - lerna@8.1.4(@swc/core@1.5.24(@swc/helpers@0.5.13))(encoding@0.1.13): - dependencies: - '@lerna/create': 8.1.4(@swc/core@1.5.24(@swc/helpers@0.5.13))(encoding@0.1.13)(typescript@5.5.2) + '@lerna/create': 8.1.4(@swc/core@1.11.11(@swc/helpers@0.5.13))(encoding@0.1.13)(typescript@5.5.2) '@npmcli/run-script': 7.0.2 - '@nx/devkit': 19.3.2(nx@19.3.2(@swc/core@1.5.24(@swc/helpers@0.5.13))) + '@nx/devkit': 19.8.14(nx@19.8.14(@swc/core@1.11.11(@swc/helpers@0.5.13))) '@octokit/plugin-enterprise-rest': 6.0.1 '@octokit/rest': 19.0.11(encoding@0.1.13) byte-size: 8.1.1 @@ -17560,7 +17511,7 @@ snapshots: dedent: 0.7.0 envinfo: 7.8.1 execa: 5.0.0 - fs-extra: 11.2.0 + fs-extra: 11.3.0 get-port: 5.1.1 get-stream: 6.0.0 git-url-parse: 13.1.0 @@ -17588,7 +17539,7 @@ snapshots: npm-packlist: 5.1.1 npm-registry-fetch: 14.0.5 npmlog: 6.0.2 - nx: 19.3.2(@swc/core@1.5.24(@swc/helpers@0.5.13)) + nx: 19.8.14(@swc/core@1.11.11(@swc/helpers@0.5.13)) p-map: 4.0.0 p-map-series: 2.1.0 p-pipe: 3.1.0 @@ -17601,7 +17552,7 @@ snapshots: read-package-json: 6.0.4 resolve-from: 5.0.0 rimraf: 4.4.1 - semver: 7.6.2 + semver: 7.7.1 signal-exit: 3.0.7 slash: 3.0.0 ssri: 9.0.1 @@ -17641,7 +17592,7 @@ snapshots: npm-package-arg: 10.1.0 npm-registry-fetch: 14.0.5 proc-log: 3.0.0 - semver: 7.6.2 + semver: 7.7.1 sigstore: 1.9.0 ssri: 10.0.6 transitivePeerDependencies: @@ -17656,7 +17607,7 @@ snapshots: is-plain-object: 5.0.0 object.map: 1.0.1 rechoir: 0.8.0 - resolve: 1.22.8 + resolve: 1.22.10 lightningcss-darwin-arm64@1.25.1: optional: true @@ -17747,11 +17698,11 @@ snapshots: lilconfig@2.1.0: {} - lilconfig@3.1.1: {} + lilconfig@3.1.3: {} lines-and-columns@1.2.4: {} - lines-and-columns@2.0.4: {} + lines-and-columns@2.0.3: {} lint-staged@14.0.1(enquirer@2.3.6): dependencies: @@ -17775,7 +17726,7 @@ snapshots: colorette: 2.0.20 eventemitter3: 5.0.1 log-update: 5.0.1 - rfdc: 1.3.1 + rfdc: 1.4.1 wrap-ansi: 8.1.0 optionalDependencies: enquirer: 2.3.6 @@ -17805,6 +17756,11 @@ snapshots: mlly: 1.7.0 pkg-types: 1.1.1 + local-pkg@0.5.1: + dependencies: + mlly: 1.7.4 + pkg-types: 1.3.1 + locate-path@2.0.0: dependencies: p-locate: 2.0.0 @@ -17820,6 +17776,8 @@ snapshots: lodash-es@4.17.21: {} + lodash.clonedeep@4.5.0: {} + lodash.flattendeep@4.4.0: {} lodash.get@4.4.2: {} @@ -17853,7 +17811,7 @@ snapshots: log-symbols@5.1.0: dependencies: - chalk: 5.3.0 + chalk: 5.4.1 is-unicode-supported: 1.3.0 log-update@1.0.2: @@ -17869,6 +17827,8 @@ snapshots: strip-ansi: 7.1.0 wrap-ansi: 8.1.0 + loglevel@1.9.2: {} + longest-streak@3.1.0: {} longest@2.0.1: {} @@ -17881,7 +17841,7 @@ snapshots: dependencies: get-func-name: 2.0.2 - loupe@3.1.2: {} + loupe@3.1.3: {} lower-case@2.0.2: dependencies: @@ -17889,6 +17849,8 @@ snapshots: lru-cache@10.2.2: {} + lru-cache@10.4.3: {} + lru-cache@4.1.5: dependencies: pseudomap: 1.0.2 @@ -17908,15 +17870,19 @@ snapshots: magic-string@0.27.0: dependencies: - '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/sourcemap-codec': 1.5.0 magic-string@0.30.10: dependencies: '@jridgewell/sourcemap-codec': 1.4.15 + magic-string@0.30.17: + dependencies: + '@jridgewell/sourcemap-codec': 1.5.0 + magic-string@0.30.8: dependencies: - '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/sourcemap-codec': 1.5.0 make-dir@2.1.0: dependencies: @@ -17929,11 +17895,11 @@ snapshots: make-dir@4.0.0: dependencies: - semver: 7.6.2 + semver: 7.7.1 make-fetch-happen@11.1.1: dependencies: - agentkeepalive: 4.5.0 + agentkeepalive: 4.6.0 cacache: 17.1.4 http-cache-semantics: 4.1.1 http-proxy-agent: 5.0.0 @@ -17944,7 +17910,7 @@ snapshots: minipass-fetch: 3.0.5 minipass-flush: 1.0.5 minipass-pipeline: 1.2.4 - negotiator: 0.6.3 + negotiator: 0.6.4 promise-retry: 2.0.1 socks-proxy-agent: 7.0.0 ssri: 10.0.6 @@ -17954,14 +17920,14 @@ snapshots: make-fetch-happen@13.0.1: dependencies: '@npmcli/agent': 2.2.2 - cacache: 18.0.3 + cacache: 18.0.4 http-cache-semantics: 4.1.1 is-lambda: 1.0.1 minipass: 7.1.2 minipass-fetch: 3.0.5 minipass-flush: 1.0.5 minipass-pipeline: 1.2.4 - negotiator: 0.6.3 + negotiator: 0.6.4 proc-log: 4.2.0 promise-retry: 2.0.1 ssri: 10.0.6 @@ -17988,10 +17954,6 @@ snapshots: markdown-table@3.0.3: {} - markdown-to-jsx@7.5.0(react@18.3.1): - dependencies: - react: 18.3.1 - marked@13.0.3: {} match-sorter@6.3.4: @@ -17999,6 +17961,8 @@ snapshots: '@babel/runtime': 7.24.6 remove-accents: 0.5.0 + math-intrinsics@1.1.0: {} + mathjax-full@3.2.2: dependencies: esm: 3.2.25 @@ -18192,8 +18156,6 @@ snapshots: dependencies: '@types/mdast': 4.0.4 - media-typer@0.3.0: {} - memfs@3.5.3: dependencies: fs-monkey: 1.0.6 @@ -18218,9 +18180,7 @@ snapshots: redent: 3.0.0 trim-newlines: 3.0.1 type-fest: 0.18.1 - yargs-parser: 20.2.4 - - merge-descriptors@1.0.1: {} + yargs-parser: 20.2.9 merge-stream@2.0.0: {} @@ -18252,8 +18212,6 @@ snapshots: transitivePeerDependencies: - supports-color - methods@1.1.2: {} - mhchemparser@4.2.1: {} micromark-core-commonmark@2.0.1: @@ -18549,6 +18507,11 @@ snapshots: braces: 3.0.3 picomatch: 2.3.1 + micromatch@4.0.8: + dependencies: + braces: 3.0.3 + picomatch: 2.3.1 + mime-db@1.52.0: {} mime-types@2.1.35: @@ -18587,6 +18550,10 @@ snapshots: dependencies: brace-expansion: 2.0.1 + minimatch@9.0.5: + dependencies: + brace-expansion: 2.0.1 + minimist-options@4.1.0: dependencies: arrify: 1.0.1 @@ -18617,7 +18584,7 @@ snapshots: dependencies: minipass: 3.3.6 - minipass-json-stream@1.0.1: + minipass-json-stream@1.0.2: dependencies: jsonparse: 1.3.1 minipass: 3.3.6 @@ -18647,10 +18614,6 @@ snapshots: mj-context-menu@0.6.1: {} - mkdirp@0.5.6: - dependencies: - minimist: 1.2.8 - mkdirp@1.0.4: {} mlly@1.7.0: @@ -18667,11 +18630,20 @@ snapshots: pkg-types: 1.2.1 ufo: 1.5.4 + mlly@1.7.4: + dependencies: + acorn: 8.14.1 + pathe: 2.0.3 + pkg-types: 1.3.1 + ufo: 1.5.4 + modify-values@1.0.1: {} module-details-from-path@1.0.3: {} - ms@2.0.0: {} + moo-color@1.0.3: + dependencies: + color-name: 1.1.4 ms@2.1.2: {} @@ -18683,7 +18655,7 @@ snapshots: array-differ: 3.0.0 array-union: 2.1.0 arrify: 2.0.1 - minimatch: 3.1.2 + minimatch: 3.0.5 mute-stream@0.0.5: {} @@ -18697,12 +18669,16 @@ snapshots: object-assign: 4.1.1 thenify-all: 1.6.0 + nanoid@3.3.11: {} + nanoid@3.3.7: {} natural-compare@1.4.0: {} negotiator@0.6.3: {} + negotiator@0.6.4: {} + neo-async@2.6.2: {} next-themes@0.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): @@ -18710,7 +18686,7 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - next@15.0.0(@babel/core@7.24.6)(@opentelemetry/api@1.9.0)(@playwright/test@1.44.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + next@15.0.0(@babel/core@7.24.6)(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: '@next/env': 15.0.0 '@swc/counter': 0.1.3 @@ -18731,27 +18707,27 @@ snapshots: '@next/swc-win32-arm64-msvc': 15.0.0 '@next/swc-win32-x64-msvc': 15.0.0 '@opentelemetry/api': 1.9.0 - '@playwright/test': 1.44.1 + '@playwright/test': 1.51.1 sharp: 0.33.5 transitivePeerDependencies: - '@babel/core' - babel-plugin-macros - nextra-theme-docs@3.0.15(next@15.0.0(@babel/core@7.24.6)(@opentelemetry/api@1.9.0)(@playwright/test@1.44.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(nextra@3.0.15(@types/react@18.3.11)(acorn@8.13.0)(next@15.0.0(@babel/core@7.24.6)(@opentelemetry/api@1.9.0)(@playwright/test@1.44.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + nextra-theme-docs@3.0.15(next@15.0.0(@babel/core@7.24.6)(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(nextra@3.0.15(@types/react@18.3.11)(acorn@8.13.0)(next@15.0.0(@babel/core@7.24.6)(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: '@headlessui/react': 2.1.10(react-dom@18.3.1(react@18.3.1))(react@18.3.1) clsx: 2.1.1 escape-string-regexp: 5.0.0 flexsearch: 0.7.43 - next: 15.0.0(@babel/core@7.24.6)(@opentelemetry/api@1.9.0)(@playwright/test@1.44.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + next: 15.0.0(@babel/core@7.24.6)(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) next-themes: 0.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - nextra: 3.0.15(@types/react@18.3.11)(acorn@8.13.0)(next@15.0.0(@babel/core@7.24.6)(@opentelemetry/api@1.9.0)(@playwright/test@1.44.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.2) + nextra: 3.0.15(@types/react@18.3.11)(acorn@8.13.0)(next@15.0.0(@babel/core@7.24.6)(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.2) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) scroll-into-view-if-needed: 3.1.0 zod: 3.23.8 - nextra@3.0.15(@types/react@18.3.11)(acorn@8.13.0)(next@15.0.0(@babel/core@7.24.6)(@opentelemetry/api@1.9.0)(@playwright/test@1.44.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.2): + nextra@3.0.15(@types/react@18.3.11)(acorn@8.13.0)(next@15.0.0(@babel/core@7.24.6)(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.2): dependencies: '@formatjs/intl-localematcher': 0.5.4 '@headlessui/react': 2.1.10(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -18771,7 +18747,7 @@ snapshots: hast-util-to-estree: 3.1.0 katex: 0.16.10 negotiator: 0.6.3 - next: 15.0.0(@babel/core@7.24.6)(@opentelemetry/api@1.9.0)(@playwright/test@1.44.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + next: 15.0.0(@babel/core@7.24.6)(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) p-limit: 6.1.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -18822,16 +18798,16 @@ snapshots: optionalDependencies: encoding: 0.1.13 - node-gyp@10.1.0: + node-gyp@10.3.1: dependencies: env-paths: 2.2.1 - exponential-backoff: 3.1.1 - glob: 10.4.1 + exponential-backoff: 3.1.2 + glob: 10.4.5 graceful-fs: 4.2.11 make-fetch-happen: 13.0.1 nopt: 7.2.1 - proc-log: 3.0.0 - semver: 7.6.2 + proc-log: 4.2.0 + semver: 7.7.1 tar: 6.2.1 which: 4.0.0 transitivePeerDependencies: @@ -18855,16 +18831,18 @@ snapshots: lodash.get: 4.4.2 lower-case: 2.0.2 mkdirp: 1.0.4 - resolve: 1.22.8 + resolve: 1.22.10 title-case: 3.0.3 upper-case: 2.0.2 node-preload@0.2.1: dependencies: - process-on-spawn: 1.0.0 + process-on-spawn: 1.1.0 node-releases@2.0.14: {} + node-releases@2.0.19: {} + nopt@7.2.1: dependencies: abbrev: 2.0.0 @@ -18872,28 +18850,28 @@ snapshots: normalize-package-data@2.5.0: dependencies: hosted-git-info: 2.8.9 - resolve: 1.22.8 + resolve: 1.22.10 semver: 5.7.2 validate-npm-package-license: 3.0.4 normalize-package-data@3.0.3: dependencies: hosted-git-info: 4.1.0 - is-core-module: 2.13.1 - semver: 7.6.2 + is-core-module: 2.16.1 + semver: 7.7.1 validate-npm-package-license: 3.0.4 normalize-package-data@5.0.0: dependencies: - hosted-git-info: 6.1.1 - is-core-module: 2.13.1 - semver: 7.6.2 + hosted-git-info: 6.1.3 + is-core-module: 2.16.1 + semver: 7.7.1 validate-npm-package-license: 3.0.4 normalize-package-data@6.0.2: dependencies: hosted-git-info: 7.0.2 - semver: 7.6.2 + semver: 7.7.1 validate-npm-package-license: 3.0.4 normalize-path@3.0.0: {} @@ -18908,7 +18886,7 @@ snapshots: npm-install-checks@6.3.0: dependencies: - semver: 7.6.2 + semver: 7.7.1 npm-normalize-package-bin@1.0.1: {} @@ -18916,22 +18894,22 @@ snapshots: npm-package-arg@10.1.0: dependencies: - hosted-git-info: 6.1.1 + hosted-git-info: 6.1.3 proc-log: 3.0.0 - semver: 7.6.2 - validate-npm-package-name: 5.0.1 + semver: 7.7.1 + validate-npm-package-name: 5.0.0 - npm-package-arg@11.0.2: + npm-package-arg@11.0.3: dependencies: hosted-git-info: 7.0.2 proc-log: 4.2.0 - semver: 7.6.2 - validate-npm-package-name: 5.0.1 + semver: 7.7.1 + validate-npm-package-name: 5.0.0 npm-package-arg@8.1.1: dependencies: hosted-git-info: 3.0.8 - semver: 7.6.2 + semver: 7.7.1 validate-npm-package-name: 3.0.0 npm-packlist@5.1.1: @@ -18945,19 +18923,19 @@ snapshots: dependencies: ignore-walk: 6.0.5 - npm-pick-manifest@9.0.1: + npm-pick-manifest@9.1.0: dependencies: npm-install-checks: 6.3.0 npm-normalize-package-bin: 3.0.1 - npm-package-arg: 11.0.2 - semver: 7.6.2 + npm-package-arg: 11.0.3 + semver: 7.7.1 npm-registry-fetch@14.0.5: dependencies: make-fetch-happen: 11.1.1 minipass: 5.0.0 minipass-fetch: 3.0.5 - minipass-json-stream: 1.0.1 + minipass-json-stream: 1.0.2 minizlib: 2.1.2 npm-package-arg: 10.1.0 proc-log: 3.0.0 @@ -18970,9 +18948,9 @@ snapshots: make-fetch-happen: 13.0.1 minipass: 7.1.2 minipass-fetch: 3.0.5 - minipass-json-stream: 1.0.1 + minipass-json-stream: 1.0.2 minizlib: 2.1.2 - npm-package-arg: 11.0.2 + npm-package-arg: 11.0.3 proc-log: 4.2.0 transitivePeerDependencies: - supports-color @@ -18980,12 +18958,12 @@ snapshots: npm-run-all2@5.0.2: dependencies: ansi-styles: 5.2.0 - cross-spawn: 7.0.3 + cross-spawn: 7.0.6 memorystream: 0.3.1 minimatch: 3.1.2 pidtree: 0.5.0 read-pkg: 5.2.0 - shell-quote: 1.8.1 + shell-quote: 1.8.2 npm-run-path@2.0.2: dependencies: @@ -19014,36 +18992,36 @@ snapshots: number-is-nan@1.0.1: {} - nwsapi@2.2.10: {} + nwsapi@2.2.19: {} - nx@19.3.2(@swc/core@1.5.24(@swc/helpers@0.5.13)): + nx@19.8.14(@swc/core@1.11.11(@swc/helpers@0.5.13)): dependencies: - '@nrwl/tao': 19.3.2(@swc/core@1.5.24(@swc/helpers@0.5.13)) + '@napi-rs/wasm-runtime': 0.2.4 + '@nrwl/tao': 19.8.14(@swc/core@1.11.11(@swc/helpers@0.5.13)) '@yarnpkg/lockfile': 1.1.0 '@yarnpkg/parsers': 3.0.0-rc.46 '@zkochan/js-yaml': 0.0.7 - axios: 1.7.2 - chalk: 4.1.2 + axios: 1.8.4 + chalk: 4.1.0 cli-cursor: 3.1.0 cli-spinners: 2.6.1 cliui: 8.0.1 - dotenv: 16.4.5 - dotenv-expand: 11.0.6 + dotenv: 16.4.7 + dotenv-expand: 11.0.7 enquirer: 2.3.6 figures: 3.2.0 flat: 5.0.2 front-matter: 4.0.2 - fs-extra: 11.2.0 - ignore: 5.3.1 + ignore: 5.3.2 jest-diff: 29.7.0 jsonc-parser: 3.2.0 - lines-and-columns: 2.0.4 + lines-and-columns: 2.0.3 minimatch: 9.0.3 node-machine-id: 1.1.12 npm-run-path: 4.0.1 open: 8.4.2 ora: 5.3.0 - semver: 7.6.2 + semver: 7.7.1 string-width: 4.2.3 strong-log-transformer: 2.1.0 tar-stream: 2.2.0 @@ -19053,17 +19031,17 @@ snapshots: yargs: 17.7.2 yargs-parser: 21.1.1 optionalDependencies: - '@nx/nx-darwin-arm64': 19.3.2 - '@nx/nx-darwin-x64': 19.3.2 - '@nx/nx-freebsd-x64': 19.3.2 - '@nx/nx-linux-arm-gnueabihf': 19.3.2 - '@nx/nx-linux-arm64-gnu': 19.3.2 - '@nx/nx-linux-arm64-musl': 19.3.2 - '@nx/nx-linux-x64-gnu': 19.3.2 - '@nx/nx-linux-x64-musl': 19.3.2 - '@nx/nx-win32-arm64-msvc': 19.3.2 - '@nx/nx-win32-x64-msvc': 19.3.2 - '@swc/core': 1.5.24(@swc/helpers@0.5.13) + '@nx/nx-darwin-arm64': 19.8.14 + '@nx/nx-darwin-x64': 19.8.14 + '@nx/nx-freebsd-x64': 19.8.14 + '@nx/nx-linux-arm-gnueabihf': 19.8.14 + '@nx/nx-linux-arm64-gnu': 19.8.14 + '@nx/nx-linux-arm64-musl': 19.8.14 + '@nx/nx-linux-x64-gnu': 19.8.14 + '@nx/nx-linux-x64-musl': 19.8.14 + '@nx/nx-win32-arm64-msvc': 19.8.14 + '@nx/nx-win32-x64-msvc': 19.8.14 + '@swc/core': 1.11.11(@swc/helpers@0.5.13) transitivePeerDependencies: - debug @@ -19089,7 +19067,7 @@ snapshots: make-dir: 3.1.0 node-preload: 0.2.1 p-map: 3.0.0 - process-on-spawn: 1.0.0 + process-on-spawn: 1.1.0 resolve-from: 5.0.0 rimraf: 3.0.2 signal-exit: 3.0.7 @@ -19103,6 +19081,8 @@ snapshots: object-inspect@1.13.1: {} + object-inspect@1.13.4: {} + object-is@1.1.6: dependencies: call-bind: 1.0.7 @@ -19135,10 +19115,6 @@ snapshots: objectorarray@1.0.5: {} - on-finished@2.4.1: - dependencies: - ee-first: 1.1.1 - once@1.4.0: dependencies: wrappy: 1.0.2 @@ -19168,9 +19144,9 @@ snapshots: ora@5.3.0: dependencies: bl: 4.1.0 - chalk: 4.1.2 + chalk: 4.1.0 cli-cursor: 3.1.0 - cli-spinners: 2.9.2 + cli-spinners: 2.6.1 is-interactive: 1.0.0 log-symbols: 4.1.0 strip-ansi: 6.0.1 @@ -19190,7 +19166,7 @@ snapshots: ora@6.3.1: dependencies: - chalk: 5.3.0 + chalk: 5.4.1 cli-cursor: 4.0.0 cli-spinners: 2.9.2 is-interactive: 2.0.0 @@ -19224,7 +19200,7 @@ snapshots: p-limit@5.0.0: dependencies: - yocto-queue: 1.0.0 + yocto-queue: 1.2.0 p-limit@6.1.0: dependencies: @@ -19280,20 +19256,22 @@ snapshots: lodash.flattendeep: 4.4.0 release-zalgo: 1.0.0 + package-json-from-dist@1.0.1: {} + package-manager-detector@0.2.2: {} pacote@17.0.7: dependencies: - '@npmcli/git': 5.0.7 + '@npmcli/git': 5.0.8 '@npmcli/installed-package-contents': 2.1.0 '@npmcli/promise-spawn': 7.0.2 '@npmcli/run-script': 7.0.2 - cacache: 18.0.3 + cacache: 18.0.4 fs-minipass: 3.0.3 minipass: 7.1.2 - npm-package-arg: 11.0.2 + npm-package-arg: 11.0.3 npm-packlist: 8.0.2 - npm-pick-manifest: 9.0.1 + npm-pick-manifest: 9.1.0 npm-registry-fetch: 16.2.1 proc-log: 4.2.0 promise-retry: 2.0.1 @@ -19339,7 +19317,7 @@ snapshots: parse-json@5.2.0: dependencies: - '@babel/code-frame': 7.24.6 + '@babel/code-frame': 7.26.2 error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 @@ -19357,19 +19335,21 @@ snapshots: parse-passwd@1.0.0: {} - parse-path@7.0.0: + parse-path@7.0.1: dependencies: - protocols: 2.0.1 + protocols: 2.0.2 parse-url@8.1.0: dependencies: - parse-path: 7.0.0 + parse-path: 7.0.1 parse5@7.1.2: dependencies: entities: 4.5.0 - parseurl@1.3.3: {} + parse5@7.2.1: + dependencies: + entities: 4.5.0 pascal-case@3.1.2: dependencies: @@ -19410,8 +19390,6 @@ snapshots: lru-cache: 10.2.2 minipass: 7.1.2 - path-to-regexp@0.1.7: {} - path-type@3.0.0: dependencies: pify: 3.0.0 @@ -19420,6 +19398,8 @@ snapshots: pathe@1.1.2: {} + pathe@2.0.3: {} + pathval@1.1.1: {} pathval@2.0.0: {} @@ -19462,10 +19442,6 @@ snapshots: dependencies: find-up: 4.1.0 - pkg-dir@5.0.0: - dependencies: - find-up: 5.0.0 - pkg-types@1.1.1: dependencies: confbox: 0.1.7 @@ -19478,18 +19454,24 @@ snapshots: mlly: 1.7.2 pathe: 1.1.2 - playwright-core@1.44.1: {} + pkg-types@1.3.1: + dependencies: + confbox: 0.1.8 + mlly: 1.7.4 + pathe: 2.0.3 + + playwright-core@1.51.1: {} - playwright@1.44.1: + playwright@1.51.1: dependencies: - playwright-core: 1.44.1 + playwright-core: 1.51.1 optionalDependencies: fsevents: 2.3.2 plop@3.1.2: dependencies: '@types/liftoff': 4.0.3 - chalk: 5.3.0 + chalk: 5.4.1 interpret: 2.2.0 liftoff: 4.0.0 minimist: 1.2.8 @@ -19506,47 +19488,46 @@ snapshots: polished@4.3.1: dependencies: - '@babel/runtime': 7.24.6 + '@babel/runtime': 7.26.10 - portfinder@1.0.32: + portfinder@1.0.35: dependencies: - async: 2.6.4 - debug: 3.2.7 - mkdirp: 0.5.6 + async: 3.2.6 + debug: 4.4.0 transitivePeerDependencies: - supports-color possible-typed-array-names@1.0.0: {} - postcss-load-config@4.0.2(postcss@8.4.38): + postcss-load-config@4.0.2(postcss@8.5.3): dependencies: - lilconfig: 3.1.1 - yaml: 2.4.3 + lilconfig: 3.1.3 + yaml: 2.7.0 optionalDependencies: - postcss: 8.4.38 + postcss: 8.5.3 - postcss-modules-extract-imports@3.1.0(postcss@8.4.38): + postcss-modules-extract-imports@3.1.0(postcss@8.5.3): dependencies: - postcss: 8.4.38 + postcss: 8.5.3 - postcss-modules-local-by-default@4.0.5(postcss@8.4.38): + postcss-modules-local-by-default@4.2.0(postcss@8.5.3): dependencies: - icss-utils: 5.1.0(postcss@8.4.38) - postcss: 8.4.38 - postcss-selector-parser: 6.1.0 + icss-utils: 5.1.0(postcss@8.5.3) + postcss: 8.5.3 + postcss-selector-parser: 7.1.0 postcss-value-parser: 4.2.0 - postcss-modules-scope@3.2.0(postcss@8.4.38): + postcss-modules-scope@3.2.1(postcss@8.5.3): dependencies: - postcss: 8.4.38 - postcss-selector-parser: 6.1.0 + postcss: 8.5.3 + postcss-selector-parser: 7.1.0 - postcss-modules-values@4.0.0(postcss@8.4.38): + postcss-modules-values@4.0.0(postcss@8.5.3): dependencies: - icss-utils: 5.1.0(postcss@8.4.38) - postcss: 8.4.38 + icss-utils: 5.1.0(postcss@8.5.3) + postcss: 8.5.3 - postcss-selector-parser@6.1.0: + postcss-selector-parser@7.1.0: dependencies: cssesc: 3.0.0 util-deprecate: 1.0.2 @@ -19565,9 +19546,9 @@ snapshots: picocolors: 1.0.1 source-map-js: 1.2.0 - postcss@8.4.47: + postcss@8.5.3: dependencies: - nanoid: 3.3.7 + nanoid: 3.3.11 picocolors: 1.1.1 source-map-js: 1.2.1 @@ -19583,6 +19564,8 @@ snapshots: prettier@3.3.3: {} + prettier@3.5.3: {} + pretty-error@4.0.0: dependencies: lodash: 4.17.21 @@ -19600,15 +19583,13 @@ snapshots: ansi-styles: 5.2.0 react-is: 18.3.1 - pretty-hrtime@1.0.3: {} - proc-log@3.0.0: {} proc-log@4.2.0: {} process-nextick-args@2.0.1: {} - process-on-spawn@1.0.0: + process-on-spawn@1.1.0: dependencies: fromentries: 1.3.2 @@ -19632,26 +19613,17 @@ snapshots: dependencies: read: 3.0.1 - prop-types@15.8.1: - dependencies: - loose-envify: 1.4.0 - object-assign: 4.1.1 - react-is: 16.13.1 - property-information@6.5.0: {} - protocols@2.0.1: {} - - proxy-addr@2.0.7: - dependencies: - forwarded: 0.2.0 - ipaddr.js: 1.9.1 + protocols@2.0.2: {} proxy-from-env@1.1.0: {} pseudomap@1.0.2: {} - psl@1.9.0: {} + psl@1.15.0: + dependencies: + punycode: 2.3.1 punycode@1.4.1: {} @@ -19661,13 +19633,9 @@ snapshots: q@1.5.1: {} - qs@6.11.0: - dependencies: - side-channel: 1.0.6 - - qs@6.12.1: + qs@6.14.0: dependencies: - side-channel: 1.0.6 + side-channel: 1.1.0 querystringify@2.2.0: {} @@ -19675,31 +19643,17 @@ snapshots: quick-lru@4.0.1: {} - ramda@0.29.0: {} - randombytes@2.1.0: dependencies: safe-buffer: 5.2.1 range-parser@1.2.1: {} - raw-body@2.5.2: - dependencies: - bytes: 3.1.2 - http-errors: 2.0.0 - iconv-lite: 0.4.24 - unpipe: 1.0.0 - raw.macro@0.4.2: dependencies: babel-plugin-macros: 2.8.0 - react-colorful@5.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - react-confetti@6.1.0(react@18.3.1): + react-confetti@6.4.0(react@18.3.1): dependencies: react: 18.3.1 tween-functions: 1.2.0 @@ -19708,17 +19662,17 @@ snapshots: dependencies: typescript: 5.5.2 - react-docgen@7.0.3: + react-docgen@7.1.1: dependencies: - '@babel/core': 7.24.6 - '@babel/traverse': 7.24.6 - '@babel/types': 7.24.6 + '@babel/core': 7.26.10 + '@babel/traverse': 7.26.10 + '@babel/types': 7.26.10 '@types/babel__core': 7.20.5 '@types/babel__traverse': 7.20.6 '@types/doctrine': 0.0.9 '@types/resolve': 1.20.6 doctrine: 3.0.0 - resolve: 1.22.8 + resolve: 1.22.10 strip-indent: 4.0.0 transitivePeerDependencies: - supports-color @@ -19729,14 +19683,6 @@ snapshots: react: 18.3.1 scheduler: 0.23.2 - react-element-to-jsx-string@15.0.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - '@base2/pretty-print-object': 1.0.1 - is-plain-object: 5.0.0 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - react-is: 18.1.0 - react-hook-form@7.48.2(react@18.3.1): dependencies: react: 18.3.1 @@ -19753,8 +19699,6 @@ snapshots: react-is@17.0.2: {} - react-is@18.1.0: {} - react-is@18.3.1: {} react-markdown@9.0.1(@types/react@18.3.11)(react@18.3.1): @@ -19837,14 +19781,14 @@ snapshots: read-package-json@6.0.4: dependencies: - glob: 10.4.1 + glob: 10.4.5 json-parse-even-better-errors: 3.0.2 normalize-package-data: 5.0.0 npm-normalize-package-bin: 3.0.1 read-package-json@7.0.1: dependencies: - glob: 10.4.1 + glob: 10.4.5 json-parse-even-better-errors: 3.0.2 normalize-package-data: 6.0.2 npm-normalize-package-bin: 3.0.1 @@ -19909,7 +19853,7 @@ snapshots: is-fullwidth-code-point: 1.0.0 mute-stream: 0.0.5 - recast@0.23.9: + recast@0.23.11: dependencies: ast-types: 0.16.1 esprima: 4.0.1 @@ -19919,7 +19863,7 @@ snapshots: rechoir@0.8.0: dependencies: - resolve: 1.22.8 + resolve: 1.22.10 recma-build-jsx@1.0.0: dependencies: @@ -19971,15 +19915,6 @@ snapshots: es-errors: 1.3.0 set-function-name: 2.0.2 - rehype-external-links@3.0.0: - dependencies: - '@types/hast': 3.0.4 - '@ungap/structured-clone': 1.2.0 - hast-util-is-element: 3.0.0 - is-absolute-url: 4.0.1 - space-separated-tokens: 2.0.2 - unist-util-visit: 5.0.0 - rehype-katex@7.0.0: dependencies: '@types/hast': 3.0.4 @@ -20020,14 +19955,6 @@ snapshots: transitivePeerDependencies: - supports-color - rehype-slug@6.0.0: - dependencies: - '@types/hast': 3.0.4 - github-slugger: 2.0.0 - hast-util-heading-rank: 3.0.0 - hast-util-to-string: 3.0.0 - unist-util-visit: 5.0.0 - relateurl@0.2.7: {} release-zalgo@1.0.0: @@ -20155,7 +20082,13 @@ snapshots: dependencies: global-dirs: 0.1.1 - resolve.exports@2.0.2: {} + resolve.exports@2.0.3: {} + + resolve@1.22.10: + dependencies: + is-core-module: 2.16.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 resolve@1.22.8: dependencies: @@ -20205,9 +20138,9 @@ snapshots: retry@0.12.0: {} - reusify@1.0.4: {} + reusify@1.1.0: {} - rfdc@1.3.1: {} + rfdc@1.4.1: {} rimraf@3.0.2: dependencies: @@ -20245,26 +20178,29 @@ snapshots: '@rollup/rollup-win32-x64-msvc': 4.18.0 fsevents: 2.3.3 - rollup@4.24.0: + rollup@4.36.0: dependencies: '@types/estree': 1.0.6 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.24.0 - '@rollup/rollup-android-arm64': 4.24.0 - '@rollup/rollup-darwin-arm64': 4.24.0 - '@rollup/rollup-darwin-x64': 4.24.0 - '@rollup/rollup-linux-arm-gnueabihf': 4.24.0 - '@rollup/rollup-linux-arm-musleabihf': 4.24.0 - '@rollup/rollup-linux-arm64-gnu': 4.24.0 - '@rollup/rollup-linux-arm64-musl': 4.24.0 - '@rollup/rollup-linux-powerpc64le-gnu': 4.24.0 - '@rollup/rollup-linux-riscv64-gnu': 4.24.0 - '@rollup/rollup-linux-s390x-gnu': 4.24.0 - '@rollup/rollup-linux-x64-gnu': 4.24.0 - '@rollup/rollup-linux-x64-musl': 4.24.0 - '@rollup/rollup-win32-arm64-msvc': 4.24.0 - '@rollup/rollup-win32-ia32-msvc': 4.24.0 - '@rollup/rollup-win32-x64-msvc': 4.24.0 + '@rollup/rollup-android-arm-eabi': 4.36.0 + '@rollup/rollup-android-arm64': 4.36.0 + '@rollup/rollup-darwin-arm64': 4.36.0 + '@rollup/rollup-darwin-x64': 4.36.0 + '@rollup/rollup-freebsd-arm64': 4.36.0 + '@rollup/rollup-freebsd-x64': 4.36.0 + '@rollup/rollup-linux-arm-gnueabihf': 4.36.0 + '@rollup/rollup-linux-arm-musleabihf': 4.36.0 + '@rollup/rollup-linux-arm64-gnu': 4.36.0 + '@rollup/rollup-linux-arm64-musl': 4.36.0 + '@rollup/rollup-linux-loongarch64-gnu': 4.36.0 + '@rollup/rollup-linux-powerpc64le-gnu': 4.36.0 + '@rollup/rollup-linux-riscv64-gnu': 4.36.0 + '@rollup/rollup-linux-s390x-gnu': 4.36.0 + '@rollup/rollup-linux-x64-gnu': 4.36.0 + '@rollup/rollup-linux-x64-musl': 4.36.0 + '@rollup/rollup-win32-arm64-msvc': 4.36.0 + '@rollup/rollup-win32-ia32-msvc': 4.36.0 + '@rollup/rollup-win32-x64-msvc': 4.36.0 fsevents: 2.3.3 roughjs@4.6.6: @@ -20294,10 +20230,20 @@ snapshots: dependencies: tslib: 2.6.3 + rxjs@7.8.2: + dependencies: + tslib: 2.6.3 + safe-buffer@5.1.2: {} safe-buffer@5.2.1: {} + safe-regex-test@1.1.0: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + is-regex: 1.2.1 + safer-buffer@2.1.2: {} saxes@6.0.0: @@ -20314,12 +20260,12 @@ snapshots: ajv: 6.12.6 ajv-keywords: 3.5.2(ajv@6.12.6) - schema-utils@4.2.0: + schema-utils@4.3.0: dependencies: '@types/json-schema': 7.0.15 - ajv: 8.15.0 - ajv-formats: 2.1.1(ajv@8.15.0) - ajv-keywords: 5.1.0(ajv@8.15.0) + ajv: 8.17.1 + ajv-formats: 2.1.1(ajv@8.17.1) + ajv-keywords: 5.1.0(ajv@8.17.1) scroll-into-view-if-needed@3.1.0: dependencies: @@ -20340,27 +20286,9 @@ snapshots: semver@7.3.2: {} - semver@7.6.2: {} - semver@7.6.3: {} - send@0.18.0: - dependencies: - debug: 2.6.9 - depd: 2.0.0 - destroy: 1.2.0 - encodeurl: 1.0.2 - escape-html: 1.0.3 - etag: 1.8.1 - fresh: 0.5.2 - http-errors: 2.0.0 - mime: 1.6.0 - ms: 2.1.3 - on-finished: 2.4.1 - range-parser: 1.2.1 - statuses: 2.0.1 - transitivePeerDependencies: - - supports-color + semver@7.7.1: {} sentence-case@3.0.4: dependencies: @@ -20372,15 +20300,6 @@ snapshots: dependencies: randombytes: 2.1.0 - serve-static@1.15.0: - dependencies: - encodeurl: 1.0.2 - escape-html: 1.0.3 - parseurl: 1.3.3 - send: 0.18.0 - transitivePeerDependencies: - - supports-color - set-blocking@2.0.0: {} set-function-length@1.2.2: @@ -20399,8 +20318,6 @@ snapshots: functions-have-names: 1.2.3 has-property-descriptors: 1.0.2 - setprototypeof@1.2.0: {} - shallow-clone@3.0.1: dependencies: kind-of: 6.0.3 @@ -20446,6 +20363,8 @@ snapshots: shell-quote@1.8.1: {} + shell-quote@1.8.2: {} + shiki@1.22.0: dependencies: '@shikijs/core': 1.22.0 @@ -20457,6 +20376,26 @@ snapshots: shimmer@1.2.1: {} + side-channel-list@1.0.0: + dependencies: + es-errors: 1.3.0 + object-inspect: 1.13.4 + + side-channel-map@1.0.1: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + object-inspect: 1.13.4 + + side-channel-weakmap@1.0.2: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + object-inspect: 1.13.4 + side-channel-map: 1.0.1 + side-channel@1.0.6: dependencies: call-bind: 1.0.7 @@ -20464,6 +20403,14 @@ snapshots: get-intrinsic: 1.2.4 object-inspect: 1.13.1 + side-channel@1.1.0: + dependencies: + es-errors: 1.3.0 + object-inspect: 1.13.4 + side-channel-list: 1.0.0 + side-channel-map: 1.0.1 + side-channel-weakmap: 1.0.2 + siginfo@2.0.0: {} signal-exit@3.0.7: {} @@ -20484,7 +20431,7 @@ snapshots: dependencies: '@sigstore/bundle': 2.3.2 '@sigstore/core': 1.1.0 - '@sigstore/protobuf-specs': 0.3.2 + '@sigstore/protobuf-specs': 0.3.3 '@sigstore/sign': 2.3.2 '@sigstore/tuf': 2.3.4 '@sigstore/verify': 1.2.1 @@ -20498,6 +20445,8 @@ snapshots: sisteransi@1.0.5: {} + size-sensor@1.0.2: {} + slash@3.0.0: {} slash@4.0.0: {} @@ -20519,20 +20468,20 @@ snapshots: socks-proxy-agent@7.0.0: dependencies: agent-base: 6.0.2 - debug: 4.3.5 - socks: 2.8.3 + debug: 4.4.0 + socks: 2.8.4 transitivePeerDependencies: - supports-color - socks-proxy-agent@8.0.3: + socks-proxy-agent@8.0.5: dependencies: - agent-base: 7.1.1 - debug: 4.3.5 - socks: 2.8.3 + agent-base: 7.1.3 + debug: 4.4.0 + socks: 2.8.4 transitivePeerDependencies: - supports-color - socks@2.8.3: + socks@2.8.4: dependencies: ip-address: 9.0.5 smart-buffer: 4.2.0 @@ -20588,16 +20537,16 @@ snapshots: spdx-correct@3.2.0: dependencies: spdx-expression-parse: 3.0.1 - spdx-license-ids: 3.0.18 + spdx-license-ids: 3.0.21 spdx-exceptions@2.5.0: {} spdx-expression-parse@3.0.1: dependencies: spdx-exceptions: 2.5.0 - spdx-license-ids: 3.0.18 + spdx-license-ids: 3.0.21 - spdx-license-ids@3.0.18: {} + spdx-license-ids@3.0.21: {} speech-rule-engine@4.0.7: dependencies: @@ -20635,10 +20584,10 @@ snapshots: dependencies: type-fest: 0.7.1 - statuses@2.0.1: {} - std-env@3.7.0: {} + std-env@3.8.1: {} + stdin-discarder@0.1.0: dependencies: bl: 5.1.0 @@ -20647,9 +20596,11 @@ snapshots: dependencies: internal-slot: 1.0.7 - storybook@8.3.6: + storybook@8.6.7(prettier@3.5.3): dependencies: - '@storybook/core': 8.3.6 + '@storybook/core': 8.6.7(prettier@3.5.3)(storybook@8.6.7(prettier@3.5.3)) + optionalDependencies: + prettier: 3.5.3 transitivePeerDependencies: - bufferutil - supports-color @@ -20666,7 +20617,7 @@ snapshots: string-length@5.0.1: dependencies: - char-regex: 2.0.1 + char-regex: 2.0.2 strip-ansi: 7.1.0 string-width@1.0.2: @@ -20710,7 +20661,7 @@ snapshots: strip-ansi@7.1.0: dependencies: - ansi-regex: 6.0.1 + ansi-regex: 6.1.0 strip-bom-string@1.0.0: {} @@ -20738,9 +20689,9 @@ snapshots: dependencies: acorn: 8.11.3 - strip-literal@2.1.0: + strip-literal@2.1.1: dependencies: - js-tokens: 9.0.0 + js-tokens: 9.0.1 strong-log-transformer@2.1.0: dependencies: @@ -20748,9 +20699,9 @@ snapshots: minimist: 1.2.8 through: 2.3.8 - style-loader@3.3.4(webpack@5.91.0(@swc/core@1.5.24(@swc/helpers@0.5.13))(esbuild@0.21.5)): + style-loader@3.3.4(webpack@5.98.0(@swc/core@1.11.11(@swc/helpers@0.5.13))(esbuild@0.21.5)): dependencies: - webpack: 5.91.0(@swc/core@1.5.24(@swc/helpers@0.5.13))(esbuild@0.21.5) + webpack: 5.98.0(@swc/core@1.11.11(@swc/helpers@0.5.13))(esbuild@0.21.5) style-to-object@0.4.4: dependencies: @@ -20828,37 +20779,24 @@ snapshots: mkdirp: 1.0.4 yallist: 4.0.0 - telejson@7.2.0: - dependencies: - memoizerific: 1.11.3 - temp-dir@1.0.0: {} - temp-dir@3.0.0: {} - - tempy@3.1.0: - dependencies: - is-stream: 3.0.0 - temp-dir: 3.0.0 - type-fest: 2.19.0 - unique-string: 3.0.0 - - terser-webpack-plugin@5.3.10(@swc/core@1.5.24(@swc/helpers@0.5.13))(esbuild@0.21.5)(webpack@5.91.0(@swc/core@1.5.24(@swc/helpers@0.5.13))(esbuild@0.21.5)): + terser-webpack-plugin@5.3.14(@swc/core@1.11.11(@swc/helpers@0.5.13))(esbuild@0.21.5)(webpack@5.98.0(@swc/core@1.11.11(@swc/helpers@0.5.13))(esbuild@0.21.5)): dependencies: '@jridgewell/trace-mapping': 0.3.25 jest-worker: 27.5.1 - schema-utils: 3.3.0 + schema-utils: 4.3.0 serialize-javascript: 6.0.2 - terser: 5.31.0 - webpack: 5.91.0(@swc/core@1.5.24(@swc/helpers@0.5.13))(esbuild@0.21.5) + terser: 5.39.0 + webpack: 5.98.0(@swc/core@1.11.11(@swc/helpers@0.5.13))(esbuild@0.21.5) optionalDependencies: - '@swc/core': 1.5.24(@swc/helpers@0.5.13) + '@swc/core': 1.11.11(@swc/helpers@0.5.13) esbuild: 0.21.5 - terser@5.31.0: + terser@5.39.0: dependencies: '@jridgewell/source-map': 0.3.6 - acorn: 8.13.0 + acorn: 8.14.1 commander: 2.20.3 source-map-support: 0.5.21 @@ -20899,6 +20837,8 @@ snapshots: tinybench@2.8.0: {} + tinybench@2.9.0: {} + tinyexec@0.3.1: {} tinyglobby@0.2.9: @@ -20937,17 +20877,13 @@ snapshots: tmpl@1.0.5: {} - to-fast-properties@2.0.0: {} - to-regex-range@5.0.1: dependencies: is-number: 7.0.0 - toidentifier@1.0.1: {} - tough-cookie@4.1.4: dependencies: - psl: 1.9.0 + psl: 1.15.0 punycode: 2.3.1 universalify: 0.2.0 url-parse: 1.5.10 @@ -20958,7 +20894,7 @@ snapshots: dependencies: punycode: 2.3.1 - tr46@5.0.0: + tr46@5.1.0: dependencies: punycode: 2.3.1 @@ -20985,29 +20921,29 @@ snapshots: minimist: 1.2.8 strip-bom: 3.0.0 - tslib@1.14.1: {} + tslib@2.3.0: {} tslib@2.6.3: {} - tsup@8.1.0(@swc/core@1.5.24(@swc/helpers@0.5.13))(postcss@8.4.38)(typescript@5.5.2): + tsup@8.1.0(@swc/core@1.11.11(@swc/helpers@0.5.13))(postcss@8.5.3)(typescript@5.5.2): dependencies: bundle-require: 4.2.1(esbuild@0.21.5) cac: 6.7.14 chokidar: 3.6.0 - debug: 4.3.5 + debug: 4.4.0 esbuild: 0.21.5 execa: 5.1.1 globby: 11.1.0 joycon: 3.1.1 - postcss-load-config: 4.0.2(postcss@8.4.38) + postcss-load-config: 4.0.2(postcss@8.5.3) resolve-from: 5.0.0 - rollup: 4.18.0 + rollup: 4.36.0 source-map: 0.8.0-beta.0 sucrase: 3.35.0 tree-kill: 1.2.2 optionalDependencies: - '@swc/core': 1.5.24(@swc/helpers@0.5.13) - postcss: 8.4.38 + '@swc/core': 1.11.11(@swc/helpers@0.5.13) + postcss: 8.5.3 typescript: 5.5.2 transitivePeerDependencies: - supports-color @@ -21016,7 +20952,7 @@ snapshots: tuf-js@1.1.7: dependencies: '@tufjs/models': 1.0.4 - debug: 4.3.5 + debug: 4.4.0 make-fetch-happen: 11.1.1 transitivePeerDependencies: - supports-color @@ -21024,7 +20960,7 @@ snapshots: tuf-js@2.2.1: dependencies: '@tufjs/models': 2.0.1 - debug: 4.3.5 + debug: 4.4.0 make-fetch-happen: 13.0.1 transitivePeerDependencies: - supports-color @@ -21070,6 +21006,8 @@ snapshots: type-detect@4.0.8: {} + type-detect@4.1.0: {} + type-fest@0.18.1: {} type-fest@0.21.3: {} @@ -21086,11 +21024,6 @@ snapshots: type-fest@2.19.0: {} - type-is@1.6.18: - dependencies: - media-typer: 0.3.0 - mime-types: 2.1.35 - typedarray-to-buffer@3.1.5: dependencies: is-typedarray: 1.0.0 @@ -21103,14 +21036,15 @@ snapshots: ufo@1.5.4: {} - uglify-js@3.17.4: + uglify-js@3.19.3: optional: true unc-path-regex@0.1.2: {} undici-types@5.26.5: {} - undici-types@6.19.8: {} + undici-types@6.19.8: + optional: true unified@11.0.5: dependencies: @@ -21124,7 +21058,7 @@ snapshots: union@0.5.0: dependencies: - qs: 6.12.1 + qs: 6.14.0 unique-filename@3.0.0: dependencies: @@ -21134,10 +21068,6 @@ snapshots: dependencies: imurmurhash: 0.1.4 - unique-string@3.0.0: - dependencies: - crypto-random-string: 4.0.0 - unist-util-find-after@5.0.0: dependencies: '@types/unist': 3.0.2 @@ -21215,8 +21145,6 @@ snapshots: universalify@2.0.1: {} - unpipe@1.0.0: {} - unplugin@1.0.1: dependencies: acorn: 8.13.0 @@ -21224,12 +21152,10 @@ snapshots: webpack-sources: 3.2.3 webpack-virtual-modules: 0.5.0 - unplugin@1.10.1: + unplugin@1.16.1: dependencies: - acorn: 8.13.0 - chokidar: 3.6.0 - webpack-sources: 3.2.3 - webpack-virtual-modules: 0.6.1 + acorn: 8.14.1 + webpack-virtual-modules: 0.6.2 upath@2.0.1: {} @@ -21239,6 +21165,12 @@ snapshots: escalade: 3.1.2 picocolors: 1.0.1 + update-browserslist-db@1.1.3(browserslist@4.24.4): + dependencies: + browserslist: 4.24.4 + escalade: 3.2.0 + picocolors: 1.1.1 + upper-case-first@2.0.2: dependencies: tslib: 2.6.3 @@ -21258,10 +21190,10 @@ snapshots: querystringify: 2.2.0 requires-port: 1.0.0 - url@0.11.3: + url@0.11.4: dependencies: punycode: 1.4.1 - qs: 6.12.1 + qs: 6.14.0 use-callback-ref@1.3.2(@types/react@18.3.11)(react@18.3.1): dependencies: @@ -21282,25 +21214,27 @@ snapshots: dependencies: react: 18.3.1 + use-sync-external-store@1.4.0(react@18.3.1): + dependencies: + react: 18.3.1 + util-deprecate@1.0.2: {} util@0.12.5: dependencies: inherits: 2.0.4 - is-arguments: 1.1.1 - is-generator-function: 1.0.10 - is-typed-array: 1.1.13 - which-typed-array: 1.1.15 + is-arguments: 1.2.0 + is-generator-function: 1.1.0 + is-typed-array: 1.1.15 + which-typed-array: 1.1.19 utila@0.4.0: {} - utils-merge@1.0.1: {} - uuid@8.3.2: {} uuid@9.0.1: {} - v8-to-istanbul@9.2.0: + v8-to-istanbul@9.3.0: dependencies: '@jridgewell/trace-mapping': 0.3.25 '@types/istanbul-lib-coverage': 2.0.6 @@ -21321,10 +21255,6 @@ snapshots: dependencies: builtins: 5.1.0 - validate-npm-package-name@5.0.1: {} - - vary@1.1.2: {} - vaul@0.9.4(@types/react-dom@18.3.1)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: '@radix-ui/react-dialog': 1.1.1(@types/react-dom@18.3.1)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -21350,14 +21280,14 @@ snapshots: unist-util-stringify-position: 4.0.0 vfile-message: 4.0.2 - vite-node@0.34.6(@types/node@20.14.9)(lightningcss@1.27.0)(terser@5.31.0): + vite-node@0.34.6(@types/node@20.14.9)(lightningcss@1.27.0)(terser@5.39.0): dependencies: cac: 6.7.14 debug: 4.3.5 mlly: 1.7.0 pathe: 1.1.2 picocolors: 1.0.1 - vite: 5.4.9(@types/node@20.14.9)(lightningcss@1.27.0)(terser@5.31.0) + vite: 5.4.9(@types/node@20.14.9)(lightningcss@1.27.0)(terser@5.39.0) transitivePeerDependencies: - '@types/node' - less @@ -21369,13 +21299,31 @@ snapshots: - supports-color - terser - vite-node@1.6.0(@types/node@20.14.9)(lightningcss@1.27.0)(terser@5.31.0): + vite-node@1.6.0(@types/node@20.14.9)(lightningcss@1.27.0)(terser@5.39.0): dependencies: cac: 6.7.14 - debug: 4.3.5 + debug: 4.4.0 pathe: 1.1.2 - picocolors: 1.0.1 - vite: 5.4.9(@types/node@20.14.9)(lightningcss@1.27.0)(terser@5.31.0) + picocolors: 1.1.1 + vite: 5.4.9(@types/node@20.14.9)(lightningcss@1.27.0)(terser@5.39.0) + transitivePeerDependencies: + - '@types/node' + - less + - lightningcss + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + + vite-node@1.6.0(@types/node@22.7.8)(lightningcss@1.27.0)(terser@5.39.0): + dependencies: + cac: 6.7.14 + debug: 4.4.0 + pathe: 1.1.2 + picocolors: 1.1.1 + vite: 5.4.9(@types/node@22.7.8)(lightningcss@1.27.0)(terser@5.39.0) transitivePeerDependencies: - '@types/node' - less @@ -21387,7 +21335,7 @@ snapshots: - supports-color - terser - vite@5.0.13(@types/node@20.14.9)(lightningcss@1.27.0)(terser@5.31.0): + vite@5.0.13(@types/node@20.14.9)(lightningcss@1.27.0)(terser@5.39.0): dependencies: esbuild: 0.19.12 postcss: 8.4.38 @@ -21396,20 +21344,36 @@ snapshots: '@types/node': 20.14.9 fsevents: 2.3.3 lightningcss: 1.27.0 - terser: 5.31.0 + terser: 5.39.0 - vite@5.4.9(@types/node@20.14.9)(lightningcss@1.27.0)(terser@5.31.0): + vite@5.4.9(@types/node@20.14.9)(lightningcss@1.27.0)(terser@5.39.0): dependencies: esbuild: 0.21.5 - postcss: 8.4.47 - rollup: 4.24.0 + postcss: 8.5.3 + rollup: 4.36.0 optionalDependencies: '@types/node': 20.14.9 fsevents: 2.3.3 lightningcss: 1.27.0 - terser: 5.31.0 + terser: 5.39.0 + + vite@5.4.9(@types/node@22.7.8)(lightningcss@1.27.0)(terser@5.39.0): + dependencies: + esbuild: 0.21.5 + postcss: 8.5.3 + rollup: 4.36.0 + optionalDependencies: + '@types/node': 22.7.8 + fsevents: 2.3.3 + lightningcss: 1.27.0 + terser: 5.39.0 - vitest@0.34.6(jsdom@23.0.0)(lightningcss@1.27.0)(playwright@1.44.1)(terser@5.31.0): + vitest-canvas-mock@0.3.3(vitest@1.6.0(@types/node@22.7.8)(jsdom@23.0.0)(lightningcss@1.27.0)(terser@5.39.0)): + dependencies: + jest-canvas-mock: 2.5.2 + vitest: 1.6.0(@types/node@22.7.8)(jsdom@23.0.0)(lightningcss@1.27.0)(terser@5.39.0) + + vitest@0.34.6(jsdom@23.0.0)(lightningcss@1.27.0)(playwright@1.51.1)(terser@5.39.0): dependencies: '@types/chai': 4.3.16 '@types/chai-subset': 1.3.5 @@ -21432,12 +21396,12 @@ snapshots: strip-literal: 1.3.0 tinybench: 2.8.0 tinypool: 0.7.0 - vite: 5.0.13(@types/node@20.14.9)(lightningcss@1.27.0)(terser@5.31.0) - vite-node: 0.34.6(@types/node@20.14.9)(lightningcss@1.27.0)(terser@5.31.0) + vite: 5.0.13(@types/node@20.14.9)(lightningcss@1.27.0)(terser@5.39.0) + vite-node: 0.34.6(@types/node@20.14.9)(lightningcss@1.27.0)(terser@5.39.0) why-is-node-running: 2.2.2 optionalDependencies: jsdom: 23.0.0 - playwright: 1.44.1 + playwright: 1.51.1 transitivePeerDependencies: - less - lightningcss @@ -21448,28 +21412,28 @@ snapshots: - supports-color - terser - vitest@1.6.0(@types/node@20.14.9)(jsdom@23.0.0)(lightningcss@1.27.0)(terser@5.31.0): + vitest@1.6.0(@types/node@20.14.9)(jsdom@23.0.0)(lightningcss@1.27.0)(terser@5.39.0): dependencies: '@vitest/expect': 1.6.0 '@vitest/runner': 1.6.0 '@vitest/snapshot': 1.6.0 '@vitest/spy': 1.6.0 '@vitest/utils': 1.6.0 - acorn-walk: 8.3.2 - chai: 4.4.1 - debug: 4.3.5 + acorn-walk: 8.3.4 + chai: 4.5.0 + debug: 4.4.0 execa: 8.0.1 - local-pkg: 0.5.0 - magic-string: 0.30.10 + local-pkg: 0.5.1 + magic-string: 0.30.17 pathe: 1.1.2 - picocolors: 1.0.1 - std-env: 3.7.0 - strip-literal: 2.1.0 - tinybench: 2.8.0 + picocolors: 1.1.1 + std-env: 3.8.1 + strip-literal: 2.1.1 + tinybench: 2.9.0 tinypool: 0.8.4 - vite: 5.4.9(@types/node@20.14.9)(lightningcss@1.27.0)(terser@5.31.0) - vite-node: 1.6.0(@types/node@20.14.9)(lightningcss@1.27.0)(terser@5.31.0) - why-is-node-running: 2.2.2 + vite: 5.4.9(@types/node@20.14.9)(lightningcss@1.27.0)(terser@5.39.0) + vite-node: 1.6.0(@types/node@20.14.9)(lightningcss@1.27.0)(terser@5.39.0) + why-is-node-running: 2.3.0 optionalDependencies: '@types/node': 20.14.9 jsdom: 23.0.0 @@ -21483,6 +21447,41 @@ snapshots: - supports-color - terser + vitest@1.6.0(@types/node@22.7.8)(jsdom@23.0.0)(lightningcss@1.27.0)(terser@5.39.0): + dependencies: + '@vitest/expect': 1.6.0 + '@vitest/runner': 1.6.0 + '@vitest/snapshot': 1.6.0 + '@vitest/spy': 1.6.0 + '@vitest/utils': 1.6.0 + acorn-walk: 8.3.4 + chai: 4.5.0 + debug: 4.4.0 + execa: 8.0.1 + local-pkg: 0.5.1 + magic-string: 0.30.17 + pathe: 1.1.2 + picocolors: 1.1.1 + std-env: 3.8.1 + strip-literal: 2.1.1 + tinybench: 2.9.0 + tinypool: 0.8.4 + vite: 5.4.9(@types/node@22.7.8)(lightningcss@1.27.0)(terser@5.39.0) + vite-node: 1.6.0(@types/node@22.7.8)(lightningcss@1.27.0)(terser@5.39.0) + why-is-node-running: 2.3.0 + optionalDependencies: + '@types/node': 22.7.8 + jsdom: 23.0.0 + transitivePeerDependencies: + - less + - lightningcss + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + vorpal@1.12.0: dependencies: babel-polyfill: 6.26.0 @@ -21519,11 +21518,11 @@ snapshots: wait-on@7.2.0: dependencies: - axios: 1.7.2 - joi: 17.13.1 + axios: 1.8.4 + joi: 17.13.3 lodash: 4.17.21 minimist: 1.2.8 - rxjs: 7.8.1 + rxjs: 7.8.2 transitivePeerDependencies: - debug @@ -21531,7 +21530,7 @@ snapshots: dependencies: chalk: 2.4.2 commander: 3.0.2 - debug: 4.3.5 + debug: 4.4.0 transitivePeerDependencies: - supports-color @@ -21539,7 +21538,7 @@ snapshots: dependencies: makeerror: 1.0.12 - watchpack@2.4.1: + watchpack@2.4.2: dependencies: glob-to-regexp: 0.4.1 graceful-fs: 4.2.11 @@ -21556,15 +21555,15 @@ snapshots: webidl-conversions@7.0.0: {} - webpack-dev-middleware@6.1.3(webpack@5.91.0(@swc/core@1.5.24(@swc/helpers@0.5.13))(esbuild@0.21.5)): + webpack-dev-middleware@6.1.3(webpack@5.98.0(@swc/core@1.11.11(@swc/helpers@0.5.13))(esbuild@0.21.5)): dependencies: colorette: 2.0.20 memfs: 3.5.3 mime-types: 2.1.35 range-parser: 1.2.1 - schema-utils: 4.2.0 + schema-utils: 4.3.0 optionalDependencies: - webpack: 5.91.0(@swc/core@1.5.24(@swc/helpers@0.5.13))(esbuild@0.21.5) + webpack: 5.98.0(@swc/core@1.11.11(@swc/helpers@0.5.13))(esbuild@0.21.5) webpack-hot-middleware@2.26.1: dependencies: @@ -21576,21 +21575,20 @@ snapshots: webpack-virtual-modules@0.5.0: {} - webpack-virtual-modules@0.6.1: {} + webpack-virtual-modules@0.6.2: {} - webpack@5.91.0(@swc/core@1.5.24(@swc/helpers@0.5.13))(esbuild@0.21.5): + webpack@5.98.0(@swc/core@1.11.11(@swc/helpers@0.5.13))(esbuild@0.21.5): dependencies: '@types/eslint-scope': 3.7.7 - '@types/estree': 1.0.5 - '@webassemblyjs/ast': 1.12.1 - '@webassemblyjs/wasm-edit': 1.12.1 - '@webassemblyjs/wasm-parser': 1.12.1 - acorn: 8.13.0 - acorn-import-assertions: 1.9.0(acorn@8.13.0) - browserslist: 4.23.1 + '@types/estree': 1.0.6 + '@webassemblyjs/ast': 1.14.1 + '@webassemblyjs/wasm-edit': 1.14.1 + '@webassemblyjs/wasm-parser': 1.14.1 + acorn: 8.14.1 + browserslist: 4.24.4 chrome-trace-event: 1.0.4 - enhanced-resolve: 5.16.1 - es-module-lexer: 1.5.3 + enhanced-resolve: 5.18.1 + es-module-lexer: 1.6.0 eslint-scope: 5.1.1 events: 3.3.0 glob-to-regexp: 0.4.1 @@ -21599,10 +21597,10 @@ snapshots: loader-runner: 4.3.0 mime-types: 2.1.35 neo-async: 2.6.2 - schema-utils: 3.3.0 + schema-utils: 4.3.0 tapable: 2.2.1 - terser-webpack-plugin: 5.3.10(@swc/core@1.5.24(@swc/helpers@0.5.13))(esbuild@0.21.5)(webpack@5.91.0(@swc/core@1.5.24(@swc/helpers@0.5.13))(esbuild@0.21.5)) - watchpack: 2.4.1 + terser-webpack-plugin: 5.3.14(@swc/core@1.11.11(@swc/helpers@0.5.13))(esbuild@0.21.5)(webpack@5.98.0(@swc/core@1.11.11(@swc/helpers@0.5.13))(esbuild@0.21.5)) + watchpack: 2.4.2 webpack-sources: 3.2.3 transitivePeerDependencies: - '@swc/core' @@ -21619,9 +21617,9 @@ snapshots: whatwg-mimetype@4.0.0: {} - whatwg-url@14.0.0: + whatwg-url@14.2.0: dependencies: - tr46: 5.0.0 + tr46: 5.1.0 webidl-conversions: 7.0.0 whatwg-url@5.0.0: @@ -21660,6 +21658,16 @@ snapshots: gopd: 1.0.1 has-tostringtag: 1.0.2 + which-typed-array@1.1.19: + dependencies: + available-typed-arrays: 1.0.7 + call-bind: 1.0.8 + call-bound: 1.0.4 + for-each: 0.3.5 + get-proto: 1.0.1 + gopd: 1.2.0 + has-tostringtag: 1.0.2 + which@1.3.1: dependencies: isexe: 2.0.0 @@ -21677,6 +21685,11 @@ snapshots: siginfo: 2.0.0 stackback: 0.0.2 + why-is-node-running@2.3.0: + dependencies: + siginfo: 2.0.0 + stackback: 0.0.2 + wicked-good-xpath@1.3.0: {} wide-align@1.1.5: @@ -21750,7 +21763,7 @@ snapshots: type-fest: 0.4.1 write-json-file: 3.2.0 - ws@8.17.0: {} + ws@8.18.1: {} xml-name-validator@5.0.0: {} @@ -21778,13 +21791,13 @@ snapshots: yaml@2.4.3: {} + yaml@2.7.0: {} + yargs-parser@18.1.3: dependencies: camelcase: 5.3.1 decamelize: 1.2.0 - yargs-parser@20.2.4: {} - yargs-parser@20.2.9: {} yargs-parser@21.1.1: {} @@ -21806,7 +21819,7 @@ snapshots: yargs@16.2.0: dependencies: cliui: 7.0.4 - escalade: 3.1.2 + escalade: 3.2.0 get-caller-file: 2.0.5 require-directory: 2.1.1 string-width: 4.2.3 @@ -21829,10 +21842,16 @@ snapshots: yocto-queue@1.1.1: {} + yocto-queue@1.2.0: {} + zod-validation-error@3.4.0(zod@3.23.8): dependencies: zod: 3.23.8 zod@3.23.8: {} + zrender@6.0.0: + dependencies: + tslib: 2.3.0 + zwitch@2.0.4: {} diff --git a/tsconfig.json b/tsconfig.json index 0e6a1c5133..0ca63c531a 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -17,7 +17,7 @@ "lib": ["es2017", "dom", "es2018.promise", "esnext.asynciterable"], "module": "es6", "moduleResolution": "node", - "noImplicitAny": true, + "noImplicitAny": false, "noImplicitReturns": true, "noImplicitThis": true, "noUnusedLocals": true, diff --git a/vite.config.ts b/vite.config.ts index 067a326da3..cd417b333b 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -18,7 +18,13 @@ export default defineConfig({ '**/.{idea,git,cache,output,temp}/**', '**/{karma,rollup,webpack,vite,vitest,jest,ava,babel,nyc,cypress,tsup,build}.config.*', ], - setupFiles: ['./packages/test-utils/dist/setup.mjs'], + setupFiles: [ + './packages/test-utils/dist/setup.mjs', + './packages/charts/src/tests/vitest.config.ts', + ], + deps: { + inline: ['vitest-canvas-mock'], + }, environment: 'jsdom', css: false, },