@burdenoff/microfe-movethewheels 2026.703.1 → 2026.703.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. package/dist/{AIAssistantPage-C3ovZ0Fh.js → AIAssistantPage-C3cPsWt-.js} +1 -1
  2. package/dist/{AnalyticsPage-O8SpY-V4.js → AnalyticsPage-Dz6g2MvK.js} +6 -6
  3. package/dist/{CreateOrderPage-CB1_-_mN.js → CreateOrderPage-C5iwnjp4.js} +29 -58
  4. package/dist/CustomerDetailsPage-B6nwFyLO.js +406 -0
  5. package/dist/{CustomersPage-DRaLuHMC.js → CustomersPage-BKxMS1AV.js} +5 -5
  6. package/dist/{DashboardPage-DPjhNfKB.js → DashboardPage-BVjQi0EB.js} +11 -11
  7. package/dist/DriverDetailsPage-CN3WQ0B9.js +507 -0
  8. package/dist/{DriversPage-C2Bk0w4Q.js → DriversPage-CH9rjQC-.js} +6 -6
  9. package/dist/{FinancePage-lmp0Sdsw.js → FinancePage-DEDykSOP.js} +5 -5
  10. package/dist/{FleetPage-DZn5pIqd.js → FleetPage-DqkFi3s3.js} +5 -5
  11. package/dist/FormError-BlOjnXOq.js +15 -0
  12. package/dist/{ImportExportPage-BIUJZc7O.js → ImportExportPage-DKJRCezl.js} +1 -1
  13. package/dist/{InventoryPage-Cxh1zYJd.js → InventoryPage-e0ze63iX.js} +6 -6
  14. package/dist/{LiveTrackingPage-BY1yAkIt.js → LiveTrackingPage-DCX-K-LR.js} +5 -5
  15. package/dist/{MarketplacePage-RMuL17EA.js → MarketplacePage-CIQ97_zp.js} +1 -1
  16. package/dist/{OrderDetailsPage-C2Mf4KSy.js → OrderDetailsPage-DYiZ-9UK.js} +5 -5
  17. package/dist/{OrdersListPage-BrPBtnhp.js → OrdersListPage-Cn90P1Xx.js} +4 -4
  18. package/dist/ProductDetailsPage-C9uOiYLp.js +350 -0
  19. package/dist/{ProductsPage-I5DilIoY.js → ProductsPage-QJfHHpqB.js} +4 -4
  20. package/dist/{ReportsPage-BDXNmUng.js → ReportsPage-Zp53q3_8.js} +2 -2
  21. package/dist/RouteDetailsPage-DUStXSf9.js +531 -0
  22. package/dist/{RoutesPage-lqX9ylHP.js → RoutesPage-DMfoicM1.js} +3 -3
  23. package/dist/{SettingsPage-CQVIOaNs.js → SettingsPage-Bn-v0mbQ.js} +1 -1
  24. package/dist/{TrackingPage-BXrjz7V8.js → TrackingPage-W-jtdM3Y.js} +4 -4
  25. package/dist/VehicleDetailsPage-Bceo5oz3.js +410 -0
  26. package/dist/{VehiclesPage-6W39XT5W.js → VehiclesPage-ApKThYeG.js} +5 -5
  27. package/dist/WarehouseDetailsPage-L_6sWigM.js +493 -0
  28. package/dist/{WarehousesPage-CHvBqNaQ.js → WarehousesPage-DCbXXXWE.js} +3 -3
  29. package/dist/index.js +154 -138
  30. package/dist/trash-2-BKhar6Hs.js +32 -0
  31. package/dist/{useFleet-DiAC-IiH.js → useFleet-DKqXZ16m.js} +77 -56
  32. package/dist/{useInventory-DKoks37x.js → useInventory-DkyiVY_A.js} +73 -53
  33. package/dist/{useTracking-GJify4HN.js → useTracking-B-va1kO3.js} +2 -2
  34. package/package.json +1 -1
  35. package/src/movethewheels/MoveTheWheelsRoutes.tsx +4 -0
  36. package/src/movethewheels/components/FormError.tsx +25 -0
  37. package/src/movethewheels/hooks/useFleet.ts +107 -0
  38. package/src/movethewheels/hooks/useInventory.ts +107 -0
  39. package/src/movethewheels/pages/CustomerDetailsPage.tsx +153 -20
  40. package/src/movethewheels/pages/CustomersPage.tsx +1 -1
  41. package/src/movethewheels/pages/DriverDetailsPage.tsx +159 -2
  42. package/src/movethewheels/pages/DriversPage.tsx +6 -2
  43. package/src/movethewheels/pages/InventoryPage.tsx +1 -1
  44. package/src/movethewheels/pages/OrdersListPage.tsx +1 -1
  45. package/src/movethewheels/pages/ProductDetailsPage.tsx +146 -3
  46. package/src/movethewheels/pages/ProductsPage.tsx +6 -2
  47. package/src/movethewheels/pages/RouteDetailsPage.tsx +285 -25
  48. package/src/movethewheels/pages/VehicleDetailsPage.tsx +158 -2
  49. package/src/movethewheels/pages/VehiclesPage.tsx +6 -2
  50. package/src/movethewheels/pages/WarehouseDetailsPage.tsx +224 -2
  51. package/src/movethewheels/pages/WarehousesPage.tsx +5 -1
  52. package/dist/CustomerDetailsPage-BaeKEI1D.js +0 -263
  53. package/dist/DriverDetailsPage-CSSQTOzn.js +0 -328
  54. package/dist/ProductDetailsPage-CezzzZcj.js +0 -193
  55. package/dist/RouteDetailsPage-BcomL20M.js +0 -263
  56. package/dist/VehicleDetailsPage-DZjLcJgr.js +0 -218
  57. package/dist/WarehouseDetailsPage-C10pgRGW.js +0 -236
  58. /package/dist/{MetricCard-7aYgzZHK.js → MetricCard-BY0QrMD4.js} +0 -0
  59. /package/dist/{StatusBadge-NpTeHVlw.js → StatusBadge-BZurYHMy.js} +0 -0
  60. /package/dist/{formatters-DhKZ-eA1.js → formatters-CF2S2l1m.js} +0 -0
  61. /package/dist/{trending-up-B7W-GL6P.js → trending-up-Dohgd4t_.js} +0 -0
  62. /package/dist/{triangle-alert-BonHFFNz.js → triangle-alert-i-XQL9Rd.js} +0 -0
  63. /package/dist/{truck-DrlfSpRC.js → truck-C0v_hbLR.js} +0 -0
  64. /package/dist/{useAnalytics-CgdzUfY_.js → useAnalytics-DS8n0xgg.js} +0 -0
  65. /package/dist/{useCustomers-QrlozybF.js → useCustomers-BmTNGxiI.js} +0 -0
  66. /package/dist/{useImportExport-BLMnAKCC.js → useImportExport-DHr-SWSw.js} +0 -0
  67. /package/dist/{useOrders-D3UZVy8Y.js → useOrders-Cfk1GLiq.js} +0 -0
  68. /package/dist/{useReports-Puq4DCH9.js → useReports-CTqZr-AB.js} +0 -0
  69. /package/dist/{useRoutes-Do57LvRb.js → useRoutes-BQWO607N.js} +0 -0
  70. /package/dist/{user-CjSoudeu.js → user-jyFU3lXk.js} +0 -0
  71. /package/dist/{users-BAM4gHTn.js → users-DZ-ilS6B.js} +0 -0
  72. /package/dist/{warehouse-C7MSr47B.js → warehouse-6m5kXMLu.js} +0 -0
@@ -1,8 +1,8 @@
1
1
  import { it as e, ot as t } from "./PageLayout-D4LDHJJq.js";
2
2
  import { useCallback as n, useEffect as r, useMemo as i, useState as a } from "react";
3
3
  //#region src/movethewheels/hooks/useFleet.ts
4
- var o = "\n query ListVehicles($filter: VehicleFilterInput, $pagination: PaginationInput) {\n vehicles(filter: $filter, pagination: $pagination) {\n id\n vehicleNumber\n type\n make\n model\n year\n capacity\n status\n currentLocation\n fuelLevel\n mileage\n createdAt\n updatedAt\n }\n }\n", s = "\n query ListDrivers($filter: DriverFilterInput, $pagination: PaginationInput) {\n drivers(filter: $filter, pagination: $pagination) {\n id\n userId\n firstName\n lastName\n employeeId\n licenseNumber\n licenseClass\n licenseExpiry\n status\n currentLocation\n rating\n vehicleId\n createdAt\n }\n }\n", c = "\n query GetVehicle($id: ID!) {\n vehicle(id: $id) {\n id\n vehicleNumber\n type\n make\n model\n year\n capacity\n status\n currentLocation\n fuelLevel\n mileage\n createdAt\n updatedAt\n }\n }\n", l = "\n query GetDriver($id: ID!) {\n driver(id: $id) {\n id\n userId\n firstName\n lastName\n employeeId\n licenseNumber\n licenseClass\n licenseExpiry\n status\n currentLocation\n rating\n vehicleId\n createdAt\n }\n }\n", u = "\n mutation UpdateVehicleStatus($id: ID!, $status: VehicleStatus!) {\n updateVehicleStatus(id: $id, status: $status) {\n id\n vehicleNumber\n type\n make\n model\n year\n capacity\n status\n currentLocation\n fuelLevel\n mileage\n createdAt\n updatedAt\n }\n }\n", d = "\n mutation AssignDriverVehicle($id: ID!, $vehicleId: ID) {\n assignDriverVehicle(id: $id, vehicleId: $vehicleId) {\n id\n userId\n firstName\n lastName\n employeeId\n licenseNumber\n licenseClass\n licenseExpiry\n status\n currentLocation\n rating\n vehicleId\n createdAt\n }\n }\n", f = "\n mutation UpdateDriverStatus($id: ID!, $status: DriverStatus!) {\n updateDriverStatus(id: $id, status: $status) {\n id\n userId\n firstName\n lastName\n employeeId\n licenseNumber\n licenseClass\n licenseExpiry\n status\n currentLocation\n rating\n vehicleId\n createdAt\n }\n }\n", p = "\n query GetFleetStats {\n fleetStats {\n totalVehicles\n activeVehicles\n inTransitVehicles\n maintenanceVehicles\n totalDrivers\n availableDrivers\n onDeliveryDrivers\n avgDriverRating\n }\n }\n";
5
- function m(e) {
4
+ var o = "\n query ListVehicles($filter: VehicleFilterInput, $pagination: PaginationInput) {\n vehicles(filter: $filter, pagination: $pagination) {\n id\n vehicleNumber\n type\n make\n model\n year\n capacity\n status\n currentLocation\n fuelLevel\n mileage\n createdAt\n updatedAt\n }\n }\n", s = "\n query ListDrivers($filter: DriverFilterInput, $pagination: PaginationInput) {\n drivers(filter: $filter, pagination: $pagination) {\n id\n userId\n firstName\n lastName\n employeeId\n licenseNumber\n licenseClass\n licenseExpiry\n status\n currentLocation\n rating\n vehicleId\n createdAt\n }\n }\n", c = "\n query GetVehicle($id: ID!) {\n vehicle(id: $id) {\n id\n vehicleNumber\n type\n make\n model\n year\n capacity\n status\n currentLocation\n fuelLevel\n mileage\n createdAt\n updatedAt\n }\n }\n", l = "\n query GetDriver($id: ID!) {\n driver(id: $id) {\n id\n userId\n firstName\n lastName\n employeeId\n licenseNumber\n licenseClass\n licenseExpiry\n status\n currentLocation\n rating\n vehicleId\n createdAt\n }\n }\n", u = "\n mutation UpdateVehicleStatus($id: ID!, $status: VehicleStatus!) {\n updateVehicleStatus(id: $id, status: $status) {\n id\n vehicleNumber\n type\n make\n model\n year\n capacity\n status\n currentLocation\n fuelLevel\n mileage\n createdAt\n updatedAt\n }\n }\n", d = "\n mutation AssignDriverVehicle($id: ID!, $vehicleId: ID) {\n assignDriverVehicle(id: $id, vehicleId: $vehicleId) {\n id\n userId\n firstName\n lastName\n employeeId\n licenseNumber\n licenseClass\n licenseExpiry\n status\n currentLocation\n rating\n vehicleId\n createdAt\n }\n }\n", f = "\n mutation UpdateDriverStatus($id: ID!, $status: DriverStatus!) {\n updateDriverStatus(id: $id, status: $status) {\n id\n userId\n firstName\n lastName\n employeeId\n licenseNumber\n licenseClass\n licenseExpiry\n status\n currentLocation\n rating\n vehicleId\n createdAt\n }\n }\n", p = "\n mutation CreateVehicle($input: CreateVehicleInput!) {\n createVehicle(input: $input) {\n id\n vehicleNumber\n type\n make\n model\n year\n capacity\n status\n currentLocation\n fuelLevel\n mileage\n createdAt\n updatedAt\n }\n }\n", m = "\n mutation CreateDriver($input: CreateDriverInput!) {\n createDriver(input: $input) {\n id\n userId\n firstName\n lastName\n employeeId\n licenseNumber\n licenseClass\n licenseExpiry\n status\n currentLocation\n rating\n vehicleId\n createdAt\n }\n }\n", h = "\n query GetFleetStats {\n fleetStats {\n totalVehicles\n activeVehicles\n inTransitVehicles\n maintenanceVehicles\n totalDrivers\n availableDrivers\n onDeliveryDrivers\n avgDriverRating\n }\n }\n";
5
+ function g(e) {
6
6
  switch (e) {
7
7
  case "ACTIVE": return "available";
8
8
  case "IN_TRANSIT": return "assigned";
@@ -10,7 +10,7 @@ function m(e) {
10
10
  default: return "out_of_service";
11
11
  }
12
12
  }
13
- function h(e) {
13
+ function _(e) {
14
14
  switch (e) {
15
15
  case "available": return "ACTIVE";
16
16
  case "assigned": return "IN_TRANSIT";
@@ -18,7 +18,7 @@ function h(e) {
18
18
  default: return "INACTIVE";
19
19
  }
20
20
  }
21
- function g(e) {
21
+ function v(e) {
22
22
  switch (e) {
23
23
  case "AVAILABLE": return "available";
24
24
  case "ON_DELIVERY": return "busy";
@@ -26,7 +26,7 @@ function g(e) {
26
26
  default: return "offline";
27
27
  }
28
28
  }
29
- function _(e) {
29
+ function y(e) {
30
30
  switch (e) {
31
31
  case "available": return "AVAILABLE";
32
32
  case "busy": return "ON_DELIVERY";
@@ -34,7 +34,7 @@ function _(e) {
34
34
  default: return "OFF_DUTY";
35
35
  }
36
36
  }
37
- function v(e) {
37
+ function b(e) {
38
38
  return {
39
39
  id: e.id,
40
40
  vehicleNumber: e.vehicleNumber,
@@ -47,7 +47,7 @@ function v(e) {
47
47
  volume: 0,
48
48
  ...e.capacity ?? {}
49
49
  },
50
- status: m(e.status),
50
+ status: g(e.status),
51
51
  driverId: void 0,
52
52
  currentLocation: e.currentLocation ? {
53
53
  latitude: Number(e.currentLocation.latitude ?? 0),
@@ -63,7 +63,7 @@ function v(e) {
63
63
  createdAt: new Date(e.createdAt)
64
64
  };
65
65
  }
66
- function y(e) {
66
+ function x(e) {
67
67
  return {
68
68
  id: e.id,
69
69
  userId: e.userId ?? e.id,
@@ -74,7 +74,7 @@ function y(e) {
74
74
  licenseExpiry: e.licenseExpiry ? new Date(e.licenseExpiry) : /* @__PURE__ */ new Date(),
75
75
  vehicleIds: e.vehicleId ? [e.vehicleId] : [],
76
76
  assignedVehicle: e.vehicleId ?? void 0,
77
- status: g(e.status),
77
+ status: v(e.status),
78
78
  currentLocation: e.currentLocation ? {
79
79
  latitude: Number(e.currentLocation.latitude ?? 0),
80
80
  longitude: Number(e.currentLocation.longitude ?? 0),
@@ -128,7 +128,7 @@ function y(e) {
128
128
  createdAt: new Date(e.createdAt)
129
129
  };
130
130
  }
131
- function b() {
131
+ function S() {
132
132
  let { apiGatewayUrl: e, authToken: n, workspaceToken: r, workspaceId: a, tenantId: o, currentUser: s } = t();
133
133
  return i(() => ({
134
134
  apiGatewayUrl: e,
@@ -146,18 +146,18 @@ function b() {
146
146
  s?.id
147
147
  ]);
148
148
  }
149
- function x(t = {}) {
149
+ function C(t = {}) {
150
150
  let { filters: c } = t, l = i(() => c, [
151
151
  c?.driverId,
152
152
  c?.status,
153
153
  c?.vehicleType
154
- ]), u = b(), [d, f] = a([]), [p, m] = a([]), [g, _] = a(!1), [x, S] = a(null), C = n(async () => {
155
- _(!0), S(null);
154
+ ]), u = S(), [d, f] = a([]), [h, g] = a([]), [v, y] = a(!1), [C, w] = a(null), T = n(async () => {
155
+ y(!0), w(null);
156
156
  try {
157
157
  let [t, n] = await Promise.all([e(u, o, {
158
158
  filter: {
159
159
  type: l?.vehicleType?.toUpperCase(),
160
- status: l?.status ? h(l.status) : void 0
160
+ status: l?.status ? _(l.status) : void 0
161
161
  },
162
162
  pagination: {
163
163
  limit: 200,
@@ -170,37 +170,58 @@ function x(t = {}) {
170
170
  offset: 0
171
171
  }
172
172
  })]);
173
- f(t.vehicles.map(v)), m(n.drivers.map(y));
173
+ f(t.vehicles.map(b)), g(n.drivers.map(x));
174
174
  } catch (e) {
175
- S(e instanceof Error ? e : /* @__PURE__ */ Error("Failed to load fleet data"));
175
+ w(e instanceof Error ? e : /* @__PURE__ */ Error("Failed to load fleet data"));
176
176
  } finally {
177
- _(!1);
177
+ y(!1);
178
178
  }
179
179
  }, [l, u]);
180
180
  r(() => {
181
- C();
182
- }, [C]);
183
- let w = n(() => {
184
- C();
185
- }, [C]);
181
+ T();
182
+ }, [T]);
183
+ let E = n(() => {
184
+ T();
185
+ }, [T]), D = n(async (t) => {
186
+ let n = b((await e(u, p, { input: {
187
+ vehicleNumber: t.vehicleNumber,
188
+ type: t.type,
189
+ make: t.make,
190
+ model: t.model,
191
+ licensePlate: t.licensePlate
192
+ } })).createVehicle);
193
+ return f((e) => [n, ...e]), n;
194
+ }, [u]), O = n(async (t) => {
195
+ let n = x((await e(u, m, { input: {
196
+ employeeId: t.employeeId,
197
+ firstName: t.firstName,
198
+ lastName: t.lastName,
199
+ email: t.email,
200
+ phone: t.phone,
201
+ licenseNumber: t.licenseNumber
202
+ } })).createDriver);
203
+ return g((e) => [n, ...e]), n;
204
+ }, [u]);
186
205
  return {
187
206
  vehicles: d,
188
- drivers: p,
207
+ drivers: h,
189
208
  totalVehicles: d.length,
190
- totalDrivers: p.length,
191
- isLoading: g,
192
- error: x,
193
- refetch: w
209
+ totalDrivers: h.length,
210
+ isLoading: v,
211
+ error: C,
212
+ refetch: E,
213
+ createVehicle: D,
214
+ createDriver: O
194
215
  };
195
216
  }
196
- function S() {
197
- let t = b(), [i, s] = a([]), [c, l] = a(!1), [f, p] = a(null), m = n(async () => {
217
+ function w() {
218
+ let t = S(), [i, s] = a([]), [c, l] = a(!1), [f, p] = a(null), m = n(async () => {
198
219
  l(!0), p(null);
199
220
  try {
200
221
  s((await e(t, o, { pagination: {
201
222
  limit: 200,
202
223
  offset: 0
203
- } })).vehicles.map(v));
224
+ } })).vehicles.map(b));
204
225
  } catch (e) {
205
226
  p(e instanceof Error ? e : /* @__PURE__ */ Error("Failed to load vehicles"));
206
227
  } finally {
@@ -210,15 +231,15 @@ function S() {
210
231
  r(() => {
211
232
  m();
212
233
  }, [m]);
213
- let g = n(() => {
234
+ let h = n(() => {
214
235
  m();
215
- }, [m]), _ = n(async (n, r) => {
216
- let i = v((await e(t, u, {
236
+ }, [m]), g = n(async (n, r) => {
237
+ let i = b((await e(t, u, {
217
238
  id: n,
218
- status: h(r)
239
+ status: _(r)
219
240
  })).updateVehicleStatus);
220
241
  return s((e) => e.map((e) => e.id === n ? i : e)), i;
221
- }, [t]), y = n(async (n, r) => {
242
+ }, [t]), v = n(async (n, r) => {
222
243
  await e(t, d, {
223
244
  id: r,
224
245
  vehicleId: n
@@ -237,13 +258,13 @@ function S() {
237
258
  totalVehicles: i.length,
238
259
  isLoading: c,
239
260
  error: f,
240
- refetch: g,
241
- updateVehicleStatus: _,
242
- assignDriver: y
261
+ refetch: h,
262
+ updateVehicleStatus: g,
263
+ assignDriver: v
243
264
  };
244
265
  }
245
- function C(t) {
246
- let i = b(), [o, s] = a(null), [l, u] = a(!1), [d, f] = a(null), p = n(async () => {
266
+ function T(t) {
267
+ let i = S(), [o, s] = a(null), [l, u] = a(!1), [d, f] = a(null), p = n(async () => {
247
268
  if (!t) {
248
269
  s(null);
249
270
  return;
@@ -251,7 +272,7 @@ function C(t) {
251
272
  u(!0), f(null);
252
273
  try {
253
274
  let n = await e(i, c, { id: t });
254
- s(n.vehicle ? v(n.vehicle) : null);
275
+ s(n.vehicle ? b(n.vehicle) : null);
255
276
  } catch (e) {
256
277
  f(e instanceof Error ? e : /* @__PURE__ */ Error("Failed to load vehicle"));
257
278
  } finally {
@@ -269,14 +290,14 @@ function C(t) {
269
290
  }, [p])
270
291
  };
271
292
  }
272
- function w() {
273
- let t = b(), [i, o] = a([]), [c, l] = a(!1), [u, p] = a(null), m = n(async () => {
293
+ function E() {
294
+ let t = S(), [i, o] = a([]), [c, l] = a(!1), [u, p] = a(null), m = n(async () => {
274
295
  l(!0), p(null);
275
296
  try {
276
297
  o((await e(t, s, { pagination: {
277
298
  limit: 200,
278
299
  offset: 0
279
- } })).drivers.map(y));
300
+ } })).drivers.map(x));
280
301
  } catch (e) {
281
302
  p(e instanceof Error ? e : /* @__PURE__ */ Error("Failed to load drivers"));
282
303
  } finally {
@@ -289,13 +310,13 @@ function w() {
289
310
  let h = n(() => {
290
311
  m();
291
312
  }, [m]), g = n(async (n, r) => {
292
- let i = y((await e(t, f, {
313
+ let i = x((await e(t, f, {
293
314
  id: n,
294
- status: _(r)
315
+ status: y(r)
295
316
  })).updateDriverStatus);
296
317
  return o((e) => e.map((e) => e.id === n ? i : e)), i;
297
- }, [t]), v = n(async (n, r) => {
298
- let i = y((await e(t, d, {
318
+ }, [t]), _ = n(async (n, r) => {
319
+ let i = x((await e(t, d, {
299
320
  id: n,
300
321
  vehicleId: r
301
322
  })).assignDriverVehicle);
@@ -308,11 +329,11 @@ function w() {
308
329
  error: u,
309
330
  refetch: h,
310
331
  updateDriverStatus: g,
311
- assignVehicle: v
332
+ assignVehicle: _
312
333
  };
313
334
  }
314
- function T(t) {
315
- let i = b(), [o, s] = a(null), [c, u] = a(!1), [d, f] = a(null), p = n(async () => {
335
+ function D(t) {
336
+ let i = S(), [o, s] = a(null), [c, u] = a(!1), [d, f] = a(null), p = n(async () => {
316
337
  if (!t) {
317
338
  s(null);
318
339
  return;
@@ -320,7 +341,7 @@ function T(t) {
320
341
  u(!0), f(null);
321
342
  try {
322
343
  let n = await e(i, l, { id: t });
323
- s(n.driver ? y(n.driver) : null);
344
+ s(n.driver ? x(n.driver) : null);
324
345
  } catch (e) {
325
346
  f(e instanceof Error ? e : /* @__PURE__ */ Error("Failed to load driver"));
326
347
  } finally {
@@ -338,8 +359,8 @@ function T(t) {
338
359
  }, [p])
339
360
  };
340
361
  }
341
- function E() {
342
- let t = b(), [i, o] = a({
362
+ function O() {
363
+ let t = S(), [i, o] = a({
343
364
  totalVehicles: 0,
344
365
  totalDrivers: 0,
345
366
  vehiclesByStatus: {
@@ -360,7 +381,7 @@ function E() {
360
381
  }), [s, c] = a(!1), [l, u] = a(null), d = n(async () => {
361
382
  c(!0), u(null);
362
383
  try {
363
- let n = await e(t, p);
384
+ let n = await e(t, h);
364
385
  o({
365
386
  totalVehicles: n.fleetStats.totalVehicles,
366
387
  totalDrivers: n.fleetStats.totalDrivers,
@@ -398,4 +419,4 @@ function E() {
398
419
  };
399
420
  }
400
421
  //#endregion
401
- export { C as a, E as i, w as n, S as o, x as r, T as t };
422
+ export { T as a, O as i, E as n, w as o, C as r, D as t };
@@ -1,8 +1,8 @@
1
1
  import { it as e, ot as t } from "./PageLayout-D4LDHJJq.js";
2
2
  import { useCallback as n, useEffect as r, useMemo as i, useState as a } from "react";
3
3
  //#region src/movethewheels/hooks/useInventory.ts
4
- var o = "\n query ListInventoryItems($filter: InventoryFilterInput, $pagination: PaginationInput) {\n inventoryItems(filter: $filter, pagination: $pagination) {\n id\n productId\n warehouseId\n onHand\n available\n allocated\n damaged\n reorderPoint\n createdAt\n updatedAt\n }\n }\n", s = "\n query ListProducts($filter: ProductFilterInput, $pagination: PaginationInput) {\n products(filter: $filter, pagination: $pagination) {\n id\n sku\n name\n description\n category\n brand\n dimensions\n weight\n value\n hazardous\n fragile\n temperatureControlled\n createdAt\n updatedAt\n }\n }\n", c = "\n query ListWarehouses($filter: WarehouseFilterInput, $pagination: PaginationInput) {\n warehouses(filter: $filter, pagination: $pagination) {\n id\n name\n code\n type\n address\n totalCapacity\n usedCapacity\n createdAt\n }\n }\n", l = "\n query GetProduct($id: ID!) {\n product(id: $id) {\n id\n sku\n name\n description\n category\n brand\n dimensions\n weight\n value\n hazardous\n fragile\n temperatureControlled\n createdAt\n updatedAt\n }\n }\n", u = "\n query GetWarehouse($id: ID!) {\n warehouse(id: $id) {\n id\n name\n code\n type\n address\n totalCapacity\n usedCapacity\n createdAt\n }\n }\n", d = "\n query GetInventoryStats {\n inventoryStats {\n totalOnHand\n totalAvailable\n totalAllocated\n totalDamaged\n lowStockCount\n }\n }\n", f = "\n mutation AdjustInventoryStock($input: AdjustInventoryStockInput!) {\n adjustInventoryStock(input: $input) {\n id\n productId\n warehouseId\n onHand\n available\n allocated\n damaged\n reorderPoint\n createdAt\n updatedAt\n }\n }\n";
5
- function p(e) {
4
+ var o = "\n query ListInventoryItems($filter: InventoryFilterInput, $pagination: PaginationInput) {\n inventoryItems(filter: $filter, pagination: $pagination) {\n id\n productId\n warehouseId\n onHand\n available\n allocated\n damaged\n reorderPoint\n createdAt\n updatedAt\n }\n }\n", s = "\n query ListProducts($filter: ProductFilterInput, $pagination: PaginationInput) {\n products(filter: $filter, pagination: $pagination) {\n id\n sku\n name\n description\n category\n brand\n dimensions\n weight\n value\n hazardous\n fragile\n temperatureControlled\n createdAt\n updatedAt\n }\n }\n", c = "\n query ListWarehouses($filter: WarehouseFilterInput, $pagination: PaginationInput) {\n warehouses(filter: $filter, pagination: $pagination) {\n id\n name\n code\n type\n address\n totalCapacity\n usedCapacity\n createdAt\n }\n }\n", l = "\n query GetProduct($id: ID!) {\n product(id: $id) {\n id\n sku\n name\n description\n category\n brand\n dimensions\n weight\n value\n hazardous\n fragile\n temperatureControlled\n createdAt\n updatedAt\n }\n }\n", u = "\n query GetWarehouse($id: ID!) {\n warehouse(id: $id) {\n id\n name\n code\n type\n address\n totalCapacity\n usedCapacity\n createdAt\n }\n }\n", d = "\n query GetInventoryStats {\n inventoryStats {\n totalOnHand\n totalAvailable\n totalAllocated\n totalDamaged\n lowStockCount\n }\n }\n", f = "\n mutation CreateProduct($input: CreateProductInput!) {\n createProduct(input: $input) {\n id\n sku\n name\n description\n category\n brand\n dimensions\n weight\n value\n hazardous\n fragile\n temperatureControlled\n createdAt\n updatedAt\n }\n }\n", p = "\n mutation CreateWarehouse($input: CreateWarehouseInput!) {\n createWarehouse(input: $input) {\n id\n name\n code\n type\n address\n totalCapacity\n usedCapacity\n createdAt\n }\n }\n", m = "\n mutation AdjustInventoryStock($input: AdjustInventoryStockInput!) {\n adjustInventoryStock(input: $input) {\n id\n productId\n warehouseId\n onHand\n available\n allocated\n damaged\n reorderPoint\n createdAt\n updatedAt\n }\n }\n";
5
+ function h(e) {
6
6
  return {
7
7
  id: e.id,
8
8
  sku: e.sku,
@@ -29,7 +29,7 @@ function p(e) {
29
29
  updatedAt: new Date(e.updatedAt)
30
30
  };
31
31
  }
32
- function m(e) {
32
+ function g(e) {
33
33
  let t = e.totalCapacity ?? 0, n = e.usedCapacity ?? 0;
34
34
  return {
35
35
  id: e.id,
@@ -69,7 +69,7 @@ function m(e) {
69
69
  createdAt: new Date(e.createdAt)
70
70
  };
71
71
  }
72
- function h(e) {
72
+ function _(e) {
73
73
  return {
74
74
  id: e.id,
75
75
  productId: e.productId,
@@ -92,7 +92,7 @@ function h(e) {
92
92
  updatedAt: new Date(e.updatedAt)
93
93
  };
94
94
  }
95
- function g() {
95
+ function v() {
96
96
  let { apiGatewayUrl: e, authToken: n, workspaceToken: r, workspaceId: a, tenantId: o, currentUser: s } = t();
97
97
  return i(() => ({
98
98
  apiGatewayUrl: e,
@@ -110,13 +110,13 @@ function g() {
110
110
  s?.id
111
111
  ]);
112
112
  }
113
- function _(t = {}) {
113
+ function y(t = {}) {
114
114
  let { filters: l } = t, u = i(() => l, [
115
115
  l?.lowStock,
116
116
  l?.productId,
117
117
  l?.warehouseId
118
- ]), d = g(), [_, v] = a([]), [y, b] = a([]), [x, S] = a([]), [C, w] = a(!1), [T, E] = a(null), D = n(async () => {
119
- w(!0), E(null);
118
+ ]), d = v(), [y, b] = a([]), [x, S] = a([]), [C, w] = a([]), [T, E] = a(!1), [D, O] = a(null), k = n(async () => {
119
+ E(!0), O(null);
120
120
  try {
121
121
  let [t, n, r] = await Promise.all([
122
122
  e(d, o, {
@@ -137,57 +137,77 @@ function _(t = {}) {
137
137
  limit: 500,
138
138
  offset: 0
139
139
  } })
140
- ]), i = t.inventoryItems.map(h);
141
- u?.lowStock && (i = i.filter((e) => e.availableQuantity <= e.reorderLevel)), v(i), b(n.products.map(p)), S(r.warehouses.map(m));
140
+ ]), i = t.inventoryItems.map(_);
141
+ u?.lowStock && (i = i.filter((e) => e.availableQuantity <= e.reorderLevel)), b(i), S(n.products.map(h)), w(r.warehouses.map(g));
142
142
  } catch (e) {
143
- E(e instanceof Error ? e : /* @__PURE__ */ Error("Failed to load inventory data"));
143
+ O(e instanceof Error ? e : /* @__PURE__ */ Error("Failed to load inventory data"));
144
144
  } finally {
145
- w(!1);
145
+ E(!1);
146
146
  }
147
147
  }, [u, d]);
148
148
  r(() => {
149
- D();
150
- }, [D]);
151
- let O = n(() => {
152
- D();
153
- }, [D]), k = n(async (t, n, r) => {
154
- let i = _.find((e) => e.id === t);
149
+ k();
150
+ }, [k]);
151
+ let A = n(() => {
152
+ k();
153
+ }, [k]), j = n(async (t, n, r) => {
154
+ let i = y.find((e) => e.id === t);
155
155
  if (!i) throw Error("Inventory item not found");
156
- let a = h((await e(d, f, { input: {
156
+ let a = _((await e(d, m, { input: {
157
157
  id: t,
158
158
  onHand: i.quantity + n,
159
159
  available: i.availableQuantity + n,
160
160
  allocated: i.reservedQuantity,
161
161
  damaged: 0
162
162
  } })).adjustInventoryStock);
163
- return v((e) => e.map((e) => e.id === t ? a : e)), a;
164
- }, [d, _]), A = n(async (e, t, n, r) => {
165
- let i = _.find((t) => t.warehouseId === e && t.productId === n);
163
+ return b((e) => e.map((e) => e.id === t ? a : e)), a;
164
+ }, [d, y]), M = n(async (e, t, n, r) => {
165
+ let i = y.find((t) => t.warehouseId === e && t.productId === n);
166
166
  if (!i) throw Error("Source inventory not found");
167
- await k(i.id, -Math.abs(r), "transfer out");
168
- let a = _.find((e) => e.warehouseId === t && e.productId === n);
169
- a && await k(a.id, Math.abs(r), "transfer in");
170
- }, [_, k]);
167
+ await j(i.id, -Math.abs(r), "transfer out");
168
+ let a = y.find((e) => e.warehouseId === t && e.productId === n);
169
+ a && await j(a.id, Math.abs(r), "transfer in");
170
+ }, [y, j]), N = n(async (t) => {
171
+ let n = h((await e(d, f, { input: {
172
+ name: t.name,
173
+ sku: t.sku,
174
+ category: t.category,
175
+ brand: t.brand,
176
+ weight: t.weight
177
+ } })).createProduct);
178
+ return S((e) => [n, ...e]), n;
179
+ }, [d]), P = n(async (t) => {
180
+ let n = g((await e(d, p, { input: {
181
+ code: t.code,
182
+ name: t.name,
183
+ type: t.type,
184
+ address: t.address,
185
+ totalCapacity: t.totalCapacity
186
+ } })).createWarehouse);
187
+ return w((e) => [n, ...e]), n;
188
+ }, [d]);
171
189
  return {
172
- inventory: _,
173
- products: y,
174
- warehouses: x,
175
- totalItems: _.length,
176
- isLoading: C,
177
- error: T,
178
- refetch: O,
179
- updateStock: k,
180
- transferStock: A
190
+ inventory: y,
191
+ products: x,
192
+ warehouses: C,
193
+ totalItems: y.length,
194
+ isLoading: T,
195
+ error: D,
196
+ refetch: A,
197
+ updateStock: j,
198
+ transferStock: M,
199
+ createProduct: N,
200
+ createWarehouse: P
181
201
  };
182
202
  }
183
- function v() {
184
- let t = g(), [i, o] = a([]), [c, l] = a(!1), [u, d] = a(null), f = n(async () => {
203
+ function b() {
204
+ let t = v(), [i, o] = a([]), [c, l] = a(!1), [u, d] = a(null), f = n(async () => {
185
205
  l(!0), d(null);
186
206
  try {
187
207
  o((await e(t, s, { pagination: {
188
208
  limit: 500,
189
209
  offset: 0
190
- } })).products.map(p));
210
+ } })).products.map(h));
191
211
  } catch (e) {
192
212
  d(e instanceof Error ? e : /* @__PURE__ */ Error("Failed to load products"));
193
213
  } finally {
@@ -204,8 +224,8 @@ function v() {
204
224
  refetch: () => void f()
205
225
  };
206
226
  }
207
- function y(t) {
208
- let i = g(), [o, s] = a(null), [c, u] = a(!1), [d, f] = a(null), m = n(async () => {
227
+ function x(t) {
228
+ let i = v(), [o, s] = a(null), [c, u] = a(!1), [d, f] = a(null), p = n(async () => {
209
229
  if (!t) {
210
230
  s(null);
211
231
  return;
@@ -213,7 +233,7 @@ function y(t) {
213
233
  u(!0), f(null);
214
234
  try {
215
235
  let n = await e(i, l, { id: t });
216
- s(n.product ? p(n.product) : null);
236
+ s(n.product ? h(n.product) : null);
217
237
  } catch (e) {
218
238
  f(e instanceof Error ? e : /* @__PURE__ */ Error("Failed to load product"));
219
239
  } finally {
@@ -221,22 +241,22 @@ function y(t) {
221
241
  }
222
242
  }, [i, t]);
223
243
  return r(() => {
224
- m();
225
- }, [m]), {
244
+ p();
245
+ }, [p]), {
226
246
  product: o,
227
247
  isLoading: c,
228
248
  error: d,
229
- refetch: () => void m()
249
+ refetch: () => void p()
230
250
  };
231
251
  }
232
- function b() {
233
- let t = g(), [i, o] = a([]), [s, l] = a(!1), [u, d] = a(null), f = n(async () => {
252
+ function S() {
253
+ let t = v(), [i, o] = a([]), [s, l] = a(!1), [u, d] = a(null), f = n(async () => {
234
254
  l(!0), d(null);
235
255
  try {
236
256
  o((await e(t, c, { pagination: {
237
257
  limit: 500,
238
258
  offset: 0
239
- } })).warehouses.map(m));
259
+ } })).warehouses.map(g));
240
260
  } catch (e) {
241
261
  d(e instanceof Error ? e : /* @__PURE__ */ Error("Failed to load warehouses"));
242
262
  } finally {
@@ -253,8 +273,8 @@ function b() {
253
273
  refetch: () => void f()
254
274
  };
255
275
  }
256
- function x(t) {
257
- let i = g(), [o, s] = a(null), [c, l] = a(!1), [d, f] = a(null), p = n(async () => {
276
+ function C(t) {
277
+ let i = v(), [o, s] = a(null), [c, l] = a(!1), [d, f] = a(null), p = n(async () => {
258
278
  if (!t) {
259
279
  s(null);
260
280
  return;
@@ -262,7 +282,7 @@ function x(t) {
262
282
  l(!0), f(null);
263
283
  try {
264
284
  let n = await e(i, u, { id: t });
265
- s(n.warehouse ? m(n.warehouse) : null);
285
+ s(n.warehouse ? g(n.warehouse) : null);
266
286
  } catch (e) {
267
287
  f(e instanceof Error ? e : /* @__PURE__ */ Error("Failed to load warehouse"));
268
288
  } finally {
@@ -278,8 +298,8 @@ function x(t) {
278
298
  refetch: () => void p()
279
299
  };
280
300
  }
281
- function S() {
282
- let t = g(), [n, i] = a({
301
+ function w() {
302
+ let t = v(), [n, i] = a({
283
303
  totalItems: 0,
284
304
  lowStockItems: 0,
285
305
  totalValue: 0,
@@ -320,4 +340,4 @@ function S() {
320
340
  };
321
341
  }
322
342
  //#endregion
323
- export { x as a, v as i, S as n, b as o, y as r, _ as t };
343
+ export { C as a, b as i, w as n, S as o, x as r, y as t };
@@ -1,6 +1,6 @@
1
1
  import { it as e, ot as t } from "./PageLayout-D4LDHJJq.js";
2
- import { r as n, t as r } from "./useOrders-D3UZVy8Y.js";
3
- import { a as i, n as a, o, t as s } from "./useFleet-DiAC-IiH.js";
2
+ import { r as n, t as r } from "./useOrders-Cfk1GLiq.js";
3
+ import { a as i, n as a, o, t as s } from "./useFleet-DKqXZ16m.js";
4
4
  import { useCallback as c, useEffect as l, useMemo as u, useState as d } from "react";
5
5
  //#region src/movethewheels/hooks/useTracking.ts
6
6
  var f = "\n query ListShipments($filter: ShipmentFilterInput, $pagination: PaginationInput) {\n shipments(filter: $filter, pagination: $pagination) {\n id\n shipmentNumber\n orderId\n status\n estimatedDelivery\n }\n }\n", p = "\n query GetShipment($id: ID!) {\n shipment(id: $id) {\n id\n shipmentNumber\n orderId\n status\n estimatedDelivery\n trackingEvents {\n id\n shipmentId\n eventType\n location\n details\n timestamp\n }\n }\n }\n", m = "\n query GetOrderTracking($orderId: ID!) {\n orderTracking(orderId: $orderId) {\n id\n shipmentId\n eventType\n location\n details\n timestamp\n }\n }\n", h = "\n query GetActiveDeliveries {\n activeDeliveries {\n id\n shipmentNumber\n orderId\n status\n estimatedDelivery\n }\n }\n", g = "\n query GetTrackingAlerts {\n trackingAlerts {\n shipmentId\n shipmentNumber\n alertType\n message\n }\n }\n";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@burdenoff/microfe-movethewheels",
3
- "version": "2026.703.1",
3
+ "version": "2026.703.3",
4
4
  "description": "Burdenoff MoveTheWheels Microfrontend - Logistics & Supply Chain Management Platform",
5
5
  "type": "module",
6
6
  "files": [
@@ -93,15 +93,19 @@ export function MoveTheWheelsRoutes() {
93
93
  {/* Fleet */}
94
94
  <Route path="fleet" element={<FleetPage />} />
95
95
  <Route path="fleet/vehicles" element={<VehiclesPage />} />
96
+ <Route path="fleet/vehicles/new" element={<VehicleDetailsPage />} />
96
97
  <Route path="fleet/vehicles/:vehicleId" element={<VehicleDetailsPage />} />
97
98
  <Route path="fleet/drivers" element={<DriversPage />} />
99
+ <Route path="fleet/drivers/new" element={<DriverDetailsPage />} />
98
100
  <Route path="fleet/drivers/:driverId" element={<DriverDetailsPage />} />
99
101
 
100
102
  {/* Inventory */}
101
103
  <Route path="inventory" element={<InventoryPage />} />
102
104
  <Route path="inventory/products" element={<ProductsPage />} />
105
+ <Route path="inventory/products/new" element={<ProductDetailsPage />} />
103
106
  <Route path="inventory/products/:productId" element={<ProductDetailsPage />} />
104
107
  <Route path="inventory/warehouses" element={<WarehousesPage />} />
108
+ <Route path="inventory/warehouses/new" element={<WarehouseDetailsPage />} />
105
109
  <Route path="inventory/warehouses/:warehouseId" element={<WarehouseDetailsPage />} />
106
110
 
107
111
  {/* Customers */}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * FormError — inline error banner for create/edit forms.
3
+ *
4
+ * Renders nothing when there is no message, so it can be dropped into a form
5
+ * unconditionally. Uses semantic status tokens so it themes correctly.
6
+ */
7
+
8
+ import { AlertCircle } from 'lucide-react';
9
+
10
+ interface FormErrorProps {
11
+ message?: string | null;
12
+ }
13
+
14
+ export function FormError({ message }: FormErrorProps) {
15
+ if (!message) return null;
16
+ return (
17
+ <div
18
+ role="alert"
19
+ className="flex items-start gap-2 rounded-lg border border-status-error-border bg-status-error-bg-subtle px-4 py-3 text-sm text-status-error-text"
20
+ >
21
+ <AlertCircle size={18} className="mt-0.5 shrink-0" />
22
+ <span>{message}</span>
23
+ </div>
24
+ );
25
+ }