@ledgerhq/lumen-ui-rnative-visualization 0.1.3 → 0.1.5

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 (28) hide show
  1. package/dist/module/lib/Components/Axis/XAxis/XAxis.js +2 -2
  2. package/dist/module/lib/Components/Axis/XAxis/XAxis.js.map +1 -1
  3. package/dist/module/lib/Components/Axis/YAxis/YAxis.js +2 -2
  4. package/dist/module/lib/Components/Axis/YAxis/YAxis.js.map +1 -1
  5. package/dist/module/lib/Components/CartesianChart/context/useBuildChartContext.test.js +2 -2
  6. package/dist/module/lib/Components/Line/utils.js.map +1 -1
  7. package/dist/module/lib/utils/scales/scales.js +5 -1
  8. package/dist/module/lib/utils/scales/scales.js.map +1 -1
  9. package/dist/module/lib/utils/ticks/ticks.js +16 -0
  10. package/dist/module/lib/utils/ticks/ticks.js.map +1 -1
  11. package/dist/typescript/src/lib/Components/Axis/XAxis/XAxis.d.ts.map +1 -1
  12. package/dist/typescript/src/lib/Components/Axis/YAxis/YAxis.d.ts.map +1 -1
  13. package/dist/typescript/src/lib/Components/Line/utils.d.ts +1 -1
  14. package/dist/typescript/src/lib/Components/Line/utils.d.ts.map +1 -1
  15. package/dist/typescript/src/lib/utils/scales/scales.d.ts +4 -0
  16. package/dist/typescript/src/lib/utils/scales/scales.d.ts.map +1 -1
  17. package/dist/typescript/src/lib/utils/ticks/ticks.d.ts +11 -1
  18. package/dist/typescript/src/lib/utils/ticks/ticks.d.ts.map +1 -1
  19. package/dist/typescript/src/lib/utils/types.d.ts +4 -1
  20. package/dist/typescript/src/lib/utils/types.d.ts.map +1 -1
  21. package/package.json +3 -3
  22. package/src/lib/Components/Axis/XAxis/XAxis.tsx +18 -13
  23. package/src/lib/Components/Axis/YAxis/YAxis.tsx +18 -13
  24. package/src/lib/Components/CartesianChart/context/useBuildChartContext.test.ts +2 -2
  25. package/src/lib/Components/Line/utils.ts +2 -2
  26. package/src/lib/utils/scales/scales.ts +8 -1
  27. package/src/lib/utils/ticks/ticks.ts +27 -1
  28. package/src/lib/utils/types.ts +4 -1
@@ -3,7 +3,7 @@
3
3
  import { useTheme } from '@ledgerhq/lumen-ui-rnative';
4
4
  import { useMemo } from 'react';
5
5
  import { G, Line as SvgLine, Text as SvgText } from 'react-native-svg';
6
- import { buildTicksData } from "../../../utils/ticks/ticks.js";
6
+ import { buildTicksData, isTickOnXAxisDomainEdge } from "../../../utils/ticks/ticks.js";
7
7
  import { useCartesianChartContext } from "../../CartesianChart/context/index.js";
8
8
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
9
9
  const STROKE_WIDTH = 1;
@@ -43,7 +43,7 @@ export const XAxis = ({
43
43
  const lineStroke = theme.colors.border.muted;
44
44
  const textFill = theme.colors.text.muted;
45
45
  return /*#__PURE__*/_jsxs(G, {
46
- children: [showGrid && ticksData.map((tick, i) => /*#__PURE__*/_jsx(SvgLine, {
46
+ children: [showGrid && ticksData.filter(tick => isTickOnXAxisDomainEdge(tick, drawingArea)).map((tick, i) => /*#__PURE__*/_jsx(SvgLine, {
47
47
  x1: tick.position,
48
48
  y1: drawingArea.y,
49
49
  x2: tick.position,
@@ -1 +1 @@
1
- {"version":3,"names":["useTheme","useMemo","G","Line","SvgLine","Text","SvgText","buildTicksData","useCartesianChartContext","jsx","_jsx","jsxs","_jsxs","STROKE_WIDTH","TICK_MARK_SIZE","TICK_LABEL_OFFSET","DEFAULT_AXIS_HEIGHT","XAxis","gridLineStyle","position","showGrid","showLine","showTickMark","ticks","ticksProp","tickLabelFormatter","getXScale","getXAxisConfig","drawingArea","theme","xScale","xAxisConfig","ticksData","width","isTop","axisY","y","height","fontSize","typographies","body4","tickDirection","labelY","labelDy","gridStroke","colors","border","mutedSubtle","lineStroke","muted","textFill","text","children","map","tick","i","x1","y1","x2","y2","stroke","strokeWidth","strokeDasharray","undefined","value","x","strokeLinecap","dy","textAnchor","fill","fontFamily","fontFamilies","sans","label"],"sourceRoot":"../../../../../../src","sources":["lib/Components/Axis/XAxis/XAxis.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useTheme","useMemo","G","Line","SvgLine","Text","SvgText","buildTicksData","isTickOnXAxisDomainEdge","useCartesianChartContext","jsx","_jsx","jsxs","_jsxs","STROKE_WIDTH","TICK_MARK_SIZE","TICK_LABEL_OFFSET","DEFAULT_AXIS_HEIGHT","XAxis","gridLineStyle","position","showGrid","showLine","showTickMark","ticks","ticksProp","tickLabelFormatter","getXScale","getXAxisConfig","drawingArea","theme","xScale","xAxisConfig","ticksData","width","isTop","axisY","y","height","fontSize","typographies","body4","tickDirection","labelY","labelDy","gridStroke","colors","border","mutedSubtle","lineStroke","muted","textFill","text","children","filter","tick","map","i","x1","y1","x2","y2","stroke","strokeWidth","strokeDasharray","undefined","value","x","strokeLinecap","dy","textAnchor","fill","fontFamily","fontFamilies","sans","label"],"sourceRoot":"../../../../../../src","sources":["lib/Components/Axis/XAxis/XAxis.tsx"],"mappings":"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","ignoreList":[]}
@@ -3,7 +3,7 @@
3
3
  import { useTheme } from '@ledgerhq/lumen-ui-rnative';
4
4
  import { useMemo } from 'react';
5
5
  import { G, Line as SvgLine, Text as SvgText } from 'react-native-svg';
6
- import { buildTicksData } from "../../../utils/ticks/ticks.js";
6
+ import { buildTicksData, isTickOnYAxisDomainEdge } from "../../../utils/ticks/ticks.js";
7
7
  import { useCartesianChartContext } from "../../CartesianChart/context/index.js";
8
8
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
9
9
  const STROKE_WIDTH = 1;
@@ -43,7 +43,7 @@ export const YAxis = ({
43
43
  const lineStroke = theme.colors.border.muted;
44
44
  const textFill = theme.colors.text.muted;
45
45
  return /*#__PURE__*/_jsxs(G, {
46
- children: [showGrid && ticksData.map((tick, i) => /*#__PURE__*/_jsx(SvgLine, {
46
+ children: [showGrid && ticksData.filter(tick => isTickOnYAxisDomainEdge(tick, drawingArea)).map((tick, i) => /*#__PURE__*/_jsx(SvgLine, {
47
47
  x1: drawingArea.x,
48
48
  y1: tick.position,
49
49
  x2: drawingArea.x + drawingArea.width,
@@ -1 +1 @@
1
- {"version":3,"names":["useTheme","useMemo","G","Line","SvgLine","Text","SvgText","buildTicksData","useCartesianChartContext","jsx","_jsx","jsxs","_jsxs","STROKE_WIDTH","TICK_MARK_SIZE","TICK_LABEL_OFFSET","DEFAULT_AXIS_WIDTH","YAxis","position","showGrid","showLine","showTickMark","gridLineStyle","ticks","ticksProp","tickLabelFormatter","getYScale","getYAxisConfig","drawingArea","theme","yScale","yAxisConfig","ticksData","height","isStart","axisX","x","width","tickDirection","labelX","fontSize","typographies","body4","labelDy","gridStroke","colors","border","mutedSubtle","lineStroke","muted","textFill","text","children","map","tick","i","x1","y1","x2","y2","stroke","strokeWidth","strokeDasharray","undefined","value","y","strokeLinecap","dy","textAnchor","fill","fontFamily","fontFamilies","sans","label"],"sourceRoot":"../../../../../../src","sources":["lib/Components/Axis/YAxis/YAxis.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useTheme","useMemo","G","Line","SvgLine","Text","SvgText","buildTicksData","isTickOnYAxisDomainEdge","useCartesianChartContext","jsx","_jsx","jsxs","_jsxs","STROKE_WIDTH","TICK_MARK_SIZE","TICK_LABEL_OFFSET","DEFAULT_AXIS_WIDTH","YAxis","position","showGrid","showLine","showTickMark","gridLineStyle","ticks","ticksProp","tickLabelFormatter","getYScale","getYAxisConfig","drawingArea","theme","yScale","yAxisConfig","ticksData","height","isStart","axisX","x","width","tickDirection","labelX","fontSize","typographies","body4","labelDy","gridStroke","colors","border","mutedSubtle","lineStroke","muted","textFill","text","children","filter","tick","map","i","x1","y1","x2","y2","stroke","strokeWidth","strokeDasharray","undefined","value","y","strokeLinecap","dy","textAnchor","fill","fontFamily","fontFamilies","sans","label"],"sourceRoot":"../../../../../../src","sources":["lib/Components/Axis/YAxis/YAxis.tsx"],"mappings":"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","ignoreList":[]}
@@ -217,8 +217,8 @@ describe('useBuildChartContext', () => {
217
217
  }
218
218
  })));
219
219
  const domain = result.current.getYScale().domain();
220
- expect(domain[0]).toBe(5);
221
- expect(domain[1]).toBe(35);
220
+ expect(domain[0]).toBe(0);
221
+ expect(domain[1]).toBe(40);
222
222
  });
223
223
  it('inverts Y range for SVG coordinates', () => {
224
224
  const {
@@ -1 +1 @@
1
- {"version":3,"names":["area","curveBumpX","line","isCategoricalScale","toScaledPoints","data","xScale","yScale","xData","pts","i","length","value","xInput","x","bandwidth","y","push","buildLinePath","points","d","curve","buildAreaPath","drawingArea","yBottom","height","y0","y1"],"sourceRoot":"../../../../../src","sources":["lib/Components/Line/utils.ts"],"mappings":";;AAAA,SAASA,IAAI,EAAEC,UAAU,EAAEC,IAAI,QAAQ,UAAU;AAEjD,SAASC,kBAAkB,QAAQ,8BAA2B;AAS9D;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,cAAc,GAAGA,CAC5BC,IAA0B,EAC1BC,MAA0B,EAC1BC,MAAoB,EACpBC,KAAsC,KACnB;EACnB,MAAMC,GAAY,GAAG,EAAE;EAEvB,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGL,IAAI,CAACM,MAAM,EAAED,CAAC,EAAE,EAAE;IACpC,MAAME,KAAK,GAAGP,IAAI,CAACK,CAAC,CAAC;IACrB,IAAIE,KAAK,KAAK,IAAI,EAAE;IAEpB,MAAMC,MAAM,GACVL,KAAK,IAAI,OAAOA,KAAK,CAACE,CAAC,CAAC,KAAK,QAAQ,GAAIF,KAAK,CAACE,CAAC,CAAC,GAAcA,CAAC;IAElE,MAAMI,CAAC,GAAGX,kBAAkB,CAACG,MAAM,CAAC,GAChC,CAACA,MAAM,CAACO,MAAM,CAAC,IAAI,CAAC,IAAIP,MAAM,CAACS,SAAS,CAAC,CAAC,GAAG,CAAC,GAC9CT,MAAM,CAACO,MAAM,CAAC;IAClB,MAAMG,CAAC,GAAGT,MAAM,CAACK,KAAK,CAAC;IAEvBH,GAAG,CAACQ,IAAI,CAAC,CAACH,CAAC,EAAYE,CAAC,CAAC,CAAC;EAC5B;EAEA,OAAOP,GAAG,CAACE,MAAM,IAAI,CAAC,GAAGF,GAAG,GAAG,IAAI;AACrC,CAAC;;AAED;AACA;AACA;AACA,OAAO,MAAMS,aAAa,GAAIC,MAAe,IAAoB;EAC/D,OACEjB,IAAI,CAAQ,CAAC,CACVY,CAAC,CAAEM,CAAC,IAAKA,CAAC,CAAC,CAAC,CAAC,CAAC,CACdJ,CAAC,CAAEI,CAAC,IAAKA,CAAC,CAAC,CAAC,CAAC,CAAC,CACdC,KAAK,CAACpB,UAAU,CAAC,CAACkB,MAAM,CAAC,IAAI,IAAI;AAExC,CAAC;;AAED;AACA;AACA;AACA,OAAO,MAAMG,aAAa,GAAGA,CAC3BH,MAAe,EACfI,WAAwB,KACN;EAClB,MAAMC,OAAO,GAAGD,WAAW,CAACP,CAAC,GAAGO,WAAW,CAACE,MAAM;EAElD,OACEzB,IAAI,CAAQ,CAAC,CACVc,CAAC,CAAEM,CAAC,IAAKA,CAAC,CAAC,CAAC,CAAC,CAAC,CACdM,EAAE,CAACF,OAAO,CAAC,CACXG,EAAE,CAAEP,CAAC,IAAKA,CAAC,CAAC,CAAC,CAAC,CAAC,CACfC,KAAK,CAACpB,UAAU,CAAC,CAACkB,MAAM,CAAC,IAAI,IAAI;AAExC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["area","curveBumpX","line","isCategoricalScale","toScaledPoints","data","xScale","yScale","xData","pts","i","length","value","xInput","x","bandwidth","y","push","buildLinePath","points","d","curve","buildAreaPath","drawingArea","yBottom","height","y0","y1"],"sourceRoot":"../../../../../src","sources":["lib/Components/Line/utils.ts"],"mappings":";;AAAA,SAASA,IAAI,EAAEC,UAAU,EAAEC,IAAI,QAAQ,UAAU;AAEjD,SAASC,kBAAkB,QAAQ,8BAA2B;AAS9D;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,cAAc,GAAGA,CAC5BC,IAAuB,EACvBC,MAA0B,EAC1BC,MAAoB,EACpBC,KAAoC,KACjB;EACnB,MAAMC,GAAY,GAAG,EAAE;EAEvB,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGL,IAAI,CAACM,MAAM,EAAED,CAAC,EAAE,EAAE;IACpC,MAAME,KAAK,GAAGP,IAAI,CAACK,CAAC,CAAC;IACrB,IAAIE,KAAK,KAAK,IAAI,EAAE;IAEpB,MAAMC,MAAM,GACVL,KAAK,IAAI,OAAOA,KAAK,CAACE,CAAC,CAAC,KAAK,QAAQ,GAAIF,KAAK,CAACE,CAAC,CAAC,GAAcA,CAAC;IAElE,MAAMI,CAAC,GAAGX,kBAAkB,CAACG,MAAM,CAAC,GAChC,CAACA,MAAM,CAACO,MAAM,CAAC,IAAI,CAAC,IAAIP,MAAM,CAACS,SAAS,CAAC,CAAC,GAAG,CAAC,GAC9CT,MAAM,CAACO,MAAM,CAAC;IAClB,MAAMG,CAAC,GAAGT,MAAM,CAACK,KAAK,CAAC;IAEvBH,GAAG,CAACQ,IAAI,CAAC,CAACH,CAAC,EAAYE,CAAC,CAAC,CAAC;EAC5B;EAEA,OAAOP,GAAG,CAACE,MAAM,IAAI,CAAC,GAAGF,GAAG,GAAG,IAAI;AACrC,CAAC;;AAED;AACA;AACA;AACA,OAAO,MAAMS,aAAa,GAAIC,MAAe,IAAoB;EAC/D,OACEjB,IAAI,CAAQ,CAAC,CACVY,CAAC,CAAEM,CAAC,IAAKA,CAAC,CAAC,CAAC,CAAC,CAAC,CACdJ,CAAC,CAAEI,CAAC,IAAKA,CAAC,CAAC,CAAC,CAAC,CAAC,CACdC,KAAK,CAACpB,UAAU,CAAC,CAACkB,MAAM,CAAC,IAAI,IAAI;AAExC,CAAC;;AAED;AACA;AACA;AACA,OAAO,MAAMG,aAAa,GAAGA,CAC3BH,MAAe,EACfI,WAAwB,KACN;EAClB,MAAMC,OAAO,GAAGD,WAAW,CAACP,CAAC,GAAGO,WAAW,CAACE,MAAM;EAElD,OACEzB,IAAI,CAAQ,CAAC,CACVc,CAAC,CAAEM,CAAC,IAAKA,CAAC,CAAC,CAAC,CAAC,CAAC,CACdM,EAAE,CAACF,OAAO,CAAC,CACXG,EAAE,CAAEP,CAAC,IAAKA,CAAC,CAAC,CAAC,CAAC,CAAC,CACfC,KAAK,CAACpB,UAAU,CAAC,CAACkB,MAAM,CAAC,IAAI,IAAI;AAExC,CAAC","ignoreList":[]}
@@ -1,13 +1,17 @@
1
1
  "use strict";
2
2
 
3
3
  import { scaleBand, scaleLinear, scaleLog } from 'd3-scale';
4
+ /**
5
+ * Creates a numeric scale with `.nice()` applied so the domain
6
+ * extends to clean rounded boundaries (e.g. `[4, 98]` → `[0, 100]`).
7
+ */
4
8
  export const getNumericScale = ({
5
9
  scaleType,
6
10
  domain,
7
11
  range
8
12
  }) => {
9
13
  const scale = scaleType === 'log' ? scaleLog() : scaleLinear();
10
- return scale.domain([domain.min, domain.max]).range([range.min, range.max]);
14
+ return scale.domain([domain.min, domain.max]).nice().range([range.min, range.max]);
11
15
  };
12
16
  export const getCategoricalScale = ({
13
17
  domain,
@@ -1 +1 @@
1
- {"version":3,"names":["scaleBand","scaleLinear","scaleLog","getNumericScale","scaleType","domain","range","scale","min","max","getCategoricalScale","padding","domainArray","Array","from","length","_","i","paddingInner","paddingOuter","isBandScaleType","isCategoricalScale","bandwidth","isNumericScale"],"sourceRoot":"../../../../../src","sources":["lib/utils/scales/scales.ts"],"mappings":";;AAAA,SAASA,SAAS,EAAEC,WAAW,EAAEC,QAAQ,QAAQ,UAAU;AAU3D,OAAO,MAAMC,eAAe,GAAGA,CAAC;EAC9BC,SAAS;EACTC,MAAM;EACNC;AAKF,CAAC,KAAmB;EAClB,MAAMC,KAAK,GAAGH,SAAS,KAAK,KAAK,GAAGF,QAAQ,CAAC,CAAC,GAAGD,WAAW,CAAC,CAAC;EAC9D,OAAOM,KAAK,CAACF,MAAM,CAAC,CAACA,MAAM,CAACG,GAAG,EAAEH,MAAM,CAACI,GAAG,CAAC,CAAC,CAACH,KAAK,CAAC,CAACA,KAAK,CAACE,GAAG,EAAEF,KAAK,CAACG,GAAG,CAAC,CAAC;AAC7E,CAAC;AAED,OAAO,MAAMC,mBAAmB,GAAGA,CAAC;EAClCL,MAAM;EACNC,KAAK;EACLK,OAAO,GAAG;AAKZ,CAAC,KAAuB;EACtB,MAAMC,WAAW,GAAGC,KAAK,CAACC,IAAI,CAC5B;IAAEC,MAAM,EAAEV,MAAM,CAACI,GAAG,GAAGJ,MAAM,CAACG,GAAG,GAAG;EAAE,CAAC,EACvC,CAACQ,CAAC,EAAEC,CAAC,KAAKZ,MAAM,CAACG,GAAG,GAAGS,CACzB,CAAC;EACD,OAAOjB,SAAS,CAAS,CAAC,CACvBK,MAAM,CAACO,WAAW,CAAC,CACnBN,KAAK,CAAC,CAACA,KAAK,CAACE,GAAG,EAAEF,KAAK,CAACG,GAAG,CAAC,CAAC,CAC7BS,YAAY,CAACP,OAAO,CAAC,CACrBQ,YAAY,CAACR,OAAO,GAAG,CAAC,CAAC;AAC9B,CAAC;;AAED;AACA;AACA;AACA,OAAO,MAAMS,eAAe,GAC1BhB,SAAuC,IACfA,SAAS,KAAK,MAAM;;AAE9C;AACA;AACA;AACA,OAAO,MAAMiB,kBAAkB,GAC7Bd,KAAyB,IACK;EAC9B,OAAO,WAAW,IAAIA,KAAK,IAAI,OAAOA,KAAK,CAACe,SAAS,KAAK,UAAU;AACtE,CAAC;;AAED;AACA;AACA;AACA,OAAO,MAAMC,cAAc,GACzBhB,KAAyB,IACC;EAC1B,OAAO,CAACc,kBAAkB,CAACd,KAAK,CAAC;AACnC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["scaleBand","scaleLinear","scaleLog","getNumericScale","scaleType","domain","range","scale","min","max","nice","getCategoricalScale","padding","domainArray","Array","from","length","_","i","paddingInner","paddingOuter","isBandScaleType","isCategoricalScale","bandwidth","isNumericScale"],"sourceRoot":"../../../../../src","sources":["lib/utils/scales/scales.ts"],"mappings":";;AAAA,SAASA,SAAS,EAAEC,WAAW,EAAEC,QAAQ,QAAQ,UAAU;AAU3D;AACA;AACA;AACA;AACA,OAAO,MAAMC,eAAe,GAAGA,CAAC;EAC9BC,SAAS;EACTC,MAAM;EACNC;AAKF,CAAC,KAAmB;EAClB,MAAMC,KAAK,GAAGH,SAAS,KAAK,KAAK,GAAGF,QAAQ,CAAC,CAAC,GAAGD,WAAW,CAAC,CAAC;EAC9D,OAAOM,KAAK,CACTF,MAAM,CAAC,CAACA,MAAM,CAACG,GAAG,EAAEH,MAAM,CAACI,GAAG,CAAC,CAAC,CAChCC,IAAI,CAAC,CAAC,CACNJ,KAAK,CAAC,CAACA,KAAK,CAACE,GAAG,EAAEF,KAAK,CAACG,GAAG,CAAC,CAAC;AAClC,CAAC;AAED,OAAO,MAAME,mBAAmB,GAAGA,CAAC;EAClCN,MAAM;EACNC,KAAK;EACLM,OAAO,GAAG;AAKZ,CAAC,KAAuB;EACtB,MAAMC,WAAW,GAAGC,KAAK,CAACC,IAAI,CAC5B;IAAEC,MAAM,EAAEX,MAAM,CAACI,GAAG,GAAGJ,MAAM,CAACG,GAAG,GAAG;EAAE,CAAC,EACvC,CAACS,CAAC,EAAEC,CAAC,KAAKb,MAAM,CAACG,GAAG,GAAGU,CACzB,CAAC;EACD,OAAOlB,SAAS,CAAS,CAAC,CACvBK,MAAM,CAACQ,WAAW,CAAC,CACnBP,KAAK,CAAC,CAACA,KAAK,CAACE,GAAG,EAAEF,KAAK,CAACG,GAAG,CAAC,CAAC,CAC7BU,YAAY,CAACP,OAAO,CAAC,CACrBQ,YAAY,CAACR,OAAO,GAAG,CAAC,CAAC;AAC9B,CAAC;;AAED;AACA;AACA;AACA,OAAO,MAAMS,eAAe,GAC1BjB,SAAuC,IACfA,SAAS,KAAK,MAAM;;AAE9C;AACA;AACA;AACA,OAAO,MAAMkB,kBAAkB,GAC7Bf,KAAyB,IACK;EAC9B,OAAO,WAAW,IAAIA,KAAK,IAAI,OAAOA,KAAK,CAACgB,SAAS,KAAK,UAAU;AACtE,CAAC;;AAED;AACA;AACA;AACA,OAAO,MAAMC,cAAc,GACzBjB,KAAyB,IACC;EAC1B,OAAO,CAACe,kBAAkB,CAACf,KAAK,CAAC;AACnC,CAAC","ignoreList":[]}
@@ -52,4 +52,20 @@ export const buildTicksData = (scale, axisConfig, explicitTicks, formatter) => {
52
52
  label: getTickLabel(tick, axisData, formatter)
53
53
  }));
54
54
  };
55
+
56
+ /**
57
+ * Excludes the X grid line at the Y-axis origin (left edge)
58
+ * to prevent overlap with the Y-axis solid line.
59
+ */
60
+ export const isTickOnXAxisDomainEdge = (tick, drawingArea) => {
61
+ return tick.position !== drawingArea.x;
62
+ };
63
+
64
+ /**
65
+ * Excludes the Y grid line at the X-axis origin (bottom edge)
66
+ * to prevent overlap with the X-axis solid line.
67
+ */
68
+ export const isTickOnYAxisDomainEdge = (tick, drawingArea) => {
69
+ return tick.position !== drawingArea.y + drawingArea.height;
70
+ };
55
71
  //# sourceMappingURL=ticks.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["isCategoricalScale","isNumericScale","APPROXIMATE_TICK_COUNT","getTickValues","scale","explicitTicks","domain","ticks","getTickPosition","tick","bandwidth","getTickLabel","axisData","formatter","hasStringLabels","Array","isArray","rawValue","undefined","String","buildTicksData","axisConfig","tickValues","data","map","position","value","label"],"sourceRoot":"../../../../../src","sources":["lib/utils/ticks/ticks.ts"],"mappings":";;AAAA,SAASA,kBAAkB,EAAEC,cAAc,QAAQ,qBAAkB;AAGrE,OAAO,MAAMC,sBAAsB,GAAG,CAAC;AAQvC;AACA;AACA;AACA;AACA,OAAO,MAAMC,aAAa,GAAGA,CAC3BC,KAAyB,EACzBC,aAAwB,KACX;EACb,IAAIA,aAAa,EAAE,OAAOA,aAAa;EACvC,IAAIL,kBAAkB,CAACI,KAAK,CAAC,EAAE,OAAOA,KAAK,CAACE,MAAM,CAAC,CAAC;EACpD,IAAIL,cAAc,CAACG,KAAK,CAAC,EAAE,OAAOA,KAAK,CAACG,KAAK,CAACL,sBAAsB,CAAC;EACrE,OAAO,EAAE;AACX,CAAC;;AAED;AACA;AACA;AACA;AACA,OAAO,MAAMM,eAAe,GAAGA,CAC7BJ,KAAyB,EACzBK,IAAY,KACD;EACX,IAAIT,kBAAkB,CAACI,KAAK,CAAC,EAAE;IAC7B,OAAO,CAACA,KAAK,CAACK,IAAI,CAAC,IAAI,CAAC,IAAIL,KAAK,CAACM,SAAS,CAAC,CAAC,GAAG,CAAC;EACnD;EACA,OAAQN,KAAK,CAA2BK,IAAI,CAAC;AAC/C,CAAC;;AAED;AACA;AACA;AACA;AACA,OAAO,MAAME,YAAY,GAAGA,CAC1BF,IAAY,EACZG,QAAiC,EACjCC,SAA8C,KACnC;EACX,MAAMC,eAAe,GACnBF,QAAQ,IAAIG,KAAK,CAACC,OAAO,CAACJ,QAAQ,CAAC,IAAI,OAAOA,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ;EAExE,IAAIC,SAAS,EAAE;IACb,MAAMI,QAAQ,GACZH,eAAe,IAAIF,QAAQ,CAACH,IAAI,CAAC,KAAKS,SAAS,GAAGN,QAAQ,CAACH,IAAI,CAAC,GAAGA,IAAI;IACzE,OAAOU,MAAM,CAACN,SAAS,CAACI,QAA2B,CAAC,CAAC;EACvD;EAEA,IAAIH,eAAe,IAAIF,QAAQ,CAACH,IAAI,CAAC,KAAKS,SAAS,EAAE;IACnD,OAAOC,MAAM,CAACP,QAAQ,CAACH,IAAI,CAAC,CAAC;EAC/B;EAEA,OAAOU,MAAM,CAACV,IAAI,CAAC;AACrB,CAAC;;AAED;AACA;AACA;AACA,OAAO,MAAMW,cAAc,GAAGA,CAC5BhB,KAAyB,EACzBiB,UAA4B,EAC5BhB,aAAwB,EACxBQ,SAA8C,KAC/B;EACf,MAAMS,UAAU,GAAGnB,aAAa,CAACC,KAAK,EAAEC,aAAa,CAAC;EACtD,MAAMO,QAAQ,GAAGS,UAAU,EAAEE,IAAI;EAEjC,OAAOD,UAAU,CAACE,GAAG,CAAEf,IAAI,KAAM;IAC/BgB,QAAQ,EAAEjB,eAAe,CAACJ,KAAK,EAAEK,IAAI,CAAC;IACtCiB,KAAK,EAAEjB,IAAI;IACXkB,KAAK,EAAEhB,YAAY,CAACF,IAAI,EAAEG,QAAQ,EAAEC,SAAS;EAC/C,CAAC,CAAC,CAAC;AACL,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["isCategoricalScale","isNumericScale","APPROXIMATE_TICK_COUNT","getTickValues","scale","explicitTicks","domain","ticks","getTickPosition","tick","bandwidth","getTickLabel","axisData","formatter","hasStringLabels","Array","isArray","rawValue","undefined","String","buildTicksData","axisConfig","tickValues","data","map","position","value","label","isTickOnXAxisDomainEdge","drawingArea","x","isTickOnYAxisDomainEdge","y","height"],"sourceRoot":"../../../../../src","sources":["lib/utils/ticks/ticks.ts"],"mappings":";;AAAA,SAASA,kBAAkB,EAAEC,cAAc,QAAQ,qBAAkB;AAOrE,OAAO,MAAMC,sBAAsB,GAAG,CAAC;AAQvC;AACA;AACA;AACA;AACA,OAAO,MAAMC,aAAa,GAAGA,CAC3BC,KAAyB,EACzBC,aAAwB,KACX;EACb,IAAIA,aAAa,EAAE,OAAOA,aAAa;EACvC,IAAIL,kBAAkB,CAACI,KAAK,CAAC,EAAE,OAAOA,KAAK,CAACE,MAAM,CAAC,CAAC;EACpD,IAAIL,cAAc,CAACG,KAAK,CAAC,EAAE,OAAOA,KAAK,CAACG,KAAK,CAACL,sBAAsB,CAAC;EACrE,OAAO,EAAE;AACX,CAAC;;AAED;AACA;AACA;AACA;AACA,OAAO,MAAMM,eAAe,GAAGA,CAC7BJ,KAAyB,EACzBK,IAAY,KACD;EACX,IAAIT,kBAAkB,CAACI,KAAK,CAAC,EAAE;IAC7B,OAAO,CAACA,KAAK,CAACK,IAAI,CAAC,IAAI,CAAC,IAAIL,KAAK,CAACM,SAAS,CAAC,CAAC,GAAG,CAAC;EACnD;EACA,OAAQN,KAAK,CAA2BK,IAAI,CAAC;AAC/C,CAAC;;AAED;AACA;AACA;AACA;AACA,OAAO,MAAME,YAAY,GAAGA,CAC1BF,IAAY,EACZG,QAAiC,EACjCC,SAA8C,KACnC;EACX,MAAMC,eAAe,GACnBF,QAAQ,IAAIG,KAAK,CAACC,OAAO,CAACJ,QAAQ,CAAC,IAAI,OAAOA,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ;EAExE,IAAIC,SAAS,EAAE;IACb,MAAMI,QAAQ,GACZH,eAAe,IAAIF,QAAQ,CAACH,IAAI,CAAC,KAAKS,SAAS,GAAGN,QAAQ,CAACH,IAAI,CAAC,GAAGA,IAAI;IACzE,OAAOU,MAAM,CAACN,SAAS,CAACI,QAA2B,CAAC,CAAC;EACvD;EAEA,IAAIH,eAAe,IAAIF,QAAQ,CAACH,IAAI,CAAC,KAAKS,SAAS,EAAE;IACnD,OAAOC,MAAM,CAACP,QAAQ,CAACH,IAAI,CAAC,CAAC;EAC/B;EAEA,OAAOU,MAAM,CAACV,IAAI,CAAC;AACrB,CAAC;;AAED;AACA;AACA;AACA,OAAO,MAAMW,cAAc,GAAGA,CAC5BhB,KAAyB,EACzBiB,UAA4B,EAC5BhB,aAAwB,EACxBQ,SAA8C,KAC/B;EACf,MAAMS,UAAU,GAAGnB,aAAa,CAACC,KAAK,EAAEC,aAAa,CAAC;EACtD,MAAMO,QAAQ,GAAGS,UAAU,EAAEE,IAAI;EAEjC,OAAOD,UAAU,CAACE,GAAG,CAAEf,IAAI,KAAM;IAC/BgB,QAAQ,EAAEjB,eAAe,CAACJ,KAAK,EAAEK,IAAI,CAAC;IACtCiB,KAAK,EAAEjB,IAAI;IACXkB,KAAK,EAAEhB,YAAY,CAACF,IAAI,EAAEG,QAAQ,EAAEC,SAAS;EAC/C,CAAC,CAAC,CAAC;AACL,CAAC;;AAED;AACA;AACA;AACA;AACA,OAAO,MAAMe,uBAAuB,GAAGA,CACrCnB,IAAc,EACdoB,WAAwB,KACZ;EACZ,OAAOpB,IAAI,CAACgB,QAAQ,KAAKI,WAAW,CAACC,CAAC;AACxC,CAAC;;AAED;AACA;AACA;AACA;AACA,OAAO,MAAMC,uBAAuB,GAAGA,CACrCtB,IAAc,EACdoB,WAAwB,KACZ;EACZ,OAAOpB,IAAI,CAACgB,QAAQ,KAAKI,WAAW,CAACG,CAAC,GAAGH,WAAW,CAACI,MAAM;AAC7D,CAAC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"XAxis.d.ts","sourceRoot":"","sources":["../../../../../../../src/lib/Components/Axis/XAxis/XAxis.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAK1C,eAAO,MAAM,mBAAmB,KAAK,CAAC;AAEtC,eAAO,MAAM,KAAK,GAAI,sGAQnB,UAAU,mDAwFZ,CAAC"}
1
+ {"version":3,"file":"XAxis.d.ts","sourceRoot":"","sources":["../../../../../../../src/lib/Components/Axis/XAxis/XAxis.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAK1C,eAAO,MAAM,mBAAmB,KAAK,CAAC;AAEtC,eAAO,MAAM,KAAK,GAAI,sGAQnB,UAAU,mDA0FZ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"YAxis.d.ts","sourceRoot":"","sources":["../../../../../../../src/lib/Components/Axis/YAxis/YAxis.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAK1C,eAAO,MAAM,kBAAkB,KAAK,CAAC;AAErC,eAAO,MAAM,KAAK,GAAI,sGAQnB,UAAU,mDAuFZ,CAAC"}
1
+ {"version":3,"file":"YAxis.d.ts","sourceRoot":"","sources":["../../../../../../../src/lib/Components/Axis/YAxis/YAxis.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAK1C,eAAO,MAAM,kBAAkB,KAAK,CAAC;AAErC,eAAO,MAAM,KAAK,GAAI,sGAQnB,UAAU,mDAyFZ,CAAC"}
@@ -6,7 +6,7 @@ type Point = [x: number, y: number];
6
6
  * When `xData` contains numeric values, those values are fed into the scale
7
7
  * instead of the array index so the points honour a numeric X domain.
8
8
  */
9
- export declare const toScaledPoints: (data: Array<number | null>, xScale: ChartScaleFunction, yScale: NumericScale, xData?: ReadonlyArray<string | number>) => Point[] | null;
9
+ export declare const toScaledPoints: (data: (number | null)[], xScale: ChartScaleFunction, yScale: NumericScale, xData?: readonly (string | number)[]) => Point[] | null;
10
10
  /**
11
11
  * Build the SVG `d` attribute for the line stroke.
12
12
  */
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../../src/lib/Components/Line/utils.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,kBAAkB,EAClB,WAAW,EACX,YAAY,EACb,MAAM,mBAAmB,CAAC;AAE3B,KAAK,KAAK,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;AAEpC;;;;;GAKG;AACH,eAAO,MAAM,cAAc,GACzB,MAAM,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,EAC1B,QAAQ,kBAAkB,EAC1B,QAAQ,YAAY,EACpB,QAAQ,aAAa,CAAC,MAAM,GAAG,MAAM,CAAC,KACrC,KAAK,EAAE,GAAG,IAmBZ,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,aAAa,GAAI,QAAQ,KAAK,EAAE,KAAG,MAAM,GAAG,IAOxD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,aAAa,GACxB,QAAQ,KAAK,EAAE,EACf,aAAa,WAAW,KACvB,MAAM,GAAG,IAUX,CAAC"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../../src/lib/Components/Line/utils.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,kBAAkB,EAClB,WAAW,EACX,YAAY,EACb,MAAM,mBAAmB,CAAC;AAE3B,KAAK,KAAK,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;AAEpC;;;;;GAKG;AACH,eAAO,MAAM,cAAc,GACzB,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,EACvB,QAAQ,kBAAkB,EAC1B,QAAQ,YAAY,EACpB,QAAQ,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,KACnC,KAAK,EAAE,GAAG,IAmBZ,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,aAAa,GAAI,QAAQ,KAAK,EAAE,KAAG,MAAM,GAAG,IAOxD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,aAAa,GACxB,QAAQ,KAAK,EAAE,EACf,aAAa,WAAW,KACvB,MAAM,GAAG,IAUX,CAAC"}
@@ -1,4 +1,8 @@
1
1
  import type { AxisBounds, AxisConfigProps, CategoricalScale, ChartScaleFunction, NumericScale } from '../types';
2
+ /**
3
+ * Creates a numeric scale with `.nice()` applied so the domain
4
+ * extends to clean rounded boundaries (e.g. `[4, 98]` → `[0, 100]`).
5
+ */
2
6
  export declare const getNumericScale: ({ scaleType, domain, range, }: {
3
7
  scaleType: "linear" | "log";
4
8
  domain: AxisBounds;
@@ -1 +1 @@
1
- {"version":3,"file":"scales.d.ts","sourceRoot":"","sources":["../../../../../../src/lib/utils/scales/scales.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,UAAU,EACV,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,YAAY,EACb,MAAM,UAAU,CAAC;AAElB,eAAO,MAAM,eAAe,GAAI,+BAI7B;IACD,SAAS,EAAE,QAAQ,GAAG,KAAK,CAAC;IAC5B,MAAM,EAAE,UAAU,CAAC;IACnB,KAAK,EAAE,UAAU,CAAC;CACnB,KAAG,YAGH,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAAI,6BAIjC;IACD,MAAM,EAAE,UAAU,CAAC;IACnB,KAAK,EAAE,UAAU,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,KAAG,gBAUH,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,GAC1B,WAAW,eAAe,CAAC,WAAW,CAAC,KACtC,SAAS,IAAI,MAA8B,CAAC;AAE/C;;GAEG;AACH,eAAO,MAAM,kBAAkB,GAC7B,OAAO,kBAAkB,KACxB,KAAK,IAAI,gBAEX,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,GACzB,OAAO,kBAAkB,KACxB,KAAK,IAAI,YAEX,CAAC"}
1
+ {"version":3,"file":"scales.d.ts","sourceRoot":"","sources":["../../../../../../src/lib/utils/scales/scales.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,UAAU,EACV,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,YAAY,EACb,MAAM,UAAU,CAAC;AAElB;;;GAGG;AACH,eAAO,MAAM,eAAe,GAAI,+BAI7B;IACD,SAAS,EAAE,QAAQ,GAAG,KAAK,CAAC;IAC5B,MAAM,EAAE,UAAU,CAAC;IACnB,KAAK,EAAE,UAAU,CAAC;CACnB,KAAG,YAMH,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAAI,6BAIjC;IACD,MAAM,EAAE,UAAU,CAAC;IACnB,KAAK,EAAE,UAAU,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,KAAG,gBAUH,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,GAC1B,WAAW,eAAe,CAAC,WAAW,CAAC,KACtC,SAAS,IAAI,MAA8B,CAAC;AAE/C;;GAEG;AACH,eAAO,MAAM,kBAAkB,GAC7B,OAAO,kBAAkB,KACxB,KAAK,IAAI,gBAEX,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,GACzB,OAAO,kBAAkB,KACxB,KAAK,IAAI,YAEX,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { AxisConfigProps, ChartScaleFunction } from '../types';
1
+ import type { AxisConfigProps, ChartScaleFunction, DrawingArea } from '../types';
2
2
  export declare const APPROXIMATE_TICK_COUNT = 5;
3
3
  export type TickData = {
4
4
  position: number;
@@ -24,4 +24,14 @@ export declare const getTickLabel: (tick: number, axisData: AxisConfigProps["dat
24
24
  * Builds the complete tick data array from a scale and axis configuration.
25
25
  */
26
26
  export declare const buildTicksData: (scale: ChartScaleFunction, axisConfig?: AxisConfigProps, explicitTicks?: number[], formatter?: (value: number | string) => string) => TickData[];
27
+ /**
28
+ * Excludes the X grid line at the Y-axis origin (left edge)
29
+ * to prevent overlap with the Y-axis solid line.
30
+ */
31
+ export declare const isTickOnXAxisDomainEdge: (tick: TickData, drawingArea: DrawingArea) => boolean;
32
+ /**
33
+ * Excludes the Y grid line at the X-axis origin (bottom edge)
34
+ * to prevent overlap with the X-axis solid line.
35
+ */
36
+ export declare const isTickOnYAxisDomainEdge: (tick: TickData, drawingArea: DrawingArea) => boolean;
27
37
  //# sourceMappingURL=ticks.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ticks.d.ts","sourceRoot":"","sources":["../../../../../../src/lib/utils/ticks/ticks.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAEpE,eAAO,MAAM,sBAAsB,IAAI,CAAC;AAExC,MAAM,MAAM,QAAQ,GAAG;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,aAAa,GACxB,OAAO,kBAAkB,EACzB,gBAAgB,MAAM,EAAE,KACvB,MAAM,EAKR,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,eAAe,GAC1B,OAAO,kBAAkB,EACzB,MAAM,MAAM,KACX,MAKF,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,YAAY,GACvB,MAAM,MAAM,EACZ,UAAU,eAAe,CAAC,MAAM,CAAC,EACjC,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,KAAK,MAAM,KAC7C,MAeF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,GACzB,OAAO,kBAAkB,EACzB,aAAa,eAAe,EAC5B,gBAAgB,MAAM,EAAE,EACxB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,KAAK,MAAM,KAC7C,QAAQ,EASV,CAAC"}
1
+ {"version":3,"file":"ticks.d.ts","sourceRoot":"","sources":["../../../../../../src/lib/utils/ticks/ticks.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,eAAe,EACf,kBAAkB,EAClB,WAAW,EACZ,MAAM,UAAU,CAAC;AAElB,eAAO,MAAM,sBAAsB,IAAI,CAAC;AAExC,MAAM,MAAM,QAAQ,GAAG;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,aAAa,GACxB,OAAO,kBAAkB,EACzB,gBAAgB,MAAM,EAAE,KACvB,MAAM,EAKR,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,eAAe,GAC1B,OAAO,kBAAkB,EACzB,MAAM,MAAM,KACX,MAKF,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,YAAY,GACvB,MAAM,MAAM,EACZ,UAAU,eAAe,CAAC,MAAM,CAAC,EACjC,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,KAAK,MAAM,KAC7C,MAeF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,GACzB,OAAO,kBAAkB,EACzB,aAAa,eAAe,EAC5B,gBAAgB,MAAM,EAAE,EACxB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,KAAK,MAAM,KAC7C,QAAQ,EASV,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,uBAAuB,GAClC,MAAM,QAAQ,EACd,aAAa,WAAW,KACvB,OAEF,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,uBAAuB,GAClC,MAAM,QAAQ,EACd,aAAa,WAAW,KACvB,OAEF,CAAC"}
@@ -26,7 +26,7 @@ export type Series = {
26
26
  /**
27
27
  * Numeric data points; `null` entries represent gaps.
28
28
  */
29
- data?: Array<number | null>;
29
+ data?: (number | null)[];
30
30
  /**
31
31
  * Human-readable label used in legends and tooltips.
32
32
  */
@@ -52,6 +52,9 @@ export type AxisConfigProps = {
52
52
  * Fixed domain bounds or a function that adjusts the computed bounds.
53
53
  * A partial object overrides only the specified bound(s).
54
54
  * A function receives the auto-computed bounds and returns adjusted ones.
55
+ *
56
+ * The final domain is always rounded to nice boundaries via d3's `.nice()`,
57
+ * ensuring tick marks land on clean values (e.g. `[4, 98]` becomes `[0, 100]`).
55
58
  */
56
59
  domain?: Partial<AxisBounds> | ((bounds: AxisBounds) => AxisBounds);
57
60
  };
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/lib/utils/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAEzE,MAAM,MAAM,UAAU,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtD,MAAM,MAAM,UAAU,GAAG;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,MAAM,GAAG;IACnB;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IACX;;OAEG;IACH,IAAI,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC5B;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B;;;OAGG;IACH,SAAS,CAAC,EAAE,QAAQ,GAAG,KAAK,GAAG,MAAM,CAAC;IACtC;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;IAC3B;;;;OAIG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,UAAU,KAAK,UAAU,CAAC,CAAC;CACrE,CAAC;AAEF,MAAM,MAAM,YAAY,GACpB,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,GAC3B,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAErC,MAAM,MAAM,gBAAgB,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;AAEjD,MAAM,MAAM,kBAAkB,GAAG,YAAY,GAAG,gBAAgB,CAAC;AAEjE,MAAM,MAAM,0BAA0B,GAAG;IACvC;;OAEG;IACH,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB;;OAEG;IACH,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B;;OAEG;IACH,SAAS,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,KAAK,kBAAkB,GAAG,SAAS,CAAC;IAC3D;;OAEG;IACH,SAAS,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,KAAK,kBAAkB,GAAG,SAAS,CAAC;IAC3D;;OAEG;IACH,cAAc,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,KAAK,eAAe,GAAG,SAAS,CAAC;IAC7D;;OAEG;IACH,cAAc,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,KAAK,eAAe,GAAG,SAAS,CAAC;IAC7D;;OAEG;IACH,WAAW,EAAE,WAAW,CAAC;IACzB;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/lib/utils/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAEzE,MAAM,MAAM,UAAU,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtD,MAAM,MAAM,UAAU,GAAG;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,MAAM,GAAG;IACnB;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IACX;;OAEG;IACH,IAAI,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC;IACzB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B;;;OAGG;IACH,SAAS,CAAC,EAAE,QAAQ,GAAG,KAAK,GAAG,MAAM,CAAC;IACtC;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;IAC3B;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,UAAU,KAAK,UAAU,CAAC,CAAC;CACrE,CAAC;AAEF,MAAM,MAAM,YAAY,GACpB,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,GAC3B,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAErC,MAAM,MAAM,gBAAgB,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;AAEjD,MAAM,MAAM,kBAAkB,GAAG,YAAY,GAAG,gBAAgB,CAAC;AAEjE,MAAM,MAAM,0BAA0B,GAAG;IACvC;;OAEG;IACH,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB;;OAEG;IACH,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B;;OAEG;IACH,SAAS,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,KAAK,kBAAkB,GAAG,SAAS,CAAC;IAC3D;;OAEG;IACH,SAAS,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,KAAK,kBAAkB,GAAG,SAAS,CAAC;IAC3D;;OAEG;IACH,cAAc,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,KAAK,eAAe,GAAG,SAAS,CAAC;IAC7D;;OAEG;IACH,cAAc,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,KAAK,eAAe,GAAG,SAAS,CAAC;IAC7D;;OAEG;IACH,WAAW,EAAE,WAAW,CAAC;IACzB;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ledgerhq/lumen-ui-rnative-visualization",
3
- "version": "0.1.3",
3
+ "version": "0.1.5",
4
4
  "license": "Apache-2.0",
5
5
  "sideEffects": false,
6
6
  "keywords": [
@@ -44,8 +44,8 @@
44
44
  },
45
45
  "peerDependencies": {
46
46
  "@types/react": "^19.0.0",
47
- "@ledgerhq/lumen-design-core": "0.1.11",
48
- "@ledgerhq/lumen-ui-rnative": "0.1.26",
47
+ "@ledgerhq/lumen-design-core": "0.1.12",
48
+ "@ledgerhq/lumen-ui-rnative": "0.1.28",
49
49
  "react": "^19.0.0",
50
50
  "react-native": "~0.79.7",
51
51
  "react-native-svg": "^15.0.0"
@@ -2,7 +2,10 @@ import { useTheme } from '@ledgerhq/lumen-ui-rnative';
2
2
  import { useMemo } from 'react';
3
3
  import { G, Line as SvgLine, Text as SvgText } from 'react-native-svg';
4
4
 
5
- import { buildTicksData } from '../../../utils/ticks/ticks';
5
+ import {
6
+ buildTicksData,
7
+ isTickOnXAxisDomainEdge,
8
+ } from '../../../utils/ticks/ticks';
6
9
  import { useCartesianChartContext } from '../../CartesianChart/context';
7
10
 
8
11
  import type { XAxisProps } from './types';
@@ -54,18 +57,20 @@ export const XAxis = ({
54
57
  return (
55
58
  <G>
56
59
  {showGrid &&
57
- ticksData.map((tick, i) => (
58
- <SvgLine
59
- key={`grid-${tick.value}-${i}`}
60
- x1={tick.position}
61
- y1={drawingArea.y}
62
- x2={tick.position}
63
- y2={drawingArea.y + drawingArea.height}
64
- stroke={gridStroke}
65
- strokeWidth={STROKE_WIDTH}
66
- strokeDasharray={gridLineStyle === 'dashed' ? '3 3' : undefined}
67
- />
68
- ))}
60
+ ticksData
61
+ .filter((tick) => isTickOnXAxisDomainEdge(tick, drawingArea))
62
+ .map((tick, i) => (
63
+ <SvgLine
64
+ key={`grid-${tick.value}-${i}`}
65
+ x1={tick.position}
66
+ y1={drawingArea.y}
67
+ x2={tick.position}
68
+ y2={drawingArea.y + drawingArea.height}
69
+ stroke={gridStroke}
70
+ strokeWidth={STROKE_WIDTH}
71
+ strokeDasharray={gridLineStyle === 'dashed' ? '3 3' : undefined}
72
+ />
73
+ ))}
69
74
 
70
75
  {showLine && (
71
76
  <SvgLine
@@ -2,7 +2,10 @@ import { useTheme } from '@ledgerhq/lumen-ui-rnative';
2
2
  import { useMemo } from 'react';
3
3
  import { G, Line as SvgLine, Text as SvgText } from 'react-native-svg';
4
4
 
5
- import { buildTicksData } from '../../../utils/ticks/ticks';
5
+ import {
6
+ buildTicksData,
7
+ isTickOnYAxisDomainEdge,
8
+ } from '../../../utils/ticks/ticks';
6
9
  import { useCartesianChartContext } from '../../CartesianChart/context';
7
10
 
8
11
  import type { YAxisProps } from './types';
@@ -53,18 +56,20 @@ export const YAxis = ({
53
56
  return (
54
57
  <G>
55
58
  {showGrid &&
56
- ticksData.map((tick, i) => (
57
- <SvgLine
58
- key={`grid-${tick.value}-${i}`}
59
- x1={drawingArea.x}
60
- y1={tick.position}
61
- x2={drawingArea.x + drawingArea.width}
62
- y2={tick.position}
63
- stroke={gridStroke}
64
- strokeWidth={STROKE_WIDTH}
65
- strokeDasharray={gridLineStyle === 'dashed' ? '3 3' : undefined}
66
- />
67
- ))}
59
+ ticksData
60
+ .filter((tick) => isTickOnYAxisDomainEdge(tick, drawingArea))
61
+ .map((tick, i) => (
62
+ <SvgLine
63
+ key={`grid-${tick.value}-${i}`}
64
+ x1={drawingArea.x}
65
+ y1={tick.position}
66
+ x2={drawingArea.x + drawingArea.width}
67
+ y2={tick.position}
68
+ stroke={gridStroke}
69
+ strokeWidth={STROKE_WIDTH}
70
+ strokeDasharray={gridLineStyle === 'dashed' ? '3 3' : undefined}
71
+ />
72
+ ))}
68
73
 
69
74
  {showLine && (
70
75
  <SvgLine
@@ -176,8 +176,8 @@ describe('useBuildChartContext', () => {
176
176
  ),
177
177
  );
178
178
  const domain = result.current.getYScale()!.domain();
179
- expect(domain[0]).toBe(5);
180
- expect(domain[1]).toBe(35);
179
+ expect(domain[0]).toBe(0);
180
+ expect(domain[1]).toBe(40);
181
181
  });
182
182
 
183
183
  it('inverts Y range for SVG coordinates', () => {
@@ -16,10 +16,10 @@ type Point = [x: number, y: number];
16
16
  * instead of the array index so the points honour a numeric X domain.
17
17
  */
18
18
  export const toScaledPoints = (
19
- data: Array<number | null>,
19
+ data: (number | null)[],
20
20
  xScale: ChartScaleFunction,
21
21
  yScale: NumericScale,
22
- xData?: ReadonlyArray<string | number>,
22
+ xData?: readonly (string | number)[],
23
23
  ): Point[] | null => {
24
24
  const pts: Point[] = [];
25
25
 
@@ -8,6 +8,10 @@ import type {
8
8
  NumericScale,
9
9
  } from '../types';
10
10
 
11
+ /**
12
+ * Creates a numeric scale with `.nice()` applied so the domain
13
+ * extends to clean rounded boundaries (e.g. `[4, 98]` → `[0, 100]`).
14
+ */
11
15
  export const getNumericScale = ({
12
16
  scaleType,
13
17
  domain,
@@ -18,7 +22,10 @@ export const getNumericScale = ({
18
22
  range: AxisBounds;
19
23
  }): NumericScale => {
20
24
  const scale = scaleType === 'log' ? scaleLog() : scaleLinear();
21
- return scale.domain([domain.min, domain.max]).range([range.min, range.max]);
25
+ return scale
26
+ .domain([domain.min, domain.max])
27
+ .nice()
28
+ .range([range.min, range.max]);
22
29
  };
23
30
 
24
31
  export const getCategoricalScale = ({
@@ -1,5 +1,9 @@
1
1
  import { isCategoricalScale, isNumericScale } from '../scales/scales';
2
- import type { AxisConfigProps, ChartScaleFunction } from '../types';
2
+ import type {
3
+ AxisConfigProps,
4
+ ChartScaleFunction,
5
+ DrawingArea,
6
+ } from '../types';
3
7
 
4
8
  export const APPROXIMATE_TICK_COUNT = 5;
5
9
 
@@ -80,3 +84,25 @@ export const buildTicksData = (
80
84
  label: getTickLabel(tick, axisData, formatter),
81
85
  }));
82
86
  };
87
+
88
+ /**
89
+ * Excludes the X grid line at the Y-axis origin (left edge)
90
+ * to prevent overlap with the Y-axis solid line.
91
+ */
92
+ export const isTickOnXAxisDomainEdge = (
93
+ tick: TickData,
94
+ drawingArea: DrawingArea,
95
+ ): boolean => {
96
+ return tick.position !== drawingArea.x;
97
+ };
98
+
99
+ /**
100
+ * Excludes the Y grid line at the X-axis origin (bottom edge)
101
+ * to prevent overlap with the X-axis solid line.
102
+ */
103
+ export const isTickOnYAxisDomainEdge = (
104
+ tick: TickData,
105
+ drawingArea: DrawingArea,
106
+ ): boolean => {
107
+ return tick.position !== drawingArea.y + drawingArea.height;
108
+ };
@@ -27,7 +27,7 @@ export type Series = {
27
27
  /**
28
28
  * Numeric data points; `null` entries represent gaps.
29
29
  */
30
- data?: Array<number | null>;
30
+ data?: (number | null)[];
31
31
  /**
32
32
  * Human-readable label used in legends and tooltips.
33
33
  */
@@ -54,6 +54,9 @@ export type AxisConfigProps = {
54
54
  * Fixed domain bounds or a function that adjusts the computed bounds.
55
55
  * A partial object overrides only the specified bound(s).
56
56
  * A function receives the auto-computed bounds and returns adjusted ones.
57
+ *
58
+ * The final domain is always rounded to nice boundaries via d3's `.nice()`,
59
+ * ensuring tick marks land on clean values (e.g. `[4, 98]` becomes `[0, 100]`).
57
60
  */
58
61
  domain?: Partial<AxisBounds> | ((bounds: AxisBounds) => AxisBounds);
59
62
  };