plotleaf 0.1.0 → 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.
@@ -15,6 +15,14 @@
15
15
  --series-fill-end: rgba(79, 178, 239, 0);
16
16
  --tooltip: #ffffff;
17
17
  --target: #969ba2;
18
+ --slice-1: #429ee4;
19
+ --slice-2: #64afa1;
20
+ --slice-3: #8696b8;
21
+ --slice-4: #d4a05b;
22
+ --slice-5: #7984be;
23
+ --slice-6: #90c7df;
24
+ --slice-7: #b39581;
25
+ --slice-8: #a4acb9;
18
26
  font-family:
19
27
  ui-sans-serif,
20
28
  -apple-system,
@@ -42,6 +50,14 @@
42
50
  --series-fill-end: rgba(72, 158, 224, 0);
43
51
  --tooltip: #25272c;
44
52
  --target: #878d97;
53
+ --slice-1: #65b5ed;
54
+ --slice-2: #80c5b6;
55
+ --slice-3: #a2b2d0;
56
+ --slice-4: #e1b575;
57
+ --slice-5: #a1a9de;
58
+ --slice-6: #a1d8eb;
59
+ --slice-7: #c5aa99;
60
+ --slice-8: #b7bfcd;
45
61
  }
46
62
  }
47
63
  * {
@@ -251,6 +267,163 @@ code {
251
267
  .chart-data caption {
252
268
  font-size: 15px;
253
269
  }
270
+ .funnel-stages {
271
+ list-style: none;
272
+ padding: 0;
273
+ margin: 0;
274
+ max-width: none;
275
+ display: grid;
276
+ gap: 16px;
277
+ }
278
+ .funnel-stage {
279
+ --stage-fill: var(--series);
280
+ margin: 0;
281
+ min-width: 0;
282
+ font-size: 16px;
283
+ line-height: 1.5;
284
+ font-variant-numeric: tabular-nums;
285
+ }
286
+ .funnel-stage[data-status="on-target"] {
287
+ --stage-fill: var(--positive);
288
+ }
289
+ .funnel-stage[data-status="below-target"] {
290
+ --stage-fill: var(--warning);
291
+ }
292
+ .funnel-stage[data-status="at-risk"] {
293
+ --stage-fill: var(--negative);
294
+ }
295
+ .funnel-heading,
296
+ .funnel-values {
297
+ display: flex;
298
+ flex-wrap: wrap;
299
+ gap: 2px 12px;
300
+ }
301
+ .funnel-heading {
302
+ justify-content: space-between;
303
+ gap: 4px 16px;
304
+ overflow-wrap: anywhere;
305
+ }
306
+ .funnel-values {
307
+ color: var(--muted);
308
+ }
309
+ .funnel-values strong {
310
+ font-weight: 550;
311
+ }
312
+ .funnel-stage meter {
313
+ display: block;
314
+ appearance: none;
315
+ width: 100%;
316
+ height: 10px;
317
+ margin-block-start: 8px;
318
+ border: 0;
319
+ border-radius: 999px;
320
+ background: var(--soft);
321
+ }
322
+ .funnel-stage meter::-webkit-meter-bar {
323
+ height: 10px;
324
+ border: 0;
325
+ border-radius: 999px;
326
+ background: var(--soft);
327
+ box-shadow: none;
328
+ }
329
+ .funnel-stage meter::-webkit-meter-optimum-value,
330
+ .funnel-stage meter::-webkit-meter-suboptimum-value,
331
+ .funnel-stage meter::-webkit-meter-even-less-good-value {
332
+ border-radius: 999px;
333
+ background: var(--stage-fill);
334
+ }
335
+ .funnel-stage meter::-moz-meter-bar {
336
+ border-radius: 999px;
337
+ background: var(--stage-fill);
338
+ }
339
+ .funnel-status {
340
+ display: inline-flex;
341
+ align-items: center;
342
+ gap: 6px;
343
+ margin-block-start: 5px;
344
+ color: var(--muted);
345
+ font-size: 12px;
346
+ }
347
+ .funnel-status::before {
348
+ content: "";
349
+ width: 6px;
350
+ height: 6px;
351
+ border-radius: 50%;
352
+ background: var(--stage-fill);
353
+ }
354
+ .donut-layout {
355
+ display: flex;
356
+ flex-wrap: wrap;
357
+ align-items: center;
358
+ justify-content: center;
359
+ gap: 12px 24px;
360
+ }
361
+ .donut-plot {
362
+ flex: 1 1 180px;
363
+ min-width: 0;
364
+ max-width: 300px;
365
+ height: 260px;
366
+ }
367
+ .donut-legend {
368
+ flex: 1 1 210px;
369
+ min-width: 0;
370
+ max-width: 500px;
371
+ list-style: none;
372
+ padding: 0;
373
+ margin: 0;
374
+ font-size: 14px;
375
+ line-height: 1.5;
376
+ font-variant-numeric: tabular-nums;
377
+ }
378
+ .donut-legend li {
379
+ display: grid;
380
+ grid-template-columns: minmax(0, 1fr) auto auto;
381
+ align-items: baseline;
382
+ gap: 8px 14px;
383
+ margin: 0;
384
+ padding-block: 10px;
385
+ }
386
+ .donut-key {
387
+ display: flex;
388
+ align-items: baseline;
389
+ gap: 9px;
390
+ overflow-wrap: anywhere;
391
+ }
392
+ .donut-swatch {
393
+ flex: 0 0 8px;
394
+ height: 8px;
395
+ border-radius: 50%;
396
+ }
397
+ .donut-swatch[data-slice="1"] {
398
+ background: var(--slice-1);
399
+ }
400
+ .donut-swatch[data-slice="2"] {
401
+ background: var(--slice-2);
402
+ }
403
+ .donut-swatch[data-slice="3"] {
404
+ background: var(--slice-3);
405
+ }
406
+ .donut-swatch[data-slice="4"] {
407
+ background: var(--slice-4);
408
+ }
409
+ .donut-swatch[data-slice="5"] {
410
+ background: var(--slice-5);
411
+ }
412
+ .donut-swatch[data-slice="6"] {
413
+ background: var(--slice-6);
414
+ }
415
+ .donut-swatch[data-slice="7"] {
416
+ background: var(--slice-7);
417
+ }
418
+ .donut-swatch[data-slice="8"] {
419
+ background: var(--slice-8);
420
+ }
421
+ .donut-value {
422
+ color: var(--ink);
423
+ }
424
+ .donut-share {
425
+ color: var(--muted);
426
+ }
254
427
  .table-scroll {
255
428
  max-width: 100%;
256
429
  overflow: auto;
@@ -297,6 +470,77 @@ tbody tr:last-child td {
297
470
  .numeric {
298
471
  text-align: end;
299
472
  }
473
+ .image-definitions {
474
+ position: absolute;
475
+ width: 0;
476
+ height: 0;
477
+ overflow: hidden;
478
+ }
479
+ .table-image {
480
+ display: block;
481
+ width: 64px;
482
+ height: 48px;
483
+ border-radius: 4px;
484
+ outline: 1px solid var(--rule);
485
+ outline-offset: -1px;
486
+ background: var(--page);
487
+ }
488
+ .sparkline-cell {
489
+ display: inline-grid;
490
+ grid-template-columns: 112px minmax(3ch, auto);
491
+ align-items: center;
492
+ gap: 2px 12px;
493
+ font-variant-numeric: tabular-nums;
494
+ }
495
+ .sparkline-chart {
496
+ display: block;
497
+ width: 112px;
498
+ height: 32px;
499
+ color: var(--series);
500
+ }
501
+ .sparkline-chart path {
502
+ stroke: currentColor;
503
+ stroke-width: 1.8px;
504
+ stroke-linecap: round;
505
+ stroke-linejoin: round;
506
+ fill: none;
507
+ }
508
+ .sparkline-chart circle {
509
+ fill: currentColor;
510
+ }
511
+ .sparkline-last {
512
+ color: var(--ink);
513
+ }
514
+ .sparkline-empty {
515
+ font-size: 12px;
516
+ color: var(--muted);
517
+ white-space: normal;
518
+ }
519
+ .sparkline-data {
520
+ grid-column: 1 / -1;
521
+ text-align: start;
522
+ font-size: 12px;
523
+ line-height: 1.5;
524
+ white-space: normal;
525
+ max-width: 190px;
526
+ color: var(--muted);
527
+ }
528
+ .sparkline-data summary {
529
+ cursor: pointer;
530
+ width: fit-content;
531
+ padding-block: 3px;
532
+ min-height: 24px;
533
+ }
534
+ .sparkline-values {
535
+ margin: 8px 0;
536
+ padding-inline-start: 26px;
537
+ max-height: 180px;
538
+ overflow: auto;
539
+ overflow-wrap: anywhere;
540
+ }
541
+ .sparkline-values li {
542
+ margin-block: 0;
543
+ }
300
544
  th button {
301
545
  border: 0;
302
546
  background: transparent;