@mappoh/nova 0.2.3 → 0.3.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.
Files changed (89) hide show
  1. package/dist/a11y/index.d.ts +40 -0
  2. package/dist/a11y/index.d.ts.map +1 -0
  3. package/dist/a11y/index.js +162 -0
  4. package/dist/a11y/index.js.map +1 -0
  5. package/dist/animation/flip.d.ts +28 -0
  6. package/dist/animation/flip.d.ts.map +1 -0
  7. package/dist/animation/flip.js +106 -0
  8. package/dist/animation/flip.js.map +1 -0
  9. package/dist/animation/spring.d.ts +34 -0
  10. package/dist/animation/spring.d.ts.map +1 -0
  11. package/dist/animation/spring.js +86 -0
  12. package/dist/animation/spring.js.map +1 -0
  13. package/dist/chart/chart.d.ts +27 -0
  14. package/dist/chart/chart.d.ts.map +1 -0
  15. package/dist/chart/chart.js +289 -0
  16. package/dist/chart/chart.js.map +1 -0
  17. package/dist/chart/index.d.ts +3 -0
  18. package/dist/chart/index.d.ts.map +1 -0
  19. package/dist/chart/index.js +2 -0
  20. package/dist/chart/index.js.map +1 -0
  21. package/dist/color-picker/color-picker.d.ts +18 -0
  22. package/dist/color-picker/color-picker.d.ts.map +1 -0
  23. package/dist/color-picker/color-picker.js +243 -0
  24. package/dist/color-picker/color-picker.js.map +1 -0
  25. package/dist/color-picker/index.d.ts +3 -0
  26. package/dist/color-picker/index.d.ts.map +1 -0
  27. package/dist/color-picker/index.js +2 -0
  28. package/dist/color-picker/index.js.map +1 -0
  29. package/dist/combobox/combobox.d.ts +26 -0
  30. package/dist/combobox/combobox.d.ts.map +1 -0
  31. package/dist/combobox/combobox.js +262 -0
  32. package/dist/combobox/combobox.js.map +1 -0
  33. package/dist/combobox/index.d.ts +3 -0
  34. package/dist/combobox/index.d.ts.map +1 -0
  35. package/dist/combobox/index.js +2 -0
  36. package/dist/combobox/index.js.map +1 -0
  37. package/dist/data-table/data-table.d.ts +34 -0
  38. package/dist/data-table/data-table.d.ts.map +1 -0
  39. package/dist/data-table/data-table.js +256 -0
  40. package/dist/data-table/data-table.js.map +1 -0
  41. package/dist/data-table/index.d.ts +3 -0
  42. package/dist/data-table/index.d.ts.map +1 -0
  43. package/dist/data-table/index.js +2 -0
  44. package/dist/data-table/index.js.map +1 -0
  45. package/dist/date-picker/date-picker.d.ts +22 -0
  46. package/dist/date-picker/date-picker.d.ts.map +1 -0
  47. package/dist/date-picker/date-picker.js +282 -0
  48. package/dist/date-picker/date-picker.js.map +1 -0
  49. package/dist/date-picker/index.d.ts +3 -0
  50. package/dist/date-picker/index.d.ts.map +1 -0
  51. package/dist/date-picker/index.js +2 -0
  52. package/dist/date-picker/index.js.map +1 -0
  53. package/dist/file-upload/file-upload.d.ts +24 -0
  54. package/dist/file-upload/file-upload.d.ts.map +1 -0
  55. package/dist/file-upload/file-upload.js +177 -0
  56. package/dist/file-upload/file-upload.js.map +1 -0
  57. package/dist/file-upload/index.d.ts +3 -0
  58. package/dist/file-upload/index.d.ts.map +1 -0
  59. package/dist/file-upload/index.js +2 -0
  60. package/dist/file-upload/index.js.map +1 -0
  61. package/dist/forms/form-engine.d.ts +19 -6
  62. package/dist/forms/form-engine.d.ts.map +1 -1
  63. package/dist/forms/form-engine.js +97 -11
  64. package/dist/forms/form-engine.js.map +1 -1
  65. package/dist/forms/validators.d.ts +4 -0
  66. package/dist/forms/validators.d.ts.map +1 -1
  67. package/dist/forms/validators.js +6 -0
  68. package/dist/forms/validators.js.map +1 -1
  69. package/dist/router/index.d.ts +1 -1
  70. package/dist/router/index.d.ts.map +1 -1
  71. package/dist/router/index.js +1 -1
  72. package/dist/router/index.js.map +1 -1
  73. package/dist/router/router.d.ts +14 -0
  74. package/dist/router/router.d.ts.map +1 -1
  75. package/dist/router/router.js +44 -6
  76. package/dist/router/router.js.map +1 -1
  77. package/dist/state/store.d.ts +4 -0
  78. package/dist/state/store.d.ts.map +1 -1
  79. package/dist/state/store.js +27 -7
  80. package/dist/state/store.js.map +1 -1
  81. package/dist/tree-view/index.d.ts +3 -0
  82. package/dist/tree-view/index.d.ts.map +1 -0
  83. package/dist/tree-view/index.js +2 -0
  84. package/dist/tree-view/index.js.map +1 -0
  85. package/dist/tree-view/tree-view.d.ts +29 -0
  86. package/dist/tree-view/tree-view.d.ts.map +1 -0
  87. package/dist/tree-view/tree-view.js +273 -0
  88. package/dist/tree-view/tree-view.js.map +1 -0
  89. package/package.json +51 -2
@@ -0,0 +1,289 @@
1
+ /**
2
+ * Nova Engine — SVG Charts
3
+ *
4
+ * Lightweight SVG-based charts: bar, line, pie, and donut.
5
+ * No canvas or external dependencies.
6
+ */
7
+ const STYLE_ID = 'nova-chart-styles';
8
+ function injectStyles() {
9
+ if (document.getElementById(STYLE_ID))
10
+ return;
11
+ const style = document.createElement('style');
12
+ style.id = STYLE_ID;
13
+ style.textContent = `
14
+ .nova-chart{font-family:inherit;display:inline-block}
15
+ .nova-chart svg{display:block}
16
+ .nova-chart-legend{display:flex;flex-wrap:wrap;gap:12px;margin-top:8px;font-size:0.75rem}
17
+ .nova-chart-legend-item{display:flex;align-items:center;gap:4px}
18
+ .nova-chart-legend-swatch{width:12px;height:12px;border-radius:2px}`;
19
+ document.head.appendChild(style);
20
+ }
21
+ const PALETTE = ['#3b82f6', '#ef4444', '#10b981', '#f59e0b', '#8b5cf6', '#ec4899', '#06b6d4', '#f97316'];
22
+ function getColor(index, custom) {
23
+ return custom ?? PALETTE[index % PALETTE.length];
24
+ }
25
+ function svgEl(tag, attrs = {}) {
26
+ const el = document.createElementNS('http://www.w3.org/2000/svg', tag);
27
+ for (const [k, v] of Object.entries(attrs))
28
+ el.setAttribute(k, String(v));
29
+ return el;
30
+ }
31
+ function renderBar(svg, opts, w, h) {
32
+ const padding = { top: 10, right: 10, bottom: 30, left: 40 };
33
+ const plotW = w - padding.left - padding.right;
34
+ const plotH = h - padding.top - padding.bottom;
35
+ const allValues = opts.datasets.flatMap((d) => d.data);
36
+ const maxVal = Math.max(...allValues, 1);
37
+ const dataLen = opts.datasets[0]?.data.length ?? 0;
38
+ const groupWidth = plotW / Math.max(dataLen, 1);
39
+ const barWidth = (groupWidth * 0.7) / opts.datasets.length;
40
+ // Grid lines
41
+ if (opts.showGrid !== false) {
42
+ for (let i = 0; i <= 4; i++) {
43
+ const y = padding.top + (plotH / 4) * i;
44
+ svg.appendChild(svgEl('line', { x1: padding.left, y1: y, x2: w - padding.right, y2: y, stroke: '#e5e7eb', 'stroke-width': 1 }));
45
+ const label = svgEl('text', { x: padding.left - 6, y: y + 4, 'text-anchor': 'end', fill: '#9ca3af', 'font-size': 10 });
46
+ label.textContent = String(Math.round(maxVal * (1 - i / 4)));
47
+ svg.appendChild(label);
48
+ }
49
+ }
50
+ // Bars
51
+ opts.datasets.forEach((ds, di) => {
52
+ ds.data.forEach((val, i) => {
53
+ const barH = (val / maxVal) * plotH;
54
+ const x = padding.left + i * groupWidth + (groupWidth * 0.15) + di * barWidth;
55
+ const y = padding.top + plotH - barH;
56
+ const color = getColor(di, ds.color);
57
+ const rect = svgEl('rect', { x, y, width: barWidth, height: barH, fill: color, rx: 2 });
58
+ const title = svgEl('title');
59
+ title.textContent = `${ds.label ?? ''}: ${val}`;
60
+ rect.appendChild(title);
61
+ if (opts.animate !== false) {
62
+ rect.setAttribute('height', '0');
63
+ rect.setAttribute('y', String(padding.top + plotH));
64
+ const anim = svgEl('animate', {
65
+ attributeName: 'height', from: 0, to: barH, dur: '0.5s', fill: 'forwards',
66
+ begin: `${i * 0.05}s`,
67
+ });
68
+ const animY = svgEl('animate', {
69
+ attributeName: 'y', from: padding.top + plotH, to: y, dur: '0.5s', fill: 'forwards',
70
+ begin: `${i * 0.05}s`,
71
+ });
72
+ rect.appendChild(anim);
73
+ rect.appendChild(animY);
74
+ }
75
+ svg.appendChild(rect);
76
+ });
77
+ });
78
+ // X-axis labels
79
+ if (opts.labels) {
80
+ opts.labels.forEach((label, i) => {
81
+ const x = padding.left + i * groupWidth + groupWidth / 2;
82
+ const text = svgEl('text', { x, y: h - 8, 'text-anchor': 'middle', fill: '#6b7280', 'font-size': 11 });
83
+ text.textContent = label;
84
+ svg.appendChild(text);
85
+ });
86
+ }
87
+ }
88
+ function renderLine(svg, opts, w, h) {
89
+ const padding = { top: 10, right: 10, bottom: 30, left: 40 };
90
+ const plotW = w - padding.left - padding.right;
91
+ const plotH = h - padding.top - padding.bottom;
92
+ const allValues = opts.datasets.flatMap((d) => d.data);
93
+ const maxVal = Math.max(...allValues, 1);
94
+ const dataLen = opts.datasets[0]?.data.length ?? 0;
95
+ // Grid
96
+ if (opts.showGrid !== false) {
97
+ for (let i = 0; i <= 4; i++) {
98
+ const y = padding.top + (plotH / 4) * i;
99
+ svg.appendChild(svgEl('line', { x1: padding.left, y1: y, x2: w - padding.right, y2: y, stroke: '#e5e7eb', 'stroke-width': 1 }));
100
+ const label = svgEl('text', { x: padding.left - 6, y: y + 4, 'text-anchor': 'end', fill: '#9ca3af', 'font-size': 10 });
101
+ label.textContent = String(Math.round(maxVal * (1 - i / 4)));
102
+ svg.appendChild(label);
103
+ }
104
+ }
105
+ // Lines
106
+ opts.datasets.forEach((ds, di) => {
107
+ const color = getColor(di, ds.color);
108
+ const points = [];
109
+ ds.data.forEach((val, i) => {
110
+ const x = padding.left + (i / Math.max(dataLen - 1, 1)) * plotW;
111
+ const y = padding.top + plotH - (val / maxVal) * plotH;
112
+ points.push(`${x},${y}`);
113
+ });
114
+ // Fill area
115
+ const areaPoints = [...points, `${padding.left + plotW},${padding.top + plotH}`, `${padding.left},${padding.top + plotH}`];
116
+ const area = svgEl('polygon', { points: areaPoints.join(' '), fill: color, opacity: 0.1 });
117
+ svg.appendChild(area);
118
+ // Line
119
+ const line = svgEl('polyline', {
120
+ points: points.join(' '),
121
+ fill: 'none', stroke: color, 'stroke-width': 2, 'stroke-linejoin': 'round',
122
+ });
123
+ if (opts.animate !== false) {
124
+ const totalLen = 1000;
125
+ line.setAttribute('stroke-dasharray', String(totalLen));
126
+ line.setAttribute('stroke-dashoffset', String(totalLen));
127
+ const anim = svgEl('animate', {
128
+ attributeName: 'stroke-dashoffset', from: totalLen, to: 0, dur: '1s', fill: 'forwards',
129
+ });
130
+ line.appendChild(anim);
131
+ }
132
+ svg.appendChild(line);
133
+ // Data points
134
+ ds.data.forEach((val, i) => {
135
+ const x = padding.left + (i / Math.max(dataLen - 1, 1)) * plotW;
136
+ const y = padding.top + plotH - (val / maxVal) * plotH;
137
+ const circle = svgEl('circle', { cx: x, cy: y, r: 3, fill: color });
138
+ const title = svgEl('title');
139
+ title.textContent = `${ds.label ?? ''}: ${val}`;
140
+ circle.appendChild(title);
141
+ svg.appendChild(circle);
142
+ });
143
+ });
144
+ // X-axis labels
145
+ if (opts.labels) {
146
+ opts.labels.forEach((label, i) => {
147
+ const x = padding.left + (i / Math.max(dataLen - 1, 1)) * plotW;
148
+ const text = svgEl('text', { x, y: h - 8, 'text-anchor': 'middle', fill: '#6b7280', 'font-size': 11 });
149
+ text.textContent = label;
150
+ svg.appendChild(text);
151
+ });
152
+ }
153
+ }
154
+ function renderPie(svg, opts, w, h, donut) {
155
+ const cx = w / 2;
156
+ const cy = h / 2;
157
+ const r = Math.min(cx, cy) - 10;
158
+ const innerR = donut ? r * 0.6 : 0;
159
+ const values = opts.datasets[0]?.data ?? [];
160
+ const total = values.reduce((sum, v) => sum + v, 0) || 1;
161
+ let startAngle = -Math.PI / 2;
162
+ values.forEach((val, i) => {
163
+ const angle = (val / total) * Math.PI * 2;
164
+ const endAngle = startAngle + angle;
165
+ const color = getColor(i, opts.datasets[0]?.color);
166
+ const x1 = cx + r * Math.cos(startAngle);
167
+ const y1 = cy + r * Math.sin(startAngle);
168
+ const x2 = cx + r * Math.cos(endAngle);
169
+ const y2 = cy + r * Math.sin(endAngle);
170
+ const largeArc = angle > Math.PI ? 1 : 0;
171
+ let d;
172
+ if (donut) {
173
+ const ix1 = cx + innerR * Math.cos(startAngle);
174
+ const iy1 = cy + innerR * Math.sin(startAngle);
175
+ const ix2 = cx + innerR * Math.cos(endAngle);
176
+ const iy2 = cy + innerR * Math.sin(endAngle);
177
+ d = `M${x1},${y1} A${r},${r} 0 ${largeArc},1 ${x2},${y2} L${ix2},${iy2} A${innerR},${innerR} 0 ${largeArc},0 ${ix1},${iy1} Z`;
178
+ }
179
+ else {
180
+ d = `M${cx},${cy} L${x1},${y1} A${r},${r} 0 ${largeArc},1 ${x2},${y2} Z`;
181
+ }
182
+ const path = svgEl('path', { d, fill: color });
183
+ const title = svgEl('title');
184
+ const label = opts.labels?.[i] ?? `Item ${i + 1}`;
185
+ title.textContent = `${label}: ${val} (${Math.round((val / total) * 100)}%)`;
186
+ path.appendChild(title);
187
+ if (opts.animate !== false) {
188
+ path.setAttribute('opacity', '0');
189
+ const anim = svgEl('animate', {
190
+ attributeName: 'opacity', from: 0, to: 1, dur: '0.4s', fill: 'forwards',
191
+ begin: `${i * 0.1}s`,
192
+ });
193
+ path.appendChild(anim);
194
+ }
195
+ svg.appendChild(path);
196
+ startAngle = endAngle;
197
+ });
198
+ }
199
+ export function createChart(container, options) {
200
+ injectStyles();
201
+ const w = options.width ?? 400;
202
+ const h = options.height ?? 250;
203
+ const root = document.createElement('div');
204
+ root.className = 'nova-chart';
205
+ // Generate accessible summary
206
+ function getSummary() {
207
+ const ds = options.datasets[0];
208
+ if (!ds)
209
+ return 'Empty chart';
210
+ const total = ds.data.reduce((s, v) => s + v, 0);
211
+ return `${options.type} chart with ${ds.data.length} data points, total ${total}`;
212
+ }
213
+ function renderSvg(datasets) {
214
+ while (root.firstChild)
215
+ root.removeChild(root.firstChild);
216
+ const svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');
217
+ svg.setAttribute('width', String(w));
218
+ svg.setAttribute('height', String(h));
219
+ svg.setAttribute('viewBox', `0 0 ${w} ${h}`);
220
+ svg.setAttribute('role', 'img');
221
+ svg.setAttribute('aria-label', getSummary());
222
+ const renderOpts = { ...options, datasets };
223
+ switch (options.type) {
224
+ case 'bar':
225
+ renderBar(svg, renderOpts, w, h);
226
+ break;
227
+ case 'line':
228
+ renderLine(svg, renderOpts, w, h);
229
+ break;
230
+ case 'pie':
231
+ renderPie(svg, renderOpts, w, h, false);
232
+ break;
233
+ case 'donut':
234
+ renderPie(svg, renderOpts, w, h, true);
235
+ break;
236
+ }
237
+ root.appendChild(svg);
238
+ // Legend
239
+ if (options.showLegend !== false) {
240
+ const legend = document.createElement('div');
241
+ legend.className = 'nova-chart-legend';
242
+ if (options.type === 'pie' || options.type === 'donut') {
243
+ // Pie/donut: legend per data point
244
+ const ds = datasets[0];
245
+ ds?.data.forEach((_, i) => {
246
+ const item = document.createElement('div');
247
+ item.className = 'nova-chart-legend-item';
248
+ const swatch = document.createElement('span');
249
+ swatch.className = 'nova-chart-legend-swatch';
250
+ swatch.style.background = getColor(i);
251
+ const label = document.createElement('span');
252
+ label.textContent = options.labels?.[i] ?? `Item ${i + 1}`;
253
+ item.appendChild(swatch);
254
+ item.appendChild(label);
255
+ legend.appendChild(item);
256
+ });
257
+ }
258
+ else {
259
+ // Bar/line: legend per dataset
260
+ datasets.forEach((ds, i) => {
261
+ if (!ds.label)
262
+ return;
263
+ const item = document.createElement('div');
264
+ item.className = 'nova-chart-legend-item';
265
+ const swatch = document.createElement('span');
266
+ swatch.className = 'nova-chart-legend-swatch';
267
+ swatch.style.background = getColor(i, ds.color);
268
+ const label = document.createElement('span');
269
+ label.textContent = ds.label;
270
+ item.appendChild(swatch);
271
+ item.appendChild(label);
272
+ legend.appendChild(item);
273
+ });
274
+ }
275
+ root.appendChild(legend);
276
+ }
277
+ }
278
+ renderSvg(options.datasets);
279
+ container.appendChild(root);
280
+ return {
281
+ update(datasets) {
282
+ renderSvg(datasets);
283
+ },
284
+ destroy() {
285
+ root.remove();
286
+ },
287
+ };
288
+ }
289
+ //# sourceMappingURL=chart.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chart.js","sourceRoot":"","sources":[""],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export { createChart } from './chart';
2
+ export type { ChartDataset, ChartOptions, ChartInstance } from './chart';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/chart/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACtC,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { createChart } from './chart';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":[""],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Nova Engine — Color Picker
3
+ *
4
+ * Canvas-based color picker with hex/RGB/HSL input and preset swatches.
5
+ */
6
+ export interface ColorPickerOptions {
7
+ value?: string;
8
+ format?: 'hex' | 'rgb' | 'hsl';
9
+ swatches?: string[];
10
+ onChange?: (color: string) => void;
11
+ }
12
+ export interface ColorPickerInstance {
13
+ getValue(): string;
14
+ setValue(color: string): void;
15
+ destroy(): void;
16
+ }
17
+ export declare function createColorPicker(container: HTMLElement, options?: ColorPickerOptions): ColorPickerInstance;
18
+ //# sourceMappingURL=color-picker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"color-picker.d.ts","sourceRoot":"","sources":["../../src/color-picker/color-picker.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,WAAW,kBAAkB;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;IAC/B,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACpC;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,IAAI,MAAM,CAAC;IACnB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,OAAO,IAAI,IAAI,CAAC;CACjB;AA2ED,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,WAAW,EACtB,OAAO,GAAE,kBAAuB,GAC/B,mBAAmB,CAkLrB"}
@@ -0,0 +1,243 @@
1
+ /**
2
+ * Nova Engine — Color Picker
3
+ *
4
+ * Canvas-based color picker with hex/RGB/HSL input and preset swatches.
5
+ */
6
+ const STYLE_ID = 'nova-color-picker-styles';
7
+ function injectStyles() {
8
+ if (document.getElementById(STYLE_ID))
9
+ return;
10
+ const style = document.createElement('style');
11
+ style.id = STYLE_ID;
12
+ style.textContent = `
13
+ .nova-cp{display:inline-block;font-family:inherit;width:240px}
14
+ .nova-cp-canvas{width:100%;height:160px;border-radius:6px;cursor:crosshair;display:block}
15
+ .nova-cp-hue{width:100%;height:16px;border-radius:8px;cursor:pointer;margin-top:8px;-webkit-appearance:none;appearance:none;background:linear-gradient(to right,#f00,#ff0,#0f0,#0ff,#00f,#f0f,#f00);outline:none}
16
+ .nova-cp-hue::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;border-radius:50%;border:2px solid #fff;box-shadow:0 1px 3px rgba(0,0,0,0.3);cursor:pointer}
17
+ .nova-cp-preview{display:flex;align-items:center;gap:8px;margin-top:8px}
18
+ .nova-cp-swatch-preview{width:32px;height:32px;border-radius:6px;border:1px solid #d1d5db}
19
+ .nova-cp-input{flex:1;padding:0.375rem;border:1px solid #d1d5db;border-radius:4px;font-family:monospace;font-size:0.8125rem}
20
+ .nova-cp-swatches{display:flex;flex-wrap:wrap;gap:4px;margin-top:8px}
21
+ .nova-cp-sw{width:24px;height:24px;border-radius:4px;cursor:pointer;border:1px solid #d1d5db}
22
+ .nova-cp-sw:hover{transform:scale(1.15)}`;
23
+ document.head.appendChild(style);
24
+ }
25
+ // -- Color conversion utilities --
26
+ function hexToRgb(hex) {
27
+ const h = hex.replace('#', '');
28
+ const full = h.length === 3 ? h.split('').map((c) => c + c).join('') : h;
29
+ const num = parseInt(full, 16);
30
+ return [(num >> 16) & 255, (num >> 8) & 255, num & 255];
31
+ }
32
+ function rgbToHex(r, g, b) {
33
+ return '#' + [r, g, b].map((v) => v.toString(16).padStart(2, '0')).join('');
34
+ }
35
+ function rgbToHsl(r, g, b) {
36
+ r /= 255;
37
+ g /= 255;
38
+ b /= 255;
39
+ const max = Math.max(r, g, b), min = Math.min(r, g, b);
40
+ const l = (max + min) / 2;
41
+ if (max === min)
42
+ return [0, 0, l];
43
+ const d = max - min;
44
+ const s = l > 0.5 ? d / (2 - max - min) : d / (max + min);
45
+ let h = 0;
46
+ if (max === r)
47
+ h = ((g - b) / d + (g < b ? 6 : 0)) / 6;
48
+ else if (max === g)
49
+ h = ((b - r) / d + 2) / 6;
50
+ else
51
+ h = ((r - g) / d + 4) / 6;
52
+ return [h, s, l];
53
+ }
54
+ function hslToRgb(h, s, l) {
55
+ if (s === 0) {
56
+ const v = Math.round(l * 255);
57
+ return [v, v, v];
58
+ }
59
+ const hue2rgb = (p, q, t) => {
60
+ if (t < 0)
61
+ t += 1;
62
+ if (t > 1)
63
+ t -= 1;
64
+ if (t < 1 / 6)
65
+ return p + (q - p) * 6 * t;
66
+ if (t < 1 / 2)
67
+ return q;
68
+ if (t < 2 / 3)
69
+ return p + (q - p) * (2 / 3 - t) * 6;
70
+ return p;
71
+ };
72
+ const q = l < 0.5 ? l * (1 + s) : l + s - l * s;
73
+ const p = 2 * l - q;
74
+ return [
75
+ Math.round(hue2rgb(p, q, h + 1 / 3) * 255),
76
+ Math.round(hue2rgb(p, q, h) * 255),
77
+ Math.round(hue2rgb(p, q, h - 1 / 3) * 255),
78
+ ];
79
+ }
80
+ function parseColor(str) {
81
+ if (str.startsWith('#'))
82
+ return hexToRgb(str);
83
+ const rgbMatch = str.match(/rgb\((\d+),\s*(\d+),\s*(\d+)\)/);
84
+ if (rgbMatch)
85
+ return [+rgbMatch[1], +rgbMatch[2], +rgbMatch[3]];
86
+ return [0, 0, 0];
87
+ }
88
+ export function createColorPicker(container, options = {}) {
89
+ injectStyles();
90
+ const format = options.format ?? 'hex';
91
+ let [r, g, b] = options.value ? parseColor(options.value) : [255, 0, 0];
92
+ let [h, s, l] = rgbToHsl(r, g, b);
93
+ const root = document.createElement('div');
94
+ root.className = 'nova-cp';
95
+ // Saturation/Lightness canvas
96
+ const canvas = document.createElement('canvas');
97
+ canvas.className = 'nova-cp-canvas';
98
+ canvas.width = 240;
99
+ canvas.height = 160;
100
+ // Hue slider
101
+ const hueSlider = document.createElement('input');
102
+ hueSlider.type = 'range';
103
+ hueSlider.className = 'nova-cp-hue';
104
+ hueSlider.min = '0';
105
+ hueSlider.max = '360';
106
+ hueSlider.value = String(Math.round(h * 360));
107
+ hueSlider.setAttribute('aria-label', 'Hue');
108
+ // Preview + input
109
+ const preview = document.createElement('div');
110
+ preview.className = 'nova-cp-preview';
111
+ const swatchPreview = document.createElement('div');
112
+ swatchPreview.className = 'nova-cp-swatch-preview';
113
+ const colorInput = document.createElement('input');
114
+ colorInput.className = 'nova-cp-input';
115
+ colorInput.type = 'text';
116
+ colorInput.setAttribute('aria-label', 'Color value');
117
+ preview.appendChild(swatchPreview);
118
+ preview.appendChild(colorInput);
119
+ root.appendChild(canvas);
120
+ root.appendChild(hueSlider);
121
+ root.appendChild(preview);
122
+ // Swatches
123
+ if (options.swatches?.length) {
124
+ const swatchesContainer = document.createElement('div');
125
+ swatchesContainer.className = 'nova-cp-swatches';
126
+ for (const color of options.swatches) {
127
+ const sw = document.createElement('button');
128
+ sw.className = 'nova-cp-sw';
129
+ sw.style.background = color;
130
+ sw.setAttribute('aria-label', `Select ${color}`);
131
+ sw.addEventListener('click', () => {
132
+ [r, g, b] = parseColor(color);
133
+ [h, s, l] = rgbToHsl(r, g, b);
134
+ hueSlider.value = String(Math.round(h * 360));
135
+ drawCanvas();
136
+ updateDisplay();
137
+ options.onChange?.(formatColor());
138
+ });
139
+ swatchesContainer.appendChild(sw);
140
+ }
141
+ root.appendChild(swatchesContainer);
142
+ }
143
+ container.appendChild(root);
144
+ function formatColor() {
145
+ switch (format) {
146
+ case 'rgb': return `rgb(${r}, ${g}, ${b})`;
147
+ case 'hsl': return `hsl(${Math.round(h * 360)}, ${Math.round(s * 100)}%, ${Math.round(l * 100)}%)`;
148
+ default: return rgbToHex(r, g, b);
149
+ }
150
+ }
151
+ function updateDisplay() {
152
+ swatchPreview.style.background = rgbToHex(r, g, b);
153
+ colorInput.value = formatColor();
154
+ }
155
+ function drawCanvas() {
156
+ const ctx = canvas.getContext('2d');
157
+ const w = canvas.width, ht = canvas.height;
158
+ // Base hue
159
+ const baseRgb = hslToRgb(h, 1, 0.5);
160
+ ctx.fillStyle = `rgb(${baseRgb[0]},${baseRgb[1]},${baseRgb[2]})`;
161
+ ctx.fillRect(0, 0, w, ht);
162
+ // White gradient (left to right)
163
+ const whiteGrad = ctx.createLinearGradient(0, 0, w, 0);
164
+ whiteGrad.addColorStop(0, 'rgba(255,255,255,1)');
165
+ whiteGrad.addColorStop(1, 'rgba(255,255,255,0)');
166
+ ctx.fillStyle = whiteGrad;
167
+ ctx.fillRect(0, 0, w, ht);
168
+ // Black gradient (top to bottom)
169
+ const blackGrad = ctx.createLinearGradient(0, 0, 0, ht);
170
+ blackGrad.addColorStop(0, 'rgba(0,0,0,0)');
171
+ blackGrad.addColorStop(1, 'rgba(0,0,0,1)');
172
+ ctx.fillStyle = blackGrad;
173
+ ctx.fillRect(0, 0, w, ht);
174
+ }
175
+ function pickFromCanvas(x, y) {
176
+ const ctx = canvas.getContext('2d');
177
+ const pixel = ctx.getImageData(x, y, 1, 1).data;
178
+ r = pixel[0];
179
+ g = pixel[1];
180
+ b = pixel[2];
181
+ [h, s, l] = rgbToHsl(r, g, b);
182
+ // Keep hue from slider
183
+ h = Number(hueSlider.value) / 360;
184
+ updateDisplay();
185
+ options.onChange?.(formatColor());
186
+ }
187
+ // Canvas interaction
188
+ let dragging = false;
189
+ canvas.addEventListener('mousedown', (e) => {
190
+ dragging = true;
191
+ const rect = canvas.getBoundingClientRect();
192
+ pickFromCanvas(Math.round((e.clientX - rect.left) * (canvas.width / rect.width)), Math.round((e.clientY - rect.top) * (canvas.height / rect.height)));
193
+ });
194
+ document.addEventListener('mousemove', (e) => {
195
+ if (!dragging)
196
+ return;
197
+ const rect = canvas.getBoundingClientRect();
198
+ const x = Math.max(0, Math.min(canvas.width - 1, Math.round((e.clientX - rect.left) * (canvas.width / rect.width))));
199
+ const y = Math.max(0, Math.min(canvas.height - 1, Math.round((e.clientY - rect.top) * (canvas.height / rect.height))));
200
+ pickFromCanvas(x, y);
201
+ });
202
+ document.addEventListener('mouseup', () => { dragging = false; });
203
+ // Hue slider
204
+ hueSlider.addEventListener('input', () => {
205
+ h = Number(hueSlider.value) / 360;
206
+ [r, g, b] = hslToRgb(h, s, l);
207
+ drawCanvas();
208
+ updateDisplay();
209
+ options.onChange?.(formatColor());
210
+ });
211
+ // Text input
212
+ colorInput.addEventListener('change', () => {
213
+ try {
214
+ [r, g, b] = parseColor(colorInput.value);
215
+ [h, s, l] = rgbToHsl(r, g, b);
216
+ hueSlider.value = String(Math.round(h * 360));
217
+ drawCanvas();
218
+ updateDisplay();
219
+ options.onChange?.(formatColor());
220
+ }
221
+ catch {
222
+ // Invalid input, ignore
223
+ }
224
+ });
225
+ drawCanvas();
226
+ updateDisplay();
227
+ return {
228
+ getValue() {
229
+ return formatColor();
230
+ },
231
+ setValue(color) {
232
+ [r, g, b] = parseColor(color);
233
+ [h, s, l] = rgbToHsl(r, g, b);
234
+ hueSlider.value = String(Math.round(h * 360));
235
+ drawCanvas();
236
+ updateDisplay();
237
+ },
238
+ destroy() {
239
+ root.remove();
240
+ },
241
+ };
242
+ }
243
+ //# sourceMappingURL=color-picker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"color-picker.js","sourceRoot":"","sources":[""],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export { createColorPicker } from './color-picker';
2
+ export type { ColorPickerOptions, ColorPickerInstance } from './color-picker';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/color-picker/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,YAAY,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { createColorPicker } from './color-picker';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":[""],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC"}