@automattic/charts 4.11.1 → 4.13.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 (73) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/dist/index.cjs +1412 -787
  3. package/dist/index.cjs.map +1 -1
  4. package/dist/index.css +59 -25
  5. package/dist/index.d.cts +64 -120
  6. package/dist/index.d.ts +64 -120
  7. package/dist/index.js +1400 -765
  8. package/dist/index.js.map +1 -1
  9. package/package.json +9 -9
  10. package/src/charts/area-chart/area-chart.tsx +16 -6
  11. package/src/charts/area-chart/test/area-chart.test.tsx +42 -9
  12. package/src/charts/bar-chart/bar-chart.tsx +143 -142
  13. package/src/charts/bar-chart/index.ts +3 -0
  14. package/src/charts/bar-chart/private/band-tooltip.tsx +41 -15
  15. package/src/charts/bar-chart/private/bar-layer.tsx +132 -0
  16. package/src/charts/bar-chart/private/comparison-bars-geometry.ts +22 -34
  17. package/src/charts/bar-chart/private/comparison-bars.tsx +9 -18
  18. package/src/charts/bar-chart/private/comparison-constants.ts +4 -10
  19. package/src/charts/bar-chart/private/grouped-bars.ts +68 -0
  20. package/src/charts/bar-chart/private/index.ts +7 -1
  21. package/src/charts/bar-chart/private/overlap-bars.ts +183 -0
  22. package/src/charts/bar-chart/private/selected-bar-ring.tsx +84 -0
  23. package/src/charts/bar-chart/private/slot-tooltip-members.tsx +28 -0
  24. package/src/charts/bar-chart/private/slotted-bar-series.tsx +84 -0
  25. package/src/charts/bar-chart/private/test/comparison-bars-geometry.test.ts +4 -11
  26. package/src/charts/bar-chart/private/test/comparison-bars.test.tsx +2 -3
  27. package/src/charts/bar-chart/private/test/grouped-bars.test.ts +87 -0
  28. package/src/charts/bar-chart/private/test/overlap-bars.test.ts +159 -0
  29. package/src/charts/bar-chart/private/use-bar-stops.ts +87 -0
  30. package/src/charts/bar-chart/private/use-overlap-slots.ts +213 -0
  31. package/src/charts/bar-chart/private/value-domain.ts +0 -10
  32. package/src/charts/bar-chart/test/bar-chart-overlap.test.tsx +347 -0
  33. package/src/charts/bar-chart/test/bar-chart.test.tsx +181 -19
  34. package/src/charts/bar-chart/test/use-bar-legend-items.test.tsx +81 -0
  35. package/src/charts/bar-chart/types.ts +3 -0
  36. package/src/charts/bar-chart/use-bar-colors.ts +46 -0
  37. package/src/charts/bar-chart/use-bar-legend-items.ts +87 -0
  38. package/src/charts/conversion-funnel-chart/conversion-funnel-chart.module.scss +24 -11
  39. package/src/charts/conversion-funnel-chart/conversion-funnel-chart.tsx +235 -182
  40. package/src/charts/conversion-funnel-chart/index.ts +2 -0
  41. package/src/charts/conversion-funnel-chart/private/index.ts +1 -0
  42. package/src/charts/conversion-funnel-chart/private/use-funnel-selection.ts +9 -47
  43. package/src/charts/conversion-funnel-chart/private/use-roving-step-focus.ts +83 -0
  44. package/src/charts/conversion-funnel-chart/test/conversion-funnel-chart.test.tsx +312 -92
  45. package/src/charts/conversion-funnel-chart/test/use-funnel-selection.test.ts +23 -188
  46. package/src/charts/conversion-funnel-chart/types.ts +22 -0
  47. package/src/charts/leaderboard-chart/leaderboard-chart.module.scss +41 -1
  48. package/src/charts/leaderboard-chart/leaderboard-chart.tsx +101 -30
  49. package/src/charts/leaderboard-chart/test/leaderboard-chart.test.tsx +47 -0
  50. package/src/charts/line-chart/line-chart.tsx +25 -18
  51. package/src/charts/line-chart/test/line-chart.test.tsx +240 -1
  52. package/src/charts/pie-chart/pie-chart.tsx +7 -2
  53. package/src/charts/pie-semi-circle-chart/pie-semi-circle-chart.tsx +7 -2
  54. package/src/charts/private/pie-keyboard-navigation/index.ts +0 -1
  55. package/src/charts/private/{pie-keyboard-navigation/pie-keyboard-navigation.module.scss → selected-ring/selected-ring.module.scss} +11 -6
  56. package/src/charts/private/selected-ring/selected-ring.tsx +73 -0
  57. package/src/charts/private/{pie-keyboard-navigation/test/selected-segment-ring.test.ts → selected-ring/test/selected-ring.test.ts} +1 -1
  58. package/src/components/legend/hooks/test/use-chart-legend-items.test.tsx +20 -0
  59. package/src/components/legend/hooks/use-chart-legend-items.ts +27 -3
  60. package/src/components/tooltip/private/at-nearest-date.ts +49 -0
  61. package/src/components/tooltip/private/keyboard-stops.ts +67 -0
  62. package/src/components/tooltip/private/xy-chart-tooltip-overlay.tsx +10 -2
  63. package/src/components/tooltip/test/keyboard-stops.test.ts +36 -0
  64. package/src/components/tooltip/test/xy-chart-tooltip.test.tsx +135 -1
  65. package/src/components/tooltip/xy-chart-tooltip.tsx +11 -14
  66. package/src/index.ts +10 -2
  67. package/src/providers/chart-context/global-charts-provider.tsx +2 -0
  68. package/src/providers/chart-context/test/chart-context.test.tsx +0 -13
  69. package/src/providers/chart-context/themes.ts +0 -1
  70. package/src/providers/chart-context/types.ts +2 -0
  71. package/src/test-utils/selected-bar-ring.ts +14 -0
  72. package/src/types.ts +14 -5
  73. package/src/charts/private/pie-keyboard-navigation/selected-segment-ring.tsx +0 -47
package/dist/index.css CHANGED
@@ -348,6 +348,25 @@
348
348
  transform: scaleX(1);
349
349
  }
350
350
  }
351
+ .a8ccharts-gx1_AW-selected-ring__far, .a8ccharts-gx1_AW-selected-ring__edge {
352
+ fill: none;
353
+ }
354
+
355
+ .a8ccharts-gx1_AW-selected-ring__far {
356
+ stroke-width: calc(4 * var(--wpds-border-width-focus, var(--wp-admin-border-width-focus, 2px)));
357
+ }
358
+
359
+ .a8ccharts-gx1_AW-selected-ring__edge {
360
+ stroke-width: calc(2 * var(--wpds-border-width-focus, var(--wp-admin-border-width-focus, 2px)));
361
+ }
362
+
363
+ .a8ccharts-gx1_AW-selected-ring__contrast {
364
+ stroke: var(--a8c-charts-color-background, #fff);
365
+ }
366
+
367
+ .a8ccharts-gx1_AW-selected-ring__focus {
368
+ stroke: var(--wpds-color-stroke-focus, var(--wp-admin-theme-color, #3858e9));
369
+ }
351
370
  .a8ccharts-mGEVca-conversion-funnel-chart {
352
371
  position: relative;
353
372
  }
@@ -402,14 +421,18 @@
402
421
  height: 100%;
403
422
  }
404
423
 
405
- .a8ccharts-mGEVca-funnel-step--animated {
406
- transition: opacity var(--wpds-motion-duration-lg, .3s) var(--wpds-motion-easing-subtle, cubic-bezier(.15, 0, .15, 1));
424
+ .a8ccharts-mGEVca-funnel-step--animated .a8ccharts-mGEVca-step-text, .a8ccharts-mGEVca-funnel-step--animated .a8ccharts-mGEVca-funnel-bar, .a8ccharts-mGEVca-funnel-step--animated .a8ccharts-mGEVca-bar-container {
425
+ transition: opacity var(--wpds-motion-duration-lg, .3s) var(--wpds-motion-easing-subtle, cubic-bezier(.15, 0, .15, 1)), background-color var(--wpds-motion-duration-lg, .3s) var(--wpds-motion-easing-subtle, cubic-bezier(.15, 0, .15, 1));
407
426
  }
408
427
 
409
- .a8ccharts-mGEVca-funnel-step--blurred {
428
+ .a8ccharts-mGEVca-funnel-step--blurred .a8ccharts-mGEVca-step-text, .a8ccharts-mGEVca-funnel-step--blurred .a8ccharts-mGEVca-funnel-bar {
410
429
  opacity: .3;
411
430
  }
412
431
 
432
+ .a8ccharts-mGEVca-funnel-step--blurred .a8ccharts-mGEVca-bar-container {
433
+ background-color: color-mix(in sRGB, var(--a8c-charts-color-surface-secondary) 30%, transparent);
434
+ }
435
+
413
436
  .a8ccharts-mGEVca-step-label {
414
437
  color: var(--a8c-charts-color-label-secondary);
415
438
  font-size: var(--wpds-typography-font-size-sm, 12px);
@@ -462,20 +485,16 @@
462
485
  }
463
486
  }
464
487
 
465
- .a8ccharts-mGEVca-tooltip-title {
488
+ .a8ccharts-mGEVca-tooltip-title, .a8ccharts-mGEVca-tooltip-label, .a8ccharts-mGEVca-tooltip-value {
466
489
  color: var(--a8c-charts-color-label);
467
490
  font-size: var(--wpds-typography-font-size-sm, 12px);
468
491
  font-style: normal;
469
492
  font-weight: var(--wpds-typography-font-weight-default, 400);
470
- line-height: var(--wpds-typography-line-height-xs, 16px);
493
+ line-height: var(--wpds-typography-line-height-sm, 20px);
471
494
  }
472
495
 
473
- .a8ccharts-mGEVca-tooltip-content {
474
- color: var(--a8c-charts-color-label);
475
- font-size: var(--wpds-typography-font-size-md, 13px);
476
- font-style: normal;
496
+ .a8ccharts-mGEVca-tooltip-value {
477
497
  font-weight: var(--wpds-typography-font-weight-emphasis, 600);
478
- line-height: var(--wpds-typography-line-height-sm, 20px);
479
498
  }
480
499
 
481
500
  .a8ccharts-mGEVca-empty-state {
@@ -746,6 +765,10 @@
746
765
  padding-left: var(--wpds-dimension-padding-sm, 8px);
747
766
  }
748
767
 
768
+ .a8ccharts-GovfoW-barWithLabelContainer.a8ccharts-GovfoW-is-overlay .a8ccharts-GovfoW-barTrack {
769
+ align-self: stretch;
770
+ }
771
+
749
772
  .a8ccharts-GovfoW-barWithLabelContainer .a8ccharts-GovfoW-bar {
750
773
  height: 100%;
751
774
  min-height: 6px;
@@ -760,6 +783,14 @@
760
783
  animation: a8ccharts-GovfoW-stretch var(--a8c-charts-motion-duration-entrance) var(--a8c-charts-motion-easing-entrance) both;
761
784
  }
762
785
 
786
+ .a8ccharts-GovfoW-barWithLabelContainer .a8ccharts-GovfoW-bar--negative, [dir="rtl"] .a8ccharts-GovfoW-barWithLabelContainer .a8ccharts-GovfoW-bar--animated {
787
+ transform-origin: 100%;
788
+ }
789
+
790
+ [dir="rtl"] .a8ccharts-GovfoW-barWithLabelContainer .a8ccharts-GovfoW-bar--negative {
791
+ transform-origin: 0;
792
+ }
793
+
763
794
  @keyframes a8ccharts-GovfoW-stretch {
764
795
  from {
765
796
  transform: scaleX(0);
@@ -770,9 +801,25 @@
770
801
  }
771
802
  }
772
803
 
804
+ .a8ccharts-GovfoW-barWithLabelContainer .a8ccharts-GovfoW-barTrack {
805
+ display: grid;
806
+ }
807
+
808
+ .a8ccharts-GovfoW-barWithLabelContainer .a8ccharts-GovfoW-barTrack .a8ccharts-GovfoW-bar {
809
+ grid-column: 2;
810
+ justify-self: start;
811
+ }
812
+
813
+ .a8ccharts-GovfoW-barWithLabelContainer .a8ccharts-GovfoW-barTrack .a8ccharts-GovfoW-bar--negative {
814
+ grid-column: 1;
815
+ justify-self: end;
816
+ }
817
+
773
818
  .a8ccharts-GovfoW-valueContainer {
774
- justify-content: flex-end;
775
- align-items: center;
819
+ grid-column: 2 / -1;
820
+ grid-template-columns: subgrid;
821
+ place-items: center end;
822
+ display: grid;
776
823
  }
777
824
 
778
825
  .a8ccharts-GovfoW-deltaValue {
@@ -932,19 +979,6 @@
932
979
  transition: none;
933
980
  }
934
981
  }
935
- .a8ccharts-V2HDKq-selected-ring__contrast, .a8ccharts-V2HDKq-selected-ring__focus {
936
- fill: none;
937
- }
938
-
939
- .a8ccharts-V2HDKq-selected-ring__contrast {
940
- stroke: var(--a8c-charts-color-background, #fff);
941
- stroke-width: calc(4 * var(--wpds-border-width-focus, var(--wp-admin-border-width-focus, 2px)));
942
- }
943
-
944
- .a8ccharts-V2HDKq-selected-ring__focus {
945
- stroke: var(--wpds-color-stroke-focus, var(--wp-admin-theme-color, #3858e9));
946
- stroke-width: calc(2 * var(--wpds-border-width-focus, var(--wp-admin-border-width-focus, 2px)));
947
- }
948
982
  .a8ccharts-gnszbG-pie-chart {
949
983
  isolation: isolate;
950
984
  }