gwan-design-system 0.1.10 → 0.1.12
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.d.mts +7 -12
- package/dist/index.d.ts +7 -12
- package/dist/index.js +152 -68
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +153 -68
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.d.mts
CHANGED
|
@@ -12,6 +12,7 @@ interface IAvatar {
|
|
|
12
12
|
image?: string;
|
|
13
13
|
variant: string;
|
|
14
14
|
className?: string;
|
|
15
|
+
isLoading?: boolean;
|
|
15
16
|
}
|
|
16
17
|
declare const Avatar: FC<IAvatar>;
|
|
17
18
|
|
|
@@ -114,16 +115,16 @@ interface IFilter {
|
|
|
114
115
|
}
|
|
115
116
|
declare const FilterDropdown: FC<IFilter>;
|
|
116
117
|
|
|
117
|
-
interface IInput {
|
|
118
|
+
interface IInput extends React.HTMLAttributes<HTMLInputElement> {
|
|
118
119
|
label?: string;
|
|
119
120
|
value: string;
|
|
120
|
-
onChange: (value: string) => void;
|
|
121
121
|
disabled?: boolean;
|
|
122
122
|
placeholder?: string;
|
|
123
123
|
inputClassName?: string;
|
|
124
124
|
required?: boolean;
|
|
125
125
|
className?: string;
|
|
126
126
|
type?: string;
|
|
127
|
+
onClear?: () => void;
|
|
127
128
|
}
|
|
128
129
|
declare const Input: FC<IInput>;
|
|
129
130
|
|
|
@@ -164,6 +165,7 @@ interface INavBar {
|
|
|
164
165
|
menuBackgroundColor?: string;
|
|
165
166
|
className?: string;
|
|
166
167
|
menuItemTextClass?: string;
|
|
168
|
+
isLoading?: boolean;
|
|
167
169
|
}
|
|
168
170
|
declare const NavBar: FC<INavBar>;
|
|
169
171
|
|
|
@@ -245,6 +247,7 @@ interface ITableColumn {
|
|
|
245
247
|
header: string;
|
|
246
248
|
render: (row?: any) => JSX.Element;
|
|
247
249
|
headerClassName?: string;
|
|
250
|
+
cellClassName?: string;
|
|
248
251
|
}
|
|
249
252
|
interface ITable {
|
|
250
253
|
columns: ITableColumn[];
|
|
@@ -267,19 +270,11 @@ interface ITag {
|
|
|
267
270
|
}
|
|
268
271
|
declare const Tag: FC<ITag>;
|
|
269
272
|
|
|
270
|
-
declare enum ORDER_STATUS {
|
|
271
|
-
ORDER_PLACED = "Order placed",
|
|
272
|
-
PRINTING_IN_PROGRESS = "Printing in progress",
|
|
273
|
-
PACKAGING = "Packaging",
|
|
274
|
-
DISPATCHED_TO_COURIER = "Dispatched to courier",
|
|
275
|
-
DELIVERED = "Delivered",
|
|
276
|
-
ORDER_CANCELLED = "Order cancelled",
|
|
277
|
-
PENDING = "Pending"
|
|
278
|
-
}
|
|
279
273
|
interface ILog {
|
|
280
|
-
title:
|
|
274
|
+
title: string;
|
|
281
275
|
date?: string;
|
|
282
276
|
description?: string;
|
|
277
|
+
status: string;
|
|
283
278
|
}
|
|
284
279
|
interface ITimeLine {
|
|
285
280
|
logs: ILog[];
|
package/dist/index.d.ts
CHANGED
|
@@ -12,6 +12,7 @@ interface IAvatar {
|
|
|
12
12
|
image?: string;
|
|
13
13
|
variant: string;
|
|
14
14
|
className?: string;
|
|
15
|
+
isLoading?: boolean;
|
|
15
16
|
}
|
|
16
17
|
declare const Avatar: FC<IAvatar>;
|
|
17
18
|
|
|
@@ -114,16 +115,16 @@ interface IFilter {
|
|
|
114
115
|
}
|
|
115
116
|
declare const FilterDropdown: FC<IFilter>;
|
|
116
117
|
|
|
117
|
-
interface IInput {
|
|
118
|
+
interface IInput extends React.HTMLAttributes<HTMLInputElement> {
|
|
118
119
|
label?: string;
|
|
119
120
|
value: string;
|
|
120
|
-
onChange: (value: string) => void;
|
|
121
121
|
disabled?: boolean;
|
|
122
122
|
placeholder?: string;
|
|
123
123
|
inputClassName?: string;
|
|
124
124
|
required?: boolean;
|
|
125
125
|
className?: string;
|
|
126
126
|
type?: string;
|
|
127
|
+
onClear?: () => void;
|
|
127
128
|
}
|
|
128
129
|
declare const Input: FC<IInput>;
|
|
129
130
|
|
|
@@ -164,6 +165,7 @@ interface INavBar {
|
|
|
164
165
|
menuBackgroundColor?: string;
|
|
165
166
|
className?: string;
|
|
166
167
|
menuItemTextClass?: string;
|
|
168
|
+
isLoading?: boolean;
|
|
167
169
|
}
|
|
168
170
|
declare const NavBar: FC<INavBar>;
|
|
169
171
|
|
|
@@ -245,6 +247,7 @@ interface ITableColumn {
|
|
|
245
247
|
header: string;
|
|
246
248
|
render: (row?: any) => JSX.Element;
|
|
247
249
|
headerClassName?: string;
|
|
250
|
+
cellClassName?: string;
|
|
248
251
|
}
|
|
249
252
|
interface ITable {
|
|
250
253
|
columns: ITableColumn[];
|
|
@@ -267,19 +270,11 @@ interface ITag {
|
|
|
267
270
|
}
|
|
268
271
|
declare const Tag: FC<ITag>;
|
|
269
272
|
|
|
270
|
-
declare enum ORDER_STATUS {
|
|
271
|
-
ORDER_PLACED = "Order placed",
|
|
272
|
-
PRINTING_IN_PROGRESS = "Printing in progress",
|
|
273
|
-
PACKAGING = "Packaging",
|
|
274
|
-
DISPATCHED_TO_COURIER = "Dispatched to courier",
|
|
275
|
-
DELIVERED = "Delivered",
|
|
276
|
-
ORDER_CANCELLED = "Order cancelled",
|
|
277
|
-
PENDING = "Pending"
|
|
278
|
-
}
|
|
279
273
|
interface ILog {
|
|
280
|
-
title:
|
|
274
|
+
title: string;
|
|
281
275
|
date?: string;
|
|
282
276
|
description?: string;
|
|
277
|
+
status: string;
|
|
283
278
|
}
|
|
284
279
|
interface ITimeLine {
|
|
285
280
|
logs: ILog[];
|
package/dist/index.js
CHANGED
|
@@ -3,8 +3,34 @@ var __create = Object.create;
|
|
|
3
3
|
var __defProp = Object.defineProperty;
|
|
4
4
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
5
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
6
7
|
var __getProtoOf = Object.getPrototypeOf;
|
|
7
8
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
9
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
10
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
11
|
+
var __spreadValues = (a, b) => {
|
|
12
|
+
for (var prop in b || (b = {}))
|
|
13
|
+
if (__hasOwnProp.call(b, prop))
|
|
14
|
+
__defNormalProp(a, prop, b[prop]);
|
|
15
|
+
if (__getOwnPropSymbols)
|
|
16
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
17
|
+
if (__propIsEnum.call(b, prop))
|
|
18
|
+
__defNormalProp(a, prop, b[prop]);
|
|
19
|
+
}
|
|
20
|
+
return a;
|
|
21
|
+
};
|
|
22
|
+
var __objRest = (source, exclude) => {
|
|
23
|
+
var target = {};
|
|
24
|
+
for (var prop in source)
|
|
25
|
+
if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
|
|
26
|
+
target[prop] = source[prop];
|
|
27
|
+
if (source != null && __getOwnPropSymbols)
|
|
28
|
+
for (var prop of __getOwnPropSymbols(source)) {
|
|
29
|
+
if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
|
|
30
|
+
target[prop] = source[prop];
|
|
31
|
+
}
|
|
32
|
+
return target;
|
|
33
|
+
};
|
|
8
34
|
var __export = (target, all) => {
|
|
9
35
|
for (var name in all)
|
|
10
36
|
__defProp(target, name, { get: all[name], enumerable: true });
|
|
@@ -154,7 +180,8 @@ var Avatar = ({
|
|
|
154
180
|
email,
|
|
155
181
|
image,
|
|
156
182
|
variant,
|
|
157
|
-
className = ""
|
|
183
|
+
className = "",
|
|
184
|
+
isLoading = false
|
|
158
185
|
}) => {
|
|
159
186
|
const [bgColor, setBgColor] = (0, import_react.useState)("transparent");
|
|
160
187
|
const [isTooltipInitialVisible, setIsTooltipInitialVisible] = (0, import_react.useState)(false);
|
|
@@ -195,8 +222,8 @@ var Avatar = ({
|
|
|
195
222
|
className: "rounded-full border border-neutral-400",
|
|
196
223
|
src: image,
|
|
197
224
|
alt: "profile",
|
|
198
|
-
width:
|
|
199
|
-
height:
|
|
225
|
+
width: 55,
|
|
226
|
+
height: 55
|
|
200
227
|
}
|
|
201
228
|
),
|
|
202
229
|
variant === "image-only" /* IMAGE_ONLY */ && renderTooltip(name, email, isTooltipImageVisible)
|
|
@@ -207,7 +234,7 @@ var Avatar = ({
|
|
|
207
234
|
return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(
|
|
208
235
|
"div",
|
|
209
236
|
{
|
|
210
|
-
className: "size-[
|
|
237
|
+
className: "size-[55px] flex items-center justify-center rounded-full font-semibold cursor-default relative",
|
|
211
238
|
style: { backgroundColor: bgColor },
|
|
212
239
|
onMouseEnter: () => setIsTooltipInitialVisible(true),
|
|
213
240
|
onMouseLeave: () => setIsTooltipInitialVisible(false),
|
|
@@ -218,7 +245,16 @@ var Avatar = ({
|
|
|
218
245
|
}
|
|
219
246
|
);
|
|
220
247
|
};
|
|
221
|
-
|
|
248
|
+
if (isLoading) {
|
|
249
|
+
return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { className: "flex flex-row items-center gap-2 pl-[5px] animate-pulse", children: [
|
|
250
|
+
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("div", { className: "w-[55px] h-[55px] rounded-full bg-neutral-400" }),
|
|
251
|
+
(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 gap-2 flex-1", children: [
|
|
252
|
+
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("div", { className: "w-full h-6 bg-neutral-400 rounded-lg" }),
|
|
253
|
+
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("div", { className: "w-[70%] h-4 bg-neutral-400 rounded-lg" })
|
|
254
|
+
] })
|
|
255
|
+
] });
|
|
256
|
+
}
|
|
257
|
+
return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { className: `flex flex-row items-center gap-2 pl-[5px] ${className}`, children: [
|
|
222
258
|
renderAvatarImage(),
|
|
223
259
|
(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: [
|
|
224
260
|
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("p", { className: "text-base font-semibold", children: name }),
|
|
@@ -865,48 +901,68 @@ var FilterDropdown = ({ children, className = "" }) => {
|
|
|
865
901
|
/* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(
|
|
866
902
|
"div",
|
|
867
903
|
{
|
|
868
|
-
className: "flex flex-row gap-4 items-center w-fit border border-neutral-300
|
|
904
|
+
className: "flex flex-row gap-4 items-center w-fit border border-neutral-300 group p-4 rounded-lg cursor-pointer",
|
|
869
905
|
onClick: () => setIsChildrenVisible(!isChildrenVisible),
|
|
870
906
|
children: [
|
|
871
|
-
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)("div", { className: "size-5 text-neutral-
|
|
872
|
-
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)("p", { className: "text-neutral-
|
|
873
|
-
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)("div", { className: "size-5 text-neutral-
|
|
907
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)("div", { className: "size-5 text-neutral-700", children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Filter, {}) }),
|
|
908
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)("p", { className: "text-neutral-700 text-sm", children: "Filter" }),
|
|
909
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)("div", { className: "size-5 text-neutral-700", children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(ChevDown, {}) })
|
|
874
910
|
]
|
|
875
911
|
}
|
|
876
912
|
),
|
|
877
|
-
isChildrenVisible && /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("div", { className: "border border-neutral-300 rounded-lg shadow-lg overflow-y-auto absolute top-
|
|
913
|
+
isChildrenVisible && /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("div", { className: "border border-neutral-300 rounded-lg shadow-lg overflow-y-auto absolute top-[105%] bg-white z-10", children: children(closeDropdown) })
|
|
878
914
|
] });
|
|
879
915
|
};
|
|
880
916
|
var filterDropdown_default = FilterDropdown;
|
|
881
917
|
|
|
882
918
|
// src/components/input/index.tsx
|
|
883
919
|
var import_jsx_runtime31 = require("react/jsx-runtime");
|
|
884
|
-
var Input = ({
|
|
885
|
-
|
|
886
|
-
|
|
887
|
-
|
|
888
|
-
|
|
889
|
-
|
|
890
|
-
|
|
891
|
-
|
|
892
|
-
|
|
893
|
-
|
|
894
|
-
|
|
920
|
+
var Input = (_a) => {
|
|
921
|
+
var _b = _a, {
|
|
922
|
+
label,
|
|
923
|
+
value,
|
|
924
|
+
disabled,
|
|
925
|
+
placeholder = "",
|
|
926
|
+
inputClassName = "",
|
|
927
|
+
required = false,
|
|
928
|
+
className = "",
|
|
929
|
+
type = "text",
|
|
930
|
+
onClear
|
|
931
|
+
} = _b, rest = __objRest(_b, [
|
|
932
|
+
"label",
|
|
933
|
+
"value",
|
|
934
|
+
"disabled",
|
|
935
|
+
"placeholder",
|
|
936
|
+
"inputClassName",
|
|
937
|
+
"required",
|
|
938
|
+
"className",
|
|
939
|
+
"type",
|
|
940
|
+
"onClear"
|
|
941
|
+
]);
|
|
895
942
|
return /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)("div", { className: `flex flex-col gap-1 relative ${className}`, children: [
|
|
896
943
|
label && /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("label", { htmlFor: label, className: "text-sm text-neutral-600 mb-2", children: `${label}${required ? " *" : ""}` }),
|
|
897
|
-
/* @__PURE__ */ (0, import_jsx_runtime31.
|
|
898
|
-
|
|
899
|
-
|
|
900
|
-
|
|
901
|
-
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
944
|
+
/* @__PURE__ */ (0, import_jsx_runtime31.jsxs)("div", { className: "relative", children: [
|
|
945
|
+
/* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
|
|
946
|
+
"input",
|
|
947
|
+
__spreadValues({
|
|
948
|
+
id: label,
|
|
949
|
+
placeholder,
|
|
950
|
+
value,
|
|
951
|
+
disabled,
|
|
952
|
+
className: `border border-neutral-300 outline-none py-4 pl-4 ${onClear ? "pr-8" : "pr-4"} rounded-lg ${disabled ? "cursor-not-allowed" : "cursor-text"} text-sm w-full ${inputClassName}`,
|
|
953
|
+
required,
|
|
954
|
+
type
|
|
955
|
+
}, rest)
|
|
956
|
+
),
|
|
957
|
+
onClear && value && /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
|
|
958
|
+
"div",
|
|
959
|
+
{
|
|
960
|
+
className: "size-3 absolute right-3 top-1/2 -translate-y-1/2 text-neutral-500 hover:text-neutral-900 cursor-pointer",
|
|
961
|
+
onClick: onClear,
|
|
962
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Cross, {})
|
|
963
|
+
}
|
|
964
|
+
)
|
|
965
|
+
] })
|
|
910
966
|
] });
|
|
911
967
|
};
|
|
912
968
|
var input_default = Input;
|
|
@@ -976,7 +1032,8 @@ var NavBar = ({
|
|
|
976
1032
|
isCollapsed = false,
|
|
977
1033
|
menuBackgroundColor = "bg-primary-100",
|
|
978
1034
|
className = "",
|
|
979
|
-
menuItemTextClass = ""
|
|
1035
|
+
menuItemTextClass = "",
|
|
1036
|
+
isLoading = false
|
|
980
1037
|
}) => {
|
|
981
1038
|
const router = (0, import_navigation.useRouter)();
|
|
982
1039
|
const [isActiveMenuItem, setIsActiveMenuItem] = (0, import_react8.useState)("");
|
|
@@ -1038,7 +1095,8 @@ var NavBar = ({
|
|
|
1038
1095
|
name: avatarName,
|
|
1039
1096
|
email: avatarEmail,
|
|
1040
1097
|
variant: isMenuItemsCollapsed ? "image-only" /* IMAGE_ONLY */ : avatarType,
|
|
1041
|
-
image: avatarImage
|
|
1098
|
+
image: avatarImage,
|
|
1099
|
+
isLoading
|
|
1042
1100
|
}
|
|
1043
1101
|
),
|
|
1044
1102
|
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
|
|
@@ -1052,7 +1110,7 @@ var NavBar = ({
|
|
|
1052
1110
|
] })
|
|
1053
1111
|
] }),
|
|
1054
1112
|
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)("div", { className: "border-neutral-50 border-b" }),
|
|
1055
|
-
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)("div", { className: "flex flex-col gap-1", children: menuItems.map((item, index) => {
|
|
1113
|
+
!isLoading ? /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("div", { className: "flex flex-col gap-1", children: menuItems.map((item, index) => {
|
|
1056
1114
|
if (!item.isDivider) {
|
|
1057
1115
|
return /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(
|
|
1058
1116
|
"div",
|
|
@@ -1062,19 +1120,25 @@ var NavBar = ({
|
|
|
1062
1120
|
onMouseEnter: () => setShowTooltip(index),
|
|
1063
1121
|
onMouseLeave: () => setShowTooltip(null),
|
|
1064
1122
|
children: [
|
|
1065
|
-
/* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(
|
|
1066
|
-
|
|
1067
|
-
|
|
1068
|
-
|
|
1069
|
-
|
|
1070
|
-
|
|
1071
|
-
|
|
1072
|
-
|
|
1073
|
-
|
|
1074
|
-
|
|
1075
|
-
|
|
1076
|
-
|
|
1077
|
-
|
|
1123
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(
|
|
1124
|
+
"div",
|
|
1125
|
+
{
|
|
1126
|
+
className: `w-6 h-6 ml-1 relative ${menuItemTextClass}`,
|
|
1127
|
+
children: [
|
|
1128
|
+
item.icon,
|
|
1129
|
+
isMenuCollapsed && /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
|
|
1130
|
+
tooltip_default,
|
|
1131
|
+
{
|
|
1132
|
+
position: "right" /* RIGHT */,
|
|
1133
|
+
label: item.title,
|
|
1134
|
+
isVisible: showTooltip === index,
|
|
1135
|
+
toolTipWidth: "w-fit",
|
|
1136
|
+
toolTipClass: "text-nowrap"
|
|
1137
|
+
}
|
|
1138
|
+
)
|
|
1139
|
+
]
|
|
1140
|
+
}
|
|
1141
|
+
),
|
|
1078
1142
|
!isMenuItemsCollapsed && /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("span", { className: `text-nowrap ${menuItemTextClass}`, children: item.title })
|
|
1079
1143
|
]
|
|
1080
1144
|
},
|
|
@@ -1088,13 +1152,28 @@ var NavBar = ({
|
|
|
1088
1152
|
},
|
|
1089
1153
|
`menu_item_${index + 1}`
|
|
1090
1154
|
);
|
|
1091
|
-
}) })
|
|
1155
|
+
}) }) : /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(NavBarShimmer, { isMenuItemsCollapsed })
|
|
1092
1156
|
]
|
|
1093
1157
|
}
|
|
1094
1158
|
)
|
|
1095
1159
|
}
|
|
1096
1160
|
);
|
|
1097
1161
|
};
|
|
1162
|
+
var NavBarShimmer = ({
|
|
1163
|
+
isMenuItemsCollapsed
|
|
1164
|
+
}) => {
|
|
1165
|
+
return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("div", { className: "flex flex-col gap-2 animate-pulse", children: [...Array(5)].map((_, index) => /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(
|
|
1166
|
+
"div",
|
|
1167
|
+
{
|
|
1168
|
+
className: "flex flex-row gap-4 items-center p-4 rounded-lg bg-neutral-400",
|
|
1169
|
+
children: [
|
|
1170
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)("div", { className: "w-6 h-6 ml-1 bg-neutral-200" }),
|
|
1171
|
+
!isMenuItemsCollapsed && /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("span", { className: "w-full h-4 bg-neutral-200 rounded" })
|
|
1172
|
+
]
|
|
1173
|
+
},
|
|
1174
|
+
index
|
|
1175
|
+
)) });
|
|
1176
|
+
};
|
|
1098
1177
|
var navBar_default = NavBar;
|
|
1099
1178
|
|
|
1100
1179
|
// src/components/pagination/index.tsx
|
|
@@ -1397,7 +1476,14 @@ var Table = ({ columns, data, className = "" }) => {
|
|
|
1397
1476
|
"tr",
|
|
1398
1477
|
{
|
|
1399
1478
|
className: "bg-white hover:bg-neutral-100",
|
|
1400
|
-
children: columns.map(({ render }, cellIndex) => /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
1479
|
+
children: columns.map(({ render, cellClassName }, cellIndex) => /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
1480
|
+
"td",
|
|
1481
|
+
{
|
|
1482
|
+
className: `text-left px-4 py-4 ${cellClassName}`,
|
|
1483
|
+
children: render(row)
|
|
1484
|
+
},
|
|
1485
|
+
`cell_${cellIndex}`
|
|
1486
|
+
))
|
|
1401
1487
|
},
|
|
1402
1488
|
`row_${rowIndex}`
|
|
1403
1489
|
)) })
|
|
@@ -1450,10 +1536,11 @@ var import_jsx_runtime41 = require("react/jsx-runtime");
|
|
|
1450
1536
|
var TimeLine = ({ logs, className = "" }) => {
|
|
1451
1537
|
const [steps, setSteps] = (0, import_react11.useState)([]);
|
|
1452
1538
|
(0, import_react11.useEffect)(() => {
|
|
1453
|
-
if (logs[0].
|
|
1539
|
+
if (logs[0].status !== "Failed" /* FAILED */ && logs[0].status !== "Finished" /* FINISHED */) {
|
|
1454
1540
|
setSteps([
|
|
1455
1541
|
{
|
|
1456
|
-
title: "Pending"
|
|
1542
|
+
title: "Pending",
|
|
1543
|
+
status: "Pending"
|
|
1457
1544
|
},
|
|
1458
1545
|
...logs
|
|
1459
1546
|
]);
|
|
@@ -1463,33 +1550,30 @@ var TimeLine = ({ logs, className = "" }) => {
|
|
|
1463
1550
|
}, [logs]);
|
|
1464
1551
|
const getIcon = (status) => {
|
|
1465
1552
|
switch (status) {
|
|
1466
|
-
case "
|
|
1467
|
-
case "
|
|
1468
|
-
|
|
1469
|
-
case "
|
|
1470
|
-
|
|
1471
|
-
return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("div", { className: "size-5 bg-green-500 rounded-full p-1 text-white", children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Check, {}) });
|
|
1472
|
-
case "Order cancelled" /* ORDER_CANCELLED */:
|
|
1473
|
-
return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("div", { className: "size-5 bg-red-500 rounded-full p-1 text-white", children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Cross, {}) });
|
|
1553
|
+
case "Success" /* SUCCESS */:
|
|
1554
|
+
case "Finished" /* FINISHED */:
|
|
1555
|
+
return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("div", { className: "size-4 bg-green-500 rounded-full text-white p-2" });
|
|
1556
|
+
case "Failed" /* FAILED */:
|
|
1557
|
+
return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("div", { className: "size-4 bg-red-500 rounded-full text-white p-2" });
|
|
1474
1558
|
default:
|
|
1475
|
-
return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("div", { className: "size-
|
|
1559
|
+
return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("div", { className: "size-4 bg-neutral-600 text-neutral-200 rounded-full p-1", children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Circle, {}) });
|
|
1476
1560
|
}
|
|
1477
1561
|
};
|
|
1478
|
-
return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("div", { className, children: steps.map(({ title, date, description }, index) => /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("div", { className: "flex flex-row gap-4", children: [
|
|
1562
|
+
return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("div", { className, children: steps.map(({ title, date, description, status }, index) => /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("div", { className: "flex flex-row gap-4", children: [
|
|
1479
1563
|
/* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("div", { className: "flex flex-col items-center", children: [
|
|
1480
|
-
getIcon(
|
|
1481
|
-
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)("div", { className: "w-0.5 h-full bg-neutral-
|
|
1564
|
+
getIcon(status),
|
|
1565
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)("div", { className: "w-0.5 h-full bg-neutral-100" })
|
|
1482
1566
|
] }),
|
|
1483
1567
|
/* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("div", { className: "flex flex-col flex-1", children: [
|
|
1484
1568
|
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
|
|
1485
1569
|
"p",
|
|
1486
1570
|
{
|
|
1487
|
-
className: `text-base font-semibold relative top-[-2px] ${
|
|
1571
|
+
className: `text-base font-semibold relative top-[-2px] ${status === "Pending" ? "pb-8" : ""}`,
|
|
1488
1572
|
children: title
|
|
1489
1573
|
}
|
|
1490
1574
|
),
|
|
1491
1575
|
title && /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("p", { className: "text-xs text-neutral-700", children: date }),
|
|
1492
|
-
description && /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("p", { className: "p-4 text-xs bg-neutral-50 text-neutral-800 rounded-lg my-2", children: description })
|
|
1576
|
+
description && /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("p", { className: "p-4 text-xs bg-neutral-50 text-neutral-800 rounded-lg my-2 max-w-80", children: description })
|
|
1493
1577
|
] })
|
|
1494
1578
|
] }, `log_${index}`)) });
|
|
1495
1579
|
};
|