@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,195 @@
1
+ import { d as e, f as t, g as n, h as r, i, it as a, l as o, n as s, r as c, u as l } from "./PageLayout-D3N8MCTm.js";
2
+ import { t as u } from "./arrow-left-CBpZKkpq.js";
3
+ import { t as d } from "./box-CAaiElsb.js";
4
+ import { t as f } from "./dollar-sign-IB4O0wuQ.js";
5
+ import { t as p } from "./package-BE7U0wQE.js";
6
+ import { t as m } from "./square-pen-hLIbFQFV.js";
7
+ import { r as h } from "./graphqlClient-CdJyR_ed.js";
8
+ import { r as g } from "./useInventory-Dwn18FPz.js";
9
+ import { n as _ } from "./formatters-_vJlC-47.js";
10
+ import { t as v } from "./navigation-BgnOfsVd.js";
11
+ import { useParams as y } from "react-router-dom";
12
+ import { jsx as b, jsxs as x } from "react/jsx-runtime";
13
+ import { EmphasisPanel as S, NextSteps as C, PagePurpose as w } from "@burdenoff/fe-libs/ui";
14
+ //#region node_modules/lucide-react/dist/esm/icons/tag.js
15
+ var T = a("Tag", [["path", {
16
+ d: "M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z",
17
+ key: "vktsd0"
18
+ }], ["circle", {
19
+ cx: "7.5",
20
+ cy: "7.5",
21
+ r: ".5",
22
+ fill: "currentColor",
23
+ key: "kqv944"
24
+ }]]);
25
+ //#endregion
26
+ //#region src/movethewheels/pages/ProductDetailsPage.tsx
27
+ function E() {
28
+ let { productId: a } = y(), { basePath: E, navigate: D } = h(), { product: O, isLoading: k, error: A, refetch: j } = g(a), M = () => D?.(v(E, "inventory/products")), N = (e) => D?.(v(E, e));
29
+ return k ? /* @__PURE__ */ b(c, { message: "Loading product details..." }) : A || !O ? /* @__PURE__ */ b(s, {
30
+ title: "Product not found",
31
+ onRetry: j
32
+ }) : /* @__PURE__ */ x(i, {
33
+ title: O.name,
34
+ subtitle: `SKU: ${O.sku}`,
35
+ icon: /* @__PURE__ */ b(p, { size: 24 }),
36
+ headerActions: /* @__PURE__ */ x("div", {
37
+ className: "flex gap-2",
38
+ children: [/* @__PURE__ */ x(l, {
39
+ variant: "outline",
40
+ onClick: M,
41
+ children: [/* @__PURE__ */ b(u, { size: 16 }), " Back"]
42
+ }), /* @__PURE__ */ x(l, { children: [/* @__PURE__ */ b(m, { size: 16 }), " Edit"] })]
43
+ }),
44
+ headerContent: /* @__PURE__ */ x("div", {
45
+ className: "flex gap-2",
46
+ children: [
47
+ /* @__PURE__ */ b(o, {
48
+ variant: "outline",
49
+ children: O.category
50
+ }),
51
+ O.brand && /* @__PURE__ */ b(o, {
52
+ variant: "secondary",
53
+ children: O.brand
54
+ }),
55
+ O.fragile && /* @__PURE__ */ b(o, {
56
+ variant: "destructive",
57
+ children: "Fragile"
58
+ }),
59
+ O.hazardous && /* @__PURE__ */ b(o, {
60
+ variant: "destructive",
61
+ children: "Hazardous"
62
+ }),
63
+ O.temperatureControlled && /* @__PURE__ */ b(o, {
64
+ variant: "secondary",
65
+ children: "Temp Controlled"
66
+ })
67
+ ]
68
+ }),
69
+ children: [
70
+ /* @__PURE__ */ b(w, {
71
+ icon: /* @__PURE__ */ b(p, { size: 18 }),
72
+ children: "The catalog record for this item — its dimensions, weight, value and handling flags. These drive how it's packed, priced and routed, so keep them accurate before adding the product to an order or stocking it in a warehouse."
73
+ }),
74
+ /* @__PURE__ */ b(C, {
75
+ storageKey: "movethewheels-product-details",
76
+ steps: [{
77
+ id: "order",
78
+ label: "Add this product to an order",
79
+ description: "Include it on a new delivery.",
80
+ icon: /* @__PURE__ */ b(p, { size: 16 }),
81
+ onClick: () => N("orders/new")
82
+ }, {
83
+ id: "edit",
84
+ label: "Edit product details",
85
+ description: "Update dimensions, value or handling flags.",
86
+ icon: /* @__PURE__ */ b(T, { size: 16 }),
87
+ onClick: () => {}
88
+ }]
89
+ }),
90
+ /* @__PURE__ */ x("div", {
91
+ className: "grid grid-cols-1 lg:grid-cols-3 gap-6",
92
+ children: [/* @__PURE__ */ x("div", {
93
+ className: "lg:col-span-2 space-y-6",
94
+ children: [
95
+ /* @__PURE__ */ x(e, { children: [/* @__PURE__ */ b(r, { children: /* @__PURE__ */ b(n, { children: "Description" }) }), /* @__PURE__ */ b(t, { children: /* @__PURE__ */ b("p", { children: O.description }) })] }),
96
+ /* @__PURE__ */ x(e, { children: [/* @__PURE__ */ b(r, { children: /* @__PURE__ */ x(n, {
97
+ className: "flex items-center gap-2",
98
+ children: [/* @__PURE__ */ b(d, { size: 18 }), " Dimensions & Weight"]
99
+ }) }), /* @__PURE__ */ b(t, { children: /* @__PURE__ */ x("div", {
100
+ className: "grid grid-cols-2 md:grid-cols-4 gap-4",
101
+ children: [
102
+ /* @__PURE__ */ x("div", { children: [/* @__PURE__ */ b("p", {
103
+ className: "text-sm text-text-secondary",
104
+ children: "Length"
105
+ }), /* @__PURE__ */ x("p", {
106
+ className: "text-2xl font-bold",
107
+ children: [O.dimensions.length, /* @__PURE__ */ x("span", {
108
+ className: "text-sm font-normal",
109
+ children: [" ", O.dimensions.unit]
110
+ })]
111
+ })] }),
112
+ /* @__PURE__ */ x("div", { children: [/* @__PURE__ */ b("p", {
113
+ className: "text-sm text-text-secondary",
114
+ children: "Width"
115
+ }), /* @__PURE__ */ x("p", {
116
+ className: "text-2xl font-bold",
117
+ children: [O.dimensions.width, /* @__PURE__ */ x("span", {
118
+ className: "text-sm font-normal",
119
+ children: [" ", O.dimensions.unit]
120
+ })]
121
+ })] }),
122
+ /* @__PURE__ */ x("div", { children: [/* @__PURE__ */ b("p", {
123
+ className: "text-sm text-text-secondary",
124
+ children: "Height"
125
+ }), /* @__PURE__ */ x("p", {
126
+ className: "text-2xl font-bold",
127
+ children: [O.dimensions.height, /* @__PURE__ */ x("span", {
128
+ className: "text-sm font-normal",
129
+ children: [" ", O.dimensions.unit]
130
+ })]
131
+ })] }),
132
+ /* @__PURE__ */ x("div", { children: [/* @__PURE__ */ b("p", {
133
+ className: "text-sm text-text-secondary",
134
+ children: "Weight"
135
+ }), /* @__PURE__ */ x("p", {
136
+ className: "text-2xl font-bold",
137
+ children: [O.weight, /* @__PURE__ */ b("span", {
138
+ className: "text-sm font-normal",
139
+ children: " kg"
140
+ })]
141
+ })] })
142
+ ]
143
+ }) })] }),
144
+ O.attributes.length > 0 && /* @__PURE__ */ x(e, { children: [/* @__PURE__ */ b(r, { children: /* @__PURE__ */ x(n, {
145
+ className: "flex items-center gap-2",
146
+ children: [/* @__PURE__ */ b(T, { size: 18 }), " Attributes"]
147
+ }) }), /* @__PURE__ */ b(t, { children: /* @__PURE__ */ b("div", {
148
+ className: "grid grid-cols-2 md:grid-cols-3 gap-4",
149
+ children: O.attributes.map((e, t) => /* @__PURE__ */ x("div", { children: [/* @__PURE__ */ b("p", {
150
+ className: "text-sm text-text-secondary",
151
+ children: e.name
152
+ }), /* @__PURE__ */ b("p", {
153
+ className: "font-medium",
154
+ children: e.value
155
+ })] }, t))
156
+ }) })] })
157
+ ]
158
+ }), /* @__PURE__ */ x("div", {
159
+ className: "space-y-6",
160
+ children: [/* @__PURE__ */ x(S, { children: [
161
+ /* @__PURE__ */ x("h2", {
162
+ className: "flex items-center gap-2 text-base font-semibold text-text-primary mb-3",
163
+ children: [/* @__PURE__ */ b(f, { size: 18 }), " Pricing"]
164
+ }),
165
+ /* @__PURE__ */ b("p", {
166
+ className: "text-3xl font-bold",
167
+ children: _(O.value)
168
+ }),
169
+ /* @__PURE__ */ b("p", {
170
+ className: "text-sm text-text-secondary",
171
+ children: "Unit price"
172
+ })
173
+ ] }), /* @__PURE__ */ x(e, { children: [/* @__PURE__ */ b(r, { children: /* @__PURE__ */ b(n, { children: "Identifiers" }) }), /* @__PURE__ */ x(t, {
174
+ className: "space-y-3",
175
+ children: [/* @__PURE__ */ x("div", { children: [/* @__PURE__ */ b("p", {
176
+ className: "text-sm text-text-secondary",
177
+ children: "SKU"
178
+ }), /* @__PURE__ */ b("p", {
179
+ className: "font-mono",
180
+ children: O.sku
181
+ })] }), O.barcode && /* @__PURE__ */ x("div", { children: [/* @__PURE__ */ b("p", {
182
+ className: "text-sm text-text-secondary",
183
+ children: "Barcode"
184
+ }), /* @__PURE__ */ b("p", {
185
+ className: "font-mono",
186
+ children: O.barcode
187
+ })] })]
188
+ })] })]
189
+ })]
190
+ })
191
+ ]
192
+ });
193
+ }
194
+ //#endregion
195
+ export { E as default };
@@ -0,0 +1,171 @@
1
+ import { i as e, l as t } from "./PageLayout-D3N8MCTm.js";
2
+ import { t as n } from "./DataTable-CD9ZhpLB.js";
3
+ import { t as r } from "./download-Dpa9vqoG.js";
4
+ import { t as i } from "./package-BE7U0wQE.js";
5
+ import { t as a } from "./plus-Dl1rLeJR.js";
6
+ import { t as o } from "./refresh-cw-CWfERAit.js";
7
+ import { r as s } from "./graphqlClient-CdJyR_ed.js";
8
+ import { i as c } from "./useInventory-Dwn18FPz.js";
9
+ import { n as l } from "./formatters-_vJlC-47.js";
10
+ import { t as u } from "./navigation-BgnOfsVd.js";
11
+ import { jsx as d, jsxs as f } from "react/jsx-runtime";
12
+ import { CTAOverflowMenu as p, EmphasisPanel as m, PagePurpose as h } from "@burdenoff/fe-libs/ui";
13
+ //#region src/movethewheels/pages/ProductsPage.tsx
14
+ function g() {
15
+ let { basePath: g, navigate: _ } = s(), { products: v, totalProducts: y, isLoading: b, refetch: x } = c(), S = (e) => _?.(u(g, e));
16
+ return /* @__PURE__ */ f(e, {
17
+ title: "Products",
18
+ subtitle: `${y} products`,
19
+ icon: /* @__PURE__ */ d(i, { size: 24 }),
20
+ headerActions: /* @__PURE__ */ d(p, {
21
+ primary: {
22
+ label: "Add Product",
23
+ icon: /* @__PURE__ */ d(a, { size: 16 }),
24
+ onSelect: () => {}
25
+ },
26
+ actions: [{
27
+ label: "Refresh",
28
+ icon: /* @__PURE__ */ d(o, { size: 16 }),
29
+ onSelect: () => x()
30
+ }, {
31
+ label: "Export",
32
+ icon: /* @__PURE__ */ d(r, { size: 16 }),
33
+ onSelect: () => {}
34
+ }]
35
+ }),
36
+ children: [
37
+ /* @__PURE__ */ d(h, {
38
+ icon: /* @__PURE__ */ d(i, { size: 18 }),
39
+ 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."
40
+ }),
41
+ /* @__PURE__ */ f(m, { children: [/* @__PURE__ */ d("p", {
42
+ className: "text-sm font-medium text-text-secondary",
43
+ children: "Catalog at a glance"
44
+ }), /* @__PURE__ */ f("div", {
45
+ className: "mt-3 grid grid-cols-3 gap-4",
46
+ children: [
47
+ /* @__PURE__ */ f("div", { children: [/* @__PURE__ */ d("p", {
48
+ className: "text-2xl font-bold text-text-primary tabular-nums",
49
+ children: y
50
+ }), /* @__PURE__ */ d("p", {
51
+ className: "text-xs text-text-secondary",
52
+ children: "Total products"
53
+ })] }),
54
+ /* @__PURE__ */ f("div", { children: [/* @__PURE__ */ d("p", {
55
+ className: "text-2xl font-bold text-text-primary tabular-nums",
56
+ children: v.filter((e) => e.fragile || e.hazardous).length
57
+ }), /* @__PURE__ */ d("p", {
58
+ className: "text-xs text-text-secondary",
59
+ children: "Special handling"
60
+ })] }),
61
+ /* @__PURE__ */ f("div", { children: [/* @__PURE__ */ d("p", {
62
+ className: "text-2xl font-bold text-text-primary tabular-nums",
63
+ children: v.filter((e) => e.temperatureControlled).length
64
+ }), /* @__PURE__ */ d("p", {
65
+ className: "text-xs text-text-secondary",
66
+ children: "Temp-controlled"
67
+ })] })
68
+ ]
69
+ })] }),
70
+ /* @__PURE__ */ d(n, {
71
+ columns: [
72
+ {
73
+ id: "sku",
74
+ header: "SKU",
75
+ accessorKey: "sku",
76
+ sortable: !0,
77
+ cell: (e) => /* @__PURE__ */ d("span", {
78
+ className: "font-mono",
79
+ children: e.sku
80
+ })
81
+ },
82
+ {
83
+ id: "name",
84
+ header: "Product Name",
85
+ accessorKey: "name",
86
+ sortable: !0,
87
+ cell: (e) => /* @__PURE__ */ f("div", { children: [/* @__PURE__ */ d("p", {
88
+ className: "font-medium",
89
+ children: e.name
90
+ }), /* @__PURE__ */ d("p", {
91
+ className: "text-sm text-text-secondary line-clamp-1",
92
+ children: e.description
93
+ })] })
94
+ },
95
+ {
96
+ id: "category",
97
+ header: "Category",
98
+ accessorKey: "category",
99
+ sortable: !0,
100
+ cell: (e) => /* @__PURE__ */ d(t, {
101
+ variant: "outline",
102
+ children: e.category
103
+ })
104
+ },
105
+ {
106
+ id: "dimensions",
107
+ header: "Dimensions",
108
+ cell: (e) => `${e.dimensions.length}x${e.dimensions.width}x${e.dimensions.height} ${e.dimensions.unit}`
109
+ },
110
+ {
111
+ id: "weight",
112
+ header: "Weight",
113
+ accessorKey: "weight",
114
+ sortable: !0,
115
+ cell: (e) => `${e.weight} kg`
116
+ },
117
+ {
118
+ id: "value",
119
+ header: "Value",
120
+ accessorKey: "value",
121
+ sortable: !0,
122
+ cell: (e) => /* @__PURE__ */ d("span", {
123
+ className: "font-medium",
124
+ children: l(e.value)
125
+ })
126
+ },
127
+ {
128
+ id: "flags",
129
+ header: "Flags",
130
+ cell: (e) => /* @__PURE__ */ f("div", {
131
+ className: "flex gap-1",
132
+ children: [
133
+ e.fragile && /* @__PURE__ */ d(t, {
134
+ variant: "destructive",
135
+ className: "text-xs",
136
+ children: "Fragile"
137
+ }),
138
+ e.hazardous && /* @__PURE__ */ d(t, {
139
+ variant: "destructive",
140
+ className: "text-xs",
141
+ children: "Hazardous"
142
+ }),
143
+ e.temperatureControlled && /* @__PURE__ */ d(t, {
144
+ variant: "secondary",
145
+ className: "text-xs",
146
+ children: "Temp Control"
147
+ })
148
+ ]
149
+ })
150
+ }
151
+ ],
152
+ data: v,
153
+ isLoading: b,
154
+ searchable: !0,
155
+ searchPlaceholder: "Search products...",
156
+ searchFields: [
157
+ "name",
158
+ "sku",
159
+ "category"
160
+ ],
161
+ onRowClick: (e) => S(`inventory/products/${e.id}`),
162
+ getRowId: (e) => e.id,
163
+ emptyIllustration: "empty-files",
164
+ emptyTitle: "No products yet",
165
+ emptyDescription: "Add products to your catalog so they can be added to orders and stocked in warehouses."
166
+ })
167
+ ]
168
+ });
169
+ }
170
+ //#endregion
171
+ export { g as default };
@@ -1,10 +1,11 @@
1
- import { F as e, I as t, L as n, P as r, R as i, d as a, f as o, g as s, h as c, i as l, it as u, l as d, u as f } from "./PageLayout-xDTiBTDS.js";
2
- import { t as p } from "./clock-Be95bq7_.js";
3
- import { t as m } from "./download-caab0D3V.js";
4
- import { t as h } from "./filter-BWmLTZB-.js";
1
+ import { F as e, I as t, L as n, P as r, R as i, d as a, f as o, g as s, h as c, i as l, it as u, l as d, u as f } from "./PageLayout-D3N8MCTm.js";
2
+ import { t as p } from "./clock-BjkdnddD.js";
3
+ import { t as m } from "./download-Dpa9vqoG.js";
4
+ import { t as h } from "./filter-Da5OZaHI.js";
5
5
  import { jsx as g, jsxs as _ } from "react/jsx-runtime";
6
+ import { EmphasisPanel as v, PagePurpose as y } from "@burdenoff/fe-libs/ui";
6
7
  //#region node_modules/lucide-react/dist/esm/icons/calendar.js
7
- var v = u("Calendar", [
8
+ var b = u("Calendar", [
8
9
  ["path", {
9
10
  d: "M8 2v4",
10
11
  key: "1cmpym"
@@ -25,7 +26,7 @@ var v = u("Calendar", [
25
26
  d: "M3 10h18",
26
27
  key: "8toen8"
27
28
  }]
28
- ]), y = u("FileChartColumnIncreasing", [
29
+ ]), x = u("FileChartColumnIncreasing", [
29
30
  ["path", {
30
31
  d: "M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",
31
32
  key: "1rqfz7"
@@ -49,11 +50,11 @@ var v = u("Calendar", [
49
50
  ]);
50
51
  //#endregion
51
52
  //#region src/movethewheels/pages/ReportsPage.tsx
52
- function b() {
53
- return /* @__PURE__ */ g(l, {
53
+ function S() {
54
+ return /* @__PURE__ */ _(l, {
54
55
  title: "Reports",
55
56
  subtitle: "Generate and schedule reports",
56
- icon: /* @__PURE__ */ g(y, { size: 24 }),
57
+ icon: /* @__PURE__ */ g(x, { size: 24 }),
57
58
  headerActions: /* @__PURE__ */ _("div", {
58
59
  className: "flex gap-2",
59
60
  children: [/* @__PURE__ */ _(r, {
@@ -79,9 +80,12 @@ function b() {
79
80
  children: "Custom"
80
81
  })
81
82
  ] })]
82
- }), /* @__PURE__ */ _(f, { children: [/* @__PURE__ */ g(y, { size: 16 }), " Create Report"] })]
83
+ }), /* @__PURE__ */ _(f, { children: [/* @__PURE__ */ g(x, { size: 16 }), " Create Report"] })]
83
84
  }),
84
- children: /* @__PURE__ */ _("div", {
85
+ children: [/* @__PURE__ */ g(y, {
86
+ icon: /* @__PURE__ */ g(x, { size: 18 }),
87
+ children: "Turn your operational data into shareable summaries. Generate one-off reports on orders, finance, fleet, customers or inventory, or schedule them to land in inboxes automatically — so stakeholders always have the latest numbers without logging in."
88
+ }), /* @__PURE__ */ _("div", {
85
89
  className: "grid grid-cols-1 lg:grid-cols-3 gap-6",
86
90
  children: [/* @__PURE__ */ _("div", {
87
91
  className: "lg:col-span-2 space-y-4",
@@ -133,7 +137,7 @@ function b() {
133
137
  className: "flex items-center gap-3",
134
138
  children: [/* @__PURE__ */ g("div", {
135
139
  className: "w-10 h-10 rounded-lg bg-action-primary-bg/10 flex items-center justify-center",
136
- children: /* @__PURE__ */ g(y, {
140
+ children: /* @__PURE__ */ g(x, {
137
141
  size: 20,
138
142
  className: "text-primary"
139
143
  })
@@ -165,47 +169,51 @@ function b() {
165
169
  }) }, e.name))]
166
170
  }), /* @__PURE__ */ _("div", {
167
171
  className: "space-y-6",
168
- children: [/* @__PURE__ */ _(a, { children: [/* @__PURE__ */ g(c, { children: /* @__PURE__ */ _(s, {
169
- className: "flex items-center gap-2",
170
- children: [/* @__PURE__ */ g(p, { size: 18 }), " Scheduled Reports"]
171
- }) }), /* @__PURE__ */ _(o, {
172
+ children: [/* @__PURE__ */ _(v, {
172
173
  className: "space-y-3",
173
- children: [[{
174
- name: "Daily Summary",
175
- nextRun: "Tomorrow 6:00 AM",
176
- recipients: 3
177
- }, {
178
- name: "Weekly Review",
179
- nextRun: "Monday 9:00 AM",
180
- recipients: 5
181
- }].map((e) => /* @__PURE__ */ _("div", {
182
- className: "p-3 border rounded-lg",
183
- children: [
184
- /* @__PURE__ */ g("p", {
185
- className: "font-medium",
186
- children: e.name
187
- }),
188
- /* @__PURE__ */ _("p", {
189
- className: "text-sm text-text-secondary",
190
- children: ["Next: ", e.nextRun]
191
- }),
192
- /* @__PURE__ */ _("p", {
193
- className: "text-xs text-text-secondary",
194
- children: [e.recipients, " recipients"]
195
- })
196
- ]
197
- }, e.name)), /* @__PURE__ */ g(f, {
198
- variant: "outline",
199
- className: "w-full",
200
- children: "Schedule New Report"
201
- })]
202
- })] }), /* @__PURE__ */ _(a, { children: [/* @__PURE__ */ g(c, { children: /* @__PURE__ */ g(s, { children: "Quick Actions" }) }), /* @__PURE__ */ _(o, {
174
+ children: [
175
+ /* @__PURE__ */ _("h2", {
176
+ className: "flex items-center gap-2 text-base font-semibold text-text-primary",
177
+ children: [/* @__PURE__ */ g(p, { size: 18 }), " Scheduled Reports"]
178
+ }),
179
+ [{
180
+ name: "Daily Summary",
181
+ nextRun: "Tomorrow 6:00 AM",
182
+ recipients: 3
183
+ }, {
184
+ name: "Weekly Review",
185
+ nextRun: "Monday 9:00 AM",
186
+ recipients: 5
187
+ }].map((e) => /* @__PURE__ */ _("div", {
188
+ className: "p-3 border border-border-seam rounded-lg",
189
+ children: [
190
+ /* @__PURE__ */ g("p", {
191
+ className: "font-medium",
192
+ children: e.name
193
+ }),
194
+ /* @__PURE__ */ _("p", {
195
+ className: "text-sm text-text-secondary",
196
+ children: ["Next: ", e.nextRun]
197
+ }),
198
+ /* @__PURE__ */ _("p", {
199
+ className: "text-xs text-text-secondary",
200
+ children: [e.recipients, " recipients"]
201
+ })
202
+ ]
203
+ }, e.name)),
204
+ /* @__PURE__ */ g(f, {
205
+ variant: "outline",
206
+ className: "w-full",
207
+ children: "Schedule New Report"
208
+ })
209
+ ]
210
+ }), /* @__PURE__ */ _(a, { children: [/* @__PURE__ */ g(c, { children: /* @__PURE__ */ g(s, { children: "Quick Actions" }) }), /* @__PURE__ */ _(o, {
203
211
  className: "space-y-2",
204
212
  children: [
205
213
  /* @__PURE__ */ _(f, {
206
214
  variant: "outline",
207
215
  className: "w-full justify-start",
208
- children: [/* @__PURE__ */ g(v, { size: 16 }), " Schedule Report"]
216
+ children: [/* @__PURE__ */ g(b, { size: 16 }), " Schedule Report"]
209
217
  }),
210
218
  /* @__PURE__ */ _(f, {
211
219
  variant: "outline",
@@ -220,8 +228,8 @@ function b() {
220
228
  ]
221
229
  })] })]
222
230
  })]
223
- })
231
+ })]
224
232
  });
225
233
  }
226
234
  //#endregion
227
- export { b as default };
235
+ export { S as default };