diff --git a/app/package.json b/app/package.json index a3ecc716..58bb4269 100644 --- a/app/package.json +++ b/app/package.json @@ -18,8 +18,8 @@ "@tailwindcss/vite": "^4.1.18", "@types/geojson": "^7946.0.10", "axios": "^1.13.2", - "react": "^18.2.0", - "react-dom": "^18.2.0", + "react": "^19.0.0", + "react-dom": "^19.0.0", "react-rnd": "^10.4.1", "react-router-dom": "^7.10.1", "utopia-ui": "^3.0.112", @@ -29,8 +29,8 @@ "@eslint-community/eslint-plugin-eslint-comments": "^4.4.1", "@eslint/js": "^9.36.0", "@types/node": "^24.10.2", - "@types/react": "^18.2.79", - "@types/react-dom": "^18.2.25", + "@types/react": "^19.0.0", + "@types/react-dom": "^19.0.0", "@vitejs/plugin-react": "^4.0.0", "daisyui": "^5.5.14", "eslint": "^9.39.2", diff --git a/lib/package.json b/lib/package.json index 07b5124d..fbcf0503 100644 --- a/lib/package.json +++ b/lib/package.json @@ -55,8 +55,8 @@ "@types/geojson": "^7946.0.14", "@types/leaflet": "^1.9.21", "@types/leaflet.markercluster": "^1.5.5", - "@types/react": "^18.2.0", - "@types/react-dom": "^18.0.5", + "@types/react": "^19.0.0", + "@types/react-dom": "^19.0.0", "@vitejs/plugin-react": "^4.3.4", "@vitest/coverage-v8": "^3.0.5", "cypress": "^15.7.1", @@ -77,8 +77,8 @@ "happy-dom": "^20.0.11", "postcss": "^8.4.21", "prettier": "^3.7.4", - "react": "^18.3.1", - "react-dom": "^18.3.1", + "react": "^19.0.0", + "react-dom": "^19.0.0", "rollup": "^4.53.5", "rollup-plugin-dts": "^6.3.0", "rollup-plugin-postcss": "^4.0.2", @@ -94,8 +94,8 @@ "vitest": "^3.0.5" }, "peerDependencies": { - "react": "^18.2.0", - "react-dom": "^18.2.0", + "react": "^19.0.0", + "react-dom": "^19.0.0", "react-router-dom": "^7.10.1" }, "dependencies": { @@ -123,12 +123,12 @@ "react-icons": "^5.5.0", "react-image-crop": "^11.0.10", "react-inlinesvg": "^4.2.0", - "react-leaflet": "^4.2.1", - "react-leaflet-cluster": "^3.1.1", + "react-leaflet": "^5.0.0", + "react-leaflet-cluster": "^4.0.0", "react-markdown": "^9.0.1", "react-photo-album": "^3.3.0", "react-qr-code": "^2.0.16", - "react-toastify": "^9.1.3", + "react-toastify": "^11.0.5", "remark-breaks": "^4.0.0", "tiptap-markdown": "^0.9.0", "yet-another-react-lightbox": "^3.27.0" diff --git a/lib/src/Components/AppShell/ContextWrapper.tsx b/lib/src/Components/AppShell/ContextWrapper.tsx index 646aaed9..0f4e42eb 100644 --- a/lib/src/Components/AppShell/ContextWrapper.tsx +++ b/lib/src/Components/AppShell/ContextWrapper.tsx @@ -31,24 +31,24 @@ const CloseButton = ({ closeToast }: CloseButtonProps) => ( export const ContextWrapper = ({ children }: { children: React.ReactNode }) => { const isWrapped = useContext(ContextCheckContext) - const isInsideRouter = useInRouterContext() - let returnValue = children + // Build the component tree from inside out + let content = <>{children} if (!isWrapped) { - returnValue = ( + content = ( - {returnValue} + {content} ) } if (!isInsideRouter) { - returnValue = {returnValue} + content = {content} } - return returnValue + return content } // eslint-disable-next-line react/prop-types diff --git a/lib/src/Components/AppShell/UserControl.tsx b/lib/src/Components/AppShell/UserControl.tsx index ff0ef561..e6622a03 100644 --- a/lib/src/Components/AppShell/UserControl.tsx +++ b/lib/src/Components/AppShell/UserControl.tsx @@ -32,7 +32,7 @@ export const UserControl = () => { return 'Bye bye' }, // other options - icon: '👋', + icon: () => '👋', }, error: { render({ data }) { diff --git a/lib/src/Components/Auth/LoginPage.tsx b/lib/src/Components/Auth/LoginPage.tsx index b1c8fbb1..4e395923 100644 --- a/lib/src/Components/Auth/LoginPage.tsx +++ b/lib/src/Components/Auth/LoginPage.tsx @@ -65,7 +65,7 @@ export function LoginPage({ inviteApi, showRequestPassword }: Props) { return `Hi ${data?.first_name ? data.first_name : 'Traveler'}` }, // other options - icon: '✌️', + icon: () => '✌️', }, error: { render({ data }) { diff --git a/lib/src/Components/Auth/RequestPasswordPage.tsx b/lib/src/Components/Auth/RequestPasswordPage.tsx index 0d13d436..1977f886 100644 --- a/lib/src/Components/Auth/RequestPasswordPage.tsx +++ b/lib/src/Components/Auth/RequestPasswordPage.tsx @@ -24,7 +24,7 @@ export function RequestPasswordPage({ resetUrl }: { resetUrl: string }) { return 'Check your mailbox' }, // other options - icon: '📬', + icon: () => '📬', }, error: { render({ data }) { diff --git a/lib/src/Components/Auth/SignupPage.tsx b/lib/src/Components/Auth/SignupPage.tsx index 296ec7bb..880767b9 100644 --- a/lib/src/Components/Auth/SignupPage.tsx +++ b/lib/src/Components/Auth/SignupPage.tsx @@ -29,7 +29,7 @@ export function SignupPage() { return `Hi ${data?.first_name ? data.first_name : 'Traveler'}` }, // other options - icon: '✌️', + icon: () => '✌️', }, error: { render({ data }) { diff --git a/lib/src/Components/Input/Autocomplete.tsx b/lib/src/Components/Input/Autocomplete.tsx index ae9be9c7..bf58aedb 100644 --- a/lib/src/Components/Input/Autocomplete.tsx +++ b/lib/src/Components/Input/Autocomplete.tsx @@ -23,17 +23,18 @@ export const Autocomplete = ({ }) => { const [filteredSuggestions, setFilteredSuggestions] = useState([]) const [heighlightedSuggestion, setHeighlightedSuggestion] = useState(0) + const inputRef = useRef(null) useEffect(() => { pushFilteredSuggestions && setFilteredSuggestions(pushFilteredSuggestions) }, [pushFilteredSuggestions]) useEffect(() => { - setFocus && inputRef.current?.focus() + if (setFocus) { + inputRef.current?.focus() + } }, [setFocus]) - const inputRef = useRef() - const getSuggestions = (value) => { const inputValue = value.trim().toLowerCase() const inputLength = inputValue.length diff --git a/lib/src/Components/Map/hooks/useClusterRef.tsx b/lib/src/Components/Map/hooks/useClusterRef.tsx index 191bd629..93b78b06 100644 --- a/lib/src/Components/Map/hooks/useClusterRef.tsx +++ b/lib/src/Components/Map/hooks/useClusterRef.tsx @@ -6,16 +6,16 @@ import { createContext, useContext, useState } from 'react' type UseClusterRefManagerResult = ReturnType const ClusterRefContext = createContext({ - clusterRef: {} as React.MutableRefObject, + clusterRef: {} as React.RefObject, setClusterRef: () => {}, }) function useClusterRefManager(): { clusterRef: any - setClusterRef: React.Dispatch>> + setClusterRef: React.Dispatch>> } { - const [clusterRef, setClusterRef] = useState>( - {} as React.MutableRefObject, + const [clusterRef, setClusterRef] = useState>( + {} as React.RefObject, ) return { clusterRef, setClusterRef } diff --git a/lib/src/Components/Map/hooks/useTimeout.tsx b/lib/src/Components/Map/hooks/useTimeout.tsx index 2a49cb23..2b5b1983 100644 --- a/lib/src/Components/Map/hooks/useTimeout.tsx +++ b/lib/src/Components/Map/hooks/useTimeout.tsx @@ -1,20 +1,17 @@ -/* eslint-disable @typescript-eslint/no-explicit-any */ -/* eslint-disable @typescript-eslint/no-unsafe-argument */ -/* eslint-disable @typescript-eslint/no-unsafe-return */ -/* eslint-disable @typescript-eslint/no-unsafe-call */ -/* eslint-disable @typescript-eslint/no-unsafe-assignment */ import { useCallback, useEffect, useRef } from 'react' -export const useTimeout = (callback, delay) => { +export const useTimeout = (callback: () => void, delay: number) => { const callbackRef = useRef(callback) - const timeoutRef = useRef() + const timeoutRef = useRef | null>(null) useEffect(() => { callbackRef.current = callback }, [callback]) const set = useCallback(() => { - timeoutRef.current = setTimeout(() => callbackRef.current(), delay) + timeoutRef.current = setTimeout(() => { + callbackRef.current() + }, delay) }, [delay]) const clear = useCallback(() => { diff --git a/package-lock.json b/package-lock.json index 3583de8d..472934d0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -19,8 +19,8 @@ "@tailwindcss/vite": "^4.1.18", "@types/geojson": "^7946.0.10", "axios": "^1.13.2", - "react": "^18.2.0", - "react-dom": "^18.2.0", + "react": "^19.0.0", + "react-dom": "^19.0.0", "react-rnd": "^10.4.1", "react-router-dom": "^7.10.1", "utopia-ui": "^3.0.112", @@ -30,8 +30,8 @@ "@eslint-community/eslint-plugin-eslint-comments": "^4.4.1", "@eslint/js": "^9.36.0", "@types/node": "^24.10.2", - "@types/react": "^18.2.79", - "@types/react-dom": "^18.2.25", + "@types/react": "^19.0.0", + "@types/react-dom": "^19.0.0", "@vitejs/plugin-react": "^4.0.0", "daisyui": "^5.5.14", "eslint": "^9.39.2", @@ -57,6 +57,26 @@ "node": ">=22.20.0" } }, + "app/node_modules/@types/react": { + "version": "19.2.7", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.7.tgz", + "integrity": "sha512-MWtvHrGZLFttgeEj28VXHxpmwYbor/ATPYbBfSFZEIRK0ecCFLl2Qo55z52Hss+UV9CRN7trSeq1zbgx7YDWWg==", + "dev": true, + "license": "MIT", + "dependencies": { + "csstype": "^3.2.2" + } + }, + "app/node_modules/@types/react-dom": { + "version": "19.2.3", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.2.3.tgz", + "integrity": "sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "@types/react": "^19.2.0" + } + }, "app/node_modules/@typescript-eslint/types": { "version": "8.48.1", "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.48.1.tgz", @@ -137,6 +157,33 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "app/node_modules/react": { + "version": "19.2.3", + "resolved": "https://registry.npmjs.org/react/-/react-19.2.3.tgz", + "integrity": "sha512-Ku/hhYbVjOQnXDZFv2+RibmLFGwFdeeKHFcOTlrt7xplBnya5OGn/hIRDsqDiSUcfORsDC7MPxwork8jBwsIWA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "app/node_modules/react-dom": { + "version": "19.2.3", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.3.tgz", + "integrity": "sha512-yELu4WmLPw5Mr/lmeEpox5rw3RETacE++JgHqQzd2dg+YbJuat3jH4ingc+WPZhxaoFzdv9y33G+F7Nl5O0GBg==", + "license": "MIT", + "dependencies": { + "scheduler": "^0.27.0" + }, + "peerDependencies": { + "react": "^19.2.3" + } + }, + "app/node_modules/scheduler": { + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.27.0.tgz", + "integrity": "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==", + "license": "MIT" + }, "lib": { "name": "utopia-ui", "version": "3.0.112", @@ -166,12 +213,12 @@ "react-icons": "^5.5.0", "react-image-crop": "^11.0.10", "react-inlinesvg": "^4.2.0", - "react-leaflet": "^4.2.1", - "react-leaflet-cluster": "^3.1.1", + "react-leaflet": "^5.0.0", + "react-leaflet-cluster": "^4.0.0", "react-markdown": "^9.0.1", "react-photo-album": "^3.3.0", "react-qr-code": "^2.0.16", - "react-toastify": "^9.1.3", + "react-toastify": "^11.0.5", "remark-breaks": "^4.0.0", "tiptap-markdown": "^0.9.0", "yet-another-react-lightbox": "^3.27.0" @@ -189,8 +236,8 @@ "@types/geojson": "^7946.0.14", "@types/leaflet": "^1.9.21", "@types/leaflet.markercluster": "^1.5.5", - "@types/react": "^18.2.0", - "@types/react-dom": "^18.0.5", + "@types/react": "^19.0.0", + "@types/react-dom": "^19.0.0", "@vitejs/plugin-react": "^4.3.4", "@vitest/coverage-v8": "^3.0.5", "cypress": "^15.7.1", @@ -211,8 +258,8 @@ "happy-dom": "^20.0.11", "postcss": "^8.4.21", "prettier": "^3.7.4", - "react": "^18.3.1", - "react-dom": "^18.3.1", + "react": "^19.0.0", + "react-dom": "^19.0.0", "rollup": "^4.53.5", "rollup-plugin-dts": "^6.3.0", "rollup-plugin-postcss": "^4.0.2", @@ -231,11 +278,42 @@ "node": ">=22.20.0" }, "peerDependencies": { - "react": "^18.2.0", - "react-dom": "^18.2.0", + "react": "^19.0.0", + "react-dom": "^19.0.0", "react-router-dom": "^7.10.1" } }, + "lib/node_modules/@react-leaflet/core": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@react-leaflet/core/-/core-3.0.0.tgz", + "integrity": "sha512-3EWmekh4Nz+pGcr+xjf0KNyYfC3U2JjnkWsh0zcqaexYqmmB5ZhH37kz41JXGmKzpaMZCnPofBBm64i+YrEvGQ==", + "license": "Hippocratic-2.1", + "peerDependencies": { + "leaflet": "^1.9.0", + "react": "^19.0.0", + "react-dom": "^19.0.0" + } + }, + "lib/node_modules/@types/react": { + "version": "19.2.7", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.7.tgz", + "integrity": "sha512-MWtvHrGZLFttgeEj28VXHxpmwYbor/ATPYbBfSFZEIRK0ecCFLl2Qo55z52Hss+UV9CRN7trSeq1zbgx7YDWWg==", + "dev": true, + "license": "MIT", + "dependencies": { + "csstype": "^3.2.2" + } + }, + "lib/node_modules/@types/react-dom": { + "version": "19.2.3", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.2.3.tgz", + "integrity": "sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "@types/react": "^19.2.0" + } + }, "lib/node_modules/@typescript-eslint/types": { "version": "8.48.1", "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.48.1.tgz", @@ -316,6 +394,63 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "lib/node_modules/react": { + "version": "19.2.3", + "resolved": "https://registry.npmjs.org/react/-/react-19.2.3.tgz", + "integrity": "sha512-Ku/hhYbVjOQnXDZFv2+RibmLFGwFdeeKHFcOTlrt7xplBnya5OGn/hIRDsqDiSUcfORsDC7MPxwork8jBwsIWA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "lib/node_modules/react-dom": { + "version": "19.2.3", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.3.tgz", + "integrity": "sha512-yELu4WmLPw5Mr/lmeEpox5rw3RETacE++JgHqQzd2dg+YbJuat3jH4ingc+WPZhxaoFzdv9y33G+F7Nl5O0GBg==", + "license": "MIT", + "dependencies": { + "scheduler": "^0.27.0" + }, + "peerDependencies": { + "react": "^19.2.3" + } + }, + "lib/node_modules/react-leaflet": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/react-leaflet/-/react-leaflet-5.0.0.tgz", + "integrity": "sha512-CWbTpr5vcHw5bt9i4zSlPEVQdTVcML390TjeDG0cK59z1ylexpqC6M1PJFjV8jD7CF+ACBFsLIDs6DRMoLEofw==", + "license": "Hippocratic-2.1", + "dependencies": { + "@react-leaflet/core": "^3.0.0" + }, + "peerDependencies": { + "leaflet": "^1.9.0", + "react": "^19.0.0", + "react-dom": "^19.0.0" + } + }, + "lib/node_modules/react-leaflet-cluster": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/react-leaflet-cluster/-/react-leaflet-cluster-4.0.0.tgz", + "integrity": "sha512-Lu75+KOu2ruGyAx8LoCQvlHuw+3CLLJQGEoSk01ymsDN/YnCiRV6ChkpsvaruVyYBPzUHwiskFw4Jo7WHj5qNw==", + "license": "SEE LICENSE IN ", + "dependencies": { + "leaflet.markercluster": "^1.5.3" + }, + "peerDependencies": { + "@react-leaflet/core": "^3.0.0", + "leaflet": "^1.9.0", + "react": "^19.0.0", + "react-dom": "^19.0.0", + "react-leaflet": "^5.0.0" + } + }, + "lib/node_modules/scheduler": { + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.27.0.tgz", + "integrity": "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==", + "license": "MIT" + }, "node_modules/@adobe/css-tools": { "version": "4.4.4", "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.4.4.tgz", @@ -3085,17 +3220,6 @@ "url": "https://opencollective.com/pkgr" } }, - "node_modules/@react-leaflet/core": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@react-leaflet/core/-/core-2.1.0.tgz", - "integrity": "sha512-Qk7Pfu8BSarKGqILj4x7bCSZ1pjuAPZ+qmRwH5S7mDS91VSbVVsJSrW4qA+GPrro8t69gFYVMWb1Zc4yFmPiVg==", - "license": "Hippocratic-2.1", - "peerDependencies": { - "leaflet": "^1.9.0", - "react": "^18.0.0", - "react-dom": "^18.0.0" - } - }, "node_modules/@remirror/core-constants": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/@remirror/core-constants/-/core-constants-3.0.0.tgz", @@ -4982,13 +5106,15 @@ "version": "15.7.15", "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.15.tgz", "integrity": "sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/@types/react": { "version": "18.3.26", "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.26.tgz", "integrity": "sha512-RFA/bURkcKzx/X9oumPG9Vp3D3JUgus/d0b67KB0t5S/raciymilkOa66olh78MUI92QLbEJevO7rvqU/kjwKA==", "license": "MIT", + "peer": true, "dependencies": { "@types/prop-types": "*", "csstype": "^3.0.2" @@ -4999,6 +5125,7 @@ "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.7.tgz", "integrity": "sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ==", "license": "MIT", + "peer": true, "peerDependencies": { "@types/react": "^18.0.0" } @@ -7012,9 +7139,9 @@ } }, "node_modules/csstype": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", - "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", + "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", "license": "MIT" }, "node_modules/cypress": { @@ -13398,6 +13525,7 @@ "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", "license": "MIT", + "peer": true, "dependencies": { "loose-envify": "^1.1.0" }, @@ -13420,6 +13548,7 @@ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", "license": "MIT", + "peer": true, "dependencies": { "loose-envify": "^1.1.0", "scheduler": "^0.23.2" @@ -13506,35 +13635,6 @@ "license": "MIT", "peer": true }, - "node_modules/react-leaflet": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/react-leaflet/-/react-leaflet-4.2.1.tgz", - "integrity": "sha512-p9chkvhcKrWn/H/1FFeVSqLdReGwn2qmiobOQGO3BifX+/vV/39qhY8dGqbdcPh1e6jxh/QHriLXr7a4eLFK4Q==", - "license": "Hippocratic-2.1", - "dependencies": { - "@react-leaflet/core": "^2.1.0" - }, - "peerDependencies": { - "leaflet": "^1.9.0", - "react": "^18.0.0", - "react-dom": "^18.0.0" - } - }, - "node_modules/react-leaflet-cluster": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/react-leaflet-cluster/-/react-leaflet-cluster-3.1.1.tgz", - "integrity": "sha512-g39QohKNrmIwHNlL0KTv+a9PYYWDtcRAsnHHytJyRhIgjxGxs4/SXe/Zr4kP8IZoEzxbqCMkJqUsFBEZJqKp2g==", - "license": "SEE LICENSE IN ", - "dependencies": { - "leaflet.markercluster": "^1.5.3" - }, - "peerDependencies": { - "leaflet": "^1.8.0", - "react": "^18.2.0 || ^19.0.0", - "react-dom": "^18.2.0 || ^19.0.0", - "react-leaflet": "^4.0.0" - } - }, "node_modules/react-markdown": { "version": "9.1.0", "resolved": "https://registry.npmjs.org/react-markdown/-/react-markdown-9.1.0.tgz", @@ -13663,16 +13763,25 @@ } }, "node_modules/react-toastify": { - "version": "9.1.3", - "resolved": "https://registry.npmjs.org/react-toastify/-/react-toastify-9.1.3.tgz", - "integrity": "sha512-fPfb8ghtn/XMxw3LkxQBk3IyagNpF/LIKjOBflbexr2AWxAH1MJgvnESwEwBn9liLFXgTKWgBSdZpw9m4OTHTg==", + "version": "11.0.5", + "resolved": "https://registry.npmjs.org/react-toastify/-/react-toastify-11.0.5.tgz", + "integrity": "sha512-EpqHBGvnSTtHYhCPLxML05NLY2ZX0JURbAdNYa6BUkk+amz4wbKBQvoKQAB0ardvSarUBuY4Q4s1sluAzZwkmA==", "license": "MIT", "dependencies": { - "clsx": "^1.1.1" + "clsx": "^2.1.1" }, "peerDependencies": { - "react": ">=16", - "react-dom": ">=16" + "react": "^18 || ^19", + "react-dom": "^18 || ^19" + } + }, + "node_modules/react-toastify/node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "license": "MIT", + "engines": { + "node": ">=6" } }, "node_modules/redent": { @@ -14217,6 +14326,7 @@ "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", "license": "MIT", + "peer": true, "dependencies": { "loose-envify": "^1.1.0" }