@lilt-ui/charts 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (111) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +107 -0
  3. package/THIRD_PARTY_NOTICES.md +25 -0
  4. package/dist/activity-ring.d.ts +44 -0
  5. package/dist/analysis-BLLWEKBw.js +105 -0
  6. package/dist/cards/activity-ring-card.d.ts +60 -0
  7. package/dist/cards/area-chart-card.d.ts +19 -0
  8. package/dist/cards/area-chart-card.typecheck.d.ts +9 -0
  9. package/dist/cards/bar-chart-card.d.ts +34 -0
  10. package/dist/cards/cartesian-card.d.ts +206 -0
  11. package/dist/cards/chart-card.d.ts +77 -0
  12. package/dist/cards/combo-chart-card.d.ts +51 -0
  13. package/dist/cards/format.d.ts +36 -0
  14. package/dist/cards/funnel-chart-card.d.ts +62 -0
  15. package/dist/cards/heatmap-chart-card.d.ts +107 -0
  16. package/dist/cards/horizontal-bar-chart-card.d.ts +60 -0
  17. package/dist/cards/keys.d.ts +19 -0
  18. package/dist/cards/line-chart-card.d.ts +19 -0
  19. package/dist/cards/progress-card.d.ts +55 -0
  20. package/dist/cards/radar-chart-card.d.ts +93 -0
  21. package/dist/cards/radial-chart-card.d.ts +79 -0
  22. package/dist/cards/rank.d.ts +21 -0
  23. package/dist/cards/sankey-chart-card.d.ts +69 -0
  24. package/dist/cards/scatter-chart-card.d.ts +91 -0
  25. package/dist/cards/slope-chart-card.d.ts +73 -0
  26. package/dist/cards/stat-card.d.ts +68 -0
  27. package/dist/chart-context.d.ts +102 -0
  28. package/dist/chart-plot.d.ts +13 -0
  29. package/dist/chart.d.ts +17 -0
  30. package/dist/data/chart-data.d.ts +24 -0
  31. package/dist/data.d.ts +5 -0
  32. package/dist/data.js +2 -0
  33. package/dist/engine/analysis.d.ts +11 -0
  34. package/dist/engine/bars.d.ts +38 -0
  35. package/dist/engine/comparison.d.ts +3 -0
  36. package/dist/engine/composition.d.ts +6 -0
  37. package/dist/engine/domains.d.ts +13 -0
  38. package/dist/engine/geometry.d.ts +73 -0
  39. package/dist/engine/lifecycle.d.ts +10 -0
  40. package/dist/engine/lookup.d.ts +3 -0
  41. package/dist/engine/normalize.d.ts +21 -0
  42. package/dist/engine/ranking.d.ts +20 -0
  43. package/dist/engine/sankey.d.ts +36 -0
  44. package/dist/engine/scatter.d.ts +15 -0
  45. package/dist/engine/slope.d.ts +46 -0
  46. package/dist/engine/stack.d.ts +11 -0
  47. package/dist/export-chart-svg.d.ts +8 -0
  48. package/dist/index.d.ts +73 -0
  49. package/dist/index.js +11309 -0
  50. package/dist/interaction/adaptive-readout.d.ts +16 -0
  51. package/dist/interaction/axis-cursor.d.ts +30 -0
  52. package/dist/interaction/brush-gesture.d.ts +15 -0
  53. package/dist/interaction/brush-view.d.ts +12 -0
  54. package/dist/interaction/chart-controller.d.ts +6 -0
  55. package/dist/interaction/chart-sync.d.ts +35 -0
  56. package/dist/interaction/comparison-answer.d.ts +11 -0
  57. package/dist/interaction/comparison-layer.d.ts +19 -0
  58. package/dist/interaction/comparison-tooltip.d.ts +14 -0
  59. package/dist/interaction/focus-overview.d.ts +10 -0
  60. package/dist/interaction/inspection-layer.d.ts +29 -0
  61. package/dist/interaction/legend.d.ts +50 -0
  62. package/dist/interaction/pin-marker.d.ts +12 -0
  63. package/dist/interaction/tooltip-context.d.ts +4 -0
  64. package/dist/interaction/tooltip-view.d.ts +26 -0
  65. package/dist/interaction/tooltip.d.ts +10 -0
  66. package/dist/interaction/use-category-state.d.ts +24 -0
  67. package/dist/interaction/use-pinned-selection.d.ts +3 -0
  68. package/dist/interaction/value-legend.d.ts +32 -0
  69. package/dist/interaction/visibility.d.ts +8 -0
  70. package/dist/lifecycle/loading-layer.d.ts +38 -0
  71. package/dist/lifecycle/skeleton-sheen.d.ts +18 -0
  72. package/dist/lifecycle/status-content.d.ts +6 -0
  73. package/dist/model/cartesian-model.d.ts +132 -0
  74. package/dist/model/cartesian-model.typecheck.d.ts +1 -0
  75. package/dist/model/use-chart-state.d.ts +6 -0
  76. package/dist/motion/animated-number.d.ts +54 -0
  77. package/dist/motion/bounded-text.d.ts +13 -0
  78. package/dist/motion/entrance.d.ts +9 -0
  79. package/dist/motion/number-format.d.ts +4 -0
  80. package/dist/motion/use-chart-motion.d.ts +10 -0
  81. package/dist/motion/use-focus-domain.d.ts +7 -0
  82. package/dist/motion/use-glide.d.ts +13 -0
  83. package/dist/motion/use-series-weights.d.ts +2 -0
  84. package/dist/paint.d.ts +11 -0
  85. package/dist/primitives/annotations.d.ts +4 -0
  86. package/dist/primitives/area.d.ts +8 -0
  87. package/dist/primitives/axes.d.ts +9 -0
  88. package/dist/primitives/bar-shape.d.ts +39 -0
  89. package/dist/primitives/bar.d.ts +7 -0
  90. package/dist/primitives/change-comparison.d.ts +3 -0
  91. package/dist/primitives/grid.d.ts +3 -0
  92. package/dist/primitives/interval-band.d.ts +4 -0
  93. package/dist/primitives/line.d.ts +8 -0
  94. package/dist/primitives/plot-background.d.ts +10 -0
  95. package/dist/primitives/reference-line.d.ts +4 -0
  96. package/dist/primitives/runoff.d.ts +49 -0
  97. package/dist/runtime/chart-runtime.d.ts +95 -0
  98. package/dist/styles.css +2 -0
  99. package/dist/toolkit/chart-brush.d.ts +3 -0
  100. package/dist/toolkit/chart-overview.d.ts +3 -0
  101. package/dist/toolkit/chart-range-summary.d.ts +5 -0
  102. package/dist/toolkit/chart-readout.d.ts +3 -0
  103. package/dist/toolkit/chart-toolbar.d.ts +3 -0
  104. package/dist/toolkit/comparison-details.d.ts +7 -0
  105. package/dist/types.d.ts +555 -0
  106. package/dist/use-chart-width.d.ts +5 -0
  107. package/media/cards-dark.webp +0 -0
  108. package/media/cards-light.webp +0 -0
  109. package/media/hero-dark.webp +0 -0
  110. package/media/hero-light.webp +0 -0
  111. package/package.json +71 -0
@@ -0,0 +1,54 @@
1
+ import { ReactElement } from 'react';
2
+ /**
3
+ * How a number animates when it changes:
4
+ * - `count` (default): the value itself counts to its new total.
5
+ * - `pop`: the number lifts away and the new one pops in, character by character.
6
+ * - `slide`: changed digits travel in the direction of change, ones place first.
7
+ * - `roll`: every digit turns like an odometer, carrying through 9 → 0.
8
+ * - `flow`: NumberFlow's spinning digits, which need an `Intl.NumberFormat` (cards provide one).
9
+ * - `scramble`: changed digits cycle through figures before they land.
10
+ *
11
+ * Symbols such as a currency sign stay put while the digits beside them change. While values
12
+ * arrive quickly, as they do when a pointer scrubs a chart, every variant keeps its character
13
+ * but moves in a short, interruptible form: new digits start part-visible, old ones clear
14
+ * within a tenth of a second, and each change carries on from wherever the last one was.
15
+ */
16
+ export type AnimatedNumberVariant = 'slide' | 'roll' | 'flow' | 'pop' | 'scramble' | 'count';
17
+ export interface AnimatedNumberProps {
18
+ value: number;
19
+ /**
20
+ * A format function or an `Intl.NumberFormat`. An `Intl.NumberFormat` lets every variant tell
21
+ * symbols from digits exactly; `flow` needs one and slides with a plain function.
22
+ */
23
+ format?: ((value: number) => string) | Intl.NumberFormat;
24
+ className?: string;
25
+ motion?: 'auto' | 'none';
26
+ /** `count` (default), `pop`, `slide`, `roll`, `flow`, or `scramble`. */
27
+ variant?: AnimatedNumberVariant;
28
+ }
29
+ /** One character of the formatted number. */
30
+ export interface NumberCell {
31
+ /** Stable across values: symbols by kind, digits by place value from the decimal point. */
32
+ key: string;
33
+ char: string;
34
+ digit: boolean;
35
+ /** Symbols before and after the number stay in place while its digits change. */
36
+ role: 'prefix' | 'number' | 'suffix';
37
+ /** Distance from the last character, for the ones-first cascade. */
38
+ place: number;
39
+ }
40
+ /**
41
+ * Splits a formatted number into keyed cells. Keys follow meaning rather than position, so the
42
+ * currency sign keeps its key when a digit is added, and the ones digit is always `i0`.
43
+ */
44
+ export declare function numberCells(text: string, parts?: readonly Intl.NumberFormatPart[]): NumberCell[];
45
+ /** Keep interpolation frames at the precision of the accepted measurement. */
46
+ export declare function interpolationFrameValue(frame: number, target: number): number;
47
+ /** The next stop on a digit reel that shows `digit`, turning from `from` in the direction of change. */
48
+ export declare function reelTarget(from: number, digit: number, direction: 1 | -1): number;
49
+ /**
50
+ * A number that animates between values. Characters sit in slots keyed by meaning, so only the
51
+ * places that change move, symbols hold still, and places that appear or leave ease the width
52
+ * open or shut. Screen readers get the settled value once; the moving glyphs are hidden.
53
+ */
54
+ export declare function AnimatedNumber({ value, format, className, motion: motionMode, variant: requested, }: AnimatedNumberProps): ReactElement;
@@ -0,0 +1,13 @@
1
+ import { ReactElement } from 'react';
2
+ export interface BoundedTextProps {
3
+ value: string;
4
+ duration?: number;
5
+ offset?: number;
6
+ className?: string;
7
+ 'aria-label'?: string;
8
+ }
9
+ /**
10
+ * A deliberately bounded two-layer text slot. The logical value is always the
11
+ * accessible value; only the visual layers are animated.
12
+ */
13
+ export declare function BoundedText({ value, duration, offset, className, 'aria-label': ariaLabel, }: BoundedTextProps): ReactElement;
@@ -0,0 +1,9 @@
1
+ /** Entrance channels share elapsed time; updates keep their own existing clock. */
2
+ export declare const ENTRANCE_DURATION = 720;
3
+ export declare const COMPACT_ENTRANCE_DURATION = 520;
4
+ export declare function entranceProgress(elapsed: number, delay?: number, duration?: number): number;
5
+ export declare function entranceStagger(index: number, count: number, maximum?: number): number;
6
+ export declare function entranceSweep(left: number, width: number, progress: number): {
7
+ start: number;
8
+ end: number;
9
+ };
@@ -0,0 +1,4 @@
1
+ /** Wraps an `Intl.NumberFormat` as a format function that still knows where it came from. */
2
+ export declare function intlFormat(formatter: Intl.NumberFormat): (value: number) => string;
3
+ /** The `Intl.NumberFormat` behind a format, when there is one. */
4
+ export declare function formatterOf(format: ((value: number) => string) | Intl.NumberFormat): Intl.NumberFormat | undefined;
@@ -0,0 +1,10 @@
1
+ import { ChartMotion } from '../types';
2
+ declare const REVEAL_EASE: readonly [0.22, 1, 0.36, 1];
3
+ export declare function useReducedMotion(motion: ChartMotion): boolean;
4
+ export interface TimelineSpec {
5
+ key: string | number;
6
+ duration: number;
7
+ active: boolean;
8
+ }
9
+ export declare function useChartTimeline(spec: TimelineSpec, reducedMotion: boolean): number;
10
+ export { REVEAL_EASE };
@@ -0,0 +1,7 @@
1
+ export interface DomainFrame {
2
+ x: readonly [number, number];
3
+ y: readonly [number, number];
4
+ }
5
+ export declare function interpolateDomain(from: DomainFrame, to: DomainFrame, progress: number): DomainFrame;
6
+ /** One numerical clock for every spatial channel of a focus transition. */
7
+ export declare function useFocusDomain(target: DomainFrame | null, focusKey: string, dataIdentity: unknown, sizeKey: string, reducedMotion: boolean): DomainFrame | null;
@@ -0,0 +1,13 @@
1
+ import { MotionValue } from 'motion/react';
2
+ export interface GlideSpring {
3
+ stiffness: number;
4
+ damping: number;
5
+ mass?: number;
6
+ }
7
+ /**
8
+ * A motion value that springs to each target it is given and always lands exactly on it.
9
+ * Every move is its own animation to a known destination, rather than a spring that follows
10
+ * another value, so an interrupted gesture or a paused frame can never leave it resting short
11
+ * of its target. A new target takes over from wherever the value is.
12
+ */
13
+ export declare function useGlide(initial: number, spring: GlideSpring): readonly [MotionValue<number>, (to: number, instant?: boolean) => void];
@@ -0,0 +1,2 @@
1
+ /** One interruptible clock collapses all stack boundaries together. */
2
+ export declare function useSeriesWeights(ids: readonly string[], visible: readonly string[], enabled: boolean, reduced: boolean): Record<string, number>;
@@ -0,0 +1,11 @@
1
+ import { ReactElement } from 'react';
2
+ import { ChartFillTreatment, ChartSeries } from './types';
3
+ export type PaintKind = 'area' | 'bar' | 'line';
4
+ export declare function seriesColor<T>(descriptor: ChartSeries<T>, index: number): string;
5
+ /** IDs use descriptor positions, so punctuation in a public series ID cannot collide. */
6
+ export declare function paintId(chartId: string, index: number, treatment: ChartFillTreatment): string;
7
+ export declare function fillFor(color: string, explicit: string | undefined, treatment: ChartFillTreatment, id: string): string;
8
+ export declare function ChartPaintDefs<T>({ chartId, series, }: {
9
+ chartId: string;
10
+ series: readonly ChartSeries<T>[];
11
+ }): ReactElement;
@@ -0,0 +1,4 @@
1
+ import { ReactElement } from 'react';
2
+ import { AnnotationsProps, ReferenceBandProps } from '../types';
3
+ export declare function Annotations({ items, onSelectionChange, className, }: AnnotationsProps): ReactElement;
4
+ export declare function ReferenceBand({ from, to, label, color, className, }: ReferenceBandProps): ReactElement;
@@ -0,0 +1,8 @@
1
+ import { ReactElement } from 'react';
2
+ import { AreaProps } from '../types';
3
+ import { CartesianChartModel } from '../model/cartesian-model';
4
+ export declare function Area<Row, Id extends string>(props: AreaProps & {
5
+ model: CartesianChartModel<Row, Id>;
6
+ series: NoInfer<Id>;
7
+ }): ReactElement;
8
+ export declare function Area(props: AreaProps): ReactElement;
@@ -0,0 +1,9 @@
1
+ import { ReactElement } from 'react';
2
+ import { XAxisProps, YAxisProps } from '../types';
3
+ /** Offsets below the plot where ruler marks start; the crosshair ends at the same line. */
4
+ export declare const RULER_GAP: {
5
+ readonly ticks: 4;
6
+ readonly dots: 7;
7
+ };
8
+ export declare function XAxis({ className, edgeInset, labels }?: XAxisProps): ReactElement;
9
+ export declare function YAxis({ className, showTicks, scale, }?: YAxisProps): ReactElement | null;
@@ -0,0 +1,39 @@
1
+ import { ReactElement } from 'react';
2
+ import { barMarkPath, BarGeometry } from '../engine/bars';
3
+ import { ChartBarAppearance } from '../types';
4
+ type MarkOptions = Parameters<typeof barMarkPath>[1];
5
+ interface Rect {
6
+ x: number;
7
+ y: number;
8
+ width: number;
9
+ height: number;
10
+ }
11
+ /**
12
+ * Cells laid on a fixed grid from the baseline, so stacked segments continue across a color
13
+ * change. The outermost cell is trimmed to the exact value: a segmented bar is never taller or
14
+ * shorter than its number.
15
+ */
16
+ export declare function barCells(rect: Rect, baseline: number): Rect[];
17
+ /**
18
+ * One bar in any appearance. Shared by the plot and the hover highlight so both always match;
19
+ * a needle expands to its full width when `expanded`.
20
+ */
21
+ export declare function BarShape({ bar, appearance, mark, fill, color, baseline, expanded, id, fillOpacity, stroke, strokeWidth, className, dataAttributes, opacity, }: {
22
+ bar: BarGeometry;
23
+ appearance?: ChartBarAppearance;
24
+ mark: MarkOptions;
25
+ fill: string;
26
+ color: string;
27
+ /** Where segmented cells start counting, usually the zero line. */
28
+ baseline: number;
29
+ expanded?: boolean;
30
+ /** Unique within the chart; used for the gradient definition. */
31
+ id: string;
32
+ fillOpacity?: number;
33
+ stroke?: string;
34
+ strokeWidth?: number;
35
+ className?: string;
36
+ dataAttributes?: Record<string, string | number | undefined>;
37
+ opacity?: number;
38
+ }): ReactElement;
39
+ export {};
@@ -0,0 +1,7 @@
1
+ import { BarProps } from '../types';
2
+ import { CartesianChartModel } from '../model/cartesian-model';
3
+ export declare function Bar<Row, Id extends string>(props: BarProps & {
4
+ model: CartesianChartModel<Row, Id>;
5
+ series: NoInfer<Id>;
6
+ }): React.ReactElement;
7
+ export declare function Bar(props: BarProps): React.ReactElement;
@@ -0,0 +1,3 @@
1
+ import { ReactElement } from 'react';
2
+ import { ChangeComparisonProps } from '../types';
3
+ export declare function ChangeComparison<T>({ data, label, series: seriesId, className, }: ChangeComparisonProps<T>): ReactElement;
@@ -0,0 +1,3 @@
1
+ import { ReactElement } from 'react';
2
+ import { GridProps } from '../types';
3
+ export declare function Grid({ className, pattern, color, opacity: markOpacity, lineWidth, dotSpacing, dotRadius, }?: GridProps): ReactElement;
@@ -0,0 +1,4 @@
1
+ import { ReactElement } from 'react';
2
+ import { IntervalBandProps } from '../types';
3
+ /** A supplied lower/upper envelope in the descriptor's own unit. */
4
+ export declare function IntervalBand({ series, className }: IntervalBandProps): ReactElement;
@@ -0,0 +1,8 @@
1
+ import { ReactElement } from 'react';
2
+ import { LineProps } from '../types';
3
+ import { CartesianChartModel } from '../model/cartesian-model';
4
+ export declare function Line<Row, Id extends string>(props: LineProps & {
5
+ model: CartesianChartModel<Row, Id>;
6
+ series: NoInfer<Id>;
7
+ }): ReactElement;
8
+ export declare function Line(props: LineProps): ReactElement;
@@ -0,0 +1,10 @@
1
+ import { ReactElement } from 'react';
2
+ import { ChartBackground } from '../types';
3
+ /**
4
+ * Texture behind the plot marks. It fades toward the plot edges so it reads as depth rather than
5
+ * graph paper, and optionally brightens around the inspected point.
6
+ */
7
+ export declare function PlotBackground({ kind, spotlight, }: {
8
+ kind: Exclude<ChartBackground, 'none'>;
9
+ spotlight?: boolean;
10
+ }): ReactElement;
@@ -0,0 +1,4 @@
1
+ import { ReactElement } from 'react';
2
+ import { ReferenceLineProps } from '../types';
3
+ /** A horizontal line at one y value, such as a target, with an optional label at its end. */
4
+ export declare function ReferenceLine({ value, label, color, className, }: ReferenceLineProps): ReactElement | null;
@@ -0,0 +1,49 @@
1
+ import { ReactElement } from 'react';
2
+ import { ChartSnapshot } from '../chart-context';
3
+ import { GeometrySegment, SeriesGeometry } from '../engine/geometry';
4
+ export interface RunoffEdges {
5
+ /** Plot edge to extend the first segment to, when the data starts at the scale start. */
6
+ left?: number;
7
+ /** Plot edge to extend the last segment to, when the data ends at the scale end. */
8
+ right?: number;
9
+ dataStart: number;
10
+ dataEnd: number;
11
+ }
12
+ /**
13
+ * Lines and areas continue flat from the first and last observations to the plot edges.
14
+ * Only when the data starts and ends at the inset scale bounds: a missing first or last
15
+ * observation stays a visible gap rather than being bridged.
16
+ */
17
+ export declare function runoffEdges(snapshot: ChartSnapshot<unknown>, geometry: SeriesGeometry): RunoffEdges | null;
18
+ /** Which edges a segment extends to: the first segment reaches left, the last reaches right. */
19
+ export declare function segmentEdges(edges: RunoffEdges | null, index: number, count: number): {
20
+ left?: number;
21
+ right?: number;
22
+ };
23
+ /** One continuous line path, so the extension meets the curve without a seam. */
24
+ export declare function extendLinePath(segment: GeometrySegment, { left, right }: {
25
+ left?: number;
26
+ right?: number;
27
+ }): string;
28
+ /**
29
+ * One continuous area outline. Area paths trace the upper line forward and the lower boundary
30
+ * back, so the extension adds flat runs at both ends of each boundary.
31
+ */
32
+ export declare function extendAreaPath(segment: GeometrySegment, { left, right }: {
33
+ left?: number;
34
+ right?: number;
35
+ }): string;
36
+ /**
37
+ * A mask ID that changes with the fade geometry. Chrome can keep painting a stale, empty mask
38
+ * after the gradient inside it changes; a new ID forces a fresh mask on every geometry change.
39
+ */
40
+ export declare function runoffMaskId(base: string, snapshot: ChartSnapshot<unknown>, edges: RunoffEdges): string;
41
+ /**
42
+ * A soft horizontal fade over the extensions only: full strength across the data,
43
+ * easing toward the plot edges.
44
+ */
45
+ export declare function RunoffFade({ id, snapshot, edges, }: {
46
+ id: string;
47
+ snapshot: ChartSnapshot<unknown>;
48
+ edges: RunoffEdges;
49
+ }): ReactElement;
@@ -0,0 +1,95 @@
1
+ import { ReactElement } from 'react';
2
+ import { ChartController, ChartProps, ChartLegendValue, ChartComparisonContext, ChartCompareConfig, ChartFillTreatment } from '../types';
3
+ import { PaintKind } from '../paint';
4
+ import { CartesianChartModel } from '../model/cartesian-model';
5
+ import { ChartSnapshot } from '../chart-context';
6
+ type ModelChartProps<T, Id extends string> = Omit<ChartProps<T>, 'data' | 'x' | 'series' | 'selectedCategoryId' | 'onSelectedCategoryIdChange' | 'compare' | 'visibleSeries' | 'onVisibleSeriesChange'> & {
7
+ model: CartesianChartModel<T, Id>;
8
+ compare?: boolean | (Omit<ChartCompareConfig, 'series'> & {
9
+ series?: NoInfer<Id>;
10
+ });
11
+ visibleSeries?: readonly NoInfer<Id>[];
12
+ onVisibleSeriesChange?: (series: readonly NoInfer<Id>[]) => void;
13
+ };
14
+ export interface LegendSnapshot {
15
+ series: readonly (ChartLegendValue & {
16
+ color: string;
17
+ kind: PaintKind;
18
+ treatment: ChartFillTreatment;
19
+ dasharray?: string;
20
+ visible: boolean;
21
+ })[];
22
+ reducedMotion: boolean;
23
+ comparison: ChartComparisonContext | null;
24
+ observations: readonly {
25
+ id: string;
26
+ x: number;
27
+ row: unknown;
28
+ sourceIndex: number;
29
+ label: string;
30
+ values: Readonly<Record<string, number | null>>;
31
+ formattedValues: Readonly<Record<string, string>>;
32
+ statuses: Readonly<Record<string, ChartLegendValue['status']>>;
33
+ }[];
34
+ inspectedX: number | null;
35
+ pinnedX: number | null;
36
+ onInspect: (x: number, pinned: boolean) => void;
37
+ onClearInspect: () => void;
38
+ onReleaseInspect: () => void;
39
+ onFocus: (id: string | null) => void;
40
+ onVisibleChange: (ids: readonly string[]) => void;
41
+ isolatedId: string | null;
42
+ onIsolate: (id: string) => void;
43
+ onRestore: () => void;
44
+ onShowAll: () => void;
45
+ }
46
+ export interface ToolkitSnapshot {
47
+ comparison: ChartComparisonContext | null;
48
+ toolbar: {
49
+ label: string;
50
+ pressed: boolean;
51
+ onClick: () => void;
52
+ } | null;
53
+ readout: string | null;
54
+ overview: {
55
+ range: {
56
+ startX: number;
57
+ endX: number;
58
+ };
59
+ series: string;
60
+ snapshot: ChartSnapshot<unknown>;
61
+ } | null;
62
+ brush: {
63
+ snapshot: ChartSnapshot<unknown>;
64
+ range: {
65
+ startX: number;
66
+ endX: number;
67
+ } | null;
68
+ seriesId: string;
69
+ reducedMotion: boolean;
70
+ onFocus: (range: {
71
+ startX: number;
72
+ endX: number;
73
+ } | null) => void;
74
+ } | null;
75
+ legend: LegendSnapshot | null;
76
+ }
77
+ export interface ToolkitStore {
78
+ getSnapshot: () => ToolkitSnapshot;
79
+ subscribe: (listener: () => void) => () => void;
80
+ publish: (snapshot: ToolkitSnapshot) => void;
81
+ }
82
+ export interface RuntimeContextValue<T> {
83
+ props: Omit<ChartProps<T>, 'children' | 'className' | 'style' | 'controller'>;
84
+ controller: ChartController;
85
+ linked: boolean;
86
+ toolkit: ToolkitStore;
87
+ model?: CartesianChartModel<T, string>;
88
+ }
89
+ export declare function Chart<T, Id extends string>(props: ModelChartProps<T, Id>): ReactElement;
90
+ export declare function Chart<T>(props: ChartProps<T>): ReactElement;
91
+ export declare function useChartRuntime<T>(): RuntimeContextValue<T>;
92
+ export declare function useToolkitSnapshot(): ToolkitSnapshot;
93
+ /** Read comparison data/actions without opting in to any presentation. */
94
+ export declare function useChartComparison(): ChartComparisonContext | null;
95
+ export {};
@@ -0,0 +1,2 @@
1
+ @layer lilt{[data-lilt-chart]:not(:where([data-lilt-chart] *)){--lilt-surface:var(--card,#fff);--lilt-text:var(--card-foreground,#37352f);--lilt-muted:var(--muted-foreground,#787771);--lilt-grid:var(--border,#e7e7e4);--lilt-border:var(--border,#e7e7e4);--lilt-series-1:var(--chart-1,#7c5cff);--lilt-series-2:var(--chart-2,#0d9e92);--lilt-series-3:var(--chart-3,#f26b3a);--lilt-series-4:var(--chart-4,#2d7ff9);--lilt-series-5:var(--chart-5,#e5489a);--lilt-series-6:#c98700;--lilt-reference:#89968d;--lilt-positive:#168267;--lilt-negative:#b65d54;--lilt-sequential-1:#dceee7;--lilt-sequential-2:#a8d8c2;--lilt-sequential-3:#6db99a;--lilt-sequential-4:#168267;--lilt-area-fill-start:.34;--lilt-area-fill-end:.015;--lilt-focus:var(--ring,#7c5cff);--lilt-tooltip-bg:var(--lilt-axis-active);--lilt-tooltip-text:var(--lilt-axis-active-text);--lilt-tooltip-muted:#c1c9c6;--lilt-tooltip-accent:#83e5bf;--lilt-tooltip-border:#ffffff29;--lilt-tooltip-focus:#8de5c2;--lilt-tooltip-shadow:0 12px 34px #080e0c38, 0 2px 8px #080e0c24;--lilt-axis-active:#37352f;--lilt-axis-active-text:#fff;--lilt-skeleton:#c9c8d0;--lilt-skeleton-sheen:#9d98b8;--lilt-skeleton-area-opacity:.1;--lilt-annotation:#b7742d;--lilt-texture:var(--lilt-muted);--lilt-texture-opacity:.28;--lilt-texture-spot:var(--lilt-text);--lilt-texture-spot-opacity:.55;--lilt-card-raised:var(--card,#fff);--lilt-card-edge:color-mix(in srgb, var(--lilt-border) 85%, transparent);--lilt-card-highlight:#fff0;--lilt-card-shadow:0 1px 2px #0f17140a, 0 12px 32px -14px #0f171424;--lilt-duration-quick:.15s;--lilt-duration-fast:.25s;--lilt-duration-focus:.42s;--lilt-ease-reveal:cubic-bezier(.22, 1, .36, 1)}[data-lilt-chart]{--lilt-chart-height:var(--lilt-default-height,340px);box-sizing:border-box;width:100%;min-width:0;height:auto;color:var(--lilt-text);font:inherit;display:block;position:relative;overflow:visible}.lilt-chart__plot-host{width:100%;height:var(--lilt-chart-height);min-width:0;position:relative}.lilt-chart__plot-host[data-lilt-fill=true]{flex:1 1 0;height:auto;min-height:180px}.lilt-chart__plot-host:focus-visible{outline:2px solid var(--lilt-focus);outline-offset:3px}.lilt-chart__plot-host[data-lilt-adaptive=true]{height:auto}.lilt-chart__tooltip-total{border-top:1px solid var(--lilt-tooltip-border);color:var(--lilt-tooltip-muted);justify-content:space-between;gap:16px;margin-top:8px;padding-top:8px;font-size:11px;display:flex}.lilt-chart__tooltip-total strong{color:var(--lilt-tooltip-text);font-variant-numeric:tabular-nums;font-weight:500}.lilt-chart__skeleton-bars{fill:var(--lilt-skeleton);opacity:.34}.lilt-sparkline__readout{color:var(--lilt-muted);font:inherit;white-space:nowrap;pointer-events:none;justify-content:space-between;gap:8px;font-size:10px;line-height:16px;display:flex;position:absolute;top:0;left:5px;right:5px}.lilt-sparkline__readout strong{color:var(--lilt-text);font-variant-numeric:tabular-nums;font-weight:500}.lilt-chart__toolbar{justify-content:space-between;align-items:center;gap:12px;min-height:36px;margin-bottom:4px;display:flex}.lilt-chart__toolbar-tools,.lilt-chart__toolbar-actions{align-items:center;gap:4px;display:flex}@media (hover:hover){.lilt-chart__legend-item[data-interactive]:hover{z-index:2;background:color-mix(in srgb, var(--lilt-border) 30%, transparent);position:relative}.lilt-chart__legend-item:hover .lilt-chart__legend-isolate{opacity:1}.lilt-chart__legend button:hover{color:var(--lilt-text)}.lilt-chart__legend button.lilt-chart__legend-isolate:hover{background:color-mix(in srgb, var(--lilt-legend-color) 12%, transparent);color:var(--lilt-legend-color)}}@media (pointer:coarse){.lilt-chart__legend button{min-height:44px}.lilt-chart__legend button.lilt-chart__legend-isolate{opacity:.7;flex-basis:36px;width:36px;min-width:36px}}.lilt-number{--lilt-number-line:1.2em;--lilt-number-fade:.22em;font-variant-numeric:tabular-nums;display:inline-flex;position:relative}.lilt-number__place{overflow-clip-margin:.12em;display:inline-flex;overflow-x:clip}.lilt-number__cell{margin-block:calc(var(--lilt-number-fade) * -1);padding-block:var(--lilt-number-fade);line-height:var(--lilt-number-line);-webkit-mask-image:linear-gradient(to bottom, transparent, #000 var(--lilt-number-fade), #000 calc(100% - var(--lilt-number-fade)), transparent);-webkit-mask-image:linear-gradient(to bottom, transparent, #000 var(--lilt-number-fade), #000 calc(100% - var(--lilt-number-fade)), transparent);mask-image:linear-gradient(to bottom, transparent, #000 var(--lilt-number-fade), #000 calc(100% - var(--lilt-number-fade)), transparent);display:inline-grid;position:relative;overflow:clip}.lilt-number__glyph{white-space:pre;text-align:center;grid-area:1/1}.lilt-number__cell--reel .lilt-number__sizer{visibility:hidden}.lilt-number__reel{top:var(--lilt-number-fade);text-align:center;flex-direction:column;display:flex;position:absolute;left:0;right:0}.lilt-number__reel>span{height:var(--lilt-number-line);line-height:var(--lilt-number-line)}.lilt-number__flow{display:inline-flex}.lilt-number__flow number-flow-react{--number-flow-mask-height:.22em;font-variant-numeric:tabular-nums}.lilt-number__pop-host{display:inline-flex;position:relative}.lilt-number__pop{white-space:pre;pointer-events:none;display:inline-block}.lilt-number__pop-char{display:inline-block}.lilt-number__cell[data-scrambling]{color:color-mix(in srgb, currentColor 58%, transparent)}.lilt-chart__toolbar button{min-height:30px;color:var(--lilt-muted);font:inherit;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:7px;align-items:center;gap:6px;padding:4px 9px;font-size:12px;display:inline-flex}.lilt-chart__toolbar button:hover{background:color-mix(in srgb, var(--lilt-border) 50%, transparent);color:var(--lilt-text)}.lilt-chart__toolbar button:focus-visible,.lilt-chart__keyboard-input input:focus-visible,.lilt-chart__legend button:focus-visible{outline:2px solid var(--lilt-focus);outline-offset:2px}.lilt-chart__readout{color:var(--lilt-text)}.lilt-chart__observation{color:var(--lilt-muted);font-variant-numeric:tabular-nums;margin:0;font-size:12px;line-height:18px}.lilt-chart__plot-host>.lilt-chart__keyboard-input{z-index:8;border:1px solid var(--lilt-border);background:var(--lilt-surface);opacity:0;clip-path:inset(50%);pointer-events:none;border-radius:8px;width:min(240px,100% - 16px);min-height:56px;padding:10px 12px;position:absolute;top:8px;right:8px}.lilt-chart__plot-host>.lilt-chart__keyboard-input:focus-within{opacity:1;clip-path:none;pointer-events:auto}.lilt-chart__keyboard-input{color:var(--lilt-muted);grid-template-columns:minmax(100px,1fr);align-items:center;gap:4px 10px;margin-top:6px;font-size:11px;display:grid}.lilt-chart__keyboard-input small{grid-column:1;display:none}.lilt-chart__keyboard-input:has(input:focus-visible) small{display:block}.lilt-chart__keyboard-input input{accent-color:var(--lilt-focus);cursor:pointer}.lilt-chart__overview-host,.lilt-chart__overview,.lilt-chart__legend{width:100%;position:static}.lilt-chart__overview{margin:2px 0 8px;display:block}.lilt-chart__overview svg{width:100%;height:32px;display:block}.lilt-chart__legend{flex-wrap:wrap;align-items:center;gap:4px 12px;min-height:34px;display:flex}.lilt-chart__legend-item{min-width:0;max-width:100%;transition:background .16s var(--lilt-ease-reveal);border-radius:8px;align-items:center;display:inline-flex}.lilt-chart__legend button,.lilt-chart__legend-static{min-width:0;min-height:34px;color:color-mix(in srgb, var(--lilt-text) 84%, var(--lilt-muted));font:inherit;text-align:left;background:0 0;border:0;border-radius:7px;align-items:center;gap:8px;margin:0;padding:6px 8px;font-size:12px;font-weight:500;line-height:20px;transition:color .16s,background .16s,opacity .16s;display:inline-flex}.lilt-chart__legend button{cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.lilt-chart__direct-label{font:inherit;pointer-events:none;font-size:11px;font-weight:600}.lilt-chart__legend-label{overflow-wrap:anywhere;min-width:0;transition:color .18s}.lilt-chart__legend-value{color:var(--lilt-text);font-variant-numeric:tabular-nums;margin-left:auto;font-size:11px}.lilt-chart__legend-item[data-visible=false] .lilt-chart__legend-label{color:var(--lilt-muted)}.lilt-chart__legend button.lilt-chart__legend-isolate{width:26px;min-width:26px;color:var(--lilt-muted);opacity:.45;flex:0 0 26px;justify-content:center;padding:0;position:relative}.lilt-chart__legend-isolate svg{stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.lilt-chart__legend-item:focus-within{z-index:2;background:color-mix(in srgb, var(--lilt-border) 30%, transparent);position:relative}.lilt-chart__legend-item:focus-within .lilt-chart__legend-isolate{opacity:1}.lilt-chart__legend button.lilt-chart__legend-isolate[aria-pressed=true]{color:var(--lilt-legend-color);opacity:1}@media (hover:hover){.lilt-chart__legend-item[data-interactive]:hover{z-index:2;background:color-mix(in srgb, var(--lilt-border) 30%, transparent);position:relative}.lilt-chart__legend-item:hover .lilt-chart__legend-isolate{opacity:1}.lilt-chart__legend button:hover{color:var(--lilt-text)}.lilt-chart__legend button.lilt-chart__legend-isolate:hover{background:color-mix(in srgb, var(--lilt-legend-color) 12%, transparent);color:var(--lilt-legend-color)}}@media (pointer:coarse){.lilt-chart__legend button{min-height:44px}.lilt-chart__legend button.lilt-chart__legend-isolate{opacity:.7;flex-basis:36px;width:36px;min-width:36px}}.lilt-chart__legend[data-motion=none],.lilt-chart__legend[data-motion=none] *{transition:none}.lilt-chart__sr-only{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}[data-lilt-chart][data-lilt-theme=dark]:not(:where([data-lilt-chart] *)),[data-theme=dark] [data-lilt-chart]:not(:where([data-lilt-chart] *)),.dark [data-lilt-chart]:not(:where([data-lilt-chart] *)){--lilt-surface:var(--card,#191919);--lilt-text:var(--card-foreground,#d9d9d8);--lilt-muted:var(--muted-foreground,#9b9b98);--lilt-grid:var(--border,#333331);--lilt-border:var(--border,#333331);--lilt-series-1:var(--chart-1,#8b6dff);--lilt-series-2:var(--chart-2,#14a99c);--lilt-series-3:var(--chart-3,#e5652f);--lilt-series-4:var(--chart-4,#3a86fa);--lilt-series-5:var(--chart-5,#e5559b);--lilt-series-6:#bb8300;--lilt-reference:#879a8c;--lilt-positive:#67d9af;--lilt-negative:#ec9a91;--lilt-sequential-1:#203d33;--lilt-sequential-2:#2e7056;--lilt-sequential-3:#4eac81;--lilt-sequential-4:#94dfb7;--lilt-area-fill-start:.3;--lilt-area-fill-end:.012;--lilt-focus:var(--ring,#8b6dff);--lilt-tooltip-muted:#3d403c;--lilt-tooltip-accent:#13745c;--lilt-tooltip-border:#0000001f;--lilt-tooltip-focus:#13745c;--lilt-tooltip-shadow:0 16px 40px #00000061, 0 3px 10px #00000038;--lilt-axis-active:#d9d9d8;--lilt-axis-active-text:#191919;--lilt-skeleton:#5e5d66;--lilt-skeleton-sheen:#c9c2e6;--lilt-skeleton-area-opacity:.065;--lilt-annotation:#edbd7b;--lilt-texture-opacity:.3;--lilt-texture-spot-opacity:.5;--lilt-card-raised:color-mix(in srgb, var(--lilt-surface) 93%, white);--lilt-card-edge:#ffffff12;--lilt-card-highlight:#ffffff12;--lilt-card-shadow:0 1px 2px #0000004d, 0 16px 40px -16px #000000b3}[data-lilt-chart] *,[data-lilt-chart] :before,[data-lilt-chart] :after{box-sizing:border-box}.lilt-chart__svg,.lilt-chart__inspection-svg{display:block;overflow:visible}.lilt-chart__svg{z-index:0;width:100%;height:var(--lilt-chart-height);color:var(--lilt-text);-webkit-user-select:none;user-select:none;position:relative}.lilt-chart__data-layer{transform-origin:50%}.lilt-chart__grid line{fill:none;stroke-width:var(--lilt-grid-width,1);vector-effect:non-scaling-stroke}.lilt-chart__bar-mark{stroke:var(--lilt-bar-stroke,none);stroke-width:var(--lilt-bar-stroke-width,0);vector-effect:non-scaling-stroke}.lilt-chart__area{pointer-events:none;transition:opacity .26s var(--lilt-ease-reveal)}.lilt-chart__line path{fill:none}.lilt-chart__isolated-point{vector-effect:non-scaling-stroke}.lilt-chart__axis{fill:var(--lilt-axis-color,var(--lilt-muted));font-size:var(--lilt-axis-size,12px);font-variant-numeric:tabular-nums;pointer-events:none;font-weight:400;line-height:16px}.lilt-chart__axis-label{transition:fill .15s}.lilt-number{font-variant-numeric:tabular-nums;display:inline-flex;position:relative}.lilt-number__characters{align-items:baseline;display:inline-flex}.lilt-number__slot{line-height:1.22;display:inline-grid;position:relative;overflow:clip}.lilt-number__slot>span{white-space:pre;grid-area:1/1}.lilt-number__slot[data-digit=true]{text-align:center;width:.58em}.lilt-chart__toolbar button{transition:color .15s,background .15s,transform .15s}.lilt-chart__toolbar button:active{transform:scale(.96)}@media (width<=560px){.lilt-chart__toolbar button,.lilt-chart__legend button{min-height:38px}}@media (prefers-reduced-motion:reduce){.lilt-chart__toolbar button,.lilt-chart__legend button{transition:none}}.lilt-chart__axis-baseline{stroke:var(--lilt-border);stroke-width:1px;vector-effect:non-scaling-stroke}.lilt-chart__skeleton-host,.lilt-chart__loading{z-index:1;width:100%;height:var(--lilt-chart-height);color:var(--lilt-muted);pointer-events:none;position:absolute;inset:0 auto auto 0}.lilt-chart__loading{opacity:var(--lilt-skeleton-opacity,1)}.lilt-chart__loading-svg{width:100%;height:100%;display:block;overflow:visible}.lilt-chart__skeleton-grid line{stroke:var(--lilt-grid);stroke-width:1px;opacity:.72;vector-effect:non-scaling-stroke}.lilt-chart__skeleton-area{fill:var(--lilt-skeleton);fill-opacity:var(--lilt-skeleton-area-opacity)}.lilt-chart__skeleton-contour{fill:none;stroke:var(--lilt-skeleton);stroke-width:2.5px;stroke-opacity:.5;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.lilt-chart__skeleton-axis-bars rect{fill:var(--lilt-skeleton);fill-opacity:.42}.lilt-chart__skeleton-sheen{pointer-events:none;animation:2.1s linear infinite lilt-chart-sheen}@keyframes lilt-chart-sheen{0%{transform:translateX(var(--lilt-sheen-start))}85.714%,to{transform:translateX(var(--lilt-sheen-end))}}@media (prefers-reduced-motion:reduce){.lilt-chart__skeleton-sheen{animation:none;display:none}}.lilt-chart__updating{z-index:2;border:1px solid color-mix(in srgb, var(--lilt-border) 88%, transparent);background:color-mix(in srgb, var(--lilt-surface) 94%, transparent);min-height:22px;color:var(--lilt-muted);border-radius:999px;align-items:center;gap:6px;padding:3px 8px;font-size:12px;line-height:16px;display:inline-flex;position:absolute;bottom:7px;left:50%;transform:translate(-50%)}.lilt-chart__inspection{z-index:3;width:100%;height:var(--lilt-chart-height);pointer-events:none;position:absolute;inset:0 auto auto 0}.lilt-chart__inspection-svg{width:100%;height:var(--lilt-chart-height);pointer-events:none;position:absolute;inset:0}.lilt-chart__inspection-marks{pointer-events:none}.lilt-chart__highlight{opacity:1;pointer-events:none}.lilt-chart__inspection-dot,.lilt-chart__inspection-halo{vector-effect:non-scaling-stroke}.lilt-chart__inspection-halo{fill:var(--lilt-series-1);fill-opacity:.1}.lilt-chart__crosshair{opacity:1}.lilt-chart__x-badge,.lilt-chart__y-badge{background:var(--lilt-axis-active);height:26px;color:var(--lilt-axis-active-text);font-variant-numeric:tabular-nums;white-space:nowrap;border-radius:8px;justify-content:center;align-items:center;width:auto;min-width:36px;height:24px;padding:0 8px;font-size:12px;font-weight:500;line-height:18px;transition:background .16s,color .16s;display:flex;position:absolute;box-shadow:0 2px 8px #172f201a}[data-lilt-pill=soft] .lilt-chart__x-badge,[data-lilt-pill=soft] .lilt-chart__y-badge{background:color-mix(in srgb, var(--lilt-surface) 88%, var(--lilt-text));box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--lilt-border) 80%, transparent), 0 4px 14px #00000014;color:var(--lilt-text);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}[data-lilt-pill=accent] .lilt-chart__x-badge,[data-lilt-pill=accent] .lilt-chart__y-badge{--lilt-pill-tint:var(--lilt-pill-accent,var(--lilt-series-1));background:color-mix(in srgb, var(--lilt-pill-tint) 14%, color-mix(in srgb, var(--lilt-surface) 90%, var(--lilt-text)));box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--lilt-pill-tint) 38%, transparent), 0 4px 14px #00000014;color:color-mix(in srgb, var(--lilt-pill-tint) 62%, var(--lilt-text));-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.lilt-chart__pin{z-index:5;background:color-mix(in srgb, var(--lilt-surface) 88%, var(--lilt-text));width:24px;height:24px;box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--lilt-border) 80%, transparent), 0 4px 14px #0000001a;color:var(--lilt-text);cursor:pointer;pointer-events:auto;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:0;border-radius:999px;place-items:center;padding:0;transition:background .16s,color .16s;display:grid;position:absolute}.lilt-chart__pin:hover{background:color-mix(in srgb, var(--lilt-surface) 80%, var(--lilt-text))}.lilt-chart__pin:focus-visible{outline:2px solid var(--lilt-focus);outline-offset:2px}[data-lilt-pill=solid] .lilt-chart__pin{background:var(--lilt-axis-active);color:var(--lilt-axis-active-text);box-shadow:0 2px 8px #00000029}[data-lilt-pill=accent] .lilt-chart__pin{background:color-mix(in srgb, var(--lilt-series-1) 14%, color-mix(in srgb, var(--lilt-surface) 90%, var(--lilt-text)));box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--lilt-series-1) 38%, transparent), 0 4px 14px #00000014;color:color-mix(in srgb, var(--lilt-series-1) 62%, var(--lilt-text))}.lilt-chart__pin-glyph{grid-area:1/1;width:13px;height:13px;transition:opacity .16s,transform .2s cubic-bezier(.22,1,.36,1)}.lilt-chart__pin-glyph--release{opacity:0;transform:scale(.8)}.lilt-chart__pin:is(:hover,:focus-visible) .lilt-chart__pin-glyph:not(.lilt-chart__pin-glyph--release){opacity:0;transform:scale(.8)rotate(-12deg)}.lilt-chart__pin:is(:hover,:focus-visible) .lilt-chart__pin-glyph--release{opacity:1;transform:none}.lilt-chart__pill-dot{border-radius:2.5px;flex:0 0 7px;width:7px;height:7px;margin-right:6px;transition:background .16s}[data-lilt-pill=accent] .lilt-chart__pill-dot{display:none}.lilt-chart__ruler-tick{stroke:var(--lilt-text);stroke-width:1px;stroke-linecap:butt}.lilt-chart__ruler-dot{fill:var(--lilt-text)}.lilt-chart__tooltip{z-index:6;pointer-events:none;width:var(--lilt-panel-width,188px);min-width:160px;max-width:calc(100% - 16px);color:var(--lilt-tooltip-text);font-size:12px;line-height:18px;position:absolute}.lilt-chart__tooltip[data-pinned=true]{pointer-events:auto}.lilt-chart__tooltip-panel{z-index:1;padding:var(--lilt-tooltip-padding,11px 12px 12px);border:1px solid var(--lilt-tooltip-border,var(--lilt-border));border-radius:var(--lilt-tooltip-radius,12px);background:var(--lilt-tooltip-bg);box-shadow:var(--lilt-tooltip-shadow);position:relative}.lilt-chart__tooltip:is([data-variant=soft],[data-variant=accent]){--lilt-tooltip-glass:color-mix(in srgb, var(--lilt-surface) 94%, var(--lilt-text));--lilt-tooltip-bg:var(--lilt-tooltip-glass);--lilt-tooltip-text:var(--lilt-text);--lilt-tooltip-muted:var(--lilt-muted);--lilt-tooltip-border:color-mix(in srgb, var(--lilt-text) 11%, transparent);--lilt-tooltip-focus:var(--lilt-focus);--lilt-tooltip-shadow:0 1px 2px #0000000f, 0 14px 34px -10px #00000047}.lilt-chart__tooltip[data-variant=accent]{--lilt-tooltip-bg:color-mix(in srgb, var(--lilt-tooltip-series) 7%, var(--lilt-tooltip-glass));--lilt-tooltip-border:color-mix(in srgb, var(--lilt-tooltip-series) 30%, transparent);--lilt-tooltip-focus:var(--lilt-tooltip-series)}.lilt-chart__tooltip[data-variant=accent] .lilt-chart__tooltip-title{color:color-mix(in srgb, var(--lilt-tooltip-series) 62%, var(--lilt-text))}.lilt-chart__tooltip-title{color:var(--lilt-tooltip-muted);justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;font-weight:500;display:flex}.lilt-chart__tooltip-row{white-space:nowrap;flex-wrap:wrap;align-items:center;gap:7px;margin-top:7px;display:flex}.lilt-chart__tooltip-row strong{transition:color .15s}.lilt-chart__tooltip-row[data-muted] strong{color:var(--lilt-tooltip-muted)}.lilt-chart__tooltip-row[data-active] .lilt-chart__tooltip-label{color:var(--lilt-tooltip-text)}.lilt-chart__tooltip-row strong{font-variant-numeric:tabular-nums;margin-left:auto;font-size:13px;font-weight:500;display:flex}.lilt-chart__tooltip-swatch{border-radius:3px;flex:0 0 10px;width:10px;height:10px}.lilt-chart__tooltip[data-indicator=dot] .lilt-chart__tooltip-swatch{border-radius:50%;flex-basis:8px;width:8px;height:8px;margin-inline:1px}.lilt-chart__tooltip[data-indicator=line] .lilt-chart__tooltip-swatch{border-radius:2px;flex-basis:3px;width:3px;height:14px;margin-inline:3.5px}.lilt-chart__tooltip-label{color:var(--lilt-tooltip-muted)}.lilt-chart__tooltip-status{color:var(--lilt-tooltip-muted);text-transform:capitalize;font-size:10px}.lilt-chart__tooltip-interval{color:var(--lilt-tooltip-muted);white-space:normal;flex-basis:100%;padding-left:23px;font-size:10px}.lilt-chart__tooltip-custom{border-top:1px solid var(--lilt-tooltip-border);color:var(--lilt-tooltip-muted);overflow-wrap:anywhere;margin-top:8px;padding-top:7px;font-size:11px;line-height:1.4}.lilt-chart__tooltip-custom :is(button,a):focus-visible{outline:2px solid var(--lilt-tooltip-focus);outline-offset:2px}.lilt-chart__tooltip-pin-status{color:inherit;flex:none;align-items:center;gap:4px;font-size:10px;font-weight:500;line-height:14px;display:inline-flex}.lilt-chart__tooltip-pin-icon{width:12px;height:12px;color:inherit;flex:0 0 12px;justify-content:center;align-items:center;display:inline-flex}.lilt-chart__tooltip-pin-icon svg{width:100%;height:100%}.lilt-chart__tooltip-actions{border-top:1px solid var(--lilt-tooltip-border);gap:6px;margin-top:10px;padding-top:10px;display:flex}.lilt-chart__tooltip-actions button{border:1px solid var(--lilt-tooltip-border);min-height:26px;color:var(--lilt-tooltip-text);font:inherit;cursor:pointer;background:0 0;border-radius:7px;flex:auto;padding:3px 8px;font-size:11px;font-weight:500}.lilt-chart__tooltip-actions button:hover{background:color-mix(in srgb, var(--lilt-tooltip-text) 7%, transparent)}.lilt-chart__tooltip-actions button:focus-visible{outline:2px solid var(--lilt-tooltip-focus);outline-offset:2px}.lilt-chart__compare-from-pin{border:1px solid var(--lilt-tooltip-border);width:100%;min-height:28px;color:var(--lilt-tooltip-text);font:inherit;cursor:pointer;background:0 0;border-radius:6px;margin-top:10px;padding:3px 7px;font-size:11px}.lilt-chart__compare-from-pin:focus-visible{outline:2px solid var(--lilt-tooltip-focus);outline-offset:2px}.lilt-chart__legend-show-all{min-height:30px;color:var(--lilt-text);font:inherit;cursor:pointer;background:0 0;border-radius:6px;padding:4px 8px;font-size:11px;border:1px solid var(--lilt-border)!important}.lilt-bounded-text{vertical-align:bottom;min-width:0;display:inline-grid;position:relative;overflow:hidden}.lilt-bounded-text__visible,.lilt-bounded-text__outgoing{white-space:nowrap;grid-area:1/1;display:inline-flex}.lilt-bounded-text__visible{z-index:1;animation:lilt-bounded-in var(--lilt-text-duration,.16s) var(--lilt-ease-reveal) both;position:relative}.lilt-bounded-text__outgoing{z-index:0;opacity:.72;animation:lilt-bounded-out min(.12s, var(--lilt-text-duration,.16s)) ease-out both}@keyframes lilt-bounded-in{0%{opacity:0;transform:translateY(var(--lilt-text-offset,4px))}to{opacity:1;transform:translateY(0)}}@keyframes lilt-bounded-out{0%{opacity:.72;transform:translateY(0)}to{opacity:0;transform:translateY(calc(var(--lilt-text-offset,4px) * -1))}}.lilt-chart__live-control,.lilt-chart__comparison button,.lilt-chart__overview button{border:1px solid var(--lilt-border);background:color-mix(in srgb, var(--lilt-surface) 94%, transparent);color:var(--lilt-text);font:inherit;cursor:pointer;border-radius:7px}.lilt-chart__comparison,.lilt-chart__comparison-svg{z-index:4;width:100%;height:var(--lilt-chart-height);pointer-events:none;position:absolute;inset:0 auto auto 0}.lilt-chart__comparison-anchor{stroke:var(--lilt-series-1);stroke-width:1px;stroke-opacity:.52;vector-effect:non-scaling-stroke}.lilt-chart__comparison-dot{stroke:var(--lilt-surface);stroke-width:2px;vector-effect:non-scaling-stroke}.lilt-chart__comparison-tooltip{z-index:7;box-sizing:border-box;overscroll-behavior:contain;scrollbar-width:thin;border:1px solid var(--lilt-tooltip-border);border-radius:var(--lilt-tooltip-radius,10px);background:var(--lilt-tooltip-bg);width:280px;color:var(--lilt-tooltip-text);box-shadow:var(--lilt-tooltip-shadow);pointer-events:auto;--lilt-comparison-text:var(--lilt-tooltip-text);--lilt-comparison-muted:var(--lilt-tooltip-muted);--lilt-comparison-border:var(--lilt-tooltip-border);--lilt-comparison-accent:var(--lilt-tooltip-accent);padding:10px 14px 8px;position:absolute;overflow:auto}.lilt-comparison-details{min-width:0;color:var(--lilt-comparison-text,var(--lilt-text));font-variant-numeric:tabular-nums;font-size:12px;line-height:1.5}.lilt-comparison-details__heading{min-width:0;color:var(--lilt-comparison-muted,var(--lilt-muted));justify-content:space-between;align-items:center;gap:10px;padding-bottom:8px;display:flex}.lilt-comparison-details button{color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;border-radius:4px;justify-content:center;align-items:center;display:inline-flex}.lilt-comparison-details button:hover{color:var(--lilt-comparison-text,var(--lilt-text));background:color-mix(in srgb, currentColor 7%, transparent)}.lilt-comparison-details button:focus-visible{outline:2px solid var(--lilt-comparison-accent,var(--lilt-focus));outline-offset:2px}.lilt-comparison-details__close{flex:0 0 28px;width:28px;height:28px;margin:-3px -6px -3px 0;padding:6px}.lilt-comparison-details__close svg,.lilt-comparison-details__focus svg{flex-shrink:0;width:14px;height:14px}.lilt-comparison-details__row{border-top:1px solid var(--lilt-comparison-border,var(--lilt-border));padding:12px 0}.lilt-comparison-details__name{color:var(--lilt-comparison-muted,var(--lilt-muted));overflow-wrap:anywhere;align-items:center;gap:6px;margin-bottom:6px;display:flex}.lilt-comparison-details__swatch{border-radius:3px;flex:0 0 10px;width:10px;height:10px}.lilt-comparison-details__stat{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:6px 12px;min-width:0;display:flex}.lilt-comparison-details__stat>strong{letter-spacing:-.04em;min-width:0;max-width:100%;font-size:23px;font-weight:550;line-height:1.2}.lilt-comparison-details__change{justify-items:end;margin-left:auto;line-height:1.4;display:grid}.lilt-comparison-details__change>span{align-items:center;gap:3px;font-weight:550;display:inline-flex}.lilt-comparison-details__change svg{width:14px;height:14px;color:var(--lilt-comparison-accent,var(--lilt-positive));flex:0 0 14px}.lilt-comparison-details__change small,.lilt-comparison-details__from{color:var(--lilt-comparison-muted,var(--lilt-muted));font-size:11px}.lilt-comparison-details__from{margin-top:-2px}.lilt-comparison-details .lilt-comparison-details__focus{border-top:1px solid var(--lilt-comparison-border,var(--lilt-border));width:100%;min-height:32px;color:var(--lilt-comparison-muted,var(--lilt-muted));text-align:left;border-radius:0;justify-content:space-between;gap:10px;padding:8px 0 2px}.lilt-comparison-details .lilt-bounded-text{max-width:100%}.lilt-comparison-details .lilt-bounded-text__visible,.lilt-comparison-details .lilt-bounded-text__outgoing{white-space:normal;overflow-wrap:anywhere}.lilt-chart__comparison-handle{z-index:5;cursor:ew-resize;pointer-events:auto;touch-action:none;width:34px;position:absolute}.lilt-chart__comparison-handle-knob{border:1px solid var(--lilt-surface);background:var(--lilt-series-1);width:8px;height:8px;box-shadow:0 0 0 1px var(--lilt-series-1);opacity:.8;transition:opacity var(--lilt-duration-quick), transform var(--lilt-duration-quick), box-shadow var(--lilt-duration-quick);border-radius:50%;position:absolute;top:-4px;left:13px}.lilt-chart__comparison-handle:hover .lilt-chart__comparison-handle-knob,.lilt-chart__comparison-handle:focus-visible .lilt-chart__comparison-handle-knob{opacity:1;transform:scale(1.25)}.lilt-chart__comparison-handle:focus-visible{outline:none}.lilt-chart__comparison-handle:focus-visible .lilt-chart__comparison-handle-knob{box-shadow:0 0 0 3px var(--lilt-surface), 0 0 0 5px var(--lilt-focus)}.lilt-chart__adaptive-readout{z-index:2;border:1px solid var(--lilt-border);background:var(--lilt-surface);color:var(--lilt-text);border-radius:9px;gap:7px;min-width:0;margin:2px 8px 8px;padding:10px 12px;font-size:12px;line-height:1.5;display:grid;position:relative}.lilt-chart__adaptive-heading,.lilt-chart__adaptive-value{align-items:baseline;gap:7px;min-width:0;display:flex}.lilt-chart__adaptive-heading{color:var(--lilt-muted);flex-wrap:wrap;justify-content:space-between;font-weight:600}.lilt-chart__adaptive-heading>span,.lilt-chart__adaptive-value>span:not(.lilt-chart__adaptive-swatch){overflow-wrap:anywhere;min-width:0}.lilt-chart__adaptive-readout .lilt-bounded-text,.lilt-chart__adaptive-value strong{max-width:100%}.lilt-chart__adaptive-readout .lilt-bounded-text__visible,.lilt-chart__adaptive-readout .lilt-bounded-text__outgoing{white-space:normal;overflow-wrap:anywhere}.lilt-chart__adaptive-values{gap:4px;display:grid}.lilt-chart__adaptive-value{flex-wrap:wrap}.lilt-chart__adaptive-value strong{font-variant-numeric:tabular-nums;margin-left:auto;font-weight:600}.lilt-chart__adaptive-swatch{border-radius:3px;flex:none;width:9px;height:9px}.lilt-chart__adaptive-total{border-top:1px solid var(--lilt-border);padding-top:4px}.lilt-chart__adaptive-readout small,.lilt-chart__adaptive-missing{color:var(--lilt-muted)}.lilt-chart__adaptive-custom{border-top:1px solid var(--lilt-border);overflow-wrap:anywhere;min-width:0;padding-top:7px}.lilt-chart__adaptive-actions{flex-wrap:wrap;gap:5px;margin-top:3px;display:flex}.lilt-chart__adaptive-readout button{border:1px solid var(--lilt-border);min-height:28px;color:var(--lilt-text);font:inherit;cursor:pointer;background:0 0;border-radius:6px;padding:3px 7px}.lilt-chart__adaptive-readout button:focus-visible{outline:2px solid var(--lilt-focus);outline-offset:2px}.lilt-chart__live-control,.lilt-chart__live-badge{z-index:6;min-height:26px;padding:3px 8px;font-size:11px;line-height:18px;position:absolute;bottom:7px;right:8px}.lilt-chart__live-badge{color:var(--lilt-series-1)}.lilt-chart__live-badge:before{content:"";background:currentColor;border-radius:50%;width:6px;height:6px;margin-right:6px;display:inline-block}.lilt-chart[data-lilt-legend=true] .lilt-chart__live-control,.lilt-chart[data-lilt-legend=true] .lilt-chart__live-badge{top:44px;bottom:auto}.lilt-chart__overview{top:calc(var(--lilt-chart-height) + 5px);width:100%;color:var(--lilt-muted);grid-template-columns:auto minmax(80px,1fr) auto;align-items:center;gap:8px;font-size:10px;display:grid;position:absolute;left:0}.lilt-chart__overview svg{border:1px solid var(--lilt-border);border-radius:6px;min-width:0;overflow:hidden}.lilt-chart__overview-line{stroke:var(--lilt-muted);stroke-width:8px;opacity:.45;vector-effect:non-scaling-stroke}.lilt-chart__overview-window{fill:var(--lilt-series-1);fill-opacity:.08;stroke:var(--lilt-series-1);stroke-opacity:.55}.lilt-chart__overview button{white-space:nowrap;min-height:28px;padding:3px 8px}.lilt-chart[data-lilt-focused=true]{height:calc(var(--lilt-chart-height) + 42px)}.lilt-chart__annotation{cursor:pointer;outline:none}.lilt-chart__annotation:has(.lilt-chart__annotation-trigger:focus-visible) circle{stroke:var(--lilt-focus);stroke-width:5px;stroke-opacity:.25}.lilt-chart__annotation-trigger{cursor:pointer;background:0 0;border:0;border-radius:50%;width:20px;height:20px;padding:0}.lilt-chart__annotation-label-bg{fill:var(--lilt-surface);stroke:var(--lilt-border)}.lilt-chart__annotation-label,.lilt-chart__annotation-description,.lilt-chart__reference-band-label,.lilt-chart__previous-snapshot-label{fill:var(--lilt-text);font-size:11px}.lilt-chart__annotation-description{fill:var(--lilt-muted);font-size:10px}.lilt-chart__reference-band-label{fill:var(--lilt-muted)}.lilt-chart__reference-line{pointer-events:none}.lilt-chart__reference-line line{stroke:currentColor;stroke-width:1.25px;stroke-dasharray:5 4;opacity:.85}.lilt-chart__reference-line text{fill:currentColor;font-variant-numeric:tabular-nums;paint-order:stroke;stroke:var(--lilt-surface);stroke-width:3px;stroke-linejoin:round;font-size:11px;font-weight:600}.lilt-chart__previous-snapshot{stroke-width:1.5px;stroke-dasharray:4 4;opacity:.42}.lilt-chart__difference{fill:var(--lilt-series-1);fill-opacity:.055}.lilt-chart__previous-snapshot-label{fill:var(--lilt-muted)}.lilt-chart__status{z-index:5;border:1px solid var(--lilt-border);background:var(--lilt-surface);min-width:min(240px,100% - 32px);color:var(--lilt-muted);text-align:center;border-radius:10px;flex-direction:column;align-items:center;gap:8px;padding:12px 14px;display:inline-flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.lilt-chart__status--error,.lilt-chart__status--refresh-error{border-color:color-mix(in srgb, var(--lilt-series-3) 55%, var(--lilt-border))}.lilt-chart__status button{border:1px solid var(--lilt-border);background:var(--lilt-surface);min-height:30px;color:var(--lilt-text);font:inherit;cursor:pointer;border-radius:7px;padding:4px 10px}@media (width<=419px){[data-lilt-chart]{height:auto}.lilt-chart__toolbar{flex-wrap:wrap;align-content:center;min-height:40px}.lilt-chart__toolbar-tools,.lilt-chart__toolbar-actions{width:auto}.lilt-chart__toolbar-actions{margin-left:auto}.lilt-chart__inspection,.lilt-chart__inspection-svg,.lilt-chart__skeleton-host,.lilt-chart__loading,.lilt-chart__svg{height:var(--lilt-chart-height)}.lilt-chart__tooltip:not([data-adaptive=false]){width:calc(100% - 16px);max-width:none;top:calc(var(--lilt-chart-height) + 8px)!important;left:8px!important}}@media (prefers-reduced-motion:reduce){[data-lilt-chart] *,[data-lilt-chart] :before,[data-lilt-chart] :after{transition-duration:1ms!important;animation-duration:1ms!important}}[data-lilt-chart] .lilt-chart__overview,[data-lilt-chart] .lilt-chart__legend{width:100%;position:static}[data-lilt-chart] .lilt-chart__overview{margin:2px 0 8px;display:block}[data-lilt-chart] .lilt-chart__legend{display:flex}.lilt-radial-progress{aspect-ratio:1;width:min(100%,220px);color:var(--lilt-text);margin-inline:auto;position:relative}.lilt-radial-progress:focus-visible{outline:2px solid var(--lilt-focus);outline-offset:4px;border-radius:50%}.lilt-radial-progress>svg{width:100%;height:100%;display:block}.lilt-radial__svg{width:100%;height:100%;display:block;overflow:visible}.lilt-radial__svg path{cursor:pointer;transition:opacity var(--lilt-duration-quick) ease-out}.lilt-chart__brush-host{margin:12px 0 4px}.lilt-chart__brush{color:var(--lilt-muted);gap:7px;font-size:11px;display:grid}.lilt-chart__brush-header{justify-content:space-between;align-items:center;gap:12px;min-height:28px;display:flex}.lilt-chart__brush-title{color:var(--lilt-text);font-weight:600}.lilt-chart__brush-meta{align-items:center;gap:10px;min-width:0;display:flex}.lilt-chart__brush-summary{white-space:nowrap;font-variant-numeric:tabular-nums}.lilt-chart__brush-reset{min-height:28px;color:var(--lilt-series-1);font:inherit;cursor:pointer;transition:background var(--lilt-duration-quick) ease;background:0 0;border:0;border-radius:4px;padding:3px 6px;font-weight:600}.lilt-chart__brush-reset:hover{background:color-mix(in srgb, var(--lilt-series-1) 9%, transparent)}.lilt-chart__brush-reset:focus-visible{outline:2px solid var(--lilt-focus);outline-offset:2px}.lilt-chart__brush-track{height:var(--lilt-brush-height,78px);border:1px solid var(--lilt-border);border-radius:var(--lilt-brush-radius,6px);background:var(--lilt-brush-background,color-mix(in srgb, var(--lilt-border) 6%, var(--lilt-surface)));cursor:crosshair;touch-action:pan-y;transition:border-color var(--lilt-duration-quick) ease;position:relative;overflow:hidden}.lilt-chart__brush-track:before{inset:0 0 calc(var(--lilt-brush-handle-size,20px) - 2px);background-image:radial-gradient(circle, var(--lilt-brush-grid-color,color-mix(in srgb, var(--lilt-grid) 85%, var(--lilt-muted))) var(--lilt-brush-dot-radius,.7px), transparent var(--lilt-brush-dot-stop,1px));background-size:var(--lilt-brush-dot-spacing,9px) var(--lilt-brush-dot-spacing,9px);content:"";opacity:var(--lilt-brush-grid-opacity,.58);pointer-events:none;position:absolute}.lilt-chart__brush-track:hover,.lilt-chart__brush-track:focus-within{border-color:color-mix(in srgb, var(--lilt-series-1) 43%, var(--lilt-border))}.lilt-chart__brush-rail{position:absolute;inset:0 13px}.lilt-chart__brush-rail:after{right:0;bottom:calc(var(--lilt-brush-handle-size,20px) / 2 - var(--lilt-brush-rail-height,4px) / 2);height:var(--lilt-brush-rail-height,4px);background:var(--lilt-brush-rail-color,color-mix(in srgb, var(--lilt-muted) 22%, var(--lilt-surface)));content:"";pointer-events:none;border-radius:99px;position:absolute;left:0}.lilt-chart__brush-rail svg{pointer-events:none;width:100%;height:56px;display:block;position:absolute;inset:0 0 auto}.lilt-chart__brush-area{fill:var(--lilt-muted);opacity:.055}.lilt-chart__brush-area--active{opacity:1}.lilt-chart__brush-line path{fill:none;stroke:var(--lilt-muted);stroke-width:1.4px;stroke-linecap:round;stroke-linejoin:round;opacity:.68;vector-effect:non-scaling-stroke}.lilt-chart__brush-line--active path{stroke:var(--lilt-series-1);stroke-width:2px;opacity:1}.lilt-chart__brush-line circle{fill:var(--lilt-muted);opacity:.68}.lilt-chart__brush-line--active circle{fill:var(--lilt-series-1);opacity:1}.lilt-chart__brush-bars rect{fill:var(--lilt-muted);opacity:.55}.lilt-chart__brush-bars--active rect{fill:var(--lilt-series-1);opacity:.95}.lilt-chart__brush-selection{top:0;bottom:calc(var(--lilt-brush-handle-size,20px) - 2px);background:linear-gradient(180deg, color-mix(in srgb, var(--lilt-series-1) 3%, transparent), color-mix(in srgb, var(--lilt-series-1) 9%, transparent));cursor:grab;filter:blur(var(--lilt-brush-selection-blur,8px));position:absolute}.lilt-chart__brush-track[data-dragging] .lilt-chart__brush-selection{cursor:grabbing}.lilt-chart__brush-range-track{z-index:1;bottom:calc(var(--lilt-brush-handle-size,20px) / 2 - var(--lilt-brush-rail-height,4px) / 2);height:var(--lilt-brush-rail-height,4px);background:var(--lilt-series-1);box-shadow:0 0 10px color-mix(in srgb, var(--lilt-series-1) 28%, transparent);pointer-events:none;border-radius:99px;position:absolute}.lilt-chart__brush-handle{z-index:2;width:var(--lilt-brush-handle-size,20px);height:var(--lilt-brush-handle-size,20px);border:var(--lilt-brush-handle-border,2px solid var(--lilt-series-1));background:var(--lilt-brush-handle-background,var(--lilt-surface));cursor:ew-resize;touch-action:pan-y;transition:border-color var(--lilt-duration-quick) ease, box-shadow var(--lilt-duration-quick) ease, transform var(--lilt-duration-quick) var(--lilt-ease-reveal);border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;bottom:0;transform:translate(-50%);box-shadow:0 1px 5px #00000026}.lilt-chart__brush-handle:hover,.lilt-chart__brush-handle:focus-visible{border-color:var(--lilt-series-1);box-shadow:0 2px 8px #00000029, 0 0 0 3px color-mix(in srgb, var(--lilt-series-1) 12%, transparent);transform:translate(-50%)scale(1.08)}.lilt-chart__brush-handle:focus-visible{outline:2px solid var(--lilt-focus);outline-offset:3px}.lilt-chart__brush-tooltip-anchor{bottom:calc(var(--lilt-brush-handle-size,20px) + 8px);white-space:nowrap;pointer-events:none;display:block;position:absolute;left:50%;transform:translate(-50%)}.lilt-chart__brush-handle[data-edge=start] .lilt-chart__brush-tooltip-anchor{left:0;transform:none}.lilt-chart__brush-handle[data-edge=end] .lilt-chart__brush-tooltip-anchor{left:auto;right:0;transform:none}.lilt-chart__brush-tooltip{border:1px solid var(--lilt-border);background:var(--lilt-surface);color:var(--lilt-text);font-variant-numeric:tabular-nums;border-radius:5px;padding:4px 7px;font-size:10px;line-height:14px;display:block;box-shadow:0 3px 12px #0000001f}.lilt-chart__brush-endpoints{color:var(--lilt-muted);font-variant-numeric:tabular-nums;justify-content:space-between;gap:12px;padding-inline:13px;font-size:10px;display:flex}@media (prefers-reduced-motion:reduce){.lilt-chart__brush-track,.lilt-chart__brush-reset,.lilt-chart__brush-handle,.lilt-chart__brush-selection{transition:none}}.lilt-range-summary{border-top:1px solid var(--lilt-border);padding:16px 0}.lilt-range-summary dl{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0;display:grid}.lilt-range-summary dt,.lilt-range-summary__count{color:var(--lilt-muted);font-size:11px}.lilt-range-summary dd{font-variant-numeric:tabular-nums;margin:5px 0 0;font-size:17px;font-weight:500}.lilt-range-summary__count{margin-top:12px;display:block}@media (width<=480px){.lilt-range-summary dl{grid-template-columns:repeat(2,minmax(0,1fr))}}.lilt-scatter__svg,.lilt-sankey__svg,.lilt-radar__svg{touch-action:pan-y;max-width:100%;display:block;overflow:visible}.lilt-scatter__svg:focus-visible,.lilt-sankey__svg:focus-visible,.lilt-radar__svg:focus-visible{outline:2px solid var(--lilt-focus);outline-offset:2px;border-radius:4px}.lilt-radar__svg [data-axis-active]{stroke:var(--lilt-series-1);stroke-width:1.5px}.lilt-activity{width:fit-content;max-width:100%;color:var(--lilt-text);font:inherit;flex-direction:column;align-items:center;display:inline-flex;position:relative}.lilt-activity__plot{flex:none;max-width:100%;position:relative}.lilt-activity__plot svg{outline:none;max-width:100%;display:block}.lilt-activity__plot [data-hour]{cursor:pointer}.lilt-activity__plot [data-hour] circle{transition:r .14s,opacity .14s}.lilt-activity__center{text-align:center;justify-items:center;gap:2px;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.lilt-activity__center strong{font-variant-numeric:tabular-nums;font-size:24px;font-weight:600;line-height:1.1}.lilt-activity__center span{color:var(--lilt-muted);font-size:11px}@media (prefers-reduced-motion:reduce){.lilt-activity__plot [data-hour] circle{transition:none}}.lilt-activity[data-motion=none] .lilt-activity__plot [data-hour] circle{transition:none}.lilt-chart__legend[data-variant=cards]{grid-template-columns:repeat(auto-fit,minmax(min(100%,132px),1fr));gap:8px;width:100%;display:grid}.lilt-chart__legend[data-variant=inline]{gap:4px 14px;width:auto;display:inline-flex}.lilt-chart__legend-item{min-width:0;max-width:none}.lilt-chart__legend[data-variant=cards] .lilt-chart__legend-item{background:color-mix(in srgb, var(--lilt-legend-card,var(--lilt-text)) 5%, var(--lilt-surface));border:1px solid color-mix(in srgb, var(--lilt-border) 42%, transparent);border-radius:11px}.lilt-chart__legend[data-variant=cards] .lilt-chart__legend-toggle,.lilt-chart__legend[data-variant=cards] .lilt-chart__legend-static{gap:5px;width:100%;min-height:65px;padding:10px 12px;display:grid}.lilt-chart__legend-name{min-width:0;color:var(--lilt-muted);align-items:center;gap:8px;display:inline-flex}.lilt-chart__legend-swatch{background:var(--lilt-legend-color);border-radius:3px;flex:0 0 11px;width:11px;height:11px;display:inline-block}.lilt-chart__legend[data-variant=inline] .lilt-chart__legend-swatch{border-radius:2.5px;flex-basis:8px;width:8px;height:8px}.lilt-chart__legend[data-variant=cards] .lilt-chart__legend-value{text-align:left;margin:0;font-size:16px;font-weight:650;line-height:1.2}.lilt-chart__legend-inline-value{color:var(--lilt-text);font-variant-numeric:tabular-nums}.lilt-chart__legend-item[data-active]{box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--lilt-legend-color) 54%, transparent)}.lilt-chart__legend-item[data-visible=false]{opacity:.48}.lilt-chart__legend-item[data-pinned]{box-shadow:inset 0 0 0 1.5px var(--lilt-legend-color)}.lilt-card{padding:var(--lilt-card-padding,20px);border:1px solid var(--lilt-card-border,var(--lilt-border));border-radius:var(--lilt-card-radius,16px);background:var(--lilt-card-background,var(--lilt-surface));color:var(--lilt-text);flex-direction:column;gap:16px;min-width:0;display:flex}.lilt-card__header{justify-content:space-between;align-items:flex-start;gap:12px;min-width:0;display:flex}.lilt-card__heading{gap:4px;min-width:0;display:grid}.lilt-card__aside{flex-shrink:0;align-items:center;gap:8px;display:flex}.lilt-card__title{color:var(--lilt-muted);margin:0;font-size:13px;font-weight:500;line-height:18px}.lilt-card__value-row{flex-wrap:nowrap;align-items:center;gap:10px;min-width:0;min-height:34px;display:flex}.lilt-card__value-row>*{flex-shrink:0}.lilt-card__value{letter-spacing:-.025em;font-variant-numeric:tabular-nums;font-size:28px;font-weight:600;line-height:34px}.lilt-card__skeleton{background:color-mix(in srgb, var(--lilt-skeleton) 40%, transparent);border-radius:8px;width:120px;height:26px;display:block}.lilt-card__delta{font-variant-numeric:tabular-nums;height:22px;color:var(--lilt-muted);background:color-mix(in srgb, var(--lilt-muted) 14%, transparent);border-radius:7px;align-items:center;padding:0 7px;font-size:12px;font-weight:600;display:inline-flex}.lilt-card__delta[data-tone=positive]{color:var(--lilt-positive);background:color-mix(in srgb, var(--lilt-positive) 15%, transparent)}.lilt-card__delta[data-tone=negative]{color:var(--lilt-negative);background:color-mix(in srgb, var(--lilt-negative) 15%, transparent)}.lilt-card__value-row>.lilt-card__caption{flex-shrink:1}.lilt-card__caption{min-width:0;color:var(--lilt-muted);text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:500;overflow:hidden}.lilt-card__range{border:1px solid var(--lilt-border);height:30px;color:var(--lilt-text);white-space:nowrap;border-radius:9px;align-items:center;padding:0 10px;font-size:12px;font-weight:500;display:inline-flex;position:relative}.lilt-card__range--select{padding:0}.lilt-card__range select{appearance:none;border-radius:inherit;height:100%;color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;padding:0 28px 0 10px}.lilt-card__range select:focus-visible{outline:2px solid var(--lilt-focus);outline-offset:2px}.lilt-card__range svg{pointer-events:none;color:var(--lilt-muted);position:absolute;right:10px}.lilt-card__chart{width:auto;margin:0 -4px}.lilt-card__tiles.lilt-chart__legend[data-variant=cards]{grid-template-columns:repeat(auto-fit,minmax(min(100%,88px),1fr))}.lilt-card__tiles .lilt-chart__legend-toggle{cursor:default}.lilt-card__skeleton--tile{vertical-align:middle;border-radius:5px;width:64px;height:16px;display:inline-block}.lilt-card__action{border:1px solid var(--lilt-border);height:30px;color:var(--lilt-text);font:inherit;cursor:pointer;background:0 0;border-radius:9px;padding:0 10px;font-size:12px;font-weight:500}.lilt-card__action:hover{background:color-mix(in srgb, var(--lilt-text) 6%, transparent)}.lilt-card__action:focus-visible{outline:2px solid var(--lilt-focus);outline-offset:2px}.lilt-card[data-surface=elevated]{border-color:var(--lilt-card-edge);background:var(--lilt-card-raised);box-shadow:inset 0 1px 0 var(--lilt-card-highlight), var(--lilt-card-shadow)}.lilt-card[data-surface=outline]{background:0 0}.lilt-card[data-surface=ghost]{--lilt-card-padding:0px;box-shadow:none;background:0 0;border-color:#0000}.lilt-card__chart.lilt-card__chart--bleed{margin-inline:calc(var(--lilt-card-padding,20px) * -1)}.lilt-card-frame{isolation:isolate;grid-template-rows:auto 1fr;display:grid}.lilt-card-frame>.lilt-card{z-index:1;margin-top:-12px;position:relative}.lilt-card-badge{border:1px solid color-mix(in srgb, var(--lilt-text) 10%, transparent);background:linear-gradient(145deg, color-mix(in srgb, var(--lilt-text) 8%, transparent), color-mix(in srgb, var(--lilt-text) 4%, transparent));width:auto;min-width:0;min-height:56px;box-shadow:inset 0 1px 0 color-mix(in srgb, var(--lilt-text) 4%, transparent);color:var(--lilt-text);-webkit-backdrop-filter:blur(12px)saturate(1.15);backdrop-filter:blur(12px)saturate(1.15);border-radius:16px 16px 0 0;justify-content:space-between;align-items:center;gap:12px;margin-inline:14px;padding:6px 8px 18px 14px;font-size:13px;font-weight:500;line-height:20px;display:flex}.lilt-card-badge__hint{color:var(--lilt-muted)}.lilt-card-badge__comparison{align-items:center;gap:8px;min-width:0;display:flex}.lilt-card-badge__range{min-width:0;color:var(--lilt-muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.lilt-card-badge__change{font-variant-numeric:tabular-nums;white-space:nowrap;flex:none;font-weight:600}.lilt-card-badge__comparison .lilt-card__delta{flex:none}.lilt-card-badge__clear{width:28px;height:28px;color:var(--lilt-muted);cursor:pointer;background:0 0;border:0;border-radius:50%;flex:none;place-items:center;padding:0;display:grid}.lilt-card-badge__clear:hover{background:color-mix(in srgb, var(--lilt-text) 6%, transparent);color:var(--lilt-text)}.lilt-card-badge__clear:focus-visible{outline:2px solid var(--lilt-focus);outline-offset:2px}.lilt-card-badge__clear svg{width:14px;height:14px}.lilt-chart__texture-base circle{fill:var(--lilt-texture);opacity:var(--lilt-texture-opacity)}.lilt-chart__texture-base path{fill:none;stroke:var(--lilt-texture);stroke-width:1px;opacity:calc(var(--lilt-texture-opacity) * .4)}.lilt-chart__texture-spot circle{fill:var(--lilt-texture-spot);opacity:var(--lilt-texture-spot-opacity)}.lilt-chart__texture-spot path{fill:none;stroke:var(--lilt-texture-spot);stroke-width:1px;opacity:calc(var(--lilt-texture-spot-opacity) * .45)}[data-lilt-chart][data-lilt-palette=cobalt]:not(:where([data-lilt-chart] *)),[data-lilt-palette=cobalt] [data-lilt-chart]:not(:where([data-lilt-chart] *)){--lilt-series-1:#2f6fed;--lilt-series-2:#f06a2c;--lilt-series-3:#0e9c80;--lilt-series-4:#7a5af5;--lilt-series-5:#e2508f;--lilt-series-6:#c98700;--lilt-focus:#2f6fed}:is([data-theme=dark],.dark) [data-lilt-chart][data-lilt-palette=cobalt]:not(:where([data-lilt-chart] *)),:is([data-theme=dark],.dark) [data-lilt-palette=cobalt] [data-lilt-chart]:not(:where([data-lilt-chart] *)),[data-lilt-chart][data-lilt-palette=cobalt][data-lilt-theme=dark]:not(:where([data-lilt-chart] *)),[data-lilt-palette=cobalt][data-lilt-theme=dark] [data-lilt-chart]:not(:where([data-lilt-chart] *)){--lilt-series-1:#3f80f7;--lilt-series-2:#e2632e;--lilt-series-3:#16a586;--lilt-series-4:#8a6dfa;--lilt-series-5:#e2578f;--lilt-series-6:#bb8300;--lilt-focus:#3f80f7}[data-lilt-chart][data-lilt-palette=iris]:not(:where([data-lilt-chart] *)),[data-lilt-palette=iris] [data-lilt-chart]:not(:where([data-lilt-chart] *)){--lilt-series-1:#7c5cff;--lilt-series-2:#0d9e92;--lilt-series-3:#f26b3a;--lilt-series-4:#2d7ff9;--lilt-series-5:#e5489a;--lilt-series-6:#c98700;--lilt-focus:#7c5cff}:is([data-theme=dark],.dark) [data-lilt-chart][data-lilt-palette=iris]:not(:where([data-lilt-chart] *)),:is([data-theme=dark],.dark) [data-lilt-palette=iris] [data-lilt-chart]:not(:where([data-lilt-chart] *)),[data-lilt-chart][data-lilt-palette=iris][data-lilt-theme=dark]:not(:where([data-lilt-chart] *)),[data-lilt-palette=iris][data-lilt-theme=dark] [data-lilt-chart]:not(:where([data-lilt-chart] *)){--lilt-series-1:#8b6dff;--lilt-series-2:#14a99c;--lilt-series-3:#e5652f;--lilt-series-4:#3a86fa;--lilt-series-5:#e5559b;--lilt-series-6:#bb8300;--lilt-focus:#8b6dff}[data-lilt-chart][data-lilt-palette=emerald]:not(:where([data-lilt-chart] *)),[data-lilt-palette=emerald] [data-lilt-chart]:not(:where([data-lilt-chart] *)){--lilt-series-1:#0e9a77;--lilt-series-2:#4f6cf7;--lilt-series-3:#ea7f1f;--lilt-series-4:#e04f8a;--lilt-series-5:#8e5cf0;--lilt-series-6:#0b98b8;--lilt-focus:#0e9a77}:is([data-theme=dark],.dark) [data-lilt-chart][data-lilt-palette=emerald]:not(:where([data-lilt-chart] *)),:is([data-theme=dark],.dark) [data-lilt-palette=emerald] [data-lilt-chart]:not(:where([data-lilt-chart] *)),[data-lilt-chart][data-lilt-palette=emerald][data-lilt-theme=dark]:not(:where([data-lilt-chart] *)),[data-lilt-palette=emerald][data-lilt-theme=dark] [data-lilt-chart]:not(:where([data-lilt-chart] *)){--lilt-series-1:#16a582;--lilt-series-2:#6178f8;--lilt-series-3:#d4741f;--lilt-series-4:#e0568e;--lilt-series-5:#9868f2;--lilt-series-6:#14a2c2;--lilt-focus:#16a582}.lilt-chart__line-point{vector-effect:non-scaling-stroke}.lilt-card[data-surface=elevated]{--lilt-point-ring:var(--lilt-card-raised)}.lilt-stat{gap:14px}.lilt-stat .lilt-card__value{font-size:26px;line-height:32px}.lilt-stat .lilt-card__value-row{min-height:32px}.lilt-stat .lilt-card__heading{gap:2px}.lilt-stat__caption{min-height:18px;color:var(--lilt-muted);font-variant-numeric:tabular-nums;margin:0;font-size:12px;font-weight:500;line-height:18px}.lilt-stat .lilt-sparkline__readout{display:none}.lilt-stat__chart{margin-top:auto}.lilt-stat__meter{gap:8px;margin-top:auto;display:grid}.lilt-stat__cells{gap:3px;display:flex}.lilt-stat__cell{background:color-mix(in srgb, var(--lilt-muted) 16%, transparent);border-radius:2px;flex:1 1 0;min-width:2px;position:relative;overflow:hidden}.lilt-stat__cell-fill{background:var(--lilt-series-1);position:absolute;inset:0 auto 0 0}.lilt-stat__meter-labels{color:var(--lilt-muted);font-variant-numeric:tabular-nums;justify-content:space-between;gap:8px;font-size:12px;font-weight:500;display:flex}.lilt-stat__ring{flex-shrink:0;place-items:center;display:grid;position:relative}.lilt-stat__ring svg{position:absolute;inset:0;overflow:visible}.lilt-stat__ring-track{fill:none;stroke:color-mix(in srgb, var(--lilt-muted) 16%, transparent)}.lilt-stat__ring-fill{fill:none;stroke:var(--lilt-series-1);stroke-linecap:round}.lilt-stat__ring-label{font-variant-numeric:tabular-nums;font-size:12px;font-weight:600;position:relative}.lilt-stat__meter-skeleton{border-radius:3px;width:100%;height:10px;margin-top:auto}.lilt-list__rows{grid-template-columns:minmax(0,1fr) auto;gap:6px 14px;margin:0;padding:0;list-style:none;display:grid}.lilt-list__rows[data-share]{grid-template-columns:minmax(0,1fr) auto 3.2em}.lilt-list__rows[data-rank]{grid-template-columns:1.4em minmax(0,1fr) auto}.lilt-list__rows[data-rank][data-share]{grid-template-columns:1.4em minmax(0,1fr) auto 3.2em}.lilt-list__rows>li{grid-column:1/-1;grid-template-columns:subgrid;display:grid}.lilt-list__row{grid-column:1/-1;grid-template-columns:subgrid;width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;border-radius:8px;align-items:center;padding:0;display:grid}.lilt-list__row:focus-visible{outline:2px solid var(--lilt-focus);outline-offset:3px}.lilt-list__rank{color:var(--lilt-muted);font-variant-numeric:tabular-nums;font-size:12px;font-weight:500}.lilt-list__bar-area{border-radius:8px;align-items:center;min-width:0;height:34px;display:flex;position:relative}.lilt-list__bar{background:color-mix(in srgb, var(--lilt-series-1) 20%, transparent);transition:background-color var(--lilt-duration-quick) ease, opacity var(--lilt-duration-quick) ease;border-radius:8px;position:absolute;top:0;bottom:0}.lilt-list__zero{background:var(--lilt-border);width:1px;position:absolute;top:-3px;bottom:-3px}.lilt-list__label{text-overflow:ellipsis;white-space:nowrap;min-width:0;transition:opacity var(--lilt-duration-quick) ease;padding:0 11px;font-size:13px;font-weight:500;line-height:18px;position:relative;overflow:hidden}.lilt-list__value{font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap;transition:opacity var(--lilt-duration-quick) ease;font-size:13px;font-weight:600}.lilt-list__share{color:var(--lilt-muted);font-variant-numeric:tabular-nums;text-align:right;font-size:12px;font-weight:500}.lilt-list__missing{color:var(--lilt-muted);font-weight:500}.lilt-list__rows>li[data-active] .lilt-list__bar{background:color-mix(in srgb, var(--lilt-series-1) 34%, transparent)}.lilt-list__rows>li[data-muted] :is(.lilt-list__bar,.lilt-list__label,.lilt-list__value,.lilt-list__share){opacity:.45}.lilt-list__rows>li[data-other] .lilt-list__bar{background:color-mix(in srgb, var(--lilt-muted) 16%, transparent)}.lilt-list__rows>li[data-other] .lilt-list__label{color:var(--lilt-muted)}.lilt-list__rows[data-style=track]{row-gap:12px}.lilt-list__rows[data-style=track] .lilt-list__bar-area{align-items:flex-start;height:32px}.lilt-list__rows[data-style=track] .lilt-list__bar-area:before{content:"";background:color-mix(in srgb, var(--lilt-muted) 12%, transparent);border-radius:3px;height:6px;position:absolute;bottom:0;left:0;right:0}.lilt-list__rows[data-style=track] .lilt-list__bar{background:var(--lilt-series-1);border-radius:3px;height:6px;top:auto;bottom:0}.lilt-list__rows[data-style=track] li[data-active] .lilt-list__bar{background:var(--lilt-series-1)}.lilt-list__rows[data-style=track] li[data-other] .lilt-list__bar{background:var(--lilt-muted)}.lilt-list__rows[data-style=track] .lilt-list__label{padding:0}.lilt-list__rows[data-style=track] :is(.lilt-list__value,.lilt-list__share){align-self:start;line-height:18px}.lilt-list__skeleton{grid-column:1/-1;height:34px}.lilt-list__skeleton span{background:color-mix(in srgb, var(--lilt-skeleton) 26%, transparent);border-radius:8px;height:100%;display:block}.lilt-slope{--lilt-slope-rise:var(--lilt-slope-color,var(--lilt-positive));--lilt-slope-fall:var(--lilt-slope-color,var(--lilt-negative));--lilt-slope-flat:var(--lilt-slope-color,var(--lilt-muted))}.lilt-slope [data-tone=positive],.lilt-slope [data-tone=negative],.lilt-slope [data-tone=neutral],.lilt-slope :is(.lilt-slope__line,.lilt-slope__row):not([data-tone]){--lilt-slope-ink:var(--lilt-slope-flat)}.lilt-slope [data-tone=positive]{--lilt-slope-ink:var(--lilt-slope-rise)}.lilt-slope [data-tone=negative]{--lilt-slope-ink:var(--lilt-slope-fall)}.lilt-slope__plot{width:100%;min-width:0;position:relative}.lilt-slope__plot svg{display:block;overflow:visible}.lilt-slope__axis{stroke:var(--lilt-grid);stroke-width:1px}.lilt-slope__column{fill:var(--lilt-muted);letter-spacing:.01em;font-size:11px;font-weight:600}.lilt-slope__line{cursor:pointer;transition:opacity var(--lilt-duration-quick) ease;outline:none}.lilt-slope__line[data-muted]{opacity:.28}.lilt-slope__hit{stroke:#0000;stroke-width:16px;stroke-linecap:round}.lilt-slope__stroke{stroke:var(--lilt-slope-ink);stroke-width:2px;stroke-linecap:round;transition:stroke-width var(--lilt-duration-quick) ease}.lilt-slope__line[data-active] .lilt-slope__stroke{stroke-width:3px}.lilt-slope__dot-mark{fill:var(--lilt-slope-ink);stroke:var(--lilt-surface);stroke-width:2px}.lilt-slope__dot-mark[data-end=from]{fill:var(--lilt-surface);stroke:var(--lilt-slope-ink);stroke-width:1.75px}.lilt-slope__line:focus-visible .lilt-slope__stroke{stroke-width:3px}.lilt-slope__line:focus-visible .lilt-slope__name{text-decoration:underline;-webkit-text-decoration-color:var(--lilt-focus);text-decoration-color:var(--lilt-focus);text-underline-offset:3px;text-decoration-thickness:2px}.lilt-slope__label{font-variant-numeric:tabular-nums;font-size:12px}.lilt-slope__name{fill:var(--lilt-text);font-weight:500}.lilt-slope__number{fill:var(--lilt-muted)}.lilt-slope__end{fill:var(--lilt-text);font-weight:600}.lilt-slope__ratio{fill:var(--lilt-slope-ink);font-weight:600}.lilt-slope__skeleton{border-radius:10px;width:100%}.lilt-slope__key{color:var(--lilt-muted);gap:14px;margin:-4px 0 10px;font-size:12px;font-weight:500;display:flex}.lilt-slope__key span{align-items:center;gap:6px;display:inline-flex}.lilt-slope__key span:before{content:"";box-sizing:border-box;background:var(--lilt-muted);border-radius:50%;width:8px;height:8px}.lilt-slope__key span[data-end=from]:before{border:1.75px solid var(--lilt-muted);background:0 0}.lilt-slope__rows{grid-template-columns:minmax(4.5em,max-content) minmax(0,1fr) auto 4.2em;gap:2px 14px;margin:0;padding:0;list-style:none;display:grid}.lilt-slope__rows>li{grid-column:1/-1;grid-template-columns:subgrid;display:grid}.lilt-slope__row{grid-column:1/-1;grid-template-columns:subgrid;width:100%;height:34px;color:inherit;font:inherit;text-align:left;cursor:pointer;transition:background-color var(--lilt-duration-quick) ease, opacity var(--lilt-duration-quick) ease;-webkit-tap-highlight-color:transparent;background:0 0;border:0;border-radius:8px;align-items:center;margin:0 -6px;padding:0 6px;display:grid}.lilt-slope__row[data-active]{background:color-mix(in srgb, var(--lilt-slope-ink) 8%, transparent)}.lilt-slope__row[data-muted]{opacity:.45}.lilt-slope__row:focus-visible{outline:2px solid var(--lilt-focus);outline-offset:1px}.lilt-slope__row .lilt-slope__label{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:13px;font-weight:500;overflow:hidden}.lilt-slope__track{height:12px;margin:0 6px;position:relative}.lilt-slope__track:before{content:"";background:var(--lilt-grid);height:1px;position:absolute;top:50%;left:-6px;right:-6px}.lilt-slope__gap{background:color-mix(in srgb, var(--lilt-slope-ink) 55%, transparent);border-radius:2px;height:4px;margin-top:-2px;position:absolute;top:50%}.lilt-slope__dot{box-sizing:border-box;background:var(--lilt-slope-ink);width:10px;height:10px;box-shadow:0 0 0 2px var(--lilt-surface);border-radius:50%;margin:-5px 0 0 -5px;position:absolute;top:50%}.lilt-slope__dot[data-end=from]{border:2px solid var(--lilt-slope-ink);background:var(--lilt-surface);box-shadow:none}.lilt-slope__value{font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap;font-size:13px;font-weight:600}.lilt-slope__change{color:var(--lilt-slope-ink);font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap;font-size:12px;font-weight:600}.lilt-radial-card{container-type:inline-size}.lilt-radial-card__body{justify-items:center;gap:20px;display:grid}@container (width>=440px){.lilt-radial-card__body[data-legend=list]{grid-template-columns:minmax(150px,200px) minmax(0,1fr);place-items:center stretch;gap:28px}}.lilt-radial-card__graphic{aspect-ratio:1;width:min(100%,220px);position:relative}.lilt-radial-card__svg{width:100%;height:100%;display:block;overflow:visible}.lilt-radial-card__body[data-variant=semi] .lilt-radial-card__graphic{aspect-ratio:200/104;width:min(100%,300px)}.lilt-radial-card__body[data-variant=semi] .lilt-radial-card__center{place-content:end center;padding:0 30% 1%}.lilt-radial-card__body[data-variant=semi] .lilt-radial-card__center strong{font-size:28px;line-height:32px}.lilt-radial-card__body[data-variant=rings] .lilt-radial-card__graphic{width:min(100%,240px)}.lilt-radial-card__key{width:100%}.lilt-radial-card__key[data-variant=inline]{justify-content:center}.lilt-radial-card__ring{cursor:pointer;transition:opacity var(--lilt-duration-quick) ease}.lilt-radial-card__ring[data-muted]{opacity:.35}.lilt-radial-card__ring .lilt-radial-card__slice[data-muted]{opacity:1}.lilt-radial-card__track{fill:color-mix(in srgb, var(--lilt-muted) 13%, transparent)}.lilt-radial-card__skeleton-fill{fill:var(--lilt-skeleton-paint,color-mix(in srgb, var(--lilt-skeleton) 26%, transparent))}.lilt-radial-card__hit{fill:#0000;cursor:pointer}.lilt-radial-card__slice{pointer-events:none;transition:d var(--lilt-duration-fast) var(--lilt-ease-reveal), opacity var(--lilt-duration-quick) ease}.lilt-radial-card__svg[data-drawing] .lilt-radial-card__slice{transition:opacity var(--lilt-duration-quick) ease}.lilt-radial-card__slice[data-muted]{opacity:.32}.lilt-radial-card__skeleton{fill:none;stroke:var(--lilt-skeleton-paint,color-mix(in srgb, var(--lilt-skeleton) 26%, transparent))}.lilt-radial-card__center{text-align:center;pointer-events:none;place-content:center;justify-items:center;gap:2px;padding:0 22%;display:grid;position:absolute;inset:0}.lilt-radial-card__center strong{letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:24px;font-weight:600;line-height:28px}.lilt-radial-card__center>span{max-width:100%;color:var(--lilt-muted);text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:500;line-height:16px;overflow:hidden}.lilt-radial-card__legend{grid-template-columns:auto minmax(0,1fr) auto 3.2em;column-gap:12px;width:100%;margin:0;padding:0;list-style:none;display:grid}.lilt-radial-card__legend>li{grid-column:1/-1;grid-template-columns:subgrid;display:grid}.lilt-radial-card__row{grid-column:1/-1;grid-template-columns:subgrid;width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;transition:background-color var(--lilt-duration-quick) ease;-webkit-tap-highlight-color:transparent;background:0 0;border:0;border-radius:8px;align-items:center;padding:7px 8px;display:grid}.lilt-radial-card__legend>li[data-active] .lilt-radial-card__row{background:color-mix(in srgb, var(--lilt-text) 5%, transparent)}.lilt-radial-card__row:focus-visible{outline:2px solid var(--lilt-focus);outline-offset:1px}.lilt-radial-card__swatch{border-radius:3px;width:10px;height:10px}.lilt-radial-card__swatch[data-missing]{border:1px dashed var(--lilt-muted)}.lilt-radial-card__label{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:13px;font-weight:500;overflow:hidden}.lilt-radial-card__value{font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap;font-size:13px;font-weight:600}.lilt-radial-card__share{color:var(--lilt-muted);font-variant-numeric:tabular-nums;text-align:right;font-size:12px;font-weight:500}.lilt-radial-card__legend>li :is(.lilt-radial-card__swatch,.lilt-radial-card__label,.lilt-radial-card__value,.lilt-radial-card__share){transition:opacity var(--lilt-duration-quick) ease}.lilt-radial-card__legend>li[data-muted] :is(.lilt-radial-card__swatch,.lilt-radial-card__label,.lilt-radial-card__value,.lilt-radial-card__share){opacity:.45}.lilt-radial-card__skeleton-row{grid-column:1/-1;height:32px;padding:9px 8px}.lilt-radial-card__skeleton-row span{background:color-mix(in srgb, var(--lilt-skeleton) 26%, transparent);border-radius:5px;height:100%;display:block}.lilt-progress__graphic{aspect-ratio:1;width:min(100%,240px);margin:4px auto 0;position:relative;container-type:inline-size}.lilt-progress__graphic[data-variant=gauge]{aspect-ratio:200/106;width:min(100%,300px)}.lilt-progress__graphic svg{width:100%;height:100%;display:block;overflow:visible}.lilt-progress__track{fill:none;stroke:color-mix(in srgb, var(--lilt-muted) 14%, transparent)}.lilt-progress__fill{fill:none;stroke:var(--lilt-series-1);stroke-linecap:round}.lilt-progress__disc{fill:color-mix(in srgb, var(--lilt-muted) 8%, transparent)}.lilt-progress__center{text-align:center;pointer-events:none;place-content:center;justify-items:center;gap:2px;display:grid;position:absolute;inset:0}.lilt-progress__graphic[data-variant=gauge] .lilt-progress__center{place-content:end center}.lilt-progress__center strong{letter-spacing:-.03em;font-variant-numeric:tabular-nums;font-size:clamp(16px,16.5cqi,40px);font-weight:600;line-height:1.1}.lilt-progress__center>span{color:var(--lilt-muted);font-size:clamp(9px,5.4cqi,13px);font-weight:500}.lilt-progress__footer{color:var(--lilt-muted);text-align:center;font-size:12px}.lilt-funnel-card{container-type:inline-size}.lilt-funnel-card__plot{width:100%;position:relative}.lilt-funnel-card__svg{width:100%;height:100%;display:block;position:absolute;inset:0;overflow:visible}.lilt-funnel-card__band{transition:opacity var(--lilt-duration-quick) ease}.lilt-funnel-card__band[data-muted]{opacity:.3}.lilt-funnel-card__track{fill:color-mix(in srgb, var(--lilt-muted) 9%, transparent)}.lilt-funnel-card__skeleton{fill:var(--lilt-skeleton-paint,color-mix(in srgb, var(--lilt-skeleton) 26%, transparent))}.lilt-funnel-card__divider{stroke:var(--lilt-card-background,var(--lilt-surface));stroke-width:3px}.lilt-card[data-surface=elevated] .lilt-funnel-card__divider{stroke:var(--lilt-card-raised)}.lilt-funnel-card__column{color:inherit;font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;place-items:center;padding:0;display:grid;position:absolute;top:0;bottom:0}.lilt-funnel-card__pill{background:color-mix(in srgb, var(--lilt-surface) 86%, var(--lilt-text));height:22px;box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--lilt-border) 80%, transparent), 0 4px 14px #0000001a;color:var(--lilt-text);font-variant-numeric:tabular-nums;transition:opacity var(--lilt-duration-fast) ease;border-radius:7px;align-items:center;padding:0 7px;font-size:11.5px;font-weight:600;display:inline-flex}.lilt-funnel-card__tiles.lilt-chart__legend[data-variant=cards]{grid-template-columns:repeat(var(--lilt-funnel-stages), minmax(0, 1fr))}.lilt-funnel-card__tiles .lilt-chart__legend-name{min-width:0}.lilt-funnel-card__tiles .lilt-chart__legend-label{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}@container (width<=420px){.lilt-funnel-card__tiles.lilt-chart__legend[data-variant=cards]{grid-template-columns:repeat(auto-fit,minmax(96px,1fr))}.lilt-funnel-card__pill{padding:0 5px;font-size:10.5px}}.lilt-heatmap-card{container-type:inline-size}.lilt-heatmap-card__grid{grid-template-columns:fit-content(40%) repeat(var(--lilt-heatmap-card-columns), minmax(0, 1fr));gap:var(--lilt-heatmap-card-gap);width:100%;display:grid}.lilt-heatmap-card__grid :is(tbody,tfoot,tr){display:contents}.lilt-heatmap-card__grid :where(th,td){min-width:0;padding:0}.lilt-heatmap-card__row-label,.lilt-heatmap-card__column-label{color:var(--lilt-muted);white-space:nowrap;font-variant-numeric:tabular-nums;transition:color var(--lilt-duration-quick) ease;font-size:11px;font-weight:500;line-height:16px}.lilt-heatmap-card__row-label{text-align:left;text-overflow:ellipsis;align-self:center;padding-right:6px;overflow:hidden}.lilt-heatmap-card__column-label{height:16px;padding:0;position:relative}.lilt-heatmap-card__column-label>span{position:absolute;top:0;left:50%;transform:translate(-50%)}.lilt-heatmap-card__column-label[data-tier=hidden]>span{visibility:hidden}.lilt-heatmap-card__row-label[data-active],.lilt-heatmap-card__column-label[data-active]{color:var(--lilt-text)}.lilt-heatmap-card__column-label[data-active]>span{visibility:visible}.lilt-heatmap-card__column-label[data-tier=hidden][data-active]+.lilt-heatmap-card__column-label>span{visibility:hidden}.lilt-heatmap-card__column-label:has(+.lilt-heatmap-card__column-label[data-tier=hidden][data-active])>span{visibility:hidden}.lilt-heatmap-card__cell{width:100%;height:var(--lilt-heatmap-card-row);border-radius:var(--lilt-heatmap-card-radius);background:color-mix(in oklab, var(--lilt-heatmap-card-color,var(--lilt-series-1)) var(--lilt-heatmap-card-strength,0%), transparent);cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background-color .42s var(--lilt-ease-reveal), opacity var(--lilt-duration-quick) ease;animation:lilt-heatmap-card-in .42s var(--lilt-ease-reveal) backwards;animation-delay:var(--lilt-heatmap-card-delay);border:0;padding:0;display:block}.lilt-heatmap-card__cell[data-missing],.lilt-heatmap-card__swatch{background:repeating-linear-gradient(135deg, transparent 0 3px, color-mix(in srgb, var(--lilt-muted) 34%, transparent) 3px 4px);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--lilt-muted) 24%, transparent)}.lilt-heatmap-card__cell[data-muted]{opacity:.32}.lilt-heatmap-card__cell[data-active]{outline:1.5px solid color-mix(in srgb, var(--lilt-text) 72%, transparent);outline-offset:1.5px}.lilt-heatmap-card__cell:focus-visible{outline:2px solid var(--lilt-focus);outline-offset:2px}.lilt-heatmap-card__grid[data-motion=none] .lilt-heatmap-card__cell,.lilt-heatmap-card__grid[data-motion=none] th{transition:none;animation:none}.lilt-heatmap-card__placeholder{flex-direction:column;gap:16px;display:flex}.lilt-heatmap-card__skeleton{height:var(--lilt-heatmap-card-row);border-radius:var(--lilt-heatmap-card-radius);background:color-mix(in srgb, var(--lilt-skeleton) 26%, transparent);display:block}.lilt-heatmap-card__placeholder .lilt-heatmap-card__ramp{background:color-mix(in srgb, var(--lilt-skeleton) 26%, transparent)}.lilt-heatmap-card__footer{color:var(--lilt-muted);font-variant-numeric:tabular-nums;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px 16px;min-height:16px;font-size:11px;font-weight:500;line-height:16px;display:flex}.lilt-heatmap-card__key,.lilt-heatmap-card__scale{align-items:center;gap:6px;display:inline-flex}.lilt-heatmap-card__key{margin-right:auto}.lilt-heatmap-card__swatch{border-radius:3px;width:12px;height:12px}.lilt-heatmap-card__ramp{background:linear-gradient(to right, color-mix(in oklab, var(--lilt-heatmap-card-color,var(--lilt-series-1)) 12%, transparent), color-mix(in oklab, var(--lilt-heatmap-card-color,var(--lilt-series-1)) 95%, transparent));border-radius:4px;width:72px;height:8px}@keyframes lilt-heatmap-card-in{0%{opacity:0;transform:scale(.8)}}@container (width<=480px){.lilt-heatmap-card__column-label[data-tier=minor]:not([data-active])>span,.lilt-heatmap-card__column-label[data-tier=minor][data-active]+.lilt-heatmap-card__column-label>span{visibility:hidden}.lilt-heatmap-card__column-label:has(+.lilt-heatmap-card__column-label[data-tier=minor][data-active])>span{visibility:hidden}}.lilt-scatter-card__plot{cursor:crosshair;-webkit-tap-highlight-color:transparent;border-radius:10px;outline:none;width:100%;position:relative}.lilt-scatter-card__plot:focus-visible{outline:2px solid var(--lilt-focus);outline-offset:4px}.lilt-scatter-card__plot[data-loading]{cursor:default}.lilt-scatter-card__svg{display:block;position:absolute;inset:0;overflow:visible}.lilt-scatter-card__grid line{stroke:var(--lilt-grid,var(--lilt-border));stroke-dasharray:2 4;shape-rendering:crispedges}.lilt-scatter-card__axis-title{fill:var(--lilt-muted);font-size:11px;font-weight:500}.lilt-scatter-card__point{transition:transform .52s var(--lilt-ease-reveal), opacity var(--lilt-duration-quick) ease}.lilt-scatter-card__point circle{fill-opacity:.72;stroke:currentColor;stroke-width:1.25px;transform-box:fill-box;transform-origin:50%;transition:fill-opacity var(--lilt-duration-quick) ease, stroke-width var(--lilt-duration-quick) ease;animation:lilt-scatter-card-in .46s var(--lilt-ease-reveal) backwards;animation-delay:var(--lilt-scatter-card-delay)}.lilt-scatter-card__point[data-active] circle{fill-opacity:1;stroke:var(--lilt-text);stroke-width:1.75px}.lilt-scatter-card__point[data-muted]{opacity:.22}.lilt-scatter-card__guides line{stroke:var(--lilt-muted);stroke-dasharray:3 3;stroke-opacity:.7}.lilt-scatter-card__trend{stroke:var(--lilt-text);stroke-opacity:.42;stroke-width:1.5px;stroke-dasharray:5 5;stroke-linecap:round}.lilt-scatter-card__skeleton{fill:var(--lilt-skeleton-paint,color-mix(in srgb, var(--lilt-skeleton) 30%, transparent))}.lilt-scatter-card__pill{z-index:1;pointer-events:none}.lilt-scatter-card__footer{color:var(--lilt-muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px 16px;font-size:11.5px;font-weight:500;line-height:16px;display:flex}.lilt-scatter-card__fit{font-variant-numeric:tabular-nums;align-items:center;gap:6px;margin-left:auto;display:inline-flex}.lilt-scatter-card__fit-line{border-top:1.5px dashed color-mix(in srgb, var(--lilt-text) 45%, transparent);width:16px}.lilt-scatter-card__plot[data-motion=none] .lilt-scatter-card__point,.lilt-scatter-card__plot[data-motion=none] circle{transition:none;animation:none}@keyframes lilt-scatter-card-in{0%{opacity:0;transform:scale(0)}}.lilt-sankey-card__plot{border-radius:10px;outline:none;width:100%;position:relative}.lilt-sankey-card__plot:focus-visible{outline:2px solid var(--lilt-focus);outline-offset:4px}.lilt-sankey-card__svg{display:block;position:absolute;inset:0;overflow:visible}.lilt-sankey-card__flow{fill:none;stroke-opacity:.3;cursor:pointer;transition:stroke-opacity var(--lilt-duration-quick) ease, opacity var(--lilt-duration-quick) ease}.lilt-sankey-card__flow[data-active],.lilt-sankey-card__plot:not([data-active]) .lilt-sankey-card__flow:hover{stroke-opacity:.6}.lilt-sankey-card__plot[data-active] .lilt-sankey-card__flow:not([data-muted]){stroke-opacity:.55}.lilt-sankey-card__flow[data-muted]{opacity:.35}.lilt-sankey-card__node{cursor:pointer;transition:opacity var(--lilt-duration-quick) ease}.lilt-sankey-card__node[data-muted]{opacity:.4}.lilt-sankey-card__label{fill:var(--lilt-text);paint-order:stroke;stroke:var(--lilt-card-background,var(--lilt-surface));stroke-width:4px;stroke-linejoin:round;pointer-events:none;transition:opacity var(--lilt-duration-quick) ease;font-size:12px;font-weight:500}.lilt-card[data-surface=elevated] .lilt-sankey-card__label{stroke:var(--lilt-card-raised)}.lilt-sankey-card__label-value{fill:var(--lilt-muted);font-variant-numeric:tabular-nums;font-size:11.5px}.lilt-sankey-card__label[data-muted]{opacity:.45}.lilt-sankey-card__skeleton{fill:none;stroke:var(--lilt-skeleton-paint,color-mix(in srgb, var(--lilt-skeleton) 24%, transparent))}.lilt-sankey-card__footer{color:var(--lilt-muted);margin:0;font-size:11.5px;font-weight:500;line-height:16px}.lilt-sankey-card__plot[data-motion=none] *{transition:none}.lilt-radar-card__plot{cursor:crosshair;border-radius:10px;outline:none;width:100%;position:relative}.lilt-radar-card__plot:focus-visible{outline:2px solid var(--lilt-focus);outline-offset:4px}.lilt-radar-card__plot[data-loading]{cursor:default}.lilt-radar-card__svg{display:block;position:absolute;inset:0;overflow:visible}.lilt-radar-card__grid :is(path,circle){fill:none;stroke:var(--lilt-grid,var(--lilt-border))}.lilt-radar-card__grid line{stroke:var(--lilt-grid,var(--lilt-border));transition:stroke var(--lilt-duration-quick) ease}.lilt-radar-card__grid line[data-active]{stroke:color-mix(in srgb, var(--lilt-text) 55%, transparent);stroke-dasharray:3 3}.lilt-radar-card__ring-label{font-size:10.5px}.lilt-radar-card__profile{transition:opacity var(--lilt-duration-quick) ease}.lilt-radar-card__profile[data-muted]{opacity:.2}.lilt-radar-card__profile[data-hidden]{opacity:0;pointer-events:none}.lilt-radar-card__fill{fill:currentColor;fill-opacity:.16;stroke:none}.lilt-radar-card__outline{fill:none;stroke:currentColor;stroke-width:2px;stroke-linejoin:round;stroke-linecap:round}.lilt-radar-card__profile[data-dashed] .lilt-radar-card__outline{stroke-width:1.5px;stroke-dasharray:5 4}.lilt-radar-card__vertex{fill:var(--lilt-card-raised,var(--lilt-surface));stroke:currentColor;stroke-width:1.75px;transition:r var(--lilt-duration-quick) ease}.lilt-radar-card__vertex[data-active]{fill:currentColor}.lilt-radar-card__label{fill:var(--lilt-muted);transition:fill var(--lilt-duration-quick) ease;font-size:12px;font-weight:500}.lilt-radar-card__label[data-active]{fill:var(--lilt-text)}.lilt-radar-card__skeleton{fill:var(--lilt-skeleton-paint,color-mix(in srgb, var(--lilt-skeleton) 24%, transparent))}.lilt-radar-card__footer{color:var(--lilt-muted);margin:0;font-size:11.5px;font-weight:500;line-height:16px}.lilt-radar-card__plot[data-motion=none] *{transition:none}.lilt-activity-card__ring{align-self:center}.lilt-activity-card__footer{color:var(--lilt-muted);margin:0;font-size:11.5px;font-weight:500;line-height:16px}.lilt-stat__ring-track[data-loading],.lilt-progress__track[data-loading]{stroke:var(--lilt-skeleton-paint,color-mix(in srgb, var(--lilt-skeleton) 26%, transparent))}.lilt-activity__skeleton-dot{fill:var(--lilt-skeleton-paint,color-mix(in srgb, var(--lilt-skeleton) 34%, transparent))}.lilt-card__skeleton,.lilt-list__skeleton span,.lilt-radial-card__skeleton-row span,.lilt-heatmap-card__skeleton,.lilt-stat__meter-skeleton{background-image:linear-gradient(100deg, transparent 35%, color-mix(in srgb, var(--lilt-skeleton-sheen) 42%, transparent) 50%, transparent 65%);animation:2.1s linear infinite lilt-skeleton-shine;animation-delay:var(--lilt-shine-delay,0s);background-repeat:no-repeat;background-size:300% 100%}@keyframes lilt-skeleton-shine{0%{background-position:100% 0}85.714%,to{background-position:0 0}}[data-lilt-chart][data-motion=none] :is(.lilt-card__skeleton,.lilt-list__skeleton span,.lilt-radial-card__skeleton-row span,.lilt-heatmap-card__skeleton,.lilt-stat__meter-skeleton){background-image:none;animation:none}@media (prefers-reduced-motion:reduce){.lilt-card__skeleton,.lilt-list__skeleton span,.lilt-radial-card__skeleton-row span,.lilt-heatmap-card__skeleton,.lilt-stat__meter-skeleton{background-image:none;animation:none}}.lilt-chart__legend[data-toggles] .lilt-chart__legend-item,.lilt-radial-card__legend>li{position:relative}.lilt-radial-card__legend .lilt-chart__legend-actions{top:50%;bottom:auto;transform:translateY(-50%)}.lilt-radial-card__legend>li:is(:hover,:focus-within) .lilt-chart__legend-actions{opacity:1;pointer-events:auto}.lilt-radial-card__legend>li[data-hidden] :is(.lilt-radial-card__label,.lilt-radial-card__value,.lilt-radial-card__share){opacity:.45}.lilt-chart__legend[data-toggles] .lilt-chart__legend-toggle{cursor:pointer}.lilt-chart__legend-item[data-visible=false] .lilt-chart__legend-swatch{box-shadow:inset 0 0 0 1.5px var(--lilt-legend-color);background:0 0}.lilt-chart__legend-actions{opacity:0;pointer-events:none;transition:opacity var(--lilt-duration-quick) ease;gap:2px;display:flex;position:absolute;bottom:10px;right:8px}.lilt-chart__legend[data-variant=inline] .lilt-chart__legend-actions{margin-left:2px;position:static}.lilt-chart__legend-item:hover .lilt-chart__legend-actions,.lilt-chart__legend-item:focus-within .lilt-chart__legend-actions{opacity:1;pointer-events:auto}@media (hover:none){.lilt-chart__legend-actions{opacity:1;pointer-events:auto}}button.lilt-chart__legend-action{background:color-mix(in srgb, var(--lilt-surface) 80%, var(--lilt-text));min-height:0;color:var(--lilt-text);white-space:nowrap;border-radius:6px;padding:1px 6px;font-size:11px;font-weight:600;line-height:18px}button.lilt-chart__legend-action:hover{background:color-mix(in srgb, var(--lilt-surface) 68%, var(--lilt-text))}button.lilt-chart__legend-action:focus-visible{outline:2px solid var(--lilt-focus);outline-offset:1px}.lilt-chart__legend-item[data-visible=false]:is(:hover,:focus-within){opacity:1}.lilt-chart__legend-item[data-visible=false]:is(:hover,:focus-within) :is(.lilt-chart__legend-name,.lilt-chart__legend-value){opacity:.55}}
2
+ /*$vite$:1*/
@@ -0,0 +1,3 @@
1
+ import { ReactElement } from 'react';
2
+ import { ChartBrushProps } from '../types';
3
+ export declare function ChartBrush({ className }: ChartBrushProps): ReactElement | null;
@@ -0,0 +1,3 @@
1
+ import { ReactElement } from 'react';
2
+ import { ChartOverviewProps } from '../types';
3
+ export declare function ChartOverview({ className }: ChartOverviewProps): ReactElement | null;
@@ -0,0 +1,5 @@
1
+ export interface ChartRangeSummaryProps {
2
+ series?: string;
3
+ className?: string;
4
+ }
5
+ export declare function ChartRangeSummary({ series: seriesId, className }: ChartRangeSummaryProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,3 @@
1
+ import { ReactElement } from 'react';
2
+ import { ChartReadoutProps } from '../types';
3
+ export declare function ChartReadout({ className }: ChartReadoutProps): ReactElement | null;
@@ -0,0 +1,3 @@
1
+ import { ReactElement } from 'react';
2
+ import { ChartToolbarProps } from '../types';
3
+ export declare function ChartToolbar({ actions, className }: ChartToolbarProps): ReactElement;