@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,23 +1,23 @@
1
1
  import { useAssetHandlerStore as e } from "../store/assethandlerStore.js";
2
2
  import { ArrowLeft as t, Building as n, Calendar as r, CheckCircle2 as i, DollarSign as a, FileText as o, Package as s, Printer as c, User as l, XCircle as u } from "lucide-react";
3
- import { useParams as d } from "react-router-dom";
4
- import { Badge as f, Button as p, Card as m, CardContent as h, CardHeader as g, CardTitle as _, GradientText as v, Separator as y } from "@burdenoff/fe-libs/ui";
5
- import { jsx as b, jsxs as x } from "react/jsx-runtime";
3
+ import { useNavigate as d, useParams as f } from "react-router-dom";
4
+ import { Badge as p, Button as m, Card as h, CardContent as g, CardHeader as _, CardTitle as v, EmphasisPanel as y, GradientText as b, IllustratedEmptyState as x, PagePurpose as S, Separator as C } from "@burdenoff/fe-libs/ui";
5
+ import { jsx as w, jsxs as T } from "react/jsx-runtime";
6
6
  //#region src/assethandler/pages/TransactionsTransactionDetailPage.tsx
7
- var S = {
7
+ var E = {
8
8
  pending: "outline",
9
9
  approved: "default",
10
10
  completed: "secondary",
11
11
  rejected: "destructive",
12
12
  cancelled: "outline"
13
- }, C = {
13
+ }, D = {
14
14
  purchase: "default",
15
15
  lease: "secondary",
16
16
  disposal: "destructive",
17
17
  transfer: "outline",
18
18
  maintenance: "secondary",
19
19
  depreciation: "outline"
20
- }, w = [
20
+ }, O = [
21
21
  {
22
22
  status: "Created",
23
23
  date: "2026-01-15T10:30:00Z",
@@ -39,243 +39,260 @@ var S = {
39
39
  actor: "Finance System"
40
40
  }
41
41
  ];
42
- function T() {
43
- let { transactionId: T } = d(), { transactions: E } = e(), D = E.find((e) => e.id === T) ?? E[0];
44
- return D ? /* @__PURE__ */ x("div", {
42
+ function k() {
43
+ let k = d(), { transactionId: A } = f(), { transactions: j } = e(), M = j.find((e) => e.id === A) ?? j[0];
44
+ return M ? /* @__PURE__ */ T("div", {
45
45
  className: "space-y-6 p-6 max-w-5xl",
46
- children: [/* @__PURE__ */ x("div", {
47
- className: "flex items-center justify-between",
48
- children: [/* @__PURE__ */ x("div", {
49
- className: "flex items-center gap-3",
50
- children: [/* @__PURE__ */ b(p, {
51
- variant: "outline",
52
- size: "sm",
53
- children: /* @__PURE__ */ b(t, { className: "h-4 w-4" })
54
- }), /* @__PURE__ */ x("div", { children: [/* @__PURE__ */ x("div", {
55
- className: "flex items-center gap-2",
46
+ children: [
47
+ /* @__PURE__ */ T("div", {
48
+ className: "flex items-center justify-between",
49
+ children: [/* @__PURE__ */ T("div", {
50
+ className: "flex items-center gap-3",
51
+ children: [/* @__PURE__ */ w(m, {
52
+ variant: "outline",
53
+ size: "sm",
54
+ onClick: () => k("/transactions/transaction-list"),
55
+ children: /* @__PURE__ */ w(t, { className: "h-4 w-4" })
56
+ }), /* @__PURE__ */ T("div", { children: [/* @__PURE__ */ T("div", {
57
+ className: "flex items-center gap-2",
58
+ children: [
59
+ /* @__PURE__ */ w("h1", {
60
+ className: "text-2xl font-semibold",
61
+ children: /* @__PURE__ */ w(b, { children: M.id })
62
+ }),
63
+ /* @__PURE__ */ w(p, {
64
+ variant: E[M.status],
65
+ children: M.status
66
+ }),
67
+ /* @__PURE__ */ w(p, {
68
+ variant: D[M.type],
69
+ children: M.type
70
+ })
71
+ ]
72
+ }), /* @__PURE__ */ w("p", {
73
+ className: "text-sm text-text-secondary",
74
+ children: M.description
75
+ })] })]
76
+ }), /* @__PURE__ */ T("div", {
77
+ className: "flex gap-2",
56
78
  children: [
57
- /* @__PURE__ */ b("h1", {
58
- className: "text-2xl font-semibold",
59
- children: /* @__PURE__ */ b(v, { children: D.id })
79
+ /* @__PURE__ */ T(m, {
80
+ variant: "outline",
81
+ size: "sm",
82
+ children: [/* @__PURE__ */ w(c, { className: "mr-2 h-4 w-4" }), "Print"]
60
83
  }),
61
- /* @__PURE__ */ b(f, {
62
- variant: S[D.status],
63
- children: D.status
84
+ /* @__PURE__ */ T(m, {
85
+ variant: "outline",
86
+ size: "sm",
87
+ children: [/* @__PURE__ */ w(i, { className: "mr-2 h-4 w-4" }), "Approve"]
64
88
  }),
65
- /* @__PURE__ */ b(f, {
66
- variant: C[D.type],
67
- children: D.type
89
+ /* @__PURE__ */ T(m, {
90
+ variant: "destructive",
91
+ size: "sm",
92
+ children: [/* @__PURE__ */ w(u, { className: "mr-2 h-4 w-4" }), "Reject"]
68
93
  })
69
94
  ]
70
- }), /* @__PURE__ */ b("p", {
71
- className: "text-sm text-text-secondary",
72
- children: D.description
73
- })] })]
74
- }), /* @__PURE__ */ x("div", {
75
- className: "flex gap-2",
95
+ })]
96
+ }),
97
+ /* @__PURE__ */ w(S, { children: "The complete record of a single financial transaction tied to your assets — what it was for, how much, against which budget and asset, and its approval timeline. Use this page to verify, approve or reject a transaction with a full audit trail." }),
98
+ /* @__PURE__ */ T("div", {
99
+ className: "grid gap-6 md:grid-cols-2",
76
100
  children: [
77
- /* @__PURE__ */ x(p, {
78
- variant: "outline",
79
- size: "sm",
80
- children: [/* @__PURE__ */ b(c, { className: "mr-2 h-4 w-4" }), "Print"]
81
- }),
82
- /* @__PURE__ */ x(p, {
83
- variant: "outline",
84
- size: "sm",
85
- children: [/* @__PURE__ */ b(i, { className: "mr-2 h-4 w-4" }), "Approve"]
86
- }),
87
- /* @__PURE__ */ x(p, {
88
- variant: "destructive",
89
- size: "sm",
90
- children: [/* @__PURE__ */ b(u, { className: "mr-2 h-4 w-4" }), "Reject"]
91
- })
92
- ]
93
- })]
94
- }), /* @__PURE__ */ x("div", {
95
- className: "grid gap-6 md:grid-cols-2",
96
- children: [
97
- /* @__PURE__ */ x(m, { children: [/* @__PURE__ */ b(g, { children: /* @__PURE__ */ x(_, {
98
- className: "flex items-center gap-2",
99
- children: [/* @__PURE__ */ b(o, { className: "h-5 w-5" }), "Transaction Information"]
100
- }) }), /* @__PURE__ */ x(h, {
101
- className: "space-y-4",
102
- children: [
103
- /* @__PURE__ */ x("div", {
104
- className: "grid grid-cols-2 gap-4",
105
- children: [
106
- /* @__PURE__ */ x("div", { children: [/* @__PURE__ */ b("p", {
107
- className: "text-sm text-text-secondary",
108
- children: "Transaction ID"
109
- }), /* @__PURE__ */ b("p", {
110
- className: "font-mono font-medium",
111
- children: D.id
112
- })] }),
113
- /* @__PURE__ */ x("div", { children: [/* @__PURE__ */ b("p", {
114
- className: "text-sm text-text-secondary",
115
- children: "Type"
116
- }), /* @__PURE__ */ b(f, {
117
- variant: C[D.type],
118
- children: D.type
119
- })] }),
120
- /* @__PURE__ */ x("div", { children: [/* @__PURE__ */ b("p", {
101
+ /* @__PURE__ */ T(h, { children: [/* @__PURE__ */ w(_, { children: /* @__PURE__ */ T(v, {
102
+ className: "flex items-center gap-2",
103
+ children: [/* @__PURE__ */ w(o, { className: "h-5 w-5" }), "Transaction Information"]
104
+ }) }), /* @__PURE__ */ T(g, {
105
+ className: "space-y-4",
106
+ children: [
107
+ /* @__PURE__ */ T("div", {
108
+ className: "grid grid-cols-2 gap-4",
109
+ children: [
110
+ /* @__PURE__ */ T("div", { children: [/* @__PURE__ */ w("p", {
111
+ className: "text-sm text-text-secondary",
112
+ children: "Transaction ID"
113
+ }), /* @__PURE__ */ w("p", {
114
+ className: "font-mono font-medium",
115
+ children: M.id
116
+ })] }),
117
+ /* @__PURE__ */ T("div", { children: [/* @__PURE__ */ w("p", {
118
+ className: "text-sm text-text-secondary",
119
+ children: "Type"
120
+ }), /* @__PURE__ */ w(p, {
121
+ variant: D[M.type],
122
+ children: M.type
123
+ })] }),
124
+ /* @__PURE__ */ T("div", { children: [/* @__PURE__ */ w("p", {
125
+ className: "text-sm text-text-secondary",
126
+ children: "Category"
127
+ }), /* @__PURE__ */ w("p", {
128
+ className: "font-medium",
129
+ children: M.category
130
+ })] }),
131
+ /* @__PURE__ */ T("div", { children: [/* @__PURE__ */ w("p", {
132
+ className: "text-sm text-text-secondary",
133
+ children: "Status"
134
+ }), /* @__PURE__ */ w(p, {
135
+ variant: E[M.status],
136
+ children: M.status
137
+ })] })
138
+ ]
139
+ }),
140
+ /* @__PURE__ */ w(C, {}),
141
+ /* @__PURE__ */ T("div", { children: [/* @__PURE__ */ w("p", {
142
+ className: "text-sm text-text-secondary",
143
+ children: "Description"
144
+ }), /* @__PURE__ */ w("p", {
145
+ className: "mt-1",
146
+ children: M.description
147
+ })] })
148
+ ]
149
+ })] }),
150
+ /* @__PURE__ */ T(y, { children: [/* @__PURE__ */ w(_, {
151
+ className: "px-0 pt-0",
152
+ children: /* @__PURE__ */ T(v, {
153
+ className: "flex items-center gap-2",
154
+ children: [/* @__PURE__ */ w(a, { className: "h-5 w-5" }), "Financial Details"]
155
+ })
156
+ }), /* @__PURE__ */ T(g, {
157
+ className: "space-y-4 px-0 pb-0",
158
+ children: [
159
+ /* @__PURE__ */ T("div", {
160
+ className: "grid grid-cols-2 gap-4",
161
+ children: [
162
+ /* @__PURE__ */ T("div", { children: [/* @__PURE__ */ w("p", {
163
+ className: "text-sm text-text-secondary",
164
+ children: "Amount"
165
+ }), /* @__PURE__ */ w("p", {
166
+ className: `text-2xl font-bold ${M.amount < 0 ? "text-status-error-text" : ""}`,
167
+ children: ((e) => Math.abs(e).toLocaleString("en-US", {
168
+ style: "currency",
169
+ currency: "USD"
170
+ }))(M.amount)
171
+ })] }),
172
+ /* @__PURE__ */ T("div", { children: [/* @__PURE__ */ w("p", {
173
+ className: "text-sm text-text-secondary",
174
+ children: "Currency"
175
+ }), /* @__PURE__ */ w("p", {
176
+ className: "font-medium",
177
+ children: M.currency
178
+ })] }),
179
+ M.poNumber && /* @__PURE__ */ T("div", { children: [/* @__PURE__ */ w("p", {
180
+ className: "text-sm text-text-secondary",
181
+ children: "PO Number"
182
+ }), /* @__PURE__ */ w("p", {
183
+ className: "font-mono font-medium",
184
+ children: M.poNumber
185
+ })] }),
186
+ M.invoiceNumber && /* @__PURE__ */ T("div", { children: [/* @__PURE__ */ w("p", {
187
+ className: "text-sm text-text-secondary",
188
+ children: "Invoice Number"
189
+ }), /* @__PURE__ */ w("p", {
190
+ className: "font-mono font-medium",
191
+ children: M.invoiceNumber
192
+ })] })
193
+ ]
194
+ }),
195
+ /* @__PURE__ */ w(C, {}),
196
+ /* @__PURE__ */ T("div", {
197
+ className: "grid grid-cols-2 gap-4",
198
+ children: [M.approvedBy && /* @__PURE__ */ T("div", { children: [/* @__PURE__ */ w("p", {
121
199
  className: "text-sm text-text-secondary",
122
- children: "Category"
123
- }), /* @__PURE__ */ b("p", {
124
- className: "font-medium",
125
- children: D.category
126
- })] }),
127
- /* @__PURE__ */ x("div", { children: [/* @__PURE__ */ b("p", {
200
+ children: "Approved By"
201
+ }), /* @__PURE__ */ T("div", {
202
+ className: "flex items-center gap-1 mt-1",
203
+ children: [/* @__PURE__ */ w(l, { className: "h-4 w-4 text-text-secondary" }), /* @__PURE__ */ w("p", {
204
+ className: "font-medium",
205
+ children: M.approvedBy
206
+ })]
207
+ })] }), /* @__PURE__ */ T("div", { children: [/* @__PURE__ */ w("p", {
128
208
  className: "text-sm text-text-secondary",
129
- children: "Status"
130
- }), /* @__PURE__ */ b(f, {
131
- variant: S[D.status],
132
- children: D.status
133
- })] })
134
- ]
135
- }),
136
- /* @__PURE__ */ b(y, {}),
137
- /* @__PURE__ */ x("div", { children: [/* @__PURE__ */ b("p", {
138
- className: "text-sm text-text-secondary",
139
- children: "Description"
140
- }), /* @__PURE__ */ b("p", {
141
- className: "mt-1",
142
- children: D.description
143
- })] })
144
- ]
145
- })] }),
146
- /* @__PURE__ */ x(m, { children: [/* @__PURE__ */ b(g, { children: /* @__PURE__ */ x(_, {
147
- className: "flex items-center gap-2",
148
- children: [/* @__PURE__ */ b(a, { className: "h-5 w-5" }), "Financial Details"]
149
- }) }), /* @__PURE__ */ x(h, {
150
- className: "space-y-4",
151
- children: [
152
- /* @__PURE__ */ x("div", {
209
+ children: "Date"
210
+ }), /* @__PURE__ */ T("div", {
211
+ className: "flex items-center gap-1 mt-1",
212
+ children: [/* @__PURE__ */ w(r, { className: "h-4 w-4 text-text-secondary" }), /* @__PURE__ */ w("p", {
213
+ className: "font-medium",
214
+ children: new Date(M.date).toLocaleDateString()
215
+ })]
216
+ })] })]
217
+ })
218
+ ]
219
+ })] }),
220
+ /* @__PURE__ */ T(h, { children: [/* @__PURE__ */ w(_, { children: /* @__PURE__ */ T(v, {
221
+ className: "flex items-center gap-2",
222
+ children: [/* @__PURE__ */ w(s, { className: "h-5 w-5" }), "Related Items"]
223
+ }) }), /* @__PURE__ */ w(g, {
224
+ className: "space-y-4",
225
+ children: /* @__PURE__ */ T("div", {
153
226
  className: "grid grid-cols-2 gap-4",
154
227
  children: [
155
- /* @__PURE__ */ x("div", { children: [/* @__PURE__ */ b("p", {
228
+ M.vendor && /* @__PURE__ */ T("div", { children: [/* @__PURE__ */ w("p", {
156
229
  className: "text-sm text-text-secondary",
157
- children: "Amount"
158
- }), /* @__PURE__ */ b("p", {
159
- className: `text-2xl font-bold ${D.amount < 0 ? "text-status-error-text" : ""}`,
160
- children: ((e) => Math.abs(e).toLocaleString("en-US", {
161
- style: "currency",
162
- currency: "USD"
163
- }))(D.amount)
164
- })] }),
165
- /* @__PURE__ */ x("div", { children: [/* @__PURE__ */ b("p", {
166
- className: "text-sm text-text-secondary",
167
- children: "Currency"
168
- }), /* @__PURE__ */ b("p", {
230
+ children: "Vendor"
231
+ }), /* @__PURE__ */ w("p", {
169
232
  className: "font-medium",
170
- children: D.currency
233
+ children: M.vendor
171
234
  })] }),
172
- D.poNumber && /* @__PURE__ */ x("div", { children: [/* @__PURE__ */ b("p", {
235
+ /* @__PURE__ */ T("div", { children: [/* @__PURE__ */ w("p", {
173
236
  className: "text-sm text-text-secondary",
174
- children: "PO Number"
175
- }), /* @__PURE__ */ b("p", {
176
- className: "font-mono font-medium",
177
- children: D.poNumber
237
+ children: "Department"
238
+ }), /* @__PURE__ */ T("div", {
239
+ className: "flex items-center gap-1 mt-1",
240
+ children: [/* @__PURE__ */ w(n, { className: "h-4 w-4 text-text-secondary" }), /* @__PURE__ */ w("p", {
241
+ className: "font-medium",
242
+ children: M.department
243
+ })]
178
244
  })] }),
179
- D.invoiceNumber && /* @__PURE__ */ x("div", { children: [/* @__PURE__ */ b("p", {
245
+ M.relatedAsset && /* @__PURE__ */ T("div", { children: [/* @__PURE__ */ w("p", {
180
246
  className: "text-sm text-text-secondary",
181
- children: "Invoice Number"
182
- }), /* @__PURE__ */ b("p", {
247
+ children: "Related Asset"
248
+ }), /* @__PURE__ */ w("p", {
183
249
  className: "font-mono font-medium",
184
- children: D.invoiceNumber
250
+ children: M.relatedAsset
185
251
  })] })
186
252
  ]
187
- }),
188
- /* @__PURE__ */ b(y, {}),
189
- /* @__PURE__ */ x("div", {
190
- className: "grid grid-cols-2 gap-4",
191
- children: [D.approvedBy && /* @__PURE__ */ x("div", { children: [/* @__PURE__ */ b("p", {
192
- className: "text-sm text-text-secondary",
193
- children: "Approved By"
194
- }), /* @__PURE__ */ x("div", {
195
- className: "flex items-center gap-1 mt-1",
196
- children: [/* @__PURE__ */ b(l, { className: "h-4 w-4 text-text-secondary" }), /* @__PURE__ */ b("p", {
197
- className: "font-medium",
198
- children: D.approvedBy
199
- })]
200
- })] }), /* @__PURE__ */ x("div", { children: [/* @__PURE__ */ b("p", {
201
- className: "text-sm text-text-secondary",
202
- children: "Date"
203
- }), /* @__PURE__ */ x("div", {
204
- className: "flex items-center gap-1 mt-1",
205
- children: [/* @__PURE__ */ b(r, { className: "h-4 w-4 text-text-secondary" }), /* @__PURE__ */ b("p", {
206
- className: "font-medium",
207
- children: new Date(D.date).toLocaleDateString()
208
- })]
209
- })] })]
210
253
  })
211
- ]
212
- })] }),
213
- /* @__PURE__ */ x(m, { children: [/* @__PURE__ */ b(g, { children: /* @__PURE__ */ x(_, {
214
- className: "flex items-center gap-2",
215
- children: [/* @__PURE__ */ b(s, { className: "h-5 w-5" }), "Related Items"]
216
- }) }), /* @__PURE__ */ b(h, {
217
- className: "space-y-4",
218
- children: /* @__PURE__ */ x("div", {
219
- className: "grid grid-cols-2 gap-4",
220
- children: [
221
- D.vendor && /* @__PURE__ */ x("div", { children: [/* @__PURE__ */ b("p", {
222
- className: "text-sm text-text-secondary",
223
- children: "Vendor"
224
- }), /* @__PURE__ */ b("p", {
225
- className: "font-medium",
226
- children: D.vendor
227
- })] }),
228
- /* @__PURE__ */ x("div", { children: [/* @__PURE__ */ b("p", {
229
- className: "text-sm text-text-secondary",
230
- children: "Department"
231
- }), /* @__PURE__ */ x("div", {
232
- className: "flex items-center gap-1 mt-1",
233
- children: [/* @__PURE__ */ b(n, { className: "h-4 w-4 text-text-secondary" }), /* @__PURE__ */ b("p", {
234
- className: "font-medium",
235
- children: D.department
254
+ })] }),
255
+ /* @__PURE__ */ T(h, { children: [/* @__PURE__ */ w(_, { children: /* @__PURE__ */ w(v, { children: "Status Timeline" }) }), /* @__PURE__ */ w(g, { children: /* @__PURE__ */ w("div", {
256
+ className: "space-y-4",
257
+ children: O.map((e, t) => /* @__PURE__ */ T("div", {
258
+ className: "flex gap-4",
259
+ children: [/* @__PURE__ */ T("div", {
260
+ className: "flex flex-col items-center",
261
+ children: [/* @__PURE__ */ w("div", { className: `h-3 w-3 rounded-full ${t === O.length - 1 ? "bg-status-success-bg" : "bg-action-primary-bg"}` }), t < O.length - 1 && /* @__PURE__ */ w("div", { className: "w-px flex-1 bg-border" })]
262
+ }), /* @__PURE__ */ T("div", {
263
+ className: "pb-4",
264
+ children: [/* @__PURE__ */ w("p", {
265
+ className: "font-medium text-sm",
266
+ children: e.status
267
+ }), /* @__PURE__ */ T("p", {
268
+ className: "text-xs text-text-secondary",
269
+ children: [
270
+ new Date(e.date).toLocaleString(),
271
+ " by ",
272
+ e.actor
273
+ ]
236
274
  })]
237
- })] }),
238
- D.relatedAsset && /* @__PURE__ */ x("div", { children: [/* @__PURE__ */ b("p", {
239
- className: "text-sm text-text-secondary",
240
- children: "Related Asset"
241
- }), /* @__PURE__ */ b("p", {
242
- className: "font-mono font-medium",
243
- children: D.relatedAsset
244
- })] })
245
- ]
246
- })
247
- })] }),
248
- /* @__PURE__ */ x(m, { children: [/* @__PURE__ */ b(g, { children: /* @__PURE__ */ b(_, { children: "Status Timeline" }) }), /* @__PURE__ */ b(h, { children: /* @__PURE__ */ b("div", {
249
- className: "space-y-4",
250
- children: w.map((e, t) => /* @__PURE__ */ x("div", {
251
- className: "flex gap-4",
252
- children: [/* @__PURE__ */ x("div", {
253
- className: "flex flex-col items-center",
254
- children: [/* @__PURE__ */ b("div", { className: `h-3 w-3 rounded-full ${t === w.length - 1 ? "bg-status-success-bg" : "bg-action-primary-bg"}` }), t < w.length - 1 && /* @__PURE__ */ b("div", { className: "w-px flex-1 bg-border" })]
255
- }), /* @__PURE__ */ x("div", {
256
- className: "pb-4",
257
- children: [/* @__PURE__ */ b("p", {
258
- className: "font-medium text-sm",
259
- children: e.status
260
- }), /* @__PURE__ */ x("p", {
261
- className: "text-xs text-text-secondary",
262
- children: [
263
- new Date(e.date).toLocaleString(),
264
- " by ",
265
- e.actor
266
- ]
267
275
  })]
268
- })]
269
- }, t))
270
- }) })] })
271
- ]
272
- })]
273
- }) : /* @__PURE__ */ b("div", {
274
- className: "p-6 text-center text-text-secondary",
275
- children: "Transaction not found."
276
+ }, t))
277
+ }) })] })
278
+ ]
279
+ })
280
+ ]
281
+ }) : /* @__PURE__ */ w("div", {
282
+ className: "p-6",
283
+ children: /* @__PURE__ */ w(x, {
284
+ illustration: "empty-search",
285
+ title: "Transaction not found",
286
+ description: "This transaction may have been removed. Return to the transaction list to find it.",
287
+ action: /* @__PURE__ */ w(m, {
288
+ size: "sm",
289
+ onClick: () => k("/transactions/transaction-list"),
290
+ children: "Back to transactions"
291
+ })
292
+ })
276
293
  });
277
294
  }
278
295
  //#endregion
279
- export { T as TransactionsTransactionDetailPage };
296
+ export { k as TransactionsTransactionDetailPage };
280
297
 
281
298
  //# sourceMappingURL=TransactionsTransactionDetailPage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TransactionsTransactionDetailPage.js","names":[],"sources":["../../../src/assethandler/pages/TransactionsTransactionDetailPage.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 {\n ArrowLeft,\n Printer,\n CheckCircle2,\n XCircle,\n DollarSign,\n Calendar,\n Building,\n FileText,\n User,\n Package,\n} from 'lucide-react';\nimport { useParams } from 'react-router-dom';\nimport { useAssetHandlerStore } from '../store/assethandlerStore';\n\nconst statusColors: Record<string, 'default' | 'secondary' | 'destructive' | 'outline'> = {\n pending: 'outline',\n approved: 'default',\n completed: 'secondary',\n rejected: 'destructive',\n cancelled: 'outline',\n};\n\nconst typeColors: Record<string, 'default' | 'secondary' | 'destructive' | 'outline'> = {\n purchase: 'default',\n lease: 'secondary',\n disposal: 'destructive',\n transfer: 'outline',\n maintenance: 'secondary',\n depreciation: 'outline',\n};\n\nconst statusTimeline = [\n { status: 'Created', date: '2026-01-15T10:30:00Z', actor: 'Procurement System' },\n { status: 'Pending Approval', date: '2026-01-15T10:30:00Z', actor: 'Auto-routed' },\n { status: 'Approved', date: '2026-01-16T14:20:00Z', actor: 'Michael Chen' },\n { status: 'Completed', date: '2026-01-17T09:00:00Z', actor: 'Finance System' },\n];\n\nexport function TransactionsTransactionDetailPage() {\n const { transactionId } = useParams<{ transactionId: string }>();\n const { transactions } = useAssetHandlerStore();\n const transaction = transactions.find((item) => item.id === transactionId) ?? transactions[0];\n\n if (!transaction) {\n return <div className=\"p-6 text-center text-text-secondary\">Transaction not found.</div>;\n }\n\n const formatAmount = (amount: number) => {\n return Math.abs(amount).toLocaleString('en-US', { style: 'currency', currency: 'USD' });\n };\n\n return (\n <div className=\"space-y-6 p-6 max-w-5xl\">\n <div className=\"flex items-center justify-between\">\n <div className=\"flex items-center gap-3\">\n <Button variant=\"outline\" size=\"sm\">\n <ArrowLeft className=\"h-4 w-4\" />\n </Button>\n <div>\n <div className=\"flex items-center gap-2\">\n <h1 className=\"text-2xl font-semibold\">\n <GradientText>{transaction.id}</GradientText>\n </h1>\n <Badge variant={statusColors[transaction.status]}>{transaction.status}</Badge>\n <Badge variant={typeColors[transaction.type]}>{transaction.type}</Badge>\n </div>\n <p className=\"text-sm text-text-secondary\">{transaction.description}</p>\n </div>\n </div>\n <div className=\"flex gap-2\">\n <Button variant=\"outline\" size=\"sm\">\n <Printer className=\"mr-2 h-4 w-4\" />\n Print\n </Button>\n <Button variant=\"outline\" size=\"sm\">\n <CheckCircle2 className=\"mr-2 h-4 w-4\" />\n Approve\n </Button>\n <Button variant=\"destructive\" size=\"sm\">\n <XCircle className=\"mr-2 h-4 w-4\" />\n Reject\n </Button>\n </div>\n </div>\n\n <div className=\"grid gap-6 md:grid-cols-2\">\n <Card>\n <CardHeader>\n <CardTitle className=\"flex items-center gap-2\">\n <FileText className=\"h-5 w-5\" />\n Transaction Information\n </CardTitle>\n </CardHeader>\n <CardContent className=\"space-y-4\">\n <div className=\"grid grid-cols-2 gap-4\">\n <div>\n <p className=\"text-sm text-text-secondary\">Transaction ID</p>\n <p className=\"font-mono font-medium\">{transaction.id}</p>\n </div>\n <div>\n <p className=\"text-sm text-text-secondary\">Type</p>\n <Badge variant={typeColors[transaction.type]}>{transaction.type}</Badge>\n </div>\n <div>\n <p className=\"text-sm text-text-secondary\">Category</p>\n <p className=\"font-medium\">{transaction.category}</p>\n </div>\n <div>\n <p className=\"text-sm text-text-secondary\">Status</p>\n <Badge variant={statusColors[transaction.status]}>{transaction.status}</Badge>\n </div>\n </div>\n <Separator />\n <div>\n <p className=\"text-sm text-text-secondary\">Description</p>\n <p className=\"mt-1\">{transaction.description}</p>\n </div>\n </CardContent>\n </Card>\n\n <Card>\n <CardHeader>\n <CardTitle className=\"flex items-center gap-2\">\n <DollarSign className=\"h-5 w-5\" />\n Financial Details\n </CardTitle>\n </CardHeader>\n <CardContent className=\"space-y-4\">\n <div className=\"grid grid-cols-2 gap-4\">\n <div>\n <p className=\"text-sm text-text-secondary\">Amount</p>\n <p\n className={`text-2xl font-bold ${transaction.amount < 0 ? 'text-status-error-text' : ''}`}\n >\n {formatAmount(transaction.amount)}\n </p>\n </div>\n <div>\n <p className=\"text-sm text-text-secondary\">Currency</p>\n <p className=\"font-medium\">{transaction.currency}</p>\n </div>\n {transaction.poNumber && (\n <div>\n <p className=\"text-sm text-text-secondary\">PO Number</p>\n <p className=\"font-mono font-medium\">{transaction.poNumber}</p>\n </div>\n )}\n {transaction.invoiceNumber && (\n <div>\n <p className=\"text-sm text-text-secondary\">Invoice Number</p>\n <p className=\"font-mono font-medium\">{transaction.invoiceNumber}</p>\n </div>\n )}\n </div>\n <Separator />\n <div className=\"grid grid-cols-2 gap-4\">\n {transaction.approvedBy && (\n <div>\n <p className=\"text-sm text-text-secondary\">Approved By</p>\n <div className=\"flex items-center gap-1 mt-1\">\n <User className=\"h-4 w-4 text-text-secondary\" />\n <p className=\"font-medium\">{transaction.approvedBy}</p>\n </div>\n </div>\n )}\n <div>\n <p className=\"text-sm text-text-secondary\">Date</p>\n <div className=\"flex items-center gap-1 mt-1\">\n <Calendar className=\"h-4 w-4 text-text-secondary\" />\n <p className=\"font-medium\">{new Date(transaction.date).toLocaleDateString()}</p>\n </div>\n </div>\n </div>\n </CardContent>\n </Card>\n\n <Card>\n <CardHeader>\n <CardTitle className=\"flex items-center gap-2\">\n <Package className=\"h-5 w-5\" />\n Related Items\n </CardTitle>\n </CardHeader>\n <CardContent className=\"space-y-4\">\n <div className=\"grid grid-cols-2 gap-4\">\n {transaction.vendor && (\n <div>\n <p className=\"text-sm text-text-secondary\">Vendor</p>\n <p className=\"font-medium\">{transaction.vendor}</p>\n </div>\n )}\n <div>\n <p className=\"text-sm text-text-secondary\">Department</p>\n <div className=\"flex items-center gap-1 mt-1\">\n <Building className=\"h-4 w-4 text-text-secondary\" />\n <p className=\"font-medium\">{transaction.department}</p>\n </div>\n </div>\n {transaction.relatedAsset && (\n <div>\n <p className=\"text-sm text-text-secondary\">Related Asset</p>\n <p className=\"font-mono font-medium\">{transaction.relatedAsset}</p>\n </div>\n )}\n </div>\n </CardContent>\n </Card>\n\n <Card>\n <CardHeader>\n <CardTitle>Status Timeline</CardTitle>\n </CardHeader>\n <CardContent>\n <div className=\"space-y-4\">\n {statusTimeline.map((entry, i) => (\n <div key={i} className=\"flex gap-4\">\n <div className=\"flex flex-col items-center\">\n <div\n className={`h-3 w-3 rounded-full ${i === statusTimeline.length - 1 ? 'bg-status-success-bg' : 'bg-action-primary-bg'}`}\n />\n {i < statusTimeline.length - 1 && <div className=\"w-px flex-1 bg-border\" />}\n </div>\n <div className=\"pb-4\">\n <p className=\"font-medium text-sm\">{entry.status}</p>\n <p className=\"text-xs text-text-secondary\">\n {new Date(entry.date).toLocaleString()} by {entry.actor}\n </p>\n </div>\n </div>\n ))}\n </div>\n </CardContent>\n </Card>\n </div>\n </div>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"TransactionsTransactionDetailPage.js","names":[],"sources":["../../../src/assethandler/pages/TransactionsTransactionDetailPage.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 {\n ArrowLeft,\n Printer,\n CheckCircle2,\n XCircle,\n DollarSign,\n Calendar,\n Building,\n FileText,\n User,\n Package,\n} from 'lucide-react';\nimport { useNavigate, useParams } from 'react-router-dom';\nimport { useAssetHandlerStore } from '../store/assethandlerStore';\n\nconst statusColors: Record<string, 'default' | 'secondary' | 'destructive' | 'outline'> = {\n pending: 'outline',\n approved: 'default',\n completed: 'secondary',\n rejected: 'destructive',\n cancelled: 'outline',\n};\n\nconst typeColors: Record<string, 'default' | 'secondary' | 'destructive' | 'outline'> = {\n purchase: 'default',\n lease: 'secondary',\n disposal: 'destructive',\n transfer: 'outline',\n maintenance: 'secondary',\n depreciation: 'outline',\n};\n\nconst statusTimeline = [\n { status: 'Created', date: '2026-01-15T10:30:00Z', actor: 'Procurement System' },\n { status: 'Pending Approval', date: '2026-01-15T10:30:00Z', actor: 'Auto-routed' },\n { status: 'Approved', date: '2026-01-16T14:20:00Z', actor: 'Michael Chen' },\n { status: 'Completed', date: '2026-01-17T09:00:00Z', actor: 'Finance System' },\n];\n\nexport function TransactionsTransactionDetailPage() {\n const navigate = useNavigate();\n const { transactionId } = useParams<{ transactionId: string }>();\n const { transactions } = useAssetHandlerStore();\n const transaction = transactions.find((item) => item.id === transactionId) ?? transactions[0];\n\n if (!transaction) {\n return (\n <div className=\"p-6\">\n <IllustratedEmptyState\n illustration=\"empty-search\"\n title=\"Transaction not found\"\n description=\"This transaction may have been removed. Return to the transaction list to find it.\"\n action={\n <Button size=\"sm\" onClick={() => navigate('/transactions/transaction-list')}>\n Back to transactions\n </Button>\n }\n />\n </div>\n );\n }\n\n const formatAmount = (amount: number) => {\n return Math.abs(amount).toLocaleString('en-US', { style: 'currency', currency: 'USD' });\n };\n\n return (\n <div className=\"space-y-6 p-6 max-w-5xl\">\n <div className=\"flex items-center justify-between\">\n <div className=\"flex items-center gap-3\">\n <Button variant=\"outline\" size=\"sm\" onClick={() => navigate('/transactions/transaction-list')}>\n <ArrowLeft className=\"h-4 w-4\" />\n </Button>\n <div>\n <div className=\"flex items-center gap-2\">\n <h1 className=\"text-2xl font-semibold\">\n <GradientText>{transaction.id}</GradientText>\n </h1>\n <Badge variant={statusColors[transaction.status]}>{transaction.status}</Badge>\n <Badge variant={typeColors[transaction.type]}>{transaction.type}</Badge>\n </div>\n <p className=\"text-sm text-text-secondary\">{transaction.description}</p>\n </div>\n </div>\n <div className=\"flex gap-2\">\n <Button variant=\"outline\" size=\"sm\">\n <Printer className=\"mr-2 h-4 w-4\" />\n Print\n </Button>\n <Button variant=\"outline\" size=\"sm\">\n <CheckCircle2 className=\"mr-2 h-4 w-4\" />\n Approve\n </Button>\n <Button variant=\"destructive\" size=\"sm\">\n <XCircle className=\"mr-2 h-4 w-4\" />\n Reject\n </Button>\n </div>\n </div>\n\n <PagePurpose>\n The complete record of a single financial transaction tied to your assets — what it was\n for, how much, against which budget and asset, and its approval timeline. Use this page to\n verify, approve or reject a transaction with a full audit trail.\n </PagePurpose>\n\n <div className=\"grid gap-6 md:grid-cols-2\">\n <Card>\n <CardHeader>\n <CardTitle className=\"flex items-center gap-2\">\n <FileText className=\"h-5 w-5\" />\n Transaction Information\n </CardTitle>\n </CardHeader>\n <CardContent className=\"space-y-4\">\n <div className=\"grid grid-cols-2 gap-4\">\n <div>\n <p className=\"text-sm text-text-secondary\">Transaction ID</p>\n <p className=\"font-mono font-medium\">{transaction.id}</p>\n </div>\n <div>\n <p className=\"text-sm text-text-secondary\">Type</p>\n <Badge variant={typeColors[transaction.type]}>{transaction.type}</Badge>\n </div>\n <div>\n <p className=\"text-sm text-text-secondary\">Category</p>\n <p className=\"font-medium\">{transaction.category}</p>\n </div>\n <div>\n <p className=\"text-sm text-text-secondary\">Status</p>\n <Badge variant={statusColors[transaction.status]}>{transaction.status}</Badge>\n </div>\n </div>\n <Separator />\n <div>\n <p className=\"text-sm text-text-secondary\">Description</p>\n <p className=\"mt-1\">{transaction.description}</p>\n </div>\n </CardContent>\n </Card>\n\n <EmphasisPanel>\n <CardHeader className=\"px-0 pt-0\">\n <CardTitle className=\"flex items-center gap-2\">\n <DollarSign className=\"h-5 w-5\" />\n Financial Details\n </CardTitle>\n </CardHeader>\n <CardContent className=\"space-y-4 px-0 pb-0\">\n <div className=\"grid grid-cols-2 gap-4\">\n <div>\n <p className=\"text-sm text-text-secondary\">Amount</p>\n <p\n className={`text-2xl font-bold ${transaction.amount < 0 ? 'text-status-error-text' : ''}`}\n >\n {formatAmount(transaction.amount)}\n </p>\n </div>\n <div>\n <p className=\"text-sm text-text-secondary\">Currency</p>\n <p className=\"font-medium\">{transaction.currency}</p>\n </div>\n {transaction.poNumber && (\n <div>\n <p className=\"text-sm text-text-secondary\">PO Number</p>\n <p className=\"font-mono font-medium\">{transaction.poNumber}</p>\n </div>\n )}\n {transaction.invoiceNumber && (\n <div>\n <p className=\"text-sm text-text-secondary\">Invoice Number</p>\n <p className=\"font-mono font-medium\">{transaction.invoiceNumber}</p>\n </div>\n )}\n </div>\n <Separator />\n <div className=\"grid grid-cols-2 gap-4\">\n {transaction.approvedBy && (\n <div>\n <p className=\"text-sm text-text-secondary\">Approved By</p>\n <div className=\"flex items-center gap-1 mt-1\">\n <User className=\"h-4 w-4 text-text-secondary\" />\n <p className=\"font-medium\">{transaction.approvedBy}</p>\n </div>\n </div>\n )}\n <div>\n <p className=\"text-sm text-text-secondary\">Date</p>\n <div className=\"flex items-center gap-1 mt-1\">\n <Calendar className=\"h-4 w-4 text-text-secondary\" />\n <p className=\"font-medium\">{new Date(transaction.date).toLocaleDateString()}</p>\n </div>\n </div>\n </div>\n </CardContent>\n </EmphasisPanel>\n\n <Card>\n <CardHeader>\n <CardTitle className=\"flex items-center gap-2\">\n <Package className=\"h-5 w-5\" />\n Related Items\n </CardTitle>\n </CardHeader>\n <CardContent className=\"space-y-4\">\n <div className=\"grid grid-cols-2 gap-4\">\n {transaction.vendor && (\n <div>\n <p className=\"text-sm text-text-secondary\">Vendor</p>\n <p className=\"font-medium\">{transaction.vendor}</p>\n </div>\n )}\n <div>\n <p className=\"text-sm text-text-secondary\">Department</p>\n <div className=\"flex items-center gap-1 mt-1\">\n <Building className=\"h-4 w-4 text-text-secondary\" />\n <p className=\"font-medium\">{transaction.department}</p>\n </div>\n </div>\n {transaction.relatedAsset && (\n <div>\n <p className=\"text-sm text-text-secondary\">Related Asset</p>\n <p className=\"font-mono font-medium\">{transaction.relatedAsset}</p>\n </div>\n )}\n </div>\n </CardContent>\n </Card>\n\n <Card>\n <CardHeader>\n <CardTitle>Status Timeline</CardTitle>\n </CardHeader>\n <CardContent>\n <div className=\"space-y-4\">\n {statusTimeline.map((entry, i) => (\n <div key={i} className=\"flex gap-4\">\n <div className=\"flex flex-col items-center\">\n <div\n className={`h-3 w-3 rounded-full ${i === statusTimeline.length - 1 ? 'bg-status-success-bg' : 'bg-action-primary-bg'}`}\n />\n {i < statusTimeline.length - 1 && <div className=\"w-px flex-1 bg-border\" />}\n </div>\n <div className=\"pb-4\">\n <p className=\"font-medium text-sm\">{entry.status}</p>\n <p className=\"text-xs text-text-secondary\">\n {new Date(entry.date).toLocaleString()} by {entry.actor}\n </p>\n </div>\n </div>\n ))}\n </div>\n </CardContent>\n </Card>\n </div>\n </div>\n );\n}\n"],"mappings":"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"}