@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.
- package/dist/MoveTheWheelsRoot.js +136 -127
- package/dist/MoveTheWheelsRoutes.js +140 -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 +14 -3
- package/src/movethewheels/MoveTheWheelsRoutes.tsx +9 -0
- 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
|
@@ -11,11 +11,11 @@ import { Trash2 as l } from "../node_modules/lucide-react/dist/esm/icons/trash-2
|
|
|
11
11
|
import { Warehouse as u } from "../node_modules/lucide-react/dist/esm/icons/warehouse.js";
|
|
12
12
|
import { joinPath as d } from "../utils/navigation.js";
|
|
13
13
|
import { useMoveTheWheels as f } from "../providers/MoveTheWheelsProvider.js";
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
16
|
-
import {
|
|
14
|
+
import { formatCurrency as p } from "../utils/formatters.js";
|
|
15
|
+
import { useInventory as m, useProduct as h, useProductStockLevels as g } from "../hooks/useInventory.js";
|
|
16
|
+
import { Badge as _, Button as v, Card as y, CardContent as b, CardHeader as x, CardTitle as S, Checkbox as C, Input as w, Label as T, Textarea as E } from "../components/ui.js";
|
|
17
|
+
import { ErrorState as ee, LoadingState as te, PageLayout as D } from "../components/PageLayout.js";
|
|
17
18
|
import { FormError as O } from "../components/FormError.js";
|
|
18
|
-
import { formatCurrency as te } from "../utils/formatters.js";
|
|
19
19
|
import { useRefetchOnLeaveEdit as ne } from "../hooks/useRefetchOnLeaveEdit.js";
|
|
20
20
|
import { useEffect as k, useState as A } from "react";
|
|
21
21
|
import { useLocation as j, useParams as re } from "react-router";
|
|
@@ -23,7 +23,7 @@ import { Fragment as ie, jsx as M, jsxs as N } from "react/jsx-runtime";
|
|
|
23
23
|
import { EmphasisPanel as P, NextSteps as ae, PagePurpose as F, ResponsiveDialog as oe, ResponsiveDialogContent as se, ResponsiveDialogDescription as ce, ResponsiveDialogFooter as le, ResponsiveDialogHeader as ue, ResponsiveDialogTitle as de } from "@burdenoff/fe-libs/ui";
|
|
24
24
|
//#region src/movethewheels/pages/ProductDetailsPage.tsx
|
|
25
25
|
function I({ editId: t }) {
|
|
26
|
-
let { basePath: n, navigate: r } = f(), { createProduct: i, updateProduct: s } =
|
|
26
|
+
let { basePath: n, navigate: r } = f(), { createProduct: i, updateProduct: s } = m(), { product: c } = h(t), l = !!t, [u, p] = A({
|
|
27
27
|
name: "",
|
|
28
28
|
sku: "",
|
|
29
29
|
description: "",
|
|
@@ -38,9 +38,9 @@ function I({ editId: t }) {
|
|
|
38
38
|
hazardous: !1,
|
|
39
39
|
fragile: !1,
|
|
40
40
|
temperatureControlled: !1
|
|
41
|
-
}), [g,
|
|
41
|
+
}), [g, _] = A(!1), [y, b] = A(null);
|
|
42
42
|
k(() => {
|
|
43
|
-
t && c &&
|
|
43
|
+
t && c && p({
|
|
44
44
|
name: c.name ?? "",
|
|
45
45
|
sku: c.sku ?? "",
|
|
46
46
|
description: c.description ?? "",
|
|
@@ -57,12 +57,12 @@ function I({ editId: t }) {
|
|
|
57
57
|
temperatureControlled: c.temperatureControlled
|
|
58
58
|
});
|
|
59
59
|
}, [t, c]);
|
|
60
|
-
let x = () => r?.(d(n, "inventory/products")),
|
|
60
|
+
let x = () => r?.(d(n, "inventory/products")), S = async (e) => {
|
|
61
61
|
if (e.preventDefault(), !u.name.trim() || !u.sku.trim()) {
|
|
62
62
|
b("Product name and SKU are required.");
|
|
63
63
|
return;
|
|
64
64
|
}
|
|
65
|
-
|
|
65
|
+
_(!0), b(null);
|
|
66
66
|
try {
|
|
67
67
|
let e = (e) => {
|
|
68
68
|
if (!e.trim()) return;
|
|
@@ -94,7 +94,7 @@ function I({ editId: t }) {
|
|
|
94
94
|
r?.(d(n, `inventory/products/${e.id}`));
|
|
95
95
|
}
|
|
96
96
|
} catch (e) {
|
|
97
|
-
console.error("Failed to create product:", e), b(e instanceof Error ? e.message : "Failed to create product. Please try again."),
|
|
97
|
+
console.error("Failed to create product:", e), b(e instanceof Error ? e.message : "Failed to create product. Please try again."), _(!1);
|
|
98
98
|
}
|
|
99
99
|
};
|
|
100
100
|
return /* @__PURE__ */ N(D, {
|
|
@@ -103,13 +103,13 @@ function I({ editId: t }) {
|
|
|
103
103
|
icon: /* @__PURE__ */ M(a, { size: 24 }),
|
|
104
104
|
headerActions: /* @__PURE__ */ N("div", {
|
|
105
105
|
className: "flex gap-2",
|
|
106
|
-
children: [/* @__PURE__ */ N(
|
|
106
|
+
children: [/* @__PURE__ */ N(v, {
|
|
107
107
|
variant: "outline",
|
|
108
108
|
onClick: x,
|
|
109
109
|
disabled: g,
|
|
110
110
|
children: [/* @__PURE__ */ M(e, { size: 16 }), " Cancel"]
|
|
111
|
-
}), /* @__PURE__ */ N(
|
|
112
|
-
onClick:
|
|
111
|
+
}), /* @__PURE__ */ N(v, {
|
|
112
|
+
onClick: S,
|
|
113
113
|
disabled: g,
|
|
114
114
|
children: [
|
|
115
115
|
/* @__PURE__ */ M(o, { size: 16 }),
|
|
@@ -122,7 +122,7 @@ function I({ editId: t }) {
|
|
|
122
122
|
icon: /* @__PURE__ */ M(a, { size: 18 }),
|
|
123
123
|
children: "Add a product so it can be added to orders and stocked in warehouses. A name and SKU are all it takes to start — category, brand and weight help with picking, pricing and routing."
|
|
124
124
|
}), /* @__PURE__ */ N("form", {
|
|
125
|
-
onSubmit:
|
|
125
|
+
onSubmit: S,
|
|
126
126
|
className: "max-w-2xl space-y-6",
|
|
127
127
|
children: [/* @__PURE__ */ M(O, { message: y }), /* @__PURE__ */ N(P, { children: [/* @__PURE__ */ M("h2", {
|
|
128
128
|
className: "text-base font-semibold text-text-primary mb-4",
|
|
@@ -134,16 +134,16 @@ function I({ editId: t }) {
|
|
|
134
134
|
className: "grid grid-cols-1 md:grid-cols-2 gap-4",
|
|
135
135
|
children: [/* @__PURE__ */ N("div", {
|
|
136
136
|
className: "space-y-2",
|
|
137
|
-
children: [/* @__PURE__ */ N(
|
|
137
|
+
children: [/* @__PURE__ */ N(T, {
|
|
138
138
|
htmlFor: "name",
|
|
139
139
|
children: ["Name ", /* @__PURE__ */ M("span", {
|
|
140
140
|
className: "text-status-error-text",
|
|
141
141
|
children: "*"
|
|
142
142
|
})]
|
|
143
|
-
}), /* @__PURE__ */ M(
|
|
143
|
+
}), /* @__PURE__ */ M(w, {
|
|
144
144
|
id: "name",
|
|
145
145
|
value: u.name,
|
|
146
|
-
onChange: (e) =>
|
|
146
|
+
onChange: (e) => p((t) => ({
|
|
147
147
|
...t,
|
|
148
148
|
name: e.target.value
|
|
149
149
|
})),
|
|
@@ -152,16 +152,16 @@ function I({ editId: t }) {
|
|
|
152
152
|
})]
|
|
153
153
|
}), /* @__PURE__ */ N("div", {
|
|
154
154
|
className: "space-y-2",
|
|
155
|
-
children: [/* @__PURE__ */ N(
|
|
155
|
+
children: [/* @__PURE__ */ N(T, {
|
|
156
156
|
htmlFor: "sku",
|
|
157
157
|
children: ["SKU ", /* @__PURE__ */ M("span", {
|
|
158
158
|
className: "text-status-error-text",
|
|
159
159
|
children: "*"
|
|
160
160
|
})]
|
|
161
|
-
}), /* @__PURE__ */ M(
|
|
161
|
+
}), /* @__PURE__ */ M(w, {
|
|
162
162
|
id: "sku",
|
|
163
163
|
value: u.sku,
|
|
164
|
-
onChange: (e) =>
|
|
164
|
+
onChange: (e) => p((t) => ({
|
|
165
165
|
...t,
|
|
166
166
|
sku: e.target.value
|
|
167
167
|
})),
|
|
@@ -174,13 +174,13 @@ function I({ editId: t }) {
|
|
|
174
174
|
className: "grid grid-cols-1 md:grid-cols-3 gap-4",
|
|
175
175
|
children: [/* @__PURE__ */ N("div", {
|
|
176
176
|
className: "space-y-2",
|
|
177
|
-
children: [/* @__PURE__ */ M(
|
|
177
|
+
children: [/* @__PURE__ */ M(T, {
|
|
178
178
|
htmlFor: "category",
|
|
179
179
|
children: "Category"
|
|
180
|
-
}), /* @__PURE__ */ M(
|
|
180
|
+
}), /* @__PURE__ */ M(w, {
|
|
181
181
|
id: "category",
|
|
182
182
|
value: u.category,
|
|
183
|
-
onChange: (e) =>
|
|
183
|
+
onChange: (e) => p((t) => ({
|
|
184
184
|
...t,
|
|
185
185
|
category: e.target.value
|
|
186
186
|
})),
|
|
@@ -188,13 +188,13 @@ function I({ editId: t }) {
|
|
|
188
188
|
})]
|
|
189
189
|
}), /* @__PURE__ */ N("div", {
|
|
190
190
|
className: "space-y-2",
|
|
191
|
-
children: [/* @__PURE__ */ M(
|
|
191
|
+
children: [/* @__PURE__ */ M(T, {
|
|
192
192
|
htmlFor: "brand",
|
|
193
193
|
children: "Brand"
|
|
194
|
-
}), /* @__PURE__ */ M(
|
|
194
|
+
}), /* @__PURE__ */ M(w, {
|
|
195
195
|
id: "brand",
|
|
196
196
|
value: u.brand,
|
|
197
|
-
onChange: (e) =>
|
|
197
|
+
onChange: (e) => p((t) => ({
|
|
198
198
|
...t,
|
|
199
199
|
brand: e.target.value
|
|
200
200
|
})),
|
|
@@ -204,13 +204,13 @@ function I({ editId: t }) {
|
|
|
204
204
|
}),
|
|
205
205
|
/* @__PURE__ */ N("div", {
|
|
206
206
|
className: "space-y-2",
|
|
207
|
-
children: [/* @__PURE__ */ M(
|
|
207
|
+
children: [/* @__PURE__ */ M(T, {
|
|
208
208
|
htmlFor: "description",
|
|
209
209
|
children: "Description"
|
|
210
|
-
}), /* @__PURE__ */ M(
|
|
210
|
+
}), /* @__PURE__ */ M(E, {
|
|
211
211
|
id: "description",
|
|
212
212
|
value: u.description,
|
|
213
|
-
onChange: (e) =>
|
|
213
|
+
onChange: (e) => p((t) => ({
|
|
214
214
|
...t,
|
|
215
215
|
description: e.target.value
|
|
216
216
|
})),
|
|
@@ -226,16 +226,16 @@ function I({ editId: t }) {
|
|
|
226
226
|
["height", "Height"]
|
|
227
227
|
].map(([e, t]) => /* @__PURE__ */ N("div", {
|
|
228
228
|
className: "space-y-2",
|
|
229
|
-
children: [/* @__PURE__ */ M(
|
|
229
|
+
children: [/* @__PURE__ */ M(T, {
|
|
230
230
|
htmlFor: e,
|
|
231
231
|
children: t
|
|
232
|
-
}), /* @__PURE__ */ M(
|
|
232
|
+
}), /* @__PURE__ */ M(w, {
|
|
233
233
|
id: e,
|
|
234
234
|
type: "number",
|
|
235
235
|
min: "0",
|
|
236
236
|
step: "0.01",
|
|
237
237
|
value: u[e],
|
|
238
|
-
onChange: (t) =>
|
|
238
|
+
onChange: (t) => p((n) => ({
|
|
239
239
|
...n,
|
|
240
240
|
[e]: t.target.value
|
|
241
241
|
})),
|
|
@@ -243,13 +243,13 @@ function I({ editId: t }) {
|
|
|
243
243
|
})]
|
|
244
244
|
}, e)), /* @__PURE__ */ N("div", {
|
|
245
245
|
className: "space-y-2",
|
|
246
|
-
children: [/* @__PURE__ */ M(
|
|
246
|
+
children: [/* @__PURE__ */ M(T, {
|
|
247
247
|
htmlFor: "dimensionUnit",
|
|
248
248
|
children: "Dimension unit"
|
|
249
|
-
}), /* @__PURE__ */ M(
|
|
249
|
+
}), /* @__PURE__ */ M(w, {
|
|
250
250
|
id: "dimensionUnit",
|
|
251
251
|
value: u.dimensionUnit,
|
|
252
|
-
onChange: (e) =>
|
|
252
|
+
onChange: (e) => p((t) => ({
|
|
253
253
|
...t,
|
|
254
254
|
dimensionUnit: e.target.value
|
|
255
255
|
})),
|
|
@@ -261,16 +261,16 @@ function I({ editId: t }) {
|
|
|
261
261
|
className: "grid grid-cols-1 md:grid-cols-2 gap-4",
|
|
262
262
|
children: [/* @__PURE__ */ N("div", {
|
|
263
263
|
className: "space-y-2",
|
|
264
|
-
children: [/* @__PURE__ */ M(
|
|
264
|
+
children: [/* @__PURE__ */ M(T, {
|
|
265
265
|
htmlFor: "value",
|
|
266
266
|
children: "Unit value"
|
|
267
|
-
}), /* @__PURE__ */ M(
|
|
267
|
+
}), /* @__PURE__ */ M(w, {
|
|
268
268
|
id: "value",
|
|
269
269
|
type: "number",
|
|
270
270
|
min: "0",
|
|
271
271
|
step: "0.01",
|
|
272
272
|
value: u.value,
|
|
273
|
-
onChange: (e) =>
|
|
273
|
+
onChange: (e) => p((t) => ({
|
|
274
274
|
...t,
|
|
275
275
|
value: e.target.value
|
|
276
276
|
})),
|
|
@@ -278,16 +278,16 @@ function I({ editId: t }) {
|
|
|
278
278
|
})]
|
|
279
279
|
}), /* @__PURE__ */ N("div", {
|
|
280
280
|
className: "space-y-2",
|
|
281
|
-
children: [/* @__PURE__ */ M(
|
|
281
|
+
children: [/* @__PURE__ */ M(T, {
|
|
282
282
|
htmlFor: "weight",
|
|
283
283
|
children: "Weight (kg)"
|
|
284
|
-
}), /* @__PURE__ */ M(
|
|
284
|
+
}), /* @__PURE__ */ M(w, {
|
|
285
285
|
id: "weight",
|
|
286
286
|
type: "number",
|
|
287
287
|
min: "0",
|
|
288
288
|
step: "0.01",
|
|
289
289
|
value: u.weight,
|
|
290
|
-
onChange: (e) =>
|
|
290
|
+
onChange: (e) => p((t) => ({
|
|
291
291
|
...t,
|
|
292
292
|
weight: e.target.value
|
|
293
293
|
})),
|
|
@@ -303,9 +303,9 @@ function I({ editId: t }) {
|
|
|
303
303
|
["temperatureControlled", "Temperature controlled"]
|
|
304
304
|
].map(([e, t]) => /* @__PURE__ */ N("label", {
|
|
305
305
|
className: "flex items-center gap-2 text-sm",
|
|
306
|
-
children: [/* @__PURE__ */ M(
|
|
306
|
+
children: [/* @__PURE__ */ M(C, {
|
|
307
307
|
checked: u[e],
|
|
308
|
-
onCheckedChange: (t) =>
|
|
308
|
+
onCheckedChange: (t) => p((n) => ({
|
|
309
309
|
...n,
|
|
310
310
|
[e]: t === !0
|
|
311
311
|
}))
|
|
@@ -318,54 +318,54 @@ function I({ editId: t }) {
|
|
|
318
318
|
});
|
|
319
319
|
}
|
|
320
320
|
function L() {
|
|
321
|
-
let { productId: o } = re(), { basePath:
|
|
321
|
+
let { productId: o } = re(), { basePath: C, navigate: w } = f(), { product: T, isLoading: E, error: L, refetch: R } = h(o), { deleteProduct: fe } = m(), z = j().pathname.endsWith("/edit");
|
|
322
322
|
ne(z, R);
|
|
323
|
-
let [B, V] = A(!1), [H, U] = A(!1), [pe, W] = A(null), [G, K] = A(0), { levels: q, totalLevels: J, totalAvailable: me, hasMore: Y, isLoading: X, error: Z } =
|
|
323
|
+
let [B, V] = A(!1), [H, U] = A(!1), [pe, W] = A(null), [G, K] = A(0), { levels: q, totalLevels: J, totalAvailable: me, hasMore: Y, isLoading: X, error: Z } = g(z ? void 0 : o, {
|
|
324
324
|
limit: 20,
|
|
325
325
|
offset: G * 20
|
|
326
326
|
});
|
|
327
327
|
k(() => {
|
|
328
328
|
K(0);
|
|
329
329
|
}, [o]);
|
|
330
|
-
let Q = () =>
|
|
331
|
-
return o ? z ? /* @__PURE__ */ M(I, { editId: o }) :
|
|
330
|
+
let Q = () => w?.(d(C, "inventory/products")), $ = (e) => w?.(d(C, e));
|
|
331
|
+
return o ? z ? /* @__PURE__ */ M(I, { editId: o }) : E ? /* @__PURE__ */ M(te, { message: "Loading product details..." }) : L || !T ? /* @__PURE__ */ M(ee, {
|
|
332
332
|
title: "Product not found",
|
|
333
333
|
onRetry: R
|
|
334
334
|
}) : /* @__PURE__ */ N(D, {
|
|
335
|
-
title:
|
|
336
|
-
subtitle: `SKU: ${
|
|
335
|
+
title: T.name,
|
|
336
|
+
subtitle: `SKU: ${T.sku}`,
|
|
337
337
|
icon: /* @__PURE__ */ M(a, { size: 24 }),
|
|
338
338
|
headerActions: /* @__PURE__ */ N("div", {
|
|
339
339
|
className: "flex gap-2",
|
|
340
|
-
children: [/* @__PURE__ */ N(
|
|
340
|
+
children: [/* @__PURE__ */ N(v, {
|
|
341
341
|
variant: "outline",
|
|
342
342
|
onClick: Q,
|
|
343
343
|
children: [/* @__PURE__ */ M(e, { size: 16 }), " Back"]
|
|
344
|
-
}), /* @__PURE__ */ N(
|
|
345
|
-
onClick: () =>
|
|
344
|
+
}), /* @__PURE__ */ N(v, {
|
|
345
|
+
onClick: () => w?.(d(C, `inventory/products/${o}/edit`)),
|
|
346
346
|
children: [/* @__PURE__ */ M(s, { size: 16 }), " Edit"]
|
|
347
347
|
})]
|
|
348
348
|
}),
|
|
349
349
|
headerContent: /* @__PURE__ */ N("div", {
|
|
350
350
|
className: "flex gap-2",
|
|
351
351
|
children: [
|
|
352
|
-
/* @__PURE__ */ M(
|
|
352
|
+
/* @__PURE__ */ M(_, {
|
|
353
353
|
variant: "outline",
|
|
354
|
-
children:
|
|
354
|
+
children: T.category ?? "Not provided"
|
|
355
355
|
}),
|
|
356
|
-
|
|
356
|
+
T.brand && /* @__PURE__ */ M(_, {
|
|
357
357
|
variant: "secondary",
|
|
358
|
-
children:
|
|
358
|
+
children: T.brand
|
|
359
359
|
}),
|
|
360
|
-
|
|
360
|
+
T.fragile && /* @__PURE__ */ M(_, {
|
|
361
361
|
variant: "destructive",
|
|
362
362
|
children: "Fragile"
|
|
363
363
|
}),
|
|
364
|
-
|
|
364
|
+
T.hazardous && /* @__PURE__ */ M(_, {
|
|
365
365
|
variant: "destructive",
|
|
366
366
|
children: "Hazardous"
|
|
367
367
|
}),
|
|
368
|
-
|
|
368
|
+
T.temperatureControlled && /* @__PURE__ */ M(_, {
|
|
369
369
|
variant: "secondary",
|
|
370
370
|
children: "Temp Controlled"
|
|
371
371
|
})
|
|
@@ -397,31 +397,31 @@ function L() {
|
|
|
397
397
|
children: [/* @__PURE__ */ N("div", {
|
|
398
398
|
className: "lg:col-span-2 space-y-6",
|
|
399
399
|
children: [
|
|
400
|
-
/* @__PURE__ */ N(
|
|
401
|
-
/* @__PURE__ */ N(
|
|
400
|
+
/* @__PURE__ */ N(y, { children: [/* @__PURE__ */ M(x, { children: /* @__PURE__ */ M(S, { children: "Description" }) }), /* @__PURE__ */ M(b, { children: /* @__PURE__ */ M("p", { children: T.description ?? "Not provided" }) })] }),
|
|
401
|
+
/* @__PURE__ */ N(y, { children: [/* @__PURE__ */ M(x, { children: /* @__PURE__ */ N(S, {
|
|
402
402
|
className: "flex items-center gap-2",
|
|
403
403
|
children: [/* @__PURE__ */ M(t, { size: 18 }), " Dimensions & Weight"]
|
|
404
|
-
}) }), /* @__PURE__ */ M(
|
|
404
|
+
}) }), /* @__PURE__ */ M(b, { children: /* @__PURE__ */ M("div", {
|
|
405
405
|
className: "grid grid-cols-2 md:grid-cols-4 gap-4",
|
|
406
406
|
children: [
|
|
407
407
|
[
|
|
408
408
|
"Length",
|
|
409
|
-
|
|
410
|
-
|
|
409
|
+
T.dimensions?.length,
|
|
410
|
+
T.dimensions?.unit
|
|
411
411
|
],
|
|
412
412
|
[
|
|
413
413
|
"Width",
|
|
414
|
-
|
|
415
|
-
|
|
414
|
+
T.dimensions?.width,
|
|
415
|
+
T.dimensions?.unit
|
|
416
416
|
],
|
|
417
417
|
[
|
|
418
418
|
"Height",
|
|
419
|
-
|
|
420
|
-
|
|
419
|
+
T.dimensions?.height,
|
|
420
|
+
T.dimensions?.unit
|
|
421
421
|
],
|
|
422
422
|
[
|
|
423
423
|
"Weight",
|
|
424
|
-
|
|
424
|
+
T.weight,
|
|
425
425
|
"kg"
|
|
426
426
|
]
|
|
427
427
|
].map(([e, t, n]) => /* @__PURE__ */ N("div", { children: [/* @__PURE__ */ M("p", {
|
|
@@ -435,12 +435,12 @@ function L() {
|
|
|
435
435
|
})]
|
|
436
436
|
})] }, e))
|
|
437
437
|
}) })] }),
|
|
438
|
-
|
|
438
|
+
T.attributes.length > 0 && /* @__PURE__ */ N(y, { children: [/* @__PURE__ */ M(x, { children: /* @__PURE__ */ N(S, {
|
|
439
439
|
className: "flex items-center gap-2",
|
|
440
440
|
children: [/* @__PURE__ */ M(c, { size: 18 }), " Attributes"]
|
|
441
|
-
}) }), /* @__PURE__ */ M(
|
|
441
|
+
}) }), /* @__PURE__ */ M(b, { children: /* @__PURE__ */ M("div", {
|
|
442
442
|
className: "grid grid-cols-2 md:grid-cols-3 gap-4",
|
|
443
|
-
children:
|
|
443
|
+
children: T.attributes.map((e, t) => /* @__PURE__ */ N("div", { children: [/* @__PURE__ */ M("p", {
|
|
444
444
|
className: "text-sm text-text-secondary",
|
|
445
445
|
children: e.name
|
|
446
446
|
}), /* @__PURE__ */ M("p", {
|
|
@@ -459,17 +459,17 @@ function L() {
|
|
|
459
459
|
}),
|
|
460
460
|
/* @__PURE__ */ M("p", {
|
|
461
461
|
className: "text-3xl font-bold",
|
|
462
|
-
children:
|
|
462
|
+
children: T.value === void 0 ? "Not provided" : p(T.value)
|
|
463
463
|
}),
|
|
464
464
|
/* @__PURE__ */ M("p", {
|
|
465
465
|
className: "text-sm text-text-secondary",
|
|
466
466
|
children: "Unit price"
|
|
467
467
|
})
|
|
468
468
|
] }),
|
|
469
|
-
/* @__PURE__ */ N(
|
|
469
|
+
/* @__PURE__ */ N(y, { children: [/* @__PURE__ */ M(x, { children: /* @__PURE__ */ N(S, {
|
|
470
470
|
className: "flex items-center gap-2",
|
|
471
471
|
children: [/* @__PURE__ */ M(u, { size: 18 }), " Stock Levels"]
|
|
472
|
-
}) }), /* @__PURE__ */ M(
|
|
472
|
+
}) }), /* @__PURE__ */ M(b, {
|
|
473
473
|
className: "space-y-3",
|
|
474
474
|
children: Z ? /* @__PURE__ */ M("p", {
|
|
475
475
|
className: "text-sm text-status-error-text",
|
|
@@ -482,7 +482,7 @@ function L() {
|
|
|
482
482
|
children: [/* @__PURE__ */ M("p", {
|
|
483
483
|
className: "text-sm text-text-secondary",
|
|
484
484
|
children: "This item isn't stocked in any warehouse yet, so nothing can be promised on an order."
|
|
485
|
-
}), /* @__PURE__ */ M(
|
|
485
|
+
}), /* @__PURE__ */ M(v, {
|
|
486
486
|
variant: "outline",
|
|
487
487
|
size: "sm",
|
|
488
488
|
onClick: () => $("inventory/warehouses"),
|
|
@@ -523,13 +523,13 @@ function L() {
|
|
|
523
523
|
]
|
|
524
524
|
}), /* @__PURE__ */ N("div", {
|
|
525
525
|
className: "flex gap-2",
|
|
526
|
-
children: [/* @__PURE__ */ N(
|
|
526
|
+
children: [/* @__PURE__ */ N(v, {
|
|
527
527
|
variant: "outline",
|
|
528
528
|
size: "sm",
|
|
529
529
|
disabled: G === 0 || X,
|
|
530
530
|
onClick: () => K((e) => Math.max(0, e - 1)),
|
|
531
531
|
children: [/* @__PURE__ */ M(n, { size: 14 }), " Previous"]
|
|
532
|
-
}), /* @__PURE__ */ N(
|
|
532
|
+
}), /* @__PURE__ */ N(v, {
|
|
533
533
|
variant: "outline",
|
|
534
534
|
size: "sm",
|
|
535
535
|
disabled: !Y || X,
|
|
@@ -550,31 +550,31 @@ function L() {
|
|
|
550
550
|
})
|
|
551
551
|
] })
|
|
552
552
|
})] }),
|
|
553
|
-
/* @__PURE__ */ N(
|
|
553
|
+
/* @__PURE__ */ N(y, { children: [/* @__PURE__ */ M(x, { children: /* @__PURE__ */ M(S, { children: "Identifiers" }) }), /* @__PURE__ */ N(b, {
|
|
554
554
|
className: "space-y-3",
|
|
555
555
|
children: [/* @__PURE__ */ N("div", { children: [/* @__PURE__ */ M("p", {
|
|
556
556
|
className: "text-sm text-text-secondary",
|
|
557
557
|
children: "SKU"
|
|
558
558
|
}), /* @__PURE__ */ M("p", {
|
|
559
559
|
className: "font-mono",
|
|
560
|
-
children:
|
|
561
|
-
})] }),
|
|
560
|
+
children: T.sku
|
|
561
|
+
})] }), T.barcode && /* @__PURE__ */ N("div", { children: [/* @__PURE__ */ M("p", {
|
|
562
562
|
className: "text-sm text-text-secondary",
|
|
563
563
|
children: "Barcode"
|
|
564
564
|
}), /* @__PURE__ */ M("p", {
|
|
565
565
|
className: "font-mono",
|
|
566
|
-
children:
|
|
566
|
+
children: T.barcode
|
|
567
567
|
})] })]
|
|
568
568
|
})] }),
|
|
569
|
-
/* @__PURE__ */ N(
|
|
569
|
+
/* @__PURE__ */ N(y, {
|
|
570
570
|
className: "border-status-error-border",
|
|
571
|
-
children: [/* @__PURE__ */ M(
|
|
571
|
+
children: [/* @__PURE__ */ M(x, { children: /* @__PURE__ */ N(S, {
|
|
572
572
|
className: "flex items-center gap-2 text-status-error-text",
|
|
573
573
|
children: [/* @__PURE__ */ M(l, { size: 18 }), " Delete Product"]
|
|
574
|
-
}) }), /* @__PURE__ */ N(
|
|
574
|
+
}) }), /* @__PURE__ */ N(b, { children: [/* @__PURE__ */ M("p", {
|
|
575
575
|
className: "mb-3 text-sm text-text-secondary",
|
|
576
576
|
children: "Removes this catalog item. Existing inventory records may prevent deletion."
|
|
577
|
-
}), /* @__PURE__ */ N(
|
|
577
|
+
}), /* @__PURE__ */ N(v, {
|
|
578
578
|
variant: "outline",
|
|
579
579
|
className: "border-status-error-border text-status-error-text hover:bg-status-error-bg-subtle",
|
|
580
580
|
onClick: () => V(!0),
|
|
@@ -590,19 +590,19 @@ function L() {
|
|
|
590
590
|
children: /* @__PURE__ */ N(se, { children: [
|
|
591
591
|
/* @__PURE__ */ N(ue, { children: [/* @__PURE__ */ M(de, { children: "Delete this product?" }), /* @__PURE__ */ N(ce, { children: [
|
|
592
592
|
"This removes ",
|
|
593
|
-
|
|
593
|
+
T.name,
|
|
594
594
|
" from the catalog and cannot be undone from here."
|
|
595
595
|
] })] }),
|
|
596
596
|
/* @__PURE__ */ M("div", {
|
|
597
597
|
className: "px-1",
|
|
598
598
|
children: /* @__PURE__ */ M(O, { message: pe })
|
|
599
599
|
}),
|
|
600
|
-
/* @__PURE__ */ N(le, { children: [/* @__PURE__ */ M(
|
|
600
|
+
/* @__PURE__ */ N(le, { children: [/* @__PURE__ */ M(v, {
|
|
601
601
|
variant: "outline",
|
|
602
602
|
onClick: () => V(!1),
|
|
603
603
|
disabled: H,
|
|
604
604
|
children: "Cancel"
|
|
605
|
-
}), /* @__PURE__ */ M(
|
|
605
|
+
}), /* @__PURE__ */ M(v, {
|
|
606
606
|
className: "bg-status-error-text text-text-inverse hover:opacity-90",
|
|
607
607
|
onClick: async () => {
|
|
608
608
|
if (o) {
|