@sproutsocial/seeds-react-data-viz 0.14.0 → 0.16.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.
@@ -0,0 +1,151 @@
1
+ import {
2
+ ChartRenderer,
3
+ buildAnnotationConfig,
4
+ buildBaseChartOptions,
5
+ buildDimensionalAxis,
6
+ defaultValueAxisLabelFormatter,
7
+ makeValueAxisLabelFormatter,
8
+ resolveTooltipTimezone,
9
+ useSeedsChartSetup
10
+ } from "../chunk-ZXXFRUVF.js";
11
+ import {
12
+ areaChartStyles,
13
+ lineChartStyles
14
+ } from "../chunk-LC3HGWDD.js";
15
+
16
+ // src/charts/line-area/LineAreaChart.tsx
17
+ import { memo, useMemo } from "react";
18
+
19
+ // src/charts/line-area/adapter.ts
20
+ var AREA_VARIANTS = /* @__PURE__ */ new Set(["area", "areaspline"]);
21
+ function pointY(point) {
22
+ if (point === null) return null;
23
+ if (typeof point === "number") return point;
24
+ if (Array.isArray(point)) return point[1];
25
+ return point.y;
26
+ }
27
+ function withIsolatedPointMarkers(data) {
28
+ return data.map((point, i) => {
29
+ if (point === null) return null;
30
+ if (pointY(point) === null) return point;
31
+ const prevY = i === 0 ? null : pointY(data[i - 1]);
32
+ const nextY = i === data.length - 1 ? null : pointY(data[i + 1]);
33
+ if (prevY !== null || nextY !== null) return point;
34
+ const marker = { enabled: true, symbol: "circle" };
35
+ if (typeof point === "number") return { y: point, marker };
36
+ if (Array.isArray(point)) return { x: point[0], y: point[1], marker };
37
+ return { ...point, marker };
38
+ });
39
+ }
40
+ function buildLineAreaChartOptions(props) {
41
+ const tooltipTimezone = resolveTooltipTimezone(props.xAxis, props.timezone);
42
+ const isStacked = AREA_VARIANTS.has(props.variant) && Boolean(props.stacking);
43
+ const { annotations, lookup: annotationLookup } = buildAnnotationConfig(
44
+ props.annotations
45
+ );
46
+ const options = {
47
+ ...buildBaseChartOptions({
48
+ type: props.variant,
49
+ description: props.description,
50
+ valueSuffix: props.valueSuffix,
51
+ reserveTopMargin: Boolean(annotations),
52
+ timezone: tooltipTimezone
53
+ }),
54
+ xAxis: buildDimensionalAxis(props.xAxis, tooltipTimezone ?? "UTC"),
55
+ yAxis: {
56
+ min: props.yAxis?.min,
57
+ max: props.yAxis?.max,
58
+ // Anchor the value axis to 0 (like v1/bar/area): line/spline otherwise
59
+ // auto-scale above 0, which truncates the axis and pushes the annotation
60
+ // anchor (y: 0) out of range. `soft` still extends for negative data.
61
+ softMin: 0,
62
+ softMax: 0,
63
+ gridLineWidth: props.yAxis?.showGridLines === false ? 0 : 1,
64
+ title: { text: props.yAxis?.title ?? "" },
65
+ // Zero-config default: abbreviate value-axis ticks (1.20K / 1.20M / 1.20B).
66
+ labels: {
67
+ // A declarative `format` drives ticks through the shared valueFormatter;
68
+ // absent it, the zero-config decimal default (1.20K / 1.20M / 1.20B).
69
+ formatter: props.yAxis?.format ? makeValueAxisLabelFormatter(props.yAxis.format) : defaultValueAxisLabelFormatter
70
+ }
71
+ },
72
+ plotOptions: {
73
+ series: {
74
+ animation: false,
75
+ // Hide point markers by default (matching v1 + designs); isolated points
76
+ // re-enable their own marker via `withIsolatedPointMarkers`.
77
+ marker: { enabled: false },
78
+ ...props.onClick ? {
79
+ point: {
80
+ events: {
81
+ click: (event) => props.onClick({ position: event.point.x })
82
+ }
83
+ }
84
+ } : {}
85
+ },
86
+ // Type-scoped stacking: only the (area) variant stacks. `isStacked` already
87
+ // guarantees `props.variant` is an area variant here, so the computed key is
88
+ // always a valid plotOptions slot. Matches bar's per-type placement and keeps
89
+ // line/spline unstacked.
90
+ ...isStacked ? { [props.variant]: { stacking: props.stacking } } : {}
91
+ },
92
+ series: props.series.map((s) => ({
93
+ type: props.variant,
94
+ name: s.name,
95
+ data: withIsolatedPointMarkers(s.data)
96
+ })),
97
+ ...annotations ? { annotations } : {}
98
+ };
99
+ return { options, annotationLookup, tooltipTimezone };
100
+ }
101
+
102
+ // src/charts/line-area/styles.ts
103
+ import styled from "styled-components";
104
+ var LineAreaChartContainer = styled.div`
105
+ background-color: ${({ theme }) => theme.colors.container.background.base};
106
+ ${(props) => props.$isArea ? areaChartStyles : lineChartStyles}
107
+ `;
108
+
109
+ // src/charts/line-area/LineAreaChart.tsx
110
+ import { jsx } from "react/jsx-runtime";
111
+ var AREA_VARIANTS2 = /* @__PURE__ */ new Set(["area", "areaspline"]);
112
+ var LineAreaChart = memo(function LineAreaChart2(props) {
113
+ const { colors, patterns } = useSeedsChartSetup({
114
+ series: props.series,
115
+ includePatterns: true
116
+ });
117
+ const { options, annotationLookup, tooltipTimezone } = useMemo(
118
+ () => buildLineAreaChartOptions(props),
119
+ [props]
120
+ );
121
+ const hasOnClick = Boolean(props.onClick);
122
+ return /* @__PURE__ */ jsx(
123
+ LineAreaChartContainer,
124
+ {
125
+ $colors: colors,
126
+ $patterns: patterns,
127
+ $hasOnClick: hasOnClick,
128
+ $isArea: AREA_VARIANTS2.has(props.variant),
129
+ className: props.className,
130
+ children: /* @__PURE__ */ jsx(
131
+ ChartRenderer,
132
+ {
133
+ options,
134
+ series: props.series,
135
+ colors,
136
+ tooltip: props.tooltip,
137
+ annotationLookup,
138
+ hasOnClick,
139
+ tooltipClickLabel: props.tooltipClickLabel,
140
+ timezone: tooltipTimezone,
141
+ invalidNumberLabel: props.invalidNumberLabel,
142
+ onReady: props.onReady
143
+ }
144
+ )
145
+ }
146
+ );
147
+ });
148
+ export {
149
+ LineAreaChart
150
+ };
151
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/charts/line-area/LineAreaChart.tsx","../../../src/charts/line-area/adapter.ts","../../../src/charts/line-area/styles.ts"],"sourcesContent":["import { memo, useMemo } from \"react\";\nimport { useSeedsChartSetup, ChartRenderer } from \"../shared/chartBase\";\nimport { buildLineAreaChartOptions } from \"./adapter\";\nimport { LineAreaChartContainer } from \"./styles\";\nimport type { LineAreaChartProps, LineAreaVariant } from \"./types\";\n\nconst AREA_VARIANTS = new Set<LineAreaVariant>([\"area\", \"areaspline\"]);\n\nexport const LineAreaChart = memo(function LineAreaChart(\n props: LineAreaChartProps\n) {\n const { colors, patterns } = useSeedsChartSetup({\n series: props.series,\n includePatterns: true,\n });\n const { options, annotationLookup, tooltipTimezone } = useMemo(\n () => buildLineAreaChartOptions(props),\n [props]\n );\n const hasOnClick = Boolean(props.onClick);\n\n return (\n <LineAreaChartContainer\n $colors={colors}\n $patterns={patterns}\n $hasOnClick={hasOnClick}\n $isArea={AREA_VARIANTS.has(props.variant)}\n className={props.className}\n >\n <ChartRenderer\n options={options}\n series={props.series}\n colors={colors}\n tooltip={props.tooltip}\n annotationLookup={annotationLookup}\n hasOnClick={hasOnClick}\n tooltipClickLabel={props.tooltipClickLabel}\n timezone={tooltipTimezone}\n invalidNumberLabel={props.invalidNumberLabel}\n onReady={props.onReady}\n />\n </LineAreaChartContainer>\n );\n});\n","import { buildAnnotationConfig } from \"../shared/annotations\";\nimport type { ChartAnnotationLookup } from \"../shared/annotations\";\nimport type {\n SeedsChartDataPoint,\n SeedsChartOptions,\n} from \"../shared/chartBase\";\nimport { buildBaseChartOptions } from \"../shared/baseChartOptions\";\nimport {\n buildDimensionalAxis,\n resolveTooltipTimezone,\n} from \"../shared/axisOptions\";\nimport {\n defaultValueAxisLabelFormatter,\n makeValueAxisLabelFormatter,\n} from \"../shared/valueAxisLabelFormatter\";\nimport type { ChartDataPoint } from \"../shared/axis\";\nimport type { LineAreaChartProps, LineAreaVariant } from \"./types\";\n\n// `stacking` is meaningful only for filled variants; on `line`/`spline` it's a\n// no-op, so the adapter drops it rather than emitting a misleading option.\nconst AREA_VARIANTS = new Set<LineAreaVariant>([\"area\", \"areaspline\"]);\n\ntype SeriesPoint =\n | number\n | null\n | [number, number | null]\n | SeedsChartDataPoint;\n\nfunction pointY(point: ChartDataPoint): number | null {\n if (point === null) return null;\n if (typeof point === \"number\") return point;\n if (Array.isArray(point)) return point[1];\n return point.y;\n}\n\n// Mirrors v1's marker handling: point markers are hidden by default (set on\n// `plotOptions.series`), but an *isolated* non-null point — one with a null (or\n// the chart edge) on both sides — gets a circle marker so a point with no\n// connecting line segment stays visible. Connected points pass through\n// unchanged so the line/area renders dot-free, matching v1 and the designs.\nfunction withIsolatedPointMarkers(\n data: ReadonlyArray<ChartDataPoint>\n): SeriesPoint[] {\n return data.map((point, i): SeriesPoint => {\n if (point === null) return null; // explicit gap\n if (pointY(point) === null) return point; // tuple/object with null y — a gap\n const prevY = i === 0 ? null : pointY(data[i - 1]!);\n const nextY = i === data.length - 1 ? null : pointY(data[i + 1]!);\n if (prevY !== null || nextY !== null) return point; // connected → no marker\n const marker = { enabled: true, symbol: \"circle\" as const };\n if (typeof point === \"number\") return { y: point, marker };\n if (Array.isArray(point)) return { x: point[0], y: point[1], marker };\n return { ...point, marker };\n });\n}\n\nexport function buildLineAreaChartOptions(props: LineAreaChartProps): {\n options: SeedsChartOptions;\n annotationLookup: ChartAnnotationLookup | undefined;\n /** Resolved timezone for the tooltip date formatter; undefined on category axes. */\n tooltipTimezone: string | undefined;\n} {\n const tooltipTimezone = resolveTooltipTimezone(props.xAxis, props.timezone);\n const isStacked = AREA_VARIANTS.has(props.variant) && Boolean(props.stacking);\n const { annotations, lookup: annotationLookup } = buildAnnotationConfig(\n props.annotations\n );\n\n const options: SeedsChartOptions = {\n ...buildBaseChartOptions({\n type: props.variant,\n description: props.description,\n valueSuffix: props.valueSuffix,\n reserveTopMargin: Boolean(annotations),\n timezone: tooltipTimezone,\n }),\n xAxis: buildDimensionalAxis(props.xAxis, tooltipTimezone ?? \"UTC\"),\n yAxis: {\n min: props.yAxis?.min,\n max: props.yAxis?.max,\n // Anchor the value axis to 0 (like v1/bar/area): line/spline otherwise\n // auto-scale above 0, which truncates the axis and pushes the annotation\n // anchor (y: 0) out of range. `soft` still extends for negative data.\n softMin: 0,\n softMax: 0,\n gridLineWidth: props.yAxis?.showGridLines === false ? 0 : 1,\n title: { text: props.yAxis?.title ?? \"\" },\n // Zero-config default: abbreviate value-axis ticks (1.20K / 1.20M / 1.20B).\n labels: {\n // A declarative `format` drives ticks through the shared valueFormatter;\n // absent it, the zero-config decimal default (1.20K / 1.20M / 1.20B).\n formatter: props.yAxis?.format\n ? makeValueAxisLabelFormatter(props.yAxis.format)\n : defaultValueAxisLabelFormatter,\n },\n },\n plotOptions: {\n series: {\n animation: false,\n // Hide point markers by default (matching v1 + designs); isolated points\n // re-enable their own marker via `withIsolatedPointMarkers`.\n marker: { enabled: false },\n ...(props.onClick\n ? {\n point: {\n events: {\n click: (event) => props.onClick!({ position: event.point.x }),\n },\n },\n }\n : {}),\n },\n // Type-scoped stacking: only the (area) variant stacks. `isStacked` already\n // guarantees `props.variant` is an area variant here, so the computed key is\n // always a valid plotOptions slot. Matches bar's per-type placement and keeps\n // line/spline unstacked.\n ...(isStacked ? { [props.variant]: { stacking: props.stacking } } : {}),\n },\n series: props.series.map((s) => ({\n type: props.variant,\n name: s.name,\n data: withIsolatedPointMarkers(s.data),\n })),\n ...(annotations ? { annotations } : {}),\n };\n\n return { options, annotationLookup, tooltipTimezone };\n}\n","import styled from \"styled-components\";\nimport { lineChartStyles, areaChartStyles } from \"../../styles/chartStyles\";\nimport type {\n TypeChartStyleColor,\n TypeChartStyleHasOnClick,\n TypeChartStylePattern,\n} from \"../../types\";\n\ntype StyleProps = Readonly<{\n $colors: ReadonlyArray<TypeChartStyleColor>;\n $patterns: ReadonlyArray<TypeChartStylePattern>;\n $hasOnClick: TypeChartStyleHasOnClick;\n /** `area`/`areaspline` fill below the line; `line`/`spline` show only the stroke. */\n $isArea: boolean;\n}>;\n\n// Plain styled `div` — not `Box`. Per the DS Tailwind direction, components\n// render semantic elements internally (and accept `className`) rather than\n// depending on the `Box` component. The container background — previously Box's\n// `bg` prop — is set explicitly here.\n//\n// The line/area CSS is still v1's styled-components layer (`chartStyles.ts`);\n// migrating those styles to CSS modules is a tracked clean-up follow-up.\nexport const LineAreaChartContainer = styled.div<StyleProps>`\n background-color: ${({ theme }) => theme.colors.container.background.base};\n ${(props) => (props.$isArea ? areaChartStyles : lineChartStyles)}\n`;\n"],"mappings":";;;;;;;;;;;;;;;;AAAA,SAAS,MAAM,eAAe;;;ACoB9B,IAAM,gBAAgB,oBAAI,IAAqB,CAAC,QAAQ,YAAY,CAAC;AAQrE,SAAS,OAAO,OAAsC;AACpD,MAAI,UAAU,KAAM,QAAO;AAC3B,MAAI,OAAO,UAAU,SAAU,QAAO;AACtC,MAAI,MAAM,QAAQ,KAAK,EAAG,QAAO,MAAM,CAAC;AACxC,SAAO,MAAM;AACf;AAOA,SAAS,yBACP,MACe;AACf,SAAO,KAAK,IAAI,CAAC,OAAO,MAAmB;AACzC,QAAI,UAAU,KAAM,QAAO;AAC3B,QAAI,OAAO,KAAK,MAAM,KAAM,QAAO;AACnC,UAAM,QAAQ,MAAM,IAAI,OAAO,OAAO,KAAK,IAAI,CAAC,CAAE;AAClD,UAAM,QAAQ,MAAM,KAAK,SAAS,IAAI,OAAO,OAAO,KAAK,IAAI,CAAC,CAAE;AAChE,QAAI,UAAU,QAAQ,UAAU,KAAM,QAAO;AAC7C,UAAM,SAAS,EAAE,SAAS,MAAM,QAAQ,SAAkB;AAC1D,QAAI,OAAO,UAAU,SAAU,QAAO,EAAE,GAAG,OAAO,OAAO;AACzD,QAAI,MAAM,QAAQ,KAAK,EAAG,QAAO,EAAE,GAAG,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,OAAO;AACpE,WAAO,EAAE,GAAG,OAAO,OAAO;AAAA,EAC5B,CAAC;AACH;AAEO,SAAS,0BAA0B,OAKxC;AACA,QAAM,kBAAkB,uBAAuB,MAAM,OAAO,MAAM,QAAQ;AAC1E,QAAM,YAAY,cAAc,IAAI,MAAM,OAAO,KAAK,QAAQ,MAAM,QAAQ;AAC5E,QAAM,EAAE,aAAa,QAAQ,iBAAiB,IAAI;AAAA,IAChD,MAAM;AAAA,EACR;AAEA,QAAM,UAA6B;AAAA,IACjC,GAAG,sBAAsB;AAAA,MACvB,MAAM,MAAM;AAAA,MACZ,aAAa,MAAM;AAAA,MACnB,aAAa,MAAM;AAAA,MACnB,kBAAkB,QAAQ,WAAW;AAAA,MACrC,UAAU;AAAA,IACZ,CAAC;AAAA,IACD,OAAO,qBAAqB,MAAM,OAAO,mBAAmB,KAAK;AAAA,IACjE,OAAO;AAAA,MACL,KAAK,MAAM,OAAO;AAAA,MAClB,KAAK,MAAM,OAAO;AAAA;AAAA;AAAA;AAAA,MAIlB,SAAS;AAAA,MACT,SAAS;AAAA,MACT,eAAe,MAAM,OAAO,kBAAkB,QAAQ,IAAI;AAAA,MAC1D,OAAO,EAAE,MAAM,MAAM,OAAO,SAAS,GAAG;AAAA;AAAA,MAExC,QAAQ;AAAA;AAAA;AAAA,QAGN,WAAW,MAAM,OAAO,SACpB,4BAA4B,MAAM,MAAM,MAAM,IAC9C;AAAA,MACN;AAAA,IACF;AAAA,IACA,aAAa;AAAA,MACX,QAAQ;AAAA,QACN,WAAW;AAAA;AAAA;AAAA,QAGX,QAAQ,EAAE,SAAS,MAAM;AAAA,QACzB,GAAI,MAAM,UACN;AAAA,UACE,OAAO;AAAA,YACL,QAAQ;AAAA,cACN,OAAO,CAAC,UAAU,MAAM,QAAS,EAAE,UAAU,MAAM,MAAM,EAAE,CAAC;AAAA,YAC9D;AAAA,UACF;AAAA,QACF,IACA,CAAC;AAAA,MACP;AAAA;AAAA;AAAA;AAAA;AAAA,MAKA,GAAI,YAAY,EAAE,CAAC,MAAM,OAAO,GAAG,EAAE,UAAU,MAAM,SAAS,EAAE,IAAI,CAAC;AAAA,IACvE;AAAA,IACA,QAAQ,MAAM,OAAO,IAAI,CAAC,OAAO;AAAA,MAC/B,MAAM,MAAM;AAAA,MACZ,MAAM,EAAE;AAAA,MACR,MAAM,yBAAyB,EAAE,IAAI;AAAA,IACvC,EAAE;AAAA,IACF,GAAI,cAAc,EAAE,YAAY,IAAI,CAAC;AAAA,EACvC;AAEA,SAAO,EAAE,SAAS,kBAAkB,gBAAgB;AACtD;;;AC/HA,OAAO,YAAY;AAuBZ,IAAM,yBAAyB,OAAO;AAAA,sBACvB,CAAC,EAAE,MAAM,MAAM,MAAM,OAAO,UAAU,WAAW,IAAI;AAAA,IACvE,CAAC,UAAW,MAAM,UAAU,kBAAkB,eAAgB;AAAA;;;AFI5D;AAvBN,IAAMA,iBAAgB,oBAAI,IAAqB,CAAC,QAAQ,YAAY,CAAC;AAE9D,IAAM,gBAAgB,KAAK,SAASC,eACzC,OACA;AACA,QAAM,EAAE,QAAQ,SAAS,IAAI,mBAAmB;AAAA,IAC9C,QAAQ,MAAM;AAAA,IACd,iBAAiB;AAAA,EACnB,CAAC;AACD,QAAM,EAAE,SAAS,kBAAkB,gBAAgB,IAAI;AAAA,IACrD,MAAM,0BAA0B,KAAK;AAAA,IACrC,CAAC,KAAK;AAAA,EACR;AACA,QAAM,aAAa,QAAQ,MAAM,OAAO;AAExC,SACE;AAAA,IAAC;AAAA;AAAA,MACC,SAAS;AAAA,MACT,WAAW;AAAA,MACX,aAAa;AAAA,MACb,SAASD,eAAc,IAAI,MAAM,OAAO;AAAA,MACxC,WAAW,MAAM;AAAA,MAEjB;AAAA,QAAC;AAAA;AAAA,UACC;AAAA,UACA,QAAQ,MAAM;AAAA,UACd;AAAA,UACA,SAAS,MAAM;AAAA,UACf;AAAA,UACA;AAAA,UACA,mBAAmB,MAAM;AAAA,UACzB,UAAU;AAAA,UACV,oBAAoB,MAAM;AAAA,UAC1B,SAAS,MAAM;AAAA;AAAA,MACjB;AAAA;AAAA,EACF;AAEJ,CAAC;","names":["AREA_VARIANTS","LineAreaChart"]}
package/dist/index.d.mts CHANGED
@@ -37,6 +37,19 @@ type TypeAreaChartProps = Readonly<{
37
37
  timezone?: string;
38
38
  xAnnotations?: TypeChartXAnnotations;
39
39
  }>;
40
+ /**
41
+ * @deprecated Use the v2 component instead:
42
+ *
43
+ * ```ts
44
+ * import { LineAreaChart } from "@sproutsocial/seeds-react-data-viz/line-area";
45
+ * ```
46
+ *
47
+ * `LineAreaChart` (with `variant="area"` or `"areaspline"`) is built on the shared
48
+ * v2 chart base — see `charts/README.md` for the architecture. The v2 prop shape
49
+ * differs from this legacy component and v2 does not yet cover every legacy
50
+ * feature (locale-aware tooltips, currency/number formatters, area totals).
51
+ * Migrate when ready; Claude-assisted migration guidance lands with the CE-10 codemod.
52
+ */
40
53
  declare const AreaChart: react.NamedExoticComponent<Readonly<{
41
54
  data: ReadonlyArray<Readonly<{
42
55
  name: string;
@@ -278,6 +291,19 @@ type TypeLineChartProps = Readonly<{
278
291
  timeFormat?: string;
279
292
  }) => string;
280
293
  }>;
294
+ /**
295
+ * @deprecated Use the v2 component instead:
296
+ *
297
+ * ```ts
298
+ * import { LineAreaChart } from "@sproutsocial/seeds-react-data-viz/line-area";
299
+ * ```
300
+ *
301
+ * `LineAreaChart` (with `variant="line"` or `"spline"`) is built on the shared
302
+ * v2 chart base — see `charts/README.md` for the architecture. The v2 prop shape
303
+ * differs from this legacy component and v2 does not yet cover every legacy
304
+ * feature (locale-aware tooltips, currency/number formatters). Migrate when ready;
305
+ * Claude-assisted migration guidance lands with the CE-9 codemod.
306
+ */
281
307
  declare const LineChart: react.NamedExoticComponent<Readonly<{
282
308
  data: ReadonlyArray<Readonly<{
283
309
  name: string;
package/dist/index.d.ts CHANGED
@@ -37,6 +37,19 @@ type TypeAreaChartProps = Readonly<{
37
37
  timezone?: string;
38
38
  xAnnotations?: TypeChartXAnnotations;
39
39
  }>;
40
+ /**
41
+ * @deprecated Use the v2 component instead:
42
+ *
43
+ * ```ts
44
+ * import { LineAreaChart } from "@sproutsocial/seeds-react-data-viz/line-area";
45
+ * ```
46
+ *
47
+ * `LineAreaChart` (with `variant="area"` or `"areaspline"`) is built on the shared
48
+ * v2 chart base — see `charts/README.md` for the architecture. The v2 prop shape
49
+ * differs from this legacy component and v2 does not yet cover every legacy
50
+ * feature (locale-aware tooltips, currency/number formatters, area totals).
51
+ * Migrate when ready; Claude-assisted migration guidance lands with the CE-10 codemod.
52
+ */
40
53
  declare const AreaChart: react.NamedExoticComponent<Readonly<{
41
54
  data: ReadonlyArray<Readonly<{
42
55
  name: string;
@@ -278,6 +291,19 @@ type TypeLineChartProps = Readonly<{
278
291
  timeFormat?: string;
279
292
  }) => string;
280
293
  }>;
294
+ /**
295
+ * @deprecated Use the v2 component instead:
296
+ *
297
+ * ```ts
298
+ * import { LineAreaChart } from "@sproutsocial/seeds-react-data-viz/line-area";
299
+ * ```
300
+ *
301
+ * `LineAreaChart` (with `variant="line"` or `"spline"`) is built on the shared
302
+ * v2 chart base — see `charts/README.md` for the architecture. The v2 prop shape
303
+ * differs from this legacy component and v2 does not yet cover every legacy
304
+ * feature (locale-aware tooltips, currency/number formatters). Migrate when ready;
305
+ * Claude-assisted migration guidance lands with the CE-9 codemod.
306
+ */
281
307
  declare const LineChart: react.NamedExoticComponent<Readonly<{
282
308
  data: ReadonlyArray<Readonly<{
283
309
  name: string;