@burdenoff/microfe-movethewheels 2026.703.3 → 2026.703.4
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/{AIAssistantPage-C3cPsWt-.js → AIAssistantPage-3YOnHO9Y.js} +3 -3
- package/dist/{AnalyticsPage-Dz6g2MvK.js → AnalyticsPage-CMpI1070.js} +11 -11
- package/dist/CreateOrderPage-DRAgGo9i.js +490 -0
- package/dist/CustomerDetailsPage-BCeMmOFe.js +615 -0
- package/dist/{CustomersPage-BKxMS1AV.js → CustomersPage-CaNBMXmM.js} +64 -53
- package/dist/{DashboardPage-BVjQi0EB.js → DashboardPage-DIKlXde3.js} +16 -16
- package/dist/DataTable-XvUcTjwi.js +340 -0
- package/dist/DocumentsCard-U2lSe-cn.js +169 -0
- package/dist/{DriverDetailsPage-CN3WQ0B9.js → DriverDetailsPage-BQrYd_Lp.js} +178 -195
- package/dist/{DriversPage-CH9rjQC-.js → DriversPage-PYmdFiby.js} +65 -54
- package/dist/FinancePage-Cwh9Bw4M.js +136 -0
- package/dist/{FleetPage-DqkFi3s3.js → FleetPage-3ZHsB-TN.js} +23 -22
- package/dist/{FormError-BlOjnXOq.js → FormError-cuLV2jVD.js} +1 -1
- package/dist/{ImportExportPage-DKJRCezl.js → ImportExportPage-C6f7DqhM.js} +50 -70
- package/dist/{InventoryPage-e0ze63iX.js → InventoryPage-DpiqVu1v.js} +8 -8
- package/dist/{LiveTrackingPage-DCX-K-LR.js → LiveTrackingPage-FAzzlVnX.js} +9 -9
- package/dist/MarketplacePage-Bh_2ns4v.js +426 -0
- package/dist/Notice-CSoDYKw9.js +46 -0
- package/dist/OrderDetailsPage-zCj0lW0j.js +584 -0
- package/dist/{OrdersListPage-Cn90P1Xx.js → OrdersListPage-CAMsuUck.js} +166 -89
- package/dist/{ProductDetailsPage-C9uOiYLp.js → ProductDetailsPage-wsxAQkA0.js} +12 -12
- package/dist/{ProductsPage-QJfHHpqB.js → ProductsPage-DC5qDLfz.js} +60 -49
- package/dist/ReportsPage-BwUJ37eO.js +356 -0
- package/dist/RouteDetailsPage-DyMJE9AS.js +583 -0
- package/dist/{RoutesPage-DMfoicM1.js → RoutesPage-Dtc669yc.js} +57 -46
- package/dist/{SettingsPage-Bn-v0mbQ.js → SettingsPage-CpH9xhQg.js} +5 -27
- package/dist/{TrackingPage-W-jtdM3Y.js → TrackingPage-DaNEFG_h.js} +10 -10
- package/dist/{VehicleDetailsPage-Bceo5oz3.js → VehicleDetailsPage-DldYNsYV.js} +125 -142
- package/dist/{VehiclesPage-ApKThYeG.js → VehiclesPage-BFw13iMt.js} +61 -50
- package/dist/{WarehouseDetailsPage-L_6sWigM.js → WarehouseDetailsPage-CMG7or6G.js} +17 -17
- package/dist/{WarehousesPage-DCbXXXWE.js → WarehousesPage-Wkytnt86.js} +58 -47
- package/dist/arrow-right-Q3XQpTPR.js +11 -0
- package/dist/arrow-up-xNF1zJUG.js +17 -0
- package/dist/chevron-left-B2_r0Elx.js +8 -0
- package/dist/{wrench-CANXWxF-.js → fuel-B6_lnKDs.js} +2 -5
- package/dist/index.js +163 -174
- package/dist/upload-CHZofOqb.js +21 -0
- package/dist/{useAnalytics-DS8n0xgg.js → useAnalytics-D7HW2XRb.js} +52 -2
- package/dist/{useCustomers-BmTNGxiI.js → useCustomers-BPW4__PR.js} +29 -26
- package/dist/{useFleet-DKqXZ16m.js → useFleet-ChBkxAd6.js} +81 -69
- package/dist/{useInventory-DkyiVY_A.js → useInventory-CAAVMRp6.js} +83 -38
- package/dist/{useOrders-Cfk1GLiq.js → useOrders-B465S2nt.js} +58 -47
- package/dist/{useReports-CTqZr-AB.js → useReports-jQ3GpNOm.js} +40 -34
- package/dist/{useRoutes-BQWO607N.js → useRoutes-hS3d5-xr.js} +49 -41
- package/dist/{useTracking-B-va1kO3.js → useTracking-RjGz9PZG.js} +2 -2
- package/dist/user-check-BEKRCi7v.js +20 -0
- package/dist/wrench-q_rgJfaP.js +8 -0
- package/dist/x-tMeDMcCw.js +11 -0
- package/package.json +1 -1
- package/src/movethewheels/components/DataTable.tsx +252 -84
- package/src/movethewheels/components/DocumentsCard.tsx +102 -0
- package/src/movethewheels/components/Notice.tsx +61 -0
- package/src/movethewheels/components/index.ts +7 -0
- package/src/movethewheels/hooks/index.ts +9 -0
- package/src/movethewheels/hooks/useAnalytics.ts +95 -0
- package/src/movethewheels/hooks/useCustomers.ts +11 -4
- package/src/movethewheels/hooks/useEntityDocuments.ts +132 -0
- package/src/movethewheels/hooks/useFleet.ts +26 -7
- package/src/movethewheels/hooks/useInventory.ts +70 -7
- package/src/movethewheels/hooks/useOrders.ts +32 -2
- package/src/movethewheels/hooks/useReports.ts +14 -4
- package/src/movethewheels/hooks/useRoutes.ts +20 -3
- package/src/movethewheels/pages/AnalyticsPage.tsx +2 -2
- package/src/movethewheels/pages/CreateOrderPage.tsx +44 -16
- package/src/movethewheels/pages/CustomerDetailsPage.tsx +239 -33
- package/src/movethewheels/pages/CustomersPage.tsx +27 -11
- package/src/movethewheels/pages/DriverDetailsPage.tsx +16 -30
- package/src/movethewheels/pages/DriversPage.tsx +26 -9
- package/src/movethewheels/pages/FinancePage.tsx +67 -84
- package/src/movethewheels/pages/MarketplacePage.tsx +265 -50
- package/src/movethewheels/pages/OrderDetailsPage.tsx +214 -10
- package/src/movethewheels/pages/OrdersListPage.tsx +76 -13
- package/src/movethewheels/pages/ProductsPage.tsx +27 -7
- package/src/movethewheels/pages/ReportsPage.tsx +65 -4
- package/src/movethewheels/pages/RouteDetailsPage.tsx +74 -13
- package/src/movethewheels/pages/RoutesPage.tsx +22 -6
- package/src/movethewheels/pages/SettingsPage.tsx +3 -19
- package/src/movethewheels/pages/VehicleDetailsPage.tsx +3 -33
- package/src/movethewheels/pages/VehiclesPage.tsx +26 -5
- package/src/movethewheels/pages/WarehousesPage.tsx +22 -17
- package/src/movethewheels/types/index.ts +8 -0
- package/src/movethewheels/utils/download.ts +62 -0
- package/dist/CreateOrderPage-C5iwnjp4.js +0 -479
- package/dist/CustomerDetailsPage-B6nwFyLO.js +0 -406
- package/dist/DataTable-DmciIKKM.js +0 -249
- package/dist/FinancePage-DEDykSOP.js +0 -158
- package/dist/MarketplacePage-CIQ97_zp.js +0 -247
- package/dist/OrderDetailsPage-DYiZ-9UK.js +0 -429
- package/dist/ReportsPage-Zp53q3_8.js +0 -284
- package/dist/RouteDetailsPage-DUStXSf9.js +0 -531
- /package/dist/{MetricCard-BY0QrMD4.js → MetricCard-CVBVpu7o.js} +0 -0
- /package/dist/{StatusBadge-BZurYHMy.js → StatusBadge-C87mDpDP.js} +0 -0
- /package/dist/{box-D9Pal4HM.js → box-Eu05PXDh.js} +0 -0
- /package/dist/{chart-column-BFIJysDR.js → chart-column-ouzgxIv_.js} +0 -0
- /package/dist/{chevron-right-EMIIyyJ1.js → chevron-right-eV4LjaSi.js} +0 -0
- /package/dist/{circle-alert-iY24lSlp.js → circle-alert-Bzh2DBSF.js} +0 -0
- /package/dist/{circle-check-big-w0TrLKMF.js → circle-check-big-CGMSpQmD.js} +0 -0
- /package/dist/{clock-DJZtdl8u.js → clock-Bl3ptexL.js} +0 -0
- /package/dist/{dollar-sign-CgKQRz_e.js → dollar-sign-CAVU95SO.js} +0 -0
- /package/dist/{download-DRXxoiQR.js → download-C5NbvVDc.js} +0 -0
- /package/dist/{file-text-DWWY6_f5.js → file-text-D-1uvLZG.js} +0 -0
- /package/dist/{filter-DloLC2eE.js → filter-DUfUg6BO.js} +0 -0
- /package/dist/{formatters-CF2S2l1m.js → formatters-BQr-aR5W.js} +0 -0
- /package/dist/{map-CkJaULb2.js → map-C-M-FQLR.js} +0 -0
- /package/dist/{map-pin-BGiCvyCs.js → map-pin-Dznl5l40.js} +0 -0
- /package/dist/{navigation-D36prnAn.js → navigation-BJSJl-VG.js} +0 -0
- /package/dist/{package-BChUzpJS.js → package-CcRttV2N.js} +0 -0
- /package/dist/{phone-Ac9s3mo_.js → phone-DVSZHt_j.js} +0 -0
- /package/dist/{plus-Z76q-FZm.js → plus-C_XZDwBz.js} +0 -0
- /package/dist/{refresh-cw-DKt6f5T6.js → refresh-cw-CfgN67l3.js} +0 -0
- /package/dist/{save-CojywNhG.js → save-DJE8Fpdv.js} +0 -0
- /package/dist/{search-CDGefqb3.js → search-D_VyGcZT.js} +0 -0
- /package/dist/{square-pen-CopE9GmB.js → square-pen-D-6JYrVQ.js} +0 -0
- /package/dist/{star-nHlLjDKR.js → star-BpRlUZuU.js} +0 -0
- /package/dist/{store-BR9Voi5E.js → store-B-8HMuyZ.js} +0 -0
- /package/dist/{trash-2-BKhar6Hs.js → trash-2-8vmv-XV_.js} +0 -0
- /package/dist/{trending-up-Dohgd4t_.js → trending-up-Dz6PqPRj.js} +0 -0
- /package/dist/{triangle-alert-i-XQL9Rd.js → triangle-alert-D7Y3J_4z.js} +0 -0
- /package/dist/{truck-C0v_hbLR.js → truck-D-y2IDzv.js} +0 -0
- /package/dist/{useAssistant-D4v3oxD3.js → useAssistant-DVW4QgQb.js} +0 -0
- /package/dist/{useImportExport-DHr-SWSw.js → useImportExport-DrPDHEDK.js} +0 -0
- /package/dist/{useSettings-CkDH_-gM.js → useSettings-BB8X2RLh.js} +0 -0
- /package/dist/{user-jyFU3lXk.js → user-DzfTn4dE.js} +0 -0
- /package/dist/{users-DZ-ilS6B.js → users-CCrq-w0C.js} +0 -0
- /package/dist/{warehouse-6m5kXMLu.js → warehouse-CaqfmMKh.js} +0 -0
|
@@ -1,31 +1,32 @@
|
|
|
1
1
|
import { A as e, M as t, ct as n, d as r, f as i, g as a, h as o, i as s, j as c, l, n as u, ot as d, r as f, u as p } from "./PageLayout-D4LDHJJq.js";
|
|
2
2
|
import { t as m } from "./arrow-left-n48Y-Wis.js";
|
|
3
|
-
import { t as h } from "./clock-
|
|
4
|
-
import { t as g } from "./dollar-sign-
|
|
5
|
-
import { t as _ } from "./
|
|
6
|
-
import { t as v } from "./
|
|
7
|
-
import { t as y } from "./
|
|
8
|
-
import { t as b } from "./
|
|
9
|
-
import { t as x } from "./
|
|
10
|
-
import { t as S } from "./
|
|
11
|
-
import {
|
|
12
|
-
import { r as T } from "./
|
|
13
|
-
import {
|
|
14
|
-
import { t as
|
|
15
|
-
import {
|
|
16
|
-
import {
|
|
17
|
-
import {
|
|
18
|
-
import {
|
|
3
|
+
import { t as h } from "./clock-Bl3ptexL.js";
|
|
4
|
+
import { t as g } from "./dollar-sign-CAVU95SO.js";
|
|
5
|
+
import { t as _ } from "./DocumentsCard-U2lSe-cn.js";
|
|
6
|
+
import { t as v } from "./file-text-D-1uvLZG.js";
|
|
7
|
+
import { t as y } from "./map-pin-Dznl5l40.js";
|
|
8
|
+
import { t as b } from "./save-DJE8Fpdv.js";
|
|
9
|
+
import { t as x } from "./square-pen-D-6JYrVQ.js";
|
|
10
|
+
import { t as S } from "./star-BpRlUZuU.js";
|
|
11
|
+
import { t as C } from "./users-CCrq-w0C.js";
|
|
12
|
+
import { r as w, t as T } from "./useFleet-ChBkxAd6.js";
|
|
13
|
+
import { r as E } from "./StatusBadge-C87mDpDP.js";
|
|
14
|
+
import { t as D } from "./FormError-cuLV2jVD.js";
|
|
15
|
+
import { n as O, r as k } from "./formatters-BQr-aR5W.js";
|
|
16
|
+
import { useState as A } from "react";
|
|
17
|
+
import { useParams as j } from "react-router-dom";
|
|
18
|
+
import { jsx as M, jsxs as N } from "react/jsx-runtime";
|
|
19
|
+
import { EmphasisPanel as P, NextSteps as F, PagePurpose as I } from "@burdenoff/fe-libs/ui";
|
|
19
20
|
//#region src/movethewheels/pages/DriverDetailsPage.tsx
|
|
20
|
-
function
|
|
21
|
-
let { basePath: t, navigate: r } = d(), { createDriver: i } =
|
|
21
|
+
function L() {
|
|
22
|
+
let { basePath: t, navigate: r } = d(), { createDriver: i } = w(), [a, o] = A({
|
|
22
23
|
employeeId: "",
|
|
23
24
|
firstName: "",
|
|
24
25
|
lastName: "",
|
|
25
26
|
email: "",
|
|
26
27
|
phone: "",
|
|
27
28
|
licenseNumber: ""
|
|
28
|
-
}), [l, u] =
|
|
29
|
+
}), [l, u] = A(!1), [f, h] = A(null), g = () => r?.(n(t, "fleet/drivers")), _ = async (e) => {
|
|
29
30
|
if (e.preventDefault(), !a.employeeId.trim() || !a.firstName.trim() || !a.lastName.trim()) {
|
|
30
31
|
h("Employee ID, first name and last name are required.");
|
|
31
32
|
return;
|
|
@@ -45,50 +46,50 @@ function I() {
|
|
|
45
46
|
console.error("Failed to create driver:", e), h(e instanceof Error ? e.message : "Failed to create driver. Please try again."), u(!1);
|
|
46
47
|
}
|
|
47
48
|
};
|
|
48
|
-
return /* @__PURE__ */
|
|
49
|
+
return /* @__PURE__ */ N(s, {
|
|
49
50
|
title: "Add Driver",
|
|
50
51
|
subtitle: "Add a driver to your workforce",
|
|
51
|
-
icon: /* @__PURE__ */
|
|
52
|
-
headerActions: /* @__PURE__ */
|
|
52
|
+
icon: /* @__PURE__ */ M(C, { size: 24 }),
|
|
53
|
+
headerActions: /* @__PURE__ */ N("div", {
|
|
53
54
|
className: "flex gap-2",
|
|
54
|
-
children: [/* @__PURE__ */
|
|
55
|
+
children: [/* @__PURE__ */ N(p, {
|
|
55
56
|
variant: "outline",
|
|
56
57
|
onClick: g,
|
|
57
58
|
disabled: l,
|
|
58
|
-
children: [/* @__PURE__ */
|
|
59
|
-
}), /* @__PURE__ */
|
|
59
|
+
children: [/* @__PURE__ */ M(m, { size: 16 }), " Cancel"]
|
|
60
|
+
}), /* @__PURE__ */ N(p, {
|
|
60
61
|
onClick: _,
|
|
61
62
|
disabled: l,
|
|
62
63
|
children: [
|
|
63
|
-
/* @__PURE__ */
|
|
64
|
+
/* @__PURE__ */ M(b, { size: 16 }),
|
|
64
65
|
" ",
|
|
65
66
|
l ? "Saving..." : "Add Driver"
|
|
66
67
|
]
|
|
67
68
|
})]
|
|
68
69
|
}),
|
|
69
|
-
children: [/* @__PURE__ */
|
|
70
|
-
icon: /* @__PURE__ */
|
|
70
|
+
children: [/* @__PURE__ */ M(I, {
|
|
71
|
+
icon: /* @__PURE__ */ M(C, { size: 18 }),
|
|
71
72
|
children: "Add a driver so they can be assigned to orders and routes. An employee ID and name get them on the roster — add contact details and license number to keep the record complete."
|
|
72
|
-
}), /* @__PURE__ */
|
|
73
|
+
}), /* @__PURE__ */ N("form", {
|
|
73
74
|
onSubmit: _,
|
|
74
75
|
className: "max-w-2xl space-y-6",
|
|
75
|
-
children: [/* @__PURE__ */
|
|
76
|
+
children: [/* @__PURE__ */ M(D, { message: f }), /* @__PURE__ */ N(P, { children: [/* @__PURE__ */ M("h2", {
|
|
76
77
|
className: "text-base font-semibold text-text-primary mb-4",
|
|
77
78
|
children: "Driver Details"
|
|
78
|
-
}), /* @__PURE__ */
|
|
79
|
+
}), /* @__PURE__ */ N("div", {
|
|
79
80
|
className: "space-y-4",
|
|
80
|
-
children: [/* @__PURE__ */
|
|
81
|
+
children: [/* @__PURE__ */ N("div", {
|
|
81
82
|
className: "grid grid-cols-1 md:grid-cols-3 gap-4",
|
|
82
83
|
children: [
|
|
83
|
-
/* @__PURE__ */
|
|
84
|
+
/* @__PURE__ */ N("div", {
|
|
84
85
|
className: "space-y-2",
|
|
85
|
-
children: [/* @__PURE__ */
|
|
86
|
+
children: [/* @__PURE__ */ N(c, {
|
|
86
87
|
htmlFor: "employeeId",
|
|
87
|
-
children: ["Employee ID ", /* @__PURE__ */
|
|
88
|
+
children: ["Employee ID ", /* @__PURE__ */ M("span", {
|
|
88
89
|
className: "text-status-error-text",
|
|
89
90
|
children: "*"
|
|
90
91
|
})]
|
|
91
|
-
}), /* @__PURE__ */
|
|
92
|
+
}), /* @__PURE__ */ M(e, {
|
|
92
93
|
id: "employeeId",
|
|
93
94
|
value: a.employeeId,
|
|
94
95
|
onChange: (e) => o((t) => ({
|
|
@@ -99,15 +100,15 @@ function I() {
|
|
|
99
100
|
required: !0
|
|
100
101
|
})]
|
|
101
102
|
}),
|
|
102
|
-
/* @__PURE__ */
|
|
103
|
+
/* @__PURE__ */ N("div", {
|
|
103
104
|
className: "space-y-2",
|
|
104
|
-
children: [/* @__PURE__ */
|
|
105
|
+
children: [/* @__PURE__ */ N(c, {
|
|
105
106
|
htmlFor: "firstName",
|
|
106
|
-
children: ["First Name ", /* @__PURE__ */
|
|
107
|
+
children: ["First Name ", /* @__PURE__ */ M("span", {
|
|
107
108
|
className: "text-status-error-text",
|
|
108
109
|
children: "*"
|
|
109
110
|
})]
|
|
110
|
-
}), /* @__PURE__ */
|
|
111
|
+
}), /* @__PURE__ */ M(e, {
|
|
111
112
|
id: "firstName",
|
|
112
113
|
value: a.firstName,
|
|
113
114
|
onChange: (e) => o((t) => ({
|
|
@@ -118,15 +119,15 @@ function I() {
|
|
|
118
119
|
required: !0
|
|
119
120
|
})]
|
|
120
121
|
}),
|
|
121
|
-
/* @__PURE__ */
|
|
122
|
+
/* @__PURE__ */ N("div", {
|
|
122
123
|
className: "space-y-2",
|
|
123
|
-
children: [/* @__PURE__ */
|
|
124
|
+
children: [/* @__PURE__ */ N(c, {
|
|
124
125
|
htmlFor: "lastName",
|
|
125
|
-
children: ["Last Name ", /* @__PURE__ */
|
|
126
|
+
children: ["Last Name ", /* @__PURE__ */ M("span", {
|
|
126
127
|
className: "text-status-error-text",
|
|
127
128
|
children: "*"
|
|
128
129
|
})]
|
|
129
|
-
}), /* @__PURE__ */
|
|
130
|
+
}), /* @__PURE__ */ M(e, {
|
|
130
131
|
id: "lastName",
|
|
131
132
|
value: a.lastName,
|
|
132
133
|
onChange: (e) => o((t) => ({
|
|
@@ -138,15 +139,15 @@ function I() {
|
|
|
138
139
|
})]
|
|
139
140
|
})
|
|
140
141
|
]
|
|
141
|
-
}), /* @__PURE__ */
|
|
142
|
+
}), /* @__PURE__ */ N("div", {
|
|
142
143
|
className: "grid grid-cols-1 md:grid-cols-3 gap-4",
|
|
143
144
|
children: [
|
|
144
|
-
/* @__PURE__ */
|
|
145
|
+
/* @__PURE__ */ N("div", {
|
|
145
146
|
className: "space-y-2",
|
|
146
|
-
children: [/* @__PURE__ */
|
|
147
|
+
children: [/* @__PURE__ */ M(c, {
|
|
147
148
|
htmlFor: "email",
|
|
148
149
|
children: "Email"
|
|
149
|
-
}), /* @__PURE__ */
|
|
150
|
+
}), /* @__PURE__ */ M(e, {
|
|
150
151
|
id: "email",
|
|
151
152
|
type: "email",
|
|
152
153
|
value: a.email,
|
|
@@ -157,12 +158,12 @@ function I() {
|
|
|
157
158
|
placeholder: "jane.doe@example.com"
|
|
158
159
|
})]
|
|
159
160
|
}),
|
|
160
|
-
/* @__PURE__ */
|
|
161
|
+
/* @__PURE__ */ N("div", {
|
|
161
162
|
className: "space-y-2",
|
|
162
|
-
children: [/* @__PURE__ */
|
|
163
|
+
children: [/* @__PURE__ */ M(c, {
|
|
163
164
|
htmlFor: "phone",
|
|
164
165
|
children: "Phone"
|
|
165
|
-
}), /* @__PURE__ */
|
|
166
|
+
}), /* @__PURE__ */ M(e, {
|
|
166
167
|
id: "phone",
|
|
167
168
|
value: a.phone,
|
|
168
169
|
onChange: (e) => o((t) => ({
|
|
@@ -172,12 +173,12 @@ function I() {
|
|
|
172
173
|
placeholder: "+1-555-0100"
|
|
173
174
|
})]
|
|
174
175
|
}),
|
|
175
|
-
/* @__PURE__ */
|
|
176
|
+
/* @__PURE__ */ N("div", {
|
|
176
177
|
className: "space-y-2",
|
|
177
|
-
children: [/* @__PURE__ */
|
|
178
|
+
children: [/* @__PURE__ */ M(c, {
|
|
178
179
|
htmlFor: "licenseNumber",
|
|
179
180
|
children: "License Number"
|
|
180
|
-
}), /* @__PURE__ */
|
|
181
|
+
}), /* @__PURE__ */ M(e, {
|
|
181
182
|
id: "licenseNumber",
|
|
182
183
|
value: a.licenseNumber,
|
|
183
184
|
onChange: (e) => o((t) => ({
|
|
@@ -193,44 +194,44 @@ function I() {
|
|
|
193
194
|
})]
|
|
194
195
|
});
|
|
195
196
|
}
|
|
196
|
-
function
|
|
197
|
-
let { driverId: e } =
|
|
198
|
-
return e ?
|
|
197
|
+
function R() {
|
|
198
|
+
let { driverId: e } = j(), { basePath: c, navigate: b } = d(), { driver: w, isLoading: D, error: A, refetch: R } = T(e), z = () => b?.(n(c, "fleet/drivers")), B = (e) => b?.(n(c, e));
|
|
199
|
+
return e ? D ? /* @__PURE__ */ M(f, { message: "Loading driver details..." }) : A || !w ? /* @__PURE__ */ M(u, {
|
|
199
200
|
title: "Driver not found",
|
|
200
|
-
onRetry:
|
|
201
|
-
}) : /* @__PURE__ */
|
|
202
|
-
title:
|
|
203
|
-
subtitle: `Employee ID: ${
|
|
204
|
-
icon: /* @__PURE__ */
|
|
205
|
-
headerActions: /* @__PURE__ */
|
|
201
|
+
onRetry: R
|
|
202
|
+
}) : /* @__PURE__ */ N(s, {
|
|
203
|
+
title: w.fullName,
|
|
204
|
+
subtitle: `Employee ID: ${w.employeeId}`,
|
|
205
|
+
icon: /* @__PURE__ */ M(C, { size: 24 }),
|
|
206
|
+
headerActions: /* @__PURE__ */ N("div", {
|
|
206
207
|
className: "flex gap-2",
|
|
207
|
-
children: [/* @__PURE__ */
|
|
208
|
+
children: [/* @__PURE__ */ N(p, {
|
|
208
209
|
variant: "outline",
|
|
209
|
-
onClick:
|
|
210
|
-
children: [/* @__PURE__ */
|
|
211
|
-
}), /* @__PURE__ */
|
|
210
|
+
onClick: z,
|
|
211
|
+
children: [/* @__PURE__ */ M(m, { size: 16 }), " Back"]
|
|
212
|
+
}), /* @__PURE__ */ N(p, { children: [/* @__PURE__ */ M(x, { size: 16 }), " Edit"] })]
|
|
212
213
|
}),
|
|
213
|
-
headerContent: /* @__PURE__ */
|
|
214
|
+
headerContent: /* @__PURE__ */ N("div", {
|
|
214
215
|
className: "flex items-center gap-4",
|
|
215
|
-
children: [/* @__PURE__ */
|
|
216
|
-
status:
|
|
216
|
+
children: [/* @__PURE__ */ M(E, {
|
|
217
|
+
status: w.status,
|
|
217
218
|
type: "driver"
|
|
218
|
-
}), /* @__PURE__ */
|
|
219
|
+
}), /* @__PURE__ */ N("div", {
|
|
219
220
|
className: "flex items-center gap-1",
|
|
220
221
|
children: [
|
|
221
|
-
/* @__PURE__ */
|
|
222
|
+
/* @__PURE__ */ M(S, {
|
|
222
223
|
size: 16,
|
|
223
224
|
className: "text-status-warning-text fill-current"
|
|
224
225
|
}),
|
|
225
|
-
/* @__PURE__ */
|
|
226
|
+
/* @__PURE__ */ M("span", {
|
|
226
227
|
className: "font-medium",
|
|
227
|
-
children:
|
|
228
|
+
children: w.ratings.overall.toFixed(1)
|
|
228
229
|
}),
|
|
229
|
-
/* @__PURE__ */
|
|
230
|
+
/* @__PURE__ */ N("span", {
|
|
230
231
|
className: "text-text-secondary",
|
|
231
232
|
children: [
|
|
232
233
|
"(",
|
|
233
|
-
|
|
234
|
+
w.ratings.totalRatings,
|
|
234
235
|
" ratings)"
|
|
235
236
|
]
|
|
236
237
|
})
|
|
@@ -238,260 +239,242 @@ function L() {
|
|
|
238
239
|
})]
|
|
239
240
|
}),
|
|
240
241
|
children: [
|
|
241
|
-
/* @__PURE__ */
|
|
242
|
-
icon: /* @__PURE__ */
|
|
242
|
+
/* @__PURE__ */ M(I, {
|
|
243
|
+
icon: /* @__PURE__ */ M(C, { size: 18 }),
|
|
243
244
|
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."
|
|
244
245
|
}),
|
|
245
|
-
/* @__PURE__ */
|
|
246
|
+
/* @__PURE__ */ M(F, {
|
|
246
247
|
storageKey: "movethewheels-driver-details",
|
|
247
248
|
steps: [
|
|
248
249
|
{
|
|
249
250
|
id: "assign",
|
|
250
251
|
label: "Assign to an order",
|
|
251
252
|
description: "Hand a pending delivery to this driver.",
|
|
252
|
-
icon: /* @__PURE__ */
|
|
253
|
-
onClick: () =>
|
|
253
|
+
icon: /* @__PURE__ */ M(y, { size: 16 }),
|
|
254
|
+
onClick: () => B("orders")
|
|
254
255
|
},
|
|
255
256
|
{
|
|
256
257
|
id: "routes",
|
|
257
258
|
label: "Plan their route",
|
|
258
259
|
description: "Batch nearby drop-offs into an optimized itinerary.",
|
|
259
|
-
icon: /* @__PURE__ */
|
|
260
|
-
onClick: () =>
|
|
260
|
+
icon: /* @__PURE__ */ M(h, { size: 16 }),
|
|
261
|
+
onClick: () => B("routes")
|
|
261
262
|
},
|
|
262
263
|
{
|
|
263
264
|
id: "edit",
|
|
264
265
|
label: "Update driver record",
|
|
265
266
|
description: "Refresh documents, shift or compliance details.",
|
|
266
|
-
icon: /* @__PURE__ */
|
|
267
|
+
icon: /* @__PURE__ */ M(x, { size: 16 }),
|
|
267
268
|
onClick: () => {}
|
|
268
269
|
}
|
|
269
270
|
]
|
|
270
271
|
}),
|
|
271
|
-
/* @__PURE__ */
|
|
272
|
+
/* @__PURE__ */ N("div", {
|
|
272
273
|
className: "grid grid-cols-1 lg:grid-cols-3 gap-6",
|
|
273
|
-
children: [/* @__PURE__ */
|
|
274
|
+
children: [/* @__PURE__ */ N("div", {
|
|
274
275
|
className: "lg:col-span-2 space-y-6",
|
|
275
276
|
children: [
|
|
276
|
-
/* @__PURE__ */
|
|
277
|
+
/* @__PURE__ */ N(P, { children: [/* @__PURE__ */ N("h2", {
|
|
277
278
|
className: "flex items-center gap-2 text-base font-semibold text-text-primary mb-4",
|
|
278
|
-
children: [/* @__PURE__ */
|
|
279
|
-
}), /* @__PURE__ */
|
|
279
|
+
children: [/* @__PURE__ */ M(S, { size: 18 }), " Ratings"]
|
|
280
|
+
}), /* @__PURE__ */ M("div", {
|
|
280
281
|
className: "grid grid-cols-2 md:grid-cols-3 gap-4",
|
|
281
282
|
children: [
|
|
282
283
|
{
|
|
283
284
|
label: "Punctuality",
|
|
284
|
-
value:
|
|
285
|
+
value: w.ratings.punctuality
|
|
285
286
|
},
|
|
286
287
|
{
|
|
287
288
|
label: "Communication",
|
|
288
|
-
value:
|
|
289
|
+
value: w.ratings.communication
|
|
289
290
|
},
|
|
290
291
|
{
|
|
291
292
|
label: "Handling",
|
|
292
|
-
value:
|
|
293
|
+
value: w.ratings.carefulHandling
|
|
293
294
|
},
|
|
294
295
|
{
|
|
295
296
|
label: "Professionalism",
|
|
296
|
-
value:
|
|
297
|
+
value: w.ratings.professionalism
|
|
297
298
|
},
|
|
298
299
|
{
|
|
299
300
|
label: "On-Time Delivery",
|
|
300
|
-
value:
|
|
301
|
+
value: w.ratings.onTimeDelivery
|
|
301
302
|
}
|
|
302
|
-
].map((e) => /* @__PURE__ */
|
|
303
|
+
].map((e) => /* @__PURE__ */ N("div", { children: [/* @__PURE__ */ M("p", {
|
|
303
304
|
className: "text-sm text-text-secondary",
|
|
304
305
|
children: e.label
|
|
305
|
-
}), /* @__PURE__ */
|
|
306
|
+
}), /* @__PURE__ */ N("div", {
|
|
306
307
|
className: "flex items-center gap-2 mt-1",
|
|
307
|
-
children: [/* @__PURE__ */
|
|
308
|
+
children: [/* @__PURE__ */ M(t, {
|
|
308
309
|
value: e.value * 20,
|
|
309
310
|
className: "flex-1 h-2"
|
|
310
|
-
}), /* @__PURE__ */
|
|
311
|
+
}), /* @__PURE__ */ M("span", {
|
|
311
312
|
className: "text-sm font-medium",
|
|
312
313
|
children: e.value.toFixed(1)
|
|
313
314
|
})]
|
|
314
315
|
})] }, e.label))
|
|
315
316
|
})] }),
|
|
316
|
-
/* @__PURE__ */
|
|
317
|
+
/* @__PURE__ */ N(r, { children: [/* @__PURE__ */ M(o, { children: /* @__PURE__ */ N(a, {
|
|
317
318
|
className: "flex items-center gap-2",
|
|
318
|
-
children: [/* @__PURE__ */
|
|
319
|
-
}) }), /* @__PURE__ */
|
|
319
|
+
children: [/* @__PURE__ */ M(h, { size: 18 }), " Working Hours"]
|
|
320
|
+
}) }), /* @__PURE__ */ M(i, { children: /* @__PURE__ */ N("div", {
|
|
320
321
|
className: "grid grid-cols-2 md:grid-cols-4 gap-4",
|
|
321
322
|
children: [
|
|
322
|
-
/* @__PURE__ */
|
|
323
|
+
/* @__PURE__ */ N("div", { children: [/* @__PURE__ */ M("p", {
|
|
323
324
|
className: "text-sm text-text-secondary",
|
|
324
325
|
children: "Shift"
|
|
325
|
-
}), /* @__PURE__ */
|
|
326
|
+
}), /* @__PURE__ */ N("p", {
|
|
326
327
|
className: "font-medium",
|
|
327
328
|
children: [
|
|
328
|
-
|
|
329
|
+
w.workingHours.startTime,
|
|
329
330
|
" - ",
|
|
330
|
-
|
|
331
|
+
w.workingHours.endTime
|
|
331
332
|
]
|
|
332
333
|
})] }),
|
|
333
|
-
/* @__PURE__ */
|
|
334
|
+
/* @__PURE__ */ N("div", { children: [/* @__PURE__ */ M("p", {
|
|
334
335
|
className: "text-sm text-text-secondary",
|
|
335
336
|
children: "Working Days"
|
|
336
|
-
}), /* @__PURE__ */
|
|
337
|
+
}), /* @__PURE__ */ N("p", {
|
|
337
338
|
className: "font-medium",
|
|
338
|
-
children: [
|
|
339
|
+
children: [w.workingHours.workingDays.length, " days/week"]
|
|
339
340
|
})] }),
|
|
340
|
-
/* @__PURE__ */
|
|
341
|
+
/* @__PURE__ */ N("div", { children: [/* @__PURE__ */ M("p", {
|
|
341
342
|
className: "text-sm text-text-secondary",
|
|
342
343
|
children: "Hours Today"
|
|
343
|
-
}), /* @__PURE__ */
|
|
344
|
+
}), /* @__PURE__ */ N("p", {
|
|
344
345
|
className: "font-medium",
|
|
345
346
|
children: [
|
|
346
|
-
|
|
347
|
+
w.workingHours.currentHoursToday,
|
|
347
348
|
"h / ",
|
|
348
|
-
|
|
349
|
+
w.workingHours.maxHoursPerDay,
|
|
349
350
|
"h"
|
|
350
351
|
]
|
|
351
352
|
})] }),
|
|
352
|
-
/* @__PURE__ */
|
|
353
|
+
/* @__PURE__ */ N("div", { children: [/* @__PURE__ */ M("p", {
|
|
353
354
|
className: "text-sm text-text-secondary",
|
|
354
355
|
children: "Hours This Week"
|
|
355
|
-
}), /* @__PURE__ */
|
|
356
|
+
}), /* @__PURE__ */ N("p", {
|
|
356
357
|
className: "font-medium",
|
|
357
358
|
children: [
|
|
358
|
-
|
|
359
|
+
w.workingHours.currentHoursThisWeek,
|
|
359
360
|
"h /",
|
|
360
361
|
" ",
|
|
361
|
-
|
|
362
|
+
w.workingHours.maxHoursPerWeek,
|
|
362
363
|
"h"
|
|
363
364
|
]
|
|
364
365
|
})] })
|
|
365
366
|
]
|
|
366
367
|
}) })] }),
|
|
367
|
-
/* @__PURE__ */
|
|
368
|
+
/* @__PURE__ */ N(r, { children: [/* @__PURE__ */ M(o, { children: /* @__PURE__ */ N(a, {
|
|
368
369
|
className: "flex items-center gap-2",
|
|
369
|
-
children: [/* @__PURE__ */
|
|
370
|
-
}) }), /* @__PURE__ */
|
|
371
|
-
className: "
|
|
372
|
-
children:
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
}),
|
|
379
|
-
/* @__PURE__ */ M("p", {
|
|
380
|
-
className: "text-sm text-text-secondary",
|
|
381
|
-
children: [
|
|
382
|
-
C.licenseNumber,
|
|
383
|
-
" - ",
|
|
384
|
-
C.licenseType
|
|
385
|
-
]
|
|
386
|
-
}),
|
|
387
|
-
/* @__PURE__ */ M("p", {
|
|
388
|
-
className: "text-sm text-text-secondary",
|
|
389
|
-
children: ["Expires: ", D(C.licenseExpiry)]
|
|
390
|
-
})
|
|
391
|
-
] }), /* @__PURE__ */ j(l, {
|
|
392
|
-
variant: "default",
|
|
393
|
-
children: "Valid"
|
|
394
|
-
})]
|
|
395
|
-
}), C.documents.map((e) => /* @__PURE__ */ M("div", {
|
|
396
|
-
className: "flex items-center justify-between p-3 border rounded-lg",
|
|
397
|
-
children: [/* @__PURE__ */ M("div", { children: [/* @__PURE__ */ j("p", {
|
|
398
|
-
className: "font-medium capitalize",
|
|
399
|
-
children: e.type.replace("_", " ")
|
|
400
|
-
}), /* @__PURE__ */ M("p", {
|
|
370
|
+
children: [/* @__PURE__ */ M(v, { size: 18 }), " License"]
|
|
371
|
+
}) }), /* @__PURE__ */ M(i, { children: /* @__PURE__ */ M("div", {
|
|
372
|
+
className: "flex items-center justify-between p-3 border rounded-lg",
|
|
373
|
+
children: /* @__PURE__ */ N("div", { children: [
|
|
374
|
+
/* @__PURE__ */ M("p", {
|
|
375
|
+
className: "font-medium",
|
|
376
|
+
children: "Driver's License"
|
|
377
|
+
}),
|
|
378
|
+
/* @__PURE__ */ N("p", {
|
|
401
379
|
className: "text-sm text-text-secondary",
|
|
402
|
-
children: [
|
|
403
|
-
})
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
380
|
+
children: [w.licenseNumber || "—", w.licenseType ? ` - ${w.licenseType}` : ""]
|
|
381
|
+
}),
|
|
382
|
+
/* @__PURE__ */ N("p", {
|
|
383
|
+
className: "text-sm text-text-secondary",
|
|
384
|
+
children: ["Expires: ", k(w.licenseExpiry)]
|
|
385
|
+
})
|
|
386
|
+
] })
|
|
387
|
+
}) })] }),
|
|
388
|
+
/* @__PURE__ */ M(_, {
|
|
389
|
+
entityType: "driver",
|
|
390
|
+
entityId: w.id
|
|
391
|
+
})
|
|
409
392
|
]
|
|
410
|
-
}), /* @__PURE__ */
|
|
393
|
+
}), /* @__PURE__ */ N("div", {
|
|
411
394
|
className: "space-y-6",
|
|
412
395
|
children: [
|
|
413
|
-
/* @__PURE__ */
|
|
396
|
+
/* @__PURE__ */ N(r, { children: [/* @__PURE__ */ M(o, { children: /* @__PURE__ */ M(a, { children: "Statistics" }) }), /* @__PURE__ */ N(i, {
|
|
414
397
|
className: "space-y-4",
|
|
415
398
|
children: [
|
|
416
|
-
/* @__PURE__ */
|
|
399
|
+
/* @__PURE__ */ N("div", { children: [/* @__PURE__ */ M("p", {
|
|
417
400
|
className: "text-sm text-text-secondary",
|
|
418
401
|
children: "Total Deliveries"
|
|
419
|
-
}), /* @__PURE__ */
|
|
402
|
+
}), /* @__PURE__ */ M("p", {
|
|
420
403
|
className: "text-2xl font-bold",
|
|
421
|
-
children:
|
|
404
|
+
children: w.completedOrders.toLocaleString()
|
|
422
405
|
})] }),
|
|
423
|
-
/* @__PURE__ */
|
|
406
|
+
/* @__PURE__ */ N("div", { children: [/* @__PURE__ */ M("p", {
|
|
424
407
|
className: "text-sm text-text-secondary",
|
|
425
408
|
children: "Today's Deliveries"
|
|
426
|
-
}), /* @__PURE__ */
|
|
409
|
+
}), /* @__PURE__ */ M("p", {
|
|
427
410
|
className: "text-2xl font-bold",
|
|
428
|
-
children:
|
|
411
|
+
children: w.todayOrders
|
|
429
412
|
})] }),
|
|
430
|
-
/* @__PURE__ */
|
|
413
|
+
/* @__PURE__ */ N("div", { children: [/* @__PURE__ */ M("p", {
|
|
431
414
|
className: "text-sm text-text-secondary",
|
|
432
415
|
children: "Join Date"
|
|
433
|
-
}), /* @__PURE__ */
|
|
416
|
+
}), /* @__PURE__ */ M("p", {
|
|
434
417
|
className: "font-medium",
|
|
435
|
-
children:
|
|
418
|
+
children: k(w.joinDate)
|
|
436
419
|
})] })
|
|
437
420
|
]
|
|
438
421
|
})] }),
|
|
439
|
-
/* @__PURE__ */
|
|
422
|
+
/* @__PURE__ */ N(r, { children: [/* @__PURE__ */ M(o, { children: /* @__PURE__ */ N(a, {
|
|
440
423
|
className: "flex items-center gap-2",
|
|
441
|
-
children: [/* @__PURE__ */
|
|
442
|
-
}) }), /* @__PURE__ */
|
|
424
|
+
children: [/* @__PURE__ */ M(g, { size: 18 }), " Earnings"]
|
|
425
|
+
}) }), /* @__PURE__ */ N(i, {
|
|
443
426
|
className: "space-y-3",
|
|
444
427
|
children: [
|
|
445
|
-
/* @__PURE__ */
|
|
428
|
+
/* @__PURE__ */ N("div", { children: [/* @__PURE__ */ M("p", {
|
|
446
429
|
className: "text-sm text-text-secondary",
|
|
447
430
|
children: "Total Earnings"
|
|
448
|
-
}), /* @__PURE__ */
|
|
431
|
+
}), /* @__PURE__ */ M("p", {
|
|
449
432
|
className: "text-2xl font-bold",
|
|
450
|
-
children:
|
|
433
|
+
children: O(w.earnings.totalEarnings)
|
|
451
434
|
})] }),
|
|
452
|
-
/* @__PURE__ */
|
|
435
|
+
/* @__PURE__ */ N("div", {
|
|
453
436
|
className: "grid grid-cols-2 gap-3",
|
|
454
|
-
children: [/* @__PURE__ */
|
|
437
|
+
children: [/* @__PURE__ */ N("div", { children: [/* @__PURE__ */ M("p", {
|
|
455
438
|
className: "text-sm text-text-secondary",
|
|
456
439
|
children: "This Week"
|
|
457
|
-
}), /* @__PURE__ */
|
|
440
|
+
}), /* @__PURE__ */ M("p", {
|
|
458
441
|
className: "font-medium",
|
|
459
|
-
children:
|
|
460
|
-
})] }), /* @__PURE__ */
|
|
442
|
+
children: O(w.earnings.weeklyEarnings)
|
|
443
|
+
})] }), /* @__PURE__ */ N("div", { children: [/* @__PURE__ */ M("p", {
|
|
461
444
|
className: "text-sm text-text-secondary",
|
|
462
445
|
children: "This Month"
|
|
463
|
-
}), /* @__PURE__ */
|
|
446
|
+
}), /* @__PURE__ */ M("p", {
|
|
464
447
|
className: "font-medium",
|
|
465
|
-
children:
|
|
448
|
+
children: O(w.earnings.monthlyEarnings)
|
|
466
449
|
})] })]
|
|
467
450
|
}),
|
|
468
|
-
/* @__PURE__ */
|
|
451
|
+
/* @__PURE__ */ N("div", { children: [/* @__PURE__ */ M("p", {
|
|
469
452
|
className: "text-sm text-text-secondary",
|
|
470
453
|
children: "Base Salary"
|
|
471
|
-
}), /* @__PURE__ */
|
|
454
|
+
}), /* @__PURE__ */ N("p", {
|
|
472
455
|
className: "font-medium",
|
|
473
|
-
children: [
|
|
456
|
+
children: [O(w.baseSalary), "/year"]
|
|
474
457
|
})] })
|
|
475
458
|
]
|
|
476
459
|
})] }),
|
|
477
|
-
|
|
460
|
+
w.currentLocation && /* @__PURE__ */ N(r, { children: [/* @__PURE__ */ M(o, { children: /* @__PURE__ */ N(a, {
|
|
478
461
|
className: "flex items-center gap-2",
|
|
479
|
-
children: [/* @__PURE__ */
|
|
480
|
-
}) }), /* @__PURE__ */
|
|
462
|
+
children: [/* @__PURE__ */ M(y, { size: 18 }), " Current Location"]
|
|
463
|
+
}) }), /* @__PURE__ */ N(i, { children: [/* @__PURE__ */ M("p", {
|
|
481
464
|
className: "text-sm",
|
|
482
|
-
children:
|
|
483
|
-
}), /* @__PURE__ */
|
|
465
|
+
children: w.currentLocation.address || "Location updating..."
|
|
466
|
+
}), /* @__PURE__ */ N("p", {
|
|
484
467
|
className: "text-xs text-text-secondary mt-1",
|
|
485
|
-
children: ["Updated ",
|
|
468
|
+
children: ["Updated ", k(w.currentLocation.timestamp || /* @__PURE__ */ new Date(), "relative")]
|
|
486
469
|
})] })] }),
|
|
487
|
-
/* @__PURE__ */
|
|
470
|
+
/* @__PURE__ */ N(r, { children: [/* @__PURE__ */ M(o, { children: /* @__PURE__ */ M(a, { children: "Compliance Status" }) }), /* @__PURE__ */ M(i, {
|
|
488
471
|
className: "space-y-2",
|
|
489
|
-
children: Object.entries(
|
|
472
|
+
children: Object.entries(w.compliance).filter(([e]) => e !== "lastUpdate").map(([e, t]) => /* @__PURE__ */ N("div", {
|
|
490
473
|
className: "flex items-center justify-between",
|
|
491
|
-
children: [/* @__PURE__ */
|
|
474
|
+
children: [/* @__PURE__ */ M("span", {
|
|
492
475
|
className: "text-sm capitalize",
|
|
493
476
|
children: e.replace(/([A-Z])/g, " $1")
|
|
494
|
-
}), /* @__PURE__ */
|
|
477
|
+
}), /* @__PURE__ */ M(l, {
|
|
495
478
|
variant: t ? "default" : "destructive",
|
|
496
479
|
children: t ? "Compliant" : "Non-compliant"
|
|
497
480
|
})]
|
|
@@ -501,7 +484,7 @@ function L() {
|
|
|
501
484
|
})]
|
|
502
485
|
})
|
|
503
486
|
]
|
|
504
|
-
}) : /* @__PURE__ */
|
|
487
|
+
}) : /* @__PURE__ */ M(L, {});
|
|
505
488
|
}
|
|
506
489
|
//#endregion
|
|
507
|
-
export {
|
|
490
|
+
export { R as default };
|