@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.mjs
CHANGED
|
@@ -28268,8 +28268,321 @@ var TextInputGroup = ({ className, style, prepend, append, ...props }) => {
|
|
|
28268
28268
|
};
|
|
28269
28269
|
var TextInputGroup_default = TextInputGroup;
|
|
28270
28270
|
|
|
28271
|
-
// src/components/
|
|
28271
|
+
// src/components/Inputs/Multiselect/MultiSelect.tsx
|
|
28272
28272
|
import * as React7 from "react";
|
|
28273
|
+
|
|
28274
|
+
// src/components/ui/command.tsx
|
|
28275
|
+
import { Command as CommandPrimitive } from "cmdk";
|
|
28276
|
+
|
|
28277
|
+
// src/components/ui/dialog.tsx
|
|
28278
|
+
import * as DialogPrimitive from "@radix-ui/react-dialog";
|
|
28279
|
+
import { jsx as jsx46, jsxs as jsxs26 } from "react/jsx-runtime";
|
|
28280
|
+
function Dialog({
|
|
28281
|
+
...props
|
|
28282
|
+
}) {
|
|
28283
|
+
return /* @__PURE__ */ jsx46(DialogPrimitive.Root, { "data-slot": "dialog", ...props });
|
|
28284
|
+
}
|
|
28285
|
+
function DialogPortal({
|
|
28286
|
+
...props
|
|
28287
|
+
}) {
|
|
28288
|
+
return /* @__PURE__ */ jsx46(DialogPrimitive.Portal, { "data-slot": "dialog-portal", ...props });
|
|
28289
|
+
}
|
|
28290
|
+
function DialogOverlay({
|
|
28291
|
+
className,
|
|
28292
|
+
...props
|
|
28293
|
+
}) {
|
|
28294
|
+
return /* @__PURE__ */ jsx46(
|
|
28295
|
+
DialogPrimitive.Overlay,
|
|
28296
|
+
{
|
|
28297
|
+
"data-slot": "dialog-overlay",
|
|
28298
|
+
className: cn(
|
|
28299
|
+
"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",
|
|
28300
|
+
className
|
|
28301
|
+
),
|
|
28302
|
+
...props
|
|
28303
|
+
}
|
|
28304
|
+
);
|
|
28305
|
+
}
|
|
28306
|
+
function DialogContent({
|
|
28307
|
+
className,
|
|
28308
|
+
children,
|
|
28309
|
+
showCloseButton = true,
|
|
28310
|
+
...props
|
|
28311
|
+
}) {
|
|
28312
|
+
return /* @__PURE__ */ jsxs26(DialogPortal, { "data-slot": "dialog-portal", children: [
|
|
28313
|
+
/* @__PURE__ */ jsx46(DialogOverlay, {}),
|
|
28314
|
+
/* @__PURE__ */ jsxs26(
|
|
28315
|
+
DialogPrimitive.Content,
|
|
28316
|
+
{
|
|
28317
|
+
"data-slot": "dialog-content",
|
|
28318
|
+
className: cn(
|
|
28319
|
+
"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",
|
|
28320
|
+
className
|
|
28321
|
+
),
|
|
28322
|
+
...props,
|
|
28323
|
+
children: [
|
|
28324
|
+
children,
|
|
28325
|
+
showCloseButton && /* @__PURE__ */ jsxs26(
|
|
28326
|
+
DialogPrimitive.Close,
|
|
28327
|
+
{
|
|
28328
|
+
"data-slot": "dialog-close",
|
|
28329
|
+
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",
|
|
28330
|
+
children: [
|
|
28331
|
+
/* @__PURE__ */ jsx46(X, {}),
|
|
28332
|
+
/* @__PURE__ */ jsx46("span", { className: "sr-only", children: "Close" })
|
|
28333
|
+
]
|
|
28334
|
+
}
|
|
28335
|
+
)
|
|
28336
|
+
]
|
|
28337
|
+
}
|
|
28338
|
+
)
|
|
28339
|
+
] });
|
|
28340
|
+
}
|
|
28341
|
+
function DialogHeader({ className, ...props }) {
|
|
28342
|
+
return /* @__PURE__ */ jsx46(
|
|
28343
|
+
"div",
|
|
28344
|
+
{
|
|
28345
|
+
"data-slot": "dialog-header",
|
|
28346
|
+
className: cn("flex flex-col gap-2 text-center sm:text-left", className),
|
|
28347
|
+
...props
|
|
28348
|
+
}
|
|
28349
|
+
);
|
|
28350
|
+
}
|
|
28351
|
+
function DialogFooter({ className, ...props }) {
|
|
28352
|
+
return /* @__PURE__ */ jsx46(
|
|
28353
|
+
"div",
|
|
28354
|
+
{
|
|
28355
|
+
"data-slot": "dialog-footer",
|
|
28356
|
+
className: cn(
|
|
28357
|
+
"flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",
|
|
28358
|
+
className
|
|
28359
|
+
),
|
|
28360
|
+
...props
|
|
28361
|
+
}
|
|
28362
|
+
);
|
|
28363
|
+
}
|
|
28364
|
+
function DialogTitle({
|
|
28365
|
+
className,
|
|
28366
|
+
...props
|
|
28367
|
+
}) {
|
|
28368
|
+
return /* @__PURE__ */ jsx46(
|
|
28369
|
+
DialogPrimitive.Title,
|
|
28370
|
+
{
|
|
28371
|
+
"data-slot": "dialog-title",
|
|
28372
|
+
className: cn("text-lg leading-none font-semibold", className),
|
|
28373
|
+
...props
|
|
28374
|
+
}
|
|
28375
|
+
);
|
|
28376
|
+
}
|
|
28377
|
+
function DialogDescription({
|
|
28378
|
+
className,
|
|
28379
|
+
...props
|
|
28380
|
+
}) {
|
|
28381
|
+
return /* @__PURE__ */ jsx46(
|
|
28382
|
+
DialogPrimitive.Description,
|
|
28383
|
+
{
|
|
28384
|
+
"data-slot": "dialog-description",
|
|
28385
|
+
className: cn("text-muted-foreground text-sm", className),
|
|
28386
|
+
...props
|
|
28387
|
+
}
|
|
28388
|
+
);
|
|
28389
|
+
}
|
|
28390
|
+
|
|
28391
|
+
// src/components/ui/command.tsx
|
|
28392
|
+
import { jsx as jsx47, jsxs as jsxs27 } from "react/jsx-runtime";
|
|
28393
|
+
function Command2({
|
|
28394
|
+
className,
|
|
28395
|
+
...props
|
|
28396
|
+
}) {
|
|
28397
|
+
return /* @__PURE__ */ jsx47(
|
|
28398
|
+
CommandPrimitive,
|
|
28399
|
+
{
|
|
28400
|
+
"data-slot": "command",
|
|
28401
|
+
className: cn(
|
|
28402
|
+
"bg-popover text-popover-foreground flex h-full w-full flex-col overflow-hidden rounded-md",
|
|
28403
|
+
className
|
|
28404
|
+
),
|
|
28405
|
+
...props
|
|
28406
|
+
}
|
|
28407
|
+
);
|
|
28408
|
+
}
|
|
28409
|
+
function CommandInput({
|
|
28410
|
+
className,
|
|
28411
|
+
...props
|
|
28412
|
+
}) {
|
|
28413
|
+
return /* @__PURE__ */ jsxs27(
|
|
28414
|
+
"div",
|
|
28415
|
+
{
|
|
28416
|
+
"data-slot": "command-input-wrapper",
|
|
28417
|
+
className: "flex h-9 items-center gap-2 border-b px-3",
|
|
28418
|
+
children: [
|
|
28419
|
+
/* @__PURE__ */ jsx47(Search, { className: "size-4 shrink-0 opacity-50" }),
|
|
28420
|
+
/* @__PURE__ */ jsx47(
|
|
28421
|
+
CommandPrimitive.Input,
|
|
28422
|
+
{
|
|
28423
|
+
"data-slot": "command-input",
|
|
28424
|
+
className: cn(
|
|
28425
|
+
"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",
|
|
28426
|
+
className
|
|
28427
|
+
),
|
|
28428
|
+
...props
|
|
28429
|
+
}
|
|
28430
|
+
)
|
|
28431
|
+
]
|
|
28432
|
+
}
|
|
28433
|
+
);
|
|
28434
|
+
}
|
|
28435
|
+
function CommandList({
|
|
28436
|
+
className,
|
|
28437
|
+
...props
|
|
28438
|
+
}) {
|
|
28439
|
+
return /* @__PURE__ */ jsx47(
|
|
28440
|
+
CommandPrimitive.List,
|
|
28441
|
+
{
|
|
28442
|
+
"data-slot": "command-list",
|
|
28443
|
+
className: cn(
|
|
28444
|
+
"max-h-[300px] scroll-py-1 overflow-x-hidden overflow-y-auto",
|
|
28445
|
+
className
|
|
28446
|
+
),
|
|
28447
|
+
...props
|
|
28448
|
+
}
|
|
28449
|
+
);
|
|
28450
|
+
}
|
|
28451
|
+
function CommandEmpty({
|
|
28452
|
+
...props
|
|
28453
|
+
}) {
|
|
28454
|
+
return /* @__PURE__ */ jsx47(
|
|
28455
|
+
CommandPrimitive.Empty,
|
|
28456
|
+
{
|
|
28457
|
+
"data-slot": "command-empty",
|
|
28458
|
+
className: "py-6 text-center text-sm",
|
|
28459
|
+
...props
|
|
28460
|
+
}
|
|
28461
|
+
);
|
|
28462
|
+
}
|
|
28463
|
+
function CommandGroup({
|
|
28464
|
+
className,
|
|
28465
|
+
...props
|
|
28466
|
+
}) {
|
|
28467
|
+
return /* @__PURE__ */ jsx47(
|
|
28468
|
+
CommandPrimitive.Group,
|
|
28469
|
+
{
|
|
28470
|
+
"data-slot": "command-group",
|
|
28471
|
+
className: cn(
|
|
28472
|
+
"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",
|
|
28473
|
+
className
|
|
28474
|
+
),
|
|
28475
|
+
...props
|
|
28476
|
+
}
|
|
28477
|
+
);
|
|
28478
|
+
}
|
|
28479
|
+
function CommandItem({
|
|
28480
|
+
className,
|
|
28481
|
+
...props
|
|
28482
|
+
}) {
|
|
28483
|
+
return /* @__PURE__ */ jsx47(
|
|
28484
|
+
CommandPrimitive.Item,
|
|
28485
|
+
{
|
|
28486
|
+
"data-slot": "command-item",
|
|
28487
|
+
className: cn(
|
|
28488
|
+
"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",
|
|
28489
|
+
className
|
|
28490
|
+
),
|
|
28491
|
+
...props
|
|
28492
|
+
}
|
|
28493
|
+
);
|
|
28494
|
+
}
|
|
28495
|
+
|
|
28496
|
+
// src/components/Inputs/Multiselect/MultiSelect.tsx
|
|
28497
|
+
import { jsx as jsx48, jsxs as jsxs28 } from "react/jsx-runtime";
|
|
28498
|
+
var MultiSelect = ({
|
|
28499
|
+
value = [],
|
|
28500
|
+
onChange,
|
|
28501
|
+
data = [],
|
|
28502
|
+
placeholder = "Select...",
|
|
28503
|
+
disabled,
|
|
28504
|
+
searchable = true,
|
|
28505
|
+
className = "",
|
|
28506
|
+
...props
|
|
28507
|
+
}) => {
|
|
28508
|
+
const [open, setOpen] = React7.useState(false);
|
|
28509
|
+
React7.useEffect(() => {
|
|
28510
|
+
if (value) {
|
|
28511
|
+
onChange(value);
|
|
28512
|
+
}
|
|
28513
|
+
}, []);
|
|
28514
|
+
const toggleOption = (val) => {
|
|
28515
|
+
onChange(
|
|
28516
|
+
value?.includes(val) ? value.filter((v) => v !== val) : [...value || [], val]
|
|
28517
|
+
);
|
|
28518
|
+
};
|
|
28519
|
+
const selectedLabels = React7.useMemo(
|
|
28520
|
+
() => data.filter((opt) => value.includes(opt.value)).map((opt) => opt.label),
|
|
28521
|
+
[data, value]
|
|
28522
|
+
);
|
|
28523
|
+
return /* @__PURE__ */ jsxs28(Popover, { open, onOpenChange: setOpen, children: [
|
|
28524
|
+
/* @__PURE__ */ jsx48(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxs28(
|
|
28525
|
+
Button,
|
|
28526
|
+
{
|
|
28527
|
+
variant: "outline",
|
|
28528
|
+
role: "combobox",
|
|
28529
|
+
className: `w-full justify-between ${className} ${props.errorMessage ? "border-red-500" : ""}`,
|
|
28530
|
+
disabled,
|
|
28531
|
+
type: "button",
|
|
28532
|
+
children: [
|
|
28533
|
+
/* @__PURE__ */ jsx48("span", { className: "truncate", children: selectedLabels.length > 0 ? selectedLabels.join(", ") : placeholder }),
|
|
28534
|
+
/* @__PURE__ */ jsx48(ChevronsUpDown, { className: "ml-2 h-4 w-4 shrink-0 opacity-50" })
|
|
28535
|
+
]
|
|
28536
|
+
}
|
|
28537
|
+
) }),
|
|
28538
|
+
/* @__PURE__ */ jsx48(
|
|
28539
|
+
PopoverContent,
|
|
28540
|
+
{
|
|
28541
|
+
align: "start",
|
|
28542
|
+
className: "w-[var(--radix-popover-trigger-width)] p-0",
|
|
28543
|
+
onOpenAutoFocus: (e) => e.preventDefault(),
|
|
28544
|
+
onInteractOutside: (e) => {
|
|
28545
|
+
if (e.target.closest(".keep-open")) e.preventDefault();
|
|
28546
|
+
},
|
|
28547
|
+
children: /* @__PURE__ */ jsxs28(Command2, { shouldFilter: searchable, children: [
|
|
28548
|
+
searchable && /* @__PURE__ */ jsx48(CommandInput, { placeholder: "Search..." }),
|
|
28549
|
+
/* @__PURE__ */ jsxs28(CommandList, { children: [
|
|
28550
|
+
/* @__PURE__ */ jsx48(CommandEmpty, { children: "No options found." }),
|
|
28551
|
+
/* @__PURE__ */ jsx48(CommandGroup, { children: data.map((opt) => {
|
|
28552
|
+
const isSelected = value.includes(opt.value);
|
|
28553
|
+
return /* @__PURE__ */ jsx48(
|
|
28554
|
+
"div",
|
|
28555
|
+
{
|
|
28556
|
+
className: "keep-open",
|
|
28557
|
+
children: /* @__PURE__ */ jsx48(
|
|
28558
|
+
CommandItem,
|
|
28559
|
+
{
|
|
28560
|
+
onMouseDown: (e) => {
|
|
28561
|
+
e.preventDefault();
|
|
28562
|
+
toggleOption(opt.value);
|
|
28563
|
+
},
|
|
28564
|
+
children: /* @__PURE__ */ jsxs28("div", { className: "flex items-center gap-2", children: [
|
|
28565
|
+
/* @__PURE__ */ jsx48(Checkbox, { checked: isSelected }),
|
|
28566
|
+
/* @__PURE__ */ jsx48("span", { children: opt.label })
|
|
28567
|
+
] })
|
|
28568
|
+
},
|
|
28569
|
+
opt.value
|
|
28570
|
+
)
|
|
28571
|
+
},
|
|
28572
|
+
opt.value
|
|
28573
|
+
);
|
|
28574
|
+
}) })
|
|
28575
|
+
] })
|
|
28576
|
+
] })
|
|
28577
|
+
}
|
|
28578
|
+
),
|
|
28579
|
+
props.errorMessage && /* @__PURE__ */ jsx48("p", { className: "mt-1 text-xs text-red-500", children: props.errorMessage })
|
|
28580
|
+
] });
|
|
28581
|
+
};
|
|
28582
|
+
var MultiSelect_default = MultiSelect;
|
|
28583
|
+
|
|
28584
|
+
// src/components/ui/data-table.tsx
|
|
28585
|
+
import * as React8 from "react";
|
|
28273
28586
|
import { faEllipsisH } from "@fortawesome/free-solid-svg-icons";
|
|
28274
28587
|
import { FontAwesomeIcon as FontAwesomeIcon3 } from "@fortawesome/react-fontawesome";
|
|
28275
28588
|
import {
|
|
@@ -28281,14 +28594,14 @@ import {
|
|
|
28281
28594
|
} from "@tanstack/react-table";
|
|
28282
28595
|
|
|
28283
28596
|
// src/components/ui/table.tsx
|
|
28284
|
-
import { jsx as
|
|
28597
|
+
import { jsx as jsx49 } from "react/jsx-runtime";
|
|
28285
28598
|
function Table3({ className, ...props }) {
|
|
28286
|
-
return /* @__PURE__ */
|
|
28599
|
+
return /* @__PURE__ */ jsx49(
|
|
28287
28600
|
"div",
|
|
28288
28601
|
{
|
|
28289
28602
|
"data-slot": "table-container",
|
|
28290
28603
|
className: "relative w-full overflow-x-auto rounded-md border border-gray-200 bg-white",
|
|
28291
|
-
children: /* @__PURE__ */
|
|
28604
|
+
children: /* @__PURE__ */ jsx49(
|
|
28292
28605
|
"table",
|
|
28293
28606
|
{
|
|
28294
28607
|
"data-slot": "table",
|
|
@@ -28300,7 +28613,7 @@ function Table3({ className, ...props }) {
|
|
|
28300
28613
|
);
|
|
28301
28614
|
}
|
|
28302
28615
|
function TableHeader({ className, ...props }) {
|
|
28303
|
-
return /* @__PURE__ */
|
|
28616
|
+
return /* @__PURE__ */ jsx49(
|
|
28304
28617
|
"thead",
|
|
28305
28618
|
{
|
|
28306
28619
|
"data-slot": "table-header",
|
|
@@ -28313,7 +28626,7 @@ function TableHeader({ className, ...props }) {
|
|
|
28313
28626
|
);
|
|
28314
28627
|
}
|
|
28315
28628
|
function TableBody({ className, ...props }) {
|
|
28316
|
-
return /* @__PURE__ */
|
|
28629
|
+
return /* @__PURE__ */ jsx49(
|
|
28317
28630
|
"tbody",
|
|
28318
28631
|
{
|
|
28319
28632
|
"data-slot": "table-body",
|
|
@@ -28326,7 +28639,7 @@ function TableBody({ className, ...props }) {
|
|
|
28326
28639
|
);
|
|
28327
28640
|
}
|
|
28328
28641
|
function TableRow({ className, ...props }) {
|
|
28329
|
-
return /* @__PURE__ */
|
|
28642
|
+
return /* @__PURE__ */ jsx49(
|
|
28330
28643
|
"tr",
|
|
28331
28644
|
{
|
|
28332
28645
|
"data-slot": "table-row",
|
|
@@ -28339,7 +28652,7 @@ function TableRow({ className, ...props }) {
|
|
|
28339
28652
|
);
|
|
28340
28653
|
}
|
|
28341
28654
|
function TableHead({ className, ...props }) {
|
|
28342
|
-
return /* @__PURE__ */
|
|
28655
|
+
return /* @__PURE__ */ jsx49(
|
|
28343
28656
|
"th",
|
|
28344
28657
|
{
|
|
28345
28658
|
"data-slot": "table-head",
|
|
@@ -28352,7 +28665,7 @@ function TableHead({ className, ...props }) {
|
|
|
28352
28665
|
);
|
|
28353
28666
|
}
|
|
28354
28667
|
function TableCell({ className, ...props }) {
|
|
28355
|
-
return /* @__PURE__ */
|
|
28668
|
+
return /* @__PURE__ */ jsx49(
|
|
28356
28669
|
"td",
|
|
28357
28670
|
{
|
|
28358
28671
|
"data-slot": "table-cell",
|
|
@@ -28366,7 +28679,7 @@ function TableCell({ className, ...props }) {
|
|
|
28366
28679
|
}
|
|
28367
28680
|
|
|
28368
28681
|
// src/components/ui/data-table.tsx
|
|
28369
|
-
import { Fragment as Fragment17, jsx as
|
|
28682
|
+
import { Fragment as Fragment17, jsx as jsx50, jsxs as jsxs29 } from "react/jsx-runtime";
|
|
28370
28683
|
function DataTable({
|
|
28371
28684
|
columns,
|
|
28372
28685
|
data,
|
|
@@ -28383,10 +28696,10 @@ function DataTable({
|
|
|
28383
28696
|
globalSearch,
|
|
28384
28697
|
onCellClick
|
|
28385
28698
|
}) {
|
|
28386
|
-
const [columnFilters, setColumnFilters] =
|
|
28387
|
-
const [columnVisibility, setColumnVisibility] =
|
|
28388
|
-
const [manualSort, setManualSort] =
|
|
28389
|
-
const [searchTerm, setSearchTerm] =
|
|
28699
|
+
const [columnFilters, setColumnFilters] = React8.useState([]);
|
|
28700
|
+
const [columnVisibility, setColumnVisibility] = React8.useState({});
|
|
28701
|
+
const [manualSort, setManualSort] = React8.useState(null);
|
|
28702
|
+
const [searchTerm, setSearchTerm] = React8.useState("");
|
|
28390
28703
|
const table = useReactTable({
|
|
28391
28704
|
data,
|
|
28392
28705
|
columns,
|
|
@@ -28434,11 +28747,11 @@ function DataTable({
|
|
|
28434
28747
|
}
|
|
28435
28748
|
return [];
|
|
28436
28749
|
};
|
|
28437
|
-
return /* @__PURE__ */
|
|
28438
|
-
/* @__PURE__ */
|
|
28439
|
-
globalSearch && /* @__PURE__ */
|
|
28440
|
-
/* @__PURE__ */
|
|
28441
|
-
/* @__PURE__ */
|
|
28750
|
+
return /* @__PURE__ */ jsxs29("div", { className: "overflow-hidden rounded-md w-full", children: [
|
|
28751
|
+
/* @__PURE__ */ jsxs29("div", { className: `flex ${globalSearch ? "justify-between" : "justify-end"} p-2 bg-gray-50`, children: [
|
|
28752
|
+
globalSearch && /* @__PURE__ */ jsxs29("div", { className: "flex items-center gap-2 w-full max-w-sm", children: [
|
|
28753
|
+
/* @__PURE__ */ jsxs29("div", { className: "relative w-full", children: [
|
|
28754
|
+
/* @__PURE__ */ jsx50(
|
|
28442
28755
|
"input",
|
|
28443
28756
|
{
|
|
28444
28757
|
type: "text",
|
|
@@ -28453,9 +28766,9 @@ function DataTable({
|
|
|
28453
28766
|
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]"
|
|
28454
28767
|
}
|
|
28455
28768
|
),
|
|
28456
|
-
/* @__PURE__ */
|
|
28769
|
+
/* @__PURE__ */ jsx50(Search, { className: "absolute left-2 top-2.5 text-gray-400", size: 16 })
|
|
28457
28770
|
] }),
|
|
28458
|
-
/* @__PURE__ */
|
|
28771
|
+
/* @__PURE__ */ jsx50(
|
|
28459
28772
|
Button,
|
|
28460
28773
|
{
|
|
28461
28774
|
size: "sm",
|
|
@@ -28465,8 +28778,8 @@ function DataTable({
|
|
|
28465
28778
|
}
|
|
28466
28779
|
)
|
|
28467
28780
|
] }),
|
|
28468
|
-
/* @__PURE__ */
|
|
28469
|
-
/* @__PURE__ */
|
|
28781
|
+
/* @__PURE__ */ jsxs29(Popover, { children: [
|
|
28782
|
+
/* @__PURE__ */ jsx50(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsx50(
|
|
28470
28783
|
Button,
|
|
28471
28784
|
{
|
|
28472
28785
|
variant: "outline",
|
|
@@ -28475,10 +28788,10 @@ function DataTable({
|
|
|
28475
28788
|
children: "Manage Columns"
|
|
28476
28789
|
}
|
|
28477
28790
|
) }),
|
|
28478
|
-
/* @__PURE__ */
|
|
28479
|
-
/* @__PURE__ */
|
|
28480
|
-
/* @__PURE__ */
|
|
28481
|
-
/* @__PURE__ */
|
|
28791
|
+
/* @__PURE__ */ jsxs29(PopoverContent, { align: "end", className: "w-48 p-3 space-y-2", children: [
|
|
28792
|
+
/* @__PURE__ */ jsx50("div", { className: "text-sm font-medium mb-2", children: "Show / Hide Columns" }),
|
|
28793
|
+
/* @__PURE__ */ jsxs29("label", { className: "flex items-center gap-2 text-sm font-semibold border-b pb-2 mb-2", children: [
|
|
28794
|
+
/* @__PURE__ */ jsx50(
|
|
28482
28795
|
"input",
|
|
28483
28796
|
{
|
|
28484
28797
|
type: "checkbox",
|
|
@@ -28497,8 +28810,8 @@ function DataTable({
|
|
|
28497
28810
|
),
|
|
28498
28811
|
"Toggle All"
|
|
28499
28812
|
] }),
|
|
28500
|
-
table.getAllLeafColumns().map((column) => /* @__PURE__ */
|
|
28501
|
-
/* @__PURE__ */
|
|
28813
|
+
table.getAllLeafColumns().map((column) => /* @__PURE__ */ jsxs29("label", { className: "flex items-center gap-2 text-sm", children: [
|
|
28814
|
+
/* @__PURE__ */ jsx50(
|
|
28502
28815
|
"input",
|
|
28503
28816
|
{
|
|
28504
28817
|
type: "checkbox",
|
|
@@ -28511,13 +28824,13 @@ function DataTable({
|
|
|
28511
28824
|
] })
|
|
28512
28825
|
] })
|
|
28513
28826
|
] }),
|
|
28514
|
-
/* @__PURE__ */
|
|
28515
|
-
/* @__PURE__ */
|
|
28827
|
+
/* @__PURE__ */ jsxs29(Table3, { children: [
|
|
28828
|
+
/* @__PURE__ */ jsx50(TableHeader, { children: table.getHeaderGroups().map((hg) => /* @__PURE__ */ jsx50(TableRow, { children: hg.headers.map((header) => {
|
|
28516
28829
|
const canSort = header.column.getCanSort();
|
|
28517
28830
|
const canFilter = header.column.getCanFilter();
|
|
28518
28831
|
const sortDir = manualSort?.key === header.column.id ? manualSort.dir : null;
|
|
28519
|
-
return /* @__PURE__ */
|
|
28520
|
-
/* @__PURE__ */
|
|
28832
|
+
return /* @__PURE__ */ jsx50(TableHead, { className: "relative select-none", children: /* @__PURE__ */ jsxs29("div", { className: "flex items-center justify-between", children: [
|
|
28833
|
+
/* @__PURE__ */ jsxs29(
|
|
28521
28834
|
"span",
|
|
28522
28835
|
{
|
|
28523
28836
|
className: `flex items-center gap-1 ${canSort ? "cursor-pointer" : ""}`,
|
|
@@ -28529,32 +28842,32 @@ function DataTable({
|
|
|
28529
28842
|
},
|
|
28530
28843
|
children: [
|
|
28531
28844
|
flexRender(header.column.columnDef.header, header.getContext()),
|
|
28532
|
-
canSort && /* @__PURE__ */
|
|
28533
|
-
sortDir === "asc" && /* @__PURE__ */
|
|
28534
|
-
sortDir === "desc" && /* @__PURE__ */
|
|
28535
|
-
!sortDir && /* @__PURE__ */
|
|
28845
|
+
canSort && /* @__PURE__ */ jsxs29(Fragment17, { children: [
|
|
28846
|
+
sortDir === "asc" && /* @__PURE__ */ jsx50(ArrowUp, { size: 14, className: "text-gray-500" }),
|
|
28847
|
+
sortDir === "desc" && /* @__PURE__ */ jsx50(ArrowDown, { size: 14, className: "text-gray-500" }),
|
|
28848
|
+
!sortDir && /* @__PURE__ */ jsx50(ArrowUpDown, { size: 14, className: "text-gray-400" })
|
|
28536
28849
|
] })
|
|
28537
28850
|
]
|
|
28538
28851
|
}
|
|
28539
28852
|
),
|
|
28540
|
-
canFilter && /* @__PURE__ */
|
|
28541
|
-
/* @__PURE__ */
|
|
28853
|
+
canFilter && /* @__PURE__ */ jsxs29(Popover, { children: [
|
|
28854
|
+
/* @__PURE__ */ jsx50(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsx50(
|
|
28542
28855
|
"span",
|
|
28543
28856
|
{
|
|
28544
28857
|
role: "presentation",
|
|
28545
28858
|
className: "pl-5 cursor-pointer",
|
|
28546
28859
|
onClick: (e) => e.stopPropagation(),
|
|
28547
|
-
children: /* @__PURE__ */
|
|
28860
|
+
children: /* @__PURE__ */ jsx50(FontAwesomeIcon3, { icon: faEllipsisH, className: "w-5 h-5 text-gray-500" })
|
|
28548
28861
|
}
|
|
28549
28862
|
) }),
|
|
28550
|
-
/* @__PURE__ */
|
|
28863
|
+
/* @__PURE__ */ jsx50(
|
|
28551
28864
|
PopoverContent,
|
|
28552
28865
|
{
|
|
28553
28866
|
align: "center",
|
|
28554
28867
|
sideOffset: 14,
|
|
28555
28868
|
className: "w-50 p-3 z-[200] border-gray-300",
|
|
28556
28869
|
avoidCollisions: true,
|
|
28557
|
-
children: /* @__PURE__ */
|
|
28870
|
+
children: /* @__PURE__ */ jsxs29(
|
|
28558
28871
|
"form",
|
|
28559
28872
|
{
|
|
28560
28873
|
onSubmit: (e) => {
|
|
@@ -28567,8 +28880,8 @@ function DataTable({
|
|
|
28567
28880
|
},
|
|
28568
28881
|
className: "space-y-2",
|
|
28569
28882
|
children: [
|
|
28570
|
-
/* @__PURE__ */
|
|
28571
|
-
/* @__PURE__ */
|
|
28883
|
+
/* @__PURE__ */ jsx50("label", { htmlFor: "filter", className: "text-xs text-gray-500 font-normal", children: "Filter by value:" }),
|
|
28884
|
+
/* @__PURE__ */ jsx50(
|
|
28572
28885
|
"input",
|
|
28573
28886
|
{
|
|
28574
28887
|
name: "filter",
|
|
@@ -28578,7 +28891,7 @@ function DataTable({
|
|
|
28578
28891
|
autoComplete: "off"
|
|
28579
28892
|
}
|
|
28580
28893
|
),
|
|
28581
|
-
/* @__PURE__ */
|
|
28894
|
+
/* @__PURE__ */ jsx50("div", { className: "justify-end flex", children: /* @__PURE__ */ jsx50(
|
|
28582
28895
|
Button,
|
|
28583
28896
|
{
|
|
28584
28897
|
type: "submit",
|
|
@@ -28594,10 +28907,10 @@ function DataTable({
|
|
|
28594
28907
|
] })
|
|
28595
28908
|
] }) }, header.id);
|
|
28596
28909
|
}) }, hg.id)) }),
|
|
28597
|
-
/* @__PURE__ */
|
|
28910
|
+
/* @__PURE__ */ jsx50(TableBody, { children: loading ? /* @__PURE__ */ jsx50(TableRow, { children: /* @__PURE__ */ jsx50(TableCell, { colSpan: columns.length, className: "h-24 text-center", children: "Loading..." }) }) : table.getRowModel().rows.length ? table.getRowModel().rows.map((row) => /* @__PURE__ */ jsx50(TableRow, { children: row.getVisibleCells().map((cell) => {
|
|
28598
28911
|
const meta = cell.column.columnDef.meta || {};
|
|
28599
28912
|
const isClickable = meta?.isClickable;
|
|
28600
|
-
return /* @__PURE__ */
|
|
28913
|
+
return /* @__PURE__ */ jsx50(
|
|
28601
28914
|
TableCell,
|
|
28602
28915
|
{
|
|
28603
28916
|
className: `${meta?.cellClass ?? ""} ${isClickable ? "cursor-pointer hover:bg-gray-100 underline" : ""}`,
|
|
@@ -28611,17 +28924,17 @@ function DataTable({
|
|
|
28611
28924
|
},
|
|
28612
28925
|
cell.id
|
|
28613
28926
|
);
|
|
28614
|
-
}) }, row.id)) : /* @__PURE__ */
|
|
28927
|
+
}) }, row.id)) : /* @__PURE__ */ jsx50(TableRow, { children: /* @__PURE__ */ jsx50(TableCell, { colSpan: columns.length, className: "h-24 text-center", children: "No results." }) }) })
|
|
28615
28928
|
] }),
|
|
28616
|
-
pagination && /* @__PURE__ */
|
|
28617
|
-
/* @__PURE__ */
|
|
28929
|
+
pagination && /* @__PURE__ */ jsxs29("div", { className: "flex items-center justify-between py-3 px-2 text-sm w-full", children: [
|
|
28930
|
+
/* @__PURE__ */ jsxs29("div", { children: [
|
|
28618
28931
|
"Page ",
|
|
28619
28932
|
table.getState().pagination.pageIndex + 1,
|
|
28620
28933
|
" of ",
|
|
28621
28934
|
table.getPageCount()
|
|
28622
28935
|
] }),
|
|
28623
|
-
/* @__PURE__ */
|
|
28624
|
-
/* @__PURE__ */
|
|
28936
|
+
/* @__PURE__ */ jsxs29("div", { className: "flex items-center gap-2", children: [
|
|
28937
|
+
/* @__PURE__ */ jsx50(
|
|
28625
28938
|
"button",
|
|
28626
28939
|
{
|
|
28627
28940
|
onClick: () => table.previousPage(),
|
|
@@ -28634,7 +28947,7 @@ function DataTable({
|
|
|
28634
28947
|
table.getState().pagination.pageIndex + 1,
|
|
28635
28948
|
table.getPageCount(),
|
|
28636
28949
|
5
|
|
28637
|
-
).map((pageNum, index) => /* @__PURE__ */
|
|
28950
|
+
).map((pageNum, index) => /* @__PURE__ */ jsx50(
|
|
28638
28951
|
"button",
|
|
28639
28952
|
{
|
|
28640
28953
|
disabled: pageNum === "...",
|
|
@@ -28644,7 +28957,7 @@ function DataTable({
|
|
|
28644
28957
|
},
|
|
28645
28958
|
index
|
|
28646
28959
|
)),
|
|
28647
|
-
/* @__PURE__ */
|
|
28960
|
+
/* @__PURE__ */ jsx50(
|
|
28648
28961
|
"button",
|
|
28649
28962
|
{
|
|
28650
28963
|
onClick: () => table.nextPage(),
|
|
@@ -28659,7 +28972,7 @@ function DataTable({
|
|
|
28659
28972
|
}
|
|
28660
28973
|
|
|
28661
28974
|
// src/components/DataDisplay/Table/Table.tsx
|
|
28662
|
-
import { jsx as
|
|
28975
|
+
import { jsx as jsx51 } from "react/jsx-runtime";
|
|
28663
28976
|
var Table4 = ({
|
|
28664
28977
|
columns,
|
|
28665
28978
|
data,
|
|
@@ -28682,7 +28995,7 @@ var Table4 = ({
|
|
|
28682
28995
|
const rawColumns = Array.isArray(columns) ? columns : [];
|
|
28683
28996
|
const rawData = Array.isArray(data) ? data : [];
|
|
28684
28997
|
const isControlled = typeof page === "number";
|
|
28685
|
-
return /* @__PURE__ */
|
|
28998
|
+
return /* @__PURE__ */ jsx51("div", { className: `${className || ""} space-y-3`, style, children: /* @__PURE__ */ jsx51(
|
|
28686
28999
|
DataTable,
|
|
28687
29000
|
{
|
|
28688
29001
|
...props,
|
|
@@ -28711,9 +29024,9 @@ var Table4 = ({
|
|
|
28711
29024
|
var Table_default = Table4;
|
|
28712
29025
|
|
|
28713
29026
|
// src/components/ui/pagination.tsx
|
|
28714
|
-
import { jsx as
|
|
29027
|
+
import { jsx as jsx52, jsxs as jsxs30 } from "react/jsx-runtime";
|
|
28715
29028
|
function Pagination({ className, ...props }) {
|
|
28716
|
-
return /* @__PURE__ */
|
|
29029
|
+
return /* @__PURE__ */ jsx52(
|
|
28717
29030
|
"nav",
|
|
28718
29031
|
{
|
|
28719
29032
|
role: "navigation",
|
|
@@ -28728,7 +29041,7 @@ function PaginationContent({
|
|
|
28728
29041
|
className,
|
|
28729
29042
|
...props
|
|
28730
29043
|
}) {
|
|
28731
|
-
return /* @__PURE__ */
|
|
29044
|
+
return /* @__PURE__ */ jsx52(
|
|
28732
29045
|
"ul",
|
|
28733
29046
|
{
|
|
28734
29047
|
"data-slot": "pagination-content",
|
|
@@ -28738,7 +29051,7 @@ function PaginationContent({
|
|
|
28738
29051
|
);
|
|
28739
29052
|
}
|
|
28740
29053
|
function PaginationItem({ ...props }) {
|
|
28741
|
-
return /* @__PURE__ */
|
|
29054
|
+
return /* @__PURE__ */ jsx52("li", { "data-slot": "pagination-item", ...props });
|
|
28742
29055
|
}
|
|
28743
29056
|
function PaginationLink({
|
|
28744
29057
|
className,
|
|
@@ -28746,7 +29059,7 @@ function PaginationLink({
|
|
|
28746
29059
|
size = "icon",
|
|
28747
29060
|
...props
|
|
28748
29061
|
}) {
|
|
28749
|
-
return /* @__PURE__ */
|
|
29062
|
+
return /* @__PURE__ */ jsx52(
|
|
28750
29063
|
"a",
|
|
28751
29064
|
{
|
|
28752
29065
|
"aria-current": isActive ? "page" : void 0,
|
|
@@ -28767,7 +29080,7 @@ function PaginationPrevious({
|
|
|
28767
29080
|
className,
|
|
28768
29081
|
...props
|
|
28769
29082
|
}) {
|
|
28770
|
-
return /* @__PURE__ */
|
|
29083
|
+
return /* @__PURE__ */ jsxs30(
|
|
28771
29084
|
PaginationLink,
|
|
28772
29085
|
{
|
|
28773
29086
|
"aria-label": "Go to previous page",
|
|
@@ -28775,8 +29088,8 @@ function PaginationPrevious({
|
|
|
28775
29088
|
className: cn("gap-1 px-2.5 sm:pl-2.5", className),
|
|
28776
29089
|
...props,
|
|
28777
29090
|
children: [
|
|
28778
|
-
/* @__PURE__ */
|
|
28779
|
-
/* @__PURE__ */
|
|
29091
|
+
/* @__PURE__ */ jsx52(ChevronLeft, {}),
|
|
29092
|
+
/* @__PURE__ */ jsx52("span", { className: "hidden sm:block", children: "Previous" })
|
|
28780
29093
|
]
|
|
28781
29094
|
}
|
|
28782
29095
|
);
|
|
@@ -28785,7 +29098,7 @@ function PaginationNext({
|
|
|
28785
29098
|
className,
|
|
28786
29099
|
...props
|
|
28787
29100
|
}) {
|
|
28788
|
-
return /* @__PURE__ */
|
|
29101
|
+
return /* @__PURE__ */ jsxs30(
|
|
28789
29102
|
PaginationLink,
|
|
28790
29103
|
{
|
|
28791
29104
|
"aria-label": "Go to next page",
|
|
@@ -28793,8 +29106,8 @@ function PaginationNext({
|
|
|
28793
29106
|
className: cn("gap-1 px-2.5 sm:pr-2.5", className),
|
|
28794
29107
|
...props,
|
|
28795
29108
|
children: [
|
|
28796
|
-
/* @__PURE__ */
|
|
28797
|
-
/* @__PURE__ */
|
|
29109
|
+
/* @__PURE__ */ jsx52("span", { className: "hidden sm:block", children: "Next" }),
|
|
29110
|
+
/* @__PURE__ */ jsx52(ChevronRight, {})
|
|
28798
29111
|
]
|
|
28799
29112
|
}
|
|
28800
29113
|
);
|
|
@@ -28803,7 +29116,7 @@ function PaginationEllipsis({
|
|
|
28803
29116
|
className,
|
|
28804
29117
|
...props
|
|
28805
29118
|
}) {
|
|
28806
|
-
return /* @__PURE__ */
|
|
29119
|
+
return /* @__PURE__ */ jsxs30(
|
|
28807
29120
|
"span",
|
|
28808
29121
|
{
|
|
28809
29122
|
"aria-hidden": true,
|
|
@@ -28811,15 +29124,15 @@ function PaginationEllipsis({
|
|
|
28811
29124
|
className: cn("flex size-9 items-center justify-center", className),
|
|
28812
29125
|
...props,
|
|
28813
29126
|
children: [
|
|
28814
|
-
/* @__PURE__ */
|
|
28815
|
-
/* @__PURE__ */
|
|
29127
|
+
/* @__PURE__ */ jsx52(Ellipsis, { className: "size-4" }),
|
|
29128
|
+
/* @__PURE__ */ jsx52("span", { className: "sr-only", children: "More pages" })
|
|
28816
29129
|
]
|
|
28817
29130
|
}
|
|
28818
29131
|
);
|
|
28819
29132
|
}
|
|
28820
29133
|
|
|
28821
29134
|
// src/components/DataDisplay/Pagination/Pagination.tsx
|
|
28822
|
-
import { jsx as
|
|
29135
|
+
import { jsx as jsx53, jsxs as jsxs31 } from "react/jsx-runtime";
|
|
28823
29136
|
var CustomPagination = ({
|
|
28824
29137
|
totalPages,
|
|
28825
29138
|
currentPage,
|
|
@@ -28865,10 +29178,10 @@ var CustomPagination = ({
|
|
|
28865
29178
|
}
|
|
28866
29179
|
};
|
|
28867
29180
|
const pageNumbers = getPageNumbers();
|
|
28868
|
-
return /* @__PURE__ */
|
|
28869
|
-
/* @__PURE__ */
|
|
28870
|
-
/* @__PURE__ */
|
|
28871
|
-
/* @__PURE__ */
|
|
29181
|
+
return /* @__PURE__ */ jsxs31("div", { className: "flex flex-row gap-1 w-full items-center justify-between", children: [
|
|
29182
|
+
/* @__PURE__ */ jsxs31("div", { className: "flex items-center gap-2", children: [
|
|
29183
|
+
/* @__PURE__ */ jsx53("p", { className: "text-sm text-muted-foreground whitespace-nowrap", children: "Items per page:" }),
|
|
29184
|
+
/* @__PURE__ */ jsxs31(
|
|
28872
29185
|
Select,
|
|
28873
29186
|
{
|
|
28874
29187
|
defaultValue: String(perPage),
|
|
@@ -28876,26 +29189,26 @@ var CustomPagination = ({
|
|
|
28876
29189
|
onPageChange({ page: 1, itemsPerPage: Number(value) });
|
|
28877
29190
|
},
|
|
28878
29191
|
children: [
|
|
28879
|
-
/* @__PURE__ */
|
|
28880
|
-
/* @__PURE__ */
|
|
28881
|
-
/* @__PURE__ */
|
|
28882
|
-
/* @__PURE__ */
|
|
28883
|
-
/* @__PURE__ */
|
|
28884
|
-
/* @__PURE__ */
|
|
29192
|
+
/* @__PURE__ */ jsx53(SelectTrigger, { className: "w-[100px]", children: /* @__PURE__ */ jsx53(SelectValue, { placeholder: "Select" }) }),
|
|
29193
|
+
/* @__PURE__ */ jsxs31(SelectContent, { children: [
|
|
29194
|
+
/* @__PURE__ */ jsx53(SelectItem, { value: "5", children: "5" }),
|
|
29195
|
+
/* @__PURE__ */ jsx53(SelectItem, { value: "10", children: "10" }),
|
|
29196
|
+
/* @__PURE__ */ jsx53(SelectItem, { value: "20", children: "20" }),
|
|
29197
|
+
/* @__PURE__ */ jsx53(SelectItem, { value: "50", children: "50" })
|
|
28885
29198
|
] })
|
|
28886
29199
|
]
|
|
28887
29200
|
}
|
|
28888
29201
|
)
|
|
28889
29202
|
] }),
|
|
28890
|
-
/* @__PURE__ */
|
|
28891
|
-
/* @__PURE__ */
|
|
29203
|
+
/* @__PURE__ */ jsx53(Pagination, { className: "justify-end", children: /* @__PURE__ */ jsxs31(PaginationContent, { children: [
|
|
29204
|
+
/* @__PURE__ */ jsx53(PaginationItem, { children: /* @__PURE__ */ jsx53(
|
|
28892
29205
|
PaginationPrevious,
|
|
28893
29206
|
{
|
|
28894
29207
|
onClick: () => handlePageChange(currentPage - 1),
|
|
28895
29208
|
className: currentPage === 1 ? "pointer-events-none opacity-50" : "cursor-pointer"
|
|
28896
29209
|
}
|
|
28897
29210
|
) }),
|
|
28898
|
-
pageNumbers.map((pageNumber, index) => /* @__PURE__ */
|
|
29211
|
+
pageNumbers.map((pageNumber, index) => /* @__PURE__ */ jsx53(PaginationItem, { children: pageNumber === "..." ? /* @__PURE__ */ jsx53(PaginationEllipsis, {}) : /* @__PURE__ */ jsx53(
|
|
28899
29212
|
PaginationLink,
|
|
28900
29213
|
{
|
|
28901
29214
|
onClick: () => handlePageChange(pageNumber),
|
|
@@ -28904,7 +29217,7 @@ var CustomPagination = ({
|
|
|
28904
29217
|
children: pageNumber
|
|
28905
29218
|
}
|
|
28906
29219
|
) }, index)),
|
|
28907
|
-
/* @__PURE__ */
|
|
29220
|
+
/* @__PURE__ */ jsx53(PaginationItem, { children: /* @__PURE__ */ jsx53(
|
|
28908
29221
|
PaginationNext,
|
|
28909
29222
|
{
|
|
28910
29223
|
onClick: () => handlePageChange(currentPage + 1),
|
|
@@ -28919,124 +29232,8 @@ var Pagination_default = CustomPagination;
|
|
|
28919
29232
|
// src/components/Navigation/Tabs/Tabs.tsx
|
|
28920
29233
|
import Link5 from "next/link";
|
|
28921
29234
|
import { useRouter } from "next/navigation";
|
|
28922
|
-
|
|
28923
|
-
|
|
28924
|
-
import * as DialogPrimitive from "@radix-ui/react-dialog";
|
|
28925
|
-
import { jsx as jsx51, jsxs as jsxs29 } from "react/jsx-runtime";
|
|
28926
|
-
function Dialog({
|
|
28927
|
-
...props
|
|
28928
|
-
}) {
|
|
28929
|
-
return /* @__PURE__ */ jsx51(DialogPrimitive.Root, { "data-slot": "dialog", ...props });
|
|
28930
|
-
}
|
|
28931
|
-
function DialogPortal({
|
|
28932
|
-
...props
|
|
28933
|
-
}) {
|
|
28934
|
-
return /* @__PURE__ */ jsx51(DialogPrimitive.Portal, { "data-slot": "dialog-portal", ...props });
|
|
28935
|
-
}
|
|
28936
|
-
function DialogOverlay({
|
|
28937
|
-
className,
|
|
28938
|
-
...props
|
|
28939
|
-
}) {
|
|
28940
|
-
return /* @__PURE__ */ jsx51(
|
|
28941
|
-
DialogPrimitive.Overlay,
|
|
28942
|
-
{
|
|
28943
|
-
"data-slot": "dialog-overlay",
|
|
28944
|
-
className: cn(
|
|
28945
|
-
"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",
|
|
28946
|
-
className
|
|
28947
|
-
),
|
|
28948
|
-
...props
|
|
28949
|
-
}
|
|
28950
|
-
);
|
|
28951
|
-
}
|
|
28952
|
-
function DialogContent({
|
|
28953
|
-
className,
|
|
28954
|
-
children,
|
|
28955
|
-
showCloseButton = true,
|
|
28956
|
-
...props
|
|
28957
|
-
}) {
|
|
28958
|
-
return /* @__PURE__ */ jsxs29(DialogPortal, { "data-slot": "dialog-portal", children: [
|
|
28959
|
-
/* @__PURE__ */ jsx51(DialogOverlay, {}),
|
|
28960
|
-
/* @__PURE__ */ jsxs29(
|
|
28961
|
-
DialogPrimitive.Content,
|
|
28962
|
-
{
|
|
28963
|
-
"data-slot": "dialog-content",
|
|
28964
|
-
className: cn(
|
|
28965
|
-
"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",
|
|
28966
|
-
className
|
|
28967
|
-
),
|
|
28968
|
-
...props,
|
|
28969
|
-
children: [
|
|
28970
|
-
children,
|
|
28971
|
-
showCloseButton && /* @__PURE__ */ jsxs29(
|
|
28972
|
-
DialogPrimitive.Close,
|
|
28973
|
-
{
|
|
28974
|
-
"data-slot": "dialog-close",
|
|
28975
|
-
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",
|
|
28976
|
-
children: [
|
|
28977
|
-
/* @__PURE__ */ jsx51(X, {}),
|
|
28978
|
-
/* @__PURE__ */ jsx51("span", { className: "sr-only", children: "Close" })
|
|
28979
|
-
]
|
|
28980
|
-
}
|
|
28981
|
-
)
|
|
28982
|
-
]
|
|
28983
|
-
}
|
|
28984
|
-
)
|
|
28985
|
-
] });
|
|
28986
|
-
}
|
|
28987
|
-
function DialogHeader({ className, ...props }) {
|
|
28988
|
-
return /* @__PURE__ */ jsx51(
|
|
28989
|
-
"div",
|
|
28990
|
-
{
|
|
28991
|
-
"data-slot": "dialog-header",
|
|
28992
|
-
className: cn("flex flex-col gap-2 text-center sm:text-left", className),
|
|
28993
|
-
...props
|
|
28994
|
-
}
|
|
28995
|
-
);
|
|
28996
|
-
}
|
|
28997
|
-
function DialogFooter({ className, ...props }) {
|
|
28998
|
-
return /* @__PURE__ */ jsx51(
|
|
28999
|
-
"div",
|
|
29000
|
-
{
|
|
29001
|
-
"data-slot": "dialog-footer",
|
|
29002
|
-
className: cn(
|
|
29003
|
-
"flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",
|
|
29004
|
-
className
|
|
29005
|
-
),
|
|
29006
|
-
...props
|
|
29007
|
-
}
|
|
29008
|
-
);
|
|
29009
|
-
}
|
|
29010
|
-
function DialogTitle({
|
|
29011
|
-
className,
|
|
29012
|
-
...props
|
|
29013
|
-
}) {
|
|
29014
|
-
return /* @__PURE__ */ jsx51(
|
|
29015
|
-
DialogPrimitive.Title,
|
|
29016
|
-
{
|
|
29017
|
-
"data-slot": "dialog-title",
|
|
29018
|
-
className: cn("text-lg leading-none font-semibold", className),
|
|
29019
|
-
...props
|
|
29020
|
-
}
|
|
29021
|
-
);
|
|
29022
|
-
}
|
|
29023
|
-
function DialogDescription({
|
|
29024
|
-
className,
|
|
29025
|
-
...props
|
|
29026
|
-
}) {
|
|
29027
|
-
return /* @__PURE__ */ jsx51(
|
|
29028
|
-
DialogPrimitive.Description,
|
|
29029
|
-
{
|
|
29030
|
-
"data-slot": "dialog-description",
|
|
29031
|
-
className: cn("text-muted-foreground text-sm", className),
|
|
29032
|
-
...props
|
|
29033
|
-
}
|
|
29034
|
-
);
|
|
29035
|
-
}
|
|
29036
|
-
|
|
29037
|
-
// src/components/Navigation/Tabs/Tabs.tsx
|
|
29038
|
-
import { useCallback as useCallback2, useState as useState5 } from "react";
|
|
29039
|
-
import { Fragment as Fragment18, jsx as jsx52, jsxs as jsxs30 } from "react/jsx-runtime";
|
|
29235
|
+
import { useCallback as useCallback2, useState as useState6 } from "react";
|
|
29236
|
+
import { Fragment as Fragment18, jsx as jsx54, jsxs as jsxs32 } from "react/jsx-runtime";
|
|
29040
29237
|
var Tabs = ({ className, style, tabs, verticalMenu, pathname, canvasMode, isBuilder = true }) => {
|
|
29041
29238
|
const rawTabs = Array.isArray(tabs) ? tabs : [];
|
|
29042
29239
|
const baseClasses = "text-[12px] text-foreground p-2 text-center rounded-md transition-colors";
|
|
@@ -29047,8 +29244,8 @@ var Tabs = ({ className, style, tabs, verticalMenu, pathname, canvasMode, isBuil
|
|
|
29047
29244
|
return pathname === path || path !== "/" && pathname?.startsWith(path);
|
|
29048
29245
|
};
|
|
29049
29246
|
const router = useRouter();
|
|
29050
|
-
const [showExitDialog, setShowExitDialog] =
|
|
29051
|
-
const [pendingUrl, setPendingUrl] =
|
|
29247
|
+
const [showExitDialog, setShowExitDialog] = useState6(false);
|
|
29248
|
+
const [pendingUrl, setPendingUrl] = useState6(null);
|
|
29052
29249
|
const handleBuilderExit = useCallback2(
|
|
29053
29250
|
(e, url) => {
|
|
29054
29251
|
if (isBuilder) {
|
|
@@ -29068,23 +29265,23 @@ var Tabs = ({ className, style, tabs, verticalMenu, pathname, canvasMode, isBuil
|
|
|
29068
29265
|
const renderDesktopTab = (tab, index) => {
|
|
29069
29266
|
const finalClasses = [baseClasses, isActive(tab.url) ? activeClasses : hoverClasses, tab.className || ""].join(" ");
|
|
29070
29267
|
if (Array.isArray(tab.children) && tab.children.length > 0 && tab.isDropDown) {
|
|
29071
|
-
return /* @__PURE__ */
|
|
29072
|
-
/* @__PURE__ */
|
|
29268
|
+
return /* @__PURE__ */ jsxs32(DropdownMenu, { children: [
|
|
29269
|
+
/* @__PURE__ */ jsxs32(DropdownMenuTrigger, { className: `${finalClasses} inline-flex items-center gap-1`, children: [
|
|
29073
29270
|
tab.header,
|
|
29074
|
-
/* @__PURE__ */
|
|
29271
|
+
/* @__PURE__ */ jsx54(ChevronDown, { className: "h-4 w-4 opacity-80" })
|
|
29075
29272
|
] }),
|
|
29076
|
-
/* @__PURE__ */
|
|
29273
|
+
/* @__PURE__ */ jsx54(
|
|
29077
29274
|
DropdownMenuContent,
|
|
29078
29275
|
{
|
|
29079
29276
|
align: "start",
|
|
29080
29277
|
sideOffset: 6,
|
|
29081
29278
|
className: "z-50 min-w-[160px] rounded-md border border-gray-200 bg-white p-1 shadow-lg",
|
|
29082
|
-
children: tab.children.map((item) => /* @__PURE__ */
|
|
29279
|
+
children: tab.children.map((item) => /* @__PURE__ */ jsx54(
|
|
29083
29280
|
DropdownMenuItem,
|
|
29084
29281
|
{
|
|
29085
29282
|
asChild: true,
|
|
29086
29283
|
className: "cursor-pointer rounded-sm px-3 py-2 text-[12px] text-gray-800 hover:bg-gray-100 focus:bg-gray-100",
|
|
29087
|
-
children: /* @__PURE__ */
|
|
29284
|
+
children: /* @__PURE__ */ jsx54(Link5, { href: item.url || "#", onClick: (e) => handleBuilderExit(e, item.url || "#"), children: item.header })
|
|
29088
29285
|
},
|
|
29089
29286
|
item.id
|
|
29090
29287
|
))
|
|
@@ -29092,7 +29289,7 @@ var Tabs = ({ className, style, tabs, verticalMenu, pathname, canvasMode, isBuil
|
|
|
29092
29289
|
)
|
|
29093
29290
|
] }, index);
|
|
29094
29291
|
}
|
|
29095
|
-
return tab.url ? /* @__PURE__ */
|
|
29292
|
+
return tab.url ? /* @__PURE__ */ jsx54(
|
|
29096
29293
|
Link5,
|
|
29097
29294
|
{
|
|
29098
29295
|
href: tab.url,
|
|
@@ -29102,14 +29299,14 @@ var Tabs = ({ className, style, tabs, verticalMenu, pathname, canvasMode, isBuil
|
|
|
29102
29299
|
children: tab.header
|
|
29103
29300
|
},
|
|
29104
29301
|
index
|
|
29105
|
-
) : /* @__PURE__ */
|
|
29302
|
+
) : /* @__PURE__ */ jsx54("div", { className: finalClasses, style: tab.style, role: "button", tabIndex: 0, children: tab.header }, index);
|
|
29106
29303
|
};
|
|
29107
|
-
const renderMobileMenu = () => /* @__PURE__ */
|
|
29108
|
-
/* @__PURE__ */
|
|
29109
|
-
/* @__PURE__ */
|
|
29304
|
+
const renderMobileMenu = () => /* @__PURE__ */ jsxs32(DropdownMenu, { children: [
|
|
29305
|
+
/* @__PURE__ */ jsxs32(DropdownMenuTrigger, { className: "flex items-center gap-2 px-3 py-2 rounded-md bg-white/10 text-white text-sm", children: [
|
|
29306
|
+
/* @__PURE__ */ jsx54(Menu, { className: "h-4 w-4" }),
|
|
29110
29307
|
"Menu"
|
|
29111
29308
|
] }),
|
|
29112
|
-
/* @__PURE__ */
|
|
29309
|
+
/* @__PURE__ */ jsx54(
|
|
29113
29310
|
DropdownMenuContent,
|
|
29114
29311
|
{
|
|
29115
29312
|
align: "start",
|
|
@@ -29118,25 +29315,25 @@ var Tabs = ({ className, style, tabs, verticalMenu, pathname, canvasMode, isBuil
|
|
|
29118
29315
|
children: rawTabs.map((tab, i) => {
|
|
29119
29316
|
const hasChildren = Array.isArray(tab.children) && tab.children.length > 0 && tab.isDropDown;
|
|
29120
29317
|
if (hasChildren) {
|
|
29121
|
-
return /* @__PURE__ */
|
|
29122
|
-
/* @__PURE__ */
|
|
29123
|
-
/* @__PURE__ */
|
|
29318
|
+
return /* @__PURE__ */ jsxs32(DropdownMenuSub, { children: [
|
|
29319
|
+
/* @__PURE__ */ jsx54(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 }),
|
|
29320
|
+
/* @__PURE__ */ jsx54(DropdownMenuSubContent, { className: "bg-white border shadow-lg rounded-md p-1", children: tab.children.map((item) => /* @__PURE__ */ jsx54(
|
|
29124
29321
|
DropdownMenuItem,
|
|
29125
29322
|
{
|
|
29126
29323
|
asChild: true,
|
|
29127
29324
|
className: "cursor-pointer rounded-sm px-3 py-2 text-[12px] text-gray-800 hover:bg-gray-100",
|
|
29128
|
-
children: /* @__PURE__ */
|
|
29325
|
+
children: /* @__PURE__ */ jsx54(Link5, { href: item.url || "#", onClick: (e) => handleBuilderExit(e, item.url || "#"), children: item.header })
|
|
29129
29326
|
},
|
|
29130
29327
|
item.id
|
|
29131
29328
|
)) })
|
|
29132
29329
|
] }, i);
|
|
29133
29330
|
}
|
|
29134
|
-
return /* @__PURE__ */
|
|
29331
|
+
return /* @__PURE__ */ jsx54(
|
|
29135
29332
|
DropdownMenuItem,
|
|
29136
29333
|
{
|
|
29137
29334
|
asChild: true,
|
|
29138
29335
|
className: "cursor-pointer rounded-sm px-3 py-2 text-[13px] text-gray-800 hover:bg-gray-100",
|
|
29139
|
-
children: /* @__PURE__ */
|
|
29336
|
+
children: /* @__PURE__ */ jsx54(Link5, { href: tab.url || "#", onClick: (e) => handleBuilderExit(e, tab.url || "#"), children: tab.header })
|
|
29140
29337
|
},
|
|
29141
29338
|
i
|
|
29142
29339
|
);
|
|
@@ -29146,19 +29343,19 @@ var Tabs = ({ className, style, tabs, verticalMenu, pathname, canvasMode, isBuil
|
|
|
29146
29343
|
] });
|
|
29147
29344
|
const forceMobile = canvasMode ? canvasMode === "mobile" || canvasMode === "tablet" : void 0;
|
|
29148
29345
|
const forceDesktop = canvasMode ? canvasMode === "desktop" : void 0;
|
|
29149
|
-
return /* @__PURE__ */
|
|
29150
|
-
/* @__PURE__ */
|
|
29151
|
-
forceDesktop !== void 0 ? forceDesktop && /* @__PURE__ */
|
|
29152
|
-
forceMobile !== void 0 ? forceMobile && /* @__PURE__ */
|
|
29346
|
+
return /* @__PURE__ */ jsxs32(Fragment18, { children: [
|
|
29347
|
+
/* @__PURE__ */ jsxs32("div", { className, style, children: [
|
|
29348
|
+
forceDesktop !== void 0 ? forceDesktop && /* @__PURE__ */ jsx54("div", { className: "hidden md:flex", children: /* @__PURE__ */ jsx54("div", { className: `flex gap-2 ${verticalMenu ? "flex-col items-start" : "flex-row"}`, children: rawTabs.map(renderDesktopTab) }) }) : /* @__PURE__ */ jsx54("div", { className: "hidden md:flex", children: /* @__PURE__ */ jsx54("div", { className: `flex gap-2 ${verticalMenu ? "flex-col items-start" : "flex-row"}`, children: rawTabs.map(renderDesktopTab) }) }),
|
|
29349
|
+
forceMobile !== void 0 ? forceMobile && /* @__PURE__ */ jsx54("div", { children: renderMobileMenu() }) : /* @__PURE__ */ jsx54("div", { className: "flex md:hidden", children: renderMobileMenu() })
|
|
29153
29350
|
] }),
|
|
29154
|
-
/* @__PURE__ */
|
|
29155
|
-
/* @__PURE__ */
|
|
29156
|
-
/* @__PURE__ */
|
|
29157
|
-
/* @__PURE__ */
|
|
29351
|
+
/* @__PURE__ */ jsx54(Dialog, { open: showExitDialog, onOpenChange: setShowExitDialog, children: /* @__PURE__ */ jsxs32(DialogContent, { className: "bg-[#fff]", children: [
|
|
29352
|
+
/* @__PURE__ */ jsxs32(DialogHeader, { children: [
|
|
29353
|
+
/* @__PURE__ */ jsx54(DialogTitle, { children: "Exit Builder?" }),
|
|
29354
|
+
/* @__PURE__ */ jsx54(DialogDescription, { children: "You are about to leave the builder. Any unsaved changes may be lost." })
|
|
29158
29355
|
] }),
|
|
29159
|
-
/* @__PURE__ */
|
|
29160
|
-
/* @__PURE__ */
|
|
29161
|
-
/* @__PURE__ */
|
|
29356
|
+
/* @__PURE__ */ jsxs32(DialogFooter, { children: [
|
|
29357
|
+
/* @__PURE__ */ jsx54(Button, { className: "cursor-pointer bg-[#12715b] text-[#fff]", variant: "outline", onClick: () => setShowExitDialog(false), children: "Cancel" }),
|
|
29358
|
+
/* @__PURE__ */ jsx54(Button, { className: "cursor-pointer border-[#12715b] border", onClick: confirmExit, children: "Yes, Exit" })
|
|
29162
29359
|
] })
|
|
29163
29360
|
] }) })
|
|
29164
29361
|
] });
|
|
@@ -29166,13 +29363,13 @@ var Tabs = ({ className, style, tabs, verticalMenu, pathname, canvasMode, isBuil
|
|
|
29166
29363
|
var Tabs_default = Tabs;
|
|
29167
29364
|
|
|
29168
29365
|
// src/components/Navigation/Stages/Stages.tsx
|
|
29169
|
-
import
|
|
29170
|
-
import { jsx as
|
|
29366
|
+
import React9 from "react";
|
|
29367
|
+
import { jsx as jsx55, jsxs as jsxs33 } from "react/jsx-runtime";
|
|
29171
29368
|
var StagesComponent = ({ stages, isShowBtn, buttonText, className, style, onStageChange }) => {
|
|
29172
|
-
return /* @__PURE__ */
|
|
29173
|
-
/* @__PURE__ */
|
|
29174
|
-
/* @__PURE__ */
|
|
29175
|
-
/* @__PURE__ */
|
|
29369
|
+
return /* @__PURE__ */ jsx55("div", { className, style, children: /* @__PURE__ */ jsxs33("div", { className: "flex items-center justify-between bg-red p-2 rounded-lg border border-gray-200 w-full", children: [
|
|
29370
|
+
/* @__PURE__ */ jsx55("div", { className: "flex items-center", children: /* @__PURE__ */ jsx55("button", { className: "p-2 hover:bg-gray-100 rounded", children: /* @__PURE__ */ jsx55("svg", { className: "w-4 h-4 text-gray-600", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ jsx55("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M19 9l-7 7-7-7" }) }) }) }),
|
|
29371
|
+
/* @__PURE__ */ jsx55("div", { className: "flex items-center flex-1 px-2 flex-wrap gap-2", children: stages?.length > 0 && stages?.map((stage, index) => /* @__PURE__ */ jsxs33(React9.Fragment, { children: [
|
|
29372
|
+
/* @__PURE__ */ jsx55(
|
|
29176
29373
|
"button",
|
|
29177
29374
|
{
|
|
29178
29375
|
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"}`,
|
|
@@ -29184,9 +29381,9 @@ var StagesComponent = ({ stages, isShowBtn, buttonText, className, style, onStag
|
|
|
29184
29381
|
children: stage.header
|
|
29185
29382
|
}
|
|
29186
29383
|
),
|
|
29187
|
-
index < stages.length - 1 && /* @__PURE__ */
|
|
29384
|
+
index < stages.length - 1 && /* @__PURE__ */ jsx55("div", { className: "flex-shrink-0 w-3 h-px bg-gray-300" })
|
|
29188
29385
|
] }, stage.id)) }),
|
|
29189
|
-
isShowBtn && /* @__PURE__ */
|
|
29386
|
+
isShowBtn && /* @__PURE__ */ jsx55("div", { className: "flex items-center", children: /* @__PURE__ */ jsx55(
|
|
29190
29387
|
"button",
|
|
29191
29388
|
{
|
|
29192
29389
|
className: "bg-[#034486] text-white px-6 py-2 rounded-lg text-sm font-medium transition-colors duration-200 shadow-sm",
|
|
@@ -29204,26 +29401,26 @@ var StagesComponent = ({ stages, isShowBtn, buttonText, className, style, onStag
|
|
|
29204
29401
|
var Stages_default = StagesComponent;
|
|
29205
29402
|
|
|
29206
29403
|
// src/components/Navigation/Spacer/Spacer.tsx
|
|
29207
|
-
import { jsx as
|
|
29404
|
+
import { jsx as jsx56 } from "react/jsx-runtime";
|
|
29208
29405
|
var Spacer = ({ className, style }) => {
|
|
29209
|
-
return /* @__PURE__ */
|
|
29406
|
+
return /* @__PURE__ */ jsx56("div", { className: `${className}`, style });
|
|
29210
29407
|
};
|
|
29211
29408
|
var Spacer_default = Spacer;
|
|
29212
29409
|
|
|
29213
29410
|
// src/components/Navigation/Profile/Profile.tsx
|
|
29214
|
-
import { jsx as
|
|
29411
|
+
import { jsx as jsx57, jsxs as jsxs34 } from "react/jsx-runtime";
|
|
29215
29412
|
|
|
29216
29413
|
// src/components/Navigation/Notification/Notification.tsx
|
|
29217
|
-
import { jsx as
|
|
29414
|
+
import { jsx as jsx58, jsxs as jsxs35 } from "react/jsx-runtime";
|
|
29218
29415
|
|
|
29219
29416
|
// src/components/Navigation/Logo/Logo.tsx
|
|
29220
|
-
import { jsx as
|
|
29417
|
+
import { jsx as jsx59 } from "react/jsx-runtime";
|
|
29221
29418
|
|
|
29222
29419
|
// src/components/ui/avatar.tsx
|
|
29223
|
-
import * as
|
|
29420
|
+
import * as React10 from "react";
|
|
29224
29421
|
import * as AvatarPrimitive from "@radix-ui/react-avatar";
|
|
29225
|
-
import { jsx as
|
|
29226
|
-
var Avatar =
|
|
29422
|
+
import { jsx as jsx60 } from "react/jsx-runtime";
|
|
29423
|
+
var Avatar = React10.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx60(
|
|
29227
29424
|
AvatarPrimitive.Root,
|
|
29228
29425
|
{
|
|
29229
29426
|
ref,
|
|
@@ -29235,7 +29432,7 @@ var Avatar = React9.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
|
29235
29432
|
}
|
|
29236
29433
|
));
|
|
29237
29434
|
Avatar.displayName = AvatarPrimitive.Root.displayName;
|
|
29238
|
-
var AvatarImage =
|
|
29435
|
+
var AvatarImage = React10.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx60(
|
|
29239
29436
|
AvatarPrimitive.Image,
|
|
29240
29437
|
{
|
|
29241
29438
|
ref,
|
|
@@ -29244,7 +29441,7 @@ var AvatarImage = React9.forwardRef(({ className, ...props }, ref) => /* @__PURE
|
|
|
29244
29441
|
}
|
|
29245
29442
|
));
|
|
29246
29443
|
AvatarImage.displayName = AvatarPrimitive.Image.displayName;
|
|
29247
|
-
var AvatarFallback =
|
|
29444
|
+
var AvatarFallback = React10.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx60(
|
|
29248
29445
|
AvatarPrimitive.Fallback,
|
|
29249
29446
|
{
|
|
29250
29447
|
ref,
|
|
@@ -29262,8 +29459,8 @@ import Link6 from "next/link";
|
|
|
29262
29459
|
import Image3 from "next/image";
|
|
29263
29460
|
import { useRouter as useRouter2 } from "next/navigation";
|
|
29264
29461
|
import { DropdownMenuSeparator } from "@radix-ui/react-dropdown-menu";
|
|
29265
|
-
import { useCallback as useCallback3, useMemo as
|
|
29266
|
-
import { Fragment as Fragment19, jsx as
|
|
29462
|
+
import { useCallback as useCallback3, useMemo as useMemo4, useState as useState7 } from "react";
|
|
29463
|
+
import { Fragment as Fragment19, jsx as jsx61, jsxs as jsxs36 } from "react/jsx-runtime";
|
|
29267
29464
|
function Navbar({
|
|
29268
29465
|
style,
|
|
29269
29466
|
badgeType,
|
|
@@ -29283,8 +29480,8 @@ function Navbar({
|
|
|
29283
29480
|
}) {
|
|
29284
29481
|
const isMobileView = canvasMode === "mobile" || canvasMode === "tablet";
|
|
29285
29482
|
const router = useRouter2();
|
|
29286
|
-
const [showExitDialog, setShowExitDialog] =
|
|
29287
|
-
const [pendingUrl, setPendingUrl] =
|
|
29483
|
+
const [showExitDialog, setShowExitDialog] = useState7(false);
|
|
29484
|
+
const [pendingUrl, setPendingUrl] = useState7(null);
|
|
29288
29485
|
const handleBuilderExit = useCallback3(
|
|
29289
29486
|
(e, url) => {
|
|
29290
29487
|
if (isBuilder) {
|
|
@@ -29301,29 +29498,29 @@ function Navbar({
|
|
|
29301
29498
|
router.push(pendingUrl);
|
|
29302
29499
|
}
|
|
29303
29500
|
};
|
|
29304
|
-
const formatedMenu =
|
|
29501
|
+
const formatedMenu = useMemo4(() => {
|
|
29305
29502
|
if (source === "state" && navList && navList.length) {
|
|
29306
29503
|
return navList.map((i) => ({ ...i, header: i.name || "Menu" }));
|
|
29307
29504
|
}
|
|
29308
29505
|
return list || [];
|
|
29309
29506
|
}, [source, navList]);
|
|
29310
|
-
return /* @__PURE__ */
|
|
29311
|
-
/* @__PURE__ */
|
|
29507
|
+
return /* @__PURE__ */ jsxs36(Fragment19, { children: [
|
|
29508
|
+
/* @__PURE__ */ jsx61(
|
|
29312
29509
|
"nav",
|
|
29313
29510
|
{
|
|
29314
29511
|
className: "w-full border-b border-b-white dark:border-b-gray-800 dark:bg-gray-800 bg-white shadow-sm",
|
|
29315
29512
|
style,
|
|
29316
|
-
children: /* @__PURE__ */
|
|
29317
|
-
/* @__PURE__ */
|
|
29513
|
+
children: /* @__PURE__ */ jsxs36("div", { className: "mx-auto flex max-w-[90%] items-center justify-between px-4 py-4", children: [
|
|
29514
|
+
/* @__PURE__ */ jsx61(
|
|
29318
29515
|
Link6,
|
|
29319
29516
|
{
|
|
29320
29517
|
href: "/",
|
|
29321
29518
|
onClick: (e) => handleBuilderExit(e, "/"),
|
|
29322
29519
|
className: "flex items-center space-x-2",
|
|
29323
|
-
children: imageUrl ? /* @__PURE__ */
|
|
29520
|
+
children: imageUrl ? /* @__PURE__ */ jsx61(Image3, { src: imageUrl, alt: altText, width: 200, height: 200 }) : /* @__PURE__ */ jsx61("span", { className: "font-semibold text-blue-700", children: "Logo" })
|
|
29324
29521
|
}
|
|
29325
29522
|
),
|
|
29326
|
-
!isMobileView && /* @__PURE__ */
|
|
29523
|
+
!isMobileView && /* @__PURE__ */ jsx61("div", { className: "flex items-center space-x-6 sm:hidden md:flex", children: formatedMenu.map((item) => /* @__PURE__ */ jsx61(
|
|
29327
29524
|
Link6,
|
|
29328
29525
|
{
|
|
29329
29526
|
href: item.url || "#",
|
|
@@ -29333,39 +29530,39 @@ function Navbar({
|
|
|
29333
29530
|
},
|
|
29334
29531
|
item.id
|
|
29335
29532
|
)) }),
|
|
29336
|
-
/* @__PURE__ */
|
|
29337
|
-
!isMobileView ? /* @__PURE__ */
|
|
29338
|
-
/* @__PURE__ */
|
|
29339
|
-
/* @__PURE__ */
|
|
29340
|
-
] }) }) : /* @__PURE__ */
|
|
29341
|
-
/* @__PURE__ */
|
|
29342
|
-
/* @__PURE__ */
|
|
29343
|
-
badgeType === "number" && !(hideBadgeWhenZero && badgeCount === 0) && Number(badgeCount) > 0 ? /* @__PURE__ */
|
|
29533
|
+
/* @__PURE__ */ jsxs36("div", { className: "flex items-center space-x-3", children: [
|
|
29534
|
+
!isMobileView ? /* @__PURE__ */ jsx61("div", { className: "flex-1 px-6", children: /* @__PURE__ */ jsxs36("div", { className: "relative w-full max-w-md border border-gray-300 rounded-md", children: [
|
|
29535
|
+
/* @__PURE__ */ jsx61(Search, { className: "absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 dark:text-white text-gray-400" }),
|
|
29536
|
+
/* @__PURE__ */ jsx61(Input, { placeholder: "Search", className: "pl-9 text-gray-400" })
|
|
29537
|
+
] }) }) : /* @__PURE__ */ jsx61(Button, { variant: "ghost", size: "icon", className: "border border-gray-400", children: /* @__PURE__ */ jsx61(Search, { className: "h-5 w-5 text-gray-400" }) }),
|
|
29538
|
+
/* @__PURE__ */ jsxs36("div", { className: "relative bg-[#E9E9E9] dark:bg-gray-700 rounded-md", children: [
|
|
29539
|
+
/* @__PURE__ */ jsx61(Button, { variant: "ghost", size: "icon", children: /* @__PURE__ */ jsx61(Bell, { className: "h-5 w-5 text-[#1C1B1F] dark:text-gray-400" }) }),
|
|
29540
|
+
badgeType === "number" && !(hideBadgeWhenZero && badgeCount === 0) && Number(badgeCount) > 0 ? /* @__PURE__ */ jsx61("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__ */ jsx61("span", { className: "absolute -top-1 -right-1 flex h-2 w-2 items-center justify-center rounded-full bg-red-500" })
|
|
29344
29541
|
] }),
|
|
29345
|
-
/* @__PURE__ */
|
|
29346
|
-
/* @__PURE__ */
|
|
29347
|
-
!isMobileView && showName && /* @__PURE__ */
|
|
29348
|
-
!isMobileView ? /* @__PURE__ */
|
|
29349
|
-
/* @__PURE__ */
|
|
29542
|
+
/* @__PURE__ */ jsxs36(DropdownMenu, { children: [
|
|
29543
|
+
/* @__PURE__ */ jsx61(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsxs36("div", { className: "flex items-center space-x-2", children: [
|
|
29544
|
+
!isMobileView && showName && /* @__PURE__ */ jsx61("h4", { className: "text-[#000000] dark:text-gray-300 text-[13px] font-[500] mb-0", children: userName }),
|
|
29545
|
+
!isMobileView ? /* @__PURE__ */ jsxs36(Fragment19, { children: [
|
|
29546
|
+
/* @__PURE__ */ jsx61(Avatar, { className: "cursor-pointer h-8 w-8 text-gray-900", children: profileType === "avatar" ? /* @__PURE__ */ jsx61(
|
|
29350
29547
|
AvatarImage,
|
|
29351
29548
|
{
|
|
29352
29549
|
src: "/images/appbuilder/toolset/profile.svg",
|
|
29353
29550
|
alt: "Profile"
|
|
29354
29551
|
}
|
|
29355
|
-
) : /* @__PURE__ */
|
|
29356
|
-
/* @__PURE__ */
|
|
29552
|
+
) : /* @__PURE__ */ jsx61("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) }) }),
|
|
29553
|
+
/* @__PURE__ */ jsx61(
|
|
29357
29554
|
Button,
|
|
29358
29555
|
{
|
|
29359
29556
|
variant: "ghost",
|
|
29360
29557
|
size: "icon",
|
|
29361
29558
|
className: "text-gray-900 md:hidden dark:invert",
|
|
29362
|
-
children: /* @__PURE__ */
|
|
29559
|
+
children: /* @__PURE__ */ jsx61(Menu, { className: "h-6 w-6" })
|
|
29363
29560
|
}
|
|
29364
29561
|
)
|
|
29365
|
-
] }) : /* @__PURE__ */
|
|
29562
|
+
] }) : /* @__PURE__ */ jsx61(Button, { variant: "ghost", size: "icon", className: "text-gray-900 dark:invert", children: /* @__PURE__ */ jsx61(Menu, { className: "h-6 w-6" }) })
|
|
29366
29563
|
] }) }),
|
|
29367
|
-
/* @__PURE__ */
|
|
29368
|
-
profileMenu && profileMenu.length > 0 && /* @__PURE__ */
|
|
29564
|
+
/* @__PURE__ */ jsxs36(DropdownMenuContent, { align: "end", className: "bg-white dark:bg-gray-800", children: [
|
|
29565
|
+
profileMenu && profileMenu.length > 0 && /* @__PURE__ */ jsx61(Fragment19, { children: profileMenu.map((item) => /* @__PURE__ */ jsx61(DropdownMenuItem, { className: "text-black dark:invert", children: /* @__PURE__ */ jsx61(
|
|
29369
29566
|
Link6,
|
|
29370
29567
|
{
|
|
29371
29568
|
href: item.url || "#",
|
|
@@ -29373,9 +29570,9 @@ function Navbar({
|
|
|
29373
29570
|
children: item.header
|
|
29374
29571
|
}
|
|
29375
29572
|
) }, item.id)) }),
|
|
29376
|
-
/* @__PURE__ */
|
|
29377
|
-
/* @__PURE__ */
|
|
29378
|
-
formatedMenu && formatedMenu.length > 0 && /* @__PURE__ */
|
|
29573
|
+
/* @__PURE__ */ jsxs36("div", { className: "md:hidden", children: [
|
|
29574
|
+
/* @__PURE__ */ jsx61(DropdownMenuSeparator, {}),
|
|
29575
|
+
formatedMenu && formatedMenu.length > 0 && /* @__PURE__ */ jsx61(Fragment19, { children: formatedMenu.map((item) => /* @__PURE__ */ jsx61(DropdownMenuItem, { className: "text-black dark:invert", children: /* @__PURE__ */ jsx61(
|
|
29379
29576
|
Link6,
|
|
29380
29577
|
{
|
|
29381
29578
|
href: item.url || "#",
|
|
@@ -29390,21 +29587,21 @@ function Navbar({
|
|
|
29390
29587
|
] })
|
|
29391
29588
|
}
|
|
29392
29589
|
),
|
|
29393
|
-
/* @__PURE__ */
|
|
29394
|
-
/* @__PURE__ */
|
|
29395
|
-
/* @__PURE__ */
|
|
29396
|
-
/* @__PURE__ */
|
|
29590
|
+
/* @__PURE__ */ jsx61(Dialog, { open: showExitDialog, onOpenChange: setShowExitDialog, children: /* @__PURE__ */ jsxs36(DialogContent, { className: "bg-[#fff]", children: [
|
|
29591
|
+
/* @__PURE__ */ jsxs36(DialogHeader, { children: [
|
|
29592
|
+
/* @__PURE__ */ jsx61(DialogTitle, { children: "Exit Builder?" }),
|
|
29593
|
+
/* @__PURE__ */ jsx61(DialogDescription, { children: "You are about to leave the builder. Any unsaved changes may be lost." })
|
|
29397
29594
|
] }),
|
|
29398
|
-
/* @__PURE__ */
|
|
29399
|
-
/* @__PURE__ */
|
|
29400
|
-
/* @__PURE__ */
|
|
29595
|
+
/* @__PURE__ */ jsxs36(DialogFooter, { children: [
|
|
29596
|
+
/* @__PURE__ */ jsx61(Button, { className: "cursor-pointer bg-[#12715b] text-[#fff]", variant: "outline", onClick: () => setShowExitDialog(false), children: "Cancel" }),
|
|
29597
|
+
/* @__PURE__ */ jsx61(Button, { className: "cursor-pointer border-[#12715b] border", onClick: confirmExit, children: "Yes, Exit" })
|
|
29401
29598
|
] })
|
|
29402
29599
|
] }) })
|
|
29403
29600
|
] });
|
|
29404
29601
|
}
|
|
29405
29602
|
|
|
29406
29603
|
// src/components/Chart/BarChart.tsx
|
|
29407
|
-
import
|
|
29604
|
+
import React11 from "react";
|
|
29408
29605
|
import {
|
|
29409
29606
|
BarChart,
|
|
29410
29607
|
Bar,
|
|
@@ -29417,35 +29614,35 @@ import {
|
|
|
29417
29614
|
ResponsiveContainer,
|
|
29418
29615
|
Legend
|
|
29419
29616
|
} from "recharts";
|
|
29420
|
-
import { jsx as
|
|
29617
|
+
import { jsx as jsx62, jsxs as jsxs37 } from "react/jsx-runtime";
|
|
29421
29618
|
var ChartComponent = ({ className, style, loading, ...props }) => {
|
|
29422
29619
|
const data = Array.isArray(props.data) ? props.data : [];
|
|
29423
29620
|
const chartType = props.chartType || "bar";
|
|
29424
29621
|
const legendsPosition = props.legendsPosition === "middle" || props.legendsPosition === "bottom" ? props.legendsPosition : "top";
|
|
29425
29622
|
if (loading || data.length === 0) {
|
|
29426
|
-
return /* @__PURE__ */
|
|
29623
|
+
return /* @__PURE__ */ jsx62(
|
|
29427
29624
|
"div",
|
|
29428
29625
|
{
|
|
29429
29626
|
className: `flex items-center justify-center w-full h-[300px] md:h-[400px] bg-gray-50 animate-pulse rounded-lg ${className}`,
|
|
29430
29627
|
style,
|
|
29431
|
-
children: /* @__PURE__ */
|
|
29628
|
+
children: /* @__PURE__ */ jsx62("div", { className: "text-gray-400 text-sm md:text-base", children: loading ? "Loading chart report..." : "No data available to display the chart." })
|
|
29432
29629
|
}
|
|
29433
29630
|
);
|
|
29434
29631
|
}
|
|
29435
|
-
return /* @__PURE__ */
|
|
29436
|
-
/* @__PURE__ */
|
|
29437
|
-
/* @__PURE__ */
|
|
29438
|
-
/* @__PURE__ */
|
|
29439
|
-
/* @__PURE__ */
|
|
29440
|
-
/* @__PURE__ */
|
|
29441
|
-
/* @__PURE__ */
|
|
29632
|
+
return /* @__PURE__ */ jsx62("div", { className: `${className} h-[400px]`, style, children: /* @__PURE__ */ jsx62(ResponsiveContainer, { width: "100%", height: "100%", children: chartType === "bar" ? /* @__PURE__ */ jsxs37(BarChart, { data, title: "Leads", desc: "content", children: [
|
|
29633
|
+
/* @__PURE__ */ jsx62(CartesianGrid, { strokeDasharray: "3 3" }),
|
|
29634
|
+
/* @__PURE__ */ jsx62(XAxis, { dataKey: "name" }),
|
|
29635
|
+
/* @__PURE__ */ jsx62(YAxis, {}),
|
|
29636
|
+
/* @__PURE__ */ jsx62(Tooltip, { formatter: (value) => `${value}k` }),
|
|
29637
|
+
/* @__PURE__ */ jsx62(Legend, { verticalAlign: legendsPosition, align: "center" }),
|
|
29638
|
+
/* @__PURE__ */ jsx62(
|
|
29442
29639
|
Bar,
|
|
29443
29640
|
{
|
|
29444
29641
|
dataKey: "value",
|
|
29445
29642
|
fill: "#00695C",
|
|
29446
29643
|
radius: [6, 6, 0, 0],
|
|
29447
29644
|
isAnimationActive: false,
|
|
29448
|
-
children: data.map((entry, index) => /* @__PURE__ */
|
|
29645
|
+
children: data.map((entry, index) => /* @__PURE__ */ jsx62(
|
|
29449
29646
|
"rect",
|
|
29450
29647
|
{
|
|
29451
29648
|
fill: entry.color || "#00695C"
|
|
@@ -29454,16 +29651,16 @@ var ChartComponent = ({ className, style, loading, ...props }) => {
|
|
|
29454
29651
|
))
|
|
29455
29652
|
}
|
|
29456
29653
|
)
|
|
29457
|
-
] }) : /* @__PURE__ */
|
|
29458
|
-
/* @__PURE__ */
|
|
29459
|
-
/* @__PURE__ */
|
|
29460
|
-
/* @__PURE__ */
|
|
29654
|
+
] }) : /* @__PURE__ */ jsxs37(AreaChart, { data, children: [
|
|
29655
|
+
/* @__PURE__ */ jsx62("defs", { children: /* @__PURE__ */ jsxs37("linearGradient", { id: "colorCount", x1: "0", y1: "0", x2: "0", y2: "1", children: [
|
|
29656
|
+
/* @__PURE__ */ jsx62("stop", { offset: "5%", stopColor: "#00695C", stopOpacity: 0.8 }),
|
|
29657
|
+
/* @__PURE__ */ jsx62("stop", { offset: "95%", stopColor: "#00695C", stopOpacity: 0 })
|
|
29461
29658
|
] }) }),
|
|
29462
|
-
/* @__PURE__ */
|
|
29463
|
-
/* @__PURE__ */
|
|
29464
|
-
/* @__PURE__ */
|
|
29465
|
-
/* @__PURE__ */
|
|
29466
|
-
/* @__PURE__ */
|
|
29659
|
+
/* @__PURE__ */ jsx62(CartesianGrid, { strokeDasharray: "3 3" }),
|
|
29660
|
+
/* @__PURE__ */ jsx62(XAxis, { dataKey: "name" }),
|
|
29661
|
+
/* @__PURE__ */ jsx62(YAxis, {}),
|
|
29662
|
+
/* @__PURE__ */ jsx62(Tooltip, { formatter: (value) => `${value}k` }),
|
|
29663
|
+
/* @__PURE__ */ jsx62(
|
|
29467
29664
|
Area,
|
|
29468
29665
|
{
|
|
29469
29666
|
type: "monotone",
|
|
@@ -29476,10 +29673,10 @@ var ChartComponent = ({ className, style, loading, ...props }) => {
|
|
|
29476
29673
|
)
|
|
29477
29674
|
] }) }) });
|
|
29478
29675
|
};
|
|
29479
|
-
var BarChart_default =
|
|
29676
|
+
var BarChart_default = React11.memo(ChartComponent);
|
|
29480
29677
|
|
|
29481
29678
|
// src/components/Chart/PieChart.tsx
|
|
29482
|
-
import
|
|
29679
|
+
import React12, { useEffect as useEffect23, useMemo as useMemo5, useState as useState8 } from "react";
|
|
29483
29680
|
import {
|
|
29484
29681
|
PieChart,
|
|
29485
29682
|
Pie,
|
|
@@ -29488,7 +29685,7 @@ import {
|
|
|
29488
29685
|
Tooltip as Tooltip2,
|
|
29489
29686
|
LabelList
|
|
29490
29687
|
} from "recharts";
|
|
29491
|
-
import { Fragment as Fragment20, jsx as
|
|
29688
|
+
import { Fragment as Fragment20, jsx as jsx63, jsxs as jsxs38 } from "react/jsx-runtime";
|
|
29492
29689
|
var getRandomColor = () => {
|
|
29493
29690
|
const palette = [
|
|
29494
29691
|
"#2563eb",
|
|
@@ -29508,32 +29705,32 @@ var DonutChart = ({ className, style, loading, ...props }) => {
|
|
|
29508
29705
|
const showLegends = props.showLegends ?? true;
|
|
29509
29706
|
const labelType = props.labelType || "inside";
|
|
29510
29707
|
const canvasMode = props.canvasMode;
|
|
29511
|
-
const data =
|
|
29708
|
+
const data = useMemo5(() => {
|
|
29512
29709
|
if (!Array.isArray(props.data)) return [];
|
|
29513
29710
|
return props.data.map((item) => ({ ...item, color: getRandomColor() }));
|
|
29514
29711
|
}, [props.data]);
|
|
29515
|
-
const total =
|
|
29712
|
+
const total = useMemo5(() => data.reduce((sum, d) => sum + d.value, 0), [data]);
|
|
29516
29713
|
const forceMobile = canvasMode === "mobile" || canvasMode === "tablet";
|
|
29517
|
-
const [mounted, setMounted] =
|
|
29518
|
-
|
|
29714
|
+
const [mounted, setMounted] = useState8(false);
|
|
29715
|
+
useEffect23(() => {
|
|
29519
29716
|
const timeout = setTimeout(() => setMounted(true), 100);
|
|
29520
29717
|
return () => clearTimeout(timeout);
|
|
29521
29718
|
}, []);
|
|
29522
|
-
const renderLegends =
|
|
29719
|
+
const renderLegends = useMemo5(() => {
|
|
29523
29720
|
if (!showLegends) return null;
|
|
29524
|
-
return /* @__PURE__ */
|
|
29721
|
+
return /* @__PURE__ */ jsx63(Fragment20, { children: data.map((d) => /* @__PURE__ */ jsxs38(
|
|
29525
29722
|
"div",
|
|
29526
29723
|
{
|
|
29527
29724
|
className: "flex items-center space-x-2 rounded-md border border-gray-200 px-3 py-2 w-[48%] md:w-auto",
|
|
29528
29725
|
children: [
|
|
29529
|
-
/* @__PURE__ */
|
|
29726
|
+
/* @__PURE__ */ jsx63(
|
|
29530
29727
|
"span",
|
|
29531
29728
|
{
|
|
29532
29729
|
className: "inline-block w-[16px] h-[16px] rounded",
|
|
29533
29730
|
style: { backgroundColor: d.color }
|
|
29534
29731
|
}
|
|
29535
29732
|
),
|
|
29536
|
-
/* @__PURE__ */
|
|
29733
|
+
/* @__PURE__ */ jsx63("span", { className: "text-[#000000] text-[12px] md:text-[13px] font-[500]", children: d.name })
|
|
29537
29734
|
]
|
|
29538
29735
|
},
|
|
29539
29736
|
d.name
|
|
@@ -29541,24 +29738,24 @@ var DonutChart = ({ className, style, loading, ...props }) => {
|
|
|
29541
29738
|
}, [data, showLegends]);
|
|
29542
29739
|
if (!mounted) return null;
|
|
29543
29740
|
if (loading || data.length === 0) {
|
|
29544
|
-
return /* @__PURE__ */
|
|
29741
|
+
return /* @__PURE__ */ jsx63(
|
|
29545
29742
|
"div",
|
|
29546
29743
|
{
|
|
29547
29744
|
className: `flex items-center justify-center w-full h-[300px] md:h-[400px] bg-gray-50 animate-pulse rounded-lg ${className}`,
|
|
29548
29745
|
style,
|
|
29549
|
-
children: /* @__PURE__ */
|
|
29746
|
+
children: /* @__PURE__ */ jsx63("div", { className: "text-gray-400 text-sm md:text-base", children: loading ? "Loading chart report..." : "No data available to display the chart." })
|
|
29550
29747
|
}
|
|
29551
29748
|
);
|
|
29552
29749
|
}
|
|
29553
|
-
return /* @__PURE__ */
|
|
29750
|
+
return /* @__PURE__ */ jsxs38(
|
|
29554
29751
|
"div",
|
|
29555
29752
|
{
|
|
29556
29753
|
className: `relative flex flex-col items-center ${className}`,
|
|
29557
29754
|
style,
|
|
29558
29755
|
children: [
|
|
29559
|
-
/* @__PURE__ */
|
|
29560
|
-
/* @__PURE__ */
|
|
29561
|
-
/* @__PURE__ */
|
|
29756
|
+
/* @__PURE__ */ jsxs38("div", { className: "relative w-full md:w-[70%] h-[300px] md:h-[400px] flex items-center justify-center", children: [
|
|
29757
|
+
/* @__PURE__ */ jsx63(ResponsiveContainer2, { width: "99%", height: "100%", children: /* @__PURE__ */ jsxs38(PieChart, { children: [
|
|
29758
|
+
/* @__PURE__ */ jsxs38(
|
|
29562
29759
|
Pie,
|
|
29563
29760
|
{
|
|
29564
29761
|
data,
|
|
@@ -29570,8 +29767,8 @@ var DonutChart = ({ className, style, loading, ...props }) => {
|
|
|
29570
29767
|
labelLine: false,
|
|
29571
29768
|
isAnimationActive: false,
|
|
29572
29769
|
children: [
|
|
29573
|
-
data.map((entry, index) => /* @__PURE__ */
|
|
29574
|
-
/* @__PURE__ */
|
|
29770
|
+
data.map((entry, index) => /* @__PURE__ */ jsx63(Cell, { fill: entry.color }, `cell-${index}`)),
|
|
29771
|
+
/* @__PURE__ */ jsx63(
|
|
29575
29772
|
LabelList,
|
|
29576
29773
|
{
|
|
29577
29774
|
dataKey: "value",
|
|
@@ -29584,14 +29781,14 @@ var DonutChart = ({ className, style, loading, ...props }) => {
|
|
|
29584
29781
|
]
|
|
29585
29782
|
}
|
|
29586
29783
|
),
|
|
29587
|
-
/* @__PURE__ */
|
|
29784
|
+
/* @__PURE__ */ jsx63(
|
|
29588
29785
|
Tooltip2,
|
|
29589
29786
|
{
|
|
29590
29787
|
formatter: (value, name) => [`${value}k`, name]
|
|
29591
29788
|
}
|
|
29592
29789
|
)
|
|
29593
29790
|
] }) }),
|
|
29594
|
-
/* @__PURE__ */
|
|
29791
|
+
/* @__PURE__ */ jsxs38(
|
|
29595
29792
|
"div",
|
|
29596
29793
|
{
|
|
29597
29794
|
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]`,
|
|
@@ -29602,18 +29799,18 @@ var DonutChart = ({ className, style, loading, ...props }) => {
|
|
|
29602
29799
|
}
|
|
29603
29800
|
)
|
|
29604
29801
|
] }),
|
|
29605
|
-
/* @__PURE__ */
|
|
29802
|
+
/* @__PURE__ */ jsx63("div", { className: "flex flex-wrap justify-center gap-2 mt-6 w-full md:w-auto", children: renderLegends })
|
|
29606
29803
|
]
|
|
29607
29804
|
}
|
|
29608
29805
|
);
|
|
29609
29806
|
};
|
|
29610
|
-
var PieChart_default =
|
|
29807
|
+
var PieChart_default = React12.memo(DonutChart);
|
|
29611
29808
|
|
|
29612
29809
|
// src/components/Blocks/EmailComposer.tsx
|
|
29613
|
-
import { jsx as
|
|
29810
|
+
import { jsx as jsx64, jsxs as jsxs39 } from "react/jsx-runtime";
|
|
29614
29811
|
function EmailComposer({ className, style, to, setTo, showCc, setShowCc, showBcc, setShowBcc, cc, setCc, bcc, setBcc, subject, setSubject, body, setBody }) {
|
|
29615
|
-
return /* @__PURE__ */
|
|
29616
|
-
/* @__PURE__ */
|
|
29812
|
+
return /* @__PURE__ */ jsx64("div", { className, style, children: /* @__PURE__ */ jsxs39("div", { className: "border rounded-md shadow bg-[#fff] p-4 mx-auto z-[50] relative", children: [
|
|
29813
|
+
/* @__PURE__ */ jsx64("div", { className: "mb-3", children: /* @__PURE__ */ jsx64(
|
|
29617
29814
|
"input",
|
|
29618
29815
|
{
|
|
29619
29816
|
type: "email",
|
|
@@ -29622,8 +29819,8 @@ function EmailComposer({ className, style, to, setTo, showCc, setShowCc, showBcc
|
|
|
29622
29819
|
required: true
|
|
29623
29820
|
}
|
|
29624
29821
|
) }),
|
|
29625
|
-
/* @__PURE__ */
|
|
29626
|
-
/* @__PURE__ */
|
|
29822
|
+
/* @__PURE__ */ jsx64("div", { className: "mb-3", children: /* @__PURE__ */ jsxs39("div", { className: "flex items-center gap-2", children: [
|
|
29823
|
+
/* @__PURE__ */ jsx64(
|
|
29627
29824
|
"input",
|
|
29628
29825
|
{
|
|
29629
29826
|
type: "email",
|
|
@@ -29634,7 +29831,7 @@ function EmailComposer({ className, style, to, setTo, showCc, setShowCc, showBcc
|
|
|
29634
29831
|
required: true
|
|
29635
29832
|
}
|
|
29636
29833
|
),
|
|
29637
|
-
!showCc && /* @__PURE__ */
|
|
29834
|
+
!showCc && /* @__PURE__ */ jsx64(
|
|
29638
29835
|
"button",
|
|
29639
29836
|
{
|
|
29640
29837
|
onClick: () => setShowCc?.(true),
|
|
@@ -29642,7 +29839,7 @@ function EmailComposer({ className, style, to, setTo, showCc, setShowCc, showBcc
|
|
|
29642
29839
|
children: "Cc"
|
|
29643
29840
|
}
|
|
29644
29841
|
),
|
|
29645
|
-
!showBcc && /* @__PURE__ */
|
|
29842
|
+
!showBcc && /* @__PURE__ */ jsx64(
|
|
29646
29843
|
"button",
|
|
29647
29844
|
{
|
|
29648
29845
|
onClick: () => setShowBcc?.(true),
|
|
@@ -29651,7 +29848,7 @@ function EmailComposer({ className, style, to, setTo, showCc, setShowCc, showBcc
|
|
|
29651
29848
|
}
|
|
29652
29849
|
)
|
|
29653
29850
|
] }) }),
|
|
29654
|
-
showCc && /* @__PURE__ */
|
|
29851
|
+
showCc && /* @__PURE__ */ jsx64("div", { className: "mb-3", children: /* @__PURE__ */ jsx64(
|
|
29655
29852
|
"input",
|
|
29656
29853
|
{
|
|
29657
29854
|
type: "text",
|
|
@@ -29661,7 +29858,7 @@ function EmailComposer({ className, style, to, setTo, showCc, setShowCc, showBcc
|
|
|
29661
29858
|
className: "w-full flex-1 border-2 rounded-md h-[40px] px-3 focus:outline-none border-[#E9E9E9] text-[#383838]"
|
|
29662
29859
|
}
|
|
29663
29860
|
) }),
|
|
29664
|
-
showBcc && /* @__PURE__ */
|
|
29861
|
+
showBcc && /* @__PURE__ */ jsx64("div", { className: "mb-3", children: /* @__PURE__ */ jsx64(
|
|
29665
29862
|
"input",
|
|
29666
29863
|
{
|
|
29667
29864
|
type: "text",
|
|
@@ -29671,7 +29868,7 @@ function EmailComposer({ className, style, to, setTo, showCc, setShowCc, showBcc
|
|
|
29671
29868
|
className: "w-full flex-1 border-2 rounded-md h-[40px] px-3 focus:outline-none border-[#E9E9E9] text-[#383838]"
|
|
29672
29869
|
}
|
|
29673
29870
|
) }),
|
|
29674
|
-
/* @__PURE__ */
|
|
29871
|
+
/* @__PURE__ */ jsx64("div", { className: "mb-3", children: /* @__PURE__ */ jsx64(
|
|
29675
29872
|
"input",
|
|
29676
29873
|
{
|
|
29677
29874
|
type: "text",
|
|
@@ -29681,11 +29878,11 @@ function EmailComposer({ className, style, to, setTo, showCc, setShowCc, showBcc
|
|
|
29681
29878
|
className: "w-full flex-1 border-2 rounded-md h-[40px] px-3 focus:outline-none border-[#E9E9E9] text-[#383838]"
|
|
29682
29879
|
}
|
|
29683
29880
|
) }),
|
|
29684
|
-
/* @__PURE__ */
|
|
29685
|
-
/* @__PURE__ */
|
|
29686
|
-
/* @__PURE__ */
|
|
29687
|
-
/* @__PURE__ */
|
|
29688
|
-
/* @__PURE__ */
|
|
29881
|
+
/* @__PURE__ */ jsx64("div", { className: "mb-4", children: /* @__PURE__ */ jsx64(MyEditor, { value: body, onChange: setBody }) }),
|
|
29882
|
+
/* @__PURE__ */ jsxs39("div", { className: "flex justify-end gap-2", children: [
|
|
29883
|
+
/* @__PURE__ */ jsx64("button", { className: "px-4 py-2 rounded-md text-gray-600 hover:bg-gray-100", children: "Discard" }),
|
|
29884
|
+
/* @__PURE__ */ jsx64("button", { className: "px-4 py-2 rounded-md border text-[#12715B] border-[#12715B]", children: "Reset" }),
|
|
29885
|
+
/* @__PURE__ */ jsx64("button", { className: "px-4 py-2 rounded-md bg-[#12715B] text-white", children: "Send" })
|
|
29689
29886
|
] })
|
|
29690
29887
|
] }) });
|
|
29691
29888
|
}
|
|
@@ -29730,10 +29927,10 @@ function showSonnerToast({
|
|
|
29730
29927
|
// src/components/ui/sonner.tsx
|
|
29731
29928
|
import { useTheme } from "next-themes";
|
|
29732
29929
|
import { Toaster as Sonner } from "sonner";
|
|
29733
|
-
import { jsx as
|
|
29930
|
+
import { jsx as jsx65 } from "react/jsx-runtime";
|
|
29734
29931
|
var Toaster = ({ ...props }) => {
|
|
29735
29932
|
const { theme = "system" } = useTheme();
|
|
29736
|
-
return /* @__PURE__ */
|
|
29933
|
+
return /* @__PURE__ */ jsx65(
|
|
29737
29934
|
Sonner,
|
|
29738
29935
|
{
|
|
29739
29936
|
theme,
|
|
@@ -29768,6 +29965,7 @@ export {
|
|
|
29768
29965
|
Image_default as Image,
|
|
29769
29966
|
Modal,
|
|
29770
29967
|
MultiCheckbox_default as MultiCheckbox,
|
|
29968
|
+
MultiSelect_default as MultiSelect,
|
|
29771
29969
|
Navbar,
|
|
29772
29970
|
NumberInput_default as NumberInput,
|
|
29773
29971
|
Pagination_default as Pagination,
|