@juspay/svelte-ui-components 2.106.1 → 2.106.2

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.
@@ -36,11 +36,39 @@ export function computeLinearTicks(domain, count = 5, integer = false) {
36
36
  if (integer && step < 1) {
37
37
  step = 1;
38
38
  }
39
- const ticks = [];
40
- let tick = Math.ceil(min / step) * step;
41
- while (tick <= max + step * 0.001) {
42
- ticks.push(Math.round(tick * 1e10) / 1e10);
43
- tick += step;
39
+ const buildTicks = (tickStep) => {
40
+ const ticks = [];
41
+ let tick = Math.ceil(min / tickStep) * tickStep;
42
+ while (tick <= max + tickStep * 0.001) {
43
+ ticks.push(Math.round(tick * 1e10) / 1e10);
44
+ tick += tickStep;
45
+ }
46
+ return ticks;
47
+ };
48
+ // The next rung up the 1-2-5-10 ladder, e.g. 0.2 → 0.5, 2 → 5, 5 → 10.
49
+ const nextNiceStep = (current) => {
50
+ const stepExp = Math.floor(Math.log10(current) + 1e-10);
51
+ const stepBase = Math.pow(10, stepExp);
52
+ const mantissa = current / stepBase;
53
+ if (mantissa < 1.5) {
54
+ return stepBase * 2;
55
+ }
56
+ if (mantissa < 3.5) {
57
+ return stepBase * 5;
58
+ }
59
+ return stepBase * 10;
60
+ };
61
+ // `count` is a hard maximum (design-system chart spec: "max 6 ticks"), not a
62
+ // hint — the nice-step ladder can overshoot it (range 14 at count 6 picks
63
+ // step 2 → 7 ticks). Escalate the step until the ticks fit: category axes
64
+ // step through whole numbers (any integer stride is a valid category step,
65
+ // so 15 days at max 6 lands on the natural every-3rd-day), numeric axes
66
+ // climb the ladder so tick values stay round.
67
+ let ticks = buildTicks(step);
68
+ const maxTicks = Math.max(2, count);
69
+ while (ticks.length > maxTicks) {
70
+ step = integer ? Math.floor(step) + 1 : nextNiceStep(step);
71
+ ticks = buildTicks(step);
44
72
  }
45
73
  return ticks;
46
74
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@juspay/svelte-ui-components",
3
- "version": "2.106.1",
3
+ "version": "2.106.2",
4
4
  "description": "A themeable Svelte 5 UI component library with CSS custom property driven styling",
5
5
  "keywords": [
6
6
  "svelte",