@super-chart/chart-react 0.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/LICENSE ADDED
@@ -0,0 +1,12 @@
1
+ # Proprietary Software License
2
+
3
+ Copyright (c) 2026 HYAI / Super Chart Platform. All rights reserved.
4
+
5
+ This repository and its contents are proprietary and confidential. No license
6
+ is granted to use, copy, modify, merge, publish, distribute, sublicense, or
7
+ create derivative works from this software without prior written permission
8
+ from the copyright holder.
9
+
10
+ The software is provided for authorized internal use only. Third-party
11
+ dependencies and separately identified assets remain subject to their own
12
+ license terms.
@@ -0,0 +1,141 @@
1
+ import { type CSSProperties } from 'react';
2
+ import type { CandlestickData, PriceRange, UnixTimestampMs } from '@super-chart/chart-base';
3
+ import { type FinancialChartApi, type FinancialChartOptions, type FinancialHistoryLoadState } from '@super-chart/chart-advanced';
4
+ import type { CanvasChartDestroyListener, CanvasChartMetrics, CanvasChartStatus, CanvasDataTransaction, CanvasPriceRangeState, CanvasVisibleRangeChangeListener, CanvasCrosshairChangeListener, CanvasChartTheme, CanvasThemeInput } from '@super-chart/chart-renderer-canvas';
5
+ export interface FinancialChartProps {
6
+ /**
7
+ * Chart configuration options.
8
+ * Changes to this object will trigger chart re-creation.
9
+ * For performance-critical scenarios, memoize this object.
10
+ */
11
+ options?: FinancialChartOptions;
12
+ /**
13
+ * Initial data for the primary series.
14
+ * Only applied on mount. For updates, use the ref API.
15
+ */
16
+ initialData?: readonly CandlestickData[];
17
+ /**
18
+ * Callback fired when visible range changes.
19
+ */
20
+ onVisibleRangeChange?: CanvasVisibleRangeChangeListener;
21
+ /**
22
+ * Callback fired when crosshair position changes.
23
+ */
24
+ onCrosshairChange?: CanvasCrosshairChangeListener;
25
+ /**
26
+ * Callback fired when the chart is about to be destroyed.
27
+ */
28
+ onDestroy?: CanvasChartDestroyListener;
29
+ /**
30
+ * Additional CSS class name for the container.
31
+ */
32
+ className?: string;
33
+ /**
34
+ * Inline styles for the container.
35
+ */
36
+ style?: CSSProperties;
37
+ }
38
+ export interface FinancialChartRef {
39
+ /**
40
+ * Set primary series data. Replaces all existing data.
41
+ */
42
+ setData(data: readonly CandlestickData[]): void;
43
+ /**
44
+ * Append data to the primary series.
45
+ */
46
+ appendData(data: readonly CandlestickData[]): void;
47
+ /**
48
+ * Update the latest bar in the primary series.
49
+ */
50
+ updateData(data: CandlestickData): void;
51
+ /**
52
+ * Execute a transaction that can update multiple series atomically.
53
+ */
54
+ transaction(update: (tx: CanvasDataTransaction) => void): void;
55
+ /**
56
+ * Fit the visible range to show all data.
57
+ */
58
+ fitContent(): void;
59
+ /**
60
+ * Scroll to the most recent data (realtime position).
61
+ */
62
+ scrollToRealtime(): void;
63
+ /**
64
+ * Trigger a resize recalculation.
65
+ */
66
+ resize(): void;
67
+ /**
68
+ * Prepend historical data to the beginning of the primary series.
69
+ */
70
+ prependData(data: readonly CandlestickData[]): void;
71
+ /**
72
+ * Replace data in a time range with new data.
73
+ */
74
+ replaceRange(fromTime: UnixTimestampMs, toTime: UnixTimestampMs, data: readonly CandlestickData[]): void;
75
+ /**
76
+ * Remove data in a time range.
77
+ */
78
+ removeRange(fromTime: UnixTimestampMs, toTime: UnixTimestampMs): void;
79
+ /**
80
+ * Set the chart status (ready, loading, empty, error).
81
+ */
82
+ setStatus(status: CanvasChartStatus): void;
83
+ setTheme(theme: CanvasThemeInput): void;
84
+ getTheme(): Readonly<CanvasChartTheme> | null;
85
+ /**
86
+ * Request loading more historical data if configured via options.history.
87
+ */
88
+ requestMoreHistory(): Promise<FinancialHistoryLoadState>;
89
+ /**
90
+ * Set the visible price range for the primary price scale.
91
+ */
92
+ setPriceRange(range: PriceRange): void;
93
+ /**
94
+ * Reset the primary price scale to auto-scale.
95
+ */
96
+ resetPriceRange(): void;
97
+ /**
98
+ * Get the current price range state.
99
+ * Returns null if the chart is not yet mounted or has been destroyed.
100
+ */
101
+ getPriceRange(): CanvasPriceRangeState | null;
102
+ /**
103
+ * Get performance and state metrics.
104
+ * Returns null if the chart is not yet mounted or has been destroyed.
105
+ */
106
+ getMetrics(): Readonly<CanvasChartMetrics> | null;
107
+ /**
108
+ * Check if the viewport is at the most recent data (realtime edge).
109
+ */
110
+ isAtRealtime(): boolean;
111
+ /** Explicit escape hatch for host-owned advanced scene integrations. */
112
+ getChartForAdvancedIntegration(): FinancialChartApi | null;
113
+ }
114
+ /**
115
+ * React component wrapper for Super Chart.
116
+ *
117
+ * @example
118
+ * ```tsx
119
+ * import { FinancialChart } from '@super-chart/chart-react'
120
+ *
121
+ * function App() {
122
+ * const chartRef = useRef<FinancialChartRef>(null)
123
+ *
124
+ * const handleRealtimeUpdate = (newBar: CandlestickData) => {
125
+ * // High-frequency updates through ref to avoid re-renders
126
+ * chartRef.current?.updateData(newBar)
127
+ * }
128
+ *
129
+ * return (
130
+ * <FinancialChart
131
+ * ref={chartRef}
132
+ * options={{ movingAverage: { period: 20 } }}
133
+ * initialData={initialData}
134
+ * onVisibleRangeChange={(change) => console.log(change)}
135
+ * />
136
+ * )
137
+ * }
138
+ * ```
139
+ */
140
+ export declare const FinancialChart: import("react").ForwardRefExoticComponent<FinancialChartProps & import("react").RefAttributes<FinancialChartRef>>;
141
+ //# sourceMappingURL=FinancialChart.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FinancialChart.d.ts","sourceRoot":"","sources":["../src/FinancialChart.tsx"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,aAAa,EACnB,MAAM,OAAO,CAAA;AACd,OAAO,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAC3F,OAAO,EAEL,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,EAC1B,KAAK,yBAAyB,EAC/B,MAAM,6BAA6B,CAAA;AACpC,OAAO,KAAK,EACV,0BAA0B,EAC1B,kBAAkB,EAClB,iBAAiB,EACjB,qBAAqB,EACrB,qBAAqB,EACrB,gCAAgC,EAChC,6BAA6B,EAC7B,gBAAgB,EAChB,gBAAgB,EACjB,MAAM,oCAAoC,CAAA;AAE3C,MAAM,WAAW,mBAAmB;IAClC;;;;OAIG;IACH,OAAO,CAAC,EAAE,qBAAqB,CAAA;IAE/B;;;OAGG;IACH,WAAW,CAAC,EAAE,SAAS,eAAe,EAAE,CAAA;IAExC;;OAEG;IACH,oBAAoB,CAAC,EAAE,gCAAgC,CAAA;IAEvD;;OAEG;IACH,iBAAiB,CAAC,EAAE,6BAA6B,CAAA;IAEjD;;OAEG;IACH,SAAS,CAAC,EAAE,0BAA0B,CAAA;IAEtC;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAElB;;OAEG;IACH,KAAK,CAAC,EAAE,aAAa,CAAA;CACtB;AAED,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,OAAO,CAAC,IAAI,EAAE,SAAS,eAAe,EAAE,GAAG,IAAI,CAAA;IAE/C;;OAEG;IACH,UAAU,CAAC,IAAI,EAAE,SAAS,eAAe,EAAE,GAAG,IAAI,CAAA;IAElD;;OAEG;IACH,UAAU,CAAC,IAAI,EAAE,eAAe,GAAG,IAAI,CAAA;IAEvC;;OAEG;IACH,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,qBAAqB,KAAK,IAAI,GAAG,IAAI,CAAA;IAE9D;;OAEG;IACH,UAAU,IAAI,IAAI,CAAA;IAElB;;OAEG;IACH,gBAAgB,IAAI,IAAI,CAAA;IAExB;;OAEG;IACH,MAAM,IAAI,IAAI,CAAA;IAEd;;OAEG;IACH,WAAW,CAAC,IAAI,EAAE,SAAS,eAAe,EAAE,GAAG,IAAI,CAAA;IAEnD;;OAEG;IACH,YAAY,CACV,QAAQ,EAAE,eAAe,EACzB,MAAM,EAAE,eAAe,EACvB,IAAI,EAAE,SAAS,eAAe,EAAE,GAC/B,IAAI,CAAA;IAEP;;OAEG;IACH,WAAW,CAAC,QAAQ,EAAE,eAAe,EAAE,MAAM,EAAE,eAAe,GAAG,IAAI,CAAA;IAErE;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI,CAAA;IAE1C,QAAQ,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI,CAAA;IACvC,QAAQ,IAAI,QAAQ,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAA;IAE7C;;OAEG;IACH,kBAAkB,IAAI,OAAO,CAAC,yBAAyB,CAAC,CAAA;IAExD;;OAEG;IACH,aAAa,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI,CAAA;IAEtC;;OAEG;IACH,eAAe,IAAI,IAAI,CAAA;IAEvB;;;OAGG;IACH,aAAa,IAAI,qBAAqB,GAAG,IAAI,CAAA;IAE7C;;;OAGG;IACH,UAAU,IAAI,QAAQ,CAAC,kBAAkB,CAAC,GAAG,IAAI,CAAA;IAEjD;;OAEG;IACH,YAAY,IAAI,OAAO,CAAA;IAEvB,wEAAwE;IACxE,8BAA8B,IAAI,iBAAiB,GAAG,IAAI,CAAA;CAC3D;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,eAAO,MAAM,cAAc,mHAuK1B,CAAA"}
@@ -0,0 +1,163 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { forwardRef, useEffect, useImperativeHandle, useMemo, useRef, } from 'react';
3
+ import { createFinancialChart, } from '@super-chart/chart-advanced';
4
+ /**
5
+ * React component wrapper for Super Chart.
6
+ *
7
+ * @example
8
+ * ```tsx
9
+ * import { FinancialChart } from '@super-chart/chart-react'
10
+ *
11
+ * function App() {
12
+ * const chartRef = useRef<FinancialChartRef>(null)
13
+ *
14
+ * const handleRealtimeUpdate = (newBar: CandlestickData) => {
15
+ * // High-frequency updates through ref to avoid re-renders
16
+ * chartRef.current?.updateData(newBar)
17
+ * }
18
+ *
19
+ * return (
20
+ * <FinancialChart
21
+ * ref={chartRef}
22
+ * options={{ movingAverage: { period: 20 } }}
23
+ * initialData={initialData}
24
+ * onVisibleRangeChange={(change) => console.log(change)}
25
+ * />
26
+ * )
27
+ * }
28
+ * ```
29
+ */
30
+ export const FinancialChart = forwardRef(function FinancialChart(props, ref) {
31
+ const { options: providedOptions, initialData, onVisibleRangeChange, onCrosshairChange, className, style, } = props;
32
+ const options = useMemo(() => providedOptions ?? { timeScale: { mode: 'logical' } }, [providedOptions]);
33
+ const containerRef = useRef(null);
34
+ const chartRef = useRef(null);
35
+ const onDestroyRef = useRef(undefined);
36
+ const onVisibleRangeChangeRef = useRef(undefined);
37
+ const onCrosshairChangeRef = useRef(undefined);
38
+ // Expose imperative methods via ref
39
+ useImperativeHandle(ref, () => ({
40
+ setData(newData) {
41
+ chartRef.current?.setData(newData);
42
+ },
43
+ appendData(newData) {
44
+ chartRef.current?.appendData(newData);
45
+ },
46
+ updateData(bar) {
47
+ chartRef.current?.updateData(bar);
48
+ },
49
+ transaction(update) {
50
+ chartRef.current?.transaction(update);
51
+ },
52
+ fitContent() {
53
+ chartRef.current?.fitContent();
54
+ },
55
+ scrollToRealtime() {
56
+ chartRef.current?.scrollToRealtime();
57
+ },
58
+ prependData(newData) {
59
+ chartRef.current?.prependData(newData);
60
+ },
61
+ replaceRange(fromTime, toTime, newData) {
62
+ chartRef.current?.replaceRange(fromTime, toTime, newData);
63
+ },
64
+ removeRange(fromTime, toTime) {
65
+ chartRef.current?.removeRange(fromTime, toTime);
66
+ },
67
+ setStatus(status) {
68
+ chartRef.current?.setStatus(status);
69
+ },
70
+ setTheme(theme) {
71
+ chartRef.current?.setTheme(theme);
72
+ },
73
+ getTheme() {
74
+ return chartRef.current?.getTheme() ?? null;
75
+ },
76
+ requestMoreHistory() {
77
+ const chart = chartRef.current;
78
+ if (chart === null)
79
+ throw new Error('Financial chart is not mounted');
80
+ return chart.requestMoreHistory();
81
+ },
82
+ setPriceRange(range) {
83
+ chartRef.current?.setPriceRange(range);
84
+ },
85
+ resetPriceRange() {
86
+ chartRef.current?.resetPriceRange();
87
+ },
88
+ getPriceRange() {
89
+ return chartRef.current?.getPriceRange() ?? null;
90
+ },
91
+ getMetrics() {
92
+ return chartRef.current?.getMetrics() ?? null;
93
+ },
94
+ isAtRealtime() {
95
+ return chartRef.current?.isAtRealtime() ?? false;
96
+ },
97
+ resize() {
98
+ chartRef.current?.resize();
99
+ },
100
+ getChartForAdvancedIntegration() {
101
+ return chartRef.current;
102
+ },
103
+ }), []);
104
+ // Keep callback refs current (in effects, not render body)
105
+ useEffect(() => {
106
+ onVisibleRangeChangeRef.current = onVisibleRangeChange;
107
+ });
108
+ useEffect(() => {
109
+ onCrosshairChangeRef.current = onCrosshairChange;
110
+ });
111
+ useEffect(() => {
112
+ onDestroyRef.current = props.onDestroy;
113
+ });
114
+ // Create chart + subscribe all event listeners in one effect.
115
+ // Stable listeners read from refs so callback identity changes never
116
+ // trigger unsubscribe / resubscribe / initial-snapshot cascades.
117
+ useEffect(() => {
118
+ const container = containerRef.current;
119
+ if (container === null)
120
+ return;
121
+ // SSR guard: window and document must exist
122
+ if (typeof window === 'undefined' || typeof document === 'undefined') {
123
+ return;
124
+ }
125
+ const chart = createFinancialChart(container, options);
126
+ chartRef.current = chart;
127
+ // Set initial data if provided
128
+ if (initialData !== undefined && initialData.length > 0) {
129
+ chart.setData(initialData);
130
+ }
131
+ // Stable listeners — route through refs so the parent can pass inline
132
+ // callbacks without forcing resubscription on every render.
133
+ const unsubs = [];
134
+ if (onVisibleRangeChangeRef.current !== undefined) {
135
+ unsubs.push(chart.subscribeVisibleRangeChange((change) => {
136
+ onVisibleRangeChangeRef.current?.(change);
137
+ }));
138
+ }
139
+ if (onCrosshairChangeRef.current !== undefined) {
140
+ unsubs.push(chart.subscribeCrosshairChange((change) => {
141
+ onCrosshairChangeRef.current?.(change);
142
+ }));
143
+ }
144
+ // Cleanup: unsubscribe all → notify onDestroy → destroy chart
145
+ return () => {
146
+ for (const unsub of unsubs)
147
+ unsub();
148
+ onDestroyRef.current?.();
149
+ chart.destroy();
150
+ chartRef.current = null;
151
+ };
152
+ // Only recreate chart when options reference changes
153
+ // eslint-disable-next-line react-hooks/exhaustive-deps
154
+ }, [options]);
155
+ const mergedStyle = useMemo(() => ({
156
+ width: '100%',
157
+ height: '100%',
158
+ position: 'relative',
159
+ ...style,
160
+ }), [style]);
161
+ return (_jsx("div", { ref: containerRef, className: className, style: mergedStyle }));
162
+ });
163
+ //# sourceMappingURL=FinancialChart.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FinancialChart.js","sourceRoot":"","sources":["../src/FinancialChart.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export { FinancialChart } from './FinancialChart.js';
2
+ export type { FinancialChartProps, FinancialChartRef } from './FinancialChart.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACpD,YAAY,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA"}
package/dist/index.js ADDED
@@ -0,0 +1,2 @@
1
+ export { FinancialChart } from './FinancialChart.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA"}
package/package.json ADDED
@@ -0,0 +1,47 @@
1
+ {
2
+ "name": "@super-chart/chart-react",
3
+ "version": "0.1.0",
4
+ "license": "UNLICENSED",
5
+ "type": "module",
6
+ "sideEffects": false,
7
+ "description": "React adapter for Super Chart",
8
+ "files": [
9
+ "dist",
10
+ "!dist/**/*.tsbuildinfo"
11
+ ],
12
+ "main": "./dist/index.js",
13
+ "types": "./dist/index.d.ts",
14
+ "exports": {
15
+ ".": {
16
+ "types": "./dist/index.d.ts",
17
+ "import": "./dist/index.js",
18
+ "default": "./dist/index.js"
19
+ }
20
+ },
21
+ "publishConfig": {
22
+ "access": "public",
23
+ "registry": "https://registry.npmjs.org/"
24
+ },
25
+ "peerDependencies": {
26
+ "react": "^18.0.0 || ^19.0.0"
27
+ },
28
+ "dependencies": {
29
+ "@super-chart/chart-base": "0.1.0",
30
+ "@super-chart/chart-renderer-canvas": "0.1.0",
31
+ "@super-chart/chart-advanced": "0.1.0"
32
+ },
33
+ "devDependencies": {
34
+ "@testing-library/react": "^16.3.2",
35
+ "@types/react": "^19.2.18",
36
+ "react": "^19.2.8",
37
+ "typescript": "^7.0.2",
38
+ "vitest": "^4.1.10",
39
+ "jsdom": "^30.0.1"
40
+ },
41
+ "scripts": {
42
+ "build": "tsc -p tsconfig.json",
43
+ "test": "vitest run",
44
+ "test:coverage": "vitest run --coverage",
45
+ "typecheck": "tsc -p tsconfig.json --noEmit"
46
+ }
47
+ }