@burdenoff/microfe-ecoimpacthub 2026.1030.3 → 2026.1030.4

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.
@@ -1 +1 @@
1
- {"version":3,"file":"MobileShell.d.ts","sourceRoot":"","sources":["../../../../src/ecoimpacthub/pages/mobile/MobileShell.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAwD3C,UAAU,gBAAgB;IACxB,QAAQ,EAAE,SAAS,CAAC;IACpB,mEAAmE;IACnE,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,eAAO,MAAM,WAAW,EAAE,EAAE,CAAC,gBAAgB,CA2D5C,CAAC"}
1
+ {"version":3,"file":"MobileShell.d.ts","sourceRoot":"","sources":["../../../../src/ecoimpacthub/pages/mobile/MobileShell.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAqB,KAAK,EAAE,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAgEnE,UAAU,gBAAgB;IACxB,QAAQ,EAAE,SAAS,CAAC;IACpB,mEAAmE;IACnE,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,eAAO,MAAM,WAAW,EAAE,EAAE,CAAC,gBAAgB,CA2E5C,CAAC"}
@@ -3,17 +3,18 @@ import "../../context/index.js";
3
3
  import { cn as t } from "../../utils/cn.js";
4
4
  import { useTr as n } from "../../hooks/useTr.js";
5
5
  import "../../hooks/index.js";
6
- import { Binoculars as r, Factory as i, House as a, Map as o, PawPrint as s } from "lucide-react";
7
- import { useLocation as c } from "react-router";
8
- import { jsx as l, jsxs as u } from "react/jsx-runtime";
6
+ import { useEffect as r, useRef as i } from "react";
7
+ import { Binoculars as a, Factory as o, House as s, Map as c, PawPrint as l } from "lucide-react";
8
+ import { useLocation as u } from "react-router";
9
+ import { jsx as d, jsxs as f } from "react/jsx-runtime";
9
10
  //#region src/ecoimpacthub/pages/mobile/MobileShell.tsx
10
- var d = [
11
+ var p = "--mobile-tabbar-height", m = [
11
12
  {
12
13
  id: "home",
13
14
  path: "mobile",
14
15
  labelKey: "ecoField.tabs.home",
15
16
  label: "Home",
16
- icon: /* @__PURE__ */ l(a, {
17
+ icon: /* @__PURE__ */ d(s, {
17
18
  className: "h-5 w-5",
18
19
  "aria-hidden": "true"
19
20
  })
@@ -23,7 +24,7 @@ var d = [
23
24
  path: "sites",
24
25
  labelKey: "ecoField.tabs.sites",
25
26
  label: "Sites",
26
- icon: /* @__PURE__ */ l(o, {
27
+ icon: /* @__PURE__ */ d(c, {
27
28
  className: "h-5 w-5",
28
29
  "aria-hidden": "true"
29
30
  })
@@ -33,7 +34,7 @@ var d = [
33
34
  path: "mobile/record-observation",
34
35
  labelKey: "ecoField.tabs.record",
35
36
  label: "Record",
36
- icon: /* @__PURE__ */ l(r, {
37
+ icon: /* @__PURE__ */ d(a, {
37
38
  className: "h-5 w-5",
38
39
  "aria-hidden": "true"
39
40
  }),
@@ -44,7 +45,7 @@ var d = [
44
45
  path: "species",
45
46
  labelKey: "ecoField.tabs.species",
46
47
  label: "Species",
47
- icon: /* @__PURE__ */ l(s, {
48
+ icon: /* @__PURE__ */ d(l, {
48
49
  className: "h-5 w-5",
49
50
  "aria-hidden": "true"
50
51
  })
@@ -54,47 +55,57 @@ var d = [
54
55
  path: "carbon",
55
56
  labelKey: "ecoField.tabs.carbon",
56
57
  label: "Carbon",
57
- icon: /* @__PURE__ */ l(i, {
58
+ icon: /* @__PURE__ */ d(o, {
58
59
  className: "h-5 w-5",
59
60
  "aria-hidden": "true"
60
61
  })
61
62
  }
62
- ], f = ({ children: r, pendingCount: i = 0 }) => {
63
- let a = n(), { getPath: o, navigateTo: s } = e(), { pathname: f } = c();
64
- return /* @__PURE__ */ u("div", {
63
+ ], h = ({ children: a, pendingCount: o = 0 }) => {
64
+ let s = n(), { getPath: c, navigateTo: l } = e(), { pathname: h } = u(), g = i(null);
65
+ return r(() => {
66
+ let e = g.current;
67
+ if (!e) return;
68
+ let t = document.documentElement, n = () => t.style.setProperty(p, `${e.offsetHeight}px`);
69
+ n();
70
+ let r = typeof ResizeObserver > "u" ? null : new ResizeObserver(n);
71
+ return r?.observe(e), () => {
72
+ r?.disconnect(), t.style.removeProperty(p);
73
+ };
74
+ }, []), /* @__PURE__ */ f("div", {
65
75
  className: "flex min-h-full flex-col bg-bg-canvas",
66
- children: [/* @__PURE__ */ l("div", {
76
+ children: [/* @__PURE__ */ d("div", {
67
77
  className: "mx-auto w-full max-w-xl flex-1 px-4 pb-28 pt-4",
68
- children: r
69
- }), /* @__PURE__ */ l("nav", {
70
- "aria-label": a("ecoField.tabs.label", "Field app"),
78
+ children: a
79
+ }), /* @__PURE__ */ d("nav", {
80
+ ref: g,
81
+ "aria-label": s("ecoField.tabs.label", "Field app"),
71
82
  className: "fixed inset-x-0 bottom-0 z-30 border-t border-border-seam bg-bg-surface/95 backdrop-blur",
72
83
  style: { paddingBottom: "env(safe-area-inset-bottom, 0px)" },
73
- children: /* @__PURE__ */ l("ul", {
84
+ children: /* @__PURE__ */ d("ul", {
74
85
  className: "mx-auto flex max-w-xl items-stretch justify-between px-2",
75
- children: d.map((e) => {
76
- let n = o(e.path), r = f === n || f === `${n}/`;
77
- return /* @__PURE__ */ l("li", {
86
+ children: m.map((e) => {
87
+ let n = c(e.path), r = h === n || h === `${n}/`;
88
+ return /* @__PURE__ */ d("li", {
78
89
  className: "flex-1",
79
- children: /* @__PURE__ */ u("button", {
90
+ children: /* @__PURE__ */ f("button", {
80
91
  type: "button",
81
- onClick: () => s(e.path),
92
+ onClick: () => l(e.path),
82
93
  "aria-current": r ? "page" : void 0,
83
94
  "data-testid": `field-tab-${e.id}`,
84
95
  className: t("relative flex w-full flex-col items-center gap-0.5 py-2 text-[11px] font-medium transition-colors", r ? "text-action-primary-bg" : "text-text-tertiary hover:text-text-primary"),
85
96
  children: [
86
- r && /* @__PURE__ */ l("span", {
97
+ r && /* @__PURE__ */ d("span", {
87
98
  "aria-hidden": "true",
88
99
  className: "absolute inset-x-4 top-0 h-0.5 rounded-full bg-action-primary-bg"
89
100
  }),
90
- /* @__PURE__ */ u("span", {
101
+ /* @__PURE__ */ f("span", {
91
102
  className: t("relative flex items-center justify-center", e.primary && "h-9 w-9 rounded-full bg-action-primary-bg text-action-primary-text shadow"),
92
- children: [e.icon, e.primary && i > 0 && /* @__PURE__ */ l("span", {
103
+ children: [e.icon, e.primary && o > 0 && /* @__PURE__ */ d("span", {
93
104
  className: "absolute -right-1.5 -top-1.5 min-w-[1.1rem] rounded-full bg-status-warning-text px-1 text-center text-[10px] font-semibold leading-[1.1rem] text-bg-surface",
94
- children: i
105
+ children: o
95
106
  })]
96
107
  }),
97
- a(e.labelKey, e.label)
108
+ s(e.labelKey, e.label)
98
109
  ]
99
110
  })
100
111
  }, e.id);
@@ -104,6 +115,6 @@ var d = [
104
115
  });
105
116
  };
106
117
  //#endregion
107
- export { f as MobileShell };
118
+ export { h as MobileShell };
108
119
 
109
120
  //# sourceMappingURL=MobileShell.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MobileShell.js","names":[],"sources":["../../../../src/ecoimpacthub/pages/mobile/MobileShell.tsx"],"sourcesContent":["/**\n * MobileShell — the field app's frame: content plus a bottom tab bar.\n * @module ecoimpacthub/pages/mobile\n *\n * Mock 15's bottom navigation (Home · Sites · Species · Carbon) with the field\n * capture action in the middle, where a thumb reaches it. The bar honours the\n * device safe area so it clears the iOS home indicator inside the Capacitor\n * WebView. Every tab is a real route of this MFE.\n */\n\nimport type { FC, ReactNode } from 'react';\nimport { useLocation } from 'react-router';\nimport { Binoculars, Factory, House, Map as MapIcon, PawPrint } from 'lucide-react';\nimport { useEcoImpactHub } from '../../context';\nimport { useTr } from '../../hooks';\nimport { cn } from '../../utils/cn';\n\ninterface TabDef {\n id: string;\n /** Path relative to the MFE base path. */\n path: string;\n labelKey: string;\n label: string;\n icon: ReactNode;\n primary?: boolean;\n}\n\nconst TABS: TabDef[] = [\n {\n id: 'home',\n path: 'mobile',\n labelKey: 'ecoField.tabs.home',\n label: 'Home',\n icon: <House className=\"h-5 w-5\" aria-hidden=\"true\" />,\n },\n {\n id: 'sites',\n path: 'sites',\n labelKey: 'ecoField.tabs.sites',\n label: 'Sites',\n icon: <MapIcon className=\"h-5 w-5\" aria-hidden=\"true\" />,\n },\n {\n id: 'record',\n path: 'mobile/record-observation',\n labelKey: 'ecoField.tabs.record',\n label: 'Record',\n icon: <Binoculars className=\"h-5 w-5\" aria-hidden=\"true\" />,\n primary: true,\n },\n {\n id: 'species',\n path: 'species',\n labelKey: 'ecoField.tabs.species',\n label: 'Species',\n icon: <PawPrint className=\"h-5 w-5\" aria-hidden=\"true\" />,\n },\n {\n id: 'carbon',\n path: 'carbon',\n labelKey: 'ecoField.tabs.carbon',\n label: 'Carbon',\n icon: <Factory className=\"h-5 w-5\" aria-hidden=\"true\" />,\n },\n];\n\ninterface MobileShellProps {\n children: ReactNode;\n /** Badge on the Record tab: observations still waiting to sync. */\n pendingCount?: number;\n}\n\nexport const MobileShell: FC<MobileShellProps> = ({ children, pendingCount = 0 }) => {\n const tr = useTr();\n const { getPath, navigateTo } = useEcoImpactHub();\n const { pathname } = useLocation();\n\n return (\n <div className=\"flex min-h-full flex-col bg-bg-canvas\">\n <div className=\"mx-auto w-full max-w-xl flex-1 px-4 pb-28 pt-4\">{children}</div>\n\n <nav\n aria-label={tr('ecoField.tabs.label', 'Field app')}\n className=\"fixed inset-x-0 bottom-0 z-30 border-t border-border-seam bg-bg-surface/95 backdrop-blur\"\n style={{ paddingBottom: 'env(safe-area-inset-bottom, 0px)' }}\n >\n <ul className=\"mx-auto flex max-w-xl items-stretch justify-between px-2\">\n {TABS.map((tab) => {\n const href = getPath(tab.path);\n const active = pathname === href || pathname === `${href}/`;\n return (\n <li key={tab.id} className=\"flex-1\">\n <button\n type=\"button\"\n onClick={() => navigateTo(tab.path)}\n aria-current={active ? 'page' : undefined}\n data-testid={`field-tab-${tab.id}`}\n className={cn(\n 'relative flex w-full flex-col items-center gap-0.5 py-2 text-[11px] font-medium transition-colors',\n active ? 'text-action-primary-bg' : 'text-text-tertiary hover:text-text-primary'\n )}\n >\n {active && (\n <span\n aria-hidden=\"true\"\n className=\"absolute inset-x-4 top-0 h-0.5 rounded-full bg-action-primary-bg\"\n />\n )}\n <span\n className={cn(\n 'relative flex items-center justify-center',\n tab.primary &&\n 'h-9 w-9 rounded-full bg-action-primary-bg text-action-primary-text shadow'\n )}\n >\n {tab.icon}\n {tab.primary && pendingCount > 0 && (\n <span className=\"absolute -right-1.5 -top-1.5 min-w-[1.1rem] rounded-full bg-status-warning-text px-1 text-center text-[10px] font-semibold leading-[1.1rem] text-bg-surface\">\n {pendingCount}\n </span>\n )}\n </span>\n {tr(tab.labelKey, tab.label)}\n </button>\n </li>\n );\n })}\n </ul>\n </nav>\n </div>\n );\n};\n"],"mappings":";;;;;;;;;AA2BA,IAAM,IAAiB;CACrB;EACE,IAAI;EACJ,MAAM;EACN,UAAU;EACV,OAAO;EACP,MAAM,kBAAC,GAAD;GAAO,WAAU;GAAU,eAAY;EAAQ,CAAA;CACvD;CACA;EACE,IAAI;EACJ,MAAM;EACN,UAAU;EACV,OAAO;EACP,MAAM,kBAAC,GAAD;GAAS,WAAU;GAAU,eAAY;EAAQ,CAAA;CACzD;CACA;EACE,IAAI;EACJ,MAAM;EACN,UAAU;EACV,OAAO;EACP,MAAM,kBAAC,GAAD;GAAY,WAAU;GAAU,eAAY;EAAQ,CAAA;EAC1D,SAAS;CACX;CACA;EACE,IAAI;EACJ,MAAM;EACN,UAAU;EACV,OAAO;EACP,MAAM,kBAAC,GAAD;GAAU,WAAU;GAAU,eAAY;EAAQ,CAAA;CAC1D;CACA;EACE,IAAI;EACJ,MAAM;EACN,UAAU;EACV,OAAO;EACP,MAAM,kBAAC,GAAD;GAAS,WAAU;GAAU,eAAY;EAAQ,CAAA;CACzD;AACF,GAQa,KAAqC,EAAE,aAAU,kBAAe,QAAQ;CACnF,IAAM,IAAK,EAAM,GACX,EAAE,YAAS,kBAAe,EAAgB,GAC1C,EAAE,gBAAa,EAAY;CAEjC,OACE,kBAAC,OAAD;EAAK,WAAU;YAAf,CACE,kBAAC,OAAD;GAAK,WAAU;GAAkD;EAAc,CAAA,GAE/E,kBAAC,OAAD;GACE,cAAY,EAAG,uBAAuB,WAAW;GACjD,WAAU;GACV,OAAO,EAAE,eAAe,mCAAmC;aAE3D,kBAAC,MAAD;IAAI,WAAU;cACX,EAAK,KAAK,MAAQ;KACjB,IAAM,IAAO,EAAQ,EAAI,IAAI,GACvB,IAAS,MAAa,KAAQ,MAAa,GAAG,EAAK;KACzD,OACE,kBAAC,MAAD;MAAiB,WAAU;gBACzB,kBAAC,UAAD;OACE,MAAK;OACL,eAAe,EAAW,EAAI,IAAI;OAClC,gBAAc,IAAS,SAAS,KAAA;OAChC,eAAa,aAAa,EAAI;OAC9B,WAAW,EACT,qGACA,IAAS,2BAA2B,4CACtC;iBARF;QAUG,KACC,kBAAC,QAAD;SACE,eAAY;SACZ,WAAU;QACX,CAAA;QAEH,kBAAC,QAAD;SACE,WAAW,EACT,6CACA,EAAI,WACF,2EACJ;mBALF,CAOG,EAAI,MACJ,EAAI,WAAW,IAAe,KAC7B,kBAAC,QAAD;UAAM,WAAU;oBACb;SACG,CAAA,CAEJ;;QACL,EAAG,EAAI,UAAU,EAAI,KAAK;OACrB;;KACN,GAjCK,EAAI,EAiCT;IAER,CAAC;GACC,CAAA;EACD,CAAA,CACF;;AAET"}
1
+ {"version":3,"file":"MobileShell.js","names":[],"sources":["../../../../src/ecoimpacthub/pages/mobile/MobileShell.tsx"],"sourcesContent":["/**\n * MobileShell — the field app's frame: content plus a bottom tab bar.\n * @module ecoimpacthub/pages/mobile\n *\n * Mock 15's bottom navigation (Home · Sites · Species · Carbon) with the field\n * capture action in the middle, where a thumb reaches it. The bar honours the\n * device safe area so it clears the iOS home indicator inside the Capacitor\n * WebView. Every tab is a real route of this MFE.\n */\n\nimport { useEffect, useRef, type FC, type ReactNode } from 'react';\nimport { useLocation } from 'react-router';\nimport { Binoculars, Factory, House, Map as MapIcon, PawPrint } from 'lucide-react';\nimport { useEcoImpactHub } from '../../context';\nimport { useTr } from '../../hooks';\nimport { cn } from '../../utils/cn';\n\ninterface TabDef {\n id: string;\n /** Path relative to the MFE base path. */\n path: string;\n labelKey: string;\n label: string;\n icon: ReactNode;\n primary?: boolean;\n}\n\n/**\n * Same contract as the fe-libs shell `MobileTabBar`: publish the bar's height\n * as `--mobile-tabbar-height` on <html>, which floating chrome (the AI\n * assistant launcher, notification panel) already reads to sit above a\n * bottom tab bar instead of covering its right-most tab.\n */\nconst TABBAR_HEIGHT_VAR = '--mobile-tabbar-height';\n\nconst TABS: TabDef[] = [\n {\n id: 'home',\n path: 'mobile',\n labelKey: 'ecoField.tabs.home',\n label: 'Home',\n icon: <House className=\"h-5 w-5\" aria-hidden=\"true\" />,\n },\n {\n id: 'sites',\n path: 'sites',\n labelKey: 'ecoField.tabs.sites',\n label: 'Sites',\n icon: <MapIcon className=\"h-5 w-5\" aria-hidden=\"true\" />,\n },\n {\n id: 'record',\n path: 'mobile/record-observation',\n labelKey: 'ecoField.tabs.record',\n label: 'Record',\n icon: <Binoculars className=\"h-5 w-5\" aria-hidden=\"true\" />,\n primary: true,\n },\n {\n id: 'species',\n path: 'species',\n labelKey: 'ecoField.tabs.species',\n label: 'Species',\n icon: <PawPrint className=\"h-5 w-5\" aria-hidden=\"true\" />,\n },\n {\n id: 'carbon',\n path: 'carbon',\n labelKey: 'ecoField.tabs.carbon',\n label: 'Carbon',\n icon: <Factory className=\"h-5 w-5\" aria-hidden=\"true\" />,\n },\n];\n\ninterface MobileShellProps {\n children: ReactNode;\n /** Badge on the Record tab: observations still waiting to sync. */\n pendingCount?: number;\n}\n\nexport const MobileShell: FC<MobileShellProps> = ({ children, pendingCount = 0 }) => {\n const tr = useTr();\n const { getPath, navigateTo } = useEcoImpactHub();\n const { pathname } = useLocation();\n const navRef = useRef<HTMLElement>(null);\n\n useEffect(() => {\n const nav = navRef.current;\n if (!nav) return undefined;\n const root = document.documentElement;\n const publish = () => root.style.setProperty(TABBAR_HEIGHT_VAR, `${nav.offsetHeight}px`);\n publish();\n const observer = typeof ResizeObserver === 'undefined' ? null : new ResizeObserver(publish);\n observer?.observe(nav);\n return () => {\n observer?.disconnect();\n root.style.removeProperty(TABBAR_HEIGHT_VAR);\n };\n }, []);\n\n return (\n <div className=\"flex min-h-full flex-col bg-bg-canvas\">\n <div className=\"mx-auto w-full max-w-xl flex-1 px-4 pb-28 pt-4\">{children}</div>\n\n <nav\n ref={navRef}\n aria-label={tr('ecoField.tabs.label', 'Field app')}\n className=\"fixed inset-x-0 bottom-0 z-30 border-t border-border-seam bg-bg-surface/95 backdrop-blur\"\n style={{ paddingBottom: 'env(safe-area-inset-bottom, 0px)' }}\n >\n <ul className=\"mx-auto flex max-w-xl items-stretch justify-between px-2\">\n {TABS.map((tab) => {\n const href = getPath(tab.path);\n const active = pathname === href || pathname === `${href}/`;\n return (\n <li key={tab.id} className=\"flex-1\">\n <button\n type=\"button\"\n onClick={() => navigateTo(tab.path)}\n aria-current={active ? 'page' : undefined}\n data-testid={`field-tab-${tab.id}`}\n className={cn(\n 'relative flex w-full flex-col items-center gap-0.5 py-2 text-[11px] font-medium transition-colors',\n active ? 'text-action-primary-bg' : 'text-text-tertiary hover:text-text-primary'\n )}\n >\n {active && (\n <span\n aria-hidden=\"true\"\n className=\"absolute inset-x-4 top-0 h-0.5 rounded-full bg-action-primary-bg\"\n />\n )}\n <span\n className={cn(\n 'relative flex items-center justify-center',\n tab.primary &&\n 'h-9 w-9 rounded-full bg-action-primary-bg text-action-primary-text shadow'\n )}\n >\n {tab.icon}\n {tab.primary && pendingCount > 0 && (\n <span className=\"absolute -right-1.5 -top-1.5 min-w-[1.1rem] rounded-full bg-status-warning-text px-1 text-center text-[10px] font-semibold leading-[1.1rem] text-bg-surface\">\n {pendingCount}\n </span>\n )}\n </span>\n {tr(tab.labelKey, tab.label)}\n </button>\n </li>\n );\n })}\n </ul>\n </nav>\n </div>\n );\n};\n"],"mappings":";;;;;;;;;;AAiCA,IAAM,IAAoB,0BAEpB,IAAiB;CACrB;EACE,IAAI;EACJ,MAAM;EACN,UAAU;EACV,OAAO;EACP,MAAM,kBAAC,GAAD;GAAO,WAAU;GAAU,eAAY;EAAQ,CAAA;CACvD;CACA;EACE,IAAI;EACJ,MAAM;EACN,UAAU;EACV,OAAO;EACP,MAAM,kBAAC,GAAD;GAAS,WAAU;GAAU,eAAY;EAAQ,CAAA;CACzD;CACA;EACE,IAAI;EACJ,MAAM;EACN,UAAU;EACV,OAAO;EACP,MAAM,kBAAC,GAAD;GAAY,WAAU;GAAU,eAAY;EAAQ,CAAA;EAC1D,SAAS;CACX;CACA;EACE,IAAI;EACJ,MAAM;EACN,UAAU;EACV,OAAO;EACP,MAAM,kBAAC,GAAD;GAAU,WAAU;GAAU,eAAY;EAAQ,CAAA;CAC1D;CACA;EACE,IAAI;EACJ,MAAM;EACN,UAAU;EACV,OAAO;EACP,MAAM,kBAAC,GAAD;GAAS,WAAU;GAAU,eAAY;EAAQ,CAAA;CACzD;AACF,GAQa,KAAqC,EAAE,aAAU,kBAAe,QAAQ;CACnF,IAAM,IAAK,EAAM,GACX,EAAE,YAAS,kBAAe,EAAgB,GAC1C,EAAE,gBAAa,EAAY,GAC3B,IAAS,EAAoB,IAAI;CAgBvC,OAdA,QAAgB;EACd,IAAM,IAAM,EAAO;EACnB,IAAI,CAAC,GAAK;EACV,IAAM,IAAO,SAAS,iBAChB,UAAgB,EAAK,MAAM,YAAY,GAAmB,GAAG,EAAI,aAAa,GAAG;EACvF,EAAQ;EACR,IAAM,IAAW,OAAO,iBAAmB,MAAc,OAAO,IAAI,eAAe,CAAO;EAE1F,OADA,GAAU,QAAQ,CAAG,SACR;GAEX,AADA,GAAU,WAAW,GACrB,EAAK,MAAM,eAAe,CAAiB;EAC7C;CACF,GAAG,CAAC,CAAC,GAGH,kBAAC,OAAD;EAAK,WAAU;YAAf,CACE,kBAAC,OAAD;GAAK,WAAU;GAAkD;EAAc,CAAA,GAE/E,kBAAC,OAAD;GACE,KAAK;GACL,cAAY,EAAG,uBAAuB,WAAW;GACjD,WAAU;GACV,OAAO,EAAE,eAAe,mCAAmC;aAE3D,kBAAC,MAAD;IAAI,WAAU;cACX,EAAK,KAAK,MAAQ;KACjB,IAAM,IAAO,EAAQ,EAAI,IAAI,GACvB,IAAS,MAAa,KAAQ,MAAa,GAAG,EAAK;KACzD,OACE,kBAAC,MAAD;MAAiB,WAAU;gBACzB,kBAAC,UAAD;OACE,MAAK;OACL,eAAe,EAAW,EAAI,IAAI;OAClC,gBAAc,IAAS,SAAS,KAAA;OAChC,eAAa,aAAa,EAAI;OAC9B,WAAW,EACT,qGACA,IAAS,2BAA2B,4CACtC;iBARF;QAUG,KACC,kBAAC,QAAD;SACE,eAAY;SACZ,WAAU;QACX,CAAA;QAEH,kBAAC,QAAD;SACE,WAAW,EACT,6CACA,EAAI,WACF,2EACJ;mBALF,CAOG,EAAI,MACJ,EAAI,WAAW,IAAe,KAC7B,kBAAC,QAAD;UAAM,WAAU;oBACb;SACG,CAAA,CAEJ;;QACL,EAAG,EAAI,UAAU,EAAI,KAAK;OACrB;;KACN,GAjCK,EAAI,EAiCT;IAER,CAAC;GACC,CAAA;EACD,CAAA,CACF;;AAET"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@burdenoff/microfe-ecoimpacthub",
3
- "version": "2026.1030.3",
3
+ "version": "2026.1030.4",
4
4
  "description": "Burdenoff EcoImpactHub Microfrontend",
5
5
  "type": "module",
6
6
  "files": [