@sproutsocial/seeds-react-data-viz 0.23.1 → 0.24.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/{axis-WOeYkTO1.d.mts → axis-B61qI-nm.d.mts} +1 -15
- package/dist/{axis-WOeYkTO1.d.ts → axis-B78FtYLh.d.ts} +1 -15
- package/dist/bar/index.d.mts +2 -2
- package/dist/bar/index.d.ts +2 -2
- package/dist/bar/index.js +14 -14
- package/dist/bar/index.js.map +1 -1
- package/dist/bubble/index.d.mts +1 -1
- package/dist/bubble/index.d.ts +1 -1
- package/dist/bubble/index.js +4 -4
- package/dist/{chartBase-BClSc5EN.d.mts → chartBase-CptOt3V0.d.mts} +23 -1
- package/dist/{chartBase-CycEw2vy.d.ts → chartBase-Nl6mcTB7.d.ts} +23 -1
- package/dist/{chunk-GQOKCB3M.js → chunk-3P6MPBSZ.js} +212 -27
- package/dist/chunk-3P6MPBSZ.js.map +1 -0
- package/dist/{chunk-6SF6OYQA.js → chunk-MTGYEUZN.js} +3 -3
- package/dist/{chunk-6SF6OYQA.js.map → chunk-MTGYEUZN.js.map} +1 -1
- package/dist/chunk-OP6K5NDR.js +52 -0
- package/dist/chunk-OP6K5NDR.js.map +1 -0
- package/dist/donut/index.d.mts +1 -1
- package/dist/donut/index.d.ts +1 -1
- package/dist/donut/index.js +4 -4
- package/dist/esm/bar/index.js +10 -10
- package/dist/esm/bar/index.js.map +1 -1
- package/dist/esm/bubble/index.js +1 -1
- package/dist/esm/{chunk-EHKGDOMK.js → chunk-ISP4A622.js} +196 -11
- package/dist/esm/chunk-ISP4A622.js.map +1 -0
- package/dist/esm/{chunk-AEBP4NCY.js → chunk-MQDI7D54.js} +2 -2
- package/dist/esm/chunk-Y4RJJBJQ.js +52 -0
- package/dist/esm/chunk-Y4RJJBJQ.js.map +1 -0
- package/dist/esm/donut/index.js +1 -1
- package/dist/esm/line-area/index.js +10 -10
- package/dist/esm/line-area/index.js.map +1 -1
- package/dist/esm/sparkline/index.js +9 -9
- package/dist/esm/sparkline/index.js.map +1 -1
- package/dist/line-area/index.d.mts +2 -2
- package/dist/line-area/index.d.ts +2 -2
- package/dist/line-area/index.js +14 -14
- package/dist/line-area/index.js.map +1 -1
- package/dist/sparkline/index.d.mts +3 -3
- package/dist/sparkline/index.d.ts +3 -3
- package/dist/sparkline/index.js +10 -10
- package/dist/sparkline/index.js.map +1 -1
- package/package.json +5 -5
- package/dist/chunk-6D7P3IOT.js +0 -150
- package/dist/chunk-6D7P3IOT.js.map +0 -1
- package/dist/chunk-GQOKCB3M.js.map +0 -1
- package/dist/esm/chunk-EHKGDOMK.js.map +0 -1
- package/dist/esm/chunk-NAKJY5PA.js +0 -150
- package/dist/esm/chunk-NAKJY5PA.js.map +0 -1
- /package/dist/esm/{chunk-AEBP4NCY.js.map → chunk-MQDI7D54.js.map} +0 -0
|
@@ -1,18 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
* Pure, Highcharts-free datetime axis label formatter for v2 chart families.
|
|
3
|
-
*
|
|
4
|
-
* Ports v1's `helpers/xAxisLabelFormatter` into a rendering-agnostic shape: it
|
|
5
|
-
* returns a `{ primary, secondary? }` object instead of an HTML string, leaving
|
|
6
|
-
* SVG rendering to the caller. The timezone- and DST-correct boundary detection
|
|
7
|
-
* (calendar parts read in the target timezone) and the per-granularity
|
|
8
|
-
* `Intl.DateTimeFormat` option sets are a near-verbatim port of v1.
|
|
9
|
-
*
|
|
10
|
-
* The one net-new piece versus v1 is granularity derivation: v1 receives
|
|
11
|
-
* `unitName` from Highcharts, but `charts/` may not depend on Highcharts types
|
|
12
|
-
* (see `charts/README.md` invariants), so granularity is derived from the
|
|
13
|
-
* spacing of `tickPositions`.
|
|
14
|
-
*/
|
|
15
|
-
type DatetimeTimeFormat = "12" | "24";
|
|
1
|
+
import { D as DatetimeTimeFormat } from './chartBase-CptOt3V0.mjs';
|
|
16
2
|
|
|
17
3
|
/** A datetime data point: `[msSinceEpoch, value]` tuple or `{ x, y }` object. */
|
|
18
4
|
type DatetimePoint = [number, number | null] | {
|
|
@@ -1,18 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
* Pure, Highcharts-free datetime axis label formatter for v2 chart families.
|
|
3
|
-
*
|
|
4
|
-
* Ports v1's `helpers/xAxisLabelFormatter` into a rendering-agnostic shape: it
|
|
5
|
-
* returns a `{ primary, secondary? }` object instead of an HTML string, leaving
|
|
6
|
-
* SVG rendering to the caller. The timezone- and DST-correct boundary detection
|
|
7
|
-
* (calendar parts read in the target timezone) and the per-granularity
|
|
8
|
-
* `Intl.DateTimeFormat` option sets are a near-verbatim port of v1.
|
|
9
|
-
*
|
|
10
|
-
* The one net-new piece versus v1 is granularity derivation: v1 receives
|
|
11
|
-
* `unitName` from Highcharts, but `charts/` may not depend on Highcharts types
|
|
12
|
-
* (see `charts/README.md` invariants), so granularity is derived from the
|
|
13
|
-
* spacing of `tickPositions`.
|
|
14
|
-
*/
|
|
15
|
-
type DatetimeTimeFormat = "12" | "24";
|
|
1
|
+
import { D as DatetimeTimeFormat } from './chartBase-Nl6mcTB7.js';
|
|
16
2
|
|
|
17
3
|
/** A datetime data point: `[msSinceEpoch, value]` tuple or `{ x, y }` object. */
|
|
18
4
|
type DatetimePoint = [number, number | null] | {
|
package/dist/bar/index.d.mts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import * as react from 'react';
|
|
2
2
|
import { ReactNode } from 'react';
|
|
3
3
|
import { C as ChartAnnotation } from '../annotations-CjFoRPXf.mjs';
|
|
4
|
-
import { V as ValueFormat, C as ChartTooltipProps } from '../chartBase-
|
|
4
|
+
import { V as ValueFormat, C as ChartTooltipProps } from '../chartBase-CptOt3V0.mjs';
|
|
5
5
|
import { C as ChartColorableEntity, a as ChartIconableEntity, b as ChartClickHandler, c as ChartHoverHandler } from '../interactions-pEXA1XxF.mjs';
|
|
6
6
|
export { d as ChartHoverSeries } from '../interactions-pEXA1XxF.mjs';
|
|
7
7
|
import { C as ChartExportHandle } from '../chartExport-CKYpuhik.mjs';
|
|
8
|
-
import { C as ChartDataPoint, a as CategoryAxis, D as DatetimeAxis, b as DatetimePoint } from '../axis-
|
|
8
|
+
import { C as ChartDataPoint, a as CategoryAxis, D as DatetimeAxis, b as DatetimePoint } from '../axis-B61qI-nm.mjs';
|
|
9
9
|
import '@sproutsocial/seeds-react-icon';
|
|
10
10
|
import '../types-DxrhdAdn.mjs';
|
|
11
11
|
import 'highcharts';
|
package/dist/bar/index.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import * as react from 'react';
|
|
2
2
|
import { ReactNode } from 'react';
|
|
3
3
|
import { C as ChartAnnotation } from '../annotations-CjFoRPXf.js';
|
|
4
|
-
import { V as ValueFormat, C as ChartTooltipProps } from '../chartBase-
|
|
4
|
+
import { V as ValueFormat, C as ChartTooltipProps } from '../chartBase-Nl6mcTB7.js';
|
|
5
5
|
import { C as ChartColorableEntity, a as ChartIconableEntity, b as ChartClickHandler, c as ChartHoverHandler } from '../interactions-pEXA1XxF.js';
|
|
6
6
|
export { d as ChartHoverSeries } from '../interactions-pEXA1XxF.js';
|
|
7
7
|
import { C as ChartExportHandle } from '../chartExport-CKYpuhik.js';
|
|
8
|
-
import { C as ChartDataPoint, a as CategoryAxis, D as DatetimeAxis, b as DatetimePoint } from '../axis-
|
|
8
|
+
import { C as ChartDataPoint, a as CategoryAxis, D as DatetimeAxis, b as DatetimePoint } from '../axis-B78FtYLh.js';
|
|
9
9
|
import '@sproutsocial/seeds-react-icon';
|
|
10
10
|
import '../types-DxrhdAdn.js';
|
|
11
11
|
import 'highcharts';
|
package/dist/bar/index.js
CHANGED
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
|
|
5
|
-
var
|
|
5
|
+
var _chunkMTGYEUZNjs = require('../chunk-MTGYEUZN.js');
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
|
|
9
|
-
var
|
|
9
|
+
var _chunkOP6K5NDRjs = require('../chunk-OP6K5NDR.js');
|
|
10
10
|
|
|
11
11
|
|
|
12
12
|
var _chunk6EIJCJCNjs = require('../chunk-6EIJCJCN.js');
|
|
@@ -17,7 +17,7 @@ var _chunk33Y5FZTTjs = require('../chunk-33Y5FZTT.js');
|
|
|
17
17
|
|
|
18
18
|
|
|
19
19
|
|
|
20
|
-
var
|
|
20
|
+
var _chunk3P6MPBSZjs = require('../chunk-3P6MPBSZ.js');
|
|
21
21
|
require('../chunk-2H2Z7PKZ.js');
|
|
22
22
|
|
|
23
23
|
// src/charts/bar/BarChart.tsx
|
|
@@ -31,8 +31,8 @@ function buildBarChartOptions(props, direction, series = props.series) {
|
|
|
31
31
|
const chartType = highchartsType(direction);
|
|
32
32
|
const isDatetime = props.xAxis.type === "datetime";
|
|
33
33
|
const isMultiSeries = series.length > 1;
|
|
34
|
-
const
|
|
35
|
-
const { annotations, lookup: annotationLookup } =
|
|
34
|
+
const tooltipOptions = _chunkOP6K5NDRjs.resolveTooltipOptions.call(void 0, props);
|
|
35
|
+
const { annotations, lookup: annotationLookup } = _chunkMTGYEUZNjs.buildAnnotationConfig.call(void 0,
|
|
36
36
|
props.annotations
|
|
37
37
|
);
|
|
38
38
|
const barTypeConfig = {
|
|
@@ -92,11 +92,11 @@ function buildBarChartOptions(props, direction, series = props.series) {
|
|
|
92
92
|
}
|
|
93
93
|
}
|
|
94
94
|
};
|
|
95
|
-
const base =
|
|
95
|
+
const base = _chunk3P6MPBSZjs.buildBaseChartOptions.call(void 0, {
|
|
96
96
|
type: chartType,
|
|
97
97
|
description: props.description,
|
|
98
98
|
reserveTopMargin: Boolean(annotations),
|
|
99
|
-
timezone:
|
|
99
|
+
timezone: tooltipOptions.timezone
|
|
100
100
|
});
|
|
101
101
|
const options = {
|
|
102
102
|
...base,
|
|
@@ -113,7 +113,7 @@ function buildBarChartOptions(props, direction, series = props.series) {
|
|
|
113
113
|
// spacing ([10, 10, 15, 10]) shrinks the plot area.
|
|
114
114
|
spacing: [5, 1, 0, 2]
|
|
115
115
|
},
|
|
116
|
-
xAxis:
|
|
116
|
+
xAxis: _chunkOP6K5NDRjs.buildDimensionalAxis.call(void 0, props.xAxis, _nullishCoalesce(tooltipOptions.timezone, () => ( "UTC"))),
|
|
117
117
|
yAxis: {
|
|
118
118
|
min: _optionalChain([props, 'access', _15 => _15.yAxis, 'optionalAccess', _16 => _16.min]),
|
|
119
119
|
max: _optionalChain([props, 'access', _17 => _17.yAxis, 'optionalAccess', _18 => _18.max]),
|
|
@@ -127,7 +127,7 @@ function buildBarChartOptions(props, direction, series = props.series) {
|
|
|
127
127
|
enabled: _optionalChain([props, 'access', _23 => _23.yAxis, 'optionalAccess', _24 => _24.showLabels]) !== false,
|
|
128
128
|
// A declarative `format` drives ticks through the shared valueFormatter;
|
|
129
129
|
// absent it, the zero-config decimal default (1.20K / 1.20M / 1.20B).
|
|
130
|
-
formatter: _optionalChain([props, 'access', _25 => _25.yAxis, 'optionalAccess', _26 => _26.format]) ?
|
|
130
|
+
formatter: _optionalChain([props, 'access', _25 => _25.yAxis, 'optionalAccess', _26 => _26.format]) ? _chunkMTGYEUZNjs.makeValueAxisLabelFormatter.call(void 0, props.yAxis.format) : _chunkMTGYEUZNjs.defaultValueAxisLabelFormatter
|
|
131
131
|
}
|
|
132
132
|
},
|
|
133
133
|
plotOptions: {
|
|
@@ -142,7 +142,7 @@ function buildBarChartOptions(props, direction, series = props.series) {
|
|
|
142
142
|
})),
|
|
143
143
|
...annotations ? { annotations } : {}
|
|
144
144
|
};
|
|
145
|
-
return { options, annotationLookup,
|
|
145
|
+
return { options, annotationLookup, tooltipOptions };
|
|
146
146
|
}
|
|
147
147
|
|
|
148
148
|
// src/charts/constants.ts
|
|
@@ -152,14 +152,14 @@ var BAR_CHART_DEFAULT_SERIES_LIMIT = 10;
|
|
|
152
152
|
var _jsxruntime = require('react/jsx-runtime');
|
|
153
153
|
var BarChart = _react.memo.call(void 0, function BarChart2(props) {
|
|
154
154
|
const seriesLimit = _nullishCoalesce(props.seriesLimit, () => ( BAR_CHART_DEFAULT_SERIES_LIMIT));
|
|
155
|
-
const { colors, series } =
|
|
155
|
+
const { colors, series } = _chunk3P6MPBSZjs.useSeedsChartSetup.call(void 0, {
|
|
156
156
|
series: props.series,
|
|
157
157
|
seriesLimit,
|
|
158
158
|
isSeriesLimitOverridden: props.seriesLimit !== void 0,
|
|
159
159
|
hideSeriesLimitWarning: props.hideSeriesLimitWarning,
|
|
160
160
|
componentName: "BarChart"
|
|
161
161
|
});
|
|
162
|
-
const { options, annotationLookup,
|
|
162
|
+
const { options, annotationLookup, tooltipOptions } = buildBarChartOptions(
|
|
163
163
|
props,
|
|
164
164
|
_nullishCoalesce(props.direction, () => ( "vertical")),
|
|
165
165
|
series
|
|
@@ -172,7 +172,7 @@ var BarChart = _react.memo.call(void 0, function BarChart2(props) {
|
|
|
172
172
|
className: props.className
|
|
173
173
|
});
|
|
174
174
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ...containerProps, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
175
|
-
|
|
175
|
+
_chunk3P6MPBSZjs.ChartRenderer,
|
|
176
176
|
{
|
|
177
177
|
options,
|
|
178
178
|
series,
|
|
@@ -181,7 +181,7 @@ var BarChart = _react.memo.call(void 0, function BarChart2(props) {
|
|
|
181
181
|
annotationLookup,
|
|
182
182
|
hasOnClick,
|
|
183
183
|
tooltipClickLabel: props.tooltipClickLabel,
|
|
184
|
-
|
|
184
|
+
tooltipOptions,
|
|
185
185
|
invalidNumberLabel: props.invalidNumberLabel,
|
|
186
186
|
valueFormat: _optionalChain([props, 'access', _27 => _27.yAxis, 'optionalAccess', _28 => _28.format]),
|
|
187
187
|
exportTitle: props.exportTitle,
|
package/dist/bar/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/runner/_work/seeds/seeds/seeds-react/seeds-react-data-viz/dist/bar/index.js","../../src/charts/bar/BarChart.tsx","../../src/charts/bar/adapter.ts","../../src/charts/constants.ts"],"names":["BarChart"],"mappings":"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","file":"/home/runner/_work/seeds/seeds/seeds-react/seeds-react-data-viz/dist/bar/index.js","sourcesContent":[null,"import { memo } from \"react\";\nimport { useSeedsChartSetup, ChartRenderer } from \"../shared/chartBase\";\nimport { getChartContainerProps } from \"../shared/chartContainer\";\nimport { buildBarChartOptions } from \"./adapter\";\nimport type { BarChartProps } from \"./types\";\nimport { BAR_CHART_DEFAULT_SERIES_LIMIT } from \"../constants\";\n\nexport const BarChart = memo(function BarChart(props: BarChartProps) {\n // The shared hook caps the series to the limit (and warns once per render\n // when the default is exceeded without an explicit override) so the adapter\n // and renderer below all consume the capped data.\n const seriesLimit = props.seriesLimit ?? BAR_CHART_DEFAULT_SERIES_LIMIT;\n const { colors, series } = useSeedsChartSetup({\n series: props.series,\n seriesLimit,\n isSeriesLimitOverridden: props.seriesLimit !== undefined,\n hideSeriesLimitWarning: props.hideSeriesLimitWarning,\n componentName: \"BarChart\",\n });\n\n const { options, annotationLookup, tooltipTimezone } = buildBarChartOptions(\n props,\n props.direction ?? \"vertical\",\n series\n );\n const hasOnClick = Boolean(props.onClick);\n\n // Plain <div> consuming the shared chart-styles.css contract via\n // getChartContainerProps. Colors are the RAW per-series colors (undefined when\n // unset, so only explicit overrides inline --highcharts-color-N), NOT the\n // palette-resolved `colors` passed to ChartRenderer. Neither stylesheet is\n // self-imported (consumers import both).\n const containerProps = getChartContainerProps({\n familyClasses: [\"seeds-chart-time-series\", \"seeds-chart-bar\"],\n colors: series.map((s) => s.color),\n hasOnClick,\n className: props.className,\n });\n\n return (\n <div {...containerProps}>\n <ChartRenderer\n options={options}\n series={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 SeedsChartColumnPlotOptions,\n SeedsChartOptions,\n} from \"../shared/chartBase\";\nimport { buildBaseChartOptions } from \"../shared/baseChartOptions\";\nimport { TIME_SERIES_CHART_HEIGHT } from \"../../constants/chartOptions\";\nimport {\n buildDimensionalAxis,\n resolveTooltipTimezone,\n} from \"../shared/axisOptions\";\nimport {\n defaultValueAxisLabelFormatter,\n makeValueAxisLabelFormatter,\n} from \"../shared/valueAxisLabelFormatter\";\nimport type { BarChartDirection, BarChartProps } from \"./types\";\n\n// Maps the public `direction` to the Highcharts series/chart type. Highcharts\n// `bar` is a horizontally-oriented `column`: it performs the visual rotation\n// while keeping axis roles (xAxis = category, yAxis = value), so the rest of the\n// adapter is direction-agnostic.\nfunction highchartsType(direction: BarChartDirection): \"column\" | \"bar\" {\n return direction === \"horizontal\" ? \"bar\" : \"column\";\n}\n\nexport function buildBarChartOptions(\n props: BarChartProps,\n direction: BarChartDirection,\n // The (already-capped) series to render. Defaults to `props.series` so the\n // ~40 existing call sites keep working; the component passes the capped\n // series from `useSeedsChartSetup` explicitly.\n series: BarChartProps[\"series\"] = props.series\n): {\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 chartType = highchartsType(direction);\n const isDatetime = props.xAxis.type === \"datetime\";\n // Gate the `onMouseEnter`/`onMouseLeave` `series` field on the *rendered*\n // (already-capped) series count, not `props.series` — if `seriesLimit` caps a\n // multi-series input down to one rendered series the chart is effectively\n // single-series, and `series` must be absent per the \"present only for\n // multi-series bar\" contract.\n const isMultiSeries = series.length > 1;\n const tooltipTimezone = resolveTooltipTimezone(props.xAxis, props.timezone);\n const { annotations, lookup: annotationLookup } = buildAnnotationConfig(\n props.annotations\n );\n // `column` (vertical) and `bar` (horizontal) take the same option shape, so a\n // single config is assigned under the active direction's key. Typed\n // explicitly so the `point.events` handlers below keep their `this`/`event`\n // contextual types (a computed `[chartType]` key would otherwise erase them).\n const barTypeConfig: SeedsChartColumnPlotOptions = {\n // \"grouped\" maps to omitting `stacking` — Highcharts renders multi-series\n // columns side-by-side when no stacking is set.\n ...(props.stacking === \"grouped\"\n ? {}\n : { stacking: props.stacking ?? \"normal\" }),\n // Horizontal bars are height-constrained (fixed chart height ÷ categories),\n // so the same padding fractions that work for columns produce hairline bars.\n pointPadding: direction === \"horizontal\" ? 0.05 : 0.25,\n groupPadding: direction === \"horizontal\" ? 0.1 : 0.25,\n // Fixed bar width on datetime axes. Sparse time-series otherwise size\n // columns from the (large) gap between points and balloon; a fixed\n // pointWidth: 20 gives a consistent time-series treatment. Dense datetime\n // data may instead want a maxPointWidth cap — revisit when Line/Area land.\n ...(isDatetime ? { pointWidth: 20 } : {}),\n borderRadius: 4,\n borderWidth: 0,\n // Pairs with the `:hover` dimming rule in `styles.ts`: while the cursor\n // is over the chart, all bars dim; these handlers restore opacity for\n // every bar at the hovered x (so stacked/grouped bars highlight together\n // rather than just the single hovered bar).\n point: {\n events: {\n click: props.onClick\n ? (event) => props.onClick!({ position: event.point.x })\n : undefined,\n mouseOver: function () {\n const x = this.x;\n props.onMouseEnter?.({\n position: x,\n // Omit the key entirely (not `series: undefined`) for single-series\n // so consumers testing `\"series\" in payload` see the contract.\n ...(isMultiSeries\n ? {\n series: { name: this.series.name, index: this.series.index },\n }\n : {}),\n });\n this.series.chart.series.forEach((s) => {\n if (s.type !== chartType) return;\n s.data.forEach((point) => {\n if (point.x !== x) return;\n point.graphic?.element?.classList.add(\"bar-point-hover\");\n });\n });\n },\n mouseOut: function () {\n props.onMouseLeave?.({\n position: this.x,\n ...(isMultiSeries\n ? {\n series: { name: this.series.name, index: this.series.index },\n }\n : {}),\n });\n this.series.chart.series.forEach((s) => {\n if (s.type !== chartType) return;\n s.data.forEach((point) => {\n point.graphic?.element?.classList.remove(\"bar-point-hover\");\n });\n });\n },\n },\n },\n };\n const base = buildBaseChartOptions({\n type: chartType,\n description: props.description,\n reserveTopMargin: Boolean(annotations),\n timezone: tooltipTimezone,\n });\n\n const options: SeedsChartOptions = {\n ...base,\n // Default height baseline (overridable via `props.height`) so consumers\n // who don't configure sizing keep the design-reviewed default.\n chart: {\n ...base.chart,\n // Re-assert the definite `type` so spreading the optionally-typed\n // `base.chart` doesn't widen the required `type` field to optional.\n type: chartType,\n height: props.height ?? TIME_SERIES_CHART_HEIGHT,\n // Tight time-series spacing (from constants/chartOptions.ts) so the plot\n // area fills the 275px container; without it Highcharts' larger default\n // spacing ([10, 10, 15, 10]) shrinks the plot area.\n spacing: [5, 1, 0, 2],\n },\n xAxis: buildDimensionalAxis(props.xAxis, tooltipTimezone ?? \"UTC\"),\n yAxis: {\n min: props.yAxis?.min,\n max: props.yAxis?.max,\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 labels: {\n // `showLabels` toggles tick-label visibility; defaults to shown.\n enabled: props.yAxis?.showLabels !== false,\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: { animation: false },\n [chartType]: barTypeConfig,\n },\n series: series.map((s) => ({\n type: chartType,\n name: s.name,\n data: [...s.data],\n color: s.color,\n })),\n ...(annotations ? { annotations } : {}),\n };\n\n return { options, annotationLookup, tooltipTimezone };\n}\n","export const BAR_CHART_DEFAULT_SERIES_LIMIT = 10;\n"]}
|
|
1
|
+
{"version":3,"sources":["/home/runner/_work/seeds/seeds/seeds-react/seeds-react-data-viz/dist/bar/index.js","../../src/charts/bar/BarChart.tsx","../../src/charts/bar/adapter.ts","../../src/charts/constants.ts"],"names":["BarChart"],"mappings":"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","file":"/home/runner/_work/seeds/seeds/seeds-react/seeds-react-data-viz/dist/bar/index.js","sourcesContent":[null,"import { memo } from \"react\";\nimport { useSeedsChartSetup, ChartRenderer } from \"../shared/chartBase\";\nimport { getChartContainerProps } from \"../shared/chartContainer\";\nimport { buildBarChartOptions } from \"./adapter\";\nimport type { BarChartProps } from \"./types\";\nimport { BAR_CHART_DEFAULT_SERIES_LIMIT } from \"../constants\";\n\nexport const BarChart = memo(function BarChart(props: BarChartProps) {\n // The shared hook caps the series to the limit (and warns once per render\n // when the default is exceeded without an explicit override) so the adapter\n // and renderer below all consume the capped data.\n const seriesLimit = props.seriesLimit ?? BAR_CHART_DEFAULT_SERIES_LIMIT;\n const { colors, series } = useSeedsChartSetup({\n series: props.series,\n seriesLimit,\n isSeriesLimitOverridden: props.seriesLimit !== undefined,\n hideSeriesLimitWarning: props.hideSeriesLimitWarning,\n componentName: \"BarChart\",\n });\n\n const { options, annotationLookup, tooltipOptions } = buildBarChartOptions(\n props,\n props.direction ?? \"vertical\",\n series\n );\n const hasOnClick = Boolean(props.onClick);\n\n // Plain <div> consuming the shared chart-styles.css contract via\n // getChartContainerProps. Colors are the RAW per-series colors (undefined when\n // unset, so only explicit overrides inline --highcharts-color-N), NOT the\n // palette-resolved `colors` passed to ChartRenderer. Neither stylesheet is\n // self-imported (consumers import both).\n const containerProps = getChartContainerProps({\n familyClasses: [\"seeds-chart-time-series\", \"seeds-chart-bar\"],\n colors: series.map((s) => s.color),\n hasOnClick,\n className: props.className,\n });\n\n return (\n <div {...containerProps}>\n <ChartRenderer\n options={options}\n series={series}\n colors={colors}\n tooltip={props.tooltip}\n annotationLookup={annotationLookup}\n hasOnClick={hasOnClick}\n tooltipClickLabel={props.tooltipClickLabel}\n tooltipOptions={tooltipOptions}\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 ChartTooltipProps,\n SeedsChartColumnPlotOptions,\n SeedsChartOptions,\n} from \"../shared/chartBase\";\nimport { buildBaseChartOptions } from \"../shared/baseChartOptions\";\nimport { TIME_SERIES_CHART_HEIGHT } from \"../../constants/chartOptions\";\nimport {\n buildDimensionalAxis,\n resolveTooltipOptions,\n} from \"../shared/axisOptions\";\nimport {\n defaultValueAxisLabelFormatter,\n makeValueAxisLabelFormatter,\n} from \"../shared/valueAxisLabelFormatter\";\nimport type { BarChartDirection, BarChartProps } from \"./types\";\n\n// Maps the public `direction` to the Highcharts series/chart type. Highcharts\n// `bar` is a horizontally-oriented `column`: it performs the visual rotation\n// while keeping axis roles (xAxis = category, yAxis = value), so the rest of the\n// adapter is direction-agnostic.\nfunction highchartsType(direction: BarChartDirection): \"column\" | \"bar\" {\n return direction === \"horizontal\" ? \"bar\" : \"column\";\n}\n\nexport function buildBarChartOptions(\n props: BarChartProps,\n direction: BarChartDirection,\n // The (already-capped) series to render. Defaults to `props.series` so the\n // ~40 existing call sites keep working; the component passes the capped\n // series from `useSeedsChartSetup` explicitly.\n series: BarChartProps[\"series\"] = props.series\n): {\n options: SeedsChartOptions;\n annotationLookup: ChartAnnotationLookup | undefined;\n /** Resolved datetime-derived tooltip options (timezone / timeFormat / textLocale); all undefined on category axes. */\n tooltipOptions: Pick<\n ChartTooltipProps,\n \"timezone\" | \"timeFormat\" | \"textLocale\"\n >;\n} {\n const chartType = highchartsType(direction);\n const isDatetime = props.xAxis.type === \"datetime\";\n // Gate the `onMouseEnter`/`onMouseLeave` `series` field on the *rendered*\n // (already-capped) series count, not `props.series` — if `seriesLimit` caps a\n // multi-series input down to one rendered series the chart is effectively\n // single-series, and `series` must be absent per the \"present only for\n // multi-series bar\" contract.\n const isMultiSeries = series.length > 1;\n const tooltipOptions = resolveTooltipOptions(props);\n const { annotations, lookup: annotationLookup } = buildAnnotationConfig(\n props.annotations\n );\n // `column` (vertical) and `bar` (horizontal) take the same option shape, so a\n // single config is assigned under the active direction's key. Typed\n // explicitly so the `point.events` handlers below keep their `this`/`event`\n // contextual types (a computed `[chartType]` key would otherwise erase them).\n const barTypeConfig: SeedsChartColumnPlotOptions = {\n // \"grouped\" maps to omitting `stacking` — Highcharts renders multi-series\n // columns side-by-side when no stacking is set.\n ...(props.stacking === \"grouped\"\n ? {}\n : { stacking: props.stacking ?? \"normal\" }),\n // Horizontal bars are height-constrained (fixed chart height ÷ categories),\n // so the same padding fractions that work for columns produce hairline bars.\n pointPadding: direction === \"horizontal\" ? 0.05 : 0.25,\n groupPadding: direction === \"horizontal\" ? 0.1 : 0.25,\n // Fixed bar width on datetime axes. Sparse time-series otherwise size\n // columns from the (large) gap between points and balloon; a fixed\n // pointWidth: 20 gives a consistent time-series treatment. Dense datetime\n // data may instead want a maxPointWidth cap — revisit when Line/Area land.\n ...(isDatetime ? { pointWidth: 20 } : {}),\n borderRadius: 4,\n borderWidth: 0,\n // Pairs with the `:hover` dimming rule in `styles.ts`: while the cursor\n // is over the chart, all bars dim; these handlers restore opacity for\n // every bar at the hovered x (so stacked/grouped bars highlight together\n // rather than just the single hovered bar).\n point: {\n events: {\n click: props.onClick\n ? (event) => props.onClick!({ position: event.point.x })\n : undefined,\n mouseOver: function () {\n const x = this.x;\n props.onMouseEnter?.({\n position: x,\n // Omit the key entirely (not `series: undefined`) for single-series\n // so consumers testing `\"series\" in payload` see the contract.\n ...(isMultiSeries\n ? {\n series: { name: this.series.name, index: this.series.index },\n }\n : {}),\n });\n this.series.chart.series.forEach((s) => {\n if (s.type !== chartType) return;\n s.data.forEach((point) => {\n if (point.x !== x) return;\n point.graphic?.element?.classList.add(\"bar-point-hover\");\n });\n });\n },\n mouseOut: function () {\n props.onMouseLeave?.({\n position: this.x,\n ...(isMultiSeries\n ? {\n series: { name: this.series.name, index: this.series.index },\n }\n : {}),\n });\n this.series.chart.series.forEach((s) => {\n if (s.type !== chartType) return;\n s.data.forEach((point) => {\n point.graphic?.element?.classList.remove(\"bar-point-hover\");\n });\n });\n },\n },\n },\n };\n const base = buildBaseChartOptions({\n type: chartType,\n description: props.description,\n reserveTopMargin: Boolean(annotations),\n timezone: tooltipOptions.timezone,\n });\n\n const options: SeedsChartOptions = {\n ...base,\n // Default height baseline (overridable via `props.height`) so consumers\n // who don't configure sizing keep the design-reviewed default.\n chart: {\n ...base.chart,\n // Re-assert the definite `type` so spreading the optionally-typed\n // `base.chart` doesn't widen the required `type` field to optional.\n type: chartType,\n height: props.height ?? TIME_SERIES_CHART_HEIGHT,\n // Tight time-series spacing (from constants/chartOptions.ts) so the plot\n // area fills the 275px container; without it Highcharts' larger default\n // spacing ([10, 10, 15, 10]) shrinks the plot area.\n spacing: [5, 1, 0, 2],\n },\n xAxis: buildDimensionalAxis(props.xAxis, tooltipOptions.timezone ?? \"UTC\"),\n yAxis: {\n min: props.yAxis?.min,\n max: props.yAxis?.max,\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 labels: {\n // `showLabels` toggles tick-label visibility; defaults to shown.\n enabled: props.yAxis?.showLabels !== false,\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: { animation: false },\n [chartType]: barTypeConfig,\n },\n series: series.map((s) => ({\n type: chartType,\n name: s.name,\n data: [...s.data],\n color: s.color,\n })),\n ...(annotations ? { annotations } : {}),\n };\n\n return { options, annotationLookup, tooltipOptions };\n}\n","export const BAR_CHART_DEFAULT_SERIES_LIMIT = 10;\n"]}
|
package/dist/bubble/index.d.mts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as react from 'react';
|
|
2
2
|
import { ReactNode, MouseEventHandler } from 'react';
|
|
3
|
-
import { C as ChartTooltipProps, a as ChartTooltipDataRow, V as ValueFormat } from '../chartBase-
|
|
3
|
+
import { C as ChartTooltipProps, a as ChartTooltipDataRow, V as ValueFormat } from '../chartBase-CptOt3V0.mjs';
|
|
4
4
|
import { C as ChartExportHandle } from '../chartExport-CKYpuhik.mjs';
|
|
5
5
|
import { C as ChartColorableEntity, a as ChartIconableEntity, c as ChartHoverHandler } from '../interactions-pEXA1XxF.mjs';
|
|
6
6
|
export { h as defaultBubbleChartWidth } from '../chartOptions-DHzoGRdG.mjs';
|
package/dist/bubble/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as react from 'react';
|
|
2
2
|
import { ReactNode, MouseEventHandler } from 'react';
|
|
3
|
-
import { C as ChartTooltipProps, a as ChartTooltipDataRow, V as ValueFormat } from '../chartBase-
|
|
3
|
+
import { C as ChartTooltipProps, a as ChartTooltipDataRow, V as ValueFormat } from '../chartBase-Nl6mcTB7.js';
|
|
4
4
|
import { C as ChartExportHandle } from '../chartExport-CKYpuhik.js';
|
|
5
5
|
import { C as ChartColorableEntity, a as ChartIconableEntity, c as ChartHoverHandler } from '../interactions-pEXA1XxF.js';
|
|
6
6
|
export { h as defaultBubbleChartWidth } from '../chartOptions-DHzoGRdG.js';
|
package/dist/bubble/index.js
CHANGED
|
@@ -11,7 +11,7 @@ var _chunk33Y5FZTTjs = require('../chunk-33Y5FZTT.js');
|
|
|
11
11
|
|
|
12
12
|
|
|
13
13
|
|
|
14
|
-
var
|
|
14
|
+
var _chunk3P6MPBSZjs = require('../chunk-3P6MPBSZ.js');
|
|
15
15
|
require('../chunk-2H2Z7PKZ.js');
|
|
16
16
|
|
|
17
17
|
// src/charts/bubble/BubbleChart.tsx
|
|
@@ -107,7 +107,7 @@ function mapBubbleTooltipRow(data) {
|
|
|
107
107
|
}
|
|
108
108
|
function buildBubbleChartOptions(props) {
|
|
109
109
|
const hasOnClick = Boolean(props.onClick);
|
|
110
|
-
const base =
|
|
110
|
+
const base = _chunk3P6MPBSZjs.buildBaseChartOptions.call(void 0, {
|
|
111
111
|
type: "packedbubble",
|
|
112
112
|
description: props.accessibility.description,
|
|
113
113
|
svgContainerLabel: props.accessibility.svgContainerLabel,
|
|
@@ -182,7 +182,7 @@ function buildBubbleChartOptions(props) {
|
|
|
182
182
|
// src/charts/bubble/BubbleChart.tsx
|
|
183
183
|
var _jsxruntime = require('react/jsx-runtime');
|
|
184
184
|
var BubbleChart = _react.memo.call(void 0, function BubbleChart2(props) {
|
|
185
|
-
const { colors } =
|
|
185
|
+
const { colors } = _chunk3P6MPBSZjs.useSeedsChartSetup.call(void 0, {
|
|
186
186
|
series: props.data.map((d) => ({ color: d.color }))
|
|
187
187
|
});
|
|
188
188
|
const options = _react.useMemo.call(void 0, () => buildBubbleChartOptions(props), [props]);
|
|
@@ -206,7 +206,7 @@ var BubbleChart = _react.memo.call(void 0, function BubbleChart2(props) {
|
|
|
206
206
|
...hasOnPlotBackgroundClick ? { "data-has-on-plot-background-click": "" } : {},
|
|
207
207
|
onClick: props.onPlotBackgroundClick,
|
|
208
208
|
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
209
|
-
|
|
209
|
+
_chunk3P6MPBSZjs.ChartRenderer,
|
|
210
210
|
{
|
|
211
211
|
options,
|
|
212
212
|
series: props.data.map((d, i) => ({
|
|
@@ -2,6 +2,22 @@ import { ReactNode } from 'react';
|
|
|
2
2
|
import { TypeIconName } from '@sproutsocial/seeds-react-icon';
|
|
3
3
|
import { c as TypeChartNumberFormat, k as TypeChartStyleColor } from './types-DxrhdAdn.mjs';
|
|
4
4
|
|
|
5
|
+
/**
|
|
6
|
+
* Pure, Highcharts-free datetime axis label formatter for v2 chart families.
|
|
7
|
+
*
|
|
8
|
+
* Ports v1's `helpers/xAxisLabelFormatter` into a rendering-agnostic shape: it
|
|
9
|
+
* returns a `{ primary, secondary? }` object instead of an HTML string, leaving
|
|
10
|
+
* SVG rendering to the caller. The timezone- and DST-correct boundary detection
|
|
11
|
+
* (calendar parts read in the target timezone) and the per-granularity
|
|
12
|
+
* `Intl.DateTimeFormat` option sets are a near-verbatim port of v1.
|
|
13
|
+
*
|
|
14
|
+
* The one net-new piece versus v1 is granularity derivation: v1 receives
|
|
15
|
+
* `unitName` from Highcharts, but `charts/` may not depend on Highcharts types
|
|
16
|
+
* (see `charts/README.md` invariants), so granularity is derived from the
|
|
17
|
+
* spacing of `tickPositions`.
|
|
18
|
+
*/
|
|
19
|
+
type DatetimeTimeFormat = "12" | "24";
|
|
20
|
+
|
|
5
21
|
type TypeValuePercentInput = "decimal" | "whole";
|
|
6
22
|
type TypeValueFormatterOptions = Readonly<{
|
|
7
23
|
/** The raw numeric value. For duration, milliseconds. */
|
|
@@ -46,6 +62,12 @@ interface ChartTooltipProps {
|
|
|
46
62
|
hideTitle?: boolean;
|
|
47
63
|
/** Resolved chart timezone — pass to date formatters when `position` is a numeric timestamp. Undefined on category axes. */
|
|
48
64
|
timezone?: string;
|
|
65
|
+
/** Resolved datetime-axis `timeFormat` ("12" | "24"). Governs the hour-granularity date title. Undefined on category axes. */
|
|
66
|
+
timeFormat?: DatetimeTimeFormat;
|
|
67
|
+
/** Full x-axis tick positions, extracted at the engine boundary — used to derive the title's granularity (day vs month vs hour …). Undefined on category axes. */
|
|
68
|
+
tickPositions?: readonly number[];
|
|
69
|
+
/** Locale for the date title's Intl formatting. Defaults to "en-US" (see CE-36); threaded internally, not a consumer-facing prop today (CE-35). */
|
|
70
|
+
textLocale?: Intl.LocalesArgument;
|
|
49
71
|
/** Declarative annotation anchored at this position, if any. Rendered in the tooltip header. */
|
|
50
72
|
annotation?: {
|
|
51
73
|
icon?: TypeIconName;
|
|
@@ -63,4 +85,4 @@ interface ChartTooltipProps {
|
|
|
63
85
|
valueFormat?: ValueFormat;
|
|
64
86
|
}
|
|
65
87
|
|
|
66
|
-
export type { ChartTooltipProps as C, ValueFormat as V, ChartTooltipDataRow as a };
|
|
88
|
+
export type { ChartTooltipProps as C, DatetimeTimeFormat as D, ValueFormat as V, ChartTooltipDataRow as a };
|
|
@@ -2,6 +2,22 @@ import { ReactNode } from 'react';
|
|
|
2
2
|
import { TypeIconName } from '@sproutsocial/seeds-react-icon';
|
|
3
3
|
import { c as TypeChartNumberFormat, k as TypeChartStyleColor } from './types-DxrhdAdn.js';
|
|
4
4
|
|
|
5
|
+
/**
|
|
6
|
+
* Pure, Highcharts-free datetime axis label formatter for v2 chart families.
|
|
7
|
+
*
|
|
8
|
+
* Ports v1's `helpers/xAxisLabelFormatter` into a rendering-agnostic shape: it
|
|
9
|
+
* returns a `{ primary, secondary? }` object instead of an HTML string, leaving
|
|
10
|
+
* SVG rendering to the caller. The timezone- and DST-correct boundary detection
|
|
11
|
+
* (calendar parts read in the target timezone) and the per-granularity
|
|
12
|
+
* `Intl.DateTimeFormat` option sets are a near-verbatim port of v1.
|
|
13
|
+
*
|
|
14
|
+
* The one net-new piece versus v1 is granularity derivation: v1 receives
|
|
15
|
+
* `unitName` from Highcharts, but `charts/` may not depend on Highcharts types
|
|
16
|
+
* (see `charts/README.md` invariants), so granularity is derived from the
|
|
17
|
+
* spacing of `tickPositions`.
|
|
18
|
+
*/
|
|
19
|
+
type DatetimeTimeFormat = "12" | "24";
|
|
20
|
+
|
|
5
21
|
type TypeValuePercentInput = "decimal" | "whole";
|
|
6
22
|
type TypeValueFormatterOptions = Readonly<{
|
|
7
23
|
/** The raw numeric value. For duration, milliseconds. */
|
|
@@ -46,6 +62,12 @@ interface ChartTooltipProps {
|
|
|
46
62
|
hideTitle?: boolean;
|
|
47
63
|
/** Resolved chart timezone — pass to date formatters when `position` is a numeric timestamp. Undefined on category axes. */
|
|
48
64
|
timezone?: string;
|
|
65
|
+
/** Resolved datetime-axis `timeFormat` ("12" | "24"). Governs the hour-granularity date title. Undefined on category axes. */
|
|
66
|
+
timeFormat?: DatetimeTimeFormat;
|
|
67
|
+
/** Full x-axis tick positions, extracted at the engine boundary — used to derive the title's granularity (day vs month vs hour …). Undefined on category axes. */
|
|
68
|
+
tickPositions?: readonly number[];
|
|
69
|
+
/** Locale for the date title's Intl formatting. Defaults to "en-US" (see CE-36); threaded internally, not a consumer-facing prop today (CE-35). */
|
|
70
|
+
textLocale?: Intl.LocalesArgument;
|
|
49
71
|
/** Declarative annotation anchored at this position, if any. Rendered in the tooltip header. */
|
|
50
72
|
annotation?: {
|
|
51
73
|
icon?: TypeIconName;
|
|
@@ -63,4 +85,4 @@ interface ChartTooltipProps {
|
|
|
63
85
|
valueFormat?: ValueFormat;
|
|
64
86
|
}
|
|
65
87
|
|
|
66
|
-
export type { ChartTooltipProps as C, ValueFormat as V, ChartTooltipDataRow as a };
|
|
88
|
+
export type { ChartTooltipProps as C, DatetimeTimeFormat as D, ValueFormat as V, ChartTooltipDataRow as a };
|