@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,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, NextSteps as m, PagePurpose as h, Separator as g } from "@burdenoff/fe-libs/ui";
5
- import { jsx as _, jsxs as v } 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, NextSteps as g, PagePurpose as _, Separator as v } from "@burdenoff/fe-libs/ui";
6
7
  //#region src/assethandler/pages/ItilIncidentDetailPage.tsx
7
8
  var y = {
8
9
  critical: "destructive",
@@ -11,57 +12,57 @@ var y = {
11
12
  low: "secondary"
12
13
  };
13
14
  function b() {
14
- let b = r(), { incidentId: x } = i(), { incidents: S } = e(), C = S.find((e) => e.id === x) ?? S[0];
15
- return C ? /* @__PURE__ */ v("div", {
15
+ let b = t(), { incidentId: x } = i(), { incidents: S } = e(), C = S.find((e) => e.id === x) ?? S[0];
16
+ return C ? /* @__PURE__ */ o("div", {
16
17
  className: "space-y-6 p-6",
17
18
  children: [
18
- /* @__PURE__ */ v("div", {
19
+ /* @__PURE__ */ o("div", {
19
20
  className: "flex items-center justify-between",
20
- children: [/* @__PURE__ */ v("div", {
21
+ children: [/* @__PURE__ */ o("div", {
21
22
  className: "flex items-center gap-4",
22
- children: [/* @__PURE__ */ _(o, {
23
+ children: [/* @__PURE__ */ a(c, {
23
24
  variant: "ghost",
24
25
  size: "icon",
25
26
  onClick: () => b("/itil/incident-management"),
26
- children: /* @__PURE__ */ _(t, { className: "h-4 w-4" })
27
- }), /* @__PURE__ */ v("div", { children: [/* @__PURE__ */ v("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__ */ _("h1", {
31
+ /* @__PURE__ */ a("h1", {
31
32
  className: "text-2xl font-bold",
32
- children: /* @__PURE__ */ _(f, { children: C.id })
33
+ children: /* @__PURE__ */ a(m, { children: C.id })
33
34
  }),
34
- /* @__PURE__ */ _(a, {
35
+ /* @__PURE__ */ a(s, {
35
36
  variant: y[C.priority],
36
37
  children: C.priority
37
38
  }),
38
- /* @__PURE__ */ _(a, {
39
+ /* @__PURE__ */ a(s, {
39
40
  variant: "outline",
40
41
  children: C.status.replace("_", " ")
41
42
  }),
42
- C.slaBreached && /* @__PURE__ */ _(a, {
43
+ C.slaBreached && /* @__PURE__ */ a(s, {
43
44
  variant: "destructive",
44
45
  children: "SLA Breached"
45
46
  })
46
47
  ]
47
- }), /* @__PURE__ */ _("p", {
48
+ }), /* @__PURE__ */ a("p", {
48
49
  className: "text-sm text-text-secondary mt-1",
49
50
  children: C.title
50
51
  })] })]
51
- }), /* @__PURE__ */ v("div", {
52
+ }), /* @__PURE__ */ o("div", {
52
53
  className: "flex gap-2",
53
- children: [/* @__PURE__ */ _(o, {
54
+ children: [/* @__PURE__ */ a(c, {
54
55
  variant: "outline",
55
56
  size: "sm",
56
57
  children: "Escalate"
57
- }), /* @__PURE__ */ v(o, {
58
+ }), /* @__PURE__ */ o(c, {
58
59
  size: "sm",
59
- children: [/* @__PURE__ */ _(n, { className: "mr-2 h-4 w-4" }), "Resolve"]
60
+ children: [/* @__PURE__ */ a(r, { className: "mr-2 h-4 w-4" }), "Resolve"]
60
61
  })]
61
62
  })]
62
63
  }),
63
- /* @__PURE__ */ _(h, { children: "Everything about a single incident in one place — how severe it is, whether it is breaching SLA, and the trail of who is handling it. Use this page to investigate, resolve or escalate." }),
64
- /* @__PURE__ */ _(m, {
64
+ /* @__PURE__ */ a(_, { children: "Everything about a single incident in one place — how severe it is, whether it is breaching SLA, and the trail of who is handling it. Use this page to investigate, resolve or escalate." }),
65
+ /* @__PURE__ */ a(g, {
65
66
  storageKey: "assethandler-incident-detail",
66
67
  steps: [
67
68
  {
@@ -84,110 +85,110 @@ function b() {
84
85
  }
85
86
  ]
86
87
  }),
87
- /* @__PURE__ */ v("div", {
88
+ /* @__PURE__ */ o("div", {
88
89
  className: "grid gap-6 lg:grid-cols-3",
89
- children: [/* @__PURE__ */ v(d, {
90
+ children: [/* @__PURE__ */ o(p, {
90
91
  className: "lg:col-span-2",
91
- children: [/* @__PURE__ */ _(l, {
92
+ children: [/* @__PURE__ */ a(d, {
92
93
  className: "px-0 pt-0",
93
- children: /* @__PURE__ */ _(u, { children: "Incident Details" })
94
- }), /* @__PURE__ */ _(c, {
94
+ children: /* @__PURE__ */ a(f, { children: "Incident Details" })
95
+ }), /* @__PURE__ */ a(u, {
95
96
  className: "space-y-4 px-0 pb-0",
96
- children: /* @__PURE__ */ v("div", { children: [/* @__PURE__ */ _("h4", {
97
+ children: /* @__PURE__ */ o("div", { children: [/* @__PURE__ */ a("h4", {
97
98
  className: "text-sm font-medium text-text-secondary",
98
99
  children: "Description"
99
- }), /* @__PURE__ */ _("p", {
100
+ }), /* @__PURE__ */ a("p", {
100
101
  className: "text-sm mt-1",
101
102
  children: C.description
102
103
  })] })
103
104
  })]
104
- }), /* @__PURE__ */ v("div", {
105
+ }), /* @__PURE__ */ o("div", {
105
106
  className: "space-y-4",
106
- children: [/* @__PURE__ */ v(s, { children: [/* @__PURE__ */ _(l, { children: /* @__PURE__ */ _(u, {
107
+ children: [/* @__PURE__ */ o(l, { children: [/* @__PURE__ */ a(d, { children: /* @__PURE__ */ a(f, {
107
108
  className: "text-base",
108
109
  children: "Properties"
109
- }) }), /* @__PURE__ */ _(c, { children: /* @__PURE__ */ v("dl", {
110
+ }) }), /* @__PURE__ */ a(u, { children: /* @__PURE__ */ o("dl", {
110
111
  className: "space-y-3 text-sm",
111
112
  children: [
112
- /* @__PURE__ */ v("div", {
113
+ /* @__PURE__ */ o("div", {
113
114
  className: "flex justify-between",
114
- children: [/* @__PURE__ */ _("dt", {
115
+ children: [/* @__PURE__ */ a("dt", {
115
116
  className: "text-text-secondary",
116
117
  children: "Category"
117
- }), /* @__PURE__ */ _("dd", {
118
+ }), /* @__PURE__ */ a("dd", {
118
119
  className: "font-medium",
119
120
  children: C.category
120
121
  })]
121
122
  }),
122
- /* @__PURE__ */ v("div", {
123
+ /* @__PURE__ */ o("div", {
123
124
  className: "flex justify-between",
124
- children: [/* @__PURE__ */ _("dt", {
125
+ children: [/* @__PURE__ */ a("dt", {
125
126
  className: "text-text-secondary",
126
127
  children: "Priority"
127
- }), /* @__PURE__ */ _("dd", { children: /* @__PURE__ */ _(a, {
128
+ }), /* @__PURE__ */ a("dd", { children: /* @__PURE__ */ a(s, {
128
129
  variant: y[C.priority],
129
130
  children: C.priority
130
131
  }) })]
131
132
  }),
132
- /* @__PURE__ */ v("div", {
133
+ /* @__PURE__ */ o("div", {
133
134
  className: "flex justify-between",
134
- children: [/* @__PURE__ */ _("dt", {
135
+ children: [/* @__PURE__ */ a("dt", {
135
136
  className: "text-text-secondary",
136
137
  children: "Status"
137
- }), /* @__PURE__ */ _("dd", { children: /* @__PURE__ */ _(a, {
138
+ }), /* @__PURE__ */ a("dd", { children: /* @__PURE__ */ a(s, {
138
139
  variant: "outline",
139
140
  children: C.status.replace("_", " ")
140
141
  }) })]
141
142
  }),
142
- /* @__PURE__ */ _(g, {}),
143
- /* @__PURE__ */ v("div", {
143
+ /* @__PURE__ */ a(v, {}),
144
+ /* @__PURE__ */ o("div", {
144
145
  className: "flex justify-between",
145
- children: [/* @__PURE__ */ _("dt", {
146
+ children: [/* @__PURE__ */ a("dt", {
146
147
  className: "text-text-secondary",
147
148
  children: "Assigned To"
148
- }), /* @__PURE__ */ _("dd", {
149
+ }), /* @__PURE__ */ a("dd", {
149
150
  className: "font-medium text-xs",
150
151
  children: C.assignedTo || "Unassigned"
151
152
  })]
152
153
  }),
153
- /* @__PURE__ */ v("div", {
154
+ /* @__PURE__ */ o("div", {
154
155
  className: "flex justify-between",
155
- children: [/* @__PURE__ */ _("dt", {
156
+ children: [/* @__PURE__ */ a("dt", {
156
157
  className: "text-text-secondary",
157
158
  children: "Reported By"
158
- }), /* @__PURE__ */ _("dd", {
159
+ }), /* @__PURE__ */ a("dd", {
159
160
  className: "text-xs",
160
161
  children: C.reportedBy
161
162
  })]
162
163
  }),
163
- /* @__PURE__ */ _(g, {}),
164
- /* @__PURE__ */ v("div", {
164
+ /* @__PURE__ */ a(v, {}),
165
+ /* @__PURE__ */ o("div", {
165
166
  className: "flex justify-between",
166
- children: [/* @__PURE__ */ _("dt", {
167
+ children: [/* @__PURE__ */ a("dt", {
167
168
  className: "text-text-secondary",
168
169
  children: "Created"
169
- }), /* @__PURE__ */ _("dd", {
170
+ }), /* @__PURE__ */ a("dd", {
170
171
  className: "text-xs",
171
172
  children: new Date(C.createdAt).toLocaleString()
172
173
  })]
173
174
  }),
174
- C.resolvedAt && /* @__PURE__ */ v("div", {
175
+ C.resolvedAt && /* @__PURE__ */ o("div", {
175
176
  className: "flex justify-between",
176
- children: [/* @__PURE__ */ _("dt", {
177
+ children: [/* @__PURE__ */ a("dt", {
177
178
  className: "text-text-secondary",
178
179
  children: "Resolved"
179
- }), /* @__PURE__ */ _("dd", {
180
+ }), /* @__PURE__ */ a("dd", {
180
181
  className: "text-xs",
181
182
  children: new Date(C.resolvedAt).toLocaleString()
182
183
  })]
183
184
  })
184
185
  ]
185
- }) })] }), /* @__PURE__ */ v(s, { children: [/* @__PURE__ */ _(l, { children: /* @__PURE__ */ _(u, {
186
+ }) })] }), /* @__PURE__ */ o(l, { children: [/* @__PURE__ */ a(d, { children: /* @__PURE__ */ a(f, {
186
187
  className: "text-base",
187
188
  children: "SLA Status"
188
- }) }), /* @__PURE__ */ _(c, { children: /* @__PURE__ */ _("div", {
189
+ }) }), /* @__PURE__ */ a(u, { children: /* @__PURE__ */ a("div", {
189
190
  className: `p-3 rounded-lg text-center ${C.slaBreached ? "bg-status-error-bg-subtle text-status-error-text" : "bg-status-success-bg-subtle text-status-success-text"}`,
190
- children: /* @__PURE__ */ _("p", {
191
+ children: /* @__PURE__ */ a("p", {
191
192
  className: "text-lg font-bold",
192
193
  children: C.slaBreached ? "BREACHED" : "WITHIN SLA"
193
194
  })
@@ -195,13 +196,13 @@ function b() {
195
196
  })]
196
197
  })
197
198
  ]
198
- }) : /* @__PURE__ */ _("div", {
199
+ }) : /* @__PURE__ */ a("div", {
199
200
  className: "p-6",
200
- children: /* @__PURE__ */ _(p, {
201
+ children: /* @__PURE__ */ a(h, {
201
202
  illustration: "empty-search",
202
203
  title: "Incident not found",
203
204
  description: "This incident may have been resolved or removed. Head back to incident management to find it.",
204
- action: /* @__PURE__ */ _(o, {
205
+ action: /* @__PURE__ */ a(c, {
205
206
  size: "sm",
206
207
  onClick: () => b("/itil/incident-management"),
207
208
  children: "Back to incidents"
@@ -1 +1 @@
1
- {"version":3,"file":"ItilIncidentDetailPage.js","names":[],"sources":["../../../src/assethandler/pages/ItilIncidentDetailPage.tsx"],"sourcesContent":["import {\n Badge,\n Button,\n Card,\n CardContent,\n CardHeader,\n CardTitle,\n Separator,\n GradientText,\n EmphasisPanel,\n PagePurpose,\n NextSteps,\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 ItilIncidentDetailPage() {\n const navigate = useNavigate();\n const { incidentId } = useParams<{ incidentId: string }>();\n const { incidents } = useAssetHandlerStore();\n const incident = incidents.find((item) => item.id === incidentId) ?? incidents[0];\n\n if (!incident)\n return (\n <div className=\"p-6\">\n <IllustratedEmptyState\n illustration=\"empty-search\"\n title=\"Incident not found\"\n description=\"This incident may have been resolved or removed. Head back to incident management to find it.\"\n action={\n <Button size=\"sm\" onClick={() => navigate('/itil/incident-management')}>\n Back to incidents\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('/itil/incident-management')}>\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>{incident.id}</GradientText>\n </h1>\n <Badge variant={priorityColors[incident.priority]}>{incident.priority}</Badge>\n <Badge variant=\"outline\">{incident.status.replace('_', ' ')}</Badge>\n {incident.slaBreached && <Badge variant=\"destructive\">SLA Breached</Badge>}\n </div>\n <p className=\"text-sm text-text-secondary mt-1\">{incident.title}</p>\n </div>\n </div>\n <div className=\"flex gap-2\">\n <Button variant=\"outline\" size=\"sm\">\n Escalate\n </Button>\n <Button size=\"sm\">\n <CheckCircle className=\"mr-2 h-4 w-4\" />\n Resolve\n </Button>\n </div>\n </div>\n\n <PagePurpose>\n Everything about a single incident in one place — how severe it is, whether it is breaching\n SLA, and the trail of who is handling it. Use this page to investigate, resolve or escalate.\n </PagePurpose>\n\n <NextSteps\n storageKey=\"assethandler-incident-detail\"\n steps={[\n {\n id: 'resolve',\n label: 'Resolve this incident',\n description: 'Record the fix and close it out once service is restored.',\n done: incident.status === 'resolved' || incident.status === 'closed',\n },\n {\n id: 'assets',\n label: 'Inspect affected assets',\n description: 'Open the assets impacted by this incident.',\n onClick: () => navigate('/assets/asset-list'),\n },\n {\n id: 'problems',\n label: 'Open a problem record',\n description: 'If this keeps recurring, investigate the root cause.',\n onClick: () => navigate('/itil/problem-management'),\n },\n ]}\n />\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>Incident 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\">{incident.description}</p>\n </div>\n </CardContent>\n </EmphasisPanel>\n\n <div className=\"space-y-4\">\n <Card>\n <CardHeader>\n <CardTitle className=\"text-base\">Properties</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\">Category</dt>\n <dd className=\"font-medium\">{incident.category}</dd>\n </div>\n <div className=\"flex justify-between\">\n <dt className=\"text-text-secondary\">Priority</dt>\n <dd>\n <Badge variant={priorityColors[incident.priority]}>{incident.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\">{incident.status.replace('_', ' ')}</Badge>\n </dd>\n </div>\n <Separator />\n <div className=\"flex justify-between\">\n <dt className=\"text-text-secondary\">Assigned To</dt>\n <dd className=\"font-medium text-xs\">{incident.assignedTo || 'Unassigned'}</dd>\n </div>\n <div className=\"flex justify-between\">\n <dt className=\"text-text-secondary\">Reported By</dt>\n <dd className=\"text-xs\">{incident.reportedBy}</dd>\n </div>\n <Separator />\n <div className=\"flex justify-between\">\n <dt className=\"text-text-secondary\">Created</dt>\n <dd className=\"text-xs\">{new Date(incident.createdAt).toLocaleString()}</dd>\n </div>\n {incident.resolvedAt && (\n <div className=\"flex justify-between\">\n <dt className=\"text-text-secondary\">Resolved</dt>\n <dd className=\"text-xs\">{new Date(incident.resolvedAt).toLocaleString()}</dd>\n </div>\n )}\n </dl>\n </CardContent>\n </Card>\n\n <Card>\n <CardHeader>\n <CardTitle className=\"text-base\">SLA Status</CardTitle>\n </CardHeader>\n <CardContent>\n <div\n className={`p-3 rounded-lg text-center ${incident.slaBreached ? 'bg-status-error-bg-subtle text-status-error-text' : 'bg-status-success-bg-subtle text-status-success-text'}`}\n >\n <p className=\"text-lg font-bold\">\n {incident.slaBreached ? 'BREACHED' : 'WITHIN SLA'}\n </p>\n </div>\n </CardContent>\n </Card>\n </div>\n </div>\n </div>\n );\n}\n"],"mappings":";;;;;;AAkBA,IAAM,IAAsF;CAC1F,UAAU;CACV,MAAM;CACN,QAAQ;CACR,KAAK;CACN;AAED,SAAgB,IAAyB;CACvC,IAAM,IAAW,GAAa,EACxB,EAAE,kBAAe,GAAmC,EACpD,EAAE,iBAAc,GAAsB,EACtC,IAAW,EAAU,MAAM,MAAS,EAAK,OAAO,EAAW,IAAI,EAAU;AAkB/E,QAhBK,IAiBH,kBAAC,OAAD;EAAK,WAAU;YAAf;GACE,kBAAC,OAAD;IAAK,WAAU;cAAf,CACE,kBAAC,OAAD;KAAK,WAAU;eAAf,CACE,kBAAC,GAAD;MAAQ,SAAQ;MAAQ,MAAK;MAAO,eAAe,EAAS,4BAA4B;gBACtF,kBAAC,GAAD,EAAW,WAAU,WAAY,CAAA;MAC1B,CAAA,EACT,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,OAAD;MAAK,WAAU;gBAAf;OACE,kBAAC,MAAD;QAAI,WAAU;kBACZ,kBAAC,GAAD,EAAA,UAAe,EAAS,IAAkB,CAAA;QACvC,CAAA;OACL,kBAAC,GAAD;QAAO,SAAS,EAAe,EAAS;kBAAY,EAAS;QAAiB,CAAA;OAC9E,kBAAC,GAAD;QAAO,SAAQ;kBAAW,EAAS,OAAO,QAAQ,KAAK,IAAI;QAAS,CAAA;OACnE,EAAS,eAAe,kBAAC,GAAD;QAAO,SAAQ;kBAAc;QAAoB,CAAA;OACtE;SACN,kBAAC,KAAD;MAAG,WAAU;gBAAoC,EAAS;MAAU,CAAA,CAChE,EAAA,CAAA,CACF;QACN,kBAAC,OAAD;KAAK,WAAU;eAAf,CACE,kBAAC,GAAD;MAAQ,SAAQ;MAAU,MAAK;gBAAK;MAE3B,CAAA,EACT,kBAAC,GAAD;MAAQ,MAAK;gBAAb,CACE,kBAAC,GAAD,EAAa,WAAU,gBAAiB,CAAA,EAAA,UAEjC;QACL;OACF;;GAEN,kBAAC,GAAD,EAAA,UAAa,4LAGC,CAAA;GAEd,kBAAC,GAAD;IACE,YAAW;IACX,OAAO;KACL;MACE,IAAI;MACJ,OAAO;MACP,aAAa;MACb,MAAM,EAAS,WAAW,cAAc,EAAS,WAAW;MAC7D;KACD;MACE,IAAI;MACJ,OAAO;MACP,aAAa;MACb,eAAe,EAAS,qBAAqB;MAC9C;KACD;MACE,IAAI;MACJ,OAAO;MACP,aAAa;MACb,eAAe,EAAS,2BAA2B;MACpD;KACF;IACD,CAAA;GAEF,kBAAC,OAAD;IAAK,WAAU;cAAf,CACE,kBAAC,GAAD;KAAe,WAAU;eAAzB,CACE,kBAAC,GAAD;MAAY,WAAU;gBACpB,kBAAC,GAAD,EAAA,UAAW,oBAA4B,CAAA;MAC5B,CAAA,EACb,kBAAC,GAAD;MAAa,WAAU;gBACrB,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,MAAD;OAAI,WAAU;iBAA0C;OAAgB,CAAA,EACxE,kBAAC,KAAD;OAAG,WAAU;iBAAgB,EAAS;OAAgB,CAAA,CAClD,EAAA,CAAA;MACM,CAAA,CACA;QAEhB,kBAAC,OAAD;KAAK,WAAU;eAAf,CACE,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD;MAAW,WAAU;gBAAY;MAAsB,CAAA,EAC5C,CAAA,EACb,kBAAC,GAAD,EAAA,UACE,kBAAC,MAAD;MAAI,WAAU;gBAAd;OACE,kBAAC,OAAD;QAAK,WAAU;kBAAf,CACE,kBAAC,MAAD;SAAI,WAAU;mBAAsB;SAAa,CAAA,EACjD,kBAAC,MAAD;SAAI,WAAU;mBAAe,EAAS;SAAc,CAAA,CAChD;;OACN,kBAAC,OAAD;QAAK,WAAU;kBAAf,CACE,kBAAC,MAAD;SAAI,WAAU;mBAAsB;SAAa,CAAA,EACjD,kBAAC,MAAD,EAAA,UACE,kBAAC,GAAD;SAAO,SAAS,EAAe,EAAS;mBAAY,EAAS;SAAiB,CAAA,EAC3E,CAAA,CACD;;OACN,kBAAC,OAAD;QAAK,WAAU;kBAAf,CACE,kBAAC,MAAD;SAAI,WAAU;mBAAsB;SAAW,CAAA,EAC/C,kBAAC,MAAD,EAAA,UACE,kBAAC,GAAD;SAAO,SAAQ;mBAAW,EAAS,OAAO,QAAQ,KAAK,IAAI;SAAS,CAAA,EACjE,CAAA,CACD;;OACN,kBAAC,GAAD,EAAa,CAAA;OACb,kBAAC,OAAD;QAAK,WAAU;kBAAf,CACE,kBAAC,MAAD;SAAI,WAAU;mBAAsB;SAAgB,CAAA,EACpD,kBAAC,MAAD;SAAI,WAAU;mBAAuB,EAAS,cAAc;SAAkB,CAAA,CAC1E;;OACN,kBAAC,OAAD;QAAK,WAAU;kBAAf,CACE,kBAAC,MAAD;SAAI,WAAU;mBAAsB;SAAgB,CAAA,EACpD,kBAAC,MAAD;SAAI,WAAU;mBAAW,EAAS;SAAgB,CAAA,CAC9C;;OACN,kBAAC,GAAD,EAAa,CAAA;OACb,kBAAC,OAAD;QAAK,WAAU;kBAAf,CACE,kBAAC,MAAD;SAAI,WAAU;mBAAsB;SAAY,CAAA,EAChD,kBAAC,MAAD;SAAI,WAAU;mBAAW,IAAI,KAAK,EAAS,UAAU,CAAC,gBAAgB;SAAM,CAAA,CACxE;;OACL,EAAS,cACR,kBAAC,OAAD;QAAK,WAAU;kBAAf,CACE,kBAAC,MAAD;SAAI,WAAU;mBAAsB;SAAa,CAAA,EACjD,kBAAC,MAAD;SAAI,WAAU;mBAAW,IAAI,KAAK,EAAS,WAAW,CAAC,gBAAgB;SAAM,CAAA,CACzE;;OAEL;SACO,CAAA,CACT,EAAA,CAAA,EAEP,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD;MAAW,WAAU;gBAAY;MAAsB,CAAA,EAC5C,CAAA,EACb,kBAAC,GAAD,EAAA,UACE,kBAAC,OAAD;MACE,WAAW,8BAA8B,EAAS,cAAc,qDAAqD;gBAErH,kBAAC,KAAD;OAAG,WAAU;iBACV,EAAS,cAAc,aAAa;OACnC,CAAA;MACA,CAAA,EACM,CAAA,CACT,EAAA,CAAA,CACH;OACF;;GACF;MArJJ,kBAAC,OAAD;EAAK,WAAU;YACb,kBAAC,GAAD;GACE,cAAa;GACb,OAAM;GACN,aAAY;GACZ,QACE,kBAAC,GAAD;IAAQ,MAAK;IAAK,eAAe,EAAS,4BAA4B;cAAE;IAE/D,CAAA;GAEX,CAAA;EACE,CAAA"}
1
+ {"version":3,"file":"ItilIncidentDetailPage.js","names":[],"sources":["../../../src/assethandler/pages/ItilIncidentDetailPage.tsx"],"sourcesContent":["import { useAssetHandlerNavigate } from '../hooks/useAssetHandlerNavigate';\nimport {\n Badge,\n Button,\n Card,\n CardContent,\n CardHeader,\n CardTitle,\n Separator,\n GradientText,\n EmphasisPanel,\n PagePurpose,\n NextSteps,\n IllustratedEmptyState,\n} from '@burdenoff/fe-libs/ui';\nimport { ArrowLeft, CheckCircle } 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 ItilIncidentDetailPage() {\n const navigate = useAssetHandlerNavigate();\n const { incidentId } = useParams<{ incidentId: string }>();\n const { incidents } = useAssetHandlerStore();\n const incident = incidents.find((item) => item.id === incidentId) ?? incidents[0];\n\n if (!incident)\n return (\n <div className=\"p-6\">\n <IllustratedEmptyState\n illustration=\"empty-search\"\n title=\"Incident not found\"\n description=\"This incident may have been resolved or removed. Head back to incident management to find it.\"\n action={\n <Button size=\"sm\" onClick={() => navigate('/itil/incident-management')}>\n Back to incidents\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('/itil/incident-management')}>\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>{incident.id}</GradientText>\n </h1>\n <Badge variant={priorityColors[incident.priority]}>{incident.priority}</Badge>\n <Badge variant=\"outline\">{incident.status.replace('_', ' ')}</Badge>\n {incident.slaBreached && <Badge variant=\"destructive\">SLA Breached</Badge>}\n </div>\n <p className=\"text-sm text-text-secondary mt-1\">{incident.title}</p>\n </div>\n </div>\n <div className=\"flex gap-2\">\n <Button variant=\"outline\" size=\"sm\">\n Escalate\n </Button>\n <Button size=\"sm\">\n <CheckCircle className=\"mr-2 h-4 w-4\" />\n Resolve\n </Button>\n </div>\n </div>\n\n <PagePurpose>\n Everything about a single incident in one place — how severe it is, whether it is breaching\n SLA, and the trail of who is handling it. Use this page to investigate, resolve or escalate.\n </PagePurpose>\n\n <NextSteps\n storageKey=\"assethandler-incident-detail\"\n steps={[\n {\n id: 'resolve',\n label: 'Resolve this incident',\n description: 'Record the fix and close it out once service is restored.',\n done: incident.status === 'resolved' || incident.status === 'closed',\n },\n {\n id: 'assets',\n label: 'Inspect affected assets',\n description: 'Open the assets impacted by this incident.',\n onClick: () => navigate('/assets/asset-list'),\n },\n {\n id: 'problems',\n label: 'Open a problem record',\n description: 'If this keeps recurring, investigate the root cause.',\n onClick: () => navigate('/itil/problem-management'),\n },\n ]}\n />\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>Incident 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\">{incident.description}</p>\n </div>\n </CardContent>\n </EmphasisPanel>\n\n <div className=\"space-y-4\">\n <Card>\n <CardHeader>\n <CardTitle className=\"text-base\">Properties</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\">Category</dt>\n <dd className=\"font-medium\">{incident.category}</dd>\n </div>\n <div className=\"flex justify-between\">\n <dt className=\"text-text-secondary\">Priority</dt>\n <dd>\n <Badge variant={priorityColors[incident.priority]}>{incident.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\">{incident.status.replace('_', ' ')}</Badge>\n </dd>\n </div>\n <Separator />\n <div className=\"flex justify-between\">\n <dt className=\"text-text-secondary\">Assigned To</dt>\n <dd className=\"font-medium text-xs\">{incident.assignedTo || 'Unassigned'}</dd>\n </div>\n <div className=\"flex justify-between\">\n <dt className=\"text-text-secondary\">Reported By</dt>\n <dd className=\"text-xs\">{incident.reportedBy}</dd>\n </div>\n <Separator />\n <div className=\"flex justify-between\">\n <dt className=\"text-text-secondary\">Created</dt>\n <dd className=\"text-xs\">{new Date(incident.createdAt).toLocaleString()}</dd>\n </div>\n {incident.resolvedAt && (\n <div className=\"flex justify-between\">\n <dt className=\"text-text-secondary\">Resolved</dt>\n <dd className=\"text-xs\">{new Date(incident.resolvedAt).toLocaleString()}</dd>\n </div>\n )}\n </dl>\n </CardContent>\n </Card>\n\n <Card>\n <CardHeader>\n <CardTitle className=\"text-base\">SLA Status</CardTitle>\n </CardHeader>\n <CardContent>\n <div\n className={`p-3 rounded-lg text-center ${incident.slaBreached ? 'bg-status-error-bg-subtle text-status-error-text' : 'bg-status-success-bg-subtle text-status-success-text'}`}\n >\n <p className=\"text-lg font-bold\">\n {incident.slaBreached ? 'BREACHED' : 'WITHIN SLA'}\n </p>\n </div>\n </CardContent>\n </Card>\n </div>\n </div>\n </div>\n );\n}\n"],"mappings":";;;;;;;AAmBA,IAAM,IAAsF;CAC1F,UAAU;CACV,MAAM;CACN,QAAQ;CACR,KAAK;CACN;AAED,SAAgB,IAAyB;CACvC,IAAM,IAAW,GAAyB,EACpC,EAAE,kBAAe,GAAmC,EACpD,EAAE,iBAAc,GAAsB,EACtC,IAAW,EAAU,MAAM,MAAS,EAAK,OAAO,EAAW,IAAI,EAAU;AAkB/E,QAhBK,IAiBH,kBAAC,OAAD;EAAK,WAAU;YAAf;GACE,kBAAC,OAAD;IAAK,WAAU;cAAf,CACE,kBAAC,OAAD;KAAK,WAAU;eAAf,CACE,kBAAC,GAAD;MAAQ,SAAQ;MAAQ,MAAK;MAAO,eAAe,EAAS,4BAA4B;gBACtF,kBAAC,GAAD,EAAW,WAAU,WAAY,CAAA;MAC1B,CAAA,EACT,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,OAAD;MAAK,WAAU;gBAAf;OACE,kBAAC,MAAD;QAAI,WAAU;kBACZ,kBAAC,GAAD,EAAA,UAAe,EAAS,IAAkB,CAAA;QACvC,CAAA;OACL,kBAAC,GAAD;QAAO,SAAS,EAAe,EAAS;kBAAY,EAAS;QAAiB,CAAA;OAC9E,kBAAC,GAAD;QAAO,SAAQ;kBAAW,EAAS,OAAO,QAAQ,KAAK,IAAI;QAAS,CAAA;OACnE,EAAS,eAAe,kBAAC,GAAD;QAAO,SAAQ;kBAAc;QAAoB,CAAA;OACtE;SACN,kBAAC,KAAD;MAAG,WAAU;gBAAoC,EAAS;MAAU,CAAA,CAChE,EAAA,CAAA,CACF;QACN,kBAAC,OAAD;KAAK,WAAU;eAAf,CACE,kBAAC,GAAD;MAAQ,SAAQ;MAAU,MAAK;gBAAK;MAE3B,CAAA,EACT,kBAAC,GAAD;MAAQ,MAAK;gBAAb,CACE,kBAAC,GAAD,EAAa,WAAU,gBAAiB,CAAA,EAAA,UAEjC;QACL;OACF;;GAEN,kBAAC,GAAD,EAAA,UAAa,4LAGC,CAAA;GAEd,kBAAC,GAAD;IACE,YAAW;IACX,OAAO;KACL;MACE,IAAI;MACJ,OAAO;MACP,aAAa;MACb,MAAM,EAAS,WAAW,cAAc,EAAS,WAAW;MAC7D;KACD;MACE,IAAI;MACJ,OAAO;MACP,aAAa;MACb,eAAe,EAAS,qBAAqB;MAC9C;KACD;MACE,IAAI;MACJ,OAAO;MACP,aAAa;MACb,eAAe,EAAS,2BAA2B;MACpD;KACF;IACD,CAAA;GAEF,kBAAC,OAAD;IAAK,WAAU;cAAf,CACE,kBAAC,GAAD;KAAe,WAAU;eAAzB,CACE,kBAAC,GAAD;MAAY,WAAU;gBACpB,kBAAC,GAAD,EAAA,UAAW,oBAA4B,CAAA;MAC5B,CAAA,EACb,kBAAC,GAAD;MAAa,WAAU;gBACrB,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,MAAD;OAAI,WAAU;iBAA0C;OAAgB,CAAA,EACxE,kBAAC,KAAD;OAAG,WAAU;iBAAgB,EAAS;OAAgB,CAAA,CAClD,EAAA,CAAA;MACM,CAAA,CACA;QAEhB,kBAAC,OAAD;KAAK,WAAU;eAAf,CACE,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD;MAAW,WAAU;gBAAY;MAAsB,CAAA,EAC5C,CAAA,EACb,kBAAC,GAAD,EAAA,UACE,kBAAC,MAAD;MAAI,WAAU;gBAAd;OACE,kBAAC,OAAD;QAAK,WAAU;kBAAf,CACE,kBAAC,MAAD;SAAI,WAAU;mBAAsB;SAAa,CAAA,EACjD,kBAAC,MAAD;SAAI,WAAU;mBAAe,EAAS;SAAc,CAAA,CAChD;;OACN,kBAAC,OAAD;QAAK,WAAU;kBAAf,CACE,kBAAC,MAAD;SAAI,WAAU;mBAAsB;SAAa,CAAA,EACjD,kBAAC,MAAD,EAAA,UACE,kBAAC,GAAD;SAAO,SAAS,EAAe,EAAS;mBAAY,EAAS;SAAiB,CAAA,EAC3E,CAAA,CACD;;OACN,kBAAC,OAAD;QAAK,WAAU;kBAAf,CACE,kBAAC,MAAD;SAAI,WAAU;mBAAsB;SAAW,CAAA,EAC/C,kBAAC,MAAD,EAAA,UACE,kBAAC,GAAD;SAAO,SAAQ;mBAAW,EAAS,OAAO,QAAQ,KAAK,IAAI;SAAS,CAAA,EACjE,CAAA,CACD;;OACN,kBAAC,GAAD,EAAa,CAAA;OACb,kBAAC,OAAD;QAAK,WAAU;kBAAf,CACE,kBAAC,MAAD;SAAI,WAAU;mBAAsB;SAAgB,CAAA,EACpD,kBAAC,MAAD;SAAI,WAAU;mBAAuB,EAAS,cAAc;SAAkB,CAAA,CAC1E;;OACN,kBAAC,OAAD;QAAK,WAAU;kBAAf,CACE,kBAAC,MAAD;SAAI,WAAU;mBAAsB;SAAgB,CAAA,EACpD,kBAAC,MAAD;SAAI,WAAU;mBAAW,EAAS;SAAgB,CAAA,CAC9C;;OACN,kBAAC,GAAD,EAAa,CAAA;OACb,kBAAC,OAAD;QAAK,WAAU;kBAAf,CACE,kBAAC,MAAD;SAAI,WAAU;mBAAsB;SAAY,CAAA,EAChD,kBAAC,MAAD;SAAI,WAAU;mBAAW,IAAI,KAAK,EAAS,UAAU,CAAC,gBAAgB;SAAM,CAAA,CACxE;;OACL,EAAS,cACR,kBAAC,OAAD;QAAK,WAAU;kBAAf,CACE,kBAAC,MAAD;SAAI,WAAU;mBAAsB;SAAa,CAAA,EACjD,kBAAC,MAAD;SAAI,WAAU;mBAAW,IAAI,KAAK,EAAS,WAAW,CAAC,gBAAgB;SAAM,CAAA,CACzE;;OAEL;SACO,CAAA,CACT,EAAA,CAAA,EAEP,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD;MAAW,WAAU;gBAAY;MAAsB,CAAA,EAC5C,CAAA,EACb,kBAAC,GAAD,EAAA,UACE,kBAAC,OAAD;MACE,WAAW,8BAA8B,EAAS,cAAc,qDAAqD;gBAErH,kBAAC,KAAD;OAAG,WAAU;iBACV,EAAS,cAAc,aAAa;OACnC,CAAA;MACA,CAAA,EACM,CAAA,CACT,EAAA,CAAA,CACH;OACF;;GACF;MArJJ,kBAAC,OAAD;EAAK,WAAU;YACb,kBAAC,GAAD;GACE,cAAa;GACb,OAAM;GACN,aAAY;GACZ,QACE,kBAAC,GAAD;IAAQ,MAAK;IAAK,eAAe,EAAS,4BAA4B;cAAE;IAE/D,CAAA;GAEX,CAAA;EACE,CAAA"}
@@ -1,8 +1,8 @@
1
1
  import { useAssetHandlerStore as e } from "../store/assethandlerStore.js";
2
2
  import { useMemo as t, useState as n } from "react";
3
3
  import { Plus as r, Search as i } from "lucide-react";
4
- import { Badge as a, Button as o, Card as s, CardContent as c, EmphasisPanel as l, GradientText as u, IllustratedEmptyState as d, Input as f, PagePurpose as p, Select as m, SelectContent as h, SelectItem as g, SelectTrigger as _, SelectValue as v } from "@burdenoff/fe-libs/ui";
5
- import { jsx as y, jsxs as b } from "react/jsx-runtime";
4
+ import { jsx as a, jsxs as o } from "react/jsx-runtime";
5
+ import { Badge as s, Button as c, Card as l, CardContent as u, EmphasisPanel as d, GradientText as f, IllustratedEmptyState as p, Input as m, PagePurpose as h, Select as g, SelectContent as _, SelectItem as v, SelectTrigger as y, SelectValue as b } from "@burdenoff/fe-libs/ui";
6
6
  //#region src/assethandler/pages/ItilIncidentManagementPage.tsx
7
7
  var x = {
8
8
  critical: "destructive",
@@ -20,132 +20,132 @@ function S() {
20
20
  T,
21
21
  D
22
22
  ]);
23
- return /* @__PURE__ */ b("div", {
23
+ return /* @__PURE__ */ o("div", {
24
24
  className: "space-y-6 p-6",
25
25
  children: [
26
- /* @__PURE__ */ b("div", {
26
+ /* @__PURE__ */ o("div", {
27
27
  className: "flex items-center justify-between",
28
- children: [/* @__PURE__ */ b("div", { children: [/* @__PURE__ */ y("h1", {
28
+ children: [/* @__PURE__ */ o("div", { children: [/* @__PURE__ */ a("h1", {
29
29
  className: "text-2xl font-bold",
30
- children: /* @__PURE__ */ y(u, { children: "Incident Management" })
31
- }), /* @__PURE__ */ b("p", {
30
+ children: /* @__PURE__ */ a(f, { children: "Incident Management" })
31
+ }), /* @__PURE__ */ o("p", {
32
32
  className: "text-sm text-text-secondary",
33
33
  children: [S.length, " total incidents"]
34
- })] }), /* @__PURE__ */ b(o, {
34
+ })] }), /* @__PURE__ */ o(c, {
35
35
  size: "sm",
36
- children: [/* @__PURE__ */ y(r, { className: "mr-2 h-4 w-4" }), "New Incident"]
36
+ children: [/* @__PURE__ */ a(r, { className: "mr-2 h-4 w-4" }), "New Incident"]
37
37
  })]
38
38
  }),
39
- /* @__PURE__ */ y(p, { children: "Track every service-disrupting incident from report to resolution. Filter by priority and status to focus on what hurts most, watch SLA timers, and make sure critical issues are assigned and moving — so outages get fixed fast and nothing breaches its commitment." }),
40
- /* @__PURE__ */ b("div", {
39
+ /* @__PURE__ */ a(h, { children: "Track every service-disrupting incident from report to resolution. Filter by priority and status to focus on what hurts most, watch SLA timers, and make sure critical issues are assigned and moving — so outages get fixed fast and nothing breaches its commitment." }),
40
+ /* @__PURE__ */ o("div", {
41
41
  className: "grid gap-4 md:grid-cols-4",
42
42
  children: [
43
- /* @__PURE__ */ b(l, { children: [/* @__PURE__ */ y("p", {
43
+ /* @__PURE__ */ o(d, { children: [/* @__PURE__ */ a("p", {
44
44
  className: "text-sm text-text-secondary",
45
45
  children: "Critical"
46
- }), /* @__PURE__ */ y("p", {
46
+ }), /* @__PURE__ */ a("p", {
47
47
  className: "text-2xl font-bold tabular-nums text-status-error-text",
48
48
  children: S.filter((e) => e.priority === "critical").length
49
49
  })] }),
50
- /* @__PURE__ */ y(s, { children: /* @__PURE__ */ b(c, {
50
+ /* @__PURE__ */ a(l, { children: /* @__PURE__ */ o(u, {
51
51
  className: "pt-4",
52
- children: [/* @__PURE__ */ y("p", {
52
+ children: [/* @__PURE__ */ a("p", {
53
53
  className: "text-sm text-text-secondary",
54
54
  children: "High"
55
- }), /* @__PURE__ */ y("p", {
55
+ }), /* @__PURE__ */ a("p", {
56
56
  className: "text-2xl font-bold text-status-warning-text",
57
57
  children: S.filter((e) => e.priority === "high").length
58
58
  })]
59
59
  }) }),
60
- /* @__PURE__ */ y(s, { children: /* @__PURE__ */ b(c, {
60
+ /* @__PURE__ */ a(l, { children: /* @__PURE__ */ o(u, {
61
61
  className: "pt-4",
62
- children: [/* @__PURE__ */ y("p", {
62
+ children: [/* @__PURE__ */ a("p", {
63
63
  className: "text-sm text-text-secondary",
64
64
  children: "In Progress"
65
- }), /* @__PURE__ */ y("p", {
65
+ }), /* @__PURE__ */ a("p", {
66
66
  className: "text-2xl font-bold tabular-nums",
67
67
  children: S.filter((e) => e.status === "in_progress").length
68
68
  })]
69
69
  }) }),
70
- /* @__PURE__ */ y(s, { children: /* @__PURE__ */ b(c, {
70
+ /* @__PURE__ */ a(l, { children: /* @__PURE__ */ o(u, {
71
71
  className: "pt-4",
72
- children: [/* @__PURE__ */ y("p", {
72
+ children: [/* @__PURE__ */ a("p", {
73
73
  className: "text-sm text-text-secondary",
74
74
  children: "Resolved"
75
- }), /* @__PURE__ */ y("p", {
75
+ }), /* @__PURE__ */ a("p", {
76
76
  className: "text-2xl font-bold text-status-success-text",
77
77
  children: S.filter((e) => e.status === "resolved").length
78
78
  })]
79
79
  }) })
80
80
  ]
81
81
  }),
82
- /* @__PURE__ */ y(s, { children: /* @__PURE__ */ y(c, {
82
+ /* @__PURE__ */ a(l, { children: /* @__PURE__ */ a(u, {
83
83
  className: "pt-4",
84
- children: /* @__PURE__ */ b("div", {
84
+ children: /* @__PURE__ */ o("div", {
85
85
  className: "flex flex-col md:flex-row gap-3",
86
86
  children: [
87
- /* @__PURE__ */ b("div", {
87
+ /* @__PURE__ */ o("div", {
88
88
  className: "relative flex-1",
89
- children: [/* @__PURE__ */ y(i, { className: "absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-text-secondary" }), /* @__PURE__ */ y(f, {
89
+ children: [/* @__PURE__ */ a(i, { className: "absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-text-secondary" }), /* @__PURE__ */ a(m, {
90
90
  placeholder: "Search incidents...",
91
91
  value: C,
92
92
  onChange: (e) => w(e.target.value),
93
93
  className: "pl-9"
94
94
  })]
95
95
  }),
96
- /* @__PURE__ */ b(m, {
96
+ /* @__PURE__ */ o(g, {
97
97
  value: T,
98
98
  onValueChange: E,
99
- children: [/* @__PURE__ */ y(_, {
99
+ children: [/* @__PURE__ */ a(y, {
100
100
  className: "w-[160px]",
101
- children: /* @__PURE__ */ y(v, { placeholder: "Status" })
102
- }), /* @__PURE__ */ b(h, { children: [
103
- /* @__PURE__ */ y(g, {
101
+ children: /* @__PURE__ */ a(b, { placeholder: "Status" })
102
+ }), /* @__PURE__ */ o(_, { children: [
103
+ /* @__PURE__ */ a(v, {
104
104
  value: "all",
105
105
  children: "All Statuses"
106
106
  }),
107
- /* @__PURE__ */ y(g, {
107
+ /* @__PURE__ */ a(v, {
108
108
  value: "new",
109
109
  children: "New"
110
110
  }),
111
- /* @__PURE__ */ y(g, {
111
+ /* @__PURE__ */ a(v, {
112
112
  value: "in_progress",
113
113
  children: "In Progress"
114
114
  }),
115
- /* @__PURE__ */ y(g, {
115
+ /* @__PURE__ */ a(v, {
116
116
  value: "resolved",
117
117
  children: "Resolved"
118
118
  }),
119
- /* @__PURE__ */ y(g, {
119
+ /* @__PURE__ */ a(v, {
120
120
  value: "escalated",
121
121
  children: "Escalated"
122
122
  })
123
123
  ] })]
124
124
  }),
125
- /* @__PURE__ */ b(m, {
125
+ /* @__PURE__ */ o(g, {
126
126
  value: D,
127
127
  onValueChange: O,
128
- children: [/* @__PURE__ */ y(_, {
128
+ children: [/* @__PURE__ */ a(y, {
129
129
  className: "w-[140px]",
130
- children: /* @__PURE__ */ y(v, { placeholder: "Priority" })
131
- }), /* @__PURE__ */ b(h, { children: [
132
- /* @__PURE__ */ y(g, {
130
+ children: /* @__PURE__ */ a(b, { placeholder: "Priority" })
131
+ }), /* @__PURE__ */ o(_, { children: [
132
+ /* @__PURE__ */ a(v, {
133
133
  value: "all",
134
134
  children: "All"
135
135
  }),
136
- /* @__PURE__ */ y(g, {
136
+ /* @__PURE__ */ a(v, {
137
137
  value: "critical",
138
138
  children: "Critical"
139
139
  }),
140
- /* @__PURE__ */ y(g, {
140
+ /* @__PURE__ */ a(v, {
141
141
  value: "high",
142
142
  children: "High"
143
143
  }),
144
- /* @__PURE__ */ y(g, {
144
+ /* @__PURE__ */ a(v, {
145
145
  value: "medium",
146
146
  children: "Medium"
147
147
  }),
148
- /* @__PURE__ */ y(g, {
148
+ /* @__PURE__ */ a(v, {
149
149
  value: "low",
150
150
  children: "Low"
151
151
  })
@@ -154,101 +154,101 @@ function S() {
154
154
  ]
155
155
  })
156
156
  }) }),
157
- k.length === 0 ? /* @__PURE__ */ y(d, {
157
+ k.length === 0 ? /* @__PURE__ */ a(p, {
158
158
  illustration: C || T !== "all" || D !== "all" ? "empty-search" : "empty-notifications",
159
159
  title: "No incidents to show",
160
160
  description: C || T !== "all" || D !== "all" ? "No incidents match your filters — try clearing them." : "When incidents are reported they will be listed here for triage."
161
- }) : /* @__PURE__ */ y(s, { children: /* @__PURE__ */ y(c, {
161
+ }) : /* @__PURE__ */ a(l, { children: /* @__PURE__ */ a(u, {
162
162
  className: "p-0",
163
- children: /* @__PURE__ */ y("div", {
163
+ children: /* @__PURE__ */ a("div", {
164
164
  className: "overflow-x-auto",
165
- children: /* @__PURE__ */ b("table", {
165
+ children: /* @__PURE__ */ o("table", {
166
166
  className: "w-full text-sm",
167
- children: [/* @__PURE__ */ y("thead", { children: /* @__PURE__ */ b("tr", {
167
+ children: [/* @__PURE__ */ a("thead", { children: /* @__PURE__ */ o("tr", {
168
168
  className: "border-b bg-bg-sunken/50",
169
169
  children: [
170
- /* @__PURE__ */ y("th", {
170
+ /* @__PURE__ */ a("th", {
171
171
  className: "text-left p-3 font-medium",
172
172
  children: "ID"
173
173
  }),
174
- /* @__PURE__ */ y("th", {
174
+ /* @__PURE__ */ a("th", {
175
175
  className: "text-left p-3 font-medium",
176
176
  children: "Title"
177
177
  }),
178
- /* @__PURE__ */ y("th", {
178
+ /* @__PURE__ */ a("th", {
179
179
  className: "text-left p-3 font-medium",
180
180
  children: "Category"
181
181
  }),
182
- /* @__PURE__ */ y("th", {
182
+ /* @__PURE__ */ a("th", {
183
183
  className: "text-left p-3 font-medium",
184
184
  children: "Priority"
185
185
  }),
186
- /* @__PURE__ */ y("th", {
186
+ /* @__PURE__ */ a("th", {
187
187
  className: "text-left p-3 font-medium",
188
188
  children: "Status"
189
189
  }),
190
- /* @__PURE__ */ y("th", {
190
+ /* @__PURE__ */ a("th", {
191
191
  className: "text-left p-3 font-medium",
192
192
  children: "Assigned To"
193
193
  }),
194
- /* @__PURE__ */ y("th", {
194
+ /* @__PURE__ */ a("th", {
195
195
  className: "text-left p-3 font-medium",
196
196
  children: "Reported"
197
197
  }),
198
- /* @__PURE__ */ y("th", {
198
+ /* @__PURE__ */ a("th", {
199
199
  className: "text-left p-3 font-medium",
200
200
  children: "SLA"
201
201
  })
202
202
  ]
203
- }) }), /* @__PURE__ */ y("tbody", { children: k.map((e) => /* @__PURE__ */ b("tr", {
203
+ }) }), /* @__PURE__ */ a("tbody", { children: k.map((e) => /* @__PURE__ */ o("tr", {
204
204
  className: "border-b hover:bg-bg-sunken/50 cursor-pointer",
205
205
  children: [
206
- /* @__PURE__ */ y("td", {
206
+ /* @__PURE__ */ a("td", {
207
207
  className: "p-3 font-mono text-xs",
208
208
  children: e.id
209
209
  }),
210
- /* @__PURE__ */ b("td", {
210
+ /* @__PURE__ */ o("td", {
211
211
  className: "p-3",
212
- children: [/* @__PURE__ */ y("p", {
212
+ children: [/* @__PURE__ */ a("p", {
213
213
  className: "font-medium",
214
214
  children: e.title
215
- }), /* @__PURE__ */ y("p", {
215
+ }), /* @__PURE__ */ a("p", {
216
216
  className: "text-xs text-text-secondary truncate max-w-xs",
217
217
  children: e.description
218
218
  })]
219
219
  }),
220
- /* @__PURE__ */ y("td", {
220
+ /* @__PURE__ */ a("td", {
221
221
  className: "p-3 text-xs",
222
222
  children: e.category
223
223
  }),
224
- /* @__PURE__ */ y("td", {
224
+ /* @__PURE__ */ a("td", {
225
225
  className: "p-3",
226
- children: /* @__PURE__ */ y(a, {
226
+ children: /* @__PURE__ */ a(s, {
227
227
  variant: x[e.priority],
228
228
  children: e.priority
229
229
  })
230
230
  }),
231
- /* @__PURE__ */ y("td", {
231
+ /* @__PURE__ */ a("td", {
232
232
  className: "p-3",
233
- children: /* @__PURE__ */ y(a, {
233
+ children: /* @__PURE__ */ a(s, {
234
234
  variant: "outline",
235
235
  children: e.status.replace("_", " ")
236
236
  })
237
237
  }),
238
- /* @__PURE__ */ y("td", {
238
+ /* @__PURE__ */ a("td", {
239
239
  className: "p-3 text-xs",
240
240
  children: e.assignedTo || "Unassigned"
241
241
  }),
242
- /* @__PURE__ */ y("td", {
242
+ /* @__PURE__ */ a("td", {
243
243
  className: "p-3 text-xs",
244
244
  children: new Date(e.createdAt).toLocaleDateString()
245
245
  }),
246
- /* @__PURE__ */ y("td", {
246
+ /* @__PURE__ */ a("td", {
247
247
  className: "p-3",
248
- children: e.slaBreached ? /* @__PURE__ */ y(a, {
248
+ children: e.slaBreached ? /* @__PURE__ */ a(s, {
249
249
  variant: "destructive",
250
250
  children: "Breached"
251
- }) : /* @__PURE__ */ y(a, {
251
+ }) : /* @__PURE__ */ a(s, {
252
252
  variant: "secondary",
253
253
  children: "OK"
254
254
  })