@ledgerhq/lumen-ui-rnative-visualization 0.1.22 → 0.1.24

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 (68) hide show
  1. package/dist/module/lib/Components/Line/Line.js +4 -4
  2. package/dist/module/lib/Components/Line/Line.js.map +1 -1
  3. package/dist/module/lib/Components/LineChart/LineChart.js +4 -4
  4. package/dist/module/lib/Components/LineChart/LineChart.js.map +1 -1
  5. package/dist/module/lib/Components/LineChart/LineChart.performance.test.js +99 -0
  6. package/dist/module/lib/Components/LineChart/LineChart.performance.test.js.map +1 -0
  7. package/dist/module/lib/Components/Point/Point.js +81 -50
  8. package/dist/module/lib/Components/Point/Point.js.map +1 -1
  9. package/dist/module/lib/Components/Point/Point.test.js +41 -0
  10. package/dist/module/lib/Components/Point/Point.test.js.map +1 -1
  11. package/dist/module/lib/Components/Point/constants.js +2 -0
  12. package/dist/module/lib/Components/Point/constants.js.map +1 -1
  13. package/dist/module/lib/Components/Point/pointContext/MagneticPointsProvider.js +19 -9
  14. package/dist/module/lib/Components/Point/pointContext/MagneticPointsProvider.js.map +1 -1
  15. package/dist/module/lib/Components/Point/pointContext/MagneticPointsProvider.test.js +10 -1
  16. package/dist/module/lib/Components/Point/pointContext/MagneticPointsProvider.test.js.map +1 -1
  17. package/dist/module/lib/Components/Point/pointContext/index.js +1 -1
  18. package/dist/module/lib/Components/Point/pointContext/index.js.map +1 -1
  19. package/dist/module/lib/Components/Point/pointContext/magneticPointsContext.js +22 -4
  20. package/dist/module/lib/Components/Point/pointContext/magneticPointsContext.js.map +1 -1
  21. package/dist/module/lib/Components/Point/usePointGeometry.js +60 -0
  22. package/dist/module/lib/Components/Point/usePointGeometry.js.map +1 -0
  23. package/dist/module/lib/Components/Point/usePointGeometry.test.js +86 -0
  24. package/dist/module/lib/Components/Point/usePointGeometry.test.js.map +1 -0
  25. package/dist/module/lib/Components/Point/utils.js +58 -15
  26. package/dist/module/lib/Components/Point/utils.js.map +1 -1
  27. package/dist/module/lib/Components/Point/utils.test.js +37 -75
  28. package/dist/module/lib/Components/Point/utils.test.js.map +1 -1
  29. package/dist/module/lib/Components/Scrubber/ScrubberProvider.js +2 -2
  30. package/dist/module/lib/Components/Scrubber/ScrubberProvider.js.map +1 -1
  31. package/dist/module/lib/utils/domain/domain.js +4 -4
  32. package/dist/module/lib/utils/domain/domain.js.map +1 -1
  33. package/dist/typescript/src/lib/Components/Line/Line.d.ts +1 -1
  34. package/dist/typescript/src/lib/Components/Line/Line.d.ts.map +1 -1
  35. package/dist/typescript/src/lib/Components/LineChart/LineChart.d.ts.map +1 -1
  36. package/dist/typescript/src/lib/Components/Point/Point.d.ts +1 -1
  37. package/dist/typescript/src/lib/Components/Point/Point.d.ts.map +1 -1
  38. package/dist/typescript/src/lib/Components/Point/constants.d.ts +2 -0
  39. package/dist/typescript/src/lib/Components/Point/constants.d.ts.map +1 -1
  40. package/dist/typescript/src/lib/Components/Point/pointContext/MagneticPointsProvider.d.ts.map +1 -1
  41. package/dist/typescript/src/lib/Components/Point/pointContext/index.d.ts +1 -1
  42. package/dist/typescript/src/lib/Components/Point/pointContext/index.d.ts.map +1 -1
  43. package/dist/typescript/src/lib/Components/Point/pointContext/magneticPointsContext.d.ts +22 -5
  44. package/dist/typescript/src/lib/Components/Point/pointContext/magneticPointsContext.d.ts.map +1 -1
  45. package/dist/typescript/src/lib/Components/Point/types.d.ts +32 -0
  46. package/dist/typescript/src/lib/Components/Point/types.d.ts.map +1 -1
  47. package/dist/typescript/src/lib/Components/Point/usePointGeometry.d.ts +33 -0
  48. package/dist/typescript/src/lib/Components/Point/usePointGeometry.d.ts.map +1 -0
  49. package/dist/typescript/src/lib/Components/Point/utils.d.ts +30 -4
  50. package/dist/typescript/src/lib/Components/Point/utils.d.ts.map +1 -1
  51. package/package.json +4 -4
  52. package/src/lib/Components/Line/Line.tsx +4 -4
  53. package/src/lib/Components/LineChart/LineChart.performance.test.tsx +101 -0
  54. package/src/lib/Components/LineChart/LineChart.tsx +18 -11
  55. package/src/lib/Components/Point/Point.test.tsx +46 -0
  56. package/src/lib/Components/Point/Point.tsx +79 -57
  57. package/src/lib/Components/Point/constants.ts +2 -0
  58. package/src/lib/Components/Point/pointContext/MagneticPointsProvider.test.tsx +13 -1
  59. package/src/lib/Components/Point/pointContext/MagneticPointsProvider.tsx +20 -8
  60. package/src/lib/Components/Point/pointContext/index.ts +4 -2
  61. package/src/lib/Components/Point/pointContext/magneticPointsContext.ts +29 -7
  62. package/src/lib/Components/Point/types.ts +41 -0
  63. package/src/lib/Components/Point/usePointGeometry.test.ts +95 -0
  64. package/src/lib/Components/Point/usePointGeometry.ts +77 -0
  65. package/src/lib/Components/Point/utils.test.ts +34 -80
  66. package/src/lib/Components/Point/utils.ts +77 -19
  67. package/src/lib/Components/Scrubber/ScrubberProvider.tsx +2 -2
  68. package/src/lib/utils/domain/domain.ts +4 -4
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  import { useTheme } from '@ledgerhq/lumen-ui-rnative';
4
- import { useId, useMemo } from 'react';
4
+ import { useId, useMemo, memo } from 'react';
5
5
  import { Defs, G, LinearGradient, Path, Stop } from 'react-native-svg';
6
6
  import { isNumericScale } from "../../utils/scales/scales.js";
7
7
  import { useCartesianChartContext } from "../CartesianChart/context/index.js";
@@ -9,14 +9,14 @@ import { usePathReveal } from "../CartesianChart/RevealAnimation/index.js";
9
9
  import { LINE_AREA_GRADIENT_OPACITY, LINE_STROKE_WIDTH } from "./constants.js";
10
10
  import { buildAreaPath, buildLinePath, toScaledPoints } from "./utils.js";
11
11
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
12
- export const Line = ({
12
+ export const Line = /*#__PURE__*/memo(function Line({
13
13
  seriesId,
14
14
  stroke,
15
15
  showArea = false,
16
16
  areaType: _areaType = 'gradient',
17
17
  curve,
18
18
  connectNulls
19
- }) => {
19
+ }) {
20
20
  const {
21
21
  getXScale,
22
22
  getYScale,
@@ -78,5 +78,5 @@ export const Line = ({
78
78
  strokeLinejoin: "round"
79
79
  })]
80
80
  });
81
- };
81
+ });
82
82
  //# sourceMappingURL=Line.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["useTheme","useId","useMemo","Defs","G","LinearGradient","Path","Stop","isNumericScale","useCartesianChartContext","usePathReveal","LINE_AREA_GRADIENT_OPACITY","LINE_STROKE_WIDTH","buildAreaPath","buildLinePath","toScaledPoints","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","Line","seriesId","stroke","showArea","areaType","_areaType","curve","connectNulls","getXScale","getYScale","getXAxisConfig","drawingArea","seriesMap","clipPath","xScale","yScale","xAxisConfig","theme","gradientId","seriesData","get","resolvedStroke","colors","border","muted","resolvedCurve","resolvedConnectNulls","points","data","linePath","areaPath","children","id","x1","y1","x2","y2","offset","stopColor","stopOpacity","testID","d","fill","strokeWidth","strokeLinecap","strokeLinejoin"],"sourceRoot":"../../../../../src","sources":["lib/Components/Line/Line.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useTheme","useId","useMemo","memo","Defs","G","LinearGradient","Path","Stop","isNumericScale","useCartesianChartContext","usePathReveal","LINE_AREA_GRADIENT_OPACITY","LINE_STROKE_WIDTH","buildAreaPath","buildLinePath","toScaledPoints","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","Line","seriesId","stroke","showArea","areaType","_areaType","curve","connectNulls","getXScale","getYScale","getXAxisConfig","drawingArea","seriesMap","clipPath","xScale","yScale","xAxisConfig","theme","gradientId","seriesData","get","resolvedStroke","colors","border","muted","resolvedCurve","resolvedConnectNulls","points","data","linePath","areaPath","children","id","x1","y1","x2","y2","offset","stopColor","stopOpacity","testID","d","fill","strokeWidth","strokeLinecap","strokeLinejoin"],"sourceRoot":"../../../../../src","sources":["lib/Components/Line/Line.tsx"],"mappings":"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","ignoreList":[]}
@@ -105,17 +105,17 @@ export const LineChart = ({
105
105
  emptyLabel = 'No data',
106
106
  connectNulls
107
107
  }) => {
108
- const xAxisConfig = {
108
+ const xAxisConfig = useMemo(() => ({
109
109
  ...defaultXAxisProps,
110
110
  ...xAxis,
111
111
  position: xAxis?.position ?? defaultXAxisProps.position
112
- };
113
- const yAxisConfig = {
112
+ }), [xAxis]);
113
+ const yAxisConfig = useMemo(() => ({
114
114
  ...defaultYAxisProps,
115
115
  ...yAxis,
116
116
  position: yAxis?.position ?? defaultYAxisProps.position,
117
117
  width: yAxis?.width ?? defaultYAxisProps.width
118
- };
118
+ }), [yAxis]);
119
119
  const xAxisPosition = xAxisConfig.position;
120
120
  const yAxisPosition = yAxisConfig.position;
121
121
  const yAxisWidth = yAxisConfig.width;
@@ -1 +1 @@
1
- {"version":3,"names":["useTheme","useMemo","Animated","G","defaultXAxisProps","defaultYAxisProps","XAxis","YAxis","CartesianChart","ChartEmptyLabel","useShimmerAnimation","Line","LineChartEmptyState","canRenderLine","computeAxisPadding","getChartDisplayState","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","AnimatedG","createAnimatedComponent","LineChartLines","series","showArea","areaType","stroke","connectNulls","children","map","s","seriesId","id","LineChartTransitionLines","theme","animatedProps","colors","border","mutedSubtle","LineChartContent","showXAxis","showYAxis","xAxisConfig","yAxisConfig","isTransitionLoading","LineChart","xAxis","yAxis","width","height","inset","enableScrubbing","onScrubberPositionChange","animate","magnetRadius","loading","emptyLabel","position","xAxisPosition","yAxisPosition","yAxisWidth","axisPadding","hasData","data","status","ariaLabel","isPlaceholder","ariaBusy","overlay","undefined"],"sourceRoot":"../../../../../src","sources":["lib/Components/LineChart/LineChart.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useTheme","useMemo","Animated","G","defaultXAxisProps","defaultYAxisProps","XAxis","YAxis","CartesianChart","ChartEmptyLabel","useShimmerAnimation","Line","LineChartEmptyState","canRenderLine","computeAxisPadding","getChartDisplayState","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","AnimatedG","createAnimatedComponent","LineChartLines","series","showArea","areaType","stroke","connectNulls","children","map","s","seriesId","id","LineChartTransitionLines","theme","animatedProps","colors","border","mutedSubtle","LineChartContent","showXAxis","showYAxis","xAxisConfig","yAxisConfig","isTransitionLoading","LineChart","xAxis","yAxis","width","height","inset","enableScrubbing","onScrubberPositionChange","animate","magnetRadius","loading","emptyLabel","position","xAxisPosition","yAxisPosition","yAxisWidth","axisPadding","hasData","data","status","ariaLabel","isPlaceholder","ariaBusy","overlay","undefined"],"sourceRoot":"../../../../../src","sources":["lib/Components/LineChart/LineChart.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,99 @@
1
+ "use strict";
2
+
3
+ import { beforeEach, describe, expect, it } from '@jest/globals';
4
+ import { ledgerLiveThemes } from '@ledgerhq/lumen-design-core';
5
+ import { ThemeProvider } from '@ledgerhq/lumen-ui-rnative';
6
+ import { render } from '@testing-library/react-native';
7
+ import React, { Profiler } from 'react';
8
+ import { Point } from "../Point/index.js";
9
+ import { LineChart } from "./LineChart.js";
10
+
11
+ // Deterministic render budgets: assert on counts, never time, so CI never flakes.
12
+ // Native scrubbing is gesture/worklet driven and not simulable here, so the
13
+ // scrub re-render guard lives only in the React lib.
14
+ import { jsx as _jsx } from "react/jsx-runtime";
15
+ const POINT_COUNT = 24;
16
+ const buildData = length => Array.from({
17
+ length
18
+ }, (_, i) => i % 9 + 1);
19
+
20
+ // Counts commits of the Point subtree itself (via React.Profiler) rather than a
21
+ // wrapper's renders. A wrapper counter sits above Point and never re-runs when a
22
+ // context Point consumes updates, so it would silently miss the version-cascade
23
+ // regression this budget guards against.
24
+ let pointMountCommits = 0;
25
+ let pointUpdateCommits = 0;
26
+ const onPointRender = (_id, phase) => {
27
+ if (phase === 'mount') {
28
+ pointMountCommits++;
29
+ } else {
30
+ pointUpdateCommits++;
31
+ }
32
+ };
33
+ const Wrapper = ({
34
+ children
35
+ }) => /*#__PURE__*/_jsx(ThemeProvider, {
36
+ themes: ledgerLiveThemes,
37
+ colorScheme: "light",
38
+ children: children
39
+ });
40
+ beforeEach(() => {
41
+ pointMountCommits = 0;
42
+ pointUpdateCommits = 0;
43
+ });
44
+ describe('LineChart performance budgets', () => {
45
+ it('emits a bounded node count per point', () => {
46
+ const data = buildData(POINT_COUNT);
47
+ const {
48
+ queryAllByTestId
49
+ } = render(/*#__PURE__*/_jsx(Wrapper, {
50
+ children: /*#__PURE__*/_jsx(LineChart, {
51
+ series: [{
52
+ id: 's',
53
+ stroke: '#000',
54
+ data
55
+ }],
56
+ width: 400,
57
+ height: 200,
58
+ animate: false,
59
+ children: data.map((value, index) => /*#__PURE__*/_jsx(Point, {
60
+ dataX: index,
61
+ dataY: value
62
+ }, index))
63
+ })
64
+ }));
65
+ const groups = queryAllByTestId('point-group');
66
+ const circles = queryAllByTestId('point-circle');
67
+ const arrows = queryAllByTestId('point-arrow');
68
+ expect(circles).toHaveLength(groups.length);
69
+ expect(arrows).toHaveLength(0);
70
+ expect(groups.length).toBeGreaterThan(0);
71
+ });
72
+ it('renders each magnetic point exactly once on mount (no version cascade)', () => {
73
+ const data = buildData(POINT_COUNT);
74
+ render(/*#__PURE__*/_jsx(Wrapper, {
75
+ children: /*#__PURE__*/_jsx(LineChart, {
76
+ series: [{
77
+ id: 's',
78
+ stroke: '#000',
79
+ data
80
+ }],
81
+ width: 400,
82
+ height: 200,
83
+ animate: false,
84
+ children: data.map((value, index) => /*#__PURE__*/_jsx(Profiler, {
85
+ id: `point-${index}`,
86
+ onRender: onPointRender,
87
+ children: /*#__PURE__*/_jsx(Point, {
88
+ magnetic: true,
89
+ dataX: index,
90
+ dataY: value
91
+ })
92
+ }, index))
93
+ })
94
+ }));
95
+ expect(pointMountCommits).toBe(POINT_COUNT);
96
+ expect(pointUpdateCommits).toBe(0);
97
+ });
98
+ });
99
+ //# sourceMappingURL=LineChart.performance.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["beforeEach","describe","expect","it","ledgerLiveThemes","ThemeProvider","render","React","Profiler","Point","LineChart","jsx","_jsx","POINT_COUNT","buildData","length","Array","from","_","i","pointMountCommits","pointUpdateCommits","onPointRender","_id","phase","Wrapper","children","themes","colorScheme","data","queryAllByTestId","series","id","stroke","width","height","animate","map","value","index","dataX","dataY","groups","circles","arrows","toHaveLength","toBeGreaterThan","onRender","magnetic","toBe"],"sourceRoot":"../../../../../src","sources":["lib/Components/LineChart/LineChart.performance.test.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,15 +1,12 @@
1
1
  "use strict";
2
2
 
3
3
  import { useTheme } from '@ledgerhq/lumen-ui-rnative';
4
- import { useMemo } from 'react';
4
+ import { memo } from 'react';
5
5
  import Animated from 'react-native-reanimated';
6
6
  import { Circle, G, Polygon, Text as SvgText } from 'react-native-svg';
7
- import { projectPoint } from "../../utils/scales/scales.js";
8
- import { useCartesianChartContext } from "../CartesianChart/context/index.js";
9
- import { useRevealFadeProps } from "../CartesianChart/RevealAnimation/index.js";
10
- import { DEFAULT_SIZE, STROKE_WIDTH } from "./constants.js";
11
- import { useMagneticPointsContext } from "./pointContext/index.js";
12
- import { buildArrowPoints, computeLabelY, isWithinBounds, resolveLabel, useMagneticRegistration } from "./utils.js";
7
+ import { DEFAULT_SIZE, LABEL_FONT_SIZE, STROKE_WIDTH } from "./constants.js";
8
+ import { usePointGeometry } from "./usePointGeometry.js";
9
+ import { buildArrowPoints, computeLabelGeometry, resolveLabel } from "./utils.js";
13
10
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
14
11
  const AnimatedG = Animated.createAnimatedComponent(G);
15
12
  export function PointLabel({
@@ -22,13 +19,49 @@ export function PointLabel({
22
19
  return /*#__PURE__*/_jsx(SvgText, {
23
20
  textAnchor: textAnchor,
24
21
  fill: theme.colors.text.base,
25
- fontSize: theme.typographies.body4.fontSize,
22
+ fontSize: LABEL_FONT_SIZE,
26
23
  fontWeight: theme.typographies.body4.fontWeight,
27
24
  fontFamily: theme.fontFamilies.sans,
28
25
  ...props
29
26
  });
30
27
  }
31
- export function Point({
28
+ function PointMarker({
29
+ x,
30
+ y,
31
+ size,
32
+ color
33
+ }) {
34
+ const {
35
+ theme
36
+ } = useTheme();
37
+ const radius = size / 2;
38
+ const fill = color ?? theme.colors.bg.mutedStrong;
39
+ return /*#__PURE__*/_jsx(Circle, {
40
+ testID: "point-circle",
41
+ cx: x,
42
+ cy: y,
43
+ r: radius,
44
+ fill: fill,
45
+ stroke: theme.colors.bg.canvas,
46
+ strokeWidth: STROKE_WIDTH
47
+ });
48
+ }
49
+ function PointArrow({
50
+ x,
51
+ y,
52
+ size,
53
+ position
54
+ }) {
55
+ const {
56
+ theme
57
+ } = useTheme();
58
+ return /*#__PURE__*/_jsx(Polygon, {
59
+ testID: "point-arrow",
60
+ points: buildArrowPoints(x, y, size / 2, position),
61
+ fill: theme.colors.text.base
62
+ });
63
+ }
64
+ export const Point = /*#__PURE__*/memo(function Point({
32
65
  dataX,
33
66
  dataY,
34
67
  color,
@@ -39,57 +72,55 @@ export function Point({
39
72
  showLabelArrow = true,
40
73
  size = DEFAULT_SIZE,
41
74
  onPress,
42
- magnetic = false
75
+ magnetic = false,
76
+ labelAlignment = 'auto'
43
77
  }) {
44
78
  const {
45
- getXScale,
46
- getYScale,
47
- getXAxisConfig,
48
- drawingArea
49
- } = useCartesianChartContext();
50
- const fadeProps = useRevealFadeProps();
51
- const magneticContext = useMagneticPointsContext();
52
- useMagneticRegistration(magnetic, dataX, getXAxisConfig, magneticContext);
53
- const {
54
- theme
55
- } = useTheme();
56
- const xScale = getXScale();
57
- const yScale = getYScale();
58
- const radius = size / 2;
59
- const fill = color ?? theme.colors.bg.mutedStrong;
60
- const pixel = useMemo(() => {
61
- if (!xScale || !yScale) return undefined;
62
- return projectPoint(dataX, dataY, xScale, yScale);
63
- }, [dataX, dataY, xScale, yScale]);
64
- if (!pixel || !isWithinBounds(pixel.x, pixel.y, drawingArea)) {
79
+ pixel,
80
+ drawingArea,
81
+ fadeProps,
82
+ isVisible
83
+ } = usePointGeometry({
84
+ dataX,
85
+ dataY,
86
+ magnetic
87
+ });
88
+ if (!isVisible || !pixel) {
65
89
  return null;
66
90
  }
67
- const resolvedLabel = resolveLabel(label, dataX);
68
- const hasLabel = resolvedLabel != null;
69
- const renderArrow = showLabelArrow && hasLabel;
70
- const labelY = computeLabelY(pixel.y, radius, labelPosition, renderArrow);
91
+ const labelText = resolveLabel(label, dataX);
92
+ const isLabelVisible = labelText !== undefined;
93
+ const labelGeometry = isLabelVisible ? computeLabelGeometry({
94
+ text: labelText,
95
+ pixelX: pixel.x,
96
+ pixelY: pixel.y,
97
+ size,
98
+ labelPosition,
99
+ showLabelArrow,
100
+ area: drawingArea,
101
+ alignment: labelAlignment
102
+ }) : null;
71
103
  const Label = LabelComponent ?? PointLabel;
72
104
  return /*#__PURE__*/_jsxs(AnimatedG, {
73
105
  testID: "point-group",
74
106
  onPress: onPress,
75
107
  animatedProps: fadeProps,
76
- children: [!hidePoint && /*#__PURE__*/_jsx(Circle, {
77
- testID: "point-circle",
78
- cx: pixel.x,
79
- cy: pixel.y,
80
- r: radius,
81
- fill: fill,
82
- stroke: theme.colors.bg.canvas,
83
- strokeWidth: STROKE_WIDTH
84
- }), renderArrow && /*#__PURE__*/_jsx(Polygon, {
85
- testID: "point-arrow",
86
- points: buildArrowPoints(pixel.x, pixel.y, radius, labelPosition),
87
- fill: theme.colors.text.base
88
- }), resolvedLabel != null && /*#__PURE__*/_jsx(Label, {
108
+ children: [!hidePoint && /*#__PURE__*/_jsx(PointMarker, {
89
109
  x: pixel.x,
90
- y: labelY,
91
- children: resolvedLabel
110
+ y: pixel.y,
111
+ size: size,
112
+ color: color
113
+ }), isLabelVisible && showLabelArrow && /*#__PURE__*/_jsx(PointArrow, {
114
+ x: pixel.x,
115
+ y: pixel.y,
116
+ size: size,
117
+ position: labelPosition
118
+ }), labelText != null && labelGeometry && /*#__PURE__*/_jsx(Label, {
119
+ x: labelGeometry.x,
120
+ y: labelGeometry.y,
121
+ textAnchor: labelGeometry.textAnchor,
122
+ children: labelText
92
123
  })]
93
124
  });
94
- }
125
+ });
95
126
  //# sourceMappingURL=Point.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["useTheme","useMemo","Animated","Circle","G","Polygon","Text","SvgText","projectPoint","useCartesianChartContext","useRevealFadeProps","DEFAULT_SIZE","STROKE_WIDTH","useMagneticPointsContext","buildArrowPoints","computeLabelY","isWithinBounds","resolveLabel","useMagneticRegistration","jsx","_jsx","jsxs","_jsxs","AnimatedG","createAnimatedComponent","PointLabel","textAnchor","props","theme","fill","colors","text","base","fontSize","typographies","body4","fontWeight","fontFamily","fontFamilies","sans","Point","dataX","dataY","color","label","LabelComponent","labelPosition","hidePoint","showLabelArrow","size","onPress","magnetic","getXScale","getYScale","getXAxisConfig","drawingArea","fadeProps","magneticContext","xScale","yScale","radius","bg","mutedStrong","pixel","undefined","x","y","resolvedLabel","hasLabel","renderArrow","labelY","Label","testID","animatedProps","children","cx","cy","r","stroke","canvas","strokeWidth","points"],"sourceRoot":"../../../../../src","sources":["lib/Components/Point/Point.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useTheme","memo","Animated","Circle","G","Polygon","Text","SvgText","DEFAULT_SIZE","LABEL_FONT_SIZE","STROKE_WIDTH","usePointGeometry","buildArrowPoints","computeLabelGeometry","resolveLabel","jsx","_jsx","jsxs","_jsxs","AnimatedG","createAnimatedComponent","PointLabel","textAnchor","props","theme","fill","colors","text","base","fontSize","fontWeight","typographies","body4","fontFamily","fontFamilies","sans","PointMarker","x","y","size","color","radius","bg","mutedStrong","testID","cx","cy","r","stroke","canvas","strokeWidth","PointArrow","position","points","Point","dataX","dataY","label","LabelComponent","labelPosition","hidePoint","showLabelArrow","onPress","magnetic","labelAlignment","pixel","drawingArea","fadeProps","isVisible","labelText","isLabelVisible","undefined","labelGeometry","pixelX","pixelY","area","alignment","Label","animatedProps","children"],"sourceRoot":"../../../../../src","sources":["lib/Components/Point/Point.tsx"],"mappings":"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","ignoreList":[]}
@@ -212,6 +212,47 @@ describe('Point', () => {
212
212
  const bottomY = bottomSpy.mock.calls[0][0].y;
213
213
  expect(bottomY).toBeGreaterThan(topY);
214
214
  });
215
+ it('anchors a long label inward at the left edge by default', () => {
216
+ const labelSpy = jest.fn(({
217
+ x,
218
+ y,
219
+ children
220
+ }) => /*#__PURE__*/_jsx(SvgText, {
221
+ x: x,
222
+ y: y,
223
+ children: children
224
+ }));
225
+ renderInChart(/*#__PURE__*/_jsx(Point, {
226
+ dataX: 0,
227
+ dataY: 10,
228
+ label: "A long edge label",
229
+ LabelComponent: labelSpy
230
+ }));
231
+ expect(labelSpy).toHaveBeenCalledWith(expect.objectContaining({
232
+ textAnchor: 'start'
233
+ }), undefined);
234
+ });
235
+ it("centres a long edge label when labelAlignment is 'center'", () => {
236
+ const labelSpy = jest.fn(({
237
+ x,
238
+ y,
239
+ children
240
+ }) => /*#__PURE__*/_jsx(SvgText, {
241
+ x: x,
242
+ y: y,
243
+ children: children
244
+ }));
245
+ renderInChart(/*#__PURE__*/_jsx(Point, {
246
+ dataX: 0,
247
+ dataY: 10,
248
+ label: "A long edge label",
249
+ labelAlignment: "center",
250
+ LabelComponent: labelSpy
251
+ }));
252
+ expect(labelSpy).toHaveBeenCalledWith(expect.objectContaining({
253
+ textAnchor: 'middle'
254
+ }), undefined);
255
+ });
215
256
  it('calls onPress when the point is pressed', () => {
216
257
  const onPress = jest.fn();
217
258
  const {
@@ -1 +1 @@
1
- {"version":3,"names":["describe","it","expect","jest","ledgerLiveThemes","ThemeProvider","fireEvent","render","React","Text","SvgText","CartesianChart","Point","jsx","_jsx","sampleSeries","id","stroke","data","Wrapper","children","themes","colorScheme","renderInChart","pointElement","width","height","xAxis","yAxis","series","getByTestId","dataX","dataY","circle","toBeTruthy","props","r","toBe","color","size","fill","getByText","label","i","CustomLabel","x","y","testID","LabelComponent","queryByTestId","toBeNull","hidePoint","scaleType","showLabelArrow","topSpy","fn","bottomSpy","labelPosition","topY","mock","calls","bottomY","toBeGreaterThan","onPress","press","toHaveBeenCalled"],"sourceRoot":"../../../../../src","sources":["lib/Components/Point/Point.test.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["describe","it","expect","jest","ledgerLiveThemes","ThemeProvider","fireEvent","render","React","Text","SvgText","CartesianChart","Point","jsx","_jsx","sampleSeries","id","stroke","data","Wrapper","children","themes","colorScheme","renderInChart","pointElement","width","height","xAxis","yAxis","series","getByTestId","dataX","dataY","circle","toBeTruthy","props","r","toBe","color","size","fill","getByText","label","i","CustomLabel","x","y","testID","LabelComponent","queryByTestId","toBeNull","hidePoint","scaleType","showLabelArrow","topSpy","fn","bottomSpy","labelPosition","topY","mock","calls","bottomY","toBeGreaterThan","labelSpy","toHaveBeenCalledWith","objectContaining","textAnchor","undefined","labelAlignment","onPress","press","toHaveBeenCalled"],"sourceRoot":"../../../../../src","sources":["lib/Components/Point/Point.test.tsx"],"mappings":"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","ignoreList":[]}
@@ -6,4 +6,6 @@ export const LABEL_FONT_SIZE = 10;
6
6
  export const ARROW_WIDTH = 6;
7
7
  export const ARROW_HEIGHT = 4;
8
8
  export const GAP = 4;
9
+ /** Approximate width of a character in the label font, as a ratio of the font size. Used to compute the label width. */
10
+ export const LABEL_CHAR_WIDTH_RATIO = 0.6;
9
11
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["DEFAULT_SIZE","STROKE_WIDTH","LABEL_FONT_SIZE","ARROW_WIDTH","ARROW_HEIGHT","GAP"],"sourceRoot":"../../../../../src","sources":["lib/Components/Point/constants.ts"],"mappings":";;AAAA,OAAO,MAAMA,YAAY,GAAG,EAAE;AAC9B,OAAO,MAAMC,YAAY,GAAG,CAAC;AAC7B,OAAO,MAAMC,eAAe,GAAG,EAAE;AACjC,OAAO,MAAMC,WAAW,GAAG,CAAC;AAC5B,OAAO,MAAMC,YAAY,GAAG,CAAC;AAC7B,OAAO,MAAMC,GAAG,GAAG,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["DEFAULT_SIZE","STROKE_WIDTH","LABEL_FONT_SIZE","ARROW_WIDTH","ARROW_HEIGHT","GAP","LABEL_CHAR_WIDTH_RATIO"],"sourceRoot":"../../../../../src","sources":["lib/Components/Point/constants.ts"],"mappings":";;AAAA,OAAO,MAAMA,YAAY,GAAG,EAAE;AAC9B,OAAO,MAAMC,YAAY,GAAG,CAAC;AAC7B,OAAO,MAAMC,eAAe,GAAG,EAAE;AACjC,OAAO,MAAMC,WAAW,GAAG,CAAC;AAC5B,OAAO,MAAMC,YAAY,GAAG,CAAC;AAC7B,OAAO,MAAMC,GAAG,GAAG,CAAC;AACpB;AACA,OAAO,MAAMC,sBAAsB,GAAG,GAAG","ignoreList":[]}
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  import { useCallback, useMemo, useRef, useState } from 'react';
4
- import { MagneticPointsContextProvider } from "./magneticPointsContext.js";
4
+ import { MagneticRegistryProvider, MagneticSnapshotProvider } from "./magneticPointsContext.js";
5
5
  import { jsx as _jsx } from "react/jsx-runtime";
6
6
  export function MagneticPointsProvider({
7
7
  children
@@ -21,15 +21,25 @@ export function MagneticPointsProvider({
21
21
  const getMagneticPoints = useCallback(() => {
22
22
  return pointsRef.current;
23
23
  }, []);
24
- const value = useMemo(() => ({
24
+
25
+ // Stable identity for the provider's lifetime: `Point` consumers read this
26
+ // and therefore never re-render when the magnetic set changes.
27
+ const registry = useMemo(() => ({
25
28
  register,
26
- unregister,
27
- getMagneticPoints,
28
- version
29
- }), [register, unregister, getMagneticPoints, version]);
30
- return /*#__PURE__*/_jsx(MagneticPointsContextProvider, {
31
- value: value,
32
- children: children
29
+ unregister
30
+ }), [register, unregister]);
31
+
32
+ // Changes on every register/unregister: consumed only by the scrubber.
33
+ const snapshot = useMemo(() => ({
34
+ version,
35
+ getMagneticPoints
36
+ }), [version, getMagneticPoints]);
37
+ return /*#__PURE__*/_jsx(MagneticRegistryProvider, {
38
+ value: registry,
39
+ children: /*#__PURE__*/_jsx(MagneticSnapshotProvider, {
40
+ value: snapshot,
41
+ children: children
42
+ })
33
43
  });
34
44
  }
35
45
  //# sourceMappingURL=MagneticPointsProvider.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["useCallback","useMemo","useRef","useState","MagneticPointsContextProvider","jsx","_jsx","MagneticPointsProvider","children","pointsRef","Set","version","setVersion","register","dataIndex","current","has","add","v","unregister","delete","getMagneticPoints","value"],"sourceRoot":"../../../../../../src","sources":["lib/Components/Point/pointContext/MagneticPointsProvider.tsx"],"mappings":";;AAAA,SAASA,WAAW,EAAEC,OAAO,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,OAAO;AAG9D,SACEC,6BAA6B,QAExB,4BAAyB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAMjC,OAAO,SAASC,sBAAsBA,CAAC;EACrCC;AACqC,CAAC,EAAE;EACxC,MAAMC,SAAS,GAAGP,MAAM,CAAC,IAAIQ,GAAG,CAAS,CAAC,CAAC;EAC3C,MAAM,CAACC,OAAO,EAAEC,UAAU,CAAC,GAAGT,QAAQ,CAAC,CAAC,CAAC;EAEzC,MAAMU,QAAQ,GAAGb,WAAW,CAAEc,SAAiB,IAAW;IACxD,IAAIL,SAAS,CAACM,OAAO,CAACC,GAAG,CAACF,SAAS,CAAC,EAAE;IACtCL,SAAS,CAACM,OAAO,CAACE,GAAG,CAACH,SAAS,CAAC;IAChCF,UAAU,CAAEM,CAAC,IAAKA,CAAC,GAAG,CAAC,CAAC;EAC1B,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMC,UAAU,GAAGnB,WAAW,CAAEc,SAAiB,IAAW;IAC1D,IAAI,CAACL,SAAS,CAACM,OAAO,CAACC,GAAG,CAACF,SAAS,CAAC,EAAE;IACvCL,SAAS,CAACM,OAAO,CAACK,MAAM,CAACN,SAAS,CAAC;IACnCF,UAAU,CAAEM,CAAC,IAAKA,CAAC,GAAG,CAAC,CAAC;EAC1B,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMG,iBAAiB,GAAGrB,WAAW,CAAC,MAA2B;IAC/D,OAAOS,SAAS,CAACM,OAAO;EAC1B,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMO,KAAiC,GAAGrB,OAAO,CAC/C,OAAO;IAAEY,QAAQ;IAAEM,UAAU;IAAEE,iBAAiB;IAAEV;EAAQ,CAAC,CAAC,EAC5D,CAACE,QAAQ,EAAEM,UAAU,EAAEE,iBAAiB,EAAEV,OAAO,CACnD,CAAC;EAED,oBACEL,IAAA,CAACF,6BAA6B;IAACkB,KAAK,EAAEA,KAAM;IAAAd,QAAA,EACzCA;EAAQ,CACoB,CAAC;AAEpC","ignoreList":[]}
1
+ {"version":3,"names":["useCallback","useMemo","useRef","useState","MagneticRegistryProvider","MagneticSnapshotProvider","jsx","_jsx","MagneticPointsProvider","children","pointsRef","Set","version","setVersion","register","dataIndex","current","has","add","v","unregister","delete","getMagneticPoints","registry","snapshot","value"],"sourceRoot":"../../../../../../src","sources":["lib/Components/Point/pointContext/MagneticPointsProvider.tsx"],"mappings":";;AAAA,SAASA,WAAW,EAAEC,OAAO,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,OAAO;AAG9D,SACEC,wBAAwB,EACxBC,wBAAwB,QAGnB,4BAAyB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAMjC,OAAO,SAASC,sBAAsBA,CAAC;EACrCC;AACqC,CAAC,EAAE;EACxC,MAAMC,SAAS,GAAGR,MAAM,CAAC,IAAIS,GAAG,CAAS,CAAC,CAAC;EAC3C,MAAM,CAACC,OAAO,EAAEC,UAAU,CAAC,GAAGV,QAAQ,CAAC,CAAC,CAAC;EAEzC,MAAMW,QAAQ,GAAGd,WAAW,CAAEe,SAAiB,IAAW;IACxD,IAAIL,SAAS,CAACM,OAAO,CAACC,GAAG,CAACF,SAAS,CAAC,EAAE;IACtCL,SAAS,CAACM,OAAO,CAACE,GAAG,CAACH,SAAS,CAAC;IAChCF,UAAU,CAAEM,CAAC,IAAKA,CAAC,GAAG,CAAC,CAAC;EAC1B,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMC,UAAU,GAAGpB,WAAW,CAAEe,SAAiB,IAAW;IAC1D,IAAI,CAACL,SAAS,CAACM,OAAO,CAACC,GAAG,CAACF,SAAS,CAAC,EAAE;IACvCL,SAAS,CAACM,OAAO,CAACK,MAAM,CAACN,SAAS,CAAC;IACnCF,UAAU,CAAEM,CAAC,IAAKA,CAAC,GAAG,CAAC,CAAC;EAC1B,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMG,iBAAiB,GAAGtB,WAAW,CAAC,MAA2B;IAC/D,OAAOU,SAAS,CAACM,OAAO;EAC1B,CAAC,EAAE,EAAE,CAAC;;EAEN;EACA;EACA,MAAMO,QAA+B,GAAGtB,OAAO,CAC7C,OAAO;IAAEa,QAAQ;IAAEM;EAAW,CAAC,CAAC,EAChC,CAACN,QAAQ,EAAEM,UAAU,CACvB,CAAC;;EAED;EACA,MAAMI,QAA+B,GAAGvB,OAAO,CAC7C,OAAO;IAAEW,OAAO;IAAEU;EAAkB,CAAC,CAAC,EACtC,CAACV,OAAO,EAAEU,iBAAiB,CAC7B,CAAC;EAED,oBACEf,IAAA,CAACH,wBAAwB;IAACqB,KAAK,EAAEF,QAAS;IAAAd,QAAA,eACxCF,IAAA,CAACF,wBAAwB;MAACoB,KAAK,EAAED,QAAS;MAAAf,QAAA,EACvCA;IAAQ,CACe;EAAC,CACH,CAAC;AAE/B","ignoreList":[]}
@@ -2,7 +2,7 @@
2
2
 
3
3
  import { describe, expect, it } from '@jest/globals';
4
4
  import { renderHook, act } from '@testing-library/react-native';
5
- import { useMagneticPointsContext } from "./magneticPointsContext.js";
5
+ import { useMagneticRegistry, useMagneticSnapshot } from "./magneticPointsContext.js";
6
6
  import { MagneticPointsProvider } from "./MagneticPointsProvider.js";
7
7
  import { jsx as _jsx } from "react/jsx-runtime";
8
8
  const wrapper = ({
@@ -10,6 +10,15 @@ const wrapper = ({
10
10
  }) => /*#__PURE__*/_jsx(MagneticPointsProvider, {
11
11
  children: children
12
12
  });
13
+
14
+ /**
15
+ * Reads both split contexts so the existing assertions (register/unregister/
16
+ * getMagneticPoints/version) keep working against a single result object.
17
+ */
18
+ const useMagneticPointsContext = () => ({
19
+ ...useMagneticRegistry(),
20
+ ...useMagneticSnapshot()
21
+ });
13
22
  describe('MagneticPointsProvider', () => {
14
23
  it('starts with an empty set', () => {
15
24
  const {