@automattic/charts 0.56.5 → 0.56.7

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 (179) hide show
  1. package/AGENTS.md +135 -0
  2. package/CHANGELOG.md +17 -0
  3. package/README.md +2 -1
  4. package/dist/charts/bar-chart/index.cjs +6 -6
  5. package/dist/charts/bar-chart/index.css +1 -4
  6. package/dist/charts/bar-chart/index.css.map +1 -1
  7. package/dist/charts/bar-chart/index.d.cts +2 -8
  8. package/dist/charts/bar-chart/index.d.ts +2 -8
  9. package/dist/charts/bar-chart/index.js +5 -5
  10. package/dist/charts/bar-list-chart/index.cjs +7 -7
  11. package/dist/charts/bar-list-chart/index.css +1 -4
  12. package/dist/charts/bar-list-chart/index.css.map +1 -1
  13. package/dist/charts/bar-list-chart/index.d.cts +2 -2
  14. package/dist/charts/bar-list-chart/index.d.ts +2 -2
  15. package/dist/charts/bar-list-chart/index.js +6 -6
  16. package/dist/charts/conversion-funnel-chart/index.cjs +5 -5
  17. package/dist/charts/conversion-funnel-chart/index.css +1 -4
  18. package/dist/charts/conversion-funnel-chart/index.css.map +1 -1
  19. package/dist/charts/conversion-funnel-chart/index.d.cts +2 -1
  20. package/dist/charts/conversion-funnel-chart/index.d.ts +2 -1
  21. package/dist/charts/conversion-funnel-chart/index.js +4 -4
  22. package/dist/charts/geo-chart/index.cjs +4 -4
  23. package/dist/charts/geo-chart/index.css +1 -4
  24. package/dist/charts/geo-chart/index.css.map +1 -1
  25. package/dist/charts/geo-chart/index.d.cts +2 -1
  26. package/dist/charts/geo-chart/index.d.ts +2 -1
  27. package/dist/charts/geo-chart/index.js +3 -3
  28. package/dist/charts/leaderboard-chart/index.cjs +5 -5
  29. package/dist/charts/leaderboard-chart/index.css +1 -4
  30. package/dist/charts/leaderboard-chart/index.css.map +1 -1
  31. package/dist/charts/leaderboard-chart/index.d.cts +3 -2
  32. package/dist/charts/leaderboard-chart/index.d.ts +3 -2
  33. package/dist/charts/leaderboard-chart/index.js +4 -4
  34. package/dist/charts/line-chart/index.cjs +6 -6
  35. package/dist/charts/line-chart/index.css +1 -4
  36. package/dist/charts/line-chart/index.css.map +1 -1
  37. package/dist/charts/line-chart/index.d.cts +2 -8
  38. package/dist/charts/line-chart/index.d.ts +2 -8
  39. package/dist/charts/line-chart/index.js +5 -5
  40. package/dist/charts/pie-chart/index.cjs +6 -4
  41. package/dist/charts/pie-chart/index.cjs.map +1 -1
  42. package/dist/charts/pie-chart/index.css +13 -7
  43. package/dist/charts/pie-chart/index.css.map +1 -1
  44. package/dist/charts/pie-chart/index.d.cts +2 -1
  45. package/dist/charts/pie-chart/index.d.ts +2 -1
  46. package/dist/charts/pie-chart/index.js +5 -3
  47. package/dist/charts/pie-semi-circle-chart/index.cjs +6 -4
  48. package/dist/charts/pie-semi-circle-chart/index.cjs.map +1 -1
  49. package/dist/charts/pie-semi-circle-chart/index.css +12 -13
  50. package/dist/charts/pie-semi-circle-chart/index.css.map +1 -1
  51. package/dist/charts/pie-semi-circle-chart/index.d.cts +5 -2
  52. package/dist/charts/pie-semi-circle-chart/index.d.ts +5 -2
  53. package/dist/charts/pie-semi-circle-chart/index.js +5 -3
  54. package/dist/charts/sparkline/index.cjs +7 -7
  55. package/dist/charts/sparkline/index.css +1 -4
  56. package/dist/charts/sparkline/index.css.map +1 -1
  57. package/dist/charts/sparkline/index.js +6 -6
  58. package/dist/{chunk-NGHXTIUE.cjs → chunk-3EXJP67N.cjs} +7 -7
  59. package/dist/{chunk-NGHXTIUE.cjs.map → chunk-3EXJP67N.cjs.map} +1 -1
  60. package/dist/{chunk-FIFSYVN6.cjs → chunk-55ZCOYDF.cjs} +117 -132
  61. package/dist/chunk-55ZCOYDF.cjs.map +1 -0
  62. package/dist/{chunk-LT4YOIMM.js → chunk-7FDQGBY7.js} +145 -119
  63. package/dist/chunk-7FDQGBY7.js.map +1 -0
  64. package/dist/{chunk-7QDEU3KN.cjs → chunk-ASLARV7L.cjs} +6 -6
  65. package/dist/chunk-ASLARV7L.cjs.map +1 -0
  66. package/dist/chunk-BXFD7JIG.cjs +401 -0
  67. package/dist/chunk-BXFD7JIG.cjs.map +1 -0
  68. package/dist/{chunk-XCXAWMJQ.cjs → chunk-CAFJRZPZ.cjs} +12 -12
  69. package/dist/{chunk-XCXAWMJQ.cjs.map → chunk-CAFJRZPZ.cjs.map} +1 -1
  70. package/dist/{chunk-KHRPRH4V.js → chunk-E62LCBGD.js} +4 -4
  71. package/dist/{chunk-PCOI2GT5.js → chunk-GWBS65VC.js} +3 -3
  72. package/dist/{chunk-MEIVKY4K.js → chunk-IS5YYLTV.js} +18 -18
  73. package/dist/{chunk-MEIVKY4K.js.map → chunk-IS5YYLTV.js.map} +1 -1
  74. package/dist/{chunk-Q6G3BGCL.cjs → chunk-K6TGILHX.cjs} +8 -8
  75. package/dist/{chunk-Q6G3BGCL.cjs.map → chunk-K6TGILHX.cjs.map} +1 -1
  76. package/dist/{chunk-X6GX4QUJ.js → chunk-KHQPN77E.js} +3 -3
  77. package/dist/{chunk-SEKPIG5K.js → chunk-KNIMXN6Z.js} +2 -2
  78. package/dist/{chunk-SEKPIG5K.js.map → chunk-KNIMXN6Z.js.map} +1 -1
  79. package/dist/{chunk-AFWQR3SM.js → chunk-MDRCAGKZ.js} +4 -4
  80. package/dist/{chunk-TKPK4RFS.cjs → chunk-NQJE2CC7.cjs} +120 -98
  81. package/dist/chunk-NQJE2CC7.cjs.map +1 -0
  82. package/dist/{chunk-FY325WQ4.cjs → chunk-O2JIANHK.cjs} +25 -25
  83. package/dist/chunk-O2JIANHK.cjs.map +1 -0
  84. package/dist/{chunk-DLSUC7RN.js → chunk-OMS5QIJN.js} +6 -6
  85. package/dist/chunk-OMS5QIJN.js.map +1 -0
  86. package/dist/{chunk-TYIH5LMV.js → chunk-OP6PHB2U.js} +6 -6
  87. package/dist/chunk-OP6PHB2U.js.map +1 -0
  88. package/dist/{chunk-32ESS4MV.js → chunk-RFSHE3HL.js} +17 -7
  89. package/dist/chunk-RFSHE3HL.js.map +1 -0
  90. package/dist/{chunk-KXSLMOW5.js → chunk-SSFFCBCF.js} +6 -6
  91. package/dist/chunk-SSFFCBCF.js.map +1 -0
  92. package/dist/{chunk-I5467ZJ5.cjs → chunk-SUDERBUA.cjs} +2 -2
  93. package/dist/{chunk-I5467ZJ5.cjs.map → chunk-SUDERBUA.cjs.map} +1 -1
  94. package/dist/{chunk-SH32YSZO.cjs → chunk-UFRBUT2D.cjs} +19 -19
  95. package/dist/{chunk-SH32YSZO.cjs.map → chunk-UFRBUT2D.cjs.map} +1 -1
  96. package/dist/{chunk-7TQSPLIN.js → chunk-VPAEBI2F.js} +109 -87
  97. package/dist/chunk-VPAEBI2F.js.map +1 -0
  98. package/dist/{chunk-IHESL7H5.cjs → chunk-X7JL2NYJ.cjs} +24 -24
  99. package/dist/chunk-X7JL2NYJ.cjs.map +1 -0
  100. package/dist/{chunk-DBY6C4O2.js → chunk-XD2HV7M5.js} +77 -92
  101. package/dist/chunk-XD2HV7M5.js.map +1 -0
  102. package/dist/{chunk-LTPJPIDP.cjs → chunk-YAXY5L7I.cjs} +7 -7
  103. package/dist/{chunk-LTPJPIDP.cjs.map → chunk-YAXY5L7I.cjs.map} +1 -1
  104. package/dist/{chunk-EJJO2QNB.cjs → chunk-YDVHT7GS.cjs} +17 -7
  105. package/dist/chunk-YDVHT7GS.cjs.map +1 -0
  106. package/dist/components/legend/index.cjs +2 -2
  107. package/dist/components/legend/index.css +1 -4
  108. package/dist/components/legend/index.css.map +1 -1
  109. package/dist/components/legend/index.d.cts +2 -1
  110. package/dist/components/legend/index.d.ts +2 -1
  111. package/dist/components/legend/index.js +1 -1
  112. package/dist/components/tooltip/index.d.cts +2 -1
  113. package/dist/components/tooltip/index.d.ts +2 -1
  114. package/dist/hooks/index.cjs +2 -2
  115. package/dist/hooks/index.cjs.map +1 -1
  116. package/dist/hooks/index.css +1 -4
  117. package/dist/hooks/index.css.map +1 -1
  118. package/dist/hooks/index.d.cts +10 -7
  119. package/dist/hooks/index.d.ts +10 -7
  120. package/dist/hooks/index.js +3 -3
  121. package/dist/index.cjs +14 -14
  122. package/dist/index.css +24 -16
  123. package/dist/index.css.map +1 -1
  124. package/dist/index.d.cts +4 -4
  125. package/dist/index.d.ts +4 -4
  126. package/dist/index.js +13 -13
  127. package/dist/{leaderboard-chart-B5gWcqe7.d.ts → leaderboard-chart-BSgEw_Um.d.ts} +1 -1
  128. package/dist/{leaderboard-chart-C_6QDcqj.d.cts → leaderboard-chart-COtgamhe.d.cts} +1 -1
  129. package/dist/providers/index.cjs +2 -2
  130. package/dist/providers/index.css +1 -4
  131. package/dist/providers/index.css.map +1 -1
  132. package/dist/providers/index.d.cts +3 -2
  133. package/dist/providers/index.d.ts +3 -2
  134. package/dist/providers/index.js +1 -1
  135. package/dist/{themes-BDVaIfBz.d.cts → themes-CVR5rmIs.d.cts} +1 -1
  136. package/dist/{themes-mcS8QNkQ.d.ts → themes-DQzmaSze.d.ts} +1 -1
  137. package/dist/{types-BCFQlzTM.d.ts → types-CzdN7rUe.d.cts} +12 -3
  138. package/dist/{types-BCFQlzTM.d.cts → types-CzdN7rUe.d.ts} +12 -3
  139. package/dist/utils/index.d.cts +2 -1
  140. package/dist/utils/index.d.ts +2 -1
  141. package/package.json +9 -9
  142. package/src/charts/bar-chart/bar-chart.tsx +2 -9
  143. package/src/charts/bar-chart/test/bar-chart.test.tsx +3 -3
  144. package/src/charts/line-chart/line-chart.tsx +2 -2
  145. package/src/charts/line-chart/test/line-chart.test.tsx +3 -3
  146. package/src/charts/line-chart/types.ts +0 -7
  147. package/src/charts/pie-chart/pie-chart.module.scss +14 -3
  148. package/src/charts/pie-chart/pie-chart.tsx +172 -148
  149. package/src/charts/pie-semi-circle-chart/pie-semi-circle-chart.module.scss +17 -11
  150. package/src/charts/pie-semi-circle-chart/pie-semi-circle-chart.tsx +147 -119
  151. package/src/charts/pie-semi-circle-chart/test/pie-semi-circle-chart.test.tsx +46 -6
  152. package/src/charts/private/with-responsive/test/with-responsive.test.tsx +5 -5
  153. package/src/charts/private/with-responsive/with-responsive.tsx +8 -7
  154. package/src/hooks/index.ts +1 -1
  155. package/src/hooks/test/{use-element-height.test.tsx → use-element-size.test.tsx} +45 -36
  156. package/src/hooks/use-element-size.ts +43 -0
  157. package/src/hooks/use-tooltip-portal-relocator.module.scss +1 -4
  158. package/src/hooks/use-tooltip-portal-relocator.ts +11 -0
  159. package/src/types.ts +13 -3
  160. package/dist/chunk-32ESS4MV.js.map +0 -1
  161. package/dist/chunk-7QDEU3KN.cjs.map +0 -1
  162. package/dist/chunk-7TQSPLIN.js.map +0 -1
  163. package/dist/chunk-DBY6C4O2.js.map +0 -1
  164. package/dist/chunk-DLSUC7RN.js.map +0 -1
  165. package/dist/chunk-EJJO2QNB.cjs.map +0 -1
  166. package/dist/chunk-FIFSYVN6.cjs.map +0 -1
  167. package/dist/chunk-FY325WQ4.cjs.map +0 -1
  168. package/dist/chunk-IHESL7H5.cjs.map +0 -1
  169. package/dist/chunk-JL4ZKKZU.cjs +0 -375
  170. package/dist/chunk-JL4ZKKZU.cjs.map +0 -1
  171. package/dist/chunk-KXSLMOW5.js.map +0 -1
  172. package/dist/chunk-LT4YOIMM.js.map +0 -1
  173. package/dist/chunk-TKPK4RFS.cjs.map +0 -1
  174. package/dist/chunk-TYIH5LMV.js.map +0 -1
  175. package/src/hooks/use-element-height.ts +0 -37
  176. /package/dist/{chunk-KHRPRH4V.js.map → chunk-E62LCBGD.js.map} +0 -0
  177. /package/dist/{chunk-PCOI2GT5.js.map → chunk-GWBS65VC.js.map} +0 -0
  178. /package/dist/{chunk-X6GX4QUJ.js.map → chunk-KHQPN77E.js.map} +0 -0
  179. /package/dist/{chunk-AFWQR3SM.js.map → chunk-MDRCAGKZ.js.map} +0 -0
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  Stack
3
- } from "./chunk-MEIVKY4K.js";
3
+ } from "./chunk-IS5YYLTV.js";
4
4
  import {
5
5
  GlobalChartsContext,
6
6
  GlobalChartsProvider,
@@ -9,7 +9,7 @@ import {
9
9
  useGlobalChartsContext,
10
10
  useGlobalChartsTheme,
11
11
  usePrefersReducedMotion
12
- } from "./chunk-32ESS4MV.js";
12
+ } from "./chunk-RFSHE3HL.js";
13
13
  import {
14
14
  formatPercentage,
15
15
  hexToRgba
@@ -418,4 +418,4 @@ ConversionFunnelChartWithProvider.displayName = "ConversionFunnelChart";
418
418
  export {
419
419
  ConversionFunnelChartWithProvider
420
420
  };
421
- //# sourceMappingURL=chunk-X6GX4QUJ.js.map
421
+ //# sourceMappingURL=chunk-KHQPN77E.js.map
@@ -1,4 +1,4 @@
1
- // ../../../node_modules/.pnpm/@wordpress+element@6.39.0/node_modules/@wordpress/element/build-module/react.mjs
1
+ // ../../../node_modules/.pnpm/@wordpress+element@6.40.0/node_modules/@wordpress/element/build-module/react.mjs
2
2
  import {
3
3
  Children,
4
4
  cloneElement,
@@ -48,4 +48,4 @@ export {
48
48
  useRef,
49
49
  useState
50
50
  };
51
- //# sourceMappingURL=chunk-SEKPIG5K.js.map
51
+ //# sourceMappingURL=chunk-KNIMXN6Z.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../node_modules/.pnpm/@wordpress+element@6.39.0/node_modules/@wordpress/element/src/react.ts"],"sourcesContent":["/**\n * External dependencies\n */\n// eslint-disable-next-line @typescript-eslint/no-restricted-imports\nimport {\n\tChildren,\n\tcloneElement,\n\tComponent,\n\tcreateContext,\n\tcreateElement,\n\tcreateRef,\n\tforwardRef,\n\tFragment,\n\tisValidElement,\n\tmemo,\n\tPureComponent,\n\tStrictMode,\n\tuseCallback,\n\tuseContext,\n\tuseDebugValue,\n\tuseDeferredValue,\n\tuseEffect,\n\tuseId,\n\tuseMemo,\n\tuseImperativeHandle,\n\tuseInsertionEffect,\n\tuseLayoutEffect,\n\tuseReducer,\n\tuseRef,\n\tuseState,\n\tuseSyncExternalStore,\n\tuseTransition,\n\tstartTransition,\n\tlazy,\n\tSuspense,\n} from 'react';\nimport type { ReactNode } from 'react';\n\n/**\n * Object containing a React element.\n */\nexport type Element = React.ReactElement;\n\n/**\n * Object containing a React component.\n */\nexport type ComponentType< T = any > = React.ComponentType< T >;\n\n/**\n * Object containing a React synthetic event.\n */\nexport type SyntheticEvent< T = Element > = React.SyntheticEvent< T >;\n\n/**\n * Object containing a React ref object.\n */\nexport type RefObject< T > = React.RefObject< T >;\n\n/**\n * Object containing a React ref callback.\n */\nexport type RefCallback< T > = React.RefCallback< T >;\n\n/**\n * Object containing a React ref.\n */\nexport type Ref< T > = React.Ref< T >;\n\n/**\n * Object that provides utilities for dealing with React children.\n */\nexport { Children };\n\n/**\n * Creates a copy of an element with extended props.\n *\n * @param {Element} element Element\n * @param {?Object} props Props to apply to cloned element\n *\n * @return {Element} Cloned element.\n */\nexport { cloneElement };\n\n/**\n * A base class to create WordPress Components (Refs, state and lifecycle hooks)\n */\nexport { Component };\n\n/**\n * Creates a context object containing two components: a provider and consumer.\n *\n * @param {Object} defaultValue A default data stored in the context.\n *\n * @return {Object} Context object.\n */\nexport { createContext };\n\n/**\n * Returns a new element of given type. Type can be either a string tag name or\n * another function which itself returns an element.\n *\n * @param {?(string|Function)} type Tag name or element creator\n * @param {Object} props Element properties, either attribute\n * set to apply to DOM node or values to\n * pass through to element creator\n * @param {...Element} children Descendant elements\n *\n * @return {Element} Element.\n */\nexport { createElement };\n\n/**\n * Returns an object tracking a reference to a rendered element via its\n * `current` property as either a DOMElement or Element, dependent upon the\n * type of element rendered with the ref attribute.\n *\n * @return {Object} Ref object.\n */\nexport { createRef };\n\n/**\n * Component enhancer used to enable passing a ref to its wrapped component.\n * Pass a function argument which receives `props` and `ref` as its arguments,\n * returning an element using the forwarded ref. The return value is a new\n * component which forwards its ref.\n *\n * @param {Function} forwarder Function passed `props` and `ref`, expected to\n * return an element.\n *\n * @return {Component} Enhanced component.\n */\nexport { forwardRef };\n\n/**\n * A component which renders its children without any wrapping element.\n */\nexport { Fragment };\n\n/**\n * Checks if an object is a valid React Element.\n *\n * @param {Object} objectToCheck The object to be checked.\n *\n * @return {boolean} true if objectToTest is a valid React Element and false otherwise.\n */\nexport { isValidElement };\n\n/**\n * @see https://react.dev/reference/react/memo\n */\nexport { memo };\n\n/**\n * Component that activates additional checks and warnings for its descendants.\n */\nexport { StrictMode };\n\n/**\n * @see https://react.dev/reference/react/useCallback\n */\nexport { useCallback };\n\n/**\n * @see https://react.dev/reference/react/useContext\n */\nexport { useContext };\n\n/**\n * @see https://react.dev/reference/react/useDebugValue\n */\nexport { useDebugValue };\n\n/**\n * @see https://react.dev/reference/react/useDeferredValue\n */\nexport { useDeferredValue };\n\n/**\n * @see https://react.dev/reference/react/useEffect\n */\nexport { useEffect };\n\n/**\n * @see https://react.dev/reference/react/useId\n */\nexport { useId };\n\n/**\n * @see https://react.dev/reference/react/useImperativeHandle\n */\nexport { useImperativeHandle };\n\n/**\n * @see https://react.dev/reference/react/useInsertionEffect\n */\nexport { useInsertionEffect };\n\n/**\n * @see https://react.dev/reference/react/useLayoutEffect\n */\nexport { useLayoutEffect };\n\n/**\n * @see https://react.dev/reference/react/useMemo\n */\nexport { useMemo };\n\n/**\n * @see https://react.dev/reference/react/useReducer\n */\nexport { useReducer };\n\n/**\n * @see https://react.dev/reference/react/useRef\n */\nexport { useRef };\n\n/**\n * @see https://react.dev/reference/react/useState\n */\nexport { useState };\n\n/**\n * @see https://react.dev/reference/react/useSyncExternalStore\n */\nexport { useSyncExternalStore };\n\n/**\n * @see https://react.dev/reference/react/useTransition\n */\nexport { useTransition };\n\n/**\n * @see https://react.dev/reference/react/startTransition\n */\nexport { startTransition };\n\n/**\n * @see https://react.dev/reference/react/lazy\n */\nexport { lazy };\n\n/**\n * @see https://react.dev/reference/react/Suspense\n */\nexport { Suspense };\n\n/**\n * @see https://react.dev/reference/react/PureComponent\n */\nexport { PureComponent };\n\n/**\n * Concatenate two or more React children objects.\n *\n * @param childrenArguments - Array of children arguments (array of arrays/strings/objects) to concatenate.\n * @return The concatenated value.\n */\nexport function concatChildren(\n\t...childrenArguments: ReactNode[][]\n): ReactNode[] {\n\treturn childrenArguments.reduce< ReactNode[] >(\n\t\t( accumulator, children, i ) => {\n\t\t\tChildren.forEach( children, ( child, j ) => {\n\t\t\t\tif ( isValidElement( child ) && typeof child !== 'string' ) {\n\t\t\t\t\tchild = cloneElement( child, {\n\t\t\t\t\t\tkey: [ i, j ].join(),\n\t\t\t\t\t} );\n\t\t\t\t}\n\n\t\t\t\taccumulator.push( child );\n\t\t\t} );\n\n\t\t\treturn accumulator;\n\t\t},\n\t\t[]\n\t);\n}\n\n/**\n * Switches the nodeName of all the elements in the children object.\n *\n * @param children Children object.\n * @param nodeName Node name.\n *\n * @return The updated children object.\n */\nexport function switchChildrenNodeName(\n\tchildren: ReactNode,\n\tnodeName: string\n): ReactNode {\n\treturn (\n\t\tchildren &&\n\t\tChildren.map( children, ( elt, index ) => {\n\t\t\tif ( typeof elt?.valueOf() === 'string' ) {\n\t\t\t\treturn createElement( nodeName, { key: index }, elt );\n\t\t\t}\n\t\t\tif ( ! isValidElement( elt ) ) {\n\t\t\t\treturn elt;\n\t\t\t}\n\n\t\t\tconst { children: childrenProp, ...props } = elt.props;\n\t\t\treturn createElement(\n\t\t\t\tnodeName,\n\t\t\t\t{ key: index, ...props },\n\t\t\t\tchildrenProp\n\t\t\t);\n\t\t} )\n\t);\n}\n"],"mappings":";AAIA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;OACM;","names":[]}
1
+ {"version":3,"sources":["../../../../node_modules/.pnpm/@wordpress+element@6.40.0/node_modules/@wordpress/element/src/react.ts"],"sourcesContent":["/**\n * External dependencies\n */\n// eslint-disable-next-line @typescript-eslint/no-restricted-imports\nimport {\n\tChildren,\n\tcloneElement,\n\tComponent,\n\tcreateContext,\n\tcreateElement,\n\tcreateRef,\n\tforwardRef,\n\tFragment,\n\tisValidElement,\n\tmemo,\n\tPureComponent,\n\tStrictMode,\n\tuseCallback,\n\tuseContext,\n\tuseDebugValue,\n\tuseDeferredValue,\n\tuseEffect,\n\tuseId,\n\tuseMemo,\n\tuseImperativeHandle,\n\tuseInsertionEffect,\n\tuseLayoutEffect,\n\tuseReducer,\n\tuseRef,\n\tuseState,\n\tuseSyncExternalStore,\n\tuseTransition,\n\tstartTransition,\n\tlazy,\n\tSuspense,\n} from 'react';\nimport type { ReactNode } from 'react';\n\n/**\n * Object containing a React element.\n */\nexport type Element = React.ReactElement;\n\n/**\n * Object containing a React component.\n */\nexport type ComponentType< T = any > = React.ComponentType< T >;\n\n/**\n * Object containing a React synthetic event.\n */\nexport type SyntheticEvent< T = Element > = React.SyntheticEvent< T >;\n\n/**\n * Object containing a React ref object.\n */\nexport type RefObject< T > = React.RefObject< T >;\n\n/**\n * Object containing a React ref callback.\n */\nexport type RefCallback< T > = React.RefCallback< T >;\n\n/**\n * Object containing a React ref.\n */\nexport type Ref< T > = React.Ref< T >;\n\n/**\n * Object that provides utilities for dealing with React children.\n */\nexport { Children };\n\n/**\n * Creates a copy of an element with extended props.\n *\n * @param {Element} element Element\n * @param {?Object} props Props to apply to cloned element\n *\n * @return {Element} Cloned element.\n */\nexport { cloneElement };\n\n/**\n * A base class to create WordPress Components (Refs, state and lifecycle hooks)\n */\nexport { Component };\n\n/**\n * Creates a context object containing two components: a provider and consumer.\n *\n * @param {Object} defaultValue A default data stored in the context.\n *\n * @return {Object} Context object.\n */\nexport { createContext };\n\n/**\n * Returns a new element of given type. Type can be either a string tag name or\n * another function which itself returns an element.\n *\n * @param {?(string|Function)} type Tag name or element creator\n * @param {Object} props Element properties, either attribute\n * set to apply to DOM node or values to\n * pass through to element creator\n * @param {...Element} children Descendant elements\n *\n * @return {Element} Element.\n */\nexport { createElement };\n\n/**\n * Returns an object tracking a reference to a rendered element via its\n * `current` property as either a DOMElement or Element, dependent upon the\n * type of element rendered with the ref attribute.\n *\n * @return {Object} Ref object.\n */\nexport { createRef };\n\n/**\n * Component enhancer used to enable passing a ref to its wrapped component.\n * Pass a function argument which receives `props` and `ref` as its arguments,\n * returning an element using the forwarded ref. The return value is a new\n * component which forwards its ref.\n *\n * @param {Function} forwarder Function passed `props` and `ref`, expected to\n * return an element.\n *\n * @return {Component} Enhanced component.\n */\nexport { forwardRef };\n\n/**\n * A component which renders its children without any wrapping element.\n */\nexport { Fragment };\n\n/**\n * Checks if an object is a valid React Element.\n *\n * @param {Object} objectToCheck The object to be checked.\n *\n * @return {boolean} true if objectToTest is a valid React Element and false otherwise.\n */\nexport { isValidElement };\n\n/**\n * @see https://react.dev/reference/react/memo\n */\nexport { memo };\n\n/**\n * Component that activates additional checks and warnings for its descendants.\n */\nexport { StrictMode };\n\n/**\n * @see https://react.dev/reference/react/useCallback\n */\nexport { useCallback };\n\n/**\n * @see https://react.dev/reference/react/useContext\n */\nexport { useContext };\n\n/**\n * @see https://react.dev/reference/react/useDebugValue\n */\nexport { useDebugValue };\n\n/**\n * @see https://react.dev/reference/react/useDeferredValue\n */\nexport { useDeferredValue };\n\n/**\n * @see https://react.dev/reference/react/useEffect\n */\nexport { useEffect };\n\n/**\n * @see https://react.dev/reference/react/useId\n */\nexport { useId };\n\n/**\n * @see https://react.dev/reference/react/useImperativeHandle\n */\nexport { useImperativeHandle };\n\n/**\n * @see https://react.dev/reference/react/useInsertionEffect\n */\nexport { useInsertionEffect };\n\n/**\n * @see https://react.dev/reference/react/useLayoutEffect\n */\nexport { useLayoutEffect };\n\n/**\n * @see https://react.dev/reference/react/useMemo\n */\nexport { useMemo };\n\n/**\n * @see https://react.dev/reference/react/useReducer\n */\nexport { useReducer };\n\n/**\n * @see https://react.dev/reference/react/useRef\n */\nexport { useRef };\n\n/**\n * @see https://react.dev/reference/react/useState\n */\nexport { useState };\n\n/**\n * @see https://react.dev/reference/react/useSyncExternalStore\n */\nexport { useSyncExternalStore };\n\n/**\n * @see https://react.dev/reference/react/useTransition\n */\nexport { useTransition };\n\n/**\n * @see https://react.dev/reference/react/startTransition\n */\nexport { startTransition };\n\n/**\n * @see https://react.dev/reference/react/lazy\n */\nexport { lazy };\n\n/**\n * @see https://react.dev/reference/react/Suspense\n */\nexport { Suspense };\n\n/**\n * @see https://react.dev/reference/react/PureComponent\n */\nexport { PureComponent };\n\n/**\n * Concatenate two or more React children objects.\n *\n * @param childrenArguments - Array of children arguments (array of arrays/strings/objects) to concatenate.\n * @return The concatenated value.\n */\nexport function concatChildren(\n\t...childrenArguments: ReactNode[][]\n): ReactNode[] {\n\treturn childrenArguments.reduce< ReactNode[] >(\n\t\t( accumulator, children, i ) => {\n\t\t\tChildren.forEach( children, ( child, j ) => {\n\t\t\t\tif ( isValidElement( child ) && typeof child !== 'string' ) {\n\t\t\t\t\tchild = cloneElement( child, {\n\t\t\t\t\t\tkey: [ i, j ].join(),\n\t\t\t\t\t} );\n\t\t\t\t}\n\n\t\t\t\taccumulator.push( child );\n\t\t\t} );\n\n\t\t\treturn accumulator;\n\t\t},\n\t\t[]\n\t);\n}\n\n/**\n * Switches the nodeName of all the elements in the children object.\n *\n * @param children Children object.\n * @param nodeName Node name.\n *\n * @return The updated children object.\n */\nexport function switchChildrenNodeName(\n\tchildren: ReactNode,\n\tnodeName: string\n): ReactNode {\n\treturn (\n\t\tchildren &&\n\t\tChildren.map( children, ( elt, index ) => {\n\t\t\tif ( typeof elt?.valueOf() === 'string' ) {\n\t\t\t\treturn createElement( nodeName, { key: index }, elt );\n\t\t\t}\n\t\t\tif ( ! isValidElement( elt ) ) {\n\t\t\t\treturn elt;\n\t\t\t}\n\n\t\t\tconst { children: childrenProp, ...props } = elt.props;\n\t\t\treturn createElement(\n\t\t\t\tnodeName,\n\t\t\t\t{ key: index, ...props },\n\t\t\t\tchildrenProp\n\t\t\t);\n\t\t} )\n\t);\n}\n"],"mappings":";AAIA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;OACM;","names":[]}
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  BarChart
3
- } from "./chunk-KXSLMOW5.js";
3
+ } from "./chunk-SSFFCBCF.js";
4
4
  import {
5
5
  withResponsive
6
- } from "./chunk-TYIH5LMV.js";
6
+ } from "./chunk-OP6PHB2U.js";
7
7
  import {
8
8
  GlobalChartsContext,
9
9
  GlobalChartsProvider
10
- } from "./chunk-32ESS4MV.js";
10
+ } from "./chunk-RFSHE3HL.js";
11
11
 
12
12
  // src/charts/bar-list-chart/bar-list-chart.tsx
13
13
  import { formatNumberCompact } from "@automattic/number-formatters";
@@ -216,4 +216,4 @@ export {
216
216
  BarListChart,
217
217
  BarListChartResponsive
218
218
  };
219
- //# sourceMappingURL=chunk-AFWQR3SM.js.map
219
+ //# sourceMappingURL=chunk-MDRCAGKZ.js.map
@@ -11,9 +11,10 @@ var _chunkRCY6XLGUcjs = require('./chunk-RCY6XLGU.cjs');
11
11
  var _chunkY3NNQMAXcjs = require('./chunk-Y3NNQMAX.cjs');
12
12
 
13
13
 
14
- var _chunk7QDEU3KNcjs = require('./chunk-7QDEU3KN.cjs');
14
+ var _chunkUFRBUT2Dcjs = require('./chunk-UFRBUT2D.cjs');
15
15
 
16
16
 
17
+ var _chunkASLARV7Lcjs = require('./chunk-ASLARV7L.cjs');
17
18
 
18
19
 
19
20
 
@@ -24,7 +25,9 @@ var _chunk7QDEU3KNcjs = require('./chunk-7QDEU3KN.cjs');
24
25
 
25
26
 
26
27
 
27
- var _chunkEJJO2QNBcjs = require('./chunk-EJJO2QNB.cjs');
28
+
29
+
30
+ var _chunkYDVHT7GScjs = require('./chunk-YDVHT7GS.cjs');
28
31
 
29
32
 
30
33
  var _chunkZVGEDXDPcjs = require('./chunk-ZVGEDXDP.cjs');
@@ -40,8 +43,9 @@ var _react = require('react');
40
43
 
41
44
  // src/charts/pie-semi-circle-chart/pie-semi-circle-chart.module.scss
42
45
  var pie_semi_circle_chart_module_default = {
46
+ "pie-semi-circle-chart--responsive": "a8ccharts-V0wiEb",
47
+ "pie-semi-circle-chart__svg-wrapper": "a8ccharts-hGowej",
43
48
  "pie-semi-circle-chart": "a8ccharts-8tyaQj",
44
- "pie-semi-circle-chart--legend-top": "a8ccharts-M1lF7A",
45
49
  "label": "a8ccharts-EKZS3j",
46
50
  "note": "a8ccharts-v85A8-"
47
51
  };
@@ -59,6 +63,7 @@ var renderDefaultPieSemiCircleTooltip = ({
59
63
  });
60
64
  };
61
65
  var PAD_ANGLE = 0.03;
66
+ var DEFAULT_WIDTH = 400;
62
67
  var validateData = (data) => {
63
68
  if (!data.length) {
64
69
  return {
@@ -88,7 +93,8 @@ var validateData = (data) => {
88
93
  var PieSemiCircleChartInternal = ({
89
94
  data,
90
95
  chartId: providedChartId,
91
- width = 400,
96
+ width: propWidth,
97
+ height: propHeight,
92
98
  thickness = 0.4,
93
99
  clockwise = true,
94
100
  withTooltips = false,
@@ -109,10 +115,11 @@ var PieSemiCircleChartInternal = ({
109
115
  children,
110
116
  tooltipOffsetX = 0,
111
117
  tooltipOffsetY = -15,
112
- renderTooltip = renderDefaultPieSemiCircleTooltip
118
+ renderTooltip = renderDefaultPieSemiCircleTooltip,
119
+ gap = "md"
113
120
  }) => {
114
- const chartId = _chunkEJJO2QNBcjs.useChartId.call(void 0, providedChartId);
115
- const [legendRef, legendHeight] = _chunkEJJO2QNBcjs.useElementHeight.call(void 0, );
121
+ const chartId = _chunkYDVHT7GScjs.useChartId.call(void 0, providedChartId);
122
+ const [svgWrapperRef, svgWrapperWidth, svgWrapperHeight] = _chunkYDVHT7GScjs.useElementSize.call(void 0, );
116
123
  const {
117
124
  tooltipOpen,
118
125
  tooltipLeft,
@@ -153,12 +160,12 @@ var PieSemiCircleChartInternal = ({
153
160
  const {
154
161
  getElementStyles,
155
162
  isSeriesVisible
156
- } = _chunkEJJO2QNBcjs.useGlobalChartsContext.call(void 0, );
163
+ } = _chunkYDVHT7GScjs.useGlobalChartsContext.call(void 0, );
157
164
  const {
158
165
  visibleData,
159
166
  allSegmentsHidden,
160
167
  legendData
161
- } = _chunkEJJO2QNBcjs.useInteractiveLegendData.call(void 0, {
168
+ } = _chunkYDVHT7GScjs.useInteractiveLegendData.call(void 0, {
162
169
  data,
163
170
  chartId,
164
171
  legendInteractive,
@@ -176,7 +183,7 @@ var PieSemiCircleChartInternal = ({
176
183
  showValues: true,
177
184
  legendValueDisplay
178
185
  }), [legendValueDisplay]);
179
- const legendItems = _chunkEJJO2QNBcjs.useChartLegendItems.call(void 0, legendData, legendOptions);
186
+ const legendItems = _chunkYDVHT7GScjs.useChartLegendItems.call(void 0, legendData, legendOptions);
180
187
  const {
181
188
  svgChildren,
182
189
  htmlChildren,
@@ -186,20 +193,23 @@ var PieSemiCircleChartInternal = ({
186
193
  thickness,
187
194
  clockwise
188
195
  }), [thickness, clockwise]);
189
- _chunkEJJO2QNBcjs.useChartRegistration.call(void 0, {
196
+ _chunkYDVHT7GScjs.useChartRegistration.call(void 0, {
190
197
  chartId,
191
198
  legendItems,
192
199
  chartType: "pie-semi-circle",
193
200
  isDataValid: isValid,
194
201
  metadata: chartMetadata
195
202
  });
196
- const prefersReducedMotion = _chunkEJJO2QNBcjs.usePrefersReducedMotion.call(void 0, );
203
+ const prefersReducedMotion = _chunkYDVHT7GScjs.usePrefersReducedMotion.call(void 0, );
204
+ const effectiveWidth = propWidth || DEFAULT_WIDTH;
197
205
  if (!isValid) {
206
+ const errorWidth = propHeight ? Math.min(propWidth || propHeight * 2, propHeight * 2) : effectiveWidth;
207
+ const errorHeight = errorWidth / 2;
198
208
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", {
199
209
  className: pie_semi_circle_chart_module_default["pie-semi-circle-chart"],
200
210
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "svg", {
201
- width,
202
- height: width / 2,
211
+ width: errorWidth,
212
+ height: errorHeight,
203
213
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "text", {
204
214
  x: "50%",
205
215
  y: "50%",
@@ -210,9 +220,11 @@ var PieSemiCircleChartInternal = ({
210
220
  })
211
221
  });
212
222
  }
223
+ const availableWidth = svgWrapperWidth > 0 ? svgWrapperWidth : effectiveWidth;
224
+ const availableHeight = svgWrapperHeight > 0 ? svgWrapperHeight : propHeight || effectiveWidth / 2;
225
+ const width = Math.min(availableWidth, availableHeight * 2);
213
226
  const height = width / 2;
214
- const chartHeight = height - (showLegend && legendPosition === "top" ? legendHeight : 0);
215
- const radius = Math.min(width / 2, chartHeight);
227
+ const radius = height;
216
228
  const innerRadius = radius * (1 - thickness);
217
229
  const dataWithIndex = visibleData.map((d) => {
218
230
  const originalIndex = data.findIndex((item) => item.label === d.label);
@@ -223,79 +235,100 @@ var PieSemiCircleChartInternal = ({
223
235
  });
224
236
  const startAngle = clockwise ? -Math.PI / 2 : Math.PI / 2;
225
237
  const endAngle = clockwise ? Math.PI / 2 : -Math.PI / 2;
226
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEJJO2QNBcjs.SingleChartContext.Provider, {
238
+ const legendElement = showLegend && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYDVHT7GScjs.Legend, {
239
+ orientation: legendOrientation,
240
+ position: legendPosition,
241
+ alignment: legendAlignment,
242
+ maxWidth: legendMaxWidth,
243
+ textOverflow: legendTextOverflow,
244
+ legendItemClassName,
245
+ shape: legendShape,
246
+ chartId,
247
+ interactive: legendInteractive
248
+ });
249
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYDVHT7GScjs.SingleChartContext.Provider, {
227
250
  value: {
228
251
  chartId,
229
252
  chartWidth: width,
230
- chartHeight: radius
253
+ chartHeight: height
231
254
  },
232
- children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", {
255
+ children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkUFRBUT2Dcjs.Stack, {
233
256
  ref: containerRef,
257
+ direction: "column",
258
+ gap,
234
259
  className: _clsx2.default.call(void 0, "pie-semi-circle-chart", pie_semi_circle_chart_module_default["pie-semi-circle-chart"], {
235
- [pie_semi_circle_chart_module_default["pie-semi-circle-chart--legend-top"]]: showLegend && legendPosition === "top"
260
+ [pie_semi_circle_chart_module_default["pie-semi-circle-chart--responsive"]]: !propWidth && !propHeight
236
261
  }, className),
237
- children: [/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "svg", {
238
- width,
239
- height: radius,
240
- viewBox: `0 0 ${width} ${chartHeight}`,
241
- children: [/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "defs", {
242
- children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk2A34OA5Ocjs.radial_wipe_animation_default, {
243
- id: `radial-wipe-${chartId}`,
244
- radius,
245
- innerRadius,
246
- startAngle: "-180deg",
247
- wipePercentage: 50
248
- })
249
- }), /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _group.Group, {
250
- top: chartHeight,
251
- left: width / 2,
252
- mask: animation && !prefersReducedMotion ? `url(#radial-wipe-${chartId})` : null,
253
- children: allSegmentsHidden ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "text", {
254
- textAnchor: "middle",
255
- y: -radius / 2,
256
- fill: "#ccc",
257
- fontSize: "14",
258
- fontFamily: "-apple-system,BlinkMacSystemFont,Roboto,Helvetica Neue,sans-serif",
259
- children: _i18n.__.call(void 0, "All segments are hidden. Click legend items to show data.", "jetpack-charts")
260
- }) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, {
261
- children: [/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _shape.Pie, {
262
- data: dataWithIndex,
263
- pieValue: accessors.value,
264
- outerRadius: radius,
262
+ style: {
263
+ width: propWidth || void 0,
264
+ height: propHeight || void 0
265
+ },
266
+ children: [legendPosition === "top" && legendElement, /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", {
267
+ ref: svgWrapperRef,
268
+ className: pie_semi_circle_chart_module_default["pie-semi-circle-chart__svg-wrapper"],
269
+ children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "svg", {
270
+ width,
271
+ height,
272
+ viewBox: `0 0 ${width} ${height}`,
273
+ children: [/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "defs", {
274
+ children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk2A34OA5Ocjs.radial_wipe_animation_default, {
275
+ id: `radial-wipe-${chartId}`,
276
+ radius,
265
277
  innerRadius,
266
- cornerRadius: 3,
267
- padAngle: PAD_ANGLE,
268
- startAngle,
269
- endAngle,
270
- pieSort: accessors.sort,
271
- children: (pie) => {
272
- return pie.arcs.map((arc) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "g", {
273
- onMouseMove: withTooltips ? handleArcMouseMove(arc) : void 0,
274
- onMouseLeave: withTooltips ? handleMouseLeave : void 0,
275
- children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "path", {
276
- d: pie.path(arc) || "",
277
- fill: accessors.fill(arc.data)
278
- })
279
- }, arc.data.label));
280
- }
281
- }), /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _group.Group, {
282
- children: [/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _text.Text, {
283
- textAnchor: "middle",
284
- verticalAnchor: "start",
285
- y: -40,
286
- className: pie_semi_circle_chart_module_default.label,
287
- children: label
288
- }), /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _text.Text, {
289
- textAnchor: "middle",
290
- verticalAnchor: "start",
291
- y: -20,
292
- className: pie_semi_circle_chart_module_default.note,
293
- children: note
294
- })]
295
- }), !allSegmentsHidden && svgChildren]
296
- })
297
- })]
298
- }), withTooltips && tooltipOpen && tooltipData && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TooltipInPortal, {
278
+ startAngle: "-180deg",
279
+ wipePercentage: 50
280
+ })
281
+ }), /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _group.Group, {
282
+ top: height,
283
+ left: width / 2,
284
+ mask: animation && !prefersReducedMotion ? `url(#radial-wipe-${chartId})` : null,
285
+ children: allSegmentsHidden ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "text", {
286
+ textAnchor: "middle",
287
+ y: -radius / 2,
288
+ fill: "#ccc",
289
+ fontSize: "14",
290
+ fontFamily: "-apple-system,BlinkMacSystemFont,Roboto,Helvetica Neue,sans-serif",
291
+ children: _i18n.__.call(void 0, "All segments are hidden. Click legend items to show data.", "jetpack-charts")
292
+ }) : /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, {
293
+ children: [/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _shape.Pie, {
294
+ data: dataWithIndex,
295
+ pieValue: accessors.value,
296
+ outerRadius: radius,
297
+ innerRadius,
298
+ cornerRadius: 3,
299
+ padAngle: PAD_ANGLE,
300
+ startAngle,
301
+ endAngle,
302
+ pieSort: accessors.sort,
303
+ children: (pie) => {
304
+ return pie.arcs.map((arc) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "g", {
305
+ onMouseMove: withTooltips ? handleArcMouseMove(arc) : void 0,
306
+ onMouseLeave: withTooltips ? handleMouseLeave : void 0,
307
+ children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "path", {
308
+ d: pie.path(arc) || "",
309
+ fill: accessors.fill(arc.data)
310
+ })
311
+ }, arc.data.label));
312
+ }
313
+ }), /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _group.Group, {
314
+ children: [/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _text.Text, {
315
+ textAnchor: "middle",
316
+ verticalAnchor: "start",
317
+ y: -40,
318
+ className: pie_semi_circle_chart_module_default.label,
319
+ children: label
320
+ }), /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _text.Text, {
321
+ textAnchor: "middle",
322
+ verticalAnchor: "start",
323
+ y: -20,
324
+ className: pie_semi_circle_chart_module_default.note,
325
+ children: note
326
+ })]
327
+ }), !allSegmentsHidden && svgChildren]
328
+ })
329
+ })]
330
+ })
331
+ }), legendPosition !== "top" && legendElement, withTooltips && tooltipOpen && tooltipData && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TooltipInPortal, {
299
332
  top: tooltipTop || 0,
300
333
  left: tooltipLeft || 0,
301
334
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", {
@@ -304,29 +337,18 @@ var PieSemiCircleChartInternal = ({
304
337
  tooltipData
305
338
  })
306
339
  })
307
- }), showLegend && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEJJO2QNBcjs.Legend, {
308
- orientation: legendOrientation,
309
- position: legendPosition,
310
- alignment: legendAlignment,
311
- maxWidth: legendMaxWidth,
312
- textOverflow: legendTextOverflow,
313
- legendItemClassName,
314
- shape: legendShape,
315
- ref: legendRef,
316
- chartId,
317
- interactive: legendInteractive
318
340
  }), htmlChildren, otherChildren]
319
341
  })
320
342
  });
321
343
  };
322
344
  var PieSemiCircleChartWithProvider = (props) => {
323
- const existingContext = _react.useContext.call(void 0, _chunkEJJO2QNBcjs.GlobalChartsContext);
345
+ const existingContext = _react.useContext.call(void 0, _chunkYDVHT7GScjs.GlobalChartsContext);
324
346
  if (existingContext) {
325
347
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, PieSemiCircleChartInternal, {
326
348
  ...props
327
349
  });
328
350
  }
329
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEJJO2QNBcjs.GlobalChartsProvider, {
351
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkYDVHT7GScjs.GlobalChartsProvider, {
330
352
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, PieSemiCircleChartInternal, {
331
353
  ...props
332
354
  })
@@ -334,12 +356,12 @@ var PieSemiCircleChartWithProvider = (props) => {
334
356
  };
335
357
  PieSemiCircleChartWithProvider.displayName = "PieSemiCircleChart";
336
358
  var PieSemiCircleChart = _chunkZVGEDXDPcjs.attachSubComponents.call(void 0, PieSemiCircleChartWithProvider, {
337
- Legend: _chunkEJJO2QNBcjs.Legend,
359
+ Legend: _chunkYDVHT7GScjs.Legend,
338
360
  SVG: _chunkRCY6XLGUcjs.ChartSVG,
339
361
  HTML: _chunkRCY6XLGUcjs.ChartHTML
340
362
  });
341
- var PieSemiCircleChartResponsive = _chunkZVGEDXDPcjs.attachSubComponents.call(void 0, _chunk7QDEU3KNcjs.withResponsive.call(void 0, PieSemiCircleChartWithProvider), {
342
- Legend: _chunkEJJO2QNBcjs.Legend,
363
+ var PieSemiCircleChartResponsive = _chunkZVGEDXDPcjs.attachSubComponents.call(void 0, _chunkASLARV7Lcjs.withResponsive.call(void 0, PieSemiCircleChartWithProvider), {
364
+ Legend: _chunkYDVHT7GScjs.Legend,
343
365
  SVG: _chunkRCY6XLGUcjs.ChartSVG,
344
366
  HTML: _chunkRCY6XLGUcjs.ChartHTML
345
367
  });
@@ -348,4 +370,4 @@ var PieSemiCircleChartResponsive = _chunkZVGEDXDPcjs.attachSubComponents.call(vo
348
370
 
349
371
 
350
372
  exports.PieSemiCircleChart = PieSemiCircleChart; exports.PieSemiCircleChartResponsive = PieSemiCircleChartResponsive;
351
- //# sourceMappingURL=chunk-TKPK4RFS.cjs.map
373
+ //# sourceMappingURL=chunk-NQJE2CC7.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/home/runner/work/jetpack/jetpack/projects/js-packages/charts/dist/chunk-NQJE2CC7.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-NQJE2CC7.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 maxWidth: legendMaxWidth,\n textOverflow: legendTextOverflow,\n legendItemClassName: 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};"]}