@burdenoff/microfe-assethandler 2026.703.2 → 2026.703.3

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 (64) hide show
  1. package/dist/assethandler/AssetHandlerRoot.js +18 -18
  2. package/dist/assethandler/hooks/useAssetHandlerNavigate.js +19 -0
  3. package/dist/assethandler/hooks/useAssetHandlerNavigate.js.map +1 -0
  4. package/dist/assethandler/pages/AiPredictionsPage.js +29 -29
  5. package/dist/assethandler/pages/AnalyticsPage.js +154 -154
  6. package/dist/assethandler/pages/AssetsAssetCategoriesPage.js +48 -48
  7. package/dist/assethandler/pages/AssetsAssetCheckInOutPage.js +84 -84
  8. package/dist/assethandler/pages/AssetsAssetCheckInOutPage.js.map +1 -1
  9. package/dist/assethandler/pages/AssetsAssetCreatePage.js +82 -82
  10. package/dist/assethandler/pages/AssetsAssetCreatePage.js.map +1 -1
  11. package/dist/assethandler/pages/AssetsAssetDetailPage.js +104 -103
  12. package/dist/assethandler/pages/AssetsAssetDetailPage.js.map +1 -1
  13. package/dist/assethandler/pages/AssetsAssetListPage.js +132 -132
  14. package/dist/assethandler/pages/AssetsAssetListPage.js.map +1 -1
  15. package/dist/assethandler/pages/AssetsAssetTrackingPage.js +52 -52
  16. package/dist/assethandler/pages/CmdbBrowserPage.js +27 -27
  17. package/dist/assethandler/pages/DashboardPage.js +119 -119
  18. package/dist/assethandler/pages/DashboardPage.js.map +1 -1
  19. package/dist/assethandler/pages/DigitalTwinPage.js +22 -22
  20. package/dist/assethandler/pages/DiscoveryJobsPage.js +35 -35
  21. package/dist/assethandler/pages/EsgDashboardPage.js +32 -32
  22. package/dist/assethandler/pages/FinanceBudgetDetailPage.js +57 -56
  23. package/dist/assethandler/pages/FinanceBudgetDetailPage.js.map +1 -1
  24. package/dist/assethandler/pages/FinanceFinanceHubPage.js +98 -98
  25. package/dist/assethandler/pages/FinanceFinanceHubPage.js.map +1 -1
  26. package/dist/assethandler/pages/FinanceInvoiceDetailPage.js +58 -57
  27. package/dist/assethandler/pages/FinanceInvoiceDetailPage.js.map +1 -1
  28. package/dist/assethandler/pages/IotDevicesPage.js +29 -29
  29. package/dist/assethandler/pages/ItilChangeDetailPage.js +76 -75
  30. package/dist/assethandler/pages/ItilChangeDetailPage.js.map +1 -1
  31. package/dist/assethandler/pages/ItilChangeManagementPage.js +49 -49
  32. package/dist/assethandler/pages/ItilIncidentDetailPage.js +63 -62
  33. package/dist/assethandler/pages/ItilIncidentDetailPage.js.map +1 -1
  34. package/dist/assethandler/pages/ItilIncidentManagementPage.js +72 -72
  35. package/dist/assethandler/pages/ItilItilhubPage.js +112 -112
  36. package/dist/assethandler/pages/ItilItilhubPage.js.map +1 -1
  37. package/dist/assethandler/pages/ItilProblemDetailPage.js +61 -60
  38. package/dist/assethandler/pages/ItilProblemDetailPage.js.map +1 -1
  39. package/dist/assethandler/pages/ItilProblemManagementPage.js +46 -46
  40. package/dist/assethandler/pages/KnowledgeBasePage.js +28 -28
  41. package/dist/assethandler/pages/MaintenanceMaintenanceCalendarPage.js +52 -52
  42. package/dist/assethandler/pages/MaintenanceMaintenanceSchedulerPage.js +29 -29
  43. package/dist/assethandler/pages/OperationsMaintenanceDetailPage.js +58 -57
  44. package/dist/assethandler/pages/OperationsMaintenanceDetailPage.js.map +1 -1
  45. package/dist/assethandler/pages/OperationsOperationsHubPage.js +80 -80
  46. package/dist/assethandler/pages/OperationsOperationsHubPage.js.map +1 -1
  47. package/dist/assethandler/pages/OperationsWorkOrderDetailPage.js +49 -48
  48. package/dist/assethandler/pages/OperationsWorkOrderDetailPage.js.map +1 -1
  49. package/dist/assethandler/pages/PortfolioPortfolioOverviewPage.js +52 -52
  50. package/dist/assethandler/pages/ProvenancePage.js +36 -36
  51. package/dist/assethandler/pages/SamLicensesPage.js +27 -27
  52. package/dist/assethandler/pages/SecurityComplianceDetailPage.js +39 -38
  53. package/dist/assethandler/pages/SecurityComplianceDetailPage.js.map +1 -1
  54. package/dist/assethandler/pages/SecurityPolicyDetailPage.js +50 -49
  55. package/dist/assethandler/pages/SecurityPolicyDetailPage.js.map +1 -1
  56. package/dist/assethandler/pages/SecuritySecurityEventDetailPage.js +47 -46
  57. package/dist/assethandler/pages/SecuritySecurityEventDetailPage.js.map +1 -1
  58. package/dist/assethandler/pages/SecuritySecurityHubPage.js +104 -104
  59. package/dist/assethandler/pages/SecuritySecurityHubPage.js.map +1 -1
  60. package/dist/assethandler/pages/TransactionsTransactionDetailPage.js +74 -73
  61. package/dist/assethandler/pages/TransactionsTransactionDetailPage.js.map +1 -1
  62. package/dist/assethandler/pages/TransactionsTransactionListPage.js +77 -77
  63. package/dist/assethandler/providers/AssetHandlerProvider.js +12 -12
  64. package/package.json +1 -1
@@ -1,8 +1,8 @@
1
1
  import { useAssetHandlerStore as e } from "../store/assethandlerStore.js";
2
- import { AlertTriangle as t, ClipboardList as n, Plus as r, Wrench as i } from "lucide-react";
3
- import { useNavigate as a } from "react-router-dom";
4
- import { Badge as o, Button as s, Card as c, CardContent as l, EmphasisPanel as u, GradientText as d, IllustratedEmptyState as f, NextSteps as p, PagePurpose as m, Tabs as h, TabsContent as g, TabsList as _, TabsTrigger as v } from "@burdenoff/fe-libs/ui";
5
- import { jsx as y, jsxs as b } from "react/jsx-runtime";
2
+ import { useAssetHandlerNavigate as t } from "../hooks/useAssetHandlerNavigate.js";
3
+ import { AlertTriangle as n, ClipboardList as r, Plus as i, Wrench as a } from "lucide-react";
4
+ import { jsx as o, jsxs as s } from "react/jsx-runtime";
5
+ import { Badge as c, Button as l, Card as u, CardContent as d, EmphasisPanel as f, GradientText as p, IllustratedEmptyState as m, NextSteps as h, PagePurpose as g, Tabs as _, TabsContent as v, TabsList as y, TabsTrigger as b } from "@burdenoff/fe-libs/ui";
6
6
  //#region src/assethandler/pages/OperationsOperationsHubPage.tsx
7
7
  var x = {
8
8
  critical: "destructive",
@@ -11,25 +11,25 @@ var x = {
11
11
  low: "secondary"
12
12
  };
13
13
  function S() {
14
- let S = a(), { workOrders: C, maintenanceRecords: w } = e(), T = C.filter((e) => e.status !== "completed" && e.status !== "cancelled"), E = w.filter((e) => e.status === "scheduled" || e.status === "in_progress"), D = w.reduce((e, t) => e + (t.actualCost ?? t.estimatedCost ?? 0), 0);
15
- return /* @__PURE__ */ b("div", {
14
+ let S = t(), { workOrders: C, maintenanceRecords: w } = e(), T = C.filter((e) => e.status !== "completed" && e.status !== "cancelled"), E = w.filter((e) => e.status === "scheduled" || e.status === "in_progress"), D = w.reduce((e, t) => e + (t.actualCost ?? t.estimatedCost ?? 0), 0);
15
+ return /* @__PURE__ */ s("div", {
16
16
  className: "space-y-6 p-6",
17
17
  children: [
18
- /* @__PURE__ */ b("div", {
18
+ /* @__PURE__ */ s("div", {
19
19
  className: "flex items-center justify-between",
20
- children: [/* @__PURE__ */ b("div", { children: [/* @__PURE__ */ y("h1", {
20
+ children: [/* @__PURE__ */ s("div", { children: [/* @__PURE__ */ o("h1", {
21
21
  className: "text-2xl font-bold",
22
- children: /* @__PURE__ */ y(d, { children: "Operations Hub" })
23
- }), /* @__PURE__ */ y("p", {
22
+ children: /* @__PURE__ */ o(p, { children: "Operations Hub" })
23
+ }), /* @__PURE__ */ o("p", {
24
24
  className: "text-sm text-text-secondary",
25
25
  children: "Work orders and maintenance operations"
26
- })] }), /* @__PURE__ */ b(s, {
26
+ })] }), /* @__PURE__ */ s(l, {
27
27
  size: "sm",
28
- children: [/* @__PURE__ */ y(r, { className: "mr-2 h-4 w-4" }), "New Work Order"]
28
+ children: [/* @__PURE__ */ o(i, { className: "mr-2 h-4 w-4" }), "New Work Order"]
29
29
  })]
30
30
  }),
31
- /* @__PURE__ */ y(m, { children: "Where the hands-on work gets coordinated: raise and assign work orders, run scheduled and breakdown maintenance, and keep an eye on cost. Use this hub to see what is open, what is critical, and what is due — so your team always knows what to fix next." }),
32
- /* @__PURE__ */ y(p, {
31
+ /* @__PURE__ */ o(g, { children: "Where the hands-on work gets coordinated: raise and assign work orders, run scheduled and breakdown maintenance, and keep an eye on cost. Use this hub to see what is open, what is critical, and what is due — so your team always knows what to fix next." }),
32
+ /* @__PURE__ */ o(h, {
33
33
  storageKey: "assethandler-operations-hub",
34
34
  steps: [
35
35
  {
@@ -52,59 +52,59 @@ function S() {
52
52
  }
53
53
  ]
54
54
  }),
55
- /* @__PURE__ */ b("div", {
55
+ /* @__PURE__ */ s("div", {
56
56
  className: "grid gap-4 md:grid-cols-4",
57
57
  children: [
58
- /* @__PURE__ */ b(u, { children: [/* @__PURE__ */ b("div", {
58
+ /* @__PURE__ */ s(f, { children: [/* @__PURE__ */ s("div", {
59
59
  className: "flex items-center gap-2 text-sm text-text-secondary",
60
- children: [/* @__PURE__ */ y(n, { className: "h-4 w-4" }), "Open Work Orders"]
61
- }), /* @__PURE__ */ y("p", {
60
+ children: [/* @__PURE__ */ o(r, { className: "h-4 w-4" }), "Open Work Orders"]
61
+ }), /* @__PURE__ */ o("p", {
62
62
  className: "text-2xl font-bold mt-1 tabular-nums",
63
63
  children: T.length
64
64
  })] }),
65
- /* @__PURE__ */ y(c, { children: /* @__PURE__ */ b(l, {
65
+ /* @__PURE__ */ o(u, { children: /* @__PURE__ */ s(d, {
66
66
  className: "pt-4",
67
- children: [/* @__PURE__ */ b("div", {
67
+ children: [/* @__PURE__ */ s("div", {
68
68
  className: "flex items-center gap-2 text-sm text-text-secondary",
69
- children: [/* @__PURE__ */ y(i, { className: "h-4 w-4" }), "Active Maintenance"]
70
- }), /* @__PURE__ */ y("p", {
69
+ children: [/* @__PURE__ */ o(a, { className: "h-4 w-4" }), "Active Maintenance"]
70
+ }), /* @__PURE__ */ o("p", {
71
71
  className: "text-2xl font-bold mt-1",
72
72
  children: E.length
73
73
  })]
74
74
  }) }),
75
- /* @__PURE__ */ y(c, { children: /* @__PURE__ */ b(l, {
75
+ /* @__PURE__ */ o(u, { children: /* @__PURE__ */ s(d, {
76
76
  className: "pt-4",
77
- children: [/* @__PURE__ */ b("div", {
77
+ children: [/* @__PURE__ */ s("div", {
78
78
  className: "flex items-center gap-2 text-sm text-text-secondary",
79
- children: [/* @__PURE__ */ y(t, { className: "h-4 w-4" }), "Critical"]
80
- }), /* @__PURE__ */ y("p", {
79
+ children: [/* @__PURE__ */ o(n, { className: "h-4 w-4" }), "Critical"]
80
+ }), /* @__PURE__ */ o("p", {
81
81
  className: "text-2xl font-bold mt-1 text-status-error-text",
82
82
  children: C.filter((e) => e.priority === "critical").length
83
83
  })]
84
84
  }) }),
85
- /* @__PURE__ */ y(c, { children: /* @__PURE__ */ b(l, {
85
+ /* @__PURE__ */ o(u, { children: /* @__PURE__ */ s(d, {
86
86
  className: "pt-4",
87
- children: [/* @__PURE__ */ y("div", {
87
+ children: [/* @__PURE__ */ o("div", {
88
88
  className: "flex items-center gap-2 text-sm text-text-secondary",
89
89
  children: "Maintenance Cost"
90
- }), /* @__PURE__ */ b("p", {
90
+ }), /* @__PURE__ */ s("p", {
91
91
  className: "text-2xl font-bold mt-1",
92
92
  children: ["$", D.toLocaleString()]
93
93
  })]
94
94
  }) })
95
95
  ]
96
96
  }),
97
- /* @__PURE__ */ b(h, {
97
+ /* @__PURE__ */ s(_, {
98
98
  defaultValue: "work-orders",
99
99
  children: [
100
- /* @__PURE__ */ b(_, { children: [/* @__PURE__ */ b(v, {
100
+ /* @__PURE__ */ s(y, { children: [/* @__PURE__ */ s(b, {
101
101
  value: "work-orders",
102
102
  children: [
103
103
  "Work Orders (",
104
104
  C.length,
105
105
  ")"
106
106
  ]
107
- }), /* @__PURE__ */ b(v, {
107
+ }), /* @__PURE__ */ s(b, {
108
108
  value: "maintenance",
109
109
  children: [
110
110
  "Maintenance (",
@@ -112,83 +112,83 @@ function S() {
112
112
  ")"
113
113
  ]
114
114
  })] }),
115
- /* @__PURE__ */ y(g, {
115
+ /* @__PURE__ */ o(v, {
116
116
  value: "work-orders",
117
117
  className: "mt-4",
118
- children: C.length === 0 ? /* @__PURE__ */ y(f, {
118
+ children: C.length === 0 ? /* @__PURE__ */ o(m, {
119
119
  illustration: "empty-generic",
120
120
  title: "No work orders",
121
121
  description: "Raise a work order when an asset needs repair, inspection or attention."
122
- }) : /* @__PURE__ */ y(c, { children: /* @__PURE__ */ y(l, {
122
+ }) : /* @__PURE__ */ o(u, { children: /* @__PURE__ */ o(d, {
123
123
  className: "p-0",
124
- children: /* @__PURE__ */ y("div", {
124
+ children: /* @__PURE__ */ o("div", {
125
125
  className: "overflow-x-auto",
126
- children: /* @__PURE__ */ b("table", {
126
+ children: /* @__PURE__ */ s("table", {
127
127
  className: "w-full text-sm",
128
- children: [/* @__PURE__ */ y("thead", { children: /* @__PURE__ */ b("tr", {
128
+ children: [/* @__PURE__ */ o("thead", { children: /* @__PURE__ */ s("tr", {
129
129
  className: "border-b bg-bg-sunken/50",
130
130
  children: [
131
- /* @__PURE__ */ y("th", {
131
+ /* @__PURE__ */ o("th", {
132
132
  className: "text-left p-3 font-medium",
133
133
  children: "ID"
134
134
  }),
135
- /* @__PURE__ */ y("th", {
135
+ /* @__PURE__ */ o("th", {
136
136
  className: "text-left p-3 font-medium",
137
137
  children: "Title"
138
138
  }),
139
- /* @__PURE__ */ y("th", {
139
+ /* @__PURE__ */ o("th", {
140
140
  className: "text-left p-3 font-medium",
141
141
  children: "Asset"
142
142
  }),
143
- /* @__PURE__ */ y("th", {
143
+ /* @__PURE__ */ o("th", {
144
144
  className: "text-left p-3 font-medium",
145
145
  children: "Priority"
146
146
  }),
147
- /* @__PURE__ */ y("th", {
147
+ /* @__PURE__ */ o("th", {
148
148
  className: "text-left p-3 font-medium",
149
149
  children: "Status"
150
150
  }),
151
- /* @__PURE__ */ y("th", {
151
+ /* @__PURE__ */ o("th", {
152
152
  className: "text-left p-3 font-medium",
153
153
  children: "Assigned To"
154
154
  })
155
155
  ]
156
- }) }), /* @__PURE__ */ y("tbody", { children: C.map((e) => /* @__PURE__ */ b("tr", {
156
+ }) }), /* @__PURE__ */ o("tbody", { children: C.map((e) => /* @__PURE__ */ s("tr", {
157
157
  className: "border-b hover:bg-bg-sunken/50 cursor-pointer",
158
158
  children: [
159
- /* @__PURE__ */ y("td", {
159
+ /* @__PURE__ */ o("td", {
160
160
  className: "p-3 font-mono text-xs",
161
161
  children: e.id
162
162
  }),
163
- /* @__PURE__ */ b("td", {
163
+ /* @__PURE__ */ s("td", {
164
164
  className: "p-3",
165
- children: [/* @__PURE__ */ y("p", {
165
+ children: [/* @__PURE__ */ o("p", {
166
166
  className: "font-medium",
167
167
  children: e.title
168
- }), /* @__PURE__ */ y("p", {
168
+ }), /* @__PURE__ */ o("p", {
169
169
  className: "text-xs text-text-secondary truncate max-w-xs",
170
170
  children: e.description
171
171
  })]
172
172
  }),
173
- /* @__PURE__ */ y("td", {
173
+ /* @__PURE__ */ o("td", {
174
174
  className: "p-3 text-xs",
175
175
  children: e.assetId || "—"
176
176
  }),
177
- /* @__PURE__ */ y("td", {
177
+ /* @__PURE__ */ o("td", {
178
178
  className: "p-3",
179
- children: /* @__PURE__ */ y(o, {
179
+ children: /* @__PURE__ */ o(c, {
180
180
  variant: x[e.priority],
181
181
  children: e.priority
182
182
  })
183
183
  }),
184
- /* @__PURE__ */ y("td", {
184
+ /* @__PURE__ */ o("td", {
185
185
  className: "p-3",
186
- children: /* @__PURE__ */ y(o, {
186
+ children: /* @__PURE__ */ o(c, {
187
187
  variant: "outline",
188
188
  children: e.status.replace("_", " ")
189
189
  })
190
190
  }),
191
- /* @__PURE__ */ y("td", {
191
+ /* @__PURE__ */ o("td", {
192
192
  className: "p-3 text-xs",
193
193
  children: e.assignedTo
194
194
  })
@@ -198,93 +198,93 @@ function S() {
198
198
  })
199
199
  }) })
200
200
  }),
201
- /* @__PURE__ */ y(g, {
201
+ /* @__PURE__ */ o(v, {
202
202
  value: "maintenance",
203
203
  className: "mt-4",
204
- children: w.length === 0 ? /* @__PURE__ */ y(f, {
204
+ children: w.length === 0 ? /* @__PURE__ */ o(m, {
205
205
  illustration: "empty-generic",
206
206
  title: "No maintenance scheduled",
207
207
  description: "Scheduled and completed maintenance for your assets will appear here."
208
- }) : /* @__PURE__ */ y(c, { children: /* @__PURE__ */ y(l, {
208
+ }) : /* @__PURE__ */ o(u, { children: /* @__PURE__ */ o(d, {
209
209
  className: "p-0",
210
- children: /* @__PURE__ */ y("div", {
210
+ children: /* @__PURE__ */ o("div", {
211
211
  className: "overflow-x-auto",
212
- children: /* @__PURE__ */ b("table", {
212
+ children: /* @__PURE__ */ s("table", {
213
213
  className: "w-full text-sm",
214
- children: [/* @__PURE__ */ y("thead", { children: /* @__PURE__ */ b("tr", {
214
+ children: [/* @__PURE__ */ o("thead", { children: /* @__PURE__ */ s("tr", {
215
215
  className: "border-b bg-bg-sunken/50",
216
216
  children: [
217
- /* @__PURE__ */ y("th", {
217
+ /* @__PURE__ */ o("th", {
218
218
  className: "text-left p-3 font-medium",
219
219
  children: "ID"
220
220
  }),
221
- /* @__PURE__ */ y("th", {
221
+ /* @__PURE__ */ o("th", {
222
222
  className: "text-left p-3 font-medium",
223
223
  children: "Title"
224
224
  }),
225
- /* @__PURE__ */ y("th", {
225
+ /* @__PURE__ */ o("th", {
226
226
  className: "text-left p-3 font-medium",
227
227
  children: "Asset"
228
228
  }),
229
- /* @__PURE__ */ y("th", {
229
+ /* @__PURE__ */ o("th", {
230
230
  className: "text-left p-3 font-medium",
231
231
  children: "Type"
232
232
  }),
233
- /* @__PURE__ */ y("th", {
233
+ /* @__PURE__ */ o("th", {
234
234
  className: "text-left p-3 font-medium",
235
235
  children: "Priority"
236
236
  }),
237
- /* @__PURE__ */ y("th", {
237
+ /* @__PURE__ */ o("th", {
238
238
  className: "text-left p-3 font-medium",
239
239
  children: "Status"
240
240
  }),
241
- /* @__PURE__ */ y("th", {
241
+ /* @__PURE__ */ o("th", {
242
242
  className: "text-left p-3 font-medium",
243
243
  children: "Date"
244
244
  }),
245
- /* @__PURE__ */ y("th", {
245
+ /* @__PURE__ */ o("th", {
246
246
  className: "text-right p-3 font-medium",
247
247
  children: "Cost"
248
248
  })
249
249
  ]
250
- }) }), /* @__PURE__ */ y("tbody", { children: w.map((e) => /* @__PURE__ */ b("tr", {
250
+ }) }), /* @__PURE__ */ o("tbody", { children: w.map((e) => /* @__PURE__ */ s("tr", {
251
251
  className: "border-b hover:bg-bg-sunken/50 cursor-pointer",
252
252
  children: [
253
- /* @__PURE__ */ y("td", {
253
+ /* @__PURE__ */ o("td", {
254
254
  className: "p-3 font-mono text-xs",
255
255
  children: e.id
256
256
  }),
257
- /* @__PURE__ */ y("td", {
257
+ /* @__PURE__ */ o("td", {
258
258
  className: "p-3 font-medium",
259
259
  children: e.title
260
260
  }),
261
- /* @__PURE__ */ y("td", {
261
+ /* @__PURE__ */ o("td", {
262
262
  className: "p-3 text-xs",
263
263
  children: e.assetId
264
264
  }),
265
- /* @__PURE__ */ y("td", {
265
+ /* @__PURE__ */ o("td", {
266
266
  className: "p-3 capitalize text-xs",
267
267
  children: e.type
268
268
  }),
269
- /* @__PURE__ */ y("td", {
269
+ /* @__PURE__ */ o("td", {
270
270
  className: "p-3",
271
- children: /* @__PURE__ */ y(o, {
271
+ children: /* @__PURE__ */ o(c, {
272
272
  variant: x[e.priority],
273
273
  children: e.priority
274
274
  })
275
275
  }),
276
- /* @__PURE__ */ y("td", {
276
+ /* @__PURE__ */ o("td", {
277
277
  className: "p-3",
278
- children: /* @__PURE__ */ y(o, {
278
+ children: /* @__PURE__ */ o(c, {
279
279
  variant: e.status === "completed" ? "default" : "outline",
280
280
  children: e.status.replace("_", " ")
281
281
  })
282
282
  }),
283
- /* @__PURE__ */ y("td", {
283
+ /* @__PURE__ */ o("td", {
284
284
  className: "p-3 text-xs",
285
285
  children: e.scheduledDate ? new Date(e.scheduledDate).toLocaleDateString() : "—"
286
286
  }),
287
- /* @__PURE__ */ b("td", {
287
+ /* @__PURE__ */ s("td", {
288
288
  className: "p-3 text-right font-medium",
289
289
  children: ["$", (e.actualCost ?? e.estimatedCost ?? 0).toLocaleString()]
290
290
  })
@@ -1 +1 @@
1
- {"version":3,"file":"OperationsOperationsHubPage.js","names":[],"sources":["../../../src/assethandler/pages/OperationsOperationsHubPage.tsx"],"sourcesContent":["import {\n Badge,\n Button,\n Card,\n CardContent,\n Tabs,\n TabsContent,\n TabsList,\n TabsTrigger,\n GradientText,\n EmphasisPanel,\n PagePurpose,\n NextSteps,\n IllustratedEmptyState,\n} from '@burdenoff/fe-libs/ui';\nimport { Wrench, ClipboardList, AlertTriangle, Plus } from 'lucide-react';\nimport { useNavigate } from 'react-router-dom';\nimport { useAssetHandlerStore } from '../store/assethandlerStore';\n\nconst priorityColors: Record<string, 'destructive' | 'default' | 'secondary' | 'outline'> = {\n critical: 'destructive',\n high: 'destructive',\n medium: 'default',\n low: 'secondary',\n};\n\nexport function OperationsOperationsHubPage() {\n const navigate = useNavigate();\n const { workOrders, maintenanceRecords } = useAssetHandlerStore();\n\n const openWorkOrders = workOrders.filter(\n (w) => w.status !== 'completed' && w.status !== 'cancelled'\n );\n const scheduledMaintenance = maintenanceRecords.filter(\n (m) => m.status === 'scheduled' || m.status === 'in_progress'\n );\n const maintenanceCost = maintenanceRecords.reduce(\n (s, m) => s + (m.actualCost ?? m.estimatedCost ?? 0),\n 0\n );\n\n return (\n <div className=\"space-y-6 p-6\">\n <div className=\"flex items-center justify-between\">\n <div>\n <h1 className=\"text-2xl font-bold\">\n <GradientText>Operations Hub</GradientText>\n </h1>\n <p className=\"text-sm text-text-secondary\">Work orders and maintenance operations</p>\n </div>\n <Button size=\"sm\">\n <Plus className=\"mr-2 h-4 w-4\" />\n New Work Order\n </Button>\n </div>\n\n <PagePurpose>\n Where the hands-on work gets coordinated: raise and assign work orders, run scheduled and\n breakdown maintenance, and keep an eye on cost. Use this hub to see what is open, what is\n critical, and what is due — so your team always knows what to fix next.\n </PagePurpose>\n\n <NextSteps\n storageKey=\"assethandler-operations-hub\"\n steps={[\n {\n id: 'scheduler',\n label: 'Plan preventive maintenance',\n description: 'Schedule upcoming maintenance before assets fail.',\n onClick: () => navigate('/maintenance/maintenance-scheduler'),\n },\n {\n id: 'calendar',\n label: 'View the maintenance calendar',\n description: 'Spot clashes and overdue jobs at a glance.',\n onClick: () => navigate('/maintenance/maintenance-calendar'),\n },\n {\n id: 'assets',\n label: 'Open the asset inventory',\n description: 'Jump to an asset to log a work order against it.',\n onClick: () => navigate('/assets/asset-list'),\n },\n ]}\n />\n\n <div className=\"grid gap-4 md:grid-cols-4\">\n <EmphasisPanel>\n <div className=\"flex items-center gap-2 text-sm text-text-secondary\">\n <ClipboardList className=\"h-4 w-4\" />\n Open Work Orders\n </div>\n <p className=\"text-2xl font-bold mt-1 tabular-nums\">{openWorkOrders.length}</p>\n </EmphasisPanel>\n <Card>\n <CardContent className=\"pt-4\">\n <div className=\"flex items-center gap-2 text-sm text-text-secondary\">\n <Wrench className=\"h-4 w-4\" />\n Active Maintenance\n </div>\n <p className=\"text-2xl font-bold mt-1\">{scheduledMaintenance.length}</p>\n </CardContent>\n </Card>\n <Card>\n <CardContent className=\"pt-4\">\n <div className=\"flex items-center gap-2 text-sm text-text-secondary\">\n <AlertTriangle className=\"h-4 w-4\" />\n Critical\n </div>\n <p className=\"text-2xl font-bold mt-1 text-status-error-text\">\n {workOrders.filter((w) => w.priority === 'critical').length}\n </p>\n </CardContent>\n </Card>\n <Card>\n <CardContent className=\"pt-4\">\n <div className=\"flex items-center gap-2 text-sm text-text-secondary\">\n Maintenance Cost\n </div>\n <p className=\"text-2xl font-bold mt-1\">${maintenanceCost.toLocaleString()}</p>\n </CardContent>\n </Card>\n </div>\n\n <Tabs defaultValue=\"work-orders\">\n <TabsList>\n <TabsTrigger value=\"work-orders\">Work Orders ({workOrders.length})</TabsTrigger>\n <TabsTrigger value=\"maintenance\">Maintenance ({maintenanceRecords.length})</TabsTrigger>\n </TabsList>\n\n <TabsContent value=\"work-orders\" className=\"mt-4\">\n {workOrders.length === 0 ? (\n <IllustratedEmptyState\n illustration=\"empty-generic\"\n title=\"No work orders\"\n description=\"Raise a work order when an asset needs repair, inspection or attention.\"\n />\n ) : (\n <Card>\n <CardContent className=\"p-0\">\n <div className=\"overflow-x-auto\">\n <table className=\"w-full text-sm\">\n <thead>\n <tr className=\"border-b bg-bg-sunken/50\">\n <th className=\"text-left p-3 font-medium\">ID</th>\n <th className=\"text-left p-3 font-medium\">Title</th>\n <th className=\"text-left p-3 font-medium\">Asset</th>\n <th className=\"text-left p-3 font-medium\">Priority</th>\n <th className=\"text-left p-3 font-medium\">Status</th>\n <th className=\"text-left p-3 font-medium\">Assigned To</th>\n </tr>\n </thead>\n <tbody>\n {workOrders.map((wo) => (\n <tr key={wo.id} className=\"border-b hover:bg-bg-sunken/50 cursor-pointer\">\n <td className=\"p-3 font-mono text-xs\">{wo.id}</td>\n <td className=\"p-3\">\n <p className=\"font-medium\">{wo.title}</p>\n <p className=\"text-xs text-text-secondary truncate max-w-xs\">\n {wo.description}\n </p>\n </td>\n <td className=\"p-3 text-xs\">{wo.assetId || '—'}</td>\n <td className=\"p-3\">\n <Badge variant={priorityColors[wo.priority]}>{wo.priority}</Badge>\n </td>\n <td className=\"p-3\">\n <Badge variant=\"outline\">{wo.status.replace('_', ' ')}</Badge>\n </td>\n <td className=\"p-3 text-xs\">{wo.assignedTo}</td>\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n </CardContent>\n </Card>\n )}\n </TabsContent>\n\n <TabsContent value=\"maintenance\" className=\"mt-4\">\n {maintenanceRecords.length === 0 ? (\n <IllustratedEmptyState\n illustration=\"empty-generic\"\n title=\"No maintenance scheduled\"\n description=\"Scheduled and completed maintenance for your assets will appear here.\"\n />\n ) : (\n <Card>\n <CardContent className=\"p-0\">\n <div className=\"overflow-x-auto\">\n <table className=\"w-full text-sm\">\n <thead>\n <tr className=\"border-b bg-bg-sunken/50\">\n <th className=\"text-left p-3 font-medium\">ID</th>\n <th className=\"text-left p-3 font-medium\">Title</th>\n <th className=\"text-left p-3 font-medium\">Asset</th>\n <th className=\"text-left p-3 font-medium\">Type</th>\n <th className=\"text-left p-3 font-medium\">Priority</th>\n <th className=\"text-left p-3 font-medium\">Status</th>\n <th className=\"text-left p-3 font-medium\">Date</th>\n <th className=\"text-right p-3 font-medium\">Cost</th>\n </tr>\n </thead>\n <tbody>\n {maintenanceRecords.map((m) => (\n <tr key={m.id} className=\"border-b hover:bg-bg-sunken/50 cursor-pointer\">\n <td className=\"p-3 font-mono text-xs\">{m.id}</td>\n <td className=\"p-3 font-medium\">{m.title}</td>\n <td className=\"p-3 text-xs\">{m.assetId}</td>\n <td className=\"p-3 capitalize text-xs\">{m.type}</td>\n <td className=\"p-3\">\n <Badge variant={priorityColors[m.priority]}>{m.priority}</Badge>\n </td>\n <td className=\"p-3\">\n <Badge variant={m.status === 'completed' ? 'default' : 'outline'}>\n {m.status.replace('_', ' ')}\n </Badge>\n </td>\n <td className=\"p-3 text-xs\">\n {m.scheduledDate ? new Date(m.scheduledDate).toLocaleDateString() : '—'}\n </td>\n <td className=\"p-3 text-right font-medium\">\n ${(m.actualCost ?? m.estimatedCost ?? 0).toLocaleString()}\n </td>\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n </CardContent>\n </Card>\n )}\n </TabsContent>\n </Tabs>\n </div>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"OperationsOperationsHubPage.js","names":[],"sources":["../../../src/assethandler/pages/OperationsOperationsHubPage.tsx"],"sourcesContent":["import { useAssetHandlerNavigate } from '../hooks/useAssetHandlerNavigate';\nimport {\n Badge,\n Button,\n Card,\n CardContent,\n Tabs,\n TabsContent,\n TabsList,\n TabsTrigger,\n GradientText,\n EmphasisPanel,\n PagePurpose,\n NextSteps,\n IllustratedEmptyState,\n} from '@burdenoff/fe-libs/ui';\nimport { Wrench, ClipboardList, AlertTriangle, Plus } from 'lucide-react';\nimport { useAssetHandlerStore } from '../store/assethandlerStore';\n\nconst priorityColors: Record<string, 'destructive' | 'default' | 'secondary' | 'outline'> = {\n critical: 'destructive',\n high: 'destructive',\n medium: 'default',\n low: 'secondary',\n};\n\nexport function OperationsOperationsHubPage() {\n const navigate = useAssetHandlerNavigate();\n const { workOrders, maintenanceRecords } = useAssetHandlerStore();\n\n const openWorkOrders = workOrders.filter(\n (w) => w.status !== 'completed' && w.status !== 'cancelled'\n );\n const scheduledMaintenance = maintenanceRecords.filter(\n (m) => m.status === 'scheduled' || m.status === 'in_progress'\n );\n const maintenanceCost = maintenanceRecords.reduce(\n (s, m) => s + (m.actualCost ?? m.estimatedCost ?? 0),\n 0\n );\n\n return (\n <div className=\"space-y-6 p-6\">\n <div className=\"flex items-center justify-between\">\n <div>\n <h1 className=\"text-2xl font-bold\">\n <GradientText>Operations Hub</GradientText>\n </h1>\n <p className=\"text-sm text-text-secondary\">Work orders and maintenance operations</p>\n </div>\n <Button size=\"sm\">\n <Plus className=\"mr-2 h-4 w-4\" />\n New Work Order\n </Button>\n </div>\n\n <PagePurpose>\n Where the hands-on work gets coordinated: raise and assign work orders, run scheduled and\n breakdown maintenance, and keep an eye on cost. Use this hub to see what is open, what is\n critical, and what is due — so your team always knows what to fix next.\n </PagePurpose>\n\n <NextSteps\n storageKey=\"assethandler-operations-hub\"\n steps={[\n {\n id: 'scheduler',\n label: 'Plan preventive maintenance',\n description: 'Schedule upcoming maintenance before assets fail.',\n onClick: () => navigate('/maintenance/maintenance-scheduler'),\n },\n {\n id: 'calendar',\n label: 'View the maintenance calendar',\n description: 'Spot clashes and overdue jobs at a glance.',\n onClick: () => navigate('/maintenance/maintenance-calendar'),\n },\n {\n id: 'assets',\n label: 'Open the asset inventory',\n description: 'Jump to an asset to log a work order against it.',\n onClick: () => navigate('/assets/asset-list'),\n },\n ]}\n />\n\n <div className=\"grid gap-4 md:grid-cols-4\">\n <EmphasisPanel>\n <div className=\"flex items-center gap-2 text-sm text-text-secondary\">\n <ClipboardList className=\"h-4 w-4\" />\n Open Work Orders\n </div>\n <p className=\"text-2xl font-bold mt-1 tabular-nums\">{openWorkOrders.length}</p>\n </EmphasisPanel>\n <Card>\n <CardContent className=\"pt-4\">\n <div className=\"flex items-center gap-2 text-sm text-text-secondary\">\n <Wrench className=\"h-4 w-4\" />\n Active Maintenance\n </div>\n <p className=\"text-2xl font-bold mt-1\">{scheduledMaintenance.length}</p>\n </CardContent>\n </Card>\n <Card>\n <CardContent className=\"pt-4\">\n <div className=\"flex items-center gap-2 text-sm text-text-secondary\">\n <AlertTriangle className=\"h-4 w-4\" />\n Critical\n </div>\n <p className=\"text-2xl font-bold mt-1 text-status-error-text\">\n {workOrders.filter((w) => w.priority === 'critical').length}\n </p>\n </CardContent>\n </Card>\n <Card>\n <CardContent className=\"pt-4\">\n <div className=\"flex items-center gap-2 text-sm text-text-secondary\">\n Maintenance Cost\n </div>\n <p className=\"text-2xl font-bold mt-1\">${maintenanceCost.toLocaleString()}</p>\n </CardContent>\n </Card>\n </div>\n\n <Tabs defaultValue=\"work-orders\">\n <TabsList>\n <TabsTrigger value=\"work-orders\">Work Orders ({workOrders.length})</TabsTrigger>\n <TabsTrigger value=\"maintenance\">Maintenance ({maintenanceRecords.length})</TabsTrigger>\n </TabsList>\n\n <TabsContent value=\"work-orders\" className=\"mt-4\">\n {workOrders.length === 0 ? (\n <IllustratedEmptyState\n illustration=\"empty-generic\"\n title=\"No work orders\"\n description=\"Raise a work order when an asset needs repair, inspection or attention.\"\n />\n ) : (\n <Card>\n <CardContent className=\"p-0\">\n <div className=\"overflow-x-auto\">\n <table className=\"w-full text-sm\">\n <thead>\n <tr className=\"border-b bg-bg-sunken/50\">\n <th className=\"text-left p-3 font-medium\">ID</th>\n <th className=\"text-left p-3 font-medium\">Title</th>\n <th className=\"text-left p-3 font-medium\">Asset</th>\n <th className=\"text-left p-3 font-medium\">Priority</th>\n <th className=\"text-left p-3 font-medium\">Status</th>\n <th className=\"text-left p-3 font-medium\">Assigned To</th>\n </tr>\n </thead>\n <tbody>\n {workOrders.map((wo) => (\n <tr key={wo.id} className=\"border-b hover:bg-bg-sunken/50 cursor-pointer\">\n <td className=\"p-3 font-mono text-xs\">{wo.id}</td>\n <td className=\"p-3\">\n <p className=\"font-medium\">{wo.title}</p>\n <p className=\"text-xs text-text-secondary truncate max-w-xs\">\n {wo.description}\n </p>\n </td>\n <td className=\"p-3 text-xs\">{wo.assetId || '—'}</td>\n <td className=\"p-3\">\n <Badge variant={priorityColors[wo.priority]}>{wo.priority}</Badge>\n </td>\n <td className=\"p-3\">\n <Badge variant=\"outline\">{wo.status.replace('_', ' ')}</Badge>\n </td>\n <td className=\"p-3 text-xs\">{wo.assignedTo}</td>\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n </CardContent>\n </Card>\n )}\n </TabsContent>\n\n <TabsContent value=\"maintenance\" className=\"mt-4\">\n {maintenanceRecords.length === 0 ? (\n <IllustratedEmptyState\n illustration=\"empty-generic\"\n title=\"No maintenance scheduled\"\n description=\"Scheduled and completed maintenance for your assets will appear here.\"\n />\n ) : (\n <Card>\n <CardContent className=\"p-0\">\n <div className=\"overflow-x-auto\">\n <table className=\"w-full text-sm\">\n <thead>\n <tr className=\"border-b bg-bg-sunken/50\">\n <th className=\"text-left p-3 font-medium\">ID</th>\n <th className=\"text-left p-3 font-medium\">Title</th>\n <th className=\"text-left p-3 font-medium\">Asset</th>\n <th className=\"text-left p-3 font-medium\">Type</th>\n <th className=\"text-left p-3 font-medium\">Priority</th>\n <th className=\"text-left p-3 font-medium\">Status</th>\n <th className=\"text-left p-3 font-medium\">Date</th>\n <th className=\"text-right p-3 font-medium\">Cost</th>\n </tr>\n </thead>\n <tbody>\n {maintenanceRecords.map((m) => (\n <tr key={m.id} className=\"border-b hover:bg-bg-sunken/50 cursor-pointer\">\n <td className=\"p-3 font-mono text-xs\">{m.id}</td>\n <td className=\"p-3 font-medium\">{m.title}</td>\n <td className=\"p-3 text-xs\">{m.assetId}</td>\n <td className=\"p-3 capitalize text-xs\">{m.type}</td>\n <td className=\"p-3\">\n <Badge variant={priorityColors[m.priority]}>{m.priority}</Badge>\n </td>\n <td className=\"p-3\">\n <Badge variant={m.status === 'completed' ? 'default' : 'outline'}>\n {m.status.replace('_', ' ')}\n </Badge>\n </td>\n <td className=\"p-3 text-xs\">\n {m.scheduledDate ? new Date(m.scheduledDate).toLocaleDateString() : '—'}\n </td>\n <td className=\"p-3 text-right font-medium\">\n ${(m.actualCost ?? m.estimatedCost ?? 0).toLocaleString()}\n </td>\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n </CardContent>\n </Card>\n )}\n </TabsContent>\n </Tabs>\n </div>\n );\n}\n"],"mappings":"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"}
@@ -1,8 +1,9 @@
1
1
  import { useAssetHandlerStore as e } from "../store/assethandlerStore.js";
2
- import { ArrowLeft as t, CheckCircle as n } from "lucide-react";
3
- import { useNavigate as r, useParams as i } from "react-router-dom";
4
- import { Badge as a, Button as o, Card as s, CardContent as c, CardHeader as l, CardTitle as u, EmphasisPanel as d, GradientText as f, IllustratedEmptyState as p, PagePurpose as m, Separator as h } from "@burdenoff/fe-libs/ui";
5
- import { jsx as g, jsxs as _ } from "react/jsx-runtime";
2
+ import { useAssetHandlerNavigate as t } from "../hooks/useAssetHandlerNavigate.js";
3
+ import { ArrowLeft as n, CheckCircle as r } from "lucide-react";
4
+ import { useParams as i } from "react-router-dom";
5
+ import { jsx as a, jsxs as o } from "react/jsx-runtime";
6
+ import { Badge as s, Button as c, Card as l, CardContent as u, CardHeader as d, CardTitle as f, EmphasisPanel as p, GradientText as m, IllustratedEmptyState as h, PagePurpose as g, Separator as _ } from "@burdenoff/fe-libs/ui";
6
7
  //#region src/assethandler/pages/OperationsWorkOrderDetailPage.tsx
7
8
  var v = {
8
9
  critical: "destructive",
@@ -11,84 +12,84 @@ var v = {
11
12
  low: "secondary"
12
13
  };
13
14
  function y() {
14
- let y = r(), { workOrderId: b } = i(), { workOrders: x } = e(), S = x.find((e) => e.id === b) ?? x[0];
15
- return S ? /* @__PURE__ */ _("div", {
15
+ let y = t(), { workOrderId: b } = i(), { workOrders: x } = e(), S = x.find((e) => e.id === b) ?? x[0];
16
+ return S ? /* @__PURE__ */ o("div", {
16
17
  className: "space-y-6 p-6",
17
18
  children: [
18
- /* @__PURE__ */ _("div", {
19
+ /* @__PURE__ */ o("div", {
19
20
  className: "flex items-center justify-between",
20
- children: [/* @__PURE__ */ _("div", {
21
+ children: [/* @__PURE__ */ o("div", {
21
22
  className: "flex items-center gap-4",
22
- children: [/* @__PURE__ */ g(o, {
23
+ children: [/* @__PURE__ */ a(c, {
23
24
  variant: "ghost",
24
25
  size: "icon",
25
26
  onClick: () => y("/operations/operations-hub"),
26
- children: /* @__PURE__ */ g(t, { className: "h-4 w-4" })
27
- }), /* @__PURE__ */ _("div", { children: [/* @__PURE__ */ _("div", {
27
+ children: /* @__PURE__ */ a(n, { className: "h-4 w-4" })
28
+ }), /* @__PURE__ */ o("div", { children: [/* @__PURE__ */ o("div", {
28
29
  className: "flex items-center gap-3",
29
30
  children: [
30
- /* @__PURE__ */ g("h1", {
31
+ /* @__PURE__ */ a("h1", {
31
32
  className: "text-2xl font-bold",
32
- children: /* @__PURE__ */ g(f, { children: S.id })
33
+ children: /* @__PURE__ */ a(m, { children: S.id })
33
34
  }),
34
- /* @__PURE__ */ g(a, {
35
+ /* @__PURE__ */ a(s, {
35
36
  variant: v[S.priority],
36
37
  children: S.priority
37
38
  }),
38
- /* @__PURE__ */ g(a, {
39
+ /* @__PURE__ */ a(s, {
39
40
  variant: "outline",
40
41
  children: S.status.replace("_", " ")
41
42
  })
42
43
  ]
43
- }), /* @__PURE__ */ g("p", {
44
+ }), /* @__PURE__ */ a("p", {
44
45
  className: "text-sm text-text-secondary mt-1",
45
46
  children: S.title
46
47
  })] })]
47
- }), /* @__PURE__ */ _(o, {
48
+ }), /* @__PURE__ */ o(c, {
48
49
  size: "sm",
49
- children: [/* @__PURE__ */ g(n, { className: "mr-2 h-4 w-4" }), "Complete"]
50
+ children: [/* @__PURE__ */ a(r, { className: "mr-2 h-4 w-4" }), "Complete"]
50
51
  })]
51
52
  }),
52
- /* @__PURE__ */ g(m, { children: "The full brief for a single work order: what needs doing, on which asset and by whom. Use this page to track the job from open to complete and keep the asset's maintenance history accurate." }),
53
- /* @__PURE__ */ _("div", {
53
+ /* @__PURE__ */ a(g, { children: "The full brief for a single work order: what needs doing, on which asset and by whom. Use this page to track the job from open to complete and keep the asset's maintenance history accurate." }),
54
+ /* @__PURE__ */ o("div", {
54
55
  className: "grid gap-6 lg:grid-cols-3",
55
- children: [/* @__PURE__ */ _(d, {
56
+ children: [/* @__PURE__ */ o(p, {
56
57
  className: "lg:col-span-2",
57
- children: [/* @__PURE__ */ g(l, {
58
+ children: [/* @__PURE__ */ a(d, {
58
59
  className: "px-0 pt-0",
59
- children: /* @__PURE__ */ g(u, { children: "Work Order Details" })
60
- }), /* @__PURE__ */ _(c, {
60
+ children: /* @__PURE__ */ a(f, { children: "Work Order Details" })
61
+ }), /* @__PURE__ */ o(u, {
61
62
  className: "space-y-4 px-0 pb-0",
62
63
  children: [
63
- /* @__PURE__ */ _("div", { children: [/* @__PURE__ */ g("h4", {
64
+ /* @__PURE__ */ o("div", { children: [/* @__PURE__ */ a("h4", {
64
65
  className: "text-sm font-medium text-text-secondary",
65
66
  children: "Description"
66
- }), /* @__PURE__ */ g("p", {
67
+ }), /* @__PURE__ */ a("p", {
67
68
  className: "text-sm mt-1",
68
69
  children: S.description
69
70
  })] }),
70
- /* @__PURE__ */ g(h, {}),
71
- /* @__PURE__ */ _("div", {
71
+ /* @__PURE__ */ a(_, {}),
72
+ /* @__PURE__ */ o("div", {
72
73
  className: "grid grid-cols-2 gap-4 text-sm",
73
74
  children: [
74
- /* @__PURE__ */ _("div", { children: [/* @__PURE__ */ g("span", {
75
+ /* @__PURE__ */ o("div", { children: [/* @__PURE__ */ a("span", {
75
76
  className: "text-text-secondary",
76
77
  children: "Asset"
77
- }), /* @__PURE__ */ g("p", {
78
+ }), /* @__PURE__ */ a("p", {
78
79
  className: "font-medium",
79
80
  children: S.assetId || "Unassigned"
80
81
  })] }),
81
- /* @__PURE__ */ _("div", { children: [/* @__PURE__ */ g("span", {
82
+ /* @__PURE__ */ o("div", { children: [/* @__PURE__ */ a("span", {
82
83
  className: "text-text-secondary",
83
84
  children: "Type"
84
- }), /* @__PURE__ */ g("p", {
85
+ }), /* @__PURE__ */ a("p", {
85
86
  className: "font-medium",
86
87
  children: S.type
87
88
  })] }),
88
- /* @__PURE__ */ _("div", { children: [/* @__PURE__ */ g("span", {
89
+ /* @__PURE__ */ o("div", { children: [/* @__PURE__ */ a("span", {
89
90
  className: "text-text-secondary",
90
91
  children: "Created"
91
- }), /* @__PURE__ */ g("p", {
92
+ }), /* @__PURE__ */ a("p", {
92
93
  className: "font-medium",
93
94
  children: S.createdAt ? new Date(S.createdAt).toLocaleDateString() : "—"
94
95
  })] })
@@ -96,38 +97,38 @@ function y() {
96
97
  })
97
98
  ]
98
99
  })]
99
- }), /* @__PURE__ */ _(s, { children: [/* @__PURE__ */ g(l, { children: /* @__PURE__ */ g(u, {
100
+ }), /* @__PURE__ */ o(l, { children: [/* @__PURE__ */ a(d, { children: /* @__PURE__ */ a(f, {
100
101
  className: "text-base",
101
102
  children: "Assignment"
102
- }) }), /* @__PURE__ */ g(c, { children: /* @__PURE__ */ _("dl", {
103
+ }) }), /* @__PURE__ */ a(u, { children: /* @__PURE__ */ o("dl", {
103
104
  className: "space-y-3 text-sm",
104
105
  children: [
105
- /* @__PURE__ */ _("div", {
106
+ /* @__PURE__ */ o("div", {
106
107
  className: "flex justify-between",
107
- children: [/* @__PURE__ */ g("dt", {
108
+ children: [/* @__PURE__ */ a("dt", {
108
109
  className: "text-text-secondary",
109
110
  children: "Assigned To"
110
- }), /* @__PURE__ */ g("dd", {
111
+ }), /* @__PURE__ */ a("dd", {
111
112
  className: "text-xs font-medium",
112
113
  children: S.assignedTo
113
114
  })]
114
115
  }),
115
- /* @__PURE__ */ _("div", {
116
+ /* @__PURE__ */ o("div", {
116
117
  className: "flex justify-between",
117
- children: [/* @__PURE__ */ g("dt", {
118
+ children: [/* @__PURE__ */ a("dt", {
118
119
  className: "text-text-secondary",
119
120
  children: "Priority"
120
- }), /* @__PURE__ */ g("dd", { children: /* @__PURE__ */ g(a, {
121
+ }), /* @__PURE__ */ a("dd", { children: /* @__PURE__ */ a(s, {
121
122
  variant: v[S.priority],
122
123
  children: S.priority
123
124
  }) })]
124
125
  }),
125
- /* @__PURE__ */ _("div", {
126
+ /* @__PURE__ */ o("div", {
126
127
  className: "flex justify-between",
127
- children: [/* @__PURE__ */ g("dt", {
128
+ children: [/* @__PURE__ */ a("dt", {
128
129
  className: "text-text-secondary",
129
130
  children: "Status"
130
- }), /* @__PURE__ */ g("dd", { children: /* @__PURE__ */ g(a, {
131
+ }), /* @__PURE__ */ a("dd", { children: /* @__PURE__ */ a(s, {
131
132
  variant: "outline",
132
133
  children: S.status.replace("_", " ")
133
134
  }) })]
@@ -136,13 +137,13 @@ function y() {
136
137
  }) })] })]
137
138
  })
138
139
  ]
139
- }) : /* @__PURE__ */ g("div", {
140
+ }) : /* @__PURE__ */ a("div", {
140
141
  className: "p-6",
141
- children: /* @__PURE__ */ g(p, {
142
+ children: /* @__PURE__ */ a(h, {
142
143
  illustration: "empty-search",
143
144
  title: "Work order not found",
144
145
  description: "This work order may have been completed or removed. Return to the operations hub to find it.",
145
- action: /* @__PURE__ */ g(o, {
146
+ action: /* @__PURE__ */ a(c, {
146
147
  size: "sm",
147
148
  onClick: () => y("/operations/operations-hub"),
148
149
  children: "Back to operations"