@burdenoff/microfe-movethewheels 2026.625.1 → 2026.626.2
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-CNyoKtID.js → AIAssistantPage-AvsMbunM.js} +35 -29
- package/dist/{AnalyticsPage-Ck615ox7.js → AnalyticsPage-CCLfHgQZ.js} +36 -25
- package/dist/CreateOrderPage-CjlnEtk3.js +510 -0
- package/dist/CustomerDetailsPage-I6cdDHUi.js +265 -0
- package/dist/CustomersPage-CGGfD4ki.js +163 -0
- package/dist/{DashboardPage-DTmyuC11.js → DashboardPage-D2HRqwg9.js} +93 -89
- package/dist/DataTable-CD9ZhpLB.js +249 -0
- package/dist/DriverDetailsPage-rg_pGNuP.js +330 -0
- package/dist/DriversPage-DKiynISH.js +167 -0
- package/dist/FinancePage-Vg8WPs38.js +158 -0
- package/dist/{FleetPage-DCfOmBa2.js → FleetPage-DddXt8r8.js} +109 -71
- package/dist/ImportExportPage-BW6qO3kc.js +248 -0
- package/dist/{InventoryPage-BW0QXWuf.js → InventoryPage-rMGuaJN-.js} +74 -70
- package/dist/LiveTrackingPage-DQ1q4Id3.js +375 -0
- package/dist/MarketplacePage-DKrXAv62.js +219 -0
- package/dist/OrderDetailsPage-CFASgsYX.js +431 -0
- package/dist/OrdersListPage-BHeT8S5o.js +309 -0
- package/dist/ProductDetailsPage-CFGcbaHo.js +195 -0
- package/dist/ProductsPage--xEpbQ8A.js +171 -0
- package/dist/{ReportsPage-Df3hciPy.js → ReportsPage-Bb7_90rK.js} +53 -45
- package/dist/RouteDetailsPage-CVtDVb1N.js +282 -0
- package/dist/RoutesPage-s57PtgcQ.js +163 -0
- package/dist/SettingsPage-BYNCBOpN.js +298 -0
- package/dist/{TrackingPage-CU0Vk4mx.js → TrackingPage-CcRc_dva.js} +77 -72
- package/dist/VehicleDetailsPage-3YDMPsPs.js +220 -0
- package/dist/VehiclesPage-UlxPWP9K.js +167 -0
- package/dist/WarehouseDetailsPage-Db7KeN-d.js +238 -0
- package/dist/WarehousesPage-CuTO-OPp.js +164 -0
- package/dist/index.js +2 -2
- package/package.json +2 -2
- package/src/movethewheels/components/DataTable.tsx +37 -2
- package/src/movethewheels/components/MetricCard.tsx +3 -1
- package/src/movethewheels/pages/AIAssistantPage.tsx +11 -3
- package/src/movethewheels/pages/AnalyticsPage.tsx +31 -25
- package/src/movethewheels/pages/CreateOrderPage.tsx +56 -17
- package/src/movethewheels/pages/CustomerDetailsPage.tsx +63 -38
- package/src/movethewheels/pages/CustomersPage.tsx +40 -2
- package/src/movethewheels/pages/DashboardPage.tsx +8 -1
- package/src/movethewheels/pages/DriverDetailsPage.tsx +57 -26
- package/src/movethewheels/pages/DriversPage.tsx +37 -1
- package/src/movethewheels/pages/FinancePage.tsx +45 -41
- package/src/movethewheels/pages/FleetPage.tsx +68 -25
- package/src/movethewheels/pages/ImportExportPage.tsx +46 -29
- package/src/movethewheels/pages/InventoryPage.tsx +20 -23
- package/src/movethewheels/pages/LiveTrackingPage.tsx +58 -20
- package/src/movethewheels/pages/MarketplacePage.tsx +37 -3
- package/src/movethewheels/pages/OrderDetailsPage.tsx +74 -46
- package/src/movethewheels/pages/OrdersListPage.tsx +62 -1
- package/src/movethewheels/pages/ProductDetailsPage.tsx +36 -11
- package/src/movethewheels/pages/ProductsPage.tsx +33 -1
- package/src/movethewheels/pages/ReportsPage.tsx +23 -19
- package/src/movethewheels/pages/RouteDetailsPage.tsx +71 -31
- package/src/movethewheels/pages/RoutesPage.tsx +41 -5
- package/src/movethewheels/pages/SettingsPage.tsx +68 -26
- package/src/movethewheels/pages/TrackingPage.tsx +50 -47
- package/src/movethewheels/pages/VehicleDetailsPage.tsx +49 -24
- package/src/movethewheels/pages/VehiclesPage.tsx +33 -1
- package/src/movethewheels/pages/WarehouseDetailsPage.tsx +55 -30
- package/src/movethewheels/pages/WarehousesPage.tsx +42 -4
- package/dist/CreateOrderPage-C9Vb57Yn.js +0 -471
- package/dist/CustomerDetailsPage-BVkHRZvi.js +0 -239
- package/dist/CustomersPage-DhQg-6h_.js +0 -118
- package/dist/DataTable-CfWvFw5B.js +0 -239
- package/dist/DriverDetailsPage-DaaCQ-2O.js +0 -297
- package/dist/DriversPage-D0RMBB_t.js +0 -129
- package/dist/FinancePage-BUXqW1IM.js +0 -154
- package/dist/ImportExportPage-BM1BoRcE.js +0 -232
- package/dist/LiveTrackingPage-DqcGXdkw.js +0 -332
- package/dist/MarketplacePage-DFqsxNYU.js +0 -192
- package/dist/OrderDetailsPage-Dx1m3cVA.js +0 -398
- package/dist/OrdersListPage-DHYBGrWf.js +0 -256
- package/dist/ProductDetailsPage-DOXO90kb.js +0 -168
- package/dist/ProductsPage-RLMTwWN0.js +0 -133
- package/dist/RouteDetailsPage-xzFDeR-X.js +0 -240
- package/dist/RoutesPage-DDFy1QVi.js +0 -118
- package/dist/SettingsPage-JH_-UPbf.js +0 -247
- package/dist/VehicleDetailsPage-P4xDttKw.js +0 -194
- package/dist/VehiclesPage-tJZ64QKV.js +0 -129
- package/dist/WarehouseDetailsPage-Bt_w2Yf7.js +0 -215
- package/dist/WarehousesPage-HsPpEFeG.js +0 -126
|
@@ -18,71 +18,75 @@ 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 { CTAOverflowMenu as M, EmphasisPanel as N } from "@burdenoff/fe-libs/ui";
|
|
22
|
-
import { useI18n as
|
|
21
|
+
import { CTAOverflowMenu as M, EmphasisPanel as N, PagePurpose as P } from "@burdenoff/fe-libs/ui";
|
|
22
|
+
import { useI18n as F } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
|
|
23
23
|
//#region src/movethewheels/pages/DashboardPage.tsx
|
|
24
|
-
function
|
|
25
|
-
let { t:
|
|
26
|
-
let n =
|
|
24
|
+
function I() {
|
|
25
|
+
let { t: I } = F(), L = (e, t) => {
|
|
26
|
+
let n = I(e);
|
|
27
27
|
return n === e ? t : n;
|
|
28
|
-
}, { basePath:
|
|
29
|
-
|
|
28
|
+
}, { basePath: R, navigate: z } = v(), { metrics: B } = S(), { orders: V } = b({ limit: 5 }), { stats: H } = y(), { stats: U } = x(), { activeDeliveries: W } = C(), G = (e) => {
|
|
29
|
+
z && z(k(R, e));
|
|
30
30
|
};
|
|
31
31
|
return /* @__PURE__ */ j(o, {
|
|
32
32
|
hero: !0,
|
|
33
|
-
titleAccent:
|
|
34
|
-
title:
|
|
35
|
-
subtitle:
|
|
33
|
+
titleAccent: L("movethewheels.dashboard.title", "Dashboard"),
|
|
34
|
+
title: L("movethewheels.dashboard.title", "Dashboard"),
|
|
35
|
+
subtitle: L("movethewheels.dashboard.subtitle", "Overview of your logistics operations"),
|
|
36
36
|
icon: /* @__PURE__ */ A(m, { size: 24 }),
|
|
37
37
|
headerActions: /* @__PURE__ */ A(M, {
|
|
38
38
|
primary: {
|
|
39
|
-
label:
|
|
39
|
+
label: L("movethewheels.dashboard.actions.newOrder", "New Order"),
|
|
40
40
|
icon: /* @__PURE__ */ A(p, { size: 16 }),
|
|
41
|
-
onSelect: () =>
|
|
41
|
+
onSelect: () => G("orders/new")
|
|
42
42
|
},
|
|
43
43
|
actions: [{
|
|
44
|
-
label:
|
|
44
|
+
label: L("movethewheels.dashboard.actions.liveMap", "Live Map"),
|
|
45
45
|
icon: /* @__PURE__ */ A(f, { size: 16 }),
|
|
46
|
-
onSelect: () =>
|
|
46
|
+
onSelect: () => G("tracking/live")
|
|
47
47
|
}]
|
|
48
48
|
}),
|
|
49
49
|
children: [
|
|
50
|
+
/* @__PURE__ */ A(P, {
|
|
51
|
+
icon: /* @__PURE__ */ A(m, { size: 18 }),
|
|
52
|
+
children: L("movethewheels.dashboard.purpose", "Your logistics command center — a live snapshot of orders, active deliveries, fleet health and revenue. Start here each day to spot what needs attention, then jump straight into an order, the live map or fleet status.")
|
|
53
|
+
}),
|
|
50
54
|
/* @__PURE__ */ j(w, {
|
|
51
55
|
columns: 4,
|
|
52
56
|
children: [
|
|
53
57
|
/* @__PURE__ */ A(T, {
|
|
54
|
-
label:
|
|
55
|
-
value:
|
|
58
|
+
label: L("movethewheels.dashboard.metrics.totalOrders", "Total Orders"),
|
|
59
|
+
value: B.orders.total,
|
|
56
60
|
icon: /* @__PURE__ */ A(p, { size: 20 }),
|
|
57
|
-
change: `+${
|
|
61
|
+
change: `+${B.orders.today} ${L("movethewheels.dashboard.metrics.today", "today")}`,
|
|
58
62
|
changeType: "positive",
|
|
59
63
|
trend: "up",
|
|
60
|
-
onClick: () =>
|
|
64
|
+
onClick: () => G("orders")
|
|
61
65
|
}),
|
|
62
66
|
/* @__PURE__ */ A(T, {
|
|
63
|
-
label:
|
|
64
|
-
value:
|
|
67
|
+
label: L("movethewheels.dashboard.metrics.activeDeliveries", "Active Deliveries"),
|
|
68
|
+
value: B.orders.inTransit,
|
|
65
69
|
icon: /* @__PURE__ */ A(g, { size: 20 }),
|
|
66
|
-
subtitle: `${
|
|
67
|
-
onClick: () =>
|
|
70
|
+
subtitle: `${B.orders.pending} ${L("movethewheels.dashboard.metrics.pending", "pending")}`,
|
|
71
|
+
onClick: () => G("tracking")
|
|
68
72
|
}),
|
|
69
73
|
/* @__PURE__ */ A(T, {
|
|
70
|
-
label:
|
|
71
|
-
value: `${
|
|
74
|
+
label: L("movethewheels.dashboard.metrics.fleetUtilization", "Fleet Utilization"),
|
|
75
|
+
value: `${B.fleet.activeVehicles}/${B.fleet.totalVehicles}`,
|
|
72
76
|
icon: /* @__PURE__ */ A(g, { size: 20 }),
|
|
73
|
-
subtitle: `${
|
|
74
|
-
onClick: () =>
|
|
77
|
+
subtitle: `${B.fleet.availableDrivers} ${L("movethewheels.dashboard.metrics.driversAvailable", "drivers available")}`,
|
|
78
|
+
onClick: () => G("fleet")
|
|
75
79
|
}),
|
|
76
80
|
/* @__PURE__ */ A(T, {
|
|
77
81
|
treatment: "glass",
|
|
78
82
|
glow: !0,
|
|
79
|
-
label:
|
|
80
|
-
value: D(
|
|
83
|
+
label: L("movethewheels.dashboard.metrics.revenue", "Revenue"),
|
|
84
|
+
value: D(B.revenue.total),
|
|
81
85
|
icon: /* @__PURE__ */ A(d, { size: 20 }),
|
|
82
86
|
change: "+12.5%",
|
|
83
87
|
changeType: "positive",
|
|
84
88
|
trend: "up",
|
|
85
|
-
onClick: () =>
|
|
89
|
+
onClick: () => G("analytics")
|
|
86
90
|
})
|
|
87
91
|
]
|
|
88
92
|
}),
|
|
@@ -91,38 +95,38 @@ function F() {
|
|
|
91
95
|
children: [
|
|
92
96
|
/* @__PURE__ */ A(T, {
|
|
93
97
|
size: "sm",
|
|
94
|
-
label:
|
|
95
|
-
value: `${
|
|
96
|
-
changeType:
|
|
98
|
+
label: L("movethewheels.dashboard.stats.onTimeDelivery", "On-Time Delivery"),
|
|
99
|
+
value: `${B.performance.onTimeDeliveryRate.toFixed(1)}%`,
|
|
100
|
+
changeType: B.performance.onTimeDeliveryRate >= 90 ? "positive" : "negative"
|
|
97
101
|
}),
|
|
98
102
|
/* @__PURE__ */ A(T, {
|
|
99
103
|
size: "sm",
|
|
100
|
-
label:
|
|
101
|
-
value: D(
|
|
104
|
+
label: L("movethewheels.dashboard.stats.avgOrderValue", "Avg Order Value"),
|
|
105
|
+
value: D(B.revenue.avgOrderValue)
|
|
102
106
|
}),
|
|
103
107
|
/* @__PURE__ */ A(T, {
|
|
104
108
|
size: "sm",
|
|
105
|
-
label:
|
|
106
|
-
value:
|
|
107
|
-
subtitle:
|
|
109
|
+
label: L("movethewheels.dashboard.stats.driverRating", "Driver Rating"),
|
|
110
|
+
value: B.performance.avgDriverRating.toFixed(1),
|
|
111
|
+
subtitle: L("movethewheels.dashboard.stats.outOfFive", "out of 5")
|
|
108
112
|
}),
|
|
109
113
|
/* @__PURE__ */ A(T, {
|
|
110
114
|
size: "sm",
|
|
111
|
-
label:
|
|
112
|
-
value:
|
|
115
|
+
label: L("movethewheels.dashboard.stats.deliveredToday", "Delivered Today"),
|
|
116
|
+
value: B.orders.delivered
|
|
113
117
|
})
|
|
114
118
|
]
|
|
115
119
|
}),
|
|
116
120
|
/* @__PURE__ */ j("div", {
|
|
117
121
|
className: "grid grid-cols-1 lg:grid-cols-2 gap-6",
|
|
118
122
|
children: [/* @__PURE__ */ A(t, {
|
|
119
|
-
title:
|
|
123
|
+
title: L("movethewheels.dashboard.recentOrders.title", "Recent Orders"),
|
|
120
124
|
actions: /* @__PURE__ */ j(c, {
|
|
121
125
|
variant: "ghost",
|
|
122
126
|
size: "sm",
|
|
123
|
-
onClick: () =>
|
|
127
|
+
onClick: () => G("orders"),
|
|
124
128
|
children: [
|
|
125
|
-
|
|
129
|
+
L("movethewheels.dashboard.common.viewAll", "View all"),
|
|
126
130
|
" ",
|
|
127
131
|
/* @__PURE__ */ A(l, { size: 16 })
|
|
128
132
|
]
|
|
@@ -131,9 +135,9 @@ function F() {
|
|
|
131
135
|
className: "p-0",
|
|
132
136
|
children: /* @__PURE__ */ j("div", {
|
|
133
137
|
className: "divide-y",
|
|
134
|
-
children: [
|
|
138
|
+
children: [V.slice(0, 5).map((e) => /* @__PURE__ */ A("div", {
|
|
135
139
|
className: "p-4 hover:bg-bg-sunken/50 cursor-pointer transition-colors",
|
|
136
|
-
onClick: () =>
|
|
140
|
+
onClick: () => G(`orders/${e.id}`),
|
|
137
141
|
children: /* @__PURE__ */ j("div", {
|
|
138
142
|
className: "flex items-center justify-between",
|
|
139
143
|
children: [/* @__PURE__ */ j("div", { children: [/* @__PURE__ */ A("p", {
|
|
@@ -154,20 +158,20 @@ function F() {
|
|
|
154
158
|
})]
|
|
155
159
|
})]
|
|
156
160
|
})
|
|
157
|
-
}, e.id)),
|
|
161
|
+
}, e.id)), V.length === 0 && /* @__PURE__ */ A("div", {
|
|
158
162
|
className: "p-8 text-center text-text-secondary",
|
|
159
|
-
children:
|
|
163
|
+
children: L("movethewheels.dashboard.recentOrders.empty", "No recent orders")
|
|
160
164
|
})]
|
|
161
165
|
})
|
|
162
166
|
}) })
|
|
163
167
|
}), /* @__PURE__ */ A(t, {
|
|
164
|
-
title:
|
|
168
|
+
title: L("movethewheels.dashboard.activeDeliveries.title", "Active Deliveries"),
|
|
165
169
|
actions: /* @__PURE__ */ j(c, {
|
|
166
170
|
variant: "ghost",
|
|
167
171
|
size: "sm",
|
|
168
|
-
onClick: () =>
|
|
172
|
+
onClick: () => G("tracking/live"),
|
|
169
173
|
children: [
|
|
170
|
-
|
|
174
|
+
L("movethewheels.dashboard.activeDeliveries.liveTracking", "Live tracking"),
|
|
171
175
|
" ",
|
|
172
176
|
/* @__PURE__ */ A(l, { size: 16 })
|
|
173
177
|
]
|
|
@@ -176,9 +180,9 @@ function F() {
|
|
|
176
180
|
className: "p-0",
|
|
177
181
|
children: /* @__PURE__ */ j("div", {
|
|
178
182
|
className: "divide-y",
|
|
179
|
-
children: [
|
|
183
|
+
children: [W.slice(0, 5).map((e) => e.order ? /* @__PURE__ */ A("div", {
|
|
180
184
|
className: "p-4 hover:bg-bg-sunken/50 cursor-pointer transition-colors",
|
|
181
|
-
onClick: () =>
|
|
185
|
+
onClick: () => G(`tracking?order=${e.order.id}`),
|
|
182
186
|
children: /* @__PURE__ */ j("div", {
|
|
183
187
|
className: "flex items-center justify-between",
|
|
184
188
|
children: [/* @__PURE__ */ j("div", { children: [/* @__PURE__ */ A("p", {
|
|
@@ -186,7 +190,7 @@ function F() {
|
|
|
186
190
|
children: e.order.orderNumber
|
|
187
191
|
}), /* @__PURE__ */ A("p", {
|
|
188
192
|
className: "text-sm text-text-secondary",
|
|
189
|
-
children: e.driver?.fullName ||
|
|
193
|
+
children: e.driver?.fullName || L("movethewheels.dashboard.activeDeliveries.unassigned", "Unassigned")
|
|
190
194
|
})] }), /* @__PURE__ */ j("div", {
|
|
191
195
|
className: "text-right",
|
|
192
196
|
children: [/* @__PURE__ */ A(E, {
|
|
@@ -196,16 +200,16 @@ function F() {
|
|
|
196
200
|
}), /* @__PURE__ */ j("p", {
|
|
197
201
|
className: "text-sm text-text-secondary mt-1",
|
|
198
202
|
children: [
|
|
199
|
-
|
|
203
|
+
L("movethewheels.dashboard.activeDeliveries.eta", "ETA:"),
|
|
200
204
|
" ",
|
|
201
|
-
e.estimatedArrival ? O(e.estimatedArrival, "time") :
|
|
205
|
+
e.estimatedArrival ? O(e.estimatedArrival, "time") : L("movethewheels.dashboard.activeDeliveries.na", "N/A")
|
|
202
206
|
]
|
|
203
207
|
})]
|
|
204
208
|
})]
|
|
205
209
|
})
|
|
206
|
-
}, e.order.id) : null),
|
|
210
|
+
}, e.order.id) : null), W.length === 0 && /* @__PURE__ */ A("div", {
|
|
207
211
|
className: "p-8 text-center text-text-secondary",
|
|
208
|
-
children:
|
|
212
|
+
children: L("movethewheels.dashboard.activeDeliveries.empty", "No active deliveries")
|
|
209
213
|
})]
|
|
210
214
|
})
|
|
211
215
|
}) })
|
|
@@ -218,28 +222,28 @@ function F() {
|
|
|
218
222
|
className: "space-y-4",
|
|
219
223
|
children: [/* @__PURE__ */ A("h2", {
|
|
220
224
|
className: "text-base font-semibold text-text-primary",
|
|
221
|
-
children:
|
|
225
|
+
children: L("movethewheels.dashboard.orderStatus.title", "Order Status")
|
|
222
226
|
}), /* @__PURE__ */ A("div", {
|
|
223
227
|
className: "space-y-3",
|
|
224
228
|
children: [
|
|
225
229
|
{
|
|
226
230
|
status: "pending",
|
|
227
|
-
count:
|
|
231
|
+
count: H.byStatus.pending,
|
|
228
232
|
color: "bg-yellow-500"
|
|
229
233
|
},
|
|
230
234
|
{
|
|
231
235
|
status: "in_transit",
|
|
232
|
-
count:
|
|
236
|
+
count: H.byStatus.in_transit,
|
|
233
237
|
color: "bg-blue-500"
|
|
234
238
|
},
|
|
235
239
|
{
|
|
236
240
|
status: "delivered",
|
|
237
|
-
count:
|
|
241
|
+
count: H.byStatus.delivered,
|
|
238
242
|
color: "bg-green-500"
|
|
239
243
|
},
|
|
240
244
|
{
|
|
241
245
|
status: "cancelled",
|
|
242
|
-
count:
|
|
246
|
+
count: H.byStatus.cancelled,
|
|
243
247
|
color: "bg-red-500"
|
|
244
248
|
}
|
|
245
249
|
].map(({ status: e, count: t, color: n }) => /* @__PURE__ */ j("div", {
|
|
@@ -248,7 +252,7 @@ function F() {
|
|
|
248
252
|
className: "flex items-center gap-2",
|
|
249
253
|
children: [/* @__PURE__ */ A("div", { className: `w-2 h-2 rounded-full ${n}` }), /* @__PURE__ */ A("span", {
|
|
250
254
|
className: "text-sm capitalize",
|
|
251
|
-
children:
|
|
255
|
+
children: L(`movethewheels.dashboard.orderStatus.status.${e}`, e.replace("_", " "))
|
|
252
256
|
})]
|
|
253
257
|
}), /* @__PURE__ */ A(s, {
|
|
254
258
|
variant: "secondary",
|
|
@@ -260,45 +264,45 @@ function F() {
|
|
|
260
264
|
}),
|
|
261
265
|
/* @__PURE__ */ j(n, { children: [/* @__PURE__ */ A(a, { children: /* @__PURE__ */ A(i, {
|
|
262
266
|
className: "text-base",
|
|
263
|
-
children:
|
|
267
|
+
children: L("movethewheels.dashboard.fleetStatus.title", "Fleet Status")
|
|
264
268
|
}) }), /* @__PURE__ */ j(r, {
|
|
265
269
|
className: "space-y-4",
|
|
266
270
|
children: [/* @__PURE__ */ j("div", {
|
|
267
271
|
className: "space-y-2",
|
|
268
272
|
children: [/* @__PURE__ */ j("div", {
|
|
269
273
|
className: "flex justify-between text-sm",
|
|
270
|
-
children: [/* @__PURE__ */ A("span", { children:
|
|
271
|
-
}), /* @__PURE__ */ A(e, { value:
|
|
274
|
+
children: [/* @__PURE__ */ A("span", { children: L("movethewheels.dashboard.fleetStatus.vehicleUtilization", "Vehicle Utilization") }), /* @__PURE__ */ j("span", { children: [U.utilization.toFixed(0), "%"] })]
|
|
275
|
+
}), /* @__PURE__ */ A(e, { value: U.utilization })]
|
|
272
276
|
}), /* @__PURE__ */ j("div", {
|
|
273
277
|
className: "grid grid-cols-2 gap-4 text-sm",
|
|
274
278
|
children: [
|
|
275
279
|
/* @__PURE__ */ j("div", { children: [/* @__PURE__ */ A("p", {
|
|
276
280
|
className: "text-text-secondary",
|
|
277
|
-
children:
|
|
281
|
+
children: L("movethewheels.dashboard.fleetStatus.available", "Available")
|
|
278
282
|
}), /* @__PURE__ */ A("p", {
|
|
279
283
|
className: "text-lg font-semibold text-green-600",
|
|
280
|
-
children:
|
|
284
|
+
children: U.vehiclesByStatus.available
|
|
281
285
|
})] }),
|
|
282
286
|
/* @__PURE__ */ j("div", { children: [/* @__PURE__ */ A("p", {
|
|
283
287
|
className: "text-text-secondary",
|
|
284
|
-
children:
|
|
288
|
+
children: L("movethewheels.dashboard.fleetStatus.inUse", "In Use")
|
|
285
289
|
}), /* @__PURE__ */ A("p", {
|
|
286
290
|
className: "text-lg font-semibold text-blue-600",
|
|
287
|
-
children:
|
|
291
|
+
children: U.vehiclesByStatus.assigned
|
|
288
292
|
})] }),
|
|
289
293
|
/* @__PURE__ */ j("div", { children: [/* @__PURE__ */ A("p", {
|
|
290
294
|
className: "text-text-secondary",
|
|
291
|
-
children:
|
|
295
|
+
children: L("movethewheels.dashboard.fleetStatus.maintenance", "Maintenance")
|
|
292
296
|
}), /* @__PURE__ */ A("p", {
|
|
293
297
|
className: "text-lg font-semibold text-yellow-600",
|
|
294
|
-
children:
|
|
298
|
+
children: U.vehiclesByStatus.maintenance
|
|
295
299
|
})] }),
|
|
296
300
|
/* @__PURE__ */ j("div", { children: [/* @__PURE__ */ A("p", {
|
|
297
301
|
className: "text-text-secondary",
|
|
298
|
-
children:
|
|
302
|
+
children: L("movethewheels.dashboard.fleetStatus.avgFuel", "Avg Fuel")
|
|
299
303
|
}), /* @__PURE__ */ j("p", {
|
|
300
304
|
className: "text-lg font-semibold",
|
|
301
|
-
children: [
|
|
305
|
+
children: [U.avgFuelLevel.toFixed(0), "%"]
|
|
302
306
|
})] })
|
|
303
307
|
]
|
|
304
308
|
})]
|
|
@@ -308,66 +312,66 @@ function F() {
|
|
|
308
312
|
children: [/* @__PURE__ */ A(h, {
|
|
309
313
|
size: 16,
|
|
310
314
|
className: "text-yellow-500"
|
|
311
|
-
}),
|
|
315
|
+
}), L("movethewheels.dashboard.alerts.title", "Alerts")]
|
|
312
316
|
}) }), /* @__PURE__ */ A(r, { children: /* @__PURE__ */ j("div", {
|
|
313
317
|
className: "space-y-3",
|
|
314
318
|
children: [
|
|
315
|
-
|
|
319
|
+
H.byStatus.pending > 5 && /* @__PURE__ */ j("div", {
|
|
316
320
|
className: "flex items-start gap-3 p-2 rounded bg-yellow-50 dark:bg-yellow-900/20",
|
|
317
321
|
children: [/* @__PURE__ */ A(u, {
|
|
318
322
|
size: 16,
|
|
319
323
|
className: "text-yellow-600 mt-0.5"
|
|
320
324
|
}), /* @__PURE__ */ j("div", { children: [/* @__PURE__ */ A("p", {
|
|
321
325
|
className: "text-sm font-medium",
|
|
322
|
-
children:
|
|
326
|
+
children: L("movethewheels.dashboard.alerts.pendingOrders.title", "Pending Orders")
|
|
323
327
|
}), /* @__PURE__ */ j("p", {
|
|
324
328
|
className: "text-xs text-text-secondary",
|
|
325
329
|
children: [
|
|
326
|
-
|
|
330
|
+
H.byStatus.pending,
|
|
327
331
|
" ",
|
|
328
|
-
|
|
332
|
+
L("movethewheels.dashboard.alerts.pendingOrders.description", "orders awaiting confirmation")
|
|
329
333
|
]
|
|
330
334
|
})] })]
|
|
331
335
|
}),
|
|
332
|
-
|
|
336
|
+
U.vehiclesByStatus.maintenance > 0 && /* @__PURE__ */ j("div", {
|
|
333
337
|
className: "flex items-start gap-3 p-2 rounded bg-orange-50 dark:bg-orange-900/20",
|
|
334
338
|
children: [/* @__PURE__ */ A(g, {
|
|
335
339
|
size: 16,
|
|
336
340
|
className: "text-orange-600 mt-0.5"
|
|
337
341
|
}), /* @__PURE__ */ j("div", { children: [/* @__PURE__ */ A("p", {
|
|
338
342
|
className: "text-sm font-medium",
|
|
339
|
-
children:
|
|
343
|
+
children: L("movethewheels.dashboard.alerts.maintenanceVehicles.title", "Vehicles in Maintenance")
|
|
340
344
|
}), /* @__PURE__ */ j("p", {
|
|
341
345
|
className: "text-xs text-text-secondary",
|
|
342
346
|
children: [
|
|
343
|
-
|
|
347
|
+
U.vehiclesByStatus.maintenance,
|
|
344
348
|
" ",
|
|
345
|
-
|
|
349
|
+
L("movethewheels.dashboard.alerts.maintenanceVehicles.description", "vehicles unavailable")
|
|
346
350
|
]
|
|
347
351
|
})] })]
|
|
348
352
|
}),
|
|
349
|
-
|
|
353
|
+
U.driversByStatus.offline > 0 && /* @__PURE__ */ j("div", {
|
|
350
354
|
className: "flex items-start gap-3 p-2 rounded bg-gray-50 dark:bg-gray-800",
|
|
351
355
|
children: [/* @__PURE__ */ A(_, {
|
|
352
356
|
size: 16,
|
|
353
357
|
className: "text-gray-600 mt-0.5"
|
|
354
358
|
}), /* @__PURE__ */ j("div", { children: [/* @__PURE__ */ A("p", {
|
|
355
359
|
className: "text-sm font-medium",
|
|
356
|
-
children:
|
|
360
|
+
children: L("movethewheels.dashboard.alerts.offlineDrivers.title", "Offline Drivers")
|
|
357
361
|
}), /* @__PURE__ */ j("p", {
|
|
358
362
|
className: "text-xs text-text-secondary",
|
|
359
363
|
children: [
|
|
360
|
-
|
|
364
|
+
U.driversByStatus.offline,
|
|
361
365
|
" ",
|
|
362
|
-
|
|
366
|
+
L("movethewheels.dashboard.alerts.offlineDrivers.description", "drivers currently offline")
|
|
363
367
|
]
|
|
364
368
|
})] })]
|
|
365
369
|
}),
|
|
366
|
-
|
|
370
|
+
H.byStatus.pending <= 5 && U.vehiclesByStatus.maintenance === 0 && U.driversByStatus.offline === 0 && /* @__PURE__ */ A("div", {
|
|
367
371
|
className: "text-center py-4 text-text-secondary",
|
|
368
372
|
children: /* @__PURE__ */ A("p", {
|
|
369
373
|
className: "text-sm",
|
|
370
|
-
children:
|
|
374
|
+
children: L("movethewheels.dashboard.alerts.allOperational", "All systems operational")
|
|
371
375
|
})
|
|
372
376
|
})
|
|
373
377
|
]
|
|
@@ -378,4 +382,4 @@ function F() {
|
|
|
378
382
|
});
|
|
379
383
|
}
|
|
380
384
|
//#endregion
|
|
381
|
-
export {
|
|
385
|
+
export { I as default };
|