@automattic/charts 0.56.7 → 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 (176) hide show
  1. package/AGENTS.md +28 -98
  2. package/CHANGELOG.md +16 -0
  3. package/dist/charts/bar-chart/index.cjs +5 -6
  4. package/dist/charts/bar-chart/index.cjs.map +1 -1
  5. package/dist/charts/bar-chart/index.d.cts +3 -3
  6. package/dist/charts/bar-chart/index.d.ts +3 -3
  7. package/dist/charts/bar-chart/index.js +4 -5
  8. package/dist/charts/bar-list-chart/index.cjs +6 -7
  9. package/dist/charts/bar-list-chart/index.cjs.map +1 -1
  10. package/dist/charts/bar-list-chart/index.d.cts +3 -3
  11. package/dist/charts/bar-list-chart/index.d.ts +3 -3
  12. package/dist/charts/bar-list-chart/index.js +5 -6
  13. package/dist/charts/conversion-funnel-chart/index.cjs +5 -6
  14. package/dist/charts/conversion-funnel-chart/index.cjs.map +1 -1
  15. package/dist/charts/conversion-funnel-chart/index.d.cts +1 -1
  16. package/dist/charts/conversion-funnel-chart/index.d.ts +1 -1
  17. package/dist/charts/conversion-funnel-chart/index.js +4 -5
  18. package/dist/charts/geo-chart/index.cjs +4 -4
  19. package/dist/charts/geo-chart/index.d.cts +1 -1
  20. package/dist/charts/geo-chart/index.d.ts +1 -1
  21. package/dist/charts/geo-chart/index.js +3 -3
  22. package/dist/charts/leaderboard-chart/index.cjs +5 -5
  23. package/dist/charts/leaderboard-chart/index.css +8 -9
  24. package/dist/charts/leaderboard-chart/index.css.map +1 -1
  25. package/dist/charts/leaderboard-chart/index.d.cts +3 -3
  26. package/dist/charts/leaderboard-chart/index.d.ts +3 -3
  27. package/dist/charts/leaderboard-chart/index.js +4 -4
  28. package/dist/charts/line-chart/index.cjs +5 -6
  29. package/dist/charts/line-chart/index.cjs.map +1 -1
  30. package/dist/charts/line-chart/index.d.cts +3 -3
  31. package/dist/charts/line-chart/index.d.ts +3 -3
  32. package/dist/charts/line-chart/index.js +4 -5
  33. package/dist/charts/pie-chart/index.cjs +5 -6
  34. package/dist/charts/pie-chart/index.cjs.map +1 -1
  35. package/dist/charts/pie-chart/index.d.cts +4 -4
  36. package/dist/charts/pie-chart/index.d.ts +4 -4
  37. package/dist/charts/pie-chart/index.js +4 -5
  38. package/dist/charts/pie-semi-circle-chart/index.cjs +5 -6
  39. package/dist/charts/pie-semi-circle-chart/index.cjs.map +1 -1
  40. package/dist/charts/pie-semi-circle-chart/index.d.cts +4 -4
  41. package/dist/charts/pie-semi-circle-chart/index.d.ts +4 -4
  42. package/dist/charts/pie-semi-circle-chart/index.js +4 -5
  43. package/dist/charts/sparkline/index.cjs +6 -7
  44. package/dist/charts/sparkline/index.cjs.map +1 -1
  45. package/dist/charts/sparkline/index.js +5 -6
  46. package/dist/{chunk-XD2HV7M5.js → chunk-2NCY7R4G.js} +127 -762
  47. package/dist/chunk-2NCY7R4G.js.map +1 -0
  48. package/dist/{chunk-RFSHE3HL.js → chunk-32DH6JDF.js} +64 -43
  49. package/dist/chunk-32DH6JDF.js.map +1 -0
  50. package/dist/{chunk-SSFFCBCF.js → chunk-4OPFE4RM.js} +11 -8
  51. package/dist/chunk-4OPFE4RM.js.map +1 -0
  52. package/dist/{chunk-CAFJRZPZ.cjs → chunk-77OKCVQN.cjs} +17 -17
  53. package/dist/{chunk-CAFJRZPZ.cjs.map → chunk-77OKCVQN.cjs.map} +1 -1
  54. package/dist/{chunk-K6TGILHX.cjs → chunk-7FQX4ALL.cjs} +6 -6
  55. package/dist/{chunk-K6TGILHX.cjs.map → chunk-7FQX4ALL.cjs.map} +1 -1
  56. package/dist/{chunk-7FDQGBY7.js → chunk-BCX5THDQ.js} +9 -7
  57. package/dist/chunk-BCX5THDQ.js.map +1 -0
  58. package/dist/{chunk-KHQPN77E.js → chunk-CZGYJKG6.js} +4 -4
  59. package/dist/{chunk-3EXJP67N.cjs → chunk-D2UH4CFE.cjs} +9 -9
  60. package/dist/{chunk-3EXJP67N.cjs.map → chunk-D2UH4CFE.cjs.map} +1 -1
  61. package/dist/{chunk-TE63Y5PX.js → chunk-DAU3HNEG.js} +2 -2
  62. package/dist/chunk-DAU3HNEG.js.map +1 -0
  63. package/dist/{chunk-MDRCAGKZ.js → chunk-H2V4JMSA.js} +3 -3
  64. package/dist/{chunk-UFRBUT2D.cjs → chunk-I35UYJJR.cjs} +49 -6
  65. package/dist/chunk-I35UYJJR.cjs.map +1 -0
  66. package/dist/{chunk-GWBS65VC.js → chunk-IU4DYUAV.js} +3 -3
  67. package/dist/{chunk-E62LCBGD.js → chunk-PXLEMUGJ.js} +3 -3
  68. package/dist/{chunk-YDVHT7GS.cjs → chunk-RHHVEJHJ.cjs} +83 -62
  69. package/dist/chunk-RHHVEJHJ.cjs.map +1 -0
  70. package/dist/{chunk-YAXY5L7I.cjs → chunk-TO3OQBXG.cjs} +5 -5
  71. package/dist/{chunk-YAXY5L7I.cjs.map → chunk-TO3OQBXG.cjs.map} +1 -1
  72. package/dist/{chunk-VPAEBI2F.js → chunk-V36ERY7Y.js} +9 -7
  73. package/dist/chunk-V36ERY7Y.js.map +1 -0
  74. package/dist/{chunk-X7JL2NYJ.cjs → chunk-VJM5XCB4.cjs} +33 -30
  75. package/dist/chunk-VJM5XCB4.cjs.map +1 -0
  76. package/dist/{chunk-ZVGEDXDP.cjs → chunk-VTS3PNMS.cjs} +2 -2
  77. package/dist/{chunk-ZVGEDXDP.cjs.map → chunk-VTS3PNMS.cjs.map} +1 -1
  78. package/dist/{chunk-OMS5QIJN.js → chunk-WLODYNLB.js} +9 -7
  79. package/dist/chunk-WLODYNLB.js.map +1 -0
  80. package/dist/{chunk-NQJE2CC7.cjs → chunk-XKRJL2QT.cjs} +25 -23
  81. package/dist/chunk-XKRJL2QT.cjs.map +1 -0
  82. package/dist/{chunk-O2JIANHK.cjs → chunk-YE2T52VZ.cjs} +33 -31
  83. package/dist/chunk-YE2T52VZ.cjs.map +1 -0
  84. package/dist/{chunk-IS5YYLTV.js → chunk-Z26M4V2M.js} +46 -3
  85. package/dist/chunk-Z26M4V2M.js.map +1 -0
  86. package/dist/{chunk-55ZCOYDF.cjs → chunk-Z45KX47P.cjs} +153 -788
  87. package/dist/chunk-Z45KX47P.cjs.map +1 -0
  88. package/dist/{chunk-BXFD7JIG.cjs → chunk-ZH4F5RMG.cjs} +26 -24
  89. package/dist/chunk-ZH4F5RMG.cjs.map +1 -0
  90. package/dist/components/legend/index.cjs +3 -3
  91. package/dist/components/legend/index.d.cts +4 -4
  92. package/dist/components/legend/index.d.ts +4 -4
  93. package/dist/components/legend/index.js +2 -2
  94. package/dist/components/tooltip/index.d.cts +1 -1
  95. package/dist/components/tooltip/index.d.ts +1 -1
  96. package/dist/hooks/index.cjs +3 -3
  97. package/dist/hooks/index.d.cts +7 -3
  98. package/dist/hooks/index.d.ts +7 -3
  99. package/dist/hooks/index.js +2 -2
  100. package/dist/index.cjs +13 -14
  101. package/dist/index.cjs.map +1 -1
  102. package/dist/index.css +8 -9
  103. package/dist/index.css.map +1 -1
  104. package/dist/index.d.cts +7 -7
  105. package/dist/index.d.ts +7 -7
  106. package/dist/index.js +12 -13
  107. package/dist/{leaderboard-chart-BSgEw_Um.d.ts → leaderboard-chart-BKYYXcg2.d.ts} +5 -9
  108. package/dist/{leaderboard-chart-COtgamhe.d.cts → leaderboard-chart-DR7CGb0L.d.cts} +5 -9
  109. package/dist/{legend-C9ahiwOt.d.cts → legend-C2grwnWk.d.cts} +1 -1
  110. package/dist/{legend-jjMmhSg3.d.ts → legend-Cj0xM5dU.d.ts} +1 -1
  111. package/dist/providers/index.cjs +3 -3
  112. package/dist/providers/index.d.cts +3 -3
  113. package/dist/providers/index.d.ts +3 -3
  114. package/dist/providers/index.js +2 -2
  115. package/dist/{themes-DQzmaSze.d.ts → themes-BmVGrYnF.d.ts} +2 -2
  116. package/dist/{themes-CVR5rmIs.d.cts → themes-CyjKm-P_.d.cts} +2 -2
  117. package/dist/{types-DQNnq5Fr.d.ts → types-CuUEszrM.d.ts} +1 -1
  118. package/dist/{types-CzdN7rUe.d.cts → types-DZordNiO.d.cts} +11 -7
  119. package/dist/{types-CzdN7rUe.d.ts → types-DZordNiO.d.ts} +11 -7
  120. package/dist/types-I67mddpr.d.cts +78 -0
  121. package/dist/types-I67mddpr.d.ts +78 -0
  122. package/dist/{types-BBwg4Evw.d.cts → types-KtOPPzPX.d.cts} +1 -1
  123. package/dist/utils/index.cjs +2 -2
  124. package/dist/utils/index.d.cts +1 -1
  125. package/dist/utils/index.d.ts +1 -1
  126. package/dist/utils/index.js +1 -1
  127. package/package.json +6 -4
  128. package/src/charts/bar-chart/bar-chart.tsx +4 -3
  129. package/src/charts/bar-chart/test/bar-chart.test.tsx +30 -0
  130. package/src/charts/conversion-funnel-chart/test/conversion-funnel-chart.test.tsx +2 -2
  131. package/src/charts/leaderboard-chart/hooks/use-leaderboard-legend-items.ts +0 -2
  132. package/src/charts/leaderboard-chart/leaderboard-chart.module.scss +9 -10
  133. package/src/charts/leaderboard-chart/leaderboard-chart.tsx +95 -70
  134. package/src/charts/leaderboard-chart/test/leaderboard-chart.test.tsx +58 -29
  135. package/src/charts/leaderboard-chart/test/use-leaderboard-legend-items.test.tsx +2 -5
  136. package/src/charts/leaderboard-chart/types.ts +4 -7
  137. package/src/charts/line-chart/line-chart.tsx +2 -3
  138. package/src/charts/pie-chart/pie-chart.tsx +2 -3
  139. package/src/charts/pie-semi-circle-chart/pie-semi-circle-chart.tsx +2 -3
  140. package/src/components/legend/index.ts +8 -1
  141. package/src/components/legend/private/base-legend.tsx +32 -22
  142. package/src/components/legend/test/legend.test.tsx +148 -52
  143. package/src/components/legend/types.ts +42 -16
  144. package/src/hooks/test/use-zero-value-display.test.tsx +206 -0
  145. package/src/hooks/use-zero-value-display.ts +52 -23
  146. package/src/index.ts +7 -1
  147. package/src/providers/chart-context/test/chart-context.test.tsx +12 -6
  148. package/src/providers/chart-context/themes.ts +6 -4
  149. package/src/types.ts +11 -7
  150. package/src/utils/get-styles.ts +1 -1
  151. package/src/utils/test/get-styles.test.ts +12 -10
  152. package/dist/chunk-55ZCOYDF.cjs.map +0 -1
  153. package/dist/chunk-7FDQGBY7.js.map +0 -1
  154. package/dist/chunk-BXFD7JIG.cjs.map +0 -1
  155. package/dist/chunk-IS5YYLTV.js.map +0 -1
  156. package/dist/chunk-KNIMXN6Z.js +0 -51
  157. package/dist/chunk-KNIMXN6Z.js.map +0 -1
  158. package/dist/chunk-NQJE2CC7.cjs.map +0 -1
  159. package/dist/chunk-O2JIANHK.cjs.map +0 -1
  160. package/dist/chunk-OMS5QIJN.js.map +0 -1
  161. package/dist/chunk-RFSHE3HL.js.map +0 -1
  162. package/dist/chunk-SSFFCBCF.js.map +0 -1
  163. package/dist/chunk-SUDERBUA.cjs +0 -51
  164. package/dist/chunk-SUDERBUA.cjs.map +0 -1
  165. package/dist/chunk-TE63Y5PX.js.map +0 -1
  166. package/dist/chunk-UFRBUT2D.cjs.map +0 -1
  167. package/dist/chunk-VPAEBI2F.js.map +0 -1
  168. package/dist/chunk-X7JL2NYJ.cjs.map +0 -1
  169. package/dist/chunk-XD2HV7M5.js.map +0 -1
  170. package/dist/chunk-YDVHT7GS.cjs.map +0 -1
  171. package/dist/types-C05PdDJa.d.cts +0 -57
  172. package/dist/types-C05PdDJa.d.ts +0 -57
  173. /package/dist/{chunk-KHQPN77E.js.map → chunk-CZGYJKG6.js.map} +0 -0
  174. /package/dist/{chunk-MDRCAGKZ.js.map → chunk-H2V4JMSA.js.map} +0 -0
  175. /package/dist/{chunk-GWBS65VC.js.map → chunk-IU4DYUAV.js.map} +0 -0
  176. /package/dist/{chunk-E62LCBGD.js.map → chunk-PXLEMUGJ.js.map} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/charts/line-chart/line-chart.tsx","../src/charts/private/default-glyph/default-glyph.tsx","../src/charts/line-chart/line-chart.module.scss","../src/charts/line-chart/private/line-chart-annotation-label-popover.tsx","../src/charts/line-chart/private/line-chart-annotations-overlay.tsx","../src/charts/line-chart/private/line-chart-annotation.tsx","../src/charts/line-chart/private/line-chart-glyph.tsx"],"sourcesContent":["import { formatNumberCompact, formatNumber } from '@automattic/number-formatters';\nimport { curveCatmullRom, curveLinear, curveMonotoneX } from '@visx/curve';\nimport { LinearGradient } from '@visx/gradient';\nimport { scaleTime } from '@visx/scale';\nimport { XYChart, AreaSeries, Grid, Axis, DataContext } from '@visx/xychart';\nimport { __ } from '@wordpress/i18n';\nimport { Stack } from '@wordpress/ui';\nimport clsx from 'clsx';\nimport { differenceInHours, differenceInYears } from 'date-fns';\nimport { useMemo, useContext, forwardRef, useImperativeHandle, useState, useRef, createElement as _createElement } from 'react';\nimport { Legend, useChartLegendItems } from '../../components/legend';\nimport { AccessibleTooltip, useKeyboardNavigation } from '../../components/tooltip';\nimport { useXYChartTheme, useChartDataTransform, useChartMargin, useElementSize, useHasLegendChild, usePrefersReducedMotion } from '../../hooks';\nimport { GlobalChartsProvider, GlobalChartsContext, useChartId, useChartRegistration, useGlobalChartsContext, useGlobalChartsTheme } from '../../providers';\nimport { attachSubComponents } from '../../utils';\nimport { DefaultGlyph } from '../private/default-glyph';\nimport { SingleChartContext } from '../private/single-chart-context';\nimport { withResponsive } from '../private/with-responsive';\nimport styles from './line-chart.module.scss';\nimport { LineChartAnnotation, LineChartAnnotationsOverlay, LineChartGlyph } from './private';\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nconst X_TICK_WIDTH = 60;\nconst defaultRenderGlyph = props => {\n return /*#__PURE__*/_createElement(DefaultGlyph, {\n ...props,\n key: props.key\n });\n};\nconst toNumber = val => {\n const num = typeof val === 'number' ? val : parseFloat(val);\n return isNaN(num) ? undefined : num;\n};\n\n/**\n * Determines the curve type for the line chart based on the provided type and smoothing parameters\n *\n * @param {CurveType} type - The explicit curve type to use\n * @param {boolean} smoothing - Legacy smoothing parameter\n * @return The curve function to use for the line\n */\nconst getCurveType = (type, smoothing) => {\n // If no type specified, use legacy smoothing behavior\n if (!type) {\n return smoothing ? curveCatmullRom : curveLinear;\n }\n\n // Handle explicit curve types\n switch (type) {\n case 'smooth':\n return curveCatmullRom;\n case 'monotone':\n return curveMonotoneX;\n case 'linear':\n return curveLinear;\n default:\n return curveLinear;\n }\n};\nconst renderDefaultTooltip = params => {\n const {\n tooltipData\n } = params;\n const nearestDatum = tooltipData?.nearestDatum?.datum;\n if (!nearestDatum) return null;\n const tooltipPoints = Object.entries(tooltipData?.datumByKey || {}).map(([key, {\n datum\n }]) => ({\n key,\n value: datum.value\n })).sort((a, b) => b.value - a.value);\n return /*#__PURE__*/_jsxs(\"div\", {\n className: styles['line-chart__tooltip'],\n children: [/*#__PURE__*/_jsx(\"div\", {\n className: styles['line-chart__tooltip-date'],\n children: nearestDatum.date?.toLocaleDateString()\n }), tooltipPoints.map(point => /*#__PURE__*/_jsxs(\"div\", {\n className: styles['line-chart__tooltip-row'],\n children: [/*#__PURE__*/_jsxs(\"span\", {\n className: styles['line-chart__tooltip-label'],\n children: [point.key, \":\"]\n }), /*#__PURE__*/_jsx(\"span\", {\n className: styles['line-chart__tooltip-value'],\n children: formatNumber(point.value)\n })]\n }, point.key))]\n });\n};\nconst formatYearTick = timestamp => {\n const date = new Date(timestamp);\n return date.toLocaleDateString(undefined, {\n year: 'numeric'\n });\n};\nconst formatDateTick = timestamp => {\n const date = new Date(timestamp);\n return date.toLocaleDateString(undefined, {\n month: 'short',\n day: 'numeric'\n });\n};\nconst formatHourTick = timestamp => {\n const date = new Date(timestamp);\n return date.toLocaleTimeString(undefined, {\n hour: 'numeric',\n hour12: true\n });\n};\nconst getFormatter = sortedData => {\n const minX = Math.min(...sortedData.map(datom => datom.data.at(0)?.date));\n const maxX = Math.max(...sortedData.map(datom => datom.data.at(-1)?.date));\n const diffInHours = Math.abs(differenceInHours(maxX, minX));\n if (diffInHours <= 24) {\n return formatHourTick;\n }\n const diffInYears = Math.abs(differenceInYears(maxX, minX));\n if (diffInYears <= 1) {\n return formatDateTick;\n }\n return formatYearTick;\n};\nconst guessOptimalNumTicks = (data, chartWidth, tickFormatter) => {\n const minX = Math.min(...data.map(datom => datom.data.at(0)?.date));\n const maxX = Math.max(...data.map(datom => datom.data.at(-1)?.date));\n const xScale = scaleTime({\n domain: [minX, maxX]\n });\n\n // Calculate upper bound of tick numbers based on data points and chart width\n const upperBound = Math.min(data[0]?.data.length || 3,\n // A sane fallback to avoid NaN when no data is present\n Math.ceil(chartWidth / X_TICK_WIDTH));\n let secondBestGuess = 1; // a tick number that's no greater than upperBound\n\n for (let numTicks = upperBound; numTicks > 1; --numTicks) {\n const ticks = xScale.ticks(numTicks).map(d => tickFormatter(d.getTime()));\n\n // The .ticks() function doesn't properly respect the requested number of ticks, so we need to check the length\n if (ticks.length > upperBound) {\n continue;\n }\n secondBestGuess = Math.max(secondBestGuess, ticks.length);\n const uniqueTicks = Array.from(new Set(ticks));\n if (uniqueTicks.length === 1) {\n // All ticks are the same, so skip further processing\n return 1;\n }\n\n // Example: OCT 1 JAN 1 APR 1 JUL 1 OCT 1\n // Here, the two OCTs are not duplicates as they represent October of two different years.\n const hasConsecutiveDuplicate = ticks.some((tick, idx) => idx > 0 && tick === ticks[idx - 1]);\n if (hasConsecutiveDuplicate) {\n continue;\n }\n return ticks.length;\n }\n return secondBestGuess;\n};\nconst validateData = data => {\n if (!data?.length) return 'No data available';\n const hasInvalidData = data.some(series => series.data.some(point => isNaN(point.value) || point.value === null || point.value === undefined || 'date' in point && point.date && isNaN(point.date.getTime())));\n if (hasInvalidData) return 'Invalid data';\n return null;\n};\n\n// Inner component to access DataContext and provide scale data to ref\nconst LineChartScalesRef = ({\n chartRef,\n width,\n height,\n margin\n}) => {\n const context = useContext(DataContext);\n useImperativeHandle(chartRef, () => ({\n getScales: () => {\n if (!context?.xScale || !context?.yScale) {\n return null;\n }\n return {\n xScale: context.xScale,\n yScale: context.yScale\n };\n },\n getChartDimensions: () => ({\n width,\n height,\n margin: margin || {}\n })\n }), [context, width, height, margin]);\n return null; // This component only provides the ref interface\n};\nconst LineChartInternal = /*#__PURE__*/forwardRef(({\n data,\n chartId: providedChartId,\n width,\n height,\n className,\n margin,\n withTooltips = true,\n withTooltipCrosshairs,\n showLegend = false,\n legendOrientation = 'horizontal',\n legendAlignment = 'center',\n legendPosition = 'bottom',\n legendMaxWidth,\n legendTextOverflow = 'wrap',\n legendItemClassName,\n renderGlyph = defaultRenderGlyph,\n glyphStyle = {},\n legendShape = 'line',\n withLegendGlyph = false,\n withGradientFill = false,\n smoothing = true,\n curveType,\n renderTooltip = renderDefaultTooltip,\n withStartGlyphs = false,\n withEndGlyphs = false,\n legendInteractive = false,\n animation,\n options = {},\n onPointerDown = undefined,\n onPointerUp = undefined,\n onPointerMove = undefined,\n onPointerOut = undefined,\n children,\n gridVisibility,\n gap = 'md'\n}, ref) => {\n const providerTheme = useGlobalChartsTheme();\n const theme = useXYChartTheme(data);\n const chartId = useChartId(providedChartId);\n const [svgWrapperRef,, svgWrapperHeight] = useElementSize();\n const chartRef = useRef(null);\n const [selectedIndex, setSelectedIndex] = useState(undefined);\n const [isNavigating, setIsNavigating] = useState(false);\n const internalChartRef = useRef(null);\n\n // Check if children contain a Legend component (composition pattern)\n const hasLegendChild = useHasLegendChild(children);\n\n // Use the measured SVG wrapper height, falling back to the passed height if provided.\n // When there's a legend (via prop or composition), we must wait for measurement because\n // the legend takes space and the svg-wrapper height will be less than the total height.\n const chartHeight = svgWrapperHeight > 0 ? svgWrapperHeight : height;\n const hasLegend = showLegend || hasLegendChild;\n const isWaitingForMeasurement = hasLegend ? svgWrapperHeight === 0 : !chartHeight;\n\n // Forward the external ref to the internal ref\n useImperativeHandle(ref, () => ({\n getScales: () => internalChartRef.current?.getScales() || null,\n getChartDimensions: () => internalChartRef.current?.getChartDimensions() || {\n width: 0,\n height: 0,\n margin: {}\n }\n }), [internalChartRef]);\n const dataSorted = useChartDataTransform(data);\n const {\n getElementStyles,\n isSeriesVisible\n } = useGlobalChartsContext();\n\n // Add visibility information to series when using interactive legends\n const seriesWithVisibility = useMemo(() => {\n if (!chartId || !legendInteractive) {\n return dataSorted.map((series, index) => ({\n series,\n index,\n isVisible: true\n }));\n }\n return dataSorted.map((series, index) => ({\n series,\n index,\n isVisible: isSeriesVisible(chartId, series.label)\n }));\n }, [dataSorted, chartId, isSeriesVisible, legendInteractive]);\n\n // Check if all series are hidden\n const allSeriesHidden = useMemo(() => {\n return seriesWithVisibility.every(({\n isVisible\n }) => !isVisible);\n }, [seriesWithVisibility]);\n\n // Use the keyboard navigation hook\n const {\n tooltipRef,\n onChartFocus,\n onChartBlur,\n onChartKeyDown\n } = useKeyboardNavigation({\n selectedIndex,\n setSelectedIndex,\n isNavigating,\n setIsNavigating,\n chartRef,\n totalPoints: dataSorted[0]?.data.length || 0\n });\n const chartOptions = useMemo(() => {\n const formatter = options?.axis?.x?.tickFormat || getFormatter(dataSorted);\n return {\n axis: {\n x: {\n orientation: 'bottom',\n numTicks: guessOptimalNumTicks(dataSorted, width, formatter),\n tickFormat: formatter,\n display: true,\n ...options?.axis?.x\n },\n y: {\n orientation: 'left',\n numTicks: 4,\n tickFormat: formatNumberCompact,\n display: true,\n ...options?.axis?.y\n }\n },\n xScale: {\n type: 'time',\n ...options?.xScale\n },\n yScale: {\n type: 'linear',\n nice: true,\n zero: false,\n ...options?.yScale\n }\n };\n }, [options, dataSorted, width]);\n const tooltipRenderGlyph = useMemo(() => {\n return props => {\n const seriesIndex = dataSorted.findIndex(series => series.label === props.key || series.data.includes(props.datum));\n const seriesData = dataSorted[seriesIndex];\n const {\n color,\n glyph: themeGlyph\n } = getElementStyles({\n data: seriesData,\n index: seriesIndex\n });\n const propsWithResolvedColor = {\n ...props,\n color\n };\n return themeGlyph ? themeGlyph(propsWithResolvedColor) : renderGlyph(propsWithResolvedColor);\n };\n }, [dataSorted, renderGlyph, getElementStyles]);\n const defaultMargin = useChartMargin(height, chartOptions, dataSorted, theme);\n const error = validateData(dataSorted);\n const isDataValid = !error;\n\n // Memoize legend options to prevent unnecessary re-calculations\n const legendOptions = useMemo(() => ({\n withGlyph: withLegendGlyph,\n glyphSize: Math.max(0, toNumber(glyphStyle?.radius) ?? 4),\n renderGlyph\n }), [withLegendGlyph, glyphStyle?.radius, renderGlyph]);\n\n // Create legend items using the reusable hook\n const legendItems = useChartLegendItems(dataSorted, legendOptions, legendShape);\n\n // Memoize metadata to prevent unnecessary re-registration\n const chartMetadata = useMemo(() => ({\n withGradientFill,\n smoothing,\n curveType,\n withStartGlyphs,\n withEndGlyphs,\n withLegendGlyph\n }), [withGradientFill, smoothing, curveType, withStartGlyphs, withEndGlyphs, withLegendGlyph]);\n\n // Register chart with context only if data is valid\n useChartRegistration({\n chartId,\n legendItems,\n chartType: 'line',\n isDataValid,\n metadata: chartMetadata\n });\n const prefersReducedMotion = usePrefersReducedMotion();\n const accessors = {\n xAccessor: d => d?.date,\n yAccessor: d => d?.value\n };\n\n // Create a custom renderTooltip that includes focus capability\n if (error) {\n return /*#__PURE__*/_jsx(\"div\", {\n className: clsx('line-chart', styles['line-chart']),\n children: error\n });\n }\n const legendElement = showLegend && /*#__PURE__*/_jsx(Legend, {\n orientation: legendOrientation,\n alignment: legendAlignment,\n position: legendPosition,\n labelStyles: {\n maxWidth: legendMaxWidth,\n textOverflow: legendTextOverflow\n },\n itemClassName: legendItemClassName,\n className: styles['line-chart__legend'],\n shape: legendShape,\n chartId: chartId,\n interactive: legendInteractive\n });\n return /*#__PURE__*/_jsx(SingleChartContext.Provider, {\n value: {\n chartId,\n chartRef: internalChartRef,\n chartWidth: width,\n chartHeight\n },\n children: /*#__PURE__*/_jsxs(Stack, {\n direction: \"column\",\n gap: gap,\n className: clsx('line-chart', styles['line-chart'], {\n [styles['line-chart--animated']]: animation && !prefersReducedMotion\n }, className),\n style: {\n width,\n height,\n visibility: isWaitingForMeasurement ? 'hidden' : 'visible'\n },\n children: [legendPosition === 'top' && legendElement, /*#__PURE__*/_jsx(\"div\", {\n className: styles['line-chart__svg-wrapper'],\n ref: svgWrapperRef,\n role: \"grid\",\n \"aria-label\": __('Line chart', 'jetpack-charts'),\n tabIndex: 0,\n onKeyDown: onChartKeyDown,\n onFocus: onChartFocus,\n onBlur: onChartBlur,\n children: !isWaitingForMeasurement && /*#__PURE__*/_jsx(\"div\", {\n ref: chartRef,\n children: /*#__PURE__*/_jsxs(XYChart, {\n theme: theme,\n width: width,\n height: chartHeight,\n margin: {\n ...defaultMargin,\n ...margin\n }\n // xScale and yScale could be set in Axis as well, but they are `scale` props there.\n ,\n xScale: chartOptions.xScale,\n yScale: chartOptions.yScale,\n onPointerDown: onPointerDown,\n onPointerUp: onPointerUp,\n onPointerMove: onPointerMove,\n onPointerOut: onPointerOut,\n pointerEventsDataKey: \"nearest\",\n children: [gridVisibility !== 'none' && /*#__PURE__*/_jsx(Grid, {\n columns: false,\n numTicks: 4\n }), chartOptions.axis.x.display && /*#__PURE__*/_jsx(Axis, {\n ...chartOptions.axis.x\n }), chartOptions.axis.y.display && /*#__PURE__*/_jsx(Axis, {\n ...chartOptions.axis.y\n }), allSeriesHidden ? /*#__PURE__*/_jsx(\"text\", {\n x: width / 2,\n y: chartHeight / 2,\n textAnchor: \"middle\",\n fill: providerTheme.gridStyles?.stroke || '#ccc',\n fontSize: \"14\",\n fontFamily: \"-apple-system,BlinkMacSystemFont,Roboto,Helvetica Neue,sans-serif\",\n children: __('All series are hidden. Click legend items to show data.', 'jetpack-charts')\n }) : null, seriesWithVisibility.map(({\n series: seriesData,\n index,\n isVisible\n }) => {\n // Skip rendering invisible series\n if (!isVisible) {\n return null;\n }\n const {\n color,\n lineStyles,\n glyph\n } = getElementStyles({\n data: seriesData,\n index\n });\n const lineProps = {\n stroke: color,\n ...lineStyles\n };\n return /*#__PURE__*/_jsxs(\"g\", {\n children: [withGradientFill && /*#__PURE__*/_jsx(LinearGradient, {\n id: `area-gradient-${chartId}-${index + 1}`,\n from: color,\n fromOpacity: 0.4,\n toOpacity: 0.1,\n to: providerTheme.backgroundColor,\n ...seriesData.options?.gradient,\n children: seriesData.options?.gradient?.stops?.map((stop, stopIndex) => /*#__PURE__*/_jsx(\"stop\", {\n offset: stop.offset,\n stopColor: stop.color || color,\n stopOpacity: stop.opacity ?? 1\n }, `${stop.offset}-${stop.color || color}`))\n }), /*#__PURE__*/_jsx(AreaSeries, {\n dataKey: seriesData?.label,\n data: seriesData.data,\n ...accessors,\n fill: withGradientFill ? `url(#area-gradient-${chartId}-${index + 1})` : 'transparent',\n renderLine: true,\n curve: getCurveType(curveType, smoothing),\n lineProps: lineProps\n }, seriesData?.label), withStartGlyphs && /*#__PURE__*/_jsx(LineChartGlyph, {\n index: index,\n data: seriesData,\n color: color,\n renderGlyph: glyph ?? renderGlyph,\n accessors: accessors,\n glyphStyle: glyphStyle,\n position: \"start\"\n }), withEndGlyphs && /*#__PURE__*/_jsx(LineChartGlyph, {\n index: index,\n data: seriesData,\n color: color,\n renderGlyph: glyph ?? renderGlyph,\n accessors: accessors,\n glyphStyle: glyphStyle,\n position: \"end\"\n })]\n }, seriesData?.label || index);\n }), withTooltips && /*#__PURE__*/_jsx(AccessibleTooltip, {\n detectBounds: true,\n snapTooltipToDatumX: true,\n snapTooltipToDatumY: true,\n showSeriesGlyphs: true,\n renderTooltip: renderTooltip,\n renderGlyph: tooltipRenderGlyph,\n glyphStyle: glyphStyle,\n showVerticalCrosshair: withTooltipCrosshairs?.showVertical,\n showHorizontalCrosshair: withTooltipCrosshairs?.showHorizontal,\n selectedIndex: selectedIndex,\n tooltipRef: tooltipRef,\n keyboardFocusedClassName: styles['line-chart__tooltip--keyboard-focused'],\n series: dataSorted\n }), /*#__PURE__*/_jsx(LineChartScalesRef, {\n chartRef: internalChartRef,\n width: width,\n height: height,\n margin: margin\n })]\n })\n })\n }), legendPosition === 'bottom' && legendElement, children]\n })\n });\n});\n\n// Component type definitions for composition API\n\nconst LineChartWithProvider = /*#__PURE__*/forwardRef((props, ref) => {\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(LineChartInternal, {\n ...props,\n ref: ref\n });\n }\n\n // Otherwise, wrap with our own GlobalChartsProvider\n return /*#__PURE__*/_jsx(GlobalChartsProvider, {\n children: /*#__PURE__*/_jsx(LineChartInternal, {\n ...props,\n ref: ref\n })\n });\n});\nLineChartWithProvider.displayName = 'LineChart';\nconst LineChart = attachSubComponents(LineChartWithProvider, {\n Legend: Legend,\n AnnotationsOverlay: LineChartAnnotationsOverlay,\n Annotation: LineChartAnnotation\n});\nconst LineChartResponsive = attachSubComponents(withResponsive(LineChartWithProvider), {\n Legend: Legend,\n AnnotationsOverlay: LineChartAnnotationsOverlay,\n Annotation: LineChartAnnotation\n});\nexport { LineChartResponsive as default, LineChart as LineChartUnresponsive };","import { DataContext } from '@visx/xychart';\nimport { useContext } from 'react';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const DefaultGlyph = props => {\n const {\n theme\n } = useContext(DataContext) || {};\n const position = props.position || 'start';\n return /*#__PURE__*/_jsx(\"circle\", {\n cx: props.x,\n cy: props.y,\n r: props.size,\n fill: props.color,\n stroke: theme?.backgroundColor,\n strokeWidth: 1.5,\n paintOrder: \"fill\",\n ...props.glyphStyle\n });\n};","import 'css-chunk:src/charts/line-chart/line-chart.module.scss';export default {\n \"line-chart\": \"a8ccharts-v-oO8E\",\n \"line-chart__svg-wrapper\": \"a8ccharts-cpMNjj\",\n \"line-chart--animated\": \"a8ccharts-QrkuTW\",\n \"rise\": \"a8ccharts--rxDU3\",\n \"line-chart__tooltip\": \"a8ccharts-Tu0rR-\",\n \"line-chart__annotation-label-popover\": \"a8ccharts--RSWXi\",\n \"line-chart__tooltip-date\": \"a8ccharts-Q-b5A1\",\n \"line-chart__tooltip-row\": \"a8ccharts-19N7T9\",\n \"line-chart__tooltip-label\": \"a8ccharts-HOAXrD\",\n \"line-chart__annotations-overlay\": \"a8ccharts-rQiY8O\",\n \"line-chart__annotation-label\": \"a8ccharts-8AKWOe\",\n \"line-chart__annotation-label-trigger-button\": \"a8ccharts-7mh3Cl\",\n \"line-chart__annotation-label-popover--visible\": \"a8ccharts-VAeVuJ\",\n \"line-chart__annotation-label-popover--safari\": \"a8ccharts-TEe-iV\",\n \"line-chart__annotation-label-popover-header\": \"a8ccharts-LAUpx7\",\n \"line-chart__annotation-label-popover-content\": \"a8ccharts-b76gEu\",\n \"line-chart__annotation-label-popover-close-button\": \"a8ccharts-LIpFoS\"\n};","import { __ } from '@wordpress/i18n';\nimport clsx from 'clsx';\nimport Gridicon from 'gridicons';\nimport { useEffect, useId, useRef, useState } from 'react';\nimport { isSafari } from '../../../utils';\nimport styles from '../line-chart.module.scss';\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nexport const POPOVER_BUTTON_SIZE = 44;\nconst LineChartAnnotationLabelWithPopover = ({\n title,\n subtitle,\n renderLabel,\n renderLabelPopover\n}) => {\n const popoverId = useId();\n const buttonRef = useRef(null);\n const popoverRef = useRef(null);\n const [isPositioned, setIsPositioned] = useState(false);\n const isBrowserSafari = isSafari();\n useEffect(() => {\n const button = buttonRef.current;\n const popover = popoverRef.current;\n if (!button || !popover) return;\n const positionPopover = () => {\n // Popover positioning in Safari is complicated due to issues with SVG foreign objects (https://bugs.webkit.org/show_bug.cgi?id=23113), so let it be positioned in the centre of the viewport.\n if (!isBrowserSafari) {\n const buttonRect = button.getBoundingClientRect();\n popover.style.left = `${buttonRect.right}px`;\n popover.style.top = `${buttonRect.top}px`;\n }\n setIsPositioned(true);\n };\n\n // Position when popover shows\n popover.addEventListener('toggle', e => {\n if (e.newState === 'open') {\n positionPopover();\n }\n });\n\n // Initial positioning if already open\n try {\n if (popover.matches(':popover-open')) {\n positionPopover();\n }\n } catch {\n // Ignore errors in test environments (e.g., JSDOM does not support :popover-open)\n }\n }, [isBrowserSafari]);\n return /*#__PURE__*/_jsxs(\"div\", {\n className: styles['line-chart__annotation-label'],\n children: [/*#__PURE__*/_jsx(\"button\", {\n ref: buttonRef,\n popovertarget: popoverId,\n className: styles['line-chart__annotation-label-trigger-button'],\n style: {\n width: `${POPOVER_BUTTON_SIZE}px`,\n height: `${POPOVER_BUTTON_SIZE}px`,\n transform: `translate(${POPOVER_BUTTON_SIZE / 2}px, 0)`\n },\n \"aria-label\": title || __('View details', 'jetpack-charts'),\n children: renderLabel({\n title,\n subtitle\n })\n }), /*#__PURE__*/_jsx(\"div\", {\n ref: popoverRef,\n id: popoverId,\n popover: 'auto',\n className: clsx(styles['line-chart__annotation-label-popover'], isPositioned && styles['line-chart__annotation-label-popover--visible'], isBrowserSafari && styles['line-chart__annotation-label-popover--safari']),\n children: /*#__PURE__*/_jsxs(\"div\", {\n className: styles['line-chart__annotation-label-popover-header'],\n children: [/*#__PURE__*/_jsx(\"div\", {\n className: styles['line-chart__annotation-label-popover-content'],\n children: renderLabelPopover({\n title,\n subtitle\n })\n }), /*#__PURE__*/_jsx(\"button\", {\n popovertarget: popoverId,\n popovertargetaction: 'hide',\n className: styles['line-chart__annotation-label-popover-close-button'],\n \"aria-label\": __('Close', 'jetpack-charts'),\n children: /*#__PURE__*/_jsx(Gridicon, {\n icon: \"cross\",\n size: 16\n })\n })]\n })\n })]\n });\n};\nexport default LineChartAnnotationLabelWithPopover;","import { DataContext } from '@visx/xychart';\nimport { useEffect, useState, useCallback } from 'react';\nimport { useSingleChartContext } from '../../private/single-chart-context';\nimport styles from '../line-chart.module.scss';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst LineChartAnnotationsOverlay = ({\n children\n}) => {\n const {\n chartRef,\n chartWidth,\n chartHeight\n } = useSingleChartContext();\n const [scales, setScales] = useState(null);\n const [scalesStable, setScalesStable] = useState(false);\n\n // Create a signature for scale data to enable easy comparison\n const createScaleSignature = useCallback(scaleData => {\n const xDomain = scaleData.xScale.domain();\n const yDomain = scaleData.yScale.domain();\n const xRange = scaleData.xScale.range();\n const yRange = scaleData.yScale.range();\n return `${xDomain.join(',')}-${yDomain.join(',')}-${xRange.join(',')}-${yRange.join(',')}`;\n }, []);\n\n // Get scales from chart ref and return them with signature for comparison\n const getScalesData = useCallback(() => {\n if (chartRef?.current) {\n const scaleData = chartRef.current.getScales();\n if (scaleData) {\n const scaleInfo = {\n xScale: scaleData.xScale,\n yScale: scaleData.yScale\n };\n return {\n scales: scaleInfo,\n signature: createScaleSignature(scaleInfo)\n };\n }\n }\n return null;\n }, [chartRef, createScaleSignature]);\n\n // The chart resizes on render so we need to monitor the scales until they stabilize\n useEffect(() => {\n let timeoutId = null;\n let lastSignature = null;\n let retryCount = 0;\n const maxRetries = 20; // 20 * 50ms = 1 second max\n const checkInterval = 50; // Check every 50ms\n\n // Reset stability state when monitoring starts\n setScalesStable(false);\n const monitorScales = () => {\n const currentScaleData = getScalesData();\n\n // If we got scales, compare signatures\n if (currentScaleData) {\n // Check if scales have settled by comparing signatures\n const scalesSettled = lastSignature && currentScaleData.signature === lastSignature;\n if (scalesSettled) {\n // Scales have stabilized, mark as stable\n setScalesStable(true);\n return;\n }\n\n // Update scales and remember signature for next comparison\n setScales(currentScaleData.scales);\n lastSignature = currentScaleData.signature;\n }\n\n // Continue monitoring if we haven't exceeded max retries\n if (retryCount < maxRetries) {\n retryCount++;\n timeoutId = setTimeout(monitorScales, checkInterval);\n }\n };\n monitorScales();\n return () => {\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n };\n }, [getScalesData, chartWidth, chartHeight]);\n\n // Early return if no chart data available\n if (!chartRef || !children) {\n return null;\n }\n if (!scales || !scalesStable) {\n return null;\n }\n\n // Create a DataContext value that mimics what visx provides\n // We're intentionally providing minimal context for annotations to work\n const dataContextValue = {\n xScale: scales.xScale,\n yScale: scales.yScale,\n margin: {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n },\n width: chartWidth,\n height: chartHeight\n };\n return /*#__PURE__*/_jsx(DataContext.Provider, {\n value: dataContextValue,\n children: /*#__PURE__*/_jsx(\"svg\", {\n width: chartWidth,\n height: chartHeight,\n className: styles['line-chart__annotations-overlay'],\n children: children\n })\n });\n};\nexport default LineChartAnnotationsOverlay;","import { Annotation, CircleSubject, Connector, HtmlLabel, Label, LineSubject } from '@visx/annotation';\nimport { DataContext } from '@visx/xychart';\nimport merge from 'deepmerge';\nimport { useContext, useRef, useEffect, useState, useMemo } from 'react';\nimport { useGlobalChartsTheme } from '../../../providers';\nimport { isSafari } from '../../../utils';\nimport LineChartAnnotationLabelWithPopover, { POPOVER_BUTTON_SIZE } from './line-chart-annotation-label-popover';\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nconst ANNOTATION_MAX_WIDTH = 125; // visx default\nconst ANNOTATION_INIT_HEIGHT = 100;\nexport const getLabelPosition = ({\n subjectType,\n x,\n xMax,\n y,\n yMin,\n yMax,\n maxWidth,\n height\n}) => {\n const annotationMaxWidth = maxWidth ?? ANNOTATION_MAX_WIDTH;\n const annotationHeight = height ?? ANNOTATION_INIT_HEIGHT;\n let dx = 15;\n let dy = 15;\n let isFlippedHorizontally = false;\n let isFlippedVertically = false;\n if (subjectType === 'line-horizontal') {\n dx = 0;\n dy = 20;\n }\n if (subjectType === 'line-vertical') {\n dx = 20;\n dy = 0;\n }\n\n // Smart horizontal positioning: if annotation would extend beyond right edge, position it to the left\n // Account for the connector offset (dx) in boundary calculations\n const effectiveX = x + dx;\n if (effectiveX + annotationMaxWidth > xMax) {\n isFlippedHorizontally = true;\n if (subjectType === 'circle') {\n dx = -dx; // Just flip to the left side with same offset\n } else if (subjectType === 'line-vertical') {\n dx = -20; // Position to the left of the line\n }\n }\n\n // Smart vertical positioning: check both top and bottom edges\n // For circle annotations, they are positioned below by default (dy > 0)\n // Only flip when close to bottom edge to position above\n if (subjectType === 'circle') {\n // Check if positioning below would extend beyond bottom edge\n if (y + dy + annotationHeight > yMin) {\n // Too close to bottom edge, position above\n isFlippedVertically = true;\n dy = -Math.abs(dy); // Ensure negative value to position above the point\n }\n // When close to top edge, keep default below positioning (no flip needed)\n } else if (y - annotationHeight < yMax) {\n // Too close to top edge, position below\n if (subjectType === 'line-horizontal') {\n isFlippedVertically = true;\n dy = Math.abs(dy); // Ensure positive value to position below the point\n } else if (subjectType === 'line-vertical') {\n isFlippedVertically = true; // For anchor adjustment only\n }\n } else if (y + annotationHeight > yMin) {\n // Too close to bottom edge, position above\n if (subjectType === 'line-horizontal') {\n isFlippedVertically = true;\n dy = -Math.abs(dy); // Ensure negative value to position above the point\n } else if (subjectType === 'line-vertical') {\n isFlippedVertically = true; // For anchor adjustment only\n }\n }\n return {\n dx,\n dy,\n isFlippedHorizontally,\n isFlippedVertically\n };\n};\nconst getHorizontalAnchor = (subjectType, isFlippedHorizontally) => {\n if (subjectType === 'line-horizontal') {\n return isFlippedHorizontally ? 'end' : 'start';\n }\n return undefined;\n};\nconst getVerticalAnchor = (subjectType, isFlippedVertically, y, yMax, height) => {\n if (subjectType === 'line-vertical') {\n if (isFlippedVertically) {\n // If flipped due to top edge, anchor to top; if flipped due to bottom edge, anchor to bottom\n return y - height < yMax ? 'start' : 'end';\n }\n return 'start';\n }\n return undefined;\n};\nconst LineChartAnnotation = ({\n datum,\n title,\n subtitle,\n subjectType = 'circle',\n styles: datumStyles,\n testId,\n renderLabel,\n renderLabelPopover\n}) => {\n const providerTheme = useGlobalChartsTheme();\n const {\n xScale,\n yScale\n } = useContext(DataContext) || {};\n const labelRef = useRef(null);\n const [height, setHeight] = useState(null);\n\n // Deep merge styles to preserve nested object properties\n const styles = merge(providerTheme.annotationStyles ?? {}, datumStyles ?? {});\n\n // Measure the label height once after initial render\n useEffect(() => {\n if (labelRef.current?.getBBox) {\n const bbox = labelRef.current.getBBox();\n setHeight(bbox.height);\n }\n }, []);\n const positionData = useMemo(() => {\n if (!datum || !datum.date || datum.value == null || !xScale || !yScale) return null;\n const x = xScale(datum.date);\n const y = yScale(datum.value);\n if (typeof x !== 'number' || typeof y !== 'number') return null;\n const [yMin, yMax] = yScale.range().map(Number);\n const [xMin, xMax] = xScale.range().map(Number);\n\n // If a custom label is provided, use the provided position\n if (renderLabel) {\n return {\n x,\n dx: 0,\n y,\n dy: 0,\n yMin,\n yMax,\n xMin,\n xMax,\n isFlippedHorizontally: false,\n isFlippedVertically: false\n };\n }\n const position = getLabelPosition({\n subjectType,\n x,\n xMax,\n y,\n yMin,\n yMax,\n maxWidth: styles?.label?.maxWidth,\n height\n });\n return {\n x,\n y,\n yMin,\n yMax,\n xMin,\n xMax,\n ...position\n };\n }, [datum, xScale, yScale, subjectType, styles?.label?.maxWidth, height, renderLabel]);\n if (!positionData) return null;\n const {\n x,\n y,\n yMin,\n yMax,\n xMin,\n xMax,\n dx,\n dy,\n isFlippedHorizontally,\n isFlippedVertically\n } = positionData;\n const getLabelY = () => {\n const labelY = styles?.label?.y;\n if (labelY === 'start') return yMax;\n if (labelY === 'end') return yMin;\n return labelY;\n };\n const getLabelX = () => {\n const labelX = styles?.label?.x;\n if (labelX === 'start') return xMin;\n if (labelX === 'end') return xMax;\n return labelX;\n };\n const labelPosition = {\n x: getLabelX(),\n y: getLabelY()\n };\n\n // Safari has a bug where children of an SVG foreignObject are not positioned correctly https://bugs.webkit.org/show_bug.cgi?id=23113\n // This is a workaround to position the label correctly\n const getSafariHTMLLabelPosition = () => {\n const labelWidth = POPOVER_BUTTON_SIZE;\n const labelHeight = POPOVER_BUTTON_SIZE;\n return isSafari() ? {\n transform: `translate(${x + (dx || 0) + (typeof labelPosition.x === 'number' ? labelPosition.x - x : 0) - labelWidth}px, ${y + (dy || 0) + (typeof labelPosition.y === 'number' ? labelPosition.y - y : 0) - labelHeight}px)`,\n width: labelWidth,\n height: labelHeight\n } : undefined;\n };\n return /*#__PURE__*/_jsx(\"g\", {\n children: /*#__PURE__*/_jsxs(Annotation, {\n x: x,\n y: y,\n dx: dx,\n dy: dy,\n children: [/*#__PURE__*/_jsx(Connector, {\n ...styles?.connector\n }), subjectType === 'circle' && /*#__PURE__*/_jsx(CircleSubject, {\n ...styles?.circleSubject\n }), subjectType === 'line-vertical' && /*#__PURE__*/_jsx(LineSubject, {\n min: yMax,\n max: yMin,\n ...styles?.lineSubject,\n orientation: 'vertical'\n }), subjectType === 'line-horizontal' && /*#__PURE__*/_jsx(LineSubject, {\n min: xMin,\n max: xMax,\n ...styles?.lineSubject,\n orientation: 'horizontal'\n }), renderLabel ? /*#__PURE__*/_jsx(HtmlLabel, {\n ...styles?.label,\n ...labelPosition,\n children: /*#__PURE__*/_jsx(\"div\", {\n style: getSafariHTMLLabelPosition(),\n children: renderLabelPopover ? /*#__PURE__*/_jsx(LineChartAnnotationLabelWithPopover, {\n title: title,\n subtitle: subtitle,\n renderLabel: renderLabel,\n renderLabelPopover: renderLabelPopover\n }) : renderLabel({\n title,\n subtitle\n })\n })\n }) : /*#__PURE__*/_jsx(\"g\", {\n ref: labelRef,\n children: /*#__PURE__*/_jsx(Label, {\n title: title,\n subtitle: subtitle,\n ...styles?.label,\n ...labelPosition,\n horizontalAnchor: getHorizontalAnchor(subjectType, isFlippedHorizontally),\n verticalAnchor: getVerticalAnchor(subjectType, isFlippedVertically, y, yMax, height ?? ANNOTATION_INIT_HEIGHT)\n })\n })]\n })\n });\n};\nexport default LineChartAnnotation;","import { DataContext } from '@visx/xychart';\nimport { useContext } from 'react';\nconst toNumber = val => {\n const num = typeof val === 'number' ? val : parseFloat(val);\n return isNaN(num) ? undefined : num;\n};\nconst LineChartGlyph = ({\n data,\n index,\n color,\n glyphStyle,\n renderGlyph,\n accessors,\n position\n}) => {\n const {\n xScale,\n yScale\n } = useContext(DataContext) || {};\n if (!xScale || !yScale) return null;\n if (data.data.length === 0) return null;\n const point = position === 'start' ? data.data[0] : data.data[data.data.length - 1];\n const x = xScale(accessors.xAccessor(point));\n const y = yScale(accessors.yAccessor(point));\n if (typeof x !== 'number' || typeof y !== 'number') return null;\n const size = Math.max(0, toNumber(glyphStyle?.radius) ?? 4);\n return renderGlyph({\n key: `${position}-glyph-${data.label}`,\n index,\n datum: point,\n color,\n size,\n x,\n y,\n glyphStyle,\n position\n });\n};\nexport default LineChartGlyph;"],"mappings":"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","names":["DataContext","__","clsx","useMemo","useContext","useState","useRef","_jsx","DataContext","useEffect","useState","_jsx","useState","useEffect","DataContext","DataContext","useContext","useRef","useEffect","useState","_jsx","_jsxs","useContext","DataContext","useRef","useState","useEffect","x","y","yMin","yMax","xMin","xMax","DataContext","useContext","_jsx","_jsxs","toNumber","useContext","DataContext","useRef","useState","useMemo","clsx","__"]}
@@ -11,7 +11,7 @@ var _chunkRCY6XLGUcjs = require('./chunk-RCY6XLGU.cjs');
11
11
  var _chunkY3NNQMAXcjs = require('./chunk-Y3NNQMAX.cjs');
12
12
 
13
13
 
14
- var _chunkUFRBUT2Dcjs = require('./chunk-UFRBUT2D.cjs');
14
+ var _chunkI35UYJJRcjs = require('./chunk-I35UYJJR.cjs');
15
15
 
16
16
 
17
17
  var _chunkASLARV7Lcjs = require('./chunk-ASLARV7L.cjs');
@@ -27,10 +27,10 @@ var _chunkASLARV7Lcjs = require('./chunk-ASLARV7L.cjs');
27
27
 
28
28
 
29
29
 
30
- var _chunkYDVHT7GScjs = require('./chunk-YDVHT7GS.cjs');
30
+ var _chunkRHHVEJHJcjs = require('./chunk-RHHVEJHJ.cjs');
31
31
 
32
32
 
33
- var _chunkZVGEDXDPcjs = require('./chunk-ZVGEDXDP.cjs');
33
+ var _chunkVTS3PNMScjs = require('./chunk-VTS3PNMS.cjs');
34
34
 
35
35
  // src/charts/pie-semi-circle-chart/pie-semi-circle-chart.tsx
36
36
  var _group = require('@visx/group');
@@ -118,8 +118,8 @@ var PieSemiCircleChartInternal = ({
118
118
  renderTooltip = renderDefaultPieSemiCircleTooltip,
119
119
  gap = "md"
120
120
  }) => {
121
- const chartId = _chunkYDVHT7GScjs.useChartId.call(void 0, providedChartId);
122
- const [svgWrapperRef, svgWrapperWidth, svgWrapperHeight] = _chunkYDVHT7GScjs.useElementSize.call(void 0, );
121
+ const chartId = _chunkRHHVEJHJcjs.useChartId.call(void 0, providedChartId);
122
+ const [svgWrapperRef, svgWrapperWidth, svgWrapperHeight] = _chunkRHHVEJHJcjs.useElementSize.call(void 0, );
123
123
  const {
124
124
  tooltipOpen,
125
125
  tooltipLeft,
@@ -160,12 +160,12 @@ var PieSemiCircleChartInternal = ({
160
160
  const {
161
161
  getElementStyles,
162
162
  isSeriesVisible
163
- } = _chunkYDVHT7GScjs.useGlobalChartsContext.call(void 0, );
163
+ } = _chunkRHHVEJHJcjs.useGlobalChartsContext.call(void 0, );
164
164
  const {
165
165
  visibleData,
166
166
  allSegmentsHidden,
167
167
  legendData
168
- } = _chunkYDVHT7GScjs.useInteractiveLegendData.call(void 0, {
168
+ } = _chunkRHHVEJHJcjs.useInteractiveLegendData.call(void 0, {
169
169
  data,
170
170
  chartId,
171
171
  legendInteractive,
@@ -183,7 +183,7 @@ var PieSemiCircleChartInternal = ({
183
183
  showValues: true,
184
184
  legendValueDisplay
185
185
  }), [legendValueDisplay]);
186
- const legendItems = _chunkYDVHT7GScjs.useChartLegendItems.call(void 0, legendData, legendOptions);
186
+ const legendItems = _chunkRHHVEJHJcjs.useChartLegendItems.call(void 0, legendData, legendOptions);
187
187
  const {
188
188
  svgChildren,
189
189
  htmlChildren,
@@ -193,14 +193,14 @@ var PieSemiCircleChartInternal = ({
193
193
  thickness,
194
194
  clockwise
195
195
  }), [thickness, clockwise]);
196
- _chunkYDVHT7GScjs.useChartRegistration.call(void 0, {
196
+ _chunkRHHVEJHJcjs.useChartRegistration.call(void 0, {
197
197
  chartId,
198
198
  legendItems,
199
199
  chartType: "pie-semi-circle",
200
200
  isDataValid: isValid,
201
201
  metadata: chartMetadata
202
202
  });
203
- const prefersReducedMotion = _chunkYDVHT7GScjs.usePrefersReducedMotion.call(void 0, );
203
+ const prefersReducedMotion = _chunkRHHVEJHJcjs.usePrefersReducedMotion.call(void 0, );
204
204
  const effectiveWidth = propWidth || DEFAULT_WIDTH;
205
205
  if (!isValid) {
206
206
  const errorWidth = propHeight ? Math.min(propWidth || propHeight * 2, propHeight * 2) : effectiveWidth;
@@ -235,24 +235,26 @@ var PieSemiCircleChartInternal = ({
235
235
  });
236
236
  const startAngle = clockwise ? -Math.PI / 2 : Math.PI / 2;
237
237
  const endAngle = clockwise ? Math.PI / 2 : -Math.PI / 2;
238
- const legendElement = showLegend && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYDVHT7GScjs.Legend, {
238
+ const legendElement = showLegend && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRHHVEJHJcjs.Legend, {
239
239
  orientation: legendOrientation,
240
240
  position: legendPosition,
241
241
  alignment: legendAlignment,
242
- maxWidth: legendMaxWidth,
243
- textOverflow: legendTextOverflow,
244
- legendItemClassName,
242
+ labelStyles: {
243
+ maxWidth: legendMaxWidth,
244
+ textOverflow: legendTextOverflow
245
+ },
246
+ itemClassName: legendItemClassName,
245
247
  shape: legendShape,
246
248
  chartId,
247
249
  interactive: legendInteractive
248
250
  });
249
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYDVHT7GScjs.SingleChartContext.Provider, {
251
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRHHVEJHJcjs.SingleChartContext.Provider, {
250
252
  value: {
251
253
  chartId,
252
254
  chartWidth: width,
253
255
  chartHeight: height
254
256
  },
255
- children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkUFRBUT2Dcjs.Stack, {
257
+ children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkI35UYJJRcjs.Stack, {
256
258
  ref: containerRef,
257
259
  direction: "column",
258
260
  gap,
@@ -342,26 +344,26 @@ var PieSemiCircleChartInternal = ({
342
344
  });
343
345
  };
344
346
  var PieSemiCircleChartWithProvider = (props) => {
345
- const existingContext = _react.useContext.call(void 0, _chunkYDVHT7GScjs.GlobalChartsContext);
347
+ const existingContext = _react.useContext.call(void 0, _chunkRHHVEJHJcjs.GlobalChartsContext);
346
348
  if (existingContext) {
347
349
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, PieSemiCircleChartInternal, {
348
350
  ...props
349
351
  });
350
352
  }
351
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYDVHT7GScjs.GlobalChartsProvider, {
353
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRHHVEJHJcjs.GlobalChartsProvider, {
352
354
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, PieSemiCircleChartInternal, {
353
355
  ...props
354
356
  })
355
357
  });
356
358
  };
357
359
  PieSemiCircleChartWithProvider.displayName = "PieSemiCircleChart";
358
- var PieSemiCircleChart = _chunkZVGEDXDPcjs.attachSubComponents.call(void 0, PieSemiCircleChartWithProvider, {
359
- Legend: _chunkYDVHT7GScjs.Legend,
360
+ var PieSemiCircleChart = _chunkVTS3PNMScjs.attachSubComponents.call(void 0, PieSemiCircleChartWithProvider, {
361
+ Legend: _chunkRHHVEJHJcjs.Legend,
360
362
  SVG: _chunkRCY6XLGUcjs.ChartSVG,
361
363
  HTML: _chunkRCY6XLGUcjs.ChartHTML
362
364
  });
363
- var PieSemiCircleChartResponsive = _chunkZVGEDXDPcjs.attachSubComponents.call(void 0, _chunkASLARV7Lcjs.withResponsive.call(void 0, PieSemiCircleChartWithProvider), {
364
- Legend: _chunkYDVHT7GScjs.Legend,
365
+ var PieSemiCircleChartResponsive = _chunkVTS3PNMScjs.attachSubComponents.call(void 0, _chunkASLARV7Lcjs.withResponsive.call(void 0, PieSemiCircleChartWithProvider), {
366
+ Legend: _chunkRHHVEJHJcjs.Legend,
365
367
  SVG: _chunkRCY6XLGUcjs.ChartSVG,
366
368
  HTML: _chunkRCY6XLGUcjs.ChartHTML
367
369
  });
@@ -370,4 +372,4 @@ var PieSemiCircleChartResponsive = _chunkZVGEDXDPcjs.attachSubComponents.call(vo
370
372
 
371
373
 
372
374
  exports.PieSemiCircleChart = PieSemiCircleChart; exports.PieSemiCircleChartResponsive = PieSemiCircleChartResponsive;
373
- //# sourceMappingURL=chunk-NQJE2CC7.cjs.map
375
+ //# sourceMappingURL=chunk-XKRJL2QT.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/home/runner/work/jetpack/jetpack/projects/js-packages/charts/dist/chunk-XKRJL2QT.cjs","../src/charts/pie-semi-circle-chart/pie-semi-circle-chart.tsx","../src/charts/pie-semi-circle-chart/pie-semi-circle-chart.module.scss"],"names":[],"mappings":"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","file":"/home/runner/work/jetpack/jetpack/projects/js-packages/charts/dist/chunk-XKRJL2QT.cjs","sourcesContent":[null,"import { Group } from '@visx/group';\nimport { Pie } from '@visx/shape';\nimport { Text } from '@visx/text';\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, GlobalChartsContext } from '../../providers';\nimport { attachSubComponents } from '../../utils';\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-semi-circle-chart.module.scss';\n\n/**\n * Parameters passed to the renderTooltip function for semi-circle charts.\n */\nimport { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from \"react/jsx-runtime\";\n/**\n * Default tooltip renderer for semi-circle pie charts.\n * Renders a BaseTooltip with the hovered segment's data.\n *\n * @param {PieSemiCircleChartRenderTooltipParams} params - The tooltip parameters containing the hovered data point\n * @return {ReactNode} The rendered tooltip content\n */\nconst renderDefaultPieSemiCircleTooltip = ({\n tooltipData\n}) => {\n return /*#__PURE__*/_jsx(BaseTooltip, {\n data: tooltipData,\n top: 0,\n left: 0,\n renderContainer: false\n });\n};\nconst PAD_ANGLE = 0.03; // Padding between segments\nconst DEFAULT_WIDTH = 400;\n\n// Base props type with optional responsive properties\n\n// Composition API types\n\n/**\n * Validates the semi-circle 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 is greater than 0\n const totalPercentage = data.reduce((sum, item) => sum + item.percentage, 0);\n if (totalPercentage <= 0) {\n return {\n isValid: false,\n message: 'Invalid percentage total: Must be greater than 0'\n };\n }\n return {\n isValid: true,\n message: ''\n };\n};\nconst PieSemiCircleChartInternal = ({\n data,\n chartId: providedChartId,\n width: propWidth,\n height: propHeight,\n thickness = 0.4,\n clockwise = true,\n withTooltips = false,\n showLegend = false,\n legendOrientation = 'horizontal',\n legendPosition = 'bottom',\n legendAlignment = 'center',\n legendMaxWidth,\n legendTextOverflow = 'wrap',\n legendItemClassName,\n legendShape = 'circle',\n legendValueDisplay = 'percentage',\n legendInteractive = false,\n label,\n animation,\n note,\n className,\n children,\n tooltipOffsetX = 0,\n tooltipOffsetY = -15,\n renderTooltip = renderDefaultPieSemiCircleTooltip,\n gap = 'md'\n}) => {\n const chartId = useChartId(providedChartId);\n // Measure the SVG wrapper to calculate constrained dimensions\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 handleMouseMove = useCallback((event, arc) => {\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 }, [containerBounds.width, containerBounds.height, containerBounds.left, containerBounds.top, showTooltip, tooltipOffsetX, tooltipOffsetY]);\n const handleMouseLeave = useCallback(() => {\n hideTooltip();\n }, [hideTooltip]);\n const handleArcMouseMove = useCallback(arc => event => {\n handleMouseMove(event, arc);\n }, [handleMouseMove]);\n\n // Validate data first to get validation result\n const {\n isValid,\n message\n } = validateData(data);\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 // Define accessors with useMemo to avoid changing dependencies\n const accessors = useMemo(() => ({\n value: d => d.value,\n sort: (a, b) => b.value - a.value,\n fill: d => getElementStyles({\n data: d,\n index: d.index\n }).color\n }), [getElementStyles]);\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\n // Process children to extract compound components\n const {\n svgChildren,\n htmlChildren,\n otherChildren\n } = useChartChildren(children, 'PieSemiCircleChart');\n\n // Memoize metadata to prevent unnecessary re-registration\n const chartMetadata = useMemo(() => ({\n thickness,\n clockwise\n }), [thickness, clockwise]);\n\n // Register chart with context only if data is valid\n useChartRegistration({\n chartId,\n legendItems,\n chartType: 'pie-semi-circle',\n isDataValid: isValid,\n metadata: chartMetadata\n });\n const prefersReducedMotion = usePrefersReducedMotion();\n const effectiveWidth = propWidth || DEFAULT_WIDTH;\n if (!isValid) {\n const errorWidth = propHeight ? Math.min(propWidth || propHeight * 2, propHeight * 2) : effectiveWidth;\n const errorHeight = errorWidth / 2;\n return /*#__PURE__*/_jsx(\"div\", {\n className: styles['pie-semi-circle-chart'],\n children: /*#__PURE__*/_jsx(\"svg\", {\n width: errorWidth,\n height: errorHeight,\n children: /*#__PURE__*/_jsx(\"text\", {\n x: \"50%\",\n y: \"50%\",\n textAnchor: \"middle\",\n className: styles.error,\n children: message\n })\n })\n });\n }\n\n // Calculate chart dimensions maintaining the 2:1 width-to-height ratio.\n // Use measured SVG wrapper dimensions to respect height constraints, falling back\n // to explicit props during initial render before measurement is available.\n const availableWidth = svgWrapperWidth > 0 ? svgWrapperWidth : effectiveWidth;\n const availableHeight = svgWrapperHeight > 0 ? svgWrapperHeight : propHeight || effectiveWidth / 2;\n // Constrain width so that height (= width / 2) never exceeds the available height\n const width = Math.min(availableWidth, availableHeight * 2);\n const height = width / 2;\n const radius = height; // For a semi-circle, radius equals the SVG height\n const innerRadius = radius * (1 - thickness);\n\n // Map data with 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\n // Configure pie angles based on clockwise direction\n const startAngle = clockwise ? -Math.PI / 2 : Math.PI / 2;\n const endAngle = clockwise ? Math.PI / 2 : -Math.PI / 2;\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-semi-circle-chart', styles['pie-semi-circle-chart'], {\n [styles['pie-semi-circle-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 ref: svgWrapperRef,\n className: styles['pie-semi-circle-chart__svg-wrapper'],\n children: /*#__PURE__*/_jsxs(\"svg\", {\n width: width,\n height: height,\n viewBox: `0 0 ${width} ${height}`,\n children: [/*#__PURE__*/_jsx(\"defs\", {\n children: /*#__PURE__*/_jsx(RadialWipeAnimation, {\n id: `radial-wipe-${chartId}`,\n radius: radius,\n innerRadius: innerRadius,\n startAngle: \"-180deg\",\n wipePercentage: 50\n })\n }), /*#__PURE__*/_jsx(Group, {\n top: height,\n left: width / 2,\n mask: animation && !prefersReducedMotion ? `url(#radial-wipe-${chartId})` : null,\n children: allSegmentsHidden ? /*#__PURE__*/_jsx(\"text\", {\n textAnchor: \"middle\",\n y: -radius / 2,\n fill: \"#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__*/_jsxs(_Fragment, {\n children: [/*#__PURE__*/_jsx(Pie, {\n data: dataWithIndex,\n pieValue: accessors.value,\n outerRadius: radius,\n innerRadius: innerRadius,\n cornerRadius: 3,\n padAngle: PAD_ANGLE,\n startAngle: startAngle,\n endAngle: endAngle,\n pieSort: accessors.sort,\n children: pie => {\n return pie.arcs.map(arc => /*#__PURE__*/_jsx(\"g\", {\n onMouseMove: withTooltips ? handleArcMouseMove(arc) : undefined,\n onMouseLeave: withTooltips ? handleMouseLeave : undefined,\n children: /*#__PURE__*/_jsx(\"path\", {\n d: pie.path(arc) || '',\n fill: accessors.fill(arc.data)\n })\n }, arc.data.label));\n }\n }), /*#__PURE__*/_jsxs(Group, {\n children: [/*#__PURE__*/_jsx(Text, {\n textAnchor: \"middle\",\n verticalAnchor: \"start\",\n y: -40 // Position above the chart with space for note\n ,\n className: styles.label,\n children: label\n }), /*#__PURE__*/_jsx(Text, {\n textAnchor: \"middle\",\n verticalAnchor: \"start\",\n y: -20 // Position between label and chart\n ,\n className: styles.note,\n children: note\n })]\n }), !allSegmentsHidden && svgChildren]\n })\n })]\n })\n }), legendPosition !== 'top' && 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 PieSemiCircleChartWithProvider = 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(PieSemiCircleChartInternal, {\n ...props\n });\n }\n\n // Otherwise, create our own GlobalChartsProvider\n return /*#__PURE__*/_jsx(GlobalChartsProvider, {\n children: /*#__PURE__*/_jsx(PieSemiCircleChartInternal, {\n ...props\n })\n });\n};\nPieSemiCircleChartWithProvider.displayName = 'PieSemiCircleChart';\n\n// Create PieSemiCircleChart with composition API\nconst PieSemiCircleChart = attachSubComponents(PieSemiCircleChartWithProvider, {\n Legend: Legend,\n SVG: ChartSVG,\n HTML: ChartHTML\n});\n\n// Create responsive PieSemiCircleChart with composition API\nconst PieSemiCircleChartResponsive = attachSubComponents(withResponsive(PieSemiCircleChartWithProvider), {\n Legend: Legend,\n SVG: ChartSVG,\n HTML: ChartHTML\n});\nexport { PieSemiCircleChartResponsive as default, PieSemiCircleChart as PieSemiCircleChartUnresponsive };","import 'css-chunk:src/charts/pie-semi-circle-chart/pie-semi-circle-chart.module.scss';export default {\n \"pie-semi-circle-chart--responsive\": \"a8ccharts-V0wiEb\",\n \"pie-semi-circle-chart__svg-wrapper\": \"a8ccharts-hGowej\",\n \"pie-semi-circle-chart\": \"a8ccharts-8tyaQj\",\n \"label\": \"a8ccharts-EKZS3j\",\n \"note\": \"a8ccharts-v85A8-\"\n};"]}
@@ -4,7 +4,7 @@
4
4
  var _chunkY3NNQMAXcjs = require('./chunk-Y3NNQMAX.cjs');
5
5
 
6
6
 
7
- var _chunkUFRBUT2Dcjs = require('./chunk-UFRBUT2D.cjs');
7
+ var _chunkI35UYJJRcjs = require('./chunk-I35UYJJR.cjs');
8
8
 
9
9
 
10
10
  var _chunkASLARV7Lcjs = require('./chunk-ASLARV7L.cjs');
@@ -25,11 +25,11 @@ var _chunkASLARV7Lcjs = require('./chunk-ASLARV7L.cjs');
25
25
 
26
26
 
27
27
 
28
- var _chunkYDVHT7GScjs = require('./chunk-YDVHT7GS.cjs');
28
+ var _chunkRHHVEJHJcjs = require('./chunk-RHHVEJHJ.cjs');
29
29
 
30
30
 
31
31
 
32
- var _chunkZVGEDXDPcjs = require('./chunk-ZVGEDXDP.cjs');
32
+ var _chunkVTS3PNMScjs = require('./chunk-VTS3PNMS.cjs');
33
33
 
34
34
  // src/charts/line-chart/line-chart.tsx
35
35
  var _numberformatters = require('@automattic/number-formatters');
@@ -101,7 +101,7 @@ var LineChartAnnotationLabelWithPopover = ({
101
101
  const buttonRef = _react.useRef.call(void 0, null);
102
102
  const popoverRef = _react.useRef.call(void 0, null);
103
103
  const [isPositioned, setIsPositioned] = _react.useState.call(void 0, false);
104
- const isBrowserSafari = _chunkZVGEDXDPcjs.isSafari.call(void 0, );
104
+ const isBrowserSafari = _chunkVTS3PNMScjs.isSafari.call(void 0, );
105
105
  _react.useEffect.call(void 0, () => {
106
106
  const button = buttonRef.current;
107
107
  const popover = popoverRef.current;
@@ -182,7 +182,7 @@ var LineChartAnnotationsOverlay = ({
182
182
  chartRef,
183
183
  chartWidth,
184
184
  chartHeight
185
- } = _chunkYDVHT7GScjs.useSingleChartContext.call(void 0, );
185
+ } = _chunkRHHVEJHJcjs.useSingleChartContext.call(void 0, );
186
186
  const [scales, setScales] = _react.useState.call(void 0, null);
187
187
  const [scalesStable, setScalesStable] = _react.useState.call(void 0, false);
188
188
  const createScaleSignature = _react.useCallback.call(void 0, (scaleData) => {
@@ -361,7 +361,7 @@ var LineChartAnnotation = ({
361
361
  renderLabel,
362
362
  renderLabelPopover
363
363
  }) => {
364
- const providerTheme = _chunkYDVHT7GScjs.useGlobalChartsTheme.call(void 0, );
364
+ const providerTheme = _chunkRHHVEJHJcjs.useGlobalChartsTheme.call(void 0, );
365
365
  const {
366
366
  xScale,
367
367
  yScale
@@ -448,7 +448,7 @@ var LineChartAnnotation = ({
448
448
  const getSafariHTMLLabelPosition = () => {
449
449
  const labelWidth = POPOVER_BUTTON_SIZE;
450
450
  const labelHeight = POPOVER_BUTTON_SIZE;
451
- return _chunkZVGEDXDPcjs.isSafari.call(void 0, ) ? {
451
+ return _chunkVTS3PNMScjs.isSafari.call(void 0, ) ? {
452
452
  transform: `translate(${x + (dx || 0) + (typeof labelPosition.x === "number" ? labelPosition.x - x : 0) - labelWidth}px, ${y + (dy || 0) + (typeof labelPosition.y === "number" ? labelPosition.y - y : 0) - labelHeight}px)`,
453
453
  width: labelWidth,
454
454
  height: labelHeight
@@ -734,15 +734,15 @@ var LineChartInternal = /* @__PURE__ */ _react.forwardRef.call(void 0, ({
734
734
  gridVisibility,
735
735
  gap = "md"
736
736
  }, ref) => {
737
- const providerTheme = _chunkYDVHT7GScjs.useGlobalChartsTheme.call(void 0, );
738
- const theme = _chunkYDVHT7GScjs.useXYChartTheme.call(void 0, data);
739
- const chartId = _chunkYDVHT7GScjs.useChartId.call(void 0, providedChartId);
740
- const [svgWrapperRef, , svgWrapperHeight] = _chunkYDVHT7GScjs.useElementSize.call(void 0, );
737
+ const providerTheme = _chunkRHHVEJHJcjs.useGlobalChartsTheme.call(void 0, );
738
+ const theme = _chunkRHHVEJHJcjs.useXYChartTheme.call(void 0, data);
739
+ const chartId = _chunkRHHVEJHJcjs.useChartId.call(void 0, providedChartId);
740
+ const [svgWrapperRef, , svgWrapperHeight] = _chunkRHHVEJHJcjs.useElementSize.call(void 0, );
741
741
  const chartRef = _react.useRef.call(void 0, null);
742
742
  const [selectedIndex, setSelectedIndex] = _react.useState.call(void 0, void 0);
743
743
  const [isNavigating, setIsNavigating] = _react.useState.call(void 0, false);
744
744
  const internalChartRef = _react.useRef.call(void 0, null);
745
- const hasLegendChild = _chunkYDVHT7GScjs.useHasLegendChild.call(void 0, children);
745
+ const hasLegendChild = _chunkRHHVEJHJcjs.useHasLegendChild.call(void 0, children);
746
746
  const chartHeight = svgWrapperHeight > 0 ? svgWrapperHeight : height;
747
747
  const hasLegend = showLegend || hasLegendChild;
748
748
  const isWaitingForMeasurement = hasLegend ? svgWrapperHeight === 0 : !chartHeight;
@@ -754,11 +754,11 @@ var LineChartInternal = /* @__PURE__ */ _react.forwardRef.call(void 0, ({
754
754
  margin: {}
755
755
  }
756
756
  }), [internalChartRef]);
757
- const dataSorted = _chunkYDVHT7GScjs.useChartDataTransform.call(void 0, data);
757
+ const dataSorted = _chunkRHHVEJHJcjs.useChartDataTransform.call(void 0, data);
758
758
  const {
759
759
  getElementStyles,
760
760
  isSeriesVisible
761
- } = _chunkYDVHT7GScjs.useGlobalChartsContext.call(void 0, );
761
+ } = _chunkRHHVEJHJcjs.useGlobalChartsContext.call(void 0, );
762
762
  const seriesWithVisibility = _react.useMemo.call(void 0, () => {
763
763
  if (!chartId || !legendInteractive) {
764
764
  return dataSorted.map((series, index) => ({
@@ -840,7 +840,7 @@ var LineChartInternal = /* @__PURE__ */ _react.forwardRef.call(void 0, ({
840
840
  return themeGlyph ? themeGlyph(propsWithResolvedColor) : renderGlyph(propsWithResolvedColor);
841
841
  };
842
842
  }, [dataSorted, renderGlyph, getElementStyles]);
843
- const defaultMargin = _chunkYDVHT7GScjs.useChartMargin.call(void 0, height, chartOptions, dataSorted, theme);
843
+ const defaultMargin = _chunkRHHVEJHJcjs.useChartMargin.call(void 0, height, chartOptions, dataSorted, theme);
844
844
  const error = validateData(dataSorted);
845
845
  const isDataValid = !error;
846
846
  const legendOptions = _react.useMemo.call(void 0, () => ({
@@ -848,7 +848,7 @@ var LineChartInternal = /* @__PURE__ */ _react.forwardRef.call(void 0, ({
848
848
  glyphSize: Math.max(0, _nullishCoalesce(toNumber2(_optionalChain([glyphStyle, 'optionalAccess', _66 => _66.radius])), () => ( 4))),
849
849
  renderGlyph
850
850
  }), [withLegendGlyph, _optionalChain([glyphStyle, 'optionalAccess', _67 => _67.radius]), renderGlyph]);
851
- const legendItems = _chunkYDVHT7GScjs.useChartLegendItems.call(void 0, dataSorted, legendOptions, legendShape);
851
+ const legendItems = _chunkRHHVEJHJcjs.useChartLegendItems.call(void 0, dataSorted, legendOptions, legendShape);
852
852
  const chartMetadata = _react.useMemo.call(void 0, () => ({
853
853
  withGradientFill,
854
854
  smoothing,
@@ -857,14 +857,14 @@ var LineChartInternal = /* @__PURE__ */ _react.forwardRef.call(void 0, ({
857
857
  withEndGlyphs,
858
858
  withLegendGlyph
859
859
  }), [withGradientFill, smoothing, curveType, withStartGlyphs, withEndGlyphs, withLegendGlyph]);
860
- _chunkYDVHT7GScjs.useChartRegistration.call(void 0, {
860
+ _chunkRHHVEJHJcjs.useChartRegistration.call(void 0, {
861
861
  chartId,
862
862
  legendItems,
863
863
  chartType: "line",
864
864
  isDataValid,
865
865
  metadata: chartMetadata
866
866
  });
867
- const prefersReducedMotion = _chunkYDVHT7GScjs.usePrefersReducedMotion.call(void 0, );
867
+ const prefersReducedMotion = _chunkRHHVEJHJcjs.usePrefersReducedMotion.call(void 0, );
868
868
  const accessors = {
869
869
  xAccessor: (d) => _optionalChain([d, 'optionalAccess', _68 => _68.date]),
870
870
  yAccessor: (d) => _optionalChain([d, 'optionalAccess', _69 => _69.value])
@@ -875,26 +875,28 @@ var LineChartInternal = /* @__PURE__ */ _react.forwardRef.call(void 0, ({
875
875
  children: error
876
876
  });
877
877
  }
878
- const legendElement = showLegend && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYDVHT7GScjs.Legend, {
878
+ const legendElement = showLegend && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRHHVEJHJcjs.Legend, {
879
879
  orientation: legendOrientation,
880
880
  alignment: legendAlignment,
881
881
  position: legendPosition,
882
- maxWidth: legendMaxWidth,
883
- textOverflow: legendTextOverflow,
884
- legendItemClassName,
882
+ labelStyles: {
883
+ maxWidth: legendMaxWidth,
884
+ textOverflow: legendTextOverflow
885
+ },
886
+ itemClassName: legendItemClassName,
885
887
  className: line_chart_module_default["line-chart__legend"],
886
888
  shape: legendShape,
887
889
  chartId,
888
890
  interactive: legendInteractive
889
891
  });
890
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYDVHT7GScjs.SingleChartContext.Provider, {
892
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRHHVEJHJcjs.SingleChartContext.Provider, {
891
893
  value: {
892
894
  chartId,
893
895
  chartRef: internalChartRef,
894
896
  chartWidth: width,
895
897
  chartHeight
896
898
  },
897
- children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkUFRBUT2Dcjs.Stack, {
899
+ children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkI35UYJJRcjs.Stack, {
898
900
  direction: "column",
899
901
  gap,
900
902
  className: _clsx2.default.call(void 0, "line-chart", line_chart_module_default["line-chart"], {
@@ -1032,14 +1034,14 @@ var LineChartInternal = /* @__PURE__ */ _react.forwardRef.call(void 0, ({
1032
1034
  });
1033
1035
  });
1034
1036
  var LineChartWithProvider = /* @__PURE__ */ _react.forwardRef.call(void 0, (props, ref) => {
1035
- const existingContext = _react.useContext.call(void 0, _chunkYDVHT7GScjs.GlobalChartsContext);
1037
+ const existingContext = _react.useContext.call(void 0, _chunkRHHVEJHJcjs.GlobalChartsContext);
1036
1038
  if (existingContext) {
1037
1039
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, LineChartInternal, {
1038
1040
  ...props,
1039
1041
  ref
1040
1042
  });
1041
1043
  }
1042
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYDVHT7GScjs.GlobalChartsProvider, {
1044
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRHHVEJHJcjs.GlobalChartsProvider, {
1043
1045
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, LineChartInternal, {
1044
1046
  ...props,
1045
1047
  ref
@@ -1047,13 +1049,13 @@ var LineChartWithProvider = /* @__PURE__ */ _react.forwardRef.call(void 0, (prop
1047
1049
  });
1048
1050
  });
1049
1051
  LineChartWithProvider.displayName = "LineChart";
1050
- var LineChart = _chunkZVGEDXDPcjs.attachSubComponents.call(void 0, LineChartWithProvider, {
1051
- Legend: _chunkYDVHT7GScjs.Legend,
1052
+ var LineChart = _chunkVTS3PNMScjs.attachSubComponents.call(void 0, LineChartWithProvider, {
1053
+ Legend: _chunkRHHVEJHJcjs.Legend,
1052
1054
  AnnotationsOverlay: line_chart_annotations_overlay_default,
1053
1055
  Annotation: line_chart_annotation_default
1054
1056
  });
1055
- var LineChartResponsive = _chunkZVGEDXDPcjs.attachSubComponents.call(void 0, _chunkASLARV7Lcjs.withResponsive.call(void 0, LineChartWithProvider), {
1056
- Legend: _chunkYDVHT7GScjs.Legend,
1057
+ var LineChartResponsive = _chunkVTS3PNMScjs.attachSubComponents.call(void 0, _chunkASLARV7Lcjs.withResponsive.call(void 0, LineChartWithProvider), {
1058
+ Legend: _chunkRHHVEJHJcjs.Legend,
1057
1059
  AnnotationsOverlay: line_chart_annotations_overlay_default,
1058
1060
  Annotation: line_chart_annotation_default
1059
1061
  });
@@ -1062,4 +1064,4 @@ var LineChartResponsive = _chunkZVGEDXDPcjs.attachSubComponents.call(void 0, _ch
1062
1064
 
1063
1065
 
1064
1066
  exports.LineChart = LineChart; exports.LineChartResponsive = LineChartResponsive;
1065
- //# sourceMappingURL=chunk-O2JIANHK.cjs.map
1067
+ //# sourceMappingURL=chunk-YE2T52VZ.cjs.map