juxscript 1.1.397 → 1.1.398

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 (97) hide show
  1. package/dist/charts/barChart.d.ts +119 -0
  2. package/dist/charts/barChart.d.ts.map +1 -0
  3. package/dist/charts/barChart.js +644 -0
  4. package/dist/charts/barChart.js.map +1 -0
  5. package/dist/charts/lineChart.d.ts +104 -0
  6. package/dist/charts/lineChart.d.ts.map +1 -0
  7. package/dist/charts/lineChart.js +466 -0
  8. package/dist/charts/lineChart.js.map +1 -0
  9. package/dist/charts/pieChart.d.ts +93 -0
  10. package/dist/charts/pieChart.d.ts.map +1 -0
  11. package/dist/charts/pieChart.js +397 -0
  12. package/dist/charts/pieChart.js.map +1 -0
  13. package/dist/components/barChart.d.ts +18 -2
  14. package/dist/components/barChart.d.ts.map +1 -1
  15. package/dist/components/barChart.js +175 -140
  16. package/dist/components/barChart.js.map +1 -1
  17. package/dist/components/button.d.ts +6 -0
  18. package/dist/components/button.d.ts.map +1 -1
  19. package/dist/components/button.js +18 -0
  20. package/dist/components/button.js.map +1 -1
  21. package/dist/components/checkbox.d.ts +6 -0
  22. package/dist/components/checkbox.d.ts.map +1 -1
  23. package/dist/components/checkbox.js +34 -0
  24. package/dist/components/checkbox.js.map +1 -1
  25. package/dist/components/input.d.ts +3 -0
  26. package/dist/components/input.d.ts.map +1 -1
  27. package/dist/components/input.js +17 -0
  28. package/dist/components/input.js.map +1 -1
  29. package/dist/components/lineChart.d.ts +19 -2
  30. package/dist/components/lineChart.d.ts.map +1 -1
  31. package/dist/components/lineChart.js +233 -97
  32. package/dist/components/lineChart.js.map +1 -1
  33. package/dist/components/link.d.ts +3 -0
  34. package/dist/components/link.d.ts.map +1 -1
  35. package/dist/components/link.js +17 -0
  36. package/dist/components/link.js.map +1 -1
  37. package/dist/components/list.d.ts +3 -0
  38. package/dist/components/list.d.ts.map +1 -1
  39. package/dist/components/list.js +17 -0
  40. package/dist/components/list.js.map +1 -1
  41. package/dist/components/nav.d.ts +3 -0
  42. package/dist/components/nav.d.ts.map +1 -1
  43. package/dist/components/nav.js +17 -0
  44. package/dist/components/nav.js.map +1 -1
  45. package/dist/components/pieChart.d.ts +7 -0
  46. package/dist/components/pieChart.d.ts.map +1 -1
  47. package/dist/components/pieChart.js +113 -16
  48. package/dist/components/pieChart.js.map +1 -1
  49. package/dist/components/radio.d.ts +3 -0
  50. package/dist/components/radio.d.ts.map +1 -1
  51. package/dist/components/radio.js +17 -0
  52. package/dist/components/radio.js.map +1 -1
  53. package/dist/components/select.d.ts +3 -0
  54. package/dist/components/select.d.ts.map +1 -1
  55. package/dist/components/select.js +17 -0
  56. package/dist/components/select.js.map +1 -1
  57. package/dist/components/table.d.ts +3 -0
  58. package/dist/components/table.d.ts.map +1 -1
  59. package/dist/components/table.js +17 -0
  60. package/dist/components/table.js.map +1 -1
  61. package/dist/components/tabs.d.ts +3 -0
  62. package/dist/components/tabs.d.ts.map +1 -1
  63. package/dist/components/tabs.js +17 -0
  64. package/dist/components/tabs.js.map +1 -1
  65. package/dist/components/tag.d.ts +3 -0
  66. package/dist/components/tag.d.ts.map +1 -1
  67. package/dist/components/tag.js +18 -0
  68. package/dist/components/tag.js.map +1 -1
  69. package/dist/index.d.ts +12 -19
  70. package/dist/index.d.ts.map +1 -1
  71. package/dist/index.js +12 -19
  72. package/dist/index.js.map +1 -1
  73. package/dist/shapes/c.d.ts +53 -0
  74. package/dist/shapes/c.d.ts.map +1 -0
  75. package/dist/shapes/c.js +127 -0
  76. package/dist/shapes/c.js.map +1 -0
  77. package/dist/shapes/g.d.ts +21 -0
  78. package/dist/shapes/g.d.ts.map +1 -0
  79. package/dist/shapes/g.js +52 -0
  80. package/dist/shapes/g.js.map +1 -0
  81. package/dist/tools/devtools.d.ts +3 -0
  82. package/dist/tools/devtools.d.ts.map +1 -0
  83. package/dist/tools/devtools.js +182 -0
  84. package/dist/tools/devtools.js.map +1 -0
  85. package/dist/utils/colors.d.ts +32 -5
  86. package/dist/utils/colors.d.ts.map +1 -1
  87. package/dist/utils/colors.js +32 -6
  88. package/dist/utils/colors.js.map +1 -1
  89. package/dist/utils/tooltip.d.ts +5 -0
  90. package/dist/utils/tooltip.d.ts.map +1 -0
  91. package/dist/utils/tooltip.js +52 -0
  92. package/dist/utils/tooltip.js.map +1 -0
  93. package/dist/utils/trend.d.ts +9 -0
  94. package/dist/utils/trend.d.ts.map +1 -0
  95. package/dist/utils/trend.js +35 -0
  96. package/dist/utils/trend.js.map +1 -0
  97. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"barChart.js","sourceRoot":"","sources":["../../lib/charts/barChart.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,104 @@
1
+ interface LineDataItem {
2
+ x?: number;
3
+ label?: string;
4
+ [key: string]: any;
5
+ }
6
+ interface LineClickDetail {
7
+ chartId: string;
8
+ index: number;
9
+ seriesKey: string;
10
+ label: string;
11
+ value: number;
12
+ item: LineDataItem;
13
+ }
14
+ interface SeriesConfig {
15
+ key: string;
16
+ label?: string;
17
+ color?: string;
18
+ }
19
+ interface LineChartOptions {
20
+ title?: string;
21
+ subtitle?: string;
22
+ colors?: string | string[];
23
+ aspectRatio?: string | number;
24
+ showValues?: boolean;
25
+ showDots?: boolean;
26
+ showGrid?: boolean;
27
+ showLegend?: boolean;
28
+ smooth?: boolean;
29
+ filled?: boolean;
30
+ lineWidth?: number;
31
+ dotRadius?: number;
32
+ ticks?: number;
33
+ animate?: boolean;
34
+ responsive?: boolean;
35
+ maintainAspectRatio?: boolean;
36
+ width?: number;
37
+ height?: number;
38
+ class?: string;
39
+ style?: string;
40
+ disabled?: boolean;
41
+ content?: string;
42
+ series?: SeriesConfig[];
43
+ trendTitle?: string;
44
+ trendSubtitle?: string;
45
+ trendIcon?: string;
46
+ autoTrend?: boolean;
47
+ onClick?: (event: LineClickDetail) => void;
48
+ }
49
+ declare class LineChart {
50
+ id: string;
51
+ private _values;
52
+ private _opts;
53
+ private _palette;
54
+ private _wrapperEl;
55
+ private _stateEl;
56
+ private _resizeObserver;
57
+ private _lastClickDetail;
58
+ private _onChange;
59
+ private _listeners;
60
+ private _seriesKeys;
61
+ private _hasAnimated;
62
+ constructor(id: string, values: LineDataItem[], options?: LineChartOptions);
63
+ title(val: string): this;
64
+ subtitle(val: string): this;
65
+ content(val: string): this;
66
+ disabled(val: boolean): this;
67
+ style(val: string): this;
68
+ class(val: string): this;
69
+ getValue(): LineClickDetail | null;
70
+ setValue(val: any): this;
71
+ getElement(): HTMLButtonElement;
72
+ setContent(val: string): this;
73
+ getTitle(): string;
74
+ getSubtitle(): string;
75
+ getContent(): string;
76
+ getDisabled(): boolean;
77
+ getClass(): string;
78
+ getStyle(): string;
79
+ setTitle(val: string): this;
80
+ setSubtitle(val: string): this;
81
+ setDisabled(val: boolean): this;
82
+ setClass(val: string): this;
83
+ setStyle(val: string): this;
84
+ onChange(fn: (value: any) => void): this;
85
+ get state(): any;
86
+ get element(): HTMLDivElement;
87
+ private _handleDotClick;
88
+ private _buildChart;
89
+ private _hasTrend;
90
+ private _renderTrend;
91
+ render(target?: string | HTMLElement | {
92
+ element: HTMLElement;
93
+ }): this;
94
+ into(target?: string | HTMLElement | {
95
+ element: HTMLElement;
96
+ }): this;
97
+ on(event: string, fn: Function): this;
98
+ off(event: string, fn: Function): this;
99
+ destroy(): void;
100
+ }
101
+ export declare function lineChart(id: string, values: LineDataItem[], options?: LineChartOptions): LineChart;
102
+ export { LineChart, LineChartOptions, LineDataItem, LineClickDetail, SeriesConfig };
103
+ export default lineChart;
104
+ //# sourceMappingURL=lineChart.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lineChart.d.ts","sourceRoot":"","sources":["../../lib/charts/lineChart.ts"],"names":[],"mappings":"AAyBA,UAAU,YAAY;IAClB,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACtB;AAED,UAAU,eAAe;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,YAAY,CAAC;CACtB;AAED,UAAU,YAAY;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,UAAU,gBAAgB;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC9B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,YAAY,EAAE,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,CAAC;CAC9C;AA0BD,cAAM,SAAS;IACX,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,CAAC,OAAO,CAAiB;IAChC,OAAO,CAAC,KAAK,CAAmQ;IAChR,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,UAAU,CAAiB;IACnC,OAAO,CAAC,QAAQ,CAAoB;IACpC,OAAO,CAAC,eAAe,CAA+B;IACtD,OAAO,CAAC,gBAAgB,CAAgC;IACxD,OAAO,CAAC,SAAS,CAAuC;IACxD,OAAO,CAAC,UAAU,CAA6C;IAC/D,OAAO,CAAC,WAAW,CAAiB;IACpC,OAAO,CAAC,YAAY,CAAkB;gBAE1B,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,OAAO,GAAE,gBAAqB;IA6C9E,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IACxB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAC3B,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAC1B,QAAQ,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI;IAC5B,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IACxB,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAMxB,QAAQ,IAAI,eAAe,GAAG,IAAI;IAClC,QAAQ,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI;IACxB,UAAU,IAAI,iBAAiB;IAC/B,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAE7B,QAAQ,IAAI,MAAM;IAClB,WAAW,IAAI,MAAM;IACrB,UAAU,IAAI,MAAM;IACpB,WAAW,IAAI,OAAO;IACtB,QAAQ,IAAI,MAAM;IAClB,QAAQ,IAAI,MAAM;IAElB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAC3B,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAC9B,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI;IAC/B,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAC3B,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAE3B,QAAQ,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,GAAG,IAAI;IAExC,IAAI,KAAK,IAAI,GAAG,CAA+B;IAC/C,IAAI,OAAO,IAAI,cAAc,CAA4B;IAMzD,OAAO,CAAC,eAAe;IAkBvB,OAAO,CAAC,WAAW;IAoOnB,OAAO,CAAC,SAAS;IAKjB,OAAO,CAAC,YAAY;IA4CpB,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,WAAW,GAAG;QAAE,OAAO,EAAE,WAAW,CAAA;KAAE,GAAG,IAAI;IAwBtE,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,WAAW,GAAG;QAAE,OAAO,EAAE,WAAW,CAAA;KAAE,GAAG,IAAI;IAEpE,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,GAAG,IAAI;IAKrC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,GAAG,IAAI;IAKtC,OAAO;CAKV;AAMD,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,OAAO,GAAE,gBAAqB,GAAG,SAAS,CAIvG;AAED,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,YAAY,EAAE,eAAe,EAAE,YAAY,EAAE,CAAC;AACpF,eAAe,SAAS,CAAC"}
@@ -0,0 +1,466 @@
1
+ import { pageState } from '../state/pageState.js';
2
+ import generateId from '../utils/idgen.js';
3
+ import { showTooltip, moveTooltip, hideTooltip, formatTooltipRow } from '../utils/tooltip.js';
4
+ import { computeTrend } from '../utils/trend.js';
5
+ const FONT_FAMILY = `-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif`;
6
+ const TOKENS = {
7
+ muted: 'hsl(215, 16%, 47%)',
8
+ border: 'hsl(220, 13%, 91%)',
9
+ grid: 'hsl(220, 13%, 93%)',
10
+ bg: '#ffffff',
11
+ title: 'hsl(222, 47%, 11%)',
12
+ };
13
+ const RATIOS = {
14
+ '16:9': 16 / 9, '4:3': 4 / 3, '3:2': 3 / 2, '1:1': 1, '2:1': 2, '21:9': 21 / 9,
15
+ };
16
+ const DEFAULT_SERIES_COLORS = [
17
+ 'hsl(217,91%,60%)', 'hsl(142,71%,45%)', 'hsl(25,95%,53%)',
18
+ 'hsl(280,67%,55%)', 'hsl(199,89%,48%)', 'hsl(350,80%,55%)',
19
+ 'hsl(45,93%,47%)', 'hsl(160,84%,39%)',
20
+ ];
21
+ function resolvePalette(colors) {
22
+ if (Array.isArray(colors))
23
+ return colors;
24
+ const palettes = {
25
+ green: ['hsl(142,71%,45%)'], blue: ['hsl(217,91%,60%)'],
26
+ warm: ['hsl(25,95%,53%)'], cool: ['hsl(199,89%,48%)'],
27
+ };
28
+ return palettes[colors] || palettes['blue'];
29
+ }
30
+ function formatTick(val) {
31
+ if (val >= 1000)
32
+ return `${(val / 1000).toFixed(1)}k`;
33
+ return String(Math.round(val));
34
+ }
35
+ function detectSeriesKeys(values, seriesOpt) {
36
+ if (seriesOpt && seriesOpt.length > 0)
37
+ return seriesOpt;
38
+ if (values.length === 0)
39
+ return [{ key: 'x', label: 'Value' }];
40
+ const sample = values[0];
41
+ const keys = Object.keys(sample).filter(k => k !== 'label' && typeof sample[k] === 'number');
42
+ if (keys.length === 0)
43
+ return [{ key: 'x', label: 'Value' }];
44
+ if (keys.length === 1)
45
+ return [{ key: keys[0], label: keys[0] === 'x' ? 'Value' : keys[0] }];
46
+ return keys.map(k => ({ key: k, label: k }));
47
+ }
48
+ class LineChart {
49
+ constructor(id, values, options = {}) {
50
+ this._resizeObserver = null;
51
+ this._lastClickDetail = null;
52
+ this._onChange = null;
53
+ this._listeners = { click: [] };
54
+ this._hasAnimated = false;
55
+ this.id = id || generateId('line');
56
+ this._values = values;
57
+ this._opts = {
58
+ title: options.title || '',
59
+ subtitle: options.subtitle || '',
60
+ colors: options.colors || 'blue',
61
+ aspectRatio: options.aspectRatio || '16:9',
62
+ showValues: options.showValues ?? false,
63
+ showDots: options.showDots ?? true,
64
+ showGrid: options.showGrid ?? true,
65
+ showLegend: options.showLegend ?? undefined,
66
+ smooth: options.smooth ?? true,
67
+ filled: options.filled ?? false,
68
+ lineWidth: options.lineWidth ?? 2,
69
+ dotRadius: options.dotRadius ?? 4,
70
+ ticks: options.ticks ?? 4,
71
+ animate: options.animate ?? true,
72
+ responsive: options.responsive ?? true,
73
+ maintainAspectRatio: options.maintainAspectRatio ?? true,
74
+ ...options,
75
+ };
76
+ this._seriesKeys = detectSeriesKeys(values, options.series);
77
+ // Auto-show legend when multi-series
78
+ if (this._opts.showLegend === undefined) {
79
+ this._opts.showLegend = this._seriesKeys.length > 1;
80
+ }
81
+ this._palette = this._seriesKeys.length > 1
82
+ ? this._seriesKeys.map((s, i) => s.color || DEFAULT_SERIES_COLORS[i % DEFAULT_SERIES_COLORS.length])
83
+ : resolvePalette(this._opts.colors || 'blue');
84
+ this._wrapperEl = document.createElement('div');
85
+ this._wrapperEl.id = `${id}-wrapper`;
86
+ this._wrapperEl.style.cssText = 'width:100%;position:relative;box-sizing:border-box;';
87
+ this._stateEl = document.createElement('button');
88
+ this._stateEl.id = id;
89
+ this._stateEl.style.cssText = 'position:absolute;width:0;height:0;overflow:hidden;opacity:0;pointer-events:none;';
90
+ this._wrapperEl.appendChild(this._stateEl);
91
+ }
92
+ // ═══════════════════════════════════════════════════════════
93
+ // FLUENT BUILDER API
94
+ // ═══════════════════════════════════════════════════════════
95
+ title(val) { this._opts.title = val; return this; }
96
+ subtitle(val) { this._opts.subtitle = val; return this; }
97
+ content(val) { this._opts.title = val; return this; }
98
+ disabled(val) { return this; }
99
+ style(val) { this._wrapperEl.setAttribute('style', this._wrapperEl.getAttribute('style') + ';' + val); return this; }
100
+ class(val) { this._wrapperEl.className = val; return this; }
101
+ // ═══════════════════════════════════════════════════════════
102
+ // PAGESTATE INTEGRATION
103
+ // ═══════════════════════════════════════════════════════════
104
+ getValue() { return this._lastClickDetail; }
105
+ setValue(val) { return this; }
106
+ getElement() { return this._stateEl; }
107
+ setContent(val) { return this.content(val); }
108
+ getTitle() { return this._opts.title; }
109
+ getSubtitle() { return this._opts.subtitle; }
110
+ getContent() { return this._opts.title; }
111
+ getDisabled() { return false; }
112
+ getClass() { return this._wrapperEl.className; }
113
+ getStyle() { return this._wrapperEl.getAttribute('style') ?? ''; }
114
+ setTitle(val) { return this.title(val); }
115
+ setSubtitle(val) { return this.subtitle(val); }
116
+ setDisabled(val) { return this.disabled(val); }
117
+ setClass(val) { return this.class(val); }
118
+ setStyle(val) { return this.style(val); }
119
+ onChange(fn) { this._onChange = fn; return this; }
120
+ get state() { return pageState[this.id]; }
121
+ get element() { return this._wrapperEl; }
122
+ // ═══════════════════════════════════════════════════════════
123
+ // CLICK
124
+ // ═══════════════════════════════════════════════════════════
125
+ _handleDotClick(seriesIdx, i) {
126
+ const v = this._values[i];
127
+ const sk = this._seriesKeys[seriesIdx];
128
+ const detail = {
129
+ chartId: this.id, index: i, seriesKey: sk.key,
130
+ label: v.label || `#${i + 1}`, value: v[sk.key] ?? 0, item: v,
131
+ };
132
+ this._lastClickDetail = detail;
133
+ if (this._opts.onClick)
134
+ this._opts.onClick(detail);
135
+ if (this._onChange)
136
+ this._onChange(detail);
137
+ (this._listeners['click'] || []).forEach(fn => fn(detail));
138
+ this._stateEl.click();
139
+ }
140
+ // ═══════════════════════════════════════════════════════════
141
+ // BUILD
142
+ // ═══════════════════════════════════════════════════════════
143
+ _buildChart(resolvedWidth) {
144
+ this._wrapperEl.innerHTML = '';
145
+ this._wrapperEl.appendChild(this._stateEl);
146
+ const { title, subtitle, aspectRatio, showValues, showDots, showGrid, showLegend, smooth, filled, lineWidth, dotRadius, ticks, animate } = this._opts;
147
+ const shouldAnimate = animate && !this._hasAnimated;
148
+ const values = this._values;
149
+ const seriesKeys = this._seriesKeys;
150
+ const palette = this._palette;
151
+ const id = this.id;
152
+ const ratio = typeof aspectRatio === 'string' ? (RATIOS[aspectRatio] || 16 / 9) : (aspectRatio || 16 / 9);
153
+ const scale = resolvedWidth / 500;
154
+ const padding = Math.round(20 * scale);
155
+ const titleSize = Math.max(14, Math.round(18 * scale));
156
+ const subtitleSize = Math.max(11, Math.round(13 * scale));
157
+ const tickSize = Math.max(8, Math.round(10 * scale));
158
+ const labelSize = Math.max(9, Math.round(11 * scale));
159
+ const yAxisWidth = Math.round(40 * scale);
160
+ const topMargin = Math.round(16 * scale);
161
+ const rightMargin = Math.round(20 * scale);
162
+ const legendH = showLegend ? Math.round(labelSize * 2) + padding : 0;
163
+ const trendH = this._hasTrend() ? Math.round(56 * scale) : 0;
164
+ const headerH = (title ? Math.round(titleSize * 1.4) : 0) + (subtitle ? Math.round(subtitleSize * 1.4) : 0) + padding;
165
+ const totalHeight = Math.round(resolvedWidth / ratio) + trendH;
166
+ const chartH = totalHeight - headerH - padding * 2 - topMargin - legendH - trendH;
167
+ const chartW = resolvedWidth - yAxisWidth - rightMargin - padding * 2;
168
+ this._wrapperEl.style.height = `${totalHeight}px`;
169
+ // Compute global max across all series
170
+ let maxVal = 0;
171
+ for (const sk of seriesKeys) {
172
+ for (const v of values) {
173
+ const val = v[sk.key] ?? 0;
174
+ if (val > maxVal)
175
+ maxVal = val;
176
+ }
177
+ }
178
+ if (maxVal === 0)
179
+ maxVal = 1;
180
+ const card = document.createElement('div');
181
+ card.id = `${id}-card`;
182
+ card.style.cssText = `background:${TOKENS.bg};border:1px solid ${TOKENS.border};border-radius:${Math.round(12 * scale)}px;padding:${padding}px;font-family:${FONT_FAMILY};box-shadow:0 1px 3px rgba(0,0,0,0.04);width:100%;height:100%;box-sizing:border-box;`;
183
+ this._wrapperEl.appendChild(card);
184
+ if (title) {
185
+ const t = document.createElement('div');
186
+ t.style.cssText = `font-size:${titleSize}px;font-weight:600;color:${TOKENS.title};margin-bottom:2px;line-height:1.3;`;
187
+ t.textContent = title;
188
+ card.appendChild(t);
189
+ }
190
+ if (subtitle) {
191
+ const s = document.createElement('div');
192
+ s.style.cssText = `font-size:${subtitleSize}px;color:${TOKENS.muted};margin-bottom:${padding}px;line-height:1.3;`;
193
+ s.textContent = subtitle;
194
+ card.appendChild(s);
195
+ }
196
+ const svgNS = 'http://www.w3.org/2000/svg';
197
+ const svgW = chartW + yAxisWidth + rightMargin;
198
+ const svgH = chartH + topMargin + Math.round(tickSize * 2.5);
199
+ const svg = document.createElementNS(svgNS, 'svg');
200
+ svg.setAttribute('width', '100%');
201
+ svg.setAttribute('viewBox', `0 0 ${svgW} ${svgH}`);
202
+ svg.style.cssText = 'display:block;';
203
+ card.appendChild(svg);
204
+ const ox = yAxisWidth;
205
+ const oy = topMargin;
206
+ // Grid + Y-axis ticks
207
+ if (showGrid) {
208
+ for (let t = 0; t <= ticks; t++) {
209
+ const val = Math.round((maxVal / ticks) * t);
210
+ const y = oy + chartH - Math.round((val / maxVal) * chartH);
211
+ const line = document.createElementNS(svgNS, 'line');
212
+ line.setAttribute('x1', String(ox));
213
+ line.setAttribute('x2', String(ox + chartW));
214
+ line.setAttribute('y1', String(y));
215
+ line.setAttribute('y2', String(y));
216
+ line.setAttribute('stroke', TOKENS.grid);
217
+ line.setAttribute('stroke-width', '1');
218
+ svg.appendChild(line);
219
+ const text = document.createElementNS(svgNS, 'text');
220
+ text.setAttribute('x', String(ox - 6));
221
+ text.setAttribute('y', String(y + 3));
222
+ text.setAttribute('text-anchor', 'end');
223
+ text.setAttribute('font-size', String(tickSize));
224
+ text.setAttribute('fill', TOKENS.muted);
225
+ text.textContent = formatTick(val);
226
+ svg.appendChild(text);
227
+ }
228
+ }
229
+ // Draw each series
230
+ seriesKeys.forEach((sk, si) => {
231
+ const color = palette[si % palette.length];
232
+ const points = values.map((v, i) => ({
233
+ px: ox + (i / Math.max(values.length - 1, 1)) * chartW,
234
+ py: oy + chartH - ((v[sk.key] ?? 0) / maxVal) * chartH,
235
+ }));
236
+ // Path
237
+ let pathD;
238
+ if (smooth && points.length > 2) {
239
+ pathD = `M ${points[0].px} ${points[0].py}`;
240
+ for (let i = 0; i < points.length - 1; i++) {
241
+ const p0 = points[Math.max(i - 1, 0)];
242
+ const p1 = points[i];
243
+ const p2 = points[i + 1];
244
+ const p3 = points[Math.min(i + 2, points.length - 1)];
245
+ const cp1x = p1.px + (p2.px - p0.px) / 6;
246
+ const cp1y = p1.py + (p2.py - p0.py) / 6;
247
+ const cp2x = p2.px - (p3.px - p1.px) / 6;
248
+ const cp2y = p2.py - (p3.py - p1.py) / 6;
249
+ pathD += ` C ${cp1x} ${cp1y}, ${cp2x} ${cp2y}, ${p2.px} ${p2.py}`;
250
+ }
251
+ }
252
+ else {
253
+ pathD = points.map((p, i) => `${i === 0 ? 'M' : 'L'} ${p.px} ${p.py}`).join(' ');
254
+ }
255
+ // Fill area
256
+ if (filled) {
257
+ const fillPath = document.createElementNS(svgNS, 'path');
258
+ const bottomY = oy + chartH;
259
+ fillPath.setAttribute('d', `${pathD} L ${points[points.length - 1].px} ${bottomY} L ${points[0].px} ${bottomY} Z`);
260
+ fillPath.setAttribute('fill', color);
261
+ fillPath.setAttribute('opacity', '0.08');
262
+ svg.appendChild(fillPath);
263
+ }
264
+ // Line
265
+ const linePath = document.createElementNS(svgNS, 'path');
266
+ linePath.setAttribute('d', pathD);
267
+ linePath.setAttribute('fill', 'none');
268
+ linePath.setAttribute('stroke', color);
269
+ linePath.setAttribute('stroke-width', String(lineWidth));
270
+ linePath.setAttribute('stroke-linecap', 'round');
271
+ linePath.setAttribute('stroke-linejoin', 'round');
272
+ svg.appendChild(linePath);
273
+ if (shouldAnimate) {
274
+ requestAnimationFrame(() => {
275
+ const len = linePath.getTotalLength?.() || 1000;
276
+ linePath.style.strokeDasharray = String(len);
277
+ linePath.style.strokeDashoffset = String(len);
278
+ linePath.style.animation = `jux-line-draw 0.8s ease-out ${si * 0.15}s forwards`;
279
+ });
280
+ }
281
+ // Dots
282
+ if (showDots) {
283
+ points.forEach((p, i) => {
284
+ const circle = document.createElementNS(svgNS, 'circle');
285
+ circle.setAttribute('cx', String(p.px));
286
+ circle.setAttribute('cy', String(p.py));
287
+ circle.setAttribute('r', String(dotRadius));
288
+ circle.setAttribute('fill', color);
289
+ circle.style.cssText = `cursor:pointer;transition:r 0.15s ease;${shouldAnimate ? `opacity:0;animation:jux-bar-fade-in 0.3s ease-out ${0.6 + si * 0.15 + i * 0.04}s forwards;` : ''}`;
290
+ circle.addEventListener('mouseenter', (e) => {
291
+ circle.setAttribute('r', String(dotRadius * 1.5));
292
+ const lbl = values[i].label || `#${i + 1}`;
293
+ const val = values[i][sk.key] ?? 0;
294
+ let html = `<div style="font-weight:600;margin-bottom:2px;">${lbl}</div>`;
295
+ html += formatTooltipRow(sk.label || sk.key, val, color);
296
+ showTooltip(e, html);
297
+ });
298
+ circle.addEventListener('mousemove', (e) => moveTooltip(e));
299
+ circle.addEventListener('mouseleave', () => {
300
+ circle.setAttribute('r', String(dotRadius));
301
+ hideTooltip();
302
+ });
303
+ circle.addEventListener('click', () => this._handleDotClick(si, i));
304
+ svg.appendChild(circle);
305
+ if (showValues && si === 0) { // only show values for first series to avoid clutter
306
+ const text = document.createElementNS(svgNS, 'text');
307
+ text.setAttribute('x', String(p.px));
308
+ text.setAttribute('y', String(p.py - dotRadius - 6));
309
+ text.setAttribute('text-anchor', 'middle');
310
+ text.setAttribute('font-size', String(tickSize));
311
+ text.setAttribute('fill', TOKENS.muted);
312
+ if (shouldAnimate)
313
+ text.style.cssText = `opacity:0;animation:jux-bar-fade-in 0.3s ease-out ${0.6 + i * 0.04}s forwards;`;
314
+ text.textContent = String(values[i][sk.key] ?? 0);
315
+ svg.appendChild(text);
316
+ }
317
+ });
318
+ }
319
+ });
320
+ // X labels (once, from first series points)
321
+ values.forEach((v, i) => {
322
+ const px = ox + (i / Math.max(values.length - 1, 1)) * chartW;
323
+ const text = document.createElementNS(svgNS, 'text');
324
+ text.setAttribute('x', String(px));
325
+ text.setAttribute('y', String(oy + chartH + tickSize + 8));
326
+ text.setAttribute('text-anchor', 'middle');
327
+ text.setAttribute('font-size', String(tickSize));
328
+ text.setAttribute('fill', TOKENS.muted);
329
+ text.textContent = v.label || `#${i + 1}`;
330
+ svg.appendChild(text);
331
+ });
332
+ // Legend
333
+ if (showLegend && seriesKeys.length > 1) {
334
+ const legendDiv = document.createElement('div');
335
+ legendDiv.style.cssText = `display:flex;flex-wrap:wrap;gap:${Math.round(8 * scale)}px ${Math.round(16 * scale)}px;padding-top:${Math.round(8 * scale)}px;justify-content:center;`;
336
+ seriesKeys.forEach((sk, i) => {
337
+ const item = document.createElement('div');
338
+ item.style.cssText = `display:flex;align-items:center;gap:4px;font-size:${labelSize}px;color:${TOKENS.muted};`;
339
+ const dot = document.createElement('span');
340
+ dot.style.cssText = `width:${Math.round(10 * scale)}px;height:2px;background:${palette[i % palette.length]};flex-shrink:0;border-radius:1px;`;
341
+ item.appendChild(dot);
342
+ const lbl = document.createElement('span');
343
+ lbl.textContent = sk.label || sk.key;
344
+ item.appendChild(lbl);
345
+ legendDiv.appendChild(item);
346
+ });
347
+ card.appendChild(legendDiv);
348
+ }
349
+ // Trend footer
350
+ this._renderTrend(card, scale, padding);
351
+ if (shouldAnimate) {
352
+ this._hasAnimated = true;
353
+ if (!document.getElementById('jux-line-anims')) {
354
+ const style = document.createElement('style');
355
+ style.id = 'jux-line-anims';
356
+ style.textContent = `
357
+ @keyframes jux-line-draw { to { stroke-dashoffset: 0; } }
358
+ @keyframes jux-bar-fade-in { from { opacity: 0; } to { opacity: 1; } }
359
+ `;
360
+ document.head.appendChild(style);
361
+ }
362
+ }
363
+ }
364
+ _hasTrend() {
365
+ const { trendTitle, trendSubtitle, autoTrend } = this._opts;
366
+ return !!(trendTitle || trendSubtitle || autoTrend);
367
+ }
368
+ _renderTrend(card, scale, padding) {
369
+ const { trendTitle, trendSubtitle, trendIcon, autoTrend } = this._opts;
370
+ let title = trendTitle;
371
+ let subtitle = trendSubtitle;
372
+ let icon = trendIcon;
373
+ if (autoTrend && !title) {
374
+ const sk = this._seriesKeys[0];
375
+ const vals = this._values.map(v => v[sk.key] ?? 0);
376
+ const labels = this._values.map(v => v.label || '');
377
+ const trend = computeTrend(vals, labels);
378
+ title = trend.title;
379
+ subtitle = subtitle || trend.subtitle;
380
+ icon = icon || trend.icon;
381
+ }
382
+ if (!title && !subtitle)
383
+ return;
384
+ const fontSize = Math.max(11, Math.round(13 * scale));
385
+ const subFontSize = Math.max(10, Math.round(11 * scale));
386
+ const footer = document.createElement('div');
387
+ footer.style.cssText = `padding-top:${Math.round(8 * scale)}px;border-top:1px solid hsl(220,13%,93%);margin-top:${Math.round(8 * scale)}px;`;
388
+ if (title) {
389
+ const titleEl = document.createElement('div');
390
+ titleEl.style.cssText = `font-size:${fontSize}px;font-weight:500;color:hsl(222,47%,11%);line-height:1.4;`;
391
+ titleEl.textContent = `${title}${icon ? ' ' + icon : ''}`;
392
+ footer.appendChild(titleEl);
393
+ }
394
+ if (subtitle) {
395
+ const subEl = document.createElement('div');
396
+ subEl.style.cssText = `font-size:${subFontSize}px;color:hsl(215,16%,47%);line-height:1.4;margin-top:1px;`;
397
+ subEl.textContent = subtitle;
398
+ footer.appendChild(subEl);
399
+ }
400
+ card.appendChild(footer);
401
+ }
402
+ // ═══════════════════════════════════════════════════════════
403
+ // PUBLIC API
404
+ // ═══════════════════════════════════════════════════════════
405
+ render(target) {
406
+ let parent = null;
407
+ if (target && typeof target === 'object' && 'element' in target)
408
+ parent = target.element;
409
+ else if (target instanceof HTMLElement)
410
+ parent = target;
411
+ else if (typeof target === 'string')
412
+ parent = document.getElementById(target) || document.querySelector(target);
413
+ else
414
+ parent = document.getElementById('app');
415
+ if (!parent)
416
+ return this;
417
+ parent.appendChild(this._wrapperEl);
418
+ const w = this._opts.responsive ? (this._wrapperEl.clientWidth || parent.clientWidth || this._opts.width || 500) : (this._opts.width || 500);
419
+ this._buildChart(w);
420
+ if (this._opts.responsive && typeof ResizeObserver !== 'undefined') {
421
+ let t;
422
+ let skipCount = 2;
423
+ const ro = new ResizeObserver(() => {
424
+ if (skipCount > 0) {
425
+ skipCount--;
426
+ return;
427
+ }
428
+ clearTimeout(t);
429
+ t = setTimeout(() => { const nw = this._wrapperEl.clientWidth; if (nw > 0)
430
+ this._buildChart(nw); }, 200);
431
+ });
432
+ ro.observe(this._wrapperEl);
433
+ this._resizeObserver = ro;
434
+ }
435
+ return this;
436
+ }
437
+ into(target) { return this.render(target); }
438
+ on(event, fn) {
439
+ if (!this._listeners[event])
440
+ this._listeners[event] = [];
441
+ this._listeners[event].push(fn);
442
+ return this;
443
+ }
444
+ off(event, fn) {
445
+ if (this._listeners[event])
446
+ this._listeners[event] = this._listeners[event].filter(f => f !== fn);
447
+ return this;
448
+ }
449
+ destroy() {
450
+ if (this._resizeObserver)
451
+ this._resizeObserver.disconnect();
452
+ pageState.__unregister(this.id);
453
+ this._wrapperEl.remove();
454
+ }
455
+ }
456
+ // ═══════════════════════════════════════════════════════════
457
+ // FACTORY
458
+ // ═══════════════════════════════════════════════════════════
459
+ export function lineChart(id, values, options = {}) {
460
+ const chart = new LineChart(id, values, options);
461
+ pageState.__register(chart);
462
+ return chart;
463
+ }
464
+ export { LineChart };
465
+ export default lineChart;
466
+ //# sourceMappingURL=lineChart.js.map