@yamada-ui/react 2.2.1-dev-20260511135752 → 2.2.1-dev-20260511183442

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 (48) hide show
  1. package/dist/cjs/components/chart/use-cartesian-chart.cjs +7 -28
  2. package/dist/cjs/components/chart/use-cartesian-chart.cjs.map +1 -1
  3. package/dist/cjs/components/chart/use-polar-chart.cjs +9 -36
  4. package/dist/cjs/components/chart/use-polar-chart.cjs.map +1 -1
  5. package/dist/cjs/components/popover/use-popover.cjs +14 -4
  6. package/dist/cjs/components/popover/use-popover.cjs.map +1 -1
  7. package/dist/cjs/hooks/use-combobox/index.cjs +32 -31
  8. package/dist/cjs/hooks/use-combobox/index.cjs.map +1 -1
  9. package/dist/esm/components/chart/use-cartesian-chart.js +7 -28
  10. package/dist/esm/components/chart/use-cartesian-chart.js.map +1 -1
  11. package/dist/esm/components/chart/use-polar-chart.js +9 -36
  12. package/dist/esm/components/chart/use-polar-chart.js.map +1 -1
  13. package/dist/esm/components/popover/use-popover.js +14 -4
  14. package/dist/esm/components/popover/use-popover.js.map +1 -1
  15. package/dist/esm/hooks/use-combobox/index.js +32 -31
  16. package/dist/esm/hooks/use-combobox/index.js.map +1 -1
  17. package/dist/types/components/accordion/accordion.style.d.ts +1 -1
  18. package/dist/types/components/autocomplete/autocomplete.style.d.ts +1 -1
  19. package/dist/types/components/breadcrumb/breadcrumb.style.d.ts +1 -1
  20. package/dist/types/components/calendar/calendar.style.d.ts +2 -2
  21. package/dist/types/components/carousel/carousel.style.d.ts +2 -2
  22. package/dist/types/components/chart/cartesian-chart.style.d.ts +1 -1
  23. package/dist/types/components/chart/polar-chart.style.d.ts +1 -1
  24. package/dist/types/components/checkbox-card/checkbox-card.d.ts +3 -3
  25. package/dist/types/components/checkbox-card/checkbox-card.style.d.ts +1 -1
  26. package/dist/types/components/color-picker/color-picker.style.d.ts +1 -1
  27. package/dist/types/components/data-list/data-list.style.d.ts +1 -1
  28. package/dist/types/components/empty-state/empty-state.style.d.ts +2 -2
  29. package/dist/types/components/flip/flip.d.ts +1 -1
  30. package/dist/types/components/flip/flip.style.d.ts +1 -1
  31. package/dist/types/components/list/list.style.d.ts +2 -2
  32. package/dist/types/components/menu/menu.style.d.ts +2 -2
  33. package/dist/types/components/native-accordion/native-accordion.style.d.ts +2 -2
  34. package/dist/types/components/notice/notice.style.d.ts +1 -1
  35. package/dist/types/components/number-input/number-input.style.d.ts +1 -1
  36. package/dist/types/components/pagination/pagination.style.d.ts +1 -1
  37. package/dist/types/components/radio-card/radio-card.d.ts +3 -3
  38. package/dist/types/components/radio-card/radio-card.style.d.ts +1 -1
  39. package/dist/types/components/rating/rating.style.d.ts +2 -2
  40. package/dist/types/components/reorder/reorder.style.d.ts +1 -1
  41. package/dist/types/components/resizable/resizable.style.d.ts +2 -2
  42. package/dist/types/components/segmented-control/segmented-control.style.d.ts +2 -2
  43. package/dist/types/components/steps/steps.style.d.ts +1 -1
  44. package/dist/types/components/timeline/timeline.d.ts +1 -1
  45. package/dist/types/components/timeline/timeline.style.d.ts +1 -1
  46. package/dist/types/components/tree/tree.style.d.ts +1 -1
  47. package/dist/types/providers/i18n-provider/i18n-provider.d.ts +1 -1
  48. package/package.json +2 -2
@@ -55,10 +55,7 @@ const usePolarChart = ({ accessibilityLayer = true, barCategoryGap, barGap, barS
55
55
  };
56
56
  };
57
57
  const useChartPie = ({ activeShape, animationBegin, animationDuration, animationEasing, cornerRadius, cx, cy, data, dataKey: dataKeyProp, endAngle = -270, hide, inactiveShape, innerRadius = "0%", isAnimationActive = false, label, labelLine = false, legendType, maxRadius, minAngle, nameKey, outerRadius = !label ? "100%" : void 0, paddingAngle, rootTabIndex, shape, startAngle = 90, tooltipType, zIndex, onAnimationEnd, onAnimationStart, onClick, onMouseDown, onMouseEnter, onMouseLeave, onMouseMove, onMouseOut, onMouseOver, onMouseUp, ...rest } = {}) => {
58
- const getRootProps = useCallback((props) => ({
59
- ...rest,
60
- ...props
61
- }), [rest]);
58
+ const getRootProps = useCallback((props) => mergeProps(rest, props)(), [rest]);
62
59
  return {
63
60
  getPieProps: useCallback(({ dataKey = dataKeyProp, ...props } = {}) => ({
64
61
  activeShape,
@@ -146,10 +143,7 @@ const useChartPie = ({ activeShape, animationBegin, animationDuration, animation
146
143
  const useChartSector = ({ name: nameProp, cornerIsExternal, cornerRadius, cx, cy, endAngle, forceCornerRadius, innerRadius, outerRadius, startAngle, ...rest } = {}) => {
147
144
  const { highlightedDataKey } = useChartContext();
148
145
  return {
149
- getRootProps: useCallback((props) => ({
150
- ...rest,
151
- ...props
152
- }), [rest]),
146
+ getRootProps: useCallback((props) => mergeProps(rest, props)(), [rest]),
153
147
  getSectorProps: useCallback(({ name = nameProp, ...props } = {}) => ({
154
148
  name,
155
149
  "data-active": (0, utils_exports.dataAttr)(!(0, utils_exports.isUndefined)(highlightedDataKey) && highlightedDataKey === name),
@@ -186,10 +180,7 @@ const useChartPieLabel = ({ name: nameProp, cornerRadius, cx, cy, dataKey, endAn
186
180
  const x = cx + (middleRadius + offset) * Math.cos(-midAngle * radian);
187
181
  const y = cy + (middleRadius + offset) * Math.sin(-midAngle * radian);
188
182
  return {
189
- getRootProps: useCallback((props) => ({
190
- ...rest,
191
- ...props
192
- }), [rest]),
183
+ getRootProps: useCallback((props) => mergeProps(rest, props)(), [rest]),
193
184
  getTextProps: useCallback(({ name = nameProp, ...props } = {}) => ({
194
185
  name,
195
186
  "data-active": (0, utils_exports.dataAttr)(!(0, utils_exports.isUndefined)(highlightedDataKey) && highlightedDataKey === name),
@@ -247,10 +238,7 @@ const useChartPieLabel = ({ name: nameProp, cornerRadius, cx, cy, dataKey, endAn
247
238
  };
248
239
  const useChartPieLabelLine = ({ name: nameProp, cornerRadius, dataKey, endAngle, index, innerRadius, maxRadius, midAngle, middleRadius, outerRadius, paddingAngle, payload, percent, points, startAngle, tooltipPayload, tooltipPosition, value, ...rest }) => {
249
240
  const { highlightedDataKey } = useChartContext();
250
- const getRootProps = useCallback((props) => ({
251
- ...rest,
252
- ...props
253
- }), [rest]);
241
+ const getRootProps = useCallback((props) => mergeProps(rest, props)(), [rest]);
254
242
  return {
255
243
  getCurveProps: useCallback(({ name = nameProp, ...props } = {}) => ({
256
244
  name,
@@ -328,10 +316,7 @@ const useChartRadar = ({ activeDot: activeDotProp, angleAxisId, animationBegin,
328
316
  ...(0, utils_exports.isObject)(activeDotProp) ? activeDotProp : {}
329
317
  };
330
318
  }, [activeDotProp]);
331
- const getRootProps = useCallback((props) => ({
332
- ...rest,
333
- ...props
334
- }), [rest]);
319
+ const getRootProps = useCallback((props) => mergeProps(rest, props)(), [rest]);
335
320
  return {
336
321
  getRadarProps: useCallback(({ dataKey = dataKeyProp, ...props } = {}) => ({
337
322
  "data-active": (0, utils_exports.dataAttr)(!(0, utils_exports.isUndefined)(highlightedDataKey) && highlightedDataKey === dataKey),
@@ -424,10 +409,7 @@ const useAngleAxis = ({ type, name, allowDataOverflow, allowDecimals, allowDupli
424
409
  ...(0, utils_exports.isObject)(labelProp) ? labelProp : {}
425
410
  };
426
411
  }, [labelProp]);
427
- const getRootProps = useCallback((props) => ({
428
- ...rest,
429
- ...props
430
- }), [rest]);
412
+ const getRootProps = useCallback((props) => mergeProps(rest, props)(), [rest]);
431
413
  return {
432
414
  getAngleAxisProps: useCallback((props) => ({
433
415
  type,
@@ -543,10 +525,7 @@ const useRadiusAxis = ({ type, name, allowDataOverflow, allowDecimals, allowDupl
543
525
  ...(0, utils_exports.isObject)(labelProp) ? labelProp : {}
544
526
  };
545
527
  }, [labelProp]);
546
- const getRootProps = useCallback((props) => ({
547
- ...rest,
548
- ...props
549
- }), [rest]);
528
+ const getRootProps = useCallback((props) => mergeProps(rest, props)(), [rest]);
550
529
  return {
551
530
  getRadiusAxisProps: useCallback((props) => ({
552
531
  type,
@@ -622,10 +601,7 @@ const useRadiusAxis = ({ type, name, allowDataOverflow, allowDecimals, allowDupl
622
601
  };
623
602
  };
624
603
  const usePolarGrid = ({ angleAxisId, cx, cy, gridType, innerRadius, outerRadius, polarAngles, polarRadius, radialLines, radiusAxisId, zIndex, ...rest }) => {
625
- const getRootProps = useCallback((props) => ({
626
- ...rest,
627
- ...props
628
- }), [rest]);
604
+ const getRootProps = useCallback((props) => mergeProps(rest, props)(), [rest]);
629
605
  return {
630
606
  getPolarGridProps: useCallback((props) => ({
631
607
  angleAxisId,
@@ -676,10 +652,7 @@ const useChartRadial = ({ activeShape, angleAxisId, animationBegin, animationDur
676
652
  ...backgroundProp !== true ? backgroundProp : {}
677
653
  };
678
654
  }, [backgroundProp]);
679
- const getRootProps = useCallback((props) => ({
680
- ...rest,
681
- ...props
682
- }), [rest]);
655
+ const getRootProps = useCallback((props) => mergeProps(rest, props)(), [rest]);
683
656
  return {
684
657
  getRadialProps: useCallback((props) => ({
685
658
  activeShape,
@@ -1 +1 @@
1
- {"version":3,"file":"use-polar-chart.js","names":[],"sources":["../../../../src/components/chart/use-polar-chart.ts"],"sourcesContent":["\"use client\"\n\nimport type {\n CurveProps,\n PieLabelRenderProps,\n PieProps,\n PieSectorDataItem,\n PolarAngleAxisProps,\n PolarGridProps,\n PolarRadiusAxisProps,\n RadarProps,\n RadialBarProps,\n RenderableText,\n SectorProps,\n TextProps,\n} from \"recharts\"\nimport type { PolarChartProps } from \"recharts/types/util/types\"\nimport type { Dict, Merge } from \"../../utils\"\nimport { isValidElement, useCallback, useMemo } from \"react\"\nimport { type HTMLProps, mergeProps, type PropGetter } from \"../../core\"\nimport { dataAttr, isFunction, isObject, isUndefined } from \"../../utils\"\nimport { useChartContext } from \"./use-chart\"\n\nexport interface UsePolarChartProps<Y extends Dict>\n extends\n HTMLProps,\n Pick<\n PolarChartProps,\n | \"accessibilityLayer\"\n | \"barCategoryGap\"\n | \"barGap\"\n | \"barSize\"\n | \"cx\"\n | \"cy\"\n | \"endAngle\"\n | \"innerRadius\"\n | \"layout\"\n | \"maxBarSize\"\n | \"outerRadius\"\n | \"responsive\"\n | \"reverseStackOrder\"\n | \"stackOffset\"\n | \"startAngle\"\n | \"syncId\"\n | \"syncMethod\"\n > {\n /**\n * Chart data.\n */\n data?: Y[]\n}\n\nexport const usePolarChart = <Y extends Dict>({\n accessibilityLayer = true,\n barCategoryGap,\n barGap,\n barSize,\n cx,\n cy,\n data,\n endAngle,\n innerRadius,\n layout,\n maxBarSize,\n outerRadius,\n responsive,\n reverseStackOrder,\n stackOffset,\n startAngle,\n syncId,\n syncMethod,\n ...rest\n}: UsePolarChartProps<Y>) => {\n const getRootProps: PropGetter = useCallback(\n (props) => mergeProps(rest, props)(),\n [rest],\n )\n\n const getChartProps: PropGetter<PolarChartProps> = useCallback(\n (props) => ({\n accessibilityLayer,\n barCategoryGap,\n barGap,\n barSize,\n cx,\n cy,\n data,\n endAngle,\n innerRadius,\n layout,\n margin: { left: 16, right: 16 },\n maxBarSize,\n outerRadius,\n responsive,\n reverseStackOrder,\n stackOffset,\n startAngle,\n syncId,\n syncMethod,\n ...props,\n }),\n [\n accessibilityLayer,\n cx,\n cy,\n data,\n endAngle,\n innerRadius,\n layout,\n outerRadius,\n responsive,\n startAngle,\n syncId,\n syncMethod,\n barCategoryGap,\n barGap,\n barSize,\n maxBarSize,\n reverseStackOrder,\n stackOffset,\n ],\n )\n\n return {\n getChartProps,\n getRootProps,\n }\n}\n\nexport type UsePolarChartReturn<Y extends Dict> = ReturnType<\n typeof usePolarChart<Y>\n>\n\nexport interface UseChartPieProps extends Merge<\n HTMLProps<\"svg\">,\n Pick<\n PieProps,\n | \"activeShape\"\n | \"animationBegin\"\n | \"animationDuration\"\n | \"animationEasing\"\n | \"cornerRadius\"\n | \"cx\"\n | \"cy\"\n | \"data\"\n | \"dataKey\"\n | \"endAngle\"\n | \"hide\"\n | \"inactiveShape\"\n | \"innerRadius\"\n | \"isAnimationActive\"\n | \"label\"\n | \"labelLine\"\n | \"legendType\"\n | \"maxRadius\"\n | \"minAngle\"\n | \"nameKey\"\n | \"onAnimationEnd\"\n | \"onAnimationStart\"\n | \"onClick\"\n | \"onMouseDown\"\n | \"onMouseEnter\"\n | \"onMouseLeave\"\n | \"onMouseMove\"\n | \"onMouseOut\"\n | \"onMouseOver\"\n | \"onMouseUp\"\n | \"outerRadius\"\n | \"paddingAngle\"\n | \"rootTabIndex\"\n | \"shape\"\n | \"startAngle\"\n | \"tooltipType\"\n | \"zIndex\"\n >\n> {}\n\nexport const useChartPie = ({\n activeShape,\n animationBegin,\n animationDuration,\n animationEasing,\n cornerRadius,\n cx,\n cy,\n data,\n dataKey: dataKeyProp,\n endAngle = -270,\n hide,\n inactiveShape,\n innerRadius = \"0%\",\n isAnimationActive = false,\n label,\n labelLine = false,\n legendType,\n maxRadius,\n minAngle,\n nameKey,\n outerRadius = !label ? \"100%\" : undefined,\n paddingAngle,\n rootTabIndex,\n shape,\n startAngle = 90,\n tooltipType,\n zIndex,\n onAnimationEnd,\n onAnimationStart,\n onClick,\n onMouseDown,\n onMouseEnter,\n onMouseLeave,\n onMouseMove,\n onMouseOut,\n onMouseOver,\n onMouseUp,\n ...rest\n}: UseChartPieProps = {}) => {\n const getRootProps: PropGetter<\"svg\"> = useCallback(\n (props) => ({ ...rest, ...props }),\n [rest],\n )\n\n const getPieProps: PropGetter<PieProps> = useCallback(\n ({ dataKey = dataKeyProp, ...props } = {}) => ({\n activeShape,\n animationBegin,\n animationDuration,\n animationEasing,\n cornerRadius,\n cx,\n cy,\n data,\n dataKey,\n endAngle,\n fill: \"\",\n hide,\n inactiveShape,\n innerRadius,\n isAnimationActive,\n label,\n labelLine,\n legendType,\n maxRadius,\n minAngle,\n nameKey,\n outerRadius,\n paddingAngle,\n rootTabIndex,\n shape,\n startAngle,\n stroke: \"\",\n tooltipType,\n zIndex,\n onAnimationEnd,\n onAnimationStart,\n onClick,\n onMouseDown,\n onMouseEnter,\n onMouseLeave,\n onMouseMove,\n onMouseOut,\n onMouseOver,\n onMouseUp,\n ...props,\n }),\n [\n activeShape,\n animationBegin,\n animationDuration,\n animationEasing,\n cornerRadius,\n cx,\n cy,\n data,\n dataKeyProp,\n endAngle,\n hide,\n inactiveShape,\n innerRadius,\n isAnimationActive,\n label,\n labelLine,\n legendType,\n maxRadius,\n minAngle,\n nameKey,\n onAnimationEnd,\n onAnimationStart,\n onClick,\n onMouseDown,\n onMouseEnter,\n onMouseLeave,\n onMouseMove,\n onMouseOut,\n onMouseOver,\n onMouseUp,\n outerRadius,\n paddingAngle,\n rootTabIndex,\n shape,\n startAngle,\n tooltipType,\n zIndex,\n ],\n )\n\n return { getPieProps, getRootProps }\n}\n\nexport type UseChartPieReturn = ReturnType<typeof useChartPie>\n\nexport interface UseChartSectorProps extends Merge<\n HTMLProps<\"path\">,\n Pick<\n SectorProps,\n | \"cornerIsExternal\"\n | \"cornerRadius\"\n | \"cx\"\n | \"cy\"\n | \"endAngle\"\n | \"forceCornerRadius\"\n | \"innerRadius\"\n | \"outerRadius\"\n | \"startAngle\"\n >\n> {}\n\nexport const useChartSector = ({\n name: nameProp,\n cornerIsExternal,\n cornerRadius,\n cx,\n cy,\n endAngle,\n forceCornerRadius,\n innerRadius,\n outerRadius,\n startAngle,\n ...rest\n}: UseChartSectorProps = {}) => {\n const { highlightedDataKey } = useChartContext()\n\n const getRootProps: PropGetter<\"path\"> = useCallback(\n (props) => ({ ...rest, ...props }),\n [rest],\n )\n\n const getSectorProps: PropGetter<SectorProps> = useCallback(\n ({ name = nameProp, ...props } = {}) => ({\n name,\n \"data-active\": dataAttr(\n !isUndefined(highlightedDataKey) && highlightedDataKey === name,\n ),\n \"data-inactive\": dataAttr(\n !isUndefined(highlightedDataKey) && highlightedDataKey !== name,\n ),\n cornerIsExternal,\n cornerRadius,\n cx,\n cy,\n endAngle,\n forceCornerRadius,\n innerRadius,\n outerRadius,\n startAngle,\n ...props,\n }),\n [\n cornerIsExternal,\n cornerRadius,\n cx,\n cy,\n endAngle,\n forceCornerRadius,\n highlightedDataKey,\n innerRadius,\n nameProp,\n outerRadius,\n startAngle,\n ],\n )\n\n return { getRootProps, getSectorProps }\n}\n\nexport type UseChartSectorReturn = ReturnType<typeof useChartSector>\n\nexport interface UseChartPieLabelProps extends Merge<\n HTMLProps<\"text\">,\n Pick<\n PieLabelRenderProps,\n | \"cornerRadius\"\n | \"cx\"\n | \"cy\"\n | \"dataKey\"\n | \"endAngle\"\n | \"index\"\n | \"innerRadius\"\n | \"maxRadius\"\n | \"midAngle\"\n | \"middleRadius\"\n | \"name\"\n | \"outerRadius\"\n | \"paddingAngle\"\n | \"payload\"\n | \"percent\"\n | \"startAngle\"\n | \"textAnchor\"\n | \"tooltipPayload\"\n | \"tooltipPosition\"\n | \"value\"\n | \"x\"\n | \"y\"\n >\n> {\n /**\n * Offset for the label.\n *\n * @default 24\n */\n offset?: number\n /**\n * Formatter for the label.\n */\n formatter?: (value: number, percent: number) => RenderableText\n}\n\nexport const useChartPieLabel = ({\n name: nameProp,\n cornerRadius,\n cx,\n cy,\n dataKey,\n endAngle,\n formatter,\n index,\n innerRadius,\n maxRadius,\n midAngle = 0,\n middleRadius = 0,\n offset: offsetProp = 24,\n outerRadius,\n paddingAngle,\n payload,\n percent = 0,\n startAngle,\n textAnchor: _textAnchor,\n tooltipPayload,\n tooltipPosition,\n value,\n x: _x,\n y: _y,\n ...rest\n}: UseChartPieLabelProps) => {\n const { highlightedDataKey } = useChartContext()\n const offset = (outerRadius - innerRadius) * 0.5 + offsetProp\n const radian = Math.PI / 180\n const x = cx + (middleRadius + offset) * Math.cos(-midAngle * radian)\n const y = cy + (middleRadius + offset) * Math.sin(-midAngle * radian)\n\n const getRootProps: PropGetter<\"text\"> = useCallback(\n (props) => ({ ...rest, ...props }),\n [rest],\n )\n\n const getTextProps: PropGetter<TextProps> = useCallback(\n ({ name = nameProp, ...props } = {}) => ({\n name,\n \"data-active\": dataAttr(\n !isUndefined(highlightedDataKey) && highlightedDataKey === name,\n ),\n \"data-inactive\": dataAttr(\n !isUndefined(highlightedDataKey) && highlightedDataKey !== name,\n ),\n alignmentBaseline: \"middle\",\n children: formatter?.(value, percent) ?? value,\n cornerRadius,\n cx,\n cy,\n dataKey,\n endAngle,\n index,\n innerRadius,\n maxRadius,\n midAngle,\n middleRadius,\n outerRadius,\n paddingAngle,\n payload,\n percent,\n startAngle,\n textAnchor: x > cx ? \"start\" : x < cx ? \"end\" : \"middle\",\n tooltipPayload,\n tooltipPosition,\n value,\n x,\n y,\n ...props,\n }),\n [\n cornerRadius,\n cx,\n cy,\n dataKey,\n endAngle,\n formatter,\n highlightedDataKey,\n index,\n innerRadius,\n maxRadius,\n midAngle,\n middleRadius,\n nameProp,\n outerRadius,\n paddingAngle,\n payload,\n percent,\n startAngle,\n tooltipPayload,\n tooltipPosition,\n value,\n x,\n y,\n ],\n )\n\n return { getRootProps, getTextProps }\n}\n\nexport type UseChartPieLabelReturn = ReturnType<typeof useChartPieLabel>\n\nexport interface UseChartPieLabelLineProps\n extends\n Merge<\n Omit<HTMLProps<\"path\">, \"points\">,\n Pick<\n PieSectorDataItem,\n | \"cornerRadius\"\n | \"dataKey\"\n | \"endAngle\"\n | \"innerRadius\"\n | \"maxRadius\"\n | \"midAngle\"\n | \"middleRadius\"\n | \"name\"\n | \"outerRadius\"\n | \"paddingAngle\"\n | \"payload\"\n | \"percent\"\n | \"startAngle\"\n | \"tooltipPayload\"\n | \"tooltipPosition\"\n | \"value\"\n >\n >,\n Pick<CurveProps, \"points\"> {\n index?: number\n}\n\nexport const useChartPieLabelLine = ({\n name: nameProp,\n cornerRadius,\n dataKey,\n endAngle,\n index,\n innerRadius,\n maxRadius,\n midAngle,\n middleRadius,\n outerRadius,\n paddingAngle,\n payload,\n percent,\n points,\n startAngle,\n tooltipPayload,\n tooltipPosition,\n value,\n ...rest\n}: UseChartPieLabelLineProps) => {\n const { highlightedDataKey } = useChartContext()\n\n const getRootProps: PropGetter<\"path\"> = useCallback(\n (props) => ({ ...rest, ...props }),\n [rest],\n )\n\n const getCurveProps: PropGetter<CurveProps> = useCallback(\n ({ name = nameProp, ...props } = {}) => ({\n name,\n \"data-active\": dataAttr(\n !isUndefined(highlightedDataKey) && highlightedDataKey === name,\n ),\n \"data-inactive\": dataAttr(\n !isUndefined(highlightedDataKey) && highlightedDataKey !== name,\n ),\n cornerRadius,\n dataKey,\n endAngle,\n index,\n innerRadius,\n maxRadius,\n midAngle,\n middleRadius,\n outerRadius,\n paddingAngle,\n payload,\n percent,\n points,\n startAngle,\n tooltipPayload,\n tooltipPosition,\n value,\n ...props,\n }),\n [\n highlightedDataKey,\n nameProp,\n cornerRadius,\n dataKey,\n endAngle,\n index,\n innerRadius,\n maxRadius,\n midAngle,\n middleRadius,\n outerRadius,\n paddingAngle,\n payload,\n percent,\n points,\n startAngle,\n tooltipPayload,\n tooltipPosition,\n value,\n ],\n )\n\n return { getCurveProps, getRootProps }\n}\n\nexport type UseChartPieLabelLineReturn = ReturnType<typeof useChartPieLabelLine>\n\nexport interface UseChartRadarProps extends Merge<\n HTMLProps<\"path\">,\n Pick<\n RadarProps,\n | \"activeDot\"\n | \"angleAxisId\"\n | \"animationBegin\"\n | \"animationDuration\"\n | \"animationEasing\"\n | \"baseLinePoints\"\n | \"connectNulls\"\n | \"dataKey\"\n | \"dot\"\n | \"hide\"\n | \"isAnimationActive\"\n | \"isRange\"\n | \"label\"\n | \"legendType\"\n | \"onAnimationEnd\"\n | \"onAnimationStart\"\n | \"onMouseEnter\"\n | \"onMouseLeave\"\n | \"radiusAxisId\"\n | \"shape\"\n | \"stroke\"\n | \"tooltipType\"\n | \"zIndex\"\n >\n> {}\n\nexport const useChartRadar = ({\n activeDot: activeDotProp,\n angleAxisId,\n animationBegin,\n animationDuration,\n animationEasing,\n baseLinePoints,\n connectNulls,\n dataKey: dataKeyProp,\n dot: dotProp,\n hide,\n isAnimationActive = false,\n isRange,\n label: labelProp,\n legendType,\n points,\n radiusAxisId,\n shape,\n stroke,\n tooltipType,\n zIndex,\n onAnimationEnd,\n onAnimationStart,\n onMouseEnter,\n onMouseLeave,\n ...rest\n}: UseChartRadarProps) => {\n const { highlightedDataKey } = useChartContext()\n const label = useMemo<UseChartRadarProps[\"label\"]>(() => {\n if (!labelProp) return labelProp\n if (isFunction(labelProp) || isValidElement(labelProp)) return labelProp\n\n return {\n fill: \"\",\n offset: 12,\n position: \"top\",\n ...(isObject(labelProp) ? labelProp : {}),\n }\n }, [labelProp])\n const dot = useMemo<UseChartRadarProps[\"dot\"]>(() => {\n if (!dotProp) return dotProp\n if (isFunction(dotProp) || isValidElement(dotProp)) return dotProp\n\n return { fill: \"\", stroke: \"\", ...(isObject(dotProp) ? dotProp : {}) }\n }, [dotProp])\n const activeDot = useMemo<UseChartRadarProps[\"activeDot\"]>(() => {\n if (!activeDotProp) return activeDotProp\n if (isFunction(activeDotProp) || isValidElement(activeDotProp))\n return activeDotProp\n\n return {\n fill: \"\",\n stroke: \"\",\n ...(isObject(activeDotProp) ? activeDotProp : {}),\n }\n }, [activeDotProp])\n\n const getRootProps: PropGetter<\"path\"> = useCallback(\n (props) => ({ ...rest, ...props }),\n [rest],\n )\n\n const getRadarProps: PropGetter<RadarProps> = useCallback(\n ({ dataKey = dataKeyProp, ...props } = {}) => ({\n \"data-active\": dataAttr(\n !isUndefined(highlightedDataKey) && highlightedDataKey === dataKey,\n ),\n \"data-inactive\": dataAttr(\n !isUndefined(highlightedDataKey) && highlightedDataKey !== dataKey,\n ),\n activeDot,\n angleAxisId,\n animationBegin,\n animationDuration,\n animationEasing,\n baseLinePoints,\n connectNulls,\n dataKey,\n dot,\n hide,\n isAnimationActive,\n isRange,\n label,\n legendType,\n points,\n radiusAxisId,\n shape,\n stroke,\n tooltipType,\n zIndex,\n onAnimationEnd,\n onAnimationStart,\n onMouseEnter,\n onMouseLeave,\n ...props,\n }),\n [\n dataKeyProp,\n highlightedDataKey,\n activeDot,\n angleAxisId,\n animationBegin,\n animationDuration,\n animationEasing,\n baseLinePoints,\n connectNulls,\n dot,\n hide,\n isAnimationActive,\n isRange,\n label,\n legendType,\n points,\n radiusAxisId,\n stroke,\n shape,\n tooltipType,\n zIndex,\n onAnimationEnd,\n onAnimationStart,\n onMouseEnter,\n onMouseLeave,\n ],\n )\n\n return { getRadarProps, getRootProps }\n}\n\nexport type UseChartRadarReturn = ReturnType<typeof useChartRadar>\n\nexport interface UseAngleAxisProps extends Merge<\n HTMLProps<\"text\">,\n Pick<\n PolarAngleAxisProps,\n | \"allowDataOverflow\"\n | \"allowDecimals\"\n | \"allowDuplicatedCategory\"\n | \"angle\"\n | \"angleAxisId\"\n | \"axisLine\"\n | \"axisLineType\"\n | \"cx\"\n | \"cy\"\n | \"dataKey\"\n | \"domain\"\n | \"hide\"\n | \"includeHidden\"\n | \"label\"\n | \"name\"\n | \"onClick\"\n | \"onMouseDown\"\n | \"onMouseEnter\"\n | \"onMouseLeave\"\n | \"onMouseMove\"\n | \"onMouseOut\"\n | \"onMouseOver\"\n | \"onMouseUp\"\n | \"orientation\"\n | \"radius\"\n | \"range\"\n | \"reversed\"\n | \"scale\"\n | \"tick\"\n | \"tickCount\"\n | \"tickFormatter\"\n | \"tickLine\"\n | \"ticks\"\n | \"tickSize\"\n | \"type\"\n | \"unit\"\n | \"zIndex\"\n >\n> {}\n\nexport const useAngleAxis = ({\n type,\n name,\n allowDataOverflow,\n allowDecimals,\n allowDuplicatedCategory,\n angle,\n angleAxisId,\n axisLine: axisLineProp,\n axisLineType,\n cx,\n cy,\n dataKey,\n domain,\n hide,\n includeHidden,\n label: labelProp,\n orientation,\n radius,\n range,\n reversed,\n scale,\n tick: tickProp,\n tickCount,\n tickFormatter,\n tickLine: tickLineProp,\n ticks,\n tickSize,\n unit,\n zIndex,\n onClick,\n onMouseDown,\n onMouseEnter,\n onMouseLeave,\n onMouseMove,\n onMouseOut,\n onMouseOver,\n onMouseUp,\n ...rest\n}: UseAngleAxisProps) => {\n const tick = useMemo<UseAngleAxisProps[\"tick\"]>(() => {\n if (!tickProp) return tickProp\n if (isFunction(tickProp) || isValidElement(tickProp)) return tickProp\n\n return { fill: \"\", ...(isObject(tickProp) ? tickProp : {}) }\n }, [tickProp])\n const tickLine = useMemo<UseAngleAxisProps[\"tickLine\"]>(() => {\n if (!tickLineProp) return tickLineProp\n\n return {\n fill: \"\",\n stroke: \"\",\n ...(isObject(tickLineProp) ? tickLineProp : {}),\n }\n }, [tickLineProp])\n const axisLine = useMemo<UseAngleAxisProps[\"axisLine\"]>(() => {\n if (!axisLineProp) return axisLineProp\n\n return {\n fill: \"\",\n stroke: \"\",\n ...(isObject(axisLineProp) ? axisLineProp : {}),\n }\n }, [axisLineProp])\n const label = useMemo<UseAngleAxisProps[\"label\"]>(() => {\n if (!labelProp) return labelProp\n if (isFunction(labelProp) || isValidElement(labelProp)) return labelProp\n\n return {\n fill: \"\",\n ...(isObject(labelProp) ? labelProp : {}),\n }\n }, [labelProp])\n\n const getRootProps: PropGetter<\"text\"> = useCallback(\n (props) => ({ ...rest, ...props }),\n [rest],\n )\n\n const getAngleAxisProps: PropGetter<PolarAngleAxisProps> = useCallback(\n (props) => ({\n type,\n name,\n allowDataOverflow,\n allowDecimals,\n allowDuplicatedCategory,\n angle,\n angleAxisId,\n axisLine,\n axisLineType,\n cx,\n cy,\n dataKey,\n domain,\n hide,\n includeHidden,\n label,\n orientation,\n radius,\n range,\n reversed,\n scale,\n tick,\n tickCount,\n tickFormatter,\n tickLine,\n ticks,\n tickSize,\n unit,\n zIndex,\n onClick,\n onMouseDown,\n onMouseEnter,\n onMouseLeave,\n onMouseMove,\n onMouseOut,\n onMouseOver,\n onMouseUp,\n ...props,\n }),\n [\n allowDataOverflow,\n allowDecimals,\n allowDuplicatedCategory,\n angle,\n angleAxisId,\n axisLine,\n axisLineType,\n cx,\n cy,\n dataKey,\n domain,\n hide,\n includeHidden,\n label,\n name,\n onClick,\n onMouseDown,\n onMouseEnter,\n onMouseLeave,\n onMouseMove,\n onMouseOut,\n onMouseOver,\n onMouseUp,\n orientation,\n radius,\n range,\n reversed,\n scale,\n tick,\n tickCount,\n tickFormatter,\n tickLine,\n ticks,\n tickSize,\n type,\n unit,\n zIndex,\n ],\n )\n\n return { getAngleAxisProps, getRootProps }\n}\n\nexport type UseAngleAxisReturn = ReturnType<typeof useAngleAxis>\n\nexport interface UseRadiusAxisProps extends Merge<\n HTMLProps<\"text\">,\n Pick<\n PolarRadiusAxisProps,\n | \"allowDataOverflow\"\n | \"allowDecimals\"\n | \"allowDuplicatedCategory\"\n | \"angle\"\n | \"axisLine\"\n | \"dataKey\"\n | \"domain\"\n | \"hide\"\n | \"includeHidden\"\n | \"label\"\n | \"name\"\n | \"onClick\"\n | \"onMouseDown\"\n | \"onMouseEnter\"\n | \"onMouseLeave\"\n | \"onMouseMove\"\n | \"onMouseOut\"\n | \"onMouseOver\"\n | \"onMouseUp\"\n | \"orientation\"\n | \"radius\"\n | \"radiusAxisId\"\n | \"range\"\n | \"reversed\"\n | \"scale\"\n | \"tick\"\n | \"tickCount\"\n | \"tickFormatter\"\n | \"tickLine\"\n | \"type\"\n | \"unit\"\n | \"zIndex\"\n >\n> {\n /**\n * The ticks to use for the axis.\n */\n ticks?: number[]\n}\n\nexport const useRadiusAxis = ({\n type,\n name,\n allowDataOverflow,\n allowDecimals,\n allowDuplicatedCategory,\n angle = 90,\n axisLine: axisLineProp = true,\n dataKey,\n domain,\n hide,\n includeHidden,\n label: labelProp,\n orientation,\n radius,\n radiusAxisId,\n range,\n reversed,\n scale,\n tick: tickProp,\n tickCount,\n tickFormatter,\n tickLine: tickLineProp,\n ticks,\n unit,\n zIndex,\n onClick,\n onMouseDown,\n onMouseEnter,\n onMouseLeave,\n onMouseMove,\n onMouseOut,\n onMouseOver,\n onMouseUp,\n ...rest\n}: UseRadiusAxisProps) => {\n const tick = useMemo<UseRadiusAxisProps[\"tick\"]>(() => {\n if (!tickProp) return tickProp\n if (isFunction(tickProp) || isValidElement(tickProp)) return tickProp\n\n return {\n fill: \"\",\n ...(isObject(tickProp) ? tickProp : {}),\n }\n }, [tickProp])\n const tickLine = useMemo<UseRadiusAxisProps[\"tickLine\"]>(() => {\n if (!tickLineProp) return tickLineProp\n\n return {\n fill: \"\",\n stroke: \"\",\n ...(isObject(tickLineProp) ? tickLineProp : {}),\n }\n }, [tickLineProp])\n const axisLine = useMemo<UseRadiusAxisProps[\"axisLine\"]>(() => {\n if (!axisLineProp) return axisLineProp\n\n return {\n fill: \"\",\n stroke: \"\",\n ...(isObject(axisLineProp) ? axisLineProp : {}),\n }\n }, [axisLineProp])\n const label = useMemo<UseRadiusAxisProps[\"label\"]>(() => {\n if (!labelProp) return labelProp\n if (isFunction(labelProp) || isValidElement(labelProp)) return labelProp\n\n return {\n fill: \"\",\n ...(isObject(labelProp) ? labelProp : {}),\n }\n }, [labelProp])\n\n const getRootProps: PropGetter<\"text\"> = useCallback(\n (props) => ({ ...rest, ...props }),\n [rest],\n )\n\n const getRadiusAxisProps: PropGetter<PolarRadiusAxisProps> = useCallback(\n (props) => ({\n type,\n name,\n allowDataOverflow,\n allowDecimals,\n allowDuplicatedCategory,\n angle,\n axisLine,\n dataKey,\n domain,\n hide,\n includeHidden,\n label,\n orientation,\n radius,\n radiusAxisId,\n range,\n reversed,\n scale,\n tick,\n tickCount,\n tickFormatter,\n tickLine,\n ticks,\n unit,\n zIndex,\n onClick,\n onMouseDown,\n onMouseEnter,\n onMouseLeave,\n onMouseMove,\n onMouseOut,\n onMouseOver,\n onMouseUp,\n ...props,\n }),\n [\n type,\n name,\n allowDataOverflow,\n allowDecimals,\n allowDuplicatedCategory,\n angle,\n axisLine,\n dataKey,\n domain,\n hide,\n includeHidden,\n label,\n orientation,\n radius,\n radiusAxisId,\n range,\n reversed,\n scale,\n tick,\n tickCount,\n tickFormatter,\n tickLine,\n ticks,\n unit,\n zIndex,\n onClick,\n onMouseDown,\n onMouseEnter,\n onMouseLeave,\n onMouseMove,\n onMouseOut,\n onMouseOver,\n onMouseUp,\n ],\n )\n\n return { getRadiusAxisProps, getRootProps }\n}\n\nexport type UseRadiusAxisReturn = ReturnType<typeof useRadiusAxis>\n\nexport interface UsePolarGridProps extends Merge<\n HTMLProps<\"line\">,\n Pick<\n PolarGridProps,\n | \"angleAxisId\"\n | \"cx\"\n | \"cy\"\n | \"gridType\"\n | \"innerRadius\"\n | \"outerRadius\"\n | \"polarAngles\"\n | \"polarRadius\"\n | \"radialLines\"\n | \"radiusAxisId\"\n | \"zIndex\"\n >\n> {}\n\nexport const usePolarGrid = ({\n angleAxisId,\n cx,\n cy,\n gridType,\n innerRadius,\n outerRadius,\n polarAngles,\n polarRadius,\n radialLines,\n radiusAxisId,\n zIndex,\n ...rest\n}: UsePolarGridProps) => {\n const getRootProps: PropGetter<\"line\"> = useCallback(\n (props) => ({ ...rest, ...props }),\n [rest],\n )\n\n const getPolarGridProps: PropGetter<PolarGridProps> = useCallback(\n (props) => ({\n angleAxisId,\n cx,\n cy,\n gridType,\n innerRadius,\n outerRadius,\n polarAngles,\n polarRadius,\n radialLines,\n radiusAxisId,\n zIndex,\n ...props,\n }),\n [\n angleAxisId,\n cx,\n cy,\n gridType,\n innerRadius,\n outerRadius,\n polarAngles,\n polarRadius,\n radialLines,\n radiusAxisId,\n zIndex,\n ],\n )\n\n return { getPolarGridProps, getRootProps }\n}\n\nexport type UsePolarGridReturn = ReturnType<typeof usePolarGrid>\n\nexport interface UseChartRadialProps<Y extends Dict = Dict> extends Merge<\n HTMLProps<\"svg\">,\n Pick<\n RadialBarProps,\n | \"activeShape\"\n | \"angleAxisId\"\n | \"animationBegin\"\n | \"animationDuration\"\n | \"animationEasing\"\n | \"background\"\n | \"barSize\"\n | \"cornerIsExternal\"\n | \"cornerRadius\"\n | \"dataKey\"\n | \"forceCornerRadius\"\n | \"hide\"\n | \"isAnimationActive\"\n | \"label\"\n | \"legendType\"\n | \"maxBarSize\"\n | \"onAnimationEnd\"\n | \"onAnimationStart\"\n | \"onClick\"\n | \"onMouseDown\"\n | \"onMouseEnter\"\n | \"onMouseLeave\"\n | \"onMouseMove\"\n | \"onMouseOut\"\n | \"onMouseOver\"\n | \"onMouseUp\"\n | \"radius\"\n | \"radiusAxisId\"\n | \"shape\"\n | \"stackId\"\n | \"tooltipType\"\n | \"zIndex\"\n >\n> {\n /**\n * The key to use for the name.\n */\n nameKey: keyof Y\n}\n\nexport const useChartRadial = <Y extends Dict>({\n activeShape,\n angleAxisId,\n animationBegin,\n animationDuration,\n animationEasing,\n background: backgroundProp,\n barSize,\n cornerIsExternal,\n stackId,\n cornerRadius = !stackId ? 4 : undefined,\n dataKey,\n forceCornerRadius,\n hide,\n isAnimationActive = false,\n label,\n legendType,\n maxBarSize,\n nameKey,\n radius,\n radiusAxisId,\n shape: shapeProp,\n tooltipType,\n zIndex,\n onAnimationEnd,\n onAnimationStart,\n onClick,\n onMouseDown,\n onMouseEnter,\n onMouseLeave,\n onMouseMove,\n onMouseOut,\n onMouseOver,\n onMouseUp,\n ...rest\n}: UseChartRadialProps<Y>) => {\n const shape = useMemo<UseChartRadialProps<Y>[\"shape\"]>(() => {\n if (isFunction(shapeProp)) {\n return (props: any) => {\n props.className = props.className?.replace(/\\s*\\bundefined\\b/g, \"\")\n\n const name = props.payload?.[nameKey]\n\n return shapeProp({ name, ...props })\n }\n } else {\n return shapeProp\n }\n }, [nameKey, shapeProp])\n const background = useMemo<UseChartRadialProps<Y>[\"background\"]>(() => {\n if (!backgroundProp) return backgroundProp\n if (isFunction(backgroundProp) || isValidElement(backgroundProp))\n return backgroundProp\n\n return {\n fill: \"\",\n ...(backgroundProp !== true ? backgroundProp : {}),\n }\n }, [backgroundProp])\n\n const getRootProps: PropGetter<\"svg\"> = useCallback(\n (props) => ({ ...rest, ...props }),\n [rest],\n )\n\n const getRadialProps: PropGetter<\n Partial<RadialBarProps>,\n undefined,\n RadialBarProps\n > = useCallback(\n (props) => ({\n activeShape,\n angleAxisId,\n animationBegin,\n animationDuration,\n animationEasing,\n background,\n barSize,\n cornerIsExternal,\n cornerRadius,\n dataKey,\n forceCornerRadius,\n hide,\n isAnimationActive,\n label,\n legendType,\n maxBarSize,\n radius,\n radiusAxisId,\n shape,\n stackId,\n tooltipType,\n zIndex,\n onAnimationEnd,\n onAnimationStart,\n onClick,\n onMouseDown,\n onMouseEnter,\n onMouseLeave,\n onMouseMove,\n onMouseOut,\n onMouseOver,\n onMouseUp,\n ...props,\n }),\n [\n activeShape,\n angleAxisId,\n animationBegin,\n animationDuration,\n animationEasing,\n background,\n barSize,\n cornerIsExternal,\n cornerRadius,\n dataKey,\n forceCornerRadius,\n hide,\n isAnimationActive,\n label,\n legendType,\n maxBarSize,\n onAnimationEnd,\n onAnimationStart,\n onClick,\n onMouseDown,\n onMouseEnter,\n onMouseLeave,\n onMouseMove,\n onMouseOut,\n onMouseOver,\n onMouseUp,\n radius,\n radiusAxisId,\n shape,\n stackId,\n tooltipType,\n zIndex,\n ],\n )\n\n return { getRadialProps, getRootProps }\n}\n\nexport type UseChartRadialReturn = ReturnType<typeof useChartRadial>\n"],"mappings":";;;;;;AAoDA,MAAa,iBAAiC,EAC5C,qBAAqB,MACrB,gBACA,QACA,SACA,IACA,IACA,MACA,UACA,aACA,QACA,YACA,aACA,YACA,mBACA,aACA,YACA,QACA,YACA,GAAG,WACwB;CAC3B,MAAM,eAA2B,aAC9B,UAAU,WAAW,MAAM,MAAM,EAAE,EACpC,CAAC,KAAK,CACP;CA+CD,OAAO;EACL,eA9CiD,aAChD,WAAW;GACV;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA,QAAQ;IAAE,MAAM;IAAI,OAAO;IAAI;GAC/B;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA,GAAG;GACJ,GACD;GACE;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACD,CAIY;EACb;EACD;;AAmDH,MAAa,eAAe,EAC1B,aACA,gBACA,mBACA,iBACA,cACA,IACA,IACA,MACA,SAAS,aACT,WAAW,MACX,MACA,eACA,cAAc,MACd,oBAAoB,OACpB,OACA,YAAY,OACZ,YACA,WACA,UACA,SACA,cAAc,CAAC,QAAQ,SAAS,KAAA,GAChC,cACA,cACA,OACA,aAAa,IACb,aACA,QACA,gBACA,kBACA,SACA,aACA,cACA,cACA,aACA,YACA,aACA,WACA,GAAG,SACiB,EAAE,KAAK;CAC3B,MAAM,eAAkC,aACrC,WAAW;EAAE,GAAG;EAAM,GAAG;EAAO,GACjC,CAAC,KAAK,CACP;CAsFD,OAAO;EAAE,aApFiC,aACvC,EAAE,UAAU,aAAa,GAAG,UAAU,EAAE,MAAM;GAC7C;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA,MAAM;GACN;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA,QAAQ;GACR;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA,GAAG;GACJ,GACD;GACE;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACD,CAGiB;EAAE;EAAc;;AAqBtC,MAAa,kBAAkB,EAC7B,MAAM,UACN,kBACA,cACA,IACA,IACA,UACA,mBACA,aACA,aACA,YACA,GAAG,SACoB,EAAE,KAAK;CAC9B,MAAM,EAAE,uBAAuB,iBAAiB;CA0ChD,OAAO;EAAE,cAxCgC,aACtC,WAAW;GAAE,GAAG;GAAM,GAAG;GAAO,GACjC,CAAC,KAAK,CAsCa;EAAE,gBAnCyB,aAC7C,EAAE,OAAO,UAAU,GAAG,UAAU,EAAE,MAAM;GACvC;GACA,gBAAA,GAAA,cAAA,UACE,EAAA,GAAA,cAAA,aAAa,mBAAmB,IAAI,uBAAuB,KAC5D;GACD,kBAAA,GAAA,cAAA,UACE,EAAA,GAAA,cAAA,aAAa,mBAAmB,IAAI,uBAAuB,KAC5D;GACD;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA,GAAG;GACJ,GACD;GACE;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACD,CAGkC;EAAE;;AA6CzC,MAAa,oBAAoB,EAC/B,MAAM,UACN,cACA,IACA,IACA,SACA,UACA,WACA,OACA,aACA,WACA,WAAW,GACX,eAAe,GACf,QAAQ,aAAa,IACrB,aACA,cACA,SACA,UAAU,GACV,YACA,YAAY,aACZ,gBACA,iBACA,OACA,GAAG,IACH,GAAG,IACH,GAAG,WACwB;CAC3B,MAAM,EAAE,uBAAuB,iBAAiB;CAChD,MAAM,UAAU,cAAc,eAAe,KAAM;CACnD,MAAM,SAAS,KAAK,KAAK;CACzB,MAAM,IAAI,MAAM,eAAe,UAAU,KAAK,IAAI,CAAC,WAAW,OAAO;CACrE,MAAM,IAAI,MAAM,eAAe,UAAU,KAAK,IAAI,CAAC,WAAW,OAAO;CAoErE,OAAO;EAAE,cAlEgC,aACtC,WAAW;GAAE,GAAG;GAAM,GAAG;GAAO,GACjC,CAAC,KAAK,CAgEa;EAAE,cA7DqB,aACzC,EAAE,OAAO,UAAU,GAAG,UAAU,EAAE,MAAM;GACvC;GACA,gBAAA,GAAA,cAAA,UACE,EAAA,GAAA,cAAA,aAAa,mBAAmB,IAAI,uBAAuB,KAC5D;GACD,kBAAA,GAAA,cAAA,UACE,EAAA,GAAA,cAAA,aAAa,mBAAmB,IAAI,uBAAuB,KAC5D;GACD,mBAAmB;GACnB,UAAU,YAAY,OAAO,QAAQ,IAAI;GACzC;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA,YAAY,IAAI,KAAK,UAAU,IAAI,KAAK,QAAQ;GAChD;GACA;GACA;GACA;GACA;GACA,GAAG;GACJ,GACD;GACE;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACD,CAGgC;EAAE;;AAiCvC,MAAa,wBAAwB,EACnC,MAAM,UACN,cACA,SACA,UACA,OACA,aACA,WACA,UACA,cACA,aACA,cACA,SACA,SACA,QACA,YACA,gBACA,iBACA,OACA,GAAG,WAC4B;CAC/B,MAAM,EAAE,uBAAuB,iBAAiB;CAEhD,MAAM,eAAmC,aACtC,WAAW;EAAE,GAAG;EAAM,GAAG;EAAO,GACjC,CAAC,KAAK,CACP;CAqDD,OAAO;EAAE,eAnDqC,aAC3C,EAAE,OAAO,UAAU,GAAG,UAAU,EAAE,MAAM;GACvC;GACA,gBAAA,GAAA,cAAA,UACE,EAAA,GAAA,cAAA,aAAa,mBAAmB,IAAI,uBAAuB,KAC5D;GACD,kBAAA,GAAA,cAAA,UACE,EAAA,GAAA,cAAA,aAAa,mBAAmB,IAAI,uBAAuB,KAC5D;GACD;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA,GAAG;GACJ,GACD;GACE;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACD,CAGmB;EAAE;EAAc;;AAmCxC,MAAa,iBAAiB,EAC5B,WAAW,eACX,aACA,gBACA,mBACA,iBACA,gBACA,cACA,SAAS,aACT,KAAK,SACL,MACA,oBAAoB,OACpB,SACA,OAAO,WACP,YACA,QACA,cACA,OACA,QACA,aACA,QACA,gBACA,kBACA,cACA,cACA,GAAG,WACqB;CACxB,MAAM,EAAE,uBAAuB,iBAAiB;CAChD,MAAM,QAAQ,cAA2C;EACvD,IAAI,CAAC,WAAW,OAAO;EACvB,KAAA,GAAA,cAAA,YAAe,UAAU,IAAI,eAAe,UAAU,EAAE,OAAO;EAE/D,OAAO;GACL,MAAM;GACN,QAAQ;GACR,UAAU;GACV,IAAA,GAAA,cAAA,UAAa,UAAU,GAAG,YAAY,EAAE;GACzC;IACA,CAAC,UAAU,CAAC;CACf,MAAM,MAAM,cAAyC;EACnD,IAAI,CAAC,SAAS,OAAO;EACrB,KAAA,GAAA,cAAA,YAAe,QAAQ,IAAI,eAAe,QAAQ,EAAE,OAAO;EAE3D,OAAO;GAAE,MAAM;GAAI,QAAQ;GAAI,IAAA,GAAA,cAAA,UAAa,QAAQ,GAAG,UAAU,EAAE;GAAG;IACrE,CAAC,QAAQ,CAAC;CACb,MAAM,YAAY,cAA+C;EAC/D,IAAI,CAAC,eAAe,OAAO;EAC3B,KAAA,GAAA,cAAA,YAAe,cAAc,IAAI,eAAe,cAAc,EAC5D,OAAO;EAET,OAAO;GACL,MAAM;GACN,QAAQ;GACR,IAAA,GAAA,cAAA,UAAa,cAAc,GAAG,gBAAgB,EAAE;GACjD;IACA,CAAC,cAAc,CAAC;CAEnB,MAAM,eAAmC,aACtC,WAAW;EAAE,GAAG;EAAM,GAAG;EAAO,GACjC,CAAC,KAAK,CACP;CAiED,OAAO;EAAE,eA/DqC,aAC3C,EAAE,UAAU,aAAa,GAAG,UAAU,EAAE,MAAM;GAC7C,gBAAA,GAAA,cAAA,UACE,EAAA,GAAA,cAAA,aAAa,mBAAmB,IAAI,uBAAuB,QAC5D;GACD,kBAAA,GAAA,cAAA,UACE,EAAA,GAAA,cAAA,aAAa,mBAAmB,IAAI,uBAAuB,QAC5D;GACD;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA,GAAG;GACJ,GACD;GACE;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACD,CAGmB;EAAE;EAAc;;AAiDxC,MAAa,gBAAgB,EAC3B,MACA,MACA,mBACA,eACA,yBACA,OACA,aACA,UAAU,cACV,cACA,IACA,IACA,SACA,QACA,MACA,eACA,OAAO,WACP,aACA,QACA,OACA,UACA,OACA,MAAM,UACN,WACA,eACA,UAAU,cACV,OACA,UACA,MACA,QACA,SACA,aACA,cACA,cACA,aACA,YACA,aACA,WACA,GAAG,WACoB;CACvB,MAAM,OAAO,cAAyC;EACpD,IAAI,CAAC,UAAU,OAAO;EACtB,KAAA,GAAA,cAAA,YAAe,SAAS,IAAI,eAAe,SAAS,EAAE,OAAO;EAE7D,OAAO;GAAE,MAAM;GAAI,IAAA,GAAA,cAAA,UAAa,SAAS,GAAG,WAAW,EAAE;GAAG;IAC3D,CAAC,SAAS,CAAC;CACd,MAAM,WAAW,cAA6C;EAC5D,IAAI,CAAC,cAAc,OAAO;EAE1B,OAAO;GACL,MAAM;GACN,QAAQ;GACR,IAAA,GAAA,cAAA,UAAa,aAAa,GAAG,eAAe,EAAE;GAC/C;IACA,CAAC,aAAa,CAAC;CAClB,MAAM,WAAW,cAA6C;EAC5D,IAAI,CAAC,cAAc,OAAO;EAE1B,OAAO;GACL,MAAM;GACN,QAAQ;GACR,IAAA,GAAA,cAAA,UAAa,aAAa,GAAG,eAAe,EAAE;GAC/C;IACA,CAAC,aAAa,CAAC;CAClB,MAAM,QAAQ,cAA0C;EACtD,IAAI,CAAC,WAAW,OAAO;EACvB,KAAA,GAAA,cAAA,YAAe,UAAU,IAAI,eAAe,UAAU,EAAE,OAAO;EAE/D,OAAO;GACL,MAAM;GACN,IAAA,GAAA,cAAA,UAAa,UAAU,GAAG,YAAY,EAAE;GACzC;IACA,CAAC,UAAU,CAAC;CAEf,MAAM,eAAmC,aACtC,WAAW;EAAE,GAAG;EAAM,GAAG;EAAO,GACjC,CAAC,KAAK,CACP;CAoFD,OAAO;EAAE,mBAlFkD,aACxD,WAAW;GACV;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA,GAAG;GACJ,GACD;GACE;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACD,CAGuB;EAAE;EAAc;;AAiD5C,MAAa,iBAAiB,EAC5B,MACA,MACA,mBACA,eACA,yBACA,QAAQ,IACR,UAAU,eAAe,MACzB,SACA,QACA,MACA,eACA,OAAO,WACP,aACA,QACA,cACA,OACA,UACA,OACA,MAAM,UACN,WACA,eACA,UAAU,cACV,OACA,MACA,QACA,SACA,aACA,cACA,cACA,aACA,YACA,aACA,WACA,GAAG,WACqB;CACxB,MAAM,OAAO,cAA0C;EACrD,IAAI,CAAC,UAAU,OAAO;EACtB,KAAA,GAAA,cAAA,YAAe,SAAS,IAAI,eAAe,SAAS,EAAE,OAAO;EAE7D,OAAO;GACL,MAAM;GACN,IAAA,GAAA,cAAA,UAAa,SAAS,GAAG,WAAW,EAAE;GACvC;IACA,CAAC,SAAS,CAAC;CACd,MAAM,WAAW,cAA8C;EAC7D,IAAI,CAAC,cAAc,OAAO;EAE1B,OAAO;GACL,MAAM;GACN,QAAQ;GACR,IAAA,GAAA,cAAA,UAAa,aAAa,GAAG,eAAe,EAAE;GAC/C;IACA,CAAC,aAAa,CAAC;CAClB,MAAM,WAAW,cAA8C;EAC7D,IAAI,CAAC,cAAc,OAAO;EAE1B,OAAO;GACL,MAAM;GACN,QAAQ;GACR,IAAA,GAAA,cAAA,UAAa,aAAa,GAAG,eAAe,EAAE;GAC/C;IACA,CAAC,aAAa,CAAC;CAClB,MAAM,QAAQ,cAA2C;EACvD,IAAI,CAAC,WAAW,OAAO;EACvB,KAAA,GAAA,cAAA,YAAe,UAAU,IAAI,eAAe,UAAU,EAAE,OAAO;EAE/D,OAAO;GACL,MAAM;GACN,IAAA,GAAA,cAAA,UAAa,UAAU,GAAG,YAAY,EAAE;GACzC;IACA,CAAC,UAAU,CAAC;CAEf,MAAM,eAAmC,aACtC,WAAW;EAAE,GAAG;EAAM,GAAG;EAAO,GACjC,CAAC,KAAK,CACP;CA4ED,OAAO;EAAE,oBA1EoD,aAC1D,WAAW;GACV;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA,GAAG;GACJ,GACD;GACE;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACD,CAGwB;EAAE;EAAc;;AAuB7C,MAAa,gBAAgB,EAC3B,aACA,IACA,IACA,UACA,aACA,aACA,aACA,aACA,aACA,cACA,QACA,GAAG,WACoB;CACvB,MAAM,eAAmC,aACtC,WAAW;EAAE,GAAG;EAAM,GAAG;EAAO,GACjC,CAAC,KAAK,CACP;CAgCD,OAAO;EAAE,mBA9B6C,aACnD,WAAW;GACV;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA,GAAG;GACJ,GACD;GACE;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACD,CAGuB;EAAE;EAAc;;AAiD5C,MAAa,kBAAkC,EAC7C,aACA,aACA,gBACA,mBACA,iBACA,YAAY,gBACZ,SACA,kBACA,SACA,eAAe,CAAC,UAAU,IAAI,KAAA,GAC9B,SACA,mBACA,MACA,oBAAoB,OACpB,OACA,YACA,YACA,SACA,QACA,cACA,OAAO,WACP,aACA,QACA,gBACA,kBACA,SACA,aACA,cACA,cACA,aACA,YACA,aACA,WACA,GAAG,WACyB;CAC5B,MAAM,QAAQ,cAA+C;EAC3D,KAAA,GAAA,cAAA,YAAe,UAAU,EACvB,QAAQ,UAAe;GACrB,MAAM,YAAY,MAAM,WAAW,QAAQ,qBAAqB,GAAG;GAEnE,MAAM,OAAO,MAAM,UAAU;GAE7B,OAAO,UAAU;IAAE;IAAM,GAAG;IAAO,CAAC;;OAGtC,OAAO;IAER,CAAC,SAAS,UAAU,CAAC;CACxB,MAAM,aAAa,cAAoD;EACrE,IAAI,CAAC,gBAAgB,OAAO;EAC5B,KAAA,GAAA,cAAA,YAAe,eAAe,IAAI,eAAe,eAAe,EAC9D,OAAO;EAET,OAAO;GACL,MAAM;GACN,GAAI,mBAAmB,OAAO,iBAAiB,EAAE;GAClD;IACA,CAAC,eAAe,CAAC;CAEpB,MAAM,eAAkC,aACrC,WAAW;EAAE,GAAG;EAAM,GAAG;EAAO,GACjC,CAAC,KAAK,CACP;CA8ED,OAAO;EAAE,gBAxEL,aACD,WAAW;GACV;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA,GAAG;GACJ,GACD;GACE;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACD,CAGoB;EAAE;EAAc"}
1
+ {"version":3,"file":"use-polar-chart.js","names":[],"sources":["../../../../src/components/chart/use-polar-chart.ts"],"sourcesContent":["\"use client\"\n\nimport type {\n CurveProps,\n PieLabelRenderProps,\n PieProps,\n PieSectorDataItem,\n PolarAngleAxisProps,\n PolarGridProps,\n PolarRadiusAxisProps,\n RadarProps,\n RadialBarProps,\n RenderableText,\n SectorProps,\n TextProps,\n} from \"recharts\"\nimport type { PolarChartProps } from \"recharts/types/util/types\"\nimport type { Dict, Merge } from \"../../utils\"\nimport { isValidElement, useCallback, useMemo } from \"react\"\nimport { type HTMLProps, mergeProps, type PropGetter } from \"../../core\"\nimport { dataAttr, isFunction, isObject, isUndefined } from \"../../utils\"\nimport { useChartContext } from \"./use-chart\"\n\nexport interface UsePolarChartProps<Y extends Dict>\n extends\n HTMLProps,\n Pick<\n PolarChartProps,\n | \"accessibilityLayer\"\n | \"barCategoryGap\"\n | \"barGap\"\n | \"barSize\"\n | \"cx\"\n | \"cy\"\n | \"endAngle\"\n | \"innerRadius\"\n | \"layout\"\n | \"maxBarSize\"\n | \"outerRadius\"\n | \"responsive\"\n | \"reverseStackOrder\"\n | \"stackOffset\"\n | \"startAngle\"\n | \"syncId\"\n | \"syncMethod\"\n > {\n /**\n * Chart data.\n */\n data?: Y[]\n}\n\nexport const usePolarChart = <Y extends Dict>({\n accessibilityLayer = true,\n barCategoryGap,\n barGap,\n barSize,\n cx,\n cy,\n data,\n endAngle,\n innerRadius,\n layout,\n maxBarSize,\n outerRadius,\n responsive,\n reverseStackOrder,\n stackOffset,\n startAngle,\n syncId,\n syncMethod,\n ...rest\n}: UsePolarChartProps<Y>) => {\n const getRootProps: PropGetter = useCallback(\n (props) => mergeProps(rest, props)(),\n [rest],\n )\n\n const getChartProps: PropGetter<PolarChartProps> = useCallback(\n (props) => ({\n accessibilityLayer,\n barCategoryGap,\n barGap,\n barSize,\n cx,\n cy,\n data,\n endAngle,\n innerRadius,\n layout,\n margin: { left: 16, right: 16 },\n maxBarSize,\n outerRadius,\n responsive,\n reverseStackOrder,\n stackOffset,\n startAngle,\n syncId,\n syncMethod,\n ...props,\n }),\n [\n accessibilityLayer,\n cx,\n cy,\n data,\n endAngle,\n innerRadius,\n layout,\n outerRadius,\n responsive,\n startAngle,\n syncId,\n syncMethod,\n barCategoryGap,\n barGap,\n barSize,\n maxBarSize,\n reverseStackOrder,\n stackOffset,\n ],\n )\n\n return {\n getChartProps,\n getRootProps,\n }\n}\n\nexport type UsePolarChartReturn<Y extends Dict> = ReturnType<\n typeof usePolarChart<Y>\n>\n\nexport interface UseChartPieProps extends Merge<\n HTMLProps<\"svg\">,\n Pick<\n PieProps,\n | \"activeShape\"\n | \"animationBegin\"\n | \"animationDuration\"\n | \"animationEasing\"\n | \"cornerRadius\"\n | \"cx\"\n | \"cy\"\n | \"data\"\n | \"dataKey\"\n | \"endAngle\"\n | \"hide\"\n | \"inactiveShape\"\n | \"innerRadius\"\n | \"isAnimationActive\"\n | \"label\"\n | \"labelLine\"\n | \"legendType\"\n | \"maxRadius\"\n | \"minAngle\"\n | \"nameKey\"\n | \"onAnimationEnd\"\n | \"onAnimationStart\"\n | \"onClick\"\n | \"onMouseDown\"\n | \"onMouseEnter\"\n | \"onMouseLeave\"\n | \"onMouseMove\"\n | \"onMouseOut\"\n | \"onMouseOver\"\n | \"onMouseUp\"\n | \"outerRadius\"\n | \"paddingAngle\"\n | \"rootTabIndex\"\n | \"shape\"\n | \"startAngle\"\n | \"tooltipType\"\n | \"zIndex\"\n >\n> {}\n\nexport const useChartPie = ({\n activeShape,\n animationBegin,\n animationDuration,\n animationEasing,\n cornerRadius,\n cx,\n cy,\n data,\n dataKey: dataKeyProp,\n endAngle = -270,\n hide,\n inactiveShape,\n innerRadius = \"0%\",\n isAnimationActive = false,\n label,\n labelLine = false,\n legendType,\n maxRadius,\n minAngle,\n nameKey,\n outerRadius = !label ? \"100%\" : undefined,\n paddingAngle,\n rootTabIndex,\n shape,\n startAngle = 90,\n tooltipType,\n zIndex,\n onAnimationEnd,\n onAnimationStart,\n onClick,\n onMouseDown,\n onMouseEnter,\n onMouseLeave,\n onMouseMove,\n onMouseOut,\n onMouseOver,\n onMouseUp,\n ...rest\n}: UseChartPieProps = {}) => {\n const getRootProps: PropGetter<\"svg\"> = useCallback(\n (props) => mergeProps(rest, props)(),\n [rest],\n )\n\n const getPieProps: PropGetter<PieProps> = useCallback(\n ({ dataKey = dataKeyProp, ...props } = {}) => ({\n activeShape,\n animationBegin,\n animationDuration,\n animationEasing,\n cornerRadius,\n cx,\n cy,\n data,\n dataKey,\n endAngle,\n fill: \"\",\n hide,\n inactiveShape,\n innerRadius,\n isAnimationActive,\n label,\n labelLine,\n legendType,\n maxRadius,\n minAngle,\n nameKey,\n outerRadius,\n paddingAngle,\n rootTabIndex,\n shape,\n startAngle,\n stroke: \"\",\n tooltipType,\n zIndex,\n onAnimationEnd,\n onAnimationStart,\n onClick,\n onMouseDown,\n onMouseEnter,\n onMouseLeave,\n onMouseMove,\n onMouseOut,\n onMouseOver,\n onMouseUp,\n ...props,\n }),\n [\n activeShape,\n animationBegin,\n animationDuration,\n animationEasing,\n cornerRadius,\n cx,\n cy,\n data,\n dataKeyProp,\n endAngle,\n hide,\n inactiveShape,\n innerRadius,\n isAnimationActive,\n label,\n labelLine,\n legendType,\n maxRadius,\n minAngle,\n nameKey,\n onAnimationEnd,\n onAnimationStart,\n onClick,\n onMouseDown,\n onMouseEnter,\n onMouseLeave,\n onMouseMove,\n onMouseOut,\n onMouseOver,\n onMouseUp,\n outerRadius,\n paddingAngle,\n rootTabIndex,\n shape,\n startAngle,\n tooltipType,\n zIndex,\n ],\n )\n\n return { getPieProps, getRootProps }\n}\n\nexport type UseChartPieReturn = ReturnType<typeof useChartPie>\n\nexport interface UseChartSectorProps extends Merge<\n HTMLProps<\"path\">,\n Pick<\n SectorProps,\n | \"cornerIsExternal\"\n | \"cornerRadius\"\n | \"cx\"\n | \"cy\"\n | \"endAngle\"\n | \"forceCornerRadius\"\n | \"innerRadius\"\n | \"outerRadius\"\n | \"startAngle\"\n >\n> {}\n\nexport const useChartSector = ({\n name: nameProp,\n cornerIsExternal,\n cornerRadius,\n cx,\n cy,\n endAngle,\n forceCornerRadius,\n innerRadius,\n outerRadius,\n startAngle,\n ...rest\n}: UseChartSectorProps = {}) => {\n const { highlightedDataKey } = useChartContext()\n\n const getRootProps: PropGetter<\"path\"> = useCallback(\n (props) => mergeProps(rest, props)(),\n [rest],\n )\n\n const getSectorProps: PropGetter<SectorProps> = useCallback(\n ({ name = nameProp, ...props } = {}) => ({\n name,\n \"data-active\": dataAttr(\n !isUndefined(highlightedDataKey) && highlightedDataKey === name,\n ),\n \"data-inactive\": dataAttr(\n !isUndefined(highlightedDataKey) && highlightedDataKey !== name,\n ),\n cornerIsExternal,\n cornerRadius,\n cx,\n cy,\n endAngle,\n forceCornerRadius,\n innerRadius,\n outerRadius,\n startAngle,\n ...props,\n }),\n [\n cornerIsExternal,\n cornerRadius,\n cx,\n cy,\n endAngle,\n forceCornerRadius,\n highlightedDataKey,\n innerRadius,\n nameProp,\n outerRadius,\n startAngle,\n ],\n )\n\n return { getRootProps, getSectorProps }\n}\n\nexport type UseChartSectorReturn = ReturnType<typeof useChartSector>\n\nexport interface UseChartPieLabelProps extends Merge<\n HTMLProps<\"text\">,\n Pick<\n PieLabelRenderProps,\n | \"cornerRadius\"\n | \"cx\"\n | \"cy\"\n | \"dataKey\"\n | \"endAngle\"\n | \"index\"\n | \"innerRadius\"\n | \"maxRadius\"\n | \"midAngle\"\n | \"middleRadius\"\n | \"name\"\n | \"outerRadius\"\n | \"paddingAngle\"\n | \"payload\"\n | \"percent\"\n | \"startAngle\"\n | \"textAnchor\"\n | \"tooltipPayload\"\n | \"tooltipPosition\"\n | \"value\"\n | \"x\"\n | \"y\"\n >\n> {\n /**\n * Offset for the label.\n *\n * @default 24\n */\n offset?: number\n /**\n * Formatter for the label.\n */\n formatter?: (value: number, percent: number) => RenderableText\n}\n\nexport const useChartPieLabel = ({\n name: nameProp,\n cornerRadius,\n cx,\n cy,\n dataKey,\n endAngle,\n formatter,\n index,\n innerRadius,\n maxRadius,\n midAngle = 0,\n middleRadius = 0,\n offset: offsetProp = 24,\n outerRadius,\n paddingAngle,\n payload,\n percent = 0,\n startAngle,\n textAnchor: _textAnchor,\n tooltipPayload,\n tooltipPosition,\n value,\n x: _x,\n y: _y,\n ...rest\n}: UseChartPieLabelProps) => {\n const { highlightedDataKey } = useChartContext()\n const offset = (outerRadius - innerRadius) * 0.5 + offsetProp\n const radian = Math.PI / 180\n const x = cx + (middleRadius + offset) * Math.cos(-midAngle * radian)\n const y = cy + (middleRadius + offset) * Math.sin(-midAngle * radian)\n\n const getRootProps: PropGetter<\"text\"> = useCallback(\n (props) => mergeProps(rest, props)(),\n [rest],\n )\n\n const getTextProps: PropGetter<TextProps> = useCallback(\n ({ name = nameProp, ...props } = {}) => ({\n name,\n \"data-active\": dataAttr(\n !isUndefined(highlightedDataKey) && highlightedDataKey === name,\n ),\n \"data-inactive\": dataAttr(\n !isUndefined(highlightedDataKey) && highlightedDataKey !== name,\n ),\n alignmentBaseline: \"middle\",\n children: formatter?.(value, percent) ?? value,\n cornerRadius,\n cx,\n cy,\n dataKey,\n endAngle,\n index,\n innerRadius,\n maxRadius,\n midAngle,\n middleRadius,\n outerRadius,\n paddingAngle,\n payload,\n percent,\n startAngle,\n textAnchor: x > cx ? \"start\" : x < cx ? \"end\" : \"middle\",\n tooltipPayload,\n tooltipPosition,\n value,\n x,\n y,\n ...props,\n }),\n [\n cornerRadius,\n cx,\n cy,\n dataKey,\n endAngle,\n formatter,\n highlightedDataKey,\n index,\n innerRadius,\n maxRadius,\n midAngle,\n middleRadius,\n nameProp,\n outerRadius,\n paddingAngle,\n payload,\n percent,\n startAngle,\n tooltipPayload,\n tooltipPosition,\n value,\n x,\n y,\n ],\n )\n\n return { getRootProps, getTextProps }\n}\n\nexport type UseChartPieLabelReturn = ReturnType<typeof useChartPieLabel>\n\nexport interface UseChartPieLabelLineProps\n extends\n Merge<\n Omit<HTMLProps<\"path\">, \"points\">,\n Pick<\n PieSectorDataItem,\n | \"cornerRadius\"\n | \"dataKey\"\n | \"endAngle\"\n | \"innerRadius\"\n | \"maxRadius\"\n | \"midAngle\"\n | \"middleRadius\"\n | \"name\"\n | \"outerRadius\"\n | \"paddingAngle\"\n | \"payload\"\n | \"percent\"\n | \"startAngle\"\n | \"tooltipPayload\"\n | \"tooltipPosition\"\n | \"value\"\n >\n >,\n Pick<CurveProps, \"points\"> {\n index?: number\n}\n\nexport const useChartPieLabelLine = ({\n name: nameProp,\n cornerRadius,\n dataKey,\n endAngle,\n index,\n innerRadius,\n maxRadius,\n midAngle,\n middleRadius,\n outerRadius,\n paddingAngle,\n payload,\n percent,\n points,\n startAngle,\n tooltipPayload,\n tooltipPosition,\n value,\n ...rest\n}: UseChartPieLabelLineProps) => {\n const { highlightedDataKey } = useChartContext()\n\n const getRootProps: PropGetter<\"path\"> = useCallback(\n (props) => mergeProps(rest, props)(),\n [rest],\n )\n\n const getCurveProps: PropGetter<CurveProps> = useCallback(\n ({ name = nameProp, ...props } = {}) => ({\n name,\n \"data-active\": dataAttr(\n !isUndefined(highlightedDataKey) && highlightedDataKey === name,\n ),\n \"data-inactive\": dataAttr(\n !isUndefined(highlightedDataKey) && highlightedDataKey !== name,\n ),\n cornerRadius,\n dataKey,\n endAngle,\n index,\n innerRadius,\n maxRadius,\n midAngle,\n middleRadius,\n outerRadius,\n paddingAngle,\n payload,\n percent,\n points,\n startAngle,\n tooltipPayload,\n tooltipPosition,\n value,\n ...props,\n }),\n [\n highlightedDataKey,\n nameProp,\n cornerRadius,\n dataKey,\n endAngle,\n index,\n innerRadius,\n maxRadius,\n midAngle,\n middleRadius,\n outerRadius,\n paddingAngle,\n payload,\n percent,\n points,\n startAngle,\n tooltipPayload,\n tooltipPosition,\n value,\n ],\n )\n\n return { getCurveProps, getRootProps }\n}\n\nexport type UseChartPieLabelLineReturn = ReturnType<typeof useChartPieLabelLine>\n\nexport interface UseChartRadarProps extends Merge<\n HTMLProps<\"path\">,\n Pick<\n RadarProps,\n | \"activeDot\"\n | \"angleAxisId\"\n | \"animationBegin\"\n | \"animationDuration\"\n | \"animationEasing\"\n | \"baseLinePoints\"\n | \"connectNulls\"\n | \"dataKey\"\n | \"dot\"\n | \"hide\"\n | \"isAnimationActive\"\n | \"isRange\"\n | \"label\"\n | \"legendType\"\n | \"onAnimationEnd\"\n | \"onAnimationStart\"\n | \"onMouseEnter\"\n | \"onMouseLeave\"\n | \"radiusAxisId\"\n | \"shape\"\n | \"stroke\"\n | \"tooltipType\"\n | \"zIndex\"\n >\n> {}\n\nexport const useChartRadar = ({\n activeDot: activeDotProp,\n angleAxisId,\n animationBegin,\n animationDuration,\n animationEasing,\n baseLinePoints,\n connectNulls,\n dataKey: dataKeyProp,\n dot: dotProp,\n hide,\n isAnimationActive = false,\n isRange,\n label: labelProp,\n legendType,\n points,\n radiusAxisId,\n shape,\n stroke,\n tooltipType,\n zIndex,\n onAnimationEnd,\n onAnimationStart,\n onMouseEnter,\n onMouseLeave,\n ...rest\n}: UseChartRadarProps) => {\n const { highlightedDataKey } = useChartContext()\n const label = useMemo<UseChartRadarProps[\"label\"]>(() => {\n if (!labelProp) return labelProp\n if (isFunction(labelProp) || isValidElement(labelProp)) return labelProp\n\n return {\n fill: \"\",\n offset: 12,\n position: \"top\",\n ...(isObject(labelProp) ? labelProp : {}),\n }\n }, [labelProp])\n const dot = useMemo<UseChartRadarProps[\"dot\"]>(() => {\n if (!dotProp) return dotProp\n if (isFunction(dotProp) || isValidElement(dotProp)) return dotProp\n\n return { fill: \"\", stroke: \"\", ...(isObject(dotProp) ? dotProp : {}) }\n }, [dotProp])\n const activeDot = useMemo<UseChartRadarProps[\"activeDot\"]>(() => {\n if (!activeDotProp) return activeDotProp\n if (isFunction(activeDotProp) || isValidElement(activeDotProp))\n return activeDotProp\n\n return {\n fill: \"\",\n stroke: \"\",\n ...(isObject(activeDotProp) ? activeDotProp : {}),\n }\n }, [activeDotProp])\n\n const getRootProps: PropGetter<\"path\"> = useCallback(\n (props) => mergeProps(rest, props)(),\n [rest],\n )\n\n const getRadarProps: PropGetter<RadarProps> = useCallback(\n ({ dataKey = dataKeyProp, ...props } = {}) => ({\n \"data-active\": dataAttr(\n !isUndefined(highlightedDataKey) && highlightedDataKey === dataKey,\n ),\n \"data-inactive\": dataAttr(\n !isUndefined(highlightedDataKey) && highlightedDataKey !== dataKey,\n ),\n activeDot,\n angleAxisId,\n animationBegin,\n animationDuration,\n animationEasing,\n baseLinePoints,\n connectNulls,\n dataKey,\n dot,\n hide,\n isAnimationActive,\n isRange,\n label,\n legendType,\n points,\n radiusAxisId,\n shape,\n stroke,\n tooltipType,\n zIndex,\n onAnimationEnd,\n onAnimationStart,\n onMouseEnter,\n onMouseLeave,\n ...props,\n }),\n [\n dataKeyProp,\n highlightedDataKey,\n activeDot,\n angleAxisId,\n animationBegin,\n animationDuration,\n animationEasing,\n baseLinePoints,\n connectNulls,\n dot,\n hide,\n isAnimationActive,\n isRange,\n label,\n legendType,\n points,\n radiusAxisId,\n stroke,\n shape,\n tooltipType,\n zIndex,\n onAnimationEnd,\n onAnimationStart,\n onMouseEnter,\n onMouseLeave,\n ],\n )\n\n return { getRadarProps, getRootProps }\n}\n\nexport type UseChartRadarReturn = ReturnType<typeof useChartRadar>\n\nexport interface UseAngleAxisProps extends Merge<\n HTMLProps<\"text\">,\n Pick<\n PolarAngleAxisProps,\n | \"allowDataOverflow\"\n | \"allowDecimals\"\n | \"allowDuplicatedCategory\"\n | \"angle\"\n | \"angleAxisId\"\n | \"axisLine\"\n | \"axisLineType\"\n | \"cx\"\n | \"cy\"\n | \"dataKey\"\n | \"domain\"\n | \"hide\"\n | \"includeHidden\"\n | \"label\"\n | \"name\"\n | \"onClick\"\n | \"onMouseDown\"\n | \"onMouseEnter\"\n | \"onMouseLeave\"\n | \"onMouseMove\"\n | \"onMouseOut\"\n | \"onMouseOver\"\n | \"onMouseUp\"\n | \"orientation\"\n | \"radius\"\n | \"range\"\n | \"reversed\"\n | \"scale\"\n | \"tick\"\n | \"tickCount\"\n | \"tickFormatter\"\n | \"tickLine\"\n | \"ticks\"\n | \"tickSize\"\n | \"type\"\n | \"unit\"\n | \"zIndex\"\n >\n> {}\n\nexport const useAngleAxis = ({\n type,\n name,\n allowDataOverflow,\n allowDecimals,\n allowDuplicatedCategory,\n angle,\n angleAxisId,\n axisLine: axisLineProp,\n axisLineType,\n cx,\n cy,\n dataKey,\n domain,\n hide,\n includeHidden,\n label: labelProp,\n orientation,\n radius,\n range,\n reversed,\n scale,\n tick: tickProp,\n tickCount,\n tickFormatter,\n tickLine: tickLineProp,\n ticks,\n tickSize,\n unit,\n zIndex,\n onClick,\n onMouseDown,\n onMouseEnter,\n onMouseLeave,\n onMouseMove,\n onMouseOut,\n onMouseOver,\n onMouseUp,\n ...rest\n}: UseAngleAxisProps) => {\n const tick = useMemo<UseAngleAxisProps[\"tick\"]>(() => {\n if (!tickProp) return tickProp\n if (isFunction(tickProp) || isValidElement(tickProp)) return tickProp\n\n return { fill: \"\", ...(isObject(tickProp) ? tickProp : {}) }\n }, [tickProp])\n const tickLine = useMemo<UseAngleAxisProps[\"tickLine\"]>(() => {\n if (!tickLineProp) return tickLineProp\n\n return {\n fill: \"\",\n stroke: \"\",\n ...(isObject(tickLineProp) ? tickLineProp : {}),\n }\n }, [tickLineProp])\n const axisLine = useMemo<UseAngleAxisProps[\"axisLine\"]>(() => {\n if (!axisLineProp) return axisLineProp\n\n return {\n fill: \"\",\n stroke: \"\",\n ...(isObject(axisLineProp) ? axisLineProp : {}),\n }\n }, [axisLineProp])\n const label = useMemo<UseAngleAxisProps[\"label\"]>(() => {\n if (!labelProp) return labelProp\n if (isFunction(labelProp) || isValidElement(labelProp)) return labelProp\n\n return {\n fill: \"\",\n ...(isObject(labelProp) ? labelProp : {}),\n }\n }, [labelProp])\n\n const getRootProps: PropGetter<\"text\"> = useCallback(\n (props) => mergeProps(rest, props)(),\n [rest],\n )\n\n const getAngleAxisProps: PropGetter<PolarAngleAxisProps> = useCallback(\n (props) => ({\n type,\n name,\n allowDataOverflow,\n allowDecimals,\n allowDuplicatedCategory,\n angle,\n angleAxisId,\n axisLine,\n axisLineType,\n cx,\n cy,\n dataKey,\n domain,\n hide,\n includeHidden,\n label,\n orientation,\n radius,\n range,\n reversed,\n scale,\n tick,\n tickCount,\n tickFormatter,\n tickLine,\n ticks,\n tickSize,\n unit,\n zIndex,\n onClick,\n onMouseDown,\n onMouseEnter,\n onMouseLeave,\n onMouseMove,\n onMouseOut,\n onMouseOver,\n onMouseUp,\n ...props,\n }),\n [\n allowDataOverflow,\n allowDecimals,\n allowDuplicatedCategory,\n angle,\n angleAxisId,\n axisLine,\n axisLineType,\n cx,\n cy,\n dataKey,\n domain,\n hide,\n includeHidden,\n label,\n name,\n onClick,\n onMouseDown,\n onMouseEnter,\n onMouseLeave,\n onMouseMove,\n onMouseOut,\n onMouseOver,\n onMouseUp,\n orientation,\n radius,\n range,\n reversed,\n scale,\n tick,\n tickCount,\n tickFormatter,\n tickLine,\n ticks,\n tickSize,\n type,\n unit,\n zIndex,\n ],\n )\n\n return { getAngleAxisProps, getRootProps }\n}\n\nexport type UseAngleAxisReturn = ReturnType<typeof useAngleAxis>\n\nexport interface UseRadiusAxisProps extends Merge<\n HTMLProps<\"text\">,\n Pick<\n PolarRadiusAxisProps,\n | \"allowDataOverflow\"\n | \"allowDecimals\"\n | \"allowDuplicatedCategory\"\n | \"angle\"\n | \"axisLine\"\n | \"dataKey\"\n | \"domain\"\n | \"hide\"\n | \"includeHidden\"\n | \"label\"\n | \"name\"\n | \"onClick\"\n | \"onMouseDown\"\n | \"onMouseEnter\"\n | \"onMouseLeave\"\n | \"onMouseMove\"\n | \"onMouseOut\"\n | \"onMouseOver\"\n | \"onMouseUp\"\n | \"orientation\"\n | \"radius\"\n | \"radiusAxisId\"\n | \"range\"\n | \"reversed\"\n | \"scale\"\n | \"tick\"\n | \"tickCount\"\n | \"tickFormatter\"\n | \"tickLine\"\n | \"type\"\n | \"unit\"\n | \"zIndex\"\n >\n> {\n /**\n * The ticks to use for the axis.\n */\n ticks?: number[]\n}\n\nexport const useRadiusAxis = ({\n type,\n name,\n allowDataOverflow,\n allowDecimals,\n allowDuplicatedCategory,\n angle = 90,\n axisLine: axisLineProp = true,\n dataKey,\n domain,\n hide,\n includeHidden,\n label: labelProp,\n orientation,\n radius,\n radiusAxisId,\n range,\n reversed,\n scale,\n tick: tickProp,\n tickCount,\n tickFormatter,\n tickLine: tickLineProp,\n ticks,\n unit,\n zIndex,\n onClick,\n onMouseDown,\n onMouseEnter,\n onMouseLeave,\n onMouseMove,\n onMouseOut,\n onMouseOver,\n onMouseUp,\n ...rest\n}: UseRadiusAxisProps) => {\n const tick = useMemo<UseRadiusAxisProps[\"tick\"]>(() => {\n if (!tickProp) return tickProp\n if (isFunction(tickProp) || isValidElement(tickProp)) return tickProp\n\n return {\n fill: \"\",\n ...(isObject(tickProp) ? tickProp : {}),\n }\n }, [tickProp])\n const tickLine = useMemo<UseRadiusAxisProps[\"tickLine\"]>(() => {\n if (!tickLineProp) return tickLineProp\n\n return {\n fill: \"\",\n stroke: \"\",\n ...(isObject(tickLineProp) ? tickLineProp : {}),\n }\n }, [tickLineProp])\n const axisLine = useMemo<UseRadiusAxisProps[\"axisLine\"]>(() => {\n if (!axisLineProp) return axisLineProp\n\n return {\n fill: \"\",\n stroke: \"\",\n ...(isObject(axisLineProp) ? axisLineProp : {}),\n }\n }, [axisLineProp])\n const label = useMemo<UseRadiusAxisProps[\"label\"]>(() => {\n if (!labelProp) return labelProp\n if (isFunction(labelProp) || isValidElement(labelProp)) return labelProp\n\n return {\n fill: \"\",\n ...(isObject(labelProp) ? labelProp : {}),\n }\n }, [labelProp])\n\n const getRootProps: PropGetter<\"text\"> = useCallback(\n (props) => mergeProps(rest, props)(),\n [rest],\n )\n\n const getRadiusAxisProps: PropGetter<PolarRadiusAxisProps> = useCallback(\n (props) => ({\n type,\n name,\n allowDataOverflow,\n allowDecimals,\n allowDuplicatedCategory,\n angle,\n axisLine,\n dataKey,\n domain,\n hide,\n includeHidden,\n label,\n orientation,\n radius,\n radiusAxisId,\n range,\n reversed,\n scale,\n tick,\n tickCount,\n tickFormatter,\n tickLine,\n ticks,\n unit,\n zIndex,\n onClick,\n onMouseDown,\n onMouseEnter,\n onMouseLeave,\n onMouseMove,\n onMouseOut,\n onMouseOver,\n onMouseUp,\n ...props,\n }),\n [\n type,\n name,\n allowDataOverflow,\n allowDecimals,\n allowDuplicatedCategory,\n angle,\n axisLine,\n dataKey,\n domain,\n hide,\n includeHidden,\n label,\n orientation,\n radius,\n radiusAxisId,\n range,\n reversed,\n scale,\n tick,\n tickCount,\n tickFormatter,\n tickLine,\n ticks,\n unit,\n zIndex,\n onClick,\n onMouseDown,\n onMouseEnter,\n onMouseLeave,\n onMouseMove,\n onMouseOut,\n onMouseOver,\n onMouseUp,\n ],\n )\n\n return { getRadiusAxisProps, getRootProps }\n}\n\nexport type UseRadiusAxisReturn = ReturnType<typeof useRadiusAxis>\n\nexport interface UsePolarGridProps extends Merge<\n HTMLProps<\"line\">,\n Pick<\n PolarGridProps,\n | \"angleAxisId\"\n | \"cx\"\n | \"cy\"\n | \"gridType\"\n | \"innerRadius\"\n | \"outerRadius\"\n | \"polarAngles\"\n | \"polarRadius\"\n | \"radialLines\"\n | \"radiusAxisId\"\n | \"zIndex\"\n >\n> {}\n\nexport const usePolarGrid = ({\n angleAxisId,\n cx,\n cy,\n gridType,\n innerRadius,\n outerRadius,\n polarAngles,\n polarRadius,\n radialLines,\n radiusAxisId,\n zIndex,\n ...rest\n}: UsePolarGridProps) => {\n const getRootProps: PropGetter<\"line\"> = useCallback(\n (props) => mergeProps(rest, props)(),\n [rest],\n )\n\n const getPolarGridProps: PropGetter<PolarGridProps> = useCallback(\n (props) => ({\n angleAxisId,\n cx,\n cy,\n gridType,\n innerRadius,\n outerRadius,\n polarAngles,\n polarRadius,\n radialLines,\n radiusAxisId,\n zIndex,\n ...props,\n }),\n [\n angleAxisId,\n cx,\n cy,\n gridType,\n innerRadius,\n outerRadius,\n polarAngles,\n polarRadius,\n radialLines,\n radiusAxisId,\n zIndex,\n ],\n )\n\n return { getPolarGridProps, getRootProps }\n}\n\nexport type UsePolarGridReturn = ReturnType<typeof usePolarGrid>\n\nexport interface UseChartRadialProps<Y extends Dict = Dict> extends Merge<\n HTMLProps<\"svg\">,\n Pick<\n RadialBarProps,\n | \"activeShape\"\n | \"angleAxisId\"\n | \"animationBegin\"\n | \"animationDuration\"\n | \"animationEasing\"\n | \"background\"\n | \"barSize\"\n | \"cornerIsExternal\"\n | \"cornerRadius\"\n | \"dataKey\"\n | \"forceCornerRadius\"\n | \"hide\"\n | \"isAnimationActive\"\n | \"label\"\n | \"legendType\"\n | \"maxBarSize\"\n | \"onAnimationEnd\"\n | \"onAnimationStart\"\n | \"onClick\"\n | \"onMouseDown\"\n | \"onMouseEnter\"\n | \"onMouseLeave\"\n | \"onMouseMove\"\n | \"onMouseOut\"\n | \"onMouseOver\"\n | \"onMouseUp\"\n | \"radius\"\n | \"radiusAxisId\"\n | \"shape\"\n | \"stackId\"\n | \"tooltipType\"\n | \"zIndex\"\n >\n> {\n /**\n * The key to use for the name.\n */\n nameKey: keyof Y\n}\n\nexport const useChartRadial = <Y extends Dict>({\n activeShape,\n angleAxisId,\n animationBegin,\n animationDuration,\n animationEasing,\n background: backgroundProp,\n barSize,\n cornerIsExternal,\n stackId,\n cornerRadius = !stackId ? 4 : undefined,\n dataKey,\n forceCornerRadius,\n hide,\n isAnimationActive = false,\n label,\n legendType,\n maxBarSize,\n nameKey,\n radius,\n radiusAxisId,\n shape: shapeProp,\n tooltipType,\n zIndex,\n onAnimationEnd,\n onAnimationStart,\n onClick,\n onMouseDown,\n onMouseEnter,\n onMouseLeave,\n onMouseMove,\n onMouseOut,\n onMouseOver,\n onMouseUp,\n ...rest\n}: UseChartRadialProps<Y>) => {\n const shape = useMemo<UseChartRadialProps<Y>[\"shape\"]>(() => {\n if (isFunction(shapeProp)) {\n return (props: any) => {\n props.className = props.className?.replace(/\\s*\\bundefined\\b/g, \"\")\n\n const name = props.payload?.[nameKey]\n\n return shapeProp({ name, ...props })\n }\n } else {\n return shapeProp\n }\n }, [nameKey, shapeProp])\n const background = useMemo<UseChartRadialProps<Y>[\"background\"]>(() => {\n if (!backgroundProp) return backgroundProp\n if (isFunction(backgroundProp) || isValidElement(backgroundProp))\n return backgroundProp\n\n return {\n fill: \"\",\n ...(backgroundProp !== true ? backgroundProp : {}),\n }\n }, [backgroundProp])\n\n const getRootProps: PropGetter<\"svg\"> = useCallback(\n (props) => mergeProps(rest, props)(),\n [rest],\n )\n\n const getRadialProps: PropGetter<\n Partial<RadialBarProps>,\n undefined,\n RadialBarProps\n > = useCallback(\n (props) => ({\n activeShape,\n angleAxisId,\n animationBegin,\n animationDuration,\n animationEasing,\n background,\n barSize,\n cornerIsExternal,\n cornerRadius,\n dataKey,\n forceCornerRadius,\n hide,\n isAnimationActive,\n label,\n legendType,\n maxBarSize,\n radius,\n radiusAxisId,\n shape,\n stackId,\n tooltipType,\n zIndex,\n onAnimationEnd,\n onAnimationStart,\n onClick,\n onMouseDown,\n onMouseEnter,\n onMouseLeave,\n onMouseMove,\n onMouseOut,\n onMouseOver,\n onMouseUp,\n ...props,\n }),\n [\n activeShape,\n angleAxisId,\n animationBegin,\n animationDuration,\n animationEasing,\n background,\n barSize,\n cornerIsExternal,\n cornerRadius,\n dataKey,\n forceCornerRadius,\n hide,\n isAnimationActive,\n label,\n legendType,\n maxBarSize,\n onAnimationEnd,\n onAnimationStart,\n onClick,\n onMouseDown,\n onMouseEnter,\n onMouseLeave,\n onMouseMove,\n onMouseOut,\n onMouseOver,\n onMouseUp,\n radius,\n radiusAxisId,\n shape,\n stackId,\n tooltipType,\n zIndex,\n ],\n )\n\n return { getRadialProps, getRootProps }\n}\n\nexport type UseChartRadialReturn = ReturnType<typeof useChartRadial>\n"],"mappings":";;;;;;AAoDA,MAAa,iBAAiC,EAC5C,qBAAqB,MACrB,gBACA,QACA,SACA,IACA,IACA,MACA,UACA,aACA,QACA,YACA,aACA,YACA,mBACA,aACA,YACA,QACA,YACA,GAAG,WACwB;CAC3B,MAAM,eAA2B,aAC9B,UAAU,WAAW,MAAM,MAAM,EAAE,EACpC,CAAC,KAAK,CACP;CA+CD,OAAO;EACL,eA9CiD,aAChD,WAAW;GACV;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA,QAAQ;IAAE,MAAM;IAAI,OAAO;IAAI;GAC/B;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA,GAAG;GACJ,GACD;GACE;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACD,CAIY;EACb;EACD;;AAmDH,MAAa,eAAe,EAC1B,aACA,gBACA,mBACA,iBACA,cACA,IACA,IACA,MACA,SAAS,aACT,WAAW,MACX,MACA,eACA,cAAc,MACd,oBAAoB,OACpB,OACA,YAAY,OACZ,YACA,WACA,UACA,SACA,cAAc,CAAC,QAAQ,SAAS,KAAA,GAChC,cACA,cACA,OACA,aAAa,IACb,aACA,QACA,gBACA,kBACA,SACA,aACA,cACA,cACA,aACA,YACA,aACA,WACA,GAAG,SACiB,EAAE,KAAK;CAC3B,MAAM,eAAkC,aACrC,UAAU,WAAW,MAAM,MAAM,EAAE,EACpC,CAAC,KAAK,CACP;CAsFD,OAAO;EAAE,aApFiC,aACvC,EAAE,UAAU,aAAa,GAAG,UAAU,EAAE,MAAM;GAC7C;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA,MAAM;GACN;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA,QAAQ;GACR;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA,GAAG;GACJ,GACD;GACE;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACD,CAGiB;EAAE;EAAc;;AAqBtC,MAAa,kBAAkB,EAC7B,MAAM,UACN,kBACA,cACA,IACA,IACA,UACA,mBACA,aACA,aACA,YACA,GAAG,SACoB,EAAE,KAAK;CAC9B,MAAM,EAAE,uBAAuB,iBAAiB;CA0ChD,OAAO;EAAE,cAxCgC,aACtC,UAAU,WAAW,MAAM,MAAM,EAAE,EACpC,CAAC,KAAK,CAsCa;EAAE,gBAnCyB,aAC7C,EAAE,OAAO,UAAU,GAAG,UAAU,EAAE,MAAM;GACvC;GACA,gBAAA,GAAA,cAAA,UACE,EAAA,GAAA,cAAA,aAAa,mBAAmB,IAAI,uBAAuB,KAC5D;GACD,kBAAA,GAAA,cAAA,UACE,EAAA,GAAA,cAAA,aAAa,mBAAmB,IAAI,uBAAuB,KAC5D;GACD;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA,GAAG;GACJ,GACD;GACE;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACD,CAGkC;EAAE;;AA6CzC,MAAa,oBAAoB,EAC/B,MAAM,UACN,cACA,IACA,IACA,SACA,UACA,WACA,OACA,aACA,WACA,WAAW,GACX,eAAe,GACf,QAAQ,aAAa,IACrB,aACA,cACA,SACA,UAAU,GACV,YACA,YAAY,aACZ,gBACA,iBACA,OACA,GAAG,IACH,GAAG,IACH,GAAG,WACwB;CAC3B,MAAM,EAAE,uBAAuB,iBAAiB;CAChD,MAAM,UAAU,cAAc,eAAe,KAAM;CACnD,MAAM,SAAS,KAAK,KAAK;CACzB,MAAM,IAAI,MAAM,eAAe,UAAU,KAAK,IAAI,CAAC,WAAW,OAAO;CACrE,MAAM,IAAI,MAAM,eAAe,UAAU,KAAK,IAAI,CAAC,WAAW,OAAO;CAoErE,OAAO;EAAE,cAlEgC,aACtC,UAAU,WAAW,MAAM,MAAM,EAAE,EACpC,CAAC,KAAK,CAgEa;EAAE,cA7DqB,aACzC,EAAE,OAAO,UAAU,GAAG,UAAU,EAAE,MAAM;GACvC;GACA,gBAAA,GAAA,cAAA,UACE,EAAA,GAAA,cAAA,aAAa,mBAAmB,IAAI,uBAAuB,KAC5D;GACD,kBAAA,GAAA,cAAA,UACE,EAAA,GAAA,cAAA,aAAa,mBAAmB,IAAI,uBAAuB,KAC5D;GACD,mBAAmB;GACnB,UAAU,YAAY,OAAO,QAAQ,IAAI;GACzC;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA,YAAY,IAAI,KAAK,UAAU,IAAI,KAAK,QAAQ;GAChD;GACA;GACA;GACA;GACA;GACA,GAAG;GACJ,GACD;GACE;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACD,CAGgC;EAAE;;AAiCvC,MAAa,wBAAwB,EACnC,MAAM,UACN,cACA,SACA,UACA,OACA,aACA,WACA,UACA,cACA,aACA,cACA,SACA,SACA,QACA,YACA,gBACA,iBACA,OACA,GAAG,WAC4B;CAC/B,MAAM,EAAE,uBAAuB,iBAAiB;CAEhD,MAAM,eAAmC,aACtC,UAAU,WAAW,MAAM,MAAM,EAAE,EACpC,CAAC,KAAK,CACP;CAqDD,OAAO;EAAE,eAnDqC,aAC3C,EAAE,OAAO,UAAU,GAAG,UAAU,EAAE,MAAM;GACvC;GACA,gBAAA,GAAA,cAAA,UACE,EAAA,GAAA,cAAA,aAAa,mBAAmB,IAAI,uBAAuB,KAC5D;GACD,kBAAA,GAAA,cAAA,UACE,EAAA,GAAA,cAAA,aAAa,mBAAmB,IAAI,uBAAuB,KAC5D;GACD;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA,GAAG;GACJ,GACD;GACE;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACD,CAGmB;EAAE;EAAc;;AAmCxC,M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CACP;CAoFD,OAAO;EAAE,mBAlFkD,aACxD,WAAW;GACV;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA,GAAG;GACJ,GACD;GACE;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACD,CAGuB;EAAE;EAAc;;AAiD5C,MAAa,iBAAiB,EAC5B,MACA,MACA,mBACA,eACA,yBACA,QAAQ,IACR,UAAU,eAAe,MACzB,SACA,QACA,MACA,eACA,OAAO,WACP,aACA,QACA,cACA,OACA,UACA,OACA,MAAM,UACN,WACA,eACA,UAAU,cACV,OACA,MACA,QACA,SACA,aACA,cACA,cACA,aACA,YACA,aACA,WACA,GAAG,WACqB;CACxB,MAAM,OAAO,cAA0C;EACrD,IAAI,CAAC,UAAU,OAAO;EACtB,KAAA,GAAA,cAAA,YAAe,SAAS,IAAI,eAAe,SAAS,EAAE,OAAO;EAE7D,OAAO;GACL,MAAM;GACN,IAAA,GAAA,cAAA,UAAa,SAAS,GAAG,WAAW,EAAE;GACvC;IACA,CAAC,SAAS,CAAC;CACd,MAAM,WAAW,cAA8C;EAC7D,IAAI,CAAC,cAAc,OAAO;EAE1B,OAAO;GACL,MAAM;GACN,QAAQ;GACR,IAAA,GAAA,cAAA,UAAa,aAAa,GAAG,eAAe,EAAE;GAC/C;IACA,CAAC,aAAa,CAAC;CAClB,MAAM,WAAW,cAA8C;EAC7D,IAAI,CAAC,cAAc,OAAO;EAE1B,OAAO;GACL,MAAM;GACN,QAAQ;GACR,IAAA,GAAA,cAAA,UAAa,aAAa,GAAG,eAAe,EAAE;GAC/C;IACA,CAAC,aAAa,CAAC;CAClB,MAAM,QAAQ,cAA2C;EACvD,IAAI,CAAC,WAAW,OAAO;EACvB,KAAA,GAAA,cAAA,YAAe,UAAU,IAAI,eAAe,UAAU,EAAE,OAAO;EAE/D,OAAO;GACL,MAAM;GACN,IAAA,GAAA,cAAA,UAAa,UAAU,GAAG,YAAY,EAAE;GACzC;IACA,CAAC,UAAU,CAAC;CAEf,MAAM,eAAmC,aACtC,UAAU,WAAW,MAAM,MAAM,EAAE,EACpC,CAAC,KAAK,CACP;CA4ED,OAAO;EAAE,oBA1EoD,aAC1D,WAAW;GACV;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA,GAAG;GACJ,GACD;GACE;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACD,CAGwB;EAAE;EAAc;;AAuB7C,MAAa,gBAAgB,EAC3B,aACA,IACA,IACA,UACA,aACA,aACA,aACA,aACA,aACA,cACA,QACA,GAAG,WACoB;CACvB,MAAM,eAAmC,aACtC,UAAU,WAAW,MAAM,MAAM,EAAE,EACpC,CAAC,KAAK,CACP;CAgCD,OAAO;EAAE,mBA9B6C,aACnD,WAAW;GACV;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA,GAAG;GACJ,GACD;GACE;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACD,CAGuB;EAAE;EAAc;;AAiD5C,MAAa,kBAAkC,EAC7C,aACA,aACA,gBACA,mBACA,iBACA,YAAY,gBACZ,SACA,kBACA,SACA,eAAe,CAAC,UAAU,IAAI,KAAA,GAC9B,SACA,mBACA,MACA,oBAAoB,OACpB,OACA,YACA,YACA,SACA,QACA,cACA,OAAO,WACP,aACA,QACA,gBACA,kBACA,SACA,aACA,cACA,cACA,aACA,YACA,aACA,WACA,GAAG,WACyB;CAC5B,MAAM,QAAQ,cAA+C;EAC3D,KAAA,GAAA,cAAA,YAAe,UAAU,EACvB,QAAQ,UAAe;GACrB,MAAM,YAAY,MAAM,WAAW,QAAQ,qBAAqB,GAAG;GAEnE,MAAM,OAAO,MAAM,UAAU;GAE7B,OAAO,UAAU;IAAE;IAAM,GAAG;IAAO,CAAC;;OAGtC,OAAO;IAER,CAAC,SAAS,UAAU,CAAC;CACxB,MAAM,aAAa,cAAoD;EACrE,IAAI,CAAC,gBAAgB,OAAO;EAC5B,KAAA,GAAA,cAAA,YAAe,eAAe,IAAI,eAAe,eAAe,EAC9D,OAAO;EAET,OAAO;GACL,MAAM;GACN,GAAI,mBAAmB,OAAO,iBAAiB,EAAE;GAClD;IACA,CAAC,eAAe,CAAC;CAEpB,MAAM,eAAkC,aACrC,UAAU,WAAW,MAAM,MAAM,EAAE,EACpC,CAAC,KAAK,CACP;CA8ED,OAAO;EAAE,gBAxEL,aACD,WAAW;GACV;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA,GAAG;GACJ,GACD;GACE;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACD,CAGoB;EAAE;EAAc"}
@@ -45,13 +45,23 @@ const usePopover = ({ autoFocus = true, autoUpdate, modal = false, blockScrollOn
45
45
  whileElementsMounted
46
46
  });
47
47
  assignRef(updateRef, update);
48
+ const onRestoreFocus = useCallback(() => {
49
+ clearTimeout(closeTimeout.current);
50
+ closeTimeout.current = setTimeout(() => {
51
+ triggerRef.current?.focus();
52
+ });
53
+ }, []);
48
54
  const onKeyDown = useCallback((ev) => {
49
55
  runKeyAction(ev, { Escape: () => {
50
56
  if (!closeOnEsc) return;
51
57
  onClose();
52
- triggerRef.current?.focus();
58
+ onRestoreFocus();
53
59
  } });
54
- }, [closeOnEsc, onClose]);
60
+ }, [
61
+ closeOnEsc,
62
+ onClose,
63
+ onRestoreFocus
64
+ ]);
55
65
  const onBlur = useCallback((ev) => {
56
66
  const relatedTarget = getEventRelatedTarget(ev);
57
67
  const popup = relatedTarget?.hasAttribute("data-popup");
@@ -174,9 +184,9 @@ const usePopover = ({ autoFocus = true, autoUpdate, modal = false, blockScrollOn
174
184
  ...props,
175
185
  onClick: (0, utils_exports.handlerAll)(props.onClick, () => {
176
186
  onClose();
177
- triggerRef.current?.focus();
187
+ onRestoreFocus();
178
188
  })
179
- }), [onClose]),
189
+ }), [onClose, onRestoreFocus]),
180
190
  getContentProps,
181
191
  getFooterProps,
182
192
  getHeaderProps,
@@ -1 +1 @@
1
- {"version":3,"file":"use-popover.js","names":[],"sources":["../../../../src/components/popover/use-popover.tsx"],"sourcesContent":["\"use client\"\n\nimport type { FocusEvent, KeyboardEvent, RefObject } from \"react\"\nimport type { Direction, PropGetter } from \"../../core\"\nimport type { UseDisclosureProps } from \"../../hooks/use-disclosure\"\nimport type { UsePopperProps } from \"../../hooks/use-popper\"\nimport type { Dict } from \"../../utils\"\nimport type { UsePopupAnimationProps } from \"./popover\"\nimport { useCallback, useEffect, useId, useRef } from \"react\"\nimport { useEnvironment, useSplitProps } from \"../../core\"\nimport { useDisclosure } from \"../../hooks/use-disclosure\"\nimport { useEventListener } from \"../../hooks/use-event-listener\"\nimport { useFocusOnShow } from \"../../hooks/use-focus\"\nimport { useOutsideClick } from \"../../hooks/use-outside-click\"\nimport { popperProps, usePopper } from \"../../hooks/use-popper\"\nimport {\n ariaAttr,\n assignRef,\n contains,\n dataAttr,\n focusTransfer,\n focusTrap,\n getEventRelatedTarget,\n handlerAll,\n mergeRefs,\n runKeyAction,\n scrollLock,\n setAttribute,\n useSafeLayoutEffect,\n useUnmountEffect,\n} from \"../../utils\"\n\nexport interface UsePopoverProps\n extends Omit<UseDisclosureProps, \"timing\">, UsePopperProps<\"button\"> {\n /**\n * If `true`, focus will be transferred to the first interactive element when the popover opens.\n *\n * @default true\n */\n autoFocus?: boolean\n /**\n * If `true`, scrolling will be disabled on the `body` when the modal opens.\n *\n * @default false\n */\n blockScrollOnMount?: boolean\n /**\n * If `true`, the popover will close when you blur out it by clicking outside or tabbing out.\n *\n * @default true\n */\n closeOnBlur?: boolean\n /**\n * If `true`, the popover will hide on pressing Esc key.\n *\n * @default true\n */\n closeOnEsc?: boolean\n /**\n * If `true`, the popover will hide on scroll.\n *\n * @default false\n */\n closeOnScroll?: boolean\n /**\n * If `true`, the popover will be disabled.\n *\n * @default false\n */\n disabled?: boolean\n /**\n * The `ref` of the element that should receive focus when the popover opens.\n */\n initialFocusRef?: RefObject<HTMLElement | null>\n /**\n * If `true`, the popover will be modal.\n *\n * - scrolling is blocked.\n * - focus is trapped within the popover.\n *\n * @default false\n */\n modal?: boolean\n /**\n * If `true`, the popover will be opened when click on the field.\n *\n * @default true\n */\n openOnClick?: boolean\n /**\n * The placement of the popper relative to its reference.\n *\n * @default 'end'\n */\n placement?: Direction\n /**\n * If `true`, the focus will be transferred to the popover content when the tab key is pressed.\n *\n * @default true\n */\n transferFocus?: boolean\n /**\n * Update the position of the floating element, re-rendering the component if required.\n */\n updateRef?: RefObject<() => void>\n}\n\nexport const usePopover = ({\n autoFocus = true,\n autoUpdate,\n modal = false,\n blockScrollOnMount = modal,\n closeOnBlur = true,\n closeOnEsc = true,\n closeOnScroll,\n defaultOpen,\n disabled,\n elements,\n flip,\n gutter,\n initialFocusRef,\n matchWidth,\n middleware,\n offset,\n open: openProp,\n openOnClick = true,\n placement = \"end\",\n platform,\n preventOverflow,\n strategy,\n transferFocus = true,\n transform,\n updateRef,\n whileElementsMounted,\n onClose: onCloseProp,\n onOpen: onOpenProp,\n}: UsePopoverProps = {}) => {\n const { getDocument } = useEnvironment()\n const headerId = useId()\n const bodyId = useId()\n const contentId = useId()\n const anchorRef = useRef<HTMLElement>(null)\n const triggerRef = useRef<HTMLButtonElement>(null)\n const contentRef = useRef<HTMLElement>(null)\n const openTimeout = useRef<NodeJS.Timeout>(undefined)\n const closeTimeout = useRef<NodeJS.Timeout>(undefined)\n const { open, onClose, onOpen } = useDisclosure({\n defaultOpen,\n open: openProp,\n onClose: onCloseProp,\n onOpen: onOpenProp,\n })\n const { refs, update, getPopperProps } = usePopper<\"button\">({\n autoUpdate,\n elements,\n flip,\n gutter,\n matchWidth,\n middleware,\n offset,\n open,\n placement,\n platform,\n preventOverflow,\n strategy,\n transform,\n whileElementsMounted,\n })\n\n assignRef(updateRef, update)\n\n const onKeyDown = useCallback(\n (ev: KeyboardEvent<HTMLElement>) => {\n runKeyAction(ev, {\n Escape: () => {\n if (!closeOnEsc) return\n\n onClose()\n\n triggerRef.current?.focus()\n },\n })\n },\n [closeOnEsc, onClose],\n )\n\n const onBlur = useCallback(\n (ev: FocusEvent<HTMLDivElement>) => {\n const relatedTarget = getEventRelatedTarget(ev)\n const popup = relatedTarget?.hasAttribute(\"data-popup\")\n\n if (contains(triggerRef.current, relatedTarget)) return\n if (contains(contentRef.current, relatedTarget)) return\n if (contains(contentRef.current, ev.target) && popup) return\n\n if (closeOnBlur) onClose()\n },\n [closeOnBlur, onClose],\n )\n\n useEventListener(getDocument(), \"scroll\", () => {\n if (open && closeOnScroll) onClose()\n })\n\n useFocusOnShow(contentRef, {\n focusTarget: initialFocusRef,\n shouldFocus: autoFocus,\n visible: open,\n })\n\n useOutsideClick({\n ref: [contentRef, triggerRef],\n enabled: open && closeOnBlur,\n handler: onClose,\n })\n\n useSafeLayoutEffect(() => {\n const el = contentRef.current\n const hasHeader = !!getDocument()?.getElementById(headerId)\n const hasBody = !!getDocument()?.getElementById(bodyId)\n\n if (el && hasHeader) setAttribute(el, \"aria-labelledby\", headerId)\n if (el && hasBody) setAttribute(el, \"aria-describedby\", bodyId)\n }, [open, headerId, bodyId])\n\n useEffect(() => {\n if (!open || !modal) return\n\n return focusTrap(contentRef.current)\n }, [open, modal])\n\n useEffect(() => {\n if (!open || !blockScrollOnMount) return\n\n return scrollLock(contentRef.current)\n }, [open, modal, blockScrollOnMount])\n\n useEffect(() => {\n if (!open || modal || !transferFocus) return\n\n return focusTransfer(contentRef.current, triggerRef.current)\n }, [open, modal, transferFocus])\n\n useUnmountEffect(() => {\n clearTimeout(openTimeout.current)\n clearTimeout(closeTimeout.current)\n })\n\n const getTriggerProps: PropGetter<\"button\"> = useCallback(\n ({ ref, ...props } = {}) => ({\n \"aria-controls\": open ? contentId : undefined,\n \"aria-disabled\": ariaAttr(disabled),\n \"aria-expanded\": open,\n \"aria-haspopup\": \"dialog\",\n role: \"button\",\n ...props,\n ref: mergeRefs(ref, triggerRef, (node) => {\n if (anchorRef.current == null) refs.setReference(node)\n }),\n onBlur: handlerAll(props.onBlur, (ev) =>\n !contains(contentRef.current, getEventRelatedTarget(ev)) && closeOnBlur\n ? onClose()\n : void 0,\n ),\n onClick: handlerAll(\n props.onClick,\n !open ? (!disabled && openOnClick ? onOpen : undefined) : onClose,\n ),\n onKeyDown: handlerAll(props.onKeyDown, onKeyDown),\n }),\n [\n closeOnBlur,\n contentId,\n disabled,\n onClose,\n onKeyDown,\n onOpen,\n open,\n openOnClick,\n refs,\n ],\n )\n\n const getAnchorProps: PropGetter = useCallback(\n ({ ref, ...props } = {}) => ({\n ...props,\n ref: mergeRefs(ref, anchorRef, refs.setReference),\n }),\n [refs.setReference],\n )\n\n const getPositionerProps: PropGetter = useCallback(\n (props) => getPopperProps(props),\n [getPopperProps],\n )\n\n const getContentProps: PropGetter = useCallback(\n ({ ref, ...props } = {}) => ({\n id: contentId,\n \"aria-hidden\": !open,\n \"aria-modal\": modal ? \"true\" : undefined,\n \"data-close\": dataAttr(!open),\n \"data-open\": dataAttr(open),\n \"data-popup\": dataAttr(true),\n role: \"dialog\",\n tabIndex: -1,\n ...props,\n ref: mergeRefs(ref, contentRef),\n onBlur: handlerAll(props.onBlur, onBlur),\n onKeyDown: handlerAll(props.onKeyDown, onKeyDown),\n }),\n [contentId, open, modal, onBlur, onKeyDown],\n )\n\n const getHeaderProps: PropGetter = useCallback(\n (props) => ({ id: headerId, ...props }),\n [headerId],\n )\n\n const getBodyProps: PropGetter = useCallback(\n (props) => ({ id: bodyId, ...props }),\n [bodyId],\n )\n\n const getFooterProps: PropGetter = useCallback((props) => ({ ...props }), [])\n\n const getCloseTriggerProps: PropGetter<\"button\"> = useCallback(\n (props = {}) => ({\n ...props,\n onClick: handlerAll(props.onClick, () => {\n onClose()\n\n triggerRef.current?.focus()\n }),\n }),\n [onClose],\n )\n\n return {\n open,\n getAnchorProps,\n getBodyProps,\n getCloseTriggerProps,\n getContentProps,\n getFooterProps,\n getHeaderProps,\n getPositionerProps,\n getTriggerProps,\n onClose,\n onOpen,\n }\n}\n\nexport type UsePopoverReturn = ReturnType<typeof usePopover>\n\nexport const popoverProps: (\n | keyof UsePopoverProps\n | keyof UsePopupAnimationProps\n)[] = [\n ...popperProps,\n \"autoFocus\",\n \"transferFocus\",\n \"blockScrollOnMount\",\n \"closeOnBlur\",\n \"closeOnEsc\",\n \"closeOnScroll\",\n \"openOnClick\",\n \"disabled\",\n \"initialFocusRef\",\n \"modal\",\n \"updateRef\",\n \"defaultOpen\",\n \"onOpen\",\n \"onClose\",\n \"animationScheme\",\n \"duration\",\n]\n\nexport const usePopoverProps = <\n Y extends Dict = Dict,\n M extends keyof UsePopoverProps | keyof UsePopupAnimationProps =\n | keyof UsePopoverProps\n | keyof UsePopupAnimationProps,\n>(\n props: Y,\n omitKeys?: M[],\n) => {\n return useSplitProps(\n props,\n popoverProps.filter((key) => !omitKeys?.includes(key as M)),\n ) as unknown as [\n keyof UsePopoverProps | keyof UsePopupAnimationProps extends M\n ? UsePopoverProps & UsePopupAnimationProps\n : Omit<UsePopoverProps & UsePopupAnimationProps, M>,\n Omit<\n Y,\n keyof UsePopoverProps | keyof UsePopupAnimationProps extends M\n ? keyof UsePopoverProps | keyof UsePopupAnimationProps\n : Exclude<keyof UsePopoverProps | keyof UsePopupAnimationProps, M>\n >,\n ]\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"use-popover.js","names":[],"sources":["../../../../src/components/popover/use-popover.tsx"],"sourcesContent":["\"use client\"\n\nimport type { FocusEvent, KeyboardEvent, RefObject } from \"react\"\nimport type { Direction, PropGetter } from \"../../core\"\nimport type { UseDisclosureProps } from \"../../hooks/use-disclosure\"\nimport type { UsePopperProps } from \"../../hooks/use-popper\"\nimport type { Dict } from \"../../utils\"\nimport type { UsePopupAnimationProps } from \"./popover\"\nimport { useCallback, useEffect, useId, useRef } from \"react\"\nimport { useEnvironment, useSplitProps } from \"../../core\"\nimport { useDisclosure } from \"../../hooks/use-disclosure\"\nimport { useEventListener } from \"../../hooks/use-event-listener\"\nimport { useFocusOnShow } from \"../../hooks/use-focus\"\nimport { useOutsideClick } from \"../../hooks/use-outside-click\"\nimport { popperProps, usePopper } from \"../../hooks/use-popper\"\nimport {\n ariaAttr,\n assignRef,\n contains,\n dataAttr,\n focusTransfer,\n focusTrap,\n getEventRelatedTarget,\n handlerAll,\n mergeRefs,\n runKeyAction,\n scrollLock,\n setAttribute,\n useSafeLayoutEffect,\n useUnmountEffect,\n} from \"../../utils\"\n\nexport interface UsePopoverProps\n extends Omit<UseDisclosureProps, \"timing\">, UsePopperProps<\"button\"> {\n /**\n * If `true`, focus will be transferred to the first interactive element when the popover opens.\n *\n * @default true\n */\n autoFocus?: boolean\n /**\n * If `true`, scrolling will be disabled on the `body` when the modal opens.\n *\n * @default false\n */\n blockScrollOnMount?: boolean\n /**\n * If `true`, the popover will close when you blur out it by clicking outside or tabbing out.\n *\n * @default true\n */\n closeOnBlur?: boolean\n /**\n * If `true`, the popover will hide on pressing Esc key.\n *\n * @default true\n */\n closeOnEsc?: boolean\n /**\n * If `true`, the popover will hide on scroll.\n *\n * @default false\n */\n closeOnScroll?: boolean\n /**\n * If `true`, the popover will be disabled.\n *\n * @default false\n */\n disabled?: boolean\n /**\n * The `ref` of the element that should receive focus when the popover opens.\n */\n initialFocusRef?: RefObject<HTMLElement | null>\n /**\n * If `true`, the popover will be modal.\n *\n * - scrolling is blocked.\n * - focus is trapped within the popover.\n *\n * @default false\n */\n modal?: boolean\n /**\n * If `true`, the popover will be opened when click on the field.\n *\n * @default true\n */\n openOnClick?: boolean\n /**\n * The placement of the popper relative to its reference.\n *\n * @default 'end'\n */\n placement?: Direction\n /**\n * If `true`, the focus will be transferred to the popover content when the tab key is pressed.\n *\n * @default true\n */\n transferFocus?: boolean\n /**\n * Update the position of the floating element, re-rendering the component if required.\n */\n updateRef?: RefObject<() => void>\n}\n\nexport const usePopover = ({\n autoFocus = true,\n autoUpdate,\n modal = false,\n blockScrollOnMount = modal,\n closeOnBlur = true,\n closeOnEsc = true,\n closeOnScroll,\n defaultOpen,\n disabled,\n elements,\n flip,\n gutter,\n initialFocusRef,\n matchWidth,\n middleware,\n offset,\n open: openProp,\n openOnClick = true,\n placement = \"end\",\n platform,\n preventOverflow,\n strategy,\n transferFocus = true,\n transform,\n updateRef,\n whileElementsMounted,\n onClose: onCloseProp,\n onOpen: onOpenProp,\n}: UsePopoverProps = {}) => {\n const { getDocument } = useEnvironment()\n const headerId = useId()\n const bodyId = useId()\n const contentId = useId()\n const anchorRef = useRef<HTMLElement>(null)\n const triggerRef = useRef<HTMLButtonElement>(null)\n const contentRef = useRef<HTMLElement>(null)\n const openTimeout = useRef<NodeJS.Timeout>(undefined)\n const closeTimeout = useRef<NodeJS.Timeout>(undefined)\n const { open, onClose, onOpen } = useDisclosure({\n defaultOpen,\n open: openProp,\n onClose: onCloseProp,\n onOpen: onOpenProp,\n })\n const { refs, update, getPopperProps } = usePopper<\"button\">({\n autoUpdate,\n elements,\n flip,\n gutter,\n matchWidth,\n middleware,\n offset,\n open,\n placement,\n platform,\n preventOverflow,\n strategy,\n transform,\n whileElementsMounted,\n })\n\n assignRef(updateRef, update)\n\n const onRestoreFocus = useCallback(() => {\n clearTimeout(closeTimeout.current)\n closeTimeout.current = setTimeout(() => {\n triggerRef.current?.focus()\n })\n }, [])\n\n const onKeyDown = useCallback(\n (ev: KeyboardEvent<HTMLElement>) => {\n runKeyAction(ev, {\n Escape: () => {\n if (!closeOnEsc) return\n\n onClose()\n onRestoreFocus()\n },\n })\n },\n [closeOnEsc, onClose, onRestoreFocus],\n )\n\n const onBlur = useCallback(\n (ev: FocusEvent<HTMLDivElement>) => {\n const relatedTarget = getEventRelatedTarget(ev)\n const popup = relatedTarget?.hasAttribute(\"data-popup\")\n\n if (contains(triggerRef.current, relatedTarget)) return\n if (contains(contentRef.current, relatedTarget)) return\n if (contains(contentRef.current, ev.target) && popup) return\n\n if (closeOnBlur) onClose()\n },\n [closeOnBlur, onClose],\n )\n\n useEventListener(getDocument(), \"scroll\", () => {\n if (open && closeOnScroll) onClose()\n })\n\n useFocusOnShow(contentRef, {\n focusTarget: initialFocusRef,\n shouldFocus: autoFocus,\n visible: open,\n })\n\n useOutsideClick({\n ref: [contentRef, triggerRef],\n enabled: open && closeOnBlur,\n handler: onClose,\n })\n\n useSafeLayoutEffect(() => {\n const el = contentRef.current\n const hasHeader = !!getDocument()?.getElementById(headerId)\n const hasBody = !!getDocument()?.getElementById(bodyId)\n\n if (el && hasHeader) setAttribute(el, \"aria-labelledby\", headerId)\n if (el && hasBody) setAttribute(el, \"aria-describedby\", bodyId)\n }, [open, headerId, bodyId])\n\n useEffect(() => {\n if (!open || !modal) return\n\n return focusTrap(contentRef.current)\n }, [open, modal])\n\n useEffect(() => {\n if (!open || !blockScrollOnMount) return\n\n return scrollLock(contentRef.current)\n }, [open, modal, blockScrollOnMount])\n\n useEffect(() => {\n if (!open || modal || !transferFocus) return\n\n return focusTransfer(contentRef.current, triggerRef.current)\n }, [open, modal, transferFocus])\n\n useUnmountEffect(() => {\n clearTimeout(openTimeout.current)\n clearTimeout(closeTimeout.current)\n })\n\n const getTriggerProps: PropGetter<\"button\"> = useCallback(\n ({ ref, ...props } = {}) => ({\n \"aria-controls\": open ? contentId : undefined,\n \"aria-disabled\": ariaAttr(disabled),\n \"aria-expanded\": open,\n \"aria-haspopup\": \"dialog\",\n role: \"button\",\n ...props,\n ref: mergeRefs(ref, triggerRef, (node) => {\n if (anchorRef.current == null) refs.setReference(node)\n }),\n onBlur: handlerAll(props.onBlur, (ev) =>\n !contains(contentRef.current, getEventRelatedTarget(ev)) && closeOnBlur\n ? onClose()\n : void 0,\n ),\n onClick: handlerAll(\n props.onClick,\n !open ? (!disabled && openOnClick ? onOpen : undefined) : onClose,\n ),\n onKeyDown: handlerAll(props.onKeyDown, onKeyDown),\n }),\n [\n closeOnBlur,\n contentId,\n disabled,\n onClose,\n onKeyDown,\n onOpen,\n open,\n openOnClick,\n refs,\n ],\n )\n\n const getAnchorProps: PropGetter = useCallback(\n ({ ref, ...props } = {}) => ({\n ...props,\n ref: mergeRefs(ref, anchorRef, refs.setReference),\n }),\n [refs.setReference],\n )\n\n const getPositionerProps: PropGetter = useCallback(\n (props) => getPopperProps(props),\n [getPopperProps],\n )\n\n const getContentProps: PropGetter = useCallback(\n ({ ref, ...props } = {}) => ({\n id: contentId,\n \"aria-hidden\": !open,\n \"aria-modal\": modal ? \"true\" : undefined,\n \"data-close\": dataAttr(!open),\n \"data-open\": dataAttr(open),\n \"data-popup\": dataAttr(true),\n role: \"dialog\",\n tabIndex: -1,\n ...props,\n ref: mergeRefs(ref, contentRef),\n onBlur: handlerAll(props.onBlur, onBlur),\n onKeyDown: handlerAll(props.onKeyDown, onKeyDown),\n }),\n [contentId, open, modal, onBlur, onKeyDown],\n )\n\n const getHeaderProps: PropGetter = useCallback(\n (props) => ({ id: headerId, ...props }),\n [headerId],\n )\n\n const getBodyProps: PropGetter = useCallback(\n (props) => ({ id: bodyId, ...props }),\n [bodyId],\n )\n\n const getFooterProps: PropGetter = useCallback((props) => ({ ...props }), [])\n\n const getCloseTriggerProps: PropGetter<\"button\"> = useCallback(\n (props = {}) => ({\n ...props,\n onClick: handlerAll(props.onClick, () => {\n onClose()\n onRestoreFocus()\n }),\n }),\n [onClose, onRestoreFocus],\n )\n\n return {\n open,\n getAnchorProps,\n getBodyProps,\n getCloseTriggerProps,\n getContentProps,\n getFooterProps,\n getHeaderProps,\n getPositionerProps,\n getTriggerProps,\n onClose,\n onOpen,\n }\n}\n\nexport type UsePopoverReturn = ReturnType<typeof usePopover>\n\nexport const popoverProps: (\n | keyof UsePopoverProps\n | keyof UsePopupAnimationProps\n)[] = [\n ...popperProps,\n \"autoFocus\",\n \"transferFocus\",\n \"blockScrollOnMount\",\n \"closeOnBlur\",\n \"closeOnEsc\",\n \"closeOnScroll\",\n \"openOnClick\",\n \"disabled\",\n \"initialFocusRef\",\n \"modal\",\n \"updateRef\",\n \"defaultOpen\",\n \"onOpen\",\n \"onClose\",\n \"animationScheme\",\n \"duration\",\n]\n\nexport const usePopoverProps = <\n Y extends Dict = Dict,\n M extends keyof UsePopoverProps | keyof UsePopupAnimationProps =\n | keyof UsePopoverProps\n | keyof UsePopupAnimationProps,\n>(\n props: Y,\n omitKeys?: M[],\n) => {\n return useSplitProps(\n props,\n popoverProps.filter((key) => !omitKeys?.includes(key as M)),\n ) as unknown as [\n keyof UsePopoverProps | keyof UsePopupAnimationProps extends M\n ? UsePopoverProps & UsePopupAnimationProps\n : Omit<UsePopoverProps & UsePopupAnimationProps, M>,\n Omit<\n Y,\n keyof UsePopoverProps | keyof UsePopupAnimationProps extends M\n ? keyof UsePopoverProps | keyof UsePopupAnimationProps\n : Exclude<keyof UsePopoverProps | keyof UsePopupAnimationProps, M>\n >,\n ]\n}\n"],"mappings":"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"}
@@ -255,22 +255,23 @@ const useCombobox = (props = {}) => {
255
255
  if (open) return;
256
256
  activeDescendant.current = null;
257
257
  }, [open]);
258
- const getTriggerProps = useCallback(({ "aria-label": ariaLabel, "aria-labelledby": ariaLabelledby, ...props } = {}) => mergeProps({
259
- ref: triggerRef,
260
- "aria-controls": open ? contentId : void 0,
261
- "aria-disabled": (0, utils_exports.ariaAttr)(!interactive),
262
- "aria-expanded": open,
263
- "aria-haspopup": "listbox",
264
- "aria-label": ariaLabel || ariaLabelProp,
265
- "aria-labelledby": (0, utils_exports.cx)(ariaLabelledby, ariaLabelledbyProp),
266
- "data-disabled": (0, utils_exports.dataAttr)(disabled),
267
- "data-readonly": (0, utils_exports.dataAttr)(readOnly),
268
- role: "combobox",
269
- tabIndex: interactive ? 0 : -1
270
- }, rest, props, {
271
- onClick,
272
- onKeyDown
273
- })(), [
258
+ const getTriggerProps = useCallback(({ "aria-label": ariaLabel, "aria-labelledby": ariaLabelledby, ...props } = {}) => ({
259
+ ...mergeProps({
260
+ ref: triggerRef,
261
+ "aria-controls": open ? contentId : void 0,
262
+ "aria-disabled": (0, utils_exports.ariaAttr)(!interactive),
263
+ "aria-expanded": open,
264
+ "aria-haspopup": "listbox",
265
+ "aria-label": ariaLabel || ariaLabelProp,
266
+ "aria-labelledby": (0, utils_exports.cx)(ariaLabelledby, ariaLabelledbyProp),
267
+ "data-disabled": (0, utils_exports.dataAttr)(disabled),
268
+ "data-readonly": (0, utils_exports.dataAttr)(readOnly),
269
+ role: "combobox",
270
+ tabIndex: interactive ? 0 : -1
271
+ }, rest, props)({ mergeEvent: false }),
272
+ onClick: (0, utils_exports.handlerAll)(props.onClick, rest.onClick, onClick),
273
+ onKeyDown: (0, utils_exports.handlerAll)(props.onKeyDown, rest.onKeyDown, onKeyDown)
274
+ }), [
274
275
  open,
275
276
  contentId,
276
277
  interactive,
@@ -355,21 +356,21 @@ const useComboboxItem = ({ id, "aria-disabled": ariaDisabled, "data-disabled": d
355
356
  onSelect,
356
357
  value
357
358
  ]);
358
- const getItemProps = useCallback((props = {}) => mergeProps({
359
- id,
360
- ref: itemRef,
361
- "aria-disabled": ariaDisabled ?? (0, utils_exports.ariaAttr)(disabled),
362
- "aria-selected": selected,
363
- "data-disabled": dataDisabled ?? (0, utils_exports.dataAttr)(disabled),
364
- "data-selected": (0, utils_exports.dataAttr)(selected),
365
- "data-value": value,
366
- role: "option",
367
- tabIndex: -1
368
- }, rest, props, {
369
- ref: register,
370
- onClick,
371
- onMouseMove: onActive
372
- })(), [
359
+ const getItemProps = useCallback((props = {}) => ({
360
+ ...mergeProps({
361
+ id,
362
+ ref: itemRef,
363
+ "aria-disabled": ariaDisabled ?? (0, utils_exports.ariaAttr)(disabled),
364
+ "aria-selected": selected,
365
+ "data-disabled": dataDisabled ?? (0, utils_exports.dataAttr)(disabled),
366
+ "data-selected": (0, utils_exports.dataAttr)(selected),
367
+ "data-value": value,
368
+ role: "option",
369
+ tabIndex: -1
370
+ }, rest, props, { ref: register })({ mergeEvent: false }),
371
+ onClick: (0, utils_exports.handlerAll)(props.onClick, rest.onClick, onClick),
372
+ onMouseMove: (0, utils_exports.handlerAll)(props.onMouseMove, rest.onMouseMove, onActive)
373
+ }), [
373
374
  id,
374
375
  ariaDisabled,
375
376
  disabled,