From e4232825a9ed93f23aa94a63f277a4f180f81efe Mon Sep 17 00:00:00 2001 From: hamed musallam Date: Mon, 4 Aug 2025 11:19:40 +0200 Subject: [PATCH] chore: update dependencies --- package-lock.json | 969 ++++++++++-------- package.json | 26 +- .../DraggableStructure.tsx | 4 +- src/component/1d-2d/tools/BrushXY.tsx | 4 +- src/component/1d/FloatPublicationString.tsx | 2 +- src/component/1d/FloatingRanges.tsx | 2 +- src/component/1d/FooterBanner.tsx | 2 +- .../1d/PredictionErrorsNotations.tsx | 2 +- src/component/1d/inset/DraggableInset.tsx | 2 +- .../1d/multiAnalysis/AnalysisRange.tsx | 2 +- src/component/2d/SignalDeltaLine.tsx | 2 +- .../elements/ActionsButtonsPopover.tsx | 8 +- src/component/elements/Alert.tsx | 4 +- src/component/elements/Button.tsx | 14 +- src/component/elements/DraggableDialog.tsx | 6 +- src/component/elements/EditableColumn.tsx | 6 +- src/component/elements/EmptyText.tsx | 4 +- src/component/elements/Footer.tsx | 18 +- src/component/elements/MoleculeSelection.tsx | 36 +- src/component/elements/NextPrev.tsx | 28 +- .../elements/ReactTable/BaseReactTable.tsx | 12 +- src/component/elements/ReadOnly.tsx | 16 +- src/component/elements/Sections.tsx | 54 +- src/component/elements/Select.tsx | 16 +- src/component/elements/StyledDialogBody.tsx | 2 +- src/component/elements/Tab/DeleteButton.tsx | 10 +- src/component/elements/Tab/Tabs.tsx | 10 +- .../elements/dropDownButton/DropDownList.tsx | 8 +- src/component/header/Header.tsx | 2 +- src/component/hooks/useSaveSettings.tsx | 4 +- .../loader/DefaultSpinnerComponent.tsx | 18 +- src/component/loader/DropZone.tsx | 16 +- src/component/main/ErrorOverlay.tsx | 8 +- src/component/main/InnerNMRiumContents.tsx | 6 +- src/component/modal/AboutPredictionModal.tsx | 4 +- .../modal/AboutSpectrumSimulationModal.tsx | 4 +- .../modal/MultipletAnalysisModal.tsx | 22 +- src/component/modal/PredictSpectraModal.tsx | 8 +- .../modal/PublicationStringModal.tsx | 4 +- src/component/modal/aboutUs/AboutUsModal.tsx | 6 +- .../changeSum/ChangeSumModalContents.tsx | 2 +- .../modal/changeSum/SelectMolecule.tsx | 10 +- .../modal/setting/GeneralSettings.tsx | 10 +- src/component/panels/Panels.tsx | 4 +- src/component/panels/PanelsBar.tsx | 6 +- .../panels/RangesPanel/RangesTable.tsx | 12 +- .../TableColumns/ActionsColumn.tsx | 2 +- .../CorrelationTable/CorrelationTable.tsx | 18 +- .../editLink/Confirmation.tsx | 10 +- .../editLink/EditPathLength.tsx | 22 +- .../CorrelationTable/editLink/MoveLink.tsx | 14 +- .../panels/SummaryPanel/Overview.tsx | 2 +- .../panels/SummaryPanel/SummaryPanel.tsx | 10 +- .../panels/ZonesPanel/ZonesTable.tsx | 12 +- .../Filters/FiltersSectionsPanel.tsx | 2 +- .../Filters/InnerFilterHeader.tsx | 2 +- .../multipleAnalysisPanel/AlignSpectra.tsx | 8 +- .../predictionPanel/PredictionPanel.tsx | 12 +- .../PredictionSimpleOptions.tsx | 2 +- src/demo/Sidebar.tsx | 34 +- src/demo/index.css | 6 +- src/demo/layouts/Admin.tsx | 4 +- src/demo/test/TestHighlight.tsx | 2 +- src/demo/views/Exam.tsx | 54 +- src/demo/views/Exercise.tsx | 48 +- src/demo/views/Loading.tsx | 12 +- src/demo/views/PluginUITopBar.tsx | 2 +- 67 files changed, 915 insertions(+), 778 deletions(-) diff --git a/package-lock.json b/package-lock.json index e8068f85fc..4e4362f595 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16,11 +16,11 @@ "@blueprintjs/select": "^6.0.1", "@emotion/react": "^11.14.0", "@emotion/styled": "^11.14.1", - "@hookform/resolvers": "^5.1.1", + "@hookform/resolvers": "^5.2.1", "@zakodium/nmr-types": "^0.1.0", "@zakodium/nmrium-core": "^0.1.5", "@zakodium/nmrium-core-plugins": "^0.1.8", - "@zip.js/zip.js": "^2.7.68", + "@zip.js/zip.js": "^2.7.71", "cheminfo-font": "^1.13.1", "cheminfo-types": "^1.8.1", "clipboard-polyfill": "^4.1.1", @@ -32,7 +32,7 @@ "file-saver": "^2.0.5", "immer": "^10.1.1", "lodash": "^4.17.21", - "mf-parser": "^3.4.2", + "mf-parser": "^3.5.0", "ml-array-mean": "^1.1.6", "ml-array-median": "^1.1.6", "ml-conrec": "^5.0.3", @@ -49,7 +49,7 @@ "react-d3-utils": "^3.1.1", "react-dropzone": "^14.3.8", "react-error-boundary": "^6.0.0", - "react-hook-form": "^7.61.1", + "react-hook-form": "^7.62.0", "react-icons": "^5.5.0", "react-inspector": "^6.0.2", "react-mf": "^3.1.0", @@ -60,10 +60,10 @@ "react-science": "^19.1.0", "react-table": "^7.8.0", "smart-array-filter": "^4.1.1", - "yup": "^1.6.1" + "yup": "^1.7.0" }, "devDependencies": { - "@playwright/test": "^1.54.1", + "@playwright/test": "^1.54.2", "@simbathesailor/use-what-changed": "^2.0.0", "@types/d3": "^7.4.3", "@types/dlv": "^1.1.5", @@ -76,10 +76,10 @@ "@vitejs/plugin-react": "^4.7.0", "@vitest/coverage-v8": "^3.2.4", "@zakodium/tsconfig": "^1.0.2", - "cross-env": "^7.0.3", + "cross-env": "^10.0.0", "cspell": "^9.2.0", - "eslint": "^9.31.0", - "eslint-config-cheminfo-react": "^17.0.0", + "eslint": "^9.32.0", + "eslint-config-cheminfo-react": "^17.0.1", "eslint-config-cheminfo-typescript": "^19.0.0", "knip": "^5.62.0", "modern-normalize": "^3.0.1", @@ -88,13 +88,13 @@ "rc-menu": "^9.16.1", "react": "^18.3.1", "react-dom": "^18.3.1", - "react-router-dom": "^7.7.0", + "react-router-dom": "^7.7.1", "rimraf": "^6.0.1", "rollup-plugin-analyzer": "^4.0.0", "serve": "^14.2.4", - "stylelint": "^16.22.0", + "stylelint": "^16.23.0", "stylelint-config-standard": "^38.0.0", - "typescript": "^5.8.3", + "typescript": "^5.9.2", "vite": "^7.0.6", "vitest": "^3.2.4" }, @@ -1509,6 +1509,13 @@ "integrity": "sha512-snKqtPW01tN0ui7yu9rGv69aJXr/a/Ywvl11sUjNtEcRc+ng/mQriFL0wLXMef74iHa/EkftbDzU9F8iFbH+zg==", "license": "MIT" }, + "node_modules/@epic-web/invariant": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@epic-web/invariant/-/invariant-1.0.0.tgz", + "integrity": "sha512-lrTPqgvfFQtR/eY/qkIzp98OGdNJu0m5ji3q/nJI8v3SXkRKEnWiOxMmbvcSoAIzv/cGiuvRy57k4suKQSAdwA==", + "dev": true, + "license": "MIT" + }, "node_modules/@es-joy/jsdoccomment": { "version": "0.52.0", "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.52.0.tgz", @@ -2073,9 +2080,9 @@ } }, "node_modules/@eslint/js": { - "version": "9.31.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.31.0.tgz", - "integrity": "sha512-LOm5OVt7D4qiKCqoiPbA7LWmI+tbw1VbTUowBcUMgQSuM6poJufkFkYDcQpo5KfgD39TnNySV26QjOh7VFpSyw==", + "version": "9.32.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.32.0.tgz", + "integrity": "sha512-BBpRFZK3eX6uMLKz8WxFOBIFFcGFJ/g8XuwjTHCqHROSIsopI+ddn/d5Cfh36+7+e5edVS8dbSHnBNhrLEX0zg==", "dev": true, "license": "MIT", "engines": { @@ -2110,9 +2117,9 @@ } }, "node_modules/@hookform/resolvers": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/@hookform/resolvers/-/resolvers-5.1.1.tgz", - "integrity": "sha512-J/NVING3LMAEvexJkyTLjruSm7aOFx7QX21pzkiJfMoNG0wl5aFEjLTl7ay7IQb9EWY6AkrBy7tHL2Alijpdcg==", + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/@hookform/resolvers/-/resolvers-5.2.1.tgz", + "integrity": "sha512-u0+6X58gkjMcxur1wRWokA7XsiiBJ6aK17aPZxhkoYiK5J+HcTx0Vhu9ovXe6H+dVpO6cjrn2FkJTryXEMlryQ==", "license": "MIT", "dependencies": { "@standard-schema/utils": "^0.3.0" @@ -2612,13 +2619,13 @@ } }, "node_modules/@playwright/test": { - "version": "1.54.1", - "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.54.1.tgz", - "integrity": "sha512-FS8hQ12acieG2dYSksmLOF7BNxnVf2afRJdCuM1eMSxj6QTSE6G4InGF7oApGgDb65MX7AwMVlIkpru0yZA4Xw==", + "version": "1.54.2", + "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.54.2.tgz", + "integrity": "sha512-A+znathYxPf+72riFd1r1ovOLqsIIB0jKIoPjyK2kqEIe30/6jF6BC7QNluHuwUmsD2tv1XZVugN8GqfTMOxsA==", "dev": true, "license": "Apache-2.0", "dependencies": { - "playwright": "1.54.1" + "playwright": "1.54.2" }, "bin": { "playwright": "cli.js" @@ -3559,22 +3566,15 @@ "@types/react": "*" } }, - "node_modules/@typescript-eslint/eslint-plugin": { + "node_modules/@typescript-eslint/scope-manager": { "version": "8.38.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.38.0.tgz", - "integrity": "sha512-CPoznzpuAnIOl4nhj4tRr4gIPj5AfKgkiJmGQDaq+fQnRJTYlcBjbX3wbciGmpoPf8DREufuPRe1tNMZnGdanA==", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.38.0.tgz", + "integrity": "sha512-WJw3AVlFFcdT9Ri1xs/lg8LwDqgekWXWhH3iAF+1ZM+QPd7oxQ6jvtW/JPwzAScxitILUIFs0/AnQ/UWHzbATQ==", "dev": true, "license": "MIT", "dependencies": { - "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.38.0", - "@typescript-eslint/type-utils": "8.38.0", - "@typescript-eslint/utils": "8.38.0", - "@typescript-eslint/visitor-keys": "8.38.0", - "graphemer": "^1.4.0", - "ignore": "^7.0.0", - "natural-compare": "^1.4.0", - "ts-api-utils": "^2.1.0" + "@typescript-eslint/types": "8.38.0", + "@typescript-eslint/visitor-keys": "8.38.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -3582,35 +3582,31 @@ "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "@typescript-eslint/parser": "^8.38.0", - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <5.9.0" } }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", - "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", + "node_modules/@typescript-eslint/types": { + "version": "8.38.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.38.0.tgz", + "integrity": "sha512-wzkUfX3plUqij4YwWaJyqhiPE5UCRVlFpKn1oCRn2O1bJ592XxWJj8ROQ3JD5MYXLORW84063z3tZTb/cs4Tyw==", "dev": true, "license": "MIT", "engines": { - "node": ">= 4" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@typescript-eslint/parser": { + "node_modules/@typescript-eslint/visitor-keys": { "version": "8.38.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.38.0.tgz", - "integrity": "sha512-Zhy8HCvBUEfBECzIl1PKqF4p11+d0aUJS1GeUiuqK9WmOug8YCmC4h4bjyBvMyAMI9sbRczmrYL5lKg/YMbrcQ==", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.38.0.tgz", + "integrity": "sha512-pWrTcoFNWuwHlA9CvlfSsGWs14JxfN1TH25zM5L7o0pRLhsoZkDnTsXfQRJBEWJoV5DL0jf+Z+sxiud+K0mq1g==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "8.38.0", "@typescript-eslint/types": "8.38.0", - "@typescript-eslint/typescript-estree": "8.38.0", - "@typescript-eslint/visitor-keys": "8.38.0", - "debug": "^4.3.4" + "eslint-visitor-keys": "^4.2.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -3618,58 +3614,98 @@ "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <5.9.0" } }, - "node_modules/@typescript-eslint/project-service": { - "version": "8.38.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.38.0.tgz", - "integrity": "sha512-dbK7Jvqcb8c9QfH01YB6pORpqX1mn5gDZc9n63Ak/+jD67oWXn3Gs0M6vddAN+eDXBCS5EmNWzbSxsn9SzFWWg==", + "node_modules/@vitejs/plugin-react": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.7.0.tgz", + "integrity": "sha512-gUu9hwfWvvEDBBmgtAowQCojwZmJ5mcLn3aufeCsitijs3+f2NsrPtlAWIR6OPiqljl96GVCUbLe0HyqIpVaoA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/tsconfig-utils": "^8.38.0", - "@typescript-eslint/types": "^8.38.0", - "debug": "^4.3.4" + "@babel/core": "^7.28.0", + "@babel/plugin-transform-react-jsx-self": "^7.27.1", + "@babel/plugin-transform-react-jsx-source": "^7.27.1", + "@rolldown/pluginutils": "1.0.0-beta.27", + "@types/babel__core": "^7.20.5", + "react-refresh": "^0.17.0" }, "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "vite": "^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0" + } + }, + "node_modules/@vitest/coverage-v8": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-3.2.4.tgz", + "integrity": "sha512-EyF9SXU6kS5Ku/U82E259WSnvg6c8KTjppUncuNdm5QHpe17mwREHnjDzozC8x9MZ0xfBUFSaLkRv4TMA75ALQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "^2.3.0", + "@bcoe/v8-coverage": "^1.0.2", + "ast-v8-to-istanbul": "^0.3.3", + "debug": "^4.4.1", + "istanbul-lib-coverage": "^3.2.2", + "istanbul-lib-report": "^3.0.1", + "istanbul-lib-source-maps": "^5.0.6", + "istanbul-reports": "^3.1.7", + "magic-string": "^0.30.17", + "magicast": "^0.3.5", + "std-env": "^3.9.0", + "test-exclude": "^7.0.1", + "tinyrainbow": "^2.0.0" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "url": "https://opencollective.com/vitest" }, "peerDependencies": { - "typescript": ">=4.8.4 <5.9.0" + "@vitest/browser": "3.2.4", + "vitest": "3.2.4" + }, + "peerDependenciesMeta": { + "@vitest/browser": { + "optional": true + } } }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "8.38.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.38.0.tgz", - "integrity": "sha512-WJw3AVlFFcdT9Ri1xs/lg8LwDqgekWXWhH3iAF+1ZM+QPd7oxQ6jvtW/JPwzAScxitILUIFs0/AnQ/UWHzbATQ==", + "node_modules/@vitest/eslint-plugin": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/@vitest/eslint-plugin/-/eslint-plugin-1.3.4.tgz", + "integrity": "sha512-EOg8d0jn3BAiKnR55WkFxmxfWA3nmzrbIIuOXyTe6A72duryNgyU+bdBEauA97Aab3ho9kLmAwgPX63Ckj4QEg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.38.0", - "@typescript-eslint/visitor-keys": "8.38.0" + "@typescript-eslint/utils": "^8.24.1" }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "peerDependencies": { + "eslint": ">= 8.57.0", + "typescript": ">= 5.0.0", + "vitest": "*" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "peerDependenciesMeta": { + "typescript": { + "optional": true + }, + "vitest": { + "optional": true + } } }, - "node_modules/@typescript-eslint/tsconfig-utils": { + "node_modules/@vitest/eslint-plugin/node_modules/@typescript-eslint/utils": { "version": "8.38.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.38.0.tgz", - "integrity": "sha512-Lum9RtSE3EroKk/bYns+sPOodqb2Fv50XOl/gMviMKNvanETUuUcC9ObRbzrJ4VSd2JalPqgSAavwrPiPvnAiQ==", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.38.0.tgz", + "integrity": "sha512-hHcMA86Hgt+ijJlrD8fX0j1j8w4C92zue/8LOPAFioIno+W0+L7KqE8QZKCcPGc/92Vs9x36w/4MPTJhqXdyvg==", "dev": true, "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.7.0", + "@typescript-eslint/scope-manager": "8.38.0", + "@typescript-eslint/types": "8.38.0", + "@typescript-eslint/typescript-estree": "8.38.0" + }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, @@ -3678,20 +3714,26 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <5.9.0" } }, - "node_modules/@typescript-eslint/type-utils": { + "node_modules/@vitest/eslint-plugin/node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/typescript-estree": { "version": "8.38.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.38.0.tgz", - "integrity": "sha512-c7jAvGEZVf0ao2z+nnz8BUaHZD09Agbh+DY7qvBQqLiz8uJzRgVPj5YvOh8I8uEiH8oIUGIfHzMwUcGVco/SJg==", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.38.0.tgz", + "integrity": "sha512-fooELKcAKzxux6fA6pxOflpNS0jc+nOQEEOipXFNjSlBS6fqrJOVY/whSn70SScHrcJ2LDsxWrneFoWYSVfqhQ==", "dev": true, "license": "MIT", "dependencies": { + "@typescript-eslint/project-service": "8.38.0", + "@typescript-eslint/tsconfig-utils": "8.38.0", "@typescript-eslint/types": "8.38.0", - "@typescript-eslint/typescript-estree": "8.38.0", - "@typescript-eslint/utils": "8.38.0", + "@typescript-eslint/visitor-keys": "8.38.0", "debug": "^4.3.4", + "fast-glob": "^3.3.2", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", "ts-api-utils": "^2.1.0" }, "engines": { @@ -3702,42 +3744,37 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <5.9.0" } }, - "node_modules/@typescript-eslint/types": { + "node_modules/@vitest/eslint-plugin/node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/typescript-estree/node_modules/@typescript-eslint/project-service": { "version": "8.38.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.38.0.tgz", - "integrity": "sha512-wzkUfX3plUqij4YwWaJyqhiPE5UCRVlFpKn1oCRn2O1bJ592XxWJj8ROQ3JD5MYXLORW84063z3tZTb/cs4Tyw==", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.38.0.tgz", + "integrity": "sha512-dbK7Jvqcb8c9QfH01YB6pORpqX1mn5gDZc9n63Ak/+jD67oWXn3Gs0M6vddAN+eDXBCS5EmNWzbSxsn9SzFWWg==", "dev": true, "license": "MIT", + "dependencies": { + "@typescript-eslint/tsconfig-utils": "^8.38.0", + "@typescript-eslint/types": "^8.38.0", + "debug": "^4.3.4" + }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <5.9.0" } }, - "node_modules/@typescript-eslint/typescript-estree": { + "node_modules/@vitest/eslint-plugin/node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/typescript-estree/node_modules/@typescript-eslint/tsconfig-utils": { "version": "8.38.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.38.0.tgz", - "integrity": "sha512-fooELKcAKzxux6fA6pxOflpNS0jc+nOQEEOipXFNjSlBS6fqrJOVY/whSn70SScHrcJ2LDsxWrneFoWYSVfqhQ==", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.38.0.tgz", + "integrity": "sha512-Lum9RtSE3EroKk/bYns+sPOodqb2Fv50XOl/gMviMKNvanETUuUcC9ObRbzrJ4VSd2JalPqgSAavwrPiPvnAiQ==", "dev": true, "license": "MIT", - "dependencies": { - "@typescript-eslint/project-service": "8.38.0", - "@typescript-eslint/tsconfig-utils": "8.38.0", - "@typescript-eslint/types": "8.38.0", - "@typescript-eslint/visitor-keys": "8.38.0", - "debug": "^4.3.4", - "fast-glob": "^3.3.2", - "is-glob": "^4.0.3", - "minimatch": "^9.0.4", - "semver": "^7.6.0", - "ts-api-utils": "^2.1.0" - }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, @@ -3749,7 +3786,7 @@ "typescript": ">=4.8.4 <5.9.0" } }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { + "node_modules/@vitest/eslint-plugin/node_modules/brace-expansion": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", @@ -3759,7 +3796,7 @@ "balanced-match": "^1.0.0" } }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { + "node_modules/@vitest/eslint-plugin/node_modules/minimatch": { "version": "9.0.5", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", @@ -3775,7 +3812,7 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { + "node_modules/@vitest/eslint-plugin/node_modules/semver": { "version": "7.7.2", "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", @@ -3788,126 +3825,6 @@ "node": ">=10" } }, - "node_modules/@typescript-eslint/utils": { - "version": "8.38.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.38.0.tgz", - "integrity": "sha512-hHcMA86Hgt+ijJlrD8fX0j1j8w4C92zue/8LOPAFioIno+W0+L7KqE8QZKCcPGc/92Vs9x36w/4MPTJhqXdyvg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/eslint-utils": "^4.7.0", - "@typescript-eslint/scope-manager": "8.38.0", - "@typescript-eslint/types": "8.38.0", - "@typescript-eslint/typescript-estree": "8.38.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <5.9.0" - } - }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.38.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.38.0.tgz", - "integrity": "sha512-pWrTcoFNWuwHlA9CvlfSsGWs14JxfN1TH25zM5L7o0pRLhsoZkDnTsXfQRJBEWJoV5DL0jf+Z+sxiud+K0mq1g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "8.38.0", - "eslint-visitor-keys": "^4.2.1" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@vitejs/plugin-react": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.7.0.tgz", - "integrity": "sha512-gUu9hwfWvvEDBBmgtAowQCojwZmJ5mcLn3aufeCsitijs3+f2NsrPtlAWIR6OPiqljl96GVCUbLe0HyqIpVaoA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/core": "^7.28.0", - "@babel/plugin-transform-react-jsx-self": "^7.27.1", - "@babel/plugin-transform-react-jsx-source": "^7.27.1", - "@rolldown/pluginutils": "1.0.0-beta.27", - "@types/babel__core": "^7.20.5", - "react-refresh": "^0.17.0" - }, - "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "peerDependencies": { - "vite": "^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0" - } - }, - "node_modules/@vitest/coverage-v8": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-3.2.4.tgz", - "integrity": "sha512-EyF9SXU6kS5Ku/U82E259WSnvg6c8KTjppUncuNdm5QHpe17mwREHnjDzozC8x9MZ0xfBUFSaLkRv4TMA75ALQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@ampproject/remapping": "^2.3.0", - "@bcoe/v8-coverage": "^1.0.2", - "ast-v8-to-istanbul": "^0.3.3", - "debug": "^4.4.1", - "istanbul-lib-coverage": "^3.2.2", - "istanbul-lib-report": "^3.0.1", - "istanbul-lib-source-maps": "^5.0.6", - "istanbul-reports": "^3.1.7", - "magic-string": "^0.30.17", - "magicast": "^0.3.5", - "std-env": "^3.9.0", - "test-exclude": "^7.0.1", - "tinyrainbow": "^2.0.0" - }, - "funding": { - "url": "https://opencollective.com/vitest" - }, - "peerDependencies": { - "@vitest/browser": "3.2.4", - "vitest": "3.2.4" - }, - "peerDependenciesMeta": { - "@vitest/browser": { - "optional": true - } - } - }, - "node_modules/@vitest/eslint-plugin": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/@vitest/eslint-plugin/-/eslint-plugin-1.3.4.tgz", - "integrity": "sha512-EOg8d0jn3BAiKnR55WkFxmxfWA3nmzrbIIuOXyTe6A72duryNgyU+bdBEauA97Aab3ho9kLmAwgPX63Ckj4QEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/utils": "^8.24.1" - }, - "peerDependencies": { - "eslint": ">= 8.57.0", - "typescript": ">= 5.0.0", - "vitest": "*" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - }, - "vitest": { - "optional": true - } - } - }, "node_modules/@vitest/expect": { "version": "3.2.4", "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-3.2.4.tgz", @@ -4084,9 +4001,9 @@ "license": "MIT" }, "node_modules/@zip.js/zip.js": { - "version": "2.7.68", - "resolved": "https://registry.npmjs.org/@zip.js/zip.js/-/zip.js-2.7.68.tgz", - "integrity": "sha512-HkabH6ThvDh1btwLbJiLFXzUW4fNN0leoYiopCg03OWg394j8NSb/Mro4i5J0S9ZLTwbBUpFrx86TzDXQRlT4Q==", + "version": "2.7.71", + "resolved": "https://registry.npmjs.org/@zip.js/zip.js/-/zip.js-2.7.71.tgz", + "integrity": "sha512-TA6hXQQeOsqJGchrPRaPPt+CScLcS05A/JD03sVTysAUqJ1HungAW5rSqRk23AK9i3Zph5kswrv31rHSEum+Tw==", "license": "BSD-3-Clause", "engines": { "bun": ">=0.7.0", @@ -4504,9 +4421,9 @@ } }, "node_modules/atom-sorter": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/atom-sorter/-/atom-sorter-2.2.0.tgz", - "integrity": "sha512-ktg7pvTF22Ox/HPJZjUrw3L0dH1nOZg+CjGR0r1iyZO2LDbQX5GgIxOWq4YthifBrcVxfFMkdKVhp5YJ43g0Vw==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/atom-sorter/-/atom-sorter-2.2.1.tgz", + "integrity": "sha512-+Lyyb6iXLHEb/ZYkpuvdEUgZ62+oA96p3rJG5lsttwl9vig1UqD8sAUnGQjrDFcVNUywFBhiW57Nns65M7TXEA==", "license": "MIT" }, "node_modules/attr-accept": { @@ -4695,20 +4612,20 @@ } }, "node_modules/cacheable": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/cacheable/-/cacheable-1.10.2.tgz", - "integrity": "sha512-hMkETCRV4hwBAvjQY1/xGw15tlPj+7cM4d5HOlYJJFftLQVRCboVX+mT6AJ6eL0fsqUhSUwDiF+pgfTR2r2Hxg==", + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/cacheable/-/cacheable-1.10.3.tgz", + "integrity": "sha512-M6p10iJ/VT0wT7TLIGUnm958oVrU2cUK8pQAVU21Zu7h8rbk/PeRtRWrvHJBql97Bhzk3g1N6+2VKC+Rjxna9Q==", "dev": true, "license": "MIT", "dependencies": { "hookified": "^1.10.0", - "keyv": "^5.3.4" + "keyv": "^5.4.0" } }, "node_modules/cacheable/node_modules/keyv": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-5.4.0.tgz", - "integrity": "sha512-TMckyVjEoacG5IteUpUrOBsFORtheqziVyyY2dLUwg1jwTb8u48LX4TgmtogkNl9Y9unaEJ1luj10fGyjMGFOQ==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-5.5.0.tgz", + "integrity": "sha512-QG7qR2tijh1ftOvClut4YKKg1iW6cx3GZsKoGyJPxHkGWK9oJhG9P3j5deP0QQOGDowBMVQFaP+Vm4NpGYvmIQ==", "dev": true, "license": "MIT", "dependencies": { @@ -4906,9 +4823,9 @@ } }, "node_modules/chemical-elements": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/chemical-elements/-/chemical-elements-2.2.0.tgz", - "integrity": "sha512-efJLUBfsghWKx/ITfF70GB/TDR2upHxW95zOgWxfVs4866XliJGthlGP170YdmUdM98QbEtC4B1zEDpMGGLnSg==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/chemical-elements/-/chemical-elements-2.2.1.tgz", + "integrity": "sha512-Khr3m8RhBbNwDb2MSo9Zb9O+dcUuFourUC0hK+YxNhAtEhOwJPVTMDQeDi1vUwH44tUeNRNKriUs2QQFNQvxgg==", "license": "MIT" }, "node_modules/chemical-groups": { @@ -5255,22 +5172,21 @@ } }, "node_modules/cross-env": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz", - "integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==", + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-10.0.0.tgz", + "integrity": "sha512-aU8qlEK/nHYtVuN4p7UQgAwVljzMg8hB4YK5ThRqD2l/ziSnryncPNn7bMLt5cFYsKVKBh8HqLqyCoTupEUu7Q==", "dev": true, "license": "MIT", "dependencies": { - "cross-spawn": "^7.0.1" + "@epic-web/invariant": "^1.0.0", + "cross-spawn": "^7.0.6" }, "bin": { - "cross-env": "src/bin/cross-env.js", - "cross-env-shell": "src/bin/cross-env-shell.js" + "cross-env": "dist/bin/cross-env.js", + "cross-env-shell": "dist/bin/cross-env-shell.js" }, "engines": { - "node": ">=10.14", - "npm": ">=6", - "yarn": ">=1" + "node": ">=20" } }, "node_modules/cross-spawn": { @@ -6438,150 +6354,395 @@ "@esbuild/win32-x64": "0.25.8" } }, - "node_modules/escalade": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", - "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "9.32.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.32.0.tgz", + "integrity": "sha512-LSehfdpgMeWcTZkWZVIJl+tkZ2nuSkyyB9C27MZqFWXuph7DvaowgcTvKqxvpLW1JZIk8PN7hFY3Rj9LQ7m7lg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.12.1", + "@eslint/config-array": "^0.21.0", + "@eslint/config-helpers": "^0.3.0", + "@eslint/core": "^0.15.0", + "@eslint/eslintrc": "^3.3.1", + "@eslint/js": "9.32.0", + "@eslint/plugin-kit": "^0.3.4", + "@humanfs/node": "^0.16.6", + "@humanwhocodes/module-importer": "^1.0.1", + "@humanwhocodes/retry": "^0.4.2", + "@types/estree": "^1.0.6", + "@types/json-schema": "^7.0.15", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.6", + "debug": "^4.3.2", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^8.4.0", + "eslint-visitor-keys": "^4.2.1", + "espree": "^10.4.0", + "esquery": "^1.5.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^8.0.0", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } + } + }, + "node_modules/eslint-config-cheminfo": { + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-cheminfo/-/eslint-config-cheminfo-15.0.0.tgz", + "integrity": "sha512-nxk+yocCmbi2tO35+C6RUFHRBh4CFHr0HCWcWaXuw850kF4RO443VkdUwp54JAbBXh69W09Q0NmT8FrSxm2eQw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/eslint-plugin": "^1.3.4", + "eslint-plugin-import": "^2.32.0", + "eslint-plugin-jsdoc": "^51.3.3", + "eslint-plugin-unicorn": "^59.0.1", + "globals": "^16.3.0" + }, + "peerDependencies": { + "eslint": "^9.30.1" + } + }, + "node_modules/eslint-config-cheminfo-react": { + "version": "17.0.1", + "resolved": "https://registry.npmjs.org/eslint-config-cheminfo-react/-/eslint-config-cheminfo-react-17.0.1.tgz", + "integrity": "sha512-YXOX8Pj57SHCKgHKeTh615kMzLhKM0avFkKo3yXCxyZh7FW4jwHynwjMrFhliF3hNA2mcv9TK2vnb8oXlVoZNA==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-config-cheminfo": "^15.0.0", + "eslint-plugin-react": "^7.37.5", + "eslint-plugin-react-hooks": "^6.0.0-rc.1", + "eslint-plugin-react-refresh": "^0.4.20", + "eslint-plugin-react-you-might-not-need-an-effect": "^0.4.1", + "globals": "^16.3.0" + }, + "peerDependencies": { + "eslint": "^9.30.1" + } + }, + "node_modules/eslint-config-cheminfo-react/node_modules/globals": { + "version": "16.3.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-16.3.0.tgz", + "integrity": "sha512-bqWEnJ1Nt3neqx2q5SFfGS8r/ahumIakg3HcwtNlrVlwXIeNumWn/c7Pn/wKzGhf6SaW6H6uWXLqC30STCMchQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint-config-cheminfo-typescript": { + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-cheminfo-typescript/-/eslint-config-cheminfo-typescript-19.0.0.tgz", + "integrity": "sha512-g5mR0zEf/teWbaJrm/6Nesdsrr+oyBTJ4w8FCq9n9OaySTa7tvqYM0zWaPhBxEBn18cLgIKI4FKSn7RpHxvLdQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-config-cheminfo": "^15.0.0", + "typescript-eslint": "^8.36.0" + }, + "peerDependencies": { + "eslint": "^9.30.1", + "typescript": ">=5.7.3" + } + }, + "node_modules/eslint-config-cheminfo-typescript/node_modules/brace-expansion": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/eslint-config-cheminfo-typescript/node_modules/ignore": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", + "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/eslint-config-cheminfo-typescript/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/eslint-config-cheminfo-typescript/node_modules/semver": { + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint-config-cheminfo-typescript/node_modules/typescript-eslint": { + "version": "8.38.0", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.38.0.tgz", + "integrity": "sha512-FsZlrYK6bPDGoLeZRuvx2v6qrM03I0U0SnfCLPs/XCCPCFD80xU9Pg09H/K+XFa68uJuZo7l/Xhs+eDRg2l3hg==", "dev": true, "license": "MIT", + "dependencies": { + "@typescript-eslint/eslint-plugin": "8.38.0", + "@typescript-eslint/parser": "8.38.0", + "@typescript-eslint/typescript-estree": "8.38.0", + "@typescript-eslint/utils": "8.38.0" + }, "engines": { - "node": ">=6" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" } }, - "node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "node_modules/eslint-config-cheminfo-typescript/node_modules/typescript-eslint/node_modules/@typescript-eslint/eslint-plugin": { + "version": "8.38.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.38.0.tgz", + "integrity": "sha512-CPoznzpuAnIOl4nhj4tRr4gIPj5AfKgkiJmGQDaq+fQnRJTYlcBjbX3wbciGmpoPf8DREufuPRe1tNMZnGdanA==", + "dev": true, "license": "MIT", + "dependencies": { + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "8.38.0", + "@typescript-eslint/type-utils": "8.38.0", + "@typescript-eslint/utils": "8.38.0", + "@typescript-eslint/visitor-keys": "8.38.0", + "graphemer": "^1.4.0", + "ignore": "^7.0.0", + "natural-compare": "^1.4.0", + "ts-api-utils": "^2.1.0" + }, "engines": { - "node": ">=10" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^8.38.0", + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" } }, - "node_modules/eslint": { - "version": "9.31.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.31.0.tgz", - "integrity": "sha512-QldCVh/ztyKJJZLr4jXNUByx3gR+TDYZCRXEktiZoUR3PGy4qCmSbkxcIle8GEwGpb5JBZazlaJ/CxLidXdEbQ==", + "node_modules/eslint-config-cheminfo-typescript/node_modules/typescript-eslint/node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/type-utils": { + "version": "8.38.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.38.0.tgz", + "integrity": "sha512-c7jAvGEZVf0ao2z+nnz8BUaHZD09Agbh+DY7qvBQqLiz8uJzRgVPj5YvOh8I8uEiH8oIUGIfHzMwUcGVco/SJg==", "dev": true, "license": "MIT", "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.12.1", - "@eslint/config-array": "^0.21.0", - "@eslint/config-helpers": "^0.3.0", - "@eslint/core": "^0.15.0", - "@eslint/eslintrc": "^3.3.1", - "@eslint/js": "9.31.0", - "@eslint/plugin-kit": "^0.3.1", - "@humanfs/node": "^0.16.6", - "@humanwhocodes/module-importer": "^1.0.1", - "@humanwhocodes/retry": "^0.4.2", - "@types/estree": "^1.0.6", - "@types/json-schema": "^7.0.15", - "ajv": "^6.12.4", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.6", - "debug": "^4.3.2", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^8.4.0", - "eslint-visitor-keys": "^4.2.1", - "espree": "^10.4.0", - "esquery": "^1.5.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^8.0.0", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "ignore": "^5.2.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.3" - }, - "bin": { - "eslint": "bin/eslint.js" + "@typescript-eslint/types": "8.38.0", + "@typescript-eslint/typescript-estree": "8.38.0", + "@typescript-eslint/utils": "8.38.0", + "debug": "^4.3.4", + "ts-api-utils": "^2.1.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "url": "https://eslint.org/donate" + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "jiti": "*" + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/eslint-config-cheminfo-typescript/node_modules/typescript-eslint/node_modules/@typescript-eslint/parser": { + "version": "8.38.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.38.0.tgz", + "integrity": "sha512-Zhy8HCvBUEfBECzIl1PKqF4p11+d0aUJS1GeUiuqK9WmOug8YCmC4h4bjyBvMyAMI9sbRczmrYL5lKg/YMbrcQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/scope-manager": "8.38.0", + "@typescript-eslint/types": "8.38.0", + "@typescript-eslint/typescript-estree": "8.38.0", + "@typescript-eslint/visitor-keys": "8.38.0", + "debug": "^4.3.4" }, - "peerDependenciesMeta": { - "jiti": { - "optional": true - } + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" } }, - "node_modules/eslint-config-cheminfo": { - "version": "15.0.0", - "resolved": "https://registry.npmjs.org/eslint-config-cheminfo/-/eslint-config-cheminfo-15.0.0.tgz", - "integrity": "sha512-nxk+yocCmbi2tO35+C6RUFHRBh4CFHr0HCWcWaXuw850kF4RO443VkdUwp54JAbBXh69W09Q0NmT8FrSxm2eQw==", + "node_modules/eslint-config-cheminfo-typescript/node_modules/typescript-eslint/node_modules/@typescript-eslint/typescript-estree": { + "version": "8.38.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.38.0.tgz", + "integrity": "sha512-fooELKcAKzxux6fA6pxOflpNS0jc+nOQEEOipXFNjSlBS6fqrJOVY/whSn70SScHrcJ2LDsxWrneFoWYSVfqhQ==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/eslint-plugin": "^1.3.4", - "eslint-plugin-import": "^2.32.0", - "eslint-plugin-jsdoc": "^51.3.3", - "eslint-plugin-unicorn": "^59.0.1", - "globals": "^16.3.0" + "@typescript-eslint/project-service": "8.38.0", + "@typescript-eslint/tsconfig-utils": "8.38.0", + "@typescript-eslint/types": "8.38.0", + "@typescript-eslint/visitor-keys": "8.38.0", + "debug": "^4.3.4", + "fast-glob": "^3.3.2", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^2.1.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^9.30.1" + "typescript": ">=4.8.4 <5.9.0" } }, - "node_modules/eslint-config-cheminfo-react": { - "version": "17.0.0", - "resolved": "https://registry.npmjs.org/eslint-config-cheminfo-react/-/eslint-config-cheminfo-react-17.0.0.tgz", - "integrity": "sha512-Yy6M8Ym8l59uVWgGkKHMlFXXKtAzfx2ZEXHg3v7x7k28mP2alSiS4asiRZz3paaN+EmHXcD+haU39W2KNHCGeg==", + "node_modules/eslint-config-cheminfo-typescript/node_modules/typescript-eslint/node_modules/@typescript-eslint/typescript-estree/node_modules/@typescript-eslint/project-service": { + "version": "8.38.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.38.0.tgz", + "integrity": "sha512-dbK7Jvqcb8c9QfH01YB6pORpqX1mn5gDZc9n63Ak/+jD67oWXn3Gs0M6vddAN+eDXBCS5EmNWzbSxsn9SzFWWg==", "dev": true, "license": "MIT", "dependencies": { - "eslint-config-cheminfo": "^15.0.0", - "eslint-plugin-react": "^7.37.5", - "eslint-plugin-react-hooks": "^6.0.0-rc.1", - "eslint-plugin-react-refresh": "^0.4.20", - "eslint-plugin-react-you-might-not-need-an-effect": "^0.3.1", - "globals": "^16.3.0" + "@typescript-eslint/tsconfig-utils": "^8.38.0", + "@typescript-eslint/types": "^8.38.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^9.30.1" + "typescript": ">=4.8.4 <5.9.0" } }, - "node_modules/eslint-config-cheminfo-react/node_modules/globals": { - "version": "16.3.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-16.3.0.tgz", - "integrity": "sha512-bqWEnJ1Nt3neqx2q5SFfGS8r/ahumIakg3HcwtNlrVlwXIeNumWn/c7Pn/wKzGhf6SaW6H6uWXLqC30STCMchQ==", + "node_modules/eslint-config-cheminfo-typescript/node_modules/typescript-eslint/node_modules/@typescript-eslint/typescript-estree/node_modules/@typescript-eslint/tsconfig-utils": { + "version": "8.38.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.38.0.tgz", + "integrity": "sha512-Lum9RtSE3EroKk/bYns+sPOodqb2Fv50XOl/gMviMKNvanETUuUcC9ObRbzrJ4VSd2JalPqgSAavwrPiPvnAiQ==", "dev": true, "license": "MIT", "engines": { - "node": ">=18" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <5.9.0" } }, - "node_modules/eslint-config-cheminfo-typescript": { - "version": "19.0.0", - "resolved": "https://registry.npmjs.org/eslint-config-cheminfo-typescript/-/eslint-config-cheminfo-typescript-19.0.0.tgz", - "integrity": "sha512-g5mR0zEf/teWbaJrm/6Nesdsrr+oyBTJ4w8FCq9n9OaySTa7tvqYM0zWaPhBxEBn18cLgIKI4FKSn7RpHxvLdQ==", + "node_modules/eslint-config-cheminfo-typescript/node_modules/typescript-eslint/node_modules/@typescript-eslint/utils": { + "version": "8.38.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.38.0.tgz", + "integrity": "sha512-hHcMA86Hgt+ijJlrD8fX0j1j8w4C92zue/8LOPAFioIno+W0+L7KqE8QZKCcPGc/92Vs9x36w/4MPTJhqXdyvg==", "dev": true, "license": "MIT", "dependencies": { - "eslint-config-cheminfo": "^15.0.0", - "typescript-eslint": "^8.36.0" + "@eslint-community/eslint-utils": "^4.7.0", + "@typescript-eslint/scope-manager": "8.38.0", + "@typescript-eslint/types": "8.38.0", + "@typescript-eslint/typescript-estree": "8.38.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^9.30.1", - "typescript": ">=5.7.3" + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" } }, "node_modules/eslint-config-cheminfo/node_modules/globals": { @@ -6794,9 +6955,9 @@ } }, "node_modules/eslint-plugin-react-you-might-not-need-an-effect": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-you-might-not-need-an-effect/-/eslint-plugin-react-you-might-not-need-an-effect-0.3.2.tgz", - "integrity": "sha512-nLMHtcXOo892r4Xyp2eF5GTp8Prn3rWDgjkdssOqT1TwWkhz0LviAbJBLMG1KbAblM+KreqWA7pp5V2TowHCNQ==", + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-you-might-not-need-an-effect/-/eslint-plugin-react-you-might-not-need-an-effect-0.4.1.tgz", + "integrity": "sha512-N+pzY6OYmzi5cupucUruNBNgpoM0QlQD6Ca3Fsv/roGQ7YIvxuk4nWRUY3ophddN8HEGXLCGz2EjbC7WVFbjBQ==", "dev": true, "license": "MIT", "dependencies": { @@ -7948,9 +8109,9 @@ } }, "node_modules/hookified": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/hookified/-/hookified-1.10.0.tgz", - "integrity": "sha512-dJw0492Iddsj56U1JsSTm9E/0B/29a1AuoSLRAte8vQg/kaTGF3IgjEWT8c8yG4cC10+HisE1x5QAwR0Xwc+DA==", + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/hookified/-/hookified-1.11.0.tgz", + "integrity": "sha512-aDdIN3GyU5I6wextPplYdfmWCo+aLmjjVbntmX6HLD5RCi/xKsivYEBhnRD+d9224zFf008ZpLMPlWF0ZodYZw==", "dev": true, "license": "MIT" }, @@ -9169,13 +9330,13 @@ } }, "node_modules/mf-parser": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/mf-parser/-/mf-parser-3.4.2.tgz", - "integrity": "sha512-MyvpE/2Fx9w4W2FQnlEC63UnWqMbjMNaOQAJM3Pi5w/L3tAuC5ynFsuSI4ss7EFBDVbUiuUumUNus2seMCmZFw==", + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/mf-parser/-/mf-parser-3.5.0.tgz", + "integrity": "sha512-Xb5aVe6Kt7uhBqIojh8cPpIXzPwwJgRkpF8lJK+l8yjPieDAYnUkn/HnqQ1ggffk2RGOsiD/KLfy+TB6LIPB2g==", "license": "MIT", "dependencies": { - "atom-sorter": "^2.2.0", - "chemical-elements": "^2.2.0", + "atom-sorter": "^2.2.1", + "chemical-elements": "^2.2.1", "chemical-groups": "^2.2.3" } }, @@ -10364,13 +10525,13 @@ } }, "node_modules/playwright": { - "version": "1.54.1", - "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.54.1.tgz", - "integrity": "sha512-peWpSwIBmSLi6aW2auvrUtf2DqY16YYcCMO8rTVx486jKmDTJg7UAhyrraP98GB8BoPURZP8+nxO7TSd4cPr5g==", + "version": "1.54.2", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.54.2.tgz", + "integrity": "sha512-Hu/BMoA1NAdRUuulyvQC0pEqZ4vQbGfn8f7wPXcnqQmM+zct9UliKxsIkLNmz/ku7LElUNqmaiv1TG/aL5ACsw==", "dev": true, "license": "Apache-2.0", "dependencies": { - "playwright-core": "1.54.1" + "playwright-core": "1.54.2" }, "bin": { "playwright": "cli.js" @@ -10383,9 +10544,9 @@ } }, "node_modules/playwright-core": { - "version": "1.54.1", - "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.54.1.tgz", - "integrity": "sha512-Nbjs2zjj0htNhzgiy5wu+3w09YetDx5pkrpI/kZotDlDUaYk0HVA5xrBVPdow4SAUIlhgKcJeJg4GRKW6xHusA==", + "version": "1.54.2", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.54.2.tgz", + "integrity": "sha512-n5r4HFbMmWsB4twG7tJLDN9gmBUeSPcsBZiWSE4DnYz9mJMAFqr2ID7+eGC9kpEnxExJ1epttwR59LEWCk8mtA==", "dev": true, "license": "Apache-2.0", "bin": { @@ -10839,9 +11000,9 @@ } }, "node_modules/react-hook-form": { - "version": "7.61.1", - "resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.61.1.tgz", - "integrity": "sha512-2vbXUFDYgqEgM2RcXcAT2PwDW/80QARi+PKmHy5q2KhuKvOlG8iIYgf7eIlIANR5trW9fJbP4r5aub3a4egsew==", + "version": "7.62.0", + "resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.62.0.tgz", + "integrity": "sha512-7KWFejc98xqG/F4bAxpL41NB3o1nnvQO1RWZT3TqRZYL8RryQETGfEdVnJN2fy1crCiBLLjkRBVK05j24FxJGA==", "license": "MIT", "engines": { "node": ">=18.0.0" @@ -10982,9 +11143,9 @@ "license": "0BSD" }, "node_modules/react-router": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-7.7.0.tgz", - "integrity": "sha512-3FUYSwlvB/5wRJVTL/aavqHmfUKe0+Xm9MllkYgGo9eDwNdkvwlJGjpPxono1kCycLt6AnDTgjmXvK3/B4QGuw==", + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-7.7.1.tgz", + "integrity": "sha512-jVKHXoWRIsD/qS6lvGveckwb862EekvapdHJN/cGmzw40KnJH5gg53ujOJ4qX6EKIK9LSBfFed/xiQ5yeXNrUA==", "dev": true, "license": "MIT", "dependencies": { @@ -11005,13 +11166,13 @@ } }, "node_modules/react-router-dom": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-7.7.0.tgz", - "integrity": "sha512-wwGS19VkNBkneVh9/YD0pK3IsjWxQUVMDD6drlG7eJpo1rXBtctBqDyBm/k+oKHRAm1x9XWT3JFC82QI9YOXXA==", + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-7.7.1.tgz", + "integrity": "sha512-bavdk2BA5r3MYalGKZ01u8PGuDBloQmzpBZVhDLrOOv1N943Wq6dcM9GhB3x8b7AbqPMEezauv4PeGkAJfy7FQ==", "dev": true, "license": "MIT", "dependencies": { - "react-router": "7.7.0" + "react-router": "7.7.1" }, "engines": { "node": ">=20.0.0" @@ -12191,9 +12352,9 @@ "license": "MIT" }, "node_modules/stylelint": { - "version": "16.22.0", - "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-16.22.0.tgz", - "integrity": "sha512-SVEMTdjKNV4ollUrIY9ordZ36zHv2/PHzPjfPMau370MlL2VYXeLgSNMMiEbLGRO8RmD2R8/BVUeF2DfnfkC0w==", + "version": "16.23.0", + "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-16.23.0.tgz", + "integrity": "sha512-69T5aS2LUY306ekt1Q1oaSPwz/jaG9HjyMix3UMrai1iEbuOafBe2Dh8xlyczrxFAy89qcKyZWWtc42XLx3Bbw==", "dev": true, "funding": [ { @@ -12220,7 +12381,7 @@ "debug": "^4.4.1", "fast-glob": "^3.3.3", "fastest-levenshtein": "^1.0.16", - "file-entry-cache": "^10.1.1", + "file-entry-cache": "^10.1.3", "global-modules": "^2.0.0", "globby": "^11.1.0", "globjoin": "^0.1.4", @@ -12364,23 +12525,23 @@ } }, "node_modules/stylelint/node_modules/file-entry-cache": { - "version": "10.1.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-10.1.1.tgz", - "integrity": "sha512-zcmsHjg2B2zjuBgjdnB+9q0+cWcgWfykIcsDkWDB4GTPtl1eXUA+gTI6sO0u01AqK3cliHryTU55/b2Ow1hfZg==", + "version": "10.1.3", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-10.1.3.tgz", + "integrity": "sha512-D+w75Ub8T55yor7fPgN06rkCAUbAYw2vpxJmmjv/GDAcvCnv9g7IvHhIZoxzRZThrXPFI2maeY24pPbtyYU7Lg==", "dev": true, "license": "MIT", "dependencies": { - "flat-cache": "^6.1.10" + "flat-cache": "^6.1.12" } }, "node_modules/stylelint/node_modules/flat-cache": { - "version": "6.1.11", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-6.1.11.tgz", - "integrity": "sha512-zfOAns94mp7bHG/vCn9Ru2eDCmIxVQ5dELUHKjHfDEOJmHNzE+uGa6208kfkgmtym4a0FFjEuFksCXFacbVhSg==", + "version": "6.1.12", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-6.1.12.tgz", + "integrity": "sha512-U+HqqpZPPXP5d24bWuRzjGqVqUcw64k4nZAbruniDwdRg0H10tvN7H6ku1tjhA4rg5B9GS3siEvwO2qjJJ6f8Q==", "dev": true, "license": "MIT", "dependencies": { - "cacheable": "^1.10.1", + "cacheable": "^1.10.3", "flatted": "^3.3.3", "hookified": "^1.10.0" } @@ -12912,9 +13073,9 @@ } }, "node_modules/typescript": { - "version": "5.8.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz", - "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==", + "version": "5.9.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.2.tgz", + "integrity": "sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==", "dev": true, "license": "Apache-2.0", "bin": { @@ -12925,30 +13086,6 @@ "node": ">=14.17" } }, - "node_modules/typescript-eslint": { - "version": "8.38.0", - "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.38.0.tgz", - "integrity": "sha512-FsZlrYK6bPDGoLeZRuvx2v6qrM03I0U0SnfCLPs/XCCPCFD80xU9Pg09H/K+XFa68uJuZo7l/Xhs+eDRg2l3hg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/eslint-plugin": "8.38.0", - "@typescript-eslint/parser": "8.38.0", - "@typescript-eslint/typescript-estree": "8.38.0", - "@typescript-eslint/utils": "8.38.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <5.9.0" - } - }, "node_modules/typescript-event-target": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/typescript-event-target/-/typescript-event-target-1.1.1.tgz", @@ -13600,9 +13737,9 @@ } }, "node_modules/yup": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/yup/-/yup-1.6.1.tgz", - "integrity": "sha512-JED8pB50qbA4FOkDol0bYF/p60qSEDQqBD0/qeIrUCG1KbPBIQ776fCUNb9ldbPcSTxA69g/47XTo4TqWiuXOA==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/yup/-/yup-1.7.0.tgz", + "integrity": "sha512-VJce62dBd+JQvoc+fCVq+KZfPHr+hXaxCcVgotfwWvlR0Ja3ffYKaJBT8rptPOSKOGJDCUnW2C2JWpud7aRP6Q==", "license": "MIT", "dependencies": { "property-expr": "^2.0.5", diff --git a/package.json b/package.json index b93a903587..76523c6490 100644 --- a/package.json +++ b/package.json @@ -62,11 +62,11 @@ "@blueprintjs/select": "^6.0.1", "@emotion/react": "^11.14.0", "@emotion/styled": "^11.14.1", - "@hookform/resolvers": "^5.1.1", + "@hookform/resolvers": "^5.2.1", "@zakodium/nmr-types": "^0.1.0", "@zakodium/nmrium-core": "^0.1.5", "@zakodium/nmrium-core-plugins": "^0.1.8", - "@zip.js/zip.js": "^2.7.68", + "@zip.js/zip.js": "^2.7.71", "cheminfo-font": "^1.13.1", "cheminfo-types": "^1.8.1", "clipboard-polyfill": "^4.1.1", @@ -78,7 +78,7 @@ "file-saver": "^2.0.5", "immer": "^10.1.1", "lodash": "^4.17.21", - "mf-parser": "^3.4.2", + "mf-parser": "^3.5.0", "ml-array-mean": "^1.1.6", "ml-array-median": "^1.1.6", "ml-conrec": "^5.0.3", @@ -95,7 +95,7 @@ "react-d3-utils": "^3.1.1", "react-dropzone": "^14.3.8", "react-error-boundary": "^6.0.0", - "react-hook-form": "^7.61.1", + "react-hook-form": "^7.62.0", "react-icons": "^5.5.0", "react-inspector": "^6.0.2", "react-mf": "^3.1.0", @@ -106,10 +106,10 @@ "react-science": "^19.1.0", "react-table": "^7.8.0", "smart-array-filter": "^4.1.1", - "yup": "^1.6.1" + "yup": "^1.7.0" }, "devDependencies": { - "@playwright/test": "^1.54.1", + "@playwright/test": "^1.54.2", "@simbathesailor/use-what-changed": "^2.0.0", "@types/d3": "^7.4.3", "@types/dlv": "^1.1.5", @@ -122,10 +122,10 @@ "@vitejs/plugin-react": "^4.7.0", "@vitest/coverage-v8": "^3.2.4", "@zakodium/tsconfig": "^1.0.2", - "cross-env": "^7.0.3", + "cross-env": "^10.0.0", "cspell": "^9.2.0", - "eslint": "^9.31.0", - "eslint-config-cheminfo-react": "^17.0.0", + "eslint": "^9.32.0", + "eslint-config-cheminfo-react": "^17.0.1", "eslint-config-cheminfo-typescript": "^19.0.0", "knip": "^5.62.0", "modern-normalize": "^3.0.1", @@ -134,17 +134,17 @@ "rc-menu": "^9.16.1", "react": "^18.3.1", "react-dom": "^18.3.1", - "react-router-dom": "^7.7.0", + "react-router-dom": "^7.7.1", "rimraf": "^6.0.1", "rollup-plugin-analyzer": "^4.0.0", "serve": "^14.2.4", - "stylelint": "^16.22.0", + "stylelint": "^16.23.0", "stylelint-config-standard": "^38.0.0", - "typescript": "^5.8.3", + "typescript": "^5.9.2", "vite": "^7.0.6", "vitest": "^3.2.4" }, "volta": { "node": "24.4.1" } -} +} \ No newline at end of file diff --git a/src/component/1d-2d/components/FloatMoleculeStructures/DraggableStructure.tsx b/src/component/1d-2d/components/FloatMoleculeStructures/DraggableStructure.tsx index b0415d0bae..984979323b 100644 --- a/src/component/1d-2d/components/FloatMoleculeStructures/DraggableStructure.tsx +++ b/src/component/1d-2d/components/FloatMoleculeStructures/DraggableStructure.tsx @@ -36,13 +36,13 @@ const ReactRnd = styled(Rnd)` border: 1px solid transparent; .content { - width: 100%; height: 100%; + width: 100%; } &:hover { - border: 1px solid #ebecf1; background-color: white; + border: 1px solid #ebecf1; } `; diff --git a/src/component/1d-2d/tools/BrushXY.tsx b/src/component/1d-2d/tools/BrushXY.tsx index 8aeb7e1540..b91727ab5d 100644 --- a/src/component/1d-2d/tools/BrushXY.tsx +++ b/src/component/1d-2d/tools/BrushXY.tsx @@ -21,10 +21,10 @@ const LabelWrapper = styled.span` position: absolute; top: 0; left: 0; - transform-origin: center; + color: black; font-size: 12px; + transform-origin: center; will-change: transform; - color: black; `; const baseStyles: CSSProperties = { diff --git a/src/component/1d/FloatPublicationString.tsx b/src/component/1d/FloatPublicationString.tsx index e43a274574..6c1a8f95d8 100644 --- a/src/component/1d/FloatPublicationString.tsx +++ b/src/component/1d/FloatPublicationString.tsx @@ -22,8 +22,8 @@ const ReactRnd = styled(Rnd)` border: 1px solid transparent; &:hover { - border: 1px solid #ebecf1; background-color: white; + border: 1px solid #ebecf1; button { visibility: visible; diff --git a/src/component/1d/FloatingRanges.tsx b/src/component/1d/FloatingRanges.tsx index 0194672ee8..071d32e740 100644 --- a/src/component/1d/FloatingRanges.tsx +++ b/src/component/1d/FloatingRanges.tsx @@ -27,8 +27,8 @@ const ReactRnd = styled(Rnd)` border: 1px solid transparent; &:hover { - border: 1px solid #ebecf1; background-color: white; + border: 1px solid #ebecf1; button { visibility: visible; diff --git a/src/component/1d/FooterBanner.tsx b/src/component/1d/FooterBanner.tsx index 760f64c726..0ca5df54e9 100644 --- a/src/component/1d/FooterBanner.tsx +++ b/src/component/1d/FooterBanner.tsx @@ -26,9 +26,9 @@ const InfoBlock = styled(InfoItem)` const Separator = styled.div` border-left: 2px solid gray; + height: 10px; margin: 0 10px; width: 1px; - height: 10px; `; interface FooterBannerInnerProps { diff --git a/src/component/1d/PredictionErrorsNotations.tsx b/src/component/1d/PredictionErrorsNotations.tsx index 73b951b8a9..7929ac0d17 100644 --- a/src/component/1d/PredictionErrorsNotations.tsx +++ b/src/component/1d/PredictionErrorsNotations.tsx @@ -31,9 +31,9 @@ const InfoHeader = styled.div` `; const BaseText = styled.span` - text-align: center; flex: 1; font-size: 12px; + text-align: center; `; const Text = styled(BaseText)` diff --git a/src/component/1d/inset/DraggableInset.tsx b/src/component/1d/inset/DraggableInset.tsx index 2314d0e149..4793eda5e2 100644 --- a/src/component/1d/inset/DraggableInset.tsx +++ b/src/component/1d/inset/DraggableInset.tsx @@ -41,8 +41,8 @@ const ReactRnd = styled(Rnd)` border: 1px solid transparent; &:hover { - border: 1px solid #ebecf1; background-color: white; + border: 1px solid #ebecf1; button { visibility: visible; diff --git a/src/component/1d/multiAnalysis/AnalysisRange.tsx b/src/component/1d/multiAnalysis/AnalysisRange.tsx index 7db643df9d..56969138f2 100644 --- a/src/component/1d/multiAnalysis/AnalysisRange.tsx +++ b/src/component/1d/multiAnalysis/AnalysisRange.tsx @@ -8,8 +8,8 @@ import { useHighlight } from '../../highlight/index.js'; import { useResizerStatus } from '../../hooks/useResizerStatus.js'; const Rect = styled.rect<{ isActive: boolean }>` - height: ${({ isActive }) => (isActive ? '100%' : '6px')}; fill: ${({ isActive }) => (isActive ? '#ff6f0057' : 'green')}; + height: ${({ isActive }) => (isActive ? '100%' : '6px')}; `; interface AnalysisRangeProps { diff --git a/src/component/2d/SignalDeltaLine.tsx b/src/component/2d/SignalDeltaLine.tsx index 278bc436f6..f19bad7a6f 100644 --- a/src/component/2d/SignalDeltaLine.tsx +++ b/src/component/2d/SignalDeltaLine.tsx @@ -5,9 +5,9 @@ import { useChartData } from '../context/ChartContext.js'; import { useScale2DX, useScale2DY } from './utilities/scale.js'; const SignalLine = styled.line` + opacity: 0.5; stroke: green; stroke-width: 2; - opacity: 0.5; `; interface SignalDeltaLineProps { diff --git a/src/component/elements/ActionsButtonsPopover.tsx b/src/component/elements/ActionsButtonsPopover.tsx index b6c33f20e0..072ba7c0b9 100644 --- a/src/component/elements/ActionsButtonsPopover.tsx +++ b/src/component/elements/ActionsButtonsPopover.tsx @@ -14,24 +14,24 @@ const Container = styled.div>` button, a[role='button'] { border-radius: 50%; - min-width: 16px; - min-height: 16px; font-size: 10px; + min-height: 16px; + min-width: 16px; padding: 5px; } `; const HorizontalSeparator = styled.div` border-left: 1px solid #dedede; + height: 10px; margin: auto 5px; width: 1px; - height: 10px; `; const VerticalSeparator = styled.div` border-top: 1px solid #dedede; + height: 1px; margin: 5px auto; width: 10px; - height: 1px; `; interface PopoverButtonProps extends ButtonProps { diff --git a/src/component/elements/Alert.tsx b/src/component/elements/Alert.tsx index 78b622c518..1a316e142f 100644 --- a/src/component/elements/Alert.tsx +++ b/src/component/elements/Alert.tsx @@ -5,10 +5,10 @@ import type { ReactNode } from 'react'; import { createContext, useContext, useMemo, useState } from 'react'; const Message = styled.p` - font-weight: bold; + color: #af0000; font-size: 14px; + font-weight: bold; text-align: center; - color: #af0000; `; const Footer = styled(DialogFooter)` diff --git a/src/component/elements/Button.tsx b/src/component/elements/Button.tsx index f08d5245c4..baf9641f8e 100644 --- a/src/component/elements/Button.tsx +++ b/src/component/elements/Button.tsx @@ -119,32 +119,32 @@ function getFillStyle(props: ButtonStyle) { switch (fill) { case 'solid': { return css` - border-color: transparent; background-color: ${backgroundColor.base}; + border-color: transparent; color: ${color.hover}; `; } case 'outline': { return css` - border-style: solid; - border-color: ${backgroundColor.base}; background-color: transparent; + border-color: ${backgroundColor.base}; + border-style: solid; color: ${color.base}; `; } case 'clear': { return css` - border-color: transparent; background-color: transparent; + border-color: transparent; color: ${color.base}; `; } default: return css` background-color: ${backgroundColor.base}; - color: ${color.base}; border-color: ${borderColor}; + color: ${color.base}; `; } } @@ -160,10 +160,10 @@ const styles: Style = { } = props; const basic = css` + align-items: center; + border-width: 1px; display: flex; flex-direction: row; - border-width: 1px; - align-items: center; &:hover + .content { display: flex; diff --git a/src/component/elements/DraggableDialog.tsx b/src/component/elements/DraggableDialog.tsx index c8b55a2d74..61d9f76f34 100644 --- a/src/component/elements/DraggableDialog.tsx +++ b/src/component/elements/DraggableDialog.tsx @@ -19,12 +19,12 @@ import type { ReactNode, RefObject } from 'react'; import { useLayoutEffect, useRef } from 'react'; const Container = styled.div` - min-height: 100%; - pointer-events: none; - user-select: none; position: absolute; top: 0; left: 0; + min-height: 100%; + pointer-events: none; + user-select: none; width: 100%; `; diff --git a/src/component/elements/EditableColumn.tsx b/src/component/elements/EditableColumn.tsx index 86349871a5..7fba0dad17 100644 --- a/src/component/elements/EditableColumn.tsx +++ b/src/component/elements/EditableColumn.tsx @@ -18,9 +18,9 @@ interface OverflowProps { const Text = styled.span` display: table-cell; + height: 100%; vertical-align: middle; width: 100%; - height: 100%; ${({ textOverflowEllipses }) => textOverflowEllipses && ` @@ -31,9 +31,9 @@ const Text = styled.span` `; const Container = styled.span` display: table; - width: 100%; - min-height: 22px; height: 100%; + min-height: 22px; + width: 100%; ${({ textOverflowEllipses }) => textOverflowEllipses && ` diff --git a/src/component/elements/EmptyText.tsx b/src/component/elements/EmptyText.tsx index 61036fda65..375c4c96a7 100644 --- a/src/component/elements/EmptyText.tsx +++ b/src/component/elements/EmptyText.tsx @@ -3,15 +3,15 @@ import type { CSSProperties } from 'react'; import { FaRegEyeSlash } from 'react-icons/fa'; const EmptyContainer = styled.div` + color: #6a6a6a; display: flex; justify-content: center; - color: #6a6a6a; padding: 1.5rem 0; `; const Icon = styled(FaRegEyeSlash)` - margin: 0 10px; font-size: 1.1rem; + margin: 0 10px; `; const Text = styled.span` font-size: 0.8rem; diff --git a/src/component/elements/Footer.tsx b/src/component/elements/Footer.tsx index b2a147ae71..a7da4540bd 100644 --- a/src/component/elements/Footer.tsx +++ b/src/component/elements/Footer.tsx @@ -2,17 +2,17 @@ import styled from '@emotion/styled'; import type { CSSProperties, ReactNode } from 'react'; const FooterContainer = styled.div` - display: flex; + position: absolute; + bottom: 0; align-items: center; - user-select: none; background-color: #f7f7f7; + color: #8d0018; + container-type: inline-size; + display: flex; height: 30px; padding: 6px; - color: #8d0018; - position: absolute; + user-select: none; width: 100%; - bottom: 0; - container-type: inline-size; `; interface InfoContainerProps { @@ -25,8 +25,8 @@ interface InfoContainerProps { } const InfoContainer = styled.div` - margin: 0 10px; display: ${({ display = 'inline-block' }) => display}; + margin: 0 10px; @container (max-width:${({ hideThreshold = 600 }) => hideThreshold}px) { display: ${({ autoHide = false, display = 'inline-block' }) => @@ -64,13 +64,13 @@ const Span = styled.span` `; InfoItem.Label = styled(Span)` - font-size: 12px; color: #4d4d4d; + font-size: 12px; `; InfoItem.Value = styled(Span)` - font-size: 14px; display: inline-block; + font-size: 14px; `; InfoItem.Unit = styled(Span)` diff --git a/src/component/elements/MoleculeSelection.tsx b/src/component/elements/MoleculeSelection.tsx index d9ad0a1abf..488bd6b01f 100644 --- a/src/component/elements/MoleculeSelection.tsx +++ b/src/component/elements/MoleculeSelection.tsx @@ -8,55 +8,55 @@ import type { StateMoleculeExtended } from '../../data/molecules/Molecule.js'; import { NextPrev } from './NextPrev.js'; const BarContainer = styled.div` + border-bottom: 0.55px solid rgb(240 240 240); + border-top: 0.55px solid rgb(240 240 240); display: flex; flex-direction: row; - border-top: 0.55px solid rgb(240 240 240); - border-bottom: 0.55px solid rgb(240 240 240); padding: 0 5px; p { + line-height: 22px; margin: 0; + padding: 0 10px; text-align: right; width: 100%; - line-height: 22px; - padding: 0 10px; } `; const MoleculeContainer = styled.div` - width: 100%; position: relative; + width: 100%; button { - flex: 2; - padding: 5px; + background-color: gray; border: 1px solid gray; border-radius: 5px; + color: white; + display: block; + flex: 2; height: 36px; margin: 0 auto; margin-top: 15px; - display: block; + padding: 5px; width: 20%; - color: white; - background-color: gray; } `; const SliderContent = styled.div` - height: 180px; - width: 100%; - padding: 0; - display: flex; - justify-content: center; align-items: center; + display: flex; flex-direction: column; + height: 180px; + justify-content: center; + padding: 0; + width: 100%; p { - width: 100%; - margin: 0 auto; - display: block; position: relative; + display: block; + margin: 0 auto; text-align: center; + width: 100%; } svg polygon { diff --git a/src/component/elements/NextPrev.tsx b/src/component/elements/NextPrev.tsx index 8f00df244b..fa68c943a5 100644 --- a/src/component/elements/NextPrev.tsx +++ b/src/component/elements/NextPrev.tsx @@ -15,22 +15,22 @@ interface ArrowProps { const ArrowButton = styled.div<{ direction: Direction; }>` + align-items: center; + background-color: #f7f7f7; + border: none; + border-radius: 50%; + cursor: pointer; display: inline-flex; height: 40px; - width: 40px; justify-content: center; - border-radius: 50%; - cursor: pointer; - align-items: center; - border: none; - transition: transform ease-in 0.1s; - background-color: #f7f7f7; pointer-events: auto; + transition: transform ease-in 0.1s; + width: 40px; &:hover { - transform: scale(1.1); background-color: #607d8b !important; color: white; + transform: scale(1.1); } img { @@ -56,27 +56,27 @@ function Arrow({ direction, onClick, style = {} }: ArrowProps) { const Container = styled.div` position: relative; + display: block; height: 100%; - width: 100%; margin: 0 auto; overflow: hidden; - display: block; + width: 100%; `; const TransformController = styled.div<{ translation: number; slidersWidth: number; }>( - ({ translation, slidersWidth }) => `transform: translateX(-${translation}px); + ({ translation, slidersWidth }) => ` + display: flex; + height: 100%;transform: translateX(-${translation}px); transition: transform ease-out ${transition}s; - height: 100%; width: ${slidersWidth}px; - display: flex; `, ); const Content = styled.div<{ width: number }>` - width: ${(props) => props.width}px; flex: 1; + width: ${(props) => props.width}px; `; const transition = 0.45; diff --git a/src/component/elements/ReactTable/BaseReactTable.tsx b/src/component/elements/ReactTable/BaseReactTable.tsx index 98a7bd99e1..ec018cbd50 100644 --- a/src/component/elements/ReactTable/BaseReactTable.tsx +++ b/src/component/elements/ReactTable/BaseReactTable.tsx @@ -1,11 +1,11 @@ import styled from '@emotion/styled'; export const BaseReactTable = styled.table` - border-spacing: 0; border: 1px solid #dedede; - width: 100%; - max-height: 100%; + border-spacing: 0; font-size: 12px; + max-height: 100%; + width: 100%; .react-contextmenu-wrapper { display: contents; @@ -13,10 +13,10 @@ export const BaseReactTable = styled.table` th, td { - margin: 0; - padding: 0.15rem 0.4rem; border-bottom: 1px solid #dedede; border-right: 1px solid #dedede; + margin: 0; + padding: 0.15rem 0.4rem; } tr { @@ -29,8 +29,8 @@ export const BaseReactTable = styled.table` th { position: sticky; + top: 0; background-color: white; z-index: 0; - top: 0; } `; diff --git a/src/component/elements/ReadOnly.tsx b/src/component/elements/ReadOnly.tsx index a1dc378969..e6de712f0a 100644 --- a/src/component/elements/ReadOnly.tsx +++ b/src/component/elements/ReadOnly.tsx @@ -17,25 +17,25 @@ const fadeIn = keyframes` const Overlay = styled.div` position: absolute; - left: 0; top: 0; - width: 100%; - height: 100%; - display: flex; + left: 0; align-items: center; - justify-content: center; cursor: not-allowed; + display: flex; + height: 100%; + justify-content: center; + width: 100%; `; const MessageContainer = styled.div<{ show: boolean }>` + align-items: center; + animation: ${fadeIn} 0.3s ease; background-color: white; - padding: 16px; border-radius: 5px; - align-items: center; box-shadow: 0 2px 10px rgb(0 0 0 / 10%); display: ${({ show }) => (show ? 'flex' : 'none')}; - animation: ${fadeIn} 0.3s ease; gap: 8px; + padding: 16px; `; interface ReadOnlyProps diff --git a/src/component/elements/Sections.tsx b/src/component/elements/Sections.tsx index d502d42a95..ba9c763bac 100644 --- a/src/component/elements/Sections.tsx +++ b/src/component/elements/Sections.tsx @@ -39,25 +39,25 @@ interface DropIndicatorProps { const DropIndicator = styled.div` position: absolute; - z-index: 3; + right: 0; + left: 0; background-color: ${Colors.BLUE3}; height: 2px; - left: 0; - right: 0; pointer-events: none; + z-index: 3; ${(props) => props.edge === 'top' && 'top: -1px;'} ${(props) => props.edge === 'bottom' && 'bottom: -1px;'} `; const Preview = styled.div` - padding-block: 4px; - padding-inline: 8px; - border-radius: 4px; background-color: #f4f5f7; + border-radius: 4px; max-width: 360px; - white-space: nowrap; overflow: hidden; + padding-block: 4px; + padding-inline: 8px; text-overflow: ellipsis; + white-space: nowrap; `; type DraggableState = @@ -101,12 +101,12 @@ const Container = styled.div<{ matchContentHeight: boolean; }>( ({ isOverflow, matchContentHeight }) => ` - width: 100%; - height: ${matchContentHeight ? 'auto' : '100%'}; + border: 1px solid #ddd; display: flex; flex-direction: column; + height: ${matchContentHeight ? 'auto' : '100%'}; overflow: ${isOverflow ? 'auto' : 'hidden'}; - border: 1px solid #ddd; + width: 100%; `, ); @@ -115,9 +115,9 @@ const SectionWrapper = styled.div< >( ({ isOpen, isOverflow, matchContentHeight }) => ` display: flex; - flex-direction: column; flex:none; flex: ${isOpen && !matchContentHeight ? (isOverflow ? '1' : isOverflow ? '1' : '1 1 1px') : 'none'}; + flex-direction: column; `, ); @@ -129,24 +129,24 @@ const Active = styled(Tag, { ({ isOpen }) => ` background-color: ${isOpen ? '#4CAF50' : '#ccc'}; color: ${isOpen ? 'white' : 'black'}; -margin-right: 10px; flex-shrink: 0; +margin-right: 10px; `, ); const TitleContainer = styled.div` - display: flex; align-items: center; - min-width: 0; + display: flex; flex-grow: 1; + min-width: 0; `; const Title = styled.div` - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; flex-grow: 1; font-weight: 500; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; `; const OpenIcon = styled(Icon, { @@ -154,9 +154,9 @@ const OpenIcon = styled(Icon, { return propName !== 'isOpen'; }, })` + margin-left: 10px; transform: ${({ isOpen }) => (isOpen ? 'rotate(90deg)' : 'rotate(0deg)')}; transition: transform 0.3s ease; - margin-left: 10px; `; const ContentWrapper = styled.div( @@ -164,31 +164,31 @@ const ContentWrapper = styled.div( background-color: white; display: ${isOpen ? 'flex' : 'none'}; flex: ${isOpen ? (isOverflow ? '1' : '1 1 1px') : 'none'}; - max-height: 100%; flex-direction:column; + max-height: 100%; `, ); const Content = styled.div` - height: 100%; - width: 100%; - overflow: auto; + position: relative; display: flex; flex-direction: column; + height: 100%; + overflow: auto; padding: 10px; - position: relative; + width: 100%; z-index: 0; `; const ElementsContainer = styled.div` - display: flex; align-items: center; + display: flex; `; const Header = styled.div` - display: flex; align-items: center; + background-color: #f5f5f5; + display: flex; justify-content: space-between; padding: 5px 10px; - background-color: #f5f5f5; &:hover { background-color: #e0e0e0; @@ -200,10 +200,10 @@ const Header = styled.div` `; const InnerHeader = styled.div` - padding: 5px; background-color: white; border-bottom: 1px solid #ddd; border-top: 1px solid #ddd; + padding: 5px; `; interface BaseSectionProps { diff --git a/src/component/elements/Select.tsx b/src/component/elements/Select.tsx index 7ede978b62..689ed947c1 100644 --- a/src/component/elements/Select.tsx +++ b/src/component/elements/Select.tsx @@ -5,18 +5,18 @@ import { forwardRef, useCallback } from 'react'; const arrowDownIcon = `url('data:image/svg+xml;utf8,')`; const BaseSelect = styled.select<{ width: number | string | undefined }>` - padding: 0 5px; - border: 0.55px solid #cacaca; - font-size: 14px; - width: ${({ width }) => (width ? Number(width) - 5 : 115)}px; - margin: 0; - height: 100%; - background: ${arrowDownIcon} no-repeat right white; + align-self: center; appearance: none; + background: ${arrowDownIcon} no-repeat right white; background-position-x: calc(100% - 5px); background-size: 15px 15px; + border: 0.55px solid #cacaca; border-radius: 5px; - align-self: center; + font-size: 14px; + height: 100%; + margin: 0; + padding: 0 5px; + width: ${({ width }) => (width ? Number(width) - 5 : 115)}px; &:focus, input:focus { diff --git a/src/component/elements/StyledDialogBody.tsx b/src/component/elements/StyledDialogBody.tsx index eab56e281a..6e1daec781 100644 --- a/src/component/elements/StyledDialogBody.tsx +++ b/src/component/elements/StyledDialogBody.tsx @@ -5,7 +5,7 @@ import type { CSSProperties } from 'react'; export const StyledDialogBody = styled(DialogBody)< Pick >` - padding: ${({ padding = '15px' }) => padding}; background-color: ${({ backgroundColor = 'white' }) => backgroundColor}; margin: 0; + padding: ${({ padding = '15px' }) => padding}; `; diff --git a/src/component/elements/Tab/DeleteButton.tsx b/src/component/elements/Tab/DeleteButton.tsx index b701447a23..fffe4e2696 100644 --- a/src/component/elements/Tab/DeleteButton.tsx +++ b/src/component/elements/Tab/DeleteButton.tsx @@ -3,15 +3,15 @@ import type { CSSProperties } from 'react'; import { FaTimes } from 'react-icons/fa'; const BaseButton = styled.button` - border-radius: 50%; - width: 16px; - height: 16px; + align-items: center; background-color: transparent; border: none; - padding: 0; + border-radius: 50%; display: flex; - align-items: center; + height: 16px; justify-content: center; + padding: 0; + width: 16px; .icon { color: #252525; diff --git a/src/component/elements/Tab/Tabs.tsx b/src/component/elements/Tab/Tabs.tsx index 4104ae5322..1124268400 100644 --- a/src/component/elements/Tab/Tabs.tsx +++ b/src/component/elements/Tab/Tabs.tsx @@ -7,16 +7,16 @@ import type { TabEvents, TabProps } from './Tab.js'; import Tab from './Tab.js'; const topStyles = css` - height: 100%; - width: 100%; display: flex; flex-direction: column; + height: 100%; + width: 100%; .tab-list { border-bottom: 1px solid #ccc; - padding-left: 0; - margin: 0; display: inline-flex; + margin: 0; + padding-left: 0; } .tab-list li:first-of-type { @@ -52,8 +52,8 @@ const leftStyles = css` .tab-list { border-right: 1px solid #ccc; - padding-left: 0; margin: 0; + padding-left: 0; } .tab-list li:hover { diff --git a/src/component/elements/dropDownButton/DropDownList.tsx b/src/component/elements/dropDownButton/DropDownList.tsx index 8b21c629f8..c2ab2cb46a 100644 --- a/src/component/elements/dropDownButton/DropDownList.tsx +++ b/src/component/elements/dropDownButton/DropDownList.tsx @@ -8,14 +8,14 @@ import type { const Menu = styled.ul` list-style-type: none; - padding: 0; margin: 0; + padding: 0; `; const MenuItem = styled.li` + border-bottom: 0.55px solid #f9f9f9; + color: black; text-align: center; white-space: nowrap; - color: black; - border-bottom: 0.55px solid #f9f9f9; &:last-of-type { border-bottom: none; @@ -27,8 +27,8 @@ const MenuItem = styled.li` `; const Text = styled.span` - padding: 5px 20px; display: block; + padding: 5px 20px; `; interface InnerDropDownListProps diff --git a/src/component/header/Header.tsx b/src/component/header/Header.tsx index 77e326d7a9..0d62c6a1a0 100644 --- a/src/component/header/Header.tsx +++ b/src/component/header/Header.tsx @@ -252,8 +252,8 @@ export function Header() { } const PluginTopBarRight = styled.div` - display: flex; align-items: center; + display: flex; gap: 5px; margin-right: 5px; `; diff --git a/src/component/hooks/useSaveSettings.tsx b/src/component/hooks/useSaveSettings.tsx index 83c8e5545a..3cdbe2d45c 100644 --- a/src/component/hooks/useSaveSettings.tsx +++ b/src/component/hooks/useSaveSettings.tsx @@ -125,8 +125,8 @@ const DialogContent = styled(DialogBody)` `; const Title = styled.p` - padding: 0 30px; + font-size: 1em; font-weight: bold; + padding: 0 30px; text-align: left; - font-size: 1em; `; diff --git a/src/component/loader/DefaultSpinnerComponent.tsx b/src/component/loader/DefaultSpinnerComponent.tsx index 3056ba9e56..537d701d71 100644 --- a/src/component/loader/DefaultSpinnerComponent.tsx +++ b/src/component/loader/DefaultSpinnerComponent.tsx @@ -1,25 +1,25 @@ import styled from '@emotion/styled'; const Container = styled.div` - display: flex; + position: absolute; align-items: center; - justify-content: center; background-color: rgb(255 255 255 / 25%); - height: 100%; + display: flex; flex-direction: column; + height: 100%; + justify-content: center; user-select: none; - position: absolute; width: 100%; svg { - animation-name: spin-animation; - animation-iteration-count: infinite; - animation-fill-mode: forwards; animation-direction: inherit; - animation-timing-function: linear; animation-duration: 1s; - width: 100px; + animation-fill-mode: forwards; + animation-iteration-count: infinite; + animation-name: spin-animation; + animation-timing-function: linear; height: 100px; + width: 100px; } @keyframes spin-animation { diff --git a/src/component/loader/DropZone.tsx b/src/component/loader/DropZone.tsx index e1fbc5b4fe..002e004254 100644 --- a/src/component/loader/DropZone.tsx +++ b/src/component/loader/DropZone.tsx @@ -12,28 +12,28 @@ import { MetaImportationModal } from '../modal/metaImportation/MetaImportationMo import { useLoadFiles } from './useLoadFiles.js'; const DropContainer = styled.div` - height: 100%; - background-color: #b5b5b599; position: absolute; - display: flex; - justify-content: center; align-items: center; + background-color: #b5b5b599; + display: flex; flex-flow: column; + height: 100%; + justify-content: center; z-index: 8; svg { - stroke-width: 0; - font-size: 3rem !important; fill: white; + font-size: 3rem !important; + stroke-width: 0; } `; const DropText = styled.p` - color: white; background-color: rgb(104 104 104); - padding: 1.5%; border-radius: 30px; + color: white; margin: 0; + padding: 1.5%; `; const Container = styled.div` diff --git a/src/component/main/ErrorOverlay.tsx b/src/component/main/ErrorOverlay.tsx index 96a87c316a..f6d6878ccb 100644 --- a/src/component/main/ErrorOverlay.tsx +++ b/src/component/main/ErrorOverlay.tsx @@ -3,19 +3,19 @@ import type { FallbackProps } from 'react-error-boundary'; const WrongP = styled.p` background-color: white; - padding: 20px; border-radius: 10px; font-size: 30px; + padding: 20px; text-align: center; `; const Details = styled.details` - margin-top: 10px; - white-space: pre-wrap; background-color: white; - padding: 20px; border-radius: 10px; color: red; + margin-top: 10px; + padding: 20px; + white-space: pre-wrap; `; export default function ErrorOverlay(props: FallbackProps) { diff --git a/src/component/main/InnerNMRiumContents.tsx b/src/component/main/InnerNMRiumContents.tsx index 080c084a8f..09afa93b0f 100644 --- a/src/component/main/InnerNMRiumContents.tsx +++ b/src/component/main/InnerNMRiumContents.tsx @@ -26,9 +26,9 @@ import type { NMRiumProps, NMRiumRefAPI } from './index.js'; const NMRiumContainer = styled.div` background-color: white; - width: 100%; display: block; height: 100%; + width: 100%; div:focus { outline: none !important; @@ -62,8 +62,8 @@ const NMRiumContainer = styled.div` .actions-buttons-popover { background: transparent; - padding: 5px; box-shadow: none; + padding: 5px; } `; @@ -105,9 +105,9 @@ export function InnerNMRiumContents(props: InnerNMRiumContentsProps) { ` - width: 100%; + color: ${({ color }) => color}; padding: 20%; text-align: center; - color: ${({ color }) => color}; + width: 100%; `; export default function SelectMolecule< diff --git a/src/component/modal/setting/GeneralSettings.tsx b/src/component/modal/setting/GeneralSettings.tsx index 9049099ad3..1acc55ea6b 100644 --- a/src/component/modal/setting/GeneralSettings.tsx +++ b/src/component/modal/setting/GeneralSettings.tsx @@ -46,11 +46,11 @@ import ToolsTabContent from './settings-tabs/ToolsTabContent.js'; import { validation } from './settingsValidation.js'; export const Section = styled.div` + border-bottom: 0.55px solid #f9f9f9; + color: #2ca8ff; display: flex; font-size: 13px; - color: #2ca8ff; margin-bottom: 10px; - border-bottom: 0.55px solid #f9f9f9; padding: 6px 2px; `; @@ -62,10 +62,10 @@ const StyledTabs = styled(Tabs)` } div[role='tabpanel'] { - width: 100%; - padding: 0.8rem; - overflow: auto; max-height: 100%; + overflow: auto; + padding: 0.8rem; + width: 100%; } `; diff --git a/src/component/panels/Panels.tsx b/src/component/panels/Panels.tsx index 7799e3596c..a932e16c26 100644 --- a/src/component/panels/Panels.tsx +++ b/src/component/panels/Panels.tsx @@ -16,9 +16,9 @@ import { useTogglePanel } from './hooks/useTogglePanel.js'; import { InformationEditionModal } from './informationPanel/InformationEditionModal.js'; const Container = styled.div` - width: 100%; - height: 100%; flex: 1 1 0%; + height: 100%; + width: 100%; `; interface PanelStateContext { openSplitPane: () => void; diff --git a/src/component/panels/PanelsBar.tsx b/src/component/panels/PanelsBar.tsx index f456f03b19..b910d1edcc 100644 --- a/src/component/panels/PanelsBar.tsx +++ b/src/component/panels/PanelsBar.tsx @@ -13,12 +13,12 @@ import { useGetPanelOptions } from './hooks/useGetPanelOptions.js'; import { useTogglePanel } from './hooks/useTogglePanel.js'; const PanelsBarContainer = styled(ButtonGroup)` + background-color: ${Colors.WHITE}; + border-left: 1px solid ${Colors.LIGHT_GRAY4}; flex-wrap: nowrap; - height: 100%; gap: 4px; + height: 100%; padding: 4px; - border-left: 1px solid ${Colors.LIGHT_GRAY4}; - background-color: ${Colors.WHITE}; `; function useHiddenItemsMenu( diff --git a/src/component/panels/RangesPanel/RangesTable.tsx b/src/component/panels/RangesPanel/RangesTable.tsx index a14eedb2d8..a5207237f0 100644 --- a/src/component/panels/RangesPanel/RangesTable.tsx +++ b/src/component/panels/RangesPanel/RangesTable.tsx @@ -15,10 +15,10 @@ import RangesTableRow from './RangesTableRow.js'; import useMapRanges from './hooks/useMapRanges.js'; const Table = styled.table` - border-spacing: 0; border: 1px solid #dedede; - width: 100%; + border-spacing: 0; font-size: 12px; + width: 100%; .react-contextmenu-wrapper { display: contents; @@ -33,12 +33,12 @@ const Table = styled.table` th, td { - white-space: nowrap; - text-align: center; - margin: 0; - padding: 0.1rem 0.4rem; border-bottom: 1px solid #dedede; border-right: 1px solid #dedede; + margin: 0; + padding: 0.1rem 0.4rem; + text-align: center; + white-space: nowrap; :last-child { border-right: 0; diff --git a/src/component/panels/RangesPanel/TableColumns/ActionsColumn.tsx b/src/component/panels/RangesPanel/TableColumns/ActionsColumn.tsx index cc9a6d0899..97d6e9cc3d 100644 --- a/src/component/panels/RangesPanel/TableColumns/ActionsColumn.tsx +++ b/src/component/panels/RangesPanel/TableColumns/ActionsColumn.tsx @@ -14,8 +14,8 @@ import type { import useEditRangeModal from '../hooks/useEditRangeModal.js'; const ActionsCell = styled.td` - width: 66px; padding: 0 !important; + width: 66px; button { background-color: transparent; diff --git a/src/component/panels/SummaryPanel/CorrelationTable/CorrelationTable.tsx b/src/component/panels/SummaryPanel/CorrelationTable/CorrelationTable.tsx index 32a01a9f12..8a9fdc5ebd 100644 --- a/src/component/panels/SummaryPanel/CorrelationTable/CorrelationTable.tsx +++ b/src/component/panels/SummaryPanel/CorrelationTable/CorrelationTable.tsx @@ -8,32 +8,32 @@ import AdditionalColumnHeader from './AdditionalColumnHeader.js'; import CorrelationTableRow from './CorrelationTableRow.js'; const Container = styled.div` - overflow: auto; - height: 100%; display: block; + height: 100%; + overflow: auto; table { - border-spacing: 0; border: 1px solid #dedede; - width: 100%; + border-spacing: 0; font-size: 12px; height: 100%; + width: 100%; } th { position: sticky; - background-color: white; top: 0; + background-color: white; } th, td { - white-space: nowrap; - text-align: center; - margin: 0; - padding: 0.4rem; border-bottom: 1px solid #dedede; border-right: 1px solid #dedede; + margin: 0; + padding: 0.4rem; + text-align: center; + white-space: nowrap; :last-child { border-right: 0; diff --git a/src/component/panels/SummaryPanel/CorrelationTable/editLink/Confirmation.tsx b/src/component/panels/SummaryPanel/CorrelationTable/editLink/Confirmation.tsx index 31fb527865..84598f67f4 100644 --- a/src/component/panels/SummaryPanel/CorrelationTable/editLink/Confirmation.tsx +++ b/src/component/panels/SummaryPanel/CorrelationTable/editLink/Confirmation.tsx @@ -11,17 +11,17 @@ const Container = styled.div` } button { - flex: 2; - padding: 5px; + background-color: gray; border: 1px solid gray; border-radius: 5px; + color: white; + display: block; + flex: 2; height: 30px; margin: 0 auto; margin-top: 15px; - display: block; + padding: 5px; width: 90px; - color: white; - background-color: gray; } button:focus { diff --git a/src/component/panels/SummaryPanel/CorrelationTable/editLink/EditPathLength.tsx b/src/component/panels/SummaryPanel/CorrelationTable/editLink/EditPathLength.tsx index 80c001d7bf..0502f3edea 100644 --- a/src/component/panels/SummaryPanel/CorrelationTable/editLink/EditPathLength.tsx +++ b/src/component/panels/SummaryPanel/CorrelationTable/editLink/EditPathLength.tsx @@ -9,38 +9,38 @@ import Input from '../../../../elements/Input.js'; import Label from '../../../../elements/Label.js'; const Container = styled.div` - width: 100%; height: 100%; margin-top: 10px; text-align: center; + width: 100%; button { - flex: 2; - padding: 5px; + background-color: gray; border: 1px solid gray; border-radius: 5px; + color: white; + display: block; + flex: 2; height: 30px; margin: 0 auto; margin-top: 15px; - display: block; + padding: 5px; width: 60px; - color: white; - background-color: gray; } `; const InputContainer = styled.div` - width: 100%; - margin-top: 5px; - text-align: center; + align-items: center; display: flex; flex-direction: column; - align-items: center; justify-content: center; + margin-top: 5px; + text-align: center; + width: 100%; `; const WarningText = styled.span` - margin-top: 5px; color: red; + margin-top: 5px; `; interface InputProps { diff --git a/src/component/panels/SummaryPanel/CorrelationTable/editLink/MoveLink.tsx b/src/component/panels/SummaryPanel/CorrelationTable/editLink/MoveLink.tsx index bb4e831091..64d100f2f6 100644 --- a/src/component/panels/SummaryPanel/CorrelationTable/editLink/MoveLink.tsx +++ b/src/component/panels/SummaryPanel/CorrelationTable/editLink/MoveLink.tsx @@ -6,10 +6,10 @@ import { useCallback, useState } from 'react'; import Select from '../../../../elements/Select.js'; const Container = styled.div` - width: 100%; height: 100%; margin-top: 10px; text-align: center; + width: 100%; p { font-size: 14px; @@ -17,22 +17,22 @@ const Container = styled.div` .selection-container { margin-top: 10px; - width: 100%; text-align: center; + width: 100%; } button { - flex: 2; - padding: 5px; + background-color: gray; border: 1px solid gray; border-radius: 5px; + color: white; + display: block; + flex: 2; height: 30px; margin: 0 auto; margin-top: 15px; - display: block; + padding: 5px; width: 60px; - color: white; - background-color: gray; } `; diff --git a/src/component/panels/SummaryPanel/Overview.tsx b/src/component/panels/SummaryPanel/Overview.tsx index 00bcf1c356..ba7b6272ce 100644 --- a/src/component/panels/SummaryPanel/Overview.tsx +++ b/src/component/panels/SummaryPanel/Overview.tsx @@ -6,10 +6,10 @@ import { ErrorColors, Errors } from './CorrelationTable/Constants.js'; const Container = styled.div` display: flex; - width: 100%; font-size: 15px; font-weight: 300; white-space: nowrap; + width: 100%; span { margin-left: 8px; diff --git a/src/component/panels/SummaryPanel/SummaryPanel.tsx b/src/component/panels/SummaryPanel/SummaryPanel.tsx index 18ee3ad0d5..7a5bbfef7d 100644 --- a/src/component/panels/SummaryPanel/SummaryPanel.tsx +++ b/src/component/panels/SummaryPanel/SummaryPanel.tsx @@ -52,8 +52,8 @@ export type OnEditCorrelationCallback = ( const Container = styled.div` display: flex; flex-direction: column; - text-align: center; height: 100%; + text-align: center; width: 100%; `; @@ -63,19 +63,19 @@ const InnerHeader = styled.div` justify-content: center; `; const OverviewContainer = styled.div` - width: 100%; - display: flex; align-items: center; + display: flex; margin-left: 10px; + width: 100%; `; const SelectionContainer = styled.div` - width: 100%; - display: flex; align-items: center; + display: flex; justify-content: flex-end; margin-right: 2px; white-space: nowrap; + width: 100%; `; const SelectionLabel = styled.label` diff --git a/src/component/panels/ZonesPanel/ZonesTable.tsx b/src/component/panels/ZonesPanel/ZonesTable.tsx index 1670d6fafa..bcdb85afdf 100644 --- a/src/component/panels/ZonesPanel/ZonesTable.tsx +++ b/src/component/panels/ZonesPanel/ZonesTable.tsx @@ -18,10 +18,10 @@ import ZonesTableRow from './ZonesTableRow.js'; import { useMapZones } from './hooks/useMapZones.js'; const Table = styled.table` - border-spacing: 0; border: 1px solid #dedede; - width: 100%; + border-spacing: 0; font-size: 12px; + width: 100%; .react-contextmenu-wrapper { display: contents; @@ -35,12 +35,12 @@ const Table = styled.table` th, td { - white-space: nowrap; - text-align: center; - margin: 0; - padding: 0.1rem 0.4rem; border-bottom: 1px solid #dedede; border-right: 1px solid #dedede; + margin: 0; + padding: 0.1rem 0.4rem; + text-align: center; + white-space: nowrap; :last-child { border-right: 0; diff --git a/src/component/panels/filtersPanel/Filters/FiltersSectionsPanel.tsx b/src/component/panels/filtersPanel/Filters/FiltersSectionsPanel.tsx index 5d2474c45f..d6d5f9620c 100644 --- a/src/component/panels/filtersPanel/Filters/FiltersSectionsPanel.tsx +++ b/src/component/panels/filtersPanel/Filters/FiltersSectionsPanel.tsx @@ -28,8 +28,8 @@ export const nonRemovableFilters = new Set([ ]); const IconButton = styled(Button)` - padding: 2px; font-size: 16px; + padding: 2px; `; const Filters = { diff --git a/src/component/panels/filtersPanel/Filters/InnerFilterHeader.tsx b/src/component/panels/filtersPanel/Filters/InnerFilterHeader.tsx index 8f582a4437..46176a4488 100644 --- a/src/component/panels/filtersPanel/Filters/InnerFilterHeader.tsx +++ b/src/component/panels/filtersPanel/Filters/InnerFilterHeader.tsx @@ -6,8 +6,8 @@ export const StickyHeader = styled(Sections.Header)` position: sticky; top: 40px; background-color: white; - z-index: 1; box-shadow: rgb(0 0 0 / 16%) 0 1px 4px; + z-index: 1; `; export const HeaderContainer = styled.div` diff --git a/src/component/panels/multipleAnalysisPanel/AlignSpectra.tsx b/src/component/panels/multipleAnalysisPanel/AlignSpectra.tsx index ec0c546597..8eccd35347 100644 --- a/src/component/panels/multipleAnalysisPanel/AlignSpectra.tsx +++ b/src/component/panels/multipleAnalysisPanel/AlignSpectra.tsx @@ -86,11 +86,11 @@ function getList(nucleus) { } const Container = styled.div` - max-height: 100%; - padding: 10px 0 5px 20px; display: flex; - flex-direction: column; flex: 1; + flex-direction: column; + max-height: 100%; + padding: 10px 0 5px 20px; .body { overflow: auto; @@ -98,9 +98,9 @@ const Container = styled.div` } .header { - padding: 5px 0; font-size: 15px; font-weight: bold; + padding: 5px 0; } .footer { diff --git a/src/component/panels/predictionPanel/PredictionPanel.tsx b/src/component/panels/predictionPanel/PredictionPanel.tsx index 1f3370a306..22b0debfc4 100644 --- a/src/component/panels/predictionPanel/PredictionPanel.tsx +++ b/src/component/panels/predictionPanel/PredictionPanel.tsx @@ -30,19 +30,19 @@ const Container = styled.div` `; const Overflow = styled.div<{ height: number }>` - overflow: hidden auto; height: ${({ height }) => height}px; + overflow: hidden auto; `; const StickyFooter = styled.div` - flex-shrink: 0; - padding: 5px; + position: absolute; + right: 10px; + bottom: 0; display: flex; + flex-shrink: 0; justify-content: flex-end; + padding: 5px; z-index: 2; - position: absolute; - bottom: 0; - right: 10px; `; export default function PredictionPanel() { diff --git a/src/component/panels/predictionPanel/PredictionSimpleOptions.tsx b/src/component/panels/predictionPanel/PredictionSimpleOptions.tsx index 718a1194d3..3bfe73b8e3 100644 --- a/src/component/panels/predictionPanel/PredictionSimpleOptions.tsx +++ b/src/component/panels/predictionPanel/PredictionSimpleOptions.tsx @@ -21,9 +21,9 @@ import { useWatchForm } from '../../useWatchForm.js'; const Container = styled.div` display: flex; - justify-content: flex-end; flex: 1; height: 100%; + justify-content: flex-end; `; const predictionFormValidation = Yup.object().shape({ diff --git a/src/demo/Sidebar.tsx b/src/demo/Sidebar.tsx index 1ff219ee43..03f13aa07b 100644 --- a/src/demo/Sidebar.tsx +++ b/src/demo/Sidebar.tsx @@ -13,25 +13,25 @@ interface MenuStatus { } const SideBarContainer = styled.div` - background: #2ca8ff; position: fixed; top: 0; - height: 100%; bottom: 0; left: 0; - z-index: 19; + background: #2ca8ff; + height: 100%; width: ${({ isMenuClosed }) => (isMenuClosed ? '3%' : '260px')}; + z-index: 19; `; const MenuButton = styled.button` - margin: 2px 4px; - z-index: 7; - font-size: 18px; background-color: transparent; border: none !important; + font-size: 18px; height: 30px; - width: 30px; + margin: 2px 4px; padding: 1px 6px; + width: 30px; + z-index: 7; & svg { fill: white; @@ -53,11 +53,11 @@ const MenuButton = styled.button` `; const SideBarHeader = styled.div` + align-items: center; + border-bottom: 1px solid #eee; display: flex; justify-content: space-between; - align-items: center; z-index: 4; - border-bottom: 1px solid #eee; `; const TitleContainer = styled.div` @@ -66,28 +66,28 @@ const TitleContainer = styled.div` `; const Title = styled.a` - text-transform: uppercase; - padding: 0.5rem 0; + color: #fff; display: block; - white-space: nowrap; font-size: 1em; - color: #fff; - text-decoration: none; font-weight: 400; line-height: 30px; - overflow: hidden; opacity: 1; + overflow: hidden; + padding: 0.5rem 0; + text-decoration: none; + text-transform: uppercase; transform: translateZ(0); + white-space: nowrap; `; const SideBarWrapper = styled.div` position: relative; + display: ${({ isMenuClosed }) => (isMenuClosed ? 'none' : 'block')}; height: calc(100vh - 75px); overflow: hidden auto; + padding-bottom: 100px; width: 260px; z-index: 4; - padding-bottom: 100px; - display: ${({ isMenuClosed }) => (isMenuClosed ? 'none' : 'block')}; `; function Sidebar(props) { diff --git a/src/demo/index.css b/src/demo/index.css index ff440ab424..d5a97dcbcf 100644 --- a/src/demo/index.css +++ b/src/demo/index.css @@ -1,9 +1,9 @@ @media print { .demo-main-container, .demo-main-container > div { - width: 100% !important; margin: 0 !important; padding: 0 !important; + width: 100% !important; } .demo-side-bar, @@ -23,8 +23,8 @@ } .rc-menu-item:hover { - color: #fff; background-color: #37adff; + color: #fff; font-weight: bold; transform: translate(2px); transition: transform 0.1s ease-in-out; @@ -37,8 +37,8 @@ .rc-menu-submenu.rc-menu-submenu-active, .rc-menu-submenu.rc-menu-submenu-selected, .rc-menu:first-of-type .rc-menu-item.rc-menu-item-selected { - color: black; background-color: white; + color: black; } .rc-menu-submenu > .rc-menu { diff --git a/src/demo/layouts/Admin.tsx b/src/demo/layouts/Admin.tsx index d33de7e49f..d79914e851 100644 --- a/src/demo/layouts/Admin.tsx +++ b/src/demo/layouts/Admin.tsx @@ -9,11 +9,11 @@ import { possibleViews } from '../views/index.js'; const Container = styled.div<{ isMenuClosed: boolean }>` position: relative; + background-color: #ebecf1; float: right; height: 100%; - background-color: #ebecf1; - width: ${({ isMenuClosed }) => (isMenuClosed ? '98%' : 'calc(100% - 260px)')}; margin-left: ${({ isMenuClosed }) => (isMenuClosed ? '20px' : '0px')}; + width: ${({ isMenuClosed }) => (isMenuClosed ? '98%' : 'calc(100% - 260px)')}; `; interface DashboardProps { diff --git a/src/demo/test/TestHighlight.tsx b/src/demo/test/TestHighlight.tsx index 4da7755edd..daa5c7144c 100644 --- a/src/demo/test/TestHighlight.tsx +++ b/src/demo/test/TestHighlight.tsx @@ -36,8 +36,8 @@ const Table = styled.table` `; const TableHeader = styled.th` - padding: 5px; font-weight: 600; + padding: 5px; `; const TableCell = styled.td` diff --git a/src/demo/views/Exam.tsx b/src/demo/views/Exam.tsx index 114bb54025..57aeb90f4a 100644 --- a/src/demo/views/Exam.tsx +++ b/src/demo/views/Exam.tsx @@ -43,42 +43,42 @@ const BottomContainer = styled.div<{ isVisible: boolean }>` `; const BottomRightContainer = styled.div` - width: 50%; display: flex; - height: 100%; flex-direction: column; + height: 100%; + width: 50%; `; const MFContainer = styled.div` - height: 20%; - display: flex; align-items: center; - justify-content: center; background-color: white; border: 1px dashed gray; + display: flex; + height: 20%; + justify-content: center; `; const ResultContainer = styled.div` - display: flex; + position: relative; align-items: center; - justify-content: center; + display: flex; height: 80%; - position: relative; + justify-content: center; `; const InnerCopyButton = styled.button` position: absolute; top: 10px; left: 10px; - width: 50px; - height: 40px; - outline: none; - border: none; + align-items: center; background-color: white; + border: none; border-radius: 10px; display: flex; + height: 40px; justify-content: center; - align-items: center; + outline: none; + width: 50px; &:hover { background-color: green; @@ -93,28 +93,28 @@ const StructureEditorContainer = styled.div` `; const ToggleButton = styled.button` - outline: none; border: none; - border-top: 0.55px solid #c1c1c1; border-bottom: 0.55px solid #c1c1c1; + border-top: 0.55px solid #c1c1c1; color: #00b707; - font-weight: bold; font-size: 12px; + font-weight: bold; + outline: none; padding: 5px; &:hover { - color: white !important; background-color: #00b707; + color: white !important; } `; const Title = styled.p` - text-transform: none; - margin: 0; - padding: 5px; background-color: white; - font-size: 14px; color: #3e3e3e; + font-size: 14px; + margin: 0; + padding: 5px; + text-transform: none; p { font-size: 10px; @@ -123,21 +123,21 @@ const Title = styled.p` `; const Result = styled.div` - width: 50%; - height: 50%; - display: flex; align-items: center; - justify-content: center; + display: flex; font-size: 16px; font-weight: bold; + height: 50%; + justify-content: center; + width: 50%; `; const Container = styled.div` - height: 100%; display: flex; flex-direction: column; - padding: 10px; + height: 100%; margin-left: 30px; + padding: 10px; `; const CopyButton = ({ result }) => { diff --git a/src/demo/views/Exercise.tsx b/src/demo/views/Exercise.tsx index 423304547e..9acc1b5ed3 100644 --- a/src/demo/views/Exercise.tsx +++ b/src/demo/views/Exercise.tsx @@ -25,12 +25,12 @@ function checkStatus(response) { } const Title = styled.p` - text-transform: none; - margin: 0; - padding: 5px; background-color: white; - font-size: 14px; color: #3e3e3e; + font-size: 14px; + margin: 0; + padding: 5px; + text-transform: none; p { font-size: 10px; @@ -51,42 +51,42 @@ const BottomContainer = styled.div` `; const BottomRightContainer = styled.div` - width: 50%; display: flex; - height: 100%; flex-direction: column; + height: 100%; + width: 50%; `; const MFContainer = styled.div` - height: 20%; - display: flex; align-items: center; - justify-content: center; background-color: white; border: 1px dashed gray; + display: flex; + height: 20%; + justify-content: center; `; const ResultContainer = styled.div` - display: flex; + position: relative; align-items: center; - justify-content: center; + display: flex; height: 80%; - position: relative; + justify-content: center; `; const InnerResultContainer = styled.div< Pick >` - flex-direction: column; - padding: 10px; - margin-left: 30px; + align-items: center; background-color: ${({ backgroundColor }) => backgroundColor}; color: ${({ color }) => color}; - width: 80%; - height: 80%; display: flex; + flex-direction: column; + height: 80%; justify-content: center; - align-items: center; + margin-left: 30px; + padding: 10px; + width: 80%; `; const StructureEditorContainer = styled.div` @@ -96,27 +96,27 @@ const StructureEditorContainer = styled.div` `; const ToggleButton = styled.button` - outline: none; border: none; - border-top: 0.55px solid #c1c1c1; border-bottom: 0.55px solid #c1c1c1; + border-top: 0.55px solid #c1c1c1; color: #00b707; - font-weight: bold; font-size: 12px; + font-weight: bold; + outline: none; padding: 5px; &:hover { - color: white !important; background-color: #00b707; + color: white !important; } `; const Container = styled.div` - height: 100%; display: flex; flex-direction: column; - padding: 10px; + height: 100%; margin-left: 30px; + padding: 10px; `; interface ExerciceData extends NMRiumData { diff --git a/src/demo/views/Loading.tsx b/src/demo/views/Loading.tsx index d3a3970311..05a7673cf1 100644 --- a/src/demo/views/Loading.tsx +++ b/src/demo/views/Loading.tsx @@ -1,12 +1,12 @@ import styled from '@emotion/styled'; const LoadingContainer = styled.div` - height: 100vh; + align-items: center; + background-color: #f4f4f4; display: flex; flex-direction: column; + height: 100vh; justify-content: center; - align-items: center; - background-color: #f4f4f4; #title { padding: 20px 0; @@ -17,12 +17,12 @@ const LoadingContainer = styled.div` } #loader { + animation: spin 0.6s linear infinite; border: 1px solid #f3f3f3; - border-top: 3px solid #c25a00; border-radius: 50%; - width: 50px; + border-top: 3px solid #c25a00; height: 50px; - animation: spin 0.6s linear infinite; + width: 50px; } @keyframes spin { diff --git a/src/demo/views/PluginUITopBar.tsx b/src/demo/views/PluginUITopBar.tsx index 855e0a6732..1ea2b22e9d 100644 --- a/src/demo/views/PluginUITopBar.tsx +++ b/src/demo/views/PluginUITopBar.tsx @@ -22,8 +22,8 @@ const Container = styled.section` height: 100%; & > h1 { - font-weight: 700; font-size: 1.5em; + font-weight: 700; line-height: 1.4em; padding: 0.75em; }