@burdenoff/microfe-movethewheels 2026.614.1 → 2026.625.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{AIAssistantPage-FGGTN-DA.js → AIAssistantPage-CNyoKtID.js} +8 -8
- package/dist/{AnalyticsPage-DSLYCnln.js → AnalyticsPage-Ck615ox7.js} +21 -21
- package/dist/{CreateOrderPage-BgjA_QFT.js → CreateOrderPage-C9Vb57Yn.js} +8 -8
- package/dist/{CustomerDetailsPage-Cfvfw12U.js → CustomerDetailsPage-BVkHRZvi.js} +24 -24
- package/dist/CustomersPage-DhQg-6h_.js +118 -0
- package/dist/{DashboardPage-BeyvN3Mr.js → DashboardPage-DTmyuC11.js} +134 -127
- package/dist/{DataTable-oNjXEcUO.js → DataTable-CfWvFw5B.js} +13 -13
- package/dist/{DriverDetailsPage-DGTUZG5S.js → DriverDetailsPage-DaaCQ-2O.js} +27 -27
- package/dist/DriversPage-D0RMBB_t.js +129 -0
- package/dist/{FinancePage-Cyi75iWa.js → FinancePage-BUXqW1IM.js} +11 -11
- package/dist/{FleetPage-Dlupg1NZ.js → FleetPage-DCfOmBa2.js} +74 -73
- package/dist/{ImportExportPage-D81vnXbH.js → ImportExportPage-BM1BoRcE.js} +9 -9
- package/dist/{InventoryPage-D0u2nxRd.js → InventoryPage-BW0QXWuf.js} +68 -73
- package/dist/{LiveTrackingPage-CKIlbMBA.js → LiveTrackingPage-DqcGXdkw.js} +26 -26
- package/dist/{MarketplacePage-3NpZ0_SK.js → MarketplacePage-DFqsxNYU.js} +13 -13
- package/dist/MetricCard-B7yMyvMX.js +146 -0
- package/dist/{OrderDetailsPage-BeGWzAws.js → OrderDetailsPage-Dx1m3cVA.js} +34 -34
- package/dist/{OrdersListPage-DczM6NXa.js → OrdersListPage-DHYBGrWf.js} +78 -79
- package/dist/{PageLayout-3DR4pMQ9.js → PageLayout-D3N8MCTm.js} +628 -568
- package/dist/{ProductDetailsPage-Czcrqe2F.js → ProductDetailsPage-DOXO90kb.js} +15 -15
- package/dist/{ProductsPage-DJhdrfox.js → ProductsPage-RLMTwWN0.js} +42 -40
- package/dist/{ReportsPage-DPqE4Q3D.js → ReportsPage-Df3hciPy.js} +10 -10
- package/dist/{RouteDetailsPage-j6ZczLRT.js → RouteDetailsPage-xzFDeR-X.js} +22 -22
- package/dist/{RoutesPage-OZM7lJDi.js → RoutesPage-DDFy1QVi.js} +32 -30
- package/dist/{SettingsPage-v6vRyIAp.js → SettingsPage-JH_-UPbf.js} +7 -7
- package/dist/{StatusBadge-elLZA4Wl.js → StatusBadge-CijYQXtb.js} +5 -2
- package/dist/{TrackingPage-CBmGvTW_.js → TrackingPage-CU0Vk4mx.js} +31 -31
- package/dist/{VehicleDetailsPage-DJXYkTN2.js → VehicleDetailsPage-P4xDttKw.js} +21 -21
- package/dist/VehiclesPage-tJZ64QKV.js +129 -0
- package/dist/{WarehouseDetailsPage-nMZvp56W.js → WarehouseDetailsPage-Bt_w2Yf7.js} +19 -19
- package/dist/{WarehousesPage-BcJ_QrK3.js → WarehousesPage-HsPpEFeG.js} +40 -35
- package/dist/arrow-left-CBpZKkpq.js +11 -0
- package/dist/{box-CnErOGkD.js → box-CAaiElsb.js} +2 -2
- package/dist/{chart-column-CFT0jC9N.js → chart-column-D1Ym15-S.js} +2 -2
- package/dist/chevron-right-BIFGi0UA.js +8 -0
- package/dist/{circle-alert-B2pZQFzu.js → circle-alert-DjmNo5_L.js} +2 -2
- package/dist/circle-check-big-CjuPVo3_.js +11 -0
- package/dist/{clock-DP-76dyQ.js → clock-BjkdnddD.js} +2 -2
- package/dist/{dollar-sign-CrwqdoEC.js → dollar-sign-IB4O0wuQ.js} +2 -2
- package/dist/{download-CQqBpPk5.js → download-Dpa9vqoG.js} +2 -2
- package/dist/{file-text-CnHcsdsc.js → file-text-C8Uioy11.js} +2 -2
- package/dist/filter-Da5OZaHI.js +8 -0
- package/dist/index.js +52 -50
- package/dist/{map-qljBUQ1N.js → map-_Per4sT9.js} +2 -2
- package/dist/{map-pin-4a-IA2NP.js → map-pin-BSaf5IDL.js} +2 -2
- package/dist/navigation-DaTbrhw2.js +8 -0
- package/dist/{package-CPePjBwW.js → package-BE7U0wQE.js} +2 -2
- package/dist/{phone-2rkA8w_3.js → phone-DV4StZiA.js} +2 -2
- package/dist/plus-Dl1rLeJR.js +11 -0
- package/dist/{refresh-cw-oWEqfHnS.js → refresh-cw-CWfERAit.js} +2 -2
- package/dist/{route-DBljW-z4.js → route-Dp9JiN_E.js} +2 -2
- package/dist/{save-Cjsx5R5Y.js → save-XH8vydOn.js} +2 -2
- package/dist/search-OxoIiL_C.js +13 -0
- package/dist/{settings-CX94mtOc.js → settings-3Rw5NwFF.js} +2 -2
- package/dist/{square-pen-BIgbw83U.js → square-pen-hLIbFQFV.js} +2 -2
- package/dist/{star-BW23nRLp.js → star-YsVV3MNQ.js} +2 -2
- package/dist/{store-Cdk0UEPT.js → store-RCBl7HB-.js} +2 -2
- package/dist/{trending-up-DYQ3Xns5.js → trending-up-C-85AwGT.js} +2 -2
- package/dist/{triangle-alert-Ck_oBZ7n.js → triangle-alert-BOhfGgmh.js} +2 -2
- package/dist/{truck-Cd54agV-.js → truck-CtDjNFbi.js} +2 -2
- package/dist/{user-CUEmQUkJ.js → user-Dz5TJZFs.js} +2 -2
- package/dist/{users-e-wRlQnX.js → users-g2N0eL-Z.js} +2 -2
- package/dist/{warehouse-DXnNb4kf.js → warehouse-D3WWDeTX.js} +2 -2
- package/dist/{wrench-DYJo0U8_.js → wrench-CmxY1n4I.js} +2 -2
- package/package.json +2 -2
- package/src/dev/main.tsx +4 -4
- package/src/movethewheels/MoveTheWheelsRoutes.tsx +1 -1
- package/src/movethewheels/components/DataTable.tsx +10 -10
- package/src/movethewheels/components/MetricCard.tsx +52 -23
- package/src/movethewheels/components/PageLayout.tsx +70 -15
- package/src/movethewheels/components/StatusBadge.tsx +2 -1
- package/src/movethewheels/components/ui.tsx +3 -3
- package/src/movethewheels/pages/AIAssistantPage.tsx +3 -3
- package/src/movethewheels/pages/AnalyticsPage.tsx +13 -13
- package/src/movethewheels/pages/CreateOrderPage.tsx +2 -2
- package/src/movethewheels/pages/CustomerDetailsPage.tsx +14 -14
- package/src/movethewheels/pages/CustomersPage.tsx +14 -13
- package/src/movethewheels/pages/DashboardPage.tsx +71 -64
- package/src/movethewheels/pages/DriverDetailsPage.tsx +17 -17
- package/src/movethewheels/pages/DriversPage.tsx +12 -15
- package/src/movethewheels/pages/FinancePage.tsx +4 -4
- package/src/movethewheels/pages/FleetPage.tsx +23 -18
- package/src/movethewheels/pages/ImportExportPage.tsx +5 -5
- package/src/movethewheels/pages/InventoryPage.tsx +25 -18
- package/src/movethewheels/pages/LiveTrackingPage.tsx +18 -18
- package/src/movethewheels/pages/MarketplacePage.tsx +6 -6
- package/src/movethewheels/pages/OrderDetailsPage.tsx +20 -20
- package/src/movethewheels/pages/OrdersListPage.tsx +22 -16
- package/src/movethewheels/pages/ProductDetailsPage.tsx +8 -8
- package/src/movethewheels/pages/ProductsPage.tsx +10 -13
- package/src/movethewheels/pages/ReportsPage.tsx +5 -5
- package/src/movethewheels/pages/RouteDetailsPage.tsx +13 -13
- package/src/movethewheels/pages/RoutesPage.tsx +12 -9
- package/src/movethewheels/pages/SettingsPage.tsx +2 -2
- package/src/movethewheels/pages/TrackingPage.tsx +23 -23
- package/src/movethewheels/pages/VehicleDetailsPage.tsx +13 -13
- package/src/movethewheels/pages/VehiclesPage.tsx +11 -17
- package/src/movethewheels/pages/WarehouseDetailsPage.tsx +11 -11
- package/src/movethewheels/pages/WarehousesPage.tsx +11 -12
- package/dist/CustomersPage-DXnx04Au.js +0 -119
- package/dist/DriversPage-CRursDRZ.js +0 -127
- package/dist/MetricCard-BDcT-7Ei.js +0 -135
- package/dist/VehiclesPage-r_snhuEj.js +0 -127
- package/dist/arrow-left-Crb7WKr1.js +0 -11
- package/dist/chevron-right-Bzo6Rr8_.js +0 -8
- package/dist/circle-check-big-R_fjEgxM.js +0 -11
- package/dist/filter-CgTF21j9.js +0 -8
- package/dist/navigation-CqRTj3vI.js +0 -8
- package/dist/plus-Dew5yoQK.js +0 -11
- package/dist/search-FWYzDbBx.js +0 -13
|
@@ -1,82 +1,88 @@
|
|
|
1
|
-
import { M as e, a as t, d as n, f as r, g as i, h as a, i as o, l as s, u as c } from "./PageLayout-
|
|
2
|
-
import { t as l } from "./chevron-right-
|
|
3
|
-
import { t as u } from "./clock-
|
|
4
|
-
import { t as d } from "./dollar-sign-
|
|
5
|
-
import { t as f } from "./map-pin-
|
|
6
|
-
import { t as p } from "./package-
|
|
7
|
-
import { t as m } from "./trending-up-
|
|
8
|
-
import { t as h } from "./triangle-alert-
|
|
9
|
-
import { t as g } from "./truck-
|
|
10
|
-
import { t as _ } from "./users-
|
|
1
|
+
import { M as e, a as t, d as n, f as r, g as i, h as a, i as o, l as s, u as c } from "./PageLayout-D3N8MCTm.js";
|
|
2
|
+
import { t as l } from "./chevron-right-BIFGi0UA.js";
|
|
3
|
+
import { t as u } from "./clock-BjkdnddD.js";
|
|
4
|
+
import { t as d } from "./dollar-sign-IB4O0wuQ.js";
|
|
5
|
+
import { t as f } from "./map-pin-BSaf5IDL.js";
|
|
6
|
+
import { t as p } from "./package-BE7U0wQE.js";
|
|
7
|
+
import { t as m } from "./trending-up-C-85AwGT.js";
|
|
8
|
+
import { t as h } from "./triangle-alert-BOhfGgmh.js";
|
|
9
|
+
import { t as g } from "./truck-CtDjNFbi.js";
|
|
10
|
+
import { t as _ } from "./users-g2N0eL-Z.js";
|
|
11
11
|
import { r as v } from "./graphqlClient-CdJyR_ed.js";
|
|
12
12
|
import { n as y, r as b } from "./useOrders-D_3_hGMp.js";
|
|
13
13
|
import { i as x } from "./useFleet-BdETplNE.js";
|
|
14
14
|
import { n as S } from "./useAnalytics-ph7eTIK6.js";
|
|
15
15
|
import { r as C } from "./useTracking-De2KIUNu.js";
|
|
16
|
-
import { r as w, t as T } from "./MetricCard-
|
|
17
|
-
import { r as E } from "./StatusBadge-
|
|
16
|
+
import { r as w, t as T } from "./MetricCard-B7yMyvMX.js";
|
|
17
|
+
import { r as E } from "./StatusBadge-CijYQXtb.js";
|
|
18
18
|
import { n as D, r as O } from "./formatters-_vJlC-47.js";
|
|
19
19
|
import { t as k } from "./navigation-BgnOfsVd.js";
|
|
20
20
|
import { jsx as A, jsxs as j } from "react/jsx-runtime";
|
|
21
|
-
import {
|
|
21
|
+
import { CTAOverflowMenu as M, EmphasisPanel as N } from "@burdenoff/fe-libs/ui";
|
|
22
|
+
import { useI18n as P } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
|
|
22
23
|
//#region src/movethewheels/pages/DashboardPage.tsx
|
|
23
|
-
function
|
|
24
|
-
let { t:
|
|
25
|
-
let n =
|
|
24
|
+
function F() {
|
|
25
|
+
let { t: F } = P(), I = (e, t) => {
|
|
26
|
+
let n = F(e);
|
|
26
27
|
return n === e ? t : n;
|
|
27
|
-
}, { basePath:
|
|
28
|
-
|
|
28
|
+
}, { basePath: L, navigate: R } = v(), { metrics: z } = S(), { orders: B } = b({ limit: 5 }), { stats: V } = y(), { stats: H } = x(), { activeDeliveries: U } = C(), W = (e) => {
|
|
29
|
+
R && R(k(L, e));
|
|
29
30
|
};
|
|
30
31
|
return /* @__PURE__ */ j(o, {
|
|
31
|
-
|
|
32
|
-
|
|
32
|
+
hero: !0,
|
|
33
|
+
titleAccent: I("movethewheels.dashboard.title", "Dashboard"),
|
|
34
|
+
title: I("movethewheels.dashboard.title", "Dashboard"),
|
|
35
|
+
subtitle: I("movethewheels.dashboard.subtitle", "Overview of your logistics operations"),
|
|
33
36
|
icon: /* @__PURE__ */ A(m, { size: 24 }),
|
|
34
|
-
headerActions: /* @__PURE__ */
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
37
|
+
headerActions: /* @__PURE__ */ A(M, {
|
|
38
|
+
primary: {
|
|
39
|
+
label: I("movethewheels.dashboard.actions.newOrder", "New Order"),
|
|
40
|
+
icon: /* @__PURE__ */ A(p, { size: 16 }),
|
|
41
|
+
onSelect: () => W("orders/new")
|
|
42
|
+
},
|
|
43
|
+
actions: [{
|
|
44
|
+
label: I("movethewheels.dashboard.actions.liveMap", "Live Map"),
|
|
45
|
+
icon: /* @__PURE__ */ A(f, { size: 16 }),
|
|
46
|
+
onSelect: () => W("tracking/live")
|
|
47
|
+
}]
|
|
44
48
|
}),
|
|
45
49
|
children: [
|
|
46
50
|
/* @__PURE__ */ j(w, {
|
|
47
51
|
columns: 4,
|
|
48
52
|
children: [
|
|
49
53
|
/* @__PURE__ */ A(T, {
|
|
50
|
-
label:
|
|
51
|
-
value:
|
|
54
|
+
label: I("movethewheels.dashboard.metrics.totalOrders", "Total Orders"),
|
|
55
|
+
value: z.orders.total,
|
|
52
56
|
icon: /* @__PURE__ */ A(p, { size: 20 }),
|
|
53
|
-
change: `+${
|
|
57
|
+
change: `+${z.orders.today} ${I("movethewheels.dashboard.metrics.today", "today")}`,
|
|
54
58
|
changeType: "positive",
|
|
55
59
|
trend: "up",
|
|
56
|
-
onClick: () =>
|
|
60
|
+
onClick: () => W("orders")
|
|
57
61
|
}),
|
|
58
62
|
/* @__PURE__ */ A(T, {
|
|
59
|
-
label:
|
|
60
|
-
value:
|
|
63
|
+
label: I("movethewheels.dashboard.metrics.activeDeliveries", "Active Deliveries"),
|
|
64
|
+
value: z.orders.inTransit,
|
|
61
65
|
icon: /* @__PURE__ */ A(g, { size: 20 }),
|
|
62
|
-
subtitle: `${
|
|
63
|
-
onClick: () =>
|
|
66
|
+
subtitle: `${z.orders.pending} ${I("movethewheels.dashboard.metrics.pending", "pending")}`,
|
|
67
|
+
onClick: () => W("tracking")
|
|
64
68
|
}),
|
|
65
69
|
/* @__PURE__ */ A(T, {
|
|
66
|
-
label:
|
|
67
|
-
value: `${
|
|
70
|
+
label: I("movethewheels.dashboard.metrics.fleetUtilization", "Fleet Utilization"),
|
|
71
|
+
value: `${z.fleet.activeVehicles}/${z.fleet.totalVehicles}`,
|
|
68
72
|
icon: /* @__PURE__ */ A(g, { size: 20 }),
|
|
69
|
-
subtitle: `${
|
|
70
|
-
onClick: () =>
|
|
73
|
+
subtitle: `${z.fleet.availableDrivers} ${I("movethewheels.dashboard.metrics.driversAvailable", "drivers available")}`,
|
|
74
|
+
onClick: () => W("fleet")
|
|
71
75
|
}),
|
|
72
76
|
/* @__PURE__ */ A(T, {
|
|
73
|
-
|
|
74
|
-
|
|
77
|
+
treatment: "glass",
|
|
78
|
+
glow: !0,
|
|
79
|
+
label: I("movethewheels.dashboard.metrics.revenue", "Revenue"),
|
|
80
|
+
value: D(z.revenue.total),
|
|
75
81
|
icon: /* @__PURE__ */ A(d, { size: 20 }),
|
|
76
82
|
change: "+12.5%",
|
|
77
83
|
changeType: "positive",
|
|
78
84
|
trend: "up",
|
|
79
|
-
onClick: () =>
|
|
85
|
+
onClick: () => W("analytics")
|
|
80
86
|
})
|
|
81
87
|
]
|
|
82
88
|
}),
|
|
@@ -85,38 +91,38 @@ function N() {
|
|
|
85
91
|
children: [
|
|
86
92
|
/* @__PURE__ */ A(T, {
|
|
87
93
|
size: "sm",
|
|
88
|
-
label:
|
|
89
|
-
value: `${
|
|
90
|
-
changeType:
|
|
94
|
+
label: I("movethewheels.dashboard.stats.onTimeDelivery", "On-Time Delivery"),
|
|
95
|
+
value: `${z.performance.onTimeDeliveryRate.toFixed(1)}%`,
|
|
96
|
+
changeType: z.performance.onTimeDeliveryRate >= 90 ? "positive" : "negative"
|
|
91
97
|
}),
|
|
92
98
|
/* @__PURE__ */ A(T, {
|
|
93
99
|
size: "sm",
|
|
94
|
-
label:
|
|
95
|
-
value: D(
|
|
100
|
+
label: I("movethewheels.dashboard.stats.avgOrderValue", "Avg Order Value"),
|
|
101
|
+
value: D(z.revenue.avgOrderValue)
|
|
96
102
|
}),
|
|
97
103
|
/* @__PURE__ */ A(T, {
|
|
98
104
|
size: "sm",
|
|
99
|
-
label:
|
|
100
|
-
value:
|
|
101
|
-
subtitle:
|
|
105
|
+
label: I("movethewheels.dashboard.stats.driverRating", "Driver Rating"),
|
|
106
|
+
value: z.performance.avgDriverRating.toFixed(1),
|
|
107
|
+
subtitle: I("movethewheels.dashboard.stats.outOfFive", "out of 5")
|
|
102
108
|
}),
|
|
103
109
|
/* @__PURE__ */ A(T, {
|
|
104
110
|
size: "sm",
|
|
105
|
-
label:
|
|
106
|
-
value:
|
|
111
|
+
label: I("movethewheels.dashboard.stats.deliveredToday", "Delivered Today"),
|
|
112
|
+
value: z.orders.delivered
|
|
107
113
|
})
|
|
108
114
|
]
|
|
109
115
|
}),
|
|
110
116
|
/* @__PURE__ */ j("div", {
|
|
111
117
|
className: "grid grid-cols-1 lg:grid-cols-2 gap-6",
|
|
112
118
|
children: [/* @__PURE__ */ A(t, {
|
|
113
|
-
title:
|
|
119
|
+
title: I("movethewheels.dashboard.recentOrders.title", "Recent Orders"),
|
|
114
120
|
actions: /* @__PURE__ */ j(c, {
|
|
115
121
|
variant: "ghost",
|
|
116
122
|
size: "sm",
|
|
117
|
-
onClick: () =>
|
|
123
|
+
onClick: () => W("orders"),
|
|
118
124
|
children: [
|
|
119
|
-
|
|
125
|
+
I("movethewheels.dashboard.common.viewAll", "View all"),
|
|
120
126
|
" ",
|
|
121
127
|
/* @__PURE__ */ A(l, { size: 16 })
|
|
122
128
|
]
|
|
@@ -125,16 +131,16 @@ function N() {
|
|
|
125
131
|
className: "p-0",
|
|
126
132
|
children: /* @__PURE__ */ j("div", {
|
|
127
133
|
className: "divide-y",
|
|
128
|
-
children: [
|
|
129
|
-
className: "p-4 hover:bg-
|
|
130
|
-
onClick: () =>
|
|
134
|
+
children: [B.slice(0, 5).map((e) => /* @__PURE__ */ A("div", {
|
|
135
|
+
className: "p-4 hover:bg-bg-sunken/50 cursor-pointer transition-colors",
|
|
136
|
+
onClick: () => W(`orders/${e.id}`),
|
|
131
137
|
children: /* @__PURE__ */ j("div", {
|
|
132
138
|
className: "flex items-center justify-between",
|
|
133
139
|
children: [/* @__PURE__ */ j("div", { children: [/* @__PURE__ */ A("p", {
|
|
134
140
|
className: "font-medium",
|
|
135
141
|
children: e.orderNumber
|
|
136
142
|
}), /* @__PURE__ */ A("p", {
|
|
137
|
-
className: "text-sm text-
|
|
143
|
+
className: "text-sm text-text-secondary",
|
|
138
144
|
children: e.customerInfo.name
|
|
139
145
|
})] }), /* @__PURE__ */ j("div", {
|
|
140
146
|
className: "text-right",
|
|
@@ -143,25 +149,25 @@ function N() {
|
|
|
143
149
|
type: "order",
|
|
144
150
|
size: "sm"
|
|
145
151
|
}), /* @__PURE__ */ A("p", {
|
|
146
|
-
className: "text-sm text-
|
|
152
|
+
className: "text-sm text-text-secondary mt-1",
|
|
147
153
|
children: D(e.pricing.total)
|
|
148
154
|
})]
|
|
149
155
|
})]
|
|
150
156
|
})
|
|
151
|
-
}, e.id)),
|
|
152
|
-
className: "p-8 text-center text-
|
|
153
|
-
children:
|
|
157
|
+
}, e.id)), B.length === 0 && /* @__PURE__ */ A("div", {
|
|
158
|
+
className: "p-8 text-center text-text-secondary",
|
|
159
|
+
children: I("movethewheels.dashboard.recentOrders.empty", "No recent orders")
|
|
154
160
|
})]
|
|
155
161
|
})
|
|
156
162
|
}) })
|
|
157
163
|
}), /* @__PURE__ */ A(t, {
|
|
158
|
-
title:
|
|
164
|
+
title: I("movethewheels.dashboard.activeDeliveries.title", "Active Deliveries"),
|
|
159
165
|
actions: /* @__PURE__ */ j(c, {
|
|
160
166
|
variant: "ghost",
|
|
161
167
|
size: "sm",
|
|
162
|
-
onClick: () =>
|
|
168
|
+
onClick: () => W("tracking/live"),
|
|
163
169
|
children: [
|
|
164
|
-
|
|
170
|
+
I("movethewheels.dashboard.activeDeliveries.liveTracking", "Live tracking"),
|
|
165
171
|
" ",
|
|
166
172
|
/* @__PURE__ */ A(l, { size: 16 })
|
|
167
173
|
]
|
|
@@ -170,17 +176,17 @@ function N() {
|
|
|
170
176
|
className: "p-0",
|
|
171
177
|
children: /* @__PURE__ */ j("div", {
|
|
172
178
|
className: "divide-y",
|
|
173
|
-
children: [
|
|
174
|
-
className: "p-4 hover:bg-
|
|
175
|
-
onClick: () =>
|
|
179
|
+
children: [U.slice(0, 5).map((e) => e.order ? /* @__PURE__ */ A("div", {
|
|
180
|
+
className: "p-4 hover:bg-bg-sunken/50 cursor-pointer transition-colors",
|
|
181
|
+
onClick: () => W(`tracking?order=${e.order.id}`),
|
|
176
182
|
children: /* @__PURE__ */ j("div", {
|
|
177
183
|
className: "flex items-center justify-between",
|
|
178
184
|
children: [/* @__PURE__ */ j("div", { children: [/* @__PURE__ */ A("p", {
|
|
179
185
|
className: "font-medium",
|
|
180
186
|
children: e.order.orderNumber
|
|
181
187
|
}), /* @__PURE__ */ A("p", {
|
|
182
|
-
className: "text-sm text-
|
|
183
|
-
children: e.driver?.fullName ||
|
|
188
|
+
className: "text-sm text-text-secondary",
|
|
189
|
+
children: e.driver?.fullName || I("movethewheels.dashboard.activeDeliveries.unassigned", "Unassigned")
|
|
184
190
|
})] }), /* @__PURE__ */ j("div", {
|
|
185
191
|
className: "text-right",
|
|
186
192
|
children: [/* @__PURE__ */ A(E, {
|
|
@@ -188,18 +194,18 @@ function N() {
|
|
|
188
194
|
type: "order",
|
|
189
195
|
size: "sm"
|
|
190
196
|
}), /* @__PURE__ */ j("p", {
|
|
191
|
-
className: "text-sm text-
|
|
197
|
+
className: "text-sm text-text-secondary mt-1",
|
|
192
198
|
children: [
|
|
193
|
-
|
|
199
|
+
I("movethewheels.dashboard.activeDeliveries.eta", "ETA:"),
|
|
194
200
|
" ",
|
|
195
|
-
e.estimatedArrival ? O(e.estimatedArrival, "time") :
|
|
201
|
+
e.estimatedArrival ? O(e.estimatedArrival, "time") : I("movethewheels.dashboard.activeDeliveries.na", "N/A")
|
|
196
202
|
]
|
|
197
203
|
})]
|
|
198
204
|
})]
|
|
199
205
|
})
|
|
200
|
-
}, e.order.id) : null),
|
|
201
|
-
className: "p-8 text-center text-
|
|
202
|
-
children:
|
|
206
|
+
}, e.order.id) : null), U.length === 0 && /* @__PURE__ */ A("div", {
|
|
207
|
+
className: "p-8 text-center text-text-secondary",
|
|
208
|
+
children: I("movethewheels.dashboard.activeDeliveries.empty", "No active deliveries")
|
|
203
209
|
})]
|
|
204
210
|
})
|
|
205
211
|
}) })
|
|
@@ -208,32 +214,32 @@ function N() {
|
|
|
208
214
|
/* @__PURE__ */ j("div", {
|
|
209
215
|
className: "grid grid-cols-1 lg:grid-cols-3 gap-6",
|
|
210
216
|
children: [
|
|
211
|
-
/* @__PURE__ */ j(
|
|
212
|
-
className: "text-base",
|
|
213
|
-
children: P("movethewheels.dashboard.orderStatus.title", "Order Status")
|
|
214
|
-
}) }), /* @__PURE__ */ A(r, {
|
|
217
|
+
/* @__PURE__ */ j(N, {
|
|
215
218
|
className: "space-y-4",
|
|
216
|
-
children: /* @__PURE__ */ A("
|
|
219
|
+
children: [/* @__PURE__ */ A("h2", {
|
|
220
|
+
className: "text-base font-semibold text-text-primary",
|
|
221
|
+
children: I("movethewheels.dashboard.orderStatus.title", "Order Status")
|
|
222
|
+
}), /* @__PURE__ */ A("div", {
|
|
217
223
|
className: "space-y-3",
|
|
218
224
|
children: [
|
|
219
225
|
{
|
|
220
226
|
status: "pending",
|
|
221
|
-
count:
|
|
227
|
+
count: V.byStatus.pending,
|
|
222
228
|
color: "bg-yellow-500"
|
|
223
229
|
},
|
|
224
230
|
{
|
|
225
231
|
status: "in_transit",
|
|
226
|
-
count:
|
|
232
|
+
count: V.byStatus.in_transit,
|
|
227
233
|
color: "bg-blue-500"
|
|
228
234
|
},
|
|
229
235
|
{
|
|
230
236
|
status: "delivered",
|
|
231
|
-
count:
|
|
237
|
+
count: V.byStatus.delivered,
|
|
232
238
|
color: "bg-green-500"
|
|
233
239
|
},
|
|
234
240
|
{
|
|
235
241
|
status: "cancelled",
|
|
236
|
-
count:
|
|
242
|
+
count: V.byStatus.cancelled,
|
|
237
243
|
color: "bg-red-500"
|
|
238
244
|
}
|
|
239
245
|
].map(({ status: e, count: t, color: n }) => /* @__PURE__ */ j("div", {
|
|
@@ -242,56 +248,57 @@ function N() {
|
|
|
242
248
|
className: "flex items-center gap-2",
|
|
243
249
|
children: [/* @__PURE__ */ A("div", { className: `w-2 h-2 rounded-full ${n}` }), /* @__PURE__ */ A("span", {
|
|
244
250
|
className: "text-sm capitalize",
|
|
245
|
-
children:
|
|
251
|
+
children: I(`movethewheels.dashboard.orderStatus.status.${e}`, e.replace("_", " "))
|
|
246
252
|
})]
|
|
247
253
|
}), /* @__PURE__ */ A(s, {
|
|
248
254
|
variant: "secondary",
|
|
255
|
+
className: "tabular-nums",
|
|
249
256
|
children: t
|
|
250
257
|
})]
|
|
251
258
|
}, e))
|
|
252
|
-
})
|
|
253
|
-
})
|
|
259
|
+
})]
|
|
260
|
+
}),
|
|
254
261
|
/* @__PURE__ */ j(n, { children: [/* @__PURE__ */ A(a, { children: /* @__PURE__ */ A(i, {
|
|
255
262
|
className: "text-base",
|
|
256
|
-
children:
|
|
263
|
+
children: I("movethewheels.dashboard.fleetStatus.title", "Fleet Status")
|
|
257
264
|
}) }), /* @__PURE__ */ j(r, {
|
|
258
265
|
className: "space-y-4",
|
|
259
266
|
children: [/* @__PURE__ */ j("div", {
|
|
260
267
|
className: "space-y-2",
|
|
261
268
|
children: [/* @__PURE__ */ j("div", {
|
|
262
269
|
className: "flex justify-between text-sm",
|
|
263
|
-
children: [/* @__PURE__ */ A("span", { children:
|
|
264
|
-
}), /* @__PURE__ */ A(e, { value:
|
|
270
|
+
children: [/* @__PURE__ */ A("span", { children: I("movethewheels.dashboard.fleetStatus.vehicleUtilization", "Vehicle Utilization") }), /* @__PURE__ */ j("span", { children: [H.utilization.toFixed(0), "%"] })]
|
|
271
|
+
}), /* @__PURE__ */ A(e, { value: H.utilization })]
|
|
265
272
|
}), /* @__PURE__ */ j("div", {
|
|
266
273
|
className: "grid grid-cols-2 gap-4 text-sm",
|
|
267
274
|
children: [
|
|
268
275
|
/* @__PURE__ */ j("div", { children: [/* @__PURE__ */ A("p", {
|
|
269
|
-
className: "text-
|
|
270
|
-
children:
|
|
276
|
+
className: "text-text-secondary",
|
|
277
|
+
children: I("movethewheels.dashboard.fleetStatus.available", "Available")
|
|
271
278
|
}), /* @__PURE__ */ A("p", {
|
|
272
279
|
className: "text-lg font-semibold text-green-600",
|
|
273
|
-
children:
|
|
280
|
+
children: H.vehiclesByStatus.available
|
|
274
281
|
})] }),
|
|
275
282
|
/* @__PURE__ */ j("div", { children: [/* @__PURE__ */ A("p", {
|
|
276
|
-
className: "text-
|
|
277
|
-
children:
|
|
283
|
+
className: "text-text-secondary",
|
|
284
|
+
children: I("movethewheels.dashboard.fleetStatus.inUse", "In Use")
|
|
278
285
|
}), /* @__PURE__ */ A("p", {
|
|
279
286
|
className: "text-lg font-semibold text-blue-600",
|
|
280
|
-
children:
|
|
287
|
+
children: H.vehiclesByStatus.assigned
|
|
281
288
|
})] }),
|
|
282
289
|
/* @__PURE__ */ j("div", { children: [/* @__PURE__ */ A("p", {
|
|
283
|
-
className: "text-
|
|
284
|
-
children:
|
|
290
|
+
className: "text-text-secondary",
|
|
291
|
+
children: I("movethewheels.dashboard.fleetStatus.maintenance", "Maintenance")
|
|
285
292
|
}), /* @__PURE__ */ A("p", {
|
|
286
293
|
className: "text-lg font-semibold text-yellow-600",
|
|
287
|
-
children:
|
|
294
|
+
children: H.vehiclesByStatus.maintenance
|
|
288
295
|
})] }),
|
|
289
296
|
/* @__PURE__ */ j("div", { children: [/* @__PURE__ */ A("p", {
|
|
290
|
-
className: "text-
|
|
291
|
-
children:
|
|
297
|
+
className: "text-text-secondary",
|
|
298
|
+
children: I("movethewheels.dashboard.fleetStatus.avgFuel", "Avg Fuel")
|
|
292
299
|
}), /* @__PURE__ */ j("p", {
|
|
293
300
|
className: "text-lg font-semibold",
|
|
294
|
-
children: [
|
|
301
|
+
children: [H.avgFuelLevel.toFixed(0), "%"]
|
|
295
302
|
})] })
|
|
296
303
|
]
|
|
297
304
|
})]
|
|
@@ -301,66 +308,66 @@ function N() {
|
|
|
301
308
|
children: [/* @__PURE__ */ A(h, {
|
|
302
309
|
size: 16,
|
|
303
310
|
className: "text-yellow-500"
|
|
304
|
-
}),
|
|
311
|
+
}), I("movethewheels.dashboard.alerts.title", "Alerts")]
|
|
305
312
|
}) }), /* @__PURE__ */ A(r, { children: /* @__PURE__ */ j("div", {
|
|
306
313
|
className: "space-y-3",
|
|
307
314
|
children: [
|
|
308
|
-
|
|
315
|
+
V.byStatus.pending > 5 && /* @__PURE__ */ j("div", {
|
|
309
316
|
className: "flex items-start gap-3 p-2 rounded bg-yellow-50 dark:bg-yellow-900/20",
|
|
310
317
|
children: [/* @__PURE__ */ A(u, {
|
|
311
318
|
size: 16,
|
|
312
319
|
className: "text-yellow-600 mt-0.5"
|
|
313
320
|
}), /* @__PURE__ */ j("div", { children: [/* @__PURE__ */ A("p", {
|
|
314
321
|
className: "text-sm font-medium",
|
|
315
|
-
children:
|
|
322
|
+
children: I("movethewheels.dashboard.alerts.pendingOrders.title", "Pending Orders")
|
|
316
323
|
}), /* @__PURE__ */ j("p", {
|
|
317
|
-
className: "text-xs text-
|
|
324
|
+
className: "text-xs text-text-secondary",
|
|
318
325
|
children: [
|
|
319
|
-
|
|
326
|
+
V.byStatus.pending,
|
|
320
327
|
" ",
|
|
321
|
-
|
|
328
|
+
I("movethewheels.dashboard.alerts.pendingOrders.description", "orders awaiting confirmation")
|
|
322
329
|
]
|
|
323
330
|
})] })]
|
|
324
331
|
}),
|
|
325
|
-
|
|
332
|
+
H.vehiclesByStatus.maintenance > 0 && /* @__PURE__ */ j("div", {
|
|
326
333
|
className: "flex items-start gap-3 p-2 rounded bg-orange-50 dark:bg-orange-900/20",
|
|
327
334
|
children: [/* @__PURE__ */ A(g, {
|
|
328
335
|
size: 16,
|
|
329
336
|
className: "text-orange-600 mt-0.5"
|
|
330
337
|
}), /* @__PURE__ */ j("div", { children: [/* @__PURE__ */ A("p", {
|
|
331
338
|
className: "text-sm font-medium",
|
|
332
|
-
children:
|
|
339
|
+
children: I("movethewheels.dashboard.alerts.maintenanceVehicles.title", "Vehicles in Maintenance")
|
|
333
340
|
}), /* @__PURE__ */ j("p", {
|
|
334
|
-
className: "text-xs text-
|
|
341
|
+
className: "text-xs text-text-secondary",
|
|
335
342
|
children: [
|
|
336
|
-
|
|
343
|
+
H.vehiclesByStatus.maintenance,
|
|
337
344
|
" ",
|
|
338
|
-
|
|
345
|
+
I("movethewheels.dashboard.alerts.maintenanceVehicles.description", "vehicles unavailable")
|
|
339
346
|
]
|
|
340
347
|
})] })]
|
|
341
348
|
}),
|
|
342
|
-
|
|
349
|
+
H.driversByStatus.offline > 0 && /* @__PURE__ */ j("div", {
|
|
343
350
|
className: "flex items-start gap-3 p-2 rounded bg-gray-50 dark:bg-gray-800",
|
|
344
351
|
children: [/* @__PURE__ */ A(_, {
|
|
345
352
|
size: 16,
|
|
346
353
|
className: "text-gray-600 mt-0.5"
|
|
347
354
|
}), /* @__PURE__ */ j("div", { children: [/* @__PURE__ */ A("p", {
|
|
348
355
|
className: "text-sm font-medium",
|
|
349
|
-
children:
|
|
356
|
+
children: I("movethewheels.dashboard.alerts.offlineDrivers.title", "Offline Drivers")
|
|
350
357
|
}), /* @__PURE__ */ j("p", {
|
|
351
|
-
className: "text-xs text-
|
|
358
|
+
className: "text-xs text-text-secondary",
|
|
352
359
|
children: [
|
|
353
|
-
|
|
360
|
+
H.driversByStatus.offline,
|
|
354
361
|
" ",
|
|
355
|
-
|
|
362
|
+
I("movethewheels.dashboard.alerts.offlineDrivers.description", "drivers currently offline")
|
|
356
363
|
]
|
|
357
364
|
})] })]
|
|
358
365
|
}),
|
|
359
|
-
|
|
360
|
-
className: "text-center py-4 text-
|
|
366
|
+
V.byStatus.pending <= 5 && H.vehiclesByStatus.maintenance === 0 && H.driversByStatus.offline === 0 && /* @__PURE__ */ A("div", {
|
|
367
|
+
className: "text-center py-4 text-text-secondary",
|
|
361
368
|
children: /* @__PURE__ */ A("p", {
|
|
362
369
|
className: "text-sm",
|
|
363
|
-
children:
|
|
370
|
+
children: I("movethewheels.dashboard.alerts.allOperational", "All systems operational")
|
|
364
371
|
})
|
|
365
372
|
})
|
|
366
373
|
]
|
|
@@ -371,4 +378,4 @@ function N() {
|
|
|
371
378
|
});
|
|
372
379
|
}
|
|
373
380
|
//#endregion
|
|
374
|
-
export {
|
|
381
|
+
export { F as default };
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { A as e, B as t, F as n, G as r, H as i, I as a, K as o, L as s, P as c, R as l, U as u, W as d, it as f, q as p, rt as m, u as h } from "./PageLayout-
|
|
2
|
-
import { t as g } from "./chevron-right-
|
|
3
|
-
import { t as _ } from "./search-
|
|
1
|
+
import { A as e, B as t, F as n, G as r, H as i, I as a, K as o, L as s, P as c, R as l, U as u, W as d, it as f, q as p, rt as m, u as h } from "./PageLayout-D3N8MCTm.js";
|
|
2
|
+
import { t as g } from "./chevron-right-BIFGi0UA.js";
|
|
3
|
+
import { t as _ } from "./search-OxoIiL_C.js";
|
|
4
4
|
import { useMemo as v, useState as y } from "react";
|
|
5
5
|
import { jsx as b, jsxs as x } from "react/jsx-runtime";
|
|
6
|
-
//#region
|
|
6
|
+
//#region node_modules/lucide-react/dist/esm/icons/arrow-down.js
|
|
7
7
|
var S = f("ArrowDown", [["path", {
|
|
8
8
|
d: "M12 5v14",
|
|
9
9
|
key: "s699le"
|
|
@@ -94,7 +94,7 @@ function O({ columns: f, data: O, isLoading: ee = !1, searchable: k = !1, search
|
|
|
94
94
|
M
|
|
95
95
|
]), $ = Math.ceil(Z.length / J), te = (e) => {
|
|
96
96
|
H === e ? W === "asc" ? G("desc") : W === "desc" && (U(null), G(null)) : (U(e), G("asc"));
|
|
97
|
-
}, ne = (e) => H === e ? b(W === "asc" ? w : S, { className: "w-4 h-4 text-primary" }) : /* @__PURE__ */ b(C, { className: "w-4 h-4 text-
|
|
97
|
+
}, ne = (e) => H === e ? b(W === "asc" ? w : S, { className: "w-4 h-4 text-primary" }) : /* @__PURE__ */ b(C, { className: "w-4 h-4 text-text-secondary/50" }), re = (e, t) => {
|
|
98
98
|
if (t.cell) return t.cell(e);
|
|
99
99
|
if (t.accessorKey) {
|
|
100
100
|
let n = e[t.accessorKey];
|
|
@@ -108,8 +108,8 @@ function O({ columns: f, data: O, isLoading: ee = !1, searchable: k = !1, search
|
|
|
108
108
|
className: "flex items-center gap-4",
|
|
109
109
|
children: /* @__PURE__ */ b(t, { className: "h-10 w-64" })
|
|
110
110
|
}), /* @__PURE__ */ b("div", {
|
|
111
|
-
className: "rounded-
|
|
112
|
-
children: /* @__PURE__ */ x(i, { children: [/* @__PURE__ */ b(o, { children: /* @__PURE__ */ b(p, { children: f.map((e) => /* @__PURE__ */ b(r, { children: /* @__PURE__ */ b(t, { className: "h-4 w-20" }) }, e.id)) }) }), /* @__PURE__ */ b(u, { children: Array.from({ length: 5 }).map((e, n) => /* @__PURE__ */ b(p, { children: f.map((e) => /* @__PURE__ */ b(d, { children: /* @__PURE__ */ b(t, { className: "h-4 w-full max-w-[100px]" }) }, e.id)) }, n)) })] })
|
|
111
|
+
className: "rounded-card border border-border-seam bg-bg-surface shadow-elevation-1",
|
|
112
|
+
children: /* @__PURE__ */ x(i, { children: [/* @__PURE__ */ b(o, { children: /* @__PURE__ */ b(p, { children: f.map((e) => /* @__PURE__ */ b(r, { children: /* @__PURE__ */ b(t, { className: "h-4 w-20 motion-safe:animate-vc-shimmer" }) }, e.id)) }) }), /* @__PURE__ */ b(u, { children: Array.from({ length: 5 }).map((e, n) => /* @__PURE__ */ b(p, { children: f.map((e) => /* @__PURE__ */ b(d, { children: /* @__PURE__ */ b(t, { className: "h-4 w-full max-w-[100px] motion-safe:animate-vc-shimmer" }) }, e.id)) }, n)) })] })
|
|
113
113
|
})]
|
|
114
114
|
}) : /* @__PURE__ */ x("div", {
|
|
115
115
|
className: m("space-y-4", R),
|
|
@@ -118,7 +118,7 @@ function O({ columns: f, data: O, isLoading: ee = !1, searchable: k = !1, search
|
|
|
118
118
|
className: "flex items-center gap-4",
|
|
119
119
|
children: /* @__PURE__ */ x("div", {
|
|
120
120
|
className: "relative flex-1 max-w-sm",
|
|
121
|
-
children: [/* @__PURE__ */ b(_, { className: "absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-
|
|
121
|
+
children: [/* @__PURE__ */ b(_, { className: "absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-text-secondary" }), /* @__PURE__ */ b(e, {
|
|
122
122
|
placeholder: A,
|
|
123
123
|
value: B,
|
|
124
124
|
onChange: (e) => {
|
|
@@ -129,9 +129,9 @@ function O({ columns: f, data: O, isLoading: ee = !1, searchable: k = !1, search
|
|
|
129
129
|
})
|
|
130
130
|
}),
|
|
131
131
|
/* @__PURE__ */ b("div", {
|
|
132
|
-
className: "rounded-
|
|
132
|
+
className: "overflow-x-auto rounded-card border border-border-seam bg-bg-surface shadow-elevation-1",
|
|
133
133
|
children: /* @__PURE__ */ x(i, { children: [/* @__PURE__ */ b(o, { children: /* @__PURE__ */ b(p, { children: f.map((e) => /* @__PURE__ */ b(r, {
|
|
134
|
-
className: m(e.sortable && "cursor-pointer select-none hover:bg-
|
|
134
|
+
className: m(e.sortable && "cursor-pointer select-none hover:bg-bg-sunken/50", e.headerClassName),
|
|
135
135
|
onClick: () => e.sortable && te(e.id),
|
|
136
136
|
children: /* @__PURE__ */ x("div", {
|
|
137
137
|
className: "flex items-center gap-2",
|
|
@@ -141,13 +141,13 @@ function O({ columns: f, data: O, isLoading: ee = !1, searchable: k = !1, search
|
|
|
141
141
|
colSpan: f.length,
|
|
142
142
|
className: "h-24 text-center",
|
|
143
143
|
children: /* @__PURE__ */ b("p", {
|
|
144
|
-
className: "text-
|
|
144
|
+
className: "text-text-secondary",
|
|
145
145
|
children: L
|
|
146
146
|
})
|
|
147
147
|
}) }) : Q.map((e, t) => {
|
|
148
148
|
let n = z ? z(e) : t, r = typeof I == "function" ? I(e) : I;
|
|
149
149
|
return /* @__PURE__ */ b(p, {
|
|
150
|
-
className: m(F && "cursor-pointer hover:bg-
|
|
150
|
+
className: m(F && "cursor-pointer hover:bg-bg-sunken/50", r),
|
|
151
151
|
onClick: () => F?.(e),
|
|
152
152
|
children: f.map((t) => /* @__PURE__ */ b(d, {
|
|
153
153
|
className: t.className,
|
|
@@ -159,7 +159,7 @@ function O({ columns: f, data: O, isLoading: ee = !1, searchable: k = !1, search
|
|
|
159
159
|
M && Z.length > 0 && /* @__PURE__ */ x("div", {
|
|
160
160
|
className: "flex items-center justify-between",
|
|
161
161
|
children: [/* @__PURE__ */ x("div", {
|
|
162
|
-
className: "flex items-center gap-2 text-sm text-
|
|
162
|
+
className: "flex items-center gap-2 text-sm text-text-secondary",
|
|
163
163
|
children: [
|
|
164
164
|
/* @__PURE__ */ x("span", { children: [
|
|
165
165
|
"Showing ",
|