diff --git a/frontend/package.json b/frontend/package.json index 9752a47db46..2376f69c51a 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -152,7 +152,7 @@ "react-plotly.js": "^2.6.0", "react-resizable-panels": "2.1.9", "react-use-event-hook": "^0.9.6", - "react-vega": "^7.7.1", + "react-vega": "^8.0.0", "react-virtuoso": "^4.14.0", "reactflow": "^11.11.4", "remark-gfm": "^4.0.1", @@ -168,8 +168,8 @@ "typescript-memoize": "^1.1.1", "use-acp": "0.2.5", "use-resize-observer": "^9.1.0", - "vega-lite": "^5.23.0", - "vega-loader": "^4.5.3", + "vega-lite": "^6.4.1", + "vega-loader": "^5.1.0", "vega-tooltip": "^1.1.0", "vscode-jsonrpc": "^8.2.1", "vscode-languageserver-protocol": "^3.17.5", @@ -249,6 +249,7 @@ "stylelint": "^16.23.1", "stylelint-config-standard": "^36.0.1", "tailwindcss": "^4.1.15", + "vega-typings": "^2.1.0", "vite": "npm:rolldown-vite@^7.1.19", "vite-plugin-top-level-await": "^1.6.0", "vite-plugin-wasm": "^3.5.0", diff --git a/frontend/src/components/charts/lazy.tsx b/frontend/src/components/charts/lazy.tsx new file mode 100644 index 00000000000..f4e68b89d2f --- /dev/null +++ b/frontend/src/components/charts/lazy.tsx @@ -0,0 +1,7 @@ +/* Copyright 2024 Marimo. All rights reserved. */ + +import React from "react"; + +export const LazyVegaEmbed = React.lazy(() => + import("react-vega").then((m) => ({ default: m.VegaEmbed })), +); diff --git a/frontend/src/components/charts/types.ts b/frontend/src/components/charts/types.ts new file mode 100644 index 00000000000..63d87f55f35 --- /dev/null +++ b/frontend/src/components/charts/types.ts @@ -0,0 +1,8 @@ +/* Copyright 2024 Marimo. All rights reserved. */ + +import type { SignalListenerHandler } from "vega-typings"; + +export interface SignalListener { + signalName: string; + handler: SignalListenerHandler; +} diff --git a/frontend/src/components/data-table/charts/__tests__/__snapshots__/spec-snapshot.test.ts.snap b/frontend/src/components/data-table/charts/__tests__/__snapshots__/spec-snapshot.test.ts.snap index cb1d506cb13..5ee8b33552a 100644 --- a/frontend/src/components/data-table/charts/__tests__/__snapshots__/spec-snapshot.test.ts.snap +++ b/frontend/src/components/data-table/charts/__tests__/__snapshots__/spec-snapshot.test.ts.snap @@ -2,7 +2,7 @@ exports[`create vega spec > should create and augment a spec 1`] = ` { - "$schema": "https://vega.github.io/schema/vega-lite/v5.json", + "$schema": "https://vega.github.io/schema/vega-lite/v6.json", "background": "white", "config": { "axis": { diff --git a/frontend/src/components/data-table/charts/__tests__/spec-snapshot.test.ts b/frontend/src/components/data-table/charts/__tests__/spec-snapshot.test.ts index 2c5d93b53a6..e5fcd8f9527 100644 --- a/frontend/src/components/data-table/charts/__tests__/spec-snapshot.test.ts +++ b/frontend/src/components/data-table/charts/__tests__/spec-snapshot.test.ts @@ -1,6 +1,6 @@ /* Copyright 2024 Marimo. All rights reserved. */ -import type { TopLevelSpec } from "vega-lite/build/src/spec"; +import type { TopLevelSpec } from "vega-lite"; import { describe, expect, it } from "vitest"; import { augmentSpecWithData, diff --git a/frontend/src/components/data-table/charts/__tests__/spec.test.ts b/frontend/src/components/data-table/charts/__tests__/spec.test.ts index d9659baff12..e38416d7883 100644 --- a/frontend/src/components/data-table/charts/__tests__/spec.test.ts +++ b/frontend/src/components/data-table/charts/__tests__/spec.test.ts @@ -1,6 +1,6 @@ /* Copyright 2024 Marimo. All rights reserved. */ -import type { PositionDef } from "vega-lite/build/src/channeldef"; +import type { PositionDef } from "vega-lite/types_unstable/channeldef.js"; import { describe, expect, it } from "vitest"; import { invariant } from "@/utils/invariant"; import { @@ -14,6 +14,7 @@ import { COUNT_FIELD, EMPTY_VALUE } from "../constants"; import type { ChartSchemaType } from "../schemas"; import { AGGREGATION_FNS, + BIN_AGGREGATION, ChartType, NONE_VALUE, STRING_AGGREGATION_FNS, @@ -169,7 +170,11 @@ describe("getAxisEncoding", () => { const expectedAggregate = (result as { aggregate?: string }).aggregate; // For aggregations that are not valid for string data types, we should return undefined - if (agg === NONE_VALUE || !STRING_AGGREGATION_FNS.includes(agg)) { + if ( + agg === NONE_VALUE || + agg === BIN_AGGREGATION || + !STRING_AGGREGATION_FNS.includes(agg) + ) { expect(expectedAggregate).toBeUndefined(); } else if (STRING_AGGREGATION_FNS.includes(agg)) { expect(expectedAggregate).toEqual(agg); @@ -262,13 +267,13 @@ describe("getTooltips", () => { xAxis: { label: "X Axis" }, }; - const xEncoding = { + const xEncoding: PositionDef = { field: "x", type: "nominal", timeUnit: "year", aggregate: "sum", bin: { step: 10 }, - } as PositionDef; + }; const result = getTooltips({ formValues, @@ -345,7 +350,7 @@ describe("getTooltips", () => { }); it("should enhance tooltips with encoding parameters when field name matches encoding field", () => { - const formValues = { + const formValues: ChartSchemaType = { general: { xColumn: { type: "string" as const, aggregate: NONE_VALUE }, yColumn: { type: "number" as const, aggregate: NONE_VALUE }, @@ -410,7 +415,7 @@ describe("getTooltips", () => { }); it("should handle count aggregate with no field set", () => { - const formValues = { + const formValues: ChartSchemaType = { general: { xColumn: { field: "category", diff --git a/frontend/src/components/data-table/charts/chart-spec/encodings.ts b/frontend/src/components/data-table/charts/chart-spec/encodings.ts index 392d8fe119e..926aa9a87e4 100644 --- a/frontend/src/components/data-table/charts/chart-spec/encodings.ts +++ b/frontend/src/components/data-table/charts/chart-spec/encodings.ts @@ -1,9 +1,13 @@ /* Copyright 2024 Marimo. All rights reserved. */ -import type { Aggregate } from "vega-lite/build/src/aggregate"; -import type { BinParams } from "vega-lite/build/src/bin"; -import type { ColorDef, OffsetDef } from "vega-lite/build/src/channeldef"; -import type { Scale } from "vega-lite/build/src/scale"; +import type { Aggregate } from "vega-lite/types_unstable/aggregate.js"; +import type { BinParams } from "vega-lite/types_unstable/bin.js"; +import type { + ColorDef, + OffsetDef, +} from "vega-lite/types_unstable/channeldef.js"; +import type { Scale } from "vega-lite/types_unstable/scale.js"; +import type { ColorScheme } from "vega-typings"; import type { z } from "zod"; import { COUNT_FIELD, DEFAULT_COLOR_SCHEME } from "../constants"; import type { AxisSchema, BinSchema, ChartSchemaType } from "../schemas"; @@ -11,7 +15,6 @@ import { type AggregationFn, BIN_AGGREGATION, ChartType, - type ColorScheme, NONE_VALUE, type SelectableDataType, STRING_AGGREGATION_FNS, diff --git a/frontend/src/components/data-table/charts/chart-spec/spec.ts b/frontend/src/components/data-table/charts/chart-spec/spec.ts index 03504c54b1b..1f9971bea1e 100644 --- a/frontend/src/components/data-table/charts/chart-spec/spec.ts +++ b/frontend/src/components/data-table/charts/chart-spec/spec.ts @@ -6,10 +6,10 @@ import type { Field, PolarDef, PositionDef, -} from "vega-lite/build/src/channeldef"; -import type { Encoding } from "vega-lite/build/src/encoding"; -import type { Resolve } from "vega-lite/build/src/resolve"; -import type { FacetFieldDef } from "vega-lite/build/src/spec/facet"; +} from "vega-lite/types_unstable/channeldef.js"; +import type { Encoding } from "vega-lite/types_unstable/encoding.js"; +import type { Resolve } from "vega-lite/types_unstable/resolve.js"; +import type { FacetFieldDef } from "vega-lite/types_unstable/spec/facet.js"; import type { z } from "zod"; import type { ResolvedTheme } from "@/theme/useTheme"; import type { TypedString } from "@/utils/typed"; @@ -285,7 +285,7 @@ function getBaseSpec( } return { - $schema: "https://vega.github.io/schema/vega-lite/v5.json", + $schema: "https://vega.github.io/schema/vega-lite/v6.json", background: theme === "dark" ? "dark" : "white", title: title, data: { values: [] }, diff --git a/frontend/src/components/data-table/charts/chart-spec/tooltips.ts b/frontend/src/components/data-table/charts/chart-spec/tooltips.ts index 500f652906f..0ae59168b06 100644 --- a/frontend/src/components/data-table/charts/chart-spec/tooltips.ts +++ b/frontend/src/components/data-table/charts/chart-spec/tooltips.ts @@ -4,7 +4,7 @@ import type { ColorDef, PositionDef, StringFieldDef, -} from "vega-lite/build/src/channeldef"; +} from "vega-lite/types_unstable/channeldef.js"; import type { DataType } from "@/core/kernel/messages"; import type { ChartSchemaType } from "../schemas"; import { isFieldSet } from "./spec"; diff --git a/frontend/src/components/data-table/charts/chart-spec/types.ts b/frontend/src/components/data-table/charts/chart-spec/types.ts index 5aba268f9a1..dd765566652 100644 --- a/frontend/src/components/data-table/charts/chart-spec/types.ts +++ b/frontend/src/components/data-table/charts/chart-spec/types.ts @@ -1,6 +1,6 @@ /* Copyright 2024 Marimo. All rights reserved. */ -import type { StandardType } from "vega-lite/build/src/type"; +import type { StandardType } from "vega-lite/types_unstable/type.js"; import type { DataType } from "@/core/kernel/messages"; import type { Mark } from "@/plugins/impl/vega/types"; import { logNever } from "@/utils/assertNever"; diff --git a/frontend/src/components/data-table/charts/components/form-fields.tsx b/frontend/src/components/data-table/charts/components/form-fields.tsx index 06b0c6320f9..cd7cc323b39 100644 --- a/frontend/src/components/data-table/charts/components/form-fields.tsx +++ b/frontend/src/components/data-table/charts/components/form-fields.tsx @@ -728,11 +728,11 @@ export const AggregationSelect = ({ {availableAggregations.map((agg) => { const Icon = AGGREGATION_TYPE_ICON[agg]; const subtitle = renderSubtitle( - AGGREGATION_TYPE_DESCRIPTIONS[agg], + AGGREGATION_TYPE_DESCRIPTIONS[agg] ?? "Other", ); const selectItem = renderSelectItem({ value: agg, - Icon, + Icon: Icon ?? SquareFunctionIcon, subtitle, }); if (agg === BIN_AGGREGATION) { diff --git a/frontend/src/components/data-table/charts/constants.ts b/frontend/src/components/data-table/charts/constants.ts index b86ae912245..447e0affe15 100644 --- a/frontend/src/components/data-table/charts/constants.ts +++ b/frontend/src/components/data-table/charts/constants.ts @@ -18,10 +18,10 @@ import { SquareFunctionIcon, TableIcon, } from "lucide-react"; +import type { ColorScheme } from "vega-typings"; import type { AggregationFn, ChartType, - ColorScheme, SelectableDataType, TimeUnit, ValidAggregationFn, @@ -45,7 +45,9 @@ export const CHART_TYPE_ICON: Record = { }; export const DEFAULT_AGGREGATION: ValidAggregationFn = "mean"; // For y-axis, we default to mean -export const AGGREGATION_TYPE_ICON: Record = { +export const AGGREGATION_TYPE_ICON: Partial< + Record +> = { none: SquareFunctionIcon, count: HashIcon, sum: SigmaIcon, @@ -62,7 +64,9 @@ export const AGGREGATION_TYPE_ICON: Record = { bin: RulerDimensionLine, }; -export const AGGREGATION_TYPE_DESCRIPTIONS: Record = { +export const AGGREGATION_TYPE_DESCRIPTIONS: Partial< + Record +> = { none: "No aggregation", count: "Count of records", sum: "Sum of values", diff --git a/frontend/src/components/data-table/charts/lazy-chart.tsx b/frontend/src/components/data-table/charts/lazy-chart.tsx index c1c8235e15e..5b5f0c5ad26 100644 --- a/frontend/src/components/data-table/charts/lazy-chart.tsx +++ b/frontend/src/components/data-table/charts/lazy-chart.tsx @@ -2,15 +2,13 @@ import React from "react"; import type { TopLevelSpec } from "vega-lite"; +import { LazyVegaEmbed } from "@/components/charts/lazy"; import { tooltipHandler } from "@/components/charts/tooltip"; import { useTheme } from "@/theme/useTheme"; import type { ErrorMessage } from "./chart-spec/spec"; import { augmentSpecWithData } from "./chart-spec/spec"; import { ChartInfoState } from "./components/chart-states"; -const LazyVega = React.lazy(() => - import("react-vega").then((m) => ({ default: m.Vega })), -); export const LazyChart: React.FC<{ baseSpec: TopLevelSpec | ErrorMessage; data?: object[]; @@ -30,16 +28,19 @@ export const LazyChart: React.FC<{ return ( }> - diff --git a/frontend/src/components/data-table/charts/types.ts b/frontend/src/components/data-table/charts/types.ts index 14f7200ecb6..6d0b9b24e9b 100644 --- a/frontend/src/components/data-table/charts/types.ts +++ b/frontend/src/components/data-table/charts/types.ts @@ -1,11 +1,6 @@ /* Copyright 2024 Marimo. All rights reserved. */ -import type { Scale } from "vega-lite/build/src/scale"; -/** - * Valid string-based color scheme options from - * Vega-Lite `Scale["scheme"]` (aka `vega.ColorScheme`). - */ -export type ColorScheme = NonNullable; +import type { AggregateOp } from "vega-typings"; /** * Similar to VegaLite's ScaleType, https://vega.github.io/vega-lite/docs/scale.html#type @@ -74,7 +69,7 @@ export const BIN_AGGREGATION = "bin"; // We use this not to aggregate, but to bi /** * Subset of VegaLite's AggregateOp, https://vega.github.io/vega-lite/docs/aggregate.html#op */ -export const VALID_AGGREGATION_FNS = [ +export const VALID_AGGREGATION_FNS: AggregateOp[] = [ "count", "sum", "mean", @@ -99,12 +94,10 @@ export type ValidAggregationFn = (typeof VALID_AGGREGATION_FNS)[number]; /* * Subset of AGGREGATION_FNS that are valid for string data types */ -export const STRING_AGGREGATION_FNS: ValidAggregationFn[] = [ - "none", - "count", - "distinct", - "valid", -]; +export const STRING_AGGREGATION_FNS: ( + | ValidAggregationFn + | typeof NONE_VALUE +)[] = [NONE_VALUE, "count", "distinct", "valid"]; /** * Subset of VegaLite's MarkType, https://vega.github.io/vega-lite/docs/mark.html#types @@ -121,4 +114,3 @@ export type ChartType = (typeof ChartType)[keyof typeof ChartType]; export const CHART_TYPES = Object.values(ChartType); export const COLOR_BY_FIELDS = ["X", "Y", "Color", NONE_VALUE] as const; -export type ColorByField = (typeof COLOR_BY_FIELDS)[number]; diff --git a/frontend/src/components/data-table/column-summary/chart-spec-model.tsx b/frontend/src/components/data-table/column-summary/chart-spec-model.tsx index 98d86a633d4..b7c4f93a53e 100644 --- a/frontend/src/components/data-table/column-summary/chart-spec-model.tsx +++ b/frontend/src/components/data-table/column-summary/chart-spec-model.tsx @@ -2,7 +2,7 @@ import { mint, orange, slate } from "@radix-ui/colors"; import type { TopLevelSpec } from "vega-lite"; -import type { StringFieldDef } from "vega-lite/build/src/channeldef"; +import type { StringFieldDef } from "vega-lite/types_unstable/channeldef.js"; import type { TopLevelFacetedUnitSpec } from "@/plugins/impl/data-explorer/queries/types"; import { logNever } from "@/utils/assertNever"; import type { diff --git a/frontend/src/components/data-table/column-summary/column-summary.tsx b/frontend/src/components/data-table/column-summary/column-summary.tsx index 737c772a92b..714cc51289a 100644 --- a/frontend/src/components/data-table/column-summary/column-summary.tsx +++ b/frontend/src/components/data-table/column-summary/column-summary.tsx @@ -1,6 +1,7 @@ /* Copyright 2024 Marimo. All rights reserved. */ import React, { Suspense } from "react"; import { useLocale } from "react-aria"; +import { LazyVegaEmbed } from "@/components/charts/lazy"; import { createBatchedLoader } from "@/plugins/impl/vega/batched"; import { useTheme } from "@/theme/useTheme"; import { logNever } from "@/utils/assertNever"; @@ -19,10 +20,6 @@ interface Props { columnId: string; } -const LazyVegaLite = React.lazy(() => - import("react-vega").then((m) => ({ default: m.VegaLite })), -); - // We batch multiple calls to the same URL returning the same promise // for all calls with the same key. const batchedLoader = createBatchedLoader(); @@ -46,16 +43,19 @@ export const TableColumnSummary = ({ fallback={skeleton} > - diff --git a/frontend/src/components/data-table/column-summary/legacy-chart-spec.ts b/frontend/src/components/data-table/column-summary/legacy-chart-spec.ts index 63e1e50321e..9e0022a056c 100644 --- a/frontend/src/components/data-table/column-summary/legacy-chart-spec.ts +++ b/frontend/src/components/data-table/column-summary/legacy-chart-spec.ts @@ -4,7 +4,7 @@ import { mint, orange, slate } from "@radix-ui/colors"; import type { TopLevelSpec } from "vega-lite"; -import type { Scale } from "vega-lite/build/src/scale"; +import type { Scale } from "vega-lite/types_unstable/scale.js"; // @ts-expect-error vega-typings does not include formats import { formats } from "vega-loader"; import { asRemoteURL } from "@/core/runtime/config"; diff --git a/frontend/src/components/data-table/column-summary/utils.ts b/frontend/src/components/data-table/column-summary/utils.ts index 9801305e12c..7e0c2057eea 100644 --- a/frontend/src/components/data-table/column-summary/utils.ts +++ b/frontend/src/components/data-table/column-summary/utils.ts @@ -1,6 +1,6 @@ /* Copyright 2024 Marimo. All rights reserved. */ -import type { StringFieldDef } from "vega-lite/build/src/channeldef"; +import type { StringFieldDef } from "vega-lite/types_unstable/channeldef.js"; import { Logger } from "@/utils/Logger"; import type { BinValues } from "../types"; diff --git a/frontend/src/components/datasources/column-preview.tsx b/frontend/src/components/datasources/column-preview.tsx index df5319897ee..0d94241d52e 100644 --- a/frontend/src/components/datasources/column-preview.tsx +++ b/frontend/src/components/datasources/column-preview.tsx @@ -21,6 +21,7 @@ import type { TopLevelFacetedUnitSpec } from "@/plugins/impl/data-explorer/queri import { type Theme, useTheme } from "@/theme/useTheme"; import { Events } from "@/utils/events"; import { prettyNumber } from "@/utils/numbers"; +import { LazyVegaEmbed } from "../charts/lazy"; import type { ColumnHeaderStatsKey } from "../data-table/types"; import { CopyClipboardIcon } from "../icons/copy-icon"; import { Spinner } from "../icons/spinner"; @@ -30,10 +31,6 @@ import { ColumnPreviewContainer } from "./components"; import { InstallPackageButton } from "./install-package-button"; import { convertStatsName, sqlCode } from "./utils"; -const LazyVegaLite = React.lazy(() => - import("react-vega").then((m) => ({ default: m.VegaLite })), -); - export const DatasetColumnPreview: React.FC<{ table: DataTable; column: DataTableColumn; @@ -226,12 +223,14 @@ export function renderChart(chartSpec: string, theme: Theme) { return ( - ); diff --git a/frontend/src/components/editor/Output.tsx b/frontend/src/components/editor/Output.tsx index dd6639e8ab7..c1493109139 100644 --- a/frontend/src/components/editor/Output.tsx +++ b/frontend/src/components/editor/Output.tsx @@ -35,6 +35,7 @@ import { useTheme } from "@/theme/useTheme"; import { Events } from "@/utils/events"; import { invariant } from "@/utils/invariant"; import { Objects } from "@/utils/objects"; +import { LazyVegaEmbed } from "../charts/lazy"; import { ChartLoadingState } from "../data-table/charts/components/chart-states"; import { Button } from "../ui/button"; import { Tabs, TabsContent, TabsList, TabsTrigger } from "../ui/tabs"; @@ -43,10 +44,6 @@ import { CsvViewer } from "./file-tree/renderers"; import { MarimoTracebackOutput } from "./output/MarimoTracebackOutput"; import { renderMimeIcon } from "./renderMimeIcon"; -const LazyVegaLite = React.lazy(() => - import("react-vega").then((m) => ({ default: m.VegaLite })), -); - type MimeBundle = Record; type MimeBundleOrTuple = MimeBundle | [MimeBundle, { [key: string]: unknown }]; @@ -178,10 +175,13 @@ export const OutputRenderer: React.FC<{ case "application/vnd.vega.v5+json": return ( }> - ); diff --git a/frontend/src/components/editor/renderers/slides-layout/types.ts b/frontend/src/components/editor/renderers/slides-layout/types.ts index 24220fa776e..5fc4fcd20be 100644 --- a/frontend/src/components/editor/renderers/slides-layout/types.ts +++ b/frontend/src/components/editor/renderers/slides-layout/types.ts @@ -5,7 +5,7 @@ * The serialized form of a slides layout. * This must be backwards-compatible as it is stored on the user's disk. */ -// eslint-disable-next-line @typescript-eslint/no-empty-object-type +// eslint-disable-next-line @typescript-eslint/consistent-type-definitions export type SerializedSlidesLayout = {}; export interface SlidesLayout extends SerializedSlidesLayout { diff --git a/frontend/src/components/tracing/tracing-spec.ts b/frontend/src/components/tracing/tracing-spec.ts index 1283c51149e..f0b00c22436 100644 --- a/frontend/src/components/tracing/tracing-spec.ts +++ b/frontend/src/components/tracing/tracing-spec.ts @@ -1,7 +1,7 @@ /* Copyright 2024 Marimo. All rights reserved. */ import type { TopLevelSpec } from "vega-lite"; -import type { TimeUnit } from "vega-lite/build/src/timeunit"; +import type { TimeUnit } from "vega-typings"; import type { CellId } from "@/core/cells/ids"; import type { CellRun } from "@/core/cells/runs"; import type { ResolvedTheme } from "@/theme/useTheme"; @@ -34,7 +34,7 @@ export function createGanttBaseSpec( // @ts-expect-error - Supported by vega/vega-lite but invalid "TimeUnit" option from exported type const timeUnit: TimeUnit = "hoursminutessecondsmilliseconds"; return { - $schema: "https://vega.github.io/schema/vega-lite/v5.json", + $schema: "https://vega.github.io/schema/vega-lite/v6.json", background: theme === "dark" ? "black" : undefined, mark: { type: "bar", diff --git a/frontend/src/components/tracing/tracing.test.tsx b/frontend/src/components/tracing/tracing.test.tsx index b9b94c443fe..a04c3c66295 100644 --- a/frontend/src/components/tracing/tracing.test.tsx +++ b/frontend/src/components/tracing/tracing.test.tsx @@ -1,6 +1,6 @@ /* Copyright 2024 Marimo. All rights reserved. */ import { afterAll, beforeAll, describe, expect, it, vi } from "vitest"; -import { formatChartTime } from "./tracing"; +import { formatChartTime } from "./utils"; describe("formatChartTime", () => { beforeAll(() => { diff --git a/frontend/src/components/tracing/tracing.tsx b/frontend/src/components/tracing/tracing.tsx index a3f7b229dce..2a33e1255b6 100644 --- a/frontend/src/components/tracing/tracing.tsx +++ b/frontend/src/components/tracing/tracing.tsx @@ -10,8 +10,8 @@ import { CirclePlayIcon, CircleX, } from "lucide-react"; -import React, { type JSX, Suspense, useRef, useState } from "react"; -import type { SignalListeners, VisualizationSpec } from "react-vega"; +import React, { type JSX, Suspense, useEffect, useRef, useState } from "react"; +import { useVegaEmbed } from "react-vega"; import useResizeObserver from "use-resize-observer"; import { compile } from "vega-lite"; import { Tooltip } from "@/components/ui/tooltip"; @@ -28,6 +28,7 @@ import { import { type ResolvedTheme, useTheme } from "@/theme/useTheme"; import { cn } from "@/utils/cn"; import { ClearButton } from "../buttons/clear-button"; +import type { SignalListener } from "../charts/types"; import { ElapsedTime, formatElapsedTime } from "../editor/cell/CellStatus"; import { PanelEmptyState } from "../editor/chrome/panels/empty-state"; import { CellLink } from "../editor/links/cell-link"; @@ -37,6 +38,7 @@ import { createGanttBaseSpec, VEGA_HOVER_SIGNAL, } from "./tracing-spec"; +import { formatChartTime } from "./utils"; const expandedRunsAtom = atom>(new Map()); @@ -101,42 +103,13 @@ export const Tracing: React.FC = () => { /> ); } + return null; })} ); }; -// Using vega instead of vegaLite as some parts of the spec get interpreted as vega & will throw warnings -const LazyVega = React.lazy(() => - import("react-vega").then((m) => ({ default: m.Vega })), -); -interface ChartProps { - className?: string; - height: number; - vegaSpec: VisualizationSpec; - signalListeners: SignalListeners; - theme: ResolvedTheme; -} - -const Chart: React.FC = (props: ChartProps) => { - const { ref, width = 300 } = useResizeObserver(); - return ( -
- - - -
- ); -}; - interface VegaHoverCellSignal { cell: string[]; vlPoint: unknown; @@ -201,14 +174,8 @@ const TraceBlockBody: React.FC<{ title: React.ReactNode; }> = ({ run, chartPosition, theme, title }) => { const [hoveredCellId, setHoveredCellId] = useState(); - - const handleVegaSignal = { - [VEGA_HOVER_SIGNAL]: (_name: string, value: unknown) => { - const signalValue = value as VegaHoverCellSignal; - const hoveredCell = signalValue.cell?.[0] as CellId | undefined; - setHoveredCellId(hoveredCell ?? null); - }, - }; + const vegaRef = useRef(null); + const { ref, width = 300 } = useResizeObserver(); const cellIds = useCellIds(); @@ -236,6 +203,42 @@ const TraceBlockBody: React.FC<{ ), ).spec; + const embed = useVegaEmbed({ + ref: vegaRef, + spec: vegaSpec, + options: { + theme: theme === "dark" ? "dark" : undefined, + width: width - 50, + height: chartPosition === "above" ? 120 : 100, + actions: false, + // Using vega instead of vegaLite as some parts of the spec get interpreted as vega & will throw warnings + mode: "vega", + }, + }); + + useEffect(() => { + const signalListeners: SignalListener[] = [ + { + signalName: VEGA_HOVER_SIGNAL, + handler: (_name: string, value: unknown) => { + const signalValue = value as VegaHoverCellSignal; + const hoveredCell = signalValue.cell?.[0] as CellId | undefined; + setHoveredCellId(hoveredCell ?? null); + }, + }, + ]; + + signalListeners.forEach(({ signalName, handler }) => { + embed?.view.addSignalListener(signalName, handler); + }); + + return () => { + signalListeners.forEach(({ signalName, handler }) => { + embed?.view.removeSignalListener(signalName, handler); + }); + }; + }, [embed]); + const traceRows = ( ); + const chartElement = ( +
+ +
+ +
+ ); + if (chartPosition === "above") { return (
           {title}
-          
+          {chartElement}
           {traceRows}
         
@@ -267,13 +276,7 @@ const TraceBlockBody: React.FC<{ {title} {traceRows} - + {chartElement}
); }; @@ -387,24 +390,3 @@ const TraceRow: React.FC = ({ ); }; - -export function formatChartTime(timestamp: number): string { - try { - // Multiply by 1000 to convert seconds to milliseconds - const date = new Date(timestamp * 1000); - - const year = date.getFullYear(); - const month = String(date.getMonth() + 1).padStart(2, "0"); // getMonth() is 0-indexed - const day = String(date.getDate()).padStart(2, "0"); - - const hours = String(date.getHours()).padStart(2, "0"); - const minutes = String(date.getMinutes()).padStart(2, "0"); - const seconds = String(date.getSeconds()).padStart(2, "0"); - - const milliseconds = String(date.getMilliseconds()).padStart(3, "0"); - - return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}.${milliseconds}`; - } catch { - return ""; - } -} diff --git a/frontend/src/components/tracing/utils.ts b/frontend/src/components/tracing/utils.ts new file mode 100644 index 00000000000..43eae16675e --- /dev/null +++ b/frontend/src/components/tracing/utils.ts @@ -0,0 +1,22 @@ +/* Copyright 2024 Marimo. All rights reserved. */ + +export function formatChartTime(timestamp: number): string { + try { + // Multiply by 1000 to convert seconds to milliseconds + const date = new Date(timestamp * 1000); + + const year = date.getFullYear(); + const month = String(date.getMonth() + 1).padStart(2, "0"); // getMonth() is 0-indexed + const day = String(date.getDate()).padStart(2, "0"); + + const hours = String(date.getHours()).padStart(2, "0"); + const minutes = String(date.getMinutes()).padStart(2, "0"); + const seconds = String(date.getSeconds()).padStart(2, "0"); + + const milliseconds = String(date.getMilliseconds()).padStart(3, "0"); + + return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}.${milliseconds}`; + } catch { + return ""; + } +} diff --git a/frontend/src/plugins/impl/data-explorer/ConnectedDataExplorerComponent.tsx b/frontend/src/plugins/impl/data-explorer/ConnectedDataExplorerComponent.tsx index 279d6c0e1bd..27931a8952a 100644 --- a/frontend/src/plugins/impl/data-explorer/ConnectedDataExplorerComponent.tsx +++ b/frontend/src/plugins/impl/data-explorer/ConnectedDataExplorerComponent.tsx @@ -4,15 +4,15 @@ import * as cql from "compassql/build/src"; import { createStore, Provider, useAtomValue } from "jotai"; import { ListFilterIcon } from "lucide-react"; import React, { type JSX, useMemo } from "react"; -import { VegaLite } from "react-vega"; -import type { VegaLiteProps } from "react-vega/lib/VegaLite"; +import { VegaEmbed, type VegaEmbedProps } from "react-vega"; import { tooltipHandler } from "@/components/charts/tooltip"; +import { augmentSpecWithData } from "@/components/data-table/charts/chart-spec/spec"; import { Badge } from "@/components/ui/badge"; import { Button } from "@/components/ui/button"; import { Tooltip } from "@/components/ui/tooltip"; import { useAsyncData } from "@/hooks/useAsyncData"; import { useOnMount } from "@/hooks/useLifecycle"; -import { useTheme } from "@/theme/useTheme"; +import { type ResolvedTheme, useTheme } from "@/theme/useTheme"; import { Objects } from "@/utils/objects"; import { ErrorBanner } from "../common/error-banner"; import { vegaLoadData } from "../vega/loader"; @@ -70,14 +70,19 @@ interface DataTableProps extends DataExplorerData { setValue: (value: DataExplorerState) => void; } -const ACTIONS: VegaLiteProps["actions"] = { - export: { svg: true, png: true }, - source: false, - compiled: false, - editor: false, -}; - -const PADDING = { left: 20, right: 20, top: 20, bottom: 20 }; +function chartOptions(theme: ResolvedTheme): VegaEmbedProps["options"] { + return { + padding: { left: 20, right: 20, top: 20, bottom: 20 }, + actions: { + export: { svg: true, png: true }, + source: false, + compiled: false, + editor: false, + }, + theme: theme === "dark" ? "dark" : undefined, + tooltip: tooltipHandler.call, + }; +} export default ConnectedDataExplorerComponent; @@ -129,16 +134,14 @@ export const DataExplorerComponent = ({ return ; } + const spec = mainPlot.spec; + const responsiveSpec = makeResponsive(spec); + // TODO: We can optimize by updating the data dynamically. https://github.com/vega/react-vega?tab=readme-ov-file#recipes + const augmentedSpec = augmentSpecWithData(responsiveSpec, chartData); + return (
- +
); }; @@ -207,13 +210,10 @@ export const DataExplorerComponent = ({ } > - ))} diff --git a/frontend/src/plugins/impl/data-explorer/functions/function.ts b/frontend/src/plugins/impl/data-explorer/functions/function.ts index 4d6983c7599..26bb94bb579 100644 --- a/frontend/src/plugins/impl/data-explorer/functions/function.ts +++ b/frontend/src/plugins/impl/data-explorer/functions/function.ts @@ -1,8 +1,7 @@ /* Copyright 2024 Marimo. All rights reserved. */ /* eslint-disable @typescript-eslint/no-base-to-string */ import type { FieldQuery } from "compassql/build/src/query/encoding"; -import { isAggregateOp } from "vega-lite/build/src/aggregate"; -import type { FieldFunction, TimeUnitOp } from "./types"; +import { type FieldFunction, isAggregateOp, type TimeUnitOp } from "./types"; // This code is adapted and simplified from https://github.com/vega/voyager diff --git a/frontend/src/plugins/impl/data-explorer/functions/types.ts b/frontend/src/plugins/impl/data-explorer/functions/types.ts index 288ce188fcb..8b62ce2f6c2 100644 --- a/frontend/src/plugins/impl/data-explorer/functions/types.ts +++ b/frontend/src/plugins/impl/data-explorer/functions/types.ts @@ -1,19 +1,70 @@ /* Copyright 2024 Marimo. All rights reserved. */ +import { isString } from "lodash-es"; +import type { + ArgmaxDef, + ArgminDef, +} from "vega-lite/types_unstable/aggregate.d.ts"; +import type { isAggregateOp as isAggregateOpVega } from "vega-lite/types_unstable/aggregate.js"; +import type { AggregateOp } from "vega-typings"; + +// Vega doesn't expose the constant, so we define all here +const AGGREGATE_OPS: readonly AggregateOp[] = [ + "argmax", + "argmin", + "average", + "count", + "distinct", + "exponential", + "exponentialb", + "product", + "max", + "mean", + "median", + "min", + "missing", + "q1", + "q3", + "ci0", + "ci1", + "stderr", + "stdev", + "stdevp", + "sum", + "valid", + "values", + "variance", + "variancep", +] as const; + // Subset of aggregate operations that we support -type AggregateOp = - | "average" - | "count" - | "distinct" - | "max" - | "mean" - | "median" - | "min" - | "q1" - | "q3" - | "stderr" - | "stdev" - | "sum"; +const SUPPORTED_AGGREGATE_OPS: readonly AggregateOp[] = [ + "average", + "count", + "distinct", + "max", + "mean", + "median", + "min", + "q1", + "q3", + "stderr", + "stdev", + "sum", +]; +type SupportedAggregateOp = (typeof SUPPORTED_AGGREGATE_OPS)[number]; + +// We implement our own isAggregateOp because +// The vega-lite types_unstable import path fails in Vite (module resolution issue) +export const isAggregateOp: typeof isAggregateOpVega = ( + a: string | ArgminDef | ArgmaxDef, +): a is AggregateOp => { + if (!isString(a)) { + return false; + } + + return AGGREGATE_OPS.includes(a as AggregateOp); +}; // Subset of time units that we support export type TimeUnitOp = @@ -29,4 +80,4 @@ export type TimeUnitOp = | "yearmonthdate" | "monthdate"; -export type FieldFunction = AggregateOp | "bin" | TimeUnitOp; +export type FieldFunction = SupportedAggregateOp | "bin" | TimeUnitOp; diff --git a/frontend/src/plugins/impl/data-explorer/queries/queries.ts b/frontend/src/plugins/impl/data-explorer/queries/queries.ts index c2db1575fe3..fc584cadcab 100644 --- a/frontend/src/plugins/impl/data-explorer/queries/queries.ts +++ b/frontend/src/plugins/impl/data-explorer/queries/queries.ts @@ -11,8 +11,7 @@ import type { SpecQuery } from "compassql/build/src/query/spec"; import { getTopResultTreeItem, isResultTree } from "compassql/build/src/result"; import type { Schema } from "compassql/build/src/schema"; import { contains } from "vega-lite"; -import { NONPOSITION_SCALE_CHANNELS } from "vega-lite/build/src/channel"; -import type { NamedData } from "vega-lite/build/src/data"; +import type { NamedData } from "vega-lite/types_unstable/data.js"; import { type EncodingChannel, fromFieldQuery } from "../encoding"; import { toSpecQuery } from "../spec"; import type { ChartSpec } from "../state/types"; @@ -21,13 +20,14 @@ import { addQuantitativeField, addTemporalField, } from "./field-suggestion"; -import type { - PlotFieldInfo, - QueryCreator, - Result, - ResultingCharts, - ResultPlot, - TopLevelFacetedUnitSpec, +import { + NONPOSITION_SCALE_CHANNELS, + type PlotFieldInfo, + type QueryCreator, + type Result, + type ResultingCharts, + type ResultPlot, + type TopLevelFacetedUnitSpec, } from "./types"; import { hasWildcards, isQueryEmpty } from "./utils"; diff --git a/frontend/src/plugins/impl/data-explorer/queries/types.ts b/frontend/src/plugins/impl/data-explorer/queries/types.ts index 56426894760..67ce2844651 100644 --- a/frontend/src/plugins/impl/data-explorer/queries/types.ts +++ b/frontend/src/plugins/impl/data-explorer/queries/types.ts @@ -1,8 +1,9 @@ /* Copyright 2024 Marimo. All rights reserved. */ import type { Query } from "compassql/build/src/query"; -import type { VisualizationSpec } from "react-vega"; -import type { NamedData } from "vega-lite/build/src/data"; -import type { FacetedUnitSpec, TopLevel } from "vega-lite/build/src/spec"; +import type { NONPOSITION_SCALE_CHANNELS as NONPOSITION_SCALE_CHANNELS_VEGA } from "vega-lite/types_unstable/channel.js"; +import type { NamedData } from "vega-lite/types_unstable/data.js"; +import type { TopLevel } from "vega-lite/types_unstable/spec/toplevel.js"; +import type { FacetedUnitSpec } from "vega-lite/types_unstable/spec/unit.js"; import type { EncodingChannel, FieldDefinition } from "../encoding"; export interface PlotFieldInfo { @@ -16,7 +17,7 @@ export interface ResultPlot { /** * Spec to be used for rendering. */ - spec: VisualizationSpec; + spec: TopLevelFacetedUnitSpec; } export interface Result { @@ -27,7 +28,7 @@ export interface Result { limit: number; } -// eslint-disable-next-line @typescript-eslint/no-explicit-any +// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-redundant-type-constituents export type TopLevelFacetedUnitSpec = TopLevel> & { data: NamedData; }; @@ -52,3 +53,20 @@ export interface QueryCreator { createQuery(query: Query): Query; } + +// Define our own because vega-lite types_unstable import path fails in Vite (module resolution issue) +export const NONPOSITION_SCALE_CHANNELS: typeof NONPOSITION_SCALE_CHANNELS_VEGA = + [ + "color", + "fill", + "stroke", + "opacity", + "fillOpacity", + "strokeOpacity", + "strokeWidth", + "size", + "shape", + "strokeDash", + "angle", + "time", + ] as const; diff --git a/frontend/src/plugins/impl/vega/encodings.ts b/frontend/src/plugins/impl/vega/encodings.ts index 0e700c27a08..a3b6cc4604f 100644 --- a/frontend/src/plugins/impl/vega/encodings.ts +++ b/frontend/src/plugins/impl/vega/encodings.ts @@ -45,7 +45,7 @@ export function findEncodedFields(spec: VegaLiteSpec): string[] { if (!encoding) { return []; } - if (!ALLOWED_ENCODING_TYPES.has(key as EncodingType)) { + if (!ALLOWED_ENCODING_TYPES.has(key)) { return []; } diff --git a/frontend/src/plugins/impl/vega/params.ts b/frontend/src/plugins/impl/vega/params.ts index 2db1e073433..80c4845eec5 100644 --- a/frontend/src/plugins/impl/vega/params.ts +++ b/frontend/src/plugins/impl/vega/params.ts @@ -1,16 +1,14 @@ /* Copyright 2024 Marimo. All rights reserved. */ import type { TopLevelSpec } from "vega-lite"; -import type { - LayerSpec, - NonNormalizedSpec, - UnitSpec, -} from "vega-lite/build/src/spec"; +import type { NonNormalizedSpec } from "vega-lite/types_unstable/spec/index.js"; import { Marks } from "./marks"; import { type Field, + type LayerSpec, Mark, type SelectionParameter, type SingleDefUnitChannel, + type UnitSpec, type VegaLiteUnitSpec, } from "./types"; diff --git a/frontend/src/plugins/impl/vega/types.ts b/frontend/src/plugins/impl/vega/types.ts index 238dbd4c5f6..cd9cb62a16a 100644 --- a/frontend/src/plugins/impl/vega/types.ts +++ b/frontend/src/plugins/impl/vega/types.ts @@ -1,32 +1,51 @@ /* Copyright 2024 Marimo. All rights reserved. */ -import type { Field } from "vega-lite/build/src/channeldef"; -import type { Encoding } from "vega-lite/build/src/encoding"; +import type { Field } from "vega-lite/types_unstable/channeldef.js"; +import type { Encoding } from "vega-lite/types_unstable/encoding.js"; import type { GenericUnitSpec, TopLevelUnitSpec, -} from "vega-lite/build/src/spec/unit"; +} from "vega-lite/types_unstable/spec/unit.js"; export type { TopLevelSpec as VegaLiteSpec } from "vega-lite"; -export type { SingleDefUnitChannel } from "vega-lite/build/src/channel"; -export type { Field } from "vega-lite/build/src/channeldef"; -export type { SharedCompositeEncoding } from "vega-lite/build/src/compositemark"; -export type { DataFormat } from "vega-lite/build/src/data"; -export type { AnyMark, MarkDef } from "vega-lite/build/src/mark"; -export { Mark } from "vega-lite/build/src/mark"; +export type { SingleDefUnitChannel } from "vega-lite/types_unstable/channel.js"; +export type { Field } from "vega-lite/types_unstable/channeldef.js"; +export type { SharedCompositeEncoding } from "vega-lite/types_unstable/compositemark/index.js"; +export type { DataFormat } from "vega-lite/types_unstable/data.js"; +export type { AnyMark, MarkDef } from "vega-lite/types_unstable/mark.js"; export type { SelectionParameter, SelectionType, -} from "vega-lite/build/src/selection"; +} from "vega-lite/types_unstable/selection.js"; +export type { GenericFacetSpec } from "vega-lite/types_unstable/spec/facet.js"; +export type { LayerSpec } from "vega-lite/types_unstable/spec/layer.js"; export type { FacetedUnitSpec, - GenericFacetSpec, - LayerSpec, UnitSpec, -} from "vega-lite/build/src/spec"; +} from "vega-lite/types_unstable/spec/unit.js"; export type VegaLiteUnitSpec = TopLevelUnitSpec; // eslint-disable-next-line @typescript-eslint/no-explicit-any export type GenericVegaSpec = GenericUnitSpec; export type EncodingType = keyof Encoding; export type Encodings = Encoding; + +// import type { Mark } from "vega-lite/types_unstable/mark.js"; +// Mark has issues with types so we manually define +export const Mark = { + arc: "arc", + area: "area", + bar: "bar", + image: "image", + line: "line", + point: "point", + rect: "rect", + rule: "rule", + text: "text", + tick: "tick", + trail: "trail", + circle: "circle", + square: "square", + geoshape: "geoshape", +} as const; +export type Mark = keyof typeof Mark; diff --git a/frontend/src/plugins/impl/vega/vega-component.tsx b/frontend/src/plugins/impl/vega/vega-component.tsx index 61aca665a57..fa986ff4492 100644 --- a/frontend/src/plugins/impl/vega/vega-component.tsx +++ b/frontend/src/plugins/impl/vega/vega-component.tsx @@ -3,12 +3,14 @@ import { isValid } from "date-fns"; import { debounce } from "lodash-es"; import { HelpCircleIcon } from "lucide-react"; -import { type JSX, useMemo, useRef, useState } from "react"; +import { type JSX, useEffect, useMemo, useRef, useState } from "react"; import useEvent from "react-use-event-hook"; -import { type SignalListeners, VegaLite, type View } from "react-vega"; +import { useVegaEmbed } from "react-vega"; +import type { View } from "vega"; // @ts-expect-error vega-typings does not include formats import { formats } from "vega-loader"; import { tooltipHandler } from "@/components/charts/tooltip"; +import type { SignalListener } from "@/components/charts/types"; import { Alert, AlertTitle } from "@/components/ui/alert"; import { Tooltip } from "@/components/ui/tooltip"; import { useAsyncData } from "@/hooks/useAsyncData"; @@ -94,6 +96,7 @@ const LoadedVegaComponent = ({ spec, }: VegaComponentProps): JSX.Element => { const { theme } = useTheme(); + const vegaRef = useRef(null); const vegaView = useRef(undefined); const [error, setError] = useState(); @@ -116,32 +119,42 @@ const LoadedVegaComponent = ({ setValue({ ...value, ...newValue }); }); + const debouncedSignalHandler = useMemo( + () => + debounce((signalName: string, signalValue: unknown) => { + Logger.debug("[Vega signal]", signalName, signalValue); + let result = Objects.mapValues( + signalValue as object, + convertDatetimeToEpochMilliseconds, + ); + result = Objects.mapValues(result, convertSetToList); + + handleUpdateValue({ + [signalName]: result, + }); + }, 100), + [handleUpdateValue], + ); + const namesMemo = useDeepCompareMemoize(names); const signalListeners = useMemo( () => - namesMemo.reduce((acc, name) => { + namesMemo.reduce((acc, name) => { // pan/zoom does not count towards selection if (ParamNames.PAN_ZOOM === name) { return acc; } - // Debounce each signal listener, otherwise we may create expensive requests - acc[name] = debounce((signalName, signalValue) => { - Logger.debug("[Vega signal]", signalName, signalValue); + acc.push({ + signalName: name, + handler: (signalName, signalValue) => + // Debounce the signal listener, otherwise we may create expensive requests + debouncedSignalHandler(signalName, signalValue), + }); - let result = Objects.mapValues( - signalValue as object, - convertDatetimeToEpochMilliseconds, - ); - result = Objects.mapValues(result, convertSetToList); - - handleUpdateValue({ - [signalName]: result, - }); - }, 100); return acc; - }, {}), - [namesMemo, handleUpdateValue], + }, []), + [namesMemo, debouncedSignalHandler], ); const handleError = useEvent((error) => { @@ -214,6 +227,40 @@ const LoadedVegaComponent = ({ ); }; + const embed = useVegaEmbed({ + ref: vegaRef, + spec: selectableSpec, + options: { + theme: theme === "dark" ? "dark" : undefined, + actions: actions, + mode: "vega-lite", + tooltip: tooltipHandler.call, + }, + onError: handleError, + onEmbed: handleNewView, + }); + + useEffect(() => { + signalListeners.forEach(({ signalName, handler }) => { + // Existing bug. TODO: Some signal listeners are invalid + try { + embed?.view.addSignalListener(signalName, handler); + } catch (error) { + Logger.error(error); + } + }); + + return () => { + signalListeners.forEach(({ signalName, handler }) => { + try { + embed?.view.removeSignalListener(signalName, handler); + } catch (error) { + Logger.error(error); + } + }); + }; + }, [embed, signalListeners]); + return ( <> {error && ( @@ -227,15 +274,7 @@ const LoadedVegaComponent = ({ // Capture the pointer down event to prevent the parent from handling it onPointerDown={Events.stopPropagation()} > - +
{renderHelpContent()}
diff --git a/frontend/src/stories/__fixtures__/vega.ts b/frontend/src/stories/__fixtures__/vega.ts index 2afef5d7df0..cefd27b9bce 100644 --- a/frontend/src/stories/__fixtures__/vega.ts +++ b/frontend/src/stories/__fixtures__/vega.ts @@ -146,7 +146,7 @@ export const CIRCLE_CHART: VegaLiteSpec = { }; export const CIRCLE_2_CHART: VegaLiteSpec = { - $schema: "https://vega.github.io/schema/vega-lite/v5.14.1.json", + $schema: "https://vega.github.io/schema/vega-lite/v6.json", config: { view: { continuousHeight: 300, continuousWidth: 300 }, scale: { bandPaddingInner: 0.2 }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d6da08212e8..0a807d7440f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -33,7 +33,7 @@ importers: version: 2.5.6 vitest: specifier: ^3.2.4 - version: 3.2.4(@types/debug@4.1.12)(@types/node@24.9.1)(esbuild@0.25.9)(jiti@2.5.1)(jsdom@24.1.3)(msw@2.11.1(@types/node@24.9.1)(typescript@5.9.3))(terser@5.44.0)(yaml@2.8.1) + version: 3.2.4(@types/debug@4.1.12)(@types/node@24.9.2)(esbuild@0.25.9)(jiti@2.5.1)(jsdom@24.1.3)(msw@2.11.1(@types/node@24.9.2)(typescript@5.9.3))(terser@5.44.0)(yaml@2.8.1) frontend: dependencies: @@ -45,10 +45,10 @@ importers: version: 0.2.0 '@codemirror/autocomplete': specifier: ^6.19.0 - version: 6.19.0 + version: 6.19.1 '@codemirror/commands': specifier: ^6.9.0 - version: 6.9.0 + version: 6.10.0 '@codemirror/lang-markdown': specifier: ^6.4.0 version: 6.4.0 @@ -69,7 +69,7 @@ importers: version: 6.5.2 '@codemirror/lint': specifier: ^6.9.0 - version: 6.9.0 + version: 6.9.1 '@codemirror/merge': specifier: ^6.11.0 version: 6.11.0 @@ -123,7 +123,7 @@ importers: version: 3.10.0 '@lezer/common': specifier: ^1.2.3 - version: 1.2.3 + version: 1.3.0 '@lezer/highlight': specifier: ^1.2.1 version: 1.2.1 @@ -144,7 +144,7 @@ importers: version: 1.16.0(@codemirror/state@6.5.2)(@codemirror/view@6.38.6) '@marimo-team/codemirror-mcp': specifier: ^0.1.5 - version: 0.1.5(@codemirror/autocomplete@6.19.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.6)(@modelcontextprotocol/sdk@1.17.2) + version: 0.1.5(@codemirror/autocomplete@6.19.1)(@codemirror/state@6.5.2)(@codemirror/view@6.38.6)(@modelcontextprotocol/sdk@1.17.2) '@marimo-team/codemirror-sql': specifier: ^0.2.3 version: 0.2.3(@codemirror/state@6.5.2)(@codemirror/view@6.38.6) @@ -249,7 +249,7 @@ importers: version: 1.2.2(@types/react@19.1.12)(react@19.1.1) '@replit/codemirror-vim': specifier: ^6.3.0 - version: 6.3.0(@codemirror/commands@6.9.0)(@codemirror/language@6.11.3)(@codemirror/search@6.5.11)(@codemirror/state@6.5.2)(@codemirror/view@6.38.6) + version: 6.3.0(@codemirror/commands@6.10.0)(@codemirror/language@6.11.3)(@codemirror/search@6.5.11)(@codemirror/state@6.5.2)(@codemirror/view@6.38.6) '@tailwindcss/postcss': specifier: ^4.1.12 version: 4.1.13 @@ -279,16 +279,16 @@ importers: version: 2.4.1(react-dom@19.1.1(react@19.1.1))(react@19.1.1) '@uiw/codemirror-extensions-langs': specifier: ^4.25.2 - version: 4.25.2(@codemirror/autocomplete@6.19.0)(@codemirror/lang-css@6.3.1)(@codemirror/lang-html@6.4.9)(@codemirror/lang-javascript@6.2.4)(@codemirror/language-data@6.5.1)(@codemirror/language@6.11.3)(@codemirror/state@6.5.2)(@codemirror/view@6.38.6)(@lezer/common@1.2.3)(@lezer/highlight@1.2.1)(@lezer/javascript@1.5.1)(@lezer/lr@1.4.2) + version: 4.25.2(@codemirror/autocomplete@6.19.1)(@codemirror/lang-css@6.3.1)(@codemirror/lang-html@6.4.9)(@codemirror/lang-javascript@6.2.4)(@codemirror/language-data@6.5.1)(@codemirror/language@6.11.3)(@codemirror/state@6.5.2)(@codemirror/view@6.38.6)(@lezer/common@1.3.0)(@lezer/highlight@1.2.1)(@lezer/javascript@1.5.1)(@lezer/lr@1.4.2) '@uiw/react-codemirror': specifier: 4.25.1 - version: 4.25.1(@babel/runtime@7.27.6)(@codemirror/autocomplete@6.19.0)(@codemirror/language@6.11.3)(@codemirror/lint@6.9.0)(@codemirror/search@6.5.11)(@codemirror/state@6.5.2)(@codemirror/theme-one-dark@6.1.3)(@codemirror/view@6.38.6)(codemirror@6.0.2)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + version: 4.25.1(@babel/runtime@7.27.6)(@codemirror/autocomplete@6.19.1)(@codemirror/language@6.11.3)(@codemirror/lint@6.9.1)(@codemirror/search@6.5.11)(@codemirror/state@6.5.2)(@codemirror/theme-one-dark@6.1.3)(@codemirror/view@6.38.6)(codemirror@6.0.2)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) '@uwdata/flechette': specifier: ^1.1.2 version: 1.1.2 '@valtown/codemirror-codeium': specifier: ^1.1.1 - version: 1.1.1(@codemirror/autocomplete@6.19.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.6) + version: 1.1.1(@codemirror/autocomplete@6.19.1)(@codemirror/state@6.5.2)(@codemirror/view@6.38.6) '@xterm/addon-attach': specifier: ^0.11.0 version: 0.11.0(@xterm/xterm@5.5.0) @@ -330,7 +330,7 @@ importers: version: 1.1.1(@types/react-dom@19.1.9(@types/react@19.1.12))(@types/react@19.1.12)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) compassql: specifier: ^0.21.2 - version: 0.21.2(vega@5.33.0) + version: 0.21.2(vega@6.2.0) cssnano: specifier: ^7.1.1 version: 7.1.1(postcss@8.5.6) @@ -408,7 +408,7 @@ importers: version: 0.27.7 react-arborist: specifier: ^3.4.3 - version: 3.4.3(@types/node@24.9.1)(@types/react@19.1.12)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + version: 3.4.3(@types/node@24.9.2)(@types/react@19.1.12)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) react-aria: specifier: ^3.44.0 version: 3.44.0(react-dom@19.1.1(react@19.1.1))(react@19.1.1) @@ -417,7 +417,7 @@ importers: version: 1.13.0(react-dom@19.1.1(react@19.1.1))(react@19.1.1) react-codemirror-merge: specifier: 4.25.1 - version: 4.25.1(@babel/runtime@7.27.6)(@codemirror/autocomplete@6.19.0)(@codemirror/language@6.11.3)(@codemirror/lint@6.9.0)(@codemirror/search@6.5.11)(@codemirror/state@6.5.2)(@codemirror/theme-one-dark@6.1.3)(@codemirror/view@6.38.6)(codemirror@6.0.2)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + version: 4.25.1(@babel/runtime@7.27.6)(@codemirror/autocomplete@6.19.1)(@codemirror/language@6.11.3)(@codemirror/lint@6.9.1)(@codemirror/search@6.5.11)(@codemirror/state@6.5.2)(@codemirror/theme-one-dark@6.1.3)(@codemirror/view@6.38.6)(codemirror@6.0.2)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) react-dropzone: specifier: ^14.3.8 version: 14.3.8(react@19.1.1) @@ -443,8 +443,8 @@ importers: specifier: ^0.9.6 version: 0.9.6(react@19.1.1) react-vega: - specifier: ^7.7.1 - version: 7.7.1(react@19.1.1)(vega-lite@5.23.0(vega@5.33.0))(vega@5.33.0) + specifier: ^8.0.0 + version: 8.0.0(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(vega-embed@6.5.1(vega-lite@6.4.1(vega@6.2.0))(vega@6.2.0)) react-virtuoso: specifier: ^4.14.0 version: 4.14.0(react-dom@19.1.1(react@19.1.1))(react@19.1.1) @@ -491,11 +491,11 @@ importers: specifier: ^9.1.0 version: 9.1.0(react-dom@19.1.1(react@19.1.1))(react@19.1.1) vega-lite: - specifier: ^5.23.0 - version: 5.23.0(vega@5.33.0) + specifier: ^6.4.1 + version: 6.4.1(vega@6.2.0) vega-loader: - specifier: ^4.5.3 - version: 4.5.3 + specifier: ^5.1.0 + version: 5.1.0 vega-tooltip: specifier: ^1.1.0 version: 1.1.0 @@ -523,7 +523,7 @@ importers: version: 2.2.2 '@codecov/vite-plugin': specifier: ^1.9.1 - version: 1.9.1(rolldown-vite@7.1.20(@types/node@24.9.1)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1)) + version: 1.9.1(rolldown-vite@7.1.20(@types/node@24.9.2)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1)) '@csstools/postcss-light-dark-function': specifier: ^2.0.10 version: 2.0.10(postcss@8.5.6) @@ -532,13 +532,13 @@ importers: version: 1.56.1 '@storybook/addon-docs': specifier: ^9.1.14 - version: 9.1.15(@types/react@19.1.12)(storybook@9.1.15(@testing-library/dom@10.4.0)(msw@2.11.1(@types/node@24.9.1)(typescript@5.9.3))(rolldown-vite@7.1.20(@types/node@24.9.1)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1))) + version: 9.1.15(@types/react@19.1.12)(storybook@9.1.15(@testing-library/dom@10.4.0)(msw@2.11.1(@types/node@24.9.2)(typescript@5.9.3))(rolldown-vite@7.1.20(@types/node@24.9.2)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1))) '@storybook/addon-links': specifier: ^9.1.14 - version: 9.1.15(react@19.1.1)(storybook@9.1.15(@testing-library/dom@10.4.0)(msw@2.11.1(@types/node@24.9.1)(typescript@5.9.3))(rolldown-vite@7.1.20(@types/node@24.9.1)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1))) + version: 9.1.15(react@19.1.1)(storybook@9.1.15(@testing-library/dom@10.4.0)(msw@2.11.1(@types/node@24.9.2)(typescript@5.9.3))(rolldown-vite@7.1.20(@types/node@24.9.2)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1))) '@storybook/react-vite': specifier: ^9.1.14 - version: 9.1.15(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(rolldown-vite@7.1.20(@types/node@24.9.1)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1))(rollup@4.50.1)(storybook@9.1.15(@testing-library/dom@10.4.0)(msw@2.11.1(@types/node@24.9.1)(typescript@5.9.3))(rolldown-vite@7.1.20(@types/node@24.9.1)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1)))(typescript@5.9.3) + version: 9.1.15(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(rolldown-vite@7.1.20(@types/node@24.9.2)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1))(rollup@4.50.1)(storybook@9.1.15(@testing-library/dom@10.4.0)(msw@2.11.1(@types/node@24.9.2)(typescript@5.9.3))(rolldown-vite@7.1.20(@types/node@24.9.2)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1)))(typescript@5.9.3) '@swc-jotai/react-refresh': specifier: ^0.3.0 version: 0.3.0 @@ -559,7 +559,7 @@ importers: version: 4.17.12 '@types/node': specifier: ^24.3.0 - version: 24.9.1 + version: 24.9.2 '@types/react': specifier: ^19.1.12 version: 19.1.12 @@ -580,7 +580,7 @@ importers: version: 7.18.0(eslint@8.57.1)(typescript@5.9.3) '@vitejs/plugin-react': specifier: ^5.0.4 - version: 5.0.4(rolldown-vite@7.1.20(@types/node@24.9.1)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1)) + version: 5.0.4(rolldown-vite@7.1.20(@types/node@24.9.2)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1)) babel-plugin-react-compiler: specifier: 19.1.0-rc.3 version: 19.1.0-rc.3 @@ -610,19 +610,19 @@ importers: version: 1.3.0(eslint@8.57.1) eslint-plugin-storybook: specifier: ^9.0.14 - version: 9.0.17(eslint@8.57.1)(storybook@9.1.15(@testing-library/dom@10.4.0)(msw@2.11.1(@types/node@24.9.1)(typescript@5.9.3))(rolldown-vite@7.1.20(@types/node@24.9.1)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1)))(typescript@5.9.3) + version: 9.0.17(eslint@8.57.1)(storybook@9.1.15(@testing-library/dom@10.4.0)(msw@2.11.1(@types/node@24.9.2)(typescript@5.9.3))(rolldown-vite@7.1.20(@types/node@24.9.2)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1)))(typescript@5.9.3) eslint-plugin-unicorn: specifier: ^54.0.0 version: 54.0.0(eslint@8.57.1) eslint-plugin-vitest: specifier: ^0.4.1 - version: 0.4.1(@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3)(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.9.1)(esbuild@0.25.9)(jiti@2.5.1)(jsdom@24.1.3)(msw@2.11.1(@types/node@24.9.1)(typescript@5.9.3))(terser@5.44.0)(yaml@2.8.1)) + version: 0.4.1(@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3)(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.9.2)(esbuild@0.25.9)(jiti@2.5.1)(jsdom@24.1.3)(msw@2.11.1(@types/node@24.9.2)(typescript@5.9.3))(terser@5.44.0)(yaml@2.8.1)) jsdom: specifier: ^24.1.3 version: 24.1.3 msw: specifier: ^2.11.1 - version: 2.11.1(@types/node@24.9.1)(typescript@5.9.3) + version: 2.11.1(@types/node@24.9.2)(typescript@5.9.3) npm-run-all2: specifier: ^6.2.6 version: 6.2.6 @@ -643,7 +643,7 @@ importers: version: 19.1.1(react@19.1.1) storybook: specifier: ^9.1.14 - version: 9.1.15(@testing-library/dom@10.4.0)(msw@2.11.1(@types/node@24.9.1)(typescript@5.9.3))(rolldown-vite@7.1.20(@types/node@24.9.1)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1)) + version: 9.1.15(@testing-library/dom@10.4.0)(msw@2.11.1(@types/node@24.9.2)(typescript@5.9.3))(rolldown-vite@7.1.20(@types/node@24.9.2)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1)) stylelint: specifier: ^16.23.1 version: 16.23.1(typescript@5.9.3) @@ -653,18 +653,21 @@ importers: tailwindcss: specifier: ^4.1.15 version: 4.1.15 + vega-typings: + specifier: ^2.1.0 + version: 2.1.0 vite: specifier: npm:rolldown-vite@latest - version: rolldown-vite@7.1.20(@types/node@24.9.1)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1) + version: rolldown-vite@7.1.20(@types/node@24.9.2)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1) vite-plugin-top-level-await: specifier: ^1.6.0 - version: 1.6.0(@swc/helpers@0.5.17)(rolldown-vite@7.1.20(@types/node@24.9.1)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1))(rollup@4.50.1) + version: 1.6.0(@swc/helpers@0.5.17)(rolldown-vite@7.1.20(@types/node@24.9.2)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1))(rollup@4.50.1) vite-plugin-wasm: specifier: ^3.5.0 - version: 3.5.0(rolldown-vite@7.1.20(@types/node@24.9.1)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1)) + version: 3.5.0(rolldown-vite@7.1.20(@types/node@24.9.2)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1)) vitest: specifier: ^3.2.4 - version: 3.2.4(@types/debug@4.1.12)(@types/node@24.9.1)(esbuild@0.25.9)(jiti@2.5.1)(jsdom@24.1.3)(msw@2.11.1(@types/node@24.9.1)(typescript@5.9.3))(terser@5.44.0)(yaml@2.8.1) + version: 3.2.4(@types/debug@4.1.12)(@types/node@24.9.2)(esbuild@0.25.9)(jiti@2.5.1)(jsdom@24.1.3)(msw@2.11.1(@types/node@24.9.2)(typescript@5.9.3))(terser@5.44.0)(yaml@2.8.1) packages/llm-info: devDependencies: @@ -673,7 +676,7 @@ importers: version: link:../ts-config vitest: specifier: ^3.2.4 - version: 3.2.4(@types/debug@4.1.12)(@types/node@24.9.1)(esbuild@0.25.9)(jiti@2.5.1)(jsdom@24.1.3)(msw@2.11.1(@types/node@24.9.1)(typescript@5.9.3))(terser@5.44.0)(yaml@2.8.1) + version: 3.2.4(@types/debug@4.1.12)(@types/node@24.9.2)(esbuild@0.25.9)(jiti@2.5.1)(jsdom@24.1.3)(msw@2.11.1(@types/node@24.9.2)(typescript@5.9.3))(terser@5.44.0)(yaml@2.8.1) yaml: specifier: ^2.8.1 version: 2.8.1 @@ -695,7 +698,7 @@ importers: version: 1.2.5 '@types/node': specifier: ^24.3.0 - version: 24.9.1 + version: 24.9.2 '@types/ws': specifier: ^8.18.1 version: 8.18.1 @@ -716,7 +719,7 @@ importers: version: 5.9.3 vitest: specifier: ^3.2.4 - version: 3.2.4(@types/debug@4.1.12)(@types/node@24.9.1)(esbuild@0.25.9)(jiti@2.5.1)(jsdom@24.1.3)(msw@2.11.1(@types/node@24.9.1)(typescript@5.9.3))(terser@5.44.0)(yaml@2.8.1) + version: 3.2.4(@types/debug@4.1.12)(@types/node@24.9.2)(esbuild@0.25.9)(jiti@2.5.1)(jsdom@24.1.3)(msw@2.11.1(@types/node@24.9.2)(typescript@5.9.3))(terser@5.44.0)(yaml@2.8.1) vscode-ws-jsonrpc: specifier: ^3.5.0 version: 3.5.0 @@ -741,7 +744,7 @@ importers: version: 6.2.1 '@lezer/common': specifier: ^1.2.1 - version: 1.2.3 + version: 1.3.0 '@lezer/python': specifier: ^1.1.14 version: 1.1.18 @@ -1086,11 +1089,11 @@ packages: peerDependencies: vite: 4.x || 5.x || 6.x - '@codemirror/autocomplete@6.19.0': - resolution: {integrity: sha512-61Hfv3cF07XvUxNeC3E7jhG8XNi1Yom1G0lRC936oLnlF+jrbrv8rc/J98XlYzcsAoTVupfsf5fLej1aI8kyIg==} + '@codemirror/autocomplete@6.19.1': + resolution: {integrity: sha512-q6NenYkEy2fn9+JyjIxMWcNjzTL/IhwqfzOut1/G3PrIFkrbl4AL7Wkse5tLrQUUyqGoAKU5+Pi5jnnXxH5HGw==} - '@codemirror/commands@6.9.0': - resolution: {integrity: sha512-454TVgjhO6cMufsyyGN70rGIfJxJEjcqjBG2x2Y03Y/+Fm99d3O/Kv1QDYWuG6hvxsgmjXmBuATikIIYvERX+w==} + '@codemirror/commands@6.10.0': + resolution: {integrity: sha512-2xUIc5mHXQzT16JnyOFkh8PvfeXuIut3pslWGfsGOhxP/lpgRm9HOl/mpzLErgt5mXDovqA0d11P21gofRLb9w==} '@codemirror/lang-angular@0.1.4': resolution: {integrity: sha512-oap+gsltb/fzdlTQWD6BFF4bSLKcDnlxDsLdePiJpCVNKWXSTAbiiQeYI3UmES+BLAdkmIC1WjyztC1pi/bX4g==} @@ -1161,8 +1164,8 @@ packages: '@codemirror/legacy-modes@6.5.2': resolution: {integrity: sha512-/jJbwSTazlQEDOQw2FJ8LEEKVS72pU0lx6oM54kGpL8t/NJ2Jda3CZ4pcltiKTdqYSRk3ug1B3pil1gsjA6+8Q==} - '@codemirror/lint@6.9.0': - resolution: {integrity: sha512-wZxW+9XDytH3SKvS8cQzMyQCaaazH8XL1EMHleHe00wVzsv7NBQKVW2yzEHrRhmM7ZOhVdItPbvlRBvMp9ej7A==} + '@codemirror/lint@6.9.1': + resolution: {integrity: sha512-te7To1EQHePBQQzasDKWmK2xKINIXpk+xAiSYr9ZN+VB4KaT+/Hi2PEkeErTk5BV3PTz1TLyQL4MtJfPkKZ9sw==} '@codemirror/merge@6.11.0': resolution: {integrity: sha512-Wu5Camx8u0jKA4yV3IxcWGMIoXUxuptsbWW9kTje8d/NInnnALeyQaxcVssJznp9FRnu4As3qsBhacERyB9p6w==} @@ -1719,8 +1722,8 @@ packages: '@keyv/serialize@1.1.0': resolution: {integrity: sha512-RlDgexML7Z63Q8BSaqhXdCYNBy/JQnqYIwxofUrNLGCblOMHp+xux2Q8nLMLlPpgHQPoU0Do8Z6btCpRBEqZ8g==} - '@lezer/common@1.2.3': - resolution: {integrity: sha512-w7ojc8ejBqr2REPsWxJjrMFsA/ysDCFICn8zEOR9mrqzOu2amhITYuLD8ag6XZf0CFXDrhKqw7+tW8cX66NaDA==} + '@lezer/common@1.3.0': + resolution: {integrity: sha512-L9X8uHCYU310o99L3/MpJKYxPzXPOS7S0NmBaM7UO/x2Kb2WbmMLSkfvdr1KxRIFYOpbY0Jhn7CfLSUDzL8arQ==} '@lezer/cpp@1.1.3': resolution: {integrity: sha512-ykYvuFQKGsRi6IcE+/hCSGUhb/I4WPjd3ELhEblm2wS2cOznDFzO+ubK2c+ioysOnlZ3EduV+MVQFCPzAIoY3w==} @@ -4014,9 +4017,6 @@ packages: '@types/geojson@7946.0.16': resolution: {integrity: sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==} - '@types/geojson@7946.0.4': - resolution: {integrity: sha512-MHmwBtCb7OCv1DSivz2UNJXPGU/1btAWRKlqJ2saEhVJkpkvqHMMaOpKg0v4sAbDWSQekHGvPVMM8nQ+Jen03Q==} - '@types/har-format@1.2.16': resolution: {integrity: sha512-fluxdy7ryD3MV6h8pTfTYpy/xQzCFC7m89nOH9y94cNqJ1mDIDPut7MnRHI3F6qRmh/cT2fUjG1MLdCNb4hE9A==} @@ -4065,8 +4065,8 @@ packages: '@types/node@20.19.21': resolution: {integrity: sha512-CsGG2P3I5y48RPMfprQGfy4JPRZ6csfC3ltBZSRItG3ngggmNY/qs2uZKp4p9VbrpqNNSMzUZNFZKzgOGnd/VA==} - '@types/node@24.9.1': - resolution: {integrity: sha512-QoiaXANRkSXK6p0Duvt56W208du4P9Uye9hWLWgGMDTEoKPhuenzNcC4vGUmrNkiOKTlIrBoyNQYNpSwfEZXSg==} + '@types/node@24.9.2': + resolution: {integrity: sha512-uWN8YqxXxqFMX2RqGOrumsKeti4LlmIMIyV0lgut4jx7KQBcBiW6vkDtIBvHnHIquwNfJhk8v2OtmO8zXWHfPA==} '@types/normalize-package-data@2.4.4': resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} @@ -4537,8 +4537,8 @@ packages: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} - ansi-regex@6.1.0: - resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==} + ansi-regex@6.2.2: + resolution: {integrity: sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==} engines: {node: '>=12'} ansi-styles@3.2.1: @@ -4553,8 +4553,8 @@ packages: resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} engines: {node: '>=10'} - ansi-styles@6.2.1: - resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} + ansi-styles@6.2.3: + resolution: {integrity: sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==} engines: {node: '>=12'} ansi_up@6.0.6: @@ -4919,6 +4919,10 @@ packages: resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} engines: {node: '>=12'} + cliui@9.0.1: + resolution: {integrity: sha512-k7ndgKhwoQveBL+/1tqGJYNz097I7WOvwbmmU2AR5+magtbjPWQTS1C5vzGkBC8Ym8UWRzfKUzUUqFLypY4Q+w==} + engines: {node: '>=20'} + clone@2.1.2: resolution: {integrity: sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==} engines: {node: '>=0.8'} @@ -5642,6 +5646,9 @@ packages: elementary-circuits-directed-graph@1.3.1: resolution: {integrity: sha512-ZEiB5qkn2adYmpXGnJKkxT8uJHlW/mxmBpmeqawEHzPxh9HkLD4/1mFYX5l0On+f6rcPIt8/EWlRU2Vo3fX6dQ==} + emoji-regex@10.6.0: + resolution: {integrity: sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==} + emoji-regex@7.0.3: resolution: {integrity: sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==} @@ -6142,6 +6149,10 @@ packages: get-canvas-context@1.0.2: resolution: {integrity: sha512-LnpfLf/TNzr9zVOGiIY6aKCz8EKuXmlYNV7CM2pUjBa/B+c2I15tS7KLySep75+FuerJdmArvJLcsAXWEy2H0A==} + get-east-asian-width@1.4.0: + resolution: {integrity: sha512-QZjmEOC+IT1uk6Rx0sX22V6uHWVwbdbxf1faPqJ1QhLdGgsRGCZoyaQBm/piRdJy/D2um6hM1UP7ZEeQ4EkP+Q==} + engines: {node: '>=18'} + get-func-name@2.0.2: resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} @@ -8495,12 +8506,12 @@ packages: peerDependencies: react: ^19.1.0 - react-vega@7.7.1: - resolution: {integrity: sha512-Dj7n1LkfJEkY/FdwQfOZqIQ+wGUcJNwlTuWhYcuQtbBpTgvtI4wwqOvJ0QWBE19nXMU7t9HmP8sqQO5v6soOlg==} + react-vega@8.0.0: + resolution: {integrity: sha512-euye4Gec2ScnUK1zbSA2tzZXUwBmbba8bfbzaRVhdEJTGQfaD78bSgqrccrl9b2fKZS1TZXR0NADEHVe6nxvBg==} peerDependencies: react: ^19.1.0 - vega: '*' - vega-lite: '*' + react-dom: ^19.1.0 + vega-embed: ^7 react-virtuoso@4.14.0: resolution: {integrity: sha512-fR+eiCvirSNIRvvCD7ueJPRsacGQvUbjkwgWzBZXVq+yWypoH7mRUvWJzGHIdoRaCZCT+6mMMMwIG2S1BW3uwA==} @@ -8812,8 +8823,8 @@ packages: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true - semver@7.7.2: - resolution: {integrity: sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==} + semver@7.7.3: + resolution: {integrity: sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==} engines: {node: '>=10'} hasBin: true @@ -9028,6 +9039,10 @@ packages: resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} engines: {node: '>=12'} + string-width@7.2.0: + resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==} + engines: {node: '>=18'} + string.prototype.matchall@4.0.12: resolution: {integrity: sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==} engines: {node: '>= 0.4'} @@ -9068,8 +9083,8 @@ packages: resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} engines: {node: '>=8'} - strip-ansi@7.1.0: - resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} + strip-ansi@7.1.2: + resolution: {integrity: sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==} engines: {node: '>=12'} strip-bom@2.0.0: @@ -9713,14 +9728,14 @@ packages: resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} engines: {node: '>= 0.8'} - vega-canvas@1.2.7: - resolution: {integrity: sha512-OkJ9CACVcN9R5Pi9uF6MZBF06pO6qFpDYHWSKBJsdHP5o724KrsgR6UvbnXFH82FdsiTOff/HqjuaG8C7FL+9Q==} + vega-canvas@2.0.0: + resolution: {integrity: sha512-9x+4TTw/USYST5nx4yN272sy9WcqSRjAR0tkQYZJ4cQIeon7uVsnohvoPQK1JZu7K1QXGUqzj08z0u/UegBVMA==} - vega-crossfilter@4.1.3: - resolution: {integrity: sha512-nyPJAXAUABc3EocUXvAL1J/IWotZVsApIcvOeZaUdEQEtZ7bt8VtP2nj3CLbHBA8FZZVV+K6SmdwvCOaAD4wFQ==} + vega-crossfilter@5.1.0: + resolution: {integrity: sha512-EmVhfP3p6AM7o/lPan/QAoqjblI19BxWUlvl2TSs0xjQd8KbaYYbS4Ixt3cmEvl0QjRdBMF6CdJJ/cy9DTS4Fw==} - vega-dataflow@5.7.7: - resolution: {integrity: sha512-R2NX2HvgXL+u4E6u+L5lKvvRiCtnE6N6l+umgojfi53suhhkFP+zB+2UAQo4syxuZ4763H1csfkKc4xpqLzKnw==} + vega-dataflow@6.1.0: + resolution: {integrity: sha512-JxumGlODtFbzoQ4c/jQK8Tb/68ih0lrexlCozcMfTAwQ12XhTqCvlafh7MAKKTMBizjOfaQTHm4Jkyb1H5CfyQ==} vega-embed@6.5.1: resolution: {integrity: sha512-yz/L1bN3+fLOpgXVb/8sCRv4GlZpD2/ngeKJAFRiHTIRm5zK6W0KuqZZvyGaO7E4s7RuYjW1TWhRIOqh5rS5hA==} @@ -9728,41 +9743,38 @@ packages: vega: ^5.8.0 vega-lite: '*' - vega-encode@4.10.2: - resolution: {integrity: sha512-fsjEY1VaBAmqwt7Jlpz0dpPtfQFiBdP9igEefvumSpy7XUxOJmDQcRDnT3Qh9ctkv3itfPfI9g8FSnGcv2b4jQ==} + vega-encode@5.1.0: + resolution: {integrity: sha512-q26oI7B+MBQYcTQcr5/c1AMsX3FvjZLQOBi7yI0vV+GEn93fElDgvhQiYrgeYSD4Exi/jBPeUXuN6p4bLz16kA==} vega-event-selector@2.0.6: resolution: {integrity: sha512-UwCu50Sqd8kNZ1X/XgiAY+QAyQUmGFAwyDu7y0T5fs6/TPQnDo/Bo346NgSgINBEhEKOAMY1Nd/rPOk4UEm/ew==} - vega-event-selector@3.0.1: - resolution: {integrity: sha512-K5zd7s5tjr1LiOOkjGpcVls8GsH/f2CWCrWcpKy74gTCp+llCdwz0Enqo013ZlGaRNjfgD/o1caJRt3GSaec4A==} + vega-event-selector@4.0.0: + resolution: {integrity: sha512-CcWF4m4KL/al1Oa5qSzZ5R776q8lRxCj3IafCHs5xipoEHrkgu1BWa7F/IH5HrDNXeIDnqOpSV1pFsAWRak4gQ==} vega-expression@2.6.6: resolution: {integrity: sha512-zxPzXO33FawU3WQHRmHJaRreyJlyMaNMn1uuCFSouJttPkBBWB5gCrha2f5+pF3t4NMFWTnSrgCkR6mcaubnng==} - vega-expression@5.1.2: - resolution: {integrity: sha512-fFeDTh4UtOxlZWL54jf1ZqJHinyerWq/ROiqrQxqLkNJRJ86RmxYTgXwt65UoZ/l4VUv9eAd2qoJeDEf610Umw==} - - vega-expression@5.2.0: - resolution: {integrity: sha512-WRMa4ny3iZIVAzDlBh3ipY2QUuLk2hnJJbfbncPgvTF7BUgbIbKq947z+JicWksYbokl8n1JHXJoqi3XvpG0Zw==} + vega-expression@6.1.0: + resolution: {integrity: sha512-hHgNx/fQ1Vn1u6vHSamH7lRMsOa/yQeHGGcWVmh8fZafLdwdhCM91kZD9p7+AleNpgwiwzfGogtpATFaMmDFYg==} - vega-force@4.2.2: - resolution: {integrity: sha512-cHZVaY2VNNIG2RyihhSiWniPd2W9R9kJq0znxzV602CgUVgxEfTKtx/lxnVCn8nNrdKAYrGiqIsBzIeKG1GWHw==} + vega-force@5.1.0: + resolution: {integrity: sha512-wdnchOSeXpF9Xx8Yp0s6Do9F7YkFeOn/E/nENtsI7NOcyHpICJ5+UkgjUo9QaQ/Yu+dIDU+sP/4NXsUtq6SMaQ==} - vega-format@1.1.3: - resolution: {integrity: sha512-wQhw7KR46wKJAip28FF/CicW+oiJaPAwMKdrxlnTA0Nv8Bf7bloRlc+O3kON4b4H1iALLr9KgRcYTOeXNs2MOA==} + vega-format@2.1.0: + resolution: {integrity: sha512-i9Ht33IgqG36+S1gFDpAiKvXCPz+q+1vDhDGKK8YsgMxGOG4PzinKakI66xd7SdV4q97FgpR7odAXqtDN2wKqw==} - vega-functions@5.18.0: - resolution: {integrity: sha512-+D+ey4bDAhZA2CChh7bRZrcqRUDevv05kd2z8xH+il7PbYQLrhi6g1zwvf8z3KpgGInFf5O13WuFK5DQGkz5lQ==} + vega-functions@6.1.0: + resolution: {integrity: sha512-yooEbWt0FWMBNoohwLsl25lEh08WsWabTXbbS+q0IXZzWSpX4Cyi45+q7IFyy/2L4oaIfGIIV14dgn3srQQcGA==} - vega-geo@4.4.3: - resolution: {integrity: sha512-+WnnzEPKIU1/xTFUK3EMu2htN35gp9usNZcC0ZFg2up1/Vqu6JyZsX0PIO51oXSIeXn9bwk6VgzlOmJUcx92tA==} + vega-geo@5.1.0: + resolution: {integrity: sha512-H8aBBHfthc3rzDbz/Th18+Nvp00J73q3uXGAPDQqizioDm/CoXCK8cX4pMePydBY9S6ikBiGJrLKFDa80wI20g==} - vega-hierarchy@4.1.3: - resolution: {integrity: sha512-0Z+TYKRgOEo8XYXnJc2HWg1EGpcbNAhJ9Wpi9ubIbEyEHqIgjCIyFVN8d4nSfsJOcWDzsSmRqohBztxAhOCSaw==} + vega-hierarchy@5.1.0: + resolution: {integrity: sha512-rZlU8QJNETlB6o73lGCPybZtw2fBBsRIRuFE77aCLFHdGsh6wIifhplVarqE9icBqjUHRRUOmcEYfzwVIPr65g==} - vega-label@1.3.1: - resolution: {integrity: sha512-Emx4b5s7pvuRj3fBkAJ/E2snCoZACfKAwxVId7f/4kYVlAYLb5Swq6W8KZHrH4M9Qds1XJRUYW9/Y3cceqzEFA==} + vega-label@2.1.0: + resolution: {integrity: sha512-/hgf+zoA3FViDBehrQT42Lta3t8In6YwtMnwjYlh72zNn1p3c7E3YUBwqmAqTM1x+tudgzMRGLYig+bX1ewZxQ==} vega-lite@3.4.0: resolution: {integrity: sha512-RJg9uBNh5g0hA8xTzAcALUfNx0cEq7E7xx+vxPEGSMgI8z+A5KlE9u4jUx6nKu7Mjg1qZO8WOyWCmBS1kdFWPg==} @@ -9770,42 +9782,42 @@ packages: peerDependencies: vega: ^5.4.0 - vega-lite@5.23.0: - resolution: {integrity: sha512-l4J6+AWE3DIjvovEoHl2LdtCUkfm4zs8Xxx7INwZEAv+XVb6kR6vIN1gt3t2gN2gs/y4DYTs/RPoTeYAuEg6mA==} + vega-lite@6.4.1: + resolution: {integrity: sha512-KO3ybHNouRK4A0al/+2fN9UqgTEfxrd/ntGLY933Hg5UOYotDVQdshR3zn7OfXwQ7uj0W96Vfa5R+QxO8am3IQ==} engines: {node: '>=18'} hasBin: true peerDependencies: - vega: ^5.24.0 + vega: ^6.0.0 - vega-loader@4.5.3: - resolution: {integrity: sha512-dUfIpxTLF2magoMaur+jXGvwMxjtdlDZaIS8lFj6N7IhUST6nIvBzuUlRM+zLYepI5GHtCLOnqdKU4XV0NggCA==} + vega-loader@5.1.0: + resolution: {integrity: sha512-GaY3BdSPbPNdtrBz8SYUBNmNd8mdPc3mtdZfdkFazQ0RD9m+Toz5oR8fKnTamNSk9fRTJX0Lp3uEqxrAlQVreg==} - vega-parser@6.6.0: - resolution: {integrity: sha512-jltyrwCTtWeidi/6VotLCybhIl+ehwnzvFWYOdWNUP0z/EskdB64YmawNwjCjzTBMemeiQtY6sJPPbewYqe3Vg==} + vega-parser@7.1.0: + resolution: {integrity: sha512-g0lrYxtmYVW8G6yXpIS4J3Uxt9OUSkc0bLu5afoYDo4rZmoOOdll3x3ebActp5LHPW+usZIE+p5nukRS2vEc7Q==} - vega-projection@1.6.2: - resolution: {integrity: sha512-3pcVaQL9R3Zfk6PzopLX6awzrQUeYOXJzlfLGP2Xd93mqUepBa6m/reVrTUoSFXA3v9lfK4W/PS2AcVzD/MIcQ==} + vega-projection@2.1.0: + resolution: {integrity: sha512-EjRjVSoMR5ibrU7q8LaOQKP327NcOAM1+eZ+NO4ANvvAutwmbNVTmfA1VpPH+AD0AlBYc39ND/wnRk7SieDiXA==} - vega-regression@1.3.1: - resolution: {integrity: sha512-AmccF++Z9uw4HNZC/gmkQGe6JsRxTG/R4QpbcSepyMvQN1Rj5KtVqMcmVFP1r3ivM4dYGFuPlzMWvuqp0iKMkQ==} + vega-regression@2.1.0: + resolution: {integrity: sha512-HzC7MuoEwG1rIxRaNTqgcaYF03z/ZxYkQR2D5BN0N45kLnHY1HJXiEcZkcffTsqXdspLjn47yLi44UoCwF5fxQ==} - vega-runtime@6.2.1: - resolution: {integrity: sha512-b4eot3tWKCk++INWqot+6sLn3wDTj/HE+tRSbiaf8aecuniPMlwJEK7wWuhVGeW2Ae5n8fI/8TeTViaC94bNHA==} + vega-runtime@7.1.0: + resolution: {integrity: sha512-mItI+WHimyEcZlZrQ/zYR3LwHVeyHCWwp7MKaBjkU8EwkSxEEGVceyGUY9X2YuJLiOgkLz/6juYDbMv60pfwYA==} - vega-scale@7.4.2: - resolution: {integrity: sha512-o6Hl76aU1jlCK7Q8DPYZ8OGsp4PtzLdzI6nGpLt8rxoE78QuB3GBGEwGAQJitp4IF7Lb2rL5oAXEl3ZP6xf9jg==} + vega-scale@8.1.0: + resolution: {integrity: sha512-VEgDuEcOec8+C8+FzLcnAmcXrv2gAJKqQifCdQhkgnsLa978vYUgVfCut/mBSMMHbH8wlUV1D0fKZTjRukA1+A==} - vega-scenegraph@4.13.1: - resolution: {integrity: sha512-LFY9+sLIxRfdDI9ZTKjLoijMkIAzPLBWHpPkwv4NPYgdyx+0qFmv+puBpAUGUY9VZqAZ736Uj5NJY9zw+/M3yQ==} + vega-scenegraph@5.1.0: + resolution: {integrity: sha512-4gA89CFIxkZX+4Nvl8SZF2MBOqnlj9J5zgdPh/HPx+JOwtzSlUqIhxFpFj7GWYfwzr/PyZnguBLPihPw1Og/cA==} vega-schema-url-parser@1.1.0: resolution: {integrity: sha512-Tc85J2ofMZZOsxiqDM9sbvfsa+Vdo3GwNLjEEsPOsCDeYqsUHKAlc1IpbbhPLZ6jusyM9Lk0e1izF64GGklFDg==} - vega-selections@5.6.0: - resolution: {integrity: sha512-UE2w78rUUbaV3Ph+vQbQDwh8eywIJYRxBiZdxEG/Tr/KtFMLdy2BDgNZuuDO1Nv8jImPJwONmqjNhNDYwM0VJQ==} + vega-selections@6.1.0: + resolution: {integrity: sha512-WaHM7D7ghHceEfMsgFeaZnDToWL0mgCFtStVOobNh/OJLh0CL7yNKeKQBqRXJv2Lx74dPNf6nj08+52ytWfW7g==} - vega-statistics@1.9.0: - resolution: {integrity: sha512-GAqS7mkatpXcMCQKWtFu1eMUKLUymjInU0O8kXshWaQrVWjPIO2lllZ1VNhdgE0qGj4oOIRRS11kzuijLshGXQ==} + vega-statistics@2.0.0: + resolution: {integrity: sha512-dGPfDXnBlgXbZF3oxtkb8JfeRXd5TYHx25Z/tIoaa9jWua4Vf/AoW2wwh8J1qmMy8J03/29aowkp1yk4DOPazQ==} vega-themes@2.15.0: resolution: {integrity: sha512-DicRAKG9z+23A+rH/3w3QjJvKnlGhSbbUXGjBvYGseZ1lvj9KQ0BXZ2NS/+MKns59LNpFNHGi9us/wMlci4TOA==} @@ -9813,8 +9825,8 @@ packages: vega: '*' vega-lite: '*' - vega-time@2.1.3: - resolution: {integrity: sha512-hFcWPdTV844IiY0m97+WUoMLADCp+8yUQR1NStWhzBzwDDA7QEGGwYGxALhdMOaDTwkyoNj3V/nox2rQAJD/vQ==} + vega-time@3.1.0: + resolution: {integrity: sha512-G93mWzPwNa6UYQRkr8Ujur9uqxbBDjDT/WpXjbDY0yygdSkRT+zXF+Sb4gjhW0nPaqdiwkn0R6kZcSPMj1bMNA==} vega-tooltip@0.22.1: resolution: {integrity: sha512-mPmzxwvi6+2ZgbZ/+mNC7XbSu5I6Ckon8zdgUfH9neb+vV7CKlV/FYypMdVN/9iDMFUqGzybYdqNOiSPPIxFEQ==} @@ -9822,38 +9834,38 @@ packages: vega-tooltip@1.1.0: resolution: {integrity: sha512-PP4CxC8gX//SBUtlcJkwffmvdZBvzAsqS0EANBKvImJ9PxV/KtJkcs7RCqp+A7nh2cjWdVzyOBWAvqKhXJStTQ==} - vega-transforms@4.12.1: - resolution: {integrity: sha512-Qxo+xeEEftY1jYyKgzOGc9NuW4/MqGm1YPZ5WrL9eXg2G0410Ne+xL/MFIjHF4hRX+3mgFF4Io2hPpfy/thjLg==} + vega-transforms@5.1.0: + resolution: {integrity: sha512-mj/sO2tSuzzpiXX8JSl4DDlhEmVwM/46MTAzTNQUQzJPMI/n4ChCjr/SdEbfEyzlD4DPm1bjohZGjLc010yuMg==} vega-typings@0.7.2: resolution: {integrity: sha512-BReB2qRERA/Ke+QoxKDQ7fES25A9Q3qKRm1CJxwvpLGhAl4k5cGDORx6yW+J3rFHMzpJlmdRM+kb489EuphxZQ==} - vega-typings@1.5.0: - resolution: {integrity: sha512-tcZ2HwmiQEOXIGyBMP8sdCnoFoVqHn4KQ4H0MQiHwzFU1hb1EXURhfc+Uamthewk4h/9BICtAM3AFQMjBGpjQA==} + vega-typings@2.1.0: + resolution: {integrity: sha512-zdis4Fg4gv37yEvTTSZEVMNhp8hwyEl7GZ4X4HHddRVRKxWFsbyKvZx/YW5Z9Ox4sjxVA2qHzEbod4Fdx+SEJA==} vega-util@1.10.0: resolution: {integrity: sha512-fTGnTG7FhtTG9tiYDL3k5s8YHqB71Ml5+aC9B7eaBygeB8GKXBrcbTXLOzoCRxT3Jr5cRhr99PMBu0AkqmhBog==} - vega-util@1.17.3: - resolution: {integrity: sha512-nSNpZLUrRvFo46M5OK4O6x6f08WD1yOcEzHNlqivF+sDLSsVpstaF6fdJYwrbf/debFi2L9Tkp4gZQtssup9iQ==} + vega-util@1.17.4: + resolution: {integrity: sha512-+y3ZW7dEqM8Ck+KRsd+jkMfxfE7MrQxUyIpNjkfhIpGEreym+aTn7XUw1DKXqclr8mqTQvbilPo16B3lnBr0wA==} vega-util@2.1.0: resolution: {integrity: sha512-PGfp0m0QCufDmcxKJCWQy4Ov23FoF8DSXmoJwSezi3itQaa2hbxK0+xwsTMP2vy4PR16Pu25HMzgMwXVW1+33w==} - vega-view-transforms@4.6.1: - resolution: {integrity: sha512-RYlyMJu5kZV4XXjmyTQKADJWDB25SMHsiF+B1rbE1p+pmdQPlp5tGdPl9r5dUJOp3p8mSt/NGI8GPGucmPMxtw==} + vega-view-transforms@5.1.0: + resolution: {integrity: sha512-fpigh/xn/32t+An1ShoY3MLeGzNdlbAp2+HvFKzPpmpMTZqJEWkk/J/wHU7Swyc28Ta7W1z3fO+8dZkOYO5TWQ==} - vega-view@5.16.0: - resolution: {integrity: sha512-Nxp1MEAY+8bphIm+7BeGFzWPoJnX9+hgvze6wqCAPoM69YiyVR0o0VK8M2EESIL+22+Owr0Fdy94hWHnmon5tQ==} + vega-view@6.1.0: + resolution: {integrity: sha512-hmHDm/zC65lb23mb9Tr9Gx0wkxP0TMS31LpMPYxIZpvInxvUn7TYitkOtz1elr63k2YZrgmF7ztdGyQ4iCQ5fQ==} - vega-voronoi@4.2.4: - resolution: {integrity: sha512-lWNimgJAXGeRFu2Pz8axOUqVf1moYhD+5yhBzDSmckE9I5jLOyZc/XvgFTXwFnsVkMd1QW1vxJa+y9yfUblzYw==} + vega-voronoi@5.1.0: + resolution: {integrity: sha512-uKdsoR9x60mz7eYtVG+NhlkdQXeVdMr6jHNAHxs+W+i6kawkUp5S9jp1xf1FmW/uZvtO1eqinHQNwATcDRsiUg==} - vega-wordcloud@4.1.6: - resolution: {integrity: sha512-lFmF3u9/ozU0P+WqPjeThQfZm0PigdbXDwpIUCxczrCXKYJLYFmZuZLZR7cxtmpZ0/yuvRvAJ4g123LXbSZF8A==} + vega-wordcloud@5.1.0: + resolution: {integrity: sha512-sSdNmT8y2D7xXhM2h76dKyaYn3PA4eV49WUUkfYfqHz/vpcu10GSAoFxLhQQTkbZXR+q5ZB63tFUow9W2IFo6g==} - vega@5.33.0: - resolution: {integrity: sha512-jNAGa7TxLojOpMMMrKMXXBos4K6AaLJbCgGDOw1YEkLRjUkh12pcf65J2lMSdEHjcEK47XXjKiOUVZ8L+MniBA==} + vega@6.2.0: + resolution: {integrity: sha512-BIwalIcEGysJdQDjeVUmMWB3e50jPDNAMfLJscjEvpunU9bSt7X1OYnQxkg3uBwuRRI4nWfFZO9uIW910nLeGw==} verror@1.10.0: resolution: {integrity: sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==} @@ -10097,6 +10109,10 @@ packages: resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} engines: {node: '>=12'} + wrap-ansi@9.0.2: + resolution: {integrity: sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==} + engines: {node: '>=18'} + wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} @@ -10190,6 +10206,10 @@ packages: resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} engines: {node: '>=12'} + yargs-parser@22.0.0: + resolution: {integrity: sha512-rwu/ClNdSMpkSrUb+d6BRsSkLUq1fmfsY6TOpYzTwvwkg1/NRG85KBy3kq++A8LKQwX6lsu+aWad+2khvuXrqw==} + engines: {node: ^20.19.0 || ^22.12.0 || >=23} + yargs-parser@4.2.1: resolution: {integrity: sha512-+QQWqC2xeL0N5/TE+TY6OGEqyNRM+g2/r712PDNYgiCdXYCApXf1vzfmDSLBxfGRwV+moTq/V8FnMI24JCm2Yg==} @@ -10200,6 +10220,10 @@ packages: resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} engines: {node: '>=12'} + yargs@18.0.0: + resolution: {integrity: sha512-4UEqdc2RYGHZc7Doyqkrqiln3p9X2DZVxaGbwhn2pi7MrRagKaOcIKe8L3OxYcbhXLgLFUS3zAYuQjKBQgmuNg==} + engines: {node: ^20.19.0 || ^22.12.0 || >=23} + yargs@6.6.0: resolution: {integrity: sha512-6/QWTdisjnu5UHUzQGst+UOEuEVwIzFVGBjq3jMTFNs5WJQsH/X6nMURSaScIdF5txylr1Ao9bvbWiKi2yXbwA==} @@ -10641,36 +10665,36 @@ snapshots: '@actions/core': 1.11.1 '@actions/github': 6.0.1 chalk: 4.1.2 - semver: 7.7.2 + semver: 7.7.3 unplugin: 1.16.1 zod: 3.25.76 - '@codecov/vite-plugin@1.9.1(rolldown-vite@7.1.20(@types/node@24.9.1)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1))': + '@codecov/vite-plugin@1.9.1(rolldown-vite@7.1.20(@types/node@24.9.2)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1))': dependencies: '@codecov/bundler-plugin-core': 1.9.1 unplugin: 1.16.1 - vite: rolldown-vite@7.1.20(@types/node@24.9.1)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1) + vite: rolldown-vite@7.1.20(@types/node@24.9.2)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1) - '@codemirror/autocomplete@6.19.0': + '@codemirror/autocomplete@6.19.1': dependencies: '@codemirror/language': 6.11.3 '@codemirror/state': 6.5.2 '@codemirror/view': 6.38.6 - '@lezer/common': 1.2.3 + '@lezer/common': 1.3.0 - '@codemirror/commands@6.9.0': + '@codemirror/commands@6.10.0': dependencies: '@codemirror/language': 6.11.3 '@codemirror/state': 6.5.2 '@codemirror/view': 6.38.6 - '@lezer/common': 1.2.3 + '@lezer/common': 1.3.0 '@codemirror/lang-angular@0.1.4': dependencies: '@codemirror/lang-html': 6.4.9 '@codemirror/lang-javascript': 6.2.4 '@codemirror/language': 6.11.3 - '@lezer/common': 1.2.3 + '@lezer/common': 1.3.0 '@lezer/highlight': 1.2.1 '@lezer/lr': 1.4.2 @@ -10681,29 +10705,29 @@ snapshots: '@codemirror/lang-css@6.3.1': dependencies: - '@codemirror/autocomplete': 6.19.0 + '@codemirror/autocomplete': 6.19.1 '@codemirror/language': 6.11.3 '@codemirror/state': 6.5.2 - '@lezer/common': 1.2.3 + '@lezer/common': 1.3.0 '@lezer/css': 1.3.0 '@codemirror/lang-go@6.0.1': dependencies: - '@codemirror/autocomplete': 6.19.0 + '@codemirror/autocomplete': 6.19.1 '@codemirror/language': 6.11.3 '@codemirror/state': 6.5.2 - '@lezer/common': 1.2.3 + '@lezer/common': 1.3.0 '@lezer/go': 1.0.1 '@codemirror/lang-html@6.4.9': dependencies: - '@codemirror/autocomplete': 6.19.0 + '@codemirror/autocomplete': 6.19.1 '@codemirror/lang-css': 6.3.1 '@codemirror/lang-javascript': 6.2.4 '@codemirror/language': 6.11.3 '@codemirror/state': 6.5.2 '@codemirror/view': 6.38.6 - '@lezer/common': 1.2.3 + '@lezer/common': 1.3.0 '@lezer/css': 1.3.0 '@lezer/html': 1.3.10 @@ -10714,12 +10738,12 @@ snapshots: '@codemirror/lang-javascript@6.2.4': dependencies: - '@codemirror/autocomplete': 6.19.0 + '@codemirror/autocomplete': 6.19.1 '@codemirror/language': 6.11.3 - '@codemirror/lint': 6.9.0 + '@codemirror/lint': 6.9.1 '@codemirror/state': 6.5.2 '@codemirror/view': 6.38.6 - '@lezer/common': 1.2.3 + '@lezer/common': 1.3.0 '@lezer/javascript': 1.5.1 '@codemirror/lang-json@6.0.2': @@ -10731,29 +10755,29 @@ snapshots: dependencies: '@codemirror/lang-css': 6.3.1 '@codemirror/language': 6.11.3 - '@lezer/common': 1.2.3 + '@lezer/common': 1.3.0 '@lezer/highlight': 1.2.1 '@lezer/lr': 1.4.2 '@codemirror/lang-liquid@6.2.3': dependencies: - '@codemirror/autocomplete': 6.19.0 + '@codemirror/autocomplete': 6.19.1 '@codemirror/lang-html': 6.4.9 '@codemirror/language': 6.11.3 '@codemirror/state': 6.5.2 '@codemirror/view': 6.38.6 - '@lezer/common': 1.2.3 + '@lezer/common': 1.3.0 '@lezer/highlight': 1.2.1 '@lezer/lr': 1.4.2 '@codemirror/lang-markdown@6.4.0': dependencies: - '@codemirror/autocomplete': 6.19.0 + '@codemirror/autocomplete': 6.19.1 '@codemirror/lang-html': 6.4.9 '@codemirror/language': 6.11.3 '@codemirror/state': 6.5.2 '@codemirror/view': 6.38.6 - '@lezer/common': 1.2.3 + '@lezer/common': 1.3.0 '@lezer/markdown': 1.4.3 '@codemirror/lang-php@6.0.2': @@ -10761,15 +10785,15 @@ snapshots: '@codemirror/lang-html': 6.4.9 '@codemirror/language': 6.11.3 '@codemirror/state': 6.5.2 - '@lezer/common': 1.2.3 + '@lezer/common': 1.3.0 '@lezer/php': 1.0.3 '@codemirror/lang-python@6.2.1': dependencies: - '@codemirror/autocomplete': 6.19.0 + '@codemirror/autocomplete': 6.19.1 '@codemirror/language': 6.11.3 '@codemirror/state': 6.5.2 - '@lezer/common': 1.2.3 + '@lezer/common': 1.3.0 '@lezer/python': 1.1.18 '@codemirror/lang-rust@6.0.2': @@ -10782,15 +10806,15 @@ snapshots: '@codemirror/lang-css': 6.3.1 '@codemirror/language': 6.11.3 '@codemirror/state': 6.5.2 - '@lezer/common': 1.2.3 + '@lezer/common': 1.3.0 '@lezer/sass': 1.1.0 '@codemirror/lang-sql@6.10.0': dependencies: - '@codemirror/autocomplete': 6.19.0 + '@codemirror/autocomplete': 6.19.1 '@codemirror/language': 6.11.3 '@codemirror/state': 6.5.2 - '@lezer/common': 1.2.3 + '@lezer/common': 1.3.0 '@lezer/highlight': 1.2.1 '@lezer/lr': 1.4.2 @@ -10799,32 +10823,32 @@ snapshots: '@codemirror/lang-html': 6.4.9 '@codemirror/lang-javascript': 6.2.4 '@codemirror/language': 6.11.3 - '@lezer/common': 1.2.3 + '@lezer/common': 1.3.0 '@lezer/highlight': 1.2.1 '@lezer/lr': 1.4.2 '@codemirror/lang-wast@6.0.2': dependencies: '@codemirror/language': 6.11.3 - '@lezer/common': 1.2.3 + '@lezer/common': 1.3.0 '@lezer/highlight': 1.2.1 '@lezer/lr': 1.4.2 '@codemirror/lang-xml@6.1.0': dependencies: - '@codemirror/autocomplete': 6.19.0 + '@codemirror/autocomplete': 6.19.1 '@codemirror/language': 6.11.3 '@codemirror/state': 6.5.2 '@codemirror/view': 6.38.6 - '@lezer/common': 1.2.3 + '@lezer/common': 1.3.0 '@lezer/xml': 1.0.6 '@codemirror/lang-yaml@6.1.2': dependencies: - '@codemirror/autocomplete': 6.19.0 + '@codemirror/autocomplete': 6.19.1 '@codemirror/language': 6.11.3 '@codemirror/state': 6.5.2 - '@lezer/common': 1.2.3 + '@lezer/common': 1.3.0 '@lezer/highlight': 1.2.1 '@lezer/lr': 1.4.2 '@lezer/yaml': 1.0.3 @@ -10858,7 +10882,7 @@ snapshots: dependencies: '@codemirror/state': 6.5.2 '@codemirror/view': 6.38.6 - '@lezer/common': 1.2.3 + '@lezer/common': 1.3.0 '@lezer/highlight': 1.2.1 '@lezer/lr': 1.4.2 style-mod: 4.1.3 @@ -10867,7 +10891,7 @@ snapshots: dependencies: '@codemirror/language': 6.11.3 - '@codemirror/lint@6.9.0': + '@codemirror/lint@6.9.1': dependencies: '@codemirror/state': 6.5.2 '@codemirror/view': 6.38.6 @@ -11343,12 +11367,12 @@ snapshots: '@types/node': 20.19.21 optional: true - '@inquirer/confirm@5.1.13(@types/node@24.9.1)': + '@inquirer/confirm@5.1.13(@types/node@24.9.2)': dependencies: - '@inquirer/core': 10.1.14(@types/node@24.9.1) - '@inquirer/type': 3.0.7(@types/node@24.9.1) + '@inquirer/core': 10.1.14(@types/node@24.9.2) + '@inquirer/type': 3.0.7(@types/node@24.9.2) optionalDependencies: - '@types/node': 24.9.1 + '@types/node': 24.9.2 '@inquirer/core@10.1.14(@types/node@20.19.21)': dependencies: @@ -11364,10 +11388,10 @@ snapshots: '@types/node': 20.19.21 optional: true - '@inquirer/core@10.1.14(@types/node@24.9.1)': + '@inquirer/core@10.1.14(@types/node@24.9.2)': dependencies: '@inquirer/figures': 1.0.12 - '@inquirer/type': 3.0.7(@types/node@24.9.1) + '@inquirer/type': 3.0.7(@types/node@24.9.2) ansi-escapes: 4.3.2 cli-width: 4.1.0 mute-stream: 2.0.0 @@ -11375,7 +11399,7 @@ snapshots: wrap-ansi: 6.2.0 yoctocolors-cjs: 2.1.2 optionalDependencies: - '@types/node': 24.9.1 + '@types/node': 24.9.2 '@inquirer/figures@1.0.12': {} @@ -11384,9 +11408,9 @@ snapshots: '@types/node': 20.19.21 optional: true - '@inquirer/type@3.0.7(@types/node@24.9.1)': + '@inquirer/type@3.0.7(@types/node@24.9.2)': optionalDependencies: - '@types/node': 24.9.1 + '@types/node': 24.9.2 '@internationalized/date@3.10.0': dependencies: @@ -11409,7 +11433,7 @@ snapshots: dependencies: string-width: 5.1.2 string-width-cjs: string-width@4.2.3 - strip-ansi: 7.1.0 + strip-ansi: 7.1.2 strip-ansi-cjs: strip-ansi@6.0.1 wrap-ansi: 8.1.0 wrap-ansi-cjs: wrap-ansi@7.0.0 @@ -11422,12 +11446,12 @@ snapshots: dependencies: '@sinclair/typebox': 0.27.8 - '@joshwooding/vite-plugin-react-docgen-typescript@0.6.1(rolldown-vite@7.1.20(@types/node@24.9.1)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1))(typescript@5.9.3)': + '@joshwooding/vite-plugin-react-docgen-typescript@0.6.1(rolldown-vite@7.1.20(@types/node@24.9.2)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1))(typescript@5.9.3)': dependencies: glob: 10.4.5 magic-string: 0.30.18 react-docgen-typescript: 2.4.0(typescript@5.9.3) - vite: rolldown-vite@7.1.20(@types/node@24.9.1)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1) + vite: rolldown-vite@7.1.20(@types/node@24.9.2)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1) optionalDependencies: typescript: 5.9.3 @@ -11459,96 +11483,96 @@ snapshots: '@keyv/serialize@1.1.0': {} - '@lezer/common@1.2.3': {} + '@lezer/common@1.3.0': {} '@lezer/cpp@1.1.3': dependencies: - '@lezer/common': 1.2.3 + '@lezer/common': 1.3.0 '@lezer/highlight': 1.2.1 '@lezer/lr': 1.4.2 '@lezer/css@1.3.0': dependencies: - '@lezer/common': 1.2.3 + '@lezer/common': 1.3.0 '@lezer/highlight': 1.2.1 '@lezer/lr': 1.4.2 '@lezer/go@1.0.1': dependencies: - '@lezer/common': 1.2.3 + '@lezer/common': 1.3.0 '@lezer/highlight': 1.2.1 '@lezer/lr': 1.4.2 '@lezer/highlight@1.2.1': dependencies: - '@lezer/common': 1.2.3 + '@lezer/common': 1.3.0 '@lezer/html@1.3.10': dependencies: - '@lezer/common': 1.2.3 + '@lezer/common': 1.3.0 '@lezer/highlight': 1.2.1 '@lezer/lr': 1.4.2 '@lezer/java@1.1.3': dependencies: - '@lezer/common': 1.2.3 + '@lezer/common': 1.3.0 '@lezer/highlight': 1.2.1 '@lezer/lr': 1.4.2 '@lezer/javascript@1.5.1': dependencies: - '@lezer/common': 1.2.3 + '@lezer/common': 1.3.0 '@lezer/highlight': 1.2.1 '@lezer/lr': 1.4.2 '@lezer/json@1.0.3': dependencies: - '@lezer/common': 1.2.3 + '@lezer/common': 1.3.0 '@lezer/highlight': 1.2.1 '@lezer/lr': 1.4.2 '@lezer/lr@1.4.2': dependencies: - '@lezer/common': 1.2.3 + '@lezer/common': 1.3.0 '@lezer/markdown@1.4.3': dependencies: - '@lezer/common': 1.2.3 + '@lezer/common': 1.3.0 '@lezer/highlight': 1.2.1 '@lezer/php@1.0.3': dependencies: - '@lezer/common': 1.2.3 + '@lezer/common': 1.3.0 '@lezer/highlight': 1.2.1 '@lezer/lr': 1.4.2 '@lezer/python@1.1.18': dependencies: - '@lezer/common': 1.2.3 + '@lezer/common': 1.3.0 '@lezer/highlight': 1.2.1 '@lezer/lr': 1.4.2 '@lezer/rust@1.0.2': dependencies: - '@lezer/common': 1.2.3 + '@lezer/common': 1.3.0 '@lezer/highlight': 1.2.1 '@lezer/lr': 1.4.2 '@lezer/sass@1.1.0': dependencies: - '@lezer/common': 1.2.3 + '@lezer/common': 1.3.0 '@lezer/highlight': 1.2.1 '@lezer/lr': 1.4.2 '@lezer/xml@1.0.6': dependencies: - '@lezer/common': 1.2.3 + '@lezer/common': 1.3.0 '@lezer/highlight': 1.2.1 '@lezer/lr': 1.4.2 '@lezer/yaml@1.0.3': dependencies: - '@lezer/common': 1.2.3 + '@lezer/common': 1.3.0 '@lezer/highlight': 1.2.1 '@lezer/lr': 1.4.2 @@ -11621,8 +11645,8 @@ snapshots: '@marimo-team/codemirror-languageserver@1.16.0(@codemirror/state@6.5.2)(@codemirror/view@6.38.6)': dependencies: - '@codemirror/autocomplete': 6.19.0 - '@codemirror/lint': 6.9.0 + '@codemirror/autocomplete': 6.19.1 + '@codemirror/lint': 6.9.1 '@codemirror/state': 6.5.2 '@codemirror/view': 6.38.6 '@open-rpc/client-js': 1.8.1 @@ -11633,17 +11657,17 @@ snapshots: - encoding - utf-8-validate - '@marimo-team/codemirror-mcp@0.1.5(@codemirror/autocomplete@6.19.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.6)(@modelcontextprotocol/sdk@1.17.2)': + '@marimo-team/codemirror-mcp@0.1.5(@codemirror/autocomplete@6.19.1)(@codemirror/state@6.5.2)(@codemirror/view@6.38.6)(@modelcontextprotocol/sdk@1.17.2)': dependencies: - '@codemirror/autocomplete': 6.19.0 + '@codemirror/autocomplete': 6.19.1 '@codemirror/state': 6.5.2 '@codemirror/view': 6.38.6 '@modelcontextprotocol/sdk': 1.17.2 '@marimo-team/codemirror-sql@0.2.3(@codemirror/state@6.5.2)(@codemirror/view@6.38.6)': dependencies: - '@codemirror/autocomplete': 6.19.0 - '@codemirror/lint': 6.9.0 + '@codemirror/autocomplete': 6.19.1 + '@codemirror/lint': 6.9.1 '@codemirror/state': 6.5.2 '@codemirror/view': 6.38.6 node-sql-parser: 5.3.12 @@ -13680,13 +13704,13 @@ snapshots: transitivePeerDependencies: - supports-color - '@replit/codemirror-lang-nix@6.0.1(@codemirror/autocomplete@6.19.0)(@codemirror/language@6.11.3)(@codemirror/state@6.5.2)(@codemirror/view@6.38.6)(@lezer/common@1.2.3)(@lezer/highlight@1.2.1)(@lezer/lr@1.4.2)': + '@replit/codemirror-lang-nix@6.0.1(@codemirror/autocomplete@6.19.1)(@codemirror/language@6.11.3)(@codemirror/state@6.5.2)(@codemirror/view@6.38.6)(@lezer/common@1.3.0)(@lezer/highlight@1.2.1)(@lezer/lr@1.4.2)': dependencies: - '@codemirror/autocomplete': 6.19.0 + '@codemirror/autocomplete': 6.19.1 '@codemirror/language': 6.11.3 '@codemirror/state': 6.5.2 '@codemirror/view': 6.38.6 - '@lezer/common': 1.2.3 + '@lezer/common': 1.3.0 '@lezer/highlight': 1.2.1 '@lezer/lr': 1.4.2 @@ -13695,23 +13719,23 @@ snapshots: '@codemirror/language': 6.11.3 '@lezer/highlight': 1.2.1 - '@replit/codemirror-lang-svelte@6.0.0(@codemirror/autocomplete@6.19.0)(@codemirror/lang-css@6.3.1)(@codemirror/lang-html@6.4.9)(@codemirror/lang-javascript@6.2.4)(@codemirror/language@6.11.3)(@codemirror/state@6.5.2)(@codemirror/view@6.38.6)(@lezer/common@1.2.3)(@lezer/highlight@1.2.1)(@lezer/javascript@1.5.1)(@lezer/lr@1.4.2)': + '@replit/codemirror-lang-svelte@6.0.0(@codemirror/autocomplete@6.19.1)(@codemirror/lang-css@6.3.1)(@codemirror/lang-html@6.4.9)(@codemirror/lang-javascript@6.2.4)(@codemirror/language@6.11.3)(@codemirror/state@6.5.2)(@codemirror/view@6.38.6)(@lezer/common@1.3.0)(@lezer/highlight@1.2.1)(@lezer/javascript@1.5.1)(@lezer/lr@1.4.2)': dependencies: - '@codemirror/autocomplete': 6.19.0 + '@codemirror/autocomplete': 6.19.1 '@codemirror/lang-css': 6.3.1 '@codemirror/lang-html': 6.4.9 '@codemirror/lang-javascript': 6.2.4 '@codemirror/language': 6.11.3 '@codemirror/state': 6.5.2 '@codemirror/view': 6.38.6 - '@lezer/common': 1.2.3 + '@lezer/common': 1.3.0 '@lezer/highlight': 1.2.1 '@lezer/javascript': 1.5.1 '@lezer/lr': 1.4.2 - '@replit/codemirror-vim@6.3.0(@codemirror/commands@6.9.0)(@codemirror/language@6.11.3)(@codemirror/search@6.5.11)(@codemirror/state@6.5.2)(@codemirror/view@6.38.6)': + '@replit/codemirror-vim@6.3.0(@codemirror/commands@6.10.0)(@codemirror/language@6.11.3)(@codemirror/search@6.5.11)(@codemirror/state@6.5.2)(@codemirror/view@6.38.6)': dependencies: - '@codemirror/commands': 6.9.0 + '@codemirror/commands': 6.10.0 '@codemirror/language': 6.11.3 '@codemirror/search': 6.5.11 '@codemirror/state': 6.5.2 @@ -13883,36 +13907,36 @@ snapshots: '@standard-schema/utils@0.3.0': {} - '@storybook/addon-docs@9.1.15(@types/react@19.1.12)(storybook@9.1.15(@testing-library/dom@10.4.0)(msw@2.11.1(@types/node@24.9.1)(typescript@5.9.3))(rolldown-vite@7.1.20(@types/node@24.9.1)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1)))': + '@storybook/addon-docs@9.1.15(@types/react@19.1.12)(storybook@9.1.15(@testing-library/dom@10.4.0)(msw@2.11.1(@types/node@24.9.2)(typescript@5.9.3))(rolldown-vite@7.1.20(@types/node@24.9.2)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1)))': dependencies: '@mdx-js/react': 3.1.0(@types/react@19.1.12)(react@19.1.1) - '@storybook/csf-plugin': 9.1.15(storybook@9.1.15(@testing-library/dom@10.4.0)(msw@2.11.1(@types/node@24.9.1)(typescript@5.9.3))(rolldown-vite@7.1.20(@types/node@24.9.1)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1))) + '@storybook/csf-plugin': 9.1.15(storybook@9.1.15(@testing-library/dom@10.4.0)(msw@2.11.1(@types/node@24.9.2)(typescript@5.9.3))(rolldown-vite@7.1.20(@types/node@24.9.2)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1))) '@storybook/icons': 1.4.0(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@storybook/react-dom-shim': 9.1.15(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(storybook@9.1.15(@testing-library/dom@10.4.0)(msw@2.11.1(@types/node@24.9.1)(typescript@5.9.3))(rolldown-vite@7.1.20(@types/node@24.9.1)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1))) + '@storybook/react-dom-shim': 9.1.15(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(storybook@9.1.15(@testing-library/dom@10.4.0)(msw@2.11.1(@types/node@24.9.2)(typescript@5.9.3))(rolldown-vite@7.1.20(@types/node@24.9.2)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1))) react: 19.1.1 react-dom: 19.1.1(react@19.1.1) - storybook: 9.1.15(@testing-library/dom@10.4.0)(msw@2.11.1(@types/node@24.9.1)(typescript@5.9.3))(rolldown-vite@7.1.20(@types/node@24.9.1)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1)) + storybook: 9.1.15(@testing-library/dom@10.4.0)(msw@2.11.1(@types/node@24.9.2)(typescript@5.9.3))(rolldown-vite@7.1.20(@types/node@24.9.2)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1)) ts-dedent: 2.2.0 transitivePeerDependencies: - '@types/react' - '@storybook/addon-links@9.1.15(react@19.1.1)(storybook@9.1.15(@testing-library/dom@10.4.0)(msw@2.11.1(@types/node@24.9.1)(typescript@5.9.3))(rolldown-vite@7.1.20(@types/node@24.9.1)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1)))': + '@storybook/addon-links@9.1.15(react@19.1.1)(storybook@9.1.15(@testing-library/dom@10.4.0)(msw@2.11.1(@types/node@24.9.2)(typescript@5.9.3))(rolldown-vite@7.1.20(@types/node@24.9.2)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1)))': dependencies: '@storybook/global': 5.0.0 - storybook: 9.1.15(@testing-library/dom@10.4.0)(msw@2.11.1(@types/node@24.9.1)(typescript@5.9.3))(rolldown-vite@7.1.20(@types/node@24.9.1)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1)) + storybook: 9.1.15(@testing-library/dom@10.4.0)(msw@2.11.1(@types/node@24.9.2)(typescript@5.9.3))(rolldown-vite@7.1.20(@types/node@24.9.2)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1)) optionalDependencies: react: 19.1.1 - '@storybook/builder-vite@9.1.15(rolldown-vite@7.1.20(@types/node@24.9.1)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1))(storybook@9.1.15(@testing-library/dom@10.4.0)(msw@2.11.1(@types/node@24.9.1)(typescript@5.9.3))(rolldown-vite@7.1.20(@types/node@24.9.1)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1)))': + '@storybook/builder-vite@9.1.15(rolldown-vite@7.1.20(@types/node@24.9.2)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1))(storybook@9.1.15(@testing-library/dom@10.4.0)(msw@2.11.1(@types/node@24.9.2)(typescript@5.9.3))(rolldown-vite@7.1.20(@types/node@24.9.2)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1)))': dependencies: - '@storybook/csf-plugin': 9.1.15(storybook@9.1.15(@testing-library/dom@10.4.0)(msw@2.11.1(@types/node@24.9.1)(typescript@5.9.3))(rolldown-vite@7.1.20(@types/node@24.9.1)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1))) - storybook: 9.1.15(@testing-library/dom@10.4.0)(msw@2.11.1(@types/node@24.9.1)(typescript@5.9.3))(rolldown-vite@7.1.20(@types/node@24.9.1)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1)) + '@storybook/csf-plugin': 9.1.15(storybook@9.1.15(@testing-library/dom@10.4.0)(msw@2.11.1(@types/node@24.9.2)(typescript@5.9.3))(rolldown-vite@7.1.20(@types/node@24.9.2)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1))) + storybook: 9.1.15(@testing-library/dom@10.4.0)(msw@2.11.1(@types/node@24.9.2)(typescript@5.9.3))(rolldown-vite@7.1.20(@types/node@24.9.2)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1)) ts-dedent: 2.2.0 - vite: rolldown-vite@7.1.20(@types/node@24.9.1)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1) + vite: rolldown-vite@7.1.20(@types/node@24.9.2)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1) - '@storybook/csf-plugin@9.1.15(storybook@9.1.15(@testing-library/dom@10.4.0)(msw@2.11.1(@types/node@24.9.1)(typescript@5.9.3))(rolldown-vite@7.1.20(@types/node@24.9.1)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1)))': + '@storybook/csf-plugin@9.1.15(storybook@9.1.15(@testing-library/dom@10.4.0)(msw@2.11.1(@types/node@24.9.2)(typescript@5.9.3))(rolldown-vite@7.1.20(@types/node@24.9.2)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1)))': dependencies: - storybook: 9.1.15(@testing-library/dom@10.4.0)(msw@2.11.1(@types/node@24.9.1)(typescript@5.9.3))(rolldown-vite@7.1.20(@types/node@24.9.1)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1)) + storybook: 9.1.15(@testing-library/dom@10.4.0)(msw@2.11.1(@types/node@24.9.2)(typescript@5.9.3))(rolldown-vite@7.1.20(@types/node@24.9.2)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1)) unplugin: 1.16.1 '@storybook/global@5.0.0': {} @@ -13922,39 +13946,39 @@ snapshots: react: 19.1.1 react-dom: 19.1.1(react@19.1.1) - '@storybook/react-dom-shim@9.1.15(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(storybook@9.1.15(@testing-library/dom@10.4.0)(msw@2.11.1(@types/node@24.9.1)(typescript@5.9.3))(rolldown-vite@7.1.20(@types/node@24.9.1)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1)))': + '@storybook/react-dom-shim@9.1.15(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(storybook@9.1.15(@testing-library/dom@10.4.0)(msw@2.11.1(@types/node@24.9.2)(typescript@5.9.3))(rolldown-vite@7.1.20(@types/node@24.9.2)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1)))': dependencies: react: 19.1.1 react-dom: 19.1.1(react@19.1.1) - storybook: 9.1.15(@testing-library/dom@10.4.0)(msw@2.11.1(@types/node@24.9.1)(typescript@5.9.3))(rolldown-vite@7.1.20(@types/node@24.9.1)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1)) + storybook: 9.1.15(@testing-library/dom@10.4.0)(msw@2.11.1(@types/node@24.9.2)(typescript@5.9.3))(rolldown-vite@7.1.20(@types/node@24.9.2)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1)) - '@storybook/react-vite@9.1.15(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(rolldown-vite@7.1.20(@types/node@24.9.1)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1))(rollup@4.50.1)(storybook@9.1.15(@testing-library/dom@10.4.0)(msw@2.11.1(@types/node@24.9.1)(typescript@5.9.3))(rolldown-vite@7.1.20(@types/node@24.9.1)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1)))(typescript@5.9.3)': + '@storybook/react-vite@9.1.15(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(rolldown-vite@7.1.20(@types/node@24.9.2)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1))(rollup@4.50.1)(storybook@9.1.15(@testing-library/dom@10.4.0)(msw@2.11.1(@types/node@24.9.2)(typescript@5.9.3))(rolldown-vite@7.1.20(@types/node@24.9.2)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1)))(typescript@5.9.3)': dependencies: - '@joshwooding/vite-plugin-react-docgen-typescript': 0.6.1(rolldown-vite@7.1.20(@types/node@24.9.1)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1))(typescript@5.9.3) + '@joshwooding/vite-plugin-react-docgen-typescript': 0.6.1(rolldown-vite@7.1.20(@types/node@24.9.2)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1))(typescript@5.9.3) '@rollup/pluginutils': 5.2.0(rollup@4.50.1) - '@storybook/builder-vite': 9.1.15(rolldown-vite@7.1.20(@types/node@24.9.1)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1))(storybook@9.1.15(@testing-library/dom@10.4.0)(msw@2.11.1(@types/node@24.9.1)(typescript@5.9.3))(rolldown-vite@7.1.20(@types/node@24.9.1)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1))) - '@storybook/react': 9.1.15(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(storybook@9.1.15(@testing-library/dom@10.4.0)(msw@2.11.1(@types/node@24.9.1)(typescript@5.9.3))(rolldown-vite@7.1.20(@types/node@24.9.1)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1)))(typescript@5.9.3) + '@storybook/builder-vite': 9.1.15(rolldown-vite@7.1.20(@types/node@24.9.2)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1))(storybook@9.1.15(@testing-library/dom@10.4.0)(msw@2.11.1(@types/node@24.9.2)(typescript@5.9.3))(rolldown-vite@7.1.20(@types/node@24.9.2)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1))) + '@storybook/react': 9.1.15(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(storybook@9.1.15(@testing-library/dom@10.4.0)(msw@2.11.1(@types/node@24.9.2)(typescript@5.9.3))(rolldown-vite@7.1.20(@types/node@24.9.2)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1)))(typescript@5.9.3) find-up: 7.0.0 magic-string: 0.30.18 react: 19.1.1 react-docgen: 8.0.0 react-dom: 19.1.1(react@19.1.1) resolve: 1.22.10 - storybook: 9.1.15(@testing-library/dom@10.4.0)(msw@2.11.1(@types/node@24.9.1)(typescript@5.9.3))(rolldown-vite@7.1.20(@types/node@24.9.1)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1)) + storybook: 9.1.15(@testing-library/dom@10.4.0)(msw@2.11.1(@types/node@24.9.2)(typescript@5.9.3))(rolldown-vite@7.1.20(@types/node@24.9.2)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1)) tsconfig-paths: 4.2.0 - vite: rolldown-vite@7.1.20(@types/node@24.9.1)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1) + vite: rolldown-vite@7.1.20(@types/node@24.9.2)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1) transitivePeerDependencies: - rollup - supports-color - typescript - '@storybook/react@9.1.15(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(storybook@9.1.15(@testing-library/dom@10.4.0)(msw@2.11.1(@types/node@24.9.1)(typescript@5.9.3))(rolldown-vite@7.1.20(@types/node@24.9.1)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1)))(typescript@5.9.3)': + '@storybook/react@9.1.15(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(storybook@9.1.15(@testing-library/dom@10.4.0)(msw@2.11.1(@types/node@24.9.2)(typescript@5.9.3))(rolldown-vite@7.1.20(@types/node@24.9.2)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1)))(typescript@5.9.3)': dependencies: '@storybook/global': 5.0.0 - '@storybook/react-dom-shim': 9.1.15(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(storybook@9.1.15(@testing-library/dom@10.4.0)(msw@2.11.1(@types/node@24.9.1)(typescript@5.9.3))(rolldown-vite@7.1.20(@types/node@24.9.1)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1))) + '@storybook/react-dom-shim': 9.1.15(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(storybook@9.1.15(@testing-library/dom@10.4.0)(msw@2.11.1(@types/node@24.9.2)(typescript@5.9.3))(rolldown-vite@7.1.20(@types/node@24.9.2)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1))) react: 19.1.1 react-dom: 19.1.1(react@19.1.1) - storybook: 9.1.15(@testing-library/dom@10.4.0)(msw@2.11.1(@types/node@24.9.1)(typescript@5.9.3))(rolldown-vite@7.1.20(@types/node@24.9.1)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1)) + storybook: 9.1.15(@testing-library/dom@10.4.0)(msw@2.11.1(@types/node@24.9.2)(typescript@5.9.3))(rolldown-vite@7.1.20(@types/node@24.9.2)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1)) optionalDependencies: typescript: 5.9.3 @@ -14383,8 +14407,6 @@ snapshots: '@types/geojson@7946.0.16': {} - '@types/geojson@7946.0.4': {} - '@types/har-format@1.2.16': {} '@types/hast@3.0.4': @@ -14397,7 +14419,7 @@ snapshots: '@types/jsdom@21.1.7': dependencies: - '@types/node': 24.9.1 + '@types/node': 24.9.2 '@types/tough-cookie': 4.0.5 parse5: 7.3.0 @@ -14433,7 +14455,7 @@ snapshots: dependencies: undici-types: 6.21.0 - '@types/node@24.9.1': + '@types/node@24.9.2': dependencies: undici-types: 7.16.0 @@ -14493,7 +14515,7 @@ snapshots: '@types/ws@8.18.1': dependencies: - '@types/node': 24.9.1 + '@types/node': 24.9.2 '@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3)': dependencies: @@ -14573,7 +14595,7 @@ snapshots: globby: 11.1.0 is-glob: 4.0.3 minimatch: 9.0.5 - semver: 7.7.2 + semver: 7.7.3 ts-api-utils: 1.4.3(typescript@5.9.3) optionalDependencies: typescript: 5.9.3 @@ -14590,7 +14612,7 @@ snapshots: fast-glob: 3.3.3 is-glob: 4.0.3 minimatch: 9.0.5 - semver: 7.7.2 + semver: 7.7.3 ts-api-utils: 2.1.0(typescript@5.9.3) typescript: 5.9.3 transitivePeerDependencies: @@ -14664,23 +14686,23 @@ snapshots: react: 19.1.1 react-dom: 19.1.1(react@19.1.1) - '@uiw/codemirror-extensions-basic-setup@4.25.1(@codemirror/autocomplete@6.19.0)(@codemirror/commands@6.9.0)(@codemirror/language@6.11.3)(@codemirror/lint@6.9.0)(@codemirror/search@6.5.11)(@codemirror/state@6.5.2)(@codemirror/view@6.38.6)': + '@uiw/codemirror-extensions-basic-setup@4.25.1(@codemirror/autocomplete@6.19.1)(@codemirror/commands@6.10.0)(@codemirror/language@6.11.3)(@codemirror/lint@6.9.1)(@codemirror/search@6.5.11)(@codemirror/state@6.5.2)(@codemirror/view@6.38.6)': dependencies: - '@codemirror/autocomplete': 6.19.0 - '@codemirror/commands': 6.9.0 + '@codemirror/autocomplete': 6.19.1 + '@codemirror/commands': 6.10.0 '@codemirror/language': 6.11.3 - '@codemirror/lint': 6.9.0 + '@codemirror/lint': 6.9.1 '@codemirror/search': 6.5.11 '@codemirror/state': 6.5.2 '@codemirror/view': 6.38.6 - '@uiw/codemirror-extensions-langs@4.25.2(@codemirror/autocomplete@6.19.0)(@codemirror/lang-css@6.3.1)(@codemirror/lang-html@6.4.9)(@codemirror/lang-javascript@6.2.4)(@codemirror/language-data@6.5.1)(@codemirror/language@6.11.3)(@codemirror/state@6.5.2)(@codemirror/view@6.38.6)(@lezer/common@1.2.3)(@lezer/highlight@1.2.1)(@lezer/javascript@1.5.1)(@lezer/lr@1.4.2)': + '@uiw/codemirror-extensions-langs@4.25.2(@codemirror/autocomplete@6.19.1)(@codemirror/lang-css@6.3.1)(@codemirror/lang-html@6.4.9)(@codemirror/lang-javascript@6.2.4)(@codemirror/language-data@6.5.1)(@codemirror/language@6.11.3)(@codemirror/state@6.5.2)(@codemirror/view@6.38.6)(@lezer/common@1.3.0)(@lezer/highlight@1.2.1)(@lezer/javascript@1.5.1)(@lezer/lr@1.4.2)': dependencies: '@codemirror/language': 6.11.3 '@codemirror/language-data': 6.5.1 - '@replit/codemirror-lang-nix': 6.0.1(@codemirror/autocomplete@6.19.0)(@codemirror/language@6.11.3)(@codemirror/state@6.5.2)(@codemirror/view@6.38.6)(@lezer/common@1.2.3)(@lezer/highlight@1.2.1)(@lezer/lr@1.4.2) + '@replit/codemirror-lang-nix': 6.0.1(@codemirror/autocomplete@6.19.1)(@codemirror/language@6.11.3)(@codemirror/state@6.5.2)(@codemirror/view@6.38.6)(@lezer/common@1.3.0)(@lezer/highlight@1.2.1)(@lezer/lr@1.4.2) '@replit/codemirror-lang-solidity': 6.0.2(@codemirror/language@6.11.3) - '@replit/codemirror-lang-svelte': 6.0.0(@codemirror/autocomplete@6.19.0)(@codemirror/lang-css@6.3.1)(@codemirror/lang-html@6.4.9)(@codemirror/lang-javascript@6.2.4)(@codemirror/language@6.11.3)(@codemirror/state@6.5.2)(@codemirror/view@6.38.6)(@lezer/common@1.2.3)(@lezer/highlight@1.2.1)(@lezer/javascript@1.5.1)(@lezer/lr@1.4.2) + '@replit/codemirror-lang-svelte': 6.0.0(@codemirror/autocomplete@6.19.1)(@codemirror/lang-css@6.3.1)(@codemirror/lang-html@6.4.9)(@codemirror/lang-javascript@6.2.4)(@codemirror/language@6.11.3)(@codemirror/state@6.5.2)(@codemirror/view@6.38.6)(@lezer/common@1.3.0)(@lezer/highlight@1.2.1)(@lezer/javascript@1.5.1)(@lezer/lr@1.4.2) codemirror-lang-mermaid: 0.5.0 transitivePeerDependencies: - '@codemirror/autocomplete' @@ -14694,14 +14716,14 @@ snapshots: - '@lezer/javascript' - '@lezer/lr' - '@uiw/react-codemirror@4.25.1(@babel/runtime@7.27.6)(@codemirror/autocomplete@6.19.0)(@codemirror/language@6.11.3)(@codemirror/lint@6.9.0)(@codemirror/search@6.5.11)(@codemirror/state@6.5.2)(@codemirror/theme-one-dark@6.1.3)(@codemirror/view@6.38.6)(codemirror@6.0.2)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@uiw/react-codemirror@4.25.1(@babel/runtime@7.27.6)(@codemirror/autocomplete@6.19.1)(@codemirror/language@6.11.3)(@codemirror/lint@6.9.1)(@codemirror/search@6.5.11)(@codemirror/state@6.5.2)(@codemirror/theme-one-dark@6.1.3)(@codemirror/view@6.38.6)(codemirror@6.0.2)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': dependencies: '@babel/runtime': 7.27.6 - '@codemirror/commands': 6.9.0 + '@codemirror/commands': 6.10.0 '@codemirror/state': 6.5.2 '@codemirror/theme-one-dark': 6.1.3 '@codemirror/view': 6.38.6 - '@uiw/codemirror-extensions-basic-setup': 4.25.1(@codemirror/autocomplete@6.19.0)(@codemirror/commands@6.9.0)(@codemirror/language@6.11.3)(@codemirror/lint@6.9.0)(@codemirror/search@6.5.11)(@codemirror/state@6.5.2)(@codemirror/view@6.38.6) + '@uiw/codemirror-extensions-basic-setup': 4.25.1(@codemirror/autocomplete@6.19.1)(@codemirror/commands@6.10.0)(@codemirror/language@6.11.3)(@codemirror/lint@6.9.1)(@codemirror/search@6.5.11)(@codemirror/state@6.5.2)(@codemirror/view@6.38.6) codemirror: 6.0.2 react: 19.1.1 react-dom: 19.1.1(react@19.1.1) @@ -14715,16 +14737,16 @@ snapshots: '@uwdata/flechette@1.1.2': {} - '@valtown/codemirror-codeium@1.1.1(@codemirror/autocomplete@6.19.0)(@codemirror/state@6.5.2)(@codemirror/view@6.38.6)': + '@valtown/codemirror-codeium@1.1.1(@codemirror/autocomplete@6.19.1)(@codemirror/state@6.5.2)(@codemirror/view@6.38.6)': dependencies: '@bufbuild/protobuf': 1.10.1 - '@codemirror/autocomplete': 6.19.0 + '@codemirror/autocomplete': 6.19.1 '@codemirror/state': 6.5.2 '@codemirror/view': 6.38.6 '@connectrpc/connect': 1.6.1(@bufbuild/protobuf@1.10.1) '@connectrpc/connect-web': 1.6.1(@bufbuild/protobuf@1.10.1)(@connectrpc/connect@1.6.1(@bufbuild/protobuf@1.10.1)) - '@vitejs/plugin-react@5.0.4(rolldown-vite@7.1.20(@types/node@24.9.1)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1))': + '@vitejs/plugin-react@5.0.4(rolldown-vite@7.1.20(@types/node@24.9.2)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1))': dependencies: '@babel/core': 7.28.4 '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.28.4) @@ -14732,7 +14754,7 @@ snapshots: '@rolldown/pluginutils': 1.0.0-beta.38 '@types/babel__core': 7.20.5 react-refresh: 0.17.0 - vite: rolldown-vite@7.1.20(@types/node@24.9.1)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1) + vite: rolldown-vite@7.1.20(@types/node@24.9.2)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1) transitivePeerDependencies: - supports-color @@ -14750,23 +14772,23 @@ snapshots: chai: 5.2.1 tinyrainbow: 2.0.0 - '@vitest/mocker@3.2.4(msw@2.11.1(@types/node@20.19.21)(typescript@5.9.3))(rolldown-vite@7.1.20(@types/node@24.9.1)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1))': + '@vitest/mocker@3.2.4(msw@2.11.1(@types/node@20.19.21)(typescript@5.9.3))(rolldown-vite@7.1.20(@types/node@24.9.2)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1))': dependencies: '@vitest/spy': 3.2.4 estree-walker: 3.0.3 magic-string: 0.30.18 optionalDependencies: msw: 2.11.1(@types/node@20.19.21)(typescript@5.9.3) - vite: rolldown-vite@7.1.20(@types/node@24.9.1)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1) + vite: rolldown-vite@7.1.20(@types/node@24.9.2)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1) - '@vitest/mocker@3.2.4(msw@2.11.1(@types/node@24.9.1)(typescript@5.9.3))(rolldown-vite@7.1.20(@types/node@24.9.1)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1))': + '@vitest/mocker@3.2.4(msw@2.11.1(@types/node@24.9.2)(typescript@5.9.3))(rolldown-vite@7.1.20(@types/node@24.9.2)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1))': dependencies: '@vitest/spy': 3.2.4 estree-walker: 3.0.3 magic-string: 0.30.18 optionalDependencies: - msw: 2.11.1(@types/node@24.9.1)(typescript@5.9.3) - vite: rolldown-vite@7.1.20(@types/node@24.9.1)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1) + msw: 2.11.1(@types/node@24.9.2)(typescript@5.9.3) + vite: rolldown-vite@7.1.20(@types/node@24.9.2)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1) '@vitest/pretty-format@3.2.4': dependencies: @@ -14996,7 +15018,7 @@ snapshots: ansi-regex@5.0.1: {} - ansi-regex@6.1.0: {} + ansi-regex@6.2.2: {} ansi-styles@3.2.1: dependencies: @@ -15008,7 +15030,7 @@ snapshots: ansi-styles@5.2.0: {} - ansi-styles@6.2.1: {} + ansi-styles@6.2.3: {} ansi_up@6.0.6: {} @@ -15390,6 +15412,12 @@ snapshots: strip-ansi: 6.0.1 wrap-ansi: 7.0.0 + cliui@9.0.1: + dependencies: + string-width: 7.2.0 + strip-ansi: 7.1.2 + wrap-ansi: 9.0.2 + clone@2.1.2: {} clsx@2.1.1: {} @@ -15416,10 +15444,10 @@ snapshots: codemirror@6.0.2: dependencies: - '@codemirror/autocomplete': 6.19.0 - '@codemirror/commands': 6.9.0 + '@codemirror/autocomplete': 6.19.1 + '@codemirror/commands': 6.10.0 '@codemirror/language': 6.11.3 - '@codemirror/lint': 6.9.0 + '@codemirror/lint': 6.9.1 '@codemirror/search': 6.5.11 '@codemirror/state': 6.5.2 '@codemirror/view': 6.38.6 @@ -15489,11 +15517,11 @@ snapshots: commander@8.3.0: {} - compassql@0.21.2(vega@5.33.0): + compassql@0.21.2(vega@6.2.0): dependencies: datalib: 1.7.3 typescript-json-schema: 0.9.2 - vega-lite: 3.4.0(vega@5.33.0) + vega-lite: 3.4.0(vega@6.2.0) yargs: 13.3.2 transitivePeerDependencies: - vega @@ -15620,7 +15648,7 @@ snapshots: postcss-modules-scope: 3.2.1(postcss@8.5.6) postcss-modules-values: 4.0.0(postcss@8.5.6) postcss-value-parser: 4.2.0 - semver: 7.7.2 + semver: 7.7.3 optionalDependencies: webpack: 5.100.2(esbuild@0.25.9) @@ -16171,6 +16199,8 @@ snapshots: dependencies: strongly-connected-components: 1.0.1 + emoji-regex@10.6.0: {} + emoji-regex@7.0.3: {} emoji-regex@8.0.0: {} @@ -16442,11 +16472,11 @@ snapshots: eslint: 8.57.1 globals: 13.24.0 - eslint-plugin-storybook@9.0.17(eslint@8.57.1)(storybook@9.1.15(@testing-library/dom@10.4.0)(msw@2.11.1(@types/node@24.9.1)(typescript@5.9.3))(rolldown-vite@7.1.20(@types/node@24.9.1)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1)))(typescript@5.9.3): + eslint-plugin-storybook@9.0.17(eslint@8.57.1)(storybook@9.1.15(@testing-library/dom@10.4.0)(msw@2.11.1(@types/node@24.9.2)(typescript@5.9.3))(rolldown-vite@7.1.20(@types/node@24.9.2)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1)))(typescript@5.9.3): dependencies: '@typescript-eslint/utils': 8.37.0(eslint@8.57.1)(typescript@5.9.3) eslint: 8.57.1 - storybook: 9.1.15(@testing-library/dom@10.4.0)(msw@2.11.1(@types/node@24.9.1)(typescript@5.9.3))(rolldown-vite@7.1.20(@types/node@24.9.1)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1)) + storybook: 9.1.15(@testing-library/dom@10.4.0)(msw@2.11.1(@types/node@24.9.2)(typescript@5.9.3))(rolldown-vite@7.1.20(@types/node@24.9.2)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1)) transitivePeerDependencies: - supports-color - typescript @@ -16468,18 +16498,18 @@ snapshots: read-pkg-up: 7.0.1 regexp-tree: 0.1.27 regjsparser: 0.10.0 - semver: 7.7.2 + semver: 7.7.3 strip-indent: 3.0.0 transitivePeerDependencies: - supports-color - eslint-plugin-vitest@0.4.1(@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3)(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.9.1)(esbuild@0.25.9)(jiti@2.5.1)(jsdom@24.1.3)(msw@2.11.1(@types/node@24.9.1)(typescript@5.9.3))(terser@5.44.0)(yaml@2.8.1)): + eslint-plugin-vitest@0.4.1(@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3)(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.9.2)(esbuild@0.25.9)(jiti@2.5.1)(jsdom@24.1.3)(msw@2.11.1(@types/node@24.9.2)(typescript@5.9.3))(terser@5.44.0)(yaml@2.8.1)): dependencies: '@typescript-eslint/utils': 7.18.0(eslint@8.57.1)(typescript@5.9.3) eslint: 8.57.1 optionalDependencies: '@typescript-eslint/eslint-plugin': 7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) - vitest: 3.2.4(@types/debug@4.1.12)(@types/node@24.9.1)(esbuild@0.25.9)(jiti@2.5.1)(jsdom@24.1.3)(msw@2.11.1(@types/node@24.9.1)(typescript@5.9.3))(terser@5.44.0)(yaml@2.8.1) + vitest: 3.2.4(@types/debug@4.1.12)(@types/node@24.9.2)(esbuild@0.25.9)(jiti@2.5.1)(jsdom@24.1.3)(msw@2.11.1(@types/node@24.9.2)(typescript@5.9.3))(terser@5.44.0)(yaml@2.8.1) transitivePeerDependencies: - supports-color - typescript @@ -16848,6 +16878,8 @@ snapshots: get-canvas-context@1.0.2: {} + get-east-asian-width@1.4.0: {} + get-func-name@2.0.2: {} get-intrinsic@1.3.0: @@ -17634,7 +17666,7 @@ snapshots: jest-worker@27.5.1: dependencies: - '@types/node': 24.9.1 + '@types/node': 24.9.2 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -18581,11 +18613,11 @@ snapshots: - '@types/node' optional: true - msw@2.11.1(@types/node@24.9.1)(typescript@5.9.3): + msw@2.11.1(@types/node@24.9.2)(typescript@5.9.3): dependencies: '@bundled-es-modules/cookie': 2.0.1 '@bundled-es-modules/statuses': 1.0.1 - '@inquirer/confirm': 5.1.13(@types/node@24.9.1) + '@inquirer/confirm': 5.1.13(@types/node@24.9.2) '@mswjs/interceptors': 0.39.2 '@open-draft/deferred-promise': 2.2.0 '@open-draft/until': 2.1.0 @@ -18677,7 +18709,7 @@ snapshots: npm-run-all2@6.2.6: dependencies: - ansi-styles: 6.2.1 + ansi-styles: 6.2.3 cross-spawn: 7.0.6 memorystream: 0.3.1 minimatch: 9.0.5 @@ -19389,10 +19421,10 @@ snapshots: iconv-lite: 0.7.0 unpipe: 1.0.0 - react-arborist@3.4.3(@types/node@24.9.1)(@types/react@19.1.12)(react-dom@19.1.1(react@19.1.1))(react@19.1.1): + react-arborist@3.4.3(@types/node@24.9.2)(@types/react@19.1.12)(react-dom@19.1.1(react@19.1.1))(react@19.1.1): dependencies: react: 19.1.1 - react-dnd: 14.0.5(@types/node@24.9.1)(@types/react@19.1.12)(react@19.1.1) + react-dnd: 14.0.5(@types/node@24.9.2)(@types/react@19.1.12)(react@19.1.1) react-dnd-html5-backend: 14.1.0 react-dom: 19.1.1(react@19.1.1) react-window: 1.8.11(react-dom@19.1.1(react@19.1.1))(react@19.1.1) @@ -19484,14 +19516,14 @@ snapshots: react: 19.1.1 react-dom: 19.1.1(react@19.1.1) - react-codemirror-merge@4.25.1(@babel/runtime@7.27.6)(@codemirror/autocomplete@6.19.0)(@codemirror/language@6.11.3)(@codemirror/lint@6.9.0)(@codemirror/search@6.5.11)(@codemirror/state@6.5.2)(@codemirror/theme-one-dark@6.1.3)(@codemirror/view@6.38.6)(codemirror@6.0.2)(react-dom@19.1.1(react@19.1.1))(react@19.1.1): + react-codemirror-merge@4.25.1(@babel/runtime@7.27.6)(@codemirror/autocomplete@6.19.1)(@codemirror/language@6.11.3)(@codemirror/lint@6.9.1)(@codemirror/search@6.5.11)(@codemirror/state@6.5.2)(@codemirror/theme-one-dark@6.1.3)(@codemirror/view@6.38.6)(codemirror@6.0.2)(react-dom@19.1.1(react@19.1.1))(react@19.1.1): dependencies: '@babel/runtime': 7.27.6 '@codemirror/merge': 6.11.0 '@codemirror/state': 6.5.2 '@codemirror/theme-one-dark': 6.1.3 '@codemirror/view': 6.38.6 - '@uiw/react-codemirror': 4.25.1(@babel/runtime@7.27.6)(@codemirror/autocomplete@6.19.0)(@codemirror/language@6.11.3)(@codemirror/lint@6.9.0)(@codemirror/search@6.5.11)(@codemirror/state@6.5.2)(@codemirror/theme-one-dark@6.1.3)(@codemirror/view@6.38.6)(codemirror@6.0.2)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@uiw/react-codemirror': 4.25.1(@babel/runtime@7.27.6)(@codemirror/autocomplete@6.19.1)(@codemirror/language@6.11.3)(@codemirror/lint@6.9.1)(@codemirror/search@6.5.11)(@codemirror/state@6.5.2)(@codemirror/theme-one-dark@6.1.3)(@codemirror/view@6.38.6)(codemirror@6.0.2)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) codemirror: 6.0.2 react: 19.1.1 react-dom: 19.1.1(react@19.1.1) @@ -19509,7 +19541,7 @@ snapshots: dependencies: dnd-core: 14.0.1 - react-dnd@14.0.5(@types/node@24.9.1)(@types/react@19.1.12)(react@19.1.1): + react-dnd@14.0.5(@types/node@24.9.2)(@types/react@19.1.12)(react@19.1.1): dependencies: '@react-dnd/invariant': 2.0.0 '@react-dnd/shallowequal': 2.0.0 @@ -19518,7 +19550,7 @@ snapshots: hoist-non-react-statics: 3.3.2 react: 19.1.1 optionalDependencies: - '@types/node': 24.9.1 + '@types/node': 24.9.2 '@types/react': 19.1.12 react-docgen-typescript@2.4.0(typescript@5.9.3): @@ -19735,15 +19767,12 @@ snapshots: dependencies: react: 19.1.1 - react-vega@7.7.1(react@19.1.1)(vega-lite@5.23.0(vega@5.33.0))(vega@5.33.0): + react-vega@8.0.0(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(vega-embed@6.5.1(vega-lite@6.4.1(vega@6.2.0))(vega@6.2.0)): dependencies: - '@types/react': 19.1.12 fast-deep-equal: 3.1.3 - prop-types: 15.8.1 react: 19.1.1 - vega: 5.33.0 - vega-embed: 6.5.1(vega-lite@5.23.0(vega@5.33.0))(vega@5.33.0) - vega-lite: 5.23.0(vega@5.33.0) + react-dom: 19.1.1(react@19.1.1) + vega-embed: 6.5.1(vega-lite@6.4.1(vega@6.2.0))(vega@6.2.0) react-virtuoso@4.14.0(react-dom@19.1.1(react@19.1.1))(react@19.1.1): dependencies: @@ -20076,7 +20105,7 @@ snapshots: terser: 5.44.0 yaml: 2.8.1 - rolldown-vite@7.1.20(@types/node@24.9.1)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1): + rolldown-vite@7.1.20(@types/node@24.9.2)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1): dependencies: '@oxc-project/runtime': 0.95.0 fdir: 6.5.0(picomatch@4.0.3) @@ -20086,7 +20115,7 @@ snapshots: rolldown: 1.0.0-beta.45 tinyglobby: 0.2.15 optionalDependencies: - '@types/node': 24.9.1 + '@types/node': 24.9.2 esbuild: 0.25.9 fsevents: 2.3.3 jiti: 2.5.1 @@ -20215,7 +20244,7 @@ snapshots: semver@6.3.1: {} - semver@7.7.2: {} + semver@7.7.3: {} send@1.2.0: dependencies: @@ -20432,19 +20461,19 @@ snapshots: es-errors: 1.3.0 internal-slot: 1.1.0 - storybook@9.1.15(@testing-library/dom@10.4.0)(msw@2.11.1(@types/node@24.9.1)(typescript@5.9.3))(rolldown-vite@7.1.20(@types/node@24.9.1)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1)): + storybook@9.1.15(@testing-library/dom@10.4.0)(msw@2.11.1(@types/node@24.9.2)(typescript@5.9.3))(rolldown-vite@7.1.20(@types/node@24.9.2)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1)): dependencies: '@storybook/global': 5.0.0 '@testing-library/jest-dom': 6.9.1 '@testing-library/user-event': 14.6.1(@testing-library/dom@10.4.0) '@vitest/expect': 3.2.4 - '@vitest/mocker': 3.2.4(msw@2.11.1(@types/node@24.9.1)(typescript@5.9.3))(rolldown-vite@7.1.20(@types/node@24.9.1)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1)) + '@vitest/mocker': 3.2.4(msw@2.11.1(@types/node@24.9.2)(typescript@5.9.3))(rolldown-vite@7.1.20(@types/node@24.9.2)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1)) '@vitest/spy': 3.2.4 better-opn: 3.0.2 esbuild: 0.25.9 esbuild-register: 3.6.0(esbuild@0.25.9) recast: 0.23.11 - semver: 7.7.2 + semver: 7.7.3 ws: 8.18.3 transitivePeerDependencies: - '@testing-library/dom' @@ -20514,7 +20543,13 @@ snapshots: dependencies: eastasianwidth: 0.2.0 emoji-regex: 9.2.2 - strip-ansi: 7.1.0 + strip-ansi: 7.1.2 + + string-width@7.2.0: + dependencies: + emoji-regex: 10.6.0 + get-east-asian-width: 1.4.0 + strip-ansi: 7.1.2 string.prototype.matchall@4.0.12: dependencies: @@ -20583,9 +20618,9 @@ snapshots: dependencies: ansi-regex: 5.0.1 - strip-ansi@7.1.0: + strip-ansi@7.1.2: dependencies: - ansi-regex: 6.1.0 + ansi-regex: 6.2.2 strip-bom@2.0.0: dependencies: @@ -21265,126 +21300,105 @@ snapshots: vary@1.1.2: {} - vega-canvas@1.2.7: {} + vega-canvas@2.0.0: {} - vega-crossfilter@4.1.3: + vega-crossfilter@5.1.0: dependencies: d3-array: 3.2.4 - vega-dataflow: 5.7.7 - vega-util: 1.17.3 - transitivePeerDependencies: - - encoding + vega-dataflow: 6.1.0 + vega-util: 2.1.0 - vega-dataflow@5.7.7: + vega-dataflow@6.1.0: dependencies: - vega-format: 1.1.3 - vega-loader: 4.5.3 - vega-util: 1.17.3 - transitivePeerDependencies: - - encoding + vega-format: 2.1.0 + vega-loader: 5.1.0 + vega-util: 2.1.0 - vega-embed@6.5.1(vega-lite@5.23.0(vega@5.33.0))(vega@5.33.0): + vega-embed@6.5.1(vega-lite@6.4.1(vega@6.2.0))(vega@6.2.0): dependencies: fast-json-patch: 3.1.1 json-stringify-pretty-compact: 2.0.0 - semver: 7.7.2 - vega: 5.33.0 - vega-lite: 5.23.0(vega@5.33.0) + semver: 7.7.3 + vega: 6.2.0 + vega-lite: 6.4.1(vega@6.2.0) vega-schema-url-parser: 1.1.0 - vega-themes: 2.15.0(vega-lite@5.23.0(vega@5.33.0))(vega@5.33.0) + vega-themes: 2.15.0(vega-lite@6.4.1(vega@6.2.0))(vega@6.2.0) vega-tooltip: 0.22.1 - vega-encode@4.10.2: + vega-encode@5.1.0: dependencies: d3-array: 3.2.4 d3-interpolate: 3.0.1 - vega-dataflow: 5.7.7 - vega-scale: 7.4.2 - vega-util: 1.17.3 - transitivePeerDependencies: - - encoding + vega-dataflow: 6.1.0 + vega-scale: 8.1.0 + vega-util: 2.1.0 vega-event-selector@2.0.6: {} - vega-event-selector@3.0.1: {} + vega-event-selector@4.0.0: {} vega-expression@2.6.6: dependencies: - vega-util: 1.17.3 - - vega-expression@5.1.2: - dependencies: - '@types/estree': 1.0.8 - vega-util: 1.17.3 + vega-util: 1.17.4 - vega-expression@5.2.0: + vega-expression@6.1.0: dependencies: '@types/estree': 1.0.8 - vega-util: 1.17.3 + vega-util: 2.1.0 - vega-force@4.2.2: + vega-force@5.1.0: dependencies: d3-force: 3.0.0 - vega-dataflow: 5.7.7 - vega-util: 1.17.3 - transitivePeerDependencies: - - encoding + vega-dataflow: 6.1.0 + vega-util: 2.1.0 - vega-format@1.1.3: + vega-format@2.1.0: dependencies: d3-array: 3.2.4 d3-format: 3.1.0 d3-time-format: 4.1.0 - vega-time: 2.1.3 - vega-util: 1.17.3 + vega-time: 3.1.0 + vega-util: 2.1.0 - vega-functions@5.18.0: + vega-functions@6.1.0: dependencies: d3-array: 3.2.4 d3-color: 3.1.0 d3-geo: 3.1.1 - vega-dataflow: 5.7.7 - vega-expression: 5.2.0 - vega-scale: 7.4.2 - vega-scenegraph: 4.13.1 - vega-selections: 5.6.0 - vega-statistics: 1.9.0 - vega-time: 2.1.3 - vega-util: 1.17.3 - transitivePeerDependencies: - - encoding + vega-dataflow: 6.1.0 + vega-expression: 6.1.0 + vega-scale: 8.1.0 + vega-scenegraph: 5.1.0 + vega-selections: 6.1.0 + vega-statistics: 2.0.0 + vega-time: 3.1.0 + vega-util: 2.1.0 - vega-geo@4.4.3: + vega-geo@5.1.0: dependencies: d3-array: 3.2.4 d3-color: 3.1.0 d3-geo: 3.1.1 - vega-canvas: 1.2.7 - vega-dataflow: 5.7.7 - vega-projection: 1.6.2 - vega-statistics: 1.9.0 - vega-util: 1.17.3 - transitivePeerDependencies: - - encoding + vega-canvas: 2.0.0 + vega-dataflow: 6.1.0 + vega-projection: 2.1.0 + vega-statistics: 2.0.0 + vega-util: 2.1.0 - vega-hierarchy@4.1.3: + vega-hierarchy@5.1.0: dependencies: d3-hierarchy: 3.1.2 - vega-dataflow: 5.7.7 - vega-util: 1.17.3 - transitivePeerDependencies: - - encoding + vega-dataflow: 6.1.0 + vega-util: 2.1.0 - vega-label@1.3.1: + vega-label@2.1.0: dependencies: - vega-canvas: 1.2.7 - vega-dataflow: 5.7.7 - vega-scenegraph: 4.13.1 - vega-util: 1.17.3 - transitivePeerDependencies: - - encoding + vega-canvas: 2.0.0 + vega-dataflow: 6.1.0 + vega-scenegraph: 5.1.0 + vega-util: 2.1.0 - vega-lite@3.4.0(vega@5.33.0): + vega-lite@3.4.0(vega@6.2.0): dependencies: '@types/clone': 0.1.30 '@types/fast-json-stable-stringify': 2.1.2 @@ -21393,213 +21407,190 @@ snapshots: fast-json-stable-stringify: 2.0.0 json-stringify-pretty-compact: 2.0.0 tslib: 1.10.0 - vega: 5.33.0 + vega: 6.2.0 vega-event-selector: 2.0.6 vega-expression: 2.6.6 vega-typings: 0.7.2 vega-util: 1.10.0 yargs: 13.3.2 - vega-lite@5.23.0(vega@5.33.0): + vega-lite@6.4.1(vega@6.2.0): dependencies: json-stringify-pretty-compact: 4.0.0 tslib: 2.8.1 - vega: 5.33.0 - vega-event-selector: 3.0.1 - vega-expression: 5.1.2 - vega-util: 1.17.3 - yargs: 17.7.2 + vega: 6.2.0 + vega-event-selector: 4.0.0 + vega-expression: 6.1.0 + vega-util: 2.1.0 + yargs: 18.0.0 - vega-loader@4.5.3: + vega-loader@5.1.0: dependencies: d3-dsv: 3.0.1 - node-fetch: 2.7.0 topojson-client: 3.1.0 - vega-format: 1.1.3 - vega-util: 1.17.3 - transitivePeerDependencies: - - encoding + vega-format: 2.1.0 + vega-util: 2.1.0 - vega-parser@6.6.0: + vega-parser@7.1.0: dependencies: - vega-dataflow: 5.7.7 - vega-event-selector: 3.0.1 - vega-functions: 5.18.0 - vega-scale: 7.4.2 - vega-util: 1.17.3 - transitivePeerDependencies: - - encoding + vega-dataflow: 6.1.0 + vega-event-selector: 4.0.0 + vega-functions: 6.1.0 + vega-scale: 8.1.0 + vega-util: 2.1.0 - vega-projection@1.6.2: + vega-projection@2.1.0: dependencies: d3-geo: 3.1.1 d3-geo-projection: 4.0.0 - vega-scale: 7.4.2 + vega-scale: 8.1.0 - vega-regression@1.3.1: + vega-regression@2.1.0: dependencies: d3-array: 3.2.4 - vega-dataflow: 5.7.7 - vega-statistics: 1.9.0 - vega-util: 1.17.3 - transitivePeerDependencies: - - encoding + vega-dataflow: 6.1.0 + vega-statistics: 2.0.0 + vega-util: 2.1.0 - vega-runtime@6.2.1: + vega-runtime@7.1.0: dependencies: - vega-dataflow: 5.7.7 - vega-util: 1.17.3 - transitivePeerDependencies: - - encoding + vega-dataflow: 6.1.0 + vega-util: 2.1.0 - vega-scale@7.4.2: + vega-scale@8.1.0: dependencies: d3-array: 3.2.4 d3-interpolate: 3.0.1 d3-scale: 4.0.2 d3-scale-chromatic: 3.1.0 - vega-time: 2.1.3 - vega-util: 1.17.3 + vega-time: 3.1.0 + vega-util: 2.1.0 - vega-scenegraph@4.13.1: + vega-scenegraph@5.1.0: dependencies: d3-path: 3.1.0 d3-shape: 3.2.0 - vega-canvas: 1.2.7 - vega-loader: 4.5.3 - vega-scale: 7.4.2 - vega-util: 1.17.3 - transitivePeerDependencies: - - encoding + vega-canvas: 2.0.0 + vega-loader: 5.1.0 + vega-scale: 8.1.0 + vega-util: 2.1.0 vega-schema-url-parser@1.1.0: {} - vega-selections@5.6.0: + vega-selections@6.1.0: dependencies: d3-array: 3.2.4 - vega-expression: 5.2.0 - vega-util: 1.17.3 + vega-expression: 6.1.0 + vega-util: 2.1.0 - vega-statistics@1.9.0: + vega-statistics@2.0.0: dependencies: d3-array: 3.2.4 - vega-themes@2.15.0(vega-lite@5.23.0(vega@5.33.0))(vega@5.33.0): + vega-themes@2.15.0(vega-lite@6.4.1(vega@6.2.0))(vega@6.2.0): dependencies: - vega: 5.33.0 - vega-lite: 5.23.0(vega@5.33.0) + vega: 6.2.0 + vega-lite: 6.4.1(vega@6.2.0) - vega-time@2.1.3: + vega-time@3.1.0: dependencies: d3-array: 3.2.4 d3-time: 3.1.0 - vega-util: 1.17.3 + vega-util: 2.1.0 vega-tooltip@0.22.1: dependencies: - vega-util: 1.17.3 + vega-util: 1.17.4 vega-tooltip@1.1.0: dependencies: vega-util: 2.1.0 - vega-transforms@4.12.1: + vega-transforms@5.1.0: dependencies: d3-array: 3.2.4 - vega-dataflow: 5.7.7 - vega-statistics: 1.9.0 - vega-time: 2.1.3 - vega-util: 1.17.3 - transitivePeerDependencies: - - encoding + vega-dataflow: 6.1.0 + vega-statistics: 2.0.0 + vega-time: 3.1.0 + vega-util: 2.1.0 vega-typings@0.7.2: dependencies: - vega-util: 1.17.3 + vega-util: 1.17.4 - vega-typings@1.5.0: + vega-typings@2.1.0: dependencies: - '@types/geojson': 7946.0.4 - vega-event-selector: 3.0.1 - vega-expression: 5.2.0 - vega-util: 1.17.3 + '@types/geojson': 7946.0.16 + vega-event-selector: 4.0.0 + vega-expression: 6.1.0 + vega-util: 2.1.0 vega-util@1.10.0: {} - vega-util@1.17.3: {} + vega-util@1.17.4: {} vega-util@2.1.0: {} - vega-view-transforms@4.6.1: + vega-view-transforms@5.1.0: dependencies: - vega-dataflow: 5.7.7 - vega-scenegraph: 4.13.1 - vega-util: 1.17.3 - transitivePeerDependencies: - - encoding + vega-dataflow: 6.1.0 + vega-scenegraph: 5.1.0 + vega-util: 2.1.0 - vega-view@5.16.0: + vega-view@6.1.0: dependencies: d3-array: 3.2.4 d3-timer: 3.0.1 - vega-dataflow: 5.7.7 - vega-format: 1.1.3 - vega-functions: 5.18.0 - vega-runtime: 6.2.1 - vega-scenegraph: 4.13.1 - vega-util: 1.17.3 - transitivePeerDependencies: - - encoding + vega-dataflow: 6.1.0 + vega-format: 2.1.0 + vega-functions: 6.1.0 + vega-runtime: 7.1.0 + vega-scenegraph: 5.1.0 + vega-util: 2.1.0 - vega-voronoi@4.2.4: + vega-voronoi@5.1.0: dependencies: d3-delaunay: 6.0.4 - vega-dataflow: 5.7.7 - vega-util: 1.17.3 - transitivePeerDependencies: - - encoding + vega-dataflow: 6.1.0 + vega-util: 2.1.0 - vega-wordcloud@4.1.6: + vega-wordcloud@5.1.0: dependencies: - vega-canvas: 1.2.7 - vega-dataflow: 5.7.7 - vega-scale: 7.4.2 - vega-statistics: 1.9.0 - vega-util: 1.17.3 - transitivePeerDependencies: - - encoding + vega-canvas: 2.0.0 + vega-dataflow: 6.1.0 + vega-scale: 8.1.0 + vega-statistics: 2.0.0 + vega-util: 2.1.0 - vega@5.33.0: - dependencies: - vega-crossfilter: 4.1.3 - vega-dataflow: 5.7.7 - vega-encode: 4.10.2 - vega-event-selector: 3.0.1 - vega-expression: 5.2.0 - vega-force: 4.2.2 - vega-format: 1.1.3 - vega-functions: 5.18.0 - vega-geo: 4.4.3 - vega-hierarchy: 4.1.3 - vega-label: 1.3.1 - vega-loader: 4.5.3 - vega-parser: 6.6.0 - vega-projection: 1.6.2 - vega-regression: 1.3.1 - vega-runtime: 6.2.1 - vega-scale: 7.4.2 - vega-scenegraph: 4.13.1 - vega-statistics: 1.9.0 - vega-time: 2.1.3 - vega-transforms: 4.12.1 - vega-typings: 1.5.0 - vega-util: 1.17.3 - vega-view: 5.16.0 - vega-view-transforms: 4.6.1 - vega-voronoi: 4.2.4 - vega-wordcloud: 4.1.6 - transitivePeerDependencies: - - encoding + vega@6.2.0: + dependencies: + vega-crossfilter: 5.1.0 + vega-dataflow: 6.1.0 + vega-encode: 5.1.0 + vega-event-selector: 4.0.0 + vega-expression: 6.1.0 + vega-force: 5.1.0 + vega-format: 2.1.0 + vega-functions: 6.1.0 + vega-geo: 5.1.0 + vega-hierarchy: 5.1.0 + vega-label: 2.1.0 + vega-loader: 5.1.0 + vega-parser: 7.1.0 + vega-projection: 2.1.0 + vega-regression: 2.1.0 + vega-runtime: 7.1.0 + vega-scale: 8.1.0 + vega-scenegraph: 5.1.0 + vega-statistics: 2.0.0 + vega-time: 3.1.0 + vega-transforms: 5.1.0 + vega-typings: 2.1.0 + vega-util: 2.1.0 + vega-view: 6.1.0 + vega-view-transforms: 5.1.0 + vega-voronoi: 5.1.0 + vega-wordcloud: 5.1.0 verror@1.10.0: dependencies: @@ -21643,13 +21634,13 @@ snapshots: - tsx - yaml - vite-node@3.2.4(@types/node@24.9.1)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1): + vite-node@3.2.4(@types/node@24.9.2)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1): dependencies: cac: 6.7.14 debug: 4.4.3(supports-color@10.0.0) es-module-lexer: 1.7.0 pathe: 2.0.3 - vite: rolldown-vite@7.1.20(@types/node@24.9.1)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1) + vite: rolldown-vite@7.1.20(@types/node@24.9.2)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1) transitivePeerDependencies: - '@types/node' - esbuild @@ -21664,26 +21655,26 @@ snapshots: - tsx - yaml - vite-plugin-top-level-await@1.6.0(@swc/helpers@0.5.17)(rolldown-vite@7.1.20(@types/node@24.9.1)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1))(rollup@4.50.1): + vite-plugin-top-level-await@1.6.0(@swc/helpers@0.5.17)(rolldown-vite@7.1.20(@types/node@24.9.2)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1))(rollup@4.50.1): dependencies: '@rollup/plugin-virtual': 3.0.2(rollup@4.50.1) '@swc/core': 1.12.14(@swc/helpers@0.5.17) '@swc/wasm': 1.13.2 uuid: 10.0.0 - vite: rolldown-vite@7.1.20(@types/node@24.9.1)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1) + vite: rolldown-vite@7.1.20(@types/node@24.9.2)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1) transitivePeerDependencies: - '@swc/helpers' - rollup - vite-plugin-wasm@3.5.0(rolldown-vite@7.1.20(@types/node@24.9.1)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1)): + vite-plugin-wasm@3.5.0(rolldown-vite@7.1.20(@types/node@24.9.2)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1)): dependencies: - vite: rolldown-vite@7.1.20(@types/node@24.9.1)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1) + vite: rolldown-vite@7.1.20(@types/node@24.9.2)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1) vitest@3.2.4(@types/debug@4.1.12)(@types/node@20.19.21)(esbuild@0.25.9)(jiti@2.5.1)(jsdom@24.1.3)(msw@2.11.1(@types/node@20.19.21)(typescript@5.9.3))(terser@5.44.0)(yaml@2.8.1): dependencies: '@types/chai': 5.2.2 '@vitest/expect': 3.2.4 - '@vitest/mocker': 3.2.4(msw@2.11.1(@types/node@20.19.21)(typescript@5.9.3))(rolldown-vite@7.1.20(@types/node@24.9.1)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1)) + '@vitest/mocker': 3.2.4(msw@2.11.1(@types/node@20.19.21)(typescript@5.9.3))(rolldown-vite@7.1.20(@types/node@24.9.2)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1)) '@vitest/pretty-format': 3.2.4 '@vitest/runner': 3.2.4 '@vitest/snapshot': 3.2.4 @@ -21722,11 +21713,11 @@ snapshots: - tsx - yaml - vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.9.1)(esbuild@0.25.9)(jiti@2.5.1)(jsdom@24.1.3)(msw@2.11.1(@types/node@24.9.1)(typescript@5.9.3))(terser@5.44.0)(yaml@2.8.1): + vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.9.2)(esbuild@0.25.9)(jiti@2.5.1)(jsdom@24.1.3)(msw@2.11.1(@types/node@24.9.2)(typescript@5.9.3))(terser@5.44.0)(yaml@2.8.1): dependencies: '@types/chai': 5.2.2 '@vitest/expect': 3.2.4 - '@vitest/mocker': 3.2.4(msw@2.11.1(@types/node@24.9.1)(typescript@5.9.3))(rolldown-vite@7.1.20(@types/node@24.9.1)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1)) + '@vitest/mocker': 3.2.4(msw@2.11.1(@types/node@24.9.2)(typescript@5.9.3))(rolldown-vite@7.1.20(@types/node@24.9.2)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1)) '@vitest/pretty-format': 3.2.4 '@vitest/runner': 3.2.4 '@vitest/snapshot': 3.2.4 @@ -21744,12 +21735,12 @@ snapshots: tinyglobby: 0.2.15 tinypool: 1.1.1 tinyrainbow: 2.0.0 - vite: rolldown-vite@7.1.20(@types/node@24.9.1)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1) - vite-node: 3.2.4(@types/node@24.9.1)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1) + vite: rolldown-vite@7.1.20(@types/node@24.9.2)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1) + vite-node: 3.2.4(@types/node@24.9.2)(esbuild@0.25.9)(jiti@2.5.1)(terser@5.44.0)(yaml@2.8.1) why-is-node-running: 2.3.0 optionalDependencies: '@types/debug': 4.1.12 - '@types/node': 24.9.1 + '@types/node': 24.9.2 jsdom: 24.1.3 transitivePeerDependencies: - esbuild @@ -21984,9 +21975,15 @@ snapshots: wrap-ansi@8.1.0: dependencies: - ansi-styles: 6.2.1 + ansi-styles: 6.2.3 string-width: 5.1.2 - strip-ansi: 7.1.0 + strip-ansi: 7.1.2 + + wrap-ansi@9.0.2: + dependencies: + ansi-styles: 6.2.3 + string-width: 7.2.0 + strip-ansi: 7.1.2 wrappy@1.0.2: {} @@ -22034,6 +22031,8 @@ snapshots: yargs-parser@21.1.1: {} + yargs-parser@22.0.0: {} + yargs-parser@4.2.1: dependencies: camelcase: 3.0.0 @@ -22061,6 +22060,15 @@ snapshots: y18n: 5.0.8 yargs-parser: 21.1.1 + yargs@18.0.0: + dependencies: + cliui: 9.0.1 + escalade: 3.2.0 + get-caller-file: 2.0.5 + string-width: 7.2.0 + y18n: 5.0.8 + yargs-parser: 22.0.0 + yargs@6.6.0: dependencies: camelcase: 3.0.0