@sproutsocial/seeds-react-data-viz 0.18.0 → 0.20.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.
- package/dist/bar/index.d.mts +20 -4
- package/dist/bar/index.d.ts +20 -4
- package/dist/bar/index.js +53 -85
- package/dist/bar/index.js.map +1 -1
- package/dist/bar.css +39 -0
- package/dist/chart-styles.css +295 -0
- package/dist/charts.css +583 -0
- package/dist/{chunk-XP7HNV23.js → chunk-27M4FDNK.js} +16 -17
- package/dist/chunk-27M4FDNK.js.map +1 -0
- package/dist/chunk-46L4YBLC.js +544 -0
- package/dist/chunk-46L4YBLC.js.map +1 -0
- package/dist/chunk-6EIJCJCN.js +22 -0
- package/dist/chunk-6EIJCJCN.js.map +1 -0
- package/dist/{chunk-GVAMWFB7.js → chunk-XYE6O77Z.js} +3 -3
- package/dist/{chunk-GVAMWFB7.js.map → chunk-XYE6O77Z.js.map} +1 -1
- package/dist/donut/index.d.mts +21 -4
- package/dist/donut/index.d.ts +21 -4
- package/dist/donut/index.js +39 -49
- package/dist/donut/index.js.map +1 -1
- package/dist/donut.css +45 -0
- package/dist/esm/bar/index.js +42 -74
- package/dist/esm/bar/index.js.map +1 -1
- package/dist/esm/{chunk-X2KAXY3P.js → chunk-KMFRRUTY.js} +2 -2
- package/dist/esm/chunk-P3MVYSHX.js +22 -0
- package/dist/esm/chunk-P3MVYSHX.js.map +1 -0
- package/dist/esm/{chunk-JLFXOEV2.js → chunk-QSSYSKRP.js} +3 -4
- package/dist/esm/chunk-QSSYSKRP.js.map +1 -0
- package/dist/esm/chunk-XEKQTAUH.js +544 -0
- package/dist/esm/chunk-XEKQTAUH.js.map +1 -0
- package/dist/esm/donut/index.js +38 -48
- package/dist/esm/donut/index.js.map +1 -1
- package/dist/esm/index.js +536 -134
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/line-area/index.js +30 -21
- package/dist/esm/line-area/index.js.map +1 -1
- package/dist/esm/sparkline/index.js +2 -2
- package/dist/index.js +497 -95
- package/dist/index.js.map +1 -1
- package/dist/interactions-DoWoL7bu.d.mts +29 -0
- package/dist/interactions-DoWoL7bu.d.ts +29 -0
- package/dist/line-area/index.d.mts +30 -4
- package/dist/line-area/index.d.ts +30 -4
- package/dist/line-area/index.js +35 -26
- package/dist/line-area/index.js.map +1 -1
- package/dist/line-area.css +112 -0
- package/dist/sparkline/index.js +4 -4
- package/package.json +16 -7
- package/dist/chunk-WEKDYQ4T.js +0 -968
- package/dist/chunk-WEKDYQ4T.js.map +0 -1
- package/dist/chunk-XP7HNV23.js.map +0 -1
- package/dist/esm/chunk-JLFXOEV2.js.map +0 -1
- package/dist/esm/chunk-Z4LOM4OZ.js +0 -968
- package/dist/esm/chunk-Z4LOM4OZ.js.map +0 -1
- /package/dist/esm/{chunk-X2KAXY3P.js.map → chunk-KMFRRUTY.js.map} +0 -0
|
@@ -4,6 +4,7 @@ import { TypeIconName } from '@sproutsocial/seeds-react-icon';
|
|
|
4
4
|
import { C as ChartAnnotation } from '../annotations-CjFoRPXf.mjs';
|
|
5
5
|
import { V as ValueFormat, C as ChartTooltipProps } from '../chartBase-Cn_5CUJi.mjs';
|
|
6
6
|
import { C as ChartExportHandle } from '../chartExport-CKYpuhik.mjs';
|
|
7
|
+
import { C as ChartClickHandler, a as ChartHoverHandler } from '../interactions-DoWoL7bu.mjs';
|
|
7
8
|
import { C as ChartDataPoint, a as CategoryAxis, D as DatetimeAxis } from '../axis-WOeYkTO1.mjs';
|
|
8
9
|
import { h as TypeChartStylePattern } from '../types-DxrhdAdn.mjs';
|
|
9
10
|
import 'highcharts';
|
|
@@ -66,9 +67,19 @@ interface LineAreaChartProps {
|
|
|
66
67
|
/** Declarative annotations rendered at positions on the chart. */
|
|
67
68
|
annotations?: ChartAnnotation[];
|
|
68
69
|
/** Click handler invoked with the x-axis value of the clicked point — the category name on a category axis, the numeric timestamp on a datetime axis. */
|
|
69
|
-
onClick?:
|
|
70
|
-
|
|
71
|
-
|
|
70
|
+
onClick?: ChartClickHandler;
|
|
71
|
+
/**
|
|
72
|
+
* Fired when the pointer enters a point (also on keyboard focus), with the
|
|
73
|
+
* x-axis value as `position` — the category name on a category axis, the
|
|
74
|
+
* numeric timestamp on a datetime axis.
|
|
75
|
+
*/
|
|
76
|
+
onMouseEnter?: ChartHoverHandler;
|
|
77
|
+
/**
|
|
78
|
+
* Fired when the pointer leaves a point (also on keyboard blur), with the
|
|
79
|
+
* x-axis value as `position` — the category name on a category axis, the
|
|
80
|
+
* numeric timestamp on a datetime axis.
|
|
81
|
+
*/
|
|
82
|
+
onMouseLeave?: ChartHoverHandler;
|
|
72
83
|
/** Footer content shown in the default tooltip when `onClick` is set. */
|
|
73
84
|
tooltipClickLabel?: ReactNode;
|
|
74
85
|
/** Override for the value shown when a data point is invalid/missing (null). Defaults to an em-dash. */
|
|
@@ -88,6 +99,21 @@ interface LineAreaChartProps {
|
|
|
88
99
|
onReady?: (handle: ChartExportHandle) => void;
|
|
89
100
|
}
|
|
90
101
|
|
|
102
|
+
/**
|
|
103
|
+
* LineAreaChart — the v2 time-series line/area family.
|
|
104
|
+
*
|
|
105
|
+
* Like SparklineChart, the wrapper carries no styled-components: it is a plain
|
|
106
|
+
* <div> whose className / inline custom properties / data-attributes come from
|
|
107
|
+
* the shared getChartContainerProps contract (CE-164), and its Highcharts
|
|
108
|
+
* styling ships as a static line-area.css. chart-styles.css owns the shared
|
|
109
|
+
* base (background, per-series color fallback, click cursor, tooltip, legend)
|
|
110
|
+
* AND the shared cross-family .seeds-chart-time-series layer (crosshair,
|
|
111
|
+
* grid/axis lines, ticks, zero line, axis-label typography) that bar also uses;
|
|
112
|
+
* line-area.css owns only the .seeds-chart-line / .seeds-chart-area selectors.
|
|
113
|
+
* Neither is imported here — matching the Sparkline/bar convention, the component never
|
|
114
|
+
* self-imports its stylesheet; consumers import both explicitly (see
|
|
115
|
+
* charts/README.md).
|
|
116
|
+
*/
|
|
91
117
|
declare const LineAreaChart: react.NamedExoticComponent<LineAreaChartProps>;
|
|
92
118
|
|
|
93
|
-
export { CategoryAxis, ChartExportHandle, DatetimeAxis, LineAreaChart, type LineAreaChartProps, type LineAreaSeries, type LineAreaVariant, type LineAreaXAxis, type LineAreaYAxis };
|
|
119
|
+
export { CategoryAxis, ChartClickHandler, ChartExportHandle, ChartHoverHandler, DatetimeAxis, LineAreaChart, type LineAreaChartProps, type LineAreaSeries, type LineAreaVariant, type LineAreaXAxis, type LineAreaYAxis };
|
|
@@ -4,6 +4,7 @@ import { TypeIconName } from '@sproutsocial/seeds-react-icon';
|
|
|
4
4
|
import { C as ChartAnnotation } from '../annotations-CjFoRPXf.js';
|
|
5
5
|
import { V as ValueFormat, C as ChartTooltipProps } from '../chartBase-C-l7yYGx.js';
|
|
6
6
|
import { C as ChartExportHandle } from '../chartExport-CKYpuhik.js';
|
|
7
|
+
import { C as ChartClickHandler, a as ChartHoverHandler } from '../interactions-DoWoL7bu.js';
|
|
7
8
|
import { C as ChartDataPoint, a as CategoryAxis, D as DatetimeAxis } from '../axis-WOeYkTO1.js';
|
|
8
9
|
import { h as TypeChartStylePattern } from '../types-DxrhdAdn.js';
|
|
9
10
|
import 'highcharts';
|
|
@@ -66,9 +67,19 @@ interface LineAreaChartProps {
|
|
|
66
67
|
/** Declarative annotations rendered at positions on the chart. */
|
|
67
68
|
annotations?: ChartAnnotation[];
|
|
68
69
|
/** Click handler invoked with the x-axis value of the clicked point — the category name on a category axis, the numeric timestamp on a datetime axis. */
|
|
69
|
-
onClick?:
|
|
70
|
-
|
|
71
|
-
|
|
70
|
+
onClick?: ChartClickHandler;
|
|
71
|
+
/**
|
|
72
|
+
* Fired when the pointer enters a point (also on keyboard focus), with the
|
|
73
|
+
* x-axis value as `position` — the category name on a category axis, the
|
|
74
|
+
* numeric timestamp on a datetime axis.
|
|
75
|
+
*/
|
|
76
|
+
onMouseEnter?: ChartHoverHandler;
|
|
77
|
+
/**
|
|
78
|
+
* Fired when the pointer leaves a point (also on keyboard blur), with the
|
|
79
|
+
* x-axis value as `position` — the category name on a category axis, the
|
|
80
|
+
* numeric timestamp on a datetime axis.
|
|
81
|
+
*/
|
|
82
|
+
onMouseLeave?: ChartHoverHandler;
|
|
72
83
|
/** Footer content shown in the default tooltip when `onClick` is set. */
|
|
73
84
|
tooltipClickLabel?: ReactNode;
|
|
74
85
|
/** Override for the value shown when a data point is invalid/missing (null). Defaults to an em-dash. */
|
|
@@ -88,6 +99,21 @@ interface LineAreaChartProps {
|
|
|
88
99
|
onReady?: (handle: ChartExportHandle) => void;
|
|
89
100
|
}
|
|
90
101
|
|
|
102
|
+
/**
|
|
103
|
+
* LineAreaChart — the v2 time-series line/area family.
|
|
104
|
+
*
|
|
105
|
+
* Like SparklineChart, the wrapper carries no styled-components: it is a plain
|
|
106
|
+
* <div> whose className / inline custom properties / data-attributes come from
|
|
107
|
+
* the shared getChartContainerProps contract (CE-164), and its Highcharts
|
|
108
|
+
* styling ships as a static line-area.css. chart-styles.css owns the shared
|
|
109
|
+
* base (background, per-series color fallback, click cursor, tooltip, legend)
|
|
110
|
+
* AND the shared cross-family .seeds-chart-time-series layer (crosshair,
|
|
111
|
+
* grid/axis lines, ticks, zero line, axis-label typography) that bar also uses;
|
|
112
|
+
* line-area.css owns only the .seeds-chart-line / .seeds-chart-area selectors.
|
|
113
|
+
* Neither is imported here — matching the Sparkline/bar convention, the component never
|
|
114
|
+
* self-imports its stylesheet; consumers import both explicitly (see
|
|
115
|
+
* charts/README.md).
|
|
116
|
+
*/
|
|
91
117
|
declare const LineAreaChart: react.NamedExoticComponent<LineAreaChartProps>;
|
|
92
118
|
|
|
93
|
-
export { CategoryAxis, ChartExportHandle, DatetimeAxis, LineAreaChart, type LineAreaChartProps, type LineAreaSeries, type LineAreaVariant, type LineAreaXAxis, type LineAreaYAxis };
|
|
119
|
+
export { CategoryAxis, ChartClickHandler, ChartExportHandle, ChartHoverHandler, DatetimeAxis, LineAreaChart, type LineAreaChartProps, type LineAreaSeries, type LineAreaVariant, type LineAreaXAxis, type LineAreaYAxis };
|
package/dist/line-area/index.js
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
|
|
5
|
-
var
|
|
5
|
+
var _chunkXYE6O77Zjs = require('../chunk-XYE6O77Z.js');
|
|
6
6
|
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
var _chunk6D7P3IOTjs = require('../chunk-6D7P3IOT.js');
|
|
8
|
+
var _chunk6EIJCJCNjs = require('../chunk-6EIJCJCN.js');
|
|
10
9
|
|
|
11
10
|
|
|
12
11
|
|
|
12
|
+
var _chunk6D7P3IOTjs = require('../chunk-6D7P3IOT.js');
|
|
13
13
|
|
|
14
|
-
var _chunkXP7HNV23js = require('../chunk-XP7HNV23.js');
|
|
15
14
|
|
|
16
15
|
|
|
17
16
|
|
|
18
|
-
var
|
|
17
|
+
var _chunk27M4FDNKjs = require('../chunk-27M4FDNK.js');
|
|
18
|
+
require('../chunk-46L4YBLC.js');
|
|
19
19
|
|
|
20
20
|
// src/charts/line-area/LineAreaChart.tsx
|
|
21
21
|
var _react = require('react');
|
|
@@ -44,11 +44,11 @@ function withIsolatedPointMarkers(data) {
|
|
|
44
44
|
function buildLineAreaChartOptions(props) {
|
|
45
45
|
const tooltipTimezone = _chunk6D7P3IOTjs.resolveTooltipTimezone.call(void 0, props.xAxis, props.timezone);
|
|
46
46
|
const isStacked = AREA_VARIANTS.has(props.variant) && Boolean(props.stacking);
|
|
47
|
-
const { annotations, lookup: annotationLookup } =
|
|
47
|
+
const { annotations, lookup: annotationLookup } = _chunkXYE6O77Zjs.buildAnnotationConfig.call(void 0,
|
|
48
48
|
props.annotations
|
|
49
49
|
);
|
|
50
50
|
const options = {
|
|
51
|
-
...
|
|
51
|
+
..._chunk27M4FDNKjs.buildBaseChartOptions.call(void 0, {
|
|
52
52
|
type: props.variant,
|
|
53
53
|
description: props.description,
|
|
54
54
|
valueSuffix: props.valueSuffix,
|
|
@@ -73,7 +73,7 @@ function buildLineAreaChartOptions(props) {
|
|
|
73
73
|
labels: {
|
|
74
74
|
// A declarative `format` drives ticks through the shared valueFormatter;
|
|
75
75
|
// absent it, the zero-config decimal default (1.20K / 1.20M / 1.20B).
|
|
76
|
-
formatter: _optionalChain([props, 'access', _9 => _9.yAxis, 'optionalAccess', _10 => _10.format]) ?
|
|
76
|
+
formatter: _optionalChain([props, 'access', _9 => _9.yAxis, 'optionalAccess', _10 => _10.format]) ? _chunkXYE6O77Zjs.makeValueAxisLabelFormatter.call(void 0, props.yAxis.format) : _chunkXYE6O77Zjs.defaultValueAxisLabelFormatter
|
|
77
77
|
}
|
|
78
78
|
},
|
|
79
79
|
plotOptions: {
|
|
@@ -82,10 +82,16 @@ function buildLineAreaChartOptions(props) {
|
|
|
82
82
|
// Hide point markers by default (matching v1 + designs); isolated points
|
|
83
83
|
// re-enable their own marker via `withIsolatedPointMarkers`.
|
|
84
84
|
marker: { enabled: false },
|
|
85
|
-
...props.onClick ? {
|
|
85
|
+
...props.onClick || props.onMouseEnter || props.onMouseLeave ? {
|
|
86
86
|
point: {
|
|
87
87
|
events: {
|
|
88
|
-
click: (event) => props.onClick({ position: event.point.x })
|
|
88
|
+
click: props.onClick ? (event) => props.onClick({ position: event.point.x }) : void 0,
|
|
89
|
+
mouseOver: props.onMouseEnter ? function() {
|
|
90
|
+
props.onMouseEnter({ position: this.x });
|
|
91
|
+
} : void 0,
|
|
92
|
+
mouseOut: props.onMouseLeave ? function() {
|
|
93
|
+
props.onMouseLeave({ position: this.x });
|
|
94
|
+
} : void 0
|
|
89
95
|
}
|
|
90
96
|
}
|
|
91
97
|
} : {}
|
|
@@ -106,18 +112,11 @@ function buildLineAreaChartOptions(props) {
|
|
|
106
112
|
return { options, annotationLookup, tooltipTimezone };
|
|
107
113
|
}
|
|
108
114
|
|
|
109
|
-
// src/charts/line-area/styles.ts
|
|
110
|
-
var _styledcomponents = require('styled-components'); var _styledcomponents2 = _interopRequireDefault(_styledcomponents);
|
|
111
|
-
var LineAreaChartContainer = _styledcomponents2.default.div`
|
|
112
|
-
background-color: ${({ theme }) => theme.colors.container.background.base};
|
|
113
|
-
${(props) => props.$isArea ? _chunkWEKDYQ4Tjs.areaChartStyles : _chunkWEKDYQ4Tjs.lineChartStyles}
|
|
114
|
-
`;
|
|
115
|
-
|
|
116
115
|
// src/charts/line-area/LineAreaChart.tsx
|
|
117
116
|
var _jsxruntime = require('react/jsx-runtime');
|
|
118
117
|
var AREA_VARIANTS2 = /* @__PURE__ */ new Set(["area", "areaspline"]);
|
|
119
118
|
var LineAreaChart = _react.memo.call(void 0, function LineAreaChart2(props) {
|
|
120
|
-
const { colors, patterns } =
|
|
119
|
+
const { colors, patterns } = _chunk27M4FDNKjs.useSeedsChartSetup.call(void 0, {
|
|
121
120
|
series: props.series,
|
|
122
121
|
includePatterns: true
|
|
123
122
|
});
|
|
@@ -126,16 +125,26 @@ var LineAreaChart = _react.memo.call(void 0, function LineAreaChart2(props) {
|
|
|
126
125
|
[props]
|
|
127
126
|
);
|
|
128
127
|
const hasOnClick = Boolean(props.onClick);
|
|
128
|
+
const isArea = AREA_VARIANTS2.has(props.variant);
|
|
129
129
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
130
|
-
|
|
130
|
+
"div",
|
|
131
131
|
{
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
132
|
+
..._chunk6EIJCJCNjs.getChartContainerProps.call(void 0, {
|
|
133
|
+
familyClasses: [
|
|
134
|
+
"seeds-chart-time-series",
|
|
135
|
+
isArea ? "seeds-chart-area" : "seeds-chart-line"
|
|
136
|
+
],
|
|
137
|
+
// RAW per-series colors: only an explicit consumer override is inlined
|
|
138
|
+
// as --highcharts-color-N; an unset series falls through to the DS
|
|
139
|
+
// palette default in chart-styles.css. ChartRenderer below still gets
|
|
140
|
+
// the palette-RESOLVED `colors` for its own styled-components engine.
|
|
141
|
+
colors: props.series.map((s) => s.color),
|
|
142
|
+
patterns,
|
|
143
|
+
hasOnClick,
|
|
144
|
+
className: props.className
|
|
145
|
+
}),
|
|
137
146
|
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
138
|
-
|
|
147
|
+
_chunk27M4FDNKjs.ChartRenderer,
|
|
139
148
|
{
|
|
140
149
|
options,
|
|
141
150
|
series: props.series,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/runner/_work/seeds/seeds/seeds-react/seeds-react-data-viz/dist/line-area/index.js","../../src/charts/line-area/LineAreaChart.tsx","../../src/charts/line-area/adapter.ts","../../src/charts/line-area/styles.ts"],"names":["AREA_VARIANTS","LineAreaChart"],"mappings":"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","file":"/home/runner/_work/seeds/seeds/seeds-react/seeds-react-data-viz/dist/line-area/index.js","sourcesContent":[null,"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 valueFormat={props.yAxis?.format}\n exportTitle={props.exportTitle}\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 // A dedicated plotLine at 0, styled distinctly from regular gridlines\n // (see chartStyles.ts).\n plotLines: [{ value: 0, className: \"y-axis-zero-line\", zIndex: 3 }],\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"]}
|
|
1
|
+
{"version":3,"sources":["/home/runner/_work/seeds/seeds/seeds-react/seeds-react-data-viz/dist/line-area/index.js","../../src/charts/line-area/LineAreaChart.tsx","../../src/charts/line-area/adapter.ts"],"names":["AREA_VARIANTS","LineAreaChart"],"mappings":"AAAA;AACE;AACA;AACA;AACF,uDAA6B;AAC7B;AACE;AACF,uDAA6B;AAC7B;AACE;AACA;AACF,uDAA6B;AAC7B;AACE;AACA;AACA;AACF,uDAA6B;AAC7B,gCAA6B;AAC7B;AACA;ACnBA,8BAA8B;ADqB9B;AACA;AEFA,IAAM,cAAA,kBAAgB,IAAI,GAAA,CAAqB,CAAC,MAAA,EAAQ,YAAY,CAAC,CAAA;AAQrE,SAAS,MAAA,CAAO,KAAA,EAAsC;AACpD,EAAA,GAAA,CAAI,MAAA,IAAU,IAAA,EAAM,OAAO,IAAA;AAC3B,EAAA,GAAA,CAAI,OAAO,MAAA,IAAU,QAAA,EAAU,OAAO,KAAA;AACtC,EAAA,GAAA,CAAI,KAAA,CAAM,OAAA,CAAQ,KAAK,CAAA,EAAG,OAAO,KAAA,CAAM,CAAC,CAAA;AACxC,EAAA,OAAO,KAAA,CAAM,CAAA;AACf;AAOA,SAAS,wBAAA,CACP,IAAA,EACe;AACf,EAAA,OAAO,IAAA,CAAK,GAAA,CAAI,CAAC,KAAA,EAAO,CAAA,EAAA,GAAmB;AACzC,IAAA,GAAA,CAAI,MAAA,IAAU,IAAA,EAAM,OAAO,IAAA;AAC3B,IAAA,GAAA,CAAI,MAAA,CAAO,KAAK,EAAA,IAAM,IAAA,EAAM,OAAO,KAAA;AACnC,IAAA,MAAM,MAAA,EAAQ,EAAA,IAAM,EAAA,EAAI,KAAA,EAAO,MAAA,CAAO,IAAA,CAAK,EAAA,EAAI,CAAC,CAAE,CAAA;AAClD,IAAA,MAAM,MAAA,EAAQ,EAAA,IAAM,IAAA,CAAK,OAAA,EAAS,EAAA,EAAI,KAAA,EAAO,MAAA,CAAO,IAAA,CAAK,EAAA,EAAI,CAAC,CAAE,CAAA;AAChE,IAAA,GAAA,CAAI,MAAA,IAAU,KAAA,GAAQ,MAAA,IAAU,IAAA,EAAM,OAAO,KAAA;AAC7C,IAAA,MAAM,OAAA,EAAS,EAAE,OAAA,EAAS,IAAA,EAAM,MAAA,EAAQ,SAAkB,CAAA;AAC1D,IAAA,GAAA,CAAI,OAAO,MAAA,IAAU,QAAA,EAAU,OAAO,EAAE,CAAA,EAAG,KAAA,EAAO,OAAO,CAAA;AACzD,IAAA,GAAA,CAAI,KAAA,CAAM,OAAA,CAAQ,KAAK,CAAA,EAAG,OAAO,EAAE,CAAA,EAAG,KAAA,CAAM,CAAC,CAAA,EAAG,CAAA,EAAG,KAAA,CAAM,CAAC,CAAA,EAAG,OAAO,CAAA;AACpE,IAAA,OAAO,EAAE,GAAG,KAAA,EAAO,OAAO,CAAA;AAAA,EAC5B,CAAC,CAAA;AACH;AAEO,SAAS,yBAAA,CAA0B,KAAA,EAKxC;AACA,EAAA,MAAM,gBAAA,EAAkB,qDAAA,KAAuB,CAAM,KAAA,EAAO,KAAA,CAAM,QAAQ,CAAA;AAC1E,EAAA,MAAM,UAAA,EAAY,aAAA,CAAc,GAAA,CAAI,KAAA,CAAM,OAAO,EAAA,GAAK,OAAA,CAAQ,KAAA,CAAM,QAAQ,CAAA;AAC5E,EAAA,MAAM,EAAE,WAAA,EAAa,MAAA,EAAQ,iBAAiB,EAAA,EAAI,oDAAA;AAAA,IAChD,KAAA,CAAM;AAAA,EACR,CAAA;AAEA,EAAA,MAAM,QAAA,EAA6B;AAAA,IACjC,GAAG,oDAAA;AAAsB,MACvB,IAAA,EAAM,KAAA,CAAM,OAAA;AAAA,MACZ,WAAA,EAAa,KAAA,CAAM,WAAA;AAAA,MACnB,WAAA,EAAa,KAAA,CAAM,WAAA;AAAA,MACnB,gBAAA,EAAkB,OAAA,CAAQ,WAAW,CAAA;AAAA,MACrC,QAAA,EAAU;AAAA,IACZ,CAAC,CAAA;AAAA,IACD,KAAA,EAAO,mDAAA,KAAqB,CAAM,KAAA,mBAAO,eAAA,UAAmB,OAAK,CAAA;AAAA,IACjE,KAAA,EAAO;AAAA,MACL,GAAA,kBAAK,KAAA,mBAAM,KAAA,6BAAO,KAAA;AAAA,MAClB,GAAA,kBAAK,KAAA,qBAAM,KAAA,6BAAO,KAAA;AAAA;AAAA;AAAA;AAAA,MAIlB,OAAA,EAAS,CAAA;AAAA,MACT,OAAA,EAAS,CAAA;AAAA,MACT,aAAA,kBAAe,KAAA,qBAAM,KAAA,6BAAO,gBAAA,IAAkB,MAAA,EAAQ,EAAA,EAAI,CAAA;AAAA;AAAA;AAAA,MAG1D,SAAA,EAAW,CAAC,EAAE,KAAA,EAAO,CAAA,EAAG,SAAA,EAAW,kBAAA,EAAoB,MAAA,EAAQ,EAAE,CAAC,CAAA;AAAA,MAClE,KAAA,EAAO,EAAE,IAAA,mCAAM,KAAA,qBAAM,KAAA,6BAAO,OAAA,UAAS,KAAG,CAAA;AAAA;AAAA,MAExC,MAAA,EAAQ;AAAA;AAAA;AAAA,QAGN,SAAA,kBAAW,KAAA,qBAAM,KAAA,+BAAO,SAAA,EACpB,0DAAA,KAA4B,CAAM,KAAA,CAAM,MAAM,EAAA,EAC9C;AAAA,MACN;AAAA,IACF,CAAA;AAAA,IACA,WAAA,EAAa;AAAA,MACX,MAAA,EAAQ;AAAA,QACN,SAAA,EAAW,KAAA;AAAA;AAAA;AAAA,QAGX,MAAA,EAAQ,EAAE,OAAA,EAAS,MAAM,CAAA;AAAA,QACzB,GAAI,KAAA,CAAM,QAAA,GAAW,KAAA,CAAM,aAAA,GAAgB,KAAA,CAAM,aAAA,EAC7C;AAAA,UACE,KAAA,EAAO;AAAA,YACL,MAAA,EAAQ;AAAA,cACN,KAAA,EAAO,KAAA,CAAM,QAAA,EACT,CAAC,KAAA,EAAA,GAAU,KAAA,CAAM,OAAA,CAAS,EAAE,QAAA,EAAU,KAAA,CAAM,KAAA,CAAM,EAAE,CAAC,EAAA,EACrD,KAAA,CAAA;AAAA,cACJ,SAAA,EAAW,KAAA,CAAM,aAAA,EACb,QAAA,CAAA,EAAwC;AACtC,gBAAA,KAAA,CAAM,YAAA,CAAc,EAAE,QAAA,EAAU,IAAA,CAAK,EAAE,CAAC,CAAA;AAAA,cAC1C,EAAA,EACA,KAAA,CAAA;AAAA,cACJ,QAAA,EAAU,KAAA,CAAM,aAAA,EACZ,QAAA,CAAA,EAAwC;AACtC,gBAAA,KAAA,CAAM,YAAA,CAAc,EAAE,QAAA,EAAU,IAAA,CAAK,EAAE,CAAC,CAAA;AAAA,cAC1C,EAAA,EACA,KAAA;AAAA,YACN;AAAA,UACF;AAAA,QACF,EAAA,EACA,CAAC;AAAA,MACP,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAKA,GAAI,UAAA,EAAY,EAAE,CAAC,KAAA,CAAM,OAAO,CAAA,EAAG,EAAE,QAAA,EAAU,KAAA,CAAM,SAAS,EAAE,EAAA,EAAI,CAAC;AAAA,IACvE,CAAA;AAAA,IACA,MAAA,EAAQ,KAAA,CAAM,MAAA,CAAO,GAAA,CAAI,CAAC,CAAA,EAAA,GAAA,CAAO;AAAA,MAC/B,IAAA,EAAM,KAAA,CAAM,OAAA;AAAA,MACZ,IAAA,EAAM,CAAA,CAAE,IAAA;AAAA,MACR,IAAA,EAAM,wBAAA,CAAyB,CAAA,CAAE,IAAI;AAAA,IACvC,CAAA,CAAE,CAAA;AAAA,IACF,GAAI,YAAA,EAAc,EAAE,YAAY,EAAA,EAAI,CAAC;AAAA,EACvC,CAAA;AAEA,EAAA,OAAO,EAAE,OAAA,EAAS,gBAAA,EAAkB,gBAAgB,CAAA;AACtD;AF7BA;AACA;AC5DM,+CAAA;AAhDN,IAAMA,eAAAA,kBAAgB,IAAI,GAAA,CAAqB,CAAC,MAAA,EAAQ,YAAY,CAAC,CAAA;AAiB9D,IAAM,cAAA,EAAgB,yBAAA,SAAcC,cAAAA,CACzC,KAAA,EACA;AACA,EAAA,MAAM,EAAE,MAAA,EAAQ,SAAS,EAAA,EAAI,iDAAA;AAAmB,IAC9C,MAAA,EAAQ,KAAA,CAAM,MAAA;AAAA,IACd,eAAA,EAAiB;AAAA,EACnB,CAAC,CAAA;AACD,EAAA,MAAM,EAAE,OAAA,EAAS,gBAAA,EAAkB,gBAAgB,EAAA,EAAI,4BAAA;AAAA,IACrD,CAAA,EAAA,GAAM,yBAAA,CAA0B,KAAK,CAAA;AAAA,IACrC,CAAC,KAAK;AAAA,EACR,CAAA;AACA,EAAA,MAAM,WAAA,EAAa,OAAA,CAAQ,KAAA,CAAM,OAAO,CAAA;AACxC,EAAA,MAAM,OAAA,EAASD,cAAAA,CAAc,GAAA,CAAI,KAAA,CAAM,OAAO,CAAA;AAE9C,EAAA,uBACE,6BAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACE,GAAG,qDAAA;AAAuB,QACzB,aAAA,EAAe;AAAA,UACb,yBAAA;AAAA,UACA,OAAA,EAAS,mBAAA,EAAqB;AAAA,QAChC,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAKA,MAAA,EAAQ,KAAA,CAAM,MAAA,CAAO,GAAA,CAAI,CAAC,CAAA,EAAA,GAAM,CAAA,CAAE,KAAK,CAAA;AAAA,QACvC,QAAA;AAAA,QACA,UAAA;AAAA,QACA,SAAA,EAAW,KAAA,CAAM;AAAA,MACnB,CAAC,CAAA;AAAA,MAED,QAAA,kBAAA,6BAAA;AAAA,QAAC,8BAAA;AAAA,QAAA;AAAA,UACC,OAAA;AAAA,UACA,MAAA,EAAQ,KAAA,CAAM,MAAA;AAAA,UACd,MAAA;AAAA,UACA,OAAA,EAAS,KAAA,CAAM,OAAA;AAAA,UACf,gBAAA;AAAA,UACA,UAAA;AAAA,UACA,iBAAA,EAAmB,KAAA,CAAM,iBAAA;AAAA,UACzB,QAAA,EAAU,eAAA;AAAA,UACV,kBAAA,EAAoB,KAAA,CAAM,kBAAA;AAAA,UAC1B,WAAA,kBAAa,KAAA,uBAAM,KAAA,+BAAO,QAAA;AAAA,UAC1B,WAAA,EAAa,KAAA,CAAM,WAAA;AAAA,UACnB,OAAA,EAAS,KAAA,CAAM;AAAA,QAAA;AAAA,MACjB;AAAA,IAAA;AAAA,EACF,CAAA;AAEJ,CAAC,CAAA;AD+FD;AACE;AACF,sCAAC","file":"/home/runner/_work/seeds/seeds/seeds-react/seeds-react-data-viz/dist/line-area/index.js","sourcesContent":[null,"import { memo, useMemo } from \"react\";\nimport { useSeedsChartSetup, ChartRenderer } from \"../shared/chartBase\";\nimport { getChartContainerProps } from \"../shared/chartContainer\";\nimport { buildLineAreaChartOptions } from \"./adapter\";\nimport type { LineAreaChartProps, LineAreaVariant } from \"./types\";\n\nconst AREA_VARIANTS = new Set<LineAreaVariant>([\"area\", \"areaspline\"]);\n\n/**\n * LineAreaChart — the v2 time-series line/area family.\n *\n * Like SparklineChart, the wrapper carries no styled-components: it is a plain\n * <div> whose className / inline custom properties / data-attributes come from\n * the shared getChartContainerProps contract (CE-164), and its Highcharts\n * styling ships as a static line-area.css. chart-styles.css owns the shared\n * base (background, per-series color fallback, click cursor, tooltip, legend)\n * AND the shared cross-family .seeds-chart-time-series layer (crosshair,\n * grid/axis lines, ticks, zero line, axis-label typography) that bar also uses;\n * line-area.css owns only the .seeds-chart-line / .seeds-chart-area selectors.\n * Neither is imported here — matching the Sparkline/bar convention, the component never\n * self-imports its stylesheet; consumers import both explicitly (see\n * charts/README.md).\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 const isArea = AREA_VARIANTS.has(props.variant);\n\n return (\n <div\n {...getChartContainerProps({\n familyClasses: [\n \"seeds-chart-time-series\",\n isArea ? \"seeds-chart-area\" : \"seeds-chart-line\",\n ],\n // RAW per-series colors: only an explicit consumer override is inlined\n // as --highcharts-color-N; an unset series falls through to the DS\n // palette default in chart-styles.css. ChartRenderer below still gets\n // the palette-RESOLVED `colors` for its own styled-components engine.\n colors: props.series.map((s) => s.color),\n patterns,\n hasOnClick,\n className: props.className,\n })}\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 valueFormat={props.yAxis?.format}\n exportTitle={props.exportTitle}\n onReady={props.onReady}\n />\n </div>\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 // A dedicated plotLine at 0, styled distinctly from regular gridlines\n // (see chartStyles.ts).\n plotLines: [{ value: 0, className: \"y-axis-zero-line\", zIndex: 3 }],\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 || props.onMouseEnter || props.onMouseLeave\n ? {\n point: {\n events: {\n click: props.onClick\n ? (event) => props.onClick!({ position: event.point.x })\n : undefined,\n mouseOver: props.onMouseEnter\n ? function (this: { x: number | string }) {\n props.onMouseEnter!({ position: this.x });\n }\n : undefined,\n mouseOut: props.onMouseLeave\n ? function (this: { x: number | string }) {\n props.onMouseLeave!({ position: this.x });\n }\n : undefined,\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"]}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Seeds LineAreaChart per-family styles.
|
|
3
|
+
*
|
|
4
|
+
* Consumers import this alongside the shared foundation stylesheet:
|
|
5
|
+
*
|
|
6
|
+
* import "@sproutsocial/seeds-react-data-viz/chart-styles.css";
|
|
7
|
+
* import "@sproutsocial/seeds-react-data-viz/line-area.css";
|
|
8
|
+
*
|
|
9
|
+
* chart-styles.css owns the shared .seeds-chart layer (background,
|
|
10
|
+
* annotation-label rules, the per-series .highcharts-color-0..19 palette
|
|
11
|
+
* fallback, the [data-has-on-click] cursor rules, the global tooltip overrides,
|
|
12
|
+
* and the .seeds-chart-legend spacing) AND the shared cross-family
|
|
13
|
+
* .seeds-chart-time-series layer (crosshair, grid/axis lines, ticks, zero line,
|
|
14
|
+
* hover opacity guard, and the v2 SVG axis-label typography) that bar also uses.
|
|
15
|
+
* This file owns ONLY the line/area-specific .seeds-chart-line and
|
|
16
|
+
* .seeds-chart-area blocks — it deliberately does not repeat anything
|
|
17
|
+
* chart-styles.css already ships.
|
|
18
|
+
*
|
|
19
|
+
* Static theme values reference the DS token CSS variables directly
|
|
20
|
+
* (var(--color-*)) — the same tokens every other Seeds component CSS uses,
|
|
21
|
+
* emitted by seeds-react-theme and provided at runtime by the theme provider —
|
|
22
|
+
* so light/dark follows automatically. Ported from the v1 styled-components
|
|
23
|
+
* lineChartStyles / areaChartStyles in src/styles/chartStyles.ts (which stays,
|
|
24
|
+
* still serving v1).
|
|
25
|
+
*/
|
|
26
|
+
|
|
27
|
+
/* =========================================================================
|
|
28
|
+
* lineChartStyles -> .seeds-chart-line
|
|
29
|
+
* ========================================================================= */
|
|
30
|
+
|
|
31
|
+
.seeds-chart-line .highcharts-graph {
|
|
32
|
+
stroke-width: 3;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/* Dashed series. v1 set stroke-dasharray per index when patterns[i] === "dashed";
|
|
36
|
+
the container now emits data-dashed-series="<space-separated indices>", so a
|
|
37
|
+
[data-dashed-series~="N"] match dashes .highcharts-series-N. Highcharts accounts
|
|
38
|
+
for 10 series; enumerate 0..19 to match the 20-entry DATAVIZ palette. */
|
|
39
|
+
.seeds-chart-line[data-dashed-series~="0"] .highcharts-series-0 {
|
|
40
|
+
stroke-dasharray: 2 8;
|
|
41
|
+
}
|
|
42
|
+
.seeds-chart-line[data-dashed-series~="1"] .highcharts-series-1 {
|
|
43
|
+
stroke-dasharray: 2 8;
|
|
44
|
+
}
|
|
45
|
+
.seeds-chart-line[data-dashed-series~="2"] .highcharts-series-2 {
|
|
46
|
+
stroke-dasharray: 2 8;
|
|
47
|
+
}
|
|
48
|
+
.seeds-chart-line[data-dashed-series~="3"] .highcharts-series-3 {
|
|
49
|
+
stroke-dasharray: 2 8;
|
|
50
|
+
}
|
|
51
|
+
.seeds-chart-line[data-dashed-series~="4"] .highcharts-series-4 {
|
|
52
|
+
stroke-dasharray: 2 8;
|
|
53
|
+
}
|
|
54
|
+
.seeds-chart-line[data-dashed-series~="5"] .highcharts-series-5 {
|
|
55
|
+
stroke-dasharray: 2 8;
|
|
56
|
+
}
|
|
57
|
+
.seeds-chart-line[data-dashed-series~="6"] .highcharts-series-6 {
|
|
58
|
+
stroke-dasharray: 2 8;
|
|
59
|
+
}
|
|
60
|
+
.seeds-chart-line[data-dashed-series~="7"] .highcharts-series-7 {
|
|
61
|
+
stroke-dasharray: 2 8;
|
|
62
|
+
}
|
|
63
|
+
.seeds-chart-line[data-dashed-series~="8"] .highcharts-series-8 {
|
|
64
|
+
stroke-dasharray: 2 8;
|
|
65
|
+
}
|
|
66
|
+
.seeds-chart-line[data-dashed-series~="9"] .highcharts-series-9 {
|
|
67
|
+
stroke-dasharray: 2 8;
|
|
68
|
+
}
|
|
69
|
+
.seeds-chart-line[data-dashed-series~="10"] .highcharts-series-10 {
|
|
70
|
+
stroke-dasharray: 2 8;
|
|
71
|
+
}
|
|
72
|
+
.seeds-chart-line[data-dashed-series~="11"] .highcharts-series-11 {
|
|
73
|
+
stroke-dasharray: 2 8;
|
|
74
|
+
}
|
|
75
|
+
.seeds-chart-line[data-dashed-series~="12"] .highcharts-series-12 {
|
|
76
|
+
stroke-dasharray: 2 8;
|
|
77
|
+
}
|
|
78
|
+
.seeds-chart-line[data-dashed-series~="13"] .highcharts-series-13 {
|
|
79
|
+
stroke-dasharray: 2 8;
|
|
80
|
+
}
|
|
81
|
+
.seeds-chart-line[data-dashed-series~="14"] .highcharts-series-14 {
|
|
82
|
+
stroke-dasharray: 2 8;
|
|
83
|
+
}
|
|
84
|
+
.seeds-chart-line[data-dashed-series~="15"] .highcharts-series-15 {
|
|
85
|
+
stroke-dasharray: 2 8;
|
|
86
|
+
}
|
|
87
|
+
.seeds-chart-line[data-dashed-series~="16"] .highcharts-series-16 {
|
|
88
|
+
stroke-dasharray: 2 8;
|
|
89
|
+
}
|
|
90
|
+
.seeds-chart-line[data-dashed-series~="17"] .highcharts-series-17 {
|
|
91
|
+
stroke-dasharray: 2 8;
|
|
92
|
+
}
|
|
93
|
+
.seeds-chart-line[data-dashed-series~="18"] .highcharts-series-18 {
|
|
94
|
+
stroke-dasharray: 2 8;
|
|
95
|
+
}
|
|
96
|
+
.seeds-chart-line[data-dashed-series~="19"] .highcharts-series-19 {
|
|
97
|
+
stroke-dasharray: 2 8;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
/* =========================================================================
|
|
101
|
+
* areaChartStyles -> .seeds-chart-area
|
|
102
|
+
* ========================================================================= */
|
|
103
|
+
|
|
104
|
+
/* no stroke for the line part of each area */
|
|
105
|
+
.seeds-chart-area .highcharts-graph {
|
|
106
|
+
stroke-width: 0;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
/* fill areas to full opacity */
|
|
110
|
+
.seeds-chart-area .highcharts-area {
|
|
111
|
+
fill-opacity: 1;
|
|
112
|
+
}
|
package/dist/sparkline/index.js
CHANGED
|
@@ -5,8 +5,8 @@ var _chunk6D7P3IOTjs = require('../chunk-6D7P3IOT.js');
|
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
|
|
8
|
-
var
|
|
9
|
-
require('../chunk-
|
|
8
|
+
var _chunk27M4FDNKjs = require('../chunk-27M4FDNK.js');
|
|
9
|
+
require('../chunk-46L4YBLC.js');
|
|
10
10
|
|
|
11
11
|
// src/charts/sparkline/SparklineChart.tsx
|
|
12
12
|
var _react = require('react');
|
|
@@ -24,7 +24,7 @@ function buildSparklineChartOptions(props) {
|
|
|
24
24
|
..._chunk6D7P3IOTjs.buildDimensionalAxis.call(void 0, props.xAxis, _nullishCoalesce(tooltipTimezone, () => ( "UTC"))),
|
|
25
25
|
visible: false
|
|
26
26
|
} : { type: "linear", visible: false };
|
|
27
|
-
const base =
|
|
27
|
+
const base = _chunk27M4FDNKjs.buildBaseChartOptions.call(void 0, {
|
|
28
28
|
type,
|
|
29
29
|
description: props.description,
|
|
30
30
|
valueSuffix: props.valueSuffix,
|
|
@@ -102,7 +102,7 @@ var SparklineChart = _react.memo.call(void 0, function SparklineChart2(props) {
|
|
|
102
102
|
className,
|
|
103
103
|
style: { "--seeds-sparkline-color": trendColor },
|
|
104
104
|
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
105
|
-
|
|
105
|
+
_chunk27M4FDNKjs.ChartRenderer,
|
|
106
106
|
{
|
|
107
107
|
options,
|
|
108
108
|
series: [{ name: SPARKLINE_SERIES_NAME, color: trendColor }],
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sproutsocial/seeds-react-data-viz",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.20.0",
|
|
4
4
|
"description": "Seeds React Data Viz Components",
|
|
5
5
|
"author": "Sprout Social, Inc.",
|
|
6
6
|
"license": "MIT",
|
|
@@ -34,17 +34,25 @@
|
|
|
34
34
|
"require": "./dist/sparkline/index.js"
|
|
35
35
|
},
|
|
36
36
|
"./sparkline.css": "./dist/sparkline.css",
|
|
37
|
+
"./chart-styles.css": "./dist/chart-styles.css",
|
|
38
|
+
"./bar.css": "./dist/bar.css",
|
|
39
|
+
"./donut.css": "./dist/donut.css",
|
|
40
|
+
"./line-area.css": "./dist/line-area.css",
|
|
41
|
+
"./charts.css": "./dist/charts.css",
|
|
37
42
|
"./export": {
|
|
38
43
|
"types": "./dist/export/index.d.ts",
|
|
39
44
|
"import": "./dist/esm/export/index.js",
|
|
40
45
|
"require": "./dist/export/index.js"
|
|
41
46
|
}
|
|
42
47
|
},
|
|
48
|
+
"sideEffects": [
|
|
49
|
+
"**/*.css"
|
|
50
|
+
],
|
|
43
51
|
"files": [
|
|
44
52
|
"dist"
|
|
45
53
|
],
|
|
46
54
|
"scripts": {
|
|
47
|
-
"build": "tsup --dts && cp src/charts/
|
|
55
|
+
"build": "tsup --dts && cp src/charts/*/*.css src/styles/*.css dist/ && tsx buildChartCss.ts",
|
|
48
56
|
"build:debug": "tsup --dts --metafile",
|
|
49
57
|
"dev": "tsup --watch --dts",
|
|
50
58
|
"clean": "rm -rf .turbo dist",
|
|
@@ -59,14 +67,14 @@
|
|
|
59
67
|
"@sproutsocial/seeds-networkcolor": "^2.22.0",
|
|
60
68
|
"@sproutsocial/seeds-react-box": "^1.1.22",
|
|
61
69
|
"@sproutsocial/seeds-react-button": "^2.2.2",
|
|
62
|
-
"@sproutsocial/seeds-react-duration": "^1.0.
|
|
70
|
+
"@sproutsocial/seeds-react-duration": "^1.0.25",
|
|
63
71
|
"@sproutsocial/seeds-react-icon": "^2.4.1",
|
|
64
|
-
"@sproutsocial/seeds-react-menu": "^1.16.
|
|
65
|
-
"@sproutsocial/seeds-react-numeral": "^1.0.
|
|
72
|
+
"@sproutsocial/seeds-react-menu": "^1.16.2",
|
|
73
|
+
"@sproutsocial/seeds-react-numeral": "^1.0.49",
|
|
66
74
|
"@sproutsocial/seeds-react-partner-logo": "^1.7.14",
|
|
67
75
|
"@sproutsocial/seeds-react-system-props": "^3.1.1",
|
|
68
|
-
"@sproutsocial/seeds-react-table": "^1.0.
|
|
69
|
-
"@sproutsocial/seeds-react-text": "^1.
|
|
76
|
+
"@sproutsocial/seeds-react-table": "^1.0.43",
|
|
77
|
+
"@sproutsocial/seeds-react-text": "^1.5.0",
|
|
70
78
|
"@sproutsocial/seeds-react-theme": "^4.1.1",
|
|
71
79
|
"highcharts": "^11.4.3",
|
|
72
80
|
"highcharts-react-official": "^3.2.1",
|
|
@@ -82,6 +90,7 @@
|
|
|
82
90
|
"@types/styled-components": "^5.1.26",
|
|
83
91
|
"styled-components": "^5.2.3",
|
|
84
92
|
"tsup": "^8.3.4",
|
|
93
|
+
"tsx": "^4.0.0",
|
|
85
94
|
"typescript": "^5.6.2"
|
|
86
95
|
},
|
|
87
96
|
"peerDependencies": {
|