@coinbase/cds-mobile-visualization 3.4.0-beta.9 → 3.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (167) hide show
  1. package/CHANGELOG.md +132 -0
  2. package/dts/chart/CartesianChart.d.ts +92 -7
  3. package/dts/chart/CartesianChart.d.ts.map +1 -1
  4. package/dts/chart/ChartContextBridge.d.ts.map +1 -1
  5. package/dts/chart/ChartProvider.d.ts +3 -0
  6. package/dts/chart/ChartProvider.d.ts.map +1 -1
  7. package/dts/chart/Path.d.ts +36 -13
  8. package/dts/chart/Path.d.ts.map +1 -1
  9. package/dts/chart/PeriodSelector.d.ts +20 -5
  10. package/dts/chart/PeriodSelector.d.ts.map +1 -1
  11. package/dts/chart/area/Area.d.ts +14 -11
  12. package/dts/chart/area/Area.d.ts.map +1 -1
  13. package/dts/chart/area/AreaChart.d.ts +33 -9
  14. package/dts/chart/area/AreaChart.d.ts.map +1 -1
  15. package/dts/chart/area/DottedArea.d.ts.map +1 -1
  16. package/dts/chart/area/GradientArea.d.ts.map +1 -1
  17. package/dts/chart/area/SolidArea.d.ts.map +1 -1
  18. package/dts/chart/axis/Axis.d.ts +22 -42
  19. package/dts/chart/axis/Axis.d.ts.map +1 -1
  20. package/dts/chart/axis/XAxis.d.ts +6 -0
  21. package/dts/chart/axis/XAxis.d.ts.map +1 -1
  22. package/dts/chart/axis/YAxis.d.ts +1 -0
  23. package/dts/chart/axis/YAxis.d.ts.map +1 -1
  24. package/dts/chart/bar/Bar.d.ts +51 -51
  25. package/dts/chart/bar/Bar.d.ts.map +1 -1
  26. package/dts/chart/bar/BarChart.d.ts +56 -11
  27. package/dts/chart/bar/BarChart.d.ts.map +1 -1
  28. package/dts/chart/bar/BarPlot.d.ts +2 -1
  29. package/dts/chart/bar/BarPlot.d.ts.map +1 -1
  30. package/dts/chart/bar/BarStack.d.ts +45 -20
  31. package/dts/chart/bar/BarStack.d.ts.map +1 -1
  32. package/dts/chart/bar/BarStackGroup.d.ts +2 -1
  33. package/dts/chart/bar/BarStackGroup.d.ts.map +1 -1
  34. package/dts/chart/bar/DefaultBar.d.ts.map +1 -1
  35. package/dts/chart/bar/DefaultBarStack.d.ts.map +1 -1
  36. package/dts/chart/gradient/Gradient.d.ts +5 -0
  37. package/dts/chart/gradient/Gradient.d.ts.map +1 -1
  38. package/dts/chart/index.d.ts +1 -0
  39. package/dts/chart/index.d.ts.map +1 -1
  40. package/dts/chart/legend/DefaultLegendEntry.d.ts +5 -0
  41. package/dts/chart/legend/DefaultLegendEntry.d.ts.map +1 -0
  42. package/dts/chart/legend/DefaultLegendShape.d.ts +5 -0
  43. package/dts/chart/legend/DefaultLegendShape.d.ts.map +1 -0
  44. package/dts/chart/legend/Legend.d.ts +168 -0
  45. package/dts/chart/legend/Legend.d.ts.map +1 -0
  46. package/dts/chart/legend/index.d.ts +4 -0
  47. package/dts/chart/legend/index.d.ts.map +1 -0
  48. package/dts/chart/line/DottedLine.d.ts.map +1 -1
  49. package/dts/chart/line/Line.d.ts +23 -19
  50. package/dts/chart/line/Line.d.ts.map +1 -1
  51. package/dts/chart/line/LineChart.d.ts +26 -9
  52. package/dts/chart/line/LineChart.d.ts.map +1 -1
  53. package/dts/chart/line/ReferenceLine.d.ts +1 -0
  54. package/dts/chart/line/ReferenceLine.d.ts.map +1 -1
  55. package/dts/chart/line/SolidLine.d.ts.map +1 -1
  56. package/dts/chart/point/Point.d.ts +26 -2
  57. package/dts/chart/point/Point.d.ts.map +1 -1
  58. package/dts/chart/scrubber/DefaultScrubberBeacon.d.ts +32 -2
  59. package/dts/chart/scrubber/DefaultScrubberBeacon.d.ts.map +1 -1
  60. package/dts/chart/scrubber/DefaultScrubberLabel.d.ts +2 -1
  61. package/dts/chart/scrubber/DefaultScrubberLabel.d.ts.map +1 -1
  62. package/dts/chart/scrubber/Scrubber.d.ts +86 -17
  63. package/dts/chart/scrubber/Scrubber.d.ts.map +1 -1
  64. package/dts/chart/scrubber/ScrubberAccessibilityView.d.ts +12 -0
  65. package/dts/chart/scrubber/ScrubberAccessibilityView.d.ts.map +1 -0
  66. package/dts/chart/scrubber/ScrubberBeaconGroup.d.ts +10 -0
  67. package/dts/chart/scrubber/ScrubberBeaconGroup.d.ts.map +1 -1
  68. package/dts/chart/scrubber/ScrubberBeaconLabelGroup.d.ts +16 -1
  69. package/dts/chart/scrubber/ScrubberBeaconLabelGroup.d.ts.map +1 -1
  70. package/dts/chart/scrubber/ScrubberProvider.d.ts.map +1 -1
  71. package/dts/chart/utils/axis.d.ts +45 -10
  72. package/dts/chart/utils/axis.d.ts.map +1 -1
  73. package/dts/chart/utils/bar.d.ts +190 -0
  74. package/dts/chart/utils/bar.d.ts.map +1 -1
  75. package/dts/chart/utils/chart.d.ts +32 -0
  76. package/dts/chart/utils/chart.d.ts.map +1 -1
  77. package/dts/chart/utils/context.d.ts +21 -6
  78. package/dts/chart/utils/context.d.ts.map +1 -1
  79. package/dts/chart/utils/gradient.d.ts +3 -1
  80. package/dts/chart/utils/gradient.d.ts.map +1 -1
  81. package/dts/chart/utils/path.d.ts +26 -0
  82. package/dts/chart/utils/path.d.ts.map +1 -1
  83. package/dts/chart/utils/point.d.ts +24 -12
  84. package/dts/chart/utils/point.d.ts.map +1 -1
  85. package/dts/chart/utils/scale.d.ts +11 -0
  86. package/dts/chart/utils/scale.d.ts.map +1 -1
  87. package/dts/chart/utils/scrubber.d.ts +2 -1
  88. package/dts/chart/utils/scrubber.d.ts.map +1 -1
  89. package/dts/chart/utils/transition.d.ts +63 -22
  90. package/dts/chart/utils/transition.d.ts.map +1 -1
  91. package/dts/sparkline/Sparkline.d.ts +2 -1
  92. package/dts/sparkline/Sparkline.d.ts.map +1 -1
  93. package/dts/sparkline/SparklineArea.d.ts +2 -1
  94. package/dts/sparkline/SparklineArea.d.ts.map +1 -1
  95. package/dts/sparkline/SparklineGradient.d.ts +2 -1
  96. package/dts/sparkline/SparklineGradient.d.ts.map +1 -1
  97. package/dts/sparkline/sparkline-interactive/SparklineInteractive.d.ts +2 -1
  98. package/dts/sparkline/sparkline-interactive/SparklineInteractive.d.ts.map +1 -1
  99. package/esm/chart/CartesianChart.js +176 -82
  100. package/esm/chart/ChartContextBridge.js +14 -3
  101. package/esm/chart/ChartProvider.js +2 -2
  102. package/esm/chart/Path.js +34 -29
  103. package/esm/chart/PeriodSelector.js +5 -1
  104. package/esm/chart/__stories__/CartesianChart.stories.js +16 -80
  105. package/esm/chart/__stories__/ChartAccessibility.stories.js +721 -0
  106. package/esm/chart/__stories__/ChartTransitions.stories.js +625 -0
  107. package/esm/chart/__stories__/PeriodSelector.stories.js +99 -1
  108. package/esm/chart/area/Area.js +21 -9
  109. package/esm/chart/area/AreaChart.js +18 -13
  110. package/esm/chart/area/DottedArea.js +28 -18
  111. package/esm/chart/area/GradientArea.js +14 -7
  112. package/esm/chart/area/SolidArea.js +6 -2
  113. package/esm/chart/area/__stories__/AreaChart.stories.js +47 -5
  114. package/esm/chart/axis/Axis.js +5 -41
  115. package/esm/chart/axis/XAxis.js +116 -47
  116. package/esm/chart/axis/YAxis.js +105 -26
  117. package/esm/chart/axis/__stories__/Axis.stories.js +324 -48
  118. package/esm/chart/bar/Bar.js +17 -15
  119. package/esm/chart/bar/BarChart.js +38 -33
  120. package/esm/chart/bar/BarPlot.js +40 -45
  121. package/esm/chart/bar/BarStack.js +92 -475
  122. package/esm/chart/bar/BarStackGroup.js +37 -27
  123. package/esm/chart/bar/DefaultBar.js +27 -18
  124. package/esm/chart/bar/DefaultBarStack.js +25 -9
  125. package/esm/chart/bar/__stories__/BarChart.stories.js +728 -54
  126. package/esm/chart/gradient/Gradient.js +2 -1
  127. package/esm/chart/index.js +1 -0
  128. package/esm/chart/legend/DefaultLegendEntry.js +42 -0
  129. package/esm/chart/legend/DefaultLegendShape.js +64 -0
  130. package/esm/chart/legend/Legend.js +59 -0
  131. package/esm/chart/legend/__stories__/Legend.stories.js +574 -0
  132. package/esm/chart/legend/index.js +3 -0
  133. package/esm/chart/line/DottedLine.js +6 -2
  134. package/esm/chart/line/Line.js +42 -38
  135. package/esm/chart/line/LineChart.js +36 -12
  136. package/esm/chart/line/SolidLine.js +6 -2
  137. package/esm/chart/line/__stories__/LineChart.stories.js +236 -590
  138. package/esm/chart/line/__stories__/ReferenceLine.stories.js +95 -1
  139. package/esm/chart/point/Point.js +35 -36
  140. package/esm/chart/scrubber/DefaultScrubberBeacon.js +41 -38
  141. package/esm/chart/scrubber/DefaultScrubberLabel.js +26 -10
  142. package/esm/chart/scrubber/Scrubber.js +67 -35
  143. package/esm/chart/scrubber/ScrubberAccessibilityView.js +177 -0
  144. package/esm/chart/scrubber/ScrubberBeaconGroup.js +30 -22
  145. package/esm/chart/scrubber/ScrubberBeaconLabelGroup.js +35 -8
  146. package/esm/chart/scrubber/ScrubberProvider.js +29 -24
  147. package/esm/chart/scrubber/__stories__/Scrubber.stories.js +946 -0
  148. package/esm/chart/utils/axis.js +88 -44
  149. package/esm/chart/utils/bar.js +820 -0
  150. package/esm/chart/utils/chart.js +34 -7
  151. package/esm/chart/utils/context.js +7 -0
  152. package/esm/chart/utils/gradient.js +8 -4
  153. package/esm/chart/utils/path.js +91 -61
  154. package/esm/chart/utils/point.js +92 -39
  155. package/esm/chart/utils/scale.js +13 -2
  156. package/esm/chart/utils/scrubber.js +12 -5
  157. package/esm/chart/utils/transition.js +108 -60
  158. package/esm/sparkline/Sparkline.js +2 -1
  159. package/esm/sparkline/SparklineArea.js +2 -1
  160. package/esm/sparkline/SparklineGradient.js +2 -1
  161. package/esm/sparkline/__figma__/Sparkline.figma.js +1 -1
  162. package/esm/sparkline/sparkline-interactive/SparklineInteractive.js +2 -1
  163. package/esm/sparkline/sparkline-interactive/__figma__/SparklineInteractive.figma.js +1 -1
  164. package/esm/sparkline/sparkline-interactive-header/__figma__/SparklineInteractiveHeader.figma.js +1 -1
  165. package/esm/sparkline/sparkline-interactive-header/__stories__/SparklineInteractiveHeader.stories.js +2 -0
  166. package/package.json +5 -6
  167. package/esm/chart/__stories__/Chart.stories.js +0 -77
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import { type AnimatedProp, type SkParagraph } from '@shopify/react-native-skia';
3
3
  import { type ReferenceLineBaseProps, type ReferenceLineLabelComponentProps } from '../line';
4
- import type { ChartTextProps } from '../text';
4
+ import type { ChartTextChildren, ChartTextProps } from '../text';
5
5
  import { type ChartInset, type Series } from '../utils';
6
6
  import type { Transition } from '../utils/transition';
7
7
  import {
@@ -20,7 +20,7 @@ export type ScrubberBeaconRef = {
20
20
  */
21
21
  pulse: () => void;
22
22
  };
23
- export type ScrubberBeaconProps = {
23
+ export type ScrubberBeaconBaseProps = {
24
24
  /**
25
25
  * Id of the series.
26
26
  */
@@ -31,10 +31,14 @@ export type ScrubberBeaconProps = {
31
31
  color?: AnimatedProp<string>;
32
32
  /**
33
33
  * X coordinate in data space.
34
+ * In vertical layout this is the scrubber index-axis value.
35
+ * In horizontal layout this is the series value.
34
36
  */
35
37
  dataX: AnimatedProp<number>;
36
38
  /**
37
39
  * Y coordinate in data space.
40
+ * In vertical layout this is the series value.
41
+ * In horizontal layout this is the scrubber index-axis value.
38
42
  */
39
43
  dataY: AnimatedProp<number>;
40
44
  /**
@@ -43,25 +47,45 @@ export type ScrubberBeaconProps = {
43
47
  isIdle: AnimatedProp<boolean>;
44
48
  /**
45
49
  * Pulse the beacon while it is at rest.
50
+ *
51
+ * @note Only has an effect when `isIdle` is `true`. Pulse animations work
52
+ * regardless of the chart's `animate` prop.
46
53
  */
47
54
  idlePulse?: boolean;
48
55
  /**
49
- * Whether animations are enabled.
50
- * @default true
56
+ * Whether position animations are enabled.
57
+ * @default to ChartContext's animate value
51
58
  */
52
59
  animate?: boolean;
60
+ /**
61
+ * Opacity of the beacon.
62
+ * @default 1
63
+ */
64
+ opacity?: AnimatedProp<number>;
65
+ /**
66
+ * Stroke color of the beacon circle.
67
+ * @default theme.color.bg
68
+ */
69
+ stroke?: string;
70
+ };
71
+ export type ScrubberBeaconProps = ScrubberBeaconBaseProps & {
53
72
  /**
54
73
  * Transition configuration for beacon animations.
55
74
  */
56
75
  transitions?: {
57
76
  /**
58
- * Transition used for beacon position updates.
59
- * @default defaultTransition
77
+ * Transition for the initial enter/reveal animation.
78
+ * Set to `null` to disable.
60
79
  */
61
- update?: Transition;
80
+ enter?: Transition | null;
81
+ /**
82
+ * Transition for subsequent data update animations.
83
+ * Set to `null` to disable.
84
+ */
85
+ update?: Transition | null;
62
86
  /**
63
87
  * Transition used for the pulse animation.
64
- * @default { type: 'timing', duration: 1600, easing: Easing.bezier(0.0, 0.0, 0.0, 1.0) }
88
+ * @default transition { type: 'timing', duration: 1600, easing: Easing.bezier(0.0, 0.0, 0.0, 1.0) }
65
89
  */
66
90
  pulse?: Transition;
67
91
  /**
@@ -71,11 +95,6 @@ export type ScrubberBeaconProps = {
71
95
  */
72
96
  pulseRepeatDelay?: number;
73
97
  };
74
- /**
75
- * Opacity of the beacon.
76
- * @default 1
77
- */
78
- opacity?: AnimatedProp<number>;
79
98
  };
80
99
  export type ScrubberBeaconComponent = React.FC<
81
100
  ScrubberBeaconProps & {
@@ -90,7 +109,7 @@ export type ScrubberBeaconLabelProps = Pick<Series, 'color'> &
90
109
  /**
91
110
  * Label for the series.
92
111
  */
93
- label: AnimatedProp<string>;
112
+ label: ChartTextChildren;
94
113
  /**
95
114
  * Id of the series.
96
115
  */
@@ -108,6 +127,12 @@ export type ScrubberBaseProps = Pick<ScrubberBeaconGroupBaseProps, 'idlePulse'>
108
127
  * By default, all series will be highlighted.
109
128
  */
110
129
  seriesIds?: string[];
130
+ /**
131
+ * Hides the beacon labels while keeping the line label visible (if provided).
132
+ * @default true in horizontal layout, false in vertical layout.
133
+ * @note Beacon labels are always hidden in horizontal layout, and cannot be overridden.
134
+ */
135
+ hideBeaconLabels?: boolean;
111
136
  /**
112
137
  * Hides the scrubber line.
113
138
  * @note This hides Scrubber's ReferenceLine including the label.
@@ -133,6 +158,12 @@ export type ScrubberBaseProps = Pick<ScrubberBeaconGroupBaseProps, 'idlePulse'>
133
158
  * Measured in pixels.
134
159
  */
135
160
  beaconLabelHorizontalOffset?: ScrubberBeaconLabelGroupBaseProps['labelHorizontalOffset'];
161
+ /**
162
+ * Preferred side for beacon labels.
163
+ * @note labels will switch to the opposite side if there's not enough space on the preferred side.
164
+ * @default 'right'
165
+ */
166
+ beaconLabelPreferredSide?: ScrubberBeaconLabelGroupBaseProps['labelPreferredSide'];
136
167
  /**
137
168
  * Label text displayed above the scrubber line.
138
169
  * Can be a static string or a function that receives the current dataIndex.
@@ -156,11 +187,24 @@ export type ScrubberBaseProps = Pick<ScrubberBeaconGroupBaseProps, 'idlePulse'>
156
187
  */
157
188
  lineStroke?: ReferenceLineBaseProps['stroke'];
158
189
  /**
159
- * Transition configuration for the scrubber beacon.
190
+ * Stroke color of the scrubber beacon circle.
191
+ * @default theme.color.bg
160
192
  */
161
- beaconTransitions?: ScrubberBeaconProps['transitions'];
193
+ beaconStroke?: string;
162
194
  };
163
- export type ScrubberProps = ScrubberBaseProps;
195
+ export type ScrubberProps = ScrubberBaseProps & {
196
+ /**
197
+ * Transition configuration for the scrubber.
198
+ * Controls enter, update, and pulse animations for beacons and beacon labels.
199
+ */
200
+ transitions?: ScrubberBeaconProps['transitions'];
201
+ /**
202
+ * Transition configuration for the scrubber beacon.
203
+ * @deprecated Use `transitions` instead. This will be removed in a future major release.
204
+ * @deprecationExpectedRemoval v4
205
+ */
206
+ beaconTransitions?: ScrubberBeaconProps['transitions'];
207
+ };
164
208
  export type ScrubberRef = ScrubberBeaconGroupRef;
165
209
  /**
166
210
  * Unified component that manages all scrubber elements (beacons, line, labels).
@@ -176,6 +220,12 @@ export declare const Scrubber: React.MemoExoticComponent<
176
220
  * By default, all series will be highlighted.
177
221
  */
178
222
  seriesIds?: string[];
223
+ /**
224
+ * Hides the beacon labels while keeping the line label visible (if provided).
225
+ * @default true in horizontal layout, false in vertical layout.
226
+ * @note Beacon labels are always hidden in horizontal layout, and cannot be overridden.
227
+ */
228
+ hideBeaconLabels?: boolean;
179
229
  /**
180
230
  * Hides the scrubber line.
181
231
  * @note This hides Scrubber's ReferenceLine including the label.
@@ -201,6 +251,12 @@ export declare const Scrubber: React.MemoExoticComponent<
201
251
  * Measured in pixels.
202
252
  */
203
253
  beaconLabelHorizontalOffset?: ScrubberBeaconLabelGroupBaseProps['labelHorizontalOffset'];
254
+ /**
255
+ * Preferred side for beacon labels.
256
+ * @note labels will switch to the opposite side if there's not enough space on the preferred side.
257
+ * @default 'right'
258
+ */
259
+ beaconLabelPreferredSide?: ScrubberBeaconLabelGroupBaseProps['labelPreferredSide'];
204
260
  /**
205
261
  * Label text displayed above the scrubber line.
206
262
  * Can be a static string or a function that receives the current dataIndex.
@@ -223,8 +279,21 @@ export declare const Scrubber: React.MemoExoticComponent<
223
279
  * Stroke color for the scrubber line.
224
280
  */
225
281
  lineStroke?: ReferenceLineBaseProps['stroke'];
282
+ /**
283
+ * Stroke color of the scrubber beacon circle.
284
+ * @default theme.color.bg
285
+ */
286
+ beaconStroke?: string;
287
+ } & {
288
+ /**
289
+ * Transition configuration for the scrubber.
290
+ * Controls enter, update, and pulse animations for beacons and beacon labels.
291
+ */
292
+ transitions?: ScrubberBeaconProps['transitions'];
226
293
  /**
227
294
  * Transition configuration for the scrubber beacon.
295
+ * @deprecated Use `transitions` instead. This will be removed in a future major release.
296
+ * @deprecationExpectedRemoval v4
228
297
  */
229
298
  beaconTransitions?: ScrubberBeaconProps['transitions'];
230
299
  } & React.RefAttributes<ScrubberBeaconGroupRef>
@@ -1 +1 @@
1
- {"version":3,"file":"Scrubber.d.ts","sourceRoot":"","sources":["../../../src/chart/scrubber/Scrubber.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Scrubber.d.ts","sourceRoot":"","sources":["../../../src/chart/scrubber/Scrubber.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import React from 'react';
2
+ export type ScrubberAccessibilityViewProps = {
3
+ accessibilityLabel?: (dataIndex: number) => string;
4
+ accessibilityStep?: number;
5
+ };
6
+ export declare const ScrubberAccessibilityView: React.MemoExoticComponent<
7
+ ({
8
+ accessibilityLabel,
9
+ accessibilityStep,
10
+ }: ScrubberAccessibilityViewProps) => import('react/jsx-runtime').JSX.Element | undefined
11
+ >;
12
+ //# sourceMappingURL=ScrubberAccessibilityView.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ScrubberAccessibilityView.d.ts","sourceRoot":"","sources":["../../../src/chart/scrubber/ScrubberAccessibilityView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAqC,MAAM,OAAO,CAAC;AAqI1D,MAAM,MAAM,8BAA8B,GAAG;IAC3C,kBAAkB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,MAAM,CAAC;IACnD,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF,eAAO,MAAM,yBAAyB,wEACQ,8BAA8B,yDAmH3E,CAAC"}
@@ -25,6 +25,11 @@ export type ScrubberBeaconGroupProps = ScrubberBeaconGroupBaseProps & {
25
25
  * @default DefaultScrubberBeacon
26
26
  */
27
27
  BeaconComponent?: ScrubberBeaconComponent;
28
+ /**
29
+ * Stroke color of the beacon circle.
30
+ * @default theme.color.bg
31
+ */
32
+ stroke?: string;
28
33
  };
29
34
  export declare const ScrubberBeaconGroup: import('react').MemoExoticComponent<
30
35
  import('react').ForwardRefExoticComponent<
@@ -38,6 +43,11 @@ export declare const ScrubberBeaconGroup: import('react').MemoExoticComponent<
38
43
  * @default DefaultScrubberBeacon
39
44
  */
40
45
  BeaconComponent?: ScrubberBeaconComponent;
46
+ /**
47
+ * Stroke color of the beacon circle.
48
+ * @default theme.color.bg
49
+ */
50
+ stroke?: string;
41
51
  } & import('react').RefAttributes<ScrubberBeaconGroupRef>
42
52
  >
43
53
  >;
@@ -1 +1 @@
1
- {"version":3,"file":"ScrubberBeaconGroup.d.ts","sourceRoot":"","sources":["../../../src/chart/scrubber/ScrubberBeaconGroup.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,uBAAuB,EAAE,mBAAmB,EAAqB,MAAM,YAAY,CAAC;AAgHlG,MAAM,MAAM,sBAAsB,GAAG;IACnC;;OAEG;IACH,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG;IACzC;;OAEG;IACH,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG,4BAA4B,GAAG;IACpE;;OAEG;IACH,WAAW,CAAC,EAAE,mBAAmB,CAAC,aAAa,CAAC,CAAC;IACjD;;;OAGG;IACH,eAAe,CAAC,EAAE,uBAAuB,CAAC;CAC3C,CAAC;AAEF,eAAO,MAAM,mBAAmB;IAX9B;;OAEG;kBACW,mBAAmB,CAAC,aAAa,CAAC;IAChD;;;OAGG;sBACe,uBAAuB;2DAqE1C,CAAC"}
1
+ {"version":3,"file":"ScrubberBeaconGroup.d.ts","sourceRoot":"","sources":["../../../src/chart/scrubber/ScrubberBeaconGroup.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,uBAAuB,EAAE,mBAAmB,EAAqB,MAAM,YAAY,CAAC;AA4HlG,MAAM,MAAM,sBAAsB,GAAG;IACnC;;OAEG;IACH,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG;IACzC;;OAEG;IACH,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG,4BAA4B,GAAG;IACpE;;OAEG;IACH,WAAW,CAAC,EAAE,mBAAmB,CAAC,aAAa,CAAC,CAAC;IACjD;;;OAGG;IACH,eAAe,CAAC,EAAE,uBAAuB,CAAC;IAC1C;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,eAAO,MAAM,mBAAmB;IAhB9B;;OAEG;kBACW,mBAAmB,CAAC,aAAa,CAAC;IAChD;;;OAGG;sBACe,uBAAuB;IACzC;;;OAGG;aACM,MAAM;2DAkFhB,CAAC"}
@@ -1,5 +1,10 @@
1
1
  import type { ChartTextProps } from '../text';
2
- import type { ScrubberBeaconLabelComponent, ScrubberBeaconLabelProps } from './Scrubber';
2
+ import { type ScrubberLabelPosition } from '../utils/scrubber';
3
+ import type {
4
+ ScrubberBeaconLabelComponent,
5
+ ScrubberBeaconLabelProps,
6
+ ScrubberBeaconProps,
7
+ } from './Scrubber';
3
8
  export type ScrubberBeaconLabelGroupBaseProps = {
4
9
  /**
5
10
  * Labels to be displayed.
@@ -19,6 +24,12 @@ export type ScrubberBeaconLabelGroupBaseProps = {
19
24
  * Font style for the beacon labels.
20
25
  */
21
26
  labelFont?: ChartTextProps['font'];
27
+ /**
28
+ * Preferred side for labels.
29
+ * @note labels will switch to the opposite side if there's not enough space on the preferred side.
30
+ * @default 'right'
31
+ */
32
+ labelPreferredSide?: ScrubberLabelPosition;
22
33
  };
23
34
  export type ScrubberBeaconLabelGroupProps = ScrubberBeaconLabelGroupBaseProps & {
24
35
  /**
@@ -26,6 +37,10 @@ export type ScrubberBeaconLabelGroupProps = ScrubberBeaconLabelGroupBaseProps &
26
37
  * @default DefaultScrubberBeaconLabel
27
38
  */
28
39
  BeaconLabelComponent?: ScrubberBeaconLabelComponent;
40
+ /**
41
+ * Transition configuration for beacon label animations.
42
+ */
43
+ transitions?: ScrubberBeaconProps['transitions'];
29
44
  };
30
45
  export declare const ScrubberBeaconLabelGroup: import('react').NamedExoticComponent<ScrubberBeaconLabelGroupProps>;
31
46
  //# sourceMappingURL=ScrubberBeaconLabelGroup.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ScrubberBeaconLabelGroup.d.ts","sourceRoot":"","sources":["../../../src/chart/scrubber/ScrubberBeaconLabelGroup.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAW9C,OAAO,KAAK,EAAE,4BAA4B,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AA2DzF,MAAM,MAAM,iCAAiC,GAAG;IAC9C;;OAEG;IACH,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,wBAAwB,EAAE,UAAU,GAAG,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC;IAC9E;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B;;OAEG;IACH,SAAS,CAAC,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;CACpC,CAAC;AAEF,MAAM,MAAM,6BAA6B,GAAG,iCAAiC,GAAG;IAC9E;;;OAGG;IACH,oBAAoB,CAAC,EAAE,4BAA4B,CAAC;CACrD,CAAC;AAEF,eAAO,MAAM,wBAAwB,qEAgLpC,CAAC"}
1
+ {"version":3,"file":"ScrubberBeaconLabelGroup.d.ts","sourceRoot":"","sources":["../../../src/chart/scrubber/ScrubberBeaconLabelGroup.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAqB,cAAc,EAAE,MAAM,SAAS,CAAC;AAEjE,OAAO,EAKL,KAAK,qBAAqB,EAC3B,MAAM,mBAAmB,CAAC;AAS3B,OAAO,KAAK,EACV,4BAA4B,EAC5B,wBAAwB,EACxB,mBAAmB,EACpB,MAAM,YAAY,CAAC;AAsFpB,MAAM,MAAM,iCAAiC,GAAG;IAC9C;;OAEG;IACH,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,wBAAwB,EAAE,UAAU,GAAG,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC;IAC9E;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B;;OAEG;IACH,SAAS,CAAC,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;IACnC;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,qBAAqB,CAAC;CAC5C,CAAC;AAEF,MAAM,MAAM,6BAA6B,GAAG,iCAAiC,GAAG;IAC9E;;;OAGG;IACH,oBAAoB,CAAC,EAAE,4BAA4B,CAAC;IACpD;;OAEG;IACH,WAAW,CAAC,EAAE,mBAAmB,CAAC,aAAa,CAAC,CAAC;CAClD,CAAC;AAEF,eAAO,MAAM,wBAAwB,qEAoMpC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ScrubberProvider.d.ts","sourceRoot":"","sources":["../../../src/chart/scrubber/ScrubberProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA+B,MAAM,OAAO,CAAC;AAOpD,OAAO,EAA4C,KAAK,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAG/F,MAAM,MAAM,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,oBAAoB,EAAE,iBAAiB,CAAC,CAAC,GAAG;IAC3F,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B;;OAEG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC;;;OAGG;IACH,wBAAwB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;CAChE,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,CAsJ5D,CAAC"}
1
+ {"version":3,"file":"ScrubberProvider.d.ts","sourceRoot":"","sources":["../../../src/chart/scrubber/ScrubberProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA+B,MAAM,OAAO,CAAC;AAOpD,OAAO,EAA4C,KAAK,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAG/F,MAAM,MAAM,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,oBAAoB,EAAE,iBAAiB,CAAC,CAAC,GAAG;IAC3F,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B;;OAEG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC;;;OAGG;IACH,wBAAwB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;CAChE,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,CA+J5D,CAAC"}
@@ -1,9 +1,28 @@
1
1
  import type React from 'react';
2
2
  import type { Rect } from '@coinbase/cds-common/types';
3
3
  import { type AxisBounds, type Series } from './chart';
4
- import { type ChartAxisScaleType, type ChartScaleFunction } from './scale';
4
+ import type { CartesianChartLayout } from './context';
5
+ import { type ChartAxisScaleType, type ChartScaleFunction, type PointAnchor } from './scale';
5
6
  export declare const defaultAxisId = 'DEFAULT_AXIS_ID';
6
7
  export declare const defaultAxisScaleType = 'linear';
8
+ /**
9
+ * Position options for band scale axis elements (grid lines, tick marks, labels).
10
+ *
11
+ * - `'start'` - At the start of each step (before bar padding)
12
+ * - `'middle'` - At the center of each band
13
+ * - `'end'` - At the end of each step (after bar padding)
14
+ * - `'edges'` - At start of each tick, plus end for the last tick (encloses the chart)
15
+ *
16
+ * @note These properties only apply when using a band scale (`scaleType: 'band'`).
17
+ */
18
+ export type AxisBandPlacement = 'start' | 'middle' | 'end' | 'edges';
19
+ /**
20
+ * Converts an AxisBandPlacement to the corresponding PointAnchor for use with getPointOnScale.
21
+ *
22
+ * @param placement - The axis placement value
23
+ * @returns The corresponding PointAnchor for scale calculations
24
+ */
25
+ export declare const toPointAnchor: (placement: AxisBandPlacement) => PointAnchor;
7
26
  /**
8
27
  * Axis configuration with computed bounds
9
28
  */
@@ -38,7 +57,7 @@ export type AxisConfig = {
38
57
  /**
39
58
  * Axis configuration without computed bounds (used for input)
40
59
  */
41
- export type AxisConfigProps = Omit<AxisConfig, 'domain' | 'range'> & {
60
+ export type CartesianAxisConfigProps = Omit<AxisConfig, 'domain' | 'range'> & {
42
61
  /**
43
62
  * Unique identifier for this axis.
44
63
  */
@@ -66,8 +85,14 @@ export type AxisConfigProps = Omit<AxisConfig, 'domain' | 'range'> & {
66
85
  */
67
86
  range?: Partial<AxisBounds> | ((bounds: AxisBounds) => AxisBounds);
68
87
  };
88
+ export type CartesianAxisConfig = AxisConfig & {
89
+ /**
90
+ * Domain limit type for numeric scales
91
+ */
92
+ domainLimit?: 'nice' | 'strict';
93
+ };
69
94
  /**
70
- * Gets a D3 scale based on the axis configuration.
95
+ * Gets a D3 scale based on the cartesian axis configuration.
71
96
  * Handles both numeric (linear/log) and categorical (band) scales.
72
97
  *
73
98
  * For numeric scales, the domain limit controls whether bounds are "nice" (human-friendly)
@@ -77,16 +102,18 @@ export type AxisConfigProps = Omit<AxisConfig, 'domain' | 'range'> & {
77
102
  * @returns The D3 scale function
78
103
  * @throws An Error if bounds are invalid
79
104
  */
80
- export declare const getAxisScale: ({
105
+ export declare const getCartesianAxisScale: ({
81
106
  config,
82
107
  type,
83
108
  range,
84
109
  dataDomain,
110
+ layout,
85
111
  }: {
86
- config?: AxisConfig;
112
+ config?: CartesianAxisConfig;
87
113
  type: 'x' | 'y';
88
114
  range: AxisBounds;
89
115
  dataDomain: AxisBounds;
116
+ layout?: CartesianChartLayout;
90
117
  }) => ChartScaleFunction;
91
118
  /**
92
119
  * Formats the array of user-provided axis configs with default values and validates axis ids.
@@ -101,10 +128,10 @@ export declare const getAxisScale: ({
101
128
  */
102
129
  export declare const getAxisConfig: (
103
130
  type: 'x' | 'y',
104
- axes: Partial<AxisConfigProps> | Partial<AxisConfigProps>[] | undefined,
131
+ axes: Partial<CartesianAxisConfigProps> | Partial<CartesianAxisConfigProps>[] | undefined,
105
132
  defaultId?: string,
106
133
  defaultScaleType?: ChartAxisScaleType,
107
- ) => AxisConfigProps[];
134
+ ) => CartesianAxisConfigProps[];
108
135
  /**
109
136
  * Calculates the data domain for an axis based on its configuration and series data.
110
137
  * Handles both x and y axes, categorical data, custom domain configurations, and stacking.
@@ -112,12 +139,14 @@ export declare const getAxisConfig: (
112
139
  * @param axisParam - The axis configuration
113
140
  * @param series - Array of series objects (for stacking support)
114
141
  * @param axisType - Whether this is an 'x' or 'y' axis
142
+ * @param layout - The chart layout orientation
115
143
  * @returns The calculated axis bounds
116
144
  */
117
- export declare const getAxisDomain: (
118
- axisParam: AxisConfigProps,
145
+ export declare const getCartesianAxisDomain: (
146
+ axisParam: CartesianAxisConfigProps,
119
147
  series: Series[],
120
148
  axisType: 'x' | 'y',
149
+ layout?: CartesianChartLayout,
121
150
  ) => AxisBounds;
122
151
  /**
123
152
  * Calculates the visual range for an axis based on the chart rectangle and configuration.
@@ -129,7 +158,7 @@ export declare const getAxisDomain: (
129
158
  * @returns The calculated axis range bounds
130
159
  */
131
160
  export declare const getAxisRange: (
132
- axisParam: AxisConfigProps,
161
+ axisParam: CartesianAxisConfigProps,
133
162
  chartRect: Rect,
134
163
  axisType: 'x' | 'y',
135
164
  ) => AxisBounds;
@@ -154,6 +183,12 @@ type TickGenerationOptions = {
154
183
  * @default 4
155
184
  */
156
185
  minTickCount?: number;
186
+ /**
187
+ * Anchor position for band/categorical scales.
188
+ * Controls where tick labels are positioned within each band.
189
+ * @default 'middle'
190
+ */
191
+ anchor?: PointAnchor;
157
192
  };
158
193
  export type GetAxisTicksDataProps = {
159
194
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"axis.d.ts","sourceRoot":"","sources":["../../../src/chart/utils/axis.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,4BAA4B,CAAC;AAEvD,OAAO,EACL,KAAK,UAAU,EAIf,KAAK,MAAM,EACZ,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EAMxB,MAAM,SAAS,CAAC;AAEjB,eAAO,MAAM,aAAa,oBAAoB,CAAC;AAC/C,eAAO,MAAM,oBAAoB,WAAW,CAAC;AAE7C;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG;IACvB,+BAA+B;IAC/B,SAAS,EAAE,kBAAkB,CAAC;IAC9B;;OAEG;IACH,MAAM,EAAE,UAAU,CAAC;IACnB;;OAEG;IACH,KAAK,EAAE,UAAU,CAAC;IAClB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;IAC3B;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;;OAIG;IACH,WAAW,EAAE,MAAM,GAAG,QAAQ,CAAC;CAChC,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,IAAI,CAAC,UAAU,EAAE,QAAQ,GAAG,OAAO,CAAC,GAAG;IACnE;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IACX;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,UAAU,KAAK,UAAU,CAAC,CAAC;IACpE;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,UAAU,KAAK,UAAU,CAAC,CAAC;CACpE,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,YAAY,GAAI,sCAK1B;IACD,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,IAAI,EAAE,GAAG,GAAG,GAAG,CAAC;IAChB,KAAK,EAAE,UAAU,CAAC;IAClB,UAAU,EAAE,UAAU,CAAC;CACxB,KAAG,kBAyCH,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,aAAa,GACxB,MAAM,GAAG,GAAG,GAAG,EACf,MAAM,OAAO,CAAC,eAAe,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC,EAAE,GAAG,SAAS,EACvE,YAAW,MAAsB,EACjC,mBAAkB,kBAAyC,KAC1D,eAAe,EA0BjB,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,aAAa,GACxB,WAAW,eAAe,EAC1B,QAAQ,MAAM,EAAE,EAChB,UAAU,GAAG,GAAG,GAAG,KAClB,UAsDF,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,YAAY,GACvB,WAAW,eAAe,EAC1B,WAAW,IAAI,EACf,UAAU,GAAG,GAAG,GAAG,KAClB,UAyBF,CAAC;AAEF;;GAEG;AACH,KAAK,qBAAqB,GAAG;IAC3B;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC;;;;;;;;OAQG;IACH,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC;IAChD;;;OAGG;IACH,aAAa,EAAE,kBAAkB,CAAC;IAClC;;;OAGG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB;;;OAGG;IACH,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B;;;;;;;;;;;;;;;OAeG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;OAEG;IACH,OAAO,CAAC,EAAE,qBAAqB,CAAC;CACjC,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,cAAc,GACzB,OAAO,GAAG,EACV,gBAAgB,CAAC,KAAK,EAAE,GAAG,KAAK,KAAK,CAAC,SAAS,KAC9C,KAAK,CAAC,SAKR,CAAC;AAoIF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsFG;AACH,eAAO,MAAM,gBAAgB,GAAI,sGAQ9B,qBAAqB,KAAG,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAiGlE,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;IAC9C,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;uBAIvB,MAAM,YAAY,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,QAAQ,MAAM;yBAclC,MAAM;CAwB/C,CAAC"}
1
+ {"version":3,"file":"axis.d.ts","sourceRoot":"","sources":["../../../src/chart/utils/axis.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,61 @@
1
+ import type { Rect } from '@coinbase/cds-common/types';
2
+ import type { BarComponent } from '../bar/Bar';
3
+ import type { BarSeries } from '../bar/BarStack';
4
+ import type { CartesianChartLayout } from './context';
5
+ import type { GradientDefinition, GradientStop } from './gradient';
6
+ import type { ChartScaleFunction, SerializableScale } from './scale';
7
+ import { type Transition } from './transition';
8
+ /**
9
+ * A bar-specific transition that extends Transition with stagger support.
10
+ * When `staggerDelay` is provided, bars will animate with increasing delays
11
+ * based on their position along the category axis (vertical: left-to-right,
12
+ * horizontal: top-to-bottom).
13
+ *
14
+ * @example
15
+ * // Bars stagger in from left to right over 250ms, each animating for 750ms
16
+ * { type: 'timing', duration: 750, staggerDelay: 250 }
17
+ */
18
+ export type BarTransition = Transition & {
19
+ /**
20
+ * Maximum stagger delay (ms) distributed across bars by x position.
21
+ * Leftmost bar starts immediately, rightmost starts after this delay.
22
+ */
23
+ staggerDelay?: number;
24
+ };
25
+ /**
26
+ * Computes a bar's normalized [0, 1] position along the category axis, used for
27
+ * stagger-delay calculations.
28
+ *
29
+ * Vertical charts stagger left-to-right (x axis); horizontal charts stagger
30
+ * top-to-bottom (y axis). Returns 0 when the drawing area has no extent.
31
+ *
32
+ * @param layout - The layout of the chart
33
+ * @param x - Bar's left edge in pixels
34
+ * @param y - Bar's top edge in pixels
35
+ */
36
+ export declare const getNormalizedStagger: (
37
+ layout: CartesianChartLayout,
38
+ x: number,
39
+ y: number,
40
+ drawingArea: Rect,
41
+ ) => number;
42
+ /**
43
+ * Strips `staggerDelay` from a transition and computes a positional delay.
44
+ *
45
+ * @param transition - The transition config (may include staggerDelay)
46
+ * @param normalizedPosition - The bar's normalized position along the category axis (0–1)
47
+ * @returns A standard Transition with computed delay
48
+ */
49
+ export declare const withStaggerDelayTransition: (
50
+ transition: BarTransition | null,
51
+ normalizedPosition: number,
52
+ ) => Transition | null;
53
+ /**
54
+ * Default bar enter transition. Uses the default spring with a stagger delay
55
+ * so bars spring into place from left to right.
56
+ * `{ type: 'spring', stiffness: 900, damping: 120, staggerDelay: 250 }`
57
+ */
58
+ export declare const defaultBarEnterTransition: BarTransition;
1
59
  /**
2
60
  * Calculates the size adjustment needed for bars when accounting for gaps between them.
3
61
  * This function helps determine how much to reduce each bar's width to accommodate
@@ -17,4 +75,136 @@
17
75
  * ```
18
76
  */
19
77
  export declare function getBarSizeAdjustment(barCount: number, gapSize: number): number;
78
+ type StackGroup = {
79
+ stackId: string;
80
+ series: BarSeries[];
81
+ xAxisId?: string;
82
+ yAxisId?: string;
83
+ };
84
+ /**
85
+ * Groups bar series into stack groups scoped by stackId + axis IDs.
86
+ *
87
+ * Series with no `stackId` are treated as independent stacks keyed by series id.
88
+ * Axis IDs are included in the group key so series on different axes never stack together.
89
+ */
90
+ export declare function getStackGroups(series: BarSeries[], defaultAxisId?: string): StackGroup[];
91
+ /**
92
+ * Computes stack clip origin [start, end] that covers the bounding box
93
+ * of all bars at their stacked starting positions (as computed by `getBarOrigins`).
94
+ *
95
+ * This is passed to `DefaultBarStack` so the clip animation starts in sync with the
96
+ * individual bar animations — no bars leak outside the clip on frame 0.
97
+ *
98
+ * @param barOrigins - Per-bar initial origins from `getBarOrigins`
99
+ * @param barMinSizes - Per-bar minimum sizes in pixels (or a uniform value)
100
+ * @returns [originStart, originEnd] or undefined when barMinSize is 0 / no bars
101
+ */
102
+ export declare function getStackOrigin(
103
+ barOrigins: number[],
104
+ barMinSizes: number[] | number,
105
+ ): [number, number] | undefined;
106
+ /**
107
+ * Computes the initial clip rect used for stack enter animations.
108
+ */
109
+ export declare function getStackInitialClipRect(
110
+ stackRect: Rect,
111
+ layout: CartesianChartLayout,
112
+ origin?: number | [number, number],
113
+ ): Rect;
114
+ /**
115
+ * Threshold for treating a position as touching the baseline.
116
+ * Positions within this distance are considered at the baseline for rounding purposes.
117
+ */
118
+ export declare const EPSILON = 0.0001;
119
+ /**
120
+ * Computes and clamps the stack baseline position on the value axis.
121
+ *
122
+ * - If the full domain is positive, baseline is domain min.
123
+ * - If the full domain is negative, baseline is domain max.
124
+ * - If the domain crosses zero, baseline is 0.
125
+ */
126
+ export declare function getStackBaseline(
127
+ valueScale: ChartScaleFunction,
128
+ stackRect: Rect,
129
+ layout: CartesianChartLayout,
130
+ ): number;
131
+ type SeriesGradientEntry =
132
+ | {
133
+ seriesId: string;
134
+ gradient: GradientDefinition;
135
+ scale: SerializableScale | ChartScaleFunction;
136
+ stops: GradientStop[];
137
+ }
138
+ | undefined;
139
+ /**
140
+ * Computes the positioned bar entries and bounding rect for a single stack at one category index.
141
+ *
142
+ * This is the pure computation extracted from `BarStack`'s `useMemo` so it can be tested
143
+ * independently and reused across contexts.
144
+ *
145
+ * @param params.series - Series configs for this stack
146
+ * @param params.seriesData - Stacked data for each series, keyed by series id
147
+ * @param params.categoryIndex - Index of the category being rendered
148
+ * @param params.indexPos - Pixel position along the categorical axis
149
+ * @param params.thickness - Bar thickness in pixels
150
+ * @param params.valueScale - Scale function for the value axis
151
+ * @param params.seriesGradients - Precomputed gradient configs per series (undefined entries are skipped)
152
+ * @param params.roundBaseline - Whether to round the face touching the baseline
153
+ * @param params.layout - The layout of the chart
154
+ * @param params.baseline - Pixel position of the zero value on the value axis
155
+ * @param params.stackGap - Gap between adjacent bars in pixels
156
+ * @param params.barMinSize - Minimum individual bar size in pixels
157
+ * @param params.stackMinSize - Minimum total stack size in pixels
158
+ * @param params.defaultFill - Fallback fill color when a series has no color or gradient
159
+ * @returns Positioned bar entries and the stack's bounding rect
160
+ */
161
+ export declare function getBars(params: {
162
+ series: BarSeries[];
163
+ seriesData: Record<string, ([number, number] | null)[]>;
164
+ categoryIndex: number;
165
+ categoryValue: number;
166
+ indexPos: number;
167
+ thickness: number;
168
+ valueScale: ChartScaleFunction;
169
+ seriesGradients: SeriesGradientEntry[];
170
+ roundBaseline?: boolean;
171
+ layout: CartesianChartLayout;
172
+ baseline: number;
173
+ stackGap?: number;
174
+ barMinSize?: number;
175
+ stackMinSize?: number;
176
+ defaultFill: string;
177
+ borderRadius?: number;
178
+ defaultFillOpacity?: number;
179
+ defaultStroke?: string;
180
+ defaultStrokeWidth?: number;
181
+ defaultBarComponent?: BarComponent;
182
+ }): {
183
+ x: number;
184
+ y: number;
185
+ width: number;
186
+ height: number;
187
+ dataX: number | [number, number];
188
+ dataY: number | [number, number];
189
+ origin: number;
190
+ borderRadius: number | undefined;
191
+ fillOpacity: number | undefined;
192
+ stroke: string | undefined;
193
+ strokeWidth: number | undefined;
194
+ minSize: number;
195
+ BarComponent: BarComponent | undefined;
196
+ roundTop?: boolean;
197
+ roundBottom?: boolean;
198
+ seriesId: string;
199
+ fill?: string;
200
+ /** Position along the value axis in pixels (axis-agnostic, used by layout helpers). */
201
+ valuePos: number;
202
+ /** Size along the value axis in pixels (axis-agnostic, used by layout helpers). */
203
+ length: number;
204
+ /** The raw data value as [baseline, value], used by layout helpers for gap/rounding logic. */
205
+ dataValue: [number, number];
206
+ /** Whether gap distribution should be applied to this bar in a stack. */
207
+ shouldApplyGap?: boolean;
208
+ }[];
209
+ export {};
20
210
  //# sourceMappingURL=bar.d.ts.map