@lilt-ui/charts 0.4.0 → 0.6.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 (45) hide show
  1. package/CHANGELOG.md +41 -0
  2. package/dist/activity-ring.d.ts +5 -2
  3. package/dist/cards/activity-ring-card.d.ts +5 -2
  4. package/dist/cards/bar-chart-card.d.ts +5 -2
  5. package/dist/cards/box-plot-card.d.ts +3 -1
  6. package/dist/cards/cartesian-card.d.ts +22 -3
  7. package/dist/cards/combo-chart-card.d.ts +4 -2
  8. package/dist/cards/funnel-chart-card.d.ts +27 -2
  9. package/dist/cards/heatmap-chart-card.d.ts +8 -2
  10. package/dist/cards/horizontal-bar-chart-card.d.ts +9 -4
  11. package/dist/cards/progress-card.d.ts +8 -2
  12. package/dist/cards/radar-chart-card.d.ts +10 -2
  13. package/dist/cards/radial-chart-card.d.ts +16 -5
  14. package/dist/cards/range-chart-card.d.ts +3 -1
  15. package/dist/cards/sankey-chart-card.d.ts +8 -2
  16. package/dist/cards/scatter-chart-card.d.ts +12 -2
  17. package/dist/cards/slope-chart-card.d.ts +8 -2
  18. package/dist/cards/stat-card.d.ts +9 -3
  19. package/dist/chart.d.ts +1 -1
  20. package/dist/engine/depth.d.ts +42 -0
  21. package/dist/engine/isometric-bars.d.ts +25 -0
  22. package/dist/engine/ranges.d.ts +31 -0
  23. package/dist/finance/candle-geometry.d.ts +13 -2
  24. package/dist/finance/candles.d.ts +5 -0
  25. package/dist/finance/cards/candlestick-chart-card.d.ts +6 -1
  26. package/dist/finance/cards/depth-chart-card.d.ts +5 -2
  27. package/dist/finance/order-book.d.ts +7 -3
  28. package/dist/finance.js +547 -440
  29. package/dist/index.d.ts +1 -1
  30. package/dist/index.js +3081 -2162
  31. package/dist/interaction/legend-meter.d.ts +11 -0
  32. package/dist/interaction/value-legend.d.ts +8 -2
  33. package/dist/lifecycle/loading-layer.d.ts +14 -3
  34. package/dist/lifecycle/skeleton-block.d.ts +6 -0
  35. package/dist/lifecycle/skeleton-sheen.d.ts +15 -2
  36. package/dist/lifecycle/use-skeleton-clock.d.ts +5 -0
  37. package/dist/marks/contract.d.ts +15 -0
  38. package/dist/marks/range-loading-mark.d.ts +3 -0
  39. package/dist/marks/use-range-mark.d.ts +8 -0
  40. package/dist/primitives/depth-paint.d.ts +107 -0
  41. package/dist/primitives/isometric-bar.d.ts +18 -0
  42. package/dist/{cartesian-card-Cj1o38DC.js → skeleton-block-Uf1lywJi.js} +2580 -1936
  43. package/dist/styles.css +1 -1
  44. package/dist/types.d.ts +38 -4
  45. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,46 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.6.0
4
+
5
+ Charts have three loading styles, with skeletons shaped for each family and refreshed palettes.
6
+
7
+ ### Loading
8
+
9
+ - `loadingStyle` accepts `shimmer` (the default), `draw`, or `breathe` on charts and cards, including finance charts. `ChartLoadingStyle` is exported for typed consumers.
10
+ - Loading skeletons follow each chart's geometry, including candles, range marks, rings, funnels, and flows. Moving skeletons share a clock so cards on a page move together.
11
+ - Loading motion respects reduced-motion preferences and `motion="none"`; placeholders do not present invented readings as data.
12
+
13
+ ### Palettes
14
+
15
+ - Iris uses violet, rose, and amber; Cobalt uses blue, cyan, and indigo; Emerald uses green, lime, and teal. Default series colors follow Iris, with matching light and dark palettes.
16
+
17
+ ## 0.5.0
18
+
19
+ Every chart that can carry it gets depth with one prop, and legends come in five layouts.
20
+
21
+ ### Depth
22
+
23
+ - `depth` gives a card depth. Every shape keeps its exact value; depth only adds light, shade and shadow, lit from the upper left.
24
+ - Bars, stacks, Combo and stat card bars become square blocks with a lit top and a shaded side; the front keeps the measured height. `barStyle="isometric"` gives the same look.
25
+ - Range bars, box plots and candle bodies become solid blocks. Box plot whiskers run through the middle of each block and the median wraps around it; candle wicks pass through the body.
26
+ - Radial donuts, pies, half donuts and rings, Progress rings and the stat card ring are lit tubes, with tracks cut into the card as grooves. Angles stay exact.
27
+ - Lines on Line, Area, Combo, stat card, Price, Indicator and Depth charts are lit tubes along their own path, with a soft shadow. Dashed references stay flat.
28
+ - Scatter points are lit spheres; Slope draws a tube between two spheres, and dumbbells match.
29
+ - The Funnel is a pipe: each stage shaded as a cylinder of its own thickness, with curved seams and rounded ends.
30
+ - Sankey flows are lit pipes of their exact width and nodes are small blocks.
31
+ - Heatmap cells are low tiles of one height; color alone still carries the value.
32
+ - Horizontal Bar (`barStyle="isometric"`), the stat card meter and Order book levels are solid blocks; Activity Ring dots are small pucks.
33
+
34
+ ### Legends
35
+
36
+ - Cards take `legend`: `tiles` (the default), `inline`, `list` rows, tinted `pills`, or `bars` that draw each value against the largest. Radial keeps its own `list` with shares.
37
+ - `legendSwatch` sets the mark beside each label: `square` (the default), `dot`, or `line`.
38
+ - `Legend` and `ValueLegend` take the same layouts as `variant`, and the marks as `swatch`.
39
+
40
+ ### Breaking
41
+
42
+ - `OrderBook` names its level count `levels`; `depth` is the 3D switch on every card.
43
+
3
44
  ## 0.4.0
4
45
 
5
46
  Every chart works with a finger, and pins shared across linked charts glide from point to point.
@@ -1,5 +1,5 @@
1
1
  import { ReactNode } from 'react';
2
- import { ChartMotion } from './types';
2
+ import { ChartLoadingStyle, ChartMotion } from './types';
3
3
  export interface ActivitySelection<Row> {
4
4
  hour: number;
5
5
  row: Row | null;
@@ -23,10 +23,13 @@ export interface ActivityRingProps<Row> {
23
23
  onSelectionChange?: (selection: ActivitySelection<Row> | null) => void;
24
24
  /** `loading` keeps showing the last accepted day until new data is ready. */
25
25
  status?: 'ready' | 'loading';
26
+ loadingStyle?: ChartLoadingStyle;
26
27
  /** A new key drops the accepted day and any selection. */
27
28
  resetKey?: string | number;
28
29
  motion?: ChartMotion;
29
30
  height?: number;
31
+ /** Turns each dot into a small puck with walls receding up and to the right. */
32
+ depth?: boolean;
30
33
  'aria-label': string;
31
34
  className?: string;
32
35
  }
@@ -40,5 +43,5 @@ export declare function activitySlots<Row>(data: readonly Row[], hour: (row: Row
40
43
  * The 24-hour dot ring inside `ActivityRingCard`: one column of dots per time slot, filled by
41
44
  * how much happened then. One tab stop; arrow keys step around the day and Enter pins a slot.
42
45
  */
43
- export declare function ActivityRing<Row>({ data, hour, value, maximum, bucketMinutes, dotDensity, unit, formatValue, center, onSelectionChange, status, resetKey, motion, height, className, 'aria-label': ariaLabel, }: ActivityRingProps<Row>): import("react/jsx-runtime").JSX.Element;
46
+ export declare function ActivityRing<Row>({ data, hour, value, maximum, bucketMinutes, dotDensity, unit, formatValue, center, onSelectionChange, status, loadingStyle, resetKey, motion, height, depth, className, 'aria-label': ariaLabel, }: ActivityRingProps<Row>): import("react/jsx-runtime").JSX.Element;
44
47
  export {};
@@ -1,5 +1,5 @@
1
1
  import { CSSProperties, ReactElement, ReactNode } from 'react';
2
- import { ChartMotion, ChartPalette, ChartStyle, ChartSurface } from '../types';
2
+ import { ChartLoadingStyle, ChartMotion, ChartPalette, ChartStyle, ChartSurface } from '../types';
3
3
  import { CardRange } from './cartesian-card';
4
4
  import { NumericKey } from './keys';
5
5
  import { AnimatedNumberVariant } from '../motion/animated-number';
@@ -21,6 +21,8 @@ export interface ActivityRingCardProps<Row, Key extends NumericKey<Row>> {
21
21
  maximum?: number;
22
22
  /** How the resting headline sums up the day: `sum` (default), `mean`, or `max`. */
23
23
  aggregate?: ActivityAggregate;
24
+ /** Turns each dot into a small puck with walls receding up and to the right. */
25
+ depth?: boolean;
24
26
  /** Ring height in pixels, at least 180. Defaults to 280. */
25
27
  height?: number;
26
28
  /** Resting headline. Defaults to the `aggregate` of every recorded slot. */
@@ -45,6 +47,7 @@ export interface ActivityRingCardProps<Row, Key extends NumericKey<Row>> {
45
47
  numberStyle?: AnimatedNumberVariant;
46
48
  palette?: ChartPalette;
47
49
  loading?: boolean;
50
+ loadingStyle?: ChartLoadingStyle;
48
51
  /** `none` turns off decorative motion; reduced-motion users get this automatically. */
49
52
  motion?: ChartMotion;
50
53
  className?: string;
@@ -57,4 +60,4 @@ export declare function clockLabel(hour: number): string;
57
60
  * filled by how much happened then. Hovering or stepping around the ring reads each slot in the
58
61
  * headline; tiles name the busiest and quietest times.
59
62
  */
60
- export declare function ActivityRingCard<Row, const Key extends NumericKey<Row>>({ title, data: suppliedData, hour, value, bucketMinutes, unit, maximum: suppliedMaximum, aggregate, height, headline: suppliedHeadline, delta: suppliedDelta, deltaTone, range, ranges, defaultRange, valueFormat, locale, formatValue: suppliedFormatValue, color, surface, badge, numberStyle, palette, loading, motion, className, style, }: ActivityRingCardProps<Row, Key>): ReactElement;
63
+ export declare function ActivityRingCard<Row, const Key extends NumericKey<Row>>({ title, data: suppliedData, hour, value, bucketMinutes, unit, maximum: suppliedMaximum, aggregate, height, depth, headline: suppliedHeadline, delta: suppliedDelta, deltaTone, range, ranges, defaultRange, valueFormat, locale, formatValue: suppliedFormatValue, color, surface, badge, numberStyle, palette, loading, loadingStyle, motion, className, style, }: ActivityRingCardProps<Row, Key>): ReactElement;
@@ -22,13 +22,16 @@ export interface BarChartCardProps<Row, Key extends NumericKey<Row>> extends Car
22
22
  barWidth?: number;
23
23
  /**
24
24
  * How bars are drawn: `solid` (default), `segmented` into small cells, `needle` (thin segmented
25
- * lines; the hovered bar expands), `gradient` fading toward the baseline, or `outline`.
25
+ * lines; the hovered bar expands), `gradient` fading toward the baseline, `outline`, or
26
+ * `isometric` with a shaded top and side around the measured front face.
26
27
  */
27
28
  barStyle?: ChartBarAppearance;
29
+ /** Shorthand for depth across every card family: here it makes `barStyle` default to `isometric`. */
30
+ depth?: boolean;
28
31
  }
29
32
  /**
30
33
  * A complete bar chart card: headline, delta, period, plot, and value tiles.
31
34
  * Dashed series draw as reference lines over the bars. Bars stay inside the card padding by
32
35
  * default, so every label centers on its bar.
33
36
  */
34
- export declare function BarChartCard<Row, const Key extends NumericKey<Row>>({ stack, radius, corners, tracks, barWidth, barStyle, ...props }: BarChartCardProps<Row, Key>): ReactElement;
37
+ export declare function BarChartCard<Row, const Key extends NumericKey<Row>>({ stack, radius, corners, tracks, barWidth, depth, barStyle, ...props }: BarChartCardProps<Row, Key>): ReactElement;
@@ -21,10 +21,12 @@ export interface BoxPlotCardProps<Row> extends SharedProps<Row> {
21
21
  color?: string;
22
22
  /** Draw samples beyond the whiskers as dots. Defaults to true. */
23
23
  outliers?: boolean;
24
+ /** Draws each box as a solid block receding up and to the right; the front keeps Q1 and Q3. */
25
+ depth?: boolean;
24
26
  }
25
27
  /**
26
28
  * Distributions side by side: quartile boxes, a median line, Tukey whiskers and outliers,
27
29
  * computed from each row's raw samples. The headline is the median of every sample.
28
30
  */
29
- export declare function BoxPlotCard<Row>({ data, x, samples, label, color, outliers, headline, ...props }: BoxPlotCardProps<Row>): ReactElement;
31
+ export declare function BoxPlotCard<Row>({ data, x, samples, label, color, outliers, depth, headline, ...props }: BoxPlotCardProps<Row>): ReactElement;
30
32
  export {};
@@ -1,5 +1,5 @@
1
1
  import { CSSProperties, ReactElement, ReactNode } from 'react';
2
- import { ChartController, ChartMargins, ChartTooltipContext, NumericXConfig, TimeXConfig, ChartAxis, ChartBarAppearance, ChartBackground, ChartCurve, ChartMotion, ChartPalette, ChartHoverReadout, ChartHoverStyle, ChartSeries, ChartTooltipIndicator, ChartStyle, ChartSurface } from '../types';
2
+ import { ChartController, ChartMargins, ChartTooltipContext, NumericXConfig, TimeXConfig, ChartAxis, ChartBarAppearance, ChartBackground, ChartCurve, ChartMotion, ChartPalette, ChartHoverReadout, ChartHoverStyle, ChartSeries, ChartTooltipIndicator, ChartStyle, ChartSurface, CardLegend, ChartLegendSwatch, ChartLoadingStyle } from '../types';
3
3
  import { NumericKey, ResolvedX, XKey, XKind } from './keys';
4
4
  import { CardAggregate } from './format';
5
5
  import { AnimatedNumberVariant } from '../motion/animated-number';
@@ -84,8 +84,20 @@ export interface CartesianCardProps<Row, Key extends NumericKey<Row>> {
84
84
  /** Period select. Each range replaces data, delta and headline. */
85
85
  ranges?: readonly CardRange<Row>[];
86
86
  defaultRange?: string;
87
- /** Per-series stat tiles under the plot. Defaults to true. */
87
+ /** Per-series stat tiles under the plot. Defaults to true; false hides the legend. */
88
88
  tiles?: boolean;
89
+ /**
90
+ * How the legend under the plot lays out: value `tiles` (default), compact `inline` labels,
91
+ * `list` rows, tinted `pills`, or `bars` that also draw each value against the largest.
92
+ */
93
+ legend?: CardLegend;
94
+ /** The mark beside each legend label: `square` (default), `dot`, or `line`. */
95
+ legendSwatch?: ChartLegendSwatch;
96
+ /**
97
+ * Gives the plot depth: lines become lit tubes with a soft shadow, and bar cards draw
98
+ * `isometric` blocks. Every point and bar still reads its exact value.
99
+ */
100
+ depth?: boolean;
89
101
  /** Plot height in pixels. Defaults to 240. */
90
102
  height?: number;
91
103
  /** Number format for the headline, tiles, and axis, e.g. `{ style: 'currency', currency: 'USD' }`. */
@@ -172,6 +184,12 @@ export interface CartesianCardProps<Row, Key extends NumericKey<Row>> {
172
184
  */
173
185
  sync?: string;
174
186
  loading?: boolean;
187
+ /**
188
+ * How the skeleton moves while `loading`: `shimmer` (default) sweeps a highlight over still
189
+ * shapes, `draw` reveals bars or contours in order, `breathe` lets them rise and settle.
190
+ * Moving skeletons on a page share a clock.
191
+ */
192
+ loadingStyle?: ChartLoadingStyle;
175
193
  /** `none` turns off decorative motion; reduced-motion users get this automatically. */
176
194
  motion?: ChartMotion;
177
195
  className?: string;
@@ -246,6 +264,7 @@ export interface CardMarks {
246
264
  }
247
265
  /** Panes drawn under the main plot, linked to it: same data, x, margins and crosshair. */
248
266
  export interface CardPaneContext<Row> {
267
+ loadingStyle?: ChartLoadingStyle;
249
268
  data: readonly Row[];
250
269
  x: TimeXConfig<Row> | NumericXConfig<Row>;
251
270
  controller: ChartController;
@@ -266,7 +285,7 @@ export declare const CARD_PADDING = 20;
266
285
  * The shared card body: headline, delta, period, plot, and value tiles, with hover sync and
267
286
  * range comparison. Area, Line, and Bar cards differ only in their `shape`.
268
287
  */
269
- export declare function CartesianCard<Row, Key extends NumericKey<Row>>({ shape, title, data: suppliedData, x, series: seriesInput, headline: suppliedHeadline, aggregate: suppliedAggregate, headlineSeries, delta: suppliedDelta, deltaTone, range, ranges, defaultRange, tiles, height, valueFormat, locale, formatValue: suppliedFormatValue, formatAxisValue: suppliedFormatAxisValue, formatX, xType, compare, target: suppliedTarget, forecast, sync, axis, hover, hoverStyle, background, spotlight, surface, badge, numberStyle, palette, bleed, axisInset, pillSeries, pillValue, pillPosition, tooltipIndicator, loading, motion, className, style, panes, live, heading, restCaption, normal, onNormalChange, }: Omit<CartesianCardProps<Row, Key>, 'series'> & {
288
+ export declare function CartesianCard<Row, Key extends NumericKey<Row>>({ shape, title, data: suppliedData, x, series: seriesInput, headline: suppliedHeadline, aggregate: suppliedAggregate, headlineSeries, delta: suppliedDelta, deltaTone, range, ranges, defaultRange, tiles, legend, legendSwatch, depth, height, valueFormat, locale, formatValue: suppliedFormatValue, formatAxisValue: suppliedFormatAxisValue, formatX, xType, compare, target: suppliedTarget, forecast, sync, axis, hover, hoverStyle, background, spotlight, surface, badge, numberStyle, palette, bleed, axisInset, pillSeries, pillValue, pillPosition, tooltipIndicator, loading, loadingStyle, motion, className, style, panes, live, heading, restCaption, normal, onNormalChange, }: Omit<CartesianCardProps<Row, Key>, 'series'> & {
270
289
  series: readonly CoreSeries<Key>[];
271
290
  shape: CardShape;
272
291
  /** Linked panes under the plot, such as volume or indicators. */
@@ -36,8 +36,10 @@ export interface ComboChartCardProps<Row, Key extends NumericKey<Row>> extends O
36
36
  tracks?: boolean;
37
37
  /** Maximum bar width in pixels; bars never exceed their slot. */
38
38
  barWidth?: number;
39
- /** `solid` (default), `segmented`, `needle`, `gradient`, or `outline`. */
39
+ /** `solid` (default), `segmented`, `needle`, `gradient`, `outline`, or `isometric`. */
40
40
  barStyle?: ChartBarAppearance;
41
+ /** Shorthand for depth across every card family: here it makes `barStyle` default to `isometric`. */
42
+ depth?: boolean;
41
43
  /** `smooth` (default) or `linear` line segments. */
42
44
  curve?: 'smooth' | 'linear';
43
45
  /** Mark every line observation with a small dot. Defaults to true. */
@@ -48,4 +50,4 @@ export interface ComboChartCardProps<Row, Key extends NumericKey<Row>> extends O
48
50
  * The headline totals the bars; every series gets a tile, and the pill reads whichever mark is
49
51
  * nearest the pointer.
50
52
  */
51
- export declare function ComboChartCard<Row, const Key extends NumericKey<Row>>({ bars, lines, lineScale, stack, radius, corners, tracks, barWidth, barStyle, curve, points, aggregate, pillPosition, ...props }: ComboChartCardProps<Row, Key>): ReactElement;
53
+ export declare function ComboChartCard<Row, const Key extends NumericKey<Row>>({ bars, lines, lineScale, stack, radius, corners, tracks, barWidth, depth, barStyle, curve, points, aggregate, pillPosition, ...props }: ComboChartCardProps<Row, Key>): ReactElement;
@@ -1,5 +1,5 @@
1
1
  import { CSSProperties, ReactElement, ReactNode } from 'react';
2
- import { ChartMotion, ChartPalette, ChartStyle, ChartSurface } from '../types';
2
+ import { ChartLoadingStyle, ChartMotion, ChartPalette, ChartStyle, ChartSurface, CardLegend, ChartLegendSwatch } from '../types';
3
3
  import { CardRange } from './cartesian-card';
4
4
  import { NumericKey, TextKey } from './keys';
5
5
  import { AnimatedNumberVariant } from '../motion/animated-number';
@@ -17,6 +17,11 @@ export interface FunnelChartCardProps<Row, Key extends NumericKey<Row>> {
17
17
  colors?: 'stages' | 'single';
18
18
  /** A quiet full-height lane behind each stage, marking where 100% sits. Defaults to false. */
19
19
  tracks?: boolean;
20
+ /**
21
+ * Gives the funnel depth: a pipe seen a little from the right, every stage shaded as a cylinder
22
+ * of its own thickness, with curved seams and elliptical ends. Band heights still read true.
23
+ */
24
+ depth?: boolean;
20
25
  /** Plot height in pixels. Defaults to 180. */
21
26
  height?: number;
22
27
  /** Resting headline. Defaults to the first stage. */
@@ -29,6 +34,13 @@ export interface FunnelChartCardProps<Row, Key extends NumericKey<Row>> {
29
34
  /** Period select. Each range replaces data, delta, and headline; bands ease to their new size. */
30
35
  ranges?: readonly CardRange<Row>[];
31
36
  defaultRange?: string;
37
+ /**
38
+ * How the legend lays out: value `tiles` (default), compact `inline` labels, `list` rows, tinted
39
+ * `pills`, or `bars` that also draw each value against the largest.
40
+ */
41
+ legend?: CardLegend;
42
+ /** The mark beside each legend label: `square` (default), `dot`, or `line`. */
43
+ legendSwatch?: ChartLegendSwatch;
32
44
  valueFormat?: Intl.NumberFormatOptions;
33
45
  locale?: string;
34
46
  formatValue?: (value: number) => string;
@@ -41,6 +53,7 @@ export interface FunnelChartCardProps<Row, Key extends NumericKey<Row>> {
41
53
  numberStyle?: AnimatedNumberVariant;
42
54
  palette?: ChartPalette;
43
55
  loading?: boolean;
56
+ loadingStyle?: ChartLoadingStyle;
44
57
  /** `none` turns off decorative motion; reduced-motion users get this automatically. */
45
58
  motion?: ChartMotion;
46
59
  className?: string;
@@ -54,9 +67,21 @@ export declare function stageShare(share: number | null): string;
54
67
  * stay level.
55
68
  */
56
69
  export declare function stagePath(index: number, height: number, next: number | null, curve: 'smooth' | 'linear'): string;
70
+ /**
71
+ * Upright strips that tile one stage's band from left to right, each as tall as the band where
72
+ * it stands, so a gradient mapped to each strip shades the band like a cylinder of that local
73
+ * thickness. Strips overlap a little; the stage's own outline trims them.
74
+ */
75
+ export declare function pipeStrips(index: number, height: number, next: number | null, curve: 'smooth' | 'linear'): {
76
+ x: number;
77
+ width: number;
78
+ half: number;
79
+ }[];
80
+ /** Half of a pipe's elliptical cross-section at `x`: the side facing `right` or left. */
81
+ export declare function pipeEnd(x: number, half: number, rx: number, side: 'left' | 'right'): string;
57
82
  /**
58
83
  * A funnel card: stages left to right, each band sized by its share of the first stage, with
59
84
  * its percentage on the band and its count in a tile beneath. Hovering a stage reads it in the
60
85
  * headline with the conversion from the step before.
61
86
  */
62
- export declare function FunnelChartCard<Row, const Key extends NumericKey<Row>>({ title, data: suppliedData, category, value, curve, colors, tracks, height, headline: suppliedHeadline, delta: suppliedDelta, deltaTone, range, ranges, defaultRange, valueFormat, locale, formatValue: suppliedFormatValue, color, surface, badge, numberStyle, palette, loading, motion: motionMode, className, style, }: FunnelChartCardProps<Row, Key>): ReactElement;
87
+ export declare function FunnelChartCard<Row, const Key extends NumericKey<Row>>({ title, data: suppliedData, category, value, curve, colors, tracks, depth, height, headline: suppliedHeadline, delta: suppliedDelta, deltaTone, range, ranges, defaultRange, valueFormat, legend, legendSwatch, locale, formatValue: suppliedFormatValue, color, surface, badge, numberStyle, palette, loading, loadingStyle, motion: motionMode, className, style, }: FunnelChartCardProps<Row, Key>): ReactElement;
@@ -1,5 +1,5 @@
1
1
  import { CSSProperties, ReactElement, ReactNode } from 'react';
2
- import { ChartMotion, ChartPalette, ChartStyle, ChartSurface } from '../types';
2
+ import { ChartLoadingStyle, ChartMotion, ChartPalette, ChartStyle, ChartSurface } from '../types';
3
3
  import { CardRange } from './cartesian-card';
4
4
  import { NumericKey, TextKey } from './keys';
5
5
  import { AnimatedNumberVariant } from '../motion/animated-number';
@@ -32,6 +32,11 @@ export interface HeatmapChartCardProps<Row, Key extends NumericKey<Row>> {
32
32
  radius?: number;
33
33
  /** Space between cells in pixels. Defaults to 4. */
34
34
  gap?: number;
35
+ /**
36
+ * Raises every cell as a cushioned tile with a lit top edge and a soft shadow. All tiles share
37
+ * one height: color still carries the value.
38
+ */
39
+ depth?: boolean;
35
40
  /** Resting headline. Defaults to the `aggregate` of every known cell. */
36
41
  headline?: number;
37
42
  /** Fractional change shown as a chip, e.g. 0.052 → +5.2%. */
@@ -54,6 +59,7 @@ export interface HeatmapChartCardProps<Row, Key extends NumericKey<Row>> {
54
59
  numberStyle?: AnimatedNumberVariant;
55
60
  palette?: ChartPalette;
56
61
  loading?: boolean;
62
+ loadingStyle?: ChartLoadingStyle;
57
63
  /** `none` turns off decorative motion; reduced-motion users get this automatically. */
58
64
  motion?: ChartMotion;
59
65
  className?: string;
@@ -104,4 +110,4 @@ export declare function labelTier(index: number, count: number): 'major' | 'mino
104
110
  * labeled. Hovering or focusing a cell reads it in the headline; arrow keys move between cells.
105
111
  * Missing cells are hatched and say "No data", so they never read as zero.
106
112
  */
107
- export declare function HeatmapChartCard<Row, const Key extends NumericKey<Row>>({ title, data: suppliedData, x, y, value, columns, rows: rowOrder, domain, aggregate, height, radius, gap, headline: suppliedHeadline, delta: suppliedDelta, deltaTone, range, ranges, defaultRange, valueFormat, locale, formatValue: suppliedFormatValue, color, surface, badge, numberStyle, palette, loading, motion: motionMode, className, style, }: HeatmapChartCardProps<Row, Key>): ReactElement;
113
+ export declare function HeatmapChartCard<Row, const Key extends NumericKey<Row>>({ title, data: suppliedData, x, y, value, columns, rows: rowOrder, domain, aggregate, height, radius, gap, depth, headline: suppliedHeadline, delta: suppliedDelta, deltaTone, range, ranges, defaultRange, valueFormat, locale, formatValue: suppliedFormatValue, color, surface, badge, numberStyle, palette, loading, loadingStyle, motion: motionMode, className, style, }: HeatmapChartCardProps<Row, Key>): ReactElement;
@@ -1,5 +1,5 @@
1
1
  import { CSSProperties, ReactElement, ReactNode } from 'react';
2
- import { ChartMotion, ChartPalette, ChartStyle, ChartSurface, RankingOrder } from '../types';
2
+ import { ChartLoadingStyle, ChartMotion, ChartPalette, ChartStyle, ChartSurface, RankingOrder } from '../types';
3
3
  import { CardRange } from './cartesian-card';
4
4
  import { NumericKey, TextKey } from './keys';
5
5
  import { AnimatedNumberVariant } from '../motion/animated-number';
@@ -33,9 +33,13 @@ export interface HorizontalBarChartCardProps<Row, Key extends NumericKey<Row>> {
33
33
  /** Number each row by rank. Defaults to false. */
34
34
  rank?: boolean;
35
35
  /**
36
- * `inline` (default) sets each label on a soft bar; `track` draws a slim bar under the label.
36
+ * `inline` (default) sets each label on a soft bar; `track` draws a slim bar under the label;
37
+ * `isometric` draws a solid block under the label whose front ends at the value, with a lit
38
+ * roof and a shaded end receding behind it.
37
39
  */
38
- barStyle?: 'inline' | 'track';
40
+ barStyle?: 'inline' | 'track' | 'isometric';
41
+ /** Shorthand for depth across every card family: here it makes `barStyle` default to `isometric`. */
42
+ depth?: boolean;
39
43
  valueFormat?: Intl.NumberFormatOptions;
40
44
  locale?: string;
41
45
  formatValue?: (value: number) => string;
@@ -48,6 +52,7 @@ export interface HorizontalBarChartCardProps<Row, Key extends NumericKey<Row>> {
48
52
  numberStyle?: AnimatedNumberVariant;
49
53
  palette?: ChartPalette;
50
54
  loading?: boolean;
55
+ loadingStyle?: ChartLoadingStyle;
51
56
  /** `none` turns off decorative motion; reduced-motion users get this automatically. */
52
57
  motion?: ChartMotion;
53
58
  className?: string;
@@ -57,4 +62,4 @@ export interface HorizontalBarChartCardProps<Row, Key extends NumericKey<Row>> {
57
62
  * A ranked list card: each row carries a bar, its value, and its share of the total. Hovering a
58
63
  * row reads it in the headline; click pins it and the arrow keys move through the list.
59
64
  */
60
- export declare function HorizontalBarChartCard<Row, const Key extends NumericKey<Row>>({ title, data: suppliedData, category, value, headline: suppliedHeadline, delta: suppliedDelta, deltaTone, range, ranges, defaultRange, sort, limit, otherLabel, share, rank, barStyle, valueFormat, locale, formatValue: suppliedFormatValue, color, surface, badge, numberStyle, palette, loading, motion: motionMode, className, style, }: HorizontalBarChartCardProps<Row, Key>): ReactElement;
65
+ export declare function HorizontalBarChartCard<Row, const Key extends NumericKey<Row>>({ title, data: suppliedData, category, value, headline: suppliedHeadline, delta: suppliedDelta, deltaTone, range, ranges, defaultRange, sort, limit, otherLabel, share, rank, depth, barStyle, valueFormat, locale, formatValue: suppliedFormatValue, color, surface, badge, numberStyle, palette, loading, loadingStyle, motion: motionMode, className, style, }: HorizontalBarChartCardProps<Row, Key>): ReactElement;
@@ -1,6 +1,6 @@
1
1
  import { CSSProperties, ReactElement, ReactNode } from 'react';
2
2
  import { AnimatedNumberVariant } from '../motion/animated-number';
3
- import { ChartMotion, ChartPalette, ChartStyle, ChartSurface } from '../types';
3
+ import { ChartLoadingStyle, ChartMotion, ChartPalette, ChartStyle, ChartSurface } from '../types';
4
4
  export interface ProgressRange {
5
5
  id: string;
6
6
  label: string;
@@ -22,6 +22,11 @@ export interface ProgressCardProps {
22
22
  * a half ring that opens downward.
23
23
  */
24
24
  variant?: 'ring' | 'thick' | 'gauge';
25
+ /**
26
+ * Gives the ring depth: the fill is lit as a tube and the track becomes a groove. The arc keeps
27
+ * its exact angle.
28
+ */
29
+ depth?: boolean;
25
30
  /** Fractional change shown as a chip, e.g. 0.052 → +5.2%. */
26
31
  delta?: number;
27
32
  deltaTone?: 'default' | 'inverse' | 'neutral';
@@ -44,6 +49,7 @@ export interface ProgressCardProps {
44
49
  numberStyle?: AnimatedNumberVariant;
45
50
  palette?: ChartPalette;
46
51
  loading?: boolean;
52
+ loadingStyle?: ChartLoadingStyle;
47
53
  motion?: ChartMotion;
48
54
  className?: string;
49
55
  style?: CSSProperties | ChartStyle;
@@ -52,4 +58,4 @@ export interface ProgressCardProps {
52
58
  * One value against a goal: the value in the header, and a large ring or gauge with the
53
59
  * percentage reached. Past the goal the ring stays full and the percentage keeps counting.
54
60
  */
55
- export declare function ProgressCard({ title, value: suppliedValue, target: suppliedTarget, label, variant, delta: suppliedDelta, deltaTone, range, ranges, defaultRange, footer, valueFormat, locale, formatValue, color, surface, badge, numberStyle, palette, loading, motion: motionMode, className, style, }: ProgressCardProps): ReactElement;
61
+ export declare function ProgressCard({ title, value: suppliedValue, target: suppliedTarget, label, variant, depth, delta: suppliedDelta, deltaTone, range, ranges, defaultRange, footer, valueFormat, locale, formatValue, color, surface, badge, numberStyle, palette, loading, loadingStyle, motion: motionMode, className, style, }: ProgressCardProps): ReactElement;
@@ -1,5 +1,5 @@
1
1
  import { CSSProperties, ReactElement, ReactNode } from 'react';
2
- import { ChartMotion, ChartPalette, ChartStyle, ChartSurface } from '../types';
2
+ import { ChartLoadingStyle, ChartMotion, ChartPalette, ChartStyle, ChartSurface, CardLegend, ChartLegendSwatch } from '../types';
3
3
  import { CardRange, CardSeries } from './cartesian-card';
4
4
  import { NumericKey, TextKey } from './keys';
5
5
  import { AnimatedNumberVariant } from '../motion/animated-number';
@@ -34,6 +34,13 @@ export interface RadarChartCardProps<Row, Key extends NumericKey<Row>> {
34
34
  /** Period select. Each range replaces data, delta, and headline; profiles ease to their shape. */
35
35
  ranges?: readonly CardRange<Row>[];
36
36
  defaultRange?: string;
37
+ /**
38
+ * How the legend lays out: value `tiles` (default), compact `inline` labels, `list` rows, tinted
39
+ * `pills`, or `bars` that also draw each value against the largest.
40
+ */
41
+ legend?: CardLegend;
42
+ /** The mark beside each legend label: `square` (default), `dot`, or `line`. */
43
+ legendSwatch?: ChartLegendSwatch;
37
44
  valueFormat?: Intl.NumberFormatOptions;
38
45
  locale?: string;
39
46
  formatValue?: (value: number) => string;
@@ -44,6 +51,7 @@ export interface RadarChartCardProps<Row, Key extends NumericKey<Row>> {
44
51
  numberStyle?: AnimatedNumberVariant;
45
52
  palette?: ChartPalette;
46
53
  loading?: boolean;
54
+ loadingStyle?: ChartLoadingStyle;
47
55
  /** `none` turns off decorative motion; reduced-motion users get this automatically. */
48
56
  motion?: ChartMotion;
49
57
  className?: string;
@@ -89,5 +97,5 @@ export declare function profilePath(fractions: readonly (number | null)[], radiu
89
97
  * shape of strengths and gaps reads at a glance. Hovering or stepping around the spokes reads
90
98
  * every profile at that dimension.
91
99
  */
92
- export declare function RadarChartCard<Row, const Key extends NumericKey<Row>>({ title, data: suppliedData, category, series, domain: suppliedDomain, aggregate, grid, height, headline: suppliedHeadline, delta: suppliedDelta, deltaTone, range, ranges, defaultRange, valueFormat, locale, formatValue: suppliedFormatValue, surface, badge, numberStyle, palette, loading, motion: motionMode, className, style, }: RadarChartCardProps<Row, Key>): ReactElement;
100
+ export declare function RadarChartCard<Row, const Key extends NumericKey<Row>>({ title, data: suppliedData, category, series, domain: suppliedDomain, aggregate, grid, height, headline: suppliedHeadline, delta: suppliedDelta, deltaTone, range, ranges, defaultRange, valueFormat, legend, legendSwatch, locale, formatValue: suppliedFormatValue, surface, badge, numberStyle, palette, loading, loadingStyle, motion: motionMode, className, style, }: RadarChartCardProps<Row, Key>): ReactElement;
93
101
  export {};
@@ -1,5 +1,5 @@
1
1
  import { CSSProperties, ReactElement, ReactNode } from 'react';
2
- import { ChartMotion, ChartPalette, ChartStyle, ChartSurface, RankingOrder } from '../types';
2
+ import { ChartMotion, ChartLoadingStyle, ChartPalette, ChartStyle, ChartSurface, RankingOrder, CardLegend, ChartLegendSwatch } from '../types';
3
3
  import { CardRange } from './cartesian-card';
4
4
  import { NumericKey, TextKey } from './keys';
5
5
  import { RankedRow } from './rank';
@@ -19,10 +19,19 @@ export interface RadialChartCardProps<Row, Key extends NumericKey<Row>> {
19
19
  */
20
20
  variant?: RadialChartCardVariant;
21
21
  /**
22
- * `list` rows with value and share, value `tiles`, or an `inline` key. Defaults to tiles for
23
- * rings, inline for semi, and list otherwise.
22
+ * Gives the chart depth: every band is lit as a tube from the upper left, ring tracks become
23
+ * grooves, and a soft shadow lifts the chart off the card. Outlines keep their exact angles,
24
+ * so shares read the same as the flat chart.
24
25
  */
25
- legend?: 'list' | 'tiles' | 'inline';
26
+ depth?: boolean;
27
+ /**
28
+ * `list` rows with value and share, value `tiles`, an `inline` key, tinted `pills`, or `bars`
29
+ * that also draw each value against the largest. Defaults to tiles for rings, inline for semi,
30
+ * and list otherwise.
31
+ */
32
+ legend?: CardLegend;
33
+ /** The mark beside each legend label: `square` (default), `dot`, or `line`. */
34
+ legendSwatch?: ChartLegendSwatch;
26
35
  /** Resting headline. Defaults to the total of every slice. */
27
36
  headline?: number;
28
37
  /** Fractional change shown as a chip, e.g. 0.082 → +8.2%. */
@@ -52,6 +61,8 @@ export interface RadialChartCardProps<Row, Key extends NumericKey<Row>> {
52
61
  numberStyle?: AnimatedNumberVariant;
53
62
  palette?: ChartPalette;
54
63
  loading?: boolean;
64
+ /** Shimmer (default), a clockwise draw, or a gentle pulse. Honors reduced motion. */
65
+ loadingStyle?: ChartLoadingStyle;
55
66
  /** `none` turns off decorative motion; reduced-motion users get this automatically. */
56
67
  motion?: ChartMotion;
57
68
  className?: string;
@@ -75,5 +86,5 @@ export declare function ringAngles(rows: readonly RankedRow[]): Slice[];
75
86
  * A donut or pie card: the headline total, slices with a matching legend, and each slice's
76
87
  * share. Hovering a slice or a legend row reads it in the headline.
77
88
  */
78
- export declare function RadialChartCard<Row, const Key extends NumericKey<Row>>({ title, data: suppliedData, category, value, variant, legend, headline: suppliedHeadline, delta: suppliedDelta, deltaTone, range, ranges, defaultRange, limit, otherLabel, sort, valueFormat, locale, formatValue: suppliedFormatValue, surface, badge, numberStyle, palette, loading, motion: motionMode, className, style, }: RadialChartCardProps<Row, Key>): ReactElement;
89
+ export declare function RadialChartCard<Row, const Key extends NumericKey<Row>>({ title, data: suppliedData, category, value, variant, depth, legend, legendSwatch, headline: suppliedHeadline, delta: suppliedDelta, deltaTone, range, ranges, defaultRange, limit, otherLabel, sort, valueFormat, locale, formatValue: suppliedFormatValue, surface, badge, numberStyle, palette, loading, loadingStyle, motion: motionMode, className, style, }: RadialChartCardProps<Row, Key>): ReactElement;
79
90
  export {};
@@ -17,6 +17,8 @@ export interface RangeChartCardProps<Row, Key extends NumericKey<Row>> extends S
17
17
  color?: string;
18
18
  /** `bar` (default) floats a bar from low to high; `error` draws whiskers around the value. */
19
19
  display?: 'bar' | 'error';
20
+ /** Draws each bar as a solid block receding up and to the right. Error bars stay flat. */
21
+ depth?: boolean;
20
22
  /** Per-series stat tile under the plot. Defaults to false. */
21
23
  tiles?: boolean;
22
24
  }
@@ -24,5 +26,5 @@ export interface RangeChartCardProps<Row, Key extends NumericKey<Row>> extends S
24
26
  * Ranges per observation: floating bars from low to high, or error bars around a value. The
25
27
  * headline summarizes the values (the mean by default) and hover reads the range's ends.
26
28
  */
27
- export declare function RangeChartCard<Row, const Key extends NumericKey<Row>>({ low, high, value, label, color, display, aggregate, tiles, ...props }: RangeChartCardProps<Row, Key>): ReactElement;
29
+ export declare function RangeChartCard<Row, const Key extends NumericKey<Row>>({ low, high, value, label, color, display, depth, aggregate, tiles, ...props }: RangeChartCardProps<Row, Key>): ReactElement;
28
30
  export {};
@@ -1,6 +1,6 @@
1
1
  import { CSSProperties, ReactElement, ReactNode } from 'react';
2
2
  import { SankeyGraph, SankeyLink, SankeyNode } from '../engine/sankey';
3
- import { ChartMotion, ChartPalette, ChartStyle, ChartSurface } from '../types';
3
+ import { ChartLoadingStyle, ChartMotion, ChartPalette, ChartStyle, ChartSurface } from '../types';
4
4
  import { CardRange } from './cartesian-card';
5
5
  import { NumericKey, TextKey } from './keys';
6
6
  import { AnimatedNumberVariant } from '../motion/animated-number';
@@ -20,6 +20,11 @@ export interface SankeyChartCardProps<Row, Key extends NumericKey<Row>> {
20
20
  */
21
21
  conservation?: 'loss' | 'strict';
22
22
  /** Plot height in pixels. Defaults to 280. */
23
+ /**
24
+ * Gives the diagram depth: flows become lit pipes and nodes small blocks. Flow widths and node
25
+ * heights stay exact.
26
+ */
27
+ depth?: boolean;
23
28
  height?: number;
24
29
  /** Resting headline. Defaults to everything entering the first steps. */
25
30
  headline?: number;
@@ -41,6 +46,7 @@ export interface SankeyChartCardProps<Row, Key extends NumericKey<Row>> {
41
46
  numberStyle?: AnimatedNumberVariant;
42
47
  palette?: ChartPalette;
43
48
  loading?: boolean;
49
+ loadingStyle?: ChartLoadingStyle;
44
50
  /** `none` turns off decorative motion; reduced-motion users get this automatically. */
45
51
  motion?: ChartMotion;
46
52
  className?: string;
@@ -65,5 +71,5 @@ export declare function sankeyGraph<Row>({ data, source, target, value, conserva
65
71
  * amount that moved. Hovering or stepping through flows with the arrow keys reads each in the
66
72
  * headline with its share of the step it left.
67
73
  */
68
- export declare function SankeyChartCard<Row, const Key extends NumericKey<Row>>({ title, data: suppliedData, source, target, value, conservation, height, headline: suppliedHeadline, delta: suppliedDelta, deltaTone, range, ranges, defaultRange, valueFormat, locale, formatValue: suppliedFormatValue, surface, badge, numberStyle, palette, loading, motion: motionMode, className, style, }: SankeyChartCardProps<Row, Key>): ReactElement;
74
+ export declare function SankeyChartCard<Row, const Key extends NumericKey<Row>>({ title, data: suppliedData, source, target, value, conservation, depth, height, headline: suppliedHeadline, delta: suppliedDelta, deltaTone, range, ranges, defaultRange, valueFormat, locale, formatValue: suppliedFormatValue, surface, badge, numberStyle, palette, loading, loadingStyle, motion: motionMode, className, style, }: SankeyChartCardProps<Row, Key>): ReactElement;
69
75
  export {};
@@ -1,5 +1,5 @@
1
1
  import { CSSProperties, ReactElement, ReactNode } from 'react';
2
- import { ChartMotion, ChartPalette, ChartStyle, ChartSurface } from '../types';
2
+ import { ChartLoadingStyle, ChartMotion, ChartPalette, ChartStyle, ChartSurface, CardLegend, ChartLegendSwatch } from '../types';
3
3
  import { CardRange } from './cartesian-card';
4
4
  import { NumericKey, TextKey } from './keys';
5
5
  import { AnimatedNumberVariant } from '../motion/animated-number';
@@ -26,6 +26,8 @@ export interface ScatterChartCardProps<Row, Key extends NumericKey<Row>> {
26
26
  yLabel?: string;
27
27
  /** A least-squares line through the points, with its r² in the footer. */
28
28
  trend?: boolean;
29
+ /** Draws each point as a lit sphere with a soft contact shadow; centers and sizes stay exact. */
30
+ depth?: boolean;
29
31
  /** Plot height in pixels, including the axes. Defaults to 260. */
30
32
  height?: number;
31
33
  /** How the resting headline sums up `y`: `sum` (default), `mean`, or `max`. */
@@ -40,6 +42,13 @@ export interface ScatterChartCardProps<Row, Key extends NumericKey<Row>> {
40
42
  /** Period select. Each range replaces data, delta, and headline; points glide to their place. */
41
43
  ranges?: readonly CardRange<Row>[];
42
44
  defaultRange?: string;
45
+ /**
46
+ * How the legend lays out: value `tiles` (default), compact `inline` labels, `list` rows, tinted
47
+ * `pills`, or `bars` that also draw each value against the largest.
48
+ */
49
+ legend?: CardLegend;
50
+ /** The mark beside each legend label: `square` (default), `dot`, or `line`. */
51
+ legendSwatch?: ChartLegendSwatch;
43
52
  /** Number format for `y`: the headline, legend, and y axis. */
44
53
  valueFormat?: Intl.NumberFormatOptions;
45
54
  /** Number format for `x`, e.g. `{ style: 'currency', currency: 'USD' }`. */
@@ -56,6 +65,7 @@ export interface ScatterChartCardProps<Row, Key extends NumericKey<Row>> {
56
65
  numberStyle?: AnimatedNumberVariant;
57
66
  palette?: ChartPalette;
58
67
  loading?: boolean;
68
+ loadingStyle?: ChartLoadingStyle;
59
69
  /** `none` turns off decorative motion; reduced-motion users get this automatically. */
60
70
  motion?: ChartMotion;
61
71
  className?: string;
@@ -88,4 +98,4 @@ export declare function clipTrend(fit: {
88
98
  * and colored by group. Hovering or stepping through points with the arrow keys reads each one in
89
99
  * the headline, with its position marked on both axes.
90
100
  */
91
- export declare function ScatterChartCard<Row, const Key extends NumericKey<Row>>({ title, data: suppliedData, x, y, size, sizeLabel, group, label, xLabel, yLabel, trend, height, aggregate, headline: suppliedHeadline, delta: suppliedDelta, deltaTone, range, ranges, defaultRange, valueFormat, xFormat, locale, formatValue: suppliedFormatValue, formatX: suppliedFormatX, color, surface, badge, numberStyle, palette, loading, motion: motionMode, className, style, }: ScatterChartCardProps<Row, Key>): ReactElement;
101
+ export declare function ScatterChartCard<Row, const Key extends NumericKey<Row>>({ title, data: suppliedData, x, y, size, sizeLabel, group, label, xLabel, yLabel, trend, depth, height, aggregate, headline: suppliedHeadline, delta: suppliedDelta, deltaTone, range, ranges, defaultRange, valueFormat, legend, legendSwatch, xFormat, locale, formatValue: suppliedFormatValue, formatX: suppliedFormatX, color, surface, badge, numberStyle, palette, loading, loadingStyle, motion: motionMode, className, style, }: ScatterChartCardProps<Row, Key>): ReactElement;
@@ -1,6 +1,6 @@
1
1
  import { CSSProperties, ReactElement, ReactNode } from 'react';
2
2
  import { SlopeOrder } from '../engine/slope';
3
- import { ChartMotion, ChartPalette, ChartStyle, ChartSurface } from '../types';
3
+ import { ChartLoadingStyle, ChartMotion, ChartPalette, ChartStyle, ChartSurface } from '../types';
4
4
  import { CardRange } from './cartesian-card';
5
5
  import { NumericKey, TextKey } from './keys';
6
6
  import { AnimatedNumberVariant } from '../motion/animated-number';
@@ -24,6 +24,11 @@ export interface SlopeChartCardProps<Row, Key extends NumericKey<Row>> {
24
24
  * categories as rows with both values on one shared scale.
25
25
  */
26
26
  variant?: 'slope' | 'dumbbell';
27
+ /**
28
+ * Draws each change as a lit tube between two spheres, with a soft shadow. Ends stay exactly on
29
+ * their values.
30
+ */
31
+ depth?: boolean;
27
32
  /** `change` (default) puts the largest gain first, `to` the largest later value, `input` keeps your order. */
28
33
  sort?: SlopeOrder;
29
34
  /**
@@ -59,6 +64,7 @@ export interface SlopeChartCardProps<Row, Key extends NumericKey<Row>> {
59
64
  numberStyle?: AnimatedNumberVariant;
60
65
  palette?: ChartPalette;
61
66
  loading?: boolean;
67
+ loadingStyle?: ChartLoadingStyle;
62
68
  /** `none` turns off decorative motion; reduced-motion users get this automatically. */
63
69
  motion?: ChartMotion;
64
70
  className?: string;
@@ -70,4 +76,4 @@ export interface SlopeChartCardProps<Row, Key extends NumericKey<Row>> {
70
76
  * category reads its later value and change in the headline; click pins it, and the arrow keys
71
77
  * move through categories.
72
78
  */
73
- export declare function SlopeChartCard<Row, const Key extends NumericKey<Row>>({ title, data: suppliedData, category, from, to, fromLabel, toLabel, variant, sort, aggregate, headline: suppliedHeadline, delta: suppliedDelta, deltaTone, range, ranges, defaultRange, color, height, valueFormat, locale, formatValue: suppliedFormatValue, surface, badge, numberStyle, palette, loading, motion: motionMode, className, style, }: SlopeChartCardProps<Row, Key>): ReactElement;
79
+ export declare function SlopeChartCard<Row, const Key extends NumericKey<Row>>({ title, data: suppliedData, category, from, to, fromLabel, toLabel, variant, depth, sort, aggregate, headline: suppliedHeadline, delta: suppliedDelta, deltaTone, range, ranges, defaultRange, color, height, valueFormat, locale, formatValue: suppliedFormatValue, surface, badge, numberStyle, palette, loading, loadingStyle, motion: motionMode, className, style, }: SlopeChartCardProps<Row, Key>): ReactElement;