@burdenoff/microfe-assethandler 2026.510.104

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 (270) hide show
  1. package/README.md +12 -0
  2. package/dist/assethandler/AssetHandlerRoot.d.ts +5 -0
  3. package/dist/assethandler/AssetHandlerRoot.d.ts.map +1 -0
  4. package/dist/assethandler/AssetHandlerRoot.js +159 -0
  5. package/dist/assethandler/AssetHandlerRoot.js.map +1 -0
  6. package/dist/assethandler/AssetHandlerRoutes.d.ts +2 -0
  7. package/dist/assethandler/AssetHandlerRoutes.d.ts.map +1 -0
  8. package/dist/assethandler/AssetHandlerRoutes.js +255 -0
  9. package/dist/assethandler/AssetHandlerRoutes.js.map +1 -0
  10. package/dist/assethandler/index.d.ts +5 -0
  11. package/dist/assethandler/index.d.ts.map +1 -0
  12. package/dist/assethandler/index.js +3 -0
  13. package/dist/assethandler/pages/AiPredictionsPage.d.ts +2 -0
  14. package/dist/assethandler/pages/AiPredictionsPage.d.ts.map +1 -0
  15. package/dist/assethandler/pages/AiPredictionsPage.js +133 -0
  16. package/dist/assethandler/pages/AiPredictionsPage.js.map +1 -0
  17. package/dist/assethandler/pages/AnalyticsPage.d.ts +2 -0
  18. package/dist/assethandler/pages/AnalyticsPage.d.ts.map +1 -0
  19. package/dist/assethandler/pages/AnalyticsPage.js +576 -0
  20. package/dist/assethandler/pages/AnalyticsPage.js.map +1 -0
  21. package/dist/assethandler/pages/AssetsAssetCategoriesPage.d.ts +2 -0
  22. package/dist/assethandler/pages/AssetsAssetCategoriesPage.d.ts.map +1 -0
  23. package/dist/assethandler/pages/AssetsAssetCategoriesPage.js +162 -0
  24. package/dist/assethandler/pages/AssetsAssetCategoriesPage.js.map +1 -0
  25. package/dist/assethandler/pages/AssetsAssetCheckInOutPage.d.ts +2 -0
  26. package/dist/assethandler/pages/AssetsAssetCheckInOutPage.d.ts.map +1 -0
  27. package/dist/assethandler/pages/AssetsAssetCheckInOutPage.js +249 -0
  28. package/dist/assethandler/pages/AssetsAssetCheckInOutPage.js.map +1 -0
  29. package/dist/assethandler/pages/AssetsAssetCreatePage.d.ts +2 -0
  30. package/dist/assethandler/pages/AssetsAssetCreatePage.d.ts.map +1 -0
  31. package/dist/assethandler/pages/AssetsAssetCreatePage.js +323 -0
  32. package/dist/assethandler/pages/AssetsAssetCreatePage.js.map +1 -0
  33. package/dist/assethandler/pages/AssetsAssetDetailPage.d.ts +2 -0
  34. package/dist/assethandler/pages/AssetsAssetDetailPage.d.ts.map +1 -0
  35. package/dist/assethandler/pages/AssetsAssetDetailPage.js +392 -0
  36. package/dist/assethandler/pages/AssetsAssetDetailPage.js.map +1 -0
  37. package/dist/assethandler/pages/AssetsAssetEditPage.d.ts +2 -0
  38. package/dist/assethandler/pages/AssetsAssetEditPage.d.ts.map +1 -0
  39. package/dist/assethandler/pages/AssetsAssetEditPage.js +341 -0
  40. package/dist/assethandler/pages/AssetsAssetEditPage.js.map +1 -0
  41. package/dist/assethandler/pages/AssetsAssetListPage.d.ts +2 -0
  42. package/dist/assethandler/pages/AssetsAssetListPage.d.ts.map +1 -0
  43. package/dist/assethandler/pages/AssetsAssetListPage.js +459 -0
  44. package/dist/assethandler/pages/AssetsAssetListPage.js.map +1 -0
  45. package/dist/assethandler/pages/AssetsAssetTrackingPage.d.ts +2 -0
  46. package/dist/assethandler/pages/AssetsAssetTrackingPage.d.ts.map +1 -0
  47. package/dist/assethandler/pages/AssetsAssetTrackingPage.js +166 -0
  48. package/dist/assethandler/pages/AssetsAssetTrackingPage.js.map +1 -0
  49. package/dist/assethandler/pages/AuditTrailPage.d.ts +2 -0
  50. package/dist/assethandler/pages/AuditTrailPage.d.ts.map +1 -0
  51. package/dist/assethandler/pages/AuditTrailPage.js +197 -0
  52. package/dist/assethandler/pages/AuditTrailPage.js.map +1 -0
  53. package/dist/assethandler/pages/CmdbBrowserPage.d.ts +2 -0
  54. package/dist/assethandler/pages/CmdbBrowserPage.d.ts.map +1 -0
  55. package/dist/assethandler/pages/CmdbBrowserPage.js +75 -0
  56. package/dist/assethandler/pages/CmdbBrowserPage.js.map +1 -0
  57. package/dist/assethandler/pages/DashboardPage.d.ts +2 -0
  58. package/dist/assethandler/pages/DashboardPage.d.ts.map +1 -0
  59. package/dist/assethandler/pages/DashboardPage.js +336 -0
  60. package/dist/assethandler/pages/DashboardPage.js.map +1 -0
  61. package/dist/assethandler/pages/DigitalTwinPage.d.ts +2 -0
  62. package/dist/assethandler/pages/DigitalTwinPage.d.ts.map +1 -0
  63. package/dist/assethandler/pages/DigitalTwinPage.js +71 -0
  64. package/dist/assethandler/pages/DigitalTwinPage.js.map +1 -0
  65. package/dist/assethandler/pages/DiscoveryJobsPage.d.ts +2 -0
  66. package/dist/assethandler/pages/DiscoveryJobsPage.d.ts.map +1 -0
  67. package/dist/assethandler/pages/DiscoveryJobsPage.js +115 -0
  68. package/dist/assethandler/pages/DiscoveryJobsPage.js.map +1 -0
  69. package/dist/assethandler/pages/EsgDashboardPage.d.ts +2 -0
  70. package/dist/assethandler/pages/EsgDashboardPage.d.ts.map +1 -0
  71. package/dist/assethandler/pages/EsgDashboardPage.js +130 -0
  72. package/dist/assethandler/pages/EsgDashboardPage.js.map +1 -0
  73. package/dist/assethandler/pages/FinanceBudgetDetailPage.d.ts +2 -0
  74. package/dist/assethandler/pages/FinanceBudgetDetailPage.d.ts.map +1 -0
  75. package/dist/assethandler/pages/FinanceBudgetDetailPage.js +182 -0
  76. package/dist/assethandler/pages/FinanceBudgetDetailPage.js.map +1 -0
  77. package/dist/assethandler/pages/FinanceFinanceHubPage.d.ts +2 -0
  78. package/dist/assethandler/pages/FinanceFinanceHubPage.d.ts.map +1 -0
  79. package/dist/assethandler/pages/FinanceFinanceHubPage.js +324 -0
  80. package/dist/assethandler/pages/FinanceFinanceHubPage.js.map +1 -0
  81. package/dist/assethandler/pages/FinanceInvoiceDetailPage.d.ts +2 -0
  82. package/dist/assethandler/pages/FinanceInvoiceDetailPage.d.ts.map +1 -0
  83. package/dist/assethandler/pages/FinanceInvoiceDetailPage.js +172 -0
  84. package/dist/assethandler/pages/FinanceInvoiceDetailPage.js.map +1 -0
  85. package/dist/assethandler/pages/IotDevicesPage.d.ts +2 -0
  86. package/dist/assethandler/pages/IotDevicesPage.d.ts.map +1 -0
  87. package/dist/assethandler/pages/IotDevicesPage.js +80 -0
  88. package/dist/assethandler/pages/IotDevicesPage.js.map +1 -0
  89. package/dist/assethandler/pages/ItilChangeDetailPage.d.ts +2 -0
  90. package/dist/assethandler/pages/ItilChangeDetailPage.d.ts.map +1 -0
  91. package/dist/assethandler/pages/ItilChangeDetailPage.js +221 -0
  92. package/dist/assethandler/pages/ItilChangeDetailPage.js.map +1 -0
  93. package/dist/assethandler/pages/ItilChangeManagementPage.d.ts +2 -0
  94. package/dist/assethandler/pages/ItilChangeManagementPage.d.ts.map +1 -0
  95. package/dist/assethandler/pages/ItilChangeManagementPage.js +179 -0
  96. package/dist/assethandler/pages/ItilChangeManagementPage.js.map +1 -0
  97. package/dist/assethandler/pages/ItilIncidentDetailPage.d.ts +2 -0
  98. package/dist/assethandler/pages/ItilIncidentDetailPage.d.ts.map +1 -0
  99. package/dist/assethandler/pages/ItilIncidentDetailPage.js +222 -0
  100. package/dist/assethandler/pages/ItilIncidentDetailPage.js.map +1 -0
  101. package/dist/assethandler/pages/ItilIncidentManagementPage.d.ts +2 -0
  102. package/dist/assethandler/pages/ItilIncidentManagementPage.d.ts.map +1 -0
  103. package/dist/assethandler/pages/ItilIncidentManagementPage.js +265 -0
  104. package/dist/assethandler/pages/ItilIncidentManagementPage.js.map +1 -0
  105. package/dist/assethandler/pages/ItilItilhubPage.d.ts +2 -0
  106. package/dist/assethandler/pages/ItilItilhubPage.d.ts.map +1 -0
  107. package/dist/assethandler/pages/ItilItilhubPage.js +374 -0
  108. package/dist/assethandler/pages/ItilItilhubPage.js.map +1 -0
  109. package/dist/assethandler/pages/ItilProblemDetailPage.d.ts +2 -0
  110. package/dist/assethandler/pages/ItilProblemDetailPage.d.ts.map +1 -0
  111. package/dist/assethandler/pages/ItilProblemDetailPage.js +177 -0
  112. package/dist/assethandler/pages/ItilProblemDetailPage.js.map +1 -0
  113. package/dist/assethandler/pages/ItilProblemManagementPage.d.ts +2 -0
  114. package/dist/assethandler/pages/ItilProblemManagementPage.d.ts.map +1 -0
  115. package/dist/assethandler/pages/ItilProblemManagementPage.js +167 -0
  116. package/dist/assethandler/pages/ItilProblemManagementPage.js.map +1 -0
  117. package/dist/assethandler/pages/KnowledgeBasePage.d.ts +2 -0
  118. package/dist/assethandler/pages/KnowledgeBasePage.d.ts.map +1 -0
  119. package/dist/assethandler/pages/KnowledgeBasePage.js +116 -0
  120. package/dist/assethandler/pages/KnowledgeBasePage.js.map +1 -0
  121. package/dist/assethandler/pages/MaintenanceMaintenanceCalendarPage.d.ts +2 -0
  122. package/dist/assethandler/pages/MaintenanceMaintenanceCalendarPage.d.ts.map +1 -0
  123. package/dist/assethandler/pages/MaintenanceMaintenanceCalendarPage.js +185 -0
  124. package/dist/assethandler/pages/MaintenanceMaintenanceCalendarPage.js.map +1 -0
  125. package/dist/assethandler/pages/MaintenanceMaintenanceSchedulerPage.d.ts +2 -0
  126. package/dist/assethandler/pages/MaintenanceMaintenanceSchedulerPage.d.ts.map +1 -0
  127. package/dist/assethandler/pages/MaintenanceMaintenanceSchedulerPage.js +133 -0
  128. package/dist/assethandler/pages/MaintenanceMaintenanceSchedulerPage.js.map +1 -0
  129. package/dist/assethandler/pages/MarketplaceMarketplaceDetailPage.d.ts +2 -0
  130. package/dist/assethandler/pages/MarketplaceMarketplaceDetailPage.d.ts.map +1 -0
  131. package/dist/assethandler/pages/MarketplaceMarketplaceDetailPage.js +166 -0
  132. package/dist/assethandler/pages/MarketplaceMarketplaceDetailPage.js.map +1 -0
  133. package/dist/assethandler/pages/MarketplaceMarketplaceListPage.d.ts +2 -0
  134. package/dist/assethandler/pages/MarketplaceMarketplaceListPage.d.ts.map +1 -0
  135. package/dist/assethandler/pages/MarketplaceMarketplaceListPage.js +155 -0
  136. package/dist/assethandler/pages/MarketplaceMarketplaceListPage.js.map +1 -0
  137. package/dist/assethandler/pages/MarketplaceMarketplaceOrdersPage.d.ts +2 -0
  138. package/dist/assethandler/pages/MarketplaceMarketplaceOrdersPage.d.ts.map +1 -0
  139. package/dist/assethandler/pages/MarketplaceMarketplaceOrdersPage.js +126 -0
  140. package/dist/assethandler/pages/MarketplaceMarketplaceOrdersPage.js.map +1 -0
  141. package/dist/assethandler/pages/MarketplaceMarketplaceSellPage.d.ts +2 -0
  142. package/dist/assethandler/pages/MarketplaceMarketplaceSellPage.d.ts.map +1 -0
  143. package/dist/assethandler/pages/MarketplaceMarketplaceSellPage.js +157 -0
  144. package/dist/assethandler/pages/MarketplaceMarketplaceSellPage.js.map +1 -0
  145. package/dist/assethandler/pages/OperationsMaintenanceDetailPage.d.ts +2 -0
  146. package/dist/assethandler/pages/OperationsMaintenanceDetailPage.d.ts.map +1 -0
  147. package/dist/assethandler/pages/OperationsMaintenanceDetailPage.js +179 -0
  148. package/dist/assethandler/pages/OperationsMaintenanceDetailPage.js.map +1 -0
  149. package/dist/assethandler/pages/OperationsOperationsHubPage.d.ts +2 -0
  150. package/dist/assethandler/pages/OperationsOperationsHubPage.d.ts.map +1 -0
  151. package/dist/assethandler/pages/OperationsOperationsHubPage.js +291 -0
  152. package/dist/assethandler/pages/OperationsOperationsHubPage.js.map +1 -0
  153. package/dist/assethandler/pages/OperationsWorkOrderDetailPage.d.ts +2 -0
  154. package/dist/assethandler/pages/OperationsWorkOrderDetailPage.d.ts.map +1 -0
  155. package/dist/assethandler/pages/OperationsWorkOrderDetailPage.js +172 -0
  156. package/dist/assethandler/pages/OperationsWorkOrderDetailPage.js.map +1 -0
  157. package/dist/assethandler/pages/PortfolioPortfolioOverviewPage.d.ts +2 -0
  158. package/dist/assethandler/pages/PortfolioPortfolioOverviewPage.d.ts.map +1 -0
  159. package/dist/assethandler/pages/PortfolioPortfolioOverviewPage.js +203 -0
  160. package/dist/assethandler/pages/PortfolioPortfolioOverviewPage.js.map +1 -0
  161. package/dist/assethandler/pages/ProvenancePage.d.ts +2 -0
  162. package/dist/assethandler/pages/ProvenancePage.d.ts.map +1 -0
  163. package/dist/assethandler/pages/ProvenancePage.js +118 -0
  164. package/dist/assethandler/pages/ProvenancePage.js.map +1 -0
  165. package/dist/assethandler/pages/ReportsReportBuilderPage.d.ts +2 -0
  166. package/dist/assethandler/pages/ReportsReportBuilderPage.d.ts.map +1 -0
  167. package/dist/assethandler/pages/ReportsReportBuilderPage.js +201 -0
  168. package/dist/assethandler/pages/ReportsReportBuilderPage.js.map +1 -0
  169. package/dist/assethandler/pages/ReportsReportsDashboardPage.d.ts +2 -0
  170. package/dist/assethandler/pages/ReportsReportsDashboardPage.d.ts.map +1 -0
  171. package/dist/assethandler/pages/ReportsReportsDashboardPage.js +201 -0
  172. package/dist/assethandler/pages/ReportsReportsDashboardPage.js.map +1 -0
  173. package/dist/assethandler/pages/ReportsReportsListPage.d.ts +2 -0
  174. package/dist/assethandler/pages/ReportsReportsListPage.d.ts.map +1 -0
  175. package/dist/assethandler/pages/ReportsReportsListPage.js +128 -0
  176. package/dist/assethandler/pages/ReportsReportsListPage.js.map +1 -0
  177. package/dist/assethandler/pages/SamLicensesPage.d.ts +2 -0
  178. package/dist/assethandler/pages/SamLicensesPage.d.ts.map +1 -0
  179. package/dist/assethandler/pages/SamLicensesPage.js +79 -0
  180. package/dist/assethandler/pages/SamLicensesPage.js.map +1 -0
  181. package/dist/assethandler/pages/SecurityComplianceDetailPage.d.ts +2 -0
  182. package/dist/assethandler/pages/SecurityComplianceDetailPage.d.ts.map +1 -0
  183. package/dist/assethandler/pages/SecurityComplianceDetailPage.js +109 -0
  184. package/dist/assethandler/pages/SecurityComplianceDetailPage.js.map +1 -0
  185. package/dist/assethandler/pages/SecurityPolicyDetailPage.d.ts +2 -0
  186. package/dist/assethandler/pages/SecurityPolicyDetailPage.d.ts.map +1 -0
  187. package/dist/assethandler/pages/SecurityPolicyDetailPage.js +133 -0
  188. package/dist/assethandler/pages/SecurityPolicyDetailPage.js.map +1 -0
  189. package/dist/assethandler/pages/SecurityScheduleBackupPage.d.ts +2 -0
  190. package/dist/assethandler/pages/SecurityScheduleBackupPage.d.ts.map +1 -0
  191. package/dist/assethandler/pages/SecurityScheduleBackupPage.js +143 -0
  192. package/dist/assethandler/pages/SecurityScheduleBackupPage.js.map +1 -0
  193. package/dist/assethandler/pages/SecuritySecurityEventDetailPage.d.ts +2 -0
  194. package/dist/assethandler/pages/SecuritySecurityEventDetailPage.d.ts.map +1 -0
  195. package/dist/assethandler/pages/SecuritySecurityEventDetailPage.js +135 -0
  196. package/dist/assethandler/pages/SecuritySecurityEventDetailPage.js.map +1 -0
  197. package/dist/assethandler/pages/SecuritySecurityHubPage.d.ts +2 -0
  198. package/dist/assethandler/pages/SecuritySecurityHubPage.d.ts.map +1 -0
  199. package/dist/assethandler/pages/SecuritySecurityHubPage.js +355 -0
  200. package/dist/assethandler/pages/SecuritySecurityHubPage.js.map +1 -0
  201. package/dist/assethandler/pages/TransactionsTransactionDetailPage.d.ts +2 -0
  202. package/dist/assethandler/pages/TransactionsTransactionDetailPage.d.ts.map +1 -0
  203. package/dist/assethandler/pages/TransactionsTransactionDetailPage.js +281 -0
  204. package/dist/assethandler/pages/TransactionsTransactionDetailPage.js.map +1 -0
  205. package/dist/assethandler/pages/TransactionsTransactionListPage.d.ts +2 -0
  206. package/dist/assethandler/pages/TransactionsTransactionListPage.d.ts.map +1 -0
  207. package/dist/assethandler/pages/TransactionsTransactionListPage.js +220 -0
  208. package/dist/assethandler/pages/TransactionsTransactionListPage.js.map +1 -0
  209. package/dist/assethandler/pages/UsersPage.d.ts +2 -0
  210. package/dist/assethandler/pages/UsersPage.d.ts.map +1 -0
  211. package/dist/assethandler/pages/UsersPage.js +183 -0
  212. package/dist/assethandler/pages/UsersPage.js.map +1 -0
  213. package/dist/assethandler/pages/UsersUserCreatePage.d.ts +2 -0
  214. package/dist/assethandler/pages/UsersUserCreatePage.d.ts.map +1 -0
  215. package/dist/assethandler/pages/UsersUserCreatePage.js +213 -0
  216. package/dist/assethandler/pages/UsersUserCreatePage.js.map +1 -0
  217. package/dist/assethandler/pages/UsersUserManagementHubPage.d.ts +2 -0
  218. package/dist/assethandler/pages/UsersUserManagementHubPage.d.ts.map +1 -0
  219. package/dist/assethandler/pages/UsersUserManagementHubPage.js +325 -0
  220. package/dist/assethandler/pages/UsersUserManagementHubPage.js.map +1 -0
  221. package/dist/assethandler/pages/WorkflowsWorkflowBuilderPage.d.ts +2 -0
  222. package/dist/assethandler/pages/WorkflowsWorkflowBuilderPage.d.ts.map +1 -0
  223. package/dist/assethandler/pages/WorkflowsWorkflowBuilderPage.js +246 -0
  224. package/dist/assethandler/pages/WorkflowsWorkflowBuilderPage.js.map +1 -0
  225. package/dist/assethandler/pages/WorkflowsWorkflowExecutionsPage.d.ts +2 -0
  226. package/dist/assethandler/pages/WorkflowsWorkflowExecutionsPage.d.ts.map +1 -0
  227. package/dist/assethandler/pages/WorkflowsWorkflowExecutionsPage.js +188 -0
  228. package/dist/assethandler/pages/WorkflowsWorkflowExecutionsPage.js.map +1 -0
  229. package/dist/assethandler/pages/WorkflowsWorkflowListPage.d.ts +2 -0
  230. package/dist/assethandler/pages/WorkflowsWorkflowListPage.d.ts.map +1 -0
  231. package/dist/assethandler/pages/WorkflowsWorkflowListPage.js +163 -0
  232. package/dist/assethandler/pages/WorkflowsWorkflowListPage.js.map +1 -0
  233. package/dist/assethandler/pages/WorkflowsWorkflowTemplatesPage.d.ts +2 -0
  234. package/dist/assethandler/pages/WorkflowsWorkflowTemplatesPage.d.ts.map +1 -0
  235. package/dist/assethandler/pages/WorkflowsWorkflowTemplatesPage.js +158 -0
  236. package/dist/assethandler/pages/WorkflowsWorkflowTemplatesPage.js.map +1 -0
  237. package/dist/assethandler/providers/AssetHandlerProvider.d.ts +6 -0
  238. package/dist/assethandler/providers/AssetHandlerProvider.d.ts.map +1 -0
  239. package/dist/assethandler/providers/AssetHandlerProvider.js +214 -0
  240. package/dist/assethandler/providers/AssetHandlerProvider.js.map +1 -0
  241. package/dist/assethandler/store/assethandlerStore.d.ts +635 -0
  242. package/dist/assethandler/store/assethandlerStore.d.ts.map +1 -0
  243. package/dist/assethandler/store/assethandlerStore.js +2337 -0
  244. package/dist/assethandler/store/assethandlerStore.js.map +1 -0
  245. package/dist/assethandler/types/index.d.ts +56 -0
  246. package/dist/assethandler/types/index.d.ts.map +1 -0
  247. package/dist/assethandler/utils/cn.d.ts +4 -0
  248. package/dist/assethandler/utils/cn.d.ts.map +1 -0
  249. package/dist/assethandler/utils/i18n.d.ts +6 -0
  250. package/dist/assethandler/utils/i18n.d.ts.map +1 -0
  251. package/dist/assethandler/utils/i18n.js +9 -0
  252. package/dist/assethandler/utils/i18n.js.map +1 -0
  253. package/dist/assethandler/utils/navigation.d.ts +2 -0
  254. package/dist/assethandler/utils/navigation.d.ts.map +1 -0
  255. package/dist/assethandler/utils/navigation.js +8 -0
  256. package/dist/assethandler/utils/navigation.js.map +1 -0
  257. package/dist/dev/main.d.ts +2 -0
  258. package/dist/dev/main.d.ts.map +1 -0
  259. package/dist/generated/global-operations.d.ts +2 -0
  260. package/dist/generated/global-operations.d.ts.map +1 -0
  261. package/dist/generated/global-types.d.ts +20716 -0
  262. package/dist/generated/global-types.d.ts.map +1 -0
  263. package/dist/generated/wspace-operations.d.ts +210 -0
  264. package/dist/generated/wspace-operations.d.ts.map +1 -0
  265. package/dist/generated/wspace-types.d.ts +53363 -0
  266. package/dist/generated/wspace-types.d.ts.map +1 -0
  267. package/dist/index.d.ts +2 -0
  268. package/dist/index.d.ts.map +1 -0
  269. package/dist/index.js +5 -0
  270. package/package.json +108 -0
@@ -0,0 +1,130 @@
1
+ import { useState as e } from "react";
2
+ import { Leaf as t } from "lucide-react";
3
+ import { jsx as n, jsxs as r } from "react/jsx-runtime";
4
+ import { gql as i } from "@apollo/client";
5
+ import { useMutation as a, useQuery as o } from "@apollo/client/react";
6
+ //#region src/assethandler/pages/EsgDashboardPage.tsx
7
+ var s = i`
8
+ query AssetHandlerEsgMetrics {
9
+ esgMetrics {
10
+ id
11
+ metricKey
12
+ metricName
13
+ category
14
+ unit
15
+ value
16
+ target
17
+ trend
18
+ periodStart
19
+ periodEnd
20
+ }
21
+ }
22
+ `, c = i`
23
+ mutation AssetHandlerUpsertEsgMetric($input: UpsertEsgMetricInput!) {
24
+ upsertEsgMetric(input: $input) {
25
+ id
26
+ }
27
+ }
28
+ `;
29
+ function l() {
30
+ let [i, l] = e("42.5"), { data: u, loading: d, refetch: f } = o(s, { fetchPolicy: "cache-and-network" }), [p, { loading: m }] = a(c, { onCompleted: () => {
31
+ f();
32
+ } }), h = u?.esgMetrics ?? [];
33
+ return /* @__PURE__ */ r("div", {
34
+ className: "space-y-4 p-4",
35
+ children: [
36
+ /* @__PURE__ */ r("h1", {
37
+ className: "flex items-center gap-2 text-2xl font-semibold",
38
+ children: [/* @__PURE__ */ n(t, { className: "h-6 w-6" }), " ESG Dashboard"]
39
+ }),
40
+ /* @__PURE__ */ n("p", {
41
+ className: "text-muted-foreground",
42
+ children: "Track sustainability and governance KPIs across the full asset portfolio."
43
+ }),
44
+ /* @__PURE__ */ r("form", {
45
+ className: "grid gap-3 rounded-lg border p-4 md:grid-cols-4",
46
+ onSubmit: (e) => {
47
+ e.preventDefault();
48
+ let t = new Date((/* @__PURE__ */ new Date()).getFullYear(), (/* @__PURE__ */ new Date()).getMonth(), 1).toISOString(), n = (/* @__PURE__ */ new Date()).toISOString();
49
+ p({ variables: { input: {
50
+ metricKey: "carbon-footprint-scope2",
51
+ metricName: "Scope 2 Carbon Emissions",
52
+ category: "environment",
53
+ unit: "tCO2e",
54
+ value: Number(i),
55
+ target: 40,
56
+ trend: "improving",
57
+ periodStart: t,
58
+ periodEnd: n
59
+ } } });
60
+ },
61
+ children: [
62
+ /* @__PURE__ */ n("input", {
63
+ className: "rounded-md border px-3 py-2",
64
+ value: i,
65
+ onChange: (e) => l(e.target.value)
66
+ }),
67
+ /* @__PURE__ */ n("div", {
68
+ className: "text-sm text-muted-foreground md:col-span-2",
69
+ children: "Metric: Scope 2 Carbon Emissions (monthly)"
70
+ }),
71
+ /* @__PURE__ */ n("button", {
72
+ className: "rounded-md bg-primary px-3 py-2 text-primary-foreground",
73
+ disabled: m,
74
+ type: "submit",
75
+ children: m ? "Saving..." : "Save Metric"
76
+ })
77
+ ]
78
+ }),
79
+ /* @__PURE__ */ r("div", {
80
+ className: "grid gap-3 md:grid-cols-2",
81
+ children: [
82
+ d && h.length === 0 ? /* @__PURE__ */ n("p", {
83
+ className: "text-sm text-muted-foreground",
84
+ children: "Loading ESG metrics..."
85
+ }) : null,
86
+ !d && h.length === 0 ? /* @__PURE__ */ n("p", {
87
+ className: "text-sm text-muted-foreground",
88
+ children: "No ESG metrics recorded yet."
89
+ }) : null,
90
+ h.map((e) => /* @__PURE__ */ r("article", {
91
+ className: "rounded-lg border p-4",
92
+ children: [
93
+ /* @__PURE__ */ n("p", {
94
+ className: "text-xs uppercase tracking-wide text-muted-foreground",
95
+ children: e.category
96
+ }),
97
+ /* @__PURE__ */ n("h2", {
98
+ className: "mt-1 text-base font-semibold",
99
+ children: e.metricName
100
+ }),
101
+ /* @__PURE__ */ r("p", {
102
+ className: "mt-2 text-sm",
103
+ children: [
104
+ /* @__PURE__ */ n("span", {
105
+ className: "font-semibold",
106
+ children: e.value
107
+ }),
108
+ " ",
109
+ e.unit,
110
+ e.target === null ? null : /* @__PURE__ */ r("span", {
111
+ className: "text-muted-foreground",
112
+ children: [" / target ", e.target]
113
+ })
114
+ ]
115
+ }),
116
+ /* @__PURE__ */ r("p", {
117
+ className: "mt-1 text-xs text-muted-foreground",
118
+ children: ["Trend: ", e.trend ?? "stable"]
119
+ })
120
+ ]
121
+ }, e.id))
122
+ ]
123
+ })
124
+ ]
125
+ });
126
+ }
127
+ //#endregion
128
+ export { l as EsgDashboardPage };
129
+
130
+ //# sourceMappingURL=EsgDashboardPage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EsgDashboardPage.js","names":[],"sources":["../../../src/assethandler/pages/EsgDashboardPage.tsx"],"sourcesContent":["import { Leaf } from 'lucide-react';\nimport { useState } from 'react';\nimport { gql } from '@apollo/client';\nimport { useMutation, useQuery } from '@apollo/client/react';\n\nconst ESG_METRICS_QUERY = gql`\n query AssetHandlerEsgMetrics {\n esgMetrics {\n id\n metricKey\n metricName\n category\n unit\n value\n target\n trend\n periodStart\n periodEnd\n }\n }\n`;\n\nconst UPSERT_ESG_METRIC_MUTATION = gql`\n mutation AssetHandlerUpsertEsgMetric($input: UpsertEsgMetricInput!) {\n upsertEsgMetric(input: $input) {\n id\n }\n }\n`;\n\nexport function EsgDashboardPage() {\n const [value, setValue] = useState('42.5');\n\n const { data, loading, refetch } = useQuery<{\n esgMetrics: Array<{\n id: string;\n metricKey: string;\n metricName: string;\n category: string;\n unit: string;\n value: number;\n target: number | null;\n trend: string | null;\n periodStart: string;\n periodEnd: string;\n }>;\n }>(ESG_METRICS_QUERY, { fetchPolicy: 'cache-and-network' });\n\n const [upsertEsgMetric, { loading: saving }] = useMutation(UPSERT_ESG_METRIC_MUTATION, {\n onCompleted: () => {\n void refetch();\n },\n });\n\n const metrics = data?.esgMetrics ?? [];\n\n return (\n <div className=\"space-y-4 p-4\">\n <h1 className=\"flex items-center gap-2 text-2xl font-semibold\">\n <Leaf className=\"h-6 w-6\" /> ESG Dashboard\n </h1>\n <p className=\"text-muted-foreground\">\n Track sustainability and governance KPIs across the full asset portfolio.\n </p>\n <form\n className=\"grid gap-3 rounded-lg border p-4 md:grid-cols-4\"\n onSubmit={(event) => {\n event.preventDefault();\n const periodStart = new Date(\n new Date().getFullYear(),\n new Date().getMonth(),\n 1\n ).toISOString();\n const periodEnd = new Date().toISOString();\n void upsertEsgMetric({\n variables: {\n input: {\n metricKey: 'carbon-footprint-scope2',\n metricName: 'Scope 2 Carbon Emissions',\n category: 'environment',\n unit: 'tCO2e',\n value: Number(value),\n target: 40,\n trend: 'improving',\n periodStart,\n periodEnd,\n },\n },\n });\n }}\n >\n <input\n className=\"rounded-md border px-3 py-2\"\n value={value}\n onChange={(event) => setValue(event.target.value)}\n />\n <div className=\"text-sm text-muted-foreground md:col-span-2\">\n Metric: Scope 2 Carbon Emissions (monthly)\n </div>\n <button\n className=\"rounded-md bg-primary px-3 py-2 text-primary-foreground\"\n disabled={saving}\n type=\"submit\"\n >\n {saving ? 'Saving...' : 'Save Metric'}\n </button>\n </form>\n <div className=\"grid gap-3 md:grid-cols-2\">\n {loading && metrics.length === 0 ? (\n <p className=\"text-sm text-muted-foreground\">Loading ESG metrics...</p>\n ) : null}\n {!loading && metrics.length === 0 ? (\n <p className=\"text-sm text-muted-foreground\">No ESG metrics recorded yet.</p>\n ) : null}\n {metrics.map((metric) => (\n <article key={metric.id} className=\"rounded-lg border p-4\">\n <p className=\"text-xs uppercase tracking-wide text-muted-foreground\">\n {metric.category}\n </p>\n <h2 className=\"mt-1 text-base font-semibold\">{metric.metricName}</h2>\n <p className=\"mt-2 text-sm\">\n <span className=\"font-semibold\">{metric.value}</span> {metric.unit}\n {metric.target !== null ? (\n <span className=\"text-muted-foreground\"> / target {metric.target}</span>\n ) : null}\n </p>\n <p className=\"mt-1 text-xs text-muted-foreground\">Trend: {metric.trend ?? 'stable'}</p>\n </article>\n ))}\n </div>\n </div>\n );\n}\n"],"mappings":";;;;;;AAKA,IAAM,IAAoB,CAAG;;;;;;;;;;;;;;;GAiBvB,IAA6B,CAAG;;;;;;;AAQtC,SAAgB,IAAmB;CACjC,IAAM,CAAC,GAAO,KAAY,EAAS,OAAO,EAEpC,EAAE,SAAM,YAAS,eAAY,EAahC,GAAmB,EAAE,aAAa,qBAAqB,CAAC,EAErD,CAAC,GAAiB,EAAE,SAAS,OAAY,EAAY,GAA4B,EACrF,mBAAmB;AACZ,KAAS;IAEjB,CAAC,EAEI,IAAU,GAAM,cAAc,EAAE;AAEtC,QACE,kBAAC,OAAD;EAAK,WAAU;YAAf;GACE,kBAAC,MAAD;IAAI,WAAU;cAAd,CACE,kBAAC,GAAD,EAAM,WAAU,WAAY,CAAA,EAAA,iBACzB;;GACL,kBAAC,KAAD;IAAG,WAAU;cAAwB;IAEjC,CAAA;GACJ,kBAAC,QAAD;IACE,WAAU;IACV,WAAW,MAAU;AACnB,OAAM,gBAAgB;KACtB,IAAM,IAAc,IAAI,sBACtB,IAAI,MAAM,EAAC,aAAa,mBACxB,IAAI,MAAM,EAAC,UAAU,EACrB,EACD,CAAC,aAAa,EACT,qBAAY,IAAI,MAAM,EAAC,aAAa;AACrC,OAAgB,EACnB,WAAW,EACT,OAAO;MACL,WAAW;MACX,YAAY;MACZ,UAAU;MACV,MAAM;MACN,OAAO,OAAO,EAAM;MACpB,QAAQ;MACR,OAAO;MACP;MACA;MACD,EACF,EACF,CAAC;;cAxBN;KA2BE,kBAAC,SAAD;MACE,WAAU;MACH;MACP,WAAW,MAAU,EAAS,EAAM,OAAO,MAAM;MACjD,CAAA;KACF,kBAAC,OAAD;MAAK,WAAU;gBAA8C;MAEvD,CAAA;KACN,kBAAC,UAAD;MACE,WAAU;MACV,UAAU;MACV,MAAK;gBAEJ,IAAS,cAAc;MACjB,CAAA;KACJ;;GACP,kBAAC,OAAD;IAAK,WAAU;cAAf;KACG,KAAW,EAAQ,WAAW,IAC7B,kBAAC,KAAD;MAAG,WAAU;gBAAgC;MAA0B,CAAA,GACrE;KACH,CAAC,KAAW,EAAQ,WAAW,IAC9B,kBAAC,KAAD;MAAG,WAAU;gBAAgC;MAAgC,CAAA,GAC3E;KACH,EAAQ,KAAK,MACZ,kBAAC,WAAD;MAAyB,WAAU;gBAAnC;OACE,kBAAC,KAAD;QAAG,WAAU;kBACV,EAAO;QACN,CAAA;OACJ,kBAAC,MAAD;QAAI,WAAU;kBAAgC,EAAO;QAAgB,CAAA;OACrE,kBAAC,KAAD;QAAG,WAAU;kBAAb;SACE,kBAAC,QAAD;UAAM,WAAU;oBAAiB,EAAO;UAAa,CAAA;;SAAE,EAAO;SAC7D,EAAO,WAAW,OAEf,OADF,kBAAC,QAAD;UAAM,WAAU;oBAAhB,CAAwC,cAAW,EAAO,OAAc;;SAExE;;OACJ,kBAAC,KAAD;QAAG,WAAU;kBAAb,CAAkD,WAAQ,EAAO,SAAS,SAAa;;OAC/E;QAZI,EAAO,GAYX,CACV;KACE;;GACF"}
@@ -0,0 +1,2 @@
1
+ export declare function FinanceBudgetDetailPage(): import("react/jsx-runtime").JSX.Element;
2
+ //# sourceMappingURL=FinanceBudgetDetailPage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FinanceBudgetDetailPage.d.ts","sourceRoot":"","sources":["../../../src/assethandler/pages/FinanceBudgetDetailPage.tsx"],"names":[],"mappings":"AAcA,wBAAgB,uBAAuB,4CAwItC"}
@@ -0,0 +1,182 @@
1
+ import { useAssetHandlerStore as e } from "../store/assethandlerStore.js";
2
+ import { ArrowLeft as t, Edit 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, CardDescription as c, CardHeader as l, CardTitle as u } from "@burdenoff/fe-libs/ui";
5
+ import { jsx as d, jsxs as f } from "react/jsx-runtime";
6
+ //#region src/assethandler/pages/FinanceBudgetDetailPage.tsx
7
+ function p() {
8
+ let { budgetId: p } = r(), { budgets: m, transactions: h } = e(), g = m.find((e) => e.id === p) ?? m[0];
9
+ if (!g) return /* @__PURE__ */ d("div", {
10
+ className: "p-6",
11
+ children: /* @__PURE__ */ d("p", {
12
+ className: "text-muted-foreground",
13
+ children: "Budget not found."
14
+ })
15
+ });
16
+ let _ = h.filter((e) => e.category === g.category), v = Math.round(g.spent / g.allocated * 100);
17
+ return /* @__PURE__ */ f("div", {
18
+ className: "space-y-6 p-6",
19
+ children: [
20
+ /* @__PURE__ */ f("div", {
21
+ className: "flex items-center justify-between",
22
+ children: [/* @__PURE__ */ f("div", {
23
+ className: "flex items-center gap-4",
24
+ children: [/* @__PURE__ */ d(a, {
25
+ variant: "ghost",
26
+ size: "icon",
27
+ children: /* @__PURE__ */ d(t, { className: "h-4 w-4" })
28
+ }), /* @__PURE__ */ f("div", { children: [/* @__PURE__ */ f("div", {
29
+ className: "flex items-center gap-3",
30
+ children: [/* @__PURE__ */ d("h1", {
31
+ className: "text-2xl font-bold",
32
+ children: g.name
33
+ }), /* @__PURE__ */ d(i, {
34
+ variant: g.status === "over_budget" ? "destructive" : g.status === "under_budget" ? "secondary" : "default",
35
+ children: g.status.replace("_", " ")
36
+ })]
37
+ }), /* @__PURE__ */ f("p", {
38
+ className: "text-sm text-muted-foreground mt-1",
39
+ children: [
40
+ g.department,
41
+ " · ",
42
+ g.period
43
+ ]
44
+ })] })]
45
+ }), /* @__PURE__ */ f(a, {
46
+ size: "sm",
47
+ children: [/* @__PURE__ */ d(n, { className: "mr-2 h-4 w-4" }), "Edit Budget"]
48
+ })]
49
+ }),
50
+ /* @__PURE__ */ f("div", {
51
+ className: "grid gap-4 md:grid-cols-3",
52
+ children: [
53
+ /* @__PURE__ */ d(o, { children: /* @__PURE__ */ f(s, {
54
+ className: "pt-4",
55
+ children: [/* @__PURE__ */ d("p", {
56
+ className: "text-sm text-muted-foreground",
57
+ children: "Allocated"
58
+ }), /* @__PURE__ */ f("p", {
59
+ className: "text-2xl font-bold",
60
+ children: ["$", g.allocated.toLocaleString()]
61
+ })]
62
+ }) }),
63
+ /* @__PURE__ */ d(o, { children: /* @__PURE__ */ f(s, {
64
+ className: "pt-4",
65
+ children: [
66
+ /* @__PURE__ */ d("p", {
67
+ className: "text-sm text-muted-foreground",
68
+ children: "Spent"
69
+ }),
70
+ /* @__PURE__ */ f("p", {
71
+ className: "text-2xl font-bold",
72
+ children: ["$", g.spent.toLocaleString()]
73
+ }),
74
+ /* @__PURE__ */ f("p", {
75
+ className: "text-xs text-muted-foreground",
76
+ children: [v, "% utilized"]
77
+ })
78
+ ]
79
+ }) }),
80
+ /* @__PURE__ */ d(o, { children: /* @__PURE__ */ f(s, {
81
+ className: "pt-4",
82
+ children: [/* @__PURE__ */ d("p", {
83
+ className: "text-sm text-muted-foreground",
84
+ children: "Remaining"
85
+ }), /* @__PURE__ */ f("p", {
86
+ className: `text-2xl font-bold ${g.remaining < 0 ? "text-red-600" : "text-green-600"}`,
87
+ children: ["$", g.remaining.toLocaleString()]
88
+ })]
89
+ }) })
90
+ ]
91
+ }),
92
+ /* @__PURE__ */ f(o, { children: [/* @__PURE__ */ d(l, { children: /* @__PURE__ */ d(u, { children: "Budget Utilization" }) }), /* @__PURE__ */ f(s, { children: [/* @__PURE__ */ d("div", {
93
+ className: "h-4 rounded-full bg-muted overflow-hidden",
94
+ children: /* @__PURE__ */ d("div", {
95
+ className: `h-full rounded-full transition-all ${g.status === "over_budget" ? "bg-red-500" : "bg-primary"}`,
96
+ style: { width: `${Math.min(v, 100)}%` }
97
+ })
98
+ }), /* @__PURE__ */ f("p", {
99
+ className: "text-sm text-muted-foreground mt-2",
100
+ children: [
101
+ v,
102
+ "% of $",
103
+ g.allocated.toLocaleString(),
104
+ " allocated budget consumed"
105
+ ]
106
+ })] })] }),
107
+ /* @__PURE__ */ f(o, { children: [/* @__PURE__ */ f(l, { children: [/* @__PURE__ */ d(u, { children: "Related Transactions" }), /* @__PURE__ */ f(c, { children: [
108
+ "Transactions in ",
109
+ g.category,
110
+ " category"
111
+ ] })] }), /* @__PURE__ */ d(s, {
112
+ className: "p-0",
113
+ children: /* @__PURE__ */ d("div", {
114
+ className: "overflow-x-auto",
115
+ children: /* @__PURE__ */ f("table", {
116
+ className: "w-full text-sm",
117
+ children: [/* @__PURE__ */ d("thead", { children: /* @__PURE__ */ f("tr", {
118
+ className: "border-b bg-muted/50",
119
+ children: [
120
+ /* @__PURE__ */ d("th", {
121
+ className: "text-left p-3 font-medium",
122
+ children: "ID"
123
+ }),
124
+ /* @__PURE__ */ d("th", {
125
+ className: "text-left p-3 font-medium",
126
+ children: "Description"
127
+ }),
128
+ /* @__PURE__ */ d("th", {
129
+ className: "text-right p-3 font-medium",
130
+ children: "Amount"
131
+ }),
132
+ /* @__PURE__ */ d("th", {
133
+ className: "text-left p-3 font-medium",
134
+ children: "Status"
135
+ }),
136
+ /* @__PURE__ */ d("th", {
137
+ className: "text-left p-3 font-medium",
138
+ children: "Date"
139
+ })
140
+ ]
141
+ }) }), /* @__PURE__ */ f("tbody", { children: [_.map((e) => /* @__PURE__ */ f("tr", {
142
+ className: "border-b hover:bg-muted/50",
143
+ children: [
144
+ /* @__PURE__ */ d("td", {
145
+ className: "p-3 font-mono text-xs",
146
+ children: e.id
147
+ }),
148
+ /* @__PURE__ */ d("td", {
149
+ className: "p-3 truncate max-w-xs",
150
+ children: e.description
151
+ }),
152
+ /* @__PURE__ */ f("td", {
153
+ className: "p-3 text-right font-medium",
154
+ children: ["$", Math.abs(e.amount).toLocaleString()]
155
+ }),
156
+ /* @__PURE__ */ d("td", {
157
+ className: "p-3",
158
+ children: /* @__PURE__ */ d(i, {
159
+ variant: "outline",
160
+ children: e.status
161
+ })
162
+ }),
163
+ /* @__PURE__ */ d("td", {
164
+ className: "p-3 text-xs",
165
+ children: new Date(e.date).toLocaleDateString()
166
+ })
167
+ ]
168
+ }, e.id)), _.length === 0 && /* @__PURE__ */ d("tr", { children: /* @__PURE__ */ d("td", {
169
+ colSpan: 5,
170
+ className: "text-center py-8 text-muted-foreground",
171
+ children: "No related transactions."
172
+ }) })] })]
173
+ })
174
+ })
175
+ })] })
176
+ ]
177
+ });
178
+ }
179
+ //#endregion
180
+ export { p as FinanceBudgetDetailPage };
181
+
182
+ //# sourceMappingURL=FinanceBudgetDetailPage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FinanceBudgetDetailPage.js","names":[],"sources":["../../../src/assethandler/pages/FinanceBudgetDetailPage.tsx"],"sourcesContent":["import {\n Badge,\n Button,\n Card,\n CardContent,\n CardDescription,\n CardHeader,\n CardTitle,\n Separator,\n} from '@burdenoff/fe-libs/ui';\nimport { ArrowLeft, DollarSign, Edit } from 'lucide-react';\nimport { useParams } from 'react-router-dom';\nimport { useAssetHandlerStore } from '../store/assethandlerStore';\n\nexport function FinanceBudgetDetailPage() {\n const { budgetId } = useParams<{ budgetId: string }>();\n const { budgets, transactions } = useAssetHandlerStore();\n const budget = budgets.find((item) => item.id === budgetId) ?? budgets[0];\n\n if (!budget)\n return (\n <div className=\"p-6\">\n <p className=\"text-muted-foreground\">Budget not found.</p>\n </div>\n );\n\n const relatedTxns = transactions.filter((t) => t.category === budget.category);\n const utilizationPct = Math.round((budget.spent / budget.allocated) * 100);\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\">{budget.name}</h1>\n <Badge\n variant={\n budget.status === 'over_budget'\n ? 'destructive'\n : budget.status === 'under_budget'\n ? 'secondary'\n : 'default'\n }\n >\n {budget.status.replace('_', ' ')}\n </Badge>\n </div>\n <p className=\"text-sm text-muted-foreground mt-1\">\n {budget.department} &middot; {budget.period}\n </p>\n </div>\n </div>\n <Button size=\"sm\">\n <Edit className=\"mr-2 h-4 w-4\" />\n Edit Budget\n </Button>\n </div>\n\n <div className=\"grid gap-4 md:grid-cols-3\">\n <Card>\n <CardContent className=\"pt-4\">\n <p className=\"text-sm text-muted-foreground\">Allocated</p>\n <p className=\"text-2xl font-bold\">${budget.allocated.toLocaleString()}</p>\n </CardContent>\n </Card>\n <Card>\n <CardContent className=\"pt-4\">\n <p className=\"text-sm text-muted-foreground\">Spent</p>\n <p className=\"text-2xl font-bold\">${budget.spent.toLocaleString()}</p>\n <p className=\"text-xs text-muted-foreground\">{utilizationPct}% utilized</p>\n </CardContent>\n </Card>\n <Card>\n <CardContent className=\"pt-4\">\n <p className=\"text-sm text-muted-foreground\">Remaining</p>\n <p\n className={`text-2xl font-bold ${budget.remaining < 0 ? 'text-red-600' : 'text-green-600'}`}\n >\n ${budget.remaining.toLocaleString()}\n </p>\n </CardContent>\n </Card>\n </div>\n\n <Card>\n <CardHeader>\n <CardTitle>Budget Utilization</CardTitle>\n </CardHeader>\n <CardContent>\n <div className=\"h-4 rounded-full bg-muted overflow-hidden\">\n <div\n className={`h-full rounded-full transition-all ${budget.status === 'over_budget' ? 'bg-red-500' : 'bg-primary'}`}\n style={{ width: `${Math.min(utilizationPct, 100)}%` }}\n />\n </div>\n <p className=\"text-sm text-muted-foreground mt-2\">\n {utilizationPct}% of ${budget.allocated.toLocaleString()} allocated budget consumed\n </p>\n </CardContent>\n </Card>\n\n <Card>\n <CardHeader>\n <CardTitle>Related Transactions</CardTitle>\n <CardDescription>Transactions in {budget.category} category</CardDescription>\n </CardHeader>\n <CardContent className=\"p-0\">\n <div className=\"overflow-x-auto\">\n <table className=\"w-full text-sm\">\n <thead>\n <tr className=\"border-b bg-muted/50\">\n <th className=\"text-left p-3 font-medium\">ID</th>\n <th className=\"text-left p-3 font-medium\">Description</th>\n <th className=\"text-right p-3 font-medium\">Amount</th>\n <th className=\"text-left p-3 font-medium\">Status</th>\n <th className=\"text-left p-3 font-medium\">Date</th>\n </tr>\n </thead>\n <tbody>\n {relatedTxns.map((txn) => (\n <tr key={txn.id} className=\"border-b hover:bg-muted/50\">\n <td className=\"p-3 font-mono text-xs\">{txn.id}</td>\n <td className=\"p-3 truncate max-w-xs\">{txn.description}</td>\n <td className=\"p-3 text-right font-medium\">\n ${Math.abs(txn.amount).toLocaleString()}\n </td>\n <td className=\"p-3\">\n <Badge variant=\"outline\">{txn.status}</Badge>\n </td>\n <td className=\"p-3 text-xs\">{new Date(txn.date).toLocaleDateString()}</td>\n </tr>\n ))}\n {relatedTxns.length === 0 && (\n <tr>\n <td colSpan={5} className=\"text-center py-8 text-muted-foreground\">\n No related transactions.\n </td>\n </tr>\n )}\n </tbody>\n </table>\n </div>\n </CardContent>\n </Card>\n </div>\n );\n}\n"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function FinanceFinanceHubPage(): import("react/jsx-runtime").JSX.Element;
2
+ //# sourceMappingURL=FinanceFinanceHubPage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FinanceFinanceHubPage.d.ts","sourceRoot":"","sources":["../../../src/assethandler/pages/FinanceFinanceHubPage.tsx"],"names":[],"mappings":"AAyBA,wBAAgB,qBAAqB,4CA2NpC"}