@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.
- package/README.md +12 -0
- package/dist/dev/main.d.ts +2 -0
- package/dist/dev/main.d.ts.map +1 -0
- package/dist/generated/global-operations.d.ts +2 -0
- package/dist/generated/global-operations.d.ts.map +1 -0
- package/dist/generated/global-types.d.ts +18199 -0
- package/dist/generated/global-types.d.ts.map +1 -0
- package/dist/generated/wspace-operations.d.ts +2 -0
- package/dist/generated/wspace-operations.d.ts.map +1 -0
- package/dist/generated/wspace-types.d.ts +43046 -0
- package/dist/generated/wspace-types.d.ts.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +5 -0
- package/dist/node_modules/clsx/dist/clsx.js +18 -0
- package/dist/node_modules/clsx/dist/clsx.js.map +1 -0
- package/dist/node_modules/tailwind-merge/dist/bundle-mjs.js +1674 -0
- package/dist/node_modules/tailwind-merge/dist/bundle-mjs.js.map +1 -0
- package/dist/theglobalfuel/TheGlobalFuelRoot.d.ts +5 -0
- package/dist/theglobalfuel/TheGlobalFuelRoot.d.ts.map +1 -0
- package/dist/theglobalfuel/TheGlobalFuelRoot.js +175 -0
- package/dist/theglobalfuel/TheGlobalFuelRoot.js.map +1 -0
- package/dist/theglobalfuel/TheGlobalFuelRoutes.d.ts +2 -0
- package/dist/theglobalfuel/TheGlobalFuelRoutes.d.ts.map +1 -0
- package/dist/theglobalfuel/TheGlobalFuelRoutes.js +91 -0
- package/dist/theglobalfuel/TheGlobalFuelRoutes.js.map +1 -0
- package/dist/theglobalfuel/index.d.ts +5 -0
- package/dist/theglobalfuel/index.d.ts.map +1 -0
- package/dist/theglobalfuel/index.js +3 -0
- package/dist/theglobalfuel/pages/AiIntelligencePage.d.ts +2 -0
- package/dist/theglobalfuel/pages/AiIntelligencePage.d.ts.map +1 -0
- package/dist/theglobalfuel/pages/AiIntelligencePage.js +190 -0
- package/dist/theglobalfuel/pages/AiIntelligencePage.js.map +1 -0
- package/dist/theglobalfuel/pages/AnalyticsPage.d.ts +2 -0
- package/dist/theglobalfuel/pages/AnalyticsPage.d.ts.map +1 -0
- package/dist/theglobalfuel/pages/AnalyticsPage.js +241 -0
- package/dist/theglobalfuel/pages/AnalyticsPage.js.map +1 -0
- package/dist/theglobalfuel/pages/CompliancePage.d.ts +2 -0
- package/dist/theglobalfuel/pages/CompliancePage.d.ts.map +1 -0
- package/dist/theglobalfuel/pages/CompliancePage.js +173 -0
- package/dist/theglobalfuel/pages/CompliancePage.js.map +1 -0
- package/dist/theglobalfuel/pages/DashboardPage.d.ts +2 -0
- package/dist/theglobalfuel/pages/DashboardPage.d.ts.map +1 -0
- package/dist/theglobalfuel/pages/DashboardPage.js +145 -0
- package/dist/theglobalfuel/pages/DashboardPage.js.map +1 -0
- package/dist/theglobalfuel/pages/FinancialPage.d.ts +2 -0
- package/dist/theglobalfuel/pages/FinancialPage.d.ts.map +1 -0
- package/dist/theglobalfuel/pages/FinancialPage.js +204 -0
- package/dist/theglobalfuel/pages/FinancialPage.js.map +1 -0
- package/dist/theglobalfuel/pages/FleetManagementPage.d.ts +2 -0
- package/dist/theglobalfuel/pages/FleetManagementPage.d.ts.map +1 -0
- package/dist/theglobalfuel/pages/FleetManagementPage.js +244 -0
- package/dist/theglobalfuel/pages/FleetManagementPage.js.map +1 -0
- package/dist/theglobalfuel/pages/MarketplacePage.d.ts +2 -0
- package/dist/theglobalfuel/pages/MarketplacePage.d.ts.map +1 -0
- package/dist/theglobalfuel/pages/MarketplacePage.js +260 -0
- package/dist/theglobalfuel/pages/MarketplacePage.js.map +1 -0
- package/dist/theglobalfuel/pages/OperationsPage.d.ts +2 -0
- package/dist/theglobalfuel/pages/OperationsPage.d.ts.map +1 -0
- package/dist/theglobalfuel/pages/OperationsPage.js +190 -0
- package/dist/theglobalfuel/pages/OperationsPage.js.map +1 -0
- package/dist/theglobalfuel/pages/QualityControlPage.d.ts +2 -0
- package/dist/theglobalfuel/pages/QualityControlPage.d.ts.map +1 -0
- package/dist/theglobalfuel/pages/QualityControlPage.js +215 -0
- package/dist/theglobalfuel/pages/QualityControlPage.js.map +1 -0
- package/dist/theglobalfuel/pages/ReportsPage.d.ts +2 -0
- package/dist/theglobalfuel/pages/ReportsPage.d.ts.map +1 -0
- package/dist/theglobalfuel/pages/ReportsPage.js +247 -0
- package/dist/theglobalfuel/pages/ReportsPage.js.map +1 -0
- package/dist/theglobalfuel/pages/ResourcesPage.d.ts +2 -0
- package/dist/theglobalfuel/pages/ResourcesPage.d.ts.map +1 -0
- package/dist/theglobalfuel/pages/ResourcesPage.js +225 -0
- package/dist/theglobalfuel/pages/ResourcesPage.js.map +1 -0
- package/dist/theglobalfuel/pages/RiskManagementPage.d.ts +2 -0
- package/dist/theglobalfuel/pages/RiskManagementPage.d.ts.map +1 -0
- package/dist/theglobalfuel/pages/RiskManagementPage.js +230 -0
- package/dist/theglobalfuel/pages/RiskManagementPage.js.map +1 -0
- package/dist/theglobalfuel/pages/SupplyChainPage.d.ts +2 -0
- package/dist/theglobalfuel/pages/SupplyChainPage.d.ts.map +1 -0
- package/dist/theglobalfuel/pages/SupplyChainPage.js +214 -0
- package/dist/theglobalfuel/pages/SupplyChainPage.js.map +1 -0
- package/dist/theglobalfuel/pages/SustainabilityPage.d.ts +2 -0
- package/dist/theglobalfuel/pages/SustainabilityPage.d.ts.map +1 -0
- package/dist/theglobalfuel/pages/SustainabilityPage.js +261 -0
- package/dist/theglobalfuel/pages/SustainabilityPage.js.map +1 -0
- package/dist/theglobalfuel/pages/TrainingPage.d.ts +2 -0
- package/dist/theglobalfuel/pages/TrainingPage.d.ts.map +1 -0
- package/dist/theglobalfuel/pages/TrainingPage.js +253 -0
- package/dist/theglobalfuel/pages/TrainingPage.js.map +1 -0
- package/dist/theglobalfuel/providers/TheGlobalFuelProvider.d.ts +6 -0
- package/dist/theglobalfuel/providers/TheGlobalFuelProvider.d.ts.map +1 -0
- package/dist/theglobalfuel/providers/TheGlobalFuelProvider.js +27 -0
- package/dist/theglobalfuel/providers/TheGlobalFuelProvider.js.map +1 -0
- package/dist/theglobalfuel/store/theglobalfuelStore.d.ts +163 -0
- package/dist/theglobalfuel/store/theglobalfuelStore.d.ts.map +1 -0
- package/dist/theglobalfuel/store/theglobalfuelStore.js +712 -0
- package/dist/theglobalfuel/store/theglobalfuelStore.js.map +1 -0
- package/dist/theglobalfuel/types/index.d.ts +51 -0
- package/dist/theglobalfuel/types/index.d.ts.map +1 -0
- package/dist/theglobalfuel/utils/cn.d.ts +4 -0
- package/dist/theglobalfuel/utils/cn.d.ts.map +1 -0
- package/dist/theglobalfuel/utils/cn.js +10 -0
- package/dist/theglobalfuel/utils/cn.js.map +1 -0
- package/dist/theglobalfuel/utils/i18n.d.ts +6 -0
- package/dist/theglobalfuel/utils/i18n.d.ts.map +1 -0
- package/dist/theglobalfuel/utils/i18n.js +15 -0
- package/dist/theglobalfuel/utils/i18n.js.map +1 -0
- package/dist/theglobalfuel/utils/navigation.d.ts +2 -0
- package/dist/theglobalfuel/utils/navigation.d.ts.map +1 -0
- package/dist/theglobalfuel/utils/navigation.js +8 -0
- package/dist/theglobalfuel/utils/navigation.js.map +1 -0
- package/package.json +107 -0
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { DashboardPage as e } from "./pages/DashboardPage.js";
|
|
2
|
+
import { Suspense as t, lazy as n } from "react";
|
|
3
|
+
import { Loader2 as r } from "lucide-react";
|
|
4
|
+
import { Navigate as i, Route as a, Routes as o } from "react-router-dom";
|
|
5
|
+
import { jsx as s, jsxs as c } from "react/jsx-runtime";
|
|
6
|
+
//#region src/theglobalfuel/TheGlobalFuelRoutes.tsx
|
|
7
|
+
var l = n(() => import("./pages/AnalyticsPage.js").then((e) => ({ default: e.AnalyticsPage }))), u = n(() => import("./pages/CompliancePage.js").then((e) => ({ default: e.CompliancePage }))), d = n(() => import("./pages/AiIntelligencePage.js").then((e) => ({ default: e.AiIntelligencePage }))), f = n(() => import("./pages/FinancialPage.js").then((e) => ({ default: e.FinancialPage }))), p = n(() => import("./pages/FleetManagementPage.js").then((e) => ({ default: e.FleetManagementPage }))), m = n(() => import("./pages/MarketplacePage.js").then((e) => ({ default: e.MarketplacePage }))), h = n(() => import("./pages/OperationsPage.js").then((e) => ({ default: e.OperationsPage }))), g = n(() => import("./pages/QualityControlPage.js").then((e) => ({ default: e.QualityControlPage }))), _ = n(() => import("./pages/ReportsPage.js").then((e) => ({ default: e.ReportsPage }))), v = n(() => import("./pages/ResourcesPage.js").then((e) => ({ default: e.ResourcesPage }))), y = n(() => import("./pages/RiskManagementPage.js").then((e) => ({ default: e.RiskManagementPage }))), b = n(() => import("./pages/SupplyChainPage.js").then((e) => ({ default: e.SupplyChainPage }))), x = n(() => import("./pages/SustainabilityPage.js").then((e) => ({ default: e.SustainabilityPage }))), S = n(() => import("./pages/TrainingPage.js").then((e) => ({ default: e.TrainingPage })));
|
|
8
|
+
function C() {
|
|
9
|
+
return /* @__PURE__ */ s("div", {
|
|
10
|
+
className: "flex min-h-[320px] items-center justify-center",
|
|
11
|
+
children: /* @__PURE__ */ s(r, { className: "h-8 w-8 animate-spin text-primary" })
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
function w() {
|
|
15
|
+
return /* @__PURE__ */ s(t, {
|
|
16
|
+
fallback: /* @__PURE__ */ s(C, {}),
|
|
17
|
+
children: /* @__PURE__ */ c(o, { children: [
|
|
18
|
+
/* @__PURE__ */ s(a, {
|
|
19
|
+
index: !0,
|
|
20
|
+
element: /* @__PURE__ */ s(e, {})
|
|
21
|
+
}),
|
|
22
|
+
/* @__PURE__ */ s(a, {
|
|
23
|
+
path: "analytics",
|
|
24
|
+
element: /* @__PURE__ */ s(l, {})
|
|
25
|
+
}),
|
|
26
|
+
/* @__PURE__ */ s(a, {
|
|
27
|
+
path: "compliance",
|
|
28
|
+
element: /* @__PURE__ */ s(u, {})
|
|
29
|
+
}),
|
|
30
|
+
/* @__PURE__ */ s(a, {
|
|
31
|
+
path: "ai-intelligence",
|
|
32
|
+
element: /* @__PURE__ */ s(d, {})
|
|
33
|
+
}),
|
|
34
|
+
/* @__PURE__ */ s(a, {
|
|
35
|
+
path: "financial",
|
|
36
|
+
element: /* @__PURE__ */ s(f, {})
|
|
37
|
+
}),
|
|
38
|
+
/* @__PURE__ */ s(a, {
|
|
39
|
+
path: "fleet-management",
|
|
40
|
+
element: /* @__PURE__ */ s(p, {})
|
|
41
|
+
}),
|
|
42
|
+
/* @__PURE__ */ s(a, {
|
|
43
|
+
path: "marketplace",
|
|
44
|
+
element: /* @__PURE__ */ s(m, {})
|
|
45
|
+
}),
|
|
46
|
+
/* @__PURE__ */ s(a, {
|
|
47
|
+
path: "operations",
|
|
48
|
+
element: /* @__PURE__ */ s(h, {})
|
|
49
|
+
}),
|
|
50
|
+
/* @__PURE__ */ s(a, {
|
|
51
|
+
path: "quality-control",
|
|
52
|
+
element: /* @__PURE__ */ s(g, {})
|
|
53
|
+
}),
|
|
54
|
+
/* @__PURE__ */ s(a, {
|
|
55
|
+
path: "reports",
|
|
56
|
+
element: /* @__PURE__ */ s(_, {})
|
|
57
|
+
}),
|
|
58
|
+
/* @__PURE__ */ s(a, {
|
|
59
|
+
path: "resources",
|
|
60
|
+
element: /* @__PURE__ */ s(v, {})
|
|
61
|
+
}),
|
|
62
|
+
/* @__PURE__ */ s(a, {
|
|
63
|
+
path: "risk-management",
|
|
64
|
+
element: /* @__PURE__ */ s(y, {})
|
|
65
|
+
}),
|
|
66
|
+
/* @__PURE__ */ s(a, {
|
|
67
|
+
path: "supply-chain",
|
|
68
|
+
element: /* @__PURE__ */ s(b, {})
|
|
69
|
+
}),
|
|
70
|
+
/* @__PURE__ */ s(a, {
|
|
71
|
+
path: "sustainability",
|
|
72
|
+
element: /* @__PURE__ */ s(x, {})
|
|
73
|
+
}),
|
|
74
|
+
/* @__PURE__ */ s(a, {
|
|
75
|
+
path: "training",
|
|
76
|
+
element: /* @__PURE__ */ s(S, {})
|
|
77
|
+
}),
|
|
78
|
+
/* @__PURE__ */ s(a, {
|
|
79
|
+
path: "*",
|
|
80
|
+
element: /* @__PURE__ */ s(i, {
|
|
81
|
+
to: "",
|
|
82
|
+
replace: !0
|
|
83
|
+
})
|
|
84
|
+
})
|
|
85
|
+
] })
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
//#endregion
|
|
89
|
+
export { w as TheGlobalFuelRoutes };
|
|
90
|
+
|
|
91
|
+
//# sourceMappingURL=TheGlobalFuelRoutes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TheGlobalFuelRoutes.js","names":[],"sources":["../../src/theglobalfuel/TheGlobalFuelRoutes.tsx"],"sourcesContent":["import { lazy, Suspense } from 'react';\nimport { Navigate, Route, Routes } from 'react-router-dom';\nimport { Loader2 } from 'lucide-react';\nimport { DashboardPage as IndexPage } from './pages/DashboardPage';\n\nconst AnalyticsPage = lazy(() =>\n import('./pages/AnalyticsPage').then((m) => ({ default: m.AnalyticsPage }))\n);\nconst CompliancePage = lazy(() =>\n import('./pages/CompliancePage').then((m) => ({ default: m.CompliancePage }))\n);\nconst AiIntelligencePage = lazy(() =>\n import('./pages/AiIntelligencePage').then((m) => ({ default: m.AiIntelligencePage }))\n);\nconst FinancialPage = lazy(() =>\n import('./pages/FinancialPage').then((m) => ({ default: m.FinancialPage }))\n);\nconst FleetManagementPage = lazy(() =>\n import('./pages/FleetManagementPage').then((m) => ({ default: m.FleetManagementPage }))\n);\nconst MarketplacePage = lazy(() =>\n import('./pages/MarketplacePage').then((m) => ({ default: m.MarketplacePage }))\n);\nconst OperationsPage = lazy(() =>\n import('./pages/OperationsPage').then((m) => ({ default: m.OperationsPage }))\n);\nconst QualityControlPage = lazy(() =>\n import('./pages/QualityControlPage').then((m) => ({ default: m.QualityControlPage }))\n);\nconst ReportsPage = lazy(() =>\n import('./pages/ReportsPage').then((m) => ({ default: m.ReportsPage }))\n);\nconst ResourcesPage = lazy(() =>\n import('./pages/ResourcesPage').then((m) => ({ default: m.ResourcesPage }))\n);\nconst RiskManagementPage = lazy(() =>\n import('./pages/RiskManagementPage').then((m) => ({ default: m.RiskManagementPage }))\n);\nconst SupplyChainPage = lazy(() =>\n import('./pages/SupplyChainPage').then((m) => ({ default: m.SupplyChainPage }))\n);\nconst SustainabilityPage = lazy(() =>\n import('./pages/SustainabilityPage').then((m) => ({ default: m.SustainabilityPage }))\n);\nconst TrainingPage = lazy(() =>\n import('./pages/TrainingPage').then((m) => ({ default: m.TrainingPage }))\n);\n\nfunction PageLoader() {\n return (\n <div className=\"flex min-h-[320px] items-center justify-center\">\n <Loader2 className=\"h-8 w-8 animate-spin text-primary\" />\n </div>\n );\n}\n\nexport function TheGlobalFuelRoutes() {\n return (\n <Suspense fallback={<PageLoader />}>\n <Routes>\n <Route index element={<IndexPage />} />\n <Route path=\"analytics\" element={<AnalyticsPage />} />\n <Route path=\"compliance\" element={<CompliancePage />} />\n <Route path=\"ai-intelligence\" element={<AiIntelligencePage />} />\n <Route path=\"financial\" element={<FinancialPage />} />\n <Route path=\"fleet-management\" element={<FleetManagementPage />} />\n <Route path=\"marketplace\" element={<MarketplacePage />} />\n <Route path=\"operations\" element={<OperationsPage />} />\n <Route path=\"quality-control\" element={<QualityControlPage />} />\n <Route path=\"reports\" element={<ReportsPage />} />\n <Route path=\"resources\" element={<ResourcesPage />} />\n <Route path=\"risk-management\" element={<RiskManagementPage />} />\n <Route path=\"supply-chain\" element={<SupplyChainPage />} />\n <Route path=\"sustainability\" element={<SustainabilityPage />} />\n <Route path=\"training\" element={<TrainingPage />} />\n <Route path=\"*\" element={<Navigate to=\"\" replace />} />\n </Routes>\n </Suspense>\n );\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { TheGlobalFuelRoot } from './TheGlobalFuelRoot';
|
|
2
|
+
export type { TheGlobalFuelRootProps, NavItem, FooterItem } from './types';
|
|
3
|
+
export { useTheGlobalFuel } from './providers/TheGlobalFuelProvider';
|
|
4
|
+
export { useTheGlobalFuelStore } from './store/theglobalfuelStore';
|
|
5
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/theglobalfuel/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,YAAY,EAAE,sBAAsB,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC3E,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrE,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AiIntelligencePage.d.ts","sourceRoot":"","sources":["../../../src/theglobalfuel/pages/AiIntelligencePage.tsx"],"names":[],"mappings":"AAwBA,wBAAgB,kBAAkB,4CAoKjC"}
|
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
import { useTheGlobalFuelStore as e } from "../store/theglobalfuelStore.js";
|
|
2
|
+
import { Activity as t, AlertTriangle as n, BarChart3 as r, Brain as i, Sparkles as a, Target as o, TrendingUp as s, Zap as c } from "lucide-react";
|
|
3
|
+
import { jsx as l, jsxs as u } from "react/jsx-runtime";
|
|
4
|
+
import { Badge as d, Button as f, Card as p, CardContent as m, CardHeader as h, CardTitle as g, Tabs as _, TabsContent as v, TabsList as y, TabsTrigger as b } from "@burdenoff/fe-libs/ui";
|
|
5
|
+
//#region src/theglobalfuel/pages/AiIntelligencePage.tsx
|
|
6
|
+
function x() {
|
|
7
|
+
let { aiInsights: x } = e(), S = x.filter((e) => e.severity === "high").length;
|
|
8
|
+
return /* @__PURE__ */ u("div", {
|
|
9
|
+
className: "space-y-6 p-6",
|
|
10
|
+
children: [
|
|
11
|
+
/* @__PURE__ */ u("div", {
|
|
12
|
+
className: "flex items-center justify-between",
|
|
13
|
+
children: [/* @__PURE__ */ u("div", { children: [/* @__PURE__ */ u("h1", {
|
|
14
|
+
className: "flex items-center gap-2 text-2xl font-semibold",
|
|
15
|
+
children: [/* @__PURE__ */ l(i, { className: "h-7 w-7 text-purple-600" }), "AI Intelligence Hub"]
|
|
16
|
+
}), /* @__PURE__ */ l("p", {
|
|
17
|
+
className: "mt-1 text-sm text-muted-foreground",
|
|
18
|
+
children: "Predictive maintenance, demand forecasting, and optimization for energy operations"
|
|
19
|
+
})] }), /* @__PURE__ */ u(f, { children: [/* @__PURE__ */ l(a, { className: "mr-2 h-4 w-4" }), "Generate Report"] })]
|
|
20
|
+
}),
|
|
21
|
+
/* @__PURE__ */ u("div", {
|
|
22
|
+
className: "grid gap-4 md:grid-cols-2 lg:grid-cols-4",
|
|
23
|
+
children: [
|
|
24
|
+
/* @__PURE__ */ u(p, { children: [/* @__PURE__ */ u(h, {
|
|
25
|
+
className: "flex flex-row items-center justify-between space-y-0 pb-2",
|
|
26
|
+
children: [/* @__PURE__ */ l(g, {
|
|
27
|
+
className: "text-sm font-medium",
|
|
28
|
+
children: "Prediction Accuracy"
|
|
29
|
+
}), /* @__PURE__ */ l(o, { className: "h-4 w-4 text-green-600" })]
|
|
30
|
+
}), /* @__PURE__ */ u(m, { children: [/* @__PURE__ */ l("div", {
|
|
31
|
+
className: "text-2xl font-bold",
|
|
32
|
+
children: "94.3%"
|
|
33
|
+
}), /* @__PURE__ */ u("p", {
|
|
34
|
+
className: "flex items-center text-xs text-green-600",
|
|
35
|
+
children: [/* @__PURE__ */ l(s, { className: "mr-1 h-3 w-3" }), "+2.1%"]
|
|
36
|
+
})] })] }),
|
|
37
|
+
/* @__PURE__ */ u(p, { children: [/* @__PURE__ */ u(h, {
|
|
38
|
+
className: "flex flex-row items-center justify-between space-y-0 pb-2",
|
|
39
|
+
children: [/* @__PURE__ */ l(g, {
|
|
40
|
+
className: "text-sm font-medium",
|
|
41
|
+
children: "Active Alerts"
|
|
42
|
+
}), /* @__PURE__ */ l(n, { className: "h-4 w-4 text-orange-600" })]
|
|
43
|
+
}), /* @__PURE__ */ u(m, { children: [/* @__PURE__ */ l("div", {
|
|
44
|
+
className: "text-2xl font-bold",
|
|
45
|
+
children: x.length
|
|
46
|
+
}), /* @__PURE__ */ u("p", {
|
|
47
|
+
className: "text-xs text-muted-foreground",
|
|
48
|
+
children: [S, " high severity"]
|
|
49
|
+
})] })] }),
|
|
50
|
+
/* @__PURE__ */ u(p, { children: [/* @__PURE__ */ u(h, {
|
|
51
|
+
className: "flex flex-row items-center justify-between space-y-0 pb-2",
|
|
52
|
+
children: [/* @__PURE__ */ l(g, {
|
|
53
|
+
className: "text-sm font-medium",
|
|
54
|
+
children: "Optimization Score"
|
|
55
|
+
}), /* @__PURE__ */ l(c, { className: "h-4 w-4 text-yellow-600" })]
|
|
56
|
+
}), /* @__PURE__ */ u(m, { children: [/* @__PURE__ */ l("div", {
|
|
57
|
+
className: "text-2xl font-bold",
|
|
58
|
+
children: "87%"
|
|
59
|
+
}), /* @__PURE__ */ l("p", {
|
|
60
|
+
className: "text-xs text-muted-foreground",
|
|
61
|
+
children: "7% improvement potential"
|
|
62
|
+
})] })] }),
|
|
63
|
+
/* @__PURE__ */ u(p, { children: [/* @__PURE__ */ u(h, {
|
|
64
|
+
className: "flex flex-row items-center justify-between space-y-0 pb-2",
|
|
65
|
+
children: [/* @__PURE__ */ l(g, {
|
|
66
|
+
className: "text-sm font-medium",
|
|
67
|
+
children: "Savings Identified"
|
|
68
|
+
}), /* @__PURE__ */ l(r, { className: "h-4 w-4 text-blue-600" })]
|
|
69
|
+
}), /* @__PURE__ */ u(m, { children: [/* @__PURE__ */ l("div", {
|
|
70
|
+
className: "text-2xl font-bold",
|
|
71
|
+
children: "$2.4M"
|
|
72
|
+
}), /* @__PURE__ */ l("p", {
|
|
73
|
+
className: "text-xs text-muted-foreground",
|
|
74
|
+
children: "Annual potential"
|
|
75
|
+
})] })] })
|
|
76
|
+
]
|
|
77
|
+
}),
|
|
78
|
+
/* @__PURE__ */ u(_, {
|
|
79
|
+
defaultValue: "predictive",
|
|
80
|
+
children: [
|
|
81
|
+
/* @__PURE__ */ u(y, { children: [/* @__PURE__ */ l(b, {
|
|
82
|
+
value: "predictive",
|
|
83
|
+
children: "Predictive Maintenance"
|
|
84
|
+
}), /* @__PURE__ */ l(b, {
|
|
85
|
+
value: "optimization",
|
|
86
|
+
children: "Optimization"
|
|
87
|
+
})] }),
|
|
88
|
+
/* @__PURE__ */ l(v, {
|
|
89
|
+
value: "predictive",
|
|
90
|
+
className: "mt-4",
|
|
91
|
+
children: /* @__PURE__ */ u(p, { children: [/* @__PURE__ */ l(h, { children: /* @__PURE__ */ l(g, { children: "Equipment Alerts" }) }), /* @__PURE__ */ l(m, {
|
|
92
|
+
className: "space-y-4",
|
|
93
|
+
children: x.filter((e) => e.type === "predictive_maintenance" || e.type === "anomaly_detection").map((e) => /* @__PURE__ */ u("div", {
|
|
94
|
+
className: `rounded-lg border-2 p-4 ${e.severity === "high" ? "border-red-200 bg-red-50" : "border-yellow-200 bg-yellow-50"}`,
|
|
95
|
+
children: [
|
|
96
|
+
/* @__PURE__ */ u("div", {
|
|
97
|
+
className: "mb-2 flex items-start justify-between",
|
|
98
|
+
children: [/* @__PURE__ */ u("div", { children: [/* @__PURE__ */ u("div", {
|
|
99
|
+
className: "mb-1 flex items-center gap-2",
|
|
100
|
+
children: [/* @__PURE__ */ l(t, { className: "h-5 w-5" }), /* @__PURE__ */ l("h4", {
|
|
101
|
+
className: "font-semibold",
|
|
102
|
+
children: e.equipment
|
|
103
|
+
})]
|
|
104
|
+
}), /* @__PURE__ */ l("p", {
|
|
105
|
+
className: "text-sm text-muted-foreground",
|
|
106
|
+
children: e.prediction
|
|
107
|
+
})] }), /* @__PURE__ */ l(d, {
|
|
108
|
+
variant: "outline",
|
|
109
|
+
className: e.severity === "high" ? "text-red-600" : "text-yellow-600",
|
|
110
|
+
children: e.severity.toUpperCase()
|
|
111
|
+
})]
|
|
112
|
+
}),
|
|
113
|
+
/* @__PURE__ */ u("div", {
|
|
114
|
+
className: "mb-3 grid grid-cols-2 gap-3",
|
|
115
|
+
children: [/* @__PURE__ */ u("div", { children: [/* @__PURE__ */ l("span", {
|
|
116
|
+
className: "text-xs text-muted-foreground",
|
|
117
|
+
children: "Confidence"
|
|
118
|
+
}), /* @__PURE__ */ u("div", {
|
|
119
|
+
className: "mt-1 flex items-center gap-2",
|
|
120
|
+
children: [/* @__PURE__ */ l("div", {
|
|
121
|
+
className: "h-2 flex-1 rounded-full bg-muted",
|
|
122
|
+
children: /* @__PURE__ */ l("div", {
|
|
123
|
+
className: "h-2 rounded-full bg-blue-500",
|
|
124
|
+
style: { width: `${e.confidence}%` }
|
|
125
|
+
})
|
|
126
|
+
}), /* @__PURE__ */ u("span", {
|
|
127
|
+
className: "text-sm font-medium",
|
|
128
|
+
children: [e.confidence, "%"]
|
|
129
|
+
})]
|
|
130
|
+
})] }), /* @__PURE__ */ u("div", { children: [/* @__PURE__ */ l("span", {
|
|
131
|
+
className: "text-xs text-muted-foreground",
|
|
132
|
+
children: "Timeframe"
|
|
133
|
+
}), /* @__PURE__ */ l("p", {
|
|
134
|
+
className: "mt-1 text-sm font-medium",
|
|
135
|
+
children: e.timeframe
|
|
136
|
+
})] })]
|
|
137
|
+
}),
|
|
138
|
+
/* @__PURE__ */ u("div", {
|
|
139
|
+
className: "flex items-start gap-2 rounded bg-white p-2",
|
|
140
|
+
children: [/* @__PURE__ */ l(a, { className: "mt-0.5 h-4 w-4 flex-shrink-0 text-purple-600" }), /* @__PURE__ */ u("div", { children: [/* @__PURE__ */ l("span", {
|
|
141
|
+
className: "text-xs font-medium text-purple-600",
|
|
142
|
+
children: "AI Recommendation:"
|
|
143
|
+
}), /* @__PURE__ */ l("p", {
|
|
144
|
+
className: "text-sm",
|
|
145
|
+
children: e.recommendation
|
|
146
|
+
})] })]
|
|
147
|
+
})
|
|
148
|
+
]
|
|
149
|
+
}, e.id))
|
|
150
|
+
})] })
|
|
151
|
+
}),
|
|
152
|
+
/* @__PURE__ */ l(v, {
|
|
153
|
+
value: "optimization",
|
|
154
|
+
className: "mt-4",
|
|
155
|
+
children: /* @__PURE__ */ u(p, { children: [/* @__PURE__ */ l(h, { children: /* @__PURE__ */ l(g, { children: "Optimization Opportunities" }) }), /* @__PURE__ */ l(m, {
|
|
156
|
+
className: "space-y-4",
|
|
157
|
+
children: x.filter((e) => e.type === "optimization" || e.type === "demand_forecast").map((e) => /* @__PURE__ */ u("div", {
|
|
158
|
+
className: "rounded-lg border p-4",
|
|
159
|
+
children: [/* @__PURE__ */ u("div", {
|
|
160
|
+
className: "mb-2 flex items-start justify-between",
|
|
161
|
+
children: [/* @__PURE__ */ u("div", { children: [/* @__PURE__ */ l("h4", {
|
|
162
|
+
className: "font-semibold",
|
|
163
|
+
children: e.equipment
|
|
164
|
+
}), /* @__PURE__ */ l("p", {
|
|
165
|
+
className: "text-sm text-muted-foreground",
|
|
166
|
+
children: e.prediction
|
|
167
|
+
})] }), /* @__PURE__ */ l(d, {
|
|
168
|
+
variant: "outline",
|
|
169
|
+
className: "text-green-600",
|
|
170
|
+
children: e.type.replace(/_/g, " ")
|
|
171
|
+
})]
|
|
172
|
+
}), /* @__PURE__ */ u("div", {
|
|
173
|
+
className: "flex items-start gap-2 rounded bg-purple-50 p-2",
|
|
174
|
+
children: [/* @__PURE__ */ l(a, { className: "mt-0.5 h-4 w-4 text-purple-600" }), /* @__PURE__ */ l("p", {
|
|
175
|
+
className: "text-sm",
|
|
176
|
+
children: e.recommendation
|
|
177
|
+
})]
|
|
178
|
+
})]
|
|
179
|
+
}, e.id))
|
|
180
|
+
})] })
|
|
181
|
+
})
|
|
182
|
+
]
|
|
183
|
+
})
|
|
184
|
+
]
|
|
185
|
+
});
|
|
186
|
+
}
|
|
187
|
+
//#endregion
|
|
188
|
+
export { x as AiIntelligencePage };
|
|
189
|
+
|
|
190
|
+
//# sourceMappingURL=AiIntelligencePage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AiIntelligencePage.js","names":[],"sources":["../../../src/theglobalfuel/pages/AiIntelligencePage.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 {\n Brain,\n TrendingUp,\n AlertTriangle,\n Zap,\n BarChart3,\n Target,\n Activity,\n Sparkles,\n} from 'lucide-react';\nimport { useTheGlobalFuelStore } from '../store/theglobalfuelStore';\n\nexport function AiIntelligencePage() {\n const { aiInsights } = useTheGlobalFuelStore();\n const highSeverity = aiInsights.filter((a) => a.severity === 'high').length;\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 <Brain className=\"h-7 w-7 text-purple-600\" />\n AI Intelligence Hub\n </h1>\n <p className=\"mt-1 text-sm text-muted-foreground\">\n Predictive maintenance, demand forecasting, and optimization for energy operations\n </p>\n </div>\n <Button>\n <Sparkles className=\"mr-2 h-4 w-4\" />\n Generate 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\">Prediction Accuracy</CardTitle>\n <Target className=\"h-4 w-4 text-green-600\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold\">94.3%</div>\n <p className=\"flex items-center text-xs text-green-600\">\n <TrendingUp className=\"mr-1 h-3 w-3\" />\n +2.1%\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\">Active Alerts</CardTitle>\n <AlertTriangle className=\"h-4 w-4 text-orange-600\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold\">{aiInsights.length}</div>\n <p className=\"text-xs text-muted-foreground\">{highSeverity} high severity</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\">Optimization Score</CardTitle>\n <Zap className=\"h-4 w-4 text-yellow-600\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold\">87%</div>\n <p className=\"text-xs text-muted-foreground\">7% improvement potential</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\">Savings Identified</CardTitle>\n <BarChart3 className=\"h-4 w-4 text-blue-600\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold\">$2.4M</div>\n <p className=\"text-xs text-muted-foreground\">Annual potential</p>\n </CardContent>\n </Card>\n </div>\n <Tabs defaultValue=\"predictive\">\n <TabsList>\n <TabsTrigger value=\"predictive\">Predictive Maintenance</TabsTrigger>\n <TabsTrigger value=\"optimization\">Optimization</TabsTrigger>\n </TabsList>\n <TabsContent value=\"predictive\" className=\"mt-4\">\n <Card>\n <CardHeader>\n <CardTitle>Equipment Alerts</CardTitle>\n </CardHeader>\n <CardContent className=\"space-y-4\">\n {aiInsights\n .filter(\n (a) => a.type === 'predictive_maintenance' || a.type === 'anomaly_detection'\n )\n .map((alert) => (\n <div\n key={alert.id}\n className={`rounded-lg border-2 p-4 ${alert.severity === 'high' ? 'border-red-200 bg-red-50' : 'border-yellow-200 bg-yellow-50'}`}\n >\n <div className=\"mb-2 flex items-start justify-between\">\n <div>\n <div className=\"mb-1 flex items-center gap-2\">\n <Activity className=\"h-5 w-5\" />\n <h4 className=\"font-semibold\">{alert.equipment}</h4>\n </div>\n <p className=\"text-sm text-muted-foreground\">{alert.prediction}</p>\n </div>\n <Badge\n variant=\"outline\"\n className={alert.severity === 'high' ? 'text-red-600' : 'text-yellow-600'}\n >\n {alert.severity.toUpperCase()}\n </Badge>\n </div>\n <div className=\"mb-3 grid grid-cols-2 gap-3\">\n <div>\n <span className=\"text-xs text-muted-foreground\">Confidence</span>\n <div className=\"mt-1 flex items-center gap-2\">\n <div className=\"h-2 flex-1 rounded-full bg-muted\">\n <div\n className=\"h-2 rounded-full bg-blue-500\"\n style={{ width: `${alert.confidence}%` }}\n />\n </div>\n <span className=\"text-sm font-medium\">{alert.confidence}%</span>\n </div>\n </div>\n <div>\n <span className=\"text-xs text-muted-foreground\">Timeframe</span>\n <p className=\"mt-1 text-sm font-medium\">{alert.timeframe}</p>\n </div>\n </div>\n <div className=\"flex items-start gap-2 rounded bg-white p-2\">\n <Sparkles className=\"mt-0.5 h-4 w-4 flex-shrink-0 text-purple-600\" />\n <div>\n <span className=\"text-xs font-medium text-purple-600\">\n AI Recommendation:\n </span>\n <p className=\"text-sm\">{alert.recommendation}</p>\n </div>\n </div>\n </div>\n ))}\n </CardContent>\n </Card>\n </TabsContent>\n <TabsContent value=\"optimization\" className=\"mt-4\">\n <Card>\n <CardHeader>\n <CardTitle>Optimization Opportunities</CardTitle>\n </CardHeader>\n <CardContent className=\"space-y-4\">\n {aiInsights\n .filter((a) => a.type === 'optimization' || a.type === 'demand_forecast')\n .map((insight) => (\n <div key={insight.id} className=\"rounded-lg border p-4\">\n <div className=\"mb-2 flex items-start justify-between\">\n <div>\n <h4 className=\"font-semibold\">{insight.equipment}</h4>\n <p className=\"text-sm text-muted-foreground\">{insight.prediction}</p>\n </div>\n <Badge variant=\"outline\" className=\"text-green-600\">\n {insight.type.replace(/_/g, ' ')}\n </Badge>\n </div>\n <div className=\"flex items-start gap-2 rounded bg-purple-50 p-2\">\n <Sparkles className=\"mt-0.5 h-4 w-4 text-purple-600\" />\n <p className=\"text-sm\">{insight.recommendation}</p>\n </div>\n </div>\n ))}\n </CardContent>\n </Card>\n </TabsContent>\n </Tabs>\n </div>\n );\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AnalyticsPage.d.ts","sourceRoot":"","sources":["../../../src/theglobalfuel/pages/AnalyticsPage.tsx"],"names":[],"mappings":"AAKA,wBAAgB,aAAa,4CAqL5B"}
|
|
@@ -0,0 +1,241 @@
|
|
|
1
|
+
import { useTheGlobalFuelStore as e } from "../store/theglobalfuelStore.js";
|
|
2
|
+
import { cn as t } from "../utils/cn.js";
|
|
3
|
+
import { BarChart3 as n, Download as r, Fuel as i, Package as a, TrendingDown as o, TrendingUp as s, Users as c } from "lucide-react";
|
|
4
|
+
import { jsx as l, jsxs as u } from "react/jsx-runtime";
|
|
5
|
+
import { Badge as d, Button as f, Card as p, CardContent as m, CardHeader as h, CardTitle as g } from "@burdenoff/fe-libs/ui";
|
|
6
|
+
//#region src/theglobalfuel/pages/AnalyticsPage.tsx
|
|
7
|
+
function _() {
|
|
8
|
+
let { financials: _ } = e(), v = [
|
|
9
|
+
{
|
|
10
|
+
category: "Refined Products",
|
|
11
|
+
revenue: 147e7,
|
|
12
|
+
pct: 60,
|
|
13
|
+
growth: 15.2
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
category: "Crude Oil Trading",
|
|
17
|
+
revenue: 49e7,
|
|
18
|
+
pct: 20,
|
|
19
|
+
growth: 8.7
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
category: "Natural Gas & NGL",
|
|
23
|
+
revenue: 294e6,
|
|
24
|
+
pct: 12,
|
|
25
|
+
growth: 22.5
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
category: "Petrochemicals",
|
|
29
|
+
revenue: 196e6,
|
|
30
|
+
pct: 8,
|
|
31
|
+
growth: -3.2
|
|
32
|
+
}
|
|
33
|
+
], y = [
|
|
34
|
+
{
|
|
35
|
+
region: "PADD III (Gulf Coast)",
|
|
36
|
+
sales: 115e7,
|
|
37
|
+
orders: 523,
|
|
38
|
+
growth: 18.5
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
region: "PADD II (Midwest)",
|
|
42
|
+
sales: 68e7,
|
|
43
|
+
orders: 312,
|
|
44
|
+
growth: 12.3
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
region: "PADD I (East Coast)",
|
|
48
|
+
sales: 42e7,
|
|
49
|
+
orders: 234,
|
|
50
|
+
growth: 6.7
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
region: "Export Markets",
|
|
54
|
+
sales: 2e8,
|
|
55
|
+
orders: 87,
|
|
56
|
+
growth: 28.7
|
|
57
|
+
}
|
|
58
|
+
], b = [
|
|
59
|
+
{
|
|
60
|
+
name: "ULSD (Diesel)",
|
|
61
|
+
units: 2341e3,
|
|
62
|
+
revenue: 89234e4,
|
|
63
|
+
growth: 15.8
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
name: "Regular Gasoline",
|
|
67
|
+
units: 189e4,
|
|
68
|
+
revenue: 756e6,
|
|
69
|
+
growth: 9.2
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
name: "Jet Fuel (Jet A-1)",
|
|
73
|
+
units: 1567e3,
|
|
74
|
+
revenue: 6268e5,
|
|
75
|
+
growth: 24.3
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
name: "Natural Gas",
|
|
79
|
+
units: 45e6,
|
|
80
|
+
revenue: 5368e5,
|
|
81
|
+
growth: 6.7
|
|
82
|
+
}
|
|
83
|
+
], x = (e) => e >= 1e9 ? `$${(e / 1e9).toFixed(2)}B` : `$${(e / 1e6).toFixed(0)}M`;
|
|
84
|
+
return /* @__PURE__ */ u("div", {
|
|
85
|
+
className: "space-y-6 p-6",
|
|
86
|
+
children: [
|
|
87
|
+
/* @__PURE__ */ u("div", {
|
|
88
|
+
className: "flex items-center justify-between",
|
|
89
|
+
children: [/* @__PURE__ */ u("div", { children: [/* @__PURE__ */ u("h1", {
|
|
90
|
+
className: "flex items-center gap-2 text-2xl font-semibold",
|
|
91
|
+
children: [/* @__PURE__ */ l(n, { className: "h-7 w-7 text-blue-600" }), "Analytics & Reporting"]
|
|
92
|
+
}), /* @__PURE__ */ l("p", {
|
|
93
|
+
className: "mt-1 text-sm text-muted-foreground",
|
|
94
|
+
children: "Production metrics, revenue analytics, and business intelligence for energy operations"
|
|
95
|
+
})] }), /* @__PURE__ */ u(f, { children: [/* @__PURE__ */ l(r, { className: "mr-2 h-4 w-4" }), "Export"] })]
|
|
96
|
+
}),
|
|
97
|
+
/* @__PURE__ */ u("div", {
|
|
98
|
+
className: "grid gap-4 md:grid-cols-2 lg:grid-cols-4",
|
|
99
|
+
children: [
|
|
100
|
+
/* @__PURE__ */ u(p, { children: [/* @__PURE__ */ u(h, {
|
|
101
|
+
className: "flex flex-row items-center justify-between space-y-0 pb-2",
|
|
102
|
+
children: [/* @__PURE__ */ l(g, {
|
|
103
|
+
className: "text-sm font-medium",
|
|
104
|
+
children: "Total Revenue"
|
|
105
|
+
}), /* @__PURE__ */ l(s, { className: "h-4 w-4 text-green-500" })]
|
|
106
|
+
}), /* @__PURE__ */ u(m, { children: [/* @__PURE__ */ l("div", {
|
|
107
|
+
className: "text-2xl font-bold",
|
|
108
|
+
children: x(_.revenueUSD)
|
|
109
|
+
}), /* @__PURE__ */ l("p", {
|
|
110
|
+
className: "text-xs text-green-600",
|
|
111
|
+
children: "+12.5%"
|
|
112
|
+
})] })] }),
|
|
113
|
+
/* @__PURE__ */ u(p, { children: [/* @__PURE__ */ u(h, {
|
|
114
|
+
className: "flex flex-row items-center justify-between space-y-0 pb-2",
|
|
115
|
+
children: [/* @__PURE__ */ l(g, {
|
|
116
|
+
className: "text-sm font-medium",
|
|
117
|
+
children: "Production (bbl/d)"
|
|
118
|
+
}), /* @__PURE__ */ l(i, { className: "h-4 w-4 text-amber-500" })]
|
|
119
|
+
}), /* @__PURE__ */ u(m, { children: [/* @__PURE__ */ l("div", {
|
|
120
|
+
className: "text-2xl font-bold",
|
|
121
|
+
children: "847K"
|
|
122
|
+
}), /* @__PURE__ */ l("p", {
|
|
123
|
+
className: "text-xs text-green-600",
|
|
124
|
+
children: "+3.2%"
|
|
125
|
+
})] })] }),
|
|
126
|
+
/* @__PURE__ */ u(p, { children: [/* @__PURE__ */ u(h, {
|
|
127
|
+
className: "flex flex-row items-center justify-between space-y-0 pb-2",
|
|
128
|
+
children: [/* @__PURE__ */ l(g, {
|
|
129
|
+
className: "text-sm font-medium",
|
|
130
|
+
children: "Active Customers"
|
|
131
|
+
}), /* @__PURE__ */ l(c, { className: "h-4 w-4 text-purple-500" })]
|
|
132
|
+
}), /* @__PURE__ */ u(m, { children: [/* @__PURE__ */ l("div", {
|
|
133
|
+
className: "text-2xl font-bold",
|
|
134
|
+
children: "3,456"
|
|
135
|
+
}), /* @__PURE__ */ l("p", {
|
|
136
|
+
className: "text-xs text-red-600",
|
|
137
|
+
children: "-2.4%"
|
|
138
|
+
})] })] }),
|
|
139
|
+
/* @__PURE__ */ u(p, { children: [/* @__PURE__ */ u(h, {
|
|
140
|
+
className: "flex flex-row items-center justify-between space-y-0 pb-2",
|
|
141
|
+
children: [/* @__PURE__ */ l(g, {
|
|
142
|
+
className: "text-sm font-medium",
|
|
143
|
+
children: "Refining Margin"
|
|
144
|
+
}), /* @__PURE__ */ l(n, { className: "h-4 w-4 text-blue-500" })]
|
|
145
|
+
}), /* @__PURE__ */ u(m, { children: [/* @__PURE__ */ l("div", {
|
|
146
|
+
className: "text-2xl font-bold",
|
|
147
|
+
children: "$18.50/bbl"
|
|
148
|
+
}), /* @__PURE__ */ l("p", {
|
|
149
|
+
className: "text-xs text-green-600",
|
|
150
|
+
children: "+8.3%"
|
|
151
|
+
})] })] })
|
|
152
|
+
]
|
|
153
|
+
}),
|
|
154
|
+
/* @__PURE__ */ u("div", {
|
|
155
|
+
className: "grid gap-4 lg:grid-cols-2",
|
|
156
|
+
children: [/* @__PURE__ */ u(p, { children: [/* @__PURE__ */ l(h, { children: /* @__PURE__ */ l(g, { children: "Revenue by Category" }) }), /* @__PURE__ */ l(m, {
|
|
157
|
+
className: "space-y-4",
|
|
158
|
+
children: v.map((e) => /* @__PURE__ */ u("div", { children: [/* @__PURE__ */ u("div", {
|
|
159
|
+
className: "mb-1 flex justify-between text-sm",
|
|
160
|
+
children: [/* @__PURE__ */ l("span", { children: e.category }), /* @__PURE__ */ u("div", {
|
|
161
|
+
className: "flex items-center gap-2",
|
|
162
|
+
children: [/* @__PURE__ */ l("span", { children: x(e.revenue) }), /* @__PURE__ */ u("span", {
|
|
163
|
+
className: t("text-xs", e.growth >= 0 ? "text-green-600" : "text-red-600"),
|
|
164
|
+
children: [
|
|
165
|
+
e.growth >= 0 ? "+" : "",
|
|
166
|
+
e.growth,
|
|
167
|
+
"%"
|
|
168
|
+
]
|
|
169
|
+
})]
|
|
170
|
+
})]
|
|
171
|
+
}), /* @__PURE__ */ l("div", {
|
|
172
|
+
className: "h-2 w-full rounded-full bg-muted",
|
|
173
|
+
children: /* @__PURE__ */ l("div", {
|
|
174
|
+
className: "h-2 rounded-full bg-green-500",
|
|
175
|
+
style: { width: `${e.pct}%` }
|
|
176
|
+
})
|
|
177
|
+
})] }, e.category))
|
|
178
|
+
})] }), /* @__PURE__ */ u(p, { children: [/* @__PURE__ */ l(h, { children: /* @__PURE__ */ l(g, { children: "Sales by Region" }) }), /* @__PURE__ */ l(m, {
|
|
179
|
+
className: "space-y-4",
|
|
180
|
+
children: y.map((e) => /* @__PURE__ */ u("div", {
|
|
181
|
+
className: "flex items-center justify-between",
|
|
182
|
+
children: [/* @__PURE__ */ u("div", { children: [/* @__PURE__ */ l("p", {
|
|
183
|
+
className: "text-sm font-medium",
|
|
184
|
+
children: e.region
|
|
185
|
+
}), /* @__PURE__ */ u("p", {
|
|
186
|
+
className: "text-xs text-muted-foreground",
|
|
187
|
+
children: [e.orders, " orders"]
|
|
188
|
+
})] }), /* @__PURE__ */ u("div", {
|
|
189
|
+
className: "text-right",
|
|
190
|
+
children: [/* @__PURE__ */ l("p", {
|
|
191
|
+
className: "text-sm font-semibold",
|
|
192
|
+
children: x(e.sales)
|
|
193
|
+
}), /* @__PURE__ */ u("p", {
|
|
194
|
+
className: t("text-xs", e.growth >= 0 ? "text-green-600" : "text-red-600"),
|
|
195
|
+
children: [
|
|
196
|
+
"+",
|
|
197
|
+
e.growth,
|
|
198
|
+
"%"
|
|
199
|
+
]
|
|
200
|
+
})]
|
|
201
|
+
})]
|
|
202
|
+
}, e.region))
|
|
203
|
+
})] })]
|
|
204
|
+
}),
|
|
205
|
+
/* @__PURE__ */ u(p, { children: [/* @__PURE__ */ l(h, { children: /* @__PURE__ */ l(g, { children: "Top Products by Revenue" }) }), /* @__PURE__ */ l(m, {
|
|
206
|
+
className: "space-y-3",
|
|
207
|
+
children: b.map((e) => /* @__PURE__ */ u("div", {
|
|
208
|
+
className: "flex items-center justify-between rounded border p-3",
|
|
209
|
+
children: [/* @__PURE__ */ u("div", {
|
|
210
|
+
className: "flex items-center gap-3",
|
|
211
|
+
children: [/* @__PURE__ */ l(a, { className: "h-5 w-5 text-muted-foreground" }), /* @__PURE__ */ u("div", { children: [/* @__PURE__ */ l("p", {
|
|
212
|
+
className: "text-sm font-medium",
|
|
213
|
+
children: e.name
|
|
214
|
+
}), /* @__PURE__ */ u("p", {
|
|
215
|
+
className: "text-xs text-muted-foreground",
|
|
216
|
+
children: [(e.units / 1e6).toFixed(1), "M bbl sold"]
|
|
217
|
+
})] })]
|
|
218
|
+
}), /* @__PURE__ */ u("div", {
|
|
219
|
+
className: "flex items-center gap-3",
|
|
220
|
+
children: [/* @__PURE__ */ l("span", {
|
|
221
|
+
className: "text-sm font-bold",
|
|
222
|
+
children: x(e.revenue)
|
|
223
|
+
}), /* @__PURE__ */ u(d, {
|
|
224
|
+
variant: "outline",
|
|
225
|
+
className: e.growth >= 0 ? "text-green-600" : "text-red-600",
|
|
226
|
+
children: [
|
|
227
|
+
e.growth >= 0 ? /* @__PURE__ */ l(s, { className: "mr-1 h-3 w-3" }) : /* @__PURE__ */ l(o, { className: "mr-1 h-3 w-3" }),
|
|
228
|
+
e.growth,
|
|
229
|
+
"%"
|
|
230
|
+
]
|
|
231
|
+
})]
|
|
232
|
+
})]
|
|
233
|
+
}, e.name))
|
|
234
|
+
})] })
|
|
235
|
+
]
|
|
236
|
+
});
|
|
237
|
+
}
|
|
238
|
+
//#endregion
|
|
239
|
+
export { _ as AnalyticsPage };
|
|
240
|
+
|
|
241
|
+
//# sourceMappingURL=AnalyticsPage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AnalyticsPage.js","names":[],"sources":["../../../src/theglobalfuel/pages/AnalyticsPage.tsx"],"sourcesContent":["import { Card, CardContent, CardHeader, CardTitle, Badge, Button } from '@burdenoff/fe-libs/ui';\nimport { TrendingUp, TrendingDown, Download, BarChart3, Fuel, Package, Users } from 'lucide-react';\nimport { useTheGlobalFuelStore } from '../store/theglobalfuelStore';\nimport { cn } from '../utils/cn';\n\nexport function AnalyticsPage() {\n const { financials } = useTheGlobalFuelStore();\n\n const revenueByCategory = [\n { category: 'Refined Products', revenue: 1_470_000_000, pct: 60, growth: 15.2 },\n { category: 'Crude Oil Trading', revenue: 490_000_000, pct: 20, growth: 8.7 },\n { category: 'Natural Gas & NGL', revenue: 294_000_000, pct: 12, growth: 22.5 },\n { category: 'Petrochemicals', revenue: 196_000_000, pct: 8, growth: -3.2 },\n ];\n\n const salesByRegion = [\n { region: 'PADD III (Gulf Coast)', sales: 1_150_000_000, orders: 523, growth: 18.5 },\n { region: 'PADD II (Midwest)', sales: 680_000_000, orders: 312, growth: 12.3 },\n { region: 'PADD I (East Coast)', sales: 420_000_000, orders: 234, growth: 6.7 },\n { region: 'Export Markets', sales: 200_000_000, orders: 87, growth: 28.7 },\n ];\n\n const topProducts = [\n { name: 'ULSD (Diesel)', units: 2_341_000, revenue: 892_340_000, growth: 15.8 },\n { name: 'Regular Gasoline', units: 1_890_000, revenue: 756_000_000, growth: 9.2 },\n { name: 'Jet Fuel (Jet A-1)', units: 1_567_000, revenue: 626_800_000, growth: 24.3 },\n { name: 'Natural Gas', units: 45_000_000, revenue: 536_800_000, growth: 6.7 },\n ];\n\n const fmt = (n: number) => (n >= 1e9 ? `$${(n / 1e9).toFixed(2)}B` : `$${(n / 1e6).toFixed(0)}M`);\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 <BarChart3 className=\"h-7 w-7 text-blue-600\" />\n Analytics & Reporting\n </h1>\n <p className=\"mt-1 text-sm text-muted-foreground\">\n Production metrics, revenue analytics, and business intelligence for energy operations\n </p>\n </div>\n <Button>\n <Download className=\"mr-2 h-4 w-4\" />\n Export\n </Button>\n </div>\n\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 Revenue</CardTitle>\n <TrendingUp className=\"h-4 w-4 text-green-500\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold\">{fmt(financials.revenueUSD)}</div>\n <p className=\"text-xs text-green-600\">+12.5%</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\">Production (bbl/d)</CardTitle>\n <Fuel className=\"h-4 w-4 text-amber-500\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold\">847K</div>\n <p className=\"text-xs text-green-600\">+3.2%</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\">Active Customers</CardTitle>\n <Users className=\"h-4 w-4 text-purple-500\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold\">3,456</div>\n <p className=\"text-xs text-red-600\">-2.4%</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\">Refining Margin</CardTitle>\n <BarChart3 className=\"h-4 w-4 text-blue-500\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold\">$18.50/bbl</div>\n <p className=\"text-xs text-green-600\">+8.3%</p>\n </CardContent>\n </Card>\n </div>\n\n <div className=\"grid gap-4 lg:grid-cols-2\">\n <Card>\n <CardHeader>\n <CardTitle>Revenue by Category</CardTitle>\n </CardHeader>\n <CardContent className=\"space-y-4\">\n {revenueByCategory.map((item) => (\n <div key={item.category}>\n <div className=\"mb-1 flex justify-between text-sm\">\n <span>{item.category}</span>\n <div className=\"flex items-center gap-2\">\n <span>{fmt(item.revenue)}</span>\n <span\n className={cn(\n 'text-xs',\n item.growth >= 0 ? 'text-green-600' : 'text-red-600'\n )}\n >\n {item.growth >= 0 ? '+' : ''}\n {item.growth}%\n </span>\n </div>\n </div>\n <div className=\"h-2 w-full rounded-full bg-muted\">\n <div\n className=\"h-2 rounded-full bg-green-500\"\n style={{ width: `${item.pct}%` }}\n />\n </div>\n </div>\n ))}\n </CardContent>\n </Card>\n <Card>\n <CardHeader>\n <CardTitle>Sales by Region</CardTitle>\n </CardHeader>\n <CardContent className=\"space-y-4\">\n {salesByRegion.map((item) => (\n <div key={item.region} className=\"flex items-center justify-between\">\n <div>\n <p className=\"text-sm font-medium\">{item.region}</p>\n <p className=\"text-xs text-muted-foreground\">{item.orders} orders</p>\n </div>\n <div className=\"text-right\">\n <p className=\"text-sm font-semibold\">{fmt(item.sales)}</p>\n <p\n className={cn('text-xs', item.growth >= 0 ? 'text-green-600' : 'text-red-600')}\n >\n +{item.growth}%\n </p>\n </div>\n </div>\n ))}\n </CardContent>\n </Card>\n </div>\n\n <Card>\n <CardHeader>\n <CardTitle>Top Products by Revenue</CardTitle>\n </CardHeader>\n <CardContent className=\"space-y-3\">\n {topProducts.map((p) => (\n <div key={p.name} className=\"flex items-center justify-between rounded border p-3\">\n <div className=\"flex items-center gap-3\">\n <Package className=\"h-5 w-5 text-muted-foreground\" />\n <div>\n <p className=\"text-sm font-medium\">{p.name}</p>\n <p className=\"text-xs text-muted-foreground\">\n {(p.units / 1e6).toFixed(1)}M bbl sold\n </p>\n </div>\n </div>\n <div className=\"flex items-center gap-3\">\n <span className=\"text-sm font-bold\">{fmt(p.revenue)}</span>\n <Badge\n variant=\"outline\"\n className={p.growth >= 0 ? 'text-green-600' : 'text-red-600'}\n >\n {p.growth >= 0 ? (\n <TrendingUp className=\"mr-1 h-3 w-3\" />\n ) : (\n <TrendingDown className=\"mr-1 h-3 w-3\" />\n )}\n {p.growth}%\n </Badge>\n </div>\n </div>\n ))}\n </CardContent>\n </Card>\n </div>\n );\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CompliancePage.d.ts","sourceRoot":"","sources":["../../../src/theglobalfuel/pages/CompliancePage.tsx"],"names":[],"mappings":"AAIA,wBAAgB,cAAc,4CAoJ7B"}
|