@burdenoff/microfe-movethewheels 2026.703.1 → 2026.703.3

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 (72) hide show
  1. package/dist/{AIAssistantPage-C3ovZ0Fh.js → AIAssistantPage-C3cPsWt-.js} +1 -1
  2. package/dist/{AnalyticsPage-O8SpY-V4.js → AnalyticsPage-Dz6g2MvK.js} +6 -6
  3. package/dist/{CreateOrderPage-CB1_-_mN.js → CreateOrderPage-C5iwnjp4.js} +29 -58
  4. package/dist/CustomerDetailsPage-B6nwFyLO.js +406 -0
  5. package/dist/{CustomersPage-DRaLuHMC.js → CustomersPage-BKxMS1AV.js} +5 -5
  6. package/dist/{DashboardPage-DPjhNfKB.js → DashboardPage-BVjQi0EB.js} +11 -11
  7. package/dist/DriverDetailsPage-CN3WQ0B9.js +507 -0
  8. package/dist/{DriversPage-C2Bk0w4Q.js → DriversPage-CH9rjQC-.js} +6 -6
  9. package/dist/{FinancePage-lmp0Sdsw.js → FinancePage-DEDykSOP.js} +5 -5
  10. package/dist/{FleetPage-DZn5pIqd.js → FleetPage-DqkFi3s3.js} +5 -5
  11. package/dist/FormError-BlOjnXOq.js +15 -0
  12. package/dist/{ImportExportPage-BIUJZc7O.js → ImportExportPage-DKJRCezl.js} +1 -1
  13. package/dist/{InventoryPage-Cxh1zYJd.js → InventoryPage-e0ze63iX.js} +6 -6
  14. package/dist/{LiveTrackingPage-BY1yAkIt.js → LiveTrackingPage-DCX-K-LR.js} +5 -5
  15. package/dist/{MarketplacePage-RMuL17EA.js → MarketplacePage-CIQ97_zp.js} +1 -1
  16. package/dist/{OrderDetailsPage-C2Mf4KSy.js → OrderDetailsPage-DYiZ-9UK.js} +5 -5
  17. package/dist/{OrdersListPage-BrPBtnhp.js → OrdersListPage-Cn90P1Xx.js} +4 -4
  18. package/dist/ProductDetailsPage-C9uOiYLp.js +350 -0
  19. package/dist/{ProductsPage-I5DilIoY.js → ProductsPage-QJfHHpqB.js} +4 -4
  20. package/dist/{ReportsPage-BDXNmUng.js → ReportsPage-Zp53q3_8.js} +2 -2
  21. package/dist/RouteDetailsPage-DUStXSf9.js +531 -0
  22. package/dist/{RoutesPage-lqX9ylHP.js → RoutesPage-DMfoicM1.js} +3 -3
  23. package/dist/{SettingsPage-CQVIOaNs.js → SettingsPage-Bn-v0mbQ.js} +1 -1
  24. package/dist/{TrackingPage-BXrjz7V8.js → TrackingPage-W-jtdM3Y.js} +4 -4
  25. package/dist/VehicleDetailsPage-Bceo5oz3.js +410 -0
  26. package/dist/{VehiclesPage-6W39XT5W.js → VehiclesPage-ApKThYeG.js} +5 -5
  27. package/dist/WarehouseDetailsPage-L_6sWigM.js +493 -0
  28. package/dist/{WarehousesPage-CHvBqNaQ.js → WarehousesPage-DCbXXXWE.js} +3 -3
  29. package/dist/index.js +154 -138
  30. package/dist/trash-2-BKhar6Hs.js +32 -0
  31. package/dist/{useFleet-DiAC-IiH.js → useFleet-DKqXZ16m.js} +77 -56
  32. package/dist/{useInventory-DKoks37x.js → useInventory-DkyiVY_A.js} +73 -53
  33. package/dist/{useTracking-GJify4HN.js → useTracking-B-va1kO3.js} +2 -2
  34. package/package.json +1 -1
  35. package/src/movethewheels/MoveTheWheelsRoutes.tsx +4 -0
  36. package/src/movethewheels/components/FormError.tsx +25 -0
  37. package/src/movethewheels/hooks/useFleet.ts +107 -0
  38. package/src/movethewheels/hooks/useInventory.ts +107 -0
  39. package/src/movethewheels/pages/CustomerDetailsPage.tsx +153 -20
  40. package/src/movethewheels/pages/CustomersPage.tsx +1 -1
  41. package/src/movethewheels/pages/DriverDetailsPage.tsx +159 -2
  42. package/src/movethewheels/pages/DriversPage.tsx +6 -2
  43. package/src/movethewheels/pages/InventoryPage.tsx +1 -1
  44. package/src/movethewheels/pages/OrdersListPage.tsx +1 -1
  45. package/src/movethewheels/pages/ProductDetailsPage.tsx +146 -3
  46. package/src/movethewheels/pages/ProductsPage.tsx +6 -2
  47. package/src/movethewheels/pages/RouteDetailsPage.tsx +285 -25
  48. package/src/movethewheels/pages/VehicleDetailsPage.tsx +158 -2
  49. package/src/movethewheels/pages/VehiclesPage.tsx +6 -2
  50. package/src/movethewheels/pages/WarehouseDetailsPage.tsx +224 -2
  51. package/src/movethewheels/pages/WarehousesPage.tsx +5 -1
  52. package/dist/CustomerDetailsPage-BaeKEI1D.js +0 -263
  53. package/dist/DriverDetailsPage-CSSQTOzn.js +0 -328
  54. package/dist/ProductDetailsPage-CezzzZcj.js +0 -193
  55. package/dist/RouteDetailsPage-BcomL20M.js +0 -263
  56. package/dist/VehicleDetailsPage-DZjLcJgr.js +0 -218
  57. package/dist/WarehouseDetailsPage-C10pgRGW.js +0 -236
  58. /package/dist/{MetricCard-7aYgzZHK.js → MetricCard-BY0QrMD4.js} +0 -0
  59. /package/dist/{StatusBadge-NpTeHVlw.js → StatusBadge-BZurYHMy.js} +0 -0
  60. /package/dist/{formatters-DhKZ-eA1.js → formatters-CF2S2l1m.js} +0 -0
  61. /package/dist/{trending-up-B7W-GL6P.js → trending-up-Dohgd4t_.js} +0 -0
  62. /package/dist/{triangle-alert-BonHFFNz.js → triangle-alert-i-XQL9Rd.js} +0 -0
  63. /package/dist/{truck-DrlfSpRC.js → truck-C0v_hbLR.js} +0 -0
  64. /package/dist/{useAnalytics-CgdzUfY_.js → useAnalytics-DS8n0xgg.js} +0 -0
  65. /package/dist/{useCustomers-QrlozybF.js → useCustomers-BmTNGxiI.js} +0 -0
  66. /package/dist/{useImportExport-BLMnAKCC.js → useImportExport-DHr-SWSw.js} +0 -0
  67. /package/dist/{useOrders-D3UZVy8Y.js → useOrders-Cfk1GLiq.js} +0 -0
  68. /package/dist/{useReports-Puq4DCH9.js → useReports-CTqZr-AB.js} +0 -0
  69. /package/dist/{useRoutes-Do57LvRb.js → useRoutes-BQWO607N.js} +0 -0
  70. /package/dist/{user-CjSoudeu.js → user-jyFU3lXk.js} +0 -0
  71. /package/dist/{users-BAM4gHTn.js → users-DZ-ilS6B.js} +0 -0
  72. /package/dist/{warehouse-C7MSr47B.js → warehouse-6m5kXMLu.js} +0 -0
@@ -1,263 +0,0 @@
1
- import { ct as e, d as t, f as n, g as r, h as i, i as a, l as o, lt as s, n as c, ot as l, r as u, u as d } from "./PageLayout-D4LDHJJq.js";
2
- import { t as f } from "./arrow-left-n48Y-Wis.js";
3
- import { t as p } from "./file-text-DWWY6_f5.js";
4
- import { n as m, t as h } from "./phone-Ac9s3mo_.js";
5
- import { t as g } from "./map-pin-BGiCvyCs.js";
6
- import { t as _ } from "./square-pen-CopE9GmB.js";
7
- import { t as v } from "./star-nHlLjDKR.js";
8
- import { t as y } from "./users-BAM4gHTn.js";
9
- import { t as b } from "./useCustomers-QrlozybF.js";
10
- import { i as x } from "./StatusBadge-NpTeHVlw.js";
11
- import { r as S, t as C } from "./formatters-DhKZ-eA1.js";
12
- import { useParams as w } from "react-router-dom";
13
- import { jsx as T, jsxs as E } from "react/jsx-runtime";
14
- import { EmphasisPanel as D, NextSteps as O, PagePurpose as k } from "@burdenoff/fe-libs/ui";
15
- //#region node_modules/lucide-react/dist/esm/icons/building.js
16
- var A = s("Building", [
17
- ["rect", {
18
- width: "16",
19
- height: "20",
20
- x: "4",
21
- y: "2",
22
- rx: "2",
23
- ry: "2",
24
- key: "76otgf"
25
- }],
26
- ["path", {
27
- d: "M9 22v-4h6v4",
28
- key: "r93iot"
29
- }],
30
- ["path", {
31
- d: "M8 6h.01",
32
- key: "1dz90k"
33
- }],
34
- ["path", {
35
- d: "M16 6h.01",
36
- key: "1x0f13"
37
- }],
38
- ["path", {
39
- d: "M12 6h.01",
40
- key: "1vi96p"
41
- }],
42
- ["path", {
43
- d: "M12 10h.01",
44
- key: "1nrarc"
45
- }],
46
- ["path", {
47
- d: "M12 14h.01",
48
- key: "1etili"
49
- }],
50
- ["path", {
51
- d: "M16 10h.01",
52
- key: "1m94wz"
53
- }],
54
- ["path", {
55
- d: "M16 14h.01",
56
- key: "1gbofw"
57
- }],
58
- ["path", {
59
- d: "M8 10h.01",
60
- key: "19clt8"
61
- }],
62
- ["path", {
63
- d: "M8 14h.01",
64
- key: "6423bh"
65
- }]
66
- ]);
67
- //#endregion
68
- //#region src/movethewheels/pages/CustomerDetailsPage.tsx
69
- function j() {
70
- let { customerId: s } = w(), { basePath: j, navigate: M } = l(), { customer: N, isLoading: P, error: F, refetch: I } = b(s), L = () => M?.(e(j, "customers")), R = (t) => M?.(e(j, t));
71
- return s ? P ? /* @__PURE__ */ T(u, { message: "Loading customer details..." }) : F || !N ? /* @__PURE__ */ T(c, {
72
- title: "Customer not found",
73
- onRetry: I
74
- }) : /* @__PURE__ */ E(a, {
75
- title: N.name,
76
- subtitle: N.company || N.email,
77
- icon: /* @__PURE__ */ T(y, { size: 24 }),
78
- headerActions: /* @__PURE__ */ E("div", {
79
- className: "flex gap-2",
80
- children: [/* @__PURE__ */ E(d, {
81
- variant: "outline",
82
- onClick: L,
83
- children: [/* @__PURE__ */ T(f, { size: 16 }), " Back"]
84
- }), /* @__PURE__ */ E(d, { children: [/* @__PURE__ */ T(_, { size: 16 }), " Edit"] })]
85
- }),
86
- headerContent: /* @__PURE__ */ E("div", {
87
- className: "flex items-center gap-4",
88
- children: [
89
- /* @__PURE__ */ T(x, { type: N.type }),
90
- /* @__PURE__ */ T(o, {
91
- variant: N.isActive ? "default" : "secondary",
92
- children: N.isActive ? "Active" : "Inactive"
93
- }),
94
- /* @__PURE__ */ E("div", {
95
- className: "flex items-center gap-1",
96
- children: [/* @__PURE__ */ T(v, {
97
- size: 16,
98
- className: "text-status-warning-text fill-current"
99
- }), /* @__PURE__ */ T("span", {
100
- className: "font-medium",
101
- children: N.rating.toFixed(1)
102
- })]
103
- })
104
- ]
105
- }),
106
- children: [
107
- /* @__PURE__ */ T(k, {
108
- icon: /* @__PURE__ */ T(y, { size: 18 }),
109
- children: "Everything you know about this customer — how to reach them, where they are, and their account standing. Use it to confirm contact details before a delivery, check their rating, or book their next order."
110
- }),
111
- /* @__PURE__ */ T(O, {
112
- storageKey: "movethewheels-customer-details",
113
- steps: [{
114
- id: "new-order",
115
- label: "Book a delivery for this customer",
116
- description: "Start a new order pre-filled for this account.",
117
- icon: /* @__PURE__ */ T(p, { size: 16 }),
118
- onClick: () => R("orders/new")
119
- }, {
120
- id: "edit",
121
- label: "Update contact details",
122
- description: "Keep email, phone and address current.",
123
- icon: /* @__PURE__ */ T(_, { size: 16 }),
124
- onClick: () => {}
125
- }]
126
- }),
127
- /* @__PURE__ */ E("div", {
128
- className: "grid grid-cols-1 lg:grid-cols-3 gap-6",
129
- children: [/* @__PURE__ */ E("div", {
130
- className: "lg:col-span-2 space-y-6",
131
- children: [
132
- /* @__PURE__ */ E(D, { children: [/* @__PURE__ */ T("h2", {
133
- className: "text-base font-semibold text-text-primary mb-4",
134
- children: "Contact Information"
135
- }), /* @__PURE__ */ E("div", {
136
- className: "grid grid-cols-1 md:grid-cols-2 gap-6",
137
- children: [/* @__PURE__ */ E("div", {
138
- className: "space-y-4",
139
- children: [/* @__PURE__ */ E("div", {
140
- className: "flex items-center gap-3",
141
- children: [/* @__PURE__ */ T(m, {
142
- size: 18,
143
- className: "text-text-secondary"
144
- }), /* @__PURE__ */ E("div", { children: [/* @__PURE__ */ T("p", {
145
- className: "text-sm text-text-secondary",
146
- children: "Email"
147
- }), /* @__PURE__ */ T("p", {
148
- className: "font-medium",
149
- children: N.email
150
- })] })]
151
- }), /* @__PURE__ */ E("div", {
152
- className: "flex items-center gap-3",
153
- children: [/* @__PURE__ */ T(h, {
154
- size: 18,
155
- className: "text-text-secondary"
156
- }), /* @__PURE__ */ E("div", { children: [/* @__PURE__ */ T("p", {
157
- className: "text-sm text-text-secondary",
158
- children: "Phone"
159
- }), /* @__PURE__ */ T("p", {
160
- className: "font-medium",
161
- children: N.phone
162
- })] })]
163
- })]
164
- }), /* @__PURE__ */ E("div", {
165
- className: "space-y-4",
166
- children: [N.company && /* @__PURE__ */ E("div", {
167
- className: "flex items-center gap-3",
168
- children: [/* @__PURE__ */ T(A, {
169
- size: 18,
170
- className: "text-text-secondary"
171
- }), /* @__PURE__ */ E("div", { children: [/* @__PURE__ */ T("p", {
172
- className: "text-sm text-text-secondary",
173
- children: "Company"
174
- }), /* @__PURE__ */ T("p", {
175
- className: "font-medium",
176
- children: N.company
177
- })] })]
178
- }), N.website && /* @__PURE__ */ E("div", { children: [/* @__PURE__ */ T("p", {
179
- className: "text-sm text-text-secondary",
180
- children: "Website"
181
- }), /* @__PURE__ */ T("a", {
182
- href: N.website,
183
- className: "text-primary hover:underline",
184
- children: N.website
185
- })] })]
186
- })]
187
- })] }),
188
- /* @__PURE__ */ E(t, { children: [/* @__PURE__ */ T(i, { children: /* @__PURE__ */ E(r, {
189
- className: "flex items-center gap-2",
190
- children: [/* @__PURE__ */ T(g, { size: 18 }), " Address"]
191
- }) }), /* @__PURE__ */ T(n, { children: /* @__PURE__ */ T("p", { children: C(N.address) }) })] }),
192
- N.notes && /* @__PURE__ */ E(t, { children: [/* @__PURE__ */ T(i, { children: /* @__PURE__ */ E(r, {
193
- className: "flex items-center gap-2",
194
- children: [/* @__PURE__ */ T(p, { size: 18 }), " Notes"]
195
- }) }), /* @__PURE__ */ T(n, { children: /* @__PURE__ */ T("p", { children: N.notes }) })] })
196
- ]
197
- }), /* @__PURE__ */ E("div", {
198
- className: "space-y-6",
199
- children: [/* @__PURE__ */ E(t, { children: [/* @__PURE__ */ T(i, { children: /* @__PURE__ */ T(r, { children: "Business Details" }) }), /* @__PURE__ */ E(n, {
200
- className: "space-y-3",
201
- children: [
202
- N.businessLicense && /* @__PURE__ */ E("div", { children: [/* @__PURE__ */ T("p", {
203
- className: "text-sm text-text-secondary",
204
- children: "Business License"
205
- }), /* @__PURE__ */ T("p", {
206
- className: "font-mono",
207
- children: N.businessLicense
208
- })] }),
209
- N.taxId && /* @__PURE__ */ E("div", { children: [/* @__PURE__ */ T("p", {
210
- className: "text-sm text-text-secondary",
211
- children: "Tax ID"
212
- }), /* @__PURE__ */ T("p", {
213
- className: "font-mono",
214
- children: N.taxId
215
- })] }),
216
- /* @__PURE__ */ E("div", { children: [/* @__PURE__ */ T("p", {
217
- className: "text-sm text-text-secondary",
218
- children: "Preferred Contact"
219
- }), /* @__PURE__ */ T("p", {
220
- className: "capitalize",
221
- children: N.preferredContactMethod
222
- })] }),
223
- /* @__PURE__ */ E("div", { children: [/* @__PURE__ */ T("p", {
224
- className: "text-sm text-text-secondary",
225
- children: "Marketing Opt-in"
226
- }), /* @__PURE__ */ T(o, {
227
- variant: N.marketingOptIn ? "default" : "secondary",
228
- children: N.marketingOptIn ? "Yes" : "No"
229
- })] })
230
- ]
231
- })] }), /* @__PURE__ */ E(t, { children: [/* @__PURE__ */ T(i, { children: /* @__PURE__ */ T(r, { children: "Account Info" }) }), /* @__PURE__ */ E(n, {
232
- className: "space-y-3",
233
- children: [/* @__PURE__ */ E("div", { children: [/* @__PURE__ */ T("p", {
234
- className: "text-sm text-text-secondary",
235
- children: "Created"
236
- }), /* @__PURE__ */ T("p", { children: S(N.createdAt, "full") })] }), /* @__PURE__ */ E("div", { children: [/* @__PURE__ */ T("p", {
237
- className: "text-sm text-text-secondary",
238
- children: "Last Updated"
239
- }), /* @__PURE__ */ T("p", { children: S(N.updatedAt, "relative") })] })]
240
- })] })]
241
- })]
242
- })
243
- ]
244
- }) : /* @__PURE__ */ T(a, {
245
- title: "New Customer",
246
- subtitle: "Add a new customer",
247
- icon: /* @__PURE__ */ T(y, { size: 24 }),
248
- headerActions: /* @__PURE__ */ E(d, {
249
- variant: "outline",
250
- onClick: L,
251
- children: [/* @__PURE__ */ T(f, { size: 16 }), " Back"]
252
- }),
253
- children: /* @__PURE__ */ T(t, { children: /* @__PURE__ */ T(n, {
254
- className: "p-8 text-center",
255
- children: /* @__PURE__ */ T("p", {
256
- className: "text-text-secondary",
257
- children: "Customer creation form would go here"
258
- })
259
- }) })
260
- });
261
- }
262
- //#endregion
263
- export { j as default };
@@ -1,328 +0,0 @@
1
- import { M as e, ct as t, d as n, f as r, g as i, h as a, i as o, l as s, n as c, ot as l, r as u, u as d } from "./PageLayout-D4LDHJJq.js";
2
- import { t as f } from "./arrow-left-n48Y-Wis.js";
3
- import { t as p } from "./clock-DJZtdl8u.js";
4
- import { t as m } from "./dollar-sign-CgKQRz_e.js";
5
- import { t as h } from "./file-text-DWWY6_f5.js";
6
- import { t as g } from "./map-pin-BGiCvyCs.js";
7
- import { t as _ } from "./square-pen-CopE9GmB.js";
8
- import { t as v } from "./star-nHlLjDKR.js";
9
- import { t as y } from "./users-BAM4gHTn.js";
10
- import { t as b } from "./useFleet-DiAC-IiH.js";
11
- import { r as x } from "./StatusBadge-NpTeHVlw.js";
12
- import { n as S, r as C } from "./formatters-DhKZ-eA1.js";
13
- import { useParams as w } from "react-router-dom";
14
- import { jsx as T, jsxs as E } from "react/jsx-runtime";
15
- import { EmphasisPanel as D, NextSteps as O, PagePurpose as k } from "@burdenoff/fe-libs/ui";
16
- //#region src/movethewheels/pages/DriverDetailsPage.tsx
17
- function A() {
18
- let { driverId: A } = w(), { basePath: j, navigate: M } = l(), { driver: N, isLoading: P, error: F, refetch: I } = b(A), L = () => M?.(t(j, "fleet/drivers")), R = (e) => M?.(t(j, e));
19
- return P ? /* @__PURE__ */ T(u, { message: "Loading driver details..." }) : F || !N ? /* @__PURE__ */ T(c, {
20
- title: "Driver not found",
21
- onRetry: I
22
- }) : /* @__PURE__ */ E(o, {
23
- title: N.fullName,
24
- subtitle: `Employee ID: ${N.employeeId}`,
25
- icon: /* @__PURE__ */ T(y, { size: 24 }),
26
- headerActions: /* @__PURE__ */ E("div", {
27
- className: "flex gap-2",
28
- children: [/* @__PURE__ */ E(d, {
29
- variant: "outline",
30
- onClick: L,
31
- children: [/* @__PURE__ */ T(f, { size: 16 }), " Back"]
32
- }), /* @__PURE__ */ E(d, { children: [/* @__PURE__ */ T(_, { size: 16 }), " Edit"] })]
33
- }),
34
- headerContent: /* @__PURE__ */ E("div", {
35
- className: "flex items-center gap-4",
36
- children: [/* @__PURE__ */ T(x, {
37
- status: N.status,
38
- type: "driver"
39
- }), /* @__PURE__ */ E("div", {
40
- className: "flex items-center gap-1",
41
- children: [
42
- /* @__PURE__ */ T(v, {
43
- size: 16,
44
- className: "text-status-warning-text fill-current"
45
- }),
46
- /* @__PURE__ */ T("span", {
47
- className: "font-medium",
48
- children: N.ratings.overall.toFixed(1)
49
- }),
50
- /* @__PURE__ */ E("span", {
51
- className: "text-text-secondary",
52
- children: [
53
- "(",
54
- N.ratings.totalRatings,
55
- " ratings)"
56
- ]
57
- })
58
- ]
59
- })]
60
- }),
61
- children: [
62
- /* @__PURE__ */ T(k, {
63
- icon: /* @__PURE__ */ T(y, { size: 18 }),
64
- children: "A driver's full profile — performance ratings, working hours, documents, earnings and live location. Use it to confirm someone is road-ready and compliant before assigning them an order or route."
65
- }),
66
- /* @__PURE__ */ T(O, {
67
- storageKey: "movethewheels-driver-details",
68
- steps: [
69
- {
70
- id: "assign",
71
- label: "Assign to an order",
72
- description: "Hand a pending delivery to this driver.",
73
- icon: /* @__PURE__ */ T(g, { size: 16 }),
74
- onClick: () => R("orders")
75
- },
76
- {
77
- id: "routes",
78
- label: "Plan their route",
79
- description: "Batch nearby drop-offs into an optimized itinerary.",
80
- icon: /* @__PURE__ */ T(p, { size: 16 }),
81
- onClick: () => R("routes")
82
- },
83
- {
84
- id: "edit",
85
- label: "Update driver record",
86
- description: "Refresh documents, shift or compliance details.",
87
- icon: /* @__PURE__ */ T(_, { size: 16 }),
88
- onClick: () => {}
89
- }
90
- ]
91
- }),
92
- /* @__PURE__ */ E("div", {
93
- className: "grid grid-cols-1 lg:grid-cols-3 gap-6",
94
- children: [/* @__PURE__ */ E("div", {
95
- className: "lg:col-span-2 space-y-6",
96
- children: [
97
- /* @__PURE__ */ E(D, { children: [/* @__PURE__ */ E("h2", {
98
- className: "flex items-center gap-2 text-base font-semibold text-text-primary mb-4",
99
- children: [/* @__PURE__ */ T(v, { size: 18 }), " Ratings"]
100
- }), /* @__PURE__ */ T("div", {
101
- className: "grid grid-cols-2 md:grid-cols-3 gap-4",
102
- children: [
103
- {
104
- label: "Punctuality",
105
- value: N.ratings.punctuality
106
- },
107
- {
108
- label: "Communication",
109
- value: N.ratings.communication
110
- },
111
- {
112
- label: "Handling",
113
- value: N.ratings.carefulHandling
114
- },
115
- {
116
- label: "Professionalism",
117
- value: N.ratings.professionalism
118
- },
119
- {
120
- label: "On-Time Delivery",
121
- value: N.ratings.onTimeDelivery
122
- }
123
- ].map((t) => /* @__PURE__ */ E("div", { children: [/* @__PURE__ */ T("p", {
124
- className: "text-sm text-text-secondary",
125
- children: t.label
126
- }), /* @__PURE__ */ E("div", {
127
- className: "flex items-center gap-2 mt-1",
128
- children: [/* @__PURE__ */ T(e, {
129
- value: t.value * 20,
130
- className: "flex-1 h-2"
131
- }), /* @__PURE__ */ T("span", {
132
- className: "text-sm font-medium",
133
- children: t.value.toFixed(1)
134
- })]
135
- })] }, t.label))
136
- })] }),
137
- /* @__PURE__ */ E(n, { children: [/* @__PURE__ */ T(a, { children: /* @__PURE__ */ E(i, {
138
- className: "flex items-center gap-2",
139
- children: [/* @__PURE__ */ T(p, { size: 18 }), " Working Hours"]
140
- }) }), /* @__PURE__ */ T(r, { children: /* @__PURE__ */ E("div", {
141
- className: "grid grid-cols-2 md:grid-cols-4 gap-4",
142
- children: [
143
- /* @__PURE__ */ E("div", { children: [/* @__PURE__ */ T("p", {
144
- className: "text-sm text-text-secondary",
145
- children: "Shift"
146
- }), /* @__PURE__ */ E("p", {
147
- className: "font-medium",
148
- children: [
149
- N.workingHours.startTime,
150
- " - ",
151
- N.workingHours.endTime
152
- ]
153
- })] }),
154
- /* @__PURE__ */ E("div", { children: [/* @__PURE__ */ T("p", {
155
- className: "text-sm text-text-secondary",
156
- children: "Working Days"
157
- }), /* @__PURE__ */ E("p", {
158
- className: "font-medium",
159
- children: [N.workingHours.workingDays.length, " days/week"]
160
- })] }),
161
- /* @__PURE__ */ E("div", { children: [/* @__PURE__ */ T("p", {
162
- className: "text-sm text-text-secondary",
163
- children: "Hours Today"
164
- }), /* @__PURE__ */ E("p", {
165
- className: "font-medium",
166
- children: [
167
- N.workingHours.currentHoursToday,
168
- "h / ",
169
- N.workingHours.maxHoursPerDay,
170
- "h"
171
- ]
172
- })] }),
173
- /* @__PURE__ */ E("div", { children: [/* @__PURE__ */ T("p", {
174
- className: "text-sm text-text-secondary",
175
- children: "Hours This Week"
176
- }), /* @__PURE__ */ E("p", {
177
- className: "font-medium",
178
- children: [
179
- N.workingHours.currentHoursThisWeek,
180
- "h /",
181
- " ",
182
- N.workingHours.maxHoursPerWeek,
183
- "h"
184
- ]
185
- })] })
186
- ]
187
- }) })] }),
188
- /* @__PURE__ */ E(n, { children: [/* @__PURE__ */ T(a, { children: /* @__PURE__ */ E(i, {
189
- className: "flex items-center gap-2",
190
- children: [/* @__PURE__ */ T(h, { size: 18 }), " Documents"]
191
- }) }), /* @__PURE__ */ T(r, { children: /* @__PURE__ */ E("div", {
192
- className: "space-y-3",
193
- children: [/* @__PURE__ */ E("div", {
194
- className: "flex items-center justify-between p-3 border rounded-lg",
195
- children: [/* @__PURE__ */ E("div", { children: [
196
- /* @__PURE__ */ T("p", {
197
- className: "font-medium",
198
- children: "Driver's License"
199
- }),
200
- /* @__PURE__ */ E("p", {
201
- className: "text-sm text-text-secondary",
202
- children: [
203
- N.licenseNumber,
204
- " - ",
205
- N.licenseType
206
- ]
207
- }),
208
- /* @__PURE__ */ E("p", {
209
- className: "text-sm text-text-secondary",
210
- children: ["Expires: ", C(N.licenseExpiry)]
211
- })
212
- ] }), /* @__PURE__ */ T(s, {
213
- variant: "default",
214
- children: "Valid"
215
- })]
216
- }), N.documents.map((e) => /* @__PURE__ */ E("div", {
217
- className: "flex items-center justify-between p-3 border rounded-lg",
218
- children: [/* @__PURE__ */ E("div", { children: [/* @__PURE__ */ T("p", {
219
- className: "font-medium capitalize",
220
- children: e.type.replace("_", " ")
221
- }), /* @__PURE__ */ E("p", {
222
- className: "text-sm text-text-secondary",
223
- children: ["Expires: ", C(e.expiryDate)]
224
- })] }), /* @__PURE__ */ T(s, {
225
- variant: e.verified ? "default" : "secondary",
226
- children: e.verified ? "Verified" : "Pending"
227
- })]
228
- }, e.id))]
229
- }) })] })
230
- ]
231
- }), /* @__PURE__ */ E("div", {
232
- className: "space-y-6",
233
- children: [
234
- /* @__PURE__ */ E(n, { children: [/* @__PURE__ */ T(a, { children: /* @__PURE__ */ T(i, { children: "Statistics" }) }), /* @__PURE__ */ E(r, {
235
- className: "space-y-4",
236
- children: [
237
- /* @__PURE__ */ E("div", { children: [/* @__PURE__ */ T("p", {
238
- className: "text-sm text-text-secondary",
239
- children: "Total Deliveries"
240
- }), /* @__PURE__ */ T("p", {
241
- className: "text-2xl font-bold",
242
- children: N.completedOrders.toLocaleString()
243
- })] }),
244
- /* @__PURE__ */ E("div", { children: [/* @__PURE__ */ T("p", {
245
- className: "text-sm text-text-secondary",
246
- children: "Today's Deliveries"
247
- }), /* @__PURE__ */ T("p", {
248
- className: "text-2xl font-bold",
249
- children: N.todayOrders
250
- })] }),
251
- /* @__PURE__ */ E("div", { children: [/* @__PURE__ */ T("p", {
252
- className: "text-sm text-text-secondary",
253
- children: "Join Date"
254
- }), /* @__PURE__ */ T("p", {
255
- className: "font-medium",
256
- children: C(N.joinDate)
257
- })] })
258
- ]
259
- })] }),
260
- /* @__PURE__ */ E(n, { children: [/* @__PURE__ */ T(a, { children: /* @__PURE__ */ E(i, {
261
- className: "flex items-center gap-2",
262
- children: [/* @__PURE__ */ T(m, { size: 18 }), " Earnings"]
263
- }) }), /* @__PURE__ */ E(r, {
264
- className: "space-y-3",
265
- children: [
266
- /* @__PURE__ */ E("div", { children: [/* @__PURE__ */ T("p", {
267
- className: "text-sm text-text-secondary",
268
- children: "Total Earnings"
269
- }), /* @__PURE__ */ T("p", {
270
- className: "text-2xl font-bold",
271
- children: S(N.earnings.totalEarnings)
272
- })] }),
273
- /* @__PURE__ */ E("div", {
274
- className: "grid grid-cols-2 gap-3",
275
- children: [/* @__PURE__ */ E("div", { children: [/* @__PURE__ */ T("p", {
276
- className: "text-sm text-text-secondary",
277
- children: "This Week"
278
- }), /* @__PURE__ */ T("p", {
279
- className: "font-medium",
280
- children: S(N.earnings.weeklyEarnings)
281
- })] }), /* @__PURE__ */ E("div", { children: [/* @__PURE__ */ T("p", {
282
- className: "text-sm text-text-secondary",
283
- children: "This Month"
284
- }), /* @__PURE__ */ T("p", {
285
- className: "font-medium",
286
- children: S(N.earnings.monthlyEarnings)
287
- })] })]
288
- }),
289
- /* @__PURE__ */ E("div", { children: [/* @__PURE__ */ T("p", {
290
- className: "text-sm text-text-secondary",
291
- children: "Base Salary"
292
- }), /* @__PURE__ */ E("p", {
293
- className: "font-medium",
294
- children: [S(N.baseSalary), "/year"]
295
- })] })
296
- ]
297
- })] }),
298
- N.currentLocation && /* @__PURE__ */ E(n, { children: [/* @__PURE__ */ T(a, { children: /* @__PURE__ */ E(i, {
299
- className: "flex items-center gap-2",
300
- children: [/* @__PURE__ */ T(g, { size: 18 }), " Current Location"]
301
- }) }), /* @__PURE__ */ E(r, { children: [/* @__PURE__ */ T("p", {
302
- className: "text-sm",
303
- children: N.currentLocation.address || "Location updating..."
304
- }), /* @__PURE__ */ E("p", {
305
- className: "text-xs text-text-secondary mt-1",
306
- children: ["Updated ", C(N.currentLocation.timestamp || /* @__PURE__ */ new Date(), "relative")]
307
- })] })] }),
308
- /* @__PURE__ */ E(n, { children: [/* @__PURE__ */ T(a, { children: /* @__PURE__ */ T(i, { children: "Compliance Status" }) }), /* @__PURE__ */ T(r, {
309
- className: "space-y-2",
310
- children: Object.entries(N.compliance).filter(([e]) => e !== "lastUpdate").map(([e, t]) => /* @__PURE__ */ E("div", {
311
- className: "flex items-center justify-between",
312
- children: [/* @__PURE__ */ T("span", {
313
- className: "text-sm capitalize",
314
- children: e.replace(/([A-Z])/g, " $1")
315
- }), /* @__PURE__ */ T(s, {
316
- variant: t ? "default" : "destructive",
317
- children: t ? "Compliant" : "Non-compliant"
318
- })]
319
- }, e))
320
- })] })
321
- ]
322
- })]
323
- })
324
- ]
325
- });
326
- }
327
- //#endregion
328
- export { A as default };