@burdenoff/microfe-kadaikodi 2026.802.1 → 2026.830.1

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.
Files changed (58) hide show
  1. package/dist/kadaikodi/KadaikodiRoot.d.ts.map +1 -1
  2. package/dist/kadaikodi/KadaikodiRoot.js +69 -72
  3. package/dist/kadaikodi/KadaikodiRoot.js.map +1 -1
  4. package/dist/kadaikodi/components/InvestmentCard.d.ts.map +1 -1
  5. package/dist/kadaikodi/components/InvestmentCard.js +58 -54
  6. package/dist/kadaikodi/components/InvestmentCard.js.map +1 -1
  7. package/dist/kadaikodi/components/OrderCard.d.ts.map +1 -1
  8. package/dist/kadaikodi/components/StatusBadge.d.ts.map +1 -1
  9. package/dist/kadaikodi/components/StatusBadge.js +25 -14
  10. package/dist/kadaikodi/components/StatusBadge.js.map +1 -1
  11. package/dist/kadaikodi/hooks/useKadaikodiApi.d.ts +24 -0
  12. package/dist/kadaikodi/hooks/useKadaikodiApi.d.ts.map +1 -1
  13. package/dist/kadaikodi/hooks/useKadaikodiApi.js +177 -132
  14. package/dist/kadaikodi/hooks/useKadaikodiApi.js.map +1 -1
  15. package/dist/kadaikodi/pages/HomePage.d.ts.map +1 -1
  16. package/dist/kadaikodi/pages/HomePage.js +284 -282
  17. package/dist/kadaikodi/pages/HomePage.js.map +1 -1
  18. package/dist/kadaikodi/pages/admin/AdminAnalyticsPage.d.ts +7 -2
  19. package/dist/kadaikodi/pages/admin/AdminAnalyticsPage.d.ts.map +1 -1
  20. package/dist/kadaikodi/pages/admin/AdminAnalyticsPage.js +319 -228
  21. package/dist/kadaikodi/pages/admin/AdminAnalyticsPage.js.map +1 -1
  22. package/dist/kadaikodi/pages/admin/AdminOrdersPage.js +1 -1
  23. package/dist/kadaikodi/pages/admin/AdminOrdersPage.js.map +1 -1
  24. package/dist/kadaikodi/pages/admin/CartManagementPage.d.ts +10 -4
  25. package/dist/kadaikodi/pages/admin/CartManagementPage.d.ts.map +1 -1
  26. package/dist/kadaikodi/pages/admin/CartManagementPage.js +320 -279
  27. package/dist/kadaikodi/pages/admin/CartManagementPage.js.map +1 -1
  28. package/dist/kadaikodi/pages/cart-owner/MerchantOnboardingPage.d.ts.map +1 -1
  29. package/dist/kadaikodi/pages/cart-owner/MerchantOnboardingPage.js +365 -292
  30. package/dist/kadaikodi/pages/cart-owner/MerchantOnboardingPage.js.map +1 -1
  31. package/dist/kadaikodi/pages/cart-owner/StaffManagementPage.d.ts +7 -2
  32. package/dist/kadaikodi/pages/cart-owner/StaffManagementPage.d.ts.map +1 -1
  33. package/dist/kadaikodi/pages/cart-owner/StaffManagementPage.js +300 -158
  34. package/dist/kadaikodi/pages/cart-owner/StaffManagementPage.js.map +1 -1
  35. package/dist/kadaikodi/pages/common/SettingsPage.js +286 -286
  36. package/dist/kadaikodi/pages/common/SettingsPage.js.map +1 -1
  37. package/dist/kadaikodi/pages/customer/CartDetailPage.d.ts.map +1 -1
  38. package/dist/kadaikodi/pages/customer/CartDetailPage.js +3 -3
  39. package/dist/kadaikodi/pages/customer/CartDetailPage.js.map +1 -1
  40. package/dist/kadaikodi/pages/customer/CartDiscoveryPage.d.ts +13 -3
  41. package/dist/kadaikodi/pages/customer/CartDiscoveryPage.d.ts.map +1 -1
  42. package/dist/kadaikodi/pages/customer/CartDiscoveryPage.js +270 -220
  43. package/dist/kadaikodi/pages/customer/CartDiscoveryPage.js.map +1 -1
  44. package/dist/kadaikodi/pages/customer/CustomerDashboard.js +97 -97
  45. package/dist/kadaikodi/pages/customer/OrderTrackingPage.d.ts.map +1 -1
  46. package/dist/kadaikodi/pages/customer/OrderTrackingPage.js +1 -1
  47. package/dist/kadaikodi/pages/customer/OrderTrackingPage.js.map +1 -1
  48. package/dist/kadaikodi/pages/worker/TaskDetailsPage.d.ts +5 -3
  49. package/dist/kadaikodi/pages/worker/TaskDetailsPage.d.ts.map +1 -1
  50. package/dist/kadaikodi/pages/worker/TaskDetailsPage.js +286 -199
  51. package/dist/kadaikodi/pages/worker/TaskDetailsPage.js.map +1 -1
  52. package/dist/kadaikodi/types/index.d.ts +46 -2
  53. package/dist/kadaikodi/types/index.d.ts.map +1 -1
  54. package/dist/shared/hooks/useTr.d.ts +2 -0
  55. package/dist/shared/hooks/useTr.d.ts.map +1 -0
  56. package/dist/shared/hooks/useTr.js +14 -0
  57. package/dist/shared/hooks/useTr.js.map +1 -0
  58. package/package.json +2 -2
@@ -1,32 +1,32 @@
1
1
  import { useKadaikodi as e } from "../../context/KadaikodiContext.js";
2
2
  import { cn as t } from "../../utils/cn.js";
3
3
  import { PageLayout as n } from "../../components/PageLayout.js";
4
- import { EmptyState as r } from "../../components/EmptyState.js";
5
- import { useUpdateWorkerTask as i, useUpdateWorkerTaskStatus as a, useWorkerTasks as o } from "../../hooks/useKadaikodiApi.js";
6
- import { formatCurrency as s, formatDate as c } from "../../utils/formatters.js";
7
- import { Timeline as l } from "../../components/viz/Timeline.js";
8
- import { StepProgress as u } from "../../components/viz/StepProgress.js";
4
+ import { EmptyState as ee } from "../../components/EmptyState.js";
5
+ import { useUpdateWorkerTask as r, useUpdateWorkerTaskStatus as i, useWorkerTasks as a } from "../../hooks/useKadaikodiApi.js";
6
+ import { formatCurrency as o, formatDate as te } from "../../utils/formatters.js";
7
+ import { Timeline as ne } from "../../components/viz/Timeline.js";
8
+ import { StepProgress as re } from "../../components/viz/StepProgress.js";
9
9
  import "../../components/viz/index.js";
10
- import { useEffect as d, useMemo as f, useState as p } from "react";
11
- import { AlertTriangle as m, ArrowLeft as ee, CheckCircle2 as te, Clock as h, FileText as g, IndianRupee as _, Loader2 as v, MapPin as y, Navigation as b, Package as x, Phone as S, ShoppingBag as C, ShoppingCart as w, StickyNote as T, Truck as E, User as D } from "lucide-react";
12
- import { useParams as O } from "react-router";
13
- import { jsx as k, jsxs as A } from "react/jsx-runtime";
14
- import { GlassCard as j, PagePurpose as M } from "@burdenoff/fe-libs/ui";
10
+ import { useEffect as s, useMemo as c, useState as l } from "react";
11
+ import { AlertTriangle as u, ArrowLeft as d, CheckCircle2 as f, Clock as p, FileText as m, IndianRupee as h, Loader2 as g, MapPin as _, Navigation as v, Package as y, Phone as b, RotateCcw as x, ShoppingBag as S, ShoppingCart as ie, StickyNote as C, Truck as w, User as ae } from "lucide-react";
12
+ import { useParams as oe } from "react-router";
13
+ import { Fragment as se, jsx as T, jsxs as E } from "react/jsx-runtime";
14
+ import { GlassCard as D, PagePurpose as O } from "@burdenoff/fe-libs/ui";
15
15
  //#region src/kadaikodi/pages/worker/TaskDetailsPage.tsx
16
- var N = {
16
+ var k = {
17
17
  delivery: "Delivery",
18
18
  pickup: "Pickup",
19
19
  service: "Service"
20
20
  };
21
- function P(e) {
21
+ function A(e) {
22
22
  switch (e) {
23
- case "delivery": return E;
24
- case "pickup": return C;
25
- case "service": return x;
26
- default: return g;
23
+ case "delivery": return w;
24
+ case "pickup": return S;
25
+ case "service": return y;
26
+ default: return m;
27
27
  }
28
28
  }
29
- function F(e) {
29
+ function j(e) {
30
30
  switch (e) {
31
31
  case "urgent":
32
32
  case "high": return "bg-status-error-bg-subtle text-status-error-text";
@@ -35,7 +35,7 @@ function F(e) {
35
35
  default: return "bg-bg-sunken text-text-secondary";
36
36
  }
37
37
  }
38
- function I(e) {
38
+ function M(e) {
39
39
  let t = new Date(e);
40
40
  return Number.isNaN(t.getTime()) ? e : t.toLocaleTimeString("en-IN", {
41
41
  hour: "numeric",
@@ -43,7 +43,7 @@ function I(e) {
43
43
  hour12: !0
44
44
  });
45
45
  }
46
- function L(e) {
46
+ function N(e) {
47
47
  let t = e.deliveryAddress ? [
48
48
  e.deliveryAddress.street,
49
49
  e.deliveryAddress.area,
@@ -74,15 +74,42 @@ function L(e) {
74
74
  },
75
75
  specialInstructions: e.notes ?? void 0,
76
76
  notes: e.notes ?? "",
77
- completedAt: e.completedAt
77
+ completedAt: e.completedAt,
78
+ order: e.order
78
79
  };
79
80
  }
80
- var R = [
81
+ var P = {
82
+ paid: {
83
+ label: "Paid",
84
+ cls: "bg-status-success-bg-subtle text-status-success-text",
85
+ icon: f
86
+ },
87
+ processing: {
88
+ label: "Payment processing",
89
+ cls: "bg-status-warning-bg-subtle text-status-warning-text",
90
+ icon: p
91
+ },
92
+ pending: {
93
+ label: "Collect payment",
94
+ cls: "bg-status-warning-bg-subtle text-status-warning-text",
95
+ icon: h
96
+ },
97
+ failed: {
98
+ label: "Payment failed",
99
+ cls: "bg-status-error-bg-subtle text-status-error-text",
100
+ icon: u
101
+ },
102
+ refunded: {
103
+ label: "Refunded",
104
+ cls: "bg-bg-sunken text-text-secondary",
105
+ icon: x
106
+ }
107
+ }, F = [
81
108
  { label: "Assigned" },
82
109
  { label: "Picked Up" },
83
110
  { label: "Delivered" }
84
111
  ];
85
- function z(e) {
112
+ function I(e) {
86
113
  switch (e) {
87
114
  case "pending": return 1;
88
115
  case "in_progress": return 2;
@@ -90,23 +117,24 @@ function z(e) {
90
117
  default: return 0;
91
118
  }
92
119
  }
93
- function B({ pickupLabel: e, dropLabel: t, distance: n }) {
94
- return /* @__PURE__ */ A("div", {
120
+ var L = (e) => e === "pending" || e === "in_progress";
121
+ function R({ pickupLabel: e, dropLabel: t, distance: n }) {
122
+ return /* @__PURE__ */ E("div", {
95
123
  className: "relative overflow-hidden rounded-[var(--radius-card)] border border-border-subtle bg-bg-sunken",
96
124
  children: [
97
- /* @__PURE__ */ A("svg", {
125
+ /* @__PURE__ */ E("svg", {
98
126
  viewBox: "0 0 400 190",
99
127
  className: "block w-full",
100
128
  role: "img",
101
129
  "aria-label": `Illustrative route from ${e} to ${t}`,
102
130
  children: [
103
- /* @__PURE__ */ A("g", {
131
+ /* @__PURE__ */ E("g", {
104
132
  stroke: "var(--color-border-subtle)",
105
133
  strokeWidth: "1",
106
134
  opacity: "0.7",
107
- children: [/* @__PURE__ */ k("path", { d: "M0 45 H400 M0 95 H400 M0 145 H400" }), /* @__PURE__ */ k("path", { d: "M70 0 V190 M160 0 V190 M250 0 V190 M330 0 V190" })]
135
+ children: [/* @__PURE__ */ T("path", { d: "M0 45 H400 M0 95 H400 M0 145 H400" }), /* @__PURE__ */ T("path", { d: "M70 0 V190 M160 0 V190 M250 0 V190 M330 0 V190" })]
108
136
  }),
109
- /* @__PURE__ */ k("path", {
137
+ /* @__PURE__ */ T("path", {
110
138
  d: "M70 55 H150 Q165 55 165 70 V120 Q165 135 180 135 H300",
111
139
  fill: "none",
112
140
  stroke: "var(--color-accent-primary)",
@@ -115,26 +143,26 @@ function B({ pickupLabel: e, dropLabel: t, distance: n }) {
115
143
  strokeLinejoin: "round",
116
144
  strokeDasharray: "1 0"
117
145
  }),
118
- /* @__PURE__ */ k("circle", {
146
+ /* @__PURE__ */ T("circle", {
119
147
  cx: "70",
120
148
  cy: "55",
121
149
  r: "7",
122
150
  fill: "var(--color-accent-primary)"
123
151
  }),
124
- /* @__PURE__ */ k("circle", {
152
+ /* @__PURE__ */ T("circle", {
125
153
  cx: "70",
126
154
  cy: "55",
127
155
  r: "12",
128
156
  fill: "var(--color-accent-primary)",
129
157
  opacity: "0.18"
130
158
  }),
131
- /* @__PURE__ */ k("circle", {
159
+ /* @__PURE__ */ T("circle", {
132
160
  cx: "300",
133
161
  cy: "135",
134
162
  r: "7",
135
163
  fill: "var(--color-status-success-text)"
136
164
  }),
137
- /* @__PURE__ */ k("circle", {
165
+ /* @__PURE__ */ T("circle", {
138
166
  cx: "300",
139
167
  cy: "135",
140
168
  r: "12",
@@ -143,26 +171,26 @@ function B({ pickupLabel: e, dropLabel: t, distance: n }) {
143
171
  })
144
172
  ]
145
173
  }),
146
- /* @__PURE__ */ A("div", {
174
+ /* @__PURE__ */ E("div", {
147
175
  className: "pointer-events-none absolute left-3 top-3 flex items-center gap-1.5 rounded-md bg-bg-surface/85 px-2 py-1 backdrop-blur",
148
- children: [/* @__PURE__ */ k(x, { className: "h-3.5 w-3.5 text-accent-primary" }), /* @__PURE__ */ k("span", {
176
+ children: [/* @__PURE__ */ T(y, { className: "h-3.5 w-3.5 text-accent-primary" }), /* @__PURE__ */ T("span", {
149
177
  className: "max-w-[9rem] truncate text-[11px] font-medium text-text-primary",
150
178
  children: e
151
179
  })]
152
180
  }),
153
- /* @__PURE__ */ A("div", {
181
+ /* @__PURE__ */ E("div", {
154
182
  className: "pointer-events-none absolute bottom-3 right-3 flex items-center gap-1.5 rounded-md bg-bg-surface/85 px-2 py-1 backdrop-blur",
155
- children: [/* @__PURE__ */ k(y, { className: "h-3.5 w-3.5 text-status-success-text" }), /* @__PURE__ */ k("span", {
183
+ children: [/* @__PURE__ */ T(_, { className: "h-3.5 w-3.5 text-status-success-text" }), /* @__PURE__ */ T("span", {
156
184
  className: "max-w-[9rem] truncate text-[11px] font-medium text-text-primary",
157
185
  children: t
158
186
  })]
159
187
  }),
160
- /* @__PURE__ */ A("div", {
188
+ /* @__PURE__ */ E("div", {
161
189
  className: "flex items-center justify-between border-t border-border-subtle px-3 py-2",
162
- children: [/* @__PURE__ */ k("span", {
190
+ children: [/* @__PURE__ */ T("span", {
163
191
  className: "text-[11px] text-text-muted",
164
192
  children: "Illustrative route · not to scale"
165
- }), n != null && /* @__PURE__ */ A("span", {
193
+ }), n != null && /* @__PURE__ */ E("span", {
166
194
  className: "text-[11px] font-medium text-text-secondary tabular-nums",
167
195
  children: [n, " km"]
168
196
  })]
@@ -170,279 +198,334 @@ function B({ pickupLabel: e, dropLabel: t, distance: n }) {
170
198
  ]
171
199
  });
172
200
  }
173
- function V() {
174
- let { taskId: y } = O(), { navigateTo: x, currentUser: C } = e(), { data: E = [], isLoading: V } = o(C?.id ?? ""), H = a(), U = i(), [W, G] = p(null), [K, q] = p(""), [J, Y] = p(!1);
175
- d(() => {
176
- let e = E.find((e) => e.id === y);
201
+ function z() {
202
+ let { taskId: _ } = oe(), { navigateTo: y, currentUser: x } = e(), { data: w = [], isLoading: z } = a(x?.id ?? ""), B = i(), V = r(), [H, U] = l(null), [W, G] = l(""), [K, q] = l(!1);
203
+ s(() => {
204
+ let e = w.find((e) => e.id === _);
177
205
  if (e) {
178
- let t = L(e);
179
- G(t), q(t.notes ?? "");
180
- } else G(null);
181
- }, [E, y]);
182
- let X = () => {
183
- W && (W.status === "pending" ? (G({
184
- ...W,
206
+ let t = N(e);
207
+ U(t), G(t.notes ?? "");
208
+ } else U(null);
209
+ }, [w, _]);
210
+ let ce = () => {
211
+ H && (H.status === "pending" ? (U({
212
+ ...H,
185
213
  status: "in_progress"
186
- }), H.mutate({
187
- taskId: W.id,
214
+ }), B.mutate({
215
+ taskId: H.id,
188
216
  status: "IN_PROGRESS"
189
- })) : W.status === "in_progress" && (G({
190
- ...W,
217
+ })) : H.status === "in_progress" && (U({
218
+ ...H,
191
219
  status: "completed"
192
- }), H.mutate({
193
- taskId: W.id,
220
+ }), B.mutate({
221
+ taskId: H.id,
194
222
  status: "COMPLETED"
195
223
  })));
196
- }, Z = () => {
197
- W?.customerInfo?.phone && (window.location.href = `tel:${W.customerInfo.phone.replace(/\s/g, "")}`);
198
- }, Q = (e) => {
224
+ }, le = () => {
225
+ H?.customerInfo?.phone && (window.location.href = `tel:${H.customerInfo.phone.replace(/\s/g, "")}`);
226
+ }, J = (e) => {
199
227
  e && window.open(`https://maps.google.com?q=${encodeURIComponent(e)}`, "_blank");
200
- }, $ = () => {
201
- W && (Y(!1), U.mutate({
202
- taskId: W.id,
203
- notes: K
228
+ }, ue = () => {
229
+ H && (q(!1), V.mutate({
230
+ taskId: H.id,
231
+ notes: W
204
232
  }, { onSuccess: () => {
205
- G((e) => e && {
233
+ U((e) => e && {
206
234
  ...e,
207
- notes: K
208
- }), Y(!0);
235
+ notes: W
236
+ }), q(!0);
209
237
  } }));
210
- }, ne = f(() => W ? [
238
+ }, Y = c(() => H ? [
211
239
  {
212
240
  title: "Task assigned",
213
- time: W.assignedTime ? I(W.assignedTime) : void 0,
214
- meta: W.assignedBy || void 0,
241
+ time: H.assignedTime ? M(H.assignedTime) : void 0,
242
+ meta: H.assignedBy || void 0,
215
243
  tone: "success"
216
244
  },
217
245
  {
218
246
  title: "Picked up",
219
- time: W.status === "in_progress" || W.status === "completed" ? "Done" : void 0,
220
- tone: W.status === "in_progress" || W.status === "completed" ? "success" : "muted"
247
+ time: H.status === "in_progress" || H.status === "completed" ? "Done" : void 0,
248
+ tone: H.status === "in_progress" || H.status === "completed" ? "success" : "muted"
221
249
  },
222
250
  {
223
251
  title: "Delivered",
224
- time: W.status === "completed" ? W.completedAt ? I(W.completedAt) : "Done" : void 0,
225
- tone: W.status === "completed" ? "success" : "muted"
252
+ time: H.status === "completed" ? H.completedAt ? M(H.completedAt) : "Done" : void 0,
253
+ tone: H.status === "completed" ? "success" : "muted"
226
254
  }
227
- ] : [], [W]);
228
- if (V) return /* @__PURE__ */ k(n, {
255
+ ] : [], [H]);
256
+ if (z) return /* @__PURE__ */ T(n, {
229
257
  title: "Task Details",
230
- children: /* @__PURE__ */ k("div", {
258
+ children: /* @__PURE__ */ T("div", {
231
259
  className: "flex items-center justify-center py-24",
232
- children: /* @__PURE__ */ A("div", {
260
+ children: /* @__PURE__ */ E("div", {
233
261
  className: "text-center",
234
- children: [/* @__PURE__ */ k(v, { className: "h-10 w-10 animate-spin text-text-secondary mx-auto mb-4" }), /* @__PURE__ */ k("p", {
262
+ children: [/* @__PURE__ */ T(g, { className: "h-10 w-10 animate-spin text-text-secondary mx-auto mb-4" }), /* @__PURE__ */ T("p", {
235
263
  className: "text-sm text-text-secondary",
236
264
  children: "Loading task details..."
237
265
  })]
238
266
  })
239
267
  })
240
268
  });
241
- if (!W) return /* @__PURE__ */ k(n, {
269
+ if (!H) return /* @__PURE__ */ T(n, {
242
270
  title: "Task Not Found",
243
- children: /* @__PURE__ */ k(r, {
244
- icon: /* @__PURE__ */ k(g, { className: "h-12 w-12" }),
271
+ children: /* @__PURE__ */ T(ee, {
272
+ icon: /* @__PURE__ */ T(m, { className: "h-12 w-12" }),
245
273
  title: "Task not found",
246
- description: `No task found with ID "${y}".`,
247
- action: /* @__PURE__ */ k("button", {
274
+ description: `No task found with ID "${_}".`,
275
+ action: /* @__PURE__ */ T("button", {
248
276
  type: "button",
249
- onClick: () => x("/worker/orders"),
277
+ onClick: () => y("/worker/orders"),
250
278
  className: "rounded-lg bg-action-primary-bg px-4 py-2 text-sm font-medium text-action-primary-text hover:bg-action-primary-bg-hover transition-colors",
251
279
  children: "View All Orders"
252
280
  })
253
281
  })
254
282
  });
255
- let re = P(W.type), ie = N[W.type] ?? "Task", ae = W.cartName || "Pickup", oe = W.customerInfo.address || W.customerInfo.name || "Drop-off", se = W.status === "pending" ? "Mark Picked Up" : W.status === "in_progress" ? "Mark Delivered" : "Delivered";
256
- return /* @__PURE__ */ A(n, {
257
- title: /* @__PURE__ */ A("div", {
283
+ let de = A(H.type), fe = k[H.type] ?? "Task", pe = H.cartName || "Pickup", me = H.customerInfo.address || H.customerInfo.name || "Drop-off", X = L(H.status), he = H.status === "pending" ? "Mark Picked Up" : H.status === "in_progress" ? "Mark Delivered" : H.status === "completed" ? "Delivered" : H.status === "cancelled" ? "Cancelled" : "Blocked", Z = H.order?.orderNumber || H.orderId, Q = H.order ? P[H.order.paymentStatus] : void 0, $ = H.order?.items.reduce((e, t) => e + t.quantity, 0) ?? 0;
284
+ return /* @__PURE__ */ E(n, {
285
+ title: /* @__PURE__ */ E("div", {
258
286
  className: "flex items-center gap-3 min-w-0",
259
- children: [/* @__PURE__ */ k("button", {
287
+ children: [/* @__PURE__ */ T("button", {
260
288
  type: "button",
261
- onClick: () => x("/worker/orders"),
289
+ onClick: () => y("/worker/orders"),
262
290
  className: "rounded-md p-1 text-text-secondary hover:bg-bg-sunken hover:text-text-primary transition-colors shrink-0",
263
291
  "aria-label": "Back to orders",
264
- children: /* @__PURE__ */ k(ee, { className: "h-5 w-5" })
265
- }), /* @__PURE__ */ A("span", {
292
+ children: /* @__PURE__ */ T(d, { className: "h-5 w-5" })
293
+ }), /* @__PURE__ */ E("span", {
266
294
  className: "truncate",
267
- children: [ie, W.orderId ? /* @__PURE__ */ A("span", {
295
+ children: [fe, Z ? /* @__PURE__ */ E("span", {
268
296
  className: "text-text-secondary",
269
- children: [" · #", W.orderId]
297
+ children: [" · #", Z]
270
298
  }) : null]
271
299
  })]
272
300
  }),
273
301
  description: "Everything you need to complete this delivery",
274
- children: [/* @__PURE__ */ k(M, {
302
+ children: [/* @__PURE__ */ T(O, {
275
303
  className: "mb-6",
276
304
  children: "One delivery, start to finish. Reach the customer, follow the route, jot a note, and advance the job — mark it picked up, then delivered — so nothing gets missed and your completion stats stay strong."
277
- }), /* @__PURE__ */ A("div", {
305
+ }), /* @__PURE__ */ E("div", {
278
306
  className: "space-y-6",
279
- children: [/* @__PURE__ */ A(j, {
307
+ children: [/* @__PURE__ */ E(D, {
280
308
  treatment: "metric",
281
309
  className: "p-5",
282
- children: [/* @__PURE__ */ A("div", {
310
+ children: [/* @__PURE__ */ E("div", {
283
311
  className: "mb-4 flex flex-wrap items-center gap-2",
284
312
  children: [
285
- /* @__PURE__ */ k("span", {
313
+ /* @__PURE__ */ T("span", {
286
314
  className: "flex h-8 w-8 items-center justify-center rounded-lg bg-accent-primary/12 text-accent-primary",
287
- children: /* @__PURE__ */ k(re, { className: "h-4.5 w-4.5" })
315
+ children: /* @__PURE__ */ T(de, { className: "h-4.5 w-4.5" })
288
316
  }),
289
- /* @__PURE__ */ k("h2", {
317
+ /* @__PURE__ */ T("h2", {
290
318
  className: "text-base font-semibold text-text-primary",
291
- children: W.title
319
+ children: H.title
292
320
  }),
293
- /* @__PURE__ */ k("span", {
294
- className: t("inline-flex items-center rounded-full px-2.5 py-0.5 text-xs font-medium uppercase", F(W.priority)),
295
- children: W.priority
321
+ /* @__PURE__ */ T("span", {
322
+ className: t("inline-flex items-center rounded-full px-2.5 py-0.5 text-xs font-medium uppercase", j(H.priority)),
323
+ children: H.priority
296
324
  })
297
325
  ]
298
- }), /* @__PURE__ */ k(u, {
299
- steps: R,
300
- current: z(W.status)
326
+ }), /* @__PURE__ */ T(re, {
327
+ steps: F,
328
+ current: I(H.status)
301
329
  })]
302
- }), /* @__PURE__ */ A("div", {
330
+ }), /* @__PURE__ */ E("div", {
303
331
  className: "grid grid-cols-1 lg:grid-cols-3 gap-6",
304
- children: [/* @__PURE__ */ A("div", {
332
+ children: [/* @__PURE__ */ E("div", {
305
333
  className: "lg:col-span-2 space-y-6",
306
334
  children: [
307
- /* @__PURE__ */ k(B, {
308
- pickupLabel: ae,
309
- dropLabel: oe,
310
- distance: W.distance
335
+ /* @__PURE__ */ T(R, {
336
+ pickupLabel: pe,
337
+ dropLabel: me,
338
+ distance: H.distance
311
339
  }),
312
- /* @__PURE__ */ A("div", {
340
+ /* @__PURE__ */ E("div", {
313
341
  className: "grid grid-cols-1 sm:grid-cols-2 gap-4",
314
- children: [/* @__PURE__ */ A(j, {
342
+ children: [/* @__PURE__ */ E(D, {
315
343
  className: "p-5",
316
344
  children: [
317
- /* @__PURE__ */ k("p", {
345
+ /* @__PURE__ */ T("p", {
318
346
  className: "text-xs font-medium uppercase tracking-wide text-text-muted",
319
347
  children: "Pickup"
320
348
  }),
321
- /* @__PURE__ */ k("p", {
349
+ /* @__PURE__ */ T("p", {
322
350
  className: "mt-1 text-sm font-semibold text-text-primary",
323
- children: W.cartName
351
+ children: H.cartName
324
352
  }),
325
- W.location && /* @__PURE__ */ k("p", {
353
+ H.location && /* @__PURE__ */ T("p", {
326
354
  className: "mt-0.5 text-xs text-text-secondary",
327
- children: W.location
355
+ children: H.location
328
356
  }),
329
- /* @__PURE__ */ k("div", {
357
+ /* @__PURE__ */ T("div", {
330
358
  className: "mt-4",
331
- children: /* @__PURE__ */ A("button", {
359
+ children: /* @__PURE__ */ E("button", {
332
360
  type: "button",
333
- onClick: () => Q(W.location || W.cartName),
361
+ onClick: () => J(H.location || H.cartName),
334
362
  className: "inline-flex items-center gap-1.5 rounded-md border border-border-default bg-bg-surface px-3 py-2 text-xs font-medium text-text-primary hover:bg-bg-sunken transition-colors",
335
- children: [/* @__PURE__ */ k(b, { className: "h-3.5 w-3.5" }), "Navigate"]
363
+ children: [/* @__PURE__ */ T(v, { className: "h-3.5 w-3.5" }), "Navigate"]
336
364
  })
337
365
  })
338
366
  ]
339
- }), /* @__PURE__ */ A(j, {
367
+ }), /* @__PURE__ */ E(D, {
340
368
  className: "p-5",
341
369
  children: [
342
- /* @__PURE__ */ k("p", {
370
+ /* @__PURE__ */ T("p", {
343
371
  className: "text-xs font-medium uppercase tracking-wide text-text-muted",
344
372
  children: "Drop"
345
373
  }),
346
- /* @__PURE__ */ k("p", {
374
+ /* @__PURE__ */ T("p", {
347
375
  className: "mt-1 text-sm font-semibold text-text-primary",
348
- children: W.customerInfo.name || "Customer"
376
+ children: H.customerInfo.name || "Customer"
349
377
  }),
350
- W.customerInfo.address && /* @__PURE__ */ k("p", {
378
+ H.customerInfo.address && /* @__PURE__ */ T("p", {
351
379
  className: "mt-0.5 text-xs text-text-secondary",
352
- children: W.customerInfo.address
380
+ children: H.customerInfo.address
353
381
  }),
354
- W.customerInfo.phone && /* @__PURE__ */ k("p", {
382
+ H.customerInfo.phone && /* @__PURE__ */ T("p", {
355
383
  className: "mt-0.5 text-xs text-text-secondary",
356
- children: W.customerInfo.phone
384
+ children: H.customerInfo.phone
357
385
  }),
358
- /* @__PURE__ */ A("div", {
386
+ /* @__PURE__ */ E("div", {
359
387
  className: "mt-4 flex gap-2",
360
- children: [W.customerInfo.phone && /* @__PURE__ */ A("button", {
388
+ children: [H.customerInfo.phone && /* @__PURE__ */ E("button", {
361
389
  type: "button",
362
- onClick: Z,
390
+ onClick: le,
363
391
  className: "inline-flex items-center gap-1.5 rounded-md border border-border-default bg-bg-surface px-3 py-2 text-xs font-medium text-text-primary hover:bg-bg-sunken transition-colors",
364
- children: [/* @__PURE__ */ k(S, { className: "h-3.5 w-3.5" }), "Call"]
365
- }), W.customerInfo.address && /* @__PURE__ */ A("button", {
392
+ children: [/* @__PURE__ */ T(b, { className: "h-3.5 w-3.5" }), "Call"]
393
+ }), H.customerInfo.address && /* @__PURE__ */ E("button", {
366
394
  type: "button",
367
- onClick: () => Q(W.customerInfo.address),
395
+ onClick: () => J(H.customerInfo.address),
368
396
  className: "inline-flex items-center gap-1.5 rounded-md border border-border-default bg-bg-surface px-3 py-2 text-xs font-medium text-text-primary hover:bg-bg-sunken transition-colors",
369
- children: [/* @__PURE__ */ k(b, { className: "h-3.5 w-3.5" }), "Navigate"]
397
+ children: [/* @__PURE__ */ T(v, { className: "h-3.5 w-3.5" }), "Navigate"]
370
398
  })]
371
399
  })
372
400
  ]
373
401
  })]
374
402
  }),
375
- /* @__PURE__ */ k(j, {
403
+ H.order && /* @__PURE__ */ E(D, {
404
+ className: "p-5",
405
+ children: [
406
+ /* @__PURE__ */ E("div", {
407
+ className: "mb-3 flex flex-wrap items-center justify-between gap-2",
408
+ children: [/* @__PURE__ */ E("h3", {
409
+ className: "flex items-center gap-2 text-sm font-semibold text-text-primary",
410
+ children: [
411
+ /* @__PURE__ */ T(S, { className: "h-4 w-4 text-text-secondary" }),
412
+ "Order",
413
+ H.order.orderNumber && /* @__PURE__ */ E("span", {
414
+ className: "font-mono text-xs font-normal text-text-secondary",
415
+ children: ["#", H.order.orderNumber]
416
+ })
417
+ ]
418
+ }), Q && /* @__PURE__ */ E("span", {
419
+ className: t("inline-flex items-center gap-1 rounded-full px-2.5 py-0.5 text-xs font-medium", Q.cls),
420
+ children: [/* @__PURE__ */ T(Q.icon, { className: "h-3 w-3" }), Q.label]
421
+ })]
422
+ }),
423
+ H.order.items.length > 0 ? /* @__PURE__ */ E(se, { children: [/* @__PURE__ */ E("p", {
424
+ className: "mb-2 text-xs text-text-secondary",
425
+ children: [
426
+ $,
427
+ " ",
428
+ $ === 1 ? "item" : "items"
429
+ ]
430
+ }), /* @__PURE__ */ T("ul", {
431
+ className: "divide-y divide-border-subtle",
432
+ children: H.order.items.map((e) => /* @__PURE__ */ E("li", {
433
+ className: "flex items-center justify-between gap-3 py-2 text-sm",
434
+ children: [/* @__PURE__ */ T("span", {
435
+ className: "min-w-0 truncate text-text-primary",
436
+ children: e.name
437
+ }), /* @__PURE__ */ E("span", {
438
+ className: "shrink-0 tabular-nums text-text-secondary",
439
+ children: ["×", e.quantity]
440
+ })]
441
+ }, e.id))
442
+ })] }) : /* @__PURE__ */ T("p", {
443
+ className: "text-sm text-text-secondary",
444
+ children: "This order has no itemised lines recorded."
445
+ }),
446
+ /* @__PURE__ */ E("div", {
447
+ className: "mt-3 flex items-center justify-between border-t border-border-subtle pt-3",
448
+ children: [/* @__PURE__ */ T("span", {
449
+ className: "text-sm text-text-secondary",
450
+ children: "Order total"
451
+ }), /* @__PURE__ */ T("span", {
452
+ className: "text-base font-semibold tabular-nums text-text-primary",
453
+ children: o(H.order.total, { minimumFractionDigits: 0 })
454
+ })]
455
+ })
456
+ ]
457
+ }),
458
+ /* @__PURE__ */ T(D, {
376
459
  treatment: "insight",
377
460
  className: "p-5",
378
- children: /* @__PURE__ */ A("div", {
461
+ children: /* @__PURE__ */ E("div", {
379
462
  className: "flex flex-wrap items-center justify-between gap-3",
380
- children: [/* @__PURE__ */ A("div", {
463
+ children: [/* @__PURE__ */ E("div", {
381
464
  className: "flex items-center gap-3",
382
- children: [/* @__PURE__ */ k("span", {
465
+ children: [/* @__PURE__ */ T("span", {
383
466
  className: "flex h-9 w-9 items-center justify-center rounded-lg bg-status-success-bg-subtle text-status-success-text",
384
- children: /* @__PURE__ */ k(_, { className: "h-4.5 w-4.5" })
385
- }), /* @__PURE__ */ A("div", { children: [/* @__PURE__ */ k("p", {
467
+ children: /* @__PURE__ */ T(h, { className: "h-4.5 w-4.5" })
468
+ }), /* @__PURE__ */ E("div", { children: [/* @__PURE__ */ T("p", {
386
469
  className: "text-xs text-text-secondary",
387
470
  children: "You earn"
388
- }), /* @__PURE__ */ k("p", {
471
+ }), /* @__PURE__ */ T("p", {
389
472
  className: "text-lg font-bold text-text-primary",
390
- children: s(W.earnings, { minimumFractionDigits: 0 })
473
+ children: o(H.earnings, { minimumFractionDigits: 0 })
391
474
  })] })]
392
- }), /* @__PURE__ */ A("div", {
475
+ }), /* @__PURE__ */ E("div", {
393
476
  className: "flex flex-wrap items-center gap-4 text-sm",
394
- children: [/* @__PURE__ */ A("span", {
477
+ children: [/* @__PURE__ */ E("span", {
395
478
  className: "flex items-center gap-1.5 text-text-secondary",
396
- children: [/* @__PURE__ */ k(w, { className: "h-4 w-4" }), W.cartName]
397
- }), W.dueTime && /* @__PURE__ */ A("span", {
479
+ children: [/* @__PURE__ */ T(ie, { className: "h-4 w-4" }), H.cartName]
480
+ }), H.dueTime && /* @__PURE__ */ E("span", {
398
481
  className: "flex items-center gap-1.5 text-text-secondary",
399
482
  children: [
400
- /* @__PURE__ */ k(h, { className: "h-4 w-4" }),
483
+ /* @__PURE__ */ T(p, { className: "h-4 w-4" }),
401
484
  "Due ",
402
- I(W.dueTime)
485
+ M(H.dueTime)
403
486
  ]
404
487
  })]
405
488
  })]
406
489
  })
407
490
  }),
408
- W.specialInstructions && /* @__PURE__ */ k("div", {
491
+ H.specialInstructions && /* @__PURE__ */ T("div", {
409
492
  className: "rounded-[var(--radius-card)] border border-status-warning-text/20 bg-status-warning-bg-subtle p-4",
410
- children: /* @__PURE__ */ A("p", {
493
+ children: /* @__PURE__ */ E("p", {
411
494
  className: "text-sm text-status-warning-text flex items-start gap-2",
412
- children: [/* @__PURE__ */ k(m, { className: "h-4 w-4 shrink-0 mt-0.5" }), W.specialInstructions]
495
+ children: [/* @__PURE__ */ T(u, { className: "h-4 w-4 shrink-0 mt-0.5" }), H.specialInstructions]
413
496
  })
414
497
  }),
415
- /* @__PURE__ */ A(j, {
498
+ /* @__PURE__ */ E(D, {
416
499
  className: "p-5",
417
500
  children: [
418
- /* @__PURE__ */ A("h3", {
501
+ /* @__PURE__ */ E("h3", {
419
502
  className: "mb-3 flex items-center gap-2 text-sm font-semibold text-text-primary",
420
- children: [/* @__PURE__ */ k(T, { className: "h-4 w-4 text-text-secondary" }), "Delivery note"]
503
+ children: [/* @__PURE__ */ T(C, { className: "h-4 w-4 text-text-secondary" }), "Delivery note"]
421
504
  }),
422
- /* @__PURE__ */ k("textarea", {
423
- value: K,
505
+ /* @__PURE__ */ T("textarea", {
506
+ value: W,
424
507
  onChange: (e) => {
425
- q(e.target.value), Y(!1);
508
+ G(e.target.value), q(!1);
426
509
  },
427
510
  placeholder: "Add a delivery note...",
428
511
  rows: 3,
429
512
  className: "w-full resize-none rounded-md border border-border-subtle bg-bg-surface px-3 py-2 text-sm text-text-primary placeholder:text-text-muted focus:outline-none focus:ring-2 focus:ring-border-focus/40"
430
513
  }),
431
- /* @__PURE__ */ A("div", {
514
+ /* @__PURE__ */ E("div", {
432
515
  className: "mt-3 flex items-center gap-3",
433
516
  children: [
434
- /* @__PURE__ */ A("button", {
517
+ /* @__PURE__ */ E("button", {
435
518
  type: "button",
436
- onClick: $,
437
- disabled: U.isPending,
519
+ onClick: ue,
520
+ disabled: V.isPending,
438
521
  className: "inline-flex items-center gap-1.5 rounded-md border border-border-default bg-bg-surface px-3 py-1.5 text-xs font-medium text-text-primary hover:bg-bg-sunken transition-colors disabled:opacity-50",
439
- children: [U.isPending ? /* @__PURE__ */ k(v, { className: "h-3.5 w-3.5 animate-spin" }) : /* @__PURE__ */ k(T, { className: "h-3.5 w-3.5" }), U.isPending ? "Saving..." : "Save note"]
522
+ children: [V.isPending ? /* @__PURE__ */ T(g, { className: "h-3.5 w-3.5 animate-spin" }) : /* @__PURE__ */ T(C, { className: "h-3.5 w-3.5" }), V.isPending ? "Saving..." : "Save note"]
440
523
  }),
441
- J && !U.isPending && /* @__PURE__ */ k("span", {
524
+ K && !V.isPending && /* @__PURE__ */ T("span", {
442
525
  className: "text-xs text-status-success-text",
443
526
  children: "Note saved"
444
527
  }),
445
- U.isError && /* @__PURE__ */ k("span", {
528
+ V.isError && /* @__PURE__ */ T("span", {
446
529
  className: "text-xs text-status-error-text",
447
530
  children: "Couldn't save — retry"
448
531
  })
@@ -450,68 +533,72 @@ function V() {
450
533
  })
451
534
  ]
452
535
  }),
453
- /* @__PURE__ */ A("button", {
536
+ /* @__PURE__ */ E("button", {
454
537
  type: "button",
455
- onClick: X,
456
- disabled: W.status === "completed" || H.isPending,
457
- className: t("w-full inline-flex items-center justify-center gap-2 rounded-[var(--radius-card)] px-4 py-3.5 text-base font-semibold transition-colors", W.status === "completed" ? "bg-status-success-bg-subtle text-status-success-text cursor-default" : "bg-action-primary-bg text-action-primary-text hover:bg-action-primary-bg-hover disabled:opacity-60"),
458
- children: [H.isPending ? /* @__PURE__ */ k(v, { className: "h-5 w-5 animate-spin" }) : /* @__PURE__ */ k(te, { className: "h-5 w-5" }), se]
538
+ onClick: ce,
539
+ disabled: !X || B.isPending,
540
+ className: t("w-full inline-flex items-center justify-center gap-2 rounded-[var(--radius-card)] px-4 py-3.5 text-base font-semibold transition-colors", X ? "bg-action-primary-bg text-action-primary-text hover:bg-action-primary-bg-hover disabled:opacity-60" : H.status === "completed" ? "bg-status-success-bg-subtle text-status-success-text cursor-default" : "bg-bg-sunken text-text-secondary cursor-not-allowed"),
541
+ children: [B.isPending ? /* @__PURE__ */ T(g, { className: "h-5 w-5 animate-spin" }) : H.status === "blocked" || H.status === "cancelled" ? /* @__PURE__ */ T(u, { className: "h-5 w-5" }) : /* @__PURE__ */ T(f, { className: "h-5 w-5" }), he]
542
+ }),
543
+ H.status === "blocked" && /* @__PURE__ */ T("p", {
544
+ className: "-mt-4 text-xs text-text-secondary",
545
+ children: "This task is blocked. Ask the cart owner to unblock it before continuing."
459
546
  })
460
547
  ]
461
- }), /* @__PURE__ */ A("div", {
548
+ }), /* @__PURE__ */ E("div", {
462
549
  className: "space-y-6",
463
- children: [/* @__PURE__ */ A(j, {
550
+ children: [/* @__PURE__ */ E(D, {
464
551
  className: "p-5",
465
- children: [/* @__PURE__ */ k("h3", {
552
+ children: [/* @__PURE__ */ T("h3", {
466
553
  className: "mb-3 text-sm font-semibold text-text-primary",
467
554
  children: "Delivery timeline"
468
- }), /* @__PURE__ */ k(l, { items: ne })]
469
- }), /* @__PURE__ */ A(j, {
555
+ }), /* @__PURE__ */ T(ne, { items: Y })]
556
+ }), /* @__PURE__ */ E(D, {
470
557
  className: "p-5",
471
- children: [/* @__PURE__ */ k("h3", {
558
+ children: [/* @__PURE__ */ T("h3", {
472
559
  className: "mb-3 text-sm font-semibold text-text-primary",
473
560
  children: "Job details"
474
- }), /* @__PURE__ */ A("dl", {
561
+ }), /* @__PURE__ */ E("dl", {
475
562
  className: "space-y-3 text-sm",
476
563
  children: [
477
- W.orderId && /* @__PURE__ */ A("div", {
564
+ Z && /* @__PURE__ */ E("div", {
478
565
  className: "flex items-center gap-2",
479
- children: [/* @__PURE__ */ k(g, { className: "h-4 w-4 text-text-secondary shrink-0" }), /* @__PURE__ */ A("div", { children: [/* @__PURE__ */ k("dt", {
566
+ children: [/* @__PURE__ */ T(m, { className: "h-4 w-4 text-text-secondary shrink-0" }), /* @__PURE__ */ E("div", { children: [/* @__PURE__ */ T("dt", {
480
567
  className: "text-xs text-text-secondary",
481
- children: "Order ID"
482
- }), /* @__PURE__ */ k("dd", {
568
+ children: "Order"
569
+ }), /* @__PURE__ */ T("dd", {
483
570
  className: "font-mono font-medium text-text-primary",
484
- children: W.orderId
571
+ children: Z
485
572
  })] })]
486
573
  }),
487
- W.customerInfo.name && /* @__PURE__ */ A("div", {
574
+ H.customerInfo.name && /* @__PURE__ */ E("div", {
488
575
  className: "flex items-center gap-2",
489
- children: [/* @__PURE__ */ k(D, { className: "h-4 w-4 text-text-secondary shrink-0" }), /* @__PURE__ */ A("div", { children: [/* @__PURE__ */ k("dt", {
576
+ children: [/* @__PURE__ */ T(ae, { className: "h-4 w-4 text-text-secondary shrink-0" }), /* @__PURE__ */ E("div", { children: [/* @__PURE__ */ T("dt", {
490
577
  className: "text-xs text-text-secondary",
491
578
  children: "Customer"
492
- }), /* @__PURE__ */ k("dd", {
579
+ }), /* @__PURE__ */ T("dd", {
493
580
  className: "font-medium text-text-primary",
494
- children: W.customerInfo.name
581
+ children: H.customerInfo.name
495
582
  })] })]
496
583
  }),
497
- W.distance != null && /* @__PURE__ */ A("div", {
584
+ H.distance != null && /* @__PURE__ */ E("div", {
498
585
  className: "flex items-center gap-2",
499
- children: [/* @__PURE__ */ k(b, { className: "h-4 w-4 text-text-secondary shrink-0" }), /* @__PURE__ */ A("div", { children: [/* @__PURE__ */ k("dt", {
586
+ children: [/* @__PURE__ */ T(v, { className: "h-4 w-4 text-text-secondary shrink-0" }), /* @__PURE__ */ E("div", { children: [/* @__PURE__ */ T("dt", {
500
587
  className: "text-xs text-text-secondary",
501
588
  children: "Distance"
502
- }), /* @__PURE__ */ A("dd", {
589
+ }), /* @__PURE__ */ E("dd", {
503
590
  className: "font-medium text-text-primary",
504
- children: [W.distance, " km"]
591
+ children: [H.distance, " km"]
505
592
  })] })]
506
593
  }),
507
- W.assignedTime && /* @__PURE__ */ A("div", {
594
+ H.assignedTime && /* @__PURE__ */ E("div", {
508
595
  className: "flex items-center gap-2",
509
- children: [/* @__PURE__ */ k(h, { className: "h-4 w-4 text-text-secondary shrink-0" }), /* @__PURE__ */ A("div", { children: [/* @__PURE__ */ k("dt", {
596
+ children: [/* @__PURE__ */ T(p, { className: "h-4 w-4 text-text-secondary shrink-0" }), /* @__PURE__ */ E("div", { children: [/* @__PURE__ */ T("dt", {
510
597
  className: "text-xs text-text-secondary",
511
598
  children: "Assigned"
512
- }), /* @__PURE__ */ k("dd", {
599
+ }), /* @__PURE__ */ T("dd", {
513
600
  className: "font-medium text-text-primary",
514
- children: c(W.assignedTime)
601
+ children: te(H.assignedTime)
515
602
  })] })]
516
603
  })
517
604
  ]
@@ -523,6 +610,6 @@ function V() {
523
610
  });
524
611
  }
525
612
  //#endregion
526
- export { V as TaskDetailsPage };
613
+ export { z as TaskDetailsPage };
527
614
 
528
615
  //# sourceMappingURL=TaskDetailsPage.js.map