@burdenoff/microfe-movethewheels 2026.624.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.
Files changed (119) hide show
  1. package/dist/{AIAssistantPage-BrHX2lQn.js → AIAssistantPage-AvsMbunM.js} +39 -33
  2. package/dist/{AnalyticsPage-DI6Wcaw5.js → AnalyticsPage-CCLfHgQZ.js} +44 -33
  3. package/dist/CreateOrderPage-CjlnEtk3.js +510 -0
  4. package/dist/CustomerDetailsPage-I6cdDHUi.js +265 -0
  5. package/dist/CustomersPage-CGGfD4ki.js +163 -0
  6. package/dist/{DashboardPage-3ZOnwg1a.js → DashboardPage-D2HRqwg9.js} +122 -111
  7. package/dist/DataTable-CD9ZhpLB.js +249 -0
  8. package/dist/DriverDetailsPage-rg_pGNuP.js +330 -0
  9. package/dist/DriversPage-DKiynISH.js +167 -0
  10. package/dist/FinancePage-Vg8WPs38.js +158 -0
  11. package/dist/{FleetPage-CPS7r4J3.js → FleetPage-DddXt8r8.js} +124 -85
  12. package/dist/ImportExportPage-BW6qO3kc.js +248 -0
  13. package/dist/InventoryPage-rMGuaJN-.js +222 -0
  14. package/dist/LiveTrackingPage-DQ1q4Id3.js +375 -0
  15. package/dist/MarketplacePage-DKrXAv62.js +219 -0
  16. package/dist/MetricCard-B7yMyvMX.js +146 -0
  17. package/dist/OrderDetailsPage-CFASgsYX.js +431 -0
  18. package/dist/OrdersListPage-BHeT8S5o.js +309 -0
  19. package/dist/{PageLayout-xDTiBTDS.js → PageLayout-D3N8MCTm.js} +213 -195
  20. package/dist/ProductDetailsPage-CFGcbaHo.js +195 -0
  21. package/dist/ProductsPage--xEpbQ8A.js +171 -0
  22. package/dist/{ReportsPage-B8OyWGzl.js → ReportsPage-Bb7_90rK.js} +57 -49
  23. package/dist/RouteDetailsPage-CVtDVb1N.js +282 -0
  24. package/dist/RoutesPage-s57PtgcQ.js +163 -0
  25. package/dist/SettingsPage-BYNCBOpN.js +298 -0
  26. package/dist/{StatusBadge-C--7NhoW.js → StatusBadge-CijYQXtb.js} +5 -2
  27. package/dist/{TrackingPage-BldUm_g7.js → TrackingPage-CcRc_dva.js} +88 -83
  28. package/dist/VehicleDetailsPage-3YDMPsPs.js +220 -0
  29. package/dist/VehiclesPage-UlxPWP9K.js +167 -0
  30. package/dist/WarehouseDetailsPage-Db7KeN-d.js +238 -0
  31. package/dist/WarehousesPage-CuTO-OPp.js +164 -0
  32. package/dist/{arrow-left-Bk5GsGNk.js → arrow-left-CBpZKkpq.js} +1 -1
  33. package/dist/{box-BAMv2-7M.js → box-CAaiElsb.js} +1 -1
  34. package/dist/{chart-column-CAfkf4o6.js → chart-column-D1Ym15-S.js} +1 -1
  35. package/dist/{chevron-right-Czrt_Qew.js → chevron-right-BIFGi0UA.js} +1 -1
  36. package/dist/{circle-alert-CEuV9Pij.js → circle-alert-DjmNo5_L.js} +1 -1
  37. package/dist/{circle-check-big-Cx8aO6B-.js → circle-check-big-CjuPVo3_.js} +1 -1
  38. package/dist/{clock-Be95bq7_.js → clock-BjkdnddD.js} +1 -1
  39. package/dist/{dollar-sign-kJqItPli.js → dollar-sign-IB4O0wuQ.js} +1 -1
  40. package/dist/{download-caab0D3V.js → download-Dpa9vqoG.js} +1 -1
  41. package/dist/{file-text-b1qhrJn1.js → file-text-C8Uioy11.js} +1 -1
  42. package/dist/{filter-BWmLTZB-.js → filter-Da5OZaHI.js} +1 -1
  43. package/dist/index.js +16 -16
  44. package/dist/{map-CS2aFgyO.js → map-_Per4sT9.js} +1 -1
  45. package/dist/{map-pin-96FeqL7H.js → map-pin-BSaf5IDL.js} +1 -1
  46. package/dist/{navigation-i6UXEjTC.js → navigation-DaTbrhw2.js} +1 -1
  47. package/dist/{package-KhSi3xaT.js → package-BE7U0wQE.js} +1 -1
  48. package/dist/{phone-B-h3tbsr.js → phone-DV4StZiA.js} +1 -1
  49. package/dist/{plus-D2BYAzMn.js → plus-Dl1rLeJR.js} +1 -1
  50. package/dist/{refresh-cw-D5Sy01s-.js → refresh-cw-CWfERAit.js} +1 -1
  51. package/dist/{route-CBDXuwH9.js → route-Dp9JiN_E.js} +1 -1
  52. package/dist/{save-CMc7h-Vi.js → save-XH8vydOn.js} +1 -1
  53. package/dist/{search-DVrUQbOg.js → search-OxoIiL_C.js} +1 -1
  54. package/dist/{settings-BwzIRYv3.js → settings-3Rw5NwFF.js} +1 -1
  55. package/dist/{square-pen-DmW36Bau.js → square-pen-hLIbFQFV.js} +1 -1
  56. package/dist/{star-Cv2MzxZL.js → star-YsVV3MNQ.js} +1 -1
  57. package/dist/{store-CLH957vl.js → store-RCBl7HB-.js} +1 -1
  58. package/dist/{trending-up-l8M0BO_w.js → trending-up-C-85AwGT.js} +1 -1
  59. package/dist/{triangle-alert-BI45s6bH.js → triangle-alert-BOhfGgmh.js} +1 -1
  60. package/dist/{truck-DX3lNQkz.js → truck-CtDjNFbi.js} +1 -1
  61. package/dist/{user-D8EY1uvt.js → user-Dz5TJZFs.js} +1 -1
  62. package/dist/{users-CfG0J8wP.js → users-g2N0eL-Z.js} +1 -1
  63. package/dist/{warehouse-Dt_bAr82.js → warehouse-D3WWDeTX.js} +1 -1
  64. package/dist/{wrench-C50eI_Iy.js → wrench-CmxY1n4I.js} +1 -1
  65. package/package.json +2 -2
  66. package/src/movethewheels/components/DataTable.tsx +41 -6
  67. package/src/movethewheels/components/MetricCard.tsx +51 -20
  68. package/src/movethewheels/components/PageLayout.tsx +60 -5
  69. package/src/movethewheels/components/StatusBadge.tsx +2 -1
  70. package/src/movethewheels/pages/AIAssistantPage.tsx +11 -3
  71. package/src/movethewheels/pages/AnalyticsPage.tsx +31 -25
  72. package/src/movethewheels/pages/CreateOrderPage.tsx +56 -17
  73. package/src/movethewheels/pages/CustomerDetailsPage.tsx +63 -38
  74. package/src/movethewheels/pages/CustomersPage.tsx +51 -12
  75. package/src/movethewheels/pages/DashboardPage.tsx +62 -48
  76. package/src/movethewheels/pages/DriverDetailsPage.tsx +57 -26
  77. package/src/movethewheels/pages/DriversPage.tsx +45 -12
  78. package/src/movethewheels/pages/FinancePage.tsx +45 -41
  79. package/src/movethewheels/pages/FleetPage.tsx +82 -34
  80. package/src/movethewheels/pages/ImportExportPage.tsx +46 -29
  81. package/src/movethewheels/pages/InventoryPage.tsx +37 -33
  82. package/src/movethewheels/pages/LiveTrackingPage.tsx +58 -20
  83. package/src/movethewheels/pages/MarketplacePage.tsx +37 -3
  84. package/src/movethewheels/pages/OrderDetailsPage.tsx +74 -46
  85. package/src/movethewheels/pages/OrdersListPage.tsx +81 -14
  86. package/src/movethewheels/pages/ProductDetailsPage.tsx +36 -11
  87. package/src/movethewheels/pages/ProductsPage.tsx +41 -12
  88. package/src/movethewheels/pages/ReportsPage.tsx +23 -19
  89. package/src/movethewheels/pages/RouteDetailsPage.tsx +71 -31
  90. package/src/movethewheels/pages/RoutesPage.tsx +48 -9
  91. package/src/movethewheels/pages/SettingsPage.tsx +68 -26
  92. package/src/movethewheels/pages/TrackingPage.tsx +52 -49
  93. package/src/movethewheels/pages/VehicleDetailsPage.tsx +49 -24
  94. package/src/movethewheels/pages/VehiclesPage.tsx +41 -15
  95. package/src/movethewheels/pages/WarehouseDetailsPage.tsx +55 -30
  96. package/src/movethewheels/pages/WarehousesPage.tsx +46 -9
  97. package/dist/CreateOrderPage-DfkSi6JF.js +0 -471
  98. package/dist/CustomerDetailsPage-DzAIu_tH.js +0 -239
  99. package/dist/CustomersPage-d21ixOYa.js +0 -119
  100. package/dist/DataTable-CZGz3SJu.js +0 -239
  101. package/dist/DriverDetailsPage-YuZSlPSV.js +0 -297
  102. package/dist/DriversPage-BOhqEBTv.js +0 -127
  103. package/dist/FinancePage-CnjUNXOb.js +0 -154
  104. package/dist/ImportExportPage-zNjs7xsV.js +0 -232
  105. package/dist/InventoryPage-C9g5d3SW.js +0 -223
  106. package/dist/LiveTrackingPage-DoBvtdBG.js +0 -332
  107. package/dist/MarketplacePage-BEj5hcBF.js +0 -192
  108. package/dist/MetricCard-DeHVeVwl.js +0 -135
  109. package/dist/OrderDetailsPage-D-9lDZYU.js +0 -398
  110. package/dist/OrdersListPage-CJzHbgY3.js +0 -257
  111. package/dist/ProductDetailsPage-3rKtzXpy.js +0 -168
  112. package/dist/ProductsPage-B0P_wjBJ.js +0 -131
  113. package/dist/RouteDetailsPage-DGjKTUMj.js +0 -240
  114. package/dist/RoutesPage-CpopY8xN.js +0 -116
  115. package/dist/SettingsPage-BvXSa3gi.js +0 -247
  116. package/dist/VehicleDetailsPage-Dqv--MVW.js +0 -194
  117. package/dist/VehiclesPage-CCBHRDHu.js +0 -127
  118. package/dist/WarehouseDetailsPage-ZObC_c7W.js +0 -215
  119. package/dist/WarehousesPage-CpgZEVW9.js +0 -121
@@ -0,0 +1,167 @@
1
+ import { i as e, o as t, s as n } from "./PageLayout-D3N8MCTm.js";
2
+ import { t as r } from "./DataTable-CD9ZhpLB.js";
3
+ import { t as i } from "./download-Dpa9vqoG.js";
4
+ import { t as a } from "./plus-Dl1rLeJR.js";
5
+ import { t as o } from "./refresh-cw-CWfERAit.js";
6
+ import { t as s } from "./star-YsVV3MNQ.js";
7
+ import { t as c } from "./users-g2N0eL-Z.js";
8
+ import { r as l } from "./graphqlClient-CdJyR_ed.js";
9
+ import { n as u } from "./useFleet-BdETplNE.js";
10
+ import { r as d } from "./StatusBadge-CijYQXtb.js";
11
+ import { r as f } from "./formatters-_vJlC-47.js";
12
+ import { t as p } from "./navigation-BgnOfsVd.js";
13
+ import { jsx as m, jsxs as h } from "react/jsx-runtime";
14
+ import { CTAOverflowMenu as g, EmphasisPanel as _, PagePurpose as v } from "@burdenoff/fe-libs/ui";
15
+ //#region src/movethewheels/pages/DriversPage.tsx
16
+ function y() {
17
+ let { basePath: y, navigate: b } = l(), { drivers: x, totalDrivers: S, isLoading: C, refetch: w } = u(), T = (e) => b?.(p(y, e));
18
+ return /* @__PURE__ */ h(e, {
19
+ title: "Drivers",
20
+ subtitle: `${S} drivers`,
21
+ icon: /* @__PURE__ */ m(c, { size: 24 }),
22
+ headerActions: /* @__PURE__ */ m(g, {
23
+ primary: {
24
+ label: "Add Driver",
25
+ icon: /* @__PURE__ */ m(a, { size: 16 }),
26
+ onSelect: () => {}
27
+ },
28
+ actions: [{
29
+ label: "Refresh",
30
+ icon: /* @__PURE__ */ m(o, { size: 16 }),
31
+ onSelect: () => w()
32
+ }, {
33
+ label: "Export",
34
+ icon: /* @__PURE__ */ m(i, { size: 16 }),
35
+ onSelect: () => {}
36
+ }]
37
+ }),
38
+ children: [
39
+ /* @__PURE__ */ m(v, {
40
+ icon: /* @__PURE__ */ m(c, { size: 18 }),
41
+ children: "Your delivery workforce. Track each driver's availability, performance rating, completed deliveries and license status here — open a driver to review their history before assigning them to an order or route."
42
+ }),
43
+ /* @__PURE__ */ h(_, { children: [/* @__PURE__ */ m("p", {
44
+ className: "text-sm font-medium text-text-secondary",
45
+ children: "Workforce at a glance"
46
+ }), /* @__PURE__ */ h("div", {
47
+ className: "mt-3 grid grid-cols-3 gap-4",
48
+ children: [
49
+ /* @__PURE__ */ h("div", { children: [/* @__PURE__ */ m("p", {
50
+ className: "text-2xl font-bold text-text-primary tabular-nums",
51
+ children: S
52
+ }), /* @__PURE__ */ m("p", {
53
+ className: "text-xs text-text-secondary",
54
+ children: "Total drivers"
55
+ })] }),
56
+ /* @__PURE__ */ h("div", { children: [/* @__PURE__ */ m("p", {
57
+ className: "text-2xl font-bold text-text-primary tabular-nums",
58
+ children: x.filter((e) => e.status === "available" || e.status === "busy").length
59
+ }), /* @__PURE__ */ m("p", {
60
+ className: "text-xs text-text-secondary",
61
+ children: "On duty / available"
62
+ })] }),
63
+ /* @__PURE__ */ h("div", { children: [/* @__PURE__ */ m("p", {
64
+ className: "text-2xl font-bold text-text-primary tabular-nums",
65
+ children: x.length > 0 ? (x.reduce((e, t) => e + t.ratings.overall, 0) / x.length).toFixed(1) : "—"
66
+ }), /* @__PURE__ */ m("p", {
67
+ className: "text-xs text-text-secondary",
68
+ children: "Avg rating"
69
+ })] })
70
+ ]
71
+ })] }),
72
+ /* @__PURE__ */ m(r, {
73
+ columns: [
74
+ {
75
+ id: "driver",
76
+ header: "Driver",
77
+ cell: (e) => /* @__PURE__ */ h("div", {
78
+ className: "flex items-center gap-3",
79
+ children: [/* @__PURE__ */ m(t, { children: /* @__PURE__ */ m(n, { children: e.fullName.split(" ").map((e) => e[0]).join("") }) }), /* @__PURE__ */ h("div", { children: [/* @__PURE__ */ m("p", {
80
+ className: "font-medium",
81
+ children: e.fullName
82
+ }), /* @__PURE__ */ m("p", {
83
+ className: "text-sm text-text-secondary",
84
+ children: e.employeeId
85
+ })] })]
86
+ })
87
+ },
88
+ {
89
+ id: "status",
90
+ header: "Status",
91
+ accessorKey: "status",
92
+ sortable: !0,
93
+ cell: (e) => /* @__PURE__ */ m(d, {
94
+ status: e.status,
95
+ type: "driver"
96
+ })
97
+ },
98
+ {
99
+ id: "rating",
100
+ header: "Rating",
101
+ cell: (e) => /* @__PURE__ */ h("div", {
102
+ className: "flex items-center gap-1",
103
+ children: [
104
+ /* @__PURE__ */ m(s, {
105
+ size: 14,
106
+ className: "text-yellow-500 fill-yellow-500"
107
+ }),
108
+ /* @__PURE__ */ m("span", {
109
+ className: "font-medium",
110
+ children: e.ratings.overall.toFixed(1)
111
+ }),
112
+ /* @__PURE__ */ h("span", {
113
+ className: "text-text-secondary text-sm",
114
+ children: [
115
+ "(",
116
+ e.ratings.totalRatings,
117
+ ")"
118
+ ]
119
+ })
120
+ ]
121
+ })
122
+ },
123
+ {
124
+ id: "deliveries",
125
+ header: "Deliveries",
126
+ accessorKey: "completedOrders",
127
+ sortable: !0,
128
+ cell: (e) => /* @__PURE__ */ m("span", {
129
+ className: "font-medium",
130
+ children: e.completedOrders.toLocaleString()
131
+ })
132
+ },
133
+ {
134
+ id: "license",
135
+ header: "License",
136
+ cell: (e) => /* @__PURE__ */ h("div", {
137
+ className: "text-sm",
138
+ children: [/* @__PURE__ */ m("p", { children: e.licenseType }), /* @__PURE__ */ h("p", {
139
+ className: "text-text-secondary",
140
+ children: ["Exp: ", f(e.licenseExpiry, "short")]
141
+ })]
142
+ })
143
+ },
144
+ {
145
+ id: "joined",
146
+ header: "Join Date",
147
+ accessorKey: "joinDate",
148
+ sortable: !0,
149
+ cell: (e) => f(e.joinDate, "short")
150
+ }
151
+ ],
152
+ data: x,
153
+ isLoading: C,
154
+ searchable: !0,
155
+ searchPlaceholder: "Search drivers...",
156
+ searchFields: ["fullName", "employeeId"],
157
+ onRowClick: (e) => T(`fleet/drivers/${e.id}`),
158
+ getRowId: (e) => e.id,
159
+ emptyIllustration: "empty-people",
160
+ emptyTitle: "No drivers yet",
161
+ emptyDescription: "Add drivers to start assigning deliveries and routes."
162
+ })
163
+ ]
164
+ });
165
+ }
166
+ //#endregion
167
+ export { y as default };
@@ -0,0 +1,158 @@
1
+ import { d as e, f as t, g as n, h as r, i, it as a, u as o } from "./PageLayout-D3N8MCTm.js";
2
+ import { t as s } from "./dollar-sign-IB4O0wuQ.js";
3
+ import { t as c } from "./download-Dpa9vqoG.js";
4
+ import { t as l } from "./file-text-C8Uioy11.js";
5
+ import { t as u } from "./trending-up-C-85AwGT.js";
6
+ import { n as d } from "./useOrders-D_3_hGMp.js";
7
+ import { t as f } from "./useAnalytics-ph7eTIK6.js";
8
+ import { r as p, t as m } from "./MetricCard-B7yMyvMX.js";
9
+ import { n as h } from "./formatters-_vJlC-47.js";
10
+ import { jsx as g, jsxs as _ } from "react/jsx-runtime";
11
+ import { EmphasisPanel as v, IllustratedEmptyState as y, PagePurpose as b } from "@burdenoff/fe-libs/ui";
12
+ //#region node_modules/lucide-react/dist/esm/icons/credit-card.js
13
+ var x = a("CreditCard", [["rect", {
14
+ width: "20",
15
+ height: "14",
16
+ x: "2",
17
+ y: "5",
18
+ rx: "2",
19
+ key: "ynyp8z"
20
+ }], ["line", {
21
+ x1: "2",
22
+ x2: "22",
23
+ y1: "10",
24
+ y2: "10",
25
+ key: "1b3vmo"
26
+ }]]);
27
+ //#endregion
28
+ //#region src/movethewheels/pages/FinancePage.tsx
29
+ function S() {
30
+ let { analytics: a } = f(), { stats: S } = d(), C = S.totalRevenue * .15, w = S.totalRevenue * .85;
31
+ return /* @__PURE__ */ _(i, {
32
+ title: "Finance",
33
+ subtitle: "Financial overview and reports",
34
+ icon: /* @__PURE__ */ g(s, { size: 24 }),
35
+ headerActions: /* @__PURE__ */ _("div", {
36
+ className: "flex gap-2",
37
+ children: [/* @__PURE__ */ _(o, {
38
+ variant: "outline",
39
+ children: [/* @__PURE__ */ g(l, { size: 16 }), " Invoices"]
40
+ }), /* @__PURE__ */ _(o, {
41
+ variant: "outline",
42
+ children: [/* @__PURE__ */ g(c, { size: 16 }), " Export"]
43
+ })]
44
+ }),
45
+ children: [
46
+ /* @__PURE__ */ g(b, {
47
+ icon: /* @__PURE__ */ g(s, { size: 18 }),
48
+ children: "Follow the money behind your deliveries. See revenue earned, what's been collected versus still owed, and average order value — use it to chase pending payments, forecast cash flow, and confirm which shipments have actually been paid for."
49
+ }),
50
+ /* @__PURE__ */ _(p, {
51
+ columns: 4,
52
+ children: [
53
+ /* @__PURE__ */ g(m, {
54
+ treatment: "glass",
55
+ glow: !0,
56
+ label: "Total Revenue",
57
+ value: h(a.overview.totalRevenue),
58
+ icon: /* @__PURE__ */ g(s, { size: 20 }),
59
+ change: "+12.5%",
60
+ changeType: "positive",
61
+ trend: "up"
62
+ }),
63
+ /* @__PURE__ */ g(m, {
64
+ label: "Completed",
65
+ value: h(w),
66
+ icon: /* @__PURE__ */ g(u, { size: 20 }),
67
+ changeType: "positive"
68
+ }),
69
+ /* @__PURE__ */ g(m, {
70
+ label: "Pending",
71
+ value: h(C),
72
+ icon: /* @__PURE__ */ g(x, { size: 20 }),
73
+ changeType: "neutral"
74
+ }),
75
+ /* @__PURE__ */ g(m, {
76
+ label: "Avg Order Value",
77
+ value: h(S.avgOrderValue),
78
+ icon: /* @__PURE__ */ g(s, { size: 20 })
79
+ })
80
+ ]
81
+ }),
82
+ /* @__PURE__ */ _("div", {
83
+ className: "grid grid-cols-1 lg:grid-cols-2 gap-6",
84
+ children: [/* @__PURE__ */ _(e, { children: [/* @__PURE__ */ g(r, { children: /* @__PURE__ */ g(n, { children: "Revenue by Month" }) }), /* @__PURE__ */ g(t, { children: /* @__PURE__ */ g("div", {
85
+ className: "space-y-4",
86
+ children: a.trends.revenue.map((e) => /* @__PURE__ */ _("div", {
87
+ className: "flex items-center justify-between p-3 bg-bg-sunken/50 rounded-lg",
88
+ children: [/* @__PURE__ */ _("span", {
89
+ className: "font-medium",
90
+ children: [e.month, " 2024"]
91
+ }), /* @__PURE__ */ g("span", {
92
+ className: "text-lg font-bold",
93
+ children: h(e.revenue)
94
+ })]
95
+ }, e.month))
96
+ }) })] }), /* @__PURE__ */ _(v, {
97
+ className: "space-y-4",
98
+ children: [/* @__PURE__ */ g("h2", {
99
+ className: "text-base font-semibold text-text-primary",
100
+ children: "Payment Status"
101
+ }), /* @__PURE__ */ _("div", {
102
+ className: "space-y-4",
103
+ children: [/* @__PURE__ */ _("div", {
104
+ className: "flex items-center justify-between p-4 bg-status-success-bg/10 rounded-lg",
105
+ children: [/* @__PURE__ */ _("div", {
106
+ className: "flex items-center gap-3",
107
+ children: [/* @__PURE__ */ g("div", {
108
+ className: "w-10 h-10 rounded-full bg-status-success-bg/20 flex items-center justify-center",
109
+ children: /* @__PURE__ */ g(u, {
110
+ size: 20,
111
+ className: "text-status-success-text"
112
+ })
113
+ }), /* @__PURE__ */ _("div", { children: [/* @__PURE__ */ g("p", {
114
+ className: "font-medium",
115
+ children: "Paid"
116
+ }), /* @__PURE__ */ _("p", {
117
+ className: "text-sm text-text-secondary",
118
+ children: [S.byStatus.delivered, " orders"]
119
+ })] })]
120
+ }), /* @__PURE__ */ g("span", {
121
+ className: "text-xl font-bold text-status-success-text",
122
+ children: h(w)
123
+ })]
124
+ }), /* @__PURE__ */ _("div", {
125
+ className: "flex items-center justify-between p-4 bg-status-warning-bg/10 rounded-lg",
126
+ children: [/* @__PURE__ */ _("div", {
127
+ className: "flex items-center gap-3",
128
+ children: [/* @__PURE__ */ g("div", {
129
+ className: "w-10 h-10 rounded-full bg-status-warning-bg/20 flex items-center justify-center",
130
+ children: /* @__PURE__ */ g(x, {
131
+ size: 20,
132
+ className: "text-status-warning-text"
133
+ })
134
+ }), /* @__PURE__ */ _("div", { children: [/* @__PURE__ */ g("p", {
135
+ className: "font-medium",
136
+ children: "Pending"
137
+ }), /* @__PURE__ */ _("p", {
138
+ className: "text-sm text-text-secondary",
139
+ children: [S.byStatus.pending + S.byStatus.in_transit, " orders"]
140
+ })] })]
141
+ }), /* @__PURE__ */ g("span", {
142
+ className: "text-xl font-bold text-status-warning-text",
143
+ children: h(C)
144
+ })]
145
+ })]
146
+ })]
147
+ })]
148
+ }),
149
+ /* @__PURE__ */ _(e, { children: [/* @__PURE__ */ g(r, { children: /* @__PURE__ */ g(n, { children: "Recent Transactions" }) }), /* @__PURE__ */ g(t, { children: /* @__PURE__ */ g(y, {
150
+ illustration: "empty-data",
151
+ title: "No transactions yet",
152
+ description: "Once payments are processed, your transaction history will appear here. Connect a payment gateway to start recording transactions."
153
+ }) })] })
154
+ ]
155
+ });
156
+ }
157
+ //#endregion
158
+ export { S as default };
@@ -1,83 +1,116 @@
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-xDTiBTDS.js";
2
- import { t as u } from "./chevron-right-Czrt_Qew.js";
3
- import { n as d, t as f } from "./wrench-C50eI_Iy.js";
4
- import { t as p } from "./star-Cv2MzxZL.js";
5
- import { t as m } from "./truck-DX3lNQkz.js";
6
- import { t as h } from "./users-CfG0J8wP.js";
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-DeHVeVwl.js";
10
- import { a as S, r as C } from "./StatusBadge-C--7NhoW.js";
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 { useI18n as D } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
13
+ import { CTAOverflowMenu as D, EmphasisPanel as O, NextSteps as k, PagePurpose as A } from "@burdenoff/fe-libs/ui";
14
+ import { useI18n as j } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
14
15
  //#region src/movethewheels/pages/FleetPage.tsx
15
- function O() {
16
- let { t: O } = D(), k = (e, t) => {
17
- let n = O(e);
16
+ function M() {
17
+ let { t: M } = j(), N = (e, t) => {
18
+ let n = M(e);
18
19
  return n === e ? t : n;
19
- }, { basePath: A, navigate: j } = g(), { stats: M } = _(), { vehicles: N } = y(), { drivers: P } = v(), F = (e) => {
20
- j && j(w(A, e));
20
+ }, { basePath: P, navigate: F } = g(), { stats: I } = _(), { vehicles: L } = y(), { drivers: R } = v(), z = (e) => {
21
+ F && F(w(P, e));
21
22
  };
22
23
  return /* @__PURE__ */ E(o, {
23
- title: k("movethewheels.fleet.title", "Fleet Management"),
24
- subtitle: k("movethewheels.fleet.subtitle", "Manage your vehicles and drivers"),
24
+ title: N("movethewheels.fleet.title", "Fleet Management"),
25
+ subtitle: N("movethewheels.fleet.subtitle", "Manage your vehicles and drivers"),
25
26
  icon: /* @__PURE__ */ T(m, { size: 24 }),
26
- headerActions: /* @__PURE__ */ E("div", {
27
- className: "flex gap-2",
28
- children: [/* @__PURE__ */ E(l, {
29
- variant: "outline",
30
- onClick: () => F("fleet/vehicles"),
31
- children: [/* @__PURE__ */ T(m, { size: 16 }), k("movethewheels.fleet.actions.allVehicles", "All Vehicles")]
32
- }), /* @__PURE__ */ E(l, {
33
- variant: "outline",
34
- onClick: () => F("fleet/drivers"),
35
- children: [/* @__PURE__ */ T(h, { size: 16 }), k("movethewheels.fleet.actions.allDrivers", "All Drivers")]
36
- })]
27
+ headerActions: /* @__PURE__ */ T(D, {
28
+ primary: {
29
+ label: N("movethewheels.fleet.actions.allVehicles", "All Vehicles"),
30
+ icon: /* @__PURE__ */ T(m, { size: 16 }),
31
+ onSelect: () => z("fleet/vehicles")
32
+ },
33
+ actions: [{
34
+ label: N("movethewheels.fleet.actions.allDrivers", "All Drivers"),
35
+ icon: /* @__PURE__ */ T(h, { size: 16 }),
36
+ onSelect: () => z("fleet/drivers")
37
+ }]
37
38
  }),
38
39
  children: [
40
+ /* @__PURE__ */ T(A, {
41
+ icon: /* @__PURE__ */ T(m, { size: 18 }),
42
+ children: N("movethewheels.fleet.purpose", "Your command center for vehicles and drivers. See utilization at a glance, keep an eye on availability and ratings, and act on maintenance alerts so you always have road-ready capacity to fulfil orders.")
43
+ }),
44
+ /* @__PURE__ */ T(k, {
45
+ storageKey: "movethewheels-fleet",
46
+ steps: [
47
+ {
48
+ id: "vehicles",
49
+ label: N("movethewheels.fleet.nextSteps.vehicles", "Review your vehicles"),
50
+ description: N("movethewheels.fleet.nextSteps.vehiclesDesc", "Check capacity, fuel and maintenance status across the fleet."),
51
+ icon: /* @__PURE__ */ T(m, { size: 16 }),
52
+ onClick: () => z("fleet/vehicles")
53
+ },
54
+ {
55
+ id: "drivers",
56
+ label: N("movethewheels.fleet.nextSteps.drivers", "Review your drivers"),
57
+ description: N("movethewheels.fleet.nextSteps.driversDesc", "See availability, ratings and delivery history before assigning work."),
58
+ icon: /* @__PURE__ */ T(h, { size: 16 }),
59
+ onClick: () => z("fleet/drivers")
60
+ },
61
+ {
62
+ id: "assign",
63
+ label: N("movethewheels.fleet.nextSteps.assign", "Assign capacity to orders"),
64
+ description: N("movethewheels.fleet.nextSteps.assignDesc", "Open an order to assign an available vehicle and driver."),
65
+ icon: /* @__PURE__ */ T(u, { size: 16 }),
66
+ onClick: () => z("orders")
67
+ }
68
+ ]
69
+ }),
39
70
  /* @__PURE__ */ E(b, {
40
71
  columns: 4,
41
72
  children: [
42
73
  /* @__PURE__ */ T(x, {
43
- label: k("movethewheels.fleet.metrics.totalVehicles", "Total Vehicles"),
44
- value: M.totalVehicles,
74
+ label: N("movethewheels.fleet.metrics.totalVehicles", "Total Vehicles"),
75
+ value: I.totalVehicles,
45
76
  icon: /* @__PURE__ */ T(m, { size: 20 }),
46
- subtitle: `${M.vehiclesByStatus.available} ${k("movethewheels.fleet.metrics.available", "available")}`,
47
- onClick: () => F("fleet/vehicles")
77
+ subtitle: `${I.vehiclesByStatus.available} ${N("movethewheels.fleet.metrics.available", "available")}`,
78
+ onClick: () => z("fleet/vehicles")
48
79
  }),
49
80
  /* @__PURE__ */ T(x, {
50
- label: k("movethewheels.fleet.metrics.totalDrivers", "Total Drivers"),
51
- value: M.totalDrivers,
81
+ label: N("movethewheels.fleet.metrics.totalDrivers", "Total Drivers"),
82
+ value: I.totalDrivers,
52
83
  icon: /* @__PURE__ */ T(h, { size: 20 }),
53
- subtitle: `${M.driversByStatus.available} ${k("movethewheels.fleet.metrics.available", "available")}`,
54
- onClick: () => F("fleet/drivers")
84
+ subtitle: `${I.driversByStatus.available} ${N("movethewheels.fleet.metrics.available", "available")}`,
85
+ onClick: () => z("fleet/drivers")
55
86
  }),
56
87
  /* @__PURE__ */ T(x, {
57
- label: k("movethewheels.fleet.metrics.utilization", "Fleet Utilization"),
58
- value: `${M.utilization.toFixed(0)}%`,
88
+ treatment: "glass",
89
+ glow: !0,
90
+ label: N("movethewheels.fleet.metrics.utilization", "Fleet Utilization"),
91
+ value: `${I.utilization.toFixed(0)}%`,
59
92
  icon: /* @__PURE__ */ T(m, { size: 20 }),
60
- changeType: M.utilization >= 70 ? "positive" : "neutral"
93
+ changeType: I.utilization >= 70 ? "positive" : "neutral"
61
94
  }),
62
95
  /* @__PURE__ */ T(x, {
63
- label: k("movethewheels.fleet.metrics.avgDriverRating", "Avg Driver Rating"),
64
- value: M.avgDriverRating.toFixed(1),
96
+ label: N("movethewheels.fleet.metrics.avgDriverRating", "Avg Driver Rating"),
97
+ value: I.avgDriverRating.toFixed(1),
65
98
  icon: /* @__PURE__ */ T(p, { size: 20 }),
66
- subtitle: k("movethewheels.fleet.metrics.outOfFive", "out of 5"),
67
- changeType: M.avgDriverRating >= 4.5 ? "positive" : "neutral"
99
+ subtitle: N("movethewheels.fleet.metrics.outOfFive", "out of 5"),
100
+ changeType: I.avgDriverRating >= 4.5 ? "positive" : "neutral"
68
101
  })
69
102
  ]
70
103
  }),
71
104
  /* @__PURE__ */ E("div", {
72
105
  className: "grid grid-cols-1 lg:grid-cols-2 gap-6",
73
106
  children: [/* @__PURE__ */ T(t, {
74
- title: k("movethewheels.fleet.vehicles.title", "Vehicles"),
107
+ title: N("movethewheels.fleet.vehicles.title", "Vehicles"),
75
108
  actions: /* @__PURE__ */ E(l, {
76
109
  variant: "ghost",
77
110
  size: "sm",
78
- onClick: () => F("fleet/vehicles"),
111
+ onClick: () => z("fleet/vehicles"),
79
112
  children: [
80
- k("movethewheels.fleet.common.viewAll", "View all"),
113
+ N("movethewheels.fleet.common.viewAll", "View all"),
81
114
  " ",
82
115
  /* @__PURE__ */ T(u, { size: 16 })
83
116
  ]
@@ -86,9 +119,9 @@ function O() {
86
119
  className: "p-0",
87
120
  children: /* @__PURE__ */ T("div", {
88
121
  className: "divide-y",
89
- children: N.slice(0, 5).map((t) => /* @__PURE__ */ T("div", {
122
+ children: L.slice(0, 5).map((t) => /* @__PURE__ */ T("div", {
90
123
  className: "p-4 hover:bg-bg-sunken/50 cursor-pointer transition-colors",
91
- onClick: () => F(`fleet/vehicles/${t.id}`),
124
+ onClick: () => z(`fleet/vehicles/${t.id}`),
92
125
  children: /* @__PURE__ */ E("div", {
93
126
  className: "flex items-center justify-between",
94
127
  children: [/* @__PURE__ */ E("div", {
@@ -148,13 +181,13 @@ function O() {
148
181
  })
149
182
  }) })
150
183
  }), /* @__PURE__ */ T(t, {
151
- title: k("movethewheels.fleet.drivers.title", "Drivers"),
184
+ title: N("movethewheels.fleet.drivers.title", "Drivers"),
152
185
  actions: /* @__PURE__ */ E(l, {
153
186
  variant: "ghost",
154
187
  size: "sm",
155
- onClick: () => F("fleet/drivers"),
188
+ onClick: () => z("fleet/drivers"),
156
189
  children: [
157
- k("movethewheels.fleet.common.viewAll", "View all"),
190
+ N("movethewheels.fleet.common.viewAll", "View all"),
158
191
  " ",
159
192
  /* @__PURE__ */ T(u, { size: 16 })
160
193
  ]
@@ -163,9 +196,9 @@ function O() {
163
196
  className: "p-0",
164
197
  children: /* @__PURE__ */ T("div", {
165
198
  className: "divide-y",
166
- children: P.slice(0, 5).map((e) => /* @__PURE__ */ T("div", {
199
+ children: R.slice(0, 5).map((e) => /* @__PURE__ */ T("div", {
167
200
  className: "p-4 hover:bg-bg-sunken/50 cursor-pointer transition-colors",
168
- onClick: () => F(`fleet/drivers/${e.id}`),
201
+ onClick: () => z(`fleet/drivers/${e.id}`),
169
202
  children: /* @__PURE__ */ E("div", {
170
203
  className: "flex items-center justify-between",
171
204
  children: [/* @__PURE__ */ E("div", {
@@ -180,7 +213,7 @@ function O() {
180
213
  " - ",
181
214
  e.completedOrders,
182
215
  " ",
183
- k("movethewheels.fleet.drivers.deliveries", "deliveries")
216
+ N("movethewheels.fleet.drivers.deliveries", "deliveries")
184
217
  ]
185
218
  })] })]
186
219
  }), /* @__PURE__ */ E("div", {
@@ -208,30 +241,36 @@ function O() {
208
241
  }),
209
242
  /* @__PURE__ */ E("div", {
210
243
  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: k("movethewheels.fleet.status.vehicleTitle", "Vehicle Status") }) }), /* @__PURE__ */ T(r, { children: /* @__PURE__ */ T("div", {
244
+ children: [/* @__PURE__ */ E(O, {
212
245
  className: "space-y-4",
213
- children: Object.entries(M.vehiclesByStatus).map(([t, n]) => /* @__PURE__ */ E("div", {
214
- className: "flex items-center justify-between",
215
- children: [/* @__PURE__ */ T("div", {
216
- className: "flex items-center gap-3",
217
- children: /* @__PURE__ */ T(C, {
218
- status: t,
219
- type: "vehicle"
220
- })
221
- }), /* @__PURE__ */ E("div", {
222
- className: "flex items-center gap-3",
223
- children: [/* @__PURE__ */ T("span", {
224
- className: "font-medium",
225
- children: n
226
- }), /* @__PURE__ */ T(e, {
227
- value: n / M.totalVehicles * 100,
228
- className: "w-24 h-2"
246
+ children: [/* @__PURE__ */ T("h2", {
247
+ className: "text-base font-semibold text-text-primary",
248
+ children: N("movethewheels.fleet.status.vehicleTitle", "Vehicle Status")
249
+ }), /* @__PURE__ */ T("div", {
250
+ className: "space-y-4",
251
+ children: Object.entries(I.vehiclesByStatus).map(([t, n]) => /* @__PURE__ */ E("div", {
252
+ className: "flex items-center justify-between",
253
+ children: [/* @__PURE__ */ T("div", {
254
+ className: "flex items-center gap-3",
255
+ children: /* @__PURE__ */ T(C, {
256
+ status: t,
257
+ type: "vehicle"
258
+ })
259
+ }), /* @__PURE__ */ E("div", {
260
+ className: "flex items-center gap-3",
261
+ children: [/* @__PURE__ */ T("span", {
262
+ className: "font-medium",
263
+ children: n
264
+ }), /* @__PURE__ */ T(e, {
265
+ value: n / I.totalVehicles * 100,
266
+ className: "w-24 h-2"
267
+ })]
229
268
  })]
230
- })]
231
- }, t))
232
- }) })] }), /* @__PURE__ */ E(n, { children: [/* @__PURE__ */ T(a, { children: /* @__PURE__ */ T(i, { children: k("movethewheels.fleet.status.driverTitle", "Driver Status") }) }), /* @__PURE__ */ T(r, { children: /* @__PURE__ */ T("div", {
269
+ }, t))
270
+ })]
271
+ }), /* @__PURE__ */ E(n, { children: [/* @__PURE__ */ T(a, { children: /* @__PURE__ */ T(i, { children: N("movethewheels.fleet.status.driverTitle", "Driver Status") }) }), /* @__PURE__ */ T(r, { children: /* @__PURE__ */ T("div", {
233
272
  className: "space-y-4",
234
- children: Object.entries(M.driversByStatus).map(([t, n]) => /* @__PURE__ */ E("div", {
273
+ children: Object.entries(I.driversByStatus).map(([t, n]) => /* @__PURE__ */ E("div", {
235
274
  className: "flex items-center justify-between",
236
275
  children: [/* @__PURE__ */ T("div", {
237
276
  className: "flex items-center gap-3",
@@ -245,27 +284,27 @@ function O() {
245
284
  className: "font-medium",
246
285
  children: n
247
286
  }), /* @__PURE__ */ T(e, {
248
- value: n / M.totalDrivers * 100,
287
+ value: n / I.totalDrivers * 100,
249
288
  className: "w-24 h-2"
250
289
  })]
251
290
  })]
252
291
  }, t))
253
292
  }) })] })]
254
293
  }),
255
- M.vehiclesByStatus.maintenance > 0 && /* @__PURE__ */ E(n, {
256
- className: "border-yellow-200 dark:border-yellow-800",
294
+ I.vehiclesByStatus.maintenance > 0 && /* @__PURE__ */ E(n, {
295
+ className: "border-status-warning-border",
257
296
  children: [/* @__PURE__ */ T(a, { children: /* @__PURE__ */ E(i, {
258
- className: "flex items-center gap-2 text-yellow-600",
259
- children: [/* @__PURE__ */ T(f, { size: 18 }), k("movethewheels.fleet.maintenance.title", "Maintenance Required")]
297
+ className: "flex items-center gap-2 text-status-warning-text",
298
+ children: [/* @__PURE__ */ T(f, { size: 18 }), N("movethewheels.fleet.maintenance.title", "Maintenance Required")]
260
299
  }) }), /* @__PURE__ */ T(r, { children: /* @__PURE__ */ T("div", {
261
300
  className: "space-y-3",
262
- children: N.filter((e) => e.status === "maintenance").map((e) => /* @__PURE__ */ E("div", {
263
- className: "flex items-center justify-between p-3 bg-yellow-50 dark:bg-yellow-900/20 rounded-lg",
301
+ children: L.filter((e) => e.status === "maintenance").map((e) => /* @__PURE__ */ E("div", {
302
+ className: "flex items-center justify-between p-3 bg-status-warning-bg/10 rounded-lg",
264
303
  children: [/* @__PURE__ */ E("div", {
265
304
  className: "flex items-center gap-3",
266
305
  children: [/* @__PURE__ */ T(m, {
267
306
  size: 20,
268
- className: "text-yellow-600"
307
+ className: "text-status-warning-text"
269
308
  }), /* @__PURE__ */ E("div", { children: [/* @__PURE__ */ T("p", {
270
309
  className: "font-medium",
271
310
  children: e.vehicleNumber
@@ -280,8 +319,8 @@ function O() {
280
319
  }), /* @__PURE__ */ T(l, {
281
320
  variant: "outline",
282
321
  size: "sm",
283
- onClick: () => F(`fleet/vehicles/${e.id}`),
284
- children: k("movethewheels.fleet.maintenance.viewDetails", "View Details")
322
+ onClick: () => z(`fleet/vehicles/${e.id}`),
323
+ children: N("movethewheels.fleet.maintenance.viewDetails", "View Details")
285
324
  })]
286
325
  }, e.id))
287
326
  }) })]
@@ -290,4 +329,4 @@ function O() {
290
329
  });
291
330
  }
292
331
  //#endregion
293
- export { O as default };
332
+ export { M as default };