@algorithm-shift/design-system 1.2.66 → 1.2.68
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.
- package/dist/index.css +19 -3
- package/dist/index.css.map +1 -1
- package/dist/index.d.mts +5 -3
- package/dist/index.d.ts +5 -3
- package/dist/index.js +100 -53
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +123 -58
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.d.mts
CHANGED
|
@@ -133,6 +133,7 @@ interface PieChartProps extends ElementProps {
|
|
|
133
133
|
showLegends?: boolean;
|
|
134
134
|
labelType?: string;
|
|
135
135
|
canvasMode?: 'desktop' | 'tablet' | 'mobile';
|
|
136
|
+
loading?: boolean;
|
|
136
137
|
}
|
|
137
138
|
|
|
138
139
|
interface BarChartProps extends ElementProps {
|
|
@@ -140,6 +141,7 @@ interface BarChartProps extends ElementProps {
|
|
|
140
141
|
chartType?: string;
|
|
141
142
|
legendsPosition?: string;
|
|
142
143
|
canvasMode?: 'desktop' | 'tablet' | 'mobile';
|
|
144
|
+
loading?: boolean;
|
|
143
145
|
}
|
|
144
146
|
|
|
145
147
|
interface ModalProps extends ElementProps {
|
|
@@ -319,9 +321,9 @@ declare const Spacer: ({ className, style }: ElementProps) => react_jsx_runtime.
|
|
|
319
321
|
|
|
320
322
|
declare function Navbar({ style, badgeType, badgeCount, hideBadgeWhenZero, profileType, showName, imageUrl, altText, canvasMode, list, profileMenu, userName }: NavbarProps): react_jsx_runtime.JSX.Element;
|
|
321
323
|
|
|
322
|
-
declare const
|
|
324
|
+
declare const _default$1: React$1.MemoExoticComponent<({ className, style, loading, ...props }: BarChartProps) => react_jsx_runtime.JSX.Element>;
|
|
323
325
|
|
|
324
|
-
declare const
|
|
326
|
+
declare const _default: React$1.MemoExoticComponent<({ className, style, loading, ...props }: PieChartProps) => react_jsx_runtime.JSX.Element>;
|
|
325
327
|
|
|
326
328
|
declare function EmailComposer({ className, style, to, setTo, showCc, setShowCc, showBcc, setShowBcc, cc, setCc, bcc, setBcc, subject, setSubject, body, setBody }: EmailComposerProps): react_jsx_runtime.JSX.Element;
|
|
327
329
|
|
|
@@ -341,4 +343,4 @@ declare const Toaster: ({ ...props }: ToasterProps) => react_jsx_runtime.JSX.Ele
|
|
|
341
343
|
declare function cn(...inputs: ClassValue[]): string;
|
|
342
344
|
declare function getInitials(name: string): string;
|
|
343
345
|
|
|
344
|
-
export { Accordion, AccordionGroup,
|
|
346
|
+
export { Accordion, AccordionGroup, _default$1 as BarChart, Breadcrumb, ButtonWrapper as Button, SplitButton as ButtonGroup, CheckboxInput as Checkbox, Container, DatePicker, DateRange, Dropdown, EmailInput as Email, EmailComposer, FileInput, Flex as FlexLayout, Grid as GridLayout, Icon, ImageControl as Image, Modal, MultiCheckbox, Navbar, NumberInput, CustomPagination as Pagination, PasswordInput as Password, PhoneInput as Phone, _default as PieChart, RadioInput as RadioGroup, RichText, SearchInput as Search, Shape, Slot, Spacer, StagesComponent as Stages, SwitchToggle, TabGroupComponent as TabGroup, TabList, Table, Tabs, TextInput as Text, TextInputGroup, Textarea, Toaster, Typography, UrlInput as URL, cn, getInitials, showSonnerToast };
|
package/dist/index.d.ts
CHANGED
|
@@ -133,6 +133,7 @@ interface PieChartProps extends ElementProps {
|
|
|
133
133
|
showLegends?: boolean;
|
|
134
134
|
labelType?: string;
|
|
135
135
|
canvasMode?: 'desktop' | 'tablet' | 'mobile';
|
|
136
|
+
loading?: boolean;
|
|
136
137
|
}
|
|
137
138
|
|
|
138
139
|
interface BarChartProps extends ElementProps {
|
|
@@ -140,6 +141,7 @@ interface BarChartProps extends ElementProps {
|
|
|
140
141
|
chartType?: string;
|
|
141
142
|
legendsPosition?: string;
|
|
142
143
|
canvasMode?: 'desktop' | 'tablet' | 'mobile';
|
|
144
|
+
loading?: boolean;
|
|
143
145
|
}
|
|
144
146
|
|
|
145
147
|
interface ModalProps extends ElementProps {
|
|
@@ -319,9 +321,9 @@ declare const Spacer: ({ className, style }: ElementProps) => react_jsx_runtime.
|
|
|
319
321
|
|
|
320
322
|
declare function Navbar({ style, badgeType, badgeCount, hideBadgeWhenZero, profileType, showName, imageUrl, altText, canvasMode, list, profileMenu, userName }: NavbarProps): react_jsx_runtime.JSX.Element;
|
|
321
323
|
|
|
322
|
-
declare const
|
|
324
|
+
declare const _default$1: React$1.MemoExoticComponent<({ className, style, loading, ...props }: BarChartProps) => react_jsx_runtime.JSX.Element>;
|
|
323
325
|
|
|
324
|
-
declare const
|
|
326
|
+
declare const _default: React$1.MemoExoticComponent<({ className, style, loading, ...props }: PieChartProps) => react_jsx_runtime.JSX.Element>;
|
|
325
327
|
|
|
326
328
|
declare function EmailComposer({ className, style, to, setTo, showCc, setShowCc, showBcc, setShowBcc, cc, setCc, bcc, setBcc, subject, setSubject, body, setBody }: EmailComposerProps): react_jsx_runtime.JSX.Element;
|
|
327
329
|
|
|
@@ -341,4 +343,4 @@ declare const Toaster: ({ ...props }: ToasterProps) => react_jsx_runtime.JSX.Ele
|
|
|
341
343
|
declare function cn(...inputs: ClassValue[]): string;
|
|
342
344
|
declare function getInitials(name: string): string;
|
|
343
345
|
|
|
344
|
-
export { Accordion, AccordionGroup,
|
|
346
|
+
export { Accordion, AccordionGroup, _default$1 as BarChart, Breadcrumb, ButtonWrapper as Button, SplitButton as ButtonGroup, CheckboxInput as Checkbox, Container, DatePicker, DateRange, Dropdown, EmailInput as Email, EmailComposer, FileInput, Flex as FlexLayout, Grid as GridLayout, Icon, ImageControl as Image, Modal, MultiCheckbox, Navbar, NumberInput, CustomPagination as Pagination, PasswordInput as Password, PhoneInput as Phone, _default as PieChart, RadioInput as RadioGroup, RichText, SearchInput as Search, Shape, Slot, Spacer, StagesComponent as Stages, SwitchToggle, TabGroupComponent as TabGroup, TabList, Table, Tabs, TextInput as Text, TextInputGroup, Textarea, Toaster, Typography, UrlInput as URL, cn, getInitials, showSonnerToast };
|
package/dist/index.js
CHANGED
|
@@ -243,11 +243,13 @@ function TabGroupComponent({
|
|
|
243
243
|
activeTab,
|
|
244
244
|
onTabChange
|
|
245
245
|
}) {
|
|
246
|
+
const [mounted, setMounted] = (0, import_react3.useState)(false);
|
|
246
247
|
(0, import_react3.useEffect)(() => {
|
|
247
|
-
if (list && list.length > 0 && !activeTab && onTabChange) {
|
|
248
|
+
if (list && list.length > 0 && !activeTab && onTabChange && !mounted) {
|
|
248
249
|
onTabChange(list[0]?.tabId);
|
|
250
|
+
setMounted(true);
|
|
249
251
|
}
|
|
250
|
-
}, [list, activeTab, onTabChange]);
|
|
252
|
+
}, [list, activeTab, onTabChange, mounted]);
|
|
251
253
|
const formatedList = (0, import_react3.useMemo)(
|
|
252
254
|
() => Array.isArray(list) ? [...list].sort((a, b) => (a.orderNumber ?? 0) - (b.orderNumber ?? 0)) : [],
|
|
253
255
|
[list]
|
|
@@ -28493,7 +28495,7 @@ function DataTable({
|
|
|
28493
28495
|
return [];
|
|
28494
28496
|
};
|
|
28495
28497
|
return /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)("div", { className: "overflow-hidden rounded-md w-full", children: [
|
|
28496
|
-
/* @__PURE__ */ (0, import_jsx_runtime47.jsxs)("div", { className: `flex ${globalSearch ? "justify-between" : "justify-end"} p-2
|
|
28498
|
+
/* @__PURE__ */ (0, import_jsx_runtime47.jsxs)("div", { className: `flex ${globalSearch ? "justify-between" : "justify-end"} p-2 bg-gray-50`, children: [
|
|
28497
28499
|
globalSearch && /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)("div", { className: "flex items-center gap-2 w-full max-w-sm", children: [
|
|
28498
28500
|
/* @__PURE__ */ (0, import_jsx_runtime47.jsxs)("div", { className: "relative w-full", children: [
|
|
28499
28501
|
/* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
|
|
@@ -28529,7 +28531,7 @@ function DataTable({
|
|
|
28529
28531
|
{
|
|
28530
28532
|
variant: "outline",
|
|
28531
28533
|
size: "sm",
|
|
28532
|
-
className: "px-3 py-1 text-xs cursor-pointer",
|
|
28534
|
+
className: "px-3 py-1 text-xs cursor-pointer border-gray-300",
|
|
28533
28535
|
children: "Manage Columns"
|
|
28534
28536
|
}
|
|
28535
28537
|
) }),
|
|
@@ -29210,19 +29212,45 @@ function Navbar({
|
|
|
29210
29212
|
}
|
|
29211
29213
|
|
|
29212
29214
|
// src/components/Chart/BarChart.tsx
|
|
29215
|
+
var import_react27 = __toESM(require("react"));
|
|
29213
29216
|
var import_recharts = require("recharts");
|
|
29214
29217
|
var import_jsx_runtime59 = require("react/jsx-runtime");
|
|
29215
|
-
var ChartComponent = ({ className, style, ...props }) => {
|
|
29216
|
-
const data = Array.isArray(props
|
|
29218
|
+
var ChartComponent = ({ className, style, loading, ...props }) => {
|
|
29219
|
+
const data = Array.isArray(props.data) ? props.data : [];
|
|
29217
29220
|
const chartType = props.chartType || "bar";
|
|
29218
29221
|
const legendsPosition = props.legendsPosition === "middle" || props.legendsPosition === "bottom" ? props.legendsPosition : "top";
|
|
29219
|
-
|
|
29222
|
+
if (loading || data.length === 0) {
|
|
29223
|
+
return /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
|
|
29224
|
+
"div",
|
|
29225
|
+
{
|
|
29226
|
+
className: `flex items-center justify-center w-full h-[300px] md:h-[400px] bg-gray-50 animate-pulse rounded-lg ${className}`,
|
|
29227
|
+
style,
|
|
29228
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)("div", { className: "text-gray-400 text-sm md:text-base", children: loading ? "Loading chart report..." : "No data available to display the chart." })
|
|
29229
|
+
}
|
|
29230
|
+
);
|
|
29231
|
+
}
|
|
29232
|
+
return /* @__PURE__ */ (0, import_jsx_runtime59.jsx)("div", { className: `${className} h-[400px]`, style, children: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_recharts.ResponsiveContainer, { width: "100%", height: "100%", children: chartType === "bar" ? /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)(import_recharts.BarChart, { data, title: "Leads", desc: "content", children: [
|
|
29220
29233
|
/* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_recharts.CartesianGrid, { strokeDasharray: "3 3" }),
|
|
29221
29234
|
/* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_recharts.XAxis, { dataKey: "name" }),
|
|
29222
29235
|
/* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_recharts.YAxis, {}),
|
|
29223
|
-
/* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_recharts.Tooltip, {}),
|
|
29236
|
+
/* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_recharts.Tooltip, { formatter: (value) => `${value}k` }),
|
|
29224
29237
|
/* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_recharts.Legend, { verticalAlign: legendsPosition, align: "center" }),
|
|
29225
|
-
/* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
|
|
29238
|
+
/* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
|
|
29239
|
+
import_recharts.Bar,
|
|
29240
|
+
{
|
|
29241
|
+
dataKey: "value",
|
|
29242
|
+
fill: "#00695C",
|
|
29243
|
+
radius: [6, 6, 0, 0],
|
|
29244
|
+
isAnimationActive: false,
|
|
29245
|
+
children: data.map((entry, index) => /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
|
|
29246
|
+
"rect",
|
|
29247
|
+
{
|
|
29248
|
+
fill: entry.color || "#00695C"
|
|
29249
|
+
},
|
|
29250
|
+
`bar-${index}`
|
|
29251
|
+
))
|
|
29252
|
+
}
|
|
29253
|
+
)
|
|
29226
29254
|
] }) : /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)(import_recharts.AreaChart, { data, children: [
|
|
29227
29255
|
/* @__PURE__ */ (0, import_jsx_runtime59.jsx)("defs", { children: /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)("linearGradient", { id: "colorCount", x1: "0", y1: "0", x2: "0", y2: "1", children: [
|
|
29228
29256
|
/* @__PURE__ */ (0, import_jsx_runtime59.jsx)("stop", { offset: "5%", stopColor: "#00695C", stopOpacity: 0.8 }),
|
|
@@ -29231,7 +29259,7 @@ var ChartComponent = ({ className, style, ...props }) => {
|
|
|
29231
29259
|
/* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_recharts.CartesianGrid, { strokeDasharray: "3 3" }),
|
|
29232
29260
|
/* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_recharts.XAxis, { dataKey: "name" }),
|
|
29233
29261
|
/* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_recharts.YAxis, {}),
|
|
29234
|
-
/* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_recharts.Tooltip, {}),
|
|
29262
|
+
/* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_recharts.Tooltip, { formatter: (value) => `${value}k` }),
|
|
29235
29263
|
/* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
|
|
29236
29264
|
import_recharts.Area,
|
|
29237
29265
|
{
|
|
@@ -29239,47 +29267,44 @@ var ChartComponent = ({ className, style, ...props }) => {
|
|
|
29239
29267
|
dataKey: "value",
|
|
29240
29268
|
stroke: "#00695C",
|
|
29241
29269
|
fillOpacity: 1,
|
|
29242
|
-
fill: "url(#colorCount)"
|
|
29270
|
+
fill: "url(#colorCount)",
|
|
29271
|
+
isAnimationActive: false
|
|
29243
29272
|
}
|
|
29244
29273
|
)
|
|
29245
29274
|
] }) }) });
|
|
29246
29275
|
};
|
|
29247
|
-
var BarChart_default = ChartComponent;
|
|
29276
|
+
var BarChart_default = import_react27.default.memo(ChartComponent);
|
|
29248
29277
|
|
|
29249
29278
|
// src/components/Chart/PieChart.tsx
|
|
29279
|
+
var import_react28 = __toESM(require("react"));
|
|
29250
29280
|
var import_recharts2 = require("recharts");
|
|
29251
29281
|
var import_jsx_runtime60 = require("react/jsx-runtime");
|
|
29252
|
-
var
|
|
29253
|
-
const
|
|
29254
|
-
|
|
29255
|
-
|
|
29282
|
+
var getRandomColor = () => {
|
|
29283
|
+
const palette = [
|
|
29284
|
+
"#2563eb",
|
|
29285
|
+
"#10b981",
|
|
29286
|
+
"#f59e0b",
|
|
29287
|
+
"#ef4444",
|
|
29288
|
+
"#8b5cf6",
|
|
29289
|
+
"#14b8a6",
|
|
29290
|
+
"#ec4899",
|
|
29291
|
+
"#e11d48",
|
|
29292
|
+
"#22c55e",
|
|
29293
|
+
"#3b82f6"
|
|
29294
|
+
];
|
|
29295
|
+
return palette[Math.floor(Math.random() * palette.length)];
|
|
29296
|
+
};
|
|
29297
|
+
var DonutChart = ({ className, style, loading, ...props }) => {
|
|
29256
29298
|
const showLegends = props.showLegends ?? true;
|
|
29257
29299
|
const labelType = props.labelType || "inside";
|
|
29258
29300
|
const canvasMode = props.canvasMode;
|
|
29259
|
-
const
|
|
29260
|
-
if (
|
|
29261
|
-
|
|
29262
|
-
|
|
29263
|
-
|
|
29264
|
-
{
|
|
29265
|
-
x,
|
|
29266
|
-
y,
|
|
29267
|
-
textAnchor: "middle",
|
|
29268
|
-
dominantBaseline: "central",
|
|
29269
|
-
className: "text-[10px] font-semibold",
|
|
29270
|
-
fill: labelType === "inside" ? "#fff" : "#000",
|
|
29271
|
-
children: [
|
|
29272
|
-
value,
|
|
29273
|
-
"k ",
|
|
29274
|
-
showPercentage ? `(${percentage}%)` : ""
|
|
29275
|
-
]
|
|
29276
|
-
}
|
|
29277
|
-
);
|
|
29278
|
-
};
|
|
29301
|
+
const data = (0, import_react28.useMemo)(() => {
|
|
29302
|
+
if (!Array.isArray(props.data)) return [];
|
|
29303
|
+
return props.data.map((item) => ({ ...item, color: getRandomColor() }));
|
|
29304
|
+
}, [props.data]);
|
|
29305
|
+
const total = (0, import_react28.useMemo)(() => data.reduce((sum, d) => sum + d.value, 0), [data]);
|
|
29279
29306
|
const forceMobile = canvasMode === "mobile" || canvasMode === "tablet";
|
|
29280
|
-
const
|
|
29281
|
-
const wrapperClass = canvasMode ? forceDesktop ? "flex-row" : "flex-col" : "flex-col md:flex-row";
|
|
29282
|
-
const renderLegends = () => {
|
|
29307
|
+
const renderLegends = (0, import_react28.useMemo)(() => {
|
|
29283
29308
|
if (!showLegends) return null;
|
|
29284
29309
|
return /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(import_jsx_runtime60.Fragment, { children: data.map((d) => /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)(
|
|
29285
29310
|
"div",
|
|
@@ -29298,23 +29323,33 @@ var DonutChart = ({ className, style, ...props }) => {
|
|
|
29298
29323
|
},
|
|
29299
29324
|
d.name
|
|
29300
29325
|
)) });
|
|
29301
|
-
};
|
|
29326
|
+
}, [data, showLegends]);
|
|
29327
|
+
if (loading || data.length === 0) {
|
|
29328
|
+
return /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
|
|
29329
|
+
"div",
|
|
29330
|
+
{
|
|
29331
|
+
className: `flex items-center justify-center w-full h-[300px] md:h-[400px] bg-gray-50 animate-pulse rounded-lg ${className}`,
|
|
29332
|
+
style,
|
|
29333
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("div", { className: "text-gray-400 text-sm md:text-base", children: loading ? "Loading chart report..." : "No data available to display the chart." })
|
|
29334
|
+
}
|
|
29335
|
+
);
|
|
29336
|
+
}
|
|
29302
29337
|
return /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)(
|
|
29303
29338
|
"div",
|
|
29304
29339
|
{
|
|
29305
|
-
className: `relative flex items-center ${
|
|
29340
|
+
className: `relative flex flex-col items-center ${className}`,
|
|
29306
29341
|
style,
|
|
29307
29342
|
children: [
|
|
29308
29343
|
/* @__PURE__ */ (0, import_jsx_runtime60.jsxs)("div", { className: "relative w-full md:w-[70%] h-[300px] md:h-[400px] flex items-center justify-center", children: [
|
|
29309
|
-
|
|
29344
|
+
/* @__PURE__ */ (0, import_jsx_runtime60.jsx)(import_recharts2.ResponsiveContainer, { width: "100%", height: "100%", children: /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)(import_recharts2.PieChart, { children: [
|
|
29310
29345
|
/* @__PURE__ */ (0, import_jsx_runtime60.jsxs)(
|
|
29311
29346
|
import_recharts2.Pie,
|
|
29312
29347
|
{
|
|
29313
29348
|
data,
|
|
29314
29349
|
cx: "50%",
|
|
29315
29350
|
cy: "50%",
|
|
29316
|
-
innerRadius:
|
|
29317
|
-
outerRadius:
|
|
29351
|
+
innerRadius: forceMobile ? 60 : 80,
|
|
29352
|
+
outerRadius: forceMobile ? 100 : 140,
|
|
29318
29353
|
dataKey: "value",
|
|
29319
29354
|
labelLine: false,
|
|
29320
29355
|
isAnimationActive: false,
|
|
@@ -29325,26 +29360,38 @@ var DonutChart = ({ className, style, ...props }) => {
|
|
|
29325
29360
|
{
|
|
29326
29361
|
dataKey: "value",
|
|
29327
29362
|
position: labelType === "inside" ? "inside" : "outside",
|
|
29328
|
-
|
|
29363
|
+
fill: labelType === "inside" ? "#fff" : "#000",
|
|
29364
|
+
fontSize: forceMobile ? 10 : 13,
|
|
29365
|
+
fontWeight: 600
|
|
29329
29366
|
}
|
|
29330
29367
|
)
|
|
29331
29368
|
]
|
|
29332
29369
|
}
|
|
29333
29370
|
),
|
|
29334
|
-
/* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
|
|
29371
|
+
/* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
|
|
29372
|
+
import_recharts2.Tooltip,
|
|
29373
|
+
{
|
|
29374
|
+
formatter: (value, name) => [`${value}k`, name]
|
|
29375
|
+
}
|
|
29376
|
+
)
|
|
29335
29377
|
] }) }),
|
|
29336
|
-
/* @__PURE__ */ (0, import_jsx_runtime60.jsxs)(
|
|
29337
|
-
|
|
29338
|
-
|
|
29339
|
-
|
|
29378
|
+
/* @__PURE__ */ (0, import_jsx_runtime60.jsxs)(
|
|
29379
|
+
"div",
|
|
29380
|
+
{
|
|
29381
|
+
className: `absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 ${forceMobile ? "text-2xl" : "text-4xl"} font-bold text-[#000]`,
|
|
29382
|
+
children: [
|
|
29383
|
+
total,
|
|
29384
|
+
"k"
|
|
29385
|
+
]
|
|
29386
|
+
}
|
|
29387
|
+
)
|
|
29340
29388
|
] }),
|
|
29341
|
-
/* @__PURE__ */ (0, import_jsx_runtime60.jsx)("div", { className:
|
|
29342
|
-
w-full md:w-auto`, children: renderLegends() })
|
|
29389
|
+
/* @__PURE__ */ (0, import_jsx_runtime60.jsx)("div", { className: "flex flex-wrap justify-center gap-2 mt-6 w-full md:w-auto", children: renderLegends })
|
|
29343
29390
|
]
|
|
29344
29391
|
}
|
|
29345
29392
|
);
|
|
29346
29393
|
};
|
|
29347
|
-
var PieChart_default = DonutChart;
|
|
29394
|
+
var PieChart_default = import_react28.default.memo(DonutChart);
|
|
29348
29395
|
|
|
29349
29396
|
// src/components/Blocks/EmailComposer.tsx
|
|
29350
29397
|
var import_jsx_runtime61 = require("react/jsx-runtime");
|