react-native-livechart 2.0.1 → 3.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -3
- package/dist/components/AxisLabelOverlay.d.ts +29 -0
- package/dist/components/AxisLabelOverlay.d.ts.map +1 -0
- package/dist/components/CrosshairLine.d.ts +12 -1
- package/dist/components/CrosshairLine.d.ts.map +1 -1
- package/dist/components/CrosshairOverlay.d.ts +15 -1
- package/dist/components/CrosshairOverlay.d.ts.map +1 -1
- package/dist/components/DegenParticlesOverlay.d.ts +17 -0
- package/dist/components/DegenParticlesOverlay.d.ts.map +1 -1
- package/dist/components/LiveChart.d.ts.map +1 -1
- package/dist/components/LiveChartSeries.d.ts.map +1 -1
- package/dist/components/LoadingOverlay.d.ts.map +1 -1
- package/dist/components/MarkerOverlay.d.ts.map +1 -1
- package/dist/components/MultiSeriesValueLines.d.ts.map +1 -1
- package/dist/components/ReferenceLineOverlay.d.ts.map +1 -1
- package/dist/components/SelectionDot.d.ts +32 -0
- package/dist/components/SelectionDot.d.ts.map +1 -0
- package/dist/components/ValueLineOverlay.d.ts.map +1 -1
- package/dist/components/XAxisOverlay.d.ts.map +1 -1
- package/dist/components/YAxisOverlay.d.ts.map +1 -1
- package/dist/core/resolveConfig.d.ts +46 -1
- package/dist/core/resolveConfig.d.ts.map +1 -1
- package/dist/core/useLiveChartEngine.d.ts +6 -0
- package/dist/core/useLiveChartEngine.d.ts.map +1 -1
- package/dist/draw/particleAtlas.d.ts +39 -0
- package/dist/draw/particleAtlas.d.ts.map +1 -0
- package/dist/hooks/crosshairShared.d.ts +10 -0
- package/dist/hooks/crosshairShared.d.ts.map +1 -1
- package/dist/hooks/useBadge.d.ts +2 -2
- package/dist/hooks/useBadge.d.ts.map +1 -1
- package/dist/hooks/useCandlePaths.d.ts +11 -11
- package/dist/hooks/useCandlePaths.d.ts.map +1 -1
- package/dist/hooks/useChartColors.d.ts +5 -0
- package/dist/hooks/useChartColors.d.ts.map +1 -1
- package/dist/hooks/useChartPaths.d.ts +8 -7
- package/dist/hooks/useChartPaths.d.ts.map +1 -1
- package/dist/hooks/useChartReveal.d.ts +3 -1
- package/dist/hooks/useChartReveal.d.ts.map +1 -1
- package/dist/hooks/useCrosshair.d.ts +1 -1
- package/dist/hooks/useCrosshair.d.ts.map +1 -1
- package/dist/hooks/useCrosshairSeries.d.ts +1 -1
- package/dist/hooks/useCrosshairSeries.d.ts.map +1 -1
- package/dist/hooks/useDegen.d.ts +3 -1
- package/dist/hooks/useDegen.d.ts.map +1 -1
- package/dist/hooks/useMarkers.d.ts +3 -1
- package/dist/hooks/useMarkers.d.ts.map +1 -1
- package/dist/hooks/useMultiSeriesLinePaths.d.ts +9 -8
- package/dist/hooks/useMultiSeriesLinePaths.d.ts.map +1 -1
- package/dist/hooks/usePathBuilder.d.ts +27 -0
- package/dist/hooks/usePathBuilder.d.ts.map +1 -0
- package/dist/hooks/useTradeStream.d.ts +3 -1
- package/dist/hooks/useTradeStream.d.ts.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/math/spline.d.ts +10 -2
- package/dist/math/spline.d.ts.map +1 -1
- package/dist/types.d.ts +97 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/components/AxisLabelOverlay.tsx +133 -0
- package/src/components/CrosshairLine.tsx +27 -0
- package/src/components/CrosshairOverlay.tsx +50 -18
- package/src/components/DegenParticlesOverlay.tsx +93 -109
- package/src/components/LiveChart.tsx +66 -10
- package/src/components/LiveChartSeries.tsx +40 -0
- package/src/components/LoadingOverlay.tsx +15 -29
- package/src/components/MarkerOverlay.tsx +23 -28
- package/src/components/MultiSeriesValueLines.tsx +20 -40
- package/src/components/ReferenceLineOverlay.tsx +65 -107
- package/src/components/SelectionDot.tsx +92 -0
- package/src/components/ValueLineOverlay.tsx +9 -28
- package/src/components/XAxisOverlay.tsx +9 -29
- package/src/components/YAxisOverlay.tsx +6 -22
- package/src/core/resolveConfig.ts +98 -0
- package/src/core/useLiveChartEngine.ts +78 -27
- package/src/draw/markerAtlas.ts +9 -9
- package/src/draw/particleAtlas.ts +95 -0
- package/src/hooks/crosshairShared.ts +26 -0
- package/src/hooks/useBadge.ts +17 -32
- package/src/hooks/useCandlePaths.ts +27 -64
- package/src/hooks/useChartColors.ts +19 -0
- package/src/hooks/useChartPaths.ts +27 -39
- package/src/hooks/useChartReveal.ts +7 -4
- package/src/hooks/useCrosshair.ts +46 -7
- package/src/hooks/useCrosshairSeries.ts +47 -8
- package/src/hooks/useDegen.ts +6 -0
- package/src/hooks/useMarkers.ts +3 -0
- package/src/hooks/useMultiSeriesLinePaths.ts +26 -28
- package/src/hooks/usePathBuilder.ts +42 -0
- package/src/hooks/useTradeStream.ts +3 -0
- package/src/index.ts +4 -0
- package/src/math/spline.ts +22 -2
- package/src/types.ts +101 -0
package/README.md
CHANGED
|
@@ -15,9 +15,11 @@ High-performance **live** line and candlestick charts for React Native, built on
|
|
|
15
15
|
|
|
16
16
|
🤖 **Docs MCP** — point an AI assistant (Claude, Cursor, …) at the docs via the hosted MCP server: `https://react-native-livechart.brandtnewlabs.com/mcp`
|
|
17
17
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
18
|
+
<p align="center">
|
|
19
|
+
<img src="https://raw.githubusercontent.com/brandtnewlabs/react-native-livechart/main/assets/images/hero.webp" alt="react-native-livechart live demo" width="480" />
|
|
20
|
+
</p>
|
|
21
|
+
|
|
22
|
+
<p align="center"><a href="https://react-native-livechart.brandtnewlabs.com"><b>▶ Watch the full video demos in the docs →</b></a></p>
|
|
21
23
|
|
|
22
24
|
> The design, feature set, and API shape are **conceptually inspired by [liveline](https://github.com/benjitaylor/liveline)** — Benji Taylor's real-time canvas chart for React — reimagined for React Native. This is **not** a fork; see [Acknowledgments](#acknowledgments).
|
|
23
25
|
|
|
@@ -32,6 +34,10 @@ High-performance **live** line and candlestick charts for React Native, built on
|
|
|
32
34
|
- ⏳ **Loading** (breathing-line shell) and **paused** states out of the box
|
|
33
35
|
- 🧵 **SharedValue-driven** rendering — history and live values stay on the UI thread
|
|
34
36
|
|
|
37
|
+
## Demos
|
|
38
|
+
|
|
39
|
+
See every feature in motion — line & area, candlestick, multi-series, scrubbing, momentum & degen, markers, theming, and more — in the **[documentation](https://react-native-livechart.brandtnewlabs.com)**.
|
|
40
|
+
|
|
35
41
|
## Install
|
|
36
42
|
|
|
37
43
|
```bash
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { ResolvedAxisLabelConfig } from "../core/resolveConfig";
|
|
2
|
+
import type { ChartEngineLayout } from "../core/useLiveChartEngine";
|
|
3
|
+
import type { ChartPadding } from "../draw/line";
|
|
4
|
+
/**
|
|
5
|
+
* React Native overlay (NOT Skia) floating axis edge labels over the Skia
|
|
6
|
+
* canvas — `topLabel` pinned to the plot's top edge and `bottomLabel` to its
|
|
7
|
+
* bottom edge (Robinhood-style high/low values).
|
|
8
|
+
*
|
|
9
|
+
* For each side: a resolved config with a `render` floats that custom element;
|
|
10
|
+
* otherwise the built-in {@link BuiltInAxisValueLabel} shows the chart's current
|
|
11
|
+
* `engine.displayMax` (top) / `engine.displayMin` (bottom) — the live Y-axis
|
|
12
|
+
* bounds — formatted with the config's `format` (falling back to the chart's
|
|
13
|
+
* `formatValue`) in the config `color` (falling back to `defaultColor`).
|
|
14
|
+
*
|
|
15
|
+
* Because the chart's `<View>` is the canvas size, the plot's top edge sits
|
|
16
|
+
* `padding.top` px from the top and its bottom edge `padding.bottom` px from
|
|
17
|
+
* the bottom — so positioning needs only the resolved padding (no live height,
|
|
18
|
+
* no SharedValues). `pointerEvents="none"` keeps the labels display-only so they
|
|
19
|
+
* never intercept the scrub pan gesture.
|
|
20
|
+
*/
|
|
21
|
+
export declare function AxisLabelOverlay({ topLabel, bottomLabel, engine, formatValue, defaultColor, padding, }: {
|
|
22
|
+
topLabel: ResolvedAxisLabelConfig | null;
|
|
23
|
+
bottomLabel: ResolvedAxisLabelConfig | null;
|
|
24
|
+
engine: ChartEngineLayout;
|
|
25
|
+
formatValue: (v: number) => string;
|
|
26
|
+
defaultColor: string;
|
|
27
|
+
padding: ChartPadding;
|
|
28
|
+
}): import("react/jsx-runtime").JSX.Element | null;
|
|
29
|
+
//# sourceMappingURL=AxisLabelOverlay.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AxisLabelOverlay.d.ts","sourceRoot":"","sources":["../../src/components/AxisLabelOverlay.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AA4CjD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,QAAQ,EACR,WAAW,EACX,MAAM,EACN,WAAW,EACX,YAAY,EACZ,OAAO,GACR,EAAE;IACD,QAAQ,EAAE,uBAAuB,GAAG,IAAI,CAAC;IACzC,WAAW,EAAE,uBAAuB,GAAG,IAAI,CAAC;IAC5C,MAAM,EAAE,iBAAiB,CAAC;IAC1B,WAAW,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IACnC,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,YAAY,CAAC;CACvB,kDAgDA"}
|
|
@@ -1,17 +1,28 @@
|
|
|
1
1
|
import { type SharedValue } from "react-native-reanimated";
|
|
2
2
|
import { type ChartPadding } from "../draw/line";
|
|
3
3
|
import type { LiveChartPalette } from "../types";
|
|
4
|
+
import type { ResolvedSelectionDotConfig } from "../core/resolveConfig";
|
|
4
5
|
import type { ChartEngineLayout } from "../core/useLiveChartEngine";
|
|
5
6
|
/**
|
|
6
7
|
* Crosshair vertical line + dim region to the right. No tooltip pill —
|
|
7
8
|
* multi-series delivers scrub data via `onScrub` / `onScrubWorklet` callbacks.
|
|
8
9
|
*/
|
|
9
|
-
export declare function CrosshairLine({ scrubX, crosshairOpacity, engine, padding, palette, dimOpacity, liveDotExtent, crosshairLineColor, crosshairDimColor, }: {
|
|
10
|
+
export declare function CrosshairLine({ scrubX, crosshairOpacity, engine, padding, palette, selectionDot, selectionY, scrubActive, selectionColor, dimOpacity, liveDotExtent, crosshairLineColor, crosshairDimColor, }: {
|
|
10
11
|
scrubX: SharedValue<number>;
|
|
11
12
|
crosshairOpacity: SharedValue<number>;
|
|
12
13
|
engine: ChartEngineLayout;
|
|
13
14
|
padding: ChartPadding;
|
|
14
15
|
palette: LiveChartPalette;
|
|
16
|
+
/** Resolved selection-dot config; `null` hides it, a `component` renders the
|
|
17
|
+
* consumer's dot, otherwise the built-in dot. */
|
|
18
|
+
selectionDot?: ResolvedSelectionDotConfig | null;
|
|
19
|
+
/** Scrub intersection Y in canvas px (the value the dot marks); -1 hides it. */
|
|
20
|
+
selectionY?: SharedValue<number>;
|
|
21
|
+
/** Whether scrubbing is active (passed through to a custom dot). */
|
|
22
|
+
scrubActive?: SharedValue<number> | SharedValue<boolean>;
|
|
23
|
+
/** Fallback selection-dot color (leading-series color), used when the config's
|
|
24
|
+
* own `color` is unset. */
|
|
25
|
+
selectionColor?: string;
|
|
15
26
|
/** Opacity of content right of the crosshair (dstOut fade). Default 0.3. */
|
|
16
27
|
dimOpacity?: number;
|
|
17
28
|
/** How far the live series dots extend past the plot's right edge. The dim
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CrosshairLine.d.ts","sourceRoot":"","sources":["../../src/components/CrosshairLine.tsx"],"names":[],"mappings":"AACA,OAAO,EAAmB,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC5E,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AACjD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"CrosshairLine.d.ts","sourceRoot":"","sources":["../../src/components/CrosshairLine.tsx"],"names":[],"mappings":"AACA,OAAO,EAAmB,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC5E,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AACjD,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AACxE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAGpE;;;GAGG;AACH,wBAAgB,aAAa,CAAC,EAC5B,MAAM,EACN,gBAAgB,EAChB,MAAM,EACN,OAAO,EACP,OAAO,EACP,YAAY,EACZ,UAAU,EACV,WAAW,EACX,cAAc,EACd,UAAgB,EAChB,aAAiB,EACjB,kBAAkB,EAClB,iBAAiB,GAClB,EAAE;IACD,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC5B,gBAAgB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACtC,MAAM,EAAE,iBAAiB,CAAC;IAC1B,OAAO,EAAE,YAAY,CAAC;IACtB,OAAO,EAAE,gBAAgB,CAAC;IAC1B;sDACkD;IAClD,YAAY,CAAC,EAAE,0BAA0B,GAAG,IAAI,CAAC;IACjD,gFAAgF;IAChF,UAAU,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACjC,oEAAoE;IACpE,WAAW,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;IACzD;gCAC4B;IAC5B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,4EAA4E;IAC5E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;6DAGyD;IACzD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B,2CAqFA"}
|
|
@@ -4,8 +4,9 @@ import { type SharedValue } from "react-native-reanimated";
|
|
|
4
4
|
import { type ChartPadding } from "../draw/line";
|
|
5
5
|
import { type TooltipLayout } from "../hooks/crosshairShared";
|
|
6
6
|
import type { LiveChartPalette } from "../types";
|
|
7
|
+
import type { ResolvedSelectionDotConfig } from "../core/resolveConfig";
|
|
7
8
|
import type { ChartEngineLayout } from "../core/useLiveChartEngine";
|
|
8
|
-
export declare function CrosshairOverlay({ scrubX, crosshairOpacity, tooltipLayout, engine, padding, palette, font, showTooltip, children, dimOpacity, liveDotExtent, crosshairLineColor, crosshairDimColor, tooltipBackground, tooltipColor, tooltipBorderColor, }: {
|
|
9
|
+
export declare function CrosshairOverlay({ scrubX, crosshairOpacity, tooltipLayout, engine, padding, palette, font, showTooltip, children, renderTooltip, selectionDot, selectionY, scrubActive, selectionColor, dimOpacity, liveDotExtent, crosshairLineColor, crosshairDimColor, tooltipBackground, tooltipColor, tooltipBorderColor, }: {
|
|
9
10
|
scrubX: SharedValue<number>;
|
|
10
11
|
crosshairOpacity: SharedValue<number>;
|
|
11
12
|
tooltipLayout: SharedValue<TooltipLayout>;
|
|
@@ -18,6 +19,19 @@ export declare function CrosshairOverlay({ scrubX, crosshairOpacity, tooltipLayo
|
|
|
18
19
|
* text (e.g. the multi-line candle stack). Passed as children so it composes
|
|
19
20
|
* instead of being threaded through as a JSX-valued prop. */
|
|
20
21
|
children?: ReactNode;
|
|
22
|
+
/** Public custom-tooltip hook for line mode: when provided (and no `children`
|
|
23
|
+
* are passed), its result replaces the default value/time tooltip body. */
|
|
24
|
+
renderTooltip?: () => ReactNode;
|
|
25
|
+
/** Resolved selection-dot config; `null` hides it, a `component` renders the
|
|
26
|
+
* consumer's dot, otherwise the built-in dot. */
|
|
27
|
+
selectionDot?: ResolvedSelectionDotConfig | null;
|
|
28
|
+
/** Scrub intersection Y in canvas px (the value the dot marks); -1 hides it. */
|
|
29
|
+
selectionY?: SharedValue<number>;
|
|
30
|
+
/** Whether scrubbing is active (passed through to a custom dot). */
|
|
31
|
+
scrubActive?: SharedValue<number> | SharedValue<boolean>;
|
|
32
|
+
/** Fallback selection-dot color (accent / leading-series color), used when the
|
|
33
|
+
* config's own `color` is unset. */
|
|
34
|
+
selectionColor?: string;
|
|
21
35
|
/** Opacity of content right of the crosshair (dstOut fade). Default 0.3. */
|
|
22
36
|
dimOpacity?: number;
|
|
23
37
|
/** How far the live dot (and its pulse ring) extends past the plot's right
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CrosshairOverlay.d.ts","sourceRoot":"","sources":["../../src/components/CrosshairOverlay.tsx"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,MAAM,EACZ,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAmB,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC5E,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AACjD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"CrosshairOverlay.d.ts","sourceRoot":"","sources":["../../src/components/CrosshairOverlay.tsx"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,MAAM,EACZ,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAmB,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC5E,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AACjD,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AACxE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAKpE,wBAAgB,gBAAgB,CAAC,EAC/B,MAAM,EACN,gBAAgB,EAChB,aAAa,EACb,MAAM,EACN,OAAO,EACP,OAAO,EACP,IAAI,EACJ,WAAkB,EAClB,QAAQ,EACR,aAAa,EACb,YAAY,EACZ,UAAU,EACV,WAAW,EACX,cAAc,EACd,UAAgB,EAChB,aAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,YAAY,EACZ,kBAAkB,GACnB,EAAE;IACD,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC5B,gBAAgB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACtC,aAAa,EAAE,WAAW,CAAC,aAAa,CAAC,CAAC;IAC1C,MAAM,EAAE,iBAAiB,CAAC;IAC1B,OAAO,EAAE,YAAY,CAAC;IACtB,OAAO,EAAE,gBAAgB,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;kEAE8D;IAC9D,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB;gFAC4E;IAC5E,aAAa,CAAC,EAAE,MAAM,SAAS,CAAC;IAChC;sDACkD;IAClD,YAAY,CAAC,EAAE,0BAA0B,GAAG,IAAI,CAAC;IACjD,gFAAgF;IAChF,UAAU,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACjC,oEAAoE;IACpE,WAAW,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;IACzD;yCACqC;IACrC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,4EAA4E;IAC5E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;yCAIqC;IACrC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B,2CA8IA"}
|
|
@@ -2,6 +2,23 @@ import { type SharedValue } from "react-native-reanimated";
|
|
|
2
2
|
import type { LiveChartPalette } from "../types";
|
|
3
3
|
import type { ChartEngineLayout } from "../core/useLiveChartEngine";
|
|
4
4
|
type DegenPack = SharedValue<Float64Array<ArrayBuffer>>;
|
|
5
|
+
/**
|
|
6
|
+
* Renders the degen particle burst with a single `drawAtlas` call.
|
|
7
|
+
*
|
|
8
|
+
* Every active particle shares one pre-rasterized white-circle sprite and
|
|
9
|
+
* differs only in position, scale, color, and opacity — the ideal `drawAtlas`
|
|
10
|
+
* case. A single per-frame worklet projects the packed ring buffer (layout:
|
|
11
|
+
* `[x, y, vx, vy, t0, active, size, colorIndex]`, stride = DEGEN_STRIDE = 8;
|
|
12
|
+
* see `math/degenTick.ts`) into transforms + per-sprite colors, replacing the
|
|
13
|
+
* old O(slots × 4 derived values + 1 `<Circle>` each) fan-out with O(1) mappers
|
|
14
|
+
* and one draw.
|
|
15
|
+
*
|
|
16
|
+
* Per-particle color/opacity is baked into the sprite color (`rgba(r,g,b,a)`)
|
|
17
|
+
* and applied with the `"modulate"` blend mode, which multiplies the white
|
|
18
|
+
* sprite by each color — so a white AA circle becomes a soft, correctly-tinted,
|
|
19
|
+
* correctly-faded particle, visually equivalent to the old `<Circle color
|
|
20
|
+
* opacity>`.
|
|
21
|
+
*/
|
|
5
22
|
export declare function DegenParticlesOverlay({ pack, packRevision, engine, palette, particleSlotCount, particleBurstDurationSec, particleOpacity, colors, }: {
|
|
6
23
|
pack: DegenPack;
|
|
7
24
|
packRevision: SharedValue<number>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DegenParticlesOverlay.d.ts","sourceRoot":"","sources":["../../src/components/DegenParticlesOverlay.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"DegenParticlesOverlay.d.ts","sourceRoot":"","sources":["../../src/components/DegenParticlesOverlay.tsx"],"names":[],"mappings":"AAOA,OAAO,EAAmB,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAM5E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AACjD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAEpE,KAAK,SAAS,GAAG,WAAW,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,CAAC;AAExD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,qBAAqB,CAAC,EACpC,IAAI,EACJ,YAAY,EACZ,MAAM,EACN,OAAO,EACP,iBAAiB,EACjB,wBAAwB,EACxB,eAAe,EACf,MAAM,GACP,EAAE;IACD,IAAI,EAAE,SAAS,CAAC;IAChB,YAAY,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAClC,MAAM,EAAE,iBAAiB,CAAC;IAC1B,OAAO,EAAE,gBAAgB,CAAC;IAC1B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,wBAAwB,EAAE,MAAM,CAAC;IACjC,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;CACzB,2CAuEA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LiveChart.d.ts","sourceRoot":"","sources":["../../src/components/LiveChart.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"LiveChart.d.ts","sourceRoot":"","sources":["../../src/components/LiveChart.tsx"],"names":[],"mappings":"AAqEA,OAAO,KAAK,EAAE,cAAc,EAAsB,MAAM,UAAU,CAAC;AA4xBnE,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,2CA+D9C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LiveChartSeries.d.ts","sourceRoot":"","sources":["../../src/components/LiveChartSeries.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"LiveChartSeries.d.ts","sourceRoot":"","sources":["../../src/components/LiveChartSeries.tsx"],"names":[],"mappings":"AA+DA,OAAO,KAAK,EAAE,oBAAoB,EAAwB,MAAM,UAAU,CAAC;AAghB3E,wBAAgB,eAAe,CAAC,KAAK,EAAE,oBAAoB,2CAkH1D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LoadingOverlay.d.ts","sourceRoot":"","sources":["../../src/components/LoadingOverlay.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"LoadingOverlay.d.ts","sourceRoot":"","sources":["../../src/components/LoadingOverlay.tsx"],"names":[],"mappings":"AAAA,OAAO,EAQL,KAAK,MAAM,EACZ,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAmB,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAK5E,OAAO,EAIL,KAAK,YAAY,EAClB,MAAM,cAAc,CAAC;AAOtB,OAAO,KAAK,EACV,YAAY,EACZ,iBAAiB,EACjB,gBAAgB,EACjB,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAkBpE,wBAAgB,cAAc,CAAC,EAC7B,MAAM,EACN,OAAO,EACP,OAAO,EACP,IAAI,EACJ,MAAM,EACN,SAAS,EACT,OAAO,EACP,SAAS,EACT,WAAW,EACX,KAAa,EACb,SAAgB,EAChB,YAAqC,EACrC,YAA2C,GAC5C,EAAE;IACD,MAAM,EAAE,iBAAiB,CAAC;IAC1B,OAAO,EAAE,YAAY,CAAC;IACtB,OAAO,EAAE,gBAAgB,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC5B,SAAS,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;IAChC,iEAAiE;IACjE,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG;QAAE,KAAK,EAAE,OAAO,CAAA;KAAE,CAAC;IACnD,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,gFAAgF;IAChF,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,iGAAiG;IACjG,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,2EAA2E;IAC3E,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,iCAAiC;IACjC,YAAY,CAAC,EAAE,iBAAiB,CAAC;CAClC,2CAoNA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MarkerOverlay.d.ts","sourceRoot":"","sources":["../../src/components/MarkerOverlay.tsx"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,MAAM,
|
|
1
|
+
{"version":3,"file":"MarkerOverlay.d.ts","sourceRoot":"","sources":["../../src/components/MarkerOverlay.tsx"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,MAAM,EACZ,MAAM,4BAA4B,CAAC;AAEpC,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;AAejD,OAAO,KAAK,EACV,gBAAgB,EAChB,cAAc,EACd,MAAM,EACN,YAAY,EACb,MAAM,UAAU,CAAC;AA8FlB;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAAC,EAC5B,OAAO,EACP,MAAM,EACN,OAAO,EACP,OAAO,EACP,IAAI,EACJ,MAAM,EACN,QAAQ,GACT,EAAE;IACD,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC;IAC/B,MAAM,EAAE,iBAAiB,CAAC;IAC1B,OAAO,EAAE,YAAY,CAAC;IACtB,OAAO,EAAE,gBAAgB,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,+DAA+D;IAC/D,MAAM,CAAC,EAAE,WAAW,CAAC,YAAY,EAAE,CAAC,CAAC;IACrC,kEAAkE;IAClE,QAAQ,CAAC,EAAE,WAAW,CAAC,cAAc,EAAE,CAAC,CAAC;CAC1C,2CAyHA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MultiSeriesValueLines.d.ts","sourceRoot":"","sources":["../../src/components/MultiSeriesValueLines.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"MultiSeriesValueLines.d.ts","sourceRoot":"","sources":["../../src/components/MultiSeriesValueLines.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AA+DnE,wBAAgB,qBAAqB,CAAC,EACpC,MAAM,EACN,OAAO,EACP,MAAM,EACN,MAAM,GACP,EAAE;IACD,MAAM,EAAE,gBAAgB,CAAC;IACzB,OAAO,EAAE,YAAY,CAAC;IACtB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,MAAM,EAAE,uBAAuB,CAAC;CACjC,2CAeA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReferenceLineOverlay.d.ts","sourceRoot":"","sources":["../../src/components/ReferenceLineOverlay.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"ReferenceLineOverlay.d.ts","sourceRoot":"","sources":["../../src/components/ReferenceLineOverlay.tsx"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,MAAM,EACZ,MAAM,4BAA4B,CAAC;AAGpC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAKjD,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAUhE;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,EACnC,MAAM,EACN,OAAO,EACP,IAAI,EACJ,OAAO,EACP,WAAW,EACX,IAAI,GACL,EAAE;IACD,MAAM,EAAE,iBAAiB,CAAC;IAC1B,OAAO,EAAE,YAAY,CAAC;IACtB,IAAI,EAAE,aAAa,CAAC;IACpB,OAAO,EAAE,gBAAgB,CAAC;IAC1B,WAAW,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IACnC,IAAI,EAAE,MAAM,CAAC;CACd,2CAoOA"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { type SharedValue } from "react-native-reanimated";
|
|
2
|
+
import type { ResolvedSelectionDotConfig } from "../core/resolveConfig";
|
|
3
|
+
/**
|
|
4
|
+
* Built-in selection dot: a filled circle at the scrub intersection plus an
|
|
5
|
+
* optional subtle outer ring (the `ring` config). Drawn only when `y >= 0` (the
|
|
6
|
+
* sentinel for "no dot") — an off-screen Y hides it naturally.
|
|
7
|
+
*/
|
|
8
|
+
export declare function DefaultSelectionDot({ x, y, opacity, color, size, ring, }: {
|
|
9
|
+
x: SharedValue<number>;
|
|
10
|
+
y: SharedValue<number>;
|
|
11
|
+
opacity: SharedValue<number>;
|
|
12
|
+
color: string;
|
|
13
|
+
size: number;
|
|
14
|
+
ring: ResolvedSelectionDotConfig["ring"];
|
|
15
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
16
|
+
/**
|
|
17
|
+
* Resolves the selection-dot slot inside a crosshair overlay: renders nothing
|
|
18
|
+
* when `config` is null or the position is unavailable, the consumer's custom
|
|
19
|
+
* `component` when one is given, and the built-in dot otherwise.
|
|
20
|
+
*
|
|
21
|
+
* `color` is the resolved fallback (line / leading-series color) used when the
|
|
22
|
+
* config's own `color` is unset.
|
|
23
|
+
*/
|
|
24
|
+
export declare function SelectionDotSlot({ config, x, y, active, opacity, color, }: {
|
|
25
|
+
config?: ResolvedSelectionDotConfig | null;
|
|
26
|
+
x: SharedValue<number>;
|
|
27
|
+
y?: SharedValue<number>;
|
|
28
|
+
active?: SharedValue<number> | SharedValue<boolean>;
|
|
29
|
+
opacity: SharedValue<number>;
|
|
30
|
+
color: string;
|
|
31
|
+
}): import("react/jsx-runtime").JSX.Element | null;
|
|
32
|
+
//# sourceMappingURL=SelectionDot.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SelectionDot.d.ts","sourceRoot":"","sources":["../../src/components/SelectionDot.tsx"],"names":[],"mappings":"AACA,OAAO,EAAmB,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC5E,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AAExE;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,EAClC,CAAC,EACD,CAAC,EACD,OAAO,EACP,KAAK,EACL,IAAI,EACJ,IAAI,GACL,EAAE;IACD,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACvB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACvB,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,0BAA0B,CAAC,MAAM,CAAC,CAAC;CAC1C,2CAkBA;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,MAAM,EACN,CAAC,EACD,CAAC,EACD,MAAM,EACN,OAAO,EACP,KAAK,GACN,EAAE;IACD,MAAM,CAAC,EAAE,0BAA0B,GAAG,IAAI,CAAC;IAC3C,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACvB,CAAC,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACxB,MAAM,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;IACpD,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;CACf,kDA0BA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ValueLineOverlay.d.ts","sourceRoot":"","sources":["../../src/components/ValueLineOverlay.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ValueLineOverlay.d.ts","sourceRoot":"","sources":["../../src/components/ValueLineOverlay.tsx"],"names":[],"mappings":"AACA,OAAO,EAAmB,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE5E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAGpE;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,IAAI,EACJ,MAAM,EACN,OAAO,EACP,WAAW,EACX,SAAS,EACT,KAAK,GACN,EAAE;IACD,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC1B,MAAM,EAAE,iBAAiB,CAAC;IAC1B,OAAO,EAAE,YAAY,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5B,KAAK,EAAE,MAAM,CAAC;CACf,2CAkBA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"XAxisOverlay.d.ts","sourceRoot":"","sources":["../../src/components/XAxisOverlay.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"XAxisOverlay.d.ts","sourceRoot":"","sources":["../../src/components/XAxisOverlay.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAmB,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC5E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAGpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAOjD,wBAAgB,YAAY,CAAC,EAC3B,OAAO,EACP,MAAM,EACN,OAAO,EACP,OAAO,EACP,IAAI,GACL,EAAE;IACD,OAAO,EAAE,WAAW,CAAC,UAAU,EAAE,CAAC,CAAC;IACnC,MAAM,EAAE,iBAAiB,CAAC;IAC1B,OAAO,EAAE,YAAY,CAAC;IACtB,OAAO,EAAE,gBAAgB,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC;CACd,2CA8DA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"YAxisOverlay.d.ts","sourceRoot":"","sources":["../../src/components/YAxisOverlay.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"YAxisOverlay.d.ts","sourceRoot":"","sources":["../../src/components/YAxisOverlay.tsx"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,MAAM,EACZ,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAmB,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE5E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAKL,KAAK,YAAY,EAClB,MAAM,cAAc,CAAC;AAGtB,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC/D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAKpE,wBAAgB,YAAY,CAAC,EAC3B,OAAO,EACP,MAAM,EACN,OAAO,EACP,OAAO,EACP,IAAI,EACJ,KAAa,EACb,SAAgB,EAChB,YAAqC,EACrC,gBAAoB,EACpB,SAAS,GACV,EAAE;IACD,OAAO,EAAE,WAAW,CAAC,UAAU,EAAE,CAAC,CAAC;IACnC,MAAM,EAAE,iBAAiB,CAAC;IAC1B,OAAO,EAAE,YAAY,CAAC;IACtB,OAAO,EAAE,gBAAgB,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,4FAA4F;IAC5F,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,8FAA8F;IAC9F,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,+DAA+D;IAC/D,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,gGAAgG;IAChG,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,uEAAuE;IACvE,SAAS,CAAC,EAAE,uBAAuB,CAAC;CACrC,2CAsEA"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import type { BadgeConfig, BadgeVariant, DegenOptions, FontConfig, FontWeight, GradientConfig, GridStyleConfig, LeftEdgeFadeConfig, LegendConfig, LegendStyle, LiveChartMetrics, LiveChartMetricsOverride, DotConfig, DotRingConfig, MultiSeriesDotConfig, PulseConfig, ReferenceLine, ScrubConfig, TradeEvent, ValueLineConfig, XAxisConfig, YAxisConfig } from "../types";
|
|
1
|
+
import type { AxisLabelConfig, BadgeConfig, BadgeVariant, DegenOptions, FontConfig, FontWeight, GradientConfig, GridStyleConfig, LeftEdgeFadeConfig, LegendConfig, LegendStyle, LiveChartMetrics, LiveChartMetricsOverride, DotConfig, DotRingConfig, MultiSeriesDotConfig, PulseConfig, ReferenceLine, ScrubConfig, SelectionDotConfig, SelectionDotProps, SelectionDotRingConfig, TradeEvent, ValueLineConfig, XAxisConfig, YAxisConfig } from "../types";
|
|
2
|
+
import type { ComponentType, ReactElement } from "react";
|
|
2
3
|
import type { SharedValue } from "react-native-reanimated";
|
|
3
4
|
export interface ResolvedValueLineConfig {
|
|
4
5
|
strokeWidth: number;
|
|
@@ -15,6 +16,15 @@ export interface ResolvedBadgeConfig {
|
|
|
15
16
|
export interface ResolvedYAxisConfig {
|
|
16
17
|
minGap: number;
|
|
17
18
|
}
|
|
19
|
+
export interface ResolvedAxisLabelConfig {
|
|
20
|
+
/** undefined → use the chart's `formatValue` at render time. */
|
|
21
|
+
format?: (v: number) => string;
|
|
22
|
+
/** undefined → use the muted default label color at render time. */
|
|
23
|
+
color?: string;
|
|
24
|
+
position: "left" | "right";
|
|
25
|
+
/** When set, the built-in value label is replaced by this custom element. */
|
|
26
|
+
render?: () => ReactElement | null;
|
|
27
|
+
}
|
|
18
28
|
export interface ResolvedXAxisConfig {
|
|
19
29
|
minGap: number;
|
|
20
30
|
}
|
|
@@ -40,6 +50,10 @@ export interface ResolvedGradientConfig {
|
|
|
40
50
|
topOpacity: number | undefined;
|
|
41
51
|
/** undefined → use palette.fillBottom (transparent) at render time */
|
|
42
52
|
bottomOpacity: number | undefined;
|
|
53
|
+
/** Explicit color stops (top → bottom); overrides the opacity stops. */
|
|
54
|
+
colors: string[] | undefined;
|
|
55
|
+
/** Stop positions (0..1) matching `colors` length. */
|
|
56
|
+
positions: number[] | undefined;
|
|
43
57
|
}
|
|
44
58
|
export interface ResolvedPulseConfig {
|
|
45
59
|
interval: number;
|
|
@@ -113,6 +127,12 @@ export declare function resolveBadge(prop: boolean | BadgeConfig | undefined): R
|
|
|
113
127
|
* `true` → defaults, object → merged with defaults, falsy → null.
|
|
114
128
|
*/
|
|
115
129
|
export declare function resolveYAxis(prop: boolean | YAxisConfig | undefined): ResolvedYAxisConfig | null;
|
|
130
|
+
/**
|
|
131
|
+
* Resolves a `topLabel` / `bottomLabel` prop to a fully-typed config or null
|
|
132
|
+
* (no label). Opt-in, so `undefined`/`false` → null; `true` → the built-in
|
|
133
|
+
* value label with defaults; object → configured built-in (or a custom `render`).
|
|
134
|
+
*/
|
|
135
|
+
export declare function resolveAxisLabel(prop: boolean | AxisLabelConfig | undefined): ResolvedAxisLabelConfig | null;
|
|
116
136
|
/**
|
|
117
137
|
* Resolves `xAxis` prop to a fully-typed config or null (disabled).
|
|
118
138
|
* Defaults to enabled (`true`) so a bare `undefined` also returns the defaults.
|
|
@@ -200,6 +220,31 @@ export interface ResolvedMultiSeriesDotConfig extends ResolvedDotConfig {
|
|
|
200
220
|
valueLabel: boolean;
|
|
201
221
|
}
|
|
202
222
|
export declare function resolveMultiSeriesDot(prop: boolean | MultiSeriesDotConfig | undefined): ResolvedMultiSeriesDotConfig;
|
|
223
|
+
/** Resolved selection-dot ring. `color: undefined` → use the dot color. */
|
|
224
|
+
export interface ResolvedSelectionDotRingConfig {
|
|
225
|
+
color: string | undefined;
|
|
226
|
+
width: number;
|
|
227
|
+
}
|
|
228
|
+
/** `undefined`/`true` → ring defaults; `false` → null (no ring). */
|
|
229
|
+
export declare function resolveSelectionDotRing(prop: boolean | SelectionDotRingConfig | undefined): ResolvedSelectionDotRingConfig | null;
|
|
230
|
+
/** Fully-resolved selection-dot styling. */
|
|
231
|
+
export interface ResolvedSelectionDotConfig {
|
|
232
|
+
size: number;
|
|
233
|
+
/** undefined → use the line / leading-series color at render time. */
|
|
234
|
+
color: string | undefined;
|
|
235
|
+
ring: ResolvedSelectionDotRingConfig | null;
|
|
236
|
+
/** When set, the built-in size/color/ring knobs are ignored. */
|
|
237
|
+
component?: ComponentType<SelectionDotProps>;
|
|
238
|
+
}
|
|
239
|
+
/**
|
|
240
|
+
* Resolves the `selectionDot` prop to a fully-typed config or null (hidden).
|
|
241
|
+
* Defaults to ON, so `undefined`/`true` yield the built-in dot.
|
|
242
|
+
* - `false` → `null` (no dot)
|
|
243
|
+
* - `undefined`/`true` → built-in dot with defaults
|
|
244
|
+
* - object → configured built-in dot, or the custom `component` when set
|
|
245
|
+
* (the size/color/ring knobs are still resolved but ignored by the slot)
|
|
246
|
+
*/
|
|
247
|
+
export declare function resolveSelectionDot(prop: boolean | SelectionDotConfig | undefined): ResolvedSelectionDotConfig | null;
|
|
203
248
|
export interface ResolvedLegendConfig {
|
|
204
249
|
visible: boolean;
|
|
205
250
|
compact: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolveConfig.d.ts","sourceRoot":"","sources":["../../src/core/resolveConfig.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,UAAU,EACV,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,YAAY,EACZ,WAAW,EACX,gBAAgB,EAChB,wBAAwB,EACxB,SAAS,EACT,aAAa,EACb,oBAAoB,EACpB,WAAW,EACX,aAAa,EACb,WAAW,EACX,UAAU,EACV,eAAe,EACf,WAAW,EACX,WAAW,EACZ,MAAM,UAAU,CAAC;AAElB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAY3D,MAAM,WAAW,uBAAuB;IACtC,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5B,sDAAsD;IACtD,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3B;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,YAAY,CAAC;IACtB,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,OAAO,GAAG,MAAM,CAAC;IAC3B,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;CAChC;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,+EAA+E;IAC/E,UAAU,EAAE,MAAM,CAAC;IACnB,wCAAwC;IACxC,kBAAkB,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,uCAAuC;IACvC,iBAAiB,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,oCAAoC;IACpC,iBAAiB,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,sCAAsC;IACtC,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,wCAAwC;IACxC,kBAAkB,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,2EAA2E;IAC3E,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,sBAAsB;IACrC,mEAAmE;IACnE,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,sEAAsE;IACtE,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"resolveConfig.d.ts","sourceRoot":"","sources":["../../src/core/resolveConfig.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,6 +15,12 @@ export interface EngineConfig {
|
|
|
15
15
|
nowOverride?: number;
|
|
16
16
|
windowBuffer?: number;
|
|
17
17
|
paused?: boolean;
|
|
18
|
+
/**
|
|
19
|
+
* Loop-free render: settle the display state once (smoothing forced to 1, no
|
|
20
|
+
* per-frame frame callback) for many small charts in a list. See
|
|
21
|
+
* {@link LiveChartProps.static}.
|
|
22
|
+
*/
|
|
23
|
+
static?: boolean;
|
|
18
24
|
mode?: "line" | "candle";
|
|
19
25
|
candles?: SharedValue<CandlePoint[]>;
|
|
20
26
|
liveCandle?: SharedValue<CandlePoint | null>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useLiveChartEngine.d.ts","sourceRoot":"","sources":["../../src/core/useLiveChartEngine.ts"],"names":[],"mappings":"AAQA,OAAO,
|
|
1
|
+
{"version":3,"file":"useLiveChartEngine.d.ts","sourceRoot":"","sources":["../../src/core/useLiveChartEngine.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { type SkImage } from "@shopify/react-native-skia";
|
|
2
|
+
/** A rasterized white-circle sprite + its geometry. */
|
|
3
|
+
export interface ParticleSprite {
|
|
4
|
+
image: SkImage | null;
|
|
5
|
+
/** Side length of the square sprite box (px). */
|
|
6
|
+
size: number;
|
|
7
|
+
/** Radius of the white circle inside the box (px). */
|
|
8
|
+
radius: number;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Rasterize ONE anti-aliased **white** filled circle into a square sprite, once
|
|
12
|
+
* (NOT per frame). Drawing it white lets each particle's per-sprite color
|
|
13
|
+
* modulate (multiply) the texture to its own tint + alpha via `drawAtlas`.
|
|
14
|
+
*
|
|
15
|
+
* Mirrors the PictureRecorder pattern in `markerAtlas.ts`.
|
|
16
|
+
*/
|
|
17
|
+
export declare function buildParticleSprite(): ParticleSprite;
|
|
18
|
+
/** One particle ready to blit: world position + per-sprite scale/alpha/color. */
|
|
19
|
+
export interface ParticleInstance {
|
|
20
|
+
x: number;
|
|
21
|
+
y: number;
|
|
22
|
+
scale: number;
|
|
23
|
+
alpha: number;
|
|
24
|
+
colorIndex: number;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Pure, worklet-safe projection of the packed particle ring buffer into render
|
|
28
|
+
* instances. No Skia — plain numbers only — so it's directly unit-testable.
|
|
29
|
+
*
|
|
30
|
+
* Preserves the exact size/opacity formulas the old per-slot `<Circle>` used:
|
|
31
|
+
* life = max(0, 1 - (now - t0) / burstDur) (skip if dt = now - t0 < 0)
|
|
32
|
+
* r = size * (0.5 + life * 0.5), size = buf[base+6] || 1
|
|
33
|
+
* scale = r / spriteRadius
|
|
34
|
+
* alpha = life * particleOpacity
|
|
35
|
+
* Inactive (active <= 0.5), pre-spawn (dt < 0) and fully-faded (life <= 0)
|
|
36
|
+
* slots are skipped.
|
|
37
|
+
*/
|
|
38
|
+
export declare function buildParticleInstances(buf: Float64Array, slots: number, now: number, burstDur: number, particleOpacity: number, spriteRadius: number): ParticleInstance[];
|
|
39
|
+
//# sourceMappingURL=particleAtlas.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"particleAtlas.d.ts","sourceRoot":"","sources":["../../src/draw/particleAtlas.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,OAAO,EACb,MAAM,4BAA4B,CAAC;AAQpC,uDAAuD;AACvD,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;IACtB,iDAAiD;IACjD,IAAI,EAAE,MAAM,CAAC;IACb,sDAAsD;IACtD,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,IAAI,cAAc,CAcpD;AAED,iFAAiF;AACjF,MAAM,WAAW,gBAAgB;IAC/B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,YAAY,EACjB,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,EAChB,eAAe,EAAE,MAAM,EACvB,YAAY,EAAE,MAAM,GACnB,gBAAgB,EAAE,CAqBpB"}
|
|
@@ -29,8 +29,18 @@ export interface CrosshairState {
|
|
|
29
29
|
scrubValue: SharedValue<number | null>;
|
|
30
30
|
crosshairOpacity: SharedValue<number>;
|
|
31
31
|
tooltipLayout: SharedValue<TooltipLayout>;
|
|
32
|
+
/** Scrub intersection Y in canvas px; -1 when there's no dot to draw
|
|
33
|
+
* (inactive / no value / degenerate range). See {@link computeScrubDotY}. */
|
|
34
|
+
scrubDotY: SharedValue<number>;
|
|
32
35
|
gesture: ReturnType<typeof Gesture.Pan>;
|
|
33
36
|
}
|
|
37
|
+
/**
|
|
38
|
+
* Maps a scrub value to its Y pixel at the crosshair intersection — the same
|
|
39
|
+
* mapping the live dot and tooltip use. Returns -1 when there is no dot to draw
|
|
40
|
+
* (value is null or the canvas isn't laid out); a degenerate (zero) range pins
|
|
41
|
+
* the dot to the vertical center of the plot.
|
|
42
|
+
*/
|
|
43
|
+
export declare function computeScrubDotY(value: number | null, displayMin: number, displayMax: number, canvasHeight: number, padTop: number, padBottom: number): number;
|
|
34
44
|
/**
|
|
35
45
|
* Maps a scrub X position to a window timestamp.
|
|
36
46
|
* Returns -1 when inactive or when the canvas is not yet laid out.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crosshairShared.d.ts","sourceRoot":"","sources":["../../src/hooks/crosshairShared.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE3D,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;AAWjD,MAAM,WAAW,aAAa;IAC5B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,0FAA0F;IAC1F,YAAY,CAAC,EAAE;QACb,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,MAAM,CAAC;QAClB,GAAG,EAAE,OAAO,CAAC;KACd,EAAE,CAAC;CACL;AAED,eAAO,MAAM,cAAc,EAAE,aAY5B,CAAC;AAEF,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC5B,WAAW,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;IAClC,SAAS,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC/B,UAAU,EAAE,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACvC,gBAAgB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACtC,aAAa,EAAE,WAAW,CAAC,aAAa,CAAC,CAAC;IAC1C,OAAO,EAAE,UAAU,CAAC,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC;CACzC;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,WAAW,EAAE,OAAO,EACpB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,YAAY,EACrB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,GACjB,MAAM,CAQR;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,WAAW,EAAE,OAAO,EACpB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,GACnB,MAAM,CAMR;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,OAAO,EACpB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,GAAG,IAAI,EACzB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,YAAY,EACrB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,EAClC,UAAU,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,EACjC,IAAI,EAAE,MAAM;AACZ;;;wEAGwE;AACxE,aAAa,SAAI,GAChB,aAAa,CAmDf;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,WAAW,EAAE,OAAO,EACpB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,OAAO,CAAA;CAAE,EAAE,EACvC,OAAO,EAAE,YAAY,EACrB,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,MAAM;AACZ;sEACsE;AACtE,aAAa,SAAI,GAChB,aAAa,CA2Df;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CACxC,WAAW,EAAE,OAAO,EACpB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,EACzE,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,YAAY,EACrB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,EAClC,UAAU,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,EACjC,IAAI,EAAE,MAAM,EACZ,aAAa,SAAI,GAChB,aAAa,CAmBf;AAED,sEAAsE;AACtE,wBAAgB,sBAAsB,CACpC,WAAW,EAAE,OAAO,EACpB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EAAE,GACtC,MAAM,GAAG,IAAI,CAIf;AAED,6DAA6D;AAC7D,wBAAgB,4BAA4B,CAC1C,WAAW,EAAE,OAAO,EACpB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,GAAG,IAAI,EACzB,OAAO,EAAE,YAAY,EACrB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,EAClC,UAAU,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,EACjC,IAAI,EAAE,MAAM,EACZ,aAAa,SAAI,GAChB,aAAa,CAef"}
|
|
1
|
+
{"version":3,"file":"crosshairShared.d.ts","sourceRoot":"","sources":["../../src/hooks/crosshairShared.ts"],"names":[],"mappings":"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"}
|
package/dist/hooks/useBadge.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { type SkFont
|
|
1
|
+
import { type SkFont } from "@shopify/react-native-skia";
|
|
2
2
|
import { type SharedValue } from "react-native-reanimated";
|
|
3
3
|
import type { ChartEngineWithLiveValue } from "../core/useLiveChartEngine";
|
|
4
4
|
import { type ChartPadding } from "../draw/line";
|
|
5
5
|
import type { BadgeMetrics, BadgeVariant, LiveChartPalette, Momentum } from "../types";
|
|
6
6
|
export declare function useBadge(engine: ChartEngineWithLiveValue, padding: ChartPadding, palette: LiveChartPalette, formatValue: (v: number) => string, font: SkFont, variant?: BadgeVariant, showTail?: boolean, momentum?: SharedValue<Momentum>, position?: "right" | "left", background?: string, badgeMetrics?: BadgeMetrics, badgeColorSpeed?: number): import("react-native-reanimated").DerivedValue<{
|
|
7
|
-
path: SkPath;
|
|
7
|
+
path: import("@shopify/react-native-skia").SkPath;
|
|
8
8
|
textX: number;
|
|
9
9
|
textY: number;
|
|
10
10
|
text: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useBadge.d.ts","sourceRoot":"","sources":["../../src/hooks/useBadge.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"useBadge.d.ts","sourceRoot":"","sources":["../../src/hooks/useBadge.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAGL,KAAK,WAAW,EACjB,MAAM,yBAAyB,CAAC;AAOjC,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAC3E,OAAO,EAGL,KAAK,YAAY,EAClB,MAAM,cAAc,CAAC;AAGtB,OAAO,KAAK,EACV,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,QAAQ,EACT,MAAM,UAAU,CAAC;AAGlB,wBAAgB,QAAQ,CACtB,MAAM,EAAE,wBAAwB,EAChC,OAAO,EAAE,YAAY,EACrB,OAAO,EAAE,gBAAgB,EACzB,WAAW,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,EAClC,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,YAAwB,EACjC,QAAQ,UAAO,EACf,QAAQ,CAAC,EAAE,WAAW,CAAC,QAAQ,CAAC,EAChC,QAAQ,GAAE,OAAO,GAAG,MAAgB,EACpC,UAAU,CAAC,EAAE,MAAM,EACnB,YAAY,GAAE,YAAqC,EACnD,eAAe,GAAE,MAAgD;;;;;;;GAsJlE"}
|
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
import { type SkPath } from "@shopify/react-native-skia";
|
|
2
1
|
import { type SharedValue } from "react-native-reanimated";
|
|
3
2
|
import type { SingleEngineState } from "../core/useLiveChartEngine";
|
|
4
3
|
import type { ChartPadding } from "../draw/line";
|
|
5
4
|
import type { CandleMetrics, CandlePoint } from "../types";
|
|
6
5
|
/**
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
* so
|
|
10
|
-
*
|
|
11
|
-
* ticking).
|
|
6
|
+
* Candle paths (up/down bodies + up/down wicks). Each is built into a reused
|
|
7
|
+
* `Skia.PathBuilder` and finalized with `detach()` each frame — a fresh
|
|
8
|
+
* immutable `SkPath`, so Skia repaints without a per-curve ping-pong and no
|
|
9
|
+
* mutable `SkPath` is retained across frames.
|
|
12
10
|
*/
|
|
13
|
-
export declare function useCandlePaths(engine: SingleEngineState, padding: ChartPadding, candles: SharedValue<CandlePoint[]> | undefined, liveCandle: SharedValue<CandlePoint | null> | undefined, candleWidthSecs: number, active: boolean, candleMetrics?: CandleMetrics
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
readonly
|
|
17
|
-
readonly
|
|
11
|
+
export declare function useCandlePaths(engine: SingleEngineState, padding: ChartPadding, candles: SharedValue<CandlePoint[]> | undefined, liveCandle: SharedValue<CandlePoint | null> | undefined, candleWidthSecs: number, active: boolean, candleMetrics?: CandleMetrics,
|
|
12
|
+
/** Static charts run no loops: register without starting. Default `true`. */
|
|
13
|
+
autostart?: boolean): {
|
|
14
|
+
readonly upBodiesPath: import("react-native-reanimated").DerivedValue<import("@shopify/react-native-skia").SkPath>;
|
|
15
|
+
readonly downBodiesPath: import("react-native-reanimated").DerivedValue<import("@shopify/react-native-skia").SkPath>;
|
|
16
|
+
readonly upWicksPath: import("react-native-reanimated").DerivedValue<import("@shopify/react-native-skia").SkPath>;
|
|
17
|
+
readonly downWicksPath: import("react-native-reanimated").DerivedValue<import("@shopify/react-native-skia").SkPath>;
|
|
18
18
|
};
|
|
19
19
|
//# sourceMappingURL=useCandlePaths.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useCandlePaths.d.ts","sourceRoot":"","sources":["../../src/hooks/useCandlePaths.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useCandlePaths.d.ts","sourceRoot":"","sources":["../../src/hooks/useCandlePaths.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,KAAK,WAAW,EACjB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAEpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEjD,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAK3D;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,iBAAiB,EACzB,OAAO,EAAE,YAAY,EACrB,OAAO,EAAE,WAAW,CAAC,WAAW,EAAE,CAAC,GAAG,SAAS,EAC/C,UAAU,EAAE,WAAW,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,SAAS,EACvD,eAAe,EAAE,MAAM,EACvB,MAAM,EAAE,OAAO,EACf,aAAa,GAAE,aAAuC;AACtD,6EAA6E;AAC7E,SAAS,UAAO;;;;;EAiGjB"}
|
|
@@ -10,6 +10,11 @@ export interface ChartColors {
|
|
|
10
10
|
gradientTopColor: string;
|
|
11
11
|
/** Bottom gradient stop — custom opacity or palette default. */
|
|
12
12
|
gradientBottomColor: string;
|
|
13
|
+
/** Gradient color stops (top → bottom). Custom `colors` when provided, else the
|
|
14
|
+
* 2-stop `[gradientTopColor, gradientBottomColor]` fallback. */
|
|
15
|
+
gradientColors: string[];
|
|
16
|
+
/** Stop positions matching `gradientColors`, or undefined for even spacing. */
|
|
17
|
+
gradientPositions: number[] | undefined;
|
|
13
18
|
}
|
|
14
19
|
/**
|
|
15
20
|
* Derives background and gradient colors from the resolved palette and
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useChartColors.d.ts","sourceRoot":"","sources":["../../src/hooks/useChartColors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEjD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAEjD,MAAM,WAAW,WAAW;IAC1B,uDAAuD;IACvD,eAAe,EAAE,MAAM,CAAC;IACxB,4EAA4E;IAC5E,WAAW,EAAE,MAAM,CAAC;IACpB,6DAA6D;IAC7D,gBAAgB,EAAE,MAAM,CAAC;IACzB,gEAAgE;IAChE,mBAAmB,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"useChartColors.d.ts","sourceRoot":"","sources":["../../src/hooks/useChartColors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEjD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAEjD,MAAM,WAAW,WAAW;IAC1B,uDAAuD;IACvD,eAAe,EAAE,MAAM,CAAC;IACxB,4EAA4E;IAC5E,WAAW,EAAE,MAAM,CAAC;IACpB,6DAA6D;IAC7D,gBAAgB,EAAE,MAAM,CAAC;IACzB,gEAAgE;IAChE,mBAAmB,EAAE,MAAM,CAAC;IAC5B;qEACiE;IACjE,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,+EAA+E;IAC/E,iBAAiB,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;CACzC;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,gBAAgB,EACzB,WAAW,EAAE,sBAAsB,GAAG,IAAI,EAC1C,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,YAAY,GACpB,WAAW,CAkCb"}
|