@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,248 @@
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
+ import { jsx as u, jsxs as d } from "react/jsx-runtime";
5
+ import { EmphasisPanel as f, IllustratedEmptyState as p, PagePurpose as m } from "@burdenoff/fe-libs/ui";
6
+ //#region node_modules/lucide-react/dist/esm/icons/check.js
7
+ var h = a("Check", [["path", {
8
+ d: "M20 6 9 17l-5-5",
9
+ key: "1gmf2c"
10
+ }]]), g = a("FileSpreadsheet", [
11
+ ["path", {
12
+ d: "M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",
13
+ key: "1rqfz7"
14
+ }],
15
+ ["path", {
16
+ d: "M14 2v4a2 2 0 0 0 2 2h4",
17
+ key: "tnqrlb"
18
+ }],
19
+ ["path", {
20
+ d: "M8 13h2",
21
+ key: "yr2amv"
22
+ }],
23
+ ["path", {
24
+ d: "M14 13h2",
25
+ key: "un5t4a"
26
+ }],
27
+ ["path", {
28
+ d: "M8 17h2",
29
+ key: "2yhykz"
30
+ }],
31
+ ["path", {
32
+ d: "M14 17h2",
33
+ key: "10kma7"
34
+ }]
35
+ ]), _ = a("Upload", [
36
+ ["path", {
37
+ d: "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",
38
+ key: "ih7n3h"
39
+ }],
40
+ ["polyline", {
41
+ points: "17 8 12 3 7 8",
42
+ key: "t8dd8p"
43
+ }],
44
+ ["line", {
45
+ x1: "12",
46
+ x2: "12",
47
+ y1: "3",
48
+ y2: "15",
49
+ key: "widbto"
50
+ }]
51
+ ]);
52
+ //#endregion
53
+ //#region src/movethewheels/pages/ImportExportPage.tsx
54
+ function v() {
55
+ let a = [
56
+ {
57
+ name: "Orders",
58
+ description: "Import orders from CSV or Excel",
59
+ icon: g,
60
+ format: "CSV, XLSX"
61
+ },
62
+ {
63
+ name: "Customers",
64
+ description: "Import customer database",
65
+ icon: g,
66
+ format: "CSV, XLSX"
67
+ },
68
+ {
69
+ name: "Products",
70
+ description: "Import product catalog",
71
+ icon: g,
72
+ format: "CSV, XLSX"
73
+ },
74
+ {
75
+ name: "Inventory",
76
+ description: "Import inventory levels",
77
+ icon: g,
78
+ format: "CSV, XLSX"
79
+ }
80
+ ], v = [
81
+ {
82
+ name: "Orders Report",
83
+ description: "Export all orders data",
84
+ formats: [
85
+ "CSV",
86
+ "Excel",
87
+ "PDF"
88
+ ]
89
+ },
90
+ {
91
+ name: "Financial Report",
92
+ description: "Export revenue and payments",
93
+ formats: [
94
+ "CSV",
95
+ "Excel",
96
+ "PDF"
97
+ ]
98
+ },
99
+ {
100
+ name: "Fleet Report",
101
+ description: "Export vehicle and driver data",
102
+ formats: ["CSV", "Excel"]
103
+ },
104
+ {
105
+ name: "Analytics Report",
106
+ description: "Export performance metrics",
107
+ formats: [
108
+ "CSV",
109
+ "Excel",
110
+ "PDF"
111
+ ]
112
+ }
113
+ ], y = [
114
+ {
115
+ type: "export",
116
+ name: "Orders Report",
117
+ date: "2024-01-15",
118
+ status: "completed"
119
+ },
120
+ {
121
+ type: "import",
122
+ name: "Customer Data",
123
+ date: "2024-01-14",
124
+ status: "completed"
125
+ },
126
+ {
127
+ type: "export",
128
+ name: "Financial Report",
129
+ date: "2024-01-13",
130
+ status: "completed"
131
+ }
132
+ ];
133
+ return /* @__PURE__ */ d(i, {
134
+ title: "Import / Export",
135
+ subtitle: "Import and export your data",
136
+ icon: /* @__PURE__ */ u(l, { size: 24 }),
137
+ children: [
138
+ /* @__PURE__ */ u(m, {
139
+ icon: /* @__PURE__ */ u(l, { size: 18 }),
140
+ children: "Move data in and out in bulk. Import orders, customers, products or inventory from CSV/Excel to onboard or migrate without re-keying, and export any dataset for accounting, BI tools or backups — no manual copy-paste required."
141
+ }),
142
+ /* @__PURE__ */ d("div", {
143
+ className: "grid grid-cols-1 lg:grid-cols-2 gap-6",
144
+ children: [/* @__PURE__ */ d(f, {
145
+ className: "space-y-4",
146
+ children: [/* @__PURE__ */ d("h2", {
147
+ className: "flex items-center gap-2 text-base font-semibold text-text-primary",
148
+ children: [/* @__PURE__ */ u(_, { size: 18 }), " Import Data"]
149
+ }), /* @__PURE__ */ u("div", {
150
+ className: "space-y-4",
151
+ children: a.map((e) => /* @__PURE__ */ d("div", {
152
+ className: "flex items-center justify-between p-4 border rounded-lg hover:border-primary/50 transition-colors",
153
+ children: [/* @__PURE__ */ d("div", {
154
+ className: "flex items-center gap-3",
155
+ children: [/* @__PURE__ */ u("div", {
156
+ className: "w-10 h-10 rounded-lg bg-action-primary-bg/10 flex items-center justify-center",
157
+ children: /* @__PURE__ */ u(e.icon, {
158
+ size: 20,
159
+ className: "text-primary"
160
+ })
161
+ }), /* @__PURE__ */ d("div", { children: [/* @__PURE__ */ u("p", {
162
+ className: "font-medium",
163
+ children: e.name
164
+ }), /* @__PURE__ */ u("p", {
165
+ className: "text-sm text-text-secondary",
166
+ children: e.description
167
+ })] })]
168
+ }), /* @__PURE__ */ d("div", {
169
+ className: "text-right",
170
+ children: [/* @__PURE__ */ u(o, {
171
+ variant: "outline",
172
+ children: e.format
173
+ }), /* @__PURE__ */ u(s, {
174
+ variant: "outline",
175
+ size: "sm",
176
+ className: "ml-2",
177
+ children: /* @__PURE__ */ u(_, { size: 14 })
178
+ })]
179
+ })]
180
+ }, e.name))
181
+ })]
182
+ }), /* @__PURE__ */ d(e, { children: [/* @__PURE__ */ u(r, { children: /* @__PURE__ */ d(n, {
183
+ className: "flex items-center gap-2",
184
+ children: [/* @__PURE__ */ u(c, { size: 18 }), " Export Data"]
185
+ }) }), /* @__PURE__ */ u(t, {
186
+ className: "space-y-4",
187
+ children: v.map((e) => /* @__PURE__ */ d("div", {
188
+ className: "flex items-center justify-between p-4 border rounded-lg hover:border-primary/50 transition-colors",
189
+ children: [/* @__PURE__ */ d("div", { children: [/* @__PURE__ */ u("p", {
190
+ className: "font-medium",
191
+ children: e.name
192
+ }), /* @__PURE__ */ u("p", {
193
+ className: "text-sm text-text-secondary",
194
+ children: e.description
195
+ })] }), /* @__PURE__ */ u("div", {
196
+ className: "flex gap-1",
197
+ children: e.formats.map((e) => /* @__PURE__ */ u(s, {
198
+ variant: "outline",
199
+ size: "sm",
200
+ children: e
201
+ }, e))
202
+ })]
203
+ }, e.name))
204
+ })] })]
205
+ }),
206
+ /* @__PURE__ */ d(e, { children: [/* @__PURE__ */ u(r, { children: /* @__PURE__ */ u(n, { children: "Recent Activity" }) }), /* @__PURE__ */ u(t, { children: y.length === 0 ? /* @__PURE__ */ u(p, {
207
+ illustration: "empty-data",
208
+ title: "No import or export activity yet",
209
+ description: "Your recent imports and exports will show up here once you run one."
210
+ }) : /* @__PURE__ */ u("div", {
211
+ className: "space-y-3",
212
+ children: y.map((e, t) => /* @__PURE__ */ d("div", {
213
+ className: "flex items-center justify-between p-3 bg-bg-sunken/50 rounded-lg",
214
+ children: [/* @__PURE__ */ d("div", {
215
+ className: "flex items-center gap-3",
216
+ children: [e.type === "import" ? /* @__PURE__ */ u(_, {
217
+ size: 16,
218
+ className: "text-primary"
219
+ }) : /* @__PURE__ */ u(c, {
220
+ size: 16,
221
+ className: "text-primary"
222
+ }), /* @__PURE__ */ d("div", { children: [/* @__PURE__ */ u("p", {
223
+ className: "font-medium",
224
+ children: e.name
225
+ }), /* @__PURE__ */ d("p", {
226
+ className: "text-sm text-text-secondary",
227
+ children: [
228
+ e.type === "import" ? "Imported" : "Exported",
229
+ " on ",
230
+ e.date
231
+ ]
232
+ })] })]
233
+ }), /* @__PURE__ */ d(o, {
234
+ variant: "default",
235
+ className: "gap-1",
236
+ children: [
237
+ /* @__PURE__ */ u(h, { size: 12 }),
238
+ " ",
239
+ e.status
240
+ ]
241
+ })]
242
+ }, t))
243
+ }) })] })
244
+ ]
245
+ });
246
+ }
247
+ //#endregion
248
+ export { v as default };
@@ -0,0 +1,222 @@
1
+ import { M as e, a as t, d as n, f as r, i, l as a, u as o } from "./PageLayout-D3N8MCTm.js";
2
+ import { t as s } from "./chevron-right-BIFGi0UA.js";
3
+ import { t as c } from "./package-BE7U0wQE.js";
4
+ import { t as l } from "./plus-Dl1rLeJR.js";
5
+ import { t as u } from "./triangle-alert-BOhfGgmh.js";
6
+ import { t as d } from "./warehouse-D3WWDeTX.js";
7
+ import { r as f } from "./graphqlClient-CdJyR_ed.js";
8
+ import { n as p, t as m } from "./useInventory-Dwn18FPz.js";
9
+ import { r as h, t as g } from "./MetricCard-B7yMyvMX.js";
10
+ import { n as _ } from "./formatters-_vJlC-47.js";
11
+ import { t as v } from "./navigation-BgnOfsVd.js";
12
+ import { jsx as y, jsxs as b } from "react/jsx-runtime";
13
+ import { CTAOverflowMenu as x, EmphasisPanel as S, PagePurpose as C } from "@burdenoff/fe-libs/ui";
14
+ import { useI18n as w } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
15
+ //#region src/movethewheels/pages/InventoryPage.tsx
16
+ function T() {
17
+ let { t: T } = w(), E = (e, t) => {
18
+ let n = T(e);
19
+ return n === e ? t : n;
20
+ }, { basePath: D, navigate: O } = f(), { inventory: k, products: A, warehouses: j } = m(), { stats: M } = p(), N = (e) => O?.(v(D, e)), P = k.filter((e) => e.availableQuantity <= e.reorderLevel);
21
+ return /* @__PURE__ */ b(i, {
22
+ title: E("movethewheels.inventory.title", "Inventory"),
23
+ subtitle: E("movethewheels.inventory.subtitle", "Manage your products and warehouses"),
24
+ icon: /* @__PURE__ */ y(c, { size: 24 }),
25
+ headerActions: /* @__PURE__ */ y(x, {
26
+ primary: {
27
+ label: E("movethewheels.inventory.actions.addProduct", "Add Product"),
28
+ icon: /* @__PURE__ */ y(l, { 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
+ }]
38
+ }),
39
+ children: [
40
+ /* @__PURE__ */ y(C, {
41
+ icon: /* @__PURE__ */ y(c, { size: 18 }),
42
+ children: E("movethewheels.inventory.purpose", "A real-time view of what you have and where. Track stock value and quantities across warehouses, catch low-stock items before they run out, and drill into products or warehouses to manage what you can promise on an order.")
43
+ }),
44
+ /* @__PURE__ */ b(h, {
45
+ columns: 4,
46
+ children: [
47
+ /* @__PURE__ */ y(g, {
48
+ label: E("movethewheels.inventory.metrics.totalProducts", "Total Products"),
49
+ value: M.totalProducts,
50
+ icon: /* @__PURE__ */ y(c, { size: 20 }),
51
+ onClick: () => N("inventory/products")
52
+ }),
53
+ /* @__PURE__ */ y(g, {
54
+ label: E("movethewheels.inventory.metrics.totalItems", "Total Items"),
55
+ value: M.totalItems.toLocaleString(),
56
+ icon: /* @__PURE__ */ y(c, { size: 20 })
57
+ }),
58
+ /* @__PURE__ */ y(g, {
59
+ label: E("movethewheels.inventory.metrics.inventoryValue", "Inventory Value"),
60
+ value: _(M.totalValue),
61
+ icon: /* @__PURE__ */ y(c, { size: 20 })
62
+ }),
63
+ /* @__PURE__ */ y(g, {
64
+ label: E("movethewheels.inventory.metrics.warehouses", "Warehouses"),
65
+ value: M.totalWarehouses,
66
+ icon: /* @__PURE__ */ y(d, { size: 20 }),
67
+ onClick: () => N("inventory/warehouses")
68
+ })
69
+ ]
70
+ }),
71
+ P.length > 0 && /* @__PURE__ */ b(S, {
72
+ className: "space-y-4",
73
+ children: [/* @__PURE__ */ b("h2", {
74
+ className: "flex items-center gap-2 text-base font-semibold text-status-warning-text",
75
+ children: [
76
+ /* @__PURE__ */ y(u, { size: 18 }),
77
+ E("movethewheels.inventory.lowStock.title", "Low Stock Alert"),
78
+ " (",
79
+ P.length,
80
+ " ",
81
+ E("movethewheels.inventory.lowStock.items", "items"),
82
+ ")"
83
+ ]
84
+ }), /* @__PURE__ */ y("div", { children: /* @__PURE__ */ y("div", {
85
+ className: "space-y-3",
86
+ children: P.slice(0, 5).map((e) => {
87
+ let t = A.find((t) => t.id === e.productId);
88
+ return /* @__PURE__ */ b("div", {
89
+ className: "flex items-center justify-between p-3 bg-status-warning-bg/10 rounded-lg",
90
+ children: [/* @__PURE__ */ b("div", { children: [/* @__PURE__ */ y("p", {
91
+ className: "font-medium",
92
+ children: t?.name || E("movethewheels.inventory.lowStock.unknownProduct", "Unknown Product")
93
+ }), /* @__PURE__ */ b("p", {
94
+ className: "text-sm text-text-secondary",
95
+ children: [
96
+ E("movethewheels.inventory.lowStock.sku", "SKU:"),
97
+ " ",
98
+ t?.sku
99
+ ]
100
+ })] }), /* @__PURE__ */ b("div", {
101
+ className: "text-right",
102
+ children: [/* @__PURE__ */ b("p", {
103
+ className: "font-medium text-status-warning-text",
104
+ children: [
105
+ e.availableQuantity,
106
+ " ",
107
+ E("movethewheels.inventory.lowStock.left", "left")
108
+ ]
109
+ }), /* @__PURE__ */ b("p", {
110
+ className: "text-sm text-text-secondary",
111
+ children: [
112
+ E("movethewheels.inventory.lowStock.reorderAt", "Reorder at:"),
113
+ " ",
114
+ e.reorderLevel
115
+ ]
116
+ })]
117
+ })]
118
+ }, e.id);
119
+ })
120
+ }) })]
121
+ }),
122
+ /* @__PURE__ */ b("div", {
123
+ className: "grid grid-cols-1 lg:grid-cols-2 gap-6",
124
+ children: [/* @__PURE__ */ y(t, {
125
+ title: E("movethewheels.inventory.warehouses.title", "Warehouses"),
126
+ actions: /* @__PURE__ */ b(o, {
127
+ variant: "ghost",
128
+ size: "sm",
129
+ onClick: () => N("inventory/warehouses"),
130
+ children: [
131
+ E("movethewheels.inventory.common.viewAll", "View all"),
132
+ " ",
133
+ /* @__PURE__ */ y(s, { size: 16 })
134
+ ]
135
+ }),
136
+ children: /* @__PURE__ */ y(n, { children: /* @__PURE__ */ y(r, {
137
+ className: "p-0",
138
+ children: /* @__PURE__ */ y("div", {
139
+ className: "divide-y",
140
+ children: j.map((t) => /* @__PURE__ */ y("div", {
141
+ className: "p-4 hover:bg-bg-sunken/50 cursor-pointer",
142
+ onClick: () => N(`inventory/warehouses/${t.id}`),
143
+ children: /* @__PURE__ */ b("div", {
144
+ className: "flex items-center justify-between",
145
+ children: [/* @__PURE__ */ b("div", { children: [/* @__PURE__ */ y("p", {
146
+ className: "font-medium",
147
+ children: t.name
148
+ }), /* @__PURE__ */ b("p", {
149
+ className: "text-sm text-text-secondary",
150
+ children: [
151
+ t.address.city,
152
+ ", ",
153
+ t.address.state
154
+ ]
155
+ })] }), /* @__PURE__ */ b("div", {
156
+ className: "text-right",
157
+ children: [/* @__PURE__ */ y(a, {
158
+ variant: t.isActive ? "default" : "secondary",
159
+ children: t.isActive ? E("movethewheels.inventory.warehouses.active", "Active") : E("movethewheels.inventory.warehouses.inactive", "Inactive")
160
+ }), /* @__PURE__ */ b("div", {
161
+ className: "mt-2",
162
+ children: [/* @__PURE__ */ y("p", {
163
+ className: "text-xs text-text-secondary",
164
+ children: E("movethewheels.inventory.warehouses.utilization", "Utilization")
165
+ }), /* @__PURE__ */ y(e, {
166
+ value: t.capacity.usedSpace / t.capacity.totalSpace * 100,
167
+ className: "w-24 h-2"
168
+ })]
169
+ })]
170
+ })]
171
+ })
172
+ }, t.id))
173
+ })
174
+ }) })
175
+ }), /* @__PURE__ */ y(t, {
176
+ title: E("movethewheels.inventory.products.title", "Recent Products"),
177
+ actions: /* @__PURE__ */ b(o, {
178
+ variant: "ghost",
179
+ size: "sm",
180
+ onClick: () => N("inventory/products"),
181
+ children: [
182
+ E("movethewheels.inventory.common.viewAll", "View all"),
183
+ " ",
184
+ /* @__PURE__ */ y(s, { size: 16 })
185
+ ]
186
+ }),
187
+ children: /* @__PURE__ */ y(n, { children: /* @__PURE__ */ y(r, {
188
+ className: "p-0",
189
+ children: /* @__PURE__ */ y("div", {
190
+ className: "divide-y",
191
+ children: A.slice(0, 5).map((e) => /* @__PURE__ */ y("div", {
192
+ className: "p-4 hover:bg-bg-sunken/50 cursor-pointer",
193
+ onClick: () => N(`inventory/products/${e.id}`),
194
+ children: /* @__PURE__ */ b("div", {
195
+ className: "flex items-center justify-between",
196
+ children: [/* @__PURE__ */ b("div", { children: [/* @__PURE__ */ y("p", {
197
+ className: "font-medium",
198
+ children: e.name
199
+ }), /* @__PURE__ */ y("p", {
200
+ className: "text-sm text-text-secondary",
201
+ children: e.sku
202
+ })] }), /* @__PURE__ */ b("div", {
203
+ className: "text-right",
204
+ children: [/* @__PURE__ */ y("p", {
205
+ className: "font-medium",
206
+ children: _(e.value)
207
+ }), /* @__PURE__ */ y(a, {
208
+ variant: "outline",
209
+ children: e.category
210
+ })]
211
+ })]
212
+ })
213
+ }, e.id))
214
+ })
215
+ }) })
216
+ })]
217
+ })
218
+ ]
219
+ });
220
+ }
221
+ //#endregion
222
+ export { T as default };