@coinbase/cds-web-visualization 3.4.0-beta.2 → 3.4.0-beta.21

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 (198) hide show
  1. package/CHANGELOG.md +122 -0
  2. package/dts/chart/CartesianChart.d.ts +56 -3
  3. package/dts/chart/CartesianChart.d.ts.map +1 -1
  4. package/dts/chart/ChartProvider.d.ts +3 -0
  5. package/dts/chart/ChartProvider.d.ts.map +1 -1
  6. package/dts/chart/Path.d.ts +64 -7
  7. package/dts/chart/Path.d.ts.map +1 -1
  8. package/dts/chart/PeriodSelector.d.ts +5 -15
  9. package/dts/chart/PeriodSelector.d.ts.map +1 -1
  10. package/dts/chart/area/Area.d.ts +50 -25
  11. package/dts/chart/area/Area.d.ts.map +1 -1
  12. package/dts/chart/area/AreaChart.d.ts +46 -6
  13. package/dts/chart/area/AreaChart.d.ts.map +1 -1
  14. package/dts/chart/area/DottedArea.d.ts +21 -44
  15. package/dts/chart/area/DottedArea.d.ts.map +1 -1
  16. package/dts/chart/area/GradientArea.d.ts +21 -12
  17. package/dts/chart/area/GradientArea.d.ts.map +1 -1
  18. package/dts/chart/area/SolidArea.d.ts +16 -1
  19. package/dts/chart/area/SolidArea.d.ts.map +1 -1
  20. package/dts/chart/axis/Axis.d.ts +109 -63
  21. package/dts/chart/axis/Axis.d.ts.map +1 -1
  22. package/dts/chart/axis/DefaultAxisTickLabel.d.ts +8 -0
  23. package/dts/chart/axis/DefaultAxisTickLabel.d.ts.map +1 -0
  24. package/dts/chart/axis/XAxis.d.ts +1 -1
  25. package/dts/chart/axis/XAxis.d.ts.map +1 -1
  26. package/dts/chart/axis/YAxis.d.ts +2 -2
  27. package/dts/chart/axis/YAxis.d.ts.map +1 -1
  28. package/dts/chart/axis/index.d.ts +1 -0
  29. package/dts/chart/axis/index.d.ts.map +1 -1
  30. package/dts/chart/bar/Bar.d.ts +50 -12
  31. package/dts/chart/bar/Bar.d.ts.map +1 -1
  32. package/dts/chart/bar/BarChart.d.ts +20 -8
  33. package/dts/chart/bar/BarChart.d.ts.map +1 -1
  34. package/dts/chart/bar/BarPlot.d.ts +3 -1
  35. package/dts/chart/bar/BarPlot.d.ts.map +1 -1
  36. package/dts/chart/bar/BarStack.d.ts +41 -46
  37. package/dts/chart/bar/BarStack.d.ts.map +1 -1
  38. package/dts/chart/bar/BarStackGroup.d.ts +2 -0
  39. package/dts/chart/bar/BarStackGroup.d.ts.map +1 -1
  40. package/dts/chart/bar/DefaultBar.d.ts.map +1 -1
  41. package/dts/chart/bar/DefaultBarStack.d.ts.map +1 -1
  42. package/dts/chart/gradient/Gradient.d.ts +35 -0
  43. package/dts/chart/gradient/Gradient.d.ts.map +1 -0
  44. package/dts/chart/gradient/index.d.ts +2 -0
  45. package/dts/chart/gradient/index.d.ts.map +1 -0
  46. package/dts/chart/index.d.ts +3 -1
  47. package/dts/chart/index.d.ts.map +1 -1
  48. package/dts/chart/legend/DefaultLegendEntry.d.ts +21 -0
  49. package/dts/chart/legend/DefaultLegendEntry.d.ts.map +1 -0
  50. package/dts/chart/legend/DefaultLegendShape.d.ts +7 -0
  51. package/dts/chart/legend/DefaultLegendShape.d.ts.map +1 -0
  52. package/dts/chart/legend/Legend.d.ts +169 -0
  53. package/dts/chart/legend/Legend.d.ts.map +1 -0
  54. package/dts/chart/legend/index.d.ts +4 -0
  55. package/dts/chart/legend/index.d.ts.map +1 -0
  56. package/dts/chart/line/DefaultReferenceLineLabel.d.ts +9 -0
  57. package/dts/chart/line/DefaultReferenceLineLabel.d.ts.map +1 -0
  58. package/dts/chart/line/DottedLine.d.ts +15 -3
  59. package/dts/chart/line/DottedLine.d.ts.map +1 -1
  60. package/dts/chart/line/Line.d.ts +84 -28
  61. package/dts/chart/line/Line.d.ts.map +1 -1
  62. package/dts/chart/line/LineChart.d.ts +28 -8
  63. package/dts/chart/line/LineChart.d.ts.map +1 -1
  64. package/dts/chart/line/ReferenceLine.d.ts +99 -44
  65. package/dts/chart/line/ReferenceLine.d.ts.map +1 -1
  66. package/dts/chart/line/SolidLine.d.ts +14 -3
  67. package/dts/chart/line/SolidLine.d.ts.map +1 -1
  68. package/dts/chart/line/index.d.ts +1 -1
  69. package/dts/chart/line/index.d.ts.map +1 -1
  70. package/dts/chart/point/DefaultPointLabel.d.ts +10 -0
  71. package/dts/chart/point/DefaultPointLabel.d.ts.map +1 -0
  72. package/dts/chart/point/Point.d.ts +217 -0
  73. package/dts/chart/point/Point.d.ts.map +1 -0
  74. package/dts/chart/point/index.d.ts +3 -0
  75. package/dts/chart/point/index.d.ts.map +1 -0
  76. package/dts/chart/scrubber/DefaultScrubberBeacon.d.ts +41 -0
  77. package/dts/chart/scrubber/DefaultScrubberBeacon.d.ts.map +1 -0
  78. package/dts/chart/scrubber/DefaultScrubberBeaconLabel.d.ts +12 -0
  79. package/dts/chart/scrubber/DefaultScrubberBeaconLabel.d.ts.map +1 -0
  80. package/dts/chart/scrubber/DefaultScrubberLabel.d.ts +10 -0
  81. package/dts/chart/scrubber/DefaultScrubberLabel.d.ts.map +1 -0
  82. package/dts/chart/scrubber/Scrubber.d.ts +303 -70
  83. package/dts/chart/scrubber/Scrubber.d.ts.map +1 -1
  84. package/dts/chart/scrubber/ScrubberBeaconGroup.d.ts +80 -0
  85. package/dts/chart/scrubber/ScrubberBeaconGroup.d.ts.map +1 -0
  86. package/dts/chart/scrubber/ScrubberBeaconLabelGroup.d.ts +56 -0
  87. package/dts/chart/scrubber/ScrubberBeaconLabelGroup.d.ts.map +1 -0
  88. package/dts/chart/scrubber/index.d.ts +3 -0
  89. package/dts/chart/scrubber/index.d.ts.map +1 -1
  90. package/dts/chart/text/ChartText.d.ts +46 -43
  91. package/dts/chart/text/ChartText.d.ts.map +1 -1
  92. package/dts/chart/text/{SmartChartTextGroup.d.ts → ChartTextGroup.d.ts} +9 -3
  93. package/dts/chart/text/ChartTextGroup.d.ts.map +1 -0
  94. package/dts/chart/text/index.d.ts +1 -1
  95. package/dts/chart/text/index.d.ts.map +1 -1
  96. package/dts/chart/utils/axis.d.ts +25 -1
  97. package/dts/chart/utils/axis.d.ts.map +1 -1
  98. package/dts/chart/utils/bar.d.ts +34 -0
  99. package/dts/chart/utils/bar.d.ts.map +1 -1
  100. package/dts/chart/utils/chart.d.ts +45 -7
  101. package/dts/chart/utils/chart.d.ts.map +1 -1
  102. package/dts/chart/utils/context.d.ts +6 -0
  103. package/dts/chart/utils/context.d.ts.map +1 -1
  104. package/dts/chart/utils/gradient.d.ts +104 -0
  105. package/dts/chart/utils/gradient.d.ts.map +1 -0
  106. package/dts/chart/utils/index.d.ts +4 -0
  107. package/dts/chart/utils/index.d.ts.map +1 -1
  108. package/dts/chart/utils/interpolate.d.ts +112 -0
  109. package/dts/chart/utils/interpolate.d.ts.map +1 -0
  110. package/dts/chart/utils/path.d.ts +30 -1
  111. package/dts/chart/utils/path.d.ts.map +1 -1
  112. package/dts/chart/utils/point.d.ts +40 -7
  113. package/dts/chart/utils/point.d.ts.map +1 -1
  114. package/dts/chart/utils/scale.d.ts +11 -0
  115. package/dts/chart/utils/scale.d.ts.map +1 -1
  116. package/dts/chart/utils/scrubber.d.ts +40 -0
  117. package/dts/chart/utils/scrubber.d.ts.map +1 -0
  118. package/dts/chart/utils/transition.d.ts +101 -0
  119. package/dts/chart/utils/transition.d.ts.map +1 -0
  120. package/dts/sparkline/sparkline-interactive/SparklineInteractiveMarkerDates.d.ts.map +1 -1
  121. package/esm/chart/CartesianChart.js +170 -83
  122. package/esm/chart/ChartProvider.js +2 -2
  123. package/esm/chart/Path.js +59 -54
  124. package/esm/chart/PeriodSelector.js +36 -32
  125. package/esm/chart/area/Area.js +26 -34
  126. package/esm/chart/area/AreaChart.js +29 -15
  127. package/esm/chart/area/DottedArea.js +39 -89
  128. package/esm/chart/area/GradientArea.js +37 -80
  129. package/esm/chart/area/SolidArea.js +32 -11
  130. package/esm/chart/axis/Axis.js +4 -39
  131. package/esm/chart/axis/DefaultAxisTickLabel.js +15 -0
  132. package/esm/chart/axis/XAxis.js +184 -63
  133. package/esm/chart/axis/YAxis.js +190 -57
  134. package/esm/chart/axis/index.js +1 -0
  135. package/esm/chart/bar/Bar.js +7 -1
  136. package/esm/chart/bar/BarChart.js +17 -32
  137. package/esm/chart/bar/BarPlot.js +5 -2
  138. package/esm/chart/bar/BarStack.js +74 -22
  139. package/esm/chart/bar/BarStackGroup.js +8 -18
  140. package/esm/chart/bar/DefaultBar.js +23 -28
  141. package/esm/chart/bar/DefaultBarStack.js +24 -20
  142. package/esm/chart/gradient/Gradient.js +104 -0
  143. package/esm/chart/gradient/index.js +1 -0
  144. package/esm/chart/index.js +3 -1
  145. package/esm/chart/legend/DefaultLegendEntry.css +1 -0
  146. package/esm/chart/legend/DefaultLegendEntry.js +50 -0
  147. package/esm/chart/legend/DefaultLegendShape.css +5 -0
  148. package/esm/chart/legend/DefaultLegendShape.js +47 -0
  149. package/esm/chart/legend/Legend.js +76 -0
  150. package/esm/chart/legend/index.js +3 -0
  151. package/esm/chart/line/DefaultReferenceLineLabel.js +81 -0
  152. package/esm/chart/line/DottedLine.js +41 -17
  153. package/esm/chart/line/Line.js +87 -75
  154. package/esm/chart/line/LineChart.js +24 -8
  155. package/esm/chart/line/ReferenceLine.js +45 -43
  156. package/esm/chart/line/SolidLine.js +39 -15
  157. package/esm/chart/line/index.js +1 -1
  158. package/esm/chart/{line/GradientLine.js → point/DefaultPointLabel.js} +31 -45
  159. package/esm/chart/point/Point.css +2 -0
  160. package/esm/chart/{Point.js → point/Point.js} +87 -62
  161. package/esm/chart/point/index.js +2 -0
  162. package/esm/chart/scrubber/DefaultScrubberBeacon.js +154 -0
  163. package/esm/chart/scrubber/DefaultScrubberBeaconLabel.js +57 -0
  164. package/esm/chart/scrubber/{ScrubberBeaconLabel.js → DefaultScrubberLabel.js} +15 -18
  165. package/esm/chart/scrubber/Scrubber.js +101 -392
  166. package/esm/chart/scrubber/ScrubberBeaconGroup.js +174 -0
  167. package/esm/chart/scrubber/ScrubberBeaconLabelGroup.js +209 -0
  168. package/esm/chart/scrubber/index.js +3 -1
  169. package/esm/chart/text/ChartText.js +15 -20
  170. package/esm/chart/text/{SmartChartTextGroup.js → ChartTextGroup.js} +4 -3
  171. package/esm/chart/text/index.js +1 -1
  172. package/esm/chart/utils/axis.js +47 -31
  173. package/esm/chart/utils/bar.js +48 -0
  174. package/esm/chart/utils/chart.js +42 -3
  175. package/esm/chart/utils/gradient.js +257 -0
  176. package/esm/chart/utils/index.js +4 -0
  177. package/esm/chart/utils/interpolate.js +644 -0
  178. package/esm/chart/utils/path.js +41 -9
  179. package/esm/chart/utils/point.js +99 -12
  180. package/esm/chart/utils/scale.js +13 -2
  181. package/esm/chart/utils/scrubber.js +137 -0
  182. package/esm/chart/utils/transition.js +133 -0
  183. package/esm/sparkline/__figma__/Sparkline.figma.js +1 -1
  184. package/esm/sparkline/sparkline-interactive/SparklineInteractiveMarkerDates.js +8 -4
  185. package/esm/sparkline/sparkline-interactive/__figma__/SparklineInteractive.figma.js +1 -1
  186. package/esm/sparkline/sparkline-interactive-header/__figma__/SparklineInteractiveHeader.figma.js +1 -1
  187. package/package.json +12 -11
  188. package/dts/chart/Point.d.ts +0 -153
  189. package/dts/chart/Point.d.ts.map +0 -1
  190. package/dts/chart/line/GradientLine.d.ts +0 -42
  191. package/dts/chart/line/GradientLine.d.ts.map +0 -1
  192. package/dts/chart/scrubber/ScrubberBeacon.d.ts +0 -93
  193. package/dts/chart/scrubber/ScrubberBeacon.d.ts.map +0 -1
  194. package/dts/chart/scrubber/ScrubberBeaconLabel.d.ts +0 -7
  195. package/dts/chart/scrubber/ScrubberBeaconLabel.d.ts.map +0 -1
  196. package/dts/chart/text/SmartChartTextGroup.d.ts.map +0 -1
  197. package/esm/chart/Point.css +0 -2
  198. package/esm/chart/scrubber/ScrubberBeacon.js +0 -195
@@ -0,0 +1,154 @@
1
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
2
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
3
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
4
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
5
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
6
+ import { forwardRef, memo, useImperativeHandle, useMemo } from 'react';
7
+ import { usePreviousValue } from '@coinbase/cds-common/hooks/usePreviousValue';
8
+ import { m as motion, useAnimate } from 'framer-motion';
9
+ import { useCartesianChartContext } from '../ChartProvider';
10
+ import { defaultTransition, getTransition, instantTransition, projectPoint } from '../utils';
11
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
12
+ const defaultRadius = 5;
13
+ const defaultStrokeWidth = 2;
14
+ const defaultStroke = 'var(--color-bg)';
15
+ const pulseOpacityStart = 0.5;
16
+ const pulseOpacityEnd = 0;
17
+ const pulseRadiusStartMultiplier = 2;
18
+ const pulseRadiusEndMultiplier = 3;
19
+ const defaultPulseTransition = {
20
+ duration: 1.6,
21
+ ease: [0.0, 0.0, 0.0, 1.0]
22
+ };
23
+ const defaultPulseRepeatDelay = 0.4;
24
+ export const DefaultScrubberBeacon = /*#__PURE__*/memo(/*#__PURE__*/forwardRef((_ref, ref) => {
25
+ let {
26
+ seriesId,
27
+ color: colorProp,
28
+ dataX,
29
+ dataY,
30
+ isIdle,
31
+ idlePulse,
32
+ animate: animateProp,
33
+ transitions,
34
+ opacity = 1,
35
+ radius = defaultRadius,
36
+ stroke = defaultStroke,
37
+ strokeWidth = defaultStrokeWidth,
38
+ className,
39
+ style,
40
+ testID = "".concat(seriesId, "-beacon")
41
+ } = _ref;
42
+ const [scope, animateFn] = useAnimate();
43
+ const {
44
+ animate: animateContext,
45
+ getSeries,
46
+ getXScale,
47
+ getYScale,
48
+ drawingArea
49
+ } = useCartesianChartContext();
50
+ const animate = animateProp !== null && animateProp !== void 0 ? animateProp : animateContext;
51
+ const targetSeries = getSeries(seriesId);
52
+ const xScale = getXScale();
53
+ const yScale = getYScale(targetSeries === null || targetSeries === void 0 ? void 0 : targetSeries.yAxisId);
54
+ const color = useMemo(() => {
55
+ var _ref2;
56
+ return (_ref2 = colorProp !== null && colorProp !== void 0 ? colorProp : targetSeries === null || targetSeries === void 0 ? void 0 : targetSeries.color) !== null && _ref2 !== void 0 ? _ref2 : 'var(--color-fgPrimary)';
57
+ }, [colorProp, targetSeries]);
58
+ const prevIsIdle = usePreviousValue(isIdle);
59
+ const isIdleTransition = prevIsIdle !== undefined && isIdle !== prevIsIdle;
60
+ const updateTransition = useMemo(() => {
61
+ if (isIdleTransition) return instantTransition;
62
+ if (!isIdle) return instantTransition;
63
+ return getTransition(transitions === null || transitions === void 0 ? void 0 : transitions.update, animate, defaultTransition);
64
+ }, [transitions === null || transitions === void 0 ? void 0 : transitions.update, isIdle, animate, isIdleTransition]);
65
+ const pulseTransition = useMemo(() => {
66
+ var _transitions$pulse;
67
+ return (_transitions$pulse = transitions === null || transitions === void 0 ? void 0 : transitions.pulse) !== null && _transitions$pulse !== void 0 ? _transitions$pulse : defaultPulseTransition;
68
+ }, [transitions === null || transitions === void 0 ? void 0 : transitions.pulse]);
69
+ const pulseRepeatDelay = useMemo(() => {
70
+ var _transitions$pulseRep;
71
+ return (_transitions$pulseRep = transitions === null || transitions === void 0 ? void 0 : transitions.pulseRepeatDelay) !== null && _transitions$pulseRep !== void 0 ? _transitions$pulseRep : defaultPulseRepeatDelay;
72
+ }, [transitions === null || transitions === void 0 ? void 0 : transitions.pulseRepeatDelay]);
73
+ const pixelCoordinate = useMemo(() => {
74
+ if (!xScale || !yScale) return;
75
+ return projectPoint({
76
+ x: dataX,
77
+ y: dataY,
78
+ xScale,
79
+ yScale
80
+ });
81
+ }, [dataX, dataY, xScale, yScale]);
82
+ const pulseRadiusStart = radius * pulseRadiusStartMultiplier;
83
+ const pulseRadiusEnd = radius * pulseRadiusEndMultiplier;
84
+ useImperativeHandle(ref, () => ({
85
+ pulse: () => {
86
+ // Only pulse when idle and idlePulse is not enabled
87
+ if (isIdle && !idlePulse && scope.current) {
88
+ animateFn(scope.current, {
89
+ opacity: [pulseOpacityStart, pulseOpacityEnd],
90
+ r: [pulseRadiusStart, pulseRadiusEnd]
91
+ }, pulseTransition);
92
+ }
93
+ }
94
+ }), [isIdle, idlePulse, scope, animateFn, pulseTransition, pulseRadiusStart, pulseRadiusEnd]);
95
+
96
+ // Create continuous pulse transition by repeating the base pulse transition with delay
97
+ const continuousPulseTransition = useMemo(() => _objectSpread(_objectSpread({}, pulseTransition), {}, {
98
+ repeat: Infinity,
99
+ repeatDelay: pulseRepeatDelay
100
+ }), [pulseTransition, pulseRepeatDelay]);
101
+ const shouldPulse = isIdle && idlePulse;
102
+ const isWithinDrawingArea = useMemo(() => {
103
+ if (!pixelCoordinate) return false;
104
+ return pixelCoordinate.x >= drawingArea.x && pixelCoordinate.x <= drawingArea.x + drawingArea.width && pixelCoordinate.y >= drawingArea.y && pixelCoordinate.y <= drawingArea.y + drawingArea.height;
105
+ }, [pixelCoordinate, drawingArea]);
106
+ if (!pixelCoordinate) return;
107
+ const pulseCircle = /*#__PURE__*/_jsx(motion.circle, {
108
+ ref: scope,
109
+ animate: shouldPulse ? {
110
+ opacity: [pulseOpacityStart, pulseOpacityEnd],
111
+ r: [pulseRadiusStart, pulseRadiusEnd],
112
+ transition: continuousPulseTransition
113
+ } : {
114
+ opacity: pulseOpacityEnd,
115
+ r: pulseRadiusStart
116
+ },
117
+ cx: 0,
118
+ cy: 0,
119
+ "data-testid": "".concat(testID, "-pulse"),
120
+ fill: color,
121
+ initial: {
122
+ opacity: shouldPulse ? pulseOpacityStart : pulseOpacityEnd,
123
+ r: pulseRadiusStart
124
+ }
125
+ });
126
+ return /*#__PURE__*/_jsxs("g", {
127
+ "data-testid": testID,
128
+ opacity: isWithinDrawingArea ? opacity : 0,
129
+ children: [isIdle && /*#__PURE__*/_jsx(motion.g, {
130
+ animate: {
131
+ x: pixelCoordinate.x,
132
+ y: pixelCoordinate.y
133
+ },
134
+ initial: false,
135
+ transition: updateTransition,
136
+ children: pulseCircle
137
+ }), /*#__PURE__*/_jsx(motion.circle, {
138
+ animate: {
139
+ cx: pixelCoordinate.x,
140
+ cy: pixelCoordinate.y
141
+ },
142
+ className: className,
143
+ cx: pixelCoordinate.x,
144
+ cy: pixelCoordinate.y,
145
+ fill: color,
146
+ initial: false,
147
+ r: radius,
148
+ stroke: stroke,
149
+ strokeWidth: strokeWidth,
150
+ style: style,
151
+ transition: updateTransition
152
+ })]
153
+ });
154
+ }));
@@ -0,0 +1,57 @@
1
+ const _excluded = ["background", "color", "elevated", "borderRadius", "font", "verticalAlignment", "inset", "label", "transition", "y"];
2
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
4
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
5
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
6
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
7
+ function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
8
+ function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
9
+ import { memo } from 'react';
10
+ import { m as motion } from 'framer-motion';
11
+ import { ChartText } from '../text';
12
+ import { jsx as _jsx } from "react/jsx-runtime";
13
+ const labelVerticalInset = 3.5;
14
+ const labelHorizontalInset = 4;
15
+ /**
16
+ * DefaultScrubberBeaconLabel is a special instance of ChartText used to label a series' scrubber beacon (i.e. a point on the series pinned to the scrubber position).
17
+ */
18
+ export const DefaultScrubberBeaconLabel = /*#__PURE__*/memo(_ref => {
19
+ let {
20
+ background = 'var(--color-bg',
21
+ color = 'var(--color-fgPrimary)',
22
+ elevated = true,
23
+ borderRadius = 4,
24
+ font = 'label1',
25
+ verticalAlignment = 'middle',
26
+ inset = {
27
+ left: labelHorizontalInset,
28
+ right: labelHorizontalInset,
29
+ top: labelVerticalInset,
30
+ bottom: labelVerticalInset
31
+ },
32
+ label,
33
+ transition,
34
+ y
35
+ } = _ref,
36
+ chartTextProps = _objectWithoutProperties(_ref, _excluded);
37
+ return /*#__PURE__*/_jsx(motion.g, {
38
+ animate: {
39
+ y
40
+ },
41
+ initial: false,
42
+ transition: transition,
43
+ children: /*#__PURE__*/_jsx(ChartText, _objectSpread(_objectSpread({
44
+ disableRepositioning: true,
45
+ background: background,
46
+ borderRadius: borderRadius,
47
+ color: color,
48
+ elevated: elevated,
49
+ font: font,
50
+ inset: inset,
51
+ verticalAlignment: verticalAlignment,
52
+ y: transition ? 0 : y
53
+ }, chartTextProps), {}, {
54
+ children: label
55
+ }))
56
+ });
57
+ });
@@ -1,4 +1,4 @@
1
- const _excluded = ["background", "color", "elevation", "borderRadius", "font", "verticalAlignment"];
1
+ const _excluded = ["verticalAlignment", "dy"];
2
2
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3
3
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
4
4
  function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
@@ -7,27 +7,24 @@ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e =
7
7
  function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
8
8
  function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
9
9
  import { memo } from 'react';
10
- import { ChartText } from '../text';
10
+ import { useCartesianChartContext } from '../ChartProvider';
11
+ import { DefaultReferenceLineLabel } from '../line';
11
12
  import { jsx as _jsx } from "react/jsx-runtime";
12
13
  /**
13
- * The ScrubberBeaconLabel is a special instance of ChartText used to label a series' scrubber beacon (i.e. a point on the series pinned to the scrubber position).
14
+ * DefaultScrubberLabel is the default label component for the scrubber line.
15
+ * It will center the label vertically with the top available area.
14
16
  */
15
- export const ScrubberBeaconLabel = /*#__PURE__*/memo(_ref => {
17
+ export const DefaultScrubberLabel = /*#__PURE__*/memo(_ref => {
16
18
  let {
17
- background = 'white',
18
- color = 'var(--color-fgPrimary)',
19
- elevation = background !== undefined ? 1 : undefined,
20
- borderRadius = background !== undefined ? 4 : undefined,
21
- font = 'label1',
22
- verticalAlignment = 'middle'
19
+ verticalAlignment = 'middle',
20
+ dy
23
21
  } = _ref,
24
- chartTextProps = _objectWithoutProperties(_ref, _excluded);
25
- return /*#__PURE__*/_jsx(ChartText, _objectSpread({
26
- background: background,
27
- borderRadius: borderRadius,
28
- color: color,
29
- elevation: elevation,
30
- font: font,
22
+ props = _objectWithoutProperties(_ref, _excluded);
23
+ const {
24
+ drawingArea
25
+ } = useCartesianChartContext();
26
+ return /*#__PURE__*/_jsx(DefaultReferenceLineLabel, _objectSpread({
27
+ dy: dy !== null && dy !== void 0 ? dy : -0.5 * drawingArea.y,
31
28
  verticalAlignment: verticalAlignment
32
- }, chartTextProps));
29
+ }, props));
33
30
  });