@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,83 +1,84 @@
|
|
|
1
|
-
import { M as e, a as t, d as n, f as r, g as i, h as a, i as o, o as s, s as c, u as l } from "./PageLayout-
|
|
2
|
-
import { t as u } from "./chevron-right-
|
|
3
|
-
import { n as d, t as f } from "./wrench-
|
|
4
|
-
import { t as p } from "./star-
|
|
5
|
-
import { t as m } from "./truck-
|
|
6
|
-
import { t as h } 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, o as s, s as c, u as l } from "./PageLayout-D3N8MCTm.js";
|
|
2
|
+
import { t as u } from "./chevron-right-BIFGi0UA.js";
|
|
3
|
+
import { n as d, t as f } from "./wrench-CmxY1n4I.js";
|
|
4
|
+
import { t as p } from "./star-YsVV3MNQ.js";
|
|
5
|
+
import { t as m } from "./truck-CtDjNFbi.js";
|
|
6
|
+
import { t as h } from "./users-g2N0eL-Z.js";
|
|
7
7
|
import { r as g } from "./graphqlClient-CdJyR_ed.js";
|
|
8
8
|
import { i as _, n as v, o as y } from "./useFleet-BdETplNE.js";
|
|
9
|
-
import { r as b, t as x } from "./MetricCard-
|
|
10
|
-
import { a as S, r as C } from "./StatusBadge-
|
|
9
|
+
import { r as b, t as x } from "./MetricCard-B7yMyvMX.js";
|
|
10
|
+
import { a as S, r as C } from "./StatusBadge-CijYQXtb.js";
|
|
11
11
|
import { t as w } from "./navigation-BgnOfsVd.js";
|
|
12
12
|
import { jsx as T, jsxs as E } from "react/jsx-runtime";
|
|
13
|
-
import {
|
|
13
|
+
import { CTAOverflowMenu as D } from "@burdenoff/fe-libs/ui";
|
|
14
|
+
import { useI18n as O } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
|
|
14
15
|
//#region src/movethewheels/pages/FleetPage.tsx
|
|
15
|
-
function
|
|
16
|
-
let { t:
|
|
17
|
-
let n =
|
|
16
|
+
function k() {
|
|
17
|
+
let { t: k } = O(), A = (e, t) => {
|
|
18
|
+
let n = k(e);
|
|
18
19
|
return n === e ? t : n;
|
|
19
|
-
}, { basePath:
|
|
20
|
-
|
|
20
|
+
}, { basePath: j, navigate: M } = g(), { stats: N } = _(), { vehicles: P } = y(), { drivers: F } = v(), I = (e) => {
|
|
21
|
+
M && M(w(j, e));
|
|
21
22
|
};
|
|
22
23
|
return /* @__PURE__ */ E(o, {
|
|
23
|
-
title:
|
|
24
|
-
subtitle:
|
|
24
|
+
title: A("movethewheels.fleet.title", "Fleet Management"),
|
|
25
|
+
subtitle: A("movethewheels.fleet.subtitle", "Manage your vehicles and drivers"),
|
|
25
26
|
icon: /* @__PURE__ */ T(m, { size: 24 }),
|
|
26
|
-
headerActions: /* @__PURE__ */
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
}
|
|
27
|
+
headerActions: /* @__PURE__ */ T(D, {
|
|
28
|
+
primary: {
|
|
29
|
+
label: A("movethewheels.fleet.actions.allVehicles", "All Vehicles"),
|
|
30
|
+
icon: /* @__PURE__ */ T(m, { size: 16 }),
|
|
31
|
+
onSelect: () => I("fleet/vehicles")
|
|
32
|
+
},
|
|
33
|
+
actions: [{
|
|
34
|
+
label: A("movethewheels.fleet.actions.allDrivers", "All Drivers"),
|
|
35
|
+
icon: /* @__PURE__ */ T(h, { size: 16 }),
|
|
36
|
+
onSelect: () => I("fleet/drivers")
|
|
37
|
+
}]
|
|
37
38
|
}),
|
|
38
39
|
children: [
|
|
39
40
|
/* @__PURE__ */ E(b, {
|
|
40
41
|
columns: 4,
|
|
41
42
|
children: [
|
|
42
43
|
/* @__PURE__ */ T(x, {
|
|
43
|
-
label:
|
|
44
|
-
value:
|
|
44
|
+
label: A("movethewheels.fleet.metrics.totalVehicles", "Total Vehicles"),
|
|
45
|
+
value: N.totalVehicles,
|
|
45
46
|
icon: /* @__PURE__ */ T(m, { size: 20 }),
|
|
46
|
-
subtitle: `${
|
|
47
|
-
onClick: () =>
|
|
47
|
+
subtitle: `${N.vehiclesByStatus.available} ${A("movethewheels.fleet.metrics.available", "available")}`,
|
|
48
|
+
onClick: () => I("fleet/vehicles")
|
|
48
49
|
}),
|
|
49
50
|
/* @__PURE__ */ T(x, {
|
|
50
|
-
label:
|
|
51
|
-
value:
|
|
51
|
+
label: A("movethewheels.fleet.metrics.totalDrivers", "Total Drivers"),
|
|
52
|
+
value: N.totalDrivers,
|
|
52
53
|
icon: /* @__PURE__ */ T(h, { size: 20 }),
|
|
53
|
-
subtitle: `${
|
|
54
|
-
onClick: () =>
|
|
54
|
+
subtitle: `${N.driversByStatus.available} ${A("movethewheels.fleet.metrics.available", "available")}`,
|
|
55
|
+
onClick: () => I("fleet/drivers")
|
|
55
56
|
}),
|
|
56
57
|
/* @__PURE__ */ T(x, {
|
|
57
|
-
label:
|
|
58
|
-
value: `${
|
|
58
|
+
label: A("movethewheels.fleet.metrics.utilization", "Fleet Utilization"),
|
|
59
|
+
value: `${N.utilization.toFixed(0)}%`,
|
|
59
60
|
icon: /* @__PURE__ */ T(m, { size: 20 }),
|
|
60
|
-
changeType:
|
|
61
|
+
changeType: N.utilization >= 70 ? "positive" : "neutral"
|
|
61
62
|
}),
|
|
62
63
|
/* @__PURE__ */ T(x, {
|
|
63
|
-
label:
|
|
64
|
-
value:
|
|
64
|
+
label: A("movethewheels.fleet.metrics.avgDriverRating", "Avg Driver Rating"),
|
|
65
|
+
value: N.avgDriverRating.toFixed(1),
|
|
65
66
|
icon: /* @__PURE__ */ T(p, { size: 20 }),
|
|
66
|
-
subtitle:
|
|
67
|
-
changeType:
|
|
67
|
+
subtitle: A("movethewheels.fleet.metrics.outOfFive", "out of 5"),
|
|
68
|
+
changeType: N.avgDriverRating >= 4.5 ? "positive" : "neutral"
|
|
68
69
|
})
|
|
69
70
|
]
|
|
70
71
|
}),
|
|
71
72
|
/* @__PURE__ */ E("div", {
|
|
72
73
|
className: "grid grid-cols-1 lg:grid-cols-2 gap-6",
|
|
73
74
|
children: [/* @__PURE__ */ T(t, {
|
|
74
|
-
title:
|
|
75
|
+
title: A("movethewheels.fleet.vehicles.title", "Vehicles"),
|
|
75
76
|
actions: /* @__PURE__ */ E(l, {
|
|
76
77
|
variant: "ghost",
|
|
77
78
|
size: "sm",
|
|
78
|
-
onClick: () =>
|
|
79
|
+
onClick: () => I("fleet/vehicles"),
|
|
79
80
|
children: [
|
|
80
|
-
|
|
81
|
+
A("movethewheels.fleet.common.viewAll", "View all"),
|
|
81
82
|
" ",
|
|
82
83
|
/* @__PURE__ */ T(u, { size: 16 })
|
|
83
84
|
]
|
|
@@ -86,15 +87,15 @@ function O() {
|
|
|
86
87
|
className: "p-0",
|
|
87
88
|
children: /* @__PURE__ */ T("div", {
|
|
88
89
|
className: "divide-y",
|
|
89
|
-
children:
|
|
90
|
-
className: "p-4 hover:bg-
|
|
91
|
-
onClick: () =>
|
|
90
|
+
children: P.slice(0, 5).map((t) => /* @__PURE__ */ T("div", {
|
|
91
|
+
className: "p-4 hover:bg-bg-sunken/50 cursor-pointer transition-colors",
|
|
92
|
+
onClick: () => I(`fleet/vehicles/${t.id}`),
|
|
92
93
|
children: /* @__PURE__ */ E("div", {
|
|
93
94
|
className: "flex items-center justify-between",
|
|
94
95
|
children: [/* @__PURE__ */ E("div", {
|
|
95
96
|
className: "flex items-center gap-3",
|
|
96
97
|
children: [/* @__PURE__ */ T("div", {
|
|
97
|
-
className: "w-10 h-10 rounded-lg bg-primary/10 flex items-center justify-center",
|
|
98
|
+
className: "w-10 h-10 rounded-lg bg-action-primary-bg/10 flex items-center justify-center",
|
|
98
99
|
children: /* @__PURE__ */ T(m, {
|
|
99
100
|
size: 20,
|
|
100
101
|
className: "text-primary"
|
|
@@ -109,7 +110,7 @@ function O() {
|
|
|
109
110
|
size: "sm"
|
|
110
111
|
})]
|
|
111
112
|
}), /* @__PURE__ */ E("p", {
|
|
112
|
-
className: "text-sm text-
|
|
113
|
+
className: "text-sm text-text-secondary",
|
|
113
114
|
children: [
|
|
114
115
|
t.make,
|
|
115
116
|
" ",
|
|
@@ -130,14 +131,14 @@ function O() {
|
|
|
130
131
|
children: [
|
|
131
132
|
/* @__PURE__ */ T(d, {
|
|
132
133
|
size: 12,
|
|
133
|
-
className: "text-
|
|
134
|
+
className: "text-text-secondary"
|
|
134
135
|
}),
|
|
135
136
|
/* @__PURE__ */ T(e, {
|
|
136
137
|
value: t.fuelLevel,
|
|
137
138
|
className: "w-16 h-2"
|
|
138
139
|
}),
|
|
139
140
|
/* @__PURE__ */ E("span", {
|
|
140
|
-
className: "text-xs text-
|
|
141
|
+
className: "text-xs text-text-secondary",
|
|
141
142
|
children: [t.fuelLevel, "%"]
|
|
142
143
|
})
|
|
143
144
|
]
|
|
@@ -148,13 +149,13 @@ function O() {
|
|
|
148
149
|
})
|
|
149
150
|
}) })
|
|
150
151
|
}), /* @__PURE__ */ T(t, {
|
|
151
|
-
title:
|
|
152
|
+
title: A("movethewheels.fleet.drivers.title", "Drivers"),
|
|
152
153
|
actions: /* @__PURE__ */ E(l, {
|
|
153
154
|
variant: "ghost",
|
|
154
155
|
size: "sm",
|
|
155
|
-
onClick: () =>
|
|
156
|
+
onClick: () => I("fleet/drivers"),
|
|
156
157
|
children: [
|
|
157
|
-
|
|
158
|
+
A("movethewheels.fleet.common.viewAll", "View all"),
|
|
158
159
|
" ",
|
|
159
160
|
/* @__PURE__ */ T(u, { size: 16 })
|
|
160
161
|
]
|
|
@@ -163,9 +164,9 @@ function O() {
|
|
|
163
164
|
className: "p-0",
|
|
164
165
|
children: /* @__PURE__ */ T("div", {
|
|
165
166
|
className: "divide-y",
|
|
166
|
-
children:
|
|
167
|
-
className: "p-4 hover:bg-
|
|
168
|
-
onClick: () =>
|
|
167
|
+
children: F.slice(0, 5).map((e) => /* @__PURE__ */ T("div", {
|
|
168
|
+
className: "p-4 hover:bg-bg-sunken/50 cursor-pointer transition-colors",
|
|
169
|
+
onClick: () => I(`fleet/drivers/${e.id}`),
|
|
169
170
|
children: /* @__PURE__ */ E("div", {
|
|
170
171
|
className: "flex items-center justify-between",
|
|
171
172
|
children: [/* @__PURE__ */ E("div", {
|
|
@@ -174,13 +175,13 @@ function O() {
|
|
|
174
175
|
className: "font-medium",
|
|
175
176
|
children: e.fullName
|
|
176
177
|
}), /* @__PURE__ */ E("p", {
|
|
177
|
-
className: "text-sm text-
|
|
178
|
+
className: "text-sm text-text-secondary",
|
|
178
179
|
children: [
|
|
179
180
|
e.employeeId,
|
|
180
181
|
" - ",
|
|
181
182
|
e.completedOrders,
|
|
182
183
|
" ",
|
|
183
|
-
|
|
184
|
+
A("movethewheels.fleet.drivers.deliveries", "deliveries")
|
|
184
185
|
]
|
|
185
186
|
})] })]
|
|
186
187
|
}), /* @__PURE__ */ E("div", {
|
|
@@ -208,9 +209,9 @@ function O() {
|
|
|
208
209
|
}),
|
|
209
210
|
/* @__PURE__ */ E("div", {
|
|
210
211
|
className: "grid grid-cols-1 md:grid-cols-2 gap-6",
|
|
211
|
-
children: [/* @__PURE__ */ E(n, { children: [/* @__PURE__ */ T(a, { children: /* @__PURE__ */ T(i, { children:
|
|
212
|
+
children: [/* @__PURE__ */ E(n, { children: [/* @__PURE__ */ T(a, { children: /* @__PURE__ */ T(i, { children: A("movethewheels.fleet.status.vehicleTitle", "Vehicle Status") }) }), /* @__PURE__ */ T(r, { children: /* @__PURE__ */ T("div", {
|
|
212
213
|
className: "space-y-4",
|
|
213
|
-
children: Object.entries(
|
|
214
|
+
children: Object.entries(N.vehiclesByStatus).map(([t, n]) => /* @__PURE__ */ E("div", {
|
|
214
215
|
className: "flex items-center justify-between",
|
|
215
216
|
children: [/* @__PURE__ */ T("div", {
|
|
216
217
|
className: "flex items-center gap-3",
|
|
@@ -224,14 +225,14 @@ function O() {
|
|
|
224
225
|
className: "font-medium",
|
|
225
226
|
children: n
|
|
226
227
|
}), /* @__PURE__ */ T(e, {
|
|
227
|
-
value: n /
|
|
228
|
+
value: n / N.totalVehicles * 100,
|
|
228
229
|
className: "w-24 h-2"
|
|
229
230
|
})]
|
|
230
231
|
})]
|
|
231
232
|
}, t))
|
|
232
|
-
}) })] }), /* @__PURE__ */ E(n, { children: [/* @__PURE__ */ T(a, { children: /* @__PURE__ */ T(i, { children:
|
|
233
|
+
}) })] }), /* @__PURE__ */ E(n, { children: [/* @__PURE__ */ T(a, { children: /* @__PURE__ */ T(i, { children: A("movethewheels.fleet.status.driverTitle", "Driver Status") }) }), /* @__PURE__ */ T(r, { children: /* @__PURE__ */ T("div", {
|
|
233
234
|
className: "space-y-4",
|
|
234
|
-
children: Object.entries(
|
|
235
|
+
children: Object.entries(N.driversByStatus).map(([t, n]) => /* @__PURE__ */ E("div", {
|
|
235
236
|
className: "flex items-center justify-between",
|
|
236
237
|
children: [/* @__PURE__ */ T("div", {
|
|
237
238
|
className: "flex items-center gap-3",
|
|
@@ -245,21 +246,21 @@ function O() {
|
|
|
245
246
|
className: "font-medium",
|
|
246
247
|
children: n
|
|
247
248
|
}), /* @__PURE__ */ T(e, {
|
|
248
|
-
value: n /
|
|
249
|
+
value: n / N.totalDrivers * 100,
|
|
249
250
|
className: "w-24 h-2"
|
|
250
251
|
})]
|
|
251
252
|
})]
|
|
252
253
|
}, t))
|
|
253
254
|
}) })] })]
|
|
254
255
|
}),
|
|
255
|
-
|
|
256
|
+
N.vehiclesByStatus.maintenance > 0 && /* @__PURE__ */ E(n, {
|
|
256
257
|
className: "border-yellow-200 dark:border-yellow-800",
|
|
257
258
|
children: [/* @__PURE__ */ T(a, { children: /* @__PURE__ */ E(i, {
|
|
258
259
|
className: "flex items-center gap-2 text-yellow-600",
|
|
259
|
-
children: [/* @__PURE__ */ T(f, { size: 18 }),
|
|
260
|
+
children: [/* @__PURE__ */ T(f, { size: 18 }), A("movethewheels.fleet.maintenance.title", "Maintenance Required")]
|
|
260
261
|
}) }), /* @__PURE__ */ T(r, { children: /* @__PURE__ */ T("div", {
|
|
261
262
|
className: "space-y-3",
|
|
262
|
-
children:
|
|
263
|
+
children: P.filter((e) => e.status === "maintenance").map((e) => /* @__PURE__ */ E("div", {
|
|
263
264
|
className: "flex items-center justify-between p-3 bg-yellow-50 dark:bg-yellow-900/20 rounded-lg",
|
|
264
265
|
children: [/* @__PURE__ */ E("div", {
|
|
265
266
|
className: "flex items-center gap-3",
|
|
@@ -270,7 +271,7 @@ function O() {
|
|
|
270
271
|
className: "font-medium",
|
|
271
272
|
children: e.vehicleNumber
|
|
272
273
|
}), /* @__PURE__ */ E("p", {
|
|
273
|
-
className: "text-sm text-
|
|
274
|
+
className: "text-sm text-text-secondary",
|
|
274
275
|
children: [
|
|
275
276
|
e.make,
|
|
276
277
|
" ",
|
|
@@ -280,8 +281,8 @@ function O() {
|
|
|
280
281
|
}), /* @__PURE__ */ T(l, {
|
|
281
282
|
variant: "outline",
|
|
282
283
|
size: "sm",
|
|
283
|
-
onClick: () =>
|
|
284
|
-
children:
|
|
284
|
+
onClick: () => I(`fleet/vehicles/${e.id}`),
|
|
285
|
+
children: A("movethewheels.fleet.maintenance.viewDetails", "View Details")
|
|
285
286
|
})]
|
|
286
287
|
}, e.id))
|
|
287
288
|
}) })]
|
|
@@ -290,4 +291,4 @@ function O() {
|
|
|
290
291
|
});
|
|
291
292
|
}
|
|
292
293
|
//#endregion
|
|
293
|
-
export {
|
|
294
|
+
export { k as default };
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { d as e, f as t, g as n, h as r, i, it as a, l as o, u as s } from "./PageLayout-
|
|
2
|
-
import { t as c } from "./download-
|
|
3
|
-
import { t as l } from "./file-text-
|
|
1
|
+
import { d as e, f as t, g as n, h as r, i, it as a, l as o, u as s } from "./PageLayout-D3N8MCTm.js";
|
|
2
|
+
import { t as c } from "./download-Dpa9vqoG.js";
|
|
3
|
+
import { t as l } from "./file-text-C8Uioy11.js";
|
|
4
4
|
import { jsx as u, jsxs as d } from "react/jsx-runtime";
|
|
5
|
-
//#region
|
|
5
|
+
//#region node_modules/lucide-react/dist/esm/icons/check.js
|
|
6
6
|
var f = a("Check", [["path", {
|
|
7
7
|
d: "M20 6 9 17l-5-5",
|
|
8
8
|
key: "1gmf2c"
|
|
@@ -92,7 +92,7 @@ function h() {
|
|
|
92
92
|
children: [/* @__PURE__ */ d("div", {
|
|
93
93
|
className: "flex items-center gap-3",
|
|
94
94
|
children: [/* @__PURE__ */ u("div", {
|
|
95
|
-
className: "w-10 h-10 rounded-lg bg-primary/10 flex items-center justify-center",
|
|
95
|
+
className: "w-10 h-10 rounded-lg bg-action-primary-bg/10 flex items-center justify-center",
|
|
96
96
|
children: /* @__PURE__ */ u(e.icon, {
|
|
97
97
|
size: 20,
|
|
98
98
|
className: "text-primary"
|
|
@@ -101,7 +101,7 @@ function h() {
|
|
|
101
101
|
className: "font-medium",
|
|
102
102
|
children: e.name
|
|
103
103
|
}), /* @__PURE__ */ u("p", {
|
|
104
|
-
className: "text-sm text-
|
|
104
|
+
className: "text-sm text-text-secondary",
|
|
105
105
|
children: e.description
|
|
106
106
|
})] })]
|
|
107
107
|
}), /* @__PURE__ */ d("div", {
|
|
@@ -161,7 +161,7 @@ function h() {
|
|
|
161
161
|
className: "font-medium",
|
|
162
162
|
children: e.name
|
|
163
163
|
}), /* @__PURE__ */ u("p", {
|
|
164
|
-
className: "text-sm text-
|
|
164
|
+
className: "text-sm text-text-secondary",
|
|
165
165
|
children: e.description
|
|
166
166
|
})] }), /* @__PURE__ */ u("div", {
|
|
167
167
|
className: "flex gap-1",
|
|
@@ -195,7 +195,7 @@ function h() {
|
|
|
195
195
|
status: "completed"
|
|
196
196
|
}
|
|
197
197
|
].map((e, t) => /* @__PURE__ */ d("div", {
|
|
198
|
-
className: "flex items-center justify-between p-3 bg-
|
|
198
|
+
className: "flex items-center justify-between p-3 bg-bg-sunken/50 rounded-lg",
|
|
199
199
|
children: [/* @__PURE__ */ d("div", {
|
|
200
200
|
className: "flex items-center gap-3",
|
|
201
201
|
children: [e.type === "import" ? /* @__PURE__ */ u(m, {
|
|
@@ -208,7 +208,7 @@ function h() {
|
|
|
208
208
|
className: "font-medium",
|
|
209
209
|
children: e.name
|
|
210
210
|
}), /* @__PURE__ */ d("p", {
|
|
211
|
-
className: "text-sm text-
|
|
211
|
+
className: "text-sm text-text-secondary",
|
|
212
212
|
children: [
|
|
213
213
|
e.type === "import" ? "Imported" : "Exported",
|
|
214
214
|
" on ",
|
|
@@ -1,100 +1,95 @@
|
|
|
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 "./package-
|
|
4
|
-
import { t as d } from "./plus-
|
|
5
|
-
import { t as f } from "./triangle-alert-
|
|
6
|
-
import { t as p } from "./warehouse-
|
|
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 "./package-BE7U0wQE.js";
|
|
4
|
+
import { t as d } from "./plus-Dl1rLeJR.js";
|
|
5
|
+
import { t as f } from "./triangle-alert-BOhfGgmh.js";
|
|
6
|
+
import { t as p } from "./warehouse-D3WWDeTX.js";
|
|
7
7
|
import { r as m } from "./graphqlClient-CdJyR_ed.js";
|
|
8
8
|
import { n as h, t as g } from "./useInventory-Dwn18FPz.js";
|
|
9
|
-
import { r as _, t as v } from "./MetricCard-
|
|
9
|
+
import { r as _, t as v } from "./MetricCard-B7yMyvMX.js";
|
|
10
10
|
import { n as y } from "./formatters-_vJlC-47.js";
|
|
11
11
|
import { t as b } from "./navigation-BgnOfsVd.js";
|
|
12
12
|
import { jsx as x, jsxs as S } from "react/jsx-runtime";
|
|
13
|
-
import {
|
|
13
|
+
import { CTAOverflowMenu as C } from "@burdenoff/fe-libs/ui";
|
|
14
|
+
import { useI18n as w } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
|
|
14
15
|
//#region src/movethewheels/pages/InventoryPage.tsx
|
|
15
|
-
function
|
|
16
|
-
let { t:
|
|
17
|
-
let n =
|
|
16
|
+
function T() {
|
|
17
|
+
let { t: T } = w(), E = (e, t) => {
|
|
18
|
+
let n = T(e);
|
|
18
19
|
return n === e ? t : n;
|
|
19
|
-
}, { basePath:
|
|
20
|
+
}, { basePath: D, navigate: O } = m(), { inventory: k, products: A, warehouses: j } = g(), { stats: M } = h(), N = (e) => O?.(b(D, e)), P = k.filter((e) => e.availableQuantity <= e.reorderLevel);
|
|
20
21
|
return /* @__PURE__ */ S(o, {
|
|
21
|
-
title:
|
|
22
|
-
subtitle:
|
|
22
|
+
title: E("movethewheels.inventory.title", "Inventory"),
|
|
23
|
+
subtitle: E("movethewheels.inventory.subtitle", "Manage your products and warehouses"),
|
|
23
24
|
icon: /* @__PURE__ */ x(u, { size: 24 }),
|
|
24
|
-
headerActions: /* @__PURE__ */
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
/* @__PURE__ */ x(
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
/* @__PURE__ */ S(c, { children: [
|
|
38
|
-
/* @__PURE__ */ x(d, { size: 16 }),
|
|
39
|
-
" ",
|
|
40
|
-
T("movethewheels.inventory.actions.addProduct", "Add Product")
|
|
41
|
-
] })
|
|
42
|
-
]
|
|
25
|
+
headerActions: /* @__PURE__ */ x(C, {
|
|
26
|
+
primary: {
|
|
27
|
+
label: E("movethewheels.inventory.actions.addProduct", "Add Product"),
|
|
28
|
+
icon: /* @__PURE__ */ x(d, { size: 16 }),
|
|
29
|
+
onSelect: () => {}
|
|
30
|
+
},
|
|
31
|
+
actions: [{
|
|
32
|
+
label: E("movethewheels.inventory.actions.products", "Products"),
|
|
33
|
+
onSelect: () => N("inventory/products")
|
|
34
|
+
}, {
|
|
35
|
+
label: E("movethewheels.inventory.actions.warehouses", "Warehouses"),
|
|
36
|
+
onSelect: () => N("inventory/warehouses")
|
|
37
|
+
}]
|
|
43
38
|
}),
|
|
44
39
|
children: [
|
|
45
40
|
/* @__PURE__ */ S(_, {
|
|
46
41
|
columns: 4,
|
|
47
42
|
children: [
|
|
48
43
|
/* @__PURE__ */ x(v, {
|
|
49
|
-
label:
|
|
50
|
-
value:
|
|
44
|
+
label: E("movethewheels.inventory.metrics.totalProducts", "Total Products"),
|
|
45
|
+
value: M.totalProducts,
|
|
51
46
|
icon: /* @__PURE__ */ x(u, { size: 20 }),
|
|
52
|
-
onClick: () =>
|
|
47
|
+
onClick: () => N("inventory/products")
|
|
53
48
|
}),
|
|
54
49
|
/* @__PURE__ */ x(v, {
|
|
55
|
-
label:
|
|
56
|
-
value:
|
|
50
|
+
label: E("movethewheels.inventory.metrics.totalItems", "Total Items"),
|
|
51
|
+
value: M.totalItems.toLocaleString(),
|
|
57
52
|
icon: /* @__PURE__ */ x(u, { size: 20 })
|
|
58
53
|
}),
|
|
59
54
|
/* @__PURE__ */ x(v, {
|
|
60
|
-
label:
|
|
61
|
-
value: y(
|
|
55
|
+
label: E("movethewheels.inventory.metrics.inventoryValue", "Inventory Value"),
|
|
56
|
+
value: y(M.totalValue),
|
|
62
57
|
icon: /* @__PURE__ */ x(u, { size: 20 })
|
|
63
58
|
}),
|
|
64
59
|
/* @__PURE__ */ x(v, {
|
|
65
|
-
label:
|
|
66
|
-
value:
|
|
60
|
+
label: E("movethewheels.inventory.metrics.warehouses", "Warehouses"),
|
|
61
|
+
value: M.totalWarehouses,
|
|
67
62
|
icon: /* @__PURE__ */ x(p, { size: 20 }),
|
|
68
|
-
onClick: () =>
|
|
63
|
+
onClick: () => N("inventory/warehouses")
|
|
69
64
|
})
|
|
70
65
|
]
|
|
71
66
|
}),
|
|
72
|
-
|
|
67
|
+
P.length > 0 && /* @__PURE__ */ S(n, {
|
|
73
68
|
className: "border-yellow-200",
|
|
74
69
|
children: [/* @__PURE__ */ x(a, { children: /* @__PURE__ */ S(i, {
|
|
75
70
|
className: "flex items-center gap-2 text-yellow-600",
|
|
76
71
|
children: [
|
|
77
72
|
/* @__PURE__ */ x(f, { size: 18 }),
|
|
78
|
-
|
|
73
|
+
E("movethewheels.inventory.lowStock.title", "Low Stock Alert"),
|
|
79
74
|
" (",
|
|
80
|
-
|
|
75
|
+
P.length,
|
|
81
76
|
" ",
|
|
82
|
-
|
|
77
|
+
E("movethewheels.inventory.lowStock.items", "items"),
|
|
83
78
|
")"
|
|
84
79
|
]
|
|
85
80
|
}) }), /* @__PURE__ */ x(r, { children: /* @__PURE__ */ x("div", {
|
|
86
81
|
className: "space-y-3",
|
|
87
|
-
children:
|
|
88
|
-
let t =
|
|
82
|
+
children: P.slice(0, 5).map((e) => {
|
|
83
|
+
let t = A.find((t) => t.id === e.productId);
|
|
89
84
|
return /* @__PURE__ */ S("div", {
|
|
90
85
|
className: "flex items-center justify-between p-3 bg-yellow-50 dark:bg-yellow-900/20 rounded-lg",
|
|
91
86
|
children: [/* @__PURE__ */ S("div", { children: [/* @__PURE__ */ x("p", {
|
|
92
87
|
className: "font-medium",
|
|
93
|
-
children: t?.name ||
|
|
88
|
+
children: t?.name || E("movethewheels.inventory.lowStock.unknownProduct", "Unknown Product")
|
|
94
89
|
}), /* @__PURE__ */ S("p", {
|
|
95
|
-
className: "text-sm text-
|
|
90
|
+
className: "text-sm text-text-secondary",
|
|
96
91
|
children: [
|
|
97
|
-
|
|
92
|
+
E("movethewheels.inventory.lowStock.sku", "SKU:"),
|
|
98
93
|
" ",
|
|
99
94
|
t?.sku
|
|
100
95
|
]
|
|
@@ -105,12 +100,12 @@ function w() {
|
|
|
105
100
|
children: [
|
|
106
101
|
e.availableQuantity,
|
|
107
102
|
" ",
|
|
108
|
-
|
|
103
|
+
E("movethewheels.inventory.lowStock.left", "left")
|
|
109
104
|
]
|
|
110
105
|
}), /* @__PURE__ */ S("p", {
|
|
111
|
-
className: "text-sm text-
|
|
106
|
+
className: "text-sm text-text-secondary",
|
|
112
107
|
children: [
|
|
113
|
-
|
|
108
|
+
E("movethewheels.inventory.lowStock.reorderAt", "Reorder at:"),
|
|
114
109
|
" ",
|
|
115
110
|
e.reorderLevel
|
|
116
111
|
]
|
|
@@ -123,13 +118,13 @@ function w() {
|
|
|
123
118
|
/* @__PURE__ */ S("div", {
|
|
124
119
|
className: "grid grid-cols-1 lg:grid-cols-2 gap-6",
|
|
125
120
|
children: [/* @__PURE__ */ x(t, {
|
|
126
|
-
title:
|
|
121
|
+
title: E("movethewheels.inventory.warehouses.title", "Warehouses"),
|
|
127
122
|
actions: /* @__PURE__ */ S(c, {
|
|
128
123
|
variant: "ghost",
|
|
129
124
|
size: "sm",
|
|
130
|
-
onClick: () =>
|
|
125
|
+
onClick: () => N("inventory/warehouses"),
|
|
131
126
|
children: [
|
|
132
|
-
|
|
127
|
+
E("movethewheels.inventory.common.viewAll", "View all"),
|
|
133
128
|
" ",
|
|
134
129
|
/* @__PURE__ */ x(l, { size: 16 })
|
|
135
130
|
]
|
|
@@ -138,16 +133,16 @@ function w() {
|
|
|
138
133
|
className: "p-0",
|
|
139
134
|
children: /* @__PURE__ */ x("div", {
|
|
140
135
|
className: "divide-y",
|
|
141
|
-
children:
|
|
142
|
-
className: "p-4 hover:bg-
|
|
143
|
-
onClick: () =>
|
|
136
|
+
children: j.map((t) => /* @__PURE__ */ x("div", {
|
|
137
|
+
className: "p-4 hover:bg-bg-sunken/50 cursor-pointer",
|
|
138
|
+
onClick: () => N(`inventory/warehouses/${t.id}`),
|
|
144
139
|
children: /* @__PURE__ */ S("div", {
|
|
145
140
|
className: "flex items-center justify-between",
|
|
146
141
|
children: [/* @__PURE__ */ S("div", { children: [/* @__PURE__ */ x("p", {
|
|
147
142
|
className: "font-medium",
|
|
148
143
|
children: t.name
|
|
149
144
|
}), /* @__PURE__ */ S("p", {
|
|
150
|
-
className: "text-sm text-
|
|
145
|
+
className: "text-sm text-text-secondary",
|
|
151
146
|
children: [
|
|
152
147
|
t.address.city,
|
|
153
148
|
", ",
|
|
@@ -157,12 +152,12 @@ function w() {
|
|
|
157
152
|
className: "text-right",
|
|
158
153
|
children: [/* @__PURE__ */ x(s, {
|
|
159
154
|
variant: t.isActive ? "default" : "secondary",
|
|
160
|
-
children: t.isActive ?
|
|
155
|
+
children: t.isActive ? E("movethewheels.inventory.warehouses.active", "Active") : E("movethewheels.inventory.warehouses.inactive", "Inactive")
|
|
161
156
|
}), /* @__PURE__ */ S("div", {
|
|
162
157
|
className: "mt-2",
|
|
163
158
|
children: [/* @__PURE__ */ x("p", {
|
|
164
|
-
className: "text-xs text-
|
|
165
|
-
children:
|
|
159
|
+
className: "text-xs text-text-secondary",
|
|
160
|
+
children: E("movethewheels.inventory.warehouses.utilization", "Utilization")
|
|
166
161
|
}), /* @__PURE__ */ x(e, {
|
|
167
162
|
value: t.capacity.usedSpace / t.capacity.totalSpace * 100,
|
|
168
163
|
className: "w-24 h-2"
|
|
@@ -174,13 +169,13 @@ function w() {
|
|
|
174
169
|
})
|
|
175
170
|
}) })
|
|
176
171
|
}), /* @__PURE__ */ x(t, {
|
|
177
|
-
title:
|
|
172
|
+
title: E("movethewheels.inventory.products.title", "Recent Products"),
|
|
178
173
|
actions: /* @__PURE__ */ S(c, {
|
|
179
174
|
variant: "ghost",
|
|
180
175
|
size: "sm",
|
|
181
|
-
onClick: () =>
|
|
176
|
+
onClick: () => N("inventory/products"),
|
|
182
177
|
children: [
|
|
183
|
-
|
|
178
|
+
E("movethewheels.inventory.common.viewAll", "View all"),
|
|
184
179
|
" ",
|
|
185
180
|
/* @__PURE__ */ x(l, { size: 16 })
|
|
186
181
|
]
|
|
@@ -189,16 +184,16 @@ function w() {
|
|
|
189
184
|
className: "p-0",
|
|
190
185
|
children: /* @__PURE__ */ x("div", {
|
|
191
186
|
className: "divide-y",
|
|
192
|
-
children:
|
|
193
|
-
className: "p-4 hover:bg-
|
|
194
|
-
onClick: () =>
|
|
187
|
+
children: A.slice(0, 5).map((e) => /* @__PURE__ */ x("div", {
|
|
188
|
+
className: "p-4 hover:bg-bg-sunken/50 cursor-pointer",
|
|
189
|
+
onClick: () => N(`inventory/products/${e.id}`),
|
|
195
190
|
children: /* @__PURE__ */ S("div", {
|
|
196
191
|
className: "flex items-center justify-between",
|
|
197
192
|
children: [/* @__PURE__ */ S("div", { children: [/* @__PURE__ */ x("p", {
|
|
198
193
|
className: "font-medium",
|
|
199
194
|
children: e.name
|
|
200
195
|
}), /* @__PURE__ */ x("p", {
|
|
201
|
-
className: "text-sm text-
|
|
196
|
+
className: "text-sm text-text-secondary",
|
|
202
197
|
children: e.sku
|
|
203
198
|
})] }), /* @__PURE__ */ S("div", {
|
|
204
199
|
className: "text-right",
|
|
@@ -220,4 +215,4 @@ function w() {
|
|
|
220
215
|
});
|
|
221
216
|
}
|
|
222
217
|
//#endregion
|
|
223
|
-
export {
|
|
218
|
+
export { T as default };
|