From a9d269c5939b7feeb08448955dbddc8dc252725a Mon Sep 17 00:00:00 2001 From: Sauli Anto Date: Wed, 8 Jan 2025 14:30:59 +0200 Subject: [PATCH] OPHJOD-1178: Update React to version 19 --- package-lock.json | 1103 +++++++++++++++-- package.json | 9 +- .../NavigationBar/NavigationBar.tsx | 2 +- .../OpportunityDetails/OpportunityDetails.tsx | 2 +- .../OsaamisSuosittelija.tsx | 2 +- .../ScrollHeading/ScrollHeading.tsx | 1 + src/components/Title/Title.test.tsx | 11 +- src/components/Title/Title.tsx | 8 +- src/hooks/useMenuClickHandler/index.ts | 7 +- src/index.css | 2 +- src/main.tsx | 9 +- src/routes/Profile/utils.tsx | 1 + src/routes/Root/Root.tsx | 17 +- src/routes/Tool/Tool.tsx | 2 +- 14 files changed, 1040 insertions(+), 136 deletions(-) diff --git a/package-lock.json b/package-lock.json index c1523af6..3847e01c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,9 +14,8 @@ "i18next": "^24.2.0", "openapi-fetch": "^0.13.3", "openapi-typescript-fetch": "^2.0.0", - "react": "^18.3.1", - "react-dom": "^18.3.1", - "react-helmet-async": "^2.0.5", + "react": "^19.0.0", + "react-dom": "^19.0.0", "react-hook-form": "^7.54.2", "react-i18next": "^15.4.0", "react-icons": "^5.4.0", @@ -34,8 +33,8 @@ "@testing-library/react": "^16.1.0", "@types/eslint__js": "^8.42.3", "@types/node": "^22.9.0", - "@types/react": "^18.3.12", - "@types/react-dom": "^18.3.1", + "@types/react": "^19.0.3", + "@types/react-dom": "^19.0.2", "@vitejs/plugin-react-swc": "^3.7.2", "@vitest/coverage-v8": "^2.1.4", "autoprefixer": "^10.4.20", @@ -96,6 +95,68 @@ "node": ">=6.0.0" } }, + "node_modules/@ark-ui/react": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@ark-ui/react/-/react-4.6.0.tgz", + "integrity": "sha512-tOr0SdMwn1GrM5DzUC+ATLcGlvVVoan3g1rgYBZV/06LEKfs12+m0zbvJz9IpiOiy0dzBXvDQRgGsIlzL/6blg==", + "license": "MIT", + "dependencies": { + "@internationalized/date": "3.6.0", + "@zag-js/accordion": "0.79.1", + "@zag-js/anatomy": "0.79.1", + "@zag-js/auto-resize": "0.79.1", + "@zag-js/avatar": "0.79.1", + "@zag-js/carousel": "0.79.1", + "@zag-js/checkbox": "0.79.1", + "@zag-js/clipboard": "0.79.1", + "@zag-js/collapsible": "0.79.1", + "@zag-js/collection": "0.79.1", + "@zag-js/color-picker": "0.79.1", + "@zag-js/color-utils": "0.79.1", + "@zag-js/combobox": "0.79.1", + "@zag-js/core": "0.79.1", + "@zag-js/date-picker": "0.79.1", + "@zag-js/date-utils": "0.79.1", + "@zag-js/dialog": "0.79.1", + "@zag-js/dom-query": "0.79.1", + "@zag-js/editable": "0.79.1", + "@zag-js/file-upload": "0.79.1", + "@zag-js/file-utils": "0.79.1", + "@zag-js/highlight-word": "0.79.1", + "@zag-js/hover-card": "0.79.1", + "@zag-js/i18n-utils": "0.79.1", + "@zag-js/menu": "0.79.1", + "@zag-js/number-input": "0.79.1", + "@zag-js/pagination": "0.79.1", + "@zag-js/pin-input": "0.79.1", + "@zag-js/popover": "0.79.1", + "@zag-js/presence": "0.79.1", + "@zag-js/progress": "0.79.1", + "@zag-js/qr-code": "0.79.1", + "@zag-js/radio-group": "0.79.1", + "@zag-js/rating-group": "0.79.1", + "@zag-js/react": "0.79.1", + "@zag-js/select": "0.79.1", + "@zag-js/signature-pad": "0.79.1", + "@zag-js/slider": "0.79.1", + "@zag-js/splitter": "0.79.1", + "@zag-js/steps": "0.79.1", + "@zag-js/switch": "0.79.1", + "@zag-js/tabs": "0.79.1", + "@zag-js/tags-input": "0.79.1", + "@zag-js/time-picker": "0.79.1", + "@zag-js/timer": "0.79.1", + "@zag-js/toast": "0.79.1", + "@zag-js/toggle-group": "0.79.1", + "@zag-js/tooltip": "0.79.1", + "@zag-js/tree-view": "0.79.1", + "@zag-js/types": "0.79.1" + }, + "peerDependencies": { + "react": ">=18.0.0", + "react-dom": ">=18.0.0" + } + }, "node_modules/@axe-core/react": { "version": "4.10.1", "resolved": "https://registry.npmjs.org/@axe-core/react/-/react-4.10.1.tgz", @@ -2415,32 +2476,32 @@ } }, "node_modules/@floating-ui/core": { - "version": "1.6.8", - "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.8.tgz", - "integrity": "sha512-7XJ9cPU+yI2QeLS+FCSlqNFZJq8arvswefkZrYI1yQBbftw6FyrZOxYSh+9S7z7TpeWlRt9zJ5IhM1WIL334jA==", + "version": "1.6.9", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.9.tgz", + "integrity": "sha512-uMXCuQ3BItDUbAMhIXw7UPXRfAlOAvZzdK9BWpE60MCn+Svt3aLn9jsPTi/WNGlRUu2uI0v5S7JiIUsbsvh3fw==", "license": "MIT", "dependencies": { - "@floating-ui/utils": "^0.2.8" + "@floating-ui/utils": "^0.2.9" } }, "node_modules/@floating-ui/dom": { - "version": "1.6.12", - "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.12.tgz", - "integrity": "sha512-NP83c0HjokcGVEMeoStg317VD9W7eDlGK7457dMBANbKA6GJZdc7rjujdgqzTaz93jkGgc5P/jeWbaCHnMNc+w==", + "version": "1.6.13", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.13.tgz", + "integrity": "sha512-umqzocjDgNRGTuO7Q8CU32dkHkECqI8ZdMZ5Swb6QAM0t5rnlrN3lGo1hdpscRd3WS8T6DKYK4ephgIH9iRh3w==", "license": "MIT", "dependencies": { "@floating-ui/core": "^1.6.0", - "@floating-ui/utils": "^0.2.8" + "@floating-ui/utils": "^0.2.9" } }, "node_modules/@floating-ui/react": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/@floating-ui/react/-/react-0.27.2.tgz", - "integrity": "sha512-k/yP6a9K9QwhLfIu87iUZxCH6XN5z5j/VUHHq0dEnbZYY2Y9jz68E/LXFtK8dkiaYltS2WYohnyKC0VcwVneVg==", + "version": "0.27.3", + "resolved": "https://registry.npmjs.org/@floating-ui/react/-/react-0.27.3.tgz", + "integrity": "sha512-CLHnes3ixIFFKVQDdICjel8muhFLOBdQH7fgtHNPY8UbCNqbeKZ262G7K66lGQOUQWWnYocf7ZbUsLJgGfsLHg==", "license": "MIT", "dependencies": { "@floating-ui/react-dom": "^2.1.2", - "@floating-ui/utils": "^0.2.8", + "@floating-ui/utils": "^0.2.9", "tabbable": "^6.0.0" }, "peerDependencies": { @@ -2462,9 +2523,10 @@ } }, "node_modules/@floating-ui/utils": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.8.tgz", - "integrity": "sha512-kym7SodPp8/wloecOpcmSnWJsK7M0E5Wg8UcFA+uO4B9s5d0ywXOEro/8HM9x0rW+TljRzul/14UYz3TleT3ig==" + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.9.tgz", + "integrity": "sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==", + "license": "MIT" }, "node_modules/@headlessui/react": { "version": "2.2.0", @@ -2569,6 +2631,24 @@ "url": "/~https://github.com/sponsors/nzakas" } }, + "node_modules/@internationalized/date": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/@internationalized/date/-/date-3.6.0.tgz", + "integrity": "sha512-+z6ti+CcJnRlLHok/emGEsWQhe7kfSmEW+/6qCzvKY67YPh7YOBfvc7+/+NXq+zJlbArg30tYpqLjNgcAYv2YQ==", + "license": "Apache-2.0", + "dependencies": { + "@swc/helpers": "^0.5.0" + } + }, + "node_modules/@internationalized/number": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/@internationalized/number/-/number-3.6.0.tgz", + "integrity": "sha512-PtrRcJVy7nw++wn4W2OuePQQfTqDzfusSuY1QTtui4wa7r+rGVtR75pO8CyKvHvzyQYi3Q1uO5sY0AsB4e65Bw==", + "license": "Apache-2.0", + "dependencies": { + "@swc/helpers": "^0.5.0" + } + }, "node_modules/@isaacs/cliui": { "version": "8.0.2", "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", @@ -2643,13 +2723,14 @@ }, "node_modules/@jod/design-system": { "version": "0.0.0", - "resolved": "git+ssh://git@github.com/Opetushallitus/jod-design-system.git#7750c3ac7f7b2fe086c6b64d6fd838b0eb323bb7", + "resolved": "git+ssh://git@github.com/Opetushallitus/jod-design-system.git#c34cace71e3fe5484396b77b6d23cf205973be51", "license": "EUPL-1.2", "dependencies": { + "@ark-ui/react": "^4.6.0", "@floating-ui/react": "^0.27.0", "@headlessui/react": "^2.1.10", "cva": "^1.0.0-beta.1", - "react": "^18", + "react": "^19.0.0", "react-icons": "^5.4.0", "tailwind-merge": "^2.5.5" }, @@ -2657,7 +2738,7 @@ "node": "^20.0.0" }, "peerDependencies": { - "react": "^18" + "react": "^19" } }, "node_modules/@jridgewell/gen-mapping": { @@ -3591,29 +3672,24 @@ "undici-types": "~6.19.8" } }, - "node_modules/@types/prop-types": { - "version": "15.7.13", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.13.tgz", - "integrity": "sha512-hCZTSvwbzWGvhqxp/RqVqwU999pBf2vp7hzIjiYOsl8wqOmUxkQ6ddw1cV3l8811+kdUFus/q4d1Y3E3SyEifA==", - "devOptional": true - }, "node_modules/@types/react": { - "version": "18.3.12", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.12.tgz", - "integrity": "sha512-D2wOSq/d6Agt28q7rSI3jhU7G6aiuzljDGZ2hTZHIkrTLUI+AF3WMeKkEZ9nN2fkBAlcktT6vcZjDFiIhMYEQw==", + "version": "19.0.3", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.0.3.tgz", + "integrity": "sha512-UavfHguIjnnuq9O67uXfgy/h3SRJbidAYvNjLceB+2RIKVRBzVsh0QO+Pw6BCSQqFS9xwzKfwstXx0m6AbAREA==", "devOptional": true, + "license": "MIT", "dependencies": { - "@types/prop-types": "*", "csstype": "^3.0.2" } }, "node_modules/@types/react-dom": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.1.tgz", - "integrity": "sha512-qW1Mfv8taImTthu4KoXgDfLuk4bydU6Q/TkADnDWWHwi4NX4BR+LWfTp2sVmTqRrsHvyDDTelgelxJ+SsejKKQ==", + "version": "19.0.2", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.0.2.tgz", + "integrity": "sha512-c1s+7TKFaDRRxr1TxccIX2u7sfCnc3RxkVyBIUA2lCpyqCF+QoAwQ/CBg7bsMdVwP120HEH143VQezKtef5nCg==", "dev": true, - "dependencies": { - "@types/react": "*" + "license": "MIT", + "peerDependencies": { + "@types/react": "^19.0.0" } }, "node_modules/@typescript-eslint/eslint-plugin": { @@ -3971,6 +4047,852 @@ "url": "https://opencollective.com/vitest" } }, + "node_modules/@zag-js/accordion": { + "version": "0.79.1", + "resolved": "https://registry.npmjs.org/@zag-js/accordion/-/accordion-0.79.1.tgz", + "integrity": "sha512-GlyuRhc2Mwq0punW6dARPTM4EoIce4MxjNCuZLyMxEKt23xFEB5ICVNgz4X/4fyKu+0SaNpttztbBqzTv/fnpg==", + "license": "MIT", + "dependencies": { + "@zag-js/anatomy": "0.79.1", + "@zag-js/core": "0.79.1", + "@zag-js/dom-event": "0.79.1", + "@zag-js/dom-query": "0.79.1", + "@zag-js/types": "0.79.1", + "@zag-js/utils": "0.79.1" + } + }, + "node_modules/@zag-js/anatomy": { + "version": "0.79.1", + "resolved": "https://registry.npmjs.org/@zag-js/anatomy/-/anatomy-0.79.1.tgz", + "integrity": "sha512-kdwGFERoVlxLfBKFVrtY/3UATaU/Tqyxe2DBiwccy9RcY8LQlVAoFuRRmK1hlV7Dz9IXrPoQEDYTNgSORz4NyA==", + "license": "MIT" + }, + "node_modules/@zag-js/aria-hidden": { + "version": "0.79.1", + "resolved": "https://registry.npmjs.org/@zag-js/aria-hidden/-/aria-hidden-0.79.1.tgz", + "integrity": "sha512-UFp/u8ytJ4WASB1kUnJ+uJ/N6huRfIshAoRKnnfxJSE71QpJ0T8ncniuXv2L/rxjOXBr8nDRhRq9ZNZwwi69Vw==", + "license": "MIT" + }, + "node_modules/@zag-js/auto-resize": { + "version": "0.79.1", + "resolved": "https://registry.npmjs.org/@zag-js/auto-resize/-/auto-resize-0.79.1.tgz", + "integrity": "sha512-eki2QeC3K7TLRizH7T/QKcIlwZnUMS+TsFO1fBJwWvW8oKESKfemWt05e6HsuORwVJGC/tkd2F5OTFGVVJXZkQ==", + "license": "MIT", + "dependencies": { + "@zag-js/dom-query": "0.79.1" + } + }, + "node_modules/@zag-js/avatar": { + "version": "0.79.1", + "resolved": "https://registry.npmjs.org/@zag-js/avatar/-/avatar-0.79.1.tgz", + "integrity": "sha512-fPVJ1SDzZ9CqnyEXBwZpldrCC48mhwsjyWzjlid7NHlBYothSvjy9+C11FyDA9ms0ziwXMIXKbo2uSz3qfdgvg==", + "license": "MIT", + "dependencies": { + "@zag-js/anatomy": "0.79.1", + "@zag-js/core": "0.79.1", + "@zag-js/dom-query": "0.79.1", + "@zag-js/types": "0.79.1", + "@zag-js/utils": "0.79.1" + } + }, + "node_modules/@zag-js/carousel": { + "version": "0.79.1", + "resolved": "https://registry.npmjs.org/@zag-js/carousel/-/carousel-0.79.1.tgz", + "integrity": "sha512-tc9BPbVWPutfJTw1WorgJxbMEQJN+7Ur5bkP+V5ght8BKl/wiHhaR6KFEGXVtQVgH/dUMaViFTX+OeGzegk6Wg==", + "license": "MIT", + "dependencies": { + "@zag-js/anatomy": "0.79.1", + "@zag-js/core": "0.79.1", + "@zag-js/dom-event": "0.79.1", + "@zag-js/dom-query": "0.79.1", + "@zag-js/scroll-snap": "0.79.1", + "@zag-js/types": "0.79.1", + "@zag-js/utils": "0.79.1" + } + }, + "node_modules/@zag-js/checkbox": { + "version": "0.79.1", + "resolved": "https://registry.npmjs.org/@zag-js/checkbox/-/checkbox-0.79.1.tgz", + "integrity": "sha512-QF79sAfvJpw76+H5+7KkW3Lify8csV4CA9JLyGpL81m9LJTC8yeKXUnN5be9ZKjDKlNsg0INk9nVBI0a6Q037Q==", + "license": "MIT", + "dependencies": { + "@zag-js/anatomy": "0.79.1", + "@zag-js/core": "0.79.1", + "@zag-js/dom-event": "0.79.1", + "@zag-js/dom-query": "0.79.1", + "@zag-js/focus-visible": "0.79.1", + "@zag-js/form-utils": "0.79.1", + "@zag-js/types": "0.79.1", + "@zag-js/utils": "0.79.1" + } + }, + "node_modules/@zag-js/clipboard": { + "version": "0.79.1", + "resolved": "https://registry.npmjs.org/@zag-js/clipboard/-/clipboard-0.79.1.tgz", + "integrity": "sha512-LDIEAeaAm5lwWhijS+w4/Psa9rUppiarjKv6qPjNL2iBOGmlU2Tw2LukCbZpY4Sg12y7BqesyK0o+5BBjwetmg==", + "license": "MIT", + "dependencies": { + "@zag-js/anatomy": "0.79.1", + "@zag-js/core": "0.79.1", + "@zag-js/dom-query": "0.79.1", + "@zag-js/types": "0.79.1", + "@zag-js/utils": "0.79.1" + } + }, + "node_modules/@zag-js/collapsible": { + "version": "0.79.1", + "resolved": "https://registry.npmjs.org/@zag-js/collapsible/-/collapsible-0.79.1.tgz", + "integrity": "sha512-NMg5zvWSrVq1uFA/TN/mRBYdsxw9/rWnaNSO0DT0h2gP+l5HUouz1wlz8Tkwa4VRhW0rrg20kGEhwAHZ8uPdrw==", + "license": "MIT", + "dependencies": { + "@zag-js/anatomy": "0.79.1", + "@zag-js/core": "0.79.1", + "@zag-js/dom-query": "0.79.1", + "@zag-js/types": "0.79.1", + "@zag-js/utils": "0.79.1" + } + }, + "node_modules/@zag-js/collection": { + "version": "0.79.1", + "resolved": "https://registry.npmjs.org/@zag-js/collection/-/collection-0.79.1.tgz", + "integrity": "sha512-PeOqddL2M6+2cKJhTP3aahGxV4rJgwwGJz9hYVQs+H7+yHLDrG99vDpphWDL6g8kDlyQSpijwl5+gR/z52cw0A==", + "license": "MIT", + "dependencies": { + "@zag-js/utils": "0.79.1" + } + }, + "node_modules/@zag-js/color-picker": { + "version": "0.79.1", + "resolved": "https://registry.npmjs.org/@zag-js/color-picker/-/color-picker-0.79.1.tgz", + "integrity": "sha512-2v0VX86G53kcB+OIjLDXK752iFM2GUQ1/UUHnLVXWvo5Wfi+Oa5wRDMaMDXt/nI35NU8C55k2Hnbk0dYTQZj5g==", + "license": "MIT", + "dependencies": { + "@zag-js/anatomy": "0.79.1", + "@zag-js/color-utils": "0.79.1", + "@zag-js/core": "0.79.1", + "@zag-js/dismissable": "0.79.1", + "@zag-js/dom-event": "0.79.1", + "@zag-js/dom-query": "0.79.1", + "@zag-js/form-utils": "0.79.1", + "@zag-js/popper": "0.79.1", + "@zag-js/text-selection": "0.79.1", + "@zag-js/types": "0.79.1", + "@zag-js/utils": "0.79.1" + } + }, + "node_modules/@zag-js/color-utils": { + "version": "0.79.1", + "resolved": "https://registry.npmjs.org/@zag-js/color-utils/-/color-utils-0.79.1.tgz", + "integrity": "sha512-a+0HGl/vfhtTBEZzoLZjNVZMOMBFrDRXDZvkan1Wz6hk2oLHdgfpGoTt/Vu93A62queXlt2Q7gbn1mFocRNg7w==", + "license": "MIT", + "dependencies": { + "@zag-js/numeric-range": "0.79.1" + } + }, + "node_modules/@zag-js/combobox": { + "version": "0.79.1", + "resolved": "https://registry.npmjs.org/@zag-js/combobox/-/combobox-0.79.1.tgz", + "integrity": "sha512-elOshWIEHYqUfmbemnNF39xWinLwG5sQB+OgCaeo0Z9bc79yXHY83bOtquc3WceOasnqzpDeQeu19fmBmi+euw==", + "license": "MIT", + "dependencies": { + "@zag-js/anatomy": "0.79.1", + "@zag-js/aria-hidden": "0.79.1", + "@zag-js/collection": "0.79.1", + "@zag-js/core": "0.79.1", + "@zag-js/dismissable": "0.79.1", + "@zag-js/dom-event": "0.79.1", + "@zag-js/dom-query": "0.79.1", + "@zag-js/popper": "0.79.1", + "@zag-js/types": "0.79.1", + "@zag-js/utils": "0.79.1" + } + }, + "node_modules/@zag-js/core": { + "version": "0.79.1", + "resolved": "https://registry.npmjs.org/@zag-js/core/-/core-0.79.1.tgz", + "integrity": "sha512-kfYas04BQnbdL46nDfBjELAHcba+Lq+D2xts1mKbFjgxb1HBDYh0mIngjilAP/8y2Pj2XsjuVlfn3wsuNldqCQ==", + "license": "MIT", + "dependencies": { + "@zag-js/store": "0.79.1", + "@zag-js/utils": "0.79.1" + } + }, + "node_modules/@zag-js/date-picker": { + "version": "0.79.1", + "resolved": "https://registry.npmjs.org/@zag-js/date-picker/-/date-picker-0.79.1.tgz", + "integrity": "sha512-IjSB7N4JmlKKNDOcIwoBdXNZCcjxO1AsDmty7k3mOJgGzsCGkxUY6kyTzB+HaTmr+6yyieu+4CrXmVueIEXn9w==", + "license": "MIT", + "dependencies": { + "@zag-js/anatomy": "0.79.1", + "@zag-js/core": "0.79.1", + "@zag-js/date-utils": "0.79.1", + "@zag-js/dismissable": "0.79.1", + "@zag-js/dom-event": "0.79.1", + "@zag-js/dom-query": "0.79.1", + "@zag-js/form-utils": "0.79.1", + "@zag-js/live-region": "0.79.1", + "@zag-js/popper": "0.79.1", + "@zag-js/text-selection": "0.79.1", + "@zag-js/types": "0.79.1", + "@zag-js/utils": "0.79.1" + }, + "peerDependencies": { + "@internationalized/date": ">=3.0.0" + } + }, + "node_modules/@zag-js/date-utils": { + "version": "0.79.1", + "resolved": "https://registry.npmjs.org/@zag-js/date-utils/-/date-utils-0.79.1.tgz", + "integrity": "sha512-WKg2ks+G/sGgl/WaJu7OO9IYxFP2UdZq8yy0iMNIEQceIGCpYDjLr43Vov1+6mipQ9+oBgXxJQu4+VShpjyesA==", + "license": "MIT", + "peerDependencies": { + "@internationalized/date": ">=3.0.0" + } + }, + "node_modules/@zag-js/dialog": { + "version": "0.79.1", + "resolved": "https://registry.npmjs.org/@zag-js/dialog/-/dialog-0.79.1.tgz", + "integrity": "sha512-OkOjAnElcxYBkylg/hXZaeKZGas5aNwKT6Tu2qnZp7bQpoNnECIkkpUMhYqJGRG+PGm1zIB8/J4oR/rUx6pdPA==", + "license": "MIT", + "dependencies": { + "@zag-js/anatomy": "0.79.1", + "@zag-js/aria-hidden": "0.79.1", + "@zag-js/core": "0.79.1", + "@zag-js/dismissable": "0.79.1", + "@zag-js/dom-query": "0.79.1", + "@zag-js/focus-trap": "0.79.1", + "@zag-js/remove-scroll": "0.79.1", + "@zag-js/types": "0.79.1", + "@zag-js/utils": "0.79.1" + } + }, + "node_modules/@zag-js/dismissable": { + "version": "0.79.1", + "resolved": "https://registry.npmjs.org/@zag-js/dismissable/-/dismissable-0.79.1.tgz", + "integrity": "sha512-KAEPoXKAZVztCKhKK6EuWnLqKfAfeE3ltUPGCV8eTPuYyPy6JsKl+pvumdmIJnMY0awi9IThLUwnDlPrg/UpuA==", + "license": "MIT", + "dependencies": { + "@zag-js/dom-event": "0.79.1", + "@zag-js/dom-query": "0.79.1", + "@zag-js/interact-outside": "0.79.1", + "@zag-js/utils": "0.79.1" + } + }, + "node_modules/@zag-js/dom-event": { + "version": "0.79.1", + "resolved": "https://registry.npmjs.org/@zag-js/dom-event/-/dom-event-0.79.1.tgz", + "integrity": "sha512-PMgtMfl7iPt9kbGMu8tgHYDSWBo/0bKOILWoKtuOZEsOI1QTud+8RhrYmWqvr/Go9W/99YmjzAIS4Dcd8jJDIg==", + "license": "MIT", + "dependencies": { + "@zag-js/dom-query": "0.79.1", + "@zag-js/text-selection": "0.79.1", + "@zag-js/types": "0.79.1" + } + }, + "node_modules/@zag-js/dom-query": { + "version": "0.79.1", + "resolved": "https://registry.npmjs.org/@zag-js/dom-query/-/dom-query-0.79.1.tgz", + "integrity": "sha512-9z4IEK9q5m/yMyxoj8BPqIurMqRIvRiK2/nAY92n2mP3MTeTKf+AFpMHXGz7wArPx2NIRq+Q7TdfSMey3vKs2w==", + "license": "MIT" + }, + "node_modules/@zag-js/editable": { + "version": "0.79.1", + "resolved": "https://registry.npmjs.org/@zag-js/editable/-/editable-0.79.1.tgz", + "integrity": "sha512-sAK8CCb1L+jwUaxKpBIdtZWFuxCPUhx9pCtm2d2r9nbmsam3iFBbe52PjjcndEJcVB/n5TibUbfptkzI/4oGOQ==", + "license": "MIT", + "dependencies": { + "@zag-js/anatomy": "0.79.1", + "@zag-js/core": "0.79.1", + "@zag-js/dom-event": "0.79.1", + "@zag-js/dom-query": "0.79.1", + "@zag-js/form-utils": "0.79.1", + "@zag-js/interact-outside": "0.79.1", + "@zag-js/types": "0.79.1", + "@zag-js/utils": "0.79.1" + } + }, + "node_modules/@zag-js/element-rect": { + "version": "0.79.1", + "resolved": "https://registry.npmjs.org/@zag-js/element-rect/-/element-rect-0.79.1.tgz", + "integrity": "sha512-BO4n9vBB2MdEHYh6fxy5gMmJXwN65dt55xKxvQYUzrVI8ds2mHnQgDAVGwnZpnXvbXNAd2RLqjksketdhNIoBA==", + "license": "MIT" + }, + "node_modules/@zag-js/element-size": { + "version": "0.79.1", + "resolved": "https://registry.npmjs.org/@zag-js/element-size/-/element-size-0.79.1.tgz", + "integrity": "sha512-a75L+5YBsubFgjyt/fnvZB/E00wUbDm3VM3JBdvWxX/7gyrazFMyC3kt8Yaf7GmoW8N+h8nZ4nbzhhHImFl8Ug==", + "license": "MIT" + }, + "node_modules/@zag-js/file-upload": { + "version": "0.79.1", + "resolved": "https://registry.npmjs.org/@zag-js/file-upload/-/file-upload-0.79.1.tgz", + "integrity": "sha512-DnEIP34wVvH9F8F9qEUARP8rdMQCCtjiQX9WXHhqLJA5w3t+EVLL0zGtNASXqsUCWHiE4xCEJbgyHfSXYfcttA==", + "license": "MIT", + "dependencies": { + "@zag-js/anatomy": "0.79.1", + "@zag-js/core": "0.79.1", + "@zag-js/dom-query": "0.79.1", + "@zag-js/file-utils": "0.79.1", + "@zag-js/i18n-utils": "0.79.1", + "@zag-js/types": "0.79.1", + "@zag-js/utils": "0.79.1" + } + }, + "node_modules/@zag-js/file-utils": { + "version": "0.79.1", + "resolved": "https://registry.npmjs.org/@zag-js/file-utils/-/file-utils-0.79.1.tgz", + "integrity": "sha512-Ss7A9vyDnw9gn0gSzO59JAsk3xb06mQTtGP1n9/iBi2ctkHLoeN41RTRPZ3jfSt4kRfUiK7Gon+y0VE/vUC9+w==", + "license": "MIT", + "dependencies": { + "@zag-js/i18n-utils": "0.79.1" + } + }, + "node_modules/@zag-js/focus-trap": { + "version": "0.79.1", + "resolved": "https://registry.npmjs.org/@zag-js/focus-trap/-/focus-trap-0.79.1.tgz", + "integrity": "sha512-dofZPlwyBFYACmT6+afSOwcRgFFAJni3xMXL7qCb0E3LXYxbb7AgFIrSLNic0iMSfP4iAE1pd8THnQHdkH2tYQ==", + "license": "MIT", + "dependencies": { + "@zag-js/dom-query": "0.79.1", + "focus-trap": "7.6.2" + } + }, + "node_modules/@zag-js/focus-visible": { + "version": "0.79.1", + "resolved": "https://registry.npmjs.org/@zag-js/focus-visible/-/focus-visible-0.79.1.tgz", + "integrity": "sha512-yWNKy6ybkg6VA2uXarEg+1xIuz2iwbn9TD7FZXZPxDgd2RzUacXuyhhTJlENEwGVcweZQkg78XzOWUCbXR2+iQ==", + "license": "MIT", + "dependencies": { + "@zag-js/dom-query": "0.79.1" + } + }, + "node_modules/@zag-js/form-utils": { + "version": "0.79.1", + "resolved": "https://registry.npmjs.org/@zag-js/form-utils/-/form-utils-0.79.1.tgz", + "integrity": "sha512-AcfqKWqlReo38OKQFlC2Jx6/wT7Zmx5x22C1dXN9TvxhvqolpiQPT7eZ/Un7xq4D55lhzdJOPfh/esQ+W6ErDQ==", + "license": "MIT" + }, + "node_modules/@zag-js/highlight-word": { + "version": "0.79.1", + "resolved": "https://registry.npmjs.org/@zag-js/highlight-word/-/highlight-word-0.79.1.tgz", + "integrity": "sha512-D3yt9BmBUPMXZngIKxEFJO/D7sX/+3Dd3hcOPOilJD3gP9IFPZCC2YHkXUXJ/cv9kyzXdweAOAJY7b6bJST0dQ==", + "license": "MIT" + }, + "node_modules/@zag-js/hover-card": { + "version": "0.79.1", + "resolved": "https://registry.npmjs.org/@zag-js/hover-card/-/hover-card-0.79.1.tgz", + "integrity": "sha512-QHMKCT56Gh+eqdhVFaApXqY1jXh2R+ROM3g5Qif06woN8/1tk4OmgsAx1TwSK7nPWp3iNqiSZUq6x9yZ3GFqCg==", + "license": "MIT", + "dependencies": { + "@zag-js/anatomy": "0.79.1", + "@zag-js/core": "0.79.1", + "@zag-js/dismissable": "0.79.1", + "@zag-js/dom-query": "0.79.1", + "@zag-js/popper": "0.79.1", + "@zag-js/types": "0.79.1", + "@zag-js/utils": "0.79.1" + } + }, + "node_modules/@zag-js/i18n-utils": { + "version": "0.79.1", + "resolved": "https://registry.npmjs.org/@zag-js/i18n-utils/-/i18n-utils-0.79.1.tgz", + "integrity": "sha512-jw7oARe27Fy/6sRiRmX6nf86HxZ6nXW1jfEBc8X0Ciebm+IIowZbWywpHZJKDi9wlnWOsK6XxC1rINId453NVg==", + "license": "MIT", + "dependencies": { + "@zag-js/dom-query": "0.79.1" + } + }, + "node_modules/@zag-js/interact-outside": { + "version": "0.79.1", + "resolved": "https://registry.npmjs.org/@zag-js/interact-outside/-/interact-outside-0.79.1.tgz", + "integrity": "sha512-baNBMvlv9GuMGt+Dj4JOuOj1djEHXTR1UruWn+6TNuwqKlYtB0jJY+qCjLvFxldfAaQU0i6oD3l6in5E86TEIg==", + "license": "MIT", + "dependencies": { + "@zag-js/dom-event": "0.79.1", + "@zag-js/dom-query": "0.79.1", + "@zag-js/utils": "0.79.1" + } + }, + "node_modules/@zag-js/live-region": { + "version": "0.79.1", + "resolved": "https://registry.npmjs.org/@zag-js/live-region/-/live-region-0.79.1.tgz", + "integrity": "sha512-VnU/fem0/Ue9Cgqk+eVTgCu8QqnlixBBUay+PceFbsBjWl3jcA9cXSnwhP/lQzwdq958foEqh/N4fD+wDc9SBA==", + "license": "MIT" + }, + "node_modules/@zag-js/menu": { + "version": "0.79.1", + "resolved": "https://registry.npmjs.org/@zag-js/menu/-/menu-0.79.1.tgz", + "integrity": "sha512-0Oryb9QRCRlu+Y1jndZdt4lTwZ4BZXiwHXsW6XF1uekks0C/AKbVzVUYUAQME58CFDbeMzf+wigQqsm+fuq0Xg==", + "license": "MIT", + "dependencies": { + "@zag-js/anatomy": "0.79.1", + "@zag-js/core": "0.79.1", + "@zag-js/dismissable": "0.79.1", + "@zag-js/dom-event": "0.79.1", + "@zag-js/dom-query": "0.79.1", + "@zag-js/popper": "0.79.1", + "@zag-js/rect-utils": "0.79.1", + "@zag-js/types": "0.79.1", + "@zag-js/utils": "0.79.1" + } + }, + "node_modules/@zag-js/number-input": { + "version": "0.79.1", + "resolved": "https://registry.npmjs.org/@zag-js/number-input/-/number-input-0.79.1.tgz", + "integrity": "sha512-oJXx8yA86WtMdIMCQdWbviPXQuE8HfOYhgEKBSliVjH1d3hBXTZjhYIrvfy/0x1M7sYWb/J+0Bt+AOzSj9t2dQ==", + "license": "MIT", + "dependencies": { + "@internationalized/number": "3.6.0", + "@zag-js/anatomy": "0.79.1", + "@zag-js/core": "0.79.1", + "@zag-js/dom-event": "0.79.1", + "@zag-js/dom-query": "0.79.1", + "@zag-js/form-utils": "0.79.1", + "@zag-js/number-utils": "0.79.1", + "@zag-js/types": "0.79.1", + "@zag-js/utils": "0.79.1" + } + }, + "node_modules/@zag-js/number-utils": { + "version": "0.79.1", + "resolved": "https://registry.npmjs.org/@zag-js/number-utils/-/number-utils-0.79.1.tgz", + "integrity": "sha512-SHmbXDkMBcTMtl+X7kQd55/a5JpRKzZZ2Gq1Ve8y2CoVKErX2mFHDR2nY8SBpwBO3J5/OoE5MTyNQ0slaRUi9w==", + "license": "MIT" + }, + "node_modules/@zag-js/numeric-range": { + "version": "0.79.1", + "resolved": "https://registry.npmjs.org/@zag-js/numeric-range/-/numeric-range-0.79.1.tgz", + "integrity": "sha512-4bwwjqi/o2AwbPNlP25LY2z6OX8y9unOg+V+TfXjtAL/Ml1q0CMuvle4CxVm/gNBedvP9TrbmYzpj6SfxiXRGA==", + "license": "MIT" + }, + "node_modules/@zag-js/pagination": { + "version": "0.79.1", + "resolved": "https://registry.npmjs.org/@zag-js/pagination/-/pagination-0.79.1.tgz", + "integrity": "sha512-kM93D+7kpHXz9Gea6ZkxywNBPVcCEfN1EhdJ/qQodvmHUoBpCR9/CiQFrxx1wznSz3W4Nagrg8LEqCu5+JjZwQ==", + "license": "MIT", + "dependencies": { + "@zag-js/anatomy": "0.79.1", + "@zag-js/core": "0.79.1", + "@zag-js/dom-query": "0.79.1", + "@zag-js/types": "0.79.1", + "@zag-js/utils": "0.79.1" + } + }, + "node_modules/@zag-js/pin-input": { + "version": "0.79.1", + "resolved": "https://registry.npmjs.org/@zag-js/pin-input/-/pin-input-0.79.1.tgz", + "integrity": "sha512-uZ+rDDuLH1x03kA0rRa+vBjZT3p4c7ytoXp/XP2bcKw+QlrBtjijmXED3kw4Bp/oOkov4jRWERtGqj+8Ptz1tA==", + "license": "MIT", + "dependencies": { + "@zag-js/anatomy": "0.79.1", + "@zag-js/core": "0.79.1", + "@zag-js/dom-event": "0.79.1", + "@zag-js/dom-query": "0.79.1", + "@zag-js/form-utils": "0.79.1", + "@zag-js/types": "0.79.1", + "@zag-js/utils": "0.79.1" + } + }, + "node_modules/@zag-js/popover": { + "version": "0.79.1", + "resolved": "https://registry.npmjs.org/@zag-js/popover/-/popover-0.79.1.tgz", + "integrity": "sha512-DCTwrL4PBQX0LVmn6GIv3t931QKZxztkzIZ6jKD1Tn/tu+d6dkdAaw8Ebp55xuK2mKKA9k0eKeUdI3p4ja91Hw==", + "license": "MIT", + "dependencies": { + "@zag-js/anatomy": "0.79.1", + "@zag-js/aria-hidden": "0.79.1", + "@zag-js/core": "0.79.1", + "@zag-js/dismissable": "0.79.1", + "@zag-js/dom-query": "0.79.1", + "@zag-js/focus-trap": "0.79.1", + "@zag-js/popper": "0.79.1", + "@zag-js/remove-scroll": "0.79.1", + "@zag-js/types": "0.79.1", + "@zag-js/utils": "0.79.1" + } + }, + "node_modules/@zag-js/popper": { + "version": "0.79.1", + "resolved": "https://registry.npmjs.org/@zag-js/popper/-/popper-0.79.1.tgz", + "integrity": "sha512-kvvkB4Z1auLguPWi5ed36E14V3Vs57dNjD9p6Kwugb/dYrGUXA1n7FTC6qgZ8IZKNF0xb5FN3Wx527u/n+OPwg==", + "license": "MIT", + "dependencies": { + "@floating-ui/dom": "1.6.12", + "@zag-js/dom-query": "0.79.1", + "@zag-js/utils": "0.79.1" + } + }, + "node_modules/@zag-js/popper/node_modules/@floating-ui/dom": { + "version": "1.6.12", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.12.tgz", + "integrity": "sha512-NP83c0HjokcGVEMeoStg317VD9W7eDlGK7457dMBANbKA6GJZdc7rjujdgqzTaz93jkGgc5P/jeWbaCHnMNc+w==", + "license": "MIT", + "dependencies": { + "@floating-ui/core": "^1.6.0", + "@floating-ui/utils": "^0.2.8" + } + }, + "node_modules/@zag-js/presence": { + "version": "0.79.1", + "resolved": "https://registry.npmjs.org/@zag-js/presence/-/presence-0.79.1.tgz", + "integrity": "sha512-YJPFfqFCXs6vMVT/1w5gI60RcnC/JUz+FZRVXA8ElffStn/73HeKNa7XORX2Q2noEkRGEU5LUtkHzoiSxsmVAA==", + "license": "MIT", + "dependencies": { + "@zag-js/core": "0.79.1", + "@zag-js/types": "0.79.1" + } + }, + "node_modules/@zag-js/progress": { + "version": "0.79.1", + "resolved": "https://registry.npmjs.org/@zag-js/progress/-/progress-0.79.1.tgz", + "integrity": "sha512-AsFoJOMyRdNW9ELhliMCqTNBvlKMvACQyolxzMn/5Lo6BsdDKGcGqTrhmc9OwgFYq9EAfrocrRs/ks2j6OGzaQ==", + "license": "MIT", + "dependencies": { + "@zag-js/anatomy": "0.79.1", + "@zag-js/core": "0.79.1", + "@zag-js/dom-query": "0.79.1", + "@zag-js/types": "0.79.1", + "@zag-js/utils": "0.79.1" + } + }, + "node_modules/@zag-js/qr-code": { + "version": "0.79.1", + "resolved": "https://registry.npmjs.org/@zag-js/qr-code/-/qr-code-0.79.1.tgz", + "integrity": "sha512-qkBvAUEQLm2gEUkFZMOL12xH9vB55Y0NEU2G7T9MlTsaRjkvRApzcqrFgL90+EYuvXVSHBYnXNPHhFTTMqCZ0A==", + "license": "MIT", + "dependencies": { + "@zag-js/anatomy": "0.79.1", + "@zag-js/core": "0.79.1", + "@zag-js/dom-query": "0.79.1", + "@zag-js/types": "0.79.1", + "@zag-js/utils": "0.79.1", + "proxy-memoize": "3.0.1", + "uqr": "0.1.2" + } + }, + "node_modules/@zag-js/radio-group": { + "version": "0.79.1", + "resolved": "https://registry.npmjs.org/@zag-js/radio-group/-/radio-group-0.79.1.tgz", + "integrity": "sha512-Lcci+UQVpqbvlJOxHMzxbAGILezBwedW3Q3SARs7AydLnikKh97CKidjEIsYdikN/fCb4dCtvAx5n3W2Flw7Pg==", + "license": "MIT", + "dependencies": { + "@zag-js/anatomy": "0.79.1", + "@zag-js/core": "0.79.1", + "@zag-js/dom-query": "0.79.1", + "@zag-js/element-rect": "0.79.1", + "@zag-js/focus-visible": "0.79.1", + "@zag-js/form-utils": "0.79.1", + "@zag-js/types": "0.79.1", + "@zag-js/utils": "0.79.1" + } + }, + "node_modules/@zag-js/rating-group": { + "version": "0.79.1", + "resolved": "https://registry.npmjs.org/@zag-js/rating-group/-/rating-group-0.79.1.tgz", + "integrity": "sha512-biwSdA42vmCW36Ys4Nr48uWt2tSmd0DHBhfo3yfH0cc8r6qDx85vj1TgHIOq89mPfrFLPvMR5/isWcw0bQpsdA==", + "license": "MIT", + "dependencies": { + "@zag-js/anatomy": "0.79.1", + "@zag-js/core": "0.79.1", + "@zag-js/dom-event": "0.79.1", + "@zag-js/dom-query": "0.79.1", + "@zag-js/form-utils": "0.79.1", + "@zag-js/types": "0.79.1", + "@zag-js/utils": "0.79.1" + } + }, + "node_modules/@zag-js/react": { + "version": "0.79.1", + "resolved": "https://registry.npmjs.org/@zag-js/react/-/react-0.79.1.tgz", + "integrity": "sha512-DHxBW/Z2PQiCFxjxUcfxOCeqdzCQMy8Gz54CaIzy1Nh18BJEqwaoVAT7FPRB49iFY8Nqi4xYibMzFXItNHTmMQ==", + "license": "MIT", + "dependencies": { + "@zag-js/core": "0.79.1", + "@zag-js/store": "0.79.1", + "@zag-js/types": "0.79.1", + "proxy-compare": "3.0.1" + }, + "peerDependencies": { + "react": ">=18.0.0", + "react-dom": ">=18.0.0" + } + }, + "node_modules/@zag-js/rect-utils": { + "version": "0.79.1", + "resolved": "https://registry.npmjs.org/@zag-js/rect-utils/-/rect-utils-0.79.1.tgz", + "integrity": "sha512-nkSOiRLzcICs2/lQbCZayTcJZLP1czirFDxClCxj+Nv/p4GkYIegEQHDNXy0tstrkJNr1hypPop0q8N3HqcHzA==", + "license": "MIT" + }, + "node_modules/@zag-js/remove-scroll": { + "version": "0.79.1", + "resolved": "https://registry.npmjs.org/@zag-js/remove-scroll/-/remove-scroll-0.79.1.tgz", + "integrity": "sha512-bBkS9ma49lNWZhqkl+B96PW107WD2MtJCQ14QzkoTBWHNCGYm8XoQg7tm/PuR+CuMsqpPul5NQgB8NO/dQIElw==", + "license": "MIT", + "dependencies": { + "@zag-js/dom-query": "0.79.1" + } + }, + "node_modules/@zag-js/scroll-snap": { + "version": "0.79.1", + "resolved": "https://registry.npmjs.org/@zag-js/scroll-snap/-/scroll-snap-0.79.1.tgz", + "integrity": "sha512-ImlGIEQMYfwaC1WJR04FoxjgCWHWmcxY4RR5SmkHJcCOMSoAFWRLsPfkHaBJawpgWx4vYMQmRjtuyXWdL92Tdw==", + "license": "MIT", + "dependencies": { + "@zag-js/dom-query": "0.79.1" + } + }, + "node_modules/@zag-js/select": { + "version": "0.79.1", + "resolved": "https://registry.npmjs.org/@zag-js/select/-/select-0.79.1.tgz", + "integrity": "sha512-0X6YW3ej+dmYDAgePvMgPSPJyVrdIQoaTBU1D5Kq3sPVk3wupSg3HGmBu1ckdLq7+Ijf3qWiESwLQFC6aRxWFw==", + "license": "MIT", + "dependencies": { + "@zag-js/anatomy": "0.79.1", + "@zag-js/collection": "0.79.1", + "@zag-js/core": "0.79.1", + "@zag-js/dismissable": "0.79.1", + "@zag-js/dom-event": "0.79.1", + "@zag-js/dom-query": "0.79.1", + "@zag-js/form-utils": "0.79.1", + "@zag-js/popper": "0.79.1", + "@zag-js/types": "0.79.1", + "@zag-js/utils": "0.79.1" + } + }, + "node_modules/@zag-js/signature-pad": { + "version": "0.79.1", + "resolved": "https://registry.npmjs.org/@zag-js/signature-pad/-/signature-pad-0.79.1.tgz", + "integrity": "sha512-mfU3hccyfmHP29fNoeWYQYsV4qg7h32diyWNkM1zMYjjsoVwwtOROy3zAf7McNeYZgdDU8/XiDkriw7fnqFkAg==", + "license": "MIT", + "dependencies": { + "@zag-js/anatomy": "0.79.1", + "@zag-js/core": "0.79.1", + "@zag-js/dom-event": "0.79.1", + "@zag-js/dom-query": "0.79.1", + "@zag-js/types": "0.79.1", + "@zag-js/utils": "0.79.1", + "perfect-freehand": "^1.2.2" + } + }, + "node_modules/@zag-js/slider": { + "version": "0.79.1", + "resolved": "https://registry.npmjs.org/@zag-js/slider/-/slider-0.79.1.tgz", + "integrity": "sha512-fMMPge9walxA2+w54K4JXFHdUshTwhtU3DZp7xbi5Fmv1vzCEu8qUue3uC+rCMB7728/uj/Gh7i24zjRaJTsaw==", + "license": "MIT", + "dependencies": { + "@zag-js/anatomy": "0.79.1", + "@zag-js/core": "0.79.1", + "@zag-js/dom-event": "0.79.1", + "@zag-js/dom-query": "0.79.1", + "@zag-js/element-size": "0.79.1", + "@zag-js/form-utils": "0.79.1", + "@zag-js/numeric-range": "0.79.1", + "@zag-js/types": "0.79.1", + "@zag-js/utils": "0.79.1" + } + }, + "node_modules/@zag-js/splitter": { + "version": "0.79.1", + "resolved": "https://registry.npmjs.org/@zag-js/splitter/-/splitter-0.79.1.tgz", + "integrity": "sha512-GUnmAW7qt37nAyixckb+BKVgrvrjoi+nETgw0d1Q990oUCpYyUw6MdRbTpvO9w9TKOh7yydZC9zJLg3azSpDNA==", + "license": "MIT", + "dependencies": { + "@zag-js/anatomy": "0.79.1", + "@zag-js/core": "0.79.1", + "@zag-js/dom-event": "0.79.1", + "@zag-js/dom-query": "0.79.1", + "@zag-js/number-utils": "0.79.1", + "@zag-js/types": "0.79.1", + "@zag-js/utils": "0.79.1" + } + }, + "node_modules/@zag-js/steps": { + "version": "0.79.1", + "resolved": "https://registry.npmjs.org/@zag-js/steps/-/steps-0.79.1.tgz", + "integrity": "sha512-eexfVZEX3aeMxymjr1+cduTgfIUbxftf5Sa9HDK8HiC+BmlO/Blju/In7kn1EwXJZ7pgVcwDibuJjng8KJRJTg==", + "license": "MIT", + "dependencies": { + "@zag-js/anatomy": "0.79.1", + "@zag-js/core": "0.79.1", + "@zag-js/dom-query": "0.79.1", + "@zag-js/types": "0.79.1", + "@zag-js/utils": "0.79.1" + } + }, + "node_modules/@zag-js/store": { + "version": "0.79.1", + "resolved": "https://registry.npmjs.org/@zag-js/store/-/store-0.79.1.tgz", + "integrity": "sha512-mcXuiS7iqPTFU5sfli4v4kzBJcEAL3L3SVe8l9XezXED6UXYCGHjGQqpNuzsBfY29GPwUOwcF8FfFizxpCL1mQ==", + "license": "MIT", + "dependencies": { + "proxy-compare": "3.0.1" + } + }, + "node_modules/@zag-js/switch": { + "version": "0.79.1", + "resolved": "https://registry.npmjs.org/@zag-js/switch/-/switch-0.79.1.tgz", + "integrity": "sha512-i+32oau7E1PQyHM6iIOxWDYjMgYHFoiDPg+DzMFQgykw49sXO5y4Ux+406MjXnqaGDA7nI8UhDOGqIl+AhvYKQ==", + "license": "MIT", + "dependencies": { + "@zag-js/anatomy": "0.79.1", + "@zag-js/core": "0.79.1", + "@zag-js/dom-event": "0.79.1", + "@zag-js/dom-query": "0.79.1", + "@zag-js/focus-visible": "0.79.1", + "@zag-js/form-utils": "0.79.1", + "@zag-js/types": "0.79.1", + "@zag-js/utils": "0.79.1" + } + }, + "node_modules/@zag-js/tabs": { + "version": "0.79.1", + "resolved": "https://registry.npmjs.org/@zag-js/tabs/-/tabs-0.79.1.tgz", + "integrity": "sha512-ZFJoggGOhvHszxZacXIvBKV2eKFOjJy5DT123d894RZjDy0yMOZwbN/J2T+dMw4ZttuetLvFJ6HAk26XR7iPhQ==", + "license": "MIT", + "dependencies": { + "@zag-js/anatomy": "0.79.1", + "@zag-js/core": "0.79.1", + "@zag-js/dom-event": "0.79.1", + "@zag-js/dom-query": "0.79.1", + "@zag-js/element-rect": "0.79.1", + "@zag-js/types": "0.79.1", + "@zag-js/utils": "0.79.1" + } + }, + "node_modules/@zag-js/tags-input": { + "version": "0.79.1", + "resolved": "https://registry.npmjs.org/@zag-js/tags-input/-/tags-input-0.79.1.tgz", + "integrity": "sha512-3gPkNpk45eMaoERY81nEVgeW5S1hOug8rz1ZCJ/NBU1MWy/vuIcOyqWV7Ccc6Hxu6X07ujSyEz0MIdy6ddVcbg==", + "license": "MIT", + "dependencies": { + "@zag-js/anatomy": "0.79.1", + "@zag-js/auto-resize": "0.79.1", + "@zag-js/core": "0.79.1", + "@zag-js/dom-event": "0.79.1", + "@zag-js/dom-query": "0.79.1", + "@zag-js/form-utils": "0.79.1", + "@zag-js/interact-outside": "0.79.1", + "@zag-js/live-region": "0.79.1", + "@zag-js/types": "0.79.1", + "@zag-js/utils": "0.79.1" + } + }, + "node_modules/@zag-js/text-selection": { + "version": "0.79.1", + "resolved": "https://registry.npmjs.org/@zag-js/text-selection/-/text-selection-0.79.1.tgz", + "integrity": "sha512-lm+CzcNkX6HhbDh/msawCUKvbsw2ArS+FswDoet6ERG4hfz+6aCmw4LACUqYTsNd97usIdPEw8FeL9EakL+lMw==", + "license": "MIT", + "dependencies": { + "@zag-js/dom-query": "0.79.1" + } + }, + "node_modules/@zag-js/time-picker": { + "version": "0.79.1", + "resolved": "https://registry.npmjs.org/@zag-js/time-picker/-/time-picker-0.79.1.tgz", + "integrity": "sha512-3OeDDhMzoWjjmHnyF1ranvIGbC5ZM8tA+sNXm6cwGneqL4PpA3ngjGYSB1G6VphI/3ovV6NwoRjs/QYuncCaZw==", + "license": "MIT", + "dependencies": { + "@zag-js/anatomy": "0.79.1", + "@zag-js/core": "0.79.1", + "@zag-js/dismissable": "0.79.1", + "@zag-js/dom-event": "^0.79.1", + "@zag-js/dom-query": "0.79.1", + "@zag-js/popper": "0.79.1", + "@zag-js/types": "0.79.1", + "@zag-js/utils": "0.79.1" + }, + "peerDependencies": { + "@internationalized/date": ">=3.0.0" + } + }, + "node_modules/@zag-js/timer": { + "version": "0.79.1", + "resolved": "https://registry.npmjs.org/@zag-js/timer/-/timer-0.79.1.tgz", + "integrity": "sha512-NU93fyq+fDKqkdxu73j7HczWZdbihnUNpO6h9S08he4tTbw4NPFyQxh3mIDXeFrNVk6R+Mr4CSnN7KpfbeL5yg==", + "license": "MIT", + "dependencies": { + "@zag-js/anatomy": "0.79.1", + "@zag-js/core": "0.79.1", + "@zag-js/dom-query": "0.79.1", + "@zag-js/types": "0.79.1", + "@zag-js/utils": "0.79.1" + } + }, + "node_modules/@zag-js/toast": { + "version": "0.79.1", + "resolved": "https://registry.npmjs.org/@zag-js/toast/-/toast-0.79.1.tgz", + "integrity": "sha512-tjtjCOlEKFabXNxKbfPKkGIm941e44L8vQGJWFgI+K+aJyO0SkQYc2RV/bqPGKFL8RMncqX8o6OEdFSzKOIZIA==", + "license": "MIT", + "dependencies": { + "@zag-js/anatomy": "0.79.1", + "@zag-js/core": "0.79.1", + "@zag-js/dismissable": "0.79.1", + "@zag-js/dom-event": "0.79.1", + "@zag-js/dom-query": "0.79.1", + "@zag-js/types": "0.79.1", + "@zag-js/utils": "0.79.1" + } + }, + "node_modules/@zag-js/toggle-group": { + "version": "0.79.1", + "resolved": "https://registry.npmjs.org/@zag-js/toggle-group/-/toggle-group-0.79.1.tgz", + "integrity": "sha512-Fh611w1OxADNvZ+QYMoHr6+f1kr40gxXApQYIa7ug3RuCP0HFwuqi97PsjEckxhFVAhjNmt1G0qv8JWM5P7fnA==", + "license": "MIT", + "dependencies": { + "@zag-js/anatomy": "0.79.1", + "@zag-js/core": "0.79.1", + "@zag-js/dom-event": "0.79.1", + "@zag-js/dom-query": "0.79.1", + "@zag-js/types": "0.79.1", + "@zag-js/utils": "0.79.1" + } + }, + "node_modules/@zag-js/tooltip": { + "version": "0.79.1", + "resolved": "https://registry.npmjs.org/@zag-js/tooltip/-/tooltip-0.79.1.tgz", + "integrity": "sha512-Lehi+kiWPt2WAzMD56Vmcvs+kvbFQcMui0MZhjM79NN1O8yjg+AxFiZuVgALVgkDbmPwhoR2ZWbom+1sgUPfcQ==", + "license": "MIT", + "dependencies": { + "@zag-js/anatomy": "0.79.1", + "@zag-js/core": "0.79.1", + "@zag-js/dom-event": "0.79.1", + "@zag-js/dom-query": "0.79.1", + "@zag-js/focus-visible": "0.79.1", + "@zag-js/popper": "0.79.1", + "@zag-js/types": "0.79.1", + "@zag-js/utils": "0.79.1" + } + }, + "node_modules/@zag-js/tree-view": { + "version": "0.79.1", + "resolved": "https://registry.npmjs.org/@zag-js/tree-view/-/tree-view-0.79.1.tgz", + "integrity": "sha512-fwi5P7IKxETciyS/hBIFipUfXThmfTNom6NwNwQ7Mo3jPJ3UawWzs3LC00prVVuI0OMQEzLRLMdxf6XtJxoxCg==", + "license": "MIT", + "dependencies": { + "@zag-js/anatomy": "0.79.1", + "@zag-js/collection": "0.79.1", + "@zag-js/core": "0.79.1", + "@zag-js/dom-event": "0.79.1", + "@zag-js/dom-query": "0.79.1", + "@zag-js/types": "0.79.1", + "@zag-js/utils": "0.79.1" + } + }, + "node_modules/@zag-js/types": { + "version": "0.79.1", + "resolved": "https://registry.npmjs.org/@zag-js/types/-/types-0.79.1.tgz", + "integrity": "sha512-TwzaNwiEYpk/7XbUL8zqFiUtd/9Ru0zceuuisYRuNIAN2kBAaKSljx2VvymtAOgbP7IMX+nWcrWN1PywKT7hlw==", + "license": "MIT", + "dependencies": { + "csstype": "3.1.3" + } + }, + "node_modules/@zag-js/utils": { + "version": "0.79.1", + "resolved": "https://registry.npmjs.org/@zag-js/utils/-/utils-0.79.1.tgz", + "integrity": "sha512-jW8+qG16vO2vGHWuf5h4ONISMrSJlapXUQqYhZW8rXP8uDfU5vh6sk2qTGL8i8G2TV8sFb7Xj29gyx9roOrBmQ==", + "license": "MIT" + }, "node_modules/acorn": { "version": "8.14.0", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", @@ -4781,8 +5703,7 @@ "node_modules/csstype": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", - "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", - "devOptional": true + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" }, "node_modules/cva": { "version": "1.0.0-beta.1", @@ -5749,6 +6670,15 @@ "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", "dev": true }, + "node_modules/focus-trap": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/focus-trap/-/focus-trap-7.6.2.tgz", + "integrity": "sha512-9FhUxK1hVju2+AiQIDJ5Dd//9R2n2RAfJ0qfhF4IHGHgcoEUTMpbTeG/zbEuwaiYXfuAH6XE0/aCyxDdRM+W5w==", + "license": "MIT", + "dependencies": { + "tabbable": "^6.2.0" + } + }, "node_modules/for-each": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", @@ -6298,14 +7228,6 @@ "node": ">= 0.4" } }, - "node_modules/invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", - "dependencies": { - "loose-envify": "^1.0.0" - } - }, "node_modules/is-array-buffer": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", @@ -6802,7 +7724,8 @@ "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true }, "node_modules/js-yaml": { "version": "4.1.0", @@ -7135,6 +8058,7 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dev": true, "dependencies": { "js-tokens": "^3.0.0 || ^4.0.0" }, @@ -7789,6 +8713,12 @@ "node": ">= 14.16" } }, + "node_modules/perfect-freehand": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/perfect-freehand/-/perfect-freehand-1.2.2.tgz", + "integrity": "sha512-eh31l019WICQ03pkF3FSzHxB8n07ItqIQ++G5UV8JX0zVOXzgTGCqnRR0jJ2h9U8/2uW4W4mtGJELt9kEV0CFQ==", + "license": "MIT" + }, "node_modules/picocolors": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", @@ -8208,6 +9138,21 @@ "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", "dev": true }, + "node_modules/proxy-compare": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/proxy-compare/-/proxy-compare-3.0.1.tgz", + "integrity": "sha512-V9plBAt3qjMlS1+nC8771KNf6oJ12gExvaxnNzN/9yVRLdTv/lc+oJlnSzrdYDAvBfTStPCoiaCOTmTs0adv7Q==", + "license": "MIT" + }, + "node_modules/proxy-memoize": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/proxy-memoize/-/proxy-memoize-3.0.1.tgz", + "integrity": "sha512-VDdG/VYtOgdGkWJx7y0o7p+zArSf2383Isci8C+BP3YXgMYDoPd3cCBjw0JdWb6YBb9sFiOPbAADDVTPJnh+9g==", + "license": "MIT", + "dependencies": { + "proxy-compare": "^3.0.0" + } + }, "node_modules/punycode": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", @@ -8238,46 +9183,24 @@ ] }, "node_modules/react": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", - "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/react/-/react-19.0.0.tgz", + "integrity": "sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ==", "license": "MIT", - "dependencies": { - "loose-envify": "^1.1.0" - }, "engines": { "node": ">=0.10.0" } }, "node_modules/react-dom": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", - "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.0.0.tgz", + "integrity": "sha512-4GV5sHFG0e/0AD4X+ySy6UJd3jVl1iNsNHdpad0qhABJ11twS3TTBnseqsKurKcsNqCEFeGL3uLpVChpIO3QfQ==", "license": "MIT", "dependencies": { - "loose-envify": "^1.1.0", - "scheduler": "^0.23.2" - }, - "peerDependencies": { - "react": "^18.3.1" - } - }, - "node_modules/react-fast-compare": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.2.tgz", - "integrity": "sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==" - }, - "node_modules/react-helmet-async": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/react-helmet-async/-/react-helmet-async-2.0.5.tgz", - "integrity": "sha512-rYUYHeus+i27MvFE+Jaa4WsyBKGkL6qVgbJvSBoX8mbsWoABJXdEO0bZyi0F6i+4f0NuIb8AvqPMj3iXFHkMwg==", - "dependencies": { - "invariant": "^2.2.4", - "react-fast-compare": "^3.2.2", - "shallowequal": "^1.1.0" + "scheduler": "^0.25.0" }, "peerDependencies": { - "react": "^16.6.0 || ^17.0.0 || ^18.0.0" + "react": "^19.0.0" } }, "node_modules/react-hook-form": { @@ -8737,13 +9660,10 @@ } }, "node_modules/scheduler": { - "version": "0.23.2", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", - "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", - "license": "MIT", - "dependencies": { - "loose-envify": "^1.1.0" - } + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.25.0.tgz", + "integrity": "sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA==", + "license": "MIT" }, "node_modules/scslre": { "version": "0.3.0", @@ -8806,11 +9726,6 @@ "node": ">= 0.4" } }, - "node_modules/shallowequal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz", - "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==" - }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -9720,6 +10635,12 @@ "browserslist": ">= 4.21.0" } }, + "node_modules/uqr": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/uqr/-/uqr-0.1.2.tgz", + "integrity": "sha512-MJu7ypHq6QasgF5YRTjqscSzQp/W11zoUk6kvmlH+fmWEs63Y0Eib13hYFwAzagRJcVY8WVnlV+eBDUGMJ5IbA==", + "license": "MIT" + }, "node_modules/uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", diff --git a/package.json b/package.json index 441532ce..6f0cbdf9 100644 --- a/package.json +++ b/package.json @@ -23,9 +23,8 @@ "i18next": "^24.2.0", "openapi-fetch": "^0.13.3", "openapi-typescript-fetch": "^2.0.0", - "react": "^18.3.1", - "react-dom": "^18.3.1", - "react-helmet-async": "^2.0.5", + "react": "^19.0.0", + "react-dom": "^19.0.0", "react-hook-form": "^7.54.2", "react-i18next": "^15.4.0", "react-icons": "^5.4.0", @@ -43,8 +42,8 @@ "@testing-library/react": "^16.1.0", "@types/eslint__js": "^8.42.3", "@types/node": "^22.9.0", - "@types/react": "^18.3.12", - "@types/react-dom": "^18.3.1", + "@types/react": "^19.0.3", + "@types/react-dom": "^19.0.2", "@vitejs/plugin-react-swc": "^3.7.2", "@vitest/coverage-v8": "^2.1.4", "autoprefixer": "^10.4.20", diff --git a/src/components/NavigationBar/NavigationBar.tsx b/src/components/NavigationBar/NavigationBar.tsx index 9177ae27..61903bf3 100644 --- a/src/components/NavigationBar/NavigationBar.tsx +++ b/src/components/NavigationBar/NavigationBar.tsx @@ -22,7 +22,7 @@ export interface NavigationBarProps { /** HTML Element refs */ refs?: { - langMenuButtonRef: React.RefObject; + langMenuButtonRef: React.RefObject; }; } diff --git a/src/components/OpportunityDetails/OpportunityDetails.tsx b/src/components/OpportunityDetails/OpportunityDetails.tsx index 4bef17fd..2304ecc9 100644 --- a/src/components/OpportunityDetails/OpportunityDetails.tsx +++ b/src/components/OpportunityDetails/OpportunityDetails.tsx @@ -13,7 +13,7 @@ import { useEnvironment } from '@/hooks/useEnvironment'; import { type MahdollisuusTyyppi } from '@/routes/types'; import { useToolStore } from '@/stores/useToolStore'; import { getLocalizedText } from '@/utils'; -import React from 'react'; +import React, { JSX } from 'react'; import { useTranslation } from 'react-i18next'; import { MdCompareArrows, MdOutlinePrint, MdOutlineRoute, MdOutlineShare } from 'react-icons/md'; diff --git a/src/components/OsaamisSuosittelija/OsaamisSuosittelija.tsx b/src/components/OsaamisSuosittelija/OsaamisSuosittelija.tsx index dc44f8e2..b662b1b0 100644 --- a/src/components/OsaamisSuosittelija/OsaamisSuosittelija.tsx +++ b/src/components/OsaamisSuosittelija/OsaamisSuosittelija.tsx @@ -77,7 +77,7 @@ export const OsaamisSuosittelija = ({ }); }, [value]); - const abortController = React.useRef(); + const abortController = React.useRef(null); React.useEffect(() => { abortController.current?.abort(); diff --git a/src/components/ScrollHeading/ScrollHeading.tsx b/src/components/ScrollHeading/ScrollHeading.tsx index e2d11f78..3e573976 100644 --- a/src/components/ScrollHeading/ScrollHeading.tsx +++ b/src/components/ScrollHeading/ScrollHeading.tsx @@ -1,4 +1,5 @@ import { tidyClasses as tc } from '@jod/design-system'; +import { JSX } from 'react'; export interface ScrollHeadingProps { title: string; diff --git a/src/components/Title/Title.test.tsx b/src/components/Title/Title.test.tsx index 44978078..76704fc9 100644 --- a/src/components/Title/Title.test.tsx +++ b/src/components/Title/Title.test.tsx @@ -1,19 +1,10 @@ import { render, waitFor } from '@testing-library/react'; import { expect, test } from 'vitest'; -import { HelmetProvider } from 'react-helmet-async'; import { Title } from './Title'; -const Wrapper = ({ children }: React.PropsWithChildren) => { - return {children}; -}; - test('document should have given title', async () => { - render( - - - </Wrapper>, - ); + render(<Title value="Given Title" />); await waitFor(() => { expect(document.title).toEqual('Given Title'); }); diff --git a/src/components/Title/Title.tsx b/src/components/Title/Title.tsx index 5070ae74..d282e1b1 100644 --- a/src/components/Title/Title.tsx +++ b/src/components/Title/Title.tsx @@ -1,11 +1,5 @@ -import { Helmet } from 'react-helmet-async'; - interface TitleProps { value: string; } -export const Title = ({ value }: TitleProps) => ( - <Helmet> - <title>{value} - -); +export const Title = ({ value }: TitleProps) => {value}; diff --git a/src/hooks/useMenuClickHandler/index.ts b/src/hooks/useMenuClickHandler/index.ts index 2244f501..e1d0386e 100644 --- a/src/hooks/useMenuClickHandler/index.ts +++ b/src/hooks/useMenuClickHandler/index.ts @@ -3,10 +3,9 @@ import React from 'react'; export const useMenuClickHandler = ( handleOutsideClick: (event: MouseEvent) => void, menuButtonRef: - | React.RefObject - | React.RefObject - | React.RefObject - | null, + | React.RefObject + | React.RefObject + | React.RefObject, ) => { const ref = React.useRef(null); diff --git a/src/index.css b/src/index.css index 2a16dad4..31e0e4d3 100644 --- a/src/index.css +++ b/src/index.css @@ -1,5 +1,5 @@ @import 'tailwindcss/base'; -@import '@jod/design-system/dist/style.css'; +@import '@jod/design-system/dist/main.css'; @tailwind components; @tailwind utilities; diff --git a/src/main.tsx b/src/main.tsx index 92a564b6..748cf059 100644 --- a/src/main.tsx +++ b/src/main.tsx @@ -1,6 +1,5 @@ import React from 'react'; import { createRoot } from 'react-dom/client'; -import { HelmetProvider } from 'react-helmet-async'; import { createBrowserRouter, RouterProvider } from 'react-router'; import { Metric } from 'web-vitals'; import { ErrorNoteProvider } from './components/ErrorNote'; @@ -35,10 +34,8 @@ if (process.env.NODE_ENV !== 'production') { root.render( - - - - - + + + , ); diff --git a/src/routes/Profile/utils.tsx b/src/routes/Profile/utils.tsx index 77eacb2f..fa2d5e7a 100644 --- a/src/routes/Profile/utils.tsx +++ b/src/routes/Profile/utils.tsx @@ -1,5 +1,6 @@ import { components } from '@/api/schema'; import { type RoutesNavigationListProps } from '@/components'; +import { JSX } from 'react'; import { Link, LinkProps } from 'react-router'; export const mapNavigationRoutes = (routes: RoutesNavigationListProps['routes']) => diff --git a/src/routes/Root/Root.tsx b/src/routes/Root/Root.tsx index 7b001387..d51e2713 100644 --- a/src/routes/Root/Root.tsx +++ b/src/routes/Root/Root.tsx @@ -13,10 +13,10 @@ import { ErrorNote, useErrorNote } from '@/components/ErrorNote'; import { MegaMenu } from '@/components/MegaMenu/MegaMenu'; import { ActionBarContext } from '@/hooks/useActionBar'; import { useMenuClickHandler } from '@/hooks/useMenuClickHandler'; +import i18n from '@/i18n/config'; import { useToolStore } from '@/stores/useToolStore'; import { Footer, SkipLink, useMediaQueries } from '@jod/design-system'; import React from 'react'; -import { Helmet } from 'react-helmet-async'; import { useTranslation } from 'react-i18next'; import { MdClose, MdMenu } from 'react-icons/md'; import { NavLink, Outlet, ScrollRestoration, useLoaderData } from 'react-router'; @@ -170,13 +170,14 @@ const Root = () => { logoutForm.current?.submit(); }; + React.useEffect(() => { + document.documentElement.setAttribute('lang', i18n.language); + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [i18n.language]); + return ( - <> - - - - - +
+
); }; diff --git a/src/routes/Tool/Tool.tsx b/src/routes/Tool/Tool.tsx index e8a33a60..0c5961b8 100644 --- a/src/routes/Tool/Tool.tsx +++ b/src/routes/Tool/Tool.tsx @@ -161,7 +161,7 @@ const YourOpportunitiesPagination = ({ className, ariaLabel, }: { - scrollRef: React.RefObject; + scrollRef: React.RefObject; className?: string; ariaLabel?: string; }) => {