From 5f664c5de9e531d8ae0bdf4e5eef3bd2009d66b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C3=ABl=20Zasso?= Date: Wed, 2 Sep 2026 11:00:51 +0200 Subject: [PATCH] feat!: update React to v19 Closes: https://github.com/cheminfo/nmrium/issues/3315 --- .ncurc.yml | 9 - knip.config.ts | 3 - package-lock.json | 786 +++++++++--------- package.json | 49 +- src/component/EventsTrackers/BrushTracker.tsx | 5 +- .../EventsTrackers/KeysListenerTracker.tsx | 2 +- src/component/context/LoggerContext.tsx | 2 +- src/component/elements/Anchor.tsx | 2 +- src/component/elements/DraggableDialog.tsx | 4 +- src/component/elements/ResizerWithScale.tsx | 2 +- .../elements/export/ExportManager.tsx | 2 +- .../elements/tanstack_table/table.tsx | 2 +- src/component/hooks/useCombinedRefs.ts | 6 +- src/component/hooks/useSaveSettings.tsx | 2 +- src/component/main/InnerNMRiumContents.tsx | 8 +- src/component/main/NMRiumRefAPI.ts | 2 +- src/component/main/NMRiumStateProvider.tsx | 2 +- src/component/main/NMRiumViewer.tsx | 2 +- src/component/main/NMRiumViewerWrapper.tsx | 2 +- .../modal/changeSum/SelectMolecule.tsx | 4 +- .../AutomaticAssignment/useAutoAssignments.ts | 2 +- .../hooks/useExtractAtomAssignmentLabel.ts | 2 +- .../panels/SpectraPanel/SpectrumListPanel.tsx | 2 +- .../Filters/FiltersSectionsPanel.tsx | 2 +- .../Filters/hooks/usePhaseCorrection.tsx | 4 +- .../hooks/usePhaseCorrectionTwoDimensions.tsx | 4 +- .../utility/filterDatabaseInfoEntry.ts | 2 +- src/utils/clipboard/clipboardComponents.tsx | 10 +- 28 files changed, 457 insertions(+), 467 deletions(-) diff --git a/.ncurc.yml b/.ncurc.yml index d3c5ef9377..20d1972c1e 100644 --- a/.ncurc.yml +++ b/.ncurc.yml @@ -4,14 +4,5 @@ reject: - '@playwright/test' # Our plugins are not all compatible with v10 - eslint - # Types are deeply broken between this package and nmrium - - nmr-correlation - # We're not ready for React 19 yet - - react - - react-dom - - '@types/react' - - '@types/react-dom' # Not compatible with typescript-eslint - typescript - # https://github.com/react-grid-layout/react-draggable/issues/806 - - react-draggable diff --git a/knip.config.ts b/knip.config.ts index b5671b03c8..e34789f15c 100644 --- a/knip.config.ts +++ b/knip.config.ts @@ -5,8 +5,5 @@ export default { ignoreDependencies: [ // only for dev debugging '@simbathesailor/use-what-changed', - // version fixed to 4.5.0 - // https://github.com/react-grid-layout/react-draggable/issues/806 - 'react-draggable', ], } satisfies KnipConfig; diff --git a/package-lock.json b/package-lock.json index c6e95419d4..0b3a997102 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,13 +14,13 @@ "@hookform/resolvers": "^5.9.1", "@tanstack/react-form": "^1.33.5", "@tanstack/react-store": "^0.11.1", - "@tanstack/react-table": "^9.1.2", + "@tanstack/react-table": "^9.2.4", "@zakodium/nmr-types": "^0.5.26", "@zakodium/nmrium-core": "^0.7.66", - "@zakodium/nmrium-core-plugins": "^0.7.88", + "@zakodium/nmrium-core-plugins": "^0.7.89", "@zakodium/pdnd-esm": "^1.1.1", "@zakodium/utils": "^0.5.1", - "@zip.js/zip.js": "^2.8.53", + "@zip.js/zip.js": "^2.9.0", "cheminfo-font": "^1.28.0", "cheminfo-types": "^1.15.0", "clipboard-polyfill": "^4.1.1", @@ -30,7 +30,7 @@ "dlv": "^1.1.3", "eventemitter3": "^5.0.4", "fifo-logger": "^2.0.1", - "file-collection": "^6.6.1", + "file-collection": "^6.7.0", "file-saver": "^2.0.5", "get-jpaths": "^1.4.1", "immer": "^11.1.18", @@ -42,18 +42,17 @@ "ml-gsd": "^14.2.2", "ml-peak-shape-generator": "^5.5.0", "ml-signal-processing": "^2.2.2", - "ml-spectra-processing": "^14.33.0", + "ml-spectra-processing": "^14.34.0", "ml-tree-similarity": "^2.2.0", - "nmr-processing": "^22.23.2", + "nmr-processing": "^22.23.6", "numeral": "^2.0.6", "openchemlib": "^9.25.0", "openchemlib-utils": "^8.18.0", - "papaparse": "^5.6.0", + "papaparse": "^5.7.0", "react-d3-utils": "^3.1.2", - "react-draggable": "=4.5.0", - "react-dropzone": "^20.1.0", - "react-error-boundary": "^6.1.3", - "react-hook-form": "^7.85.0", + "react-dropzone": "^20.1.1", + "react-error-boundary": "^6.1.4", + "react-hook-form": "^7.87.0", "react-icons": "^5.7.0", "react-inspector": "^9.0.0", "react-mf": "^3.1.1", @@ -66,7 +65,7 @@ "ts-pattern": "^5.9.0", "usehooks-ts": "^3.1.1", "yup": "^1.7.1", - "zod": "^4.4.3" + "zod": "^4.5.4" }, "devDependencies": { "@blueprintjs/core": "^6.18.0", @@ -80,42 +79,42 @@ "@types/dlv": "^1.1.5", "@types/file-saver": "^2.0.7", "@types/lodash": "^4.17.25", - "@types/node": "^26.2.0", + "@types/node": "^26.4.1", "@types/numeral": "^2.0.5", "@types/papaparse": "^5.5.2", - "@types/react": "^18.3.13", - "@types/react-dom": "^18.3.1", - "@vitejs/plugin-react": "^6.0.5", + "@types/react": "^19.2.18", + "@types/react-dom": "^19.2.5", + "@vitejs/plugin-react": "^6.1.1", "@vitest/coverage-v8": "^4.1.11", "@zakodium/tsconfig": "^1.0.5", "cross-env": "^10.1.0", - "cspell": "^10.0.1", + "cspell": "^10.2.0", "eslint": "^9.39.2", "eslint-config-cheminfo-react": "^20.1.0", "eslint-config-cheminfo-typescript": "^22.1.0", - "knip": "^6.32.2", + "knip": "^6.34.0", "modern-normalize": "^3.0.1", "postcss": "^8.5.26", "postcss-styled-syntax": "^0.7.2", "prettier": "^3.9.6", "rc-menu": "^9.16.1", - "react": "^18.3.1", - "react-dom": "^18.3.1", - "react-router-dom": "^7.18.2", + "react": "^19.2.8", + "react-dom": "^19.2.8", + "react-router-dom": "^7.18.3", "rimraf": "^6.1.3", "serve": "^14.2.6", "stylelint": "^17.14.1", "stylelint-config-standard": "^40.0.0", "typescript": "~6.0.3", - "vite": "^8.2.1", + "vite": "^8.2.2", "vitest": "^4.1.11" }, "peerDependencies": { "@blueprintjs/core": "^6.0.0", "@blueprintjs/icons": "^6.0.0", "@blueprintjs/select": "^6.0.0", - "react": ">=18.0.0", - "react-dom": ">=18.0.0" + "react": "^19.2.8", + "react-dom": "^19.2.8" } }, "node_modules/@atlaskit/pragmatic-drag-and-drop": { @@ -465,6 +464,21 @@ } } }, + "node_modules/@blueprintjs/core/node_modules/react-popper": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/react-popper/-/react-popper-2.3.0.tgz", + "integrity": "sha512-e1hj8lL3uM+sgSR4Lxzn5h1GxBlpa4CQz0XLF8kx4MDrDRWY0Ena4c97PUeSX9i5W3UAfDP0z0FXCTQkoXUl3Q==", + "license": "MIT", + "dependencies": { + "react-fast-compare": "^3.0.1", + "warning": "^4.0.2" + }, + "peerDependencies": { + "@popperjs/core": "^2.0.0", + "react": "^16.8.0 || ^17 || ^18", + "react-dom": "^16.8.0 || ^17 || ^18" + } + }, "node_modules/@blueprintjs/icons": { "version": "6.13.0", "resolved": "https://registry.npmjs.org/@blueprintjs/icons/-/icons-6.13.0.tgz", @@ -571,30 +585,30 @@ } }, "node_modules/@cspell/cspell-bundled-dicts": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/@cspell/cspell-bundled-dicts/-/cspell-bundled-dicts-10.0.1.tgz", - "integrity": "sha512-WvkSDNX4Uyyj/ZgbPO6L38iFNMfK1EqsH1FteRiI2qLz6QZMXRFrIt12OqiWIplzZDDaVpBH9FCJOPJll0fjCQ==", + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/@cspell/cspell-bundled-dicts/-/cspell-bundled-dicts-10.2.0.tgz", + "integrity": "sha512-pNdBzc3+njM1A8cp0t/az+FbwBoiIzKCJ15gHVdEtynGOH+GLKzpbNeRAXe3ci+BYUjQQXlQrCKalXaa+ZXVtQ==", "dev": true, "license": "MIT", "dependencies": { "@cspell/dict-ada": "^4.1.1", "@cspell/dict-al": "^1.1.1", "@cspell/dict-aws": "^4.0.17", - "@cspell/dict-bash": "^4.2.2", - "@cspell/dict-companies": "^3.2.11", - "@cspell/dict-cpp": "^7.0.2", + "@cspell/dict-bash": "^4.2.3", + "@cspell/dict-companies": "^3.2.12", + "@cspell/dict-cpp": "^7.1.0", "@cspell/dict-cryptocurrencies": "^5.0.5", "@cspell/dict-csharp": "^4.0.8", - "@cspell/dict-css": "^4.1.1", + "@cspell/dict-css": "^4.1.2", "@cspell/dict-dart": "^2.3.2", - "@cspell/dict-data-science": "^2.0.13", + "@cspell/dict-data-science": "^2.0.16", "@cspell/dict-django": "^4.1.6", "@cspell/dict-docker": "^1.1.17", "@cspell/dict-dotnet": "^5.0.13", "@cspell/dict-elixir": "^4.0.8", - "@cspell/dict-en_us": "^4.4.33", - "@cspell/dict-en-common-misspellings": "^2.1.12", - "@cspell/dict-en-gb-mit": "^3.1.22", + "@cspell/dict-en_us": "^4.4.37", + "@cspell/dict-en-common-misspellings": "^2.2.0", + "@cspell/dict-en-gb-mit": "^3.1.26", "@cspell/dict-filetypes": "^3.0.18", "@cspell/dict-flutter": "^1.1.1", "@cspell/dict-fonts": "^4.0.6", @@ -602,37 +616,37 @@ "@cspell/dict-fullstack": "^3.2.9", "@cspell/dict-gaming-terms": "^1.1.2", "@cspell/dict-git": "^3.1.0", - "@cspell/dict-golang": "^6.0.26", + "@cspell/dict-golang": "^6.0.27", "@cspell/dict-google": "^1.0.9", "@cspell/dict-haskell": "^4.0.6", - "@cspell/dict-html": "^4.0.15", + "@cspell/dict-html": "^4.0.16", "@cspell/dict-html-symbol-entities": "^4.0.5", "@cspell/dict-java": "^5.0.12", "@cspell/dict-julia": "^1.1.1", - "@cspell/dict-k8s": "^1.0.12", + "@cspell/dict-k8s": "^1.0.13", "@cspell/dict-kotlin": "^1.1.1", "@cspell/dict-latex": "^5.1.0", "@cspell/dict-lorem-ipsum": "^4.0.5", "@cspell/dict-lua": "^4.0.8", "@cspell/dict-makefile": "^1.0.5", - "@cspell/dict-markdown": "^2.0.16", - "@cspell/dict-monkeyc": "^1.0.12", + "@cspell/dict-markdown": "^2.0.18", + "@cspell/dict-monkeyc": "^1.1.0", "@cspell/dict-node": "^5.0.9", - "@cspell/dict-npm": "^5.2.38", + "@cspell/dict-npm": "^5.2.47", "@cspell/dict-php": "^4.1.1", "@cspell/dict-powershell": "^5.0.15", "@cspell/dict-public-licenses": "^2.0.16", - "@cspell/dict-python": "^4.2.26", + "@cspell/dict-python": "^4.5.0", "@cspell/dict-r": "^2.1.1", - "@cspell/dict-ruby": "^5.1.1", + "@cspell/dict-ruby": "^5.1.2", "@cspell/dict-rust": "^4.1.2", "@cspell/dict-scala": "^5.0.9", - "@cspell/dict-shell": "^1.1.2", - "@cspell/dict-software-terms": "^5.2.2", + "@cspell/dict-shell": "^1.2.0", + "@cspell/dict-software-terms": "^5.4.2", "@cspell/dict-sql": "^2.2.1", "@cspell/dict-svelte": "^1.0.7", "@cspell/dict-swift": "^2.0.6", - "@cspell/dict-terraform": "^1.1.3", + "@cspell/dict-terraform": "^1.1.4", "@cspell/dict-typescript": "^3.2.3", "@cspell/dict-vue": "^3.0.5", "@cspell/dict-zig": "^1.0.0" @@ -642,22 +656,22 @@ } }, "node_modules/@cspell/cspell-json-reporter": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/@cspell/cspell-json-reporter/-/cspell-json-reporter-10.0.1.tgz", - "integrity": "sha512-/nes1RGILec3WCBcoMOd0byNTBtnJuPaVz/+ZzqYkLtY7x58VMcBG5kyP6hPyN8cIwjRADE/SR43gwdXuqk/FA==", + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/@cspell/cspell-json-reporter/-/cspell-json-reporter-10.2.0.tgz", + "integrity": "sha512-2iKTU/UPkSV9O4EzWSFreqM4/RTLoYnvCA9dmh9hJnmarYu/eDJk1CIVu+HgMlOiyCI3cgVux+649vJ0T2dHrA==", "dev": true, "license": "MIT", "dependencies": { - "@cspell/cspell-types": "10.0.1" + "@cspell/cspell-types": "10.2.0" }, "engines": { "node": ">=22.18.0" } }, "node_modules/@cspell/cspell-performance-monitor": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/@cspell/cspell-performance-monitor/-/cspell-performance-monitor-10.0.1.tgz", - "integrity": "sha512-9tVcHXwRnbazUv4WSG0h3MqV4+LgmLNgSALAQUflPPW0EMxTf7C4Dmv9cgxJyCEQrdnVKCr58nPPaahhz9LJUg==", + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/@cspell/cspell-performance-monitor/-/cspell-performance-monitor-10.2.0.tgz", + "integrity": "sha512-Wzh984VNI+nkNiVSC4yXbzdVhVnxtxcvtCmslVhk7wc0nmwN5r9M4TQ1k5tSOihVMJn4iV3+fy3TUjkrSsppFA==", "dev": true, "license": "MIT", "engines": { @@ -665,9 +679,9 @@ } }, "node_modules/@cspell/cspell-pipe": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/@cspell/cspell-pipe/-/cspell-pipe-10.0.1.tgz", - "integrity": "sha512-HPeXMD9AZ3V/qPkvQaPcak+C7cJ2z7JTHN8smd6J8L2aThLRky2cHc2OyeaHPSHB7WA47b4z2n5u5nawZhv5VQ==", + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/@cspell/cspell-pipe/-/cspell-pipe-10.2.0.tgz", + "integrity": "sha512-BlA7k9kjgH7LxA3DZGRvOo2Cs9wArR0ux6gvmweoyD+zbOsZquTfrCwnU9IoctTy7HjuYrsE7mvCCN6xP11E7g==", "dev": true, "license": "MIT", "engines": { @@ -675,9 +689,9 @@ } }, "node_modules/@cspell/cspell-resolver": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/@cspell/cspell-resolver/-/cspell-resolver-10.0.1.tgz", - "integrity": "sha512-PIzkZHD1fGUQx1XteK2d1iQ0Mzq/maYcoB4jkvAiiR6WqP3MWYNKFdI9z+R5pOq5KgMfW+5Ig1q0oSR6h8irlA==", + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/@cspell/cspell-resolver/-/cspell-resolver-10.2.0.tgz", + "integrity": "sha512-m94I4iTzWaklOr+eNxy/kgpcJYS9dMzeEsZKV6uprVCPNLNn63Ic+ChadNErwV2ii3tiNLAkn8VJy84oe2h1YA==", "dev": true, "license": "MIT", "dependencies": { @@ -688,9 +702,9 @@ } }, "node_modules/@cspell/cspell-service-bus": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/@cspell/cspell-service-bus/-/cspell-service-bus-10.0.1.tgz", - "integrity": "sha512-y6NcIGP2IdXaBL4PVH8vxsr7K27wzz3Ech87UtUtrDSXAiVEOvXgAIknEOUVp59rTlUE8Rn4IRURC6f/hgMyfw==", + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/@cspell/cspell-service-bus/-/cspell-service-bus-10.2.0.tgz", + "integrity": "sha512-r061UxqmEwZK+XiW0dnbE6r7nKHNavQJ4PVw2zqzBVtcFj9YU9LCpOZx4mL49IlmCWxy7jf2jAD9w8nFPn1pWg==", "dev": true, "license": "MIT", "engines": { @@ -698,9 +712,9 @@ } }, "node_modules/@cspell/cspell-types": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/@cspell/cspell-types/-/cspell-types-10.0.1.tgz", - "integrity": "sha512-kLgLShnWADDVreKC63pBrWkcvxgZzFIfO34Jhx/SWfuOIA3cD8AXT+HjyuLfoGJ7mUb58hv2kUziKzEy4INb1w==", + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/@cspell/cspell-types/-/cspell-types-10.2.0.tgz", + "integrity": "sha512-tkmOVCm2XzPUipa8eIu88ShRogjJ5RIen3y9kzBn51re5Nmjw4HDWRLbeBP1WTGFYR7bMi2h0ybnH0BuBCA29g==", "dev": true, "license": "MIT", "engines": { @@ -708,13 +722,13 @@ } }, "node_modules/@cspell/cspell-worker": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/@cspell/cspell-worker/-/cspell-worker-10.0.1.tgz", - "integrity": "sha512-L2bJerfuYOls2wEknm8FmynLtj/G7O4UqX9I/HznRggEW6i2yZIxagDetpVDNowpyavNHJ3SJtUFiyMiZc16Sw==", + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/@cspell/cspell-worker/-/cspell-worker-10.2.0.tgz", + "integrity": "sha512-6yom68ucNQIUA56gEsXtoquM55AeQBKaMe/a35a91HIvB7AyhrTRTTeheuE/Gl2FUyszHecdewC6sbYELaAsvA==", "dev": true, "license": "MIT", "dependencies": { - "cspell-lib": "10.0.1" + "cspell-lib": "10.2.0" }, "engines": { "node": ">=22.18.0" @@ -829,9 +843,9 @@ "license": "MIT" }, "node_modules/@cspell/dict-en_us": { - "version": "4.4.36", - "resolved": "https://registry.npmjs.org/@cspell/dict-en_us/-/dict-en_us-4.4.36.tgz", - "integrity": "sha512-2yOhI/+7d1DbfvMljGW4jw8pLqDEsVmnvUXBOCFXtLU2BWgQkrqOJDCNseYjEiEbTp0OtdrWEWWPFSP1TNugQw==", + "version": "4.4.37", + "resolved": "https://registry.npmjs.org/@cspell/dict-en_us/-/dict-en_us-4.4.37.tgz", + "integrity": "sha512-rMKyPrk2SKmDU+Bj0U0ixsv4Du93oijwovc8XlUin0zwKOJZb0/PFG5Df4P8CrM2CrLeovpaFvhoI98DigxBLw==", "dev": true, "license": "MIT" }, @@ -843,9 +857,9 @@ "license": "CC BY-SA 4.0" }, "node_modules/@cspell/dict-en-gb-mit": { - "version": "3.1.25", - "resolved": "https://registry.npmjs.org/@cspell/dict-en-gb-mit/-/dict-en-gb-mit-3.1.25.tgz", - "integrity": "sha512-zGODptk24CMrXi49ieG2SUm94CKxEsVF0dYNF+1ZYH0MSsQDZ/PKDlrrbvtBqSupKdPSj0Z9sjOmMNfHHW9ZSg==", + "version": "3.1.26", + "resolved": "https://registry.npmjs.org/@cspell/dict-en-gb-mit/-/dict-en-gb-mit-3.1.26.tgz", + "integrity": "sha512-F9Y/45+1oIPzfL/pyWLp4kzX+vddHPAYpIpIF+45bdc65AebeEiQHKzSmKgGGTd3qbQc3fATw2kAFdLryiQpjQ==", "dev": true, "license": "MIT" }, @@ -1017,9 +1031,9 @@ "license": "MIT" }, "node_modules/@cspell/dict-npm": { - "version": "5.2.46", - "resolved": "https://registry.npmjs.org/@cspell/dict-npm/-/dict-npm-5.2.46.tgz", - "integrity": "sha512-Z5GG59c17UEk6BPZ3lVD/++GvPBI+O05OTGm4sRA/0I/qszbstuYRw+j2//5f8SWzOFXKaGYI8kygwKX9EQZ9Q==", + "version": "5.2.48", + "resolved": "https://registry.npmjs.org/@cspell/dict-npm/-/dict-npm-5.2.48.tgz", + "integrity": "sha512-R5dDnXTxZFOdb/4XSugCjsb3gXTHcEURGFAVOThg5QVu2YRI+yYj5vGgj9gSNffbgoQsNnaukPoB5v1tjF+tRA==", "dev": true, "license": "MIT" }, @@ -1045,9 +1059,9 @@ "license": "MIT" }, "node_modules/@cspell/dict-python": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@cspell/dict-python/-/dict-python-4.4.0.tgz", - "integrity": "sha512-49Eju/a97V6ExAeMJDM2Tk4jsYr0pm+kQzqQrKLAZdrRd6VrLIgseI481EQSmgoVkPPdsuwK1xj9ZlpDQIF4qg==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/@cspell/dict-python/-/dict-python-4.5.0.tgz", + "integrity": "sha512-O1lSuFXoX8p+4hvJMbqvg3blbn0Zx8LHqdPQSNaOxFZGf7hmq6pc8sfta+98E7Q/WtDooAnU3XpBxBXcn0r94g==", "dev": true, "license": "MIT", "dependencies": { @@ -1090,9 +1104,9 @@ "license": "MIT" }, "node_modules/@cspell/dict-software-terms": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/@cspell/dict-software-terms/-/dict-software-terms-5.4.1.tgz", - "integrity": "sha512-tY88gnOWj2ax6h+i7BjU7dIH1f3fvY4WypS0a+TpjBgXC318AdOMmy0zK1SzxGNOjhWJfCeCZNVoLFM/DuOG4g==", + "version": "5.4.2", + "resolved": "https://registry.npmjs.org/@cspell/dict-software-terms/-/dict-software-terms-5.4.2.tgz", + "integrity": "sha512-C2tS1JjxqHef9TpPRm08a6n+PJCrKrD6FsmPEyXb2J6TFef4FFnKRcGOf3pFnd+a6/oyQgXZWeKiECH6lBFjQA==", "dev": true, "license": "MIT" }, @@ -1146,13 +1160,13 @@ "license": "MIT" }, "node_modules/@cspell/dynamic-import": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/@cspell/dynamic-import/-/dynamic-import-10.0.1.tgz", - "integrity": "sha512-mP1gdq00aIcH8HxNMqnH11X6BKxLcneDtFgl/ecjIKnaGKwi44m8AndP5Kr4ODaYdl8UUw9O3dJh7KaQXnLHZQ==", + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/@cspell/dynamic-import/-/dynamic-import-10.2.0.tgz", + "integrity": "sha512-FpmedZcu9qcN14/awVPISEBi3A1nPR2zyLslvSRhp6GPJt0YsRVBR5BDKxbLNIGqvM2xg3ZLjo2eGTjThiyHxA==", "dev": true, "license": "MIT", "dependencies": { - "@cspell/url": "10.0.1", + "@cspell/url": "10.2.0", "import-meta-resolve": "^4.2.0" }, "engines": { @@ -1160,9 +1174,9 @@ } }, "node_modules/@cspell/filetypes": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/@cspell/filetypes/-/filetypes-10.0.1.tgz", - "integrity": "sha512-Z5S35giU5IW49fBBq6BksUbE8PC4IYPfaKuwl5Nl9jkf/OkAKiBmCowKX45NzRUQInwK/GSqqIUifrNeI6LdLw==", + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/@cspell/filetypes/-/filetypes-10.2.0.tgz", + "integrity": "sha512-1I1wnjGqJkQqoHWZ8I28HuMPLG7yzJOh//rGGHBZE6Ly2loJWhk4+/Fa4wEoZ71Ss1HQii9d7smB0B/w1dqGDA==", "dev": true, "license": "MIT", "engines": { @@ -1170,9 +1184,9 @@ } }, "node_modules/@cspell/rpc": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/@cspell/rpc/-/rpc-10.0.1.tgz", - "integrity": "sha512-axSRKv3zEAmBm66iD/FV/MPmE4/Yf7c3PZiwTW894Yd3iEhtn3KPKeTrqQ2/tDrhB1Z2qTsap/Hue0MK4o5WXg==", + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/@cspell/rpc/-/rpc-10.2.0.tgz", + "integrity": "sha512-K8g80OcuhsGqFQvX2kjhgCGs7mOQf5lSeR2Jg34Uq6VQQ/WapJ9pE7CK6R3RKFjhWT8hlrbALiByk9Mj+7GyeQ==", "dev": true, "license": "MIT", "engines": { @@ -1180,9 +1194,9 @@ } }, "node_modules/@cspell/strong-weak-map": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/@cspell/strong-weak-map/-/strong-weak-map-10.0.1.tgz", - "integrity": "sha512-lenN1DVyPi8nJLSMSJJ670ddTjyiruLueuSZO1qLcxBqUhgxDt/mALu9N/1m6WdOVcg6m/5cLiZVg2KOo2UzRw==", + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/@cspell/strong-weak-map/-/strong-weak-map-10.2.0.tgz", + "integrity": "sha512-fBLmVOakQ42Wy+7ZnIdnOSk4/WtJFoNLMEG4yqX/cGML3tIh06PTd9UphwltuwPDCL/tXJQsN/LOY8iLx6hmfw==", "dev": true, "license": "MIT", "engines": { @@ -1190,9 +1204,9 @@ } }, "node_modules/@cspell/url": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/@cspell/url/-/url-10.0.1.tgz", - "integrity": "sha512-abYYgI29wJhWIfWTYrYuzRYDcHQUQ1N5ylnhxYn1NJnIQMqUWGLbDmt12JABtZ+R6h6UNatQrS7rhP86etvJyQ==", + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/@cspell/url/-/url-10.2.0.tgz", + "integrity": "sha512-TIgG/pCkgo3SiayAbV0CorYPdnaNkYWfJFKHhSBTKIdBDwK4YwcbbDlXWGCTJ6gxhhwnrNhcw4jDjz8jejKS4A==", "dev": true, "license": "MIT", "engines": { @@ -2092,9 +2106,9 @@ } }, "node_modules/@oxc-parser/binding-android-arm-eabi": { - "version": "0.143.0", - "resolved": "https://registry.npmjs.org/@oxc-parser/binding-android-arm-eabi/-/binding-android-arm-eabi-0.143.0.tgz", - "integrity": "sha512-n9uozULWflPqBtdmI8lAabLqGKNgLVNN0ZH8HfgCwpKGNtzRzauB76jTiW/3YLkcA7N1zskpi9GdVnZuu1SAvg==", + "version": "0.147.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-android-arm-eabi/-/binding-android-arm-eabi-0.147.0.tgz", + "integrity": "sha512-fOtoGvIoirkvxQVw9J1WJPxz571XPgLsPf9uhRD+PJteUnvrJHMDmK9pw2yZEGGyismtRoEsp+JcXUdF/JDMDw==", "cpu": [ "arm" ], @@ -2109,9 +2123,9 @@ } }, "node_modules/@oxc-parser/binding-android-arm64": { - "version": "0.143.0", - "resolved": "https://registry.npmjs.org/@oxc-parser/binding-android-arm64/-/binding-android-arm64-0.143.0.tgz", - "integrity": "sha512-9BbdjHETk6O3zH/DDid9IgBtF0GlpLabNKN231uraXpRDSfY+iiZxTP5bk1Z63GBownVdhdINFIeddmMz4MzpQ==", + "version": "0.147.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-android-arm64/-/binding-android-arm64-0.147.0.tgz", + "integrity": "sha512-emjQHOYJaomo4ykaXQ1EItunr/I94Nk01oqBmU4dSkKSTupIDx6OysVDf2e8Eytm77rb+4ZxzgElyWP7rcEX7A==", "cpu": [ "arm64" ], @@ -2126,9 +2140,9 @@ } }, "node_modules/@oxc-parser/binding-darwin-arm64": { - "version": "0.143.0", - "resolved": "https://registry.npmjs.org/@oxc-parser/binding-darwin-arm64/-/binding-darwin-arm64-0.143.0.tgz", - "integrity": "sha512-gh+6ecoHUy4/sUcolBl/1qPXKBbYNxFY0Pk0ujgQvINTMSftJY7o4yb8gOkDJPeZeB8+a+u7xTe6umoP8N5HFA==", + "version": "0.147.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-darwin-arm64/-/binding-darwin-arm64-0.147.0.tgz", + "integrity": "sha512-kXvBPJL7RmDPJ2mze/vXPPVQimCDtFr9OFLjf7dyhV5Dx64cgcXh9KKrA1sMWvCObvJll9CZZUO0FBlFwD0l6A==", "cpu": [ "arm64" ], @@ -2143,9 +2157,9 @@ } }, "node_modules/@oxc-parser/binding-darwin-x64": { - "version": "0.143.0", - "resolved": "https://registry.npmjs.org/@oxc-parser/binding-darwin-x64/-/binding-darwin-x64-0.143.0.tgz", - "integrity": "sha512-qd1hl2d+lXgHv/VQ/M9qm8TrMC5T4RqDBwtOnl+1D0QMjwcz+8AaB4JSg8STgeag0GP6a6L74XEGAsrTSJWNzQ==", + "version": "0.147.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-darwin-x64/-/binding-darwin-x64-0.147.0.tgz", + "integrity": "sha512-mgFF8pLU6R64LbT27lSrtVRspVC/3IcZ0qyIikzmi78Y3Ik2OPnlAHHI0UEBRcC3qmNgtjaef7zkFt7/uPxIcw==", "cpu": [ "x64" ], @@ -2160,9 +2174,9 @@ } }, "node_modules/@oxc-parser/binding-freebsd-x64": { - "version": "0.143.0", - "resolved": "https://registry.npmjs.org/@oxc-parser/binding-freebsd-x64/-/binding-freebsd-x64-0.143.0.tgz", - "integrity": "sha512-M5XXcNa7aOqLPKTR41msfghKu2yQ4xWvCm11/gwU0JzOzHNk5sgW//rVEjJ+LO48+VDAMzXTSzurUVxIDKwozw==", + "version": "0.147.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-freebsd-x64/-/binding-freebsd-x64-0.147.0.tgz", + "integrity": "sha512-v38aiF11qufOTBcCAKL4skgQf0zJ4NEvRlivq7B5kHrlyvjCLjvNrMtNWDTz1SDUL6/xVsJRmLDxv2e+Cp4oWw==", "cpu": [ "x64" ], @@ -2177,9 +2191,9 @@ } }, "node_modules/@oxc-parser/binding-linux-arm-gnueabihf": { - "version": "0.143.0", - "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-0.143.0.tgz", - "integrity": "sha512-T/GXusuOkPNQhCQCSBbcU/N8j0rAypuDBl1IyFK+lyYT594XsVz80clPC/OtbSSpBGyJxj8uYEfctxVuxVYoww==", + "version": "0.147.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-0.147.0.tgz", + "integrity": "sha512-AeIiBbwUaP0H1+4/qGW9l5qHecS/+XA5iMuieVcGb1T+tyc2dVGspFW13BWk/XrLsiGP/CiDJTJqAPLLCzZHkw==", "cpu": [ "arm" ], @@ -2194,9 +2208,9 @@ } }, "node_modules/@oxc-parser/binding-linux-arm-musleabihf": { - "version": "0.143.0", - "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-arm-musleabihf/-/binding-linux-arm-musleabihf-0.143.0.tgz", - "integrity": "sha512-oKu4RcBlXSqo3OC62dp6YTnQaZIurNDpCX3BnAM3+bJxt7s8J2TJKMnC0UYer1qhlRaDCg6wkTaTw+2IlsZ12w==", + "version": "0.147.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-arm-musleabihf/-/binding-linux-arm-musleabihf-0.147.0.tgz", + "integrity": "sha512-/41MKPW4RgPY4DJco0NCF0RYX3IMZaVlRNMNzvhaxRavc7tN3Txm+qllZbh0aMRs0VHdgUlbI8TcAOiTai4TKg==", "cpu": [ "arm" ], @@ -2211,9 +2225,9 @@ } }, "node_modules/@oxc-parser/binding-linux-arm64-gnu": { - "version": "0.143.0", - "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-0.143.0.tgz", - "integrity": "sha512-WJBbD186AZmMGaSIhlktC+rPl8L3peCTXAh88Ih9uEvK0en2mPojGyCGYiL6mHtV1RPV3JyfJW5t6n5hh0lXhA==", + "version": "0.147.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-0.147.0.tgz", + "integrity": "sha512-bmpw/RPhVXgZbtb3xBDuwW5s8+LvZYdqcDSX/sP2ltL77aTio3DP/B5ZTwwgoJ6Mr9vJs4RrmgEKW9XkLNUU1g==", "cpu": [ "arm64" ], @@ -2231,9 +2245,9 @@ } }, "node_modules/@oxc-parser/binding-linux-arm64-musl": { - "version": "0.143.0", - "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-arm64-musl/-/binding-linux-arm64-musl-0.143.0.tgz", - "integrity": "sha512-t1AcYOwEzgceadT4v5e+vaCCb0AncCA3v5AyzfBAz/tMq11qzVccXKzNHtkWdjBsgvTKwRkaUF3QvT4kot8vcQ==", + "version": "0.147.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-arm64-musl/-/binding-linux-arm64-musl-0.147.0.tgz", + "integrity": "sha512-gd7VX/FDVOw6mjQcu45iIcp4QkgybgJwh3a0OFG2NxmPCj628mQWD96QGu1kK8+mZF9qK4b/gIEyC63vQoB7+Q==", "cpu": [ "arm64" ], @@ -2251,9 +2265,9 @@ } }, "node_modules/@oxc-parser/binding-linux-ppc64-gnu": { - "version": "0.143.0", - "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-0.143.0.tgz", - "integrity": "sha512-RsnO/NoD8376LMJq8JS8TwI0ieNaFRTuNe2GVJntQg6gwZNMENZsEbknHdVwjpOmxdGLGodcwaGSbAeRr5Bgjw==", + "version": "0.147.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-0.147.0.tgz", + "integrity": "sha512-HnAzcfki7dSUNHf510Q2NmbJlz8Ys7rn8l9l588Pkx0tYe1BHLZnmELIgqizJ4WPhHGSwN8Ce+B/menVxS3odA==", "cpu": [ "ppc64" ], @@ -2271,9 +2285,9 @@ } }, "node_modules/@oxc-parser/binding-linux-riscv64-gnu": { - "version": "0.143.0", - "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-riscv64-gnu/-/binding-linux-riscv64-gnu-0.143.0.tgz", - "integrity": "sha512-48fSVfR9TZi5CASZFyv0VC6z6BCoeihFsX031mAD/oSH7d9PYsPgIqza7d9mjP7Z2KTEpTFyH6SIu0Ui6R1vdg==", + "version": "0.147.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-riscv64-gnu/-/binding-linux-riscv64-gnu-0.147.0.tgz", + "integrity": "sha512-qlkOL6wT44U+fT5s/+sR6Shx0OdwvQF83JyIPZUxG/ovqZF5/7atOtjH+JPZ5/7ATQLbFBBSmghcy/+2NVB/ew==", "cpu": [ "riscv64" ], @@ -2291,9 +2305,9 @@ } }, "node_modules/@oxc-parser/binding-linux-riscv64-musl": { - "version": "0.143.0", - "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-riscv64-musl/-/binding-linux-riscv64-musl-0.143.0.tgz", - "integrity": "sha512-T8CpdD+SfE01DnIOD4HpVxu0ZJOfMJ/VhCvikKfaXAxkZ+9veyLM/D2hpi7Y2hFUyPmVQO3FNZHmYzV/WlVR4g==", + "version": "0.147.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-riscv64-musl/-/binding-linux-riscv64-musl-0.147.0.tgz", + "integrity": "sha512-DlefD7L7sMXs/3hIBH23Egk0phj8kG0SA81dVGOQ3S1ekjOlmTLH2E+F2Thwfh1slKx6aH+lNc5fQYAw0GU7/g==", "cpu": [ "riscv64" ], @@ -2311,9 +2325,9 @@ } }, "node_modules/@oxc-parser/binding-linux-s390x-gnu": { - "version": "0.143.0", - "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-0.143.0.tgz", - "integrity": "sha512-QLdeMsCcacenPEFsfxnBUDF1y6opyz5+fmOz9bfD5Y7fiGCMupUCuB3KTPQhNwshIG1P9fPqar9MHxuBDd4bwQ==", + "version": "0.147.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-0.147.0.tgz", + "integrity": "sha512-Xqpagk/031IvZ4svrk2FF01YEqM/iN3MJV3SVZadKg/CsGlDCGoREqKHXYnoV5+8SfGe/m6RM1szXFLusTu/Uw==", "cpu": [ "s390x" ], @@ -2331,9 +2345,9 @@ } }, "node_modules/@oxc-parser/binding-linux-x64-gnu": { - "version": "0.143.0", - "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-x64-gnu/-/binding-linux-x64-gnu-0.143.0.tgz", - "integrity": "sha512-659ujfqLy6k7cuH3sbzhd8b+ztSq+i6E2E9pG78Q0BmHjAExfGIdgc8cGgMdwAozDXeZFHkJ+LXYJdWsaGdgyw==", + "version": "0.147.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-x64-gnu/-/binding-linux-x64-gnu-0.147.0.tgz", + "integrity": "sha512-QioQOeUbI4ATUr0S2z88uA3Cds2R3Mm5Ge7U8XNYtlTb2GJF3rWlcj70z0AJhhOlbdm0YgVjqPBldUNbFylDIg==", "cpu": [ "x64" ], @@ -2351,9 +2365,9 @@ } }, "node_modules/@oxc-parser/binding-linux-x64-musl": { - "version": "0.143.0", - "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-x64-musl/-/binding-linux-x64-musl-0.143.0.tgz", - "integrity": "sha512-/Mw/9j4TfZcnKphPrzOE6t4MMknXadcAAuVUlDRTF/ETWB5xOgQvOJV2Mh9We/bWxZdoxaGAdc+hy4GuYwQ2yQ==", + "version": "0.147.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-linux-x64-musl/-/binding-linux-x64-musl-0.147.0.tgz", + "integrity": "sha512-NXy1tv/OdC+pPTwf9RiCZWPK53V/Xq/2cjSnjOSyKopajdaDqMIkgtDY+jXZemp2e8px5FeWfY2L2LwhKZQovg==", "cpu": [ "x64" ], @@ -2371,9 +2385,9 @@ } }, "node_modules/@oxc-parser/binding-openharmony-arm64": { - "version": "0.143.0", - "resolved": "https://registry.npmjs.org/@oxc-parser/binding-openharmony-arm64/-/binding-openharmony-arm64-0.143.0.tgz", - "integrity": "sha512-8rIKWR2BFuifbIK/1XB9wTaSdtuJ25dlE7ZQYDnEwj/2xH2vHsxnvIjHT3ZjSVuLLwGGlSslIG/fbOJ8TV8rTw==", + "version": "0.147.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-openharmony-arm64/-/binding-openharmony-arm64-0.147.0.tgz", + "integrity": "sha512-GpGWZ6oKz4bjCWW9Mz5pCaGPyk2Aaze6zEoaslIQqpSLtpx5pXj/ap5gUNb5Jn2LIbqWyjkGLX9yv3NMuNcBVQ==", "cpu": [ "arm64" ], @@ -2388,9 +2402,9 @@ } }, "node_modules/@oxc-parser/binding-win32-arm64-msvc": { - "version": "0.143.0", - "resolved": "https://registry.npmjs.org/@oxc-parser/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-0.143.0.tgz", - "integrity": "sha512-5U9kQYMfRRI6Zq7KDxgbIP0RMnKrfn3gLepRMgJuRkPSUALTiRCk9d/uyhb4lGDjUdzwK7mBkKqhLgzBPCmLpQ==", + "version": "0.147.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-0.147.0.tgz", + "integrity": "sha512-a8mlt7CC8z7LUdCfaxhff4kCd+vSjE+NEFL0cxA8ukfuSnvAto/pWTjytW4BuVLnQGcCVdHJwcRKOfs++H+tjw==", "cpu": [ "arm64" ], @@ -2405,9 +2419,9 @@ } }, "node_modules/@oxc-parser/binding-win32-ia32-msvc": { - "version": "0.143.0", - "resolved": "https://registry.npmjs.org/@oxc-parser/binding-win32-ia32-msvc/-/binding-win32-ia32-msvc-0.143.0.tgz", - "integrity": "sha512-25P7AaHk4R88Yv2XH4gToDVmh0cOu+bEURQU10CRrmvgabfRArSGAP5osmwUKeSUHj0VS50upbpbRWWW/m7mHA==", + "version": "0.147.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-win32-ia32-msvc/-/binding-win32-ia32-msvc-0.147.0.tgz", + "integrity": "sha512-M5ViVDBcFLnl2632AuuWuP35zEL5oikK1jTx8r3+902VEDeSNHxFZAB6RZyfZ7MU6Oi5QTOG8MmMkIeHsudSaw==", "cpu": [ "ia32" ], @@ -2422,9 +2436,9 @@ } }, "node_modules/@oxc-parser/binding-win32-x64-msvc": { - "version": "0.143.0", - "resolved": "https://registry.npmjs.org/@oxc-parser/binding-win32-x64-msvc/-/binding-win32-x64-msvc-0.143.0.tgz", - "integrity": "sha512-ORMh3JE1s6V7ySicdRK7vgaDQnn5o+UHg9ct989PlWHbel8O9ARrmWXM6kZjrBMtNucxNayQ8g69G0VfWzhANw==", + "version": "0.147.0", + "resolved": "https://registry.npmjs.org/@oxc-parser/binding-win32-x64-msvc/-/binding-win32-x64-msvc-0.147.0.tgz", + "integrity": "sha512-DUaE13OwnUSlHpLZNcC/nuT10ivlWqc5EZgsfgXuAmWYw0r3nDxGeLD1zlGwYwIgVk1/ZMAxoXpV+05stvbHaA==", "cpu": [ "x64" ], @@ -2439,9 +2453,9 @@ } }, "node_modules/@oxc-project/types": { - "version": "0.143.0", - "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.143.0.tgz", - "integrity": "sha512-u6JZdLBTLotrNC9Vd6vPssINdzcCzleKAH6EJKImQb7GtYvX5keN2dxkoK44stCc4tffE6QQRtZTXVSzsLUlWA==", + "version": "0.147.0", + "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.147.0.tgz", + "integrity": "sha512-IJ3s6ltHLp45S0bh7phkX+gJO7A1Wuz2EaqpAhb8WjqDwbzMiWKHhyyT42tskaWjEYXtHtVCPpnBJVT9+dcRLg==", "dev": true, "license": "MIT", "funding": { @@ -3290,13 +3304,13 @@ } }, "node_modules/@tanstack/react-table": { - "version": "9.1.2", - "resolved": "https://registry.npmjs.org/@tanstack/react-table/-/react-table-9.1.2.tgz", - "integrity": "sha512-YQPZFJ1nIi/bjjwsPZVouABgahDcl7Gdm33CdTStUJBn0DjEVJ2uhSTVmIoWt9MVKdQziXGAsXipSzy949Hygg==", + "version": "9.2.4", + "resolved": "https://registry.npmjs.org/@tanstack/react-table/-/react-table-9.2.4.tgz", + "integrity": "sha512-Rzp1Q4e0/nIgEjmISYR5HeEgLTNtrG+C7NFZf/AbCxPO5hg+zC3yNGwcoECigUk8SFzzvhXbd2rFdtP2ZiGrfA==", "license": "MIT", "dependencies": { - "@tanstack/react-store": "^0.11.0", - "@tanstack/table-core": "9.1.2" + "@tanstack/react-store": "^0.11.1", + "@tanstack/table-core": "9.2.4" }, "engines": { "node": ">=20" @@ -3337,12 +3351,12 @@ } }, "node_modules/@tanstack/table-core": { - "version": "9.1.2", - "resolved": "https://registry.npmjs.org/@tanstack/table-core/-/table-core-9.1.2.tgz", - "integrity": "sha512-ONpWQeass1sfg80CWF1NSwQ8r3GiqxA2lT/EdqIcrDEPZ0Z+0mM94eQoFYLPN0Kztzj8TQVb2+PrSZSItqA61g==", + "version": "9.2.4", + "resolved": "https://registry.npmjs.org/@tanstack/table-core/-/table-core-9.2.4.tgz", + "integrity": "sha512-GwdDyGGr6UXAtubF14yAwcXvdaogqfsQgIk89Suebjxob/Rjq2xvfmXsjDF1rQmKmhHsJm9TOY7myxv3i6geJw==", "license": "MIT", "dependencies": { - "@tanstack/store": "^0.11.0" + "@tanstack/store": "^0.11.1" }, "engines": { "node": ">=20" @@ -3491,9 +3505,9 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "26.2.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-26.2.0.tgz", - "integrity": "sha512-5IviulTZeRNp2vAJ514cc/HUlY5nZ9fCbq9DMyC52BrhFZACo3nI0R7qBxhQmo/d27NFe96ur/b7Wwxklda+kg==", + "version": "26.4.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-26.4.1.tgz", + "integrity": "sha512-k97ENvZWtvA6yqz5/FS6a7duDgOPEeOQOc2iKS/nY6mX6qJUKtLnWzQS+Xj6tXweyj6ZcTAK2Qecetnvi9nCLA==", "dev": true, "license": "MIT", "dependencies": { @@ -3523,30 +3537,23 @@ "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==", "license": "MIT" }, - "node_modules/@types/prop-types": { - "version": "15.7.15", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.15.tgz", - "integrity": "sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==", - "license": "MIT" - }, "node_modules/@types/react": { - "version": "18.3.31", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.31.tgz", - "integrity": "sha512-vfEqpXTvwT91yhmwdfouStN2hSKwTvyRs8qpLfADyrq/kxDw0hZM7Wk9Ug1FELj8hIby+S/+kQCSRFF32nv2Qw==", + "version": "19.2.18", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.18.tgz", + "integrity": "sha512-AnzbBERsrLKtk2XSfTbYRLjQPdy116Sty4q+T+Bp3IC4l6jNBvreVPAHmpq9qhXQM7CXZPjLVmGMw9sy+hxQ3w==", "license": "MIT", "dependencies": { - "@types/prop-types": "*", "csstype": "^3.2.2" } }, "node_modules/@types/react-dom": { - "version": "18.3.7", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.7.tgz", - "integrity": "sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ==", + "version": "19.2.5", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.2.5.tgz", + "integrity": "sha512-fMPwH9v7r/pp43yUd2/Mbiex5KouJwwR3dzHkhLREUC6764VyDsqxhAxv6OFEYR1RhjOyD1naqba8ECDBe7ZQg==", "dev": true, "license": "MIT", "peerDependencies": { - "@types/react": "^18.0.0" + "@types/react": "^19.2.0" } }, "node_modules/@typescript-eslint/eslint-plugin": { @@ -3832,9 +3839,9 @@ } }, "node_modules/@vitejs/plugin-react": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-6.1.0.tgz", - "integrity": "sha512-qd2BzUBehkov86WFhg0JkEFEYyCLG9uPCe6qWTY/kRlss9OvJrOF2UbIWT7p+8IzZHkEu0DNGHc4HSv+JdDLsw==", + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-6.1.1.tgz", + "integrity": "sha512-yxLaQV9gkhS8ezJqCM6+ndU7mDY6gqAg75NQ+0IjwEI8IYOmQCgkRwHKVSfWXW076DsqMo0Dk+0FK1U+M5RgFw==", "dev": true, "license": "MIT", "dependencies": { @@ -4075,9 +4082,9 @@ } }, "node_modules/@zakodium/nmrium-core-plugins": { - "version": "0.7.88", - "resolved": "https://registry.npmjs.org/@zakodium/nmrium-core-plugins/-/nmrium-core-plugins-0.7.88.tgz", - "integrity": "sha512-yvDzMczQ/mEvPorqI3C5MMLL3OccvQAbd2ajQt+4KtZafzhimPrPKK0IdlrYIhj7s2scCJK7vEgldnyQRq5u/A==", + "version": "0.7.89", + "resolved": "https://registry.npmjs.org/@zakodium/nmrium-core-plugins/-/nmrium-core-plugins-0.7.89.tgz", + "integrity": "sha512-/2zBy7GpqsU+tmqFG/Jkih1amJhI40eudhx0a1bm7rPQQVsuUJocOjYByMq5IZX1GjJAkygMAE7HVK/mYcwrMw==", "license": "CC-BY-NC-SA-4.0", "dependencies": { "@date-fns/utc": "^2.1.1", @@ -4143,9 +4150,9 @@ "license": "MIT" }, "node_modules/@zip.js/zip.js": { - "version": "2.8.54", - "resolved": "https://registry.npmjs.org/@zip.js/zip.js/-/zip.js-2.8.54.tgz", - "integrity": "sha512-Nr2JRdMBxmdh6v8JYb/BBipvTvBr3Ztwf6+bIdVxb1EMaNNm5gsM9R80pB+c9S2WMdODb3LIWiXfYekDA3+JSw==", + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/@zip.js/zip.js/-/zip.js-2.9.0.tgz", + "integrity": "sha512-AblaO/5MIVKiVExlF7GD17qn5NSsQ7qdtE+uEIMU6OiwHLqPxaI5Z5gLxMDxdEBzaiVVRCFNABcIc3sZpFcUeA==", "license": "BSD-3-Clause", "engines": { "bun": ">=0.7.0", @@ -5049,13 +5056,13 @@ "license": "MIT" }, "node_modules/commander": { - "version": "14.0.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-14.0.3.tgz", - "integrity": "sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw==", + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-15.0.0.tgz", + "integrity": "sha512-z67u4ZhzCL/Tydu1lJARtEZYWbWaN7oYLHbsuzocr6y4N6WZAagG3RQ4FW61V1/0+jImpj293XfrcYnd1qxtPg==", "dev": true, "license": "MIT", "engines": { - "node": ">=20" + "node": ">=22.12.0" } }, "node_modules/comment-json": { @@ -5267,33 +5274,33 @@ } }, "node_modules/cspell": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/cspell/-/cspell-10.0.1.tgz", - "integrity": "sha512-Gg6w/flT3fKfl3la62hfTnhtNnDQ+9mU7kUhVqw/axl/Ms4oENw0oJMkWFIoj4f6nL/SDPz7KcPXd2XbkKFNmQ==", + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/cspell/-/cspell-10.2.0.tgz", + "integrity": "sha512-BZaciNlTSZ72IQtju46JlVXyXIMOdoqjU/i1KamisH1uYw1OO4HgG6T0Y8doB99s6v1WJH7W2RL2kqpfq7e1Kw==", "dev": true, "license": "MIT", "dependencies": { - "@cspell/cspell-json-reporter": "10.0.1", - "@cspell/cspell-performance-monitor": "10.0.1", - "@cspell/cspell-pipe": "10.0.1", - "@cspell/cspell-types": "10.0.1", - "@cspell/cspell-worker": "10.0.1", - "@cspell/dynamic-import": "10.0.1", - "@cspell/url": "10.0.1", - "ansi-regex": "^6.2.2", - "chalk": "^5.6.2", + "@cspell/cspell-json-reporter": "10.2.0", + "@cspell/cspell-performance-monitor": "10.2.0", + "@cspell/cspell-pipe": "10.2.0", + "@cspell/cspell-types": "10.2.0", + "@cspell/cspell-worker": "10.2.0", + "@cspell/dynamic-import": "10.2.0", + "@cspell/url": "10.2.0", + "ansi-regex": "^6.3.0", + "chalk": "^6.0.0", "chalk-template": "^1.1.2", - "commander": "^14.0.3", - "cspell-config-lib": "10.0.1", - "cspell-dictionary": "10.0.1", - "cspell-gitignore": "10.0.1", - "cspell-glob": "10.0.1", - "cspell-io": "10.0.1", - "cspell-lib": "10.0.1", + "commander": "^15.0.0", + "cspell-config-lib": "10.2.0", + "cspell-dictionary": "10.2.0", + "cspell-gitignore": "10.2.0", + "cspell-glob": "10.2.0", + "cspell-io": "10.2.0", + "cspell-lib": "10.2.0", "fast-json-stable-stringify": "^2.1.0", - "flatted": "^3.4.2", - "semver": "^7.8.1", - "tinyglobby": "^0.2.16" + "flatted": "^3.4.4", + "semver": "^7.8.5", + "tinyglobby": "^0.2.17" }, "bin": { "cspell": "bin.mjs", @@ -5307,15 +5314,15 @@ } }, "node_modules/cspell-config-lib": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/cspell-config-lib/-/cspell-config-lib-10.0.1.tgz", - "integrity": "sha512-hMpo/0j6k7pbiqrLDOLJKD2IGP9XwhjKf2miiM6p84Xeo4nyuFZaxxDCQ68R851HSYFrrdltgpoipMbj1h2Tnw==", + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/cspell-config-lib/-/cspell-config-lib-10.2.0.tgz", + "integrity": "sha512-QweJ6dtHm1UkguapTm3Csra6p87HiOmLKiVRAxn75tW9Yojb5fGnqLxErO5sGQZvwgWAqQeT9lrqm3ohvCJjVw==", "dev": true, "license": "MIT", "dependencies": { - "@cspell/cspell-types": "10.0.1", + "@cspell/cspell-types": "10.2.0", "comment-json": "^5.0.0", - "smol-toml": "^1.6.1", + "smol-toml": "^1.8.0", "yaml": "^2.9.0" }, "engines": { @@ -5323,32 +5330,32 @@ } }, "node_modules/cspell-dictionary": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/cspell-dictionary/-/cspell-dictionary-10.0.1.tgz", - "integrity": "sha512-3cZ659vgsZWkzGQJR/sNqGDVt/OnvTSieLKI76V++4t1bHJfochb9ZrrwsuMsb1VPGiyqClUP1/O6WrefF/FVg==", + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/cspell-dictionary/-/cspell-dictionary-10.2.0.tgz", + "integrity": "sha512-5r7HBf3nkST6mwsFvRV51i3ETcqFuDQoYK03EqzZYTX4ZLVR/nGrRSOZuFW+d9yU3IKjLWgY14Ab4dDKmBcw7A==", "dev": true, "license": "MIT", "dependencies": { - "@cspell/cspell-performance-monitor": "10.0.1", - "@cspell/cspell-pipe": "10.0.1", - "@cspell/cspell-types": "10.0.1", - "cspell-trie-lib": "10.0.1", - "fast-equals": "^6.0.0" + "@cspell/cspell-performance-monitor": "10.2.0", + "@cspell/cspell-pipe": "10.2.0", + "@cspell/cspell-types": "10.2.0", + "cspell-trie-lib": "10.2.0", + "fast-equals": "^6.0.2" }, "engines": { "node": ">=22.18.0" } }, "node_modules/cspell-gitignore": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/cspell-gitignore/-/cspell-gitignore-10.0.1.tgz", - "integrity": "sha512-wN23U61Mx6qPJN3CesOmBU9vnbJ0jQm/ylK0iaVui3CcnO7Zzl5qLu5mPHUzGQGm8yso6qjyxqo16Ho7LpZGOQ==", + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/cspell-gitignore/-/cspell-gitignore-10.2.0.tgz", + "integrity": "sha512-2/b64Niu5wNlUOW6N7QBRnU8dpnCdvRfZbOgcCO5f5m0OuIbrXTsnrfHJk25w/9M9H2yv2VS8LRKPWuxGXiZpA==", "dev": true, "license": "MIT", "dependencies": { - "@cspell/url": "10.0.1", - "cspell-glob": "10.0.1", - "cspell-io": "10.0.1" + "@cspell/url": "10.2.0", + "cspell-glob": "10.2.0", + "cspell-io": "10.2.0" }, "bin": { "cspell-gitignore": "bin.mjs" @@ -5358,28 +5365,28 @@ } }, "node_modules/cspell-glob": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/cspell-glob/-/cspell-glob-10.0.1.tgz", - "integrity": "sha512-7bII9J3aSSpZDwhx7w+zfQXbMxHZQ3be0ilUp5bHrsjz6o07v/NqOHMGcwKdPn1sw2dxDz9sv057xE5pqXnSdw==", + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/cspell-glob/-/cspell-glob-10.2.0.tgz", + "integrity": "sha512-b6H3zFMkqM5OUVabAvdd4sqyziEo3fFlss73Jn2RsHY2h5PH8gOwM1WsWQOcbDSEn7tj5NsA9a3iETXMkY1thw==", "dev": true, "license": "MIT", "dependencies": { - "@cspell/url": "10.0.1", - "picomatch": "^4.0.4" + "@cspell/url": "10.2.0", + "picomatch": "^4.0.7" }, "engines": { "node": ">=22.18.0" } }, "node_modules/cspell-grammar": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/cspell-grammar/-/cspell-grammar-10.0.1.tgz", - "integrity": "sha512-xC9AFYmaI9wsO//a7S5tdDGKGJVD5UEEsTg+Up2fi7lPfXIryisYmV6tePNL1SEg0idYss4ja8LUZ3Mib09BjQ==", + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/cspell-grammar/-/cspell-grammar-10.2.0.tgz", + "integrity": "sha512-CrMM0Qoh9WuputdD08n3qrJKtzoLEZArT7QhMaeZkl58fARYqmx8JgtrE9X0+GSV4Uden0zVa5o4KcdXtXUSAQ==", "dev": true, "license": "MIT", "dependencies": { - "@cspell/cspell-pipe": "10.0.1", - "@cspell/cspell-types": "10.0.1" + "@cspell/cspell-pipe": "10.2.0", + "@cspell/cspell-types": "10.2.0" }, "bin": { "cspell-grammar": "bin.mjs" @@ -5389,48 +5396,48 @@ } }, "node_modules/cspell-io": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/cspell-io/-/cspell-io-10.0.1.tgz", - "integrity": "sha512-8C2ka07faxflnaqEBO3pektS21XViE/SEHT7F5ZD1ou7FyMR5u3xawTBJSczClfsxLt/WYeztBYrpmGAjmjksw==", + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/cspell-io/-/cspell-io-10.2.0.tgz", + "integrity": "sha512-UqZcOCH+W9DhcjQGRiKJIwQaeNLGA+PKBHVmw4hvmBvuWGCH7uSiHuOeO+WrvJbolFDfZ9f7gV5ItmITgSANHg==", "dev": true, "license": "MIT", "dependencies": { - "@cspell/cspell-service-bus": "10.0.1", - "@cspell/url": "10.0.1" + "@cspell/cspell-service-bus": "10.2.0", + "@cspell/url": "10.2.0" }, "engines": { "node": ">=22.18.0" } }, "node_modules/cspell-lib": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/cspell-lib/-/cspell-lib-10.0.1.tgz", - "integrity": "sha512-RpsIPiLzc4/YMW8BMRKpyJ81x439qjYWcqgdKeXnMkbKM88J9PexzutfFf/4v97v96KzfNitEzMpbI0uj8OeUg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@cspell/cspell-bundled-dicts": "10.0.1", - "@cspell/cspell-performance-monitor": "10.0.1", - "@cspell/cspell-pipe": "10.0.1", - "@cspell/cspell-resolver": "10.0.1", - "@cspell/cspell-types": "10.0.1", - "@cspell/dynamic-import": "10.0.1", - "@cspell/filetypes": "10.0.1", - "@cspell/rpc": "10.0.1", - "@cspell/strong-weak-map": "10.0.1", - "@cspell/url": "10.0.1", - "cspell-config-lib": "10.0.1", - "cspell-dictionary": "10.0.1", - "cspell-glob": "10.0.1", - "cspell-grammar": "10.0.1", - "cspell-io": "10.0.1", - "cspell-trie-lib": "10.0.1", + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/cspell-lib/-/cspell-lib-10.2.0.tgz", + "integrity": "sha512-uIU4RtUzodzlS39O26Q1g0AxdHNB7CndkaN40Ekmb19kKrOf49umsXhRhdzrYc/uQ9dsp4AFp/mQI5Yc1MK1NA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@cspell/cspell-bundled-dicts": "10.2.0", + "@cspell/cspell-performance-monitor": "10.2.0", + "@cspell/cspell-pipe": "10.2.0", + "@cspell/cspell-resolver": "10.2.0", + "@cspell/cspell-types": "10.2.0", + "@cspell/dynamic-import": "10.2.0", + "@cspell/filetypes": "10.2.0", + "@cspell/rpc": "10.2.0", + "@cspell/strong-weak-map": "10.2.0", + "@cspell/url": "10.2.0", + "cspell-config-lib": "10.2.0", + "cspell-dictionary": "10.2.0", + "cspell-glob": "10.2.0", + "cspell-grammar": "10.2.0", + "cspell-io": "10.2.0", + "cspell-trie-lib": "10.2.0", "env-paths": "^4.0.0", "gensequence": "^8.0.8", "import-fresh": "^4.0.0", "resolve-from": "^5.0.0", - "vscode-languageserver-textdocument": "^1.0.12", - "vscode-uri": "^3.1.0", + "vscode-languageserver-textdocument": "^1.0.14", + "vscode-uri": "^3.2.0", "xdg-basedir": "^5.1.0" }, "engines": { @@ -5451,16 +5458,29 @@ } }, "node_modules/cspell-trie-lib": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/cspell-trie-lib/-/cspell-trie-lib-10.0.1.tgz", - "integrity": "sha512-BFvhalSkRQFjKrZ//FKK7fRGrZFpifnxB5AwCkzsIsBZqicsfafcQ1xP21qpb0QqyV/IomjNgviG+tRJs+0rMw==", + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/cspell-trie-lib/-/cspell-trie-lib-10.2.0.tgz", + "integrity": "sha512-lvEfGc/SfNfkdq9LZYQENDMuPoILsLwo2o4QHqdyic65MvmL1fZLi77O/qgSJ4aKgVja0/A8cbsdtKnFuruHbw==", "dev": true, "license": "MIT", "engines": { "node": ">=22.18.0" }, "peerDependencies": { - "@cspell/cspell-types": "10.0.1" + "@cspell/cspell-types": "10.2.0" + } + }, + "node_modules/cspell/node_modules/chalk": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-6.0.0.tgz", + "integrity": "sha512-2uNTXIuTTxk7ciZgAU1BQcgnchcG0xXnrs6jzkQfj9SsRa9M2s5zE8WT96hS6KmG4MzWHSrvH43DF1m4XRkrFg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=22" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, "node_modules/css-functions-list": { @@ -7183,13 +7203,14 @@ } }, "node_modules/formatly": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/formatly/-/formatly-0.3.0.tgz", - "integrity": "sha512-9XNj/o4wrRFyhSMJOvsuyMwy8aUfBaZ1VrqHVfohyXf0Sw0e+yfKG+xZaY3arGCOMdwFsqObtzVOc1gU9KiT9w==", + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/formatly/-/formatly-0.7.0.tgz", + "integrity": "sha512-7CXJtIIA0zy/u12StsYk25qVKxvdLA2ep2sTNxK3ov0mGNIIDqIvAXDSgTnAfDJFsPfWjuz0WjfYSdpvnLA5Tg==", "dev": true, "license": "MIT", "dependencies": { - "fd-package-json": "^2.0.0" + "fd-package-json": "^2.0.0", + "package-manager-detector": "^1.8.0" }, "bin": { "formatly": "bin/index.mjs" @@ -7385,9 +7406,9 @@ } }, "node_modules/get-tsconfig": { - "version": "4.14.1", - "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.14.1.tgz", - "integrity": "sha512-Dz/6HxkrxgNehhxLVeyv8sad9UzF2xBVeaKBQNDfJ5XiSXmp2gTR0eO0RWiT2NCKS5aGP9jjkOMggTN90qU50A==", + "version": "4.14.3", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.14.3.tgz", + "integrity": "sha512-++QEw4DIY7WGoukz+/+A/8dGYPT9l9yIadnmSgZ8Rjr3YVSVDipQSO9CdnJo9ePqFqUUqh+wk9uIaoiAwsiPkA==", "dev": true, "license": "MIT", "dependencies": { @@ -8689,9 +8710,9 @@ } }, "node_modules/knip": { - "version": "6.32.2", - "resolved": "https://registry.npmjs.org/knip/-/knip-6.32.2.tgz", - "integrity": "sha512-WXTXbmocrw7gqm1A1TQvFN0OgJ7hUSU6E1g6SPRIzzHFogUBhXByc7cYeOFVtJ2uODg7DP4VbESYBYnfbtBYsg==", + "version": "6.34.0", + "resolved": "https://registry.npmjs.org/knip/-/knip-6.34.0.tgz", + "integrity": "sha512-bbHIrnGspYwe4EBPjjx+lvkUor0F2qfKQc5BPzPI4SOAImYA+k2ueVpIcF7d/W1LEVT7XoJUPt6zELeGZhXBgA==", "dev": true, "funding": [ { @@ -8706,16 +8727,16 @@ "license": "ISC", "dependencies": { "fdir": "^6.5.0", - "formatly": "^0.3.0", - "get-tsconfig": "4.14.1", + "formatly": "^0.7.0", + "get-tsconfig": "4.14.3", "jiti": "^2.7.0", - "oxc-parser": "^0.143.0", + "oxc-parser": "^0.147.0", "oxc-resolver": "11.24.2", - "picomatch": "^4.0.5", - "smol-toml": "^1.7.1", + "picomatch": "^4.0.7", + "smol-toml": "^1.8.0", "strip-json-comments": "5.0.3", "tinyglobby": "^0.2.17", - "unbash": "^4.0.9", + "unbash": "^4.0.10", "yaml": "^2.9.0", "zod": "^4.4.3" }, @@ -9662,9 +9683,9 @@ } }, "node_modules/ml-spectra-processing": { - "version": "14.33.0", - "resolved": "https://registry.npmjs.org/ml-spectra-processing/-/ml-spectra-processing-14.33.0.tgz", - "integrity": "sha512-zg71v6exRvPpzDh9SiN5iNAIG8yTFpzfJrRCRSb/hWf5gMsik7q60DkO5ew4knR7xF4DbjYmNWeqLq8gWcQdEQ==", + "version": "14.34.0", + "resolved": "https://registry.npmjs.org/ml-spectra-processing/-/ml-spectra-processing-14.34.0.tgz", + "integrity": "sha512-sNM3nOg7s4tyinRnU5FyYZFV//cPHMvjwfxQvFh3GyrvWNuZmPIZTPS+kiT/SPXMymxA4+qx8oFSZ9K03clGyQ==", "license": "MIT", "dependencies": { "binary-search": "^1.3.6", @@ -10139,13 +10160,13 @@ } }, "node_modules/oxc-parser": { - "version": "0.143.0", - "resolved": "https://registry.npmjs.org/oxc-parser/-/oxc-parser-0.143.0.tgz", - "integrity": "sha512-ov0NzaDCOInknS7mP1cwKdJERt3utPW8ldjtdUXQ8Ty0GEFD08wk422vCUN0d7pST6kqtV7dxoI9w1Zi0l/9TA==", + "version": "0.147.0", + "resolved": "https://registry.npmjs.org/oxc-parser/-/oxc-parser-0.147.0.tgz", + "integrity": "sha512-5xaug6t7GfV3BO5Iv+xHW1rmQkDEQ3BEu3L8g3InsvWO5i8CYGc4tCZ2X985QcwWNycFJam+aOns6Nr2XAThTA==", "dev": true, "license": "MIT", "dependencies": { - "@oxc-project/types": "^0.143.0" + "@oxc-project/types": "^0.147.0" }, "engines": { "node": "^20.19.0 || >=22.12.0" @@ -10154,25 +10175,25 @@ "url": "https://github.com/sponsors/Boshen" }, "optionalDependencies": { - "@oxc-parser/binding-android-arm-eabi": "0.143.0", - "@oxc-parser/binding-android-arm64": "0.143.0", - "@oxc-parser/binding-darwin-arm64": "0.143.0", - "@oxc-parser/binding-darwin-x64": "0.143.0", - "@oxc-parser/binding-freebsd-x64": "0.143.0", - "@oxc-parser/binding-linux-arm-gnueabihf": "0.143.0", - "@oxc-parser/binding-linux-arm-musleabihf": "0.143.0", - "@oxc-parser/binding-linux-arm64-gnu": "0.143.0", - "@oxc-parser/binding-linux-arm64-musl": "0.143.0", - "@oxc-parser/binding-linux-ppc64-gnu": "0.143.0", - "@oxc-parser/binding-linux-riscv64-gnu": "0.143.0", - "@oxc-parser/binding-linux-riscv64-musl": "0.143.0", - "@oxc-parser/binding-linux-s390x-gnu": "0.143.0", - "@oxc-parser/binding-linux-x64-gnu": "0.143.0", - "@oxc-parser/binding-linux-x64-musl": "0.143.0", - "@oxc-parser/binding-openharmony-arm64": "0.143.0", - "@oxc-parser/binding-win32-arm64-msvc": "0.143.0", - "@oxc-parser/binding-win32-ia32-msvc": "0.143.0", - "@oxc-parser/binding-win32-x64-msvc": "0.143.0" + "@oxc-parser/binding-android-arm-eabi": "0.147.0", + "@oxc-parser/binding-android-arm64": "0.147.0", + "@oxc-parser/binding-darwin-arm64": "0.147.0", + "@oxc-parser/binding-darwin-x64": "0.147.0", + "@oxc-parser/binding-freebsd-x64": "0.147.0", + "@oxc-parser/binding-linux-arm-gnueabihf": "0.147.0", + "@oxc-parser/binding-linux-arm-musleabihf": "0.147.0", + "@oxc-parser/binding-linux-arm64-gnu": "0.147.0", + "@oxc-parser/binding-linux-arm64-musl": "0.147.0", + "@oxc-parser/binding-linux-ppc64-gnu": "0.147.0", + "@oxc-parser/binding-linux-riscv64-gnu": "0.147.0", + "@oxc-parser/binding-linux-riscv64-musl": "0.147.0", + "@oxc-parser/binding-linux-s390x-gnu": "0.147.0", + "@oxc-parser/binding-linux-x64-gnu": "0.147.0", + "@oxc-parser/binding-linux-x64-musl": "0.147.0", + "@oxc-parser/binding-openharmony-arm64": "0.147.0", + "@oxc-parser/binding-win32-arm64-msvc": "0.147.0", + "@oxc-parser/binding-win32-ia32-msvc": "0.147.0", + "@oxc-parser/binding-win32-x64-msvc": "0.147.0" } }, "node_modules/oxc-resolver": { @@ -10245,10 +10266,17 @@ "dev": true, "license": "BlueOak-1.0.0" }, + "node_modules/package-manager-detector": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/package-manager-detector/-/package-manager-detector-1.8.0.tgz", + "integrity": "sha512-yQA4H19AmPEoMUeavPMDIe1higySl/gH/yaQrkT/s07Qp+7pp2hYz30N3z2l5BkjVkF9Ow6o0wjJamm2y7Sn0A==", + "dev": true, + "license": "MIT" + }, "node_modules/papaparse": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/papaparse/-/papaparse-5.6.0.tgz", - "integrity": "sha512-N2vuNQAYGK1/4vs6HJX86+VYU6OkiSTgdJz3JQfTk1y51cFCO/U8gnaeTF4iNE4r57Tt0sV47dUua1/19pxO6Q==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/papaparse/-/papaparse-5.7.0.tgz", + "integrity": "sha512-qBGxg/7Q3Kl9Wfhrz2Z74UnvnHTXLNG6jmKJFeBvP2+y4lV7So+7SR62+Zd47JvdrCkX+nDcnr0ObPzek/+6RA==", "license": "MIT" }, "node_modules/param-case": { @@ -10418,9 +10446,9 @@ "license": "ISC" }, "node_modules/picomatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.5.tgz", - "integrity": "sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==", + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.7.tgz", + "integrity": "sha512-qcJu88Q2IWqJsDD529JKMdwGm/dvInW4HvQnRwiH9JtihJvzGOscDtHE3x1pBKeUOTysQ8kVmLnJ2kJu7yhcGA==", "dev": true, "license": "MIT", "engines": { @@ -10820,13 +10848,10 @@ } }, "node_modules/react": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", - "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", + "version": "19.2.8", + "resolved": "https://registry.npmjs.org/react/-/react-19.2.8.tgz", + "integrity": "sha512-PWaYA1L/q9u2u7xYQi+Y3L3Yfnie7XyLeaJICV1MGD6LprsBxcAqGjYyr0eY3p+QdsA+x/Irkt4Qif8D63+Sbw==", "license": "MIT", - "dependencies": { - "loose-envify": "^1.1.0" - }, "engines": { "node": ">=0.10.0" } @@ -10845,22 +10870,21 @@ } }, "node_modules/react-dom": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", - "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", + "version": "19.2.8", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.8.tgz", + "integrity": "sha512-rVprimfGBG3DR+Tq0IQG2DT5PxKth1WIGDmj5yPmlzr4YBe7uyE+Du4oVqTDXZSHGGGXRtTJEGSSePyQCMBglQ==", "license": "MIT", "dependencies": { - "loose-envify": "^1.1.0", - "scheduler": "^0.23.2" + "scheduler": "^0.27.0" }, "peerDependencies": { - "react": "^18.3.1" + "react": "^19.2.8" } }, "node_modules/react-draggable": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/react-draggable/-/react-draggable-4.5.0.tgz", - "integrity": "sha512-VC+HBLEZ0XJxnOxVAZsdRi8rD04Iz3SiiKOoYzamjylUcju/hP9np/aZdLHf/7WOD268WMoNJMvYfB5yAK45cw==", + "version": "4.7.1", + "resolved": "https://registry.npmjs.org/react-draggable/-/react-draggable-4.7.1.tgz", + "integrity": "sha512-wa3tzfFnYt3yaZLuyU58fl1TNunfWfBekDgWhZA1+gb2jnp42wZ0ymuopR6M5kqDYmm4hKmzGlcKWjZf3Zb6RQ==", "license": "MIT", "dependencies": { "clsx": "^2.1.1", @@ -10894,9 +10918,9 @@ } }, "node_modules/react-error-boundary": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/react-error-boundary/-/react-error-boundary-6.1.3.tgz", - "integrity": "sha512-GnSKpCohFi2nQmJCWwP8O8wub7zexlePvpsejvQr35vS5RTouS1+utTNOmyc540yw5vyOXnSL1rBWsCQDmkyUA==", + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/react-error-boundary/-/react-error-boundary-6.1.4.tgz", + "integrity": "sha512-7FgvbyjCFhu4dtKSZu807cW1MWG2nWAM4bwGqUByAtHVJXtlzoCJX0SSyZRyFrb+aBd7wtJkcOR4DsxXVEuDsA==", "license": "MIT", "peerDependencies": { "@types/react": "^18.0.0 || ^19.0.0", @@ -10930,9 +10954,9 @@ } }, "node_modules/react-hook-form": { - "version": "7.85.0", - "resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.85.0.tgz", - "integrity": "sha512-U2MTriFXnclmV4rOE20p2DcRFv5WEg3FIcBFOKcOLFHDVvGIMPvLTkTWefUsonmlaVy23khVDxDWym6uJVGOzw==", + "version": "7.87.0", + "resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.87.0.tgz", + "integrity": "sha512-zhFzWvLxNHH+8839OnZcUxgMZw88ah2jZWDWvKWgF3Tpbnd0vKL+dlcuU3nZVWESZQjd81EW8K+wU+cYfYAc0w==", "license": "MIT", "engines": { "node": ">=18.0.0" @@ -11030,21 +11054,6 @@ "react": ">=18" } }, - "node_modules/react-popper": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/react-popper/-/react-popper-2.3.0.tgz", - "integrity": "sha512-e1hj8lL3uM+sgSR4Lxzn5h1GxBlpa4CQz0XLF8kx4MDrDRWY0Ena4c97PUeSX9i5W3UAfDP0z0FXCTQkoXUl3Q==", - "license": "MIT", - "dependencies": { - "react-fast-compare": "^3.0.1", - "warning": "^4.0.2" - }, - "peerDependencies": { - "@popperjs/core": "^2.0.0", - "react": "^16.8.0 || ^17 || ^18", - "react-dom": "^16.8.0 || ^17 || ^18" - } - }, "node_modules/react-rnd": { "version": "10.5.3", "resolved": "https://registry.npmjs.org/react-rnd/-/react-rnd-10.5.3.tgz", @@ -11067,9 +11076,9 @@ "license": "0BSD" }, "node_modules/react-router": { - "version": "7.18.2", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-7.18.2.tgz", - "integrity": "sha512-aUVMjFm3GAPTTZL7oYr5E7ETiqfQCHRLH+B+5afnICvf0r7kkK4eR6SMuwbSTJw/7t+12khT/Kahij49fqOCIg==", + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-7.18.3.tgz", + "integrity": "sha512-gyXgtdr5uACJ5b1Q4udzjVV+tb/rlHIMJKuJ0e89R4Kzgz47z/rgP0dIKxktqIEUhDHluGTPJJH/wRha7CyqsA==", "dev": true, "license": "MIT", "dependencies": { @@ -11090,13 +11099,13 @@ } }, "node_modules/react-router-dom": { - "version": "7.18.2", - "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-7.18.2.tgz", - "integrity": "sha512-AIKJ/jgGlFb3EbfCXk5Gzshiwt+l3mqbCrNjmEWMMjqQxNJ3svBa6bgzFyCC2Sw3RA0VWF1kg3uQf2OFhxb8hw==", + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-7.18.3.tgz", + "integrity": "sha512-ytVbyBBM7vMfRCam25r0WMhSVSom909A8p+8m0/f1w853dz/xfFu6etAT2SEbVoSnI+ZoPRDqIsQXVT89gp7kg==", "dev": true, "license": "MIT", "dependencies": { - "react-router": "7.18.2" + "react-router": "7.18.3" }, "engines": { "node": ">=20.0.0" @@ -11483,13 +11492,10 @@ } }, "node_modules/scheduler": { - "version": "0.23.2", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", - "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", - "license": "MIT", - "dependencies": { - "loose-envify": "^1.1.0" - } + "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/sdf-parser": { "version": "9.0.0", @@ -13110,16 +13116,16 @@ } }, "node_modules/vscode-languageserver-textdocument": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.12.tgz", - "integrity": "sha512-cxWNPesCnQCcMPeenjKKsOCKQZ/L6Tv19DTRIGuLWe32lyzWhihGVJ/rcckZXJxfdKCFvRLS3fpBIsV/ZGX4zA==", + "version": "1.0.14", + "resolved": "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.14.tgz", + "integrity": "sha512-EQyqJMi552E4ZTf46izQ4Fj6XquqxCySR3J5ZSD1SisMf6RfpeOWHxGBE8Gr6V0/3GHIGdAzDn8F8+1nTGCnoQ==", "dev": true, "license": "MIT" }, "node_modules/vscode-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.1.0.tgz", - "integrity": "sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.2.0.tgz", + "integrity": "sha512-m2gXo3bn0G1kT9InzMf07fTbqMbGtyckj3bH5ktLO+1Ssv+yiATZ4dhwaQv9UZWxJh6E9IFGnQyjgWVDWVBDrg==", "dev": true, "license": "MIT" }, @@ -13409,9 +13415,9 @@ } }, "node_modules/zod": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/zod/-/zod-4.4.3.tgz", - "integrity": "sha512-ytENFjIJFl2UwYglde2jchW2Hwm4GJFLDiSXWdTrJQBIN9Fcyp7n4DhxJEiWNAJMV1/BqWfW/kkg71UDcHJyTQ==", + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/zod/-/zod-4.5.4.tgz", + "integrity": "sha512-sC95tT5iHHH9gtpj6A81kh+NEaRAUFN+qlUPDUbRfOMvNf5QCBqsb3WgvnpVtK5Y+4UfA6KqufotuTvMGiTlsA==", "license": "MIT", "funding": { "url": "https://github.com/sponsors/colinhacks" diff --git a/package.json b/package.json index 06b2c36526..366a562fcf 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,7 @@ "clean-lib": "rimraf lib", "cspell": "cspell lint \"**/*.tsx\"", "dev": "vite --host localhost --port 3000 --open", - "eslint": "eslint . --cache --max-warnings=106", + "eslint": "eslint . --cache --max-warnings=105", "eslint-fix": "node --run eslint -- --fix", "install:clean": "rm -rf node_modules/ && rm -rf package-lock.json && npm install && npm start", "knip": "knip", @@ -56,8 +56,8 @@ "@blueprintjs/core": "^6.0.0", "@blueprintjs/icons": "^6.0.0", "@blueprintjs/select": "^6.0.0", - "react": ">=18.0.0", - "react-dom": ">=18.0.0" + "react": "^19.2.8", + "react-dom": "^19.2.8" }, "dependencies": { "@emotion/react": "^11.14.0", @@ -65,13 +65,13 @@ "@hookform/resolvers": "^5.9.1", "@tanstack/react-form": "^1.33.5", "@tanstack/react-store": "^0.11.1", - "@tanstack/react-table": "^9.1.2", + "@tanstack/react-table": "^9.2.4", "@zakodium/nmr-types": "^0.5.26", "@zakodium/nmrium-core": "^0.7.66", - "@zakodium/nmrium-core-plugins": "^0.7.88", + "@zakodium/nmrium-core-plugins": "^0.7.89", "@zakodium/pdnd-esm": "^1.1.1", "@zakodium/utils": "^0.5.1", - "@zip.js/zip.js": "^2.8.53", + "@zip.js/zip.js": "^2.9.0", "cheminfo-font": "^1.28.0", "cheminfo-types": "^1.15.0", "clipboard-polyfill": "^4.1.1", @@ -81,7 +81,7 @@ "dlv": "^1.1.3", "eventemitter3": "^5.0.4", "fifo-logger": "^2.0.1", - "file-collection": "^6.6.1", + "file-collection": "^6.7.0", "file-saver": "^2.0.5", "get-jpaths": "^1.4.1", "immer": "^11.1.18", @@ -93,18 +93,17 @@ "ml-gsd": "^14.2.2", "ml-peak-shape-generator": "^5.5.0", "ml-signal-processing": "^2.2.2", - "ml-spectra-processing": "^14.33.0", + "ml-spectra-processing": "^14.34.0", "ml-tree-similarity": "^2.2.0", - "nmr-processing": "^22.23.2", + "nmr-processing": "^22.23.6", "numeral": "^2.0.6", "openchemlib": "^9.25.0", "openchemlib-utils": "^8.18.0", - "papaparse": "^5.6.0", + "papaparse": "^5.7.0", "react-d3-utils": "^3.1.2", - "react-draggable": "=4.5.0", - "react-dropzone": "^20.1.0", - "react-error-boundary": "^6.1.3", - "react-hook-form": "^7.85.0", + "react-dropzone": "^20.1.1", + "react-error-boundary": "^6.1.4", + "react-hook-form": "^7.87.0", "react-icons": "^5.7.0", "react-inspector": "^9.0.0", "react-mf": "^3.1.1", @@ -117,7 +116,7 @@ "ts-pattern": "^5.9.0", "usehooks-ts": "^3.1.1", "yup": "^1.7.1", - "zod": "^4.4.3" + "zod": "^4.5.4" }, "devDependencies": { "@blueprintjs/core": "^6.18.0", @@ -131,34 +130,34 @@ "@types/dlv": "^1.1.5", "@types/file-saver": "^2.0.7", "@types/lodash": "^4.17.25", - "@types/node": "^26.2.0", + "@types/node": "^26.4.1", "@types/numeral": "^2.0.5", "@types/papaparse": "^5.5.2", - "@types/react": "^18.3.13", - "@types/react-dom": "^18.3.1", - "@vitejs/plugin-react": "^6.0.5", + "@types/react": "^19.2.18", + "@types/react-dom": "^19.2.5", + "@vitejs/plugin-react": "^6.1.1", "@vitest/coverage-v8": "^4.1.11", "@zakodium/tsconfig": "^1.0.5", "cross-env": "^10.1.0", - "cspell": "^10.0.1", + "cspell": "^10.2.0", "eslint": "^9.39.2", "eslint-config-cheminfo-react": "^20.1.0", "eslint-config-cheminfo-typescript": "^22.1.0", - "knip": "^6.32.2", + "knip": "^6.34.0", "modern-normalize": "^3.0.1", "postcss": "^8.5.26", "postcss-styled-syntax": "^0.7.2", "prettier": "^3.9.6", "rc-menu": "^9.16.1", - "react": "^18.3.1", - "react-dom": "^18.3.1", - "react-router-dom": "^7.18.2", + "react": "^19.2.8", + "react-dom": "^19.2.8", + "react-router-dom": "^7.18.3", "rimraf": "^6.1.3", "serve": "^14.2.6", "stylelint": "^17.14.1", "stylelint-config-standard": "^40.0.0", "typescript": "~6.0.3", - "vite": "^8.2.1", + "vite": "^8.2.2", "vitest": "^4.1.11" }, "volta": { diff --git a/src/component/EventsTrackers/BrushTracker.tsx b/src/component/EventsTrackers/BrushTracker.tsx index ccddfafa93..f978b02781 100644 --- a/src/component/EventsTrackers/BrushTracker.tsx +++ b/src/component/EventsTrackers/BrushTracker.tsx @@ -3,7 +3,6 @@ import type { KeyboardEvent, MouseEvent, PointerEvent, - Reducer, WheelEvent, } from 'react'; import { @@ -103,9 +102,7 @@ export function BrushTracker(options: BrushTrackerProps) { clickTriggerMode = 'native', } = options; - const [state, dispatch] = useReducer< - Reducer - >(reducer, initialState); + const [state, dispatch] = useReducer(reducer, initialState); const clickCountRef = useRef(0); const timeoutRef = useRef(null); const lastPointRef = useRef(0); diff --git a/src/component/EventsTrackers/KeysListenerTracker.tsx b/src/component/EventsTrackers/KeysListenerTracker.tsx index 4106612ef1..8370b50d1f 100644 --- a/src/component/EventsTrackers/KeysListenerTracker.tsx +++ b/src/component/EventsTrackers/KeysListenerTracker.tsx @@ -20,7 +20,7 @@ import SaveAsModal from '../modal/SaveAsModal.js'; import { options } from '../toolbar/ToolTypes.js'; interface KeysListenerTrackerProps { - mainDivRef: RefObject; + mainDivRef: RefObject; } function KeysListenerTracker(props: KeysListenerTrackerProps) { diff --git a/src/component/context/LoggerContext.tsx b/src/component/context/LoggerContext.tsx index df9cb17fcc..17f5f123cc 100644 --- a/src/component/context/LoggerContext.tsx +++ b/src/component/context/LoggerContext.tsx @@ -57,7 +57,7 @@ export function LoggerProvider({ children }: LoggerProviderProps) { const [lastReadLogId, setLastLogId] = useState(0); const [logsHistory, setLogsHistory] = useState([]); const [isLogHistoryOpened, openLogHistory] = useState(false); - const popupLoggingLevelRef = useRef(); + const popupLoggingLevelRef = useRef(undefined); const [logger] = useState(() => new FifoLogger()); useEffect(() => { diff --git a/src/component/elements/Anchor.tsx b/src/component/elements/Anchor.tsx index 7cbe04c580..a3decc8fee 100644 --- a/src/component/elements/Anchor.tsx +++ b/src/component/elements/Anchor.tsx @@ -39,7 +39,7 @@ interface AnchorPosition { interface AnchorProps { position: AnchorPosition; shape?: AnchorShape; - containerRef: RefObject; + containerRef: RefObject; anchorStyle?: AnchorStyle; restoreFocusOnLeave?: boolean; onDragMove: (newX: number) => void; diff --git a/src/component/elements/DraggableDialog.tsx b/src/component/elements/DraggableDialog.tsx index 24403c74b4..c6ef5d4796 100644 --- a/src/component/elements/DraggableDialog.tsx +++ b/src/component/elements/DraggableDialog.tsx @@ -57,7 +57,7 @@ interface DraggableDialogProps } interface InnerDraggableDialogProps extends DraggableDialogProps { - innerDialogRef: RefObject; + innerDialogRef: RefObject; } export function DraggableDialog(props: DraggableDialogProps) { const { @@ -84,7 +84,7 @@ export function DraggableDialog(props: DraggableDialogProps) { /> } onClose={onClose} className="draggable-portal" hasBackdrop={hasBackdrop} diff --git a/src/component/elements/ResizerWithScale.tsx b/src/component/elements/ResizerWithScale.tsx index 47d6eac05a..cb24f34e66 100644 --- a/src/component/elements/ResizerWithScale.tsx +++ b/src/component/elements/ResizerWithScale.tsx @@ -21,7 +21,7 @@ export function ResizerWithScale(props: ResizerWithScaleProps) { const x2 = scaleX()(from); const x1 = scaleX()(to); const [position, setPosition] = useState({ x1, x2 }); - const startPositionRef = useRef(); + const startPositionRef = useRef(undefined); useEffect(() => { const x2 = scaleX()(from); diff --git a/src/component/elements/export/ExportManager.tsx b/src/component/elements/export/ExportManager.tsx index 18dd7bc1cd..842e6d790c 100644 --- a/src/component/elements/export/ExportManager.tsx +++ b/src/component/elements/export/ExportManager.tsx @@ -33,7 +33,7 @@ interface ExportManagerState { } const ExportManagerContext = - createContext | null>(null); + createContext | null>(null); export function useExportManagerAPI() { const context = useContext(ExportManagerContext); diff --git a/src/component/elements/tanstack_table/table.tsx b/src/component/elements/tanstack_table/table.tsx index e91cf857f6..44b7dc16f1 100644 --- a/src/component/elements/tanstack_table/table.tsx +++ b/src/component/elements/tanstack_table/table.tsx @@ -137,7 +137,7 @@ function TanStackTableInner( const isSortedEventTriggered = useRef(false); const virtualBoundary = useTanStackTableContext(); const [rowIndex, setRowIndex] = useState(); - const timeoutIdRef = useRef(); + const timeoutIdRef = useRef(undefined); const [isCounterVisible, setCounterVisibility] = useState(false); const memoColumns = useMemo(() => { diff --git a/src/component/hooks/useCombinedRefs.ts b/src/component/hooks/useCombinedRefs.ts index 14961cbabb..38480ebd92 100644 --- a/src/component/hooks/useCombinedRefs.ts +++ b/src/component/hooks/useCombinedRefs.ts @@ -1,10 +1,10 @@ -import type { ForwardedRef, MutableRefObject, RefCallback } from 'react'; +import type { ForwardedRef, RefCallback, RefObject } from 'react'; import { useEffect, useRef } from 'react'; export default function useCombinedRefs( - refs: Array | MutableRefObject | ForwardedRef>, + refs: Array | RefObject | ForwardedRef>, ) { - const targetRef = useRef(); + const targetRef = useRef(undefined); // eslint-disable-next-line react-hooks/immutability useEffect(() => { diff --git a/src/component/hooks/useSaveSettings.tsx b/src/component/hooks/useSaveSettings.tsx index e0134aaf5e..5f69260f30 100644 --- a/src/component/hooks/useSaveSettings.tsx +++ b/src/component/hooks/useSaveSettings.tsx @@ -21,7 +21,7 @@ const schema = z.object({ export function useSaveSettings() { const toaster = useToaster(); const [isOpenDialog, openDialog, closeDialog] = useOnOff(false); - const settingsRef = useRef(); + const settingsRef = useRef(undefined); const { current } = usePreferences(); const { saveWorkspace, addNewWorkspace } = useWorkspaceAction(); diff --git a/src/component/main/InnerNMRiumContents.tsx b/src/component/main/InnerNMRiumContents.tsx index 417e8a4d48..71d246c134 100644 --- a/src/component/main/InnerNMRiumContents.tsx +++ b/src/component/main/InnerNMRiumContents.tsx @@ -68,10 +68,10 @@ const NMRiumContainer = styled.div` interface InnerNMRiumContentsProps { emptyText: NMRiumProps['emptyText']; - mainDivRef: RefObject; - elementsWrapperRef: RefObject; - rootRef: RefObject; - viewerRef: RefObject; + mainDivRef: RefObject; + elementsWrapperRef: RefObject; + rootRef: RefObject; + viewerRef: RefObject; apiRef: ForwardedRef; } diff --git a/src/component/main/NMRiumRefAPI.ts b/src/component/main/NMRiumRefAPI.ts index 22e81aabbf..e562bba760 100644 --- a/src/component/main/NMRiumRefAPI.ts +++ b/src/component/main/NMRiumRefAPI.ts @@ -17,7 +17,7 @@ export interface NMRiumRefAPI { export function useNMRiumRefAPI( ref: ForwardedRef, - rootRef: RefObject, + rootRef: RefObject, ) { const loadFiles = useLoadFiles(); const createNmriumZip = useCreateNmriumZip(); diff --git a/src/component/main/NMRiumStateProvider.tsx b/src/component/main/NMRiumStateProvider.tsx index f9b8e1aa0d..6d32626b6d 100644 --- a/src/component/main/NMRiumStateProvider.tsx +++ b/src/component/main/NMRiumStateProvider.tsx @@ -74,7 +74,7 @@ export default function NMRiumStateProvider(props: NMRiumStateProviderProps) { view, } = state; - const stateRef = useRef(); + const stateRef = useRef(undefined); const handleChange = useRef(onChange); useEffect(() => { diff --git a/src/component/main/NMRiumViewer.tsx b/src/component/main/NMRiumViewer.tsx index 5795f34ad7..b591f39329 100644 --- a/src/component/main/NMRiumViewer.tsx +++ b/src/component/main/NMRiumViewer.tsx @@ -19,7 +19,7 @@ import { import type { NMRiumProps } from './NMRium.js'; interface NMRiumViewerProps { - viewerRef: RefObject; + viewerRef: RefObject; style?: CSSProperties; onRender?: () => void; emptyText: NMRiumProps['emptyText']; diff --git a/src/component/main/NMRiumViewerWrapper.tsx b/src/component/main/NMRiumViewerWrapper.tsx index fecd4e0658..13ea156ce9 100644 --- a/src/component/main/NMRiumViewerWrapper.tsx +++ b/src/component/main/NMRiumViewerWrapper.tsx @@ -11,7 +11,7 @@ import type { NMRiumProps } from './NMRium.js'; import { NMRiumViewer } from './NMRiumViewer.js'; interface NMRiumViewerWrapperProps { - viewerRef: RefObject; + viewerRef: RefObject; emptyText: NMRiumProps['emptyText']; } diff --git a/src/component/modal/changeSum/SelectMolecule.tsx b/src/component/modal/changeSum/SelectMolecule.tsx index 213d591964..69869696d5 100644 --- a/src/component/modal/changeSum/SelectMolecule.tsx +++ b/src/component/modal/changeSum/SelectMolecule.tsx @@ -73,12 +73,12 @@ export default function SelectMolecule< useEffect(() => { if (molecules && molecules.length > 0) { - const index = value + const index = value?.id ? molecules.findIndex((molecule) => molecule.id === value.id) : -1; setValue(index !== -1 ? index : 0); } - }, [molecules, setValue, value]); + }, [molecules, setValue, value?.id]); const onChangeMoleculeSelectionHandler = useCallback( (index: number) => { diff --git a/src/component/panels/AutomaticAssignment/useAutoAssignments.ts b/src/component/panels/AutomaticAssignment/useAutoAssignments.ts index f438a7864b..77bfdd8c69 100644 --- a/src/component/panels/AutomaticAssignment/useAutoAssignments.ts +++ b/src/component/panels/AutomaticAssignment/useAutoAssignments.ts @@ -49,7 +49,7 @@ function mapSpectra(data: Spectrum[]): SpectraData[] { export function useAutoAssignments() { const dispatch = useDispatch(); const { data, molecules } = useChartData(); - const originData = useRef(); + const originData = useRef(undefined); const toaster = useToaster(); const [assignments, setAssignments] = useState([]); diff --git a/src/component/panels/MoleculesPanel/hooks/useExtractAtomAssignmentLabel.ts b/src/component/panels/MoleculesPanel/hooks/useExtractAtomAssignmentLabel.ts index 043e6e8b1a..bec6719446 100644 --- a/src/component/panels/MoleculesPanel/hooks/useExtractAtomAssignmentLabel.ts +++ b/src/component/panels/MoleculesPanel/hooks/useExtractAtomAssignmentLabel.ts @@ -6,7 +6,7 @@ import { useTopicMolecule } from '../../../context/TopicMoleculeContext.js'; export function useExtractAtomAssignmentLabel() { const topicMolecule = useTopicMolecule(); - const lastHoverAtomIdRef = useRef(); + const lastHoverAtomIdRef = useRef(undefined); function getLastHoverAtom() { return lastHoverAtomIdRef.current; diff --git a/src/component/panels/SpectraPanel/SpectrumListPanel.tsx b/src/component/panels/SpectraPanel/SpectrumListPanel.tsx index 26491c9a9a..af401d824d 100644 --- a/src/component/panels/SpectraPanel/SpectrumListPanel.tsx +++ b/src/component/panels/SpectraPanel/SpectrumListPanel.tsx @@ -16,7 +16,7 @@ const styles: CSSProperties = { }; function SpectrumListPanel() { - const settingsRef = useRef(); + const settingsRef = useRef(undefined); const [isFlipped, setFlipStatus] = useState(false); function settingsPanelHandler() { diff --git a/src/component/panels/filtersPanel/Filters/FiltersSectionsPanel.tsx b/src/component/panels/filtersPanel/Filters/FiltersSectionsPanel.tsx index b563055005..4b585c3b23 100644 --- a/src/component/panels/filtersPanel/Filters/FiltersSectionsPanel.tsx +++ b/src/component/panels/filtersPanel/Filters/FiltersSectionsPanel.tsx @@ -188,7 +188,7 @@ function FiltersInner(props: FiltersInnerProps) { const dispatch = useDispatch(); const toaster = useToaster(); - const selectedFilterIndex = useRef(); + const selectedFilterIndex = useRef(null); const activeSpectrum = useActiveSpectrum(); function filterSnapShotHandler(filter: FilterEntry, index: number) { diff --git a/src/component/panels/filtersPanel/Filters/hooks/usePhaseCorrection.tsx b/src/component/panels/filtersPanel/Filters/hooks/usePhaseCorrection.tsx index 72883018c0..abc44d1202 100644 --- a/src/component/panels/filtersPanel/Filters/hooks/usePhaseCorrection.tsx +++ b/src/component/panels/filtersPanel/Filters/hooks/usePhaseCorrection.tsx @@ -47,8 +47,8 @@ export function usePhaseCorrection( const [value, setValue] = useState({ ph0: 0, ph1: 0 }); const valueRef = useRef({ ph0: 0, ph1: 0 }); - const ph0Ref = useRef(); - const ph1Ref = useRef(); + const ph0Ref = useRef(undefined); + const ph1Ref = useRef(undefined); const { value: phaseCorrectionTypeItem, ...defaultSelectProps } = useSelect({ defaultSelectedItem: defaultPhasingTypeItem, diff --git a/src/component/panels/filtersPanel/Filters/hooks/usePhaseCorrectionTwoDimensions.tsx b/src/component/panels/filtersPanel/Filters/hooks/usePhaseCorrectionTwoDimensions.tsx index df6e4bf6f8..b1bdbb0890 100644 --- a/src/component/panels/filtersPanel/Filters/hooks/usePhaseCorrectionTwoDimensions.tsx +++ b/src/component/panels/filtersPanel/Filters/hooks/usePhaseCorrectionTwoDimensions.tsx @@ -46,8 +46,8 @@ export function usePhaseCorrectionTwoDimensions(filter: Filter2DEntry | null) { const [value, setValue] = useState(defaultPhaseOptions); const valueRef = useRef(defaultPhaseOptions); - const ph0Ref = useRef(); - const ph1Ref = useRef(); + const ph0Ref = useRef(undefined); + const ph1Ref = useRef(undefined); const { data } = useSpectrum(emptyData) as Spectrum2D; const debounceCalculation = useRef( diff --git a/src/component/utility/filterDatabaseInfoEntry.ts b/src/component/utility/filterDatabaseInfoEntry.ts index ba35f40340..7d0da6fde3 100644 --- a/src/component/utility/filterDatabaseInfoEntry.ts +++ b/src/component/utility/filterDatabaseInfoEntry.ts @@ -5,6 +5,6 @@ export function filterDatabaseInfoEntry(input: DatabaseNMREntry) { return getJPathsAsObject(input, { maxArrayElements: 5, maxDepth: 10, - includeJPathRegexps: [/^(smiles|names|meta)\./], + includeJPathRegexps: [/^(?:smiles|names|meta)\./], }); } diff --git a/src/utils/clipboard/clipboardComponents.tsx b/src/utils/clipboard/clipboardComponents.tsx index 5efb4982ca..be391f3db7 100644 --- a/src/utils/clipboard/clipboardComponents.tsx +++ b/src/utils/clipboard/clipboardComponents.tsx @@ -1,5 +1,5 @@ import styled from '@emotion/styled'; -import type { FormEvent } from 'react'; +import type { SubmitEvent } from 'react'; import { useCallback, useEffect, useMemo, useRef } from 'react'; import Button from '../../component/elements/Button.js'; @@ -144,7 +144,7 @@ function ClipboardFallbackRead(props: ClipboardFallbackReadProps) { onFileRef.current = props.onRead; }); - const onSubmit = useCallback((event: FormEvent) => { + const onSubmit = useCallback((event: SubmitEvent) => { event.preventDefault(); const data = new FormData(event.currentTarget); @@ -188,7 +188,7 @@ function ClipboardFallbackReadText(props: ClipboardFallbackReadTextProps) { onTextRef.current = props.onReadText; }); - const onSubmit = useCallback((event: FormEvent) => { + const onSubmit = useCallback((event: SubmitEvent) => { event.preventDefault(); const data = new FormData(event.currentTarget); @@ -232,7 +232,7 @@ function ClipboardFallbackWrite(props: ClipboardFallbackWriteProps) { onDismissRef.current = props.onDismiss; }); - const onSubmit = useCallback((event: FormEvent) => { + const onSubmit = useCallback((event: SubmitEvent) => { event.preventDefault(); onDismissRef.current(); @@ -275,7 +275,7 @@ function ClipboardFallbackWriteText(props: ClipboardFallbackWriteTextProps) { onDismissRef.current = props.onDismiss; }); - const onSubmit = useCallback((event: FormEvent) => { + const onSubmit = useCallback((event: SubmitEvent) => { event.preventDefault(); onDismissRef.current(); }, []);