@sproutsocial/seeds-react-data-viz 0.27.3 → 0.28.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (86) hide show
  1. package/dist/{annotations-CjFoRPXf.d.mts → annotations-YfJndb5S.d.mts} +2 -2
  2. package/dist/{annotations-CjFoRPXf.d.ts → annotations-YfJndb5S.d.ts} +2 -2
  3. package/dist/{axis-DVx6Mn1k.d.mts → axis-Byl9vNMR.d.mts} +9 -9
  4. package/dist/{axis-DQXvjzBs.d.ts → axis-Cn8NAgwb.d.ts} +9 -9
  5. package/dist/bar/index.d.mts +25 -47
  6. package/dist/bar/index.d.ts +25 -47
  7. package/dist/bar/index.js +14 -14
  8. package/dist/bar/index.js.map +1 -1
  9. package/dist/bubble/index.d.mts +29 -40
  10. package/dist/bubble/index.d.ts +29 -40
  11. package/dist/bubble/index.js +18 -20
  12. package/dist/bubble/index.js.map +1 -1
  13. package/dist/{chartExport-CKYpuhik.d.mts → chartExport-B0imEQ8Y.d.mts} +4 -4
  14. package/dist/{chartExport-CKYpuhik.d.ts → chartExport-B0imEQ8Y.d.ts} +4 -4
  15. package/dist/{chartBase-Cd405GIA.d.mts → chartProps-BgGx1GTo.d.mts} +67 -23
  16. package/dist/{chartBase-BYipK7MZ.d.ts → chartProps-C2Lxty-_.d.ts} +67 -23
  17. package/dist/{chunk-WMKO3RGT.js → chunk-2S7XMWJ4.js} +3 -3
  18. package/dist/chunk-2S7XMWJ4.js.map +1 -0
  19. package/dist/{chunk-6EIJCJCN.js → chunk-I72SSPMX.js} +1 -1
  20. package/dist/chunk-I72SSPMX.js.map +1 -0
  21. package/dist/{chunk-CV45MD47.js → chunk-RDS2VCPO.js} +3 -3
  22. package/dist/chunk-RDS2VCPO.js.map +1 -0
  23. package/dist/{chunk-5TWNMPQU.js → chunk-V5EXL244.js} +73 -63
  24. package/dist/chunk-V5EXL244.js.map +1 -0
  25. package/dist/{chunk-34OKRQET.js → chunk-XH7ZKGHD.js} +5 -5
  26. package/dist/{chunk-34OKRQET.js.map → chunk-XH7ZKGHD.js.map} +1 -1
  27. package/dist/donut/index.d.mts +21 -36
  28. package/dist/donut/index.d.ts +21 -36
  29. package/dist/donut/index.js +8 -8
  30. package/dist/donut/index.js.map +1 -1
  31. package/dist/esm/bar/index.js +5 -5
  32. package/dist/esm/bar/index.js.map +1 -1
  33. package/dist/esm/bubble/index.js +10 -12
  34. package/dist/esm/bubble/index.js.map +1 -1
  35. package/dist/esm/{chunk-P3MVYSHX.js → chunk-37QVUJXM.js} +1 -1
  36. package/dist/esm/chunk-37QVUJXM.js.map +1 -0
  37. package/dist/esm/{chunk-332X77M5.js → chunk-JNQC3ZRQ.js} +3 -3
  38. package/dist/esm/chunk-JNQC3ZRQ.js.map +1 -0
  39. package/dist/esm/{chunk-MVNO5UV6.js → chunk-NBMVFYDJ.js} +2 -2
  40. package/dist/esm/chunk-NBMVFYDJ.js.map +1 -0
  41. package/dist/esm/{chunk-AL3OTBTT.js → chunk-THDIQMFN.js} +2 -2
  42. package/dist/esm/chunk-THDIQMFN.js.map +1 -0
  43. package/dist/esm/{chunk-CYCKJ5ML.js → chunk-YCYACOQU.js} +34 -24
  44. package/dist/esm/chunk-YCYACOQU.js.map +1 -0
  45. package/dist/esm/donut/index.js +3 -3
  46. package/dist/esm/donut/index.js.map +1 -1
  47. package/dist/esm/export/index.js.map +1 -1
  48. package/dist/esm/index.js +4 -4
  49. package/dist/esm/index.js.map +1 -1
  50. package/dist/esm/line-area/index.js +5 -5
  51. package/dist/esm/line-area/index.js.map +1 -1
  52. package/dist/esm/sparkline/index.js +3 -3
  53. package/dist/esm/sparkline/index.js.map +1 -1
  54. package/dist/esm/wordcloud/index.js +4 -3
  55. package/dist/esm/wordcloud/index.js.map +1 -1
  56. package/dist/export/index.d.mts +5 -5
  57. package/dist/export/index.d.ts +5 -5
  58. package/dist/export/index.js.map +1 -1
  59. package/dist/index.js +92 -92
  60. package/dist/index.js.map +1 -1
  61. package/dist/{interactions-pEXA1XxF.d.ts → interactions-D2a4O6iM.d.mts} +8 -8
  62. package/dist/{interactions-pEXA1XxF.d.mts → interactions-D2a4O6iM.d.ts} +8 -8
  63. package/dist/line-area/index.d.mts +22 -48
  64. package/dist/line-area/index.d.ts +22 -48
  65. package/dist/line-area/index.js +14 -14
  66. package/dist/line-area/index.js.map +1 -1
  67. package/dist/pointerClick-4LUDwS3L.d.mts +15 -0
  68. package/dist/pointerClick-4LUDwS3L.d.ts +15 -0
  69. package/dist/sparkline/index.d.mts +24 -33
  70. package/dist/sparkline/index.d.ts +24 -33
  71. package/dist/sparkline/index.js +7 -7
  72. package/dist/sparkline/index.js.map +1 -1
  73. package/dist/wordcloud/index.d.mts +22 -20
  74. package/dist/wordcloud/index.d.ts +22 -20
  75. package/dist/wordcloud/index.js +11 -10
  76. package/dist/wordcloud/index.js.map +1 -1
  77. package/package.json +3 -3
  78. package/dist/chunk-5TWNMPQU.js.map +0 -1
  79. package/dist/chunk-6EIJCJCN.js.map +0 -1
  80. package/dist/chunk-CV45MD47.js.map +0 -1
  81. package/dist/chunk-WMKO3RGT.js.map +0 -1
  82. package/dist/esm/chunk-332X77M5.js.map +0 -1
  83. package/dist/esm/chunk-AL3OTBTT.js.map +0 -1
  84. package/dist/esm/chunk-CYCKJ5ML.js.map +0 -1
  85. package/dist/esm/chunk-MVNO5UV6.js.map +0 -1
  86. package/dist/esm/chunk-P3MVYSHX.js.map +0 -1
@@ -4,7 +4,7 @@ import { TypeIconName } from '@sproutsocial/seeds-react-icon';
4
4
  * Declarative annotation shape — the DS renders the marker and tooltip header
5
5
  * internally; consumers don't supply render functions. See CE-7.
6
6
  */
7
- interface ChartAnnotation {
7
+ interface TypeChartAnnotation {
8
8
  /** Numeric x-axis coordinate — a category index (category axes) or the raw coordinate (datetime/linear axes). */
9
9
  position: number;
10
10
  /** Icon shown above the chart at `position` and inline with `title` in the tooltip header. */
@@ -17,4 +17,4 @@ interface ChartAnnotation {
17
17
  description?: string;
18
18
  }
19
19
 
20
- export type { ChartAnnotation as C };
20
+ export type { TypeChartAnnotation as T };
@@ -4,7 +4,7 @@ import { TypeIconName } from '@sproutsocial/seeds-react-icon';
4
4
  * Declarative annotation shape — the DS renders the marker and tooltip header
5
5
  * internally; consumers don't supply render functions. See CE-7.
6
6
  */
7
- interface ChartAnnotation {
7
+ interface TypeChartAnnotation {
8
8
  /** Numeric x-axis coordinate — a category index (category axes) or the raw coordinate (datetime/linear axes). */
9
9
  position: number;
10
10
  /** Icon shown above the chart at `position` and inline with `title` in the tooltip header. */
@@ -17,4 +17,4 @@ interface ChartAnnotation {
17
17
  description?: string;
18
18
  }
19
19
 
20
- export type { ChartAnnotation as C };
20
+ export type { TypeChartAnnotation as T };
@@ -1,30 +1,30 @@
1
- import { D as DatetimeTimeFormat } from './chartBase-Cd405GIA.mjs';
1
+ import { g as TypeDatetimeTimeFormat } from './chartProps-BgGx1GTo.mjs';
2
2
 
3
3
  /** A datetime data point: `[msSinceEpoch, value]` tuple or `{ x, y }` object. */
4
- type DatetimePoint = [number, number | null] | {
4
+ type TypeDatetimePoint = [number, number | null] | {
5
5
  x: number;
6
6
  y: number | null;
7
7
  };
8
8
  /** A value on a category axis, or a datetime point when the axis is `"datetime"`. */
9
- type ChartDataPoint = number | null | DatetimePoint;
9
+ type TypeChartDataPoint = number | null | TypeDatetimePoint;
10
10
  /** Category axis — labels indexed parallel to `series.data`. The default axis type. */
11
- interface CategoryAxis {
11
+ interface TypeCategoryAxis {
12
12
  type?: "category";
13
13
  /** Category labels, indexed parallel to `series.data`. */
14
- categories: Array<string>;
14
+ categories: string[];
15
15
  crosshair?: boolean;
16
16
  }
17
17
  /** Datetime axis — `series.data` carries timestamped points. */
18
- interface DatetimeAxis {
18
+ interface TypeDatetimeAxis {
19
19
  type: "datetime";
20
20
  crosshair?: boolean;
21
21
  /**
22
22
  * 12- or 24-hour clock for hour-granularity tick labels (e.g. `9 AM` vs
23
23
  * `09:00`). Default `"12"`. Coarser granularities (day/month/year) ignore it.
24
24
  */
25
- timeFormat?: DatetimeTimeFormat;
25
+ timeFormat?: TypeDatetimeTimeFormat;
26
26
  }
27
27
  /** The dimensional (non-value) axis of an X/Y chart: category or datetime. */
28
- type DimensionalAxis = CategoryAxis | DatetimeAxis;
28
+ type TypeDimensionalAxis = TypeCategoryAxis | TypeDatetimeAxis;
29
29
 
30
- export type { ChartDataPoint as C, DatetimeAxis as D, CategoryAxis as a, DatetimePoint as b, DimensionalAxis as c };
30
+ export type { TypeChartDataPoint as T, TypeCategoryAxis as a, TypeDatetimeAxis as b, TypeDatetimePoint as c, TypeDimensionalAxis as d };
@@ -1,30 +1,30 @@
1
- import { D as DatetimeTimeFormat } from './chartBase-BYipK7MZ.js';
1
+ import { g as TypeDatetimeTimeFormat } from './chartProps-C2Lxty-_.js';
2
2
 
3
3
  /** A datetime data point: `[msSinceEpoch, value]` tuple or `{ x, y }` object. */
4
- type DatetimePoint = [number, number | null] | {
4
+ type TypeDatetimePoint = [number, number | null] | {
5
5
  x: number;
6
6
  y: number | null;
7
7
  };
8
8
  /** A value on a category axis, or a datetime point when the axis is `"datetime"`. */
9
- type ChartDataPoint = number | null | DatetimePoint;
9
+ type TypeChartDataPoint = number | null | TypeDatetimePoint;
10
10
  /** Category axis — labels indexed parallel to `series.data`. The default axis type. */
11
- interface CategoryAxis {
11
+ interface TypeCategoryAxis {
12
12
  type?: "category";
13
13
  /** Category labels, indexed parallel to `series.data`. */
14
- categories: Array<string>;
14
+ categories: string[];
15
15
  crosshair?: boolean;
16
16
  }
17
17
  /** Datetime axis — `series.data` carries timestamped points. */
18
- interface DatetimeAxis {
18
+ interface TypeDatetimeAxis {
19
19
  type: "datetime";
20
20
  crosshair?: boolean;
21
21
  /**
22
22
  * 12- or 24-hour clock for hour-granularity tick labels (e.g. `9 AM` vs
23
23
  * `09:00`). Default `"12"`. Coarser granularities (day/month/year) ignore it.
24
24
  */
25
- timeFormat?: DatetimeTimeFormat;
25
+ timeFormat?: TypeDatetimeTimeFormat;
26
26
  }
27
27
  /** The dimensional (non-value) axis of an X/Y chart: category or datetime. */
28
- type DimensionalAxis = CategoryAxis | DatetimeAxis;
28
+ type TypeDimensionalAxis = TypeCategoryAxis | TypeDatetimeAxis;
29
29
 
30
- export type { ChartDataPoint as C, DatetimeAxis as D, CategoryAxis as a, DatetimePoint as b, DimensionalAxis as c };
30
+ export type { TypeChartDataPoint as T, TypeCategoryAxis as a, TypeDatetimeAxis as b, TypeDatetimePoint as c, TypeDimensionalAxis as d };
@@ -1,89 +1,67 @@
1
1
  import * as react from 'react';
2
- import { ReactNode } from 'react';
3
- import { C as ChartAnnotation } from '../annotations-CjFoRPXf.mjs';
4
- import { V as ValueFormat, C as ChartTooltipProps } from '../chartBase-Cd405GIA.mjs';
5
- import { C as ChartColorableEntity, a as ChartIconableEntity, b as ChartClickHandler, c as ChartHoverHandler } from '../interactions-pEXA1XxF.mjs';
6
- export { d as ChartHoverSeries } from '../interactions-pEXA1XxF.mjs';
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-DVx6Mn1k.mjs';
2
+ import { T as TypeChartAnnotation } from '../annotations-YfJndb5S.mjs';
3
+ import { T as TypeChartColorableEntity, a as TypeChartIconableEntity, b as TypeChartClickHandler, c as TypeChartHoverHandler } from '../interactions-D2a4O6iM.mjs';
4
+ export { d as TypeChartHoverSeries } from '../interactions-D2a4O6iM.mjs';
5
+ import { T as TypeChartBaseProps, a as TypeChartSizingProps, b as TypeChartTooltipDisplayProps, c as TypeChartTooltipClickFooterProps, d as TypeValueFormat } from '../chartProps-BgGx1GTo.mjs';
6
+ import { T as TypeChartDataPoint, a as TypeCategoryAxis, b as TypeDatetimeAxis, c as TypeDatetimePoint } from '../axis-Byl9vNMR.mjs';
7
+ export { T as TypeChartExportHandle } from '../chartExport-B0imEQ8Y.mjs';
9
8
  import '@sproutsocial/seeds-react-icon';
10
9
  import '../types-DxrhdAdn.mjs';
11
10
  import 'highcharts';
12
11
 
13
- type BarDatetimePoint = DatetimePoint;
14
- type BarDataPoint = ChartDataPoint;
15
- interface BarSeries extends ChartColorableEntity, ChartIconableEntity {
12
+ type TypeBarDatetimePoint = TypeDatetimePoint;
13
+ type TypeBarDataPoint = TypeChartDataPoint;
14
+ interface TypeBarSeries extends TypeChartColorableEntity, TypeChartIconableEntity {
16
15
  /** Y-values for each category, or `[timestamp, value]` / `{ x, y }` points on a datetime axis. */
17
- data: Array<BarDataPoint>;
16
+ data: TypeBarDataPoint[];
18
17
  }
19
- type BarXAxis = CategoryAxis | DatetimeAxis;
20
- interface BarYAxis {
18
+ type TypeBarXAxis = TypeCategoryAxis | TypeDatetimeAxis;
19
+ interface TypeBarYAxis {
21
20
  min?: number;
22
21
  max?: number;
23
22
  /** Default: true. */
24
23
  showGridLines?: boolean;
25
24
  title?: string;
26
25
  /** Declarative value formatting for axis tick labels and tooltip values. */
27
- format?: ValueFormat;
26
+ format?: TypeValueFormat;
28
27
  /** Show y-axis tick labels. Default `true`. */
29
28
  showLabels?: boolean;
30
29
  }
31
- type BarChartDirection = "vertical" | "horizontal";
32
- interface BarChartProps {
33
- /** Wired into Highcharts' `accessibility.description`. */
34
- description: string;
35
- series: Array<BarSeries>;
36
- /** Tailwind / class passthrough appended to the container class chain. */
37
- className?: string;
38
- /** Chart height in pixels. Defaults to the time-series baseline (275). */
39
- height?: number;
30
+ type TypeBarChartDirection = "vertical" | "horizontal";
31
+ interface TypeBarChartProps extends TypeChartBaseProps, TypeChartSizingProps, TypeChartTooltipDisplayProps, TypeChartTooltipClickFooterProps {
32
+ series: TypeBarSeries[];
40
33
  /** Orientation of the bars. `"vertical"` (default) renders columns; `"horizontal"` renders bars. */
41
- direction?: BarChartDirection;
34
+ direction?: TypeBarChartDirection;
42
35
  /** Maximum number of series to display. Series beyond the limit are dropped. Default `10`. */
43
36
  seriesLimit?: number;
44
37
  /** Suppress the `console.warn` when series count exceeds the limit. The cap still applies. Default `false`. */
45
38
  hideSeriesLimitWarning?: boolean;
46
- xAxis: BarXAxis;
47
- yAxis?: BarYAxis;
39
+ xAxis: TypeBarXAxis;
40
+ yAxis?: TypeBarYAxis;
48
41
  /** IANA timezone for datetime-axis ticks and tooltips. Default `"UTC"`. Ignored for category axes. */
49
42
  timezone?: string;
50
43
  /** Stacking mode. `"normal"` stacks series (default); `"percent"` normalizes to 100%; `"grouped"` renders adjacent bars. */
51
44
  stacking?: "normal" | "percent" | "grouped";
52
- /** Override for the default tooltip content. */
53
- tooltip?: (args: ChartTooltipProps) => ReactNode;
54
45
  /** Declarative annotations rendered at positions on the chart. */
55
- annotations?: ChartAnnotation[];
46
+ annotations?: TypeChartAnnotation[];
56
47
  /** Click handler invoked with the category name or timestamp of the clicked bar. */
57
- onClick?: ChartClickHandler;
48
+ onClick?: TypeChartClickHandler;
58
49
  /**
59
50
  * Fired when the pointer enters a bar (also on keyboard focus), with the
60
51
  * category name or timestamp of the bar as `position`. For a multi-series bar
61
52
  * chart the payload also carries `series: { name, index }` identifying the
62
53
  * hovered series; it is omitted for single-series charts.
63
54
  */
64
- onMouseEnter?: ChartHoverHandler;
55
+ onMouseEnter?: TypeChartHoverHandler;
65
56
  /**
66
57
  * Fired when the pointer leaves a bar (also on keyboard blur), with the
67
58
  * category name or timestamp of the bar as `position`. For a multi-series bar
68
59
  * chart the payload also carries `series: { name, index }` identifying the
69
60
  * hovered series; it is omitted for single-series charts.
70
61
  */
71
- onMouseLeave?: ChartHoverHandler;
72
- /** Footer content shown in the default tooltip when `onClick` is set. */
73
- tooltipClickLabel?: ReactNode;
74
- /** Override for the value shown when a data point is null. Defaults to an em-dash. */
75
- invalidNumberLabel?: ReactNode;
76
- /**
77
- * Chart title included in the exported image (PNG/SVG/PDF) only — it does
78
- * *not* render on screen. The on-screen title is a React sibling outside the
79
- * chart SVG and can't be captured on export, so `exportTitle` is baked into
80
- * the export clone as a themed native Highcharts title. Omit for no title.
81
- */
82
- exportTitle?: string;
83
- /** Fired once per chart instance with a handle for PNG/SVG/PDF/CSV downloads. Re-fires only on remount. */
84
- onReady?: (handle: ChartExportHandle) => void;
62
+ onMouseLeave?: TypeChartHoverHandler;
85
63
  }
86
64
 
87
- declare const BarChart: react.NamedExoticComponent<BarChartProps>;
65
+ declare const BarChart: react.NamedExoticComponent<TypeBarChartProps>;
88
66
 
89
- export { BarChart, type BarChartDirection, type BarChartProps, type BarDataPoint, type BarDatetimePoint, type BarSeries, type BarXAxis, type BarYAxis, CategoryAxis, ChartClickHandler, ChartExportHandle, ChartHoverHandler, DatetimeAxis, ValueFormat };
67
+ export { BarChart, type TypeBarChartDirection, type TypeBarChartProps, type TypeBarDataPoint, type TypeBarDatetimePoint, type TypeBarSeries, type TypeBarXAxis, type TypeBarYAxis, TypeCategoryAxis, TypeChartClickHandler, TypeChartHoverHandler, TypeDatetimeAxis, TypeValueFormat };
@@ -1,89 +1,67 @@
1
1
  import * as react from 'react';
2
- import { ReactNode } from 'react';
3
- import { C as ChartAnnotation } from '../annotations-CjFoRPXf.js';
4
- import { V as ValueFormat, C as ChartTooltipProps } from '../chartBase-BYipK7MZ.js';
5
- import { C as ChartColorableEntity, a as ChartIconableEntity, b as ChartClickHandler, c as ChartHoverHandler } from '../interactions-pEXA1XxF.js';
6
- export { d as ChartHoverSeries } from '../interactions-pEXA1XxF.js';
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-DQXvjzBs.js';
2
+ import { T as TypeChartAnnotation } from '../annotations-YfJndb5S.js';
3
+ import { T as TypeChartColorableEntity, a as TypeChartIconableEntity, b as TypeChartClickHandler, c as TypeChartHoverHandler } from '../interactions-D2a4O6iM.js';
4
+ export { d as TypeChartHoverSeries } from '../interactions-D2a4O6iM.js';
5
+ import { T as TypeChartBaseProps, a as TypeChartSizingProps, b as TypeChartTooltipDisplayProps, c as TypeChartTooltipClickFooterProps, d as TypeValueFormat } from '../chartProps-C2Lxty-_.js';
6
+ import { T as TypeChartDataPoint, a as TypeCategoryAxis, b as TypeDatetimeAxis, c as TypeDatetimePoint } from '../axis-Cn8NAgwb.js';
7
+ export { T as TypeChartExportHandle } from '../chartExport-B0imEQ8Y.js';
9
8
  import '@sproutsocial/seeds-react-icon';
10
9
  import '../types-DxrhdAdn.js';
11
10
  import 'highcharts';
12
11
 
13
- type BarDatetimePoint = DatetimePoint;
14
- type BarDataPoint = ChartDataPoint;
15
- interface BarSeries extends ChartColorableEntity, ChartIconableEntity {
12
+ type TypeBarDatetimePoint = TypeDatetimePoint;
13
+ type TypeBarDataPoint = TypeChartDataPoint;
14
+ interface TypeBarSeries extends TypeChartColorableEntity, TypeChartIconableEntity {
16
15
  /** Y-values for each category, or `[timestamp, value]` / `{ x, y }` points on a datetime axis. */
17
- data: Array<BarDataPoint>;
16
+ data: TypeBarDataPoint[];
18
17
  }
19
- type BarXAxis = CategoryAxis | DatetimeAxis;
20
- interface BarYAxis {
18
+ type TypeBarXAxis = TypeCategoryAxis | TypeDatetimeAxis;
19
+ interface TypeBarYAxis {
21
20
  min?: number;
22
21
  max?: number;
23
22
  /** Default: true. */
24
23
  showGridLines?: boolean;
25
24
  title?: string;
26
25
  /** Declarative value formatting for axis tick labels and tooltip values. */
27
- format?: ValueFormat;
26
+ format?: TypeValueFormat;
28
27
  /** Show y-axis tick labels. Default `true`. */
29
28
  showLabels?: boolean;
30
29
  }
31
- type BarChartDirection = "vertical" | "horizontal";
32
- interface BarChartProps {
33
- /** Wired into Highcharts' `accessibility.description`. */
34
- description: string;
35
- series: Array<BarSeries>;
36
- /** Tailwind / class passthrough appended to the container class chain. */
37
- className?: string;
38
- /** Chart height in pixels. Defaults to the time-series baseline (275). */
39
- height?: number;
30
+ type TypeBarChartDirection = "vertical" | "horizontal";
31
+ interface TypeBarChartProps extends TypeChartBaseProps, TypeChartSizingProps, TypeChartTooltipDisplayProps, TypeChartTooltipClickFooterProps {
32
+ series: TypeBarSeries[];
40
33
  /** Orientation of the bars. `"vertical"` (default) renders columns; `"horizontal"` renders bars. */
41
- direction?: BarChartDirection;
34
+ direction?: TypeBarChartDirection;
42
35
  /** Maximum number of series to display. Series beyond the limit are dropped. Default `10`. */
43
36
  seriesLimit?: number;
44
37
  /** Suppress the `console.warn` when series count exceeds the limit. The cap still applies. Default `false`. */
45
38
  hideSeriesLimitWarning?: boolean;
46
- xAxis: BarXAxis;
47
- yAxis?: BarYAxis;
39
+ xAxis: TypeBarXAxis;
40
+ yAxis?: TypeBarYAxis;
48
41
  /** IANA timezone for datetime-axis ticks and tooltips. Default `"UTC"`. Ignored for category axes. */
49
42
  timezone?: string;
50
43
  /** Stacking mode. `"normal"` stacks series (default); `"percent"` normalizes to 100%; `"grouped"` renders adjacent bars. */
51
44
  stacking?: "normal" | "percent" | "grouped";
52
- /** Override for the default tooltip content. */
53
- tooltip?: (args: ChartTooltipProps) => ReactNode;
54
45
  /** Declarative annotations rendered at positions on the chart. */
55
- annotations?: ChartAnnotation[];
46
+ annotations?: TypeChartAnnotation[];
56
47
  /** Click handler invoked with the category name or timestamp of the clicked bar. */
57
- onClick?: ChartClickHandler;
48
+ onClick?: TypeChartClickHandler;
58
49
  /**
59
50
  * Fired when the pointer enters a bar (also on keyboard focus), with the
60
51
  * category name or timestamp of the bar as `position`. For a multi-series bar
61
52
  * chart the payload also carries `series: { name, index }` identifying the
62
53
  * hovered series; it is omitted for single-series charts.
63
54
  */
64
- onMouseEnter?: ChartHoverHandler;
55
+ onMouseEnter?: TypeChartHoverHandler;
65
56
  /**
66
57
  * Fired when the pointer leaves a bar (also on keyboard blur), with the
67
58
  * category name or timestamp of the bar as `position`. For a multi-series bar
68
59
  * chart the payload also carries `series: { name, index }` identifying the
69
60
  * hovered series; it is omitted for single-series charts.
70
61
  */
71
- onMouseLeave?: ChartHoverHandler;
72
- /** Footer content shown in the default tooltip when `onClick` is set. */
73
- tooltipClickLabel?: ReactNode;
74
- /** Override for the value shown when a data point is null. Defaults to an em-dash. */
75
- invalidNumberLabel?: ReactNode;
76
- /**
77
- * Chart title included in the exported image (PNG/SVG/PDF) only — it does
78
- * *not* render on screen. The on-screen title is a React sibling outside the
79
- * chart SVG and can't be captured on export, so `exportTitle` is baked into
80
- * the export clone as a themed native Highcharts title. Omit for no title.
81
- */
82
- exportTitle?: string;
83
- /** Fired once per chart instance with a handle for PNG/SVG/PDF/CSV downloads. Re-fires only on remount. */
84
- onReady?: (handle: ChartExportHandle) => void;
62
+ onMouseLeave?: TypeChartHoverHandler;
85
63
  }
86
64
 
87
- declare const BarChart: react.NamedExoticComponent<BarChartProps>;
65
+ declare const BarChart: react.NamedExoticComponent<TypeBarChartProps>;
88
66
 
89
- export { BarChart, type BarChartDirection, type BarChartProps, type BarDataPoint, type BarDatetimePoint, type BarSeries, type BarXAxis, type BarYAxis, CategoryAxis, ChartClickHandler, ChartExportHandle, ChartHoverHandler, DatetimeAxis, ValueFormat };
67
+ export { BarChart, type TypeBarChartDirection, type TypeBarChartProps, type TypeBarDataPoint, type TypeBarDatetimePoint, type TypeBarSeries, type TypeBarXAxis, type TypeBarYAxis, TypeCategoryAxis, TypeChartClickHandler, TypeChartHoverHandler, TypeDatetimeAxis, TypeValueFormat };
package/dist/bar/index.js CHANGED
@@ -2,22 +2,22 @@
2
2
 
3
3
 
4
4
 
5
- var _chunkWMKO3RGTjs = require('../chunk-WMKO3RGT.js');
5
+ var _chunk2S7XMWJ4js = require('../chunk-2S7XMWJ4.js');
6
6
 
7
7
 
8
8
 
9
- var _chunkCV45MD47js = require('../chunk-CV45MD47.js');
9
+ var _chunkRDS2VCPOjs = require('../chunk-RDS2VCPO.js');
10
10
 
11
11
 
12
- var _chunk6EIJCJCNjs = require('../chunk-6EIJCJCN.js');
12
+ var _chunkI72SSPMXjs = require('../chunk-I72SSPMX.js');
13
13
 
14
14
 
15
15
 
16
16
 
17
- var _chunk5TWNMPQUjs = require('../chunk-5TWNMPQU.js');
17
+ var _chunkV5EXL244js = require('../chunk-V5EXL244.js');
18
18
 
19
19
 
20
- var _chunk34OKRQETjs = require('../chunk-34OKRQET.js');
20
+ var _chunkXH7ZKGHDjs = require('../chunk-XH7ZKGHD.js');
21
21
 
22
22
  // src/charts/bar/BarChart.tsx
23
23
  var _react = require('react');
@@ -30,8 +30,8 @@ function buildBarChartOptions(props, direction, series = props.series) {
30
30
  const chartType = highchartsType(direction);
31
31
  const isDatetime = props.xAxis.type === "datetime";
32
32
  const isMultiSeries = series.length > 1;
33
- const tooltipOptions = _chunkCV45MD47js.resolveTooltipOptions.call(void 0, props);
34
- const { annotations, lookup: annotationLookup } = _chunkWMKO3RGTjs.buildAnnotationConfig.call(void 0,
33
+ const tooltipOptions = _chunkRDS2VCPOjs.resolveTooltipOptions.call(void 0, props);
34
+ const { annotations, lookup: annotationLookup } = _chunk2S7XMWJ4js.buildAnnotationConfig.call(void 0,
35
35
  props.annotations
36
36
  );
37
37
  const barTypeConfig = {
@@ -91,7 +91,7 @@ function buildBarChartOptions(props, direction, series = props.series) {
91
91
  }
92
92
  }
93
93
  };
94
- const base = _chunk5TWNMPQUjs.buildBaseChartOptions.call(void 0, {
94
+ const base = _chunkV5EXL244js.buildBaseChartOptions.call(void 0, {
95
95
  type: chartType,
96
96
  description: props.description,
97
97
  reserveTopMargin: Boolean(annotations),
@@ -106,13 +106,13 @@ function buildBarChartOptions(props, direction, series = props.series) {
106
106
  // Re-assert the definite `type` so spreading the optionally-typed
107
107
  // `base.chart` doesn't widen the required `type` field to optional.
108
108
  type: chartType,
109
- height: _nullishCoalesce(props.height, () => ( _chunk34OKRQETjs.TIME_SERIES_CHART_HEIGHT)),
109
+ height: _nullishCoalesce(props.height, () => ( _chunkXH7ZKGHDjs.TIME_SERIES_CHART_HEIGHT)),
110
110
  // Tight time-series spacing (from constants/chartOptions.ts) so the plot
111
111
  // area fills the 275px container; without it Highcharts' larger default
112
112
  // spacing ([10, 10, 15, 10]) shrinks the plot area.
113
113
  spacing: [5, 1, 0, 2]
114
114
  },
115
- xAxis: _chunkCV45MD47js.buildDimensionalAxis.call(void 0, props.xAxis, _nullishCoalesce(tooltipOptions.timezone, () => ( "UTC"))),
115
+ xAxis: _chunkRDS2VCPOjs.buildDimensionalAxis.call(void 0, props.xAxis, _nullishCoalesce(tooltipOptions.timezone, () => ( "UTC"))),
116
116
  yAxis: {
117
117
  min: _optionalChain([props, 'access', _15 => _15.yAxis, 'optionalAccess', _16 => _16.min]),
118
118
  max: _optionalChain([props, 'access', _17 => _17.yAxis, 'optionalAccess', _18 => _18.max]),
@@ -126,7 +126,7 @@ function buildBarChartOptions(props, direction, series = props.series) {
126
126
  enabled: _optionalChain([props, 'access', _23 => _23.yAxis, 'optionalAccess', _24 => _24.showLabels]) !== false,
127
127
  // A declarative `format` drives ticks through the shared valueFormatter;
128
128
  // absent it, the zero-config decimal default (1.20K / 1.20M / 1.20B).
129
- formatter: _optionalChain([props, 'access', _25 => _25.yAxis, 'optionalAccess', _26 => _26.format]) ? _chunkWMKO3RGTjs.makeValueAxisLabelFormatter.call(void 0, props.yAxis.format) : _chunkWMKO3RGTjs.defaultValueAxisLabelFormatter
129
+ formatter: _optionalChain([props, 'access', _25 => _25.yAxis, 'optionalAccess', _26 => _26.format]) ? _chunk2S7XMWJ4js.makeValueAxisLabelFormatter.call(void 0, props.yAxis.format) : _chunk2S7XMWJ4js.defaultValueAxisLabelFormatter
130
130
  }
131
131
  },
132
132
  plotOptions: {
@@ -151,7 +151,7 @@ var BAR_CHART_DEFAULT_SERIES_LIMIT = 10;
151
151
  var _jsxruntime = require('react/jsx-runtime');
152
152
  var BarChart = _react.memo.call(void 0, function BarChart2(props) {
153
153
  const seriesLimit = _nullishCoalesce(props.seriesLimit, () => ( BAR_CHART_DEFAULT_SERIES_LIMIT));
154
- const { colors, series } = _chunk5TWNMPQUjs.useSeedsChartSetup.call(void 0, {
154
+ const { colors, series } = _chunkV5EXL244js.useSeedsChartSetup.call(void 0, {
155
155
  series: props.series,
156
156
  seriesLimit,
157
157
  isSeriesLimitOverridden: props.seriesLimit !== void 0,
@@ -164,14 +164,14 @@ var BarChart = _react.memo.call(void 0, function BarChart2(props) {
164
164
  series
165
165
  );
166
166
  const hasOnClick = Boolean(props.onClick);
167
- const containerProps = _chunk6EIJCJCNjs.getChartContainerProps.call(void 0, {
167
+ const containerProps = _chunkI72SSPMXjs.getChartContainerProps.call(void 0, {
168
168
  familyClasses: ["seeds-chart-time-series", "seeds-chart-bar"],
169
169
  colors: series.map((s) => s.color),
170
170
  hasOnClick,
171
171
  className: props.className
172
172
  });
173
173
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ...containerProps, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
174
- _chunk5TWNMPQUjs.ChartRenderer,
174
+ _chunkV5EXL244js.ChartRenderer,
175
175
  {
176
176
  options,
177
177
  series,
@@ -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, 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"]}
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 { TypeBarChartProps } from \"./types\";\nimport { BAR_CHART_DEFAULT_SERIES_LIMIT } from \"../constants\";\n\nexport const BarChart = memo(function BarChart(props: TypeBarChartProps) {\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 { TypeChartAnnotationLookup } from \"../shared/annotations\";\nimport type {\n TypeSeedsChartColumnPlotOptions,\n TypeSeedsChartOptions,\n} from \"../shared/chartBase\";\nimport type { TypeChartTooltipRenderProps } from \"../shared/chartTooltip\";\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 { TypeBarChartDirection, TypeBarChartProps } 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: TypeBarChartDirection): \"column\" | \"bar\" {\n return direction === \"horizontal\" ? \"bar\" : \"column\";\n}\n\nexport function buildBarChartOptions(\n props: TypeBarChartProps,\n direction: TypeBarChartDirection,\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: TypeBarChartProps[\"series\"] = props.series\n): {\n options: TypeSeedsChartOptions;\n annotationLookup: TypeChartAnnotationLookup | undefined;\n /** Resolved datetime-derived tooltip options (timezone / timeFormat / textLocale); all undefined on category axes. */\n tooltipOptions: Pick<\n TypeChartTooltipRenderProps,\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: TypeSeedsChartColumnPlotOptions = {\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: TypeSeedsChartOptions = {\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"]}