@burdenoff/microfe-movethewheels 2026.703.3 → 2026.703.5

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 (173) hide show
  1. package/dist/{AIAssistantPage-C3cPsWt-.js → AIAssistantPage-D2gaEL1U.js} +16 -15
  2. package/dist/AnalyticsPage-DZMlEoBi.js +194 -0
  3. package/dist/CreateOrderPage-CWHx8yys.js +490 -0
  4. package/dist/CustomerDetailsPage-nR4oZ_ju.js +615 -0
  5. package/dist/CustomersPage-Bbvwvn8k.js +205 -0
  6. package/dist/DashboardPage-DrEhNf7N.js +542 -0
  7. package/dist/DataTable-CqMUD4er.js +340 -0
  8. package/dist/DocumentsCard-edDkgnJj.js +169 -0
  9. package/dist/DriverDetailsPage-whEMOWs9.js +490 -0
  10. package/dist/DriversPage-CHF2ZEzd.js +221 -0
  11. package/dist/FinancePage-Dn9GrW-1.js +175 -0
  12. package/dist/{FleetPage-DqkFi3s3.js → FleetPage-CrtGPy-p.js} +36 -35
  13. package/dist/{FormError-BlOjnXOq.js → FormError-BKcb_wT-.js} +1 -1
  14. package/dist/{ImportExportPage-DKJRCezl.js → ImportExportPage-WYdwZomZ.js} +52 -72
  15. package/dist/InventoryPage-l5A1f753.js +259 -0
  16. package/dist/LiveTrackingPage-DhEaNKZ4.js +429 -0
  17. package/dist/MarketplacePage-B9RYOb1Y.js +426 -0
  18. package/dist/MetricCard-y3bWHKUQ.js +191 -0
  19. package/dist/Notice-DOO-tjpV.js +46 -0
  20. package/dist/OrderDetailsPage-CwYHwk1K.js +584 -0
  21. package/dist/OrdersListPage-DhZJoQeI.js +386 -0
  22. package/dist/{PageLayout-D4LDHJJq.js → PageLayout-BniRJaQ6.js} +1 -1
  23. package/dist/{ProductDetailsPage-C9uOiYLp.js → ProductDetailsPage-1Gm9JKy0.js} +56 -56
  24. package/dist/ProductsPage-C8sn-1tN.js +186 -0
  25. package/dist/ReportsPage-D1tb0dcz.js +377 -0
  26. package/dist/RouteDetailsPage-CkMyR9b_.js +610 -0
  27. package/dist/{RoutesPage-DMfoicM1.js → RoutesPage-QkENzsE5.js} +58 -47
  28. package/dist/{SettingsPage-Bn-v0mbQ.js → SettingsPage-DV3_tU_X.js} +16 -38
  29. package/dist/Sparkline-K2RMJ58u.js +16729 -0
  30. package/dist/{StatusBadge-BZurYHMy.js → StatusBadge-BNHXYvZx.js} +7 -7
  31. package/dist/TrackingPage-BZrg4RCu.js +368 -0
  32. package/dist/VehicleDetailsPage-D-8XPZ2G.js +393 -0
  33. package/dist/VehiclesPage-D5BELbtM.js +184 -0
  34. package/dist/{WarehouseDetailsPage-L_6sWigM.js → WarehouseDetailsPage-Cmg-8Frn.js} +70 -70
  35. package/dist/WarehousesPage-C1Y1M867.js +182 -0
  36. package/dist/{arrow-left-n48Y-Wis.js → arrow-left-ClW4Isj7.js} +1 -1
  37. package/dist/arrow-right-CmKOmIkh.js +11 -0
  38. package/dist/arrow-up-BJijRLAZ.js +17 -0
  39. package/dist/{box-D9Pal4HM.js → box-BT3NsRQP.js} +1 -1
  40. package/dist/boxes-B_OGvQiW.js +54 -0
  41. package/dist/{chart-column-BFIJysDR.js → chart-column-DQTTdUPk.js} +1 -1
  42. package/dist/charts-Tj_PPTfA.js +2018 -0
  43. package/dist/chevron-left-B1rZyWWb.js +8 -0
  44. package/dist/{chevron-right-EMIIyyJ1.js → chevron-right-BIcwUJZq.js} +1 -1
  45. package/dist/chunk-BdsCSvBP.js +20 -0
  46. package/dist/{circle-alert-iY24lSlp.js → circle-alert-CNkuDNc6.js} +1 -1
  47. package/dist/circle-check-Cs1OVjtV.js +13 -0
  48. package/dist/{circle-check-big-w0TrLKMF.js → circle-check-big-C-p4eNwn.js} +1 -1
  49. package/dist/{clock-DJZtdl8u.js → clock-dRGG4rkF.js} +1 -1
  50. package/dist/{dollar-sign-CgKQRz_e.js → dollar-sign-B6RoYHHz.js} +1 -1
  51. package/dist/{download-DRXxoiQR.js → download-DP04iWTd.js} +1 -1
  52. package/dist/{file-text-DWWY6_f5.js → file-text-BuDx4hZp.js} +1 -1
  53. package/dist/{filter-DloLC2eE.js → filter-BD483_8g.js} +1 -1
  54. package/dist/{wrench-CANXWxF-.js → fuel-DLH1ag04.js} +3 -6
  55. package/dist/index.css +2 -0
  56. package/dist/index.js +150 -172
  57. package/dist/{map-CkJaULb2.js → map-DNQn9fyY.js} +1 -1
  58. package/dist/{map-pin-BGiCvyCs.js → map-pin-CqN1bbT1.js} +1 -1
  59. package/dist/mapMarkers-NCV9MRKR.js +28 -0
  60. package/dist/maps-yzLqiK_C.js +5070 -0
  61. package/dist/{navigation-D36prnAn.js → navigation-CgGUt2tR.js} +1 -1
  62. package/dist/{package-BChUzpJS.js → package-DmRF7iQD.js} +1 -1
  63. package/dist/{phone-Ac9s3mo_.js → phone-Cl32EXKW.js} +1 -1
  64. package/dist/{plus-Z76q-FZm.js → plus-DlANgOFx.js} +1 -1
  65. package/dist/{refresh-cw-DKt6f5T6.js → refresh-cw-rW59D4b7.js} +1 -1
  66. package/dist/route-CWjPrtAN.js +22 -0
  67. package/dist/{save-CojywNhG.js → save-UDlog7hg.js} +1 -1
  68. package/dist/{search-CDGefqb3.js → search-DNIG5Ck7.js} +1 -1
  69. package/dist/{square-pen-CopE9GmB.js → square-pen-BcfB3Grd.js} +1 -1
  70. package/dist/{star-nHlLjDKR.js → star-CVZHFwDx.js} +1 -1
  71. package/dist/{store-BR9Voi5E.js → store-bwnmCK9f.js} +1 -1
  72. package/dist/{trash-2-BKhar6Hs.js → trash-2-B80G12d4.js} +1 -1
  73. package/dist/{trending-up-Dohgd4t_.js → trending-up-CH4R4KOa.js} +1 -1
  74. package/dist/{triangle-alert-i-XQL9Rd.js → triangle-alert-CmS8AUU6.js} +1 -1
  75. package/dist/{truck-C0v_hbLR.js → truck-9rLDncav.js} +1 -1
  76. package/dist/upload-DanJY1Vo.js +21 -0
  77. package/dist/{useAssistant-D4v3oxD3.js → useAssistant-CnEwkTLm.js} +11 -28
  78. package/dist/{useCustomers-BmTNGxiI.js → useCustomers-ChJao1ET.js} +30 -27
  79. package/dist/{useFleet-DKqXZ16m.js → useFleet-g5Yri0G8.js} +82 -70
  80. package/dist/{useImportExport-DHr-SWSw.js → useImportExport-MYwIT3rE.js} +1 -1
  81. package/dist/{useInventory-DkyiVY_A.js → useInventory-BSOn-R1c.js} +84 -39
  82. package/dist/{useOrders-Cfk1GLiq.js → useOrders-BSiqo61w.js} +59 -48
  83. package/dist/{useReports-CTqZr-AB.js → useReports-fWESfsF9.js} +41 -35
  84. package/dist/{useRoutes-BQWO607N.js → useRoutes-zD8Yp323.js} +50 -42
  85. package/dist/{useSettings-CkDH_-gM.js → useSettings-B1lsWeZ1.js} +6 -6
  86. package/dist/{useTracking-B-va1kO3.js → useTracking-BKG0I2ln.js} +3 -3
  87. package/dist/{user-jyFU3lXk.js → user-DU51el3m.js} +1 -1
  88. package/dist/user-check-IMhk-qkX.js +20 -0
  89. package/dist/{users-DZ-ilS6B.js → users-B8KhJBGg.js} +1 -1
  90. package/dist/{warehouse-6m5kXMLu.js → warehouse-CcMMioeY.js} +1 -1
  91. package/dist/wrench-Dg-sgH2e.js +8 -0
  92. package/dist/x-C4ObLVEa.js +11 -0
  93. package/package.json +5 -1
  94. package/src/movethewheels/components/DataTable.tsx +252 -84
  95. package/src/movethewheels/components/DocumentsCard.tsx +102 -0
  96. package/src/movethewheels/components/GlassPanel.tsx +71 -0
  97. package/src/movethewheels/components/MetricCard.tsx +171 -73
  98. package/src/movethewheels/components/Notice.tsx +61 -0
  99. package/src/movethewheels/components/StatusBadge.tsx +7 -6
  100. package/src/movethewheels/components/charts/ChartShell.tsx +78 -0
  101. package/src/movethewheels/components/charts/Sparkline.tsx +85 -0
  102. package/src/movethewheels/components/charts/StatusDonut.tsx +115 -0
  103. package/src/movethewheels/components/charts/TrendChart.tsx +179 -0
  104. package/src/movethewheels/components/charts/VolumeBar.tsx +97 -0
  105. package/src/movethewheels/components/charts/chartTokens.ts +43 -0
  106. package/src/movethewheels/components/charts/index.ts +9 -0
  107. package/src/movethewheels/components/index.ts +51 -1
  108. package/src/movethewheels/components/maps/LogisticsMap.tsx +94 -0
  109. package/src/movethewheels/components/maps/MapCanvas.tsx +118 -0
  110. package/src/movethewheels/components/maps/RouteMap.tsx +71 -0
  111. package/src/movethewheels/components/maps/TrackingMap.tsx +102 -0
  112. package/src/movethewheels/components/maps/index.ts +16 -0
  113. package/src/movethewheels/components/maps/leaflet-setup.ts +124 -0
  114. package/src/movethewheels/components/maps/map-markers.css +121 -0
  115. package/src/movethewheels/hooks/index.ts +9 -0
  116. package/src/movethewheels/hooks/useAnalytics.ts +109 -4
  117. package/src/movethewheels/hooks/useCustomers.ts +11 -4
  118. package/src/movethewheels/hooks/useEntityDocuments.ts +132 -0
  119. package/src/movethewheels/hooks/useFleet.ts +26 -7
  120. package/src/movethewheels/hooks/useInventory.ts +70 -7
  121. package/src/movethewheels/hooks/useOrders.ts +32 -2
  122. package/src/movethewheels/hooks/useReports.ts +14 -4
  123. package/src/movethewheels/hooks/useRoutes.ts +20 -3
  124. package/src/movethewheels/pages/AnalyticsPage.tsx +93 -73
  125. package/src/movethewheels/pages/CreateOrderPage.tsx +48 -20
  126. package/src/movethewheels/pages/CustomerDetailsPage.tsx +239 -33
  127. package/src/movethewheels/pages/CustomersPage.tsx +53 -28
  128. package/src/movethewheels/pages/DashboardPage.tsx +238 -12
  129. package/src/movethewheels/pages/DriverDetailsPage.tsx +17 -31
  130. package/src/movethewheels/pages/DriversPage.tsx +59 -31
  131. package/src/movethewheels/pages/FinancePage.tsx +103 -82
  132. package/src/movethewheels/pages/InventoryPage.tsx +15 -3
  133. package/src/movethewheels/pages/LiveTrackingPage.tsx +124 -16
  134. package/src/movethewheels/pages/MarketplacePage.tsx +265 -50
  135. package/src/movethewheels/pages/OrderDetailsPage.tsx +214 -10
  136. package/src/movethewheels/pages/OrdersListPage.tsx +118 -47
  137. package/src/movethewheels/pages/ProductsPage.tsx +52 -28
  138. package/src/movethewheels/pages/ReportsPage.tsx +88 -4
  139. package/src/movethewheels/pages/RouteDetailsPage.tsx +119 -19
  140. package/src/movethewheels/pages/RoutesPage.tsx +22 -6
  141. package/src/movethewheels/pages/SettingsPage.tsx +5 -21
  142. package/src/movethewheels/pages/TrackingPage.tsx +76 -6
  143. package/src/movethewheels/pages/VehicleDetailsPage.tsx +4 -34
  144. package/src/movethewheels/pages/VehiclesPage.tsx +58 -27
  145. package/src/movethewheels/pages/WarehouseDetailsPage.tsx +1 -1
  146. package/src/movethewheels/pages/WarehousesPage.tsx +47 -36
  147. package/src/movethewheels/types/index.ts +9 -1
  148. package/src/movethewheels/utils/download.ts +62 -0
  149. package/src/movethewheels/utils/mapMarkers.ts +58 -0
  150. package/dist/AnalyticsPage-Dz6g2MvK.js +0 -215
  151. package/dist/CreateOrderPage-C5iwnjp4.js +0 -479
  152. package/dist/CustomerDetailsPage-B6nwFyLO.js +0 -406
  153. package/dist/CustomersPage-BKxMS1AV.js +0 -161
  154. package/dist/DashboardPage-BVjQi0EB.js +0 -387
  155. package/dist/DataTable-DmciIKKM.js +0 -249
  156. package/dist/DriverDetailsPage-CN3WQ0B9.js +0 -507
  157. package/dist/DriversPage-CH9rjQC-.js +0 -165
  158. package/dist/FinancePage-DEDykSOP.js +0 -158
  159. package/dist/InventoryPage-e0ze63iX.js +0 -253
  160. package/dist/LiveTrackingPage-DCX-K-LR.js +0 -379
  161. package/dist/MarketplacePage-CIQ97_zp.js +0 -247
  162. package/dist/MetricCard-BY0QrMD4.js +0 -146
  163. package/dist/OrderDetailsPage-DYiZ-9UK.js +0 -429
  164. package/dist/OrdersListPage-Cn90P1Xx.js +0 -307
  165. package/dist/ProductsPage-QJfHHpqB.js +0 -169
  166. package/dist/ReportsPage-Zp53q3_8.js +0 -284
  167. package/dist/RouteDetailsPage-DUStXSf9.js +0 -531
  168. package/dist/TrackingPage-W-jtdM3Y.js +0 -325
  169. package/dist/VehicleDetailsPage-Bceo5oz3.js +0 -410
  170. package/dist/VehiclesPage-ApKThYeG.js +0 -165
  171. package/dist/WarehousesPage-DCbXXXWE.js +0 -162
  172. package/dist/useAnalytics-DS8n0xgg.js +0 -297
  173. /package/dist/{formatters-CF2S2l1m.js → formatters-FWJDwTFv.js} +0 -0
@@ -1,4 +1,4 @@
1
- import { l as e, rt as t } from "./PageLayout-D4LDHJJq.js";
1
+ import { l as e, rt as t } from "./PageLayout-BniRJaQ6.js";
2
2
  import { jsx as n, jsxs as r } from "react/jsx-runtime";
3
3
  //#region src/movethewheels/constants/index.ts
4
4
  var i = {
@@ -75,10 +75,10 @@ function h({ status: i, type: a = "custom", customColors: o, size: s = "md", sho
75
75
  let g = i.replace(/_/g, " ").replace(/\b\w/g, (e) => e.toUpperCase());
76
76
  return /* @__PURE__ */ r(e, {
77
77
  variant: "outline",
78
- className: t("font-medium capitalize border-0 whitespace-nowrap inline-flex items-center", p.bg, p.text, m[s], f),
78
+ className: t("inline-flex items-center gap-1.5 whitespace-nowrap rounded-full border-0 font-medium capitalize", "ring-1 ring-inset ring-border-seam/60", p.bg, p.text, m[s], f),
79
79
  children: [c && /* @__PURE__ */ n("span", {
80
80
  "aria-hidden": "true",
81
- className: t("w-1.5 h-1.5 rounded-full mr-1.5 flex-shrink-0 motion-safe:animate-vc-glow-pulse", p.text.replace("text-", "bg-"))
81
+ className: t("h-1.5 w-1.5 flex-shrink-0 rounded-full motion-safe:animate-vc-glow-pulse", p.text.replace("text-", "bg-"))
82
82
  }), g]
83
83
  });
84
84
  }
@@ -86,7 +86,7 @@ function g({ priority: r, size: i = "md", className: a }) {
86
86
  let o = f[r];
87
87
  return /* @__PURE__ */ n(e, {
88
88
  variant: "outline",
89
- className: t("font-medium capitalize border-0 whitespace-nowrap", o.bg, o.text, m[i], a),
89
+ className: t("rounded-full font-medium capitalize border-0 whitespace-nowrap ring-1 ring-inset ring-border-seam/60", o.bg, o.text, m[i], a),
90
90
  children: r
91
91
  });
92
92
  }
@@ -103,7 +103,7 @@ function _({ type: r, size: i = "md", className: a }) {
103
103
  }[r];
104
104
  return /* @__PURE__ */ n(e, {
105
105
  variant: "outline",
106
- className: t("font-medium uppercase border-0 whitespace-nowrap", o.bg, o.text, m[i], a),
106
+ className: t("rounded-full font-medium uppercase border-0 whitespace-nowrap ring-1 ring-inset ring-border-seam/60", o.bg, o.text, m[i], a),
107
107
  children: r
108
108
  });
109
109
  }
@@ -128,14 +128,14 @@ function v({ status: r, size: i = "md", className: a }) {
128
128
  }[r];
129
129
  return /* @__PURE__ */ n(e, {
130
130
  variant: "outline",
131
- className: t("font-medium capitalize border-0 whitespace-nowrap", o.bg, o.text, m[i], a),
131
+ className: t("rounded-full font-medium capitalize border-0 whitespace-nowrap ring-1 ring-inset ring-border-seam/60", o.bg, o.text, m[i], a),
132
132
  children: r
133
133
  });
134
134
  }
135
135
  function y({ type: i, size: a = "md", className: o }) {
136
136
  return /* @__PURE__ */ r(e, {
137
137
  variant: "outline",
138
- className: t("font-medium capitalize whitespace-nowrap inline-flex items-center", m[a], o),
138
+ className: t("rounded-full font-medium capitalize whitespace-nowrap inline-flex items-center ring-1 ring-inset ring-border-seam/60", m[a], o),
139
139
  children: [/* @__PURE__ */ n("span", {
140
140
  className: "mr-1",
141
141
  children: {
@@ -0,0 +1,368 @@
1
+ import { A as e, d as t, f as n, g as r, h as i, i as a, lt as o, st as s, t as c, u as l } from "./PageLayout-BniRJaQ6.js";
2
+ import { t as u } from "./circle-alert-CNkuDNc6.js";
3
+ import { t as d } from "./circle-check-big-C-p4eNwn.js";
4
+ import { t as f } from "./clock-dRGG4rkF.js";
5
+ import { t as p } from "./map-pin-CqN1bbT1.js";
6
+ import { t as m } from "./package-DmRF7iQD.js";
7
+ import { t as h } from "./search-DNIG5Ck7.js";
8
+ import { t as g } from "./truck-9rLDncav.js";
9
+ import { i as _ } from "./useTracking-BKG0I2ln.js";
10
+ import { t as v } from "./maps-yzLqiK_C.js";
11
+ import { r as y } from "./StatusBadge-BNHXYvZx.js";
12
+ import { r as b, t as x } from "./formatters-FWJDwTFv.js";
13
+ import { n as S } from "./mapMarkers-NCV9MRKR.js";
14
+ import { useMemo as C, useState as w } from "react";
15
+ import { useSearchParams as T } from "react-router-dom";
16
+ import { jsx as E, jsxs as D } from "react/jsx-runtime";
17
+ import { EmphasisPanel as O, PagePurpose as k } from "@burdenoff/fe-libs/ui";
18
+ import { useI18n as A } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
19
+ //#region src/movethewheels/pages/TrackingPage.tsx
20
+ function j() {
21
+ let { t: j } = A(), M = (e, t) => {
22
+ let n = j(e);
23
+ return n === e ? t : n;
24
+ }, { basePath: N, navigate: P } = s(), [F] = T(), I = F.get("order") || "", [L, R] = w(I), [z, B] = w(I), { tracking: V, order: H, isLoading: U, error: W } = _(z || void 0), G = (e) => {
25
+ e.preventDefault(), B(L);
26
+ }, K = (e) => {
27
+ P && P(o(N, e));
28
+ }, q = C(() => {
29
+ if (!H) return null;
30
+ let e = S(H.pickupAddress), t = S(H.deliveryAddress), n = e ? {
31
+ ...e,
32
+ label: `Pickup · ${H.pickupAddress.city || "Origin"}`
33
+ } : null, r = t ? {
34
+ ...t,
35
+ label: `Delivery · ${H.deliveryAddress.city || "Destination"}`
36
+ } : null, i = H.timeline.map((e) => {
37
+ let t = e.location ? S(e.location) : null;
38
+ return t ? {
39
+ lat: t.lat,
40
+ lng: t.lng,
41
+ timestamp: new Date(e.timestamp).toISOString()
42
+ } : null;
43
+ }).filter((e) => e !== null), a = V ? S(V.currentLocation) : null, o = a ? {
44
+ ...a,
45
+ label: V?.currentLocation.address || "Current position"
46
+ } : null;
47
+ return {
48
+ origin: n,
49
+ destination: r,
50
+ trail: i,
51
+ current: o,
52
+ hasAny: !!(n || r || o || i.length > 0)
53
+ };
54
+ }, [H, V]);
55
+ return /* @__PURE__ */ D(a, {
56
+ title: M("movethewheels.tracking.title", "Track Shipment"),
57
+ subtitle: M("movethewheels.tracking.subtitle", "Enter a tracking number or order ID to track your shipment"),
58
+ icon: /* @__PURE__ */ E(p, { size: 24 }),
59
+ headerActions: /* @__PURE__ */ D(l, {
60
+ variant: "outline",
61
+ onClick: () => K("tracking/live"),
62
+ children: [/* @__PURE__ */ E(p, { size: 16 }), M("movethewheels.tracking.actions.liveMapView", "Live Map View")]
63
+ }),
64
+ children: [
65
+ /* @__PURE__ */ E(k, {
66
+ icon: /* @__PURE__ */ E(p, { size: 18 }),
67
+ children: M("movethewheels.tracking.purpose", "Look up any single shipment by its tracking number or order ID to see exactly where it is, its progress through pickup and delivery, the current location and any alerts — the same view you can share with a customer.")
68
+ }),
69
+ /* @__PURE__ */ E(t, { children: /* @__PURE__ */ E(n, {
70
+ className: "p-6",
71
+ children: /* @__PURE__ */ D("form", {
72
+ onSubmit: G,
73
+ className: "flex gap-4",
74
+ children: [/* @__PURE__ */ D("div", {
75
+ className: "flex-1 relative",
76
+ children: [/* @__PURE__ */ E(h, { className: "absolute left-3 top-1/2 -translate-y-1/2 w-5 h-5 text-text-secondary" }), /* @__PURE__ */ E(e, {
77
+ value: L,
78
+ onChange: (e) => R(e.target.value),
79
+ placeholder: M("movethewheels.tracking.search.placeholder", "Enter tracking number or order ID (e.g., order-1 or TRK123456789)"),
80
+ className: "pl-10 h-12 text-lg"
81
+ })]
82
+ }), /* @__PURE__ */ E(l, {
83
+ type: "submit",
84
+ size: "lg",
85
+ disabled: !L || U,
86
+ children: U ? M("movethewheels.tracking.search.searching", "Searching...") : M("movethewheels.tracking.search.track", "Track")
87
+ })]
88
+ })
89
+ }) }),
90
+ W && /* @__PURE__ */ E(t, {
91
+ className: "border-status-error-border",
92
+ children: /* @__PURE__ */ E(n, {
93
+ className: "p-6",
94
+ children: /* @__PURE__ */ D("div", {
95
+ className: "flex items-center gap-4",
96
+ children: [/* @__PURE__ */ E(u, { className: "w-8 h-8 text-status-error-text" }), /* @__PURE__ */ D("div", { children: [/* @__PURE__ */ E("p", {
97
+ className: "font-medium text-status-error-text",
98
+ children: M("movethewheels.tracking.error.title", "Unable to find shipment")
99
+ }), /* @__PURE__ */ E("p", {
100
+ className: "text-sm text-text-secondary",
101
+ children: M("movethewheels.tracking.error.description", "Please check the tracking number and try again")
102
+ })] })]
103
+ })
104
+ })
105
+ }),
106
+ !z && !W && /* @__PURE__ */ E(c, {
107
+ illustration: "onboarding",
108
+ title: M("movethewheels.tracking.empty.title", "Enter a tracking number"),
109
+ description: M("movethewheels.tracking.empty.description", "Use your tracking number or order ID to see the current status of your shipment")
110
+ }),
111
+ H && V && /* @__PURE__ */ D("div", {
112
+ className: "grid grid-cols-1 lg:grid-cols-3 gap-6",
113
+ children: [/* @__PURE__ */ D("div", {
114
+ className: "lg:col-span-2 space-y-6",
115
+ children: [
116
+ /* @__PURE__ */ D(O, { children: [/* @__PURE__ */ D("div", {
117
+ className: "flex items-center justify-between mb-4",
118
+ children: [/* @__PURE__ */ D("h2", {
119
+ className: "flex items-center gap-2 text-base font-semibold text-text-primary",
120
+ children: [
121
+ /* @__PURE__ */ E(m, { size: 20 }),
122
+ M("movethewheels.tracking.orderLabel", "Order"),
123
+ " ",
124
+ H.orderNumber
125
+ ]
126
+ }), /* @__PURE__ */ E(y, {
127
+ status: H.status,
128
+ type: "order"
129
+ })]
130
+ }), /* @__PURE__ */ D("div", {
131
+ className: "grid grid-cols-2 md:grid-cols-4 gap-4",
132
+ children: [
133
+ /* @__PURE__ */ D("div", { children: [/* @__PURE__ */ E("p", {
134
+ className: "text-sm text-text-secondary",
135
+ children: M("movethewheels.tracking.details.trackingNumber", "Tracking Number")
136
+ }), /* @__PURE__ */ E("p", {
137
+ className: "font-mono font-medium",
138
+ children: H.trackingNumber
139
+ })] }),
140
+ /* @__PURE__ */ D("div", { children: [/* @__PURE__ */ E("p", {
141
+ className: "text-sm text-text-secondary",
142
+ children: M("movethewheels.tracking.details.estimatedDelivery", "Estimated Delivery")
143
+ }), /* @__PURE__ */ E("p", {
144
+ className: "font-medium",
145
+ children: V.estimatedArrival ? b(V.estimatedArrival, "full") : H.scheduledDelivery ? b(H.scheduledDelivery, "full") : M("movethewheels.tracking.details.tbd", "TBD")
146
+ })] }),
147
+ /* @__PURE__ */ D("div", { children: [/* @__PURE__ */ E("p", {
148
+ className: "text-sm text-text-secondary",
149
+ children: M("movethewheels.tracking.details.items", "Items")
150
+ }), /* @__PURE__ */ D("p", {
151
+ className: "font-medium",
152
+ children: [
153
+ H.items.length,
154
+ " ",
155
+ M("movethewheels.tracking.details.itemsSuffix", "items")
156
+ ]
157
+ })] }),
158
+ /* @__PURE__ */ D("div", { children: [/* @__PURE__ */ E("p", {
159
+ className: "text-sm text-text-secondary",
160
+ children: M("movethewheels.tracking.details.lastUpdated", "Last Updated")
161
+ }), /* @__PURE__ */ E("p", {
162
+ className: "font-medium",
163
+ children: b(V.lastUpdated, "relative")
164
+ })] })
165
+ ]
166
+ })] }),
167
+ /* @__PURE__ */ D(t, { children: [/* @__PURE__ */ E(i, { children: /* @__PURE__ */ D(r, {
168
+ className: "flex items-center gap-2",
169
+ children: [/* @__PURE__ */ E(p, { size: 18 }), M("movethewheels.tracking.routeMap.title", "Route map")]
170
+ }) }), /* @__PURE__ */ E(n, { children: /* @__PURE__ */ E(v, {
171
+ className: "overflow-hidden rounded-lg border border-border-seam",
172
+ height: 320,
173
+ origin: q?.origin ?? null,
174
+ destination: q?.destination ?? null,
175
+ trail: q?.trail ?? [],
176
+ current: q?.current ?? null,
177
+ emptyMessage: M("movethewheels.tracking.routeMap.empty", "No location coordinates recorded for this shipment yet")
178
+ }) })] }),
179
+ /* @__PURE__ */ D(t, { children: [/* @__PURE__ */ E(i, { children: /* @__PURE__ */ D(r, {
180
+ className: "flex items-center gap-2",
181
+ children: [/* @__PURE__ */ E(f, { size: 18 }), M("movethewheels.tracking.progress.title", "Shipment Progress")]
182
+ }) }), /* @__PURE__ */ D(n, { children: [/* @__PURE__ */ E("div", {
183
+ className: "relative",
184
+ children: /* @__PURE__ */ E("div", {
185
+ className: "flex justify-between mb-4",
186
+ children: [
187
+ {
188
+ status: "confirmed",
189
+ label: M("movethewheels.tracking.progress.confirmed", "Confirmed"),
190
+ icon: d
191
+ },
192
+ {
193
+ status: "picked_up",
194
+ label: M("movethewheels.tracking.progress.pickedUp", "Picked Up"),
195
+ icon: m
196
+ },
197
+ {
198
+ status: "in_transit",
199
+ label: M("movethewheels.tracking.progress.inTransit", "In Transit"),
200
+ icon: g
201
+ },
202
+ {
203
+ status: "delivered",
204
+ label: M("movethewheels.tracking.progress.delivered", "Delivered"),
205
+ icon: p
206
+ }
207
+ ].map((e, t) => {
208
+ let n = [
209
+ "pending",
210
+ "confirmed",
211
+ "assigned",
212
+ "picked_up",
213
+ "in_transit",
214
+ "out_for_delivery",
215
+ "delivered"
216
+ ], r = n.indexOf(H.status), i = n.indexOf(e.status) <= r, a = e.status === H.status || H.status === "out_for_delivery" && e.status === "in_transit";
217
+ return /* @__PURE__ */ D("div", {
218
+ className: "flex flex-col items-center flex-1",
219
+ children: [
220
+ /* @__PURE__ */ E("div", {
221
+ className: `w-10 h-10 rounded-full flex items-center justify-center ${i ? "bg-action-primary-bg text-action-primary-text" : "bg-bg-sunken text-text-secondary"} ${a ? "ring-4 ring-primary/20" : ""}`,
222
+ children: /* @__PURE__ */ E(e.icon, { size: 20 })
223
+ }),
224
+ /* @__PURE__ */ E("p", {
225
+ className: `text-xs mt-2 text-center ${i ? "font-medium" : "text-text-secondary"}`,
226
+ children: e.label
227
+ }),
228
+ t < 3 && /* @__PURE__ */ E("div", {
229
+ className: `absolute top-5 h-0.5 ${i ? "bg-action-primary-bg" : "bg-bg-sunken"}`,
230
+ style: {
231
+ left: `calc(${(t + .5) * 25}% + 20px)`,
232
+ width: "calc(25% - 40px)"
233
+ }
234
+ })
235
+ ]
236
+ }, e.status);
237
+ })
238
+ })
239
+ }), /* @__PURE__ */ E("div", {
240
+ className: "mt-8 space-y-4",
241
+ children: H.timeline.slice().reverse().map((e, t) => /* @__PURE__ */ D("div", {
242
+ className: "flex gap-4",
243
+ children: [/* @__PURE__ */ D("div", {
244
+ className: "relative",
245
+ children: [/* @__PURE__ */ E("div", { className: `w-3 h-3 rounded-full ${t === 0 ? "bg-action-primary-bg" : "bg-bg-sunken"}` }), t < H.timeline.length - 1 && /* @__PURE__ */ E("div", { className: "absolute top-3 left-1.5 w-px h-8 -ml-px bg-border" })]
246
+ }), /* @__PURE__ */ D("div", {
247
+ className: "flex-1 pb-4",
248
+ children: [
249
+ /* @__PURE__ */ D("div", {
250
+ className: "flex items-center gap-2",
251
+ children: [/* @__PURE__ */ E(y, {
252
+ status: e.status,
253
+ type: "order",
254
+ size: "sm"
255
+ }), /* @__PURE__ */ E("span", {
256
+ className: "text-sm text-text-secondary",
257
+ children: b(e.timestamp, "full")
258
+ })]
259
+ }),
260
+ e.notes && /* @__PURE__ */ E("p", {
261
+ className: "text-sm mt-1",
262
+ children: e.notes
263
+ }),
264
+ e.location && /* @__PURE__ */ D("p", {
265
+ className: "text-xs text-text-secondary mt-1",
266
+ children: [/* @__PURE__ */ E(p, {
267
+ size: 12,
268
+ className: "inline mr-1"
269
+ }), x(e.location)]
270
+ })
271
+ ]
272
+ })]
273
+ }, t))
274
+ })] })] }),
275
+ V.alerts && V.alerts.length > 0 && /* @__PURE__ */ D(t, { children: [/* @__PURE__ */ E(i, { children: /* @__PURE__ */ D(r, {
276
+ className: "flex items-center gap-2",
277
+ children: [/* @__PURE__ */ E(u, { size: 18 }), M("movethewheels.tracking.alerts.title", "Alerts")]
278
+ }) }), /* @__PURE__ */ E(n, { children: /* @__PURE__ */ E("div", {
279
+ className: "space-y-3",
280
+ children: V.alerts.map((e) => /* @__PURE__ */ D("div", {
281
+ className: `flex items-start gap-3 p-3 rounded-lg ${e.severity === "critical" ? "bg-status-error-bg-subtle" : (e.severity, "bg-status-warning-bg-subtle")}`,
282
+ children: [/* @__PURE__ */ E(u, {
283
+ size: 16,
284
+ className: e.severity === "critical" ? "text-status-error-text" : (e.severity, "text-status-warning-text")
285
+ }), /* @__PURE__ */ D("div", { children: [/* @__PURE__ */ E("p", {
286
+ className: "text-sm font-medium",
287
+ children: e.message
288
+ }), /* @__PURE__ */ D("p", {
289
+ className: "text-xs text-text-secondary",
290
+ children: [b(e.timestamp, "relative"), e.resolvedAt && ` - ${M("movethewheels.tracking.alerts.resolved", "Resolved")}`]
291
+ })] })]
292
+ }, e.id))
293
+ }) })] })
294
+ ]
295
+ }), /* @__PURE__ */ D("div", {
296
+ className: "space-y-6",
297
+ children: [
298
+ /* @__PURE__ */ D(t, { children: [/* @__PURE__ */ E(i, { children: /* @__PURE__ */ D(r, {
299
+ className: "flex items-center gap-2",
300
+ children: [/* @__PURE__ */ E(p, { size: 18 }), M("movethewheels.tracking.location.title", "Current Location")]
301
+ }) }), /* @__PURE__ */ D(n, { children: [
302
+ q?.current ? /* @__PURE__ */ E(v, {
303
+ className: "mb-4 overflow-hidden rounded-lg border border-border-seam",
304
+ height: 180,
305
+ current: q.current,
306
+ destination: q.destination ?? null,
307
+ trail: q.trail
308
+ }) : /* @__PURE__ */ D("div", {
309
+ className: "mb-4 rounded-lg bg-bg-sunken p-4 text-center text-text-secondary",
310
+ children: [/* @__PURE__ */ E(p, {
311
+ size: 28,
312
+ className: "mx-auto mb-2 opacity-60"
313
+ }), /* @__PURE__ */ E("p", {
314
+ className: "text-sm",
315
+ children: M("movethewheels.tracking.location.noFix", "No live position fix yet")
316
+ })]
317
+ }),
318
+ /* @__PURE__ */ E("p", {
319
+ className: "text-sm",
320
+ children: V.currentLocation.address || M("movethewheels.tracking.location.updating", "Location updating...")
321
+ }),
322
+ /* @__PURE__ */ D("p", {
323
+ className: "text-xs text-text-secondary mt-1",
324
+ children: [
325
+ M("movethewheels.tracking.location.updated", "Updated"),
326
+ " ",
327
+ b(V.currentLocation.timestamp || /* @__PURE__ */ new Date(), "relative")
328
+ ]
329
+ })
330
+ ] })] }),
331
+ /* @__PURE__ */ D(t, { children: [/* @__PURE__ */ E(i, { children: /* @__PURE__ */ E(r, { children: M("movethewheels.tracking.deliveryAddress.title", "Delivery Address") }) }), /* @__PURE__ */ D(n, { children: [/* @__PURE__ */ E("p", {
332
+ className: "text-sm",
333
+ children: H.customerInfo.name
334
+ }), /* @__PURE__ */ E("p", {
335
+ className: "text-sm text-text-secondary mt-2",
336
+ children: x(H.deliveryAddress)
337
+ })] })] }),
338
+ /* @__PURE__ */ E(t, { children: /* @__PURE__ */ D(n, {
339
+ className: "p-4 space-y-2",
340
+ children: [/* @__PURE__ */ E(l, {
341
+ variant: "outline",
342
+ className: "w-full",
343
+ onClick: () => K(`orders/${H.id}`),
344
+ children: M("movethewheels.tracking.actions.viewOrderDetails", "View Order Details")
345
+ }), /* @__PURE__ */ E(l, {
346
+ variant: "outline",
347
+ className: "w-full",
348
+ children: M("movethewheels.tracking.actions.contactDriver", "Contact Driver")
349
+ })]
350
+ }) })
351
+ ]
352
+ })]
353
+ }),
354
+ z && !H && !U && !W && /* @__PURE__ */ E(c, {
355
+ illustration: "empty-search",
356
+ title: M("movethewheels.tracking.notFound.title", "Shipment not found"),
357
+ description: `${M("movethewheels.tracking.notFound.descriptionPrefix", "No shipment found with tracking number")} "${z}"`,
358
+ action: /* @__PURE__ */ E(l, {
359
+ variant: "outline",
360
+ onClick: () => R(""),
361
+ children: M("movethewheels.tracking.notFound.tryAnother", "Try another number")
362
+ })
363
+ })
364
+ ]
365
+ });
366
+ }
367
+ //#endregion
368
+ export { j as default };