@burdenoff/microfe-movethewheels 2026.703.4 → 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.
- package/dist/{AIAssistantPage-3YOnHO9Y.js → AIAssistantPage-D2gaEL1U.js} +16 -15
- package/dist/AnalyticsPage-DZMlEoBi.js +194 -0
- package/dist/{CreateOrderPage-DRAgGo9i.js → CreateOrderPage-CWHx8yys.js} +40 -40
- package/dist/{CustomerDetailsPage-BCeMmOFe.js → CustomerDetailsPage-nR4oZ_ju.js} +71 -71
- package/dist/CustomersPage-Bbvwvn8k.js +205 -0
- package/dist/DashboardPage-DrEhNf7N.js +542 -0
- package/dist/{DataTable-XvUcTjwi.js → DataTable-CqMUD4er.js} +31 -31
- package/dist/{DocumentsCard-U2lSe-cn.js → DocumentsCard-edDkgnJj.js} +25 -25
- package/dist/{DriverDetailsPage-BQrYd_Lp.js → DriverDetailsPage-whEMOWs9.js} +64 -64
- package/dist/DriversPage-CHF2ZEzd.js +221 -0
- package/dist/FinancePage-Dn9GrW-1.js +175 -0
- package/dist/{FleetPage-3ZHsB-TN.js → FleetPage-CrtGPy-p.js} +22 -22
- package/dist/{FormError-cuLV2jVD.js → FormError-BKcb_wT-.js} +1 -1
- package/dist/{ImportExportPage-C6f7DqhM.js → ImportExportPage-WYdwZomZ.js} +12 -12
- package/dist/InventoryPage-l5A1f753.js +259 -0
- package/dist/LiveTrackingPage-DhEaNKZ4.js +429 -0
- package/dist/{MarketplacePage-Bh_2ns4v.js → MarketplacePage-B9RYOb1Y.js} +116 -116
- package/dist/MetricCard-y3bWHKUQ.js +191 -0
- package/dist/{Notice-CSoDYKw9.js → Notice-DOO-tjpV.js} +2 -2
- package/dist/{OrderDetailsPage-zCj0lW0j.js → OrderDetailsPage-CwYHwk1K.js} +58 -58
- package/dist/OrdersListPage-DhZJoQeI.js +386 -0
- package/dist/{PageLayout-D4LDHJJq.js → PageLayout-BniRJaQ6.js} +1 -1
- package/dist/{ProductDetailsPage-wsxAQkA0.js → ProductDetailsPage-1Gm9JKy0.js} +55 -55
- package/dist/ProductsPage-C8sn-1tN.js +186 -0
- package/dist/ReportsPage-D1tb0dcz.js +377 -0
- package/dist/{RouteDetailsPage-DyMJE9AS.js → RouteDetailsPage-CkMyR9b_.js} +208 -181
- package/dist/{RoutesPage-Dtc669yc.js → RoutesPage-QkENzsE5.js} +12 -12
- package/dist/{SettingsPage-CpH9xhQg.js → SettingsPage-DV3_tU_X.js} +15 -15
- package/dist/Sparkline-K2RMJ58u.js +16729 -0
- package/dist/{StatusBadge-C87mDpDP.js → StatusBadge-BNHXYvZx.js} +7 -7
- package/dist/TrackingPage-BZrg4RCu.js +368 -0
- package/dist/{VehicleDetailsPage-DldYNsYV.js → VehicleDetailsPage-D-8XPZ2G.js} +53 -53
- package/dist/VehiclesPage-D5BELbtM.js +184 -0
- package/dist/{WarehouseDetailsPage-CMG7or6G.js → WarehouseDetailsPage-Cmg-8Frn.js} +64 -64
- package/dist/WarehousesPage-C1Y1M867.js +182 -0
- package/dist/{arrow-left-n48Y-Wis.js → arrow-left-ClW4Isj7.js} +1 -1
- package/dist/{arrow-right-Q3XQpTPR.js → arrow-right-CmKOmIkh.js} +1 -1
- package/dist/{arrow-up-xNF1zJUG.js → arrow-up-BJijRLAZ.js} +1 -1
- package/dist/{box-Eu05PXDh.js → box-BT3NsRQP.js} +1 -1
- package/dist/boxes-B_OGvQiW.js +54 -0
- package/dist/{chart-column-ouzgxIv_.js → chart-column-DQTTdUPk.js} +1 -1
- package/dist/charts-Tj_PPTfA.js +2018 -0
- package/dist/{chevron-left-B2_r0Elx.js → chevron-left-B1rZyWWb.js} +1 -1
- package/dist/{chevron-right-eV4LjaSi.js → chevron-right-BIcwUJZq.js} +1 -1
- package/dist/chunk-BdsCSvBP.js +20 -0
- package/dist/{circle-alert-Bzh2DBSF.js → circle-alert-CNkuDNc6.js} +1 -1
- package/dist/circle-check-Cs1OVjtV.js +13 -0
- package/dist/{circle-check-big-CGMSpQmD.js → circle-check-big-C-p4eNwn.js} +1 -1
- package/dist/{clock-Bl3ptexL.js → clock-dRGG4rkF.js} +1 -1
- package/dist/{dollar-sign-CAVU95SO.js → dollar-sign-B6RoYHHz.js} +1 -1
- package/dist/{download-C5NbvVDc.js → download-DP04iWTd.js} +1 -1
- package/dist/{file-text-D-1uvLZG.js → file-text-BuDx4hZp.js} +1 -1
- package/dist/{filter-DUfUg6BO.js → filter-BD483_8g.js} +1 -1
- package/dist/{fuel-B6_lnKDs.js → fuel-DLH1ag04.js} +1 -1
- package/dist/index.css +2 -0
- package/dist/index.js +214 -225
- package/dist/{map-C-M-FQLR.js → map-DNQn9fyY.js} +1 -1
- package/dist/{map-pin-Dznl5l40.js → map-pin-CqN1bbT1.js} +1 -1
- package/dist/mapMarkers-NCV9MRKR.js +28 -0
- package/dist/maps-yzLqiK_C.js +5070 -0
- package/dist/{navigation-BJSJl-VG.js → navigation-CgGUt2tR.js} +1 -1
- package/dist/{package-CcRttV2N.js → package-DmRF7iQD.js} +1 -1
- package/dist/{phone-DVSZHt_j.js → phone-Cl32EXKW.js} +1 -1
- package/dist/{plus-C_XZDwBz.js → plus-DlANgOFx.js} +1 -1
- package/dist/{refresh-cw-CfgN67l3.js → refresh-cw-rW59D4b7.js} +1 -1
- package/dist/route-CWjPrtAN.js +22 -0
- package/dist/{save-DJE8Fpdv.js → save-UDlog7hg.js} +1 -1
- package/dist/{search-D_VyGcZT.js → search-DNIG5Ck7.js} +1 -1
- package/dist/{square-pen-D-6JYrVQ.js → square-pen-BcfB3Grd.js} +1 -1
- package/dist/{star-BpRlUZuU.js → star-CVZHFwDx.js} +1 -1
- package/dist/{store-B-8HMuyZ.js → store-bwnmCK9f.js} +1 -1
- package/dist/{trash-2-8vmv-XV_.js → trash-2-B80G12d4.js} +1 -1
- package/dist/{trending-up-Dz6PqPRj.js → trending-up-CH4R4KOa.js} +1 -1
- package/dist/{triangle-alert-D7Y3J_4z.js → triangle-alert-CmS8AUU6.js} +1 -1
- package/dist/{truck-D-y2IDzv.js → truck-9rLDncav.js} +1 -1
- package/dist/{upload-CHZofOqb.js → upload-DanJY1Vo.js} +1 -1
- package/dist/{useAssistant-DVW4QgQb.js → useAssistant-CnEwkTLm.js} +11 -28
- package/dist/{useCustomers-BPW4__PR.js → useCustomers-ChJao1ET.js} +1 -1
- package/dist/{useFleet-ChBkxAd6.js → useFleet-g5Yri0G8.js} +1 -1
- package/dist/{useImportExport-DrPDHEDK.js → useImportExport-MYwIT3rE.js} +1 -1
- package/dist/{useInventory-CAAVMRp6.js → useInventory-BSOn-R1c.js} +1 -1
- package/dist/{useOrders-B465S2nt.js → useOrders-BSiqo61w.js} +1 -1
- package/dist/{useReports-jQ3GpNOm.js → useReports-fWESfsF9.js} +1 -1
- package/dist/{useRoutes-hS3d5-xr.js → useRoutes-zD8Yp323.js} +1 -1
- package/dist/{useSettings-BB8X2RLh.js → useSettings-B1lsWeZ1.js} +6 -6
- package/dist/{useTracking-RjGz9PZG.js → useTracking-BKG0I2ln.js} +3 -3
- package/dist/{user-DzfTn4dE.js → user-DU51el3m.js} +1 -1
- package/dist/{user-check-BEKRCi7v.js → user-check-IMhk-qkX.js} +1 -1
- package/dist/{users-CCrq-w0C.js → users-B8KhJBGg.js} +1 -1
- package/dist/{warehouse-CaqfmMKh.js → warehouse-CcMMioeY.js} +1 -1
- package/dist/{wrench-q_rgJfaP.js → wrench-Dg-sgH2e.js} +1 -1
- package/dist/{x-tMeDMcCw.js → x-C4ObLVEa.js} +1 -1
- package/package.json +5 -1
- package/src/movethewheels/components/GlassPanel.tsx +71 -0
- package/src/movethewheels/components/MetricCard.tsx +171 -73
- package/src/movethewheels/components/StatusBadge.tsx +7 -6
- package/src/movethewheels/components/charts/ChartShell.tsx +78 -0
- package/src/movethewheels/components/charts/Sparkline.tsx +85 -0
- package/src/movethewheels/components/charts/StatusDonut.tsx +115 -0
- package/src/movethewheels/components/charts/TrendChart.tsx +179 -0
- package/src/movethewheels/components/charts/VolumeBar.tsx +97 -0
- package/src/movethewheels/components/charts/chartTokens.ts +43 -0
- package/src/movethewheels/components/charts/index.ts +9 -0
- package/src/movethewheels/components/index.ts +44 -1
- package/src/movethewheels/components/maps/LogisticsMap.tsx +94 -0
- package/src/movethewheels/components/maps/MapCanvas.tsx +118 -0
- package/src/movethewheels/components/maps/RouteMap.tsx +71 -0
- package/src/movethewheels/components/maps/TrackingMap.tsx +102 -0
- package/src/movethewheels/components/maps/index.ts +16 -0
- package/src/movethewheels/components/maps/leaflet-setup.ts +124 -0
- package/src/movethewheels/components/maps/map-markers.css +121 -0
- package/src/movethewheels/hooks/useAnalytics.ts +14 -4
- package/src/movethewheels/pages/AnalyticsPage.tsx +93 -73
- package/src/movethewheels/pages/CreateOrderPage.tsx +4 -4
- package/src/movethewheels/pages/CustomersPage.tsx +29 -20
- package/src/movethewheels/pages/DashboardPage.tsx +238 -12
- package/src/movethewheels/pages/DriverDetailsPage.tsx +1 -1
- package/src/movethewheels/pages/DriversPage.tsx +35 -24
- package/src/movethewheels/pages/FinancePage.tsx +68 -30
- package/src/movethewheels/pages/InventoryPage.tsx +15 -3
- package/src/movethewheels/pages/LiveTrackingPage.tsx +124 -16
- package/src/movethewheels/pages/OrdersListPage.tsx +46 -38
- package/src/movethewheels/pages/ProductsPage.tsx +28 -24
- package/src/movethewheels/pages/ReportsPage.tsx +23 -0
- package/src/movethewheels/pages/RouteDetailsPage.tsx +46 -7
- package/src/movethewheels/pages/SettingsPage.tsx +2 -2
- package/src/movethewheels/pages/TrackingPage.tsx +76 -6
- package/src/movethewheels/pages/VehicleDetailsPage.tsx +1 -1
- package/src/movethewheels/pages/VehiclesPage.tsx +34 -24
- package/src/movethewheels/pages/WarehouseDetailsPage.tsx +1 -1
- package/src/movethewheels/pages/WarehousesPage.tsx +28 -22
- package/src/movethewheels/types/index.ts +1 -1
- package/src/movethewheels/utils/mapMarkers.ts +58 -0
- package/dist/AnalyticsPage-CMpI1070.js +0 -215
- package/dist/CustomersPage-CaNBMXmM.js +0 -172
- package/dist/DashboardPage-DIKlXde3.js +0 -387
- package/dist/DriversPage-PYmdFiby.js +0 -176
- package/dist/FinancePage-Cwh9Bw4M.js +0 -136
- package/dist/InventoryPage-DpiqVu1v.js +0 -253
- package/dist/LiveTrackingPage-FAzzlVnX.js +0 -379
- package/dist/MetricCard-CVBVpu7o.js +0 -146
- package/dist/OrdersListPage-CAMsuUck.js +0 -384
- package/dist/ProductsPage-DC5qDLfz.js +0 -180
- package/dist/ReportsPage-BwUJ37eO.js +0 -356
- package/dist/TrackingPage-DaNEFG_h.js +0 -325
- package/dist/VehiclesPage-BFw13iMt.js +0 -176
- package/dist/WarehousesPage-Wkytnt86.js +0 -173
- package/dist/useAnalytics-D7HW2XRb.js +0 -347
- /package/dist/{formatters-BQr-aR5W.js → formatters-FWJDwTFv.js} +0 -0
|
@@ -1,27 +1,29 @@
|
|
|
1
|
-
import { A as e, F as t, I as n, L as r, P as i, R as a,
|
|
2
|
-
import { n as y, t as b } from "./arrow-up-
|
|
3
|
-
import { t as x } from "./arrow-left-
|
|
4
|
-
import { t as S } from "./circle-check-big-
|
|
5
|
-
import { t as C } from "./clock-
|
|
6
|
-
import { t as w } from "./fuel-
|
|
7
|
-
import { n as T, t as E } from "./Notice-
|
|
8
|
-
import { t as D } from "./map-pin-
|
|
9
|
-
import { t as O } from "./navigation-
|
|
10
|
-
import { t as k } from "./plus-
|
|
11
|
-
import { t as A } from "./save-
|
|
12
|
-
import { t as j } from "./square-pen-
|
|
13
|
-
import { t as M } from "./trash-2-
|
|
14
|
-
import { r as N } from "./useFleet-
|
|
15
|
-
import { r as P, t as F } from "./useRoutes-
|
|
16
|
-
import {
|
|
17
|
-
import {
|
|
18
|
-
import {
|
|
19
|
-
import {
|
|
20
|
-
import {
|
|
21
|
-
import {
|
|
22
|
-
import {
|
|
1
|
+
import { A as e, F as t, I as n, L as r, P as i, R as a, d as o, f as s, g as c, h as l, i as u, j as d, l as f, lt as p, n as m, r as h, st as g, u as _, ut as v } from "./PageLayout-BniRJaQ6.js";
|
|
2
|
+
import { n as y, t as b } from "./arrow-up-BJijRLAZ.js";
|
|
3
|
+
import { t as x } from "./arrow-left-ClW4Isj7.js";
|
|
4
|
+
import { t as S } from "./circle-check-big-C-p4eNwn.js";
|
|
5
|
+
import { t as C } from "./clock-dRGG4rkF.js";
|
|
6
|
+
import { t as w } from "./fuel-DLH1ag04.js";
|
|
7
|
+
import { n as T, t as E } from "./Notice-DOO-tjpV.js";
|
|
8
|
+
import { t as D } from "./map-pin-CqN1bbT1.js";
|
|
9
|
+
import { t as O } from "./navigation-CgGUt2tR.js";
|
|
10
|
+
import { t as k } from "./plus-DlANgOFx.js";
|
|
11
|
+
import { t as A } from "./save-UDlog7hg.js";
|
|
12
|
+
import { t as j } from "./square-pen-BcfB3Grd.js";
|
|
13
|
+
import { t as M } from "./trash-2-B80G12d4.js";
|
|
14
|
+
import { r as N } from "./useFleet-g5Yri0G8.js";
|
|
15
|
+
import { r as P, t as F } from "./useRoutes-zD8Yp323.js";
|
|
16
|
+
import { n as I } from "./maps-yzLqiK_C.js";
|
|
17
|
+
import { o as L, r as R } from "./StatusBadge-BNHXYvZx.js";
|
|
18
|
+
import { t as z } from "./FormError-BKcb_wT-.js";
|
|
19
|
+
import { n as B, r as V, t as H } from "./formatters-FWJDwTFv.js";
|
|
20
|
+
import { n as U } from "./mapMarkers-NCV9MRKR.js";
|
|
21
|
+
import { useState as W } from "react";
|
|
22
|
+
import { useParams as ee } from "react-router-dom";
|
|
23
|
+
import { jsx as G, jsxs as K } from "react/jsx-runtime";
|
|
24
|
+
import { EmphasisPanel as q, NextSteps as te, PagePurpose as J } from "@burdenoff/fe-libs/ui";
|
|
23
25
|
//#region node_modules/lucide-react/dist/esm/icons/zap.js
|
|
24
|
-
var Y =
|
|
26
|
+
var Y = v("Zap", [["path", {
|
|
25
27
|
d: "M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",
|
|
26
28
|
key: "1xq2db"
|
|
27
29
|
}]]), X = [
|
|
@@ -42,8 +44,8 @@ var Y = m("Zap", [["path", {
|
|
|
42
44
|
label: "Cancelled"
|
|
43
45
|
}
|
|
44
46
|
];
|
|
45
|
-
function
|
|
46
|
-
let { basePath:
|
|
47
|
+
function ne() {
|
|
48
|
+
let { basePath: f, navigate: m } = g(), { createRoute: h } = P(), { vehicles: v, drivers: S } = N(), [C, w] = W({
|
|
47
49
|
name: "",
|
|
48
50
|
status: "planned",
|
|
49
51
|
vehicleId: "",
|
|
@@ -52,7 +54,7 @@ function Z() {
|
|
|
52
54
|
address: "",
|
|
53
55
|
type: "delivery"
|
|
54
56
|
}]
|
|
55
|
-
}), [T, E] =
|
|
57
|
+
}), [T, E] = W(!1), [D, j] = W(null), F = () => m?.(p(f, "routes")), I = () => w((e) => ({
|
|
56
58
|
...e,
|
|
57
59
|
stops: [...e.stops, {
|
|
58
60
|
address: "",
|
|
@@ -61,7 +63,7 @@ function Z() {
|
|
|
61
63
|
})), L = (e) => w((t) => ({
|
|
62
64
|
...t,
|
|
63
65
|
stops: t.stops.filter((t, n) => n !== e)
|
|
64
|
-
})),
|
|
66
|
+
})), R = (e, t, n) => w((r) => ({
|
|
65
67
|
...r,
|
|
66
68
|
stops: r.stops.map((r, i) => i === e ? {
|
|
67
69
|
...r,
|
|
@@ -109,56 +111,56 @@ function Z() {
|
|
|
109
111
|
driverId: C.driverId || void 0,
|
|
110
112
|
stops: e
|
|
111
113
|
});
|
|
112
|
-
m?.(
|
|
114
|
+
m?.(p(f, `routes/${n.id}`));
|
|
113
115
|
} catch (e) {
|
|
114
116
|
console.error("Failed to create route:", e), j(e instanceof Error ? e.message : "Failed to create route. Please try again."), E(!1);
|
|
115
117
|
}
|
|
116
118
|
};
|
|
117
|
-
return /* @__PURE__ */
|
|
119
|
+
return /* @__PURE__ */ K(u, {
|
|
118
120
|
title: "Create Route",
|
|
119
121
|
subtitle: "Plan a new delivery route",
|
|
120
|
-
icon: /* @__PURE__ */
|
|
121
|
-
headerActions: /* @__PURE__ */
|
|
122
|
+
icon: /* @__PURE__ */ G(O, { size: 24 }),
|
|
123
|
+
headerActions: /* @__PURE__ */ K("div", {
|
|
122
124
|
className: "flex gap-2",
|
|
123
|
-
children: [/* @__PURE__ */
|
|
125
|
+
children: [/* @__PURE__ */ K(_, {
|
|
124
126
|
variant: "outline",
|
|
125
127
|
onClick: F,
|
|
126
128
|
disabled: T,
|
|
127
|
-
children: [/* @__PURE__ */
|
|
128
|
-
}), /* @__PURE__ */
|
|
129
|
+
children: [/* @__PURE__ */ G(x, { size: 16 }), " Cancel"]
|
|
130
|
+
}), /* @__PURE__ */ K(_, {
|
|
129
131
|
onClick: V,
|
|
130
132
|
disabled: T,
|
|
131
133
|
children: [
|
|
132
|
-
/* @__PURE__ */
|
|
134
|
+
/* @__PURE__ */ G(A, { size: 16 }),
|
|
133
135
|
" ",
|
|
134
136
|
T ? "Saving..." : "Create Route"
|
|
135
137
|
]
|
|
136
138
|
})]
|
|
137
139
|
}),
|
|
138
|
-
children: [/* @__PURE__ */
|
|
139
|
-
icon: /* @__PURE__ */
|
|
140
|
+
children: [/* @__PURE__ */ G(J, {
|
|
141
|
+
icon: /* @__PURE__ */ G(O, { size: 18 }),
|
|
140
142
|
children: "Plan a new delivery route — name it, list the stops to visit, and optionally assign a vehicle and driver. Once created you can optimize it to sequence the stops into the shortest run."
|
|
141
|
-
}), /* @__PURE__ */
|
|
143
|
+
}), /* @__PURE__ */ K("form", {
|
|
142
144
|
onSubmit: V,
|
|
143
145
|
className: "max-w-3xl space-y-6",
|
|
144
146
|
children: [
|
|
145
|
-
/* @__PURE__ */
|
|
146
|
-
/* @__PURE__ */
|
|
147
|
+
/* @__PURE__ */ G(z, { message: D }),
|
|
148
|
+
/* @__PURE__ */ K(q, { children: [/* @__PURE__ */ G("h2", {
|
|
147
149
|
className: "text-base font-semibold text-text-primary mb-4",
|
|
148
150
|
children: "Route Details"
|
|
149
|
-
}), /* @__PURE__ */
|
|
151
|
+
}), /* @__PURE__ */ K("div", {
|
|
150
152
|
className: "space-y-4",
|
|
151
|
-
children: [/* @__PURE__ */
|
|
153
|
+
children: [/* @__PURE__ */ K("div", {
|
|
152
154
|
className: "grid grid-cols-1 md:grid-cols-2 gap-4",
|
|
153
|
-
children: [/* @__PURE__ */
|
|
155
|
+
children: [/* @__PURE__ */ K("div", {
|
|
154
156
|
className: "space-y-2",
|
|
155
|
-
children: [/* @__PURE__ */
|
|
157
|
+
children: [/* @__PURE__ */ K(d, {
|
|
156
158
|
htmlFor: "name",
|
|
157
|
-
children: ["Route Name ", /* @__PURE__ */
|
|
159
|
+
children: ["Route Name ", /* @__PURE__ */ G("span", {
|
|
158
160
|
className: "text-status-error-text",
|
|
159
161
|
children: "*"
|
|
160
162
|
})]
|
|
161
|
-
}), /* @__PURE__ */
|
|
163
|
+
}), /* @__PURE__ */ G(e, {
|
|
162
164
|
id: "name",
|
|
163
165
|
value: C.name,
|
|
164
166
|
onChange: (e) => w((t) => ({
|
|
@@ -168,43 +170,43 @@ function Z() {
|
|
|
168
170
|
placeholder: "Downtown morning run",
|
|
169
171
|
required: !0
|
|
170
172
|
})]
|
|
171
|
-
}), /* @__PURE__ */
|
|
173
|
+
}), /* @__PURE__ */ K("div", {
|
|
172
174
|
className: "space-y-2",
|
|
173
|
-
children: [/* @__PURE__ */
|
|
175
|
+
children: [/* @__PURE__ */ G(d, {
|
|
174
176
|
htmlFor: "status",
|
|
175
177
|
children: "Status"
|
|
176
|
-
}), /* @__PURE__ */
|
|
178
|
+
}), /* @__PURE__ */ K(i, {
|
|
177
179
|
value: C.status,
|
|
178
180
|
onValueChange: (e) => w((t) => ({
|
|
179
181
|
...t,
|
|
180
182
|
status: e
|
|
181
183
|
})),
|
|
182
|
-
children: [/* @__PURE__ */
|
|
184
|
+
children: [/* @__PURE__ */ G(r, {
|
|
183
185
|
id: "status",
|
|
184
|
-
children: /* @__PURE__ */
|
|
185
|
-
}), /* @__PURE__ */
|
|
186
|
+
children: /* @__PURE__ */ G(a, {})
|
|
187
|
+
}), /* @__PURE__ */ G(t, { children: X.map((e) => /* @__PURE__ */ G(n, {
|
|
186
188
|
value: e.value,
|
|
187
189
|
children: e.label
|
|
188
190
|
}, e.value)) })]
|
|
189
191
|
})]
|
|
190
192
|
})]
|
|
191
|
-
}), /* @__PURE__ */
|
|
193
|
+
}), /* @__PURE__ */ K("div", {
|
|
192
194
|
className: "grid grid-cols-1 md:grid-cols-2 gap-4",
|
|
193
|
-
children: [/* @__PURE__ */
|
|
195
|
+
children: [/* @__PURE__ */ K("div", {
|
|
194
196
|
className: "space-y-2",
|
|
195
|
-
children: [/* @__PURE__ */
|
|
197
|
+
children: [/* @__PURE__ */ G(d, {
|
|
196
198
|
htmlFor: "vehicle",
|
|
197
199
|
children: "Vehicle (optional)"
|
|
198
|
-
}), /* @__PURE__ */
|
|
200
|
+
}), /* @__PURE__ */ K(i, {
|
|
199
201
|
value: C.vehicleId,
|
|
200
202
|
onValueChange: (e) => w((t) => ({
|
|
201
203
|
...t,
|
|
202
204
|
vehicleId: e
|
|
203
205
|
})),
|
|
204
|
-
children: [/* @__PURE__ */
|
|
206
|
+
children: [/* @__PURE__ */ G(r, {
|
|
205
207
|
id: "vehicle",
|
|
206
|
-
children: /* @__PURE__ */
|
|
207
|
-
}), /* @__PURE__ */
|
|
208
|
+
children: /* @__PURE__ */ G(a, { placeholder: "Assign later" })
|
|
209
|
+
}), /* @__PURE__ */ G(t, { children: v.map((e) => /* @__PURE__ */ K(n, {
|
|
208
210
|
value: e.id,
|
|
209
211
|
children: [
|
|
210
212
|
e.vehicleNumber,
|
|
@@ -214,21 +216,21 @@ function Z() {
|
|
|
214
216
|
]
|
|
215
217
|
}, e.id)) })]
|
|
216
218
|
})]
|
|
217
|
-
}), /* @__PURE__ */
|
|
219
|
+
}), /* @__PURE__ */ K("div", {
|
|
218
220
|
className: "space-y-2",
|
|
219
|
-
children: [/* @__PURE__ */
|
|
221
|
+
children: [/* @__PURE__ */ G(d, {
|
|
220
222
|
htmlFor: "driver",
|
|
221
223
|
children: "Driver (optional)"
|
|
222
|
-
}), /* @__PURE__ */
|
|
224
|
+
}), /* @__PURE__ */ K(i, {
|
|
223
225
|
value: C.driverId,
|
|
224
226
|
onValueChange: (e) => w((t) => ({
|
|
225
227
|
...t,
|
|
226
228
|
driverId: e
|
|
227
229
|
})),
|
|
228
|
-
children: [/* @__PURE__ */
|
|
230
|
+
children: [/* @__PURE__ */ G(r, {
|
|
229
231
|
id: "driver",
|
|
230
|
-
children: /* @__PURE__ */
|
|
231
|
-
}), /* @__PURE__ */
|
|
232
|
+
children: /* @__PURE__ */ G(a, { placeholder: "Assign later" })
|
|
233
|
+
}), /* @__PURE__ */ G(t, { children: S.map((e) => /* @__PURE__ */ K(n, {
|
|
232
234
|
value: e.id,
|
|
233
235
|
children: [
|
|
234
236
|
e.fullName,
|
|
@@ -241,81 +243,81 @@ function Z() {
|
|
|
241
243
|
})]
|
|
242
244
|
})]
|
|
243
245
|
})] }),
|
|
244
|
-
/* @__PURE__ */
|
|
246
|
+
/* @__PURE__ */ K(o, { children: [/* @__PURE__ */ K(l, {
|
|
245
247
|
className: "flex flex-row items-center justify-between",
|
|
246
|
-
children: [/* @__PURE__ */
|
|
248
|
+
children: [/* @__PURE__ */ K(c, { children: ["Stops ", /* @__PURE__ */ G("span", {
|
|
247
249
|
className: "text-status-error-text",
|
|
248
250
|
children: "*"
|
|
249
|
-
})] }), /* @__PURE__ */
|
|
251
|
+
})] }), /* @__PURE__ */ K(_, {
|
|
250
252
|
type: "button",
|
|
251
253
|
variant: "outline",
|
|
252
254
|
size: "sm",
|
|
253
255
|
onClick: I,
|
|
254
|
-
children: [/* @__PURE__ */
|
|
256
|
+
children: [/* @__PURE__ */ G(k, { size: 16 }), " Add Stop"]
|
|
255
257
|
})]
|
|
256
|
-
}), /* @__PURE__ */
|
|
258
|
+
}), /* @__PURE__ */ G(s, {
|
|
257
259
|
className: "space-y-4",
|
|
258
|
-
children: C.stops.map((o, s) => /* @__PURE__ */
|
|
260
|
+
children: C.stops.map((o, s) => /* @__PURE__ */ K("div", {
|
|
259
261
|
className: "grid grid-cols-1 md:grid-cols-12 gap-3 items-end",
|
|
260
262
|
children: [
|
|
261
|
-
/* @__PURE__ */
|
|
263
|
+
/* @__PURE__ */ K("div", {
|
|
262
264
|
className: "md:col-span-7 space-y-2",
|
|
263
|
-
children: [/* @__PURE__ */
|
|
265
|
+
children: [/* @__PURE__ */ K(d, {
|
|
264
266
|
htmlFor: `stop-address-${s}`,
|
|
265
267
|
children: [
|
|
266
268
|
"Stop ",
|
|
267
269
|
s + 1,
|
|
268
270
|
" address"
|
|
269
271
|
]
|
|
270
|
-
}), /* @__PURE__ */
|
|
272
|
+
}), /* @__PURE__ */ G(e, {
|
|
271
273
|
id: `stop-address-${s}`,
|
|
272
274
|
value: o.address,
|
|
273
|
-
onChange: (e) =>
|
|
275
|
+
onChange: (e) => R(s, "address", e.target.value),
|
|
274
276
|
placeholder: "123 Main St, San Francisco, CA"
|
|
275
277
|
})]
|
|
276
278
|
}),
|
|
277
|
-
/* @__PURE__ */
|
|
279
|
+
/* @__PURE__ */ K("div", {
|
|
278
280
|
className: "md:col-span-4 space-y-2",
|
|
279
|
-
children: [/* @__PURE__ */
|
|
281
|
+
children: [/* @__PURE__ */ G(d, {
|
|
280
282
|
htmlFor: `stop-type-${s}`,
|
|
281
283
|
children: "Type"
|
|
282
|
-
}), /* @__PURE__ */
|
|
284
|
+
}), /* @__PURE__ */ K(i, {
|
|
283
285
|
value: o.type,
|
|
284
|
-
onValueChange: (e) =>
|
|
285
|
-
children: [/* @__PURE__ */
|
|
286
|
+
onValueChange: (e) => R(s, "type", e),
|
|
287
|
+
children: [/* @__PURE__ */ G(r, {
|
|
286
288
|
id: `stop-type-${s}`,
|
|
287
|
-
children: /* @__PURE__ */
|
|
288
|
-
}), /* @__PURE__ */
|
|
289
|
+
children: /* @__PURE__ */ G(a, {})
|
|
290
|
+
}), /* @__PURE__ */ K(t, { children: [/* @__PURE__ */ G(n, {
|
|
289
291
|
value: "pickup",
|
|
290
292
|
children: "Pickup"
|
|
291
|
-
}), /* @__PURE__ */
|
|
293
|
+
}), /* @__PURE__ */ G(n, {
|
|
292
294
|
value: "delivery",
|
|
293
295
|
children: "Delivery"
|
|
294
296
|
})] })]
|
|
295
297
|
})]
|
|
296
298
|
}),
|
|
297
|
-
/* @__PURE__ */
|
|
299
|
+
/* @__PURE__ */ K("div", {
|
|
298
300
|
className: "md:col-span-1 flex justify-end gap-1",
|
|
299
301
|
children: [
|
|
300
|
-
/* @__PURE__ */
|
|
302
|
+
/* @__PURE__ */ G(_, {
|
|
301
303
|
type: "button",
|
|
302
304
|
variant: "ghost",
|
|
303
305
|
size: "icon",
|
|
304
306
|
onClick: () => B(s, -1),
|
|
305
307
|
disabled: s === 0,
|
|
306
308
|
"aria-label": `Move stop ${s + 1} up`,
|
|
307
|
-
children: /* @__PURE__ */
|
|
309
|
+
children: /* @__PURE__ */ G(b, { size: 16 })
|
|
308
310
|
}),
|
|
309
|
-
/* @__PURE__ */
|
|
311
|
+
/* @__PURE__ */ G(_, {
|
|
310
312
|
type: "button",
|
|
311
313
|
variant: "ghost",
|
|
312
314
|
size: "icon",
|
|
313
315
|
onClick: () => B(s, 1),
|
|
314
316
|
disabled: s === C.stops.length - 1,
|
|
315
317
|
"aria-label": `Move stop ${s + 1} down`,
|
|
316
|
-
children: /* @__PURE__ */
|
|
318
|
+
children: /* @__PURE__ */ G(y, { size: 16 })
|
|
317
319
|
}),
|
|
318
|
-
/* @__PURE__ */
|
|
320
|
+
/* @__PURE__ */ G(_, {
|
|
319
321
|
type: "button",
|
|
320
322
|
variant: "ghost",
|
|
321
323
|
size: "icon",
|
|
@@ -323,7 +325,7 @@ function Z() {
|
|
|
323
325
|
onClick: () => L(s),
|
|
324
326
|
disabled: C.stops.length === 1,
|
|
325
327
|
"aria-label": `Remove stop ${s + 1}`,
|
|
326
|
-
children: /* @__PURE__ */
|
|
328
|
+
children: /* @__PURE__ */ G(M, { size: 16 })
|
|
327
329
|
})
|
|
328
330
|
]
|
|
329
331
|
})
|
|
@@ -334,12 +336,12 @@ function Z() {
|
|
|
334
336
|
})]
|
|
335
337
|
});
|
|
336
338
|
}
|
|
337
|
-
function
|
|
338
|
-
let { routeId: e } =
|
|
339
|
+
function Z() {
|
|
340
|
+
let { routeId: e } = ee(), { basePath: t, navigate: n } = g(), { route: r, isLoading: i, error: a, refetch: d } = F(e), { optimizeRoute: v } = P(), { message: y, notify: b } = T(), [k, A] = W(null), [M, N] = W(!1), X = () => n?.(p(t, "routes")), Z = (e) => n?.(p(t, e)), Q = async () => {
|
|
339
341
|
if (e) {
|
|
340
342
|
N(!0), A(null);
|
|
341
343
|
try {
|
|
342
|
-
await
|
|
344
|
+
await v(e), b("Route optimized — stops resequenced for the shortest run."), d();
|
|
343
345
|
} catch (e) {
|
|
344
346
|
A(e instanceof Error ? e.message : "Failed to optimize route.");
|
|
345
347
|
} finally {
|
|
@@ -347,139 +349,164 @@ function Q() {
|
|
|
347
349
|
}
|
|
348
350
|
}
|
|
349
351
|
};
|
|
350
|
-
|
|
352
|
+
if (!e) return /* @__PURE__ */ G(ne, {});
|
|
353
|
+
if (i) return /* @__PURE__ */ G(h, { message: "Loading route details..." });
|
|
354
|
+
if (a || !r) return /* @__PURE__ */ G(m, {
|
|
351
355
|
title: "Route not found",
|
|
352
|
-
onRetry:
|
|
353
|
-
})
|
|
356
|
+
onRetry: d
|
|
357
|
+
});
|
|
358
|
+
let $ = r.stops.map((e) => {
|
|
359
|
+
let t = U(e.address);
|
|
360
|
+
return t ? {
|
|
361
|
+
lat: t.lat,
|
|
362
|
+
lng: t.lng,
|
|
363
|
+
sequence: e.sequence,
|
|
364
|
+
label: H(e.address) || `Order #${e.orderId || e.sequence}`
|
|
365
|
+
} : null;
|
|
366
|
+
}).filter((e) => e !== null);
|
|
367
|
+
return /* @__PURE__ */ K(u, {
|
|
354
368
|
title: r.name,
|
|
355
369
|
subtitle: `${r.stops.length} stops - ${r.distance.toFixed(1)} km`,
|
|
356
|
-
icon: /* @__PURE__ */
|
|
357
|
-
headerActions: /* @__PURE__ */
|
|
370
|
+
icon: /* @__PURE__ */ G(O, { size: 24 }),
|
|
371
|
+
headerActions: /* @__PURE__ */ K("div", {
|
|
358
372
|
className: "flex gap-2",
|
|
359
373
|
children: [
|
|
360
|
-
/* @__PURE__ */
|
|
374
|
+
/* @__PURE__ */ K(_, {
|
|
361
375
|
variant: "outline",
|
|
362
376
|
onClick: X,
|
|
363
|
-
children: [/* @__PURE__ */
|
|
377
|
+
children: [/* @__PURE__ */ G(x, { size: 16 }), " Back"]
|
|
364
378
|
}),
|
|
365
|
-
!r.optimized && /* @__PURE__ */
|
|
379
|
+
!r.optimized && /* @__PURE__ */ K(_, {
|
|
366
380
|
variant: "outline",
|
|
367
|
-
onClick:
|
|
381
|
+
onClick: Q,
|
|
368
382
|
disabled: M,
|
|
369
383
|
children: [
|
|
370
|
-
/* @__PURE__ */
|
|
384
|
+
/* @__PURE__ */ G(Y, { size: 16 }),
|
|
371
385
|
" ",
|
|
372
386
|
M ? "Optimizing…" : "Optimize"
|
|
373
387
|
]
|
|
374
388
|
}),
|
|
375
|
-
/* @__PURE__ */
|
|
389
|
+
/* @__PURE__ */ K(_, { children: [/* @__PURE__ */ G(j, { size: 16 }), " Edit"] })
|
|
376
390
|
]
|
|
377
391
|
}),
|
|
378
|
-
headerContent: /* @__PURE__ */
|
|
392
|
+
headerContent: /* @__PURE__ */ K("div", {
|
|
379
393
|
className: "flex gap-2",
|
|
380
|
-
children: [/* @__PURE__ */
|
|
394
|
+
children: [/* @__PURE__ */ G(R, {
|
|
381
395
|
status: r.status,
|
|
382
|
-
customColors:
|
|
383
|
-
}), /* @__PURE__ */
|
|
396
|
+
customColors: L[r.status]
|
|
397
|
+
}), /* @__PURE__ */ G(f, {
|
|
384
398
|
variant: r.optimized ? "default" : "secondary",
|
|
385
399
|
children: r.optimized ? "Optimized" : "Not Optimized"
|
|
386
400
|
})]
|
|
387
401
|
}),
|
|
388
402
|
children: [
|
|
389
|
-
/* @__PURE__ */
|
|
390
|
-
icon: /* @__PURE__ */
|
|
403
|
+
/* @__PURE__ */ G(J, {
|
|
404
|
+
icon: /* @__PURE__ */ G(O, { size: 18 }),
|
|
391
405
|
children: "A single optimized driving plan that chains together this route's stops. Review the sequence, distance and timing here, re-optimize if traffic or stops change, then hand the itinerary to a driver."
|
|
392
406
|
}),
|
|
393
|
-
/* @__PURE__ */
|
|
407
|
+
/* @__PURE__ */ G(te, {
|
|
394
408
|
storageKey: "movethewheels-route-details",
|
|
395
409
|
steps: [
|
|
396
410
|
...r.optimized ? [] : [{
|
|
397
411
|
id: "optimize",
|
|
398
412
|
label: "Optimize this route",
|
|
399
413
|
description: "Reorder stops to cut distance and driving time.",
|
|
400
|
-
icon: /* @__PURE__ */
|
|
401
|
-
onClick:
|
|
414
|
+
icon: /* @__PURE__ */ G(Y, { size: 16 }),
|
|
415
|
+
onClick: Q
|
|
402
416
|
}],
|
|
403
417
|
{
|
|
404
418
|
id: "edit",
|
|
405
419
|
label: "Adjust stops",
|
|
406
420
|
description: "Add, remove or reorder the delivery stops.",
|
|
407
|
-
icon: /* @__PURE__ */
|
|
421
|
+
icon: /* @__PURE__ */ G(j, { size: 16 }),
|
|
408
422
|
onClick: () => {}
|
|
409
423
|
},
|
|
410
424
|
{
|
|
411
425
|
id: "orders",
|
|
412
426
|
label: "Review the orders on this route",
|
|
413
427
|
description: "Check the deliveries bundled into this run.",
|
|
414
|
-
icon: /* @__PURE__ */
|
|
415
|
-
onClick: () =>
|
|
428
|
+
icon: /* @__PURE__ */ G(D, { size: 16 }),
|
|
429
|
+
onClick: () => Z("orders")
|
|
416
430
|
}
|
|
417
431
|
]
|
|
418
432
|
}),
|
|
419
|
-
k && /* @__PURE__ */
|
|
433
|
+
k && /* @__PURE__ */ G("div", {
|
|
420
434
|
className: "mb-2",
|
|
421
|
-
children: /* @__PURE__ */
|
|
435
|
+
children: /* @__PURE__ */ G(z, { message: k })
|
|
422
436
|
}),
|
|
423
|
-
y && /* @__PURE__ */
|
|
437
|
+
y && /* @__PURE__ */ G("div", {
|
|
424
438
|
className: "mb-2",
|
|
425
|
-
children: /* @__PURE__ */
|
|
439
|
+
children: /* @__PURE__ */ G(E, { message: y })
|
|
426
440
|
}),
|
|
427
|
-
/* @__PURE__ */
|
|
441
|
+
/* @__PURE__ */ K("div", {
|
|
428
442
|
className: "grid grid-cols-1 lg:grid-cols-3 gap-6",
|
|
429
|
-
children: [/* @__PURE__ */
|
|
443
|
+
children: [/* @__PURE__ */ K("div", {
|
|
430
444
|
className: "lg:col-span-2 space-y-6",
|
|
431
|
-
children: [/* @__PURE__ */
|
|
432
|
-
className: "
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
445
|
+
children: [/* @__PURE__ */ K(o, { children: [/* @__PURE__ */ G(l, { children: /* @__PURE__ */ G(c, { children: "Route Map" }) }), /* @__PURE__ */ G(s, { children: $.length > 0 ? /* @__PURE__ */ G(I, {
|
|
446
|
+
className: "overflow-hidden rounded-lg border border-border-seam",
|
|
447
|
+
height: 360,
|
|
448
|
+
stops: $
|
|
449
|
+
}) : /* @__PURE__ */ K("div", {
|
|
450
|
+
className: "rounded-lg border border-border-seam bg-bg-sunken/40 p-4",
|
|
451
|
+
children: [/* @__PURE__ */ G("p", {
|
|
452
|
+
className: "mb-3 text-sm text-text-secondary",
|
|
453
|
+
children: "These stops don't have map coordinates yet — showing the planned sequence instead."
|
|
454
|
+
}), /* @__PURE__ */ G("ol", {
|
|
455
|
+
className: "space-y-2",
|
|
456
|
+
children: r.stops.map((e) => /* @__PURE__ */ K("li", {
|
|
457
|
+
className: "flex items-start gap-3",
|
|
458
|
+
children: [/* @__PURE__ */ G("span", {
|
|
459
|
+
className: "flex h-6 w-6 shrink-0 items-center justify-center rounded-full bg-action-primary-bg/10 text-xs font-semibold text-primary",
|
|
460
|
+
children: e.sequence
|
|
461
|
+
}), /* @__PURE__ */ G("span", {
|
|
462
|
+
className: "text-sm",
|
|
463
|
+
children: H(e.address) || `Order #${e.orderId || e.sequence}`
|
|
464
|
+
})]
|
|
465
|
+
}, e.id))
|
|
466
|
+
})]
|
|
467
|
+
}) })] }), /* @__PURE__ */ K(o, { children: [/* @__PURE__ */ G(l, { children: /* @__PURE__ */ K(c, { children: [
|
|
441
468
|
"Stops (",
|
|
442
469
|
r.stops.length,
|
|
443
470
|
")"
|
|
444
|
-
] }) }), /* @__PURE__ */
|
|
471
|
+
] }) }), /* @__PURE__ */ G(s, { children: /* @__PURE__ */ G("div", {
|
|
445
472
|
className: "space-y-4",
|
|
446
|
-
children: r.stops.map((e, t) => /* @__PURE__ */
|
|
473
|
+
children: r.stops.map((e, t) => /* @__PURE__ */ K("div", {
|
|
447
474
|
className: "flex gap-4",
|
|
448
|
-
children: [/* @__PURE__ */
|
|
475
|
+
children: [/* @__PURE__ */ K("div", {
|
|
449
476
|
className: "relative",
|
|
450
|
-
children: [/* @__PURE__ */
|
|
477
|
+
children: [/* @__PURE__ */ G("div", {
|
|
451
478
|
className: `w-8 h-8 rounded-full flex items-center justify-center ${e.status === "completed" ? "bg-status-success-text text-text-inverse" : "bg-bg-sunken"}`,
|
|
452
|
-
children: e.status === "completed" ? /* @__PURE__ */
|
|
453
|
-
}), t < r.stops.length - 1 && /* @__PURE__ */
|
|
454
|
-
}), /* @__PURE__ */
|
|
479
|
+
children: e.status === "completed" ? /* @__PURE__ */ G(S, { size: 16 }) : e.sequence
|
|
480
|
+
}), t < r.stops.length - 1 && /* @__PURE__ */ G("div", { className: "absolute top-8 left-4 w-px h-12 bg-border" })]
|
|
481
|
+
}), /* @__PURE__ */ G("div", {
|
|
455
482
|
className: "flex-1 pb-4",
|
|
456
|
-
children: /* @__PURE__ */
|
|
483
|
+
children: /* @__PURE__ */ K("div", {
|
|
457
484
|
className: "flex items-center justify-between",
|
|
458
|
-
children: [/* @__PURE__ */
|
|
485
|
+
children: [/* @__PURE__ */ K("div", { children: [/* @__PURE__ */ K("div", {
|
|
459
486
|
className: "flex items-center gap-2",
|
|
460
|
-
children: [/* @__PURE__ */
|
|
487
|
+
children: [/* @__PURE__ */ G(f, {
|
|
461
488
|
variant: e.type === "pickup" ? "secondary" : "default",
|
|
462
489
|
className: "capitalize",
|
|
463
490
|
children: e.type
|
|
464
|
-
}), /* @__PURE__ */
|
|
491
|
+
}), /* @__PURE__ */ K("span", {
|
|
465
492
|
className: "font-medium",
|
|
466
493
|
children: ["Order #", e.orderId]
|
|
467
494
|
})]
|
|
468
|
-
}), /* @__PURE__ */
|
|
495
|
+
}), /* @__PURE__ */ G("p", {
|
|
469
496
|
className: "text-sm text-text-secondary mt-1",
|
|
470
|
-
children:
|
|
471
|
-
})] }), /* @__PURE__ */
|
|
497
|
+
children: H(e.address)
|
|
498
|
+
})] }), /* @__PURE__ */ K("div", {
|
|
472
499
|
className: "text-right",
|
|
473
500
|
children: [
|
|
474
|
-
/* @__PURE__ */
|
|
501
|
+
/* @__PURE__ */ K("p", {
|
|
475
502
|
className: "text-sm",
|
|
476
|
-
children: ["Scheduled: ",
|
|
503
|
+
children: ["Scheduled: ", V(e.scheduledTime, "time")]
|
|
477
504
|
}),
|
|
478
|
-
e.actualTime && /* @__PURE__ */
|
|
505
|
+
e.actualTime && /* @__PURE__ */ K("p", {
|
|
479
506
|
className: "text-sm text-status-success-text",
|
|
480
|
-
children: ["Actual: ",
|
|
507
|
+
children: ["Actual: ", V(e.actualTime, "time")]
|
|
481
508
|
}),
|
|
482
|
-
/* @__PURE__ */
|
|
509
|
+
/* @__PURE__ */ K("p", {
|
|
483
510
|
className: "text-xs text-text-secondary",
|
|
484
511
|
children: [e.duration, " min stop"]
|
|
485
512
|
})
|
|
@@ -489,81 +516,81 @@ function Q() {
|
|
|
489
516
|
})]
|
|
490
517
|
}, e.id))
|
|
491
518
|
}) })] })]
|
|
492
|
-
}), /* @__PURE__ */
|
|
519
|
+
}), /* @__PURE__ */ K("div", {
|
|
493
520
|
className: "space-y-6",
|
|
494
521
|
children: [
|
|
495
|
-
/* @__PURE__ */
|
|
522
|
+
/* @__PURE__ */ K(q, {
|
|
496
523
|
className: "space-y-4",
|
|
497
524
|
children: [
|
|
498
|
-
/* @__PURE__ */
|
|
525
|
+
/* @__PURE__ */ G("h2", {
|
|
499
526
|
className: "text-base font-semibold text-text-primary",
|
|
500
527
|
children: "Route Info"
|
|
501
528
|
}),
|
|
502
|
-
/* @__PURE__ */
|
|
529
|
+
/* @__PURE__ */ K("div", { children: [/* @__PURE__ */ G("p", {
|
|
503
530
|
className: "text-sm text-text-secondary",
|
|
504
531
|
children: "Total Distance"
|
|
505
|
-
}), /* @__PURE__ */
|
|
532
|
+
}), /* @__PURE__ */ K("p", {
|
|
506
533
|
className: "text-2xl font-bold",
|
|
507
|
-
children: [r.distance.toFixed(1), /* @__PURE__ */
|
|
534
|
+
children: [r.distance.toFixed(1), /* @__PURE__ */ G("span", {
|
|
508
535
|
className: "text-sm font-normal",
|
|
509
536
|
children: " km"
|
|
510
537
|
})]
|
|
511
538
|
})] }),
|
|
512
|
-
/* @__PURE__ */
|
|
539
|
+
/* @__PURE__ */ K("div", { children: [/* @__PURE__ */ G("p", {
|
|
513
540
|
className: "text-sm text-text-secondary",
|
|
514
541
|
children: "Est. Duration"
|
|
515
|
-
}), /* @__PURE__ */
|
|
542
|
+
}), /* @__PURE__ */ K("p", {
|
|
516
543
|
className: "text-2xl font-bold",
|
|
517
|
-
children: [r.estimatedDuration, /* @__PURE__ */
|
|
544
|
+
children: [r.estimatedDuration, /* @__PURE__ */ G("span", {
|
|
518
545
|
className: "text-sm font-normal",
|
|
519
546
|
children: " min"
|
|
520
547
|
})]
|
|
521
548
|
})] }),
|
|
522
|
-
r.fuelCost !== void 0 && /* @__PURE__ */
|
|
549
|
+
r.fuelCost !== void 0 && /* @__PURE__ */ K("div", { children: [/* @__PURE__ */ K("p", {
|
|
523
550
|
className: "text-sm text-text-secondary flex items-center gap-1",
|
|
524
|
-
children: [/* @__PURE__ */
|
|
525
|
-
}), /* @__PURE__ */
|
|
551
|
+
children: [/* @__PURE__ */ G(w, { size: 14 }), " Est. Fuel Cost"]
|
|
552
|
+
}), /* @__PURE__ */ G("p", {
|
|
526
553
|
className: "text-2xl font-bold",
|
|
527
|
-
children:
|
|
554
|
+
children: B(r.fuelCost)
|
|
528
555
|
})] }),
|
|
529
|
-
r.actualDuration && /* @__PURE__ */
|
|
556
|
+
r.actualDuration && /* @__PURE__ */ K("div", { children: [/* @__PURE__ */ G("p", {
|
|
530
557
|
className: "text-sm text-text-secondary",
|
|
531
558
|
children: "Actual Duration"
|
|
532
|
-
}), /* @__PURE__ */
|
|
559
|
+
}), /* @__PURE__ */ K("p", {
|
|
533
560
|
className: "text-2xl font-bold",
|
|
534
|
-
children: [r.actualDuration, /* @__PURE__ */
|
|
561
|
+
children: [r.actualDuration, /* @__PURE__ */ G("span", {
|
|
535
562
|
className: "text-sm font-normal",
|
|
536
563
|
children: " min"
|
|
537
564
|
})]
|
|
538
565
|
})] })
|
|
539
566
|
]
|
|
540
567
|
}),
|
|
541
|
-
/* @__PURE__ */
|
|
568
|
+
/* @__PURE__ */ K(o, { children: [/* @__PURE__ */ G(l, { children: /* @__PURE__ */ K(c, {
|
|
542
569
|
className: "flex items-center gap-2",
|
|
543
|
-
children: [/* @__PURE__ */
|
|
544
|
-
}) }), /* @__PURE__ */
|
|
570
|
+
children: [/* @__PURE__ */ G(C, { size: 18 }), " Timeline"]
|
|
571
|
+
}) }), /* @__PURE__ */ K(s, {
|
|
545
572
|
className: "space-y-3",
|
|
546
573
|
children: [
|
|
547
|
-
r.startTime && /* @__PURE__ */
|
|
574
|
+
r.startTime && /* @__PURE__ */ K("div", { children: [/* @__PURE__ */ G("p", {
|
|
548
575
|
className: "text-sm text-text-secondary",
|
|
549
576
|
children: "Started"
|
|
550
|
-
}), /* @__PURE__ */
|
|
551
|
-
r.endTime && /* @__PURE__ */
|
|
577
|
+
}), /* @__PURE__ */ G("p", { children: V(r.startTime, "full") })] }),
|
|
578
|
+
r.endTime && /* @__PURE__ */ K("div", { children: [/* @__PURE__ */ G("p", {
|
|
552
579
|
className: "text-sm text-text-secondary",
|
|
553
580
|
children: "Completed"
|
|
554
|
-
}), /* @__PURE__ */
|
|
555
|
-
/* @__PURE__ */
|
|
581
|
+
}), /* @__PURE__ */ G("p", { children: V(r.endTime, "full") })] }),
|
|
582
|
+
/* @__PURE__ */ K("div", { children: [/* @__PURE__ */ G("p", {
|
|
556
583
|
className: "text-sm text-text-secondary",
|
|
557
584
|
children: "Created"
|
|
558
|
-
}), /* @__PURE__ */
|
|
585
|
+
}), /* @__PURE__ */ G("p", { children: V(r.createdAt, "full") })] })
|
|
559
586
|
]
|
|
560
587
|
})] }),
|
|
561
|
-
r.trafficConditions.length > 0 && /* @__PURE__ */
|
|
588
|
+
r.trafficConditions.length > 0 && /* @__PURE__ */ K(o, { children: [/* @__PURE__ */ G(l, { children: /* @__PURE__ */ G(c, { children: "Traffic Conditions" }) }), /* @__PURE__ */ G(s, { children: r.trafficConditions.map((e, t) => /* @__PURE__ */ K("div", {
|
|
562
589
|
className: `p-2 rounded mb-2 ${e.condition === "severe" ? "bg-status-error-bg-subtle" : (e.condition, "bg-status-warning-bg-subtle")}`,
|
|
563
|
-
children: [/* @__PURE__ */
|
|
590
|
+
children: [/* @__PURE__ */ K("p", {
|
|
564
591
|
className: "text-sm font-medium capitalize",
|
|
565
592
|
children: [e.condition, " traffic"]
|
|
566
|
-
}), /* @__PURE__ */
|
|
593
|
+
}), /* @__PURE__ */ K("p", {
|
|
567
594
|
className: "text-xs text-text-secondary",
|
|
568
595
|
children: [
|
|
569
596
|
e.location,
|
|
@@ -577,7 +604,7 @@ function Q() {
|
|
|
577
604
|
})]
|
|
578
605
|
})
|
|
579
606
|
]
|
|
580
|
-
})
|
|
607
|
+
});
|
|
581
608
|
}
|
|
582
609
|
//#endregion
|
|
583
|
-
export {
|
|
610
|
+
export { Z as default };
|