@automattic/charts 0.53.0 → 0.53.2

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 (122) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/dist/charts/bar-chart/index.cjs +5 -5
  3. package/dist/charts/bar-chart/index.d.cts +1 -1
  4. package/dist/charts/bar-chart/index.d.ts +1 -1
  5. package/dist/charts/bar-chart/index.js +4 -4
  6. package/dist/charts/bar-list-chart/index.cjs +6 -6
  7. package/dist/charts/bar-list-chart/index.d.cts +1 -1
  8. package/dist/charts/bar-list-chart/index.d.ts +1 -1
  9. package/dist/charts/bar-list-chart/index.js +5 -5
  10. package/dist/charts/conversion-funnel-chart/index.cjs +4 -4
  11. package/dist/charts/conversion-funnel-chart/index.d.cts +1 -1
  12. package/dist/charts/conversion-funnel-chart/index.d.ts +1 -1
  13. package/dist/charts/conversion-funnel-chart/index.js +3 -3
  14. package/dist/charts/geo-chart/index.cjs +13 -0
  15. package/dist/charts/geo-chart/index.cjs.map +1 -0
  16. package/dist/charts/geo-chart/index.css +8 -0
  17. package/dist/charts/geo-chart/index.css.map +1 -0
  18. package/dist/charts/geo-chart/index.d.cts +62 -0
  19. package/dist/charts/geo-chart/index.d.ts +62 -0
  20. package/dist/charts/geo-chart/index.js +13 -0
  21. package/dist/charts/geo-chart/index.js.map +1 -0
  22. package/dist/charts/leaderboard-chart/index.cjs +5 -5
  23. package/dist/charts/leaderboard-chart/index.d.cts +2 -2
  24. package/dist/charts/leaderboard-chart/index.d.ts +2 -2
  25. package/dist/charts/leaderboard-chart/index.js +4 -4
  26. package/dist/charts/line-chart/index.cjs +5 -5
  27. package/dist/charts/line-chart/index.d.cts +1 -1
  28. package/dist/charts/line-chart/index.d.ts +1 -1
  29. package/dist/charts/line-chart/index.js +4 -4
  30. package/dist/charts/pie-chart/index.cjs +6 -6
  31. package/dist/charts/pie-chart/index.d.cts +1 -1
  32. package/dist/charts/pie-chart/index.d.ts +1 -1
  33. package/dist/charts/pie-chart/index.js +5 -5
  34. package/dist/charts/pie-semi-circle-chart/index.cjs +6 -6
  35. package/dist/charts/pie-semi-circle-chart/index.d.cts +1 -1
  36. package/dist/charts/pie-semi-circle-chart/index.d.ts +1 -1
  37. package/dist/charts/pie-semi-circle-chart/index.js +5 -5
  38. package/dist/{chunk-ERGEUE7R.cjs → chunk-4KEE36W3.cjs} +19 -19
  39. package/dist/chunk-4KEE36W3.cjs.map +1 -0
  40. package/dist/{chunk-4RYV2TII.js → chunk-6RKPV3UP.js} +10 -10
  41. package/dist/{chunk-VER6S543.js → chunk-ALDWCNLH.js} +3 -3
  42. package/dist/chunk-CLSMJQCO.cjs +121 -0
  43. package/dist/chunk-CLSMJQCO.cjs.map +1 -0
  44. package/dist/{chunk-2FRTJVQ3.js → chunk-DCZ47KPZ.js} +6 -6
  45. package/dist/chunk-DCZ47KPZ.js.map +1 -0
  46. package/dist/{chunk-GWNXOI4M.cjs → chunk-DDV5726Q.cjs} +25 -25
  47. package/dist/{chunk-GWNXOI4M.cjs.map → chunk-DDV5726Q.cjs.map} +1 -1
  48. package/dist/{chunk-O2BJMTIS.js → chunk-DYMJWNYM.js} +2 -2
  49. package/dist/{chunk-A7X3CNEO.cjs → chunk-FVWTBK44.cjs} +6 -6
  50. package/dist/{chunk-A7X3CNEO.cjs.map → chunk-FVWTBK44.cjs.map} +1 -1
  51. package/dist/{chunk-ZN7KVU4R.cjs → chunk-GX4XTD6V.cjs} +76 -76
  52. package/dist/{chunk-ZN7KVU4R.cjs.map → chunk-GX4XTD6V.cjs.map} +1 -1
  53. package/dist/{chunk-VTMJWCCW.js → chunk-H6XRINJE.js} +10 -10
  54. package/dist/{chunk-CQPKK55N.js → chunk-HPJ5XSZM.js} +60 -60
  55. package/dist/{chunk-CQPKK55N.js.map → chunk-HPJ5XSZM.js.map} +1 -1
  56. package/dist/{chunk-6QCSXXDY.cjs → chunk-JWMWOBAX.cjs} +23 -23
  57. package/dist/{chunk-6QCSXXDY.cjs.map → chunk-JWMWOBAX.cjs.map} +1 -1
  58. package/dist/{chunk-DY7IVYWP.js → chunk-KBORJZKC.js} +8 -8
  59. package/dist/{chunk-W4ZYJ74Q.js → chunk-KORG7ITC.js} +3 -3
  60. package/dist/{chunk-AHUSYMYS.cjs → chunk-LNLHCZ6F.cjs} +28 -28
  61. package/dist/{chunk-AHUSYMYS.cjs.map → chunk-LNLHCZ6F.cjs.map} +1 -1
  62. package/dist/chunk-RDJ5PKC5.js +121 -0
  63. package/dist/chunk-RDJ5PKC5.js.map +1 -0
  64. package/dist/{chunk-P3QEXFTA.js → chunk-TE63Y5PX.js} +9 -1
  65. package/dist/chunk-TE63Y5PX.js.map +1 -0
  66. package/dist/{chunk-O23EGQ3H.cjs → chunk-UWAZGLHG.cjs} +22 -22
  67. package/dist/{chunk-O23EGQ3H.cjs.map → chunk-UWAZGLHG.cjs.map} +1 -1
  68. package/dist/{chunk-W3H42XRV.cjs → chunk-WKN6C4ZE.cjs} +10 -10
  69. package/dist/{chunk-W3H42XRV.cjs.map → chunk-WKN6C4ZE.cjs.map} +1 -1
  70. package/dist/{chunk-RHQIACQT.js → chunk-Z34VYZGR.js} +9 -9
  71. package/dist/{chunk-NYZFVI2P.cjs → chunk-ZPJHWKEK.cjs} +9 -9
  72. package/dist/{chunk-NYZFVI2P.cjs.map → chunk-ZPJHWKEK.cjs.map} +1 -1
  73. package/dist/{chunk-DAKYGZG6.cjs → chunk-ZVGEDXDP.cjs} +10 -2
  74. package/dist/chunk-ZVGEDXDP.cjs.map +1 -0
  75. package/dist/components/legend/index.cjs +4 -4
  76. package/dist/components/legend/index.d.cts +1 -1
  77. package/dist/components/legend/index.d.ts +1 -1
  78. package/dist/components/legend/index.js +3 -3
  79. package/dist/components/tooltip/index.d.cts +1 -1
  80. package/dist/components/tooltip/index.d.ts +1 -1
  81. package/dist/hooks/index.cjs +3 -3
  82. package/dist/hooks/index.d.cts +1 -1
  83. package/dist/hooks/index.d.ts +1 -1
  84. package/dist/hooks/index.js +2 -2
  85. package/dist/index.cjs +26 -126
  86. package/dist/index.cjs.map +1 -1
  87. package/dist/index.d.cts +15 -55
  88. package/dist/index.d.ts +15 -55
  89. package/dist/index.js +38 -138
  90. package/dist/index.js.map +1 -1
  91. package/dist/{leaderboard-chart-3dKYMfoP.d.cts → leaderboard-chart-CN80sJmQ.d.cts} +1 -1
  92. package/dist/{leaderboard-chart-BqH8BLiG.d.ts → leaderboard-chart-DPi2ueOg.d.ts} +1 -1
  93. package/dist/providers/index.cjs +3 -3
  94. package/dist/providers/index.d.cts +2 -2
  95. package/dist/providers/index.d.ts +2 -2
  96. package/dist/providers/index.js +2 -2
  97. package/dist/{themes-ChB_VjWt.d.ts → themes-AriuFXQ2.d.ts} +2 -2
  98. package/dist/{themes-DijSDhqQ.d.cts → themes-Dzg0wE3B.d.cts} +2 -2
  99. package/dist/{types-sQ20gAeB.d.cts → types-D1lTxRyg.d.cts} +1 -1
  100. package/dist/{types-sQ20gAeB.d.ts → types-D1lTxRyg.d.ts} +1 -1
  101. package/dist/utils/index.cjs +4 -2
  102. package/dist/utils/index.cjs.map +1 -1
  103. package/dist/utils/index.d.cts +11 -2
  104. package/dist/utils/index.d.ts +11 -2
  105. package/dist/utils/index.js +3 -1
  106. package/package.json +31 -23
  107. package/src/charts/conversion-funnel-chart/conversion-funnel-chart.tsx +2 -5
  108. package/src/charts/sparkline/sparkline.tsx +2 -0
  109. package/src/charts/sparkline/types.ts +8 -0
  110. package/src/utils/color-utils.ts +19 -0
  111. package/src/utils/test/color-utils.test.ts +232 -0
  112. package/dist/chunk-2FRTJVQ3.js.map +0 -1
  113. package/dist/chunk-DAKYGZG6.cjs.map +0 -1
  114. package/dist/chunk-ERGEUE7R.cjs.map +0 -1
  115. package/dist/chunk-P3QEXFTA.js.map +0 -1
  116. /package/dist/{chunk-4RYV2TII.js.map → chunk-6RKPV3UP.js.map} +0 -0
  117. /package/dist/{chunk-VER6S543.js.map → chunk-ALDWCNLH.js.map} +0 -0
  118. /package/dist/{chunk-O2BJMTIS.js.map → chunk-DYMJWNYM.js.map} +0 -0
  119. /package/dist/{chunk-VTMJWCCW.js.map → chunk-H6XRINJE.js.map} +0 -0
  120. /package/dist/{chunk-DY7IVYWP.js.map → chunk-KBORJZKC.js.map} +0 -0
  121. /package/dist/{chunk-W4ZYJ74Q.js.map → chunk-KORG7ITC.js.map} +0 -0
  122. /package/dist/{chunk-RHQIACQT.js.map → chunk-Z34VYZGR.js.map} +0 -0
@@ -6,15 +6,15 @@
6
6
 
7
7
 
8
8
 
9
- var _chunkW3H42XRVcjs = require('./chunk-W3H42XRV.cjs');
9
+ var _chunkWKN6C4ZEcjs = require('./chunk-WKN6C4ZE.cjs');
10
10
 
11
11
 
12
- var _chunkDAKYGZG6cjs = require('./chunk-DAKYGZG6.cjs');
12
+
13
+ var _chunkZVGEDXDPcjs = require('./chunk-ZVGEDXDP.cjs');
13
14
 
14
15
  // src/charts/conversion-funnel-chart/conversion-funnel-chart.tsx
15
16
  var _event = require('@visx/event');
16
17
  var _tooltip = require('@visx/tooltip');
17
- var _d3color = require('@visx/vendor/d3-color');
18
18
  var _clsx = require('clsx'); var _clsx2 = _interopRequireDefault(_clsx);
19
19
  var _react = require('react');
20
20
 
@@ -112,9 +112,9 @@ var ConversionFunnelChartInternal = ({
112
112
  renderMainMetric,
113
113
  renderTooltip
114
114
  }) => {
115
- const chartId = _chunkW3H42XRVcjs.useChartId.call(void 0, providedChartId);
116
- const { conversionFunnelChart: conversionFunnelChartSettings } = _chunkW3H42XRVcjs.useGlobalChartsTheme.call(void 0, );
117
- const { getElementStyles } = _chunkW3H42XRVcjs.useGlobalChartsContext.call(void 0, );
115
+ const chartId = _chunkWKN6C4ZEcjs.useChartId.call(void 0, providedChartId);
116
+ const { conversionFunnelChart: conversionFunnelChartSettings } = _chunkWKN6C4ZEcjs.useGlobalChartsTheme.call(void 0, );
117
+ const { getElementStyles } = _chunkWKN6C4ZEcjs.useGlobalChartsContext.call(void 0, );
118
118
  const chartRef = _react.useRef.call(void 0, null);
119
119
  const selectedBarRef = _react.useRef.call(void 0, null);
120
120
  const { tooltipData, tooltipLeft, tooltipTop, tooltipOpen, showTooltip, hideTooltip } = _tooltip.useTooltip.call(void 0, );
@@ -233,15 +233,15 @@ var ConversionFunnelChartInternal = ({
233
233
  }) : { color: primaryColor || "#000000" };
234
234
  const isPositiveChange = _optionalChain([changeIndicator, 'optionalAccess', _5 => _5.startsWith, 'call', _6 => _6("+")]);
235
235
  const changeColor = isPositiveChange ? positiveChangeColor : negativeChangeColor;
236
- const barBackgroundColor = backgroundColor || _optionalChain([_d3color.color.call(void 0, barColor), 'optionalAccess', _7 => _7.copy, 'call', _8 => _8({ opacity: 0.08 }), 'access', _9 => _9.formatRgb, 'call', _10 => _10()]) || "rgba(0, 0, 0, 0.08)";
236
+ const barBackgroundColor = backgroundColor || _chunkZVGEDXDPcjs.hexToRgba.call(void 0, barColor, 0.08) || "rgba(0, 0, 0, 0.08)";
237
237
  const renderDefaultMainMetric = () => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
238
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: conversion_funnel_chart_module_default["main-rate"], children: _chunkDAKYGZG6cjs.formatPercentage.call(void 0, mainRate) }),
238
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: conversion_funnel_chart_module_default["main-rate"], children: _chunkZVGEDXDPcjs.formatPercentage.call(void 0, mainRate) }),
239
239
  changeIndicator && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: conversion_funnel_chart_module_default["change-indicator"], style: { color: changeColor }, children: changeIndicator })
240
240
  ] });
241
241
  const renderDefaultTooltip = (step) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
242
242
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: conversion_funnel_chart_module_default["tooltip-title"], children: step.label }),
243
243
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: conversion_funnel_chart_module_default["tooltip-content"], children: [
244
- _chunkDAKYGZG6cjs.formatPercentage.call(void 0, step.rate),
244
+ _chunkZVGEDXDPcjs.formatPercentage.call(void 0, step.rate),
245
245
  ` \u2022 ${_nullishCoalesce(step.count, () => ( "no"))} items`
246
246
  ] })
247
247
  ] });
@@ -250,18 +250,18 @@ var ConversionFunnelChartInternal = ({
250
250
  () => ({
251
251
  mainRate,
252
252
  changeIndicator,
253
- stepsCount: _optionalChain([steps, 'optionalAccess', _11 => _11.length]) || 0
253
+ stepsCount: _optionalChain([steps, 'optionalAccess', _7 => _7.length]) || 0
254
254
  }),
255
- [mainRate, changeIndicator, _optionalChain([steps, 'optionalAccess', _12 => _12.length])]
255
+ [mainRate, changeIndicator, _optionalChain([steps, 'optionalAccess', _8 => _8.length])]
256
256
  );
257
- _chunkW3H42XRVcjs.useChartRegistration.call(void 0, {
257
+ _chunkWKN6C4ZEcjs.useChartRegistration.call(void 0, {
258
258
  chartId,
259
259
  legendItems: [],
260
260
  chartType: "conversion-funnel",
261
261
  isDataValid,
262
262
  metadata: chartMetadata
263
263
  });
264
- const prefersReducedMotion = _chunkW3H42XRVcjs.usePrefersReducedMotion.call(void 0, );
264
+ const prefersReducedMotion = _chunkWKN6C4ZEcjs.usePrefersReducedMotion.call(void 0, );
265
265
  if (!isDataValid) {
266
266
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
267
267
  "div",
@@ -308,14 +308,14 @@ var ConversionFunnelChartInternal = ({
308
308
  step,
309
309
  index,
310
310
  className: conversion_funnel_chart_module_default["step-rate"]
311
- }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: conversion_funnel_chart_module_default["step-rate"], children: _chunkDAKYGZG6cjs.formatPercentage.call(void 0, step.rate) })
311
+ }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: conversion_funnel_chart_module_default["step-rate"], children: _chunkZVGEDXDPcjs.formatPercentage.call(void 0, step.rate) })
312
312
  ] }),
313
313
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
314
314
  "div",
315
315
  {
316
316
  className: _clsx2.default.call(void 0, conversion_funnel_chart_module_default["bar-container"], isBlurred && conversion_funnel_chart_module_default.disabled),
317
- onClick: _optionalChain([stepHandlers, 'access', _13 => _13.get, 'call', _14 => _14(step.id), 'optionalAccess', _15 => _15.onClick]),
318
- onKeyDown: _optionalChain([stepHandlers, 'access', _16 => _16.get, 'call', _17 => _17(step.id), 'optionalAccess', _18 => _18.onKeyDown]),
317
+ onClick: _optionalChain([stepHandlers, 'access', _9 => _9.get, 'call', _10 => _10(step.id), 'optionalAccess', _11 => _11.onClick]),
318
+ onKeyDown: _optionalChain([stepHandlers, 'access', _12 => _12.get, 'call', _13 => _13(step.id), 'optionalAccess', _14 => _14.onKeyDown]),
319
319
  role: "button",
320
320
  tabIndex: isBlurred ? -1 : 0,
321
321
  "aria-label": step.label,
@@ -365,15 +365,15 @@ var ConversionFunnelChartInternal = ({
365
365
  ] });
366
366
  };
367
367
  var ConversionFunnelChartWithProvider = (props) => {
368
- const existingContext = _react.useContext.call(void 0, _chunkW3H42XRVcjs.GlobalChartsContext);
368
+ const existingContext = _react.useContext.call(void 0, _chunkWKN6C4ZEcjs.GlobalChartsContext);
369
369
  if (existingContext) {
370
370
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ConversionFunnelChartInternal, { ...props });
371
371
  }
372
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkW3H42XRVcjs.GlobalChartsProvider, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ConversionFunnelChartInternal, { ...props }) });
372
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkWKN6C4ZEcjs.GlobalChartsProvider, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ConversionFunnelChartInternal, { ...props }) });
373
373
  };
374
374
  ConversionFunnelChartWithProvider.displayName = "ConversionFunnelChart";
375
375
 
376
376
 
377
377
 
378
378
  exports.ConversionFunnelChartWithProvider = ConversionFunnelChartWithProvider;
379
- //# sourceMappingURL=chunk-ERGEUE7R.cjs.map
379
+ //# sourceMappingURL=chunk-4KEE36W3.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/home/runner/work/jetpack/jetpack/projects/js-packages/charts/dist/chunk-4KEE36W3.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-4KEE36W3.cjs","sourcesContent":[null,"import { localPoint } from '@visx/event';\nimport { useTooltip, useTooltipInPortal } from '@visx/tooltip';\nimport clsx from 'clsx';\nimport { type FC, useRef, useMemo, useEffect, useCallback, useContext } from 'react';\nimport { usePrefersReducedMotion } from '../../hooks';\nimport {\n\tGlobalChartsProvider,\n\tGlobalChartsContext,\n\tuseChartId,\n\tuseChartRegistration,\n\tuseGlobalChartsTheme,\n\tuseGlobalChartsContext,\n} from '../../providers';\nimport { formatPercentage, hexToRgba } from '../../utils';\nimport styles from './conversion-funnel-chart.module.scss';\nimport { useFunnelSelection } from './private';\nimport type { FunnelStep, ConversionFunnelChartProps } from './types';\n\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.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: FC< ConversionFunnelChartProps > = ( {\n\tmainRate,\n\tchangeIndicator,\n\tsteps,\n\tloading = false,\n\tanimation,\n\tclassName,\n\tchartId: providedChartId,\n\tstyle,\n\trenderStepLabel,\n\trenderStepRate,\n\trenderMainMetric,\n\trenderTooltip,\n} ) => {\n\tconst chartId = useChartId( providedChartId );\n\tconst { conversionFunnelChart: conversionFunnelChartSettings } = useGlobalChartsTheme();\n\tconst { getElementStyles } = useGlobalChartsContext();\n\tconst chartRef = useRef< HTMLDivElement >( null );\n\tconst selectedBarRef = useRef< HTMLDivElement | null >( null );\n\n\t// Use @visx/tooltip hooks for tooltip positioning\n\tconst { tooltipData, tooltipLeft, tooltipTop, tooltipOpen, showTooltip, hideTooltip } =\n\t\tuseTooltip();\n\n\t// Use custom hook for selection management\n\tconst { handleBarClick, handleBarKeyDown, clearSelection, getStepState } =\n\t\tuseFunnelSelection( hideTooltip );\n\tconst { containerRef: portalContainerRef, TooltipInPortal } = useTooltipInPortal( {\n\t\t// use TooltipWithBounds for boundary detection\n\t\tdetectBounds: true,\n\t\t// when tooltip containers are scrolled, this will correctly update the Tooltip position\n\t\tscroll: true,\n\t} );\n\n\t// Wrapper to clear selectedBarRef after clearing selection\n\tconst clearSelectionAndRef = useCallback( () => {\n\t\tclearSelection();\n\t\tselectedBarRef.current = null;\n\t\thideTooltip();\n\t}, [ clearSelection, hideTooltip ] );\n\n\t// Helper function to show tooltip at specific coordinates\n\tconst showTooltipAt = useCallback(\n\t\t( step: FunnelStep, x: number, y: number ) => {\n\t\t\tshowTooltip( {\n\t\t\t\ttooltipData: step,\n\t\t\t\ttooltipLeft: x,\n\t\t\t\ttooltipTop: y - 10,\n\t\t\t} );\n\t\t},\n\t\t[ showTooltip ]\n\t);\n\n\t// Helper function to get tooltip coordinates for mouse events\n\tconst getMouseTooltipCoords = useCallback( ( event: React.MouseEvent ) => {\n\t\tconst containerElement = chartRef.current;\n\t\tif ( containerElement ) {\n\t\t\tconst coords = localPoint( containerElement, event.nativeEvent );\n\t\t\tif ( coords ) {\n\t\t\t\treturn { x: coords.x, y: coords.y };\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}, [] );\n\n\t// Helper function to get tooltip coordinates for keyboard events\n\tconst getKeyboardTooltipCoords = useCallback( ( event: React.KeyboardEvent ) => {\n\t\tconst rect = event.currentTarget.getBoundingClientRect();\n\t\tconst containerElement = chartRef.current;\n\t\tif ( containerElement ) {\n\t\t\tconst containerRect = containerElement.getBoundingClientRect();\n\t\t\tconst x = rect.left + rect.width / 2 - containerRect.left;\n\t\t\tconst y = rect.top - containerRect.top;\n\t\t\treturn { x, y };\n\t\t}\n\t\treturn null;\n\t}, [] );\n\n\t// Helper function to handle step interaction (both click and keyboard)\n\tconst handleStepInteraction = useCallback(\n\t\t(\n\t\t\tstep: FunnelStep,\n\t\t\tevent: React.MouseEvent | React.KeyboardEvent,\n\t\t\tinteractionType: 'click' | 'keyboard'\n\t\t) => {\n\t\t\t// Store reference to the interacted element\n\t\t\tselectedBarRef.current = event.currentTarget as HTMLDivElement;\n\n\t\t\t// Check if deselecting the same step\n\t\t\tconst { isClicked } = getStepState( step.id );\n\t\t\tif ( isClicked ) {\n\t\t\t\t// Deselecting - clear selection (tooltip will be hidden by hook)\n\t\t\t\tif ( interactionType === 'click' ) {\n\t\t\t\t\thandleBarClick( step.id );\n\t\t\t\t} else {\n\t\t\t\t\thandleBarKeyDown( step.id, event as React.KeyboardEvent );\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Selecting - handle selection and show tooltip\n\t\t\tif ( interactionType === 'click' ) {\n\t\t\t\thandleBarClick( step.id );\n\t\t\t\tconst coords = getMouseTooltipCoords( event as React.MouseEvent );\n\t\t\t\tif ( coords ) {\n\t\t\t\t\tshowTooltipAt( step, coords.x, coords.y );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\thandleBarKeyDown( step.id, event as React.KeyboardEvent );\n\t\t\t\tconst coords = getKeyboardTooltipCoords( event as React.KeyboardEvent );\n\t\t\t\tif ( coords ) {\n\t\t\t\t\tshowTooltipAt( step, coords.x, coords.y );\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t[\n\t\t\tgetStepState,\n\t\t\thandleBarClick,\n\t\t\thandleBarKeyDown,\n\t\t\tshowTooltipAt,\n\t\t\tgetMouseTooltipCoords,\n\t\t\tgetKeyboardTooltipCoords,\n\t\t]\n\t);\n\n\t// Create handler factories to avoid arrow functions in JSX\n\tconst stepHandlers = useMemo( () => {\n\t\tconst handlers = new Map<\n\t\t\tstring,\n\t\t\t{\n\t\t\t\tonClick: ( event: React.MouseEvent ) => void;\n\t\t\t\tonKeyDown: ( event: React.KeyboardEvent ) => void;\n\t\t\t}\n\t\t>();\n\n\t\tsteps.forEach( step => {\n\t\t\tconst onClick = ( event: React.MouseEvent ) => {\n\t\t\t\tevent.stopPropagation();\n\t\t\t\thandleStepInteraction( step, event, 'click' );\n\t\t\t};\n\n\t\t\tconst onKeyDown = ( event: React.KeyboardEvent ) => {\n\t\t\t\tif ( event.key === 'Enter' || event.key === ' ' ) {\n\t\t\t\t\thandleStepInteraction( step, event, 'keyboard' );\n\t\t\t\t} else {\n\t\t\t\t\t// For other keys (like Escape), just handle the selection\n\t\t\t\t\tselectedBarRef.current = event.currentTarget as HTMLDivElement;\n\t\t\t\t\thandleBarKeyDown( step.id, event );\n\t\t\t\t}\n\t\t\t};\n\n\t\t\thandlers.set( step.id, { onClick, onKeyDown } );\n\t\t} );\n\n\t\treturn handlers;\n\t}, [ steps, handleStepInteraction, handleBarKeyDown ] );\n\n\t// Handle document-level click to clear selection when clicking outside selected bar\n\tuseEffect( () => {\n\t\tconst handleDocumentClick = ( event: MouseEvent ) => {\n\t\t\t// Only clear selection if there's an active selection and click is outside the selected bar\n\t\t\tif ( selectedBarRef.current && ! selectedBarRef.current.contains( event.target as Node ) ) {\n\t\t\t\tclearSelectionAndRef();\n\t\t\t}\n\t\t};\n\n\t\tdocument.addEventListener( 'mousedown', handleDocumentClick );\n\n\t\treturn () => {\n\t\t\tdocument.removeEventListener( 'mousedown', handleDocumentClick );\n\t\t};\n\t}, [ clearSelectionAndRef ] );\n\n\t// Get component settings from theme with fallbacks\n\tconst { primaryColor, backgroundColor, positiveChangeColor, negativeChangeColor } =\n\t\tconversionFunnelChartSettings;\n\n\t// Resolve bar color using getElementStyles with primaryColor as override\n\tconst { color: barColor } = getElementStyles\n\t\t? getElementStyles( {\n\t\t\t\tindex: 0,\n\t\t\t\toverrideColor: primaryColor,\n\t\t } )\n\t\t: { color: primaryColor || '#000000' };\n\n\t// Determine change indicator color\n\tconst isPositiveChange = changeIndicator?.startsWith( '+' );\n\tconst changeColor = isPositiveChange ? positiveChangeColor : negativeChangeColor;\n\n\t// Create light background version of primary color if not set\n\tconst barBackgroundColor =\n\t\tbackgroundColor || hexToRgba( barColor, 0.08 ) || 'rgba(0, 0, 0, 0.08)';\n\n\t// Default main metric rendering function\n\tconst renderDefaultMainMetric = () => (\n\t\t<>\n\t\t\t<span className={ styles[ 'main-rate' ] }>{ formatPercentage( mainRate ) }</span>\n\t\t\t{ changeIndicator && (\n\t\t\t\t<span className={ styles[ 'change-indicator' ] } style={ { color: changeColor } }>\n\t\t\t\t\t{ changeIndicator }\n\t\t\t\t</span>\n\t\t\t) }\n\t\t</>\n\t);\n\n\t// Default tooltip rendering function\n\tconst renderDefaultTooltip = ( step: FunnelStep ) => (\n\t\t<>\n\t\t\t<div className={ styles[ 'tooltip-title' ] }>{ step.label }</div>\n\t\t\t<div className={ styles[ 'tooltip-content' ] }>\n\t\t\t\t{ formatPercentage( step.rate ) }\n\t\t\t\t{ ` • ${ step.count ?? 'no' } items` }\n\t\t\t</div>\n\t\t</>\n\t);\n\n\t// Validate data\n\tconst isDataValid = Boolean( steps && steps.length > 0 );\n\n\t// Memoize metadata to prevent unnecessary re-registration\n\tconst chartMetadata = useMemo(\n\t\t() => ( {\n\t\t\tmainRate,\n\t\t\tchangeIndicator,\n\t\t\tstepsCount: steps?.length || 0,\n\t\t} ),\n\t\t[ mainRate, changeIndicator, steps?.length ]\n\t);\n\n\tuseChartRegistration( {\n\t\tchartId,\n\t\tlegendItems: [],\n\t\tchartType: 'conversion-funnel',\n\t\tisDataValid,\n\t\tmetadata: chartMetadata,\n\t} );\n\n\tconst prefersReducedMotion = usePrefersReducedMotion();\n\n\t// Handle empty or undefined data\n\tif ( ! isDataValid ) {\n\t\treturn (\n\t\t\t<div\n\t\t\t\tclassName={ clsx( styles.conversionFunnelChart, loading && styles.loading, className ) }\n\t\t\t\tstyle={ style }\n\t\t\t>\n\t\t\t\t<div className={ styles[ 'empty-state' ] }>\n\t\t\t\t\t{ loading ? 'Loading...' : 'No data available' }\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t);\n\t}\n\n\t// Calculate bar heights relative to the maximum (first step)\n\tconst maxRate = Math.max( ...steps.map( step => step.rate ) );\n\n\treturn (\n\t\t<>\n\t\t\t<div\n\t\t\t\tref={ node => {\n\t\t\t\t\t// Set containerRef for @visx coordinate system\n\t\t\t\t\tportalContainerRef( node );\n\t\t\t\t\tchartRef.current = node;\n\t\t\t\t} }\n\t\t\t\tclassName={ clsx( styles.conversionFunnelChart, loading && styles.loading, className ) }\n\t\t\t\tstyle={ style }\n\t\t\t>\n\t\t\t\t{ /* Main Metric */ }\n\t\t\t\t{ renderMainMetric ? (\n\t\t\t\t\trenderMainMetric( {\n\t\t\t\t\t\tmainRate,\n\t\t\t\t\t\tchangeIndicator,\n\t\t\t\t\t\tclassName: styles[ 'main-metric' ],\n\t\t\t\t\t\tchangeColor,\n\t\t\t\t\t} )\n\t\t\t\t) : (\n\t\t\t\t\t<div className={ styles[ 'main-metric' ] }>{ renderDefaultMainMetric() }</div>\n\t\t\t\t) }\n\n\t\t\t\t{ /* Funnel Steps */ }\n\t\t\t\t<div className={ styles[ 'funnel-container' ] }>\n\t\t\t\t\t{ steps.map( ( step, index ) => {\n\t\t\t\t\t\tconst barHeight = ( step.rate / maxRate ) * 100;\n\t\t\t\t\t\tconst { isBlurred } = getStepState( step.id );\n\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tkey={ step.id }\n\t\t\t\t\t\t\t\tclassName={ clsx( styles[ 'funnel-step' ], isBlurred && styles.blurred ) }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ /* Step Label and Rate */ }\n\t\t\t\t\t\t\t\t<div className={ styles[ 'step-header' ] }>\n\t\t\t\t\t\t\t\t\t{ renderStepLabel ? (\n\t\t\t\t\t\t\t\t\t\trenderStepLabel( {\n\t\t\t\t\t\t\t\t\t\t\tstep,\n\t\t\t\t\t\t\t\t\t\t\tindex,\n\t\t\t\t\t\t\t\t\t\t\tclassName: styles[ 'step-label' ],\n\t\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t<span className={ styles[ 'step-label' ] }>{ step.label }</span>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t{ renderStepRate ? (\n\t\t\t\t\t\t\t\t\t\trenderStepRate( {\n\t\t\t\t\t\t\t\t\t\t\tstep,\n\t\t\t\t\t\t\t\t\t\t\tindex,\n\t\t\t\t\t\t\t\t\t\t\tclassName: styles[ 'step-rate' ],\n\t\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t<span className={ styles[ 'step-rate' ] }>\n\t\t\t\t\t\t\t\t\t\t\t{ formatPercentage( step.rate ) }\n\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t\t{ /* Funnel Bar */ }\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\tclassName={ clsx( styles[ 'bar-container' ], isBlurred && styles.disabled ) }\n\t\t\t\t\t\t\t\t\tonClick={ stepHandlers.get( step.id )?.onClick }\n\t\t\t\t\t\t\t\t\tonKeyDown={ stepHandlers.get( step.id )?.onKeyDown }\n\t\t\t\t\t\t\t\t\trole=\"button\"\n\t\t\t\t\t\t\t\t\ttabIndex={ isBlurred ? -1 : 0 }\n\t\t\t\t\t\t\t\t\taria-label={ step.label }\n\t\t\t\t\t\t\t\t\tstyle={ { backgroundColor: barBackgroundColor } }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\tclassName={ clsx( styles[ 'funnel-bar' ], {\n\t\t\t\t\t\t\t\t\t\t\t[ styles[ 'funnel-bar--animated' ] ]:\n\t\t\t\t\t\t\t\t\t\t\t\tanimation && ! loading && ! prefersReducedMotion,\n\t\t\t\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\t\t\t\t\theight: `${ barHeight }%`,\n\t\t\t\t\t\t\t\t\t\t\tbackgroundColor: barColor,\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t);\n\t\t\t\t\t} ) }\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t{ /* Tooltip Portal */ }\n\t\t\t{ tooltipOpen &&\n\t\t\t\ttooltipData &&\n\t\t\t\t( () => {\n\t\t\t\t\tconst tooltipContent = renderTooltip\n\t\t\t\t\t\t? renderTooltip( {\n\t\t\t\t\t\t\t\tstep: tooltipData as FunnelStep,\n\t\t\t\t\t\t\t\tindex: steps.findIndex( s => s.id === ( tooltipData as FunnelStep ).id ),\n\t\t\t\t\t\t\t\ttop: tooltipTop,\n\t\t\t\t\t\t\t\tleft: tooltipLeft,\n\t\t\t\t\t\t\t\tclassName: styles[ 'tooltip-wrapper' ],\n\t\t\t\t\t\t } )\n\t\t\t\t\t\t: renderDefaultTooltip( tooltipData as FunnelStep );\n\n\t\t\t\t\t// Don't render tooltip if renderTooltip returns falsy\n\t\t\t\t\tif ( ! tooltipContent ) return null;\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<TooltipInPortal\n\t\t\t\t\t\t\t// set this to random so it correctly updates with parent bounds\n\t\t\t\t\t\t\tkey={ Math.random() }\n\t\t\t\t\t\t\ttop={ tooltipTop }\n\t\t\t\t\t\t\tleft={ tooltipLeft }\n\t\t\t\t\t\t\tclassName={ styles[ 'tooltip-wrapper' ] }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ tooltipContent }\n\t\t\t\t\t\t</TooltipInPortal>\n\t\t\t\t\t);\n\t\t\t\t} )() }\n\t\t</>\n\t);\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: FC< ConversionFunnelChartProps > = props => {\n\tconst existingContext = useContext( GlobalChartsContext );\n\n\t// If we're already in a GlobalChartsProvider context, don't create a new one\n\tif ( existingContext ) {\n\t\treturn <ConversionFunnelChartInternal { ...props } />;\n\t}\n\n\t// Otherwise, create our own GlobalChartsProvider\n\treturn (\n\t\t<GlobalChartsProvider>\n\t\t\t<ConversionFunnelChartInternal { ...props } />\n\t\t</GlobalChartsProvider>\n\t);\n};\n\nConversionFunnelChartWithProvider.displayName = 'ConversionFunnelChart';\n\nexport { ConversionFunnelChartWithProvider as default };\n","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,22 +1,22 @@
1
1
  import {
2
2
  radial_wipe_animation_default
3
3
  } from "./chunk-A3AEEGKR.js";
4
- import {
5
- BaseTooltip
6
- } from "./chunk-5XI443YP.js";
7
4
  import {
8
5
  ChartHTML,
9
6
  ChartSVG,
10
7
  useChartChildren
11
8
  } from "./chunk-CEZGL6YP.js";
12
- import {
13
- withResponsive
14
- } from "./chunk-NONODB3K.js";
15
9
  import {
16
10
  Legend,
17
11
  SingleChartContext,
18
12
  useChartLegendItems
19
- } from "./chunk-VER6S543.js";
13
+ } from "./chunk-ALDWCNLH.js";
14
+ import {
15
+ BaseTooltip
16
+ } from "./chunk-5XI443YP.js";
17
+ import {
18
+ withResponsive
19
+ } from "./chunk-NONODB3K.js";
20
20
  import {
21
21
  GlobalChartsContext,
22
22
  GlobalChartsProvider,
@@ -26,10 +26,10 @@ import {
26
26
  useGlobalChartsContext,
27
27
  useInteractiveLegendData,
28
28
  usePrefersReducedMotion
29
- } from "./chunk-O2BJMTIS.js";
29
+ } from "./chunk-DYMJWNYM.js";
30
30
  import {
31
31
  attachSubComponents
32
- } from "./chunk-P3QEXFTA.js";
32
+ } from "./chunk-TE63Y5PX.js";
33
33
 
34
34
  // src/charts/pie-semi-circle-chart/pie-semi-circle-chart.tsx
35
35
  import { localPoint } from "@visx/event";
@@ -349,4 +349,4 @@ export {
349
349
  PieSemiCircleChart,
350
350
  PieSemiCircleChartResponsive
351
351
  };
352
- //# sourceMappingURL=chunk-4RYV2TII.js.map
352
+ //# sourceMappingURL=chunk-6RKPV3UP.js.map
@@ -3,10 +3,10 @@ import {
3
3
  useGlobalChartsContext,
4
4
  useGlobalChartsTheme,
5
5
  useTextTruncation
6
- } from "./chunk-O2BJMTIS.js";
6
+ } from "./chunk-DYMJWNYM.js";
7
7
  import {
8
8
  formatPercentage
9
- } from "./chunk-P3QEXFTA.js";
9
+ } from "./chunk-TE63Y5PX.js";
10
10
 
11
11
  // src/components/legend/legend.tsx
12
12
  import { useContext as useContext3, useMemo, forwardRef as forwardRef2 } from "react";
@@ -452,4 +452,4 @@ export {
452
452
  Legend,
453
453
  useChartLegendItems
454
454
  };
455
- //# sourceMappingURL=chunk-VER6S543.js.map
455
+ //# sourceMappingURL=chunk-ALDWCNLH.js.map
@@ -0,0 +1,121 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
2
+
3
+ var _chunkMUUSZ7J5cjs = require('./chunk-MUUSZ7J5.cjs');
4
+
5
+
6
+
7
+
8
+ var _chunkWKN6C4ZEcjs = require('./chunk-WKN6C4ZE.cjs');
9
+
10
+
11
+
12
+
13
+ var _chunkZVGEDXDPcjs = require('./chunk-ZVGEDXDP.cjs');
14
+
15
+ // src/charts/geo-chart/geo-chart.tsx
16
+ var _i18n = require('@wordpress/i18n');
17
+ var _clsx = require('clsx'); var _clsx2 = _interopRequireDefault(_clsx);
18
+ var _react = require('react');
19
+ var _reactgooglecharts = require('react-google-charts');
20
+
21
+ // src/charts/geo-chart/geo-chart.module.scss
22
+ var geo_chart_module_default = {
23
+ "container": "a8ccharts-JvcqOz"
24
+ };
25
+
26
+ // src/charts/geo-chart/geo-chart.tsx
27
+ var _jsxruntime = require('react/jsx-runtime');
28
+ var DEFAULT_FEATURE_FILL_COLOR = "#ffffff";
29
+ var DEFAULT_BACKGROUND_COLOR = "#ffffff";
30
+ var GeoChartInternal = ({
31
+ className,
32
+ data,
33
+ width,
34
+ height,
35
+ region = "world",
36
+ resolution = "countries",
37
+ renderPlaceholder
38
+ }) => {
39
+ const {
40
+ getElementStyles,
41
+ theme: {
42
+ geoChart: { featureFillColor },
43
+ backgroundColor
44
+ }
45
+ } = _chunkWKN6C4ZEcjs.useGlobalChartsContext.call(void 0, );
46
+ const loadingPlaceholder = /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
47
+ "div",
48
+ {
49
+ className: _clsx2.default.call(void 0, "geo-chart", geo_chart_module_default.container, className),
50
+ "data-testid": "geo-chart-loading",
51
+ style: { width, height },
52
+ children: renderPlaceholder ? renderPlaceholder() : _i18n.__.call(void 0, "Loading map", "jetpack-charts")
53
+ }
54
+ );
55
+ const fullColorHex = getElementStyles({ index: 0 }).color;
56
+ const lightColorHex = _chunkZVGEDXDPcjs.lightenHexColor.call(void 0, fullColorHex, 0.8);
57
+ const backgroundColorHex = _chunkZVGEDXDPcjs.normalizeColorToHex.call(void 0, backgroundColor, null, _chunkZVGEDXDPcjs.resolveCssVariable) || DEFAULT_BACKGROUND_COLOR;
58
+ const defaultFillColorHex = _chunkZVGEDXDPcjs.normalizeColorToHex.call(void 0, featureFillColor, null, _chunkZVGEDXDPcjs.resolveCssVariable) || DEFAULT_FEATURE_FILL_COLOR;
59
+ const hasHtmlTooltips = _react.useMemo.call(void 0,
60
+ () => data.length > 0 && data[0].some(
61
+ (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
62
+ ),
63
+ [data]
64
+ );
65
+ const options = _react.useMemo.call(void 0,
66
+ () => ({
67
+ ...region !== "world" && { region },
68
+ ...resolution !== "countries" && { resolution },
69
+ colorAxis: { colors: [lightColorHex, fullColorHex] },
70
+ backgroundColor: backgroundColorHex,
71
+ datalessRegionColor: defaultFillColorHex,
72
+ defaultColor: defaultFillColorHex,
73
+ tooltip: { trigger: "focus", isHtml: hasHtmlTooltips },
74
+ legend: "none",
75
+ keepAspectRatio: true
76
+ }),
77
+ [
78
+ region,
79
+ resolution,
80
+ lightColorHex,
81
+ fullColorHex,
82
+ backgroundColorHex,
83
+ defaultFillColorHex,
84
+ hasHtmlTooltips
85
+ ]
86
+ );
87
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
88
+ "div",
89
+ {
90
+ className: _clsx2.default.call(void 0, "geo-chart", geo_chart_module_default.container, className),
91
+ "data-testid": "geo-chart",
92
+ style: { width, height, backgroundColor },
93
+ children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
94
+ _reactgooglecharts.Chart,
95
+ {
96
+ chartType: "GeoChart",
97
+ width,
98
+ height,
99
+ data,
100
+ options,
101
+ loader: loadingPlaceholder
102
+ }
103
+ )
104
+ }
105
+ );
106
+ };
107
+ var GeoChartWithProvider = (props) => {
108
+ const existingContext = _react.useContext.call(void 0, _chunkWKN6C4ZEcjs.GlobalChartsContext);
109
+ if (existingContext) {
110
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, GeoChartInternal, { ...props });
111
+ }
112
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkWKN6C4ZEcjs.GlobalChartsProvider, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, GeoChartInternal, { ...props }) });
113
+ };
114
+ GeoChartWithProvider.displayName = "GeoChart";
115
+ var GeoChartResponsive = _chunkMUUSZ7J5cjs.withResponsive.call(void 0, GeoChartWithProvider);
116
+
117
+
118
+
119
+
120
+ exports.GeoChartWithProvider = GeoChartWithProvider; exports.GeoChartResponsive = GeoChartResponsive;
121
+ //# sourceMappingURL=chunk-CLSMJQCO.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/home/runner/work/jetpack/jetpack/projects/js-packages/charts/dist/chunk-CLSMJQCO.cjs","../src/charts/geo-chart/geo-chart.tsx","../src/charts/geo-chart/geo-chart.module.scss"],"names":[],"mappings":"AAAA;AACE;AACF,wDAA6B;AAC7B;AACE;AACA;AACA;AACF,wDAA6B;AAC7B;AACE;AACA;AACA;AACF,wDAA6B;AAC7B;AACA;ACXA,uCAAmB;AACnB,wEAAiB;AACjB,8BAAwC;AACxC,wDAA+C;ADa/C;AACA;AEpB8D,IAAO,yBAAA,EAAQ;AAAA,EAC3E,WAAA,EAAa;AACf,CAAA;AFsBA;AACA;ACiCE,+CAAA;AAzCF,IAAM,2BAAA,EAA6B,SAAA;AACnC,IAAM,yBAAA,EAA2B,SAAA;AAqBjC,IAAM,iBAAA,EAAwC,CAAE;AAAA,EAC/C,SAAA;AAAA,EACA,IAAA;AAAA,EACA,KAAA;AAAA,EACA,MAAA;AAAA,EACA,OAAA,EAAS,OAAA;AAAA,EACT,WAAA,EAAa,WAAA;AAAA,EACb;AACD,CAAA,EAAA,GAAO;AACN,EAAA,MAAM;AAAA,IACL,gBAAA;AAAA,IACA,KAAA,EAAO;AAAA,MACN,QAAA,EAAU,EAAE,iBAAiB,CAAA;AAAA,MAC7B;AAAA,IACD;AAAA,EACD,EAAA,EAAI,sDAAA,CAAuB;AAG3B,EAAA,MAAM,mBAAA,kBACL,6BAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACA,SAAA,EAAY,4BAAA,WAAM,EAAa,wBAAA,CAAO,SAAA,EAAW,SAAU,CAAA;AAAA,MAC3D,aAAA,EAAY,mBAAA;AAAA,MACZ,KAAA,EAAQ,EAAE,KAAA,EAAO,OAAO,CAAA;AAAA,MAEtB,QAAA,EAAA,kBAAA,EAAoB,iBAAA,CAAkB,EAAA,EAAI,sBAAA,aAAI,EAAe,gBAAiB;AAAA,IAAA;AAAA,EACjF,CAAA;AAID,EAAA,MAAM,aAAA,EAAe,gBAAA,CAAkB,EAAE,KAAA,EAAO,EAAE,CAAE,CAAA,CAAE,KAAA;AACtD,EAAA,MAAM,cAAA,EAAgB,+CAAA,YAAiB,EAAc,GAAI,CAAA;AAEzD,EAAA,MAAM,mBAAA,EACL,mDAAA,eAAqB,EAAiB,IAAA,EAAM,oCAAmB,EAAA,GAAK,wBAAA;AACrE,EAAA,MAAM,oBAAA,EACL,mDAAA,gBAAqB,EAAkB,IAAA,EAAM,oCAAmB,EAAA,GAAK,0BAAA;AAGtE,EAAA,MAAM,gBAAA,EAAkB,4BAAA;AAAA,IACvB,CAAA,EAAA,GACC,IAAA,CAAK,OAAA,EAAS,EAAA,GACd,IAAA,CAAM,CAAE,CAAA,CAAE,IAAA;AAAA,MACT,CAAA,GAAA,EAAA,GACC,OAAO,IAAA,IAAQ,SAAA,GACf,IAAA,IAAQ,KAAA,GACR,OAAA,GAAU,IAAA,GACV,GAAA,CAAI,KAAA,IAAS,UAAA,GACb,IAAA,GAAO,IAAA,GACP,OAAO,GAAA,CAAI,EAAA,IAAM,SAAA,GACjB,GAAA,CAAI,EAAA,IAAM,KAAA,GACV,OAAA,GAAU,GAAA,CAAI,EAAA,GACd,GAAA,CAAI,CAAA,CAAE,KAAA,IAAS;AAAA,IACjB,CAAA;AAAA,IACD,CAAE,IAAK;AAAA,EACR,CAAA;AAEA,EAAA,MAAM,QAAA,EAA8B,4BAAA;AAAA,IACnC,CAAA,EAAA,GAAA,CAAQ;AAAA,MACP,GAAK,OAAA,IAAW,QAAA,GAAW,EAAE,OAAO,CAAA;AAAA,MACpC,GAAK,WAAA,IAAe,YAAA,GAAe,EAAE,WAAW,CAAA;AAAA,MAChD,SAAA,EAAW,EAAE,MAAA,EAAQ,CAAE,aAAA,EAAe,YAAa,EAAE,CAAA;AAAA,MACrD,eAAA,EAAiB,kBAAA;AAAA,MACjB,mBAAA,EAAqB,mBAAA;AAAA,MACrB,YAAA,EAAc,mBAAA;AAAA,MACd,OAAA,EAAS,EAAE,OAAA,EAAS,OAAA,EAAS,MAAA,EAAQ,gBAAgB,CAAA;AAAA,MACrD,MAAA,EAAQ,MAAA;AAAA,MACR,eAAA,EAAiB;AAAA,IAClB,CAAA,CAAA;AAAA,IACA;AAAA,MACC,MAAA;AAAA,MACA,UAAA;AAAA,MACA,aAAA;AAAA,MACA,YAAA;AAAA,MACA,kBAAA;AAAA,MACA,mBAAA;AAAA,MACA;AAAA,IACD;AAAA,EACD,CAAA;AAEA,EAAA,uBACC,6BAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACA,SAAA,EAAY,4BAAA,WAAM,EAAa,wBAAA,CAAO,SAAA,EAAW,SAAU,CAAA;AAAA,MAC3D,aAAA,EAAY,WAAA;AAAA,MACZ,KAAA,EAAQ,EAAE,KAAA,EAAO,MAAA,EAAQ,gBAAgB,CAAA;AAAA,MAEzC,QAAA,kBAAA,6BAAA;AAAA,QAAC,wBAAA;AAAA,QAAA;AAAA,UACA,SAAA,EAAU,UAAA;AAAA,UACV,KAAA;AAAA,UACA,MAAA;AAAA,UACA,IAAA;AAAA,UACA,OAAA;AAAA,UACA,MAAA,EAAS;AAAA,QAAA;AAAA,MACV;AAAA,IAAA;AAAA,EACD,CAAA;AAEF,CAAA;AAEA,IAAM,qBAAA,EAA4C,CAAA,KAAA,EAAA,GAAS;AAC1D,EAAA,MAAM,gBAAA,EAAkB,+BAAA,qCAAgC,CAAA;AAGxD,EAAA,GAAA,CAAK,eAAA,EAAkB;AACtB,IAAA,uBAAO,6BAAA,gBAAC,EAAA,EAAmB,GAAG,MAAA,CAAQ,CAAA;AAAA,EACvC;AAGA,EAAA,uBACC,6BAAA,sCAAC,EAAA,EACA,QAAA,kBAAA,6BAAA,gBAAC,EAAA,EAAmB,GAAG,MAAA,CAAQ,EAAA,CAChC,CAAA;AAEF,CAAA;AAEA,oBAAA,CAAqB,YAAA,EAAc,UAAA;AAEnC,IAAM,mBAAA,EAAqB,8CAAA,oBAAsD,CAAA;ADvCjF;AACA;AACE;AACA;AACF,qGAAC","file":"/home/runner/work/jetpack/jetpack/projects/js-packages/charts/dist/chunk-CLSMJQCO.cjs","sourcesContent":[null,"/**\n * External dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport clsx from 'clsx';\nimport { FC, useContext, useMemo } from 'react';\nimport { Chart, type GoogleChartOptions } from 'react-google-charts';\n/**\n * Internal dependencies\n */\nimport { GlobalChartsContext, GlobalChartsProvider, useGlobalChartsContext } from '../../providers';\nimport { lightenHexColor, normalizeColorToHex } from '../../utils/color-utils';\nimport { resolveCssVariable } from '../../utils/resolve-css-var';\nimport { withResponsive } from '../private/with-responsive';\nimport styles from './geo-chart.module.scss';\nimport { GeoChartProps } from './types';\n\nconst DEFAULT_FEATURE_FILL_COLOR = '#ffffff';\nconst DEFAULT_BACKGROUND_COLOR = '#ffffff';\n\n/**\n * Renders a geographical chart using Google Charts GeoChart to visualize data.\n *\n * Supports the full Google Charts data format including custom tooltips, formatted values,\n * and multiple data columns for maximum flexibility.\n *\n * Locations can be identified by full name (e.g., 'United States', 'California') or codes\n * (e.g., 'US', 'US-CA'). Full names are recommended for better readability in tooltips.\n *\n * @param props - The props for the GeoChart component\n * @param props.data - Data in Google Charts format (array of arrays with headers)\n * @param props.width - Width of the chart in pixels\n * @param props.height - Height of the chart in pixels\n * @param props.region - Region to display ('world', 'US', or ISO 3166-1 alpha-2 code)\n * @param props.resolution - Resolution level ('countries', 'provinces', or 'metros')\n * @param props.className - Additional CSS class name for the chart container\n * @param props.renderPlaceholder - Optional render function for the loading placeholder\n * @return A React component displaying an interactive map with data visualization\n */\nconst GeoChartInternal: FC< GeoChartProps > = ( {\n\tclassName,\n\tdata,\n\twidth,\n\theight,\n\tregion = 'world',\n\tresolution = 'countries',\n\trenderPlaceholder,\n} ) => {\n\tconst {\n\t\tgetElementStyles,\n\t\ttheme: {\n\t\t\tgeoChart: { featureFillColor },\n\t\t\tbackgroundColor,\n\t\t},\n\t} = useGlobalChartsContext();\n\n\t// Render loading placeholder\n\tconst loadingPlaceholder = (\n\t\t<div\n\t\t\tclassName={ clsx( 'geo-chart', styles.container, className ) }\n\t\t\tdata-testid=\"geo-chart-loading\"\n\t\t\tstyle={ { width, height } }\n\t\t>\n\t\t\t{ renderPlaceholder ? renderPlaceholder() : __( 'Loading map', 'jetpack-charts' ) }\n\t\t</div>\n\t);\n\n\t// Google charts doesn't accept CSS variables, so we need to convert them to hex colors\n\tconst fullColorHex = getElementStyles( { index: 0 } ).color;\n\tconst lightColorHex = lightenHexColor( fullColorHex, 0.8 );\n\t// Use normalizeColorToHex to ensure HSL/RGB values from CSS variables are converted to hex\n\tconst backgroundColorHex =\n\t\tnormalizeColorToHex( backgroundColor, null, resolveCssVariable ) || DEFAULT_BACKGROUND_COLOR;\n\tconst defaultFillColorHex =\n\t\tnormalizeColorToHex( featureFillColor, null, resolveCssVariable ) || DEFAULT_FEATURE_FILL_COLOR;\n\n\t// Check if data has HTML tooltips (column with role: 'tooltip' and p.html: true)\n\tconst hasHtmlTooltips = useMemo(\n\t\t() =>\n\t\t\tdata.length > 0 &&\n\t\t\tdata[ 0 ].some(\n\t\t\t\tcol =>\n\t\t\t\t\ttypeof col === 'object' &&\n\t\t\t\t\tcol !== null &&\n\t\t\t\t\t'role' in col &&\n\t\t\t\t\tcol.role === 'tooltip' &&\n\t\t\t\t\t'p' in col &&\n\t\t\t\t\ttypeof col.p === 'object' &&\n\t\t\t\t\tcol.p !== null &&\n\t\t\t\t\t'html' in col.p &&\n\t\t\t\t\tcol.p.html === true\n\t\t\t),\n\t\t[ data ]\n\t);\n\n\tconst options: GoogleChartOptions = useMemo(\n\t\t() => ( {\n\t\t\t...( region !== 'world' && { region } ),\n\t\t\t...( resolution !== 'countries' && { resolution } ),\n\t\t\tcolorAxis: { colors: [ lightColorHex, fullColorHex ] },\n\t\t\tbackgroundColor: backgroundColorHex,\n\t\t\tdatalessRegionColor: defaultFillColorHex,\n\t\t\tdefaultColor: defaultFillColorHex,\n\t\t\ttooltip: { trigger: 'focus', isHtml: hasHtmlTooltips },\n\t\t\tlegend: 'none',\n\t\t\tkeepAspectRatio: true,\n\t\t} ),\n\t\t[\n\t\t\tregion,\n\t\t\tresolution,\n\t\t\tlightColorHex,\n\t\t\tfullColorHex,\n\t\t\tbackgroundColorHex,\n\t\t\tdefaultFillColorHex,\n\t\t\thasHtmlTooltips,\n\t\t]\n\t);\n\n\treturn (\n\t\t<div\n\t\t\tclassName={ clsx( 'geo-chart', styles.container, className ) }\n\t\t\tdata-testid=\"geo-chart\"\n\t\t\tstyle={ { width, height, backgroundColor } }\n\t\t>\n\t\t\t<Chart\n\t\t\t\tchartType=\"GeoChart\"\n\t\t\t\twidth={ width }\n\t\t\t\theight={ height }\n\t\t\t\tdata={ data }\n\t\t\t\toptions={ options }\n\t\t\t\tloader={ loadingPlaceholder }\n\t\t\t/>\n\t\t</div>\n\t);\n};\n\nconst GeoChartWithProvider: FC< GeoChartProps > = props => {\n\tconst existingContext = useContext( GlobalChartsContext );\n\n\t// If we're already in a GlobalChartsProvider context, don't create a new one\n\tif ( existingContext ) {\n\t\treturn <GeoChartInternal { ...props } />;\n\t}\n\n\t// Otherwise, create our own GlobalChartsProvider\n\treturn (\n\t\t<GlobalChartsProvider>\n\t\t\t<GeoChartInternal { ...props } />\n\t\t</GlobalChartsProvider>\n\t);\n};\n\nGeoChartWithProvider.displayName = 'GeoChart';\n\nconst GeoChartResponsive = withResponsive< GeoChartProps >( GeoChartWithProvider );\n\nexport { GeoChartResponsive as default, GeoChartWithProvider as GeoChartUnresponsive };\n","import 'css-chunk:src/charts/geo-chart/geo-chart.module.scss';export default {\n \"container\": \"a8ccharts-JvcqOz\"\n};"]}
@@ -6,15 +6,15 @@ import {
6
6
  useGlobalChartsContext,
7
7
  useGlobalChartsTheme,
8
8
  usePrefersReducedMotion
9
- } from "./chunk-O2BJMTIS.js";
9
+ } from "./chunk-DYMJWNYM.js";
10
10
  import {
11
- formatPercentage
12
- } from "./chunk-P3QEXFTA.js";
11
+ formatPercentage,
12
+ hexToRgba
13
+ } from "./chunk-TE63Y5PX.js";
13
14
 
14
15
  // src/charts/conversion-funnel-chart/conversion-funnel-chart.tsx
15
16
  import { localPoint } from "@visx/event";
16
17
  import { useTooltip, useTooltipInPortal } from "@visx/tooltip";
17
- import { color as d3Color } from "@visx/vendor/d3-color";
18
18
  import clsx from "clsx";
19
19
  import { useRef, useMemo, useEffect, useCallback as useCallback2, useContext } from "react";
20
20
 
@@ -233,7 +233,7 @@ var ConversionFunnelChartInternal = ({
233
233
  }) : { color: primaryColor || "#000000" };
234
234
  const isPositiveChange = changeIndicator?.startsWith("+");
235
235
  const changeColor = isPositiveChange ? positiveChangeColor : negativeChangeColor;
236
- const barBackgroundColor = backgroundColor || d3Color(barColor)?.copy({ opacity: 0.08 }).formatRgb() || "rgba(0, 0, 0, 0.08)";
236
+ const barBackgroundColor = backgroundColor || hexToRgba(barColor, 0.08) || "rgba(0, 0, 0, 0.08)";
237
237
  const renderDefaultMainMetric = () => /* @__PURE__ */ jsxs(Fragment, { children: [
238
238
  /* @__PURE__ */ jsx("span", { className: conversion_funnel_chart_module_default["main-rate"], children: formatPercentage(mainRate) }),
239
239
  changeIndicator && /* @__PURE__ */ jsx("span", { className: conversion_funnel_chart_module_default["change-indicator"], style: { color: changeColor }, children: changeIndicator })
@@ -376,4 +376,4 @@ ConversionFunnelChartWithProvider.displayName = "ConversionFunnelChart";
376
376
  export {
377
377
  ConversionFunnelChartWithProvider
378
378
  };
379
- //# sourceMappingURL=chunk-2FRTJVQ3.js.map
379
+ //# sourceMappingURL=chunk-DCZ47KPZ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../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"],"sourcesContent":["import { localPoint } from '@visx/event';\nimport { useTooltip, useTooltipInPortal } from '@visx/tooltip';\nimport clsx from 'clsx';\nimport { type FC, useRef, useMemo, useEffect, useCallback, useContext } from 'react';\nimport { usePrefersReducedMotion } from '../../hooks';\nimport {\n\tGlobalChartsProvider,\n\tGlobalChartsContext,\n\tuseChartId,\n\tuseChartRegistration,\n\tuseGlobalChartsTheme,\n\tuseGlobalChartsContext,\n} from '../../providers';\nimport { formatPercentage, hexToRgba } from '../../utils';\nimport styles from './conversion-funnel-chart.module.scss';\nimport { useFunnelSelection } from './private';\nimport type { FunnelStep, ConversionFunnelChartProps } from './types';\n\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.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: FC< ConversionFunnelChartProps > = ( {\n\tmainRate,\n\tchangeIndicator,\n\tsteps,\n\tloading = false,\n\tanimation,\n\tclassName,\n\tchartId: providedChartId,\n\tstyle,\n\trenderStepLabel,\n\trenderStepRate,\n\trenderMainMetric,\n\trenderTooltip,\n} ) => {\n\tconst chartId = useChartId( providedChartId );\n\tconst { conversionFunnelChart: conversionFunnelChartSettings } = useGlobalChartsTheme();\n\tconst { getElementStyles } = useGlobalChartsContext();\n\tconst chartRef = useRef< HTMLDivElement >( null );\n\tconst selectedBarRef = useRef< HTMLDivElement | null >( null );\n\n\t// Use @visx/tooltip hooks for tooltip positioning\n\tconst { tooltipData, tooltipLeft, tooltipTop, tooltipOpen, showTooltip, hideTooltip } =\n\t\tuseTooltip();\n\n\t// Use custom hook for selection management\n\tconst { handleBarClick, handleBarKeyDown, clearSelection, getStepState } =\n\t\tuseFunnelSelection( hideTooltip );\n\tconst { containerRef: portalContainerRef, TooltipInPortal } = useTooltipInPortal( {\n\t\t// use TooltipWithBounds for boundary detection\n\t\tdetectBounds: true,\n\t\t// when tooltip containers are scrolled, this will correctly update the Tooltip position\n\t\tscroll: true,\n\t} );\n\n\t// Wrapper to clear selectedBarRef after clearing selection\n\tconst clearSelectionAndRef = useCallback( () => {\n\t\tclearSelection();\n\t\tselectedBarRef.current = null;\n\t\thideTooltip();\n\t}, [ clearSelection, hideTooltip ] );\n\n\t// Helper function to show tooltip at specific coordinates\n\tconst showTooltipAt = useCallback(\n\t\t( step: FunnelStep, x: number, y: number ) => {\n\t\t\tshowTooltip( {\n\t\t\t\ttooltipData: step,\n\t\t\t\ttooltipLeft: x,\n\t\t\t\ttooltipTop: y - 10,\n\t\t\t} );\n\t\t},\n\t\t[ showTooltip ]\n\t);\n\n\t// Helper function to get tooltip coordinates for mouse events\n\tconst getMouseTooltipCoords = useCallback( ( event: React.MouseEvent ) => {\n\t\tconst containerElement = chartRef.current;\n\t\tif ( containerElement ) {\n\t\t\tconst coords = localPoint( containerElement, event.nativeEvent );\n\t\t\tif ( coords ) {\n\t\t\t\treturn { x: coords.x, y: coords.y };\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}, [] );\n\n\t// Helper function to get tooltip coordinates for keyboard events\n\tconst getKeyboardTooltipCoords = useCallback( ( event: React.KeyboardEvent ) => {\n\t\tconst rect = event.currentTarget.getBoundingClientRect();\n\t\tconst containerElement = chartRef.current;\n\t\tif ( containerElement ) {\n\t\t\tconst containerRect = containerElement.getBoundingClientRect();\n\t\t\tconst x = rect.left + rect.width / 2 - containerRect.left;\n\t\t\tconst y = rect.top - containerRect.top;\n\t\t\treturn { x, y };\n\t\t}\n\t\treturn null;\n\t}, [] );\n\n\t// Helper function to handle step interaction (both click and keyboard)\n\tconst handleStepInteraction = useCallback(\n\t\t(\n\t\t\tstep: FunnelStep,\n\t\t\tevent: React.MouseEvent | React.KeyboardEvent,\n\t\t\tinteractionType: 'click' | 'keyboard'\n\t\t) => {\n\t\t\t// Store reference to the interacted element\n\t\t\tselectedBarRef.current = event.currentTarget as HTMLDivElement;\n\n\t\t\t// Check if deselecting the same step\n\t\t\tconst { isClicked } = getStepState( step.id );\n\t\t\tif ( isClicked ) {\n\t\t\t\t// Deselecting - clear selection (tooltip will be hidden by hook)\n\t\t\t\tif ( interactionType === 'click' ) {\n\t\t\t\t\thandleBarClick( step.id );\n\t\t\t\t} else {\n\t\t\t\t\thandleBarKeyDown( step.id, event as React.KeyboardEvent );\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Selecting - handle selection and show tooltip\n\t\t\tif ( interactionType === 'click' ) {\n\t\t\t\thandleBarClick( step.id );\n\t\t\t\tconst coords = getMouseTooltipCoords( event as React.MouseEvent );\n\t\t\t\tif ( coords ) {\n\t\t\t\t\tshowTooltipAt( step, coords.x, coords.y );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\thandleBarKeyDown( step.id, event as React.KeyboardEvent );\n\t\t\t\tconst coords = getKeyboardTooltipCoords( event as React.KeyboardEvent );\n\t\t\t\tif ( coords ) {\n\t\t\t\t\tshowTooltipAt( step, coords.x, coords.y );\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t[\n\t\t\tgetStepState,\n\t\t\thandleBarClick,\n\t\t\thandleBarKeyDown,\n\t\t\tshowTooltipAt,\n\t\t\tgetMouseTooltipCoords,\n\t\t\tgetKeyboardTooltipCoords,\n\t\t]\n\t);\n\n\t// Create handler factories to avoid arrow functions in JSX\n\tconst stepHandlers = useMemo( () => {\n\t\tconst handlers = new Map<\n\t\t\tstring,\n\t\t\t{\n\t\t\t\tonClick: ( event: React.MouseEvent ) => void;\n\t\t\t\tonKeyDown: ( event: React.KeyboardEvent ) => void;\n\t\t\t}\n\t\t>();\n\n\t\tsteps.forEach( step => {\n\t\t\tconst onClick = ( event: React.MouseEvent ) => {\n\t\t\t\tevent.stopPropagation();\n\t\t\t\thandleStepInteraction( step, event, 'click' );\n\t\t\t};\n\n\t\t\tconst onKeyDown = ( event: React.KeyboardEvent ) => {\n\t\t\t\tif ( event.key === 'Enter' || event.key === ' ' ) {\n\t\t\t\t\thandleStepInteraction( step, event, 'keyboard' );\n\t\t\t\t} else {\n\t\t\t\t\t// For other keys (like Escape), just handle the selection\n\t\t\t\t\tselectedBarRef.current = event.currentTarget as HTMLDivElement;\n\t\t\t\t\thandleBarKeyDown( step.id, event );\n\t\t\t\t}\n\t\t\t};\n\n\t\t\thandlers.set( step.id, { onClick, onKeyDown } );\n\t\t} );\n\n\t\treturn handlers;\n\t}, [ steps, handleStepInteraction, handleBarKeyDown ] );\n\n\t// Handle document-level click to clear selection when clicking outside selected bar\n\tuseEffect( () => {\n\t\tconst handleDocumentClick = ( event: MouseEvent ) => {\n\t\t\t// Only clear selection if there's an active selection and click is outside the selected bar\n\t\t\tif ( selectedBarRef.current && ! selectedBarRef.current.contains( event.target as Node ) ) {\n\t\t\t\tclearSelectionAndRef();\n\t\t\t}\n\t\t};\n\n\t\tdocument.addEventListener( 'mousedown', handleDocumentClick );\n\n\t\treturn () => {\n\t\t\tdocument.removeEventListener( 'mousedown', handleDocumentClick );\n\t\t};\n\t}, [ clearSelectionAndRef ] );\n\n\t// Get component settings from theme with fallbacks\n\tconst { primaryColor, backgroundColor, positiveChangeColor, negativeChangeColor } =\n\t\tconversionFunnelChartSettings;\n\n\t// Resolve bar color using getElementStyles with primaryColor as override\n\tconst { color: barColor } = getElementStyles\n\t\t? getElementStyles( {\n\t\t\t\tindex: 0,\n\t\t\t\toverrideColor: primaryColor,\n\t\t } )\n\t\t: { color: primaryColor || '#000000' };\n\n\t// Determine change indicator color\n\tconst isPositiveChange = changeIndicator?.startsWith( '+' );\n\tconst changeColor = isPositiveChange ? positiveChangeColor : negativeChangeColor;\n\n\t// Create light background version of primary color if not set\n\tconst barBackgroundColor =\n\t\tbackgroundColor || hexToRgba( barColor, 0.08 ) || 'rgba(0, 0, 0, 0.08)';\n\n\t// Default main metric rendering function\n\tconst renderDefaultMainMetric = () => (\n\t\t<>\n\t\t\t<span className={ styles[ 'main-rate' ] }>{ formatPercentage( mainRate ) }</span>\n\t\t\t{ changeIndicator && (\n\t\t\t\t<span className={ styles[ 'change-indicator' ] } style={ { color: changeColor } }>\n\t\t\t\t\t{ changeIndicator }\n\t\t\t\t</span>\n\t\t\t) }\n\t\t</>\n\t);\n\n\t// Default tooltip rendering function\n\tconst renderDefaultTooltip = ( step: FunnelStep ) => (\n\t\t<>\n\t\t\t<div className={ styles[ 'tooltip-title' ] }>{ step.label }</div>\n\t\t\t<div className={ styles[ 'tooltip-content' ] }>\n\t\t\t\t{ formatPercentage( step.rate ) }\n\t\t\t\t{ ` • ${ step.count ?? 'no' } items` }\n\t\t\t</div>\n\t\t</>\n\t);\n\n\t// Validate data\n\tconst isDataValid = Boolean( steps && steps.length > 0 );\n\n\t// Memoize metadata to prevent unnecessary re-registration\n\tconst chartMetadata = useMemo(\n\t\t() => ( {\n\t\t\tmainRate,\n\t\t\tchangeIndicator,\n\t\t\tstepsCount: steps?.length || 0,\n\t\t} ),\n\t\t[ mainRate, changeIndicator, steps?.length ]\n\t);\n\n\tuseChartRegistration( {\n\t\tchartId,\n\t\tlegendItems: [],\n\t\tchartType: 'conversion-funnel',\n\t\tisDataValid,\n\t\tmetadata: chartMetadata,\n\t} );\n\n\tconst prefersReducedMotion = usePrefersReducedMotion();\n\n\t// Handle empty or undefined data\n\tif ( ! isDataValid ) {\n\t\treturn (\n\t\t\t<div\n\t\t\t\tclassName={ clsx( styles.conversionFunnelChart, loading && styles.loading, className ) }\n\t\t\t\tstyle={ style }\n\t\t\t>\n\t\t\t\t<div className={ styles[ 'empty-state' ] }>\n\t\t\t\t\t{ loading ? 'Loading...' : 'No data available' }\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t);\n\t}\n\n\t// Calculate bar heights relative to the maximum (first step)\n\tconst maxRate = Math.max( ...steps.map( step => step.rate ) );\n\n\treturn (\n\t\t<>\n\t\t\t<div\n\t\t\t\tref={ node => {\n\t\t\t\t\t// Set containerRef for @visx coordinate system\n\t\t\t\t\tportalContainerRef( node );\n\t\t\t\t\tchartRef.current = node;\n\t\t\t\t} }\n\t\t\t\tclassName={ clsx( styles.conversionFunnelChart, loading && styles.loading, className ) }\n\t\t\t\tstyle={ style }\n\t\t\t>\n\t\t\t\t{ /* Main Metric */ }\n\t\t\t\t{ renderMainMetric ? (\n\t\t\t\t\trenderMainMetric( {\n\t\t\t\t\t\tmainRate,\n\t\t\t\t\t\tchangeIndicator,\n\t\t\t\t\t\tclassName: styles[ 'main-metric' ],\n\t\t\t\t\t\tchangeColor,\n\t\t\t\t\t} )\n\t\t\t\t) : (\n\t\t\t\t\t<div className={ styles[ 'main-metric' ] }>{ renderDefaultMainMetric() }</div>\n\t\t\t\t) }\n\n\t\t\t\t{ /* Funnel Steps */ }\n\t\t\t\t<div className={ styles[ 'funnel-container' ] }>\n\t\t\t\t\t{ steps.map( ( step, index ) => {\n\t\t\t\t\t\tconst barHeight = ( step.rate / maxRate ) * 100;\n\t\t\t\t\t\tconst { isBlurred } = getStepState( step.id );\n\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tkey={ step.id }\n\t\t\t\t\t\t\t\tclassName={ clsx( styles[ 'funnel-step' ], isBlurred && styles.blurred ) }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ /* Step Label and Rate */ }\n\t\t\t\t\t\t\t\t<div className={ styles[ 'step-header' ] }>\n\t\t\t\t\t\t\t\t\t{ renderStepLabel ? (\n\t\t\t\t\t\t\t\t\t\trenderStepLabel( {\n\t\t\t\t\t\t\t\t\t\t\tstep,\n\t\t\t\t\t\t\t\t\t\t\tindex,\n\t\t\t\t\t\t\t\t\t\t\tclassName: styles[ 'step-label' ],\n\t\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t<span className={ styles[ 'step-label' ] }>{ step.label }</span>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t{ renderStepRate ? (\n\t\t\t\t\t\t\t\t\t\trenderStepRate( {\n\t\t\t\t\t\t\t\t\t\t\tstep,\n\t\t\t\t\t\t\t\t\t\t\tindex,\n\t\t\t\t\t\t\t\t\t\t\tclassName: styles[ 'step-rate' ],\n\t\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t<span className={ styles[ 'step-rate' ] }>\n\t\t\t\t\t\t\t\t\t\t\t{ formatPercentage( step.rate ) }\n\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t\t{ /* Funnel Bar */ }\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\tclassName={ clsx( styles[ 'bar-container' ], isBlurred && styles.disabled ) }\n\t\t\t\t\t\t\t\t\tonClick={ stepHandlers.get( step.id )?.onClick }\n\t\t\t\t\t\t\t\t\tonKeyDown={ stepHandlers.get( step.id )?.onKeyDown }\n\t\t\t\t\t\t\t\t\trole=\"button\"\n\t\t\t\t\t\t\t\t\ttabIndex={ isBlurred ? -1 : 0 }\n\t\t\t\t\t\t\t\t\taria-label={ step.label }\n\t\t\t\t\t\t\t\t\tstyle={ { backgroundColor: barBackgroundColor } }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\tclassName={ clsx( styles[ 'funnel-bar' ], {\n\t\t\t\t\t\t\t\t\t\t\t[ styles[ 'funnel-bar--animated' ] ]:\n\t\t\t\t\t\t\t\t\t\t\t\tanimation && ! loading && ! prefersReducedMotion,\n\t\t\t\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\t\t\t\t\theight: `${ barHeight }%`,\n\t\t\t\t\t\t\t\t\t\t\tbackgroundColor: barColor,\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t);\n\t\t\t\t\t} ) }\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t{ /* Tooltip Portal */ }\n\t\t\t{ tooltipOpen &&\n\t\t\t\ttooltipData &&\n\t\t\t\t( () => {\n\t\t\t\t\tconst tooltipContent = renderTooltip\n\t\t\t\t\t\t? renderTooltip( {\n\t\t\t\t\t\t\t\tstep: tooltipData as FunnelStep,\n\t\t\t\t\t\t\t\tindex: steps.findIndex( s => s.id === ( tooltipData as FunnelStep ).id ),\n\t\t\t\t\t\t\t\ttop: tooltipTop,\n\t\t\t\t\t\t\t\tleft: tooltipLeft,\n\t\t\t\t\t\t\t\tclassName: styles[ 'tooltip-wrapper' ],\n\t\t\t\t\t\t } )\n\t\t\t\t\t\t: renderDefaultTooltip( tooltipData as FunnelStep );\n\n\t\t\t\t\t// Don't render tooltip if renderTooltip returns falsy\n\t\t\t\t\tif ( ! tooltipContent ) return null;\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<TooltipInPortal\n\t\t\t\t\t\t\t// set this to random so it correctly updates with parent bounds\n\t\t\t\t\t\t\tkey={ Math.random() }\n\t\t\t\t\t\t\ttop={ tooltipTop }\n\t\t\t\t\t\t\tleft={ tooltipLeft }\n\t\t\t\t\t\t\tclassName={ styles[ 'tooltip-wrapper' ] }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ tooltipContent }\n\t\t\t\t\t\t</TooltipInPortal>\n\t\t\t\t\t);\n\t\t\t\t} )() }\n\t\t</>\n\t);\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: FC< ConversionFunnelChartProps > = props => {\n\tconst existingContext = useContext( GlobalChartsContext );\n\n\t// If we're already in a GlobalChartsProvider context, don't create a new one\n\tif ( existingContext ) {\n\t\treturn <ConversionFunnelChartInternal { ...props } />;\n\t}\n\n\t// Otherwise, create our own GlobalChartsProvider\n\treturn (\n\t\t<GlobalChartsProvider>\n\t\t\t<ConversionFunnelChartInternal { ...props } />\n\t\t</GlobalChartsProvider>\n\t);\n};\n\nConversionFunnelChartWithProvider.displayName = 'ConversionFunnelChart';\n\nexport { ConversionFunnelChartWithProvider as default };\n","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"],"mappings":"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","names":["useCallback","useCallback"]}
@@ -1,15 +1,15 @@
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
3
 
4
- var _chunk7HROSZRScjs = require('./chunk-7HROSZRS.cjs');
5
4
 
5
+ var _chunkZPJHWKEKcjs = require('./chunk-ZPJHWKEK.cjs');
6
6
 
7
- var _chunkMUUSZ7J5cjs = require('./chunk-MUUSZ7J5.cjs');
8
7
 
9
8
 
9
+ var _chunk7HROSZRScjs = require('./chunk-7HROSZRS.cjs');
10
10
 
11
11
 
12
- var _chunkNYZFVI2Pcjs = require('./chunk-NYZFVI2P.cjs');
12
+ var _chunkMUUSZ7J5cjs = require('./chunk-MUUSZ7J5.cjs');
13
13
 
14
14
 
15
15
 
@@ -23,10 +23,10 @@ var _chunkNYZFVI2Pcjs = require('./chunk-NYZFVI2P.cjs');
23
23
 
24
24
 
25
25
 
26
- var _chunkW3H42XRVcjs = require('./chunk-W3H42XRV.cjs');
26
+ var _chunkWKN6C4ZEcjs = require('./chunk-WKN6C4ZE.cjs');
27
27
 
28
28
 
29
- var _chunkDAKYGZG6cjs = require('./chunk-DAKYGZG6.cjs');
29
+ var _chunkZVGEDXDPcjs = require('./chunk-ZVGEDXDP.cjs');
30
30
 
31
31
  // src/charts/bar-chart/bar-chart.tsx
32
32
  var _numberformatters = require('@automattic/number-formatters');
@@ -189,16 +189,16 @@ var BarChartInternal = ({
189
189
  children
190
190
  }) => {
191
191
  const horizontal = orientation === "horizontal";
192
- const chartId = _chunkW3H42XRVcjs.useChartId.call(void 0, providedChartId);
193
- const theme = _chunkW3H42XRVcjs.useXYChartTheme.call(void 0, data);
194
- const dataSorted = _chunkW3H42XRVcjs.useChartDataTransform.call(void 0, data);
195
- const dataWithVisibleZeros = _chunkW3H42XRVcjs.useZeroValueDisplay.call(void 0, dataSorted, {
192
+ const chartId = _chunkWKN6C4ZEcjs.useChartId.call(void 0, providedChartId);
193
+ const theme = _chunkWKN6C4ZEcjs.useXYChartTheme.call(void 0, data);
194
+ const dataSorted = _chunkWKN6C4ZEcjs.useChartDataTransform.call(void 0, data);
195
+ const dataWithVisibleZeros = _chunkWKN6C4ZEcjs.useZeroValueDisplay.call(void 0, dataSorted, {
196
196
  enabled: showZeroValues
197
197
  });
198
- const legendItems = _chunkNYZFVI2Pcjs.useChartLegendItems.call(void 0, dataSorted);
198
+ const legendItems = _chunkZPJHWKEKcjs.useChartLegendItems.call(void 0, dataSorted);
199
199
  const chartOptions = useBarChartOptions(dataWithVisibleZeros, horizontal, options);
200
- const defaultMargin = _chunkW3H42XRVcjs.useChartMargin.call(void 0, height, chartOptions, dataSorted, theme, horizontal);
201
- const [legendRef, legendHeight] = _chunkW3H42XRVcjs.useElementHeight.call(void 0, );
200
+ const defaultMargin = _chunkWKN6C4ZEcjs.useChartMargin.call(void 0, height, chartOptions, dataSorted, theme, horizontal);
201
+ const [legendRef, legendHeight] = _chunkWKN6C4ZEcjs.useElementHeight.call(void 0, );
202
202
  const chartRef = _react.useRef.call(void 0, null);
203
203
  const [selectedIndex, setSelectedIndex] = _react.useState.call(void 0, void 0);
204
204
  const [isNavigating, setIsNavigating] = _react.useState.call(void 0, false);
@@ -211,8 +211,8 @@ var BarChartInternal = ({
211
211
  chartRef,
212
212
  totalPoints
213
213
  });
214
- const { getElementStyles, isSeriesVisible } = _chunkW3H42XRVcjs.useGlobalChartsContext.call(void 0, );
215
- const providerTheme = _chunkW3H42XRVcjs.useGlobalChartsTheme.call(void 0, );
214
+ const { getElementStyles, isSeriesVisible } = _chunkWKN6C4ZEcjs.useGlobalChartsContext.call(void 0, );
215
+ const providerTheme = _chunkWKN6C4ZEcjs.useGlobalChartsTheme.call(void 0, );
216
216
  const seriesWithVisibility = _react.useMemo.call(void 0, () => {
217
217
  if (!chartId || !legendInteractive) {
218
218
  return dataWithVisibleZeros.map((series, index) => ({
@@ -330,21 +330,21 @@ var BarChartInternal = ({
330
330
  }),
331
331
  [orientation, withPatterns]
332
332
  );
333
- _chunkW3H42XRVcjs.useChartRegistration.call(void 0, {
333
+ _chunkWKN6C4ZEcjs.useChartRegistration.call(void 0, {
334
334
  chartId,
335
335
  legendItems,
336
336
  chartType: "bar",
337
337
  isDataValid,
338
338
  metadata: chartMetadata
339
339
  });
340
- const prefersReducedMotion = _chunkW3H42XRVcjs.usePrefersReducedMotion.call(void 0, );
340
+ const prefersReducedMotion = _chunkWKN6C4ZEcjs.usePrefersReducedMotion.call(void 0, );
341
341
  if (error) {
342
342
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _clsx2.default.call(void 0, "bar-chart", bar_chart_module_default["bar-chart"]), children: error });
343
343
  }
344
344
  const gridVisibility = _nullishCoalesce(gridVisibilityProp, () => ( chartOptions.gridVisibility));
345
345
  const highlightedBarStyle = createKeyboardHighlightStyle();
346
346
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
347
- _chunkNYZFVI2Pcjs.SingleChartContext.Provider,
347
+ _chunkZPJHWKEKcjs.SingleChartContext.Provider,
348
348
  {
349
349
  value: {
350
350
  chartId,
@@ -461,7 +461,7 @@ var BarChartInternal = ({
461
461
  }
462
462
  ),
463
463
  showLegend && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
464
- _chunkNYZFVI2Pcjs.Legend,
464
+ _chunkZPJHWKEKcjs.Legend,
465
465
  {
466
466
  orientation: legendOrientation,
467
467
  position: legendPosition,
@@ -484,20 +484,20 @@ var BarChartInternal = ({
484
484
  );
485
485
  };
486
486
  var BarChartWithProvider = (props) => {
487
- const existingContext = _react.useContext.call(void 0, _chunkW3H42XRVcjs.GlobalChartsContext);
487
+ const existingContext = _react.useContext.call(void 0, _chunkWKN6C4ZEcjs.GlobalChartsContext);
488
488
  if (existingContext) {
489
489
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, BarChartInternal, { ...props });
490
490
  }
491
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkW3H42XRVcjs.GlobalChartsProvider, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, BarChartInternal, { ...props }) });
491
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkWKN6C4ZEcjs.GlobalChartsProvider, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, BarChartInternal, { ...props }) });
492
492
  };
493
493
  BarChartWithProvider.displayName = "BarChart";
494
- var BarChart = _chunkDAKYGZG6cjs.attachSubComponents.call(void 0, BarChartWithProvider, {
495
- Legend: _chunkNYZFVI2Pcjs.Legend
494
+ var BarChart = _chunkZVGEDXDPcjs.attachSubComponents.call(void 0, BarChartWithProvider, {
495
+ Legend: _chunkZPJHWKEKcjs.Legend
496
496
  });
497
- var BarChartResponsive = _chunkDAKYGZG6cjs.attachSubComponents.call(void 0,
497
+ var BarChartResponsive = _chunkZVGEDXDPcjs.attachSubComponents.call(void 0,
498
498
  _chunkMUUSZ7J5cjs.withResponsive.call(void 0, BarChartWithProvider),
499
499
  {
500
- Legend: _chunkNYZFVI2Pcjs.Legend
500
+ Legend: _chunkZPJHWKEKcjs.Legend
501
501
  }
502
502
  );
503
503
 
@@ -505,4 +505,4 @@ var BarChartResponsive = _chunkDAKYGZG6cjs.attachSubComponents.call(void 0,
505
505
 
506
506
 
507
507
  exports.BarChart = BarChart; exports.BarChartResponsive = BarChartResponsive;
508
- //# sourceMappingURL=chunk-GWNXOI4M.cjs.map
508
+ //# sourceMappingURL=chunk-DDV5726Q.cjs.map