@burdenoff/microfe-housingvista 2026.720.1 → 2026.720.2

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 (52) hide show
  1. package/dist/housingvista/components/maps/PropertyMapView.d.ts +22 -0
  2. package/dist/housingvista/components/maps/PropertyMapView.d.ts.map +1 -0
  3. package/dist/housingvista/components/maps/PropertyMapView.js +175 -0
  4. package/dist/housingvista/components/maps/PropertyMapView.js.map +1 -0
  5. package/dist/housingvista/components/maps/index.d.ts +5 -0
  6. package/dist/housingvista/components/maps/index.d.ts.map +1 -0
  7. package/dist/housingvista/components/maps/index.js +2 -0
  8. package/dist/housingvista/components/maps/leaflet-setup.d.ts +27 -0
  9. package/dist/housingvista/components/maps/leaflet-setup.d.ts.map +1 -0
  10. package/dist/housingvista/components/maps/leaflet-setup.js +36 -0
  11. package/dist/housingvista/components/maps/leaflet-setup.js.map +1 -0
  12. package/dist/housingvista/hooks/index.d.ts +1 -0
  13. package/dist/housingvista/hooks/index.d.ts.map +1 -1
  14. package/dist/housingvista/hooks/index.js +7 -4
  15. package/dist/housingvista/hooks/index.js.map +1 -1
  16. package/dist/housingvista/pages/properties/PropertiesPage.d.ts.map +1 -1
  17. package/dist/housingvista/pages/properties/PropertiesPage.js +224 -160
  18. package/dist/housingvista/pages/properties/PropertiesPage.js.map +1 -1
  19. package/dist/microfe-housingvista.css +2 -0
  20. package/dist/node_modules/@react-leaflet/core/lib/attribution.js +12 -0
  21. package/dist/node_modules/@react-leaflet/core/lib/attribution.js.map +1 -0
  22. package/dist/node_modules/@react-leaflet/core/lib/component.js +39 -0
  23. package/dist/node_modules/@react-leaflet/core/lib/component.js.map +1 -0
  24. package/dist/node_modules/@react-leaflet/core/lib/context.js +23 -0
  25. package/dist/node_modules/@react-leaflet/core/lib/context.js.map +1 -0
  26. package/dist/node_modules/@react-leaflet/core/lib/div-overlay.js +15 -0
  27. package/dist/node_modules/@react-leaflet/core/lib/div-overlay.js.map +1 -0
  28. package/dist/node_modules/@react-leaflet/core/lib/element.js +30 -0
  29. package/dist/node_modules/@react-leaflet/core/lib/element.js.map +1 -0
  30. package/dist/node_modules/@react-leaflet/core/lib/events.js +14 -0
  31. package/dist/node_modules/@react-leaflet/core/lib/events.js.map +1 -0
  32. package/dist/node_modules/@react-leaflet/core/lib/generic.js +18 -0
  33. package/dist/node_modules/@react-leaflet/core/lib/generic.js.map +1 -0
  34. package/dist/node_modules/@react-leaflet/core/lib/grid-layer.js +9 -0
  35. package/dist/node_modules/@react-leaflet/core/lib/grid-layer.js.map +1 -0
  36. package/dist/node_modules/@react-leaflet/core/lib/layer.js +23 -0
  37. package/dist/node_modules/@react-leaflet/core/lib/layer.js.map +1 -0
  38. package/dist/node_modules/@react-leaflet/core/lib/pane.js +12 -0
  39. package/dist/node_modules/@react-leaflet/core/lib/pane.js.map +1 -0
  40. package/dist/node_modules/leaflet/dist/leaflet-src.js +4585 -0
  41. package/dist/node_modules/leaflet/dist/leaflet-src.js.map +1 -0
  42. package/dist/node_modules/react-leaflet/lib/MapContainer.js +33 -0
  43. package/dist/node_modules/react-leaflet/lib/MapContainer.js.map +1 -0
  44. package/dist/node_modules/react-leaflet/lib/Marker.js +16 -0
  45. package/dist/node_modules/react-leaflet/lib/Marker.js.map +1 -0
  46. package/dist/node_modules/react-leaflet/lib/Popup.js +37 -0
  47. package/dist/node_modules/react-leaflet/lib/Popup.js.map +1 -0
  48. package/dist/node_modules/react-leaflet/lib/TileLayer.js +18 -0
  49. package/dist/node_modules/react-leaflet/lib/TileLayer.js.map +1 -0
  50. package/dist/node_modules/react-leaflet/lib/hooks.js +18 -0
  51. package/dist/node_modules/react-leaflet/lib/hooks.js.map +1 -0
  52. package/package.json +5 -1
@@ -0,0 +1,33 @@
1
+ import { __toESM as e } from "../../../_virtual/_rolldown/runtime.js";
2
+ import { LeafletContext as t, createLeafletContext as n } from "../../@react-leaflet/core/lib/context.js";
3
+ import { require_leaflet_src as r } from "../../leaflet/dist/leaflet-src.js";
4
+ import i, { forwardRef as a, useCallback as o, useEffect as s, useImperativeHandle as c, useRef as l, useState as u } from "react";
5
+ //#region node_modules/react-leaflet/lib/MapContainer.js
6
+ var d = /* @__PURE__ */ e(r(), 1);
7
+ function f({ bounds: e, boundsOptions: r, center: a, children: f, className: p, id: m, placeholder: h, style: g, whenReady: _, zoom: v, ...y }, b) {
8
+ let [x] = u({
9
+ className: p,
10
+ id: m,
11
+ style: g
12
+ }), [S, C] = u(null), w = l(void 0);
13
+ c(b, () => S?.map ?? null, [S]);
14
+ let T = o((t) => {
15
+ if (t !== null && !w.current) {
16
+ let i = new d.Map(t, y);
17
+ w.current = i, a != null && v != null ? i.setView(a, v) : e != null && i.fitBounds(e, r), _ != null && i.whenReady(_), C(n(i));
18
+ }
19
+ }, []);
20
+ s(() => () => {
21
+ S?.map.remove();
22
+ }, [S]);
23
+ let E = S ? /* @__PURE__ */ i.createElement(t, { value: S }, f) : h ?? null;
24
+ return /* @__PURE__ */ i.createElement("div", {
25
+ ...x,
26
+ ref: T
27
+ }, E);
28
+ }
29
+ var p = /* @__PURE__ */ a(f);
30
+ //#endregion
31
+ export { p as MapContainer };
32
+
33
+ //# sourceMappingURL=MapContainer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MapContainer.js","names":["LeafletMap"],"sources":["../../../../node_modules/react-leaflet/lib/MapContainer.js"],"sourcesContent":["import { LeafletContext, createLeafletContext } from '@react-leaflet/core';\nimport { Map as LeafletMap } from 'leaflet';\nimport React, { forwardRef, useCallback, useEffect, useImperativeHandle, useRef, useState } from 'react';\nfunction MapContainerComponent({ bounds, boundsOptions, center, children, className, id, placeholder, style, whenReady, zoom, ...options }, forwardedRef) {\n const [props] = useState({\n className,\n id,\n style\n });\n const [context, setContext] = useState(null);\n const mapInstanceRef = useRef(undefined);\n useImperativeHandle(forwardedRef, ()=>context?.map ?? null, [\n context\n ]);\n // biome-ignore lint/correctness/useExhaustiveDependencies: ref callback\n const mapRef = useCallback((node)=>{\n if (node !== null && !mapInstanceRef.current) {\n const map = new LeafletMap(node, options);\n mapInstanceRef.current = map;\n if (center != null && zoom != null) {\n map.setView(center, zoom);\n } else if (bounds != null) {\n map.fitBounds(bounds, boundsOptions);\n }\n if (whenReady != null) {\n map.whenReady(whenReady);\n }\n setContext(createLeafletContext(map));\n }\n }, []);\n useEffect(()=>{\n return ()=>{\n context?.map.remove();\n };\n }, [\n context\n ]);\n const contents = context ? /*#__PURE__*/ React.createElement(LeafletContext, {\n value: context\n }, children) : placeholder ?? null;\n return /*#__PURE__*/ React.createElement(\"div\", {\n ...props,\n ref: mapRef\n }, contents);\n}\nexport const MapContainer = /*#__PURE__*/ forwardRef(MapContainerComponent);\n"],"x_google_ignoreList":[0],"mappings":";;;;;;AAGA,SAAS,EAAsB,EAAE,WAAQ,kBAAe,WAAQ,aAAU,cAAW,OAAI,gBAAa,UAAO,cAAW,SAAM,GAAG,KAAW,GAAc;CACtJ,IAAM,CAAC,KAAS,EAAS;EACrB;EACA;EACA;EACH,CAAC,EACI,CAAC,GAAS,KAAc,EAAS,KAAK,EACtC,IAAiB,EAAO,KAAA,EAAU;AACxC,GAAoB,SAAkB,GAAS,OAAO,MAAM,CACxD,EACH,CAAC;CAEF,IAAM,IAAS,GAAa,MAAO;AAC/B,MAAI,MAAS,QAAQ,CAAC,EAAe,SAAS;GAC1C,IAAM,IAAM,IAAIA,EAAAA,IAAW,GAAM,EAAQ;AAUzC,GATA,EAAe,UAAU,GACrB,KAAU,QAAQ,KAAQ,OAC1B,EAAI,QAAQ,GAAQ,EAAK,GAClB,KAAU,QACjB,EAAI,UAAU,GAAQ,EAAc,EAEpC,KAAa,QACb,EAAI,UAAU,EAAU,EAE5B,EAAW,EAAqB,EAAI,CAAC;;IAE1C,EAAE,CAAC;AACN,eACe;AACP,KAAS,IAAI,QAAQ;IAE1B,CACC,EACH,CAAC;CACF,IAAM,IAAW,IAAwB,kBAAM,cAAc,GAAgB,EACzE,OAAO,GACV,EAAE,EAAS,GAAG,KAAe;AAC9B,QAAqB,kBAAM,cAAc,OAAO;EAC5C,GAAG;EACH,KAAK;EACR,EAAE,EAAS;;AAEhB,IAAa,IAA6B,kBAAW,EAAsB"}
@@ -0,0 +1,16 @@
1
+ import { __toESM as e } from "../../../_virtual/_rolldown/runtime.js";
2
+ import { extendContext as t } from "../../@react-leaflet/core/lib/context.js";
3
+ import { require_leaflet_src as n } from "../../leaflet/dist/leaflet-src.js";
4
+ import { createElementObject as r } from "../../@react-leaflet/core/lib/element.js";
5
+ import { createLayerComponent as i } from "../../@react-leaflet/core/lib/generic.js";
6
+ //#region node_modules/react-leaflet/lib/Marker.js
7
+ var a = /* @__PURE__ */ e(n(), 1), o = i(function({ position: e, ...n }, i) {
8
+ let o = new a.Marker(e, n);
9
+ return r(o, t(i, { overlayContainer: o }));
10
+ }, function(e, t, n) {
11
+ t.position !== n.position && e.setLatLng(t.position), t.icon != null && t.icon !== n.icon && e.setIcon(t.icon), t.zIndexOffset != null && t.zIndexOffset !== n.zIndexOffset && e.setZIndexOffset(t.zIndexOffset), t.opacity != null && t.opacity !== n.opacity && e.setOpacity(t.opacity), e.dragging != null && t.draggable !== n.draggable && (t.draggable === !0 ? e.dragging.enable() : e.dragging.disable());
12
+ });
13
+ //#endregion
14
+ export { o as Marker };
15
+
16
+ //# sourceMappingURL=Marker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Marker.js","names":["LeafletMarker"],"sources":["../../../../node_modules/react-leaflet/lib/Marker.js"],"sourcesContent":["import { createElementObject, createLayerComponent, extendContext } from '@react-leaflet/core';\nimport { Marker as LeafletMarker } from 'leaflet';\nexport const Marker = createLayerComponent(function createMarker({ position, ...options }, ctx) {\n const marker = new LeafletMarker(position, options);\n return createElementObject(marker, extendContext(ctx, {\n overlayContainer: marker\n }));\n}, function updateMarker(marker, props, prevProps) {\n if (props.position !== prevProps.position) {\n marker.setLatLng(props.position);\n }\n if (props.icon != null && props.icon !== prevProps.icon) {\n marker.setIcon(props.icon);\n }\n if (props.zIndexOffset != null && props.zIndexOffset !== prevProps.zIndexOffset) {\n marker.setZIndexOffset(props.zIndexOffset);\n }\n if (props.opacity != null && props.opacity !== prevProps.opacity) {\n marker.setOpacity(props.opacity);\n }\n if (marker.dragging != null && props.draggable !== prevProps.draggable) {\n if (props.draggable === true) {\n marker.dragging.enable();\n } else {\n marker.dragging.disable();\n }\n }\n});\n"],"x_google_ignoreList":[0],"mappings":";;;;;;mCAEa,IAAS,EAAqB,SAAsB,EAAE,aAAU,GAAG,KAAW,GAAK;CAC5F,IAAM,IAAS,IAAIA,EAAAA,OAAc,GAAU,EAAQ;AACnD,QAAO,EAAoB,GAAQ,EAAc,GAAK,EAClD,kBAAkB,GACrB,CAAC,CAAC;GACJ,SAAsB,GAAQ,GAAO,GAAW;AAa/C,CAZI,EAAM,aAAa,EAAU,YAC7B,EAAO,UAAU,EAAM,SAAS,EAEhC,EAAM,QAAQ,QAAQ,EAAM,SAAS,EAAU,QAC/C,EAAO,QAAQ,EAAM,KAAK,EAE1B,EAAM,gBAAgB,QAAQ,EAAM,iBAAiB,EAAU,gBAC/D,EAAO,gBAAgB,EAAM,aAAa,EAE1C,EAAM,WAAW,QAAQ,EAAM,YAAY,EAAU,WACrD,EAAO,WAAW,EAAM,QAAQ,EAEhC,EAAO,YAAY,QAAQ,EAAM,cAAc,EAAU,cACrD,EAAM,cAAc,KACpB,EAAO,SAAS,QAAQ,GAExB,EAAO,SAAS,SAAS;EAGnC"}
@@ -0,0 +1,37 @@
1
+ import { __toESM as e } from "../../../_virtual/_rolldown/runtime.js";
2
+ import { require_leaflet_src as t } from "../../leaflet/dist/leaflet-src.js";
3
+ import { createElementObject as n } from "../../@react-leaflet/core/lib/element.js";
4
+ import { createOverlayComponent as r } from "../../@react-leaflet/core/lib/generic.js";
5
+ import { useEffect as i } from "react";
6
+ //#region node_modules/react-leaflet/lib/Popup.js
7
+ var a = /* @__PURE__ */ e(t(), 1), o = r(function(e, t) {
8
+ return n(new a.Popup(e, t.overlayContainer), t);
9
+ }, function(e, t, { position: n }, r) {
10
+ i(function() {
11
+ let { instance: i } = e;
12
+ function a(e) {
13
+ e.popup === i && (i.update(), r(!0));
14
+ }
15
+ function o(e) {
16
+ e.popup === i && r(!1);
17
+ }
18
+ return t.map.on({
19
+ popupopen: a,
20
+ popupclose: o
21
+ }), t.overlayContainer == null ? (n != null && i.setLatLng(n), i.openOn(t.map)) : t.overlayContainer.bindPopup(i), function() {
22
+ t.map.off({
23
+ popupopen: a,
24
+ popupclose: o
25
+ }), t.overlayContainer?.unbindPopup(), t.map.removeLayer(i);
26
+ };
27
+ }, [
28
+ e,
29
+ t,
30
+ r,
31
+ n
32
+ ]);
33
+ });
34
+ //#endregion
35
+ export { o as Popup };
36
+
37
+ //# sourceMappingURL=Popup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Popup.js","names":["LeafletPopup"],"sources":["../../../../node_modules/react-leaflet/lib/Popup.js"],"sourcesContent":["import { createElementObject, createOverlayComponent } from '@react-leaflet/core';\nimport { Popup as LeafletPopup } from 'leaflet';\nimport { useEffect } from 'react';\nexport const Popup = createOverlayComponent(function createPopup(props, context) {\n const popup = new LeafletPopup(props, context.overlayContainer);\n return createElementObject(popup, context);\n}, function usePopupLifecycle(element, context, { position }, setOpen) {\n useEffect(function addPopup() {\n const { instance } = element;\n function onPopupOpen(event) {\n if (event.popup === instance) {\n instance.update();\n setOpen(true);\n }\n }\n function onPopupClose(event) {\n if (event.popup === instance) {\n setOpen(false);\n }\n }\n context.map.on({\n popupopen: onPopupOpen,\n popupclose: onPopupClose\n });\n if (context.overlayContainer == null) {\n // Attach to a Map\n if (position != null) {\n instance.setLatLng(position);\n }\n instance.openOn(context.map);\n } else {\n // Attach to container component\n context.overlayContainer.bindPopup(instance);\n }\n return function removePopup() {\n context.map.off({\n popupopen: onPopupOpen,\n popupclose: onPopupClose\n });\n context.overlayContainer?.unbindPopup();\n context.map.removeLayer(instance);\n };\n }, [\n element,\n context,\n setOpen,\n position\n ]);\n});\n"],"x_google_ignoreList":[0],"mappings":";;;;;;mCAGa,IAAQ,EAAuB,SAAqB,GAAO,GAAS;AAE7E,QAAO,EADO,IAAIA,EAAAA,MAAa,GAAO,EAAQ,iBAAiB,EAC7B,EAAQ;GAC3C,SAA2B,GAAS,GAAS,EAAE,eAAY,GAAS;AACnE,GAAU,WAAoB;EAC1B,IAAM,EAAE,gBAAa;EACrB,SAAS,EAAY,GAAO;AACxB,GAAI,EAAM,UAAU,MAChB,EAAS,QAAQ,EACjB,EAAQ,GAAK;;EAGrB,SAAS,EAAa,GAAO;AACzB,GAAI,EAAM,UAAU,KAChB,EAAQ,GAAM;;AAiBtB,SAdA,EAAQ,IAAI,GAAG;GACX,WAAW;GACX,YAAY;GACf,CAAC,EACE,EAAQ,oBAAoB,QAExB,KAAY,QACZ,EAAS,UAAU,EAAS,EAEhC,EAAS,OAAO,EAAQ,IAAI,IAG5B,EAAQ,iBAAiB,UAAU,EAAS,EAEzC,WAAuB;AAM1B,GALA,EAAQ,IAAI,IAAI;IACZ,WAAW;IACX,YAAY;IACf,CAAC,EACF,EAAQ,kBAAkB,aAAa,EACvC,EAAQ,IAAI,YAAY,EAAS;;IAEtC;EACC;EACA;EACA;EACA;EACH,CAAC;EACJ"}
@@ -0,0 +1,18 @@
1
+ import { __toESM as e } from "../../../_virtual/_rolldown/runtime.js";
2
+ import { withPane as t } from "../../@react-leaflet/core/lib/pane.js";
3
+ import { require_leaflet_src as n } from "../../leaflet/dist/leaflet-src.js";
4
+ import { createElementObject as r } from "../../@react-leaflet/core/lib/element.js";
5
+ import { createTileLayerComponent as i } from "../../@react-leaflet/core/lib/generic.js";
6
+ import { updateGridLayer as a } from "../../@react-leaflet/core/lib/grid-layer.js";
7
+ //#region node_modules/react-leaflet/lib/TileLayer.js
8
+ var o = /* @__PURE__ */ e(n(), 1), s = i(function({ url: e, ...n }, i) {
9
+ return r(new o.TileLayer(e, t(n, i)), i);
10
+ }, function(e, t, n) {
11
+ a(e, t, n);
12
+ let { url: r } = t;
13
+ r != null && r !== n.url && e.setUrl(r);
14
+ });
15
+ //#endregion
16
+ export { s as TileLayer };
17
+
18
+ //# sourceMappingURL=TileLayer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TileLayer.js","names":["LeafletTileLayer"],"sources":["../../../../node_modules/react-leaflet/lib/TileLayer.js"],"sourcesContent":["import { createElementObject, createTileLayerComponent, updateGridLayer, withPane } from '@react-leaflet/core';\nimport { TileLayer as LeafletTileLayer } from 'leaflet';\nexport const TileLayer = createTileLayerComponent(function createTileLayer({ url, ...options }, context) {\n const layer = new LeafletTileLayer(url, withPane(options, context));\n return createElementObject(layer, context);\n}, function updateTileLayer(layer, props, prevProps) {\n updateGridLayer(layer, props, prevProps);\n const { url } = props;\n if (url != null && url !== prevProps.url) {\n layer.setUrl(url);\n }\n});\n"],"x_google_ignoreList":[0],"mappings":";;;;;;;mCAEa,IAAY,EAAyB,SAAyB,EAAE,QAAK,GAAG,KAAW,GAAS;AAErG,QAAO,EADO,IAAIA,EAAAA,UAAiB,GAAK,EAAS,GAAS,EAAQ,CAAC,EACjC,EAAQ;GAC3C,SAAyB,GAAO,GAAO,GAAW;AACjD,GAAgB,GAAO,GAAO,EAAU;CACxC,IAAM,EAAE,WAAQ;AAChB,CAAI,KAAO,QAAQ,MAAQ,EAAU,OACjC,EAAM,OAAO,EAAI;EAEvB"}
@@ -0,0 +1,18 @@
1
+ import { useLeafletContext as e } from "../../@react-leaflet/core/lib/context.js";
2
+ import { useEffect as t } from "react";
3
+ //#region node_modules/react-leaflet/lib/hooks.js
4
+ function n() {
5
+ return e().map;
6
+ }
7
+ function r(e) {
8
+ let r = n();
9
+ return t(function() {
10
+ return r.on(e), function() {
11
+ r.off(e);
12
+ };
13
+ }, [r, e]), r;
14
+ }
15
+ //#endregion
16
+ export { r as useMapEvents };
17
+
18
+ //# sourceMappingURL=hooks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks.js","names":[],"sources":["../../../../node_modules/react-leaflet/lib/hooks.js"],"sourcesContent":["import { useLeafletContext } from '@react-leaflet/core';\nimport { useEffect } from 'react';\nexport function useMap() {\n return useLeafletContext().map;\n}\nexport function useMapEvent(type, handler) {\n const map = useMap();\n useEffect(function addMapEventHandler() {\n // @ts-ignore event type\n map.on(type, handler);\n return function removeMapEventHandler() {\n // @ts-ignore event type\n map.off(type, handler);\n };\n }, [\n map,\n type,\n handler\n ]);\n return map;\n}\nexport function useMapEvents(handlers) {\n const map = useMap();\n useEffect(function addMapEventHandlers() {\n map.on(handlers);\n return function removeMapEventHandlers() {\n map.off(handlers);\n };\n }, [\n map,\n handlers\n ]);\n return map;\n}\n"],"x_google_ignoreList":[0],"mappings":";;;AAEA,SAAgB,IAAS;AACrB,QAAO,GAAmB,CAAC;;AAkB/B,SAAgB,EAAa,GAAU;CACnC,IAAM,IAAM,GAAQ;AAUpB,QATA,EAAU,WAA+B;AAErC,SADA,EAAI,GAAG,EAAS,EACT,WAAkC;AACrC,KAAI,IAAI,EAAS;;IAEtB,CACC,GACA,EACH,CAAC,EACK"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@burdenoff/microfe-housingvista",
3
- "version": "2026.720.1",
3
+ "version": "2026.720.2",
4
4
  "description": "Burdenoff HousingVista Microfrontend - Comprehensive real estate platform for property management, investment, and transactions",
5
5
  "type": "module",
6
6
  "files": [
@@ -48,12 +48,15 @@
48
48
  "dependencies": {
49
49
  "@apollo/client": "^4.0.11",
50
50
  "@burdenoff/fe-libs": "2026.713.6",
51
+ "@react-leaflet/core": "^3.0.0",
51
52
  "clsx": "^2.1.1",
52
53
  "date-fns": "^4.1.0",
53
54
  "graphql": "^16.12.0",
55
+ "leaflet": "^1.9.4",
54
56
  "lucide-react": "^0.468.0",
55
57
  "react": "^19.0.0",
56
58
  "react-dom": "^19.0.0",
59
+ "react-leaflet": "^5.0.0",
57
60
  "react-router-dom": "^7.1.3",
58
61
  "recharts": "^2.15.0",
59
62
  "sonner": "^2.0.7",
@@ -76,6 +79,7 @@
76
79
  "@storybook/test": "^8.6.0",
77
80
  "@storybook/test-runner": "0.22.0",
78
81
  "@tailwindcss/vite": "^4.3.2",
82
+ "@types/leaflet": "^1.9.12",
79
83
  "@types/react": "^19.0.2",
80
84
  "@types/react-dom": "^19.0.2",
81
85
  "@vitejs/plugin-react": "^4.3.4",