@lineandvertexsoftware/vertexa-chart 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.
@@ -0,0 +1,605 @@
1
+ export type Datum = number | Date;
2
+ export type AxisType = "linear" | "log" | "time";
3
+ export type Axis = {
4
+ type?: AxisType;
5
+ title?: string;
6
+ range?: [Datum, Datum];
7
+ autorange?: boolean;
8
+ domain?: [Datum, Datum];
9
+ min?: Datum;
10
+ max?: Datum;
11
+ tickValues?: Datum[];
12
+ tickFormat?: string;
13
+ precision?: number;
14
+ timeFormat?: string;
15
+ };
16
+ /**
17
+ * Visual theme options for chart-wide styling.
18
+ *
19
+ * All fields are optional and are merged with internal defaults.
20
+ */
21
+ export type ChartTheme = {
22
+ colors?: {
23
+ background?: string;
24
+ text?: string;
25
+ axis?: string;
26
+ grid?: string;
27
+ tooltipBackground?: string;
28
+ tooltipText?: string;
29
+ palette?: string[];
30
+ };
31
+ fonts?: {
32
+ family?: string;
33
+ sizePx?: number;
34
+ axisFamily?: string;
35
+ axisSizePx?: number;
36
+ tooltipFamily?: string;
37
+ tooltipSizePx?: number;
38
+ };
39
+ axis?: {
40
+ color?: string;
41
+ textColor?: string;
42
+ fontFamily?: string;
43
+ fontSizePx?: number;
44
+ };
45
+ grid?: {
46
+ show?: boolean;
47
+ color?: string;
48
+ opacity?: number;
49
+ strokeWidth?: number;
50
+ };
51
+ tooltip?: {
52
+ background?: string;
53
+ textColor?: string;
54
+ fontFamily?: string;
55
+ fontSizePx?: number;
56
+ borderRadiusPx?: number;
57
+ paddingX?: number;
58
+ paddingY?: number;
59
+ boxShadow?: string;
60
+ };
61
+ };
62
+ export type ChartA11yOptions = {
63
+ /**
64
+ * Accessible label announced for the chart region.
65
+ *
66
+ * Defaults to `layout.title` when available, otherwise `"Interactive chart"`.
67
+ */
68
+ label?: string;
69
+ /**
70
+ * Additional description announced by assistive technologies.
71
+ */
72
+ description?: string;
73
+ /**
74
+ * Enable keyboard pan/zoom shortcuts on the chart container.
75
+ *
76
+ * Defaults to `true`.
77
+ */
78
+ keyboardNavigation?: boolean;
79
+ /**
80
+ * Use high-contrast fallback theme defaults.
81
+ *
82
+ * Defaults to `false`.
83
+ */
84
+ highContrast?: boolean;
85
+ };
86
+ export type ChartToolbarPosition = "top-right" | "top-left" | "bottom-right" | "bottom-left";
87
+ export type ChartToolbarExportFormat = "png" | "svg" | "csv";
88
+ export type ChartToolbarOptions = {
89
+ /**
90
+ * Show the built-in toolbar UI.
91
+ *
92
+ * Defaults to `false`.
93
+ */
94
+ show?: boolean;
95
+ /**
96
+ * Toolbar placement inside the chart viewport.
97
+ *
98
+ * Defaults to `"top-right"`.
99
+ */
100
+ position?: ChartToolbarPosition;
101
+ /**
102
+ * Show fullscreen toggle button.
103
+ *
104
+ * Defaults to `true` when toolbar is shown.
105
+ */
106
+ fullscreen?: boolean;
107
+ /**
108
+ * Show export button/dropdown.
109
+ *
110
+ * Defaults to `true` when toolbar is shown.
111
+ */
112
+ export?: boolean;
113
+ /**
114
+ * Export formats in dropdown order.
115
+ *
116
+ * Defaults to `["png", "svg", "csv"]`.
117
+ */
118
+ exportFormats?: ChartToolbarExportFormat[];
119
+ /**
120
+ * Base filename used by built-in export actions.
121
+ *
122
+ * Defaults to `"vertexa-chart"`.
123
+ */
124
+ exportFilename?: string;
125
+ /**
126
+ * Pixel ratio used by built-in PNG/SVG exports.
127
+ *
128
+ * Defaults to `2`.
129
+ */
130
+ exportPixelRatio?: number;
131
+ };
132
+ /**
133
+ * Grid styling and visibility options.
134
+ *
135
+ * Defaults:
136
+ * - `show`: `true`
137
+ * - `color`: `"#e5e7eb"`
138
+ * - `axisColor`: `"#9ca3af"`
139
+ * - `textColor`: `"#4b5563"`
140
+ * - `opacity`: `1`
141
+ * - `strokeWidth`: `1`
142
+ */
143
+ export type GridConfig = {
144
+ show?: boolean;
145
+ color?: string;
146
+ axisColor?: string;
147
+ textColor?: string;
148
+ opacity?: number;
149
+ strokeWidth?: number;
150
+ };
151
+ export type AnnotationLine = {
152
+ type: "line";
153
+ x0: Datum;
154
+ y0: Datum;
155
+ x1: Datum;
156
+ y1: Datum;
157
+ color?: string;
158
+ opacity?: number;
159
+ widthPx?: number;
160
+ dash?: LineDashPattern;
161
+ };
162
+ export type AnnotationRegion = {
163
+ type: "region";
164
+ x0: Datum;
165
+ y0: Datum;
166
+ x1: Datum;
167
+ y1: Datum;
168
+ fill?: string;
169
+ fillOpacity?: number;
170
+ stroke?: string;
171
+ strokeOpacity?: number;
172
+ strokeWidthPx?: number;
173
+ };
174
+ export type AnnotationLabel = {
175
+ type: "label";
176
+ x: Datum;
177
+ y: Datum;
178
+ text: string;
179
+ color?: string;
180
+ fontFamily?: string;
181
+ fontSizePx?: number;
182
+ anchor?: "start" | "middle" | "end";
183
+ offsetXPx?: number;
184
+ offsetYPx?: number;
185
+ background?: string;
186
+ backgroundOpacity?: number;
187
+ paddingX?: number;
188
+ paddingY?: number;
189
+ };
190
+ export type Annotation = AnnotationLine | AnnotationRegion | AnnotationLabel;
191
+ export type HoverMode = "closest" | "x" | "y" | "none";
192
+ export type LegendLayout = {
193
+ show?: boolean;
194
+ position?: "top-right" | "top-left" | "bottom-right" | "bottom-left";
195
+ };
196
+ export type Margin = {
197
+ top?: number;
198
+ right?: number;
199
+ bottom?: number;
200
+ left?: number;
201
+ };
202
+ export type Layout = {
203
+ title?: string;
204
+ xaxis?: Axis;
205
+ yaxis?: Axis;
206
+ axes?: {
207
+ x?: Axis;
208
+ y?: Axis;
209
+ };
210
+ hovermode?: HoverMode;
211
+ grid?: GridConfig;
212
+ annotations?: Annotation[];
213
+ legend?: LegendLayout;
214
+ margin?: Margin;
215
+ };
216
+ export type Visible = true | false | "legendonly";
217
+ export type LineDashPattern = "solid" | "dash" | "dot" | "dashdot" | number[];
218
+ export type LineSmoothingMode = "none" | "catmull-rom";
219
+ type TraceBase = {
220
+ id?: string;
221
+ name?: string;
222
+ visible?: Visible;
223
+ x: ArrayLike<Datum>;
224
+ y: ArrayLike<Datum>;
225
+ hovertemplate?: string;
226
+ };
227
+ export type ScatterTrace = TraceBase & {
228
+ type: "scatter";
229
+ mode?: "markers" | "lines" | "lines+markers";
230
+ marker?: {
231
+ sizePx?: number;
232
+ color?: string;
233
+ opacity?: number;
234
+ };
235
+ line?: {
236
+ color?: string;
237
+ opacity?: number;
238
+ widthPx?: number;
239
+ dash?: LineDashPattern;
240
+ smoothing?: LineSmoothingMode;
241
+ };
242
+ };
243
+ export type BarTrace = TraceBase & {
244
+ type: "bar";
245
+ marker?: {
246
+ color?: string;
247
+ opacity?: number;
248
+ };
249
+ bar?: {
250
+ widthPx?: number;
251
+ color?: string;
252
+ opacity?: number;
253
+ base?: Datum;
254
+ };
255
+ };
256
+ export type AreaTrace = TraceBase & {
257
+ type: "area";
258
+ mode?: "markers" | "lines" | "lines+markers";
259
+ marker?: {
260
+ sizePx?: number;
261
+ color?: string;
262
+ opacity?: number;
263
+ };
264
+ line?: {
265
+ color?: string;
266
+ opacity?: number;
267
+ widthPx?: number;
268
+ dash?: LineDashPattern;
269
+ smoothing?: LineSmoothingMode;
270
+ };
271
+ area?: {
272
+ base?: Datum;
273
+ color?: string;
274
+ opacity?: number;
275
+ };
276
+ };
277
+ export type HeatmapTrace = TraceBase & {
278
+ type: "heatmap";
279
+ z: ArrayLike<ArrayLike<number>>;
280
+ heatmap?: {
281
+ colorscale?: string[];
282
+ zmin?: number;
283
+ zmax?: number;
284
+ opacity?: number;
285
+ };
286
+ };
287
+ export type Trace = ScatterTrace | BarTrace | AreaTrace | HeatmapTrace;
288
+ export type ChartPoint = {
289
+ traceIndex: number;
290
+ pointIndex: number;
291
+ x: Datum;
292
+ y: Datum;
293
+ screenX: number;
294
+ screenY: number;
295
+ };
296
+ export type ChartHoverEvent = {
297
+ mode: HoverMode;
298
+ inside: boolean;
299
+ cursor: {
300
+ screenX: number;
301
+ screenY: number;
302
+ xData: Datum;
303
+ yData: Datum;
304
+ };
305
+ point: ChartPoint | null;
306
+ };
307
+ export type ChartClickEvent = {
308
+ inside: boolean;
309
+ cursor: {
310
+ screenX: number;
311
+ screenY: number;
312
+ xData: Datum;
313
+ yData: Datum;
314
+ };
315
+ point: ChartPoint | null;
316
+ };
317
+ export type ChartZoomEvent = {
318
+ k: number;
319
+ x: number;
320
+ y: number;
321
+ };
322
+ export type ChartLegendToggleEvent = {
323
+ traceIndex: number;
324
+ previousVisible: Visible;
325
+ visible: Visible;
326
+ trace: Trace;
327
+ };
328
+ export type ChartSelectedTracePoints = {
329
+ traceIndex: number;
330
+ pointIndices: number[];
331
+ };
332
+ export type ChartTooltipContext = {
333
+ traceIndex: number;
334
+ pointIndex: number;
335
+ trace: Trace;
336
+ x: Datum;
337
+ y: Datum;
338
+ z?: number;
339
+ screenX: number;
340
+ screenY: number;
341
+ defaultLabel: string;
342
+ };
343
+ export type ChartTooltipOptions = {
344
+ /**
345
+ * Return plain text tooltip content.
346
+ * Used when `renderer` is not provided.
347
+ */
348
+ formatter?: (context: ChartTooltipContext) => string;
349
+ /**
350
+ * Return custom tooltip content.
351
+ * - `string`: rendered as HTML
352
+ * - `Node`: mounted directly in the tooltip container
353
+ * - `null`: hide tooltip
354
+ */
355
+ renderer?: (context: ChartTooltipContext) => string | Node | null;
356
+ };
357
+ export type ChartSelectionEvent = {
358
+ mode: "box" | "lasso";
359
+ box: {
360
+ x0: number;
361
+ y0: number;
362
+ x1: number;
363
+ y1: number;
364
+ x0Data: Datum;
365
+ y0Data: Datum;
366
+ x1Data: Datum;
367
+ y1Data: Datum;
368
+ };
369
+ lasso?: {
370
+ svg: Array<{
371
+ x: number;
372
+ y: number;
373
+ }>;
374
+ plot: Array<{
375
+ x: number;
376
+ y: number;
377
+ }>;
378
+ data: Array<{
379
+ x: Datum;
380
+ y: Datum;
381
+ }>;
382
+ };
383
+ points: ChartSelectedTracePoints[];
384
+ totalPoints: number;
385
+ };
386
+ export type ChartLatencyStats = {
387
+ last: number;
388
+ avg: number;
389
+ };
390
+ export type ChartAppendPointsUpdate = {
391
+ /**
392
+ * Target trace index in the current chart trace list.
393
+ */
394
+ traceIndex: number;
395
+ /**
396
+ * New x values to append.
397
+ */
398
+ x: ArrayLike<Datum>;
399
+ /**
400
+ * New y values to append.
401
+ */
402
+ y: ArrayLike<Datum>;
403
+ /**
404
+ * Optional per-trace sliding window size applied after append.
405
+ */
406
+ maxPoints?: number;
407
+ };
408
+ export type ChartAppendPointsOptions = {
409
+ /**
410
+ * Default sliding window size applied to updates without `maxPoints`.
411
+ */
412
+ maxPoints?: number;
413
+ };
414
+ export type ChartExportPngOptions = {
415
+ /**
416
+ * Export scale factor relative to chart CSS size.
417
+ *
418
+ * Defaults to `1`.
419
+ */
420
+ pixelRatio?: number;
421
+ /**
422
+ * Background fill color before compositing chart layers.
423
+ *
424
+ * Defaults to theme background.
425
+ */
426
+ background?: string;
427
+ /**
428
+ * Include the SVG grid layer in export.
429
+ *
430
+ * Defaults to `true`.
431
+ */
432
+ includeGrid?: boolean;
433
+ /**
434
+ * Include the SVG overlay layer (axes, legend, guides) in export.
435
+ *
436
+ * Defaults to `true`.
437
+ */
438
+ includeOverlay?: boolean;
439
+ };
440
+ export type ChartExportSvgOptions = {
441
+ /**
442
+ * Export scale factor relative to chart CSS size for the embedded plot image.
443
+ *
444
+ * Defaults to `1`.
445
+ */
446
+ pixelRatio?: number;
447
+ /**
448
+ * Background fill color for the root SVG.
449
+ *
450
+ * Defaults to theme background.
451
+ */
452
+ background?: string;
453
+ /**
454
+ * Include the rendered plot layer as an embedded PNG image in the SVG.
455
+ *
456
+ * Defaults to `true`.
457
+ */
458
+ includePlot?: boolean;
459
+ /**
460
+ * Include the SVG grid layer in export.
461
+ *
462
+ * Defaults to `true`.
463
+ */
464
+ includeGrid?: boolean;
465
+ /**
466
+ * Include the SVG overlay layer (axes, legend, guides) in export.
467
+ *
468
+ * Defaults to `true`.
469
+ */
470
+ includeOverlay?: boolean;
471
+ };
472
+ export type ChartExportCsvPointsOptions = {
473
+ /**
474
+ * Include a CSV header row.
475
+ *
476
+ * Defaults to `true`.
477
+ */
478
+ includeHeader?: boolean;
479
+ /**
480
+ * Include traces with `visible: false` or `visible: "legendonly"`.
481
+ *
482
+ * Defaults to `false`.
483
+ */
484
+ includeHidden?: boolean;
485
+ };
486
+ /**
487
+ * Runtime performance snapshot for a chart instance.
488
+ *
489
+ * - `fps` is estimated from the rolling average render time.
490
+ * - `sampledPoints` is the effective marker instance count from the latest frame.
491
+ * - `renderMs` and `pickMs` are timings in milliseconds.
492
+ */
493
+ export type ChartPerformanceStats = {
494
+ fps: number;
495
+ sampledPoints: number;
496
+ renderMs: ChartLatencyStats;
497
+ pickMs: ChartLatencyStats;
498
+ frameCount: number;
499
+ };
500
+ export type ChartPerformanceMode = "quality" | "balanced" | "max-fps";
501
+ /**
502
+ * Frozen public API for `Chart` instances.
503
+ *
504
+ * Only these methods are part of the supported runtime contract.
505
+ */
506
+ export interface ChartPublicApi {
507
+ /**
508
+ * Replace all traces and redraw.
509
+ */
510
+ setTraces(traces: Trace[]): void;
511
+ /**
512
+ * Incrementally append points to one or more traces and redraw.
513
+ *
514
+ * Supports optional sliding-window trimming via `maxPoints`.
515
+ */
516
+ appendPoints(updates: ChartAppendPointsUpdate | ChartAppendPointsUpdate[], options?: ChartAppendPointsOptions): void;
517
+ /**
518
+ * Export the current chart view as PNG.
519
+ */
520
+ exportPng(options?: ChartExportPngOptions): Promise<Blob>;
521
+ /**
522
+ * Export the current chart view as SVG.
523
+ */
524
+ exportSvg(options?: ChartExportSvgOptions): Promise<Blob>;
525
+ /**
526
+ * Export chart points as CSV rows.
527
+ */
528
+ exportCsvPoints(options?: ChartExportCsvPointsOptions): Blob;
529
+ /**
530
+ * Replace layout and redraw.
531
+ */
532
+ setLayout(layout: Layout): void;
533
+ /**
534
+ * Resize the chart viewport in CSS pixels and redraw.
535
+ */
536
+ setSize(width: number, height: number): void;
537
+ /**
538
+ * Programmatically pan the current view in CSS pixels.
539
+ */
540
+ panBy(dxCss: number, dyCss: number): void;
541
+ /**
542
+ * Programmatically zoom the current view around an optional plot-local center.
543
+ */
544
+ zoomBy(factor: number, centerPlot?: {
545
+ x: number;
546
+ y: number;
547
+ }): void;
548
+ /**
549
+ * Reset zoom/pan transform to the default view.
550
+ */
551
+ resetView(): void;
552
+ /**
553
+ * Fit current data extents and reset view transform.
554
+ */
555
+ fitToData(): void;
556
+ /**
557
+ * Recompute y-axis domain for currently visible x-range.
558
+ */
559
+ autoscaleY(): void;
560
+ /**
561
+ * Enable or disable equal-unit aspect lock.
562
+ */
563
+ setAspectLock(enabled: boolean): void;
564
+ /**
565
+ * Switch renderer performance mode.
566
+ */
567
+ setPerformanceMode(mode: ChartPerformanceMode): void;
568
+ /**
569
+ * Read runtime performance stats for rendering and picking.
570
+ */
571
+ getPerformanceStats(): ChartPerformanceStats;
572
+ /**
573
+ * Release resources and detach the chart from the DOM.
574
+ *
575
+ * Idempotent: repeated calls are safe.
576
+ */
577
+ destroy(): void;
578
+ }
579
+ export type ChartOptions = {
580
+ width: number;
581
+ height: number;
582
+ padding?: {
583
+ l: number;
584
+ r: number;
585
+ t: number;
586
+ b: number;
587
+ };
588
+ /**
589
+ * Global visual theme for colors, fonts, axis, grid, and tooltip styling.
590
+ */
591
+ theme?: ChartTheme;
592
+ a11y?: ChartA11yOptions;
593
+ layout?: Layout;
594
+ traces: Trace[];
595
+ pickingMode?: "cpu" | "gpu" | "both";
596
+ onHover?: (event: ChartHoverEvent) => void;
597
+ onClick?: (event: ChartClickEvent) => void;
598
+ onZoom?: (event: ChartZoomEvent) => void;
599
+ onLegendToggle?: (event: ChartLegendToggleEvent) => void;
600
+ onSelect?: (event: ChartSelectionEvent) => void;
601
+ tooltip?: ChartTooltipOptions;
602
+ toolbar?: ChartToolbarOptions;
603
+ };
604
+ export {};
605
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js ADDED
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
package/package.json ADDED
@@ -0,0 +1,60 @@
1
+ {
2
+ "name": "@lineandvertexsoftware/vertexa-chart",
3
+ "version": "0.1.0",
4
+ "description": "High-performance charting library using WebGPU and D3.js",
5
+ "type": "module",
6
+ "main": "./dist/index.js",
7
+ "types": "./dist/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./dist/index.d.ts",
11
+ "import": "./dist/index.js"
12
+ }
13
+ },
14
+ "files": [
15
+ "dist",
16
+ "README.md",
17
+ "LICENSE"
18
+ ],
19
+ "dependencies": {
20
+ "@lineandvertexsoftware/renderer-webgpu": "0.1.0",
21
+ "@lineandvertexsoftware/overlay-d3": "0.1.0"
22
+ },
23
+ "devDependencies": {
24
+ "typescript": "^5.6.3"
25
+ },
26
+ "sideEffects": false,
27
+ "keywords": [
28
+ "webgpu",
29
+ "d3",
30
+ "charts",
31
+ "visualization",
32
+ "gpu",
33
+ "performance",
34
+ "plotting"
35
+ ],
36
+ "author": "Vertexa contributors",
37
+ "license": "MIT",
38
+ "engines": {
39
+ "node": ">=20"
40
+ },
41
+ "repository": {
42
+ "type": "git",
43
+ "url": "git+https://github.com/LineandVertexSoftware/vertexa-chart.git",
44
+ "directory": "packages/vertexa-chart"
45
+ },
46
+ "homepage": "https://github.com/LineandVertexSoftware/vertexa-chart#readme",
47
+ "bugs": {
48
+ "url": "https://github.com/LineandVertexSoftware/vertexa-chart/issues"
49
+ },
50
+ "publishConfig": {
51
+ "access": "public"
52
+ },
53
+ "scripts": {
54
+ "build": "tsc",
55
+ "dev": "tsc --watch",
56
+ "test": "pnpm build && node --experimental-test-module-mocks --test test/*.test.mjs",
57
+ "clean": "rm -rf dist tsconfig.tsbuildinfo",
58
+ "typecheck": "tsc --noEmit"
59
+ }
60
+ }