@economic/taco 14.0.0-tanstack-virtual-update.0 → 14.0.1-EC-83852-types.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (162) hide show
  1. package/dist/charts/components/Area/AreaChart.cjs.map +1 -1
  2. package/dist/charts/components/Area/AreaChart.js.map +1 -1
  3. package/dist/charts/components/Bar/BarChart.cjs +2 -2
  4. package/dist/charts/components/Bar/BarChart.cjs.map +1 -1
  5. package/dist/charts/components/Bar/BarChart.js +2 -2
  6. package/dist/charts/components/Bar/BarChart.js.map +1 -1
  7. package/dist/charts/components/ChartWrapper.cjs.map +1 -1
  8. package/dist/charts/components/ChartWrapper.js.map +1 -1
  9. package/dist/charts/components/Composed/BarLineChart.cjs.map +1 -1
  10. package/dist/charts/components/Composed/BarLineChart.js.map +1 -1
  11. package/dist/charts/components/LegacyDonut/LegacyDonutChart.cjs +114 -103
  12. package/dist/charts/components/LegacyDonut/LegacyDonutChart.cjs.map +1 -1
  13. package/dist/charts/components/LegacyDonut/LegacyDonutChart.d.ts +13 -2
  14. package/dist/charts/components/LegacyDonut/LegacyDonutChart.js +114 -103
  15. package/dist/charts/components/LegacyDonut/LegacyDonutChart.js.map +1 -1
  16. package/dist/charts/components/Legend.cjs +1 -1
  17. package/dist/charts/components/Legend.cjs.map +1 -1
  18. package/dist/charts/components/Legend.js +1 -1
  19. package/dist/charts/components/Legend.js.map +1 -1
  20. package/dist/charts/components/Line/LineChart.cjs.map +1 -1
  21. package/dist/charts/components/Line/LineChart.d.ts +2 -1
  22. package/dist/charts/components/Line/LineChart.js.map +1 -1
  23. package/dist/charts/components/Pie/PieChart.cjs +4 -4
  24. package/dist/charts/components/Pie/PieChart.cjs.map +1 -1
  25. package/dist/charts/components/Pie/PieChart.js +4 -4
  26. package/dist/charts/components/Pie/PieChart.js.map +1 -1
  27. package/dist/charts/components/Pie/util.cjs.map +1 -1
  28. package/dist/charts/components/Pie/util.d.ts +2 -1
  29. package/dist/charts/components/Pie/util.js.map +1 -1
  30. package/dist/charts/components/types.d.ts +2 -1
  31. package/dist/charts/components/useChartData.cjs.map +1 -1
  32. package/dist/charts/components/useChartData.d.ts +4 -1
  33. package/dist/charts/components/useChartData.js.map +1 -1
  34. package/dist/charts/utils/color.cjs +6 -10
  35. package/dist/charts/utils/color.cjs.map +1 -1
  36. package/dist/charts/utils/color.js +6 -10
  37. package/dist/charts/utils/color.js.map +1 -1
  38. package/dist/charts/utils/common.cjs +8 -8
  39. package/dist/charts/utils/common.cjs.map +1 -1
  40. package/dist/charts/utils/common.d.ts +2 -2
  41. package/dist/charts/utils/common.js +8 -8
  42. package/dist/charts/utils/common.js.map +1 -1
  43. package/dist/components/AlertDialog/Context.cjs.map +1 -1
  44. package/dist/components/AlertDialog/Context.d.ts +1 -1
  45. package/dist/components/AlertDialog/Context.js.map +1 -1
  46. package/dist/components/Combobox/useCombobox.cjs.map +1 -1
  47. package/dist/components/Combobox/useCombobox.d.ts +1 -1
  48. package/dist/components/Combobox/useCombobox.js.map +1 -1
  49. package/dist/components/Dialog/Context.cjs.map +1 -1
  50. package/dist/components/Dialog/Context.d.ts +1 -1
  51. package/dist/components/Dialog/Context.js.map +1 -1
  52. package/dist/components/Dialog/components/Content.cjs.map +1 -1
  53. package/dist/components/Dialog/components/Content.js.map +1 -1
  54. package/dist/components/Drawer/useDrawerStack.cjs.map +1 -1
  55. package/dist/components/Drawer/useDrawerStack.js.map +1 -1
  56. package/dist/components/Hanger/Hanger.cjs.map +1 -1
  57. package/dist/components/Hanger/Hanger.js.map +1 -1
  58. package/dist/components/Header/components/PrimaryNavigation.cjs.map +1 -1
  59. package/dist/components/Header/components/PrimaryNavigation.js.map +1 -1
  60. package/dist/components/Menu/components/Content.cjs +2 -1
  61. package/dist/components/Menu/components/Content.cjs.map +1 -1
  62. package/dist/components/Menu/components/Content.js +2 -1
  63. package/dist/components/Menu/components/Content.js.map +1 -1
  64. package/dist/components/Menu/components/Item.cjs.map +1 -1
  65. package/dist/components/Menu/components/Item.d.ts +2 -2
  66. package/dist/components/Menu/components/Item.js.map +1 -1
  67. package/dist/components/Menu/components/Trigger.cjs +1 -5
  68. package/dist/components/Menu/components/Trigger.cjs.map +1 -1
  69. package/dist/components/Menu/components/Trigger.js +1 -5
  70. package/dist/components/Menu/components/Trigger.js.map +1 -1
  71. package/dist/components/OverflowGroup/OverflowGroup.cjs +2 -1
  72. package/dist/components/OverflowGroup/OverflowGroup.cjs.map +1 -1
  73. package/dist/components/OverflowGroup/OverflowGroup.js +2 -1
  74. package/dist/components/OverflowGroup/OverflowGroup.js.map +1 -1
  75. package/dist/components/Provider/Provider.cjs.map +1 -1
  76. package/dist/components/Provider/Provider.d.ts +1 -1
  77. package/dist/components/Provider/Provider.js.map +1 -1
  78. package/dist/components/Select2/Select2.cjs.map +1 -1
  79. package/dist/components/Select2/Select2.js.map +1 -1
  80. package/dist/components/Table3/components/Columns/Cell/EditingControlCell.cjs.map +1 -1
  81. package/dist/components/Table3/components/Columns/Cell/EditingControlCell.js.map +1 -1
  82. package/dist/components/Table3/useTable3.cjs +8 -6
  83. package/dist/components/Table3/useTable3.cjs.map +1 -1
  84. package/dist/components/Table3/useTable3.js +8 -6
  85. package/dist/components/Table3/useTable3.js.map +1 -1
  86. package/dist/components/Table3/util/editing.cjs.map +1 -1
  87. package/dist/components/Table3/util/editing.d.ts +1 -1
  88. package/dist/components/Table3/util/editing.js.map +1 -1
  89. package/dist/hooks/useBoundaryOverflowDetection.cjs.map +1 -1
  90. package/dist/hooks/useBoundaryOverflowDetection.d.ts +1 -1
  91. package/dist/hooks/useBoundaryOverflowDetection.js.map +1 -1
  92. package/dist/hooks/useBoundingClientRectListener.cjs.map +1 -1
  93. package/dist/hooks/useBoundingClientRectListener.d.ts +1 -1
  94. package/dist/hooks/useBoundingClientRectListener.js.map +1 -1
  95. package/dist/hooks/useControlled.cjs +6 -10
  96. package/dist/hooks/useControlled.cjs.map +1 -1
  97. package/dist/hooks/useControlled.js +6 -10
  98. package/dist/hooks/useControlled.js.map +1 -1
  99. package/dist/hooks/useIsFormControl.cjs.map +1 -1
  100. package/dist/hooks/useIsFormControl.d.ts +1 -1
  101. package/dist/hooks/useIsFormControl.js.map +1 -1
  102. package/dist/hooks/useMergedRef.cjs.map +1 -1
  103. package/dist/hooks/useMergedRef.js.map +1 -1
  104. package/dist/primitives/Button.cjs.map +1 -1
  105. package/dist/primitives/Button.js.map +1 -1
  106. package/dist/primitives/Collection/components/Root.cjs +6 -13
  107. package/dist/primitives/Collection/components/Root.cjs.map +1 -1
  108. package/dist/primitives/Collection/components/Root.js +6 -13
  109. package/dist/primitives/Collection/components/Root.js.map +1 -1
  110. package/dist/primitives/Table/Core/components/Columns/Cell/BuiltIns/DisplayCell.cjs.map +1 -1
  111. package/dist/primitives/Table/Core/components/Columns/Cell/BuiltIns/DisplayCell.js.map +1 -1
  112. package/dist/primitives/Table/Core/components/Columns/Cell/BuiltIns/GroupedCell.cjs.map +1 -1
  113. package/dist/primitives/Table/Core/components/Columns/Cell/BuiltIns/GroupedCell.js.map +1 -1
  114. package/dist/primitives/Table/Core/components/Row/BuiltIns/DisplayRow.cjs +2 -1
  115. package/dist/primitives/Table/Core/components/Row/BuiltIns/DisplayRow.cjs.map +1 -1
  116. package/dist/primitives/Table/Core/components/Row/BuiltIns/DisplayRow.js +2 -1
  117. package/dist/primitives/Table/Core/components/Row/BuiltIns/DisplayRow.js.map +1 -1
  118. package/dist/primitives/Table/Core/listeners/useTableRowActiveListener.cjs.map +1 -1
  119. package/dist/primitives/Table/Core/listeners/useTableRowActiveListener.d.ts +2 -2
  120. package/dist/primitives/Table/Core/listeners/useTableRowActiveListener.js.map +1 -1
  121. package/dist/primitives/Table/useTableManager/features/useTableRowActive.cjs.map +1 -1
  122. package/dist/primitives/Table/useTableManager/features/useTableRowActive.d.ts +1 -1
  123. package/dist/primitives/Table/useTableManager/features/useTableRowActive.js.map +1 -1
  124. package/dist/primitives/Table/useTableManager/util/dataTypes.cjs.map +1 -1
  125. package/dist/primitives/Table/useTableManager/util/dataTypes.d.ts +3 -3
  126. package/dist/primitives/Table/useTableManager/util/dataTypes.js.map +1 -1
  127. package/dist/types.cjs.map +1 -1
  128. package/dist/types.d.ts +1 -1
  129. package/dist/types.js.map +1 -1
  130. package/dist/utils/dataTypes.cjs.map +1 -1
  131. package/dist/utils/dataTypes.d.ts +1 -1
  132. package/dist/utils/dataTypes.js.map +1 -1
  133. package/dist/utils/debounce.cjs.map +1 -1
  134. package/dist/utils/debounce.d.ts +1 -1
  135. package/dist/utils/debounce.js.map +1 -1
  136. package/dist/utils/dom.cjs +1 -1
  137. package/dist/utils/dom.cjs.map +1 -1
  138. package/dist/utils/dom.d.ts +2 -2
  139. package/dist/utils/dom.js +1 -1
  140. package/dist/utils/dom.js.map +1 -1
  141. package/dist/utils/flattenChildren.cjs +1 -0
  142. package/dist/utils/flattenChildren.cjs.map +1 -1
  143. package/dist/utils/flattenChildren.d.ts +3 -0
  144. package/dist/utils/flattenChildren.js +2 -1
  145. package/dist/utils/flattenChildren.js.map +1 -1
  146. package/dist/utils/hooks/useDraggable.cjs.map +1 -1
  147. package/dist/utils/hooks/useDraggable.d.ts +9 -1
  148. package/dist/utils/hooks/useDraggable.js.map +1 -1
  149. package/dist/utils/hooks/useListScrollTo.cjs.map +1 -1
  150. package/dist/utils/hooks/useListScrollTo.d.ts +4 -1
  151. package/dist/utils/hooks/useListScrollTo.js.map +1 -1
  152. package/dist/utils/hooks/useOnClickOutside.cjs.map +1 -1
  153. package/dist/utils/hooks/useOnClickOutside.d.ts +1 -1
  154. package/dist/utils/hooks/useOnClickOutside.js.map +1 -1
  155. package/dist/utils/hooks/useTruncated.cjs.map +1 -1
  156. package/dist/utils/hooks/useTruncated.d.ts +2 -1
  157. package/dist/utils/hooks/useTruncated.js.map +1 -1
  158. package/dist/utils/mergeRefs.cjs.map +1 -1
  159. package/dist/utils/mergeRefs.d.ts +1 -1
  160. package/dist/utils/mergeRefs.js.map +1 -1
  161. package/dist/utils/storyutils.d.ts +1 -3
  162. package/package.json +4 -5
@@ -6,114 +6,125 @@ import { CenteredLabel } from "./CenteredLabel.js";
6
6
  import { Legend } from "./Legend.js";
7
7
  import { HOVER_DONUT_WIDTH, DONUT_WIDTH } from "./util.js";
8
8
  const Segment = (_) => null;
9
- const LegacyDonutChart = function LegacyDonutChart2({ children, formatter, onClick, label }) {
10
- const ref = React__default.useRef(null);
11
- const [radius, setRadius] = React__default.useState(0);
12
- const [hoveredItem, setHoveredItem] = React__default.useState([]);
13
- const [selectedItem, setSelectedItem] = React__default.useState([]);
14
- React__default.useEffect(() => {
15
- if (ref.current) {
16
- const rect = ref.current.parentElement?.getBoundingClientRect();
17
- if (rect) {
18
- const width = rect.width / 2;
19
- const max = rect.height < width ? rect.height : width;
20
- setRadius(max / 2);
21
- }
22
- }
23
- }, [ref.current]);
24
- const diameter = radius * 2;
25
- const data = React__default.Children.map(children, (child) => ({
26
- id: child.props.id,
27
- color: child.props.color,
28
- label: child.props.label,
29
- value: child.props.value
30
- }));
31
- const total = data.reduce((accum, entry) => accum + entry.value, 0);
32
- const handleLegendClick = (entry) => {
33
- const nextSelectedItem = Array.isArray(entry) ? entry.map((entryItem) => entryItem.id) : [entry.id];
34
- const isCurrentSegmentActive = selectedItem.slice().sort().join(",") === nextSelectedItem.sort().join(",");
35
- if (onClick && !isCurrentSegmentActive) {
36
- onClick(entry);
37
- }
38
- setSelectedItem(isCurrentSegmentActive ? [] : nextSelectedItem);
39
- };
40
- const handlePieClick = React__default.useCallback(
41
- (pieId) => {
42
- if (onClick && pieId !== void 0) {
43
- const pieProps = data.find((item) => item.id === pieId);
44
- onClick(pieProps);
9
+ const LegacyDonutChart = Object.assign(
10
+ function LegacyDonutChart2({ children, formatter, onClick, label }) {
11
+ const ref = React__default.useRef(null);
12
+ const [radius, setRadius] = React__default.useState(0);
13
+ const [hoveredItem, setHoveredItem] = React__default.useState([]);
14
+ const [selectedItem, setSelectedItem] = React__default.useState([]);
15
+ React__default.useEffect(() => {
16
+ if (ref.current) {
17
+ const rect = ref.current.parentElement?.getBoundingClientRect();
18
+ if (rect) {
19
+ const width = rect.width / 2;
20
+ const max = rect.height < width ? rect.height : width;
21
+ setRadius(max / 2);
22
+ }
45
23
  }
46
- },
47
- [onClick, data]
48
- );
49
- const activeShapeColor = React__default.useMemo(() => {
50
- const getSegmentColor = (item) => item.reduce((colors, itemId) => {
51
- const visibleHoveredItem = data.find((dataItem) => dataItem.id === itemId);
52
- if (visibleHoveredItem) {
53
- colors[visibleHoveredItem.id] = visibleHoveredItem.color;
24
+ }, [ref.current]);
25
+ const diameter = radius * 2;
26
+ const data = React__default.Children.map(children, (child) => ({
27
+ id: child.props.id,
28
+ color: child.props.color,
29
+ label: child.props.label,
30
+ value: child.props.value
31
+ }));
32
+ const total = data.reduce((accum, entry) => accum + entry.value, 0);
33
+ const handleLegendClick = (entry) => {
34
+ const nextSelectedItem = Array.isArray(entry) ? entry.map((entryItem) => entryItem.id) : [entry.id];
35
+ const isCurrentSegmentActive = selectedItem.slice().sort().join(",") === nextSelectedItem.sort().join(",");
36
+ if (onClick && !isCurrentSegmentActive) {
37
+ onClick(entry);
54
38
  }
55
- return colors;
56
- }, {});
57
- const hoveredSegmentColor = getSegmentColor(hoveredItem);
58
- const selectedSegmentColor = getSegmentColor(selectedItem);
59
- return hoveredItem.length === 0 ? selectedSegmentColor : hoveredSegmentColor;
60
- }, [hoveredItem, selectedItem]);
61
- if (ref.current && !radius) {
62
- return null;
63
- }
64
- const getActiveIndex = () => {
65
- if (hoveredItem.length > 0) {
66
- return hoveredItem.map((itemId) => data.findIndex((element) => element.id === itemId));
67
- }
68
- return selectedItem.map((selectedItemId) => data.findIndex((element) => element.id === selectedItemId));
69
- };
70
- const content = () => {
71
- const elements = React__default.Children.toArray(children).filter(
72
- (child) => React__default.isValidElement(child)
39
+ setSelectedItem(isCurrentSegmentActive ? [] : nextSelectedItem);
40
+ };
41
+ const handlePieClick = React__default.useCallback(
42
+ (pieId) => {
43
+ if (onClick && pieId !== void 0) {
44
+ const pieProps = data.find((item) => item.id === pieId);
45
+ onClick(pieProps);
46
+ }
47
+ },
48
+ [onClick, data]
73
49
  );
74
- return elements.length > 0 ? elements.map((child, index) => {
75
- return /* @__PURE__ */ React__default.createElement(
76
- RechartsPrimitive.Cell,
77
- {
78
- key: `cell-${index}`,
79
- name: child.props.label,
80
- fill: getThemeColor(child.props.color) ?? getThemeColor("blue-300")
50
+ const activeShapeColor = React__default.useMemo(() => {
51
+ const getSegmentColor = (item) => item.reduce((colors, itemId) => {
52
+ const visibleHoveredItem = data.find((dataItem) => dataItem.id === itemId);
53
+ if (visibleHoveredItem) {
54
+ colors[visibleHoveredItem.id] = visibleHoveredItem.color;
81
55
  }
82
- );
83
- }) : /* @__PURE__ */ React__default.createElement(RechartsPrimitive.Cell, { key: "empty-chart", name: "", fill: getThemeColor("grey-200") });
84
- };
85
- return /* @__PURE__ */ React__default.createElement("div", { className: "relative flex h-full w-full", ref }, /* @__PURE__ */ React__default.createElement(CenteredLabel, { radius, label, total, formatter }), /* @__PURE__ */ React__default.createElement(RechartsPrimitive.PieChart, { data, height: diameter, width: diameter, style: { transform: "rotate(90deg) scale(-1,1)" } }, /* @__PURE__ */ React__default.createElement(
86
- RechartsPrimitive.Pie,
87
- {
88
- isAnimationActive: false,
89
- activeIndex: getActiveIndex(),
90
- activeShape: /* @__PURE__ */ React__default.createElement(ActiveShape, { pieColors: activeShapeColor, onClick: handlePieClick }),
91
- data: data.length > 0 ? data : [],
92
- dataKey: "value",
93
- innerRadius: radius - HOVER_DONUT_WIDTH - DONUT_WIDTH,
94
- onMouseEnter: (segment) => data.length > 0 && setHoveredItem([segment.id]),
95
- onMouseLeave: () => setHoveredItem([]),
96
- outerRadius: radius - HOVER_DONUT_WIDTH,
97
- paddingAngle: 2.5,
98
- stroke: "0",
99
- rootTabIndex: -1
100
- },
101
- content()
102
- )), /* @__PURE__ */ React__default.createElement(
103
- Legend,
104
- {
105
- data,
106
- onClick: handleLegendClick,
107
- total,
108
- setHoveredItem,
109
- label,
110
- hoveredItem,
111
- selectedItem,
112
- formatter
56
+ return colors;
57
+ }, {});
58
+ const hoveredSegmentColor = getSegmentColor(hoveredItem);
59
+ const selectedSegmentColor = getSegmentColor(selectedItem);
60
+ return hoveredItem.length === 0 ? selectedSegmentColor : hoveredSegmentColor;
61
+ }, [hoveredItem, selectedItem]);
62
+ if (ref.current && !radius) {
63
+ return null;
113
64
  }
114
- ));
115
- };
116
- LegacyDonutChart.Segment = Segment;
65
+ const getActiveIndex = () => {
66
+ if (hoveredItem.length > 0) {
67
+ return hoveredItem.map((itemId) => data.findIndex((element) => element.id === itemId));
68
+ }
69
+ return selectedItem.map((selectedItemId) => data.findIndex((element) => element.id === selectedItemId));
70
+ };
71
+ const content = () => {
72
+ const elements = React__default.Children.toArray(children).filter(
73
+ (child) => React__default.isValidElement(child)
74
+ );
75
+ return elements.length > 0 ? elements.map((child, index) => {
76
+ return /* @__PURE__ */ React__default.createElement(
77
+ RechartsPrimitive.Cell,
78
+ {
79
+ key: `cell-${index}`,
80
+ name: child.props.label,
81
+ fill: getThemeColor(child.props.color) ?? getThemeColor("blue-300")
82
+ }
83
+ );
84
+ }) : /* @__PURE__ */ React__default.createElement(RechartsPrimitive.Cell, { key: "empty-chart", name: "", fill: getThemeColor("grey-200") });
85
+ };
86
+ return /* @__PURE__ */ React__default.createElement("div", { className: "relative flex h-full w-full", ref }, /* @__PURE__ */ React__default.createElement(CenteredLabel, { radius, label, total, formatter }), /* @__PURE__ */ React__default.createElement(
87
+ RechartsPrimitive.PieChart,
88
+ {
89
+ data,
90
+ height: diameter,
91
+ width: diameter,
92
+ style: { transform: "rotate(90deg) scale(-1,1)" }
93
+ },
94
+ /* @__PURE__ */ React__default.createElement(
95
+ RechartsPrimitive.Pie,
96
+ {
97
+ isAnimationActive: false,
98
+ activeIndex: getActiveIndex(),
99
+ activeShape: /* @__PURE__ */ React__default.createElement(ActiveShape, { pieColors: activeShapeColor, onClick: handlePieClick }),
100
+ data: data.length > 0 ? data : [],
101
+ dataKey: "value",
102
+ innerRadius: radius - HOVER_DONUT_WIDTH - DONUT_WIDTH,
103
+ onMouseEnter: (segment) => data.length > 0 && setHoveredItem([segment.id]),
104
+ onMouseLeave: () => setHoveredItem([]),
105
+ outerRadius: radius - HOVER_DONUT_WIDTH,
106
+ paddingAngle: 2.5,
107
+ stroke: "0",
108
+ rootTabIndex: -1
109
+ },
110
+ content()
111
+ )
112
+ ), /* @__PURE__ */ React__default.createElement(
113
+ Legend,
114
+ {
115
+ data,
116
+ onClick: handleLegendClick,
117
+ total,
118
+ setHoveredItem,
119
+ label,
120
+ hoveredItem,
121
+ selectedItem,
122
+ formatter
123
+ }
124
+ ));
125
+ },
126
+ { Segment }
127
+ );
117
128
  export {
118
129
  LegacyDonutChart
119
130
  };
@@ -1 +1 @@
1
- {"version":3,"file":"LegacyDonutChart.js","sources":["../../../../src/charts/components/LegacyDonut/LegacyDonutChart.tsx"],"sourcesContent":["import React from 'react';\nimport * as Recharts from 'recharts';\n\nimport type { Color } from '@/charts/utils/color';\nimport { getThemeColor } from '@/charts/utils/color';\n\nimport { ActiveShape } from './ActiveShape';\nimport { CenteredLabel } from './CenteredLabel';\nimport { Legend } from './Legend';\nimport { DONUT_WIDTH, HOVER_DONUT_WIDTH } from './util';\n\nconst Segment = (_: LegacyDonutChartSegmentProps) => null;\n\nexport type LegacyDonutChartSegmentProps = {\n color: Color;\n id: string;\n label: string;\n value: number;\n};\n\nexport type LegacyDonutSegmentIds = string[];\n\nexport type LegacyDonutChartProps = {\n children: React.ReactElement<LegacyDonutChartSegmentProps> | React.ReactElement<LegacyDonutChartSegmentProps>[];\n formatter?: (value: number) => string;\n onClick?: (segment: LegacyDonutChartSegmentProps | LegacyDonutChartSegmentProps[]) => void;\n label: string;\n};\n\nexport const LegacyDonutChart = function LegacyDonutChart({ children, formatter, onClick, label }: LegacyDonutChartProps) {\n const ref = React.useRef<HTMLDivElement>(null);\n const [radius, setRadius] = React.useState<number>(0);\n\n const [hoveredItem, setHoveredItem] = React.useState<LegacyDonutSegmentIds>([]);\n const [selectedItem, setSelectedItem] = React.useState<LegacyDonutSegmentIds>([]);\n\n React.useEffect(() => {\n if (ref.current) {\n const rect = ref.current.parentElement?.getBoundingClientRect();\n\n if (rect) {\n const width = rect.width / 2;\n const max: number = rect.height < width ? rect.height : width;\n setRadius(max / 2);\n }\n }\n }, [ref.current]);\n\n const diameter = radius * 2; // get dimensions of the parent container to find the max radius, so we can fill the container AND always have a 16px wide donut\n const data: LegacyDonutChartSegmentProps[] = React.Children.map(children, child => ({\n id: child.props.id,\n color: child.props.color,\n label: child.props.label,\n value: child.props.value,\n }));\n\n const total = data.reduce((accum, entry) => accum + entry.value, 0);\n\n const handleLegendClick = (entry: LegacyDonutChartSegmentProps | LegacyDonutChartSegmentProps[]): void => {\n const nextSelectedItem = Array.isArray(entry) ? entry.map(entryItem => entryItem.id) : [entry.id];\n\n // Using slice to avoid mutation of the react state 'selectedItem'\n const isCurrentSegmentActive = selectedItem.slice().sort().join(',') === nextSelectedItem.sort().join(',');\n\n if (onClick && !isCurrentSegmentActive) {\n onClick(entry);\n }\n\n setSelectedItem(isCurrentSegmentActive ? [] : nextSelectedItem);\n };\n const handlePieClick = React.useCallback(\n (pieId: string | undefined) => {\n if (onClick && pieId !== undefined) {\n const pieProps = data.find(item => item.id === pieId);\n\n onClick(pieProps as LegacyDonutChartSegmentProps);\n }\n },\n [onClick, data]\n );\n\n const activeShapeColor = React.useMemo(() => {\n const getSegmentColor = (item: LegacyDonutSegmentIds) =>\n item.reduce<Record<string, string>>((colors, itemId) => {\n const visibleHoveredItem = data.find(dataItem => dataItem.id === itemId);\n\n if (visibleHoveredItem) {\n colors[visibleHoveredItem.id] = visibleHoveredItem.color;\n }\n\n return colors;\n }, {});\n\n const hoveredSegmentColor = getSegmentColor(hoveredItem);\n const selectedSegmentColor = getSegmentColor(selectedItem);\n\n return hoveredItem.length === 0 ? selectedSegmentColor : hoveredSegmentColor;\n }, [hoveredItem, selectedItem]);\n\n if (ref.current && !radius) {\n return null;\n }\n\n const getActiveIndex = () => {\n if (hoveredItem.length > 0) {\n return hoveredItem.map(itemId => data.findIndex(element => element.id === itemId));\n }\n\n return selectedItem.map(selectedItemId => data.findIndex(element => element.id === selectedItemId));\n };\n\n const content = () => {\n const elements = React.Children.toArray(children).filter(\n (child): child is React.ReactElement<LegacyDonutChartSegmentProps> =>\n React.isValidElement<LegacyDonutChartSegmentProps>(child)\n );\n\n return elements.length > 0 ? (\n elements.map((child, index) => {\n return (\n <Recharts.Cell\n key={`cell-${index}`}\n name={child.props.label}\n fill={getThemeColor(child.props.color) ?? getThemeColor('blue-300')}\n />\n );\n })\n ) : (\n <Recharts.Cell key=\"empty-chart\" name={''} fill={getThemeColor('grey-200')} />\n );\n };\n\n return (\n <div className=\"relative flex h-full w-full\" ref={ref}>\n <CenteredLabel radius={radius} label={label} total={total} formatter={formatter} />\n <Recharts.PieChart data={data} height={diameter} width={diameter} style={{ transform: 'rotate(90deg) scale(-1,1)' }}>\n <Recharts.Pie\n isAnimationActive={false}\n activeIndex={getActiveIndex()}\n activeShape={<ActiveShape pieColors={activeShapeColor} onClick={handlePieClick} />}\n data={data.length > 0 ? data : []}\n dataKey=\"value\"\n innerRadius={radius - HOVER_DONUT_WIDTH - DONUT_WIDTH} // offset the 12px wider hover state, and then make the donut 16px wide\n onMouseEnter={(segment: LegacyDonutChartSegmentProps) => data.length > 0 && setHoveredItem([segment.id])}\n onMouseLeave={() => setHoveredItem([])}\n outerRadius={radius - HOVER_DONUT_WIDTH} // offset the 12px wide hover state\n paddingAngle={2.5}\n stroke=\"0\"\n // Prevents the pie group element from being focusable\n rootTabIndex={-1}>\n {content()}\n </Recharts.Pie>\n </Recharts.PieChart>\n <Legend\n data={data}\n onClick={handleLegendClick}\n total={total}\n setHoveredItem={setHoveredItem}\n label={label}\n hoveredItem={hoveredItem}\n selectedItem={selectedItem}\n formatter={formatter}\n />\n </div>\n );\n};\n\nLegacyDonutChart.Segment = Segment;\n"],"names":["LegacyDonutChart","React","Recharts"],"mappings":"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"}
1
+ {"version":3,"file":"LegacyDonutChart.js","sources":["../../../../src/charts/components/LegacyDonut/LegacyDonutChart.tsx"],"sourcesContent":["import React from 'react';\nimport * as Recharts from 'recharts';\n\nimport type { Color } from '@/charts/utils/color';\nimport { getThemeColor } from '@/charts/utils/color';\n\nimport { ActiveShape } from './ActiveShape';\nimport { CenteredLabel } from './CenteredLabel';\nimport { Legend } from './Legend';\nimport { DONUT_WIDTH, HOVER_DONUT_WIDTH } from './util';\n\nconst Segment = (_: LegacyDonutChartSegmentProps) => null;\n\n/**\n * @deprecated\n */\nexport type LegacyDonutChartSegmentProps = {\n color: Color;\n id: string;\n label: string;\n value: number;\n};\n\n/**\n * @deprecated\n */\nexport type LegacyDonutSegmentIds = string[];\n\n/**\n * @deprecated\n */\nexport type LegacyDonutChartProps = {\n children: React.ReactElement<LegacyDonutChartSegmentProps> | React.ReactElement<LegacyDonutChartSegmentProps>[];\n formatter?: (value: number) => string;\n onClick?: (segment: LegacyDonutChartSegmentProps | LegacyDonutChartSegmentProps[]) => void;\n label: string;\n};\n\n/**\n * @deprecated Use DonutChart component instead\n */\nexport const LegacyDonutChart = Object.assign(\n function LegacyDonutChart({ children, formatter, onClick, label }: LegacyDonutChartProps) {\n const ref = React.useRef<HTMLDivElement>(null);\n const [radius, setRadius] = React.useState<number>(0);\n\n const [hoveredItem, setHoveredItem] = React.useState<LegacyDonutSegmentIds>([]);\n const [selectedItem, setSelectedItem] = React.useState<LegacyDonutSegmentIds>([]);\n\n React.useEffect(() => {\n if (ref.current) {\n const rect = ref.current.parentElement?.getBoundingClientRect();\n\n if (rect) {\n const width = rect.width / 2;\n const max: number = rect.height < width ? rect.height : width;\n setRadius(max / 2);\n }\n }\n }, [ref.current]);\n\n const diameter = radius * 2; // get dimensions of the parent container to find the max radius, so we can fill the container AND always have a 16px wide donut\n const data: LegacyDonutChartSegmentProps[] = React.Children.map(children, child => ({\n id: child.props.id,\n color: child.props.color,\n label: child.props.label,\n value: child.props.value,\n }));\n\n const total = data.reduce((accum, entry) => accum + entry.value, 0);\n\n const handleLegendClick = (entry: LegacyDonutChartSegmentProps | LegacyDonutChartSegmentProps[]): void => {\n const nextSelectedItem = Array.isArray(entry) ? entry.map(entryItem => entryItem.id) : [entry.id];\n\n // Using slice to avoid mutation of the react state 'selectedItem'\n const isCurrentSegmentActive = selectedItem.slice().sort().join(',') === nextSelectedItem.sort().join(',');\n\n if (onClick && !isCurrentSegmentActive) {\n onClick(entry);\n }\n\n setSelectedItem(isCurrentSegmentActive ? [] : nextSelectedItem);\n };\n const handlePieClick = React.useCallback(\n (pieId: string | undefined) => {\n if (onClick && pieId !== undefined) {\n const pieProps = data.find(item => item.id === pieId);\n\n onClick(pieProps as LegacyDonutChartSegmentProps);\n }\n },\n [onClick, data]\n );\n\n const activeShapeColor = React.useMemo(() => {\n const getSegmentColor = (item: LegacyDonutSegmentIds) =>\n item.reduce<Record<string, string>>((colors, itemId) => {\n const visibleHoveredItem = data.find(dataItem => dataItem.id === itemId);\n\n if (visibleHoveredItem) {\n colors[visibleHoveredItem.id] = visibleHoveredItem.color;\n }\n\n return colors;\n }, {});\n\n const hoveredSegmentColor = getSegmentColor(hoveredItem);\n const selectedSegmentColor = getSegmentColor(selectedItem);\n\n return hoveredItem.length === 0 ? selectedSegmentColor : hoveredSegmentColor;\n }, [hoveredItem, selectedItem]);\n\n if (ref.current && !radius) {\n return null;\n }\n\n const getActiveIndex = () => {\n if (hoveredItem.length > 0) {\n return hoveredItem.map(itemId => data.findIndex(element => element.id === itemId));\n }\n\n return selectedItem.map(selectedItemId => data.findIndex(element => element.id === selectedItemId));\n };\n\n const content = () => {\n const elements = React.Children.toArray(children).filter(\n (child): child is React.ReactElement<LegacyDonutChartSegmentProps> =>\n React.isValidElement<LegacyDonutChartSegmentProps>(child)\n );\n\n return elements.length > 0 ? (\n elements.map((child, index) => {\n return (\n <Recharts.Cell\n key={`cell-${index}`}\n name={child.props.label}\n fill={getThemeColor(child.props.color) ?? getThemeColor('blue-300')}\n />\n );\n })\n ) : (\n <Recharts.Cell key=\"empty-chart\" name={''} fill={getThemeColor('grey-200')} />\n );\n };\n\n return (\n <div className=\"relative flex h-full w-full\" ref={ref}>\n <CenteredLabel radius={radius} label={label} total={total} formatter={formatter} />\n <Recharts.PieChart\n data={data}\n height={diameter}\n width={diameter}\n style={{ transform: 'rotate(90deg) scale(-1,1)' }}>\n <Recharts.Pie\n isAnimationActive={false}\n activeIndex={getActiveIndex()}\n activeShape={<ActiveShape pieColors={activeShapeColor} onClick={handlePieClick} />}\n data={data.length > 0 ? data : []}\n dataKey=\"value\"\n innerRadius={radius - HOVER_DONUT_WIDTH - DONUT_WIDTH} // offset the 12px wider hover state, and then make the donut 16px wide\n onMouseEnter={(segment: LegacyDonutChartSegmentProps) => data.length > 0 && setHoveredItem([segment.id])}\n onMouseLeave={() => setHoveredItem([])}\n outerRadius={radius - HOVER_DONUT_WIDTH} // offset the 12px wide hover state\n paddingAngle={2.5}\n stroke=\"0\"\n // Prevents the pie group element from being focusable\n rootTabIndex={-1}>\n {content()}\n </Recharts.Pie>\n </Recharts.PieChart>\n <Legend\n data={data}\n onClick={handleLegendClick}\n total={total}\n setHoveredItem={setHoveredItem}\n label={label}\n hoveredItem={hoveredItem}\n selectedItem={selectedItem}\n formatter={formatter}\n />\n </div>\n );\n },\n { Segment }\n);\n"],"names":["LegacyDonutChart","React","Recharts"],"mappings":"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"}
@@ -50,7 +50,7 @@ function Legend(props) {
50
50
  onMouseEnter: () => handleMouseEnter(item, index),
51
51
  onMouseLeave: () => handleMouseLeave()
52
52
  },
53
- /* @__PURE__ */ React.createElement("span", { className, style }, item.isHidden ? null : /* @__PURE__ */ React.createElement(Icon.Icon, { name: "tick-bold", className: "!h-full !w-full text-white" })),
53
+ /* @__PURE__ */ React.createElement("span", { className, style }, !item.isHidden ? /* @__PURE__ */ React.createElement(Icon.Icon, { name: "tick-bold", className: "!h-full !w-full text-white" }) : null),
54
54
  item.label
55
55
  );
56
56
  }))
@@ -1 +1 @@
1
- {"version":3,"file":"Legend.cjs","sources":["../../../src/charts/components/Legend.tsx"],"sourcesContent":["import React from 'react';\n\nimport { colors, getThemeColor } from '@/charts/utils/color';\nimport { Icon, LegacyButton, OverflowGroup } from '@/components';\n\nimport type { ChartChildProps } from './types';\n\nexport type LegendProps<TData extends object> = {\n items: ChartChildProps<TData>[];\n hoverIndex: number | undefined;\n onHover: (index: number | undefined) => void;\n onToggle: (name: keyof TData) => void;\n};\n\nfunction getDarkerThemeColor(color: string | undefined) {\n const colorName = Object.keys(colors).find(name => colors[name] === color);\n\n if (!colorName) {\n return undefined;\n }\n\n return getThemeColor(colorName.replace(/-\\d+$/, '-300'));\n}\n\nexport function Legend<TData extends object>(props: LegendProps<TData>) {\n const { items, onHover: handleHover, onToggle: handleToggle } = props;\n\n const handleMouseEnter = (item: ChartChildProps<TData>, index: number) => {\n if (item.isHidden) {\n return;\n }\n\n handleHover(index);\n };\n const handleMouseLeave = () => handleHover(undefined);\n\n const handleClick = (item: ChartChildProps<TData>) => {\n // remove hover if hiding the item\n if (!item.isHidden) {\n handleHover(undefined);\n }\n\n handleToggle(item.dataKey);\n };\n\n const moreButton = (moreButtonText: string) => (\n <LegacyButton appearance=\"transparent\" className=\"!h-5 !min-h-[1.25rem] !px-1.5 text-xs text-gray-700\">\n {moreButtonText}\n </LegacyButton>\n );\n\n return (\n // oxlint-disable-next-line taco/no-component-margin -- grandfathered; removing this margin is a visual breaking change\n <OverflowGroup className=\"mt-3 w-full gap-x-1\" moreButton={moreButton}>\n {items.map((item, index) => {\n const className = 'mr-1 flex h-3.5 w-3.5 rounded-sm border';\n const style: React.CSSProperties = {};\n const darkerThemeColor = getDarkerThemeColor(item.color);\n\n if (!item.isHidden) {\n style.backgroundColor = item.color;\n style.borderColor = darkerThemeColor;\n }\n\n return (\n <button\n key={`${item.label}_${index}`}\n className=\"flex items-center rounded px-1 !text-xs hover:bg-gray-100 focus-visible:yt-focus\"\n onClick={event => {\n event?.preventDefault();\n handleClick(item);\n }}\n onMouseEnter={() => handleMouseEnter(item, index)}\n onMouseLeave={() => handleMouseLeave()}>\n <span className={className} style={style}>\n {item.isHidden ? null : <Icon name=\"tick-bold\" className=\"!h-full !w-full text-white\" />}\n </span>\n {item.label}\n </button>\n );\n })}\n </OverflowGroup>\n );\n}\n"],"names":["color","colors","getThemeColor","LegacyButton","OverflowGroup","Icon"],"mappings":";;;;;;;AAcA,SAAS,oBAAoBA,SAA2B;AACpD,QAAM,YAAY,OAAO,KAAKC,YAAM,EAAE,KAAK,CAAA,SAAQA,MAAAA,OAAO,IAAI,MAAMD,OAAK;AAEzE,MAAI,CAAC,WAAW;AACZ,WAAO;AAAA,EACX;AAEA,SAAOE,MAAAA,cAAc,UAAU,QAAQ,SAAS,MAAM,CAAC;AAC3D;AAEO,SAAS,OAA6B,OAA2B;AACpE,QAAM,EAAE,OAAO,SAAS,aAAa,UAAU,iBAAiB;AAEhE,QAAM,mBAAmB,CAAC,MAA8B,UAAkB;AACtE,QAAI,KAAK,UAAU;AACf;AAAA,IACJ;AAEA,gBAAY,KAAK;AAAA,EACrB;AACA,QAAM,mBAAmB,MAAM,YAAY,MAAS;AAEpD,QAAM,cAAc,CAAC,SAAiC;AAElD,QAAI,CAAC,KAAK,UAAU;AAChB,kBAAY,MAAS;AAAA,IACzB;AAEA,iBAAa,KAAK,OAAO;AAAA,EAC7B;AAEA,QAAM,aAAa,CAAC,mBAChB,sBAAA,cAACC,OAAAA,gBAAa,YAAW,eAAc,WAAU,sDAAA,GAC5C,cACL;AAGJ;AAAA;AAAA,IAEI,sBAAA,cAACC,+BAAc,WAAU,uBAAsB,cAC1C,MAAM,IAAI,CAAC,MAAM,UAAU;AACxB,YAAM,YAAY;AAClB,YAAM,QAA6B,CAAA;AACnC,YAAM,mBAAmB,oBAAoB,KAAK,KAAK;AAEvD,UAAI,CAAC,KAAK,UAAU;AAChB,cAAM,kBAAkB,KAAK;AAC7B,cAAM,cAAc;AAAA,MACxB;AAEA,aACI,sBAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACG,KAAK,GAAG,KAAK,KAAK,IAAI,KAAK;AAAA,UAC3B,WAAU;AAAA,UACV,SAAS,CAAA,UAAS;AACd,mBAAO,eAAA;AACP,wBAAY,IAAI;AAAA,UACpB;AAAA,UACA,cAAc,MAAM,iBAAiB,MAAM,KAAK;AAAA,UAChD,cAAc,MAAM,iBAAA;AAAA,QAAiB;AAAA,QACrC,sBAAA,cAAC,QAAA,EAAK,WAAsB,MAAA,GACvB,KAAK,WAAW,OAAO,sBAAA,cAACC,KAAAA,MAAA,EAAK,MAAK,aAAY,WAAU,8BAA6B,CAC1F;AAAA,QACC,KAAK;AAAA,MAAA;AAAA,IAGlB,CAAC,CACL;AAAA;AAER;;"}
1
+ {"version":3,"file":"Legend.cjs","sources":["../../../src/charts/components/Legend.tsx"],"sourcesContent":["import React from 'react';\n\nimport { colors, getThemeColor } from '@/charts/utils/color';\nimport { Icon, LegacyButton, OverflowGroup } from '@/components';\n\nimport type { ChartChildProps } from './types';\n\nexport type LegendProps<TData extends object> = {\n items: ChartChildProps<TData>[];\n hoverIndex: number | undefined;\n onHover: (index: number | undefined) => void;\n onToggle: (name: keyof TData) => void;\n};\n\nfunction getDarkerThemeColor(color: string | undefined) {\n const colorName = Object.keys(colors).find(name => colors[name] === color);\n\n if (!colorName) {\n return undefined;\n }\n\n return getThemeColor(colorName.replace(/-\\d+$/, '-300'));\n}\n\nexport function Legend<TData extends object>(props: LegendProps<TData>) {\n const { items, onHover: handleHover, onToggle: handleToggle } = props;\n\n const handleMouseEnter = (item: ChartChildProps<TData>, index: number) => {\n if (item.isHidden) {\n return;\n }\n\n handleHover(index);\n };\n const handleMouseLeave = () => handleHover(undefined);\n\n const handleClick = (item: ChartChildProps<TData>) => {\n // remove hover if hiding the item\n if (!item.isHidden) {\n handleHover(undefined);\n }\n\n handleToggle(item.dataKey);\n };\n\n const moreButton = (moreButtonText: string) => (\n <LegacyButton appearance=\"transparent\" className=\"!h-5 !min-h-[1.25rem] !px-1.5 text-xs text-gray-700\">\n {moreButtonText}\n </LegacyButton>\n );\n\n return (\n // oxlint-disable-next-line taco/no-component-margin -- grandfathered; removing this margin is a visual breaking change\n <OverflowGroup className=\"mt-3 w-full gap-x-1\" moreButton={moreButton}>\n {items.map((item, index) => {\n const className = 'mr-1 flex h-3.5 w-3.5 rounded-sm border';\n const style: React.CSSProperties = {};\n const darkerThemeColor = getDarkerThemeColor(item.color);\n\n if (!item.isHidden) {\n style.backgroundColor = item.color;\n style.borderColor = darkerThemeColor;\n }\n\n return (\n <button\n key={`${item.label}_${index}`}\n className=\"flex items-center rounded px-1 !text-xs hover:bg-gray-100 focus-visible:yt-focus\"\n onClick={event => {\n event?.preventDefault();\n handleClick(item);\n }}\n onMouseEnter={() => handleMouseEnter(item, index)}\n onMouseLeave={() => handleMouseLeave()}>\n <span className={className} style={style}>\n {!item.isHidden ? <Icon name=\"tick-bold\" className=\"!h-full !w-full text-white\" /> : null}\n </span>\n {item.label}\n </button>\n );\n })}\n </OverflowGroup>\n );\n}\n"],"names":["color","colors","getThemeColor","LegacyButton","OverflowGroup","Icon"],"mappings":";;;;;;;AAcA,SAAS,oBAAoBA,SAA2B;AACpD,QAAM,YAAY,OAAO,KAAKC,YAAM,EAAE,KAAK,CAAA,SAAQA,MAAAA,OAAO,IAAI,MAAMD,OAAK;AAEzE,MAAI,CAAC,WAAW;AACZ,WAAO;AAAA,EACX;AAEA,SAAOE,MAAAA,cAAc,UAAU,QAAQ,SAAS,MAAM,CAAC;AAC3D;AAEO,SAAS,OAA6B,OAA2B;AACpE,QAAM,EAAE,OAAO,SAAS,aAAa,UAAU,iBAAiB;AAEhE,QAAM,mBAAmB,CAAC,MAA8B,UAAkB;AACtE,QAAI,KAAK,UAAU;AACf;AAAA,IACJ;AAEA,gBAAY,KAAK;AAAA,EACrB;AACA,QAAM,mBAAmB,MAAM,YAAY,MAAS;AAEpD,QAAM,cAAc,CAAC,SAAiC;AAElD,QAAI,CAAC,KAAK,UAAU;AAChB,kBAAY,MAAS;AAAA,IACzB;AAEA,iBAAa,KAAK,OAAO;AAAA,EAC7B;AAEA,QAAM,aAAa,CAAC,mBAChB,sBAAA,cAACC,OAAAA,gBAAa,YAAW,eAAc,WAAU,sDAAA,GAC5C,cACL;AAGJ;AAAA;AAAA,IAEI,sBAAA,cAACC,+BAAc,WAAU,uBAAsB,cAC1C,MAAM,IAAI,CAAC,MAAM,UAAU;AACxB,YAAM,YAAY;AAClB,YAAM,QAA6B,CAAA;AACnC,YAAM,mBAAmB,oBAAoB,KAAK,KAAK;AAEvD,UAAI,CAAC,KAAK,UAAU;AAChB,cAAM,kBAAkB,KAAK;AAC7B,cAAM,cAAc;AAAA,MACxB;AAEA,aACI,sBAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACG,KAAK,GAAG,KAAK,KAAK,IAAI,KAAK;AAAA,UAC3B,WAAU;AAAA,UACV,SAAS,CAAA,UAAS;AACd,mBAAO,eAAA;AACP,wBAAY,IAAI;AAAA,UACpB;AAAA,UACA,cAAc,MAAM,iBAAiB,MAAM,KAAK;AAAA,UAChD,cAAc,MAAM,iBAAA;AAAA,QAAiB;AAAA,QACrC,sBAAA,cAAC,QAAA,EAAK,WAAsB,MAAA,GACvB,CAAC,KAAK,WAAW,sBAAA,cAACC,KAAAA,MAAA,EAAK,MAAK,aAAY,WAAU,6BAAA,CAA6B,IAAK,IACzF;AAAA,QACC,KAAK;AAAA,MAAA;AAAA,IAGlB,CAAC,CACL;AAAA;AAER;;"}
@@ -48,7 +48,7 @@ function Legend(props) {
48
48
  onMouseEnter: () => handleMouseEnter(item, index),
49
49
  onMouseLeave: () => handleMouseLeave()
50
50
  },
51
- /* @__PURE__ */ React__default.createElement("span", { className, style }, item.isHidden ? null : /* @__PURE__ */ React__default.createElement(Icon, { name: "tick-bold", className: "!h-full !w-full text-white" })),
51
+ /* @__PURE__ */ React__default.createElement("span", { className, style }, !item.isHidden ? /* @__PURE__ */ React__default.createElement(Icon, { name: "tick-bold", className: "!h-full !w-full text-white" }) : null),
52
52
  item.label
53
53
  );
54
54
  }))
@@ -1 +1 @@
1
- {"version":3,"file":"Legend.js","sources":["../../../src/charts/components/Legend.tsx"],"sourcesContent":["import React from 'react';\n\nimport { colors, getThemeColor } from '@/charts/utils/color';\nimport { Icon, LegacyButton, OverflowGroup } from '@/components';\n\nimport type { ChartChildProps } from './types';\n\nexport type LegendProps<TData extends object> = {\n items: ChartChildProps<TData>[];\n hoverIndex: number | undefined;\n onHover: (index: number | undefined) => void;\n onToggle: (name: keyof TData) => void;\n};\n\nfunction getDarkerThemeColor(color: string | undefined) {\n const colorName = Object.keys(colors).find(name => colors[name] === color);\n\n if (!colorName) {\n return undefined;\n }\n\n return getThemeColor(colorName.replace(/-\\d+$/, '-300'));\n}\n\nexport function Legend<TData extends object>(props: LegendProps<TData>) {\n const { items, onHover: handleHover, onToggle: handleToggle } = props;\n\n const handleMouseEnter = (item: ChartChildProps<TData>, index: number) => {\n if (item.isHidden) {\n return;\n }\n\n handleHover(index);\n };\n const handleMouseLeave = () => handleHover(undefined);\n\n const handleClick = (item: ChartChildProps<TData>) => {\n // remove hover if hiding the item\n if (!item.isHidden) {\n handleHover(undefined);\n }\n\n handleToggle(item.dataKey);\n };\n\n const moreButton = (moreButtonText: string) => (\n <LegacyButton appearance=\"transparent\" className=\"!h-5 !min-h-[1.25rem] !px-1.5 text-xs text-gray-700\">\n {moreButtonText}\n </LegacyButton>\n );\n\n return (\n // oxlint-disable-next-line taco/no-component-margin -- grandfathered; removing this margin is a visual breaking change\n <OverflowGroup className=\"mt-3 w-full gap-x-1\" moreButton={moreButton}>\n {items.map((item, index) => {\n const className = 'mr-1 flex h-3.5 w-3.5 rounded-sm border';\n const style: React.CSSProperties = {};\n const darkerThemeColor = getDarkerThemeColor(item.color);\n\n if (!item.isHidden) {\n style.backgroundColor = item.color;\n style.borderColor = darkerThemeColor;\n }\n\n return (\n <button\n key={`${item.label}_${index}`}\n className=\"flex items-center rounded px-1 !text-xs hover:bg-gray-100 focus-visible:yt-focus\"\n onClick={event => {\n event?.preventDefault();\n handleClick(item);\n }}\n onMouseEnter={() => handleMouseEnter(item, index)}\n onMouseLeave={() => handleMouseLeave()}>\n <span className={className} style={style}>\n {item.isHidden ? null : <Icon name=\"tick-bold\" className=\"!h-full !w-full text-white\" />}\n </span>\n {item.label}\n </button>\n );\n })}\n </OverflowGroup>\n );\n}\n"],"names":["React"],"mappings":";;;;;AAcA,SAAS,oBAAoB,OAA2B;AACpD,QAAM,YAAY,OAAO,KAAK,MAAM,EAAE,KAAK,CAAA,SAAQ,OAAO,IAAI,MAAM,KAAK;AAEzE,MAAI,CAAC,WAAW;AACZ,WAAO;AAAA,EACX;AAEA,SAAO,cAAc,UAAU,QAAQ,SAAS,MAAM,CAAC;AAC3D;AAEO,SAAS,OAA6B,OAA2B;AACpE,QAAM,EAAE,OAAO,SAAS,aAAa,UAAU,iBAAiB;AAEhE,QAAM,mBAAmB,CAAC,MAA8B,UAAkB;AACtE,QAAI,KAAK,UAAU;AACf;AAAA,IACJ;AAEA,gBAAY,KAAK;AAAA,EACrB;AACA,QAAM,mBAAmB,MAAM,YAAY,MAAS;AAEpD,QAAM,cAAc,CAAC,SAAiC;AAElD,QAAI,CAAC,KAAK,UAAU;AAChB,kBAAY,MAAS;AAAA,IACzB;AAEA,iBAAa,KAAK,OAAO;AAAA,EAC7B;AAEA,QAAM,aAAa,CAAC,mBAChBA,+BAAA,cAAC,gBAAa,YAAW,eAAc,WAAU,sDAAA,GAC5C,cACL;AAGJ;AAAA;AAAA,IAEIA,+BAAA,cAAC,iBAAc,WAAU,uBAAsB,cAC1C,MAAM,IAAI,CAAC,MAAM,UAAU;AACxB,YAAM,YAAY;AAClB,YAAM,QAA6B,CAAA;AACnC,YAAM,mBAAmB,oBAAoB,KAAK,KAAK;AAEvD,UAAI,CAAC,KAAK,UAAU;AAChB,cAAM,kBAAkB,KAAK;AAC7B,cAAM,cAAc;AAAA,MACxB;AAEA,aACIA,+BAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACG,KAAK,GAAG,KAAK,KAAK,IAAI,KAAK;AAAA,UAC3B,WAAU;AAAA,UACV,SAAS,CAAA,UAAS;AACd,mBAAO,eAAA;AACP,wBAAY,IAAI;AAAA,UACpB;AAAA,UACA,cAAc,MAAM,iBAAiB,MAAM,KAAK;AAAA,UAChD,cAAc,MAAM,iBAAA;AAAA,QAAiB;AAAA,QACrCA,+BAAA,cAAC,QAAA,EAAK,WAAsB,MAAA,GACvB,KAAK,WAAW,OAAOA,+BAAA,cAAC,MAAA,EAAK,MAAK,aAAY,WAAU,8BAA6B,CAC1F;AAAA,QACC,KAAK;AAAA,MAAA;AAAA,IAGlB,CAAC,CACL;AAAA;AAER;"}
1
+ {"version":3,"file":"Legend.js","sources":["../../../src/charts/components/Legend.tsx"],"sourcesContent":["import React from 'react';\n\nimport { colors, getThemeColor } from '@/charts/utils/color';\nimport { Icon, LegacyButton, OverflowGroup } from '@/components';\n\nimport type { ChartChildProps } from './types';\n\nexport type LegendProps<TData extends object> = {\n items: ChartChildProps<TData>[];\n hoverIndex: number | undefined;\n onHover: (index: number | undefined) => void;\n onToggle: (name: keyof TData) => void;\n};\n\nfunction getDarkerThemeColor(color: string | undefined) {\n const colorName = Object.keys(colors).find(name => colors[name] === color);\n\n if (!colorName) {\n return undefined;\n }\n\n return getThemeColor(colorName.replace(/-\\d+$/, '-300'));\n}\n\nexport function Legend<TData extends object>(props: LegendProps<TData>) {\n const { items, onHover: handleHover, onToggle: handleToggle } = props;\n\n const handleMouseEnter = (item: ChartChildProps<TData>, index: number) => {\n if (item.isHidden) {\n return;\n }\n\n handleHover(index);\n };\n const handleMouseLeave = () => handleHover(undefined);\n\n const handleClick = (item: ChartChildProps<TData>) => {\n // remove hover if hiding the item\n if (!item.isHidden) {\n handleHover(undefined);\n }\n\n handleToggle(item.dataKey);\n };\n\n const moreButton = (moreButtonText: string) => (\n <LegacyButton appearance=\"transparent\" className=\"!h-5 !min-h-[1.25rem] !px-1.5 text-xs text-gray-700\">\n {moreButtonText}\n </LegacyButton>\n );\n\n return (\n // oxlint-disable-next-line taco/no-component-margin -- grandfathered; removing this margin is a visual breaking change\n <OverflowGroup className=\"mt-3 w-full gap-x-1\" moreButton={moreButton}>\n {items.map((item, index) => {\n const className = 'mr-1 flex h-3.5 w-3.5 rounded-sm border';\n const style: React.CSSProperties = {};\n const darkerThemeColor = getDarkerThemeColor(item.color);\n\n if (!item.isHidden) {\n style.backgroundColor = item.color;\n style.borderColor = darkerThemeColor;\n }\n\n return (\n <button\n key={`${item.label}_${index}`}\n className=\"flex items-center rounded px-1 !text-xs hover:bg-gray-100 focus-visible:yt-focus\"\n onClick={event => {\n event?.preventDefault();\n handleClick(item);\n }}\n onMouseEnter={() => handleMouseEnter(item, index)}\n onMouseLeave={() => handleMouseLeave()}>\n <span className={className} style={style}>\n {!item.isHidden ? <Icon name=\"tick-bold\" className=\"!h-full !w-full text-white\" /> : null}\n </span>\n {item.label}\n </button>\n );\n })}\n </OverflowGroup>\n );\n}\n"],"names":["React"],"mappings":";;;;;AAcA,SAAS,oBAAoB,OAA2B;AACpD,QAAM,YAAY,OAAO,KAAK,MAAM,EAAE,KAAK,CAAA,SAAQ,OAAO,IAAI,MAAM,KAAK;AAEzE,MAAI,CAAC,WAAW;AACZ,WAAO;AAAA,EACX;AAEA,SAAO,cAAc,UAAU,QAAQ,SAAS,MAAM,CAAC;AAC3D;AAEO,SAAS,OAA6B,OAA2B;AACpE,QAAM,EAAE,OAAO,SAAS,aAAa,UAAU,iBAAiB;AAEhE,QAAM,mBAAmB,CAAC,MAA8B,UAAkB;AACtE,QAAI,KAAK,UAAU;AACf;AAAA,IACJ;AAEA,gBAAY,KAAK;AAAA,EACrB;AACA,QAAM,mBAAmB,MAAM,YAAY,MAAS;AAEpD,QAAM,cAAc,CAAC,SAAiC;AAElD,QAAI,CAAC,KAAK,UAAU;AAChB,kBAAY,MAAS;AAAA,IACzB;AAEA,iBAAa,KAAK,OAAO;AAAA,EAC7B;AAEA,QAAM,aAAa,CAAC,mBAChBA,+BAAA,cAAC,gBAAa,YAAW,eAAc,WAAU,sDAAA,GAC5C,cACL;AAGJ;AAAA;AAAA,IAEIA,+BAAA,cAAC,iBAAc,WAAU,uBAAsB,cAC1C,MAAM,IAAI,CAAC,MAAM,UAAU;AACxB,YAAM,YAAY;AAClB,YAAM,QAA6B,CAAA;AACnC,YAAM,mBAAmB,oBAAoB,KAAK,KAAK;AAEvD,UAAI,CAAC,KAAK,UAAU;AAChB,cAAM,kBAAkB,KAAK;AAC7B,cAAM,cAAc;AAAA,MACxB;AAEA,aACIA,+BAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACG,KAAK,GAAG,KAAK,KAAK,IAAI,KAAK;AAAA,UAC3B,WAAU;AAAA,UACV,SAAS,CAAA,UAAS;AACd,mBAAO,eAAA;AACP,wBAAY,IAAI;AAAA,UACpB;AAAA,UACA,cAAc,MAAM,iBAAiB,MAAM,KAAK;AAAA,UAChD,cAAc,MAAM,iBAAA;AAAA,QAAiB;AAAA,QACrCA,+BAAA,cAAC,QAAA,EAAK,WAAsB,MAAA,GACvB,CAAC,KAAK,WAAWA,+BAAA,cAAC,MAAA,EAAK,MAAK,aAAY,WAAU,6BAAA,CAA6B,IAAK,IACzF;AAAA,QACC,KAAK;AAAA,MAAA;AAAA,IAGlB,CAAC,CACL;AAAA;AAER;"}
@@ -1 +1 @@
1
- {"version":3,"file":"LineChart.cjs","sources":["../../../../src/charts/components/Line/LineChart.tsx"],"sourcesContent":["import cn from 'clsx';\nimport React from 'react';\nimport * as RechartsPrimitive from 'recharts';\n\nimport { getAxisProps, stripCartesianProps } from '@/charts/utils/common';\n\nimport { ChartWrapper } from '../ChartWrapper';\nimport { Legend } from '../Legend';\nimport { Tooltip } from '../Tooltip';\nimport type { ChartChildProps, CartesianChartProps, CurveType } from '../types';\nimport { useChart } from '../useChartData';\n\nexport type LineChartProps<TData extends object> = {\n /** Show dots for each data point\n * @default false\n */\n showDots?: boolean;\n /** Interpolation type of the line\n * @default natural\n */\n type?: CurveType;\n} & CartesianChartProps<TData>;\n\nexport function LineChart<TData extends object>(props: LineChartProps<TData>) {\n const {\n children,\n className: customClassName,\n data,\n showLegend = false,\n showDots = false,\n tooltipTitle,\n type = 'natural',\n ...attributes\n } = stripCartesianProps<LineChartProps<TData>>(props);\n\n const className = cn('relative aspect-video', { 'pb-8': showLegend }, customClassName);\n const { items, shapes, activeIndex, setActiveIndex, toggleItem } = useChart<TData>(children);\n\n return (\n <div className={className} data-taco=\"chart-wrapper\">\n <ChartWrapper {...attributes} className=\"h-full w-full\" data-taco=\"chart-line\">\n <RechartsPrimitive.LineChart\n data={data}\n margin={{\n bottom: 0,\n // ensures dots on the edges of the chart don't get cropped\n left: 4,\n right: 4,\n top: 4,\n }}>\n <RechartsPrimitive.CartesianGrid vertical={false} />\n <RechartsPrimitive.Tooltip content={<Tooltip title={tooltipTitle} />} />\n <RechartsPrimitive.XAxis {...getAxisProps('x', props)} />\n <RechartsPrimitive.YAxis {...getAxisProps('y', props)} />\n {renderLines(shapes, showDots, type)}\n </RechartsPrimitive.LineChart>\n </ChartWrapper>\n {showLegend ? (\n <Legend<TData> items={items} hoverIndex={activeIndex} onHover={setActiveIndex} onToggle={toggleItem} />\n ) : null}\n </div>\n );\n}\n\n/**\n * Helper function to render line shapes as Recharts Line primitives. Extracted to be reusable across LineChart and ComposedChart.\n */\nexport const renderLines = (shapes: any[], showDots: boolean = false, type: CurveType = 'natural') => {\n return shapes.map(shape => (\n <RechartsPrimitive.Line key={shape.dataKey} {...shape} dot={showDots ? shape.dot : false} type={type} />\n ));\n};\n\n// oxlint-disable-next-line no-empty-object-type\nexport type LineChartAreaProps<TData extends object> = {} & ChartChildProps<TData>;\n\nfunction Line<TData extends object>(_: LineChartAreaProps<TData>): React.JSX.Element | null {\n return null;\n}\nLineChart.Line = Line;\n"],"names":["stripCartesianProps","useChart","ChartWrapper","RechartsPrimitive","Tooltip","getAxisProps","Legend"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAuBO,SAAS,UAAgC,OAA8B;AAC1E,QAAM;AAAA,IACF;AAAA,IACA,WAAW;AAAA,IACX;AAAA,IACA,aAAa;AAAA,IACb,WAAW;AAAA,IACX;AAAA,IACA,OAAO;AAAA,IACP,GAAG;AAAA,EAAA,IACHA,OAAAA,oBAA2C,KAAK;AAEpD,QAAM,YAAY,GAAG,yBAAyB,EAAE,QAAQ,WAAA,GAAc,eAAe;AACrF,QAAM,EAAE,OAAO,QAAQ,aAAa,gBAAgB,WAAA,IAAeC,aAAAA,SAAgB,QAAQ;AAE3F,SACI,sBAAA,cAAC,OAAA,EAAI,WAAsB,aAAU,gBAAA,GACjC,sBAAA,cAACC,aAAAA,cAAA,EAAc,GAAG,YAAY,WAAU,iBAAgB,aAAU,aAAA,GAC9D,sBAAA;AAAA,IAACC,6BAAkB;AAAA,IAAlB;AAAA,MACG;AAAA,MACA,QAAQ;AAAA,QACJ,QAAQ;AAAA;AAAA,QAER,MAAM;AAAA,QACN,OAAO;AAAA,QACP,KAAK;AAAA,MAAA;AAAA,IACT;AAAA,IACA,sBAAA,cAACA,6BAAkB,eAAlB,EAAgC,UAAU,OAAO;AAAA,IAClD,sBAAA,cAACA,6BAAkB,SAAlB,EAA0B,SAAS,sBAAA,cAACC,QAAAA,SAAA,EAAQ,OAAO,aAAA,CAAc,EAAA,CAAI;AAAA,IACtE,sBAAA,cAACD,6BAAkB,OAAlB,EAAyB,GAAGE,oBAAa,KAAK,KAAK,GAAG;AAAA,IACvD,sBAAA,cAACF,6BAAkB,OAAlB,EAAyB,GAAGE,oBAAa,KAAK,KAAK,GAAG;AAAA,IACtD,YAAY,QAAQ,UAAU,IAAI;AAAA,EAAA,CAE3C,GACC,aACG,sBAAA,cAACC,OAAAA,QAAA,EAAc,OAAc,YAAY,aAAa,SAAS,gBAAgB,UAAU,WAAA,CAAY,IACrG,IACR;AAER;AAKO,MAAM,cAAc,CAAC,QAAe,WAAoB,OAAO,OAAkB,cAAc;AAClG,SAAO,OAAO,IAAI,CAAA,8CACbH,6BAAkB,MAAlB,EAAuB,KAAK,MAAM,SAAU,GAAG,OAAO,KAAK,WAAW,MAAM,MAAM,OAAO,MAAY,CACzG;AACL;AAKA,SAAS,KAA2B,GAAwD;AACxF,SAAO;AACX;AACA,UAAU,OAAO;;;"}
1
+ {"version":3,"file":"LineChart.cjs","sources":["../../../../src/charts/components/Line/LineChart.tsx"],"sourcesContent":["import cn from 'clsx';\nimport React from 'react';\nimport * as RechartsPrimitive from 'recharts';\n\nimport { getAxisProps, stripCartesianProps } from '@/charts/utils/common';\n\nimport { ChartWrapper } from '../ChartWrapper';\nimport { Legend } from '../Legend';\nimport { Tooltip } from '../Tooltip';\nimport type { ChartChildProps, CartesianChartProps, CurveType } from '../types';\nimport { type ChartShape, useChart } from '../useChartData';\n\nexport type LineChartProps<TData extends object> = {\n /** Show dots for each data point\n * @default false\n */\n showDots?: boolean;\n /** Interpolation type of the line\n * @default natural\n */\n type?: CurveType;\n} & CartesianChartProps<TData>;\n\nexport function LineChart<TData extends object>(props: LineChartProps<TData>) {\n const {\n children,\n className: customClassName,\n data,\n showLegend = false,\n showDots = false,\n tooltipTitle,\n type = 'natural',\n ...attributes\n } = stripCartesianProps<TData, LineChartProps<TData>>(props);\n\n const className = cn('relative aspect-video', { 'pb-8': showLegend }, customClassName);\n const { items, shapes, activeIndex, setActiveIndex, toggleItem } = useChart<TData>(children);\n\n return (\n <div className={className} data-taco=\"chart-wrapper\">\n <ChartWrapper {...attributes} className=\"h-full w-full\" data-taco=\"chart-line\">\n <RechartsPrimitive.LineChart\n data={data}\n margin={{\n bottom: 0,\n // ensures dots on the edges of the chart don't get cropped\n left: 4,\n right: 4,\n top: 4,\n }}>\n <RechartsPrimitive.CartesianGrid vertical={false} />\n <RechartsPrimitive.Tooltip content={<Tooltip title={tooltipTitle} />} />\n <RechartsPrimitive.XAxis {...getAxisProps('x', props)} />\n <RechartsPrimitive.YAxis {...getAxisProps('y', props)} />\n {renderLines(shapes, showDots, type)}\n </RechartsPrimitive.LineChart>\n </ChartWrapper>\n {showLegend ? (\n <Legend<TData> items={items} hoverIndex={activeIndex} onHover={setActiveIndex} onToggle={toggleItem} />\n ) : null}\n </div>\n );\n}\n\n/**\n * Helper function to render line shapes as Recharts Line primitives. Extracted to be reusable across LineChart and ComposedChart.\n */\nexport const renderLines = (shapes: ChartShape[], showDots: boolean = false, type: CurveType = 'natural') => {\n return shapes.map(shape => (\n <RechartsPrimitive.Line key={shape.dataKey} {...shape} dot={showDots ? shape.dot : false} type={type} />\n ));\n};\n\n// oxlint-disable-next-line no-empty-object-type\nexport type LineChartAreaProps<TData extends object> = {} & ChartChildProps<TData>;\n\nfunction Line<TData extends object>(_: LineChartAreaProps<TData>): React.JSX.Element | null {\n return null;\n}\nLineChart.Line = Line;\n"],"names":["stripCartesianProps","useChart","ChartWrapper","RechartsPrimitive","Tooltip","getAxisProps","Legend"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAuBO,SAAS,UAAgC,OAA8B;AAC1E,QAAM;AAAA,IACF;AAAA,IACA,WAAW;AAAA,IACX;AAAA,IACA,aAAa;AAAA,IACb,WAAW;AAAA,IACX;AAAA,IACA,OAAO;AAAA,IACP,GAAG;AAAA,EAAA,IACHA,OAAAA,oBAAkD,KAAK;AAE3D,QAAM,YAAY,GAAG,yBAAyB,EAAE,QAAQ,WAAA,GAAc,eAAe;AACrF,QAAM,EAAE,OAAO,QAAQ,aAAa,gBAAgB,WAAA,IAAeC,aAAAA,SAAgB,QAAQ;AAE3F,SACI,sBAAA,cAAC,OAAA,EAAI,WAAsB,aAAU,gBAAA,GACjC,sBAAA,cAACC,aAAAA,cAAA,EAAc,GAAG,YAAY,WAAU,iBAAgB,aAAU,aAAA,GAC9D,sBAAA;AAAA,IAACC,6BAAkB;AAAA,IAAlB;AAAA,MACG;AAAA,MACA,QAAQ;AAAA,QACJ,QAAQ;AAAA;AAAA,QAER,MAAM;AAAA,QACN,OAAO;AAAA,QACP,KAAK;AAAA,MAAA;AAAA,IACT;AAAA,IACA,sBAAA,cAACA,6BAAkB,eAAlB,EAAgC,UAAU,OAAO;AAAA,IAClD,sBAAA,cAACA,6BAAkB,SAAlB,EAA0B,SAAS,sBAAA,cAACC,QAAAA,SAAA,EAAQ,OAAO,aAAA,CAAc,EAAA,CAAI;AAAA,IACtE,sBAAA,cAACD,6BAAkB,OAAlB,EAAyB,GAAGE,oBAAa,KAAK,KAAK,GAAG;AAAA,IACvD,sBAAA,cAACF,6BAAkB,OAAlB,EAAyB,GAAGE,oBAAa,KAAK,KAAK,GAAG;AAAA,IACtD,YAAY,QAAQ,UAAU,IAAI;AAAA,EAAA,CAE3C,GACC,aACG,sBAAA,cAACC,OAAAA,QAAA,EAAc,OAAc,YAAY,aAAa,SAAS,gBAAgB,UAAU,WAAA,CAAY,IACrG,IACR;AAER;AAKO,MAAM,cAAc,CAAC,QAAsB,WAAoB,OAAO,OAAkB,cAAc;AACzG,SAAO,OAAO,IAAI,CAAA,8CACbH,6BAAkB,MAAlB,EAAuB,KAAK,MAAM,SAAU,GAAG,OAAO,KAAK,WAAW,MAAM,MAAM,OAAO,MAAY,CACzG;AACL;AAKA,SAAS,KAA2B,GAAwD;AACxF,SAAO;AACX;AACA,UAAU,OAAO;;;"}
@@ -1,5 +1,6 @@
1
1
  import { default as React } from 'react';
2
2
  import { ChartChildProps, CartesianChartProps, CurveType } from '../types';
3
+ import { ChartShape } from '../useChartData';
3
4
  export type LineChartProps<TData extends object> = {
4
5
  /** Show dots for each data point
5
6
  * @default false
@@ -17,5 +18,5 @@ export declare namespace LineChart {
17
18
  /**
18
19
  * Helper function to render line shapes as Recharts Line primitives. Extracted to be reusable across LineChart and ComposedChart.
19
20
  */
20
- export declare const renderLines: (shapes: any[], showDots?: boolean, type?: CurveType) => React.JSX.Element[];
21
+ export declare const renderLines: (shapes: ChartShape[], showDots?: boolean, type?: CurveType) => React.JSX.Element[];
21
22
  export type LineChartAreaProps<TData extends object> = {} & ChartChildProps<TData>;
@@ -1 +1 @@
1
- {"version":3,"file":"LineChart.js","sources":["../../../../src/charts/components/Line/LineChart.tsx"],"sourcesContent":["import cn from 'clsx';\nimport React from 'react';\nimport * as RechartsPrimitive from 'recharts';\n\nimport { getAxisProps, stripCartesianProps } from '@/charts/utils/common';\n\nimport { ChartWrapper } from '../ChartWrapper';\nimport { Legend } from '../Legend';\nimport { Tooltip } from '../Tooltip';\nimport type { ChartChildProps, CartesianChartProps, CurveType } from '../types';\nimport { useChart } from '../useChartData';\n\nexport type LineChartProps<TData extends object> = {\n /** Show dots for each data point\n * @default false\n */\n showDots?: boolean;\n /** Interpolation type of the line\n * @default natural\n */\n type?: CurveType;\n} & CartesianChartProps<TData>;\n\nexport function LineChart<TData extends object>(props: LineChartProps<TData>) {\n const {\n children,\n className: customClassName,\n data,\n showLegend = false,\n showDots = false,\n tooltipTitle,\n type = 'natural',\n ...attributes\n } = stripCartesianProps<LineChartProps<TData>>(props);\n\n const className = cn('relative aspect-video', { 'pb-8': showLegend }, customClassName);\n const { items, shapes, activeIndex, setActiveIndex, toggleItem } = useChart<TData>(children);\n\n return (\n <div className={className} data-taco=\"chart-wrapper\">\n <ChartWrapper {...attributes} className=\"h-full w-full\" data-taco=\"chart-line\">\n <RechartsPrimitive.LineChart\n data={data}\n margin={{\n bottom: 0,\n // ensures dots on the edges of the chart don't get cropped\n left: 4,\n right: 4,\n top: 4,\n }}>\n <RechartsPrimitive.CartesianGrid vertical={false} />\n <RechartsPrimitive.Tooltip content={<Tooltip title={tooltipTitle} />} />\n <RechartsPrimitive.XAxis {...getAxisProps('x', props)} />\n <RechartsPrimitive.YAxis {...getAxisProps('y', props)} />\n {renderLines(shapes, showDots, type)}\n </RechartsPrimitive.LineChart>\n </ChartWrapper>\n {showLegend ? (\n <Legend<TData> items={items} hoverIndex={activeIndex} onHover={setActiveIndex} onToggle={toggleItem} />\n ) : null}\n </div>\n );\n}\n\n/**\n * Helper function to render line shapes as Recharts Line primitives. Extracted to be reusable across LineChart and ComposedChart.\n */\nexport const renderLines = (shapes: any[], showDots: boolean = false, type: CurveType = 'natural') => {\n return shapes.map(shape => (\n <RechartsPrimitive.Line key={shape.dataKey} {...shape} dot={showDots ? shape.dot : false} type={type} />\n ));\n};\n\n// oxlint-disable-next-line no-empty-object-type\nexport type LineChartAreaProps<TData extends object> = {} & ChartChildProps<TData>;\n\nfunction Line<TData extends object>(_: LineChartAreaProps<TData>): React.JSX.Element | null {\n return null;\n}\nLineChart.Line = Line;\n"],"names":["React"],"mappings":";;;;;;;;AAuBO,SAAS,UAAgC,OAA8B;AAC1E,QAAM;AAAA,IACF;AAAA,IACA,WAAW;AAAA,IACX;AAAA,IACA,aAAa;AAAA,IACb,WAAW;AAAA,IACX;AAAA,IACA,OAAO;AAAA,IACP,GAAG;AAAA,EAAA,IACH,oBAA2C,KAAK;AAEpD,QAAM,YAAY,GAAG,yBAAyB,EAAE,QAAQ,WAAA,GAAc,eAAe;AACrF,QAAM,EAAE,OAAO,QAAQ,aAAa,gBAAgB,WAAA,IAAe,SAAgB,QAAQ;AAE3F,SACIA,+BAAA,cAAC,OAAA,EAAI,WAAsB,aAAU,gBAAA,GACjCA,+BAAA,cAAC,cAAA,EAAc,GAAG,YAAY,WAAU,iBAAgB,aAAU,aAAA,GAC9DA,+BAAA;AAAA,IAAC,kBAAkB;AAAA,IAAlB;AAAA,MACG;AAAA,MACA,QAAQ;AAAA,QACJ,QAAQ;AAAA;AAAA,QAER,MAAM;AAAA,QACN,OAAO;AAAA,QACP,KAAK;AAAA,MAAA;AAAA,IACT;AAAA,IACAA,+BAAA,cAAC,kBAAkB,eAAlB,EAAgC,UAAU,OAAO;AAAA,IAClDA,+BAAA,cAAC,kBAAkB,SAAlB,EAA0B,SAASA,+BAAA,cAAC,SAAA,EAAQ,OAAO,aAAA,CAAc,EAAA,CAAI;AAAA,IACtEA,+BAAA,cAAC,kBAAkB,OAAlB,EAAyB,GAAG,aAAa,KAAK,KAAK,GAAG;AAAA,IACvDA,+BAAA,cAAC,kBAAkB,OAAlB,EAAyB,GAAG,aAAa,KAAK,KAAK,GAAG;AAAA,IACtD,YAAY,QAAQ,UAAU,IAAI;AAAA,EAAA,CAE3C,GACC,aACGA,+BAAA,cAAC,QAAA,EAAc,OAAc,YAAY,aAAa,SAAS,gBAAgB,UAAU,WAAA,CAAY,IACrG,IACR;AAER;AAKO,MAAM,cAAc,CAAC,QAAe,WAAoB,OAAO,OAAkB,cAAc;AAClG,SAAO,OAAO,IAAI,CAAA,uDACb,kBAAkB,MAAlB,EAAuB,KAAK,MAAM,SAAU,GAAG,OAAO,KAAK,WAAW,MAAM,MAAM,OAAO,MAAY,CACzG;AACL;AAKA,SAAS,KAA2B,GAAwD;AACxF,SAAO;AACX;AACA,UAAU,OAAO;"}
1
+ {"version":3,"file":"LineChart.js","sources":["../../../../src/charts/components/Line/LineChart.tsx"],"sourcesContent":["import cn from 'clsx';\nimport React from 'react';\nimport * as RechartsPrimitive from 'recharts';\n\nimport { getAxisProps, stripCartesianProps } from '@/charts/utils/common';\n\nimport { ChartWrapper } from '../ChartWrapper';\nimport { Legend } from '../Legend';\nimport { Tooltip } from '../Tooltip';\nimport type { ChartChildProps, CartesianChartProps, CurveType } from '../types';\nimport { type ChartShape, useChart } from '../useChartData';\n\nexport type LineChartProps<TData extends object> = {\n /** Show dots for each data point\n * @default false\n */\n showDots?: boolean;\n /** Interpolation type of the line\n * @default natural\n */\n type?: CurveType;\n} & CartesianChartProps<TData>;\n\nexport function LineChart<TData extends object>(props: LineChartProps<TData>) {\n const {\n children,\n className: customClassName,\n data,\n showLegend = false,\n showDots = false,\n tooltipTitle,\n type = 'natural',\n ...attributes\n } = stripCartesianProps<TData, LineChartProps<TData>>(props);\n\n const className = cn('relative aspect-video', { 'pb-8': showLegend }, customClassName);\n const { items, shapes, activeIndex, setActiveIndex, toggleItem } = useChart<TData>(children);\n\n return (\n <div className={className} data-taco=\"chart-wrapper\">\n <ChartWrapper {...attributes} className=\"h-full w-full\" data-taco=\"chart-line\">\n <RechartsPrimitive.LineChart\n data={data}\n margin={{\n bottom: 0,\n // ensures dots on the edges of the chart don't get cropped\n left: 4,\n right: 4,\n top: 4,\n }}>\n <RechartsPrimitive.CartesianGrid vertical={false} />\n <RechartsPrimitive.Tooltip content={<Tooltip title={tooltipTitle} />} />\n <RechartsPrimitive.XAxis {...getAxisProps('x', props)} />\n <RechartsPrimitive.YAxis {...getAxisProps('y', props)} />\n {renderLines(shapes, showDots, type)}\n </RechartsPrimitive.LineChart>\n </ChartWrapper>\n {showLegend ? (\n <Legend<TData> items={items} hoverIndex={activeIndex} onHover={setActiveIndex} onToggle={toggleItem} />\n ) : null}\n </div>\n );\n}\n\n/**\n * Helper function to render line shapes as Recharts Line primitives. Extracted to be reusable across LineChart and ComposedChart.\n */\nexport const renderLines = (shapes: ChartShape[], showDots: boolean = false, type: CurveType = 'natural') => {\n return shapes.map(shape => (\n <RechartsPrimitive.Line key={shape.dataKey} {...shape} dot={showDots ? shape.dot : false} type={type} />\n ));\n};\n\n// oxlint-disable-next-line no-empty-object-type\nexport type LineChartAreaProps<TData extends object> = {} & ChartChildProps<TData>;\n\nfunction Line<TData extends object>(_: LineChartAreaProps<TData>): React.JSX.Element | null {\n return null;\n}\nLineChart.Line = Line;\n"],"names":["React"],"mappings":";;;;;;;;AAuBO,SAAS,UAAgC,OAA8B;AAC1E,QAAM;AAAA,IACF;AAAA,IACA,WAAW;AAAA,IACX;AAAA,IACA,aAAa;AAAA,IACb,WAAW;AAAA,IACX;AAAA,IACA,OAAO;AAAA,IACP,GAAG;AAAA,EAAA,IACH,oBAAkD,KAAK;AAE3D,QAAM,YAAY,GAAG,yBAAyB,EAAE,QAAQ,WAAA,GAAc,eAAe;AACrF,QAAM,EAAE,OAAO,QAAQ,aAAa,gBAAgB,WAAA,IAAe,SAAgB,QAAQ;AAE3F,SACIA,+BAAA,cAAC,OAAA,EAAI,WAAsB,aAAU,gBAAA,GACjCA,+BAAA,cAAC,cAAA,EAAc,GAAG,YAAY,WAAU,iBAAgB,aAAU,aAAA,GAC9DA,+BAAA;AAAA,IAAC,kBAAkB;AAAA,IAAlB;AAAA,MACG;AAAA,MACA,QAAQ;AAAA,QACJ,QAAQ;AAAA;AAAA,QAER,MAAM;AAAA,QACN,OAAO;AAAA,QACP,KAAK;AAAA,MAAA;AAAA,IACT;AAAA,IACAA,+BAAA,cAAC,kBAAkB,eAAlB,EAAgC,UAAU,OAAO;AAAA,IAClDA,+BAAA,cAAC,kBAAkB,SAAlB,EAA0B,SAASA,+BAAA,cAAC,SAAA,EAAQ,OAAO,aAAA,CAAc,EAAA,CAAI;AAAA,IACtEA,+BAAA,cAAC,kBAAkB,OAAlB,EAAyB,GAAG,aAAa,KAAK,KAAK,GAAG;AAAA,IACvDA,+BAAA,cAAC,kBAAkB,OAAlB,EAAyB,GAAG,aAAa,KAAK,KAAK,GAAG;AAAA,IACtD,YAAY,QAAQ,UAAU,IAAI;AAAA,EAAA,CAE3C,GACC,aACGA,+BAAA,cAAC,QAAA,EAAc,OAAc,YAAY,aAAa,SAAS,gBAAgB,UAAU,WAAA,CAAY,IACrG,IACR;AAER;AAKO,MAAM,cAAc,CAAC,QAAsB,WAAoB,OAAO,OAAkB,cAAc;AACzG,SAAO,OAAO,IAAI,CAAA,uDACb,kBAAkB,MAAlB,EAAuB,KAAK,MAAM,SAAU,GAAG,OAAO,KAAK,WAAW,MAAM,MAAM,OAAO,MAAY,CACzG;AACL;AAKA,SAAS,KAA2B,GAAwD;AACxF,SAAO;AACX;AACA,UAAU,OAAO;"}
@@ -40,10 +40,10 @@ function Segment(_) {
40
40
  PieChart.Segment = Segment;
41
41
  const RADIAN = Math.PI / 180;
42
42
  function Label(props) {
43
- const { cx, cy, midAngle, name, innerRadius, outerRadius } = props;
44
- const radius = innerRadius + (outerRadius - innerRadius) * 0.7;
45
- const x = cx + radius * Math.cos(-midAngle * RADIAN);
46
- const y = cy + radius * Math.sin(-midAngle * RADIAN);
43
+ const { cx = 0, cy = 0, midAngle = 0, name, innerRadius = 0, outerRadius = 0 } = props;
44
+ const radius = Number(innerRadius) + (Number(outerRadius) - Number(innerRadius)) * 0.7;
45
+ const x = Number(cx) + radius * Math.cos(-midAngle * RADIAN);
46
+ const y = Number(cy) + radius * Math.sin(-midAngle * RADIAN);
47
47
  return /* @__PURE__ */ React.createElement(
48
48
  "text",
49
49
  {
@@ -1 +1 @@
1
- {"version":3,"file":"PieChart.cjs","sources":["../../../../src/charts/components/Pie/PieChart.tsx"],"sourcesContent":["import cn from 'clsx';\nimport React from 'react';\nimport * as RechartsPrimitive from 'recharts';\n\nimport { getInverseThemeColor } from '@/charts/utils/color';\n\nimport { ChartWrapper } from '../ChartWrapper';\nimport { Legend } from '../Legend';\nimport { Tooltip } from '../Tooltip';\nimport type { ChartChildProps, PolarChartProps } from '../types';\n\nimport { usePieChart } from './util';\n\nexport type PieChartProps = {\n /** Show labels inside each segment\n * @default false\n */\n showLabels?: boolean;\n} & PolarChartProps;\n\nexport function PieChart<TData extends object>(props: PieChartProps) {\n const { children, formatter, showLabels = false, showLegend = false, tooltipTitle, unit, ...attributes } = props;\n const { pieProps, setRadius, items, activeIndex, setActiveIndex, toggleItem } = usePieChart<TData>(children, {\n formatter,\n unit,\n });\n const className = cn('aspect-square', attributes.className);\n\n return (\n <div className=\"relative\" data-taco=\"chart-wrapper\">\n <ChartWrapper {...attributes} className={className} data-taco=\"chart-pie\" onSetWidth={setRadius}>\n <RechartsPrimitive.PieChart>\n <RechartsPrimitive.Tooltip content={<Tooltip title={tooltipTitle} />} />\n <RechartsPrimitive.Pie {...pieProps} label={showLabels ? <Label /> : undefined} />\n </RechartsPrimitive.PieChart>\n </ChartWrapper>\n {showLegend ? (\n <Legend<TData> items={items} hoverIndex={activeIndex} onHover={setActiveIndex} onToggle={toggleItem} />\n ) : null}\n </div>\n );\n}\n\nexport type PieChartSegmentProps<TData extends object> = {\n value: number;\n} & Omit<ChartChildProps<TData>, 'dataKey' | 'formatter' | 'unit'>;\n\nfunction Segment<TData extends object>(_: PieChartSegmentProps<TData>): React.JSX.Element | null {\n return null;\n}\nPieChart.Segment = Segment;\n\nconst RADIAN = Math.PI / 180;\n\nfunction Label(props: any) {\n const { cx, cy, midAngle, name, innerRadius, outerRadius } = props;\n const radius = innerRadius + (outerRadius - innerRadius) * 0.7;\n const x = cx + radius * Math.cos(-midAngle * RADIAN);\n const y = cy + radius * Math.sin(-midAngle * RADIAN);\n\n return (\n <text\n x={x}\n y={y}\n fontSize={12}\n fill={getInverseThemeColor(props.payload?.payload?.color ?? '')}\n textAnchor=\"middle\"\n dominantBaseline=\"middle\">\n {name}\n </text>\n );\n}\n"],"names":["usePieChart","ChartWrapper","RechartsPrimitive","Tooltip","Legend","getInverseThemeColor"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAoBO,SAAS,SAA+B,OAAsB;AACjE,QAAM,EAAE,UAAU,WAAW,aAAa,OAAO,aAAa,OAAO,cAAc,MAAM,GAAG,WAAA,IAAe;AAC3G,QAAM,EAAE,UAAU,WAAW,OAAO,aAAa,gBAAgB,WAAA,IAAeA,KAAAA,YAAmB,UAAU;AAAA,IACzG;AAAA,IACA;AAAA,EAAA,CACH;AACD,QAAM,YAAY,GAAG,iBAAiB,WAAW,SAAS;AAE1D,SACI,sBAAA,cAAC,OAAA,EAAI,WAAU,YAAW,aAAU,gBAAA,GAChC,sBAAA,cAACC,aAAAA,cAAA,EAAc,GAAG,YAAY,WAAsB,aAAU,aAAY,YAAY,UAAA,GAClF,sBAAA,cAACC,6BAAkB,UAAlB,MACG,sBAAA,cAACA,6BAAkB,SAAlB,EAA0B,SAAS,sBAAA,cAACC,QAAAA,SAAA,EAAQ,OAAO,aAAA,CAAc,GAAI,GACtE,sBAAA,cAACD,6BAAkB,KAAlB,EAAuB,GAAG,UAAU,OAAO,aAAa,sBAAA,cAAC,OAAA,IAAM,IAAK,OAAA,CAAW,CACpF,CACJ,GACC,aACG,sBAAA,cAACE,OAAAA,QAAA,EAAc,OAAc,YAAY,aAAa,SAAS,gBAAgB,UAAU,WAAA,CAAY,IACrG,IACR;AAER;AAMA,SAAS,QAA8B,GAA0D;AAC7F,SAAO;AACX;AACA,SAAS,UAAU;AAEnB,MAAM,SAAS,KAAK,KAAK;AAEzB,SAAS,MAAM,OAAY;AACvB,QAAM,EAAE,IAAI,IAAI,UAAU,MAAM,aAAa,gBAAgB;AAC7D,QAAM,SAAS,eAAe,cAAc,eAAe;AAC3D,QAAM,IAAI,KAAK,SAAS,KAAK,IAAI,CAAC,WAAW,MAAM;AACnD,QAAM,IAAI,KAAK,SAAS,KAAK,IAAI,CAAC,WAAW,MAAM;AAEnD,SACI,sBAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACG;AAAA,MACA;AAAA,MACA,UAAU;AAAA,MACV,MAAMC,MAAAA,qBAAqB,MAAM,SAAS,SAAS,SAAS,EAAE;AAAA,MAC9D,YAAW;AAAA,MACX,kBAAiB;AAAA,IAAA;AAAA,IAChB;AAAA,EAAA;AAGb;;"}
1
+ {"version":3,"file":"PieChart.cjs","sources":["../../../../src/charts/components/Pie/PieChart.tsx"],"sourcesContent":["import cn from 'clsx';\nimport React from 'react';\nimport * as RechartsPrimitive from 'recharts';\nimport type { PieLabelRenderProps } from 'recharts/types/polar/Pie';\n\nimport { getInverseThemeColor } from '@/charts/utils/color';\n\nimport { ChartWrapper } from '../ChartWrapper';\nimport { Legend } from '../Legend';\nimport { Tooltip } from '../Tooltip';\nimport type { ChartChildProps, PolarChartProps } from '../types';\n\nimport { usePieChart } from './util';\n\nexport type PieChartProps = {\n /** Show labels inside each segment\n * @default false\n */\n showLabels?: boolean;\n} & PolarChartProps;\n\nexport function PieChart<TData extends object>(props: PieChartProps) {\n const { children, formatter, showLabels = false, showLegend = false, tooltipTitle, unit, ...attributes } = props;\n const { pieProps, setRadius, items, activeIndex, setActiveIndex, toggleItem } = usePieChart<TData>(children, {\n formatter,\n unit,\n });\n const className = cn('aspect-square', attributes.className);\n\n return (\n <div className=\"relative\" data-taco=\"chart-wrapper\">\n <ChartWrapper {...attributes} className={className} data-taco=\"chart-pie\" onSetWidth={setRadius}>\n <RechartsPrimitive.PieChart>\n <RechartsPrimitive.Tooltip content={<Tooltip title={tooltipTitle} />} />\n <RechartsPrimitive.Pie {...pieProps} label={showLabels ? <Label /> : undefined} />\n </RechartsPrimitive.PieChart>\n </ChartWrapper>\n {showLegend ? (\n <Legend<TData> items={items} hoverIndex={activeIndex} onHover={setActiveIndex} onToggle={toggleItem} />\n ) : null}\n </div>\n );\n}\n\nexport type PieChartSegmentProps<TData extends object> = {\n value: number;\n} & Omit<ChartChildProps<TData>, 'dataKey' | 'formatter' | 'unit'>;\n\nfunction Segment<TData extends object>(_: PieChartSegmentProps<TData>): React.JSX.Element | null {\n return null;\n}\nPieChart.Segment = Segment;\n\nconst RADIAN = Math.PI / 180;\n\n// Recharts injects the render props when it clones this element, so they're all optional here.\nfunction Label(props: Partial<PieLabelRenderProps>) {\n const { cx = 0, cy = 0, midAngle = 0, name, innerRadius = 0, outerRadius = 0 } = props;\n const radius = Number(innerRadius) + (Number(outerRadius) - Number(innerRadius)) * 0.7;\n const x = Number(cx) + radius * Math.cos(-midAngle * RADIAN);\n const y = Number(cy) + radius * Math.sin(-midAngle * RADIAN);\n\n return (\n <text\n x={x}\n y={y}\n fontSize={12}\n fill={getInverseThemeColor(props.payload?.payload?.color ?? '')}\n textAnchor=\"middle\"\n dominantBaseline=\"middle\">\n {name}\n </text>\n );\n}\n"],"names":["usePieChart","ChartWrapper","RechartsPrimitive","Tooltip","Legend","getInverseThemeColor"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAqBO,SAAS,SAA+B,OAAsB;AACjE,QAAM,EAAE,UAAU,WAAW,aAAa,OAAO,aAAa,OAAO,cAAc,MAAM,GAAG,WAAA,IAAe;AAC3G,QAAM,EAAE,UAAU,WAAW,OAAO,aAAa,gBAAgB,WAAA,IAAeA,KAAAA,YAAmB,UAAU;AAAA,IACzG;AAAA,IACA;AAAA,EAAA,CACH;AACD,QAAM,YAAY,GAAG,iBAAiB,WAAW,SAAS;AAE1D,SACI,sBAAA,cAAC,OAAA,EAAI,WAAU,YAAW,aAAU,gBAAA,GAChC,sBAAA,cAACC,aAAAA,cAAA,EAAc,GAAG,YAAY,WAAsB,aAAU,aAAY,YAAY,UAAA,GAClF,sBAAA,cAACC,6BAAkB,UAAlB,MACG,sBAAA,cAACA,6BAAkB,SAAlB,EAA0B,SAAS,sBAAA,cAACC,QAAAA,SAAA,EAAQ,OAAO,aAAA,CAAc,GAAI,GACtE,sBAAA,cAACD,6BAAkB,KAAlB,EAAuB,GAAG,UAAU,OAAO,aAAa,sBAAA,cAAC,OAAA,IAAM,IAAK,OAAA,CAAW,CACpF,CACJ,GACC,aACG,sBAAA,cAACE,OAAAA,QAAA,EAAc,OAAc,YAAY,aAAa,SAAS,gBAAgB,UAAU,WAAA,CAAY,IACrG,IACR;AAER;AAMA,SAAS,QAA8B,GAA0D;AAC7F,SAAO;AACX;AACA,SAAS,UAAU;AAEnB,MAAM,SAAS,KAAK,KAAK;AAGzB,SAAS,MAAM,OAAqC;AAChD,QAAM,EAAE,KAAK,GAAG,KAAK,GAAG,WAAW,GAAG,MAAM,cAAc,GAAG,cAAc,EAAA,IAAM;AACjF,QAAM,SAAS,OAAO,WAAW,KAAK,OAAO,WAAW,IAAI,OAAO,WAAW,KAAK;AACnF,QAAM,IAAI,OAAO,EAAE,IAAI,SAAS,KAAK,IAAI,CAAC,WAAW,MAAM;AAC3D,QAAM,IAAI,OAAO,EAAE,IAAI,SAAS,KAAK,IAAI,CAAC,WAAW,MAAM;AAE3D,SACI,sBAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACG;AAAA,MACA;AAAA,MACA,UAAU;AAAA,MACV,MAAMC,MAAAA,qBAAqB,MAAM,SAAS,SAAS,SAAS,EAAE;AAAA,MAC9D,YAAW;AAAA,MACX,kBAAiB;AAAA,IAAA;AAAA,IAChB;AAAA,EAAA;AAGb;;"}
@@ -21,10 +21,10 @@ function Segment(_) {
21
21
  PieChart.Segment = Segment;
22
22
  const RADIAN = Math.PI / 180;
23
23
  function Label(props) {
24
- const { cx, cy, midAngle, name, innerRadius, outerRadius } = props;
25
- const radius = innerRadius + (outerRadius - innerRadius) * 0.7;
26
- const x = cx + radius * Math.cos(-midAngle * RADIAN);
27
- const y = cy + radius * Math.sin(-midAngle * RADIAN);
24
+ const { cx = 0, cy = 0, midAngle = 0, name, innerRadius = 0, outerRadius = 0 } = props;
25
+ const radius = Number(innerRadius) + (Number(outerRadius) - Number(innerRadius)) * 0.7;
26
+ const x = Number(cx) + radius * Math.cos(-midAngle * RADIAN);
27
+ const y = Number(cy) + radius * Math.sin(-midAngle * RADIAN);
28
28
  return /* @__PURE__ */ React__default.createElement(
29
29
  "text",
30
30
  {
@@ -1 +1 @@
1
- {"version":3,"file":"PieChart.js","sources":["../../../../src/charts/components/Pie/PieChart.tsx"],"sourcesContent":["import cn from 'clsx';\nimport React from 'react';\nimport * as RechartsPrimitive from 'recharts';\n\nimport { getInverseThemeColor } from '@/charts/utils/color';\n\nimport { ChartWrapper } from '../ChartWrapper';\nimport { Legend } from '../Legend';\nimport { Tooltip } from '../Tooltip';\nimport type { ChartChildProps, PolarChartProps } from '../types';\n\nimport { usePieChart } from './util';\n\nexport type PieChartProps = {\n /** Show labels inside each segment\n * @default false\n */\n showLabels?: boolean;\n} & PolarChartProps;\n\nexport function PieChart<TData extends object>(props: PieChartProps) {\n const { children, formatter, showLabels = false, showLegend = false, tooltipTitle, unit, ...attributes } = props;\n const { pieProps, setRadius, items, activeIndex, setActiveIndex, toggleItem } = usePieChart<TData>(children, {\n formatter,\n unit,\n });\n const className = cn('aspect-square', attributes.className);\n\n return (\n <div className=\"relative\" data-taco=\"chart-wrapper\">\n <ChartWrapper {...attributes} className={className} data-taco=\"chart-pie\" onSetWidth={setRadius}>\n <RechartsPrimitive.PieChart>\n <RechartsPrimitive.Tooltip content={<Tooltip title={tooltipTitle} />} />\n <RechartsPrimitive.Pie {...pieProps} label={showLabels ? <Label /> : undefined} />\n </RechartsPrimitive.PieChart>\n </ChartWrapper>\n {showLegend ? (\n <Legend<TData> items={items} hoverIndex={activeIndex} onHover={setActiveIndex} onToggle={toggleItem} />\n ) : null}\n </div>\n );\n}\n\nexport type PieChartSegmentProps<TData extends object> = {\n value: number;\n} & Omit<ChartChildProps<TData>, 'dataKey' | 'formatter' | 'unit'>;\n\nfunction Segment<TData extends object>(_: PieChartSegmentProps<TData>): React.JSX.Element | null {\n return null;\n}\nPieChart.Segment = Segment;\n\nconst RADIAN = Math.PI / 180;\n\nfunction Label(props: any) {\n const { cx, cy, midAngle, name, innerRadius, outerRadius } = props;\n const radius = innerRadius + (outerRadius - innerRadius) * 0.7;\n const x = cx + radius * Math.cos(-midAngle * RADIAN);\n const y = cy + radius * Math.sin(-midAngle * RADIAN);\n\n return (\n <text\n x={x}\n y={y}\n fontSize={12}\n fill={getInverseThemeColor(props.payload?.payload?.color ?? '')}\n textAnchor=\"middle\"\n dominantBaseline=\"middle\">\n {name}\n </text>\n );\n}\n"],"names":["React"],"mappings":";;;;;;;;AAoBO,SAAS,SAA+B,OAAsB;AACjE,QAAM,EAAE,UAAU,WAAW,aAAa,OAAO,aAAa,OAAO,cAAc,MAAM,GAAG,WAAA,IAAe;AAC3G,QAAM,EAAE,UAAU,WAAW,OAAO,aAAa,gBAAgB,WAAA,IAAe,YAAmB,UAAU;AAAA,IACzG;AAAA,IACA;AAAA,EAAA,CACH;AACD,QAAM,YAAY,GAAG,iBAAiB,WAAW,SAAS;AAE1D,SACIA,+BAAA,cAAC,OAAA,EAAI,WAAU,YAAW,aAAU,gBAAA,GAChCA,+BAAA,cAAC,cAAA,EAAc,GAAG,YAAY,WAAsB,aAAU,aAAY,YAAY,UAAA,GAClFA,+BAAA,cAAC,kBAAkB,UAAlB,MACGA,+BAAA,cAAC,kBAAkB,SAAlB,EAA0B,SAASA,+BAAA,cAAC,SAAA,EAAQ,OAAO,aAAA,CAAc,GAAI,GACtEA,+BAAA,cAAC,kBAAkB,KAAlB,EAAuB,GAAG,UAAU,OAAO,aAAaA,+BAAA,cAAC,OAAA,IAAM,IAAK,OAAA,CAAW,CACpF,CACJ,GACC,aACGA,+BAAA,cAAC,QAAA,EAAc,OAAc,YAAY,aAAa,SAAS,gBAAgB,UAAU,WAAA,CAAY,IACrG,IACR;AAER;AAMA,SAAS,QAA8B,GAA0D;AAC7F,SAAO;AACX;AACA,SAAS,UAAU;AAEnB,MAAM,SAAS,KAAK,KAAK;AAEzB,SAAS,MAAM,OAAY;AACvB,QAAM,EAAE,IAAI,IAAI,UAAU,MAAM,aAAa,gBAAgB;AAC7D,QAAM,SAAS,eAAe,cAAc,eAAe;AAC3D,QAAM,IAAI,KAAK,SAAS,KAAK,IAAI,CAAC,WAAW,MAAM;AACnD,QAAM,IAAI,KAAK,SAAS,KAAK,IAAI,CAAC,WAAW,MAAM;AAEnD,SACIA,+BAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACG;AAAA,MACA;AAAA,MACA,UAAU;AAAA,MACV,MAAM,qBAAqB,MAAM,SAAS,SAAS,SAAS,EAAE;AAAA,MAC9D,YAAW;AAAA,MACX,kBAAiB;AAAA,IAAA;AAAA,IAChB;AAAA,EAAA;AAGb;"}
1
+ {"version":3,"file":"PieChart.js","sources":["../../../../src/charts/components/Pie/PieChart.tsx"],"sourcesContent":["import cn from 'clsx';\nimport React from 'react';\nimport * as RechartsPrimitive from 'recharts';\nimport type { PieLabelRenderProps } from 'recharts/types/polar/Pie';\n\nimport { getInverseThemeColor } from '@/charts/utils/color';\n\nimport { ChartWrapper } from '../ChartWrapper';\nimport { Legend } from '../Legend';\nimport { Tooltip } from '../Tooltip';\nimport type { ChartChildProps, PolarChartProps } from '../types';\n\nimport { usePieChart } from './util';\n\nexport type PieChartProps = {\n /** Show labels inside each segment\n * @default false\n */\n showLabels?: boolean;\n} & PolarChartProps;\n\nexport function PieChart<TData extends object>(props: PieChartProps) {\n const { children, formatter, showLabels = false, showLegend = false, tooltipTitle, unit, ...attributes } = props;\n const { pieProps, setRadius, items, activeIndex, setActiveIndex, toggleItem } = usePieChart<TData>(children, {\n formatter,\n unit,\n });\n const className = cn('aspect-square', attributes.className);\n\n return (\n <div className=\"relative\" data-taco=\"chart-wrapper\">\n <ChartWrapper {...attributes} className={className} data-taco=\"chart-pie\" onSetWidth={setRadius}>\n <RechartsPrimitive.PieChart>\n <RechartsPrimitive.Tooltip content={<Tooltip title={tooltipTitle} />} />\n <RechartsPrimitive.Pie {...pieProps} label={showLabels ? <Label /> : undefined} />\n </RechartsPrimitive.PieChart>\n </ChartWrapper>\n {showLegend ? (\n <Legend<TData> items={items} hoverIndex={activeIndex} onHover={setActiveIndex} onToggle={toggleItem} />\n ) : null}\n </div>\n );\n}\n\nexport type PieChartSegmentProps<TData extends object> = {\n value: number;\n} & Omit<ChartChildProps<TData>, 'dataKey' | 'formatter' | 'unit'>;\n\nfunction Segment<TData extends object>(_: PieChartSegmentProps<TData>): React.JSX.Element | null {\n return null;\n}\nPieChart.Segment = Segment;\n\nconst RADIAN = Math.PI / 180;\n\n// Recharts injects the render props when it clones this element, so they're all optional here.\nfunction Label(props: Partial<PieLabelRenderProps>) {\n const { cx = 0, cy = 0, midAngle = 0, name, innerRadius = 0, outerRadius = 0 } = props;\n const radius = Number(innerRadius) + (Number(outerRadius) - Number(innerRadius)) * 0.7;\n const x = Number(cx) + radius * Math.cos(-midAngle * RADIAN);\n const y = Number(cy) + radius * Math.sin(-midAngle * RADIAN);\n\n return (\n <text\n x={x}\n y={y}\n fontSize={12}\n fill={getInverseThemeColor(props.payload?.payload?.color ?? '')}\n textAnchor=\"middle\"\n dominantBaseline=\"middle\">\n {name}\n </text>\n );\n}\n"],"names":["React"],"mappings":";;;;;;;;AAqBO,SAAS,SAA+B,OAAsB;AACjE,QAAM,EAAE,UAAU,WAAW,aAAa,OAAO,aAAa,OAAO,cAAc,MAAM,GAAG,WAAA,IAAe;AAC3G,QAAM,EAAE,UAAU,WAAW,OAAO,aAAa,gBAAgB,WAAA,IAAe,YAAmB,UAAU;AAAA,IACzG;AAAA,IACA;AAAA,EAAA,CACH;AACD,QAAM,YAAY,GAAG,iBAAiB,WAAW,SAAS;AAE1D,SACIA,+BAAA,cAAC,OAAA,EAAI,WAAU,YAAW,aAAU,gBAAA,GAChCA,+BAAA,cAAC,cAAA,EAAc,GAAG,YAAY,WAAsB,aAAU,aAAY,YAAY,UAAA,GAClFA,+BAAA,cAAC,kBAAkB,UAAlB,MACGA,+BAAA,cAAC,kBAAkB,SAAlB,EAA0B,SAASA,+BAAA,cAAC,SAAA,EAAQ,OAAO,aAAA,CAAc,GAAI,GACtEA,+BAAA,cAAC,kBAAkB,KAAlB,EAAuB,GAAG,UAAU,OAAO,aAAaA,+BAAA,cAAC,OAAA,IAAM,IAAK,OAAA,CAAW,CACpF,CACJ,GACC,aACGA,+BAAA,cAAC,QAAA,EAAc,OAAc,YAAY,aAAa,SAAS,gBAAgB,UAAU,WAAA,CAAY,IACrG,IACR;AAER;AAMA,SAAS,QAA8B,GAA0D;AAC7F,SAAO;AACX;AACA,SAAS,UAAU;AAEnB,MAAM,SAAS,KAAK,KAAK;AAGzB,SAAS,MAAM,OAAqC;AAChD,QAAM,EAAE,KAAK,GAAG,KAAK,GAAG,WAAW,GAAG,MAAM,cAAc,GAAG,cAAc,EAAA,IAAM;AACjF,QAAM,SAAS,OAAO,WAAW,KAAK,OAAO,WAAW,IAAI,OAAO,WAAW,KAAK;AACnF,QAAM,IAAI,OAAO,EAAE,IAAI,SAAS,KAAK,IAAI,CAAC,WAAW,MAAM;AAC3D,QAAM,IAAI,OAAO,EAAE,IAAI,SAAS,KAAK,IAAI,CAAC,WAAW,MAAM;AAE3D,SACIA,+BAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACG;AAAA,MACA;AAAA,MACA,UAAU;AAAA,MACV,MAAM,qBAAqB,MAAM,SAAS,SAAS,SAAS,EAAE;AAAA,MAC9D,YAAW;AAAA,MACX,kBAAiB;AAAA,IAAA;AAAA,IAChB;AAAA,EAAA;AAGb;"}
@@ -1 +1 @@
1
- {"version":3,"file":"util.cjs","sources":["../../../../src/charts/components/Pie/util.tsx"],"sourcesContent":["import React from 'react';\nimport * as RechartsPrimitive from 'recharts';\nimport type { PieSectorDataItem } from 'recharts/types/polar/Pie';\n\nimport type { useChartOptions } from '../useChartData';\nimport { useChart } from '../useChartData';\n\nconst PIE_ACTIVE_WIDTH = 10;\nconst PIE_ACTIVE_WIDTH_OFFSET = 2;\n\nexport function usePieChart<TData extends object>(children: React.ReactNode, options?: useChartOptions) {\n const { items, shapes, activeIndex, setActiveIndex, globalFormatter, toggleItem } = useChart<TData>(children, options);\n const [radius, _setRadius] = React.useState<number>(0);\n\n function setRadius(width: number) {\n _setRadius((width - 2 * (PIE_ACTIVE_WIDTH + PIE_ACTIVE_WIDTH_OFFSET)) / 2);\n }\n\n const pieProps = {\n activeIndex,\n activeShape: (props: any) => <ActiveShape {...props} />,\n children: shapes.map(shape => <RechartsPrimitive.Cell key={shape.dataKey} color={shape.color} fill={shape.fill} />),\n // data props\n data: items.filter(item => !item.isHidden),\n dataKey: 'value',\n nameKey: 'label',\n // style props\n isAnimationActive: false,\n startAngle: 90,\n endAngle: -270,\n stroke: '0',\n labelLine: false,\n outerRadius: radius,\n };\n\n return { pieProps, radius, setRadius, items, activeIndex, setActiveIndex, globalFormatter, toggleItem, shapes };\n}\n\nconst PIE_CHART_HOVER = 10;\nconst PIE_CHART_HOVER_OFFSET = 2;\n\ntype ActiveShapeProps = {\n pieColors: Record<string, string>;\n} & PieSectorDataItem;\n\nfunction ActiveShape(props: ActiveShapeProps) {\n const { outerRadius = 0, ...attributes } = props;\n\n return (\n <>\n <RechartsPrimitive.Sector {...attributes} outerRadius={outerRadius} />\n <RechartsPrimitive.Sector\n {...attributes}\n innerRadius={outerRadius + PIE_CHART_HOVER_OFFSET}\n outerRadius={outerRadius + PIE_CHART_HOVER}\n opacity={0.4}\n />\n </>\n );\n}\n"],"names":["useChart","RechartsPrimitive"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAOA,MAAM,mBAAmB;AACzB,MAAM,0BAA0B;AAEzB,SAAS,YAAkC,UAA2B,SAA2B;AACpG,QAAM,EAAE,OAAO,QAAQ,aAAa,gBAAgB,iBAAiB,eAAeA,aAAAA,SAAgB,UAAU,OAAO;AACrH,QAAM,CAAC,QAAQ,UAAU,IAAI,MAAM,SAAiB,CAAC;AAErD,WAAS,UAAU,OAAe;AAC9B,gBAAY,QAAQ,KAAK,mBAAmB,4BAA4B,CAAC;AAAA,EAC7E;AAEA,QAAM,WAAW;AAAA,IACb;AAAA,IACA,aAAa,CAAC,UAAe,sBAAA,cAAC,aAAA,EAAa,GAAG,OAAO;AAAA,IACrD,UAAU,OAAO,IAAI,CAAA,UAAS,sBAAA,cAACC,6BAAkB,MAAlB,EAAuB,KAAK,MAAM,SAAS,OAAO,MAAM,OAAO,MAAM,MAAM,MAAM,CAAE;AAAA;AAAA,IAElH,MAAM,MAAM,OAAO,CAAA,SAAQ,CAAC,KAAK,QAAQ;AAAA,IACzC,SAAS;AAAA,IACT,SAAS;AAAA;AAAA,IAET,mBAAmB;AAAA,IACnB,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,WAAW;AAAA,IACX,aAAa;AAAA,EAAA;AAGjB,SAAO,EAAE,UAAU,QAAQ,WAAW,OAAO,aAAa,gBAAgB,iBAAiB,YAAY,OAAA;AAC3G;AAEA,MAAM,kBAAkB;AACxB,MAAM,yBAAyB;AAM/B,SAAS,YAAY,OAAyB;AAC1C,QAAM,EAAE,cAAc,GAAG,GAAG,eAAe;AAE3C,SACI,sBAAA,cAAA,MAAA,UAAA,0CACKA,6BAAkB,QAAlB,EAA0B,GAAG,YAAY,aAA0B,GACpE,sBAAA;AAAA,IAACA,6BAAkB;AAAA,IAAlB;AAAA,MACI,GAAG;AAAA,MACJ,aAAa,cAAc;AAAA,MAC3B,aAAa,cAAc;AAAA,MAC3B,SAAS;AAAA,IAAA;AAAA,EAAA,CAEjB;AAER;;"}
1
+ {"version":3,"file":"util.cjs","sources":["../../../../src/charts/components/Pie/util.tsx"],"sourcesContent":["import React from 'react';\nimport * as RechartsPrimitive from 'recharts';\nimport type { PieSectorDataItem } from 'recharts/types/polar/Pie';\n\nimport type { useChartOptions } from '../useChartData';\nimport { useChart } from '../useChartData';\n\nconst PIE_ACTIVE_WIDTH = 10;\nconst PIE_ACTIVE_WIDTH_OFFSET = 2;\n\nexport function usePieChart<TData extends object>(children: React.ReactNode, options?: useChartOptions) {\n const { items, shapes, activeIndex, setActiveIndex, globalFormatter, toggleItem } = useChart<TData>(children, options);\n const [radius, _setRadius] = React.useState<number>(0);\n\n function setRadius(width: number) {\n _setRadius((width - 2 * (PIE_ACTIVE_WIDTH + PIE_ACTIVE_WIDTH_OFFSET)) / 2);\n }\n\n const pieProps = {\n activeIndex,\n activeShape: (props: PieSectorDataItem) => <ActiveShape {...props} />,\n children: shapes.map(shape => <RechartsPrimitive.Cell key={shape.dataKey} color={shape.color} fill={shape.fill} />),\n // data props\n data: items.filter(item => !item.isHidden),\n dataKey: 'value',\n nameKey: 'label',\n // style props\n isAnimationActive: false,\n startAngle: 90,\n endAngle: -270,\n stroke: '0',\n labelLine: false,\n outerRadius: radius,\n };\n\n return { pieProps, radius, setRadius, items, activeIndex, setActiveIndex, globalFormatter, toggleItem, shapes };\n}\n\nconst PIE_CHART_HOVER = 10;\nconst PIE_CHART_HOVER_OFFSET = 2;\n\nfunction ActiveShape(props: PieSectorDataItem) {\n const { outerRadius = 0, ...attributes } = props;\n\n return (\n <>\n <RechartsPrimitive.Sector {...attributes} outerRadius={outerRadius} />\n <RechartsPrimitive.Sector\n {...attributes}\n innerRadius={outerRadius + PIE_CHART_HOVER_OFFSET}\n outerRadius={outerRadius + PIE_CHART_HOVER}\n opacity={0.4}\n />\n </>\n );\n}\n"],"names":["useChart","RechartsPrimitive"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAOA,MAAM,mBAAmB;AACzB,MAAM,0BAA0B;AAEzB,SAAS,YAAkC,UAA2B,SAA2B;AACpG,QAAM,EAAE,OAAO,QAAQ,aAAa,gBAAgB,iBAAiB,eAAeA,aAAAA,SAAgB,UAAU,OAAO;AACrH,QAAM,CAAC,QAAQ,UAAU,IAAI,MAAM,SAAiB,CAAC;AAErD,WAAS,UAAU,OAAe;AAC9B,gBAAY,QAAQ,KAAK,mBAAmB,4BAA4B,CAAC;AAAA,EAC7E;AAEA,QAAM,WAAW;AAAA,IACb;AAAA,IACA,aAAa,CAAC,UAA6B,sBAAA,cAAC,aAAA,EAAa,GAAG,OAAO;AAAA,IACnE,UAAU,OAAO,IAAI,CAAA,UAAS,sBAAA,cAACC,6BAAkB,MAAlB,EAAuB,KAAK,MAAM,SAAS,OAAO,MAAM,OAAO,MAAM,MAAM,MAAM,CAAE;AAAA;AAAA,IAElH,MAAM,MAAM,OAAO,CAAA,SAAQ,CAAC,KAAK,QAAQ;AAAA,IACzC,SAAS;AAAA,IACT,SAAS;AAAA;AAAA,IAET,mBAAmB;AAAA,IACnB,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,WAAW;AAAA,IACX,aAAa;AAAA,EAAA;AAGjB,SAAO,EAAE,UAAU,QAAQ,WAAW,OAAO,aAAa,gBAAgB,iBAAiB,YAAY,OAAA;AAC3G;AAEA,MAAM,kBAAkB;AACxB,MAAM,yBAAyB;AAE/B,SAAS,YAAY,OAA0B;AAC3C,QAAM,EAAE,cAAc,GAAG,GAAG,eAAe;AAE3C,SACI,sBAAA,cAAA,MAAA,UAAA,0CACKA,6BAAkB,QAAlB,EAA0B,GAAG,YAAY,aAA0B,GACpE,sBAAA;AAAA,IAACA,6BAAkB;AAAA,IAAlB;AAAA,MACI,GAAG;AAAA,MACJ,aAAa,cAAc;AAAA,MAC3B,aAAa,cAAc;AAAA,MAC3B,SAAS;AAAA,IAAA;AAAA,EAAA,CAEjB;AAER;;"}
@@ -1,9 +1,10 @@
1
1
  import { default as React } from 'react';
2
+ import { PieSectorDataItem } from 'recharts/types/polar/Pie';
2
3
  import { useChartOptions } from '../useChartData';
3
4
  export declare function usePieChart<TData extends object>(children: React.ReactNode, options?: useChartOptions): {
4
5
  pieProps: {
5
6
  activeIndex: number | undefined;
6
- activeShape: (props: any) => React.JSX.Element;
7
+ activeShape: (props: PieSectorDataItem) => React.JSX.Element;
7
8
  children: React.JSX.Element[];
8
9
  data: import('../types').ChartChildProps<TData>[];
9
10
  dataKey: string;
@@ -1 +1 @@
1
- {"version":3,"file":"util.js","sources":["../../../../src/charts/components/Pie/util.tsx"],"sourcesContent":["import React from 'react';\nimport * as RechartsPrimitive from 'recharts';\nimport type { PieSectorDataItem } from 'recharts/types/polar/Pie';\n\nimport type { useChartOptions } from '../useChartData';\nimport { useChart } from '../useChartData';\n\nconst PIE_ACTIVE_WIDTH = 10;\nconst PIE_ACTIVE_WIDTH_OFFSET = 2;\n\nexport function usePieChart<TData extends object>(children: React.ReactNode, options?: useChartOptions) {\n const { items, shapes, activeIndex, setActiveIndex, globalFormatter, toggleItem } = useChart<TData>(children, options);\n const [radius, _setRadius] = React.useState<number>(0);\n\n function setRadius(width: number) {\n _setRadius((width - 2 * (PIE_ACTIVE_WIDTH + PIE_ACTIVE_WIDTH_OFFSET)) / 2);\n }\n\n const pieProps = {\n activeIndex,\n activeShape: (props: any) => <ActiveShape {...props} />,\n children: shapes.map(shape => <RechartsPrimitive.Cell key={shape.dataKey} color={shape.color} fill={shape.fill} />),\n // data props\n data: items.filter(item => !item.isHidden),\n dataKey: 'value',\n nameKey: 'label',\n // style props\n isAnimationActive: false,\n startAngle: 90,\n endAngle: -270,\n stroke: '0',\n labelLine: false,\n outerRadius: radius,\n };\n\n return { pieProps, radius, setRadius, items, activeIndex, setActiveIndex, globalFormatter, toggleItem, shapes };\n}\n\nconst PIE_CHART_HOVER = 10;\nconst PIE_CHART_HOVER_OFFSET = 2;\n\ntype ActiveShapeProps = {\n pieColors: Record<string, string>;\n} & PieSectorDataItem;\n\nfunction ActiveShape(props: ActiveShapeProps) {\n const { outerRadius = 0, ...attributes } = props;\n\n return (\n <>\n <RechartsPrimitive.Sector {...attributes} outerRadius={outerRadius} />\n <RechartsPrimitive.Sector\n {...attributes}\n innerRadius={outerRadius + PIE_CHART_HOVER_OFFSET}\n outerRadius={outerRadius + PIE_CHART_HOVER}\n opacity={0.4}\n />\n </>\n );\n}\n"],"names":["React"],"mappings":";;;AAOA,MAAM,mBAAmB;AACzB,MAAM,0BAA0B;AAEzB,SAAS,YAAkC,UAA2B,SAA2B;AACpG,QAAM,EAAE,OAAO,QAAQ,aAAa,gBAAgB,iBAAiB,eAAe,SAAgB,UAAU,OAAO;AACrH,QAAM,CAAC,QAAQ,UAAU,IAAIA,eAAM,SAAiB,CAAC;AAErD,WAAS,UAAU,OAAe;AAC9B,gBAAY,QAAQ,KAAK,mBAAmB,4BAA4B,CAAC;AAAA,EAC7E;AAEA,QAAM,WAAW;AAAA,IACb;AAAA,IACA,aAAa,CAAC,UAAeA,+BAAA,cAAC,aAAA,EAAa,GAAG,OAAO;AAAA,IACrD,UAAU,OAAO,IAAI,CAAA,UAASA,+BAAA,cAAC,kBAAkB,MAAlB,EAAuB,KAAK,MAAM,SAAS,OAAO,MAAM,OAAO,MAAM,MAAM,MAAM,CAAE;AAAA;AAAA,IAElH,MAAM,MAAM,OAAO,CAAA,SAAQ,CAAC,KAAK,QAAQ;AAAA,IACzC,SAAS;AAAA,IACT,SAAS;AAAA;AAAA,IAET,mBAAmB;AAAA,IACnB,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,WAAW;AAAA,IACX,aAAa;AAAA,EAAA;AAGjB,SAAO,EAAE,UAAU,QAAQ,WAAW,OAAO,aAAa,gBAAgB,iBAAiB,YAAY,OAAA;AAC3G;AAEA,MAAM,kBAAkB;AACxB,MAAM,yBAAyB;AAM/B,SAAS,YAAY,OAAyB;AAC1C,QAAM,EAAE,cAAc,GAAG,GAAG,eAAe;AAE3C,SACIA,+BAAA,cAAAA,eAAA,UAAA,mDACK,kBAAkB,QAAlB,EAA0B,GAAG,YAAY,aAA0B,GACpEA,+BAAA;AAAA,IAAC,kBAAkB;AAAA,IAAlB;AAAA,MACI,GAAG;AAAA,MACJ,aAAa,cAAc;AAAA,MAC3B,aAAa,cAAc;AAAA,MAC3B,SAAS;AAAA,IAAA;AAAA,EAAA,CAEjB;AAER;"}
1
+ {"version":3,"file":"util.js","sources":["../../../../src/charts/components/Pie/util.tsx"],"sourcesContent":["import React from 'react';\nimport * as RechartsPrimitive from 'recharts';\nimport type { PieSectorDataItem } from 'recharts/types/polar/Pie';\n\nimport type { useChartOptions } from '../useChartData';\nimport { useChart } from '../useChartData';\n\nconst PIE_ACTIVE_WIDTH = 10;\nconst PIE_ACTIVE_WIDTH_OFFSET = 2;\n\nexport function usePieChart<TData extends object>(children: React.ReactNode, options?: useChartOptions) {\n const { items, shapes, activeIndex, setActiveIndex, globalFormatter, toggleItem } = useChart<TData>(children, options);\n const [radius, _setRadius] = React.useState<number>(0);\n\n function setRadius(width: number) {\n _setRadius((width - 2 * (PIE_ACTIVE_WIDTH + PIE_ACTIVE_WIDTH_OFFSET)) / 2);\n }\n\n const pieProps = {\n activeIndex,\n activeShape: (props: PieSectorDataItem) => <ActiveShape {...props} />,\n children: shapes.map(shape => <RechartsPrimitive.Cell key={shape.dataKey} color={shape.color} fill={shape.fill} />),\n // data props\n data: items.filter(item => !item.isHidden),\n dataKey: 'value',\n nameKey: 'label',\n // style props\n isAnimationActive: false,\n startAngle: 90,\n endAngle: -270,\n stroke: '0',\n labelLine: false,\n outerRadius: radius,\n };\n\n return { pieProps, radius, setRadius, items, activeIndex, setActiveIndex, globalFormatter, toggleItem, shapes };\n}\n\nconst PIE_CHART_HOVER = 10;\nconst PIE_CHART_HOVER_OFFSET = 2;\n\nfunction ActiveShape(props: PieSectorDataItem) {\n const { outerRadius = 0, ...attributes } = props;\n\n return (\n <>\n <RechartsPrimitive.Sector {...attributes} outerRadius={outerRadius} />\n <RechartsPrimitive.Sector\n {...attributes}\n innerRadius={outerRadius + PIE_CHART_HOVER_OFFSET}\n outerRadius={outerRadius + PIE_CHART_HOVER}\n opacity={0.4}\n />\n </>\n );\n}\n"],"names":["React"],"mappings":";;;AAOA,MAAM,mBAAmB;AACzB,MAAM,0BAA0B;AAEzB,SAAS,YAAkC,UAA2B,SAA2B;AACpG,QAAM,EAAE,OAAO,QAAQ,aAAa,gBAAgB,iBAAiB,eAAe,SAAgB,UAAU,OAAO;AACrH,QAAM,CAAC,QAAQ,UAAU,IAAIA,eAAM,SAAiB,CAAC;AAErD,WAAS,UAAU,OAAe;AAC9B,gBAAY,QAAQ,KAAK,mBAAmB,4BAA4B,CAAC;AAAA,EAC7E;AAEA,QAAM,WAAW;AAAA,IACb;AAAA,IACA,aAAa,CAAC,UAA6BA,+BAAA,cAAC,aAAA,EAAa,GAAG,OAAO;AAAA,IACnE,UAAU,OAAO,IAAI,CAAA,UAASA,+BAAA,cAAC,kBAAkB,MAAlB,EAAuB,KAAK,MAAM,SAAS,OAAO,MAAM,OAAO,MAAM,MAAM,MAAM,CAAE;AAAA;AAAA,IAElH,MAAM,MAAM,OAAO,CAAA,SAAQ,CAAC,KAAK,QAAQ;AAAA,IACzC,SAAS;AAAA,IACT,SAAS;AAAA;AAAA,IAET,mBAAmB;AAAA,IACnB,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,WAAW;AAAA,IACX,aAAa;AAAA,EAAA;AAGjB,SAAO,EAAE,UAAU,QAAQ,WAAW,OAAO,aAAa,gBAAgB,iBAAiB,YAAY,OAAA;AAC3G;AAEA,MAAM,kBAAkB;AACxB,MAAM,yBAAyB;AAE/B,SAAS,YAAY,OAA0B;AAC3C,QAAM,EAAE,cAAc,GAAG,GAAG,eAAe;AAE3C,SACIA,+BAAA,cAAAA,eAAA,UAAA,mDACK,kBAAkB,QAAlB,EAA0B,GAAG,YAAY,aAA0B,GACpEA,+BAAA;AAAA,IAAC,kBAAkB;AAAA,IAAlB;AAAA,MACI,GAAG;AAAA,MACJ,aAAa,cAAc;AAAA,MAC3B,aAAa,cAAc;AAAA,MAC3B,SAAS;AAAA,IAAA;AAAA,EAAA,CAEjB;AAER;"}
@@ -1,6 +1,7 @@
1
1
  import { Payload } from 'recharts/types/component/DefaultLegendContent';
2
2
  import { ScaleType } from 'recharts/types/util/types';
3
3
  import { Color } from '../utils/color';
4
+ export type { ChartShape } from './useChartData';
4
5
  export type ActiveChartItems<TType> = Record<keyof TType & string, boolean>;
5
6
  export type PayloadType<TType> = Payload & {
6
7
  dataKey: keyof TType & string;
@@ -11,7 +12,7 @@ export type LegacyChartChildProps = {
11
12
  label: string;
12
13
  };
13
14
  export type ChartValueFormatter = (value: number) => string | React.JSX.Element;
14
- export type TickFormatter = (value: any) => string;
15
+ export type TickFormatter<TValue = any> = (value: TValue) => string;
15
16
  export type CurveType = 'natural' | 'linear' | 'step';
16
17
  export type ChartProps = {
17
18
  /** Show a legend below the chart, hidden by default