@burdenoff/microfe-theglobalfuel 2026.731.1 → 2026.804.1

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 (30) hide show
  1. package/dist/theglobalfuel/TheGlobalFuelRoot.d.ts.map +1 -1
  2. package/dist/theglobalfuel/TheGlobalFuelRoot.js +67 -51
  3. package/dist/theglobalfuel/TheGlobalFuelRoot.js.map +1 -1
  4. package/dist/theglobalfuel/TheGlobalFuelRoutes.d.ts.map +1 -1
  5. package/dist/theglobalfuel/TheGlobalFuelRoutes.js +34 -26
  6. package/dist/theglobalfuel/TheGlobalFuelRoutes.js.map +1 -1
  7. package/dist/theglobalfuel/components/StatusBadge.d.ts.map +1 -1
  8. package/dist/theglobalfuel/components/StatusBadge.js +18 -1
  9. package/dist/theglobalfuel/components/StatusBadge.js.map +1 -1
  10. package/dist/theglobalfuel/context/TheGlobalFuelContext.js +1 -1
  11. package/dist/theglobalfuel/context/TheGlobalFuelContext.js.map +1 -1
  12. package/dist/theglobalfuel/hooks/useTheGlobalFuelApi.d.ts +26 -1
  13. package/dist/theglobalfuel/hooks/useTheGlobalFuelApi.d.ts.map +1 -1
  14. package/dist/theglobalfuel/hooks/useTheGlobalFuelApi.js +139 -29
  15. package/dist/theglobalfuel/hooks/useTheGlobalFuelApi.js.map +1 -1
  16. package/dist/theglobalfuel/pages/assets/AssetDetailPage.js +1 -1
  17. package/dist/theglobalfuel/pages/assets/AssetDetailPage.js.map +1 -1
  18. package/dist/theglobalfuel/pages/contracts/ContractDetailPage.js +1 -1
  19. package/dist/theglobalfuel/pages/contracts/ContractDetailPage.js.map +1 -1
  20. package/dist/theglobalfuel/pages/safety/IncidentsPage.d.ts +15 -0
  21. package/dist/theglobalfuel/pages/safety/IncidentsPage.d.ts.map +1 -0
  22. package/dist/theglobalfuel/pages/safety/IncidentsPage.js +611 -0
  23. package/dist/theglobalfuel/pages/safety/IncidentsPage.js.map +1 -0
  24. package/dist/theglobalfuel/pages/safety/SafetyDashboardPage.d.ts +12 -0
  25. package/dist/theglobalfuel/pages/safety/SafetyDashboardPage.d.ts.map +1 -0
  26. package/dist/theglobalfuel/pages/safety/SafetyDashboardPage.js +175 -0
  27. package/dist/theglobalfuel/pages/safety/SafetyDashboardPage.js.map +1 -0
  28. package/dist/theglobalfuel/types/index.d.ts +74 -0
  29. package/dist/theglobalfuel/types/index.d.ts.map +1 -1
  30. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"TheGlobalFuelRoot.d.ts","sourceRoot":"","sources":["../../src/theglobalfuel/TheGlobalFuelRoot.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAoBhC,OAAO,KAAK,EAAE,sBAAsB,EAAW,MAAM,SAAS,CAAC;AAY/D,eAAO,MAAM,iBAAiB,EAAE,EAAE,CAAC,sBAAsB,CAsIxD,CAAC"}
1
+ {"version":3,"file":"TheGlobalFuelRoot.d.ts","sourceRoot":"","sources":["../../src/theglobalfuel/TheGlobalFuelRoot.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAsBhC,OAAO,KAAK,EAAE,sBAAsB,EAAW,MAAM,SAAS,CAAC;AAY/D,eAAO,MAAM,iBAAiB,EAAE,EAAE,CAAC,sBAAsB,CAsJxD,CAAC"}
@@ -5,129 +5,145 @@ import { useCallback as r, useEffect as i, useMemo as a } from "react";
5
5
  import { QueryClient as o, QueryClientProvider as s } from "@tanstack/react-query";
6
6
  import { FeatureFlagProvider as c, useFeatureFlags as l } from "@burdenoff/fe-libs/shared/feature-flags";
7
7
  import { useI18n as u } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
8
- import { Boxes as d, Factory as f, FileText as p, Gauge as m, Layers as h, LayoutDashboard as g, Leaf as _, ShieldCheck as v, Truck as y, Waypoints as b } from "lucide-react";
9
- import { jsx as x } from "react/jsx-runtime";
8
+ import { Boxes as d, ClipboardList as f, Factory as p, FileText as m, Gauge as h, Layers as g, LayoutDashboard as _, Leaf as v, ShieldAlert as y, ShieldCheck as b, Truck as x, Waypoints as S } from "lucide-react";
9
+ import { jsx as C } from "react/jsx-runtime";
10
10
  //#region src/theglobalfuel/TheGlobalFuelRoot.tsx
11
- var S = new o({ defaultOptions: { queries: {
11
+ var w = new o({ defaultOptions: { queries: {
12
12
  staleTime: 300 * 1e3,
13
13
  retry: 1,
14
14
  refetchOnWindowFocus: !1
15
- } } }), C = (o) => {
16
- let { registerNavItems: C, registerFooterItems: w, basePath: T = "/" } = o, { t: E } = u(), { isEnabled: D, evaluations: O } = l(), k = r((e, t) => {
17
- let n = E(e);
15
+ } } }), T = (o) => {
16
+ let { registerNavItems: T, registerFooterItems: E, basePath: D = "/" } = o, { t: O } = u(), { isEnabled: k, evaluations: A } = l(), j = r((e, t) => {
17
+ let n = O(e);
18
18
  return n === e ? t : n;
19
- }, [E]), A = a(() => [
19
+ }, [O]), M = a(() => [
20
20
  {
21
21
  id: "theglobalfuel-dashboard",
22
- label: k("theglobalfuel.nav.dashboard", "Dashboard"),
23
- path: e(T, ""),
24
- icon: /* @__PURE__ */ x(g, { size: 20 }),
22
+ label: j("theglobalfuel.nav.dashboard", "Dashboard"),
23
+ path: e(D, ""),
24
+ icon: /* @__PURE__ */ C(_, { size: 20 }),
25
25
  order: 0,
26
26
  group: "products"
27
27
  },
28
28
  {
29
29
  id: "theglobalfuel-assets",
30
- label: k("theglobalfuel.nav.assets", "Assets"),
31
- path: e(T, "assets"),
32
- icon: /* @__PURE__ */ x(f, { size: 20 }),
30
+ label: j("theglobalfuel.nav.assets", "Assets"),
31
+ path: e(D, "assets"),
32
+ icon: /* @__PURE__ */ C(p, { size: 20 }),
33
33
  order: 1,
34
34
  group: "products"
35
35
  },
36
36
  {
37
37
  id: "theglobalfuel-production",
38
- label: k("theglobalfuel.nav.production", "Production"),
39
- path: e(T, "production"),
40
- icon: /* @__PURE__ */ x(m, { size: 20 }),
38
+ label: j("theglobalfuel.nav.production", "Production"),
39
+ path: e(D, "production"),
40
+ icon: /* @__PURE__ */ C(h, { size: 20 }),
41
41
  order: 2,
42
42
  group: "products"
43
43
  },
44
44
  {
45
45
  id: "theglobalfuel-reserves",
46
- label: k("theglobalfuel.nav.reserves", "Reserves"),
47
- path: e(T, "reserves"),
48
- icon: /* @__PURE__ */ x(h, { size: 20 }),
46
+ label: j("theglobalfuel.nav.reserves", "Reserves"),
47
+ path: e(D, "reserves"),
48
+ icon: /* @__PURE__ */ C(g, { size: 20 }),
49
49
  order: 3,
50
50
  group: "products"
51
51
  },
52
52
  {
53
53
  id: "theglobalfuel-contracts",
54
- label: k("theglobalfuel.nav.contracts", "Offtake Contracts"),
55
- path: e(T, "contracts"),
56
- icon: /* @__PURE__ */ x(p, { size: 20 }),
54
+ label: j("theglobalfuel.nav.contracts", "Offtake Contracts"),
55
+ path: e(D, "contracts"),
56
+ icon: /* @__PURE__ */ C(m, { size: 20 }),
57
57
  order: 4,
58
58
  group: "products"
59
59
  },
60
60
  {
61
61
  id: "theglobalfuel-shipments",
62
- label: k("theglobalfuel.nav.shipments", "Shipments"),
63
- path: e(T, "shipments"),
64
- icon: /* @__PURE__ */ x(y, { size: 20 }),
62
+ label: j("theglobalfuel.nav.shipments", "Shipments"),
63
+ path: e(D, "shipments"),
64
+ icon: /* @__PURE__ */ C(x, { size: 20 }),
65
65
  order: 5,
66
66
  group: "products"
67
67
  },
68
68
  {
69
69
  id: "theglobalfuel-inventory",
70
- label: k("theglobalfuel.nav.inventory", "Inventory"),
71
- path: e(T, "inventory"),
72
- icon: /* @__PURE__ */ x(d, { size: 20 }),
70
+ label: j("theglobalfuel.nav.inventory", "Inventory"),
71
+ path: e(D, "inventory"),
72
+ icon: /* @__PURE__ */ C(d, { size: 20 }),
73
73
  order: 6,
74
74
  group: "products"
75
75
  },
76
76
  {
77
77
  id: "theglobalfuel-emissions",
78
- label: k("theglobalfuel.nav.emissions", "Emissions"),
79
- path: e(T, "emissions"),
80
- icon: /* @__PURE__ */ x(_, { size: 20 }),
78
+ label: j("theglobalfuel.nav.emissions", "Emissions"),
79
+ path: e(D, "emissions"),
80
+ icon: /* @__PURE__ */ C(v, { size: 20 }),
81
81
  order: 7,
82
82
  group: "products"
83
83
  },
84
84
  {
85
85
  id: "theglobalfuel-compliance",
86
- label: k("theglobalfuel.nav.compliance", "Compliance"),
87
- path: e(T, "compliance"),
88
- icon: /* @__PURE__ */ x(v, { size: 20 }),
86
+ label: j("theglobalfuel.nav.compliance", "Compliance"),
87
+ path: e(D, "compliance"),
88
+ icon: /* @__PURE__ */ C(b, { size: 20 }),
89
89
  order: 8,
90
90
  group: "products"
91
91
  },
92
92
  {
93
93
  id: "theglobalfuel-provenance",
94
- label: k("theglobalfuel.nav.provenance", "Provenance"),
95
- path: e(T, "provenance"),
96
- icon: /* @__PURE__ */ x(b, { size: 20 }),
94
+ label: j("theglobalfuel.nav.provenance", "Provenance"),
95
+ path: e(D, "provenance"),
96
+ icon: /* @__PURE__ */ C(S, { size: 20 }),
97
97
  order: 9,
98
98
  group: "products"
99
+ },
100
+ {
101
+ id: "theglobalfuel-safety",
102
+ label: j("theglobalfuel.nav.safety", "Safety"),
103
+ path: e(D, "safety"),
104
+ icon: /* @__PURE__ */ C(y, { size: 20 }),
105
+ order: 10,
106
+ group: "products"
107
+ },
108
+ {
109
+ id: "theglobalfuel-incidents",
110
+ label: j("theglobalfuel.nav.incidents", "Incidents"),
111
+ path: e(D, "safety/incidents"),
112
+ icon: /* @__PURE__ */ C(f, { size: 20 }),
113
+ order: 11,
114
+ group: "products"
99
115
  }
100
- ], [T, k]), j = r((e) => `theglobalfuel.${e.replace("theglobalfuel-", "")}`, []);
116
+ ], [D, j]), N = r((e) => `theglobalfuel.${e.replace("theglobalfuel-", "")}`, []);
101
117
  return i(() => {
102
- if (C) return C(A.filter((e) => D(j(e.id), !0)));
118
+ if (T) return T(M.filter((e) => k(N(e.id), !0)));
103
119
  }, [
104
- C,
120
+ T,
121
+ M,
122
+ k,
105
123
  A,
106
- D,
107
- O,
108
- j
124
+ N
109
125
  ]), i(() => {
110
- if (w) return w([{
126
+ if (E) return E([{
111
127
  id: "theglobalfuel-status",
112
- label: k("theglobalfuel.footer.ready", "TheGlobalFuel Ready"),
128
+ label: j("theglobalfuel.footer.ready", "TheGlobalFuel Ready"),
113
129
  type: "status",
114
130
  section: "left",
115
131
  order: 10
116
132
  }]);
117
- }, [w, k]), /* @__PURE__ */ x(s, {
118
- client: S,
119
- children: /* @__PURE__ */ x(c, {
133
+ }, [E, j]), /* @__PURE__ */ C(s, {
134
+ client: w,
135
+ children: /* @__PURE__ */ C(c, {
120
136
  workspaceId: null,
121
137
  gateway: "global",
122
138
  defaultEnabled: !0,
123
- children: /* @__PURE__ */ x(t, {
139
+ children: /* @__PURE__ */ C(t, {
124
140
  ...o,
125
- children: /* @__PURE__ */ x(n, {})
141
+ children: /* @__PURE__ */ C(n, {})
126
142
  })
127
143
  })
128
144
  });
129
145
  };
130
146
  //#endregion
131
- export { C as TheGlobalFuelRoot };
147
+ export { T as TheGlobalFuelRoot };
132
148
 
133
149
  //# sourceMappingURL=TheGlobalFuelRoot.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TheGlobalFuelRoot.js","names":[],"sources":["../../src/theglobalfuel/TheGlobalFuelRoot.tsx"],"sourcesContent":["/**\n * TheGlobalFuel Root Component\n * @module theglobalfuel\n *\n * Host-contract entry point. Registers the product's sidebar nav (nine sections\n * that map 1:1 to the wspace-theglobalfuel-svc `the*` backend) and mounts the\n * routed pages inside the shared QueryClient + FeatureFlag providers.\n */\n\nimport type { FC } from 'react';\nimport { useCallback, useEffect, useMemo } from 'react';\nimport { QueryClient, QueryClientProvider } from '@tanstack/react-query';\nimport { FeatureFlagProvider, useFeatureFlags } from '@burdenoff/fe-libs/shared/feature-flags';\nimport { useI18n } from '@burdenoff/fe-libs/shared/providers/shell/I18nProvider';\nimport {\n LayoutDashboard,\n Factory,\n Gauge,\n Layers,\n FileText,\n Truck,\n Boxes,\n Leaf,\n ShieldCheck,\n Waypoints,\n} from 'lucide-react';\nimport { TheGlobalFuelProvider } from './context/TheGlobalFuelContext';\nimport { TheGlobalFuelRoutes } from './TheGlobalFuelRoutes';\nimport { joinPath } from './utils/navigation';\nimport type { TheGlobalFuelRootProps, NavItem } from './types';\n\nconst queryClient = new QueryClient({\n defaultOptions: {\n queries: {\n staleTime: 5 * 60 * 1000,\n retry: 1,\n refetchOnWindowFocus: false,\n },\n },\n});\n\nexport const TheGlobalFuelRoot: FC<TheGlobalFuelRootProps> = (props) => {\n const { registerNavItems, registerFooterItems, basePath = '/' } = props;\n const { t: translate } = useI18n();\n const { isEnabled, evaluations } = useFeatureFlags();\n const t = useCallback(\n (key: string, fallback: string): string => {\n const value = translate(key);\n return value === key ? fallback : value;\n },\n [translate]\n );\n\n // Register navigation items with the shell on mount. Ids/paths/orders match\n // the app-shell static NavRegistration block so the two are a single,\n // consistent source of truth.\n const navItems = useMemo<NavItem[]>(\n () => [\n {\n id: 'theglobalfuel-dashboard',\n label: t('theglobalfuel.nav.dashboard', 'Dashboard'),\n path: joinPath(basePath, ''),\n icon: <LayoutDashboard size={20} />,\n order: 0,\n group: 'products',\n },\n {\n id: 'theglobalfuel-assets',\n label: t('theglobalfuel.nav.assets', 'Assets'),\n path: joinPath(basePath, 'assets'),\n icon: <Factory size={20} />,\n order: 1,\n group: 'products',\n },\n {\n id: 'theglobalfuel-production',\n label: t('theglobalfuel.nav.production', 'Production'),\n path: joinPath(basePath, 'production'),\n icon: <Gauge size={20} />,\n order: 2,\n group: 'products',\n },\n {\n id: 'theglobalfuel-reserves',\n label: t('theglobalfuel.nav.reserves', 'Reserves'),\n path: joinPath(basePath, 'reserves'),\n icon: <Layers size={20} />,\n order: 3,\n group: 'products',\n },\n {\n id: 'theglobalfuel-contracts',\n label: t('theglobalfuel.nav.contracts', 'Offtake Contracts'),\n path: joinPath(basePath, 'contracts'),\n icon: <FileText size={20} />,\n order: 4,\n group: 'products',\n },\n {\n id: 'theglobalfuel-shipments',\n label: t('theglobalfuel.nav.shipments', 'Shipments'),\n path: joinPath(basePath, 'shipments'),\n icon: <Truck size={20} />,\n order: 5,\n group: 'products',\n },\n {\n id: 'theglobalfuel-inventory',\n label: t('theglobalfuel.nav.inventory', 'Inventory'),\n path: joinPath(basePath, 'inventory'),\n icon: <Boxes size={20} />,\n order: 6,\n group: 'products',\n },\n {\n id: 'theglobalfuel-emissions',\n label: t('theglobalfuel.nav.emissions', 'Emissions'),\n path: joinPath(basePath, 'emissions'),\n icon: <Leaf size={20} />,\n order: 7,\n group: 'products',\n },\n {\n id: 'theglobalfuel-compliance',\n label: t('theglobalfuel.nav.compliance', 'Compliance'),\n path: joinPath(basePath, 'compliance'),\n icon: <ShieldCheck size={20} />,\n order: 8,\n group: 'products',\n },\n {\n id: 'theglobalfuel-provenance',\n label: t('theglobalfuel.nav.provenance', 'Provenance'),\n path: joinPath(basePath, 'provenance'),\n icon: <Waypoints size={20} />,\n order: 9,\n group: 'products',\n },\n ],\n [basePath, t]\n );\n\n const flagForNav = useCallback((itemId: string): string => {\n const suffix = itemId.replace('theglobalfuel-', '');\n return `theglobalfuel.${suffix}`;\n }, []);\n\n useEffect(() => {\n if (!registerNavItems) return;\n const visible = navItems.filter((item) => isEnabled(flagForNav(item.id), true));\n return registerNavItems(visible);\n }, [registerNavItems, navItems, isEnabled, evaluations, flagForNav]);\n\n useEffect(() => {\n if (!registerFooterItems) return;\n return registerFooterItems([\n {\n id: 'theglobalfuel-status',\n label: t('theglobalfuel.footer.ready', 'TheGlobalFuel Ready'),\n type: 'status',\n section: 'left',\n order: 10,\n },\n ]);\n }, [registerFooterItems, t]);\n\n return (\n <QueryClientProvider client={queryClient}>\n <FeatureFlagProvider workspaceId={null} gateway=\"global\" defaultEnabled={true}>\n <TheGlobalFuelProvider {...props}>\n <TheGlobalFuelRoutes />\n </TheGlobalFuelProvider>\n </FeatureFlagProvider>\n </QueryClientProvider>\n );\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"TheGlobalFuelRoot.js","names":[],"sources":["../../src/theglobalfuel/TheGlobalFuelRoot.tsx"],"sourcesContent":["/**\n * TheGlobalFuel Root Component\n * @module theglobalfuel\n *\n * Host-contract entry point. Registers the product's sidebar nav (sections that\n * map 1:1 to the wspace-theglobalfuel-svc `the*` backend, including the\n * process-safety / EHS incident surfaces) and mounts the routed pages inside\n * the shared QueryClient + FeatureFlag providers.\n */\n\nimport type { FC } from 'react';\nimport { useCallback, useEffect, useMemo } from 'react';\nimport { QueryClient, QueryClientProvider } from '@tanstack/react-query';\nimport { FeatureFlagProvider, useFeatureFlags } from '@burdenoff/fe-libs/shared/feature-flags';\nimport { useI18n } from '@burdenoff/fe-libs/shared/providers/shell/I18nProvider';\nimport {\n LayoutDashboard,\n Factory,\n Gauge,\n Layers,\n FileText,\n Truck,\n Boxes,\n Leaf,\n ShieldCheck,\n ShieldAlert,\n ClipboardList,\n Waypoints,\n} from 'lucide-react';\nimport { TheGlobalFuelProvider } from './context/TheGlobalFuelContext';\nimport { TheGlobalFuelRoutes } from './TheGlobalFuelRoutes';\nimport { joinPath } from './utils/navigation';\nimport type { TheGlobalFuelRootProps, NavItem } from './types';\n\nconst queryClient = new QueryClient({\n defaultOptions: {\n queries: {\n staleTime: 5 * 60 * 1000,\n retry: 1,\n refetchOnWindowFocus: false,\n },\n },\n});\n\nexport const TheGlobalFuelRoot: FC<TheGlobalFuelRootProps> = (props) => {\n const { registerNavItems, registerFooterItems, basePath = '/' } = props;\n const { t: translate } = useI18n();\n const { isEnabled, evaluations } = useFeatureFlags();\n const t = useCallback(\n (key: string, fallback: string): string => {\n const value = translate(key);\n return value === key ? fallback : value;\n },\n [translate]\n );\n\n // Register navigation items with the shell on mount. Ids/paths/orders match\n // the app-shell static NavRegistration block so the two are a single,\n // consistent source of truth.\n const navItems = useMemo<NavItem[]>(\n () => [\n {\n id: 'theglobalfuel-dashboard',\n label: t('theglobalfuel.nav.dashboard', 'Dashboard'),\n path: joinPath(basePath, ''),\n icon: <LayoutDashboard size={20} />,\n order: 0,\n group: 'products',\n },\n {\n id: 'theglobalfuel-assets',\n label: t('theglobalfuel.nav.assets', 'Assets'),\n path: joinPath(basePath, 'assets'),\n icon: <Factory size={20} />,\n order: 1,\n group: 'products',\n },\n {\n id: 'theglobalfuel-production',\n label: t('theglobalfuel.nav.production', 'Production'),\n path: joinPath(basePath, 'production'),\n icon: <Gauge size={20} />,\n order: 2,\n group: 'products',\n },\n {\n id: 'theglobalfuel-reserves',\n label: t('theglobalfuel.nav.reserves', 'Reserves'),\n path: joinPath(basePath, 'reserves'),\n icon: <Layers size={20} />,\n order: 3,\n group: 'products',\n },\n {\n id: 'theglobalfuel-contracts',\n label: t('theglobalfuel.nav.contracts', 'Offtake Contracts'),\n path: joinPath(basePath, 'contracts'),\n icon: <FileText size={20} />,\n order: 4,\n group: 'products',\n },\n {\n id: 'theglobalfuel-shipments',\n label: t('theglobalfuel.nav.shipments', 'Shipments'),\n path: joinPath(basePath, 'shipments'),\n icon: <Truck size={20} />,\n order: 5,\n group: 'products',\n },\n {\n id: 'theglobalfuel-inventory',\n label: t('theglobalfuel.nav.inventory', 'Inventory'),\n path: joinPath(basePath, 'inventory'),\n icon: <Boxes size={20} />,\n order: 6,\n group: 'products',\n },\n {\n id: 'theglobalfuel-emissions',\n label: t('theglobalfuel.nav.emissions', 'Emissions'),\n path: joinPath(basePath, 'emissions'),\n icon: <Leaf size={20} />,\n order: 7,\n group: 'products',\n },\n {\n id: 'theglobalfuel-compliance',\n label: t('theglobalfuel.nav.compliance', 'Compliance'),\n path: joinPath(basePath, 'compliance'),\n icon: <ShieldCheck size={20} />,\n order: 8,\n group: 'products',\n },\n {\n id: 'theglobalfuel-provenance',\n label: t('theglobalfuel.nav.provenance', 'Provenance'),\n path: joinPath(basePath, 'provenance'),\n icon: <Waypoints size={20} />,\n order: 9,\n group: 'products',\n },\n {\n id: 'theglobalfuel-safety',\n label: t('theglobalfuel.nav.safety', 'Safety'),\n path: joinPath(basePath, 'safety'),\n icon: <ShieldAlert size={20} />,\n order: 10,\n group: 'products',\n },\n {\n id: 'theglobalfuel-incidents',\n label: t('theglobalfuel.nav.incidents', 'Incidents'),\n path: joinPath(basePath, 'safety/incidents'),\n icon: <ClipboardList size={20} />,\n order: 11,\n group: 'products',\n },\n ],\n [basePath, t]\n );\n\n const flagForNav = useCallback((itemId: string): string => {\n const suffix = itemId.replace('theglobalfuel-', '');\n return `theglobalfuel.${suffix}`;\n }, []);\n\n useEffect(() => {\n if (!registerNavItems) return;\n const visible = navItems.filter((item) => isEnabled(flagForNav(item.id), true));\n return registerNavItems(visible);\n }, [registerNavItems, navItems, isEnabled, evaluations, flagForNav]);\n\n useEffect(() => {\n if (!registerFooterItems) return;\n return registerFooterItems([\n {\n id: 'theglobalfuel-status',\n label: t('theglobalfuel.footer.ready', 'TheGlobalFuel Ready'),\n type: 'status',\n section: 'left',\n order: 10,\n },\n ]);\n }, [registerFooterItems, t]);\n\n return (\n <QueryClientProvider client={queryClient}>\n <FeatureFlagProvider workspaceId={null} gateway=\"global\" defaultEnabled={true}>\n <TheGlobalFuelProvider {...props}>\n <TheGlobalFuelRoutes />\n </TheGlobalFuelProvider>\n </FeatureFlagProvider>\n </QueryClientProvider>\n );\n};\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"TheGlobalFuelRoutes.d.ts","sourceRoot":"","sources":["../../src/theglobalfuel/TheGlobalFuelRoutes.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,KAAK,EAAE,EAAkC,MAAM,OAAO,CAAC;AAkFhE,eAAO,MAAM,mBAAmB,EAAE,EAoEjC,CAAC"}
1
+ {"version":3,"file":"TheGlobalFuelRoutes.d.ts","sourceRoot":"","sources":["../../src/theglobalfuel/TheGlobalFuelRoutes.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,KAAK,EAAE,EAAkC,MAAM,OAAO,CAAC;AA0FhE,eAAO,MAAM,mBAAmB,EAAE,EA0EjC,CAAC"}
@@ -2,15 +2,15 @@ import { useTheGlobalFuel as e } from "./context/TheGlobalFuelContext.js";
2
2
  import { DashboardPage as t } from "./pages/dashboard/DashboardPage.js";
3
3
  import { Suspense as n, lazy as r } from "react";
4
4
  import { FeatureGate as i } from "@burdenoff/fe-libs/shared/feature-flags";
5
- import { Navigate as a, Route as o, Routes as s, useLocation as c } from "react-router-dom";
5
+ import { Navigate as a, Route as o, Routes as s, useLocation as c } from "react-router";
6
6
  import { jsx as l, jsxs as u } from "react/jsx-runtime";
7
7
  import { Spinner as d } from "@burdenoff/fe-libs/ui";
8
8
  //#region src/theglobalfuel/TheGlobalFuelRoutes.tsx
9
- var f = r(() => import("./pages/assets/AssetsPage.js").then((e) => ({ default: e.AssetsPage }))), p = r(() => import("./pages/assets/AssetDetailPage.js").then((e) => ({ default: e.AssetDetailPage }))), m = r(() => import("./pages/production/ProductionPage.js").then((e) => ({ default: e.ProductionPage }))), h = r(() => import("./pages/reserves/ReservesPage.js").then((e) => ({ default: e.ReservesPage }))), g = r(() => import("./pages/contracts/ContractsPage.js").then((e) => ({ default: e.ContractsPage }))), _ = r(() => import("./pages/contracts/ContractDetailPage.js").then((e) => ({ default: e.ContractDetailPage }))), v = r(() => import("./pages/shipments/ShipmentsPage.js").then((e) => ({ default: e.ShipmentsPage }))), y = r(() => import("./pages/inventory/InventoryPage.js").then((e) => ({ default: e.InventoryPage }))), b = r(() => import("./pages/emissions/EmissionsPage.js").then((e) => ({ default: e.EmissionsPage }))), x = r(() => import("./pages/compliance/CompliancePage.js").then((e) => ({ default: e.CompliancePage }))), S = r(() => import("./pages/provenance/ProvenancePage.js").then((e) => ({ default: e.ProvenancePage }))), C = r(() => import("./pages/analytics/AnalyticsPage.js").then((e) => ({ default: e.AnalyticsPage }))), w = r(() => import("./pages/reports/ReportsPage.js").then((e) => ({ default: e.ReportsPage }))), T = r(() => import("./pages/alerts/AlertsPage.js").then((e) => ({ default: e.AlertsPage }))), E = () => /* @__PURE__ */ l("div", {
9
+ var f = r(() => import("./pages/assets/AssetsPage.js").then((e) => ({ default: e.AssetsPage }))), p = r(() => import("./pages/assets/AssetDetailPage.js").then((e) => ({ default: e.AssetDetailPage }))), m = r(() => import("./pages/production/ProductionPage.js").then((e) => ({ default: e.ProductionPage }))), h = r(() => import("./pages/reserves/ReservesPage.js").then((e) => ({ default: e.ReservesPage }))), g = r(() => import("./pages/contracts/ContractsPage.js").then((e) => ({ default: e.ContractsPage }))), _ = r(() => import("./pages/contracts/ContractDetailPage.js").then((e) => ({ default: e.ContractDetailPage }))), v = r(() => import("./pages/shipments/ShipmentsPage.js").then((e) => ({ default: e.ShipmentsPage }))), y = r(() => import("./pages/inventory/InventoryPage.js").then((e) => ({ default: e.InventoryPage }))), b = r(() => import("./pages/emissions/EmissionsPage.js").then((e) => ({ default: e.EmissionsPage }))), x = r(() => import("./pages/compliance/CompliancePage.js").then((e) => ({ default: e.CompliancePage }))), S = r(() => import("./pages/provenance/ProvenancePage.js").then((e) => ({ default: e.ProvenancePage }))), C = r(() => import("./pages/safety/SafetyDashboardPage.js").then((e) => ({ default: e.SafetyDashboardPage }))), w = r(() => import("./pages/safety/IncidentsPage.js").then((e) => ({ default: e.IncidentsPage }))), T = r(() => import("./pages/analytics/AnalyticsPage.js").then((e) => ({ default: e.AnalyticsPage }))), E = r(() => import("./pages/reports/ReportsPage.js").then((e) => ({ default: e.ReportsPage }))), D = r(() => import("./pages/alerts/AlertsPage.js").then((e) => ({ default: e.AlertsPage }))), O = () => /* @__PURE__ */ l("div", {
10
10
  className: "flex min-h-[400px] items-center justify-center",
11
11
  children: /* @__PURE__ */ l(d, { size: "lg" })
12
12
  });
13
- function D() {
13
+ function k() {
14
14
  return /* @__PURE__ */ u("div", {
15
15
  className: "flex min-h-[400px] flex-col items-center justify-center gap-3 text-center p-6",
16
16
  children: [/* @__PURE__ */ l("p", {
@@ -22,85 +22,93 @@ function D() {
22
22
  })]
23
23
  });
24
24
  }
25
- function O(e, t) {
25
+ function A(e, t) {
26
26
  return /* @__PURE__ */ l(i, {
27
27
  flag: e,
28
28
  defaultValue: !0,
29
- fallback: /* @__PURE__ */ l(D, {}),
29
+ fallback: /* @__PURE__ */ l(k, {}),
30
30
  children: t
31
31
  });
32
32
  }
33
- var k = () => {
34
- let { basePath: r, isStandalone: i } = e(), d = c(), D = r === "/" ? "" : (r ?? "").replace(/\/$/, "");
35
- return D && !i && !(d.pathname === D || d.pathname.startsWith(D + "/")) ? null : /* @__PURE__ */ l("div", {
33
+ var j = () => {
34
+ let { basePath: r, isStandalone: i } = e(), d = c(), k = r === "/" ? "" : (r ?? "").replace(/\/$/, "");
35
+ return k && !i && !(d.pathname === k || d.pathname.startsWith(k + "/")) ? null : /* @__PURE__ */ l("div", {
36
36
  className: "flex min-h-full flex-col",
37
37
  children: /* @__PURE__ */ l(n, {
38
- fallback: /* @__PURE__ */ l(E, {}),
38
+ fallback: /* @__PURE__ */ l(O, {}),
39
39
  children: /* @__PURE__ */ u(s, { children: [
40
40
  /* @__PURE__ */ l(o, {
41
41
  index: !0,
42
- element: O("theglobalfuel.dashboard", /* @__PURE__ */ l(t, {}))
42
+ element: A("theglobalfuel.dashboard", /* @__PURE__ */ l(t, {}))
43
43
  }),
44
44
  /* @__PURE__ */ l(o, {
45
45
  path: "assets",
46
- element: O("theglobalfuel.assets", /* @__PURE__ */ l(f, {}))
46
+ element: A("theglobalfuel.assets", /* @__PURE__ */ l(f, {}))
47
47
  }),
48
48
  /* @__PURE__ */ l(o, {
49
49
  path: "assets/:id",
50
- element: O("theglobalfuel.assets", /* @__PURE__ */ l(p, {}))
50
+ element: A("theglobalfuel.assets", /* @__PURE__ */ l(p, {}))
51
51
  }),
52
52
  /* @__PURE__ */ l(o, {
53
53
  path: "production",
54
- element: O("theglobalfuel.production", /* @__PURE__ */ l(m, {}))
54
+ element: A("theglobalfuel.production", /* @__PURE__ */ l(m, {}))
55
55
  }),
56
56
  /* @__PURE__ */ l(o, {
57
57
  path: "reserves",
58
- element: O("theglobalfuel.reserves", /* @__PURE__ */ l(h, {}))
58
+ element: A("theglobalfuel.reserves", /* @__PURE__ */ l(h, {}))
59
59
  }),
60
60
  /* @__PURE__ */ l(o, {
61
61
  path: "contracts",
62
- element: O("theglobalfuel.contracts", /* @__PURE__ */ l(g, {}))
62
+ element: A("theglobalfuel.contracts", /* @__PURE__ */ l(g, {}))
63
63
  }),
64
64
  /* @__PURE__ */ l(o, {
65
65
  path: "contracts/:id",
66
- element: O("theglobalfuel.contracts", /* @__PURE__ */ l(_, {}))
66
+ element: A("theglobalfuel.contracts", /* @__PURE__ */ l(_, {}))
67
67
  }),
68
68
  /* @__PURE__ */ l(o, {
69
69
  path: "shipments",
70
- element: O("theglobalfuel.shipments", /* @__PURE__ */ l(v, {}))
70
+ element: A("theglobalfuel.shipments", /* @__PURE__ */ l(v, {}))
71
71
  }),
72
72
  /* @__PURE__ */ l(o, {
73
73
  path: "inventory",
74
- element: O("theglobalfuel.inventory", /* @__PURE__ */ l(y, {}))
74
+ element: A("theglobalfuel.inventory", /* @__PURE__ */ l(y, {}))
75
75
  }),
76
76
  /* @__PURE__ */ l(o, {
77
77
  path: "emissions",
78
- element: O("theglobalfuel.emissions", /* @__PURE__ */ l(b, {}))
78
+ element: A("theglobalfuel.emissions", /* @__PURE__ */ l(b, {}))
79
79
  }),
80
80
  /* @__PURE__ */ l(o, {
81
81
  path: "compliance",
82
- element: O("theglobalfuel.compliance", /* @__PURE__ */ l(x, {}))
82
+ element: A("theglobalfuel.compliance", /* @__PURE__ */ l(x, {}))
83
83
  }),
84
84
  /* @__PURE__ */ l(o, {
85
85
  path: "provenance",
86
- element: O("theglobalfuel.provenance", /* @__PURE__ */ l(S, {}))
86
+ element: A("theglobalfuel.provenance", /* @__PURE__ */ l(S, {}))
87
+ }),
88
+ /* @__PURE__ */ l(o, {
89
+ path: "safety",
90
+ element: A("theglobalfuel.safety", /* @__PURE__ */ l(C, {}))
91
+ }),
92
+ /* @__PURE__ */ l(o, {
93
+ path: "safety/incidents",
94
+ element: A("theglobalfuel.safety", /* @__PURE__ */ l(w, {}))
87
95
  }),
88
96
  /* @__PURE__ */ l(o, {
89
97
  path: "analytics",
90
- element: O("theglobalfuel.analytics", /* @__PURE__ */ l(C, {}))
98
+ element: A("theglobalfuel.analytics", /* @__PURE__ */ l(T, {}))
91
99
  }),
92
100
  /* @__PURE__ */ l(o, {
93
101
  path: "reports",
94
- element: O("theglobalfuel.reports", /* @__PURE__ */ l(w, {}))
102
+ element: A("theglobalfuel.reports", /* @__PURE__ */ l(E, {}))
95
103
  }),
96
104
  /* @__PURE__ */ l(o, {
97
105
  path: "alerts",
98
- element: O("theglobalfuel.alerts", /* @__PURE__ */ l(T, {}))
106
+ element: A("theglobalfuel.alerts", /* @__PURE__ */ l(D, {}))
99
107
  }),
100
108
  /* @__PURE__ */ l(o, {
101
109
  path: "*",
102
110
  element: /* @__PURE__ */ l(a, {
103
- to: D || "/",
111
+ to: k || "/",
104
112
  replace: !0
105
113
  })
106
114
  })
@@ -109,6 +117,6 @@ var k = () => {
109
117
  });
110
118
  };
111
119
  //#endregion
112
- export { k as TheGlobalFuelRoutes };
120
+ export { j as TheGlobalFuelRoutes };
113
121
 
114
122
  //# sourceMappingURL=TheGlobalFuelRoutes.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TheGlobalFuelRoutes.js","names":[],"sources":["../../src/theglobalfuel/TheGlobalFuelRoutes.tsx"],"sourcesContent":["/**\n * TheGlobalFuel Routes\n * @module theglobalfuel\n *\n * Domain routes. The dashboard is eager-loaded (primary landing); all other\n * pages are lazy-loaded. Every route maps to a real `the*` backend capability.\n */\n\nimport { type FC, lazy, Suspense, type ReactNode } from 'react';\nimport { Routes, Route, Navigate, useLocation } from 'react-router-dom';\nimport { Spinner } from '@burdenoff/fe-libs/ui';\nimport { FeatureGate } from '@burdenoff/fe-libs/shared/feature-flags';\nimport { useTheGlobalFuel } from './context/TheGlobalFuelContext';\n\n// Eager — primary landing\nimport { DashboardPage } from './pages/dashboard/DashboardPage';\n\n// Registry — Assets, Production, Reserves\nconst AssetsPage = lazy(() =>\n import('./pages/assets/AssetsPage').then((m) => ({ default: m.AssetsPage }))\n);\nconst AssetDetailPage = lazy(() =>\n import('./pages/assets/AssetDetailPage').then((m) => ({ default: m.AssetDetailPage }))\n);\nconst ProductionPage = lazy(() =>\n import('./pages/production/ProductionPage').then((m) => ({ default: m.ProductionPage }))\n);\nconst ReservesPage = lazy(() =>\n import('./pages/reserves/ReservesPage').then((m) => ({ default: m.ReservesPage }))\n);\n\n// Commerce — Offtake Contracts, Shipments, Inventory\nconst ContractsPage = lazy(() =>\n import('./pages/contracts/ContractsPage').then((m) => ({ default: m.ContractsPage }))\n);\nconst ContractDetailPage = lazy(() =>\n import('./pages/contracts/ContractDetailPage').then((m) => ({ default: m.ContractDetailPage }))\n);\nconst ShipmentsPage = lazy(() =>\n import('./pages/shipments/ShipmentsPage').then((m) => ({ default: m.ShipmentsPage }))\n);\nconst InventoryPage = lazy(() =>\n import('./pages/inventory/InventoryPage').then((m) => ({ default: m.InventoryPage }))\n);\n\n// Sustainability — Emissions, Compliance\nconst EmissionsPage = lazy(() =>\n import('./pages/emissions/EmissionsPage').then((m) => ({ default: m.EmissionsPage }))\n);\nconst CompliancePage = lazy(() =>\n import('./pages/compliance/CompliancePage').then((m) => ({ default: m.CompliancePage }))\n);\nconst ProvenancePage = lazy(() =>\n import('./pages/provenance/ProvenancePage').then((m) => ({ default: m.ProvenancePage }))\n);\n\n// Cross-cutting operator surfaces — analytics, report extracts and exceptions.\nconst AnalyticsPage = lazy(() =>\n import('./pages/analytics/AnalyticsPage').then((m) => ({ default: m.AnalyticsPage }))\n);\nconst ReportsPage = lazy(() =>\n import('./pages/reports/ReportsPage').then((m) => ({ default: m.ReportsPage }))\n);\nconst AlertsPage = lazy(() =>\n import('./pages/alerts/AlertsPage').then((m) => ({ default: m.AlertsPage }))\n);\n\nconst PageLoader: FC = () => (\n <div className=\"flex min-h-[400px] items-center justify-center\">\n <Spinner size=\"lg\" />\n </div>\n);\n\nfunction FeatureDisabledFallback() {\n return (\n <div className=\"flex min-h-[400px] flex-col items-center justify-center gap-3 text-center p-6\">\n <p className=\"text-sm font-medium text-text-secondary\">This feature is not available.</p>\n <p className=\"text-xs text-text-tertiary\">Ask your workspace admin to enable it.</p>\n </div>\n );\n}\n\nfunction gated(flag: string, element: ReactNode): React.ReactElement {\n return (\n <FeatureGate flag={flag} defaultValue={true} fallback={<FeatureDisabledFallback />}>\n {element}\n </FeatureGate>\n );\n}\n\nexport const TheGlobalFuelRoutes: FC = () => {\n const { basePath, isStandalone } = useTheGlobalFuel();\n const location = useLocation();\n\n const normalizedBasePath = basePath === '/' ? '' : (basePath ?? '').replace(/\\/$/, '');\n\n // Guard: only render if the current path matches basePath (integrated mode).\n if (normalizedBasePath && !isStandalone) {\n const pathMatches =\n location.pathname === normalizedBasePath ||\n location.pathname.startsWith(normalizedBasePath + '/');\n if (!pathMatches) {\n return null;\n }\n }\n\n return (\n <div className=\"flex min-h-full flex-col\">\n <Suspense fallback={<PageLoader />}>\n <Routes>\n <Route index element={gated('theglobalfuel.dashboard', <DashboardPage />)} />\n\n <Route path=\"assets\" element={gated('theglobalfuel.assets', <AssetsPage />)} />\n <Route path=\"assets/:id\" element={gated('theglobalfuel.assets', <AssetDetailPage />)} />\n\n <Route\n path=\"production\"\n element={gated('theglobalfuel.production', <ProductionPage />)}\n />\n\n <Route path=\"reserves\" element={gated('theglobalfuel.reserves', <ReservesPage />)} />\n\n <Route path=\"contracts\" element={gated('theglobalfuel.contracts', <ContractsPage />)} />\n <Route\n path=\"contracts/:id\"\n element={gated('theglobalfuel.contracts', <ContractDetailPage />)}\n />\n\n <Route path=\"shipments\" element={gated('theglobalfuel.shipments', <ShipmentsPage />)} />\n\n <Route path=\"inventory\" element={gated('theglobalfuel.inventory', <InventoryPage />)} />\n\n <Route path=\"emissions\" element={gated('theglobalfuel.emissions', <EmissionsPage />)} />\n\n <Route\n path=\"compliance\"\n element={gated('theglobalfuel.compliance', <CompliancePage />)}\n />\n\n <Route\n path=\"provenance\"\n element={gated('theglobalfuel.provenance', <ProvenancePage />)}\n />\n\n <Route path=\"analytics\" element={gated('theglobalfuel.analytics', <AnalyticsPage />)} />\n\n <Route path=\"reports\" element={gated('theglobalfuel.reports', <ReportsPage />)} />\n\n <Route path=\"alerts\" element={gated('theglobalfuel.alerts', <AlertsPage />)} />\n\n {/* Unknown subpaths (e.g. /theglobalfuel/dashboard, stale bookmarks) canonicalize\n to the product root (the dashboard index). An absolute target avoids the\n self-referential `to=\"\"` loop that renders blank inside the nested Routes. */}\n <Route path=\"*\" element={<Navigate to={normalizedBasePath || '/'} replace />} />\n </Routes>\n </Suspense>\n </div>\n );\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"TheGlobalFuelRoutes.js","names":[],"sources":["../../src/theglobalfuel/TheGlobalFuelRoutes.tsx"],"sourcesContent":["/**\n * TheGlobalFuel Routes\n * @module theglobalfuel\n *\n * Domain routes. The dashboard is eager-loaded (primary landing); all other\n * pages are lazy-loaded. Every route maps to a real `the*` backend capability.\n */\n\nimport { type FC, lazy, Suspense, type ReactNode } from 'react';\nimport { Routes, Route, Navigate, useLocation } from 'react-router';\nimport { Spinner } from '@burdenoff/fe-libs/ui';\nimport { FeatureGate } from '@burdenoff/fe-libs/shared/feature-flags';\nimport { useTheGlobalFuel } from './context/TheGlobalFuelContext';\n\n// Eager — primary landing\nimport { DashboardPage } from './pages/dashboard/DashboardPage';\n\n// Registry — Assets, Production, Reserves\nconst AssetsPage = lazy(() =>\n import('./pages/assets/AssetsPage').then((m) => ({ default: m.AssetsPage }))\n);\nconst AssetDetailPage = lazy(() =>\n import('./pages/assets/AssetDetailPage').then((m) => ({ default: m.AssetDetailPage }))\n);\nconst ProductionPage = lazy(() =>\n import('./pages/production/ProductionPage').then((m) => ({ default: m.ProductionPage }))\n);\nconst ReservesPage = lazy(() =>\n import('./pages/reserves/ReservesPage').then((m) => ({ default: m.ReservesPage }))\n);\n\n// Commerce — Offtake Contracts, Shipments, Inventory\nconst ContractsPage = lazy(() =>\n import('./pages/contracts/ContractsPage').then((m) => ({ default: m.ContractsPage }))\n);\nconst ContractDetailPage = lazy(() =>\n import('./pages/contracts/ContractDetailPage').then((m) => ({ default: m.ContractDetailPage }))\n);\nconst ShipmentsPage = lazy(() =>\n import('./pages/shipments/ShipmentsPage').then((m) => ({ default: m.ShipmentsPage }))\n);\nconst InventoryPage = lazy(() =>\n import('./pages/inventory/InventoryPage').then((m) => ({ default: m.InventoryPage }))\n);\n\n// Sustainability — Emissions, Compliance\nconst EmissionsPage = lazy(() =>\n import('./pages/emissions/EmissionsPage').then((m) => ({ default: m.EmissionsPage }))\n);\nconst CompliancePage = lazy(() =>\n import('./pages/compliance/CompliancePage').then((m) => ({ default: m.CompliancePage }))\n);\nconst ProvenancePage = lazy(() =>\n import('./pages/provenance/ProvenancePage').then((m) => ({ default: m.ProvenancePage }))\n);\n\n// Safety — process-safety / EHS incident management (BOFF-4186).\nconst SafetyDashboardPage = lazy(() =>\n import('./pages/safety/SafetyDashboardPage').then((m) => ({ default: m.SafetyDashboardPage }))\n);\nconst IncidentsPage = lazy(() =>\n import('./pages/safety/IncidentsPage').then((m) => ({ default: m.IncidentsPage }))\n);\n\n// Cross-cutting operator surfaces — analytics, report extracts and exceptions.\nconst AnalyticsPage = lazy(() =>\n import('./pages/analytics/AnalyticsPage').then((m) => ({ default: m.AnalyticsPage }))\n);\nconst ReportsPage = lazy(() =>\n import('./pages/reports/ReportsPage').then((m) => ({ default: m.ReportsPage }))\n);\nconst AlertsPage = lazy(() =>\n import('./pages/alerts/AlertsPage').then((m) => ({ default: m.AlertsPage }))\n);\n\nconst PageLoader: FC = () => (\n <div className=\"flex min-h-[400px] items-center justify-center\">\n <Spinner size=\"lg\" />\n </div>\n);\n\nfunction FeatureDisabledFallback() {\n return (\n <div className=\"flex min-h-[400px] flex-col items-center justify-center gap-3 text-center p-6\">\n <p className=\"text-sm font-medium text-text-secondary\">This feature is not available.</p>\n <p className=\"text-xs text-text-tertiary\">Ask your workspace admin to enable it.</p>\n </div>\n );\n}\n\nfunction gated(flag: string, element: ReactNode): React.ReactElement {\n return (\n <FeatureGate flag={flag} defaultValue={true} fallback={<FeatureDisabledFallback />}>\n {element}\n </FeatureGate>\n );\n}\n\nexport const TheGlobalFuelRoutes: FC = () => {\n const { basePath, isStandalone } = useTheGlobalFuel();\n const location = useLocation();\n\n const normalizedBasePath = basePath === '/' ? '' : (basePath ?? '').replace(/\\/$/, '');\n\n // Guard: only render if the current path matches basePath (integrated mode).\n if (normalizedBasePath && !isStandalone) {\n const pathMatches =\n location.pathname === normalizedBasePath ||\n location.pathname.startsWith(normalizedBasePath + '/');\n if (!pathMatches) {\n return null;\n }\n }\n\n return (\n <div className=\"flex min-h-full flex-col\">\n <Suspense fallback={<PageLoader />}>\n <Routes>\n <Route index element={gated('theglobalfuel.dashboard', <DashboardPage />)} />\n\n <Route path=\"assets\" element={gated('theglobalfuel.assets', <AssetsPage />)} />\n <Route path=\"assets/:id\" element={gated('theglobalfuel.assets', <AssetDetailPage />)} />\n\n <Route\n path=\"production\"\n element={gated('theglobalfuel.production', <ProductionPage />)}\n />\n\n <Route path=\"reserves\" element={gated('theglobalfuel.reserves', <ReservesPage />)} />\n\n <Route path=\"contracts\" element={gated('theglobalfuel.contracts', <ContractsPage />)} />\n <Route\n path=\"contracts/:id\"\n element={gated('theglobalfuel.contracts', <ContractDetailPage />)}\n />\n\n <Route path=\"shipments\" element={gated('theglobalfuel.shipments', <ShipmentsPage />)} />\n\n <Route path=\"inventory\" element={gated('theglobalfuel.inventory', <InventoryPage />)} />\n\n <Route path=\"emissions\" element={gated('theglobalfuel.emissions', <EmissionsPage />)} />\n\n <Route\n path=\"compliance\"\n element={gated('theglobalfuel.compliance', <CompliancePage />)}\n />\n\n <Route\n path=\"provenance\"\n element={gated('theglobalfuel.provenance', <ProvenancePage />)}\n />\n\n <Route path=\"safety\" element={gated('theglobalfuel.safety', <SafetyDashboardPage />)} />\n <Route\n path=\"safety/incidents\"\n element={gated('theglobalfuel.safety', <IncidentsPage />)}\n />\n\n <Route path=\"analytics\" element={gated('theglobalfuel.analytics', <AnalyticsPage />)} />\n\n <Route path=\"reports\" element={gated('theglobalfuel.reports', <ReportsPage />)} />\n\n <Route path=\"alerts\" element={gated('theglobalfuel.alerts', <AlertsPage />)} />\n\n {/* Unknown subpaths (e.g. /theglobalfuel/dashboard, stale bookmarks) canonicalize\n to the product root (the dashboard index). An absolute target avoids the\n self-referential `to=\"\"` loop that renders blank inside the nested Routes. */}\n <Route path=\"*\" element={<Navigate to={normalizedBasePath || '/'} replace />} />\n </Routes>\n </Suspense>\n </div>\n );\n};\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"StatusBadge.d.ts","sourceRoot":"","sources":["../../../src/theglobalfuel/components/StatusBadge.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAIhC,UAAU,gBAAgB;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AA+ED,eAAO,MAAM,WAAW,EAAE,EAAE,CAAC,gBAAgB,CAsB5C,CAAC"}
1
+ {"version":3,"file":"StatusBadge.d.ts","sourceRoot":"","sources":["../../../src/theglobalfuel/components/StatusBadge.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAIhC,UAAU,gBAAgB;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAwGD,eAAO,MAAM,WAAW,EAAE,EAAE,CAAC,gBAAgB,CAsB5C,CAAC"}
@@ -56,7 +56,24 @@ var i = {
56
56
  PROBABLE: "info",
57
57
  POSSIBLE: "warning",
58
58
  CONTINGENT: "secondary",
59
- PROSPECTIVE: "outline"
59
+ PROSPECTIVE: "outline",
60
+ NEAR_MISS: "info",
61
+ INJURY: "destructive",
62
+ SPILL: "warning",
63
+ RELEASE: "warning",
64
+ EQUIPMENT_FAILURE: "secondary",
65
+ LOW: "secondary",
66
+ MEDIUM: "warning",
67
+ HIGH: "destructive",
68
+ CRITICAL: "destructive",
69
+ REPORTED: "secondary",
70
+ INVESTIGATING: "info",
71
+ ROOT_CAUSE_IDENTIFIED: "warning",
72
+ CORRECTIVE_ACTION: "warning",
73
+ CLOSED: "success",
74
+ OPEN: "warning",
75
+ IN_PROGRESS: "info",
76
+ VERIFIED: "success"
60
77
  }, s = ({ status: s, className: c }) => {
61
78
  let l = s.toUpperCase(), u = o[l] ?? "secondary", d = a.has(l);
62
79
  return /* @__PURE__ */ r("span", {
@@ -1 +1 @@
1
- {"version":3,"file":"StatusBadge.js","names":[],"sources":["../../../src/theglobalfuel/components/StatusBadge.tsx"],"sourcesContent":["/**\n * Status Badge Component\n * @module theglobalfuel/components\n *\n * A colored badge for TheGlobalFuel domain statuses (asset lifecycle, contract\n * lifecycle & side, shipment status, inventory status, compliance status,\n * emission scope, reserve category, pricing basis) with semantic color mapping.\n * Accepts the raw server enum value.\n */\n\nimport type { FC } from 'react';\nimport { cn } from '../utils/cn';\nimport { formatEnumLabel } from '../utils/formatters';\n\ninterface StatusBadgeProps {\n status: string;\n className?: string;\n}\n\ntype BadgeVariant = 'success' | 'warning' | 'destructive' | 'secondary' | 'info' | 'outline';\n\nconst variantStyles: Record<BadgeVariant, string> = {\n success: 'bg-status-success-bg-subtle text-status-success-text',\n warning: 'bg-status-warning-bg-subtle text-status-warning-text',\n destructive: 'bg-status-error-bg-subtle text-status-error-text',\n secondary: 'bg-bg-sunken text-text-secondary',\n info: 'bg-[var(--color-accent-soft)] text-text-primary',\n outline: 'border border-border-seam text-text-primary',\n};\n\n// Statuses that represent a \"live\" / in-progress condition get a subtle,\n// opacity-only glow pulse (reduced-motion safe via motion-safe:).\nconst liveStatuses = new Set(['PRODUCING', 'ACTIVE', 'IN_TRANSIT', 'LOADING']);\n\nconst statusVariantMap: Record<string, BadgeVariant> = {\n // Asset lifecycle\n EXPLORATION: 'secondary',\n APPRAISAL: 'info',\n DEVELOPMENT: 'warning',\n PRODUCING: 'success',\n SUSPENDED: 'warning',\n DECOMMISSIONING: 'warning',\n RETIRED: 'outline',\n\n // Offtake-contract lifecycle\n DRAFT: 'secondary',\n NEGOTIATION: 'info',\n SIGNED: 'info',\n ACTIVE: 'success',\n COMPLETED: 'success',\n TERMINATED: 'destructive',\n\n // Contract side\n BUY: 'info',\n SELL: 'secondary',\n\n // Pricing basis\n FIXED: 'outline',\n INDEX_LINKED: 'outline',\n FORMULA: 'outline',\n SPOT: 'secondary',\n\n // Shipment status\n SCHEDULED: 'secondary',\n LOADING: 'info',\n IN_TRANSIT: 'warning',\n DELIVERED: 'success',\n CANCELLED: 'destructive',\n\n // Inventory status\n AVAILABLE: 'success',\n RESERVED: 'info',\n CONSUMED: 'outline',\n WRITTEN_OFF: 'destructive',\n\n // Compliance status\n PENDING: 'secondary',\n SUBMITTED: 'info',\n APPROVED: 'success',\n REJECTED: 'destructive',\n EXPIRED: 'warning',\n REVOKED: 'destructive',\n\n // Emission scope\n SCOPE_1: 'destructive',\n SCOPE_2: 'warning',\n SCOPE_3: 'info',\n\n // Reserve category\n PROVED: 'success',\n PROBABLE: 'info',\n POSSIBLE: 'warning',\n CONTINGENT: 'secondary',\n PROSPECTIVE: 'outline',\n};\n\nexport const StatusBadge: FC<StatusBadgeProps> = ({ status, className }) => {\n const key = status.toUpperCase();\n const variant = statusVariantMap[key] ?? 'secondary';\n const isLive = liveStatuses.has(key);\n\n return (\n <span\n className={cn(\n 'inline-flex items-center gap-1.5 rounded-full px-2.5 py-0.5 text-xs font-medium',\n variantStyles[variant],\n className\n )}\n >\n {isLive && (\n <span\n aria-hidden=\"true\"\n className=\"size-1.5 rounded-full bg-current motion-safe:animate-vc-glow-pulse\"\n />\n )}\n {formatEnumLabel(status)}\n </span>\n );\n};\n"],"mappings":";;;;AAqBA,IAAM,IAA8C;CAClD,SAAS;CACT,SAAS;CACT,aAAa;CACb,WAAW;CACX,MAAM;CACN,SAAS;CACV,EAIK,IAAe,IAAI,IAAI;CAAC;CAAa;CAAU;CAAc;CAAU,CAAC,EAExE,IAAiD;CAErD,aAAa;CACb,WAAW;CACX,aAAa;CACb,WAAW;CACX,WAAW;CACX,iBAAiB;CACjB,SAAS;CAGT,OAAO;CACP,aAAa;CACb,QAAQ;CACR,QAAQ;CACR,WAAW;CACX,YAAY;CAGZ,KAAK;CACL,MAAM;CAGN,OAAO;CACP,cAAc;CACd,SAAS;CACT,MAAM;CAGN,WAAW;CACX,SAAS;CACT,YAAY;CACZ,WAAW;CACX,WAAW;CAGX,WAAW;CACX,UAAU;CACV,UAAU;CACV,aAAa;CAGb,SAAS;CACT,WAAW;CACX,UAAU;CACV,UAAU;CACV,SAAS;CACT,SAAS;CAGT,SAAS;CACT,SAAS;CACT,SAAS;CAGT,QAAQ;CACR,UAAU;CACV,UAAU;CACV,YAAY;CACZ,aAAa;CACd,EAEY,KAAqC,EAAE,WAAQ,mBAAgB;CAC1E,IAAM,IAAM,EAAO,aAAa,EAC1B,IAAU,EAAiB,MAAQ,aACnC,IAAS,EAAa,IAAI,EAAI;AAEpC,QACE,kBAAC,QAAD;EACE,WAAW,EACT,mFACA,EAAc,IACd,EACD;YALH,CAOG,KACC,kBAAC,QAAD;GACE,eAAY;GACZ,WAAU;GACV,CAAA,EAEH,EAAgB,EAAO,CACnB"}
1
+ {"version":3,"file":"StatusBadge.js","names":[],"sources":["../../../src/theglobalfuel/components/StatusBadge.tsx"],"sourcesContent":["/**\n * Status Badge Component\n * @module theglobalfuel/components\n *\n * A colored badge for TheGlobalFuel domain statuses (asset lifecycle, contract\n * lifecycle & side, shipment status, inventory status, compliance status,\n * emission scope, reserve category, pricing basis) with semantic color mapping.\n * Accepts the raw server enum value.\n */\n\nimport type { FC } from 'react';\nimport { cn } from '../utils/cn';\nimport { formatEnumLabel } from '../utils/formatters';\n\ninterface StatusBadgeProps {\n status: string;\n className?: string;\n}\n\ntype BadgeVariant = 'success' | 'warning' | 'destructive' | 'secondary' | 'info' | 'outline';\n\nconst variantStyles: Record<BadgeVariant, string> = {\n success: 'bg-status-success-bg-subtle text-status-success-text',\n warning: 'bg-status-warning-bg-subtle text-status-warning-text',\n destructive: 'bg-status-error-bg-subtle text-status-error-text',\n secondary: 'bg-bg-sunken text-text-secondary',\n info: 'bg-[var(--color-accent-soft)] text-text-primary',\n outline: 'border border-border-seam text-text-primary',\n};\n\n// Statuses that represent a \"live\" / in-progress condition get a subtle,\n// opacity-only glow pulse (reduced-motion safe via motion-safe:).\nconst liveStatuses = new Set(['PRODUCING', 'ACTIVE', 'IN_TRANSIT', 'LOADING']);\n\nconst statusVariantMap: Record<string, BadgeVariant> = {\n // Asset lifecycle\n EXPLORATION: 'secondary',\n APPRAISAL: 'info',\n DEVELOPMENT: 'warning',\n PRODUCING: 'success',\n SUSPENDED: 'warning',\n DECOMMISSIONING: 'warning',\n RETIRED: 'outline',\n\n // Offtake-contract lifecycle\n DRAFT: 'secondary',\n NEGOTIATION: 'info',\n SIGNED: 'info',\n ACTIVE: 'success',\n COMPLETED: 'success',\n TERMINATED: 'destructive',\n\n // Contract side\n BUY: 'info',\n SELL: 'secondary',\n\n // Pricing basis\n FIXED: 'outline',\n INDEX_LINKED: 'outline',\n FORMULA: 'outline',\n SPOT: 'secondary',\n\n // Shipment status\n SCHEDULED: 'secondary',\n LOADING: 'info',\n IN_TRANSIT: 'warning',\n DELIVERED: 'success',\n CANCELLED: 'destructive',\n\n // Inventory status\n AVAILABLE: 'success',\n RESERVED: 'info',\n CONSUMED: 'outline',\n WRITTEN_OFF: 'destructive',\n\n // Compliance status\n PENDING: 'secondary',\n SUBMITTED: 'info',\n APPROVED: 'success',\n REJECTED: 'destructive',\n EXPIRED: 'warning',\n REVOKED: 'destructive',\n\n // Emission scope\n SCOPE_1: 'destructive',\n SCOPE_2: 'warning',\n SCOPE_3: 'info',\n\n // Reserve category\n PROVED: 'success',\n PROBABLE: 'info',\n POSSIBLE: 'warning',\n CONTINGENT: 'secondary',\n PROSPECTIVE: 'outline',\n\n // Safety incident category\n NEAR_MISS: 'info',\n INJURY: 'destructive',\n SPILL: 'warning',\n RELEASE: 'warning',\n EQUIPMENT_FAILURE: 'secondary',\n\n // Safety incident severity\n LOW: 'secondary',\n MEDIUM: 'warning',\n HIGH: 'destructive',\n CRITICAL: 'destructive',\n\n // Safety incident investigation lifecycle\n REPORTED: 'secondary',\n INVESTIGATING: 'info',\n ROOT_CAUSE_IDENTIFIED: 'warning',\n CORRECTIVE_ACTION: 'warning',\n CLOSED: 'success',\n\n // Corrective/preventive action lifecycle\n OPEN: 'warning',\n IN_PROGRESS: 'info',\n VERIFIED: 'success',\n};\n\nexport const StatusBadge: FC<StatusBadgeProps> = ({ status, className }) => {\n const key = status.toUpperCase();\n const variant = statusVariantMap[key] ?? 'secondary';\n const isLive = liveStatuses.has(key);\n\n return (\n <span\n className={cn(\n 'inline-flex items-center gap-1.5 rounded-full px-2.5 py-0.5 text-xs font-medium',\n variantStyles[variant],\n className\n )}\n >\n {isLive && (\n <span\n aria-hidden=\"true\"\n className=\"size-1.5 rounded-full bg-current motion-safe:animate-vc-glow-pulse\"\n />\n )}\n {formatEnumLabel(status)}\n </span>\n );\n};\n"],"mappings":";;;;AAqBA,IAAM,IAA8C;CAClD,SAAS;CACT,SAAS;CACT,aAAa;CACb,WAAW;CACX,MAAM;CACN,SAAS;CACV,EAIK,IAAe,IAAI,IAAI;CAAC;CAAa;CAAU;CAAc;CAAU,CAAC,EAExE,IAAiD;CAErD,aAAa;CACb,WAAW;CACX,aAAa;CACb,WAAW;CACX,WAAW;CACX,iBAAiB;CACjB,SAAS;CAGT,OAAO;CACP,aAAa;CACb,QAAQ;CACR,QAAQ;CACR,WAAW;CACX,YAAY;CAGZ,KAAK;CACL,MAAM;CAGN,OAAO;CACP,cAAc;CACd,SAAS;CACT,MAAM;CAGN,WAAW;CACX,SAAS;CACT,YAAY;CACZ,WAAW;CACX,WAAW;CAGX,WAAW;CACX,UAAU;CACV,UAAU;CACV,aAAa;CAGb,SAAS;CACT,WAAW;CACX,UAAU;CACV,UAAU;CACV,SAAS;CACT,SAAS;CAGT,SAAS;CACT,SAAS;CACT,SAAS;CAGT,QAAQ;CACR,UAAU;CACV,UAAU;CACV,YAAY;CACZ,aAAa;CAGb,WAAW;CACX,QAAQ;CACR,OAAO;CACP,SAAS;CACT,mBAAmB;CAGnB,KAAK;CACL,QAAQ;CACR,MAAM;CACN,UAAU;CAGV,UAAU;CACV,eAAe;CACf,uBAAuB;CACvB,mBAAmB;CACnB,QAAQ;CAGR,MAAM;CACN,aAAa;CACb,UAAU;CACX,EAEY,KAAqC,EAAE,WAAQ,mBAAgB;CAC1E,IAAM,IAAM,EAAO,aAAa,EAC1B,IAAU,EAAiB,MAAQ,aACnC,IAAS,EAAa,IAAI,EAAI;AAEpC,QACE,kBAAC,QAAD;EACE,WAAW,EACT,mFACA,EAAc,IACd,EACD;YALH,CAOG,KACC,kBAAC,QAAD;GACE,eAAY;GACZ,WAAU;GACV,CAAA,EAEH,EAAgB,EAAO,CACnB"}
@@ -1,6 +1,6 @@
1
1
  import { joinPath as e } from "../utils/navigation.js";
2
2
  import { createContext as t, useCallback as n, useContext as r, useMemo as i } from "react";
3
- import { MemoryRouter as a, useNavigate as o } from "react-router-dom";
3
+ import { MemoryRouter as a, useNavigate as o } from "react-router";
4
4
  import { jsx as s } from "react/jsx-runtime";
5
5
  //#region src/theglobalfuel/context/TheGlobalFuelContext.tsx
6
6
  var c = t(null);
@@ -1 +1 @@
1
- {"version":3,"file":"TheGlobalFuelContext.js","names":[],"sources":["../../../src/theglobalfuel/context/TheGlobalFuelContext.tsx"],"sourcesContent":["/**\n * TheGlobalFuel Context Provider\n * @module theglobalfuel/context\n *\n * Splits standalone mode (wraps its own MemoryRouter + useNavigate) from\n * integrated mode (the host shell supplies `navigate`). Exposes gateway/auth\n * context + relative navigation helpers to every page.\n */\n\nimport type { FC, PropsWithChildren } from 'react';\nimport { createContext, useContext, useMemo, useCallback } from 'react';\nimport { MemoryRouter, useNavigate as useRouterNavigate } from 'react-router-dom';\nimport type { TheGlobalFuelRootProps } from '../types';\nimport { joinPath } from '../utils/navigation';\n\ninterface TheGlobalFuelContextValue extends Omit<\n TheGlobalFuelRootProps,\n 'registerNavItems' | 'registerFooterItems' | 'navigate'\n> {\n isStandalone: boolean;\n /** Shell's navigate function (only available in integrated mode). */\n navigate?: (path: string) => void;\n /** Navigate to a path relative to basePath. */\n navigateTo: (relativePath: string) => void;\n /** Get the full path for a relative path. */\n getPath: (relativePath: string) => string;\n}\n\nconst TheGlobalFuelContext = createContext<TheGlobalFuelContextValue | null>(null);\n\nexport function useTheGlobalFuel(): TheGlobalFuelContextValue {\n const context = useContext(TheGlobalFuelContext);\n if (!context) {\n throw new Error('useTheGlobalFuel must be used within an TheGlobalFuelProvider');\n }\n return context;\n}\n\ntype ProviderProps = Omit<TheGlobalFuelRootProps, 'registerNavItems' | 'registerFooterItems'> & {\n isStandalone: boolean;\n};\n\nconst StandaloneProviderInner: FC<PropsWithChildren<ProviderProps>> = ({\n children,\n basePath,\n currentUser,\n tenantId,\n workspaceId,\n apiGatewayUrl,\n authToken,\n}) => {\n const routerNavigate = useRouterNavigate();\n const effectiveBasePath = basePath || '/';\n\n const getPath = useCallback(\n (relativePath: string) => joinPath(effectiveBasePath, relativePath),\n [effectiveBasePath]\n );\n\n const navigateTo = useCallback(\n (relativePath: string) => {\n routerNavigate(joinPath(effectiveBasePath, relativePath));\n },\n [effectiveBasePath, routerNavigate]\n );\n\n const contextValue = useMemo<TheGlobalFuelContextValue>(\n () => ({\n basePath: effectiveBasePath,\n navigate: undefined,\n currentUser,\n tenantId,\n workspaceId,\n apiGatewayUrl,\n authToken,\n isStandalone: true,\n navigateTo,\n getPath,\n }),\n [\n effectiveBasePath,\n currentUser,\n tenantId,\n workspaceId,\n apiGatewayUrl,\n authToken,\n navigateTo,\n getPath,\n ]\n );\n\n return (\n <TheGlobalFuelContext.Provider value={contextValue}>{children}</TheGlobalFuelContext.Provider>\n );\n};\n\nconst IntegratedProviderInner: FC<\n PropsWithChildren<ProviderProps & { navigate: (path: string) => void }>\n> = ({\n children,\n basePath,\n navigate,\n currentUser,\n tenantId,\n workspaceId,\n apiGatewayUrl,\n authToken,\n}) => {\n const effectiveBasePath = basePath || '/';\n\n const getPath = useCallback(\n (relativePath: string) => joinPath(effectiveBasePath, relativePath),\n [effectiveBasePath]\n );\n\n const navigateTo = useCallback(\n (relativePath: string) => {\n navigate(joinPath(effectiveBasePath, relativePath));\n },\n [effectiveBasePath, navigate]\n );\n\n const contextValue = useMemo<TheGlobalFuelContextValue>(\n () => ({\n basePath: effectiveBasePath,\n navigate,\n currentUser,\n tenantId,\n workspaceId,\n apiGatewayUrl,\n authToken,\n isStandalone: false,\n navigateTo,\n getPath,\n }),\n [\n effectiveBasePath,\n navigate,\n currentUser,\n tenantId,\n workspaceId,\n apiGatewayUrl,\n authToken,\n navigateTo,\n getPath,\n ]\n );\n\n return (\n <TheGlobalFuelContext.Provider value={contextValue}>{children}</TheGlobalFuelContext.Provider>\n );\n};\n\nexport const TheGlobalFuelProvider: FC<PropsWithChildren<TheGlobalFuelRootProps>> = (props) => {\n const { children, navigate } = props;\n const isStandalone = !navigate;\n\n if (isStandalone) {\n return (\n <MemoryRouter>\n <StandaloneProviderInner {...props} isStandalone={true}>\n {children}\n </StandaloneProviderInner>\n </MemoryRouter>\n );\n }\n\n return (\n <IntegratedProviderInner {...props} navigate={navigate} isStandalone={false}>\n {children}\n </IntegratedProviderInner>\n );\n};\n"],"mappings":";;;;;AA4BA,IAAM,IAAuB,EAAgD,KAAK;AAElF,SAAgB,IAA8C;CAC5D,IAAM,IAAU,EAAW,EAAqB;AAChD,KAAI,CAAC,EACH,OAAU,MAAM,gEAAgE;AAElF,QAAO;;AAOT,IAAM,KAAiE,EACrE,aACA,aACA,gBACA,aACA,gBACA,kBACA,mBACI;CACJ,IAAM,IAAiB,GAAmB,EACpC,IAAoB,KAAY,KAEhC,IAAU,GACb,MAAyB,EAAS,GAAmB,EAAa,EACnE,CAAC,EAAkB,CACpB,EAEK,IAAa,GAChB,MAAyB;AACxB,IAAe,EAAS,GAAmB,EAAa,CAAC;IAE3D,CAAC,GAAmB,EAAe,CACpC,EAEK,IAAe,SACZ;EACL,UAAU;EACV,UAAU,KAAA;EACV;EACA;EACA;EACA;EACA;EACA,cAAc;EACd;EACA;EACD,GACD;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACD,CACF;AAED,QACE,kBAAC,EAAqB,UAAtB;EAA+B,OAAO;EAAe;EAAyC,CAAA;GAI5F,KAED,EACH,aACA,aACA,aACA,gBACA,aACA,gBACA,kBACA,mBACI;CACJ,IAAM,IAAoB,KAAY,KAEhC,IAAU,GACb,MAAyB,EAAS,GAAmB,EAAa,EACnE,CAAC,EAAkB,CACpB,EAEK,IAAa,GAChB,MAAyB;AACxB,IAAS,EAAS,GAAmB,EAAa,CAAC;IAErD,CAAC,GAAmB,EAAS,CAC9B,EAEK,IAAe,SACZ;EACL,UAAU;EACV;EACA;EACA;EACA;EACA;EACA;EACA,cAAc;EACd;EACA;EACD,GACD;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACD,CACF;AAED,QACE,kBAAC,EAAqB,UAAtB;EAA+B,OAAO;EAAe;EAAyC,CAAA;GAIrF,KAAwE,MAAU;CAC7F,IAAM,EAAE,aAAU,gBAAa;AAa/B,QAZsB,IAapB,kBAAC,GAAD;EAAyB,GAAI;EAAiB;EAAU,cAAc;EACnE;EACuB,CAAA,GAXxB,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD;EAAyB,GAAI;EAAO,cAAc;EAC/C;EACuB,CAAA,EACb,CAAA"}
1
+ {"version":3,"file":"TheGlobalFuelContext.js","names":[],"sources":["../../../src/theglobalfuel/context/TheGlobalFuelContext.tsx"],"sourcesContent":["/**\n * TheGlobalFuel Context Provider\n * @module theglobalfuel/context\n *\n * Splits standalone mode (wraps its own MemoryRouter + useNavigate) from\n * integrated mode (the host shell supplies `navigate`). Exposes gateway/auth\n * context + relative navigation helpers to every page.\n */\n\nimport type { FC, PropsWithChildren } from 'react';\nimport { createContext, useContext, useMemo, useCallback } from 'react';\nimport { MemoryRouter, useNavigate as useRouterNavigate } from 'react-router';\nimport type { TheGlobalFuelRootProps } from '../types';\nimport { joinPath } from '../utils/navigation';\n\ninterface TheGlobalFuelContextValue extends Omit<\n TheGlobalFuelRootProps,\n 'registerNavItems' | 'registerFooterItems' | 'navigate'\n> {\n isStandalone: boolean;\n /** Shell's navigate function (only available in integrated mode). */\n navigate?: (path: string) => void;\n /** Navigate to a path relative to basePath. */\n navigateTo: (relativePath: string) => void;\n /** Get the full path for a relative path. */\n getPath: (relativePath: string) => string;\n}\n\nconst TheGlobalFuelContext = createContext<TheGlobalFuelContextValue | null>(null);\n\nexport function useTheGlobalFuel(): TheGlobalFuelContextValue {\n const context = useContext(TheGlobalFuelContext);\n if (!context) {\n throw new Error('useTheGlobalFuel must be used within an TheGlobalFuelProvider');\n }\n return context;\n}\n\ntype ProviderProps = Omit<TheGlobalFuelRootProps, 'registerNavItems' | 'registerFooterItems'> & {\n isStandalone: boolean;\n};\n\nconst StandaloneProviderInner: FC<PropsWithChildren<ProviderProps>> = ({\n children,\n basePath,\n currentUser,\n tenantId,\n workspaceId,\n apiGatewayUrl,\n authToken,\n}) => {\n const routerNavigate = useRouterNavigate();\n const effectiveBasePath = basePath || '/';\n\n const getPath = useCallback(\n (relativePath: string) => joinPath(effectiveBasePath, relativePath),\n [effectiveBasePath]\n );\n\n const navigateTo = useCallback(\n (relativePath: string) => {\n routerNavigate(joinPath(effectiveBasePath, relativePath));\n },\n [effectiveBasePath, routerNavigate]\n );\n\n const contextValue = useMemo<TheGlobalFuelContextValue>(\n () => ({\n basePath: effectiveBasePath,\n navigate: undefined,\n currentUser,\n tenantId,\n workspaceId,\n apiGatewayUrl,\n authToken,\n isStandalone: true,\n navigateTo,\n getPath,\n }),\n [\n effectiveBasePath,\n currentUser,\n tenantId,\n workspaceId,\n apiGatewayUrl,\n authToken,\n navigateTo,\n getPath,\n ]\n );\n\n return (\n <TheGlobalFuelContext.Provider value={contextValue}>{children}</TheGlobalFuelContext.Provider>\n );\n};\n\nconst IntegratedProviderInner: FC<\n PropsWithChildren<ProviderProps & { navigate: (path: string) => void }>\n> = ({\n children,\n basePath,\n navigate,\n currentUser,\n tenantId,\n workspaceId,\n apiGatewayUrl,\n authToken,\n}) => {\n const effectiveBasePath = basePath || '/';\n\n const getPath = useCallback(\n (relativePath: string) => joinPath(effectiveBasePath, relativePath),\n [effectiveBasePath]\n );\n\n const navigateTo = useCallback(\n (relativePath: string) => {\n navigate(joinPath(effectiveBasePath, relativePath));\n },\n [effectiveBasePath, navigate]\n );\n\n const contextValue = useMemo<TheGlobalFuelContextValue>(\n () => ({\n basePath: effectiveBasePath,\n navigate,\n currentUser,\n tenantId,\n workspaceId,\n apiGatewayUrl,\n authToken,\n isStandalone: false,\n navigateTo,\n getPath,\n }),\n [\n effectiveBasePath,\n navigate,\n currentUser,\n tenantId,\n workspaceId,\n apiGatewayUrl,\n authToken,\n navigateTo,\n getPath,\n ]\n );\n\n return (\n <TheGlobalFuelContext.Provider value={contextValue}>{children}</TheGlobalFuelContext.Provider>\n );\n};\n\nexport const TheGlobalFuelProvider: FC<PropsWithChildren<TheGlobalFuelRootProps>> = (props) => {\n const { children, navigate } = props;\n const isStandalone = !navigate;\n\n if (isStandalone) {\n return (\n <MemoryRouter>\n <StandaloneProviderInner {...props} isStandalone={true}>\n {children}\n </StandaloneProviderInner>\n </MemoryRouter>\n );\n }\n\n return (\n <IntegratedProviderInner {...props} navigate={navigate} isStandalone={false}>\n {children}\n </IntegratedProviderInner>\n );\n};\n"],"mappings":";;;;;AA4BA,IAAM,IAAuB,EAAgD,KAAK;AAElF,SAAgB,IAA8C;CAC5D,IAAM,IAAU,EAAW,EAAqB;AAChD,KAAI,CAAC,EACH,OAAU,MAAM,gEAAgE;AAElF,QAAO;;AAOT,IAAM,KAAiE,EACrE,aACA,aACA,gBACA,aACA,gBACA,kBACA,mBACI;CACJ,IAAM,IAAiB,GAAmB,EACpC,IAAoB,KAAY,KAEhC,IAAU,GACb,MAAyB,EAAS,GAAmB,EAAa,EACnE,CAAC,EAAkB,CACpB,EAEK,IAAa,GAChB,MAAyB;AACxB,IAAe,EAAS,GAAmB,EAAa,CAAC;IAE3D,CAAC,GAAmB,EAAe,CACpC,EAEK,IAAe,SACZ;EACL,UAAU;EACV,UAAU,KAAA;EACV;EACA;EACA;EACA;EACA;EACA,cAAc;EACd;EACA;EACD,GACD;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACD,CACF;AAED,QACE,kBAAC,EAAqB,UAAtB;EAA+B,OAAO;EAAe;EAAyC,CAAA;GAI5F,KAED,EACH,aACA,aACA,aACA,gBACA,aACA,gBACA,kBACA,mBACI;CACJ,IAAM,IAAoB,KAAY,KAEhC,IAAU,GACb,MAAyB,EAAS,GAAmB,EAAa,EACnE,CAAC,EAAkB,CACpB,EAEK,IAAa,GAChB,MAAyB;AACxB,IAAS,EAAS,GAAmB,EAAa,CAAC;IAErD,CAAC,GAAmB,EAAS,CAC9B,EAEK,IAAe,SACZ;EACL,UAAU;EACV;EACA;EACA;EACA;EACA;EACA;EACA,cAAc;EACd;EACA;EACD,GACD;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACD,CACF;AAED,QACE,kBAAC,EAAqB,UAAtB;EAA+B,OAAO;EAAe;EAAyC,CAAA;GAIrF,KAAwE,MAAU;CAC7F,IAAM,EAAE,aAAU,gBAAa;AAa/B,QAZsB,IAapB,kBAAC,GAAD;EAAyB,GAAI;EAAiB;EAAU,cAAc;EACnE;EACuB,CAAA,GAXxB,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD;EAAyB,GAAI;EAAO,cAAc;EAC/C;EACuB,CAAA,EACb,CAAA"}
@@ -1,4 +1,4 @@
1
- import { TheConnection, TheAsset, TheAssetKind, TheAssetStatus, TheCommodityType, TheProductionRecord, TheReserveEstimate, TheReserveCategory, TheOfftakeContract, TheContractSide, TheContractStatus, TheShipment, TheShipmentStatus, TheInventoryLot, TheInventoryStatus, TheEmissionRecord, TheEmissionScope, TheComplianceCert, TheComplianceCategory, TheComplianceStatus, TheCreateAssetInput, TheUpdateAssetInput, TheRecordProductionInput, TheCreateReserveEstimateInput, TheCreateOfftakeContractInput, TheUpdateOfftakeContractInput, TheCreateShipmentInput, TheUpdateShipmentInput, TheCreateInventoryLotInput, TheRecordEmissionInput, TheCreateComplianceCertInput, PaginationInput } from '../types';
1
+ import { TheConnection, TheAsset, TheAssetKind, TheAssetStatus, TheCommodityType, TheProductionRecord, TheReserveEstimate, TheReserveCategory, TheOfftakeContract, TheContractSide, TheContractStatus, TheShipment, TheShipmentStatus, TheInventoryLot, TheInventoryStatus, TheEmissionRecord, TheEmissionScope, TheComplianceCert, TheComplianceCategory, TheComplianceStatus, TheCreateAssetInput, TheUpdateAssetInput, TheRecordProductionInput, TheCreateReserveEstimateInput, TheCreateOfftakeContractInput, TheUpdateOfftakeContractInput, TheCreateShipmentInput, TheUpdateShipmentInput, TheCreateInventoryLotInput, TheRecordEmissionInput, TheCreateComplianceCertInput, TheSafetyIncident, TheSafetyIncidentCategory, TheSafetyIncidentSeverity, TheSafetyIncidentStatus, TheCorrectiveAction, TheCorrectiveActionStatus, TheSafetyDashboard, TheReportSafetyIncidentInput, TheCreateCorrectiveActionInput, PaginationInput } from '../types';
2
2
 
3
3
  export interface AssetFilters {
4
4
  commodity?: TheCommodityType;
@@ -85,4 +85,29 @@ export declare const useTheTransitionComplianceCert: () => import('@tanstack/rea
85
85
  id: string;
86
86
  status: TheComplianceStatus;
87
87
  }, unknown>;
88
+ export interface SafetyIncidentFilters {
89
+ assetId?: string;
90
+ category?: TheSafetyIncidentCategory;
91
+ severity?: TheSafetyIncidentSeverity;
92
+ status?: TheSafetyIncidentStatus;
93
+ pagination?: PaginationInput;
94
+ }
95
+ export declare const useTheSafetyIncidents: (filters?: SafetyIncidentFilters) => import('@tanstack/react-query').UseQueryResult<NoInfer<TheConnection<TheSafetyIncident>>, Error>;
96
+ export declare const useTheSafetyIncident: (id: string | undefined) => import('@tanstack/react-query').UseQueryResult<NoInfer<TheSafetyIncident | null>, Error>;
97
+ export declare const useTheReportSafetyIncident: () => import('@tanstack/react-query').UseMutationResult<TheSafetyIncident, Error, TheReportSafetyIncidentInput, unknown>;
98
+ export declare const useTheTransitionSafetyIncident: () => import('@tanstack/react-query').UseMutationResult<TheSafetyIncident, Error, {
99
+ id: string;
100
+ status: TheSafetyIncidentStatus;
101
+ }, unknown>;
102
+ export declare const useTheUpdateIncidentInvestigation: () => import('@tanstack/react-query').UseMutationResult<TheSafetyIncident, Error, {
103
+ id: string;
104
+ investigationNotes: string;
105
+ }, unknown>;
106
+ export declare const useTheCorrectiveActions: (incidentId?: string, status?: TheCorrectiveActionStatus, pagination?: PaginationInput) => import('@tanstack/react-query').UseQueryResult<NoInfer<TheConnection<TheCorrectiveAction>>, Error>;
107
+ export declare const useTheCreateCorrectiveAction: () => import('@tanstack/react-query').UseMutationResult<TheCorrectiveAction, Error, TheCreateCorrectiveActionInput, unknown>;
108
+ export declare const useTheTransitionCorrectiveAction: () => import('@tanstack/react-query').UseMutationResult<TheCorrectiveAction, Error, {
109
+ id: string;
110
+ status: TheCorrectiveActionStatus;
111
+ }, unknown>;
112
+ export declare const useTheSafetyDashboard: () => import('@tanstack/react-query').UseQueryResult<NoInfer<TheSafetyDashboard>, Error>;
88
113
  //# sourceMappingURL=useTheGlobalFuelApi.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useTheGlobalFuelApi.d.ts","sourceRoot":"","sources":["../../../src/theglobalfuel/hooks/useTheGlobalFuelApi.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useTheGlobalFuelApi.d.ts","sourceRoot":"","sources":["../../../src/theglobalfuel/hooks/useTheGlobalFuelApi.ts"],"names":[],"mappings":"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"}