@burdenoff/microfe-movethewheels 2026.703.2 → 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.
Files changed (126) hide show
  1. package/dist/{AIAssistantPage-C3cPsWt-.js → AIAssistantPage-3YOnHO9Y.js} +3 -3
  2. package/dist/{AnalyticsPage-Dz6g2MvK.js → AnalyticsPage-CMpI1070.js} +11 -11
  3. package/dist/CreateOrderPage-DRAgGo9i.js +490 -0
  4. package/dist/CustomerDetailsPage-BCeMmOFe.js +615 -0
  5. package/dist/{CustomersPage-2Y05LVyh.js → CustomersPage-CaNBMXmM.js} +64 -53
  6. package/dist/{DashboardPage-BVjQi0EB.js → DashboardPage-DIKlXde3.js} +16 -16
  7. package/dist/DataTable-XvUcTjwi.js +340 -0
  8. package/dist/DocumentsCard-U2lSe-cn.js +169 -0
  9. package/dist/{DriverDetailsPage-CN3WQ0B9.js → DriverDetailsPage-BQrYd_Lp.js} +178 -195
  10. package/dist/{DriversPage-B0Zpx8OQ.js → DriversPage-PYmdFiby.js} +65 -54
  11. package/dist/FinancePage-Cwh9Bw4M.js +136 -0
  12. package/dist/{FleetPage-DqkFi3s3.js → FleetPage-3ZHsB-TN.js} +23 -22
  13. package/dist/{FormError-BlOjnXOq.js → FormError-cuLV2jVD.js} +1 -1
  14. package/dist/{ImportExportPage-DKJRCezl.js → ImportExportPage-C6f7DqhM.js} +50 -70
  15. package/dist/{InventoryPage-DwfgCUQq.js → InventoryPage-DpiqVu1v.js} +9 -9
  16. package/dist/{LiveTrackingPage-DCX-K-LR.js → LiveTrackingPage-FAzzlVnX.js} +9 -9
  17. package/dist/MarketplacePage-Bh_2ns4v.js +426 -0
  18. package/dist/Notice-CSoDYKw9.js +46 -0
  19. package/dist/OrderDetailsPage-zCj0lW0j.js +584 -0
  20. package/dist/{OrdersListPage-BjDlCKJd.js → OrdersListPage-CAMsuUck.js} +166 -89
  21. package/dist/{ProductDetailsPage-C9uOiYLp.js → ProductDetailsPage-wsxAQkA0.js} +12 -12
  22. package/dist/{ProductsPage-C1G9h7Xd.js → ProductsPage-DC5qDLfz.js} +60 -49
  23. package/dist/ReportsPage-BwUJ37eO.js +356 -0
  24. package/dist/RouteDetailsPage-DyMJE9AS.js +583 -0
  25. package/dist/{RoutesPage-DMfoicM1.js → RoutesPage-Dtc669yc.js} +57 -46
  26. package/dist/{SettingsPage-Bn-v0mbQ.js → SettingsPage-CpH9xhQg.js} +5 -27
  27. package/dist/{TrackingPage-W-jtdM3Y.js → TrackingPage-DaNEFG_h.js} +10 -10
  28. package/dist/{VehicleDetailsPage-Bceo5oz3.js → VehicleDetailsPage-DldYNsYV.js} +125 -142
  29. package/dist/{VehiclesPage-VBtOep91.js → VehiclesPage-BFw13iMt.js} +61 -50
  30. package/dist/{WarehouseDetailsPage-L_6sWigM.js → WarehouseDetailsPage-CMG7or6G.js} +17 -17
  31. package/dist/{WarehousesPage-DCbXXXWE.js → WarehousesPage-Wkytnt86.js} +58 -47
  32. package/dist/arrow-right-Q3XQpTPR.js +11 -0
  33. package/dist/arrow-up-xNF1zJUG.js +17 -0
  34. package/dist/chevron-left-B2_r0Elx.js +8 -0
  35. package/dist/{wrench-CANXWxF-.js → fuel-B6_lnKDs.js} +2 -5
  36. package/dist/index.js +163 -174
  37. package/dist/upload-CHZofOqb.js +21 -0
  38. package/dist/{useAnalytics-DS8n0xgg.js → useAnalytics-D7HW2XRb.js} +52 -2
  39. package/dist/{useCustomers-BmTNGxiI.js → useCustomers-BPW4__PR.js} +29 -26
  40. package/dist/{useFleet-DKqXZ16m.js → useFleet-ChBkxAd6.js} +81 -69
  41. package/dist/{useInventory-DkyiVY_A.js → useInventory-CAAVMRp6.js} +83 -38
  42. package/dist/{useOrders-Cfk1GLiq.js → useOrders-B465S2nt.js} +58 -47
  43. package/dist/{useReports-CTqZr-AB.js → useReports-jQ3GpNOm.js} +40 -34
  44. package/dist/{useRoutes-BQWO607N.js → useRoutes-hS3d5-xr.js} +49 -41
  45. package/dist/{useTracking-B-va1kO3.js → useTracking-RjGz9PZG.js} +2 -2
  46. package/dist/user-check-BEKRCi7v.js +20 -0
  47. package/dist/wrench-q_rgJfaP.js +8 -0
  48. package/dist/x-tMeDMcCw.js +11 -0
  49. package/package.json +1 -1
  50. package/src/movethewheels/components/DataTable.tsx +252 -84
  51. package/src/movethewheels/components/DocumentsCard.tsx +102 -0
  52. package/src/movethewheels/components/Notice.tsx +61 -0
  53. package/src/movethewheels/components/index.ts +7 -0
  54. package/src/movethewheels/hooks/index.ts +9 -0
  55. package/src/movethewheels/hooks/useAnalytics.ts +95 -0
  56. package/src/movethewheels/hooks/useCustomers.ts +11 -4
  57. package/src/movethewheels/hooks/useEntityDocuments.ts +132 -0
  58. package/src/movethewheels/hooks/useFleet.ts +26 -7
  59. package/src/movethewheels/hooks/useInventory.ts +70 -7
  60. package/src/movethewheels/hooks/useOrders.ts +32 -2
  61. package/src/movethewheels/hooks/useReports.ts +14 -4
  62. package/src/movethewheels/hooks/useRoutes.ts +20 -3
  63. package/src/movethewheels/pages/AnalyticsPage.tsx +2 -2
  64. package/src/movethewheels/pages/CreateOrderPage.tsx +44 -16
  65. package/src/movethewheels/pages/CustomerDetailsPage.tsx +239 -33
  66. package/src/movethewheels/pages/CustomersPage.tsx +27 -11
  67. package/src/movethewheels/pages/DriverDetailsPage.tsx +16 -30
  68. package/src/movethewheels/pages/DriversPage.tsx +26 -9
  69. package/src/movethewheels/pages/FinancePage.tsx +67 -84
  70. package/src/movethewheels/pages/InventoryPage.tsx +1 -1
  71. package/src/movethewheels/pages/MarketplacePage.tsx +265 -50
  72. package/src/movethewheels/pages/OrderDetailsPage.tsx +214 -10
  73. package/src/movethewheels/pages/OrdersListPage.tsx +77 -14
  74. package/src/movethewheels/pages/ProductsPage.tsx +27 -7
  75. package/src/movethewheels/pages/ReportsPage.tsx +65 -4
  76. package/src/movethewheels/pages/RouteDetailsPage.tsx +74 -13
  77. package/src/movethewheels/pages/RoutesPage.tsx +22 -6
  78. package/src/movethewheels/pages/SettingsPage.tsx +3 -19
  79. package/src/movethewheels/pages/VehicleDetailsPage.tsx +3 -33
  80. package/src/movethewheels/pages/VehiclesPage.tsx +26 -5
  81. package/src/movethewheels/pages/WarehousesPage.tsx +22 -17
  82. package/src/movethewheels/types/index.ts +8 -0
  83. package/src/movethewheels/utils/download.ts +62 -0
  84. package/dist/CreateOrderPage-C5iwnjp4.js +0 -479
  85. package/dist/CustomerDetailsPage-B6nwFyLO.js +0 -406
  86. package/dist/DataTable-DmciIKKM.js +0 -249
  87. package/dist/FinancePage-DEDykSOP.js +0 -158
  88. package/dist/MarketplacePage-CIQ97_zp.js +0 -247
  89. package/dist/OrderDetailsPage-DYiZ-9UK.js +0 -429
  90. package/dist/ReportsPage-Zp53q3_8.js +0 -284
  91. package/dist/RouteDetailsPage-DUStXSf9.js +0 -531
  92. /package/dist/{MetricCard-BY0QrMD4.js → MetricCard-CVBVpu7o.js} +0 -0
  93. /package/dist/{StatusBadge-BZurYHMy.js → StatusBadge-C87mDpDP.js} +0 -0
  94. /package/dist/{box-D9Pal4HM.js → box-Eu05PXDh.js} +0 -0
  95. /package/dist/{chart-column-BFIJysDR.js → chart-column-ouzgxIv_.js} +0 -0
  96. /package/dist/{chevron-right-EMIIyyJ1.js → chevron-right-eV4LjaSi.js} +0 -0
  97. /package/dist/{circle-alert-iY24lSlp.js → circle-alert-Bzh2DBSF.js} +0 -0
  98. /package/dist/{circle-check-big-w0TrLKMF.js → circle-check-big-CGMSpQmD.js} +0 -0
  99. /package/dist/{clock-DJZtdl8u.js → clock-Bl3ptexL.js} +0 -0
  100. /package/dist/{dollar-sign-CgKQRz_e.js → dollar-sign-CAVU95SO.js} +0 -0
  101. /package/dist/{download-DRXxoiQR.js → download-C5NbvVDc.js} +0 -0
  102. /package/dist/{file-text-DWWY6_f5.js → file-text-D-1uvLZG.js} +0 -0
  103. /package/dist/{filter-DloLC2eE.js → filter-DUfUg6BO.js} +0 -0
  104. /package/dist/{formatters-CF2S2l1m.js → formatters-BQr-aR5W.js} +0 -0
  105. /package/dist/{map-CkJaULb2.js → map-C-M-FQLR.js} +0 -0
  106. /package/dist/{map-pin-BGiCvyCs.js → map-pin-Dznl5l40.js} +0 -0
  107. /package/dist/{navigation-D36prnAn.js → navigation-BJSJl-VG.js} +0 -0
  108. /package/dist/{package-BChUzpJS.js → package-CcRttV2N.js} +0 -0
  109. /package/dist/{phone-Ac9s3mo_.js → phone-DVSZHt_j.js} +0 -0
  110. /package/dist/{plus-Z76q-FZm.js → plus-C_XZDwBz.js} +0 -0
  111. /package/dist/{refresh-cw-DKt6f5T6.js → refresh-cw-CfgN67l3.js} +0 -0
  112. /package/dist/{save-CojywNhG.js → save-DJE8Fpdv.js} +0 -0
  113. /package/dist/{search-CDGefqb3.js → search-D_VyGcZT.js} +0 -0
  114. /package/dist/{square-pen-CopE9GmB.js → square-pen-D-6JYrVQ.js} +0 -0
  115. /package/dist/{star-nHlLjDKR.js → star-BpRlUZuU.js} +0 -0
  116. /package/dist/{store-BR9Voi5E.js → store-B-8HMuyZ.js} +0 -0
  117. /package/dist/{trash-2-BKhar6Hs.js → trash-2-8vmv-XV_.js} +0 -0
  118. /package/dist/{trending-up-Dohgd4t_.js → trending-up-Dz6PqPRj.js} +0 -0
  119. /package/dist/{triangle-alert-i-XQL9Rd.js → triangle-alert-D7Y3J_4z.js} +0 -0
  120. /package/dist/{truck-C0v_hbLR.js → truck-D-y2IDzv.js} +0 -0
  121. /package/dist/{useAssistant-D4v3oxD3.js → useAssistant-DVW4QgQb.js} +0 -0
  122. /package/dist/{useImportExport-DHr-SWSw.js → useImportExport-DrPDHEDK.js} +0 -0
  123. /package/dist/{useSettings-CkDH_-gM.js → useSettings-BB8X2RLh.js} +0 -0
  124. /package/dist/{user-jyFU3lXk.js → user-DzfTn4dE.js} +0 -0
  125. /package/dist/{users-DZ-ilS6B.js → users-CCrq-w0C.js} +0 -0
  126. /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-DJZtdl8u.js";
4
- import { t as g } from "./dollar-sign-CgKQRz_e.js";
5
- import { t as _ } from "./file-text-DWWY6_f5.js";
6
- import { t as v } from "./map-pin-BGiCvyCs.js";
7
- import { t as y } from "./save-CojywNhG.js";
8
- import { t as b } from "./square-pen-CopE9GmB.js";
9
- import { t as x } from "./star-nHlLjDKR.js";
10
- import { t as S } from "./users-DZ-ilS6B.js";
11
- import { r as C, t as w } from "./useFleet-DKqXZ16m.js";
12
- import { r as T } from "./StatusBadge-BZurYHMy.js";
13
- import { n as E, r as D } from "./formatters-CF2S2l1m.js";
14
- import { t as O } from "./FormError-BlOjnXOq.js";
15
- import { useState as k } from "react";
16
- import { useParams as A } from "react-router-dom";
17
- import { jsx as j, jsxs as M } from "react/jsx-runtime";
18
- import { EmphasisPanel as N, NextSteps as P, PagePurpose as F } from "@burdenoff/fe-libs/ui";
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 I() {
21
- let { basePath: t, navigate: r } = d(), { createDriver: i } = C(), [a, o] = k({
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] = k(!1), [f, h] = k(null), g = () => r?.(n(t, "fleet/drivers")), _ = async (e) => {
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__ */ M(s, {
49
+ return /* @__PURE__ */ N(s, {
49
50
  title: "Add Driver",
50
51
  subtitle: "Add a driver to your workforce",
51
- icon: /* @__PURE__ */ j(S, { size: 24 }),
52
- headerActions: /* @__PURE__ */ M("div", {
52
+ icon: /* @__PURE__ */ M(C, { size: 24 }),
53
+ headerActions: /* @__PURE__ */ N("div", {
53
54
  className: "flex gap-2",
54
- children: [/* @__PURE__ */ M(p, {
55
+ children: [/* @__PURE__ */ N(p, {
55
56
  variant: "outline",
56
57
  onClick: g,
57
58
  disabled: l,
58
- children: [/* @__PURE__ */ j(m, { size: 16 }), " Cancel"]
59
- }), /* @__PURE__ */ M(p, {
59
+ children: [/* @__PURE__ */ M(m, { size: 16 }), " Cancel"]
60
+ }), /* @__PURE__ */ N(p, {
60
61
  onClick: _,
61
62
  disabled: l,
62
63
  children: [
63
- /* @__PURE__ */ j(y, { size: 16 }),
64
+ /* @__PURE__ */ M(b, { size: 16 }),
64
65
  " ",
65
66
  l ? "Saving..." : "Add Driver"
66
67
  ]
67
68
  })]
68
69
  }),
69
- children: [/* @__PURE__ */ j(F, {
70
- icon: /* @__PURE__ */ j(S, { size: 18 }),
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__ */ M("form", {
73
+ }), /* @__PURE__ */ N("form", {
73
74
  onSubmit: _,
74
75
  className: "max-w-2xl space-y-6",
75
- children: [/* @__PURE__ */ j(O, { message: f }), /* @__PURE__ */ M(N, { children: [/* @__PURE__ */ j("h2", {
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__ */ M("div", {
79
+ }), /* @__PURE__ */ N("div", {
79
80
  className: "space-y-4",
80
- children: [/* @__PURE__ */ M("div", {
81
+ children: [/* @__PURE__ */ N("div", {
81
82
  className: "grid grid-cols-1 md:grid-cols-3 gap-4",
82
83
  children: [
83
- /* @__PURE__ */ M("div", {
84
+ /* @__PURE__ */ N("div", {
84
85
  className: "space-y-2",
85
- children: [/* @__PURE__ */ M(c, {
86
+ children: [/* @__PURE__ */ N(c, {
86
87
  htmlFor: "employeeId",
87
- children: ["Employee ID ", /* @__PURE__ */ j("span", {
88
+ children: ["Employee ID ", /* @__PURE__ */ M("span", {
88
89
  className: "text-status-error-text",
89
90
  children: "*"
90
91
  })]
91
- }), /* @__PURE__ */ j(e, {
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__ */ M("div", {
103
+ /* @__PURE__ */ N("div", {
103
104
  className: "space-y-2",
104
- children: [/* @__PURE__ */ M(c, {
105
+ children: [/* @__PURE__ */ N(c, {
105
106
  htmlFor: "firstName",
106
- children: ["First Name ", /* @__PURE__ */ j("span", {
107
+ children: ["First Name ", /* @__PURE__ */ M("span", {
107
108
  className: "text-status-error-text",
108
109
  children: "*"
109
110
  })]
110
- }), /* @__PURE__ */ j(e, {
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__ */ M("div", {
122
+ /* @__PURE__ */ N("div", {
122
123
  className: "space-y-2",
123
- children: [/* @__PURE__ */ M(c, {
124
+ children: [/* @__PURE__ */ N(c, {
124
125
  htmlFor: "lastName",
125
- children: ["Last Name ", /* @__PURE__ */ j("span", {
126
+ children: ["Last Name ", /* @__PURE__ */ M("span", {
126
127
  className: "text-status-error-text",
127
128
  children: "*"
128
129
  })]
129
- }), /* @__PURE__ */ j(e, {
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__ */ M("div", {
142
+ }), /* @__PURE__ */ N("div", {
142
143
  className: "grid grid-cols-1 md:grid-cols-3 gap-4",
143
144
  children: [
144
- /* @__PURE__ */ M("div", {
145
+ /* @__PURE__ */ N("div", {
145
146
  className: "space-y-2",
146
- children: [/* @__PURE__ */ j(c, {
147
+ children: [/* @__PURE__ */ M(c, {
147
148
  htmlFor: "email",
148
149
  children: "Email"
149
- }), /* @__PURE__ */ j(e, {
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__ */ M("div", {
161
+ /* @__PURE__ */ N("div", {
161
162
  className: "space-y-2",
162
- children: [/* @__PURE__ */ j(c, {
163
+ children: [/* @__PURE__ */ M(c, {
163
164
  htmlFor: "phone",
164
165
  children: "Phone"
165
- }), /* @__PURE__ */ j(e, {
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__ */ M("div", {
176
+ /* @__PURE__ */ N("div", {
176
177
  className: "space-y-2",
177
- children: [/* @__PURE__ */ j(c, {
178
+ children: [/* @__PURE__ */ M(c, {
178
179
  htmlFor: "licenseNumber",
179
180
  children: "License Number"
180
- }), /* @__PURE__ */ j(e, {
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 L() {
197
- let { driverId: e } = A(), { basePath: c, navigate: y } = d(), { driver: C, isLoading: O, error: k, refetch: L } = w(e), R = () => y?.(n(c, "fleet/drivers")), z = (e) => y?.(n(c, e));
198
- return e ? O ? /* @__PURE__ */ j(f, { message: "Loading driver details..." }) : k || !C ? /* @__PURE__ */ j(u, {
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: L
201
- }) : /* @__PURE__ */ M(s, {
202
- title: C.fullName,
203
- subtitle: `Employee ID: ${C.employeeId}`,
204
- icon: /* @__PURE__ */ j(S, { size: 24 }),
205
- headerActions: /* @__PURE__ */ M("div", {
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__ */ M(p, {
208
+ children: [/* @__PURE__ */ N(p, {
208
209
  variant: "outline",
209
- onClick: R,
210
- children: [/* @__PURE__ */ j(m, { size: 16 }), " Back"]
211
- }), /* @__PURE__ */ M(p, { children: [/* @__PURE__ */ j(b, { size: 16 }), " Edit"] })]
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__ */ M("div", {
214
+ headerContent: /* @__PURE__ */ N("div", {
214
215
  className: "flex items-center gap-4",
215
- children: [/* @__PURE__ */ j(T, {
216
- status: C.status,
216
+ children: [/* @__PURE__ */ M(E, {
217
+ status: w.status,
217
218
  type: "driver"
218
- }), /* @__PURE__ */ M("div", {
219
+ }), /* @__PURE__ */ N("div", {
219
220
  className: "flex items-center gap-1",
220
221
  children: [
221
- /* @__PURE__ */ j(x, {
222
+ /* @__PURE__ */ M(S, {
222
223
  size: 16,
223
224
  className: "text-status-warning-text fill-current"
224
225
  }),
225
- /* @__PURE__ */ j("span", {
226
+ /* @__PURE__ */ M("span", {
226
227
  className: "font-medium",
227
- children: C.ratings.overall.toFixed(1)
228
+ children: w.ratings.overall.toFixed(1)
228
229
  }),
229
- /* @__PURE__ */ M("span", {
230
+ /* @__PURE__ */ N("span", {
230
231
  className: "text-text-secondary",
231
232
  children: [
232
233
  "(",
233
- C.ratings.totalRatings,
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__ */ j(F, {
242
- icon: /* @__PURE__ */ j(S, { size: 18 }),
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__ */ j(P, {
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__ */ j(v, { size: 16 }),
253
- onClick: () => z("orders")
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__ */ j(h, { size: 16 }),
260
- onClick: () => z("routes")
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__ */ j(b, { size: 16 }),
267
+ icon: /* @__PURE__ */ M(x, { size: 16 }),
267
268
  onClick: () => {}
268
269
  }
269
270
  ]
270
271
  }),
271
- /* @__PURE__ */ M("div", {
272
+ /* @__PURE__ */ N("div", {
272
273
  className: "grid grid-cols-1 lg:grid-cols-3 gap-6",
273
- children: [/* @__PURE__ */ M("div", {
274
+ children: [/* @__PURE__ */ N("div", {
274
275
  className: "lg:col-span-2 space-y-6",
275
276
  children: [
276
- /* @__PURE__ */ M(N, { children: [/* @__PURE__ */ M("h2", {
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__ */ j(x, { size: 18 }), " Ratings"]
279
- }), /* @__PURE__ */ j("div", {
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: C.ratings.punctuality
285
+ value: w.ratings.punctuality
285
286
  },
286
287
  {
287
288
  label: "Communication",
288
- value: C.ratings.communication
289
+ value: w.ratings.communication
289
290
  },
290
291
  {
291
292
  label: "Handling",
292
- value: C.ratings.carefulHandling
293
+ value: w.ratings.carefulHandling
293
294
  },
294
295
  {
295
296
  label: "Professionalism",
296
- value: C.ratings.professionalism
297
+ value: w.ratings.professionalism
297
298
  },
298
299
  {
299
300
  label: "On-Time Delivery",
300
- value: C.ratings.onTimeDelivery
301
+ value: w.ratings.onTimeDelivery
301
302
  }
302
- ].map((e) => /* @__PURE__ */ M("div", { children: [/* @__PURE__ */ j("p", {
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__ */ M("div", {
306
+ }), /* @__PURE__ */ N("div", {
306
307
  className: "flex items-center gap-2 mt-1",
307
- children: [/* @__PURE__ */ j(t, {
308
+ children: [/* @__PURE__ */ M(t, {
308
309
  value: e.value * 20,
309
310
  className: "flex-1 h-2"
310
- }), /* @__PURE__ */ j("span", {
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__ */ M(r, { children: [/* @__PURE__ */ j(o, { children: /* @__PURE__ */ M(a, {
317
+ /* @__PURE__ */ N(r, { children: [/* @__PURE__ */ M(o, { children: /* @__PURE__ */ N(a, {
317
318
  className: "flex items-center gap-2",
318
- children: [/* @__PURE__ */ j(h, { size: 18 }), " Working Hours"]
319
- }) }), /* @__PURE__ */ j(i, { children: /* @__PURE__ */ M("div", {
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__ */ M("div", { children: [/* @__PURE__ */ j("p", {
323
+ /* @__PURE__ */ N("div", { children: [/* @__PURE__ */ M("p", {
323
324
  className: "text-sm text-text-secondary",
324
325
  children: "Shift"
325
- }), /* @__PURE__ */ M("p", {
326
+ }), /* @__PURE__ */ N("p", {
326
327
  className: "font-medium",
327
328
  children: [
328
- C.workingHours.startTime,
329
+ w.workingHours.startTime,
329
330
  " - ",
330
- C.workingHours.endTime
331
+ w.workingHours.endTime
331
332
  ]
332
333
  })] }),
333
- /* @__PURE__ */ M("div", { children: [/* @__PURE__ */ j("p", {
334
+ /* @__PURE__ */ N("div", { children: [/* @__PURE__ */ M("p", {
334
335
  className: "text-sm text-text-secondary",
335
336
  children: "Working Days"
336
- }), /* @__PURE__ */ M("p", {
337
+ }), /* @__PURE__ */ N("p", {
337
338
  className: "font-medium",
338
- children: [C.workingHours.workingDays.length, " days/week"]
339
+ children: [w.workingHours.workingDays.length, " days/week"]
339
340
  })] }),
340
- /* @__PURE__ */ M("div", { children: [/* @__PURE__ */ j("p", {
341
+ /* @__PURE__ */ N("div", { children: [/* @__PURE__ */ M("p", {
341
342
  className: "text-sm text-text-secondary",
342
343
  children: "Hours Today"
343
- }), /* @__PURE__ */ M("p", {
344
+ }), /* @__PURE__ */ N("p", {
344
345
  className: "font-medium",
345
346
  children: [
346
- C.workingHours.currentHoursToday,
347
+ w.workingHours.currentHoursToday,
347
348
  "h / ",
348
- C.workingHours.maxHoursPerDay,
349
+ w.workingHours.maxHoursPerDay,
349
350
  "h"
350
351
  ]
351
352
  })] }),
352
- /* @__PURE__ */ M("div", { children: [/* @__PURE__ */ j("p", {
353
+ /* @__PURE__ */ N("div", { children: [/* @__PURE__ */ M("p", {
353
354
  className: "text-sm text-text-secondary",
354
355
  children: "Hours This Week"
355
- }), /* @__PURE__ */ M("p", {
356
+ }), /* @__PURE__ */ N("p", {
356
357
  className: "font-medium",
357
358
  children: [
358
- C.workingHours.currentHoursThisWeek,
359
+ w.workingHours.currentHoursThisWeek,
359
360
  "h /",
360
361
  " ",
361
- C.workingHours.maxHoursPerWeek,
362
+ w.workingHours.maxHoursPerWeek,
362
363
  "h"
363
364
  ]
364
365
  })] })
365
366
  ]
366
367
  }) })] }),
367
- /* @__PURE__ */ M(r, { children: [/* @__PURE__ */ j(o, { children: /* @__PURE__ */ M(a, {
368
+ /* @__PURE__ */ N(r, { children: [/* @__PURE__ */ M(o, { children: /* @__PURE__ */ N(a, {
368
369
  className: "flex items-center gap-2",
369
- children: [/* @__PURE__ */ j(_, { size: 18 }), " Documents"]
370
- }) }), /* @__PURE__ */ j(i, { children: /* @__PURE__ */ M("div", {
371
- className: "space-y-3",
372
- children: [/* @__PURE__ */ M("div", {
373
- className: "flex items-center justify-between p-3 border rounded-lg",
374
- children: [/* @__PURE__ */ M("div", { children: [
375
- /* @__PURE__ */ j("p", {
376
- className: "font-medium",
377
- children: "Driver's License"
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: ["Expires: ", D(e.expiryDate)]
403
- })] }), /* @__PURE__ */ j(l, {
404
- variant: e.verified ? "default" : "secondary",
405
- children: e.verified ? "Verified" : "Pending"
406
- })]
407
- }, e.id))]
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__ */ M("div", {
393
+ }), /* @__PURE__ */ N("div", {
411
394
  className: "space-y-6",
412
395
  children: [
413
- /* @__PURE__ */ M(r, { children: [/* @__PURE__ */ j(o, { children: /* @__PURE__ */ j(a, { children: "Statistics" }) }), /* @__PURE__ */ M(i, {
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__ */ M("div", { children: [/* @__PURE__ */ j("p", {
399
+ /* @__PURE__ */ N("div", { children: [/* @__PURE__ */ M("p", {
417
400
  className: "text-sm text-text-secondary",
418
401
  children: "Total Deliveries"
419
- }), /* @__PURE__ */ j("p", {
402
+ }), /* @__PURE__ */ M("p", {
420
403
  className: "text-2xl font-bold",
421
- children: C.completedOrders.toLocaleString()
404
+ children: w.completedOrders.toLocaleString()
422
405
  })] }),
423
- /* @__PURE__ */ M("div", { children: [/* @__PURE__ */ j("p", {
406
+ /* @__PURE__ */ N("div", { children: [/* @__PURE__ */ M("p", {
424
407
  className: "text-sm text-text-secondary",
425
408
  children: "Today's Deliveries"
426
- }), /* @__PURE__ */ j("p", {
409
+ }), /* @__PURE__ */ M("p", {
427
410
  className: "text-2xl font-bold",
428
- children: C.todayOrders
411
+ children: w.todayOrders
429
412
  })] }),
430
- /* @__PURE__ */ M("div", { children: [/* @__PURE__ */ j("p", {
413
+ /* @__PURE__ */ N("div", { children: [/* @__PURE__ */ M("p", {
431
414
  className: "text-sm text-text-secondary",
432
415
  children: "Join Date"
433
- }), /* @__PURE__ */ j("p", {
416
+ }), /* @__PURE__ */ M("p", {
434
417
  className: "font-medium",
435
- children: D(C.joinDate)
418
+ children: k(w.joinDate)
436
419
  })] })
437
420
  ]
438
421
  })] }),
439
- /* @__PURE__ */ M(r, { children: [/* @__PURE__ */ j(o, { children: /* @__PURE__ */ M(a, {
422
+ /* @__PURE__ */ N(r, { children: [/* @__PURE__ */ M(o, { children: /* @__PURE__ */ N(a, {
440
423
  className: "flex items-center gap-2",
441
- children: [/* @__PURE__ */ j(g, { size: 18 }), " Earnings"]
442
- }) }), /* @__PURE__ */ M(i, {
424
+ children: [/* @__PURE__ */ M(g, { size: 18 }), " Earnings"]
425
+ }) }), /* @__PURE__ */ N(i, {
443
426
  className: "space-y-3",
444
427
  children: [
445
- /* @__PURE__ */ M("div", { children: [/* @__PURE__ */ j("p", {
428
+ /* @__PURE__ */ N("div", { children: [/* @__PURE__ */ M("p", {
446
429
  className: "text-sm text-text-secondary",
447
430
  children: "Total Earnings"
448
- }), /* @__PURE__ */ j("p", {
431
+ }), /* @__PURE__ */ M("p", {
449
432
  className: "text-2xl font-bold",
450
- children: E(C.earnings.totalEarnings)
433
+ children: O(w.earnings.totalEarnings)
451
434
  })] }),
452
- /* @__PURE__ */ M("div", {
435
+ /* @__PURE__ */ N("div", {
453
436
  className: "grid grid-cols-2 gap-3",
454
- children: [/* @__PURE__ */ M("div", { children: [/* @__PURE__ */ j("p", {
437
+ children: [/* @__PURE__ */ N("div", { children: [/* @__PURE__ */ M("p", {
455
438
  className: "text-sm text-text-secondary",
456
439
  children: "This Week"
457
- }), /* @__PURE__ */ j("p", {
440
+ }), /* @__PURE__ */ M("p", {
458
441
  className: "font-medium",
459
- children: E(C.earnings.weeklyEarnings)
460
- })] }), /* @__PURE__ */ M("div", { children: [/* @__PURE__ */ j("p", {
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__ */ j("p", {
446
+ }), /* @__PURE__ */ M("p", {
464
447
  className: "font-medium",
465
- children: E(C.earnings.monthlyEarnings)
448
+ children: O(w.earnings.monthlyEarnings)
466
449
  })] })]
467
450
  }),
468
- /* @__PURE__ */ M("div", { children: [/* @__PURE__ */ j("p", {
451
+ /* @__PURE__ */ N("div", { children: [/* @__PURE__ */ M("p", {
469
452
  className: "text-sm text-text-secondary",
470
453
  children: "Base Salary"
471
- }), /* @__PURE__ */ M("p", {
454
+ }), /* @__PURE__ */ N("p", {
472
455
  className: "font-medium",
473
- children: [E(C.baseSalary), "/year"]
456
+ children: [O(w.baseSalary), "/year"]
474
457
  })] })
475
458
  ]
476
459
  })] }),
477
- C.currentLocation && /* @__PURE__ */ M(r, { children: [/* @__PURE__ */ j(o, { children: /* @__PURE__ */ M(a, {
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__ */ j(v, { size: 18 }), " Current Location"]
480
- }) }), /* @__PURE__ */ M(i, { children: [/* @__PURE__ */ j("p", {
462
+ children: [/* @__PURE__ */ M(y, { size: 18 }), " Current Location"]
463
+ }) }), /* @__PURE__ */ N(i, { children: [/* @__PURE__ */ M("p", {
481
464
  className: "text-sm",
482
- children: C.currentLocation.address || "Location updating..."
483
- }), /* @__PURE__ */ M("p", {
465
+ children: w.currentLocation.address || "Location updating..."
466
+ }), /* @__PURE__ */ N("p", {
484
467
  className: "text-xs text-text-secondary mt-1",
485
- children: ["Updated ", D(C.currentLocation.timestamp || /* @__PURE__ */ new Date(), "relative")]
468
+ children: ["Updated ", k(w.currentLocation.timestamp || /* @__PURE__ */ new Date(), "relative")]
486
469
  })] })] }),
487
- /* @__PURE__ */ M(r, { children: [/* @__PURE__ */ j(o, { children: /* @__PURE__ */ j(a, { children: "Compliance Status" }) }), /* @__PURE__ */ j(i, {
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(C.compliance).filter(([e]) => e !== "lastUpdate").map(([e, t]) => /* @__PURE__ */ M("div", {
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__ */ j("span", {
474
+ children: [/* @__PURE__ */ M("span", {
492
475
  className: "text-sm capitalize",
493
476
  children: e.replace(/([A-Z])/g, " $1")
494
- }), /* @__PURE__ */ j(l, {
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__ */ j(I, {});
487
+ }) : /* @__PURE__ */ M(L, {});
505
488
  }
506
489
  //#endregion
507
- export { L as default };
490
+ export { R as default };