react-native-livechart 4.24.1 → 4.26.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 (114) hide show
  1. package/dist/components/DegenParticlesOverlay.d.ts +2 -2
  2. package/dist/components/DegenParticlesOverlay.d.ts.map +1 -1
  3. package/dist/components/LiveChart.d.ts.map +1 -1
  4. package/dist/components/LiveChartSeries.d.ts.map +1 -1
  5. package/dist/components/LoadingOverlay.d.ts +5 -1
  6. package/dist/components/LoadingOverlay.d.ts.map +1 -1
  7. package/dist/components/YAxisOverlay.d.ts +3 -1
  8. package/dist/components/YAxisOverlay.d.ts.map +1 -1
  9. package/dist/constants.d.ts +3 -3
  10. package/dist/core/historyRangeCache.d.ts +25 -0
  11. package/dist/core/historyRangeCache.d.ts.map +1 -0
  12. package/dist/core/liveChartEngineTick.d.ts +6 -2
  13. package/dist/core/liveChartEngineTick.d.ts.map +1 -1
  14. package/dist/core/liveChartSeriesEngineTick.d.ts +2 -1
  15. package/dist/core/liveChartSeriesEngineTick.d.ts.map +1 -1
  16. package/dist/core/resolveConfig.d.ts +1 -1
  17. package/dist/core/useHistoryRevision.d.ts +5 -0
  18. package/dist/core/useHistoryRevision.d.ts.map +1 -0
  19. package/dist/core/useLiveChartEngine.d.ts +20 -2
  20. package/dist/core/useLiveChartEngine.d.ts.map +1 -1
  21. package/dist/core/useLiveChartSeriesEngine.d.ts +5 -1
  22. package/dist/core/useLiveChartSeriesEngine.d.ts.map +1 -1
  23. package/dist/draw/candleBodyPath.d.ts +10 -0
  24. package/dist/draw/candleBodyPath.d.ts.map +1 -0
  25. package/dist/draw/lineFillPaths.d.ts +10 -0
  26. package/dist/draw/lineFillPaths.d.ts.map +1 -0
  27. package/dist/draw/volume.d.ts +4 -1
  28. package/dist/draw/volume.d.ts.map +1 -1
  29. package/dist/draw/volumeRange.d.ts +12 -0
  30. package/dist/draw/volumeRange.d.ts.map +1 -0
  31. package/dist/hooks/crosshairShared.d.ts +8 -0
  32. package/dist/hooks/crosshairShared.d.ts.map +1 -1
  33. package/dist/hooks/useCandlePaths.d.ts +1 -1
  34. package/dist/hooks/useCandlePaths.d.ts.map +1 -1
  35. package/dist/hooks/useChartPaths.d.ts +1 -1
  36. package/dist/hooks/useChartPaths.d.ts.map +1 -1
  37. package/dist/hooks/useCrosshair.d.ts.map +1 -1
  38. package/dist/hooks/useDegen.d.ts +1 -0
  39. package/dist/hooks/useDegen.d.ts.map +1 -1
  40. package/dist/hooks/useDemandFrameLoop.d.ts +11 -0
  41. package/dist/hooks/useDemandFrameLoop.d.ts.map +1 -0
  42. package/dist/hooks/useLoadingLook.d.ts +12 -0
  43. package/dist/hooks/useLoadingLook.d.ts.map +1 -0
  44. package/dist/hooks/useMarkers.d.ts +3 -1
  45. package/dist/hooks/useMarkers.d.ts.map +1 -1
  46. package/dist/hooks/useMultiSeriesDegen.d.ts +1 -0
  47. package/dist/hooks/useMultiSeriesDegen.d.ts.map +1 -1
  48. package/dist/hooks/usePanScroll.d.ts +2 -0
  49. package/dist/hooks/usePanScroll.d.ts.map +1 -1
  50. package/dist/hooks/usePinchZoom.d.ts +2 -0
  51. package/dist/hooks/usePinchZoom.d.ts.map +1 -1
  52. package/dist/hooks/useReferenceDrag.d.ts +3 -2
  53. package/dist/hooks/useReferenceDrag.d.ts.map +1 -1
  54. package/dist/hooks/useReferenceLineGrouping.d.ts +19 -0
  55. package/dist/hooks/useReferenceLineGrouping.d.ts.map +1 -0
  56. package/dist/hooks/useVolumeRange.d.ts +14 -0
  57. package/dist/hooks/useVolumeRange.d.ts.map +1 -0
  58. package/dist/hooks/useXAxis.d.ts +7 -0
  59. package/dist/hooks/useXAxis.d.ts.map +1 -1
  60. package/dist/hooks/useYAxis.d.ts.map +1 -1
  61. package/dist/index.d.ts +1 -1
  62. package/dist/index.d.ts.map +1 -1
  63. package/dist/math/rangeAnimation.d.ts +4 -0
  64. package/dist/math/rangeAnimation.d.ts.map +1 -0
  65. package/dist/math/referenceDrag.d.ts +17 -5
  66. package/dist/math/referenceDrag.d.ts.map +1 -1
  67. package/dist/math/referenceGroup.d.ts +2 -2
  68. package/dist/math/spline.d.ts +3 -1
  69. package/dist/math/spline.d.ts.map +1 -1
  70. package/dist/math/squiggly.d.ts +8 -0
  71. package/dist/math/squiggly.d.ts.map +1 -1
  72. package/dist/types.d.ts +52 -3
  73. package/dist/types.d.ts.map +1 -1
  74. package/package.json +1 -1
  75. package/src/components/DegenParticlesOverlay.tsx +5 -5
  76. package/src/components/LiveChart.tsx +37 -66
  77. package/src/components/LiveChartSeries.tsx +18 -6
  78. package/src/components/LoadingOverlay.tsx +53 -12
  79. package/src/components/YAxisOverlay.tsx +38 -2
  80. package/src/constants.ts +3 -3
  81. package/src/core/historyRangeCache.ts +109 -0
  82. package/src/core/liveChartEngineTick.ts +41 -63
  83. package/src/core/liveChartSeriesEngineTick.ts +18 -5
  84. package/src/core/resolveConfig.ts +1 -1
  85. package/src/core/useHistoryRevision.ts +36 -0
  86. package/src/core/useLiveChartEngine.ts +159 -64
  87. package/src/core/useLiveChartSeriesEngine.ts +22 -2
  88. package/src/draw/candleBodyPath.ts +38 -0
  89. package/src/draw/lineFillPaths.ts +63 -0
  90. package/src/draw/volume.ts +21 -23
  91. package/src/draw/volumeRange.ts +51 -0
  92. package/src/hooks/crosshairShared.ts +29 -0
  93. package/src/hooks/useCandlePaths.ts +68 -94
  94. package/src/hooks/useChartPaths.ts +87 -111
  95. package/src/hooks/useCrosshair.ts +15 -3
  96. package/src/hooks/useDegen.ts +10 -6
  97. package/src/hooks/useDemandFrameLoop.ts +82 -0
  98. package/src/hooks/useLoadingLook.ts +30 -0
  99. package/src/hooks/useMarkers.ts +18 -4
  100. package/src/hooks/useMultiSeriesDegen.ts +7 -3
  101. package/src/hooks/usePanScroll.ts +5 -0
  102. package/src/hooks/usePinchZoom.ts +5 -0
  103. package/src/hooks/useReferenceDrag.ts +28 -14
  104. package/src/hooks/useReferenceLineGrouping.ts +72 -0
  105. package/src/hooks/useVolumeRange.ts +40 -0
  106. package/src/hooks/useXAxis.ts +27 -3
  107. package/src/hooks/useYAxis.ts +18 -2
  108. package/src/index.ts +1 -0
  109. package/src/math/rangeAnimation.ts +28 -0
  110. package/src/math/referenceDrag.ts +21 -4
  111. package/src/math/referenceGroup.ts +2 -2
  112. package/src/math/spline.ts +16 -8
  113. package/src/math/squiggly.ts +12 -0
  114. package/src/types.ts +53 -3
@@ -0,0 +1,11 @@
1
+ /** Wait through several unchanged frames, rather than mistaking one quiet frame for rest. */
2
+ export declare const IDLE_SETTLE_MS = 160;
3
+ export declare function nextQuietTime(previous: number, changed: boolean, dt: number): number;
4
+ /**
5
+ * Opt-in UI-runtime RAF loop. Inputs wake it without a JS-thread round trip.
6
+ * `tick` returns true while work changed or a continuous effect needs frames.
7
+ * `prepare` must read INPUTS only: subscribing to tick outputs causes feedback.
8
+ * A generation token makes queued frames harmless after replacement/unmount.
9
+ */
10
+ export declare function useDemandFrameLoop(enabled: boolean, prepare: () => unknown, tick: (dt: number) => boolean): () => void;
11
+ //# sourceMappingURL=useDemandFrameLoop.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDemandFrameLoop.d.ts","sourceRoot":"","sources":["../../src/hooks/useDemandFrameLoop.ts"],"names":[],"mappings":"AAIA,6FAA6F;AAC7F,eAAO,MAAM,cAAc,MAAM,CAAC;AAKlC,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAGpF;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,MAAM,OAAO,EACtB,IAAI,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,GAC5B,MAAM,IAAI,CAwDZ"}
@@ -0,0 +1,12 @@
1
+ import type { ResolvedLoadingConfig } from "../core/resolveConfig";
2
+ /**
3
+ * The loading shell's look: the live `loading` config while loading, and the
4
+ * last one after. The shell fades out and the reveal morph melts its squiggle
5
+ * into the line only once `loading` has turned off, when `resolveLoading`
6
+ * already returns `null` — so they would otherwise snap to the default color,
7
+ * stroke, wave and Y-axis placeholders just as the data arrives. The empty
8
+ * shell ("No data") shown later keeps it too; before any loading, it has none
9
+ * and the defaults apply.
10
+ */
11
+ export declare function useLoadingLook(loadingCfg: ResolvedLoadingConfig | null): ResolvedLoadingConfig | null;
12
+ //# sourceMappingURL=useLoadingLook.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useLoadingLook.d.ts","sourceRoot":"","sources":["../../src/hooks/useLoadingLook.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAUnE;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAC5B,UAAU,EAAE,qBAAqB,GAAG,IAAI,GACvC,qBAAqB,GAAG,IAAI,CAM9B"}
@@ -20,7 +20,9 @@ lineLinear?: boolean,
20
20
  /** Collision config; default `"anchored"` (no stacking). */
21
21
  cluster?: ResolvedMarkerCluster,
22
22
  /** Runtime gate shared with the chart engine. */
23
- isFrameLoopActive?: SharedValue<boolean>): {
23
+ isFrameLoopActive?: SharedValue<boolean>,
24
+ /** Experimental input-driven projection instead of continuous frames; defaults to false. */
25
+ autoSleep?: boolean): {
24
26
  projected: SharedValue<ProjectedMarker[]>;
25
27
  tapGesture: ReturnType<typeof Gesture.Tap>;
26
28
  /** Worklet hit-test: true when (x, y) lands on a projected marker. */
@@ -1 +1 @@
1
- {"version":3,"file":"useMarkers.d.ts","sourceRoot":"","sources":["../../src/hooks/useMarkers.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AACvD,OAAO,EAGL,KAAK,WAAW,EACjB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAkB,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEvE,OAAO,EAGL,KAAK,qBAAqB,EAC3B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EACV,cAAc,EACd,MAAM,EACN,gBAAgB,EAChB,YAAY,EACb,MAAM,UAAU,CAAC;AAalB;;;;;GAKG;AACH,wBAAgB,UAAU,CACxB,MAAM,EAAE,iBAAiB,EACzB,OAAO,EAAE,YAAY,EACrB,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC,EAC9B,MAAM,EAAE,OAAO,EACf,SAAS,EAAE,MAAM,EACjB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI,KAAK,IAAI,EACxD,QAAQ,CAAC,EAAE,WAAW,CAAC,YAAY,EAAE,CAAC,EACtC,QAAQ,CAAC,EAAE,WAAW,CAAC,cAAc,EAAE,CAAC;AACxC,6EAA6E;AAC7E,SAAS,UAAO;AAChB;uEACuE;AACvE,UAAU,UAAQ;AAClB,4DAA4D;AAC5D,OAAO,GAAE,qBAAwC;AACjD,iDAAiD;AACjD,iBAAiB,CAAC,EAAE,WAAW,CAAC,OAAO,CAAC,GACvC;IACD,SAAS,EAAE,WAAW,CAAC,eAAe,EAAE,CAAC,CAAC;IAC1C,UAAU,EAAE,UAAU,CAAC,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC;IAC3C,sEAAsE;IACtE,OAAO,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC;CAC5C,CAgGA"}
1
+ {"version":3,"file":"useMarkers.d.ts","sourceRoot":"","sources":["../../src/hooks/useMarkers.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AACvD,OAAO,EAIL,KAAK,WAAW,EACjB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAkB,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEvE,OAAO,EAGL,KAAK,qBAAqB,EAC3B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EACV,cAAc,EACd,MAAM,EACN,gBAAgB,EAChB,YAAY,EACb,MAAM,UAAU,CAAC;AAalB;;;;;GAKG;AACH,wBAAgB,UAAU,CACxB,MAAM,EAAE,iBAAiB,EACzB,OAAO,EAAE,YAAY,EACrB,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC,EAC9B,MAAM,EAAE,OAAO,EACf,SAAS,EAAE,MAAM,EACjB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI,KAAK,IAAI,EACxD,QAAQ,CAAC,EAAE,WAAW,CAAC,YAAY,EAAE,CAAC,EACtC,QAAQ,CAAC,EAAE,WAAW,CAAC,cAAc,EAAE,CAAC;AACxC,6EAA6E;AAC7E,SAAS,UAAO;AAChB;uEACuE;AACvE,UAAU,UAAQ;AAClB,4DAA4D;AAC5D,OAAO,GAAE,qBAAwC;AACjD,iDAAiD;AACjD,iBAAiB,CAAC,EAAE,WAAW,CAAC,OAAO,CAAC;AACxC,4FAA4F;AAC5F,SAAS,UAAQ,GAChB;IACD,SAAS,EAAE,WAAW,CAAC,eAAe,EAAE,CAAC,CAAC;IAC1C,UAAU,EAAE,UAAU,CAAC,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC;IAC3C,sEAAsE;IACtE,OAAO,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC;CAC5C,CA2GA"}
@@ -13,6 +13,7 @@ import type { DegenShakePayload } from "../types";
13
13
  export declare function useMultiSeriesDegen(engine: MultiEngineState, padding: ChartPadding, cfg: ResolvedDegenConfig | null, onShake?: (payload: DegenShakePayload) => void): {
14
14
  pack: SharedValue<Float64Array<ArrayBuffer>>;
15
15
  packRevision: SharedValue<number>;
16
+ particleTimestamp: SharedValue<number>;
16
17
  shakeTransform: DerivedValue<[
17
18
  {
18
19
  translateX: number;
@@ -1 +1 @@
1
- {"version":3,"file":"useMultiSeriesDegen.d.ts","sourceRoot":"","sources":["../../src/hooks/useMultiSeriesDegen.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,KAAK,YAAY,EACjB,KAAK,WAAW,EACjB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAGjD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAElD;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,gBAAgB,EACxB,OAAO,EAAE,YAAY,EACrB,GAAG,EAAE,mBAAmB,GAAG,IAAI,EAC/B,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,IAAI,GAC7C;IACD,IAAI,EAAE,WAAW,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,CAAC;IAC7C,YAAY,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAClC,cAAc,EAAE,YAAY,CAC1B;QAAC;YAAE,UAAU,EAAE,MAAM,CAAA;SAAE;QAAE;YAAE,UAAU,EAAE,MAAM,CAAA;SAAE;KAAC,CACjD,CAAC;CACH,CAgOA"}
1
+ {"version":3,"file":"useMultiSeriesDegen.d.ts","sourceRoot":"","sources":["../../src/hooks/useMultiSeriesDegen.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,KAAK,YAAY,EACjB,KAAK,WAAW,EACjB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAGjD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAElD;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,gBAAgB,EACxB,OAAO,EAAE,YAAY,EACrB,GAAG,EAAE,mBAAmB,GAAG,IAAI,EAC/B,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,IAAI,GAC7C;IACD,IAAI,EAAE,WAAW,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,CAAC;IAC7C,YAAY,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAClC,iBAAiB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACvC,cAAc,EAAE,YAAY,CAC1B;QAAC;YAAE,UAAU,EAAE,MAAM,CAAA;SAAE;QAAE;YAAE,UAAU,EAAE,MAAM,CAAA;SAAE;KAAC,CACjD,CAAC;CACH,CAmOA"}
@@ -7,6 +7,8 @@ export declare const AXIS_GRAB_MIN_PX = 44;
7
7
  export type PanScrollGestureMode = "holdToScrub" | "axisDrag";
8
8
  /** Engine SharedValues the pan-scroll gesture reads/writes (subset of the engine state). */
9
9
  export interface PanScrollEngineRefs {
10
+ /** Wake a demand-driven engine before reading the gesture bounds. */
11
+ wake?: () => void;
10
12
  /** Absolute right-edge time to freeze at, or `null` to follow the live edge. */
11
13
  viewEnd: SharedValue<number | null>;
12
14
  /** Right-edge time the engine would use if following live (advances each frame). */
@@ -1 +1 @@
1
- {"version":3,"file":"usePanScroll.d.ts","sourceRoot":"","sources":["../../src/hooks/usePanScroll.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"usePanScroll.d.ts","sourceRoot":"","sources":["../../src/hooks/usePanScroll.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,8 @@ import { type SharedValue } from "react-native-reanimated";
3
3
  import type { ChartPadding } from "../draw/line";
4
4
  /** Engine SharedValues the pinch-zoom gesture reads/writes. */
5
5
  export interface PinchZoomEngineRefs {
6
+ /** Wake a demand-driven engine before reading the gesture bounds. */
7
+ wake?: () => void;
6
8
  /** Visible-window width override in seconds, or `null` to follow `timeWindow`. */
7
9
  viewWindow: SharedValue<number | null>;
8
10
  /** Absolute right-edge time, or `null` to follow the live edge (shared with pan). */
@@ -1 +1 @@
1
- {"version":3,"file":"usePinchZoom.d.ts","sourceRoot":"","sources":["../../src/hooks/usePinchZoom.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AACvD,OAAO,EAGL,KAAK,WAAW,EACjB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAGjD,+DAA+D;AAC/D,MAAM,WAAW,mBAAmB;IAClC,kFAAkF;IAClF,UAAU,EAAE,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACvC,qFAAqF;IACrF,OAAO,EAAE,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACpC,oFAAoF;IACpF,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC9B;;;;OAIG;IACH,aAAa,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACnC,0BAA0B;IAC1B,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CAClC;AAED,iFAAiF;AACjF,MAAM,MAAM,kBAAkB,GAAG,IAAI,CACnC,mBAAmB,EACnB,YAAY,GAAG,SAAS,CACzB,CAAC;AAEF;;;GAGG;AACH,wBAAgB,cAAc,CAAC,EAC7B,UAAU,EACV,OAAO,GACR,EAAE,kBAAkB,GAAG,IAAI,CAM3B;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,mBAAmB,CAAC;IAC5B,OAAO,EAAE,YAAY,CAAC;IACtB;;;OAGG;IACH,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC7B,mFAAmF;IACnF,UAAU,EAAE,MAAM,CAAC;IACnB,yDAAyD;IACzD,OAAO,EAAE,OAAO,CAAC;IACjB,wEAAwE;IACxE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,0FAA0F;IAC1F,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kFAAkF;IAClF,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,kDAAkD;AAClD,wBAAgB,WAAW,CACzB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,GACb,MAAM,CAKR;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,MAAM,EAAE,MAAM,GAAG,SAAS,GACzB,CAAC,MAAM,EAAE,MAAM,CAAC,CAMlB;AAED;;;GAGG;AACH,wBAAgB,SAAS,CACvB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,GACjB,MAAM,CAGR;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CACzB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAChB,MAAM,CAIR;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAAC,EAC3B,MAAM,EACN,OAAO,EACP,OAAO,EACP,UAAU,EACV,OAAO,EACP,aAAa,EACb,aAAa,EACb,WAAW,EACX,UAAc,GACf,EAAE,mBAAmB,GAAG,UAAU,CAAC,OAAO,OAAO,CAAC,KAAK,CAAC,CA0ExD"}
1
+ {"version":3,"file":"usePinchZoom.d.ts","sourceRoot":"","sources":["../../src/hooks/usePinchZoom.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AACvD,OAAO,EAGL,KAAK,WAAW,EACjB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAGjD,+DAA+D;AAC/D,MAAM,WAAW,mBAAmB;IAClC,qEAAqE;IACrE,IAAI,CAAC,EAAE,MAAM,IAAI,CAAC;IAClB,kFAAkF;IAClF,UAAU,EAAE,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACvC,qFAAqF;IACrF,OAAO,EAAE,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACpC,oFAAoF;IACpF,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC9B;;;;OAIG;IACH,aAAa,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACnC,0BAA0B;IAC1B,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CAClC;AAED,iFAAiF;AACjF,MAAM,MAAM,kBAAkB,GAAG,IAAI,CACnC,mBAAmB,EACnB,YAAY,GAAG,SAAS,CACzB,CAAC;AAEF;;;GAGG;AACH,wBAAgB,cAAc,CAAC,EAC7B,UAAU,EACV,OAAO,GACR,EAAE,kBAAkB,GAAG,IAAI,CAM3B;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,mBAAmB,CAAC;IAC5B,OAAO,EAAE,YAAY,CAAC;IACtB;;;OAGG;IACH,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC7B,mFAAmF;IACnF,UAAU,EAAE,MAAM,CAAC;IACnB,yDAAyD;IACzD,OAAO,EAAE,OAAO,CAAC;IACjB,wEAAwE;IACxE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,0FAA0F;IAC1F,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kFAAkF;IAClF,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,kDAAkD;AAClD,wBAAgB,WAAW,CACzB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,GACb,MAAM,CAKR;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,MAAM,EAAE,MAAM,GAAG,SAAS,GACzB,CAAC,MAAM,EAAE,MAAM,CAAC,CAMlB;AAED;;;GAGG;AACH,wBAAgB,SAAS,CACvB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,GACjB,MAAM,CAGR;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CACzB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAChB,MAAM,CAIR;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAAC,EAC3B,MAAM,EACN,OAAO,EACP,OAAO,EACP,UAAU,EACV,OAAO,EACP,aAAa,EACb,aAAa,EACb,WAAW,EACX,UAAc,GACf,EAAE,mBAAmB,GAAG,UAAU,CAAC,OAAO,OAAO,CAAC,KAAK,CAAC,CA6ExD"}
@@ -7,12 +7,13 @@ import type { ReferenceLine } from "../types";
7
7
  * Builds the per-line **drag** gesture for draggable Form-A reference lines: grab a
8
8
  * line near its value-Y and drag vertically to set a new value, with optional
9
9
  * `snap` + `bounds` clamp. Mirrors the order-ticket reticle in {@link useCrosshair}
10
- * (value↔Y via `computeValueAtY` / `computeScrubDotY`, frozen value re-projected
10
+ * (value↔Y via `computeValueAtY` / `pinnedPlotY`, frozen value re-projected
11
11
  * each frame) but per line, writing into the shared `dragValues` array the layout
12
12
  * and overlays read.
13
13
  *
14
14
  * The pan uses `manualActivation`: it grabs only when a touch starts within
15
- * {@link GRAB_SLOP} of a draggable line, then **owns** that touch — any drag past
15
+ * {@link GRAB_SLOP} of a draggable line (and inside its `grabRange`, when it has
16
+ * one), then **owns** that touch — any drag past
16
17
  * {@link DRAG_ACTIVATE_PX} (in either axis) drags the line. A touch off every line
17
18
  * fails fast so the chart's other gestures (scrub / scroll) run everywhere else
18
19
  * (compose this ahead of them via `Gesture.Exclusive`). Crucially it no longer
@@ -1 +1 @@
1
- {"version":3,"file":"useReferenceDrag.d.ts","sourceRoot":"","sources":["../../src/hooks/useReferenceDrag.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AACvD,OAAO,EAIL,KAAK,WAAW,EACjB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AASjD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAgB9C;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,iBAAiB,EACzB,OAAO,EAAE,YAAY,EACrB,KAAK,EAAE,aAAa,EAAE,EACtB,UAAU,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC,EACjC,UAAU,EAAE,WAAW,CAAC,OAAO,EAAE,CAAC,EAClC,OAAO,EAAE,OAAO,GACf;IACD,OAAO,EAAE,UAAU,CAAC,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC;IACxC;qFACiF;IACjF,OAAO,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC;CAC5C,CA6NA"}
1
+ {"version":3,"file":"useReferenceDrag.d.ts","sourceRoot":"","sources":["../../src/hooks/useReferenceDrag.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AACvD,OAAO,EAIL,KAAK,WAAW,EACjB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AASjD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAY9C;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,iBAAiB,EACzB,OAAO,EAAE,YAAY,EACrB,KAAK,EAAE,aAAa,EAAE,EACtB,UAAU,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC,EACjC,UAAU,EAAE,WAAW,CAAC,OAAO,EAAE,CAAC,EAClC,OAAO,EAAE,OAAO,GACf;IACD,OAAO,EAAE,UAAU,CAAC,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC;IACxC;qFACiF;IACjF,OAAO,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC;CAC5C,CA8OA"}
@@ -0,0 +1,19 @@
1
+ import { type SharedValue } from "react-native-reanimated";
2
+ import type { ChartEngineLayout } from "../core/useLiveChartEngine";
3
+ import type { ChartPadding } from "../draw/line";
4
+ import { type ReferenceGrouping } from "../math/referenceGroup";
5
+ import type { ReferenceLine } from "../types";
6
+ /** Cluster the built-in tags that can actually render in the current plot. */
7
+ export declare function useReferenceLineGrouping({ radius, engine, padding, lines, custom, offAxisCustom, dragValues, }: {
8
+ radius: number | null;
9
+ engine: ChartEngineLayout;
10
+ padding: ChartPadding;
11
+ lines: ReferenceLine[];
12
+ custom: boolean[];
13
+ offAxisCustom: boolean[];
14
+ dragValues: SharedValue<number[]>;
15
+ }): {
16
+ refGroupResult: import("react-native-reanimated").DerivedValue<ReferenceGrouping>;
17
+ groupHidden: import("react-native-reanimated").DerivedValue<boolean[]>;
18
+ };
19
+ //# sourceMappingURL=useReferenceLineGrouping.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useReferenceLineGrouping.d.ts","sourceRoot":"","sources":["../../src/hooks/useReferenceLineGrouping.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE5E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAuB,KAAK,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAErF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAM9C,8EAA8E;AAC9E,wBAAgB,wBAAwB,CAAC,EACvC,MAAM,EACN,MAAM,EACN,OAAO,EACP,KAAK,EACL,MAAM,EACN,aAAa,EACb,UAAU,GACX,EAAE;IACD,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,EAAE,iBAAiB,CAAC;IAC1B,OAAO,EAAE,YAAY,CAAC;IACtB,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,MAAM,EAAE,OAAO,EAAE,CAAC;IAClB,aAAa,EAAE,OAAO,EAAE,CAAC;IACzB,UAAU,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC;CACnC;;;EA0CA"}
@@ -0,0 +1,14 @@
1
+ import { type SharedValue } from "react-native-reanimated";
2
+ import type { CandlePoint } from "../types";
3
+ /**
4
+ * Primitive index outputs suppress downstream scans while the window glides
5
+ * within the same buckets. The maximum also depends directly on candles, so
6
+ * every notified data revision (including same-length replacement or modify)
7
+ * invalidates it. Array length and object identity are never cache keys.
8
+ */
9
+ export declare function useVolumeRange(candles: SharedValue<CandlePoint[]> | undefined, timestamp: SharedValue<number>, window: SharedValue<number>, width: SharedValue<number>, active: boolean): {
10
+ start: import("react-native-reanimated").DerivedValue<number>;
11
+ end: import("react-native-reanimated").DerivedValue<number>;
12
+ max: import("react-native-reanimated").DerivedValue<number>;
13
+ };
14
+ //# sourceMappingURL=useVolumeRange.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useVolumeRange.d.ts","sourceRoot":"","sources":["../../src/hooks/useVolumeRange.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC5E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAO5C;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,WAAW,CAAC,WAAW,EAAE,CAAC,GAAG,SAAS,EAC/C,SAAS,EAAE,WAAW,CAAC,MAAM,CAAC,EAC9B,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,EAC3B,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,EAC1B,MAAM,EAAE,OAAO;;;;EAoBhB"}
@@ -29,4 +29,11 @@ export declare function useXAxis(engine: ChartEngineLayout, padding: ChartPaddin
29
29
  xAxisEntries: import("react-native-reanimated").DerivedValue<XAxisEntry[]>;
30
30
  font: SkFont;
31
31
  };
32
+ export declare function sameXAxisLabels(previous: Record<number, {
33
+ alpha: number;
34
+ text: string;
35
+ }>, next: Record<number, {
36
+ alpha: number;
37
+ text: string;
38
+ }>): boolean;
32
39
  //# sourceMappingURL=useXAxis.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useXAxis.d.ts","sourceRoot":"","sources":["../../src/hooks/useXAxis.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAEzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAKjD,MAAM,WAAW,UAAU;IACzB,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAID;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,EACtD,UAAU,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,GAChC,MAAM,CAAC,MAAM,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAMjD;AAUD,4DAA4D;AAC5D,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,UAAU,EAAE,QAajD;AAED,wBAAgB,QAAQ,CACtB,MAAM,EAAE,iBAAiB,EACzB,OAAO,EAAE,YAAY,EACrB,UAAU,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,EACjC,IAAI,EAAE,MAAM;;;EA+Jb"}
1
+ {"version":3,"file":"useXAxis.d.ts","sourceRoot":"","sources":["../../src/hooks/useXAxis.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAEzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAKjD,MAAM,WAAW,UAAU;IACzB,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAID;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,EACtD,UAAU,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,GAChC,MAAM,CAAC,MAAM,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAMjD;AAUD,4DAA4D;AAC5D,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,UAAU,EAAE,QAajD;AAED,wBAAgB,QAAQ,CACtB,MAAM,EAAE,iBAAiB,EACzB,OAAO,EAAE,YAAY,EACrB,UAAU,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,EACjC,IAAI,EAAE,MAAM;;;EAyKb;AAED,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,EACzD,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,GACpD,OAAO,CAST"}
@@ -1 +1 @@
1
- {"version":3,"file":"useYAxis.d.ts","sourceRoot":"","sources":["../../src/hooks/useYAxis.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAEzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAEpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAE5C;;;;GAIG;AACH,wBAAgB,QAAQ,CACtB,MAAM,EAAE,iBAAiB,EACzB,OAAO,EAAE,YAAY,EACrB,WAAW,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,EAClC,IAAI,EAAE,MAAM,EACZ,MAAM,SAAK,EACX,WAAW,GAAE,WAAmC,EAChD,KAAK,SAAI,EACT,aAAa,SAAI;;;EAgClB"}
1
+ {"version":3,"file":"useYAxis.d.ts","sourceRoot":"","sources":["../../src/hooks/useYAxis.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAEzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAEpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAE5C;;;;GAIG;AACH,wBAAgB,QAAQ,CACtB,MAAM,EAAE,iBAAiB,EACzB,OAAO,EAAE,YAAY,EACrB,WAAW,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,EAClC,IAAI,EAAE,MAAM,EACZ,MAAM,SAAK,EACX,WAAW,GAAE,WAAmC,EAChD,KAAK,SAAI,EACT,aAAa,SAAI;;;EAgDlB"}
package/dist/index.d.ts CHANGED
@@ -15,5 +15,5 @@ export { MONO_FONT_FAMILY } from "./lib/monoFontFamily";
15
15
  export { useDegen } from "./hooks/useDegen";
16
16
  export { useTradeStream } from "./hooks/useTradeStream";
17
17
  export { usePriceY, useTimeX } from "./hooks/useChartOverlayContext";
18
- export type { AreaDotsConfig, AxisAutoHideConfig, AxisLabelConfig, BadgeConfig, BadgeMetrics, BadgeStyleConfig, BadgeVariant, CandleGap, CandleGapBandStyle, CandleGapBridgeStyle, CandleGapKind, CandleGapLabelStyle, CandleGapStyle, CandleGapsConfig, CandleMetrics, CandlePoint, CanvasMode, ChartGap, ChartGapBandStyle, ChartGapBridgeStyle, ChartGapKind, ChartGapLabelStyle, ChartGapsConfig, ChartGapStyle, ChartInsets, ChartOverlayContext, ChartPlotRect, ChartScale, ChartSegment, DegenOptions, DegenShakePayload, DotGlowConfig, EmptyStateMetrics, FontConfig, FontWeight, GradientConfig, GridMetrics, GridStyleConfig, LeftEdgeFadeConfig, LegendConfig, LegendStyle, LineConfig, LiveChartCoreProps, LiveChartFrameStats, LiveChartHandle, LiveChartMetrics, LiveChartMetricsOverride, LiveChartPalette, LiveChartPoint, LiveChartProps, LiveChartSeriesProps, LoadingConfig, Marker, MarkerClusterConfig, MarkerGroupBadge, MarkerKind, MarkerPressEvent, MarkerRenderContext, MarkerSide, Momentum, MomentumConfig, MotionMetrics, MultiSeriesDotConfig, PerSeriesTooltipConfig, PulseConfig, ReferenceLine, ReferenceLineBadgeConfig, ReferenceLineGroupingConfig, ReferenceLineRenderProps, ReturnToLiveConfig, ScrubActionConfig, ScrubActionPoint, ScrubConfig, ScrubPoint, ScrubPointCore, ScrubPointMulti, ScrubSeriesValue, SelectionDotConfig, SelectionDotProps, SelectionDotRingConfig, SeriesConfig, ThemeMode, ThresholdConfig, ThresholdBadgeRenderProps, ThresholdLineConfig, TooltipRenderProps, TradeEvent, TransitionConfig, ValueLineConfig, VisibleRange, VolumeConfig, XAxisConfig, YAxisConfig, ZoomConfig, } from "./types";
18
+ export type { AreaDotsConfig, AxisAutoHideConfig, AxisLabelConfig, BadgeConfig, BadgeMetrics, BadgeStyleConfig, BadgeVariant, CandleGap, CandleGapBandStyle, CandleGapBridgeStyle, CandleGapKind, CandleGapLabelStyle, CandleGapStyle, CandleGapsConfig, CandleMetrics, CandlePoint, CanvasMode, ChartGap, ChartGapBandStyle, ChartGapBridgeStyle, ChartGapKind, ChartGapLabelStyle, ChartGapsConfig, ChartGapStyle, ChartInsets, ChartOverlayContext, ChartPlotRect, ChartScale, ChartSegment, DegenOptions, DegenShakePayload, DotGlowConfig, EmptyStateMetrics, FontConfig, FontWeight, GradientConfig, GridMetrics, GridStyleConfig, LeftEdgeFadeConfig, LegendConfig, LegendStyle, LineConfig, LiveChartCoreProps, LiveChartFrameStats, LiveChartHandle, LiveChartMetrics, LiveChartMetricsOverride, LiveChartPalette, LiveChartPoint, LiveChartProps, LiveChartSeriesProps, LoadingConfig, Marker, MarkerClusterConfig, MarkerGroupBadge, MarkerKind, MarkerPressEvent, MarkerRenderContext, MarkerSide, Momentum, MomentumConfig, MotionMetrics, MultiSeriesDotConfig, PerSeriesTooltipConfig, PulseConfig, RangeAnimationConfig, ReferenceLine, ReferenceLineBadgeConfig, ReferenceLineGroupingConfig, ReferenceLineRenderProps, ReturnToLiveConfig, ScrubActionConfig, ScrubActionPoint, ScrubConfig, ScrubPoint, ScrubPointCore, ScrubPointMulti, ScrubSeriesValue, SelectionDotConfig, SelectionDotProps, SelectionDotRingConfig, SeriesConfig, ThemeMode, ThresholdConfig, ThresholdBadgeRenderProps, ThresholdLineConfig, TooltipRenderProps, TradeEvent, TransitionConfig, ValueLineConfig, VisibleRange, VolumeConfig, XAxisConfig, YAxisConfig, ZoomConfig, } from "./types";
19
19
  //# 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,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAIrE,YAAY,EACV,cAAc,EACd,kBAAkB,EAClB,eAAe,EACf,WAAW,EACX,YAAY,EACZ,gBAAgB,EAChB,YAAY,EACZ,SAAS,EACT,kBAAkB,EAClB,oBAAoB,EACpB,aAAa,EACb,mBAAmB,EACnB,cAAc,EACd,gBAAgB,EAChB,aAAa,EACb,WAAW,EACX,UAAU,EACV,QAAQ,EACR,iBAAiB,EACjB,mBAAmB,EACnB,YAAY,EACZ,kBAAkB,EAClB,eAAe,EACf,aAAa,EACb,WAAW,EACX,mBAAmB,EACnB,aAAa,EACb,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,iBAAiB,EACjB,aAAa,EACb,iBAAiB,EACjB,UAAU,EACV,UAAU,EACV,cAAc,EACd,WAAW,EACX,eAAe,EACf,kBAAkB,EAClB,YAAY,EACZ,WAAW,EACX,UAAU,EACV,kBAAkB,EAClB,mBAAmB,EACnB,eAAe,EACf,gBAAgB,EAChB,wBAAwB,EACxB,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,oBAAoB,EACpB,aAAa,EACb,MAAM,EACN,mBAAmB,EACnB,gBAAgB,EAChB,UAAU,EACV,gBAAgB,EAChB,mBAAmB,EACnB,UAAU,EACV,QAAQ,EACR,cAAc,EACd,aAAa,EACb,oBAAoB,EACpB,sBAAsB,EACtB,WAAW,EACX,aAAa,EACb,wBAAwB,EACxB,2BAA2B,EAC3B,wBAAwB,EACxB,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAChB,WAAW,EACX,UAAU,EACV,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,EACjB,sBAAsB,EACtB,YAAY,EACZ,SAAS,EACT,eAAe,EACf,yBAAyB,EACzB,mBAAmB,EACnB,kBAAkB,EAClB,UAAU,EACV,gBAAgB,EAChB,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,WAAW,EACX,UAAU,GACX,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,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAIrE,YAAY,EACV,cAAc,EACd,kBAAkB,EAClB,eAAe,EACf,WAAW,EACX,YAAY,EACZ,gBAAgB,EAChB,YAAY,EACZ,SAAS,EACT,kBAAkB,EAClB,oBAAoB,EACpB,aAAa,EACb,mBAAmB,EACnB,cAAc,EACd,gBAAgB,EAChB,aAAa,EACb,WAAW,EACX,UAAU,EACV,QAAQ,EACR,iBAAiB,EACjB,mBAAmB,EACnB,YAAY,EACZ,kBAAkB,EAClB,eAAe,EACf,aAAa,EACb,WAAW,EACX,mBAAmB,EACnB,aAAa,EACb,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,iBAAiB,EACjB,aAAa,EACb,iBAAiB,EACjB,UAAU,EACV,UAAU,EACV,cAAc,EACd,WAAW,EACX,eAAe,EACf,kBAAkB,EAClB,YAAY,EACZ,WAAW,EACX,UAAU,EACV,kBAAkB,EAClB,mBAAmB,EACnB,eAAe,EACf,gBAAgB,EAChB,wBAAwB,EACxB,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,oBAAoB,EACpB,aAAa,EACb,MAAM,EACN,mBAAmB,EACnB,gBAAgB,EAChB,UAAU,EACV,gBAAgB,EAChB,mBAAmB,EACnB,UAAU,EACV,QAAQ,EACR,cAAc,EACd,aAAa,EACb,oBAAoB,EACpB,sBAAsB,EACtB,WAAW,EACX,oBAAoB,EACpB,aAAa,EACb,wBAAwB,EACxB,2BAA2B,EAC3B,wBAAwB,EACxB,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAChB,WAAW,EACX,UAAU,EACV,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,EACjB,sBAAsB,EACtB,YAAY,EACZ,SAAS,EACT,eAAe,EACf,yBAAyB,EACzB,mBAAmB,EACnB,kBAAkB,EAClB,UAAU,EACV,gBAAgB,EAChB,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,WAAW,EACX,UAAU,GACX,MAAM,SAAS,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { RangeAnimationConfig } from "../types";
2
+ /** Select per-bound easing while preserving immediate expansion and reduced motion. */
3
+ export declare function rangeAnimationSpeed(smoothing: number, config: RangeAnimationConfig | undefined, expanding: boolean, disjoint?: boolean): number;
4
+ //# sourceMappingURL=rangeAnimation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rangeAnimation.d.ts","sourceRoot":"","sources":["../../src/math/rangeAnimation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAUrD,uFAAuF;AACvF,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,oBAAoB,GAAG,SAAS,EACxC,SAAS,EAAE,OAAO,EAClB,QAAQ,UAAQ,GACf,MAAM,CAWR"}
@@ -6,22 +6,34 @@
6
6
  /** Clamp a value to an optional `[min, max]` bound (order-independent). No-op when
7
7
  * `bounds` is omitted. */
8
8
  export declare function clampToBounds(value: number, bounds?: [number, number]): number;
9
+ /**
10
+ * Where a touch may grab each line: the touch `x` and, index-aligned with the
11
+ * chart's `referenceLines`, each line's `grabRange` (`[from, to]`, canvas px) —
12
+ * `null` / `undefined` for a line grabbed anywhere along it.
13
+ */
14
+ export interface GrabRangeProbe {
15
+ x: number;
16
+ ranges: readonly (readonly [number, number] | null | undefined)[];
17
+ }
9
18
  /**
10
19
  * Index of the draggable line whose handle-Y is nearest the touch `y`, within
11
20
  * `slop` px — or `-1` when none is in reach. `handleYs` is index-aligned with the
12
- * chart's `referenceLines`; entries `< 0` (not draggable / off-screen / not laid
13
- * out) are skipped. Ties favor the later (topmost-drawn) line.
21
+ * chart's `referenceLines`; entries `< 0` (not draggable / not laid out) are
22
+ * skipped; off-screen lines pin to the nearest plot edge. Ties favor the later
23
+ * (topmost-drawn) line. With `grab`, a line
24
+ * whose `grabRange` does not contain the touch `x` is skipped too.
14
25
  */
15
- export declare function nearestDraggableIndex(handleYs: number[], y: number, slop: number): number;
26
+ export declare function nearestDraggableIndex(handleYs: number[], y: number, slop: number, grab?: GrabRangeProbe): number;
16
27
  /**
17
28
  * Whether the reference-drag gesture owns the current touch — the answer the
18
29
  * scrub's activation guard needs. A **grabbed** line (`dragIndex >= 0`, pressed
19
30
  * or already dragging) owns the touch outright, wherever the asking gesture says
20
31
  * the finger is: the scrub pan can activate mid-drag and asks with its
21
32
  * touch-DOWN point, which a longer drag has carried the line away from. With no
22
- * line grabbed, it is the geometric reach test around the handles.
33
+ * line grabbed, it is the geometric reach test around the handles (and, with
34
+ * `grab`, inside each line's `grabRange`).
23
35
  */
24
- export declare function referenceDragOwnsTouch(dragIndex: number, handleYs: number[], y: number, slop: number): boolean;
36
+ export declare function referenceDragOwnsTouch(dragIndex: number, handleYs: number[], y: number, slop: number, grab?: GrabRangeProbe): boolean;
25
37
  /**
26
38
  * Resolve a grabbed line's drag intent from the touch travel (px) since the grab.
27
39
  * Once a line is grabbed it **owns** the touch: any drag past `threshold` px in
@@ -1 +1 @@
1
- {"version":3,"file":"referenceDrag.d.ts","sourceRoot":"","sources":["../../src/math/referenceDrag.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;2BAC2B;AAC3B,wBAAgB,aAAa,CAC3B,KAAK,EAAE,MAAM,EACb,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,GACxB,MAAM,CAMR;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,MAAM,EAAE,EAClB,CAAC,EAAE,MAAM,EACT,IAAI,EAAE,MAAM,GACX,MAAM,CAcR;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAAE,EAClB,CAAC,EAAE,MAAM,EACT,IAAI,EAAE,MAAM,GACX,OAAO,CAIT;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,SAAS,EAAE,MAAM,GAChB,UAAU,GAAG,MAAM,CAKrB;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,GACxB,OAAO,CAQT"}
1
+ {"version":3,"file":"referenceDrag.d.ts","sourceRoot":"","sources":["../../src/math/referenceDrag.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;2BAC2B;AAC3B,wBAAgB,aAAa,CAC3B,KAAK,EAAE,MAAM,EACb,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,GACxB,MAAM,CAMR;AAED;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,CAAC,EAAE,MAAM,CAAC;IACV,MAAM,EAAE,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC,EAAE,CAAC;CACnE;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,MAAM,EAAE,EAClB,CAAC,EAAE,MAAM,EACT,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,cAAc,GACpB,MAAM,CAgBR;AAED;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAAE,EAClB,CAAC,EAAE,MAAM,EACT,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,cAAc,GACpB,OAAO,CAIT;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,SAAS,EAAE,MAAM,GAChB,UAAU,GAAG,MAAM,CAKrB;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,GACxB,OAAO,CAQT"}
@@ -23,8 +23,8 @@ export interface ReferenceGrouping {
23
23
  }
24
24
  /**
25
25
  * Single-linkage cluster of reference-line handle Ys: lines whose sorted Y gaps are
26
- * all `<= radius` chain into one group. Entries `< 0` (not a Form-A line / off the
27
- * canvas) are ignored. Returns which lines are collapsed (`hidden`) plus a centroid
26
+ * all `<= radius` chain into one group. Entries `< 0` (not a Form-A line / not laid
27
+ * out) are ignored. Returns which lines are collapsed (`hidden`) plus a centroid
28
28
  * + count per multi-line cluster. A non-positive `radius` disables grouping.
29
29
  */
30
30
  export declare function groupReferenceLines(ys: number[], radius: number): ReferenceGrouping;
@@ -43,7 +43,9 @@ linear?: boolean,
43
43
  /** First point index to draw (inclusive). The caller must moveTo this point. */
44
44
  startPoint?: number,
45
45
  /** Last point index to draw (exclusive). Defaults to the full array. */
46
- endPoint?: number): void;
46
+ endPoint?: number,
47
+ /** Optional paired sinks receive identical verbs from the same curve math. */
48
+ second?: SplinePathSink, third?: SplinePathSink): void;
47
49
  /**
48
50
  * Value of the Fritsch–Carlson monotone cubic — the same curve {@link drawSpline}
49
51
  * renders — at `time`. Use this to anchor overlays (e.g. markers) exactly on the
@@ -1 +1 @@
1
- {"version":3,"file":"spline.d.ts","sourceRoot":"","sources":["../../src/math/spline.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE/C;;;;;;GAMG;AACH,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,CAAC,EAAE,MAAM,EAAE,CAAC;IACZ,CAAC,EAAE,MAAM,EAAE,CAAC;CACb;AAED,uEAAuE;AACvE,wBAAgB,iBAAiB,IAAI,aAAa,CAEjD;AAED;;;;;;;;;;;;;GAaG;AACH;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC;IAC1C,OAAO,EAAE,CACP,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,KACN,OAAO,CAAC;CACd,CAAC;AAEF,wBAAgB,UAAU,CACxB,IAAI,EAAE,cAAc,EACpB,GAAG,EAAE,MAAM,EAAE,EACb,OAAO,CAAC,EAAE,aAAa;AACvB;2EAC2E;AAC3E,MAAM,UAAQ;AACd,gFAAgF;AAChF,UAAU,SAAI;AACd,wEAAwE;AACxE,QAAQ,SAAkB,QAyE3B;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,cAAc,EAAE,EACxB,IAAI,EAAE,MAAM,GACX,MAAM,GAAG,IAAI,CAoEf"}
1
+ {"version":3,"file":"spline.d.ts","sourceRoot":"","sources":["../../src/math/spline.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE/C;;;;;;GAMG;AACH,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,CAAC,EAAE,MAAM,EAAE,CAAC;IACZ,CAAC,EAAE,MAAM,EAAE,CAAC;CACb;AAED,uEAAuE;AACvE,wBAAgB,iBAAiB,IAAI,aAAa,CAEjD;AAED;;;;;;;;;;;;;GAaG;AACH;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC;IAC1C,OAAO,EAAE,CACP,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,KACN,OAAO,CAAC;CACd,CAAC;AAEF,wBAAgB,UAAU,CACxB,IAAI,EAAE,cAAc,EACpB,GAAG,EAAE,MAAM,EAAE,EACb,OAAO,CAAC,EAAE,aAAa;AACvB;2EAC2E;AAC3E,MAAM,UAAQ;AACd,gFAAgF;AAChF,UAAU,SAAI;AACd,wEAAwE;AACxE,QAAQ,SAAkB;AAC1B,8EAA8E;AAC9E,MAAM,CAAC,EAAE,cAAc,EACvB,KAAK,CAAC,EAAE,cAAc,QA8EvB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,cAAc,EAAE,EACxB,IAAI,EAAE,MAAM,GACX,MAAM,GAAG,IAAI,CAoEf"}
@@ -10,6 +10,14 @@ import type { ChartPadding } from "../draw/line";
10
10
  * time phase so the ripple/breathing runs faster or slower (`0` freezes it).
11
11
  */
12
12
  export declare function squigglyYAt(x: number, centerY: number, t: number, base?: number, speed?: number): number;
13
+ /**
14
+ * The squiggle's clock, in seconds: wall time. The loading shell
15
+ * (`LoadingOverlay`) and the reveal's morph (`useChartPaths`) both phase their
16
+ * wave on it rather than on `engine.timestamp`, which a `nowOverride` freezes
17
+ * between data updates (freezing the loading line with it). Sharing one clock
18
+ * keeps the wave continuous where the shell hands over to the morph.
19
+ */
20
+ export declare function squiggleClockSeconds(): number;
13
21
  /**
14
22
  * Build a flat [x0,y0,x1,y1,...] point array for a standalone squiggly line
15
23
  * spanning the full chart area (used in loading / empty state).
@@ -1 +1 @@
1
- {"version":3,"file":"squiggly.d.ts","sourceRoot":"","sources":["../../src/math/squiggly.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEjD;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CACzB,CAAC,EAAE,MAAM,EACT,OAAO,EAAE,MAAM,EACf,CAAC,EAAE,MAAM,EACT,IAAI,SAAK,EACT,KAAK,SAAI,GACR,MAAM,CASR;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,YAAY,EACrB,CAAC,EAAE,MAAM,EACT,IAAI,SAAK,EACT,KAAK,SAAI,EACT,GAAG,CAAC,EAAE,MAAM,EAAE,GACb,MAAM,EAAE,CAqBV;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,MAAM,EAAE,EACjB,CAAC,EAAE,MAAM,EACT,OAAO,EAAE,MAAM,EACf,IAAI,SAAK,EACT,KAAK,SAAI,EACT,GAAG,CAAC,EAAE,MAAM,EAAE,GACb,MAAM,EAAE,CAUV;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAI5C;AAED;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CACvB,IAAI,EAAE,MAAM,EAAE,EACd,EAAE,EAAE,MAAM,EAAE,EACZ,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,YAAY,EACrB,WAAW,EAAE,MAAM,EACnB,GAAG,CAAC,EAAE,MAAM,EAAE,GACb,MAAM,EAAE,CAqBV"}
1
+ {"version":3,"file":"squiggly.d.ts","sourceRoot":"","sources":["../../src/math/squiggly.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEjD;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CACzB,CAAC,EAAE,MAAM,EACT,OAAO,EAAE,MAAM,EACf,CAAC,EAAE,MAAM,EACT,IAAI,SAAK,EACT,KAAK,SAAI,GACR,MAAM,CASR;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAG7C;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,YAAY,EACrB,CAAC,EAAE,MAAM,EACT,IAAI,SAAK,EACT,KAAK,SAAI,EACT,GAAG,CAAC,EAAE,MAAM,EAAE,GACb,MAAM,EAAE,CAqBV;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,MAAM,EAAE,EACjB,CAAC,EAAE,MAAM,EACT,OAAO,EAAE,MAAM,EACf,IAAI,SAAK,EACT,KAAK,SAAI,EACT,GAAG,CAAC,EAAE,MAAM,EAAE,GACb,MAAM,EAAE,CAUV;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAI5C;AAED;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CACvB,IAAI,EAAE,MAAM,EAAE,EACd,EAAE,EAAE,MAAM,EAAE,EACZ,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,YAAY,EACrB,WAAW,EAAE,MAAM,EACnB,GAAG,CAAC,EAAE,MAAM,EAAE,GACb,MAAM,EAAE,CAqBV"}
package/dist/types.d.ts CHANGED
@@ -164,6 +164,18 @@ export interface ReferenceLine {
164
164
  * it controlled. No effect on bands / time bands. Default `false`.
165
165
  */
166
166
  draggable?: boolean;
167
+ /**
168
+ * Where along a draggable line a press may grab it: a canvas x-range in px,
169
+ * `[from, to]`, ends included — typically the span of a custom tag drawn with
170
+ * `renderReferenceLine` (measure it with `onLayout`; a left-pinned tag starts 2 px
171
+ * inside the plot's left edge). Omit to grab the line anywhere along it (the
172
+ * default). With a range, a pan, scrub or page scroll that merely starts near the
173
+ * line no longer moves it; a press inside the range grabs it as before (same Y
174
+ * reach). `from > to` makes the line ungrabbable. A JS value: leave a little
175
+ * slack for a tag that changes width (off-axis, a live price). Applies only to
176
+ * draggable Form-A lines.
177
+ */
178
+ grabRange?: [number, number];
167
179
  /**
168
180
  * Snap the dragged value to this increment (e.g. `0.01` for cents, `0.5` for a
169
181
  * tick size) so drops land on round levels. Omit for free dragging. Applies only
@@ -303,7 +315,9 @@ export interface ReferenceLineRenderProps {
303
315
  * lines whose handles fall within {@link ReferenceLineGroupingConfig.radius} px of
304
316
  * each other collapse into a single count handle, so a cluster of nearby orders /
305
317
  * alerts reads as one tag instead of an unreadable pile. Pass `true` for defaults
306
- * or an object to tune the proximity radius.
318
+ * or an object to tune the proximity radius. Badged off-axis lines group at either
319
+ * plot edge; off-axis lines with no badge are hidden and do not count. Custom tags
320
+ * are excluded.
307
321
  */
308
322
  export interface ReferenceLineGroupingConfig {
309
323
  /**
@@ -708,8 +722,8 @@ export interface YAxisConfig {
708
722
  * numbers; they track the live range each frame.
709
723
  *
710
724
  * `minGap` still acts as a floor: if `count` labels won't fit at least
711
- * `minGap` px apart, the count is reduced to what fits. Clamped to at most 15
712
- * (the label pool size). Omit (or `0`) for the default dynamic grid.
725
+ * `minGap` px apart, the count is reduced to what fits. Clamped to at most 15.
726
+ * Omit (or `0`) for the default dynamic grid.
713
727
  */
714
728
  count?: number;
715
729
  /**
@@ -2141,6 +2155,24 @@ export interface LoadingConfig {
2141
2155
  */
2142
2156
  axisLabels?: boolean;
2143
2157
  }
2158
+ /** Y-range easing shared by both charts, independent of value/window tracking. */
2159
+ export interface RangeAnimationConfig {
2160
+ /** Ease outward bounds instead of snapping. Default `false`. */
2161
+ animateExpansion?: boolean;
2162
+ /**
2163
+ * Fraction of the remaining gap closed per 60fps frame when a bound expands.
2164
+ * Inherits `smoothing`; only used with `animateExpansion: true`. Finite values
2165
+ * are clamped to 0..1; non-finite values inherit `smoothing`.
2166
+ */
2167
+ expansionSmoothing?: number;
2168
+ /**
2169
+ * Fraction of the remaining gap closed per 60fps frame when a bound contracts.
2170
+ * Inherits `smoothing`. Finite values are clamped to 0..1; non-finite values
2171
+ * inherit `smoothing`. While animated expansion moves toward a disjoint fit,
2172
+ * contraction is limited to the expansion speed so bounds cannot cross.
2173
+ */
2174
+ contractionSmoothing?: number;
2175
+ }
2144
2176
  /** Props shared between `LiveChart` and `LiveChartSeries`. */
2145
2177
  export interface LiveChartCoreProps {
2146
2178
  /** Color scheme. Default `"dark"`. */
@@ -2207,6 +2239,14 @@ export interface LiveChartCoreProps {
2207
2239
  * `lerpSpeed`. Default `0.08`.
2208
2240
  */
2209
2241
  smoothing?: number;
2242
+ /**
2243
+ * Control Y-range expansion and contraction independently of `smoothing` for
2244
+ * value/window tracking. Omission preserves instant expansion and eased
2245
+ * contraction. Uses frame-rate-independent exponential easing, not a fixed
2246
+ * duration. `smoothing: 1`, explicit `snapKey` changes, static charts, and active
2247
+ * manual Y-scale dragging remain immediate. Axis-label fades use `metrics.grid`.
2248
+ */
2249
+ rangeAnimation?: RangeAnimationConfig;
2210
2250
  /**
2211
2251
  * Snap the framing to its target in a single frame whenever this key changes —
2212
2252
  * without giving up smooth live ticks. On a timeframe / dataset switch, the
@@ -2577,6 +2617,15 @@ export interface LiveChartProps extends LiveChartCoreProps {
2577
2617
  * @experimental
2578
2618
  */
2579
2619
  isFrameLoopActive?: SharedValue<boolean>;
2620
+ /**
2621
+ * Experimental single-series demand scheduling. Stop engine frames after a
2622
+ * paused, parked, or fixed-time chart settles; shared input changes and
2623
+ * gestures wake it on the UI thread. Default false. Live scrolling, pulse,
2624
+ * loading/reveal, and enabled degen/trade effects keep the engine awake.
2625
+ * Does not cache a bitmap or disable gestures. `static` takes precedence.
2626
+ * @experimental
2627
+ */
2628
+ autoSleep?: boolean;
2580
2629
  /**
2581
2630
  * Optional development counter for engine frames that did or did not change
2582
2631
  * tracked engine values. It is not a count of Skia redraws. Supplying it adds