@burdenoff/microfe-assethandler 2026.625.1 → 2026.625.2

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 (113) hide show
  1. package/dist/assethandler/pages/AiPredictionsPage.js +42 -41
  2. package/dist/assethandler/pages/AiPredictionsPage.js.map +1 -1
  3. package/dist/assethandler/pages/AnalyticsPage.js +538 -534
  4. package/dist/assethandler/pages/AnalyticsPage.js.map +1 -1
  5. package/dist/assethandler/pages/AssetsAssetCategoriesPage.js +135 -125
  6. package/dist/assethandler/pages/AssetsAssetCategoriesPage.js.map +1 -1
  7. package/dist/assethandler/pages/AssetsAssetCheckInOutPage.js +90 -92
  8. package/dist/assethandler/pages/AssetsAssetCheckInOutPage.js.map +1 -1
  9. package/dist/assethandler/pages/AssetsAssetCreatePage.js +131 -124
  10. package/dist/assethandler/pages/AssetsAssetCreatePage.js.map +1 -1
  11. package/dist/assethandler/pages/AssetsAssetDetailPage.js +214 -185
  12. package/dist/assethandler/pages/AssetsAssetDetailPage.js.map +1 -1
  13. package/dist/assethandler/pages/AssetsAssetEditPage.js +168 -156
  14. package/dist/assethandler/pages/AssetsAssetEditPage.js.map +1 -1
  15. package/dist/assethandler/pages/AssetsAssetListPage.js +207 -187
  16. package/dist/assethandler/pages/AssetsAssetListPage.js.map +1 -1
  17. package/dist/assethandler/pages/AssetsAssetTrackingPage.js +82 -71
  18. package/dist/assethandler/pages/AssetsAssetTrackingPage.js.map +1 -1
  19. package/dist/assethandler/pages/AuditTrailPage.js +93 -91
  20. package/dist/assethandler/pages/AuditTrailPage.js.map +1 -1
  21. package/dist/assethandler/pages/CmdbBrowserPage.js +32 -33
  22. package/dist/assethandler/pages/CmdbBrowserPage.js.map +1 -1
  23. package/dist/assethandler/pages/DashboardPage.js +157 -126
  24. package/dist/assethandler/pages/DashboardPage.js.map +1 -1
  25. package/dist/assethandler/pages/DigitalTwinPage.js +25 -26
  26. package/dist/assethandler/pages/DigitalTwinPage.js.map +1 -1
  27. package/dist/assethandler/pages/DiscoveryJobsPage.js +50 -50
  28. package/dist/assethandler/pages/DiscoveryJobsPage.js.map +1 -1
  29. package/dist/assethandler/pages/EsgDashboardPage.js +43 -42
  30. package/dist/assethandler/pages/EsgDashboardPage.js.map +1 -1
  31. package/dist/assethandler/pages/FinanceBudgetDetailPage.js +96 -82
  32. package/dist/assethandler/pages/FinanceBudgetDetailPage.js.map +1 -1
  33. package/dist/assethandler/pages/FinanceFinanceHubPage.js +137 -103
  34. package/dist/assethandler/pages/FinanceFinanceHubPage.js.map +1 -1
  35. package/dist/assethandler/pages/FinanceInvoiceDetailPage.js +77 -66
  36. package/dist/assethandler/pages/FinanceInvoiceDetailPage.js.map +1 -1
  37. package/dist/assethandler/pages/IotDevicesPage.js +34 -35
  38. package/dist/assethandler/pages/IotDevicesPage.js.map +1 -1
  39. package/dist/assethandler/pages/ItilChangeDetailPage.js +236 -199
  40. package/dist/assethandler/pages/ItilChangeDetailPage.js.map +1 -1
  41. package/dist/assethandler/pages/ItilChangeManagementPage.js +66 -64
  42. package/dist/assethandler/pages/ItilChangeManagementPage.js.map +1 -1
  43. package/dist/assethandler/pages/ItilIncidentDetailPage.js +237 -200
  44. package/dist/assethandler/pages/ItilIncidentDetailPage.js.map +1 -1
  45. package/dist/assethandler/pages/ItilIncidentManagementPage.js +99 -97
  46. package/dist/assethandler/pages/ItilIncidentManagementPage.js.map +1 -1
  47. package/dist/assethandler/pages/ItilItilhubPage.js +166 -122
  48. package/dist/assethandler/pages/ItilItilhubPage.js.map +1 -1
  49. package/dist/assethandler/pages/ItilProblemDetailPage.js +193 -156
  50. package/dist/assethandler/pages/ItilProblemDetailPage.js.map +1 -1
  51. package/dist/assethandler/pages/ItilProblemManagementPage.js +63 -61
  52. package/dist/assethandler/pages/ItilProblemManagementPage.js.map +1 -1
  53. package/dist/assethandler/pages/KnowledgeBasePage.js +45 -43
  54. package/dist/assethandler/pages/KnowledgeBasePage.js.map +1 -1
  55. package/dist/assethandler/pages/MaintenanceMaintenanceCalendarPage.js +70 -68
  56. package/dist/assethandler/pages/MaintenanceMaintenanceCalendarPage.js.map +1 -1
  57. package/dist/assethandler/pages/MaintenanceMaintenanceSchedulerPage.js +77 -62
  58. package/dist/assethandler/pages/MaintenanceMaintenanceSchedulerPage.js.map +1 -1
  59. package/dist/assethandler/pages/MarketplaceMarketplaceDetailPage.js +162 -151
  60. package/dist/assethandler/pages/MarketplaceMarketplaceDetailPage.js.map +1 -1
  61. package/dist/assethandler/pages/MarketplaceMarketplaceListPage.js +64 -57
  62. package/dist/assethandler/pages/MarketplaceMarketplaceListPage.js.map +1 -1
  63. package/dist/assethandler/pages/MarketplaceMarketplaceOrdersPage.js +125 -108
  64. package/dist/assethandler/pages/MarketplaceMarketplaceOrdersPage.js.map +1 -1
  65. package/dist/assethandler/pages/MarketplaceMarketplaceSellPage.js +67 -61
  66. package/dist/assethandler/pages/MarketplaceMarketplaceSellPage.js.map +1 -1
  67. package/dist/assethandler/pages/OperationsMaintenanceDetailPage.js +203 -166
  68. package/dist/assethandler/pages/OperationsMaintenanceDetailPage.js.map +1 -1
  69. package/dist/assethandler/pages/OperationsOperationsHubPage.js +125 -95
  70. package/dist/assethandler/pages/OperationsOperationsHubPage.js.map +1 -1
  71. package/dist/assethandler/pages/OperationsWorkOrderDetailPage.js +165 -151
  72. package/dist/assethandler/pages/OperationsWorkOrderDetailPage.js.map +1 -1
  73. package/dist/assethandler/pages/PortfolioPortfolioOverviewPage.js +83 -81
  74. package/dist/assethandler/pages/PortfolioPortfolioOverviewPage.js.map +1 -1
  75. package/dist/assethandler/pages/ProvenancePage.js +56 -53
  76. package/dist/assethandler/pages/ProvenancePage.js.map +1 -1
  77. package/dist/assethandler/pages/ReportsReportBuilderPage.js +80 -73
  78. package/dist/assethandler/pages/ReportsReportBuilderPage.js.map +1 -1
  79. package/dist/assethandler/pages/ReportsReportsDashboardPage.js +112 -77
  80. package/dist/assethandler/pages/ReportsReportsDashboardPage.js.map +1 -1
  81. package/dist/assethandler/pages/ReportsReportsListPage.js +119 -103
  82. package/dist/assethandler/pages/ReportsReportsListPage.js.map +1 -1
  83. package/dist/assethandler/pages/SamLicensesPage.js +32 -33
  84. package/dist/assethandler/pages/SamLicensesPage.js.map +1 -1
  85. package/dist/assethandler/pages/SecurityComplianceDetailPage.js +60 -52
  86. package/dist/assethandler/pages/SecurityComplianceDetailPage.js.map +1 -1
  87. package/dist/assethandler/pages/SecurityPolicyDetailPage.js +134 -117
  88. package/dist/assethandler/pages/SecurityPolicyDetailPage.js.map +1 -1
  89. package/dist/assethandler/pages/SecurityScheduleBackupPage.js +63 -57
  90. package/dist/assethandler/pages/SecurityScheduleBackupPage.js.map +1 -1
  91. package/dist/assethandler/pages/SecuritySecurityEventDetailPage.js +131 -117
  92. package/dist/assethandler/pages/SecuritySecurityEventDetailPage.js.map +1 -1
  93. package/dist/assethandler/pages/SecuritySecurityHubPage.js +147 -113
  94. package/dist/assethandler/pages/SecuritySecurityHubPage.js.map +1 -1
  95. package/dist/assethandler/pages/TransactionsTransactionDetailPage.js +235 -218
  96. package/dist/assethandler/pages/TransactionsTransactionDetailPage.js.map +1 -1
  97. package/dist/assethandler/pages/TransactionsTransactionListPage.js +118 -116
  98. package/dist/assethandler/pages/TransactionsTransactionListPage.js.map +1 -1
  99. package/dist/assethandler/pages/UsersPage.js +108 -99
  100. package/dist/assethandler/pages/UsersPage.js.map +1 -1
  101. package/dist/assethandler/pages/UsersUserCreatePage.js +74 -67
  102. package/dist/assethandler/pages/UsersUserCreatePage.js.map +1 -1
  103. package/dist/assethandler/pages/UsersUserManagementHubPage.js +128 -93
  104. package/dist/assethandler/pages/UsersUserManagementHubPage.js.map +1 -1
  105. package/dist/assethandler/pages/WorkflowsWorkflowBuilderPage.js +211 -193
  106. package/dist/assethandler/pages/WorkflowsWorkflowBuilderPage.js.map +1 -1
  107. package/dist/assethandler/pages/WorkflowsWorkflowExecutionsPage.js +88 -86
  108. package/dist/assethandler/pages/WorkflowsWorkflowExecutionsPage.js.map +1 -1
  109. package/dist/assethandler/pages/WorkflowsWorkflowListPage.js +68 -60
  110. package/dist/assethandler/pages/WorkflowsWorkflowListPage.js.map +1 -1
  111. package/dist/assethandler/pages/WorkflowsWorkflowTemplatesPage.js +71 -68
  112. package/dist/assethandler/pages/WorkflowsWorkflowTemplatesPage.js.map +1 -1
  113. package/package.json +2 -2
@@ -1,172 +1,186 @@
1
1
  import { useAssetHandlerStore as e } from "../store/assethandlerStore.js";
2
2
  import { ArrowLeft as t, CheckCircle as n } from "lucide-react";
3
- import { useParams as r } from "react-router-dom";
4
- import { Badge as i, Button as a, Card as o, CardContent as s, CardHeader as c, CardTitle as l, GradientText as u, Separator as d } from "@burdenoff/fe-libs/ui";
5
- import { jsx as f, jsxs as p } from "react/jsx-runtime";
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";
6
6
  //#region src/assethandler/pages/OperationsWorkOrderDetailPage.tsx
7
- var m = {
7
+ var v = {
8
8
  critical: "destructive",
9
9
  high: "destructive",
10
10
  medium: "default",
11
11
  low: "secondary"
12
12
  };
13
- function h() {
14
- let { workOrderId: h } = r(), { workOrders: g } = e(), _ = g.find((e) => e.id === h) ?? g[0];
15
- return _ ? /* @__PURE__ */ p("div", {
13
+ 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", {
16
16
  className: "space-y-6 p-6",
17
- children: [/* @__PURE__ */ p("div", {
18
- className: "flex items-center justify-between",
19
- children: [/* @__PURE__ */ p("div", {
20
- className: "flex items-center gap-4",
21
- children: [/* @__PURE__ */ f(a, {
22
- variant: "ghost",
23
- size: "icon",
24
- children: /* @__PURE__ */ f(t, { className: "h-4 w-4" })
25
- }), /* @__PURE__ */ p("div", { children: [/* @__PURE__ */ p("div", {
26
- className: "flex items-center gap-3",
17
+ children: [
18
+ /* @__PURE__ */ _("div", {
19
+ className: "flex items-center justify-between",
20
+ children: [/* @__PURE__ */ _("div", {
21
+ className: "flex items-center gap-4",
22
+ children: [/* @__PURE__ */ g(o, {
23
+ variant: "ghost",
24
+ size: "icon",
25
+ onClick: () => y("/operations/operations-hub"),
26
+ children: /* @__PURE__ */ g(t, { className: "h-4 w-4" })
27
+ }), /* @__PURE__ */ _("div", { children: [/* @__PURE__ */ _("div", {
28
+ className: "flex items-center gap-3",
29
+ children: [
30
+ /* @__PURE__ */ g("h1", {
31
+ className: "text-2xl font-bold",
32
+ children: /* @__PURE__ */ g(f, { children: S.id })
33
+ }),
34
+ /* @__PURE__ */ g(a, {
35
+ variant: v[S.priority],
36
+ children: S.priority
37
+ }),
38
+ /* @__PURE__ */ g(a, {
39
+ variant: "outline",
40
+ children: S.status.replace("_", " ")
41
+ })
42
+ ]
43
+ }), /* @__PURE__ */ g("p", {
44
+ className: "text-sm text-text-secondary mt-1",
45
+ children: S.title
46
+ })] })]
47
+ }), /* @__PURE__ */ _(o, {
48
+ size: "sm",
49
+ children: [/* @__PURE__ */ g(n, { className: "mr-2 h-4 w-4" }), "Complete"]
50
+ })]
51
+ }),
52
+ /* @__PURE__ */ g(m, { children: "The full brief for a single work order: what needs doing, on which asset, by when, by whom and at what cost. Use this page to track the job from open to complete and keep the asset's maintenance history accurate." }),
53
+ /* @__PURE__ */ _("div", {
54
+ className: "grid gap-6 lg:grid-cols-3",
55
+ children: [/* @__PURE__ */ _(d, {
56
+ className: "lg:col-span-2",
57
+ children: [/* @__PURE__ */ g(l, {
58
+ className: "px-0 pt-0",
59
+ children: /* @__PURE__ */ g(u, { children: "Work Order Details" })
60
+ }), /* @__PURE__ */ _(c, {
61
+ className: "space-y-4 px-0 pb-0",
62
+ children: [
63
+ /* @__PURE__ */ _("div", { children: [/* @__PURE__ */ g("h4", {
64
+ className: "text-sm font-medium text-text-secondary",
65
+ children: "Description"
66
+ }), /* @__PURE__ */ g("p", {
67
+ className: "text-sm mt-1",
68
+ children: S.description
69
+ })] }),
70
+ /* @__PURE__ */ g(h, {}),
71
+ /* @__PURE__ */ _("div", {
72
+ className: "grid grid-cols-2 gap-4 text-sm",
73
+ children: [
74
+ /* @__PURE__ */ _("div", { children: [/* @__PURE__ */ g("span", {
75
+ className: "text-text-secondary",
76
+ children: "Asset"
77
+ }), /* @__PURE__ */ _("p", {
78
+ className: "font-medium",
79
+ children: [
80
+ S.relatedAssetName,
81
+ " (",
82
+ S.relatedAsset,
83
+ ")"
84
+ ]
85
+ })] }),
86
+ /* @__PURE__ */ _("div", { children: [/* @__PURE__ */ g("span", {
87
+ className: "text-text-secondary",
88
+ children: "Type"
89
+ }), /* @__PURE__ */ g("p", {
90
+ className: "font-medium",
91
+ children: S.type
92
+ })] }),
93
+ /* @__PURE__ */ _("div", { children: [/* @__PURE__ */ g("span", {
94
+ className: "text-text-secondary",
95
+ children: "Created"
96
+ }), /* @__PURE__ */ g("p", {
97
+ className: "font-medium",
98
+ children: S.createdAt
99
+ })] }),
100
+ /* @__PURE__ */ _("div", { children: [/* @__PURE__ */ g("span", {
101
+ className: "text-text-secondary",
102
+ children: "Due Date"
103
+ }), /* @__PURE__ */ g("p", {
104
+ className: "font-medium",
105
+ children: S.dueDate
106
+ })] }),
107
+ /* @__PURE__ */ _("div", { children: [/* @__PURE__ */ g("span", {
108
+ className: "text-text-secondary",
109
+ children: "Est. Hours"
110
+ }), /* @__PURE__ */ _("p", {
111
+ className: "font-medium",
112
+ children: [
113
+ S.estimatedHours,
114
+ "h",
115
+ S.actualHours ? ` / ${S.actualHours}h actual` : ""
116
+ ]
117
+ })] }),
118
+ /* @__PURE__ */ _("div", { children: [/* @__PURE__ */ g("span", {
119
+ className: "text-text-secondary",
120
+ children: "Cost"
121
+ }), /* @__PURE__ */ _("p", {
122
+ className: "font-medium",
123
+ children: ["$", S.cost.toLocaleString()]
124
+ })] })
125
+ ]
126
+ })
127
+ ]
128
+ })]
129
+ }), /* @__PURE__ */ _(s, { children: [/* @__PURE__ */ g(l, { children: /* @__PURE__ */ g(u, {
130
+ className: "text-base",
131
+ children: "Assignment"
132
+ }) }), /* @__PURE__ */ g(c, { children: /* @__PURE__ */ _("dl", {
133
+ className: "space-y-3 text-sm",
27
134
  children: [
28
- /* @__PURE__ */ f("h1", {
29
- className: "text-2xl font-bold",
30
- children: /* @__PURE__ */ f(u, { children: _.id })
135
+ /* @__PURE__ */ _("div", {
136
+ className: "flex justify-between",
137
+ children: [/* @__PURE__ */ g("dt", {
138
+ className: "text-text-secondary",
139
+ children: "Assigned To"
140
+ }), /* @__PURE__ */ g("dd", {
141
+ className: "text-xs font-medium",
142
+ children: S.assignedTo
143
+ })]
31
144
  }),
32
- /* @__PURE__ */ f(i, {
33
- variant: m[_.priority],
34
- children: _.priority
145
+ /* @__PURE__ */ _("div", {
146
+ className: "flex justify-between",
147
+ children: [/* @__PURE__ */ g("dt", {
148
+ className: "text-text-secondary",
149
+ children: "Priority"
150
+ }), /* @__PURE__ */ g("dd", { children: /* @__PURE__ */ g(a, {
151
+ variant: v[S.priority],
152
+ children: S.priority
153
+ }) })]
35
154
  }),
36
- /* @__PURE__ */ f(i, {
37
- variant: "outline",
38
- children: _.status.replace("_", " ")
155
+ /* @__PURE__ */ _("div", {
156
+ className: "flex justify-between",
157
+ children: [/* @__PURE__ */ g("dt", {
158
+ className: "text-text-secondary",
159
+ children: "Status"
160
+ }), /* @__PURE__ */ g("dd", { children: /* @__PURE__ */ g(a, {
161
+ variant: "outline",
162
+ children: S.status.replace("_", " ")
163
+ }) })]
39
164
  })
40
165
  ]
41
- }), /* @__PURE__ */ f("p", {
42
- className: "text-sm text-text-secondary mt-1",
43
- children: _.title
44
- })] })]
45
- }), /* @__PURE__ */ p(a, {
46
- size: "sm",
47
- children: [/* @__PURE__ */ f(n, { className: "mr-2 h-4 w-4" }), "Complete"]
48
- })]
49
- }), /* @__PURE__ */ p("div", {
50
- className: "grid gap-6 lg:grid-cols-3",
51
- children: [/* @__PURE__ */ p(o, {
52
- className: "lg:col-span-2",
53
- children: [/* @__PURE__ */ f(c, { children: /* @__PURE__ */ f(l, { children: "Work Order Details" }) }), /* @__PURE__ */ p(s, {
54
- className: "space-y-4",
55
- children: [
56
- /* @__PURE__ */ p("div", { children: [/* @__PURE__ */ f("h4", {
57
- className: "text-sm font-medium text-text-secondary",
58
- children: "Description"
59
- }), /* @__PURE__ */ f("p", {
60
- className: "text-sm mt-1",
61
- children: _.description
62
- })] }),
63
- /* @__PURE__ */ f(d, {}),
64
- /* @__PURE__ */ p("div", {
65
- className: "grid grid-cols-2 gap-4 text-sm",
66
- children: [
67
- /* @__PURE__ */ p("div", { children: [/* @__PURE__ */ f("span", {
68
- className: "text-text-secondary",
69
- children: "Asset"
70
- }), /* @__PURE__ */ p("p", {
71
- className: "font-medium",
72
- children: [
73
- _.relatedAssetName,
74
- " (",
75
- _.relatedAsset,
76
- ")"
77
- ]
78
- })] }),
79
- /* @__PURE__ */ p("div", { children: [/* @__PURE__ */ f("span", {
80
- className: "text-text-secondary",
81
- children: "Type"
82
- }), /* @__PURE__ */ f("p", {
83
- className: "font-medium",
84
- children: _.type
85
- })] }),
86
- /* @__PURE__ */ p("div", { children: [/* @__PURE__ */ f("span", {
87
- className: "text-text-secondary",
88
- children: "Created"
89
- }), /* @__PURE__ */ f("p", {
90
- className: "font-medium",
91
- children: _.createdAt
92
- })] }),
93
- /* @__PURE__ */ p("div", { children: [/* @__PURE__ */ f("span", {
94
- className: "text-text-secondary",
95
- children: "Due Date"
96
- }), /* @__PURE__ */ f("p", {
97
- className: "font-medium",
98
- children: _.dueDate
99
- })] }),
100
- /* @__PURE__ */ p("div", { children: [/* @__PURE__ */ f("span", {
101
- className: "text-text-secondary",
102
- children: "Est. Hours"
103
- }), /* @__PURE__ */ p("p", {
104
- className: "font-medium",
105
- children: [
106
- _.estimatedHours,
107
- "h",
108
- _.actualHours ? ` / ${_.actualHours}h actual` : ""
109
- ]
110
- })] }),
111
- /* @__PURE__ */ p("div", { children: [/* @__PURE__ */ f("span", {
112
- className: "text-text-secondary",
113
- children: "Cost"
114
- }), /* @__PURE__ */ p("p", {
115
- className: "font-medium",
116
- children: ["$", _.cost.toLocaleString()]
117
- })] })
118
- ]
119
- })
120
- ]
121
- })]
122
- }), /* @__PURE__ */ p(o, { children: [/* @__PURE__ */ f(c, { children: /* @__PURE__ */ f(l, {
123
- className: "text-base",
124
- children: "Assignment"
125
- }) }), /* @__PURE__ */ f(s, { children: /* @__PURE__ */ p("dl", {
126
- className: "space-y-3 text-sm",
127
- children: [
128
- /* @__PURE__ */ p("div", {
129
- className: "flex justify-between",
130
- children: [/* @__PURE__ */ f("dt", {
131
- className: "text-text-secondary",
132
- children: "Assigned To"
133
- }), /* @__PURE__ */ f("dd", {
134
- className: "text-xs font-medium",
135
- children: _.assignedTo
136
- })]
137
- }),
138
- /* @__PURE__ */ p("div", {
139
- className: "flex justify-between",
140
- children: [/* @__PURE__ */ f("dt", {
141
- className: "text-text-secondary",
142
- children: "Priority"
143
- }), /* @__PURE__ */ f("dd", { children: /* @__PURE__ */ f(i, {
144
- variant: m[_.priority],
145
- children: _.priority
146
- }) })]
147
- }),
148
- /* @__PURE__ */ p("div", {
149
- className: "flex justify-between",
150
- children: [/* @__PURE__ */ f("dt", {
151
- className: "text-text-secondary",
152
- children: "Status"
153
- }), /* @__PURE__ */ f("dd", { children: /* @__PURE__ */ f(i, {
154
- variant: "outline",
155
- children: _.status.replace("_", " ")
156
- }) })]
157
- })
158
- ]
159
- }) })] })]
160
- })]
161
- }) : /* @__PURE__ */ f("div", {
166
+ }) })] })]
167
+ })
168
+ ]
169
+ }) : /* @__PURE__ */ g("div", {
162
170
  className: "p-6",
163
- children: /* @__PURE__ */ f("p", {
164
- className: "text-text-secondary",
165
- children: "Work order not found."
171
+ children: /* @__PURE__ */ g(p, {
172
+ illustration: "empty-search",
173
+ title: "Work order not found",
174
+ description: "This work order may have been completed or removed. Return to the operations hub to find it.",
175
+ action: /* @__PURE__ */ g(o, {
176
+ size: "sm",
177
+ onClick: () => y("/operations/operations-hub"),
178
+ children: "Back to operations"
179
+ })
166
180
  })
167
181
  });
168
182
  }
169
183
  //#endregion
170
- export { h as OperationsWorkOrderDetailPage };
184
+ export { y as OperationsWorkOrderDetailPage };
171
185
 
172
186
  //# sourceMappingURL=OperationsWorkOrderDetailPage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"OperationsWorkOrderDetailPage.js","names":[],"sources":["../../../src/assethandler/pages/OperationsWorkOrderDetailPage.tsx"],"sourcesContent":["import {\n Badge,\n Button,\n Card,\n CardContent,\n CardHeader,\n CardTitle,\n Separator,\n GradientText,\n} from '@burdenoff/fe-libs/ui';\nimport { ArrowLeft, CheckCircle, Clock } from 'lucide-react';\nimport { useParams } 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 OperationsWorkOrderDetailPage() {\n const { workOrderId } = useParams<{ workOrderId: string }>();\n const { workOrders } = useAssetHandlerStore();\n const wo = workOrders.find((item) => item.id === workOrderId) ?? workOrders[0];\n\n if (!wo)\n return (\n <div className=\"p-6\">\n <p className=\"text-text-secondary\">Work order not found.</p>\n </div>\n );\n\n return (\n <div className=\"space-y-6 p-6\">\n <div className=\"flex items-center justify-between\">\n <div className=\"flex items-center gap-4\">\n <Button variant=\"ghost\" size=\"icon\">\n <ArrowLeft className=\"h-4 w-4\" />\n </Button>\n <div>\n <div className=\"flex items-center gap-3\">\n <h1 className=\"text-2xl font-bold\">\n <GradientText>{wo.id}</GradientText>\n </h1>\n <Badge variant={priorityColors[wo.priority]}>{wo.priority}</Badge>\n <Badge variant=\"outline\">{wo.status.replace('_', ' ')}</Badge>\n </div>\n <p className=\"text-sm text-text-secondary mt-1\">{wo.title}</p>\n </div>\n </div>\n <Button size=\"sm\">\n <CheckCircle className=\"mr-2 h-4 w-4\" />\n Complete\n </Button>\n </div>\n\n <div className=\"grid gap-6 lg:grid-cols-3\">\n <Card className=\"lg:col-span-2\">\n <CardHeader>\n <CardTitle>Work Order Details</CardTitle>\n </CardHeader>\n <CardContent className=\"space-y-4\">\n <div>\n <h4 className=\"text-sm font-medium text-text-secondary\">Description</h4>\n <p className=\"text-sm mt-1\">{wo.description}</p>\n </div>\n <Separator />\n <div className=\"grid grid-cols-2 gap-4 text-sm\">\n <div>\n <span className=\"text-text-secondary\">Asset</span>\n <p className=\"font-medium\">\n {wo.relatedAssetName} ({wo.relatedAsset})\n </p>\n </div>\n <div>\n <span className=\"text-text-secondary\">Type</span>\n <p className=\"font-medium\">{wo.type}</p>\n </div>\n <div>\n <span className=\"text-text-secondary\">Created</span>\n <p className=\"font-medium\">{wo.createdAt}</p>\n </div>\n <div>\n <span className=\"text-text-secondary\">Due Date</span>\n <p className=\"font-medium\">{wo.dueDate}</p>\n </div>\n <div>\n <span className=\"text-text-secondary\">Est. Hours</span>\n <p className=\"font-medium\">\n {wo.estimatedHours}h{wo.actualHours ? ` / ${wo.actualHours}h actual` : ''}\n </p>\n </div>\n <div>\n <span className=\"text-text-secondary\">Cost</span>\n <p className=\"font-medium\">${wo.cost.toLocaleString()}</p>\n </div>\n </div>\n </CardContent>\n </Card>\n\n <Card>\n <CardHeader>\n <CardTitle className=\"text-base\">Assignment</CardTitle>\n </CardHeader>\n <CardContent>\n <dl className=\"space-y-3 text-sm\">\n <div className=\"flex justify-between\">\n <dt className=\"text-text-secondary\">Assigned To</dt>\n <dd className=\"text-xs font-medium\">{wo.assignedTo}</dd>\n </div>\n <div className=\"flex justify-between\">\n <dt className=\"text-text-secondary\">Priority</dt>\n <dd>\n <Badge variant={priorityColors[wo.priority]}>{wo.priority}</Badge>\n </dd>\n </div>\n <div className=\"flex justify-between\">\n <dt className=\"text-text-secondary\">Status</dt>\n <dd>\n <Badge variant=\"outline\">{wo.status.replace('_', ' ')}</Badge>\n </dd>\n </div>\n </dl>\n </CardContent>\n </Card>\n </div>\n </div>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"OperationsWorkOrderDetailPage.js","names":[],"sources":["../../../src/assethandler/pages/OperationsWorkOrderDetailPage.tsx"],"sourcesContent":["import {\n Badge,\n Button,\n Card,\n CardContent,\n CardHeader,\n CardTitle,\n Separator,\n GradientText,\n EmphasisPanel,\n PagePurpose,\n IllustratedEmptyState,\n} from '@burdenoff/fe-libs/ui';\nimport { ArrowLeft, CheckCircle } from 'lucide-react';\nimport { useNavigate, useParams } 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 OperationsWorkOrderDetailPage() {\n const navigate = useNavigate();\n const { workOrderId } = useParams<{ workOrderId: string }>();\n const { workOrders } = useAssetHandlerStore();\n const wo = workOrders.find((item) => item.id === workOrderId) ?? workOrders[0];\n\n if (!wo)\n return (\n <div className=\"p-6\">\n <IllustratedEmptyState\n illustration=\"empty-search\"\n title=\"Work order not found\"\n description=\"This work order may have been completed or removed. Return to the operations hub to find it.\"\n action={\n <Button size=\"sm\" onClick={() => navigate('/operations/operations-hub')}>\n Back to operations\n </Button>\n }\n />\n </div>\n );\n\n return (\n <div className=\"space-y-6 p-6\">\n <div className=\"flex items-center justify-between\">\n <div className=\"flex items-center gap-4\">\n <Button variant=\"ghost\" size=\"icon\" onClick={() => navigate('/operations/operations-hub')}>\n <ArrowLeft className=\"h-4 w-4\" />\n </Button>\n <div>\n <div className=\"flex items-center gap-3\">\n <h1 className=\"text-2xl font-bold\">\n <GradientText>{wo.id}</GradientText>\n </h1>\n <Badge variant={priorityColors[wo.priority]}>{wo.priority}</Badge>\n <Badge variant=\"outline\">{wo.status.replace('_', ' ')}</Badge>\n </div>\n <p className=\"text-sm text-text-secondary mt-1\">{wo.title}</p>\n </div>\n </div>\n <Button size=\"sm\">\n <CheckCircle className=\"mr-2 h-4 w-4\" />\n Complete\n </Button>\n </div>\n\n <PagePurpose>\n The full brief for a single work order: what needs doing, on which asset, by when, by whom\n and at what cost. Use this page to track the job from open to complete and keep the asset&apos;s\n maintenance history accurate.\n </PagePurpose>\n\n <div className=\"grid gap-6 lg:grid-cols-3\">\n <EmphasisPanel className=\"lg:col-span-2\">\n <CardHeader className=\"px-0 pt-0\">\n <CardTitle>Work Order Details</CardTitle>\n </CardHeader>\n <CardContent className=\"space-y-4 px-0 pb-0\">\n <div>\n <h4 className=\"text-sm font-medium text-text-secondary\">Description</h4>\n <p className=\"text-sm mt-1\">{wo.description}</p>\n </div>\n <Separator />\n <div className=\"grid grid-cols-2 gap-4 text-sm\">\n <div>\n <span className=\"text-text-secondary\">Asset</span>\n <p className=\"font-medium\">\n {wo.relatedAssetName} ({wo.relatedAsset})\n </p>\n </div>\n <div>\n <span className=\"text-text-secondary\">Type</span>\n <p className=\"font-medium\">{wo.type}</p>\n </div>\n <div>\n <span className=\"text-text-secondary\">Created</span>\n <p className=\"font-medium\">{wo.createdAt}</p>\n </div>\n <div>\n <span className=\"text-text-secondary\">Due Date</span>\n <p className=\"font-medium\">{wo.dueDate}</p>\n </div>\n <div>\n <span className=\"text-text-secondary\">Est. Hours</span>\n <p className=\"font-medium\">\n {wo.estimatedHours}h{wo.actualHours ? ` / ${wo.actualHours}h actual` : ''}\n </p>\n </div>\n <div>\n <span className=\"text-text-secondary\">Cost</span>\n <p className=\"font-medium\">${wo.cost.toLocaleString()}</p>\n </div>\n </div>\n </CardContent>\n </EmphasisPanel>\n\n <Card>\n <CardHeader>\n <CardTitle className=\"text-base\">Assignment</CardTitle>\n </CardHeader>\n <CardContent>\n <dl className=\"space-y-3 text-sm\">\n <div className=\"flex justify-between\">\n <dt className=\"text-text-secondary\">Assigned To</dt>\n <dd className=\"text-xs font-medium\">{wo.assignedTo}</dd>\n </div>\n <div className=\"flex justify-between\">\n <dt className=\"text-text-secondary\">Priority</dt>\n <dd>\n <Badge variant={priorityColors[wo.priority]}>{wo.priority}</Badge>\n </dd>\n </div>\n <div className=\"flex justify-between\">\n <dt className=\"text-text-secondary\">Status</dt>\n <dd>\n <Badge variant=\"outline\">{wo.status.replace('_', ' ')}</Badge>\n </dd>\n </div>\n </dl>\n </CardContent>\n </Card>\n </div>\n </div>\n );\n}\n"],"mappings":"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"}