@chartts/gl 0.1.3

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 (80) hide show
  1. package/LICENSE +21 -0
  2. package/dist/bar3d.cjs +20 -0
  3. package/dist/bar3d.cjs.map +1 -0
  4. package/dist/bar3d.d.cts +10 -0
  5. package/dist/bar3d.d.ts +10 -0
  6. package/dist/bar3d.js +3 -0
  7. package/dist/bar3d.js.map +1 -0
  8. package/dist/chunk-M24XMYGG.js +3464 -0
  9. package/dist/chunk-M24XMYGG.js.map +1 -0
  10. package/dist/chunk-Q4JAQOV3.cjs +3516 -0
  11. package/dist/chunk-Q4JAQOV3.cjs.map +1 -0
  12. package/dist/factory-Cp9Kr7aa.d.cts +291 -0
  13. package/dist/factory-Cp9Kr7aa.d.ts +291 -0
  14. package/dist/flow-gl.cjs +20 -0
  15. package/dist/flow-gl.cjs.map +1 -0
  16. package/dist/flow-gl.d.cts +20 -0
  17. package/dist/flow-gl.d.ts +20 -0
  18. package/dist/flow-gl.js +3 -0
  19. package/dist/flow-gl.js.map +1 -0
  20. package/dist/globe3d.cjs +20 -0
  21. package/dist/globe3d.cjs.map +1 -0
  22. package/dist/globe3d.d.cts +10 -0
  23. package/dist/globe3d.d.ts +10 -0
  24. package/dist/globe3d.js +3 -0
  25. package/dist/globe3d.js.map +1 -0
  26. package/dist/graph-gl.cjs +20 -0
  27. package/dist/graph-gl.cjs.map +1 -0
  28. package/dist/graph-gl.d.cts +10 -0
  29. package/dist/graph-gl.d.ts +10 -0
  30. package/dist/graph-gl.js +3 -0
  31. package/dist/graph-gl.js.map +1 -0
  32. package/dist/index.cjs +212 -0
  33. package/dist/index.cjs.map +1 -0
  34. package/dist/index.d.cts +60 -0
  35. package/dist/index.d.ts +60 -0
  36. package/dist/index.js +3 -0
  37. package/dist/index.js.map +1 -0
  38. package/dist/line3d.cjs +20 -0
  39. package/dist/line3d.cjs.map +1 -0
  40. package/dist/line3d.d.cts +10 -0
  41. package/dist/line3d.d.ts +10 -0
  42. package/dist/line3d.js +3 -0
  43. package/dist/line3d.js.map +1 -0
  44. package/dist/lines-gl.cjs +20 -0
  45. package/dist/lines-gl.cjs.map +1 -0
  46. package/dist/lines-gl.d.cts +10 -0
  47. package/dist/lines-gl.d.ts +10 -0
  48. package/dist/lines-gl.js +3 -0
  49. package/dist/lines-gl.js.map +1 -0
  50. package/dist/lines3d.cjs +20 -0
  51. package/dist/lines3d.cjs.map +1 -0
  52. package/dist/lines3d.d.cts +10 -0
  53. package/dist/lines3d.d.ts +10 -0
  54. package/dist/lines3d.js +3 -0
  55. package/dist/lines3d.js.map +1 -0
  56. package/dist/map3d.cjs +20 -0
  57. package/dist/map3d.cjs.map +1 -0
  58. package/dist/map3d.d.cts +10 -0
  59. package/dist/map3d.d.ts +10 -0
  60. package/dist/map3d.js +3 -0
  61. package/dist/map3d.js.map +1 -0
  62. package/dist/scatter-gl.cjs +20 -0
  63. package/dist/scatter-gl.cjs.map +1 -0
  64. package/dist/scatter-gl.d.cts +11 -0
  65. package/dist/scatter-gl.d.ts +11 -0
  66. package/dist/scatter-gl.js +3 -0
  67. package/dist/scatter-gl.js.map +1 -0
  68. package/dist/scatter3d.cjs +20 -0
  69. package/dist/scatter3d.cjs.map +1 -0
  70. package/dist/scatter3d.d.cts +10 -0
  71. package/dist/scatter3d.d.ts +10 -0
  72. package/dist/scatter3d.js +3 -0
  73. package/dist/scatter3d.js.map +1 -0
  74. package/dist/surface3d.cjs +20 -0
  75. package/dist/surface3d.cjs.map +1 -0
  76. package/dist/surface3d.d.cts +10 -0
  77. package/dist/surface3d.d.ts +10 -0
  78. package/dist/surface3d.js +3 -0
  79. package/dist/surface3d.js.map +1 -0
  80. package/package.json +92 -0
@@ -0,0 +1,291 @@
1
+ type Vec3 = Float32Array;
2
+ type Mat4 = Float32Array;
3
+ declare function vec3(x?: number, y?: number, z?: number): Vec3;
4
+ declare function mat4(): Mat4;
5
+ declare function mat4Identity(out: Mat4): Mat4;
6
+ declare function mat4Multiply(out: Mat4, a: Mat4, b: Mat4): Mat4;
7
+ declare function mat4Perspective(out: Mat4, fovY: number, aspect: number, near: number, far: number): Mat4;
8
+ declare function mat4LookAt(out: Mat4, eye: Vec3, center: Vec3, up: Vec3): Mat4;
9
+ declare function mat4Invert(out: Mat4, a: Mat4): Mat4 | null;
10
+ /** Convert degrees to radians */
11
+ declare function toRad(deg: number): number;
12
+
13
+ /**
14
+ * Camera system for 3D rendering.
15
+ */
16
+
17
+ interface CameraState {
18
+ position: Vec3;
19
+ target: Vec3;
20
+ up: Vec3;
21
+ fov: number;
22
+ near: number;
23
+ far: number;
24
+ aspect: number;
25
+ ortho: boolean;
26
+ projectionMatrix: Mat4;
27
+ viewMatrix: Mat4;
28
+ projViewMatrix: Mat4;
29
+ invProjViewMatrix: Mat4;
30
+ }
31
+ interface CameraOptions {
32
+ position?: [number, number, number];
33
+ target?: [number, number, number];
34
+ up?: [number, number, number];
35
+ fov?: number;
36
+ near?: number;
37
+ far?: number;
38
+ ortho?: boolean;
39
+ }
40
+ declare function createCamera(width: number, height: number, opts?: CameraOptions): CameraState;
41
+ declare function updateCamera(state: CameraState, width: number, height: number): void;
42
+ /** Project a 3D world point to 2D screen coordinates */
43
+ declare function projectToScreen(worldPos: Vec3, projView: Mat4, width: number, height: number): {
44
+ x: number;
45
+ y: number;
46
+ z: number;
47
+ } | null;
48
+
49
+ /**
50
+ * Orbit controls — mouse/touch orbit, zoom, pan with inertia damping.
51
+ */
52
+
53
+ interface OrbitConfig {
54
+ enableRotate?: boolean;
55
+ enableZoom?: boolean;
56
+ enablePan?: boolean;
57
+ damping?: number;
58
+ autoRotate?: boolean;
59
+ autoRotateSpeed?: number;
60
+ minDistance?: number;
61
+ maxDistance?: number;
62
+ minPolarAngle?: number;
63
+ maxPolarAngle?: number;
64
+ }
65
+ interface OrbitState {
66
+ theta: number;
67
+ phi: number;
68
+ radius: number;
69
+ target: Vec3;
70
+ dragging: boolean;
71
+ panning: boolean;
72
+ lastX: number;
73
+ lastY: number;
74
+ velocityTheta: number;
75
+ velocityPhi: number;
76
+ config: Required<OrbitConfig>;
77
+ dispose: () => void;
78
+ }
79
+ declare function createOrbitControls(canvas: HTMLCanvasElement, camera: CameraState, _width: number, _height: number, config?: OrbitConfig): OrbitState;
80
+ declare function updateOrbitControls(orbit: OrbitState, camera: CameraState, width: number, height: number): boolean;
81
+
82
+ /**
83
+ * WebGL shader compilation and program management.
84
+ */
85
+ interface ShaderProgram {
86
+ program: WebGLProgram;
87
+ uniforms: Record<string, WebGLUniformLocation>;
88
+ attributes: Record<string, number>;
89
+ use(): void;
90
+ setMat4(name: string, value: Float32Array): void;
91
+ setMat3(name: string, value: Float32Array): void;
92
+ setVec2(name: string, x: number, y: number): void;
93
+ setVec3(name: string, x: number, y: number, z: number): void;
94
+ setVec4(name: string, x: number, y: number, z: number, w: number): void;
95
+ setFloat(name: string, value: number): void;
96
+ setInt(name: string, value: number): void;
97
+ destroy(): void;
98
+ }
99
+ declare function compileShader(gl: WebGLRenderingContext, type: number, source: string): WebGLShader;
100
+ declare function createShaderProgram(gl: WebGLRenderingContext, vertSrc: string, fragSrc: string, uniformNames: string[], attributeNames: string[]): ShaderProgram;
101
+
102
+ /**
103
+ * GLRenderer — dual canvas (WebGL + 2D overlay) rendering system.
104
+ */
105
+
106
+ interface GLRenderer {
107
+ gl: WebGLRenderingContext;
108
+ ctx2d: CanvasRenderingContext2D;
109
+ glCanvas: HTMLCanvasElement;
110
+ overlayCanvas: HTMLCanvasElement;
111
+ width: number;
112
+ height: number;
113
+ pixelRatio: number;
114
+ programs: Map<string, ShaderProgram>;
115
+ registerProgram(name: string, vert: string, frag: string, uniforms: string[], attributes: string[]): ShaderProgram;
116
+ getProgram(name: string): ShaderProgram | undefined;
117
+ resize(width: number, height: number): void;
118
+ beginFrame(): void;
119
+ endFrame(): void;
120
+ clear(r: number, g: number, b: number, a: number): void;
121
+ destroy(): void;
122
+ }
123
+ declare function createGLRenderer(container: HTMLElement): GLRenderer;
124
+
125
+ /**
126
+ * Phong lighting model — directional light with ambient, diffuse, specular.
127
+ */
128
+
129
+ interface LightConfig {
130
+ ambient: [number, number, number];
131
+ diffuseDirection: [number, number, number];
132
+ diffuseColor: [number, number, number];
133
+ specularColor: [number, number, number];
134
+ shininess: number;
135
+ }
136
+ declare function defaultLightConfig(): LightConfig;
137
+ declare function setLightUniforms(program: ShaderProgram, light: LightConfig, cameraPos: Vec3): void;
138
+
139
+ /**
140
+ * GPU color-based picking via offscreen FBO.
141
+ * Each object rendered with unique RGB color → readPixels → O(1) hit test.
142
+ */
143
+ interface PickingSystem {
144
+ begin(): void;
145
+ end(): void;
146
+ pick(x: number, y: number): number;
147
+ idToColor(id: number): [number, number, number];
148
+ resize(width: number, height: number): void;
149
+ destroy(): void;
150
+ }
151
+ declare function createPickingSystem(gl: WebGLRenderingContext, width: number, height: number, pixelRatio: number): PickingSystem;
152
+
153
+ /**
154
+ * Type definitions for @chartts/gl.
155
+ */
156
+
157
+ interface GLSeries3D {
158
+ name: string;
159
+ values: number[];
160
+ x?: number[];
161
+ y?: number[];
162
+ z?: number[];
163
+ color?: string;
164
+ size?: number;
165
+ opacity?: number;
166
+ }
167
+ interface GLSeries2D {
168
+ name: string;
169
+ x: number[];
170
+ y: number[];
171
+ color?: string;
172
+ size?: number;
173
+ opacity?: number;
174
+ }
175
+ interface GLChartData {
176
+ series: GLSeries3D[] | GLSeries2D[];
177
+ categories?: string[];
178
+ grid?: number[][];
179
+ }
180
+ interface GLDataPoint {
181
+ seriesIndex: number;
182
+ dataIndex: number;
183
+ value: number;
184
+ x?: number;
185
+ y?: number;
186
+ z?: number;
187
+ seriesName: string;
188
+ }
189
+ interface GLRenderContext {
190
+ renderer: GLRenderer;
191
+ camera: CameraState;
192
+ orbit: OrbitState | null;
193
+ picking: PickingSystem;
194
+ width: number;
195
+ height: number;
196
+ data: GLChartData;
197
+ options: GLChartOptions;
198
+ theme: GLTheme;
199
+ animationProgress: number;
200
+ }
201
+ interface GLTheme {
202
+ background: [number, number, number];
203
+ colors: string[];
204
+ textColor: string;
205
+ gridColor: string;
206
+ fontFamily: string;
207
+ fontSize: number;
208
+ }
209
+ declare const DEFAULT_GL_THEME: GLTheme;
210
+ declare const LIGHT_GL_THEME: GLTheme;
211
+ interface GLChartOptions {
212
+ camera?: CameraOptions;
213
+ orbit?: boolean | OrbitConfig;
214
+ light?: Partial<LightConfig>;
215
+ theme?: 'dark' | 'light' | GLTheme;
216
+ animate?: boolean;
217
+ animationDuration?: number;
218
+ tooltip?: boolean;
219
+ wireframe?: boolean;
220
+ opacity?: number;
221
+ pointSize?: number;
222
+ lineWidth?: number;
223
+ [key: string]: unknown;
224
+ }
225
+ interface GLChartTypePlugin {
226
+ readonly type: string;
227
+ prepare(ctx: GLRenderContext): void;
228
+ render(ctx: GLRenderContext): void;
229
+ renderPick?(ctx: GLRenderContext): void;
230
+ renderOverlay?(ctx: GLRenderContext, ctx2d: CanvasRenderingContext2D): void;
231
+ hitTest(ctx: GLRenderContext, x: number, y: number): GLDataPoint | null;
232
+ dispose(gl: WebGLRenderingContext): void;
233
+ needsLoop?(ctx: GLRenderContext): boolean;
234
+ }
235
+ interface GLChartInstance {
236
+ update(data: GLChartData): void;
237
+ setOption(opts: Partial<GLChartOptions>): void;
238
+ setCameraPosition(pos: [number, number, number]): void;
239
+ setCameraTarget(target: [number, number, number]): void;
240
+ resize(): void;
241
+ destroy(): void;
242
+ getDataAtPoint(x: number, y: number): GLDataPoint | null;
243
+ }
244
+ declare function hexToRGB(hex: string): [number, number, number];
245
+ declare function resolveTheme(theme?: 'dark' | 'light' | GLTheme): GLTheme;
246
+
247
+ /**
248
+ * createGLChart — factory that wires up renderer, camera, orbit, picking, and chart plugin.
249
+ */
250
+
251
+ declare function createGLChart(container: HTMLElement | string, plugin: GLChartTypePlugin, data: GLChartData, options?: GLChartOptions): GLChartInstance;
252
+
253
+ /**
254
+ * Convenience factories — one function per chart type.
255
+ */
256
+
257
+ declare function Scatter3D(container: HTMLElement | string, opts: GLChartOptions & {
258
+ data: GLChartData;
259
+ }): GLChartInstance;
260
+ declare function Bar3D(container: HTMLElement | string, opts: GLChartOptions & {
261
+ data: GLChartData;
262
+ }): GLChartInstance;
263
+ declare function Surface3D(container: HTMLElement | string, opts: GLChartOptions & {
264
+ data: GLChartData;
265
+ }): GLChartInstance;
266
+ declare function Globe3D(container: HTMLElement | string, opts: GLChartOptions & {
267
+ data: GLChartData;
268
+ }): GLChartInstance;
269
+ declare function Map3D(container: HTMLElement | string, opts: GLChartOptions & {
270
+ data: GLChartData;
271
+ }): GLChartInstance;
272
+ declare function Lines3D(container: HTMLElement | string, opts: GLChartOptions & {
273
+ data: GLChartData;
274
+ }): GLChartInstance;
275
+ declare function Line3D(container: HTMLElement | string, opts: GLChartOptions & {
276
+ data: GLChartData;
277
+ }): GLChartInstance;
278
+ declare function ScatterGL(container: HTMLElement | string, opts: GLChartOptions & {
279
+ data: GLChartData;
280
+ }): GLChartInstance;
281
+ declare function LinesGL(container: HTMLElement | string, opts: GLChartOptions & {
282
+ data: GLChartData;
283
+ }): GLChartInstance;
284
+ declare function FlowGL(container: HTMLElement | string, opts: GLChartOptions & {
285
+ data: GLChartData;
286
+ }): GLChartInstance;
287
+ declare function GraphGL(container: HTMLElement | string, opts: GLChartOptions & {
288
+ data: GLChartData;
289
+ }): GLChartInstance;
290
+
291
+ export { vec3 as $, createPickingSystem as A, Bar3D as B, type CameraState as C, DEFAULT_GL_THEME as D, createShaderProgram as E, FlowGL as F, type GLRenderer as G, defaultLightConfig as H, hexToRGB as I, mat4 as J, mat4Identity as K, LIGHT_GL_THEME as L, Map3D as M, mat4Invert as N, type OrbitConfig as O, type PickingSystem as P, mat4LookAt as Q, mat4Multiply as R, Scatter3D as S, mat4Perspective as T, projectToScreen as U, type Vec3 as V, resolveTheme as W, setLightUniforms as X, toRad as Y, updateCamera as Z, updateOrbitControls as _, type CameraOptions as a, type GLChartData as b, type GLChartInstance as c, type GLChartOptions as d, type GLChartTypePlugin as e, type GLDataPoint as f, type GLRenderContext as g, type GLSeries2D as h, type GLSeries3D as i, type GLTheme as j, Globe3D as k, GraphGL as l, type LightConfig as m, Line3D as n, Lines3D as o, LinesGL as p, type Mat4 as q, type OrbitState as r, ScatterGL as s, type ShaderProgram as t, Surface3D as u, compileShader as v, createCamera as w, createGLChart as x, createGLRenderer as y, createOrbitControls as z };
@@ -0,0 +1,291 @@
1
+ type Vec3 = Float32Array;
2
+ type Mat4 = Float32Array;
3
+ declare function vec3(x?: number, y?: number, z?: number): Vec3;
4
+ declare function mat4(): Mat4;
5
+ declare function mat4Identity(out: Mat4): Mat4;
6
+ declare function mat4Multiply(out: Mat4, a: Mat4, b: Mat4): Mat4;
7
+ declare function mat4Perspective(out: Mat4, fovY: number, aspect: number, near: number, far: number): Mat4;
8
+ declare function mat4LookAt(out: Mat4, eye: Vec3, center: Vec3, up: Vec3): Mat4;
9
+ declare function mat4Invert(out: Mat4, a: Mat4): Mat4 | null;
10
+ /** Convert degrees to radians */
11
+ declare function toRad(deg: number): number;
12
+
13
+ /**
14
+ * Camera system for 3D rendering.
15
+ */
16
+
17
+ interface CameraState {
18
+ position: Vec3;
19
+ target: Vec3;
20
+ up: Vec3;
21
+ fov: number;
22
+ near: number;
23
+ far: number;
24
+ aspect: number;
25
+ ortho: boolean;
26
+ projectionMatrix: Mat4;
27
+ viewMatrix: Mat4;
28
+ projViewMatrix: Mat4;
29
+ invProjViewMatrix: Mat4;
30
+ }
31
+ interface CameraOptions {
32
+ position?: [number, number, number];
33
+ target?: [number, number, number];
34
+ up?: [number, number, number];
35
+ fov?: number;
36
+ near?: number;
37
+ far?: number;
38
+ ortho?: boolean;
39
+ }
40
+ declare function createCamera(width: number, height: number, opts?: CameraOptions): CameraState;
41
+ declare function updateCamera(state: CameraState, width: number, height: number): void;
42
+ /** Project a 3D world point to 2D screen coordinates */
43
+ declare function projectToScreen(worldPos: Vec3, projView: Mat4, width: number, height: number): {
44
+ x: number;
45
+ y: number;
46
+ z: number;
47
+ } | null;
48
+
49
+ /**
50
+ * Orbit controls — mouse/touch orbit, zoom, pan with inertia damping.
51
+ */
52
+
53
+ interface OrbitConfig {
54
+ enableRotate?: boolean;
55
+ enableZoom?: boolean;
56
+ enablePan?: boolean;
57
+ damping?: number;
58
+ autoRotate?: boolean;
59
+ autoRotateSpeed?: number;
60
+ minDistance?: number;
61
+ maxDistance?: number;
62
+ minPolarAngle?: number;
63
+ maxPolarAngle?: number;
64
+ }
65
+ interface OrbitState {
66
+ theta: number;
67
+ phi: number;
68
+ radius: number;
69
+ target: Vec3;
70
+ dragging: boolean;
71
+ panning: boolean;
72
+ lastX: number;
73
+ lastY: number;
74
+ velocityTheta: number;
75
+ velocityPhi: number;
76
+ config: Required<OrbitConfig>;
77
+ dispose: () => void;
78
+ }
79
+ declare function createOrbitControls(canvas: HTMLCanvasElement, camera: CameraState, _width: number, _height: number, config?: OrbitConfig): OrbitState;
80
+ declare function updateOrbitControls(orbit: OrbitState, camera: CameraState, width: number, height: number): boolean;
81
+
82
+ /**
83
+ * WebGL shader compilation and program management.
84
+ */
85
+ interface ShaderProgram {
86
+ program: WebGLProgram;
87
+ uniforms: Record<string, WebGLUniformLocation>;
88
+ attributes: Record<string, number>;
89
+ use(): void;
90
+ setMat4(name: string, value: Float32Array): void;
91
+ setMat3(name: string, value: Float32Array): void;
92
+ setVec2(name: string, x: number, y: number): void;
93
+ setVec3(name: string, x: number, y: number, z: number): void;
94
+ setVec4(name: string, x: number, y: number, z: number, w: number): void;
95
+ setFloat(name: string, value: number): void;
96
+ setInt(name: string, value: number): void;
97
+ destroy(): void;
98
+ }
99
+ declare function compileShader(gl: WebGLRenderingContext, type: number, source: string): WebGLShader;
100
+ declare function createShaderProgram(gl: WebGLRenderingContext, vertSrc: string, fragSrc: string, uniformNames: string[], attributeNames: string[]): ShaderProgram;
101
+
102
+ /**
103
+ * GLRenderer — dual canvas (WebGL + 2D overlay) rendering system.
104
+ */
105
+
106
+ interface GLRenderer {
107
+ gl: WebGLRenderingContext;
108
+ ctx2d: CanvasRenderingContext2D;
109
+ glCanvas: HTMLCanvasElement;
110
+ overlayCanvas: HTMLCanvasElement;
111
+ width: number;
112
+ height: number;
113
+ pixelRatio: number;
114
+ programs: Map<string, ShaderProgram>;
115
+ registerProgram(name: string, vert: string, frag: string, uniforms: string[], attributes: string[]): ShaderProgram;
116
+ getProgram(name: string): ShaderProgram | undefined;
117
+ resize(width: number, height: number): void;
118
+ beginFrame(): void;
119
+ endFrame(): void;
120
+ clear(r: number, g: number, b: number, a: number): void;
121
+ destroy(): void;
122
+ }
123
+ declare function createGLRenderer(container: HTMLElement): GLRenderer;
124
+
125
+ /**
126
+ * Phong lighting model — directional light with ambient, diffuse, specular.
127
+ */
128
+
129
+ interface LightConfig {
130
+ ambient: [number, number, number];
131
+ diffuseDirection: [number, number, number];
132
+ diffuseColor: [number, number, number];
133
+ specularColor: [number, number, number];
134
+ shininess: number;
135
+ }
136
+ declare function defaultLightConfig(): LightConfig;
137
+ declare function setLightUniforms(program: ShaderProgram, light: LightConfig, cameraPos: Vec3): void;
138
+
139
+ /**
140
+ * GPU color-based picking via offscreen FBO.
141
+ * Each object rendered with unique RGB color → readPixels → O(1) hit test.
142
+ */
143
+ interface PickingSystem {
144
+ begin(): void;
145
+ end(): void;
146
+ pick(x: number, y: number): number;
147
+ idToColor(id: number): [number, number, number];
148
+ resize(width: number, height: number): void;
149
+ destroy(): void;
150
+ }
151
+ declare function createPickingSystem(gl: WebGLRenderingContext, width: number, height: number, pixelRatio: number): PickingSystem;
152
+
153
+ /**
154
+ * Type definitions for @chartts/gl.
155
+ */
156
+
157
+ interface GLSeries3D {
158
+ name: string;
159
+ values: number[];
160
+ x?: number[];
161
+ y?: number[];
162
+ z?: number[];
163
+ color?: string;
164
+ size?: number;
165
+ opacity?: number;
166
+ }
167
+ interface GLSeries2D {
168
+ name: string;
169
+ x: number[];
170
+ y: number[];
171
+ color?: string;
172
+ size?: number;
173
+ opacity?: number;
174
+ }
175
+ interface GLChartData {
176
+ series: GLSeries3D[] | GLSeries2D[];
177
+ categories?: string[];
178
+ grid?: number[][];
179
+ }
180
+ interface GLDataPoint {
181
+ seriesIndex: number;
182
+ dataIndex: number;
183
+ value: number;
184
+ x?: number;
185
+ y?: number;
186
+ z?: number;
187
+ seriesName: string;
188
+ }
189
+ interface GLRenderContext {
190
+ renderer: GLRenderer;
191
+ camera: CameraState;
192
+ orbit: OrbitState | null;
193
+ picking: PickingSystem;
194
+ width: number;
195
+ height: number;
196
+ data: GLChartData;
197
+ options: GLChartOptions;
198
+ theme: GLTheme;
199
+ animationProgress: number;
200
+ }
201
+ interface GLTheme {
202
+ background: [number, number, number];
203
+ colors: string[];
204
+ textColor: string;
205
+ gridColor: string;
206
+ fontFamily: string;
207
+ fontSize: number;
208
+ }
209
+ declare const DEFAULT_GL_THEME: GLTheme;
210
+ declare const LIGHT_GL_THEME: GLTheme;
211
+ interface GLChartOptions {
212
+ camera?: CameraOptions;
213
+ orbit?: boolean | OrbitConfig;
214
+ light?: Partial<LightConfig>;
215
+ theme?: 'dark' | 'light' | GLTheme;
216
+ animate?: boolean;
217
+ animationDuration?: number;
218
+ tooltip?: boolean;
219
+ wireframe?: boolean;
220
+ opacity?: number;
221
+ pointSize?: number;
222
+ lineWidth?: number;
223
+ [key: string]: unknown;
224
+ }
225
+ interface GLChartTypePlugin {
226
+ readonly type: string;
227
+ prepare(ctx: GLRenderContext): void;
228
+ render(ctx: GLRenderContext): void;
229
+ renderPick?(ctx: GLRenderContext): void;
230
+ renderOverlay?(ctx: GLRenderContext, ctx2d: CanvasRenderingContext2D): void;
231
+ hitTest(ctx: GLRenderContext, x: number, y: number): GLDataPoint | null;
232
+ dispose(gl: WebGLRenderingContext): void;
233
+ needsLoop?(ctx: GLRenderContext): boolean;
234
+ }
235
+ interface GLChartInstance {
236
+ update(data: GLChartData): void;
237
+ setOption(opts: Partial<GLChartOptions>): void;
238
+ setCameraPosition(pos: [number, number, number]): void;
239
+ setCameraTarget(target: [number, number, number]): void;
240
+ resize(): void;
241
+ destroy(): void;
242
+ getDataAtPoint(x: number, y: number): GLDataPoint | null;
243
+ }
244
+ declare function hexToRGB(hex: string): [number, number, number];
245
+ declare function resolveTheme(theme?: 'dark' | 'light' | GLTheme): GLTheme;
246
+
247
+ /**
248
+ * createGLChart — factory that wires up renderer, camera, orbit, picking, and chart plugin.
249
+ */
250
+
251
+ declare function createGLChart(container: HTMLElement | string, plugin: GLChartTypePlugin, data: GLChartData, options?: GLChartOptions): GLChartInstance;
252
+
253
+ /**
254
+ * Convenience factories — one function per chart type.
255
+ */
256
+
257
+ declare function Scatter3D(container: HTMLElement | string, opts: GLChartOptions & {
258
+ data: GLChartData;
259
+ }): GLChartInstance;
260
+ declare function Bar3D(container: HTMLElement | string, opts: GLChartOptions & {
261
+ data: GLChartData;
262
+ }): GLChartInstance;
263
+ declare function Surface3D(container: HTMLElement | string, opts: GLChartOptions & {
264
+ data: GLChartData;
265
+ }): GLChartInstance;
266
+ declare function Globe3D(container: HTMLElement | string, opts: GLChartOptions & {
267
+ data: GLChartData;
268
+ }): GLChartInstance;
269
+ declare function Map3D(container: HTMLElement | string, opts: GLChartOptions & {
270
+ data: GLChartData;
271
+ }): GLChartInstance;
272
+ declare function Lines3D(container: HTMLElement | string, opts: GLChartOptions & {
273
+ data: GLChartData;
274
+ }): GLChartInstance;
275
+ declare function Line3D(container: HTMLElement | string, opts: GLChartOptions & {
276
+ data: GLChartData;
277
+ }): GLChartInstance;
278
+ declare function ScatterGL(container: HTMLElement | string, opts: GLChartOptions & {
279
+ data: GLChartData;
280
+ }): GLChartInstance;
281
+ declare function LinesGL(container: HTMLElement | string, opts: GLChartOptions & {
282
+ data: GLChartData;
283
+ }): GLChartInstance;
284
+ declare function FlowGL(container: HTMLElement | string, opts: GLChartOptions & {
285
+ data: GLChartData;
286
+ }): GLChartInstance;
287
+ declare function GraphGL(container: HTMLElement | string, opts: GLChartOptions & {
288
+ data: GLChartData;
289
+ }): GLChartInstance;
290
+
291
+ export { vec3 as $, createPickingSystem as A, Bar3D as B, type CameraState as C, DEFAULT_GL_THEME as D, createShaderProgram as E, FlowGL as F, type GLRenderer as G, defaultLightConfig as H, hexToRGB as I, mat4 as J, mat4Identity as K, LIGHT_GL_THEME as L, Map3D as M, mat4Invert as N, type OrbitConfig as O, type PickingSystem as P, mat4LookAt as Q, mat4Multiply as R, Scatter3D as S, mat4Perspective as T, projectToScreen as U, type Vec3 as V, resolveTheme as W, setLightUniforms as X, toRad as Y, updateCamera as Z, updateOrbitControls as _, type CameraOptions as a, type GLChartData as b, type GLChartInstance as c, type GLChartOptions as d, type GLChartTypePlugin as e, type GLDataPoint as f, type GLRenderContext as g, type GLSeries2D as h, type GLSeries3D as i, type GLTheme as j, Globe3D as k, GraphGL as l, type LightConfig as m, Line3D as n, Lines3D as o, LinesGL as p, type Mat4 as q, type OrbitState as r, ScatterGL as s, type ShaderProgram as t, Surface3D as u, compileShader as v, createCamera as w, createGLChart as x, createGLRenderer as y, createOrbitControls as z };
@@ -0,0 +1,20 @@
1
+ 'use strict';
2
+
3
+ var chunkQ4JAQOV3_cjs = require('./chunk-Q4JAQOV3.cjs');
4
+
5
+
6
+
7
+ Object.defineProperty(exports, "FlowGL", {
8
+ enumerable: true,
9
+ get: function () { return chunkQ4JAQOV3_cjs.FlowGL; }
10
+ });
11
+ Object.defineProperty(exports, "createFlowGLPlugin", {
12
+ enumerable: true,
13
+ get: function () { return chunkQ4JAQOV3_cjs.createFlowGLPlugin; }
14
+ });
15
+ Object.defineProperty(exports, "createGLChart", {
16
+ enumerable: true,
17
+ get: function () { return chunkQ4JAQOV3_cjs.createGLChart; }
18
+ });
19
+ //# sourceMappingURL=flow-gl.cjs.map
20
+ //# sourceMappingURL=flow-gl.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"flow-gl.cjs"}
@@ -0,0 +1,20 @@
1
+ import { e as GLChartTypePlugin } from './factory-Cp9Kr7aa.cjs';
2
+ export { F as FlowGL, b as GLChartData, c as GLChartInstance, d as GLChartOptions, f as GLDataPoint, x as createGLChart } from './factory-Cp9Kr7aa.cjs';
3
+
4
+ /**
5
+ * FlowGL — GPU-accelerated particle flow field visualization.
6
+ *
7
+ * Visualizes vector fields (wind, currents, forces) using thousands of
8
+ * animated particles that follow the field direction. Supports:
9
+ * - Velocity-based coloring (slow=cool, fast=hot)
10
+ * - Speed-based particle sizing
11
+ * - Direction-aware particle elongation
12
+ * - Age-based trail fade with glow
13
+ * - Grid-based or procedural vector fields
14
+ * - Arrow overlay showing field direction
15
+ * - Speed legend
16
+ */
17
+
18
+ declare function createFlowGLPlugin(): GLChartTypePlugin;
19
+
20
+ export { createFlowGLPlugin };
@@ -0,0 +1,20 @@
1
+ import { e as GLChartTypePlugin } from './factory-Cp9Kr7aa.js';
2
+ export { F as FlowGL, b as GLChartData, c as GLChartInstance, d as GLChartOptions, f as GLDataPoint, x as createGLChart } from './factory-Cp9Kr7aa.js';
3
+
4
+ /**
5
+ * FlowGL — GPU-accelerated particle flow field visualization.
6
+ *
7
+ * Visualizes vector fields (wind, currents, forces) using thousands of
8
+ * animated particles that follow the field direction. Supports:
9
+ * - Velocity-based coloring (slow=cool, fast=hot)
10
+ * - Speed-based particle sizing
11
+ * - Direction-aware particle elongation
12
+ * - Age-based trail fade with glow
13
+ * - Grid-based or procedural vector fields
14
+ * - Arrow overlay showing field direction
15
+ * - Speed legend
16
+ */
17
+
18
+ declare function createFlowGLPlugin(): GLChartTypePlugin;
19
+
20
+ export { createFlowGLPlugin };
@@ -0,0 +1,3 @@
1
+ export { FlowGL, createFlowGLPlugin, createGLChart } from './chunk-M24XMYGG.js';
2
+ //# sourceMappingURL=flow-gl.js.map
3
+ //# sourceMappingURL=flow-gl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"flow-gl.js"}
@@ -0,0 +1,20 @@
1
+ 'use strict';
2
+
3
+ var chunkQ4JAQOV3_cjs = require('./chunk-Q4JAQOV3.cjs');
4
+
5
+
6
+
7
+ Object.defineProperty(exports, "Globe3D", {
8
+ enumerable: true,
9
+ get: function () { return chunkQ4JAQOV3_cjs.Globe3D; }
10
+ });
11
+ Object.defineProperty(exports, "createGLChart", {
12
+ enumerable: true,
13
+ get: function () { return chunkQ4JAQOV3_cjs.createGLChart; }
14
+ });
15
+ Object.defineProperty(exports, "createGlobe3DPlugin", {
16
+ enumerable: true,
17
+ get: function () { return chunkQ4JAQOV3_cjs.createGlobe3DPlugin; }
18
+ });
19
+ //# sourceMappingURL=globe3d.cjs.map
20
+ //# sourceMappingURL=globe3d.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"globe3d.cjs"}
@@ -0,0 +1,10 @@
1
+ import { e as GLChartTypePlugin } from './factory-Cp9Kr7aa.cjs';
2
+ export { b as GLChartData, c as GLChartInstance, d as GLChartOptions, f as GLDataPoint, k as Globe3D, x as createGLChart } from './factory-Cp9Kr7aa.cjs';
3
+
4
+ /**
5
+ * Globe3D — UV sphere with lat/lng data mapping.
6
+ */
7
+
8
+ declare function createGlobe3DPlugin(): GLChartTypePlugin;
9
+
10
+ export { createGlobe3DPlugin };