@burdenoff/microfe-movethewheels 2026.1031.3 → 2026.1031.5
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/MoveTheWheelsRoot.js +136 -127
- package/dist/MoveTheWheelsRoutes.js +143 -135
- package/dist/components/DocumentsCard.js +11 -11
- package/dist/components/ProofOfDeliveryCard.js +13 -13
- package/dist/components/ShipmentRiskDialog.js +24 -24
- package/dist/components/ShippingQuoteResults.js +46 -46
- package/dist/components/TrackingAlertList.js +17 -17
- package/dist/generated/tracking-quality-operations.d.ts +56 -0
- package/dist/hooks/useOrderDispatch.js +17 -17
- package/dist/movethewheels/pages/SettingsPage.d.ts +1 -0
- package/dist/movethewheels/providers/ModuleSettingsProvider.d.ts +17 -0
- package/dist/movethewheels/utils/formatters.d.ts +23 -3
- package/dist/movethewheels/utils/moduleSettings.d.ts +52 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/bell.js +11 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/key-round.js +14 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/plug.js +22 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/rotate-ccw.js +11 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/settings.js +13 -0
- package/dist/pages/AnalyticsPage.js +27 -27
- package/dist/pages/CreateOrderPage.js +340 -317
- package/dist/pages/CustomerDetailsPage.js +246 -246
- package/dist/pages/CustomersPage.js +19 -19
- package/dist/pages/DashboardPage.js +24 -24
- package/dist/pages/DeliveryCapturePage.js +74 -74
- package/dist/pages/DriverDetailsPage.js +337 -337
- package/dist/pages/DriversPage.js +26 -26
- package/dist/pages/FinancePage.js +26 -26
- package/dist/pages/InventoryPage.js +28 -28
- package/dist/pages/LiveTrackingPage.js +108 -108
- package/dist/pages/MarketplacePage.js +44 -44
- package/dist/pages/OrderDetailsPage.js +306 -306
- package/dist/pages/OrdersListPage.js +27 -27
- package/dist/pages/ProductDetailsPage.js +89 -89
- package/dist/pages/ProductsPage.js +73 -73
- package/dist/pages/RouteDetailsPage.js +282 -285
- package/dist/pages/RoutesPage.js +78 -78
- package/dist/pages/SettingsPage.js +459 -0
- package/dist/pages/TrackingPage.js +41 -41
- package/dist/pages/VehicleDetailsPage.js +207 -207
- package/dist/pages/VehiclesPage.js +17 -16
- package/dist/pages/WarehouseDetailsPage.js +132 -132
- package/dist/providers/ModuleSettingsProvider.js +74 -0
- package/dist/utils/formatters.js +53 -26
- package/dist/utils/moduleSettings.js +132 -0
- package/package.json +3 -2
- package/src/generated/tracking-quality-operations.ts +62 -0
- package/src/movethewheels/MoveTheWheelsRoot.tsx +18 -5
- package/src/movethewheels/MoveTheWheelsRoutes.tsx +19 -4
- package/src/movethewheels/pages/CreateOrderPage.tsx +38 -6
- package/src/movethewheels/pages/ProductsPage.tsx +2 -2
- package/src/movethewheels/pages/RouteDetailsPage.tsx +3 -6
- package/src/movethewheels/pages/RoutesPage.tsx +2 -2
- package/src/movethewheels/pages/SettingsPage.tsx +516 -0
- package/src/movethewheels/pages/VehicleDetailsPage.tsx +4 -2
- package/src/movethewheels/pages/VehiclesPage.tsx +2 -1
- package/src/movethewheels/providers/ModuleSettingsProvider.tsx +133 -0
- package/src/movethewheels/utils/formatters.ts +69 -10
- package/src/movethewheels/utils/moduleSettings.ts +224 -0
- package/dist/movethewheels/pages/AIAssistantPage.d.ts +0 -22
- package/dist/node_modules/lucide-react/dist/esm/icons/message-circle.js +0 -8
- package/dist/node_modules/lucide-react/dist/esm/icons/wallet.js +0 -11
- package/dist/pages/AIAssistantPage.js +0 -81
- package/src/movethewheels/pages/AIAssistantPage.tsx +0 -123
|
@@ -12,14 +12,14 @@ import { Star as u } from "../node_modules/lucide-react/dist/esm/icons/star.js";
|
|
|
12
12
|
import { Store as d } from "../node_modules/lucide-react/dist/esm/icons/store.js";
|
|
13
13
|
import { Trash2 as f } from "../node_modules/lucide-react/dist/esm/icons/trash-2.js";
|
|
14
14
|
import { Truck as p } from "../node_modules/lucide-react/dist/esm/icons/truck.js";
|
|
15
|
-
import {
|
|
16
|
-
import {
|
|
17
|
-
import {
|
|
15
|
+
import { formatCurrency as m } from "../utils/formatters.js";
|
|
16
|
+
import { Badge as h, Button as g, Card as _, CardContent as v, Input as y, Select as b, SelectContent as x, SelectItem as S, SelectTrigger as C, SelectValue as ee, Skeleton as w } from "../components/ui.js";
|
|
17
|
+
import { PageLayout as te } from "../components/PageLayout.js";
|
|
18
|
+
import { MetricCard as T, MetricGrid as ne } from "../components/MetricCard.js";
|
|
18
19
|
import { FormError as E } from "../components/FormError.js";
|
|
19
|
-
import { Notice as
|
|
20
|
-
import {
|
|
21
|
-
import {
|
|
22
|
-
import { PROVIDER_TYPES as ae, humanizeEnum as O, useMarketplaceActions as oe, useMarketplaceStats as se, useProviderOfferings as k, useServiceProviders as ce, useShipmentOptions as A } from "../hooks/useMarketplace.js";
|
|
20
|
+
import { Notice as re, useNotice as ie } from "../components/Notice.js";
|
|
21
|
+
import { useDebouncedValue as ae } from "../hooks/useDebouncedValue.js";
|
|
22
|
+
import { PROVIDER_TYPES as oe, humanizeEnum as D, useMarketplaceActions as se, useMarketplaceStats as O, useProviderOfferings as k, useServiceProviders as ce, useShipmentOptions as A } from "../hooks/useMarketplace.js";
|
|
23
23
|
import { AssignShipmentDialog as le, OfferingDialog as ue, ProviderDialog as de } from "../components/marketplace/MarketplaceDialogs.js";
|
|
24
24
|
import { useState as j } from "react";
|
|
25
25
|
import { jsx as M, jsxs as N } from "react/jsx-runtime";
|
|
@@ -52,7 +52,7 @@ function L({ provider: e, refreshKey: t, onAdd: n, onEdit: r, onDelete: i }) {
|
|
|
52
52
|
" shipment",
|
|
53
53
|
u === 1 ? "" : "s"
|
|
54
54
|
]
|
|
55
|
-
}), /* @__PURE__ */ N(
|
|
55
|
+
}), /* @__PURE__ */ N(g, {
|
|
56
56
|
size: "sm",
|
|
57
57
|
variant: "outline",
|
|
58
58
|
onClick: n,
|
|
@@ -83,7 +83,7 @@ function L({ provider: e, refreshKey: t, onAdd: n, onEdit: r, onDelete: i }) {
|
|
|
83
83
|
}),
|
|
84
84
|
/* @__PURE__ */ N("p", {
|
|
85
85
|
className: "text-xs text-text-secondary",
|
|
86
|
-
children: [
|
|
86
|
+
children: [D(e.category), e.transitDays == null ? "" : ` · ${e.transitDays} day transit`]
|
|
87
87
|
}),
|
|
88
88
|
e.description ? /* @__PURE__ */ M("p", {
|
|
89
89
|
className: "mt-1 text-xs text-text-secondary",
|
|
@@ -95,20 +95,20 @@ function L({ provider: e, refreshKey: t, onAdd: n, onEdit: r, onDelete: i }) {
|
|
|
95
95
|
children: [
|
|
96
96
|
/* @__PURE__ */ M("span", {
|
|
97
97
|
className: "text-sm font-medium",
|
|
98
|
-
children: e.price == null ? "Price on request" : `${
|
|
98
|
+
children: e.price == null ? "Price on request" : `${m(e.price, e.currency)}${e.pricingUnit ? ` / ${e.pricingUnit}` : ""}`
|
|
99
99
|
}),
|
|
100
|
-
/* @__PURE__ */ M(
|
|
100
|
+
/* @__PURE__ */ M(h, {
|
|
101
101
|
variant: I(e.availability),
|
|
102
|
-
children:
|
|
102
|
+
children: D(e.availability)
|
|
103
103
|
}),
|
|
104
|
-
/* @__PURE__ */ M(
|
|
104
|
+
/* @__PURE__ */ M(g, {
|
|
105
105
|
size: "icon",
|
|
106
106
|
variant: "ghost",
|
|
107
107
|
"aria-label": `Edit ${e.name}`,
|
|
108
108
|
onClick: () => r(e),
|
|
109
109
|
children: /* @__PURE__ */ M(o, { size: 14 })
|
|
110
110
|
}),
|
|
111
|
-
/* @__PURE__ */ M(
|
|
111
|
+
/* @__PURE__ */ M(g, {
|
|
112
112
|
size: "icon",
|
|
113
113
|
variant: "ghost",
|
|
114
114
|
"aria-label": `Remove ${e.name}`,
|
|
@@ -122,10 +122,10 @@ function L({ provider: e, refreshKey: t, onAdd: n, onEdit: r, onDelete: i }) {
|
|
|
122
122
|
]
|
|
123
123
|
});
|
|
124
124
|
}
|
|
125
|
-
function me({ provider: a, expanded: c, refreshKey: l, onToggle: d, onEdit:
|
|
126
|
-
return /* @__PURE__ */ M(
|
|
125
|
+
function me({ provider: a, expanded: c, refreshKey: l, onToggle: d, onEdit: m, onDelete: y, onAssign: b, onAddOffering: x, onEditOffering: S, onDeleteOffering: C }) {
|
|
126
|
+
return /* @__PURE__ */ M(_, {
|
|
127
127
|
"data-testid": "mtw-provider-card",
|
|
128
|
-
children: /* @__PURE__ */ N(
|
|
128
|
+
children: /* @__PURE__ */ N(v, {
|
|
129
129
|
className: "p-5",
|
|
130
130
|
children: [
|
|
131
131
|
/* @__PURE__ */ N("div", {
|
|
@@ -140,15 +140,15 @@ function me({ provider: a, expanded: c, refreshKey: l, onToggle: d, onEdit: v, o
|
|
|
140
140
|
className: "text-base font-semibold",
|
|
141
141
|
children: a.name
|
|
142
142
|
}),
|
|
143
|
-
a.isVerified ? /* @__PURE__ */ N(
|
|
143
|
+
a.isVerified ? /* @__PURE__ */ N(h, {
|
|
144
144
|
variant: "default",
|
|
145
145
|
className: "gap-1",
|
|
146
146
|
children: [/* @__PURE__ */ M(e, { size: 12 }), "Verified"]
|
|
147
|
-
}) : /* @__PURE__ */ M(
|
|
147
|
+
}) : /* @__PURE__ */ M(h, {
|
|
148
148
|
variant: "outline",
|
|
149
149
|
children: "Unverified"
|
|
150
150
|
}),
|
|
151
|
-
a.isActive ? null : /* @__PURE__ */ M(
|
|
151
|
+
a.isActive ? null : /* @__PURE__ */ M(h, {
|
|
152
152
|
variant: "secondary",
|
|
153
153
|
children: "Inactive"
|
|
154
154
|
})
|
|
@@ -156,7 +156,7 @@ function me({ provider: a, expanded: c, refreshKey: l, onToggle: d, onEdit: v, o
|
|
|
156
156
|
}),
|
|
157
157
|
/* @__PURE__ */ N("p", {
|
|
158
158
|
className: "text-sm text-text-secondary",
|
|
159
|
-
children: [
|
|
159
|
+
children: [D(a.type), a.rating == null ? null : /* @__PURE__ */ N("span", {
|
|
160
160
|
className: "ml-2 inline-flex items-center gap-1",
|
|
161
161
|
children: [/* @__PURE__ */ M(u, {
|
|
162
162
|
size: 13,
|
|
@@ -172,7 +172,7 @@ function me({ provider: a, expanded: c, refreshKey: l, onToggle: d, onEdit: v, o
|
|
|
172
172
|
}), /* @__PURE__ */ N("div", {
|
|
173
173
|
className: "flex flex-wrap items-center gap-2",
|
|
174
174
|
children: [
|
|
175
|
-
/* @__PURE__ */ N(
|
|
175
|
+
/* @__PURE__ */ N(g, {
|
|
176
176
|
size: "sm",
|
|
177
177
|
onClick: b,
|
|
178
178
|
children: [/* @__PURE__ */ M(p, {
|
|
@@ -180,14 +180,14 @@ function me({ provider: a, expanded: c, refreshKey: l, onToggle: d, onEdit: v, o
|
|
|
180
180
|
className: "mr-1"
|
|
181
181
|
}), "Assign to shipment"]
|
|
182
182
|
}),
|
|
183
|
-
/* @__PURE__ */ M(
|
|
183
|
+
/* @__PURE__ */ M(g, {
|
|
184
184
|
size: "icon",
|
|
185
185
|
variant: "ghost",
|
|
186
186
|
"aria-label": `Edit ${a.name}`,
|
|
187
|
-
onClick:
|
|
187
|
+
onClick: m,
|
|
188
188
|
children: /* @__PURE__ */ M(o, { size: 16 })
|
|
189
189
|
}),
|
|
190
|
-
/* @__PURE__ */ M(
|
|
190
|
+
/* @__PURE__ */ M(g, {
|
|
191
191
|
size: "icon",
|
|
192
192
|
variant: "ghost",
|
|
193
193
|
"aria-label": `Remove ${a.name}`,
|
|
@@ -216,7 +216,7 @@ function me({ provider: a, expanded: c, refreshKey: l, onToggle: d, onEdit: v, o
|
|
|
216
216
|
}),
|
|
217
217
|
a.services.length > 0 ? /* @__PURE__ */ M("div", {
|
|
218
218
|
className: "mt-3 flex flex-wrap gap-1.5",
|
|
219
|
-
children: a.services.map((e) => /* @__PURE__ */ M(
|
|
219
|
+
children: a.services.map((e) => /* @__PURE__ */ M(h, {
|
|
220
220
|
variant: "secondary",
|
|
221
221
|
children: e
|
|
222
222
|
}, e))
|
|
@@ -245,7 +245,7 @@ function me({ provider: a, expanded: c, refreshKey: l, onToggle: d, onEdit: v, o
|
|
|
245
245
|
});
|
|
246
246
|
}
|
|
247
247
|
function R() {
|
|
248
|
-
let t =
|
|
248
|
+
let t = se(), { message: n, notify: r } = ie(), [i, o] = j(null), [s, f] = j(""), p = ae(s), [m, h] = j(F), [k, A] = j(!1), [I, L] = j(0), [R, he] = j(0), [ge, z] = j(null), [B, V] = j({
|
|
249
249
|
open: !1,
|
|
250
250
|
provider: null
|
|
251
251
|
}), [H, U] = j({
|
|
@@ -263,7 +263,7 @@ function R() {
|
|
|
263
263
|
},
|
|
264
264
|
limit: P,
|
|
265
265
|
offset: I * P
|
|
266
|
-
}), Y =
|
|
266
|
+
}), Y = O(R), X = Math.max(1, Math.ceil(q / P)), Z = () => {
|
|
267
267
|
he((e) => e + 1), ve();
|
|
268
268
|
}, Q = (e) => {
|
|
269
269
|
o(null), r(e), Z();
|
|
@@ -280,7 +280,7 @@ function R() {
|
|
|
280
280
|
o(e instanceof Error ? e.message : "Could not remove the offering.");
|
|
281
281
|
}
|
|
282
282
|
}, $ = !!p.trim() || m !== F || k;
|
|
283
|
-
return /* @__PURE__ */ N(
|
|
283
|
+
return /* @__PURE__ */ N(te, {
|
|
284
284
|
title: "Marketplace",
|
|
285
285
|
subtitle: Y ? `${Y.providers} service providers` : "Service providers",
|
|
286
286
|
icon: /* @__PURE__ */ M(d, { size: 24 }),
|
|
@@ -304,9 +304,9 @@ function R() {
|
|
|
304
304
|
icon: /* @__PURE__ */ M(d, { size: 18 }),
|
|
305
305
|
children: "Your directory of vetted carriers, 3PLs, warehouses and specialists. When you are short of capacity, find a provider here and make it a shipment's carrier instead of buying assets."
|
|
306
306
|
}),
|
|
307
|
-
/* @__PURE__ */ M(
|
|
307
|
+
/* @__PURE__ */ M(re, { message: n }),
|
|
308
308
|
/* @__PURE__ */ M(E, { message: i }),
|
|
309
|
-
/* @__PURE__ */ N(
|
|
309
|
+
/* @__PURE__ */ N(ne, {
|
|
310
310
|
columns: 4,
|
|
311
311
|
children: [
|
|
312
312
|
/* @__PURE__ */ M(T, {
|
|
@@ -338,7 +338,7 @@ function R() {
|
|
|
338
338
|
/* @__PURE__ */ N("div", {
|
|
339
339
|
className: "flex flex-col gap-3 sm:flex-row sm:items-center",
|
|
340
340
|
children: [
|
|
341
|
-
/* @__PURE__ */ M(
|
|
341
|
+
/* @__PURE__ */ M(y, {
|
|
342
342
|
"aria-label": "Search providers",
|
|
343
343
|
placeholder: "Search by name, service or area…",
|
|
344
344
|
value: s,
|
|
@@ -347,24 +347,24 @@ function R() {
|
|
|
347
347
|
},
|
|
348
348
|
className: "sm:max-w-sm"
|
|
349
349
|
}),
|
|
350
|
-
/* @__PURE__ */ N(
|
|
350
|
+
/* @__PURE__ */ N(b, {
|
|
351
351
|
value: m,
|
|
352
352
|
onValueChange: (e) => {
|
|
353
|
-
|
|
353
|
+
h(e), L(0);
|
|
354
354
|
},
|
|
355
|
-
children: [/* @__PURE__ */ M(
|
|
355
|
+
children: [/* @__PURE__ */ M(C, {
|
|
356
356
|
"aria-label": "Provider type",
|
|
357
357
|
className: "sm:w-56",
|
|
358
|
-
children: /* @__PURE__ */ M(
|
|
359
|
-
}), /* @__PURE__ */ N(
|
|
358
|
+
children: /* @__PURE__ */ M(ee, {})
|
|
359
|
+
}), /* @__PURE__ */ N(x, { children: [/* @__PURE__ */ M(S, {
|
|
360
360
|
value: F,
|
|
361
361
|
children: "All provider types"
|
|
362
|
-
}),
|
|
362
|
+
}), oe.map((e) => /* @__PURE__ */ M(S, {
|
|
363
363
|
value: e,
|
|
364
|
-
children:
|
|
364
|
+
children: D(e)
|
|
365
365
|
}, e))] })]
|
|
366
366
|
}),
|
|
367
|
-
/* @__PURE__ */ N(
|
|
367
|
+
/* @__PURE__ */ N(g, {
|
|
368
368
|
variant: k ? "default" : "outline",
|
|
369
369
|
onClick: () => {
|
|
370
370
|
A((e) => !e), L(0);
|
|
@@ -381,7 +381,7 @@ function R() {
|
|
|
381
381
|
_e && K.length === 0 ? /* @__PURE__ */ N("div", {
|
|
382
382
|
className: "grid gap-4",
|
|
383
383
|
children: [/* @__PURE__ */ M(w, { className: "h-32 w-full" }), /* @__PURE__ */ M(w, { className: "h-32 w-full" })]
|
|
384
|
-
}) : K.length === 0 && !J ? /* @__PURE__ */ M(
|
|
384
|
+
}) : K.length === 0 && !J ? /* @__PURE__ */ M(_, { children: /* @__PURE__ */ N(v, {
|
|
385
385
|
className: "flex flex-col items-center gap-3 p-10 text-center",
|
|
386
386
|
children: [
|
|
387
387
|
/* @__PURE__ */ M(d, {
|
|
@@ -396,7 +396,7 @@ function R() {
|
|
|
396
396
|
className: "max-w-md text-sm text-text-secondary",
|
|
397
397
|
children: $ ? "Try a different search or clear the filters." : "Add the carriers, 3PLs and warehouses you work with so your team can find capacity in one place."
|
|
398
398
|
}),
|
|
399
|
-
$ ? null : /* @__PURE__ */ N(
|
|
399
|
+
$ ? null : /* @__PURE__ */ N(g, {
|
|
400
400
|
onClick: () => V({
|
|
401
401
|
open: !0,
|
|
402
402
|
provider: null
|
|
@@ -451,13 +451,13 @@ function R() {
|
|
|
451
451
|
]
|
|
452
452
|
}), /* @__PURE__ */ N("div", {
|
|
453
453
|
className: "flex gap-2",
|
|
454
|
-
children: [/* @__PURE__ */ M(
|
|
454
|
+
children: [/* @__PURE__ */ M(g, {
|
|
455
455
|
variant: "outline",
|
|
456
456
|
size: "sm",
|
|
457
457
|
disabled: I === 0,
|
|
458
458
|
onClick: () => L((e) => e - 1),
|
|
459
459
|
children: "Previous"
|
|
460
|
-
}), /* @__PURE__ */ M(
|
|
460
|
+
}), /* @__PURE__ */ M(g, {
|
|
461
461
|
variant: "outline",
|
|
462
462
|
size: "sm",
|
|
463
463
|
disabled: I + 1 >= X,
|