@burdenoff/microfe-movethewheels 2026.625.1 → 2026.626.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-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
|
@@ -4,8 +4,9 @@ import { t as f } from "./circle-alert-DjmNo5_L.js";
|
|
|
4
4
|
import { t as p } from "./trending-up-C-85AwGT.js";
|
|
5
5
|
import { useState as m } from "react";
|
|
6
6
|
import { jsx as h, jsxs as g } from "react/jsx-runtime";
|
|
7
|
+
import { GlassCard as _, PagePurpose as v } from "@burdenoff/fe-libs/ui";
|
|
7
8
|
//#region node_modules/lucide-react/dist/esm/icons/lightbulb.js
|
|
8
|
-
var
|
|
9
|
+
var y = s("Lightbulb", [
|
|
9
10
|
["path", {
|
|
10
11
|
d: "M15 14c.2-1 .7-1.7 1.5-2.5 1-.9 1.5-2.2 1.5-3.5A6 6 0 0 0 6 8c0 1 .2 2.2 1.5 3.5.7.7 1.3 1.5 1.5 2.5",
|
|
11
12
|
key: "1gvzjb"
|
|
@@ -18,13 +19,13 @@ var _ = s("Lightbulb", [
|
|
|
18
19
|
d: "M10 22h4",
|
|
19
20
|
key: "ceow96"
|
|
20
21
|
}]
|
|
21
|
-
]),
|
|
22
|
+
]), b = s("Send", [["path", {
|
|
22
23
|
d: "M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z",
|
|
23
24
|
key: "1ffxy3"
|
|
24
25
|
}], ["path", {
|
|
25
26
|
d: "m21.854 2.147-10.94 10.939",
|
|
26
27
|
key: "12cjpa"
|
|
27
|
-
}]]),
|
|
28
|
+
}]]), x = s("Sparkles", [
|
|
28
29
|
["path", {
|
|
29
30
|
d: "M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.936A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .963 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.581a.5.5 0 0 1 0 .964L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.963 0z",
|
|
30
31
|
key: "4pj2yx"
|
|
@@ -48,11 +49,11 @@ var _ = s("Lightbulb", [
|
|
|
48
49
|
]);
|
|
49
50
|
//#endregion
|
|
50
51
|
//#region src/movethewheels/pages/AIAssistantPage.tsx
|
|
51
|
-
function
|
|
52
|
-
let [s,
|
|
52
|
+
function S() {
|
|
53
|
+
let [s, S] = m(""), [C, w] = m([{
|
|
53
54
|
role: "assistant",
|
|
54
55
|
content: "Hello! I'm your logistics AI assistant. I can help you with route optimization, demand forecasting, fleet management insights, and more. How can I help you today?"
|
|
55
|
-
}]),
|
|
56
|
+
}]), T = [
|
|
56
57
|
{
|
|
57
58
|
icon: d,
|
|
58
59
|
text: "Optimize today's delivery routes",
|
|
@@ -69,19 +70,19 @@ function b() {
|
|
|
69
70
|
category: "Alerts"
|
|
70
71
|
},
|
|
71
72
|
{
|
|
72
|
-
icon:
|
|
73
|
+
icon: y,
|
|
73
74
|
text: "Suggest fleet efficiency improvements",
|
|
74
75
|
category: "Insights"
|
|
75
76
|
}
|
|
76
|
-
],
|
|
77
|
+
], E = [
|
|
77
78
|
"Route Optimization - Find the most efficient delivery routes",
|
|
78
79
|
"Demand Forecasting - Predict order volumes and trends",
|
|
79
80
|
"Fleet Analysis - Insights on vehicle and driver performance",
|
|
80
81
|
"Cost Optimization - Identify ways to reduce operational costs",
|
|
81
82
|
"Natural Language Queries - Ask questions in plain English"
|
|
82
|
-
],
|
|
83
|
-
s.trim() && (
|
|
84
|
-
...
|
|
83
|
+
], D = () => {
|
|
84
|
+
s.trim() && (w([
|
|
85
|
+
...C,
|
|
85
86
|
{
|
|
86
87
|
role: "user",
|
|
87
88
|
content: s
|
|
@@ -90,24 +91,29 @@ function b() {
|
|
|
90
91
|
role: "assistant",
|
|
91
92
|
content: `I understand you're asking about "${s}". Let me analyze that for you...\n\nBased on your current data, here are my findings:\n\n1. Your fleet utilization is currently at 78%, which is within the optimal range.\n2. There are 5 pending orders that could benefit from route consolidation.\n3. Estimated fuel savings from optimization: $120/day.\n\nWould you like me to generate a detailed report or take any action?`
|
|
92
93
|
}
|
|
93
|
-
]),
|
|
94
|
+
]), S(""));
|
|
94
95
|
};
|
|
95
|
-
return /* @__PURE__ */
|
|
96
|
+
return /* @__PURE__ */ g(o, {
|
|
96
97
|
title: "AI Assistant",
|
|
97
98
|
subtitle: "Intelligent logistics support",
|
|
98
99
|
icon: /* @__PURE__ */ h(u, { size: 24 }),
|
|
99
|
-
children: /* @__PURE__ */
|
|
100
|
+
children: [/* @__PURE__ */ h(v, {
|
|
101
|
+
icon: /* @__PURE__ */ h(u, { size: 18 }),
|
|
102
|
+
children: "Ask plain-English questions about your operation and get answers backed by your own data. Use it to optimize routes, forecast demand, spot likely delays, and run what-if scenarios (e.g. “what if I add two vehicles?”) — like having a logistics analyst on call."
|
|
103
|
+
}), /* @__PURE__ */ g("div", {
|
|
100
104
|
className: "grid grid-cols-1 lg:grid-cols-3 gap-6",
|
|
101
105
|
children: [/* @__PURE__ */ h("div", {
|
|
102
106
|
className: "lg:col-span-2 space-y-4",
|
|
103
|
-
children: /* @__PURE__ */ g(
|
|
107
|
+
children: /* @__PURE__ */ g(_, {
|
|
108
|
+
treatment: "glass",
|
|
109
|
+
glow: !0,
|
|
104
110
|
className: "h-[600px] flex flex-col",
|
|
105
111
|
children: [
|
|
106
112
|
/* @__PURE__ */ h(a, {
|
|
107
|
-
className: "border-b",
|
|
113
|
+
className: "border-b border-border-seam",
|
|
108
114
|
children: /* @__PURE__ */ g(i, {
|
|
109
115
|
className: "flex items-center gap-2",
|
|
110
|
-
children: [/* @__PURE__ */ h(
|
|
116
|
+
children: [/* @__PURE__ */ h(x, {
|
|
111
117
|
size: 18,
|
|
112
118
|
className: "text-primary"
|
|
113
119
|
}), " Chat with AI"]
|
|
@@ -117,7 +123,7 @@ function b() {
|
|
|
117
123
|
className: "flex-1 p-4",
|
|
118
124
|
children: /* @__PURE__ */ h("div", {
|
|
119
125
|
className: "space-y-4",
|
|
120
|
-
children:
|
|
126
|
+
children: C.map((e, t) => /* @__PURE__ */ h("div", {
|
|
121
127
|
className: `flex ${e.role === "user" ? "justify-end" : "justify-start"}`,
|
|
122
128
|
children: /* @__PURE__ */ h("div", {
|
|
123
129
|
className: `max-w-[80%] p-3 rounded-lg ${e.role === "user" ? "bg-action-primary-bg text-action-primary-text" : "bg-bg-sunken"}`,
|
|
@@ -135,12 +141,12 @@ function b() {
|
|
|
135
141
|
className: "flex gap-2",
|
|
136
142
|
children: [/* @__PURE__ */ h(e, {
|
|
137
143
|
value: s,
|
|
138
|
-
onChange: (e) =>
|
|
144
|
+
onChange: (e) => S(e.target.value),
|
|
139
145
|
placeholder: "Ask me anything about your logistics operations...",
|
|
140
|
-
onKeyPress: (e) => e.key === "Enter" &&
|
|
146
|
+
onKeyPress: (e) => e.key === "Enter" && D()
|
|
141
147
|
}), /* @__PURE__ */ h(l, {
|
|
142
|
-
onClick:
|
|
143
|
-
children: /* @__PURE__ */ h(
|
|
148
|
+
onClick: D,
|
|
149
|
+
children: /* @__PURE__ */ h(b, { size: 16 })
|
|
144
150
|
})]
|
|
145
151
|
})
|
|
146
152
|
})
|
|
@@ -151,10 +157,10 @@ function b() {
|
|
|
151
157
|
children: [
|
|
152
158
|
/* @__PURE__ */ g(n, { children: [/* @__PURE__ */ h(a, { children: /* @__PURE__ */ h(i, { children: "Quick Actions" }) }), /* @__PURE__ */ h(r, {
|
|
153
159
|
className: "space-y-2",
|
|
154
|
-
children:
|
|
160
|
+
children: T.map((e, t) => /* @__PURE__ */ g(l, {
|
|
155
161
|
variant: "outline",
|
|
156
162
|
className: "w-full justify-start text-left h-auto py-3",
|
|
157
|
-
onClick: () =>
|
|
163
|
+
onClick: () => S(e.text),
|
|
158
164
|
children: [
|
|
159
165
|
/* @__PURE__ */ h(e.icon, {
|
|
160
166
|
size: 16,
|
|
@@ -174,9 +180,9 @@ function b() {
|
|
|
174
180
|
})] }),
|
|
175
181
|
/* @__PURE__ */ g(n, { children: [/* @__PURE__ */ h(a, { children: /* @__PURE__ */ h(i, { children: "Capabilities" }) }), /* @__PURE__ */ h(r, { children: /* @__PURE__ */ h("ul", {
|
|
176
182
|
className: "space-y-2 text-sm",
|
|
177
|
-
children:
|
|
183
|
+
children: E.map((e, t) => /* @__PURE__ */ g("li", {
|
|
178
184
|
className: "flex items-start gap-2",
|
|
179
|
-
children: [/* @__PURE__ */ h(
|
|
185
|
+
children: [/* @__PURE__ */ h(x, {
|
|
180
186
|
size: 14,
|
|
181
187
|
className: "text-primary mt-0.5 flex-shrink-0"
|
|
182
188
|
}), /* @__PURE__ */ h("span", { children: e })]
|
|
@@ -188,7 +194,7 @@ function b() {
|
|
|
188
194
|
className: "p-4",
|
|
189
195
|
children: /* @__PURE__ */ g("div", {
|
|
190
196
|
className: "flex items-start gap-3",
|
|
191
|
-
children: [/* @__PURE__ */ h(
|
|
197
|
+
children: [/* @__PURE__ */ h(y, {
|
|
192
198
|
size: 20,
|
|
193
199
|
className: "text-primary flex-shrink-0"
|
|
194
200
|
}), /* @__PURE__ */ g("div", { children: [/* @__PURE__ */ h("p", {
|
|
@@ -203,8 +209,8 @@ function b() {
|
|
|
203
209
|
})
|
|
204
210
|
]
|
|
205
211
|
})]
|
|
206
|
-
})
|
|
212
|
+
})]
|
|
207
213
|
});
|
|
208
214
|
}
|
|
209
215
|
//#endregion
|
|
210
|
-
export {
|
|
216
|
+
export { S as default };
|
|
@@ -9,28 +9,35 @@ import { i as f, r as p, t as m } from "./useAnalytics-ph7eTIK6.js";
|
|
|
9
9
|
import { r as h, t as g } from "./MetricCard-B7yMyvMX.js";
|
|
10
10
|
import { n as _ } from "./formatters-_vJlC-47.js";
|
|
11
11
|
import { jsx as v, jsxs as y } from "react/jsx-runtime";
|
|
12
|
+
import { EmphasisPanel as b, PagePurpose as x } from "@burdenoff/fe-libs/ui";
|
|
12
13
|
//#region src/movethewheels/pages/AnalyticsPage.tsx
|
|
13
|
-
function
|
|
14
|
-
let { analytics:
|
|
14
|
+
function S() {
|
|
15
|
+
let { analytics: S } = m(), { orderData: C } = f(), { fleetData: w } = p();
|
|
15
16
|
return /* @__PURE__ */ y(a, {
|
|
16
17
|
title: "Analytics",
|
|
17
18
|
subtitle: "Business performance and insights",
|
|
18
19
|
icon: /* @__PURE__ */ v(o, { size: 24 }),
|
|
19
20
|
children: [
|
|
21
|
+
/* @__PURE__ */ v(x, {
|
|
22
|
+
icon: /* @__PURE__ */ v(o, { size: 18 }),
|
|
23
|
+
children: "See how the operation is really performing. Track order volume, revenue, on-time rate and customer satisfaction over time so you can spot trends, find bottlenecks, and decide where to invest — whether that's more vehicles, better routes, or new customers."
|
|
24
|
+
}),
|
|
20
25
|
/* @__PURE__ */ y(h, {
|
|
21
26
|
columns: 5,
|
|
22
27
|
children: [
|
|
23
28
|
/* @__PURE__ */ v(g, {
|
|
24
29
|
label: "Total Orders",
|
|
25
|
-
value:
|
|
30
|
+
value: S.overview.totalOrders.toLocaleString(),
|
|
26
31
|
icon: /* @__PURE__ */ v(c, { size: 20 }),
|
|
27
32
|
change: "+8.2%",
|
|
28
33
|
changeType: "positive",
|
|
29
34
|
trend: "up"
|
|
30
35
|
}),
|
|
31
36
|
/* @__PURE__ */ v(g, {
|
|
37
|
+
treatment: "glass",
|
|
38
|
+
glow: !0,
|
|
32
39
|
label: "Revenue",
|
|
33
|
-
value: _(
|
|
40
|
+
value: _(S.overview.totalRevenue),
|
|
34
41
|
icon: /* @__PURE__ */ v(s, { size: 20 }),
|
|
35
42
|
change: "+12.5%",
|
|
36
43
|
changeType: "positive",
|
|
@@ -38,18 +45,18 @@ function b() {
|
|
|
38
45
|
}),
|
|
39
46
|
/* @__PURE__ */ v(g, {
|
|
40
47
|
label: "Active Vehicles",
|
|
41
|
-
value:
|
|
48
|
+
value: S.overview.activeVehicles,
|
|
42
49
|
icon: /* @__PURE__ */ v(u, { size: 20 })
|
|
43
50
|
}),
|
|
44
51
|
/* @__PURE__ */ v(g, {
|
|
45
52
|
label: "On-Time Rate",
|
|
46
|
-
value: `${
|
|
53
|
+
value: `${S.overview.onTimeDeliveryRate}%`,
|
|
47
54
|
icon: /* @__PURE__ */ v(l, { size: 20 }),
|
|
48
|
-
changeType:
|
|
55
|
+
changeType: S.overview.onTimeDeliveryRate >= 90 ? "positive" : "negative"
|
|
49
56
|
}),
|
|
50
57
|
/* @__PURE__ */ v(g, {
|
|
51
58
|
label: "Satisfaction",
|
|
52
|
-
value:
|
|
59
|
+
value: S.overview.customerSatisfaction.toFixed(1),
|
|
53
60
|
icon: /* @__PURE__ */ v(d, { size: 20 }),
|
|
54
61
|
subtitle: "out of 5"
|
|
55
62
|
})
|
|
@@ -75,7 +82,7 @@ function b() {
|
|
|
75
82
|
})
|
|
76
83
|
}), /* @__PURE__ */ v("div", {
|
|
77
84
|
className: "mt-4 grid grid-cols-4 gap-2",
|
|
78
|
-
children:
|
|
85
|
+
children: C.trends.slice(-4).map((e) => /* @__PURE__ */ y("div", {
|
|
79
86
|
className: "text-center p-2 bg-bg-sunken/50 rounded",
|
|
80
87
|
children: [/* @__PURE__ */ v("p", {
|
|
81
88
|
className: "text-xs text-text-secondary",
|
|
@@ -96,7 +103,7 @@ function b() {
|
|
|
96
103
|
})
|
|
97
104
|
}), /* @__PURE__ */ v("div", {
|
|
98
105
|
className: "mt-4 grid grid-cols-5 gap-2",
|
|
99
|
-
children:
|
|
106
|
+
children: S.trends.revenue.map((e) => /* @__PURE__ */ y("div", {
|
|
100
107
|
className: "text-center p-2 bg-bg-sunken/50 rounded",
|
|
101
108
|
children: [/* @__PURE__ */ v("p", {
|
|
102
109
|
className: "text-xs text-text-secondary",
|
|
@@ -113,7 +120,7 @@ function b() {
|
|
|
113
120
|
children: [
|
|
114
121
|
/* @__PURE__ */ y(t, { children: [/* @__PURE__ */ v(i, { children: /* @__PURE__ */ v(r, { children: "Orders by Status" }) }), /* @__PURE__ */ v(n, {
|
|
115
122
|
className: "space-y-3",
|
|
116
|
-
children:
|
|
123
|
+
children: C.byStatus.filter((e) => e.count > 0).map(({ status: t, count: n }) => /* @__PURE__ */ y("div", {
|
|
117
124
|
className: "flex items-center justify-between",
|
|
118
125
|
children: [/* @__PURE__ */ v("span", {
|
|
119
126
|
className: "text-sm capitalize",
|
|
@@ -121,7 +128,7 @@ function b() {
|
|
|
121
128
|
}), /* @__PURE__ */ y("div", {
|
|
122
129
|
className: "flex items-center gap-2",
|
|
123
130
|
children: [/* @__PURE__ */ v(e, {
|
|
124
|
-
value: n /
|
|
131
|
+
value: n / S.overview.totalOrders * 100,
|
|
125
132
|
className: "w-20 h-2"
|
|
126
133
|
}), /* @__PURE__ */ v("span", {
|
|
127
134
|
className: "font-medium w-8 text-right",
|
|
@@ -135,18 +142,18 @@ function b() {
|
|
|
135
142
|
children: [
|
|
136
143
|
/* @__PURE__ */ y("div", { children: [/* @__PURE__ */ y("div", {
|
|
137
144
|
className: "flex justify-between text-sm mb-1",
|
|
138
|
-
children: [/* @__PURE__ */ v("span", { children: "Vehicle Utilization" }), /* @__PURE__ */ y("span", { children: [
|
|
139
|
-
}), /* @__PURE__ */ v(e, { value:
|
|
145
|
+
children: [/* @__PURE__ */ v("span", { children: "Vehicle Utilization" }), /* @__PURE__ */ y("span", { children: [w.vehicleUtilization.toFixed(0), "%"] })]
|
|
146
|
+
}), /* @__PURE__ */ v(e, { value: w.vehicleUtilization })] }),
|
|
140
147
|
/* @__PURE__ */ y("div", { children: [/* @__PURE__ */ y("div", {
|
|
141
148
|
className: "flex justify-between text-sm mb-1",
|
|
142
|
-
children: [/* @__PURE__ */ v("span", { children: "Avg Fuel Level" }), /* @__PURE__ */ y("span", { children: [
|
|
143
|
-
}), /* @__PURE__ */ v(e, { value:
|
|
149
|
+
children: [/* @__PURE__ */ v("span", { children: "Avg Fuel Level" }), /* @__PURE__ */ y("span", { children: [w.avgFuelLevel.toFixed(0), "%"] })]
|
|
150
|
+
}), /* @__PURE__ */ v(e, { value: w.avgFuelLevel })] }),
|
|
144
151
|
/* @__PURE__ */ y("div", {
|
|
145
152
|
className: "pt-2",
|
|
146
153
|
children: [/* @__PURE__ */ v("p", {
|
|
147
154
|
className: "text-sm text-text-secondary mb-2",
|
|
148
155
|
children: "Vehicles by Type"
|
|
149
|
-
}),
|
|
156
|
+
}), w.vehiclesByType.map(({ type: e, count: t }) => /* @__PURE__ */ y("div", {
|
|
150
157
|
className: "flex justify-between text-sm py-1",
|
|
151
158
|
children: [/* @__PURE__ */ v("span", {
|
|
152
159
|
className: "capitalize",
|
|
@@ -159,43 +166,47 @@ function b() {
|
|
|
159
166
|
})
|
|
160
167
|
]
|
|
161
168
|
})] }),
|
|
162
|
-
/* @__PURE__ */ y(
|
|
169
|
+
/* @__PURE__ */ y(b, {
|
|
163
170
|
className: "space-y-4",
|
|
164
171
|
children: [
|
|
172
|
+
/* @__PURE__ */ v("h2", {
|
|
173
|
+
className: "text-base font-semibold text-text-primary",
|
|
174
|
+
children: "Performance Metrics"
|
|
175
|
+
}),
|
|
165
176
|
/* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("p", {
|
|
166
177
|
className: "text-sm text-text-secondary",
|
|
167
178
|
children: "On-Time Pickup"
|
|
168
179
|
}), /* @__PURE__ */ y("p", {
|
|
169
180
|
className: "text-2xl font-bold",
|
|
170
|
-
children: [
|
|
181
|
+
children: [S.performance.onTimePickup, "%"]
|
|
171
182
|
})] }),
|
|
172
183
|
/* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("p", {
|
|
173
184
|
className: "text-sm text-text-secondary",
|
|
174
185
|
children: "On-Time Delivery"
|
|
175
186
|
}), /* @__PURE__ */ y("p", {
|
|
176
187
|
className: "text-2xl font-bold",
|
|
177
|
-
children: [
|
|
188
|
+
children: [S.performance.onTimeDelivery, "%"]
|
|
178
189
|
})] }),
|
|
179
190
|
/* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("p", {
|
|
180
191
|
className: "text-sm text-text-secondary",
|
|
181
192
|
children: "Damaged Items"
|
|
182
193
|
}), /* @__PURE__ */ y("p", {
|
|
183
|
-
className: "text-2xl font-bold text-
|
|
184
|
-
children: [
|
|
194
|
+
className: "text-2xl font-bold text-status-success-text",
|
|
195
|
+
children: [S.performance.damagedItems, "%"]
|
|
185
196
|
})] }),
|
|
186
197
|
/* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("p", {
|
|
187
198
|
className: "text-sm text-text-secondary",
|
|
188
199
|
children: "Driver Ratings"
|
|
189
200
|
}), /* @__PURE__ */ y("p", {
|
|
190
201
|
className: "text-2xl font-bold",
|
|
191
|
-
children: [
|
|
202
|
+
children: [S.performance.driverRatings, "/5"]
|
|
192
203
|
})] })
|
|
193
204
|
]
|
|
194
|
-
})
|
|
205
|
+
})
|
|
195
206
|
]
|
|
196
207
|
})
|
|
197
208
|
]
|
|
198
209
|
});
|
|
199
210
|
}
|
|
200
211
|
//#endregion
|
|
201
|
-
export {
|
|
212
|
+
export { S as default };
|