@automattic/charts 0.56.3 → 0.56.5

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 (186) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/charts/bar-chart/index.cjs +5 -5
  3. package/dist/charts/bar-chart/index.css +12 -0
  4. package/dist/charts/bar-chart/index.css.map +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.css +12 -0
  8. package/dist/charts/bar-list-chart/index.css.map +1 -1
  9. package/dist/charts/bar-list-chart/index.js +5 -5
  10. package/dist/charts/conversion-funnel-chart/index.cjs +5 -3
  11. package/dist/charts/conversion-funnel-chart/index.cjs.map +1 -1
  12. package/dist/charts/conversion-funnel-chart/index.css +14 -1
  13. package/dist/charts/conversion-funnel-chart/index.css.map +1 -1
  14. package/dist/charts/conversion-funnel-chart/index.d.cts +2 -0
  15. package/dist/charts/conversion-funnel-chart/index.d.ts +2 -0
  16. package/dist/charts/conversion-funnel-chart/index.js +4 -2
  17. package/dist/charts/geo-chart/index.cjs +4 -4
  18. package/dist/charts/geo-chart/index.css +12 -0
  19. package/dist/charts/geo-chart/index.css.map +1 -1
  20. package/dist/charts/geo-chart/index.js +3 -3
  21. package/dist/charts/leaderboard-chart/index.cjs +5 -5
  22. package/dist/charts/leaderboard-chart/index.css +12 -0
  23. package/dist/charts/leaderboard-chart/index.css.map +1 -1
  24. package/dist/charts/leaderboard-chart/index.js +4 -4
  25. package/dist/charts/line-chart/index.cjs +5 -5
  26. package/dist/charts/line-chart/index.css +12 -0
  27. package/dist/charts/line-chart/index.css.map +1 -1
  28. package/dist/charts/line-chart/index.js +4 -4
  29. package/dist/charts/pie-chart/index.cjs +7 -7
  30. package/dist/charts/pie-chart/index.css +12 -0
  31. package/dist/charts/pie-chart/index.css.map +1 -1
  32. package/dist/charts/pie-chart/index.js +6 -6
  33. package/dist/charts/pie-semi-circle-chart/index.cjs +7 -7
  34. package/dist/charts/pie-semi-circle-chart/index.css +12 -0
  35. package/dist/charts/pie-semi-circle-chart/index.css.map +1 -1
  36. package/dist/charts/pie-semi-circle-chart/index.js +6 -6
  37. package/dist/charts/sparkline/index.cjs +6 -6
  38. package/dist/charts/sparkline/index.css +12 -0
  39. package/dist/charts/sparkline/index.css.map +1 -1
  40. package/dist/charts/sparkline/index.js +5 -5
  41. package/dist/{chunk-OTZT3MC2.cjs → chunk-2A34OA5O.cjs} +19 -20
  42. package/dist/chunk-2A34OA5O.cjs.map +1 -0
  43. package/dist/{chunk-H34CJSR6.js → chunk-32ESS4MV.js} +406 -363
  44. package/dist/chunk-32ESS4MV.js.map +1 -0
  45. package/dist/{chunk-CEZGL6YP.js → chunk-6CCZL2JJ.js} +15 -7
  46. package/dist/chunk-6CCZL2JJ.js.map +1 -0
  47. package/dist/{chunk-NW3RUYK2.cjs → chunk-7QDEU3KN.cjs} +15 -22
  48. package/dist/chunk-7QDEU3KN.cjs.map +1 -0
  49. package/dist/chunk-7TQSPLIN.js +351 -0
  50. package/dist/chunk-7TQSPLIN.js.map +1 -0
  51. package/dist/{chunk-T4J6TI55.js → chunk-AFWQR3SM.js} +102 -79
  52. package/dist/chunk-AFWQR3SM.js.map +1 -0
  53. package/dist/{chunk-5XI443YP.js → chunk-BPYKWMI7.js} +72 -64
  54. package/dist/chunk-BPYKWMI7.js.map +1 -0
  55. package/dist/{chunk-TNRKEBTA.js → chunk-DBY6C4O2.js} +148 -164
  56. package/dist/{chunk-TNRKEBTA.js.map → chunk-DBY6C4O2.js.map} +1 -1
  57. package/dist/chunk-DLSUC7RN.js +1065 -0
  58. package/dist/chunk-DLSUC7RN.js.map +1 -0
  59. package/dist/{chunk-TVV7ZI7C.cjs → chunk-EJJO2QNB.cjs} +399 -356
  60. package/dist/chunk-EJJO2QNB.cjs.map +1 -0
  61. package/dist/{chunk-ODF5O5PV.cjs → chunk-FIFSYVN6.cjs} +154 -170
  62. package/dist/chunk-FIFSYVN6.cjs.map +1 -0
  63. package/dist/chunk-FY325WQ4.cjs +1065 -0
  64. package/dist/chunk-FY325WQ4.cjs.map +1 -0
  65. package/dist/{chunk-SRXJLAKG.cjs → chunk-I2276W3I.cjs} +28 -37
  66. package/dist/chunk-I2276W3I.cjs.map +1 -0
  67. package/dist/{chunk-7UJPVCMB.cjs → chunk-IHESL7H5.cjs} +265 -262
  68. package/dist/chunk-IHESL7H5.cjs.map +1 -0
  69. package/dist/chunk-JL4ZKKZU.cjs +375 -0
  70. package/dist/chunk-JL4ZKKZU.cjs.map +1 -0
  71. package/dist/chunk-KHRPRH4V.js +165 -0
  72. package/dist/chunk-KHRPRH4V.js.map +1 -0
  73. package/dist/{chunk-A3AEEGKR.js → chunk-KXRWNFQJ.js} +20 -21
  74. package/dist/chunk-KXRWNFQJ.js.map +1 -0
  75. package/dist/{chunk-2VPPTJS2.js → chunk-KXSLMOW5.js} +256 -253
  76. package/dist/chunk-KXSLMOW5.js.map +1 -0
  77. package/dist/chunk-LT4YOIMM.js +375 -0
  78. package/dist/chunk-LT4YOIMM.js.map +1 -0
  79. package/dist/chunk-LTPJPIDP.cjs +165 -0
  80. package/dist/chunk-LTPJPIDP.cjs.map +1 -0
  81. package/dist/chunk-NGHXTIUE.cjs +120 -0
  82. package/dist/chunk-NGHXTIUE.cjs.map +1 -0
  83. package/dist/chunk-PCOI2GT5.js +120 -0
  84. package/dist/chunk-PCOI2GT5.js.map +1 -0
  85. package/dist/{chunk-YYQ4IK5V.cjs → chunk-Q6G3BGCL.cjs} +103 -80
  86. package/dist/chunk-Q6G3BGCL.cjs.map +1 -0
  87. package/dist/{chunk-HIWNB5PK.cjs → chunk-RCY6XLGU.cjs} +13 -5
  88. package/dist/chunk-RCY6XLGU.cjs.map +1 -0
  89. package/dist/chunk-TKPK4RFS.cjs +351 -0
  90. package/dist/chunk-TKPK4RFS.cjs.map +1 -0
  91. package/dist/{chunk-C33AQZEC.js → chunk-TYIH5LMV.js} +16 -23
  92. package/dist/chunk-TYIH5LMV.js.map +1 -0
  93. package/dist/chunk-X6GX4QUJ.js +421 -0
  94. package/dist/chunk-X6GX4QUJ.js.map +1 -0
  95. package/dist/chunk-XCXAWMJQ.cjs +421 -0
  96. package/dist/chunk-XCXAWMJQ.cjs.map +1 -0
  97. package/dist/chunk-XWYZIFZW.js +66 -0
  98. package/dist/chunk-XWYZIFZW.js.map +1 -0
  99. package/dist/{chunk-7HROSZRS.cjs → chunk-Y3NNQMAX.cjs} +70 -62
  100. package/dist/chunk-Y3NNQMAX.cjs.map +1 -0
  101. package/dist/components/legend/index.cjs +2 -2
  102. package/dist/components/legend/index.css +12 -0
  103. package/dist/components/legend/index.css.map +1 -1
  104. package/dist/components/legend/index.js +1 -1
  105. package/dist/components/tooltip/index.cjs +2 -2
  106. package/dist/components/tooltip/index.js +1 -1
  107. package/dist/components/trend-indicator/index.cjs +2 -2
  108. package/dist/components/trend-indicator/index.js +1 -1
  109. package/dist/hooks/index.cjs +4 -2
  110. package/dist/hooks/index.cjs.map +1 -1
  111. package/dist/hooks/index.css +12 -0
  112. package/dist/hooks/index.css.map +1 -1
  113. package/dist/hooks/index.d.cts +28 -2
  114. package/dist/hooks/index.d.ts +28 -2
  115. package/dist/hooks/index.js +3 -1
  116. package/dist/index.cjs +18 -18
  117. package/dist/index.cjs.map +1 -1
  118. package/dist/index.css +14 -1
  119. package/dist/index.css.map +1 -1
  120. package/dist/index.d.cts +1 -1
  121. package/dist/index.d.ts +1 -1
  122. package/dist/index.js +17 -17
  123. package/dist/providers/index.cjs +2 -2
  124. package/dist/providers/index.css +12 -0
  125. package/dist/providers/index.css.map +1 -1
  126. package/dist/providers/index.d.cts +1 -1
  127. package/dist/providers/index.d.ts +1 -1
  128. package/dist/providers/index.js +1 -1
  129. package/dist/{themes-DQs9rbN5.d.cts → themes-BDVaIfBz.d.cts} +9 -0
  130. package/dist/{themes-CRV5fVzJ.d.ts → themes-mcS8QNkQ.d.ts} +9 -0
  131. package/package.json +6 -2
  132. package/src/charts/conversion-funnel-chart/conversion-funnel-chart.module.scss +2 -1
  133. package/src/charts/conversion-funnel-chart/conversion-funnel-chart.tsx +16 -6
  134. package/src/charts/conversion-funnel-chart/test/conversion-funnel-chart.test.tsx +34 -0
  135. package/src/charts/conversion-funnel-chart/types.ts +2 -0
  136. package/src/charts/pie-chart/pie-chart.tsx +2 -3
  137. package/src/hooks/index.ts +1 -0
  138. package/src/hooks/test/use-chart-margin.test.tsx +44 -0
  139. package/src/hooks/test/use-tooltip-portal-relocator.test.ts +216 -0
  140. package/src/hooks/use-chart-margin.tsx +92 -6
  141. package/src/hooks/use-tooltip-portal-relocator.module.scss +10 -0
  142. package/src/hooks/use-tooltip-portal-relocator.ts +177 -0
  143. package/src/providers/chart-context/global-charts-provider.tsx +18 -1
  144. package/tsup.config.ts +11 -0
  145. package/dist/chunk-2VPPTJS2.js.map +0 -1
  146. package/dist/chunk-5XI443YP.js.map +0 -1
  147. package/dist/chunk-7HROSZRS.cjs.map +0 -1
  148. package/dist/chunk-7UJPVCMB.cjs.map +0 -1
  149. package/dist/chunk-A3AEEGKR.js.map +0 -1
  150. package/dist/chunk-C33AQZEC.js.map +0 -1
  151. package/dist/chunk-CEZGL6YP.js.map +0 -1
  152. package/dist/chunk-COOC2TVQ.js +0 -167
  153. package/dist/chunk-COOC2TVQ.js.map +0 -1
  154. package/dist/chunk-EJHLLXBV.js +0 -362
  155. package/dist/chunk-EJHLLXBV.js.map +0 -1
  156. package/dist/chunk-FWMJ2FR2.js +0 -121
  157. package/dist/chunk-FWMJ2FR2.js.map +0 -1
  158. package/dist/chunk-GRYNIPWH.cjs +0 -385
  159. package/dist/chunk-GRYNIPWH.cjs.map +0 -1
  160. package/dist/chunk-H34CJSR6.js.map +0 -1
  161. package/dist/chunk-HIWNB5PK.cjs.map +0 -1
  162. package/dist/chunk-IZWC33YN.cjs +0 -357
  163. package/dist/chunk-IZWC33YN.cjs.map +0 -1
  164. package/dist/chunk-KOF32DBL.cjs +0 -1058
  165. package/dist/chunk-KOF32DBL.cjs.map +0 -1
  166. package/dist/chunk-LHWRZMF7.cjs +0 -362
  167. package/dist/chunk-LHWRZMF7.cjs.map +0 -1
  168. package/dist/chunk-MFRS2PEY.cjs +0 -121
  169. package/dist/chunk-MFRS2PEY.cjs.map +0 -1
  170. package/dist/chunk-MMDLXS6O.js +0 -75
  171. package/dist/chunk-MMDLXS6O.js.map +0 -1
  172. package/dist/chunk-NW3RUYK2.cjs.map +0 -1
  173. package/dist/chunk-ODF5O5PV.cjs.map +0 -1
  174. package/dist/chunk-OTZT3MC2.cjs.map +0 -1
  175. package/dist/chunk-SBRMWDWM.js +0 -357
  176. package/dist/chunk-SBRMWDWM.js.map +0 -1
  177. package/dist/chunk-SRXJLAKG.cjs.map +0 -1
  178. package/dist/chunk-T4J6TI55.js.map +0 -1
  179. package/dist/chunk-TVV7ZI7C.cjs.map +0 -1
  180. package/dist/chunk-XVMXWV3C.cjs +0 -167
  181. package/dist/chunk-XVMXWV3C.cjs.map +0 -1
  182. package/dist/chunk-YYQ4IK5V.cjs.map +0 -1
  183. package/dist/chunk-ZDNCF642.js +0 -1058
  184. package/dist/chunk-ZDNCF642.js.map +0 -1
  185. package/dist/chunk-ZWBUEHKF.js +0 -385
  186. package/dist/chunk-ZWBUEHKF.js.map +0 -1
@@ -8,11 +8,11 @@ var base_tooltip_module_default = {
8
8
 
9
9
  // src/components/tooltip/base-tooltip.tsx
10
10
  var _jsxruntime = require('react/jsx-runtime');
11
- var DefaultTooltipContent = ({ data }) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
12
- _optionalChain([data, 'optionalAccess', _ => _.label]),
13
- ": ",
14
- _optionalChain([data, 'optionalAccess', _2 => _2.valueDisplay]) || _numberformatters.formatNumber.call(void 0, _optionalChain([data, 'optionalAccess', _3 => _3.value]))
15
- ] });
11
+ var DefaultTooltipContent = ({
12
+ data
13
+ }) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, {
14
+ children: [_optionalChain([data, 'optionalAccess', _ => _.label]), ": ", _optionalChain([data, 'optionalAccess', _2 => _2.valueDisplay]) || _numberformatters.formatNumber.call(void 0, _optionalChain([data, 'optionalAccess', _3 => _3.value]))]
15
+ });
16
16
  var BaseTooltip = ({
17
17
  data,
18
18
  top,
@@ -23,11 +23,23 @@ var BaseTooltip = ({
23
23
  style,
24
24
  renderContainer = true
25
25
  }) => {
26
- const content = children || data && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Component, { data, className });
26
+ const content = children || data && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Component, {
27
+ data,
28
+ className
29
+ });
27
30
  if (!renderContainer) {
28
31
  return content;
29
32
  }
30
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: base_tooltip_module_default.tooltip, style: { top, left, ...style }, role: "tooltip", children: content });
33
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", {
34
+ className: base_tooltip_module_default.tooltip,
35
+ style: {
36
+ top,
37
+ left,
38
+ ...style
39
+ },
40
+ role: "tooltip",
41
+ children: content
42
+ });
31
43
  };
32
44
 
33
45
  // src/components/tooltip/accessible-tooltip.tsx
@@ -96,24 +108,26 @@ var AccessibleTooltip = ({
96
108
  return (params) => {
97
109
  const tooltipContent = renderTooltip(params);
98
110
  if (selectedIndex !== void 0) {
99
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
100
- "div",
101
- {
102
- ref: tooltipRef,
103
- tabIndex: -1,
104
- role: "tooltip",
105
- "aria-atomic": "true",
106
- className: keyboardFocusedClassName,
107
- "data-testid": `chart-tooltip-${selectedIndex}`,
108
- children: tooltipContent
109
- },
110
- `chart-tooltip-${selectedIndex}`
111
- );
111
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", {
112
+ ref: tooltipRef,
113
+ tabIndex: -1,
114
+ role: "tooltip",
115
+ "aria-atomic": "true",
116
+ className: keyboardFocusedClassName,
117
+ children: tooltipContent
118
+ }, `chart-tooltip-${selectedIndex}`);
112
119
  }
113
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { role: "tooltip", "aria-live": "polite", children: tooltipContent });
120
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", {
121
+ role: "tooltip",
122
+ "aria-live": "polite",
123
+ children: tooltipContent
124
+ });
114
125
  };
115
126
  }, [renderTooltip, selectedIndex, tooltipRef, keyboardFocusedClassName]);
116
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _xychart.Tooltip, { ...props, renderTooltip: focusableRenderTooltip });
127
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _xychart.Tooltip, {
128
+ ...props,
129
+ renderTooltip: focusableRenderTooltip
130
+ });
117
131
  };
118
132
  var useKeyboardNavigation = ({
119
133
  selectedIndex,
@@ -123,14 +137,11 @@ var useKeyboardNavigation = ({
123
137
  chartRef,
124
138
  totalPoints
125
139
  }) => {
126
- const tooltipRef = _react.useCallback.call(void 0,
127
- (element) => {
128
- if (element && selectedIndex !== void 0) {
129
- element.focus();
130
- }
131
- },
132
- [selectedIndex]
133
- );
140
+ const tooltipRef = _react.useCallback.call(void 0, (element) => {
141
+ if (element && selectedIndex !== void 0) {
142
+ element.focus();
143
+ }
144
+ }, [selectedIndex]);
134
145
  const onChartFocus = _react.useCallback.call(void 0, () => {
135
146
  if (!isNavigating && selectedIndex !== void 0) {
136
147
  setSelectedIndex(0);
@@ -139,37 +150,34 @@ var useKeyboardNavigation = ({
139
150
  const onChartBlur = _react.useCallback.call(void 0, () => {
140
151
  setIsNavigating(false);
141
152
  }, [setIsNavigating]);
142
- const onChartKeyDown = _react.useCallback.call(void 0,
143
- (event) => {
144
- if (totalPoints === 0) return;
145
- if (event.key === "Tab") {
146
- _optionalChain([chartRef, 'access', _10 => _10.current, 'optionalAccess', _11 => _11.focus, 'call', _12 => _12()]);
147
- setSelectedIndex(void 0);
148
- setIsNavigating(false);
149
- return;
150
- }
151
- const currentSelectedIndex = selectedIndex === void 0 ? -1 : selectedIndex;
152
- if (currentSelectedIndex + 1 >= totalPoints && ["ArrowRight"].includes(event.key)) {
153
- _optionalChain([chartRef, 'access', _13 => _13.current, 'optionalAccess', _14 => _14.focus, 'call', _15 => _15()]);
154
- setSelectedIndex(void 0);
155
- setIsNavigating(false);
156
- return;
157
- }
158
- event.preventDefault();
159
- if (["ArrowRight"].includes(event.key)) {
160
- setIsNavigating(true);
161
- setSelectedIndex((currentSelectedIndex + 1) % totalPoints);
162
- } else if (["ArrowLeft"].includes(event.key)) {
163
- setIsNavigating(true);
164
- setSelectedIndex((currentSelectedIndex - 1 + totalPoints) % totalPoints);
165
- } else if (event.key === "Escape") {
166
- setSelectedIndex(void 0);
167
- setIsNavigating(false);
168
- _optionalChain([chartRef, 'access', _16 => _16.current, 'optionalAccess', _17 => _17.focus, 'call', _18 => _18()]);
169
- }
170
- },
171
- [totalPoints, selectedIndex, setSelectedIndex, setIsNavigating, chartRef]
172
- );
153
+ const onChartKeyDown = _react.useCallback.call(void 0, (event) => {
154
+ if (totalPoints === 0) return;
155
+ if (event.key === "Tab") {
156
+ _optionalChain([chartRef, 'access', _10 => _10.current, 'optionalAccess', _11 => _11.focus, 'call', _12 => _12()]);
157
+ setSelectedIndex(void 0);
158
+ setIsNavigating(false);
159
+ return;
160
+ }
161
+ const currentSelectedIndex = selectedIndex === void 0 ? -1 : selectedIndex;
162
+ if (currentSelectedIndex + 1 >= totalPoints && ["ArrowRight"].includes(event.key)) {
163
+ _optionalChain([chartRef, 'access', _13 => _13.current, 'optionalAccess', _14 => _14.focus, 'call', _15 => _15()]);
164
+ setSelectedIndex(void 0);
165
+ setIsNavigating(false);
166
+ return;
167
+ }
168
+ event.preventDefault();
169
+ if (["ArrowRight"].includes(event.key)) {
170
+ setIsNavigating(true);
171
+ setSelectedIndex((currentSelectedIndex + 1) % totalPoints);
172
+ } else if (["ArrowLeft"].includes(event.key)) {
173
+ setIsNavigating(true);
174
+ setSelectedIndex((currentSelectedIndex - 1 + totalPoints) % totalPoints);
175
+ } else if (event.key === "Escape") {
176
+ setSelectedIndex(void 0);
177
+ setIsNavigating(false);
178
+ _optionalChain([chartRef, 'access', _16 => _16.current, 'optionalAccess', _17 => _17.focus, 'call', _18 => _18()]);
179
+ }
180
+ }, [totalPoints, selectedIndex, setSelectedIndex, setIsNavigating, chartRef]);
173
181
  return {
174
182
  tooltipRef,
175
183
  onChartFocus,
@@ -183,4 +191,4 @@ var useKeyboardNavigation = ({
183
191
 
184
192
 
185
193
  exports.BaseTooltip = BaseTooltip; exports.AccessibleTooltip = AccessibleTooltip; exports.useKeyboardNavigation = useKeyboardNavigation;
186
- //# sourceMappingURL=chunk-7HROSZRS.cjs.map
194
+ //# sourceMappingURL=chunk-Y3NNQMAX.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/home/runner/work/jetpack/jetpack/projects/js-packages/charts/dist/chunk-Y3NNQMAX.cjs","../src/components/tooltip/base-tooltip.tsx","../src/components/tooltip/base-tooltip.module.scss","../src/components/tooltip/accessible-tooltip.tsx"],"names":["_jsx"],"mappings":"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","file":"/home/runner/work/jetpack/jetpack/projects/js-packages/charts/dist/chunk-Y3NNQMAX.cjs","sourcesContent":[null,"import { formatNumber } from '@automattic/number-formatters';\nimport styles from './base-tooltip.module.scss';\nimport { Fragment as _Fragment, jsxs as _jsxs, jsx as _jsx } from \"react/jsx-runtime\";\nconst DefaultTooltipContent = ({\n data\n}) => /*#__PURE__*/_jsxs(_Fragment, {\n children: [data?.label, \": \", data?.valueDisplay || formatNumber(data?.value)]\n});\nexport const BaseTooltip = ({\n data,\n top,\n left,\n component: Component = DefaultTooltipContent,\n children,\n className,\n style,\n renderContainer = true\n}) => {\n const content = children || data && /*#__PURE__*/_jsx(Component, {\n data: data,\n className: className\n });\n if (!renderContainer) {\n return content;\n }\n return /*#__PURE__*/_jsx(\"div\", {\n className: styles.tooltip,\n style: {\n top,\n left,\n ...style\n },\n role: \"tooltip\",\n children: content\n });\n};","import 'css-chunk:src/components/tooltip/base-tooltip.module.scss';export default {\n \"tooltip\": \"a8ccharts-OfX6nd\"\n};","import { Tooltip, TooltipContext } from '@visx/xychart';\nimport { useContext, useEffect, useCallback, useMemo } from 'react';\n\n// Type for flattened tooltip data used in individual mode\n\n// Enhanced tooltip with keyboard navigation and accessibility\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const AccessibleTooltip = ({\n renderTooltip,\n selectedIndex,\n tooltipRef,\n keyboardFocusedClassName,\n series = [],\n mode = 'group',\n ...props\n}) => {\n const tooltipContext = useContext(TooltipContext);\n const tooltipData = useMemo(() => {\n if (mode !== 'individual') return [];\n if (series.length === 0) return [];\n const maxDataPoints = Math.max(...series.map(s => s.data.length));\n const flattened = [];\n\n // Pattern: [series1[0], series2[0], series3[0], series1[1], series2[1], series3[1], ...]\n for (let dataPointIndex = 0; dataPointIndex < maxDataPoints; dataPointIndex++) {\n for (let seriesIndex = 0; seriesIndex < series.length; seriesIndex++) {\n const seriesData = series[seriesIndex];\n if (dataPointIndex < seriesData.data.length) {\n flattened.push({\n datum: seriesData.data[dataPointIndex],\n seriesLabel: seriesData.label,\n seriesIndex,\n dataPointIndex\n });\n }\n }\n }\n return flattened;\n }, [series, mode]);\n\n // Handle tooltip highlighting for keyboard navigation\n useEffect(() => {\n if (selectedIndex === undefined) {\n tooltipContext?.hideTooltip();\n return;\n }\n if (mode === 'group') {\n // Show all series at the selected data point index in single tooltip.\n series.forEach((s, index) => {\n if (selectedIndex < s.data.length) {\n const datum = s.data[selectedIndex];\n tooltipContext?.showTooltip({\n datum,\n key: s.label,\n index\n });\n }\n });\n } else if (mode === 'individual') {\n // Show individual tooltips for each datapoint from each series.\n if (selectedIndex < tooltipData.length) {\n const tooltipItem = tooltipData[selectedIndex];\n tooltipContext?.showTooltip({\n datum: tooltipItem.datum,\n key: tooltipItem.seriesLabel,\n index: tooltipItem.seriesIndex\n });\n }\n }\n\n // Don't include tooltipContext in the dependency array to avoid loop.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [selectedIndex, tooltipData, series]);\n\n // Create a focusable renderTooltip that includes accessibility features\n const focusableRenderTooltip = useMemo(() => {\n if (!renderTooltip) return undefined;\n return params => {\n const tooltipContent = renderTooltip(params);\n if (selectedIndex !== undefined) {\n return /*#__PURE__*/_jsx(\"div\", {\n ref: tooltipRef,\n tabIndex: -1,\n role: \"tooltip\",\n \"aria-atomic\": \"true\",\n className: keyboardFocusedClassName,\n children: tooltipContent\n }, `chart-tooltip-${selectedIndex}`);\n }\n return /*#__PURE__*/_jsx(\"div\", {\n role: \"tooltip\",\n \"aria-live\": \"polite\",\n children: tooltipContent\n });\n };\n }, [renderTooltip, selectedIndex, tooltipRef, keyboardFocusedClassName]);\n return /*#__PURE__*/_jsx(Tooltip, {\n ...props,\n renderTooltip: focusableRenderTooltip\n });\n};\n\n// Keyboard navigation hook for charts\n\nexport const useKeyboardNavigation = ({\n selectedIndex,\n setSelectedIndex,\n isNavigating,\n setIsNavigating,\n chartRef,\n totalPoints\n}) => {\n // Focus the tooltip as soon as it is rendered\n const tooltipRef = useCallback(element => {\n if (element && selectedIndex !== undefined) {\n element.focus();\n }\n }, [selectedIndex]);\n\n // On each focus of chart, reset the selectedIndex to 0, if keyboard navigation is not already active\n const onChartFocus = useCallback(() => {\n if (!isNavigating && selectedIndex !== undefined) {\n setSelectedIndex(0);\n }\n }, [isNavigating, selectedIndex, setSelectedIndex]);\n\n // On each blur of chart, keyboard navigation should restart from first tooltip\n const onChartBlur = useCallback(() => {\n setIsNavigating(false);\n }, [setIsNavigating]);\n const onChartKeyDown = useCallback(event => {\n if (totalPoints === 0) return;\n\n // Keep focus on the chart if tab is pressed\n if (event.key === 'Tab') {\n chartRef.current?.focus();\n setSelectedIndex(undefined);\n setIsNavigating(false);\n return;\n }\n const currentSelectedIndex = selectedIndex === undefined ? -1 : selectedIndex;\n if (currentSelectedIndex + 1 >= totalPoints && ['ArrowRight'].includes(event.key)) {\n chartRef.current?.focus();\n setSelectedIndex(undefined);\n setIsNavigating(false);\n return;\n }\n event.preventDefault();\n if (['ArrowRight'].includes(event.key)) {\n setIsNavigating(true);\n setSelectedIndex((currentSelectedIndex + 1) % totalPoints);\n } else if (['ArrowLeft'].includes(event.key)) {\n setIsNavigating(true);\n setSelectedIndex((currentSelectedIndex - 1 + totalPoints) % totalPoints);\n } else if (event.key === 'Escape') {\n setSelectedIndex(undefined);\n setIsNavigating(false);\n chartRef.current?.focus();\n }\n }, [totalPoints, selectedIndex, setSelectedIndex, setIsNavigating, chartRef]);\n return {\n tooltipRef,\n onChartFocus,\n onChartBlur,\n onChartKeyDown\n };\n};\n\n// Re-export the base Tooltip for backwards compatibility\nexport { Tooltip };"]}
@@ -1,11 +1,11 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
3
 
4
- var _chunkTVV7ZI7Ccjs = require('../../chunk-TVV7ZI7C.cjs');
4
+ var _chunkEJJO2QNBcjs = require('../../chunk-EJJO2QNB.cjs');
5
5
  require('../../chunk-ZVGEDXDP.cjs');
6
6
  require('../../chunk-EMMSS5I5.cjs');
7
7
 
8
8
 
9
9
 
10
- exports.Legend = _chunkTVV7ZI7Ccjs.Legend; exports.useChartLegendItems = _chunkTVV7ZI7Ccjs.useChartLegendItems;
10
+ exports.Legend = _chunkEJJO2QNBcjs.Legend; exports.useChartLegendItems = _chunkEJJO2QNBcjs.useChartLegendItems;
11
11
  //# sourceMappingURL=index.cjs.map
@@ -1,3 +1,15 @@
1
+ /* esbuild-sass-plugin:css-chunk:src/hooks/use-tooltip-portal-relocator.module.scss */
2
+ .a8ccharts-jCw5dQ {
3
+ position: fixed;
4
+ top: 0;
5
+ left: 0;
6
+ width: 0;
7
+ height: 0;
8
+ overflow: visible;
9
+ z-index: 1;
10
+ pointer-events: none;
11
+ }
12
+
1
13
  /* esbuild-sass-plugin:css-chunk:src/components/legend/private/base-legend.module.scss */
2
14
  .a8ccharts-AELBvX {
3
15
  display: flex;
@@ -1 +1 @@
1
- {"version":3,"sources":["esbuild-sass-plugin:css-chunk:src/components/legend/private/base-legend.module.scss"],"sourcesContent":[".a8ccharts-AELBvX {\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n gap: 16px;\n}\n.a8ccharts-fX8uQe {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n.a8ccharts-fX8uQe.a8ccharts-DEe0wg {\n align-items: flex-start;\n}\n.a8ccharts-fX8uQe.a8ccharts-WBKF9I {\n align-items: center;\n}\n.a8ccharts-fX8uQe.a8ccharts-JfwMng {\n align-items: flex-end;\n}\n.a8ccharts-8Y73Kh {\n position: relative;\n}\n.a8ccharts-8Y73Kh.a8ccharts-DEe0wg {\n justify-content: flex-start;\n}\n.a8ccharts-8Y73Kh.a8ccharts-WBKF9I {\n justify-content: center;\n}\n.a8ccharts-8Y73Kh.a8ccharts-JfwMng {\n justify-content: flex-end;\n}\n.a8ccharts-TVM-IY {\n position: relative;\n}\n.a8ccharts-TVM-IY.a8ccharts-DEe0wg {\n justify-content: flex-start;\n}\n.a8ccharts-TVM-IY.a8ccharts-WBKF9I {\n justify-content: center;\n}\n.a8ccharts-TVM-IY.a8ccharts-JfwMng {\n justify-content: flex-end;\n}\n\n.a8ccharts-Vflwq8 {\n display: flex;\n align-items: center;\n font-size: 0.875rem;\n}\n.a8ccharts-qGsavM {\n cursor: pointer;\n user-select: none;\n transition: opacity 0.2s ease;\n}\n.a8ccharts-qGsavM:hover {\n opacity: 0.8;\n}\n.a8ccharts-qGsavM:focus {\n outline: 2px solid currentColor;\n outline-offset: 2px;\n border-radius: 4px;\n}\n.a8ccharts-qGsavM:focus:not(:focus-visible) {\n outline: none;\n}\n.a8ccharts-ZtDY-Q {\n opacity: 0.4;\n}\n.a8ccharts-ZtDY-Q .a8ccharts-2H65Kr {\n text-decoration: line-through;\n}\n\n.a8ccharts-2H65Kr {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n /* Text wrapping is handled at the text level, not the label container */\n}\n\n.a8ccharts-faSDBI {\n overflow-wrap: break-word;\n white-space: normal;\n hyphens: auto;\n}\n.a8ccharts-FISUIO {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n flex-shrink: 1;\n min-width: 0;\n}\n\n.a8ccharts-DTZlT- {\n font-weight: 500;\n flex-shrink: 0;\n}"],"mappings":";AAAA,CAAC;AACC,WAAS;AACT,kBAAgB;AAChB,aAAW;AACX,OAAK;AACP;AACA,CAAC;AACC,WAAS;AACT,kBAAgB;AAChB,OAAK;AACP;AACA,CALC,gBAKgB,CAAC;AAChB,eAAa;AACf;AACA,CARC,gBAQgB,CAAC;AAChB,eAAa;AACf;AACA,CAXC,gBAWgB,CAAC;AAChB,eAAa;AACf;AACA,CAAC;AACC,YAAU;AACZ;AACA,CAHC,gBAGgB,CAZC;AAahB,mBAAiB;AACnB;AACA,CANC,gBAMgB,CAZC;AAahB,mBAAiB;AACnB;AACA,CATC,gBASgB,CAZC;AAahB,mBAAiB;AACnB;AACA,CAAC;AACC,YAAU;AACZ;AACA,CAHC,gBAGgB,CAxBC;AAyBhB,mBAAiB;AACnB;AACA,CANC,gBAMgB,CAxBC;AAyBhB,mBAAiB;AACnB;AACA,CATC,gBASgB,CAxBC;AAyBhB,mBAAiB;AACnB;AAEA,CAAC;AACC,WAAS;AACT,eAAa;AACb,aAAW;AACb;AACA,CAAC;AACC,UAAQ;AACR,eAAa;AACb,cAAY,QAAQ,KAAK;AAC3B;AACA,CALC,gBAKgB;AACf,WAAS;AACX;AACA,CARC,gBAQgB;AACf,WAAS,IAAI,MAAM;AACnB,kBAAgB;AAChB,iBAAe;AACjB;AACA,CAbC,gBAagB,MAAM,KAAK;AAC1B,WAAS;AACX;AACA,CAAC;AACC,WAAS;AACX;AACA,CAHC,iBAGiB,CAAC;AACjB,mBAAiB;AACnB;AAEA,CAJmB;AAKjB,WAAS;AACT,eAAa;AACb,OAAK;AAEP;AAEA,CAAC;AACC,iBAAe;AACf,eAAa;AACb,WAAS;AACX;AACA,CAAC;AACC,eAAa;AACb,YAAU;AACV,iBAAe;AACf,eAAa;AACb,aAAW;AACb;AAEA,CAAC;AACC,eAAa;AACb,eAAa;AACf;","names":[]}
1
+ {"version":3,"sources":["esbuild-sass-plugin:css-chunk:src/hooks/use-tooltip-portal-relocator.module.scss","esbuild-sass-plugin:css-chunk:src/components/legend/private/base-legend.module.scss"],"sourcesContent":[".a8ccharts-jCw5dQ {\n position: fixed;\n top: 0;\n left: 0;\n width: 0;\n height: 0;\n overflow: visible;\n z-index: 1;\n pointer-events: none;\n}",".a8ccharts-AELBvX {\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n gap: 16px;\n}\n.a8ccharts-fX8uQe {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n.a8ccharts-fX8uQe.a8ccharts-DEe0wg {\n align-items: flex-start;\n}\n.a8ccharts-fX8uQe.a8ccharts-WBKF9I {\n align-items: center;\n}\n.a8ccharts-fX8uQe.a8ccharts-JfwMng {\n align-items: flex-end;\n}\n.a8ccharts-8Y73Kh {\n position: relative;\n}\n.a8ccharts-8Y73Kh.a8ccharts-DEe0wg {\n justify-content: flex-start;\n}\n.a8ccharts-8Y73Kh.a8ccharts-WBKF9I {\n justify-content: center;\n}\n.a8ccharts-8Y73Kh.a8ccharts-JfwMng {\n justify-content: flex-end;\n}\n.a8ccharts-TVM-IY {\n position: relative;\n}\n.a8ccharts-TVM-IY.a8ccharts-DEe0wg {\n justify-content: flex-start;\n}\n.a8ccharts-TVM-IY.a8ccharts-WBKF9I {\n justify-content: center;\n}\n.a8ccharts-TVM-IY.a8ccharts-JfwMng {\n justify-content: flex-end;\n}\n\n.a8ccharts-Vflwq8 {\n display: flex;\n align-items: center;\n font-size: 0.875rem;\n}\n.a8ccharts-qGsavM {\n cursor: pointer;\n user-select: none;\n transition: opacity 0.2s ease;\n}\n.a8ccharts-qGsavM:hover {\n opacity: 0.8;\n}\n.a8ccharts-qGsavM:focus {\n outline: 2px solid currentColor;\n outline-offset: 2px;\n border-radius: 4px;\n}\n.a8ccharts-qGsavM:focus:not(:focus-visible) {\n outline: none;\n}\n.a8ccharts-ZtDY-Q {\n opacity: 0.4;\n}\n.a8ccharts-ZtDY-Q .a8ccharts-2H65Kr {\n text-decoration: line-through;\n}\n\n.a8ccharts-2H65Kr {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n /* Text wrapping is handled at the text level, not the label container */\n}\n\n.a8ccharts-faSDBI {\n overflow-wrap: break-word;\n white-space: normal;\n hyphens: auto;\n}\n.a8ccharts-FISUIO {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n flex-shrink: 1;\n min-width: 0;\n}\n\n.a8ccharts-DTZlT- {\n font-weight: 500;\n flex-shrink: 0;\n}"],"mappings":";AAAA,CAAC;AACC,YAAU;AACV,OAAK;AACL,QAAM;AACN,SAAO;AACP,UAAQ;AACR,YAAU;AACV,WAAS;AACT,kBAAgB;AAClB;;;ACTA,CAAC;AACC,WAAS;AACT,kBAAgB;AAChB,aAAW;AACX,OAAK;AACP;AACA,CAAC;AACC,WAAS;AACT,kBAAgB;AAChB,OAAK;AACP;AACA,CALC,gBAKgB,CAAC;AAChB,eAAa;AACf;AACA,CARC,gBAQgB,CAAC;AAChB,eAAa;AACf;AACA,CAXC,gBAWgB,CAAC;AAChB,eAAa;AACf;AACA,CAAC;AACC,YAAU;AACZ;AACA,CAHC,gBAGgB,CAZC;AAahB,mBAAiB;AACnB;AACA,CANC,gBAMgB,CAZC;AAahB,mBAAiB;AACnB;AACA,CATC,gBASgB,CAZC;AAahB,mBAAiB;AACnB;AACA,CAAC;AACC,YAAU;AACZ;AACA,CAHC,gBAGgB,CAxBC;AAyBhB,mBAAiB;AACnB;AACA,CANC,gBAMgB,CAxBC;AAyBhB,mBAAiB;AACnB;AACA,CATC,gBASgB,CAxBC;AAyBhB,mBAAiB;AACnB;AAEA,CAAC;AACC,WAAS;AACT,eAAa;AACb,aAAW;AACb;AACA,CAAC;AACC,UAAQ;AACR,eAAa;AACb,cAAY,QAAQ,KAAK;AAC3B;AACA,CALC,gBAKgB;AACf,WAAS;AACX;AACA,CARC,gBAQgB;AACf,WAAS,IAAI,MAAM;AACnB,kBAAgB;AAChB,iBAAe;AACjB;AACA,CAbC,gBAagB,MAAM,KAAK;AAC1B,WAAS;AACX;AACA,CAAC;AACC,WAAS;AACX;AACA,CAHC,iBAGiB,CAAC;AACjB,mBAAiB;AACnB;AAEA,CAJmB;AAKjB,WAAS;AACT,eAAa;AACb,OAAK;AAEP;AAEA,CAAC;AACC,iBAAe;AACf,eAAa;AACb,WAAS;AACX;AACA,CAAC;AACC,eAAa;AACb,YAAU;AACV,iBAAe;AACf,eAAa;AACb,aAAW;AACb;AAEA,CAAC;AACC,eAAa;AACb,eAAa;AACf;","names":[]}
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  Legend,
3
3
  useChartLegendItems
4
- } from "../../chunk-H34CJSR6.js";
4
+ } from "../../chunk-32ESS4MV.js";
5
5
  import "../../chunk-TE63Y5PX.js";
6
6
  import "../../chunk-G3PMV62Z.js";
7
7
  export {
@@ -2,11 +2,11 @@
2
2
 
3
3
 
4
4
 
5
- var _chunk7HROSZRScjs = require('../../chunk-7HROSZRS.cjs');
5
+ var _chunkY3NNQMAXcjs = require('../../chunk-Y3NNQMAX.cjs');
6
6
  require('../../chunk-EMMSS5I5.cjs');
7
7
 
8
8
 
9
9
 
10
10
 
11
- exports.AccessibleTooltip = _chunk7HROSZRScjs.AccessibleTooltip; exports.BaseTooltip = _chunk7HROSZRScjs.BaseTooltip; exports.useKeyboardNavigation = _chunk7HROSZRScjs.useKeyboardNavigation;
11
+ exports.AccessibleTooltip = _chunkY3NNQMAXcjs.AccessibleTooltip; exports.BaseTooltip = _chunkY3NNQMAXcjs.BaseTooltip; exports.useKeyboardNavigation = _chunkY3NNQMAXcjs.useKeyboardNavigation;
12
12
  //# sourceMappingURL=index.cjs.map
@@ -2,7 +2,7 @@ import {
2
2
  AccessibleTooltip,
3
3
  BaseTooltip,
4
4
  useKeyboardNavigation
5
- } from "../../chunk-5XI443YP.js";
5
+ } from "../../chunk-BPYKWMI7.js";
6
6
  import "../../chunk-G3PMV62Z.js";
7
7
  export {
8
8
  AccessibleTooltip,
@@ -1,8 +1,8 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _chunkSRXJLAKGcjs = require('../../chunk-SRXJLAKG.cjs');
3
+ var _chunkI2276W3Icjs = require('../../chunk-I2276W3I.cjs');
4
4
  require('../../chunk-EMMSS5I5.cjs');
5
5
 
6
6
 
7
- exports.TrendIndicator = _chunkSRXJLAKGcjs.TrendIndicator;
7
+ exports.TrendIndicator = _chunkI2276W3Icjs.TrendIndicator;
8
8
  //# sourceMappingURL=index.cjs.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  TrendIndicator
3
- } from "../../chunk-MMDLXS6O.js";
3
+ } from "../../chunk-XWYZIFZW.js";
4
4
  import "../../chunk-G3PMV62Z.js";
5
5
  export {
6
6
  TrendIndicator
@@ -10,7 +10,8 @@
10
10
 
11
11
 
12
12
 
13
- var _chunkTVV7ZI7Ccjs = require('../chunk-TVV7ZI7C.cjs');
13
+
14
+ var _chunkEJJO2QNBcjs = require('../chunk-EJJO2QNB.cjs');
14
15
  require('../chunk-ZVGEDXDP.cjs');
15
16
  require('../chunk-EMMSS5I5.cjs');
16
17
 
@@ -25,5 +26,6 @@ require('../chunk-EMMSS5I5.cjs');
25
26
 
26
27
 
27
28
 
28
- exports.useChartDataTransform = _chunkTVV7ZI7Ccjs.useChartDataTransform; exports.useChartMargin = _chunkTVV7ZI7Ccjs.useChartMargin; exports.useChartMouseHandler = _chunkTVV7ZI7Ccjs.useChartMouseHandler; exports.useDeepMemo = _chunkTVV7ZI7Ccjs.useDeepMemo; exports.useElementHeight = _chunkTVV7ZI7Ccjs.useElementHeight; exports.useHasLegendChild = _chunkTVV7ZI7Ccjs.useHasLegendChild; exports.useInteractiveLegendData = _chunkTVV7ZI7Ccjs.useInteractiveLegendData; exports.usePrefersReducedMotion = _chunkTVV7ZI7Ccjs.usePrefersReducedMotion; exports.useTextTruncation = _chunkTVV7ZI7Ccjs.useTextTruncation; exports.useXYChartTheme = _chunkTVV7ZI7Ccjs.useXYChartTheme; exports.useZeroValueDisplay = _chunkTVV7ZI7Ccjs.useZeroValueDisplay;
29
+
30
+ exports.useChartDataTransform = _chunkEJJO2QNBcjs.useChartDataTransform; exports.useChartMargin = _chunkEJJO2QNBcjs.useChartMargin; exports.useChartMouseHandler = _chunkEJJO2QNBcjs.useChartMouseHandler; exports.useDeepMemo = _chunkEJJO2QNBcjs.useDeepMemo; exports.useElementHeight = _chunkEJJO2QNBcjs.useElementHeight; exports.useHasLegendChild = _chunkEJJO2QNBcjs.useHasLegendChild; exports.useInteractiveLegendData = _chunkEJJO2QNBcjs.useInteractiveLegendData; exports.usePrefersReducedMotion = _chunkEJJO2QNBcjs.usePrefersReducedMotion; exports.useTextTruncation = _chunkEJJO2QNBcjs.useTextTruncation; exports.useTooltipPortalRelocator = _chunkEJJO2QNBcjs.useTooltipPortalRelocator; exports.useXYChartTheme = _chunkEJJO2QNBcjs.useXYChartTheme; exports.useZeroValueDisplay = _chunkEJJO2QNBcjs.useZeroValueDisplay;
29
31
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/jetpack/jetpack/projects/js-packages/charts/dist/hooks/index.cjs"],"names":[],"mappings":"AAAA;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,yDAA8B;AAC9B,iCAA8B;AAC9B,iCAA8B;AAC9B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,8tBAAC","file":"/home/runner/work/jetpack/jetpack/projects/js-packages/charts/dist/hooks/index.cjs"}
1
+ {"version":3,"sources":["/home/runner/work/jetpack/jetpack/projects/js-packages/charts/dist/hooks/index.cjs"],"names":[],"mappings":"AAAA;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,yDAA8B;AAC9B,iCAA8B;AAC9B,iCAA8B;AAC9B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,+yBAAC","file":"/home/runner/work/jetpack/jetpack/projects/js-packages/charts/dist/hooks/index.cjs"}
@@ -1,3 +1,15 @@
1
+ /* esbuild-sass-plugin:css-chunk:src/hooks/use-tooltip-portal-relocator.module.scss */
2
+ .a8ccharts-jCw5dQ {
3
+ position: fixed;
4
+ top: 0;
5
+ left: 0;
6
+ width: 0;
7
+ height: 0;
8
+ overflow: visible;
9
+ z-index: 1;
10
+ pointer-events: none;
11
+ }
12
+
1
13
  /* esbuild-sass-plugin:css-chunk:src/components/legend/private/base-legend.module.scss */
2
14
  .a8ccharts-AELBvX {
3
15
  display: flex;
@@ -1 +1 @@
1
- {"version":3,"sources":["esbuild-sass-plugin:css-chunk:src/components/legend/private/base-legend.module.scss"],"sourcesContent":[".a8ccharts-AELBvX {\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n gap: 16px;\n}\n.a8ccharts-fX8uQe {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n.a8ccharts-fX8uQe.a8ccharts-DEe0wg {\n align-items: flex-start;\n}\n.a8ccharts-fX8uQe.a8ccharts-WBKF9I {\n align-items: center;\n}\n.a8ccharts-fX8uQe.a8ccharts-JfwMng {\n align-items: flex-end;\n}\n.a8ccharts-8Y73Kh {\n position: relative;\n}\n.a8ccharts-8Y73Kh.a8ccharts-DEe0wg {\n justify-content: flex-start;\n}\n.a8ccharts-8Y73Kh.a8ccharts-WBKF9I {\n justify-content: center;\n}\n.a8ccharts-8Y73Kh.a8ccharts-JfwMng {\n justify-content: flex-end;\n}\n.a8ccharts-TVM-IY {\n position: relative;\n}\n.a8ccharts-TVM-IY.a8ccharts-DEe0wg {\n justify-content: flex-start;\n}\n.a8ccharts-TVM-IY.a8ccharts-WBKF9I {\n justify-content: center;\n}\n.a8ccharts-TVM-IY.a8ccharts-JfwMng {\n justify-content: flex-end;\n}\n\n.a8ccharts-Vflwq8 {\n display: flex;\n align-items: center;\n font-size: 0.875rem;\n}\n.a8ccharts-qGsavM {\n cursor: pointer;\n user-select: none;\n transition: opacity 0.2s ease;\n}\n.a8ccharts-qGsavM:hover {\n opacity: 0.8;\n}\n.a8ccharts-qGsavM:focus {\n outline: 2px solid currentColor;\n outline-offset: 2px;\n border-radius: 4px;\n}\n.a8ccharts-qGsavM:focus:not(:focus-visible) {\n outline: none;\n}\n.a8ccharts-ZtDY-Q {\n opacity: 0.4;\n}\n.a8ccharts-ZtDY-Q .a8ccharts-2H65Kr {\n text-decoration: line-through;\n}\n\n.a8ccharts-2H65Kr {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n /* Text wrapping is handled at the text level, not the label container */\n}\n\n.a8ccharts-faSDBI {\n overflow-wrap: break-word;\n white-space: normal;\n hyphens: auto;\n}\n.a8ccharts-FISUIO {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n flex-shrink: 1;\n min-width: 0;\n}\n\n.a8ccharts-DTZlT- {\n font-weight: 500;\n flex-shrink: 0;\n}"],"mappings":";AAAA,CAAC;AACC,WAAS;AACT,kBAAgB;AAChB,aAAW;AACX,OAAK;AACP;AACA,CAAC;AACC,WAAS;AACT,kBAAgB;AAChB,OAAK;AACP;AACA,CALC,gBAKgB,CAAC;AAChB,eAAa;AACf;AACA,CARC,gBAQgB,CAAC;AAChB,eAAa;AACf;AACA,CAXC,gBAWgB,CAAC;AAChB,eAAa;AACf;AACA,CAAC;AACC,YAAU;AACZ;AACA,CAHC,gBAGgB,CAZC;AAahB,mBAAiB;AACnB;AACA,CANC,gBAMgB,CAZC;AAahB,mBAAiB;AACnB;AACA,CATC,gBASgB,CAZC;AAahB,mBAAiB;AACnB;AACA,CAAC;AACC,YAAU;AACZ;AACA,CAHC,gBAGgB,CAxBC;AAyBhB,mBAAiB;AACnB;AACA,CANC,gBAMgB,CAxBC;AAyBhB,mBAAiB;AACnB;AACA,CATC,gBASgB,CAxBC;AAyBhB,mBAAiB;AACnB;AAEA,CAAC;AACC,WAAS;AACT,eAAa;AACb,aAAW;AACb;AACA,CAAC;AACC,UAAQ;AACR,eAAa;AACb,cAAY,QAAQ,KAAK;AAC3B;AACA,CALC,gBAKgB;AACf,WAAS;AACX;AACA,CARC,gBAQgB;AACf,WAAS,IAAI,MAAM;AACnB,kBAAgB;AAChB,iBAAe;AACjB;AACA,CAbC,gBAagB,MAAM,KAAK;AAC1B,WAAS;AACX;AACA,CAAC;AACC,WAAS;AACX;AACA,CAHC,iBAGiB,CAAC;AACjB,mBAAiB;AACnB;AAEA,CAJmB;AAKjB,WAAS;AACT,eAAa;AACb,OAAK;AAEP;AAEA,CAAC;AACC,iBAAe;AACf,eAAa;AACb,WAAS;AACX;AACA,CAAC;AACC,eAAa;AACb,YAAU;AACV,iBAAe;AACf,eAAa;AACb,aAAW;AACb;AAEA,CAAC;AACC,eAAa;AACb,eAAa;AACf;","names":[]}
1
+ {"version":3,"sources":["esbuild-sass-plugin:css-chunk:src/hooks/use-tooltip-portal-relocator.module.scss","esbuild-sass-plugin:css-chunk:src/components/legend/private/base-legend.module.scss"],"sourcesContent":[".a8ccharts-jCw5dQ {\n position: fixed;\n top: 0;\n left: 0;\n width: 0;\n height: 0;\n overflow: visible;\n z-index: 1;\n pointer-events: none;\n}",".a8ccharts-AELBvX {\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n gap: 16px;\n}\n.a8ccharts-fX8uQe {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n.a8ccharts-fX8uQe.a8ccharts-DEe0wg {\n align-items: flex-start;\n}\n.a8ccharts-fX8uQe.a8ccharts-WBKF9I {\n align-items: center;\n}\n.a8ccharts-fX8uQe.a8ccharts-JfwMng {\n align-items: flex-end;\n}\n.a8ccharts-8Y73Kh {\n position: relative;\n}\n.a8ccharts-8Y73Kh.a8ccharts-DEe0wg {\n justify-content: flex-start;\n}\n.a8ccharts-8Y73Kh.a8ccharts-WBKF9I {\n justify-content: center;\n}\n.a8ccharts-8Y73Kh.a8ccharts-JfwMng {\n justify-content: flex-end;\n}\n.a8ccharts-TVM-IY {\n position: relative;\n}\n.a8ccharts-TVM-IY.a8ccharts-DEe0wg {\n justify-content: flex-start;\n}\n.a8ccharts-TVM-IY.a8ccharts-WBKF9I {\n justify-content: center;\n}\n.a8ccharts-TVM-IY.a8ccharts-JfwMng {\n justify-content: flex-end;\n}\n\n.a8ccharts-Vflwq8 {\n display: flex;\n align-items: center;\n font-size: 0.875rem;\n}\n.a8ccharts-qGsavM {\n cursor: pointer;\n user-select: none;\n transition: opacity 0.2s ease;\n}\n.a8ccharts-qGsavM:hover {\n opacity: 0.8;\n}\n.a8ccharts-qGsavM:focus {\n outline: 2px solid currentColor;\n outline-offset: 2px;\n border-radius: 4px;\n}\n.a8ccharts-qGsavM:focus:not(:focus-visible) {\n outline: none;\n}\n.a8ccharts-ZtDY-Q {\n opacity: 0.4;\n}\n.a8ccharts-ZtDY-Q .a8ccharts-2H65Kr {\n text-decoration: line-through;\n}\n\n.a8ccharts-2H65Kr {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n /* Text wrapping is handled at the text level, not the label container */\n}\n\n.a8ccharts-faSDBI {\n overflow-wrap: break-word;\n white-space: normal;\n hyphens: auto;\n}\n.a8ccharts-FISUIO {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n flex-shrink: 1;\n min-width: 0;\n}\n\n.a8ccharts-DTZlT- {\n font-weight: 500;\n flex-shrink: 0;\n}"],"mappings":";AAAA,CAAC;AACC,YAAU;AACV,OAAK;AACL,QAAM;AACN,SAAO;AACP,UAAQ;AACR,YAAU;AACV,WAAS;AACT,kBAAgB;AAClB;;;ACTA,CAAC;AACC,WAAS;AACT,kBAAgB;AAChB,aAAW;AACX,OAAK;AACP;AACA,CAAC;AACC,WAAS;AACT,kBAAgB;AAChB,OAAK;AACP;AACA,CALC,gBAKgB,CAAC;AAChB,eAAa;AACf;AACA,CARC,gBAQgB,CAAC;AAChB,eAAa;AACf;AACA,CAXC,gBAWgB,CAAC;AAChB,eAAa;AACf;AACA,CAAC;AACC,YAAU;AACZ;AACA,CAHC,gBAGgB,CAZC;AAahB,mBAAiB;AACnB;AACA,CANC,gBAMgB,CAZC;AAahB,mBAAiB;AACnB;AACA,CATC,gBASgB,CAZC;AAahB,mBAAiB;AACnB;AACA,CAAC;AACC,YAAU;AACZ;AACA,CAHC,gBAGgB,CAxBC;AAyBhB,mBAAiB;AACnB;AACA,CANC,gBAMgB,CAxBC;AAyBhB,mBAAiB;AACnB;AACA,CATC,gBASgB,CAxBC;AAyBhB,mBAAiB;AACnB;AAEA,CAAC;AACC,WAAS;AACT,eAAa;AACb,aAAW;AACb;AACA,CAAC;AACC,UAAQ;AACR,eAAa;AACb,cAAY,QAAQ,KAAK;AAC3B;AACA,CALC,gBAKgB;AACf,WAAS;AACX;AACA,CARC,gBAQgB;AACf,WAAS,IAAI,MAAM;AACnB,kBAAgB;AAChB,iBAAe;AACjB;AACA,CAbC,gBAagB,MAAM,KAAK;AAC1B,WAAS;AACX;AACA,CAAC;AACC,WAAS;AACX;AACA,CAHC,iBAGiB,CAAC;AACjB,mBAAiB;AACnB;AAEA,CAJmB;AAKjB,WAAS;AACT,eAAa;AACb,OAAK;AAEP;AAEA,CAAC;AACC,iBAAe;AACf,eAAa;AACb,WAAS;AACX;AACA,CAAC;AACC,eAAa;AACb,YAAU;AACV,iBAAe;AACf,eAAa;AACb,aAAW;AACb;AAEA,CAAC;AACC,eAAa;AACb,eAAa;AACf;","names":[]}
@@ -1,4 +1,4 @@
1
- import { MouseEvent, ReactNode } from 'react';
1
+ import { MouseEvent, ReactNode, RefObject } from 'react';
2
2
  import { D as DataPoint, j as SeriesData, k as SeriesDataOptions, B as BaseChartProps, c as DataPointDate } from '../types-BCFQlzTM.cjs';
3
3
  import * as _visx_xychart from '@visx/xychart';
4
4
  import { XYChartTheme } from '@visx/xychart';
@@ -236,4 +236,30 @@ declare const useInteractiveLegendData: <T extends DataPointWithPercentage>({ da
236
236
  */
237
237
  declare function usePrefersReducedMotion(): boolean;
238
238
 
239
- export { useChartDataTransform, useChartMargin, useChartMouseHandler, useDeepMemo, useElementHeight, useHasLegendChild, useInteractiveLegendData, usePrefersReducedMotion, useTextTruncation, useXYChartTheme, useZeroValueDisplay };
239
+ /**
240
+ * Relocates visx chart tooltip portals from `document.body` into a target
241
+ * container element. This allows the tooltips to participate in the same CSS
242
+ * stacking context as other elements in the container (e.g. a sticky header),
243
+ * so z-index ordering works correctly between them.
244
+ *
245
+ * The relocated portal divs use `position: fixed` at the viewport origin to
246
+ * preserve the tooltip coordinate system (visx calculates positions relative
247
+ * to the viewport).
248
+ *
249
+ * Because the visx Portal class calls `document.body.removeChild(node)` during
250
+ * unmount, we patch `document.body.removeChild` to gracefully handle nodes that
251
+ * were moved out of body. Without this, React throws a "not a child of this
252
+ * node" error when tooltips unmount.
253
+ *
254
+ * **Important:** The container and its ancestors must not have CSS `transform`,
255
+ * `perspective`, or `filter` properties set, as these create a new containing
256
+ * block for `position: fixed` children, breaking viewport-relative positioning.
257
+ *
258
+ * @param containerRef - Ref to the element that portals should be relocated into.
259
+ * The element referenced here, or one of its ancestors,
260
+ * should establish the desired stacking context (for example
261
+ * by using position and z-index).
262
+ */
263
+ declare function useTooltipPortalRelocator(containerRef: RefObject<HTMLElement | null> | undefined): void;
264
+
265
+ export { useChartDataTransform, useChartMargin, useChartMouseHandler, useDeepMemo, useElementHeight, useHasLegendChild, useInteractiveLegendData, usePrefersReducedMotion, useTextTruncation, useTooltipPortalRelocator, useXYChartTheme, useZeroValueDisplay };
@@ -1,4 +1,4 @@
1
- import { MouseEvent, ReactNode } from 'react';
1
+ import { MouseEvent, ReactNode, RefObject } from 'react';
2
2
  import { D as DataPoint, j as SeriesData, k as SeriesDataOptions, B as BaseChartProps, c as DataPointDate } from '../types-BCFQlzTM.js';
3
3
  import * as _visx_xychart from '@visx/xychart';
4
4
  import { XYChartTheme } from '@visx/xychart';
@@ -236,4 +236,30 @@ declare const useInteractiveLegendData: <T extends DataPointWithPercentage>({ da
236
236
  */
237
237
  declare function usePrefersReducedMotion(): boolean;
238
238
 
239
- export { useChartDataTransform, useChartMargin, useChartMouseHandler, useDeepMemo, useElementHeight, useHasLegendChild, useInteractiveLegendData, usePrefersReducedMotion, useTextTruncation, useXYChartTheme, useZeroValueDisplay };
239
+ /**
240
+ * Relocates visx chart tooltip portals from `document.body` into a target
241
+ * container element. This allows the tooltips to participate in the same CSS
242
+ * stacking context as other elements in the container (e.g. a sticky header),
243
+ * so z-index ordering works correctly between them.
244
+ *
245
+ * The relocated portal divs use `position: fixed` at the viewport origin to
246
+ * preserve the tooltip coordinate system (visx calculates positions relative
247
+ * to the viewport).
248
+ *
249
+ * Because the visx Portal class calls `document.body.removeChild(node)` during
250
+ * unmount, we patch `document.body.removeChild` to gracefully handle nodes that
251
+ * were moved out of body. Without this, React throws a "not a child of this
252
+ * node" error when tooltips unmount.
253
+ *
254
+ * **Important:** The container and its ancestors must not have CSS `transform`,
255
+ * `perspective`, or `filter` properties set, as these create a new containing
256
+ * block for `position: fixed` children, breaking viewport-relative positioning.
257
+ *
258
+ * @param containerRef - Ref to the element that portals should be relocated into.
259
+ * The element referenced here, or one of its ancestors,
260
+ * should establish the desired stacking context (for example
261
+ * by using position and z-index).
262
+ */
263
+ declare function useTooltipPortalRelocator(containerRef: RefObject<HTMLElement | null> | undefined): void;
264
+
265
+ export { useChartDataTransform, useChartMargin, useChartMouseHandler, useDeepMemo, useElementHeight, useHasLegendChild, useInteractiveLegendData, usePrefersReducedMotion, useTextTruncation, useTooltipPortalRelocator, useXYChartTheme, useZeroValueDisplay };
@@ -8,9 +8,10 @@ import {
8
8
  useInteractiveLegendData,
9
9
  usePrefersReducedMotion,
10
10
  useTextTruncation,
11
+ useTooltipPortalRelocator,
11
12
  useXYChartTheme,
12
13
  useZeroValueDisplay
13
- } from "../chunk-H34CJSR6.js";
14
+ } from "../chunk-32ESS4MV.js";
14
15
  import "../chunk-TE63Y5PX.js";
15
16
  import "../chunk-G3PMV62Z.js";
16
17
  export {
@@ -23,6 +24,7 @@ export {
23
24
  useInteractiveLegendData,
24
25
  usePrefersReducedMotion,
25
26
  useTextTruncation,
27
+ useTooltipPortalRelocator,
26
28
  useXYChartTheme,
27
29
  useZeroValueDisplay
28
30
  };
package/dist/index.cjs CHANGED
@@ -1,50 +1,50 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
3
 
4
- var _chunkODF5O5PVcjs = require('./chunk-ODF5O5PV.cjs');
4
+ var _chunkFIFSYVN6cjs = require('./chunk-FIFSYVN6.cjs');
5
5
 
6
6
 
7
7
 
8
- var _chunkIZWC33YNcjs = require('./chunk-IZWC33YN.cjs');
8
+ var _chunkJL4ZKKZUcjs = require('./chunk-JL4ZKKZU.cjs');
9
9
  require('./chunk-7OZEQ5HE.cjs');
10
10
 
11
11
 
12
12
 
13
- var _chunkLHWRZMF7cjs = require('./chunk-LHWRZMF7.cjs');
14
- require('./chunk-OTZT3MC2.cjs');
15
- require('./chunk-HIWNB5PK.cjs');
13
+ var _chunkTKPK4RFScjs = require('./chunk-TKPK4RFS.cjs');
14
+ require('./chunk-2A34OA5O.cjs');
15
+ require('./chunk-RCY6XLGU.cjs');
16
16
 
17
17
 
18
18
 
19
- var _chunkXVMXWV3Ccjs = require('./chunk-XVMXWV3C.cjs');
19
+ var _chunkLTPJPIDPcjs = require('./chunk-LTPJPIDP.cjs');
20
20
 
21
21
 
22
22
 
23
- var _chunkKOF32DBLcjs = require('./chunk-KOF32DBL.cjs');
23
+ var _chunkFY325WQ4cjs = require('./chunk-FY325WQ4.cjs');
24
24
 
25
25
 
26
- var _chunkSRXJLAKGcjs = require('./chunk-SRXJLAKG.cjs');
26
+ var _chunkI2276W3Icjs = require('./chunk-I2276W3I.cjs');
27
27
 
28
28
 
29
29
 
30
- var _chunkYYQ4IK5Vcjs = require('./chunk-YYQ4IK5V.cjs');
30
+ var _chunkQ6G3BGCLcjs = require('./chunk-Q6G3BGCL.cjs');
31
31
 
32
32
 
33
33
 
34
- var _chunk7UJPVCMBcjs = require('./chunk-7UJPVCMB.cjs');
35
- require('./chunk-SH32YSZO.cjs');
36
- require('./chunk-I5467ZJ5.cjs');
34
+ var _chunkIHESL7H5cjs = require('./chunk-IHESL7H5.cjs');
37
35
 
38
36
 
39
- var _chunk7HROSZRScjs = require('./chunk-7HROSZRS.cjs');
37
+ var _chunkY3NNQMAXcjs = require('./chunk-Y3NNQMAX.cjs');
40
38
 
41
39
 
42
- var _chunkGRYNIPWHcjs = require('./chunk-GRYNIPWH.cjs');
40
+ var _chunkXCXAWMJQcjs = require('./chunk-XCXAWMJQ.cjs');
41
+ require('./chunk-SH32YSZO.cjs');
42
+ require('./chunk-I5467ZJ5.cjs');
43
43
 
44
44
 
45
45
 
46
- var _chunkMFRS2PEYcjs = require('./chunk-MFRS2PEY.cjs');
47
- require('./chunk-NW3RUYK2.cjs');
46
+ var _chunkNGHXTIUEcjs = require('./chunk-NGHXTIUE.cjs');
47
+ require('./chunk-7QDEU3KN.cjs');
48
48
 
49
49
 
50
50
 
@@ -53,7 +53,7 @@ require('./chunk-NW3RUYK2.cjs');
53
53
 
54
54
 
55
55
 
56
- var _chunkTVV7ZI7Ccjs = require('./chunk-TVV7ZI7C.cjs');
56
+ var _chunkEJJO2QNBcjs = require('./chunk-EJJO2QNB.cjs');
57
57
  require('./chunk-ZVGEDXDP.cjs');
58
58
  require('./chunk-EMMSS5I5.cjs');
59
59
 
@@ -84,5 +84,5 @@ require('./chunk-EMMSS5I5.cjs');
84
84
 
85
85
 
86
86
 
87
- exports.BarChart = _chunk7UJPVCMBcjs.BarChartResponsive; exports.BarChartUnresponsive = _chunk7UJPVCMBcjs.BarChart; exports.BarListChart = _chunkYYQ4IK5Vcjs.BarListChartResponsive; exports.BarListChartUnresponsive = _chunkYYQ4IK5Vcjs.BarListChart; exports.BaseTooltip = _chunk7HROSZRScjs.BaseTooltip; exports.ConversionFunnelChart = _chunkGRYNIPWHcjs.ConversionFunnelChartWithProvider; exports.GeoChart = _chunkMFRS2PEYcjs.GeoChartResponsive; exports.GeoChartUnresponsive = _chunkMFRS2PEYcjs.GeoChartWithProvider; exports.GlobalChartsContext = _chunkTVV7ZI7Ccjs.GlobalChartsContext; exports.GlobalChartsProvider = _chunkTVV7ZI7Ccjs.GlobalChartsProvider; exports.LeaderboardChart = _chunkODF5O5PVcjs.LeaderboardChartResponsive; exports.LeaderboardChartUnresponsive = _chunkODF5O5PVcjs.LeaderboardChart; exports.Legend = _chunkTVV7ZI7Ccjs.Legend; exports.LineChart = _chunkKOF32DBLcjs.LineChartResponsive; exports.LineChartUnresponsive = _chunkKOF32DBLcjs.LineChart; exports.PieChart = _chunkIZWC33YNcjs.PieChartResponsive; exports.PieChartUnresponsive = _chunkIZWC33YNcjs.PieChart; exports.PieSemiCircleChart = _chunkLHWRZMF7cjs.PieSemiCircleChartResponsive; exports.PieSemiCircleChartUnresponsive = _chunkLHWRZMF7cjs.PieSemiCircleChart; exports.Sparkline = _chunkXVMXWV3Ccjs.Sparkline; exports.SparklineUnresponsive = _chunkXVMXWV3Ccjs.SparklineUnresponsive; exports.ThemeProvider = _chunkTVV7ZI7Ccjs.GlobalChartsProvider; exports.TrendIndicator = _chunkSRXJLAKGcjs.TrendIndicator; exports.defaultTheme = _chunkTVV7ZI7Ccjs.defaultTheme; exports.useChartLegendItems = _chunkTVV7ZI7Ccjs.useChartLegendItems; exports.useGlobalChartsContext = _chunkTVV7ZI7Ccjs.useGlobalChartsContext; exports.useGlobalChartsTheme = _chunkTVV7ZI7Ccjs.useGlobalChartsTheme;
87
+ exports.BarChart = _chunkIHESL7H5cjs.BarChartResponsive; exports.BarChartUnresponsive = _chunkIHESL7H5cjs.BarChart; exports.BarListChart = _chunkQ6G3BGCLcjs.BarListChartResponsive; exports.BarListChartUnresponsive = _chunkQ6G3BGCLcjs.BarListChart; exports.BaseTooltip = _chunkY3NNQMAXcjs.BaseTooltip; exports.ConversionFunnelChart = _chunkXCXAWMJQcjs.ConversionFunnelChartWithProvider; exports.GeoChart = _chunkNGHXTIUEcjs.GeoChartResponsive; exports.GeoChartUnresponsive = _chunkNGHXTIUEcjs.GeoChartWithProvider; exports.GlobalChartsContext = _chunkEJJO2QNBcjs.GlobalChartsContext; exports.GlobalChartsProvider = _chunkEJJO2QNBcjs.GlobalChartsProvider; exports.LeaderboardChart = _chunkFIFSYVN6cjs.LeaderboardChartResponsive; exports.LeaderboardChartUnresponsive = _chunkFIFSYVN6cjs.LeaderboardChart; exports.Legend = _chunkEJJO2QNBcjs.Legend; exports.LineChart = _chunkFY325WQ4cjs.LineChartResponsive; exports.LineChartUnresponsive = _chunkFY325WQ4cjs.LineChart; exports.PieChart = _chunkJL4ZKKZUcjs.PieChartResponsive; exports.PieChartUnresponsive = _chunkJL4ZKKZUcjs.PieChart; exports.PieSemiCircleChart = _chunkTKPK4RFScjs.PieSemiCircleChartResponsive; exports.PieSemiCircleChartUnresponsive = _chunkTKPK4RFScjs.PieSemiCircleChart; exports.Sparkline = _chunkLTPJPIDPcjs.Sparkline; exports.SparklineUnresponsive = _chunkLTPJPIDPcjs.SparklineUnresponsive; exports.ThemeProvider = _chunkEJJO2QNBcjs.GlobalChartsProvider; exports.TrendIndicator = _chunkI2276W3Icjs.TrendIndicator; exports.defaultTheme = _chunkEJJO2QNBcjs.defaultTheme; exports.useChartLegendItems = _chunkEJJO2QNBcjs.useChartLegendItems; exports.useGlobalChartsContext = _chunkEJJO2QNBcjs.useGlobalChartsContext; exports.useGlobalChartsTheme = _chunkEJJO2QNBcjs.useGlobalChartsTheme;
88
88
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/jetpack/jetpack/projects/js-packages/charts/dist/index.cjs"],"names":[],"mappings":"AAAA;AACE;AACA;AACF,wDAA6B;AAC7B;AACE;AACA;AACF,wDAA6B;AAC7B,gCAA6B;AAC7B;AACE;AACA;AACF,wDAA6B;AAC7B,gCAA6B;AAC7B,gCAA6B;AAC7B;AACE;AACA;AACF,wDAA6B;AAC7B;AACE;AACA;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACA;AACF,wDAA6B;AAC7B;AACE;AACA;AACF,wDAA6B;AAC7B,gCAA6B;AAC7B,gCAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACA;AACF,wDAA6B;AAC7B,gCAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACF,wDAA6B;AAC7B,gCAA6B;AAC7B,gCAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,utDAAC","file":"/home/runner/work/jetpack/jetpack/projects/js-packages/charts/dist/index.cjs"}
1
+ {"version":3,"sources":["/home/runner/work/jetpack/jetpack/projects/js-packages/charts/dist/index.cjs"],"names":[],"mappings":"AAAA;AACE;AACA;AACF,wDAA6B;AAC7B;AACE;AACA;AACF,wDAA6B;AAC7B,gCAA6B;AAC7B;AACE;AACA;AACF,wDAA6B;AAC7B,gCAA6B;AAC7B,gCAA6B;AAC7B;AACE;AACA;AACF,wDAA6B;AAC7B;AACE;AACA;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACA;AACF,wDAA6B;AAC7B;AACE;AACA;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B,gCAA6B;AAC7B,gCAA6B;AAC7B;AACE;AACA;AACF,wDAA6B;AAC7B,gCAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACF,wDAA6B;AAC7B,gCAA6B;AAC7B,gCAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,utDAAC","file":"/home/runner/work/jetpack/jetpack/projects/js-packages/charts/dist/index.cjs"}
package/dist/index.css CHANGED
@@ -1,3 +1,15 @@
1
+ /* esbuild-sass-plugin:css-chunk:src/hooks/use-tooltip-portal-relocator.module.scss */
2
+ .a8ccharts-jCw5dQ {
3
+ position: fixed;
4
+ top: 0;
5
+ left: 0;
6
+ width: 0;
7
+ height: 0;
8
+ overflow: visible;
9
+ z-index: 1;
10
+ pointer-events: none;
11
+ }
12
+
1
13
  /* esbuild-sass-plugin:css-chunk:src/components/legend/private/base-legend.module.scss */
2
14
  .a8ccharts-AELBvX {
3
15
  display: flex;
@@ -182,7 +194,8 @@
182
194
  display: flex;
183
195
  gap: 16px;
184
196
  align-items: flex-end;
185
- height: 200px;
197
+ flex: 1;
198
+ min-height: 200px;
186
199
  width: 100%;
187
200
  }
188
201
  .a8ccharts-VqFY0l {