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 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: ORDER_STATUS;
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: ORDER_STATUS;
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: 60,
199
- height: 60
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-[60px] flex items-center justify-center rounded-full font-semibold cursor-default relative",
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
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { className: `flex flex-row items-center gap-2 ${className}`, children: [
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 hover:border-neutral-400 group p-[14px] rounded-lg cursor-pointer",
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-300 group-hover:text-neutral-400", children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Filter, {}) }),
872
- /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("p", { className: "text-neutral-300 text-base group-hover:text-neutral-400", children: "Filter" }),
873
- /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("div", { className: "size-5 text-neutral-300 group-hover:text-neutral-400", children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(ChevDown, {}) })
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-full bg-white z-10", children: children(closeDropdown) })
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
- label,
886
- value,
887
- onChange,
888
- disabled,
889
- placeholder,
890
- inputClassName = "",
891
- required = false,
892
- className = "",
893
- type = "text"
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.jsx)(
898
- "input",
899
- {
900
- id: label,
901
- placeholder,
902
- value,
903
- onChange: (e) => onChange(e.target.value),
904
- disabled,
905
- className: `border border-neutral-300 outline-none p-4 rounded-lg ${disabled ? "cursor-not-allowed" : "cursor-text"} text-sm w-full ${inputClassName}`,
906
- required,
907
- type
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)("div", { className: `w-6 h-6 ml-1 relative ${menuItemTextClass}`, children: [
1066
- item.icon,
1067
- isMenuCollapsed && /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
1068
- tooltip_default,
1069
- {
1070
- position: "right" /* RIGHT */,
1071
- label: item.title,
1072
- isVisible: showTooltip === index,
1073
- toolTipWidth: "w-fit",
1074
- toolTipClass: "text-nowrap"
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)("td", { className: "text-left px-4 py-4", children: render(row) }, `cell_${cellIndex}`))
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].title !== "Order cancelled" /* ORDER_CANCELLED */ && logs[0].title !== "Delivered" /* DELIVERED */) {
1539
+ if (logs[0].status !== "Failed" /* FAILED */ && logs[0].status !== "Finished" /* FINISHED */) {
1454
1540
  setSteps([
1455
1541
  {
1456
- title: "Pending" /* 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 "Order placed" /* ORDER_PLACED */:
1467
- case "Printing in progress" /* PRINTING_IN_PROGRESS */:
1468
- case "Packaging" /* PACKAGING */:
1469
- case "Dispatched to courier" /* DISPATCHED_TO_COURIER */:
1470
- case "Delivered" /* DELIVERED */:
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-5 bg-neutral-600 text-neutral-200 rounded-full p-1", children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(Circle, {}) });
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(title),
1481
- /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("div", { className: "w-0.5 h-full bg-neutral-500" })
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] ${title === "Pending" /* PENDING */ ? "pb-8" : ""}`,
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
  };