@algorithm-shift/design-system 1.2.40 → 1.2.42
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.css +79 -9
- package/dist/index.css.map +1 -1
- package/dist/index.d.mts +35 -27
- package/dist/index.d.ts +35 -27
- package/dist/index.js +750 -531
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +746 -528
- package/dist/index.mjs.map +1 -1
- package/package.json +5 -5
package/dist/index.js
CHANGED
|
@@ -31,7 +31,9 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
31
31
|
var index_exports = {};
|
|
32
32
|
__export(index_exports, {
|
|
33
33
|
BarChart: () => BarChart_default,
|
|
34
|
+
Breadcrumb: () => Breadcrumb_default,
|
|
34
35
|
Button: () => Button_default,
|
|
36
|
+
ButtonGroup: () => SplitButton,
|
|
35
37
|
Checkbox: () => Checkbox_default,
|
|
36
38
|
Container: () => Container_default,
|
|
37
39
|
DatePicker: () => DatePicker,
|
|
@@ -41,20 +43,18 @@ __export(index_exports, {
|
|
|
41
43
|
EmailComposer: () => EmailComposer,
|
|
42
44
|
FileInput: () => FileInput_default,
|
|
43
45
|
FlexLayout: () => Flex_default,
|
|
44
|
-
Form: () =>
|
|
46
|
+
Form: () => Form_default,
|
|
47
|
+
FormWrapper: () => Wrapper_default,
|
|
45
48
|
GridLayout: () => Grid_default,
|
|
46
49
|
Image: () => Image_default,
|
|
47
|
-
Logo: () => Logo_default,
|
|
48
50
|
Modal: () => Modal_default,
|
|
49
51
|
MultiCheckbox: () => MultiCheckbox_default,
|
|
50
52
|
Navbar: () => Navbar,
|
|
51
|
-
Notification: () => Notification_default,
|
|
52
53
|
NumberInput: () => NumberInput_default,
|
|
53
54
|
Pagination: () => Pagination_default,
|
|
54
55
|
Password: () => PasswordInput_default,
|
|
55
56
|
Phone: () => PhoneInput_default,
|
|
56
57
|
PieChart: () => PieChart_default,
|
|
57
|
-
Profile: () => Profile_default,
|
|
58
58
|
RadioGroup: () => RadioInput_default,
|
|
59
59
|
RichText: () => RichText,
|
|
60
60
|
Search: () => SearchInput_default,
|
|
@@ -71,6 +71,7 @@ __export(index_exports, {
|
|
|
71
71
|
Typography: () => Typography_default,
|
|
72
72
|
URL: () => UrlInput_default,
|
|
73
73
|
cn: () => cn,
|
|
74
|
+
getInitials: () => getInitials,
|
|
74
75
|
showSonnerToast: () => showSonnerToast,
|
|
75
76
|
stateReducer: () => stateReducer,
|
|
76
77
|
useAppState: () => useAppState
|
|
@@ -150,6 +151,16 @@ var import_tailwind_merge = require("tailwind-merge");
|
|
|
150
151
|
function cn(...inputs) {
|
|
151
152
|
return (0, import_tailwind_merge.twMerge)((0, import_clsx.clsx)(inputs));
|
|
152
153
|
}
|
|
154
|
+
function getInitials(name) {
|
|
155
|
+
const words = name.split(" ");
|
|
156
|
+
if (words.length === 0) {
|
|
157
|
+
return "";
|
|
158
|
+
}
|
|
159
|
+
if (words.length === 1) {
|
|
160
|
+
return words[0].charAt(0);
|
|
161
|
+
}
|
|
162
|
+
return words[0].charAt(0) + words[1].charAt(0);
|
|
163
|
+
}
|
|
153
164
|
|
|
154
165
|
// src/components/ui/button.tsx
|
|
155
166
|
var import_jsx_runtime5 = require("react/jsx-runtime");
|
|
@@ -281,71 +292,6 @@ var Typography = ({
|
|
|
281
292
|
};
|
|
282
293
|
var Typography_default = Typography;
|
|
283
294
|
|
|
284
|
-
// src/components/Inputs/TextInput/TextInput.tsx
|
|
285
|
-
var React2 = __toESM(require("react"));
|
|
286
|
-
|
|
287
|
-
// src/components/ui/input.tsx
|
|
288
|
-
var import_jsx_runtime9 = require("react/jsx-runtime");
|
|
289
|
-
function Input({ className, type, ...props }) {
|
|
290
|
-
return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
291
|
-
"input",
|
|
292
|
-
{
|
|
293
|
-
type,
|
|
294
|
-
"data-slot": "input",
|
|
295
|
-
className: cn(
|
|
296
|
-
"file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input flex h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",
|
|
297
|
-
"focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]",
|
|
298
|
-
"aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",
|
|
299
|
-
className
|
|
300
|
-
),
|
|
301
|
-
...props
|
|
302
|
-
}
|
|
303
|
-
);
|
|
304
|
-
}
|
|
305
|
-
|
|
306
|
-
// src/components/Inputs/TextInput/TextInput.tsx
|
|
307
|
-
var import_jsx_runtime10 = require("react/jsx-runtime");
|
|
308
|
-
var TextInput = ({ className, style, ...props }) => {
|
|
309
|
-
const placeholder = props.placeholder || "Placeholder text";
|
|
310
|
-
const isEditable = props.isEditable ?? true;
|
|
311
|
-
const isDisabled = props.isDisabled ?? false;
|
|
312
|
-
const isReadonly = props.isReadonly ?? false;
|
|
313
|
-
const isAutocomplete = props.isAutocomplete ?? false;
|
|
314
|
-
const [error, setError] = React2.useState(null);
|
|
315
|
-
React2.useEffect(() => {
|
|
316
|
-
if (!props.validateOnMount) return;
|
|
317
|
-
setError(props.errorMessage || null);
|
|
318
|
-
}, [props.errorMessage, props.validateOnMount]);
|
|
319
|
-
const handleChange = (e) => {
|
|
320
|
-
props.onChange?.(e);
|
|
321
|
-
};
|
|
322
|
-
return /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(import_jsx_runtime10.Fragment, { children: [
|
|
323
|
-
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
324
|
-
Input,
|
|
325
|
-
{
|
|
326
|
-
type: "text",
|
|
327
|
-
name: props.name,
|
|
328
|
-
className: cn(className, error ? "border-red-500" : ""),
|
|
329
|
-
style: {
|
|
330
|
-
...style,
|
|
331
|
-
borderColor: error ? "#f87171" : style?.borderColor
|
|
332
|
-
},
|
|
333
|
-
value: props.value,
|
|
334
|
-
autoComplete: isAutocomplete ? "on" : "off",
|
|
335
|
-
placeholder,
|
|
336
|
-
onChange: handleChange,
|
|
337
|
-
disabled: isDisabled || !isEditable,
|
|
338
|
-
readOnly: isReadonly
|
|
339
|
-
}
|
|
340
|
-
),
|
|
341
|
-
error && /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("p", { className: "mt-1 text-xs text-red-500", children: error })
|
|
342
|
-
] });
|
|
343
|
-
};
|
|
344
|
-
var TextInput_default = TextInput;
|
|
345
|
-
|
|
346
|
-
// src/components/Inputs/NumberInput/NumberInput.tsx
|
|
347
|
-
var React3 = __toESM(require("react"));
|
|
348
|
-
|
|
349
295
|
// node_modules/lucide-react/dist/esm/createLucideIcon.js
|
|
350
296
|
var import_react3 = require("react");
|
|
351
297
|
|
|
@@ -543,9 +489,261 @@ var __iconNode14 = [
|
|
|
543
489
|
];
|
|
544
490
|
var Search = createLucideIcon("search", __iconNode14);
|
|
545
491
|
|
|
492
|
+
// src/components/Basic/Breadcrumb/Breadcrumb.tsx
|
|
493
|
+
var import_jsx_runtime9 = require("react/jsx-runtime");
|
|
494
|
+
var Breadcrumb = ({ list = [], className, style, LinkComponent }) => {
|
|
495
|
+
return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
496
|
+
"nav",
|
|
497
|
+
{
|
|
498
|
+
"aria-label": "breadcrumb",
|
|
499
|
+
className: cn("flex items-center text-sm text-muted-foreground", className),
|
|
500
|
+
style,
|
|
501
|
+
children: list.map((item, index) => {
|
|
502
|
+
const isLast = index === list.length - 1;
|
|
503
|
+
return /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { className: "flex items-center", children: [
|
|
504
|
+
item.url && !isLast && LinkComponent ? /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
505
|
+
LinkComponent,
|
|
506
|
+
{
|
|
507
|
+
href: item.url,
|
|
508
|
+
className: "hover:text-foreground transition-colors",
|
|
509
|
+
children: item.header
|
|
510
|
+
}
|
|
511
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { className: "text-foreground font-medium", children: item.header }),
|
|
512
|
+
!isLast && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(ChevronRight, { className: "mx-2 h-4 w-4 text-muted-foreground" })
|
|
513
|
+
] }, item.id);
|
|
514
|
+
})
|
|
515
|
+
}
|
|
516
|
+
);
|
|
517
|
+
};
|
|
518
|
+
var Breadcrumb_default = Breadcrumb;
|
|
519
|
+
|
|
520
|
+
// src/components/ui/dropdown-menu.tsx
|
|
521
|
+
var DropdownMenuPrimitive = __toESM(require("@radix-ui/react-dropdown-menu"));
|
|
522
|
+
var import_jsx_runtime10 = require("react/jsx-runtime");
|
|
523
|
+
function DropdownMenu({
|
|
524
|
+
...props
|
|
525
|
+
}) {
|
|
526
|
+
return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(DropdownMenuPrimitive.Root, { "data-slot": "dropdown-menu", ...props });
|
|
527
|
+
}
|
|
528
|
+
function DropdownMenuTrigger({
|
|
529
|
+
...props
|
|
530
|
+
}) {
|
|
531
|
+
return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
532
|
+
DropdownMenuPrimitive.Trigger,
|
|
533
|
+
{
|
|
534
|
+
"data-slot": "dropdown-menu-trigger",
|
|
535
|
+
...props
|
|
536
|
+
}
|
|
537
|
+
);
|
|
538
|
+
}
|
|
539
|
+
function DropdownMenuContent({
|
|
540
|
+
className,
|
|
541
|
+
sideOffset = 4,
|
|
542
|
+
...props
|
|
543
|
+
}) {
|
|
544
|
+
return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
545
|
+
DropdownMenuPrimitive.Content,
|
|
546
|
+
{
|
|
547
|
+
"data-slot": "dropdown-menu-content",
|
|
548
|
+
sideOffset,
|
|
549
|
+
className: cn(
|
|
550
|
+
"bg-popover text-popover-foreground 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 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 max-h-(--radix-dropdown-menu-content-available-height) min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border p-1 shadow-md",
|
|
551
|
+
className
|
|
552
|
+
),
|
|
553
|
+
...props
|
|
554
|
+
}
|
|
555
|
+
) });
|
|
556
|
+
}
|
|
557
|
+
function DropdownMenuItem({
|
|
558
|
+
className,
|
|
559
|
+
inset,
|
|
560
|
+
variant = "default",
|
|
561
|
+
...props
|
|
562
|
+
}) {
|
|
563
|
+
return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
564
|
+
DropdownMenuPrimitive.Item,
|
|
565
|
+
{
|
|
566
|
+
"data-slot": "dropdown-menu-item",
|
|
567
|
+
"data-inset": inset,
|
|
568
|
+
"data-variant": variant,
|
|
569
|
+
className: cn(
|
|
570
|
+
"focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:!text-destructive [&_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]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
571
|
+
className
|
|
572
|
+
),
|
|
573
|
+
...props
|
|
574
|
+
}
|
|
575
|
+
);
|
|
576
|
+
}
|
|
577
|
+
function DropdownMenuLabel({
|
|
578
|
+
className,
|
|
579
|
+
inset,
|
|
580
|
+
...props
|
|
581
|
+
}) {
|
|
582
|
+
return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
583
|
+
DropdownMenuPrimitive.Label,
|
|
584
|
+
{
|
|
585
|
+
"data-slot": "dropdown-menu-label",
|
|
586
|
+
"data-inset": inset,
|
|
587
|
+
className: cn(
|
|
588
|
+
"px-2 py-1.5 text-sm font-medium data-[inset]:pl-8",
|
|
589
|
+
className
|
|
590
|
+
),
|
|
591
|
+
...props
|
|
592
|
+
}
|
|
593
|
+
);
|
|
594
|
+
}
|
|
595
|
+
function DropdownMenuSeparator({
|
|
596
|
+
className,
|
|
597
|
+
...props
|
|
598
|
+
}) {
|
|
599
|
+
return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
600
|
+
DropdownMenuPrimitive.Separator,
|
|
601
|
+
{
|
|
602
|
+
"data-slot": "dropdown-menu-separator",
|
|
603
|
+
className: cn("bg-border -mx-1 my-1 h-px", className),
|
|
604
|
+
...props
|
|
605
|
+
}
|
|
606
|
+
);
|
|
607
|
+
}
|
|
608
|
+
function DropdownMenuSub({
|
|
609
|
+
...props
|
|
610
|
+
}) {
|
|
611
|
+
return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(DropdownMenuPrimitive.Sub, { "data-slot": "dropdown-menu-sub", ...props });
|
|
612
|
+
}
|
|
613
|
+
function DropdownMenuSubTrigger({
|
|
614
|
+
className,
|
|
615
|
+
inset,
|
|
616
|
+
children,
|
|
617
|
+
...props
|
|
618
|
+
}) {
|
|
619
|
+
return /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(
|
|
620
|
+
DropdownMenuPrimitive.SubTrigger,
|
|
621
|
+
{
|
|
622
|
+
"data-slot": "dropdown-menu-sub-trigger",
|
|
623
|
+
"data-inset": inset,
|
|
624
|
+
className: cn(
|
|
625
|
+
"focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground flex cursor-default items-center rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[inset]:pl-8",
|
|
626
|
+
className
|
|
627
|
+
),
|
|
628
|
+
...props,
|
|
629
|
+
children: [
|
|
630
|
+
children,
|
|
631
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)(ChevronRight, { className: "ml-auto size-4" })
|
|
632
|
+
]
|
|
633
|
+
}
|
|
634
|
+
);
|
|
635
|
+
}
|
|
636
|
+
function DropdownMenuSubContent({
|
|
637
|
+
className,
|
|
638
|
+
...props
|
|
639
|
+
}) {
|
|
640
|
+
return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
641
|
+
DropdownMenuPrimitive.SubContent,
|
|
642
|
+
{
|
|
643
|
+
"data-slot": "dropdown-menu-sub-content",
|
|
644
|
+
className: cn(
|
|
645
|
+
"bg-popover text-popover-foreground 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 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-hidden rounded-md border p-1 shadow-lg",
|
|
646
|
+
className
|
|
647
|
+
),
|
|
648
|
+
...props
|
|
649
|
+
}
|
|
650
|
+
);
|
|
651
|
+
}
|
|
652
|
+
|
|
653
|
+
// src/components/Basic/ButtonGroup/ButtonGroup.tsx
|
|
654
|
+
var import_jsx_runtime11 = require("react/jsx-runtime");
|
|
655
|
+
function SplitButton({ style, textContent, className, list = [], LinkComponent }) {
|
|
656
|
+
const bgColor = style?.backgroundColor || "";
|
|
657
|
+
return /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { className: "inline-flex rounded-md overflow-hidden border border-teal-200 bg-teal-700 items-center focus:ring-0", style: { backgroundColor: bgColor }, children: [
|
|
658
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
659
|
+
Button,
|
|
660
|
+
{
|
|
661
|
+
className: `rounded-none border-r px-4 py-2 text-whit focus:ring-0 ${className || ""}`,
|
|
662
|
+
style: { backgroundColor: bgColor },
|
|
663
|
+
children: textContent || "Button"
|
|
664
|
+
}
|
|
665
|
+
),
|
|
666
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(DropdownMenu, { children: [
|
|
667
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
668
|
+
Button,
|
|
669
|
+
{
|
|
670
|
+
className: "rounded-none bg-teal-700 px-4 py-2 text-white ring-0 shadow-none hover:bg-teal-600 focus:ring-0",
|
|
671
|
+
"aria-label": "Open Dropdown",
|
|
672
|
+
style: { backgroundColor: bgColor },
|
|
673
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(ChevronDown, { className: "w-4 h-4" })
|
|
674
|
+
}
|
|
675
|
+
) }),
|
|
676
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(DropdownMenuContent, { align: "end", className: "bg-white min-w-[120px]", children: list.map((item) => /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(DropdownMenuItem, { className: "text-black", children: LinkComponent ? /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(LinkComponent, { href: item.url || "#", children: item.header }) : item.header }, item.id)) })
|
|
677
|
+
] })
|
|
678
|
+
] });
|
|
679
|
+
}
|
|
680
|
+
|
|
681
|
+
// src/components/Inputs/TextInput/TextInput.tsx
|
|
682
|
+
var React2 = __toESM(require("react"));
|
|
683
|
+
|
|
684
|
+
// src/components/ui/input.tsx
|
|
685
|
+
var import_jsx_runtime12 = require("react/jsx-runtime");
|
|
686
|
+
function Input({ className, type, ...props }) {
|
|
687
|
+
return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
688
|
+
"input",
|
|
689
|
+
{
|
|
690
|
+
type,
|
|
691
|
+
"data-slot": "input",
|
|
692
|
+
className: cn(
|
|
693
|
+
"file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input flex h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",
|
|
694
|
+
"focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]",
|
|
695
|
+
"aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",
|
|
696
|
+
className
|
|
697
|
+
),
|
|
698
|
+
...props
|
|
699
|
+
}
|
|
700
|
+
);
|
|
701
|
+
}
|
|
702
|
+
|
|
703
|
+
// src/components/Inputs/TextInput/TextInput.tsx
|
|
704
|
+
var import_jsx_runtime13 = require("react/jsx-runtime");
|
|
705
|
+
var TextInput = ({ className, style, ...props }) => {
|
|
706
|
+
const placeholder = props.placeholder || "Placeholder text";
|
|
707
|
+
const isEditable = props.isEditable ?? true;
|
|
708
|
+
const isDisabled = props.isDisabled ?? false;
|
|
709
|
+
const isReadonly = props.isReadonly ?? false;
|
|
710
|
+
const isAutocomplete = props.isAutocomplete ?? false;
|
|
711
|
+
const [error, setError] = React2.useState(null);
|
|
712
|
+
React2.useEffect(() => {
|
|
713
|
+
if (!props.validateOnMount) return;
|
|
714
|
+
setError(props.errorMessage || null);
|
|
715
|
+
}, [props.errorMessage, props.validateOnMount]);
|
|
716
|
+
const handleChange = (e) => {
|
|
717
|
+
props.onChange?.(e);
|
|
718
|
+
};
|
|
719
|
+
return /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_jsx_runtime13.Fragment, { children: [
|
|
720
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
721
|
+
Input,
|
|
722
|
+
{
|
|
723
|
+
type: "text",
|
|
724
|
+
name: props.name,
|
|
725
|
+
className: cn(className, error ? "border-red-500" : ""),
|
|
726
|
+
style: {
|
|
727
|
+
...style,
|
|
728
|
+
borderColor: error ? "#f87171" : style?.borderColor
|
|
729
|
+
},
|
|
730
|
+
value: props.value,
|
|
731
|
+
autoComplete: isAutocomplete ? "on" : "off",
|
|
732
|
+
placeholder,
|
|
733
|
+
onChange: handleChange,
|
|
734
|
+
disabled: isDisabled || !isEditable,
|
|
735
|
+
readOnly: isReadonly
|
|
736
|
+
}
|
|
737
|
+
),
|
|
738
|
+
error && /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("p", { className: "mt-1 text-xs text-red-500", children: error })
|
|
739
|
+
] });
|
|
740
|
+
};
|
|
741
|
+
var TextInput_default = TextInput;
|
|
742
|
+
|
|
546
743
|
// src/components/Inputs/NumberInput/NumberInput.tsx
|
|
744
|
+
var React3 = __toESM(require("react"));
|
|
547
745
|
var import_react4 = require("react");
|
|
548
|
-
var
|
|
746
|
+
var import_jsx_runtime14 = require("react/jsx-runtime");
|
|
549
747
|
var NumberInput = ({ className, style, ...props }) => {
|
|
550
748
|
const placeholder = props.placeholder ?? "Placeholder text";
|
|
551
749
|
const isEditable = props.isEditable ?? true;
|
|
@@ -560,10 +758,10 @@ var NumberInput = ({ className, style, ...props }) => {
|
|
|
560
758
|
const handleChange = (e) => {
|
|
561
759
|
props.onChange?.(e);
|
|
562
760
|
};
|
|
563
|
-
return /* @__PURE__ */ (0,
|
|
564
|
-
/* @__PURE__ */ (0,
|
|
565
|
-
/* @__PURE__ */ (0,
|
|
566
|
-
/* @__PURE__ */ (0,
|
|
761
|
+
return /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(import_jsx_runtime14.Fragment, { children: [
|
|
762
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("div", { className: "flex justify-start items-center relative", children: [
|
|
763
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)(Calculator, { className: "absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-[#BDBDBD]" }),
|
|
764
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
|
|
567
765
|
Input,
|
|
568
766
|
{
|
|
569
767
|
type: "number",
|
|
@@ -583,14 +781,14 @@ var NumberInput = ({ className, style, ...props }) => {
|
|
|
583
781
|
}
|
|
584
782
|
)
|
|
585
783
|
] }),
|
|
586
|
-
error && /* @__PURE__ */ (0,
|
|
784
|
+
error && /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("p", { className: "mt-1 text-xs text-red-500", children: error })
|
|
587
785
|
] });
|
|
588
786
|
};
|
|
589
787
|
var NumberInput_default = NumberInput;
|
|
590
788
|
|
|
591
789
|
// src/components/Inputs/EmailInput/EmailInput.tsx
|
|
592
790
|
var React4 = __toESM(require("react"));
|
|
593
|
-
var
|
|
791
|
+
var import_jsx_runtime15 = require("react/jsx-runtime");
|
|
594
792
|
var EmailInput = ({ className, style, ...props }) => {
|
|
595
793
|
const placeholder = props.placeholder ?? "Placeholder text";
|
|
596
794
|
const isEditable = props.isEditable ?? true;
|
|
@@ -605,10 +803,10 @@ var EmailInput = ({ className, style, ...props }) => {
|
|
|
605
803
|
const handleChange = (e) => {
|
|
606
804
|
props.onChange?.(e);
|
|
607
805
|
};
|
|
608
|
-
return /* @__PURE__ */ (0,
|
|
609
|
-
/* @__PURE__ */ (0,
|
|
610
|
-
/* @__PURE__ */ (0,
|
|
611
|
-
/* @__PURE__ */ (0,
|
|
806
|
+
return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(import_jsx_runtime15.Fragment, { children: [
|
|
807
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "flex justify-start items-center relative", children: [
|
|
808
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Mail, { className: "absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-[#BDBDBD]" }),
|
|
809
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
|
612
810
|
Input,
|
|
613
811
|
{
|
|
614
812
|
type: "email",
|
|
@@ -627,14 +825,14 @@ var EmailInput = ({ className, style, ...props }) => {
|
|
|
627
825
|
}
|
|
628
826
|
)
|
|
629
827
|
] }),
|
|
630
|
-
error && /* @__PURE__ */ (0,
|
|
828
|
+
error && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("p", { className: "mt-1 text-xs text-red-500", children: error })
|
|
631
829
|
] });
|
|
632
830
|
};
|
|
633
831
|
var EmailInput_default = EmailInput;
|
|
634
832
|
|
|
635
833
|
// src/components/Inputs/PasswordInput/PasswordInput.tsx
|
|
636
834
|
var React5 = __toESM(require("react"));
|
|
637
|
-
var
|
|
835
|
+
var import_jsx_runtime16 = require("react/jsx-runtime");
|
|
638
836
|
var PasswordInput = ({ className, style, ...props }) => {
|
|
639
837
|
const placeholder = props.placeholder ?? "Placeholder text";
|
|
640
838
|
const isEditable = props.isEditable ?? true;
|
|
@@ -649,10 +847,10 @@ var PasswordInput = ({ className, style, ...props }) => {
|
|
|
649
847
|
const handleChange = (e) => {
|
|
650
848
|
props.onChange?.(e);
|
|
651
849
|
};
|
|
652
|
-
return /* @__PURE__ */ (0,
|
|
653
|
-
/* @__PURE__ */ (0,
|
|
654
|
-
/* @__PURE__ */ (0,
|
|
655
|
-
/* @__PURE__ */ (0,
|
|
850
|
+
return /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(import_jsx_runtime16.Fragment, { children: [
|
|
851
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("div", { className: "flex justify-start items-center relative", children: [
|
|
852
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)(ScanEye, { className: "absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-[#BDBDBD]" }),
|
|
853
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
656
854
|
Input,
|
|
657
855
|
{
|
|
658
856
|
type: "password",
|
|
@@ -672,7 +870,7 @@ var PasswordInput = ({ className, style, ...props }) => {
|
|
|
672
870
|
}
|
|
673
871
|
)
|
|
674
872
|
] }),
|
|
675
|
-
error && /* @__PURE__ */ (0,
|
|
873
|
+
error && /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("p", { className: "mt-1 text-xs text-red-500", children: error })
|
|
676
874
|
] });
|
|
677
875
|
};
|
|
678
876
|
var PasswordInput_default = PasswordInput;
|
|
@@ -681,9 +879,9 @@ var PasswordInput_default = PasswordInput;
|
|
|
681
879
|
var React6 = __toESM(require("react"));
|
|
682
880
|
|
|
683
881
|
// src/components/ui/textarea.tsx
|
|
684
|
-
var
|
|
882
|
+
var import_jsx_runtime17 = require("react/jsx-runtime");
|
|
685
883
|
function Textarea({ className, ...props }) {
|
|
686
|
-
return /* @__PURE__ */ (0,
|
|
884
|
+
return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
687
885
|
"textarea",
|
|
688
886
|
{
|
|
689
887
|
"data-slot": "textarea",
|
|
@@ -697,7 +895,7 @@ function Textarea({ className, ...props }) {
|
|
|
697
895
|
}
|
|
698
896
|
|
|
699
897
|
// src/components/Inputs/Textarea/Textarea.tsx
|
|
700
|
-
var
|
|
898
|
+
var import_jsx_runtime18 = require("react/jsx-runtime");
|
|
701
899
|
var Textarea2 = ({ className, style, ...props }) => {
|
|
702
900
|
const placeholder = props.placeholder ?? "Placeholder text";
|
|
703
901
|
const isEditable = props.isEditable ?? true;
|
|
@@ -712,8 +910,8 @@ var Textarea2 = ({ className, style, ...props }) => {
|
|
|
712
910
|
const handleChange = (e) => {
|
|
713
911
|
props.onChange?.(e);
|
|
714
912
|
};
|
|
715
|
-
return /* @__PURE__ */ (0,
|
|
716
|
-
/* @__PURE__ */ (0,
|
|
913
|
+
return /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_jsx_runtime18.Fragment, { children: [
|
|
914
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
717
915
|
Textarea,
|
|
718
916
|
{
|
|
719
917
|
id: "textarea-field",
|
|
@@ -731,14 +929,14 @@ var Textarea2 = ({ className, style, ...props }) => {
|
|
|
731
929
|
readOnly: isReadonly
|
|
732
930
|
}
|
|
733
931
|
),
|
|
734
|
-
error && /* @__PURE__ */ (0,
|
|
932
|
+
error && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("p", { className: "mt-1 text-xs text-red-500", children: error })
|
|
735
933
|
] });
|
|
736
934
|
};
|
|
737
935
|
var Textarea_default = Textarea2;
|
|
738
936
|
|
|
739
937
|
// src/components/Inputs/UrlInput/UrlInput.tsx
|
|
740
938
|
var React7 = __toESM(require("react"));
|
|
741
|
-
var
|
|
939
|
+
var import_jsx_runtime19 = require("react/jsx-runtime");
|
|
742
940
|
var UrlInput = ({ className, style, ...props }) => {
|
|
743
941
|
const placeholder = props.placeholder ?? "Placeholder text";
|
|
744
942
|
const isEditable = props.isEditable ?? true;
|
|
@@ -753,10 +951,10 @@ var UrlInput = ({ className, style, ...props }) => {
|
|
|
753
951
|
const handleChange = (e) => {
|
|
754
952
|
props.onChange?.(e);
|
|
755
953
|
};
|
|
756
|
-
return /* @__PURE__ */ (0,
|
|
757
|
-
/* @__PURE__ */ (0,
|
|
758
|
-
/* @__PURE__ */ (0,
|
|
759
|
-
/* @__PURE__ */ (0,
|
|
954
|
+
return /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(import_jsx_runtime19.Fragment, { children: [
|
|
955
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("div", { className: "flex justify-start items-center relative", children: [
|
|
956
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", { className: "bg-[#E9E9E9] absolute px-10 text-center top-1/2 h-full justify-center items-center flex w-10 -translate-y-1/2 text-[#383838] font-[500] text-[12px]", children: "https://" }),
|
|
957
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
760
958
|
Input,
|
|
761
959
|
{
|
|
762
960
|
id: "url-field",
|
|
@@ -776,7 +974,7 @@ var UrlInput = ({ className, style, ...props }) => {
|
|
|
776
974
|
}
|
|
777
975
|
)
|
|
778
976
|
] }),
|
|
779
|
-
error && /* @__PURE__ */ (0,
|
|
977
|
+
error && /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("p", { className: "mt-1 text-xs text-red-500", children: error })
|
|
780
978
|
] });
|
|
781
979
|
};
|
|
782
980
|
var UrlInput_default = UrlInput;
|
|
@@ -786,12 +984,12 @@ var import_react5 = require("react");
|
|
|
786
984
|
|
|
787
985
|
// src/components/ui/checkbox.tsx
|
|
788
986
|
var CheckboxPrimitive = __toESM(require("@radix-ui/react-checkbox"));
|
|
789
|
-
var
|
|
987
|
+
var import_jsx_runtime20 = require("react/jsx-runtime");
|
|
790
988
|
function Checkbox({
|
|
791
989
|
className,
|
|
792
990
|
...props
|
|
793
991
|
}) {
|
|
794
|
-
return /* @__PURE__ */ (0,
|
|
992
|
+
return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
795
993
|
CheckboxPrimitive.Root,
|
|
796
994
|
{
|
|
797
995
|
"data-slot": "checkbox",
|
|
@@ -800,12 +998,12 @@ function Checkbox({
|
|
|
800
998
|
className
|
|
801
999
|
),
|
|
802
1000
|
...props,
|
|
803
|
-
children: /* @__PURE__ */ (0,
|
|
1001
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
804
1002
|
CheckboxPrimitive.Indicator,
|
|
805
1003
|
{
|
|
806
1004
|
"data-slot": "checkbox-indicator",
|
|
807
1005
|
className: "flex items-center justify-center text-current transition-none",
|
|
808
|
-
children: /* @__PURE__ */ (0,
|
|
1006
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(Check, { className: "size-3.5" })
|
|
809
1007
|
}
|
|
810
1008
|
)
|
|
811
1009
|
}
|
|
@@ -814,12 +1012,12 @@ function Checkbox({
|
|
|
814
1012
|
|
|
815
1013
|
// src/components/ui/label.tsx
|
|
816
1014
|
var LabelPrimitive = __toESM(require("@radix-ui/react-label"));
|
|
817
|
-
var
|
|
818
|
-
function
|
|
1015
|
+
var import_jsx_runtime21 = require("react/jsx-runtime");
|
|
1016
|
+
function Label2({
|
|
819
1017
|
className,
|
|
820
1018
|
...props
|
|
821
1019
|
}) {
|
|
822
|
-
return /* @__PURE__ */ (0,
|
|
1020
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
823
1021
|
LabelPrimitive.Root,
|
|
824
1022
|
{
|
|
825
1023
|
"data-slot": "label",
|
|
@@ -833,7 +1031,7 @@ function Label({
|
|
|
833
1031
|
}
|
|
834
1032
|
|
|
835
1033
|
// src/components/Inputs/Checkbox/Checkbox.tsx
|
|
836
|
-
var
|
|
1034
|
+
var import_jsx_runtime22 = require("react/jsx-runtime");
|
|
837
1035
|
var CheckboxInput = ({ className, style, ...props }) => {
|
|
838
1036
|
const isEditable = props.isEditable ?? true;
|
|
839
1037
|
const isDisabled = props.isDisabled ?? false;
|
|
@@ -846,9 +1044,9 @@ var CheckboxInput = ({ className, style, ...props }) => {
|
|
|
846
1044
|
const handleChange = (value) => {
|
|
847
1045
|
props.onChange?.(value);
|
|
848
1046
|
};
|
|
849
|
-
return /* @__PURE__ */ (0,
|
|
850
|
-
/* @__PURE__ */ (0,
|
|
851
|
-
/* @__PURE__ */ (0,
|
|
1047
|
+
return /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(import_jsx_runtime22.Fragment, { children: [
|
|
1048
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)("div", { className, style, children: /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)("div", { className: "flex items-center space-x-2", children: [
|
|
1049
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
|
852
1050
|
Checkbox,
|
|
853
1051
|
{
|
|
854
1052
|
id: props.name || "checkbox",
|
|
@@ -857,9 +1055,9 @@ var CheckboxInput = ({ className, style, ...props }) => {
|
|
|
857
1055
|
disabled: !isEditable || isDisabled
|
|
858
1056
|
}
|
|
859
1057
|
),
|
|
860
|
-
/* @__PURE__ */ (0,
|
|
1058
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)(Label2, { htmlFor: props.name || "checkbox", children: text })
|
|
861
1059
|
] }) }),
|
|
862
|
-
error && /* @__PURE__ */ (0,
|
|
1060
|
+
error && /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("p", { className: "mt-1 text-xs text-red-500", children: error })
|
|
863
1061
|
] });
|
|
864
1062
|
};
|
|
865
1063
|
var Checkbox_default = CheckboxInput;
|
|
@@ -869,12 +1067,12 @@ var import_react6 = require("react");
|
|
|
869
1067
|
|
|
870
1068
|
// src/components/ui/radio-group.tsx
|
|
871
1069
|
var RadioGroupPrimitive = __toESM(require("@radix-ui/react-radio-group"));
|
|
872
|
-
var
|
|
873
|
-
function
|
|
1070
|
+
var import_jsx_runtime23 = require("react/jsx-runtime");
|
|
1071
|
+
function RadioGroup2({
|
|
874
1072
|
className,
|
|
875
1073
|
...props
|
|
876
1074
|
}) {
|
|
877
|
-
return /* @__PURE__ */ (0,
|
|
1075
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
878
1076
|
RadioGroupPrimitive.Root,
|
|
879
1077
|
{
|
|
880
1078
|
"data-slot": "radio-group",
|
|
@@ -887,7 +1085,7 @@ function RadioGroupItem({
|
|
|
887
1085
|
className,
|
|
888
1086
|
...props
|
|
889
1087
|
}) {
|
|
890
|
-
return /* @__PURE__ */ (0,
|
|
1088
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
891
1089
|
RadioGroupPrimitive.Item,
|
|
892
1090
|
{
|
|
893
1091
|
"data-slot": "radio-group-item",
|
|
@@ -896,12 +1094,12 @@ function RadioGroupItem({
|
|
|
896
1094
|
className
|
|
897
1095
|
),
|
|
898
1096
|
...props,
|
|
899
|
-
children: /* @__PURE__ */ (0,
|
|
1097
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
900
1098
|
RadioGroupPrimitive.Indicator,
|
|
901
1099
|
{
|
|
902
1100
|
"data-slot": "radio-group-indicator",
|
|
903
1101
|
className: "relative flex items-center justify-center",
|
|
904
|
-
children: /* @__PURE__ */ (0,
|
|
1102
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(Circle, { className: "fill-primary absolute top-1/2 left-1/2 size-2 -translate-x-1/2 -translate-y-1/2" })
|
|
905
1103
|
}
|
|
906
1104
|
)
|
|
907
1105
|
}
|
|
@@ -909,7 +1107,7 @@ function RadioGroupItem({
|
|
|
909
1107
|
}
|
|
910
1108
|
|
|
911
1109
|
// src/components/Inputs/RadioInput/RadioInput.tsx
|
|
912
|
-
var
|
|
1110
|
+
var import_jsx_runtime24 = require("react/jsx-runtime");
|
|
913
1111
|
var RadioInput = ({
|
|
914
1112
|
className,
|
|
915
1113
|
style,
|
|
@@ -933,29 +1131,29 @@ var RadioInput = ({
|
|
|
933
1131
|
onChange?.(value);
|
|
934
1132
|
};
|
|
935
1133
|
const resolvedDefaultValue = (typeof defaultValue === "string" ? defaultValue : void 0) ?? options[0]?.value;
|
|
936
|
-
return /* @__PURE__ */ (0,
|
|
937
|
-
/* @__PURE__ */ (0,
|
|
938
|
-
|
|
1134
|
+
return /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(import_jsx_runtime24.Fragment, { children: [
|
|
1135
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { className, style, children: /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(
|
|
1136
|
+
RadioGroup2,
|
|
939
1137
|
{
|
|
940
1138
|
defaultValue: resolvedDefaultValue,
|
|
941
1139
|
onValueChange: handleChange,
|
|
942
1140
|
children: [
|
|
943
|
-
options.length === 0 && /* @__PURE__ */ (0,
|
|
944
|
-
options.map((item) => /* @__PURE__ */ (0,
|
|
945
|
-
/* @__PURE__ */ (0,
|
|
946
|
-
/* @__PURE__ */ (0,
|
|
1141
|
+
options.length === 0 && /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { className: "text-sm text-gray-500", children: "No options available" }),
|
|
1142
|
+
options.map((item) => /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("div", { className: "flex items-center space-x-2", children: [
|
|
1143
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)(RadioGroupItem, { value: item.value, id: `radio-${item.value}` }),
|
|
1144
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)(Label2, { htmlFor: `radio-${item.value}`, children: item.label })
|
|
947
1145
|
] }, item.value))
|
|
948
1146
|
]
|
|
949
1147
|
}
|
|
950
1148
|
) }),
|
|
951
|
-
error && /* @__PURE__ */ (0,
|
|
1149
|
+
error && /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("p", { className: "mt-1 text-xs text-red-500", children: error })
|
|
952
1150
|
] });
|
|
953
1151
|
};
|
|
954
1152
|
var RadioInput_default = RadioInput;
|
|
955
1153
|
|
|
956
1154
|
// src/components/Inputs/MultiCheckbox/MultiCheckbox.tsx
|
|
957
1155
|
var import_react7 = require("react");
|
|
958
|
-
var
|
|
1156
|
+
var import_jsx_runtime25 = require("react/jsx-runtime");
|
|
959
1157
|
var MultiCheckbox = ({
|
|
960
1158
|
className,
|
|
961
1159
|
style,
|
|
@@ -982,15 +1180,15 @@ var MultiCheckbox = ({
|
|
|
982
1180
|
},
|
|
983
1181
|
[onChange]
|
|
984
1182
|
);
|
|
985
|
-
return /* @__PURE__ */ (0,
|
|
1183
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(
|
|
986
1184
|
"div",
|
|
987
1185
|
{
|
|
988
1186
|
className: cn("flex flex-col gap-3", className),
|
|
989
1187
|
style,
|
|
990
1188
|
children: [
|
|
991
|
-
options.length === 0 && /* @__PURE__ */ (0,
|
|
992
|
-
options.map((opt) => /* @__PURE__ */ (0,
|
|
993
|
-
/* @__PURE__ */ (0,
|
|
1189
|
+
options.length === 0 && /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("p", { className: "text-sm text-gray-500", children: "No options available." }),
|
|
1190
|
+
options.map((opt) => /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("div", { className: "flex items-center space-x-2", children: [
|
|
1191
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
994
1192
|
Checkbox,
|
|
995
1193
|
{
|
|
996
1194
|
id: opt.value,
|
|
@@ -999,7 +1197,7 @@ var MultiCheckbox = ({
|
|
|
999
1197
|
disabled: !isEditable || isDisabled
|
|
1000
1198
|
}
|
|
1001
1199
|
),
|
|
1002
|
-
/* @__PURE__ */ (0,
|
|
1200
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)(Label2, { htmlFor: opt.value, children: opt.label })
|
|
1003
1201
|
] }, opt.value))
|
|
1004
1202
|
]
|
|
1005
1203
|
}
|
|
@@ -1013,7 +1211,7 @@ var import_react9 = require("react");
|
|
|
1013
1211
|
// src/components/Global/TinyMceEditor.tsx
|
|
1014
1212
|
var import_react8 = require("react");
|
|
1015
1213
|
var import_tinymce_react = require("@tinymce/tinymce-react");
|
|
1016
|
-
var
|
|
1214
|
+
var import_jsx_runtime26 = require("react/jsx-runtime");
|
|
1017
1215
|
function MyEditor({
|
|
1018
1216
|
value,
|
|
1019
1217
|
onChange,
|
|
@@ -1038,7 +1236,7 @@ function MyEditor({
|
|
|
1038
1236
|
}
|
|
1039
1237
|
return toolbar;
|
|
1040
1238
|
}, [isDefault]);
|
|
1041
|
-
return /* @__PURE__ */ (0,
|
|
1239
|
+
return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
1042
1240
|
import_tinymce_react.Editor,
|
|
1043
1241
|
{
|
|
1044
1242
|
apiKey: process.env.NEXT_PUBLIC_TINYMCE_API_KEY,
|
|
@@ -1082,14 +1280,14 @@ function MyEditor({
|
|
|
1082
1280
|
}
|
|
1083
1281
|
|
|
1084
1282
|
// src/components/Inputs/RichText/RichText.tsx
|
|
1085
|
-
var
|
|
1283
|
+
var import_jsx_runtime27 = require("react/jsx-runtime");
|
|
1086
1284
|
function RichText({ className, style, ...props }) {
|
|
1087
1285
|
const [error, setError] = (0, import_react9.useState)(null);
|
|
1088
1286
|
(0, import_react9.useEffect)(() => {
|
|
1089
1287
|
if (!props.validateOnMount) return;
|
|
1090
1288
|
setError(props.errorMessage || null);
|
|
1091
1289
|
}, [props.errorMessage, props.validateOnMount]);
|
|
1092
|
-
return /* @__PURE__ */ (0,
|
|
1290
|
+
return /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(
|
|
1093
1291
|
"div",
|
|
1094
1292
|
{
|
|
1095
1293
|
className: cn(className, error ? "border-red-500" : ""),
|
|
@@ -1098,8 +1296,8 @@ function RichText({ className, style, ...props }) {
|
|
|
1098
1296
|
borderColor: error ? "#f87171" : style?.borderColor
|
|
1099
1297
|
},
|
|
1100
1298
|
children: [
|
|
1101
|
-
/* @__PURE__ */ (0,
|
|
1102
|
-
error && /* @__PURE__ */ (0,
|
|
1299
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)(MyEditor, { onChange: (content) => props.onChange?.(content), value: props.value, isDefault: true }),
|
|
1300
|
+
error && /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("p", { className: "mt-1 text-xs text-red-500", children: error })
|
|
1103
1301
|
]
|
|
1104
1302
|
}
|
|
1105
1303
|
);
|
|
@@ -1110,16 +1308,16 @@ var React8 = __toESM(require("react"));
|
|
|
1110
1308
|
|
|
1111
1309
|
// src/components/ui/select.tsx
|
|
1112
1310
|
var SelectPrimitive = __toESM(require("@radix-ui/react-select"));
|
|
1113
|
-
var
|
|
1311
|
+
var import_jsx_runtime28 = require("react/jsx-runtime");
|
|
1114
1312
|
function Select({
|
|
1115
1313
|
...props
|
|
1116
1314
|
}) {
|
|
1117
|
-
return /* @__PURE__ */ (0,
|
|
1315
|
+
return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(SelectPrimitive.Root, { "data-slot": "select", ...props });
|
|
1118
1316
|
}
|
|
1119
1317
|
function SelectValue({
|
|
1120
1318
|
...props
|
|
1121
1319
|
}) {
|
|
1122
|
-
return /* @__PURE__ */ (0,
|
|
1320
|
+
return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(SelectPrimitive.Value, { "data-slot": "select-value", ...props });
|
|
1123
1321
|
}
|
|
1124
1322
|
function SelectTrigger({
|
|
1125
1323
|
className,
|
|
@@ -1127,7 +1325,7 @@ function SelectTrigger({
|
|
|
1127
1325
|
children,
|
|
1128
1326
|
...props
|
|
1129
1327
|
}) {
|
|
1130
|
-
return /* @__PURE__ */ (0,
|
|
1328
|
+
return /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(
|
|
1131
1329
|
SelectPrimitive.Trigger,
|
|
1132
1330
|
{
|
|
1133
1331
|
"data-slot": "select-trigger",
|
|
@@ -1139,7 +1337,7 @@ function SelectTrigger({
|
|
|
1139
1337
|
...props,
|
|
1140
1338
|
children: [
|
|
1141
1339
|
children,
|
|
1142
|
-
/* @__PURE__ */ (0,
|
|
1340
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(SelectPrimitive.Icon, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(ChevronDown, { className: "size-4 opacity-50" }) })
|
|
1143
1341
|
]
|
|
1144
1342
|
}
|
|
1145
1343
|
);
|
|
@@ -1150,7 +1348,7 @@ function SelectContent({
|
|
|
1150
1348
|
position = "popper",
|
|
1151
1349
|
...props
|
|
1152
1350
|
}) {
|
|
1153
|
-
return /* @__PURE__ */ (0,
|
|
1351
|
+
return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(SelectPrimitive.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(
|
|
1154
1352
|
SelectPrimitive.Content,
|
|
1155
1353
|
{
|
|
1156
1354
|
"data-slot": "select-content",
|
|
@@ -1162,8 +1360,8 @@ function SelectContent({
|
|
|
1162
1360
|
position,
|
|
1163
1361
|
...props,
|
|
1164
1362
|
children: [
|
|
1165
|
-
/* @__PURE__ */ (0,
|
|
1166
|
-
/* @__PURE__ */ (0,
|
|
1363
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(SelectScrollUpButton, {}),
|
|
1364
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
1167
1365
|
SelectPrimitive.Viewport,
|
|
1168
1366
|
{
|
|
1169
1367
|
className: cn(
|
|
@@ -1173,7 +1371,7 @@ function SelectContent({
|
|
|
1173
1371
|
children
|
|
1174
1372
|
}
|
|
1175
1373
|
),
|
|
1176
|
-
/* @__PURE__ */ (0,
|
|
1374
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(SelectScrollDownButton, {})
|
|
1177
1375
|
]
|
|
1178
1376
|
}
|
|
1179
1377
|
) });
|
|
@@ -1183,7 +1381,7 @@ function SelectItem({
|
|
|
1183
1381
|
children,
|
|
1184
1382
|
...props
|
|
1185
1383
|
}) {
|
|
1186
|
-
return /* @__PURE__ */ (0,
|
|
1384
|
+
return /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(
|
|
1187
1385
|
SelectPrimitive.Item,
|
|
1188
1386
|
{
|
|
1189
1387
|
"data-slot": "select-item",
|
|
@@ -1193,8 +1391,8 @@ function SelectItem({
|
|
|
1193
1391
|
),
|
|
1194
1392
|
...props,
|
|
1195
1393
|
children: [
|
|
1196
|
-
/* @__PURE__ */ (0,
|
|
1197
|
-
/* @__PURE__ */ (0,
|
|
1394
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)("span", { className: "absolute right-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(SelectPrimitive.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Check, { className: "size-4" }) }) }),
|
|
1395
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(SelectPrimitive.ItemText, { children })
|
|
1198
1396
|
]
|
|
1199
1397
|
}
|
|
1200
1398
|
);
|
|
@@ -1203,7 +1401,7 @@ function SelectScrollUpButton({
|
|
|
1203
1401
|
className,
|
|
1204
1402
|
...props
|
|
1205
1403
|
}) {
|
|
1206
|
-
return /* @__PURE__ */ (0,
|
|
1404
|
+
return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
1207
1405
|
SelectPrimitive.ScrollUpButton,
|
|
1208
1406
|
{
|
|
1209
1407
|
"data-slot": "select-scroll-up-button",
|
|
@@ -1212,7 +1410,7 @@ function SelectScrollUpButton({
|
|
|
1212
1410
|
className
|
|
1213
1411
|
),
|
|
1214
1412
|
...props,
|
|
1215
|
-
children: /* @__PURE__ */ (0,
|
|
1413
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(ChevronUp, { className: "size-4" })
|
|
1216
1414
|
}
|
|
1217
1415
|
);
|
|
1218
1416
|
}
|
|
@@ -1220,7 +1418,7 @@ function SelectScrollDownButton({
|
|
|
1220
1418
|
className,
|
|
1221
1419
|
...props
|
|
1222
1420
|
}) {
|
|
1223
|
-
return /* @__PURE__ */ (0,
|
|
1421
|
+
return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
1224
1422
|
SelectPrimitive.ScrollDownButton,
|
|
1225
1423
|
{
|
|
1226
1424
|
"data-slot": "select-scroll-down-button",
|
|
@@ -1229,13 +1427,13 @@ function SelectScrollDownButton({
|
|
|
1229
1427
|
className
|
|
1230
1428
|
),
|
|
1231
1429
|
...props,
|
|
1232
|
-
children: /* @__PURE__ */ (0,
|
|
1430
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(ChevronDown, { className: "size-4" })
|
|
1233
1431
|
}
|
|
1234
1432
|
);
|
|
1235
1433
|
}
|
|
1236
1434
|
|
|
1237
1435
|
// src/components/Inputs/Dropdown/Dropdown.tsx
|
|
1238
|
-
var
|
|
1436
|
+
var import_jsx_runtime29 = require("react/jsx-runtime");
|
|
1239
1437
|
var Dropdown = ({ className, style, ...props }) => {
|
|
1240
1438
|
const list = props.data || [];
|
|
1241
1439
|
const placeholder = props.placeholder ? props.placeholder : "Placeholder text";
|
|
@@ -1256,9 +1454,9 @@ var Dropdown = ({ className, style, ...props }) => {
|
|
|
1256
1454
|
value: item[dataKey],
|
|
1257
1455
|
label: item[dataLabel]
|
|
1258
1456
|
}));
|
|
1259
|
-
return /* @__PURE__ */ (0,
|
|
1260
|
-
/* @__PURE__ */ (0,
|
|
1261
|
-
/* @__PURE__ */ (0,
|
|
1457
|
+
return /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(import_jsx_runtime29.Fragment, { children: [
|
|
1458
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(Select, { name: props.name, value: props.value, onValueChange: handleChange, disabled: isDisabled || !isEditable, children: [
|
|
1459
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
1262
1460
|
SelectTrigger,
|
|
1263
1461
|
{
|
|
1264
1462
|
id: props.name || "select-field",
|
|
@@ -1268,12 +1466,12 @@ var Dropdown = ({ className, style, ...props }) => {
|
|
|
1268
1466
|
borderColor: error ? "#f87171" : style?.borderColor
|
|
1269
1467
|
},
|
|
1270
1468
|
"aria-readonly": isReadonly,
|
|
1271
|
-
children: /* @__PURE__ */ (0,
|
|
1469
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(SelectValue, { placeholder })
|
|
1272
1470
|
}
|
|
1273
1471
|
),
|
|
1274
|
-
/* @__PURE__ */ (0,
|
|
1472
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(SelectContent, { children: options.map((opt) => /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(SelectItem, { value: opt.value, children: opt.label }, opt.value)) })
|
|
1275
1473
|
] }),
|
|
1276
|
-
error && /* @__PURE__ */ (0,
|
|
1474
|
+
error && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("p", { className: "mt-1 text-xs text-red-500", children: error })
|
|
1277
1475
|
] });
|
|
1278
1476
|
};
|
|
1279
1477
|
var Dropdown_default = Dropdown;
|
|
@@ -1283,12 +1481,12 @@ var import_react10 = require("react");
|
|
|
1283
1481
|
|
|
1284
1482
|
// src/components/ui/switch.tsx
|
|
1285
1483
|
var SwitchPrimitive = __toESM(require("@radix-ui/react-switch"));
|
|
1286
|
-
var
|
|
1484
|
+
var import_jsx_runtime30 = require("react/jsx-runtime");
|
|
1287
1485
|
function Switch({
|
|
1288
1486
|
className,
|
|
1289
1487
|
...props
|
|
1290
1488
|
}) {
|
|
1291
|
-
return /* @__PURE__ */ (0,
|
|
1489
|
+
return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
1292
1490
|
SwitchPrimitive.Root,
|
|
1293
1491
|
{
|
|
1294
1492
|
"data-slot": "switch",
|
|
@@ -1297,7 +1495,7 @@ function Switch({
|
|
|
1297
1495
|
className
|
|
1298
1496
|
),
|
|
1299
1497
|
...props,
|
|
1300
|
-
children: /* @__PURE__ */ (0,
|
|
1498
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
1301
1499
|
SwitchPrimitive.Thumb,
|
|
1302
1500
|
{
|
|
1303
1501
|
"data-slot": "switch-thumb",
|
|
@@ -1311,7 +1509,7 @@ function Switch({
|
|
|
1311
1509
|
}
|
|
1312
1510
|
|
|
1313
1511
|
// src/components/Inputs/SwitchToggle/SwitchToggle.tsx
|
|
1314
|
-
var
|
|
1512
|
+
var import_jsx_runtime31 = require("react/jsx-runtime");
|
|
1315
1513
|
var SwitchToggle = ({ className, style, ...props }) => {
|
|
1316
1514
|
const isEditable = props.isEditable ?? true;
|
|
1317
1515
|
const isDisabled = props.isDisabled ?? false;
|
|
@@ -1323,9 +1521,9 @@ var SwitchToggle = ({ className, style, ...props }) => {
|
|
|
1323
1521
|
const handleChange = (value) => {
|
|
1324
1522
|
props.onChange?.(value);
|
|
1325
1523
|
};
|
|
1326
|
-
return /* @__PURE__ */ (0,
|
|
1327
|
-
/* @__PURE__ */ (0,
|
|
1328
|
-
/* @__PURE__ */ (0,
|
|
1524
|
+
return /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(import_jsx_runtime31.Fragment, { children: [
|
|
1525
|
+
/* @__PURE__ */ (0, import_jsx_runtime31.jsx)("div", { className, style, children: /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)("div", { className: "flex items-center space-x-2 mb-2", children: [
|
|
1526
|
+
/* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
|
|
1329
1527
|
Switch,
|
|
1330
1528
|
{
|
|
1331
1529
|
id: props.name || "switch",
|
|
@@ -1334,9 +1532,9 @@ var SwitchToggle = ({ className, style, ...props }) => {
|
|
|
1334
1532
|
disabled: isDisabled || !isEditable
|
|
1335
1533
|
}
|
|
1336
1534
|
),
|
|
1337
|
-
/* @__PURE__ */ (0,
|
|
1535
|
+
/* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Label2, { htmlFor: props.name || "switch", children: props.text })
|
|
1338
1536
|
] }) }),
|
|
1339
|
-
error && /* @__PURE__ */ (0,
|
|
1537
|
+
error && /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("p", { className: "mt-1 text-xs text-red-500", children: error })
|
|
1340
1538
|
] });
|
|
1341
1539
|
};
|
|
1342
1540
|
var SwitchToggle_default = SwitchToggle;
|
|
@@ -1345,7 +1543,7 @@ var SwitchToggle_default = SwitchToggle;
|
|
|
1345
1543
|
var React9 = __toESM(require("react"));
|
|
1346
1544
|
var import_react_international_phone = require("react-international-phone");
|
|
1347
1545
|
var import_style = require("react-international-phone/style.css");
|
|
1348
|
-
var
|
|
1546
|
+
var import_jsx_runtime32 = require("react/jsx-runtime");
|
|
1349
1547
|
var PhoneInput = ({ className, style, ...props }) => {
|
|
1350
1548
|
const placeholder = props.placeholder ?? "Enter phone number";
|
|
1351
1549
|
const isEditable = props.isEditable ?? true;
|
|
@@ -1358,8 +1556,8 @@ var PhoneInput = ({ className, style, ...props }) => {
|
|
|
1358
1556
|
const handleChange = (val) => {
|
|
1359
1557
|
props.onChange?.(val);
|
|
1360
1558
|
};
|
|
1361
|
-
return /* @__PURE__ */ (0,
|
|
1362
|
-
/* @__PURE__ */ (0,
|
|
1559
|
+
return /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(import_jsx_runtime32.Fragment, { children: [
|
|
1560
|
+
/* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
|
|
1363
1561
|
import_react_international_phone.PhoneInput,
|
|
1364
1562
|
{
|
|
1365
1563
|
defaultCountry: "in",
|
|
@@ -1378,14 +1576,14 @@ var PhoneInput = ({ className, style, ...props }) => {
|
|
|
1378
1576
|
disabled: isDisabled || !isEditable
|
|
1379
1577
|
}
|
|
1380
1578
|
),
|
|
1381
|
-
error && /* @__PURE__ */ (0,
|
|
1579
|
+
error && /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("p", { className: "mt-1 text-xs text-red-500", children: error })
|
|
1382
1580
|
] });
|
|
1383
1581
|
};
|
|
1384
1582
|
var PhoneInput_default = PhoneInput;
|
|
1385
1583
|
|
|
1386
1584
|
// src/components/Inputs/SearchInput/SearchInput.tsx
|
|
1387
1585
|
var React10 = __toESM(require("react"));
|
|
1388
|
-
var
|
|
1586
|
+
var import_jsx_runtime33 = require("react/jsx-runtime");
|
|
1389
1587
|
var SearchInput = ({ className, style, ...props }) => {
|
|
1390
1588
|
const placeholder = props.placeholder ?? "Placeholder text";
|
|
1391
1589
|
const isEditable = props.isEditable ?? true;
|
|
@@ -1400,10 +1598,10 @@ var SearchInput = ({ className, style, ...props }) => {
|
|
|
1400
1598
|
const handleChange = (e) => {
|
|
1401
1599
|
props.onChange?.(e);
|
|
1402
1600
|
};
|
|
1403
|
-
return /* @__PURE__ */ (0,
|
|
1404
|
-
/* @__PURE__ */ (0,
|
|
1405
|
-
/* @__PURE__ */ (0,
|
|
1406
|
-
/* @__PURE__ */ (0,
|
|
1601
|
+
return /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(import_jsx_runtime33.Fragment, { children: [
|
|
1602
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsxs)("div", { className: "flex justify-start items-center relative", children: [
|
|
1603
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Search, { className: "absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-[#BDBDBD]" }),
|
|
1604
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
|
|
1407
1605
|
Input,
|
|
1408
1606
|
{
|
|
1409
1607
|
type: "text",
|
|
@@ -1423,14 +1621,14 @@ var SearchInput = ({ className, style, ...props }) => {
|
|
|
1423
1621
|
}
|
|
1424
1622
|
)
|
|
1425
1623
|
] }),
|
|
1426
|
-
error && /* @__PURE__ */ (0,
|
|
1624
|
+
error && /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("p", { className: "mt-1 text-xs text-red-500", children: error })
|
|
1427
1625
|
] });
|
|
1428
1626
|
};
|
|
1429
1627
|
var SearchInput_default = SearchInput;
|
|
1430
1628
|
|
|
1431
1629
|
// src/components/Inputs/FileInput/FileInput.tsx
|
|
1432
1630
|
var import_react11 = require("react");
|
|
1433
|
-
var
|
|
1631
|
+
var import_jsx_runtime34 = require("react/jsx-runtime");
|
|
1434
1632
|
var FileInput = ({ className, style, ...props }) => {
|
|
1435
1633
|
const placeholder = props.placeholder ?? "Placeholder text";
|
|
1436
1634
|
const [error, setError] = (0, import_react11.useState)(null);
|
|
@@ -1438,8 +1636,8 @@ var FileInput = ({ className, style, ...props }) => {
|
|
|
1438
1636
|
if (!props.validateOnMount) return;
|
|
1439
1637
|
setError(props.errorMessage || null);
|
|
1440
1638
|
}, [props.errorMessage, props.validateOnMount]);
|
|
1441
|
-
return /* @__PURE__ */ (0,
|
|
1442
|
-
/* @__PURE__ */ (0,
|
|
1639
|
+
return /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { className: "d-flex items-center relative align-middle", children: [
|
|
1640
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
|
|
1443
1641
|
Input,
|
|
1444
1642
|
{
|
|
1445
1643
|
type: "file",
|
|
@@ -1458,14 +1656,14 @@ var FileInput = ({ className, style, ...props }) => {
|
|
|
1458
1656
|
}
|
|
1459
1657
|
}
|
|
1460
1658
|
),
|
|
1461
|
-
error && /* @__PURE__ */ (0,
|
|
1659
|
+
error && /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("p", { className: "mt-1 text-xs text-red-500", children: error })
|
|
1462
1660
|
] });
|
|
1463
1661
|
};
|
|
1464
1662
|
var FileInput_default = FileInput;
|
|
1465
1663
|
|
|
1466
1664
|
// src/components/Inputs/DatePicker/DatePicker.tsx
|
|
1467
1665
|
var import_react12 = __toESM(require("react"));
|
|
1468
|
-
var
|
|
1666
|
+
var import_jsx_runtime35 = require("react/jsx-runtime");
|
|
1469
1667
|
function DatePicker({ className, style, ...props }) {
|
|
1470
1668
|
const placeholder = props.placeholder ?? "Placeholder text";
|
|
1471
1669
|
const minimumDate = props.minimumDate ?? "none";
|
|
@@ -1498,10 +1696,10 @@ function DatePicker({ className, style, ...props }) {
|
|
|
1498
1696
|
const handleChange = (e) => {
|
|
1499
1697
|
props.onChange?.(e);
|
|
1500
1698
|
};
|
|
1501
|
-
return /* @__PURE__ */ (0,
|
|
1502
|
-
/* @__PURE__ */ (0,
|
|
1503
|
-
/* @__PURE__ */ (0,
|
|
1504
|
-
/* @__PURE__ */ (0,
|
|
1699
|
+
return /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(import_jsx_runtime35.Fragment, { children: [
|
|
1700
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { className: "flex justify-start items-center relative", children: [
|
|
1701
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)(Calendar, { className: "absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-[#BDBDBD]" }),
|
|
1702
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
|
1505
1703
|
Input,
|
|
1506
1704
|
{
|
|
1507
1705
|
type: "date",
|
|
@@ -1527,7 +1725,7 @@ function DatePicker({ className, style, ...props }) {
|
|
|
1527
1725
|
}
|
|
1528
1726
|
)
|
|
1529
1727
|
] }),
|
|
1530
|
-
error && /* @__PURE__ */ (0,
|
|
1728
|
+
error && /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("p", { className: "mt-1 text-xs text-red-500", children: error })
|
|
1531
1729
|
] });
|
|
1532
1730
|
}
|
|
1533
1731
|
|
|
@@ -1538,7 +1736,7 @@ var import_date_fns = require("date-fns");
|
|
|
1538
1736
|
// src/components/ui/calendar.tsx
|
|
1539
1737
|
var React12 = __toESM(require("react"));
|
|
1540
1738
|
var import_react_day_picker = require("react-day-picker");
|
|
1541
|
-
var
|
|
1739
|
+
var import_jsx_runtime36 = require("react/jsx-runtime");
|
|
1542
1740
|
function Calendar2({
|
|
1543
1741
|
className,
|
|
1544
1742
|
classNames,
|
|
@@ -1550,7 +1748,7 @@ function Calendar2({
|
|
|
1550
1748
|
...props
|
|
1551
1749
|
}) {
|
|
1552
1750
|
const defaultClassNames = (0, import_react_day_picker.getDefaultClassNames)();
|
|
1553
|
-
return /* @__PURE__ */ (0,
|
|
1751
|
+
return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
|
1554
1752
|
import_react_day_picker.DayPicker,
|
|
1555
1753
|
{
|
|
1556
1754
|
showOutsideDays,
|
|
@@ -1649,7 +1847,7 @@ function Calendar2({
|
|
|
1649
1847
|
},
|
|
1650
1848
|
components: {
|
|
1651
1849
|
Root: ({ className: className2, rootRef, ...props2 }) => {
|
|
1652
|
-
return /* @__PURE__ */ (0,
|
|
1850
|
+
return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
|
1653
1851
|
"div",
|
|
1654
1852
|
{
|
|
1655
1853
|
"data-slot": "calendar",
|
|
@@ -1661,10 +1859,10 @@ function Calendar2({
|
|
|
1661
1859
|
},
|
|
1662
1860
|
Chevron: ({ className: className2, orientation, ...props2 }) => {
|
|
1663
1861
|
if (orientation === "left") {
|
|
1664
|
-
return /* @__PURE__ */ (0,
|
|
1862
|
+
return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(ChevronLeft, { className: cn("size-4", className2), ...props2 });
|
|
1665
1863
|
}
|
|
1666
1864
|
if (orientation === "right") {
|
|
1667
|
-
return /* @__PURE__ */ (0,
|
|
1865
|
+
return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
|
1668
1866
|
ChevronRight,
|
|
1669
1867
|
{
|
|
1670
1868
|
className: cn("size-4", className2),
|
|
@@ -1672,11 +1870,11 @@ function Calendar2({
|
|
|
1672
1870
|
}
|
|
1673
1871
|
);
|
|
1674
1872
|
}
|
|
1675
|
-
return /* @__PURE__ */ (0,
|
|
1873
|
+
return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(ChevronDown, { className: cn("size-4", className2), ...props2 });
|
|
1676
1874
|
},
|
|
1677
1875
|
DayButton: CalendarDayButton,
|
|
1678
1876
|
WeekNumber: ({ children, ...props2 }) => {
|
|
1679
|
-
return /* @__PURE__ */ (0,
|
|
1877
|
+
return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("td", { ...props2, children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("div", { className: "flex size-(--cell-size) items-center justify-center text-center", children }) });
|
|
1680
1878
|
},
|
|
1681
1879
|
...components
|
|
1682
1880
|
},
|
|
@@ -1695,7 +1893,7 @@ function CalendarDayButton({
|
|
|
1695
1893
|
React12.useEffect(() => {
|
|
1696
1894
|
if (modifiers.focused) ref.current?.focus();
|
|
1697
1895
|
}, [modifiers.focused]);
|
|
1698
|
-
return /* @__PURE__ */ (0,
|
|
1896
|
+
return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
|
1699
1897
|
Button,
|
|
1700
1898
|
{
|
|
1701
1899
|
ref,
|
|
@@ -1718,16 +1916,16 @@ function CalendarDayButton({
|
|
|
1718
1916
|
|
|
1719
1917
|
// src/components/ui/popover.tsx
|
|
1720
1918
|
var PopoverPrimitive = __toESM(require("@radix-ui/react-popover"));
|
|
1721
|
-
var
|
|
1919
|
+
var import_jsx_runtime37 = require("react/jsx-runtime");
|
|
1722
1920
|
function Popover({
|
|
1723
1921
|
...props
|
|
1724
1922
|
}) {
|
|
1725
|
-
return /* @__PURE__ */ (0,
|
|
1923
|
+
return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(PopoverPrimitive.Root, { "data-slot": "popover", ...props });
|
|
1726
1924
|
}
|
|
1727
1925
|
function PopoverTrigger({
|
|
1728
1926
|
...props
|
|
1729
1927
|
}) {
|
|
1730
|
-
return /* @__PURE__ */ (0,
|
|
1928
|
+
return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(PopoverPrimitive.Trigger, { "data-slot": "popover-trigger", ...props });
|
|
1731
1929
|
}
|
|
1732
1930
|
function PopoverContent({
|
|
1733
1931
|
className,
|
|
@@ -1735,7 +1933,7 @@ function PopoverContent({
|
|
|
1735
1933
|
sideOffset = 4,
|
|
1736
1934
|
...props
|
|
1737
1935
|
}) {
|
|
1738
|
-
return /* @__PURE__ */ (0,
|
|
1936
|
+
return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(PopoverPrimitive.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
|
|
1739
1937
|
PopoverPrimitive.Content,
|
|
1740
1938
|
{
|
|
1741
1939
|
"data-slot": "popover-content",
|
|
@@ -1751,7 +1949,7 @@ function PopoverContent({
|
|
|
1751
1949
|
}
|
|
1752
1950
|
|
|
1753
1951
|
// src/components/Inputs/DateRange/DateRange.tsx
|
|
1754
|
-
var
|
|
1952
|
+
var import_jsx_runtime38 = require("react/jsx-runtime");
|
|
1755
1953
|
var DateRange = ({ className, style, ...props }) => {
|
|
1756
1954
|
const [error, setError] = React13.useState(null);
|
|
1757
1955
|
const isDateRange = (val) => !!val && val.from instanceof Date;
|
|
@@ -1771,9 +1969,9 @@ var DateRange = ({ className, style, ...props }) => {
|
|
|
1771
1969
|
props.onChange?.(value);
|
|
1772
1970
|
}
|
|
1773
1971
|
};
|
|
1774
|
-
return /* @__PURE__ */ (0,
|
|
1775
|
-
/* @__PURE__ */ (0,
|
|
1776
|
-
/* @__PURE__ */ (0,
|
|
1972
|
+
return /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(import_jsx_runtime38.Fragment, { children: [
|
|
1973
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { className, style, children: /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(Popover, { children: [
|
|
1974
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
|
|
1777
1975
|
Button,
|
|
1778
1976
|
{
|
|
1779
1977
|
id: "date",
|
|
@@ -1782,15 +1980,15 @@ var DateRange = ({ className, style, ...props }) => {
|
|
|
1782
1980
|
"w-[300px] justify-start text-left font-normal text-[11px]",
|
|
1783
1981
|
!date && "text-muted-foreground"
|
|
1784
1982
|
),
|
|
1785
|
-
children: date?.from ? date.to ? /* @__PURE__ */ (0,
|
|
1983
|
+
children: date?.from ? date.to ? /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(import_jsx_runtime38.Fragment, { children: [
|
|
1786
1984
|
(0, import_date_fns.format)(date.from, "LLL dd, y"),
|
|
1787
1985
|
" -",
|
|
1788
1986
|
" ",
|
|
1789
1987
|
(0, import_date_fns.format)(date.to, "LLL dd, y")
|
|
1790
|
-
] }) : (0, import_date_fns.format)(date.from, "LLL dd, y") : /* @__PURE__ */ (0,
|
|
1988
|
+
] }) : (0, import_date_fns.format)(date.from, "LLL dd, y") : /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("span", { children: "Pick a date range" })
|
|
1791
1989
|
}
|
|
1792
1990
|
) }),
|
|
1793
|
-
/* @__PURE__ */ (0,
|
|
1991
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)(PopoverContent, { className: "w-auto p-0", align: "start", children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
|
|
1794
1992
|
Calendar2,
|
|
1795
1993
|
{
|
|
1796
1994
|
mode: "range",
|
|
@@ -1801,14 +1999,14 @@ var DateRange = ({ className, style, ...props }) => {
|
|
|
1801
1999
|
}
|
|
1802
2000
|
) })
|
|
1803
2001
|
] }) }),
|
|
1804
|
-
error && /* @__PURE__ */ (0,
|
|
2002
|
+
error && /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("p", { className: "mt-1 text-xs text-red-500", children: error })
|
|
1805
2003
|
] });
|
|
1806
2004
|
};
|
|
1807
2005
|
var DateRange_default = DateRange;
|
|
1808
2006
|
|
|
1809
2007
|
// src/components/Inputs/TextInputGroup/TextInputGroup.tsx
|
|
1810
2008
|
var React14 = __toESM(require("react"));
|
|
1811
|
-
var
|
|
2009
|
+
var import_jsx_runtime39 = require("react/jsx-runtime");
|
|
1812
2010
|
var TextInputGroup = ({ className, style, prepend, append, ...props }) => {
|
|
1813
2011
|
const placeholder = props.placeholder ?? "Placeholder text";
|
|
1814
2012
|
const isEditable = props.isEditable ?? true;
|
|
@@ -1823,8 +2021,8 @@ var TextInputGroup = ({ className, style, prepend, append, ...props }) => {
|
|
|
1823
2021
|
const handleChange = (e) => {
|
|
1824
2022
|
props.onChange?.(e);
|
|
1825
2023
|
};
|
|
1826
|
-
return /* @__PURE__ */ (0,
|
|
1827
|
-
/* @__PURE__ */ (0,
|
|
2024
|
+
return /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(import_jsx_runtime39.Fragment, { children: [
|
|
2025
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(
|
|
1828
2026
|
"div",
|
|
1829
2027
|
{
|
|
1830
2028
|
className: cn(
|
|
@@ -1834,8 +2032,8 @@ var TextInputGroup = ({ className, style, prepend, append, ...props }) => {
|
|
|
1834
2032
|
error ? "border-red-500" : ""
|
|
1835
2033
|
),
|
|
1836
2034
|
children: [
|
|
1837
|
-
prepend && /* @__PURE__ */ (0,
|
|
1838
|
-
/* @__PURE__ */ (0,
|
|
2035
|
+
prepend && /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("div", { className: "px-3 flex items-center bg-gray-500 text-white h-10 rounded-l-md", children: prepend }),
|
|
2036
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
1839
2037
|
Input,
|
|
1840
2038
|
{
|
|
1841
2039
|
id: props.name || "prepend-input",
|
|
@@ -1857,11 +2055,11 @@ var TextInputGroup = ({ className, style, prepend, append, ...props }) => {
|
|
|
1857
2055
|
readOnly: isReadonly
|
|
1858
2056
|
}
|
|
1859
2057
|
),
|
|
1860
|
-
append && /* @__PURE__ */ (0,
|
|
2058
|
+
append && /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("div", { className: "px-3 flex items-center bg-gray-500 text-white h-10 rounded-r-md", children: append })
|
|
1861
2059
|
]
|
|
1862
2060
|
}
|
|
1863
2061
|
),
|
|
1864
|
-
error && /* @__PURE__ */ (0,
|
|
2062
|
+
error && /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("p", { className: "mt-1 text-xs text-red-500", children: error })
|
|
1865
2063
|
] });
|
|
1866
2064
|
};
|
|
1867
2065
|
var TextInputGroup_default = TextInputGroup;
|
|
@@ -1870,14 +2068,14 @@ var TextInputGroup_default = TextInputGroup;
|
|
|
1870
2068
|
var import_react_table = require("@tanstack/react-table");
|
|
1871
2069
|
|
|
1872
2070
|
// src/components/ui/table.tsx
|
|
1873
|
-
var
|
|
2071
|
+
var import_jsx_runtime40 = require("react/jsx-runtime");
|
|
1874
2072
|
function Table({ className, ...props }) {
|
|
1875
|
-
return /* @__PURE__ */ (0,
|
|
2073
|
+
return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
|
|
1876
2074
|
"div",
|
|
1877
2075
|
{
|
|
1878
2076
|
"data-slot": "table-container",
|
|
1879
2077
|
className: "relative w-full overflow-x-auto rounded-md border border-gray-200 bg-white",
|
|
1880
|
-
children: /* @__PURE__ */ (0,
|
|
2078
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
|
|
1881
2079
|
"table",
|
|
1882
2080
|
{
|
|
1883
2081
|
"data-slot": "table",
|
|
@@ -1889,7 +2087,7 @@ function Table({ className, ...props }) {
|
|
|
1889
2087
|
);
|
|
1890
2088
|
}
|
|
1891
2089
|
function TableHeader({ className, ...props }) {
|
|
1892
|
-
return /* @__PURE__ */ (0,
|
|
2090
|
+
return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
|
|
1893
2091
|
"thead",
|
|
1894
2092
|
{
|
|
1895
2093
|
"data-slot": "table-header",
|
|
@@ -1902,7 +2100,7 @@ function TableHeader({ className, ...props }) {
|
|
|
1902
2100
|
);
|
|
1903
2101
|
}
|
|
1904
2102
|
function TableBody({ className, ...props }) {
|
|
1905
|
-
return /* @__PURE__ */ (0,
|
|
2103
|
+
return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
|
|
1906
2104
|
"tbody",
|
|
1907
2105
|
{
|
|
1908
2106
|
"data-slot": "table-body",
|
|
@@ -1915,7 +2113,7 @@ function TableBody({ className, ...props }) {
|
|
|
1915
2113
|
);
|
|
1916
2114
|
}
|
|
1917
2115
|
function TableRow({ className, ...props }) {
|
|
1918
|
-
return /* @__PURE__ */ (0,
|
|
2116
|
+
return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
|
|
1919
2117
|
"tr",
|
|
1920
2118
|
{
|
|
1921
2119
|
"data-slot": "table-row",
|
|
@@ -1928,7 +2126,7 @@ function TableRow({ className, ...props }) {
|
|
|
1928
2126
|
);
|
|
1929
2127
|
}
|
|
1930
2128
|
function TableHead({ className, ...props }) {
|
|
1931
|
-
return /* @__PURE__ */ (0,
|
|
2129
|
+
return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
|
|
1932
2130
|
"th",
|
|
1933
2131
|
{
|
|
1934
2132
|
"data-slot": "table-head",
|
|
@@ -1941,7 +2139,7 @@ function TableHead({ className, ...props }) {
|
|
|
1941
2139
|
);
|
|
1942
2140
|
}
|
|
1943
2141
|
function TableCell({ className, ...props }) {
|
|
1944
|
-
return /* @__PURE__ */ (0,
|
|
2142
|
+
return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
|
|
1945
2143
|
"td",
|
|
1946
2144
|
{
|
|
1947
2145
|
"data-slot": "table-cell",
|
|
@@ -1955,7 +2153,7 @@ function TableCell({ className, ...props }) {
|
|
|
1955
2153
|
}
|
|
1956
2154
|
|
|
1957
2155
|
// src/components/ui/data-table.tsx
|
|
1958
|
-
var
|
|
2156
|
+
var import_jsx_runtime41 = require("react/jsx-runtime");
|
|
1959
2157
|
function DataTable({
|
|
1960
2158
|
columns,
|
|
1961
2159
|
rowActions,
|
|
@@ -1980,14 +2178,14 @@ function DataTable({
|
|
|
1980
2178
|
onCellClick(rowData, columnId);
|
|
1981
2179
|
}
|
|
1982
2180
|
};
|
|
1983
|
-
return /* @__PURE__ */ (0,
|
|
1984
|
-
/* @__PURE__ */ (0,
|
|
1985
|
-
return /* @__PURE__ */ (0,
|
|
2181
|
+
return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("div", { className: "overflow-hidden rounded-md border w-full", children: /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(Table, { children: [
|
|
2182
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)(TableHeader, { children: table.getHeaderGroups().map((headerGroup) => /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(TableRow, { children: headerGroup.headers.map((header) => {
|
|
2183
|
+
return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(TableHead, { children: header.isPlaceholder ? null : (0, import_react_table.flexRender)(
|
|
1986
2184
|
header.column.columnDef.header,
|
|
1987
2185
|
header.getContext()
|
|
1988
2186
|
) }, header.id);
|
|
1989
2187
|
}) }, headerGroup.id)) }),
|
|
1990
|
-
/* @__PURE__ */ (0,
|
|
2188
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)(TableBody, { children: loading ? /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(TableRow, { children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(TableCell, { colSpan: columns.length, className: "h-24 text-center", children: "Loading..." }) }) : /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(import_jsx_runtime41.Fragment, { children: table.getRowModel().rows?.length ? table.getRowModel().rows.map((row) => /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(
|
|
1991
2189
|
TableRow,
|
|
1992
2190
|
{
|
|
1993
2191
|
"data-state": row.getIsSelected() && "selected",
|
|
@@ -1997,7 +2195,7 @@ function DataTable({
|
|
|
1997
2195
|
const isCellClickable = cellClickEnabled(row.original, cell.column.id);
|
|
1998
2196
|
const dynamicClass = cell.column.columnDef.meta?.cellClass || "";
|
|
1999
2197
|
const dynamicStyle = cell.column.columnDef.meta?.cellStyle || {};
|
|
2000
|
-
return /* @__PURE__ */ (0,
|
|
2198
|
+
return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
|
|
2001
2199
|
TableCell,
|
|
2002
2200
|
{
|
|
2003
2201
|
className: `${dynamicClass} ${isCellClickable ? "underline cursor-pointer" : ""}`,
|
|
@@ -2012,18 +2210,18 @@ function DataTable({
|
|
|
2012
2210
|
cell.id
|
|
2013
2211
|
);
|
|
2014
2212
|
}),
|
|
2015
|
-
rowActions.length > 0 && /* @__PURE__ */ (0,
|
|
2213
|
+
rowActions.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("div", { className: "absolute top-0 right-0 bg-white py-3 min-w-[100px] z-50 shadow-md flex items-center justify-center gap-3 p-2 opacity-0 group-hover:opacity-100 duration-300 h-full", children: rowActions.map((action, index) => /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("p", { className: "text-[#383838] text-[12px] cursor-pointer font-[400]", children: action.header }, index)) })
|
|
2016
2214
|
]
|
|
2017
2215
|
},
|
|
2018
2216
|
row.id
|
|
2019
|
-
)) : /* @__PURE__ */ (0,
|
|
2217
|
+
)) : /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(TableRow, { children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(TableCell, { colSpan: columns.length, className: "h-24 text-center", children: "No results." }) }) }) })
|
|
2020
2218
|
] }) });
|
|
2021
2219
|
}
|
|
2022
2220
|
|
|
2023
2221
|
// src/components/ui/pagination.tsx
|
|
2024
|
-
var
|
|
2222
|
+
var import_jsx_runtime42 = require("react/jsx-runtime");
|
|
2025
2223
|
function Pagination({ className, ...props }) {
|
|
2026
|
-
return /* @__PURE__ */ (0,
|
|
2224
|
+
return /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
2027
2225
|
"nav",
|
|
2028
2226
|
{
|
|
2029
2227
|
role: "navigation",
|
|
@@ -2038,7 +2236,7 @@ function PaginationContent({
|
|
|
2038
2236
|
className,
|
|
2039
2237
|
...props
|
|
2040
2238
|
}) {
|
|
2041
|
-
return /* @__PURE__ */ (0,
|
|
2239
|
+
return /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
2042
2240
|
"ul",
|
|
2043
2241
|
{
|
|
2044
2242
|
"data-slot": "pagination-content",
|
|
@@ -2048,7 +2246,7 @@ function PaginationContent({
|
|
|
2048
2246
|
);
|
|
2049
2247
|
}
|
|
2050
2248
|
function PaginationItem({ ...props }) {
|
|
2051
|
-
return /* @__PURE__ */ (0,
|
|
2249
|
+
return /* @__PURE__ */ (0, import_jsx_runtime42.jsx)("li", { "data-slot": "pagination-item", ...props });
|
|
2052
2250
|
}
|
|
2053
2251
|
function PaginationLink({
|
|
2054
2252
|
className,
|
|
@@ -2056,7 +2254,7 @@ function PaginationLink({
|
|
|
2056
2254
|
size = "icon",
|
|
2057
2255
|
...props
|
|
2058
2256
|
}) {
|
|
2059
|
-
return /* @__PURE__ */ (0,
|
|
2257
|
+
return /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
2060
2258
|
"a",
|
|
2061
2259
|
{
|
|
2062
2260
|
"aria-current": isActive ? "page" : void 0,
|
|
@@ -2077,7 +2275,7 @@ function PaginationPrevious({
|
|
|
2077
2275
|
className,
|
|
2078
2276
|
...props
|
|
2079
2277
|
}) {
|
|
2080
|
-
return /* @__PURE__ */ (0,
|
|
2278
|
+
return /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(
|
|
2081
2279
|
PaginationLink,
|
|
2082
2280
|
{
|
|
2083
2281
|
"aria-label": "Go to previous page",
|
|
@@ -2085,8 +2283,8 @@ function PaginationPrevious({
|
|
|
2085
2283
|
className: cn("gap-1 px-2.5 sm:pl-2.5", className),
|
|
2086
2284
|
...props,
|
|
2087
2285
|
children: [
|
|
2088
|
-
/* @__PURE__ */ (0,
|
|
2089
|
-
/* @__PURE__ */ (0,
|
|
2286
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(ChevronLeft, {}),
|
|
2287
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)("span", { className: "hidden sm:block", children: "Previous" })
|
|
2090
2288
|
]
|
|
2091
2289
|
}
|
|
2092
2290
|
);
|
|
@@ -2095,7 +2293,7 @@ function PaginationNext({
|
|
|
2095
2293
|
className,
|
|
2096
2294
|
...props
|
|
2097
2295
|
}) {
|
|
2098
|
-
return /* @__PURE__ */ (0,
|
|
2296
|
+
return /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(
|
|
2099
2297
|
PaginationLink,
|
|
2100
2298
|
{
|
|
2101
2299
|
"aria-label": "Go to next page",
|
|
@@ -2103,8 +2301,8 @@ function PaginationNext({
|
|
|
2103
2301
|
className: cn("gap-1 px-2.5 sm:pr-2.5", className),
|
|
2104
2302
|
...props,
|
|
2105
2303
|
children: [
|
|
2106
|
-
/* @__PURE__ */ (0,
|
|
2107
|
-
/* @__PURE__ */ (0,
|
|
2304
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)("span", { className: "hidden sm:block", children: "Next" }),
|
|
2305
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(ChevronRight, {})
|
|
2108
2306
|
]
|
|
2109
2307
|
}
|
|
2110
2308
|
);
|
|
@@ -2113,7 +2311,7 @@ function PaginationEllipsis({
|
|
|
2113
2311
|
className,
|
|
2114
2312
|
...props
|
|
2115
2313
|
}) {
|
|
2116
|
-
return /* @__PURE__ */ (0,
|
|
2314
|
+
return /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(
|
|
2117
2315
|
"span",
|
|
2118
2316
|
{
|
|
2119
2317
|
"aria-hidden": true,
|
|
@@ -2121,15 +2319,15 @@ function PaginationEllipsis({
|
|
|
2121
2319
|
className: cn("flex size-9 items-center justify-center", className),
|
|
2122
2320
|
...props,
|
|
2123
2321
|
children: [
|
|
2124
|
-
/* @__PURE__ */ (0,
|
|
2125
|
-
/* @__PURE__ */ (0,
|
|
2322
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(Ellipsis, { className: "size-4" }),
|
|
2323
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)("span", { className: "sr-only", children: "More pages" })
|
|
2126
2324
|
]
|
|
2127
2325
|
}
|
|
2128
2326
|
);
|
|
2129
2327
|
}
|
|
2130
2328
|
|
|
2131
2329
|
// src/components/DataDisplay/Pagination/Pagination.tsx
|
|
2132
|
-
var
|
|
2330
|
+
var import_jsx_runtime43 = require("react/jsx-runtime");
|
|
2133
2331
|
var CustomPagination = ({
|
|
2134
2332
|
totalPages,
|
|
2135
2333
|
currentPage,
|
|
@@ -2171,15 +2369,15 @@ var CustomPagination = ({
|
|
|
2171
2369
|
}
|
|
2172
2370
|
};
|
|
2173
2371
|
const pageNumbers = getPageNumbers();
|
|
2174
|
-
return /* @__PURE__ */ (0,
|
|
2175
|
-
/* @__PURE__ */ (0,
|
|
2372
|
+
return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(Pagination, { children: /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(PaginationContent, { children: [
|
|
2373
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsx)(PaginationItem, { children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
|
|
2176
2374
|
PaginationPrevious,
|
|
2177
2375
|
{
|
|
2178
2376
|
onClick: () => handlePageChange(currentPage - 1),
|
|
2179
2377
|
className: currentPage === 1 ? "pointer-events-none opacity-50" : "cursor-pointer"
|
|
2180
2378
|
}
|
|
2181
2379
|
) }),
|
|
2182
|
-
pageNumbers.map((pageNumber, index) => /* @__PURE__ */ (0,
|
|
2380
|
+
pageNumbers.map((pageNumber, index) => /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(PaginationItem, { children: pageNumber === "..." ? /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(PaginationEllipsis, {}) : /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
|
|
2183
2381
|
PaginationLink,
|
|
2184
2382
|
{
|
|
2185
2383
|
onClick: () => handlePageChange(pageNumber),
|
|
@@ -2188,7 +2386,7 @@ var CustomPagination = ({
|
|
|
2188
2386
|
children: pageNumber
|
|
2189
2387
|
}
|
|
2190
2388
|
) }, index)),
|
|
2191
|
-
/* @__PURE__ */ (0,
|
|
2389
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsx)(PaginationItem, { children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
|
|
2192
2390
|
PaginationNext,
|
|
2193
2391
|
{
|
|
2194
2392
|
onClick: () => handlePageChange(currentPage + 1),
|
|
@@ -2201,7 +2399,7 @@ var Pagination_default = CustomPagination;
|
|
|
2201
2399
|
|
|
2202
2400
|
// src/components/DataDisplay/Table/Table.tsx
|
|
2203
2401
|
var import_react13 = require("react");
|
|
2204
|
-
var
|
|
2402
|
+
var import_jsx_runtime44 = require("react/jsx-runtime");
|
|
2205
2403
|
var Table2 = ({
|
|
2206
2404
|
columns,
|
|
2207
2405
|
data,
|
|
@@ -2224,8 +2422,8 @@ var Table2 = ({
|
|
|
2224
2422
|
onPageChange?.(page);
|
|
2225
2423
|
};
|
|
2226
2424
|
const paginatedData = enablePagination ? rawData.slice((currentPage - 1) * itemsPerPage, currentPage * itemsPerPage) : rawData;
|
|
2227
|
-
return /* @__PURE__ */ (0,
|
|
2228
|
-
/* @__PURE__ */ (0,
|
|
2425
|
+
return /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)("div", { className: `${className} space-y-3`, style, children: [
|
|
2426
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
|
|
2229
2427
|
DataTable,
|
|
2230
2428
|
{
|
|
2231
2429
|
...props,
|
|
@@ -2235,7 +2433,7 @@ var Table2 = ({
|
|
|
2235
2433
|
loading
|
|
2236
2434
|
}
|
|
2237
2435
|
),
|
|
2238
|
-
enablePagination && /* @__PURE__ */ (0,
|
|
2436
|
+
enablePagination && /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
|
|
2239
2437
|
Pagination_default,
|
|
2240
2438
|
{
|
|
2241
2439
|
totalPages: Math.ceil(rawData.length / itemsPerPage),
|
|
@@ -2247,137 +2445,37 @@ var Table2 = ({
|
|
|
2247
2445
|
};
|
|
2248
2446
|
var Table_default = Table2;
|
|
2249
2447
|
|
|
2250
|
-
// src/components/ui/dropdown-menu.tsx
|
|
2251
|
-
var DropdownMenuPrimitive = __toESM(require("@radix-ui/react-dropdown-menu"));
|
|
2252
|
-
var import_jsx_runtime42 = require("react/jsx-runtime");
|
|
2253
|
-
function DropdownMenu({
|
|
2254
|
-
...props
|
|
2255
|
-
}) {
|
|
2256
|
-
return /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(DropdownMenuPrimitive.Root, { "data-slot": "dropdown-menu", ...props });
|
|
2257
|
-
}
|
|
2258
|
-
function DropdownMenuTrigger({
|
|
2259
|
-
...props
|
|
2260
|
-
}) {
|
|
2261
|
-
return /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
2262
|
-
DropdownMenuPrimitive.Trigger,
|
|
2263
|
-
{
|
|
2264
|
-
"data-slot": "dropdown-menu-trigger",
|
|
2265
|
-
...props
|
|
2266
|
-
}
|
|
2267
|
-
);
|
|
2268
|
-
}
|
|
2269
|
-
function DropdownMenuContent({
|
|
2270
|
-
className,
|
|
2271
|
-
sideOffset = 4,
|
|
2272
|
-
...props
|
|
2273
|
-
}) {
|
|
2274
|
-
return /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
2275
|
-
DropdownMenuPrimitive.Content,
|
|
2276
|
-
{
|
|
2277
|
-
"data-slot": "dropdown-menu-content",
|
|
2278
|
-
sideOffset,
|
|
2279
|
-
className: cn(
|
|
2280
|
-
"bg-popover text-popover-foreground 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 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 max-h-(--radix-dropdown-menu-content-available-height) min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border p-1 shadow-md",
|
|
2281
|
-
className
|
|
2282
|
-
),
|
|
2283
|
-
...props
|
|
2284
|
-
}
|
|
2285
|
-
) });
|
|
2286
|
-
}
|
|
2287
|
-
function DropdownMenuItem({
|
|
2288
|
-
className,
|
|
2289
|
-
inset,
|
|
2290
|
-
variant = "default",
|
|
2291
|
-
...props
|
|
2292
|
-
}) {
|
|
2293
|
-
return /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
2294
|
-
DropdownMenuPrimitive.Item,
|
|
2295
|
-
{
|
|
2296
|
-
"data-slot": "dropdown-menu-item",
|
|
2297
|
-
"data-inset": inset,
|
|
2298
|
-
"data-variant": variant,
|
|
2299
|
-
className: cn(
|
|
2300
|
-
"focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:!text-destructive [&_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]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
2301
|
-
className
|
|
2302
|
-
),
|
|
2303
|
-
...props
|
|
2304
|
-
}
|
|
2305
|
-
);
|
|
2306
|
-
}
|
|
2307
|
-
function DropdownMenuLabel({
|
|
2308
|
-
className,
|
|
2309
|
-
inset,
|
|
2310
|
-
...props
|
|
2311
|
-
}) {
|
|
2312
|
-
return /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
2313
|
-
DropdownMenuPrimitive.Label,
|
|
2314
|
-
{
|
|
2315
|
-
"data-slot": "dropdown-menu-label",
|
|
2316
|
-
"data-inset": inset,
|
|
2317
|
-
className: cn(
|
|
2318
|
-
"px-2 py-1.5 text-sm font-medium data-[inset]:pl-8",
|
|
2319
|
-
className
|
|
2320
|
-
),
|
|
2321
|
-
...props
|
|
2322
|
-
}
|
|
2323
|
-
);
|
|
2324
|
-
}
|
|
2325
|
-
function DropdownMenuSeparator({
|
|
2326
|
-
className,
|
|
2327
|
-
...props
|
|
2328
|
-
}) {
|
|
2329
|
-
return /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
2330
|
-
DropdownMenuPrimitive.Separator,
|
|
2331
|
-
{
|
|
2332
|
-
"data-slot": "dropdown-menu-separator",
|
|
2333
|
-
className: cn("bg-border -mx-1 my-1 h-px", className),
|
|
2334
|
-
...props
|
|
2335
|
-
}
|
|
2336
|
-
);
|
|
2337
|
-
}
|
|
2338
|
-
|
|
2339
2448
|
// src/components/Navigation/Tabs/Tabs.tsx
|
|
2340
|
-
var
|
|
2341
|
-
var Tabs = ({ tabs,
|
|
2449
|
+
var import_jsx_runtime45 = require("react/jsx-runtime");
|
|
2450
|
+
var Tabs = ({ className, style, tabs, verticalMenu, LinkComponent, pathname, canvasMode }) => {
|
|
2342
2451
|
const rawTabs = Array.isArray(tabs) ? tabs : [];
|
|
2343
|
-
const baseClasses = "text-[12px] text-
|
|
2452
|
+
const baseClasses = "text-[12px] text-foreground p-2 text-center rounded-md transition-colors";
|
|
2344
2453
|
const activeClasses = "bg-white/10 text-white";
|
|
2345
2454
|
const hoverClasses = "hover:bg-white/5";
|
|
2346
2455
|
const isActive = (path) => {
|
|
2347
2456
|
if (!path) return false;
|
|
2348
2457
|
return pathname === path || path !== "/" && pathname?.startsWith(path);
|
|
2349
2458
|
};
|
|
2350
|
-
|
|
2351
|
-
const finalClasses = [
|
|
2352
|
-
|
|
2353
|
-
|
|
2354
|
-
|
|
2355
|
-
|
|
2356
|
-
|
|
2357
|
-
|
|
2358
|
-
|
|
2359
|
-
/* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(
|
|
2360
|
-
DropdownMenuTrigger,
|
|
2361
|
-
{
|
|
2362
|
-
className: `${finalClasses} inline-flex items-center gap-1`,
|
|
2363
|
-
children: [
|
|
2364
|
-
tab.header,
|
|
2365
|
-
/* @__PURE__ */ (0, import_jsx_runtime43.jsx)(ChevronDown, { className: "h-4 w-4 opacity-80" })
|
|
2366
|
-
]
|
|
2367
|
-
}
|
|
2368
|
-
),
|
|
2369
|
-
/* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
|
|
2459
|
+
const renderDesktopTab = (tab, index) => {
|
|
2460
|
+
const finalClasses = [baseClasses, isActive(tab.url) ? activeClasses : hoverClasses, tab.className || ""].join(" ");
|
|
2461
|
+
if (Array.isArray(tab.children) && tab.children.length > 0 && tab.isDropDown) {
|
|
2462
|
+
return /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(DropdownMenu, { children: [
|
|
2463
|
+
/* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(DropdownMenuTrigger, { className: `${finalClasses} inline-flex items-center gap-1`, children: [
|
|
2464
|
+
tab.header,
|
|
2465
|
+
/* @__PURE__ */ (0, import_jsx_runtime45.jsx)(ChevronDown, { className: "h-4 w-4 opacity-80" })
|
|
2466
|
+
] }),
|
|
2467
|
+
/* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
|
|
2370
2468
|
DropdownMenuContent,
|
|
2371
2469
|
{
|
|
2372
2470
|
align: "start",
|
|
2373
2471
|
sideOffset: 6,
|
|
2374
2472
|
className: "z-50 min-w-[160px] rounded-md border border-gray-200 bg-white p-1 shadow-lg",
|
|
2375
|
-
children: tab.children.map((item) => /* @__PURE__ */ (0,
|
|
2473
|
+
children: tab.children.map((item) => /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
|
|
2376
2474
|
DropdownMenuItem,
|
|
2377
2475
|
{
|
|
2378
2476
|
asChild: true,
|
|
2379
2477
|
className: "cursor-pointer rounded-sm px-3 py-2 text-[12px] text-gray-800 hover:bg-gray-100 focus:bg-gray-100",
|
|
2380
|
-
children: LinkComponent ? /* @__PURE__ */ (0,
|
|
2478
|
+
children: LinkComponent ? /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(LinkComponent, { href: item.url || "#", children: item.header }) : item.header
|
|
2381
2479
|
},
|
|
2382
2480
|
item.id
|
|
2383
2481
|
))
|
|
@@ -2385,19 +2483,66 @@ var Tabs = ({ tabs, className, style, pathname, LinkComponent }) => {
|
|
|
2385
2483
|
)
|
|
2386
2484
|
] }, index);
|
|
2387
2485
|
}
|
|
2388
|
-
return tab.url && LinkComponent ? /* @__PURE__ */ (0,
|
|
2389
|
-
}
|
|
2486
|
+
return tab.url && LinkComponent ? /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(LinkComponent, { href: tab.url, className: finalClasses, style: tab.style, children: tab.header }, index) : /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("div", { className: finalClasses, style: tab.style, role: "button", tabIndex: 0, children: tab.header }, index);
|
|
2487
|
+
};
|
|
2488
|
+
const renderMobileMenu = () => /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(DropdownMenu, { children: [
|
|
2489
|
+
/* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(DropdownMenuTrigger, { className: "flex items-center gap-2 px-3 py-2 rounded-md bg-white/10 text-white text-sm", children: [
|
|
2490
|
+
/* @__PURE__ */ (0, import_jsx_runtime45.jsx)(Menu, { className: "h-4 w-4" }),
|
|
2491
|
+
"Menu"
|
|
2492
|
+
] }),
|
|
2493
|
+
/* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
|
|
2494
|
+
DropdownMenuContent,
|
|
2495
|
+
{
|
|
2496
|
+
align: "start",
|
|
2497
|
+
sideOffset: 6,
|
|
2498
|
+
className: "z-50 w-56 rounded-md border border-gray-200 bg-white p-1 shadow-lg",
|
|
2499
|
+
children: rawTabs.map((tab, i) => {
|
|
2500
|
+
const hasChildren = Array.isArray(tab.children) && tab.children.length > 0 && tab.isDropDown;
|
|
2501
|
+
if (hasChildren) {
|
|
2502
|
+
return /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(DropdownMenuSub, { children: [
|
|
2503
|
+
/* @__PURE__ */ (0, import_jsx_runtime45.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 }),
|
|
2504
|
+
/* @__PURE__ */ (0, import_jsx_runtime45.jsx)(DropdownMenuSubContent, { className: "bg-white border shadow-lg rounded-md p-1", children: tab.children.map((item) => /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
|
|
2505
|
+
DropdownMenuItem,
|
|
2506
|
+
{
|
|
2507
|
+
asChild: true,
|
|
2508
|
+
className: "cursor-pointer rounded-sm px-3 py-2 text-[12px] text-gray-800 hover:bg-gray-100",
|
|
2509
|
+
children: LinkComponent && item.url ? /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(LinkComponent, { href: item.url || "#", children: item.header }) : item.header
|
|
2510
|
+
},
|
|
2511
|
+
item.id
|
|
2512
|
+
)) })
|
|
2513
|
+
] }, i);
|
|
2514
|
+
}
|
|
2515
|
+
return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
|
|
2516
|
+
DropdownMenuItem,
|
|
2517
|
+
{
|
|
2518
|
+
asChild: true,
|
|
2519
|
+
className: "cursor-pointer rounded-sm px-3 py-2 text-[13px] text-gray-800 hover:bg-gray-100",
|
|
2520
|
+
children: LinkComponent && tab.url ? /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(LinkComponent, { href: tab.url || "#", children: tab.header }) : tab.header
|
|
2521
|
+
},
|
|
2522
|
+
i
|
|
2523
|
+
);
|
|
2524
|
+
})
|
|
2525
|
+
}
|
|
2526
|
+
)
|
|
2527
|
+
] });
|
|
2528
|
+
const forceMobile = canvasMode === "mobile" || canvasMode === "tablet";
|
|
2529
|
+
const forceDesktop = canvasMode === "desktop";
|
|
2530
|
+
return /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)("div", { className, style, children: [
|
|
2531
|
+
forceDesktop && /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("div", { className: "hidden md:flex", children: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("div", { className: `flex gap-2 ${verticalMenu ? "flex-col items-start" : "flex-row"}`, children: rawTabs.map(renderDesktopTab) }) }),
|
|
2532
|
+
forceMobile && /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("div", { children: renderMobileMenu() }),
|
|
2533
|
+
/* @__PURE__ */ (0, import_jsx_runtime45.jsx)("div", { className: "md:hidden", children: renderMobileMenu() })
|
|
2534
|
+
] });
|
|
2390
2535
|
};
|
|
2391
2536
|
var Tabs_default = Tabs;
|
|
2392
2537
|
|
|
2393
2538
|
// src/components/Navigation/Stages/Stages.tsx
|
|
2394
2539
|
var import_react14 = __toESM(require("react"));
|
|
2395
|
-
var
|
|
2540
|
+
var import_jsx_runtime46 = require("react/jsx-runtime");
|
|
2396
2541
|
var StagesComponent = ({ stages, isShowBtn, buttonText, className, style }) => {
|
|
2397
|
-
return /* @__PURE__ */ (0,
|
|
2398
|
-
/* @__PURE__ */ (0,
|
|
2399
|
-
/* @__PURE__ */ (0,
|
|
2400
|
-
/* @__PURE__ */ (0,
|
|
2542
|
+
return /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("div", { className, style, children: /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)("div", { className: "flex items-center justify-between bg-gray-50 p-2 rounded-lg border border-gray-200 w-full", children: [
|
|
2543
|
+
/* @__PURE__ */ (0, import_jsx_runtime46.jsx)("div", { className: "flex items-center", children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("button", { className: "p-2 hover:bg-gray-100 rounded", children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("svg", { className: "w-4 h-4 text-gray-600", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M19 9l-7 7-7-7" }) }) }) }),
|
|
2544
|
+
/* @__PURE__ */ (0, import_jsx_runtime46.jsx)("div", { className: "flex items-center flex-1 px-2", children: stages?.length > 0 && stages?.map((stage, index) => /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)(import_react14.default.Fragment, { children: [
|
|
2545
|
+
/* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
|
|
2401
2546
|
"button",
|
|
2402
2547
|
{
|
|
2403
2548
|
className: `
|
|
@@ -2405,89 +2550,34 @@ var StagesComponent = ({ stages, isShowBtn, buttonText, className, style }) => {
|
|
|
2405
2550
|
children: stage.header
|
|
2406
2551
|
}
|
|
2407
2552
|
),
|
|
2408
|
-
index < stages.length - 1 && /* @__PURE__ */ (0,
|
|
2553
|
+
index < stages.length - 1 && /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("div", { className: "flex-shrink-0 w-3 h-px bg-gray-300" })
|
|
2409
2554
|
] }, stage.id)) }),
|
|
2410
|
-
isShowBtn && /* @__PURE__ */ (0,
|
|
2555
|
+
isShowBtn && /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("div", { className: "flex items-center", children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("button", { className: "bg-[#034486] text-white px-6 py-2 rounded-lg text-sm font-medium transition-colors duration-200 shadow-sm", children: buttonText }) })
|
|
2411
2556
|
] }) });
|
|
2412
2557
|
};
|
|
2413
2558
|
var Stages_default = StagesComponent;
|
|
2414
2559
|
|
|
2415
2560
|
// src/components/Navigation/Spacer/Spacer.tsx
|
|
2416
|
-
var
|
|
2561
|
+
var import_jsx_runtime47 = require("react/jsx-runtime");
|
|
2417
2562
|
var Spacer = ({ className, style }) => {
|
|
2418
|
-
return /* @__PURE__ */ (0,
|
|
2563
|
+
return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("div", { className: `${className}`, style });
|
|
2419
2564
|
};
|
|
2420
2565
|
var Spacer_default = Spacer;
|
|
2421
2566
|
|
|
2422
2567
|
// src/components/Navigation/Profile/Profile.tsx
|
|
2423
|
-
var
|
|
2424
|
-
var Profile = ({ profileType, showName, userName, className, style }) => {
|
|
2425
|
-
return /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("div", { className, style, children: /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)("div", { className: "flex gap-2 items-center justify-between w-30 cursor-pointer", children: [
|
|
2426
|
-
showName && /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("h4", { className: "text-[#000000] dark:text-[#fff] text-[13px] font-[500] mb-0", children: userName }),
|
|
2427
|
-
profileType === "avatar" ? /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
|
|
2428
|
-
"img",
|
|
2429
|
-
{
|
|
2430
|
-
src: "https://builder.development.algorithmshift.ai/images/toolset/profile.svg",
|
|
2431
|
-
alt: "auto",
|
|
2432
|
-
width: 24,
|
|
2433
|
-
height: 24
|
|
2434
|
-
}
|
|
2435
|
-
) : /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("div", { className: "w-6 h-6 bg-[#12715b] rounded-full text-[#fff] text-center text-[11px] flex items-center justify-center", children: "A" })
|
|
2436
|
-
] }) });
|
|
2437
|
-
};
|
|
2438
|
-
var Profile_default = Profile;
|
|
2568
|
+
var import_jsx_runtime48 = require("react/jsx-runtime");
|
|
2439
2569
|
|
|
2440
2570
|
// src/components/Navigation/Notification/Notification.tsx
|
|
2441
|
-
var
|
|
2442
|
-
var Notification = ({ className, style, badgeType, badgeCount = 0, hideBadgeWhenZero }) => {
|
|
2443
|
-
return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("div", { className, style, children: /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)("div", { className: "w-[34px] h-[34px] bg-[#E9E9E9] rounded-md text-center flex items-center justify-center relative", children: [
|
|
2444
|
-
/* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
|
|
2445
|
-
"img",
|
|
2446
|
-
{
|
|
2447
|
-
src: "https://builder.development.algorithmshift.ai/images/toolset/notification.svg",
|
|
2448
|
-
alt: "auto",
|
|
2449
|
-
width: 18,
|
|
2450
|
-
height: 18
|
|
2451
|
-
}
|
|
2452
|
-
),
|
|
2453
|
-
badgeType === "number" && !(hideBadgeWhenZero && badgeCount === 0) && badgeCount > 0 ? /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("span", { className: "text-[10px] text-[#fff] bg-[#FF4A4A] w-[20px] h-[20px] rounded-full absolute top-0 right-0 transform translate-x-1/2 -translate-y-1/2 leading-[20px]", children: badgeCount }) : /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("span", { className: "bg-[#FF4A4A] w-[10px] h-[10px] rounded-full absolute top-0 right-0 transform translate-x-1/2 -translate-y-1/2 leading-[20px]" })
|
|
2454
|
-
] }) });
|
|
2455
|
-
};
|
|
2456
|
-
var Notification_default = Notification;
|
|
2457
|
-
|
|
2458
|
-
// src/assets/logo_placeholder.png
|
|
2459
|
-
var logo_placeholder_default = "data:image/png;base64,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dBvJqqioiFtuuSUmT55c6FaOq7q6Ou6666546KGHYs+ePYVu55jKy8vj+9///pe3ki408wpw1OCInIHT3syZM+P2229P4gD0qy644IK47bbbBuRD7JIlSwZNuPGF0tLSuPHGGwfdt4FfZW1BbkaMGBH33HPPoD4I/sLIkSPjRz/60aDbtPML119/fYwcObLQbUSEeQX4KgEHkHdz5syJG2+8MW93Acm3adOmxR133JHX/hcuXBgzZ87MW/3+KC8vj+uvv77QbRyTtQW5qaqqinvvvXdQh5XfNGrUqPje9743YHdAytWkSZPivPPOK3QbEWFeAb5JwAHk1bnnnhvf+c53kv8g09jYGDfffHNeXkdjY2NcdtllmdfN0mDc08LagtxUVFTEnXfeOWjOOOiLxsbGuOKKKwrdxpdKSkriuuuuK3QbEWFeAY5FwAHkTV1dXSxevHjQbMDWX9/61rfiqquuyrRmZWVlLFmyxMFtH1lbkJvi4uK49dZbo6amptCtnLJvf/vbUVdXV+g2IuLo2Qdjx44tdBvmFeA4To9PhsCgU15eHt/73veirKys0K1kav78+XHuuedmVu/qq6+OqqqqzOqdCawtyN1VV10VkyZNKnQb/VJcXBzf/e53BcFfYV4Bjs3OZkBeXHvttVFdXV3oNvLihhtuiM8++yza29v7VaehoWHQXMedEmsLcjNp0qS46KKLMq3Z29sbGzZsiE8//TS2bdsWu3btis7OzoiIGD58eIwfPz6amppi2rRpmYaQdXV1MWfOnHj33Xczq5kq8wpwfAIOIHONjY0xe/bsQreRN5WVlXHdddfFk08+2a8611xzjW+u+sjagtyUlJRk/u346tWr49VXX43W1tZj/ry9vT0+//zzWLFiRVRWVsaCBQti3rx5mV1K9k//9E/x3nvvndG3VjavACfmEhUgU0VFRXHDDTcUuo28a25ujqamplN+fmNjYzQ0NGTY0enP2oLcXXrppZntz7B///546KGH4sknnzzuQfA3tbe3x/PPPx+//e1v4/Dhw5n0MWrUqJg1a1YmtVJlXgFOzBkcQKbmzJmT103PDh06FOvXr4/NmzfHjh07Ys+ePdHR0RERR6/nraqqipqammhoaIjJkyfHmDFj8tbL5ZdfHp9++ukpPXcg7pqyd+/eWLduXWzYsCF27twZbW1tERFRVlYWtbW1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";
|
|
2571
|
+
var import_jsx_runtime49 = require("react/jsx-runtime");
|
|
2460
2572
|
|
|
2461
2573
|
// src/components/Navigation/Logo/Logo.tsx
|
|
2462
|
-
var
|
|
2463
|
-
var Logo = ({
|
|
2464
|
-
className,
|
|
2465
|
-
style,
|
|
2466
|
-
imageUrl,
|
|
2467
|
-
altText = "Preview"
|
|
2468
|
-
}) => {
|
|
2469
|
-
if (!imageUrl) {
|
|
2470
|
-
return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
|
|
2471
|
-
"div",
|
|
2472
|
-
{
|
|
2473
|
-
className: cn(
|
|
2474
|
-
className,
|
|
2475
|
-
"p-0"
|
|
2476
|
-
),
|
|
2477
|
-
style,
|
|
2478
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("img", { src: logo_placeholder_default, alt: altText, className: "opacity-50", width: 150, height: 80 })
|
|
2479
|
-
}
|
|
2480
|
-
);
|
|
2481
|
-
}
|
|
2482
|
-
return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("img", { src: imageUrl, alt: altText, className, style });
|
|
2483
|
-
};
|
|
2484
|
-
var Logo_default = Logo;
|
|
2574
|
+
var import_jsx_runtime50 = require("react/jsx-runtime");
|
|
2485
2575
|
|
|
2486
2576
|
// src/components/ui/avatar.tsx
|
|
2487
2577
|
var React16 = __toESM(require("react"));
|
|
2488
2578
|
var AvatarPrimitive = __toESM(require("@radix-ui/react-avatar"));
|
|
2489
|
-
var
|
|
2490
|
-
var Avatar = React16.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
2579
|
+
var import_jsx_runtime51 = require("react/jsx-runtime");
|
|
2580
|
+
var Avatar = React16.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
|
|
2491
2581
|
AvatarPrimitive.Root,
|
|
2492
2582
|
{
|
|
2493
2583
|
ref,
|
|
@@ -2499,7 +2589,7 @@ var Avatar = React16.forwardRef(({ className, ...props }, ref) => /* @__PURE__ *
|
|
|
2499
2589
|
}
|
|
2500
2590
|
));
|
|
2501
2591
|
Avatar.displayName = AvatarPrimitive.Root.displayName;
|
|
2502
|
-
var AvatarImage = React16.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
2592
|
+
var AvatarImage = React16.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
|
|
2503
2593
|
AvatarPrimitive.Image,
|
|
2504
2594
|
{
|
|
2505
2595
|
ref,
|
|
@@ -2508,7 +2598,7 @@ var AvatarImage = React16.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
2508
2598
|
}
|
|
2509
2599
|
));
|
|
2510
2600
|
AvatarImage.displayName = AvatarPrimitive.Image.displayName;
|
|
2511
|
-
var AvatarFallback = React16.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
2601
|
+
var AvatarFallback = React16.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
|
|
2512
2602
|
AvatarPrimitive.Fallback,
|
|
2513
2603
|
{
|
|
2514
2604
|
ref,
|
|
@@ -2522,7 +2612,7 @@ var AvatarFallback = React16.forwardRef(({ className, ...props }, ref) => /* @__
|
|
|
2522
2612
|
AvatarFallback.displayName = AvatarPrimitive.Fallback.displayName;
|
|
2523
2613
|
|
|
2524
2614
|
// src/components/Navigation/Navbar/Navbar.tsx
|
|
2525
|
-
var
|
|
2615
|
+
var import_jsx_runtime52 = require("react/jsx-runtime");
|
|
2526
2616
|
function Navbar({
|
|
2527
2617
|
style,
|
|
2528
2618
|
badgeType,
|
|
@@ -2534,64 +2624,82 @@ function Navbar({
|
|
|
2534
2624
|
altText = "Logo",
|
|
2535
2625
|
canvasMode = "desktop",
|
|
2536
2626
|
LinkComponent,
|
|
2537
|
-
ImageComponent
|
|
2627
|
+
ImageComponent,
|
|
2628
|
+
list = [],
|
|
2629
|
+
userName = "Guest User"
|
|
2538
2630
|
}) {
|
|
2539
2631
|
const isMobileView = canvasMode === "mobile" || canvasMode === "tablet";
|
|
2540
|
-
return /* @__PURE__ */ (0,
|
|
2541
|
-
LinkComponent && ImageComponent ? /* @__PURE__ */ (0,
|
|
2542
|
-
/* @__PURE__ */ (0,
|
|
2543
|
-
|
|
2544
|
-
|
|
2545
|
-
|
|
2546
|
-
|
|
2632
|
+
return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("nav", { className: "w-full border-b bg-white shadow-sm", style, children: /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("div", { className: "mx-auto flex max-w-7xl items-center justify-between px-4 py-2", children: [
|
|
2633
|
+
LinkComponent && ImageComponent ? /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(LinkComponent, { href: "/", className: "flex items-center space-x-2", children: imageUrl ? /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(ImageComponent, { src: imageUrl, alt: altText, width: 200, height: 200 }) : /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("span", { className: "font-semibold text-blue-700", children: "Logo" }) }) : /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("span", { className: "font-semibold text-blue-700", children: "Logo" }),
|
|
2634
|
+
!isMobileView && LinkComponent && /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("div", { className: "flex items-center space-x-6 sm:hidden md:flex", children: list.map((item) => /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
|
|
2635
|
+
LinkComponent,
|
|
2636
|
+
{
|
|
2637
|
+
href: item.url || "#",
|
|
2638
|
+
className: "text-sm font-medium text-gray-600 hover:text-gray-900 transition-colors",
|
|
2639
|
+
children: item.header
|
|
2640
|
+
},
|
|
2641
|
+
item.id
|
|
2642
|
+
)) }),
|
|
2643
|
+
/* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("div", { className: "flex items-center space-x-3", children: [
|
|
2644
|
+
!isMobileView ? /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("div", { className: "flex-1 px-6", children: /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("div", { className: "relative w-full max-w-md border border-gray-300 rounded-md", children: [
|
|
2645
|
+
/* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Search, { className: "absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-gray-400" }),
|
|
2646
|
+
/* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Input, { placeholder: "Search", className: "pl-9 text-gray-400" })
|
|
2647
|
+
] }) }) : /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
|
|
2547
2648
|
Button,
|
|
2548
2649
|
{
|
|
2549
2650
|
variant: "ghost",
|
|
2550
2651
|
size: "icon",
|
|
2551
2652
|
className: "border border-gray-400",
|
|
2552
|
-
children: /* @__PURE__ */ (0,
|
|
2653
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Search, { className: "h-5 w-5 text-gray-400" })
|
|
2553
2654
|
}
|
|
2554
2655
|
),
|
|
2555
|
-
/* @__PURE__ */ (0,
|
|
2556
|
-
/* @__PURE__ */ (0,
|
|
2557
|
-
badgeType === "number" && !(hideBadgeWhenZero && badgeCount === 0) && badgeCount > 0 ? /* @__PURE__ */ (0,
|
|
2656
|
+
/* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("div", { className: "relative bg-[#E9E9E9] rounded-md", children: [
|
|
2657
|
+
/* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Button, { variant: "ghost", size: "icon", children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Bell, { className: "h-5 w-5 text-[#1C1B1F]" }) }),
|
|
2658
|
+
badgeType === "number" && !(hideBadgeWhenZero && badgeCount === 0) && badgeCount > 0 ? /* @__PURE__ */ (0, import_jsx_runtime52.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_runtime52.jsx)("span", { className: "absolute -top-1 -right-1 flex h-2 w-2 items-center justify-center rounded-full bg-red-500" })
|
|
2558
2659
|
] }),
|
|
2559
|
-
/* @__PURE__ */ (0,
|
|
2560
|
-
/* @__PURE__ */ (0,
|
|
2561
|
-
!isMobileView && showName && /* @__PURE__ */ (0,
|
|
2562
|
-
!isMobileView ? /* @__PURE__ */ (0,
|
|
2563
|
-
/* @__PURE__ */ (0,
|
|
2660
|
+
/* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(DropdownMenu, { children: [
|
|
2661
|
+
/* @__PURE__ */ (0, import_jsx_runtime52.jsx)(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("div", { className: "flex items-center space-x-2", children: [
|
|
2662
|
+
!isMobileView && showName && /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("h4", { className: "text-[#000000] text-[13px] font-[500] mb-0", children: userName }),
|
|
2663
|
+
!isMobileView ? /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(import_jsx_runtime52.Fragment, { children: [
|
|
2664
|
+
/* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Avatar, { className: "cursor-pointer h-8 w-8 text-gray-900", children: profileType === "avatar" ? /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
|
|
2564
2665
|
AvatarImage,
|
|
2565
2666
|
{
|
|
2566
2667
|
src: "/images/appbuilder/toolset/profile.svg",
|
|
2567
|
-
alt: "
|
|
2668
|
+
alt: "Profile"
|
|
2568
2669
|
}
|
|
2569
|
-
) : /* @__PURE__ */ (0,
|
|
2570
|
-
/* @__PURE__ */ (0,
|
|
2670
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime52.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) }) }),
|
|
2671
|
+
/* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
|
|
2571
2672
|
Button,
|
|
2572
2673
|
{
|
|
2573
2674
|
variant: "ghost",
|
|
2574
2675
|
size: "icon",
|
|
2575
2676
|
className: "text-gray-900 md:hidden",
|
|
2576
|
-
children: /* @__PURE__ */ (0,
|
|
2677
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Menu, { className: "h-6 w-6" })
|
|
2577
2678
|
}
|
|
2578
2679
|
)
|
|
2579
|
-
] }) : /* @__PURE__ */ (0,
|
|
2680
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
|
|
2580
2681
|
Button,
|
|
2581
2682
|
{
|
|
2582
2683
|
variant: "ghost",
|
|
2583
2684
|
size: "icon",
|
|
2584
2685
|
className: "text-gray-900",
|
|
2585
|
-
children: /* @__PURE__ */ (0,
|
|
2686
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Menu, { className: "h-6 w-6" })
|
|
2586
2687
|
}
|
|
2587
2688
|
)
|
|
2588
2689
|
] }) }),
|
|
2589
|
-
/* @__PURE__ */ (0,
|
|
2590
|
-
/* @__PURE__ */ (0,
|
|
2591
|
-
/* @__PURE__ */ (0,
|
|
2592
|
-
/* @__PURE__ */ (0,
|
|
2593
|
-
|
|
2594
|
-
|
|
2690
|
+
/* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(DropdownMenuContent, { align: "end", className: "bg-white", children: [
|
|
2691
|
+
/* @__PURE__ */ (0, import_jsx_runtime52.jsx)(DropdownMenuLabel, { className: "text-black", children: "My Account" }),
|
|
2692
|
+
/* @__PURE__ */ (0, import_jsx_runtime52.jsx)(DropdownMenuSeparator, {}),
|
|
2693
|
+
LinkComponent && /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(import_jsx_runtime52.Fragment, { children: [
|
|
2694
|
+
/* @__PURE__ */ (0, import_jsx_runtime52.jsx)(DropdownMenuItem, { className: "text-black", children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(LinkComponent, { href: "/profile", children: "Profile" }) }),
|
|
2695
|
+
/* @__PURE__ */ (0, import_jsx_runtime52.jsx)(DropdownMenuItem, { className: "text-black", children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(LinkComponent, { href: "/settings", children: "Settings" }) }),
|
|
2696
|
+
/* @__PURE__ */ (0, import_jsx_runtime52.jsx)(DropdownMenuItem, { className: "text-black", children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(LinkComponent, { href: "/logout", children: "Logout" }) }),
|
|
2697
|
+
list && list.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(import_jsx_runtime52.Fragment, { children: [
|
|
2698
|
+
/* @__PURE__ */ (0, import_jsx_runtime52.jsx)("div", { className: "w-full bg-[#656565] opacity-30 h-[1px] my-2" }),
|
|
2699
|
+
/* @__PURE__ */ (0, import_jsx_runtime52.jsx)(DropdownMenuLabel, { className: "text-black", children: "Main Menu" }),
|
|
2700
|
+
list.map((item) => /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(DropdownMenuItem, { className: "text-black", children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(LinkComponent, { href: item.url || "#", children: item.header }) }, item.id))
|
|
2701
|
+
] })
|
|
2702
|
+
] })
|
|
2595
2703
|
] })
|
|
2596
2704
|
] })
|
|
2597
2705
|
] })
|
|
@@ -2600,28 +2708,28 @@ function Navbar({
|
|
|
2600
2708
|
|
|
2601
2709
|
// src/components/Chart/BarChart.tsx
|
|
2602
2710
|
var import_recharts = require("recharts");
|
|
2603
|
-
var
|
|
2711
|
+
var import_jsx_runtime53 = require("react/jsx-runtime");
|
|
2604
2712
|
var ChartComponent = ({ className, style, ...props }) => {
|
|
2605
2713
|
const data = Array.isArray(props?.data) ? props.data : [];
|
|
2606
2714
|
const chartType = props.chartType || "bar";
|
|
2607
2715
|
const legendsPosition = props.legendsPosition === "middle" || props.legendsPosition === "bottom" ? props.legendsPosition : "top";
|
|
2608
|
-
return /* @__PURE__ */ (0,
|
|
2609
|
-
/* @__PURE__ */ (0,
|
|
2610
|
-
/* @__PURE__ */ (0,
|
|
2611
|
-
/* @__PURE__ */ (0,
|
|
2612
|
-
/* @__PURE__ */ (0,
|
|
2613
|
-
/* @__PURE__ */ (0,
|
|
2614
|
-
/* @__PURE__ */ (0,
|
|
2615
|
-
] }) : /* @__PURE__ */ (0,
|
|
2616
|
-
/* @__PURE__ */ (0,
|
|
2617
|
-
/* @__PURE__ */ (0,
|
|
2618
|
-
/* @__PURE__ */ (0,
|
|
2716
|
+
return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("div", { className: `${className} h-[400px]`, style, children: data.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_recharts.ResponsiveContainer, { width: "100%", height: "100%", children: chartType === "bar" ? /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(import_recharts.BarChart, { data, children: [
|
|
2717
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_recharts.CartesianGrid, { strokeDasharray: "3 3" }),
|
|
2718
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_recharts.XAxis, { dataKey: "name" }),
|
|
2719
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_recharts.YAxis, {}),
|
|
2720
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_recharts.Tooltip, {}),
|
|
2721
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_recharts.Legend, { verticalAlign: legendsPosition, align: "center" }),
|
|
2722
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_recharts.Bar, { dataKey: "value", fill: "#00695C" })
|
|
2723
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(import_recharts.AreaChart, { data, children: [
|
|
2724
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)("defs", { children: /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("linearGradient", { id: "colorCount", x1: "0", y1: "0", x2: "0", y2: "1", children: [
|
|
2725
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)("stop", { offset: "5%", stopColor: "#00695C", stopOpacity: 0.8 }),
|
|
2726
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)("stop", { offset: "95%", stopColor: "#00695C", stopOpacity: 0 })
|
|
2619
2727
|
] }) }),
|
|
2620
|
-
/* @__PURE__ */ (0,
|
|
2621
|
-
/* @__PURE__ */ (0,
|
|
2622
|
-
/* @__PURE__ */ (0,
|
|
2623
|
-
/* @__PURE__ */ (0,
|
|
2624
|
-
/* @__PURE__ */ (0,
|
|
2728
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_recharts.CartesianGrid, { strokeDasharray: "3 3" }),
|
|
2729
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_recharts.XAxis, { dataKey: "name" }),
|
|
2730
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_recharts.YAxis, {}),
|
|
2731
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_recharts.Tooltip, {}),
|
|
2732
|
+
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
|
|
2625
2733
|
import_recharts.Area,
|
|
2626
2734
|
{
|
|
2627
2735
|
type: "monotone",
|
|
@@ -2637,7 +2745,7 @@ var BarChart_default = ChartComponent;
|
|
|
2637
2745
|
|
|
2638
2746
|
// src/components/Chart/PieChart.tsx
|
|
2639
2747
|
var import_recharts2 = require("recharts");
|
|
2640
|
-
var
|
|
2748
|
+
var import_jsx_runtime54 = require("react/jsx-runtime");
|
|
2641
2749
|
var DonutChart = ({ className, style, ...props }) => {
|
|
2642
2750
|
const data = Array.isArray(props?.data) ? props.data : [];
|
|
2643
2751
|
const total = data.reduce((sum, d) => sum + d.value, 0);
|
|
@@ -2648,7 +2756,7 @@ var DonutChart = ({ className, style, ...props }) => {
|
|
|
2648
2756
|
const renderLabel = ({ value, x, y }) => {
|
|
2649
2757
|
if (value == null) return null;
|
|
2650
2758
|
const percentage = (Number(value) / total * 100).toFixed(0);
|
|
2651
|
-
return /* @__PURE__ */ (0,
|
|
2759
|
+
return /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(
|
|
2652
2760
|
"text",
|
|
2653
2761
|
{
|
|
2654
2762
|
x,
|
|
@@ -2670,33 +2778,33 @@ var DonutChart = ({ className, style, ...props }) => {
|
|
|
2670
2778
|
const wrapperClass = canvasMode ? forceDesktop ? "flex-row" : "flex-col" : "flex-col md:flex-row";
|
|
2671
2779
|
const renderLegends = () => {
|
|
2672
2780
|
if (!showLegends) return null;
|
|
2673
|
-
return /* @__PURE__ */ (0,
|
|
2781
|
+
return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_jsx_runtime54.Fragment, { children: data.map((d) => /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(
|
|
2674
2782
|
"div",
|
|
2675
2783
|
{
|
|
2676
2784
|
className: "flex items-center space-x-2 rounded-md border border-gray-200 px-3 py-2 w-[48%] md:w-auto",
|
|
2677
2785
|
children: [
|
|
2678
|
-
/* @__PURE__ */ (0,
|
|
2786
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
|
|
2679
2787
|
"span",
|
|
2680
2788
|
{
|
|
2681
2789
|
className: "inline-block w-[16px] h-[16px] rounded",
|
|
2682
2790
|
style: { backgroundColor: d.color }
|
|
2683
2791
|
}
|
|
2684
2792
|
),
|
|
2685
|
-
/* @__PURE__ */ (0,
|
|
2793
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)("span", { className: "text-[#000000] text-[12px] md:text-[13px] font-[500]", children: d.name })
|
|
2686
2794
|
]
|
|
2687
2795
|
},
|
|
2688
2796
|
d.name
|
|
2689
2797
|
)) });
|
|
2690
2798
|
};
|
|
2691
|
-
return /* @__PURE__ */ (0,
|
|
2799
|
+
return /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(
|
|
2692
2800
|
"div",
|
|
2693
2801
|
{
|
|
2694
2802
|
className: `relative flex items-center ${wrapperClass} ${className}`,
|
|
2695
2803
|
style,
|
|
2696
2804
|
children: [
|
|
2697
|
-
/* @__PURE__ */ (0,
|
|
2698
|
-
data.length > 0 && /* @__PURE__ */ (0,
|
|
2699
|
-
/* @__PURE__ */ (0,
|
|
2805
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsxs)("div", { className: "relative w-full md:w-[70%] h-[300px] md:h-[400px] flex items-center justify-center", children: [
|
|
2806
|
+
data.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_recharts2.ResponsiveContainer, { width: "100%", height: "100%", children: /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(import_recharts2.PieChart, { children: [
|
|
2807
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(
|
|
2700
2808
|
import_recharts2.Pie,
|
|
2701
2809
|
{
|
|
2702
2810
|
data,
|
|
@@ -2708,8 +2816,8 @@ var DonutChart = ({ className, style, ...props }) => {
|
|
|
2708
2816
|
labelLine: false,
|
|
2709
2817
|
isAnimationActive: false,
|
|
2710
2818
|
children: [
|
|
2711
|
-
data.map((entry, index) => /* @__PURE__ */ (0,
|
|
2712
|
-
/* @__PURE__ */ (0,
|
|
2819
|
+
data.map((entry, index) => /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_recharts2.Cell, { fill: entry.color }, `cell-${index}`)),
|
|
2820
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
|
|
2713
2821
|
import_recharts2.LabelList,
|
|
2714
2822
|
{
|
|
2715
2823
|
dataKey: "value",
|
|
@@ -2720,14 +2828,14 @@ var DonutChart = ({ className, style, ...props }) => {
|
|
|
2720
2828
|
]
|
|
2721
2829
|
}
|
|
2722
2830
|
),
|
|
2723
|
-
/* @__PURE__ */ (0,
|
|
2831
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_recharts2.Tooltip, { formatter: (value, name) => [`${value}k`, name] })
|
|
2724
2832
|
] }) }),
|
|
2725
|
-
/* @__PURE__ */ (0,
|
|
2833
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsxs)("div", { className: "absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 text-2xl md:text-4xl font-bold text-[#000]", children: [
|
|
2726
2834
|
total,
|
|
2727
2835
|
"k"
|
|
2728
2836
|
] })
|
|
2729
2837
|
] }),
|
|
2730
|
-
/* @__PURE__ */ (0,
|
|
2838
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)("div", { className: `flex ${forceDesktop ? "flex-col ml-auto space-y-3" : "flex-wrap justify-center gap-2 mt-4"}
|
|
2731
2839
|
w-full md:w-auto`, children: renderLegends() })
|
|
2732
2840
|
]
|
|
2733
2841
|
}
|
|
@@ -2736,10 +2844,10 @@ var DonutChart = ({ className, style, ...props }) => {
|
|
|
2736
2844
|
var PieChart_default = DonutChart;
|
|
2737
2845
|
|
|
2738
2846
|
// src/components/Blocks/EmailComposer.tsx
|
|
2739
|
-
var
|
|
2847
|
+
var import_jsx_runtime55 = require("react/jsx-runtime");
|
|
2740
2848
|
function EmailComposer({ className, style, to, setTo, showCc, setShowCc, showBcc, setShowBcc, cc, setCc, bcc, setBcc, subject, setSubject, body, setBody }) {
|
|
2741
|
-
return /* @__PURE__ */ (0,
|
|
2742
|
-
/* @__PURE__ */ (0,
|
|
2849
|
+
return /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("div", { className, style, children: /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("div", { className: "border rounded-md shadow bg-[#fff] p-4 mx-auto z-[50] relative", children: [
|
|
2850
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)("div", { className: "mb-3", children: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
|
|
2743
2851
|
"input",
|
|
2744
2852
|
{
|
|
2745
2853
|
type: "email",
|
|
@@ -2748,8 +2856,8 @@ function EmailComposer({ className, style, to, setTo, showCc, setShowCc, showBcc
|
|
|
2748
2856
|
required: true
|
|
2749
2857
|
}
|
|
2750
2858
|
) }),
|
|
2751
|
-
/* @__PURE__ */ (0,
|
|
2752
|
-
/* @__PURE__ */ (0,
|
|
2859
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)("div", { className: "mb-3", children: /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("div", { className: "flex items-center gap-2", children: [
|
|
2860
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
|
|
2753
2861
|
"input",
|
|
2754
2862
|
{
|
|
2755
2863
|
type: "email",
|
|
@@ -2760,7 +2868,7 @@ function EmailComposer({ className, style, to, setTo, showCc, setShowCc, showBcc
|
|
|
2760
2868
|
required: true
|
|
2761
2869
|
}
|
|
2762
2870
|
),
|
|
2763
|
-
!showCc && /* @__PURE__ */ (0,
|
|
2871
|
+
!showCc && /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
|
|
2764
2872
|
"button",
|
|
2765
2873
|
{
|
|
2766
2874
|
onClick: () => setShowCc?.(true),
|
|
@@ -2768,7 +2876,7 @@ function EmailComposer({ className, style, to, setTo, showCc, setShowCc, showBcc
|
|
|
2768
2876
|
children: "Cc"
|
|
2769
2877
|
}
|
|
2770
2878
|
),
|
|
2771
|
-
!showBcc && /* @__PURE__ */ (0,
|
|
2879
|
+
!showBcc && /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
|
|
2772
2880
|
"button",
|
|
2773
2881
|
{
|
|
2774
2882
|
onClick: () => setShowBcc?.(true),
|
|
@@ -2777,7 +2885,7 @@ function EmailComposer({ className, style, to, setTo, showCc, setShowCc, showBcc
|
|
|
2777
2885
|
}
|
|
2778
2886
|
)
|
|
2779
2887
|
] }) }),
|
|
2780
|
-
showCc && /* @__PURE__ */ (0,
|
|
2888
|
+
showCc && /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("div", { className: "mb-3", children: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
|
|
2781
2889
|
"input",
|
|
2782
2890
|
{
|
|
2783
2891
|
type: "text",
|
|
@@ -2787,7 +2895,7 @@ function EmailComposer({ className, style, to, setTo, showCc, setShowCc, showBcc
|
|
|
2787
2895
|
className: "w-full flex-1 border-2 rounded-md h-[40px] px-3 focus:outline-none border-[#E9E9E9] text-[#383838]"
|
|
2788
2896
|
}
|
|
2789
2897
|
) }),
|
|
2790
|
-
showBcc && /* @__PURE__ */ (0,
|
|
2898
|
+
showBcc && /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("div", { className: "mb-3", children: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
|
|
2791
2899
|
"input",
|
|
2792
2900
|
{
|
|
2793
2901
|
type: "text",
|
|
@@ -2797,7 +2905,7 @@ function EmailComposer({ className, style, to, setTo, showCc, setShowCc, showBcc
|
|
|
2797
2905
|
className: "w-full flex-1 border-2 rounded-md h-[40px] px-3 focus:outline-none border-[#E9E9E9] text-[#383838]"
|
|
2798
2906
|
}
|
|
2799
2907
|
) }),
|
|
2800
|
-
/* @__PURE__ */ (0,
|
|
2908
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)("div", { className: "mb-3", children: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
|
|
2801
2909
|
"input",
|
|
2802
2910
|
{
|
|
2803
2911
|
type: "text",
|
|
@@ -2807,11 +2915,11 @@ function EmailComposer({ className, style, to, setTo, showCc, setShowCc, showBcc
|
|
|
2807
2915
|
className: "w-full flex-1 border-2 rounded-md h-[40px] px-3 focus:outline-none border-[#E9E9E9] text-[#383838]"
|
|
2808
2916
|
}
|
|
2809
2917
|
) }),
|
|
2810
|
-
/* @__PURE__ */ (0,
|
|
2811
|
-
/* @__PURE__ */ (0,
|
|
2812
|
-
/* @__PURE__ */ (0,
|
|
2813
|
-
/* @__PURE__ */ (0,
|
|
2814
|
-
/* @__PURE__ */ (0,
|
|
2918
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)("div", { className: "mb-4", children: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(MyEditor, { value: body, onChange: setBody }) }),
|
|
2919
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("div", { className: "flex justify-end gap-2", children: [
|
|
2920
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)("button", { className: "px-4 py-2 rounded-md text-gray-600 hover:bg-gray-100", children: "Discard" }),
|
|
2921
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)("button", { className: "px-4 py-2 rounded-md border text-[#12715B] border-[#12715B]", children: "Reset" }),
|
|
2922
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)("button", { className: "px-4 py-2 rounded-md bg-[#12715B] text-white", children: "Send" })
|
|
2815
2923
|
] })
|
|
2816
2924
|
] }) });
|
|
2817
2925
|
}
|
|
@@ -2867,22 +2975,22 @@ function stateReducer(state, action) {
|
|
|
2867
2975
|
}
|
|
2868
2976
|
|
|
2869
2977
|
// src/components/StateManagment/StateContext.tsx
|
|
2870
|
-
var
|
|
2978
|
+
var import_jsx_runtime56 = require("react/jsx-runtime");
|
|
2871
2979
|
var StateContext = (0, import_react15.createContext)(null);
|
|
2872
2980
|
function StateProvider({ children }) {
|
|
2873
2981
|
const [state, dispatch] = (0, import_react15.useReducer)(stateReducer, {});
|
|
2874
|
-
return /* @__PURE__ */ (0,
|
|
2982
|
+
return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(StateContext.Provider, { value: { state, dispatch }, children });
|
|
2875
2983
|
}
|
|
2876
2984
|
function useAppState() {
|
|
2877
2985
|
return (0, import_react15.useContext)(StateContext);
|
|
2878
2986
|
}
|
|
2879
2987
|
|
|
2880
|
-
// src/components/Form/
|
|
2988
|
+
// src/components/Form/Form.tsx
|
|
2881
2989
|
var import_react16 = __toESM(require("react"));
|
|
2882
2990
|
var import_zod = require("@hookform/resolvers/zod");
|
|
2883
2991
|
var import_react_hook_form = require("react-hook-form");
|
|
2884
2992
|
var import_zod2 = require("zod");
|
|
2885
|
-
var
|
|
2993
|
+
var import_jsx_runtime57 = require("react/jsx-runtime");
|
|
2886
2994
|
function generateZodSchema(data) {
|
|
2887
2995
|
const fields = data.reduce((acc, f) => {
|
|
2888
2996
|
const name = f.name || "unnamed";
|
|
@@ -2951,7 +3059,7 @@ function generateZodSchema(data) {
|
|
|
2951
3059
|
}, {});
|
|
2952
3060
|
return import_zod2.z.object(fields);
|
|
2953
3061
|
}
|
|
2954
|
-
var
|
|
3062
|
+
var Form = ({
|
|
2955
3063
|
validation,
|
|
2956
3064
|
defaultValues,
|
|
2957
3065
|
children,
|
|
@@ -2978,7 +3086,7 @@ var FormWrapper = ({
|
|
|
2978
3086
|
reset();
|
|
2979
3087
|
if (onReset) onReset();
|
|
2980
3088
|
};
|
|
2981
|
-
return /* @__PURE__ */ (0,
|
|
3089
|
+
return /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
|
|
2982
3090
|
"form",
|
|
2983
3091
|
{
|
|
2984
3092
|
onSubmit: handleSubmit(formSubmit),
|
|
@@ -2986,13 +3094,13 @@ var FormWrapper = ({
|
|
|
2986
3094
|
className: cn(
|
|
2987
3095
|
"space-y-4 min-h-[100px] h-auto flex justify-between flex-col"
|
|
2988
3096
|
),
|
|
2989
|
-
children: /* @__PURE__ */ (0,
|
|
3097
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("div", { className: "min-h-[50px]", children: import_react16.default.Children.map(children, (child) => {
|
|
2990
3098
|
const processChild = (child2) => {
|
|
2991
3099
|
if (import_react16.default.isValidElement(child2)) {
|
|
2992
3100
|
const node = child2.props?.node;
|
|
2993
3101
|
if (node?.category === "Form Controls") {
|
|
2994
3102
|
const name = node.properties?.name || "unnamed";
|
|
2995
|
-
return /* @__PURE__ */ (0,
|
|
3103
|
+
return /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("div", { className: "flex flex-col", children: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
|
|
2996
3104
|
import_react_hook_form.Controller,
|
|
2997
3105
|
{
|
|
2998
3106
|
name,
|
|
@@ -3028,11 +3136,123 @@ var FormWrapper = ({
|
|
|
3028
3136
|
}
|
|
3029
3137
|
);
|
|
3030
3138
|
};
|
|
3139
|
+
var Form_default = Form;
|
|
3140
|
+
|
|
3141
|
+
// src/components/Form/Wrapper.tsx
|
|
3142
|
+
var import_react17 = require("react");
|
|
3143
|
+
var import_zod3 = require("@hookform/resolvers/zod");
|
|
3144
|
+
var import_react_hook_form2 = require("react-hook-form");
|
|
3145
|
+
var import_zod4 = require("zod");
|
|
3146
|
+
var import_jsx_runtime58 = require("react/jsx-runtime");
|
|
3147
|
+
function generateZodSchema2(data) {
|
|
3148
|
+
const fields = data.reduce((acc, f) => {
|
|
3149
|
+
const name = f.name || "unnamed";
|
|
3150
|
+
const message = f.message || `${name} is invalid`;
|
|
3151
|
+
const passwordLen = f.passwordLength;
|
|
3152
|
+
let fieldSchema = import_zod4.z.string({ message });
|
|
3153
|
+
switch (f.type) {
|
|
3154
|
+
case "Text":
|
|
3155
|
+
case "Search":
|
|
3156
|
+
fieldSchema = import_zod4.z.string({ message });
|
|
3157
|
+
if (f?.min && f?.min !== "") fieldSchema = fieldSchema.min(f.min);
|
|
3158
|
+
else if (f.isRequired) fieldSchema = fieldSchema.min(1, { message: `${message}. Cannot be empty` });
|
|
3159
|
+
if (f?.max && f?.max !== "") fieldSchema = fieldSchema.max(f.max);
|
|
3160
|
+
if (f?.email) fieldSchema = fieldSchema.email();
|
|
3161
|
+
if (f?.url) fieldSchema = fieldSchema.url();
|
|
3162
|
+
if (f?.regex) fieldSchema = fieldSchema.regex(new RegExp(f.regex));
|
|
3163
|
+
break;
|
|
3164
|
+
case "Email":
|
|
3165
|
+
fieldSchema = import_zod4.z.email({ message });
|
|
3166
|
+
break;
|
|
3167
|
+
case "Password":
|
|
3168
|
+
fieldSchema = import_zod4.z.string({ message }).min(passwordLen, { message: `Password must be at least ${passwordLen} characters long` });
|
|
3169
|
+
break;
|
|
3170
|
+
case "Phone":
|
|
3171
|
+
fieldSchema = import_zod4.z.string().transform((val) => val.replace(/\D/g, "")).transform((val) => val.slice(-10)).refine((val) => {
|
|
3172
|
+
return val.length === 10;
|
|
3173
|
+
}, {
|
|
3174
|
+
message: "Phone number must be 10 digits long"
|
|
3175
|
+
});
|
|
3176
|
+
break;
|
|
3177
|
+
case "DatePicker":
|
|
3178
|
+
fieldSchema = import_zod4.z.iso.date({ message });
|
|
3179
|
+
break;
|
|
3180
|
+
case "FileInput":
|
|
3181
|
+
fieldSchema = import_zod4.z.instanceof(File, { message: "Please select a file" });
|
|
3182
|
+
if (f?.maxSize) {
|
|
3183
|
+
fieldSchema = fieldSchema.refine(
|
|
3184
|
+
(file) => file.size <= f.maxSize,
|
|
3185
|
+
{ message: `File size must be less than ${f.maxSize / 1024 / 1024}MB` }
|
|
3186
|
+
);
|
|
3187
|
+
}
|
|
3188
|
+
if (f?.acceptedTypes) {
|
|
3189
|
+
fieldSchema = fieldSchema.refine(
|
|
3190
|
+
(file) => f.acceptedTypes.includes(file.type),
|
|
3191
|
+
{ message: `File type must be one of: ${f.acceptedTypes.join(", ")}` }
|
|
3192
|
+
);
|
|
3193
|
+
}
|
|
3194
|
+
break;
|
|
3195
|
+
case "Checkbox":
|
|
3196
|
+
fieldSchema = import_zod4.z.boolean({ message });
|
|
3197
|
+
break;
|
|
3198
|
+
case "Dropdown":
|
|
3199
|
+
fieldSchema = import_zod4.z.string({ message });
|
|
3200
|
+
break;
|
|
3201
|
+
case "NumberInput":
|
|
3202
|
+
fieldSchema = import_zod4.z.number({ message });
|
|
3203
|
+
if (f?.min !== void 0) fieldSchema = fieldSchema.min(f.min);
|
|
3204
|
+
if (f?.max !== void 0) fieldSchema = fieldSchema.max(f.max);
|
|
3205
|
+
break;
|
|
3206
|
+
default:
|
|
3207
|
+
fieldSchema = import_zod4.z.any();
|
|
3208
|
+
}
|
|
3209
|
+
if (!f.isRequired) fieldSchema = fieldSchema.optional();
|
|
3210
|
+
acc[name] = fieldSchema;
|
|
3211
|
+
return acc;
|
|
3212
|
+
}, {});
|
|
3213
|
+
return import_zod4.z.object(fields);
|
|
3214
|
+
}
|
|
3215
|
+
var FormWrapper = ({
|
|
3216
|
+
validation,
|
|
3217
|
+
defaultValues,
|
|
3218
|
+
children,
|
|
3219
|
+
onSubmit,
|
|
3220
|
+
onReset
|
|
3221
|
+
}) => {
|
|
3222
|
+
const schema = (0, import_react17.useMemo)(() => {
|
|
3223
|
+
if (!validation || validation.length === 0) return null;
|
|
3224
|
+
return generateZodSchema2(validation);
|
|
3225
|
+
}, [validation]);
|
|
3226
|
+
const form = (0, import_react_hook_form2.useForm)({
|
|
3227
|
+
resolver: schema ? (0, import_zod3.zodResolver)(schema) : void 0,
|
|
3228
|
+
defaultValues
|
|
3229
|
+
});
|
|
3230
|
+
const formSubmit = (data) => {
|
|
3231
|
+
if (onSubmit) onSubmit(data);
|
|
3232
|
+
};
|
|
3233
|
+
const handleReset = () => {
|
|
3234
|
+
form.reset();
|
|
3235
|
+
if (onReset) onReset();
|
|
3236
|
+
};
|
|
3237
|
+
return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
|
|
3238
|
+
"form",
|
|
3239
|
+
{
|
|
3240
|
+
onSubmit: form.handleSubmit(formSubmit),
|
|
3241
|
+
onReset: handleReset,
|
|
3242
|
+
className: cn(
|
|
3243
|
+
"space-y-4 min-h-[100px] h-auto flex justify-between flex-col"
|
|
3244
|
+
),
|
|
3245
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("div", { className: "min-h-[50px]", children: typeof children === "function" ? children(form) : children })
|
|
3246
|
+
}
|
|
3247
|
+
);
|
|
3248
|
+
};
|
|
3031
3249
|
var Wrapper_default = FormWrapper;
|
|
3032
3250
|
// Annotate the CommonJS export names for ESM import in node:
|
|
3033
3251
|
0 && (module.exports = {
|
|
3034
3252
|
BarChart,
|
|
3253
|
+
Breadcrumb,
|
|
3035
3254
|
Button,
|
|
3255
|
+
ButtonGroup,
|
|
3036
3256
|
Checkbox,
|
|
3037
3257
|
Container,
|
|
3038
3258
|
DatePicker,
|
|
@@ -3043,19 +3263,17 @@ var Wrapper_default = FormWrapper;
|
|
|
3043
3263
|
FileInput,
|
|
3044
3264
|
FlexLayout,
|
|
3045
3265
|
Form,
|
|
3266
|
+
FormWrapper,
|
|
3046
3267
|
GridLayout,
|
|
3047
3268
|
Image,
|
|
3048
|
-
Logo,
|
|
3049
3269
|
Modal,
|
|
3050
3270
|
MultiCheckbox,
|
|
3051
3271
|
Navbar,
|
|
3052
|
-
Notification,
|
|
3053
3272
|
NumberInput,
|
|
3054
3273
|
Pagination,
|
|
3055
3274
|
Password,
|
|
3056
3275
|
Phone,
|
|
3057
3276
|
PieChart,
|
|
3058
|
-
Profile,
|
|
3059
3277
|
RadioGroup,
|
|
3060
3278
|
RichText,
|
|
3061
3279
|
Search,
|
|
@@ -3072,6 +3290,7 @@ var Wrapper_default = FormWrapper;
|
|
|
3072
3290
|
Typography,
|
|
3073
3291
|
URL,
|
|
3074
3292
|
cn,
|
|
3293
|
+
getInitials,
|
|
3075
3294
|
showSonnerToast,
|
|
3076
3295
|
stateReducer,
|
|
3077
3296
|
useAppState
|