@burdenoff/microfe-ecoimpacthub 2026.704.5 → 2026.709.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 (132) hide show
  1. package/dist/dev/main.d.ts +2 -0
  2. package/dist/dev/main.d.ts.map +1 -0
  3. package/dist/ecoimpacthub/EcoImpactHubRoot.d.ts +5 -0
  4. package/dist/ecoimpacthub/EcoImpactHubRoot.d.ts.map +1 -0
  5. package/dist/ecoimpacthub/EcoImpactHubRoutes.d.ts +4 -0
  6. package/dist/ecoimpacthub/EcoImpactHubRoutes.d.ts.map +1 -0
  7. package/dist/ecoimpacthub/EcoImpactHubRoutes.js +48 -40
  8. package/dist/ecoimpacthub/EcoImpactHubRoutes.js.map +1 -1
  9. package/dist/ecoimpacthub/components/DataTable.d.ts +28 -0
  10. package/dist/ecoimpacthub/components/DataTable.d.ts.map +1 -0
  11. package/dist/ecoimpacthub/components/EcoDiscussion.d.ts +18 -0
  12. package/dist/ecoimpacthub/components/EcoDiscussion.d.ts.map +1 -0
  13. package/dist/ecoimpacthub/components/EcoTags.d.ts +17 -0
  14. package/dist/ecoimpacthub/components/EcoTags.d.ts.map +1 -0
  15. package/dist/ecoimpacthub/components/EmptyState.d.ts +18 -0
  16. package/dist/ecoimpacthub/components/EmptyState.d.ts.map +1 -0
  17. package/dist/ecoimpacthub/components/EvidenceUpload.d.ts +14 -0
  18. package/dist/ecoimpacthub/components/EvidenceUpload.d.ts.map +1 -0
  19. package/dist/ecoimpacthub/components/FeatureFlagGate.d.ts +10 -0
  20. package/dist/ecoimpacthub/components/FeatureFlagGate.d.ts.map +1 -0
  21. package/dist/ecoimpacthub/components/FeatureFlagGate.js +8 -0
  22. package/dist/ecoimpacthub/components/FeatureFlagGate.js.map +1 -0
  23. package/dist/ecoimpacthub/components/FileLink.d.ts +15 -0
  24. package/dist/ecoimpacthub/components/FileLink.d.ts.map +1 -0
  25. package/dist/ecoimpacthub/components/FilterTabs.d.ts +18 -0
  26. package/dist/ecoimpacthub/components/FilterTabs.d.ts.map +1 -0
  27. package/dist/ecoimpacthub/components/MetricsCard.d.ts +23 -0
  28. package/dist/ecoimpacthub/components/MetricsCard.d.ts.map +1 -0
  29. package/dist/ecoimpacthub/components/MiniBar.d.ts +16 -0
  30. package/dist/ecoimpacthub/components/MiniBar.d.ts.map +1 -0
  31. package/dist/ecoimpacthub/components/PageLayout.d.ts +16 -0
  32. package/dist/ecoimpacthub/components/PageLayout.d.ts.map +1 -0
  33. package/dist/ecoimpacthub/components/Pagination.d.ts +22 -0
  34. package/dist/ecoimpacthub/components/Pagination.d.ts.map +1 -0
  35. package/dist/ecoimpacthub/components/StateViews.d.ts +24 -0
  36. package/dist/ecoimpacthub/components/StateViews.d.ts.map +1 -0
  37. package/dist/ecoimpacthub/components/StatusBadge.d.ts +9 -0
  38. package/dist/ecoimpacthub/components/StatusBadge.d.ts.map +1 -0
  39. package/dist/ecoimpacthub/components/Tabs.d.ts +17 -0
  40. package/dist/ecoimpacthub/components/Tabs.d.ts.map +1 -0
  41. package/dist/ecoimpacthub/components/index.d.ts +19 -0
  42. package/dist/ecoimpacthub/components/index.d.ts.map +1 -0
  43. package/dist/ecoimpacthub/context/EcoImpactHubContext.d.ts +16 -0
  44. package/dist/ecoimpacthub/context/EcoImpactHubContext.d.ts.map +1 -0
  45. package/dist/ecoimpacthub/context/index.d.ts +6 -0
  46. package/dist/ecoimpacthub/context/index.d.ts.map +1 -0
  47. package/dist/ecoimpacthub/hooks/index.d.ts +10 -0
  48. package/dist/ecoimpacthub/hooks/index.d.ts.map +1 -0
  49. package/dist/ecoimpacthub/hooks/useCursorPager.d.ts +33 -0
  50. package/dist/ecoimpacthub/hooks/useCursorPager.d.ts.map +1 -0
  51. package/dist/ecoimpacthub/hooks/useEcoComments.d.ts +36 -0
  52. package/dist/ecoimpacthub/hooks/useEcoComments.d.ts.map +1 -0
  53. package/dist/ecoimpacthub/hooks/useEcoFiles.d.ts +47 -0
  54. package/dist/ecoimpacthub/hooks/useEcoFiles.d.ts.map +1 -0
  55. package/dist/ecoimpacthub/hooks/useEcoImpactHubApi.d.ts +104 -0
  56. package/dist/ecoimpacthub/hooks/useEcoImpactHubApi.d.ts.map +1 -0
  57. package/dist/ecoimpacthub/hooks/useEcoTags.d.ts +44 -0
  58. package/dist/ecoimpacthub/hooks/useEcoTags.d.ts.map +1 -0
  59. package/dist/ecoimpacthub/index.d.ts +10 -0
  60. package/dist/ecoimpacthub/index.d.ts.map +1 -0
  61. package/dist/ecoimpacthub/index.js +2 -0
  62. package/dist/ecoimpacthub/pages/DashboardPage.d.ts +10 -0
  63. package/dist/ecoimpacthub/pages/DashboardPage.d.ts.map +1 -0
  64. package/dist/ecoimpacthub/pages/_shared/ConservationBadge.d.ts +9 -0
  65. package/dist/ecoimpacthub/pages/_shared/ConservationBadge.d.ts.map +1 -0
  66. package/dist/ecoimpacthub/pages/_shared/EvidenceThumb.d.ts +23 -0
  67. package/dist/ecoimpacthub/pages/_shared/EvidenceThumb.d.ts.map +1 -0
  68. package/dist/ecoimpacthub/pages/_shared/MethodBadge.d.ts +9 -0
  69. package/dist/ecoimpacthub/pages/_shared/MethodBadge.d.ts.map +1 -0
  70. package/dist/ecoimpacthub/pages/_shared/TaxonChip.d.ts +9 -0
  71. package/dist/ecoimpacthub/pages/_shared/TaxonChip.d.ts.map +1 -0
  72. package/dist/ecoimpacthub/pages/badges.d.ts +27 -0
  73. package/dist/ecoimpacthub/pages/badges.d.ts.map +1 -0
  74. package/dist/ecoimpacthub/pages/carbon/CarbonPage.d.ts +15 -0
  75. package/dist/ecoimpacthub/pages/carbon/CarbonPage.d.ts.map +1 -0
  76. package/dist/ecoimpacthub/pages/carbonVisuals.d.ts +47 -0
  77. package/dist/ecoimpacthub/pages/carbonVisuals.d.ts.map +1 -0
  78. package/dist/ecoimpacthub/pages/habitat/HabitatProjectDetailPage.d.ts +12 -0
  79. package/dist/ecoimpacthub/pages/habitat/HabitatProjectDetailPage.d.ts.map +1 -0
  80. package/dist/ecoimpacthub/pages/habitat/HabitatProjectsPage.d.ts +8 -0
  81. package/dist/ecoimpacthub/pages/habitat/HabitatProjectsPage.d.ts.map +1 -0
  82. package/dist/ecoimpacthub/pages/habitat/LifecycleProgress.d.ts +6 -0
  83. package/dist/ecoimpacthub/pages/habitat/LifecycleProgress.d.ts.map +1 -0
  84. package/dist/ecoimpacthub/pages/monitoring/MonitoringPage.d.ts +12 -0
  85. package/dist/ecoimpacthub/pages/monitoring/MonitoringPage.d.ts.map +1 -0
  86. package/dist/ecoimpacthub/pages/observations/ObservationsPage.d.ts +11 -0
  87. package/dist/ecoimpacthub/pages/observations/ObservationsPage.d.ts.map +1 -0
  88. package/dist/ecoimpacthub/pages/reports/ReportDetailPage.d.ts +11 -0
  89. package/dist/ecoimpacthub/pages/reports/ReportDetailPage.d.ts.map +1 -0
  90. package/dist/ecoimpacthub/pages/reports/ReportsPage.d.ts +8 -0
  91. package/dist/ecoimpacthub/pages/reports/ReportsPage.d.ts.map +1 -0
  92. package/dist/ecoimpacthub/pages/sites/SiteDetailPage.d.ts +10 -0
  93. package/dist/ecoimpacthub/pages/sites/SiteDetailPage.d.ts.map +1 -0
  94. package/dist/ecoimpacthub/pages/sites/SitesPage.d.ts +8 -0
  95. package/dist/ecoimpacthub/pages/sites/SitesPage.d.ts.map +1 -0
  96. package/dist/ecoimpacthub/pages/sites/siteTypeVisuals.d.ts +22 -0
  97. package/dist/ecoimpacthub/pages/sites/siteTypeVisuals.d.ts.map +1 -0
  98. package/dist/ecoimpacthub/pages/species/SpeciesDetailPage.d.ts +9 -0
  99. package/dist/ecoimpacthub/pages/species/SpeciesDetailPage.d.ts.map +1 -0
  100. package/dist/ecoimpacthub/pages/species/SpeciesPage.d.ts +8 -0
  101. package/dist/ecoimpacthub/pages/species/SpeciesPage.d.ts.map +1 -0
  102. package/dist/ecoimpacthub/services/createSandboxAssistantTransport.d.ts +33 -0
  103. package/dist/ecoimpacthub/services/createSandboxAssistantTransport.d.ts.map +1 -0
  104. package/dist/ecoimpacthub/services/createSandboxAssistantTransport.js +42 -0
  105. package/dist/ecoimpacthub/services/createSandboxAssistantTransport.js.map +1 -0
  106. package/dist/ecoimpacthub/services/index.d.ts +6 -0
  107. package/dist/ecoimpacthub/services/index.d.ts.map +1 -0
  108. package/dist/ecoimpacthub/services/index.js +1 -0
  109. package/dist/ecoimpacthub/types/index.d.ts +417 -0
  110. package/dist/ecoimpacthub/types/index.d.ts.map +1 -0
  111. package/dist/ecoimpacthub/utils/cn.d.ts +4 -0
  112. package/dist/ecoimpacthub/utils/cn.d.ts.map +1 -0
  113. package/dist/ecoimpacthub/utils/formatters.d.ts +26 -0
  114. package/dist/ecoimpacthub/utils/formatters.d.ts.map +1 -0
  115. package/dist/ecoimpacthub/utils/i18n.d.ts +6 -0
  116. package/dist/ecoimpacthub/utils/i18n.d.ts.map +1 -0
  117. package/dist/ecoimpacthub/utils/index.d.ts +9 -0
  118. package/dist/ecoimpacthub/utils/index.d.ts.map +1 -0
  119. package/dist/ecoimpacthub/utils/navigation.d.ts +14 -0
  120. package/dist/ecoimpacthub/utils/navigation.d.ts.map +1 -0
  121. package/dist/generated/global-operations.d.ts +2 -0
  122. package/dist/generated/global-operations.d.ts.map +1 -0
  123. package/dist/generated/global-types.d.ts +18199 -0
  124. package/dist/generated/global-types.d.ts.map +1 -0
  125. package/dist/generated/wspace-operations.d.ts +2 -0
  126. package/dist/generated/wspace-operations.d.ts.map +1 -0
  127. package/dist/generated/wspace-types.d.ts +43046 -0
  128. package/dist/generated/wspace-types.d.ts.map +1 -0
  129. package/dist/index.d.ts +2 -0
  130. package/dist/index.d.ts.map +1 -0
  131. package/dist/index.js +2 -1
  132. package/package.json +5 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EcoImpactHubContext.d.ts","sourceRoot":"","sources":["../../../src/ecoimpacthub/context/EcoImpactHubContext.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,EAAE,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAGnD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAGtD,UAAU,wBAAyB,SAAQ,IAAI,CAC7C,qBAAqB,EACrB,kBAAkB,GAAG,qBAAqB,GAAG,UAAU,CACxD;IACC,YAAY,EAAE,OAAO,CAAC;IACtB,qEAAqE;IACrE,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,+CAA+C;IAC/C,UAAU,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,6CAA6C;IAC7C,OAAO,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,MAAM,CAAC;CAC3C;AAID,wBAAgB,eAAe,IAAI,wBAAwB,CAM1D;AAqHD,eAAO,MAAM,oBAAoB,EAAE,EAAE,CAAC,iBAAiB,CAAC,qBAAqB,CAAC,CAmB7E,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Context index
3
+ * @module ecoimpacthub/context
4
+ */
5
+ export { EcoImpactHubProvider, useEcoImpactHub } from './EcoImpactHubContext';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ecoimpacthub/context/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Hooks index
3
+ * @module ecoimpacthub/hooks
4
+ */
5
+ export * from './useEcoImpactHubApi';
6
+ export * from './useCursorPager';
7
+ export * from './useEcoFiles';
8
+ export * from './useEcoComments';
9
+ export * from './useEcoTags';
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * useCursorPager — forward/back cursor pagination for Eco* list connections.
3
+ * @module ecoimpacthub/hooks
4
+ *
5
+ * The svc paginates by cursor only (`PaginationInput.offset` is a no-op — the
6
+ * resolver never sets Prisma `skip` from it). So a page must send
7
+ * `pagination.cursor = the previous page's pageInfo.cursor` to advance. This
8
+ * hook keeps a stack of the cursors that opened each visited page so Prev/Next
9
+ * are exact, and exposes a 0-indexed `page` for display.
10
+ */
11
+ export interface CursorPager {
12
+ /** 0-indexed page number for display. */
13
+ page: number;
14
+ /**
15
+ * Cursor that opens the current page — `undefined` on the first page so it is
16
+ * OMITTED from the GraphQL variables (the svc rejects an explicit `cursor: null`;
17
+ * a first page must send no cursor at all, per cursor-pagination convention).
18
+ */
19
+ cursor: string | undefined;
20
+ /** Advance to the next page using the current page's end cursor. No-op if null. */
21
+ next: (endCursor: string | null | undefined) => void;
22
+ /** Go back one page. No-op on the first page. */
23
+ prev: () => void;
24
+ /** Reset to the first page (call when filters change). */
25
+ reset: () => void;
26
+ /**
27
+ * Adapter for `<Pagination onPageChange>` — compares the requested page to the
28
+ * current one and calls next()/prev() accordingly.
29
+ */
30
+ onPageChange: (targetPage: number, endCursor: string | null | undefined) => void;
31
+ }
32
+ export declare function useCursorPager(): CursorPager;
33
+ //# sourceMappingURL=useCursorPager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useCursorPager.d.ts","sourceRoot":"","sources":["../../../src/ecoimpacthub/hooks/useCursorPager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,MAAM,WAAW,WAAW;IAC1B,yCAAyC;IACzC,IAAI,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,mFAAmF;IACnF,IAAI,EAAE,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,KAAK,IAAI,CAAC;IACrD,iDAAiD;IACjD,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,0DAA0D;IAC1D,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB;;;OAGG;IACH,YAAY,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,KAAK,IAAI,CAAC;CAClF;AAED,wBAAgB,cAAc,IAAI,WAAW,CA4B5C"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * EcoImpactHub — wspace-conversations-svc EntityComment REUSE hooks (Integration B).
3
+ * @module ecoimpacthub/hooks/useEcoComments
4
+ *
5
+ * Adds a discussion surface to eco entities WITHOUT any eco-svc change by
6
+ * reusing the generic EntityComment API composed into the WORKSPACE supergraph.
7
+ * Comments attach to any entity by `(entityType, entityId)`:
8
+ * - `getEntityComments(input): EntityCommentConnection!`
9
+ * - `createEntityComment(input): EntityComment!`
10
+ *
11
+ * Transport reuses `wspaceFetch` from `useEcoFiles` (workspace gateway +
12
+ * workspace token). Lives in a separate file; `useEcoImpactHubApi.ts` is
13
+ * untouched.
14
+ */
15
+ export interface EcoComment {
16
+ id: string;
17
+ authorId: string;
18
+ authorType: string;
19
+ content: {
20
+ text: string | null;
21
+ markdown: string | null;
22
+ };
23
+ createdAt: string;
24
+ edited: boolean;
25
+ parentCommentId: string | null;
26
+ replyCount: number;
27
+ }
28
+ /** Top-level (root) comments for an eco entity, oldest first. */
29
+ export declare const useEcoComments: (entityType: string, entityId: string | undefined) => import('@tanstack/react-query').UseQueryResult<{
30
+ items: EcoComment[];
31
+ total: number;
32
+ }, Error>;
33
+ export declare const useEcoCreateComment: (entityType: string, entityId: string) => import('@tanstack/react-query').UseMutationResult<{
34
+ id: string;
35
+ }, Error, string, unknown>;
36
+ //# sourceMappingURL=useEcoComments.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useEcoComments.d.ts","sourceRoot":"","sources":["../../../src/ecoimpacthub/hooks/useEcoComments.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAOH,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE;QACP,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;QACpB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;KACzB,CAAC;IACF,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,UAAU,EAAE,MAAM,CAAC;CACpB;AAKD,iEAAiE;AACjE,eAAO,MAAM,cAAc,GAAI,YAAY,MAAM,EAAE,UAAU,MAAM,GAAG,SAAS;;;SAwC9E,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAAI,YAAY,MAAM,EAAE,UAAU,MAAM;QAKN,MAAM;0BAmBvE,CAAC"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * EcoImpactHub — wspace-files-svc REUSE hooks (Integration A).
3
+ * @module ecoimpacthub/hooks/useEcoFiles
4
+ *
5
+ * Reuses the platform file store (`wspace-files-svc`) WITHOUT any eco-svc
6
+ * change: the eco schema already exposes `EcoObservation.evidenceFileId` /
7
+ * `EcoReport.fileId`; this module lets the UI actually produce a `fileId` via
8
+ * the canonical 3-step upload flow composed into the WORKSPACE supergraph:
9
+ * 1. `initiateUpload(input)` → `{ uploadUrl, session { id } }`
10
+ * 2. HTTP `PUT` the bytes to the returned signed `uploadUrl`
11
+ * 3. `completeUpload(input: { sessionId })` → `{ fileId }`
12
+ * plus `getFile(id)` to resolve an existing evidence/report file's name + URL.
13
+ *
14
+ * Transport mirrors `useEcoImpactHubApi` exactly — `graphqlFetch({ gateway:
15
+ * 'workspace', workspaceToken: true })` — so no ApolloProvider is required.
16
+ * These hooks live in a SEPARATE file by design; `useEcoImpactHubApi.ts` is
17
+ * left untouched.
18
+ */
19
+ /** Execute a workspace-gateway GraphQL operation with the workspace token. */
20
+ export declare const wspaceFetch: <TData>(query: string, variables: Record<string, unknown>, baseUrl?: string) => Promise<TData>;
21
+ export interface UploadedEcoFile {
22
+ fileId: string;
23
+ fileName: string;
24
+ }
25
+ export interface UseEcoFileUploadResult {
26
+ upload: (file: File) => Promise<UploadedEcoFile>;
27
+ isUploading: boolean;
28
+ /** 0–100 byte-progress of the signed-URL PUT. */
29
+ progress: number;
30
+ error: string | null;
31
+ reset: () => void;
32
+ }
33
+ /**
34
+ * Imperative upload hook: `await upload(file)` runs the platform 3-step flow and
35
+ * resolves to `{ fileId, fileName }`. `fileId` is what the eco mutations accept
36
+ * (`ecoRecordObservation.evidenceFileId`, `ecoPublishReport.fileId`).
37
+ */
38
+ export declare const useEcoFileUpload: () => UseEcoFileUploadResult;
39
+ export interface EcoFileMeta {
40
+ id: string;
41
+ name: string;
42
+ downloadUrl: string | null;
43
+ mimeType: string;
44
+ size: string;
45
+ }
46
+ export declare const useEcoFile: (id: string | null | undefined) => import('@tanstack/react-query').UseQueryResult<EcoFileMeta | null, Error>;
47
+ //# sourceMappingURL=useEcoFiles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useEcoFiles.d.ts","sourceRoot":"","sources":["../../../src/ecoimpacthub/hooks/useEcoFiles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AA8BH,8EAA8E;AAC9E,eAAO,MAAM,WAAW,GAAU,KAAK,EACrC,OAAO,MAAM,EACb,WAAW,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClC,UAAU,MAAM,KACf,OAAO,CAAC,KAAK,CAmBf,CAAC;AAMF,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AA+BD,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,eAAe,CAAC,CAAC;IACjD,WAAW,EAAE,OAAO,CAAC;IACrB,iDAAiD;IACjD,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AAED;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,QAAO,sBAoFnC,CAAC;AAMF,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,eAAO,MAAM,UAAU,GAAI,IAAI,MAAM,GAAG,IAAI,GAAG,SAAS,8EAsBvD,CAAC"}
@@ -0,0 +1,104 @@
1
+ import { EcoConnection, EcoSite, EcoSiteStatus, EcoSiteType, EcoSensor, EcoSensorKind, EcoSensorStatus, EcoMeasurement, EcoAlertThreshold, EcoSpecies, EcoTaxonGroup, EcoConservationStatus, EcoObservation, EcoHabitatProject, EcoHabitatProjectStatus, EcoRestorationActivity, EcoEmissionFactor, EcoEmissionScope, EcoCarbonEntry, EcoCarbonEntryStatus, EcoReductionTarget, EcoReductionTargetStatus, EcoReport, EcoReportStatus, EcoReportLineItem, EcoCreateSiteInput, EcoUpdateSiteInput, EcoCreateSensorInput, EcoRecordMeasurementInput, EcoCreateThresholdInput, EcoCreateSpeciesInput, EcoUpdateSpeciesInput, EcoRecordObservationInput, EcoCreateHabitatProjectInput, EcoLogRestorationActivityInput, EcoCreateEmissionFactorInput, EcoRecordCarbonEntryInput, EcoCreateReductionTargetInput, EcoCreateReportInput, EcoAddReportLineItemInput, PaginationInput } from '../types';
2
+
3
+ export interface SiteFilters {
4
+ status?: EcoSiteStatus;
5
+ type?: EcoSiteType;
6
+ pagination?: PaginationInput;
7
+ }
8
+ export declare const useEcoSites: (filters?: SiteFilters) => import('@tanstack/react-query').UseQueryResult<EcoConnection<EcoSite>, Error>;
9
+ export declare const useEcoSite: (id: string | undefined) => import('@tanstack/react-query').UseQueryResult<EcoSite | null, Error>;
10
+ export declare const useEcoCreateSite: () => import('@tanstack/react-query').UseMutationResult<EcoSite, Error, EcoCreateSiteInput, unknown>;
11
+ export declare const useEcoUpdateSite: () => import('@tanstack/react-query').UseMutationResult<EcoSite, Error, {
12
+ id: string;
13
+ input: EcoUpdateSiteInput;
14
+ }, unknown>;
15
+ export declare const useEcoArchiveSite: () => import('@tanstack/react-query').UseMutationResult<boolean, Error, string, unknown>;
16
+ export interface SensorFilters {
17
+ siteId?: string;
18
+ kind?: EcoSensorKind;
19
+ status?: EcoSensorStatus;
20
+ }
21
+ export declare const useEcoSensors: (filters?: SensorFilters) => import('@tanstack/react-query').UseQueryResult<EcoSensor[], Error>;
22
+ export declare const useEcoCreateSensor: () => import('@tanstack/react-query').UseMutationResult<EcoSensor, Error, EcoCreateSensorInput, unknown>;
23
+ export declare const useEcoSetSensorStatus: () => import('@tanstack/react-query').UseMutationResult<EcoSensor, Error, {
24
+ id: string;
25
+ status: EcoSensorStatus;
26
+ }, unknown>;
27
+ export interface MeasurementFilters {
28
+ siteId?: string;
29
+ sensorId?: string;
30
+ parameter?: string;
31
+ breachesOnly?: boolean;
32
+ pagination?: PaginationInput;
33
+ }
34
+ export declare const useEcoMeasurements: (filters?: MeasurementFilters) => import('@tanstack/react-query').UseQueryResult<EcoConnection<EcoMeasurement>, Error>;
35
+ export declare const useEcoRecordMeasurement: () => import('@tanstack/react-query').UseMutationResult<EcoMeasurement, Error, EcoRecordMeasurementInput, unknown>;
36
+ export declare const useEcoThresholds: (siteId?: string) => import('@tanstack/react-query').UseQueryResult<EcoAlertThreshold[], Error>;
37
+ export declare const useEcoCreateThreshold: () => import('@tanstack/react-query').UseMutationResult<EcoAlertThreshold, Error, EcoCreateThresholdInput, unknown>;
38
+ export declare const useEcoSetThresholdActive: () => import('@tanstack/react-query').UseMutationResult<EcoAlertThreshold, Error, {
39
+ id: string;
40
+ isActive: boolean;
41
+ }, unknown>;
42
+ export interface SpeciesFilters {
43
+ taxonGroup?: EcoTaxonGroup;
44
+ conservationStatus?: EcoConservationStatus;
45
+ priorityOnly?: boolean;
46
+ pagination?: PaginationInput;
47
+ }
48
+ export declare const useEcoSpecies: (filters?: SpeciesFilters) => import('@tanstack/react-query').UseQueryResult<EcoConnection<EcoSpecies>, Error>;
49
+ export declare const useEcoSpeciesDetail: (id: string | undefined) => import('@tanstack/react-query').UseQueryResult<EcoSpecies | null, Error>;
50
+ export declare const useEcoCreateSpecies: () => import('@tanstack/react-query').UseMutationResult<EcoSpecies, Error, EcoCreateSpeciesInput, unknown>;
51
+ export declare const useEcoUpdateSpecies: () => import('@tanstack/react-query').UseMutationResult<EcoSpecies, Error, {
52
+ id: string;
53
+ input: EcoUpdateSpeciesInput;
54
+ }, unknown>;
55
+ export declare const useEcoArchiveSpecies: () => import('@tanstack/react-query').UseMutationResult<boolean, Error, string, unknown>;
56
+ export interface ObservationFilters {
57
+ speciesId?: string;
58
+ siteId?: string;
59
+ pagination?: PaginationInput;
60
+ }
61
+ export declare const useEcoObservations: (filters?: ObservationFilters) => import('@tanstack/react-query').UseQueryResult<EcoConnection<EcoObservation>, Error>;
62
+ export declare const useEcoRecordObservation: () => import('@tanstack/react-query').UseMutationResult<EcoObservation, Error, EcoRecordObservationInput, unknown>;
63
+ export declare const useEcoHabitatProjects: (status?: EcoHabitatProjectStatus) => import('@tanstack/react-query').UseQueryResult<EcoHabitatProject[], Error>;
64
+ export declare const useEcoHabitatProject: (id: string | undefined) => import('@tanstack/react-query').UseQueryResult<EcoHabitatProject | null, Error>;
65
+ export declare const useEcoCreateHabitatProject: () => import('@tanstack/react-query').UseMutationResult<EcoHabitatProject, Error, EcoCreateHabitatProjectInput, unknown>;
66
+ export declare const useEcoTransitionHabitatProject: () => import('@tanstack/react-query').UseMutationResult<EcoHabitatProject, Error, {
67
+ id: string;
68
+ status: EcoHabitatProjectStatus;
69
+ }, unknown>;
70
+ export declare const useEcoLogRestorationActivity: () => import('@tanstack/react-query').UseMutationResult<EcoRestorationActivity, Error, EcoLogRestorationActivityInput, unknown>;
71
+ export declare const useEcoEmissionFactors: (scope?: EcoEmissionScope, activeOnly?: boolean) => import('@tanstack/react-query').UseQueryResult<EcoEmissionFactor[], Error>;
72
+ export declare const useEcoCreateEmissionFactor: () => import('@tanstack/react-query').UseMutationResult<EcoEmissionFactor, Error, EcoCreateEmissionFactorInput, unknown>;
73
+ export interface CarbonEntryFilters {
74
+ scope?: EcoEmissionScope;
75
+ siteId?: string;
76
+ status?: EcoCarbonEntryStatus;
77
+ pagination?: PaginationInput;
78
+ }
79
+ export declare const useEcoCarbonEntries: (filters?: CarbonEntryFilters) => import('@tanstack/react-query').UseQueryResult<EcoConnection<EcoCarbonEntry>, Error>;
80
+ /** Total CO2e by scope + grand total, in one aliased query. */
81
+ export interface EcoCarbonTotals {
82
+ total: number;
83
+ scope1: number;
84
+ scope2: number;
85
+ scope3: number;
86
+ }
87
+ export declare const useEcoCarbonTotals: (siteId?: string) => import('@tanstack/react-query').UseQueryResult<EcoCarbonTotals, Error>;
88
+ export declare const useEcoRecordCarbonEntry: () => import('@tanstack/react-query').UseMutationResult<EcoCarbonEntry, Error, EcoRecordCarbonEntryInput, unknown>;
89
+ export declare const useEcoVerifyCarbonEntry: () => import('@tanstack/react-query').UseMutationResult<EcoCarbonEntry, Error, string, unknown>;
90
+ export declare const useEcoReductionTargets: (status?: EcoReductionTargetStatus) => import('@tanstack/react-query').UseQueryResult<EcoReductionTarget[], Error>;
91
+ export declare const useEcoCreateReductionTarget: () => import('@tanstack/react-query').UseMutationResult<EcoReductionTarget, Error, EcoCreateReductionTargetInput, unknown>;
92
+ export declare const useEcoSetReductionTargetStatus: () => import('@tanstack/react-query').UseMutationResult<EcoReductionTarget, Error, {
93
+ id: string;
94
+ status: EcoReductionTargetStatus;
95
+ }, unknown>;
96
+ export declare const useEcoReports: (status?: EcoReportStatus, pagination?: PaginationInput) => import('@tanstack/react-query').UseQueryResult<EcoConnection<EcoReport>, Error>;
97
+ export declare const useEcoReport: (id: string | undefined) => import('@tanstack/react-query').UseQueryResult<EcoReport | null, Error>;
98
+ export declare const useEcoCreateReport: () => import('@tanstack/react-query').UseMutationResult<EcoReport, Error, EcoCreateReportInput, unknown>;
99
+ export declare const useEcoAddReportLineItem: () => import('@tanstack/react-query').UseMutationResult<EcoReportLineItem, Error, EcoAddReportLineItemInput, unknown>;
100
+ export declare const useEcoPublishReport: () => import('@tanstack/react-query').UseMutationResult<EcoReport, Error, {
101
+ id: string;
102
+ fileId?: string | null;
103
+ }, unknown>;
104
+ //# sourceMappingURL=useEcoImpactHubApi.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useEcoImpactHubApi.d.ts","sourceRoot":"","sources":["../../../src/ecoimpacthub/hooks/useEcoImpactHubApi.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * EcoImpactHub — wspace-tags-svc UniversalTag REUSE hooks (Integration C).
3
+ * @module ecoimpacthub/hooks/useEcoTags
4
+ *
5
+ * The eco svc does NOT expose a tags field, so we drive the platform tag
6
+ * assignment store directly (approach (b) in the reuse audit) — no eco-svc
7
+ * change. All operations are composed into the WORKSPACE supergraph:
8
+ * - `getEntityTags(entityType, entityId)` → current assignments (display)
9
+ * - `searchTags(query)` → pick an existing tag
10
+ * - `createTag(input)` → create a new tag (needs a vocabulary)
11
+ * - `assignTag(input)` → link tag ↔ entity
12
+ * - `removeTagAssignment(id)` → unlink
13
+ *
14
+ * `createTag` requires a `vocabularyId`; we resolve a stable, workspace-scoped
15
+ * "ecoimpacthub" vocabulary (`getVocabularyByKey`, creating it on first use).
16
+ *
17
+ * Transport reuses `wspaceFetch` from `useEcoFiles`. Lives in a separate file;
18
+ * `useEcoImpactHubApi.ts` is untouched.
19
+ */
20
+ export interface EcoTag {
21
+ id: string;
22
+ label: string;
23
+ color: string | null;
24
+ key: string;
25
+ }
26
+ export interface EcoTagAssignment {
27
+ id: string;
28
+ tag: EcoTag;
29
+ }
30
+ /** Current tag assignments for an eco entity. */
31
+ export declare const useEcoEntityTags: (entityType: string, entityId: string | undefined) => import('@tanstack/react-query').UseQueryResult<EcoTagAssignment[], Error>;
32
+ /** Search existing tags (enabled only for a non-empty query). */
33
+ export declare const useEcoTagSearch: (query: string) => import('@tanstack/react-query').UseQueryResult<EcoTag[], Error>;
34
+ /** Assign an existing tag to the entity. */
35
+ export declare const useEcoAssignTag: (entityType: string, entityId: string) => import('@tanstack/react-query').UseMutationResult<{
36
+ id: string;
37
+ }, Error, string, unknown>;
38
+ /** Remove a tag assignment by its assignment id. */
39
+ export declare const useEcoRemoveTagAssignment: (entityType: string, entityId: string) => import('@tanstack/react-query').UseMutationResult<boolean, Error, string, unknown>;
40
+ /** Create a new tag from a free-text label and assign it to the entity. */
41
+ export declare const useEcoCreateAndAssignTag: (entityType: string, entityId: string) => import('@tanstack/react-query').UseMutationResult<{
42
+ id: string;
43
+ }, Error, string, unknown>;
44
+ //# sourceMappingURL=useEcoTags.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useEcoTags.d.ts","sourceRoot":"","sources":["../../../src/ecoimpacthub/hooks/useEcoTags.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAOH,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;CACb;AAiBD,iDAAiD;AACjD,eAAO,MAAM,gBAAgB,GAAI,YAAY,MAAM,EAAE,UAAU,MAAM,GAAG,SAAS,8EAmBhF,CAAC;AAEF,iEAAiE;AACjE,eAAO,MAAM,eAAe,GAAI,OAAO,MAAM,oEAiB5C,CAAC;AAEF,4CAA4C;AAC5C,eAAO,MAAM,eAAe,GAAI,YAAY,MAAM,EAAE,UAAU,MAAM;QAKZ,MAAM;0BAW7D,CAAC;AAEF,oDAAoD;AACpD,eAAO,MAAM,yBAAyB,GAAI,YAAY,MAAM,EAAE,UAAU,MAAM,uFAgB7E,CAAC;AA+BF,2EAA2E;AAC3E,eAAO,MAAM,wBAAwB,GAAI,YAAY,MAAM,EAAE,UAAU,MAAM;QAalB,MAAM;0BAkBhE,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * EcoImpactHub Module Exports
3
+ * @module ecoimpacthub
4
+ */
5
+ export { EcoImpactHubRoot } from './EcoImpactHubRoot';
6
+ export type { EcoImpactHubRootProps, NavItem, FooterItem, TrendDirection } from './types';
7
+ export { EcoImpactHubProvider, useEcoImpactHub } from './context';
8
+ export { useSandboxAssistantTransport, type AssistantTransport } from './services';
9
+ export { cn, joinPath, formatDate, formatDateTime, formatRelativeTime, formatNumber, formatQuantity, formatPercent, formatCo2e, formatCoords, formatEnumLabel, } from './utils';
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ecoimpacthub/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAGtD,YAAY,EAAE,qBAAqB,EAAE,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAG1F,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAGlE,OAAO,EAAE,4BAA4B,EAAE,KAAK,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAGnF,OAAO,EACL,EAAE,EACF,QAAQ,EACR,UAAU,EACV,cAAc,EACd,kBAAkB,EAClB,YAAY,EACZ,cAAc,EACd,aAAa,EACb,UAAU,EACV,YAAY,EACZ,eAAe,GAChB,MAAM,SAAS,CAAC"}
@@ -4,3 +4,5 @@ import "./utils/cn.js";
4
4
  import "./utils/formatters.js";
5
5
  import "./context/index.js";
6
6
  import "./EcoImpactHubRoot.js";
7
+ import "./services/createSandboxAssistantTransport.js";
8
+ import "./services/index.js";
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Dashboard — EcoImpactHub environment, conservation & sustainability overview.
3
+ * @module ecoimpacthub/pages
4
+ *
5
+ * KPIs are aggregated client-side from the real `eco*` list endpoints plus the
6
+ * `ecoCarbonTotalKg` aggregate (by scope). Widgets show recent field
7
+ * observations and open threshold breaches. No mock data.
8
+ */
9
+ export declare function DashboardPage(): import("react/jsx-runtime").JSX.Element;
10
+ //# sourceMappingURL=DashboardPage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DashboardPage.d.ts","sourceRoot":"","sources":["../../../src/ecoimpacthub/pages/DashboardPage.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAkEH,wBAAgB,aAAa,4CAmd5B"}
@@ -0,0 +1,9 @@
1
+ import { FC } from 'react';
2
+
3
+ interface ConservationBadgeProps {
4
+ status: string;
5
+ className?: string;
6
+ }
7
+ export declare const ConservationBadge: FC<ConservationBadgeProps>;
8
+ export {};
9
+ //# sourceMappingURL=ConservationBadge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConservationBadge.d.ts","sourceRoot":"","sources":["../../../../src/ecoimpacthub/pages/_shared/ConservationBadge.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AA+BhC,UAAU,sBAAsB;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,iBAAiB,EAAE,EAAE,CAAC,sBAAsB,CASxD,CAAC"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * EvidenceThumb — an inline evidence-photo thumbnail for a field observation.
3
+ * @module ecoimpacthub/pages/_shared
4
+ *
5
+ * Observation queries only select `evidence { id }`, so this resolves the
6
+ * platform File via `useEcoFile(id)` (wspace-files-svc `getFile`, Integration A)
7
+ * to obtain a signed `downloadUrl` + `mimeType`, then renders:
8
+ * - an actual <img> thumbnail (linked to the full asset) for image evidence,
9
+ * - an audio / document glyph tile (linked) for non-image evidence,
10
+ * - and graceful, tone-muted fallback tiles for: no evidence, still loading,
11
+ * unresolvable file, or a broken image URL.
12
+ *
13
+ * The `useEcoFile` query is disabled when there is no `fileId`, so only rows
14
+ * that actually carry evidence trigger a fetch (and React Query dedupes by id).
15
+ */
16
+ interface EvidenceThumbProps {
17
+ fileId?: string | null;
18
+ /** Descriptive alt text (e.g. the species name) for the rendered image. */
19
+ alt?: string;
20
+ }
21
+ export declare function EvidenceThumb({ fileId, alt }: EvidenceThumbProps): import("react/jsx-runtime").JSX.Element;
22
+ export {};
23
+ //# sourceMappingURL=EvidenceThumb.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EvidenceThumb.d.ts","sourceRoot":"","sources":["../../../../src/ecoimpacthub/pages/_shared/EvidenceThumb.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAUH,UAAU,kBAAkB;IAC1B,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,2EAA2E;IAC3E,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,aAAa,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,kBAAkB,2CAsFhE"}
@@ -0,0 +1,9 @@
1
+ import { FC } from 'react';
2
+
3
+ interface MethodBadgeProps {
4
+ method: string;
5
+ className?: string;
6
+ }
7
+ export declare const MethodBadge: FC<MethodBadgeProps>;
8
+ export {};
9
+ //# sourceMappingURL=MethodBadge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MethodBadge.d.ts","sourceRoot":"","sources":["../../../../src/ecoimpacthub/pages/_shared/MethodBadge.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAkChC,UAAU,gBAAgB;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,WAAW,EAAE,EAAE,CAAC,gBAAgB,CAe5C,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { FC } from 'react';
2
+
3
+ interface TaxonChipProps {
4
+ group: string;
5
+ className?: string;
6
+ }
7
+ export declare const TaxonChip: FC<TaxonChipProps>;
8
+ export {};
9
+ //# sourceMappingURL=TaxonChip.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TaxonChip.d.ts","sourceRoot":"","sources":["../../../../src/ecoimpacthub/pages/_shared/TaxonChip.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AA4BhC,UAAU,cAAc;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,SAAS,EAAE,EAAE,CAAC,cAAc,CAaxC,CAAC"}
@@ -0,0 +1,27 @@
1
+ import { ReactNode } from 'react';
2
+ import { EcoHabitatProjectStatus, EcoReportFramework, EcoRestorationActivityType } from '../types';
3
+
4
+ export type PillVariant = 'success' | 'warning' | 'destructive' | 'secondary' | 'info' | 'outline';
5
+ interface PillProps {
6
+ variant?: PillVariant;
7
+ /** Adds a subtle, reduced-motion-safe "live" pulse dot. */
8
+ live?: boolean;
9
+ className?: string;
10
+ children: ReactNode;
11
+ }
12
+ /** Rounded status pill — visually identical to the shared StatusBadge. */
13
+ export declare function Pill({ variant, live, className, children }: PillProps): import("react/jsx-runtime").JSX.Element;
14
+ export declare function LifecycleBadge({ status, className, }: {
15
+ status: EcoHabitatProjectStatus;
16
+ className?: string;
17
+ }): import("react/jsx-runtime").JSX.Element;
18
+ export declare function ActivityTypeBadge({ type }: {
19
+ type: EcoRestorationActivityType;
20
+ }): import("react/jsx-runtime").JSX.Element;
21
+ export declare const FRAMEWORK_LABELS: Record<EcoReportFramework, string>;
22
+ export declare function FrameworkBadge({ framework, className, }: {
23
+ framework: EcoReportFramework;
24
+ className?: string;
25
+ }): import("react/jsx-runtime").JSX.Element;
26
+ export {};
27
+ //# sourceMappingURL=badges.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"badges.d.ts","sourceRoot":"","sources":["../../../src/ecoimpacthub/pages/badges.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvC,OAAO,KAAK,EACV,uBAAuB,EACvB,kBAAkB,EAClB,0BAA0B,EAC3B,MAAM,UAAU,CAAC;AAElB,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,SAAS,GAAG,aAAa,GAAG,WAAW,GAAG,MAAM,GAAG,SAAS,CAAC;AAWnG,UAAU,SAAS;IACjB,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,2DAA2D;IAC3D,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,0EAA0E;AAC1E,wBAAgB,IAAI,CAAC,EAAE,OAAqB,EAAE,IAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,SAAS,2CAkB3F;AAiBD,wBAAgB,cAAc,CAAC,EAC7B,MAAM,EACN,SAAS,GACV,EAAE;IACD,MAAM,EAAE,uBAAuB,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,2CAUA;AAgBD,wBAAgB,iBAAiB,CAAC,EAAE,IAAI,EAAE,EAAE;IAAE,IAAI,EAAE,0BAA0B,CAAA;CAAE,2CAE/E;AAMD,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,kBAAkB,EAAE,MAAM,CAO/D,CAAC;AAEF,wBAAgB,cAAc,CAAC,EAC7B,SAAS,EACT,SAAS,GACV,EAAE;IACD,SAAS,EAAE,kBAAkB,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,2CAMA"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Carbon & Sustainability — the GHG accounting hub.
3
+ * @module ecoimpacthub/pages/carbon
4
+ *
5
+ * A KPI strip of Scope 1/2/3 + total footprint (from `ecoCarbonTotalKg`) over a
6
+ * three-tab workspace:
7
+ * - Ledger — `ecoListCarbonEntries` (+ `ecoRecordCarbonEntry` / `ecoVerifyCarbonEntry`)
8
+ * - Emission factors — `ecoListEmissionFactors` (+ `ecoCreateEmissionFactor`)
9
+ * - Reduction targets — `ecoListReductionTargets` (+ `ecoCreateReductionTarget`,
10
+ * `ecoSetReductionTargetStatus`)
11
+ *
12
+ * CO₂e (`co2eKg`) is computed server-side from `activityValue × factor`. No mock data.
13
+ */
14
+ export declare function CarbonPage(): import("react/jsx-runtime").JSX.Element;
15
+ //# sourceMappingURL=CarbonPage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CarbonPage.d.ts","sourceRoot":"","sources":["../../../../src/ecoimpacthub/pages/carbon/CarbonPage.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAoKH,wBAAgB,UAAU,4CAg/BzB"}
@@ -0,0 +1,47 @@
1
+ import { FC } from 'react';
2
+ import { EcoEmissionScope } from '../types';
3
+
4
+ /**
5
+ * Graduated teal → emerald scale. Every token here resolves to a green/teal in
6
+ * ALL Boff themes (accent-teal is always teal; chart-positive + success-text are
7
+ * always the "positive" green), so the footprint palette never drifts to the
8
+ * brand-variable blue/purple that `chart-1` / `action-primary-bg` can take.
9
+ */
10
+ export declare const SCOPE_HUE: Record<EcoEmissionScope, string>;
11
+ export declare const SCOPE_LABEL: Record<EcoEmissionScope, string>;
12
+ export declare const SCOPE_ORDER: EcoEmissionScope[];
13
+ interface MeterProps {
14
+ /** 0–100. */
15
+ value: number;
16
+ /** Fill colour — a semantic token `var(--color-*)` string. */
17
+ color: string;
18
+ className?: string;
19
+ /** Height in px. */
20
+ height?: number;
21
+ }
22
+ /**
23
+ * A thin rounded progress meter whose fill colour is an arbitrary semantic
24
+ * token (unlike the class-based {@link MiniBar}). Used for per-scope share and
25
+ * reduction-target progress so the fill can be tinted by scope / status.
26
+ */
27
+ export declare const Meter: FC<MeterProps>;
28
+ interface ScopeSplitBarProps {
29
+ scope1: number;
30
+ scope2: number;
31
+ scope3: number;
32
+ className?: string;
33
+ height?: number;
34
+ }
35
+ /** A single thin rounded meter that splits the total footprint into 3 scopes. */
36
+ export declare const ScopeSplitBar: FC<ScopeSplitBarProps>;
37
+ interface ScopeLegendProps {
38
+ data: {
39
+ scope: EcoEmissionScope;
40
+ kg: number;
41
+ }[];
42
+ className?: string;
43
+ }
44
+ /** Colour-swatch legend + per-scope value shown beneath the footprint chart. */
45
+ export declare const ScopeLegend: FC<ScopeLegendProps>;
46
+ export {};
47
+ //# sourceMappingURL=carbonVisuals.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"carbonVisuals.d.ts","sourceRoot":"","sources":["../../../src/ecoimpacthub/pages/carbonVisuals.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAGhC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAEjD;;;;;GAKG;AACH,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAItD,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAIxD,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,gBAAgB,EAAsC,CAAC;AAIjF,UAAU,UAAU;IAClB,aAAa;IACb,KAAK,EAAE,MAAM,CAAC;IACd,8DAA8D;IAC9D,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oBAAoB;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;GAIG;AACH,eAAO,MAAM,KAAK,EAAE,EAAE,CAAC,UAAU,CAiBhC,CAAC;AAIF,UAAU,kBAAkB;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,iFAAiF;AACjF,eAAO,MAAM,aAAa,EAAE,EAAE,CAAC,kBAAkB,CAsChD,CAAC;AAIF,UAAU,gBAAgB;IACxB,IAAI,EAAE;QAAE,KAAK,EAAE,gBAAgB,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAChD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,gFAAgF;AAChF,eAAO,MAAM,WAAW,EAAE,EAAE,CAAC,gBAAgB,CAmB5C,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Habitat project detail — overview, lifecycle-progress, transitions & activities.
3
+ * @module ecoimpacthub/pages/habitat
4
+ *
5
+ * Reads `ecoHabitatProject` (+ nested activities); writes
6
+ * `ecoTransitionHabitatProject`, `ecoLogRestorationActivity`. The hero is
7
+ * balanced into three tidy cards — overview, lifecycle-progress (a status-derived
8
+ * radial ring + stepper, since the schema has no numeric progress) and
9
+ * advance-project. Tags are driven via the platform tag store (no eco-svc change).
10
+ */
11
+ export declare function HabitatProjectDetailPage(): import("react/jsx-runtime").JSX.Element;
12
+ //# sourceMappingURL=HabitatProjectDetailPage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HabitatProjectDetailPage.d.ts","sourceRoot":"","sources":["../../../../src/ecoimpacthub/pages/habitat/HabitatProjectDetailPage.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAmGH,wBAAgB,wBAAwB,4CA6VvC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Habitat projects — list, filter, and create restoration & conservation projects.
3
+ * @module ecoimpacthub/pages/habitat
4
+ *
5
+ * Reads `ecoListHabitatProjects` (plain array); writes `ecoCreateHabitatProject`.
6
+ */
7
+ export declare function HabitatProjectsPage(): import("react/jsx-runtime").JSX.Element;
8
+ //# sourceMappingURL=HabitatProjectsPage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HabitatProjectsPage.d.ts","sourceRoot":"","sources":["../../../../src/ecoimpacthub/pages/habitat/HabitatProjectsPage.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAoEH,wBAAgB,mBAAmB,4CA4RlC"}
@@ -0,0 +1,6 @@
1
+ import { EcoHabitatProjectStatus } from '../../types';
2
+
3
+ export declare function LifecycleProgress({ status }: {
4
+ status: EcoHabitatProjectStatus;
5
+ }): import("react/jsx-runtime").JSX.Element;
6
+ //# sourceMappingURL=LifecycleProgress.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LifecycleProgress.d.ts","sourceRoot":"","sources":["../../../../src/ecoimpacthub/pages/habitat/LifecycleProgress.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AA6J3D,wBAAgB,iBAAiB,CAAC,EAAE,MAAM,EAAE,EAAE;IAAE,MAAM,EAAE,uBAAuB,CAAA;CAAE,2CAahF"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Monitoring — a cross-site hub for environmental measurements, sensors &
3
+ * alert thresholds.
4
+ * @module ecoimpacthub/pages/monitoring
5
+ *
6
+ * Reads `ecoListMeasurements`, `ecoListSensors`, `ecoListThresholds` (and
7
+ * `ecoListSites` for name lookups); writes `ecoRecordMeasurement`,
8
+ * `ecoCreateSensor`, `ecoSetSensorStatus`, `ecoCreateThreshold`,
9
+ * `ecoSetThresholdActive`.
10
+ */
11
+ export declare function MonitoringPage(): import("react/jsx-runtime").JSX.Element;
12
+ //# sourceMappingURL=MonitoringPage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MonitoringPage.d.ts","sourceRoot":"","sources":["../../../../src/ecoimpacthub/pages/monitoring/MonitoringPage.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAkFH,wBAAgB,cAAc,4CAm2B7B"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Observations — a cross-species / cross-site field-observation feed.
3
+ * @module ecoimpacthub/pages/observations
4
+ *
5
+ * Reads `ecoListObservations` (which selects the related species inline, so
6
+ * `o.species?.commonName` is available per item); writes `ecoRecordObservation`.
7
+ * Site & species name lookups are built from the `ecoListSites` /
8
+ * `ecoListSpecies` connections. No mock data.
9
+ */
10
+ export declare function ObservationsPage(): import("react/jsx-runtime").JSX.Element;
11
+ //# sourceMappingURL=ObservationsPage.d.ts.map