gwan-design-system 0.1.5 → 0.1.7
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/README.md +55 -17
- package/dist/index.d.mts +21 -0
- package/dist/index.d.ts +21 -0
- package/dist/index.js +271 -203
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +271 -203
- package/dist/index.mjs.map +1 -1
- package/package.json +5 -4
package/dist/index.js
CHANGED
|
@@ -80,7 +80,8 @@ var Tooltip = ({
|
|
|
80
80
|
label,
|
|
81
81
|
isVisible = false,
|
|
82
82
|
toolTipWidth = "w-60",
|
|
83
|
-
toolTipClass = ""
|
|
83
|
+
toolTipClass = "",
|
|
84
|
+
className = ""
|
|
84
85
|
}) => {
|
|
85
86
|
const getTooltipPosition = (position2) => {
|
|
86
87
|
switch (position2) {
|
|
@@ -113,16 +114,16 @@ var Tooltip = ({
|
|
|
113
114
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
|
|
114
115
|
"div",
|
|
115
116
|
{
|
|
116
|
-
className: `bg-
|
|
117
|
+
className: `bg-neutral-800 text-white text-sm py-1 px-2 rounded-lg absolute z-50
|
|
117
118
|
${isVisible ? "block" : "hidden"} ${getTooltipPosition(
|
|
118
119
|
position
|
|
119
|
-
)} ${toolTipWidth} ${toolTipClass}`,
|
|
120
|
+
)} ${toolTipWidth} ${toolTipClass} ${className}`,
|
|
120
121
|
children: [
|
|
121
122
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { children: label }),
|
|
122
123
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
123
124
|
"div",
|
|
124
125
|
{
|
|
125
|
-
className: `absolute w-2 h-2 bg-
|
|
126
|
+
className: `absolute w-2 h-2 bg-neutral-800 rotate-45 ${tipPosition(
|
|
126
127
|
position
|
|
127
128
|
)}`
|
|
128
129
|
}
|
|
@@ -148,7 +149,13 @@ var generatePastelColor = () => {
|
|
|
148
149
|
const lightness = 75 + Math.random() * 10;
|
|
149
150
|
return `hsl(${hue}, ${saturation}%, ${lightness}%)`;
|
|
150
151
|
};
|
|
151
|
-
var Avatar = ({
|
|
152
|
+
var Avatar = ({
|
|
153
|
+
name,
|
|
154
|
+
email,
|
|
155
|
+
image,
|
|
156
|
+
variant,
|
|
157
|
+
className = ""
|
|
158
|
+
}) => {
|
|
152
159
|
const [bgColor, setBgColor] = (0, import_react.useState)("transparent");
|
|
153
160
|
const [isTooltipInitialVisible, setIsTooltipInitialVisible] = (0, import_react.useState)(false);
|
|
154
161
|
const [isTooltipImageVisible, setIsTooltipImageVisible] = (0, import_react.useState)(false);
|
|
@@ -166,7 +173,7 @@ var Avatar = ({ name, email, image, variant }) => {
|
|
|
166
173
|
position: "right" /* RIGHT */,
|
|
167
174
|
label: /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { className: "flex flex-col", children: [
|
|
168
175
|
name2,
|
|
169
|
-
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("p", { className: "text-
|
|
176
|
+
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("p", { className: "text-neutral-300 text-xs", children: email2 })
|
|
170
177
|
] }),
|
|
171
178
|
isVisible,
|
|
172
179
|
toolTipWidth: "w-36"
|
|
@@ -185,7 +192,7 @@ var Avatar = ({ name, email, image, variant }) => {
|
|
|
185
192
|
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
|
|
186
193
|
import_image.default,
|
|
187
194
|
{
|
|
188
|
-
className: "rounded-full border border-
|
|
195
|
+
className: "rounded-full border border-neutral-400",
|
|
189
196
|
src: image,
|
|
190
197
|
alt: "profile",
|
|
191
198
|
width: 60,
|
|
@@ -211,11 +218,11 @@ var Avatar = ({ name, email, image, variant }) => {
|
|
|
211
218
|
}
|
|
212
219
|
);
|
|
213
220
|
};
|
|
214
|
-
return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { className:
|
|
221
|
+
return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { className: `flex flex-row items-center gap-2 ${className}`, children: [
|
|
215
222
|
renderAvatarImage(),
|
|
216
223
|
(variant === "image_with_full" /* IMAGE_WITH_FULL */ || variant === "initials_with_full" /* INITIALS_WITH_FULL */) && /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { className: "flex flex-col", children: [
|
|
217
224
|
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("p", { className: "text-base font-semibold", children: name }),
|
|
218
|
-
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("p", { className: "text-sm text-
|
|
225
|
+
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("p", { className: "text-sm text-neutral-700", children: email })
|
|
219
226
|
] })
|
|
220
227
|
] });
|
|
221
228
|
};
|
|
@@ -230,7 +237,8 @@ var Banner = ({
|
|
|
230
237
|
backgroundImage = "",
|
|
231
238
|
backgroundColor = "",
|
|
232
239
|
titleClassName = "",
|
|
233
|
-
subTitleClassName = ""
|
|
240
|
+
subTitleClassName = "",
|
|
241
|
+
className = ""
|
|
234
242
|
}) => {
|
|
235
243
|
const handleContentPlacement = () => {
|
|
236
244
|
if (contentPlacement === "left") {
|
|
@@ -253,7 +261,7 @@ var Banner = ({
|
|
|
253
261
|
return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
|
|
254
262
|
"div",
|
|
255
263
|
{
|
|
256
|
-
className: `w-full h-[484px] grid grid-cols-2 items-center px-16 ${backgroundColor} bg-no-repeat bg-cover bg-center`,
|
|
264
|
+
className: `w-full h-[484px] grid grid-cols-2 items-center px-16 ${backgroundColor} bg-no-repeat bg-cover bg-center ${className}`,
|
|
257
265
|
style: backgroundImage !== "" ? { backgroundImage: `url(${backgroundImage})` } : {},
|
|
258
266
|
children: handleContentPlacement()
|
|
259
267
|
}
|
|
@@ -275,22 +283,23 @@ var Button = ({
|
|
|
275
283
|
onClick,
|
|
276
284
|
icon,
|
|
277
285
|
type = "button",
|
|
278
|
-
disabled = false
|
|
286
|
+
disabled = false,
|
|
287
|
+
className = ""
|
|
279
288
|
}) => {
|
|
280
289
|
const getButtonVariant = (variant2) => {
|
|
281
290
|
switch (variant2) {
|
|
282
291
|
case "primary" /* PRIMARY */:
|
|
283
|
-
return disabled ? "bg-
|
|
292
|
+
return disabled ? "bg-neutral-300 text-neutral-800 cursor-not-allowed" : "bg-primary-500 text-white hover:bg-primary-600 active:bg-primary-700";
|
|
284
293
|
case "secondary" /* SECONDARY */:
|
|
285
|
-
return disabled ? "bg-
|
|
294
|
+
return disabled ? "bg-neutral-100 text-neutral-800 cursor-not-allowed" : "bg-neutral-50 text-primary-700 hover:bg-primary-50 active:bg-primary-100";
|
|
286
295
|
case "tertiary" /* TERTIARY */:
|
|
287
|
-
return disabled ? "text-
|
|
296
|
+
return disabled ? "text-neutral-300 border border-neutral-300 cursor-not-allowed" : "bg-transparent text-primary-500 border border-primary-500 hover:bg-neutral-50 active:bg-neutral-100";
|
|
288
297
|
}
|
|
289
298
|
};
|
|
290
299
|
return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
|
|
291
300
|
"button",
|
|
292
301
|
{
|
|
293
|
-
className: `${getButtonVariant(variant)} px-4 ${label ? "py-2" : "py-4"} rounded-lg`,
|
|
302
|
+
className: `${getButtonVariant(variant)} px-4 ${label ? "py-2" : "py-4"} rounded-lg ${className}`,
|
|
294
303
|
type,
|
|
295
304
|
onClick,
|
|
296
305
|
disabled,
|
|
@@ -306,7 +315,11 @@ var button_default = Button;
|
|
|
306
315
|
// src/components/carousel/index.tsx
|
|
307
316
|
var import_react2 = require("react");
|
|
308
317
|
var import_jsx_runtime5 = require("react/jsx-runtime");
|
|
309
|
-
var Carousel = ({
|
|
318
|
+
var Carousel = ({
|
|
319
|
+
slides,
|
|
320
|
+
interval = 3e3,
|
|
321
|
+
className = ""
|
|
322
|
+
}) => {
|
|
310
323
|
const [currentIndex, setCurrentIndex] = (0, import_react2.useState)(0);
|
|
311
324
|
(0, import_react2.useEffect)(() => {
|
|
312
325
|
const timer = setInterval(() => {
|
|
@@ -314,7 +327,7 @@ var Carousel = ({ slides, interval = 3e3 }) => {
|
|
|
314
327
|
}, interval);
|
|
315
328
|
return () => clearInterval(timer);
|
|
316
329
|
}, [slides.length, interval]);
|
|
317
|
-
return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { className:
|
|
330
|
+
return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { className: `relative w-full h-[484px] overflow-hidden ${className}`, children: slides.map(
|
|
318
331
|
({
|
|
319
332
|
title,
|
|
320
333
|
titleClassName,
|
|
@@ -643,7 +656,8 @@ var import_jsx_runtime23 = require("react/jsx-runtime");
|
|
|
643
656
|
var Checkbox = ({
|
|
644
657
|
label,
|
|
645
658
|
checked = false,
|
|
646
|
-
onChange
|
|
659
|
+
onChange,
|
|
660
|
+
className = ""
|
|
647
661
|
}) => {
|
|
648
662
|
const [isChecked, setIsChecked] = (0, import_react3.useState)(checked);
|
|
649
663
|
const handleToggle = () => {
|
|
@@ -652,7 +666,7 @@ var Checkbox = ({
|
|
|
652
666
|
onChange(!isChecked);
|
|
653
667
|
}
|
|
654
668
|
};
|
|
655
|
-
return /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("label", { className:
|
|
669
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("label", { className: `flex items-center gap-2 cursor-pointer ${className}`, children: [
|
|
656
670
|
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
657
671
|
"input",
|
|
658
672
|
{
|
|
@@ -666,7 +680,7 @@ var Checkbox = ({
|
|
|
666
680
|
"div",
|
|
667
681
|
{
|
|
668
682
|
className: `w-5 h-5 flex items-center justify-center border-2 rounded-md transition-all
|
|
669
|
-
${isChecked ? "bg-primary-500 border-primary-600" : "bg-white border-
|
|
683
|
+
${isChecked ? "bg-primary-500 border-primary-600" : "bg-white border-neutral-500"}
|
|
670
684
|
`,
|
|
671
685
|
children: isChecked && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("div", { className: "size-4 text-white", children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(Check, {}) })
|
|
672
686
|
}
|
|
@@ -678,18 +692,24 @@ var checkbox_default = Checkbox;
|
|
|
678
692
|
|
|
679
693
|
// src/components/chip/index.tsx
|
|
680
694
|
var import_jsx_runtime24 = require("react/jsx-runtime");
|
|
681
|
-
var Chip = ({ label, onClear }) => {
|
|
682
|
-
return /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
{
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
695
|
+
var Chip = ({ label, onClear, className = "" }) => {
|
|
696
|
+
return /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(
|
|
697
|
+
"div",
|
|
698
|
+
{
|
|
699
|
+
className: `flex flex-row gap-2 items-center bg-neutral-700 w-fit px-4 py-2 rounded-full ${className}`,
|
|
700
|
+
children: [
|
|
701
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
702
|
+
"div",
|
|
703
|
+
{
|
|
704
|
+
className: "size-3 cursor-pointer text-neutral-200 hover:text-white",
|
|
705
|
+
onClick: onClear,
|
|
706
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(Cross, {})
|
|
707
|
+
}
|
|
708
|
+
),
|
|
709
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)("p", { className: "text-neutral-200 text-base font-semibold", children: label })
|
|
710
|
+
]
|
|
711
|
+
}
|
|
712
|
+
);
|
|
693
713
|
};
|
|
694
714
|
var chip_default = Chip;
|
|
695
715
|
|
|
@@ -699,13 +719,14 @@ var import_jsx_runtime25 = require("react/jsx-runtime");
|
|
|
699
719
|
var Ellipsis = ({
|
|
700
720
|
label,
|
|
701
721
|
tooltipPosition = "right" /* RIGHT */,
|
|
702
|
-
tooltipWidth = "w-40"
|
|
722
|
+
tooltipWidth = "w-40",
|
|
723
|
+
className = ""
|
|
703
724
|
}) => {
|
|
704
725
|
const [isTooltipVisible, setIsTooltipVisible] = (0, import_react4.useState)(false);
|
|
705
726
|
return /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(
|
|
706
727
|
"div",
|
|
707
728
|
{
|
|
708
|
-
className:
|
|
729
|
+
className: `relative ${className}`,
|
|
709
730
|
onMouseEnter: () => setIsTooltipVisible(true),
|
|
710
731
|
onMouseLeave: () => setIsTooltipVisible(false),
|
|
711
732
|
children: [
|
|
@@ -733,7 +754,8 @@ var FileUploader = ({
|
|
|
733
754
|
subTitle1 = "",
|
|
734
755
|
subTitle2 = "",
|
|
735
756
|
handleAttachment,
|
|
736
|
-
accept = ".jpg,.jpeg,.png"
|
|
757
|
+
accept = ".jpg,.jpeg,.png",
|
|
758
|
+
className = ""
|
|
737
759
|
}) => {
|
|
738
760
|
const fileInputRef = (0, import_react5.useRef)(null);
|
|
739
761
|
const handleFileUpload = (event) => {
|
|
@@ -742,57 +764,63 @@ var FileUploader = ({
|
|
|
742
764
|
handleAttachment(files[0]);
|
|
743
765
|
}
|
|
744
766
|
};
|
|
745
|
-
return /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
{
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
|
|
772
|
-
|
|
767
|
+
return /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(
|
|
768
|
+
"div",
|
|
769
|
+
{
|
|
770
|
+
className: `flex flex-row gap-4 items-start border border-dashed border-neutral-200 p-4 rounded-lg ${className}`,
|
|
771
|
+
children: [
|
|
772
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
773
|
+
"div",
|
|
774
|
+
{
|
|
775
|
+
className: "bg-primary-500 hover:bg-primary-600 text-white px-6 py-8 rounded-lg cursor-pointer",
|
|
776
|
+
onClick: () => {
|
|
777
|
+
var _a;
|
|
778
|
+
return (_a = fileInputRef.current) == null ? void 0 : _a.click();
|
|
779
|
+
},
|
|
780
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("div", { className: "size-10", children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(Upload, {}) })
|
|
781
|
+
}
|
|
782
|
+
),
|
|
783
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
784
|
+
"input",
|
|
785
|
+
{
|
|
786
|
+
type: "file",
|
|
787
|
+
ref: fileInputRef,
|
|
788
|
+
accept,
|
|
789
|
+
className: "hidden",
|
|
790
|
+
onChange: handleFileUpload
|
|
791
|
+
}
|
|
792
|
+
),
|
|
793
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("div", { className: "flex-1 flex flex-col", children: [
|
|
794
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)("p", { className: "text-lg", children: title }),
|
|
795
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)("p", { className: "text-sm text-neutral-400", children: subTitle1 }),
|
|
796
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)("p", { className: "text-sm text-neutral-400", children: subTitle2 })
|
|
797
|
+
] })
|
|
798
|
+
]
|
|
799
|
+
}
|
|
800
|
+
);
|
|
773
801
|
};
|
|
774
802
|
var fileUploader_default = FileUploader;
|
|
775
803
|
|
|
776
804
|
// src/components/filterDropdown/index.tsx
|
|
777
805
|
var import_react6 = require("react");
|
|
778
806
|
var import_jsx_runtime27 = require("react/jsx-runtime");
|
|
779
|
-
var FilterDropdown = ({ children }) => {
|
|
807
|
+
var FilterDropdown = ({ children, className = "" }) => {
|
|
780
808
|
const [isChildrenVisible, setIsChildrenVisible] = (0, import_react6.useState)(false);
|
|
781
809
|
const closeDropdown = () => setIsChildrenVisible(false);
|
|
782
|
-
return /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("div", { className:
|
|
810
|
+
return /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("div", { className: `relative ${className}`, children: [
|
|
783
811
|
/* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(
|
|
784
812
|
"div",
|
|
785
813
|
{
|
|
786
|
-
className: "flex flex-row gap-4 items-center w-fit border border-
|
|
814
|
+
className: "flex flex-row gap-4 items-center w-fit border border-neutral-300 hover:border-neutral-400 group p-2 rounded-lg cursor-pointer",
|
|
787
815
|
onClick: () => setIsChildrenVisible(!isChildrenVisible),
|
|
788
816
|
children: [
|
|
789
|
-
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)("div", { className: "size-5 text-
|
|
790
|
-
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)("p", { className: "text-
|
|
791
|
-
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)("div", { className: "size-5 text-
|
|
817
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)("div", { className: "size-5 text-neutral-300 group-hover:text-neutral-400", children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Filter, {}) }),
|
|
818
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)("p", { className: "text-neutral-300 text-base group-hover:text-neutral-400", children: "Filter" }),
|
|
819
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)("div", { className: "size-5 text-neutral-300 group-hover:text-neutral-400", children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(ChevDown, {}) })
|
|
792
820
|
]
|
|
793
821
|
}
|
|
794
822
|
),
|
|
795
|
-
isChildrenVisible && /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("div", { className: "border border-
|
|
823
|
+
isChildrenVisible && /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("div", { className: "border border-neutral-300 rounded-lg shadow-lg overflow-y-auto absolute top-full bg-white z-10", children: children(closeDropdown) })
|
|
796
824
|
] });
|
|
797
825
|
};
|
|
798
826
|
var filterDropdown_default = FilterDropdown;
|
|
@@ -806,10 +834,11 @@ var Input = ({
|
|
|
806
834
|
disabled,
|
|
807
835
|
placeholder,
|
|
808
836
|
inputClassName = "",
|
|
809
|
-
required = false
|
|
837
|
+
required = false,
|
|
838
|
+
className = ""
|
|
810
839
|
}) => {
|
|
811
|
-
return /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("div", { className:
|
|
812
|
-
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)("label", { htmlFor: label, className: "text-sm text-
|
|
840
|
+
return /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("div", { className: `flex flex-col gap-1 relative ${className}`, children: [
|
|
841
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)("label", { htmlFor: label, className: "text-sm text-neutral-600 mb-2", children: `${label}${required ? " *" : ""}` }),
|
|
813
842
|
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
814
843
|
"input",
|
|
815
844
|
{
|
|
@@ -818,7 +847,7 @@ var Input = ({
|
|
|
818
847
|
value,
|
|
819
848
|
onChange: (e) => onChange(e.target.value),
|
|
820
849
|
disabled,
|
|
821
|
-
className: `border border-
|
|
850
|
+
className: `border border-neutral-300 outline-none p-4 rounded-lg ${disabled ? "cursor-not-allowed" : "cursor-text"} text-sm w-full ${inputClassName}`,
|
|
822
851
|
required
|
|
823
852
|
}
|
|
824
853
|
)
|
|
@@ -840,29 +869,36 @@ var Modal = ({
|
|
|
840
869
|
title,
|
|
841
870
|
children,
|
|
842
871
|
onClear,
|
|
843
|
-
size = "w-[800px] h-96" /* MEDIUM
|
|
872
|
+
size = "w-[800px] h-96" /* MEDIUM */,
|
|
873
|
+
className = ""
|
|
844
874
|
}) => {
|
|
845
875
|
const modalRef = (0, import_react7.useRef)(null);
|
|
846
876
|
(0, import_react7.useEffect)(() => {
|
|
847
877
|
var _a;
|
|
848
878
|
(_a = modalRef.current) == null ? void 0 : _a.focus();
|
|
849
879
|
}, []);
|
|
850
|
-
return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
880
|
+
return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
851
881
|
"div",
|
|
852
882
|
{
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
/*
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
|
|
883
|
+
className: `fixed inset-0 flex items-center justify-center bg-[rgba(0,0,0,0.3)] ${className}`,
|
|
884
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(
|
|
885
|
+
"div",
|
|
886
|
+
{
|
|
887
|
+
ref: modalRef,
|
|
888
|
+
tabIndex: -1,
|
|
889
|
+
className: `bg-white p-4 ${size !== "w-full h-full" /* FULL */ && "rounded-lg"} absolute top-1/2 left-1/2 transform -translate-x-1/2 -translate-y-1/2 flex flex-col gap-4 ${size}`,
|
|
890
|
+
onBlur: () => onClear(),
|
|
891
|
+
children: [
|
|
892
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsxs)("div", { className: "flex flex-row gap-4 items-center", children: [
|
|
893
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)("div", { className: "flex-1 text-3xl", children: title }),
|
|
894
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)("div", { className: "size-4 cursor-pointer", onClick: () => onClear(), children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Cross, {}) })
|
|
895
|
+
] }),
|
|
896
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)("div", { className: "flex-1 flex justify-center items-center", children })
|
|
897
|
+
]
|
|
898
|
+
}
|
|
899
|
+
)
|
|
864
900
|
}
|
|
865
|
-
)
|
|
901
|
+
);
|
|
866
902
|
};
|
|
867
903
|
var modal_default = Modal;
|
|
868
904
|
|
|
@@ -882,7 +918,8 @@ var NavBar = ({
|
|
|
882
918
|
menuWidthClass = "w-[20rem]",
|
|
883
919
|
menuHeightClass = "h-[100vh]",
|
|
884
920
|
isCollapsed = false,
|
|
885
|
-
menuBackgroundColor = "bg-primary-100"
|
|
921
|
+
menuBackgroundColor = "bg-primary-100",
|
|
922
|
+
className = ""
|
|
886
923
|
}) => {
|
|
887
924
|
const router = (0, import_navigation.useRouter)();
|
|
888
925
|
const [isActiveMenuItem, setIsActiveMenuItem] = (0, import_react8.useState)("");
|
|
@@ -914,7 +951,7 @@ var NavBar = ({
|
|
|
914
951
|
return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
915
952
|
"div",
|
|
916
953
|
{
|
|
917
|
-
className: `transition-[width] duration-300 ease-in-out ${isMenuCollapsed ? collapsedClass : menuWidthClass} ${menuHeightClass}`,
|
|
954
|
+
className: `transition-[width] duration-300 ease-in-out ${isMenuCollapsed ? collapsedClass : menuWidthClass} ${menuHeightClass} ${className}`,
|
|
918
955
|
children: /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(
|
|
919
956
|
"div",
|
|
920
957
|
{
|
|
@@ -1013,7 +1050,8 @@ var SelectDropdown = ({
|
|
|
1013
1050
|
disabled = false,
|
|
1014
1051
|
value,
|
|
1015
1052
|
onChange,
|
|
1016
|
-
inputClassName = ""
|
|
1053
|
+
inputClassName = "",
|
|
1054
|
+
className = ""
|
|
1017
1055
|
}) => {
|
|
1018
1056
|
const [dropdownValue, setDropdownValue] = (0, import_react9.useState)("");
|
|
1019
1057
|
const [isOptionsVisible, setIsOptionsVisible] = (0, import_react9.useState)(false);
|
|
@@ -1031,16 +1069,16 @@ var SelectDropdown = ({
|
|
|
1031
1069
|
onChange(val);
|
|
1032
1070
|
setIsOptionsVisible(false);
|
|
1033
1071
|
};
|
|
1034
|
-
return /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)("div", { className:
|
|
1035
|
-
label && /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("label", { htmlFor: label, className: "text-sm text-
|
|
1072
|
+
return /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)("div", { className: `flex flex-col gap-1 relative ${className}`, children: [
|
|
1073
|
+
label && /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("label", { htmlFor: label, className: "text-sm text-neutral-600 mb-2", children: label }),
|
|
1036
1074
|
/* @__PURE__ */ (0, import_jsx_runtime31.jsxs)("div", { className: "relative", children: [
|
|
1037
|
-
/* @__PURE__ */ (0, import_jsx_runtime31.jsx)("div", { className: "size-5 absolute inset-y-4 right-4 flex items-center text-
|
|
1075
|
+
/* @__PURE__ */ (0, import_jsx_runtime31.jsx)("div", { className: "size-5 absolute inset-y-4 right-4 flex items-center text-neutral-600 pointer-events-none", children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(ChevDown, {}) }),
|
|
1038
1076
|
/* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
|
|
1039
1077
|
"input",
|
|
1040
1078
|
{
|
|
1041
1079
|
id: label,
|
|
1042
1080
|
type: "text",
|
|
1043
|
-
className: `border border-
|
|
1081
|
+
className: `border border-neutral-300 outline-none p-4 rounded-lg ${disabled ? "cursor-not-allowed" : "cursor-pointer"} text-sm w-full ${inputClassName}`,
|
|
1044
1082
|
placeholder,
|
|
1045
1083
|
onClick: () => setIsOptionsVisible(!isOptionsVisible),
|
|
1046
1084
|
value: dropdownValue,
|
|
@@ -1050,10 +1088,10 @@ var SelectDropdown = ({
|
|
|
1050
1088
|
}
|
|
1051
1089
|
)
|
|
1052
1090
|
] }),
|
|
1053
|
-
isOptionsVisible && /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("div", { className: "border border-
|
|
1091
|
+
isOptionsVisible && /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("div", { className: "border border-neutral-300 rounded-lg shadow-lg max-h-96 overflow-y-auto absolute min-w-full top-full bg-white z-10", children: options.map(({ label: label2, value: val }, index) => /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
|
|
1054
1092
|
"div",
|
|
1055
1093
|
{
|
|
1056
|
-
className: "p-4 cursor-pointer hover:bg-
|
|
1094
|
+
className: "p-4 cursor-pointer hover:bg-neutral-50 text-sm",
|
|
1057
1095
|
onMouseDown: () => handleMouseDown(label2),
|
|
1058
1096
|
children: label2
|
|
1059
1097
|
},
|
|
@@ -1070,7 +1108,8 @@ var Pagination = ({
|
|
|
1070
1108
|
page,
|
|
1071
1109
|
size,
|
|
1072
1110
|
options,
|
|
1073
|
-
onChange
|
|
1111
|
+
onChange,
|
|
1112
|
+
className = ""
|
|
1074
1113
|
}) => {
|
|
1075
1114
|
const [optionDropdown, setOptionDropdown] = (0, import_react10.useState)(size.toString());
|
|
1076
1115
|
const onLeft = () => {
|
|
@@ -1087,43 +1126,49 @@ var Pagination = ({
|
|
|
1087
1126
|
setOptionDropdown(size2);
|
|
1088
1127
|
onChange({ total, page: 1, size: parseInt(size2) });
|
|
1089
1128
|
};
|
|
1090
|
-
return /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(
|
|
1091
|
-
|
|
1092
|
-
|
|
1093
|
-
|
|
1094
|
-
|
|
1095
|
-
|
|
1096
|
-
|
|
1097
|
-
|
|
1098
|
-
|
|
1099
|
-
|
|
1100
|
-
|
|
1101
|
-
|
|
1102
|
-
|
|
1103
|
-
|
|
1104
|
-
|
|
1105
|
-
|
|
1106
|
-
|
|
1107
|
-
|
|
1108
|
-
|
|
1109
|
-
{
|
|
1110
|
-
|
|
1111
|
-
|
|
1112
|
-
|
|
1113
|
-
|
|
1114
|
-
|
|
1115
|
-
|
|
1116
|
-
|
|
1117
|
-
|
|
1118
|
-
|
|
1119
|
-
|
|
1120
|
-
|
|
1121
|
-
|
|
1122
|
-
|
|
1123
|
-
|
|
1124
|
-
|
|
1125
|
-
|
|
1126
|
-
|
|
1129
|
+
return /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(
|
|
1130
|
+
"div",
|
|
1131
|
+
{
|
|
1132
|
+
className: `bg-neutral-50 flex flex-row gap-4 items-center px-4 py-2 rounded-lg ${className}`,
|
|
1133
|
+
children: [
|
|
1134
|
+
/* @__PURE__ */ (0, import_jsx_runtime32.jsxs)("div", { className: "flex-1", children: [
|
|
1135
|
+
page,
|
|
1136
|
+
" of ",
|
|
1137
|
+
Math.ceil(total / size),
|
|
1138
|
+
" pages"
|
|
1139
|
+
] }),
|
|
1140
|
+
/* @__PURE__ */ (0, import_jsx_runtime32.jsx)("div", { className: "w-20", children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
|
|
1141
|
+
selectDropdown_default,
|
|
1142
|
+
{
|
|
1143
|
+
options,
|
|
1144
|
+
value: optionDropdown,
|
|
1145
|
+
onChange: (option) => handlePageSize(option)
|
|
1146
|
+
}
|
|
1147
|
+
) }),
|
|
1148
|
+
/* @__PURE__ */ (0, import_jsx_runtime32.jsx)("div", { children: "items per page" }),
|
|
1149
|
+
/* @__PURE__ */ (0, import_jsx_runtime32.jsxs)("div", { className: "flex flex-row gap-4 items-center", children: [
|
|
1150
|
+
/* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
|
|
1151
|
+
button_default,
|
|
1152
|
+
{
|
|
1153
|
+
onClick: onLeft,
|
|
1154
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(ChevLeft, {}),
|
|
1155
|
+
variant: "tertiary" /* TERTIARY */,
|
|
1156
|
+
disabled: page === 1
|
|
1157
|
+
}
|
|
1158
|
+
),
|
|
1159
|
+
/* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
|
|
1160
|
+
button_default,
|
|
1161
|
+
{
|
|
1162
|
+
onClick: onRight,
|
|
1163
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(ChevRight, {}),
|
|
1164
|
+
variant: "tertiary" /* TERTIARY */,
|
|
1165
|
+
disabled: page === Math.ceil(total / size)
|
|
1166
|
+
}
|
|
1167
|
+
)
|
|
1168
|
+
] })
|
|
1169
|
+
]
|
|
1170
|
+
}
|
|
1171
|
+
);
|
|
1127
1172
|
};
|
|
1128
1173
|
var pagination_default = Pagination;
|
|
1129
1174
|
|
|
@@ -1133,10 +1178,11 @@ var RadioButton = ({
|
|
|
1133
1178
|
label,
|
|
1134
1179
|
value,
|
|
1135
1180
|
selectedValue,
|
|
1136
|
-
onChange
|
|
1181
|
+
onChange,
|
|
1182
|
+
className = ""
|
|
1137
1183
|
}) => {
|
|
1138
1184
|
const isChecked = selectedValue === value;
|
|
1139
|
-
return /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)("label", { className:
|
|
1185
|
+
return /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)("label", { className: `flex items-center gap-2 cursor-pointer ${className}`, children: [
|
|
1140
1186
|
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
|
|
1141
1187
|
"div",
|
|
1142
1188
|
{
|
|
@@ -1175,27 +1221,28 @@ var SNACK_BAR_TYPE = /* @__PURE__ */ ((SNACK_BAR_TYPE2) => {
|
|
|
1175
1221
|
var Snackbar = ({
|
|
1176
1222
|
type = "default" /* DEFAULT */,
|
|
1177
1223
|
message,
|
|
1178
|
-
icon
|
|
1224
|
+
icon,
|
|
1225
|
+
className = ""
|
|
1179
1226
|
}) => {
|
|
1180
1227
|
const getClassName = () => {
|
|
1181
1228
|
switch (type) {
|
|
1182
1229
|
case "success" /* SUCCESS */:
|
|
1183
|
-
return "bg-
|
|
1230
|
+
return "bg-green-50 text-green-800 border-green-500";
|
|
1184
1231
|
case "danger" /* DANGER */:
|
|
1185
|
-
return "bg-
|
|
1232
|
+
return "bg-red-50 text-red-600 border-red-500";
|
|
1186
1233
|
case "warning" /* WARNING */:
|
|
1187
|
-
return "bg-
|
|
1234
|
+
return "bg-yellow-50 text-yellow-800 border-yellow-600";
|
|
1188
1235
|
case "info" /* INFO */:
|
|
1189
|
-
return "bg-
|
|
1236
|
+
return "bg-blue-50 text-blue-800 border-blue-600";
|
|
1190
1237
|
case "default" /* DEFAULT */:
|
|
1191
1238
|
default:
|
|
1192
|
-
return "bg-
|
|
1239
|
+
return "bg-neutral-50 text-neutral-800 border-neutral-500";
|
|
1193
1240
|
}
|
|
1194
1241
|
};
|
|
1195
1242
|
return /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(
|
|
1196
1243
|
"div",
|
|
1197
1244
|
{
|
|
1198
|
-
className: `${getClassName()} p-4 rounded-lg flex flex-row gap-4 items-center font-normal border`,
|
|
1245
|
+
className: `${getClassName()} p-4 rounded-lg flex flex-row gap-4 items-center font-normal border ${className}`,
|
|
1199
1246
|
children: [
|
|
1200
1247
|
icon && /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("div", { className: "size-5", children: icon }),
|
|
1201
1248
|
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)("div", { children: message })
|
|
@@ -1221,7 +1268,8 @@ var State = ({
|
|
|
1221
1268
|
title,
|
|
1222
1269
|
subTitle,
|
|
1223
1270
|
imageWidth = 526,
|
|
1224
|
-
imageHeight = 526
|
|
1271
|
+
imageHeight = 526,
|
|
1272
|
+
className = ""
|
|
1225
1273
|
}) => {
|
|
1226
1274
|
const typeImage = () => {
|
|
1227
1275
|
switch (type) {
|
|
@@ -1237,53 +1285,65 @@ var State = ({
|
|
|
1237
1285
|
return "/images/empty.png";
|
|
1238
1286
|
}
|
|
1239
1287
|
};
|
|
1240
|
-
return /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(
|
|
1241
|
-
|
|
1242
|
-
|
|
1243
|
-
{
|
|
1244
|
-
|
|
1245
|
-
|
|
1246
|
-
|
|
1247
|
-
|
|
1248
|
-
|
|
1249
|
-
|
|
1250
|
-
|
|
1251
|
-
|
|
1252
|
-
|
|
1253
|
-
|
|
1254
|
-
|
|
1255
|
-
|
|
1256
|
-
|
|
1257
|
-
|
|
1258
|
-
|
|
1259
|
-
|
|
1260
|
-
|
|
1261
|
-
|
|
1262
|
-
|
|
1288
|
+
return /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(
|
|
1289
|
+
"div",
|
|
1290
|
+
{
|
|
1291
|
+
className: `w-full h-full flex flex-col gap-8 items-center justify-center ${className}`,
|
|
1292
|
+
children: [
|
|
1293
|
+
stateImage ? /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
|
1294
|
+
import_image3.default,
|
|
1295
|
+
{
|
|
1296
|
+
src: stateImage,
|
|
1297
|
+
alt: "state image",
|
|
1298
|
+
width: imageWidth,
|
|
1299
|
+
height: imageHeight
|
|
1300
|
+
}
|
|
1301
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
|
1302
|
+
import_image3.default,
|
|
1303
|
+
{
|
|
1304
|
+
src: typeImage(),
|
|
1305
|
+
alt: "state image",
|
|
1306
|
+
width: imageWidth,
|
|
1307
|
+
height: imageHeight
|
|
1308
|
+
}
|
|
1309
|
+
),
|
|
1310
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { className: "flex flex-col gap-2", children: [
|
|
1311
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)("p", { className: "text-3xl text-center font-semibold", children: title }),
|
|
1312
|
+
/* @__PURE__ */ (0, import_jsx_runtime35.jsx)("p", { className: "w-[300px] text-center", children: subTitle })
|
|
1313
|
+
] })
|
|
1314
|
+
]
|
|
1315
|
+
}
|
|
1316
|
+
);
|
|
1263
1317
|
};
|
|
1264
1318
|
var state_default = State;
|
|
1265
1319
|
|
|
1266
1320
|
// src/components/table/index.tsx
|
|
1267
1321
|
var import_jsx_runtime36 = require("react/jsx-runtime");
|
|
1268
|
-
var Table = ({ columns, data }) => {
|
|
1269
|
-
return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
|
1270
|
-
|
|
1271
|
-
|
|
1272
|
-
{
|
|
1273
|
-
|
|
1274
|
-
children: header
|
|
1275
|
-
|
|
1276
|
-
|
|
1277
|
-
|
|
1278
|
-
|
|
1279
|
-
|
|
1280
|
-
|
|
1281
|
-
|
|
1282
|
-
|
|
1283
|
-
|
|
1284
|
-
|
|
1285
|
-
|
|
1286
|
-
|
|
1322
|
+
var Table = ({ columns, data, className = "" }) => {
|
|
1323
|
+
return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
|
1324
|
+
"div",
|
|
1325
|
+
{
|
|
1326
|
+
className: `overflow-hidden rounded-lg border border-neutral-300 ${className}`,
|
|
1327
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)("table", { className: "w-full border-collapse", children: [
|
|
1328
|
+
/* @__PURE__ */ (0, import_jsx_runtime36.jsx)("thead", { children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("tr", { className: "bg-neutral-300 border border-neutral-300", children: columns.map(({ header, headerClassName }, index) => /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
|
1329
|
+
"th",
|
|
1330
|
+
{
|
|
1331
|
+
className: `text-left px-4 py-4 ${headerClassName}`,
|
|
1332
|
+
children: header
|
|
1333
|
+
},
|
|
1334
|
+
`column_${index}`
|
|
1335
|
+
)) }) }),
|
|
1336
|
+
/* @__PURE__ */ (0, import_jsx_runtime36.jsx)("tbody", { children: data.map((row, rowIndex) => /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
|
1337
|
+
"tr",
|
|
1338
|
+
{
|
|
1339
|
+
className: "bg-white hover:bg-neutral-100",
|
|
1340
|
+
children: columns.map(({ render }, cellIndex) => /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("td", { className: "text-left px-4 py-4", children: render(row) }, `cell_${cellIndex}`))
|
|
1341
|
+
},
|
|
1342
|
+
`row_${rowIndex}`
|
|
1343
|
+
)) })
|
|
1344
|
+
] })
|
|
1345
|
+
}
|
|
1346
|
+
);
|
|
1287
1347
|
};
|
|
1288
1348
|
var table_default = Table;
|
|
1289
1349
|
|
|
@@ -1297,29 +1357,37 @@ var TAG_TYPE = /* @__PURE__ */ ((TAG_TYPE2) => {
|
|
|
1297
1357
|
TAG_TYPE2["INFO"] = "info";
|
|
1298
1358
|
return TAG_TYPE2;
|
|
1299
1359
|
})(TAG_TYPE || {});
|
|
1300
|
-
var Tag = ({ type, label }) => {
|
|
1360
|
+
var Tag = ({ type, label, className = "" }) => {
|
|
1301
1361
|
const getTagStyle = (type2) => {
|
|
1302
1362
|
switch (type2) {
|
|
1303
1363
|
case "success" /* SUCCESS */:
|
|
1304
|
-
return "bg-
|
|
1364
|
+
return "bg-green-50 text-green-600";
|
|
1305
1365
|
case "danger" /* DANGER */:
|
|
1306
|
-
return "bg-
|
|
1366
|
+
return "bg-red-50 text-red-600";
|
|
1307
1367
|
case "warning" /* WARNING */:
|
|
1308
|
-
return "bg-
|
|
1368
|
+
return "bg-yellow-50 text-yellow-600";
|
|
1309
1369
|
case "info" /* INFO */:
|
|
1310
|
-
return "bg-
|
|
1370
|
+
return "bg-blue-50 text-blue-600";
|
|
1311
1371
|
default:
|
|
1312
|
-
return "bg-
|
|
1372
|
+
return "bg-neutral-50 text-neutral-600";
|
|
1313
1373
|
}
|
|
1314
1374
|
};
|
|
1315
|
-
return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
|
|
1375
|
+
return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
|
|
1376
|
+
"div",
|
|
1377
|
+
{
|
|
1378
|
+
className: `w-fit px-4 py-2 rounded-lg text-sm ${getTagStyle(
|
|
1379
|
+
type
|
|
1380
|
+
)} ${className}`,
|
|
1381
|
+
children: label
|
|
1382
|
+
}
|
|
1383
|
+
);
|
|
1316
1384
|
};
|
|
1317
1385
|
var tag_default = Tag;
|
|
1318
1386
|
|
|
1319
1387
|
// src/components/timeLine/index.tsx
|
|
1320
1388
|
var import_react11 = require("react");
|
|
1321
1389
|
var import_jsx_runtime38 = require("react/jsx-runtime");
|
|
1322
|
-
var TimeLine = ({ logs }) => {
|
|
1390
|
+
var TimeLine = ({ logs, className = "" }) => {
|
|
1323
1391
|
const [steps, setSteps] = (0, import_react11.useState)([]);
|
|
1324
1392
|
(0, import_react11.useEffect)(() => {
|
|
1325
1393
|
if (logs[0].title !== "Order cancelled" /* ORDER_CANCELLED */ && logs[0].title !== "Delivered" /* DELIVERED */) {
|
|
@@ -1340,17 +1408,17 @@ var TimeLine = ({ logs }) => {
|
|
|
1340
1408
|
case "Packaging" /* PACKAGING */:
|
|
1341
1409
|
case "Dispatched to courier" /* DISPATCHED_TO_COURIER */:
|
|
1342
1410
|
case "Delivered" /* DELIVERED */:
|
|
1343
|
-
return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { className: "size-5 bg-
|
|
1411
|
+
return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { className: "size-5 bg-green-500 rounded-full p-1 text-white", children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(Check, {}) });
|
|
1344
1412
|
case "Order cancelled" /* ORDER_CANCELLED */:
|
|
1345
|
-
return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { className: "size-5 bg-
|
|
1413
|
+
return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { className: "size-5 bg-red-500 rounded-full p-1 text-white", children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(Cross, {}) });
|
|
1346
1414
|
default:
|
|
1347
|
-
return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { className: "size-5 bg-
|
|
1415
|
+
return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { className: "size-5 bg-neutral-600 text-neutral-200 rounded-full p-1", children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(Circle, {}) });
|
|
1348
1416
|
}
|
|
1349
1417
|
};
|
|
1350
|
-
return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { children: steps.map(({ title, date, description }, index) => /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: "flex flex-row gap-4", children: [
|
|
1418
|
+
return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { className, children: steps.map(({ title, date, description }, index) => /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: "flex flex-row gap-4", children: [
|
|
1351
1419
|
/* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: "flex flex-col items-center", children: [
|
|
1352
1420
|
getIcon(title),
|
|
1353
|
-
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { className: "w-0.5 h-full bg-
|
|
1421
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { className: "w-0.5 h-full bg-neutral-500" })
|
|
1354
1422
|
] }),
|
|
1355
1423
|
/* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: "flex flex-col flex-1", children: [
|
|
1356
1424
|
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
|
|
@@ -1360,8 +1428,8 @@ var TimeLine = ({ logs }) => {
|
|
|
1360
1428
|
children: title
|
|
1361
1429
|
}
|
|
1362
1430
|
),
|
|
1363
|
-
title && /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("p", { className: "text-xs text-
|
|
1364
|
-
description && /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("p", { className: "p-4 text-xs bg-
|
|
1431
|
+
title && /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("p", { className: "text-xs text-neutral-700", children: date }),
|
|
1432
|
+
description && /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("p", { className: "p-4 text-xs bg-neutral-50 text-neutral-800 rounded-lg my-2", children: description })
|
|
1365
1433
|
] })
|
|
1366
1434
|
] }, `log_${index}`)) });
|
|
1367
1435
|
};
|