@automattic/charts 0.56.6 → 0.57.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 (177) hide show
  1. package/AGENTS.md +65 -0
  2. package/CHANGELOG.md +22 -0
  3. package/README.md +2 -1
  4. package/dist/charts/bar-chart/index.cjs +5 -6
  5. package/dist/charts/bar-chart/index.cjs.map +1 -1
  6. package/dist/charts/bar-chart/index.d.cts +3 -3
  7. package/dist/charts/bar-chart/index.d.ts +3 -3
  8. package/dist/charts/bar-chart/index.js +4 -5
  9. package/dist/charts/bar-list-chart/index.cjs +6 -7
  10. package/dist/charts/bar-list-chart/index.cjs.map +1 -1
  11. package/dist/charts/bar-list-chart/index.d.cts +3 -3
  12. package/dist/charts/bar-list-chart/index.d.ts +3 -3
  13. package/dist/charts/bar-list-chart/index.js +5 -6
  14. package/dist/charts/conversion-funnel-chart/index.cjs +5 -6
  15. package/dist/charts/conversion-funnel-chart/index.cjs.map +1 -1
  16. package/dist/charts/conversion-funnel-chart/index.d.cts +1 -1
  17. package/dist/charts/conversion-funnel-chart/index.d.ts +1 -1
  18. package/dist/charts/conversion-funnel-chart/index.js +4 -5
  19. package/dist/charts/geo-chart/index.cjs +4 -4
  20. package/dist/charts/geo-chart/index.d.cts +1 -1
  21. package/dist/charts/geo-chart/index.d.ts +1 -1
  22. package/dist/charts/geo-chart/index.js +3 -3
  23. package/dist/charts/leaderboard-chart/index.cjs +5 -5
  24. package/dist/charts/leaderboard-chart/index.css +8 -9
  25. package/dist/charts/leaderboard-chart/index.css.map +1 -1
  26. package/dist/charts/leaderboard-chart/index.d.cts +3 -3
  27. package/dist/charts/leaderboard-chart/index.d.ts +3 -3
  28. package/dist/charts/leaderboard-chart/index.js +4 -4
  29. package/dist/charts/line-chart/index.cjs +5 -6
  30. package/dist/charts/line-chart/index.cjs.map +1 -1
  31. package/dist/charts/line-chart/index.d.cts +3 -3
  32. package/dist/charts/line-chart/index.d.ts +3 -3
  33. package/dist/charts/line-chart/index.js +4 -5
  34. package/dist/charts/pie-chart/index.cjs +5 -6
  35. package/dist/charts/pie-chart/index.cjs.map +1 -1
  36. package/dist/charts/pie-chart/index.d.cts +4 -4
  37. package/dist/charts/pie-chart/index.d.ts +4 -4
  38. package/dist/charts/pie-chart/index.js +4 -5
  39. package/dist/charts/pie-semi-circle-chart/index.cjs +5 -6
  40. package/dist/charts/pie-semi-circle-chart/index.cjs.map +1 -1
  41. package/dist/charts/pie-semi-circle-chart/index.d.cts +4 -4
  42. package/dist/charts/pie-semi-circle-chart/index.d.ts +4 -4
  43. package/dist/charts/pie-semi-circle-chart/index.js +4 -5
  44. package/dist/charts/sparkline/index.cjs +6 -7
  45. package/dist/charts/sparkline/index.cjs.map +1 -1
  46. package/dist/charts/sparkline/index.js +5 -6
  47. package/dist/{chunk-XD2HV7M5.js → chunk-2NCY7R4G.js} +127 -762
  48. package/dist/chunk-2NCY7R4G.js.map +1 -0
  49. package/dist/{chunk-RFSHE3HL.js → chunk-32DH6JDF.js} +64 -43
  50. package/dist/chunk-32DH6JDF.js.map +1 -0
  51. package/dist/{chunk-SSFFCBCF.js → chunk-4OPFE4RM.js} +11 -8
  52. package/dist/chunk-4OPFE4RM.js.map +1 -0
  53. package/dist/{chunk-CAFJRZPZ.cjs → chunk-77OKCVQN.cjs} +17 -17
  54. package/dist/{chunk-CAFJRZPZ.cjs.map → chunk-77OKCVQN.cjs.map} +1 -1
  55. package/dist/{chunk-K6TGILHX.cjs → chunk-7FQX4ALL.cjs} +6 -6
  56. package/dist/{chunk-K6TGILHX.cjs.map → chunk-7FQX4ALL.cjs.map} +1 -1
  57. package/dist/{chunk-7FDQGBY7.js → chunk-BCX5THDQ.js} +9 -7
  58. package/dist/chunk-BCX5THDQ.js.map +1 -0
  59. package/dist/{chunk-KHQPN77E.js → chunk-CZGYJKG6.js} +4 -4
  60. package/dist/{chunk-3EXJP67N.cjs → chunk-D2UH4CFE.cjs} +9 -9
  61. package/dist/{chunk-3EXJP67N.cjs.map → chunk-D2UH4CFE.cjs.map} +1 -1
  62. package/dist/{chunk-TE63Y5PX.js → chunk-DAU3HNEG.js} +2 -2
  63. package/dist/chunk-DAU3HNEG.js.map +1 -0
  64. package/dist/{chunk-MDRCAGKZ.js → chunk-H2V4JMSA.js} +3 -3
  65. package/dist/{chunk-UFRBUT2D.cjs → chunk-I35UYJJR.cjs} +49 -6
  66. package/dist/chunk-I35UYJJR.cjs.map +1 -0
  67. package/dist/{chunk-GWBS65VC.js → chunk-IU4DYUAV.js} +3 -3
  68. package/dist/{chunk-E62LCBGD.js → chunk-PXLEMUGJ.js} +3 -3
  69. package/dist/{chunk-YDVHT7GS.cjs → chunk-RHHVEJHJ.cjs} +83 -62
  70. package/dist/chunk-RHHVEJHJ.cjs.map +1 -0
  71. package/dist/{chunk-YAXY5L7I.cjs → chunk-TO3OQBXG.cjs} +5 -5
  72. package/dist/{chunk-YAXY5L7I.cjs.map → chunk-TO3OQBXG.cjs.map} +1 -1
  73. package/dist/{chunk-VPAEBI2F.js → chunk-V36ERY7Y.js} +9 -7
  74. package/dist/chunk-V36ERY7Y.js.map +1 -0
  75. package/dist/{chunk-X7JL2NYJ.cjs → chunk-VJM5XCB4.cjs} +33 -30
  76. package/dist/chunk-VJM5XCB4.cjs.map +1 -0
  77. package/dist/{chunk-ZVGEDXDP.cjs → chunk-VTS3PNMS.cjs} +2 -2
  78. package/dist/{chunk-ZVGEDXDP.cjs.map → chunk-VTS3PNMS.cjs.map} +1 -1
  79. package/dist/{chunk-OMS5QIJN.js → chunk-WLODYNLB.js} +9 -7
  80. package/dist/chunk-WLODYNLB.js.map +1 -0
  81. package/dist/{chunk-NQJE2CC7.cjs → chunk-XKRJL2QT.cjs} +25 -23
  82. package/dist/chunk-XKRJL2QT.cjs.map +1 -0
  83. package/dist/{chunk-O2JIANHK.cjs → chunk-YE2T52VZ.cjs} +33 -31
  84. package/dist/chunk-YE2T52VZ.cjs.map +1 -0
  85. package/dist/{chunk-IS5YYLTV.js → chunk-Z26M4V2M.js} +46 -3
  86. package/dist/chunk-Z26M4V2M.js.map +1 -0
  87. package/dist/{chunk-55ZCOYDF.cjs → chunk-Z45KX47P.cjs} +153 -788
  88. package/dist/chunk-Z45KX47P.cjs.map +1 -0
  89. package/dist/{chunk-BXFD7JIG.cjs → chunk-ZH4F5RMG.cjs} +26 -24
  90. package/dist/chunk-ZH4F5RMG.cjs.map +1 -0
  91. package/dist/components/legend/index.cjs +3 -3
  92. package/dist/components/legend/index.d.cts +4 -4
  93. package/dist/components/legend/index.d.ts +4 -4
  94. package/dist/components/legend/index.js +2 -2
  95. package/dist/components/tooltip/index.d.cts +1 -1
  96. package/dist/components/tooltip/index.d.ts +1 -1
  97. package/dist/hooks/index.cjs +3 -3
  98. package/dist/hooks/index.d.cts +7 -3
  99. package/dist/hooks/index.d.ts +7 -3
  100. package/dist/hooks/index.js +2 -2
  101. package/dist/index.cjs +13 -14
  102. package/dist/index.cjs.map +1 -1
  103. package/dist/index.css +8 -9
  104. package/dist/index.css.map +1 -1
  105. package/dist/index.d.cts +7 -7
  106. package/dist/index.d.ts +7 -7
  107. package/dist/index.js +12 -13
  108. package/dist/{leaderboard-chart-BSgEw_Um.d.ts → leaderboard-chart-BKYYXcg2.d.ts} +5 -9
  109. package/dist/{leaderboard-chart-COtgamhe.d.cts → leaderboard-chart-DR7CGb0L.d.cts} +5 -9
  110. package/dist/{legend-C9ahiwOt.d.cts → legend-C2grwnWk.d.cts} +1 -1
  111. package/dist/{legend-jjMmhSg3.d.ts → legend-Cj0xM5dU.d.ts} +1 -1
  112. package/dist/providers/index.cjs +3 -3
  113. package/dist/providers/index.d.cts +3 -3
  114. package/dist/providers/index.d.ts +3 -3
  115. package/dist/providers/index.js +2 -2
  116. package/dist/{themes-DQzmaSze.d.ts → themes-BmVGrYnF.d.ts} +2 -2
  117. package/dist/{themes-CVR5rmIs.d.cts → themes-CyjKm-P_.d.cts} +2 -2
  118. package/dist/{types-DQNnq5Fr.d.ts → types-CuUEszrM.d.ts} +1 -1
  119. package/dist/{types-CzdN7rUe.d.cts → types-DZordNiO.d.cts} +11 -7
  120. package/dist/{types-CzdN7rUe.d.ts → types-DZordNiO.d.ts} +11 -7
  121. package/dist/types-I67mddpr.d.cts +78 -0
  122. package/dist/types-I67mddpr.d.ts +78 -0
  123. package/dist/{types-BBwg4Evw.d.cts → types-KtOPPzPX.d.cts} +1 -1
  124. package/dist/utils/index.cjs +2 -2
  125. package/dist/utils/index.d.cts +1 -1
  126. package/dist/utils/index.d.ts +1 -1
  127. package/dist/utils/index.js +1 -1
  128. package/package.json +6 -4
  129. package/src/charts/bar-chart/bar-chart.tsx +4 -3
  130. package/src/charts/bar-chart/test/bar-chart.test.tsx +30 -0
  131. package/src/charts/conversion-funnel-chart/test/conversion-funnel-chart.test.tsx +2 -2
  132. package/src/charts/leaderboard-chart/hooks/use-leaderboard-legend-items.ts +0 -2
  133. package/src/charts/leaderboard-chart/leaderboard-chart.module.scss +9 -10
  134. package/src/charts/leaderboard-chart/leaderboard-chart.tsx +95 -70
  135. package/src/charts/leaderboard-chart/test/leaderboard-chart.test.tsx +58 -29
  136. package/src/charts/leaderboard-chart/test/use-leaderboard-legend-items.test.tsx +2 -5
  137. package/src/charts/leaderboard-chart/types.ts +4 -7
  138. package/src/charts/line-chart/line-chart.tsx +2 -3
  139. package/src/charts/pie-chart/pie-chart.tsx +2 -3
  140. package/src/charts/pie-semi-circle-chart/pie-semi-circle-chart.tsx +2 -3
  141. package/src/components/legend/index.ts +8 -1
  142. package/src/components/legend/private/base-legend.tsx +32 -22
  143. package/src/components/legend/test/legend.test.tsx +148 -52
  144. package/src/components/legend/types.ts +42 -16
  145. package/src/hooks/test/use-zero-value-display.test.tsx +206 -0
  146. package/src/hooks/use-zero-value-display.ts +52 -23
  147. package/src/index.ts +7 -1
  148. package/src/providers/chart-context/test/chart-context.test.tsx +12 -6
  149. package/src/providers/chart-context/themes.ts +6 -4
  150. package/src/types.ts +11 -7
  151. package/src/utils/get-styles.ts +1 -1
  152. package/src/utils/test/get-styles.test.ts +12 -10
  153. package/dist/chunk-55ZCOYDF.cjs.map +0 -1
  154. package/dist/chunk-7FDQGBY7.js.map +0 -1
  155. package/dist/chunk-BXFD7JIG.cjs.map +0 -1
  156. package/dist/chunk-IS5YYLTV.js.map +0 -1
  157. package/dist/chunk-KNIMXN6Z.js +0 -51
  158. package/dist/chunk-KNIMXN6Z.js.map +0 -1
  159. package/dist/chunk-NQJE2CC7.cjs.map +0 -1
  160. package/dist/chunk-O2JIANHK.cjs.map +0 -1
  161. package/dist/chunk-OMS5QIJN.js.map +0 -1
  162. package/dist/chunk-RFSHE3HL.js.map +0 -1
  163. package/dist/chunk-SSFFCBCF.js.map +0 -1
  164. package/dist/chunk-SUDERBUA.cjs +0 -51
  165. package/dist/chunk-SUDERBUA.cjs.map +0 -1
  166. package/dist/chunk-TE63Y5PX.js.map +0 -1
  167. package/dist/chunk-UFRBUT2D.cjs.map +0 -1
  168. package/dist/chunk-VPAEBI2F.js.map +0 -1
  169. package/dist/chunk-X7JL2NYJ.cjs.map +0 -1
  170. package/dist/chunk-XD2HV7M5.js.map +0 -1
  171. package/dist/chunk-YDVHT7GS.cjs.map +0 -1
  172. package/dist/types-C05PdDJa.d.cts +0 -57
  173. package/dist/types-C05PdDJa.d.ts +0 -57
  174. /package/dist/{chunk-KHQPN77E.js.map → chunk-CZGYJKG6.js.map} +0 -0
  175. /package/dist/{chunk-MDRCAGKZ.js.map → chunk-H2V4JMSA.js.map} +0 -0
  176. /package/dist/{chunk-GWBS65VC.js.map → chunk-IU4DYUAV.js.map} +0 -0
  177. /package/dist/{chunk-E62LCBGD.js.map → chunk-PXLEMUGJ.js.map} +0 -0
@@ -1,6 +1,6 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
2
2
 
3
- var _chunkUFRBUT2Dcjs = require('./chunk-UFRBUT2D.cjs');
3
+ var _chunkI35UYJJRcjs = require('./chunk-I35UYJJR.cjs');
4
4
 
5
5
 
6
6
 
@@ -9,11 +9,11 @@ var _chunkUFRBUT2Dcjs = require('./chunk-UFRBUT2D.cjs');
9
9
 
10
10
 
11
11
 
12
- var _chunkYDVHT7GScjs = require('./chunk-YDVHT7GS.cjs');
12
+ var _chunkRHHVEJHJcjs = require('./chunk-RHHVEJHJ.cjs');
13
13
 
14
14
 
15
15
 
16
- var _chunkZVGEDXDPcjs = require('./chunk-ZVGEDXDP.cjs');
16
+ var _chunkVTS3PNMScjs = require('./chunk-VTS3PNMS.cjs');
17
17
 
18
18
  // src/charts/conversion-funnel-chart/conversion-funnel-chart.tsx
19
19
  var _tooltip = require('@visx/tooltip');
@@ -115,13 +115,13 @@ var ConversionFunnelChartInternal = ({
115
115
  renderMainMetric,
116
116
  renderTooltip
117
117
  }) => {
118
- const chartId = _chunkYDVHT7GScjs.useChartId.call(void 0, providedChartId);
118
+ const chartId = _chunkRHHVEJHJcjs.useChartId.call(void 0, providedChartId);
119
119
  const {
120
120
  conversionFunnelChart: conversionFunnelChartSettings
121
- } = _chunkYDVHT7GScjs.useGlobalChartsTheme.call(void 0, );
121
+ } = _chunkRHHVEJHJcjs.useGlobalChartsTheme.call(void 0, );
122
122
  const {
123
123
  getElementStyles
124
- } = _chunkYDVHT7GScjs.useGlobalChartsContext.call(void 0, );
124
+ } = _chunkRHHVEJHJcjs.useGlobalChartsContext.call(void 0, );
125
125
  const chartRef = _react.useRef.call(void 0, null);
126
126
  const selectedBarRef = _react.useRef.call(void 0, null);
127
127
  const {
@@ -258,11 +258,11 @@ var ConversionFunnelChartInternal = ({
258
258
  };
259
259
  const isPositiveChange = _optionalChain([changeIndicator, 'optionalAccess', _6 => _6.startsWith, 'call', _7 => _7("+")]);
260
260
  const changeColor = isPositiveChange ? positiveChangeColor : negativeChangeColor;
261
- const barBackgroundColor = backgroundColor || _chunkZVGEDXDPcjs.hexToRgba.call(void 0, barColor, 0.08) || "rgba(0, 0, 0, 0.08)";
261
+ const barBackgroundColor = backgroundColor || _chunkVTS3PNMScjs.hexToRgba.call(void 0, barColor, 0.08) || "rgba(0, 0, 0, 0.08)";
262
262
  const renderDefaultMainMetric = () => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, {
263
263
  children: [/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", {
264
264
  className: conversion_funnel_chart_module_default["main-rate"],
265
- children: _chunkZVGEDXDPcjs.formatPercentage.call(void 0, mainRate)
265
+ children: _chunkVTS3PNMScjs.formatPercentage.call(void 0, mainRate)
266
266
  }), changeIndicator && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", {
267
267
  className: conversion_funnel_chart_module_default["change-indicator"],
268
268
  style: {
@@ -277,7 +277,7 @@ var ConversionFunnelChartInternal = ({
277
277
  children: step.label
278
278
  }), /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", {
279
279
  className: conversion_funnel_chart_module_default["tooltip-content"],
280
- children: [_chunkZVGEDXDPcjs.formatPercentage.call(void 0, step.rate), ` \u2022 ${_nullishCoalesce(step.count, () => ( "no"))} items`]
280
+ children: [_chunkVTS3PNMScjs.formatPercentage.call(void 0, step.rate), ` \u2022 ${_nullishCoalesce(step.count, () => ( "no"))} items`]
281
281
  })]
282
282
  });
283
283
  const isDataValid = Boolean(steps && steps.length > 0);
@@ -286,16 +286,16 @@ var ConversionFunnelChartInternal = ({
286
286
  changeIndicator,
287
287
  stepsCount: _optionalChain([steps, 'optionalAccess', _8 => _8.length]) || 0
288
288
  }), [mainRate, changeIndicator, _optionalChain([steps, 'optionalAccess', _9 => _9.length])]);
289
- _chunkYDVHT7GScjs.useChartRegistration.call(void 0, {
289
+ _chunkRHHVEJHJcjs.useChartRegistration.call(void 0, {
290
290
  chartId,
291
291
  legendItems: [],
292
292
  chartType: "conversion-funnel",
293
293
  isDataValid,
294
294
  metadata: chartMetadata
295
295
  });
296
- const prefersReducedMotion = _chunkYDVHT7GScjs.usePrefersReducedMotion.call(void 0, );
296
+ const prefersReducedMotion = _chunkRHHVEJHJcjs.usePrefersReducedMotion.call(void 0, );
297
297
  if (!isDataValid) {
298
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkUFRBUT2Dcjs.Stack, {
298
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkI35UYJJRcjs.Stack, {
299
299
  direction: "column",
300
300
  className: _clsx2.default.call(void 0, conversion_funnel_chart_module_default.conversionFunnelChart, loading && conversion_funnel_chart_module_default.loading, className),
301
301
  style: {
@@ -310,7 +310,7 @@ var ConversionFunnelChartInternal = ({
310
310
  }
311
311
  const maxRate = Math.max(...steps.map((step) => step.rate));
312
312
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, {
313
- children: [/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkUFRBUT2Dcjs.Stack, {
313
+ children: [/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkI35UYJJRcjs.Stack, {
314
314
  direction: "column",
315
315
  ref: (node) => {
316
316
  portalContainerRef(node);
@@ -353,7 +353,7 @@ var ConversionFunnelChartInternal = ({
353
353
  className: conversion_funnel_chart_module_default["step-rate"]
354
354
  }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", {
355
355
  className: conversion_funnel_chart_module_default["step-rate"],
356
- children: _chunkZVGEDXDPcjs.formatPercentage.call(void 0, step.rate)
356
+ children: _chunkVTS3PNMScjs.formatPercentage.call(void 0, step.rate)
357
357
  })]
358
358
  }), /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", {
359
359
  className: _clsx2.default.call(void 0, conversion_funnel_chart_module_default["bar-container"], isBlurred && conversion_funnel_chart_module_default.disabled),
@@ -401,13 +401,13 @@ var ConversionFunnelChartInternal = ({
401
401
  });
402
402
  };
403
403
  var ConversionFunnelChartWithProvider = (props) => {
404
- const existingContext = _react.useContext.call(void 0, _chunkYDVHT7GScjs.GlobalChartsContext);
404
+ const existingContext = _react.useContext.call(void 0, _chunkRHHVEJHJcjs.GlobalChartsContext);
405
405
  if (existingContext) {
406
406
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ConversionFunnelChartInternal, {
407
407
  ...props
408
408
  });
409
409
  }
410
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYDVHT7GScjs.GlobalChartsProvider, {
410
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRHHVEJHJcjs.GlobalChartsProvider, {
411
411
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ConversionFunnelChartInternal, {
412
412
  ...props
413
413
  })
@@ -418,4 +418,4 @@ ConversionFunnelChartWithProvider.displayName = "ConversionFunnelChart";
418
418
 
419
419
 
420
420
  exports.ConversionFunnelChartWithProvider = ConversionFunnelChartWithProvider;
421
- //# sourceMappingURL=chunk-CAFJRZPZ.cjs.map
421
+ //# sourceMappingURL=chunk-77OKCVQN.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/jetpack/jetpack/projects/js-packages/charts/dist/chunk-CAFJRZPZ.cjs","../src/charts/conversion-funnel-chart/conversion-funnel-chart.tsx","../src/charts/conversion-funnel-chart/conversion-funnel-chart.module.scss","../src/charts/conversion-funnel-chart/private/use-funnel-selection.ts"],"names":["useCallback"],"mappings":"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","file":"/home/runner/work/jetpack/jetpack/projects/js-packages/charts/dist/chunk-CAFJRZPZ.cjs","sourcesContent":[null,"import { useTooltip, useTooltipInPortal } from '@visx/tooltip';\nimport { Stack } from '@wordpress/ui';\nimport clsx from 'clsx';\nimport { useRef, useMemo, useEffect, useCallback, useContext } from 'react';\nimport { usePrefersReducedMotion } from '../../hooks';\nimport { GlobalChartsProvider, GlobalChartsContext, useChartId, useChartRegistration, useGlobalChartsTheme, useGlobalChartsContext } from '../../providers';\nimport { formatPercentage, hexToRgba } from '../../utils';\nimport styles from './conversion-funnel-chart.module.scss';\nimport { useFunnelSelection } from './private';\nimport { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from \"react/jsx-runtime\";\n/**\n * Internal ConversionFunnelChart component with chart registration\n *\n * @param props - Component props\n * @param props.chartId - Optional unique identifier for the chart\n * @param props.mainRate - Main conversion rate to highlight\n * @param props.changeIndicator - Change indicator (e.g., +2%, -1.5%)\n * @param props.steps - Array of funnel steps\n * @param props.loading - Whether the chart is in loading state\n * @param props.animation - Whether to show chart animation on initial render or not\n * @param props.className - Additional CSS class name\n * @param props.height - Height of the chart container. Falls back to style.height if set, otherwise defaults to \"100%\".\n * @param props.style - Custom styling\n * @param props.renderStepLabel - Custom render function for step labels\n * @param props.renderStepRate - Custom render function for step rates\n * @param props.renderMainMetric - Custom render function for the entire main metric section\n * @param props.renderTooltip - Custom render function for tooltip content\n * @return JSX element representing the conversion funnel chart\n */\nconst ConversionFunnelChartInternal = ({\n mainRate,\n changeIndicator,\n steps,\n loading = false,\n animation,\n className,\n chartId: providedChartId,\n height,\n style,\n renderStepLabel,\n renderStepRate,\n renderMainMetric,\n renderTooltip\n}) => {\n const chartId = useChartId(providedChartId);\n const {\n conversionFunnelChart: conversionFunnelChartSettings\n } = useGlobalChartsTheme();\n const {\n getElementStyles\n } = useGlobalChartsContext();\n const chartRef = useRef(null);\n const selectedBarRef = useRef(null);\n\n // Use @visx/tooltip hooks for tooltip positioning\n const {\n tooltipData,\n tooltipLeft,\n tooltipTop,\n tooltipOpen,\n showTooltip,\n hideTooltip\n } = useTooltip();\n\n // Use custom hook for selection management\n const {\n handleBarClick,\n handleBarKeyDown,\n clearSelection,\n getStepState\n } = useFunnelSelection(hideTooltip);\n const {\n containerRef: portalContainerRef,\n TooltipInPortal,\n containerBounds\n } = useTooltipInPortal({\n // use TooltipWithBounds for boundary detection\n detectBounds: true,\n // when tooltip containers are scrolled, this will correctly update the Tooltip position\n scroll: true\n });\n\n // Wrapper to clear selectedBarRef after clearing selection\n const clearSelectionAndRef = useCallback(() => {\n clearSelection();\n selectedBarRef.current = null;\n hideTooltip();\n }, [clearSelection, hideTooltip]);\n\n // Helper function to show tooltip at specific coordinates\n const showTooltipAt = useCallback((step, x, y) => {\n showTooltip({\n tooltipData: step,\n tooltipLeft: x,\n tooltipTop: y - 10\n });\n }, [showTooltip]);\n\n // Helper function to get tooltip coordinates for mouse events\n // Use clientX/Y and subtract containerBounds to cancel out any stale offset.\n // TooltipInPortal calculates: tooltipLeft + containerBounds.left + scrollX\n // By passing (clientX - containerBounds.left), we get correct page coordinates\n // regardless of whether bounds are stale (e.g., after dashboard customization).\n const getMouseTooltipCoords = useCallback(event => {\n // Don't return coords until container bounds are measured\n if (containerBounds.width === 0 || containerBounds.height === 0) {\n return null;\n }\n return {\n x: event.clientX - containerBounds.left,\n y: event.clientY - containerBounds.top\n };\n }, [containerBounds.width, containerBounds.height, containerBounds.left, containerBounds.top]);\n\n // Helper function to get tooltip coordinates for keyboard events\n // Use fresh getBoundingClientRect() and subtract containerBounds to cancel out stale offset.\n const getKeyboardTooltipCoords = useCallback(event => {\n // Don't return coords until container bounds are measured\n if (containerBounds.width === 0 || containerBounds.height === 0) {\n return null;\n }\n const rect = event.currentTarget.getBoundingClientRect();\n // Calculate center of element in viewport coordinates, then subtract containerBounds\n const x = rect.left + rect.width / 2 - containerBounds.left;\n const y = rect.top - containerBounds.top;\n return {\n x,\n y\n };\n }, [containerBounds.width, containerBounds.height, containerBounds.left, containerBounds.top]);\n\n // Helper function to handle step interaction (both click and keyboard)\n const handleStepInteraction = useCallback((step, event, interactionType) => {\n // Store reference to the interacted element\n selectedBarRef.current = event.currentTarget;\n\n // Check if deselecting the same step\n const {\n isClicked\n } = getStepState(step.id);\n if (isClicked) {\n // Deselecting - clear selection (tooltip will be hidden by hook)\n if (interactionType === 'click') {\n handleBarClick(step.id);\n } else {\n handleBarKeyDown(step.id, event);\n }\n return;\n }\n\n // Selecting - handle selection and show tooltip\n if (interactionType === 'click') {\n handleBarClick(step.id);\n const coords = getMouseTooltipCoords(event);\n if (coords) {\n showTooltipAt(step, coords.x, coords.y);\n }\n } else {\n handleBarKeyDown(step.id, event);\n const coords = getKeyboardTooltipCoords(event);\n if (coords) {\n showTooltipAt(step, coords.x, coords.y);\n }\n }\n }, [getStepState, handleBarClick, handleBarKeyDown, showTooltipAt, getMouseTooltipCoords, getKeyboardTooltipCoords]);\n\n // Create handler factories to avoid arrow functions in JSX\n const stepHandlers = useMemo(() => {\n const handlers = new Map();\n steps.forEach(step => {\n const onClick = event => {\n event.stopPropagation();\n handleStepInteraction(step, event, 'click');\n };\n const onKeyDown = event => {\n if (event.key === 'Enter' || event.key === ' ') {\n handleStepInteraction(step, event, 'keyboard');\n } else {\n // For other keys (like Escape), just handle the selection\n selectedBarRef.current = event.currentTarget;\n handleBarKeyDown(step.id, event);\n }\n };\n handlers.set(step.id, {\n onClick,\n onKeyDown\n });\n });\n return handlers;\n }, [steps, handleStepInteraction, handleBarKeyDown]);\n\n // Handle document-level click to clear selection when clicking outside selected bar\n useEffect(() => {\n const handleDocumentClick = event => {\n // Only clear selection if there's an active selection and click is outside the selected bar\n if (selectedBarRef.current && !selectedBarRef.current.contains(event.target)) {\n clearSelectionAndRef();\n }\n };\n document.addEventListener('mousedown', handleDocumentClick);\n return () => {\n document.removeEventListener('mousedown', handleDocumentClick);\n };\n }, [clearSelectionAndRef]);\n\n // Resolve height: explicit height prop > style.height > default 100%\n const resolvedHeight = height ?? style?.height ?? '100%';\n\n // Get component settings from theme with fallbacks\n const {\n primaryColor,\n backgroundColor,\n positiveChangeColor,\n negativeChangeColor\n } = conversionFunnelChartSettings;\n\n // Resolve bar color using getElementStyles with primaryColor as override\n const {\n color: barColor\n } = getElementStyles ? getElementStyles({\n index: 0,\n overrideColor: primaryColor\n }) : {\n color: primaryColor || '#000000'\n };\n\n // Determine change indicator color\n const isPositiveChange = changeIndicator?.startsWith('+');\n const changeColor = isPositiveChange ? positiveChangeColor : negativeChangeColor;\n\n // Create light background version of primary color if not set\n const barBackgroundColor = backgroundColor || hexToRgba(barColor, 0.08) || 'rgba(0, 0, 0, 0.08)';\n\n // Default main metric rendering function\n const renderDefaultMainMetric = () => /*#__PURE__*/_jsxs(_Fragment, {\n children: [/*#__PURE__*/_jsx(\"span\", {\n className: styles['main-rate'],\n children: formatPercentage(mainRate)\n }), changeIndicator && /*#__PURE__*/_jsx(\"span\", {\n className: styles['change-indicator'],\n style: {\n color: changeColor\n },\n children: changeIndicator\n })]\n });\n\n // Default tooltip rendering function\n const renderDefaultTooltip = step => /*#__PURE__*/_jsxs(_Fragment, {\n children: [/*#__PURE__*/_jsx(\"div\", {\n className: styles['tooltip-title'],\n children: step.label\n }), /*#__PURE__*/_jsxs(\"div\", {\n className: styles['tooltip-content'],\n children: [formatPercentage(step.rate), ` • ${step.count ?? 'no'} items`]\n })]\n });\n\n // Validate data\n const isDataValid = Boolean(steps && steps.length > 0);\n\n // Memoize metadata to prevent unnecessary re-registration\n const chartMetadata = useMemo(() => ({\n mainRate,\n changeIndicator,\n stepsCount: steps?.length || 0\n }), [mainRate, changeIndicator, steps?.length]);\n useChartRegistration({\n chartId,\n legendItems: [],\n chartType: 'conversion-funnel',\n isDataValid,\n metadata: chartMetadata\n });\n const prefersReducedMotion = usePrefersReducedMotion();\n\n // Handle empty or undefined data\n if (!isDataValid) {\n return /*#__PURE__*/_jsx(Stack, {\n direction: \"column\",\n className: clsx(styles.conversionFunnelChart, loading && styles.loading, className),\n style: {\n ...style,\n height: resolvedHeight\n },\n children: /*#__PURE__*/_jsx(\"div\", {\n className: styles['empty-state'],\n children: loading ? 'Loading...' : 'No data available'\n })\n });\n }\n\n // Calculate bar heights relative to the maximum (first step)\n const maxRate = Math.max(...steps.map(step => step.rate));\n return /*#__PURE__*/_jsxs(_Fragment, {\n children: [/*#__PURE__*/_jsxs(Stack, {\n direction: \"column\",\n ref: node => {\n // Set containerRef for @visx coordinate system\n portalContainerRef(node);\n chartRef.current = node;\n },\n className: clsx(styles.conversionFunnelChart, loading && styles.loading, className),\n style: {\n ...style,\n height: resolvedHeight\n },\n children: [renderMainMetric ? renderMainMetric({\n mainRate,\n changeIndicator,\n className: styles['main-metric'],\n changeColor\n }) : /*#__PURE__*/_jsx(\"div\", {\n className: styles['main-metric'],\n children: renderDefaultMainMetric()\n }), /*#__PURE__*/_jsx(\"div\", {\n className: styles['funnel-container'],\n children: steps.map((step, index) => {\n const barHeight = step.rate / maxRate * 100;\n const {\n isBlurred\n } = getStepState(step.id);\n return /*#__PURE__*/_jsxs(\"div\", {\n className: clsx(styles['funnel-step'], isBlurred && styles.blurred),\n children: [/*#__PURE__*/_jsxs(\"div\", {\n className: styles['step-header'],\n children: [renderStepLabel ? renderStepLabel({\n step,\n index,\n className: styles['step-label']\n }) : /*#__PURE__*/_jsx(\"span\", {\n className: styles['step-label'],\n children: step.label\n }), renderStepRate ? renderStepRate({\n step,\n index,\n className: styles['step-rate']\n }) : /*#__PURE__*/_jsx(\"span\", {\n className: styles['step-rate'],\n children: formatPercentage(step.rate)\n })]\n }), /*#__PURE__*/_jsx(\"div\", {\n className: clsx(styles['bar-container'], isBlurred && styles.disabled),\n onClick: stepHandlers.get(step.id)?.onClick,\n onKeyDown: stepHandlers.get(step.id)?.onKeyDown,\n role: \"button\",\n tabIndex: isBlurred ? -1 : 0,\n \"aria-label\": step.label,\n style: {\n backgroundColor: barBackgroundColor\n },\n children: /*#__PURE__*/_jsx(\"div\", {\n className: clsx(styles['funnel-bar'], {\n [styles['funnel-bar--animated']]: animation && !loading && !prefersReducedMotion\n }),\n style: {\n height: `${barHeight}%`,\n backgroundColor: barColor\n }\n })\n })]\n }, step.id);\n })\n })]\n }), tooltipOpen && tooltipData && (() => {\n const tooltipContent = renderTooltip ? renderTooltip({\n step: tooltipData,\n index: steps.findIndex(s => s.id === tooltipData.id),\n top: tooltipTop,\n left: tooltipLeft,\n className: styles['tooltip-wrapper']\n }) : renderDefaultTooltip(tooltipData);\n\n // Don't render tooltip if renderTooltip returns falsy\n if (!tooltipContent) return null;\n return /*#__PURE__*/_jsx(TooltipInPortal\n // set this to random so it correctly updates with parent bounds\n , {\n top: tooltipTop,\n left: tooltipLeft,\n className: styles['tooltip-wrapper'],\n children: tooltipContent\n }, Math.random());\n })()]\n });\n};\n\n/**\n * ConversionFunnelChart component with provider wrapper\n *\n * @param props - Component props\n * @return JSX element representing the conversion funnel chart\n */\nconst ConversionFunnelChartWithProvider = props => {\n const existingContext = useContext(GlobalChartsContext);\n\n // If we're already in a GlobalChartsProvider context, don't create a new one\n if (existingContext) {\n return /*#__PURE__*/_jsx(ConversionFunnelChartInternal, {\n ...props\n });\n }\n\n // Otherwise, create our own GlobalChartsProvider\n return /*#__PURE__*/_jsx(GlobalChartsProvider, {\n children: /*#__PURE__*/_jsx(ConversionFunnelChartInternal, {\n ...props\n })\n });\n};\nConversionFunnelChartWithProvider.displayName = 'ConversionFunnelChart';\nexport { ConversionFunnelChartWithProvider as default };","import 'css-chunk:src/charts/conversion-funnel-chart/conversion-funnel-chart.module.scss';export default {\n \"conversionFunnelChart\": \"a8ccharts-lK-YNK\",\n \"loading\": \"a8ccharts-DbHKK5\",\n \"main-metric\": \"a8ccharts-61WPYr\",\n \"main-rate\": \"a8ccharts-RRRI6x\",\n \"change-indicator\": \"a8ccharts-661iwx\",\n \"funnel-container\": \"a8ccharts-Z7EGnW\",\n \"funnel-step\": \"a8ccharts-VqFY0l\",\n \"blurred\": \"a8ccharts-7dTRBs\",\n \"step-header\": \"a8ccharts-2JsQiV\",\n \"step-label\": \"a8ccharts-6OabC4\",\n \"step-rate\": \"a8ccharts-9wSZ6n\",\n \"bar-container\": \"a8ccharts-sSmCTi\",\n \"disabled\": \"a8ccharts-PLWVAW\",\n \"funnel-bar\": \"a8ccharts-EzczI-\",\n \"selected\": \"a8ccharts-wNpZEu\",\n \"funnel-bar--animated\": \"a8ccharts-68HQJl\",\n \"stretch\": \"a8ccharts-CmtieZ\",\n \"tooltip-wrapper\": \"a8ccharts-2TeoCn\",\n \"tooltip-title\": \"a8ccharts-jkRitH\",\n \"tooltip-content\": \"a8ccharts-8jgT-3\",\n \"empty-state\": \"a8ccharts-Ml6MMr\"\n};","import { useCallback, useState } from 'react';\n\n/**\n * Custom hook to manage funnel bar selection state and interactions\n * @param hideTooltip - Function to hide tooltip when selection is cleared\n * @return Object containing selection state and event handlers\n */\nexport const useFunnelSelection = ( hideTooltip?: () => void ) => {\n\tconst [ clickedStep, setClickedStep ] = useState< string | null >( null );\n\n\t// Handle bar click\n\tconst handleBarClick = useCallback(\n\t\t( stepId: string ) => {\n\t\t\tif ( clickedStep === stepId ) {\n\t\t\t\t// If clicking the same step, deselect it\n\t\t\t\tsetClickedStep( null );\n\t\t\t\thideTooltip?.();\n\t\t\t} else {\n\t\t\t\t// Otherwise, select this step\n\t\t\t\tsetClickedStep( stepId );\n\t\t\t}\n\t\t},\n\t\t[ clickedStep, hideTooltip ]\n\t);\n\n\t// Handle bar keydown\n\tconst handleBarKeyDown = useCallback(\n\t\t( stepId: string, event: React.KeyboardEvent ) => {\n\t\t\tif ( event.key === 'Enter' || event.key === ' ' ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tif ( clickedStep === stepId ) {\n\t\t\t\t\tsetClickedStep( null );\n\t\t\t\t\thideTooltip?.();\n\t\t\t\t} else {\n\t\t\t\t\tsetClickedStep( stepId );\n\t\t\t\t}\n\t\t\t} else if ( event.key === 'Escape' ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tsetClickedStep( null );\n\t\t\t\thideTooltip?.();\n\t\t\t}\n\t\t},\n\t\t[ clickedStep, hideTooltip ]\n\t);\n\n\t// Clear selection (for chart-level click)\n\tconst clearSelection = useCallback( () => {\n\t\tsetClickedStep( null );\n\t\thideTooltip?.();\n\t}, [ hideTooltip ] );\n\n\t// Get step state helpers\n\tconst getStepState = useCallback(\n\t\t( stepId: string ) => ( {\n\t\t\tisClicked: clickedStep === stepId,\n\t\t\tisBlurred: clickedStep !== null && clickedStep !== stepId,\n\t\t} ),\n\t\t[ clickedStep ]\n\t);\n\n\treturn {\n\t\tclickedStep,\n\t\thandleBarClick,\n\t\thandleBarKeyDown,\n\t\tclearSelection,\n\t\tgetStepState,\n\t};\n};\n"]}
1
+ {"version":3,"sources":["/home/runner/work/jetpack/jetpack/projects/js-packages/charts/dist/chunk-77OKCVQN.cjs","../src/charts/conversion-funnel-chart/conversion-funnel-chart.tsx","../src/charts/conversion-funnel-chart/conversion-funnel-chart.module.scss","../src/charts/conversion-funnel-chart/private/use-funnel-selection.ts"],"names":["useCallback"],"mappings":"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","file":"/home/runner/work/jetpack/jetpack/projects/js-packages/charts/dist/chunk-77OKCVQN.cjs","sourcesContent":[null,"import { useTooltip, useTooltipInPortal } from '@visx/tooltip';\nimport { Stack } from '@wordpress/ui';\nimport clsx from 'clsx';\nimport { useRef, useMemo, useEffect, useCallback, useContext } from 'react';\nimport { usePrefersReducedMotion } from '../../hooks';\nimport { GlobalChartsProvider, GlobalChartsContext, useChartId, useChartRegistration, useGlobalChartsTheme, useGlobalChartsContext } from '../../providers';\nimport { formatPercentage, hexToRgba } from '../../utils';\nimport styles from './conversion-funnel-chart.module.scss';\nimport { useFunnelSelection } from './private';\nimport { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from \"react/jsx-runtime\";\n/**\n * Internal ConversionFunnelChart component with chart registration\n *\n * @param props - Component props\n * @param props.chartId - Optional unique identifier for the chart\n * @param props.mainRate - Main conversion rate to highlight\n * @param props.changeIndicator - Change indicator (e.g., +2%, -1.5%)\n * @param props.steps - Array of funnel steps\n * @param props.loading - Whether the chart is in loading state\n * @param props.animation - Whether to show chart animation on initial render or not\n * @param props.className - Additional CSS class name\n * @param props.height - Height of the chart container. Falls back to style.height if set, otherwise defaults to \"100%\".\n * @param props.style - Custom styling\n * @param props.renderStepLabel - Custom render function for step labels\n * @param props.renderStepRate - Custom render function for step rates\n * @param props.renderMainMetric - Custom render function for the entire main metric section\n * @param props.renderTooltip - Custom render function for tooltip content\n * @return JSX element representing the conversion funnel chart\n */\nconst ConversionFunnelChartInternal = ({\n mainRate,\n changeIndicator,\n steps,\n loading = false,\n animation,\n className,\n chartId: providedChartId,\n height,\n style,\n renderStepLabel,\n renderStepRate,\n renderMainMetric,\n renderTooltip\n}) => {\n const chartId = useChartId(providedChartId);\n const {\n conversionFunnelChart: conversionFunnelChartSettings\n } = useGlobalChartsTheme();\n const {\n getElementStyles\n } = useGlobalChartsContext();\n const chartRef = useRef(null);\n const selectedBarRef = useRef(null);\n\n // Use @visx/tooltip hooks for tooltip positioning\n const {\n tooltipData,\n tooltipLeft,\n tooltipTop,\n tooltipOpen,\n showTooltip,\n hideTooltip\n } = useTooltip();\n\n // Use custom hook for selection management\n const {\n handleBarClick,\n handleBarKeyDown,\n clearSelection,\n getStepState\n } = useFunnelSelection(hideTooltip);\n const {\n containerRef: portalContainerRef,\n TooltipInPortal,\n containerBounds\n } = useTooltipInPortal({\n // use TooltipWithBounds for boundary detection\n detectBounds: true,\n // when tooltip containers are scrolled, this will correctly update the Tooltip position\n scroll: true\n });\n\n // Wrapper to clear selectedBarRef after clearing selection\n const clearSelectionAndRef = useCallback(() => {\n clearSelection();\n selectedBarRef.current = null;\n hideTooltip();\n }, [clearSelection, hideTooltip]);\n\n // Helper function to show tooltip at specific coordinates\n const showTooltipAt = useCallback((step, x, y) => {\n showTooltip({\n tooltipData: step,\n tooltipLeft: x,\n tooltipTop: y - 10\n });\n }, [showTooltip]);\n\n // Helper function to get tooltip coordinates for mouse events\n // Use clientX/Y and subtract containerBounds to cancel out any stale offset.\n // TooltipInPortal calculates: tooltipLeft + containerBounds.left + scrollX\n // By passing (clientX - containerBounds.left), we get correct page coordinates\n // regardless of whether bounds are stale (e.g., after dashboard customization).\n const getMouseTooltipCoords = useCallback(event => {\n // Don't return coords until container bounds are measured\n if (containerBounds.width === 0 || containerBounds.height === 0) {\n return null;\n }\n return {\n x: event.clientX - containerBounds.left,\n y: event.clientY - containerBounds.top\n };\n }, [containerBounds.width, containerBounds.height, containerBounds.left, containerBounds.top]);\n\n // Helper function to get tooltip coordinates for keyboard events\n // Use fresh getBoundingClientRect() and subtract containerBounds to cancel out stale offset.\n const getKeyboardTooltipCoords = useCallback(event => {\n // Don't return coords until container bounds are measured\n if (containerBounds.width === 0 || containerBounds.height === 0) {\n return null;\n }\n const rect = event.currentTarget.getBoundingClientRect();\n // Calculate center of element in viewport coordinates, then subtract containerBounds\n const x = rect.left + rect.width / 2 - containerBounds.left;\n const y = rect.top - containerBounds.top;\n return {\n x,\n y\n };\n }, [containerBounds.width, containerBounds.height, containerBounds.left, containerBounds.top]);\n\n // Helper function to handle step interaction (both click and keyboard)\n const handleStepInteraction = useCallback((step, event, interactionType) => {\n // Store reference to the interacted element\n selectedBarRef.current = event.currentTarget;\n\n // Check if deselecting the same step\n const {\n isClicked\n } = getStepState(step.id);\n if (isClicked) {\n // Deselecting - clear selection (tooltip will be hidden by hook)\n if (interactionType === 'click') {\n handleBarClick(step.id);\n } else {\n handleBarKeyDown(step.id, event);\n }\n return;\n }\n\n // Selecting - handle selection and show tooltip\n if (interactionType === 'click') {\n handleBarClick(step.id);\n const coords = getMouseTooltipCoords(event);\n if (coords) {\n showTooltipAt(step, coords.x, coords.y);\n }\n } else {\n handleBarKeyDown(step.id, event);\n const coords = getKeyboardTooltipCoords(event);\n if (coords) {\n showTooltipAt(step, coords.x, coords.y);\n }\n }\n }, [getStepState, handleBarClick, handleBarKeyDown, showTooltipAt, getMouseTooltipCoords, getKeyboardTooltipCoords]);\n\n // Create handler factories to avoid arrow functions in JSX\n const stepHandlers = useMemo(() => {\n const handlers = new Map();\n steps.forEach(step => {\n const onClick = event => {\n event.stopPropagation();\n handleStepInteraction(step, event, 'click');\n };\n const onKeyDown = event => {\n if (event.key === 'Enter' || event.key === ' ') {\n handleStepInteraction(step, event, 'keyboard');\n } else {\n // For other keys (like Escape), just handle the selection\n selectedBarRef.current = event.currentTarget;\n handleBarKeyDown(step.id, event);\n }\n };\n handlers.set(step.id, {\n onClick,\n onKeyDown\n });\n });\n return handlers;\n }, [steps, handleStepInteraction, handleBarKeyDown]);\n\n // Handle document-level click to clear selection when clicking outside selected bar\n useEffect(() => {\n const handleDocumentClick = event => {\n // Only clear selection if there's an active selection and click is outside the selected bar\n if (selectedBarRef.current && !selectedBarRef.current.contains(event.target)) {\n clearSelectionAndRef();\n }\n };\n document.addEventListener('mousedown', handleDocumentClick);\n return () => {\n document.removeEventListener('mousedown', handleDocumentClick);\n };\n }, [clearSelectionAndRef]);\n\n // Resolve height: explicit height prop > style.height > default 100%\n const resolvedHeight = height ?? style?.height ?? '100%';\n\n // Get component settings from theme with fallbacks\n const {\n primaryColor,\n backgroundColor,\n positiveChangeColor,\n negativeChangeColor\n } = conversionFunnelChartSettings;\n\n // Resolve bar color using getElementStyles with primaryColor as override\n const {\n color: barColor\n } = getElementStyles ? getElementStyles({\n index: 0,\n overrideColor: primaryColor\n }) : {\n color: primaryColor || '#000000'\n };\n\n // Determine change indicator color\n const isPositiveChange = changeIndicator?.startsWith('+');\n const changeColor = isPositiveChange ? positiveChangeColor : negativeChangeColor;\n\n // Create light background version of primary color if not set\n const barBackgroundColor = backgroundColor || hexToRgba(barColor, 0.08) || 'rgba(0, 0, 0, 0.08)';\n\n // Default main metric rendering function\n const renderDefaultMainMetric = () => /*#__PURE__*/_jsxs(_Fragment, {\n children: [/*#__PURE__*/_jsx(\"span\", {\n className: styles['main-rate'],\n children: formatPercentage(mainRate)\n }), changeIndicator && /*#__PURE__*/_jsx(\"span\", {\n className: styles['change-indicator'],\n style: {\n color: changeColor\n },\n children: changeIndicator\n })]\n });\n\n // Default tooltip rendering function\n const renderDefaultTooltip = step => /*#__PURE__*/_jsxs(_Fragment, {\n children: [/*#__PURE__*/_jsx(\"div\", {\n className: styles['tooltip-title'],\n children: step.label\n }), /*#__PURE__*/_jsxs(\"div\", {\n className: styles['tooltip-content'],\n children: [formatPercentage(step.rate), ` • ${step.count ?? 'no'} items`]\n })]\n });\n\n // Validate data\n const isDataValid = Boolean(steps && steps.length > 0);\n\n // Memoize metadata to prevent unnecessary re-registration\n const chartMetadata = useMemo(() => ({\n mainRate,\n changeIndicator,\n stepsCount: steps?.length || 0\n }), [mainRate, changeIndicator, steps?.length]);\n useChartRegistration({\n chartId,\n legendItems: [],\n chartType: 'conversion-funnel',\n isDataValid,\n metadata: chartMetadata\n });\n const prefersReducedMotion = usePrefersReducedMotion();\n\n // Handle empty or undefined data\n if (!isDataValid) {\n return /*#__PURE__*/_jsx(Stack, {\n direction: \"column\",\n className: clsx(styles.conversionFunnelChart, loading && styles.loading, className),\n style: {\n ...style,\n height: resolvedHeight\n },\n children: /*#__PURE__*/_jsx(\"div\", {\n className: styles['empty-state'],\n children: loading ? 'Loading...' : 'No data available'\n })\n });\n }\n\n // Calculate bar heights relative to the maximum (first step)\n const maxRate = Math.max(...steps.map(step => step.rate));\n return /*#__PURE__*/_jsxs(_Fragment, {\n children: [/*#__PURE__*/_jsxs(Stack, {\n direction: \"column\",\n ref: node => {\n // Set containerRef for @visx coordinate system\n portalContainerRef(node);\n chartRef.current = node;\n },\n className: clsx(styles.conversionFunnelChart, loading && styles.loading, className),\n style: {\n ...style,\n height: resolvedHeight\n },\n children: [renderMainMetric ? renderMainMetric({\n mainRate,\n changeIndicator,\n className: styles['main-metric'],\n changeColor\n }) : /*#__PURE__*/_jsx(\"div\", {\n className: styles['main-metric'],\n children: renderDefaultMainMetric()\n }), /*#__PURE__*/_jsx(\"div\", {\n className: styles['funnel-container'],\n children: steps.map((step, index) => {\n const barHeight = step.rate / maxRate * 100;\n const {\n isBlurred\n } = getStepState(step.id);\n return /*#__PURE__*/_jsxs(\"div\", {\n className: clsx(styles['funnel-step'], isBlurred && styles.blurred),\n children: [/*#__PURE__*/_jsxs(\"div\", {\n className: styles['step-header'],\n children: [renderStepLabel ? renderStepLabel({\n step,\n index,\n className: styles['step-label']\n }) : /*#__PURE__*/_jsx(\"span\", {\n className: styles['step-label'],\n children: step.label\n }), renderStepRate ? renderStepRate({\n step,\n index,\n className: styles['step-rate']\n }) : /*#__PURE__*/_jsx(\"span\", {\n className: styles['step-rate'],\n children: formatPercentage(step.rate)\n })]\n }), /*#__PURE__*/_jsx(\"div\", {\n className: clsx(styles['bar-container'], isBlurred && styles.disabled),\n onClick: stepHandlers.get(step.id)?.onClick,\n onKeyDown: stepHandlers.get(step.id)?.onKeyDown,\n role: \"button\",\n tabIndex: isBlurred ? -1 : 0,\n \"aria-label\": step.label,\n style: {\n backgroundColor: barBackgroundColor\n },\n children: /*#__PURE__*/_jsx(\"div\", {\n className: clsx(styles['funnel-bar'], {\n [styles['funnel-bar--animated']]: animation && !loading && !prefersReducedMotion\n }),\n style: {\n height: `${barHeight}%`,\n backgroundColor: barColor\n }\n })\n })]\n }, step.id);\n })\n })]\n }), tooltipOpen && tooltipData && (() => {\n const tooltipContent = renderTooltip ? renderTooltip({\n step: tooltipData,\n index: steps.findIndex(s => s.id === tooltipData.id),\n top: tooltipTop,\n left: tooltipLeft,\n className: styles['tooltip-wrapper']\n }) : renderDefaultTooltip(tooltipData);\n\n // Don't render tooltip if renderTooltip returns falsy\n if (!tooltipContent) return null;\n return /*#__PURE__*/_jsx(TooltipInPortal\n // set this to random so it correctly updates with parent bounds\n , {\n top: tooltipTop,\n left: tooltipLeft,\n className: styles['tooltip-wrapper'],\n children: tooltipContent\n }, Math.random());\n })()]\n });\n};\n\n/**\n * ConversionFunnelChart component with provider wrapper\n *\n * @param props - Component props\n * @return JSX element representing the conversion funnel chart\n */\nconst ConversionFunnelChartWithProvider = props => {\n const existingContext = useContext(GlobalChartsContext);\n\n // If we're already in a GlobalChartsProvider context, don't create a new one\n if (existingContext) {\n return /*#__PURE__*/_jsx(ConversionFunnelChartInternal, {\n ...props\n });\n }\n\n // Otherwise, create our own GlobalChartsProvider\n return /*#__PURE__*/_jsx(GlobalChartsProvider, {\n children: /*#__PURE__*/_jsx(ConversionFunnelChartInternal, {\n ...props\n })\n });\n};\nConversionFunnelChartWithProvider.displayName = 'ConversionFunnelChart';\nexport { ConversionFunnelChartWithProvider as default };","import 'css-chunk:src/charts/conversion-funnel-chart/conversion-funnel-chart.module.scss';export default {\n \"conversionFunnelChart\": \"a8ccharts-lK-YNK\",\n \"loading\": \"a8ccharts-DbHKK5\",\n \"main-metric\": \"a8ccharts-61WPYr\",\n \"main-rate\": \"a8ccharts-RRRI6x\",\n \"change-indicator\": \"a8ccharts-661iwx\",\n \"funnel-container\": \"a8ccharts-Z7EGnW\",\n \"funnel-step\": \"a8ccharts-VqFY0l\",\n \"blurred\": \"a8ccharts-7dTRBs\",\n \"step-header\": \"a8ccharts-2JsQiV\",\n \"step-label\": \"a8ccharts-6OabC4\",\n \"step-rate\": \"a8ccharts-9wSZ6n\",\n \"bar-container\": \"a8ccharts-sSmCTi\",\n \"disabled\": \"a8ccharts-PLWVAW\",\n \"funnel-bar\": \"a8ccharts-EzczI-\",\n \"selected\": \"a8ccharts-wNpZEu\",\n \"funnel-bar--animated\": \"a8ccharts-68HQJl\",\n \"stretch\": \"a8ccharts-CmtieZ\",\n \"tooltip-wrapper\": \"a8ccharts-2TeoCn\",\n \"tooltip-title\": \"a8ccharts-jkRitH\",\n \"tooltip-content\": \"a8ccharts-8jgT-3\",\n \"empty-state\": \"a8ccharts-Ml6MMr\"\n};","import { useCallback, useState } from 'react';\n\n/**\n * Custom hook to manage funnel bar selection state and interactions\n * @param hideTooltip - Function to hide tooltip when selection is cleared\n * @return Object containing selection state and event handlers\n */\nexport const useFunnelSelection = ( hideTooltip?: () => void ) => {\n\tconst [ clickedStep, setClickedStep ] = useState< string | null >( null );\n\n\t// Handle bar click\n\tconst handleBarClick = useCallback(\n\t\t( stepId: string ) => {\n\t\t\tif ( clickedStep === stepId ) {\n\t\t\t\t// If clicking the same step, deselect it\n\t\t\t\tsetClickedStep( null );\n\t\t\t\thideTooltip?.();\n\t\t\t} else {\n\t\t\t\t// Otherwise, select this step\n\t\t\t\tsetClickedStep( stepId );\n\t\t\t}\n\t\t},\n\t\t[ clickedStep, hideTooltip ]\n\t);\n\n\t// Handle bar keydown\n\tconst handleBarKeyDown = useCallback(\n\t\t( stepId: string, event: React.KeyboardEvent ) => {\n\t\t\tif ( event.key === 'Enter' || event.key === ' ' ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tif ( clickedStep === stepId ) {\n\t\t\t\t\tsetClickedStep( null );\n\t\t\t\t\thideTooltip?.();\n\t\t\t\t} else {\n\t\t\t\t\tsetClickedStep( stepId );\n\t\t\t\t}\n\t\t\t} else if ( event.key === 'Escape' ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tsetClickedStep( null );\n\t\t\t\thideTooltip?.();\n\t\t\t}\n\t\t},\n\t\t[ clickedStep, hideTooltip ]\n\t);\n\n\t// Clear selection (for chart-level click)\n\tconst clearSelection = useCallback( () => {\n\t\tsetClickedStep( null );\n\t\thideTooltip?.();\n\t}, [ hideTooltip ] );\n\n\t// Get step state helpers\n\tconst getStepState = useCallback(\n\t\t( stepId: string ) => ( {\n\t\t\tisClicked: clickedStep === stepId,\n\t\t\tisBlurred: clickedStep !== null && clickedStep !== stepId,\n\t\t} ),\n\t\t[ clickedStep ]\n\t);\n\n\treturn {\n\t\tclickedStep,\n\t\thandleBarClick,\n\t\thandleBarKeyDown,\n\t\tclearSelection,\n\t\tgetStepState,\n\t};\n};\n"]}
@@ -1,13 +1,13 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
2
2
 
3
- var _chunkX7JL2NYJcjs = require('./chunk-X7JL2NYJ.cjs');
3
+ var _chunkVJM5XCB4cjs = require('./chunk-VJM5XCB4.cjs');
4
4
 
5
5
 
6
6
  var _chunkASLARV7Lcjs = require('./chunk-ASLARV7L.cjs');
7
7
 
8
8
 
9
9
 
10
- var _chunkYDVHT7GScjs = require('./chunk-YDVHT7GS.cjs');
10
+ var _chunkRHHVEJHJcjs = require('./chunk-RHHVEJHJ.cjs');
11
11
 
12
12
  // src/charts/bar-list-chart/bar-list-chart.tsx
13
13
  var _numberformatters = require('@automattic/number-formatters');
@@ -164,7 +164,7 @@ var BarListChartInternal = ({
164
164
  yOffset: _nullishCoalesce(options.yOffset, () => ( getDefaultYOffset(data, yScale, height, isMultiSeries)))
165
165
  };
166
166
  }, [options, width, data, height]);
167
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkX7JL2NYJcjs.BarChart, {
167
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVJM5XCB4cjs.BarChart, {
168
168
  orientation: "horizontal",
169
169
  gridVisibility: "none",
170
170
  data,
@@ -197,13 +197,13 @@ var BarListChartInternal = ({
197
197
  });
198
198
  };
199
199
  var BarListChart = (props) => {
200
- const existingContext = _react.useContext.call(void 0, _chunkYDVHT7GScjs.GlobalChartsContext);
200
+ const existingContext = _react.useContext.call(void 0, _chunkRHHVEJHJcjs.GlobalChartsContext);
201
201
  if (existingContext) {
202
202
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, BarListChartInternal, {
203
203
  ...props
204
204
  });
205
205
  }
206
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYDVHT7GScjs.GlobalChartsProvider, {
206
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRHHVEJHJcjs.GlobalChartsProvider, {
207
207
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, BarListChartInternal, {
208
208
  ...props
209
209
  })
@@ -216,4 +216,4 @@ var BarListChartResponsive = _chunkASLARV7Lcjs.withResponsive.call(void 0, BarLi
216
216
 
217
217
 
218
218
  exports.BarListChart = BarListChart; exports.BarListChartResponsive = BarListChartResponsive;
219
- //# sourceMappingURL=chunk-K6TGILHX.cjs.map
219
+ //# sourceMappingURL=chunk-7FQX4ALL.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/jetpack/jetpack/projects/js-packages/charts/dist/chunk-K6TGILHX.cjs","../src/charts/bar-list-chart/bar-list-chart.tsx"],"names":[],"mappings":"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","file":"/home/runner/work/jetpack/jetpack/projects/js-packages/charts/dist/chunk-K6TGILHX.cjs","sourcesContent":[null,"import { formatNumberCompact } from '@automattic/number-formatters';\nimport { Group } from '@visx/group';\nimport { createScale, scaleBand } from '@visx/scale';\nimport { Text } from '@visx/text';\nimport { useContext, useMemo } from 'react';\nimport { GlobalChartsContext, GlobalChartsProvider } from '../../providers';\nimport { BarChartUnresponsive } from '../bar-chart';\nimport { withResponsive } from '../private/with-responsive';\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\n/**\n * Get the bandwidth of a scale\n * @param scale - The scale to get the bandwidth of\n * @return The bandwidth of the scale\n */\nconst getScaleBandwidth = scale => {\n // Broaden type before using 'xxx' in s as typeguard.\n const s = scale;\n return s && 'bandwidth' in s ? s?.bandwidth() ?? 0 : 0;\n};\nconst DefaultLabelComponent = ({\n textProps,\n x,\n y,\n label,\n formatter\n}) => {\n return /*#__PURE__*/_jsx(Text, {\n ...textProps,\n textAnchor: \"start\",\n x: x,\n y: y,\n children: formatter(label)\n });\n};\nconst DefaultValueComponent = ({\n textProps,\n x,\n y,\n value,\n formatter\n}) => {\n return /*#__PURE__*/_jsx(Text, {\n ...textProps,\n textAnchor: \"end\",\n x: x,\n y: y,\n fontWeight: 500,\n children: formatter(value)\n });\n};\nconst AxisRenderer = ({\n ticks,\n tickLabelProps,\n yOffset,\n labelPosition,\n valuePosition,\n data,\n labelFormatter,\n valueFormatter,\n LabelComponent = DefaultLabelComponent,\n ValueComponent = DefaultValueComponent\n}) => {\n if (ticks.length === 0) {\n return null;\n }\n\n // compute the max tick label size to compute label offset\n const allTickLabelProps = ticks.map(({\n value,\n index\n }) => typeof tickLabelProps === 'function' ? tickLabelProps(value, index, ticks) : {});\n return ticks.map(({\n from,\n formattedValue\n }, index) => {\n const textProps = allTickLabelProps[index] ?? {};\n // No need to pass textAnchor and dx. It will be handled by the component.\n delete textProps.textAnchor;\n delete textProps.dx;\n const sum = data.reduce((acc, {\n data: seriesData\n }) => acc + (seriesData[index]?.value ?? 0), 0);\n const y = from.y + yOffset;\n return /*#__PURE__*/_jsxs(Group, {\n children: [/*#__PURE__*/_jsx(LabelComponent, {\n textProps: textProps,\n x: labelPosition,\n y: y,\n label: formattedValue,\n formatter: labelFormatter\n }), /*#__PURE__*/_jsx(ValueComponent, {\n textProps: textProps,\n x: valuePosition,\n y: y,\n value: sum,\n formatter: valueFormatter,\n data: data,\n index: index\n })]\n }, index);\n });\n};\n\n/**\n * Calculate the default y offset for the bar list chart.\n * @param data - The data to calculate the default y offset for.\n * @param yScaleConfig - The y scale configuration.\n * @param height - The height of the chart.\n * @param isMultiSeries - Whether the chart is a multi series chart.\n * @return The default y offset.\n */\nconst getDefaultYOffset = (data, yScaleConfig, height, isMultiSeries) => {\n if (!isMultiSeries) {\n return 0;\n }\n const dataKeys = data.map(({\n label\n }) => label);\n const yScale = createScale({\n type: 'band',\n range: [0, height],\n domain: dataKeys,\n ...yScaleConfig\n });\n const groupScale = scaleBand({\n domain: dataKeys,\n range: [0, getScaleBandwidth(yScale)],\n padding: yScaleConfig.paddingInner\n });\n const GAP_BETWEEN_BARS = 6;\n const barThickness = getScaleBandwidth(groupScale);\n\n // Use negative value to move the label up.\n return -(barThickness + GAP_BETWEEN_BARS);\n};\nconst BarListChartInternal = ({\n data,\n width,\n height,\n options = {},\n margin = {\n left: 0,\n right: 20,\n bottom: 0,\n top: 0\n },\n ...rest\n}) => {\n const chartOptions = useMemo(() => {\n const isMultiSeries = data.length > 1;\n const defaultYScale = {\n // For multi series, set default padding larger to look better.\n paddingInner: isMultiSeries ? 0.3 : 0.1,\n padding: isMultiSeries ? 0.3 : 0.1\n };\n const defaultXScale = {\n // Always begin at zero since the x axis is hidden.\n zero: true\n };\n const yScale = {\n ...defaultYScale,\n ...(options.yScale ?? {})\n };\n const xScale = {\n ...defaultXScale,\n ...(options.xScale ?? {})\n };\n return {\n yScale,\n xScale,\n labelPosition: options.labelPosition ?? (isMultiSeries ? 0 : 10),\n valueFormatter: options.valueFormatter ?? (value => formatNumberCompact(value)),\n labelFormatter: options.labelFormatter ?? (value => String(value)),\n valuePosition: options.valuePosition ?? width,\n yOffset: options.yOffset ?? getDefaultYOffset(data, yScale, height, isMultiSeries)\n };\n }, [options, width, data, height]);\n return /*#__PURE__*/_jsx(BarChartUnresponsive, {\n orientation: \"horizontal\",\n gridVisibility: 'none',\n data: data,\n width: width,\n height: height,\n margin: margin,\n options: {\n axis: {\n y: {\n children: renderProps => /*#__PURE__*/_jsx(AxisRenderer, {\n ...renderProps,\n data: data,\n yOffset: chartOptions.yOffset,\n labelPosition: chartOptions.labelPosition,\n valuePosition: chartOptions.valuePosition,\n labelFormatter: chartOptions.labelFormatter,\n valueFormatter: chartOptions.valueFormatter,\n LabelComponent: options.labelComponent,\n ValueComponent: options.valueComponent\n })\n },\n x: {\n children: () => null\n }\n },\n xScale: chartOptions.xScale,\n yScale: chartOptions.yScale\n },\n ...rest\n });\n};\nconst BarListChart = props => {\n const existingContext = useContext(GlobalChartsContext);\n\n // If we're already in a GlobalChartsProvider context, render the core component directly\n if (existingContext) {\n return /*#__PURE__*/_jsx(BarListChartInternal, {\n ...props\n });\n }\n\n // Otherwise, wrap with our own GlobalChartsProvider\n return /*#__PURE__*/_jsx(GlobalChartsProvider, {\n children: /*#__PURE__*/_jsx(BarListChartInternal, {\n ...props\n })\n });\n};\nBarListChart.displayName = 'BarListChart';\nconst BarListChartResponsive = withResponsive(BarListChart);\nexport { BarListChartResponsive as default, BarListChart as BarListChartUnresponsive };"]}
1
+ {"version":3,"sources":["/home/runner/work/jetpack/jetpack/projects/js-packages/charts/dist/chunk-7FQX4ALL.cjs","../src/charts/bar-list-chart/bar-list-chart.tsx"],"names":[],"mappings":"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","file":"/home/runner/work/jetpack/jetpack/projects/js-packages/charts/dist/chunk-7FQX4ALL.cjs","sourcesContent":[null,"import { formatNumberCompact } from '@automattic/number-formatters';\nimport { Group } from '@visx/group';\nimport { createScale, scaleBand } from '@visx/scale';\nimport { Text } from '@visx/text';\nimport { useContext, useMemo } from 'react';\nimport { GlobalChartsContext, GlobalChartsProvider } from '../../providers';\nimport { BarChartUnresponsive } from '../bar-chart';\nimport { withResponsive } from '../private/with-responsive';\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\n/**\n * Get the bandwidth of a scale\n * @param scale - The scale to get the bandwidth of\n * @return The bandwidth of the scale\n */\nconst getScaleBandwidth = scale => {\n // Broaden type before using 'xxx' in s as typeguard.\n const s = scale;\n return s && 'bandwidth' in s ? s?.bandwidth() ?? 0 : 0;\n};\nconst DefaultLabelComponent = ({\n textProps,\n x,\n y,\n label,\n formatter\n}) => {\n return /*#__PURE__*/_jsx(Text, {\n ...textProps,\n textAnchor: \"start\",\n x: x,\n y: y,\n children: formatter(label)\n });\n};\nconst DefaultValueComponent = ({\n textProps,\n x,\n y,\n value,\n formatter\n}) => {\n return /*#__PURE__*/_jsx(Text, {\n ...textProps,\n textAnchor: \"end\",\n x: x,\n y: y,\n fontWeight: 500,\n children: formatter(value)\n });\n};\nconst AxisRenderer = ({\n ticks,\n tickLabelProps,\n yOffset,\n labelPosition,\n valuePosition,\n data,\n labelFormatter,\n valueFormatter,\n LabelComponent = DefaultLabelComponent,\n ValueComponent = DefaultValueComponent\n}) => {\n if (ticks.length === 0) {\n return null;\n }\n\n // compute the max tick label size to compute label offset\n const allTickLabelProps = ticks.map(({\n value,\n index\n }) => typeof tickLabelProps === 'function' ? tickLabelProps(value, index, ticks) : {});\n return ticks.map(({\n from,\n formattedValue\n }, index) => {\n const textProps = allTickLabelProps[index] ?? {};\n // No need to pass textAnchor and dx. It will be handled by the component.\n delete textProps.textAnchor;\n delete textProps.dx;\n const sum = data.reduce((acc, {\n data: seriesData\n }) => acc + (seriesData[index]?.value ?? 0), 0);\n const y = from.y + yOffset;\n return /*#__PURE__*/_jsxs(Group, {\n children: [/*#__PURE__*/_jsx(LabelComponent, {\n textProps: textProps,\n x: labelPosition,\n y: y,\n label: formattedValue,\n formatter: labelFormatter\n }), /*#__PURE__*/_jsx(ValueComponent, {\n textProps: textProps,\n x: valuePosition,\n y: y,\n value: sum,\n formatter: valueFormatter,\n data: data,\n index: index\n })]\n }, index);\n });\n};\n\n/**\n * Calculate the default y offset for the bar list chart.\n * @param data - The data to calculate the default y offset for.\n * @param yScaleConfig - The y scale configuration.\n * @param height - The height of the chart.\n * @param isMultiSeries - Whether the chart is a multi series chart.\n * @return The default y offset.\n */\nconst getDefaultYOffset = (data, yScaleConfig, height, isMultiSeries) => {\n if (!isMultiSeries) {\n return 0;\n }\n const dataKeys = data.map(({\n label\n }) => label);\n const yScale = createScale({\n type: 'band',\n range: [0, height],\n domain: dataKeys,\n ...yScaleConfig\n });\n const groupScale = scaleBand({\n domain: dataKeys,\n range: [0, getScaleBandwidth(yScale)],\n padding: yScaleConfig.paddingInner\n });\n const GAP_BETWEEN_BARS = 6;\n const barThickness = getScaleBandwidth(groupScale);\n\n // Use negative value to move the label up.\n return -(barThickness + GAP_BETWEEN_BARS);\n};\nconst BarListChartInternal = ({\n data,\n width,\n height,\n options = {},\n margin = {\n left: 0,\n right: 20,\n bottom: 0,\n top: 0\n },\n ...rest\n}) => {\n const chartOptions = useMemo(() => {\n const isMultiSeries = data.length > 1;\n const defaultYScale = {\n // For multi series, set default padding larger to look better.\n paddingInner: isMultiSeries ? 0.3 : 0.1,\n padding: isMultiSeries ? 0.3 : 0.1\n };\n const defaultXScale = {\n // Always begin at zero since the x axis is hidden.\n zero: true\n };\n const yScale = {\n ...defaultYScale,\n ...(options.yScale ?? {})\n };\n const xScale = {\n ...defaultXScale,\n ...(options.xScale ?? {})\n };\n return {\n yScale,\n xScale,\n labelPosition: options.labelPosition ?? (isMultiSeries ? 0 : 10),\n valueFormatter: options.valueFormatter ?? (value => formatNumberCompact(value)),\n labelFormatter: options.labelFormatter ?? (value => String(value)),\n valuePosition: options.valuePosition ?? width,\n yOffset: options.yOffset ?? getDefaultYOffset(data, yScale, height, isMultiSeries)\n };\n }, [options, width, data, height]);\n return /*#__PURE__*/_jsx(BarChartUnresponsive, {\n orientation: \"horizontal\",\n gridVisibility: 'none',\n data: data,\n width: width,\n height: height,\n margin: margin,\n options: {\n axis: {\n y: {\n children: renderProps => /*#__PURE__*/_jsx(AxisRenderer, {\n ...renderProps,\n data: data,\n yOffset: chartOptions.yOffset,\n labelPosition: chartOptions.labelPosition,\n valuePosition: chartOptions.valuePosition,\n labelFormatter: chartOptions.labelFormatter,\n valueFormatter: chartOptions.valueFormatter,\n LabelComponent: options.labelComponent,\n ValueComponent: options.valueComponent\n })\n },\n x: {\n children: () => null\n }\n },\n xScale: chartOptions.xScale,\n yScale: chartOptions.yScale\n },\n ...rest\n });\n};\nconst BarListChart = props => {\n const existingContext = useContext(GlobalChartsContext);\n\n // If we're already in a GlobalChartsProvider context, render the core component directly\n if (existingContext) {\n return /*#__PURE__*/_jsx(BarListChartInternal, {\n ...props\n });\n }\n\n // Otherwise, wrap with our own GlobalChartsProvider\n return /*#__PURE__*/_jsx(GlobalChartsProvider, {\n children: /*#__PURE__*/_jsx(BarListChartInternal, {\n ...props\n })\n });\n};\nBarListChart.displayName = 'BarListChart';\nconst BarListChartResponsive = withResponsive(BarListChart);\nexport { BarListChartResponsive as default, BarListChart as BarListChartUnresponsive };"]}
@@ -14,7 +14,7 @@ import {
14
14
  } from "./chunk-BPYKWMI7.js";
15
15
  import {
16
16
  Stack
17
- } from "./chunk-IS5YYLTV.js";
17
+ } from "./chunk-Z26M4V2M.js";
18
18
  import {
19
19
  withResponsive
20
20
  } from "./chunk-OP6PHB2U.js";
@@ -31,10 +31,10 @@ import {
31
31
  useGlobalChartsTheme,
32
32
  useInteractiveLegendData,
33
33
  usePrefersReducedMotion
34
- } from "./chunk-RFSHE3HL.js";
34
+ } from "./chunk-32DH6JDF.js";
35
35
  import {
36
36
  attachSubComponents
37
- } from "./chunk-TE63Y5PX.js";
37
+ } from "./chunk-DAU3HNEG.js";
38
38
 
39
39
  // src/charts/pie-chart/pie-chart.tsx
40
40
  import { Group } from "@visx/group";
@@ -229,9 +229,11 @@ var PieChartInternal = ({
229
229
  orientation: legendOrientation,
230
230
  position: legendPosition,
231
231
  alignment: legendAlignment,
232
- maxWidth: legendMaxWidth,
233
- textOverflow: legendTextOverflow,
234
- legendItemClassName,
232
+ labelStyles: {
233
+ maxWidth: legendMaxWidth,
234
+ textOverflow: legendTextOverflow
235
+ },
236
+ itemClassName: legendItemClassName,
235
237
  shape: legendShape,
236
238
  chartId,
237
239
  interactive: legendInteractive
@@ -398,4 +400,4 @@ export {
398
400
  PieChart,
399
401
  PieChartResponsive
400
402
  };
401
- //# sourceMappingURL=chunk-7FDQGBY7.js.map
403
+ //# sourceMappingURL=chunk-BCX5THDQ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/charts/pie-chart/pie-chart.tsx","../src/charts/pie-chart/pie-chart.module.scss"],"sourcesContent":["import { Group } from '@visx/group';\nimport { Pie } from '@visx/shape';\nimport { useTooltip, useTooltipInPortal } from '@visx/tooltip';\nimport { __ } from '@wordpress/i18n';\nimport { Stack } from '@wordpress/ui';\nimport clsx from 'clsx';\nimport { useCallback, useContext, useMemo } from 'react';\nimport { Legend, useChartLegendItems } from '../../components/legend';\nimport { BaseTooltip } from '../../components/tooltip';\nimport { useElementSize, useInteractiveLegendData, usePrefersReducedMotion } from '../../hooks';\nimport { GlobalChartsProvider, useChartId, useChartRegistration, useGlobalChartsContext, useGlobalChartsTheme, GlobalChartsContext } from '../../providers';\nimport { attachSubComponents } from '../../utils';\nimport { getStringWidth } from '../../visx/text';\nimport { ChartSVG, ChartHTML, useChartChildren } from '../private/chart-composition';\nimport { RadialWipeAnimation } from '../private/radial-wipe-animation/';\nimport { SingleChartContext } from '../private/single-chart-context';\nimport { withResponsive } from '../private/with-responsive';\nimport styles from './pie-chart.module.scss';\n\n/**\n * Parameters passed to the renderTooltip function for pie charts.\n */\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\n/**\n * Default tooltip renderer for pie charts.\n * Renders a BaseTooltip with the hovered segment's data.\n *\n * @param {PieChartRenderTooltipParams} params - The tooltip parameters containing the hovered data point\n * @return {ReactNode} The rendered tooltip content\n */\nconst renderDefaultPieTooltip = ({\n tooltipData\n}) => {\n return /*#__PURE__*/_jsx(BaseTooltip, {\n data: tooltipData,\n top: 0,\n left: 0,\n renderContainer: false\n });\n};\n\n// Base props type with optional responsive properties\n\n// Composition API types\n\n/**\n * Validates the pie chart data\n * @param data - The data to validate\n * @return Object containing validation result and error message\n */\nconst validateData = data => {\n if (!data.length) {\n return {\n isValid: false,\n message: 'No data available'\n };\n }\n\n // Check for negative values\n const hasNegativeValues = data.some(item => item.percentage < 0 || item.value < 0);\n if (hasNegativeValues) {\n return {\n isValid: false,\n message: 'Invalid data: Negative values are not allowed'\n };\n }\n\n // Validate total percentage\n const totalPercentage = data.reduce((sum, item) => sum + item.percentage, 0);\n if (Math.abs(totalPercentage - 100) > 0.01) {\n // Using small epsilon for floating point comparison\n return {\n isValid: false,\n message: 'Invalid percentage total: Must equal 100'\n };\n }\n return {\n isValid: true,\n message: ''\n };\n};\n\n/**\n * Renders a pie or donut chart using the provided data.\n *\n * @param {PieChartProps} props - Component props\n * @return {JSX.Element} The rendered chart component\n */\nconst PieChartInternal = ({\n data,\n chartId: providedChartId,\n withTooltips = false,\n className,\n showLegend = false,\n legendOrientation = 'horizontal',\n legendPosition = 'bottom',\n legendAlignment = 'center',\n legendMaxWidth,\n legendTextOverflow = 'wrap',\n legendItemClassName,\n legendShape = 'circle',\n width: propWidth,\n height: propHeight,\n size,\n animation,\n thickness = 1,\n padding = 0,\n gapScale = 0,\n cornerScale = 0,\n showLabels = true,\n legendValueDisplay = 'percentage',\n legendInteractive = false,\n children = null,\n tooltipOffsetX = 0,\n tooltipOffsetY = -15,\n renderTooltip = renderDefaultPieTooltip,\n gap = 'md'\n}) => {\n const providerTheme = useGlobalChartsTheme();\n const chartId = useChartId(providedChartId);\n const [svgWrapperRef, svgWrapperWidth, svgWrapperHeight] = useElementSize();\n const {\n tooltipOpen,\n tooltipLeft,\n tooltipTop,\n tooltipData,\n hideTooltip,\n showTooltip\n } = useTooltip();\n\n // Set up portal tooltip for better z-index handling\n // We get containerBounds to cancel out stale offsets in the position calculation\n const {\n containerRef,\n TooltipInPortal,\n containerBounds\n } = useTooltipInPortal({\n detectBounds: true,\n scroll: true,\n debounce: 0\n });\n const onMouseLeave = useCallback(() => {\n if (!withTooltips) {\n return;\n }\n hideTooltip();\n }, [withTooltips, hideTooltip]);\n const {\n getElementStyles,\n isSeriesVisible\n } = useGlobalChartsContext();\n\n // Filter and recalculate data for interactive legends\n const {\n visibleData,\n allSegmentsHidden,\n legendData\n } = useInteractiveLegendData({\n data,\n chartId,\n legendInteractive,\n isSeriesVisible\n });\n\n // Memoize legend options to prevent unnecessary re-calculations\n const legendOptions = useMemo(() => ({\n showValues: true,\n legendValueDisplay\n }), [legendValueDisplay]);\n\n // Create legend items using legendData (has recalculated percentages for visible items)\n const legendItems = useChartLegendItems(legendData, legendOptions);\n const {\n isValid,\n message\n } = validateData(data);\n\n // Process children to extract compound components\n const {\n svgChildren,\n htmlChildren,\n otherChildren\n } = useChartChildren(children, 'PieChart');\n\n // Memoize metadata to prevent unnecessary re-registration\n const chartMetadata = useMemo(() => ({\n thickness,\n gapScale,\n cornerScale\n }), [thickness, gapScale, cornerScale]);\n\n // Register chart with context only if data is valid\n useChartRegistration({\n chartId,\n legendItems,\n chartType: 'pie',\n isDataValid: isValid,\n metadata: chartMetadata\n });\n const prefersReducedMotion = usePrefersReducedMotion();\n if (!isValid) {\n return /*#__PURE__*/_jsx(\"div\", {\n className: clsx('pie-chart', styles['pie-chart'], className),\n children: /*#__PURE__*/_jsx(\"div\", {\n className: styles['error-message'],\n children: message\n })\n });\n }\n\n // Calculate the actual pie size:\n // - Measure available space from the svg-wrapper\n // - If size prop provided: use it as max, but shrink if container is smaller\n // - If no size prop: fill available space\n const availableWidth = svgWrapperWidth > 0 ? svgWrapperWidth : 300;\n const availableHeight = svgWrapperHeight > 0 ? svgWrapperHeight : 300;\n const availableSize = Math.min(availableWidth, availableHeight);\n const actualSize = size ? Math.min(size, availableSize) : availableSize;\n const width = actualSize;\n const height = actualSize;\n\n // Calculate radius based on width/height\n const radius = Math.min(width, height) / 2;\n\n // Center the chart in the available space\n const centerX = width / 2;\n const centerY = height / 2;\n\n // Calculate the angle between each (use original data length for consistent spacing)\n const padAngle = gapScale * (2 * Math.PI / data.length);\n const outerRadius = radius - padding;\n const innerRadius = thickness === 0 ? 0 : outerRadius * (1 - thickness);\n const maxCornerRadius = (outerRadius - innerRadius) / 2;\n const cornerRadius = cornerScale ? Math.min(cornerScale * outerRadius, maxCornerRadius) : 0;\n\n // Map the data to include index for color assignment\n // When interactive, we need to find the original index to maintain consistent colors\n const dataWithIndex = visibleData.map(d => {\n const originalIndex = data.findIndex(item => item.label === d.label);\n return {\n ...d,\n index: originalIndex >= 0 ? originalIndex : 0\n };\n });\n const accessors = {\n value: d => d.value,\n fill: d => {\n return getElementStyles({\n data: d,\n index: d.index\n }).color;\n }\n };\n const legendElement = showLegend && /*#__PURE__*/_jsx(Legend, {\n orientation: legendOrientation,\n position: legendPosition,\n alignment: legendAlignment,\n labelStyles: {\n maxWidth: legendMaxWidth,\n textOverflow: legendTextOverflow\n },\n itemClassName: legendItemClassName,\n shape: legendShape,\n chartId: chartId,\n interactive: legendInteractive\n });\n return /*#__PURE__*/_jsx(SingleChartContext.Provider, {\n value: {\n chartId,\n chartWidth: width,\n chartHeight: height\n },\n children: /*#__PURE__*/_jsxs(Stack, {\n ref: containerRef,\n direction: \"column\",\n gap: gap,\n className: clsx('pie-chart', styles['pie-chart'],\n // Fill parent when no explicit dimensions provided\n {\n [styles['pie-chart--responsive']]: !propWidth && !propHeight\n }, className),\n style: {\n width: propWidth || undefined,\n height: propHeight || undefined\n },\n children: [legendPosition === 'top' && legendElement, /*#__PURE__*/_jsx(\"div\", {\n className: styles['pie-chart__svg-wrapper'],\n ref: svgWrapperRef,\n children: /*#__PURE__*/_jsxs(\"svg\", {\n viewBox: `0 0 ${width} ${height}`,\n preserveAspectRatio: \"xMidYMid meet\",\n width: width,\n height: height,\n children: [/*#__PURE__*/_jsx(\"defs\", {\n children: /*#__PURE__*/_jsx(RadialWipeAnimation, {\n id: `radial-wipe-${chartId}`,\n radius: outerRadius,\n innerRadius: innerRadius\n })\n }), /*#__PURE__*/_jsxs(Group, {\n top: centerY,\n left: centerX,\n mask: animation && !prefersReducedMotion ? `url(#radial-wipe-${chartId})` : null,\n children: [allSegmentsHidden ? /*#__PURE__*/_jsx(\"text\", {\n textAnchor: \"middle\",\n dy: \".33em\",\n fill: providerTheme.gridColor || '#ccc',\n fontSize: \"14\",\n fontFamily: \"-apple-system,BlinkMacSystemFont,Roboto,Helvetica Neue,sans-serif\",\n children: __('All segments are hidden. Click legend items to show data.', 'jetpack-charts')\n }) : /*#__PURE__*/_jsx(Pie, {\n data: dataWithIndex,\n pieValue: accessors.value,\n outerRadius: outerRadius,\n innerRadius: innerRadius,\n padAngle: padAngle,\n cornerRadius: cornerRadius,\n children: pie => {\n return pie.arcs.map((arc, index) => {\n const [centroidX, centroidY] = pie.path.centroid(arc);\n const hasSpaceForLabel = arc.endAngle - arc.startAngle >= 0.25;\n const handleMouseMove = event => {\n if (!withTooltips) {\n return;\n }\n\n // Don't show tooltip until container bounds are measured\n if (containerBounds.width === 0 || containerBounds.height === 0) {\n return;\n }\n\n // Use clientX/Y and subtract containerBounds to cancel out any stale offset.\n // TooltipInPortal calculates: tooltipLeft + containerBounds.left + scrollX\n // By passing (clientX - containerBounds.left), we get:\n // (clientX - containerBounds.left) + containerBounds.left + scrollX = clientX + scrollX\n // This gives correct page coordinates regardless of stale bounds.\n showTooltip({\n tooltipData: arc.data,\n tooltipLeft: event.clientX - containerBounds.left + tooltipOffsetX,\n tooltipTop: event.clientY - containerBounds.top + tooltipOffsetY\n });\n };\n const pathProps = {\n d: pie.path(arc) || '',\n fill: accessors.fill(arc.data),\n 'data-testid': 'pie-segment'\n };\n const groupProps = {};\n if (withTooltips) {\n groupProps.onMouseMove = handleMouseMove;\n groupProps.onMouseLeave = onMouseLeave;\n }\n\n // Estimate text width more accurately for background sizing\n const fontSize = 12;\n const estimatedTextWidth = getStringWidth(arc.data.label, {\n fontSize\n });\n const labelPadding = 6;\n const backgroundWidth = estimatedTextWidth + labelPadding * 2;\n const backgroundHeight = fontSize + labelPadding * 2;\n return /*#__PURE__*/_jsxs(\"g\", {\n ...groupProps,\n children: [/*#__PURE__*/_jsx(\"path\", {\n ...pathProps\n }), showLabels && hasSpaceForLabel && /*#__PURE__*/_jsxs(\"g\", {\n children: [providerTheme.labelBackgroundColor && /*#__PURE__*/_jsx(\"rect\", {\n x: centroidX - backgroundWidth / 2,\n y: centroidY - backgroundHeight / 2,\n width: backgroundWidth,\n height: backgroundHeight,\n fill: providerTheme.labelBackgroundColor,\n rx: 4,\n ry: 4,\n pointerEvents: \"none\"\n }), /*#__PURE__*/_jsx(\"text\", {\n x: centroidX,\n y: centroidY,\n dy: \".33em\",\n fill: providerTheme.labelTextColor || '#333',\n fontSize: fontSize,\n textAnchor: \"middle\",\n pointerEvents: \"none\",\n children: arc.data.label\n })]\n })]\n }, `arc-${index}`);\n });\n }\n }), !allSegmentsHidden && svgChildren]\n })]\n })\n }), legendPosition === 'bottom' && legendElement, withTooltips && tooltipOpen && tooltipData && /*#__PURE__*/_jsx(TooltipInPortal, {\n top: tooltipTop || 0,\n left: tooltipLeft || 0,\n children: /*#__PURE__*/_jsx(\"div\", {\n role: \"tooltip\",\n children: renderTooltip({\n tooltipData\n })\n })\n }), htmlChildren, otherChildren]\n })\n });\n};\nconst PieChartWithProvider = props => {\n const existingContext = useContext(GlobalChartsContext);\n\n // If we're already in a GlobalChartsProvider context, don't create a new one\n if (existingContext) {\n return /*#__PURE__*/_jsx(PieChartInternal, {\n ...props\n });\n }\n\n // Otherwise, create our own GlobalChartsProvider\n return /*#__PURE__*/_jsx(GlobalChartsProvider, {\n children: /*#__PURE__*/_jsx(PieChartInternal, {\n ...props\n })\n });\n};\nPieChartWithProvider.displayName = 'PieChart';\n\n// Create PieChart with composition API\nconst PieChart = attachSubComponents(PieChartWithProvider, {\n Legend: Legend,\n SVG: ChartSVG,\n HTML: ChartHTML\n});\n\n// Create responsive PieChart with composition API\nconst PieChartResponsive = attachSubComponents(withResponsive(PieChartWithProvider), {\n Legend: Legend,\n SVG: ChartSVG,\n HTML: ChartHTML\n});\nexport { PieChartResponsive as default, PieChart as PieChartUnresponsive };","import 'css-chunk:src/charts/pie-chart/pie-chart.module.scss';export default {\n \"pie-chart\": \"a8ccharts-C-n-Gu\",\n \"pie-chart--responsive\": \"a8ccharts-IQVR6j\",\n \"pie-chart__svg-wrapper\": \"a8ccharts-iQ1Rki\"\n};"],"mappings":"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","names":[]}
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  Stack
3
- } from "./chunk-IS5YYLTV.js";
3
+ } from "./chunk-Z26M4V2M.js";
4
4
  import {
5
5
  GlobalChartsContext,
6
6
  GlobalChartsProvider,
@@ -9,11 +9,11 @@ import {
9
9
  useGlobalChartsContext,
10
10
  useGlobalChartsTheme,
11
11
  usePrefersReducedMotion
12
- } from "./chunk-RFSHE3HL.js";
12
+ } from "./chunk-32DH6JDF.js";
13
13
  import {
14
14
  formatPercentage,
15
15
  hexToRgba
16
- } from "./chunk-TE63Y5PX.js";
16
+ } from "./chunk-DAU3HNEG.js";
17
17
 
18
18
  // src/charts/conversion-funnel-chart/conversion-funnel-chart.tsx
19
19
  import { useTooltip, useTooltipInPortal } from "@visx/tooltip";
@@ -418,4 +418,4 @@ ConversionFunnelChartWithProvider.displayName = "ConversionFunnelChart";
418
418
  export {
419
419
  ConversionFunnelChartWithProvider
420
420
  };
421
- //# sourceMappingURL=chunk-KHQPN77E.js.map
421
+ //# sourceMappingURL=chunk-CZGYJKG6.js.map
@@ -5,12 +5,12 @@ var _chunkASLARV7Lcjs = require('./chunk-ASLARV7L.cjs');
5
5
 
6
6
 
7
7
 
8
- var _chunkYDVHT7GScjs = require('./chunk-YDVHT7GS.cjs');
8
+ var _chunkRHHVEJHJcjs = require('./chunk-RHHVEJHJ.cjs');
9
9
 
10
10
 
11
11
 
12
12
 
13
- var _chunkZVGEDXDPcjs = require('./chunk-ZVGEDXDP.cjs');
13
+ var _chunkVTS3PNMScjs = require('./chunk-VTS3PNMS.cjs');
14
14
 
15
15
  // src/charts/geo-chart/geo-chart.tsx
16
16
  var _i18n = require('@wordpress/i18n');
@@ -44,7 +44,7 @@ var GeoChartInternal = ({
44
44
  },
45
45
  backgroundColor
46
46
  }
47
- } = _chunkYDVHT7GScjs.useGlobalChartsContext.call(void 0, );
47
+ } = _chunkRHHVEJHJcjs.useGlobalChartsContext.call(void 0, );
48
48
  const loadingPlaceholder = /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", {
49
49
  className: _clsx2.default.call(void 0, "geo-chart", geo_chart_module_default.container, className),
50
50
  style: {
@@ -56,9 +56,9 @@ var GeoChartInternal = ({
56
56
  const fullColorHex = getElementStyles({
57
57
  index: 0
58
58
  }).color;
59
- const lightColorHex = _chunkZVGEDXDPcjs.lightenHexColor.call(void 0, fullColorHex, 0.8);
60
- const backgroundColorHex = _chunkZVGEDXDPcjs.normalizeColorToHex.call(void 0, backgroundColor, null, _chunkZVGEDXDPcjs.resolveCssVariable) || DEFAULT_BACKGROUND_COLOR;
61
- const defaultFillColorHex = _chunkZVGEDXDPcjs.normalizeColorToHex.call(void 0, featureFillColor, null, _chunkZVGEDXDPcjs.resolveCssVariable) || DEFAULT_FEATURE_FILL_COLOR;
59
+ const lightColorHex = _chunkVTS3PNMScjs.lightenHexColor.call(void 0, fullColorHex, 0.8);
60
+ const backgroundColorHex = _chunkVTS3PNMScjs.normalizeColorToHex.call(void 0, backgroundColor, null, _chunkVTS3PNMScjs.resolveCssVariable) || DEFAULT_BACKGROUND_COLOR;
61
+ const defaultFillColorHex = _chunkVTS3PNMScjs.normalizeColorToHex.call(void 0, featureFillColor, null, _chunkVTS3PNMScjs.resolveCssVariable) || DEFAULT_FEATURE_FILL_COLOR;
62
62
  const hasHtmlTooltips = _react.useMemo.call(void 0, () => data.length > 0 && data[0].some((col) => typeof col === "object" && col !== null && "role" in col && col.role === "tooltip" && "p" in col && typeof col.p === "object" && col.p !== null && "html" in col.p && col.p.html === true), [data]);
63
63
  const options = _react.useMemo.call(void 0, () => ({
64
64
  ...region !== "world" && {
@@ -98,13 +98,13 @@ var GeoChartInternal = ({
98
98
  });
99
99
  };
100
100
  var GeoChartWithProvider = (props) => {
101
- const existingContext = _react.useContext.call(void 0, _chunkYDVHT7GScjs.GlobalChartsContext);
101
+ const existingContext = _react.useContext.call(void 0, _chunkRHHVEJHJcjs.GlobalChartsContext);
102
102
  if (existingContext) {
103
103
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, GeoChartInternal, {
104
104
  ...props
105
105
  });
106
106
  }
107
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYDVHT7GScjs.GlobalChartsProvider, {
107
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRHHVEJHJcjs.GlobalChartsProvider, {
108
108
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, GeoChartInternal, {
109
109
  ...props
110
110
  })
@@ -117,4 +117,4 @@ var GeoChartResponsive = _chunkASLARV7Lcjs.withResponsive.call(void 0, GeoChartW
117
117
 
118
118
 
119
119
  exports.GeoChartWithProvider = GeoChartWithProvider; exports.GeoChartResponsive = GeoChartResponsive;
120
- //# sourceMappingURL=chunk-3EXJP67N.cjs.map
120
+ //# sourceMappingURL=chunk-D2UH4CFE.cjs.map