@apexcura/ui-components 0.0.14-Beta22 → 0.0.14-Beta220

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.js CHANGED
@@ -31,20 +31,27 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
31
31
  var src_exports = {};
32
32
  __export(src_exports, {
33
33
  AddMoreTable: () => AddMoreTable,
34
+ BarChart: () => BarChart,
34
35
  ButtonElement: () => ButtonElement,
35
36
  CheckboxElement: () => CheckboxElement,
37
+ CircleDonut: () => CircleDonut,
36
38
  CkEditor: () => CkEditor,
37
39
  DatePickerElement: () => DatePickerElement,
38
40
  DateRangePickerElement: () => DateRangePickerElement,
41
+ DoubleBarChart: () => DoubleBarChart,
39
42
  DropDownGroup: () => DropDownGroup,
40
43
  FileUpload: () => FileUpload,
44
+ HorizontalBarChart: () => HorizontalBarChart,
41
45
  Image: () => Image,
46
+ LineChart: () => LineChart,
42
47
  MultipleSelectElement: () => MultipleSelectElement,
43
48
  Navbar: () => Navbar,
44
49
  NumberElement: () => NumberElement,
50
+ OtpElement: () => OtpElement,
45
51
  PasswordElement: () => PasswordElement,
46
52
  RadioElement: () => RadioElement,
47
53
  SelectElement: () => SelectElement,
54
+ SemiCircleDonut: () => SemiCircleDonut,
48
55
  Sidebar: () => Sidebar,
49
56
  SingleCheckbox: () => SingleCheckbox,
50
57
  SingleSelectElement: () => SingleSelectElement,
@@ -52,7 +59,8 @@ __export(src_exports, {
52
59
  TableElement: () => TableElement,
53
60
  TabsElement: () => TabsElement,
54
61
  TextElement: () => TextElement,
55
- TextareaElement: () => TextareaElement
62
+ TextareaElement: () => TextareaElement,
63
+ Upload: () => Upload2
56
64
  });
57
65
  module.exports = __toCommonJS(src_exports);
58
66
 
@@ -71,6 +79,7 @@ var TextElement = (props) => {
71
79
  placeholder: props.placeholder,
72
80
  allowClear: true,
73
81
  id: props.name,
82
+ value: props.value,
74
83
  prefix: props.prefix,
75
84
  type: props.type,
76
85
  status: props.status,
@@ -130,8 +139,7 @@ var NumberElement = (props) => {
130
139
  {
131
140
  placeholder: props.placeholder,
132
141
  addonBefore: props.addonBefore,
133
- allowClear: true,
134
- defaultValue: props.defaultValue,
142
+ value: props.value,
135
143
  disabled: props.disabled,
136
144
  id: props.name,
137
145
  prefix: props.prefix,
@@ -376,13 +384,30 @@ var MultipleSelectElement = (props) => {
376
384
  // src/Components/Button.tsx
377
385
  var import_react11 = __toESM(require("react"));
378
386
  var ButtonElement = (props) => {
387
+ const textColorClass = props.className?.match(/text-[\w-]+/g)?.[0];
388
+ console.log(textColorClass);
379
389
  return /* @__PURE__ */ import_react11.default.createElement(
380
390
  "button",
381
391
  {
382
- onClick: () => props.onClick && props.onClick(),
383
- className: `${props.className ? props.className : ""}`
392
+ onClick: props.onClick,
393
+ className: `${props.className ? props.className : ""}`,
394
+ disabled: props.loading,
395
+ style: {
396
+ cursor: props.loading ? "no-drop" : "pointer"
397
+ }
384
398
  },
385
- props.icon && /* @__PURE__ */ import_react11.default.createElement("img", { className: props.iconsClassName, src: props.icon }),
399
+ props.icon && JSON.parse(props.icon),
400
+ /* @__PURE__ */ import_react11.default.createElement("span", { className: props.iconsClassName, style: { position: "relative" } }, /* @__PURE__ */ import_react11.default.createElement(
401
+ "span",
402
+ {
403
+ className: props.iconsClassName,
404
+ dangerouslySetInnerHTML: { __html: props.icon || "" }
405
+ }
406
+ ), /* @__PURE__ */ import_react11.default.createElement("style", null, `.${props.iconsClassName} path {
407
+ fill: ${textColorClass};
408
+ }`, `.${props.iconsClassName}:hover path {
409
+ filter: brightness(0) invert(1);
410
+ }`)),
386
411
  props.label
387
412
  );
388
413
  };
@@ -525,10 +550,19 @@ var Sidebar = (props) => {
525
550
  props.onChange(item);
526
551
  }
527
552
  };
528
- return /* @__PURE__ */ import_react13.default.createElement("div", { className: props.className, key: props.name }, /* @__PURE__ */ import_react13.default.createElement("div", null, /* @__PURE__ */ import_react13.default.createElement("img", { src: props.img, alt: "logo" })), /* @__PURE__ */ import_react13.default.createElement("ul", { className: props.listClassName }, props.items?.map((item) => {
529
- return /* @__PURE__ */ import_react13.default.createElement("li", { onClick: () => {
530
- handleChange(item);
531
- }, key: item.label, className: `${props.listItemClassName} ${item.active && props.activeClassName}` }, /* @__PURE__ */ import_react13.default.createElement("img", { src: item.icon, className: props.className }), /* @__PURE__ */ import_react13.default.createElement("p", null, item.label));
553
+ return /* @__PURE__ */ import_react13.default.createElement(import_react13.default.Fragment, { key: props.name }, /* @__PURE__ */ import_react13.default.createElement("div", { className: props.imgClassName }, /* @__PURE__ */ import_react13.default.createElement("img", { src: props.img, alt: "logo" })), /* @__PURE__ */ import_react13.default.createElement("div", { className: props.listClassName }, props.items?.map((item) => {
554
+ return /* @__PURE__ */ import_react13.default.createElement(import_react13.default.Fragment, { key: item.label }, /* @__PURE__ */ import_react13.default.createElement(
555
+ ButtonElement,
556
+ {
557
+ ...item,
558
+ className: item.active ? props.activeClassName : props.className,
559
+ iconsClassName: props.iconsClassName,
560
+ onClick: (e) => {
561
+ e.preventDefault();
562
+ handleChange(item);
563
+ }
564
+ }
565
+ ));
532
566
  })));
533
567
  };
534
568
 
@@ -602,18 +636,48 @@ var import_antd13 = require("antd");
602
636
 
603
637
  // src/Components/ModelBody.tsx
604
638
  var import_react18 = __toESM(require("react"));
639
+ var import_moment = __toESM(require("moment"));
605
640
  var ModelBody = (props) => {
606
- return /* @__PURE__ */ import_react18.default.createElement("div", { className: props.modalContent && props.modalContent.className }, props.modalContent && props.modalContent.fields.map((eachField) => {
607
- if (eachField.element === "div") {
608
- return /* @__PURE__ */ import_react18.default.createElement("div", { className: eachField.className }, eachField.label);
609
- } else if (eachField.element === "input-radio") {
610
- return /* @__PURE__ */ import_react18.default.createElement("div", { className: eachField.className }, /* @__PURE__ */ import_react18.default.createElement(RadioElement, { ...eachField }));
611
- } else if (eachField.element === "button") {
612
- return /* @__PURE__ */ import_react18.default.createElement("div", { className: eachField.className }, /* @__PURE__ */ import_react18.default.createElement(ButtonElement, { ...eachField }));
613
- } else {
614
- return null;
641
+ return /* @__PURE__ */ import_react18.default.createElement("div", { className: props.modalContent && props.modalContent.className }, props.modalContent && props.modalContent.fields.map(
642
+ (eachField) => {
643
+ if (eachField.element === "div") {
644
+ return /* @__PURE__ */ import_react18.default.createElement(import_react18.default.Fragment, null, /* @__PURE__ */ import_react18.default.createElement("div", { className: eachField.className }, eachField.label), eachField.dateTime ? /* @__PURE__ */ import_react18.default.createElement(
645
+ "p",
646
+ {
647
+ style: {
648
+ fontSize: "10px",
649
+ textAlign: eachField.source === "bot" ? "left" : "right"
650
+ }
651
+ },
652
+ (0, import_moment.default)(eachField.dateTime).format("LT")
653
+ ) : "");
654
+ } else if (eachField.element === "input-radio") {
655
+ return /* @__PURE__ */ import_react18.default.createElement(import_react18.default.Fragment, null, /* @__PURE__ */ import_react18.default.createElement("div", { className: eachField.className }, /* @__PURE__ */ import_react18.default.createElement(RadioElement, { ...eachField })), eachField.dateTime ? /* @__PURE__ */ import_react18.default.createElement(
656
+ "p",
657
+ {
658
+ style: {
659
+ fontSize: "10px",
660
+ textAlign: eachField.source === "bot" ? "left" : "right"
661
+ }
662
+ },
663
+ (0, import_moment.default)(eachField.dateTime).format("LT")
664
+ ) : "");
665
+ } else if (eachField.element === "button") {
666
+ return /* @__PURE__ */ import_react18.default.createElement(import_react18.default.Fragment, null, /* @__PURE__ */ import_react18.default.createElement("div", { className: eachField.className }, /* @__PURE__ */ import_react18.default.createElement(ButtonElement, { ...eachField })), eachField.dateTime ? /* @__PURE__ */ import_react18.default.createElement(
667
+ "p",
668
+ {
669
+ style: {
670
+ fontSize: "10px",
671
+ textAlign: eachField.source === "bot" ? "left" : "right"
672
+ }
673
+ },
674
+ (0, import_moment.default)(eachField.dateTime).format("LT")
675
+ ) : "");
676
+ } else {
677
+ return null;
678
+ }
615
679
  }
616
- }));
680
+ ));
617
681
  };
618
682
 
619
683
  // src/Components/Model.tsx
@@ -638,9 +702,22 @@ var ModelElement = (props) => {
638
702
  margin: "-10px"
639
703
  }
640
704
  },
641
- Object.entries(selectedRecord).map(([key, value]) => {
642
- const record = columns.filter((eachColumn) => eachColumn.key === key);
643
- return record.length > 0 ? /* @__PURE__ */ import_react19.default.createElement("p", { style: { fontWeight: "500", padding: "10px" }, key }, /* @__PURE__ */ import_react19.default.createElement("span", { style: { fontWeight: "200", color: "gray", paddingRight: "10px" } }, record[0].title), String(value)) : "";
705
+ columns.map((eachColumn) => {
706
+ if (!["index", "View"].includes(eachColumn.key) && eachColumn?.["is_detail"] !== false) {
707
+ return /* @__PURE__ */ import_react19.default.createElement("p", { style: { fontWeight: "500", padding: "10px" } }, /* @__PURE__ */ import_react19.default.createElement(
708
+ "span",
709
+ {
710
+ style: {
711
+ fontWeight: "200",
712
+ color: "gray",
713
+ paddingRight: "10px"
714
+ }
715
+ },
716
+ eachColumn.title
717
+ ), selectedRecord[eachColumn.key] !== "" ? selectedRecord[eachColumn.key] : "--");
718
+ } else {
719
+ return null;
720
+ }
644
721
  })
645
722
  )
646
723
  },
@@ -649,15 +726,30 @@ var ModelElement = (props) => {
649
726
  };
650
727
 
651
728
  // src/Components/TableElement.tsx
729
+ var import_icons4 = require("@ant-design/icons");
652
730
  var TableElement = (props) => {
653
731
  const { thead, tbody } = props;
654
732
  const [selectedRecord, setSelectedRecord] = (0, import_react20.useState)({});
655
733
  const [model, setModel] = (0, import_react20.useState)(false);
656
- const [selectedRowKeys, setSelectedRowKeys] = (0, import_react20.useState)([]);
734
+ const [dataSource, setDataSource] = (0, import_react20.useState)([]);
735
+ console.log(props.value);
736
+ const defaultVal = props.value;
737
+ (0, import_react20.useEffect)(() => {
738
+ if (tbody) {
739
+ setDataSource(
740
+ tbody.map((row, index) => ({
741
+ ...row,
742
+ key: index,
743
+ index: index + 1
744
+ }))
745
+ );
746
+ }
747
+ }, [tbody]);
657
748
  const handleChange = (record) => {
658
- console.log("record", record);
659
- if (props.onChange) {
660
- props.onChange(record);
749
+ if (record) {
750
+ props.onChange && props.onChange(record);
751
+ } else {
752
+ props.onChange && props.onChange(defaultVal);
661
753
  }
662
754
  };
663
755
  let columns = [];
@@ -665,106 +757,153 @@ var TableElement = (props) => {
665
757
  columns = [
666
758
  {
667
759
  title: "#",
668
- dataIndex: "#",
669
- key: "#"
760
+ dataIndex: "index",
761
+ key: "index",
762
+ fixed: "left"
670
763
  },
671
764
  ...thead.map((col, ind) => ({
672
765
  title: col.label,
673
766
  dataIndex: col.name,
674
767
  key: col.key,
768
+ ellipsis: col.ellipsis,
675
769
  render: col.render,
676
770
  sorter: {
677
771
  compare: (a, b) => {
678
- if (typeof a[col.key] === "number" && typeof a[col.key] === "number") {
772
+ if (typeof a[col.key] === "number" && typeof b[col.key] === "number") {
679
773
  return a[col.key] - b[col.key];
680
- } else if (typeof a[col.key] === "string" && typeof a[col.key] === "string") {
774
+ } else if (typeof a[col.key] === "string" && typeof b[col.key] === "string") {
681
775
  return a[col.key].localeCompare(b[col.key]);
682
776
  }
683
777
  }
684
778
  }
685
- })),
686
- {
779
+ }))
780
+ ];
781
+ if (props.view) {
782
+ columns.push({
687
783
  title: "View",
688
784
  dataIndex: "View",
689
785
  key: "View",
690
- render: (_, record) => /* @__PURE__ */ import_react20.default.createElement(
691
- "a",
692
- {
693
- onClick: () => {
694
- setSelectedRecord(record);
695
- handleChange(record);
696
- setModel(true);
697
- }
698
- },
699
- "View"
700
- )
701
- }
702
- ];
786
+ render: (_, record) => {
787
+ return /* @__PURE__ */ import_react20.default.createElement(
788
+ "a",
789
+ {
790
+ onClick: () => {
791
+ if (props.view) {
792
+ setSelectedRecord(record);
793
+ handleChange(record);
794
+ setModel(true);
795
+ }
796
+ }
797
+ },
798
+ /* @__PURE__ */ import_react20.default.createElement(import_icons4.EyeOutlined, null)
799
+ );
800
+ }
801
+ });
802
+ }
703
803
  }
704
- const dataSource = tbody && tbody.map((row, index) => ({
705
- ...row,
706
- [columns[0].key]: index + 1
707
- }));
708
- const count = dataSource ? dataSource.length : 0;
804
+ const onChangeTable = (pagination, filters, sorter, extra) => {
805
+ if (extra && extra.currentDataSource) {
806
+ setDataSource(
807
+ extra.currentDataSource.map((row, index) => ({
808
+ ...row,
809
+ index: index + 1
810
+ }))
811
+ );
812
+ }
813
+ };
709
814
  const onChangePage = (page, pageSize) => {
710
815
  if (props.onChange) {
711
816
  props.onChange({ name: "pagination", page, pageSize });
712
817
  }
713
818
  };
714
- const onSelectChange = (newSelectedRowKeys) => {
715
- console.log("selectedRowKeys changed: ", newSelectedRowKeys);
716
- setSelectedRowKeys(newSelectedRowKeys);
717
- };
718
819
  const rowSelectionConfig = props.rowSelection ? {
719
- selectedRowKeys,
720
- onChange: onSelectChange
820
+ onChange: (selectedRowKeys, selectedRows) => {
821
+ console.log(
822
+ `selectedRowKeys: ${selectedRowKeys}`,
823
+ "selectedRows: ",
824
+ selectedRows
825
+ );
826
+ if (props.onChange) {
827
+ props.onChange(selectedRows);
828
+ }
829
+ }
721
830
  } : void 0;
722
831
  return /* @__PURE__ */ import_react20.default.createElement(import_react20.default.Fragment, null, /* @__PURE__ */ import_react20.default.createElement(
723
832
  import_antd14.Table,
724
833
  {
725
- pagination: {
834
+ loading: props.loading,
835
+ className: props.className,
836
+ pagination: props.pagination ? {
837
+ defaultCurrent: props.value && props.value.page,
726
838
  showTotal: (total) => `Total: ${total} items`,
727
- total: count,
728
- showSizeChanger: count > 10,
839
+ total: props.count,
840
+ showSizeChanger: props.count ? props.count > 10 : 0 > 10,
729
841
  onChange: onChangePage
842
+ } : false,
843
+ onRow: (record) => {
844
+ return {
845
+ onClick: () => {
846
+ if (props.view) {
847
+ setSelectedRecord(record);
848
+ handleChange(record);
849
+ setModel(true);
850
+ }
851
+ },
852
+ style: { cursor: "pointer" }
853
+ };
730
854
  },
855
+ rowSelection: rowSelectionConfig,
731
856
  dataSource,
732
857
  columns,
858
+ size: props.size,
733
859
  bordered: true,
734
- rowSelection: rowSelectionConfig,
735
- size: props.size && props.size
860
+ onChange: onChangeTable
736
861
  }
737
- ), model && /* @__PURE__ */ import_react20.default.createElement(ModelElement, { selectedRecord, ...props, columns, model, onCancel: () => setModel(false) }));
862
+ ), model && /* @__PURE__ */ import_react20.default.createElement(
863
+ ModelElement,
864
+ {
865
+ selectedRecord,
866
+ ...props,
867
+ columns,
868
+ model,
869
+ onCancel: () => setModel(false)
870
+ }
871
+ ));
738
872
  };
739
873
 
740
874
  // src/Components/DatePicker.tsx
741
875
  var import_react21 = __toESM(require("react"));
742
876
  var import_antd15 = require("antd");
877
+ var import_dayjs = __toESM(require("dayjs"));
878
+ var import_customParseFormat = __toESM(require("dayjs/plugin/customParseFormat.js"));
879
+ var import_moment2 = __toESM(require("moment"));
880
+ import_dayjs.default.extend(import_customParseFormat.default);
743
881
  var DatePickerElement = (props) => {
744
- const [date, setDate] = (0, import_react21.useState)("");
745
- const dateFormat = "DD/MM/YYYY";
746
- const handleChange = (date2, dateString) => {
747
- console.log("date==========", date2);
748
- if (date2) {
749
- console.log("date==", date2);
750
- const formattedDate = date2.format(dateFormat);
751
- setDate(date2);
882
+ const [dateState, setDateState] = (0, import_react21.useState)("");
883
+ const handleChange = (date, dateString) => {
884
+ if (date) {
885
+ const formattedDate = dateString;
886
+ setDateState(date);
752
887
  if (props.onChange) {
753
888
  props.onChange(formattedDate);
754
889
  }
755
890
  } else {
756
- setDate("");
891
+ setDateState("");
757
892
  if (props.onChange) {
758
893
  props.onChange("");
759
894
  }
760
895
  }
761
896
  };
897
+ const disabledDate = (current) => {
898
+ return current && current > (0, import_moment2.default)();
899
+ };
762
900
  return /* @__PURE__ */ import_react21.default.createElement("div", null, /* @__PURE__ */ import_react21.default.createElement(
763
901
  import_antd15.DatePicker,
764
902
  {
903
+ disabledDate,
765
904
  placeholder: props.placeholder,
766
- value: date.format(dateFormat),
767
- variant: "borderless",
905
+ value: dateState,
906
+ format: { format: "DD-MM-YYYY" },
768
907
  onChange: handleChange
769
908
  }
770
909
  ));
@@ -773,29 +912,43 @@ var DatePickerElement = (props) => {
773
912
  // src/Components/DateRangePickerElement.tsx
774
913
  var import_react22 = __toESM(require("react"));
775
914
  var import_antd16 = require("antd");
776
- var import_dayjs = __toESM(require("dayjs"));
915
+ var import_dayjs2 = __toESM(require("dayjs"));
916
+ var import_moment3 = __toESM(require("moment"));
777
917
  var DateRangePickerElement = (props) => {
918
+ const { value } = props;
778
919
  const { RangePicker } = import_antd16.DatePicker;
779
920
  const handleChange = (dates, dateStrings) => {
780
- if (dates && props.onChange) {
781
- props.onChange(dateStrings);
921
+ if (dates) {
922
+ props.onChange && props.onChange(dateStrings);
782
923
  } else {
783
- console.log("Clear");
924
+ props.onChange && props.onChange("");
784
925
  }
785
926
  };
786
927
  const rangePresets = [
787
- { label: "Last 7 Days", value: [(0, import_dayjs.default)().add(-7, "d"), (0, import_dayjs.default)()] },
788
- { label: "Last 14 Days", value: [(0, import_dayjs.default)().add(-14, "d"), (0, import_dayjs.default)()] },
789
- { label: "Last 30 Days", value: [(0, import_dayjs.default)().add(-30, "d"), (0, import_dayjs.default)()] },
790
- { label: "Last 90 Days", value: [(0, import_dayjs.default)().add(-90, "d"), (0, import_dayjs.default)()] }
928
+ { label: "Last 7 Days", value: [(0, import_dayjs2.default)().add(-7, "d"), (0, import_dayjs2.default)()] },
929
+ { label: "Last 14 Days", value: [(0, import_dayjs2.default)().add(-14, "d"), (0, import_dayjs2.default)()] },
930
+ { label: "Last 30 Days", value: [(0, import_dayjs2.default)().add(-30, "d"), (0, import_dayjs2.default)()] },
931
+ { label: "Last 90 Days", value: [(0, import_dayjs2.default)().add(-90, "d"), (0, import_dayjs2.default)()] }
791
932
  ];
792
- return /* @__PURE__ */ import_react22.default.createElement(import_antd16.Space, { direction: "vertical", size: 12 }, /* @__PURE__ */ import_react22.default.createElement(RangePicker, { presets: rangePresets, onChange: handleChange }));
933
+ const disabledDate = (current) => {
934
+ return current && current > (0, import_moment3.default)();
935
+ };
936
+ return /* @__PURE__ */ import_react22.default.createElement(import_antd16.Space, { direction: "vertical", size: 12 }, /* @__PURE__ */ import_react22.default.createElement(
937
+ RangePicker,
938
+ {
939
+ disabledDate,
940
+ presets: rangePresets,
941
+ format: { format: "DD-MM-YYYY" },
942
+ onChange: handleChange,
943
+ value: value && [(0, import_dayjs2.default)(value[0]), (0, import_dayjs2.default)(value[1])]
944
+ }
945
+ ));
793
946
  };
794
947
 
795
948
  // src/Components/Image.tsx
796
949
  var import_react23 = __toESM(require("react"));
797
950
  var Image = (props) => {
798
- return /* @__PURE__ */ import_react23.default.createElement("div", null, /* @__PURE__ */ import_react23.default.createElement("img", { className: props.className, src: props.img, alt: "image" }));
951
+ return /* @__PURE__ */ import_react23.default.createElement("img", { className: props.className, src: props.img, alt: "image" });
799
952
  };
800
953
 
801
954
  // src/Components/SingleCheckbox.tsx
@@ -814,60 +967,64 @@ var SingleCheckbox = (props) => {
814
967
  var import_react25 = __toESM(require("react"));
815
968
  var import_antd18 = require("antd");
816
969
  var DropDownGroup = (props) => {
817
- const [selectedValue, setSelectedValue] = (0, import_react25.useState)({ firstValue: {}, secondValue: {} });
818
- console.log(selectedValue);
970
+ const [selectedValue, setSelectedValue] = (0, import_react25.useState)({
971
+ firstValue: {},
972
+ secondValue: {},
973
+ temp: ""
974
+ });
819
975
  const handleFirstChange = (value) => {
820
- const filterOption2 = props.firstOptions?.find((eachOption) => eachOption.value === value);
976
+ console.log(selectedValue.temp);
977
+ const filterOption2 = props.firstOptions?.find(
978
+ (eachOption) => eachOption.value === value
979
+ );
821
980
  setSelectedValue((prev) => {
822
981
  const newValue = { ...prev, firstValue: filterOption2 };
982
+ const { temp, ...rest } = newValue;
823
983
  if (newValue.firstValue) {
824
- props.onChange?.(newValue);
984
+ props.onChange?.(rest);
825
985
  }
826
986
  return newValue;
827
987
  });
828
988
  };
829
989
  const handleSecondChange = (value) => {
830
- const filterOption2 = props.secondOptions?.find((eachOption) => eachOption.value === value);
990
+ const filterOption2 = props.secondOptions?.find(
991
+ (eachOption) => eachOption.value === value
992
+ );
831
993
  setSelectedValue((prev) => {
832
994
  const newValue = { ...prev, secondValue: filterOption2 };
995
+ const { temp, ...rest } = newValue;
833
996
  if (newValue.secondValue) {
834
- props.onChange?.(newValue);
997
+ props.onChange?.(rest);
835
998
  }
836
999
  return newValue;
837
1000
  });
838
1001
  };
839
- return /* @__PURE__ */ import_react25.default.createElement("div", { className: props.className, style: { display: "flex", flexDirection: "row", backgroundColor: "white", borderRadius: 10, border: "1px solid gray" } }, /* @__PURE__ */ import_react25.default.createElement(
1002
+ return /* @__PURE__ */ import_react25.default.createElement("div", { className: props.containerClassName }, props.label && /* @__PURE__ */ import_react25.default.createElement("label", { htmlFor: props.name, className: props.labelClassName }, props.label), /* @__PURE__ */ import_react25.default.createElement("div", { className: props.subContainerClassName }, /* @__PURE__ */ import_react25.default.createElement(
840
1003
  import_antd18.Select,
841
1004
  {
842
1005
  onChange: handleFirstChange,
843
1006
  variant: props.variant,
844
- options: props.firstOptions
1007
+ options: props.firstOptions,
1008
+ className: props.className
845
1009
  }
846
1010
  ), /* @__PURE__ */ import_react25.default.createElement("div", { style: { borderLeft: "1px solid gray", height: "33px" } }), /* @__PURE__ */ import_react25.default.createElement(
847
1011
  import_antd18.Select,
848
1012
  {
849
1013
  onChange: handleSecondChange,
850
1014
  variant: props.variant,
851
- options: props.secondOptions
1015
+ options: props.secondOptions,
1016
+ className: props.className
852
1017
  }
853
- ));
1018
+ )));
854
1019
  };
855
1020
 
856
1021
  // src/Components/FilesUpload.tsx
857
1022
  var import_react26 = __toESM(require("react"));
858
1023
  var import_antd19 = require("antd");
859
- var import_icons4 = require("@ant-design/icons");
1024
+ var import_icons5 = require("@ant-design/icons");
860
1025
  var FileUpload = (props) => {
861
1026
  const { Dragger } = import_antd19.Upload;
862
1027
  const [files, setFiles] = (0, import_react26.useState)([]);
863
- const beforeUpload = (file) => {
864
- const isCorrectFile = ["image/*", "video/*", "application/*"].includes(file.type);
865
- if (!isCorrectFile) {
866
- import_antd19.message.error(`(${file.name}) is an invalid file. Please upload files with the following extensions only (.png/.jpg/.jpeg/.pdf)`);
867
- return import_antd19.Upload.LIST_IGNORE;
868
- }
869
- return true;
870
- };
871
1028
  const handleChange = ({ fileList }) => {
872
1029
  setFiles(fileList);
873
1030
  if (props.onChange) {
@@ -891,12 +1048,11 @@ var FileUpload = (props) => {
891
1048
  maxCount: props.max_count,
892
1049
  multiple: props.multiple,
893
1050
  fileList: files,
894
- beforeUpload,
895
1051
  onChange: handleChange,
896
1052
  showUploadList: true,
897
1053
  customRequest
898
1054
  },
899
- /* @__PURE__ */ import_react26.default.createElement("p", null, /* @__PURE__ */ import_react26.default.createElement(import_icons4.InboxOutlined, null)),
1055
+ /* @__PURE__ */ import_react26.default.createElement("p", null, /* @__PURE__ */ import_react26.default.createElement(import_icons5.InboxOutlined, null)),
900
1056
  /* @__PURE__ */ import_react26.default.createElement("p", null, "Click or drag file to upload")
901
1057
  ));
902
1058
  };
@@ -920,23 +1076,546 @@ var onChange = (checked) => {
920
1076
  console.log(`switch to ${checked}`);
921
1077
  };
922
1078
  var SwitchElement = () => /* @__PURE__ */ import_react28.default.createElement(import_antd21.Switch, { defaultChecked: true, onChange });
1079
+
1080
+ // src/Components/Upload.tsx
1081
+ var import_react29 = __toESM(require("react"));
1082
+ var Upload2 = (props) => {
1083
+ const [file, setFile] = (0, import_react29.useState)();
1084
+ const handleFileChange = (e) => {
1085
+ setFile(e.target.files[0]);
1086
+ if (props.onChange) {
1087
+ props.onChange(e.target.files[0]);
1088
+ }
1089
+ };
1090
+ const handleUpload = async () => {
1091
+ if (!file) {
1092
+ console.error("No file selected");
1093
+ return;
1094
+ }
1095
+ };
1096
+ return /* @__PURE__ */ import_react29.default.createElement("div", { style: { marginTop: 16 } }, /* @__PURE__ */ import_react29.default.createElement("input", { type: "file", onChange: handleFileChange }), /* @__PURE__ */ import_react29.default.createElement(
1097
+ "button",
1098
+ {
1099
+ type: "button",
1100
+ onClick: handleUpload,
1101
+ disabled: !file,
1102
+ style: { marginTop: 16 }
1103
+ },
1104
+ "Upload"
1105
+ ));
1106
+ };
1107
+
1108
+ // src/Components/OtpElement.tsx
1109
+ var import_react30 = __toESM(require("react"));
1110
+ var import_antd22 = require("antd");
1111
+ var OtpElement = (props) => {
1112
+ const length = props.length;
1113
+ const [otp, setOtp] = (0, import_react30.useState)(Array(length).fill(""));
1114
+ const inputRefs = (0, import_react30.useRef)([]);
1115
+ const handleChange = (e, index) => {
1116
+ const value = e.target.value;
1117
+ if (/^[0-9]$/.test(value) || value === "") {
1118
+ const newOtp = [...otp];
1119
+ newOtp[index] = value;
1120
+ setOtp(newOtp);
1121
+ props.onChange && props.onChange(newOtp.join(""));
1122
+ if (value && index < length - 1) {
1123
+ inputRefs.current[index + 1]?.focus();
1124
+ }
1125
+ }
1126
+ };
1127
+ const handleKeyDown = (e, index) => {
1128
+ if (e.key === "Backspace" && !otp[index] && index > 0) {
1129
+ inputRefs.current[index - 1]?.focus();
1130
+ }
1131
+ };
1132
+ const handlePaste = (e) => {
1133
+ e.preventDefault();
1134
+ const pasteData = e.clipboardData.getData("text");
1135
+ if (/^\d+$/.test(pasteData)) {
1136
+ const newOtp = pasteData.split("").slice(0, length);
1137
+ setOtp(newOtp.concat(Array(length - newOtp.length).fill("")));
1138
+ props.onChange && props.onChange(newOtp.join(""));
1139
+ newOtp.forEach((_, idx) => {
1140
+ if (inputRefs.current[idx]) {
1141
+ inputRefs.current[idx]?.focus();
1142
+ }
1143
+ });
1144
+ }
1145
+ };
1146
+ (0, import_react30.useEffect)(() => {
1147
+ inputRefs.current[0]?.focus();
1148
+ }, []);
1149
+ return /* @__PURE__ */ import_react30.default.createElement("div", { className: props.containerClassName }, Array.from({ length }).map((_, index) => /* @__PURE__ */ import_react30.default.createElement(
1150
+ import_antd22.Input,
1151
+ {
1152
+ key: index,
1153
+ className: props.className,
1154
+ maxLength: 1,
1155
+ value: otp[index],
1156
+ onChange: (e) => handleChange(e, index),
1157
+ onKeyDown: (e) => handleKeyDown(e, index),
1158
+ onPaste: handlePaste,
1159
+ ref: (el) => inputRefs.current[index] = el
1160
+ }
1161
+ )));
1162
+ };
1163
+
1164
+ // src/Components/CircleDonut.tsx
1165
+ var import_react31 = __toESM(require("react"));
1166
+ var import_react_chartjs_2 = require("react-chartjs-2");
1167
+ var import_chart = require("chart.js");
1168
+ import_chart.Chart.register(import_chart.DoughnutController, import_chart.ArcElement, import_chart.Tooltip, import_chart.Legend);
1169
+ var CircleDonut = (props) => {
1170
+ const data = {
1171
+ labels: props.labels,
1172
+ datasets: [
1173
+ {
1174
+ label: "Bot Conversation",
1175
+ data: props.data,
1176
+ backgroundColor: [
1177
+ "#FFCB8A",
1178
+ "#CADBBF",
1179
+ "#8AC1BB",
1180
+ "#FCB0CB",
1181
+ "#CEB0FA"
1182
+ ],
1183
+ borderWidth: 0
1184
+ }
1185
+ ]
1186
+ };
1187
+ const options = {
1188
+ responsive: true,
1189
+ cutout: "80%",
1190
+ plugins: {
1191
+ legend: {
1192
+ position: "left",
1193
+ labels: {
1194
+ font: {
1195
+ size: 10
1196
+ },
1197
+ boxWidth: 15,
1198
+ generateLabels: (chart) => {
1199
+ const dataset = chart.data.datasets[0];
1200
+ return chart.data.labels.map((label, index) => {
1201
+ const value = dataset.data[index];
1202
+ return {
1203
+ text: `${label}: ${value}`,
1204
+ fillStyle: dataset.backgroundColor[index]
1205
+ };
1206
+ });
1207
+ }
1208
+ }
1209
+ },
1210
+ tooltip: {
1211
+ enabled: true,
1212
+ callbacks: {
1213
+ label: function(context) {
1214
+ const label = context.label || "";
1215
+ const value = context.raw || 0;
1216
+ return `${label}: ${value}`;
1217
+ }
1218
+ }
1219
+ }
1220
+ }
1221
+ };
1222
+ const centerTextPlugin = {
1223
+ id: "centerText",
1224
+ beforeDraw: (chart) => {
1225
+ const { ctx, chartArea: { left, right, top, bottom } } = chart;
1226
+ const width = right - left;
1227
+ const height = bottom - top;
1228
+ const centerX = left + width / 2;
1229
+ const centerY = top + height / 2;
1230
+ ctx.save();
1231
+ ctx.font = "7px Arial";
1232
+ ctx.fillStyle = "blue";
1233
+ ctx.textAlign = "center";
1234
+ ctx.textBaseline = "middle";
1235
+ ctx.fillText("Total Sessions", centerX, centerY - 10);
1236
+ ctx.font = "25px Arial";
1237
+ ctx.fillStyle = "black";
1238
+ ctx.fillText("85", centerX, centerY + 20);
1239
+ ctx.restore();
1240
+ }
1241
+ };
1242
+ return /* @__PURE__ */ import_react31.default.createElement("div", { className: props.className }, /* @__PURE__ */ import_react31.default.createElement("h1", { className: props.labelClassName }, props.label), /* @__PURE__ */ import_react31.default.createElement(import_react_chartjs_2.Doughnut, { data, options, plugins: [centerTextPlugin] }));
1243
+ };
1244
+
1245
+ // src/Components/SemiCircleDonut.tsx
1246
+ var import_react32 = __toESM(require("react"));
1247
+ var import_react_chartjs_22 = require("react-chartjs-2");
1248
+ var import_chart2 = require("chart.js");
1249
+ import_chart2.Chart.register(import_chart2.DoughnutController, import_chart2.ArcElement, import_chart2.Tooltip, import_chart2.Legend);
1250
+ var SemiCircleDonut = (props) => {
1251
+ const data = {
1252
+ labels: [
1253
+ "Registration",
1254
+ "Book Appointment",
1255
+ "Diagnostic Tests",
1256
+ "Hospital Facility",
1257
+ "Others, Prescriptions"
1258
+ ],
1259
+ datasets: [
1260
+ {
1261
+ label: "Bot Conversation",
1262
+ data: [30, 10, 27, 40, 12],
1263
+ backgroundColor: [
1264
+ "#FFCB8A",
1265
+ "#CADBBF",
1266
+ "#8AC1BB",
1267
+ "#FCB0CB",
1268
+ "#CEB0FA"
1269
+ ],
1270
+ borderWidth: 0
1271
+ }
1272
+ ]
1273
+ };
1274
+ const options = {
1275
+ responsive: true,
1276
+ circumference: 180,
1277
+ rotation: -90,
1278
+ cutout: "80%",
1279
+ plugins: {
1280
+ legend: {
1281
+ display: false
1282
+ // Disable the legend
1283
+ },
1284
+ tooltip: {
1285
+ enabled: true,
1286
+ callbacks: {
1287
+ label: function(context) {
1288
+ const label = context.label || "";
1289
+ const value = context.raw || 0;
1290
+ return `${label}: ${value}`;
1291
+ }
1292
+ }
1293
+ }
1294
+ }
1295
+ };
1296
+ const centerTextPlugin = {
1297
+ id: "centerText",
1298
+ beforeDraw: (chart) => {
1299
+ const { ctx, chartArea: { left, right, top, bottom } } = chart;
1300
+ const width = right - left;
1301
+ const height = bottom - top;
1302
+ const centerX = left + width / 2;
1303
+ const centerY = top + height / 1.5;
1304
+ const maxWidth = width * 0.8;
1305
+ ctx.save();
1306
+ ctx.fillStyle = "black";
1307
+ ctx.textAlign = "center";
1308
+ ctx.textBaseline = "middle";
1309
+ const drawText = (text, y, fontSize) => {
1310
+ ctx.font = `${fontSize}px Arial`;
1311
+ const textWidth = ctx.measureText(text).width;
1312
+ if (textWidth > maxWidth) {
1313
+ const newFontSize = fontSize * maxWidth / textWidth;
1314
+ ctx.font = `${newFontSize}px Arial`;
1315
+ }
1316
+ ctx.fillText(text, centerX, y);
1317
+ };
1318
+ drawText(props.fillText1, centerY - 10, 16);
1319
+ drawText(props.fillText2, centerY + 20, 8);
1320
+ ctx.restore();
1321
+ }
1322
+ };
1323
+ return /* @__PURE__ */ import_react32.default.createElement("div", { className: props.className }, /* @__PURE__ */ import_react32.default.createElement("h1", { className: props.labelClassName }, props.label), /* @__PURE__ */ import_react32.default.createElement(import_react_chartjs_22.Doughnut, { data, options, plugins: [centerTextPlugin] }));
1324
+ };
1325
+
1326
+ // src/Components/HorizontalBarChart.tsx
1327
+ var import_react33 = __toESM(require("react"));
1328
+ var import_react_chartjs_23 = require("react-chartjs-2");
1329
+ var import_chart3 = require("chart.js");
1330
+ import_chart3.Chart.register(import_chart3.BarElement, import_chart3.CategoryScale, import_chart3.LinearScale, import_chart3.Tooltip);
1331
+ var HorizontalBarChart = (props) => {
1332
+ const data = {
1333
+ labels: ["18-24", "25-34", "35-44", "45-54", "55-64", "65+"],
1334
+ datasets: [
1335
+ {
1336
+ data: [30, 10, 27, 40, 12, 24],
1337
+ backgroundColor: "#6298D5",
1338
+ barThickness: 15
1339
+ }
1340
+ ]
1341
+ };
1342
+ const options = {
1343
+ responsive: true,
1344
+ indexAxis: "y",
1345
+ scales: {
1346
+ x: {
1347
+ beginAtZero: true,
1348
+ ticks: {
1349
+ callback: function(value) {
1350
+ return `${value}%`;
1351
+ }
1352
+ }
1353
+ },
1354
+ y: {
1355
+ grid: {
1356
+ display: false
1357
+ }
1358
+ }
1359
+ },
1360
+ plugins: {
1361
+ tooltip: {
1362
+ enabled: true,
1363
+ callbacks: {
1364
+ label: function(context) {
1365
+ const label = context.label || "";
1366
+ const value = context.raw || 0;
1367
+ return `${label}: ${value}`;
1368
+ }
1369
+ }
1370
+ },
1371
+ legend: {
1372
+ display: false
1373
+ }
1374
+ }
1375
+ };
1376
+ return /* @__PURE__ */ import_react33.default.createElement("div", { className: props.className }, /* @__PURE__ */ import_react33.default.createElement("h1", { className: props.labelClassName }, props.label), /* @__PURE__ */ import_react33.default.createElement(import_react_chartjs_23.Bar, { data, options }));
1377
+ };
1378
+
1379
+ // src/Components/LineChart.tsx
1380
+ var import_react34 = __toESM(require("react"));
1381
+ var import_auto = __toESM(require("chart.js/auto"));
1382
+ var LineChart = (props) => {
1383
+ const chartRef = (0, import_react34.useRef)(null);
1384
+ const chartInstance = (0, import_react34.useRef)(null);
1385
+ const data = [
1386
+ { label: "ROI", data: [10, 13, 20, 15, 10] },
1387
+ { label: "Engagement Rate", data: [20, 23, 30, 28, 20] },
1388
+ { label: "Conversion Rate", data: [50, 100, 150, 180, 50] }
1389
+ ];
1390
+ const labels = ["Instagram", "Whatsapp", "Messages", "Telegram", "Linkedin"];
1391
+ (0, import_react34.useEffect)(() => {
1392
+ if (chartRef.current) {
1393
+ if (chartInstance.current) {
1394
+ chartInstance.current.destroy();
1395
+ }
1396
+ chartInstance.current = new import_auto.default(chartRef.current, {
1397
+ type: "line",
1398
+ data: {
1399
+ labels,
1400
+ datasets: data.map((dataset, index) => ({
1401
+ label: dataset.label,
1402
+ data: dataset.data,
1403
+ borderColor: index === 0 ? "#FF8F00" : index === 1 ? "#F50057" : "#254AAA",
1404
+ backgroundColor: "rgba(0, 0, 0, 0)",
1405
+ pointBackgroundColor: index === 0 ? "#FF8F00" : index === 1 ? "#F50057" : "#254AAA",
1406
+ pointBorderColor: "white",
1407
+ pointStyle: "circle",
1408
+ pointRadius: 3,
1409
+ tension: 0.1,
1410
+ fill: true
1411
+ }))
1412
+ },
1413
+ options: {
1414
+ plugins: {
1415
+ legend: {
1416
+ labels: {
1417
+ usePointStyle: true
1418
+ }
1419
+ }
1420
+ },
1421
+ scales: {
1422
+ x: {
1423
+ grid: {
1424
+ display: false
1425
+ }
1426
+ },
1427
+ y: {
1428
+ beginAtZero: true,
1429
+ suggestedMax: 200,
1430
+ ticks: {
1431
+ callback: function(value) {
1432
+ return value + "%";
1433
+ }
1434
+ },
1435
+ grid: {
1436
+ display: true
1437
+ }
1438
+ }
1439
+ }
1440
+ }
1441
+ });
1442
+ }
1443
+ return () => {
1444
+ if (chartInstance.current) {
1445
+ chartInstance.current.destroy();
1446
+ }
1447
+ };
1448
+ }, [labels, data]);
1449
+ return /* @__PURE__ */ import_react34.default.createElement("div", { className: props.className }, /* @__PURE__ */ import_react34.default.createElement("canvas", { ref: chartRef }));
1450
+ };
1451
+
1452
+ // src/Components/DoubleBarChart.tsx
1453
+ var import_react35 = __toESM(require("react"));
1454
+ var import_auto2 = __toESM(require("chart.js/auto"));
1455
+ var DoubleBarChart = (props) => {
1456
+ const chartRef = (0, import_react35.useRef)(null);
1457
+ const chartInstance = (0, import_react35.useRef)(null);
1458
+ (0, import_react35.useEffect)(() => {
1459
+ if (chartRef.current) {
1460
+ if (chartInstance.current) {
1461
+ chartInstance.current.destroy();
1462
+ }
1463
+ chartInstance.current = new import_auto2.default(chartRef.current, {
1464
+ type: "bar",
1465
+ data: {
1466
+ labels: [
1467
+ "Summer Health Tips",
1468
+ "New Services Launch",
1469
+ "Discounts on Checkups",
1470
+ "Wellness Webinar",
1471
+ "LinkedIn Insights"
1472
+ ],
1473
+ datasets: [
1474
+ {
1475
+ label: "Engagement Rate",
1476
+ data: [60, 70, 50, 80, 65],
1477
+ // Example data for male
1478
+ backgroundColor: "#93B8E2",
1479
+ barThickness: 10
1480
+ },
1481
+ {
1482
+ label: "Conversion Rate",
1483
+ data: [70, 65, 75, 55, 85],
1484
+ // Example data for female
1485
+ backgroundColor: "#4484CD",
1486
+ barThickness: 10
1487
+ }
1488
+ ]
1489
+ },
1490
+ options: {
1491
+ scales: {
1492
+ x: {
1493
+ grid: {
1494
+ display: false
1495
+ // Display x-axis grid lines
1496
+ }
1497
+ },
1498
+ y: {
1499
+ beginAtZero: true,
1500
+ suggestedMax: 100,
1501
+ ticks: {
1502
+ callback: function(value) {
1503
+ return value + "%";
1504
+ }
1505
+ },
1506
+ grid: {
1507
+ display: true
1508
+ }
1509
+ }
1510
+ },
1511
+ plugins: {
1512
+ legend: {
1513
+ labels: {
1514
+ usePointStyle: true
1515
+ }
1516
+ }
1517
+ }
1518
+ }
1519
+ });
1520
+ }
1521
+ return () => {
1522
+ if (chartInstance.current) {
1523
+ chartInstance.current.destroy();
1524
+ }
1525
+ };
1526
+ }, []);
1527
+ return /* @__PURE__ */ import_react35.default.createElement("div", { className: props.className }, /* @__PURE__ */ import_react35.default.createElement("h1", { className: props.labelClassName }, props.label), /* @__PURE__ */ import_react35.default.createElement("canvas", { ref: chartRef }));
1528
+ };
1529
+
1530
+ // src/Components/BarChart.tsx
1531
+ var import_react36 = __toESM(require("react"));
1532
+ var import_react_chartjs_24 = require("react-chartjs-2");
1533
+ var import_chart4 = require("chart.js");
1534
+ import_chart4.Chart.register(import_chart4.BarElement, import_chart4.CategoryScale, import_chart4.LinearScale, import_chart4.Tooltip);
1535
+ var BarChart = (props) => {
1536
+ const data = {
1537
+ labels: [
1538
+ "17 June",
1539
+ "18 June",
1540
+ "19 June",
1541
+ "20 June",
1542
+ "21 June",
1543
+ "22 June",
1544
+ "23 June"
1545
+ ],
1546
+ datasets: [
1547
+ {
1548
+ data: [30, 100, 270, 140, 120, 240],
1549
+ backgroundColor: "#1565C0",
1550
+ barThickness: 15
1551
+ }
1552
+ ]
1553
+ };
1554
+ const options = {
1555
+ responsive: true,
1556
+ scales: {
1557
+ x: {
1558
+ beginAtZero: true,
1559
+ grid: {
1560
+ display: false
1561
+ }
1562
+ },
1563
+ y: {
1564
+ grid: {
1565
+ display: true
1566
+ },
1567
+ ticks: {
1568
+ min: 0,
1569
+ max: 400,
1570
+ stepSize: 200,
1571
+ callback: function(value) {
1572
+ return `${value}`;
1573
+ }
1574
+ }
1575
+ }
1576
+ },
1577
+ plugins: {
1578
+ tooltip: {
1579
+ enabled: true,
1580
+ callbacks: {
1581
+ label: function(context) {
1582
+ const label = context.label || "";
1583
+ const value = context.raw || 0;
1584
+ return ` ${label}: ${value}`;
1585
+ }
1586
+ }
1587
+ },
1588
+ legend: {
1589
+ display: false
1590
+ }
1591
+ }
1592
+ };
1593
+ return /* @__PURE__ */ import_react36.default.createElement("div", { className: props.className }, /* @__PURE__ */ import_react36.default.createElement("h1", { className: props.labelClassName }, props.label), /* @__PURE__ */ import_react36.default.createElement(import_react_chartjs_24.Bar, { data, options }));
1594
+ };
923
1595
  // Annotate the CommonJS export names for ESM import in node:
924
1596
  0 && (module.exports = {
925
1597
  AddMoreTable,
1598
+ BarChart,
926
1599
  ButtonElement,
927
1600
  CheckboxElement,
1601
+ CircleDonut,
928
1602
  CkEditor,
929
1603
  DatePickerElement,
930
1604
  DateRangePickerElement,
1605
+ DoubleBarChart,
931
1606
  DropDownGroup,
932
1607
  FileUpload,
1608
+ HorizontalBarChart,
933
1609
  Image,
1610
+ LineChart,
934
1611
  MultipleSelectElement,
935
1612
  Navbar,
936
1613
  NumberElement,
1614
+ OtpElement,
937
1615
  PasswordElement,
938
1616
  RadioElement,
939
1617
  SelectElement,
1618
+ SemiCircleDonut,
940
1619
  Sidebar,
941
1620
  SingleCheckbox,
942
1621
  SingleSelectElement,
@@ -944,5 +1623,6 @@ var SwitchElement = () => /* @__PURE__ */ import_react28.default.createElement(i
944
1623
  TableElement,
945
1624
  TabsElement,
946
1625
  TextElement,
947
- TextareaElement
1626
+ TextareaElement,
1627
+ Upload
948
1628
  });