@algorithm-shift/design-system 1.2.74 → 1.2.75
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/client.d.mts +4 -4
- package/dist/client.d.ts +4 -4
- package/dist/index.css +116 -0
- package/dist/index.css.map +1 -1
- package/dist/index.d.mts +25 -8
- package/dist/index.d.ts +25 -8
- package/dist/index.js +535 -336
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +551 -353
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -1
package/dist/index.js
CHANGED
|
@@ -51,6 +51,7 @@ __export(src_exports, {
|
|
|
51
51
|
Image: () => Image_default,
|
|
52
52
|
Modal: () => Modal,
|
|
53
53
|
MultiCheckbox: () => MultiCheckbox_default,
|
|
54
|
+
MultiSelect: () => MultiSelect_default,
|
|
54
55
|
Navbar: () => Navbar,
|
|
55
56
|
NumberInput: () => NumberInput_default,
|
|
56
57
|
Pagination: () => Pagination_default,
|
|
@@ -28363,21 +28364,334 @@ var TextInputGroup = ({ className, style, prepend, append, ...props }) => {
|
|
|
28363
28364
|
};
|
|
28364
28365
|
var TextInputGroup_default = TextInputGroup;
|
|
28365
28366
|
|
|
28366
|
-
// src/components/
|
|
28367
|
+
// src/components/Inputs/Multiselect/MultiSelect.tsx
|
|
28367
28368
|
var React7 = __toESM(require("react"));
|
|
28369
|
+
|
|
28370
|
+
// src/components/ui/command.tsx
|
|
28371
|
+
var import_cmdk = require("cmdk");
|
|
28372
|
+
|
|
28373
|
+
// src/components/ui/dialog.tsx
|
|
28374
|
+
var DialogPrimitive = __toESM(require("@radix-ui/react-dialog"));
|
|
28375
|
+
var import_jsx_runtime46 = require("react/jsx-runtime");
|
|
28376
|
+
function Dialog({
|
|
28377
|
+
...props
|
|
28378
|
+
}) {
|
|
28379
|
+
return /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(DialogPrimitive.Root, { "data-slot": "dialog", ...props });
|
|
28380
|
+
}
|
|
28381
|
+
function DialogPortal({
|
|
28382
|
+
...props
|
|
28383
|
+
}) {
|
|
28384
|
+
return /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(DialogPrimitive.Portal, { "data-slot": "dialog-portal", ...props });
|
|
28385
|
+
}
|
|
28386
|
+
function DialogOverlay({
|
|
28387
|
+
className,
|
|
28388
|
+
...props
|
|
28389
|
+
}) {
|
|
28390
|
+
return /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
|
|
28391
|
+
DialogPrimitive.Overlay,
|
|
28392
|
+
{
|
|
28393
|
+
"data-slot": "dialog-overlay",
|
|
28394
|
+
className: cn(
|
|
28395
|
+
"data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-[60] bg-black/50",
|
|
28396
|
+
className
|
|
28397
|
+
),
|
|
28398
|
+
...props
|
|
28399
|
+
}
|
|
28400
|
+
);
|
|
28401
|
+
}
|
|
28402
|
+
function DialogContent({
|
|
28403
|
+
className,
|
|
28404
|
+
children,
|
|
28405
|
+
showCloseButton = true,
|
|
28406
|
+
...props
|
|
28407
|
+
}) {
|
|
28408
|
+
return /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)(DialogPortal, { "data-slot": "dialog-portal", children: [
|
|
28409
|
+
/* @__PURE__ */ (0, import_jsx_runtime46.jsx)(DialogOverlay, {}),
|
|
28410
|
+
/* @__PURE__ */ (0, import_jsx_runtime46.jsxs)(
|
|
28411
|
+
DialogPrimitive.Content,
|
|
28412
|
+
{
|
|
28413
|
+
"data-slot": "dialog-content",
|
|
28414
|
+
className: cn(
|
|
28415
|
+
"bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-[70] grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 sm:max-w-lg",
|
|
28416
|
+
className
|
|
28417
|
+
),
|
|
28418
|
+
...props,
|
|
28419
|
+
children: [
|
|
28420
|
+
children,
|
|
28421
|
+
showCloseButton && /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)(
|
|
28422
|
+
DialogPrimitive.Close,
|
|
28423
|
+
{
|
|
28424
|
+
"data-slot": "dialog-close",
|
|
28425
|
+
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",
|
|
28426
|
+
children: [
|
|
28427
|
+
/* @__PURE__ */ (0, import_jsx_runtime46.jsx)(X, {}),
|
|
28428
|
+
/* @__PURE__ */ (0, import_jsx_runtime46.jsx)("span", { className: "sr-only", children: "Close" })
|
|
28429
|
+
]
|
|
28430
|
+
}
|
|
28431
|
+
)
|
|
28432
|
+
]
|
|
28433
|
+
}
|
|
28434
|
+
)
|
|
28435
|
+
] });
|
|
28436
|
+
}
|
|
28437
|
+
function DialogHeader({ className, ...props }) {
|
|
28438
|
+
return /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
|
|
28439
|
+
"div",
|
|
28440
|
+
{
|
|
28441
|
+
"data-slot": "dialog-header",
|
|
28442
|
+
className: cn("flex flex-col gap-2 text-center sm:text-left", className),
|
|
28443
|
+
...props
|
|
28444
|
+
}
|
|
28445
|
+
);
|
|
28446
|
+
}
|
|
28447
|
+
function DialogFooter({ className, ...props }) {
|
|
28448
|
+
return /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
|
|
28449
|
+
"div",
|
|
28450
|
+
{
|
|
28451
|
+
"data-slot": "dialog-footer",
|
|
28452
|
+
className: cn(
|
|
28453
|
+
"flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",
|
|
28454
|
+
className
|
|
28455
|
+
),
|
|
28456
|
+
...props
|
|
28457
|
+
}
|
|
28458
|
+
);
|
|
28459
|
+
}
|
|
28460
|
+
function DialogTitle({
|
|
28461
|
+
className,
|
|
28462
|
+
...props
|
|
28463
|
+
}) {
|
|
28464
|
+
return /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
|
|
28465
|
+
DialogPrimitive.Title,
|
|
28466
|
+
{
|
|
28467
|
+
"data-slot": "dialog-title",
|
|
28468
|
+
className: cn("text-lg leading-none font-semibold", className),
|
|
28469
|
+
...props
|
|
28470
|
+
}
|
|
28471
|
+
);
|
|
28472
|
+
}
|
|
28473
|
+
function DialogDescription({
|
|
28474
|
+
className,
|
|
28475
|
+
...props
|
|
28476
|
+
}) {
|
|
28477
|
+
return /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
|
|
28478
|
+
DialogPrimitive.Description,
|
|
28479
|
+
{
|
|
28480
|
+
"data-slot": "dialog-description",
|
|
28481
|
+
className: cn("text-muted-foreground text-sm", className),
|
|
28482
|
+
...props
|
|
28483
|
+
}
|
|
28484
|
+
);
|
|
28485
|
+
}
|
|
28486
|
+
|
|
28487
|
+
// src/components/ui/command.tsx
|
|
28488
|
+
var import_jsx_runtime47 = require("react/jsx-runtime");
|
|
28489
|
+
function Command2({
|
|
28490
|
+
className,
|
|
28491
|
+
...props
|
|
28492
|
+
}) {
|
|
28493
|
+
return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
|
|
28494
|
+
import_cmdk.Command,
|
|
28495
|
+
{
|
|
28496
|
+
"data-slot": "command",
|
|
28497
|
+
className: cn(
|
|
28498
|
+
"bg-popover text-popover-foreground flex h-full w-full flex-col overflow-hidden rounded-md",
|
|
28499
|
+
className
|
|
28500
|
+
),
|
|
28501
|
+
...props
|
|
28502
|
+
}
|
|
28503
|
+
);
|
|
28504
|
+
}
|
|
28505
|
+
function CommandInput({
|
|
28506
|
+
className,
|
|
28507
|
+
...props
|
|
28508
|
+
}) {
|
|
28509
|
+
return /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)(
|
|
28510
|
+
"div",
|
|
28511
|
+
{
|
|
28512
|
+
"data-slot": "command-input-wrapper",
|
|
28513
|
+
className: "flex h-9 items-center gap-2 border-b px-3",
|
|
28514
|
+
children: [
|
|
28515
|
+
/* @__PURE__ */ (0, import_jsx_runtime47.jsx)(Search, { className: "size-4 shrink-0 opacity-50" }),
|
|
28516
|
+
/* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
|
|
28517
|
+
import_cmdk.Command.Input,
|
|
28518
|
+
{
|
|
28519
|
+
"data-slot": "command-input",
|
|
28520
|
+
className: cn(
|
|
28521
|
+
"placeholder:text-muted-foreground flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-hidden disabled:cursor-not-allowed disabled:opacity-50",
|
|
28522
|
+
className
|
|
28523
|
+
),
|
|
28524
|
+
...props
|
|
28525
|
+
}
|
|
28526
|
+
)
|
|
28527
|
+
]
|
|
28528
|
+
}
|
|
28529
|
+
);
|
|
28530
|
+
}
|
|
28531
|
+
function CommandList({
|
|
28532
|
+
className,
|
|
28533
|
+
...props
|
|
28534
|
+
}) {
|
|
28535
|
+
return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
|
|
28536
|
+
import_cmdk.Command.List,
|
|
28537
|
+
{
|
|
28538
|
+
"data-slot": "command-list",
|
|
28539
|
+
className: cn(
|
|
28540
|
+
"max-h-[300px] scroll-py-1 overflow-x-hidden overflow-y-auto",
|
|
28541
|
+
className
|
|
28542
|
+
),
|
|
28543
|
+
...props
|
|
28544
|
+
}
|
|
28545
|
+
);
|
|
28546
|
+
}
|
|
28547
|
+
function CommandEmpty({
|
|
28548
|
+
...props
|
|
28549
|
+
}) {
|
|
28550
|
+
return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
|
|
28551
|
+
import_cmdk.Command.Empty,
|
|
28552
|
+
{
|
|
28553
|
+
"data-slot": "command-empty",
|
|
28554
|
+
className: "py-6 text-center text-sm",
|
|
28555
|
+
...props
|
|
28556
|
+
}
|
|
28557
|
+
);
|
|
28558
|
+
}
|
|
28559
|
+
function CommandGroup({
|
|
28560
|
+
className,
|
|
28561
|
+
...props
|
|
28562
|
+
}) {
|
|
28563
|
+
return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
|
|
28564
|
+
import_cmdk.Command.Group,
|
|
28565
|
+
{
|
|
28566
|
+
"data-slot": "command-group",
|
|
28567
|
+
className: cn(
|
|
28568
|
+
"text-foreground [&_[cmdk-group-heading]]:text-muted-foreground overflow-hidden p-1 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium",
|
|
28569
|
+
className
|
|
28570
|
+
),
|
|
28571
|
+
...props
|
|
28572
|
+
}
|
|
28573
|
+
);
|
|
28574
|
+
}
|
|
28575
|
+
function CommandItem({
|
|
28576
|
+
className,
|
|
28577
|
+
...props
|
|
28578
|
+
}) {
|
|
28579
|
+
return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
|
|
28580
|
+
import_cmdk.Command.Item,
|
|
28581
|
+
{
|
|
28582
|
+
"data-slot": "command-item",
|
|
28583
|
+
className: cn(
|
|
28584
|
+
"data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
28585
|
+
className
|
|
28586
|
+
),
|
|
28587
|
+
...props
|
|
28588
|
+
}
|
|
28589
|
+
);
|
|
28590
|
+
}
|
|
28591
|
+
|
|
28592
|
+
// src/components/Inputs/Multiselect/MultiSelect.tsx
|
|
28593
|
+
var import_jsx_runtime48 = require("react/jsx-runtime");
|
|
28594
|
+
var MultiSelect = ({
|
|
28595
|
+
value = [],
|
|
28596
|
+
onChange,
|
|
28597
|
+
data = [],
|
|
28598
|
+
placeholder = "Select...",
|
|
28599
|
+
disabled,
|
|
28600
|
+
searchable = true,
|
|
28601
|
+
className = "",
|
|
28602
|
+
...props
|
|
28603
|
+
}) => {
|
|
28604
|
+
const [open, setOpen] = React7.useState(false);
|
|
28605
|
+
React7.useEffect(() => {
|
|
28606
|
+
if (value) {
|
|
28607
|
+
onChange(value);
|
|
28608
|
+
}
|
|
28609
|
+
}, []);
|
|
28610
|
+
const toggleOption = (val) => {
|
|
28611
|
+
onChange(
|
|
28612
|
+
value?.includes(val) ? value.filter((v) => v !== val) : [...value || [], val]
|
|
28613
|
+
);
|
|
28614
|
+
};
|
|
28615
|
+
const selectedLabels = React7.useMemo(
|
|
28616
|
+
() => data.filter((opt) => value.includes(opt.value)).map((opt) => opt.label),
|
|
28617
|
+
[data, value]
|
|
28618
|
+
);
|
|
28619
|
+
return /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(Popover, { open, onOpenChange: setOpen, children: [
|
|
28620
|
+
/* @__PURE__ */ (0, import_jsx_runtime48.jsx)(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(
|
|
28621
|
+
Button,
|
|
28622
|
+
{
|
|
28623
|
+
variant: "outline",
|
|
28624
|
+
role: "combobox",
|
|
28625
|
+
className: `w-full justify-between ${className} ${props.errorMessage ? "border-red-500" : ""}`,
|
|
28626
|
+
disabled,
|
|
28627
|
+
type: "button",
|
|
28628
|
+
children: [
|
|
28629
|
+
/* @__PURE__ */ (0, import_jsx_runtime48.jsx)("span", { className: "truncate", children: selectedLabels.length > 0 ? selectedLabels.join(", ") : placeholder }),
|
|
28630
|
+
/* @__PURE__ */ (0, import_jsx_runtime48.jsx)(ChevronsUpDown, { className: "ml-2 h-4 w-4 shrink-0 opacity-50" })
|
|
28631
|
+
]
|
|
28632
|
+
}
|
|
28633
|
+
) }),
|
|
28634
|
+
/* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
|
|
28635
|
+
PopoverContent,
|
|
28636
|
+
{
|
|
28637
|
+
align: "start",
|
|
28638
|
+
className: "w-[var(--radix-popover-trigger-width)] p-0",
|
|
28639
|
+
onOpenAutoFocus: (e) => e.preventDefault(),
|
|
28640
|
+
onInteractOutside: (e) => {
|
|
28641
|
+
if (e.target.closest(".keep-open")) e.preventDefault();
|
|
28642
|
+
},
|
|
28643
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(Command2, { shouldFilter: searchable, children: [
|
|
28644
|
+
searchable && /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(CommandInput, { placeholder: "Search..." }),
|
|
28645
|
+
/* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(CommandList, { children: [
|
|
28646
|
+
/* @__PURE__ */ (0, import_jsx_runtime48.jsx)(CommandEmpty, { children: "No options found." }),
|
|
28647
|
+
/* @__PURE__ */ (0, import_jsx_runtime48.jsx)(CommandGroup, { children: data.map((opt) => {
|
|
28648
|
+
const isSelected = value.includes(opt.value);
|
|
28649
|
+
return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
|
|
28650
|
+
"div",
|
|
28651
|
+
{
|
|
28652
|
+
className: "keep-open",
|
|
28653
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
|
|
28654
|
+
CommandItem,
|
|
28655
|
+
{
|
|
28656
|
+
onMouseDown: (e) => {
|
|
28657
|
+
e.preventDefault();
|
|
28658
|
+
toggleOption(opt.value);
|
|
28659
|
+
},
|
|
28660
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)("div", { className: "flex items-center gap-2", children: [
|
|
28661
|
+
/* @__PURE__ */ (0, import_jsx_runtime48.jsx)(Checkbox, { checked: isSelected }),
|
|
28662
|
+
/* @__PURE__ */ (0, import_jsx_runtime48.jsx)("span", { children: opt.label })
|
|
28663
|
+
] })
|
|
28664
|
+
},
|
|
28665
|
+
opt.value
|
|
28666
|
+
)
|
|
28667
|
+
},
|
|
28668
|
+
opt.value
|
|
28669
|
+
);
|
|
28670
|
+
}) })
|
|
28671
|
+
] })
|
|
28672
|
+
] })
|
|
28673
|
+
}
|
|
28674
|
+
),
|
|
28675
|
+
props.errorMessage && /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("p", { className: "mt-1 text-xs text-red-500", children: props.errorMessage })
|
|
28676
|
+
] });
|
|
28677
|
+
};
|
|
28678
|
+
var MultiSelect_default = MultiSelect;
|
|
28679
|
+
|
|
28680
|
+
// src/components/ui/data-table.tsx
|
|
28681
|
+
var React8 = __toESM(require("react"));
|
|
28368
28682
|
var import_free_solid_svg_icons2 = require("@fortawesome/free-solid-svg-icons");
|
|
28369
28683
|
var import_react_fontawesome3 = require("@fortawesome/react-fontawesome");
|
|
28370
28684
|
var import_react_table = require("@tanstack/react-table");
|
|
28371
28685
|
|
|
28372
28686
|
// src/components/ui/table.tsx
|
|
28373
|
-
var
|
|
28687
|
+
var import_jsx_runtime49 = require("react/jsx-runtime");
|
|
28374
28688
|
function Table3({ className, ...props }) {
|
|
28375
|
-
return /* @__PURE__ */ (0,
|
|
28689
|
+
return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
|
|
28376
28690
|
"div",
|
|
28377
28691
|
{
|
|
28378
28692
|
"data-slot": "table-container",
|
|
28379
28693
|
className: "relative w-full overflow-x-auto rounded-md border border-gray-200 bg-white",
|
|
28380
|
-
children: /* @__PURE__ */ (0,
|
|
28694
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
|
|
28381
28695
|
"table",
|
|
28382
28696
|
{
|
|
28383
28697
|
"data-slot": "table",
|
|
@@ -28389,7 +28703,7 @@ function Table3({ className, ...props }) {
|
|
|
28389
28703
|
);
|
|
28390
28704
|
}
|
|
28391
28705
|
function TableHeader({ className, ...props }) {
|
|
28392
|
-
return /* @__PURE__ */ (0,
|
|
28706
|
+
return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
|
|
28393
28707
|
"thead",
|
|
28394
28708
|
{
|
|
28395
28709
|
"data-slot": "table-header",
|
|
@@ -28402,7 +28716,7 @@ function TableHeader({ className, ...props }) {
|
|
|
28402
28716
|
);
|
|
28403
28717
|
}
|
|
28404
28718
|
function TableBody({ className, ...props }) {
|
|
28405
|
-
return /* @__PURE__ */ (0,
|
|
28719
|
+
return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
|
|
28406
28720
|
"tbody",
|
|
28407
28721
|
{
|
|
28408
28722
|
"data-slot": "table-body",
|
|
@@ -28415,7 +28729,7 @@ function TableBody({ className, ...props }) {
|
|
|
28415
28729
|
);
|
|
28416
28730
|
}
|
|
28417
28731
|
function TableRow({ className, ...props }) {
|
|
28418
|
-
return /* @__PURE__ */ (0,
|
|
28732
|
+
return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
|
|
28419
28733
|
"tr",
|
|
28420
28734
|
{
|
|
28421
28735
|
"data-slot": "table-row",
|
|
@@ -28428,7 +28742,7 @@ function TableRow({ className, ...props }) {
|
|
|
28428
28742
|
);
|
|
28429
28743
|
}
|
|
28430
28744
|
function TableHead({ className, ...props }) {
|
|
28431
|
-
return /* @__PURE__ */ (0,
|
|
28745
|
+
return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
|
|
28432
28746
|
"th",
|
|
28433
28747
|
{
|
|
28434
28748
|
"data-slot": "table-head",
|
|
@@ -28441,7 +28755,7 @@ function TableHead({ className, ...props }) {
|
|
|
28441
28755
|
);
|
|
28442
28756
|
}
|
|
28443
28757
|
function TableCell({ className, ...props }) {
|
|
28444
|
-
return /* @__PURE__ */ (0,
|
|
28758
|
+
return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
|
|
28445
28759
|
"td",
|
|
28446
28760
|
{
|
|
28447
28761
|
"data-slot": "table-cell",
|
|
@@ -28455,7 +28769,7 @@ function TableCell({ className, ...props }) {
|
|
|
28455
28769
|
}
|
|
28456
28770
|
|
|
28457
28771
|
// src/components/ui/data-table.tsx
|
|
28458
|
-
var
|
|
28772
|
+
var import_jsx_runtime50 = require("react/jsx-runtime");
|
|
28459
28773
|
function DataTable({
|
|
28460
28774
|
columns,
|
|
28461
28775
|
data,
|
|
@@ -28472,10 +28786,10 @@ function DataTable({
|
|
|
28472
28786
|
globalSearch,
|
|
28473
28787
|
onCellClick
|
|
28474
28788
|
}) {
|
|
28475
|
-
const [columnFilters, setColumnFilters] =
|
|
28476
|
-
const [columnVisibility, setColumnVisibility] =
|
|
28477
|
-
const [manualSort, setManualSort] =
|
|
28478
|
-
const [searchTerm, setSearchTerm] =
|
|
28789
|
+
const [columnFilters, setColumnFilters] = React8.useState([]);
|
|
28790
|
+
const [columnVisibility, setColumnVisibility] = React8.useState({});
|
|
28791
|
+
const [manualSort, setManualSort] = React8.useState(null);
|
|
28792
|
+
const [searchTerm, setSearchTerm] = React8.useState("");
|
|
28479
28793
|
const table = (0, import_react_table.useReactTable)({
|
|
28480
28794
|
data,
|
|
28481
28795
|
columns,
|
|
@@ -28523,11 +28837,11 @@ function DataTable({
|
|
|
28523
28837
|
}
|
|
28524
28838
|
return [];
|
|
28525
28839
|
};
|
|
28526
|
-
return /* @__PURE__ */ (0,
|
|
28527
|
-
/* @__PURE__ */ (0,
|
|
28528
|
-
globalSearch && /* @__PURE__ */ (0,
|
|
28529
|
-
/* @__PURE__ */ (0,
|
|
28530
|
-
/* @__PURE__ */ (0,
|
|
28840
|
+
return /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("div", { className: "overflow-hidden rounded-md w-full", children: [
|
|
28841
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("div", { className: `flex ${globalSearch ? "justify-between" : "justify-end"} p-2 bg-gray-50`, children: [
|
|
28842
|
+
globalSearch && /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("div", { className: "flex items-center gap-2 w-full max-w-sm", children: [
|
|
28843
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("div", { className: "relative w-full", children: [
|
|
28844
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
28531
28845
|
"input",
|
|
28532
28846
|
{
|
|
28533
28847
|
type: "text",
|
|
@@ -28542,9 +28856,9 @@ function DataTable({
|
|
|
28542
28856
|
className: "border border-gray-300 rounded-md text-sm px-3 py-2 pl-8 w-full focus:outline-none focus:ring-1 focus:ring-[#12715B]"
|
|
28543
28857
|
}
|
|
28544
28858
|
),
|
|
28545
|
-
/* @__PURE__ */ (0,
|
|
28859
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)(Search, { className: "absolute left-2 top-2.5 text-gray-400", size: 16 })
|
|
28546
28860
|
] }),
|
|
28547
|
-
/* @__PURE__ */ (0,
|
|
28861
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
28548
28862
|
Button,
|
|
28549
28863
|
{
|
|
28550
28864
|
size: "sm",
|
|
@@ -28554,8 +28868,8 @@ function DataTable({
|
|
|
28554
28868
|
}
|
|
28555
28869
|
)
|
|
28556
28870
|
] }),
|
|
28557
|
-
/* @__PURE__ */ (0,
|
|
28558
|
-
/* @__PURE__ */ (0,
|
|
28871
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(Popover, { children: [
|
|
28872
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
28559
28873
|
Button,
|
|
28560
28874
|
{
|
|
28561
28875
|
variant: "outline",
|
|
@@ -28564,10 +28878,10 @@ function DataTable({
|
|
|
28564
28878
|
children: "Manage Columns"
|
|
28565
28879
|
}
|
|
28566
28880
|
) }),
|
|
28567
|
-
/* @__PURE__ */ (0,
|
|
28568
|
-
/* @__PURE__ */ (0,
|
|
28569
|
-
/* @__PURE__ */ (0,
|
|
28570
|
-
/* @__PURE__ */ (0,
|
|
28881
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(PopoverContent, { align: "end", className: "w-48 p-3 space-y-2", children: [
|
|
28882
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)("div", { className: "text-sm font-medium mb-2", children: "Show / Hide Columns" }),
|
|
28883
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("label", { className: "flex items-center gap-2 text-sm font-semibold border-b pb-2 mb-2", children: [
|
|
28884
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
28571
28885
|
"input",
|
|
28572
28886
|
{
|
|
28573
28887
|
type: "checkbox",
|
|
@@ -28586,8 +28900,8 @@ function DataTable({
|
|
|
28586
28900
|
),
|
|
28587
28901
|
"Toggle All"
|
|
28588
28902
|
] }),
|
|
28589
|
-
table.getAllLeafColumns().map((column) => /* @__PURE__ */ (0,
|
|
28590
|
-
/* @__PURE__ */ (0,
|
|
28903
|
+
table.getAllLeafColumns().map((column) => /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("label", { className: "flex items-center gap-2 text-sm", children: [
|
|
28904
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
28591
28905
|
"input",
|
|
28592
28906
|
{
|
|
28593
28907
|
type: "checkbox",
|
|
@@ -28600,13 +28914,13 @@ function DataTable({
|
|
|
28600
28914
|
] })
|
|
28601
28915
|
] })
|
|
28602
28916
|
] }),
|
|
28603
|
-
/* @__PURE__ */ (0,
|
|
28604
|
-
/* @__PURE__ */ (0,
|
|
28917
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(Table3, { children: [
|
|
28918
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)(TableHeader, { children: table.getHeaderGroups().map((hg) => /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(TableRow, { children: hg.headers.map((header) => {
|
|
28605
28919
|
const canSort = header.column.getCanSort();
|
|
28606
28920
|
const canFilter = header.column.getCanFilter();
|
|
28607
28921
|
const sortDir = manualSort?.key === header.column.id ? manualSort.dir : null;
|
|
28608
|
-
return /* @__PURE__ */ (0,
|
|
28609
|
-
/* @__PURE__ */ (0,
|
|
28922
|
+
return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(TableHead, { className: "relative select-none", children: /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("div", { className: "flex items-center justify-between", children: [
|
|
28923
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(
|
|
28610
28924
|
"span",
|
|
28611
28925
|
{
|
|
28612
28926
|
className: `flex items-center gap-1 ${canSort ? "cursor-pointer" : ""}`,
|
|
@@ -28618,32 +28932,32 @@ function DataTable({
|
|
|
28618
28932
|
},
|
|
28619
28933
|
children: [
|
|
28620
28934
|
(0, import_react_table.flexRender)(header.column.columnDef.header, header.getContext()),
|
|
28621
|
-
canSort && /* @__PURE__ */ (0,
|
|
28622
|
-
sortDir === "asc" && /* @__PURE__ */ (0,
|
|
28623
|
-
sortDir === "desc" && /* @__PURE__ */ (0,
|
|
28624
|
-
!sortDir && /* @__PURE__ */ (0,
|
|
28935
|
+
canSort && /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(import_jsx_runtime50.Fragment, { children: [
|
|
28936
|
+
sortDir === "asc" && /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(ArrowUp, { size: 14, className: "text-gray-500" }),
|
|
28937
|
+
sortDir === "desc" && /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(ArrowDown, { size: 14, className: "text-gray-500" }),
|
|
28938
|
+
!sortDir && /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(ArrowUpDown, { size: 14, className: "text-gray-400" })
|
|
28625
28939
|
] })
|
|
28626
28940
|
]
|
|
28627
28941
|
}
|
|
28628
28942
|
),
|
|
28629
|
-
canFilter && /* @__PURE__ */ (0,
|
|
28630
|
-
/* @__PURE__ */ (0,
|
|
28943
|
+
canFilter && /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(Popover, { children: [
|
|
28944
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
28631
28945
|
"span",
|
|
28632
28946
|
{
|
|
28633
28947
|
role: "presentation",
|
|
28634
28948
|
className: "pl-5 cursor-pointer",
|
|
28635
28949
|
onClick: (e) => e.stopPropagation(),
|
|
28636
|
-
children: /* @__PURE__ */ (0,
|
|
28950
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_react_fontawesome3.FontAwesomeIcon, { icon: import_free_solid_svg_icons2.faEllipsisH, className: "w-5 h-5 text-gray-500" })
|
|
28637
28951
|
}
|
|
28638
28952
|
) }),
|
|
28639
|
-
/* @__PURE__ */ (0,
|
|
28953
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
28640
28954
|
PopoverContent,
|
|
28641
28955
|
{
|
|
28642
28956
|
align: "center",
|
|
28643
28957
|
sideOffset: 14,
|
|
28644
28958
|
className: "w-50 p-3 z-[200] border-gray-300",
|
|
28645
28959
|
avoidCollisions: true,
|
|
28646
|
-
children: /* @__PURE__ */ (0,
|
|
28960
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(
|
|
28647
28961
|
"form",
|
|
28648
28962
|
{
|
|
28649
28963
|
onSubmit: (e) => {
|
|
@@ -28656,8 +28970,8 @@ function DataTable({
|
|
|
28656
28970
|
},
|
|
28657
28971
|
className: "space-y-2",
|
|
28658
28972
|
children: [
|
|
28659
|
-
/* @__PURE__ */ (0,
|
|
28660
|
-
/* @__PURE__ */ (0,
|
|
28973
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)("label", { htmlFor: "filter", className: "text-xs text-gray-500 font-normal", children: "Filter by value:" }),
|
|
28974
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
28661
28975
|
"input",
|
|
28662
28976
|
{
|
|
28663
28977
|
name: "filter",
|
|
@@ -28667,7 +28981,7 @@ function DataTable({
|
|
|
28667
28981
|
autoComplete: "off"
|
|
28668
28982
|
}
|
|
28669
28983
|
),
|
|
28670
|
-
/* @__PURE__ */ (0,
|
|
28984
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)("div", { className: "justify-end flex", children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
28671
28985
|
Button,
|
|
28672
28986
|
{
|
|
28673
28987
|
type: "submit",
|
|
@@ -28683,10 +28997,10 @@ function DataTable({
|
|
|
28683
28997
|
] })
|
|
28684
28998
|
] }) }, header.id);
|
|
28685
28999
|
}) }, hg.id)) }),
|
|
28686
|
-
/* @__PURE__ */ (0,
|
|
29000
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)(TableBody, { children: loading ? /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(TableRow, { children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(TableCell, { colSpan: columns.length, className: "h-24 text-center", children: "Loading..." }) }) : table.getRowModel().rows.length ? table.getRowModel().rows.map((row) => /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(TableRow, { children: row.getVisibleCells().map((cell) => {
|
|
28687
29001
|
const meta = cell.column.columnDef.meta || {};
|
|
28688
29002
|
const isClickable = meta?.isClickable;
|
|
28689
|
-
return /* @__PURE__ */ (0,
|
|
29003
|
+
return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
28690
29004
|
TableCell,
|
|
28691
29005
|
{
|
|
28692
29006
|
className: `${meta?.cellClass ?? ""} ${isClickable ? "cursor-pointer hover:bg-gray-100 underline" : ""}`,
|
|
@@ -28700,17 +29014,17 @@ function DataTable({
|
|
|
28700
29014
|
},
|
|
28701
29015
|
cell.id
|
|
28702
29016
|
);
|
|
28703
|
-
}) }, row.id)) : /* @__PURE__ */ (0,
|
|
29017
|
+
}) }, row.id)) : /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(TableRow, { children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(TableCell, { colSpan: columns.length, className: "h-24 text-center", children: "No results." }) }) })
|
|
28704
29018
|
] }),
|
|
28705
|
-
pagination && /* @__PURE__ */ (0,
|
|
28706
|
-
/* @__PURE__ */ (0,
|
|
29019
|
+
pagination && /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("div", { className: "flex items-center justify-between py-3 px-2 text-sm w-full", children: [
|
|
29020
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("div", { children: [
|
|
28707
29021
|
"Page ",
|
|
28708
29022
|
table.getState().pagination.pageIndex + 1,
|
|
28709
29023
|
" of ",
|
|
28710
29024
|
table.getPageCount()
|
|
28711
29025
|
] }),
|
|
28712
|
-
/* @__PURE__ */ (0,
|
|
28713
|
-
/* @__PURE__ */ (0,
|
|
29026
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("div", { className: "flex items-center gap-2", children: [
|
|
29027
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
28714
29028
|
"button",
|
|
28715
29029
|
{
|
|
28716
29030
|
onClick: () => table.previousPage(),
|
|
@@ -28723,7 +29037,7 @@ function DataTable({
|
|
|
28723
29037
|
table.getState().pagination.pageIndex + 1,
|
|
28724
29038
|
table.getPageCount(),
|
|
28725
29039
|
5
|
|
28726
|
-
).map((pageNum, index) => /* @__PURE__ */ (0,
|
|
29040
|
+
).map((pageNum, index) => /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
28727
29041
|
"button",
|
|
28728
29042
|
{
|
|
28729
29043
|
disabled: pageNum === "...",
|
|
@@ -28733,7 +29047,7 @@ function DataTable({
|
|
|
28733
29047
|
},
|
|
28734
29048
|
index
|
|
28735
29049
|
)),
|
|
28736
|
-
/* @__PURE__ */ (0,
|
|
29050
|
+
/* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
28737
29051
|
"button",
|
|
28738
29052
|
{
|
|
28739
29053
|
onClick: () => table.nextPage(),
|
|
@@ -28748,7 +29062,7 @@ function DataTable({
|
|
|
28748
29062
|
}
|
|
28749
29063
|
|
|
28750
29064
|
// src/components/DataDisplay/Table/Table.tsx
|
|
28751
|
-
var
|
|
29065
|
+
var import_jsx_runtime51 = require("react/jsx-runtime");
|
|
28752
29066
|
var Table4 = ({
|
|
28753
29067
|
columns,
|
|
28754
29068
|
data,
|
|
@@ -28771,7 +29085,7 @@ var Table4 = ({
|
|
|
28771
29085
|
const rawColumns = Array.isArray(columns) ? columns : [];
|
|
28772
29086
|
const rawData = Array.isArray(data) ? data : [];
|
|
28773
29087
|
const isControlled = typeof page === "number";
|
|
28774
|
-
return /* @__PURE__ */ (0,
|
|
29088
|
+
return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("div", { className: `${className || ""} space-y-3`, style, children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
|
|
28775
29089
|
DataTable,
|
|
28776
29090
|
{
|
|
28777
29091
|
...props,
|
|
@@ -28800,9 +29114,9 @@ var Table4 = ({
|
|
|
28800
29114
|
var Table_default = Table4;
|
|
28801
29115
|
|
|
28802
29116
|
// src/components/ui/pagination.tsx
|
|
28803
|
-
var
|
|
29117
|
+
var import_jsx_runtime52 = require("react/jsx-runtime");
|
|
28804
29118
|
function Pagination({ className, ...props }) {
|
|
28805
|
-
return /* @__PURE__ */ (0,
|
|
29119
|
+
return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
|
|
28806
29120
|
"nav",
|
|
28807
29121
|
{
|
|
28808
29122
|
role: "navigation",
|
|
@@ -28817,7 +29131,7 @@ function PaginationContent({
|
|
|
28817
29131
|
className,
|
|
28818
29132
|
...props
|
|
28819
29133
|
}) {
|
|
28820
|
-
return /* @__PURE__ */ (0,
|
|
29134
|
+
return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
|
|
28821
29135
|
"ul",
|
|
28822
29136
|
{
|
|
28823
29137
|
"data-slot": "pagination-content",
|
|
@@ -28827,7 +29141,7 @@ function PaginationContent({
|
|
|
28827
29141
|
);
|
|
28828
29142
|
}
|
|
28829
29143
|
function PaginationItem({ ...props }) {
|
|
28830
|
-
return /* @__PURE__ */ (0,
|
|
29144
|
+
return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("li", { "data-slot": "pagination-item", ...props });
|
|
28831
29145
|
}
|
|
28832
29146
|
function PaginationLink({
|
|
28833
29147
|
className,
|
|
@@ -28835,7 +29149,7 @@ function PaginationLink({
|
|
|
28835
29149
|
size = "icon",
|
|
28836
29150
|
...props
|
|
28837
29151
|
}) {
|
|
28838
|
-
return /* @__PURE__ */ (0,
|
|
29152
|
+
return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
|
|
28839
29153
|
"a",
|
|
28840
29154
|
{
|
|
28841
29155
|
"aria-current": isActive ? "page" : void 0,
|
|
@@ -28856,7 +29170,7 @@ function PaginationPrevious({
|
|
|
28856
29170
|
className,
|
|
28857
29171
|
...props
|
|
28858
29172
|
}) {
|
|
28859
|
-
return /* @__PURE__ */ (0,
|
|
29173
|
+
return /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(
|
|
28860
29174
|
PaginationLink,
|
|
28861
29175
|
{
|
|
28862
29176
|
"aria-label": "Go to previous page",
|
|
@@ -28864,8 +29178,8 @@ function PaginationPrevious({
|
|
|
28864
29178
|
className: cn("gap-1 px-2.5 sm:pl-2.5", className),
|
|
28865
29179
|
...props,
|
|
28866
29180
|
children: [
|
|
28867
|
-
/* @__PURE__ */ (0,
|
|
28868
|
-
/* @__PURE__ */ (0,
|
|
29181
|
+
/* @__PURE__ */ (0, import_jsx_runtime52.jsx)(ChevronLeft, {}),
|
|
29182
|
+
/* @__PURE__ */ (0, import_jsx_runtime52.jsx)("span", { className: "hidden sm:block", children: "Previous" })
|
|
28869
29183
|
]
|
|
28870
29184
|
}
|
|
28871
29185
|
);
|
|
@@ -28874,7 +29188,7 @@ function PaginationNext({
|
|
|
28874
29188
|
className,
|
|
28875
29189
|
...props
|
|
28876
29190
|
}) {
|
|
28877
|
-
return /* @__PURE__ */ (0,
|
|
29191
|
+
return /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(
|
|
28878
29192
|
PaginationLink,
|
|
28879
29193
|
{
|
|
28880
29194
|
"aria-label": "Go to next page",
|
|
@@ -28882,8 +29196,8 @@ function PaginationNext({
|
|
|
28882
29196
|
className: cn("gap-1 px-2.5 sm:pr-2.5", className),
|
|
28883
29197
|
...props,
|
|
28884
29198
|
children: [
|
|
28885
|
-
/* @__PURE__ */ (0,
|
|
28886
|
-
/* @__PURE__ */ (0,
|
|
29199
|
+
/* @__PURE__ */ (0, import_jsx_runtime52.jsx)("span", { className: "hidden sm:block", children: "Next" }),
|
|
29200
|
+
/* @__PURE__ */ (0, import_jsx_runtime52.jsx)(ChevronRight, {})
|
|
28887
29201
|
]
|
|
28888
29202
|
}
|
|
28889
29203
|
);
|
|
@@ -28892,7 +29206,7 @@ function PaginationEllipsis({
|
|
|
28892
29206
|
className,
|
|
28893
29207
|
...props
|
|
28894
29208
|
}) {
|
|
28895
|
-
return /* @__PURE__ */ (0,
|
|
29209
|
+
return /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(
|
|
28896
29210
|
"span",
|
|
28897
29211
|
{
|
|
28898
29212
|
"aria-hidden": true,
|
|
@@ -28900,15 +29214,15 @@ function PaginationEllipsis({
|
|
|
28900
29214
|
className: cn("flex size-9 items-center justify-center", className),
|
|
28901
29215
|
...props,
|
|
28902
29216
|
children: [
|
|
28903
|
-
/* @__PURE__ */ (0,
|
|
28904
|
-
/* @__PURE__ */ (0,
|
|
29217
|
+
/* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Ellipsis, { className: "size-4" }),
|
|
29218
|
+
/* @__PURE__ */ (0, import_jsx_runtime52.jsx)("span", { className: "sr-only", children: "More pages" })
|
|
28905
29219
|
]
|
|
28906
29220
|
}
|
|
28907
29221
|
);
|
|
28908
29222
|
}
|
|
28909
29223
|
|
|
28910
29224
|
// src/components/DataDisplay/Pagination/Pagination.tsx
|
|
28911
|
-
var
|
|
29225
|
+
var import_jsx_runtime53 = require("react/jsx-runtime");
|
|
28912
29226
|
var CustomPagination = ({
|
|
28913
29227
|
totalPages,
|
|
28914
29228
|
currentPage,
|
|
@@ -28954,10 +29268,10 @@ var CustomPagination = ({
|
|
|
28954
29268
|
}
|
|
28955
29269
|
};
|
|
28956
29270
|
const pageNumbers = getPageNumbers();
|
|
28957
|
-
return /* @__PURE__ */ (0,
|
|
28958
|
-
/* @__PURE__ */ (0,
|
|
28959
|
-
/* @__PURE__ */ (0,
|
|
28960
|
-
/* @__PURE__ */ (0,
|
|
29271
|
+
return /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("div", { className: "flex flex-row gap-1 w-full items-center justify-between", children: [
|
|
29272
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("div", { className: "flex items-center gap-2", children: [
|
|
29273
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)("p", { className: "text-sm text-muted-foreground whitespace-nowrap", children: "Items per page:" }),
|
|
29274
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(
|
|
28961
29275
|
Select,
|
|
28962
29276
|
{
|
|
28963
29277
|
defaultValue: String(perPage),
|
|
@@ -28965,26 +29279,26 @@ var CustomPagination = ({
|
|
|
28965
29279
|
onPageChange({ page: 1, itemsPerPage: Number(value) });
|
|
28966
29280
|
},
|
|
28967
29281
|
children: [
|
|
28968
|
-
/* @__PURE__ */ (0,
|
|
28969
|
-
/* @__PURE__ */ (0,
|
|
28970
|
-
/* @__PURE__ */ (0,
|
|
28971
|
-
/* @__PURE__ */ (0,
|
|
28972
|
-
/* @__PURE__ */ (0,
|
|
28973
|
-
/* @__PURE__ */ (0,
|
|
29282
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)(SelectTrigger, { className: "w-[100px]", children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(SelectValue, { placeholder: "Select" }) }),
|
|
29283
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(SelectContent, { children: [
|
|
29284
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)(SelectItem, { value: "5", children: "5" }),
|
|
29285
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)(SelectItem, { value: "10", children: "10" }),
|
|
29286
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)(SelectItem, { value: "20", children: "20" }),
|
|
29287
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)(SelectItem, { value: "50", children: "50" })
|
|
28974
29288
|
] })
|
|
28975
29289
|
]
|
|
28976
29290
|
}
|
|
28977
29291
|
)
|
|
28978
29292
|
] }),
|
|
28979
|
-
/* @__PURE__ */ (0,
|
|
28980
|
-
/* @__PURE__ */ (0,
|
|
29293
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Pagination, { className: "justify-end", children: /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(PaginationContent, { children: [
|
|
29294
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)(PaginationItem, { children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
|
|
28981
29295
|
PaginationPrevious,
|
|
28982
29296
|
{
|
|
28983
29297
|
onClick: () => handlePageChange(currentPage - 1),
|
|
28984
29298
|
className: currentPage === 1 ? "pointer-events-none opacity-50" : "cursor-pointer"
|
|
28985
29299
|
}
|
|
28986
29300
|
) }),
|
|
28987
|
-
pageNumbers.map((pageNumber, index) => /* @__PURE__ */ (0,
|
|
29301
|
+
pageNumbers.map((pageNumber, index) => /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(PaginationItem, { children: pageNumber === "..." ? /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(PaginationEllipsis, {}) : /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
|
|
28988
29302
|
PaginationLink,
|
|
28989
29303
|
{
|
|
28990
29304
|
onClick: () => handlePageChange(pageNumber),
|
|
@@ -28993,7 +29307,7 @@ var CustomPagination = ({
|
|
|
28993
29307
|
children: pageNumber
|
|
28994
29308
|
}
|
|
28995
29309
|
) }, index)),
|
|
28996
|
-
/* @__PURE__ */ (0,
|
|
29310
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)(PaginationItem, { children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
|
|
28997
29311
|
PaginationNext,
|
|
28998
29312
|
{
|
|
28999
29313
|
onClick: () => handlePageChange(currentPage + 1),
|
|
@@ -29008,124 +29322,8 @@ var Pagination_default = CustomPagination;
|
|
|
29008
29322
|
// src/components/Navigation/Tabs/Tabs.tsx
|
|
29009
29323
|
var import_link5 = __toESM(require("next/link"));
|
|
29010
29324
|
var import_navigation3 = require("next/navigation");
|
|
29011
|
-
|
|
29012
|
-
// src/components/ui/dialog.tsx
|
|
29013
|
-
var DialogPrimitive = __toESM(require("@radix-ui/react-dialog"));
|
|
29014
|
-
var import_jsx_runtime51 = require("react/jsx-runtime");
|
|
29015
|
-
function Dialog({
|
|
29016
|
-
...props
|
|
29017
|
-
}) {
|
|
29018
|
-
return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(DialogPrimitive.Root, { "data-slot": "dialog", ...props });
|
|
29019
|
-
}
|
|
29020
|
-
function DialogPortal({
|
|
29021
|
-
...props
|
|
29022
|
-
}) {
|
|
29023
|
-
return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(DialogPrimitive.Portal, { "data-slot": "dialog-portal", ...props });
|
|
29024
|
-
}
|
|
29025
|
-
function DialogOverlay({
|
|
29026
|
-
className,
|
|
29027
|
-
...props
|
|
29028
|
-
}) {
|
|
29029
|
-
return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
|
|
29030
|
-
DialogPrimitive.Overlay,
|
|
29031
|
-
{
|
|
29032
|
-
"data-slot": "dialog-overlay",
|
|
29033
|
-
className: cn(
|
|
29034
|
-
"data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-[60] bg-black/50",
|
|
29035
|
-
className
|
|
29036
|
-
),
|
|
29037
|
-
...props
|
|
29038
|
-
}
|
|
29039
|
-
);
|
|
29040
|
-
}
|
|
29041
|
-
function DialogContent({
|
|
29042
|
-
className,
|
|
29043
|
-
children,
|
|
29044
|
-
showCloseButton = true,
|
|
29045
|
-
...props
|
|
29046
|
-
}) {
|
|
29047
|
-
return /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(DialogPortal, { "data-slot": "dialog-portal", children: [
|
|
29048
|
-
/* @__PURE__ */ (0, import_jsx_runtime51.jsx)(DialogOverlay, {}),
|
|
29049
|
-
/* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(
|
|
29050
|
-
DialogPrimitive.Content,
|
|
29051
|
-
{
|
|
29052
|
-
"data-slot": "dialog-content",
|
|
29053
|
-
className: cn(
|
|
29054
|
-
"bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-[70] grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 sm:max-w-lg",
|
|
29055
|
-
className
|
|
29056
|
-
),
|
|
29057
|
-
...props,
|
|
29058
|
-
children: [
|
|
29059
|
-
children,
|
|
29060
|
-
showCloseButton && /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(
|
|
29061
|
-
DialogPrimitive.Close,
|
|
29062
|
-
{
|
|
29063
|
-
"data-slot": "dialog-close",
|
|
29064
|
-
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",
|
|
29065
|
-
children: [
|
|
29066
|
-
/* @__PURE__ */ (0, import_jsx_runtime51.jsx)(X, {}),
|
|
29067
|
-
/* @__PURE__ */ (0, import_jsx_runtime51.jsx)("span", { className: "sr-only", children: "Close" })
|
|
29068
|
-
]
|
|
29069
|
-
}
|
|
29070
|
-
)
|
|
29071
|
-
]
|
|
29072
|
-
}
|
|
29073
|
-
)
|
|
29074
|
-
] });
|
|
29075
|
-
}
|
|
29076
|
-
function DialogHeader({ className, ...props }) {
|
|
29077
|
-
return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
|
|
29078
|
-
"div",
|
|
29079
|
-
{
|
|
29080
|
-
"data-slot": "dialog-header",
|
|
29081
|
-
className: cn("flex flex-col gap-2 text-center sm:text-left", className),
|
|
29082
|
-
...props
|
|
29083
|
-
}
|
|
29084
|
-
);
|
|
29085
|
-
}
|
|
29086
|
-
function DialogFooter({ className, ...props }) {
|
|
29087
|
-
return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
|
|
29088
|
-
"div",
|
|
29089
|
-
{
|
|
29090
|
-
"data-slot": "dialog-footer",
|
|
29091
|
-
className: cn(
|
|
29092
|
-
"flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",
|
|
29093
|
-
className
|
|
29094
|
-
),
|
|
29095
|
-
...props
|
|
29096
|
-
}
|
|
29097
|
-
);
|
|
29098
|
-
}
|
|
29099
|
-
function DialogTitle({
|
|
29100
|
-
className,
|
|
29101
|
-
...props
|
|
29102
|
-
}) {
|
|
29103
|
-
return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
|
|
29104
|
-
DialogPrimitive.Title,
|
|
29105
|
-
{
|
|
29106
|
-
"data-slot": "dialog-title",
|
|
29107
|
-
className: cn("text-lg leading-none font-semibold", className),
|
|
29108
|
-
...props
|
|
29109
|
-
}
|
|
29110
|
-
);
|
|
29111
|
-
}
|
|
29112
|
-
function DialogDescription({
|
|
29113
|
-
className,
|
|
29114
|
-
...props
|
|
29115
|
-
}) {
|
|
29116
|
-
return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
|
|
29117
|
-
DialogPrimitive.Description,
|
|
29118
|
-
{
|
|
29119
|
-
"data-slot": "dialog-description",
|
|
29120
|
-
className: cn("text-muted-foreground text-sm", className),
|
|
29121
|
-
...props
|
|
29122
|
-
}
|
|
29123
|
-
);
|
|
29124
|
-
}
|
|
29125
|
-
|
|
29126
|
-
// src/components/Navigation/Tabs/Tabs.tsx
|
|
29127
29325
|
var import_react26 = require("react");
|
|
29128
|
-
var
|
|
29326
|
+
var import_jsx_runtime54 = require("react/jsx-runtime");
|
|
29129
29327
|
var Tabs = ({ className, style, tabs, verticalMenu, pathname, canvasMode, isBuilder = true }) => {
|
|
29130
29328
|
const rawTabs = Array.isArray(tabs) ? tabs : [];
|
|
29131
29329
|
const baseClasses = "text-[12px] text-foreground p-2 text-center rounded-md transition-colors";
|
|
@@ -29157,23 +29355,23 @@ var Tabs = ({ className, style, tabs, verticalMenu, pathname, canvasMode, isBuil
|
|
|
29157
29355
|
const renderDesktopTab = (tab, index) => {
|
|
29158
29356
|
const finalClasses = [baseClasses, isActive(tab.url) ? activeClasses : hoverClasses, tab.className || ""].join(" ");
|
|
29159
29357
|
if (Array.isArray(tab.children) && tab.children.length > 0 && tab.isDropDown) {
|
|
29160
|
-
return /* @__PURE__ */ (0,
|
|
29161
|
-
/* @__PURE__ */ (0,
|
|
29358
|
+
return /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(DropdownMenu, { children: [
|
|
29359
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(DropdownMenuTrigger, { className: `${finalClasses} inline-flex items-center gap-1`, children: [
|
|
29162
29360
|
tab.header,
|
|
29163
|
-
/* @__PURE__ */ (0,
|
|
29361
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(ChevronDown, { className: "h-4 w-4 opacity-80" })
|
|
29164
29362
|
] }),
|
|
29165
|
-
/* @__PURE__ */ (0,
|
|
29363
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
|
|
29166
29364
|
DropdownMenuContent,
|
|
29167
29365
|
{
|
|
29168
29366
|
align: "start",
|
|
29169
29367
|
sideOffset: 6,
|
|
29170
29368
|
className: "z-50 min-w-[160px] rounded-md border border-gray-200 bg-white p-1 shadow-lg",
|
|
29171
|
-
children: tab.children.map((item) => /* @__PURE__ */ (0,
|
|
29369
|
+
children: tab.children.map((item) => /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
|
|
29172
29370
|
DropdownMenuItem,
|
|
29173
29371
|
{
|
|
29174
29372
|
asChild: true,
|
|
29175
29373
|
className: "cursor-pointer rounded-sm px-3 py-2 text-[12px] text-gray-800 hover:bg-gray-100 focus:bg-gray-100",
|
|
29176
|
-
children: /* @__PURE__ */ (0,
|
|
29374
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_link5.default, { href: item.url || "#", onClick: (e) => handleBuilderExit(e, item.url || "#"), children: item.header })
|
|
29177
29375
|
},
|
|
29178
29376
|
item.id
|
|
29179
29377
|
))
|
|
@@ -29181,7 +29379,7 @@ var Tabs = ({ className, style, tabs, verticalMenu, pathname, canvasMode, isBuil
|
|
|
29181
29379
|
)
|
|
29182
29380
|
] }, index);
|
|
29183
29381
|
}
|
|
29184
|
-
return tab.url ? /* @__PURE__ */ (0,
|
|
29382
|
+
return tab.url ? /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
|
|
29185
29383
|
import_link5.default,
|
|
29186
29384
|
{
|
|
29187
29385
|
href: tab.url,
|
|
@@ -29191,14 +29389,14 @@ var Tabs = ({ className, style, tabs, verticalMenu, pathname, canvasMode, isBuil
|
|
|
29191
29389
|
children: tab.header
|
|
29192
29390
|
},
|
|
29193
29391
|
index
|
|
29194
|
-
) : /* @__PURE__ */ (0,
|
|
29392
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("div", { className: finalClasses, style: tab.style, role: "button", tabIndex: 0, children: tab.header }, index);
|
|
29195
29393
|
};
|
|
29196
|
-
const renderMobileMenu = () => /* @__PURE__ */ (0,
|
|
29197
|
-
/* @__PURE__ */ (0,
|
|
29198
|
-
/* @__PURE__ */ (0,
|
|
29394
|
+
const renderMobileMenu = () => /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(DropdownMenu, { children: [
|
|
29395
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(DropdownMenuTrigger, { className: "flex items-center gap-2 px-3 py-2 rounded-md bg-white/10 text-white text-sm", children: [
|
|
29396
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(Menu, { className: "h-4 w-4" }),
|
|
29199
29397
|
"Menu"
|
|
29200
29398
|
] }),
|
|
29201
|
-
/* @__PURE__ */ (0,
|
|
29399
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
|
|
29202
29400
|
DropdownMenuContent,
|
|
29203
29401
|
{
|
|
29204
29402
|
align: "start",
|
|
@@ -29207,25 +29405,25 @@ var Tabs = ({ className, style, tabs, verticalMenu, pathname, canvasMode, isBuil
|
|
|
29207
29405
|
children: rawTabs.map((tab, i) => {
|
|
29208
29406
|
const hasChildren = Array.isArray(tab.children) && tab.children.length > 0 && tab.isDropDown;
|
|
29209
29407
|
if (hasChildren) {
|
|
29210
|
-
return /* @__PURE__ */ (0,
|
|
29211
|
-
/* @__PURE__ */ (0,
|
|
29212
|
-
/* @__PURE__ */ (0,
|
|
29408
|
+
return /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(DropdownMenuSub, { children: [
|
|
29409
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(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 }),
|
|
29410
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(DropdownMenuSubContent, { className: "bg-white border shadow-lg rounded-md p-1", children: tab.children.map((item) => /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
|
|
29213
29411
|
DropdownMenuItem,
|
|
29214
29412
|
{
|
|
29215
29413
|
asChild: true,
|
|
29216
29414
|
className: "cursor-pointer rounded-sm px-3 py-2 text-[12px] text-gray-800 hover:bg-gray-100",
|
|
29217
|
-
children: /* @__PURE__ */ (0,
|
|
29415
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_link5.default, { href: item.url || "#", onClick: (e) => handleBuilderExit(e, item.url || "#"), children: item.header })
|
|
29218
29416
|
},
|
|
29219
29417
|
item.id
|
|
29220
29418
|
)) })
|
|
29221
29419
|
] }, i);
|
|
29222
29420
|
}
|
|
29223
|
-
return /* @__PURE__ */ (0,
|
|
29421
|
+
return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
|
|
29224
29422
|
DropdownMenuItem,
|
|
29225
29423
|
{
|
|
29226
29424
|
asChild: true,
|
|
29227
29425
|
className: "cursor-pointer rounded-sm px-3 py-2 text-[13px] text-gray-800 hover:bg-gray-100",
|
|
29228
|
-
children: /* @__PURE__ */ (0,
|
|
29426
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_link5.default, { href: tab.url || "#", onClick: (e) => handleBuilderExit(e, tab.url || "#"), children: tab.header })
|
|
29229
29427
|
},
|
|
29230
29428
|
i
|
|
29231
29429
|
);
|
|
@@ -29235,19 +29433,19 @@ var Tabs = ({ className, style, tabs, verticalMenu, pathname, canvasMode, isBuil
|
|
|
29235
29433
|
] });
|
|
29236
29434
|
const forceMobile = canvasMode ? canvasMode === "mobile" || canvasMode === "tablet" : void 0;
|
|
29237
29435
|
const forceDesktop = canvasMode ? canvasMode === "desktop" : void 0;
|
|
29238
|
-
return /* @__PURE__ */ (0,
|
|
29239
|
-
/* @__PURE__ */ (0,
|
|
29240
|
-
forceDesktop !== void 0 ? forceDesktop && /* @__PURE__ */ (0,
|
|
29241
|
-
forceMobile !== void 0 ? forceMobile && /* @__PURE__ */ (0,
|
|
29436
|
+
return /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(import_jsx_runtime54.Fragment, { children: [
|
|
29437
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsxs)("div", { className, style, children: [
|
|
29438
|
+
forceDesktop !== void 0 ? forceDesktop && /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("div", { className: "hidden md:flex", children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("div", { className: `flex gap-2 ${verticalMenu ? "flex-col items-start" : "flex-row"}`, children: rawTabs.map(renderDesktopTab) }) }) : /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("div", { className: "hidden md:flex", children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("div", { className: `flex gap-2 ${verticalMenu ? "flex-col items-start" : "flex-row"}`, children: rawTabs.map(renderDesktopTab) }) }),
|
|
29439
|
+
forceMobile !== void 0 ? forceMobile && /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("div", { children: renderMobileMenu() }) : /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("div", { className: "flex md:hidden", children: renderMobileMenu() })
|
|
29242
29440
|
] }),
|
|
29243
|
-
/* @__PURE__ */ (0,
|
|
29244
|
-
/* @__PURE__ */ (0,
|
|
29245
|
-
/* @__PURE__ */ (0,
|
|
29246
|
-
/* @__PURE__ */ (0,
|
|
29441
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(Dialog, { open: showExitDialog, onOpenChange: setShowExitDialog, children: /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(DialogContent, { className: "bg-[#fff]", children: [
|
|
29442
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(DialogHeader, { children: [
|
|
29443
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(DialogTitle, { children: "Exit Builder?" }),
|
|
29444
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(DialogDescription, { children: "You are about to leave the builder. Any unsaved changes may be lost." })
|
|
29247
29445
|
] }),
|
|
29248
|
-
/* @__PURE__ */ (0,
|
|
29249
|
-
/* @__PURE__ */ (0,
|
|
29250
|
-
/* @__PURE__ */ (0,
|
|
29446
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(DialogFooter, { children: [
|
|
29447
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(Button, { className: "cursor-pointer bg-[#12715b] text-[#fff]", variant: "outline", onClick: () => setShowExitDialog(false), children: "Cancel" }),
|
|
29448
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(Button, { className: "cursor-pointer border-[#12715b] border", onClick: confirmExit, children: "Yes, Exit" })
|
|
29251
29449
|
] })
|
|
29252
29450
|
] }) })
|
|
29253
29451
|
] });
|
|
@@ -29256,12 +29454,12 @@ var Tabs_default = Tabs;
|
|
|
29256
29454
|
|
|
29257
29455
|
// src/components/Navigation/Stages/Stages.tsx
|
|
29258
29456
|
var import_react27 = __toESM(require("react"));
|
|
29259
|
-
var
|
|
29457
|
+
var import_jsx_runtime55 = require("react/jsx-runtime");
|
|
29260
29458
|
var StagesComponent = ({ stages, isShowBtn, buttonText, className, style, onStageChange }) => {
|
|
29261
|
-
return /* @__PURE__ */ (0,
|
|
29262
|
-
/* @__PURE__ */ (0,
|
|
29263
|
-
/* @__PURE__ */ (0,
|
|
29264
|
-
/* @__PURE__ */ (0,
|
|
29459
|
+
return /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("div", { className, style, children: /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("div", { className: "flex items-center justify-between bg-red p-2 rounded-lg border border-gray-200 w-full", children: [
|
|
29460
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)("div", { className: "flex items-center", children: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("button", { className: "p-2 hover:bg-gray-100 rounded", children: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("svg", { className: "w-4 h-4 text-gray-600", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M19 9l-7 7-7-7" }) }) }) }),
|
|
29461
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)("div", { className: "flex items-center flex-1 px-2 flex-wrap gap-2", children: stages?.length > 0 && stages?.map((stage, index) => /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)(import_react27.default.Fragment, { children: [
|
|
29462
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
|
|
29265
29463
|
"button",
|
|
29266
29464
|
{
|
|
29267
29465
|
className: `min-w-[120px] px-4 py-2 rounded-full text-sm font-medium transition-colors duration-200 whitespace-nowrap ${stage.isActive ? "bg-[#034486] text-white shadow-md" : "bg-white text-gray-700 hover:bg-gray-100 border border-gray-200"}`,
|
|
@@ -29273,9 +29471,9 @@ var StagesComponent = ({ stages, isShowBtn, buttonText, className, style, onStag
|
|
|
29273
29471
|
children: stage.header
|
|
29274
29472
|
}
|
|
29275
29473
|
),
|
|
29276
|
-
index < stages.length - 1 && /* @__PURE__ */ (0,
|
|
29474
|
+
index < stages.length - 1 && /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("div", { className: "flex-shrink-0 w-3 h-px bg-gray-300" })
|
|
29277
29475
|
] }, stage.id)) }),
|
|
29278
|
-
isShowBtn && /* @__PURE__ */ (0,
|
|
29476
|
+
isShowBtn && /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("div", { className: "flex items-center", children: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
|
|
29279
29477
|
"button",
|
|
29280
29478
|
{
|
|
29281
29479
|
className: "bg-[#034486] text-white px-6 py-2 rounded-lg text-sm font-medium transition-colors duration-200 shadow-sm",
|
|
@@ -29293,26 +29491,26 @@ var StagesComponent = ({ stages, isShowBtn, buttonText, className, style, onStag
|
|
|
29293
29491
|
var Stages_default = StagesComponent;
|
|
29294
29492
|
|
|
29295
29493
|
// src/components/Navigation/Spacer/Spacer.tsx
|
|
29296
|
-
var
|
|
29494
|
+
var import_jsx_runtime56 = require("react/jsx-runtime");
|
|
29297
29495
|
var Spacer = ({ className, style }) => {
|
|
29298
|
-
return /* @__PURE__ */ (0,
|
|
29496
|
+
return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("div", { className: `${className}`, style });
|
|
29299
29497
|
};
|
|
29300
29498
|
var Spacer_default = Spacer;
|
|
29301
29499
|
|
|
29302
29500
|
// src/components/Navigation/Profile/Profile.tsx
|
|
29303
|
-
var
|
|
29501
|
+
var import_jsx_runtime57 = require("react/jsx-runtime");
|
|
29304
29502
|
|
|
29305
29503
|
// src/components/Navigation/Notification/Notification.tsx
|
|
29306
|
-
var
|
|
29504
|
+
var import_jsx_runtime58 = require("react/jsx-runtime");
|
|
29307
29505
|
|
|
29308
29506
|
// src/components/Navigation/Logo/Logo.tsx
|
|
29309
|
-
var
|
|
29507
|
+
var import_jsx_runtime59 = require("react/jsx-runtime");
|
|
29310
29508
|
|
|
29311
29509
|
// src/components/ui/avatar.tsx
|
|
29312
|
-
var
|
|
29510
|
+
var React10 = __toESM(require("react"));
|
|
29313
29511
|
var AvatarPrimitive = __toESM(require("@radix-ui/react-avatar"));
|
|
29314
|
-
var
|
|
29315
|
-
var Avatar =
|
|
29512
|
+
var import_jsx_runtime60 = require("react/jsx-runtime");
|
|
29513
|
+
var Avatar = React10.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
|
|
29316
29514
|
AvatarPrimitive.Root,
|
|
29317
29515
|
{
|
|
29318
29516
|
ref,
|
|
@@ -29324,7 +29522,7 @@ var Avatar = React9.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
|
29324
29522
|
}
|
|
29325
29523
|
));
|
|
29326
29524
|
Avatar.displayName = AvatarPrimitive.Root.displayName;
|
|
29327
|
-
var AvatarImage =
|
|
29525
|
+
var AvatarImage = React10.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
|
|
29328
29526
|
AvatarPrimitive.Image,
|
|
29329
29527
|
{
|
|
29330
29528
|
ref,
|
|
@@ -29333,7 +29531,7 @@ var AvatarImage = React9.forwardRef(({ className, ...props }, ref) => /* @__PURE
|
|
|
29333
29531
|
}
|
|
29334
29532
|
));
|
|
29335
29533
|
AvatarImage.displayName = AvatarPrimitive.Image.displayName;
|
|
29336
|
-
var AvatarFallback =
|
|
29534
|
+
var AvatarFallback = React10.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
|
|
29337
29535
|
AvatarPrimitive.Fallback,
|
|
29338
29536
|
{
|
|
29339
29537
|
ref,
|
|
@@ -29352,7 +29550,7 @@ var import_image3 = __toESM(require("next/image"));
|
|
|
29352
29550
|
var import_navigation4 = require("next/navigation");
|
|
29353
29551
|
var import_react_dropdown_menu = require("@radix-ui/react-dropdown-menu");
|
|
29354
29552
|
var import_react28 = require("react");
|
|
29355
|
-
var
|
|
29553
|
+
var import_jsx_runtime61 = require("react/jsx-runtime");
|
|
29356
29554
|
function Navbar({
|
|
29357
29555
|
style,
|
|
29358
29556
|
badgeType,
|
|
@@ -29396,23 +29594,23 @@ function Navbar({
|
|
|
29396
29594
|
}
|
|
29397
29595
|
return list || [];
|
|
29398
29596
|
}, [source, navList]);
|
|
29399
|
-
return /* @__PURE__ */ (0,
|
|
29400
|
-
/* @__PURE__ */ (0,
|
|
29597
|
+
return /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(import_jsx_runtime61.Fragment, { children: [
|
|
29598
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
|
|
29401
29599
|
"nav",
|
|
29402
29600
|
{
|
|
29403
29601
|
className: "w-full border-b border-b-white dark:border-b-gray-800 dark:bg-gray-800 bg-white shadow-sm",
|
|
29404
29602
|
style,
|
|
29405
|
-
children: /* @__PURE__ */ (0,
|
|
29406
|
-
/* @__PURE__ */ (0,
|
|
29603
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("div", { className: "mx-auto flex max-w-[90%] items-center justify-between px-4 py-4", children: [
|
|
29604
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
|
|
29407
29605
|
import_link6.default,
|
|
29408
29606
|
{
|
|
29409
29607
|
href: "/",
|
|
29410
29608
|
onClick: (e) => handleBuilderExit(e, "/"),
|
|
29411
29609
|
className: "flex items-center space-x-2",
|
|
29412
|
-
children: imageUrl ? /* @__PURE__ */ (0,
|
|
29610
|
+
children: imageUrl ? /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_image3.default, { src: imageUrl, alt: altText, width: 200, height: 200 }) : /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("span", { className: "font-semibold text-blue-700", children: "Logo" })
|
|
29413
29611
|
}
|
|
29414
29612
|
),
|
|
29415
|
-
!isMobileView && /* @__PURE__ */ (0,
|
|
29613
|
+
!isMobileView && /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("div", { className: "flex items-center space-x-6 sm:hidden md:flex", children: formatedMenu.map((item) => /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
|
|
29416
29614
|
import_link6.default,
|
|
29417
29615
|
{
|
|
29418
29616
|
href: item.url || "#",
|
|
@@ -29422,39 +29620,39 @@ function Navbar({
|
|
|
29422
29620
|
},
|
|
29423
29621
|
item.id
|
|
29424
29622
|
)) }),
|
|
29425
|
-
/* @__PURE__ */ (0,
|
|
29426
|
-
!isMobileView ? /* @__PURE__ */ (0,
|
|
29427
|
-
/* @__PURE__ */ (0,
|
|
29428
|
-
/* @__PURE__ */ (0,
|
|
29429
|
-
] }) }) : /* @__PURE__ */ (0,
|
|
29430
|
-
/* @__PURE__ */ (0,
|
|
29431
|
-
/* @__PURE__ */ (0,
|
|
29432
|
-
badgeType === "number" && !(hideBadgeWhenZero && badgeCount === 0) && Number(badgeCount) > 0 ? /* @__PURE__ */ (0,
|
|
29623
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("div", { className: "flex items-center space-x-3", children: [
|
|
29624
|
+
!isMobileView ? /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("div", { className: "flex-1 px-6", children: /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("div", { className: "relative w-full max-w-md border border-gray-300 rounded-md", children: [
|
|
29625
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)(Search, { className: "absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 dark:text-white text-gray-400" }),
|
|
29626
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)(Input, { placeholder: "Search", className: "pl-9 text-gray-400" })
|
|
29627
|
+
] }) }) : /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(Button, { variant: "ghost", size: "icon", className: "border border-gray-400", children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(Search, { className: "h-5 w-5 text-gray-400" }) }),
|
|
29628
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("div", { className: "relative bg-[#E9E9E9] dark:bg-gray-700 rounded-md", children: [
|
|
29629
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)(Button, { variant: "ghost", size: "icon", children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(Bell, { className: "h-5 w-5 text-[#1C1B1F] dark:text-gray-400" }) }),
|
|
29630
|
+
badgeType === "number" && !(hideBadgeWhenZero && badgeCount === 0) && Number(badgeCount) > 0 ? /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("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__ */ (0, import_jsx_runtime61.jsx)("span", { className: "absolute -top-1 -right-1 flex h-2 w-2 items-center justify-center rounded-full bg-red-500" })
|
|
29433
29631
|
] }),
|
|
29434
|
-
/* @__PURE__ */ (0,
|
|
29435
|
-
/* @__PURE__ */ (0,
|
|
29436
|
-
!isMobileView && showName && /* @__PURE__ */ (0,
|
|
29437
|
-
!isMobileView ? /* @__PURE__ */ (0,
|
|
29438
|
-
/* @__PURE__ */ (0,
|
|
29632
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(DropdownMenu, { children: [
|
|
29633
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("div", { className: "flex items-center space-x-2", children: [
|
|
29634
|
+
!isMobileView && showName && /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("h4", { className: "text-[#000000] dark:text-gray-300 text-[13px] font-[500] mb-0", children: userName }),
|
|
29635
|
+
!isMobileView ? /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(import_jsx_runtime61.Fragment, { children: [
|
|
29636
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)(Avatar, { className: "cursor-pointer h-8 w-8 text-gray-900", children: profileType === "avatar" ? /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
|
|
29439
29637
|
AvatarImage,
|
|
29440
29638
|
{
|
|
29441
29639
|
src: "/images/appbuilder/toolset/profile.svg",
|
|
29442
29640
|
alt: "Profile"
|
|
29443
29641
|
}
|
|
29444
|
-
) : /* @__PURE__ */ (0,
|
|
29445
|
-
/* @__PURE__ */ (0,
|
|
29642
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("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) }) }),
|
|
29643
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
|
|
29446
29644
|
Button,
|
|
29447
29645
|
{
|
|
29448
29646
|
variant: "ghost",
|
|
29449
29647
|
size: "icon",
|
|
29450
29648
|
className: "text-gray-900 md:hidden dark:invert",
|
|
29451
|
-
children: /* @__PURE__ */ (0,
|
|
29649
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(Menu, { className: "h-6 w-6" })
|
|
29452
29650
|
}
|
|
29453
29651
|
)
|
|
29454
|
-
] }) : /* @__PURE__ */ (0,
|
|
29652
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(Button, { variant: "ghost", size: "icon", className: "text-gray-900 dark:invert", children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(Menu, { className: "h-6 w-6" }) })
|
|
29455
29653
|
] }) }),
|
|
29456
|
-
/* @__PURE__ */ (0,
|
|
29457
|
-
profileMenu && profileMenu.length > 0 && /* @__PURE__ */ (0,
|
|
29654
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(DropdownMenuContent, { align: "end", className: "bg-white dark:bg-gray-800", children: [
|
|
29655
|
+
profileMenu && profileMenu.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_jsx_runtime61.Fragment, { children: profileMenu.map((item) => /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(DropdownMenuItem, { className: "text-black dark:invert", children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
|
|
29458
29656
|
import_link6.default,
|
|
29459
29657
|
{
|
|
29460
29658
|
href: item.url || "#",
|
|
@@ -29462,9 +29660,9 @@ function Navbar({
|
|
|
29462
29660
|
children: item.header
|
|
29463
29661
|
}
|
|
29464
29662
|
) }, item.id)) }),
|
|
29465
|
-
/* @__PURE__ */ (0,
|
|
29466
|
-
/* @__PURE__ */ (0,
|
|
29467
|
-
formatedMenu && formatedMenu.length > 0 && /* @__PURE__ */ (0,
|
|
29663
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("div", { className: "md:hidden", children: [
|
|
29664
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_react_dropdown_menu.DropdownMenuSeparator, {}),
|
|
29665
|
+
formatedMenu && formatedMenu.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_jsx_runtime61.Fragment, { children: formatedMenu.map((item) => /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(DropdownMenuItem, { className: "text-black dark:invert", children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
|
|
29468
29666
|
import_link6.default,
|
|
29469
29667
|
{
|
|
29470
29668
|
href: item.url || "#",
|
|
@@ -29479,14 +29677,14 @@ function Navbar({
|
|
|
29479
29677
|
] })
|
|
29480
29678
|
}
|
|
29481
29679
|
),
|
|
29482
|
-
/* @__PURE__ */ (0,
|
|
29483
|
-
/* @__PURE__ */ (0,
|
|
29484
|
-
/* @__PURE__ */ (0,
|
|
29485
|
-
/* @__PURE__ */ (0,
|
|
29680
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)(Dialog, { open: showExitDialog, onOpenChange: setShowExitDialog, children: /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(DialogContent, { className: "bg-[#fff]", children: [
|
|
29681
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(DialogHeader, { children: [
|
|
29682
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)(DialogTitle, { children: "Exit Builder?" }),
|
|
29683
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)(DialogDescription, { children: "You are about to leave the builder. Any unsaved changes may be lost." })
|
|
29486
29684
|
] }),
|
|
29487
|
-
/* @__PURE__ */ (0,
|
|
29488
|
-
/* @__PURE__ */ (0,
|
|
29489
|
-
/* @__PURE__ */ (0,
|
|
29685
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(DialogFooter, { children: [
|
|
29686
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)(Button, { className: "cursor-pointer bg-[#12715b] text-[#fff]", variant: "outline", onClick: () => setShowExitDialog(false), children: "Cancel" }),
|
|
29687
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)(Button, { className: "cursor-pointer border-[#12715b] border", onClick: confirmExit, children: "Yes, Exit" })
|
|
29490
29688
|
] })
|
|
29491
29689
|
] }) })
|
|
29492
29690
|
] });
|
|
@@ -29495,35 +29693,35 @@ function Navbar({
|
|
|
29495
29693
|
// src/components/Chart/BarChart.tsx
|
|
29496
29694
|
var import_react29 = __toESM(require("react"));
|
|
29497
29695
|
var import_recharts = require("recharts");
|
|
29498
|
-
var
|
|
29696
|
+
var import_jsx_runtime62 = require("react/jsx-runtime");
|
|
29499
29697
|
var ChartComponent = ({ className, style, loading, ...props }) => {
|
|
29500
29698
|
const data = Array.isArray(props.data) ? props.data : [];
|
|
29501
29699
|
const chartType = props.chartType || "bar";
|
|
29502
29700
|
const legendsPosition = props.legendsPosition === "middle" || props.legendsPosition === "bottom" ? props.legendsPosition : "top";
|
|
29503
29701
|
if (loading || data.length === 0) {
|
|
29504
|
-
return /* @__PURE__ */ (0,
|
|
29702
|
+
return /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
|
|
29505
29703
|
"div",
|
|
29506
29704
|
{
|
|
29507
29705
|
className: `flex items-center justify-center w-full h-[300px] md:h-[400px] bg-gray-50 animate-pulse rounded-lg ${className}`,
|
|
29508
29706
|
style,
|
|
29509
|
-
children: /* @__PURE__ */ (0,
|
|
29707
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("div", { className: "text-gray-400 text-sm md:text-base", children: loading ? "Loading chart report..." : "No data available to display the chart." })
|
|
29510
29708
|
}
|
|
29511
29709
|
);
|
|
29512
29710
|
}
|
|
29513
|
-
return /* @__PURE__ */ (0,
|
|
29514
|
-
/* @__PURE__ */ (0,
|
|
29515
|
-
/* @__PURE__ */ (0,
|
|
29516
|
-
/* @__PURE__ */ (0,
|
|
29517
|
-
/* @__PURE__ */ (0,
|
|
29518
|
-
/* @__PURE__ */ (0,
|
|
29519
|
-
/* @__PURE__ */ (0,
|
|
29711
|
+
return /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("div", { className: `${className} h-[400px]`, style, children: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_recharts.ResponsiveContainer, { width: "100%", height: "100%", children: chartType === "bar" ? /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(import_recharts.BarChart, { data, title: "Leads", desc: "content", children: [
|
|
29712
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_recharts.CartesianGrid, { strokeDasharray: "3 3" }),
|
|
29713
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_recharts.XAxis, { dataKey: "name" }),
|
|
29714
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_recharts.YAxis, {}),
|
|
29715
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_recharts.Tooltip, { formatter: (value) => `${value}k` }),
|
|
29716
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_recharts.Legend, { verticalAlign: legendsPosition, align: "center" }),
|
|
29717
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
|
|
29520
29718
|
import_recharts.Bar,
|
|
29521
29719
|
{
|
|
29522
29720
|
dataKey: "value",
|
|
29523
29721
|
fill: "#00695C",
|
|
29524
29722
|
radius: [6, 6, 0, 0],
|
|
29525
29723
|
isAnimationActive: false,
|
|
29526
|
-
children: data.map((entry, index) => /* @__PURE__ */ (0,
|
|
29724
|
+
children: data.map((entry, index) => /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
|
|
29527
29725
|
"rect",
|
|
29528
29726
|
{
|
|
29529
29727
|
fill: entry.color || "#00695C"
|
|
@@ -29532,16 +29730,16 @@ var ChartComponent = ({ className, style, loading, ...props }) => {
|
|
|
29532
29730
|
))
|
|
29533
29731
|
}
|
|
29534
29732
|
)
|
|
29535
|
-
] }) : /* @__PURE__ */ (0,
|
|
29536
|
-
/* @__PURE__ */ (0,
|
|
29537
|
-
/* @__PURE__ */ (0,
|
|
29538
|
-
/* @__PURE__ */ (0,
|
|
29733
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(import_recharts.AreaChart, { data, children: [
|
|
29734
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)("defs", { children: /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("linearGradient", { id: "colorCount", x1: "0", y1: "0", x2: "0", y2: "1", children: [
|
|
29735
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)("stop", { offset: "5%", stopColor: "#00695C", stopOpacity: 0.8 }),
|
|
29736
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)("stop", { offset: "95%", stopColor: "#00695C", stopOpacity: 0 })
|
|
29539
29737
|
] }) }),
|
|
29540
|
-
/* @__PURE__ */ (0,
|
|
29541
|
-
/* @__PURE__ */ (0,
|
|
29542
|
-
/* @__PURE__ */ (0,
|
|
29543
|
-
/* @__PURE__ */ (0,
|
|
29544
|
-
/* @__PURE__ */ (0,
|
|
29738
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_recharts.CartesianGrid, { strokeDasharray: "3 3" }),
|
|
29739
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_recharts.XAxis, { dataKey: "name" }),
|
|
29740
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_recharts.YAxis, {}),
|
|
29741
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_recharts.Tooltip, { formatter: (value) => `${value}k` }),
|
|
29742
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
|
|
29545
29743
|
import_recharts.Area,
|
|
29546
29744
|
{
|
|
29547
29745
|
type: "monotone",
|
|
@@ -29559,7 +29757,7 @@ var BarChart_default = import_react29.default.memo(ChartComponent);
|
|
|
29559
29757
|
// src/components/Chart/PieChart.tsx
|
|
29560
29758
|
var import_react30 = __toESM(require("react"));
|
|
29561
29759
|
var import_recharts2 = require("recharts");
|
|
29562
|
-
var
|
|
29760
|
+
var import_jsx_runtime63 = require("react/jsx-runtime");
|
|
29563
29761
|
var getRandomColor = () => {
|
|
29564
29762
|
const palette = [
|
|
29565
29763
|
"#2563eb",
|
|
@@ -29592,19 +29790,19 @@ var DonutChart = ({ className, style, loading, ...props }) => {
|
|
|
29592
29790
|
}, []);
|
|
29593
29791
|
const renderLegends = (0, import_react30.useMemo)(() => {
|
|
29594
29792
|
if (!showLegends) return null;
|
|
29595
|
-
return /* @__PURE__ */ (0,
|
|
29793
|
+
return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(import_jsx_runtime63.Fragment, { children: data.map((d) => /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(
|
|
29596
29794
|
"div",
|
|
29597
29795
|
{
|
|
29598
29796
|
className: "flex items-center space-x-2 rounded-md border border-gray-200 px-3 py-2 w-[48%] md:w-auto",
|
|
29599
29797
|
children: [
|
|
29600
|
-
/* @__PURE__ */ (0,
|
|
29798
|
+
/* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
|
|
29601
29799
|
"span",
|
|
29602
29800
|
{
|
|
29603
29801
|
className: "inline-block w-[16px] h-[16px] rounded",
|
|
29604
29802
|
style: { backgroundColor: d.color }
|
|
29605
29803
|
}
|
|
29606
29804
|
),
|
|
29607
|
-
/* @__PURE__ */ (0,
|
|
29805
|
+
/* @__PURE__ */ (0, import_jsx_runtime63.jsx)("span", { className: "text-[#000000] text-[12px] md:text-[13px] font-[500]", children: d.name })
|
|
29608
29806
|
]
|
|
29609
29807
|
},
|
|
29610
29808
|
d.name
|
|
@@ -29612,24 +29810,24 @@ var DonutChart = ({ className, style, loading, ...props }) => {
|
|
|
29612
29810
|
}, [data, showLegends]);
|
|
29613
29811
|
if (!mounted) return null;
|
|
29614
29812
|
if (loading || data.length === 0) {
|
|
29615
|
-
return /* @__PURE__ */ (0,
|
|
29813
|
+
return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
|
|
29616
29814
|
"div",
|
|
29617
29815
|
{
|
|
29618
29816
|
className: `flex items-center justify-center w-full h-[300px] md:h-[400px] bg-gray-50 animate-pulse rounded-lg ${className}`,
|
|
29619
29817
|
style,
|
|
29620
|
-
children: /* @__PURE__ */ (0,
|
|
29818
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("div", { className: "text-gray-400 text-sm md:text-base", children: loading ? "Loading chart report..." : "No data available to display the chart." })
|
|
29621
29819
|
}
|
|
29622
29820
|
);
|
|
29623
29821
|
}
|
|
29624
|
-
return /* @__PURE__ */ (0,
|
|
29822
|
+
return /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(
|
|
29625
29823
|
"div",
|
|
29626
29824
|
{
|
|
29627
29825
|
className: `relative flex flex-col items-center ${className}`,
|
|
29628
29826
|
style,
|
|
29629
29827
|
children: [
|
|
29630
|
-
/* @__PURE__ */ (0,
|
|
29631
|
-
/* @__PURE__ */ (0,
|
|
29632
|
-
/* @__PURE__ */ (0,
|
|
29828
|
+
/* @__PURE__ */ (0, import_jsx_runtime63.jsxs)("div", { className: "relative w-full md:w-[70%] h-[300px] md:h-[400px] flex items-center justify-center", children: [
|
|
29829
|
+
/* @__PURE__ */ (0, import_jsx_runtime63.jsx)(import_recharts2.ResponsiveContainer, { width: "99%", height: "100%", children: /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(import_recharts2.PieChart, { children: [
|
|
29830
|
+
/* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(
|
|
29633
29831
|
import_recharts2.Pie,
|
|
29634
29832
|
{
|
|
29635
29833
|
data,
|
|
@@ -29641,8 +29839,8 @@ var DonutChart = ({ className, style, loading, ...props }) => {
|
|
|
29641
29839
|
labelLine: false,
|
|
29642
29840
|
isAnimationActive: false,
|
|
29643
29841
|
children: [
|
|
29644
|
-
data.map((entry, index) => /* @__PURE__ */ (0,
|
|
29645
|
-
/* @__PURE__ */ (0,
|
|
29842
|
+
data.map((entry, index) => /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(import_recharts2.Cell, { fill: entry.color }, `cell-${index}`)),
|
|
29843
|
+
/* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
|
|
29646
29844
|
import_recharts2.LabelList,
|
|
29647
29845
|
{
|
|
29648
29846
|
dataKey: "value",
|
|
@@ -29655,14 +29853,14 @@ var DonutChart = ({ className, style, loading, ...props }) => {
|
|
|
29655
29853
|
]
|
|
29656
29854
|
}
|
|
29657
29855
|
),
|
|
29658
|
-
/* @__PURE__ */ (0,
|
|
29856
|
+
/* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
|
|
29659
29857
|
import_recharts2.Tooltip,
|
|
29660
29858
|
{
|
|
29661
29859
|
formatter: (value, name) => [`${value}k`, name]
|
|
29662
29860
|
}
|
|
29663
29861
|
)
|
|
29664
29862
|
] }) }),
|
|
29665
|
-
/* @__PURE__ */ (0,
|
|
29863
|
+
/* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(
|
|
29666
29864
|
"div",
|
|
29667
29865
|
{
|
|
29668
29866
|
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]`,
|
|
@@ -29673,7 +29871,7 @@ var DonutChart = ({ className, style, loading, ...props }) => {
|
|
|
29673
29871
|
}
|
|
29674
29872
|
)
|
|
29675
29873
|
] }),
|
|
29676
|
-
/* @__PURE__ */ (0,
|
|
29874
|
+
/* @__PURE__ */ (0, import_jsx_runtime63.jsx)("div", { className: "flex flex-wrap justify-center gap-2 mt-6 w-full md:w-auto", children: renderLegends })
|
|
29677
29875
|
]
|
|
29678
29876
|
}
|
|
29679
29877
|
);
|
|
@@ -29681,10 +29879,10 @@ var DonutChart = ({ className, style, loading, ...props }) => {
|
|
|
29681
29879
|
var PieChart_default = import_react30.default.memo(DonutChart);
|
|
29682
29880
|
|
|
29683
29881
|
// src/components/Blocks/EmailComposer.tsx
|
|
29684
|
-
var
|
|
29882
|
+
var import_jsx_runtime64 = require("react/jsx-runtime");
|
|
29685
29883
|
function EmailComposer({ className, style, to, setTo, showCc, setShowCc, showBcc, setShowBcc, cc, setCc, bcc, setBcc, subject, setSubject, body, setBody }) {
|
|
29686
|
-
return /* @__PURE__ */ (0,
|
|
29687
|
-
/* @__PURE__ */ (0,
|
|
29884
|
+
return /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("div", { className, style, children: /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("div", { className: "border rounded-md shadow bg-[#fff] p-4 mx-auto z-[50] relative", children: [
|
|
29885
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsx)("div", { className: "mb-3", children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
|
|
29688
29886
|
"input",
|
|
29689
29887
|
{
|
|
29690
29888
|
type: "email",
|
|
@@ -29693,8 +29891,8 @@ function EmailComposer({ className, style, to, setTo, showCc, setShowCc, showBcc
|
|
|
29693
29891
|
required: true
|
|
29694
29892
|
}
|
|
29695
29893
|
) }),
|
|
29696
|
-
/* @__PURE__ */ (0,
|
|
29697
|
-
/* @__PURE__ */ (0,
|
|
29894
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsx)("div", { className: "mb-3", children: /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("div", { className: "flex items-center gap-2", children: [
|
|
29895
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
|
|
29698
29896
|
"input",
|
|
29699
29897
|
{
|
|
29700
29898
|
type: "email",
|
|
@@ -29705,7 +29903,7 @@ function EmailComposer({ className, style, to, setTo, showCc, setShowCc, showBcc
|
|
|
29705
29903
|
required: true
|
|
29706
29904
|
}
|
|
29707
29905
|
),
|
|
29708
|
-
!showCc && /* @__PURE__ */ (0,
|
|
29906
|
+
!showCc && /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
|
|
29709
29907
|
"button",
|
|
29710
29908
|
{
|
|
29711
29909
|
onClick: () => setShowCc?.(true),
|
|
@@ -29713,7 +29911,7 @@ function EmailComposer({ className, style, to, setTo, showCc, setShowCc, showBcc
|
|
|
29713
29911
|
children: "Cc"
|
|
29714
29912
|
}
|
|
29715
29913
|
),
|
|
29716
|
-
!showBcc && /* @__PURE__ */ (0,
|
|
29914
|
+
!showBcc && /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
|
|
29717
29915
|
"button",
|
|
29718
29916
|
{
|
|
29719
29917
|
onClick: () => setShowBcc?.(true),
|
|
@@ -29722,7 +29920,7 @@ function EmailComposer({ className, style, to, setTo, showCc, setShowCc, showBcc
|
|
|
29722
29920
|
}
|
|
29723
29921
|
)
|
|
29724
29922
|
] }) }),
|
|
29725
|
-
showCc && /* @__PURE__ */ (0,
|
|
29923
|
+
showCc && /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("div", { className: "mb-3", children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
|
|
29726
29924
|
"input",
|
|
29727
29925
|
{
|
|
29728
29926
|
type: "text",
|
|
@@ -29732,7 +29930,7 @@ function EmailComposer({ className, style, to, setTo, showCc, setShowCc, showBcc
|
|
|
29732
29930
|
className: "w-full flex-1 border-2 rounded-md h-[40px] px-3 focus:outline-none border-[#E9E9E9] text-[#383838]"
|
|
29733
29931
|
}
|
|
29734
29932
|
) }),
|
|
29735
|
-
showBcc && /* @__PURE__ */ (0,
|
|
29933
|
+
showBcc && /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("div", { className: "mb-3", children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
|
|
29736
29934
|
"input",
|
|
29737
29935
|
{
|
|
29738
29936
|
type: "text",
|
|
@@ -29742,7 +29940,7 @@ function EmailComposer({ className, style, to, setTo, showCc, setShowCc, showBcc
|
|
|
29742
29940
|
className: "w-full flex-1 border-2 rounded-md h-[40px] px-3 focus:outline-none border-[#E9E9E9] text-[#383838]"
|
|
29743
29941
|
}
|
|
29744
29942
|
) }),
|
|
29745
|
-
/* @__PURE__ */ (0,
|
|
29943
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsx)("div", { className: "mb-3", children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
|
|
29746
29944
|
"input",
|
|
29747
29945
|
{
|
|
29748
29946
|
type: "text",
|
|
@@ -29752,11 +29950,11 @@ function EmailComposer({ className, style, to, setTo, showCc, setShowCc, showBcc
|
|
|
29752
29950
|
className: "w-full flex-1 border-2 rounded-md h-[40px] px-3 focus:outline-none border-[#E9E9E9] text-[#383838]"
|
|
29753
29951
|
}
|
|
29754
29952
|
) }),
|
|
29755
|
-
/* @__PURE__ */ (0,
|
|
29756
|
-
/* @__PURE__ */ (0,
|
|
29757
|
-
/* @__PURE__ */ (0,
|
|
29758
|
-
/* @__PURE__ */ (0,
|
|
29759
|
-
/* @__PURE__ */ (0,
|
|
29953
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsx)("div", { className: "mb-4", children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(MyEditor, { value: body, onChange: setBody }) }),
|
|
29954
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("div", { className: "flex justify-end gap-2", children: [
|
|
29955
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsx)("button", { className: "px-4 py-2 rounded-md text-gray-600 hover:bg-gray-100", children: "Discard" }),
|
|
29956
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsx)("button", { className: "px-4 py-2 rounded-md border text-[#12715B] border-[#12715B]", children: "Reset" }),
|
|
29957
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsx)("button", { className: "px-4 py-2 rounded-md bg-[#12715B] text-white", children: "Send" })
|
|
29760
29958
|
] })
|
|
29761
29959
|
] }) });
|
|
29762
29960
|
}
|
|
@@ -29801,10 +29999,10 @@ function showSonnerToast({
|
|
|
29801
29999
|
// src/components/ui/sonner.tsx
|
|
29802
30000
|
var import_next_themes = require("next-themes");
|
|
29803
30001
|
var import_sonner2 = require("sonner");
|
|
29804
|
-
var
|
|
30002
|
+
var import_jsx_runtime65 = require("react/jsx-runtime");
|
|
29805
30003
|
var Toaster = ({ ...props }) => {
|
|
29806
30004
|
const { theme = "system" } = (0, import_next_themes.useTheme)();
|
|
29807
|
-
return /* @__PURE__ */ (0,
|
|
30005
|
+
return /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
|
|
29808
30006
|
import_sonner2.Toaster,
|
|
29809
30007
|
{
|
|
29810
30008
|
theme,
|
|
@@ -29840,6 +30038,7 @@ var Toaster = ({ ...props }) => {
|
|
|
29840
30038
|
Image,
|
|
29841
30039
|
Modal,
|
|
29842
30040
|
MultiCheckbox,
|
|
30041
|
+
MultiSelect,
|
|
29843
30042
|
Navbar,
|
|
29844
30043
|
NumberInput,
|
|
29845
30044
|
Pagination,
|