@esic-lab/data-core-ui 0.0.60 → 0.0.61

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.mjs CHANGED
@@ -347,53 +347,97 @@ var require_buddhistEra = __commonJS({
347
347
  });
348
348
 
349
349
  // src/Button/PrimaryButton/PrimaryButton.tsx
350
- import { jsx, jsxs } from "react/jsx-runtime";
350
+ import { Button, ConfigProvider } from "antd";
351
+ import { jsx } from "react/jsx-runtime";
351
352
  function PrimaryButton({
352
353
  title,
353
354
  onClick,
354
- iconLeft,
355
- iconRight,
356
- bgColor = "bg-primary-500",
357
- textColor = "black",
358
- disabled
355
+ disabled,
356
+ iconPlacement = "start",
357
+ size = "large",
358
+ colorPrimary = "#4e61f6",
359
+ colorPrimaryHover = "#8895f9",
360
+ textColor = "#ffffff",
361
+ icon
359
362
  }) {
363
+ const textClass = size === "large" ? "body-1" : "body-3";
360
364
  return /* @__PURE__ */ jsx(
361
- "button",
365
+ ConfigProvider,
362
366
  {
363
- onClick,
364
- disabled,
365
- className: `flex justify-center w-full h-[42px] rounded-[6px] p-[10px] body-1 transition
366
- ${disabled ? "text-gray-400 bg-gray-100 cursor-not-allowed" : `${bgColor} text-${textColor} cursor-pointer
367
- hover:brightness-95 active:brightness-90`}`,
368
- children: /* @__PURE__ */ jsxs("div", { className: "flex justify-center items-center gap-[10px]", children: [
369
- iconLeft && /* @__PURE__ */ jsx("div", { children: iconLeft }),
370
- title,
371
- iconRight && /* @__PURE__ */ jsx("div", { children: iconRight })
372
- ] })
367
+ theme: {
368
+ token: {
369
+ colorPrimary,
370
+ colorPrimaryHover,
371
+ colorTextLightSolid: textColor
372
+ }
373
+ },
374
+ children: /* @__PURE__ */ jsx(
375
+ Button,
376
+ {
377
+ size,
378
+ onClick,
379
+ type: "primary",
380
+ className: textClass,
381
+ disabled,
382
+ icon,
383
+ iconPosition: iconPlacement,
384
+ children: title
385
+ }
386
+ )
373
387
  }
374
388
  );
375
389
  }
376
390
 
377
391
  // src/Button/SecondaryButton/SecondaryButton.tsx
378
- import { jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
379
- function SecondaryButton({ title, onClick, iconLeft, iconRight, disabled }) {
392
+ import { Button as Button2, ConfigProvider as ConfigProvider2 } from "antd";
393
+ import { jsx as jsx2 } from "react/jsx-runtime";
394
+ function SecondaryButton({
395
+ title,
396
+ onClick,
397
+ disabled,
398
+ iconPlacement = "start",
399
+ size = "large",
400
+ colorBgContainer = "#ffffff",
401
+ defaultHoverBorderColor = "#7181f8",
402
+ defaultHoverColor = "#7181f8",
403
+ textColor = "rgba(0,0,0,0.88)",
404
+ icon
405
+ }) {
406
+ const textClass = size === "large" ? "body-1" : "body-3";
380
407
  return /* @__PURE__ */ jsx2(
381
- "button",
408
+ ConfigProvider2,
382
409
  {
383
- onClick,
384
- disabled,
385
- className: `flex justify-center w-full h-[42px] rounded-[6px] p-[10px] border-[1px] body-1 transition ${disabled ? "text-gray-400 border-gray-400 bg-gray-100 cursor-not-allowed" : "cursor-pointer bg-white border-black text-black hover:bg-gray-100 active:bg-gray-200"}`,
386
- children: /* @__PURE__ */ jsxs2("div", { className: "flex justify-center items-center gap-[10px]", children: [
387
- iconLeft && /* @__PURE__ */ jsx2("div", { children: iconLeft }),
388
- title,
389
- iconRight && /* @__PURE__ */ jsx2("div", { children: iconRight })
390
- ] })
410
+ theme: {
411
+ components: {
412
+ Button: {
413
+ defaultHoverBorderColor,
414
+ defaultHoverColor
415
+ }
416
+ },
417
+ token: {
418
+ colorBgContainer,
419
+ colorText: textColor
420
+ }
421
+ },
422
+ children: /* @__PURE__ */ jsx2(
423
+ Button2,
424
+ {
425
+ size,
426
+ onClick,
427
+ type: "default",
428
+ className: textClass,
429
+ disabled,
430
+ icon,
431
+ iconPosition: iconPlacement,
432
+ children: title
433
+ }
434
+ )
391
435
  }
392
436
  );
393
437
  }
394
438
 
395
439
  // src/Button/GhostButton/GhostButton.tsx
396
- import { jsx as jsx3, jsxs as jsxs3 } from "react/jsx-runtime";
440
+ import { jsx as jsx3, jsxs } from "react/jsx-runtime";
397
441
  function GhostButton({ title, onClick, iconLeft, iconRight, disabled }) {
398
442
  return /* @__PURE__ */ jsx3(
399
443
  "button",
@@ -402,7 +446,7 @@ function GhostButton({ title, onClick, iconLeft, iconRight, disabled }) {
402
446
  disabled,
403
447
  className: `flex justify-center w-full h-[42px] rounded-[6px] p-[10px] body-1 transition
404
448
  ${disabled ? "text-gray-400 bg-gray-100 cursor-not-allowed" : "bg-[#E9E9E9] cursor-pointer hover:bg-[#d6d6d6] active:bg-[#c4c4c4]"}`,
405
- children: /* @__PURE__ */ jsxs3("div", { className: "flex justify-center items-center gap-[10px]", children: [
449
+ children: /* @__PURE__ */ jsxs("div", { className: "flex justify-center items-center gap-[10px]", children: [
406
450
  iconLeft && /* @__PURE__ */ jsx3("div", { children: iconLeft }),
407
451
  title,
408
452
  iconRight && /* @__PURE__ */ jsx3("div", { children: iconRight })
@@ -412,9 +456,9 @@ function GhostButton({ title, onClick, iconLeft, iconRight, disabled }) {
412
456
  }
413
457
 
414
458
  // src/Button/TabSelectionButton/TabSelectionButton.tsx
415
- import { jsx as jsx4, jsxs as jsxs4 } from "react/jsx-runtime";
459
+ import { jsx as jsx4, jsxs as jsxs2 } from "react/jsx-runtime";
416
460
  var TabSelectionButton = ({ title, now, onClickGoto }) => {
417
- return /* @__PURE__ */ jsxs4("div", { className: "flex subtitle-2", children: [
461
+ return /* @__PURE__ */ jsxs2("div", { className: "flex subtitle-2", children: [
418
462
  title.map((text) => /* @__PURE__ */ jsx4(
419
463
  "button",
420
464
  {
@@ -448,14 +492,14 @@ function Loader({ size = 25, color = "#000000" }) {
448
492
 
449
493
  // src/Checkbox/Checkbox/Checkbox.tsx
450
494
  import { IconCheck } from "@tabler/icons-react";
451
- import { jsx as jsx6, jsxs as jsxs5 } from "react/jsx-runtime";
495
+ import { jsx as jsx6, jsxs as jsxs3 } from "react/jsx-runtime";
452
496
  function Checkbox({ label, checked, onChange, disabled }) {
453
497
  const handleClick = () => {
454
498
  if (!disabled) {
455
499
  onChange(!checked);
456
500
  }
457
501
  };
458
- return /* @__PURE__ */ jsxs5(
502
+ return /* @__PURE__ */ jsxs3(
459
503
  "div",
460
504
  {
461
505
  className: `flex gap-[10px] items-center
@@ -523,23 +567,23 @@ function Radio({ selected, onChange, disabled }) {
523
567
  }
524
568
 
525
569
  // src/Radio/RadioGroup/RadioGroup.tsx
526
- import { jsx as jsx9, jsxs as jsxs6 } from "react/jsx-runtime";
570
+ import { jsx as jsx9, jsxs as jsxs4 } from "react/jsx-runtime";
527
571
  function RadioGroup({ options, value, onChange, alignment = "horizontal" }) {
528
- return /* @__PURE__ */ jsx9("div", { className: `flex gap-2 ${alignment === "vertical" ? "flex-col" : ""}`, children: options.map((opt) => /* @__PURE__ */ jsxs6("label", { className: "flex items-center gap-2 cursor-pointer", children: [
572
+ return /* @__PURE__ */ jsx9("div", { className: `flex gap-2 ${alignment === "vertical" ? "flex-col" : ""}`, children: options.map((opt) => /* @__PURE__ */ jsxs4("label", { className: "flex items-center gap-2 cursor-pointer", children: [
529
573
  /* @__PURE__ */ jsx9(Radio, { selected: value === opt.value, onChange: () => onChange(opt.value), disabled: opt.disabled }),
530
574
  /* @__PURE__ */ jsx9("span", { className: `body-1 ${opt.disabled ? "text-gray-400 cursor-not-allowed" : ""}`, children: opt.label })
531
575
  ] }, opt.value)) });
532
576
  }
533
577
 
534
578
  // src/Switch/Switch/Switch.tsx
535
- import { jsx as jsx10, jsxs as jsxs7 } from "react/jsx-runtime";
579
+ import { jsx as jsx10, jsxs as jsxs5 } from "react/jsx-runtime";
536
580
  function Switch({ label, checked, onChange, disabled }) {
537
581
  const handleClick = () => {
538
582
  if (!disabled) {
539
583
  onChange(!checked);
540
584
  }
541
585
  };
542
- return /* @__PURE__ */ jsxs7("div", { className: "flex flex-col gap-[10px]", children: [
586
+ return /* @__PURE__ */ jsxs5("div", { className: "flex flex-col gap-[10px]", children: [
543
587
  label && /* @__PURE__ */ jsx10("p", { className: `body-1 ${disabled ? "opacity-50 select-none" : ""}`, children: label }),
544
588
  /* @__PURE__ */ jsx10(
545
589
  "button",
@@ -566,7 +610,7 @@ function Switch({ label, checked, onChange, disabled }) {
566
610
  }
567
611
 
568
612
  // src/Switch/SwitchSelect/SwitchSelect.tsx
569
- import { jsx as jsx11, jsxs as jsxs8 } from "react/jsx-runtime";
613
+ import { jsx as jsx11, jsxs as jsxs6 } from "react/jsx-runtime";
570
614
  function SwitchSelect({
571
615
  option,
572
616
  onClick,
@@ -575,8 +619,8 @@ function SwitchSelect({
575
619
  required,
576
620
  color
577
621
  }) {
578
- return /* @__PURE__ */ jsxs8("div", { className: "flex flex-col container-input", children: [
579
- label && /* @__PURE__ */ jsxs8("p", { className: `body-1`, children: [
622
+ return /* @__PURE__ */ jsxs6("div", { className: "flex flex-col container-input", children: [
623
+ label && /* @__PURE__ */ jsxs6("p", { className: `body-1`, children: [
580
624
  label,
581
625
  " ",
582
626
  required && /* @__PURE__ */ jsx11("span", { className: "text-red-500", children: "*" })
@@ -599,12 +643,12 @@ function SwitchSelect({
599
643
 
600
644
  // src/NavBar/MenuNavBar/MenuNavBar.tsx
601
645
  import { useState } from "react";
602
- import { jsx as jsx12, jsxs as jsxs9 } from "react/jsx-runtime";
646
+ import { jsx as jsx12, jsxs as jsxs7 } from "react/jsx-runtime";
603
647
  function MenuNavBar({ menus, onClick }) {
604
648
  const [activePath, setActivePath] = useState("");
605
- return /* @__PURE__ */ jsx12("div", { className: "w-full h-full p-[10px] bg-white", children: menus?.map((menu, index) => /* @__PURE__ */ jsxs9("div", { className: `p-[10px] ${index !== 0 ? "mt-[10px]" : ""}`, children: [
649
+ return /* @__PURE__ */ jsx12("div", { className: "w-full h-full p-[10px] bg-white", children: menus?.map((menu, index) => /* @__PURE__ */ jsxs7("div", { className: `p-[10px] ${index !== 0 ? "mt-[10px]" : ""}`, children: [
606
650
  /* @__PURE__ */ jsx12("p", { className: "p-[10px] w-[202px] h-[47px] subtitle-1", children: menu.title }),
607
- menu?.subMenus.map((subMenu) => /* @__PURE__ */ jsxs9(
651
+ menu?.subMenus.map((subMenu) => /* @__PURE__ */ jsxs7(
608
652
  "div",
609
653
  {
610
654
  className: `group flex justify-center items-center gap-[10px] p-[10px] w-[202px] h-[47px] rounded-[6px] subtitle-2 cursor-pointer
@@ -627,12 +671,12 @@ function MenuNavBar({ menus, onClick }) {
627
671
  // src/NavBar/MenuNavBar/Sidebar.tsx
628
672
  import { IconChevronLeftPipe, IconChevronRightPipe } from "@tabler/icons-react";
629
673
  import { createContext, useContext, useState as useState2 } from "react";
630
- import { jsx as jsx13, jsxs as jsxs10 } from "react/jsx-runtime";
674
+ import { jsx as jsx13, jsxs as jsxs8 } from "react/jsx-runtime";
631
675
  var SidebarContext = createContext({ expanded: false });
632
676
  function Sidebar({ children, logo }) {
633
677
  const [expanded, setExpanded] = useState2(true);
634
- return /* @__PURE__ */ jsx13("aside", { className: "h-screen", children: /* @__PURE__ */ jsxs10("nav", { className: `h-full flex flex-col bg-white border-r shadow-sm duration-150 ${expanded ? "w-64" : "w-16"}`, children: [
635
- /* @__PURE__ */ jsxs10("div", { className: "p-4 pb-2 flex justify-center items-center", children: [
678
+ return /* @__PURE__ */ jsx13("aside", { className: "h-screen", children: /* @__PURE__ */ jsxs8("nav", { className: `h-full flex flex-col bg-white border-r shadow-sm duration-150 ${expanded ? "w-64" : "w-16"}`, children: [
679
+ /* @__PURE__ */ jsxs8("div", { className: "p-4 pb-2 flex justify-center items-center", children: [
636
680
  expanded && logo && /* @__PURE__ */ jsx13("img", { src: logo, width: 120, className: "ml-auto" }),
637
681
  /* @__PURE__ */ jsx13(
638
682
  "button",
@@ -649,14 +693,14 @@ function Sidebar({ children, logo }) {
649
693
 
650
694
  // src/NavBar/TopNavBar/TopNavBar.tsx
651
695
  import { IconBellRinging } from "@tabler/icons-react";
652
- import { jsx as jsx14, jsxs as jsxs11 } from "react/jsx-runtime";
696
+ import { jsx as jsx14, jsxs as jsxs9 } from "react/jsx-runtime";
653
697
  function TopNavBar({ onClickNoti, logo }) {
654
- return /* @__PURE__ */ jsxs11("div", { className: "w-full h-full flex", children: [
655
- /* @__PURE__ */ jsxs11("div", { className: "flex items-center gap-[20px] p-[10px]", children: [
698
+ return /* @__PURE__ */ jsxs9("div", { className: "w-full h-full flex", children: [
699
+ /* @__PURE__ */ jsxs9("div", { className: "flex items-center gap-[20px] p-[10px]", children: [
656
700
  logo,
657
701
  /* @__PURE__ */ jsx14("p", { className: "subtitle-1", children: "Project Management" })
658
702
  ] }),
659
- /* @__PURE__ */ jsxs11("div", { className: "flex items-center ml-auto gap-[20px] p-[10px]", children: [
703
+ /* @__PURE__ */ jsxs9("div", { className: "flex items-center ml-auto gap-[20px] p-[10px]", children: [
660
704
  /* @__PURE__ */ jsx14("div", { children: "Search" }),
661
705
  /* @__PURE__ */ jsx14("div", { children: /* @__PURE__ */ jsx14(IconBellRinging, { onClick: onClickNoti, className: "cursor-pointer" }) }),
662
706
  /* @__PURE__ */ jsx14("div", { className: "w-[40px] h-[40px] bg-gray-400 rounded-full cursor-pointer" })
@@ -671,7 +715,7 @@ import { useState as useState3 } from "react";
671
715
  // src/Table/Pagination/Pagination.tsx
672
716
  import { IconArrowLeft, IconArrowRight } from "@tabler/icons-react";
673
717
  import { useMemo } from "react";
674
- import { jsx as jsx15, jsxs as jsxs12 } from "react/jsx-runtime";
718
+ import { jsx as jsx15, jsxs as jsxs10 } from "react/jsx-runtime";
675
719
  function Pagination({ totalItems, itemsPerPage, currentPage, onPageChange }) {
676
720
  const totalPages = Math.ceil(totalItems / itemsPerPage);
677
721
  const getPages = useMemo(() => {
@@ -695,8 +739,8 @@ function Pagination({ totalItems, itemsPerPage, currentPage, onPageChange }) {
695
739
  return pages;
696
740
  }, [totalPages, currentPage]);
697
741
  if (totalPages <= 1) return null;
698
- return /* @__PURE__ */ jsxs12("div", { className: "flex items-center justify-center gap-2 mt-4 body-1", children: [
699
- /* @__PURE__ */ jsxs12(
742
+ return /* @__PURE__ */ jsxs10("div", { className: "flex items-center justify-center gap-2 mt-4 body-1", children: [
743
+ /* @__PURE__ */ jsxs10(
700
744
  "button",
701
745
  {
702
746
  className: "px-3 py-1 disabled:opacity-50 flex gap-[8px] cursor-pointer",
@@ -720,7 +764,7 @@ function Pagination({ totalItems, itemsPerPage, currentPage, onPageChange }) {
720
764
  i
721
765
  )
722
766
  ),
723
- /* @__PURE__ */ jsxs12(
767
+ /* @__PURE__ */ jsxs10(
724
768
  "button",
725
769
  {
726
770
  className: "px-3 py-1 disabled:opacity-50 flex gap-[8px] cursor-pointer",
@@ -736,7 +780,7 @@ function Pagination({ totalItems, itemsPerPage, currentPage, onPageChange }) {
736
780
  }
737
781
 
738
782
  // src/Table/DataTable/DataTable.tsx
739
- import { Fragment, jsx as jsx16, jsxs as jsxs13 } from "react/jsx-runtime";
783
+ import { Fragment, jsx as jsx16, jsxs as jsxs11 } from "react/jsx-runtime";
740
784
  function DataTable({ columns, data, onSort, isLoading }) {
741
785
  const cols = Math.max(1, columns.length);
742
786
  const gridClass = "grid [grid-template-columns:repeat(var(--cols),minmax(0,1fr))]";
@@ -748,13 +792,13 @@ function DataTable({ columns, data, onSort, isLoading }) {
748
792
  onSort();
749
793
  }
750
794
  };
751
- return /* @__PURE__ */ jsxs13("div", { className: "border rounded-md w-full h-full", children: [
795
+ return /* @__PURE__ */ jsxs11("div", { className: "border rounded-md w-full h-full", children: [
752
796
  /* @__PURE__ */ jsx16("div", { className: `${gridClass} font-semibold border-b border-gray-200`, style: { ["--cols"]: cols }, children: columns.map((col, i) => {
753
797
  const isActive = sortConfig?.key === col.accessor;
754
798
  const direction = isActive ? sortConfig?.direction : null;
755
- return /* @__PURE__ */ jsxs13("div", { className: "flex items-center gap-[8px] py-[8px] px-[16px] body-4 truncate", children: [
799
+ return /* @__PURE__ */ jsxs11("div", { className: "flex items-center gap-[8px] py-[8px] px-[16px] body-4 truncate", children: [
756
800
  col.header,
757
- col.sortable && /* @__PURE__ */ jsxs13(Fragment, { children: [
801
+ col.sortable && /* @__PURE__ */ jsxs11(Fragment, { children: [
758
802
  direction === null && /* @__PURE__ */ jsx16(
759
803
  IconSelector,
760
804
  {
@@ -796,7 +840,7 @@ function DataTable({ columns, data, onSort, isLoading }) {
796
840
  }
797
841
 
798
842
  // src/Table/DataTable/AntDataTable.tsx
799
- import { ConfigProvider, Table } from "antd";
843
+ import { ConfigProvider as ConfigProvider3, Table } from "antd";
800
844
  import { useState as useState4 } from "react";
801
845
  import { Fragment as Fragment2, jsx as jsx17 } from "react/jsx-runtime";
802
846
  function AntDataTable({
@@ -825,7 +869,7 @@ function AntDataTable({
825
869
  onFilter(filters);
826
870
  };
827
871
  return /* @__PURE__ */ jsx17(Fragment2, { children: /* @__PURE__ */ jsx17(
828
- ConfigProvider,
872
+ ConfigProvider3,
829
873
  {
830
874
  theme: {
831
875
  components: {},
@@ -858,7 +902,7 @@ import timeGridPlugin from "@fullcalendar/timegrid";
858
902
  import interactionPlugin from "@fullcalendar/interaction";
859
903
  import thLocale from "@fullcalendar/core/locales/th";
860
904
  import { IconChevronLeft, IconChevronRight, IconX } from "@tabler/icons-react";
861
- import { Fragment as Fragment3, jsx as jsx18, jsxs as jsxs14 } from "react/jsx-runtime";
905
+ import { Fragment as Fragment3, jsx as jsx18, jsxs as jsxs12 } from "react/jsx-runtime";
862
906
  function Calendar({ events }) {
863
907
  const calendarRef = useRef(null);
864
908
  const [monthTitle, setMonthTitle] = useState5("");
@@ -877,10 +921,10 @@ function Calendar({ events }) {
877
921
  useEffect(() => {
878
922
  updateTitle();
879
923
  }, []);
880
- return /* @__PURE__ */ jsxs14("div", { className: "fc w-full h-full relative z-10", children: [
881
- /* @__PURE__ */ jsxs14("div", { className: "flex mb-[8px]", children: [
924
+ return /* @__PURE__ */ jsxs12("div", { className: "fc w-full h-full relative z-10", children: [
925
+ /* @__PURE__ */ jsxs12("div", { className: "flex mb-[8px]", children: [
882
926
  /* @__PURE__ */ jsx18("p", { className: "headline-5", children: monthTitle }),
883
- /* @__PURE__ */ jsxs14("div", { className: "flex gap-[10px] ml-auto", children: [
927
+ /* @__PURE__ */ jsxs12("div", { className: "flex gap-[10px] ml-auto", children: [
884
928
  /* @__PURE__ */ jsx18(
885
929
  "p",
886
930
  {
@@ -987,15 +1031,15 @@ function Calendar({ events }) {
987
1031
  ] });
988
1032
  }
989
1033
  function EventPopUp({ event, onClose }) {
990
- return /* @__PURE__ */ jsxs14("div", { className: "w-[500px] h-auto rounded-2xl bg-white relative z-50 shadow-2xl overflow-hidden", children: [
1034
+ return /* @__PURE__ */ jsxs12("div", { className: "w-[500px] h-auto rounded-2xl bg-white relative z-50 shadow-2xl overflow-hidden", children: [
991
1035
  /* @__PURE__ */ jsx18("button", { className: "absolute top-3 right-3 rounded-full p-1 hover:bg-gray-200 transition", onClick: onClose, children: /* @__PURE__ */ jsx18(IconX, { className: "w-6 h-6 text-gray-600" }) }),
992
1036
  /* @__PURE__ */ jsx18("div", { className: "bg-red-400 text-left text-white px-6 py-4 headline-5", children: /* @__PURE__ */ jsx18("h2", { className: "text-lg font-semibold", children: event.title }) }),
993
- /* @__PURE__ */ jsxs14("div", { className: "flex flex-col w-full p-6 gap-3 text-gray-700 body-3", children: [
994
- /* @__PURE__ */ jsxs14("p", { children: [
1037
+ /* @__PURE__ */ jsxs12("div", { className: "flex flex-col w-full p-6 gap-3 text-gray-700 body-3", children: [
1038
+ /* @__PURE__ */ jsxs12("p", { children: [
995
1039
  /* @__PURE__ */ jsx18("span", { className: "font-medium", children: "\u0E40\u0E23\u0E34\u0E48\u0E21: " }),
996
1040
  event?.start?.toLocaleString?.() || String(event?.start)
997
1041
  ] }),
998
- /* @__PURE__ */ jsxs14("p", { children: [
1042
+ /* @__PURE__ */ jsxs12("p", { children: [
999
1043
  /* @__PURE__ */ jsx18("span", { className: "font-medium", children: "\u0E2A\u0E34\u0E49\u0E19\u0E2A\u0E38\u0E14: " }),
1000
1044
  event?.end?.toLocaleString?.() || String(event?.end)
1001
1045
  ] }),
@@ -1007,7 +1051,7 @@ function EventPopUp({ event, onClose }) {
1007
1051
  // src/Input/TextInput/TextInput.tsx
1008
1052
  import { IconEye, IconEyeOff } from "@tabler/icons-react";
1009
1053
  import { useState as useState6 } from "react";
1010
- import { jsx as jsx19, jsxs as jsxs15 } from "react/jsx-runtime";
1054
+ import { jsx as jsx19, jsxs as jsxs13 } from "react/jsx-runtime";
1011
1055
  function TextInput({
1012
1056
  label,
1013
1057
  placeholder,
@@ -1024,12 +1068,12 @@ function TextInput({
1024
1068
  setShowPassword(!showPassword);
1025
1069
  };
1026
1070
  const inputType = type === "password" ? showPassword ? "text" : "password" : "text";
1027
- return /* @__PURE__ */ jsxs15("div", { children: [
1028
- label && /* @__PURE__ */ jsxs15("p", { className: "body-1 mb-[8px]", children: [
1071
+ return /* @__PURE__ */ jsxs13("div", { children: [
1072
+ label && /* @__PURE__ */ jsxs13("p", { className: "body-1 mb-[8px]", children: [
1029
1073
  label,
1030
1074
  required && /* @__PURE__ */ jsx19("span", { className: "text-red-500", children: "\xA0*" })
1031
1075
  ] }),
1032
- /* @__PURE__ */ jsxs15(
1076
+ /* @__PURE__ */ jsxs13(
1033
1077
  "div",
1034
1078
  {
1035
1079
  className: `border-[1px] rounded-[8px] w-full h-[40px] flex justify-center items-center
@@ -1057,8 +1101,8 @@ function TextInput({
1057
1101
  }
1058
1102
 
1059
1103
  // src/Input/TextArea/TextArea.tsx
1060
- import { ConfigProvider as ConfigProvider2, Input } from "antd";
1061
- import { Fragment as Fragment4, jsx as jsx20, jsxs as jsxs16 } from "react/jsx-runtime";
1104
+ import { ConfigProvider as ConfigProvider4, Input } from "antd";
1105
+ import { Fragment as Fragment4, jsx as jsx20, jsxs as jsxs14 } from "react/jsx-runtime";
1062
1106
  var { TextArea } = Input;
1063
1107
  function TextAreaInput({
1064
1108
  label,
@@ -1074,7 +1118,7 @@ function TextAreaInput({
1074
1118
  disabled
1075
1119
  }) {
1076
1120
  return /* @__PURE__ */ jsx20(Fragment4, { children: /* @__PURE__ */ jsx20(
1077
- ConfigProvider2,
1121
+ ConfigProvider4,
1078
1122
  {
1079
1123
  theme: {
1080
1124
  components: {},
@@ -1083,8 +1127,8 @@ function TextAreaInput({
1083
1127
  fontSize: 16
1084
1128
  }
1085
1129
  },
1086
- children: /* @__PURE__ */ jsxs16("div", { children: [
1087
- label && /* @__PURE__ */ jsxs16("p", { className: "body-1 mb-[8px]", children: [
1130
+ children: /* @__PURE__ */ jsxs14("div", { children: [
1131
+ label && /* @__PURE__ */ jsxs14("p", { className: "body-1 mb-[8px]", children: [
1088
1132
  label,
1089
1133
  " ",
1090
1134
  required && /* @__PURE__ */ jsx20("span", { className: "text-red-500", children: "\xA0*" })
@@ -1112,8 +1156,8 @@ function TextAreaInput({
1112
1156
  }
1113
1157
 
1114
1158
  // src/Input/InputField/InputField.tsx
1115
- import { ConfigProvider as ConfigProvider3, Input as Input2, Space } from "antd";
1116
- import { jsx as jsx21, jsxs as jsxs17 } from "react/jsx-runtime";
1159
+ import { ConfigProvider as ConfigProvider5, Input as Input2, Space } from "antd";
1160
+ import { jsx as jsx21, jsxs as jsxs15 } from "react/jsx-runtime";
1117
1161
  function InputField({
1118
1162
  value,
1119
1163
  onChange,
@@ -1130,20 +1174,20 @@ function InputField({
1130
1174
  statickey
1131
1175
  }) {
1132
1176
  return /* @__PURE__ */ jsx21(
1133
- ConfigProvider3,
1177
+ ConfigProvider5,
1134
1178
  {
1135
1179
  theme: {
1136
1180
  token: {
1137
1181
  fontFamily: "Kanit"
1138
1182
  }
1139
1183
  },
1140
- children: /* @__PURE__ */ jsxs17("div", { className: "container-input", children: [
1141
- /* @__PURE__ */ jsxs17("div", { children: [
1184
+ children: /* @__PURE__ */ jsxs15("div", { className: "container-input", children: [
1185
+ /* @__PURE__ */ jsxs15("div", { children: [
1142
1186
  /* @__PURE__ */ jsx21("span", { className: "body-1", children: label }),
1143
1187
  " ",
1144
1188
  required && /* @__PURE__ */ jsx21("span", { className: "text-red-500", children: "*" })
1145
1189
  ] }),
1146
- /* @__PURE__ */ jsxs17(Space.Compact, { children: [
1190
+ /* @__PURE__ */ jsxs15(Space.Compact, { children: [
1147
1191
  statickey && /* @__PURE__ */ jsx21("span", { className: "items-center flex px-2 bg-gray-300 rounded-l-md body-1", children: statickey }),
1148
1192
  /* @__PURE__ */ jsx21(
1149
1193
  Input2,
@@ -1168,8 +1212,8 @@ function InputField({
1168
1212
  }
1169
1213
 
1170
1214
  // src/Input/InputFieldNumber/InputFieldNumber.tsx
1171
- import { ConfigProvider as ConfigProvider4, InputNumber } from "antd";
1172
- import { jsx as jsx22, jsxs as jsxs18 } from "react/jsx-runtime";
1215
+ import { ConfigProvider as ConfigProvider6, InputNumber } from "antd";
1216
+ import { jsx as jsx22, jsxs as jsxs16 } from "react/jsx-runtime";
1173
1217
  function InputFieldNumber({
1174
1218
  value,
1175
1219
  onChange,
@@ -1191,15 +1235,15 @@ function InputFieldNumber({
1191
1235
  parser
1192
1236
  }) {
1193
1237
  return /* @__PURE__ */ jsx22(
1194
- ConfigProvider4,
1238
+ ConfigProvider6,
1195
1239
  {
1196
1240
  theme: {
1197
1241
  token: {
1198
1242
  fontFamily: "Kanit"
1199
1243
  }
1200
1244
  },
1201
- children: /* @__PURE__ */ jsxs18("div", { className: "container-input", children: [
1202
- /* @__PURE__ */ jsxs18("div", { children: [
1245
+ children: /* @__PURE__ */ jsxs16("div", { className: "container-input", children: [
1246
+ /* @__PURE__ */ jsxs16("div", { children: [
1203
1247
  /* @__PURE__ */ jsx22("span", { className: "body-1", children: label }),
1204
1248
  " ",
1205
1249
  required && /* @__PURE__ */ jsx22("span", { className: "text-red-500", children: "*" })
@@ -1220,8 +1264,17 @@ function InputFieldNumber({
1220
1264
  controls,
1221
1265
  size,
1222
1266
  changeOnWheel,
1223
- formatter,
1224
- parser
1267
+ formatter: formatter ?? ((value2) => {
1268
+ if (value2 === void 0 || value2 === null || value2 === "")
1269
+ return "";
1270
+ const num = Number(value2);
1271
+ if (isNaN(num)) return "";
1272
+ return num.toFixed(2).replace(/\B(?=(\d{3})+(?!\d))/g, ",");
1273
+ }),
1274
+ parser: parser ?? ((value2) => {
1275
+ if (!value2) return "";
1276
+ return value2.replace(/,/g, "");
1277
+ })
1225
1278
  }
1226
1279
  ),
1227
1280
  error && /* @__PURE__ */ jsx22("p", { className: "text-red-500 caption-1", children: error })
@@ -1237,7 +1290,7 @@ var import_buddhistEra = __toESM(require_buddhistEra());
1237
1290
  import { useState as useState7, useRef as useRef2, useEffect as useEffect2 } from "react";
1238
1291
  import { format } from "date-fns";
1239
1292
  import { th as thFns } from "date-fns/locale";
1240
- import { jsx as jsx23, jsxs as jsxs19 } from "react/jsx-runtime";
1293
+ import { jsx as jsx23, jsxs as jsxs17 } from "react/jsx-runtime";
1241
1294
  import_dayjs.default.extend(import_buddhistEra.default);
1242
1295
  import_dayjs.default.locale("th");
1243
1296
  function DatePickerBasic({
@@ -1301,8 +1354,8 @@ function DatePickerBasic({
1301
1354
  document.addEventListener("mousedown", handleClickOutside);
1302
1355
  return () => document.removeEventListener("mousedown", handleClickOutside);
1303
1356
  }, []);
1304
- return /* @__PURE__ */ jsxs19("div", { ref: wrapperRef, style: { fontFamily: "Kanit", fontSize: 16 }, className: "relative w-full", children: [
1305
- /* @__PURE__ */ jsxs19("div", { className: "mb-1", children: [
1357
+ return /* @__PURE__ */ jsxs17("div", { ref: wrapperRef, style: { fontFamily: "Kanit", fontSize: 16 }, className: "relative w-full", children: [
1358
+ /* @__PURE__ */ jsxs17("div", { className: "mb-1", children: [
1306
1359
  /* @__PURE__ */ jsx23("span", { className: "body-1", children: label }),
1307
1360
  required && /* @__PURE__ */ jsx23("span", { className: "text-red-500 ml-1", children: "*" })
1308
1361
  ] }),
@@ -1314,13 +1367,13 @@ function DatePickerBasic({
1314
1367
  children: /* @__PURE__ */ jsx23("div", { className: "flex-1", children: value ? formatThaiBE(value) : /* @__PURE__ */ jsx23("span", { className: "text-gray-400", children: placeholder }) })
1315
1368
  }
1316
1369
  ),
1317
- open && /* @__PURE__ */ jsxs19(
1370
+ open && /* @__PURE__ */ jsxs17(
1318
1371
  "div",
1319
1372
  {
1320
1373
  className: "absolute z-50 mt-2 w-80 p-4 bg-white shadow-xl rounded-lg border animate-fade-in",
1321
1374
  style: { fontFamily: "Kanit", fontSize: 16 },
1322
1375
  children: [
1323
- /* @__PURE__ */ jsxs19("div", { className: "flex justify-between items-center mb-3", children: [
1376
+ /* @__PURE__ */ jsxs17("div", { className: "flex justify-between items-center mb-3", children: [
1324
1377
  /* @__PURE__ */ jsx23(
1325
1378
  "button",
1326
1379
  {
@@ -1329,7 +1382,7 @@ function DatePickerBasic({
1329
1382
  children: "\u25C0"
1330
1383
  }
1331
1384
  ),
1332
- /* @__PURE__ */ jsxs19("div", { className: "font-semibold text-lg text-gray-700", children: [
1385
+ /* @__PURE__ */ jsxs17("div", { className: "font-semibold text-lg text-gray-700", children: [
1333
1386
  monthNames[calendar.month()],
1334
1387
  " ",
1335
1388
  calendar.year() + 543
@@ -1337,7 +1390,7 @@ function DatePickerBasic({
1337
1390
  /* @__PURE__ */ jsx23("button", { onClick: () => setCalendar(calendar.add(1, "month")), className: "px-2 hover:bg-gray-100 rounded", children: "\u25B6" })
1338
1391
  ] }),
1339
1392
  /* @__PURE__ */ jsx23("div", { className: "grid grid-cols-7 text-center text-gray-500 text-sm mb-2 font-medium", children: ["\u0E2D\u0E32", "\u0E08", "\u0E2D", "\u0E1E", "\u0E1E\u0E24", "\u0E28", "\u0E2A"].map((d) => /* @__PURE__ */ jsx23("div", { children: d }, d)) }),
1340
- /* @__PURE__ */ jsxs19("div", { className: "grid grid-cols-7 gap-1 text-center", children: [
1393
+ /* @__PURE__ */ jsxs17("div", { className: "grid grid-cols-7 gap-1 text-center", children: [
1341
1394
  Array(firstDayOfMonth).fill(null).map((_, i) => /* @__PURE__ */ jsx23("div", {}, `empty-${i}`)),
1342
1395
  Array.from({ length: daysInMonth }, (_, i) => i + 1).map((d) => {
1343
1396
  const dateObj = calendar.date(d);
@@ -1385,7 +1438,7 @@ var import_buddhistEra2 = __toESM(require_buddhistEra());
1385
1438
  import { useState as useState8, useRef as useRef3, useEffect as useEffect3 } from "react";
1386
1439
  import { format as format2 } from "date-fns";
1387
1440
  import { th as thFns2 } from "date-fns/locale";
1388
- import { jsx as jsx24, jsxs as jsxs20 } from "react/jsx-runtime";
1441
+ import { jsx as jsx24, jsxs as jsxs18 } from "react/jsx-runtime";
1389
1442
  import_dayjs2.default.extend(import_buddhistEra2.default);
1390
1443
  import_dayjs2.default.locale("th");
1391
1444
  function DatePickerRange({
@@ -1467,12 +1520,12 @@ function DatePickerRange({
1467
1520
  clipRule: "evenodd"
1468
1521
  }
1469
1522
  ) });
1470
- return /* @__PURE__ */ jsxs20("div", { ref: wrapperRef, style: { fontFamily: "Kanit", fontSize: 16 }, className: "relative w-full", children: [
1471
- /* @__PURE__ */ jsxs20("div", { className: "mb-1", children: [
1523
+ return /* @__PURE__ */ jsxs18("div", { ref: wrapperRef, style: { fontFamily: "Kanit", fontSize: 16 }, className: "relative w-full", children: [
1524
+ /* @__PURE__ */ jsxs18("div", { className: "mb-1", children: [
1472
1525
  /* @__PURE__ */ jsx24("span", { className: "body-1", children: label }),
1473
1526
  required && /* @__PURE__ */ jsx24("span", { className: "text-red-500 ml-1", children: "*" })
1474
1527
  ] }),
1475
- /* @__PURE__ */ jsxs20(
1528
+ /* @__PURE__ */ jsxs18(
1476
1529
  "div",
1477
1530
  {
1478
1531
  className: `border rounded px-3 py-2 cursor-pointer bg-white flex items-center justify-between gap-2 ${disabled ? "opacity-50 cursor-not-allowed" : ""} ${error ? "border-red-500" : "border-gray-300"}`,
@@ -1484,13 +1537,13 @@ function DatePickerRange({
1484
1537
  ]
1485
1538
  }
1486
1539
  ),
1487
- open && /* @__PURE__ */ jsxs20(
1540
+ open && /* @__PURE__ */ jsxs18(
1488
1541
  "div",
1489
1542
  {
1490
1543
  className: "absolute z-50 mt-2 w-80 p-4 bg-white shadow-xl rounded-lg border animate-fade-in right-0 left-0 mx-auto sm:mx-0 sm:left-auto sm:right-auto",
1491
1544
  style: { fontFamily: "Kanit", fontSize: 16 },
1492
1545
  children: [
1493
- /* @__PURE__ */ jsxs20("div", { className: "flex justify-between items-center mb-3", children: [
1546
+ /* @__PURE__ */ jsxs18("div", { className: "flex justify-between items-center mb-3", children: [
1494
1547
  /* @__PURE__ */ jsx24(
1495
1548
  "button",
1496
1549
  {
@@ -1499,7 +1552,7 @@ function DatePickerRange({
1499
1552
  children: "\u25C0"
1500
1553
  }
1501
1554
  ),
1502
- /* @__PURE__ */ jsxs20("div", { className: "font-semibold text-lg text-gray-700", children: [
1555
+ /* @__PURE__ */ jsxs18("div", { className: "font-semibold text-lg text-gray-700", children: [
1503
1556
  monthNames[calendar.month()],
1504
1557
  " ",
1505
1558
  calendar.year() + 543
@@ -1507,7 +1560,7 @@ function DatePickerRange({
1507
1560
  /* @__PURE__ */ jsx24("button", { onClick: () => setCalendar(calendar.add(1, "month")), className: "px-2 hover:bg-gray-100 rounded", children: "\u25B6" })
1508
1561
  ] }),
1509
1562
  /* @__PURE__ */ jsx24("div", { className: "grid grid-cols-7 text-center text-gray-500 text-sm mb-2 font-medium", children: ["\u0E2D\u0E32", "\u0E08", "\u0E2D", "\u0E1E", "\u0E1E\u0E24", "\u0E28", "\u0E2A"].map((d) => /* @__PURE__ */ jsx24("div", { children: d }, d)) }),
1510
- /* @__PURE__ */ jsxs20("div", { className: "grid grid-cols-7 gap-y-1 text-center", children: [
1563
+ /* @__PURE__ */ jsxs18("div", { className: "grid grid-cols-7 gap-y-1 text-center", children: [
1511
1564
  Array(firstDayOfMonth).fill(null).map((_, i) => /* @__PURE__ */ jsx24("div", {}, `empty-${i}`)),
1512
1565
  Array.from({ length: daysInMonth }, (_, i) => i + 1).map((d) => {
1513
1566
  const currentObj = calendar.date(d);
@@ -1554,8 +1607,8 @@ function DatePickerRange({
1554
1607
  }
1555
1608
 
1556
1609
  // src/ColorPicker/ColorPickerBasic/ColorPicker.tsx
1557
- import { ConfigProvider as ConfigProvider5, ColorPicker } from "antd";
1558
- import { jsx as jsx25, jsxs as jsxs21 } from "react/jsx-runtime";
1610
+ import { ConfigProvider as ConfigProvider7, ColorPicker } from "antd";
1611
+ import { jsx as jsx25, jsxs as jsxs19 } from "react/jsx-runtime";
1559
1612
  function ColorPickerBasic({
1560
1613
  value,
1561
1614
  onChange,
@@ -1569,7 +1622,7 @@ function ColorPickerBasic({
1569
1622
  placeholder = "\u0E01\u0E23\u0E38\u0E13\u0E32\u0E40\u0E25\u0E37\u0E2D\u0E01\u0E2A\u0E35"
1570
1623
  }) {
1571
1624
  return /* @__PURE__ */ jsx25(
1572
- ConfigProvider5,
1625
+ ConfigProvider7,
1573
1626
  {
1574
1627
  theme: {
1575
1628
  token: {
@@ -1577,8 +1630,8 @@ function ColorPickerBasic({
1577
1630
  fontSize: 16
1578
1631
  }
1579
1632
  },
1580
- children: /* @__PURE__ */ jsxs21("div", { className: "container-input", children: [
1581
- /* @__PURE__ */ jsxs21("div", { children: [
1633
+ children: /* @__PURE__ */ jsxs19("div", { className: "container-input", children: [
1634
+ /* @__PURE__ */ jsxs19("div", { children: [
1582
1635
  /* @__PURE__ */ jsx25("span", { className: "body-1", children: label }),
1583
1636
  " ",
1584
1637
  required && /* @__PURE__ */ jsx25("span", { className: "text-red-500", children: "*" })
@@ -1597,7 +1650,7 @@ function ColorPickerBasic({
1597
1650
  if (!value) {
1598
1651
  return /* @__PURE__ */ jsx25("span", { children: placeholder });
1599
1652
  }
1600
- return /* @__PURE__ */ jsxs21("span", { children: [
1653
+ return /* @__PURE__ */ jsxs19("span", { children: [
1601
1654
  "(",
1602
1655
  hex,
1603
1656
  ")"
@@ -1613,7 +1666,7 @@ function ColorPickerBasic({
1613
1666
  }
1614
1667
 
1615
1668
  // src/ColorPicker/ColorPalettePickerBasic/ColorPalettePickerBasic.tsx
1616
- import { ConfigProvider as ConfigProvider6, ColorPicker as ColorPicker2, theme } from "antd";
1669
+ import { ConfigProvider as ConfigProvider8, ColorPicker as ColorPicker2, theme } from "antd";
1617
1670
 
1618
1671
  // node_modules/@babel/runtime/helpers/esm/typeof.js
1619
1672
  function _typeof(o) {
@@ -2315,7 +2368,7 @@ var greyDark = ["#151515", "#1f1f1f", "#2d2d2d", "#393939", "#494949", "#5a5a5a"
2315
2368
  greyDark.primary = greyDark[5];
2316
2369
 
2317
2370
  // src/ColorPicker/ColorPalettePickerBasic/ColorPalettePickerBasic.tsx
2318
- import { jsx as jsx26, jsxs as jsxs22 } from "react/jsx-runtime";
2371
+ import { jsx as jsx26, jsxs as jsxs20 } from "react/jsx-runtime";
2319
2372
  function genPresets(presets = presetPalettes) {
2320
2373
  return Object.entries(presets).map(([label, colors]) => ({
2321
2374
  label,
@@ -2343,7 +2396,7 @@ function ColorPalettePickerBasic({
2343
2396
  green
2344
2397
  });
2345
2398
  return /* @__PURE__ */ jsx26(
2346
- ConfigProvider6,
2399
+ ConfigProvider8,
2347
2400
  {
2348
2401
  theme: {
2349
2402
  token: {
@@ -2351,8 +2404,8 @@ function ColorPalettePickerBasic({
2351
2404
  fontSize: 16
2352
2405
  }
2353
2406
  },
2354
- children: /* @__PURE__ */ jsxs22("div", { className: "container-input", children: [
2355
- /* @__PURE__ */ jsxs22("div", { children: [
2407
+ children: /* @__PURE__ */ jsxs20("div", { className: "container-input", children: [
2408
+ /* @__PURE__ */ jsxs20("div", { children: [
2356
2409
  /* @__PURE__ */ jsx26("span", { className: "body-1", children: label }),
2357
2410
  " ",
2358
2411
  required && /* @__PURE__ */ jsx26("span", { className: "text-red-500", children: "*" })
@@ -2372,7 +2425,7 @@ function ColorPalettePickerBasic({
2372
2425
  if (!value) {
2373
2426
  return /* @__PURE__ */ jsx26("span", { children: placeholder });
2374
2427
  }
2375
- return /* @__PURE__ */ jsxs22("span", { children: [
2428
+ return /* @__PURE__ */ jsxs20("span", { children: [
2376
2429
  "(",
2377
2430
  hex,
2378
2431
  ")"
@@ -2389,8 +2442,8 @@ function ColorPalettePickerBasic({
2389
2442
  }
2390
2443
 
2391
2444
  // src/Select/SelectField/SelectField.tsx
2392
- import { Select, ConfigProvider as ConfigProvider7 } from "antd";
2393
- import { jsx as jsx27, jsxs as jsxs23 } from "react/jsx-runtime";
2445
+ import { Select, ConfigProvider as ConfigProvider9 } from "antd";
2446
+ import { jsx as jsx27, jsxs as jsxs21 } from "react/jsx-runtime";
2394
2447
  function SelectField({
2395
2448
  value,
2396
2449
  onChange,
@@ -2406,10 +2459,12 @@ function SelectField({
2406
2459
  prefixSize = 20,
2407
2460
  handleSearch,
2408
2461
  className,
2409
- onClear
2462
+ onClear,
2463
+ size = "middle",
2464
+ allowClear = true
2410
2465
  }) {
2411
2466
  return /* @__PURE__ */ jsx27(
2412
- ConfigProvider7,
2467
+ ConfigProvider9,
2413
2468
  {
2414
2469
  theme: {
2415
2470
  token: {
@@ -2417,8 +2472,8 @@ function SelectField({
2417
2472
  fontSize: 16
2418
2473
  }
2419
2474
  },
2420
- children: /* @__PURE__ */ jsxs23("div", { className: "container-input", children: [
2421
- /* @__PURE__ */ jsxs23("div", { children: [
2475
+ children: /* @__PURE__ */ jsxs21("div", { className: "container-input", children: [
2476
+ /* @__PURE__ */ jsxs21("div", { children: [
2422
2477
  /* @__PURE__ */ jsx27("span", { className: "body-1", children: label }),
2423
2478
  " ",
2424
2479
  required && /* @__PURE__ */ jsx27("span", { className: "text-red-500", children: "*" })
@@ -2426,6 +2481,7 @@ function SelectField({
2426
2481
  /* @__PURE__ */ jsx27(
2427
2482
  Select,
2428
2483
  {
2484
+ size,
2429
2485
  showSearch: true,
2430
2486
  value: value ? value : void 0,
2431
2487
  defaultValue,
@@ -2451,7 +2507,7 @@ function SelectField({
2451
2507
  children: prefix
2452
2508
  }
2453
2509
  ) : void 0,
2454
- allowClear: true,
2510
+ allowClear,
2455
2511
  onClear
2456
2512
  }
2457
2513
  ),
@@ -2462,8 +2518,8 @@ function SelectField({
2462
2518
  }
2463
2519
 
2464
2520
  // src/Select/SelectFieldGroup/SelectFieldGroup.tsx
2465
- import { Select as Select2, ConfigProvider as ConfigProvider8 } from "antd";
2466
- import { jsx as jsx28, jsxs as jsxs24 } from "react/jsx-runtime";
2521
+ import { Select as Select2, ConfigProvider as ConfigProvider10 } from "antd";
2522
+ import { jsx as jsx28, jsxs as jsxs22 } from "react/jsx-runtime";
2467
2523
  function SelectFieldGroup({
2468
2524
  value,
2469
2525
  onChange,
@@ -2478,18 +2534,20 @@ function SelectFieldGroup({
2478
2534
  prefix,
2479
2535
  prefixSize = 20,
2480
2536
  handleSearch,
2481
- className
2537
+ className,
2538
+ size = "middle",
2539
+ allowClear = true
2482
2540
  }) {
2483
2541
  return /* @__PURE__ */ jsx28(
2484
- ConfigProvider8,
2542
+ ConfigProvider10,
2485
2543
  {
2486
2544
  theme: {
2487
2545
  token: {
2488
2546
  fontFamily: "Kanit"
2489
2547
  }
2490
2548
  },
2491
- children: /* @__PURE__ */ jsxs24("div", { className: "container-input", children: [
2492
- /* @__PURE__ */ jsxs24("div", { children: [
2549
+ children: /* @__PURE__ */ jsxs22("div", { className: "container-input", children: [
2550
+ /* @__PURE__ */ jsxs22("div", { children: [
2493
2551
  /* @__PURE__ */ jsx28("span", { className: "body-1", children: label }),
2494
2552
  " ",
2495
2553
  required && /* @__PURE__ */ jsx28("span", { className: "text-red-500", children: "*" })
@@ -2497,6 +2555,7 @@ function SelectFieldGroup({
2497
2555
  /* @__PURE__ */ jsx28(
2498
2556
  Select2,
2499
2557
  {
2558
+ size,
2500
2559
  showSearch: true,
2501
2560
  value: value ? value : void 0,
2502
2561
  defaultValue,
@@ -2522,7 +2581,7 @@ function SelectFieldGroup({
2522
2581
  children: prefix
2523
2582
  }
2524
2583
  ) : void 0,
2525
- allowClear: true
2584
+ allowClear
2526
2585
  }
2527
2586
  ),
2528
2587
  error && /* @__PURE__ */ jsx28("p", { className: "text-red-500 caption-1", children: error })
@@ -2532,9 +2591,9 @@ function SelectFieldGroup({
2532
2591
  }
2533
2592
 
2534
2593
  // src/Select/SelectFieldStatus/SelectFieldStatus.tsx
2535
- import { Select as Select3, ConfigProvider as ConfigProvider9 } from "antd";
2594
+ import { Select as Select3, ConfigProvider as ConfigProvider11 } from "antd";
2536
2595
  import { DownOutlined } from "@ant-design/icons";
2537
- import { jsx as jsx29, jsxs as jsxs25 } from "react/jsx-runtime";
2596
+ import { jsx as jsx29, jsxs as jsxs23 } from "react/jsx-runtime";
2538
2597
  function SelectFieldStatus({
2539
2598
  value,
2540
2599
  onChange,
@@ -2544,11 +2603,13 @@ function SelectFieldStatus({
2544
2603
  disabled,
2545
2604
  error,
2546
2605
  options,
2547
- className
2606
+ className,
2607
+ size = "middle",
2608
+ allowClear = false
2548
2609
  }) {
2549
2610
  const selectedItem = options?.find((s) => s.value === value);
2550
2611
  return /* @__PURE__ */ jsx29(
2551
- ConfigProvider9,
2612
+ ConfigProvider11,
2552
2613
  {
2553
2614
  theme: {
2554
2615
  components: {
@@ -2563,8 +2624,8 @@ function SelectFieldStatus({
2563
2624
  fontFamily: "Kanit"
2564
2625
  }
2565
2626
  },
2566
- children: /* @__PURE__ */ jsxs25("div", { className: "container-input", children: [
2567
- /* @__PURE__ */ jsxs25("div", { children: [
2627
+ children: /* @__PURE__ */ jsxs23("div", { className: "container-input", children: [
2628
+ /* @__PURE__ */ jsxs23("div", { children: [
2568
2629
  /* @__PURE__ */ jsx29("span", { className: "body-1", children: label }),
2569
2630
  " ",
2570
2631
  required && /* @__PURE__ */ jsx29("span", { className: "text-red-500", children: "*" })
@@ -2572,6 +2633,7 @@ function SelectFieldStatus({
2572
2633
  /* @__PURE__ */ jsx29(
2573
2634
  Select3,
2574
2635
  {
2636
+ size,
2575
2637
  disabled,
2576
2638
  suffixIcon: /* @__PURE__ */ jsx29(DownOutlined, { style: { color: value ? "#fff" : "#D9D9D9" } }),
2577
2639
  value: value ? value : void 0,
@@ -2581,7 +2643,8 @@ function SelectFieldStatus({
2581
2643
  optionFilterProp: "label",
2582
2644
  filterOption: (input, option) => (option?.label ?? "").toString().toLowerCase().includes(input.toLowerCase()),
2583
2645
  options,
2584
- showSearch: true
2646
+ showSearch: true,
2647
+ allowClear
2585
2648
  }
2586
2649
  ),
2587
2650
  error && /* @__PURE__ */ jsx29("p", { className: "text-red-500 caption-1", children: error })
@@ -2591,7 +2654,7 @@ function SelectFieldStatus({
2591
2654
  }
2592
2655
 
2593
2656
  // src/Select/SelectFieldStatusReport/SelectFieldStatusReport.tsx
2594
- import { Select as Select4, ConfigProvider as ConfigProvider10 } from "antd";
2657
+ import { Select as Select4, ConfigProvider as ConfigProvider12 } from "antd";
2595
2658
 
2596
2659
  // src/Select/SelectFieldStatusReport/StatusReportMockup.ts
2597
2660
  var status = [
@@ -2601,7 +2664,7 @@ var status = [
2601
2664
 
2602
2665
  // src/Select/SelectFieldStatusReport/SelectFieldStatusReport.tsx
2603
2666
  import { DownOutlined as DownOutlined2 } from "@ant-design/icons";
2604
- import { jsx as jsx30, jsxs as jsxs26 } from "react/jsx-runtime";
2667
+ import { jsx as jsx30, jsxs as jsxs24 } from "react/jsx-runtime";
2605
2668
  function SelectFieldStatusReport({
2606
2669
  value,
2607
2670
  onChange,
@@ -2611,11 +2674,13 @@ function SelectFieldStatusReport({
2611
2674
  disabled,
2612
2675
  error,
2613
2676
  className,
2614
- options
2677
+ options,
2678
+ size = "middle",
2679
+ allowClear = false
2615
2680
  }) {
2616
2681
  const selectedItem = status.find((s) => s.value === value);
2617
2682
  return /* @__PURE__ */ jsx30(
2618
- ConfigProvider10,
2683
+ ConfigProvider12,
2619
2684
  {
2620
2685
  theme: {
2621
2686
  components: {
@@ -2630,8 +2695,8 @@ function SelectFieldStatusReport({
2630
2695
  fontFamily: "Kanit"
2631
2696
  }
2632
2697
  },
2633
- children: /* @__PURE__ */ jsxs26("div", { className: "container-input", children: [
2634
- /* @__PURE__ */ jsxs26("div", { children: [
2698
+ children: /* @__PURE__ */ jsxs24("div", { className: "container-input", children: [
2699
+ /* @__PURE__ */ jsxs24("div", { children: [
2635
2700
  /* @__PURE__ */ jsx30("span", { className: "body-1", children: label }),
2636
2701
  " ",
2637
2702
  required && /* @__PURE__ */ jsx30("span", { className: "text-red-500", children: "*" })
@@ -2639,6 +2704,7 @@ function SelectFieldStatusReport({
2639
2704
  /* @__PURE__ */ jsx30(
2640
2705
  Select4,
2641
2706
  {
2707
+ size,
2642
2708
  disabled,
2643
2709
  suffixIcon: /* @__PURE__ */ jsx30(DownOutlined2, { style: { color: value ? "#fff" : "#D9D9D9" } }),
2644
2710
  value: value ? value : void 0,
@@ -2648,7 +2714,8 @@ function SelectFieldStatusReport({
2648
2714
  optionFilterProp: "label",
2649
2715
  filterOption: (input, option) => (option?.label ?? "").toString().toLowerCase().includes(input.toLowerCase()),
2650
2716
  options,
2651
- showSearch: true
2717
+ showSearch: true,
2718
+ allowClear
2652
2719
  }
2653
2720
  ),
2654
2721
  error && /* @__PURE__ */ jsx30("p", { className: "text-red-500 caption-1", children: error })
@@ -2658,9 +2725,9 @@ function SelectFieldStatusReport({
2658
2725
  }
2659
2726
 
2660
2727
  // src/Select/SelectFieldTag/SelectFieldTag.tsx
2661
- import { Select as Select5, ConfigProvider as ConfigProvider11 } from "antd";
2728
+ import { Select as Select5, ConfigProvider as ConfigProvider13 } from "antd";
2662
2729
  import { useState as useState9 } from "react";
2663
- import { jsx as jsx31, jsxs as jsxs27 } from "react/jsx-runtime";
2730
+ import { jsx as jsx31, jsxs as jsxs25 } from "react/jsx-runtime";
2664
2731
  function SelectFieldTag({
2665
2732
  label,
2666
2733
  required,
@@ -2670,7 +2737,9 @@ function SelectFieldTag({
2670
2737
  value: controlledValue,
2671
2738
  className,
2672
2739
  onChange,
2673
- onClear
2740
+ onClear,
2741
+ size = "middle",
2742
+ allowClear = true
2674
2743
  }) {
2675
2744
  const [internalValue, setInternalValue] = useState9([]);
2676
2745
  const isControlled = controlledValue !== void 0;
@@ -2694,15 +2763,15 @@ function SelectFieldTag({
2694
2763
  onChange?.([]);
2695
2764
  };
2696
2765
  return /* @__PURE__ */ jsx31(
2697
- ConfigProvider11,
2766
+ ConfigProvider13,
2698
2767
  {
2699
2768
  theme: {
2700
2769
  token: {
2701
2770
  fontFamily: "Kanit"
2702
2771
  }
2703
2772
  },
2704
- children: /* @__PURE__ */ jsxs27("div", { className: "container-input", children: [
2705
- /* @__PURE__ */ jsxs27("div", { children: [
2773
+ children: /* @__PURE__ */ jsxs25("div", { className: "container-input", children: [
2774
+ /* @__PURE__ */ jsxs25("div", { children: [
2706
2775
  /* @__PURE__ */ jsx31("span", { className: "body-1", children: label }),
2707
2776
  " ",
2708
2777
  required && /* @__PURE__ */ jsx31("span", { className: "text-red-500", children: "*" })
@@ -2710,6 +2779,7 @@ function SelectFieldTag({
2710
2779
  /* @__PURE__ */ jsx31(
2711
2780
  Select5,
2712
2781
  {
2782
+ size,
2713
2783
  mode: "tags",
2714
2784
  className: `body-1 flex justify-center w-full ${className ?? ""}`,
2715
2785
  placeholder,
@@ -2722,7 +2792,7 @@ function SelectFieldTag({
2722
2792
  },
2723
2793
  searchValue: searchWord,
2724
2794
  options,
2725
- allowClear: true,
2795
+ allowClear,
2726
2796
  onClear
2727
2797
  }
2728
2798
  ),
@@ -2734,9 +2804,9 @@ function SelectFieldTag({
2734
2804
 
2735
2805
  // src/Select/SelectCustom/SelectCustom.tsx
2736
2806
  import { IconTrash } from "@tabler/icons-react";
2737
- import { Select as Select6, ConfigProvider as ConfigProvider12 } from "antd";
2807
+ import { Select as Select6, ConfigProvider as ConfigProvider14 } from "antd";
2738
2808
  import { useState as useState10 } from "react";
2739
- import { jsx as jsx32, jsxs as jsxs28 } from "react/jsx-runtime";
2809
+ import { jsx as jsx32, jsxs as jsxs26 } from "react/jsx-runtime";
2740
2810
  function SelectCustom({
2741
2811
  label = "\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E42\u0E04\u0E23\u0E07\u0E01\u0E32\u0E23",
2742
2812
  placeholder = "\u0E01\u0E23\u0E38\u0E13\u0E32\u0E40\u0E25\u0E37\u0E2D\u0E01",
@@ -2744,7 +2814,9 @@ function SelectCustom({
2744
2814
  required = false,
2745
2815
  onChange,
2746
2816
  error,
2747
- onClear
2817
+ onClear,
2818
+ size = "middle",
2819
+ allowClear = true
2748
2820
  }) {
2749
2821
  const [value, setValue] = useState10([]);
2750
2822
  const [valueList, setValueList] = useState10([]);
@@ -2766,7 +2838,7 @@ function SelectCustom({
2766
2838
  };
2767
2839
  const filteredOptions = options.filter((opt) => !valueList.includes(opt.value)).map((opt) => ({ value: opt.value, label: opt.label }));
2768
2840
  return /* @__PURE__ */ jsx32(
2769
- ConfigProvider12,
2841
+ ConfigProvider14,
2770
2842
  {
2771
2843
  theme: {
2772
2844
  token: {
@@ -2774,8 +2846,8 @@ function SelectCustom({
2774
2846
  fontSize: 16
2775
2847
  }
2776
2848
  },
2777
- children: /* @__PURE__ */ jsxs28("div", { className: "container-input", children: [
2778
- /* @__PURE__ */ jsxs28("div", { children: [
2849
+ children: /* @__PURE__ */ jsxs26("div", { className: "container-input", children: [
2850
+ /* @__PURE__ */ jsxs26("div", { children: [
2779
2851
  /* @__PURE__ */ jsx32("span", { className: "body-1", children: label }),
2780
2852
  " ",
2781
2853
  required && /* @__PURE__ */ jsx32("span", { className: "text-red-500", children: "*" })
@@ -2783,22 +2855,24 @@ function SelectCustom({
2783
2855
  /* @__PURE__ */ jsx32(
2784
2856
  Select6,
2785
2857
  {
2858
+ size,
2786
2859
  value: value ? value : void 0,
2787
2860
  onChange: handleChange,
2788
2861
  placeholder,
2789
2862
  options: filteredOptions,
2790
2863
  mode: "tags",
2791
- onClear
2864
+ onClear,
2865
+ allowClear
2792
2866
  }
2793
2867
  ),
2794
2868
  error && /* @__PURE__ */ jsx32("p", { className: "text-red-500 caption-1", children: error }),
2795
- /* @__PURE__ */ jsx32("div", { className: "w-full p-[2px] overflow-y-auto", children: valueList.map((v, index) => /* @__PURE__ */ jsxs28(
2869
+ /* @__PURE__ */ jsx32("div", { className: "w-full p-[2px] overflow-y-auto", children: valueList.map((v, index) => /* @__PURE__ */ jsxs26(
2796
2870
  "div",
2797
2871
  {
2798
2872
  className: "flex justify-between items-center py-[2px] body-1",
2799
2873
  children: [
2800
- /* @__PURE__ */ jsxs28("div", { className: "flex flex-row gap-[8px]", children: [
2801
- /* @__PURE__ */ jsxs28("p", { children: [
2874
+ /* @__PURE__ */ jsxs26("div", { className: "flex flex-row gap-[8px]", children: [
2875
+ /* @__PURE__ */ jsxs26("p", { children: [
2802
2876
  index + 1,
2803
2877
  "."
2804
2878
  ] }),
@@ -2821,7 +2895,7 @@ function SelectCustom({
2821
2895
  }
2822
2896
 
2823
2897
  // src/SortFilter/SortFilter.tsx
2824
- import { ConfigProvider as ConfigProvider13 } from "antd";
2898
+ import { ConfigProvider as ConfigProvider15 } from "antd";
2825
2899
  import { CalendarOutlined } from "@ant-design/icons";
2826
2900
 
2827
2901
  // src/SortFilter/DataMockSortFilter.ts
@@ -2854,7 +2928,7 @@ var quarters = [
2854
2928
  // src/SortFilter/SortFilter.tsx
2855
2929
  import { useState as useState11 } from "react";
2856
2930
  import { IconSortDescending as IconSortDescending2, IconFilter } from "@tabler/icons-react";
2857
- import { jsx as jsx33, jsxs as jsxs29 } from "react/jsx-runtime";
2931
+ import { jsx as jsx33, jsxs as jsxs27 } from "react/jsx-runtime";
2858
2932
  function SortFilter({
2859
2933
  showYear = true,
2860
2934
  showQuarter = true,
@@ -2866,15 +2940,15 @@ function SortFilter({
2866
2940
  const [monthValue, setMonthValue] = useState11();
2867
2941
  const [quarterValue, setQuartersValue] = useState11();
2868
2942
  return /* @__PURE__ */ jsx33(
2869
- ConfigProvider13,
2943
+ ConfigProvider15,
2870
2944
  {
2871
2945
  theme: {
2872
2946
  token: {
2873
2947
  fontFamily: "Kanit"
2874
2948
  }
2875
2949
  },
2876
- children: /* @__PURE__ */ jsxs29("div", { className: "w-full flex items-center justify-between", children: [
2877
- /* @__PURE__ */ jsxs29("div", { className: "w-full flex gap-[10px]", children: [
2950
+ children: /* @__PURE__ */ jsxs27("div", { className: "w-full flex items-center justify-between", children: [
2951
+ /* @__PURE__ */ jsxs27("div", { className: "w-full flex gap-[10px]", children: [
2878
2952
  showYear && /* @__PURE__ */ jsx33("div", { className: "w-[200px]", children: /* @__PURE__ */ jsx33(
2879
2953
  SelectField,
2880
2954
  {
@@ -2915,7 +2989,7 @@ function SortFilter({
2915
2989
  }
2916
2990
  ) })
2917
2991
  ] }),
2918
- /* @__PURE__ */ jsxs29("div", { className: "flex gap-[10px]", children: [
2992
+ /* @__PURE__ */ jsxs27("div", { className: "flex gap-[10px]", children: [
2919
2993
  /* @__PURE__ */ jsx33(
2920
2994
  IconSortDescending2,
2921
2995
  {
@@ -2941,7 +3015,7 @@ function SortFilter({
2941
3015
  // src/Upload/FileUploader/FileUploader.tsx
2942
3016
  import { IconUpload, IconTrash as IconTrash2, IconFileDescription } from "@tabler/icons-react";
2943
3017
  import { useRef as useRef4, useState as useState12 } from "react";
2944
- import { Fragment as Fragment5, jsx as jsx34, jsxs as jsxs30 } from "react/jsx-runtime";
3018
+ import { Fragment as Fragment5, jsx as jsx34, jsxs as jsxs28 } from "react/jsx-runtime";
2945
3019
  function FileUploader({
2946
3020
  onUpload,
2947
3021
  onError,
@@ -3027,9 +3101,9 @@ function FileUploader({
3027
3101
  }
3028
3102
  if (inputRef.current) inputRef.current.value = "";
3029
3103
  };
3030
- return /* @__PURE__ */ jsxs30("div", { className: "w-full", children: [
3104
+ return /* @__PURE__ */ jsxs28("div", { className: "w-full", children: [
3031
3105
  label && /* @__PURE__ */ jsx34("p", { className: "body-1", children: label }),
3032
- !readOnly && /* @__PURE__ */ jsxs30("div", { className: uploaderWidth, children: [
3106
+ !readOnly && /* @__PURE__ */ jsxs28("div", { className: uploaderWidth, children: [
3033
3107
  mode === "upload" ? /* @__PURE__ */ jsx34(
3034
3108
  "button",
3035
3109
  {
@@ -3038,10 +3112,10 @@ function FileUploader({
3038
3112
  className: `h-[34px] flex justify-center items-center gap-2 w-full rounded-[2px] border border-gray-200 body-1
3039
3113
  ${disabled ? "cursor-not-allowed text-gray-400 bg-gray-100" : "cursor-pointer hover:text-primary-400 hover:border-primary-200 duration-300"}`,
3040
3114
  disabled: disabled ? disabled : uploading,
3041
- children: uploading ? /* @__PURE__ */ jsxs30(Fragment5, { children: [
3115
+ children: uploading ? /* @__PURE__ */ jsxs28(Fragment5, { children: [
3042
3116
  /* @__PURE__ */ jsx34(Loader, { size: 15 }),
3043
3117
  " \u0E01\u0E33\u0E25\u0E31\u0E07\u0E2D\u0E31\u0E1B\u0E42\u0E2B\u0E25\u0E14"
3044
- ] }) : /* @__PURE__ */ jsxs30(Fragment5, { children: [
3118
+ ] }) : /* @__PURE__ */ jsxs28(Fragment5, { children: [
3045
3119
  /* @__PURE__ */ jsx34(IconUpload, { size: 15, className: "text-gray-400" }),
3046
3120
  " ",
3047
3121
  uploadText
@@ -3061,10 +3135,10 @@ function FileUploader({
3061
3135
  },
3062
3136
  onDragLeave: () => setDragActive(false),
3063
3137
  onDrop: handleDrop,
3064
- children: uploading ? /* @__PURE__ */ jsxs30("div", { className: "flex justify-center items-center gap-2", children: [
3138
+ children: uploading ? /* @__PURE__ */ jsxs28("div", { className: "flex justify-center items-center gap-2", children: [
3065
3139
  /* @__PURE__ */ jsx34(Loader, { size: 15 }),
3066
3140
  " \u0E01\u0E33\u0E25\u0E31\u0E07\u0E2D\u0E31\u0E1B\u0E42\u0E2B\u0E25\u0E14"
3067
- ] }) : /* @__PURE__ */ jsxs30("div", { className: "flex flex-col items-center gap-2", children: [
3141
+ ] }) : /* @__PURE__ */ jsxs28("div", { className: "flex flex-col items-center gap-2", children: [
3068
3142
  /* @__PURE__ */ jsx34(IconUpload, { size: 20 }),
3069
3143
  /* @__PURE__ */ jsx34("span", { className: "body-1", children: "\u0E04\u0E25\u0E34\u0E01\u0E2B\u0E23\u0E37\u0E2D\u0E25\u0E32\u0E01\u0E44\u0E1F\u0E25\u0E4C\u0E21\u0E32\u0E17\u0E35\u0E48\u0E1A\u0E23\u0E34\u0E40\u0E27\u0E13\u0E19\u0E35\u0E49\u0E40\u0E1E\u0E37\u0E48\u0E2D\u0E2D\u0E31\u0E1B\u0E42\u0E2B\u0E25\u0E14" }),
3070
3144
  /* @__PURE__ */ jsx34("span", { className: "text-gray-400 body-3", children: "\u0E23\u0E2D\u0E07\u0E23\u0E31\u0E1A\u0E01\u0E32\u0E23\u0E2D\u0E31\u0E1B\u0E42\u0E2B\u0E25\u0E14\u0E41\u0E1A\u0E1A\u0E40\u0E14\u0E35\u0E48\u0E22\u0E27\u0E2B\u0E23\u0E37\u0E2D\u0E2B\u0E25\u0E32\u0E22\u0E44\u0E1F\u0E25\u0E4C" })
@@ -3085,7 +3159,7 @@ function FileUploader({
3085
3159
  )
3086
3160
  ] }),
3087
3161
  description && /* @__PURE__ */ jsx34("p", { className: "text-gray-400 body-4", children: description }),
3088
- /* @__PURE__ */ jsx34("div", { className: `mt-[8px] ${attachWidth}`, children: filesToDisplay.length !== 0 && /* @__PURE__ */ jsx34("div", { className: "flex flex-col rounded-[6px] body-1 border-[1px] border-gray-300", children: filesToDisplay.map((file, index) => /* @__PURE__ */ jsxs30(
3162
+ /* @__PURE__ */ jsx34("div", { className: `mt-[8px] ${attachWidth}`, children: filesToDisplay.length !== 0 && /* @__PURE__ */ jsx34("div", { className: "flex flex-col rounded-[6px] body-1 border-[1px] border-gray-300", children: filesToDisplay.map((file, index) => /* @__PURE__ */ jsxs28(
3089
3163
  "div",
3090
3164
  {
3091
3165
  className: `flex px-[16px] hover:bg-primary-50 hover:cursor-pointer
@@ -3095,7 +3169,7 @@ function FileUploader({
3095
3169
  ${index !== 0 ? "pt-[16px]" : ""}`,
3096
3170
  onClick: () => onClickFile && onClickFile(file),
3097
3171
  children: [
3098
- /* @__PURE__ */ jsxs30("div", { className: "flex gap-2 overflow-hidden", children: [
3172
+ /* @__PURE__ */ jsxs28("div", { className: "flex gap-2 overflow-hidden", children: [
3099
3173
  /* @__PURE__ */ jsx34("div", { className: "w-[24px] h-[24px] flex items-center justify-center", children: /* @__PURE__ */ jsx34(IconFileDescription, { size: 20 }) }),
3100
3174
  /* @__PURE__ */ jsx34("span", { className: "truncate", children: file.name || file.fileName })
3101
3175
  ] }),
@@ -3139,7 +3213,7 @@ function messageLoading(content, duration) {
3139
3213
  }
3140
3214
 
3141
3215
  // src/Breadcrumb/Breadcrumb.tsx
3142
- import { ConfigProvider as ConfigProvider14 } from "antd";
3216
+ import { ConfigProvider as ConfigProvider16 } from "antd";
3143
3217
  import { Breadcrumb } from "antd";
3144
3218
  import { jsx as jsx35 } from "react/jsx-runtime";
3145
3219
  function Breadcrumbs({
@@ -3150,7 +3224,7 @@ function Breadcrumbs({
3150
3224
  params
3151
3225
  }) {
3152
3226
  return /* @__PURE__ */ jsx35(
3153
- ConfigProvider14,
3227
+ ConfigProvider16,
3154
3228
  {
3155
3229
  theme: {
3156
3230
  token: {
@@ -3172,8 +3246,8 @@ function Breadcrumbs({
3172
3246
  }
3173
3247
 
3174
3248
  // src/HeadingPage/HeadingPage.tsx
3175
- import { ConfigProvider as ConfigProvider15 } from "antd";
3176
- import { jsx as jsx36, jsxs as jsxs31 } from "react/jsx-runtime";
3249
+ import { ConfigProvider as ConfigProvider17 } from "antd";
3250
+ import { jsx as jsx36, jsxs as jsxs29 } from "react/jsx-runtime";
3177
3251
  function HeadingPage({ Heading }) {
3178
3252
  const today = (/* @__PURE__ */ new Date()).toLocaleDateString("th-TH", {
3179
3253
  weekday: "long",
@@ -3182,16 +3256,16 @@ function HeadingPage({ Heading }) {
3182
3256
  year: "numeric"
3183
3257
  });
3184
3258
  return /* @__PURE__ */ jsx36(
3185
- ConfigProvider15,
3259
+ ConfigProvider17,
3186
3260
  {
3187
3261
  theme: {
3188
3262
  token: {
3189
3263
  fontFamily: "Kanit"
3190
3264
  }
3191
3265
  },
3192
- children: /* @__PURE__ */ jsxs31("div", { className: "flex flex-col gap-[10px] px-[20px] py-[10px]", children: [
3266
+ children: /* @__PURE__ */ jsxs29("div", { className: "flex flex-col gap-[10px] px-[20px] py-[10px]", children: [
3193
3267
  /* @__PURE__ */ jsx36("p", { className: "headline-5", children: Heading }),
3194
- /* @__PURE__ */ jsxs31("p", { className: "body-1", children: [
3268
+ /* @__PURE__ */ jsxs29("p", { className: "body-1", children: [
3195
3269
  " \u0E27\u0E31\u0E19\u0E19\u0E35\u0E49 ",
3196
3270
  today
3197
3271
  ] })
@@ -3201,9 +3275,9 @@ function HeadingPage({ Heading }) {
3201
3275
  }
3202
3276
 
3203
3277
  // src/Progress/ProgressBar.tsx
3204
- import { ConfigProvider as ConfigProvider16, Progress } from "antd";
3278
+ import { ConfigProvider as ConfigProvider18, Progress } from "antd";
3205
3279
  import { useEffect as useEffect4, useRef as useRef5, useState as useState13 } from "react";
3206
- import { jsx as jsx37, jsxs as jsxs32 } from "react/jsx-runtime";
3280
+ import { jsx as jsx37, jsxs as jsxs30 } from "react/jsx-runtime";
3207
3281
  function ProgressBar({
3208
3282
  percent = 0,
3209
3283
  size = "default",
@@ -3235,14 +3309,14 @@ function ProgressBar({
3235
3309
  return () => observer.disconnect();
3236
3310
  }, []);
3237
3311
  return /* @__PURE__ */ jsx37(
3238
- ConfigProvider16,
3312
+ ConfigProvider18,
3239
3313
  {
3240
3314
  theme: {
3241
3315
  token: {
3242
3316
  fontFamily: "Kanit"
3243
3317
  }
3244
3318
  },
3245
- children: /* @__PURE__ */ jsxs32("div", { className: "relative w-full", ref: progressRef, children: [
3319
+ children: /* @__PURE__ */ jsxs30("div", { className: "relative w-full", ref: progressRef, children: [
3246
3320
  /* @__PURE__ */ jsx37(
3247
3321
  Progress,
3248
3322
  {
@@ -3281,7 +3355,7 @@ function ProgressBar({
3281
3355
  }
3282
3356
 
3283
3357
  // src/KpiSection/KpiSection.tsx
3284
- import { ConfigProvider as ConfigProvider17, message } from "antd";
3358
+ import { ConfigProvider as ConfigProvider19, message } from "antd";
3285
3359
  import { useEffect as useEffect5, useState as useState15 } from "react";
3286
3360
 
3287
3361
  // src/KpiSection/hooks/useGetKpiSection.ts
@@ -3432,7 +3506,7 @@ function useGetKpiSection() {
3432
3506
 
3433
3507
  // src/KpiSection/KpiSection.tsx
3434
3508
  import { IconCheck as IconCheck2, IconCirclePlus, IconPencil, IconTrash as IconTrash3, IconX as IconX2 } from "@tabler/icons-react";
3435
- import { Fragment as Fragment6, jsx as jsx38, jsxs as jsxs33 } from "react/jsx-runtime";
3509
+ import { Fragment as Fragment6, jsx as jsx38, jsxs as jsxs31 } from "react/jsx-runtime";
3436
3510
  function KpiSection({ type, onChangeKpiList }) {
3437
3511
  const {
3438
3512
  handleAddKpi,
@@ -3463,7 +3537,7 @@ function KpiSection({ type, onChangeKpiList }) {
3463
3537
  }
3464
3538
  }, [kpiList]);
3465
3539
  return /* @__PURE__ */ jsx38(
3466
- ConfigProvider17,
3540
+ ConfigProvider19,
3467
3541
  {
3468
3542
  theme: {
3469
3543
  token: {
@@ -3471,10 +3545,10 @@ function KpiSection({ type, onChangeKpiList }) {
3471
3545
  fontSize: 16
3472
3546
  }
3473
3547
  },
3474
- children: /* @__PURE__ */ jsxs33("div", { className: "container-input", children: [
3548
+ children: /* @__PURE__ */ jsxs31("div", { className: "container-input", children: [
3475
3549
  messageContainer,
3476
- type === "number" && /* @__PURE__ */ jsxs33("div", { className: "space-y-4", children: [
3477
- /* @__PURE__ */ jsxs33("div", { className: "grid grid-cols-[1fr_200px_200px_50px] w-full gap-[24px] items-start", children: [
3550
+ type === "number" && /* @__PURE__ */ jsxs31("div", { className: "space-y-4", children: [
3551
+ /* @__PURE__ */ jsxs31("div", { className: "grid grid-cols-[1fr_200px_200px_50px] w-full gap-[24px] items-start", children: [
3478
3552
  /* @__PURE__ */ jsx38(
3479
3553
  InputField,
3480
3554
  {
@@ -3532,16 +3606,16 @@ function KpiSection({ type, onChangeKpiList }) {
3532
3606
  }
3533
3607
  ) })
3534
3608
  ] }),
3535
- /* @__PURE__ */ jsx38("div", { children: kpiList.map((kpi, index) => /* @__PURE__ */ jsxs33(
3609
+ /* @__PURE__ */ jsx38("div", { children: kpiList.map((kpi, index) => /* @__PURE__ */ jsxs31(
3536
3610
  "div",
3537
3611
  {
3538
3612
  className: "grid grid-cols-[30px_1fr_100px_120px_80px] items-start py-2 body-1 gap-[8px]",
3539
3613
  children: [
3540
- /* @__PURE__ */ jsxs33("p", { className: `body-1 ${kpi.isEditing ? "mt-[12px]" : ""}`, children: [
3614
+ /* @__PURE__ */ jsxs31("p", { className: `body-1 ${kpi.isEditing ? "mt-[12px]" : ""}`, children: [
3541
3615
  index + 1,
3542
3616
  "."
3543
3617
  ] }),
3544
- kpi.isEditing ? /* @__PURE__ */ jsxs33(Fragment6, { children: [
3618
+ kpi.isEditing ? /* @__PURE__ */ jsxs31(Fragment6, { children: [
3545
3619
  /* @__PURE__ */ jsx38(
3546
3620
  InputField,
3547
3621
  {
@@ -3587,7 +3661,7 @@ function KpiSection({ type, onChangeKpiList }) {
3587
3661
  error: itemErrors[kpi.id]?.unit
3588
3662
  }
3589
3663
  ),
3590
- /* @__PURE__ */ jsxs33(
3664
+ /* @__PURE__ */ jsxs31(
3591
3665
  "div",
3592
3666
  {
3593
3667
  className: `flex gap-2 justify-end self-center ${!!itemErrors[kpi.id]?.value || !!itemErrors[kpi.id]?.unit || !!itemErrors[kpi.id]?.name ? "mt-[-12px]" : ""}`,
@@ -3603,11 +3677,11 @@ function KpiSection({ type, onChangeKpiList }) {
3603
3677
  ]
3604
3678
  }
3605
3679
  )
3606
- ] }) : /* @__PURE__ */ jsxs33(Fragment6, { children: [
3680
+ ] }) : /* @__PURE__ */ jsxs31(Fragment6, { children: [
3607
3681
  /* @__PURE__ */ jsx38("p", { className: "body-1", children: kpi.name }),
3608
3682
  /* @__PURE__ */ jsx38("p", { className: "body-1", children: kpi.value }),
3609
3683
  /* @__PURE__ */ jsx38("p", { className: "body-1", children: kpi.unit }),
3610
- /* @__PURE__ */ jsxs33("div", { className: "flex gap-3 justify-end", children: [
3684
+ /* @__PURE__ */ jsxs31("div", { className: "flex gap-3 justify-end", children: [
3611
3685
  /* @__PURE__ */ jsx38(IconPencil, { className: "w-[30px] h-[30px] cursor-pointer", onClick: () => handleEdit(kpi.id) }),
3612
3686
  /* @__PURE__ */ jsx38(IconTrash3, { className: "w-[30px] h-[30px] cursor-pointer", onClick: () => handleDelete(kpi.id) })
3613
3687
  ] })
@@ -3617,8 +3691,8 @@ function KpiSection({ type, onChangeKpiList }) {
3617
3691
  kpi.id
3618
3692
  )) })
3619
3693
  ] }),
3620
- type === "text" && /* @__PURE__ */ jsxs33("div", { className: "space-y-4", children: [
3621
- /* @__PURE__ */ jsxs33("div", { className: "grid grid-cols-[1fr_50px] w-full gap-[24px] items-start", children: [
3694
+ type === "text" && /* @__PURE__ */ jsxs31("div", { className: "space-y-4", children: [
3695
+ /* @__PURE__ */ jsxs31("div", { className: "grid grid-cols-[1fr_50px] w-full gap-[24px] items-start", children: [
3622
3696
  /* @__PURE__ */ jsx38(
3623
3697
  InputField,
3624
3698
  {
@@ -3640,12 +3714,12 @@ function KpiSection({ type, onChangeKpiList }) {
3640
3714
  }
3641
3715
  ) })
3642
3716
  ] }),
3643
- /* @__PURE__ */ jsx38("div", { children: kpiList.map((kpi, index) => /* @__PURE__ */ jsxs33("div", { className: "grid grid-cols-[30px_1fr_80px] items-start py-2 body-1 gap-[8px]", children: [
3644
- /* @__PURE__ */ jsxs33("p", { className: `body-1 ${kpi.isEditing ? "mt-[12px]" : ""}`, children: [
3717
+ /* @__PURE__ */ jsx38("div", { children: kpiList.map((kpi, index) => /* @__PURE__ */ jsxs31("div", { className: "grid grid-cols-[30px_1fr_80px] items-start py-2 body-1 gap-[8px]", children: [
3718
+ /* @__PURE__ */ jsxs31("p", { className: `body-1 ${kpi.isEditing ? "mt-[12px]" : ""}`, children: [
3645
3719
  index + 1,
3646
3720
  "."
3647
3721
  ] }),
3648
- kpi.isEditing ? /* @__PURE__ */ jsxs33(Fragment6, { children: [
3722
+ kpi.isEditing ? /* @__PURE__ */ jsxs31(Fragment6, { children: [
3649
3723
  /* @__PURE__ */ jsx38(
3650
3724
  InputField,
3651
3725
  {
@@ -3656,7 +3730,7 @@ function KpiSection({ type, onChangeKpiList }) {
3656
3730
  error: itemErrors[kpi.id]?.name
3657
3731
  }
3658
3732
  ),
3659
- /* @__PURE__ */ jsxs33(
3733
+ /* @__PURE__ */ jsxs31(
3660
3734
  "div",
3661
3735
  {
3662
3736
  className: `flex gap-2 justify-end self-center ${!!itemErrors[kpi.id]?.name ? "mt-[-12px]" : ""}`,
@@ -3672,9 +3746,9 @@ function KpiSection({ type, onChangeKpiList }) {
3672
3746
  ]
3673
3747
  }
3674
3748
  )
3675
- ] }) : /* @__PURE__ */ jsxs33(Fragment6, { children: [
3749
+ ] }) : /* @__PURE__ */ jsxs31(Fragment6, { children: [
3676
3750
  /* @__PURE__ */ jsx38("p", { className: "body-1", children: kpi.name }),
3677
- /* @__PURE__ */ jsxs33("div", { className: "flex gap-3 justify-end", children: [
3751
+ /* @__PURE__ */ jsxs31("div", { className: "flex gap-3 justify-end", children: [
3678
3752
  /* @__PURE__ */ jsx38(IconPencil, { className: "w-[30px] h-[30px] cursor-pointer", onClick: () => handleEdit(kpi.id) }),
3679
3753
  /* @__PURE__ */ jsx38(IconTrash3, { className: "w-[30px] h-[30px] cursor-pointer", onClick: () => handleDelete(kpi.id) })
3680
3754
  ] })
@@ -3703,7 +3777,7 @@ import {
3703
3777
  } from "@tabler/icons-react";
3704
3778
  import { useState as useState16 } from "react";
3705
3779
  import { Input as Input4 } from "antd";
3706
- import { Fragment as Fragment7, jsx as jsx40, jsxs as jsxs34 } from "react/jsx-runtime";
3780
+ import { Fragment as Fragment7, jsx as jsx40, jsxs as jsxs32 } from "react/jsx-runtime";
3707
3781
  function Indicator({
3708
3782
  option = [
3709
3783
  { value: "TEXT", label: "\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21" },
@@ -3831,8 +3905,8 @@ function Indicator({
3831
3905
  }));
3832
3906
  console.log(cacheEditData);
3833
3907
  };
3834
- return /* @__PURE__ */ jsxs34("div", { className: "w-full", children: [
3835
- /* @__PURE__ */ jsxs34(
3908
+ return /* @__PURE__ */ jsxs32("div", { className: "w-full", children: [
3909
+ /* @__PURE__ */ jsxs32(
3836
3910
  "div",
3837
3911
  {
3838
3912
  className: `space-x-2 grid ${valueSwitch === "TEXT" ? `grid-cols-[140px_1fr_50px]` : `grid-cols-[140px_1fr_200px_200px_50px]`} items-start`,
@@ -3862,7 +3936,7 @@ function Indicator({
3862
3936
  error: addError.textValue
3863
3937
  }
3864
3938
  ),
3865
- valueSwitch === "NUMBER" && /* @__PURE__ */ jsxs34(Fragment7, { children: [
3939
+ valueSwitch === "NUMBER" && /* @__PURE__ */ jsxs32(Fragment7, { children: [
3866
3940
  /* @__PURE__ */ jsx40(
3867
3941
  InputFieldNumber,
3868
3942
  {
@@ -3906,13 +3980,13 @@ function Indicator({
3906
3980
  ]
3907
3981
  }
3908
3982
  ),
3909
- /* @__PURE__ */ jsx40(Fragment7, { children: arrayData.map((item, index) => /* @__PURE__ */ jsxs34(
3983
+ /* @__PURE__ */ jsx40(Fragment7, { children: arrayData.map((item, index) => /* @__PURE__ */ jsxs32(
3910
3984
  "div",
3911
3985
  {
3912
3986
  className: `space-y-2 grid ${item.inputType === "TEXT" ? `grid-cols-[140px_1fr_50px_50px]` : `grid-cols-[140px_1fr_200px_150px_50px_50px]`} items-start`,
3913
3987
  children: [
3914
3988
  /* @__PURE__ */ jsx40("div", { className: "body-1 mt-2", children: item.inputType === "TEXT" ? "\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21" : "\u0E15\u0E31\u0E27\u0E40\u0E25\u0E02" }),
3915
- index === editIndex ? /* @__PURE__ */ jsxs34("div", { className: "flex flex-col gap-[8px]", children: [
3989
+ index === editIndex ? /* @__PURE__ */ jsxs32("div", { className: "flex flex-col gap-[8px]", children: [
3916
3990
  /* @__PURE__ */ jsx40(
3917
3991
  Input4,
3918
3992
  {
@@ -3928,8 +4002,8 @@ function Indicator({
3928
4002
  ),
3929
4003
  editError.textValue && /* @__PURE__ */ jsx40("p", { className: "text-red-500 caption-1", children: editError.textValue })
3930
4004
  ] }) : /* @__PURE__ */ jsx40("div", { className: "body-1 mt-2", children: item.textValue }),
3931
- item.inputType === "NUMBER" && /* @__PURE__ */ jsxs34(Fragment7, { children: [
3932
- index === editIndex ? /* @__PURE__ */ jsxs34("div", { className: "flex flex-col gap-[8px]", children: [
4005
+ item.inputType === "NUMBER" && /* @__PURE__ */ jsxs32(Fragment7, { children: [
4006
+ index === editIndex ? /* @__PURE__ */ jsxs32("div", { className: "flex flex-col gap-[8px]", children: [
3933
4007
  /* @__PURE__ */ jsx40(
3934
4008
  Input4,
3935
4009
  {
@@ -3946,7 +4020,7 @@ function Indicator({
3946
4020
  ),
3947
4021
  editError.numberValue && /* @__PURE__ */ jsx40("p", { className: "text-red-500 caption-1", children: editError.numberValue })
3948
4022
  ] }) : /* @__PURE__ */ jsx40("div", { className: "body-1 mt-2", children: item.numberValue }),
3949
- index === editIndex ? /* @__PURE__ */ jsxs34("div", { className: "flex flex-col gap-[8px]", children: [
4023
+ index === editIndex ? /* @__PURE__ */ jsxs32("div", { className: "flex flex-col gap-[8px]", children: [
3950
4024
  /* @__PURE__ */ jsx40(
3951
4025
  Input4,
3952
4026
  {
@@ -3963,7 +4037,7 @@ function Indicator({
3963
4037
  editError.unit && /* @__PURE__ */ jsx40("p", { className: "text-red-500 caption-1", children: editError.unit })
3964
4038
  ] }) : /* @__PURE__ */ jsx40("div", { className: "body-1 mt-2", children: item.unit })
3965
4039
  ] }),
3966
- /* @__PURE__ */ jsx40("div", { className: "body-1 mt-2 flex", children: editIndex !== null ? editIndex === index ? /* @__PURE__ */ jsxs34("div", { className: "flex", children: [
4040
+ /* @__PURE__ */ jsx40("div", { className: "body-1 mt-2 flex", children: editIndex !== null ? editIndex === index ? /* @__PURE__ */ jsxs32("div", { className: "flex", children: [
3967
4041
  /* @__PURE__ */ jsx40(
3968
4042
  IconCheck3,
3969
4043
  {
@@ -4008,7 +4082,7 @@ function Indicator({
4008
4082
  // src/FilterPopUp/FilterPopUp.tsx
4009
4083
  import { IconCheck as IconCheck4, IconFilter as IconFilter2, IconTrash as IconTrash5 } from "@tabler/icons-react";
4010
4084
  import { useState as useState17 } from "react";
4011
- import { jsx as jsx41, jsxs as jsxs35 } from "react/jsx-runtime";
4085
+ import { jsx as jsx41, jsxs as jsxs33 } from "react/jsx-runtime";
4012
4086
  var FilterPopUp = (filter) => {
4013
4087
  const [isAction, setIsAction] = useState17(true);
4014
4088
  const [filterArray, setFilterArray] = useState17([""]);
@@ -4018,14 +4092,14 @@ var FilterPopUp = (filter) => {
4018
4092
  const handleSubmitFilter = () => {
4019
4093
  filter.handleSearch(filterArray);
4020
4094
  };
4021
- return /* @__PURE__ */ jsxs35("div", { className: "relative", children: [
4022
- /* @__PURE__ */ jsxs35("button", { className: "flex px-2 py-1 rounded-lg border-1", onClick: () => setIsAction(!isAction), children: [
4095
+ return /* @__PURE__ */ jsxs33("div", { className: "relative", children: [
4096
+ /* @__PURE__ */ jsxs33("button", { className: "flex px-2 py-1 rounded-lg border-1", onClick: () => setIsAction(!isAction), children: [
4023
4097
  /* @__PURE__ */ jsx41(IconFilter2, {}),
4024
4098
  "filter"
4025
4099
  ] }),
4026
- isAction ? /* @__PURE__ */ jsxs35("div", { className: "absolute bg-white p-5 rounded-lg shadow-2xl w-[600px]", children: [
4027
- /* @__PURE__ */ jsxs35("div", { className: "flex justify-end", children: [
4028
- /* @__PURE__ */ jsxs35("div", { className: "flex justify-end text-nowrap gap-2", children: [
4100
+ isAction ? /* @__PURE__ */ jsxs33("div", { className: "absolute bg-white p-5 rounded-lg shadow-2xl w-[600px]", children: [
4101
+ /* @__PURE__ */ jsxs33("div", { className: "flex justify-end", children: [
4102
+ /* @__PURE__ */ jsxs33("div", { className: "flex justify-end text-nowrap gap-2", children: [
4029
4103
  /* @__PURE__ */ jsx41(GhostButton, { title: "\u0E43\u0E0A\u0E49\u0E1F\u0E34\u0E25\u0E40\u0E15\u0E2D\u0E23\u0E4C", onClick: handleSubmitFilter, iconLeft: /* @__PURE__ */ jsx41(IconCheck4, {}) }),
4030
4104
  /* @__PURE__ */ jsx41(GhostButton, { title: "\u0E25\u0E49\u0E32\u0E07\u0E17\u0E31\u0E49\u0E07\u0E2B\u0E21\u0E14", onClick: handleClearFilter, iconLeft: /* @__PURE__ */ jsx41(IconTrash5, {}) })
4031
4105
  ] }),
@@ -4047,7 +4121,7 @@ var FilterPopUp = (filter) => {
4047
4121
  import { useEffect as useEffect7, useRef as useRef6, useState as useState18 } from "react";
4048
4122
  import { IconSearch, IconUsers, IconX as IconX4 } from "@tabler/icons-react";
4049
4123
  import { Input as Input5 } from "antd";
4050
- import { Fragment as Fragment8, jsx as jsx42, jsxs as jsxs36 } from "react/jsx-runtime";
4124
+ import { Fragment as Fragment8, jsx as jsx42, jsxs as jsxs34 } from "react/jsx-runtime";
4051
4125
  function ProfileSelect({
4052
4126
  allUser,
4053
4127
  assignUser,
@@ -4104,7 +4178,10 @@ function ProfileSelect({
4104
4178
  const filteredUnassigned = normalizedSearch ? userNotAssign.filter(
4105
4179
  (u) => u.name.toLowerCase().includes(normalizedSearch)
4106
4180
  ) : userNotAssign;
4107
- return /* @__PURE__ */ jsxs36("div", { ref: containerRef, className: "relative body-1", children: [
4181
+ const isSearching = normalizedSearch.length > 0;
4182
+ const noResult = filteredAssigned.length === 0 && filteredUnassigned.length === 0;
4183
+ const noUserOption = allUser.length === 0 && !isSearching;
4184
+ return /* @__PURE__ */ jsxs34("div", { ref: containerRef, className: "relative body-1", children: [
4108
4185
  mode === "icon" ? /* @__PURE__ */ jsx42("div", { children: /* @__PURE__ */ jsx42(
4109
4186
  IconUsers,
4110
4187
  {
@@ -4117,8 +4194,8 @@ function ProfileSelect({
4117
4194
  {
4118
4195
  className: `w-full h-[40px] flex items-center p-2 cursor-pointer ${className}`,
4119
4196
  onClick: () => setIsShowSelect(!isShowSelect),
4120
- children: visibleUsers.length === 0 ? placeholder ? /* @__PURE__ */ jsx42("span", { className: "body-1 text-gray-400 select-none", children: placeholder }) : null : /* @__PURE__ */ jsxs36(Fragment8, { children: [
4121
- /* @__PURE__ */ jsx42("div", { className: "flex -space-x-2", children: visibleUsers.map((user) => /* @__PURE__ */ jsx42("div", { className: "flex items-center", children: /* @__PURE__ */ jsxs36("label", { className: "relative group cursor-pointer", children: [
4197
+ children: visibleUsers.length === 0 ? placeholder ? /* @__PURE__ */ jsx42("span", { className: "body-1 text-gray-400 select-none", children: placeholder }) : null : /* @__PURE__ */ jsxs34(Fragment8, { children: [
4198
+ /* @__PURE__ */ jsx42("div", { className: "flex -space-x-2", children: visibleUsers.map((user) => /* @__PURE__ */ jsx42("div", { className: "flex items-center", children: /* @__PURE__ */ jsxs34("label", { className: "relative group cursor-pointer", children: [
4122
4199
  /* @__PURE__ */ jsx42(
4123
4200
  "img",
4124
4201
  {
@@ -4144,7 +4221,7 @@ function ProfileSelect({
4144
4221
  }
4145
4222
  )
4146
4223
  ] }) }, user.id)) }),
4147
- showPlus && /* @__PURE__ */ jsxs36(
4224
+ showPlus && /* @__PURE__ */ jsxs34(
4148
4225
  "div",
4149
4226
  {
4150
4227
  className: "border border-white flex items-center justify-center bg-gray-300 text-black text-sm ml-2",
@@ -4161,7 +4238,7 @@ function ProfileSelect({
4161
4238
  )
4162
4239
  ] })
4163
4240
  }
4164
- ) : /* @__PURE__ */ jsxs36("div", { className: `w-full h-[40px] flex -space-x-2 p-2 ${className}`, children: [
4241
+ ) : /* @__PURE__ */ jsxs34("div", { className: `w-full h-[40px] flex -space-x-2 p-2 ${className}`, children: [
4165
4242
  visibleUsers.map((user) => /* @__PURE__ */ jsx42("div", { className: "flex items-center ", children: /* @__PURE__ */ jsx42("label", { className: "relative group ", children: /* @__PURE__ */ jsx42(
4166
4243
  "img",
4167
4244
  {
@@ -4175,7 +4252,7 @@ function ProfileSelect({
4175
4252
  className: "border border-white transition"
4176
4253
  }
4177
4254
  ) }) }, user.id)),
4178
- showPlus && /* @__PURE__ */ jsxs36(
4255
+ showPlus && /* @__PURE__ */ jsxs34(
4179
4256
  "div",
4180
4257
  {
4181
4258
  className: "border border-white flex items-center justify-center bg-gray-300 text-black text-sm",
@@ -4191,13 +4268,13 @@ function ProfileSelect({
4191
4268
  }
4192
4269
  )
4193
4270
  ] }),
4194
- isShowSelect ? /* @__PURE__ */ jsxs36(
4271
+ isShowSelect ? /* @__PURE__ */ jsxs34(
4195
4272
  "div",
4196
4273
  {
4197
4274
  className: "absolute top-12 min-w-[261px] max-w-[400px] w-full h-[314px] p-2 text-xs border-1 rounded-sm z-20 bg-white",
4198
4275
  ref: selectRef,
4199
4276
  children: [
4200
- /* @__PURE__ */ jsxs36("div", { className: "flex border-1 rounded-md p-2 gap-2 items-center", children: [
4277
+ /* @__PURE__ */ jsxs34("div", { className: "flex border-1 rounded-md p-2 gap-2 items-center", children: [
4201
4278
  /* @__PURE__ */ jsx42(IconSearch, {}),
4202
4279
  /* @__PURE__ */ jsx42(
4203
4280
  Input5,
@@ -4210,15 +4287,15 @@ function ProfileSelect({
4210
4287
  }
4211
4288
  )
4212
4289
  ] }),
4213
- /* @__PURE__ */ jsxs36("div", { className: "overflow-y-auto h-[250px] pt-2 px-4 body-3", children: [
4214
- filteredAssigned.length > 0 && /* @__PURE__ */ jsxs36(Fragment8, { children: [
4215
- /* @__PURE__ */ jsx42("div", { children: "\u0E2A\u0E21\u0E32\u0E0A\u0E34\u0E01\u0E17\u0E35\u0E48\u0E40\u0E25\u0E37\u0E2D\u0E01" }),
4216
- filteredAssigned.map((user) => /* @__PURE__ */ jsxs36(
4290
+ /* @__PURE__ */ jsx42("div", { className: "overflow-y-auto h-[250px] pt-2 px-4 body-3", children: noUserOption ? /* @__PURE__ */ jsx42("div", { className: "flex items-center justify-center h-full text-gray-400 select-none", children: "\u0E22\u0E31\u0E07\u0E44\u0E21\u0E48\u0E21\u0E35\u0E1C\u0E39\u0E49\u0E04\u0E19\u0E43\u0E2B\u0E49\u0E40\u0E25\u0E37\u0E2D\u0E01" }) : isSearching && noResult ? /* @__PURE__ */ jsx42("div", { className: "flex items-center justify-center h-full text-gray-400 select-none", children: "\u0E44\u0E21\u0E48\u0E1E\u0E1A\u0E1C\u0E39\u0E49\u0E04\u0E19\u0E17\u0E35\u0E48\u0E15\u0E23\u0E07\u0E01\u0E31\u0E1A\u0E01\u0E32\u0E23\u0E04\u0E49\u0E19\u0E2B\u0E32" }) : /* @__PURE__ */ jsxs34(Fragment8, { children: [
4291
+ filteredAssigned.length > 0 && /* @__PURE__ */ jsxs34(Fragment8, { children: [
4292
+ /* @__PURE__ */ jsx42("div", { className: "mb-1", children: "\u0E2A\u0E21\u0E32\u0E0A\u0E34\u0E01\u0E17\u0E35\u0E48\u0E40\u0E25\u0E37\u0E2D\u0E01" }),
4293
+ filteredAssigned.map((user) => /* @__PURE__ */ jsxs34(
4217
4294
  "button",
4218
4295
  {
4219
4296
  className: "flex items-center group my-1 w-full p-1 rounded hover:bg-gray-100",
4220
4297
  children: [
4221
- /* @__PURE__ */ jsxs36("div", { className: "relative cursor-pointer", children: [
4298
+ /* @__PURE__ */ jsxs34("div", { className: "relative cursor-pointer", children: [
4222
4299
  /* @__PURE__ */ jsx42(
4223
4300
  "img",
4224
4301
  {
@@ -4235,7 +4312,7 @@ function ProfileSelect({
4235
4312
  /* @__PURE__ */ jsx42(
4236
4313
  "span",
4237
4314
  {
4238
- className: "absolute top-0 right-0 -translate-y-2 translate-x-2 \r\n rounded-full bg-white opacity-0 group-hover:opacity-100 \r\n border-3 border-red-500 flex items-center justify-center transition",
4315
+ className: "absolute top-0 right-0 -translate-y-2 translate-x-2 \r\n rounded-full bg-white opacity-0 group-hover:opacity-100 \r\n border-3 border-red-500 flex items-center justify-center transition",
4239
4316
  onClick: () => onUpdateAssignUser(user, "remove"),
4240
4317
  children: /* @__PURE__ */ jsx42(IconX4, { className: "text-red-500", size: 15 })
4241
4318
  }
@@ -4247,32 +4324,34 @@ function ProfileSelect({
4247
4324
  user.id
4248
4325
  ))
4249
4326
  ] }),
4250
- /* @__PURE__ */ jsx42("div", { children: "\u0E1C\u0E39\u0E49\u0E04\u0E19 " }),
4251
- filteredUnassigned.map((user) => /* @__PURE__ */ jsxs36(
4252
- "button",
4253
- {
4254
- className: "flex items-center my-1 hover:bg-gray-100 w-full p-1 rounded",
4255
- onClick: () => onUpdateAssignUser(user),
4256
- children: [
4257
- /* @__PURE__ */ jsx42(
4258
- "img",
4259
- {
4260
- src: user.profile,
4261
- alt: user.name,
4262
- style: {
4263
- width: avatarSize,
4264
- height: avatarSize,
4265
- borderRadius: "50%"
4266
- },
4267
- className: "border "
4268
- }
4269
- ),
4270
- /* @__PURE__ */ jsx42("span", { className: "ml-2", children: user.name })
4271
- ]
4272
- },
4273
- user.id
4274
- ))
4275
- ] })
4327
+ filteredUnassigned.length > 0 && /* @__PURE__ */ jsxs34(Fragment8, { children: [
4328
+ /* @__PURE__ */ jsx42("div", { className: "mt-2", children: "\u0E1C\u0E39\u0E49\u0E04\u0E19" }),
4329
+ filteredUnassigned.map((user) => /* @__PURE__ */ jsxs34(
4330
+ "button",
4331
+ {
4332
+ className: "flex items-center my-1 hover:bg-gray-100 w-full p-1 rounded",
4333
+ onClick: () => onUpdateAssignUser(user),
4334
+ children: [
4335
+ /* @__PURE__ */ jsx42(
4336
+ "img",
4337
+ {
4338
+ src: user.profile,
4339
+ alt: user.name,
4340
+ style: {
4341
+ width: avatarSize,
4342
+ height: avatarSize,
4343
+ borderRadius: "50%"
4344
+ },
4345
+ className: "border"
4346
+ }
4347
+ ),
4348
+ /* @__PURE__ */ jsx42("span", { className: "ml-2", children: user.name })
4349
+ ]
4350
+ },
4351
+ user.id
4352
+ ))
4353
+ ] })
4354
+ ] }) })
4276
4355
  ]
4277
4356
  }
4278
4357
  ) : null
@@ -4282,7 +4361,7 @@ function ProfileSelect({
4282
4361
  // src/Button/QRCode/QRCode.tsx
4283
4362
  import { useEffect as useEffect8, useRef as useRef7, useState as useState19 } from "react";
4284
4363
  import QRCode from "qrcode";
4285
- import { jsx as jsx43, jsxs as jsxs37 } from "react/jsx-runtime";
4364
+ import { jsx as jsx43, jsxs as jsxs35 } from "react/jsx-runtime";
4286
4365
  var QRCodeGenerator = ({
4287
4366
  url,
4288
4367
  previewSize = 200,
@@ -4377,9 +4456,9 @@ var QRCodeGenerator = ({
4377
4456
  a.click();
4378
4457
  a.remove();
4379
4458
  };
4380
- return /* @__PURE__ */ jsxs37("div", { style: { display: "inline-flex", flexDirection: "column", gap: 8 }, className: "justify-center items-center", children: [
4459
+ return /* @__PURE__ */ jsxs35("div", { style: { display: "inline-flex", flexDirection: "column", gap: 8 }, className: "justify-center items-center", children: [
4381
4460
  url === "" ? /* @__PURE__ */ jsx43("div", { className: "border-1 p-2 mb-2", style: { width: `${previewSize}px`, height: `${previewSize}px` } }) : /* @__PURE__ */ jsx43("canvas", { ref: canvasRef, className: "border-1 p-2 mb-2" }),
4382
- /* @__PURE__ */ jsxs37(
4461
+ /* @__PURE__ */ jsxs35(
4383
4462
  "div",
4384
4463
  {
4385
4464
  style: {
@@ -4390,7 +4469,7 @@ var QRCodeGenerator = ({
4390
4469
  },
4391
4470
  className: "flex-col",
4392
4471
  children: [
4393
- /* @__PURE__ */ jsxs37("div", { className: "flex gap-2 mx-2", children: [
4472
+ /* @__PURE__ */ jsxs35("div", { className: "flex gap-2 mx-2", children: [
4394
4473
  /* @__PURE__ */ jsx43("label", { className: "border-1 p-2 rounded-md flex flex-col w-1/2 text-sm text-gray-400", children: /* @__PURE__ */ jsx43(
4395
4474
  SelectField,
4396
4475
  {
@@ -4418,11 +4497,11 @@ var QRCodeGenerator = ({
4418
4497
  };
4419
4498
 
4420
4499
  // src/TabPropject/TabProject/TabProject.tsx
4421
- import { ConfigProvider as ConfigProvider18, Tabs } from "antd";
4422
- import { jsx as jsx44, jsxs as jsxs38 } from "react/jsx-runtime";
4500
+ import { ConfigProvider as ConfigProvider20, Tabs } from "antd";
4501
+ import { jsx as jsx44, jsxs as jsxs36 } from "react/jsx-runtime";
4423
4502
  function TabProject({ tabOption, now, onChange }) {
4424
4503
  return /* @__PURE__ */ jsx44(
4425
- ConfigProvider18,
4504
+ ConfigProvider20,
4426
4505
  {
4427
4506
  theme: {
4428
4507
  token: {
@@ -4445,7 +4524,7 @@ function TabProject({ tabOption, now, onChange }) {
4445
4524
  onChange,
4446
4525
  items: tabOption.map((item) => ({
4447
4526
  key: item.key,
4448
- label: /* @__PURE__ */ jsxs38("span", { className: "tab-label flex gap-2 items-center body-1", children: [
4527
+ label: /* @__PURE__ */ jsxs36("span", { className: "tab-label flex gap-2 items-center body-1", children: [
4449
4528
  item.icon,
4450
4529
  /* @__PURE__ */ jsx44("span", { children: item.label })
4451
4530
  ] })
@@ -4459,7 +4538,7 @@ function TabProject({ tabOption, now, onChange }) {
4459
4538
  // src/Chart/BarChart/BarChart.tsx
4460
4539
  import { useEffect as useEffect9, useMemo as useMemo2, useRef as useRef8 } from "react";
4461
4540
  import * as d3 from "d3";
4462
- import { jsx as jsx45, jsxs as jsxs39 } from "react/jsx-runtime";
4541
+ import { jsx as jsx45, jsxs as jsxs37 } from "react/jsx-runtime";
4463
4542
  var defaultMargin = { top: 30, right: 200, bottom: 36, left: 50 };
4464
4543
  var defaultColorPalette = [
4465
4544
  "#4E79A7",
@@ -4572,7 +4651,7 @@ var BarChart = ({
4572
4651
  useEffect9(() => {
4573
4652
  render();
4574
4653
  }, [data, height, margin, xDomain.toString(), yDomain.toString()]);
4575
- return /* @__PURE__ */ jsx45("div", { ref: containerRef, style: { width: "100%" }, children: /* @__PURE__ */ jsxs39("svg", { ref: svgRef, role: "img", "aria-label": "Bar chart", style: { display: "block", width: "100%", height }, children: [
4654
+ return /* @__PURE__ */ jsx45("div", { ref: containerRef, style: { width: "100%" }, children: /* @__PURE__ */ jsxs37("svg", { ref: svgRef, role: "img", "aria-label": "Bar chart", style: { display: "block", width: "100%", height }, children: [
4576
4655
  /* @__PURE__ */ jsx45("g", { ref: gRef, transform: `translate(${margin.left},${margin.top})` }),
4577
4656
  /* @__PURE__ */ jsx45("g", { ref: xAxisRef }),
4578
4657
  /* @__PURE__ */ jsx45("g", { ref: yAxisRef })
@@ -4582,7 +4661,7 @@ var BarChart = ({
4582
4661
  // src/Chart/PieChart/PieChart.tsx
4583
4662
  import React3, { useRef as useRef9, useEffect as useEffect10 } from "react";
4584
4663
  import * as d32 from "d3";
4585
- import { jsx as jsx46, jsxs as jsxs40 } from "react/jsx-runtime";
4664
+ import { jsx as jsx46, jsxs as jsxs38 } from "react/jsx-runtime";
4586
4665
  var defaultColors = d32.schemeCategory10;
4587
4666
  var PieChart = ({
4588
4667
  title,
@@ -4616,12 +4695,12 @@ var PieChart = ({
4616
4695
  return `${percentage}%`;
4617
4696
  });
4618
4697
  }, [data, width, height]);
4619
- return /* @__PURE__ */ jsxs40("div", { children: [
4698
+ return /* @__PURE__ */ jsxs38("div", { children: [
4620
4699
  title && /* @__PURE__ */ jsx46("p", { className: "body-2", children: title }),
4621
4700
  description && /* @__PURE__ */ jsx46("p", { className: "caption-1", children: description }),
4622
- /* @__PURE__ */ jsxs40("div", { className: "flex", children: [
4701
+ /* @__PURE__ */ jsxs38("div", { className: "flex", children: [
4623
4702
  /* @__PURE__ */ jsx46("svg", { ref: svgRef }),
4624
- /* @__PURE__ */ jsx46("div", { className: "flex flex-col gap-2 body-3 pl-[200px]", children: dataSide.map((d, i) => /* @__PURE__ */ jsxs40("div", { className: "grid grid-cols-3 gap-2 items-center", children: [
4703
+ /* @__PURE__ */ jsx46("div", { className: "flex flex-col gap-2 body-3 pl-[200px]", children: dataSide.map((d, i) => /* @__PURE__ */ jsxs38("div", { className: "grid grid-cols-3 gap-2 items-center", children: [
4625
4704
  /* @__PURE__ */ jsx46("div", { className: "w-[20px] h-[20px]", style: { backgroundColor: d.color } }),
4626
4705
  /* @__PURE__ */ jsx46("div", { children: d.label }),
4627
4706
  /* @__PURE__ */ jsx46("div", { children: d.value })
@@ -4643,7 +4722,7 @@ import {
4643
4722
  addDays,
4644
4723
  eachHourOfInterval
4645
4724
  } from "date-fns";
4646
- import { jsx as jsx47, jsxs as jsxs41 } from "react/jsx-runtime";
4725
+ import { jsx as jsx47, jsxs as jsxs39 } from "react/jsx-runtime";
4647
4726
  var LAYOUT = {
4648
4727
  barHeight: 40,
4649
4728
  barSpacing: 10,
@@ -4722,7 +4801,7 @@ var ProjectRow = ({ element, barHeight, barSpacing }) => {
4722
4801
  const safeStatus = element.status || "pending";
4723
4802
  const statusColor = getStatusColor(safeStatus);
4724
4803
  const statusLabel = getStatusLabel(safeStatus);
4725
- return /* @__PURE__ */ jsxs41(
4804
+ return /* @__PURE__ */ jsxs39(
4726
4805
  "div",
4727
4806
  {
4728
4807
  style: {
@@ -4734,7 +4813,7 @@ var ProjectRow = ({ element, barHeight, barSpacing }) => {
4734
4813
  marginBottom: `${barSpacing}px`
4735
4814
  },
4736
4815
  children: [
4737
- /* @__PURE__ */ jsxs41("div", { style: { display: "flex", alignItems: "center", gap: "8px" }, children: [
4816
+ /* @__PURE__ */ jsxs39("div", { style: { display: "flex", alignItems: "center", gap: "8px" }, children: [
4738
4817
  /* @__PURE__ */ jsx47(
4739
4818
  "span",
4740
4819
  {
@@ -5003,7 +5082,7 @@ var GanttChart = ({ data, width, height }) => {
5003
5082
  backgroundColor: "#fff",
5004
5083
  overflow: "hidden"
5005
5084
  },
5006
- children: /* @__PURE__ */ jsxs41(
5085
+ children: /* @__PURE__ */ jsxs39(
5007
5086
  "div",
5008
5087
  {
5009
5088
  style: {
@@ -5015,7 +5094,7 @@ var GanttChart = ({ data, width, height }) => {
5015
5094
  },
5016
5095
  children: [
5017
5096
  /* @__PURE__ */ jsx47(RowOverlay, { data, barHeight, barSpacing, totalHeaderHeight }),
5018
- /* @__PURE__ */ jsxs41(
5097
+ /* @__PURE__ */ jsxs39(
5019
5098
  "div",
5020
5099
  {
5021
5100
  ref: leftPanelRef,
@@ -5029,7 +5108,7 @@ var GanttChart = ({ data, width, height }) => {
5029
5108
  zIndex: 2
5030
5109
  },
5031
5110
  children: [
5032
- /* @__PURE__ */ jsxs41(
5111
+ /* @__PURE__ */ jsxs39(
5033
5112
  "div",
5034
5113
  {
5035
5114
  style: {