@trdrs/quickcharts 5.3.0 → 5.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +14 -0
- package/README.md +45 -9
- package/dist/{chunk-FRZFOTMO.js → chunk-ETG46YGK.js} +28 -1
- package/dist/{chunk-FRZFOTMO.js.map → chunk-ETG46YGK.js.map} +1 -1
- package/dist/drawings.js +1 -1
- package/dist/feature-manifest.json +1 -1
- package/dist/index.d.ts +321 -286
- package/dist/index.js +115 -22
- package/dist/index.js.map +1 -1
- package/dist/quickcharts.css +262 -13
- package/package.json +1 -1
package/dist/quickcharts.css
CHANGED
|
@@ -231,6 +231,184 @@
|
|
|
231
231
|
--qc-text-secondary: #b8b8b8;
|
|
232
232
|
}
|
|
233
233
|
|
|
234
|
+
[data-qc-theme] [data-qc-canvas="light"] {
|
|
235
|
+
--qc-canvas-background: #ffffff;
|
|
236
|
+
--qc-canvas-paneBorder: #ebebeb;
|
|
237
|
+
--qc-canvas-watermark: rgba(80, 83, 94, 0.2);
|
|
238
|
+
--qc-chrome-border: #ebebeb;
|
|
239
|
+
--qc-chrome-borderStrong: #8c8c8c;
|
|
240
|
+
--qc-chrome-caret: #707070;
|
|
241
|
+
--qc-chrome-fieldBorder: #dbdbdb;
|
|
242
|
+
--qc-chrome-grip: #b8b8b8;
|
|
243
|
+
--qc-chrome-scrollThumb: #9c9c9c;
|
|
244
|
+
--qc-chrome-surface: #ffffff;
|
|
245
|
+
--qc-chrome-surfaceRaised: #ffffff;
|
|
246
|
+
--qc-control-fieldEdge: #dbdbdb;
|
|
247
|
+
--qc-control-fieldEdgeHover: #a8a8a8;
|
|
248
|
+
--qc-control-fieldFill: #f2f2f2;
|
|
249
|
+
--qc-control-fieldInvalid: #f23645;
|
|
250
|
+
--qc-control-mark: #ffffff;
|
|
251
|
+
--qc-control-neutral: #f2f2f2;
|
|
252
|
+
--qc-control-neutralHover: #ebebeb;
|
|
253
|
+
--qc-control-neutralInk: #000000;
|
|
254
|
+
--qc-control-neutralPressed: #dbdbdb;
|
|
255
|
+
--qc-control-off: #9c9c9c;
|
|
256
|
+
--qc-control-offHover: #8c8c8c;
|
|
257
|
+
--qc-control-offPressed: #b8b8b8;
|
|
258
|
+
--qc-control-on: #1a1a1a;
|
|
259
|
+
--qc-control-onHover: #464646;
|
|
260
|
+
--qc-control-onInk: #ffffff;
|
|
261
|
+
--qc-control-onPressed: #707070;
|
|
262
|
+
--qc-control-outline: #1a1a1a;
|
|
263
|
+
--qc-control-selectEdgeHover: #a8a8a8;
|
|
264
|
+
--qc-control-tipMark: #a8a8a8;
|
|
265
|
+
--qc-control-tipMarkHover: #707070;
|
|
266
|
+
--qc-drawing-fill: rgba(41, 98, 255, 0.15);
|
|
267
|
+
--qc-drawing-handle: #ffffff;
|
|
268
|
+
--qc-drawing-line: #2962ff;
|
|
269
|
+
--qc-drawing-selected: #2962ff;
|
|
270
|
+
--qc-drawing-text: #000000;
|
|
271
|
+
--qc-illustration-accent: #2196f3;
|
|
272
|
+
--qc-illustration-accentInk: #ffffff;
|
|
273
|
+
--qc-illustration-ink: #1e222d;
|
|
274
|
+
--qc-overlay-scrim: rgba(156, 156, 156, 0.5);
|
|
275
|
+
--qc-overlay-separator: #ebebeb;
|
|
276
|
+
--qc-overlay-surface: #ffffff;
|
|
277
|
+
--qc-overlay-tooltip: #1a1a1a;
|
|
278
|
+
--qc-overlay-tooltipInk: #f2f2f2;
|
|
279
|
+
--qc-scale-background: #ffffff;
|
|
280
|
+
--qc-scale-border: rgba(26, 26, 26, 0);
|
|
281
|
+
--qc-scale-crosshair: #9c9c9c;
|
|
282
|
+
--qc-scale-crosshairLabelBackground: #000000;
|
|
283
|
+
--qc-scale-crosshairLabelText: #ffffff;
|
|
284
|
+
--qc-scale-grid: rgba(26, 26, 26, 0.2);
|
|
285
|
+
--qc-scale-sessionAfterHours: rgba(41, 98, 255, 0.08);
|
|
286
|
+
--qc-scale-sessionClosed: rgba(0, 0, 0, 0.05);
|
|
287
|
+
--qc-scale-sessionExtended: rgba(213, 0, 249, 0.08);
|
|
288
|
+
--qc-scale-sessionPreMarket: rgba(255, 152, 0, 0.08);
|
|
289
|
+
--qc-scale-text: #000000;
|
|
290
|
+
--qc-series-down: #f23645;
|
|
291
|
+
--qc-series-neutral: #787b86;
|
|
292
|
+
--qc-series-up: #089981;
|
|
293
|
+
--qc-state-accent: #2962ff;
|
|
294
|
+
--qc-state-focusRing: #2962ff;
|
|
295
|
+
--qc-state-hover: #f2f2f2;
|
|
296
|
+
--qc-state-hoverInk: #000000;
|
|
297
|
+
--qc-state-markInk: #ffffff;
|
|
298
|
+
--qc-state-pressed: #ebebeb;
|
|
299
|
+
--qc-state-pressedHover: #dbdbdb;
|
|
300
|
+
--qc-state-selected: #ebebeb;
|
|
301
|
+
--qc-state-selection: rgba(31, 86, 238, 0.18);
|
|
302
|
+
--qc-status-info: #1160c4;
|
|
303
|
+
--qc-status-loading: #787b86;
|
|
304
|
+
--qc-status-negative: #df323f;
|
|
305
|
+
--qc-status-positive: #078671;
|
|
306
|
+
--qc-status-sessionAfterHours: #f5a623;
|
|
307
|
+
--qc-status-sessionClosed: rgba(0, 0, 0, 0.35);
|
|
308
|
+
--qc-status-sessionExtended: #4c98fb;
|
|
309
|
+
--qc-status-sessionOpen: #22c55e;
|
|
310
|
+
--qc-status-sessionPreMarket: #4c98fb;
|
|
311
|
+
--qc-status-warning: #ac6600;
|
|
312
|
+
--qc-text-caption: #707070;
|
|
313
|
+
--qc-text-disabled: #b8b8b8;
|
|
314
|
+
--qc-text-highlight: #2962ff;
|
|
315
|
+
--qc-text-inverse: #ffffff;
|
|
316
|
+
--qc-text-link: #2962ff;
|
|
317
|
+
--qc-text-muted: #6a6a6a;
|
|
318
|
+
--qc-text-onCanvas: #000000;
|
|
319
|
+
--qc-text-primary: #000000;
|
|
320
|
+
--qc-text-secondary: #000000;
|
|
321
|
+
}
|
|
322
|
+
|
|
323
|
+
[data-qc-theme] [data-qc-canvas="dark"] {
|
|
324
|
+
--qc-canvas-background: #000000;
|
|
325
|
+
--qc-canvas-paneBorder: #1a1a1a;
|
|
326
|
+
--qc-canvas-watermark: rgba(80, 83, 94, 0.3);
|
|
327
|
+
--qc-chrome-border: #1a1a1a;
|
|
328
|
+
--qc-chrome-borderStrong: #707070;
|
|
329
|
+
--qc-chrome-caret: #8c8c8c;
|
|
330
|
+
--qc-chrome-fieldBorder: #636363;
|
|
331
|
+
--qc-chrome-grip: #555555;
|
|
332
|
+
--qc-chrome-scrollThumb: #2b2b2b;
|
|
333
|
+
--qc-chrome-surface: #000000;
|
|
334
|
+
--qc-chrome-surfaceRaised: #1a1a1a;
|
|
335
|
+
--qc-control-fieldEdge: #555555;
|
|
336
|
+
--qc-control-fieldEdgeHover: #707070;
|
|
337
|
+
--qc-control-fieldFill: #1a1a1a;
|
|
338
|
+
--qc-control-fieldInvalid: #f23645;
|
|
339
|
+
--qc-control-mark: #1a1a1a;
|
|
340
|
+
--qc-control-neutral: #1a1a1a;
|
|
341
|
+
--qc-control-neutralHover: #2b2b2b;
|
|
342
|
+
--qc-control-neutralInk: #ffffff;
|
|
343
|
+
--qc-control-neutralPressed: #464646;
|
|
344
|
+
--qc-control-off: #636363;
|
|
345
|
+
--qc-control-offHover: #707070;
|
|
346
|
+
--qc-control-offPressed: #636363;
|
|
347
|
+
--qc-control-on: #f2f2f2;
|
|
348
|
+
--qc-control-onHover: #dbdbdb;
|
|
349
|
+
--qc-control-onInk: #000000;
|
|
350
|
+
--qc-control-onPressed: #8c8c8c;
|
|
351
|
+
--qc-control-outline: #ffffff;
|
|
352
|
+
--qc-control-selectEdgeHover: #808080;
|
|
353
|
+
--qc-control-tipMark: #555555;
|
|
354
|
+
--qc-control-tipMarkHover: #8c8c8c;
|
|
355
|
+
--qc-drawing-fill: rgba(41, 98, 255, 0.15);
|
|
356
|
+
--qc-drawing-handle: #000000;
|
|
357
|
+
--qc-drawing-line: #2962ff;
|
|
358
|
+
--qc-drawing-selected: #1e53e5;
|
|
359
|
+
--qc-drawing-text: #dbdbdb;
|
|
360
|
+
--qc-illustration-accent: #1976d2;
|
|
361
|
+
--qc-illustration-accentInk: #d1d4dc;
|
|
362
|
+
--qc-illustration-ink: #d1d4dc;
|
|
363
|
+
--qc-overlay-scrim: rgba(0, 0, 0, 0.5);
|
|
364
|
+
--qc-overlay-separator: #464646;
|
|
365
|
+
--qc-overlay-surface: #131313;
|
|
366
|
+
--qc-overlay-tooltip: #2b2b2b;
|
|
367
|
+
--qc-overlay-tooltipInk: #f2f2f2;
|
|
368
|
+
--qc-scale-background: #000000;
|
|
369
|
+
--qc-scale-border: rgba(242, 242, 242, 0);
|
|
370
|
+
--qc-scale-crosshair: #9c9c9c;
|
|
371
|
+
--qc-scale-crosshairLabelBackground: #2b2b2b;
|
|
372
|
+
--qc-scale-crosshairLabelText: #ffffff;
|
|
373
|
+
--qc-scale-grid: rgba(242, 242, 242, 0.2);
|
|
374
|
+
--qc-scale-sessionAfterHours: rgba(41, 98, 255, 0.08);
|
|
375
|
+
--qc-scale-sessionClosed: rgba(0, 0, 0, 0.22);
|
|
376
|
+
--qc-scale-sessionExtended: rgba(213, 0, 249, 0.08);
|
|
377
|
+
--qc-scale-sessionPreMarket: rgba(255, 152, 0, 0.08);
|
|
378
|
+
--qc-scale-text: #b8b8b8;
|
|
379
|
+
--qc-series-down: #f23645;
|
|
380
|
+
--qc-series-neutral: #787b86;
|
|
381
|
+
--qc-series-up: #089981;
|
|
382
|
+
--qc-state-accent: #2962ff;
|
|
383
|
+
--qc-state-focusRing: #2962ff;
|
|
384
|
+
--qc-state-hover: #1a1a1a;
|
|
385
|
+
--qc-state-hoverInk: #c9c9c9;
|
|
386
|
+
--qc-state-markInk: #ffffff;
|
|
387
|
+
--qc-state-pressed: #2b2b2b;
|
|
388
|
+
--qc-state-pressedHover: #464646;
|
|
389
|
+
--qc-state-selected: #333333;
|
|
390
|
+
--qc-state-selection: rgba(82, 160, 252, 0.22);
|
|
391
|
+
--qc-status-info: #68a5ff;
|
|
392
|
+
--qc-status-loading: #787b86;
|
|
393
|
+
--qc-status-negative: #f34452;
|
|
394
|
+
--qc-status-positive: #089981;
|
|
395
|
+
--qc-status-sessionAfterHours: #f5a623;
|
|
396
|
+
--qc-status-sessionClosed: rgba(255, 255, 255, 0.35);
|
|
397
|
+
--qc-status-sessionExtended: #4c98fb;
|
|
398
|
+
--qc-status-sessionOpen: #22c55e;
|
|
399
|
+
--qc-status-sessionPreMarket: #4c98fb;
|
|
400
|
+
--qc-status-warning: #ff9800;
|
|
401
|
+
--qc-text-caption: #8c8c8c;
|
|
402
|
+
--qc-text-disabled: #555555;
|
|
403
|
+
--qc-text-highlight: #5280ff;
|
|
404
|
+
--qc-text-inverse: #000000;
|
|
405
|
+
--qc-text-link: #5b9cf6;
|
|
406
|
+
--qc-text-muted: #9b9b9b;
|
|
407
|
+
--qc-text-onCanvas: #dbdbdb;
|
|
408
|
+
--qc-text-primary: #dbdbdb;
|
|
409
|
+
--qc-text-secondary: #b8b8b8;
|
|
410
|
+
}
|
|
411
|
+
|
|
234
412
|
@media (prefers-reduced-motion: reduce) {
|
|
235
413
|
[data-qc-theme] {
|
|
236
414
|
--qc-motion-durationBase: 0ms !important;
|
|
@@ -3844,10 +4022,13 @@
|
|
|
3844
4022
|
|
|
3845
4023
|
/* The page: a two-column grid inside 16px by 20px, the labels' column as wide as the widest label
|
|
3846
4024
|
* and its 20px gap, the controls' column the rest. Everything on the page that is not a labelled
|
|
3847
|
-
* row stands across both columns.
|
|
4025
|
+
* row stands across both columns. Every row is as tall as what it holds, whether or not the page
|
|
4026
|
+
* has room to spare: a row whose controls wrap onto a second line keeps that line, and the 50px
|
|
4027
|
+
* floor the controls carry still holds, so the rows never overlap while the page scrolls. */
|
|
3848
4028
|
[data-qc-theme] .qc-drawing-page {
|
|
3849
4029
|
display: grid;
|
|
3850
4030
|
grid-template-columns: auto minmax(0, 1fr);
|
|
4031
|
+
grid-auto-rows: max-content;
|
|
3851
4032
|
padding: 16px 20px;
|
|
3852
4033
|
}
|
|
3853
4034
|
|
|
@@ -4993,11 +5174,12 @@
|
|
|
4993
5174
|
height: 28px;
|
|
4994
5175
|
}
|
|
4995
5176
|
|
|
4996
|
-
/* The
|
|
4997
|
-
|
|
4998
|
-
[data-qc-theme] .qc-picker-list--
|
|
4999
|
-
[data-qc-theme] .qc-picker-list--
|
|
5000
|
-
[data-qc-theme] .qc-picker-list--
|
|
5177
|
+
/* The author and count columns stand only while a listed row fills them, so the shipped catalog is
|
|
5178
|
+
* a row of its star, its name and its actions. */
|
|
5179
|
+
[data-qc-theme] .qc-picker-list:not(.qc-picker-list--authors) .qc-picker-author,
|
|
5180
|
+
[data-qc-theme] .qc-picker-list:not(.qc-picker-list--authors) .qc-picker-headings > :nth-child(3),
|
|
5181
|
+
[data-qc-theme] .qc-picker-list:not(.qc-picker-list--counts) .qc-picker-count,
|
|
5182
|
+
[data-qc-theme] .qc-picker-list:not(.qc-picker-list--counts) .qc-picker-headings > :nth-child(4) {
|
|
5001
5183
|
display: none;
|
|
5002
5184
|
}
|
|
5003
5185
|
|
|
@@ -5010,6 +5192,49 @@
|
|
|
5010
5192
|
display: none;
|
|
5011
5193
|
}
|
|
5012
5194
|
|
|
5195
|
+
/* A collection's empty state fills the list's place, centred in the row ink: a 120px mark 12px over
|
|
5196
|
+
* an 18px title, 12px over 16px text, and its action 20px under that, a dialog footer's primary
|
|
5197
|
+
* button. */
|
|
5198
|
+
[data-qc-theme] .qc-picker-empty {
|
|
5199
|
+
display: flex;
|
|
5200
|
+
flex: 1 1 auto;
|
|
5201
|
+
flex-direction: column;
|
|
5202
|
+
align-items: center;
|
|
5203
|
+
justify-content: center;
|
|
5204
|
+
min-height: 0;
|
|
5205
|
+
padding: 0 34px 0 30px;
|
|
5206
|
+
color: var(--qc-text-secondary);
|
|
5207
|
+
text-align: center;
|
|
5208
|
+
}
|
|
5209
|
+
|
|
5210
|
+
[data-qc-theme] .qc-picker-empty-mark,
|
|
5211
|
+
[data-qc-theme] .qc-picker-empty-mark svg {
|
|
5212
|
+
display: flex;
|
|
5213
|
+
width: 120px;
|
|
5214
|
+
height: 120px;
|
|
5215
|
+
}
|
|
5216
|
+
|
|
5217
|
+
[data-qc-theme] .qc-picker-empty-mark {
|
|
5218
|
+
margin-bottom: 12px;
|
|
5219
|
+
}
|
|
5220
|
+
|
|
5221
|
+
[data-qc-theme] .qc-picker-empty-title {
|
|
5222
|
+
margin-bottom: 12px;
|
|
5223
|
+
font-size: 18px;
|
|
5224
|
+
font-weight: 600;
|
|
5225
|
+
line-height: 24px;
|
|
5226
|
+
}
|
|
5227
|
+
|
|
5228
|
+
[data-qc-theme] .qc-picker-empty-text {
|
|
5229
|
+
margin: 0 0 -4px;
|
|
5230
|
+
font-size: 16px;
|
|
5231
|
+
line-height: 24px;
|
|
5232
|
+
}
|
|
5233
|
+
|
|
5234
|
+
[data-qc-theme] .qc-picker-empty-action {
|
|
5235
|
+
margin-top: 20px;
|
|
5236
|
+
}
|
|
5237
|
+
|
|
5013
5238
|
[data-qc-theme] .qc-picker-status {
|
|
5014
5239
|
flex: 0 0 auto;
|
|
5015
5240
|
padding: 0 20px;
|
|
@@ -6544,14 +6769,15 @@
|
|
|
6544
6769
|
* places each over the scale's box as it measures it and writes `--qcd-chart-background`, the
|
|
6545
6770
|
* chart's own background, which each control stands on. */
|
|
6546
6771
|
|
|
6547
|
-
/* The auto-scale and logarithmic buttons at the foot of the scale: two 20x22 buttons
|
|
6548
|
-
* letter each. Off, a button is a 1px outline on the
|
|
6549
|
-
*
|
|
6772
|
+
/* The auto-scale and logarithmic buttons at the foot of the scale: two 20x22 buttons 15px apart, each
|
|
6773
|
+
* centred in a 35x30 cell, a 14px letter each on an 18px line. Off, a button is a 1px outline on the
|
|
6774
|
+
* chart's background, lit under the pointer; on, it is a held mode, filled in the emphasis fill a
|
|
6775
|
+
* checked box wears with its letter in the inverse ink, a step lighter under the pointer. */
|
|
6550
6776
|
[data-qc-theme] .qc-scale-modes {
|
|
6551
6777
|
position: absolute;
|
|
6552
6778
|
z-index: 4;
|
|
6553
6779
|
display: flex;
|
|
6554
|
-
gap:
|
|
6780
|
+
gap: 15px;
|
|
6555
6781
|
pointer-events: auto;
|
|
6556
6782
|
}
|
|
6557
6783
|
|
|
@@ -6562,10 +6788,11 @@
|
|
|
6562
6788
|
height: 22px;
|
|
6563
6789
|
align-items: center;
|
|
6564
6790
|
justify-content: center;
|
|
6565
|
-
padding: 0;
|
|
6791
|
+
padding: 1px 0;
|
|
6566
6792
|
font: inherit;
|
|
6567
|
-
font-size:
|
|
6568
|
-
|
|
6793
|
+
font-size: var(--qc-text-fontSizeBase);
|
|
6794
|
+
font-weight: 400;
|
|
6795
|
+
line-height: 18px;
|
|
6569
6796
|
color: var(--qc-text-primary);
|
|
6570
6797
|
background: var(--qcd-chart-background, var(--qc-canvas-background));
|
|
6571
6798
|
border: 1px solid var(--qc-overlay-separator);
|
|
@@ -6583,6 +6810,11 @@
|
|
|
6583
6810
|
border-color: var(--qc-control-on);
|
|
6584
6811
|
}
|
|
6585
6812
|
|
|
6813
|
+
[data-qc-theme] .qc-scale-mode[aria-pressed='true']:hover {
|
|
6814
|
+
background: var(--qc-control-onHover);
|
|
6815
|
+
border-color: var(--qc-control-onHover);
|
|
6816
|
+
}
|
|
6817
|
+
|
|
6586
6818
|
/* The box at the top of the scale naming what its prices are in: at least 64x26, four pixels in from
|
|
6587
6819
|
* the scale's top and its side away from the plot, on the chart's background inside a 1px border
|
|
6588
6820
|
* with a radius of 4, in 12px text. It takes no pointer, so the scale under it still drags. */
|
|
@@ -6607,6 +6839,23 @@
|
|
|
6607
6839
|
pointer-events: none;
|
|
6608
6840
|
}
|
|
6609
6841
|
|
|
6842
|
+
/* With the host's door the box is a button that opens the host's menu: it keeps the box's size, type
|
|
6843
|
+
* and outline, takes the pointer, and lights under it and while pressed as the scale's buttons do.
|
|
6844
|
+
* The chrome gives every button its pointer back, so this rule names the chrome as well. */
|
|
6845
|
+
[data-qc-theme] .qc-chrome button.qc-scale-unit {
|
|
6846
|
+
font-family: inherit;
|
|
6847
|
+
cursor: pointer;
|
|
6848
|
+
pointer-events: auto;
|
|
6849
|
+
}
|
|
6850
|
+
|
|
6851
|
+
[data-qc-theme] .qc-chrome button.qc-scale-unit:hover {
|
|
6852
|
+
background: var(--qc-state-hover);
|
|
6853
|
+
}
|
|
6854
|
+
|
|
6855
|
+
[data-qc-theme] .qc-chrome button.qc-scale-unit:active {
|
|
6856
|
+
background: var(--qc-state-pressed);
|
|
6857
|
+
}
|
|
6858
|
+
|
|
6610
6859
|
/* The plus beside the crosshair's price label is painted by the renderer with the label. Its button
|
|
6611
6860
|
* stands over the painted box, at the size the chart writes: transparent, and taking no pointer, so
|
|
6612
6861
|
* a pointer resting on the plus stays on the plot and keeps the crosshair. It carries the plus's
|
package/package.json
CHANGED