@burdenoff/microfe-ecoimpacthub 2026.819.4 → 2026.830.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 (51) hide show
  1. package/dist/ecoimpacthub/hooks/index.d.ts +2 -0
  2. package/dist/ecoimpacthub/hooks/index.d.ts.map +1 -1
  3. package/dist/ecoimpacthub/hooks/index.js +2 -0
  4. package/dist/ecoimpacthub/hooks/useActiveEcoEntity.d.ts +11 -0
  5. package/dist/ecoimpacthub/hooks/useActiveEcoEntity.d.ts.map +1 -0
  6. package/dist/ecoimpacthub/hooks/useActiveEcoEntity.js +21 -0
  7. package/dist/ecoimpacthub/hooks/useActiveEcoEntity.js.map +1 -0
  8. package/dist/ecoimpacthub/hooks/useTr.d.ts +4 -0
  9. package/dist/ecoimpacthub/hooks/useTr.d.ts.map +1 -0
  10. package/dist/ecoimpacthub/hooks/useTr.js +20 -0
  11. package/dist/ecoimpacthub/hooks/useTr.js.map +1 -0
  12. package/dist/ecoimpacthub/pages/DashboardPage.d.ts.map +1 -1
  13. package/dist/ecoimpacthub/pages/DashboardPage.js +162 -138
  14. package/dist/ecoimpacthub/pages/DashboardPage.js.map +1 -1
  15. package/dist/ecoimpacthub/pages/_shared/MethodPicker.d.ts +15 -0
  16. package/dist/ecoimpacthub/pages/_shared/MethodPicker.d.ts.map +1 -0
  17. package/dist/ecoimpacthub/pages/_shared/MethodPicker.js +36 -0
  18. package/dist/ecoimpacthub/pages/_shared/MethodPicker.js.map +1 -0
  19. package/dist/ecoimpacthub/pages/_shared/UseMyLocationButton.d.ts +15 -0
  20. package/dist/ecoimpacthub/pages/_shared/UseMyLocationButton.d.ts.map +1 -0
  21. package/dist/ecoimpacthub/pages/_shared/UseMyLocationButton.js +66 -0
  22. package/dist/ecoimpacthub/pages/_shared/UseMyLocationButton.js.map +1 -0
  23. package/dist/ecoimpacthub/pages/habitat/HabitatProjectDetailPage.d.ts.map +1 -1
  24. package/dist/ecoimpacthub/pages/habitat/HabitatProjectDetailPage.js +127 -124
  25. package/dist/ecoimpacthub/pages/habitat/HabitatProjectDetailPage.js.map +1 -1
  26. package/dist/ecoimpacthub/pages/observations/ObservationsPage.d.ts.map +1 -1
  27. package/dist/ecoimpacthub/pages/observations/ObservationsPage.js +226 -224
  28. package/dist/ecoimpacthub/pages/observations/ObservationsPage.js.map +1 -1
  29. package/dist/ecoimpacthub/pages/reports/ReportDetailPage.d.ts.map +1 -1
  30. package/dist/ecoimpacthub/pages/reports/ReportDetailPage.js +159 -156
  31. package/dist/ecoimpacthub/pages/reports/ReportDetailPage.js.map +1 -1
  32. package/dist/ecoimpacthub/pages/sites/SiteDetailPage.d.ts.map +1 -1
  33. package/dist/ecoimpacthub/pages/sites/SiteDetailPage.js +40 -37
  34. package/dist/ecoimpacthub/pages/sites/SiteDetailPage.js.map +1 -1
  35. package/dist/ecoimpacthub/pages/sites/SitesPage.d.ts.map +1 -1
  36. package/dist/ecoimpacthub/pages/sites/SitesPage.js +208 -171
  37. package/dist/ecoimpacthub/pages/sites/SitesPage.js.map +1 -1
  38. package/dist/ecoimpacthub/pages/species/SpeciesDetailPage.d.ts.map +1 -1
  39. package/dist/ecoimpacthub/pages/species/SpeciesDetailPage.js +211 -214
  40. package/dist/ecoimpacthub/pages/species/SpeciesDetailPage.js.map +1 -1
  41. package/dist/ecoimpacthub/pages/species/SpeciesPage.d.ts.map +1 -1
  42. package/dist/ecoimpacthub/pages/species/SpeciesPage.js +174 -157
  43. package/dist/ecoimpacthub/pages/species/SpeciesPage.js.map +1 -1
  44. package/dist/ecoimpacthub/utils/activeEntity.d.ts +30 -0
  45. package/dist/ecoimpacthub/utils/activeEntity.d.ts.map +1 -0
  46. package/dist/ecoimpacthub/utils/activeEntity.js +12 -0
  47. package/dist/ecoimpacthub/utils/activeEntity.js.map +1 -0
  48. package/dist/ecoimpacthub/utils/pageContext.d.ts.map +1 -1
  49. package/dist/ecoimpacthub/utils/pageContext.js +30 -25
  50. package/dist/ecoimpacthub/utils/pageContext.js.map +1 -1
  51. package/package.json +1 -1
@@ -8,4 +8,6 @@ export * from './useEcoFiles';
8
8
  export * from './useEcoComments';
9
9
  export * from './useEcoTags';
10
10
  export * from './useDashboardLayout';
11
+ export * from './useActiveEcoEntity';
12
+ export * from './useTr';
11
13
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ecoimpacthub/hooks/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ecoimpacthub/hooks/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,SAAS,CAAC"}
@@ -4,3 +4,5 @@ import "./useCursorPager.js";
4
4
  import "./useEcoFiles.js";
5
5
  import "./useEcoComments.js";
6
6
  import "./useEcoTags.js";
7
+ import "./useActiveEcoEntity.js";
8
+ import "./useTr.js";
@@ -0,0 +1,11 @@
1
+ /**
2
+ * useActiveEcoEntity — publish the record a detail page is showing so the
3
+ * assistant can refer to it by name.
4
+ * @module ecoimpacthub/hooks
5
+ *
6
+ * Call it on every detail page with the loaded record (or `null` while it is
7
+ * still loading / errored). The registration is cleared on unmount so a name
8
+ * never outlives the page that owned it.
9
+ */
10
+ export declare function useActiveEcoEntity(id: string | null | undefined, name: string | null | undefined): void;
11
+ //# sourceMappingURL=useActiveEcoEntity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useActiveEcoEntity.d.ts","sourceRoot":"","sources":["../../../src/ecoimpacthub/hooks/useActiveEcoEntity.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,wBAAgB,kBAAkB,CAChC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAC7B,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAC9B,IAAI,CAWN"}
@@ -0,0 +1,21 @@
1
+ import { setActiveEcoEntity as e } from "../utils/activeEntity.js";
2
+ import { useEffect as t } from "react";
3
+ //#region src/ecoimpacthub/hooks/useActiveEcoEntity.ts
4
+ function n(n, r) {
5
+ t(() => {
6
+ if (!n || !r) {
7
+ e(null);
8
+ return;
9
+ }
10
+ return e({
11
+ id: n,
12
+ name: r
13
+ }), () => {
14
+ e(null);
15
+ };
16
+ }, [n, r]);
17
+ }
18
+ //#endregion
19
+ export { n as useActiveEcoEntity };
20
+
21
+ //# sourceMappingURL=useActiveEcoEntity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useActiveEcoEntity.js","names":[],"sources":["../../../src/ecoimpacthub/hooks/useActiveEcoEntity.ts"],"sourcesContent":["/**\n * useActiveEcoEntity — publish the record a detail page is showing so the\n * assistant can refer to it by name.\n * @module ecoimpacthub/hooks\n *\n * Call it on every detail page with the loaded record (or `null` while it is\n * still loading / errored). The registration is cleared on unmount so a name\n * never outlives the page that owned it.\n */\n\nimport { useEffect } from 'react';\nimport { setActiveEcoEntity } from '../utils/activeEntity';\n\nexport function useActiveEcoEntity(\n id: string | null | undefined,\n name: string | null | undefined\n): void {\n useEffect(() => {\n if (!id || !name) {\n setActiveEcoEntity(null);\n return;\n }\n setActiveEcoEntity({ id, name });\n return () => {\n setActiveEcoEntity(null);\n };\n }, [id, name]);\n}\n"],"mappings":";;;AAaA,SAAgB,EACd,GACA,GACM;CACN,QAAgB;EACd,IAAI,CAAC,KAAM,CAAC,GAAM;GAChB,EAAmB,IAAI;GACvB;EACF;EAEA,OADA,EAAmB;GAAE;GAAI;EAAK,CAAC,SAClB;GACX,EAAmB,IAAI;EACzB;CACF,GAAG,CAAC,GAAI,CAAI,CAAC;AACf"}
@@ -0,0 +1,4 @@
1
+ type TranslationParams = Record<string, string | number>;
2
+ export declare function useTr(): (key: string, fallback: string, params?: TranslationParams) => string;
3
+ export {};
4
+ //# sourceMappingURL=useTr.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useTr.d.ts","sourceRoot":"","sources":["../../../src/ecoimpacthub/hooks/useTr.ts"],"names":[],"mappings":"AAkBA,KAAK,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;AAgBzD,wBAAgB,KAAK,IAAI,CACvB,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,iBAAiB,KACvB,MAAM,CAYV"}
@@ -0,0 +1,20 @@
1
+ import { useCallback as e } from "react";
2
+ import { useI18n as t } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
3
+ //#region src/ecoimpacthub/hooks/useTr.ts
4
+ function n(e, t) {
5
+ return t ? e.replace(/\{\{\s*(\w+)\s*\}\}/g, (e, n) => {
6
+ let r = t[n];
7
+ return r === void 0 ? `{{${n}}}` : String(r);
8
+ }) : e;
9
+ }
10
+ function r() {
11
+ let { t: r } = t();
12
+ return e((e, t, i) => {
13
+ let a = r(e, i), o = a === e ? t : a;
14
+ return i ? n(o, i) : o;
15
+ }, [r]);
16
+ }
17
+ //#endregion
18
+ export { r as useTr };
19
+
20
+ //# sourceMappingURL=useTr.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useTr.js","names":[],"sources":["../../../src/ecoimpacthub/hooks/useTr.ts"],"sourcesContent":["/**\n * useTr — translation hook with fallback semantics.\n *\n * Wraps `useI18n().t()` so that when a key has no translation (i.e. the\n * provider returns the key itself), the caller's English fallback is used\n * instead. This keeps consumer call sites consistent and avoids leaking\n * untranslated keys into the UI.\n *\n * Supports optional interpolation params using `{{key}}` placeholders.\n *\n * @example\n * const tr = useTr();\n * return <h1>{tr('ecoDashboard.title', 'EcoImpactHub')}</h1>;\n * return <p>{tr('ecoDashboard.kpis.monitoredSites', 'Monitored sites')}</p>;\n */\nimport { useCallback } from 'react';\nimport { useI18n } from '@burdenoff/fe-libs/shared/providers/shell/I18nProvider';\n\ntype TranslationParams = Record<string, string | number>;\n\nfunction interpolateFallback(\n fallback: string,\n params?: TranslationParams,\n): string {\n if (!params) {\n return fallback;\n }\n\n return fallback.replace(/\\{\\{\\s*(\\w+)\\s*\\}\\}/g, (_, key: string) => {\n const value = params[key];\n return value === undefined ? `{{${key}}}` : String(value);\n });\n}\n\nexport function useTr(): (\n key: string,\n fallback: string,\n params?: TranslationParams,\n) => string {\n const { t } = useI18n();\n\n return useCallback(\n (key: string, fallback: string, params?: TranslationParams): string => {\n const translated = t(key, params);\n const raw = translated === key ? fallback : translated;\n if (!params) return raw;\n return interpolateFallback(raw, params);\n },\n [t],\n );\n}\n"],"mappings":";;;AAoBA,SAAS,EACP,GACA,GACQ;CAKR,OAJK,IAIE,EAAS,QAAQ,yBAAyB,GAAG,MAAgB;EAClE,IAAM,IAAQ,EAAO;EACrB,OAAO,MAAU,KAAA,IAAY,KAAK,EAAI,MAAM,OAAO,CAAK;CAC1D,CAAC,IANQ;AAOX;AAEA,SAAgB,IAIJ;CACV,IAAM,EAAE,SAAM,EAAQ;CAEtB,OAAO,GACJ,GAAa,GAAkB,MAAuC;EACrE,IAAM,IAAa,EAAE,GAAK,CAAM,GAC1B,IAAM,MAAe,IAAM,IAAW;EAE5C,OADK,IACE,EAAoB,GAAK,CAAM,IADlB;CAEtB,GACA,CAAC,CAAC,CACJ;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"DashboardPage.d.ts","sourceRoot":"","sources":["../../../src/ecoimpacthub/pages/DashboardPage.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAuEH,wBAAgB,aAAa,4CAyhB5B"}
1
+ {"version":3,"file":"DashboardPage.d.ts","sourceRoot":"","sources":["../../../src/ecoimpacthub/pages/DashboardPage.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAwEH,wBAAgB,aAAa,4CAykB5B"}