@burdenoff/microfe-movethewheels 2026.703.7 → 2026.704.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (117) hide show
  1. package/dist/{AIAssistantPage-B7FGmmKT.js → AIAssistantPage-MWJLAMN_.js} +5 -5
  2. package/dist/{AnalyticsPage-DXduj5KB.js → AnalyticsPage-900jpV2T.js} +9 -9
  3. package/dist/{CreateOrderPage-DuJJQ16b.js → CreateOrderPage-CXbhJLLz.js} +164 -139
  4. package/dist/{CustomerDetailsPage-C98SKw7Z.js → CustomerDetailsPage-CHzg75Q5.js} +16 -16
  5. package/dist/{CustomersPage-s8hK55JL.js → CustomersPage-CwtVspuq.js} +11 -11
  6. package/dist/{DashboardPage-BsEgcKEN.js → DashboardPage-BoswH3ec.js} +17 -17
  7. package/dist/{DataTable-Da7yHjM1.js → DataTable-CmdZd6iV.js} +7 -7
  8. package/dist/{DocumentsCard-CziaTJhP.js → DocumentsCard-y2ybnAlu.js} +4 -4
  9. package/dist/DriverDetailsPage-CPO0G8Ki.js +518 -0
  10. package/dist/{DriversPage-Duy_ITG6.js → DriversPage-6Z61dpDI.js} +11 -11
  11. package/dist/{FinancePage-BZtPTpmT.js → FinancePage-DYadOUzC.js} +9 -9
  12. package/dist/{FleetPage-DJfzoHbs.js → FleetPage-qWRj7WFO.js} +10 -10
  13. package/dist/{FormError-CWjGwOW8.js → FormError-D4T5FWZA.js} +1 -1
  14. package/dist/{ImportExportPage-DJ77GK_7.js → ImportExportPage-BhWGfbH3.js} +6 -6
  15. package/dist/{InventoryPage-Dpnwk_N3.js → InventoryPage-DbR4Z--d.js} +10 -10
  16. package/dist/{LiveTrackingPage-CLlvsP1B.js → LiveTrackingPage-5U68u3oA.js} +10 -10
  17. package/dist/{MarketplacePage-d99r-v6p.js → MarketplacePage-DMH0HNDH.js} +9 -9
  18. package/dist/{MetricCard-DA5ZqAVl.js → MetricCard-CqU5WsyW.js} +2 -2
  19. package/dist/{Notice-kkjV2rLR.js → Notice-BrXJ85dA.js} +2 -2
  20. package/dist/{OrderDetailsPage-BePtkyN0.js → OrderDetailsPage-DRYifXm9.js} +28 -24
  21. package/dist/{OrdersListPage-Csy_KScx.js → OrdersListPage-DvICveRv.js} +14 -14
  22. package/dist/{PageLayout-h_q9l8af.js → PageLayout-j9Zw3wBN.js} +579 -561
  23. package/dist/ProductDetailsPage-CWgcRqGR.js +375 -0
  24. package/dist/{ProductsPage-B4jWJ5bv.js → ProductsPage-CokwDOR2.js} +9 -9
  25. package/dist/{ReportsPage-ALRYfXtz.js → ReportsPage-MU8F9DQC.js} +9 -9
  26. package/dist/RouteDetailsPage-BHQbFgI9.js +642 -0
  27. package/dist/{RoutesPage-CQHCDInT.js → RoutesPage-Dqd5Don6.js} +7 -7
  28. package/dist/{SettingsPage-BYBRrlGe.js → SettingsPage-_6SIlcBX.js} +4 -4
  29. package/dist/{Sparkline-Q-6bJ24J.js → Sparkline-DTGdlxUH.js} +1 -1
  30. package/dist/{StatusBadge-1W2p8fEi.js → StatusBadge-BfiF-nNI.js} +1 -1
  31. package/dist/{TrackingPage-CFndTIyk.js → TrackingPage-Cg0tYGJe.js} +11 -11
  32. package/dist/VehicleDetailsPage-BbZlCFPo.js +417 -0
  33. package/dist/{VehiclesPage-ClkfFZxL.js → VehiclesPage-BfBEyXGs.js} +12 -12
  34. package/dist/WarehouseDetailsPage-DxNhiaoI.js +515 -0
  35. package/dist/{WarehousesPage-kNba6cr3.js → WarehousesPage-M3NaBT0z.js} +8 -8
  36. package/dist/{arrow-left-XOzFvBFD.js → arrow-left-1dVWv2dg.js} +1 -1
  37. package/dist/{arrow-right-CRrwlvFe.js → arrow-right-PUCNATnk.js} +1 -1
  38. package/dist/{arrow-up-ClFaLPly.js → arrow-up-VQuGMABN.js} +1 -1
  39. package/dist/{box-BX4WyCLv.js → box-DW1KNP8j.js} +1 -1
  40. package/dist/{boxes-R3nq5f0_.js → boxes-D6I00XqA.js} +1 -1
  41. package/dist/{chart-column-BgF8J9bx.js → chart-column-BwQ5H9ol.js} +1 -1
  42. package/dist/{charts-BS_OnWc6.js → charts-Dv_zxP7L.js} +2 -2
  43. package/dist/{chevron-left-D3hcLQ1g.js → chevron-left-DzNxoaBG.js} +1 -1
  44. package/dist/{chevron-right-BpfSrzQF.js → chevron-right-CKm3ZC1T.js} +1 -1
  45. package/dist/{circle-alert-CLqT8iCQ.js → circle-alert-CtBm6oIb.js} +1 -1
  46. package/dist/{circle-check-CWLAr_8f.js → circle-check-B_Y7FDyR.js} +1 -1
  47. package/dist/{circle-check-big-Dsuz8dJ2.js → circle-check-big-H5pLiMBW.js} +1 -1
  48. package/dist/{clock-DrZOQD8h.js → clock-B4-qjGuB.js} +1 -1
  49. package/dist/{dollar-sign-CJfKfYul.js → dollar-sign-CYGHy2oS.js} +1 -1
  50. package/dist/{download-C-yNvUiL.js → download-BJonq2ty.js} +1 -1
  51. package/dist/{file-text-m2SyQgBo.js → file-text-C-cZx58r.js} +1 -1
  52. package/dist/{filter-uA6govE9.js → filter-B_S6WOqr.js} +1 -1
  53. package/dist/{fuel-BroSIBo1.js → fuel-Cjt6IxKr.js} +1 -1
  54. package/dist/index.js +53 -33
  55. package/dist/{map-BzwQ__kD.js → map-CO0aWUae.js} +1 -1
  56. package/dist/{map-pin-BGbmEGn3.js → map-pin-BISLzLwb.js} +1 -1
  57. package/dist/{maps-DpIuSSmg.js → maps-CtfuCAmh.js} +1 -1
  58. package/dist/{navigation-CjKGLL9T.js → navigation-BFki5UJz.js} +1 -1
  59. package/dist/{package-D36cKFvu.js → package-UyaWiALC.js} +1 -1
  60. package/dist/{phone-mMZFHd1Z.js → phone-Bav_V7rR.js} +1 -1
  61. package/dist/{plus-DY5R-c1j.js → plus-Bk_G-lFC.js} +1 -1
  62. package/dist/{refresh-cw-DyOLYuDU.js → refresh-cw-C4-jecjy.js} +1 -1
  63. package/dist/{route-CuaZ1wU3.js → route-WpCP6F1x.js} +1 -1
  64. package/dist/{save-h9dzHwJE.js → save-CcfoIn2J.js} +1 -1
  65. package/dist/{search-stTGSec-.js → search-C3YRxW9e.js} +1 -1
  66. package/dist/{square-pen-DT5srCPD.js → square-pen-Dr1X-P2s.js} +1 -1
  67. package/dist/{star-gp4yO3PF.js → star-1Ixfuzai.js} +1 -1
  68. package/dist/{store-DJZDAvCY.js → store-BwU935v5.js} +1 -1
  69. package/dist/{trash-2-DwcjTxYE.js → trash-2-CC4KugEJ.js} +1 -1
  70. package/dist/{trending-up-2q2sPVsb.js → trending-up-1brglj1E.js} +1 -1
  71. package/dist/{triangle-alert-CU60xaOi.js → triangle-alert-Dh56Yu3-.js} +1 -1
  72. package/dist/{truck-ByZxqZhI.js → truck-DxhtLfkG.js} +1 -1
  73. package/dist/{upload-CWor1uj3.js → upload-CLf0JLXW.js} +1 -1
  74. package/dist/{useAssistant-uoc8wjr0.js → useAssistant-B9qBtRKm.js} +1 -1
  75. package/dist/{useCustomers-BPPhQXSH.js → useCustomers-BQ4AIEAT.js} +1 -1
  76. package/dist/{useFleet-CT_iW2V9.js → useFleet-BfA_-VUW.js} +101 -72
  77. package/dist/{useImportExport-BG0Cg_D9.js → useImportExport-7-O8noRJ.js} +1 -1
  78. package/dist/{useInventory-BtBGnOC2.js → useInventory-BO7TSgq_.js} +99 -73
  79. package/dist/{useOrders-BC-1mCc0.js → useOrders-B5FV0kcz.js} +1 -1
  80. package/dist/{useReports-Cx8blThR.js → useReports-hUXb8ryJ.js} +1 -1
  81. package/dist/{useRoutes-8fw8oO6y.js → useRoutes-C_ZCYJ_h.js} +1 -1
  82. package/dist/{useSettings-Do5WSUaI.js → useSettings-BNNzQs_B.js} +2 -2
  83. package/dist/{useTracking-Dogilo5C.js → useTracking-7nd_XOSL.js} +3 -3
  84. package/dist/{user-Dr_JS2FF.js → user-B1IjWJtn.js} +1 -1
  85. package/dist/{user-check-CBSiMH6I.js → user-check-Cx6fHHll.js} +1 -1
  86. package/dist/{users-BRV9-2nV.js → users-BKmsb79k.js} +1 -1
  87. package/dist/{warehouse-CmIAl0_w.js → warehouse-DE1irFyJ.js} +1 -1
  88. package/dist/{wrench-6U-BTSbg.js → wrench-DTJGFs17.js} +1 -1
  89. package/dist/{x-DX8sZrkd.js → x-CvsUGJy1.js} +1 -1
  90. package/package.json +1 -1
  91. package/src/movethewheels/MoveTheWheelsRoutes.tsx +5 -0
  92. package/src/movethewheels/components/GlassPanel.tsx +1 -3
  93. package/src/movethewheels/components/MetricCard.tsx +16 -3
  94. package/src/movethewheels/components/charts/StatusDonut.tsx +2 -6
  95. package/src/movethewheels/components/charts/TrendChart.tsx +2 -6
  96. package/src/movethewheels/components/maps/LogisticsMap.tsx +1 -4
  97. package/src/movethewheels/components/maps/RouteMap.tsx +3 -5
  98. package/src/movethewheels/components/maps/TrackingMap.tsx +11 -2
  99. package/src/movethewheels/hooks/useFleet.ts +113 -0
  100. package/src/movethewheels/hooks/useInventory.ts +86 -0
  101. package/src/movethewheels/hooks/useSettings.ts +8 -1
  102. package/src/movethewheels/pages/CreateOrderPage.tsx +48 -6
  103. package/src/movethewheels/pages/CustomerDetailsPage.tsx +3 -2
  104. package/src/movethewheels/pages/DriverDetailsPage.tsx +58 -20
  105. package/src/movethewheels/pages/OrderDetailsPage.tsx +2 -1
  106. package/src/movethewheels/pages/ProductDetailsPage.tsx +51 -15
  107. package/src/movethewheels/pages/RouteDetailsPage.tsx +51 -7
  108. package/src/movethewheels/pages/VehicleDetailsPage.tsx +53 -17
  109. package/src/movethewheels/pages/VehiclesPage.tsx +9 -1
  110. package/src/movethewheels/pages/WarehouseDetailsPage.tsx +49 -11
  111. package/src/movethewheels/types/index.ts +3 -0
  112. package/src/movethewheels/utils/graphqlClient.ts +51 -1
  113. package/dist/DriverDetailsPage-CBzAmM6s.js +0 -490
  114. package/dist/ProductDetailsPage-BMlRoR9E.js +0 -350
  115. package/dist/RouteDetailsPage-Btb1MSIS.js +0 -610
  116. package/dist/VehicleDetailsPage-DNLrMljV.js +0 -393
  117. package/dist/WarehouseDetailsPage-CAQFz7l_.js +0 -493
@@ -1,393 +0,0 @@
1
- import { A as e, F as t, I as n, L as r, M as i, P as a, R as o, d as s, f as c, g as l, h as u, i as d, j as f, lt as p, n as m, r as h, st as g, u as _ } from "./PageLayout-h_q9l8af.js";
2
- import { t as v } from "./arrow-left-XOzFvBFD.js";
3
- import { t as y } from "./DocumentsCard-CziaTJhP.js";
4
- import { t as b } from "./fuel-BroSIBo1.js";
5
- import { t as x } from "./map-pin-BGbmEGn3.js";
6
- import { t as S } from "./save-h9dzHwJE.js";
7
- import { t as C } from "./square-pen-DT5srCPD.js";
8
- import { t as w } from "./truck-ByZxqZhI.js";
9
- import { t as T } from "./wrench-6U-BTSbg.js";
10
- import { a as E, r as D } from "./useFleet-CT_iW2V9.js";
11
- import { a as O, r as k } from "./StatusBadge-1W2p8fEi.js";
12
- import { t as A } from "./FormError-CWjGwOW8.js";
13
- import { r as j } from "./formatters-FWJDwTFv.js";
14
- import { useState as M } from "react";
15
- import { useParams as N } from "react-router-dom";
16
- import { jsx as P, jsxs as F } from "react/jsx-runtime";
17
- import { EmphasisPanel as I, NextSteps as L, PagePurpose as R } from "@burdenoff/fe-libs/ui";
18
- //#region src/movethewheels/pages/VehicleDetailsPage.tsx
19
- var z = [
20
- {
21
- value: "TRUCK",
22
- label: "Truck"
23
- },
24
- {
25
- value: "VAN",
26
- label: "Van"
27
- },
28
- {
29
- value: "MOTORCYCLE",
30
- label: "Motorcycle"
31
- },
32
- {
33
- value: "BICYCLE",
34
- label: "Bicycle"
35
- },
36
- {
37
- value: "FLATBED",
38
- label: "Flatbed"
39
- },
40
- {
41
- value: "REFRIGERATED",
42
- label: "Refrigerated"
43
- },
44
- {
45
- value: "SEMI_TRAILER",
46
- label: "Semi-Trailer"
47
- },
48
- {
49
- value: "DRONE",
50
- label: "Drone"
51
- }
52
- ];
53
- function B() {
54
- let { basePath: i, navigate: s } = g(), { createVehicle: c } = D(), [l, u] = M({
55
- vehicleNumber: "",
56
- type: "VAN",
57
- make: "",
58
- model: "",
59
- licensePlate: ""
60
- }), [m, h] = M(!1), [y, b] = M(null), x = () => s?.(p(i, "fleet/vehicles")), C = async (e) => {
61
- if (e.preventDefault(), !l.vehicleNumber.trim()) {
62
- b("Vehicle number is required.");
63
- return;
64
- }
65
- h(!0), b(null);
66
- try {
67
- let e = await c({
68
- vehicleNumber: l.vehicleNumber.trim(),
69
- type: l.type,
70
- make: l.make.trim() || void 0,
71
- model: l.model.trim() || void 0,
72
- licensePlate: l.licensePlate.trim() || void 0
73
- });
74
- s?.(p(i, `fleet/vehicles/${e.id}`));
75
- } catch (e) {
76
- console.error("Failed to create vehicle:", e), b(e instanceof Error ? e.message : "Failed to create vehicle. Please try again."), h(!1);
77
- }
78
- };
79
- return /* @__PURE__ */ F(d, {
80
- title: "Add Vehicle",
81
- subtitle: "Register a new vehicle in your fleet",
82
- icon: /* @__PURE__ */ P(w, { size: 24 }),
83
- headerActions: /* @__PURE__ */ F("div", {
84
- className: "flex gap-2",
85
- children: [/* @__PURE__ */ F(_, {
86
- variant: "outline",
87
- onClick: x,
88
- disabled: m,
89
- children: [/* @__PURE__ */ P(v, { size: 16 }), " Cancel"]
90
- }), /* @__PURE__ */ F(_, {
91
- onClick: C,
92
- disabled: m,
93
- children: [
94
- /* @__PURE__ */ P(S, { size: 16 }),
95
- " ",
96
- m ? "Saving..." : "Add Vehicle"
97
- ]
98
- })]
99
- }),
100
- children: [/* @__PURE__ */ P(R, {
101
- icon: /* @__PURE__ */ P(w, { size: 18 }),
102
- children: "Add a vehicle so it can be assigned to deliveries and routes. Give it a fleet number and type to start — make, model and plate help identify it on the road."
103
- }), /* @__PURE__ */ F("form", {
104
- onSubmit: C,
105
- className: "max-w-2xl space-y-6",
106
- children: [/* @__PURE__ */ P(A, { message: y }), /* @__PURE__ */ F(I, { children: [/* @__PURE__ */ P("h2", {
107
- className: "text-base font-semibold text-text-primary mb-4",
108
- children: "Vehicle Details"
109
- }), /* @__PURE__ */ F("div", {
110
- className: "space-y-4",
111
- children: [/* @__PURE__ */ F("div", {
112
- className: "grid grid-cols-1 md:grid-cols-2 gap-4",
113
- children: [/* @__PURE__ */ F("div", {
114
- className: "space-y-2",
115
- children: [/* @__PURE__ */ F(f, {
116
- htmlFor: "vehicleNumber",
117
- children: ["Vehicle Number ", /* @__PURE__ */ P("span", {
118
- className: "text-status-error-text",
119
- children: "*"
120
- })]
121
- }), /* @__PURE__ */ P(e, {
122
- id: "vehicleNumber",
123
- value: l.vehicleNumber,
124
- onChange: (e) => u((t) => ({
125
- ...t,
126
- vehicleNumber: e.target.value
127
- })),
128
- placeholder: "MTW-001",
129
- required: !0
130
- })]
131
- }), /* @__PURE__ */ F("div", {
132
- className: "space-y-2",
133
- children: [/* @__PURE__ */ F(f, {
134
- htmlFor: "type",
135
- children: ["Type ", /* @__PURE__ */ P("span", {
136
- className: "text-status-error-text",
137
- children: "*"
138
- })]
139
- }), /* @__PURE__ */ F(a, {
140
- value: l.type,
141
- onValueChange: (e) => u((t) => ({
142
- ...t,
143
- type: e
144
- })),
145
- children: [/* @__PURE__ */ P(r, {
146
- id: "type",
147
- children: /* @__PURE__ */ P(o, {})
148
- }), /* @__PURE__ */ P(t, { children: z.map((e) => /* @__PURE__ */ P(n, {
149
- value: e.value,
150
- children: e.label
151
- }, e.value)) })]
152
- })]
153
- })]
154
- }), /* @__PURE__ */ F("div", {
155
- className: "grid grid-cols-1 md:grid-cols-3 gap-4",
156
- children: [
157
- /* @__PURE__ */ F("div", {
158
- className: "space-y-2",
159
- children: [/* @__PURE__ */ P(f, {
160
- htmlFor: "make",
161
- children: "Make"
162
- }), /* @__PURE__ */ P(e, {
163
- id: "make",
164
- value: l.make,
165
- onChange: (e) => u((t) => ({
166
- ...t,
167
- make: e.target.value
168
- })),
169
- placeholder: "Ford"
170
- })]
171
- }),
172
- /* @__PURE__ */ F("div", {
173
- className: "space-y-2",
174
- children: [/* @__PURE__ */ P(f, {
175
- htmlFor: "model",
176
- children: "Model"
177
- }), /* @__PURE__ */ P(e, {
178
- id: "model",
179
- value: l.model,
180
- onChange: (e) => u((t) => ({
181
- ...t,
182
- model: e.target.value
183
- })),
184
- placeholder: "Transit"
185
- })]
186
- }),
187
- /* @__PURE__ */ F("div", {
188
- className: "space-y-2",
189
- children: [/* @__PURE__ */ P(f, {
190
- htmlFor: "licensePlate",
191
- children: "License Plate"
192
- }), /* @__PURE__ */ P(e, {
193
- id: "licensePlate",
194
- value: l.licensePlate,
195
- onChange: (e) => u((t) => ({
196
- ...t,
197
- licensePlate: e.target.value
198
- })),
199
- placeholder: "ABC-1234"
200
- })]
201
- })
202
- ]
203
- })]
204
- })] })]
205
- })]
206
- });
207
- }
208
- function V() {
209
- let { vehicleId: e } = N(), { basePath: t, navigate: n } = g(), { vehicle: r, isLoading: a, error: o, refetch: f } = E(e), S = () => n?.(p(t, "fleet/vehicles")), D = (e) => n?.(p(t, e));
210
- return e ? a ? /* @__PURE__ */ P(h, { message: "Loading vehicle details..." }) : o || !r ? /* @__PURE__ */ P(m, {
211
- title: "Vehicle not found",
212
- onRetry: f
213
- }) : /* @__PURE__ */ F(d, {
214
- title: r.vehicleNumber,
215
- subtitle: `${r.make} ${r.model} (${r.year})`,
216
- icon: /* @__PURE__ */ P(w, { size: 24 }),
217
- headerActions: /* @__PURE__ */ F("div", {
218
- className: "flex gap-2",
219
- children: [/* @__PURE__ */ F(_, {
220
- variant: "outline",
221
- onClick: S,
222
- children: [/* @__PURE__ */ P(v, { size: 16 }), " Back"]
223
- }), /* @__PURE__ */ F(_, { children: [/* @__PURE__ */ P(C, { size: 16 }), " Edit"] })]
224
- }),
225
- headerContent: /* @__PURE__ */ F("div", {
226
- className: "flex gap-2",
227
- children: [/* @__PURE__ */ P(k, {
228
- status: r.status,
229
- type: "vehicle"
230
- }), /* @__PURE__ */ P(O, { type: r.type })]
231
- }),
232
- children: [
233
- /* @__PURE__ */ P(R, {
234
- icon: /* @__PURE__ */ P(w, { size: 18 }),
235
- children: "The full record for this vehicle — specs, capacity, fuel and mileage, maintenance schedule and current location. Use it to confirm a vehicle is fuelled, serviced and the right size before dispatching it on a delivery."
236
- }),
237
- /* @__PURE__ */ P(L, {
238
- storageKey: "movethewheels-vehicle-details",
239
- steps: [{
240
- id: "assign",
241
- label: "Assign to a delivery",
242
- description: "Put this vehicle on an order that fits its capacity.",
243
- icon: /* @__PURE__ */ P(x, { size: 16 }),
244
- onClick: () => D("orders")
245
- }, {
246
- id: "maintenance",
247
- label: "Schedule maintenance",
248
- description: "Keep it road-ready and compliant.",
249
- icon: /* @__PURE__ */ P(T, { size: 16 }),
250
- onClick: () => {}
251
- }]
252
- }),
253
- /* @__PURE__ */ F("div", {
254
- className: "grid grid-cols-1 lg:grid-cols-3 gap-6",
255
- children: [/* @__PURE__ */ F("div", {
256
- className: "lg:col-span-2 space-y-6",
257
- children: [
258
- /* @__PURE__ */ F(I, { children: [/* @__PURE__ */ P("h2", {
259
- className: "text-base font-semibold text-text-primary mb-4",
260
- children: "Vehicle Information"
261
- }), /* @__PURE__ */ F("div", {
262
- className: "grid grid-cols-2 md:grid-cols-4 gap-6",
263
- children: [
264
- /* @__PURE__ */ F("div", { children: [/* @__PURE__ */ P("p", {
265
- className: "text-sm text-text-secondary",
266
- children: "Type"
267
- }), /* @__PURE__ */ P("p", {
268
- className: "font-medium capitalize",
269
- children: r.type
270
- })] }),
271
- /* @__PURE__ */ F("div", { children: [/* @__PURE__ */ P("p", {
272
- className: "text-sm text-text-secondary",
273
- children: "Make"
274
- }), /* @__PURE__ */ P("p", {
275
- className: "font-medium",
276
- children: r.make
277
- })] }),
278
- /* @__PURE__ */ F("div", { children: [/* @__PURE__ */ P("p", {
279
- className: "text-sm text-text-secondary",
280
- children: "Model"
281
- }), /* @__PURE__ */ P("p", {
282
- className: "font-medium",
283
- children: r.model
284
- })] }),
285
- /* @__PURE__ */ F("div", { children: [/* @__PURE__ */ P("p", {
286
- className: "text-sm text-text-secondary",
287
- children: "Year"
288
- }), /* @__PURE__ */ P("p", {
289
- className: "font-medium",
290
- children: r.year
291
- })] })
292
- ]
293
- })] }),
294
- /* @__PURE__ */ F(s, { children: [/* @__PURE__ */ P(u, { children: /* @__PURE__ */ P(l, { children: "Capacity" }) }), /* @__PURE__ */ P(c, { children: /* @__PURE__ */ F("div", {
295
- className: "grid grid-cols-1 sm:grid-cols-3 gap-6",
296
- children: [
297
- /* @__PURE__ */ F("div", { children: [/* @__PURE__ */ P("p", {
298
- className: "text-sm text-text-secondary",
299
- children: "Weight"
300
- }), /* @__PURE__ */ F("p", {
301
- className: "text-2xl font-bold",
302
- children: [r.capacity.weight, /* @__PURE__ */ P("span", {
303
- className: "text-sm font-normal",
304
- children: " kg"
305
- })]
306
- })] }),
307
- /* @__PURE__ */ F("div", { children: [/* @__PURE__ */ P("p", {
308
- className: "text-sm text-text-secondary",
309
- children: "Volume"
310
- }), /* @__PURE__ */ F("p", {
311
- className: "text-2xl font-bold",
312
- children: [r.capacity.volume, /* @__PURE__ */ P("span", {
313
- className: "text-sm font-normal",
314
- children: " m³"
315
- })]
316
- })] }),
317
- r.capacity.pallets && /* @__PURE__ */ F("div", { children: [/* @__PURE__ */ P("p", {
318
- className: "text-sm text-text-secondary",
319
- children: "Pallets"
320
- }), /* @__PURE__ */ P("p", {
321
- className: "text-2xl font-bold",
322
- children: r.capacity.pallets
323
- })] })
324
- ]
325
- }) })] }),
326
- /* @__PURE__ */ P(y, {
327
- entityType: "vehicle",
328
- entityId: r.id
329
- })
330
- ]
331
- }), /* @__PURE__ */ F("div", {
332
- className: "space-y-6",
333
- children: [
334
- /* @__PURE__ */ F(s, { children: [/* @__PURE__ */ P(u, { children: /* @__PURE__ */ F(l, {
335
- className: "flex items-center gap-2",
336
- children: [/* @__PURE__ */ P(b, { size: 18 }), " Fuel & Mileage"]
337
- }) }), /* @__PURE__ */ F(c, {
338
- className: "space-y-4",
339
- children: [r.fuelLevel !== void 0 && /* @__PURE__ */ F("div", { children: [/* @__PURE__ */ F("div", {
340
- className: "flex justify-between text-sm mb-2",
341
- children: [/* @__PURE__ */ P("span", { children: "Fuel Level" }), /* @__PURE__ */ F("span", { children: [r.fuelLevel, "%"] })]
342
- }), /* @__PURE__ */ P(i, { value: r.fuelLevel })] }), r.mileage !== void 0 && /* @__PURE__ */ F("div", { children: [/* @__PURE__ */ P("p", {
343
- className: "text-sm text-text-secondary",
344
- children: "Total Mileage"
345
- }), /* @__PURE__ */ F("p", {
346
- className: "text-2xl font-bold",
347
- children: [
348
- r.mileage.toLocaleString(),
349
- " ",
350
- /* @__PURE__ */ P("span", {
351
- className: "text-sm font-normal",
352
- children: "miles"
353
- })
354
- ]
355
- })] })]
356
- })] }),
357
- /* @__PURE__ */ F(s, { children: [/* @__PURE__ */ P(u, { children: /* @__PURE__ */ F(l, {
358
- className: "flex items-center gap-2",
359
- children: [/* @__PURE__ */ P(T, { size: 18 }), " Maintenance"]
360
- }) }), /* @__PURE__ */ F(c, {
361
- className: "space-y-3",
362
- children: [/* @__PURE__ */ F("div", { children: [/* @__PURE__ */ P("p", {
363
- className: "text-sm text-text-secondary",
364
- children: "Last Maintenance"
365
- }), /* @__PURE__ */ P("p", {
366
- className: "font-medium",
367
- children: r.lastMaintenance ? j(r.lastMaintenance) : "N/A"
368
- })] }), /* @__PURE__ */ F("div", { children: [/* @__PURE__ */ P("p", {
369
- className: "text-sm text-text-secondary",
370
- children: "Next Scheduled"
371
- }), /* @__PURE__ */ P("p", {
372
- className: "font-medium",
373
- children: r.nextMaintenance ? j(r.nextMaintenance) : "N/A"
374
- })] })]
375
- })] }),
376
- r.currentLocation && /* @__PURE__ */ F(s, { children: [/* @__PURE__ */ P(u, { children: /* @__PURE__ */ F(l, {
377
- className: "flex items-center gap-2",
378
- children: [/* @__PURE__ */ P(x, { size: 18 }), " Current Location"]
379
- }) }), /* @__PURE__ */ F(c, { children: [/* @__PURE__ */ P("p", {
380
- className: "text-sm",
381
- children: r.currentLocation.address || "Location updating..."
382
- }), /* @__PURE__ */ F("p", {
383
- className: "text-xs text-text-secondary mt-1",
384
- children: ["Updated ", j(r.currentLocation.timestamp || /* @__PURE__ */ new Date(), "relative")]
385
- })] })] })
386
- ]
387
- })]
388
- })
389
- ]
390
- }) : /* @__PURE__ */ P(B, {});
391
- }
392
- //#endregion
393
- export { V as default };