@algorithm-shift/design-system 1.2.978 → 1.2.980
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.d.mts +15 -1
- package/dist/index.d.ts +15 -1
- package/dist/index.js +499 -243
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +474 -219
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -1690,7 +1690,7 @@ __export(lucide_react_exports, {
|
|
|
1690
1690
|
FerrisWheelIcon: () => FerrisWheel,
|
|
1691
1691
|
Figma: () => Figma,
|
|
1692
1692
|
FigmaIcon: () => Figma,
|
|
1693
|
-
File: () =>
|
|
1693
|
+
File: () => File2,
|
|
1694
1694
|
FileArchive: () => FileArchive,
|
|
1695
1695
|
FileArchiveIcon: () => FileArchive,
|
|
1696
1696
|
FileAudio: () => FileAudio,
|
|
@@ -1743,7 +1743,7 @@ __export(lucide_react_exports, {
|
|
|
1743
1743
|
FileEditIcon: () => FilePen,
|
|
1744
1744
|
FileHeart: () => FileHeart,
|
|
1745
1745
|
FileHeartIcon: () => FileHeart,
|
|
1746
|
-
FileIcon: () =>
|
|
1746
|
+
FileIcon: () => File2,
|
|
1747
1747
|
FileImage: () => FileImage,
|
|
1748
1748
|
FileImageIcon: () => FileImage,
|
|
1749
1749
|
FileInput: () => FileInput,
|
|
@@ -3100,7 +3100,7 @@ __export(lucide_react_exports, {
|
|
|
3100
3100
|
LucideFence: () => Fence,
|
|
3101
3101
|
LucideFerrisWheel: () => FerrisWheel,
|
|
3102
3102
|
LucideFigma: () => Figma,
|
|
3103
|
-
LucideFile: () =>
|
|
3103
|
+
LucideFile: () => File2,
|
|
3104
3104
|
LucideFileArchive: () => FileArchive,
|
|
3105
3105
|
LucideFileAudio: () => FileAudio,
|
|
3106
3106
|
LucideFileAudio2: () => FileAudio2,
|
|
@@ -6521,7 +6521,7 @@ __export(icons_exports, {
|
|
|
6521
6521
|
Fence: () => Fence,
|
|
6522
6522
|
FerrisWheel: () => FerrisWheel,
|
|
6523
6523
|
Figma: () => Figma,
|
|
6524
|
-
File: () =>
|
|
6524
|
+
File: () => File2,
|
|
6525
6525
|
FileArchive: () => FileArchive,
|
|
6526
6526
|
FileAudio: () => FileAudio,
|
|
6527
6527
|
FileAudio2: () => FileAudio2,
|
|
@@ -14671,7 +14671,7 @@ var __iconNode630 = [
|
|
|
14671
14671
|
["path", { d: "M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z", key: "1rqfz7" }],
|
|
14672
14672
|
["path", { d: "M14 2v4a2 2 0 0 0 2 2h4", key: "tnqrlb" }]
|
|
14673
14673
|
];
|
|
14674
|
-
var
|
|
14674
|
+
var File2 = createLucideIcon("file", __iconNode630);
|
|
14675
14675
|
|
|
14676
14676
|
// node_modules/lucide-react/dist/esm/icons/files.js
|
|
14677
14677
|
var __iconNode631 = [
|
|
@@ -26926,18 +26926,26 @@ var TextInput = ({ className, style, ...props }) => {
|
|
|
26926
26926
|
const handleChange = (e) => {
|
|
26927
26927
|
props.onChange?.(e, props?.name || "");
|
|
26928
26928
|
};
|
|
26929
|
+
const formatValue = (value) => {
|
|
26930
|
+
if (props.inputType === "file") {
|
|
26931
|
+
return value instanceof File || value instanceof FileList ? value : null;
|
|
26932
|
+
}
|
|
26933
|
+
if (value === null || value === void 0) return "";
|
|
26934
|
+
return value;
|
|
26935
|
+
};
|
|
26929
26936
|
return /* @__PURE__ */ jsxs7(Fragment3, { children: [
|
|
26930
26937
|
/* @__PURE__ */ jsx20(
|
|
26931
26938
|
Input,
|
|
26932
26939
|
{
|
|
26933
26940
|
type: props.inputType || "text",
|
|
26934
26941
|
name: props.name,
|
|
26942
|
+
id: props.name || "text-field",
|
|
26935
26943
|
className: cn(className, props.errorMessage ? "border-red-500" : ""),
|
|
26936
26944
|
style: {
|
|
26937
26945
|
...style,
|
|
26938
26946
|
borderColor: props.errorMessage ? "#f87171" : style?.borderColor
|
|
26939
26947
|
},
|
|
26940
|
-
value: props.value
|
|
26948
|
+
value: formatValue(props.value),
|
|
26941
26949
|
autoComplete: isAutocomplete ? "on" : "off",
|
|
26942
26950
|
placeholder,
|
|
26943
26951
|
onChange: handleChange,
|
|
@@ -26968,14 +26976,21 @@ var NumberInput = ({ className, style, ...props }) => {
|
|
|
26968
26976
|
const handleChange = (e) => {
|
|
26969
26977
|
props.onChange?.(e, props.name || "");
|
|
26970
26978
|
};
|
|
26979
|
+
const formatValue = (value) => {
|
|
26980
|
+
if (props.inputType === "file") {
|
|
26981
|
+
return value instanceof File || value instanceof FileList ? value : null;
|
|
26982
|
+
}
|
|
26983
|
+
if (value === null || value === void 0) return 0;
|
|
26984
|
+
return value;
|
|
26985
|
+
};
|
|
26971
26986
|
return /* @__PURE__ */ jsxs8(Fragment4, { children: [
|
|
26972
26987
|
/* @__PURE__ */ jsx21("div", { className: "flex justify-start items-center relative", children: /* @__PURE__ */ jsx21(
|
|
26973
26988
|
Input,
|
|
26974
26989
|
{
|
|
26975
|
-
type: "number",
|
|
26990
|
+
type: props.inputType || "number",
|
|
26976
26991
|
id: props.name || "number-field",
|
|
26977
26992
|
name: props.name,
|
|
26978
|
-
value: props.value
|
|
26993
|
+
value: formatValue(props.value),
|
|
26979
26994
|
className: cn(className, props.errorMessage ? "border-red-500" : ""),
|
|
26980
26995
|
style: {
|
|
26981
26996
|
...style,
|
|
@@ -27011,13 +27026,21 @@ var EmailInput = ({ className, style, ...props }) => {
|
|
|
27011
27026
|
const handleChange = (e) => {
|
|
27012
27027
|
props.onChange?.(e, props?.name || "");
|
|
27013
27028
|
};
|
|
27029
|
+
const formatValue = (value) => {
|
|
27030
|
+
if (props.inputType === "file") {
|
|
27031
|
+
return value instanceof File || value instanceof FileList ? value : null;
|
|
27032
|
+
}
|
|
27033
|
+
if (value === null || value === void 0) return "";
|
|
27034
|
+
return value;
|
|
27035
|
+
};
|
|
27014
27036
|
return /* @__PURE__ */ jsxs9(Fragment5, { children: [
|
|
27015
27037
|
/* @__PURE__ */ jsx22("div", { className: "flex justify-start items-center relative", children: /* @__PURE__ */ jsx22(
|
|
27016
27038
|
Input,
|
|
27017
27039
|
{
|
|
27018
|
-
type: "email",
|
|
27040
|
+
type: props.inputType || "email",
|
|
27019
27041
|
name: props.name,
|
|
27020
|
-
|
|
27042
|
+
id: props.name || "email-field",
|
|
27043
|
+
value: formatValue(props.value),
|
|
27021
27044
|
className: cn(className, props.errorMessage ? "border-red-500" : ""),
|
|
27022
27045
|
style: {
|
|
27023
27046
|
...style,
|
|
@@ -27053,14 +27076,21 @@ var PasswordInput = ({ className, style, ...props }) => {
|
|
|
27053
27076
|
const handleChange = (e) => {
|
|
27054
27077
|
props.onChange?.(e, props?.name || "");
|
|
27055
27078
|
};
|
|
27079
|
+
const formatValue = (value) => {
|
|
27080
|
+
if (props.inputType === "file") {
|
|
27081
|
+
return value instanceof File || value instanceof FileList ? value : null;
|
|
27082
|
+
}
|
|
27083
|
+
if (value === null || value === void 0) return "";
|
|
27084
|
+
return value;
|
|
27085
|
+
};
|
|
27056
27086
|
return /* @__PURE__ */ jsxs10(Fragment6, { children: [
|
|
27057
27087
|
/* @__PURE__ */ jsx23("div", { className: "flex justify-start items-center relative", children: /* @__PURE__ */ jsx23(
|
|
27058
27088
|
Input,
|
|
27059
27089
|
{
|
|
27060
|
-
type: "password",
|
|
27090
|
+
type: props.inputType || "password",
|
|
27061
27091
|
id: props.name || "password-field",
|
|
27062
27092
|
name: props.name,
|
|
27063
|
-
value: props.value
|
|
27093
|
+
value: formatValue(props.value),
|
|
27064
27094
|
className: cn(className, props.errorMessage ? "border-red-500" : ""),
|
|
27065
27095
|
style: {
|
|
27066
27096
|
...style,
|
|
@@ -27156,16 +27186,23 @@ var UrlInput = ({ className, style, ...props }) => {
|
|
|
27156
27186
|
const handleChange = (e) => {
|
|
27157
27187
|
props.onChange?.(e, props?.name || "");
|
|
27158
27188
|
};
|
|
27189
|
+
const formatValue = (value) => {
|
|
27190
|
+
if (props.inputType === "file") {
|
|
27191
|
+
return value instanceof File || value instanceof FileList ? value : null;
|
|
27192
|
+
}
|
|
27193
|
+
if (value === null || value === void 0) return "";
|
|
27194
|
+
return value;
|
|
27195
|
+
};
|
|
27159
27196
|
return /* @__PURE__ */ jsxs12(Fragment8, { children: [
|
|
27160
27197
|
/* @__PURE__ */ jsxs12("div", { className: "flex justify-start items-center relative", children: [
|
|
27161
27198
|
/* @__PURE__ */ jsx26("div", { className: "bg-[#E9E9E9] absolute px-10 text-center top-1/2 h-full justify-center items-center flex w-10 -translate-y-1/2 text-[#383838] font-[500] text-[12px]", children: "https://" }),
|
|
27162
27199
|
/* @__PURE__ */ jsx26(
|
|
27163
27200
|
Input,
|
|
27164
27201
|
{
|
|
27165
|
-
id: "url-field",
|
|
27166
|
-
type: "url",
|
|
27202
|
+
id: props.name || "url-field",
|
|
27203
|
+
type: props.inputType || "url",
|
|
27167
27204
|
name: props.name,
|
|
27168
|
-
value: props.value
|
|
27205
|
+
value: formatValue(props.value),
|
|
27169
27206
|
className: cn(className, props.errorMessage ? "border-red-500" : ""),
|
|
27170
27207
|
style: {
|
|
27171
27208
|
...style,
|
|
@@ -28400,14 +28437,21 @@ var SearchInput = ({ className, style, ...props }) => {
|
|
|
28400
28437
|
const handleChange = (e) => {
|
|
28401
28438
|
props.onChange?.(e, props?.name || "");
|
|
28402
28439
|
};
|
|
28440
|
+
const formatValue = (value) => {
|
|
28441
|
+
if (props.inputType === "file") {
|
|
28442
|
+
return value instanceof File || value instanceof FileList ? value : null;
|
|
28443
|
+
}
|
|
28444
|
+
if (value === null || value === void 0) return "";
|
|
28445
|
+
return value;
|
|
28446
|
+
};
|
|
28403
28447
|
return /* @__PURE__ */ jsxs22(Fragment15, { children: [
|
|
28404
28448
|
/* @__PURE__ */ jsx41("div", { className: "flex justify-start items-center relative", children: /* @__PURE__ */ jsx41(
|
|
28405
28449
|
Input,
|
|
28406
28450
|
{
|
|
28407
|
-
type: "
|
|
28451
|
+
type: props.inputType || "search",
|
|
28408
28452
|
id: props.name || "text-field",
|
|
28409
28453
|
name: props.name,
|
|
28410
|
-
value: props.value
|
|
28454
|
+
value: formatValue(props.value),
|
|
28411
28455
|
className: cn(className, props.errorMessage ? "border-red-500" : ""),
|
|
28412
28456
|
style: {
|
|
28413
28457
|
...style,
|
|
@@ -28439,14 +28483,21 @@ var FileInput2 = ({ className, style, ...props }) => {
|
|
|
28439
28483
|
const handleChange = (e) => {
|
|
28440
28484
|
props.onChange?.(e, props?.name || "");
|
|
28441
28485
|
};
|
|
28486
|
+
const formatValue = (value) => {
|
|
28487
|
+
if (props.inputType === "file") {
|
|
28488
|
+
return value instanceof File || value instanceof FileList ? value : null;
|
|
28489
|
+
}
|
|
28490
|
+
if (value === null || value === void 0) return "";
|
|
28491
|
+
return value;
|
|
28492
|
+
};
|
|
28442
28493
|
return /* @__PURE__ */ jsxs23("div", { className: "d-flex items-center relative align-middle", children: [
|
|
28443
28494
|
/* @__PURE__ */ jsx42(
|
|
28444
28495
|
Input,
|
|
28445
28496
|
{
|
|
28446
|
-
type: "file",
|
|
28447
|
-
id: "file",
|
|
28497
|
+
type: props.inputType || "file",
|
|
28498
|
+
id: props.name || "file-field",
|
|
28448
28499
|
name: props.name,
|
|
28449
|
-
value: props.value
|
|
28500
|
+
value: formatValue(props.value),
|
|
28450
28501
|
className: cn(className, props.errorMessage ? "border-red-500" : ""),
|
|
28451
28502
|
style: {
|
|
28452
28503
|
...style,
|
|
@@ -30425,29 +30476,230 @@ var CustomPagination = ({
|
|
|
30425
30476
|
};
|
|
30426
30477
|
var Pagination_default = CustomPagination;
|
|
30427
30478
|
|
|
30479
|
+
// src/components/DataDisplay/HistoryTimeline/HistoryTimeline.tsx
|
|
30480
|
+
import { useMemo as useMemo7 } from "react";
|
|
30481
|
+
|
|
30482
|
+
// src/components/ui/accordion.tsx
|
|
30483
|
+
import * as AccordionPrimitive from "@radix-ui/react-accordion";
|
|
30484
|
+
import { jsx as jsx55, jsxs as jsxs32 } from "react/jsx-runtime";
|
|
30485
|
+
function Accordion2({
|
|
30486
|
+
...props
|
|
30487
|
+
}) {
|
|
30488
|
+
return /* @__PURE__ */ jsx55(AccordionPrimitive.Root, { "data-slot": "accordion", ...props });
|
|
30489
|
+
}
|
|
30490
|
+
function AccordionItem({
|
|
30491
|
+
className,
|
|
30492
|
+
...props
|
|
30493
|
+
}) {
|
|
30494
|
+
return /* @__PURE__ */ jsx55(
|
|
30495
|
+
AccordionPrimitive.Item,
|
|
30496
|
+
{
|
|
30497
|
+
"data-slot": "accordion-item",
|
|
30498
|
+
className: cn("border-b last:border-b-0", className),
|
|
30499
|
+
...props
|
|
30500
|
+
}
|
|
30501
|
+
);
|
|
30502
|
+
}
|
|
30503
|
+
function AccordionTrigger({
|
|
30504
|
+
className,
|
|
30505
|
+
children,
|
|
30506
|
+
...props
|
|
30507
|
+
}) {
|
|
30508
|
+
return /* @__PURE__ */ jsx55(AccordionPrimitive.Header, { className: "flex", children: /* @__PURE__ */ jsxs32(
|
|
30509
|
+
AccordionPrimitive.Trigger,
|
|
30510
|
+
{
|
|
30511
|
+
"data-slot": "accordion-trigger",
|
|
30512
|
+
className: cn(
|
|
30513
|
+
"focus-visible:border-ring focus-visible:ring-ring/50 flex flex-1 items-start justify-between gap-4 rounded-md py-4 text-left text-sm font-medium transition-all outline-none hover:underline focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 [&[data-state=open]>svg]:rotate-180",
|
|
30514
|
+
className
|
|
30515
|
+
),
|
|
30516
|
+
...props,
|
|
30517
|
+
children: [
|
|
30518
|
+
children,
|
|
30519
|
+
/* @__PURE__ */ jsx55(ChevronDown, { className: "text-muted-foreground pointer-events-none size-4 shrink-0 translate-y-0.5 transition-transform duration-200" })
|
|
30520
|
+
]
|
|
30521
|
+
}
|
|
30522
|
+
) });
|
|
30523
|
+
}
|
|
30524
|
+
function AccordionContent({
|
|
30525
|
+
className,
|
|
30526
|
+
children,
|
|
30527
|
+
...props
|
|
30528
|
+
}) {
|
|
30529
|
+
return /* @__PURE__ */ jsx55(
|
|
30530
|
+
AccordionPrimitive.Content,
|
|
30531
|
+
{
|
|
30532
|
+
"data-slot": "accordion-content",
|
|
30533
|
+
className: "data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down overflow-hidden text-sm",
|
|
30534
|
+
...props,
|
|
30535
|
+
children: /* @__PURE__ */ jsx55("div", { className: cn("pt-0 pb-4", className), children })
|
|
30536
|
+
}
|
|
30537
|
+
);
|
|
30538
|
+
}
|
|
30539
|
+
|
|
30540
|
+
// src/components/ui/card.tsx
|
|
30541
|
+
import { jsx as jsx56 } from "react/jsx-runtime";
|
|
30542
|
+
function Card({ className, ...props }) {
|
|
30543
|
+
return /* @__PURE__ */ jsx56(
|
|
30544
|
+
"div",
|
|
30545
|
+
{
|
|
30546
|
+
"data-slot": "card",
|
|
30547
|
+
className: cn(
|
|
30548
|
+
"bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm",
|
|
30549
|
+
className
|
|
30550
|
+
),
|
|
30551
|
+
...props
|
|
30552
|
+
}
|
|
30553
|
+
);
|
|
30554
|
+
}
|
|
30555
|
+
function CardHeader({ className, ...props }) {
|
|
30556
|
+
return /* @__PURE__ */ jsx56(
|
|
30557
|
+
"div",
|
|
30558
|
+
{
|
|
30559
|
+
"data-slot": "card-header",
|
|
30560
|
+
className: cn(
|
|
30561
|
+
"@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-1.5 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6",
|
|
30562
|
+
className
|
|
30563
|
+
),
|
|
30564
|
+
...props
|
|
30565
|
+
}
|
|
30566
|
+
);
|
|
30567
|
+
}
|
|
30568
|
+
function CardTitle({ className, ...props }) {
|
|
30569
|
+
return /* @__PURE__ */ jsx56(
|
|
30570
|
+
"div",
|
|
30571
|
+
{
|
|
30572
|
+
"data-slot": "card-title",
|
|
30573
|
+
className: cn("leading-none font-semibold", className),
|
|
30574
|
+
...props
|
|
30575
|
+
}
|
|
30576
|
+
);
|
|
30577
|
+
}
|
|
30578
|
+
function CardContent({ className, ...props }) {
|
|
30579
|
+
return /* @__PURE__ */ jsx56(
|
|
30580
|
+
"div",
|
|
30581
|
+
{
|
|
30582
|
+
"data-slot": "card-content",
|
|
30583
|
+
className: cn("px-6", className),
|
|
30584
|
+
...props
|
|
30585
|
+
}
|
|
30586
|
+
);
|
|
30587
|
+
}
|
|
30588
|
+
|
|
30589
|
+
// src/components/DataDisplay/HistoryTimeline/HistoryTimeline.tsx
|
|
30590
|
+
import { jsx as jsx57, jsxs as jsxs33 } from "react/jsx-runtime";
|
|
30591
|
+
function getValue(item, key) {
|
|
30592
|
+
if (!key) return void 0;
|
|
30593
|
+
return item[key];
|
|
30594
|
+
}
|
|
30595
|
+
var HistoryTimeline = ({
|
|
30596
|
+
title = "Timeline",
|
|
30597
|
+
className,
|
|
30598
|
+
loading = false,
|
|
30599
|
+
titleKey,
|
|
30600
|
+
descriptionKey,
|
|
30601
|
+
createdAtKey,
|
|
30602
|
+
...props
|
|
30603
|
+
}) => {
|
|
30604
|
+
const data = useMemo7(() => {
|
|
30605
|
+
if (Array.isArray(props.data)) {
|
|
30606
|
+
return props.data;
|
|
30607
|
+
}
|
|
30608
|
+
return [];
|
|
30609
|
+
}, [props.data]);
|
|
30610
|
+
if (loading) {
|
|
30611
|
+
return /* @__PURE__ */ jsx57(Card, { className: cn("w-full", className), children: /* @__PURE__ */ jsxs33(CardContent, { className: "flex items-center justify-center px-4 py-8", children: [
|
|
30612
|
+
/* @__PURE__ */ jsx57(LoaderCircle, { className: "h-5 w-5 animate-spin text-muted-foreground" }),
|
|
30613
|
+
/* @__PURE__ */ jsx57("span", { className: "ml-2 text-sm text-muted-foreground", children: "Loading history\u2026" })
|
|
30614
|
+
] }) });
|
|
30615
|
+
}
|
|
30616
|
+
if (data.length === 0) {
|
|
30617
|
+
return /* @__PURE__ */ jsx57(Card, { className: cn("w-full", className), children: /* @__PURE__ */ jsx57(CardContent, { className: "px-4 py-8 text-center text-muted-foreground", children: "No history available." }) });
|
|
30618
|
+
}
|
|
30619
|
+
return /* @__PURE__ */ jsx57(Card, { className: cn("w-full", className), children: /* @__PURE__ */ jsx57(Accordion2, { type: "single", collapsible: true, defaultValue: "history", children: /* @__PURE__ */ jsxs33(AccordionItem, { value: "history", className: "border-0", children: [
|
|
30620
|
+
/* @__PURE__ */ jsx57(CardHeader, { className: "flex flex-row items-center justify-between gap-2 border-b px-4 py-3", children: /* @__PURE__ */ jsx57(
|
|
30621
|
+
AccordionTrigger,
|
|
30622
|
+
{
|
|
30623
|
+
className: cn(
|
|
30624
|
+
"flex flex-1 items-center justify-between gap-2 p-0 text-left",
|
|
30625
|
+
"hover:no-underline"
|
|
30626
|
+
),
|
|
30627
|
+
children: /* @__PURE__ */ jsx57(CardTitle, { className: "text-base font-semibold", children: title })
|
|
30628
|
+
}
|
|
30629
|
+
) }),
|
|
30630
|
+
/* @__PURE__ */ jsx57(AccordionContent, { asChild: true, children: /* @__PURE__ */ jsx57(CardContent, { className: "px-4 py-3", children: /* @__PURE__ */ jsx57("ol", { className: "relative ml-4 border-l-2 border-[#939393] space-y-4", children: data.map((item, index) => {
|
|
30631
|
+
const id = item.id ?? index;
|
|
30632
|
+
const rawTitle = getValue(item, titleKey);
|
|
30633
|
+
const rawDescription = getValue(item, descriptionKey);
|
|
30634
|
+
const rawCreatedAt = getValue(item, createdAtKey);
|
|
30635
|
+
const titleText = String(rawTitle ?? "");
|
|
30636
|
+
const descriptionText = rawDescription != null ? String(rawDescription) : "";
|
|
30637
|
+
const createdAtDate = rawCreatedAt != null ? new Date(rawCreatedAt) : null;
|
|
30638
|
+
return /* @__PURE__ */ jsxs33("li", { className: "relative pl-4", children: [
|
|
30639
|
+
/* @__PURE__ */ jsx57("span", { className: "absolute left-[-9px] top-2 flex h-4 w-4 items-center justify-center rounded-full bg-primary text-primary-foreground", children: /* @__PURE__ */ jsx57("div", { className: "bg-[#06A59A] text-white rounded-md p-[5px]", children: /* @__PURE__ */ jsx57(
|
|
30640
|
+
Info,
|
|
30641
|
+
{
|
|
30642
|
+
className: cn(
|
|
30643
|
+
"h-5 w-5 text-white"
|
|
30644
|
+
)
|
|
30645
|
+
}
|
|
30646
|
+
) }) }),
|
|
30647
|
+
/* @__PURE__ */ jsx57(
|
|
30648
|
+
Accordion2,
|
|
30649
|
+
{
|
|
30650
|
+
type: "single",
|
|
30651
|
+
collapsible: true,
|
|
30652
|
+
className: "w-full",
|
|
30653
|
+
children: /* @__PURE__ */ jsxs33(AccordionItem, { value: `item-${item.id}`, className: "border-0", children: [
|
|
30654
|
+
/* @__PURE__ */ jsx57(
|
|
30655
|
+
AccordionTrigger,
|
|
30656
|
+
{
|
|
30657
|
+
className: cn(
|
|
30658
|
+
"flex items-center justify-between gap-2 rounded-md px-2 py-1 text-left",
|
|
30659
|
+
"hover:bg-muted/60 hover:no-underline"
|
|
30660
|
+
),
|
|
30661
|
+
children: /* @__PURE__ */ jsxs33("div", { className: "flex flex-col gap-1", children: [
|
|
30662
|
+
/* @__PURE__ */ jsx57("span", { className: "text-sm font-medium leading-none", children: titleText }),
|
|
30663
|
+
/* @__PURE__ */ jsx57("span", { className: "text-[11px] text-muted-foreground", children: new Intl.DateTimeFormat("default", {
|
|
30664
|
+
dateStyle: "medium",
|
|
30665
|
+
timeStyle: "short"
|
|
30666
|
+
}).format(createdAtDate ?? /* @__PURE__ */ new Date()) })
|
|
30667
|
+
] })
|
|
30668
|
+
}
|
|
30669
|
+
),
|
|
30670
|
+
/* @__PURE__ */ jsx57(AccordionContent, { className: "pt-1", children: descriptionText && /* @__PURE__ */ jsx57("p", { className: "rounded-md bg-muted px-2 py-2 text-xs text-muted-foreground", children: descriptionText }) })
|
|
30671
|
+
] })
|
|
30672
|
+
}
|
|
30673
|
+
)
|
|
30674
|
+
] }, id);
|
|
30675
|
+
}) }) }) })
|
|
30676
|
+
] }) }) });
|
|
30677
|
+
};
|
|
30678
|
+
var HistoryTimeline_default = HistoryTimeline;
|
|
30679
|
+
|
|
30428
30680
|
// src/components/Navigation/Tabs/Tabs.tsx
|
|
30429
|
-
import { useCallback as useCallback3, useMemo as
|
|
30681
|
+
import { useCallback as useCallback3, useMemo as useMemo8, useState as useState9 } from "react";
|
|
30430
30682
|
import Link5 from "next/link";
|
|
30431
30683
|
import { usePathname, useRouter } from "next/navigation";
|
|
30432
30684
|
|
|
30433
30685
|
// src/components/ui/dialog.tsx
|
|
30434
30686
|
import * as DialogPrimitive from "@radix-ui/react-dialog";
|
|
30435
|
-
import { jsx as
|
|
30687
|
+
import { jsx as jsx58, jsxs as jsxs34 } from "react/jsx-runtime";
|
|
30436
30688
|
function Dialog({
|
|
30437
30689
|
...props
|
|
30438
30690
|
}) {
|
|
30439
|
-
return /* @__PURE__ */
|
|
30691
|
+
return /* @__PURE__ */ jsx58(DialogPrimitive.Root, { "data-slot": "dialog", ...props });
|
|
30440
30692
|
}
|
|
30441
30693
|
function DialogPortal({
|
|
30442
30694
|
...props
|
|
30443
30695
|
}) {
|
|
30444
|
-
return /* @__PURE__ */
|
|
30696
|
+
return /* @__PURE__ */ jsx58(DialogPrimitive.Portal, { "data-slot": "dialog-portal", ...props });
|
|
30445
30697
|
}
|
|
30446
30698
|
function DialogOverlay({
|
|
30447
30699
|
className,
|
|
30448
30700
|
...props
|
|
30449
30701
|
}) {
|
|
30450
|
-
return /* @__PURE__ */
|
|
30702
|
+
return /* @__PURE__ */ jsx58(
|
|
30451
30703
|
DialogPrimitive.Overlay,
|
|
30452
30704
|
{
|
|
30453
30705
|
"data-slot": "dialog-overlay",
|
|
@@ -30465,9 +30717,9 @@ function DialogContent({
|
|
|
30465
30717
|
showCloseButton = true,
|
|
30466
30718
|
...props
|
|
30467
30719
|
}) {
|
|
30468
|
-
return /* @__PURE__ */
|
|
30469
|
-
/* @__PURE__ */
|
|
30470
|
-
/* @__PURE__ */
|
|
30720
|
+
return /* @__PURE__ */ jsxs34(DialogPortal, { "data-slot": "dialog-portal", children: [
|
|
30721
|
+
/* @__PURE__ */ jsx58(DialogOverlay, {}),
|
|
30722
|
+
/* @__PURE__ */ jsxs34(
|
|
30471
30723
|
DialogPrimitive.Content,
|
|
30472
30724
|
{
|
|
30473
30725
|
"data-slot": "dialog-content",
|
|
@@ -30478,14 +30730,14 @@ function DialogContent({
|
|
|
30478
30730
|
...props,
|
|
30479
30731
|
children: [
|
|
30480
30732
|
children,
|
|
30481
|
-
showCloseButton && /* @__PURE__ */
|
|
30733
|
+
showCloseButton && /* @__PURE__ */ jsxs34(
|
|
30482
30734
|
DialogPrimitive.Close,
|
|
30483
30735
|
{
|
|
30484
30736
|
"data-slot": "dialog-close",
|
|
30485
30737
|
className: "ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
30486
30738
|
children: [
|
|
30487
|
-
/* @__PURE__ */
|
|
30488
|
-
/* @__PURE__ */
|
|
30739
|
+
/* @__PURE__ */ jsx58(X, {}),
|
|
30740
|
+
/* @__PURE__ */ jsx58("span", { className: "sr-only", children: "Close" })
|
|
30489
30741
|
]
|
|
30490
30742
|
}
|
|
30491
30743
|
)
|
|
@@ -30495,7 +30747,7 @@ function DialogContent({
|
|
|
30495
30747
|
] });
|
|
30496
30748
|
}
|
|
30497
30749
|
function DialogHeader({ className, ...props }) {
|
|
30498
|
-
return /* @__PURE__ */
|
|
30750
|
+
return /* @__PURE__ */ jsx58(
|
|
30499
30751
|
"div",
|
|
30500
30752
|
{
|
|
30501
30753
|
"data-slot": "dialog-header",
|
|
@@ -30505,7 +30757,7 @@ function DialogHeader({ className, ...props }) {
|
|
|
30505
30757
|
);
|
|
30506
30758
|
}
|
|
30507
30759
|
function DialogFooter({ className, ...props }) {
|
|
30508
|
-
return /* @__PURE__ */
|
|
30760
|
+
return /* @__PURE__ */ jsx58(
|
|
30509
30761
|
"div",
|
|
30510
30762
|
{
|
|
30511
30763
|
"data-slot": "dialog-footer",
|
|
@@ -30521,7 +30773,7 @@ function DialogTitle({
|
|
|
30521
30773
|
className,
|
|
30522
30774
|
...props
|
|
30523
30775
|
}) {
|
|
30524
|
-
return /* @__PURE__ */
|
|
30776
|
+
return /* @__PURE__ */ jsx58(
|
|
30525
30777
|
DialogPrimitive.Title,
|
|
30526
30778
|
{
|
|
30527
30779
|
"data-slot": "dialog-title",
|
|
@@ -30534,7 +30786,7 @@ function DialogDescription({
|
|
|
30534
30786
|
className,
|
|
30535
30787
|
...props
|
|
30536
30788
|
}) {
|
|
30537
|
-
return /* @__PURE__ */
|
|
30789
|
+
return /* @__PURE__ */ jsx58(
|
|
30538
30790
|
DialogPrimitive.Description,
|
|
30539
30791
|
{
|
|
30540
30792
|
"data-slot": "dialog-description",
|
|
@@ -30582,7 +30834,7 @@ function showSonnerToast({
|
|
|
30582
30834
|
}
|
|
30583
30835
|
|
|
30584
30836
|
// src/components/Navigation/Tabs/Tabs.tsx
|
|
30585
|
-
import { Fragment as Fragment22, jsx as
|
|
30837
|
+
import { Fragment as Fragment22, jsx as jsx59, jsxs as jsxs35 } from "react/jsx-runtime";
|
|
30586
30838
|
var Tabs = ({ className, style, tabs, verticalMenu, pathname, canvasMode, isBuilder = false, source, parentKey, menuNameKey, menuUrlKey, loading, bgActiveColor, textActiveColor }) => {
|
|
30587
30839
|
const [openIndex, setOpenIndex] = useState9(null);
|
|
30588
30840
|
const currentPathname = usePathname();
|
|
@@ -30618,7 +30870,7 @@ var Tabs = ({ className, style, tabs, verticalMenu, pathname, canvasMode, isBuil
|
|
|
30618
30870
|
});
|
|
30619
30871
|
return sortMenus(rootMenus);
|
|
30620
30872
|
}
|
|
30621
|
-
const rawTabs =
|
|
30873
|
+
const rawTabs = useMemo8(() => {
|
|
30622
30874
|
if (!Array.isArray(tabs)) return [];
|
|
30623
30875
|
if (source === "manual") return Array.isArray(tabs) ? tabs : [];
|
|
30624
30876
|
return groupMenus(tabs);
|
|
@@ -30681,13 +30933,13 @@ var Tabs = ({ className, style, tabs, verticalMenu, pathname, canvasMode, isBuil
|
|
|
30681
30933
|
border: active && textActiveColor ? `1px solid ${textActiveColor}` : void 0
|
|
30682
30934
|
};
|
|
30683
30935
|
if (Array.isArray(tab.children) && tab.children.length > 0 && tab.isDropDown) {
|
|
30684
|
-
return /* @__PURE__ */
|
|
30936
|
+
return /* @__PURE__ */ jsxs35(
|
|
30685
30937
|
DropdownMenu,
|
|
30686
30938
|
{
|
|
30687
30939
|
open: openIndex === index,
|
|
30688
30940
|
onOpenChange: (open) => setOpenIndex(open ? index : null),
|
|
30689
30941
|
children: [
|
|
30690
|
-
/* @__PURE__ */
|
|
30942
|
+
/* @__PURE__ */ jsxs35(
|
|
30691
30943
|
DropdownMenuTrigger,
|
|
30692
30944
|
{
|
|
30693
30945
|
className: `${finalClasses} inline-flex items-center gap-1`,
|
|
@@ -30701,11 +30953,11 @@ var Tabs = ({ className, style, tabs, verticalMenu, pathname, canvasMode, isBuil
|
|
|
30701
30953
|
style: finalStyle,
|
|
30702
30954
|
children: [
|
|
30703
30955
|
tab.header,
|
|
30704
|
-
/* @__PURE__ */
|
|
30956
|
+
/* @__PURE__ */ jsx59(ChevronDown, { className: "h-4 w-4 opacity-80" })
|
|
30705
30957
|
]
|
|
30706
30958
|
}
|
|
30707
30959
|
),
|
|
30708
|
-
/* @__PURE__ */
|
|
30960
|
+
/* @__PURE__ */ jsx59(
|
|
30709
30961
|
DropdownMenuContent,
|
|
30710
30962
|
{
|
|
30711
30963
|
align: "start",
|
|
@@ -30718,12 +30970,12 @@ var Tabs = ({ className, style, tabs, verticalMenu, pathname, canvasMode, isBuil
|
|
|
30718
30970
|
onMouseLeave: () => {
|
|
30719
30971
|
timeout = setTimeout(() => setOpenIndex(null), 150);
|
|
30720
30972
|
},
|
|
30721
|
-
children: tab.children.map((item, index2) => /* @__PURE__ */
|
|
30973
|
+
children: tab.children.map((item, index2) => /* @__PURE__ */ jsx59(
|
|
30722
30974
|
DropdownMenuItem,
|
|
30723
30975
|
{
|
|
30724
30976
|
asChild: true,
|
|
30725
30977
|
className: "cursor-pointer rounded-sm px-3 py-2 text-gray-800 hover:bg-gray-100 focus:bg-gray-100",
|
|
30726
|
-
children: /* @__PURE__ */
|
|
30978
|
+
children: /* @__PURE__ */ jsx59(
|
|
30727
30979
|
Link5,
|
|
30728
30980
|
{
|
|
30729
30981
|
href: item.url || "#",
|
|
@@ -30742,7 +30994,7 @@ var Tabs = ({ className, style, tabs, verticalMenu, pathname, canvasMode, isBuil
|
|
|
30742
30994
|
index
|
|
30743
30995
|
);
|
|
30744
30996
|
}
|
|
30745
|
-
return tab.url ? /* @__PURE__ */
|
|
30997
|
+
return tab.url ? /* @__PURE__ */ jsx59(
|
|
30746
30998
|
Link5,
|
|
30747
30999
|
{
|
|
30748
31000
|
href: tab.url,
|
|
@@ -30753,14 +31005,14 @@ var Tabs = ({ className, style, tabs, verticalMenu, pathname, canvasMode, isBuil
|
|
|
30753
31005
|
children: tab.header
|
|
30754
31006
|
},
|
|
30755
31007
|
index
|
|
30756
|
-
) : /* @__PURE__ */
|
|
31008
|
+
) : /* @__PURE__ */ jsx59("div", { className: finalClasses, style: finalStyle, role: "button", tabIndex: 0, children: tab.header }, index);
|
|
30757
31009
|
};
|
|
30758
|
-
const renderMobileMenu = () => /* @__PURE__ */
|
|
30759
|
-
/* @__PURE__ */
|
|
30760
|
-
/* @__PURE__ */
|
|
31010
|
+
const renderMobileMenu = () => /* @__PURE__ */ jsxs35(DropdownMenu, { children: [
|
|
31011
|
+
/* @__PURE__ */ jsxs35(DropdownMenuTrigger, { className: "flex items-center gap-2 px-3 py-2 rounded-md bg-white/10 text-white text-sm", children: [
|
|
31012
|
+
/* @__PURE__ */ jsx59(Menu, { className: "h-4 w-4" }),
|
|
30761
31013
|
"Menu"
|
|
30762
31014
|
] }),
|
|
30763
|
-
/* @__PURE__ */
|
|
31015
|
+
/* @__PURE__ */ jsx59(
|
|
30764
31016
|
DropdownMenuContent,
|
|
30765
31017
|
{
|
|
30766
31018
|
align: "start",
|
|
@@ -30769,25 +31021,25 @@ var Tabs = ({ className, style, tabs, verticalMenu, pathname, canvasMode, isBuil
|
|
|
30769
31021
|
children: rawTabs.map((tab, i) => {
|
|
30770
31022
|
const hasChildren = Array.isArray(tab.children) && tab.children.length > 0 && tab.isDropDown;
|
|
30771
31023
|
if (hasChildren) {
|
|
30772
|
-
return /* @__PURE__ */
|
|
30773
|
-
/* @__PURE__ */
|
|
30774
|
-
/* @__PURE__ */
|
|
31024
|
+
return /* @__PURE__ */ jsxs35(DropdownMenuSub, { children: [
|
|
31025
|
+
/* @__PURE__ */ jsx59(DropdownMenuSubTrigger, { className: "flex items-center justify-between cursor-pointer rounded-sm px-3 py-2 text-[13px] text-foreground hover:text-foreground", children: tab.header }),
|
|
31026
|
+
/* @__PURE__ */ jsx59(DropdownMenuSubContent, { className: "bg-white border shadow-lg rounded-md p-1", children: tab.children.map((item, index) => /* @__PURE__ */ jsx59(
|
|
30775
31027
|
DropdownMenuItem,
|
|
30776
31028
|
{
|
|
30777
31029
|
asChild: true,
|
|
30778
31030
|
className: "cursor-pointer rounded-sm px-3 py-2 text-gray-800 hover:bg-gray-100",
|
|
30779
|
-
children: /* @__PURE__ */
|
|
31031
|
+
children: /* @__PURE__ */ jsx59(Link5, { href: item.url || "#", onClick: (e) => handleBuilderExit(e, item.url || "#"), children: item.header })
|
|
30780
31032
|
},
|
|
30781
31033
|
item.id || index
|
|
30782
31034
|
)) })
|
|
30783
31035
|
] }, i);
|
|
30784
31036
|
}
|
|
30785
|
-
return /* @__PURE__ */
|
|
31037
|
+
return /* @__PURE__ */ jsx59(
|
|
30786
31038
|
DropdownMenuItem,
|
|
30787
31039
|
{
|
|
30788
31040
|
asChild: true,
|
|
30789
31041
|
className: "cursor-pointer rounded-sm px-3 py-2 text-[13px] text-gray-800 hover:bg-gray-100",
|
|
30790
|
-
children: /* @__PURE__ */
|
|
31042
|
+
children: /* @__PURE__ */ jsx59(Link5, { href: tab.url || "#", onClick: (e) => handleBuilderExit(e, tab.url || "#"), children: tab.header })
|
|
30791
31043
|
},
|
|
30792
31044
|
i
|
|
30793
31045
|
);
|
|
@@ -30797,19 +31049,19 @@ var Tabs = ({ className, style, tabs, verticalMenu, pathname, canvasMode, isBuil
|
|
|
30797
31049
|
] });
|
|
30798
31050
|
const forceMobile = canvasMode ? canvasMode === "mobile" || canvasMode === "tablet" : void 0;
|
|
30799
31051
|
const forceDesktop = canvasMode ? canvasMode === "desktop" : void 0;
|
|
30800
|
-
return /* @__PURE__ */
|
|
30801
|
-
/* @__PURE__ */
|
|
30802
|
-
forceDesktop !== void 0 ? forceDesktop && /* @__PURE__ */
|
|
30803
|
-
forceMobile !== void 0 ? forceMobile && /* @__PURE__ */
|
|
31052
|
+
return /* @__PURE__ */ jsxs35(Fragment22, { children: [
|
|
31053
|
+
/* @__PURE__ */ jsxs35("div", { className: cn("min-h-10", className), style, children: [
|
|
31054
|
+
forceDesktop !== void 0 ? forceDesktop && /* @__PURE__ */ jsx59("div", { className: "hidden md:flex", children: /* @__PURE__ */ jsx59("div", { className: `flex gap-2 ${verticalMenu ? "flex-col items-start" : "flex-row"}`, children: rawTabs.map(renderDesktopTab) }) }) : /* @__PURE__ */ jsx59("div", { className: "hidden md:flex", children: /* @__PURE__ */ jsx59("div", { className: `flex gap-2 ${verticalMenu ? "flex-col items-start" : "flex-row"}`, children: rawTabs.map(renderDesktopTab) }) }),
|
|
31055
|
+
forceMobile !== void 0 ? forceMobile && /* @__PURE__ */ jsx59("div", { children: renderMobileMenu() }) : /* @__PURE__ */ jsx59("div", { className: "flex md:hidden", children: renderMobileMenu() })
|
|
30804
31056
|
] }),
|
|
30805
|
-
/* @__PURE__ */
|
|
30806
|
-
/* @__PURE__ */
|
|
30807
|
-
/* @__PURE__ */
|
|
30808
|
-
/* @__PURE__ */
|
|
31057
|
+
/* @__PURE__ */ jsx59(Dialog, { open: showExitDialog, onOpenChange: setShowExitDialog, children: /* @__PURE__ */ jsxs35(DialogContent, { className: "bg-[#fff]", children: [
|
|
31058
|
+
/* @__PURE__ */ jsxs35(DialogHeader, { children: [
|
|
31059
|
+
/* @__PURE__ */ jsx59(DialogTitle, { children: "Exit Builder?" }),
|
|
31060
|
+
/* @__PURE__ */ jsx59(DialogDescription, { children: "You are about to leave the builder. Any unsaved changes may be lost." })
|
|
30809
31061
|
] }),
|
|
30810
|
-
/* @__PURE__ */
|
|
30811
|
-
/* @__PURE__ */
|
|
30812
|
-
/* @__PURE__ */
|
|
31062
|
+
/* @__PURE__ */ jsxs35(DialogFooter, { children: [
|
|
31063
|
+
/* @__PURE__ */ jsx59(Button, { className: "cursor-pointer bg-[#12715b] text-[#fff]", variant: "outline", onClick: () => setShowExitDialog(false), children: "Cancel" }),
|
|
31064
|
+
/* @__PURE__ */ jsx59(Button, { className: "cursor-pointer border-[#12715b] border", onClick: confirmExit, children: "Yes, Exit" })
|
|
30813
31065
|
] })
|
|
30814
31066
|
] }) })
|
|
30815
31067
|
] });
|
|
@@ -30818,7 +31070,7 @@ var Tabs_default = Tabs;
|
|
|
30818
31070
|
|
|
30819
31071
|
// src/components/Navigation/Stages/Stages.tsx
|
|
30820
31072
|
import React10, { useState as useState10 } from "react";
|
|
30821
|
-
import { jsx as
|
|
31073
|
+
import { jsx as jsx60, jsxs as jsxs36 } from "react/jsx-runtime";
|
|
30822
31074
|
var StagesComponent = ({
|
|
30823
31075
|
stages,
|
|
30824
31076
|
isShowBtn,
|
|
@@ -30866,7 +31118,7 @@ var StagesComponent = ({
|
|
|
30866
31118
|
};
|
|
30867
31119
|
const isAllStagesCompleted = isCompleted || currentStage === lastStage;
|
|
30868
31120
|
const disabled = isAllStagesCompleted || loading || saving;
|
|
30869
|
-
return /* @__PURE__ */
|
|
31121
|
+
return /* @__PURE__ */ jsx60("div", { className, style, children: /* @__PURE__ */ jsxs36(
|
|
30870
31122
|
"div",
|
|
30871
31123
|
{
|
|
30872
31124
|
className: `
|
|
@@ -30876,8 +31128,8 @@ var StagesComponent = ({
|
|
|
30876
31128
|
${isMobile ? "p-3 sm:p-4" : "p-2"}
|
|
30877
31129
|
`,
|
|
30878
31130
|
children: [
|
|
30879
|
-
/* @__PURE__ */
|
|
30880
|
-
/* @__PURE__ */
|
|
31131
|
+
/* @__PURE__ */ jsx60("div", { className: "flex items-center flex-shrink-0 order-1 lg:order-1", children: /* @__PURE__ */ jsx60("button", { className: "p-2 hover:bg-gray-100 rounded flex-shrink-0", children: /* @__PURE__ */ jsx60("svg", { className: "w-4 h-4 text-gray-600", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ jsx60("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M19 9l-7 7-7-7" }) }) }) }),
|
|
31132
|
+
/* @__PURE__ */ jsx60(
|
|
30881
31133
|
"div",
|
|
30882
31134
|
{
|
|
30883
31135
|
className: `
|
|
@@ -30885,7 +31137,7 @@ var StagesComponent = ({
|
|
|
30885
31137
|
flex-wrap gap-2 sm:gap-2 lg:gap-3 w-full lg:w-auto
|
|
30886
31138
|
${isMobile ? "order-2 mt-2 lg:mt-0" : "order-2"}
|
|
30887
31139
|
`,
|
|
30888
|
-
children: loading ? Array(6).fill(null).map((_, index) => /* @__PURE__ */
|
|
31140
|
+
children: loading ? Array(6).fill(null).map((_, index) => /* @__PURE__ */ jsx60(
|
|
30889
31141
|
"button",
|
|
30890
31142
|
{
|
|
30891
31143
|
className: `
|
|
@@ -30903,8 +31155,8 @@ var StagesComponent = ({
|
|
|
30903
31155
|
const currentIndex = stages.findIndex((s) => s[dataKey] === activeStage);
|
|
30904
31156
|
const isCompletedStage = isAllStagesCompleted || index <= currentIndex;
|
|
30905
31157
|
const isActive = !isAllStagesCompleted && index === currentIndex;
|
|
30906
|
-
return /* @__PURE__ */
|
|
30907
|
-
/* @__PURE__ */
|
|
31158
|
+
return /* @__PURE__ */ jsxs36(React10.Fragment, { children: [
|
|
31159
|
+
/* @__PURE__ */ jsx60(
|
|
30908
31160
|
"button",
|
|
30909
31161
|
{
|
|
30910
31162
|
className: `
|
|
@@ -30921,19 +31173,19 @@ var StagesComponent = ({
|
|
|
30921
31173
|
children: stage[dataLabel]
|
|
30922
31174
|
}
|
|
30923
31175
|
),
|
|
30924
|
-
!isMobile && index < stages.length - 1 && /* @__PURE__ */
|
|
31176
|
+
!isMobile && index < stages.length - 1 && /* @__PURE__ */ jsx60("div", { className: "hidden sm:flex sm:flex-shrink-0 w-3 h-px bg-gray-300 sm:w-4" })
|
|
30925
31177
|
] }, stage.id);
|
|
30926
31178
|
})
|
|
30927
31179
|
}
|
|
30928
31180
|
),
|
|
30929
|
-
isShowBtn && /* @__PURE__ */
|
|
31181
|
+
isShowBtn && /* @__PURE__ */ jsx60(
|
|
30930
31182
|
"div",
|
|
30931
31183
|
{
|
|
30932
31184
|
className: `
|
|
30933
31185
|
flex items-center flex-shrink-0 w-full lg:w-auto
|
|
30934
31186
|
${isMobile ? "order-3 mt-3 lg:mt-0" : "order-3"}
|
|
30935
31187
|
`,
|
|
30936
|
-
children: /* @__PURE__ */
|
|
31188
|
+
children: /* @__PURE__ */ jsx60(
|
|
30937
31189
|
"button",
|
|
30938
31190
|
{
|
|
30939
31191
|
className: `
|
|
@@ -30955,26 +31207,26 @@ var StagesComponent = ({
|
|
|
30955
31207
|
var Stages_default = StagesComponent;
|
|
30956
31208
|
|
|
30957
31209
|
// src/components/Navigation/Spacer/Spacer.tsx
|
|
30958
|
-
import { jsx as
|
|
31210
|
+
import { jsx as jsx61 } from "react/jsx-runtime";
|
|
30959
31211
|
var Spacer = ({ className, style }) => {
|
|
30960
|
-
return /* @__PURE__ */
|
|
31212
|
+
return /* @__PURE__ */ jsx61("div", { className: `${className}`, style });
|
|
30961
31213
|
};
|
|
30962
31214
|
var Spacer_default = Spacer;
|
|
30963
31215
|
|
|
30964
31216
|
// src/components/Navigation/Profile/Profile.tsx
|
|
30965
|
-
import { jsx as
|
|
31217
|
+
import { jsx as jsx62, jsxs as jsxs37 } from "react/jsx-runtime";
|
|
30966
31218
|
|
|
30967
31219
|
// src/components/Navigation/Notification/Notification.tsx
|
|
30968
|
-
import { jsx as
|
|
31220
|
+
import { jsx as jsx63, jsxs as jsxs38 } from "react/jsx-runtime";
|
|
30969
31221
|
|
|
30970
31222
|
// src/components/Navigation/Logo/Logo.tsx
|
|
30971
|
-
import { jsx as
|
|
31223
|
+
import { jsx as jsx64 } from "react/jsx-runtime";
|
|
30972
31224
|
|
|
30973
31225
|
// src/components/ui/avatar.tsx
|
|
30974
31226
|
import * as React11 from "react";
|
|
30975
31227
|
import * as AvatarPrimitive from "@radix-ui/react-avatar";
|
|
30976
|
-
import { jsx as
|
|
30977
|
-
var Avatar = React11.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
31228
|
+
import { jsx as jsx65 } from "react/jsx-runtime";
|
|
31229
|
+
var Avatar = React11.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx65(
|
|
30978
31230
|
AvatarPrimitive.Root,
|
|
30979
31231
|
{
|
|
30980
31232
|
ref,
|
|
@@ -30986,7 +31238,7 @@ var Avatar = React11.forwardRef(({ className, ...props }, ref) => /* @__PURE__ *
|
|
|
30986
31238
|
}
|
|
30987
31239
|
));
|
|
30988
31240
|
Avatar.displayName = AvatarPrimitive.Root.displayName;
|
|
30989
|
-
var AvatarImage = React11.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
31241
|
+
var AvatarImage = React11.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx65(
|
|
30990
31242
|
AvatarPrimitive.Image,
|
|
30991
31243
|
{
|
|
30992
31244
|
ref,
|
|
@@ -30995,7 +31247,7 @@ var AvatarImage = React11.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
30995
31247
|
}
|
|
30996
31248
|
));
|
|
30997
31249
|
AvatarImage.displayName = AvatarPrimitive.Image.displayName;
|
|
30998
|
-
var AvatarFallback = React11.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
31250
|
+
var AvatarFallback = React11.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx65(
|
|
30999
31251
|
AvatarPrimitive.Fallback,
|
|
31000
31252
|
{
|
|
31001
31253
|
ref,
|
|
@@ -31013,8 +31265,8 @@ import Link6 from "next/link";
|
|
|
31013
31265
|
import Image4 from "next/image";
|
|
31014
31266
|
import { useRouter as useRouter2 } from "next/navigation";
|
|
31015
31267
|
import { DropdownMenuSeparator } from "@radix-ui/react-dropdown-menu";
|
|
31016
|
-
import { useCallback as useCallback4, useMemo as
|
|
31017
|
-
import { Fragment as Fragment23, jsx as
|
|
31268
|
+
import { useCallback as useCallback4, useMemo as useMemo9, useState as useState11 } from "react";
|
|
31269
|
+
import { Fragment as Fragment23, jsx as jsx66, jsxs as jsxs39 } from "react/jsx-runtime";
|
|
31018
31270
|
function Navbar({
|
|
31019
31271
|
style,
|
|
31020
31272
|
badgeType,
|
|
@@ -31052,29 +31304,29 @@ function Navbar({
|
|
|
31052
31304
|
router.push(pendingUrl);
|
|
31053
31305
|
}
|
|
31054
31306
|
};
|
|
31055
|
-
const formatedMenu =
|
|
31307
|
+
const formatedMenu = useMemo9(() => {
|
|
31056
31308
|
if (source === "state" && navList && navList.length) {
|
|
31057
31309
|
return navList.map((i) => ({ ...i, header: i.name || "Menu" }));
|
|
31058
31310
|
}
|
|
31059
31311
|
return list || [];
|
|
31060
31312
|
}, [source, navList]);
|
|
31061
|
-
return /* @__PURE__ */
|
|
31062
|
-
/* @__PURE__ */
|
|
31313
|
+
return /* @__PURE__ */ jsxs39(Fragment23, { children: [
|
|
31314
|
+
/* @__PURE__ */ jsx66(
|
|
31063
31315
|
"nav",
|
|
31064
31316
|
{
|
|
31065
31317
|
className: "w-full border-b border-b-white dark:border-b-gray-800 dark:bg-gray-800 bg-white shadow-sm",
|
|
31066
31318
|
style,
|
|
31067
|
-
children: /* @__PURE__ */
|
|
31068
|
-
/* @__PURE__ */
|
|
31319
|
+
children: /* @__PURE__ */ jsxs39("div", { className: "mx-auto flex max-w-[90%] items-center justify-between px-4 py-4", children: [
|
|
31320
|
+
/* @__PURE__ */ jsx66(
|
|
31069
31321
|
Link6,
|
|
31070
31322
|
{
|
|
31071
31323
|
href: "/",
|
|
31072
31324
|
onClick: (e) => handleBuilderExit(e, "/"),
|
|
31073
31325
|
className: "flex items-center space-x-2",
|
|
31074
|
-
children: imageUrl ? /* @__PURE__ */
|
|
31326
|
+
children: imageUrl ? /* @__PURE__ */ jsx66(Image4, { src: imageUrl, alt: altText, width: 200, height: 200 }) : /* @__PURE__ */ jsx66("span", { className: "font-semibold text-blue-700", children: "Logo" })
|
|
31075
31327
|
}
|
|
31076
31328
|
),
|
|
31077
|
-
!isMobileView && /* @__PURE__ */
|
|
31329
|
+
!isMobileView && /* @__PURE__ */ jsx66("div", { className: "flex items-center space-x-6 sm:hidden md:flex", children: formatedMenu.map((item) => /* @__PURE__ */ jsx66(
|
|
31078
31330
|
Link6,
|
|
31079
31331
|
{
|
|
31080
31332
|
href: item.url || "#",
|
|
@@ -31084,39 +31336,39 @@ function Navbar({
|
|
|
31084
31336
|
},
|
|
31085
31337
|
item.id
|
|
31086
31338
|
)) }),
|
|
31087
|
-
/* @__PURE__ */
|
|
31088
|
-
!isMobileView ? /* @__PURE__ */
|
|
31089
|
-
/* @__PURE__ */
|
|
31090
|
-
/* @__PURE__ */
|
|
31091
|
-
] }) }) : /* @__PURE__ */
|
|
31092
|
-
/* @__PURE__ */
|
|
31093
|
-
/* @__PURE__ */
|
|
31094
|
-
badgeType === "number" && !(hideBadgeWhenZero && badgeCount === 0) && Number(badgeCount) > 0 ? /* @__PURE__ */
|
|
31339
|
+
/* @__PURE__ */ jsxs39("div", { className: "flex items-center space-x-3", children: [
|
|
31340
|
+
!isMobileView ? /* @__PURE__ */ jsx66("div", { className: "flex-1 px-6", children: /* @__PURE__ */ jsxs39("div", { className: "relative w-full max-w-md border border-gray-300 rounded-md", children: [
|
|
31341
|
+
/* @__PURE__ */ jsx66(Search, { className: "absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 dark:text-white text-gray-400" }),
|
|
31342
|
+
/* @__PURE__ */ jsx66(Input, { placeholder: "Search", className: "pl-9 text-gray-400" })
|
|
31343
|
+
] }) }) : /* @__PURE__ */ jsx66(Button, { variant: "ghost", size: "icon", className: "border border-gray-400", children: /* @__PURE__ */ jsx66(Search, { className: "h-5 w-5 text-gray-400" }) }),
|
|
31344
|
+
/* @__PURE__ */ jsxs39("div", { className: "relative bg-[#E9E9E9] dark:bg-gray-700 rounded-md", children: [
|
|
31345
|
+
/* @__PURE__ */ jsx66(Button, { variant: "ghost", size: "icon", children: /* @__PURE__ */ jsx66(Bell, { className: "h-5 w-5 text-[#1C1B1F] dark:text-gray-400" }) }),
|
|
31346
|
+
badgeType === "number" && !(hideBadgeWhenZero && badgeCount === 0) && Number(badgeCount) > 0 ? /* @__PURE__ */ jsx66("span", { className: "absolute -top-1 -right-1 flex h-4 w-4 items-center justify-center rounded-full bg-red-500 text-[10px] text-white leading-8", children: badgeCount }) : /* @__PURE__ */ jsx66("span", { className: "absolute -top-1 -right-1 flex h-2 w-2 items-center justify-center rounded-full bg-red-500" })
|
|
31095
31347
|
] }),
|
|
31096
|
-
/* @__PURE__ */
|
|
31097
|
-
/* @__PURE__ */
|
|
31098
|
-
!isMobileView && showName && /* @__PURE__ */
|
|
31099
|
-
!isMobileView ? /* @__PURE__ */
|
|
31100
|
-
/* @__PURE__ */
|
|
31348
|
+
/* @__PURE__ */ jsxs39(DropdownMenu, { children: [
|
|
31349
|
+
/* @__PURE__ */ jsx66(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsxs39("div", { className: "flex items-center space-x-2", children: [
|
|
31350
|
+
!isMobileView && showName && /* @__PURE__ */ jsx66("h4", { className: "text-[#000000] dark:text-gray-300 text-[13px] font-[500] mb-0", children: userName }),
|
|
31351
|
+
!isMobileView ? /* @__PURE__ */ jsxs39(Fragment23, { children: [
|
|
31352
|
+
/* @__PURE__ */ jsx66(Avatar, { className: "cursor-pointer h-8 w-8 text-gray-900", children: profileType === "avatar" ? /* @__PURE__ */ jsx66(
|
|
31101
31353
|
AvatarImage,
|
|
31102
31354
|
{
|
|
31103
31355
|
src: "/images/appbuilder/toolset/profile.svg",
|
|
31104
31356
|
alt: "Profile"
|
|
31105
31357
|
}
|
|
31106
|
-
) : /* @__PURE__ */
|
|
31107
|
-
/* @__PURE__ */
|
|
31358
|
+
) : /* @__PURE__ */ jsx66("div", { className: "w-8 h-8 bg-[#12715b] rounded-full text-[#fff] text-center text-[11px] flex items-center justify-center", children: userName && getInitials(userName) }) }),
|
|
31359
|
+
/* @__PURE__ */ jsx66(
|
|
31108
31360
|
Button,
|
|
31109
31361
|
{
|
|
31110
31362
|
variant: "ghost",
|
|
31111
31363
|
size: "icon",
|
|
31112
31364
|
className: "text-gray-900 md:hidden dark:invert",
|
|
31113
|
-
children: /* @__PURE__ */
|
|
31365
|
+
children: /* @__PURE__ */ jsx66(Menu, { className: "h-6 w-6" })
|
|
31114
31366
|
}
|
|
31115
31367
|
)
|
|
31116
|
-
] }) : /* @__PURE__ */
|
|
31368
|
+
] }) : /* @__PURE__ */ jsx66(Button, { variant: "ghost", size: "icon", className: "text-gray-900 dark:invert", children: /* @__PURE__ */ jsx66(Menu, { className: "h-6 w-6" }) })
|
|
31117
31369
|
] }) }),
|
|
31118
|
-
/* @__PURE__ */
|
|
31119
|
-
profileMenu && profileMenu.length > 0 && /* @__PURE__ */
|
|
31370
|
+
/* @__PURE__ */ jsxs39(DropdownMenuContent, { align: "end", className: "bg-white dark:bg-gray-800", children: [
|
|
31371
|
+
profileMenu && profileMenu.length > 0 && /* @__PURE__ */ jsx66(Fragment23, { children: profileMenu.map((item) => /* @__PURE__ */ jsx66(DropdownMenuItem, { className: "text-black dark:invert", children: /* @__PURE__ */ jsx66(
|
|
31120
31372
|
Link6,
|
|
31121
31373
|
{
|
|
31122
31374
|
href: item.url || "#",
|
|
@@ -31124,9 +31376,9 @@ function Navbar({
|
|
|
31124
31376
|
children: item.header
|
|
31125
31377
|
}
|
|
31126
31378
|
) }, item.id)) }),
|
|
31127
|
-
/* @__PURE__ */
|
|
31128
|
-
/* @__PURE__ */
|
|
31129
|
-
formatedMenu && formatedMenu.length > 0 && /* @__PURE__ */
|
|
31379
|
+
/* @__PURE__ */ jsxs39("div", { className: "md:hidden", children: [
|
|
31380
|
+
/* @__PURE__ */ jsx66(DropdownMenuSeparator, {}),
|
|
31381
|
+
formatedMenu && formatedMenu.length > 0 && /* @__PURE__ */ jsx66(Fragment23, { children: formatedMenu.map((item) => /* @__PURE__ */ jsx66(DropdownMenuItem, { className: "text-black dark:invert", children: /* @__PURE__ */ jsx66(
|
|
31130
31382
|
Link6,
|
|
31131
31383
|
{
|
|
31132
31384
|
href: item.url || "#",
|
|
@@ -31141,21 +31393,21 @@ function Navbar({
|
|
|
31141
31393
|
] })
|
|
31142
31394
|
}
|
|
31143
31395
|
),
|
|
31144
|
-
/* @__PURE__ */
|
|
31145
|
-
/* @__PURE__ */
|
|
31146
|
-
/* @__PURE__ */
|
|
31147
|
-
/* @__PURE__ */
|
|
31396
|
+
/* @__PURE__ */ jsx66(Dialog, { open: showExitDialog, onOpenChange: setShowExitDialog, children: /* @__PURE__ */ jsxs39(DialogContent, { className: "bg-[#fff]", children: [
|
|
31397
|
+
/* @__PURE__ */ jsxs39(DialogHeader, { children: [
|
|
31398
|
+
/* @__PURE__ */ jsx66(DialogTitle, { children: "Exit Builder?" }),
|
|
31399
|
+
/* @__PURE__ */ jsx66(DialogDescription, { children: "You are about to leave the builder. Any unsaved changes may be lost." })
|
|
31148
31400
|
] }),
|
|
31149
|
-
/* @__PURE__ */
|
|
31150
|
-
/* @__PURE__ */
|
|
31151
|
-
/* @__PURE__ */
|
|
31401
|
+
/* @__PURE__ */ jsxs39(DialogFooter, { children: [
|
|
31402
|
+
/* @__PURE__ */ jsx66(Button, { className: "cursor-pointer bg-[#12715b] text-[#fff]", variant: "outline", onClick: () => setShowExitDialog(false), children: "Cancel" }),
|
|
31403
|
+
/* @__PURE__ */ jsx66(Button, { className: "cursor-pointer border-[#12715b] border", onClick: confirmExit, children: "Yes, Exit" })
|
|
31152
31404
|
] })
|
|
31153
31405
|
] }) })
|
|
31154
31406
|
] });
|
|
31155
31407
|
}
|
|
31156
31408
|
|
|
31157
31409
|
// src/components/Chart/BarChart.tsx
|
|
31158
|
-
import React12, { useEffect as useEffect25, useMemo as
|
|
31410
|
+
import React12, { useEffect as useEffect25, useMemo as useMemo10, useState as useState12, useCallback as useCallback5 } from "react";
|
|
31159
31411
|
import axios2 from "axios";
|
|
31160
31412
|
import {
|
|
31161
31413
|
BarChart,
|
|
@@ -31169,7 +31421,7 @@ import {
|
|
|
31169
31421
|
ResponsiveContainer,
|
|
31170
31422
|
Legend
|
|
31171
31423
|
} from "recharts";
|
|
31172
|
-
import { jsx as
|
|
31424
|
+
import { jsx as jsx67, jsxs as jsxs40 } from "react/jsx-runtime";
|
|
31173
31425
|
var getRandomColor = () => {
|
|
31174
31426
|
const palette = [
|
|
31175
31427
|
"#2563eb",
|
|
@@ -31247,7 +31499,8 @@ var ChartComponent = ({
|
|
|
31247
31499
|
page: page.toString(),
|
|
31248
31500
|
limit: limit.toString()
|
|
31249
31501
|
});
|
|
31250
|
-
const
|
|
31502
|
+
const axiosClient = props.axiosInstance ?? axios2;
|
|
31503
|
+
const res = await axiosClient.get(`${apiUrl}?${params.toString()}`, {
|
|
31251
31504
|
withCredentials: true
|
|
31252
31505
|
});
|
|
31253
31506
|
if (!cancelled) {
|
|
@@ -31282,7 +31535,7 @@ var ChartComponent = ({
|
|
|
31282
31535
|
if (rawMeta && (newPage < 1 || newPage > rawMeta.pages)) return;
|
|
31283
31536
|
setCurrentPage(newPage);
|
|
31284
31537
|
};
|
|
31285
|
-
const data =
|
|
31538
|
+
const data = useMemo10(() => {
|
|
31286
31539
|
if (!Array.isArray(effectiveData) || effectiveData.length === 0 || !dataKey || !dataLabel) {
|
|
31287
31540
|
return [];
|
|
31288
31541
|
}
|
|
@@ -31295,27 +31548,27 @@ var ChartComponent = ({
|
|
|
31295
31548
|
const chartType = props.chartType || "bar";
|
|
31296
31549
|
const legendsPosition = ["middle", "bottom"].includes(props.legendsPosition) ? props.legendsPosition : "top";
|
|
31297
31550
|
if (effectiveLoading || data.length === 0) {
|
|
31298
|
-
return /* @__PURE__ */
|
|
31551
|
+
return /* @__PURE__ */ jsxs40(
|
|
31299
31552
|
"div",
|
|
31300
31553
|
{
|
|
31301
31554
|
className: `relative flex flex-col w-full h-[300px] md:h-[400px] bg-gradient-to-br from-gray-50 to-gray-100 rounded-xl p-6 ${className}`,
|
|
31302
31555
|
style,
|
|
31303
31556
|
children: [
|
|
31304
|
-
/* @__PURE__ */
|
|
31305
|
-
/* @__PURE__ */
|
|
31306
|
-
/* @__PURE__ */
|
|
31557
|
+
/* @__PURE__ */ jsx67("div", { className: "mb-6 flex justify-center", children: /* @__PURE__ */ jsxs40("div", { className: "inline-flex items-center space-x-2 bg-white/90 px-6 py-2.5 rounded-xl backdrop-blur-sm border border-gray-200 shadow-lg", children: [
|
|
31558
|
+
/* @__PURE__ */ jsx67("div", { className: "w-5 h-5 border-2 border-gray-400 border-t-blue-500 rounded-full animate-spin" }),
|
|
31559
|
+
/* @__PURE__ */ jsx67("span", { className: "text-sm font-medium text-gray-700 bg-gradient-to-r from-gray-300 bg-clip-text animate-pulse", children: "Loading chart data..." })
|
|
31307
31560
|
] }) }),
|
|
31308
|
-
/* @__PURE__ */
|
|
31309
|
-
/* @__PURE__ */
|
|
31561
|
+
/* @__PURE__ */ jsx67("div", { className: "absolute inset-0 bg-gradient-to-r from-transparent via-white/60 to-transparent animate-shimmer rounded-xl" }),
|
|
31562
|
+
/* @__PURE__ */ jsx67("div", { className: "flex-1 relative w-full h-full min-h-[240px] md:min-h-[320px] bg-white/80 rounded-lg border border-gray-200/50 shadow-sm", children: /* @__PURE__ */ jsx67("div", { className: "absolute bottom-0 left-4 right-4 flex gap-2 h-[200px] md:h-[280px] justify-center items-end", children: [...Array(20)].map((_, idx) => {
|
|
31310
31563
|
const randomHeight = `${Math.floor(Math.random() * 76) + 20}%`;
|
|
31311
|
-
return /* @__PURE__ */
|
|
31564
|
+
return /* @__PURE__ */ jsxs40(
|
|
31312
31565
|
"div",
|
|
31313
31566
|
{
|
|
31314
31567
|
className: `relative w-10 md:w-12 flex-1 max-w-[48px] rounded-t-lg bg-gradient-to-t from-gray-100 via-gray-200 to-transparent shadow-lg border border-gray-200/50 animate-slide-up stagger-${idx} overflow-hidden`,
|
|
31315
31568
|
style: { height: randomHeight, animationDelay: `${idx * 0.08}s` },
|
|
31316
31569
|
children: [
|
|
31317
|
-
/* @__PURE__ */
|
|
31318
|
-
/* @__PURE__ */
|
|
31570
|
+
/* @__PURE__ */ jsx67("div", { className: "absolute inset-0 bg-gradient-to-r from-white/40 via-transparent to-white/40 animate-shimmer-bar" }),
|
|
31571
|
+
/* @__PURE__ */ jsx67("div", { className: "absolute bottom-1 left-1/2 w-4 h-1 rounded-full transform -translate-x-1/2 blur-sm" })
|
|
31319
31572
|
]
|
|
31320
31573
|
},
|
|
31321
31574
|
`bar-${idx}`
|
|
@@ -31325,9 +31578,9 @@ var ChartComponent = ({
|
|
|
31325
31578
|
}
|
|
31326
31579
|
);
|
|
31327
31580
|
}
|
|
31328
|
-
return /* @__PURE__ */
|
|
31329
|
-
isPaginationEnabled && rawMeta && /* @__PURE__ */
|
|
31330
|
-
/* @__PURE__ */
|
|
31581
|
+
return /* @__PURE__ */ jsxs40("div", { className: `${className} h-[450px]`, style, children: [
|
|
31582
|
+
isPaginationEnabled && rawMeta && /* @__PURE__ */ jsxs40("div", { className: "flex items-center justify-between mb-4 px-2", children: [
|
|
31583
|
+
/* @__PURE__ */ jsxs40("div", { className: "text-sm text-gray-600 hidden sm:block", children: [
|
|
31331
31584
|
"Page ",
|
|
31332
31585
|
rawMeta.page,
|
|
31333
31586
|
" of ",
|
|
@@ -31336,52 +31589,52 @@ var ChartComponent = ({
|
|
|
31336
31589
|
rawMeta.total.toLocaleString(),
|
|
31337
31590
|
" total records)"
|
|
31338
31591
|
] }),
|
|
31339
|
-
/* @__PURE__ */
|
|
31340
|
-
/* @__PURE__ */
|
|
31592
|
+
/* @__PURE__ */ jsxs40("div", { className: "flex items-center space-x-2 sm:hidden w-full justify-center", children: [
|
|
31593
|
+
/* @__PURE__ */ jsx67(
|
|
31341
31594
|
"button",
|
|
31342
31595
|
{
|
|
31343
31596
|
onClick: () => handlePageChange(currentPage - 1),
|
|
31344
31597
|
disabled: currentPage === 1 || localLoading,
|
|
31345
31598
|
className: "flex-1 px-3 py-2 text-xs font-medium rounded-lg border bg-white shadow-sm hover:bg-gray-50 disabled:opacity-50 disabled:cursor-not-allowed transition-all duration-200 flex items-center justify-center space-x-1 min-w-0",
|
|
31346
|
-
children: /* @__PURE__ */
|
|
31599
|
+
children: /* @__PURE__ */ jsx67("span", { children: "\u2190 Prev" })
|
|
31347
31600
|
}
|
|
31348
31601
|
),
|
|
31349
|
-
/* @__PURE__ */
|
|
31350
|
-
/* @__PURE__ */
|
|
31602
|
+
/* @__PURE__ */ jsx67("span", { className: "px-2 py-2 text-xs font-semibold text-gray-700 min-w-[36px] text-center flex-shrink-0", children: currentPage }),
|
|
31603
|
+
/* @__PURE__ */ jsx67(
|
|
31351
31604
|
"button",
|
|
31352
31605
|
{
|
|
31353
31606
|
onClick: () => handlePageChange(currentPage + 1),
|
|
31354
31607
|
disabled: currentPage >= rawMeta.pages || localLoading,
|
|
31355
31608
|
className: "flex-1 px-3 py-2 text-xs font-medium rounded-lg border bg-white shadow-sm hover:bg-gray-50 disabled:opacity-50 disabled:cursor-not-allowed transition-all duration-200 flex items-center justify-center space-x-1 min-w-0",
|
|
31356
|
-
children: /* @__PURE__ */
|
|
31609
|
+
children: /* @__PURE__ */ jsx67("span", { children: "Next \u2192" })
|
|
31357
31610
|
}
|
|
31358
31611
|
)
|
|
31359
31612
|
] }),
|
|
31360
|
-
/* @__PURE__ */
|
|
31361
|
-
/* @__PURE__ */
|
|
31613
|
+
/* @__PURE__ */ jsxs40("div", { className: "flex items-center space-x-2 hidden sm:flex", children: [
|
|
31614
|
+
/* @__PURE__ */ jsx67(
|
|
31362
31615
|
"button",
|
|
31363
31616
|
{
|
|
31364
31617
|
onClick: () => handlePageChange(currentPage - 1),
|
|
31365
31618
|
disabled: currentPage === 1 || localLoading,
|
|
31366
31619
|
className: "px-3 py-1.5 text-sm font-medium rounded-lg border bg-white shadow-sm hover:bg-gray-50 disabled:opacity-50 disabled:cursor-not-allowed transition-all duration-200 flex items-center space-x-1",
|
|
31367
|
-
children: /* @__PURE__ */
|
|
31620
|
+
children: /* @__PURE__ */ jsx67("span", { children: "\u2190 Prev" })
|
|
31368
31621
|
}
|
|
31369
31622
|
),
|
|
31370
|
-
/* @__PURE__ */
|
|
31371
|
-
/* @__PURE__ */
|
|
31623
|
+
/* @__PURE__ */ jsx67("span", { className: "px-3 py-1 text-sm font-medium text-gray-700", children: currentPage }),
|
|
31624
|
+
/* @__PURE__ */ jsx67(
|
|
31372
31625
|
"button",
|
|
31373
31626
|
{
|
|
31374
31627
|
onClick: () => handlePageChange(currentPage + 1),
|
|
31375
31628
|
disabled: currentPage >= rawMeta.pages || localLoading,
|
|
31376
31629
|
className: "px-3 py-1.5 text-sm font-medium rounded-lg border bg-white shadow-sm hover:bg-gray-50 disabled:opacity-50 disabled:cursor-not-allowed transition-all duration-200 flex items-center space-x-1",
|
|
31377
|
-
children: /* @__PURE__ */
|
|
31630
|
+
children: /* @__PURE__ */ jsx67("span", { children: "Next \u2192" })
|
|
31378
31631
|
}
|
|
31379
31632
|
)
|
|
31380
31633
|
] })
|
|
31381
31634
|
] }),
|
|
31382
|
-
/* @__PURE__ */
|
|
31383
|
-
/* @__PURE__ */
|
|
31384
|
-
/* @__PURE__ */
|
|
31635
|
+
/* @__PURE__ */ jsx67(ResponsiveContainer, { width: "100%", height: "100%", children: chartType === "bar" ? /* @__PURE__ */ jsxs40(BarChart, { data, children: [
|
|
31636
|
+
/* @__PURE__ */ jsx67(CartesianGrid, { strokeDasharray: "3 3" }),
|
|
31637
|
+
/* @__PURE__ */ jsx67(
|
|
31385
31638
|
XAxis,
|
|
31386
31639
|
{
|
|
31387
31640
|
dataKey: dataLabel,
|
|
@@ -31399,7 +31652,7 @@ var ChartComponent = ({
|
|
|
31399
31652
|
className: "hidden sm:block"
|
|
31400
31653
|
}
|
|
31401
31654
|
),
|
|
31402
|
-
/* @__PURE__ */
|
|
31655
|
+
/* @__PURE__ */ jsx67(
|
|
31403
31656
|
YAxis,
|
|
31404
31657
|
{
|
|
31405
31658
|
tickFormatter: (value) => `${(value / 1e3).toFixed(0)}k`,
|
|
@@ -31412,9 +31665,9 @@ var ChartComponent = ({
|
|
|
31412
31665
|
width: 60
|
|
31413
31666
|
}
|
|
31414
31667
|
),
|
|
31415
|
-
/* @__PURE__ */
|
|
31416
|
-
/* @__PURE__ */
|
|
31417
|
-
/* @__PURE__ */
|
|
31668
|
+
/* @__PURE__ */ jsx67(Tooltip, { formatter: (value) => [`${value}`, "Count"] }),
|
|
31669
|
+
/* @__PURE__ */ jsx67(Legend, { verticalAlign: legendsPosition, align: "center" }),
|
|
31670
|
+
/* @__PURE__ */ jsx67(
|
|
31418
31671
|
Bar,
|
|
31419
31672
|
{
|
|
31420
31673
|
dataKey,
|
|
@@ -31422,13 +31675,13 @@ var ChartComponent = ({
|
|
|
31422
31675
|
isAnimationActive: false
|
|
31423
31676
|
}
|
|
31424
31677
|
)
|
|
31425
|
-
] }) : /* @__PURE__ */
|
|
31426
|
-
/* @__PURE__ */
|
|
31427
|
-
/* @__PURE__ */
|
|
31428
|
-
/* @__PURE__ */
|
|
31678
|
+
] }) : /* @__PURE__ */ jsxs40(AreaChart, { data, children: [
|
|
31679
|
+
/* @__PURE__ */ jsx67("defs", { children: /* @__PURE__ */ jsxs40("linearGradient", { id: "colorCount", x1: "0", y1: "0", x2: "0", y2: "1", children: [
|
|
31680
|
+
/* @__PURE__ */ jsx67("stop", { offset: "5%", stopColor: "#00695C", stopOpacity: 0.8 }),
|
|
31681
|
+
/* @__PURE__ */ jsx67("stop", { offset: "95%", stopColor: "#00695C", stopOpacity: 0 })
|
|
31429
31682
|
] }) }),
|
|
31430
|
-
/* @__PURE__ */
|
|
31431
|
-
/* @__PURE__ */
|
|
31683
|
+
/* @__PURE__ */ jsx67(CartesianGrid, { strokeDasharray: "3 3" }),
|
|
31684
|
+
/* @__PURE__ */ jsx67(
|
|
31432
31685
|
XAxis,
|
|
31433
31686
|
{
|
|
31434
31687
|
dataKey: dataLabel,
|
|
@@ -31442,7 +31695,7 @@ var ChartComponent = ({
|
|
|
31442
31695
|
}
|
|
31443
31696
|
}
|
|
31444
31697
|
),
|
|
31445
|
-
/* @__PURE__ */
|
|
31698
|
+
/* @__PURE__ */ jsx67(
|
|
31446
31699
|
YAxis,
|
|
31447
31700
|
{
|
|
31448
31701
|
tickFormatter: (value) => `${(value / 1e3).toFixed(0)}k`,
|
|
@@ -31455,8 +31708,8 @@ var ChartComponent = ({
|
|
|
31455
31708
|
width: 60
|
|
31456
31709
|
}
|
|
31457
31710
|
),
|
|
31458
|
-
/* @__PURE__ */
|
|
31459
|
-
/* @__PURE__ */
|
|
31711
|
+
/* @__PURE__ */ jsx67(Tooltip, { formatter: (value) => `${value}k` }),
|
|
31712
|
+
/* @__PURE__ */ jsx67(
|
|
31460
31713
|
Area,
|
|
31461
31714
|
{
|
|
31462
31715
|
type: "monotone",
|
|
@@ -31473,7 +31726,7 @@ var ChartComponent = ({
|
|
|
31473
31726
|
var BarChart_default = React12.memo(ChartComponent);
|
|
31474
31727
|
|
|
31475
31728
|
// src/components/Chart/PieChart.tsx
|
|
31476
|
-
import React13, { useEffect as useEffect26, useMemo as
|
|
31729
|
+
import React13, { useEffect as useEffect26, useMemo as useMemo11, useState as useState13 } from "react";
|
|
31477
31730
|
import axios3 from "axios";
|
|
31478
31731
|
import {
|
|
31479
31732
|
PieChart,
|
|
@@ -31482,7 +31735,7 @@ import {
|
|
|
31482
31735
|
ResponsiveContainer as ResponsiveContainer2,
|
|
31483
31736
|
Tooltip as Tooltip2
|
|
31484
31737
|
} from "recharts";
|
|
31485
|
-
import { jsx as
|
|
31738
|
+
import { jsx as jsx68, jsxs as jsxs41 } from "react/jsx-runtime";
|
|
31486
31739
|
var getRandomColor2 = () => {
|
|
31487
31740
|
const palette = [
|
|
31488
31741
|
"#2563eb",
|
|
@@ -31569,7 +31822,8 @@ var DonutChart = ({
|
|
|
31569
31822
|
const fetchData = async () => {
|
|
31570
31823
|
try {
|
|
31571
31824
|
setLocalLoading(true);
|
|
31572
|
-
const
|
|
31825
|
+
const axiosClient = props.axiosInstance ?? axios3;
|
|
31826
|
+
const res = await axiosClient.get(apiUrl, {
|
|
31573
31827
|
withCredentials: true
|
|
31574
31828
|
});
|
|
31575
31829
|
if (!cancelled) {
|
|
@@ -31598,7 +31852,7 @@ var DonutChart = ({
|
|
|
31598
31852
|
cancelled = true;
|
|
31599
31853
|
};
|
|
31600
31854
|
}, [apiUrl]);
|
|
31601
|
-
const data =
|
|
31855
|
+
const data = useMemo11(() => {
|
|
31602
31856
|
if (!Array.isArray(effectiveData) || effectiveData.length === 0) return [];
|
|
31603
31857
|
return effectiveData.map((item) => ({
|
|
31604
31858
|
...item,
|
|
@@ -31607,11 +31861,11 @@ var DonutChart = ({
|
|
|
31607
31861
|
[dataLabel]: item[dataLabel] ?? "Unknown"
|
|
31608
31862
|
}));
|
|
31609
31863
|
}, [effectiveData, dataKey, dataLabel]);
|
|
31610
|
-
const total =
|
|
31864
|
+
const total = useMemo11(
|
|
31611
31865
|
() => data.reduce((sum, d) => sum + (d[dataKey] ?? 0), 0),
|
|
31612
31866
|
[data, dataKey]
|
|
31613
31867
|
);
|
|
31614
|
-
const formattedTotal =
|
|
31868
|
+
const formattedTotal = useMemo11(() => {
|
|
31615
31869
|
if (total >= 1e6) {
|
|
31616
31870
|
return `${(total / 1e6).toFixed(1)}M`;
|
|
31617
31871
|
}
|
|
@@ -31620,7 +31874,7 @@ var DonutChart = ({
|
|
|
31620
31874
|
}
|
|
31621
31875
|
return total.toString();
|
|
31622
31876
|
}, [total]);
|
|
31623
|
-
const chartData =
|
|
31877
|
+
const chartData = useMemo11(() => {
|
|
31624
31878
|
if (total === 0) return data;
|
|
31625
31879
|
const sortedData = [...data].sort((a, b) => (b[dataKey] ?? 0) - (a[dataKey] ?? 0));
|
|
31626
31880
|
const minAngle = 360 / Math.max(12, sortedData.length);
|
|
@@ -31648,34 +31902,34 @@ var DonutChart = ({
|
|
|
31648
31902
|
const timeout = setTimeout(() => setMounted(true), 100);
|
|
31649
31903
|
return () => clearTimeout(timeout);
|
|
31650
31904
|
}, []);
|
|
31651
|
-
const renderLegends =
|
|
31905
|
+
const renderLegends = useMemo11(() => {
|
|
31652
31906
|
if (!showLegends) return null;
|
|
31653
|
-
return /* @__PURE__ */
|
|
31907
|
+
return /* @__PURE__ */ jsx68("div", { className: "flex flex-wrap justify-center gap-2 mt-4 w-full max-w-4xl", children: chartData.map((d, index) => {
|
|
31654
31908
|
const actualValue = data.find(
|
|
31655
31909
|
(item) => item[dataLabel] === d[dataLabel]
|
|
31656
31910
|
)?.[dataKey] ?? d[dataKey];
|
|
31657
31911
|
const displayValue = actualValue >= 1e3 ? `${(actualValue / 1e3).toFixed(0)}k` : actualValue.toLocaleString();
|
|
31658
|
-
return /* @__PURE__ */
|
|
31912
|
+
return /* @__PURE__ */ jsxs41(
|
|
31659
31913
|
"div",
|
|
31660
31914
|
{
|
|
31661
31915
|
className: "flex items-center space-x-2 rounded-lg border border-gray-200/50 px-3 py-1.5 w-[48%] sm:w-[32%] md:w-auto bg-white/80 backdrop-blur-sm shadow-sm hover:shadow-md transition-all",
|
|
31662
31916
|
children: [
|
|
31663
|
-
/* @__PURE__ */
|
|
31917
|
+
/* @__PURE__ */ jsx68(
|
|
31664
31918
|
"span",
|
|
31665
31919
|
{
|
|
31666
31920
|
className: "inline-block w-[12px] h-[12px] rounded-full shrink-0 border-2 border-white/50",
|
|
31667
31921
|
style: { backgroundColor: d.color }
|
|
31668
31922
|
}
|
|
31669
31923
|
),
|
|
31670
|
-
/* @__PURE__ */
|
|
31671
|
-
/* @__PURE__ */
|
|
31672
|
-
/* @__PURE__ */
|
|
31673
|
-
/* @__PURE__ */
|
|
31674
|
-
/* @__PURE__ */
|
|
31924
|
+
/* @__PURE__ */ jsxs41("div", { className: "min-w-0 flex-1", children: [
|
|
31925
|
+
/* @__PURE__ */ jsx68("span", { className: "text-gray-900 text-[11px] md:text-[13px] font-semibold block truncate leading-tight", children: d[dataLabel] }),
|
|
31926
|
+
/* @__PURE__ */ jsxs41("div", { className: "flex items-center gap-1 text-xs text-gray-600 font-medium", children: [
|
|
31927
|
+
/* @__PURE__ */ jsx68("span", { children: displayValue }),
|
|
31928
|
+
/* @__PURE__ */ jsxs41("span", { children: [
|
|
31675
31929
|
(actualValue / total * 100).toFixed(1),
|
|
31676
31930
|
"%"
|
|
31677
31931
|
] }),
|
|
31678
|
-
d.isBoosted && /* @__PURE__ */
|
|
31932
|
+
d.isBoosted && /* @__PURE__ */ jsx68("span", { className: "text-[9px] px-1 py-0.5 bg-blue-100 text-blue-700 rounded-full", children: "min" })
|
|
31679
31933
|
] })
|
|
31680
31934
|
] })
|
|
31681
31935
|
]
|
|
@@ -31686,26 +31940,26 @@ var DonutChart = ({
|
|
|
31686
31940
|
}, [chartData, data, dataLabel, dataKey, total, showLegends]);
|
|
31687
31941
|
if (!mounted) return null;
|
|
31688
31942
|
if (effectiveLoading || data.length === 0) {
|
|
31689
|
-
return /* @__PURE__ */
|
|
31943
|
+
return /* @__PURE__ */ jsxs41(
|
|
31690
31944
|
"div",
|
|
31691
31945
|
{
|
|
31692
31946
|
className: `relative flex flex-col items-center w-full h-[300px] md:h-[400px] bg-gradient-to-br from-gray-50 to-gray-100 rounded-xl p-6 ${className}`,
|
|
31693
31947
|
style,
|
|
31694
31948
|
children: [
|
|
31695
|
-
/* @__PURE__ */
|
|
31696
|
-
/* @__PURE__ */
|
|
31697
|
-
/* @__PURE__ */
|
|
31698
|
-
/* @__PURE__ */
|
|
31949
|
+
/* @__PURE__ */ jsx68("div", { className: "absolute inset-0 bg-gradient-to-r from-transparent via-white/60 to-transparent animate-shimmer rounded-xl" }),
|
|
31950
|
+
/* @__PURE__ */ jsx68("div", { className: "mt-6 text-center", children: /* @__PURE__ */ jsxs41("div", { className: "inline-flex items-center space-x-2 bg-white/80 px-6 py-2 rounded-full backdrop-blur-sm border border-gray-200 shadow-lg", children: [
|
|
31951
|
+
/* @__PURE__ */ jsx68("div", { className: "w-5 h-5 border-2 border-gray-300 border-t-blue-400 rounded-full animate-spin" }),
|
|
31952
|
+
/* @__PURE__ */ jsx68("span", { className: "text-sm font-medium text-gray-600 bg-gradient-to-r from-gray-300 bg-clip-text animate-pulse", children: "Loading chart data..." })
|
|
31699
31953
|
] }) }),
|
|
31700
|
-
/* @__PURE__ */
|
|
31954
|
+
/* @__PURE__ */ jsx68("div", { className: "flex flex-wrap justify-center gap-3 mt-8 w-full max-w-4xl", children: [...Array(18)].map((_, idx) => /* @__PURE__ */ jsxs41(
|
|
31701
31955
|
"div",
|
|
31702
31956
|
{
|
|
31703
31957
|
className: `h-10 w-[48%] sm:w-[32%] md:w-32 rounded-xl bg-gradient-to-r from-gray-200 via-gray-300/50 to-gray-200 p-3 flex items-center space-x-3 animate-slide-up stagger-${idx} shadow-sm border border-gray-200/50`,
|
|
31704
31958
|
children: [
|
|
31705
|
-
/* @__PURE__ */
|
|
31706
|
-
/* @__PURE__ */
|
|
31707
|
-
/* @__PURE__ */
|
|
31708
|
-
/* @__PURE__ */
|
|
31959
|
+
/* @__PURE__ */ jsx68("div", { className: "w-4 h-4 rounded-full bg-gradient-to-r from-blue-300 to-purple-300 animate-pulse" }),
|
|
31960
|
+
/* @__PURE__ */ jsxs41("div", { className: "flex-1 space-y-1", children: [
|
|
31961
|
+
/* @__PURE__ */ jsx68("div", { className: "h-3 w-20 bg-gray-300 rounded animate-pulse" }),
|
|
31962
|
+
/* @__PURE__ */ jsx68("div", { className: "h-2.5 w-16 bg-gray-200/60 rounded animate-pulse-delayed" })
|
|
31709
31963
|
] })
|
|
31710
31964
|
]
|
|
31711
31965
|
},
|
|
@@ -31718,10 +31972,10 @@ var DonutChart = ({
|
|
|
31718
31972
|
const { inner, outer } = getDynamicRadius();
|
|
31719
31973
|
const innerRadius = inner;
|
|
31720
31974
|
const outerRadius = outer;
|
|
31721
|
-
return /* @__PURE__ */
|
|
31722
|
-
/* @__PURE__ */
|
|
31723
|
-
/* @__PURE__ */
|
|
31724
|
-
/* @__PURE__ */
|
|
31975
|
+
return /* @__PURE__ */ jsxs41("div", { className: `relative flex flex-col items-center ${className}`, style, children: [
|
|
31976
|
+
/* @__PURE__ */ jsxs41("div", { className: "relative w-full md:w-[75%] h-[280px] md:h-[380px] flex items-center justify-center mb-2", children: [
|
|
31977
|
+
/* @__PURE__ */ jsx68(ResponsiveContainer2, { width: "100%", height: "100%", children: /* @__PURE__ */ jsxs41(PieChart, { children: [
|
|
31978
|
+
/* @__PURE__ */ jsx68(
|
|
31725
31979
|
Pie,
|
|
31726
31980
|
{
|
|
31727
31981
|
data: chartData,
|
|
@@ -31734,7 +31988,7 @@ var DonutChart = ({
|
|
|
31734
31988
|
isAnimationActive: true,
|
|
31735
31989
|
animationDuration: 800,
|
|
31736
31990
|
minAngle: 3,
|
|
31737
|
-
children: chartData.map((entry, index) => /* @__PURE__ */
|
|
31991
|
+
children: chartData.map((entry, index) => /* @__PURE__ */ jsx68(
|
|
31738
31992
|
Cell,
|
|
31739
31993
|
{
|
|
31740
31994
|
fill: entry.color,
|
|
@@ -31745,7 +31999,7 @@ var DonutChart = ({
|
|
|
31745
31999
|
))
|
|
31746
32000
|
}
|
|
31747
32001
|
),
|
|
31748
|
-
/* @__PURE__ */
|
|
32002
|
+
/* @__PURE__ */ jsx68(
|
|
31749
32003
|
Tooltip2,
|
|
31750
32004
|
{
|
|
31751
32005
|
formatter: (value, name, payload) => {
|
|
@@ -31768,9 +32022,9 @@ var DonutChart = ({
|
|
|
31768
32022
|
}
|
|
31769
32023
|
)
|
|
31770
32024
|
] }) }),
|
|
31771
|
-
total > 0 && /* @__PURE__ */
|
|
32025
|
+
total > 0 && /* @__PURE__ */ jsx68("div", { className: `absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 text-center pointer-events-none ${forceMobile ? "text-xl px-2" : "text-3xl px-4"} font-bold bg-white/90 backdrop-blur-sm rounded-full py-1 shadow-lg`, children: /* @__PURE__ */ jsxs41("div", { className: "text-[#1f2937] leading-tight", children: [
|
|
31772
32026
|
formattedTotal,
|
|
31773
|
-
/* @__PURE__ */
|
|
32027
|
+
/* @__PURE__ */ jsx68("span", { className: "text-sm md:text-base font-normal text-gray-600 block md:inline-block md:ml-1", children: "total" })
|
|
31774
32028
|
] }) })
|
|
31775
32029
|
] }),
|
|
31776
32030
|
renderLegends
|
|
@@ -31779,10 +32033,10 @@ var DonutChart = ({
|
|
|
31779
32033
|
var PieChart_default = React13.memo(DonutChart);
|
|
31780
32034
|
|
|
31781
32035
|
// src/components/Blocks/EmailComposer.tsx
|
|
31782
|
-
import { jsx as
|
|
32036
|
+
import { jsx as jsx69, jsxs as jsxs42 } from "react/jsx-runtime";
|
|
31783
32037
|
function EmailComposer({ className, style, to, setTo, showCc, setShowCc, showBcc, setShowBcc, cc, setCc, bcc, setBcc, subject, setSubject, body, setBody }) {
|
|
31784
|
-
return /* @__PURE__ */
|
|
31785
|
-
/* @__PURE__ */
|
|
32038
|
+
return /* @__PURE__ */ jsx69("div", { className, style, children: /* @__PURE__ */ jsxs42("div", { className: "border rounded-md shadow bg-[#fff] p-4 mx-auto z-[50] relative", children: [
|
|
32039
|
+
/* @__PURE__ */ jsx69("div", { className: "mb-3", children: /* @__PURE__ */ jsx69(
|
|
31786
32040
|
"input",
|
|
31787
32041
|
{
|
|
31788
32042
|
type: "email",
|
|
@@ -31791,8 +32045,8 @@ function EmailComposer({ className, style, to, setTo, showCc, setShowCc, showBcc
|
|
|
31791
32045
|
required: true
|
|
31792
32046
|
}
|
|
31793
32047
|
) }),
|
|
31794
|
-
/* @__PURE__ */
|
|
31795
|
-
/* @__PURE__ */
|
|
32048
|
+
/* @__PURE__ */ jsx69("div", { className: "mb-3", children: /* @__PURE__ */ jsxs42("div", { className: "flex items-center gap-2", children: [
|
|
32049
|
+
/* @__PURE__ */ jsx69(
|
|
31796
32050
|
"input",
|
|
31797
32051
|
{
|
|
31798
32052
|
type: "email",
|
|
@@ -31803,7 +32057,7 @@ function EmailComposer({ className, style, to, setTo, showCc, setShowCc, showBcc
|
|
|
31803
32057
|
required: true
|
|
31804
32058
|
}
|
|
31805
32059
|
),
|
|
31806
|
-
!showCc && /* @__PURE__ */
|
|
32060
|
+
!showCc && /* @__PURE__ */ jsx69(
|
|
31807
32061
|
"button",
|
|
31808
32062
|
{
|
|
31809
32063
|
onClick: () => setShowCc?.(true),
|
|
@@ -31811,7 +32065,7 @@ function EmailComposer({ className, style, to, setTo, showCc, setShowCc, showBcc
|
|
|
31811
32065
|
children: "Cc"
|
|
31812
32066
|
}
|
|
31813
32067
|
),
|
|
31814
|
-
!showBcc && /* @__PURE__ */
|
|
32068
|
+
!showBcc && /* @__PURE__ */ jsx69(
|
|
31815
32069
|
"button",
|
|
31816
32070
|
{
|
|
31817
32071
|
onClick: () => setShowBcc?.(true),
|
|
@@ -31820,7 +32074,7 @@ function EmailComposer({ className, style, to, setTo, showCc, setShowCc, showBcc
|
|
|
31820
32074
|
}
|
|
31821
32075
|
)
|
|
31822
32076
|
] }) }),
|
|
31823
|
-
showCc && /* @__PURE__ */
|
|
32077
|
+
showCc && /* @__PURE__ */ jsx69("div", { className: "mb-3", children: /* @__PURE__ */ jsx69(
|
|
31824
32078
|
"input",
|
|
31825
32079
|
{
|
|
31826
32080
|
type: "text",
|
|
@@ -31830,7 +32084,7 @@ function EmailComposer({ className, style, to, setTo, showCc, setShowCc, showBcc
|
|
|
31830
32084
|
className: "w-full flex-1 border-2 rounded-md h-[40px] px-3 focus:outline-none border-[#E9E9E9] text-[#383838]"
|
|
31831
32085
|
}
|
|
31832
32086
|
) }),
|
|
31833
|
-
showBcc && /* @__PURE__ */
|
|
32087
|
+
showBcc && /* @__PURE__ */ jsx69("div", { className: "mb-3", children: /* @__PURE__ */ jsx69(
|
|
31834
32088
|
"input",
|
|
31835
32089
|
{
|
|
31836
32090
|
type: "text",
|
|
@@ -31840,7 +32094,7 @@ function EmailComposer({ className, style, to, setTo, showCc, setShowCc, showBcc
|
|
|
31840
32094
|
className: "w-full flex-1 border-2 rounded-md h-[40px] px-3 focus:outline-none border-[#E9E9E9] text-[#383838]"
|
|
31841
32095
|
}
|
|
31842
32096
|
) }),
|
|
31843
|
-
/* @__PURE__ */
|
|
32097
|
+
/* @__PURE__ */ jsx69("div", { className: "mb-3", children: /* @__PURE__ */ jsx69(
|
|
31844
32098
|
"input",
|
|
31845
32099
|
{
|
|
31846
32100
|
type: "text",
|
|
@@ -31850,11 +32104,11 @@ function EmailComposer({ className, style, to, setTo, showCc, setShowCc, showBcc
|
|
|
31850
32104
|
className: "w-full flex-1 border-2 rounded-md h-[40px] px-3 focus:outline-none border-[#E9E9E9] text-[#383838]"
|
|
31851
32105
|
}
|
|
31852
32106
|
) }),
|
|
31853
|
-
/* @__PURE__ */
|
|
31854
|
-
/* @__PURE__ */
|
|
31855
|
-
/* @__PURE__ */
|
|
31856
|
-
/* @__PURE__ */
|
|
31857
|
-
/* @__PURE__ */
|
|
32107
|
+
/* @__PURE__ */ jsx69("div", { className: "mb-4", children: /* @__PURE__ */ jsx69(MyEditor, { value: body, onChange: setBody }) }),
|
|
32108
|
+
/* @__PURE__ */ jsxs42("div", { className: "flex justify-end gap-2", children: [
|
|
32109
|
+
/* @__PURE__ */ jsx69("button", { className: "px-4 py-2 rounded-md text-gray-600 hover:bg-gray-100", children: "Discard" }),
|
|
32110
|
+
/* @__PURE__ */ jsx69("button", { className: "px-4 py-2 rounded-md border text-[#12715B] border-[#12715B]", children: "Reset" }),
|
|
32111
|
+
/* @__PURE__ */ jsx69("button", { className: "px-4 py-2 rounded-md bg-[#12715B] text-white", children: "Send" })
|
|
31858
32112
|
] })
|
|
31859
32113
|
] }) });
|
|
31860
32114
|
}
|
|
@@ -31862,10 +32116,10 @@ function EmailComposer({ className, style, to, setTo, showCc, setShowCc, showBcc
|
|
|
31862
32116
|
// src/components/ui/sonner.tsx
|
|
31863
32117
|
import { useTheme } from "next-themes";
|
|
31864
32118
|
import { Toaster as Sonner } from "sonner";
|
|
31865
|
-
import { jsx as
|
|
32119
|
+
import { jsx as jsx70 } from "react/jsx-runtime";
|
|
31866
32120
|
var Toaster = ({ ...props }) => {
|
|
31867
32121
|
const { theme = "system" } = useTheme();
|
|
31868
|
-
return /* @__PURE__ */
|
|
32122
|
+
return /* @__PURE__ */ jsx70(
|
|
31869
32123
|
Sonner,
|
|
31870
32124
|
{
|
|
31871
32125
|
theme,
|
|
@@ -31896,6 +32150,7 @@ export {
|
|
|
31896
32150
|
FileInput_default as FileInput,
|
|
31897
32151
|
Flex_default as FlexLayout,
|
|
31898
32152
|
Grid_default as GridLayout,
|
|
32153
|
+
HistoryTimeline_default as HistoryTimeline,
|
|
31899
32154
|
Icon_default as Icon,
|
|
31900
32155
|
Image_default as Image,
|
|
31901
32156
|
Modal,
|