From c167beff628f777dac81c3f5813f758502514053 Mon Sep 17 00:00:00 2001 From: Arturo Gomez Date: Mon, 4 May 2026 19:40:09 -0600 Subject: [PATCH 01/16] =?UTF-8?q?chore(frontend):=20assets=20y=20configura?= =?UTF-8?q?ci=C3=B3n=20de=20marca=20Kairo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/frontend/package-lock.json | 2243 +++++++++++++++-- .../backend/src/main/frontend/package.json | 3 +- .../src/main/frontend/public/brand-lockup.png | Bin 0 -> 19088 bytes .../src/main/frontend/public/index.html | 4 +- .../src/main/frontend/tailwind.config.js | 17 + brand/Kairo Redesign.html | 1091 ++++++++ brand/brand-lockup.png | Bin 0 -> 19088 bytes brand/kairo-logo-b3-variations.html | 659 +++++ 8 files changed, 3809 insertions(+), 208 deletions(-) create mode 100644 MtdrSpring/backend/src/main/frontend/public/brand-lockup.png create mode 100644 brand/Kairo Redesign.html create mode 100644 brand/brand-lockup.png create mode 100644 brand/kairo-logo-b3-variations.html diff --git a/MtdrSpring/backend/src/main/frontend/package-lock.json b/MtdrSpring/backend/src/main/frontend/package-lock.json index d6fa16fc5..145baac22 100644 --- a/MtdrSpring/backend/src/main/frontend/package-lock.json +++ b/MtdrSpring/backend/src/main/frontend/package-lock.json @@ -15,11 +15,20 @@ "recharts": "^2.12.7" }, "devDependencies": { + "@testing-library/jest-dom": "^5.17.0", + "@testing-library/react": "^13.4.0", + "@testing-library/user-event": "^13.5.0", "autoprefixer": "^10.4.17", "postcss": "^8.4.35", "tailwindcss": "^3.4.1" } }, + "node_modules/@adobe/css-tools": { + "version": "4.4.4", + "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.4.4.tgz", + "integrity": "sha512-Elp+iwUx5rN5+Y8xLt5/GRoG20WGoDCQ/1Fb+1LiGtvwbDavuSk0jhD/eZdckHAuzcDzccnkv+rEjyWfRx18gg==", + "dev": true + }, "node_modules/@alloc/quick-lru": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", @@ -44,11 +53,13 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.5.tgz", - "integrity": "sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ==", + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.0.tgz", + "integrity": "sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==", "dependencies": { - "@babel/highlight": "^7.22.5" + "@babel/helper-validator-identifier": "^7.28.5", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" }, "engines": { "node": ">=6.9.0" @@ -437,9 +448,9 @@ } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz", - "integrity": "sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", + "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", "engines": { "node": ">=6.9.0" } @@ -479,19 +490,6 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/highlight": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.5.tgz", - "integrity": "sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw==", - "dependencies": { - "@babel/helper-validator-identifier": "^7.22.5", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/parser": { "version": "7.22.5", "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.5.tgz", @@ -2685,6 +2683,15 @@ "node": ">=8" } }, + "node_modules/@jest/diff-sequences": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/@jest/diff-sequences/-/diff-sequences-30.3.0.tgz", + "integrity": "sha512-cG51MVnLq1ecVUaQ3fr6YuuAOitHK1S4WUJHnsPFE/quQr33ADUx1FfrTCpMCRxvy0Yr9BThKpDjSlcTi91tMA==", + "dev": true, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, "node_modules/@jest/environment": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.5.1.tgz", @@ -2699,6 +2706,18 @@ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, + "node_modules/@jest/expect-utils": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-30.3.0.tgz", + "integrity": "sha512-j0+W5iQQ8hBh7tHZkTQv3q2Fh/M7Je72cIsYqC4OaktgtO7v1So9UTjp6uPBHIaB6beoF/RRsCgMJKvti0wADA==", + "dev": true, + "dependencies": { + "@jest/get-type": "30.1.0" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, "node_modules/@jest/fake-timers": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.5.1.tgz", @@ -2715,6 +2734,15 @@ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, + "node_modules/@jest/get-type": { + "version": "30.1.0", + "resolved": "https://registry.npmjs.org/@jest/get-type/-/get-type-30.1.0.tgz", + "integrity": "sha512-eMbZE2hUnx1WV0pmURZY9XoXPkUYjpc55mb0CrhtdWLtzMQPFvu/rZkTLZFTsdaVQa+Tr4eWAteqcUzoawq/uA==", + "dev": true, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, "node_modules/@jest/globals": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-27.5.1.tgz", @@ -2728,6 +2756,28 @@ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, + "node_modules/@jest/pattern": { + "version": "30.0.1", + "resolved": "https://registry.npmjs.org/@jest/pattern/-/pattern-30.0.1.tgz", + "integrity": "sha512-gWp7NfQW27LaBQz3TITS8L7ZCQ0TLvtmI//4OwlQRx4rnWxcPNIYjxZpDcN4+UlGxgm3jS5QPz8IPTCkb59wZA==", + "dev": true, + "dependencies": { + "@types/node": "*", + "jest-regex-util": "30.0.1" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/@jest/pattern/node_modules/jest-regex-util": { + "version": "30.0.1", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-30.0.1.tgz", + "integrity": "sha512-jHEQgBXAgc+Gh4g0p3bCevgRCVRkB4VB70zhoAE48gxeSr1hfUOsM/C2WoJgVL7Eyg//hudYENbm3Ne+/dRVVA==", + "dev": true, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, "node_modules/@jest/reporters": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-27.5.1.tgz", @@ -3584,6 +3634,247 @@ "url": "https://github.com/sponsors/gregberge" } }, + "node_modules/@testing-library/dom": { + "version": "10.4.1", + "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-10.4.1.tgz", + "integrity": "sha512-o4PXJQidqJl82ckFaXUeoAW+XysPLauYI43Abki5hABd853iMhitooc6znOnczgbTYmEP6U6/y1ZyKAIsvMKGg==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/code-frame": "^7.10.4", + "@babel/runtime": "^7.12.5", + "@types/aria-query": "^5.0.1", + "aria-query": "5.3.0", + "dom-accessibility-api": "^0.5.9", + "lz-string": "^1.5.0", + "picocolors": "1.1.1", + "pretty-format": "^27.0.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@testing-library/jest-dom": { + "version": "5.17.0", + "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-5.17.0.tgz", + "integrity": "sha512-ynmNeT7asXyH3aSVv4vvX4Rb+0qjOhdNHnO/3vuZNqPmhDpV/+rCSGwQ7bLcmU2cJ4dvoheIO85LQj0IbJHEtg==", + "dev": true, + "dependencies": { + "@adobe/css-tools": "^4.0.1", + "@babel/runtime": "^7.9.2", + "@types/testing-library__jest-dom": "^5.9.1", + "aria-query": "^5.0.0", + "chalk": "^3.0.0", + "css.escape": "^1.5.1", + "dom-accessibility-api": "^0.5.6", + "lodash": "^4.17.15", + "redent": "^3.0.0" + }, + "engines": { + "node": ">=8", + "npm": ">=6", + "yarn": ">=1" + } + }, + "node_modules/@testing-library/jest-dom/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@testing-library/jest-dom/node_modules/chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@testing-library/jest-dom/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@testing-library/jest-dom/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@testing-library/jest-dom/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@testing-library/jest-dom/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@testing-library/react": { + "version": "13.4.0", + "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-13.4.0.tgz", + "integrity": "sha512-sXOGON+WNTh3MLE9rve97ftaZukN3oNf2KjDy7YTx6hcTO2uuLHuCGynMDhFwGw/jYf4OJ2Qk0i4i79qMNNkyw==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.12.5", + "@testing-library/dom": "^8.5.0", + "@types/react-dom": "^18.0.0" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/@testing-library/react/node_modules/@testing-library/dom": { + "version": "8.20.1", + "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-8.20.1.tgz", + "integrity": "sha512-/DiOQ5xBxgdYRC8LNk7U+RWat0S3qRLeIw3ZIkMQ9kkVlRmwD/Eg8k8CqIpD6GW7u20JIUOfMKbxtiLutpjQ4g==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.10.4", + "@babel/runtime": "^7.12.5", + "@types/aria-query": "^5.0.1", + "aria-query": "5.1.3", + "chalk": "^4.1.0", + "dom-accessibility-api": "^0.5.9", + "lz-string": "^1.5.0", + "pretty-format": "^27.0.2" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@testing-library/react/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@testing-library/react/node_modules/aria-query": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.1.3.tgz", + "integrity": "sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==", + "dev": true, + "dependencies": { + "deep-equal": "^2.0.5" + } + }, + "node_modules/@testing-library/react/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@testing-library/react/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@testing-library/react/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@testing-library/react/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@testing-library/react/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@testing-library/user-event": { + "version": "13.5.0", + "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-13.5.0.tgz", + "integrity": "sha512-5Kwtbo3Y/NowpkbRuSepbyMFkZmHgD+vPzYB/RJ4oxt5Gj/avFFBYjhw27cqSVPVw/3a67NK1PbiIr9k4Gwmdg==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.12.5" + }, + "engines": { + "node": ">=10", + "npm": ">=6" + }, + "peerDependencies": { + "@testing-library/dom": ">=7.21.4" + } + }, "node_modules/@tootallnate/once": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", @@ -3600,6 +3891,12 @@ "node": ">=10.13.0" } }, + "node_modules/@types/aria-query": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.4.tgz", + "integrity": "sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==", + "dev": true + }, "node_modules/@types/babel__core": { "version": "7.20.1", "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.1.tgz", @@ -3791,25 +4088,301 @@ "@types/node": "*" } }, - "node_modules/@types/istanbul-lib-coverage": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", - "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==" - }, - "node_modules/@types/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==" + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", + "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/jest": { + "version": "30.0.0", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-30.0.0.tgz", + "integrity": "sha512-XTYugzhuwqWjws0CVz8QpM36+T+Dz5mTEBKhNs/esGLnCIlGdRy+Dq78NRjd7ls7r8BC8ZRMOrKlkO1hU0JOwA==", + "dev": true, + "dependencies": { + "expect": "^30.0.0", + "pretty-format": "^30.0.0" + } + }, + "node_modules/@types/jest/node_modules/@jest/schemas": { + "version": "30.0.5", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-30.0.5.tgz", + "integrity": "sha512-DmdYgtezMkh3cpU8/1uyXakv3tJRcmcXxBOcO0tbaozPwpmh4YMsnWrQm9ZmZMfa5ocbxzbFk6O4bDPEc/iAnA==", + "dev": true, + "dependencies": { + "@sinclair/typebox": "^0.34.0" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/@types/jest/node_modules/@jest/types": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-30.3.0.tgz", + "integrity": "sha512-JHm87k7bA33hpBngtU8h6UBub/fqqA9uXfw+21j5Hmk7ooPHlboRNxHq0JcMtC+n8VJGP1mcfnD3Mk+XKe1oSw==", + "dev": true, + "dependencies": { + "@jest/pattern": "30.0.1", + "@jest/schemas": "30.0.5", + "@types/istanbul-lib-coverage": "^2.0.6", + "@types/istanbul-reports": "^3.0.4", + "@types/node": "*", + "@types/yargs": "^17.0.33", + "chalk": "^4.1.2" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/@types/jest/node_modules/@sinclair/typebox": { + "version": "0.34.49", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.34.49.tgz", + "integrity": "sha512-brySQQs7Jtn0joV8Xh9ZV/hZb9Ozb0pmazDIASBkYKCjXrXU3mpcFahmK/z4YDhGkQvP9mWJbVyahdtU5wQA+A==", + "dev": true + }, + "node_modules/@types/jest/node_modules/@types/yargs": { + "version": "17.0.35", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.35.tgz", + "integrity": "sha512-qUHkeCyQFxMXg79wQfTtfndEC+N9ZZg76HJftDJp+qH2tV7Gj4OJi7l+PiWwJ+pWtW8GwSmqsDj/oymhrTWXjg==", + "dev": true, + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/jest/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@types/jest/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@types/jest/node_modules/ci-info": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.4.0.tgz", + "integrity": "sha512-77PSwercCZU2Fc4sX94eF8k8Pxte6JAwL4/ICZLFjJLqegs7kCuAsqqj/70NQF6TvDpgFjkubQB2FW2ZZddvQg==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "engines": { + "node": ">=8" + } + }, + "node_modules/@types/jest/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@types/jest/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@types/jest/node_modules/expect": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-30.3.0.tgz", + "integrity": "sha512-1zQrciTiQfRdo7qJM1uG4navm8DayFa2TgCSRlzUyNkhcJ6XUZF3hjnpkyr3VhAqPH7i/9GkG7Tv5abz6fqz0Q==", + "dev": true, + "dependencies": { + "@jest/expect-utils": "30.3.0", + "@jest/get-type": "30.1.0", + "jest-matcher-utils": "30.3.0", + "jest-message-util": "30.3.0", + "jest-mock": "30.3.0", + "jest-util": "30.3.0" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/@types/jest/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@types/jest/node_modules/jest-diff": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-30.3.0.tgz", + "integrity": "sha512-n3q4PDQjS4LrKxfWB3Z5KNk1XjXtZTBwQp71OP0Jo03Z6V60x++K5L8k6ZrW8MY8pOFylZvHM0zsjS1RqlHJZQ==", + "dev": true, + "dependencies": { + "@jest/diff-sequences": "30.3.0", + "@jest/get-type": "30.1.0", + "chalk": "^4.1.2", + "pretty-format": "30.3.0" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/@types/jest/node_modules/jest-matcher-utils": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-30.3.0.tgz", + "integrity": "sha512-HEtc9uFQgaUHkC7nLSlQL3Tph4Pjxt/yiPvkIrrDCt9jhoLIgxaubo1G+CFOnmHYMxHwwdaSN7mkIFs6ZK8OhA==", + "dev": true, + "dependencies": { + "@jest/get-type": "30.1.0", + "chalk": "^4.1.2", + "jest-diff": "30.3.0", + "pretty-format": "30.3.0" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/@types/jest/node_modules/jest-message-util": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-30.3.0.tgz", + "integrity": "sha512-Z/j4Bo+4ySJ+JPJN3b2Qbl9hDq3VrXmnjjGEWD/x0BCXeOXPTV1iZYYzl2X8c1MaCOL+ewMyNBcm88sboE6YWw==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@jest/types": "30.3.0", + "@types/stack-utils": "^2.0.3", + "chalk": "^4.1.2", + "graceful-fs": "^4.2.11", + "picomatch": "^4.0.3", + "pretty-format": "30.3.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.6" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/@types/jest/node_modules/jest-mock": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-30.3.0.tgz", + "integrity": "sha512-OTzICK8CpE+t4ndhKrwlIdbM6Pn8j00lvmSmq5ejiO+KxukbLjgOflKWMn3KE34EZdQm5RqTuKj+5RIEniYhog==", + "dev": true, + "dependencies": { + "@jest/types": "30.3.0", + "@types/node": "*", + "jest-util": "30.3.0" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/@types/jest/node_modules/jest-util": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-30.3.0.tgz", + "integrity": "sha512-/jZDa00a3Sz7rdyu55NLrQCIrbyIkbBxareejQI315f/i8HjYN+ZWsDLLpoQSiUIEIyZF/R8fDg3BmB8AtHttg==", + "dev": true, + "dependencies": { + "@jest/types": "30.3.0", + "@types/node": "*", + "chalk": "^4.1.2", + "ci-info": "^4.2.0", + "graceful-fs": "^4.2.11", + "picomatch": "^4.0.3" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/@types/jest/node_modules/picomatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/@types/jest/node_modules/pretty-format": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.3.0.tgz", + "integrity": "sha512-oG4T3wCbfeuvljnyAzhBvpN45E8iOTXCU/TD3zXW80HA3dQ4ahdqMkWGiPWZvjpQwlbyHrPTWUAqUzGzv4l1JQ==", + "dev": true, "dependencies": { - "@types/istanbul-lib-coverage": "*" + "@jest/schemas": "30.0.5", + "ansi-styles": "^5.2.0", + "react-is": "^18.3.1" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "node_modules/@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "node_modules/@types/jest/node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@types/jest/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "dependencies": { - "@types/istanbul-lib-report": "*" + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, "node_modules/@types/json-schema": { @@ -3842,6 +4415,13 @@ "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.3.tgz", "integrity": "sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==" }, + "node_modules/@types/prop-types": { + "version": "15.7.15", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.15.tgz", + "integrity": "sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==", + "dev": true, + "peer": true + }, "node_modules/@types/q": { "version": "1.5.5", "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.5.tgz", @@ -3857,6 +4437,26 @@ "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==" }, + "node_modules/@types/react": { + "version": "18.3.28", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.28.tgz", + "integrity": "sha512-z9VXpC7MWrhfWipitjNdgCauoMLRdIILQsAEV+ZesIzBq/oUlxk0m3ApZuMFCXdnS4U7KrI+l3WRUEGQ8K1QKw==", + "dev": true, + "peer": true, + "dependencies": { + "@types/prop-types": "*", + "csstype": "^3.2.2" + } + }, + "node_modules/@types/react-dom": { + "version": "18.3.7", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.7.tgz", + "integrity": "sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ==", + "dev": true, + "peerDependencies": { + "@types/react": "^18.0.0" + } + }, "node_modules/@types/resolve": { "version": "1.17.1", "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", @@ -3910,9 +4510,18 @@ } }, "node_modules/@types/stack-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", - "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==" + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", + "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==" + }, + "node_modules/@types/testing-library__jest-dom": { + "version": "5.14.9", + "resolved": "https://registry.npmjs.org/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.14.9.tgz", + "integrity": "sha512-FSYhIjFlfOpGSRyVoMBMuS3ws5ehFQODymf3vlI7U1K8c7PHwWwFY7VREfmsuzHSOnoKs/9/Y983ayOs7eRzqw==", + "dev": true, + "dependencies": { + "@types/jest": "*" + } }, "node_modules/@types/trusted-types": { "version": "2.0.3", @@ -4536,9 +5145,9 @@ } }, "node_modules/aria-query": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.2.1.tgz", - "integrity": "sha512-7uFg4b+lETFgdaJyETnILsXgnnzVnkHcgRbwbPwevm5x/LmUlt3MjczMRe1zg824iBgXZNRPTBftNYyRSKLp2g==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", + "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", "dependencies": { "dequal": "^2.0.3" } @@ -4714,9 +5323,12 @@ } }, "node_modules/available-typed-arrays": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", - "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, "engines": { "node": ">= 0.4" }, @@ -5237,12 +5849,44 @@ } }, "node_modules/call-bind": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.9.tgz", + "integrity": "sha512-a/hy+pNsFUTR+Iz8TCJvXudKVLAnz/DyeSUo10I5yvFDQJBFU2s9uqQpoSrJlroHUKoKqzg+epxyP9lqFdzfBQ==", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "get-intrinsic": "^1.3.0", + "set-function-length": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/call-bind-apply-helpers": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -5944,6 +6588,12 @@ "url": "https://github.com/sponsors/fb55" } }, + "node_modules/css.escape": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", + "integrity": "sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==", + "dev": true + }, "node_modules/cssdb": { "version": "7.6.0", "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-7.6.0.tgz", @@ -6264,6 +6914,38 @@ "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==" }, + "node_modules/deep-equal": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.3.tgz", + "integrity": "sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "call-bind": "^1.0.5", + "es-get-iterator": "^1.1.3", + "get-intrinsic": "^1.2.2", + "is-arguments": "^1.1.1", + "is-array-buffer": "^3.0.2", + "is-date-object": "^1.0.5", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "isarray": "^2.0.5", + "object-is": "^1.1.5", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.5.1", + "side-channel": "^1.0.4", + "which-boxed-primitive": "^1.0.2", + "which-collection": "^1.0.1", + "which-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/deep-is": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", @@ -6288,6 +6970,22 @@ "node": ">= 10" } }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/define-lazy-prop": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", @@ -6297,10 +6995,11 @@ } }, "node_modules/define-properties": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz", - "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", "dependencies": { + "define-data-property": "^1.0.1", "has-property-descriptors": "^1.0.0", "object-keys": "^1.1.1" }, @@ -6442,6 +7141,12 @@ "node": ">=6.0.0" } }, + "node_modules/dom-accessibility-api": { + "version": "0.5.16", + "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz", + "integrity": "sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==", + "dev": true + }, "node_modules/dom-converter": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", @@ -6551,6 +7256,19 @@ "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz", "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==" }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/duplexer": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", @@ -6700,6 +7418,14 @@ "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz", "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==" }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "engines": { + "node": ">= 0.4" + } + }, "node_modules/es-errors": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", @@ -6708,11 +7434,42 @@ "node": ">= 0.4" } }, + "node_modules/es-get-iterator": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.3.tgz", + "integrity": "sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "has-symbols": "^1.0.3", + "is-arguments": "^1.1.1", + "is-map": "^2.0.2", + "is-set": "^2.0.2", + "is-string": "^1.0.7", + "isarray": "^2.0.5", + "stop-iteration-iterator": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/es-module-lexer": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.3.0.tgz", "integrity": "sha512-vZK7T0N2CBmBOixhmjdqx2gWVbFZ4DXZ/NyRMZVlJXPa7CyFS+/a4QQsDGDQy9ZfEzxFuNEsMLeQJnKP2p5/JA==" }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/es-set-tostringtag": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", @@ -7879,11 +8636,17 @@ } }, "node_modules/for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", + "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", "dependencies": { - "is-callable": "^1.1.3" + "is-callable": "^1.2.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/fork-ts-checker-webpack-plugin": { @@ -8169,14 +8932,23 @@ } }, "node_modules/get-intrinsic": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", - "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3" + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -8195,6 +8967,18 @@ "node": ">=8.0.0" } }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/get-stream": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", @@ -8333,11 +9117,11 @@ } }, "node_modules/gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "dependencies": { - "get-intrinsic": "^1.1.3" + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -8410,11 +9194,11 @@ } }, "node_modules/has-property-descriptors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", - "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", "dependencies": { - "get-intrinsic": "^1.1.1" + "es-define-property": "^1.0.0" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -8432,9 +9216,9 @@ } }, "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", "engines": { "node": ">= 0.4" }, @@ -8443,11 +9227,11 @@ } }, "node_modules/has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", "dependencies": { - "has-symbols": "^1.0.2" + "has-symbols": "^1.0.3" }, "engines": { "node": ">= 0.4" @@ -8807,6 +9591,15 @@ "node": ">=0.8.19" } }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -8827,13 +9620,13 @@ "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" }, "node_modules/internal-slot": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", - "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz", + "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==", "dependencies": { - "get-intrinsic": "^1.2.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" + "es-errors": "^1.3.0", + "hasown": "^2.0.2", + "side-channel": "^1.1.0" }, "engines": { "node": ">= 0.4" @@ -8855,6 +9648,22 @@ "node": ">= 10" } }, + "node_modules/is-arguments": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.2.0.tgz", + "integrity": "sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA==", + "dev": true, + "dependencies": { + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-array-buffer": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", @@ -8998,6 +9807,18 @@ "node": ">=0.10.0" } }, + "node_modules/is-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", + "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-module": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", @@ -9099,6 +9920,18 @@ "node": ">=6" } }, + "node_modules/is-set": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", + "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-shared-array-buffer": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", @@ -9172,6 +10005,18 @@ "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" }, + "node_modules/is-weakmap": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", + "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-weakref": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", @@ -9183,6 +10028,22 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-weakset": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz", + "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==", + "dev": true, + "dependencies": { + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-wsl": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", @@ -11567,6 +12428,15 @@ "yallist": "^3.0.2" } }, + "node_modules/lz-string": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz", + "integrity": "sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==", + "dev": true, + "bin": { + "lz-string": "bin/bin.js" + } + }, "node_modules/magic-string": { "version": "0.25.9", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", @@ -11605,6 +12475,14 @@ "tmpl": "1.0.5" } }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "engines": { + "node": ">= 0.4" + } + }, "node_modules/mdn-data": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz", @@ -11705,6 +12583,15 @@ "node": ">=6" } }, + "node_modules/min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, "node_modules/mini-css-extract-plugin": { "version": "2.7.6", "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.7.6.tgz", @@ -11964,9 +12851,28 @@ } }, "node_modules/object-inspect": { - "version": "1.12.3", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", - "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-is": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.6.tgz", + "integrity": "sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -12461,6 +13367,14 @@ "node": ">=4" } }, + "node_modules/possible-typed-array-names": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", + "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==", + "engines": { + "node": ">= 0.4" + } + }, "node_modules/postcss": { "version": "8.5.10", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.10.tgz", @@ -14211,6 +15125,19 @@ "node": ">=6.0.0" } }, + "node_modules/redent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "dev": true, + "dependencies": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/regenerate": { "version": "1.4.2", "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", @@ -14246,13 +15173,16 @@ "integrity": "sha512-jbD/FT0+9MBU2XAZluI7w2OBs1RBi6p9M83nkoZayQXXU9e8Robt69FcZc7wU4eJD/YFTjn1JdCk3rbMJajz8Q==" }, "node_modules/regexp.prototype.flags": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz", - "integrity": "sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==", + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", + "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "functions-have-names": "^1.2.3" + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "set-function-name": "^2.0.2" }, "engines": { "node": ">= 0.4" @@ -14886,6 +15816,36 @@ "node": ">= 0.8.0" } }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-function-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/setprototypeof": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", @@ -14919,13 +15879,68 @@ } }, "node_modules/side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.1.tgz", + "integrity": "sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w==", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -15086,6 +16101,19 @@ "node": ">= 0.8" } }, + "node_modules/stop-iteration-iterator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.1.0.tgz", + "integrity": "sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0", + "internal-slot": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/string_decoder": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", @@ -15237,6 +16265,18 @@ "node": ">=6" } }, + "node_modules/strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "dev": true, + "dependencies": { + "min-indent": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", @@ -16649,17 +17689,36 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/which-collection": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", + "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", + "dev": true, + "dependencies": { + "is-map": "^2.0.3", + "is-set": "^2.0.3", + "is-weakmap": "^2.0.2", + "is-weakset": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/which-typed-array": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", - "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==", + "version": "1.1.20", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.20.tgz", + "integrity": "sha512-LYfpUkmqwl0h9A2HL09Mms427Q1RZWuOHsukfVcKRq9q95iQxdw0ix1JQrqbcDR9PH1QDwf5Qo8OZb5lksZ8Xg==", "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0", - "is-typed-array": "^1.1.10" + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "for-each": "^0.3.5", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -17122,6 +18181,12 @@ } }, "dependencies": { + "@adobe/css-tools": { + "version": "4.4.4", + "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.4.4.tgz", + "integrity": "sha512-Elp+iwUx5rN5+Y8xLt5/GRoG20WGoDCQ/1Fb+1LiGtvwbDavuSk0jhD/eZdckHAuzcDzccnkv+rEjyWfRx18gg==", + "dev": true + }, "@alloc/quick-lru": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", @@ -17137,11 +18202,13 @@ } }, "@babel/code-frame": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.5.tgz", - "integrity": "sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ==", + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.0.tgz", + "integrity": "sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==", "requires": { - "@babel/highlight": "^7.22.5" + "@babel/helper-validator-identifier": "^7.28.5", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" } }, "@babel/compat-data": { @@ -17426,9 +18493,9 @@ "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==" }, "@babel/helper-validator-identifier": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz", - "integrity": "sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==" + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", + "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==" }, "@babel/helper-validator-option": { "version": "7.22.5", @@ -17456,16 +18523,6 @@ "@babel/types": "^7.22.5" } }, - "@babel/highlight": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.5.tgz", - "integrity": "sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw==", - "requires": { - "@babel/helper-validator-identifier": "^7.22.5", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - } - }, "@babel/parser": { "version": "7.22.5", "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.5.tgz", @@ -18862,6 +19919,12 @@ } } }, + "@jest/diff-sequences": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/@jest/diff-sequences/-/diff-sequences-30.3.0.tgz", + "integrity": "sha512-cG51MVnLq1ecVUaQ3fr6YuuAOitHK1S4WUJHnsPFE/quQr33ADUx1FfrTCpMCRxvy0Yr9BThKpDjSlcTi91tMA==", + "dev": true + }, "@jest/environment": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.5.1.tgz", @@ -18873,6 +19936,15 @@ "jest-mock": "^27.5.1" } }, + "@jest/expect-utils": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-30.3.0.tgz", + "integrity": "sha512-j0+W5iQQ8hBh7tHZkTQv3q2Fh/M7Je72cIsYqC4OaktgtO7v1So9UTjp6uPBHIaB6beoF/RRsCgMJKvti0wADA==", + "dev": true, + "requires": { + "@jest/get-type": "30.1.0" + } + }, "@jest/fake-timers": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.5.1.tgz", @@ -18886,6 +19958,12 @@ "jest-util": "^27.5.1" } }, + "@jest/get-type": { + "version": "30.1.0", + "resolved": "https://registry.npmjs.org/@jest/get-type/-/get-type-30.1.0.tgz", + "integrity": "sha512-eMbZE2hUnx1WV0pmURZY9XoXPkUYjpc55mb0CrhtdWLtzMQPFvu/rZkTLZFTsdaVQa+Tr4eWAteqcUzoawq/uA==", + "dev": true + }, "@jest/globals": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-27.5.1.tgz", @@ -18896,6 +19974,24 @@ "expect": "^27.5.1" } }, + "@jest/pattern": { + "version": "30.0.1", + "resolved": "https://registry.npmjs.org/@jest/pattern/-/pattern-30.0.1.tgz", + "integrity": "sha512-gWp7NfQW27LaBQz3TITS8L7ZCQ0TLvtmI//4OwlQRx4rnWxcPNIYjxZpDcN4+UlGxgm3jS5QPz8IPTCkb59wZA==", + "dev": true, + "requires": { + "@types/node": "*", + "jest-regex-util": "30.0.1" + }, + "dependencies": { + "jest-regex-util": { + "version": "30.0.1", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-30.0.1.tgz", + "integrity": "sha512-jHEQgBXAgc+Gh4g0p3bCevgRCVRkB4VB70zhoAE48gxeSr1hfUOsM/C2WoJgVL7Eyg//hudYENbm3Ne+/dRVVA==", + "dev": true + } + } + }, "@jest/reporters": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-27.5.1.tgz", @@ -19478,6 +20574,187 @@ "loader-utils": "^2.0.0" } }, + "@testing-library/dom": { + "version": "10.4.1", + "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-10.4.1.tgz", + "integrity": "sha512-o4PXJQidqJl82ckFaXUeoAW+XysPLauYI43Abki5hABd853iMhitooc6znOnczgbTYmEP6U6/y1ZyKAIsvMKGg==", + "dev": true, + "peer": true, + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/runtime": "^7.12.5", + "@types/aria-query": "^5.0.1", + "aria-query": "5.3.0", + "dom-accessibility-api": "^0.5.9", + "lz-string": "^1.5.0", + "picocolors": "1.1.1", + "pretty-format": "^27.0.2" + } + }, + "@testing-library/jest-dom": { + "version": "5.17.0", + "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-5.17.0.tgz", + "integrity": "sha512-ynmNeT7asXyH3aSVv4vvX4Rb+0qjOhdNHnO/3vuZNqPmhDpV/+rCSGwQ7bLcmU2cJ4dvoheIO85LQj0IbJHEtg==", + "dev": true, + "requires": { + "@adobe/css-tools": "^4.0.1", + "@babel/runtime": "^7.9.2", + "@types/testing-library__jest-dom": "^5.9.1", + "aria-query": "^5.0.0", + "chalk": "^3.0.0", + "css.escape": "^1.5.1", + "dom-accessibility-api": "^0.5.6", + "lodash": "^4.17.15", + "redent": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@testing-library/react": { + "version": "13.4.0", + "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-13.4.0.tgz", + "integrity": "sha512-sXOGON+WNTh3MLE9rve97ftaZukN3oNf2KjDy7YTx6hcTO2uuLHuCGynMDhFwGw/jYf4OJ2Qk0i4i79qMNNkyw==", + "dev": true, + "requires": { + "@babel/runtime": "^7.12.5", + "@testing-library/dom": "^8.5.0", + "@types/react-dom": "^18.0.0" + }, + "dependencies": { + "@testing-library/dom": { + "version": "8.20.1", + "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-8.20.1.tgz", + "integrity": "sha512-/DiOQ5xBxgdYRC8LNk7U+RWat0S3qRLeIw3ZIkMQ9kkVlRmwD/Eg8k8CqIpD6GW7u20JIUOfMKbxtiLutpjQ4g==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/runtime": "^7.12.5", + "@types/aria-query": "^5.0.1", + "aria-query": "5.1.3", + "chalk": "^4.1.0", + "dom-accessibility-api": "^0.5.9", + "lz-string": "^1.5.0", + "pretty-format": "^27.0.2" + } + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "aria-query": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.1.3.tgz", + "integrity": "sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==", + "dev": true, + "requires": { + "deep-equal": "^2.0.5" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@testing-library/user-event": { + "version": "13.5.0", + "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-13.5.0.tgz", + "integrity": "sha512-5Kwtbo3Y/NowpkbRuSepbyMFkZmHgD+vPzYB/RJ4oxt5Gj/avFFBYjhw27cqSVPVw/3a67NK1PbiIr9k4Gwmdg==", + "dev": true, + "requires": { + "@babel/runtime": "^7.12.5" + } + }, "@tootallnate/once": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", @@ -19488,6 +20765,12 @@ "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==" }, + "@types/aria-query": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.4.tgz", + "integrity": "sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==", + "dev": true + }, "@types/babel__core": { "version": "7.20.1", "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.1.tgz", @@ -19680,9 +20963,9 @@ } }, "@types/istanbul-lib-coverage": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", - "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==" + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==" }, "@types/istanbul-lib-report": { "version": "3.0.0", @@ -19693,13 +20976,224 @@ } }, "@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", + "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", "requires": { "@types/istanbul-lib-report": "*" } }, + "@types/jest": { + "version": "30.0.0", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-30.0.0.tgz", + "integrity": "sha512-XTYugzhuwqWjws0CVz8QpM36+T+Dz5mTEBKhNs/esGLnCIlGdRy+Dq78NRjd7ls7r8BC8ZRMOrKlkO1hU0JOwA==", + "dev": true, + "requires": { + "expect": "^30.0.0", + "pretty-format": "^30.0.0" + }, + "dependencies": { + "@jest/schemas": { + "version": "30.0.5", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-30.0.5.tgz", + "integrity": "sha512-DmdYgtezMkh3cpU8/1uyXakv3tJRcmcXxBOcO0tbaozPwpmh4YMsnWrQm9ZmZMfa5ocbxzbFk6O4bDPEc/iAnA==", + "dev": true, + "requires": { + "@sinclair/typebox": "^0.34.0" + } + }, + "@jest/types": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-30.3.0.tgz", + "integrity": "sha512-JHm87k7bA33hpBngtU8h6UBub/fqqA9uXfw+21j5Hmk7ooPHlboRNxHq0JcMtC+n8VJGP1mcfnD3Mk+XKe1oSw==", + "dev": true, + "requires": { + "@jest/pattern": "30.0.1", + "@jest/schemas": "30.0.5", + "@types/istanbul-lib-coverage": "^2.0.6", + "@types/istanbul-reports": "^3.0.4", + "@types/node": "*", + "@types/yargs": "^17.0.33", + "chalk": "^4.1.2" + } + }, + "@sinclair/typebox": { + "version": "0.34.49", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.34.49.tgz", + "integrity": "sha512-brySQQs7Jtn0joV8Xh9ZV/hZb9Ozb0pmazDIASBkYKCjXrXU3mpcFahmK/z4YDhGkQvP9mWJbVyahdtU5wQA+A==", + "dev": true + }, + "@types/yargs": { + "version": "17.0.35", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.35.tgz", + "integrity": "sha512-qUHkeCyQFxMXg79wQfTtfndEC+N9ZZg76HJftDJp+qH2tV7Gj4OJi7l+PiWwJ+pWtW8GwSmqsDj/oymhrTWXjg==", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "ci-info": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.4.0.tgz", + "integrity": "sha512-77PSwercCZU2Fc4sX94eF8k8Pxte6JAwL4/ICZLFjJLqegs7kCuAsqqj/70NQF6TvDpgFjkubQB2FW2ZZddvQg==", + "dev": true + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "expect": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-30.3.0.tgz", + "integrity": "sha512-1zQrciTiQfRdo7qJM1uG4navm8DayFa2TgCSRlzUyNkhcJ6XUZF3hjnpkyr3VhAqPH7i/9GkG7Tv5abz6fqz0Q==", + "dev": true, + "requires": { + "@jest/expect-utils": "30.3.0", + "@jest/get-type": "30.1.0", + "jest-matcher-utils": "30.3.0", + "jest-message-util": "30.3.0", + "jest-mock": "30.3.0", + "jest-util": "30.3.0" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "jest-diff": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-30.3.0.tgz", + "integrity": "sha512-n3q4PDQjS4LrKxfWB3Z5KNk1XjXtZTBwQp71OP0Jo03Z6V60x++K5L8k6ZrW8MY8pOFylZvHM0zsjS1RqlHJZQ==", + "dev": true, + "requires": { + "@jest/diff-sequences": "30.3.0", + "@jest/get-type": "30.1.0", + "chalk": "^4.1.2", + "pretty-format": "30.3.0" + } + }, + "jest-matcher-utils": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-30.3.0.tgz", + "integrity": "sha512-HEtc9uFQgaUHkC7nLSlQL3Tph4Pjxt/yiPvkIrrDCt9jhoLIgxaubo1G+CFOnmHYMxHwwdaSN7mkIFs6ZK8OhA==", + "dev": true, + "requires": { + "@jest/get-type": "30.1.0", + "chalk": "^4.1.2", + "jest-diff": "30.3.0", + "pretty-format": "30.3.0" + } + }, + "jest-message-util": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-30.3.0.tgz", + "integrity": "sha512-Z/j4Bo+4ySJ+JPJN3b2Qbl9hDq3VrXmnjjGEWD/x0BCXeOXPTV1iZYYzl2X8c1MaCOL+ewMyNBcm88sboE6YWw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.27.1", + "@jest/types": "30.3.0", + "@types/stack-utils": "^2.0.3", + "chalk": "^4.1.2", + "graceful-fs": "^4.2.11", + "picomatch": "^4.0.3", + "pretty-format": "30.3.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.6" + } + }, + "jest-mock": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-30.3.0.tgz", + "integrity": "sha512-OTzICK8CpE+t4ndhKrwlIdbM6Pn8j00lvmSmq5ejiO+KxukbLjgOflKWMn3KE34EZdQm5RqTuKj+5RIEniYhog==", + "dev": true, + "requires": { + "@jest/types": "30.3.0", + "@types/node": "*", + "jest-util": "30.3.0" + } + }, + "jest-util": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-30.3.0.tgz", + "integrity": "sha512-/jZDa00a3Sz7rdyu55NLrQCIrbyIkbBxareejQI315f/i8HjYN+ZWsDLLpoQSiUIEIyZF/R8fDg3BmB8AtHttg==", + "dev": true, + "requires": { + "@jest/types": "30.3.0", + "@types/node": "*", + "chalk": "^4.1.2", + "ci-info": "^4.2.0", + "graceful-fs": "^4.2.11", + "picomatch": "^4.0.3" + } + }, + "picomatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", + "dev": true + }, + "pretty-format": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.3.0.tgz", + "integrity": "sha512-oG4T3wCbfeuvljnyAzhBvpN45E8iOTXCU/TD3zXW80HA3dQ4ahdqMkWGiPWZvjpQwlbyHrPTWUAqUzGzv4l1JQ==", + "dev": true, + "requires": { + "@jest/schemas": "30.0.5", + "ansi-styles": "^5.2.0", + "react-is": "^18.3.1" + }, + "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true + } + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, "@types/json-schema": { "version": "7.0.12", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.12.tgz", @@ -19730,6 +21224,13 @@ "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.3.tgz", "integrity": "sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==" }, + "@types/prop-types": { + "version": "15.7.15", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.15.tgz", + "integrity": "sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==", + "dev": true, + "peer": true + }, "@types/q": { "version": "1.5.5", "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.5.tgz", @@ -19745,6 +21246,24 @@ "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==" }, + "@types/react": { + "version": "18.3.28", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.28.tgz", + "integrity": "sha512-z9VXpC7MWrhfWipitjNdgCauoMLRdIILQsAEV+ZesIzBq/oUlxk0m3ApZuMFCXdnS4U7KrI+l3WRUEGQ8K1QKw==", + "dev": true, + "peer": true, + "requires": { + "@types/prop-types": "*", + "csstype": "^3.2.2" + } + }, + "@types/react-dom": { + "version": "18.3.7", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.7.tgz", + "integrity": "sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ==", + "dev": true, + "requires": {} + }, "@types/resolve": { "version": "1.17.1", "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", @@ -19798,9 +21317,18 @@ } }, "@types/stack-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", - "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==" + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", + "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==" + }, + "@types/testing-library__jest-dom": { + "version": "5.14.9", + "resolved": "https://registry.npmjs.org/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.14.9.tgz", + "integrity": "sha512-FSYhIjFlfOpGSRyVoMBMuS3ws5ehFQODymf3vlI7U1K8c7PHwWwFY7VREfmsuzHSOnoKs/9/Y983ayOs7eRzqw==", + "dev": true, + "requires": { + "@types/jest": "*" + } }, "@types/trusted-types": { "version": "2.0.3", @@ -20255,9 +21783,9 @@ } }, "aria-query": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.2.1.tgz", - "integrity": "sha512-7uFg4b+lETFgdaJyETnILsXgnnzVnkHcgRbwbPwevm5x/LmUlt3MjczMRe1zg824iBgXZNRPTBftNYyRSKLp2g==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", + "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", "requires": { "dequal": "^2.0.3" } @@ -20377,9 +21905,12 @@ } }, "available-typed-arrays": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", - "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==" + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "requires": { + "possible-typed-array-names": "^1.0.0" + } }, "axe-core": { "version": "4.7.2", @@ -20768,12 +22299,32 @@ "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==" }, "call-bind": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.9.tgz", + "integrity": "sha512-a/hy+pNsFUTR+Iz8TCJvXudKVLAnz/DyeSUo10I5yvFDQJBFU2s9uqQpoSrJlroHUKoKqzg+epxyP9lqFdzfBQ==", + "requires": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "get-intrinsic": "^1.3.0", + "set-function-length": "^1.2.2" + } + }, + "call-bind-apply-helpers": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + } + }, + "call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "requires": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" } }, "callsites": { @@ -21260,6 +22811,12 @@ "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==" }, + "css.escape": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", + "integrity": "sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==", + "dev": true + }, "cssdb": { "version": "7.6.0", "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-7.6.0.tgz", @@ -21491,6 +23048,32 @@ "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==" }, + "deep-equal": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.3.tgz", + "integrity": "sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==", + "dev": true, + "requires": { + "array-buffer-byte-length": "^1.0.0", + "call-bind": "^1.0.5", + "es-get-iterator": "^1.1.3", + "get-intrinsic": "^1.2.2", + "is-arguments": "^1.1.1", + "is-array-buffer": "^3.0.2", + "is-date-object": "^1.0.5", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "isarray": "^2.0.5", + "object-is": "^1.1.5", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.5.1", + "side-channel": "^1.0.4", + "which-boxed-primitive": "^1.0.2", + "which-collection": "^1.0.1", + "which-typed-array": "^1.1.13" + } + }, "deep-is": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", @@ -21509,16 +23092,27 @@ "execa": "^5.0.0" } }, + "define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "requires": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + } + }, "define-lazy-prop": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==" }, "define-properties": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz", - "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", "requires": { + "define-data-property": "^1.0.1", "has-property-descriptors": "^1.0.0", "object-keys": "^1.1.1" } @@ -21621,6 +23215,12 @@ "esutils": "^2.0.2" } }, + "dom-accessibility-api": { + "version": "0.5.16", + "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz", + "integrity": "sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==", + "dev": true + }, "dom-converter": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", @@ -21705,6 +23305,16 @@ "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz", "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==" }, + "dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "requires": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + } + }, "duplexer": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", @@ -21824,16 +23434,46 @@ "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz", "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==" }, + "es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==" + }, "es-errors": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==" }, + "es-get-iterator": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.3.tgz", + "integrity": "sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "has-symbols": "^1.0.3", + "is-arguments": "^1.1.1", + "is-map": "^2.0.2", + "is-set": "^2.0.2", + "is-string": "^1.0.7", + "isarray": "^2.0.5", + "stop-iteration-iterator": "^1.0.0" + } + }, "es-module-lexer": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.3.0.tgz", "integrity": "sha512-vZK7T0N2CBmBOixhmjdqx2gWVbFZ4DXZ/NyRMZVlJXPa7CyFS+/a4QQsDGDQy9ZfEzxFuNEsMLeQJnKP2p5/JA==" }, + "es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "requires": { + "es-errors": "^1.3.0" + } + }, "es-set-tostringtag": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", @@ -22688,11 +24328,11 @@ "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==" }, "for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", + "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", "requires": { - "is-callable": "^1.1.3" + "is-callable": "^1.2.7" } }, "fork-ts-checker-webpack-plugin": { @@ -22881,14 +24521,20 @@ "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" }, "get-intrinsic": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", - "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3" + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" } }, "get-own-enumerable-property-symbols": { @@ -22901,6 +24547,15 @@ "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==" }, + "get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "requires": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + } + }, "get-stream": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", @@ -22996,12 +24651,9 @@ } }, "gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "requires": { - "get-intrinsic": "^1.1.3" - } + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==" }, "graceful-fs": { "version": "4.2.11", @@ -23055,11 +24707,11 @@ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==" }, "has-property-descriptors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", - "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", "requires": { - "get-intrinsic": "^1.1.1" + "es-define-property": "^1.0.0" } }, "has-proto": { @@ -23068,16 +24720,16 @@ "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==" }, "has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==" }, "has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", "requires": { - "has-symbols": "^1.0.2" + "has-symbols": "^1.0.3" } }, "hasown": { @@ -23326,6 +24978,12 @@ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==" }, + "indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true + }, "inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -23346,13 +25004,13 @@ "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" }, "internal-slot": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", - "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz", + "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==", "requires": { - "get-intrinsic": "^1.2.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" + "es-errors": "^1.3.0", + "hasown": "^2.0.2", + "side-channel": "^1.1.0" } }, "internmap": { @@ -23365,6 +25023,16 @@ "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.1.0.tgz", "integrity": "sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ==" }, + "is-arguments": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.2.0.tgz", + "integrity": "sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA==", + "dev": true, + "requires": { + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" + } + }, "is-array-buffer": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", @@ -23454,6 +25122,12 @@ "is-extglob": "^2.1.1" } }, + "is-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", + "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", + "dev": true + }, "is-module": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", @@ -23516,6 +25190,12 @@ "resolved": "https://registry.npmjs.org/is-root/-/is-root-2.1.0.tgz", "integrity": "sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==" }, + "is-set": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", + "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", + "dev": true + }, "is-shared-array-buffer": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", @@ -23562,6 +25242,12 @@ "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" }, + "is-weakmap": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", + "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", + "dev": true + }, "is-weakref": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", @@ -23570,6 +25256,16 @@ "call-bind": "^1.0.2" } }, + "is-weakset": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz", + "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==", + "dev": true, + "requires": { + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + } + }, "is-wsl": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", @@ -25329,6 +27025,12 @@ "yallist": "^3.0.2" } }, + "lz-string": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz", + "integrity": "sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==", + "dev": true + }, "magic-string": { "version": "0.25.9", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", @@ -25360,6 +27062,11 @@ "tmpl": "1.0.5" } }, + "math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==" + }, "mdn-data": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz", @@ -25430,6 +27137,12 @@ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" }, + "min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "dev": true + }, "mini-css-extract-plugin": { "version": "2.7.6", "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.7.6.tgz", @@ -25616,9 +27329,19 @@ "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==" }, "object-inspect": { - "version": "1.12.3", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", - "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==" + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==" + }, + "object-is": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.6.tgz", + "integrity": "sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==", + "dev": true, + "requires": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1" + } }, "object-keys": { "version": "1.1.1", @@ -25967,6 +27690,11 @@ } } }, + "possible-typed-array-names": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", + "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==" + }, "postcss": { "version": "8.5.10", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.10.tgz", @@ -27064,6 +28792,16 @@ "minimatch": "^3.0.5" } }, + "redent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "dev": true, + "requires": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" + } + }, "regenerate": { "version": "1.4.2", "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", @@ -27096,13 +28834,16 @@ "integrity": "sha512-jbD/FT0+9MBU2XAZluI7w2OBs1RBi6p9M83nkoZayQXXU9e8Robt69FcZc7wU4eJD/YFTjn1JdCk3rbMJajz8Q==" }, "regexp.prototype.flags": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz", - "integrity": "sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==", + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", + "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==", "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "functions-have-names": "^1.2.3" + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "set-function-name": "^2.0.2" } }, "regexpu-core": { @@ -27545,6 +29286,30 @@ "send": "0.18.0" } }, + "set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "requires": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + } + }, + "set-function-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "requires": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" + } + }, "setprototypeof": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", @@ -27569,13 +29334,47 @@ "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==" }, "side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "requires": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + } + }, + "side-channel-list": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.1.tgz", + "integrity": "sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w==", + "requires": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.4" + } + }, + "side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "requires": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + } + }, + "side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", "requires": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" } }, "signal-exit": { @@ -27704,6 +29503,16 @@ "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==" }, + "stop-iteration-iterator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.1.0.tgz", + "integrity": "sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==", + "dev": true, + "requires": { + "es-errors": "^1.3.0", + "internal-slot": "^1.1.0" + } + }, "string_decoder": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", @@ -27821,6 +29630,15 @@ "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==" }, + "strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "dev": true, + "requires": { + "min-indent": "^1.0.0" + } + }, "strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", @@ -28810,17 +30628,30 @@ "is-symbol": "^1.0.3" } }, - "which-typed-array": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", - "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==", + "which-collection": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", + "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", + "dev": true, "requires": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0", - "is-typed-array": "^1.1.10" + "is-map": "^2.0.3", + "is-set": "^2.0.3", + "is-weakmap": "^2.0.2", + "is-weakset": "^2.0.3" + } + }, + "which-typed-array": { + "version": "1.1.20", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.20.tgz", + "integrity": "sha512-LYfpUkmqwl0h9A2HL09Mms427Q1RZWuOHsukfVcKRq9q95iQxdw0ix1JQrqbcDR9PH1QDwf5Qo8OZb5lksZ8Xg==", + "requires": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "for-each": "^0.3.5", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2" } }, "word-wrap": { diff --git a/MtdrSpring/backend/src/main/frontend/package.json b/MtdrSpring/backend/src/main/frontend/package.json index ddc3521e2..e0f932938 100644 --- a/MtdrSpring/backend/src/main/frontend/package.json +++ b/MtdrSpring/backend/src/main/frontend/package.json @@ -30,5 +30,6 @@ "production": [">0.2%", "not dead", "not op_mini all"], "development": ["last 1 chrome version", "last 1 firefox version", "last 1 safari version"] }, - "homepage": "." + "homepage": ".", + "proxy": "http://localhost:8080" } diff --git a/MtdrSpring/backend/src/main/frontend/public/brand-lockup.png b/MtdrSpring/backend/src/main/frontend/public/brand-lockup.png new file mode 100644 index 0000000000000000000000000000000000000000..10cbb039b7ee680d387e7440fb8323fc4eca1656 GIT binary patch literal 19088 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 - Chuva Bot + Kairo + + diff --git a/MtdrSpring/backend/src/main/frontend/tailwind.config.js b/MtdrSpring/backend/src/main/frontend/tailwind.config.js index 5f7b41478..557c9cf74 100644 --- a/MtdrSpring/backend/src/main/frontend/tailwind.config.js +++ b/MtdrSpring/backend/src/main/frontend/tailwind.config.js @@ -3,6 +3,23 @@ module.exports = { content: ["./src/**/*.{js,jsx,ts,tsx}"], theme: { extend: { + colors: { + navy: { + DEFAULT: '#003865', + mid: '#005587', + light: '#E8F0F7', + deep: '#001C33', + }, + oracle: { + DEFAULT: '#C74634', + dark: '#9E3829', + light: '#F9DDD9', + }, + }, + fontFamily: { + display: ['Manrope', 'system-ui', 'sans-serif'], + mono: ['JetBrains Mono', 'monospace'], + }, keyframes: { 'slide-in': { '0%': { opacity: '0', transform: 'translateX(100%)' }, diff --git a/brand/Kairo Redesign.html b/brand/Kairo Redesign.html new file mode 100644 index 000000000..d9b1d0a0b --- /dev/null +++ b/brand/Kairo Redesign.html @@ -0,0 +1,1091 @@ + + + + + +Kairo — Redesign + + + + + + + + +
+ + + + diff --git a/brand/brand-lockup.png b/brand/brand-lockup.png new file mode 100644 index 0000000000000000000000000000000000000000..10cbb039b7ee680d387e7440fb8323fc4eca1656 GIT binary patch literal 19088 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 + + + + +Kairo — Variaciones Logo B3 + + + + + + +
+
Kairo — Variaciones Logo B3
+ + +
+
01 · Solo Ícono — Variaciones de Color
+
+ + +
+
Light · Fondo cielo
+
Versión original B3. Fondo azul cielo pálido, bordes navy, nodo central sólido.
+
+ + + + + +
+
+ + +
+
Dark · Fondo navy
+
Inversión dark. Fondo navy, trazo blanco, nodos blancos sobre oscuro.
+
+ + + + + +
+
+ + +
+
Oracle Red · Acento rojo
+
Nodos terminales en rojo Oracle. El punto de llegada = el momento kairos.
+
+ + + + +
+
+ + +
+
Mono · Negro puro
+
Versión monocromática. Para impresión, bordado, grabado o usos de un solo tinte.
+
+ + + + +
+
+ +
+
+ + +
+
02 · Forma del Contenedor
+
+ + +
+
Cuadrado redondeado r18
+
Forma original. Amigable, moderno, ideal para app icons.
+
+ + + +
+
+ + +
+
Círculo
+
Más suave. Ideal para avatares, fotos de perfil, redes sociales.
+
+ + + +
+
+ + +
+
Radio ajustado r8
+
Más recto, más formal. Sensibilidad B2B / enterprise.
+
+ + + +
+
+ + +
+
Sin contenedor — ícono libre
+
Solo la K como grafo. Máxima limpieza para fondos personalizados.
+
+ + + +
+
+ +
+
+ + +
+
03 · Wordmark Horizontal — Ícono + Nombre
+
+ + +
+
Solo nombre · Light
+
+
+ + Kairo +
+
+ +
+
Kairo
+
TEConecta
+
+
+
+
+ + +
+
Solo nombre · Dark
+
+
+ + Kairo +
+
+ +
+
Kairo
+
TEConecta
+
+
+
+
+ + +
+
Oracle Red accent
+
+
+ + Kairo +
+
+ +
+
Kairo
+
Oracle × ITESM
+
+
+
+
+ + +
+
K destacada — bicolor
+
+
+ + + Kairo + +
+
+ +
+
+ Kairo +
+
Oracle × ITESM
+
+
+
+
+ +
+
+ + +
+
04 · Wordmark Vertical — Ícono + Nombre Apilado
+
+ +
+
Light · Sin tagline
+
+ +
+ Kairo +
+
+
+ +
+
Light · Con tagline
+
+ +
+ Kairo + TEConecta +
+
+
+ +
+
Dark · Con tagline
+
+ +
+ Kairo + TEConecta +
+
+
+ +
+
Red · Con tagline
+
+ +
+ Kairo + Oracle × ITESM +
+
+
+ +
+
Círculo · Dark
+
+ +
+ Kairo + TEConecta +
+
+
+ +
+
+ + +
+
05 · Ícono sobre Fondos de Color
+
+ +
+ + #003865 Navy TEC +
+ +
+ + #001C33 Deep Navy +
+ +
+ + #C74634 Oracle Red +
+ +
+ + #EEF5FB Sky Blue +
+ +
+ + #0A0A0A Negro +
+ +
+ + #FFFFFF Blanco +
+ +
+
+ + +
+
06 · Variaciones Tipográficas del Nombre
+
+ +
+
Manrope 800 — original
+
+
+ + Kairo +
+
+
+ +
+
Manrope 300 — ligero
+
+
+ + Kairo +
+
+
+ +
+
Versalitas espaciadas — KAIRO
+
+
+ + Kairo +
+
+
+ +
+
K bicolor + nombre ligero
+
+
+ + + Kairo + +
+
+
+ +
+
+ + +
+
07 · Hoja de Estilos — Resumen Completo
+
+ + +
+
Sobre fondo claro
+ +
+ Solo ícono +
+ + + + + +
+
+ +
+ +
+ Horizontal +
+
+ + Kairo +
+
+ +
Kairo
Oracle × ITESM
+
+
+ +
Kairo
TEConecta
+
+
+
+ +
+ +
+ Vertical +
+
+ +
Kairo
+
+
+ +
KairoOracle × ITESM
+
+
+
+
+ + +
+ +
Sobre fondo oscuro
+ +
+ Solo ícono +
+ + + +
+
+ +
+ +
+ Horizontal +
+
+ + Kairo +
+
+ +
Kairo
TEConecta
+
+
+
+ +
+ +
+ Vertical +
+
+ +
KairoTEConecta
+
+
+ +
KairoOracle × ITESM
+
+
+
+ +
+ +
+
+ +
+ + From cb24f9b20ec76981dc9a56730226204ca011a5f6 Mon Sep 17 00:00:00 2001 From: Arturo Gomez Date: Mon, 4 May 2026 19:40:15 -0600 Subject: [PATCH 02/16] =?UTF-8?q?feat(frontend):=20rebranding=20a=20Kairo?= =?UTF-8?q?=20=E2=80=94=20sidebar,=20auth,=20perfil=20y=20componentes?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/components/Layout/AppLayout.jsx | 4 +- .../src/components/Layout/AuthLayout.jsx | 56 +++++- .../src/components/Layout/Sidebar.jsx | 174 ++++++++++++++---- .../frontend/src/components/common/Button.jsx | 14 +- .../src/components/common/KairoMark.jsx | 85 +++++++++ .../src/main/frontend/src/pages/LoginPage.jsx | 90 +++++++-- .../main/frontend/src/pages/ProfilePage.jsx | 143 +++++++++++--- .../main/frontend/src/pages/RegisterPage.jsx | 106 ++++++++--- 8 files changed, 552 insertions(+), 120 deletions(-) create mode 100644 MtdrSpring/backend/src/main/frontend/src/components/common/KairoMark.jsx diff --git a/MtdrSpring/backend/src/main/frontend/src/components/Layout/AppLayout.jsx b/MtdrSpring/backend/src/main/frontend/src/components/Layout/AppLayout.jsx index 5bef4791b..8fe82c7f0 100644 --- a/MtdrSpring/backend/src/main/frontend/src/components/Layout/AppLayout.jsx +++ b/MtdrSpring/backend/src/main/frontend/src/components/Layout/AppLayout.jsx @@ -2,6 +2,7 @@ import React, { useState, useCallback } from 'react'; import { Outlet, Navigate } from 'react-router-dom'; import { useAuth } from '../../context/AuthContext'; import Sidebar from './Sidebar'; +import KairoMark from '../common/KairoMark'; export default function AppLayout() { const { token } = useAuth(); @@ -29,7 +30,8 @@ export default function AppLayout() { - Chuva Bot + + Kairo
diff --git a/MtdrSpring/backend/src/main/frontend/src/components/Layout/AuthLayout.jsx b/MtdrSpring/backend/src/main/frontend/src/components/Layout/AuthLayout.jsx index 0f28fca5a..7bfd6b6b3 100644 --- a/MtdrSpring/backend/src/main/frontend/src/components/Layout/AuthLayout.jsx +++ b/MtdrSpring/backend/src/main/frontend/src/components/Layout/AuthLayout.jsx @@ -1,15 +1,59 @@ import React from 'react'; import { Outlet } from 'react-router-dom'; +import KairoMark from '../common/KairoMark'; export default function AuthLayout() { return ( -
-
-
-

Chuva Bot

-

Task Management

+
+ {/* Decorative grid */} +
+ +
+ {/* Brand lockup */} +
+ Oracle × Tecnológico de Monterrey { e.target.style.display = 'none'; }} + /> +
+ + {/* Card */} +
+ {/* Top accent bar */} +
+ +
+ {/* Logo */} +
+ +
+
+ Kairo +
+
+ TEConecta +
+
+
+ + +
-
); diff --git a/MtdrSpring/backend/src/main/frontend/src/components/Layout/Sidebar.jsx b/MtdrSpring/backend/src/main/frontend/src/components/Layout/Sidebar.jsx index 871287fae..5004e6bd0 100644 --- a/MtdrSpring/backend/src/main/frontend/src/components/Layout/Sidebar.jsx +++ b/MtdrSpring/backend/src/main/frontend/src/components/Layout/Sidebar.jsx @@ -2,19 +2,78 @@ import React, { useEffect } from 'react'; import { NavLink, useParams, useNavigate, useLocation } from 'react-router-dom'; import { useAuth } from '../../context/AuthContext'; import { useProject } from '../../context/ProjectContext'; +import KairoMark from '../common/KairoMark'; -function NavItem({ to, children, onClick }) { +const Icons = { + grid: ( + + + + ), + user: ( + + + + ), + tasks: ( + + + + ), + sprint: ( + + + + ), + backlog: ( + + + + ), + members: ( + + + + ), + dashboard: ( + + + + ), + logout: ( + + + + ), + star: ( + + + + ), +}; + +function NavItem({ to, icon, children, onClick }) { return ( - `flex items-center gap-2 px-3 py-2 rounded-lg text-sm transition-colors ${ - isActive ? 'bg-gray-900 text-white font-medium' : 'text-gray-600 hover:bg-gray-100' + `relative flex items-center gap-2.5 px-3 py-2 rounded-lg text-[13px] transition-all duration-150 ${ + isActive + ? 'bg-white/12 text-white font-semibold' + : 'text-white/60 hover:bg-white/5 hover:text-white/85' }` } > - {children} + {({ isActive }) => ( + <> + {isActive && ( + + )} + {icon} + {children} + + )} ); } @@ -35,18 +94,42 @@ export default function Sidebar({ open, onClose }) { navigate('/login'); }; + const initials = user?.fullName + ? user.fullName.split(' ').map((n) => n[0]).slice(0, 2).join('') + : '?'; + return ( -
+ ); } diff --git a/MtdrSpring/backend/src/main/frontend/src/pages/ProfilePage.jsx b/MtdrSpring/backend/src/main/frontend/src/pages/ProfilePage.jsx index f9065885e..231a9f0d0 100644 --- a/MtdrSpring/backend/src/main/frontend/src/pages/ProfilePage.jsx +++ b/MtdrSpring/backend/src/main/frontend/src/pages/ProfilePage.jsx @@ -1,31 +1,45 @@ import React, { useState } from 'react'; import { useAuth } from '../context/AuthContext'; +import { useProject } from '../context/ProjectContext'; import { apiFetch } from '../services/api'; -import Button from '../components/common/Button'; + +const StarIcon = () => ( + + + +); export default function ProfilePage() { - const { user, login } = useAuth(); - const [form, setForm] = useState({ fullName: user?.fullName || '', email: user?.email || '' }); + const { user } = useAuth(); + const { project, userRole } = useProject(); + + const [form, setForm] = useState({ + fullName: user?.fullName || '', + email: user?.email || '', + newPassword: '', + }); const [saving, setSaving] = useState(false); const [success, setSuccess] = useState(''); const [error, setError] = useState(''); const set = (field) => (e) => setForm((f) => ({ ...f, [field]: e.target.value })); + const initials = user?.fullName + ? user.fullName.split(' ').map((n) => n[0]).slice(0, 2).join('') + : '?'; + const handleSubmit = async (e) => { e.preventDefault(); setSaving(true); setSuccess(''); setError(''); try { - await apiFetch('/users/me', { - method: 'PUT', - body: JSON.stringify(form), - }); + const body = { fullName: form.fullName, email: form.email }; + if (form.newPassword) body.password = form.newPassword; + await apiFetch('/users/me', { method: 'PUT', body: JSON.stringify(body) }); const stored = JSON.parse(localStorage.getItem('user') || '{}'); - const updated = { ...stored, ...form }; - localStorage.setItem('user', JSON.stringify(updated)); - setSuccess('Profile updated.'); + localStorage.setItem('user', JSON.stringify({ ...stored, fullName: form.fullName, email: form.email })); + setSuccess('Profile updated successfully.'); } catch (err) { setError(err.message); } finally { @@ -34,26 +48,101 @@ export default function ProfilePage() { }; return ( -
-

Profile

-
- {success &&

{success}

} - {error &&

{error}

} -
-
- - +
+

+ Profile +

+ +
+ {/* Top gradient bar */} +
+ + {/* Hero */} +
+
+ {initials}
- - +
{user?.fullName}
+
{user?.email}
+
+ {userRole === 'MANAGER' && ( + + Manager + + )} + {project && ( + + {project.projectName} + + )} +
- - +
+ + {/* Form */} +
+ {success && ( +

{success}

+ )} + {error && ( +

{error}

+ )} + +
+
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ +
+
+
); diff --git a/MtdrSpring/backend/src/main/frontend/src/pages/RegisterPage.jsx b/MtdrSpring/backend/src/main/frontend/src/pages/RegisterPage.jsx index 01f1c030a..e878fad21 100644 --- a/MtdrSpring/backend/src/main/frontend/src/pages/RegisterPage.jsx +++ b/MtdrSpring/backend/src/main/frontend/src/pages/RegisterPage.jsx @@ -1,21 +1,17 @@ import React, { useState } from 'react'; import { Link, useNavigate } from 'react-router-dom'; import { useAuth } from '../context/AuthContext'; -import Button from '../components/common/Button'; export default function RegisterPage() { const { register } = useAuth(); const navigate = useNavigate(); const [form, setForm] = useState({ fullName: '', email: '', password: '' }); + const [showPassword, setShowPassword] = useState(false); const [error, setError] = useState(''); const [loading, setLoading] = useState(false); const set = (field) => (e) => setForm((f) => ({ ...f, [field]: e.target.value })); - - const isValid = - form.fullName.trim().length > 0 && - form.email.trim().length > 0 && - form.password.length >= 6; + const isValid = form.fullName.trim().length > 0 && form.email.trim().length > 0 && form.password.length >= 6; const handleSubmit = async (e) => { e.preventDefault(); @@ -32,36 +28,94 @@ export default function RegisterPage() { }; return ( -
-

Create account

- {error &&

{error}

} -
+ <> +

+ Create account +

+

Join the Oracle × ITESM workspace

+ + {error && ( +

{error}

+ )} + +
- - + Full name * + +
+
- - + Email address * + +
+
- - + +
+ + +
- + +
-

+ +

Already have an account?{' '} - Sign in + Sign in

-
+ ); } From d6092eda38323058ce612cba3993c177f8f7126e Mon Sep 17 00:00:00 2001 From: Arturo Gomez Date: Mon, 4 May 2026 19:49:31 -0600 Subject: [PATCH 03/16] feat(frontend): rebranding de vista de proyectos --- .../frontend/src/components/common/Modal.jsx | 10 ++- .../src/components/projects/ProjectCard.jsx | 75 +++++++++++++------ .../src/components/projects/ProjectForm.jsx | 42 ++++++++--- .../frontend/src/pages/MyProjectsPage.jsx | 47 +++++++++--- 4 files changed, 128 insertions(+), 46 deletions(-) diff --git a/MtdrSpring/backend/src/main/frontend/src/components/common/Modal.jsx b/MtdrSpring/backend/src/main/frontend/src/components/common/Modal.jsx index c31c83050..13b402254 100644 --- a/MtdrSpring/backend/src/main/frontend/src/components/common/Modal.jsx +++ b/MtdrSpring/backend/src/main/frontend/src/components/common/Modal.jsx @@ -15,16 +15,20 @@ export default function Modal({ open, onClose, title, children, size = 'md' }) { return (
-
+
+ {/* Accent bar */} +
-

{title}

+

+ {title} +

-
{children}
+
{children}
); diff --git a/MtdrSpring/backend/src/main/frontend/src/components/projects/ProjectCard.jsx b/MtdrSpring/backend/src/main/frontend/src/components/projects/ProjectCard.jsx index 3ae31a817..a38cb0849 100644 --- a/MtdrSpring/backend/src/main/frontend/src/components/projects/ProjectCard.jsx +++ b/MtdrSpring/backend/src/main/frontend/src/components/projects/ProjectCard.jsx @@ -1,57 +1,86 @@ -import React from 'react'; +import React, { useState } from 'react'; import { useNavigate } from 'react-router-dom'; import Badge from '../common/Badge'; +const StarIcon = () => ( + + + +); + +const EditIcon = () => ( + + + +); + +const TrashIcon = () => ( + + + +); + export default function ProjectCard({ project, currentUserId, onDelete, onEdit }) { const navigate = useNavigate(); + const [hovered, setHovered] = useState(false); const isManager = project.manager?.id === currentUserId; return (
navigate(`/projects/${project.id}/tasks`)} - className="bg-white border border-gray-100 rounded-xl p-5 shadow-sm cursor-pointer hover:shadow-md transition-shadow space-y-3" + onMouseEnter={() => setHovered(true)} + onMouseLeave={() => setHovered(false)} + className="bg-white rounded-2xl cursor-pointer flex flex-col gap-3.5 p-6 transition-all duration-200" + style={{ + border: `1px solid ${hovered ? '#D1D5DB' : '#E5E7EB'}`, + boxShadow: hovered ? '0 8px 24px rgba(0,0,0,0.10)' : '0 1px 4px rgba(0,0,0,0.06)', + transform: hovered ? 'translateY(-2px)' : 'none', + }} > + {/* Header */}
-

{project.projectName}

-
+

+ {project.projectName} +

+
{isManager && onEdit && ( )} {isManager && onDelete && ( )}
+ + {/* Description */} {project.description && ( -

{project.description}

+

+ {project.description} +

)} -
- - {isManager && ( - - - - )} + + {/* Footer */} +
+ + {isManager && } {isManager ? 'Manager' : 'Member'} - {new Date(project.createdAt).toLocaleDateString()} + + {new Date(project.createdAt).toLocaleDateString('en-US', { month: 'short', day: 'numeric', year: 'numeric' })} +
); diff --git a/MtdrSpring/backend/src/main/frontend/src/components/projects/ProjectForm.jsx b/MtdrSpring/backend/src/main/frontend/src/components/projects/ProjectForm.jsx index 7bf52bb1e..539ba982b 100644 --- a/MtdrSpring/backend/src/main/frontend/src/components/projects/ProjectForm.jsx +++ b/MtdrSpring/backend/src/main/frontend/src/components/projects/ProjectForm.jsx @@ -1,5 +1,4 @@ import React, { useState } from 'react'; -import Button from '../common/Button'; export default function ProjectForm({ initial = {}, onSubmit, onCancel, loading }) { const [form, setForm] = useState({ @@ -8,29 +7,50 @@ export default function ProjectForm({ initial = {}, onSubmit, onCancel, loading }); const set = (field) => (e) => setForm((f) => ({ ...f, [field]: e.target.value })); - const isValid = form.projectName.trim().length > 0; return (
{ e.preventDefault(); onSubmit(form); }} className="space-y-4">
- +
- +