@burdenoff/microfe-ecoimpacthub 2026.720.3 → 2026.720.5

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 (496) hide show
  1. package/dist/_virtual/_rolldown/runtime.js +1 -1
  2. package/dist/ecoimpacthub/EcoImpactHubRoot.js.map +1 -1
  3. package/dist/ecoimpacthub/EcoImpactHubRoutes.js.map +1 -1
  4. package/dist/ecoimpacthub/components/DashboardCustomizerDialog.d.ts +11 -0
  5. package/dist/ecoimpacthub/components/DashboardCustomizerDialog.d.ts.map +1 -0
  6. package/dist/ecoimpacthub/components/DashboardCustomizerDialog.js +182 -0
  7. package/dist/ecoimpacthub/components/DashboardCustomizerDialog.js.map +1 -0
  8. package/dist/ecoimpacthub/components/DataTable.js.map +1 -1
  9. package/dist/ecoimpacthub/components/EcoDiscussion.js.map +1 -1
  10. package/dist/ecoimpacthub/components/EcoTags.js.map +1 -1
  11. package/dist/ecoimpacthub/components/EmptyState.js.map +1 -1
  12. package/dist/ecoimpacthub/components/EvidenceUpload.js.map +1 -1
  13. package/dist/ecoimpacthub/components/FeatureFlagGate.js.map +1 -1
  14. package/dist/ecoimpacthub/components/FileLink.js.map +1 -1
  15. package/dist/ecoimpacthub/components/FilterTabs.js.map +1 -1
  16. package/dist/ecoimpacthub/components/MetricsCard.js.map +1 -1
  17. package/dist/ecoimpacthub/components/MiniBar.js.map +1 -1
  18. package/dist/ecoimpacthub/components/PageLayout.js.map +1 -1
  19. package/dist/ecoimpacthub/components/Pagination.js.map +1 -1
  20. package/dist/ecoimpacthub/components/StateViews.js.map +1 -1
  21. package/dist/ecoimpacthub/components/StatusBadge.js.map +1 -1
  22. package/dist/ecoimpacthub/components/Tabs.js.map +1 -1
  23. package/dist/ecoimpacthub/context/EcoImpactHubContext.js.map +1 -1
  24. package/dist/ecoimpacthub/hooks/index.d.ts +1 -0
  25. package/dist/ecoimpacthub/hooks/index.d.ts.map +1 -1
  26. package/dist/ecoimpacthub/hooks/index.js +1 -0
  27. package/dist/ecoimpacthub/hooks/useCursorPager.js.map +1 -1
  28. package/dist/ecoimpacthub/hooks/useDashboardLayout.d.ts +29 -0
  29. package/dist/ecoimpacthub/hooks/useDashboardLayout.d.ts.map +1 -0
  30. package/dist/ecoimpacthub/hooks/useDashboardLayout.js +95 -0
  31. package/dist/ecoimpacthub/hooks/useDashboardLayout.js.map +1 -0
  32. package/dist/ecoimpacthub/hooks/useEcoComments.js.map +1 -1
  33. package/dist/ecoimpacthub/hooks/useEcoFiles.js.map +1 -1
  34. package/dist/ecoimpacthub/hooks/useEcoImpactHubApi.js.map +1 -1
  35. package/dist/ecoimpacthub/hooks/useEcoTags.js.map +1 -1
  36. package/dist/ecoimpacthub/pages/DashboardPage.d.ts +7 -0
  37. package/dist/ecoimpacthub/pages/DashboardPage.d.ts.map +1 -1
  38. package/dist/ecoimpacthub/pages/DashboardPage.js +505 -447
  39. package/dist/ecoimpacthub/pages/DashboardPage.js.map +1 -1
  40. package/dist/ecoimpacthub/pages/_shared/ConservationBadge.js.map +1 -1
  41. package/dist/ecoimpacthub/pages/_shared/EvidenceThumb.js.map +1 -1
  42. package/dist/ecoimpacthub/pages/_shared/MethodBadge.js.map +1 -1
  43. package/dist/ecoimpacthub/pages/_shared/TaxonChip.js.map +1 -1
  44. package/dist/ecoimpacthub/pages/badges.js.map +1 -1
  45. package/dist/ecoimpacthub/pages/carbon/CarbonPage.js.map +1 -1
  46. package/dist/ecoimpacthub/pages/carbonVisuals.js.map +1 -1
  47. package/dist/ecoimpacthub/pages/habitat/HabitatProjectDetailPage.js.map +1 -1
  48. package/dist/ecoimpacthub/pages/habitat/HabitatProjectsPage.js.map +1 -1
  49. package/dist/ecoimpacthub/pages/habitat/LifecycleProgress.js.map +1 -1
  50. package/dist/ecoimpacthub/pages/monitoring/MonitoringPage.js.map +1 -1
  51. package/dist/ecoimpacthub/pages/observations/ObservationsPage.js.map +1 -1
  52. package/dist/ecoimpacthub/pages/reports/ReportDetailPage.js.map +1 -1
  53. package/dist/ecoimpacthub/pages/reports/ReportsPage.js.map +1 -1
  54. package/dist/ecoimpacthub/pages/sites/SiteDetailPage.js.map +1 -1
  55. package/dist/ecoimpacthub/pages/sites/SitesPage.js.map +1 -1
  56. package/dist/ecoimpacthub/pages/sites/siteTypeVisuals.js.map +1 -1
  57. package/dist/ecoimpacthub/pages/species/SpeciesDetailPage.js.map +1 -1
  58. package/dist/ecoimpacthub/pages/species/SpeciesPage.js.map +1 -1
  59. package/dist/ecoimpacthub/services/createSandboxAssistantTransport.d.ts.map +1 -1
  60. package/dist/ecoimpacthub/services/createSandboxAssistantTransport.js.map +1 -1
  61. package/dist/ecoimpacthub/types/index.d.ts.map +1 -1
  62. package/dist/ecoimpacthub/utils/cn.js.map +1 -1
  63. package/dist/ecoimpacthub/utils/formatters.js.map +1 -1
  64. package/dist/ecoimpacthub/utils/navigation.js.map +1 -1
  65. package/dist/node_modules/clsx/dist/clsx.js.map +1 -1
  66. package/dist/node_modules/d3-array/src/ascending.js.map +1 -1
  67. package/dist/node_modules/d3-array/src/bisect.js.map +1 -1
  68. package/dist/node_modules/d3-array/src/bisector.js.map +1 -1
  69. package/dist/node_modules/d3-array/src/descending.js.map +1 -1
  70. package/dist/node_modules/d3-array/src/max.js.map +1 -1
  71. package/dist/node_modules/d3-array/src/min.js.map +1 -1
  72. package/dist/node_modules/d3-array/src/number.js.map +1 -1
  73. package/dist/node_modules/d3-array/src/quantile.js.map +1 -1
  74. package/dist/node_modules/d3-array/src/quickselect.js.map +1 -1
  75. package/dist/node_modules/d3-array/src/range.js.map +1 -1
  76. package/dist/node_modules/d3-array/src/sort.js.map +1 -1
  77. package/dist/node_modules/d3-array/src/ticks.js.map +1 -1
  78. package/dist/node_modules/d3-color/src/color.js.map +1 -1
  79. package/dist/node_modules/d3-color/src/define.js.map +1 -1
  80. package/dist/node_modules/d3-format/src/defaultLocale.js.map +1 -1
  81. package/dist/node_modules/d3-format/src/exponent.js.map +1 -1
  82. package/dist/node_modules/d3-format/src/formatDecimal.js.map +1 -1
  83. package/dist/node_modules/d3-format/src/formatGroup.js.map +1 -1
  84. package/dist/node_modules/d3-format/src/formatNumerals.js.map +1 -1
  85. package/dist/node_modules/d3-format/src/formatPrefixAuto.js.map +1 -1
  86. package/dist/node_modules/d3-format/src/formatRounded.js.map +1 -1
  87. package/dist/node_modules/d3-format/src/formatSpecifier.js.map +1 -1
  88. package/dist/node_modules/d3-format/src/formatTrim.js.map +1 -1
  89. package/dist/node_modules/d3-format/src/formatTypes.js.map +1 -1
  90. package/dist/node_modules/d3-format/src/identity.js.map +1 -1
  91. package/dist/node_modules/d3-format/src/locale.js.map +1 -1
  92. package/dist/node_modules/d3-format/src/precisionFixed.js.map +1 -1
  93. package/dist/node_modules/d3-format/src/precisionPrefix.js.map +1 -1
  94. package/dist/node_modules/d3-format/src/precisionRound.js.map +1 -1
  95. package/dist/node_modules/d3-interpolate/src/array.js.map +1 -1
  96. package/dist/node_modules/d3-interpolate/src/basis.js.map +1 -1
  97. package/dist/node_modules/d3-interpolate/src/basisClosed.js.map +1 -1
  98. package/dist/node_modules/d3-interpolate/src/color.js.map +1 -1
  99. package/dist/node_modules/d3-interpolate/src/date.js.map +1 -1
  100. package/dist/node_modules/d3-interpolate/src/number.js.map +1 -1
  101. package/dist/node_modules/d3-interpolate/src/numberArray.js.map +1 -1
  102. package/dist/node_modules/d3-interpolate/src/object.js.map +1 -1
  103. package/dist/node_modules/d3-interpolate/src/piecewise.js.map +1 -1
  104. package/dist/node_modules/d3-interpolate/src/rgb.js.map +1 -1
  105. package/dist/node_modules/d3-interpolate/src/round.js.map +1 -1
  106. package/dist/node_modules/d3-interpolate/src/string.js.map +1 -1
  107. package/dist/node_modules/d3-interpolate/src/value.js.map +1 -1
  108. package/dist/node_modules/d3-path/src/path.js.map +1 -1
  109. package/dist/node_modules/d3-scale/src/band.js.map +1 -1
  110. package/dist/node_modules/d3-scale/src/constant.js.map +1 -1
  111. package/dist/node_modules/d3-scale/src/continuous.js.map +1 -1
  112. package/dist/node_modules/d3-scale/src/diverging.js.map +1 -1
  113. package/dist/node_modules/d3-scale/src/identity.js.map +1 -1
  114. package/dist/node_modules/d3-scale/src/init.js.map +1 -1
  115. package/dist/node_modules/d3-scale/src/linear.js.map +1 -1
  116. package/dist/node_modules/d3-scale/src/log.js.map +1 -1
  117. package/dist/node_modules/d3-scale/src/nice.js.map +1 -1
  118. package/dist/node_modules/d3-scale/src/number.js.map +1 -1
  119. package/dist/node_modules/d3-scale/src/ordinal.js.map +1 -1
  120. package/dist/node_modules/d3-scale/src/pow.js.map +1 -1
  121. package/dist/node_modules/d3-scale/src/quantile.js.map +1 -1
  122. package/dist/node_modules/d3-scale/src/quantize.js.map +1 -1
  123. package/dist/node_modules/d3-scale/src/radial.js.map +1 -1
  124. package/dist/node_modules/d3-scale/src/sequential.js.map +1 -1
  125. package/dist/node_modules/d3-scale/src/sequentialQuantile.js.map +1 -1
  126. package/dist/node_modules/d3-scale/src/symlog.js.map +1 -1
  127. package/dist/node_modules/d3-scale/src/threshold.js.map +1 -1
  128. package/dist/node_modules/d3-scale/src/tickFormat.js.map +1 -1
  129. package/dist/node_modules/d3-scale/src/time.js.map +1 -1
  130. package/dist/node_modules/d3-scale/src/utcTime.js.map +1 -1
  131. package/dist/node_modules/d3-shape/src/area.js.map +1 -1
  132. package/dist/node_modules/d3-shape/src/array.js.map +1 -1
  133. package/dist/node_modules/d3-shape/src/constant.js.map +1 -1
  134. package/dist/node_modules/d3-shape/src/curve/basis.js.map +1 -1
  135. package/dist/node_modules/d3-shape/src/curve/basisClosed.js.map +1 -1
  136. package/dist/node_modules/d3-shape/src/curve/basisOpen.js.map +1 -1
  137. package/dist/node_modules/d3-shape/src/curve/bump.js.map +1 -1
  138. package/dist/node_modules/d3-shape/src/curve/linear.js.map +1 -1
  139. package/dist/node_modules/d3-shape/src/curve/linearClosed.js.map +1 -1
  140. package/dist/node_modules/d3-shape/src/curve/monotone.js.map +1 -1
  141. package/dist/node_modules/d3-shape/src/curve/natural.js.map +1 -1
  142. package/dist/node_modules/d3-shape/src/curve/step.js.map +1 -1
  143. package/dist/node_modules/d3-shape/src/line.js.map +1 -1
  144. package/dist/node_modules/d3-shape/src/noop.js.map +1 -1
  145. package/dist/node_modules/d3-shape/src/offset/expand.js.map +1 -1
  146. package/dist/node_modules/d3-shape/src/offset/none.js.map +1 -1
  147. package/dist/node_modules/d3-shape/src/offset/silhouette.js.map +1 -1
  148. package/dist/node_modules/d3-shape/src/offset/wiggle.js.map +1 -1
  149. package/dist/node_modules/d3-shape/src/order/none.js.map +1 -1
  150. package/dist/node_modules/d3-shape/src/path.js.map +1 -1
  151. package/dist/node_modules/d3-shape/src/point.js.map +1 -1
  152. package/dist/node_modules/d3-shape/src/stack.js.map +1 -1
  153. package/dist/node_modules/d3-shape/src/symbol/circle.js.map +1 -1
  154. package/dist/node_modules/d3-shape/src/symbol/cross.js.map +1 -1
  155. package/dist/node_modules/d3-shape/src/symbol/diamond.js.map +1 -1
  156. package/dist/node_modules/d3-shape/src/symbol/square.js.map +1 -1
  157. package/dist/node_modules/d3-shape/src/symbol/star.js.map +1 -1
  158. package/dist/node_modules/d3-shape/src/symbol/triangle.js.map +1 -1
  159. package/dist/node_modules/d3-shape/src/symbol/wye.js.map +1 -1
  160. package/dist/node_modules/d3-shape/src/symbol.js.map +1 -1
  161. package/dist/node_modules/d3-time/src/day.js.map +1 -1
  162. package/dist/node_modules/d3-time/src/hour.js.map +1 -1
  163. package/dist/node_modules/d3-time/src/interval.js.map +1 -1
  164. package/dist/node_modules/d3-time/src/millisecond.js.map +1 -1
  165. package/dist/node_modules/d3-time/src/minute.js.map +1 -1
  166. package/dist/node_modules/d3-time/src/month.js.map +1 -1
  167. package/dist/node_modules/d3-time/src/second.js.map +1 -1
  168. package/dist/node_modules/d3-time/src/ticks.js.map +1 -1
  169. package/dist/node_modules/d3-time/src/week.js.map +1 -1
  170. package/dist/node_modules/d3-time/src/year.js.map +1 -1
  171. package/dist/node_modules/d3-time-format/src/defaultLocale.js.map +1 -1
  172. package/dist/node_modules/d3-time-format/src/locale.js.map +1 -1
  173. package/dist/node_modules/decimal.js-light/decimal.js.map +1 -1
  174. package/dist/node_modules/eventemitter3/index.js.map +1 -1
  175. package/dist/node_modules/fast-equals/dist/es/index.js.map +1 -1
  176. package/dist/node_modules/internmap/src/index.js.map +1 -1
  177. package/dist/node_modules/lodash/_DataView.js.map +1 -1
  178. package/dist/node_modules/lodash/_Hash.js.map +1 -1
  179. package/dist/node_modules/lodash/_ListCache.js.map +1 -1
  180. package/dist/node_modules/lodash/_Map.js.map +1 -1
  181. package/dist/node_modules/lodash/_MapCache.js.map +1 -1
  182. package/dist/node_modules/lodash/_Promise.js.map +1 -1
  183. package/dist/node_modules/lodash/_Set.js.map +1 -1
  184. package/dist/node_modules/lodash/_SetCache.js.map +1 -1
  185. package/dist/node_modules/lodash/_Stack.js +2 -1
  186. package/dist/node_modules/lodash/_Stack.js.map +1 -1
  187. package/dist/node_modules/lodash/_Symbol.js.map +1 -1
  188. package/dist/node_modules/lodash/_Uint8Array.js.map +1 -1
  189. package/dist/node_modules/lodash/_WeakMap.js.map +1 -1
  190. package/dist/node_modules/lodash/_apply.js.map +1 -1
  191. package/dist/node_modules/lodash/_arrayEvery.js.map +1 -1
  192. package/dist/node_modules/lodash/_arrayFilter.js.map +1 -1
  193. package/dist/node_modules/lodash/_arrayIncludes.js.map +1 -1
  194. package/dist/node_modules/lodash/_arrayIncludesWith.js.map +1 -1
  195. package/dist/node_modules/lodash/_arrayLikeKeys.js.map +1 -1
  196. package/dist/node_modules/lodash/_arrayMap.js.map +1 -1
  197. package/dist/node_modules/lodash/_arrayPush.js.map +1 -1
  198. package/dist/node_modules/lodash/_arraySome.js.map +1 -1
  199. package/dist/node_modules/lodash/_asciiToArray.js.map +1 -1
  200. package/dist/node_modules/lodash/_assocIndexOf.js.map +1 -1
  201. package/dist/node_modules/lodash/_baseAssignValue.js.map +1 -1
  202. package/dist/node_modules/lodash/_baseEach.js.map +1 -1
  203. package/dist/node_modules/lodash/_baseEvery.js.map +1 -1
  204. package/dist/node_modules/lodash/_baseExtremum.js.map +1 -1
  205. package/dist/node_modules/lodash/_baseFindIndex.js.map +1 -1
  206. package/dist/node_modules/lodash/_baseFlatten.js.map +1 -1
  207. package/dist/node_modules/lodash/_baseFor.js.map +1 -1
  208. package/dist/node_modules/lodash/_baseForOwn.js.map +1 -1
  209. package/dist/node_modules/lodash/_baseGet.js.map +1 -1
  210. package/dist/node_modules/lodash/_baseGetAllKeys.js.map +1 -1
  211. package/dist/node_modules/lodash/_baseGetTag.js.map +1 -1
  212. package/dist/node_modules/lodash/_baseGt.js.map +1 -1
  213. package/dist/node_modules/lodash/_baseHasIn.js.map +1 -1
  214. package/dist/node_modules/lodash/_baseIndexOf.js.map +1 -1
  215. package/dist/node_modules/lodash/_baseIsArguments.js.map +1 -1
  216. package/dist/node_modules/lodash/_baseIsEqual.js.map +1 -1
  217. package/dist/node_modules/lodash/_baseIsEqualDeep.js.map +1 -1
  218. package/dist/node_modules/lodash/_baseIsMatch.js.map +1 -1
  219. package/dist/node_modules/lodash/_baseIsNaN.js.map +1 -1
  220. package/dist/node_modules/lodash/_baseIsNative.js.map +1 -1
  221. package/dist/node_modules/lodash/_baseIsTypedArray.js.map +1 -1
  222. package/dist/node_modules/lodash/_baseIteratee.js.map +1 -1
  223. package/dist/node_modules/lodash/_baseKeys.js.map +1 -1
  224. package/dist/node_modules/lodash/_baseLt.js.map +1 -1
  225. package/dist/node_modules/lodash/_baseMap.js.map +1 -1
  226. package/dist/node_modules/lodash/_baseMatches.js.map +1 -1
  227. package/dist/node_modules/lodash/_baseMatchesProperty.js.map +1 -1
  228. package/dist/node_modules/lodash/_baseOrderBy.js.map +1 -1
  229. package/dist/node_modules/lodash/_baseProperty.js.map +1 -1
  230. package/dist/node_modules/lodash/_basePropertyDeep.js.map +1 -1
  231. package/dist/node_modules/lodash/_baseRange.js.map +1 -1
  232. package/dist/node_modules/lodash/_baseRest.js.map +1 -1
  233. package/dist/node_modules/lodash/_baseSetToString.js.map +1 -1
  234. package/dist/node_modules/lodash/_baseSlice.js.map +1 -1
  235. package/dist/node_modules/lodash/_baseSome.js.map +1 -1
  236. package/dist/node_modules/lodash/_baseSortBy.js.map +1 -1
  237. package/dist/node_modules/lodash/_baseTimes.js.map +1 -1
  238. package/dist/node_modules/lodash/_baseToString.js.map +1 -1
  239. package/dist/node_modules/lodash/_baseTrim.js.map +1 -1
  240. package/dist/node_modules/lodash/_baseUnary.js.map +1 -1
  241. package/dist/node_modules/lodash/_baseUniq.js.map +1 -1
  242. package/dist/node_modules/lodash/_cacheHas.js.map +1 -1
  243. package/dist/node_modules/lodash/_castPath.js.map +1 -1
  244. package/dist/node_modules/lodash/_castSlice.js.map +1 -1
  245. package/dist/node_modules/lodash/_compareAscending.js.map +1 -1
  246. package/dist/node_modules/lodash/_compareMultiple.js.map +1 -1
  247. package/dist/node_modules/lodash/_coreJsData.js.map +1 -1
  248. package/dist/node_modules/lodash/_createBaseEach.js.map +1 -1
  249. package/dist/node_modules/lodash/_createBaseFor.js.map +1 -1
  250. package/dist/node_modules/lodash/_createCaseFirst.js.map +1 -1
  251. package/dist/node_modules/lodash/_createFind.js.map +1 -1
  252. package/dist/node_modules/lodash/_createRange.js.map +1 -1
  253. package/dist/node_modules/lodash/_createSet.js.map +1 -1
  254. package/dist/node_modules/lodash/_defineProperty.js.map +1 -1
  255. package/dist/node_modules/lodash/_equalArrays.js.map +1 -1
  256. package/dist/node_modules/lodash/_equalByTag.js.map +1 -1
  257. package/dist/node_modules/lodash/_equalObjects.js.map +1 -1
  258. package/dist/node_modules/lodash/_freeGlobal.js.map +1 -1
  259. package/dist/node_modules/lodash/_getAllKeys.js.map +1 -1
  260. package/dist/node_modules/lodash/_getMapData.js.map +1 -1
  261. package/dist/node_modules/lodash/_getMatchData.js.map +1 -1
  262. package/dist/node_modules/lodash/_getNative.js.map +1 -1
  263. package/dist/node_modules/lodash/_getPrototype.js.map +1 -1
  264. package/dist/node_modules/lodash/_getRawTag.js.map +1 -1
  265. package/dist/node_modules/lodash/_getSymbols.js.map +1 -1
  266. package/dist/node_modules/lodash/_getTag.js.map +1 -1
  267. package/dist/node_modules/lodash/_getValue.js.map +1 -1
  268. package/dist/node_modules/lodash/_hasPath.js.map +1 -1
  269. package/dist/node_modules/lodash/_hasUnicode.js.map +1 -1
  270. package/dist/node_modules/lodash/_hashClear.js.map +1 -1
  271. package/dist/node_modules/lodash/_hashDelete.js.map +1 -1
  272. package/dist/node_modules/lodash/_hashGet.js.map +1 -1
  273. package/dist/node_modules/lodash/_hashHas.js.map +1 -1
  274. package/dist/node_modules/lodash/_hashSet.js.map +1 -1
  275. package/dist/node_modules/lodash/_isFlattenable.js.map +1 -1
  276. package/dist/node_modules/lodash/_isIndex.js.map +1 -1
  277. package/dist/node_modules/lodash/_isIterateeCall.js.map +1 -1
  278. package/dist/node_modules/lodash/_isKey.js.map +1 -1
  279. package/dist/node_modules/lodash/_isKeyable.js.map +1 -1
  280. package/dist/node_modules/lodash/_isMasked.js.map +1 -1
  281. package/dist/node_modules/lodash/_isPrototype.js.map +1 -1
  282. package/dist/node_modules/lodash/_isStrictComparable.js.map +1 -1
  283. package/dist/node_modules/lodash/_listCacheClear.js.map +1 -1
  284. package/dist/node_modules/lodash/_listCacheDelete.js.map +1 -1
  285. package/dist/node_modules/lodash/_listCacheGet.js.map +1 -1
  286. package/dist/node_modules/lodash/_listCacheHas.js.map +1 -1
  287. package/dist/node_modules/lodash/_listCacheSet.js.map +1 -1
  288. package/dist/node_modules/lodash/_mapCacheClear.js.map +1 -1
  289. package/dist/node_modules/lodash/_mapCacheDelete.js.map +1 -1
  290. package/dist/node_modules/lodash/_mapCacheGet.js.map +1 -1
  291. package/dist/node_modules/lodash/_mapCacheHas.js.map +1 -1
  292. package/dist/node_modules/lodash/_mapCacheSet.js.map +1 -1
  293. package/dist/node_modules/lodash/_mapToArray.js.map +1 -1
  294. package/dist/node_modules/lodash/_matchesStrictComparable.js.map +1 -1
  295. package/dist/node_modules/lodash/_memoizeCapped.js.map +1 -1
  296. package/dist/node_modules/lodash/_nativeCreate.js.map +1 -1
  297. package/dist/node_modules/lodash/_nativeKeys.js.map +1 -1
  298. package/dist/node_modules/lodash/_nodeUtil.js.map +1 -1
  299. package/dist/node_modules/lodash/_objectToString.js.map +1 -1
  300. package/dist/node_modules/lodash/_overArg.js.map +1 -1
  301. package/dist/node_modules/lodash/_overRest.js.map +1 -1
  302. package/dist/node_modules/lodash/_root.js.map +1 -1
  303. package/dist/node_modules/lodash/_setCacheAdd.js.map +1 -1
  304. package/dist/node_modules/lodash/_setCacheHas.js.map +1 -1
  305. package/dist/node_modules/lodash/_setToArray.js.map +1 -1
  306. package/dist/node_modules/lodash/_setToString.js.map +1 -1
  307. package/dist/node_modules/lodash/_shortOut.js.map +1 -1
  308. package/dist/node_modules/lodash/_stackClear.js.map +1 -1
  309. package/dist/node_modules/lodash/_stackDelete.js.map +1 -1
  310. package/dist/node_modules/lodash/_stackGet.js.map +1 -1
  311. package/dist/node_modules/lodash/_stackHas.js.map +1 -1
  312. package/dist/node_modules/lodash/_stackSet.js.map +1 -1
  313. package/dist/node_modules/lodash/_strictIndexOf.js.map +1 -1
  314. package/dist/node_modules/lodash/_stringToArray.js.map +1 -1
  315. package/dist/node_modules/lodash/_stringToPath.js.map +1 -1
  316. package/dist/node_modules/lodash/_toKey.js.map +1 -1
  317. package/dist/node_modules/lodash/_toSource.js.map +1 -1
  318. package/dist/node_modules/lodash/_trimmedEndIndex.js.map +1 -1
  319. package/dist/node_modules/lodash/_unicodeToArray.js.map +1 -1
  320. package/dist/node_modules/lodash/constant.js.map +1 -1
  321. package/dist/node_modules/lodash/debounce.js.map +1 -1
  322. package/dist/node_modules/lodash/eq.js.map +1 -1
  323. package/dist/node_modules/lodash/every.js.map +1 -1
  324. package/dist/node_modules/lodash/find.js.map +1 -1
  325. package/dist/node_modules/lodash/findIndex.js.map +1 -1
  326. package/dist/node_modules/lodash/flatMap.js.map +1 -1
  327. package/dist/node_modules/lodash/get.js.map +1 -1
  328. package/dist/node_modules/lodash/hasIn.js.map +1 -1
  329. package/dist/node_modules/lodash/identity.js.map +1 -1
  330. package/dist/node_modules/lodash/isArguments.js.map +1 -1
  331. package/dist/node_modules/lodash/isArray.js.map +1 -1
  332. package/dist/node_modules/lodash/isArrayLike.js.map +1 -1
  333. package/dist/node_modules/lodash/isBoolean.js.map +1 -1
  334. package/dist/node_modules/lodash/isBuffer.js.map +1 -1
  335. package/dist/node_modules/lodash/isEqual.js.map +1 -1
  336. package/dist/node_modules/lodash/isFunction.js.map +1 -1
  337. package/dist/node_modules/lodash/isLength.js.map +1 -1
  338. package/dist/node_modules/lodash/isNaN.js.map +1 -1
  339. package/dist/node_modules/lodash/isNil.js.map +1 -1
  340. package/dist/node_modules/lodash/isNumber.js.map +1 -1
  341. package/dist/node_modules/lodash/isObject.js.map +1 -1
  342. package/dist/node_modules/lodash/isObjectLike.js.map +1 -1
  343. package/dist/node_modules/lodash/isPlainObject.js.map +1 -1
  344. package/dist/node_modules/lodash/isString.js.map +1 -1
  345. package/dist/node_modules/lodash/isSymbol.js.map +1 -1
  346. package/dist/node_modules/lodash/isTypedArray.js.map +1 -1
  347. package/dist/node_modules/lodash/keys.js.map +1 -1
  348. package/dist/node_modules/lodash/last.js.map +1 -1
  349. package/dist/node_modules/lodash/map.js.map +1 -1
  350. package/dist/node_modules/lodash/mapValues.js.map +1 -1
  351. package/dist/node_modules/lodash/max.js.map +1 -1
  352. package/dist/node_modules/lodash/memoize.js.map +1 -1
  353. package/dist/node_modules/lodash/min.js.map +1 -1
  354. package/dist/node_modules/lodash/noop.js.map +1 -1
  355. package/dist/node_modules/lodash/now.js.map +1 -1
  356. package/dist/node_modules/lodash/property.js.map +1 -1
  357. package/dist/node_modules/lodash/range.js.map +1 -1
  358. package/dist/node_modules/lodash/some.js.map +1 -1
  359. package/dist/node_modules/lodash/sortBy.js.map +1 -1
  360. package/dist/node_modules/lodash/stubArray.js.map +1 -1
  361. package/dist/node_modules/lodash/stubFalse.js.map +1 -1
  362. package/dist/node_modules/lodash/throttle.js.map +1 -1
  363. package/dist/node_modules/lodash/toFinite.js.map +1 -1
  364. package/dist/node_modules/lodash/toInteger.js.map +1 -1
  365. package/dist/node_modules/lodash/toNumber.js.map +1 -1
  366. package/dist/node_modules/lodash/toString.js.map +1 -1
  367. package/dist/node_modules/lodash/uniqBy.js.map +1 -1
  368. package/dist/node_modules/lodash/upperFirst.js.map +1 -1
  369. package/dist/node_modules/object-assign/index.js.map +1 -1
  370. package/dist/node_modules/prop-types/checkPropTypes.js.map +1 -1
  371. package/dist/node_modules/prop-types/factoryWithThrowingShims.js.map +1 -1
  372. package/dist/node_modules/prop-types/factoryWithTypeCheckers.js.map +1 -1
  373. package/dist/node_modules/prop-types/index.js.map +1 -1
  374. package/dist/node_modules/prop-types/lib/ReactPropTypesSecret.js.map +1 -1
  375. package/dist/node_modules/prop-types/lib/has.js.map +1 -1
  376. package/dist/node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js.map +1 -1
  377. package/dist/node_modules/prop-types/node_modules/react-is/cjs/react-is.production.min.js.map +1 -1
  378. package/dist/node_modules/prop-types/node_modules/react-is/index.js.map +1 -1
  379. package/dist/node_modules/react-is/cjs/react-is.development.js.map +1 -1
  380. package/dist/node_modules/react-is/cjs/react-is.production.min.js.map +1 -1
  381. package/dist/node_modules/react-is/index.js.map +1 -1
  382. package/dist/node_modules/react-smooth/es6/Animate.js +2 -2
  383. package/dist/node_modules/react-smooth/es6/Animate.js.map +1 -1
  384. package/dist/node_modules/react-smooth/es6/AnimateManager.js.map +1 -1
  385. package/dist/node_modules/react-smooth/es6/configUpdate.js.map +1 -1
  386. package/dist/node_modules/react-smooth/es6/easing.js.map +1 -1
  387. package/dist/node_modules/react-smooth/es6/setRafTimeout.js.map +1 -1
  388. package/dist/node_modules/react-smooth/es6/util.js.map +1 -1
  389. package/dist/node_modules/recharts/es6/cartesian/Bar.js +9 -9
  390. package/dist/node_modules/recharts/es6/cartesian/Bar.js.map +1 -1
  391. package/dist/node_modules/recharts/es6/cartesian/Brush.js +12 -12
  392. package/dist/node_modules/recharts/es6/cartesian/Brush.js.map +1 -1
  393. package/dist/node_modules/recharts/es6/cartesian/CartesianAxis.js +7 -7
  394. package/dist/node_modules/recharts/es6/cartesian/CartesianAxis.js.map +1 -1
  395. package/dist/node_modules/recharts/es6/cartesian/CartesianGrid.js +13 -13
  396. package/dist/node_modules/recharts/es6/cartesian/CartesianGrid.js.map +1 -1
  397. package/dist/node_modules/recharts/es6/cartesian/ErrorBar.js +4 -4
  398. package/dist/node_modules/recharts/es6/cartesian/ErrorBar.js.map +1 -1
  399. package/dist/node_modules/recharts/es6/cartesian/ReferenceArea.js +3 -3
  400. package/dist/node_modules/recharts/es6/cartesian/ReferenceArea.js.map +1 -1
  401. package/dist/node_modules/recharts/es6/cartesian/ReferenceDot.js +3 -3
  402. package/dist/node_modules/recharts/es6/cartesian/ReferenceDot.js.map +1 -1
  403. package/dist/node_modules/recharts/es6/cartesian/ReferenceLine.js +4 -4
  404. package/dist/node_modules/recharts/es6/cartesian/ReferenceLine.js.map +1 -1
  405. package/dist/node_modules/recharts/es6/cartesian/XAxis.js +3 -3
  406. package/dist/node_modules/recharts/es6/cartesian/XAxis.js.map +1 -1
  407. package/dist/node_modules/recharts/es6/cartesian/YAxis.js +3 -3
  408. package/dist/node_modules/recharts/es6/cartesian/YAxis.js.map +1 -1
  409. package/dist/node_modules/recharts/es6/cartesian/getEquidistantTicks.js.map +1 -1
  410. package/dist/node_modules/recharts/es6/cartesian/getTicks.js.map +1 -1
  411. package/dist/node_modules/recharts/es6/chart/AccessibilityManager.js +1 -1
  412. package/dist/node_modules/recharts/es6/chart/AccessibilityManager.js.map +1 -1
  413. package/dist/node_modules/recharts/es6/chart/BarChart.js.map +1 -1
  414. package/dist/node_modules/recharts/es6/chart/generateCategoricalChart.js +22 -22
  415. package/dist/node_modules/recharts/es6/chart/generateCategoricalChart.js.map +1 -1
  416. package/dist/node_modules/recharts/es6/component/Cell.js.map +1 -1
  417. package/dist/node_modules/recharts/es6/component/Cursor.js +1 -1
  418. package/dist/node_modules/recharts/es6/component/Cursor.js.map +1 -1
  419. package/dist/node_modules/recharts/es6/component/DefaultLegendContent.js +11 -11
  420. package/dist/node_modules/recharts/es6/component/DefaultLegendContent.js.map +1 -1
  421. package/dist/node_modules/recharts/es6/component/DefaultTooltipContent.js +6 -6
  422. package/dist/node_modules/recharts/es6/component/DefaultTooltipContent.js.map +1 -1
  423. package/dist/node_modules/recharts/es6/component/Label.js +14 -14
  424. package/dist/node_modules/recharts/es6/component/Label.js.map +1 -1
  425. package/dist/node_modules/recharts/es6/component/LabelList.js +6 -6
  426. package/dist/node_modules/recharts/es6/component/LabelList.js.map +1 -1
  427. package/dist/node_modules/recharts/es6/component/Legend.js +5 -5
  428. package/dist/node_modules/recharts/es6/component/Legend.js.map +1 -1
  429. package/dist/node_modules/recharts/es6/component/ResponsiveContainer.js +3 -3
  430. package/dist/node_modules/recharts/es6/component/ResponsiveContainer.js.map +1 -1
  431. package/dist/node_modules/recharts/es6/component/Text.js +2 -2
  432. package/dist/node_modules/recharts/es6/component/Text.js.map +1 -1
  433. package/dist/node_modules/recharts/es6/component/Tooltip.js +3 -3
  434. package/dist/node_modules/recharts/es6/component/Tooltip.js.map +1 -1
  435. package/dist/node_modules/recharts/es6/component/TooltipBoundingBox.js +2 -2
  436. package/dist/node_modules/recharts/es6/component/TooltipBoundingBox.js.map +1 -1
  437. package/dist/node_modules/recharts/es6/container/Layer.js +2 -2
  438. package/dist/node_modules/recharts/es6/container/Layer.js.map +1 -1
  439. package/dist/node_modules/recharts/es6/container/Surface.js +2 -2
  440. package/dist/node_modules/recharts/es6/container/Surface.js.map +1 -1
  441. package/dist/node_modules/recharts/es6/context/chartLayoutContext.js +2 -2
  442. package/dist/node_modules/recharts/es6/context/chartLayoutContext.js.map +1 -1
  443. package/dist/node_modules/recharts/es6/shape/Cross.js +1 -1
  444. package/dist/node_modules/recharts/es6/shape/Cross.js.map +1 -1
  445. package/dist/node_modules/recharts/es6/shape/Curve.js +1 -1
  446. package/dist/node_modules/recharts/es6/shape/Curve.js.map +1 -1
  447. package/dist/node_modules/recharts/es6/shape/Dot.js +1 -1
  448. package/dist/node_modules/recharts/es6/shape/Dot.js.map +1 -1
  449. package/dist/node_modules/recharts/es6/shape/Rectangle.js +4 -4
  450. package/dist/node_modules/recharts/es6/shape/Rectangle.js.map +1 -1
  451. package/dist/node_modules/recharts/es6/shape/Sector.js +1 -1
  452. package/dist/node_modules/recharts/es6/shape/Sector.js.map +1 -1
  453. package/dist/node_modules/recharts/es6/shape/Symbols.js +1 -1
  454. package/dist/node_modules/recharts/es6/shape/Symbols.js.map +1 -1
  455. package/dist/node_modules/recharts/es6/shape/Trapezoid.js +4 -4
  456. package/dist/node_modules/recharts/es6/shape/Trapezoid.js.map +1 -1
  457. package/dist/node_modules/recharts/es6/util/ActiveShapeUtils.js +9 -9
  458. package/dist/node_modules/recharts/es6/util/ActiveShapeUtils.js.map +1 -1
  459. package/dist/node_modules/recharts/es6/util/BarUtils.js +1 -1
  460. package/dist/node_modules/recharts/es6/util/BarUtils.js.map +1 -1
  461. package/dist/node_modules/recharts/es6/util/CartesianUtils.js +1 -1
  462. package/dist/node_modules/recharts/es6/util/CartesianUtils.js.map +1 -1
  463. package/dist/node_modules/recharts/es6/util/ChartUtils.js.map +1 -1
  464. package/dist/node_modules/recharts/es6/util/CssPrefixUtils.js.map +1 -1
  465. package/dist/node_modules/recharts/es6/util/DOMUtils.js.map +1 -1
  466. package/dist/node_modules/recharts/es6/util/DataUtils.js.map +1 -1
  467. package/dist/node_modules/recharts/es6/util/DetectReferenceElementsDomain.js.map +1 -1
  468. package/dist/node_modules/recharts/es6/util/Events.js.map +1 -1
  469. package/dist/node_modules/recharts/es6/util/Global.js.map +1 -1
  470. package/dist/node_modules/recharts/es6/util/IfOverflowMatches.js.map +1 -1
  471. package/dist/node_modules/recharts/es6/util/LogUtils.js.map +1 -1
  472. package/dist/node_modules/recharts/es6/util/PolarUtils.js.map +1 -1
  473. package/dist/node_modules/recharts/es6/util/ReactUtils.js +1 -1
  474. package/dist/node_modules/recharts/es6/util/ReactUtils.js.map +1 -1
  475. package/dist/node_modules/recharts/es6/util/ReduceCSSCalc.js +1 -1
  476. package/dist/node_modules/recharts/es6/util/ReduceCSSCalc.js.map +1 -1
  477. package/dist/node_modules/recharts/es6/util/ShallowEqual.js.map +1 -1
  478. package/dist/node_modules/recharts/es6/util/TickUtils.js.map +1 -1
  479. package/dist/node_modules/recharts/es6/util/calculateViewBox.js.map +1 -1
  480. package/dist/node_modules/recharts/es6/util/cursor/getCursorPoints.js.map +1 -1
  481. package/dist/node_modules/recharts/es6/util/cursor/getCursorRectangle.js.map +1 -1
  482. package/dist/node_modules/recharts/es6/util/cursor/getRadialCursorPoints.js.map +1 -1
  483. package/dist/node_modules/recharts/es6/util/getEveryNthWithCondition.js.map +1 -1
  484. package/dist/node_modules/recharts/es6/util/getLegendProps.js.map +1 -1
  485. package/dist/node_modules/recharts/es6/util/isDomainSpecifiedByUser.js.map +1 -1
  486. package/dist/node_modules/recharts/es6/util/payload/getUniqPayload.js.map +1 -1
  487. package/dist/node_modules/recharts/es6/util/tooltip/translate.js.map +1 -1
  488. package/dist/node_modules/recharts/es6/util/types.js +1 -1
  489. package/dist/node_modules/recharts/es6/util/types.js.map +1 -1
  490. package/dist/node_modules/recharts-scale/es6/getNiceTickValues.js.map +1 -1
  491. package/dist/node_modules/recharts-scale/es6/util/arithmetic.js.map +1 -1
  492. package/dist/node_modules/recharts-scale/es6/util/utils.js.map +1 -1
  493. package/dist/node_modules/tailwind-merge/dist/bundle-mjs.js +1 -1
  494. package/dist/node_modules/tailwind-merge/dist/bundle-mjs.js.map +1 -1
  495. package/dist/node_modules/tiny-invariant/dist/esm/tiny-invariant.js.map +1 -1
  496. package/package.json +2 -2
@@ -3,32 +3,34 @@ import { Tooltip as t } from "../../node_modules/recharts/es6/component/Tooltip.
3
3
  import { ResponsiveContainer as n } from "../../node_modules/recharts/es6/component/ResponsiveContainer.js";
4
4
  import { Cell as r } from "../../node_modules/recharts/es6/component/Cell.js";
5
5
  import { LabelList as i } from "../../node_modules/recharts/es6/component/LabelList.js";
6
- import { Bar as a } from "../../node_modules/recharts/es6/cartesian/Bar.js";
7
- import { CartesianGrid as o } from "../../node_modules/recharts/es6/cartesian/CartesianGrid.js";
8
- import { XAxis as s } from "../../node_modules/recharts/es6/cartesian/XAxis.js";
9
- import { YAxis as ee } from "../../node_modules/recharts/es6/cartesian/YAxis.js";
10
- import { BarChart as te } from "../../node_modules/recharts/es6/chart/BarChart.js";
11
- import { PageLayout as c } from "../components/PageLayout.js";
12
- import { MetricsCard as l } from "../components/MetricsCard.js";
13
- import { formatCo2e as u, formatEnumLabel as d, formatNumber as f, formatPercent as p, formatRelativeTime as m } from "../utils/formatters.js";
14
- import { StatusBadge as h } from "../components/StatusBadge.js";
15
- import { MiniBar as g } from "../components/MiniBar.js";
16
- import { LoadingView as ne, Section as _ } from "../components/StateViews.js";
17
- import { EmptyState as v } from "../components/EmptyState.js";
18
- import { Meter as re, SCOPE_HUE as y, ScopeLegend as ie, ScopeSplitBar as b } from "./carbonVisuals.js";
6
+ import { Bar as ee } from "../../node_modules/recharts/es6/cartesian/Bar.js";
7
+ import { CartesianGrid as te } from "../../node_modules/recharts/es6/cartesian/CartesianGrid.js";
8
+ import { XAxis as a } from "../../node_modules/recharts/es6/cartesian/XAxis.js";
9
+ import { YAxis as ne } from "../../node_modules/recharts/es6/cartesian/YAxis.js";
10
+ import { BarChart as re } from "../../node_modules/recharts/es6/chart/BarChart.js";
11
+ import { PageLayout as o } from "../components/PageLayout.js";
12
+ import { MetricsCard as s } from "../components/MetricsCard.js";
13
+ import { formatCo2e as c, formatEnumLabel as ie, formatNumber as l, formatPercent as ae, formatRelativeTime as u } from "../utils/formatters.js";
14
+ import { StatusBadge as d } from "../components/StatusBadge.js";
15
+ import { MiniBar as f } from "../components/MiniBar.js";
16
+ import { LoadingView as p, Section as m } from "../components/StateViews.js";
17
+ import { EmptyState as h } from "../components/EmptyState.js";
18
+ import { useDashboardLayout as oe } from "../hooks/useDashboardLayout.js";
19
+ import { DashboardCustomizerDialog as se } from "../components/DashboardCustomizerDialog.js";
20
+ import { Meter as ce, SCOPE_HUE as g, ScopeLegend as le, ScopeSplitBar as ue } from "./carbonVisuals.js";
19
21
  import "../context/index.js";
20
- import { useEcoCarbonTotals as x, useEcoHabitatProjects as ae, useEcoMeasurements as oe, useEcoObservations as S, useEcoSensors as C, useEcoSites as w, useEcoSpecies as se } from "../hooks/useEcoImpactHubApi.js";
22
+ import { useEcoCarbonTotals as de, useEcoHabitatProjects as fe, useEcoMeasurements as pe, useEcoObservations as me, useEcoSensors as he, useEcoSites as ge, useEcoSpecies as _e } from "../hooks/useEcoImpactHubApi.js";
21
23
  import "../hooks/index.js";
22
- import { useMemo as ce } from "react";
23
- import { ArrowRight as T, Binoculars as E, Factory as D, MapPin as le, PawPrint as ue, Radio as de, ShieldCheck as fe, Trees as pe, TriangleAlert as O } from "lucide-react";
24
- import { Fragment as k, jsx as A, jsxs as j } from "react/jsx-runtime";
25
- import { GlassCard as M } from "@burdenoff/fe-libs/ui";
24
+ import { useMemo as ve, useState as ye } from "react";
25
+ import { ArrowRight as _, Binoculars as v, Factory as y, LayoutGrid as be, MapPin as xe, PawPrint as Se, Radio as Ce, ShieldCheck as we, StickyNote as Te, Trees as Ee, TriangleAlert as De } from "lucide-react";
26
+ import { Fragment as Oe, jsx as b, jsxs as x } from "react/jsx-runtime";
27
+ import { Button as S, GlassCard as C } from "@burdenoff/fe-libs/ui";
26
28
  //#region src/ecoimpacthub/pages/DashboardPage.tsx
27
- var N = new Set([
29
+ var w = new Set([
28
30
  "PLANNED",
29
31
  "IN_PROGRESS",
30
32
  "MONITORING"
31
- ]), P = {
33
+ ]), T = {
32
34
  LEAST_CONCERN: "var(--color-status-success-text)",
33
35
  NEAR_THREATENED: "var(--color-accent-teal)",
34
36
  VULNERABLE: "var(--color-status-warning-text)",
@@ -38,32 +40,32 @@ var N = new Set([
38
40
  DATA_DEFICIENT: "var(--color-text-tertiary)",
39
41
  NOT_EVALUATED: "var(--color-text-tertiary)"
40
42
  };
41
- function F() {
42
- let { navigateTo: F, currentUser: I } = e(), L = w({ pagination: {
43
+ function E() {
44
+ let { navigateTo: E, currentUser: D, workspaceId: ke } = e(), [Ae, O] = ye(!1), k = oe(ke, D?.id), A = ge({ pagination: {
43
45
  limit: 100,
44
46
  offset: 0
45
- } }), R = se({ pagination: {
47
+ } }), j = _e({ pagination: {
46
48
  limit: 100,
47
49
  offset: 0
48
- } }), z = ae(), B = x(), V = oe({
50
+ } }), M = fe(), N = de(), P = pe({
49
51
  breachesOnly: !0,
50
52
  pagination: {
51
53
  limit: 6,
52
54
  offset: 0
53
55
  }
54
- }), me = S({ pagination: {
56
+ }), je = me({ pagination: {
55
57
  limit: 6,
56
58
  offset: 0
57
- } }), he = C(), H = L.data?.items ?? [], U = R.data?.items ?? [], W = z.data?.items ?? [], G = he.data?.items ?? [], K = H.filter((e) => e.status === "ACTIVE").length, ge = U.filter((e) => e.isPriority).length, q = U.filter((e) => [
59
+ } }), Me = he(), F = A.data?.items ?? [], I = j.data?.items ?? [], L = M.data?.items ?? [], R = Me.data?.items ?? [], z = F.filter((e) => e.status === "ACTIVE").length, Ne = I.filter((e) => e.isPriority).length, B = I.filter((e) => [
58
60
  "VULNERABLE",
59
61
  "ENDANGERED",
60
62
  "CRITICALLY_ENDANGERED"
61
- ].includes(e.conservationStatus)).length, J = W.filter((e) => N.has(e.status)).length, Y = G.filter((e) => e.status === "ONLINE").length, X = G.filter((e) => [
63
+ ].includes(e.conservationStatus)).length, V = L.filter((e) => w.has(e.status)).length, H = R.filter((e) => e.status === "ONLINE").length, U = R.filter((e) => [
62
64
  "OFFLINE",
63
65
  "DEGRADED",
64
66
  "MAINTENANCE"
65
- ].includes(e.status)).length, Z = ce(() => {
66
- let e = B.data;
67
+ ].includes(e.status)).length, W = ve(() => {
68
+ let e = N.data;
67
69
  return e ? [
68
70
  {
69
71
  scope: "SCOPE_1",
@@ -81,450 +83,506 @@ function F() {
81
83
  kg: e.scope3
82
84
  }
83
85
  ] : [];
84
- }, [B.data]);
85
- if (L.isLoading && R.isLoading && z.isLoading && B.isLoading) return /* @__PURE__ */ A(c, {
86
- title: "EcoImpactHub",
87
- titleGradient: !0,
88
- aurora: !0,
89
- children: /* @__PURE__ */ A(ne, { label: "Loading your impact overview…" })
86
+ }, [N.data]), Pe = A.isLoading && j.isLoading && M.isLoading && N.isLoading, G = /* @__PURE__ */ x(S, {
87
+ type: "button",
88
+ variant: "outline",
89
+ size: "sm",
90
+ onClick: () => O(!0),
91
+ children: [/* @__PURE__ */ b(be, { className: "mr-1.5 h-3.5 w-3.5" }), "Customize dashboard"]
90
92
  });
91
- let _e = I?.firstName || I?.name || "there", Q = V.data?.items ?? [], $ = me.data?.items ?? [];
92
- return /* @__PURE__ */ j(c, {
93
+ if (Pe) return /* @__PURE__ */ b(o, {
93
94
  title: "EcoImpactHub",
94
95
  titleGradient: !0,
95
96
  aurora: !0,
96
- description: `Welcome back, ${_e} — your environment, conservation & sustainability control room.`,
97
+ actions: G,
98
+ children: /* @__PURE__ */ b(p, { label: "Loading your impact overview…" })
99
+ });
100
+ let Fe = D?.firstName || D?.name || "there", K = P.data?.items ?? [], q = je.data?.items ?? [], J = /* @__PURE__ */ x("div", {
101
+ className: "grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-6",
97
102
  children: [
98
- /* @__PURE__ */ j("div", {
99
- className: "grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-6",
100
- children: [
101
- /* @__PURE__ */ A(l, {
102
- icon: /* @__PURE__ */ A(le, { className: "h-5 w-5" }),
103
- value: L.data?.pageInfo?.hasMore ? `${H.length}+` : f(H.length),
104
- label: "Monitored sites",
105
- footer: /* @__PURE__ */ j("div", {
106
- className: "space-y-2",
107
- children: [/* @__PURE__ */ A(g, {
108
- value: H.length ? K / H.length * 100 : 0,
109
- height: 4,
110
- barClassName: "bg-action-primary-bg"
111
- }), /* @__PURE__ */ j("p", {
112
- className: "text-xs text-text-tertiary",
113
- children: [/* @__PURE__ */ A("span", {
114
- className: "tabular-nums text-text-secondary",
115
- children: K
116
- }), " active"]
117
- })]
118
- })
119
- }),
120
- /* @__PURE__ */ A(l, {
121
- icon: /* @__PURE__ */ A(ue, { className: "h-5 w-5" }),
122
- value: R.data?.pageInfo?.hasMore ? `${U.length}+` : f(U.length),
123
- label: "Species tracked",
124
- accent: q > 0 ? "warning" : void 0,
125
- footer: /* @__PURE__ */ j("div", {
126
- className: "space-y-2",
127
- children: [/* @__PURE__ */ A(g, {
128
- value: U.length ? q / U.length * 100 : 0,
129
- height: 4,
130
- barClassName: "bg-status-warning-text"
131
- }), /* @__PURE__ */ j("p", {
132
- className: "text-xs text-text-tertiary",
133
- children: [
134
- /* @__PURE__ */ A("span", {
135
- className: "tabular-nums text-text-secondary",
136
- children: ge
137
- }),
138
- " priority ·",
139
- " ",
140
- /* @__PURE__ */ A("span", {
141
- className: "tabular-nums text-text-secondary",
142
- children: q
143
- }),
144
- " threatened"
145
- ]
146
- })]
147
- })
148
- }),
149
- /* @__PURE__ */ A(l, {
150
- icon: /* @__PURE__ */ A(pe, { className: "h-5 w-5" }),
151
- value: f(J),
152
- label: "Active habitat projects",
153
- footer: /* @__PURE__ */ j("div", {
154
- className: "space-y-2",
155
- children: [/* @__PURE__ */ A(g, {
156
- value: W.length ? J / W.length * 100 : 0,
157
- height: 4,
158
- barClassName: "bg-action-primary-bg"
159
- }), /* @__PURE__ */ j("p", {
160
- className: "text-xs text-text-tertiary",
161
- children: [
162
- /* @__PURE__ */ A("span", {
163
- className: "tabular-nums text-text-secondary",
164
- children: f(W.length)
165
- }),
166
- " ",
167
- "total"
168
- ]
169
- })]
170
- })
171
- }),
172
- /* @__PURE__ */ A(l, {
173
- icon: /* @__PURE__ */ A(D, { className: "h-5 w-5" }),
174
- value: B.data ? u(B.data.total) : "—",
175
- label: "Total footprint",
176
- featured: !0,
177
- footer: B.data && B.data.total > 0 ? /* @__PURE__ */ j("div", {
178
- className: "space-y-2",
179
- children: [/* @__PURE__ */ A(b, {
180
- scope1: B.data.scope1,
181
- scope2: B.data.scope2,
182
- scope3: B.data.scope3,
183
- height: 6
184
- }), /* @__PURE__ */ A("p", {
185
- className: "text-xs text-text-tertiary",
186
- children: "Scope 1 · 2 · 3 split"
103
+ /* @__PURE__ */ b(s, {
104
+ icon: /* @__PURE__ */ b(xe, { className: "h-5 w-5" }),
105
+ value: A.data?.pageInfo?.hasMore ? `${F.length}+` : l(F.length),
106
+ label: "Monitored sites",
107
+ footer: /* @__PURE__ */ x("div", {
108
+ className: "space-y-2",
109
+ children: [/* @__PURE__ */ b(f, {
110
+ value: F.length ? z / F.length * 100 : 0,
111
+ height: 4,
112
+ barClassName: "bg-action-primary-bg"
113
+ }), /* @__PURE__ */ x("p", {
114
+ className: "text-xs text-text-tertiary",
115
+ children: [/* @__PURE__ */ b("span", {
116
+ className: "tabular-nums text-text-secondary",
117
+ children: z
118
+ }), " active"]
119
+ })]
120
+ })
121
+ }),
122
+ /* @__PURE__ */ b(s, {
123
+ icon: /* @__PURE__ */ b(Se, { className: "h-5 w-5" }),
124
+ value: j.data?.pageInfo?.hasMore ? `${I.length}+` : l(I.length),
125
+ label: "Species tracked",
126
+ accent: B > 0 ? "warning" : void 0,
127
+ footer: /* @__PURE__ */ x("div", {
128
+ className: "space-y-2",
129
+ children: [/* @__PURE__ */ b(f, {
130
+ value: I.length ? B / I.length * 100 : 0,
131
+ height: 4,
132
+ barClassName: "bg-status-warning-text"
133
+ }), /* @__PURE__ */ x("p", {
134
+ className: "text-xs text-text-tertiary",
135
+ children: [
136
+ /* @__PURE__ */ b("span", {
137
+ className: "tabular-nums text-text-secondary",
138
+ children: Ne
139
+ }),
140
+ " priority ·",
141
+ " ",
142
+ /* @__PURE__ */ b("span", {
143
+ className: "tabular-nums text-text-secondary",
144
+ children: B
145
+ }),
146
+ " threatened"
147
+ ]
148
+ })]
149
+ })
150
+ }),
151
+ /* @__PURE__ */ b(s, {
152
+ icon: /* @__PURE__ */ b(Ee, { className: "h-5 w-5" }),
153
+ value: l(V),
154
+ label: "Active habitat projects",
155
+ footer: /* @__PURE__ */ x("div", {
156
+ className: "space-y-2",
157
+ children: [/* @__PURE__ */ b(f, {
158
+ value: L.length ? V / L.length * 100 : 0,
159
+ height: 4,
160
+ barClassName: "bg-action-primary-bg"
161
+ }), /* @__PURE__ */ x("p", {
162
+ className: "text-xs text-text-tertiary",
163
+ children: [
164
+ /* @__PURE__ */ b("span", {
165
+ className: "tabular-nums text-text-secondary",
166
+ children: l(L.length)
167
+ }),
168
+ " ",
169
+ "total"
170
+ ]
171
+ })]
172
+ })
173
+ }),
174
+ /* @__PURE__ */ b(s, {
175
+ icon: /* @__PURE__ */ b(y, { className: "h-5 w-5" }),
176
+ value: N.data ? c(N.data.total) : "—",
177
+ label: "Total footprint",
178
+ featured: !0,
179
+ footer: N.data && N.data.total > 0 ? /* @__PURE__ */ x("div", {
180
+ className: "space-y-2",
181
+ children: [/* @__PURE__ */ b(ue, {
182
+ scope1: N.data.scope1,
183
+ scope2: N.data.scope2,
184
+ scope3: N.data.scope3,
185
+ height: 6
186
+ }), /* @__PURE__ */ b("p", {
187
+ className: "text-xs text-text-tertiary",
188
+ children: "Scope 1 · 2 · 3 split"
189
+ })]
190
+ }) : void 0
191
+ }),
192
+ /* @__PURE__ */ b(s, {
193
+ icon: /* @__PURE__ */ b(Ce, { className: "h-5 w-5" }),
194
+ value: l(H),
195
+ label: "Sensors online",
196
+ accent: U > 0 ? "warning" : "success",
197
+ footer: /* @__PURE__ */ x("div", {
198
+ className: "space-y-2",
199
+ children: [/* @__PURE__ */ b(f, {
200
+ value: R.length ? H / R.length * 100 : 0,
201
+ height: 4,
202
+ barClassName: "bg-status-success-text"
203
+ }), /* @__PURE__ */ x("p", {
204
+ className: "text-xs text-text-tertiary",
205
+ children: [/* @__PURE__ */ b("span", {
206
+ className: "tabular-nums text-text-secondary",
207
+ children: U
208
+ }), " need attention"]
209
+ })]
210
+ })
211
+ }),
212
+ /* @__PURE__ */ b(s, {
213
+ icon: /* @__PURE__ */ b(De, { className: "h-5 w-5" }),
214
+ value: P.data?.pageInfo?.hasMore ? `${K.length}+` : l(K.length),
215
+ label: "Open breaches",
216
+ accent: K.length > 0 ? "error" : "success",
217
+ footer: /* @__PURE__ */ b("p", {
218
+ className: K.length > 0 ? "text-xs font-medium text-status-error-text" : "text-xs text-text-tertiary",
219
+ children: K.length > 0 ? "Needs attention" : "All parameters in range"
220
+ })
221
+ })
222
+ ]
223
+ }), Y = /* @__PURE__ */ x(C, {
224
+ treatment: "glass",
225
+ className: "p-6 h-full",
226
+ children: [/* @__PURE__ */ x("div", {
227
+ className: "mb-4 flex flex-wrap items-start justify-between gap-3",
228
+ children: [/* @__PURE__ */ x("div", { children: [/* @__PURE__ */ b("h2", {
229
+ className: "text-base font-semibold text-text-primary",
230
+ children: "Carbon footprint by scope"
231
+ }), /* @__PURE__ */ b("p", {
232
+ className: "mt-0.5 text-sm text-text-secondary",
233
+ children: "GHG Protocol Scope 1 / 2 / 3 emissions (CO₂e)."
234
+ })] }), /* @__PURE__ */ x("div", {
235
+ className: "flex items-center gap-4",
236
+ children: [N.data && N.data.total > 0 && /* @__PURE__ */ x("div", {
237
+ className: "text-right",
238
+ children: [/* @__PURE__ */ b("p", {
239
+ className: "text-lg font-semibold tabular-nums text-text-primary",
240
+ children: c(N.data.total)
241
+ }), /* @__PURE__ */ b("p", {
242
+ className: "text-xs text-text-tertiary",
243
+ children: "total"
244
+ })]
245
+ }), /* @__PURE__ */ x("button", {
246
+ type: "button",
247
+ onClick: () => E("carbon"),
248
+ className: "inline-flex items-center gap-1 text-sm font-medium text-accent hover:underline",
249
+ children: ["Ledger ", /* @__PURE__ */ b(_, { className: "h-4 w-4" })]
250
+ })]
251
+ })]
252
+ }), W.every((e) => e.kg === 0) ? /* @__PURE__ */ b(h, {
253
+ illustration: "empty-data",
254
+ icon: /* @__PURE__ */ b(y, { className: "h-10 w-10" }),
255
+ title: "No carbon entries yet",
256
+ description: "Record activity in the carbon ledger to see your Scope 1–3 footprint here."
257
+ }) : /* @__PURE__ */ x(Oe, { children: [/* @__PURE__ */ b("div", {
258
+ className: "h-56",
259
+ children: /* @__PURE__ */ b(n, {
260
+ width: "100%",
261
+ height: "100%",
262
+ children: /* @__PURE__ */ x(re, {
263
+ data: W,
264
+ margin: {
265
+ top: 20,
266
+ right: 8,
267
+ left: 8,
268
+ bottom: 0
269
+ },
270
+ children: [
271
+ /* @__PURE__ */ b("defs", { children: W.map((e) => /* @__PURE__ */ x("linearGradient", {
272
+ id: `ecoScopeGrad-${e.scope}`,
273
+ x1: "0",
274
+ y1: "0",
275
+ x2: "0",
276
+ y2: "1",
277
+ children: [/* @__PURE__ */ b("stop", {
278
+ offset: "0%",
279
+ style: {
280
+ stopColor: g[e.scope],
281
+ stopOpacity: 1
282
+ }
283
+ }), /* @__PURE__ */ b("stop", {
284
+ offset: "100%",
285
+ style: {
286
+ stopColor: g[e.scope],
287
+ stopOpacity: .55
288
+ }
187
289
  })]
188
- }) : void 0
189
- }),
190
- /* @__PURE__ */ A(l, {
191
- icon: /* @__PURE__ */ A(de, { className: "h-5 w-5" }),
192
- value: f(Y),
193
- label: "Sensors online",
194
- accent: X > 0 ? "warning" : "success",
195
- footer: /* @__PURE__ */ j("div", {
196
- className: "space-y-2",
197
- children: [/* @__PURE__ */ A(g, {
198
- value: G.length ? Y / G.length * 100 : 0,
199
- height: 4,
200
- barClassName: "bg-status-success-text"
201
- }), /* @__PURE__ */ j("p", {
202
- className: "text-xs text-text-tertiary",
203
- children: [/* @__PURE__ */ A("span", {
204
- className: "tabular-nums text-text-secondary",
205
- children: X
206
- }), " need attention"]
290
+ }, e.scope)) }),
291
+ /* @__PURE__ */ b(te, {
292
+ vertical: !1,
293
+ stroke: "var(--color-border-seam)",
294
+ strokeOpacity: .6,
295
+ strokeDasharray: "3 4"
296
+ }),
297
+ /* @__PURE__ */ b(a, {
298
+ dataKey: "label",
299
+ tick: {
300
+ fill: "var(--color-text-secondary)",
301
+ fontSize: 12
302
+ },
303
+ axisLine: { stroke: "var(--color-border-seam)" },
304
+ tickLine: !1,
305
+ dy: 4
306
+ }),
307
+ /* @__PURE__ */ b(ne, {
308
+ tick: {
309
+ fill: "var(--color-text-tertiary)",
310
+ fontSize: 11
311
+ },
312
+ axisLine: !1,
313
+ tickLine: !1,
314
+ width: 48,
315
+ tickFormatter: (e) => e >= 1e3 ? `${Math.round(e / 1e3)}t` : `${e}`
316
+ }),
317
+ /* @__PURE__ */ b(t, {
318
+ cursor: {
319
+ fill: "var(--color-bg-sunken)",
320
+ opacity: .4
321
+ },
322
+ contentStyle: {
323
+ background: "var(--color-bg-surface)",
324
+ border: "1px solid var(--color-border-seam)",
325
+ borderRadius: 12,
326
+ color: "var(--color-text-primary)"
327
+ },
328
+ formatter: (e) => [c(e), "Emissions"]
329
+ }),
330
+ /* @__PURE__ */ x(ee, {
331
+ dataKey: "kg",
332
+ radius: [
333
+ 8,
334
+ 8,
335
+ 2,
336
+ 2
337
+ ],
338
+ maxBarSize: 72,
339
+ children: [W.map((e) => /* @__PURE__ */ b(r, { fill: `url(#ecoScopeGrad-${e.scope})` }, e.scope)), /* @__PURE__ */ b(i, {
340
+ dataKey: "kg",
341
+ position: "top",
342
+ formatter: (e) => e > 0 ? c(e) : "",
343
+ style: {
344
+ fill: "var(--color-text-secondary)",
345
+ fontSize: 11,
346
+ fontWeight: 600
347
+ }
207
348
  })]
208
349
  })
209
- }),
210
- /* @__PURE__ */ A(l, {
211
- icon: /* @__PURE__ */ A(O, { className: "h-5 w-5" }),
212
- value: V.data?.pageInfo?.hasMore ? `${Q.length}+` : f(Q.length),
213
- label: "Open breaches",
214
- accent: Q.length > 0 ? "error" : "success",
215
- footer: /* @__PURE__ */ A("p", {
216
- className: Q.length > 0 ? "text-xs font-medium text-status-error-text" : "text-xs text-text-tertiary",
217
- children: Q.length > 0 ? "Needs attention" : "All parameters in range"
218
- })
219
- })
220
- ]
350
+ ]
351
+ })
352
+ })
353
+ }), /* @__PURE__ */ b(le, {
354
+ data: W,
355
+ className: "mt-4 border-t border-border-seam pt-4"
356
+ })] })]
357
+ }), X = /* @__PURE__ */ x(C, {
358
+ treatment: "glass",
359
+ className: "p-6 h-full",
360
+ children: [/* @__PURE__ */ x("div", {
361
+ className: "mb-4 flex items-center justify-between gap-3",
362
+ children: [/* @__PURE__ */ x("div", {
363
+ className: "flex items-center gap-2",
364
+ children: [/* @__PURE__ */ b("h2", {
365
+ className: "text-base font-semibold text-text-primary",
366
+ children: "Recent breaches"
367
+ }), K.length > 0 && /* @__PURE__ */ b("span", {
368
+ className: "rounded-full bg-status-error-bg-subtle px-2 py-0.5 text-xs font-medium tabular-nums text-status-error-text",
369
+ children: P.data?.pageInfo?.hasMore ? `${K.length}+` : K.length
370
+ })]
371
+ }), /* @__PURE__ */ x("button", {
372
+ type: "button",
373
+ onClick: () => E("monitoring"),
374
+ className: "inline-flex items-center gap-1 text-sm font-medium text-accent hover:underline",
375
+ children: ["Monitoring ", /* @__PURE__ */ b(_, { className: "h-4 w-4" })]
376
+ })]
377
+ }), K.length === 0 ? /* @__PURE__ */ x("div", {
378
+ className: "flex flex-col items-center justify-center rounded-xl border border-dashed border-border-seam py-10 text-center",
379
+ children: [
380
+ /* @__PURE__ */ b("span", {
381
+ className: "flex size-12 items-center justify-center rounded-full bg-status-success-bg-subtle",
382
+ children: /* @__PURE__ */ b(we, { className: "h-6 w-6 text-status-success-text" })
383
+ }),
384
+ /* @__PURE__ */ b("p", {
385
+ className: "mt-3 text-sm font-medium text-text-primary",
386
+ children: "All parameters in range"
387
+ }),
388
+ /* @__PURE__ */ b("p", {
389
+ className: "mt-1 text-xs text-text-tertiary",
390
+ children: "No open threshold breaches."
391
+ })
392
+ ]
393
+ }) : /* @__PURE__ */ b("ul", {
394
+ className: "space-y-2.5",
395
+ children: K.map((e) => /* @__PURE__ */ x("li", {
396
+ className: "flex items-start justify-between gap-3 rounded-xl bg-bg-sunken/50 p-3",
397
+ children: [/* @__PURE__ */ x("div", {
398
+ className: "flex min-w-0 items-start gap-2.5",
399
+ children: [/* @__PURE__ */ b("span", {
400
+ "aria-hidden": "true",
401
+ className: "mt-1.5 size-2 shrink-0 rounded-full bg-status-error-text motion-safe:animate-vc-glow-pulse"
402
+ }), /* @__PURE__ */ x("div", {
403
+ className: "min-w-0",
404
+ children: [/* @__PURE__ */ b("p", {
405
+ className: "truncate text-sm font-medium text-text-primary",
406
+ children: e.parameter
407
+ }), /* @__PURE__ */ x("p", {
408
+ className: "text-xs text-text-tertiary",
409
+ children: [
410
+ /* @__PURE__ */ x("span", {
411
+ className: "tabular-nums",
412
+ children: [
413
+ l(e.value),
414
+ " ",
415
+ e.unit
416
+ ]
417
+ }),
418
+ " ",
419
+ "· ",
420
+ u(e.recordedAt)
421
+ ]
422
+ })]
423
+ })]
424
+ }), /* @__PURE__ */ b(d, { status: "BREACH" })]
425
+ }, e.id))
426
+ })]
427
+ }), Z = {
428
+ kpis: J,
429
+ carbonByScope: Y,
430
+ recentBreaches: X,
431
+ recentObservations: /* @__PURE__ */ b(m, {
432
+ title: "Recent field observations",
433
+ description: "Latest wildlife & biodiversity sightings recorded across your sites.",
434
+ action: /* @__PURE__ */ x("button", {
435
+ type: "button",
436
+ onClick: () => E("observations"),
437
+ className: "inline-flex items-center gap-1 text-sm font-medium text-accent hover:underline",
438
+ children: ["All observations ", /* @__PURE__ */ b(_, { className: "h-4 w-4" })]
221
439
  }),
222
- /* @__PURE__ */ j("div", {
223
- className: "mt-6 grid grid-cols-1 gap-6 lg:grid-cols-3",
224
- children: [/* @__PURE__ */ j(M, {
225
- treatment: "glass",
226
- className: "p-6 lg:col-span-2",
227
- children: [/* @__PURE__ */ j("div", {
228
- className: "mb-4 flex flex-wrap items-start justify-between gap-3",
229
- children: [/* @__PURE__ */ j("div", { children: [/* @__PURE__ */ A("h2", {
230
- className: "text-base font-semibold text-text-primary",
231
- children: "Carbon footprint by scope"
232
- }), /* @__PURE__ */ A("p", {
233
- className: "mt-0.5 text-sm text-text-secondary",
234
- children: "GHG Protocol Scope 1 / 2 / 3 emissions (CO₂e)."
235
- })] }), /* @__PURE__ */ j("div", {
236
- className: "flex items-center gap-4",
237
- children: [B.data && B.data.total > 0 && /* @__PURE__ */ j("div", {
238
- className: "text-right",
239
- children: [/* @__PURE__ */ A("p", {
240
- className: "text-lg font-semibold tabular-nums text-text-primary",
241
- children: u(B.data.total)
242
- }), /* @__PURE__ */ A("p", {
243
- className: "text-xs text-text-tertiary",
244
- children: "total"
440
+ children: q.length === 0 ? /* @__PURE__ */ b(h, {
441
+ illustration: "empty-data",
442
+ icon: /* @__PURE__ */ b(v, { className: "h-10 w-10" }),
443
+ title: "No observations yet",
444
+ description: "Record your first field observation to build your biodiversity dataset."
445
+ }) : /* @__PURE__ */ b("div", {
446
+ className: "grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3",
447
+ children: q.map((e) => /* @__PURE__ */ x(C, {
448
+ treatment: "plain",
449
+ className: "p-4 transition-shadow hover:shadow-float",
450
+ children: [/* @__PURE__ */ x("div", {
451
+ className: "flex items-start justify-between gap-2",
452
+ children: [/* @__PURE__ */ x("div", {
453
+ className: "flex min-w-0 items-start gap-2.5",
454
+ children: [/* @__PURE__ */ b("span", {
455
+ className: "mt-0.5 flex size-8 shrink-0 items-center justify-center rounded-lg bg-[var(--color-accent-soft)] text-accent",
456
+ children: /* @__PURE__ */ b(v, { className: "h-4 w-4" })
457
+ }), /* @__PURE__ */ x("div", {
458
+ className: "min-w-0",
459
+ children: [/* @__PURE__ */ b("p", {
460
+ className: "truncate text-sm font-semibold text-text-primary",
461
+ children: e.species?.commonName ?? "Unknown species"
462
+ }), e.species?.scientificName && /* @__PURE__ */ b("p", {
463
+ className: "truncate text-xs italic text-text-tertiary",
464
+ children: e.species.scientificName
245
465
  })]
246
- }), /* @__PURE__ */ j("button", {
247
- type: "button",
248
- onClick: () => F("carbon"),
249
- className: "inline-flex items-center gap-1 text-sm font-medium text-accent hover:underline",
250
- children: ["Ledger ", /* @__PURE__ */ A(T, { className: "h-4 w-4" })]
251
466
  })]
467
+ }), /* @__PURE__ */ x("span", {
468
+ className: "shrink-0 rounded-full bg-[var(--color-accent-soft)] px-2 py-0.5 text-xs font-medium tabular-nums text-text-primary",
469
+ children: ["×", l(e.count)]
470
+ })]
471
+ }), /* @__PURE__ */ x("div", {
472
+ className: "mt-3 flex items-center justify-between border-t border-border-seam/70 pt-2.5",
473
+ children: [/* @__PURE__ */ b("span", {
474
+ className: "rounded-full bg-bg-sunken px-2 py-0.5 text-xs text-text-secondary",
475
+ children: ie(e.method)
476
+ }), /* @__PURE__ */ b("span", {
477
+ className: "text-xs text-text-tertiary",
478
+ children: u(e.observedAt)
252
479
  })]
253
- }), Z.every((e) => e.kg === 0) ? /* @__PURE__ */ A(v, {
254
- illustration: "empty-data",
255
- icon: /* @__PURE__ */ A(D, { className: "h-10 w-10" }),
256
- title: "No carbon entries yet",
257
- description: "Record activity in the carbon ledger to see your Scope 1–3 footprint here."
258
- }) : /* @__PURE__ */ j(k, { children: [/* @__PURE__ */ A("div", {
259
- className: "h-56",
260
- children: /* @__PURE__ */ A(n, {
261
- width: "100%",
262
- height: "100%",
263
- children: /* @__PURE__ */ j(te, {
264
- data: Z,
265
- margin: {
266
- top: 20,
267
- right: 8,
268
- left: 8,
269
- bottom: 0
270
- },
480
+ })]
481
+ }, e.id))
482
+ })
483
+ }),
484
+ conservationStatus: I.length > 0 ? /* @__PURE__ */ b(m, {
485
+ title: "Conservation status",
486
+ description: "Distribution of tracked species by IUCN-style status.",
487
+ children: /* @__PURE__ */ b(C, {
488
+ treatment: "plain",
489
+ className: "p-6",
490
+ children: /* @__PURE__ */ b("div", {
491
+ className: "space-y-3.5",
492
+ children: (() => {
493
+ let e = /* @__PURE__ */ new Map();
494
+ for (let t of I) e.set(t.conservationStatus, (e.get(t.conservationStatus) ?? 0) + 1);
495
+ let t = I.length;
496
+ return [...e.entries()].sort((e, t) => t[1] - e[1]).map(([e, n]) => {
497
+ let r = n / t * 100, i = T[e] ?? "var(--color-text-tertiary)";
498
+ return /* @__PURE__ */ x("div", {
499
+ className: "flex items-center gap-3 sm:gap-4",
271
500
  children: [
272
- /* @__PURE__ */ A("defs", { children: Z.map((e) => /* @__PURE__ */ j("linearGradient", {
273
- id: `ecoScopeGrad-${e.scope}`,
274
- x1: "0",
275
- y1: "0",
276
- x2: "0",
277
- y2: "1",
278
- children: [/* @__PURE__ */ A("stop", {
279
- offset: "0%",
280
- style: {
281
- stopColor: y[e.scope],
282
- stopOpacity: 1
283
- }
284
- }), /* @__PURE__ */ A("stop", {
285
- offset: "100%",
286
- style: {
287
- stopColor: y[e.scope],
288
- stopOpacity: .55
289
- }
290
- })]
291
- }, e.scope)) }),
292
- /* @__PURE__ */ A(o, {
293
- vertical: !1,
294
- stroke: "var(--color-border-seam)",
295
- strokeOpacity: .6,
296
- strokeDasharray: "3 4"
297
- }),
298
- /* @__PURE__ */ A(s, {
299
- dataKey: "label",
300
- tick: {
301
- fill: "var(--color-text-secondary)",
302
- fontSize: 12
303
- },
304
- axisLine: { stroke: "var(--color-border-seam)" },
305
- tickLine: !1,
306
- dy: 4
501
+ /* @__PURE__ */ b("div", {
502
+ className: "w-36 shrink-0 sm:w-48",
503
+ children: /* @__PURE__ */ b(d, { status: e })
307
504
  }),
308
- /* @__PURE__ */ A(ee, {
309
- tick: {
310
- fill: "var(--color-text-tertiary)",
311
- fontSize: 11
312
- },
313
- axisLine: !1,
314
- tickLine: !1,
315
- width: 48,
316
- tickFormatter: (e) => e >= 1e3 ? `${Math.round(e / 1e3)}t` : `${e}`
505
+ /* @__PURE__ */ b(ce, {
506
+ value: r,
507
+ color: i,
508
+ className: "flex-1"
317
509
  }),
318
- /* @__PURE__ */ A(t, {
319
- cursor: {
320
- fill: "var(--color-bg-sunken)",
321
- opacity: .4
322
- },
323
- contentStyle: {
324
- background: "var(--color-bg-surface)",
325
- border: "1px solid var(--color-border-seam)",
326
- borderRadius: 12,
327
- color: "var(--color-text-primary)"
328
- },
329
- formatter: (e) => [u(e), "Emissions"]
510
+ /* @__PURE__ */ b("span", {
511
+ className: "w-9 shrink-0 text-right text-sm font-medium tabular-nums text-text-primary",
512
+ children: n
330
513
  }),
331
- /* @__PURE__ */ j(a, {
332
- dataKey: "kg",
333
- radius: [
334
- 8,
335
- 8,
336
- 2,
337
- 2
338
- ],
339
- maxBarSize: 72,
340
- children: [Z.map((e) => /* @__PURE__ */ A(r, { fill: `url(#ecoScopeGrad-${e.scope})` }, e.scope)), /* @__PURE__ */ A(i, {
341
- dataKey: "kg",
342
- position: "top",
343
- formatter: (e) => e > 0 ? u(e) : "",
344
- style: {
345
- fill: "var(--color-text-secondary)",
346
- fontSize: 11,
347
- fontWeight: 600
348
- }
349
- })]
514
+ /* @__PURE__ */ b("span", {
515
+ className: "hidden w-12 shrink-0 text-right text-xs tabular-nums text-text-tertiary sm:inline",
516
+ children: ae(r)
350
517
  })
351
518
  ]
352
- })
353
- })
354
- }), /* @__PURE__ */ A(ie, {
355
- data: Z,
356
- className: "mt-4 border-t border-border-seam pt-4"
357
- })] })]
358
- }), /* @__PURE__ */ j(M, {
359
- treatment: "glass",
360
- className: "p-6",
361
- children: [/* @__PURE__ */ j("div", {
362
- className: "mb-4 flex items-center justify-between gap-3",
363
- children: [/* @__PURE__ */ j("div", {
364
- className: "flex items-center gap-2",
365
- children: [/* @__PURE__ */ A("h2", {
366
- className: "text-base font-semibold text-text-primary",
367
- children: "Recent breaches"
368
- }), Q.length > 0 && /* @__PURE__ */ A("span", {
369
- className: "rounded-full bg-status-error-bg-subtle px-2 py-0.5 text-xs font-medium tabular-nums text-status-error-text",
370
- children: V.data?.pageInfo?.hasMore ? `${Q.length}+` : Q.length
371
- })]
372
- }), /* @__PURE__ */ j("button", {
373
- type: "button",
374
- onClick: () => F("monitoring"),
375
- className: "inline-flex items-center gap-1 text-sm font-medium text-accent hover:underline",
376
- children: ["Monitoring ", /* @__PURE__ */ A(T, { className: "h-4 w-4" })]
377
- })]
378
- }), Q.length === 0 ? /* @__PURE__ */ j("div", {
379
- className: "flex flex-col items-center justify-center rounded-xl border border-dashed border-border-seam py-10 text-center",
380
- children: [
381
- /* @__PURE__ */ A("span", {
382
- className: "flex size-12 items-center justify-center rounded-full bg-status-success-bg-subtle",
383
- children: /* @__PURE__ */ A(fe, { className: "h-6 w-6 text-status-success-text" })
384
- }),
385
- /* @__PURE__ */ A("p", {
386
- className: "mt-3 text-sm font-medium text-text-primary",
387
- children: "All parameters in range"
388
- }),
389
- /* @__PURE__ */ A("p", {
390
- className: "mt-1 text-xs text-text-tertiary",
391
- children: "No open threshold breaches."
392
- })
393
- ]
394
- }) : /* @__PURE__ */ A("ul", {
395
- className: "space-y-2.5",
396
- children: Q.map((e) => /* @__PURE__ */ j("li", {
397
- className: "flex items-start justify-between gap-3 rounded-xl bg-bg-sunken/50 p-3",
398
- children: [/* @__PURE__ */ j("div", {
399
- className: "flex min-w-0 items-start gap-2.5",
400
- children: [/* @__PURE__ */ A("span", {
401
- "aria-hidden": "true",
402
- className: "mt-1.5 size-2 shrink-0 rounded-full bg-status-error-text motion-safe:animate-vc-glow-pulse"
403
- }), /* @__PURE__ */ j("div", {
404
- className: "min-w-0",
405
- children: [/* @__PURE__ */ A("p", {
406
- className: "truncate text-sm font-medium text-text-primary",
407
- children: e.parameter
408
- }), /* @__PURE__ */ j("p", {
409
- className: "text-xs text-text-tertiary",
410
- children: [
411
- /* @__PURE__ */ j("span", {
412
- className: "tabular-nums",
413
- children: [
414
- f(e.value),
415
- " ",
416
- e.unit
417
- ]
418
- }),
419
- " ",
420
- "· ",
421
- m(e.recordedAt)
422
- ]
423
- })]
424
- })]
425
- }), /* @__PURE__ */ A(h, { status: "BREACH" })]
426
- }, e.id))
427
- })]
428
- })]
429
- }),
430
- /* @__PURE__ */ A(_, {
431
- title: "Recent field observations",
432
- description: "Latest wildlife & biodiversity sightings recorded across your sites.",
433
- action: /* @__PURE__ */ j("button", {
434
- type: "button",
435
- onClick: () => F("observations"),
436
- className: "inline-flex items-center gap-1 text-sm font-medium text-accent hover:underline",
437
- children: ["All observations ", /* @__PURE__ */ A(T, { className: "h-4 w-4" })]
438
- }),
439
- children: $.length === 0 ? /* @__PURE__ */ A(v, {
440
- illustration: "empty-data",
441
- icon: /* @__PURE__ */ A(E, { className: "h-10 w-10" }),
442
- title: "No observations yet",
443
- description: "Record your first field observation to build your biodiversity dataset."
444
- }) : /* @__PURE__ */ A("div", {
519
+ }, e);
520
+ });
521
+ })()
522
+ })
523
+ })
524
+ }) : null
525
+ }, Q = k.layout.widgetOrder, $ = [];
526
+ for (let e = 0; e < Q.length; e++) {
527
+ let t = Q[e];
528
+ if (t === "kpis") {
529
+ $.push(/* @__PURE__ */ b("div", { children: Z[t] }, t));
530
+ continue;
531
+ }
532
+ if (t === "carbonByScope" && Q[e + 1] === "recentBreaches") {
533
+ $.push(/* @__PURE__ */ x("div", {
534
+ className: "grid grid-cols-1 gap-6 lg:grid-cols-3",
535
+ children: [/* @__PURE__ */ b("div", {
536
+ className: "lg:col-span-2",
537
+ children: Y
538
+ }), /* @__PURE__ */ b("div", { children: X })]
539
+ }, `${t}-pair`)), e += 1;
540
+ continue;
541
+ }
542
+ if (t === "recentBreaches" && Q[e - 1] === "carbonByScope") continue;
543
+ let n = Z[t];
544
+ n && $.push(/* @__PURE__ */ b("div", { children: n }, t));
545
+ }
546
+ return /* @__PURE__ */ x(o, {
547
+ title: "EcoImpactHub",
548
+ titleGradient: !0,
549
+ aurora: !0,
550
+ description: `Welcome back, ${Fe} — your environment, conservation & sustainability control room.`,
551
+ actions: G,
552
+ children: [/* @__PURE__ */ x("div", {
553
+ className: "space-y-6",
554
+ children: [$, k.layout.notes.length > 0 && /* @__PURE__ */ b(m, {
555
+ title: "Custom notes",
556
+ description: "Your personal notes, visible only to you.",
557
+ children: /* @__PURE__ */ b("div", {
445
558
  className: "grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3",
446
- children: $.map((e) => /* @__PURE__ */ j(M, {
559
+ children: k.layout.notes.map((e) => /* @__PURE__ */ b(C, {
447
560
  treatment: "plain",
448
- className: "p-4 transition-shadow hover:shadow-float",
449
- children: [/* @__PURE__ */ j("div", {
450
- className: "flex items-start justify-between gap-2",
451
- children: [/* @__PURE__ */ j("div", {
452
- className: "flex min-w-0 items-start gap-2.5",
453
- children: [/* @__PURE__ */ A("span", {
454
- className: "mt-0.5 flex size-8 shrink-0 items-center justify-center rounded-lg bg-[var(--color-accent-soft)] text-accent",
455
- children: /* @__PURE__ */ A(E, { className: "h-4 w-4" })
456
- }), /* @__PURE__ */ j("div", {
457
- className: "min-w-0",
458
- children: [/* @__PURE__ */ A("p", {
459
- className: "truncate text-sm font-semibold text-text-primary",
460
- children: e.species?.commonName ?? "Unknown species"
461
- }), e.species?.scientificName && /* @__PURE__ */ A("p", {
462
- className: "truncate text-xs italic text-text-tertiary",
463
- children: e.species.scientificName
464
- })]
561
+ className: "p-4",
562
+ children: /* @__PURE__ */ x("div", {
563
+ className: "flex items-start gap-2.5",
564
+ children: [/* @__PURE__ */ b(Te, { className: "mt-0.5 h-4 w-4 shrink-0 text-accent" }), /* @__PURE__ */ x("div", {
565
+ className: "min-w-0",
566
+ children: [e.title && /* @__PURE__ */ b("p", {
567
+ className: "truncate text-sm font-semibold text-text-primary",
568
+ children: e.title
569
+ }), e.body && /* @__PURE__ */ b("p", {
570
+ className: "mt-0.5 text-sm text-text-secondary",
571
+ children: e.body
465
572
  })]
466
- }), /* @__PURE__ */ j("span", {
467
- className: "shrink-0 rounded-full bg-[var(--color-accent-soft)] px-2 py-0.5 text-xs font-medium tabular-nums text-text-primary",
468
- children: ["×", f(e.count)]
469
- })]
470
- }), /* @__PURE__ */ j("div", {
471
- className: "mt-3 flex items-center justify-between border-t border-border-seam/70 pt-2.5",
472
- children: [/* @__PURE__ */ A("span", {
473
- className: "rounded-full bg-bg-sunken px-2 py-0.5 text-xs text-text-secondary",
474
- children: d(e.method)
475
- }), /* @__PURE__ */ A("span", {
476
- className: "text-xs text-text-tertiary",
477
- children: m(e.observedAt)
478
573
  })]
479
- })]
574
+ })
480
575
  }, e.id))
481
576
  })
482
- }),
483
- U.length > 0 && /* @__PURE__ */ A(_, {
484
- title: "Conservation status",
485
- description: "Distribution of tracked species by IUCN-style status.",
486
- children: /* @__PURE__ */ A(M, {
487
- treatment: "plain",
488
- className: "p-6",
489
- children: /* @__PURE__ */ A("div", {
490
- className: "space-y-3.5",
491
- children: (() => {
492
- let e = /* @__PURE__ */ new Map();
493
- for (let t of U) e.set(t.conservationStatus, (e.get(t.conservationStatus) ?? 0) + 1);
494
- let t = U.length;
495
- return [...e.entries()].sort((e, t) => t[1] - e[1]).map(([e, n]) => {
496
- let r = n / t * 100, i = P[e] ?? "var(--color-text-tertiary)";
497
- return /* @__PURE__ */ j("div", {
498
- className: "flex items-center gap-3 sm:gap-4",
499
- children: [
500
- /* @__PURE__ */ A("div", {
501
- className: "w-36 shrink-0 sm:w-48",
502
- children: /* @__PURE__ */ A(h, { status: e })
503
- }),
504
- /* @__PURE__ */ A(re, {
505
- value: r,
506
- color: i,
507
- className: "flex-1"
508
- }),
509
- /* @__PURE__ */ A("span", {
510
- className: "w-9 shrink-0 text-right text-sm font-medium tabular-nums text-text-primary",
511
- children: n
512
- }),
513
- /* @__PURE__ */ A("span", {
514
- className: "hidden w-12 shrink-0 text-right text-xs tabular-nums text-text-tertiary sm:inline",
515
- children: p(r)
516
- })
517
- ]
518
- }, e);
519
- });
520
- })()
521
- })
522
- })
523
- })
524
- ]
577
+ })]
578
+ }), /* @__PURE__ */ b(se, {
579
+ open: Ae,
580
+ onOpenChange: O,
581
+ layout: k
582
+ })]
525
583
  });
526
584
  }
527
585
  //#endregion
528
- export { F as DashboardPage };
586
+ export { E as DashboardPage };
529
587
 
530
588
  //# sourceMappingURL=DashboardPage.js.map