react-native-livechart 3.0.0 → 3.1.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 (63) hide show
  1. package/README.md +9 -3
  2. package/dist/components/AxisLabelOverlay.d.ts +29 -0
  3. package/dist/components/AxisLabelOverlay.d.ts.map +1 -0
  4. package/dist/components/CrosshairLine.d.ts +12 -1
  5. package/dist/components/CrosshairLine.d.ts.map +1 -1
  6. package/dist/components/CrosshairOverlay.d.ts +15 -1
  7. package/dist/components/CrosshairOverlay.d.ts.map +1 -1
  8. package/dist/components/DegenParticlesOverlay.d.ts +17 -0
  9. package/dist/components/DegenParticlesOverlay.d.ts.map +1 -1
  10. package/dist/components/LiveChart.d.ts.map +1 -1
  11. package/dist/components/LiveChartSeries.d.ts.map +1 -1
  12. package/dist/components/SelectionDot.d.ts +32 -0
  13. package/dist/components/SelectionDot.d.ts.map +1 -0
  14. package/dist/core/resolveConfig.d.ts +46 -1
  15. package/dist/core/resolveConfig.d.ts.map +1 -1
  16. package/dist/core/useLiveChartEngine.d.ts +6 -0
  17. package/dist/core/useLiveChartEngine.d.ts.map +1 -1
  18. package/dist/draw/particleAtlas.d.ts +39 -0
  19. package/dist/draw/particleAtlas.d.ts.map +1 -0
  20. package/dist/hooks/crosshairShared.d.ts +10 -0
  21. package/dist/hooks/crosshairShared.d.ts.map +1 -1
  22. package/dist/hooks/useCandlePaths.d.ts +3 -1
  23. package/dist/hooks/useCandlePaths.d.ts.map +1 -1
  24. package/dist/hooks/useChartColors.d.ts +5 -0
  25. package/dist/hooks/useChartColors.d.ts.map +1 -1
  26. package/dist/hooks/useChartReveal.d.ts +3 -1
  27. package/dist/hooks/useChartReveal.d.ts.map +1 -1
  28. package/dist/hooks/useCrosshair.d.ts +1 -1
  29. package/dist/hooks/useCrosshair.d.ts.map +1 -1
  30. package/dist/hooks/useCrosshairSeries.d.ts +1 -1
  31. package/dist/hooks/useCrosshairSeries.d.ts.map +1 -1
  32. package/dist/hooks/useDegen.d.ts +3 -1
  33. package/dist/hooks/useDegen.d.ts.map +1 -1
  34. package/dist/hooks/useMarkers.d.ts +3 -1
  35. package/dist/hooks/useMarkers.d.ts.map +1 -1
  36. package/dist/hooks/useTradeStream.d.ts +3 -1
  37. package/dist/hooks/useTradeStream.d.ts.map +1 -1
  38. package/dist/index.d.ts +1 -1
  39. package/dist/index.d.ts.map +1 -1
  40. package/dist/types.d.ts +97 -0
  41. package/dist/types.d.ts.map +1 -1
  42. package/package.json +1 -1
  43. package/src/components/AxisLabelOverlay.tsx +133 -0
  44. package/src/components/CrosshairLine.tsx +27 -0
  45. package/src/components/CrosshairOverlay.tsx +50 -18
  46. package/src/components/DegenParticlesOverlay.tsx +93 -109
  47. package/src/components/LiveChart.tsx +66 -10
  48. package/src/components/LiveChartSeries.tsx +40 -0
  49. package/src/components/SelectionDot.tsx +92 -0
  50. package/src/core/resolveConfig.ts +98 -0
  51. package/src/core/useLiveChartEngine.ts +78 -27
  52. package/src/draw/particleAtlas.ts +95 -0
  53. package/src/hooks/crosshairShared.ts +26 -0
  54. package/src/hooks/useCandlePaths.ts +3 -1
  55. package/src/hooks/useChartColors.ts +19 -0
  56. package/src/hooks/useChartReveal.ts +7 -4
  57. package/src/hooks/useCrosshair.ts +46 -7
  58. package/src/hooks/useCrosshairSeries.ts +47 -8
  59. package/src/hooks/useDegen.ts +6 -0
  60. package/src/hooks/useMarkers.ts +3 -0
  61. package/src/hooks/useTradeStream.ts +3 -0
  62. package/src/index.ts +4 -0
  63. package/src/types.ts +101 -0
package/dist/index.d.ts CHANGED
@@ -14,5 +14,5 @@ export { formatTime, formatValue } from "./lib/format";
14
14
  export { MONO_FONT_FAMILY } from "./lib/monoFontFamily";
15
15
  export { useDegen } from "./hooks/useDegen";
16
16
  export { useTradeStream } from "./hooks/useTradeStream";
17
- export type { BadgeConfig, BadgeMetrics, BadgeVariant, CandleMetrics, CandlePoint, ChartInsets, DegenOptions, DegenShakePayload, EmptyStateMetrics, FontConfig, FontWeight, GradientConfig, GridMetrics, GridStyleConfig, LeftEdgeFadeConfig, LegendConfig, LegendStyle, LineConfig, LiveChartCoreProps, LiveChartMetrics, LiveChartMetricsOverride, LiveChartPalette, LiveChartPoint, LiveChartProps, LiveChartSeriesProps, Marker, MarkerHoverEvent, MarkerKind, Momentum, MomentumConfig, MotionMetrics, MultiSeriesDotConfig, PulseConfig, ReferenceLine, ScrubConfig, ScrubPoint, ScrubPointCore, ScrubPointMulti, ScrubSeriesValue, SeriesConfig, ThemeMode, TradeEvent, ValueLineConfig, XAxisConfig, YAxisConfig, } from "./types";
17
+ export type { AxisLabelConfig, BadgeConfig, BadgeMetrics, BadgeVariant, CandleMetrics, CandlePoint, ChartInsets, DegenOptions, DegenShakePayload, EmptyStateMetrics, FontConfig, FontWeight, GradientConfig, GridMetrics, GridStyleConfig, LeftEdgeFadeConfig, LegendConfig, LegendStyle, LineConfig, LiveChartCoreProps, LiveChartMetrics, LiveChartMetricsOverride, LiveChartPalette, LiveChartPoint, LiveChartProps, LiveChartSeriesProps, Marker, MarkerHoverEvent, MarkerKind, Momentum, MomentumConfig, MotionMetrics, MultiSeriesDotConfig, PulseConfig, ReferenceLine, ScrubConfig, ScrubPoint, ScrubPointCore, ScrubPointMulti, ScrubSeriesValue, SelectionDotConfig, SelectionDotProps, SelectionDotRingConfig, SeriesConfig, ThemeMode, TradeEvent, ValueLineConfig, XAxisConfig, YAxisConfig, } from "./types";
18
18
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAEvE,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,mBAAmB,EAAE,CAAC;AAC3D,YAAY,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAIjF,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAIxD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAIxD,YAAY,EACV,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,WAAW,EACX,WAAW,EACX,YAAY,EACZ,iBAAiB,EACjB,iBAAiB,EACjB,UAAU,EACV,UAAU,EACV,cAAc,EACd,WAAW,EACX,eAAe,EACf,kBAAkB,EAClB,YAAY,EACZ,WAAW,EACX,UAAU,EACV,kBAAkB,EAClB,gBAAgB,EAChB,wBAAwB,EACxB,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,oBAAoB,EACpB,MAAM,EACN,gBAAgB,EAChB,UAAU,EACV,QAAQ,EACR,cAAc,EACd,aAAa,EACb,oBAAoB,EACpB,WAAW,EACX,aAAa,EACb,WAAW,EACX,UAAU,EACV,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,YAAY,EACZ,SAAS,EACT,UAAU,EACV,eAAe,EACf,WAAW,EACX,WAAW,GACZ,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAEvE,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,mBAAmB,EAAE,CAAC;AAC3D,YAAY,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAIjF,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAIxD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAIxD,YAAY,EACV,eAAe,EACf,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,WAAW,EACX,WAAW,EACX,YAAY,EACZ,iBAAiB,EACjB,iBAAiB,EACjB,UAAU,EACV,UAAU,EACV,cAAc,EACd,WAAW,EACX,eAAe,EACf,kBAAkB,EAClB,YAAY,EACZ,WAAW,EACX,UAAU,EACV,kBAAkB,EAClB,gBAAgB,EAChB,wBAAwB,EACxB,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,oBAAoB,EACpB,MAAM,EACN,gBAAgB,EAChB,UAAU,EACV,QAAQ,EACR,cAAc,EACd,aAAa,EACb,oBAAoB,EACpB,WAAW,EACX,aAAa,EACb,WAAW,EACX,UAAU,EACV,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,EACjB,sBAAsB,EACtB,YAAY,EACZ,SAAS,EACT,UAAU,EACV,eAAe,EACf,WAAW,EACX,WAAW,GACZ,MAAM,SAAS,CAAC"}
package/dist/types.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import type { ComponentType, ReactElement } from "react";
1
2
  import type { ViewStyle } from "react-native";
2
3
  import type { SharedValue } from "react-native-reanimated";
3
4
  import type { DataSourceParam, SkFontMgr, SkImage } from "@shopify/react-native-skia";
@@ -123,6 +124,11 @@ export interface GradientConfig {
123
124
  topOpacity?: number;
124
125
  /** Opacity at the bottom of the gradient. Default `0`. */
125
126
  bottomOpacity?: number;
127
+ /** Explicit gradient color stops (top → bottom) for the area fill. Overrides
128
+ * topOpacity/bottomOpacity when provided. Must have at least 2 entries. */
129
+ colors?: string[];
130
+ /** Optional stop positions (0..1, ascending) matching `colors` length. */
131
+ positions?: number[];
126
132
  }
127
133
  /** Value badge pill configuration. */
128
134
  export interface BadgeConfig {
@@ -140,6 +146,23 @@ export interface YAxisConfig {
140
146
  /** Minimum pixel gap between grid lines. Default `36`. */
141
147
  minGap?: number;
142
148
  }
149
+ /**
150
+ * Axis edge label — the value floated at the plot's top or bottom edge
151
+ * (Robinhood-style high/low). Pass `topLabel`/`bottomLabel` as `true` for the
152
+ * batteries-included value label (the chart's current top/bottom Y-axis bound,
153
+ * updated each frame), an object to configure it, or `{ render }` to float a
154
+ * fully custom element instead.
155
+ */
156
+ export interface AxisLabelConfig {
157
+ /** Formatter for the built-in value. Defaults to the chart's `formatValue`. */
158
+ format?: (v: number) => string;
159
+ /** Text color. Defaults to a muted label color (`palette.gridLabel`). */
160
+ color?: string;
161
+ /** Horizontal alignment within the plot width. Default `"right"`. */
162
+ position?: "left" | "right";
163
+ /** Full custom element, floated at the edge. Overrides the built-in value label. */
164
+ render?: () => ReactElement | null;
165
+ }
143
166
  /** X-axis (time) configuration. */
144
167
  export interface XAxisConfig {
145
168
  /** Minimum pixel gap between time labels. Default `60`. */
@@ -181,6 +204,52 @@ export interface ScrubConfig {
181
204
  */
182
205
  panGestureDelay?: number;
183
206
  }
207
+ /**
208
+ * Props passed to a custom {@link SelectionDotConfig.component} — the dot drawn
209
+ * at the scrub intersection while scrubbing. All positional inputs are
210
+ * SharedValues so the dot animates on the UI thread without re-renders.
211
+ */
212
+ export interface SelectionDotProps {
213
+ /** Scrub X in canvas px. */
214
+ x: SharedValue<number>;
215
+ /** Scrub Y in canvas px (the line/value intersection). */
216
+ y: SharedValue<number>;
217
+ /** Whether scrubbing is active. */
218
+ active: SharedValue<boolean>;
219
+ /** Crosshair fade opacity (0..1), already ramped. */
220
+ opacity: SharedValue<number>;
221
+ /** Resolved dot color (accent/series color). */
222
+ color: string;
223
+ /** Suggested dot radius in px. */
224
+ size: number;
225
+ }
226
+ /** Outer ring drawn around the built-in selection dot (the subtle halo). */
227
+ export interface SelectionDotRingConfig {
228
+ /** Ring color. Defaults to the dot color. */
229
+ color?: string;
230
+ /** Ring thickness in pixels — how far the halo extends past the dot. Default `2`. */
231
+ width?: number;
232
+ }
233
+ /**
234
+ * Selection-dot styling — the dot drawn at the scrub intersection while
235
+ * scrubbing. Pass `selectionDot={false}` to hide it, an object to configure the
236
+ * built-in dot, or `{ component }` to supply a fully custom Skia dot.
237
+ */
238
+ export interface SelectionDotConfig {
239
+ /** Dot radius in px. Default `4`. */
240
+ size?: number;
241
+ /** Dot color. Defaults to the line / leading-series color. */
242
+ color?: string;
243
+ /**
244
+ * Outer ring around the dot. `true`/config = on, `false` = off. Default on.
245
+ */
246
+ ring?: boolean | SelectionDotRingConfig;
247
+ /**
248
+ * Fully custom Skia dot — receives the scrub position as SharedValues. When
249
+ * set, the `size` / `color` / `ring` knobs are ignored.
250
+ */
251
+ component?: ComponentType<SelectionDotProps>;
252
+ }
184
253
  /** Left-edge fade — soft erase so the chart blends into the left gutter (web liveline parity). */
185
254
  export interface LeftEdgeFadeConfig {
186
255
  /**
@@ -634,6 +703,20 @@ export interface LiveChartCoreProps {
634
703
  yAxis?: boolean | YAxisConfig;
635
704
  /** X-axis time labels. `true` = defaults, `false` = hidden, or pass `XAxisConfig`. Default `true`. */
636
705
  xAxis?: boolean | XAxisConfig;
706
+ /**
707
+ * Label floated at the top edge of the plot area. `true` = the built-in value
708
+ * label showing the chart's current TOP Y-axis bound (updated each frame),
709
+ * `false`/omitted = none, or pass `AxisLabelConfig` to configure it (or supply
710
+ * a custom `render`). Default off.
711
+ */
712
+ topLabel?: boolean | AxisLabelConfig;
713
+ /**
714
+ * Label floated at the bottom edge of the plot area. `true` = the built-in
715
+ * value label showing the chart's current BOTTOM Y-axis bound (updated each
716
+ * frame), `false`/omitted = none, or pass `AxisLabelConfig` (or a custom
717
+ * `render`). Default off.
718
+ */
719
+ bottomLabel?: boolean | AxisLabelConfig;
637
720
  /** Reference lines / bands drawn into the chart. Supports all three `ReferenceLine` forms. */
638
721
  referenceLines?: ReferenceLine[];
639
722
  /** Per-instance grid-line styling. Pass an object to override color / width / dash / opacity. */
@@ -676,6 +759,16 @@ export interface LiveChartCoreProps {
676
759
  accessibilityRole?: "image" | "none" | "adjustable" | "summary";
677
760
  /** Crosshair scrubbing on hover/drag. `true` = defaults, `false` = disabled, or pass `ScrubConfig`. Default `true`. */
678
761
  scrub?: boolean | ScrubConfig;
762
+ /**
763
+ * Selection dot drawn at the scrub intersection while scrubbing. `true`/omitted
764
+ * = built-in dot, `false` = hidden, or pass `SelectionDotConfig` (`size`,
765
+ * `color`, `ring`, or a custom `component`). Default `true`.
766
+ */
767
+ selectionDot?: boolean | SelectionDotConfig;
768
+ /** Called once when the user starts scrubbing/panning the chart. */
769
+ onGestureStart?: () => void;
770
+ /** Called once when the user stops scrubbing/panning the chart. */
771
+ onGestureEnd?: () => void;
679
772
  /**
680
773
  * Fade out chart content on the left (destination-out style). `true` = defaults, `false` = off,
681
774
  * or pass `LeftEdgeFadeConfig`. Default `true`.
@@ -730,6 +823,10 @@ export interface LiveChartProps extends LiveChartCoreProps {
730
823
  data: SharedValue<LiveChartPoint[]>;
731
824
  /** Latest live value for smooth interpolation between data updates. */
732
825
  value: SharedValue<number>;
826
+ /** Render once with no per-frame animation loop — for many small charts (sparklines)
827
+ * in a list. Pulse/scrub/degen and the entry animation are disabled. Frame the data
828
+ * with `timeWindow` + `nowOverride` (see the historical-data-fill pattern). */
829
+ static?: boolean;
733
830
  /** Called when the user scrubs the crosshair. `null` when scrub ends. */
734
831
  onScrub?: (point: ScrubPoint | null) => void;
735
832
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -68,5 +68,5 @@
68
68
  },
69
69
  "sideEffects": false,
70
70
  "types": "./dist/index.d.ts",
71
- "version": "3.0.0"
71
+ "version": "3.1.0"
72
72
  }
@@ -0,0 +1,133 @@
1
+ import { TextInput, StyleSheet, View } from "react-native";
2
+ import Animated, {
3
+ useAnimatedProps,
4
+ useDerivedValue,
5
+ } from "react-native-reanimated";
6
+ import type { SharedValue } from "react-native-reanimated";
7
+
8
+ import type { ResolvedAxisLabelConfig } from "../core/resolveConfig";
9
+ import type { ChartEngineLayout } from "../core/useLiveChartEngine";
10
+ import type { ChartPadding } from "../draw/line";
11
+
12
+ /** Editable={false} TextInput so its `text` prop can be animated on the UI thread. */
13
+ const AnimatedTextInput = Animated.createAnimatedComponent(TextInput);
14
+
15
+ /**
16
+ * The batteries-included axis edge label — an animated RN text driven by a
17
+ * `SharedValue<number>` (the chart's current top / bottom Y-axis bound). The
18
+ * value updates each frame on the UI thread via `useDerivedValue` +
19
+ * `useAnimatedProps`, so the label tracks the live range without JS re-renders.
20
+ *
21
+ * Scoped into its own subcomponent so these hooks only run when the built-in
22
+ * label is active (not when a custom `render` is supplied).
23
+ */
24
+ function BuiltInAxisValueLabel({
25
+ value,
26
+ format,
27
+ color,
28
+ position,
29
+ }: {
30
+ value: SharedValue<number>;
31
+ format: (v: number) => string;
32
+ color: string;
33
+ position: "left" | "right";
34
+ }) {
35
+ const text = useDerivedValue(() => format(value.get()));
36
+ const animatedProps = useAnimatedProps(() => {
37
+ const t = text.get();
38
+ return { text: t, defaultValue: t };
39
+ });
40
+ return (
41
+ <AnimatedTextInput
42
+ editable={false}
43
+ underlineColorAndroid="transparent"
44
+ style={{
45
+ color,
46
+ textAlign: position === "left" ? "left" : "right",
47
+ padding: 0,
48
+ }}
49
+ animatedProps={animatedProps}
50
+ />
51
+ );
52
+ }
53
+
54
+ /**
55
+ * React Native overlay (NOT Skia) floating axis edge labels over the Skia
56
+ * canvas — `topLabel` pinned to the plot's top edge and `bottomLabel` to its
57
+ * bottom edge (Robinhood-style high/low values).
58
+ *
59
+ * For each side: a resolved config with a `render` floats that custom element;
60
+ * otherwise the built-in {@link BuiltInAxisValueLabel} shows the chart's current
61
+ * `engine.displayMax` (top) / `engine.displayMin` (bottom) — the live Y-axis
62
+ * bounds — formatted with the config's `format` (falling back to the chart's
63
+ * `formatValue`) in the config `color` (falling back to `defaultColor`).
64
+ *
65
+ * Because the chart's `<View>` is the canvas size, the plot's top edge sits
66
+ * `padding.top` px from the top and its bottom edge `padding.bottom` px from
67
+ * the bottom — so positioning needs only the resolved padding (no live height,
68
+ * no SharedValues). `pointerEvents="none"` keeps the labels display-only so they
69
+ * never intercept the scrub pan gesture.
70
+ */
71
+ export function AxisLabelOverlay({
72
+ topLabel,
73
+ bottomLabel,
74
+ engine,
75
+ formatValue,
76
+ defaultColor,
77
+ padding,
78
+ }: {
79
+ topLabel: ResolvedAxisLabelConfig | null;
80
+ bottomLabel: ResolvedAxisLabelConfig | null;
81
+ engine: ChartEngineLayout;
82
+ formatValue: (v: number) => string;
83
+ defaultColor: string;
84
+ padding: ChartPadding;
85
+ }) {
86
+ if (!topLabel && !bottomLabel) return null;
87
+ return (
88
+ <View style={StyleSheet.absoluteFill} pointerEvents="none">
89
+ {topLabel && (
90
+ <View
91
+ style={{
92
+ position: "absolute",
93
+ top: padding.top,
94
+ left: padding.left,
95
+ right: padding.right,
96
+ }}
97
+ >
98
+ {topLabel.render ? (
99
+ topLabel.render()
100
+ ) : (
101
+ <BuiltInAxisValueLabel
102
+ value={engine.displayMax}
103
+ format={topLabel.format ?? formatValue}
104
+ color={topLabel.color ?? defaultColor}
105
+ position={topLabel.position}
106
+ />
107
+ )}
108
+ </View>
109
+ )}
110
+ {bottomLabel && (
111
+ <View
112
+ style={{
113
+ position: "absolute",
114
+ bottom: padding.bottom,
115
+ left: padding.left,
116
+ right: padding.right,
117
+ }}
118
+ >
119
+ {bottomLabel.render ? (
120
+ bottomLabel.render()
121
+ ) : (
122
+ <BuiltInAxisValueLabel
123
+ value={engine.displayMin}
124
+ format={bottomLabel.format ?? formatValue}
125
+ color={bottomLabel.color ?? defaultColor}
126
+ position={bottomLabel.position}
127
+ />
128
+ )}
129
+ </View>
130
+ )}
131
+ </View>
132
+ );
133
+ }
@@ -2,7 +2,9 @@ import { Group, Line, Rect } from "@shopify/react-native-skia";
2
2
  import { useDerivedValue, type SharedValue } from "react-native-reanimated";
3
3
  import { type ChartPadding } from "../draw/line";
4
4
  import type { LiveChartPalette } from "../types";
5
+ import type { ResolvedSelectionDotConfig } from "../core/resolveConfig";
5
6
  import type { ChartEngineLayout } from "../core/useLiveChartEngine";
7
+ import { SelectionDotSlot } from "./SelectionDot";
6
8
 
7
9
  /**
8
10
  * Crosshair vertical line + dim region to the right. No tooltip pill —
@@ -14,6 +16,10 @@ export function CrosshairLine({
14
16
  engine,
15
17
  padding,
16
18
  palette,
19
+ selectionDot,
20
+ selectionY,
21
+ scrubActive,
22
+ selectionColor,
17
23
  dimOpacity = 0.3,
18
24
  liveDotExtent = 0,
19
25
  crosshairLineColor,
@@ -24,6 +30,16 @@ export function CrosshairLine({
24
30
  engine: ChartEngineLayout;
25
31
  padding: ChartPadding;
26
32
  palette: LiveChartPalette;
33
+ /** Resolved selection-dot config; `null` hides it, a `component` renders the
34
+ * consumer's dot, otherwise the built-in dot. */
35
+ selectionDot?: ResolvedSelectionDotConfig | null;
36
+ /** Scrub intersection Y in canvas px (the value the dot marks); -1 hides it. */
37
+ selectionY?: SharedValue<number>;
38
+ /** Whether scrubbing is active (passed through to a custom dot). */
39
+ scrubActive?: SharedValue<number> | SharedValue<boolean>;
40
+ /** Fallback selection-dot color (leading-series color), used when the config's
41
+ * own `color` is unset. */
42
+ selectionColor?: string;
27
43
  /** Opacity of content right of the crosshair (dstOut fade). Default 0.3. */
28
44
  dimOpacity?: number;
29
45
  /** How far the live series dots extend past the plot's right edge. The dim
@@ -104,6 +120,17 @@ export function CrosshairLine({
104
120
  color={crosshairLineColor ?? palette.crosshairLine}
105
121
  strokeWidth={1}
106
122
  />
123
+
124
+ {/* Selection dot at the scrub intersection (leading series). `null`
125
+ hides it; a custom component renders the consumer's dot. */}
126
+ <SelectionDotSlot
127
+ config={selectionDot}
128
+ x={scrubX}
129
+ y={selectionY}
130
+ active={scrubActive}
131
+ opacity={crosshairOpacity}
132
+ color={selectionColor ?? palette.line}
133
+ />
107
134
  </Group>
108
135
  </>
109
136
  );
@@ -11,7 +11,9 @@ import { useDerivedValue, type SharedValue } from "react-native-reanimated";
11
11
  import { type ChartPadding } from "../draw/line";
12
12
  import { type TooltipLayout } from "../hooks/crosshairShared";
13
13
  import type { LiveChartPalette } from "../types";
14
+ import type { ResolvedSelectionDotConfig } from "../core/resolveConfig";
14
15
  import type { ChartEngineLayout } from "../core/useLiveChartEngine";
16
+ import { SelectionDotSlot } from "./SelectionDot";
15
17
 
16
18
  const TOOLTIP_RADIUS = 5;
17
19
 
@@ -25,6 +27,11 @@ export function CrosshairOverlay({
25
27
  font,
26
28
  showTooltip = true,
27
29
  children,
30
+ renderTooltip,
31
+ selectionDot,
32
+ selectionY,
33
+ scrubActive,
34
+ selectionColor,
28
35
  dimOpacity = 0.3,
29
36
  liveDotExtent = 0,
30
37
  crosshairLineColor,
@@ -45,6 +52,19 @@ export function CrosshairOverlay({
45
52
  * text (e.g. the multi-line candle stack). Passed as children so it composes
46
53
  * instead of being threaded through as a JSX-valued prop. */
47
54
  children?: ReactNode;
55
+ /** Public custom-tooltip hook for line mode: when provided (and no `children`
56
+ * are passed), its result replaces the default value/time tooltip body. */
57
+ renderTooltip?: () => ReactNode;
58
+ /** Resolved selection-dot config; `null` hides it, a `component` renders the
59
+ * consumer's dot, otherwise the built-in dot. */
60
+ selectionDot?: ResolvedSelectionDotConfig | null;
61
+ /** Scrub intersection Y in canvas px (the value the dot marks); -1 hides it. */
62
+ selectionY?: SharedValue<number>;
63
+ /** Whether scrubbing is active (passed through to a custom dot). */
64
+ scrubActive?: SharedValue<number> | SharedValue<boolean>;
65
+ /** Fallback selection-dot color (accent / leading-series color), used when the
66
+ * config's own `color` is unset. */
67
+ selectionColor?: string;
48
68
  /** Opacity of content right of the crosshair (dstOut fade). Default 0.3. */
49
69
  dimOpacity?: number;
50
70
  /** How far the live dot (and its pulse ring) extends past the plot's right
@@ -143,6 +163,17 @@ export function CrosshairOverlay({
143
163
  strokeWidth={1}
144
164
  />
145
165
 
166
+ {/* Selection dot at the scrub intersection. `null` hides it; a custom
167
+ component renders the consumer's dot; otherwise the built-in dot. */}
168
+ <SelectionDotSlot
169
+ config={selectionDot}
170
+ x={scrubX}
171
+ y={selectionY}
172
+ active={scrubActive}
173
+ opacity={crosshairOpacity}
174
+ color={selectionColor ?? palette.line}
175
+ />
176
+
146
177
  {showTooltip && (
147
178
  <>
148
179
  <RoundedRect
@@ -165,24 +196,25 @@ export function CrosshairOverlay({
165
196
  strokeWidth={1}
166
197
  />
167
198
 
168
- {children ?? (
169
- <Group>
170
- <SkiaText
171
- x={valueTextX}
172
- y={line1Y}
173
- text={valueStr}
174
- font={font}
175
- color={tooltipColor ?? palette.tooltipText}
176
- />
177
- <SkiaText
178
- x={timeTextX}
179
- y={line2Y}
180
- text={timeStr}
181
- font={font}
182
- color={palette.gridLabel}
183
- />
184
- </Group>
185
- )}
199
+ {children ??
200
+ renderTooltip?.() ?? (
201
+ <Group>
202
+ <SkiaText
203
+ x={valueTextX}
204
+ y={line1Y}
205
+ text={valueStr}
206
+ font={font}
207
+ color={tooltipColor ?? palette.tooltipText}
208
+ />
209
+ <SkiaText
210
+ x={timeTextX}
211
+ y={line2Y}
212
+ text={timeStr}
213
+ font={font}
214
+ color={palette.gridLabel}
215
+ />
216
+ </Group>
217
+ )}
186
218
  </>
187
219
  )}
188
220
  </Group>