@burdenoff/microfe-theglobalfuel 2026.509.101

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 (112) hide show
  1. package/README.md +12 -0
  2. package/dist/dev/main.d.ts +2 -0
  3. package/dist/dev/main.d.ts.map +1 -0
  4. package/dist/generated/global-operations.d.ts +2 -0
  5. package/dist/generated/global-operations.d.ts.map +1 -0
  6. package/dist/generated/global-types.d.ts +18199 -0
  7. package/dist/generated/global-types.d.ts.map +1 -0
  8. package/dist/generated/wspace-operations.d.ts +2 -0
  9. package/dist/generated/wspace-operations.d.ts.map +1 -0
  10. package/dist/generated/wspace-types.d.ts +43046 -0
  11. package/dist/generated/wspace-types.d.ts.map +1 -0
  12. package/dist/index.d.ts +2 -0
  13. package/dist/index.d.ts.map +1 -0
  14. package/dist/index.js +5 -0
  15. package/dist/node_modules/clsx/dist/clsx.js +18 -0
  16. package/dist/node_modules/clsx/dist/clsx.js.map +1 -0
  17. package/dist/node_modules/tailwind-merge/dist/bundle-mjs.js +1674 -0
  18. package/dist/node_modules/tailwind-merge/dist/bundle-mjs.js.map +1 -0
  19. package/dist/theglobalfuel/TheGlobalFuelRoot.d.ts +5 -0
  20. package/dist/theglobalfuel/TheGlobalFuelRoot.d.ts.map +1 -0
  21. package/dist/theglobalfuel/TheGlobalFuelRoot.js +175 -0
  22. package/dist/theglobalfuel/TheGlobalFuelRoot.js.map +1 -0
  23. package/dist/theglobalfuel/TheGlobalFuelRoutes.d.ts +2 -0
  24. package/dist/theglobalfuel/TheGlobalFuelRoutes.d.ts.map +1 -0
  25. package/dist/theglobalfuel/TheGlobalFuelRoutes.js +91 -0
  26. package/dist/theglobalfuel/TheGlobalFuelRoutes.js.map +1 -0
  27. package/dist/theglobalfuel/index.d.ts +5 -0
  28. package/dist/theglobalfuel/index.d.ts.map +1 -0
  29. package/dist/theglobalfuel/index.js +3 -0
  30. package/dist/theglobalfuel/pages/AiIntelligencePage.d.ts +2 -0
  31. package/dist/theglobalfuel/pages/AiIntelligencePage.d.ts.map +1 -0
  32. package/dist/theglobalfuel/pages/AiIntelligencePage.js +190 -0
  33. package/dist/theglobalfuel/pages/AiIntelligencePage.js.map +1 -0
  34. package/dist/theglobalfuel/pages/AnalyticsPage.d.ts +2 -0
  35. package/dist/theglobalfuel/pages/AnalyticsPage.d.ts.map +1 -0
  36. package/dist/theglobalfuel/pages/AnalyticsPage.js +241 -0
  37. package/dist/theglobalfuel/pages/AnalyticsPage.js.map +1 -0
  38. package/dist/theglobalfuel/pages/CompliancePage.d.ts +2 -0
  39. package/dist/theglobalfuel/pages/CompliancePage.d.ts.map +1 -0
  40. package/dist/theglobalfuel/pages/CompliancePage.js +173 -0
  41. package/dist/theglobalfuel/pages/CompliancePage.js.map +1 -0
  42. package/dist/theglobalfuel/pages/DashboardPage.d.ts +2 -0
  43. package/dist/theglobalfuel/pages/DashboardPage.d.ts.map +1 -0
  44. package/dist/theglobalfuel/pages/DashboardPage.js +145 -0
  45. package/dist/theglobalfuel/pages/DashboardPage.js.map +1 -0
  46. package/dist/theglobalfuel/pages/FinancialPage.d.ts +2 -0
  47. package/dist/theglobalfuel/pages/FinancialPage.d.ts.map +1 -0
  48. package/dist/theglobalfuel/pages/FinancialPage.js +204 -0
  49. package/dist/theglobalfuel/pages/FinancialPage.js.map +1 -0
  50. package/dist/theglobalfuel/pages/FleetManagementPage.d.ts +2 -0
  51. package/dist/theglobalfuel/pages/FleetManagementPage.d.ts.map +1 -0
  52. package/dist/theglobalfuel/pages/FleetManagementPage.js +244 -0
  53. package/dist/theglobalfuel/pages/FleetManagementPage.js.map +1 -0
  54. package/dist/theglobalfuel/pages/MarketplacePage.d.ts +2 -0
  55. package/dist/theglobalfuel/pages/MarketplacePage.d.ts.map +1 -0
  56. package/dist/theglobalfuel/pages/MarketplacePage.js +260 -0
  57. package/dist/theglobalfuel/pages/MarketplacePage.js.map +1 -0
  58. package/dist/theglobalfuel/pages/OperationsPage.d.ts +2 -0
  59. package/dist/theglobalfuel/pages/OperationsPage.d.ts.map +1 -0
  60. package/dist/theglobalfuel/pages/OperationsPage.js +190 -0
  61. package/dist/theglobalfuel/pages/OperationsPage.js.map +1 -0
  62. package/dist/theglobalfuel/pages/QualityControlPage.d.ts +2 -0
  63. package/dist/theglobalfuel/pages/QualityControlPage.d.ts.map +1 -0
  64. package/dist/theglobalfuel/pages/QualityControlPage.js +215 -0
  65. package/dist/theglobalfuel/pages/QualityControlPage.js.map +1 -0
  66. package/dist/theglobalfuel/pages/ReportsPage.d.ts +2 -0
  67. package/dist/theglobalfuel/pages/ReportsPage.d.ts.map +1 -0
  68. package/dist/theglobalfuel/pages/ReportsPage.js +247 -0
  69. package/dist/theglobalfuel/pages/ReportsPage.js.map +1 -0
  70. package/dist/theglobalfuel/pages/ResourcesPage.d.ts +2 -0
  71. package/dist/theglobalfuel/pages/ResourcesPage.d.ts.map +1 -0
  72. package/dist/theglobalfuel/pages/ResourcesPage.js +225 -0
  73. package/dist/theglobalfuel/pages/ResourcesPage.js.map +1 -0
  74. package/dist/theglobalfuel/pages/RiskManagementPage.d.ts +2 -0
  75. package/dist/theglobalfuel/pages/RiskManagementPage.d.ts.map +1 -0
  76. package/dist/theglobalfuel/pages/RiskManagementPage.js +230 -0
  77. package/dist/theglobalfuel/pages/RiskManagementPage.js.map +1 -0
  78. package/dist/theglobalfuel/pages/SupplyChainPage.d.ts +2 -0
  79. package/dist/theglobalfuel/pages/SupplyChainPage.d.ts.map +1 -0
  80. package/dist/theglobalfuel/pages/SupplyChainPage.js +214 -0
  81. package/dist/theglobalfuel/pages/SupplyChainPage.js.map +1 -0
  82. package/dist/theglobalfuel/pages/SustainabilityPage.d.ts +2 -0
  83. package/dist/theglobalfuel/pages/SustainabilityPage.d.ts.map +1 -0
  84. package/dist/theglobalfuel/pages/SustainabilityPage.js +261 -0
  85. package/dist/theglobalfuel/pages/SustainabilityPage.js.map +1 -0
  86. package/dist/theglobalfuel/pages/TrainingPage.d.ts +2 -0
  87. package/dist/theglobalfuel/pages/TrainingPage.d.ts.map +1 -0
  88. package/dist/theglobalfuel/pages/TrainingPage.js +253 -0
  89. package/dist/theglobalfuel/pages/TrainingPage.js.map +1 -0
  90. package/dist/theglobalfuel/providers/TheGlobalFuelProvider.d.ts +6 -0
  91. package/dist/theglobalfuel/providers/TheGlobalFuelProvider.d.ts.map +1 -0
  92. package/dist/theglobalfuel/providers/TheGlobalFuelProvider.js +27 -0
  93. package/dist/theglobalfuel/providers/TheGlobalFuelProvider.js.map +1 -0
  94. package/dist/theglobalfuel/store/theglobalfuelStore.d.ts +163 -0
  95. package/dist/theglobalfuel/store/theglobalfuelStore.d.ts.map +1 -0
  96. package/dist/theglobalfuel/store/theglobalfuelStore.js +712 -0
  97. package/dist/theglobalfuel/store/theglobalfuelStore.js.map +1 -0
  98. package/dist/theglobalfuel/types/index.d.ts +51 -0
  99. package/dist/theglobalfuel/types/index.d.ts.map +1 -0
  100. package/dist/theglobalfuel/utils/cn.d.ts +4 -0
  101. package/dist/theglobalfuel/utils/cn.d.ts.map +1 -0
  102. package/dist/theglobalfuel/utils/cn.js +10 -0
  103. package/dist/theglobalfuel/utils/cn.js.map +1 -0
  104. package/dist/theglobalfuel/utils/i18n.d.ts +6 -0
  105. package/dist/theglobalfuel/utils/i18n.d.ts.map +1 -0
  106. package/dist/theglobalfuel/utils/i18n.js +15 -0
  107. package/dist/theglobalfuel/utils/i18n.js.map +1 -0
  108. package/dist/theglobalfuel/utils/navigation.d.ts +2 -0
  109. package/dist/theglobalfuel/utils/navigation.d.ts.map +1 -0
  110. package/dist/theglobalfuel/utils/navigation.js +8 -0
  111. package/dist/theglobalfuel/utils/navigation.js.map +1 -0
  112. package/package.json +107 -0
@@ -0,0 +1,247 @@
1
+ import { BarChart3 as e, Calendar as t, Download as n, FileText as r, Fuel as i, TrendingUp as a } from "lucide-react";
2
+ import { jsx as o, jsxs as s } from "react/jsx-runtime";
3
+ import { Badge as c, Button as l, Card as u, CardContent as d, CardHeader as f, CardTitle as p, Tabs as m, TabsContent as h, TabsList as g, TabsTrigger as _ } from "@burdenoff/fe-libs/ui";
4
+ //#region src/theglobalfuel/pages/ReportsPage.tsx
5
+ var v = [
6
+ {
7
+ id: "operations",
8
+ name: "Operations Reports",
9
+ icon: e,
10
+ reports: [
11
+ {
12
+ id: "RPT-001",
13
+ title: "Monthly Production Summary",
14
+ desc: "Refinery throughput, yield, and efficiency metrics",
15
+ type: "PDF",
16
+ freq: "Monthly",
17
+ size: "3.4 MB"
18
+ },
19
+ {
20
+ id: "RPT-002",
21
+ title: "Pipeline Throughput Report",
22
+ desc: "Pipeline flow rates, pressures, and integrity data",
23
+ type: "Excel",
24
+ freq: "Weekly",
25
+ size: "2.1 MB"
26
+ },
27
+ {
28
+ id: "RPT-003",
29
+ title: "Turnaround Performance",
30
+ desc: "Unit turnaround schedule, costs, and completion metrics",
31
+ type: "PDF",
32
+ freq: "As-needed",
33
+ size: "4.8 MB"
34
+ }
35
+ ]
36
+ },
37
+ {
38
+ id: "financial",
39
+ name: "Financial Reports",
40
+ icon: a,
41
+ reports: [{
42
+ id: "RPT-004",
43
+ title: "Refining Margin Analysis",
44
+ desc: "Crack spreads, feedstock costs, and product revenues",
45
+ type: "PDF",
46
+ freq: "Weekly",
47
+ size: "1.8 MB"
48
+ }, {
49
+ id: "RPT-005",
50
+ title: "Crude Oil P&L",
51
+ desc: "Trading positions, hedging outcomes, and spot/forward analysis",
52
+ type: "Excel",
53
+ freq: "Daily",
54
+ size: "1.2 MB"
55
+ }]
56
+ },
57
+ {
58
+ id: "esg",
59
+ name: "ESG & Compliance",
60
+ icon: i,
61
+ reports: [{
62
+ id: "RPT-006",
63
+ title: "EPA Emissions Report",
64
+ desc: "Scope 1/2/3 emissions, flare data, and compliance status",
65
+ type: "PDF",
66
+ freq: "Quarterly",
67
+ size: "5.2 MB"
68
+ }, {
69
+ id: "RPT-007",
70
+ title: "Safety Incident Report",
71
+ desc: "OSHA recordable incidents, near-misses, and corrective actions",
72
+ type: "PDF",
73
+ freq: "Monthly",
74
+ size: "2.0 MB"
75
+ }]
76
+ }
77
+ ];
78
+ function y() {
79
+ return /* @__PURE__ */ s("div", {
80
+ className: "space-y-6 p-6",
81
+ children: [
82
+ /* @__PURE__ */ s("div", {
83
+ className: "flex items-center justify-between",
84
+ children: [/* @__PURE__ */ s("div", { children: [/* @__PURE__ */ s("h1", {
85
+ className: "flex items-center gap-2 text-2xl font-semibold",
86
+ children: [/* @__PURE__ */ o(r, { className: "h-7 w-7 text-blue-600" }), "Reports & Documentation"]
87
+ }), /* @__PURE__ */ o("p", {
88
+ className: "mt-1 text-sm text-muted-foreground",
89
+ children: "Operational, financial, and compliance reports for energy operations"
90
+ })] }), /* @__PURE__ */ s(l, { children: [/* @__PURE__ */ o(r, { className: "mr-2 h-4 w-4" }), "Custom Report"] })]
91
+ }),
92
+ /* @__PURE__ */ s("div", {
93
+ className: "grid gap-4 md:grid-cols-3",
94
+ children: [
95
+ /* @__PURE__ */ s(u, { children: [/* @__PURE__ */ s(f, {
96
+ className: "flex flex-row items-center justify-between space-y-0 pb-2",
97
+ children: [/* @__PURE__ */ o(p, {
98
+ className: "text-sm font-medium",
99
+ children: "Total Reports"
100
+ }), /* @__PURE__ */ o(r, { className: "h-4 w-4 text-blue-600" })]
101
+ }), /* @__PURE__ */ s(d, { children: [/* @__PURE__ */ o("div", {
102
+ className: "text-2xl font-bold",
103
+ children: v.reduce((e, t) => e + t.reports.length, 0)
104
+ }), /* @__PURE__ */ o("p", {
105
+ className: "text-xs text-muted-foreground",
106
+ children: "Across all categories"
107
+ })] })] }),
108
+ /* @__PURE__ */ s(u, { children: [/* @__PURE__ */ s(f, {
109
+ className: "flex flex-row items-center justify-between space-y-0 pb-2",
110
+ children: [/* @__PURE__ */ o(p, {
111
+ className: "text-sm font-medium",
112
+ children: "Generated This Month"
113
+ }), /* @__PURE__ */ o(t, { className: "h-4 w-4 text-green-600" })]
114
+ }), /* @__PURE__ */ s(d, { children: [/* @__PURE__ */ o("div", {
115
+ className: "text-2xl font-bold",
116
+ children: "12"
117
+ }), /* @__PURE__ */ o("p", {
118
+ className: "text-xs text-muted-foreground",
119
+ children: "Automated + manual"
120
+ })] })] }),
121
+ /* @__PURE__ */ s(u, { children: [/* @__PURE__ */ s(f, {
122
+ className: "flex flex-row items-center justify-between space-y-0 pb-2",
123
+ children: [/* @__PURE__ */ o(p, {
124
+ className: "text-sm font-medium",
125
+ children: "Scheduled"
126
+ }), /* @__PURE__ */ o(t, { className: "h-4 w-4 text-purple-600" })]
127
+ }), /* @__PURE__ */ s(d, { children: [/* @__PURE__ */ o("div", {
128
+ className: "text-2xl font-bold",
129
+ children: "5"
130
+ }), /* @__PURE__ */ o("p", {
131
+ className: "text-xs text-muted-foreground",
132
+ children: "Auto-generation"
133
+ })] })] })
134
+ ]
135
+ }),
136
+ /* @__PURE__ */ s(m, {
137
+ defaultValue: "all",
138
+ children: [
139
+ /* @__PURE__ */ s(g, { children: [/* @__PURE__ */ o(_, {
140
+ value: "all",
141
+ children: "All Reports"
142
+ }), /* @__PURE__ */ o(_, {
143
+ value: "recent",
144
+ children: "Recent"
145
+ })] }),
146
+ /* @__PURE__ */ o(h, {
147
+ value: "all",
148
+ className: "mt-4 space-y-6",
149
+ children: v.map((e) => {
150
+ let r = e.icon;
151
+ return /* @__PURE__ */ s(u, { children: [/* @__PURE__ */ o(f, { children: /* @__PURE__ */ s("div", {
152
+ className: "flex items-start gap-3",
153
+ children: [/* @__PURE__ */ o("div", {
154
+ className: "rounded bg-blue-100 p-2",
155
+ children: /* @__PURE__ */ o(r, { className: "h-6 w-6 text-blue-600" })
156
+ }), /* @__PURE__ */ o("div", { children: /* @__PURE__ */ o(p, { children: e.name }) })]
157
+ }) }), /* @__PURE__ */ o(d, {
158
+ className: "space-y-3",
159
+ children: e.reports.map((e) => /* @__PURE__ */ s("div", {
160
+ className: "flex items-start justify-between rounded-lg border p-4",
161
+ children: [/* @__PURE__ */ s("div", {
162
+ className: "flex-1",
163
+ children: [
164
+ /* @__PURE__ */ s("div", {
165
+ className: "mb-1 flex items-center gap-2",
166
+ children: [/* @__PURE__ */ o("h4", {
167
+ className: "font-semibold",
168
+ children: e.title
169
+ }), /* @__PURE__ */ o(c, {
170
+ variant: "outline",
171
+ className: "text-xs",
172
+ children: e.type
173
+ })]
174
+ }),
175
+ /* @__PURE__ */ o("p", {
176
+ className: "mb-2 text-sm text-muted-foreground",
177
+ children: e.desc
178
+ }),
179
+ /* @__PURE__ */ s("div", {
180
+ className: "flex gap-4 text-xs text-muted-foreground",
181
+ children: [/* @__PURE__ */ s("span", {
182
+ className: "flex items-center gap-1",
183
+ children: [/* @__PURE__ */ o(t, { className: "h-3 w-3" }), e.freq]
184
+ }), /* @__PURE__ */ s("span", { children: ["Size: ", e.size] })]
185
+ })
186
+ ]
187
+ }), /* @__PURE__ */ s(l, {
188
+ size: "sm",
189
+ children: [/* @__PURE__ */ o(n, { className: "mr-2 h-4 w-4" }), "Download"]
190
+ })]
191
+ }, e.id))
192
+ })] }, e.id);
193
+ })
194
+ }),
195
+ /* @__PURE__ */ o(h, {
196
+ value: "recent",
197
+ className: "mt-4",
198
+ children: /* @__PURE__ */ s(u, { children: [/* @__PURE__ */ o(f, { children: /* @__PURE__ */ o(p, { children: "Recently Generated" }) }), /* @__PURE__ */ o(d, {
199
+ className: "space-y-3",
200
+ children: [
201
+ {
202
+ title: "Daily Crude P&L",
203
+ date: "Today",
204
+ cat: "Financial"
205
+ },
206
+ {
207
+ title: "Weekly Pipeline Throughput",
208
+ date: "2 days ago",
209
+ cat: "Operations"
210
+ },
211
+ {
212
+ title: "Safety Incident Report",
213
+ date: "5 days ago",
214
+ cat: "Compliance"
215
+ }
216
+ ].map((e, t) => /* @__PURE__ */ s("div", {
217
+ className: "flex items-center justify-between rounded-lg border p-3",
218
+ children: [/* @__PURE__ */ s("div", {
219
+ className: "flex items-center gap-3",
220
+ children: [/* @__PURE__ */ o(r, { className: "h-5 w-5 text-blue-600" }), /* @__PURE__ */ s("div", { children: [/* @__PURE__ */ o("p", {
221
+ className: "font-medium",
222
+ children: e.title
223
+ }), /* @__PURE__ */ s("div", {
224
+ className: "flex gap-2 text-xs text-muted-foreground",
225
+ children: [/* @__PURE__ */ o(c, {
226
+ variant: "outline",
227
+ className: "text-xs",
228
+ children: e.cat
229
+ }), /* @__PURE__ */ o("span", { children: e.date })]
230
+ })] })]
231
+ }), /* @__PURE__ */ o(l, {
232
+ size: "sm",
233
+ variant: "outline",
234
+ children: /* @__PURE__ */ o(n, { className: "h-4 w-4" })
235
+ })]
236
+ }, t))
237
+ })] })
238
+ })
239
+ ]
240
+ })
241
+ ]
242
+ });
243
+ }
244
+ //#endregion
245
+ export { y as ReportsPage };
246
+
247
+ //# sourceMappingURL=ReportsPage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReportsPage.js","names":[],"sources":["../../../src/theglobalfuel/pages/ReportsPage.tsx"],"sourcesContent":["import {\n Card,\n CardContent,\n CardHeader,\n CardTitle,\n Badge,\n Button,\n Tabs,\n TabsList,\n TabsTrigger,\n TabsContent,\n} from '@burdenoff/fe-libs/ui';\nimport { FileText, Download, Calendar, TrendingUp, BarChart3, Fuel } from 'lucide-react';\n\nconst reportCategories = [\n {\n id: 'operations',\n name: 'Operations Reports',\n icon: BarChart3,\n reports: [\n {\n id: 'RPT-001',\n title: 'Monthly Production Summary',\n desc: 'Refinery throughput, yield, and efficiency metrics',\n type: 'PDF',\n freq: 'Monthly',\n size: '3.4 MB',\n },\n {\n id: 'RPT-002',\n title: 'Pipeline Throughput Report',\n desc: 'Pipeline flow rates, pressures, and integrity data',\n type: 'Excel',\n freq: 'Weekly',\n size: '2.1 MB',\n },\n {\n id: 'RPT-003',\n title: 'Turnaround Performance',\n desc: 'Unit turnaround schedule, costs, and completion metrics',\n type: 'PDF',\n freq: 'As-needed',\n size: '4.8 MB',\n },\n ],\n },\n {\n id: 'financial',\n name: 'Financial Reports',\n icon: TrendingUp,\n reports: [\n {\n id: 'RPT-004',\n title: 'Refining Margin Analysis',\n desc: 'Crack spreads, feedstock costs, and product revenues',\n type: 'PDF',\n freq: 'Weekly',\n size: '1.8 MB',\n },\n {\n id: 'RPT-005',\n title: 'Crude Oil P&L',\n desc: 'Trading positions, hedging outcomes, and spot/forward analysis',\n type: 'Excel',\n freq: 'Daily',\n size: '1.2 MB',\n },\n ],\n },\n {\n id: 'esg',\n name: 'ESG & Compliance',\n icon: Fuel,\n reports: [\n {\n id: 'RPT-006',\n title: 'EPA Emissions Report',\n desc: 'Scope 1/2/3 emissions, flare data, and compliance status',\n type: 'PDF',\n freq: 'Quarterly',\n size: '5.2 MB',\n },\n {\n id: 'RPT-007',\n title: 'Safety Incident Report',\n desc: 'OSHA recordable incidents, near-misses, and corrective actions',\n type: 'PDF',\n freq: 'Monthly',\n size: '2.0 MB',\n },\n ],\n },\n];\n\nexport function ReportsPage() {\n return (\n <div className=\"space-y-6 p-6\">\n <div className=\"flex items-center justify-between\">\n <div>\n <h1 className=\"flex items-center gap-2 text-2xl font-semibold\">\n <FileText className=\"h-7 w-7 text-blue-600\" />\n Reports &amp; Documentation\n </h1>\n <p className=\"mt-1 text-sm text-muted-foreground\">\n Operational, financial, and compliance reports for energy operations\n </p>\n </div>\n <Button>\n <FileText className=\"mr-2 h-4 w-4\" />\n Custom Report\n </Button>\n </div>\n <div className=\"grid gap-4 md:grid-cols-3\">\n <Card>\n <CardHeader className=\"flex flex-row items-center justify-between space-y-0 pb-2\">\n <CardTitle className=\"text-sm font-medium\">Total Reports</CardTitle>\n <FileText className=\"h-4 w-4 text-blue-600\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold\">\n {reportCategories.reduce((a, c) => a + c.reports.length, 0)}\n </div>\n <p className=\"text-xs text-muted-foreground\">Across all categories</p>\n </CardContent>\n </Card>\n <Card>\n <CardHeader className=\"flex flex-row items-center justify-between space-y-0 pb-2\">\n <CardTitle className=\"text-sm font-medium\">Generated This Month</CardTitle>\n <Calendar className=\"h-4 w-4 text-green-600\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold\">12</div>\n <p className=\"text-xs text-muted-foreground\">Automated + manual</p>\n </CardContent>\n </Card>\n <Card>\n <CardHeader className=\"flex flex-row items-center justify-between space-y-0 pb-2\">\n <CardTitle className=\"text-sm font-medium\">Scheduled</CardTitle>\n <Calendar className=\"h-4 w-4 text-purple-600\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold\">5</div>\n <p className=\"text-xs text-muted-foreground\">Auto-generation</p>\n </CardContent>\n </Card>\n </div>\n <Tabs defaultValue=\"all\">\n <TabsList>\n <TabsTrigger value=\"all\">All Reports</TabsTrigger>\n <TabsTrigger value=\"recent\">Recent</TabsTrigger>\n </TabsList>\n <TabsContent value=\"all\" className=\"mt-4 space-y-6\">\n {reportCategories.map((cat) => {\n const Icon = cat.icon;\n return (\n <Card key={cat.id}>\n <CardHeader>\n <div className=\"flex items-start gap-3\">\n <div className=\"rounded bg-blue-100 p-2\">\n <Icon className=\"h-6 w-6 text-blue-600\" />\n </div>\n <div>\n <CardTitle>{cat.name}</CardTitle>\n </div>\n </div>\n </CardHeader>\n <CardContent className=\"space-y-3\">\n {cat.reports.map((r) => (\n <div\n key={r.id}\n className=\"flex items-start justify-between rounded-lg border p-4\"\n >\n <div className=\"flex-1\">\n <div className=\"mb-1 flex items-center gap-2\">\n <h4 className=\"font-semibold\">{r.title}</h4>\n <Badge variant=\"outline\" className=\"text-xs\">\n {r.type}\n </Badge>\n </div>\n <p className=\"mb-2 text-sm text-muted-foreground\">{r.desc}</p>\n <div className=\"flex gap-4 text-xs text-muted-foreground\">\n <span className=\"flex items-center gap-1\">\n <Calendar className=\"h-3 w-3\" />\n {r.freq}\n </span>\n <span>Size: {r.size}</span>\n </div>\n </div>\n <Button size=\"sm\">\n <Download className=\"mr-2 h-4 w-4\" />\n Download\n </Button>\n </div>\n ))}\n </CardContent>\n </Card>\n );\n })}\n </TabsContent>\n <TabsContent value=\"recent\" className=\"mt-4\">\n <Card>\n <CardHeader>\n <CardTitle>Recently Generated</CardTitle>\n </CardHeader>\n <CardContent className=\"space-y-3\">\n {[\n { title: 'Daily Crude P&L', date: 'Today', cat: 'Financial' },\n { title: 'Weekly Pipeline Throughput', date: '2 days ago', cat: 'Operations' },\n { title: 'Safety Incident Report', date: '5 days ago', cat: 'Compliance' },\n ].map((r, i) => (\n <div key={i} className=\"flex items-center justify-between rounded-lg border p-3\">\n <div className=\"flex items-center gap-3\">\n <FileText className=\"h-5 w-5 text-blue-600\" />\n <div>\n <p className=\"font-medium\">{r.title}</p>\n <div className=\"flex gap-2 text-xs text-muted-foreground\">\n <Badge variant=\"outline\" className=\"text-xs\">\n {r.cat}\n </Badge>\n <span>{r.date}</span>\n </div>\n </div>\n </div>\n <Button size=\"sm\" variant=\"outline\">\n <Download className=\"h-4 w-4\" />\n </Button>\n </div>\n ))}\n </CardContent>\n </Card>\n </TabsContent>\n </Tabs>\n </div>\n );\n}\n"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function ResourcesPage(): import("react/jsx-runtime").JSX.Element;
2
+ //# sourceMappingURL=ResourcesPage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResourcesPage.d.ts","sourceRoot":"","sources":["../../../src/theglobalfuel/pages/ResourcesPage.tsx"],"names":[],"mappings":"AAeA,wBAAgB,aAAa,4CAiM5B"}
@@ -0,0 +1,225 @@
1
+ import { useTheGlobalFuelStore as e } from "../store/theglobalfuelStore.js";
2
+ import { AlertCircle as t, BarChart3 as n, Droplets as r, Fuel as i, Package as a } from "lucide-react";
3
+ import { jsx as o, jsxs as s } from "react/jsx-runtime";
4
+ import { Badge as c, Button as l, Card as u, CardContent as d, CardHeader as f, CardTitle as p, Tabs as m, TabsContent as h, TabsList as g, TabsTrigger as _ } from "@burdenoff/fe-libs/ui";
5
+ //#region src/theglobalfuel/pages/ResourcesPage.tsx
6
+ function v() {
7
+ let { facilities: v } = e(), y = [
8
+ {
9
+ name: "WTI Crude Oil",
10
+ location: "Cushing Storage Hub",
11
+ volume: "8.7M bbl",
12
+ capacity: "12M bbl",
13
+ pctFull: 72.5,
14
+ status: "normal"
15
+ },
16
+ {
17
+ name: "ULSD (Diesel)",
18
+ location: "Gulf Coast Terminal",
19
+ volume: "1.8M bbl",
20
+ capacity: "2.5M bbl",
21
+ pctFull: 72,
22
+ status: "normal"
23
+ },
24
+ {
25
+ name: "Gasoline Blend Stock",
26
+ location: "Baytown Tanks",
27
+ volume: "450K bbl",
28
+ capacity: "800K bbl",
29
+ pctFull: 56,
30
+ status: "low"
31
+ },
32
+ {
33
+ name: "Jet Fuel (Jet A-1)",
34
+ location: "Aviation Terminal",
35
+ volume: "320K bbl",
36
+ capacity: "500K bbl",
37
+ pctFull: 64,
38
+ status: "normal"
39
+ },
40
+ {
41
+ name: "Natural Gas",
42
+ location: "Pipeline Station Alpha",
43
+ volume: "2.4 BCF",
44
+ capacity: "5 BCF",
45
+ pctFull: 48,
46
+ status: "low"
47
+ },
48
+ {
49
+ name: "NGL (Natural Gas Liquids)",
50
+ location: "Fractionation Plant",
51
+ volume: "180K bbl",
52
+ capacity: "300K bbl",
53
+ pctFull: 60,
54
+ status: "normal"
55
+ }
56
+ ];
57
+ return /* @__PURE__ */ s("div", {
58
+ className: "space-y-6 p-6",
59
+ children: [
60
+ /* @__PURE__ */ s("div", {
61
+ className: "flex items-center justify-between",
62
+ children: [/* @__PURE__ */ s("div", { children: [/* @__PURE__ */ s("h1", {
63
+ className: "flex items-center gap-2 text-2xl font-semibold",
64
+ children: [/* @__PURE__ */ o(a, { className: "h-7 w-7 text-amber-600" }), "Resource & Inventory Management"]
65
+ }), /* @__PURE__ */ o("p", {
66
+ className: "mt-1 text-sm text-muted-foreground",
67
+ children: "Crude oil, refined product, and natural gas inventory tracking across facilities"
68
+ })] }), /* @__PURE__ */ s(l, { children: [/* @__PURE__ */ o(n, { className: "mr-2 h-4 w-4" }), "Inventory Report"] })]
69
+ }),
70
+ /* @__PURE__ */ s("div", {
71
+ className: "grid gap-4 md:grid-cols-2 lg:grid-cols-4",
72
+ children: [
73
+ /* @__PURE__ */ s(u, { children: [/* @__PURE__ */ s(f, {
74
+ className: "flex flex-row items-center justify-between space-y-0 pb-2",
75
+ children: [/* @__PURE__ */ o(p, {
76
+ className: "text-sm font-medium",
77
+ children: "Total Crude Storage"
78
+ }), /* @__PURE__ */ o(i, { className: "h-4 w-4 text-amber-600" })]
79
+ }), /* @__PURE__ */ s(d, { children: [/* @__PURE__ */ o("div", {
80
+ className: "text-2xl font-bold",
81
+ children: "8.7M bbl"
82
+ }), /* @__PURE__ */ o("p", {
83
+ className: "text-xs text-muted-foreground",
84
+ children: "72.5% capacity"
85
+ })] })] }),
86
+ /* @__PURE__ */ s(u, { children: [/* @__PURE__ */ s(f, {
87
+ className: "flex flex-row items-center justify-between space-y-0 pb-2",
88
+ children: [/* @__PURE__ */ o(p, {
89
+ className: "text-sm font-medium",
90
+ children: "Refined Products"
91
+ }), /* @__PURE__ */ o(r, { className: "h-4 w-4 text-blue-600" })]
92
+ }), /* @__PURE__ */ s(d, { children: [/* @__PURE__ */ o("div", {
93
+ className: "text-2xl font-bold",
94
+ children: "2.57M bbl"
95
+ }), /* @__PURE__ */ o("p", {
96
+ className: "text-xs text-muted-foreground",
97
+ children: "Across all grades"
98
+ })] })] }),
99
+ /* @__PURE__ */ s(u, { children: [/* @__PURE__ */ s(f, {
100
+ className: "flex flex-row items-center justify-between space-y-0 pb-2",
101
+ children: [/* @__PURE__ */ o(p, {
102
+ className: "text-sm font-medium",
103
+ children: "Storage Facilities"
104
+ }), /* @__PURE__ */ o(a, { className: "h-4 w-4 text-green-600" })]
105
+ }), /* @__PURE__ */ s(d, { children: [/* @__PURE__ */ o("div", {
106
+ className: "text-2xl font-bold",
107
+ children: v.length
108
+ }), /* @__PURE__ */ s("p", {
109
+ className: "text-xs text-muted-foreground",
110
+ children: [v.filter((e) => e.status === "operational").length, " operational"]
111
+ })] })] }),
112
+ /* @__PURE__ */ s(u, { children: [/* @__PURE__ */ s(f, {
113
+ className: "flex flex-row items-center justify-between space-y-0 pb-2",
114
+ children: [/* @__PURE__ */ o(p, {
115
+ className: "text-sm font-medium",
116
+ children: "Low Stock Alerts"
117
+ }), /* @__PURE__ */ o(t, { className: "h-4 w-4 text-red-600" })]
118
+ }), /* @__PURE__ */ s(d, { children: [/* @__PURE__ */ o("div", {
119
+ className: "text-2xl font-bold",
120
+ children: y.filter((e) => e.status === "low").length
121
+ }), /* @__PURE__ */ o("p", {
122
+ className: "text-xs text-muted-foreground",
123
+ children: "Below threshold"
124
+ })] })] })
125
+ ]
126
+ }),
127
+ /* @__PURE__ */ s(m, {
128
+ defaultValue: "inventory",
129
+ children: [
130
+ /* @__PURE__ */ s(g, { children: [/* @__PURE__ */ o(_, {
131
+ value: "inventory",
132
+ children: "Inventory"
133
+ }), /* @__PURE__ */ o(_, {
134
+ value: "facilities",
135
+ children: "Storage Facilities"
136
+ })] }),
137
+ /* @__PURE__ */ o(h, {
138
+ value: "inventory",
139
+ className: "mt-4",
140
+ children: /* @__PURE__ */ s(u, { children: [/* @__PURE__ */ o(f, { children: /* @__PURE__ */ o(p, { children: "Current Inventory Levels" }) }), /* @__PURE__ */ o(d, {
141
+ className: "space-y-4",
142
+ children: y.map((e) => /* @__PURE__ */ s("div", {
143
+ className: "rounded-lg border p-4",
144
+ children: [
145
+ /* @__PURE__ */ s("div", {
146
+ className: "mb-2 flex items-center justify-between",
147
+ children: [/* @__PURE__ */ s("div", { children: [/* @__PURE__ */ o("p", {
148
+ className: "font-semibold",
149
+ children: e.name
150
+ }), /* @__PURE__ */ o("p", {
151
+ className: "text-sm text-muted-foreground",
152
+ children: e.location
153
+ })] }), /* @__PURE__ */ s("div", {
154
+ className: "flex items-center gap-2",
155
+ children: [e.status === "low" && /* @__PURE__ */ o(t, { className: "h-4 w-4 text-orange-500" }), /* @__PURE__ */ o(c, {
156
+ variant: "outline",
157
+ className: e.status === "low" ? "text-orange-600" : "text-green-600",
158
+ children: e.status === "low" ? "LOW" : "NORMAL"
159
+ })]
160
+ })]
161
+ }),
162
+ /* @__PURE__ */ s("div", {
163
+ className: "mb-1 flex justify-between text-sm",
164
+ children: [/* @__PURE__ */ s("span", { children: [
165
+ e.volume,
166
+ " / ",
167
+ e.capacity
168
+ ] }), /* @__PURE__ */ s("span", {
169
+ className: "font-medium",
170
+ children: [e.pctFull, "%"]
171
+ })]
172
+ }),
173
+ /* @__PURE__ */ o("div", {
174
+ className: "h-2 w-full rounded-full bg-muted",
175
+ children: /* @__PURE__ */ o("div", {
176
+ className: `h-2 rounded-full ${e.pctFull > 70 ? "bg-green-500" : e.pctFull > 50 ? "bg-amber-500" : "bg-red-500"}`,
177
+ style: { width: `${e.pctFull}%` }
178
+ })
179
+ })
180
+ ]
181
+ }, e.name))
182
+ })] })
183
+ }),
184
+ /* @__PURE__ */ o(h, {
185
+ value: "facilities",
186
+ className: "mt-4",
187
+ children: /* @__PURE__ */ s(u, { children: [/* @__PURE__ */ o(f, { children: /* @__PURE__ */ o(p, { children: "Storage Facilities" }) }), /* @__PURE__ */ o(d, {
188
+ className: "space-y-3",
189
+ children: v.map((e) => /* @__PURE__ */ s("div", {
190
+ className: "flex items-center justify-between rounded-lg border p-4",
191
+ children: [/* @__PURE__ */ s("div", { children: [/* @__PURE__ */ o("p", {
192
+ className: "font-medium",
193
+ children: e.name
194
+ }), /* @__PURE__ */ s("p", {
195
+ className: "text-sm text-muted-foreground",
196
+ children: [
197
+ e.location,
198
+ " · ",
199
+ e.type.replace(/_/g, " ")
200
+ ]
201
+ })] }), /* @__PURE__ */ s("div", {
202
+ className: "flex items-center gap-3",
203
+ children: [/* @__PURE__ */ s("div", {
204
+ className: "text-right",
205
+ children: [/* @__PURE__ */ o("p", {
206
+ className: "text-sm font-medium",
207
+ children: e.capacity
208
+ }), /* @__PURE__ */ s("p", {
209
+ className: "text-xs text-muted-foreground",
210
+ children: [e.utilization, "% utilized"]
211
+ })]
212
+ }), /* @__PURE__ */ o("span", { className: `h-2.5 w-2.5 rounded-full ${e.status === "operational" ? "bg-green-500" : "bg-orange-500"}` })]
213
+ })]
214
+ }, e.id))
215
+ })] })
216
+ })
217
+ ]
218
+ })
219
+ ]
220
+ });
221
+ }
222
+ //#endregion
223
+ export { v as ResourcesPage };
224
+
225
+ //# sourceMappingURL=ResourcesPage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResourcesPage.js","names":[],"sources":["../../../src/theglobalfuel/pages/ResourcesPage.tsx"],"sourcesContent":["import {\n Card,\n CardContent,\n CardHeader,\n CardTitle,\n Badge,\n Button,\n Tabs,\n TabsList,\n TabsTrigger,\n TabsContent,\n} from '@burdenoff/fe-libs/ui';\nimport { Fuel, Package, BarChart3, AlertCircle, TrendingUp, Droplets } from 'lucide-react';\nimport { useTheGlobalFuelStore } from '../store/theglobalfuelStore';\n\nexport function ResourcesPage() {\n const { facilities } = useTheGlobalFuelStore();\n\n const inventoryItems = [\n {\n name: 'WTI Crude Oil',\n location: 'Cushing Storage Hub',\n volume: '8.7M bbl',\n capacity: '12M bbl',\n pctFull: 72.5,\n status: 'normal',\n },\n {\n name: 'ULSD (Diesel)',\n location: 'Gulf Coast Terminal',\n volume: '1.8M bbl',\n capacity: '2.5M bbl',\n pctFull: 72,\n status: 'normal',\n },\n {\n name: 'Gasoline Blend Stock',\n location: 'Baytown Tanks',\n volume: '450K bbl',\n capacity: '800K bbl',\n pctFull: 56,\n status: 'low',\n },\n {\n name: 'Jet Fuel (Jet A-1)',\n location: 'Aviation Terminal',\n volume: '320K bbl',\n capacity: '500K bbl',\n pctFull: 64,\n status: 'normal',\n },\n {\n name: 'Natural Gas',\n location: 'Pipeline Station Alpha',\n volume: '2.4 BCF',\n capacity: '5 BCF',\n pctFull: 48,\n status: 'low',\n },\n {\n name: 'NGL (Natural Gas Liquids)',\n location: 'Fractionation Plant',\n volume: '180K bbl',\n capacity: '300K bbl',\n pctFull: 60,\n status: 'normal',\n },\n ];\n\n return (\n <div className=\"space-y-6 p-6\">\n <div className=\"flex items-center justify-between\">\n <div>\n <h1 className=\"flex items-center gap-2 text-2xl font-semibold\">\n <Package className=\"h-7 w-7 text-amber-600\" />\n Resource &amp; Inventory Management\n </h1>\n <p className=\"mt-1 text-sm text-muted-foreground\">\n Crude oil, refined product, and natural gas inventory tracking across facilities\n </p>\n </div>\n <Button>\n <BarChart3 className=\"mr-2 h-4 w-4\" />\n Inventory Report\n </Button>\n </div>\n <div className=\"grid gap-4 md:grid-cols-2 lg:grid-cols-4\">\n <Card>\n <CardHeader className=\"flex flex-row items-center justify-between space-y-0 pb-2\">\n <CardTitle className=\"text-sm font-medium\">Total Crude Storage</CardTitle>\n <Fuel className=\"h-4 w-4 text-amber-600\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold\">8.7M bbl</div>\n <p className=\"text-xs text-muted-foreground\">72.5% capacity</p>\n </CardContent>\n </Card>\n <Card>\n <CardHeader className=\"flex flex-row items-center justify-between space-y-0 pb-2\">\n <CardTitle className=\"text-sm font-medium\">Refined Products</CardTitle>\n <Droplets className=\"h-4 w-4 text-blue-600\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold\">2.57M bbl</div>\n <p className=\"text-xs text-muted-foreground\">Across all grades</p>\n </CardContent>\n </Card>\n <Card>\n <CardHeader className=\"flex flex-row items-center justify-between space-y-0 pb-2\">\n <CardTitle className=\"text-sm font-medium\">Storage Facilities</CardTitle>\n <Package className=\"h-4 w-4 text-green-600\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold\">{facilities.length}</div>\n <p className=\"text-xs text-muted-foreground\">\n {facilities.filter((f) => f.status === 'operational').length} operational\n </p>\n </CardContent>\n </Card>\n <Card>\n <CardHeader className=\"flex flex-row items-center justify-between space-y-0 pb-2\">\n <CardTitle className=\"text-sm font-medium\">Low Stock Alerts</CardTitle>\n <AlertCircle className=\"h-4 w-4 text-red-600\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold\">\n {inventoryItems.filter((i) => i.status === 'low').length}\n </div>\n <p className=\"text-xs text-muted-foreground\">Below threshold</p>\n </CardContent>\n </Card>\n </div>\n <Tabs defaultValue=\"inventory\">\n <TabsList>\n <TabsTrigger value=\"inventory\">Inventory</TabsTrigger>\n <TabsTrigger value=\"facilities\">Storage Facilities</TabsTrigger>\n </TabsList>\n <TabsContent value=\"inventory\" className=\"mt-4\">\n <Card>\n <CardHeader>\n <CardTitle>Current Inventory Levels</CardTitle>\n </CardHeader>\n <CardContent className=\"space-y-4\">\n {inventoryItems.map((item) => (\n <div key={item.name} className=\"rounded-lg border p-4\">\n <div className=\"mb-2 flex items-center justify-between\">\n <div>\n <p className=\"font-semibold\">{item.name}</p>\n <p className=\"text-sm text-muted-foreground\">{item.location}</p>\n </div>\n <div className=\"flex items-center gap-2\">\n {item.status === 'low' && <AlertCircle className=\"h-4 w-4 text-orange-500\" />}\n <Badge\n variant=\"outline\"\n className={item.status === 'low' ? 'text-orange-600' : 'text-green-600'}\n >\n {item.status === 'low' ? 'LOW' : 'NORMAL'}\n </Badge>\n </div>\n </div>\n <div className=\"mb-1 flex justify-between text-sm\">\n <span>\n {item.volume} / {item.capacity}\n </span>\n <span className=\"font-medium\">{item.pctFull}%</span>\n </div>\n <div className=\"h-2 w-full rounded-full bg-muted\">\n <div\n className={`h-2 rounded-full ${item.pctFull > 70 ? 'bg-green-500' : item.pctFull > 50 ? 'bg-amber-500' : 'bg-red-500'}`}\n style={{ width: `${item.pctFull}%` }}\n />\n </div>\n </div>\n ))}\n </CardContent>\n </Card>\n </TabsContent>\n <TabsContent value=\"facilities\" className=\"mt-4\">\n <Card>\n <CardHeader>\n <CardTitle>Storage Facilities</CardTitle>\n </CardHeader>\n <CardContent className=\"space-y-3\">\n {facilities.map((f) => (\n <div key={f.id} className=\"flex items-center justify-between rounded-lg border p-4\">\n <div>\n <p className=\"font-medium\">{f.name}</p>\n <p className=\"text-sm text-muted-foreground\">\n {f.location} &middot; {f.type.replace(/_/g, ' ')}\n </p>\n </div>\n <div className=\"flex items-center gap-3\">\n <div className=\"text-right\">\n <p className=\"text-sm font-medium\">{f.capacity}</p>\n <p className=\"text-xs text-muted-foreground\">{f.utilization}% utilized</p>\n </div>\n <span\n className={`h-2.5 w-2.5 rounded-full ${f.status === 'operational' ? 'bg-green-500' : 'bg-orange-500'}`}\n />\n </div>\n </div>\n ))}\n </CardContent>\n </Card>\n </TabsContent>\n </Tabs>\n </div>\n );\n}\n"],"mappings":";;;;;AAeA,SAAgB,IAAgB;CAC9B,IAAM,EAAE,kBAAe,GAAuB,EAExC,IAAiB;EACrB;GACE,MAAM;GACN,UAAU;GACV,QAAQ;GACR,UAAU;GACV,SAAS;GACT,QAAQ;GACT;EACD;GACE,MAAM;GACN,UAAU;GACV,QAAQ;GACR,UAAU;GACV,SAAS;GACT,QAAQ;GACT;EACD;GACE,MAAM;GACN,UAAU;GACV,QAAQ;GACR,UAAU;GACV,SAAS;GACT,QAAQ;GACT;EACD;GACE,MAAM;GACN,UAAU;GACV,QAAQ;GACR,UAAU;GACV,SAAS;GACT,QAAQ;GACT;EACD;GACE,MAAM;GACN,UAAU;GACV,QAAQ;GACR,UAAU;GACV,SAAS;GACT,QAAQ;GACT;EACD;GACE,MAAM;GACN,UAAU;GACV,QAAQ;GACR,UAAU;GACV,SAAS;GACT,QAAQ;GACT;EACF;AAED,QACE,kBAAC,OAAD;EAAK,WAAU;YAAf;GACE,kBAAC,OAAD;IAAK,WAAU;cAAf,CACE,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,MAAD;KAAI,WAAU;eAAd,CACE,kBAAC,GAAD,EAAS,WAAU,0BAA2B,CAAA,EAAA,kCAE3C;QACL,kBAAC,KAAD;KAAG,WAAU;eAAqC;KAE9C,CAAA,CACA,EAAA,CAAA,EACN,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,GAAD,EAAW,WAAU,gBAAiB,CAAA,EAAA,mBAE/B,EAAA,CAAA,CACL;;GACN,kBAAC,OAAD;IAAK,WAAU;cAAf;KACE,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,GAAD;MAAY,WAAU;gBAAtB,CACE,kBAAC,GAAD;OAAW,WAAU;iBAAsB;OAA+B,CAAA,EAC1E,kBAAC,GAAD,EAAM,WAAU,0BAA2B,CAAA,CAChC;SACb,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,OAAD;MAAK,WAAU;gBAAqB;MAAc,CAAA,EAClD,kBAAC,KAAD;MAAG,WAAU;gBAAgC;MAAkB,CAAA,CACnD,EAAA,CAAA,CACT,EAAA,CAAA;KACP,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,GAAD;MAAY,WAAU;gBAAtB,CACE,kBAAC,GAAD;OAAW,WAAU;iBAAsB;OAA4B,CAAA,EACvE,kBAAC,GAAD,EAAU,WAAU,yBAA0B,CAAA,CACnC;SACb,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,OAAD;MAAK,WAAU;gBAAqB;MAAe,CAAA,EACnD,kBAAC,KAAD;MAAG,WAAU;gBAAgC;MAAqB,CAAA,CACtD,EAAA,CAAA,CACT,EAAA,CAAA;KACP,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,GAAD;MAAY,WAAU;gBAAtB,CACE,kBAAC,GAAD;OAAW,WAAU;iBAAsB;OAA8B,CAAA,EACzE,kBAAC,GAAD,EAAS,WAAU,0BAA2B,CAAA,CACnC;SACb,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,OAAD;MAAK,WAAU;gBAAsB,EAAW;MAAa,CAAA,EAC7D,kBAAC,KAAD;MAAG,WAAU;gBAAb,CACG,EAAW,QAAQ,MAAM,EAAE,WAAW,cAAc,CAAC,QAAO,eAC3D;QACQ,EAAA,CAAA,CACT,EAAA,CAAA;KACP,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,GAAD;MAAY,WAAU;gBAAtB,CACE,kBAAC,GAAD;OAAW,WAAU;iBAAsB;OAA4B,CAAA,EACvE,kBAAC,GAAD,EAAa,WAAU,wBAAyB,CAAA,CACrC;SACb,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,OAAD;MAAK,WAAU;gBACZ,EAAe,QAAQ,MAAM,EAAE,WAAW,MAAM,CAAC;MAC9C,CAAA,EACN,kBAAC,KAAD;MAAG,WAAU;gBAAgC;MAAmB,CAAA,CACpD,EAAA,CAAA,CACT,EAAA,CAAA;KACH;;GACN,kBAAC,GAAD;IAAM,cAAa;cAAnB;KACE,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,GAAD;MAAa,OAAM;gBAAY;MAAuB,CAAA,EACtD,kBAAC,GAAD;MAAa,OAAM;gBAAa;MAAgC,CAAA,CACvD,EAAA,CAAA;KACX,kBAAC,GAAD;MAAa,OAAM;MAAY,WAAU;gBACvC,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD,EAAA,UAAW,4BAAoC,CAAA,EACpC,CAAA,EACb,kBAAC,GAAD;OAAa,WAAU;iBACpB,EAAe,KAAK,MACnB,kBAAC,OAAD;QAAqB,WAAU;kBAA/B;SACE,kBAAC,OAAD;UAAK,WAAU;oBAAf,CACE,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,KAAD;WAAG,WAAU;qBAAiB,EAAK;WAAS,CAAA,EAC5C,kBAAC,KAAD;WAAG,WAAU;qBAAiC,EAAK;WAAa,CAAA,CAC5D,EAAA,CAAA,EACN,kBAAC,OAAD;WAAK,WAAU;qBAAf,CACG,EAAK,WAAW,SAAS,kBAAC,GAAD,EAAa,WAAU,2BAA4B,CAAA,EAC7E,kBAAC,GAAD;YACE,SAAQ;YACR,WAAW,EAAK,WAAW,QAAQ,oBAAoB;sBAEtD,EAAK,WAAW,QAAQ,QAAQ;YAC3B,CAAA,CACJ;aACF;;SACN,kBAAC,OAAD;UAAK,WAAU;oBAAf,CACE,kBAAC,QAAD,EAAA,UAAA;WACG,EAAK;WAAO;WAAI,EAAK;WACjB,EAAA,CAAA,EACP,kBAAC,QAAD;WAAM,WAAU;qBAAhB,CAA+B,EAAK,SAAQ,IAAQ;aAChD;;SACN,kBAAC,OAAD;UAAK,WAAU;oBACb,kBAAC,OAAD;WACE,WAAW,oBAAoB,EAAK,UAAU,KAAK,iBAAiB,EAAK,UAAU,KAAK,iBAAiB;WACzG,OAAO,EAAE,OAAO,GAAG,EAAK,QAAQ,IAAI;WACpC,CAAA;UACE,CAAA;SACF;UA5BI,EAAK,KA4BT,CACN;OACU,CAAA,CACT,EAAA,CAAA;MACK,CAAA;KACd,kBAAC,GAAD;MAAa,OAAM;MAAa,WAAU;gBACxC,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD,EAAA,UAAW,sBAA8B,CAAA,EAC9B,CAAA,EACb,kBAAC,GAAD;OAAa,WAAU;iBACpB,EAAW,KAAK,MACf,kBAAC,OAAD;QAAgB,WAAU;kBAA1B,CACE,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,KAAD;SAAG,WAAU;mBAAe,EAAE;SAAS,CAAA,EACvC,kBAAC,KAAD;SAAG,WAAU;mBAAb;UACG,EAAE;UAAS;UAAW,EAAE,KAAK,QAAQ,MAAM,IAAI;UAC9C;WACA,EAAA,CAAA,EACN,kBAAC,OAAD;SAAK,WAAU;mBAAf,CACE,kBAAC,OAAD;UAAK,WAAU;oBAAf,CACE,kBAAC,KAAD;WAAG,WAAU;qBAAuB,EAAE;WAAa,CAAA,EACnD,kBAAC,KAAD;WAAG,WAAU;qBAAb,CAA8C,EAAE,aAAY,aAAc;aACtE;aACN,kBAAC,QAAD,EACE,WAAW,4BAA4B,EAAE,WAAW,gBAAgB,iBAAiB,mBACrF,CAAA,CACE;WACF;UAhBI,EAAE,GAgBN,CACN;OACU,CAAA,CACT,EAAA,CAAA;MACK,CAAA;KACT;;GACH"}
@@ -0,0 +1,2 @@
1
+ export declare function RiskManagementPage(): import("react/jsx-runtime").JSX.Element;
2
+ //# sourceMappingURL=RiskManagementPage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RiskManagementPage.d.ts","sourceRoot":"","sources":["../../../src/theglobalfuel/pages/RiskManagementPage.tsx"],"names":[],"mappings":"AAeA,wBAAgB,kBAAkB,4CA0MjC"}