@burdenoff/microfe-movethewheels 2026.1031.3 → 2026.1031.4

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 (58) hide show
  1. package/dist/MoveTheWheelsRoot.js +136 -127
  2. package/dist/MoveTheWheelsRoutes.js +140 -135
  3. package/dist/components/DocumentsCard.js +11 -11
  4. package/dist/components/ProofOfDeliveryCard.js +13 -13
  5. package/dist/components/ShipmentRiskDialog.js +24 -24
  6. package/dist/components/ShippingQuoteResults.js +46 -46
  7. package/dist/components/TrackingAlertList.js +17 -17
  8. package/dist/generated/tracking-quality-operations.d.ts +56 -0
  9. package/dist/hooks/useOrderDispatch.js +17 -17
  10. package/dist/movethewheels/pages/SettingsPage.d.ts +1 -0
  11. package/dist/movethewheels/providers/ModuleSettingsProvider.d.ts +17 -0
  12. package/dist/movethewheels/utils/formatters.d.ts +23 -3
  13. package/dist/movethewheels/utils/moduleSettings.d.ts +52 -0
  14. package/dist/node_modules/lucide-react/dist/esm/icons/bell.js +11 -0
  15. package/dist/node_modules/lucide-react/dist/esm/icons/key-round.js +14 -0
  16. package/dist/node_modules/lucide-react/dist/esm/icons/plug.js +22 -0
  17. package/dist/node_modules/lucide-react/dist/esm/icons/rotate-ccw.js +11 -0
  18. package/dist/node_modules/lucide-react/dist/esm/icons/settings.js +13 -0
  19. package/dist/pages/AnalyticsPage.js +27 -27
  20. package/dist/pages/CreateOrderPage.js +340 -317
  21. package/dist/pages/CustomerDetailsPage.js +246 -246
  22. package/dist/pages/CustomersPage.js +19 -19
  23. package/dist/pages/DashboardPage.js +24 -24
  24. package/dist/pages/DeliveryCapturePage.js +74 -74
  25. package/dist/pages/DriverDetailsPage.js +337 -337
  26. package/dist/pages/DriversPage.js +26 -26
  27. package/dist/pages/FinancePage.js +26 -26
  28. package/dist/pages/InventoryPage.js +28 -28
  29. package/dist/pages/LiveTrackingPage.js +108 -108
  30. package/dist/pages/MarketplacePage.js +44 -44
  31. package/dist/pages/OrderDetailsPage.js +306 -306
  32. package/dist/pages/OrdersListPage.js +27 -27
  33. package/dist/pages/ProductDetailsPage.js +89 -89
  34. package/dist/pages/ProductsPage.js +73 -73
  35. package/dist/pages/RouteDetailsPage.js +282 -285
  36. package/dist/pages/RoutesPage.js +78 -78
  37. package/dist/pages/SettingsPage.js +459 -0
  38. package/dist/pages/TrackingPage.js +41 -41
  39. package/dist/pages/VehicleDetailsPage.js +207 -207
  40. package/dist/pages/VehiclesPage.js +17 -16
  41. package/dist/pages/WarehouseDetailsPage.js +132 -132
  42. package/dist/providers/ModuleSettingsProvider.js +74 -0
  43. package/dist/utils/formatters.js +53 -26
  44. package/dist/utils/moduleSettings.js +132 -0
  45. package/package.json +3 -2
  46. package/src/generated/tracking-quality-operations.ts +62 -0
  47. package/src/movethewheels/MoveTheWheelsRoot.tsx +14 -3
  48. package/src/movethewheels/MoveTheWheelsRoutes.tsx +9 -0
  49. package/src/movethewheels/pages/CreateOrderPage.tsx +38 -6
  50. package/src/movethewheels/pages/ProductsPage.tsx +2 -2
  51. package/src/movethewheels/pages/RouteDetailsPage.tsx +3 -6
  52. package/src/movethewheels/pages/RoutesPage.tsx +2 -2
  53. package/src/movethewheels/pages/SettingsPage.tsx +516 -0
  54. package/src/movethewheels/pages/VehicleDetailsPage.tsx +4 -2
  55. package/src/movethewheels/pages/VehiclesPage.tsx +2 -1
  56. package/src/movethewheels/providers/ModuleSettingsProvider.tsx +133 -0
  57. package/src/movethewheels/utils/formatters.ts +69 -10
  58. package/src/movethewheels/utils/moduleSettings.ts +224 -0
@@ -7,97 +7,97 @@ import { TriangleAlert as a } from "../node_modules/lucide-react/dist/esm/icons/
7
7
  import { Upload as o } from "../node_modules/lucide-react/dist/esm/icons/upload.js";
8
8
  import { joinPath as s } from "../utils/navigation.js";
9
9
  import { useMoveTheWheels as c } from "../providers/MoveTheWheelsProvider.js";
10
- import { useProductStats as l, useProducts as u } from "../hooks/useInventory.js";
11
- import { Badge as d } from "../components/ui.js";
12
- import { PageLayout as f } from "../components/PageLayout.js";
13
- import { MetricCard as p, MetricGrid as m } from "../components/MetricCard.js";
14
- import { DataTable as h } from "../components/DataTable.js";
15
- import { formatCurrency as g } from "../utils/formatters.js";
16
- import { useDebouncedValue as _ } from "../hooks/useDebouncedValue.js";
17
- import { useEntityExport as v } from "../hooks/useEntityExport.js";
18
- import { ExportStatusBanner as y } from "../components/ExportStatusBanner.js";
19
- import { useState as b } from "react";
20
- import { jsx as x, jsxs as S } from "react/jsx-runtime";
21
- import { CTAOverflowMenu as C, PagePurpose as w } from "@burdenoff/fe-libs/ui";
10
+ import { formatCurrency as l, formatWeight as u } from "../utils/formatters.js";
11
+ import { useProductStats as d, useProducts as f } from "../hooks/useInventory.js";
12
+ import { Badge as p } from "../components/ui.js";
13
+ import { PageLayout as m } from "../components/PageLayout.js";
14
+ import { MetricCard as h, MetricGrid as g } from "../components/MetricCard.js";
15
+ import { DataTable as _ } from "../components/DataTable.js";
16
+ import { useDebouncedValue as v } from "../hooks/useDebouncedValue.js";
17
+ import { useEntityExport as y } from "../hooks/useEntityExport.js";
18
+ import { ExportStatusBanner as b } from "../components/ExportStatusBanner.js";
19
+ import { useState as x } from "react";
20
+ import { jsx as S, jsxs as C } from "react/jsx-runtime";
21
+ import { CTAOverflowMenu as w, PagePurpose as T } from "@burdenoff/fe-libs/ui";
22
22
  //#region src/movethewheels/pages/ProductsPage.tsx
23
- function T() {
24
- let { basePath: T, navigate: E } = c(), { state: D, isExporting: O, startExport: k, dismiss: A } = v("products", "product"), [j, M] = b(0), [N, P] = b(25), [F, I] = b(""), L = _(F), { products: R, totalProducts: z, hasMore: B, isLoading: V, error: H, refetch: U } = u({
25
- limit: N,
26
- offset: j * N,
27
- search: L
28
- }), { stats: W } = l(), G = (e) => E?.(s(T, e));
29
- return /* @__PURE__ */ S(f, {
23
+ function E() {
24
+ let { basePath: E, navigate: D } = c(), { state: O, isExporting: k, startExport: A, dismiss: j } = y("products", "product"), [M, N] = x(0), [P, F] = x(25), [I, L] = x(""), R = v(I), { products: z, totalProducts: B, hasMore: V, isLoading: H, error: U, refetch: W } = f({
25
+ limit: P,
26
+ offset: M * P,
27
+ search: R
28
+ }), { stats: G } = d(), K = (e) => D?.(s(E, e));
29
+ return /* @__PURE__ */ C(m, {
30
30
  title: "Products",
31
- subtitle: `${W.total} products`,
32
- icon: /* @__PURE__ */ x(t, { size: 24 }),
33
- headerActions: /* @__PURE__ */ x(C, {
31
+ subtitle: `${G.total} products`,
32
+ icon: /* @__PURE__ */ S(t, { size: 24 }),
33
+ headerActions: /* @__PURE__ */ S(w, {
34
34
  primary: {
35
35
  label: "Add Product",
36
- icon: /* @__PURE__ */ x(n, { size: 16 }),
37
- onSelect: () => G("inventory/products/new")
36
+ icon: /* @__PURE__ */ S(n, { size: 16 }),
37
+ onSelect: () => K("inventory/products/new")
38
38
  },
39
39
  actions: [
40
40
  {
41
41
  label: "Refresh",
42
- icon: /* @__PURE__ */ x(r, { size: 16 }),
43
- onSelect: () => U()
42
+ icon: /* @__PURE__ */ S(r, { size: 16 }),
43
+ onSelect: () => W()
44
44
  },
45
45
  {
46
46
  label: "Import",
47
- icon: /* @__PURE__ */ x(o, { size: 16 }),
48
- onSelect: () => G("import-export?entity=CARGO_ITEM")
47
+ icon: /* @__PURE__ */ S(o, { size: 16 }),
48
+ onSelect: () => K("import-export?entity=CARGO_ITEM")
49
49
  },
50
50
  {
51
- label: O ? "Exporting…" : "Export",
52
- icon: /* @__PURE__ */ x(e, { size: 16 }),
53
- onSelect: k
51
+ label: k ? "Exporting…" : "Export",
52
+ icon: /* @__PURE__ */ S(e, { size: 16 }),
53
+ onSelect: A
54
54
  }
55
55
  ]
56
56
  }),
57
57
  children: [
58
- /* @__PURE__ */ x(w, {
59
- icon: /* @__PURE__ */ x(t, { size: 18 }),
58
+ /* @__PURE__ */ S(T, {
59
+ icon: /* @__PURE__ */ S(t, { size: 18 }),
60
60
  children: "The catalog of items you ship. Each product's dimensions, weight, value and handling flags (fragile, hazardous, temperature-controlled) drive how it's packed, priced and routed — keep them accurate so shipments are quoted and handled correctly."
61
61
  }),
62
- /* @__PURE__ */ x(y, {
63
- state: D,
64
- onDismiss: A
62
+ /* @__PURE__ */ S(b, {
63
+ state: O,
64
+ onDismiss: j
65
65
  }),
66
- /* @__PURE__ */ S("div", { children: [/* @__PURE__ */ x("p", {
66
+ /* @__PURE__ */ C("div", { children: [/* @__PURE__ */ S("p", {
67
67
  className: "mb-3 text-sm font-medium text-text-secondary",
68
68
  children: "Catalog at a glance"
69
- }), /* @__PURE__ */ S(m, {
69
+ }), /* @__PURE__ */ C(g, {
70
70
  columns: 3,
71
71
  children: [
72
- /* @__PURE__ */ x(p, {
72
+ /* @__PURE__ */ S(h, {
73
73
  label: "Total products",
74
- value: W.total,
75
- icon: /* @__PURE__ */ x(t, { size: 20 }),
74
+ value: G.total,
75
+ icon: /* @__PURE__ */ S(t, { size: 20 }),
76
76
  accent: "brand"
77
77
  }),
78
- /* @__PURE__ */ x(p, {
78
+ /* @__PURE__ */ S(h, {
79
79
  label: "Special handling",
80
- value: W.specialHandling,
81
- icon: /* @__PURE__ */ x(a, { size: 20 }),
80
+ value: G.specialHandling,
81
+ icon: /* @__PURE__ */ S(a, { size: 20 }),
82
82
  accent: "warning",
83
83
  subtitle: "Fragile or hazardous"
84
84
  }),
85
- /* @__PURE__ */ x(p, {
85
+ /* @__PURE__ */ S(h, {
86
86
  label: "Temp-controlled",
87
- value: W.temperatureControlled,
88
- icon: /* @__PURE__ */ x(i, { size: 20 }),
87
+ value: G.temperatureControlled,
88
+ icon: /* @__PURE__ */ S(i, { size: 20 }),
89
89
  accent: "blue"
90
90
  })
91
91
  ]
92
92
  })] }),
93
- /* @__PURE__ */ x(h, {
93
+ /* @__PURE__ */ S(_, {
94
94
  columns: [
95
95
  {
96
96
  id: "sku",
97
97
  header: "SKU",
98
98
  accessorKey: "sku",
99
99
  sortable: !0,
100
- cell: (e) => /* @__PURE__ */ x("span", {
100
+ cell: (e) => /* @__PURE__ */ S("span", {
101
101
  className: "font-mono",
102
102
  children: e.sku
103
103
  })
@@ -107,10 +107,10 @@ function T() {
107
107
  header: "Product Name",
108
108
  accessorKey: "name",
109
109
  sortable: !0,
110
- cell: (e) => /* @__PURE__ */ S("div", { children: [/* @__PURE__ */ x("p", {
110
+ cell: (e) => /* @__PURE__ */ C("div", { children: [/* @__PURE__ */ S("p", {
111
111
  className: "font-medium",
112
112
  children: e.name
113
- }), /* @__PURE__ */ x("p", {
113
+ }), /* @__PURE__ */ S("p", {
114
114
  className: "text-sm text-text-secondary line-clamp-1",
115
115
  children: e.description ?? "Not provided"
116
116
  })] })
@@ -120,7 +120,7 @@ function T() {
120
120
  header: "Category",
121
121
  accessorKey: "category",
122
122
  sortable: !0,
123
- cell: (e) => /* @__PURE__ */ x(d, {
123
+ cell: (e) => /* @__PURE__ */ S(p, {
124
124
  variant: "outline",
125
125
  children: e.category ?? "Not provided"
126
126
  })
@@ -135,35 +135,35 @@ function T() {
135
135
  header: "Weight",
136
136
  accessorKey: "weight",
137
137
  sortable: !0,
138
- cell: (e) => e.weight === void 0 ? "Not provided" : `${e.weight} kg`
138
+ cell: (e) => e.weight === void 0 ? "Not provided" : u(e.weight)
139
139
  },
140
140
  {
141
141
  id: "value",
142
142
  header: "Value",
143
143
  accessorKey: "value",
144
144
  sortable: !0,
145
- cell: (e) => /* @__PURE__ */ x("span", {
145
+ cell: (e) => /* @__PURE__ */ S("span", {
146
146
  className: "font-medium",
147
- children: e.value === void 0 ? "Not provided" : g(e.value)
147
+ children: e.value === void 0 ? "Not provided" : l(e.value)
148
148
  })
149
149
  },
150
150
  {
151
151
  id: "flags",
152
152
  header: "Flags",
153
- cell: (e) => /* @__PURE__ */ S("div", {
153
+ cell: (e) => /* @__PURE__ */ C("div", {
154
154
  className: "flex gap-1",
155
155
  children: [
156
- e.fragile && /* @__PURE__ */ x(d, {
156
+ e.fragile && /* @__PURE__ */ S(p, {
157
157
  variant: "destructive",
158
158
  className: "text-xs",
159
159
  children: "Fragile"
160
160
  }),
161
- e.hazardous && /* @__PURE__ */ x(d, {
161
+ e.hazardous && /* @__PURE__ */ S(p, {
162
162
  variant: "destructive",
163
163
  className: "text-xs",
164
164
  children: "Hazardous"
165
165
  }),
166
- e.temperatureControlled && /* @__PURE__ */ x(d, {
166
+ e.temperatureControlled && /* @__PURE__ */ S(p, {
167
167
  variant: "secondary",
168
168
  className: "text-xs",
169
169
  children: "Temp Control"
@@ -172,10 +172,10 @@ function T() {
172
172
  })
173
173
  }
174
174
  ],
175
- data: R,
176
- isLoading: V,
177
- error: H,
178
- onRetry: U,
175
+ data: z,
176
+ isLoading: H,
177
+ error: U,
178
+ onRetry: W,
179
179
  searchable: !0,
180
180
  searchPlaceholder: "Search products...",
181
181
  searchFields: [
@@ -183,20 +183,20 @@ function T() {
183
183
  "sku",
184
184
  "category"
185
185
  ],
186
- searchQuery: F,
186
+ searchQuery: I,
187
187
  onSearchQueryChange: (e) => {
188
- I(e), M(0);
188
+ L(e), N(0);
189
189
  },
190
- onRowClick: (e) => G(`inventory/products/${e.id}`),
190
+ onRowClick: (e) => K(`inventory/products/${e.id}`),
191
191
  getRowId: (e) => e.id,
192
- pageIndex: j,
193
- pageSize: N,
194
- onPageChange: M,
192
+ pageIndex: M,
193
+ pageSize: P,
194
+ onPageChange: N,
195
195
  onPageSizeChange: (e) => {
196
- P(e), M(0);
196
+ F(e), N(0);
197
197
  },
198
- totalItems: z,
199
- hasNextPage: B,
198
+ totalItems: B,
199
+ hasNextPage: V,
200
200
  emptyIllustration: "empty-files",
201
201
  emptyTitle: "No products yet",
202
202
  emptyDescription: "Add products to your catalog so they can be added to orders and stocked in warehouses."
@@ -205,4 +205,4 @@ function T() {
205
205
  });
206
206
  }
207
207
  //#endregion
208
- export { T as default };
208
+ export { E as default };