diff --git a/new-lamassu-admin/.env b/new-lamassu-admin/.env deleted file mode 100644 index e666d42d..00000000 --- a/new-lamassu-admin/.env +++ /dev/null @@ -1,4 +0,0 @@ -SKIP_PREFLIGHT_CHECK=true -HTTPS=true -REACT_APP_TYPE_CHECK_SANCTUARY=false -PORT=3001 diff --git a/new-lamassu-admin/nginx/nginx.conf b/new-lamassu-admin/nginx/nginx.conf deleted file mode 100644 index 13ac5c80..00000000 --- a/new-lamassu-admin/nginx/nginx.conf +++ /dev/null @@ -1,28 +0,0 @@ -server { - listen 80; - - location / { - root /usr/share/nginx/html; - index index.html index.htm; - - try_files $uri /index.html; - } - - location /graphql { - proxy_pass https://lamassu-admin-server/graphql; - proxy_set_header Host $http_host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header X-Forwarded-Proto $scheme; - proxy_read_timeout 300; - proxy_connect_timeout 300; - proxy_send_timeout 300; - } - - error_page 500 502 503 504 /50x.html; - - location = /50x.html { - root /usr/share/nginx/html; - } - -} \ No newline at end of file diff --git a/new-lamassu-admin/package-lock.json b/new-lamassu-admin/package-lock.json index 50900327..a9d0b341 100644 --- a/new-lamassu-admin/package-lock.json +++ b/new-lamassu-admin/package-lock.json @@ -10,12 +10,9 @@ "license": "../LICENSE", "dependencies": { "@apollo/client": "^3.13.7", - "@emotion/react": "^11.14.0", - "@emotion/styled": "^11.14.0", "@lamassu/coins": "v1.6.1", - "@mui/icons-material": "^5.17.1", - "@mui/material": "^5.17.1", - "@mui/styles": "^5.17.1", + "@mui/icons-material": "^7.1.0", + "@mui/material": "^7.1.0", "@simplewebauthn/browser": "^3.0.0", "apollo-upload-client": "^18.0.0", "bignumber.js": "9.0.0", @@ -38,7 +35,6 @@ "react-copy-to-clipboard": "^5.0.2", "react-dom": "17.0.2", "react-dropzone": "^11.4.2", - "react-material-ui-carousel": "^3.4.2", "react-number-format": "^4.4.1", "react-otp-input": "3.1.1", "react-router-dom": "5.1.2", @@ -49,6 +45,7 @@ }, "devDependencies": { "@eslint/js": "^9.16.0", + "@tailwindcss/vite": "^4.1.4", "@vitejs/plugin-react-swc": "^3.7.2", "esbuild-plugin-react-virtualized": "^1.0.4", "eslint": "^9.16.0", @@ -58,6 +55,7 @@ "globals": "^15.13.0", "lint-staged": "^15.2.10", "prettier": "3.4.1", + "tailwindcss": "^4.1.4", "vite": "^6.0.1", "vite-plugin-svgr": "^4.3.0" } @@ -77,9 +75,9 @@ } }, "node_modules/@apollo/client": { - "version": "3.13.7", - "resolved": "https://registry.npmjs.org/@apollo/client/-/client-3.13.7.tgz", - "integrity": "sha512-jOp8EctxOirgg5BSV0hgpcUSprrW7b9pf4r8ybUcY6Z+0T+ja5W82kI/rJeLUHxhT3YOKBm+72hWUHfsNIa+Fg==", + "version": "3.13.8", + "resolved": "https://registry.npmjs.org/@apollo/client/-/client-3.13.8.tgz", + "integrity": "sha512-YM9lQpm0VfVco4DSyKooHS/fDTiKQcCHfxr7i3iL6a0kP/jNO5+4NFK6vtRDxaYisd5BrwOZHLJpPBnvRVpKPg==", "license": "MIT", "dependencies": { "@graphql-typed-document-node/core": "^3.1.1", @@ -119,23 +117,24 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.26.2", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", - "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", + "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==", + "devOptional": true, "license": "MIT", "dependencies": { - "@babel/helper-validator-identifier": "^7.25.9", + "@babel/helper-validator-identifier": "^7.27.1", "js-tokens": "^4.0.0", - "picocolors": "^1.0.0" + "picocolors": "^1.1.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/compat-data": { - "version": "7.26.8", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.8.tgz", - "integrity": "sha512-oH5UPLMWR3L2wEFLnFJ1TZXqHufiTKAiLfqw5zkhS4dKXLJ10yVztfil/twG8EDTA4F/tvVNw9nOl4ZMslB8rQ==", + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.27.2.tgz", + "integrity": "sha512-TUtMJYRPyUb/9aU8f3K0mjmjf6M9N5Woshn2CS6nqJSeJtTtQcpLUXjGt9vbF8ZGff0El99sWkLgzwW3VXnxZQ==", "dev": true, "license": "MIT", "engines": { @@ -143,22 +142,22 @@ } }, "node_modules/@babel/core": { - "version": "7.26.10", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.10.tgz", - "integrity": "sha512-vMqyb7XCDMPvJFFOaT9kxtiRh42GwlZEg1/uIgtZshS5a/8OaduUfCi7kynKgc3Tw/6Uo2D+db9qBttghhmxwQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.27.1.tgz", + "integrity": "sha512-IaaGWsQqfsQWVLqMn9OB92MNN7zukfVA4s7KKAI0KfrrDsZ0yhi5uV4baBuLuN7n3vsZpwP8asPPcVwApxvjBQ==", "dev": true, "license": "MIT", "dependencies": { "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.26.2", - "@babel/generator": "^7.26.10", - "@babel/helper-compilation-targets": "^7.26.5", - "@babel/helper-module-transforms": "^7.26.0", - "@babel/helpers": "^7.26.10", - "@babel/parser": "^7.26.10", - "@babel/template": "^7.26.9", - "@babel/traverse": "^7.26.10", - "@babel/types": "^7.26.10", + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.27.1", + "@babel/helper-compilation-targets": "^7.27.1", + "@babel/helper-module-transforms": "^7.27.1", + "@babel/helpers": "^7.27.1", + "@babel/parser": "^7.27.1", + "@babel/template": "^7.27.1", + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -173,14 +172,22 @@ "url": "https://opencollective.com/babel" } }, + "node_modules/@babel/core/node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true, + "license": "MIT" + }, "node_modules/@babel/generator": { - "version": "7.27.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.27.0.tgz", - "integrity": "sha512-VybsKvpiN1gU1sdMZIp7FcqphVVKEwcuj02x73uvcHE0PTihx1nlBcowYWhDwjpoAXRv43+gDzyggGnn1XZhVw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.27.1.tgz", + "integrity": "sha512-UnJfnIpc/+JO0/+KRVQNGU+y5taA5vCbwN8+azkX6beii/ZF+enZJSOKo11ZSzGJjlNfJHfQtmQT8H+9TXPG2w==", + "devOptional": true, "license": "MIT", "dependencies": { - "@babel/parser": "^7.27.0", - "@babel/types": "^7.27.0", + "@babel/parser": "^7.27.1", + "@babel/types": "^7.27.1", "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25", "jsesc": "^3.0.2" @@ -190,27 +197,27 @@ } }, "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.9.tgz", - "integrity": "sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.1.tgz", + "integrity": "sha512-WnuuDILl9oOBbKnb4L+DyODx7iC47XfzmNCpTttFsSp6hTG7XZxu60+4IO+2/hPfcGOoKbFiwoI/+zwARbNQow==", "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.25.9" + "@babel/types": "^7.27.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.27.0", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.0.tgz", - "integrity": "sha512-LVk7fbXml0H2xH34dFzKQ7TDZ2G4/rVTOrq9V+icbbadjbVxxeFeDsNHv2SrZeWoA+6ZiTyWYWtScEIW07EAcA==", + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz", + "integrity": "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.26.8", - "@babel/helper-validator-option": "^7.25.9", + "@babel/compat-data": "^7.27.2", + "@babel/helper-validator-option": "^7.27.1", "browserslist": "^4.24.0", "lru-cache": "^5.1.1", "semver": "^6.3.1" @@ -220,18 +227,18 @@ } }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.27.0", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.27.0.tgz", - "integrity": "sha512-vSGCvMecvFCd/BdpGlhpXYNhhC4ccxyvQWpbGL4CWbvfEoLFWUZuSuf7s9Aw70flgQF+6vptvgK2IfOnKlRmBg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.27.1.tgz", + "integrity": "sha512-QwGAmuvM17btKU5VqXfb+Giw4JcN0hjuufz3DYnpeVDvZLAObloM77bhMXiqry3Iio+Ai4phVRDwl6WU10+r5A==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "@babel/helper-member-expression-to-functions": "^7.25.9", - "@babel/helper-optimise-call-expression": "^7.25.9", - "@babel/helper-replace-supers": "^7.26.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", - "@babel/traverse": "^7.27.0", + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-member-expression-to-functions": "^7.27.1", + "@babel/helper-optimise-call-expression": "^7.27.1", + "@babel/helper-replace-supers": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", + "@babel/traverse": "^7.27.1", "semver": "^6.3.1" }, "engines": { @@ -242,42 +249,43 @@ } }, "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.25.9.tgz", - "integrity": "sha512-wbfdZ9w5vk0C0oyHqAJbc62+vet5prjj01jjJ8sKn3j9h3MQQlflEdXYvuqRWjHnM12coDEqiC1IRCi0U/EKwQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.27.1.tgz", + "integrity": "sha512-E5chM8eWjTp/aNoVpcbfM7mLxu9XGLWYise2eBKGQomAk/Mb4XoxyqXTZbuTohbsl8EKqdlMhnDI2CCLfcs9wA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.25.9" + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-imports": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz", - "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz", + "integrity": "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==", + "devOptional": true, "license": "MIT", "dependencies": { - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.25.9" + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz", - "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.27.1.tgz", + "integrity": "sha512-9yHn519/8KvTU5BjTVEEeIM3w9/2yXNKoD82JifINImhpKkARMJKPP59kLo+BafpdN5zgNeIcS4jsGDmd3l58g==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-module-imports": "^7.25.9", - "@babel/helper-validator-identifier": "^7.25.9", - "@babel/traverse": "^7.25.9" + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1", + "@babel/traverse": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -287,22 +295,22 @@ } }, "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.25.9.tgz", - "integrity": "sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.27.1.tgz", + "integrity": "sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.25.9" + "@babel/types": "^7.27.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.26.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.26.5.tgz", - "integrity": "sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz", + "integrity": "sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==", "dev": true, "license": "MIT", "engines": { @@ -310,15 +318,15 @@ } }, "node_modules/@babel/helper-replace-supers": { - "version": "7.26.5", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.26.5.tgz", - "integrity": "sha512-bJ6iIVdYX1YooY2X7w1q6VITt+LnUILtNk7zT78ykuwStx8BauCzxvFqFaHjOpW1bVnSUM1PN1f0p5P21wHxvg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.27.1.tgz", + "integrity": "sha512-7EHz6qDZc8RYS5ElPoShMheWvEgERonFCs7IAonWLLUTXW59DP14bCZt89/GKyreYn8g3S83m21FelHKbeDCKA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-member-expression-to-functions": "^7.25.9", - "@babel/helper-optimise-call-expression": "^7.25.9", - "@babel/traverse": "^7.26.5" + "@babel/helper-member-expression-to-functions": "^7.27.1", + "@babel/helper-optimise-call-expression": "^7.27.1", + "@babel/traverse": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -328,41 +336,43 @@ } }, "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.25.9.tgz", - "integrity": "sha512-K4Du3BFa3gvyhzgPcntrkDgZzQaq6uozzcpGbOO1OEJaI+EJdqWIMTLgFgQf6lrfiDFo5FU+BxKepI9RmZqahA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.27.1.tgz", + "integrity": "sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.25.9" + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-string-parser": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", - "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", + "devOptional": true, "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", - "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz", + "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==", + "devOptional": true, "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-option": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz", - "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", + "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", "dev": true, "license": "MIT", "engines": { @@ -370,26 +380,27 @@ } }, "node_modules/@babel/helpers": { - "version": "7.27.0", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.0.tgz", - "integrity": "sha512-U5eyP/CTFPuNE3qk+WZMxFkp/4zUzdceQlfzf7DdGdhp+Fezd7HD+i8Y24ZuTMKX3wQBld449jijbGq6OdGNQg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.1.tgz", + "integrity": "sha512-FCvFTm0sWV8Fxhpp2McP5/W53GPllQ9QeQ7SiqGWjMf/LVG07lFa5+pgK05IRhVwtvafT22KF+ZSnM9I545CvQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/template": "^7.27.0", - "@babel/types": "^7.27.0" + "@babel/template": "^7.27.1", + "@babel/types": "^7.27.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/parser": { - "version": "7.27.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.27.0.tgz", - "integrity": "sha512-iaepho73/2Pz7w2eMS0Q5f83+0RKI7i4xmiYeBmDzfRVbQtTOG7Ts0S4HzJVsTMGI9keU8rNfuZr8DKfSt7Yyg==", + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.27.2.tgz", + "integrity": "sha512-QYLs8299NA7WM/bZAdp+CviYYkVoYXlDW2rzliy3chxd1PQjej7JORuMJDJXJUb9g0TT+B99EwaVLKmX+sPXWw==", + "devOptional": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.27.0" + "@babel/types": "^7.27.1" }, "bin": { "parser": "bin/babel-parser.js" @@ -417,42 +428,41 @@ } }, "node_modules/@babel/runtime": { - "version": "7.27.0", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.27.0.tgz", - "integrity": "sha512-VtPOkrdPHZsKc/clNqyi9WUA8TINkZ4cGk63UUE3u4pmB2k+ZMQRDuIOagv8UVd6j7k0T3+RRIb7beKTebNbcw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.27.1.tgz", + "integrity": "sha512-1x3D2xEk2fRo3PAhwQwu5UubzgiVWSXTBfWpVd2Mx2AzRqJuDJCsgaDVZ7HB5iGzDW1Hl1sWN2mFyKjmR9uAog==", "license": "MIT", - "dependencies": { - "regenerator-runtime": "^0.14.0" - }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/template": { - "version": "7.27.0", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.0.tgz", - "integrity": "sha512-2ncevenBqXI6qRMukPlXwHKHchC7RyMuu4xv5JBXRfOGVcTy1mXCD12qrp7Jsoxll1EV3+9sE4GugBVRjT2jFA==", + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz", + "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==", + "devOptional": true, "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.26.2", - "@babel/parser": "^7.27.0", - "@babel/types": "^7.27.0" + "@babel/code-frame": "^7.27.1", + "@babel/parser": "^7.27.2", + "@babel/types": "^7.27.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.27.0", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.27.0.tgz", - "integrity": "sha512-19lYZFzYVQkkHkl4Cy4WrAVcqBkgvV2YM2TU3xG6DIwO7O3ecbDPfW3yM3bjAGcqcQHi+CCtjMR3dIEHxsd6bA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.27.1.tgz", + "integrity": "sha512-ZCYtZciz1IWJB4U61UPu4KEaqyfj+r5T1Q5mqPo+IBpcG9kHv30Z0aD8LXPgC1trYa6rK0orRyAhqUgk4MjmEg==", + "devOptional": true, "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.26.2", - "@babel/generator": "^7.27.0", - "@babel/parser": "^7.27.0", - "@babel/template": "^7.27.0", - "@babel/types": "^7.27.0", + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.27.1", + "@babel/parser": "^7.27.1", + "@babel/template": "^7.27.1", + "@babel/types": "^7.27.1", "debug": "^4.3.1", "globals": "^11.1.0" }, @@ -464,19 +474,21 @@ "version": "11.12.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "devOptional": true, "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/@babel/types": { - "version": "7.27.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.27.0.tgz", - "integrity": "sha512-H45s8fVLYjbhFH62dIJ3WtmJ6RSPt/3DRO0ZcT2SUiYiQyz3BLVb9ADEnLl91m74aQPS3AzzeajZHYOalWe3bg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.27.1.tgz", + "integrity": "sha512-+EzkxvLNfiUeKMgy/3luqfsCWFRXLb7U6wNQTk60tovuckwB15B191tJWvpp4HjiQWdJkCxO3Wbvc6jlk3Xb2Q==", + "devOptional": true, "license": "MIT", "dependencies": { - "@babel/helper-string-parser": "^7.25.9", - "@babel/helper-validator-identifier": "^7.25.9" + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -487,6 +499,8 @@ "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.13.5.tgz", "integrity": "sha512-pxHCpT2ex+0q+HH91/zsdHkw/lXd468DIN2zvfvLtPKLLMo6gQj7oLObq8PhkrxOZb/gGCq03S3Z7PDhS8pduQ==", "license": "MIT", + "optional": true, + "peer": true, "dependencies": { "@babel/helper-module-imports": "^7.16.7", "@babel/runtime": "^7.18.3", @@ -501,18 +515,6 @@ "stylis": "4.2.0" } }, - "node_modules/@emotion/babel-plugin/node_modules/@emotion/hash": { - "version": "0.9.2", - "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.2.tgz", - "integrity": "sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==", - "license": "MIT" - }, - "node_modules/@emotion/babel-plugin/node_modules/convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "license": "MIT" - }, "node_modules/@emotion/cache": { "version": "11.14.0", "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.14.0.tgz", @@ -526,11 +528,19 @@ "stylis": "4.2.0" } }, + "node_modules/@emotion/hash": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.2.tgz", + "integrity": "sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==", + "license": "MIT" + }, "node_modules/@emotion/is-prop-valid": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.3.1.tgz", "integrity": "sha512-/ACwoqx7XQi9knQs/G0qKvv5teDMhD7bXYns9N/wM8ah8iNb8jZ2uNO0YOgiq2o2poIvVtJS2YALasQuMSQ7Kw==", "license": "MIT", + "optional": true, + "peer": true, "dependencies": { "@emotion/memoize": "^0.9.0" } @@ -546,6 +556,8 @@ "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.14.0.tgz", "integrity": "sha512-O000MLDBDdk/EohJPFUqvnp4qnHeYkVP5B0xEG0D/L7cOKP9kefu2DXn8dj74cQfsEzUqh+sr1RzFqiL1o+PpA==", "license": "MIT", + "optional": true, + "peer": true, "dependencies": { "@babel/runtime": "^7.18.3", "@emotion/babel-plugin": "^11.13.5", @@ -578,18 +590,6 @@ "csstype": "^3.0.2" } }, - "node_modules/@emotion/serialize/node_modules/@emotion/hash": { - "version": "0.9.2", - "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.2.tgz", - "integrity": "sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==", - "license": "MIT" - }, - "node_modules/@emotion/serialize/node_modules/csstype": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", - "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", - "license": "MIT" - }, "node_modules/@emotion/sheet": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.4.0.tgz", @@ -601,6 +601,8 @@ "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-11.14.0.tgz", "integrity": "sha512-XxfOnXFffatap2IyCeJyNov3kiDQWoR08gPUQxvbL7fxKryGBKUZUkG6Hz48DZwVrJSVh9sJboyV1Ds4OW6SgA==", "license": "MIT", + "optional": true, + "peer": true, "dependencies": { "@babel/runtime": "^7.18.3", "@emotion/babel-plugin": "^11.13.5", @@ -630,6 +632,8 @@ "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.2.0.tgz", "integrity": "sha512-yJMtVdH59sxi/aVJBpk9FQq+OR8ll5GT8oWd57UpeaKEVGab41JWaCFA7FRLoMLloOZF/c/wsPoe+bfGmRKgDg==", "license": "MIT", + "optional": true, + "peer": true, "peerDependencies": { "react": ">=16.8.0" } @@ -647,9 +651,9 @@ "license": "MIT" }, "node_modules/@esbuild/aix-ppc64": { - "version": "0.25.2", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.2.tgz", - "integrity": "sha512-wCIboOL2yXZym2cgm6mlA742s9QeJ8DjGVaL39dLN4rRwrOgOyYSnOaFPhKZGLb2ngj4EyfAFjsNJwPXZvseag==", + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.4.tgz", + "integrity": "sha512-1VCICWypeQKhVbE9oW/sJaAmjLxhVqacdkvPLEjwlttjfwENRSClS8EjBz0KzRyFSCPDIkuXW34Je/vk7zdB7Q==", "cpu": [ "ppc64" ], @@ -664,9 +668,9 @@ } }, "node_modules/@esbuild/android-arm": { - "version": "0.25.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.2.tgz", - "integrity": "sha512-NQhH7jFstVY5x8CKbcfa166GoV0EFkaPkCKBQkdPJFvo5u+nGXLEH/ooniLb3QI8Fk58YAx7nsPLozUWfCBOJA==", + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.4.tgz", + "integrity": "sha512-QNdQEps7DfFwE3hXiU4BZeOV68HHzYwGd0Nthhd3uCkkEKK7/R6MTgM0P7H7FAs5pU/DIWsviMmEGxEoxIZ+ZQ==", "cpu": [ "arm" ], @@ -681,9 +685,9 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.25.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.2.tgz", - "integrity": "sha512-5ZAX5xOmTligeBaeNEPnPaeEuah53Id2tX4c2CVP3JaROTH+j4fnfHCkr1PjXMd78hMst+TlkfKcW/DlTq0i4w==", + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.4.tgz", + "integrity": "sha512-bBy69pgfhMGtCnwpC/x5QhfxAz/cBgQ9enbtwjf6V9lnPI/hMyT9iWpR1arm0l3kttTr4L0KSLpKmLp/ilKS9A==", "cpu": [ "arm64" ], @@ -698,9 +702,9 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.25.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.2.tgz", - "integrity": "sha512-Ffcx+nnma8Sge4jzddPHCZVRvIfQ0kMsUsCMcJRHkGJ1cDmhe4SsrYIjLUKn1xpHZybmOqCWwB0zQvsjdEHtkg==", + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.4.tgz", + "integrity": "sha512-TVhdVtQIFuVpIIR282btcGC2oGQoSfZfmBdTip2anCaVYcqWlZXGcdcKIUklfX2wj0JklNYgz39OBqh2cqXvcQ==", "cpu": [ "x64" ], @@ -715,9 +719,9 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.25.2", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.2.tgz", - "integrity": "sha512-MpM6LUVTXAzOvN4KbjzU/q5smzryuoNjlriAIx+06RpecwCkL9JpenNzpKd2YMzLJFOdPqBpuub6eVRP5IgiSA==", + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.4.tgz", + "integrity": "sha512-Y1giCfM4nlHDWEfSckMzeWNdQS31BQGs9/rouw6Ub91tkK79aIMTH3q9xHvzH8d0wDru5Ci0kWB8b3up/nl16g==", "cpu": [ "arm64" ], @@ -732,9 +736,9 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.25.2", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.2.tgz", - "integrity": "sha512-5eRPrTX7wFyuWe8FqEFPG2cU0+butQQVNcT4sVipqjLYQjjh8a8+vUTfgBKM88ObB85ahsnTwF7PSIt6PG+QkA==", + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.4.tgz", + "integrity": "sha512-CJsry8ZGM5VFVeyUYB3cdKpd/H69PYez4eJh1W/t38vzutdjEjtP7hB6eLKBoOdxcAlCtEYHzQ/PJ/oU9I4u0A==", "cpu": [ "x64" ], @@ -749,9 +753,9 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.25.2", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.2.tgz", - "integrity": "sha512-mLwm4vXKiQ2UTSX4+ImyiPdiHjiZhIaE9QvC7sw0tZ6HoNMjYAqQpGyui5VRIi5sGd+uWq940gdCbY3VLvsO1w==", + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.4.tgz", + "integrity": "sha512-yYq+39NlTRzU2XmoPW4l5Ifpl9fqSk0nAJYM/V/WUGPEFfek1epLHJIkTQM6bBs1swApjO5nWgvr843g6TjxuQ==", "cpu": [ "arm64" ], @@ -766,9 +770,9 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.25.2", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.2.tgz", - "integrity": "sha512-6qyyn6TjayJSwGpm8J9QYYGQcRgc90nmfdUb0O7pp1s4lTY+9D0H9O02v5JqGApUyiHOtkz6+1hZNvNtEhbwRQ==", + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.4.tgz", + "integrity": "sha512-0FgvOJ6UUMflsHSPLzdfDnnBBVoCDtBTVyn/MrWloUNvq/5SFmh13l3dvgRPkDihRxb77Y17MbqbCAa2strMQQ==", "cpu": [ "x64" ], @@ -783,9 +787,9 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.25.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.2.tgz", - "integrity": "sha512-UHBRgJcmjJv5oeQF8EpTRZs/1knq6loLxTsjc3nxO9eXAPDLcWW55flrMVc97qFPbmZP31ta1AZVUKQzKTzb0g==", + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.4.tgz", + "integrity": "sha512-kro4c0P85GMfFYqW4TWOpvmF8rFShbWGnrLqlzp4X1TNWjRY3JMYUfDCtOxPKOIY8B0WC8HN51hGP4I4hz4AaQ==", "cpu": [ "arm" ], @@ -800,9 +804,9 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.25.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.2.tgz", - "integrity": "sha512-gq/sjLsOyMT19I8obBISvhoYiZIAaGF8JpeXu1u8yPv8BE5HlWYobmlsfijFIZ9hIVGYkbdFhEqC0NvM4kNO0g==", + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.4.tgz", + "integrity": "sha512-+89UsQTfXdmjIvZS6nUnOOLoXnkUTB9hR5QAeLrQdzOSWZvNSAXAtcRDHWtqAUtAmv7ZM1WPOOeSxDzzzMogiQ==", "cpu": [ "arm64" ], @@ -817,9 +821,9 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.25.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.2.tgz", - "integrity": "sha512-bBYCv9obgW2cBP+2ZWfjYTU+f5cxRoGGQ5SeDbYdFCAZpYWrfjjfYwvUpP8MlKbP0nwZ5gyOU/0aUzZ5HWPuvQ==", + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.4.tgz", + "integrity": "sha512-yTEjoapy8UP3rv8dB0ip3AfMpRbyhSN3+hY8mo/i4QXFeDxmiYbEKp3ZRjBKcOP862Ua4b1PDfwlvbuwY7hIGQ==", "cpu": [ "ia32" ], @@ -834,9 +838,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.25.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.2.tgz", - "integrity": "sha512-SHNGiKtvnU2dBlM5D8CXRFdd+6etgZ9dXfaPCeJtz+37PIUlixvlIhI23L5khKXs3DIzAn9V8v+qb1TRKrgT5w==", + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.4.tgz", + "integrity": "sha512-NeqqYkrcGzFwi6CGRGNMOjWGGSYOpqwCjS9fvaUlX5s3zwOtn1qwg1s2iE2svBe4Q/YOG1q6875lcAoQK/F4VA==", "cpu": [ "loong64" ], @@ -851,9 +855,9 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.25.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.2.tgz", - "integrity": "sha512-hDDRlzE6rPeoj+5fsADqdUZl1OzqDYow4TB4Y/3PlKBD0ph1e6uPHzIQcv2Z65u2K0kpeByIyAjCmjn1hJgG0Q==", + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.4.tgz", + "integrity": "sha512-IcvTlF9dtLrfL/M8WgNI/qJYBENP3ekgsHbYUIzEzq5XJzzVEV/fXY9WFPfEEXmu3ck2qJP8LG/p3Q8f7Zc2Xg==", "cpu": [ "mips64el" ], @@ -868,9 +872,9 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.25.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.2.tgz", - "integrity": "sha512-tsHu2RRSWzipmUi9UBDEzc0nLc4HtpZEI5Ba+Omms5456x5WaNuiG3u7xh5AO6sipnJ9r4cRWQB2tUjPyIkc6g==", + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.4.tgz", + "integrity": "sha512-HOy0aLTJTVtoTeGZh4HSXaO6M95qu4k5lJcH4gxv56iaycfz1S8GO/5Jh6X4Y1YiI0h7cRyLi+HixMR+88swag==", "cpu": [ "ppc64" ], @@ -885,9 +889,9 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.25.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.2.tgz", - "integrity": "sha512-k4LtpgV7NJQOml/10uPU0s4SAXGnowi5qBSjaLWMojNCUICNu7TshqHLAEbkBdAszL5TabfvQ48kK84hyFzjnw==", + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.4.tgz", + "integrity": "sha512-i8JUDAufpz9jOzo4yIShCTcXzS07vEgWzyX3NH2G7LEFVgrLEhjwL3ajFE4fZI3I4ZgiM7JH3GQ7ReObROvSUA==", "cpu": [ "riscv64" ], @@ -902,9 +906,9 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.25.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.2.tgz", - "integrity": "sha512-GRa4IshOdvKY7M/rDpRR3gkiTNp34M0eLTaC1a08gNrh4u488aPhuZOCpkF6+2wl3zAN7L7XIpOFBhnaE3/Q8Q==", + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.4.tgz", + "integrity": "sha512-jFnu+6UbLlzIjPQpWCNh5QtrcNfMLjgIavnwPQAfoGx4q17ocOU9MsQ2QVvFxwQoWpZT8DvTLooTvmOQXkO51g==", "cpu": [ "s390x" ], @@ -919,9 +923,9 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.25.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.2.tgz", - "integrity": "sha512-QInHERlqpTTZ4FRB0fROQWXcYRD64lAoiegezDunLpalZMjcUcld3YzZmVJ2H/Cp0wJRZ8Xtjtj0cEHhYc/uUg==", + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.4.tgz", + "integrity": "sha512-6e0cvXwzOnVWJHq+mskP8DNSrKBr1bULBvnFLpc1KY+d+irZSgZ02TGse5FsafKS5jg2e4pbvK6TPXaF/A6+CA==", "cpu": [ "x64" ], @@ -936,9 +940,9 @@ } }, "node_modules/@esbuild/netbsd-arm64": { - "version": "0.25.2", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.2.tgz", - "integrity": "sha512-talAIBoY5M8vHc6EeI2WW9d/CkiO9MQJ0IOWX8hrLhxGbro/vBXJvaQXefW2cP0z0nQVTdQ/eNyGFV1GSKrxfw==", + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.4.tgz", + "integrity": "sha512-vUnkBYxZW4hL/ie91hSqaSNjulOnYXE1VSLusnvHg2u3jewJBz3YzB9+oCw8DABeVqZGg94t9tyZFoHma8gWZQ==", "cpu": [ "arm64" ], @@ -953,9 +957,9 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.25.2", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.2.tgz", - "integrity": "sha512-voZT9Z+tpOxrvfKFyfDYPc4DO4rk06qamv1a/fkuzHpiVBMOhpjK+vBmWM8J1eiB3OLSMFYNaOaBNLXGChf5tg==", + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.4.tgz", + "integrity": "sha512-XAg8pIQn5CzhOB8odIcAm42QsOfa98SBeKUdo4xa8OvX8LbMZqEtgeWE9P/Wxt7MlG2QqvjGths+nq48TrUiKw==", "cpu": [ "x64" ], @@ -970,9 +974,9 @@ } }, "node_modules/@esbuild/openbsd-arm64": { - "version": "0.25.2", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.2.tgz", - "integrity": "sha512-dcXYOC6NXOqcykeDlwId9kB6OkPUxOEqU+rkrYVqJbK2hagWOMrsTGsMr8+rW02M+d5Op5NNlgMmjzecaRf7Tg==", + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.4.tgz", + "integrity": "sha512-Ct2WcFEANlFDtp1nVAXSNBPDxyU+j7+tId//iHXU2f/lN5AmO4zLyhDcpR5Cz1r08mVxzt3Jpyt4PmXQ1O6+7A==", "cpu": [ "arm64" ], @@ -987,9 +991,9 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.25.2", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.2.tgz", - "integrity": "sha512-t/TkWwahkH0Tsgoq1Ju7QfgGhArkGLkF1uYz8nQS/PPFlXbP5YgRpqQR3ARRiC2iXoLTWFxc6DJMSK10dVXluw==", + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.4.tgz", + "integrity": "sha512-xAGGhyOQ9Otm1Xu8NT1ifGLnA6M3sJxZ6ixylb+vIUVzvvd6GOALpwQrYrtlPouMqd/vSbgehz6HaVk4+7Afhw==", "cpu": [ "x64" ], @@ -1004,9 +1008,9 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.25.2", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.2.tgz", - "integrity": "sha512-cfZH1co2+imVdWCjd+D1gf9NjkchVhhdpgb1q5y6Hcv9TP6Zi9ZG/beI3ig8TvwT9lH9dlxLq5MQBBgwuj4xvA==", + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.4.tgz", + "integrity": "sha512-Mw+tzy4pp6wZEK0+Lwr76pWLjrtjmJyUB23tHKqEDP74R3q95luY/bXqXZeYl4NYlvwOqoRKlInQialgCKy67Q==", "cpu": [ "x64" ], @@ -1021,9 +1025,9 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.25.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.2.tgz", - "integrity": "sha512-7Loyjh+D/Nx/sOTzV8vfbB3GJuHdOQyrOryFdZvPHLf42Tk9ivBU5Aedi7iyX+x6rbn2Mh68T4qq1SDqJBQO5Q==", + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.4.tgz", + "integrity": "sha512-AVUP428VQTSddguz9dO9ngb+E5aScyg7nOeJDrF1HPYu555gmza3bDGMPhmVXL8svDSoqPCsCPjb265yG/kLKQ==", "cpu": [ "arm64" ], @@ -1038,9 +1042,9 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.25.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.2.tgz", - "integrity": "sha512-WRJgsz9un0nqZJ4MfhabxaD9Ft8KioqU3JMinOTvobbX6MOSUigSBlogP8QB3uxpJDsFS6yN+3FDBdqE5lg9kg==", + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.4.tgz", + "integrity": "sha512-i1sW+1i+oWvQzSgfRcxxG2k4I9n3O9NRqy8U+uugaT2Dy7kLO9Y7wI72haOahxceMX8hZAzgGou1FhndRldxRg==", "cpu": [ "ia32" ], @@ -1055,9 +1059,9 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.25.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.2.tgz", - "integrity": "sha512-kM3HKb16VIXZyIeVrM1ygYmZBKybX8N4p754bw390wGO3Tf2j4L2/WYL+4suWujpgf6GBYs3jv7TyUivdd05JA==", + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.4.tgz", + "integrity": "sha512-nOT2vZNw6hJ+z43oP1SPea/G/6AbN6X+bGNhNuq8NtRHy4wsMhw765IKLNmnjek7GvjWBYQ8Q5VBoYTFg9y1UQ==", "cpu": [ "x64" ], @@ -1072,9 +1076,9 @@ } }, "node_modules/@eslint-community/eslint-utils": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.5.1.tgz", - "integrity": "sha512-soEIOALTfTK6EjmKMMoLugwaP0rzkad90iIWd1hMO9ARkSAyjfMfkRRhLvD5qH7vvM0Cg72pieUfR6yh6XxC4w==", + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.7.0.tgz", + "integrity": "sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==", "dev": true, "license": "MIT", "dependencies": { @@ -1129,9 +1133,9 @@ } }, "node_modules/@eslint/config-helpers": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.2.1.tgz", - "integrity": "sha512-RI17tsD2frtDu/3dmI7QRrD4bedNKPM08ziRYaC5AhkGrzIAJelm9kJU1TznK+apx6V+cqRz8tfpEeG3oIyjxw==", + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.2.2.tgz", + "integrity": "sha512-+GPzk8PlG0sPpzdU5ZvIRMPidzAnZDl/s9L+y13iodqvb8leL53bTannOrQ/Im7UkpsmFU5Ily5U60LWixnmLg==", "dev": true, "license": "Apache-2.0", "engines": { @@ -1139,9 +1143,9 @@ } }, "node_modules/@eslint/core": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.12.0.tgz", - "integrity": "sha512-cmrR6pytBuSMTaBweKoGMwu3EiHiEC+DoyupPmlZ0HxBJBtIxwe+j/E4XPIKNx+Q74c8lXKPwYawBf5glsTkHg==", + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.13.0.tgz", + "integrity": "sha512-yfkgDw1KR66rkT5A8ci4irzDysN7FRpq3ttJolR88OqQikAWqwA8j5VZyas+vjyBNFIJ7MfybJ9plMILI2UrCw==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -1189,9 +1193,9 @@ } }, "node_modules/@eslint/js": { - "version": "9.24.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.24.0.tgz", - "integrity": "sha512-uIY/y3z0uvOGX8cp1C2fiC4+ZmBhp6yZWkojtHL1YEMnRt1Y63HB9TM17proGEmeG7HeUY+UP36F0aknKYTpYA==", + "version": "9.26.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.26.0.tgz", + "integrity": "sha512-I9XlJawFdSMvWjDt6wksMCrgns5ggLNfFwFvnShsleWruvXM514Qxk8V246efTw+eo9JABvVz+u3q2RiAowKxQ==", "dev": true, "license": "MIT", "engines": { @@ -1222,19 +1226,6 @@ "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, - "node_modules/@eslint/plugin-kit/node_modules/@eslint/core": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.13.0.tgz", - "integrity": "sha512-yfkgDw1KR66rkT5A8ci4irzDysN7FRpq3ttJolR88OqQikAWqwA8j5VZyas+vjyBNFIJ7MfybJ9plMILI2UrCw==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@types/json-schema": "^7.0.15" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, "node_modules/@graphql-typed-document-node/core": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.2.0.tgz", @@ -1297,9 +1288,9 @@ } }, "node_modules/@humanwhocodes/retry": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.2.tgz", - "integrity": "sha512-xeO57FpIu4p1Ri3Jq/EXq4ClRm86dVF2z/+kvFnyqVYRavTZmaFaUBbWCOuuTh0o/g7DSsk6kc2vrS4Vl5oPOQ==", + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.3.tgz", + "integrity": "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==", "dev": true, "license": "Apache-2.0", "engines": { @@ -1314,6 +1305,7 @@ "version": "0.3.8", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", + "devOptional": true, "license": "MIT", "dependencies": { "@jridgewell/set-array": "^1.2.1", @@ -1328,6 +1320,7 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "devOptional": true, "license": "MIT", "engines": { "node": ">=6.0.0" @@ -1337,6 +1330,7 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "devOptional": true, "license": "MIT", "engines": { "node": ">=6.0.0" @@ -1346,12 +1340,14 @@ "version": "1.5.0", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "devOptional": true, "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { "version": "0.3.25", "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "devOptional": true, "license": "MIT", "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", @@ -1399,10 +1395,32 @@ "lodash": "^4.17.10" } }, + "node_modules/@modelcontextprotocol/sdk": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-1.11.1.tgz", + "integrity": "sha512-9LfmxKTb1v+vUS1/emSk1f5ePmTLkb9Le9AxOB5T0XM59EUumwcS45z05h7aiZx3GI0Bl7mjb3FMEglYj+acuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "content-type": "^1.0.5", + "cors": "^2.8.5", + "cross-spawn": "^7.0.3", + "eventsource": "^3.0.2", + "express": "^5.0.1", + "express-rate-limit": "^7.5.0", + "pkce-challenge": "^5.0.0", + "raw-body": "^3.0.0", + "zod": "^3.23.8", + "zod-to-json-schema": "^3.24.1" + }, + "engines": { + "node": ">=18" + } + }, "node_modules/@mui/core-downloads-tracker": { - "version": "5.17.1", - "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-5.17.1.tgz", - "integrity": "sha512-OcZj+cs6EfUD39IoPBOgN61zf1XFVY+imsGoBDwXeSq2UHJZE3N59zzBOVjclck91Ne3e9gudONOeILvHCIhUA==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-7.1.0.tgz", + "integrity": "sha512-E0OqhZv548Qdc0PwWhLVA2zmjJZSTvaL4ZhoswmI8NJEC1tpW2js6LLP827jrW9MEiXYdz3QS6+hask83w74yQ==", "license": "MIT", "funding": { "type": "opencollective", @@ -1410,22 +1428,22 @@ } }, "node_modules/@mui/icons-material": { - "version": "5.17.1", - "resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-5.17.1.tgz", - "integrity": "sha512-CN86LocjkunFGG0yPlO4bgqHkNGgaEOEc3X/jG5Bzm401qYw79/SaLrofA7yAKCCXAGdIGnLoMHohc3+ubs95A==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-7.1.0.tgz", + "integrity": "sha512-1mUPMAZ+Qk3jfgL5ftRR06ATH/Esi0izHl1z56H+df6cwIlCWG66RXciUqeJCttbOXOQ5y2DCjLZI/4t3Yg3LA==", "license": "MIT", "dependencies": { - "@babel/runtime": "^7.23.9" + "@babel/runtime": "^7.27.1" }, "engines": { - "node": ">=12.0.0" + "node": ">=14.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/mui-org" }, "peerDependencies": { - "@mui/material": "^5.0.0", + "@mui/material": "^7.1.0", "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0", "react": "^17.0.0 || ^18.0.0 || ^19.0.0" }, @@ -1436,26 +1454,26 @@ } }, "node_modules/@mui/material": { - "version": "5.17.1", - "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.17.1.tgz", - "integrity": "sha512-2B33kQf+GmPnrvXXweWAx+crbiUEsxCdCN979QDYnlH9ox4pd+0/IBriWLV+l6ORoBF60w39cWjFnJYGFdzXcw==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@mui/material/-/material-7.1.0.tgz", + "integrity": "sha512-ahUJdrhEv+mCp4XHW+tHIEYzZMSRLg8z4AjUOsj44QpD1ZaMxQoVOG2xiHvLFdcsIPbgSRx1bg1eQSheHBgvtg==", "license": "MIT", "dependencies": { - "@babel/runtime": "^7.23.9", - "@mui/core-downloads-tracker": "^5.17.1", - "@mui/system": "^5.17.1", - "@mui/types": "~7.2.15", - "@mui/utils": "^5.17.1", + "@babel/runtime": "^7.27.1", + "@mui/core-downloads-tracker": "^7.1.0", + "@mui/system": "^7.1.0", + "@mui/types": "^7.4.2", + "@mui/utils": "^7.1.0", "@popperjs/core": "^2.11.8", - "@types/react-transition-group": "^4.4.10", - "clsx": "^2.1.0", + "@types/react-transition-group": "^4.4.12", + "clsx": "^2.1.1", "csstype": "^3.1.3", "prop-types": "^15.8.1", - "react-is": "^19.0.0", + "react-is": "^19.1.0", "react-transition-group": "^4.4.5" }, "engines": { - "node": ">=12.0.0" + "node": ">=14.0.0" }, "funding": { "type": "opencollective", @@ -1464,6 +1482,7 @@ "peerDependencies": { "@emotion/react": "^11.5.0", "@emotion/styled": "^11.3.0", + "@mui/material-pigment-css": "^7.1.0", "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0", "react": "^17.0.0 || ^18.0.0 || ^19.0.0", "react-dom": "^17.0.0 || ^18.0.0 || ^19.0.0" @@ -1475,44 +1494,26 @@ "@emotion/styled": { "optional": true }, + "@mui/material-pigment-css": { + "optional": true + }, "@types/react": { "optional": true } } }, - "node_modules/@mui/material/node_modules/clsx": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", - "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/@mui/material/node_modules/csstype": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", - "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", - "license": "MIT" - }, - "node_modules/@mui/material/node_modules/react-is": { - "version": "19.1.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-19.1.0.tgz", - "integrity": "sha512-Oe56aUPnkHyyDxxkvqtd7KkdQP5uIUfHxd5XTb3wE9d/kRnZLmKbDB0GWk919tdQ+mxxPtG6EAs6RMT6i1qtHg==", - "license": "MIT" - }, "node_modules/@mui/private-theming": { - "version": "5.17.1", - "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-5.17.1.tgz", - "integrity": "sha512-XMxU0NTYcKqdsG8LRmSoxERPXwMbp16sIXPcLVgLGII/bVNagX0xaheWAwFv8+zDK7tI3ajllkuD3GZZE++ICQ==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-7.1.0.tgz", + "integrity": "sha512-4Kck4jxhqF6YxNwJdSae1WgDfXVg0lIH6JVJ7gtuFfuKcQCgomJxPvUEOySTFRPz1IZzwz5OAcToskRdffElDA==", "license": "MIT", "dependencies": { - "@babel/runtime": "^7.23.9", - "@mui/utils": "^5.17.1", + "@babel/runtime": "^7.27.1", + "@mui/utils": "^7.1.0", "prop-types": "^15.8.1" }, "engines": { - "node": ">=12.0.0" + "node": ">=14.0.0" }, "funding": { "type": "opencollective", @@ -1529,18 +1530,20 @@ } }, "node_modules/@mui/styled-engine": { - "version": "5.16.14", - "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-5.16.14.tgz", - "integrity": "sha512-UAiMPZABZ7p8mUW4akDV6O7N3+4DatStpXMZwPlt+H/dA0lt67qawN021MNND+4QTpjaiMYxbhKZeQcyWCbuKw==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-7.1.0.tgz", + "integrity": "sha512-m0mJ0c6iRC+f9hMeRe0W7zZX1wme3oUX0+XTVHjPG7DJz6OdQ6K/ggEOq7ZdwilcpdsDUwwMfOmvO71qDkYd2w==", "license": "MIT", "dependencies": { - "@babel/runtime": "^7.23.9", + "@babel/runtime": "^7.27.1", "@emotion/cache": "^11.13.5", + "@emotion/serialize": "^1.3.3", + "@emotion/sheet": "^1.4.0", "csstype": "^3.1.3", "prop-types": "^15.8.1" }, "engines": { - "node": ">=12.0.0" + "node": ">=14.0.0" }, "funding": { "type": "opencollective", @@ -1560,92 +1563,23 @@ } } }, - "node_modules/@mui/styled-engine/node_modules/csstype": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", - "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", - "license": "MIT" - }, - "node_modules/@mui/styles": { - "version": "5.17.1", - "resolved": "https://registry.npmjs.org/@mui/styles/-/styles-5.17.1.tgz", - "integrity": "sha512-GxNtcD1jXjj1i81vyuaeNxCpph/ApxSxgJ+G8A2jUY5/bMOxXSmgUdupbB0JLexsDIqmaSqTePVN0jnMZc1iZQ==", - "deprecated": "Deprecated, check the migration instruction in https://mui.com/material-ui/migration/migrating-from-jss/", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.23.9", - "@emotion/hash": "^0.9.1", - "@mui/private-theming": "^5.17.1", - "@mui/types": "~7.2.15", - "@mui/utils": "^5.17.1", - "clsx": "^2.1.0", - "csstype": "^3.1.3", - "hoist-non-react-statics": "^3.3.2", - "jss": "^10.10.0", - "jss-plugin-camel-case": "^10.10.0", - "jss-plugin-default-unit": "^10.10.0", - "jss-plugin-global": "^10.10.0", - "jss-plugin-nested": "^10.10.0", - "jss-plugin-props-sort": "^10.10.0", - "jss-plugin-rule-value-function": "^10.10.0", - "jss-plugin-vendor-prefixer": "^10.10.0", - "prop-types": "^15.8.1" - }, - "engines": { - "node": ">=12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mui-org" - }, - "peerDependencies": { - "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0", - "react": "^17.0.0 || ^18.0.0 || ^19.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@mui/styles/node_modules/@emotion/hash": { - "version": "0.9.2", - "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.2.tgz", - "integrity": "sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==", - "license": "MIT" - }, - "node_modules/@mui/styles/node_modules/clsx": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", - "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/@mui/styles/node_modules/csstype": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", - "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", - "license": "MIT" - }, "node_modules/@mui/system": { - "version": "5.17.1", - "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.17.1.tgz", - "integrity": "sha512-aJrmGfQpyF0U4D4xYwA6ueVtQcEMebET43CUmKMP7e7iFh3sMIF3sBR0l8Urb4pqx1CBjHAaWgB0ojpND4Q3Jg==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@mui/system/-/system-7.1.0.tgz", + "integrity": "sha512-iedAWgRJMCxeMHvkEhsDlbvkK+qKf9me6ofsf7twk/jfT4P1ImVf7Rwb5VubEA0sikrVL+1SkoZM41M4+LNAVA==", "license": "MIT", "dependencies": { - "@babel/runtime": "^7.23.9", - "@mui/private-theming": "^5.17.1", - "@mui/styled-engine": "^5.16.14", - "@mui/types": "~7.2.15", - "@mui/utils": "^5.17.1", - "clsx": "^2.1.0", + "@babel/runtime": "^7.27.1", + "@mui/private-theming": "^7.1.0", + "@mui/styled-engine": "^7.1.0", + "@mui/types": "^7.4.2", + "@mui/utils": "^7.1.0", + "clsx": "^2.1.1", "csstype": "^3.1.3", "prop-types": "^15.8.1" }, "engines": { - "node": ">=12.0.0" + "node": ">=14.0.0" }, "funding": { "type": "opencollective", @@ -1669,26 +1603,14 @@ } } }, - "node_modules/@mui/system/node_modules/clsx": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", - "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/@mui/system/node_modules/csstype": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", - "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", - "license": "MIT" - }, "node_modules/@mui/types": { - "version": "7.2.24", - "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.2.24.tgz", - "integrity": "sha512-3c8tRt/CbWZ+pEg7QpSwbdxOk36EfmhbKf6AGZsD1EcLDLTSZoxxJ86FVtcjxvjuhdyBiWKSTGZFaXCnidO2kw==", + "version": "7.4.2", + "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.4.2.tgz", + "integrity": "sha512-edRc5JcLPsrlNFYyTPxds+d5oUovuUxnnDtpJUbP6WMeV4+6eaX/mqai1ZIWT62lCOe0nlrON0s9HDiv5en5bA==", "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.27.1" + }, "peerDependencies": { "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0" }, @@ -1699,20 +1621,20 @@ } }, "node_modules/@mui/utils": { - "version": "5.17.1", - "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.17.1.tgz", - "integrity": "sha512-jEZ8FTqInt2WzxDV8bhImWBqeQRD99c/id/fq83H0ER9tFl+sfZlaAoCdznGvbSQQ9ividMxqSV2c7cC1vBcQg==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-7.1.0.tgz", + "integrity": "sha512-/OM3S8kSHHmWNOP+NH9xEtpYSG10upXeQ0wLZnfDgmgadTAk5F4MQfFLyZ5FCRJENB3eRzltMmaNl6UtDnPovw==", "license": "MIT", "dependencies": { - "@babel/runtime": "^7.23.9", - "@mui/types": "~7.2.15", - "@types/prop-types": "^15.7.12", + "@babel/runtime": "^7.27.1", + "@mui/types": "^7.4.2", + "@types/prop-types": "^15.7.14", "clsx": "^2.1.1", "prop-types": "^15.8.1", - "react-is": "^19.0.0" + "react-is": "^19.1.0" }, "engines": { - "node": ">=12.0.0" + "node": ">=14.0.0" }, "funding": { "type": "opencollective", @@ -1728,21 +1650,6 @@ } } }, - "node_modules/@mui/utils/node_modules/clsx": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", - "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/@mui/utils/node_modules/react-is": { - "version": "19.1.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-19.1.0.tgz", - "integrity": "sha512-Oe56aUPnkHyyDxxkvqtd7KkdQP5uIUfHxd5XTb3wE9d/kRnZLmKbDB0GWk919tdQ+mxxPtG6EAs6RMT6i1qtHg==", - "license": "MIT" - }, "node_modules/@popperjs/core": { "version": "2.11.8", "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", @@ -1790,9 +1697,9 @@ } }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.39.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.39.0.tgz", - "integrity": "sha512-lGVys55Qb00Wvh8DMAocp5kIcaNzEFTmGhfFd88LfaogYTRKrdxgtlO5H6S49v2Nd8R2C6wLOal0qv6/kCkOwA==", + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.40.2.tgz", + "integrity": "sha512-JkdNEq+DFxZfUwxvB58tHMHBHVgX23ew41g1OQinthJ+ryhdRk67O31S7sYw8u2lTjHUPFxwar07BBt1KHp/hg==", "cpu": [ "arm" ], @@ -1804,9 +1711,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.39.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.39.0.tgz", - "integrity": "sha512-It9+M1zE31KWfqh/0cJLrrsCPiF72PoJjIChLX+rEcujVRCb4NLQ5QzFkzIZW8Kn8FTbvGQBY5TkKBau3S8cCQ==", + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.40.2.tgz", + "integrity": "sha512-13unNoZ8NzUmnndhPTkWPWbX3vtHodYmy+I9kuLxN+F+l+x3LdVF7UCu8TWVMt1POHLh6oDHhnOA04n8oJZhBw==", "cpu": [ "arm64" ], @@ -1818,9 +1725,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.39.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.39.0.tgz", - "integrity": "sha512-lXQnhpFDOKDXiGxsU9/l8UEGGM65comrQuZ+lDcGUx+9YQ9dKpF3rSEGepyeR5AHZ0b5RgiligsBhWZfSSQh8Q==", + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.40.2.tgz", + "integrity": "sha512-Gzf1Hn2Aoe8VZzevHostPX23U7N5+4D36WJNHK88NZHCJr7aVMG4fadqkIf72eqVPGjGc0HJHNuUaUcxiR+N/w==", "cpu": [ "arm64" ], @@ -1832,9 +1739,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.39.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.39.0.tgz", - "integrity": "sha512-mKXpNZLvtEbgu6WCkNij7CGycdw9cJi2k9v0noMb++Vab12GZjFgUXD69ilAbBh034Zwn95c2PNSz9xM7KYEAQ==", + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.40.2.tgz", + "integrity": "sha512-47N4hxa01a4x6XnJoskMKTS8XZ0CZMd8YTbINbi+w03A2w4j1RTlnGHOz/P0+Bg1LaVL6ufZyNprSg+fW5nYQQ==", "cpu": [ "x64" ], @@ -1846,9 +1753,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.39.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.39.0.tgz", - "integrity": "sha512-jivRRlh2Lod/KvDZx2zUR+I4iBfHcu2V/BA2vasUtdtTN2Uk3jfcZczLa81ESHZHPHy4ih3T/W5rPFZ/hX7RtQ==", + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.40.2.tgz", + "integrity": "sha512-8t6aL4MD+rXSHHZUR1z19+9OFJ2rl1wGKvckN47XFRVO+QL/dUSpKA2SLRo4vMg7ELA8pzGpC+W9OEd1Z/ZqoQ==", "cpu": [ "arm64" ], @@ -1860,9 +1767,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.39.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.39.0.tgz", - "integrity": "sha512-8RXIWvYIRK9nO+bhVz8DwLBepcptw633gv/QT4015CpJ0Ht8punmoHU/DuEd3iw9Hr8UwUV+t+VNNuZIWYeY7Q==", + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.40.2.tgz", + "integrity": "sha512-C+AyHBzfpsOEYRFjztcYUFsH4S7UsE9cDtHCtma5BK8+ydOZYgMmWg1d/4KBytQspJCld8ZIujFMAdKG1xyr4Q==", "cpu": [ "x64" ], @@ -1874,9 +1781,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.39.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.39.0.tgz", - "integrity": "sha512-mz5POx5Zu58f2xAG5RaRRhp3IZDK7zXGk5sdEDj4o96HeaXhlUwmLFzNlc4hCQi5sGdR12VDgEUqVSHer0lI9g==", + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.40.2.tgz", + "integrity": "sha512-de6TFZYIvJwRNjmW3+gaXiZ2DaWL5D5yGmSYzkdzjBDS3W+B9JQ48oZEsmMvemqjtAFzE16DIBLqd6IQQRuG9Q==", "cpu": [ "arm" ], @@ -1888,9 +1795,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.39.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.39.0.tgz", - "integrity": "sha512-+YDwhM6gUAyakl0CD+bMFpdmwIoRDzZYaTWV3SDRBGkMU/VpIBYXXEvkEcTagw/7VVkL2vA29zU4UVy1mP0/Yw==", + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.40.2.tgz", + "integrity": "sha512-urjaEZubdIkacKc930hUDOfQPysezKla/O9qV+O89enqsqUmQm8Xj8O/vh0gHg4LYfv7Y7UsE3QjzLQzDYN1qg==", "cpu": [ "arm" ], @@ -1902,9 +1809,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.39.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.39.0.tgz", - "integrity": "sha512-EKf7iF7aK36eEChvlgxGnk7pdJfzfQbNvGV/+l98iiMwU23MwvmV0Ty3pJ0p5WQfm3JRHOytSIqD9LB7Bq7xdQ==", + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.40.2.tgz", + "integrity": "sha512-KlE8IC0HFOC33taNt1zR8qNlBYHj31qGT1UqWqtvR/+NuCVhfufAq9fxO8BMFC22Wu0rxOwGVWxtCMvZVLmhQg==", "cpu": [ "arm64" ], @@ -1916,9 +1823,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.39.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.39.0.tgz", - "integrity": "sha512-vYanR6MtqC7Z2SNr8gzVnzUul09Wi1kZqJaek3KcIlI/wq5Xtq4ZPIZ0Mr/st/sv/NnaPwy/D4yXg5x0B3aUUA==", + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.40.2.tgz", + "integrity": "sha512-j8CgxvfM0kbnhu4XgjnCWJQyyBOeBI1Zq91Z850aUddUmPeQvuAy6OiMdPS46gNFgy8gN1xkYyLgwLYZG3rBOg==", "cpu": [ "arm64" ], @@ -1930,9 +1837,9 @@ ] }, "node_modules/@rollup/rollup-linux-loongarch64-gnu": { - "version": "4.39.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.39.0.tgz", - "integrity": "sha512-NMRUT40+h0FBa5fb+cpxtZoGAggRem16ocVKIv5gDB5uLDgBIwrIsXlGqYbLwW8YyO3WVTk1FkFDjMETYlDqiw==", + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.40.2.tgz", + "integrity": "sha512-Ybc/1qUampKuRF4tQXc7G7QY9YRyeVSykfK36Y5Qc5dmrIxwFhrOzqaVTNoZygqZ1ZieSWTibfFhQ5qK8jpWxw==", "cpu": [ "loong64" ], @@ -1944,9 +1851,9 @@ ] }, "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.39.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.39.0.tgz", - "integrity": "sha512-0pCNnmxgduJ3YRt+D+kJ6Ai/r+TaePu9ZLENl+ZDV/CdVczXl95CbIiwwswu4L+K7uOIGf6tMo2vm8uadRaICQ==", + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.40.2.tgz", + "integrity": "sha512-3FCIrnrt03CCsZqSYAOW/k9n625pjpuMzVfeI+ZBUSDT3MVIFDSPfSUgIl9FqUftxcUXInvFah79hE1c9abD+Q==", "cpu": [ "ppc64" ], @@ -1958,9 +1865,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.39.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.39.0.tgz", - "integrity": "sha512-t7j5Zhr7S4bBtksT73bO6c3Qa2AV/HqiGlj9+KB3gNF5upcVkx+HLgxTm8DK4OkzsOYqbdqbLKwvGMhylJCPhQ==", + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.40.2.tgz", + "integrity": "sha512-QNU7BFHEvHMp2ESSY3SozIkBPaPBDTsfVNGx3Xhv+TdvWXFGOSH2NJvhD1zKAT6AyuuErJgbdvaJhYVhVqrWTg==", "cpu": [ "riscv64" ], @@ -1972,9 +1879,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-musl": { - "version": "4.39.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.39.0.tgz", - "integrity": "sha512-m6cwI86IvQ7M93MQ2RF5SP8tUjD39Y7rjb1qjHgYh28uAPVU8+k/xYWvxRO3/tBN2pZkSMa5RjnPuUIbrwVxeA==", + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.40.2.tgz", + "integrity": "sha512-5W6vNYkhgfh7URiXTO1E9a0cy4fSgfE4+Hl5agb/U1sa0kjOLMLC1wObxwKxecE17j0URxuTrYZZME4/VH57Hg==", "cpu": [ "riscv64" ], @@ -1986,9 +1893,9 @@ ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.39.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.39.0.tgz", - "integrity": "sha512-iRDJd2ebMunnk2rsSBYlsptCyuINvxUfGwOUldjv5M4tpa93K8tFMeYGpNk2+Nxl+OBJnBzy2/JCscGeO507kA==", + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.40.2.tgz", + "integrity": "sha512-B7LKIz+0+p348JoAL4X/YxGx9zOx3sR+o6Hj15Y3aaApNfAshK8+mWZEf759DXfRLeL2vg5LYJBB7DdcleYCoQ==", "cpu": [ "s390x" ], @@ -2000,9 +1907,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.39.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.39.0.tgz", - "integrity": "sha512-t9jqYw27R6Lx0XKfEFe5vUeEJ5pF3SGIM6gTfONSMb7DuG6z6wfj2yjcoZxHg129veTqU7+wOhY6GX8wmf90dA==", + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.40.2.tgz", + "integrity": "sha512-lG7Xa+BmBNwpjmVUbmyKxdQJ3Q6whHjMjzQplOs5Z+Gj7mxPtWakGHqzMqNER68G67kmCX9qX57aRsW5V0VOng==", "cpu": [ "x64" ], @@ -2014,9 +1921,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.39.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.39.0.tgz", - "integrity": "sha512-ThFdkrFDP55AIsIZDKSBWEt/JcWlCzydbZHinZ0F/r1h83qbGeenCt/G/wG2O0reuENDD2tawfAj2s8VK7Bugg==", + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.40.2.tgz", + "integrity": "sha512-tD46wKHd+KJvsmije4bUskNuvWKFcTOIM9tZ/RrmIvcXnbi0YK/cKS9FzFtAm7Oxi2EhV5N2OpfFB348vSQRXA==", "cpu": [ "x64" ], @@ -2028,9 +1935,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.39.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.39.0.tgz", - "integrity": "sha512-jDrLm6yUtbOg2TYB3sBF3acUnAwsIksEYjLeHL+TJv9jg+TmTwdyjnDex27jqEMakNKf3RwwPahDIt7QXCSqRQ==", + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.40.2.tgz", + "integrity": "sha512-Bjv/HG8RRWLNkXwQQemdsWw4Mg+IJ29LK+bJPW2SCzPKOUaMmPEppQlu/Fqk1d7+DX3V7JbFdbkh/NMmurT6Pg==", "cpu": [ "arm64" ], @@ -2042,9 +1949,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.39.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.39.0.tgz", - "integrity": "sha512-6w9uMuza+LbLCVoNKL5FSLE7yvYkq9laSd09bwS0tMjkwXrmib/4KmoJcrKhLWHvw19mwU+33ndC69T7weNNjQ==", + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.40.2.tgz", + "integrity": "sha512-dt1llVSGEsGKvzeIO76HToiYPNPYPkmjhMHhP00T9S4rDern8P2ZWvWAQUEJ+R1UdMWJ/42i/QqJ2WV765GZcA==", "cpu": [ "ia32" ], @@ -2056,9 +1963,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.39.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.39.0.tgz", - "integrity": "sha512-yAkUOkIKZlK5dl7u6dg897doBgLXmUHhIINM2c+sND3DZwnrdQkkSiDh7N75Ll4mM4dxSkYfXqU9fW3lLkMFug==", + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.40.2.tgz", + "integrity": "sha512-bwspbWB04XJpeElvsp+DCylKfF4trJDa2Y9Go8O6A7YLX2LIKGcNK/CYImJN6ZP4DcuOHB4Utl3iCbnR62DudA==", "cpu": [ "x64" ], @@ -2259,6 +2166,33 @@ "url": "https://github.com/sponsors/gregberge" } }, + "node_modules/@svgr/core/node_modules/cosmiconfig": { + "version": "8.3.6", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", + "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", + "dev": true, + "license": "MIT", + "dependencies": { + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0", + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, "node_modules/@svgr/hast-util-to-babel-ast": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-8.0.0.tgz", @@ -2301,9 +2235,9 @@ } }, "node_modules/@swc/core": { - "version": "1.11.20", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.11.20.tgz", - "integrity": "sha512-2F0+bQs7+pwbudsxRffLdfpGCQX4Ih5k88f7LqTfj2oC7aTrv7FssduOvcAvfVY/InZmyYEblKl1rqg8bvzrZQ==", + "version": "1.11.24", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.11.24.tgz", + "integrity": "sha512-MaQEIpfcEMzx3VWWopbofKJvaraqmL6HbLlw2bFZ7qYqYw3rkhM0cQVEgyzbHtTWwCwPMFZSC2DUbhlZgrMfLg==", "dev": true, "hasInstallScript": true, "license": "Apache-2.0", @@ -2319,16 +2253,16 @@ "url": "https://opencollective.com/swc" }, "optionalDependencies": { - "@swc/core-darwin-arm64": "1.11.20", - "@swc/core-darwin-x64": "1.11.20", - "@swc/core-linux-arm-gnueabihf": "1.11.20", - "@swc/core-linux-arm64-gnu": "1.11.20", - "@swc/core-linux-arm64-musl": "1.11.20", - "@swc/core-linux-x64-gnu": "1.11.20", - "@swc/core-linux-x64-musl": "1.11.20", - "@swc/core-win32-arm64-msvc": "1.11.20", - "@swc/core-win32-ia32-msvc": "1.11.20", - "@swc/core-win32-x64-msvc": "1.11.20" + "@swc/core-darwin-arm64": "1.11.24", + "@swc/core-darwin-x64": "1.11.24", + "@swc/core-linux-arm-gnueabihf": "1.11.24", + "@swc/core-linux-arm64-gnu": "1.11.24", + "@swc/core-linux-arm64-musl": "1.11.24", + "@swc/core-linux-x64-gnu": "1.11.24", + "@swc/core-linux-x64-musl": "1.11.24", + "@swc/core-win32-arm64-msvc": "1.11.24", + "@swc/core-win32-ia32-msvc": "1.11.24", + "@swc/core-win32-x64-msvc": "1.11.24" }, "peerDependencies": { "@swc/helpers": ">=0.5.17" @@ -2340,9 +2274,9 @@ } }, "node_modules/@swc/core-darwin-arm64": { - "version": "1.11.20", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.11.20.tgz", - "integrity": "sha512-Sc06h6pwMhQagU7vz92b7wwQTIibTiqRE4y/XjkvurSbjSarrtSZR4OKkrdNwUkSy1HlQE4NhKQf7tmLeQ7PhQ==", + "version": "1.11.24", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.11.24.tgz", + "integrity": "sha512-dhtVj0PC1APOF4fl5qT2neGjRLgHAAYfiVP8poJelhzhB/318bO+QCFWAiimcDoyMgpCXOhTp757gnoJJrheWA==", "cpu": [ "arm64" ], @@ -2357,9 +2291,9 @@ } }, "node_modules/@swc/core-darwin-x64": { - "version": "1.11.20", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.11.20.tgz", - "integrity": "sha512-kHANJrgbqaGzUyTectNfLyhnHAeDGGVSRXYyPVAx6x0nuLOnRhKbuSyZY42UEN1IgHauaADCzcd+HiiMv/rgRw==", + "version": "1.11.24", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.11.24.tgz", + "integrity": "sha512-H/3cPs8uxcj2Fe3SoLlofN5JG6Ny5bl8DuZ6Yc2wr7gQFBmyBkbZEz+sPVgsID7IXuz7vTP95kMm1VL74SO5AQ==", "cpu": [ "x64" ], @@ -2374,9 +2308,9 @@ } }, "node_modules/@swc/core-linux-arm-gnueabihf": { - "version": "1.11.20", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.11.20.tgz", - "integrity": "sha512-FXllEBeAwU6FNIZzo+u1LmHGaHzwAKzz7tWRkUOqBKjKr20Ot4KGS3xlz2qgV2NESFHAisdHja2P2rcQWqtZRg==", + "version": "1.11.24", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.11.24.tgz", + "integrity": "sha512-PHJgWEpCsLo/NGj+A2lXZ2mgGjsr96ULNW3+T3Bj2KTc8XtMUkE8tmY2Da20ItZOvPNC/69KroU7edyo1Flfbw==", "cpu": [ "arm" ], @@ -2391,9 +2325,9 @@ } }, "node_modules/@swc/core-linux-arm64-gnu": { - "version": "1.11.20", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.11.20.tgz", - "integrity": "sha512-OsYMFyJzUM0K8a97tu6KxZaCob3vr+UknVqHO09QwechX+rdX4euWm7Lte4d1B+7SBfokhw7ghLZsNTQfRw9pA==", + "version": "1.11.24", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.11.24.tgz", + "integrity": "sha512-C2FJb08+n5SD4CYWCTZx1uR88BN41ZieoHvI8A55hfVf2woT8+6ZiBzt74qW2g+ntZ535Jts5VwXAKdu41HpBg==", "cpu": [ "arm64" ], @@ -2408,9 +2342,9 @@ } }, "node_modules/@swc/core-linux-arm64-musl": { - "version": "1.11.20", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.11.20.tgz", - "integrity": "sha512-fbSWOQ5ZZ7sWodoC6GnzV9RhbImdxoH8b14K1tnHCWJXolzTH40/4JKf/koJ3r24nm1PtsqX9OUxRsOXYAy5dg==", + "version": "1.11.24", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.11.24.tgz", + "integrity": "sha512-ypXLIdszRo0re7PNNaXN0+2lD454G8l9LPK/rbfRXnhLWDBPURxzKlLlU/YGd2zP98wPcVooMmegRSNOKfvErw==", "cpu": [ "arm64" ], @@ -2425,9 +2359,9 @@ } }, "node_modules/@swc/core-linux-x64-gnu": { - "version": "1.11.20", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.11.20.tgz", - "integrity": "sha512-OFU53idbY8KA1RkNzZBi0FpoRPSn/anv4N7ZzGZGk664UoFwMbSL+XHGocJzhV9G/VNGH7bMBmgoVWk72nn5hw==", + "version": "1.11.24", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.11.24.tgz", + "integrity": "sha512-IM7d+STVZD48zxcgo69L0yYptfhaaE9cMZ+9OoMxirNafhKKXwoZuufol1+alEFKc+Wbwp+aUPe/DeWC/Lh3dg==", "cpu": [ "x64" ], @@ -2442,9 +2376,9 @@ } }, "node_modules/@swc/core-linux-x64-musl": { - "version": "1.11.20", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.11.20.tgz", - "integrity": "sha512-GZbqXEc09nIarkGMXc2P4Hf2ONb1vre22X7Se9CCeU/QtWYRU/H1a2TFnYgBKzNVOH65Dd/XYXcuy+tM1aw1iw==", + "version": "1.11.24", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.11.24.tgz", + "integrity": "sha512-DZByJaMVzSfjQKKQn3cqSeqwy6lpMaQDQQ4HPlch9FWtDx/dLcpdIhxssqZXcR2rhaQVIaRQsCqwV6orSDGAGw==", "cpu": [ "x64" ], @@ -2459,9 +2393,9 @@ } }, "node_modules/@swc/core-win32-arm64-msvc": { - "version": "1.11.20", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.11.20.tgz", - "integrity": "sha512-i0H2MeK8krEd/YeiGz0GHtNL9wSGfAPXiouh8aRNV/u+w4vPaaRqnXwv/yzAW+D2vPpKJBhOwmNFFzdgTJ5mWw==", + "version": "1.11.24", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.11.24.tgz", + "integrity": "sha512-Q64Ytn23y9aVDKN5iryFi8mRgyHw3/kyjTjT4qFCa8AEb5sGUuSj//AUZ6c0J7hQKMHlg9do5Etvoe61V98/JQ==", "cpu": [ "arm64" ], @@ -2476,9 +2410,9 @@ } }, "node_modules/@swc/core-win32-ia32-msvc": { - "version": "1.11.20", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.11.20.tgz", - "integrity": "sha512-/7e3X7EGO8uOvAUP+YKJTdoR2JR5vdiewDOnDS9FFXj8yr9x6/oDFLd92Sp9NglF+aXuqAo33IfH2OTz1MR+Ww==", + "version": "1.11.24", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.11.24.tgz", + "integrity": "sha512-9pKLIisE/Hh2vJhGIPvSoTK4uBSPxNVyXHmOrtdDot4E1FUUI74Vi8tFdlwNbaj8/vusVnb8xPXsxF1uB0VgiQ==", "cpu": [ "ia32" ], @@ -2493,9 +2427,9 @@ } }, "node_modules/@swc/core-win32-x64-msvc": { - "version": "1.11.20", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.11.20.tgz", - "integrity": "sha512-rcZpt5uiVNTs/Se+CYBoaDphafFJcsqXo3DNmfkJZoDZUb4PZqxu61p4Qa+lvFDQlRragrlLRpGQM9qnLNd4iQ==", + "version": "1.11.24", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.11.24.tgz", + "integrity": "sha512-sybnXtOsdB+XvzVFlBVGgRHLqp3yRpHK7CrmpuDKszhj/QhmsaZzY/GHSeALlMtLup13M0gqbcQvsTNlAHTg3w==", "cpu": [ "x64" ], @@ -2526,6 +2460,275 @@ "@swc/counter": "^0.1.3" } }, + "node_modules/@tailwindcss/node": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.1.5.tgz", + "integrity": "sha512-CBhSWo0vLnWhXIvpD0qsPephiaUYfHUX3U9anwDaHZAeuGpTiB3XmsxPAN6qX7bFhipyGBqOa1QYQVVhkOUGxg==", + "dev": true, + "license": "MIT", + "dependencies": { + "enhanced-resolve": "^5.18.1", + "jiti": "^2.4.2", + "lightningcss": "1.29.2", + "tailwindcss": "4.1.5" + } + }, + "node_modules/@tailwindcss/oxide": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.1.5.tgz", + "integrity": "sha512-1n4br1znquEvyW/QuqMKQZlBen+jxAbvyduU87RS8R3tUSvByAkcaMTkJepNIrTlYhD+U25K4iiCIxE6BGdRYA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10" + }, + "optionalDependencies": { + "@tailwindcss/oxide-android-arm64": "4.1.5", + "@tailwindcss/oxide-darwin-arm64": "4.1.5", + "@tailwindcss/oxide-darwin-x64": "4.1.5", + "@tailwindcss/oxide-freebsd-x64": "4.1.5", + "@tailwindcss/oxide-linux-arm-gnueabihf": "4.1.5", + "@tailwindcss/oxide-linux-arm64-gnu": "4.1.5", + "@tailwindcss/oxide-linux-arm64-musl": "4.1.5", + "@tailwindcss/oxide-linux-x64-gnu": "4.1.5", + "@tailwindcss/oxide-linux-x64-musl": "4.1.5", + "@tailwindcss/oxide-wasm32-wasi": "4.1.5", + "@tailwindcss/oxide-win32-arm64-msvc": "4.1.5", + "@tailwindcss/oxide-win32-x64-msvc": "4.1.5" + } + }, + "node_modules/@tailwindcss/oxide-android-arm64": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.1.5.tgz", + "integrity": "sha512-LVvM0GirXHED02j7hSECm8l9GGJ1RfgpWCW+DRn5TvSaxVsv28gRtoL4aWKGnXqwvI3zu1GABeDNDVZeDPOQrw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-darwin-arm64": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.1.5.tgz", + "integrity": "sha512-//TfCA3pNrgnw4rRJOqavW7XUk8gsg9ddi8cwcsWXp99tzdBAZW0WXrD8wDyNbqjW316Pk2hiN/NJx/KWHl8oA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-darwin-x64": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.1.5.tgz", + "integrity": "sha512-XQorp3Q6/WzRd9OalgHgaqgEbjP3qjHrlSUb5k1EuS1Z9NE9+BbzSORraO+ecW432cbCN7RVGGL/lSnHxcd+7Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-freebsd-x64": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.1.5.tgz", + "integrity": "sha512-bPrLWbxo8gAo97ZmrCbOdtlz/Dkuy8NK97aFbVpkJ2nJ2Jo/rsCbu0TlGx8joCuA3q6vMWTSn01JY46iwG+clg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.1.5.tgz", + "integrity": "sha512-1gtQJY9JzMAhgAfvd/ZaVOjh/Ju/nCoAsvOVJenWZfs05wb8zq+GOTnZALWGqKIYEtyNpCzvMk+ocGpxwdvaVg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm64-gnu": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.1.5.tgz", + "integrity": "sha512-dtlaHU2v7MtdxBXoqhxwsWjav7oim7Whc6S9wq/i/uUMTWAzq/gijq1InSgn2yTnh43kR+SFvcSyEF0GCNu1PQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm64-musl": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.1.5.tgz", + "integrity": "sha512-fg0F6nAeYcJ3CriqDT1iVrqALMwD37+sLzXs8Rjy8Z1ZHshJoYceodfyUwGJEsQoTyWbliFNRs2wMQNXtT7MVA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-x64-gnu": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.1.5.tgz", + "integrity": "sha512-SO+F2YEIAHa1AITwc8oPwMOWhgorPzzcbhWEb+4oLi953h45FklDmM8dPSZ7hNHpIk9p/SCZKUYn35t5fjGtHA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-x64-musl": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.1.5.tgz", + "integrity": "sha512-6UbBBplywkk/R+PqqioskUeXfKcBht3KU7juTi1UszJLx0KPXUo10v2Ok04iBJIaDPkIFkUOVboXms5Yxvaz+g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-wasm32-wasi": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.1.5.tgz", + "integrity": "sha512-hwALf2K9FHuiXTPqmo1KeOb83fTRNbe9r/Ixv9ZNQ/R24yw8Ge1HOWDDgTdtzntIaIUJG5dfXCf4g9AD4RiyhQ==", + "bundleDependencies": [ + "@napi-rs/wasm-runtime", + "@emnapi/core", + "@emnapi/runtime", + "@tybys/wasm-util", + "@emnapi/wasi-threads", + "tslib" + ], + "cpu": [ + "wasm32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/core": "^1.4.3", + "@emnapi/runtime": "^1.4.3", + "@emnapi/wasi-threads": "^1.0.2", + "@napi-rs/wasm-runtime": "^0.2.9", + "@tybys/wasm-util": "^0.9.0", + "tslib": "^2.8.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@tailwindcss/oxide-win32-arm64-msvc": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.1.5.tgz", + "integrity": "sha512-oDKncffWzaovJbkuR7/OTNFRJQVdiw/n8HnzaCItrNQUeQgjy7oUiYpsm9HUBgpmvmDpSSbGaCa2Evzvk3eFmA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-win32-x64-msvc": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.1.5.tgz", + "integrity": "sha512-WiR4dtyrFdbb+ov0LK+7XsFOsG+0xs0PKZKkt41KDn9jYpO7baE3bXiudPVkTqUEwNfiglCygQHl2jklvSBi7Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/vite": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@tailwindcss/vite/-/vite-4.1.5.tgz", + "integrity": "sha512-FE1stRoqdHSb7RxesMfCXE8icwI1W6zGE/512ae3ZDrpkQYTTYeSyUJPRCjZd8CwVAhpDUbi1YR8pcZioFJQ/w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@tailwindcss/node": "4.1.5", + "@tailwindcss/oxide": "4.1.5", + "tailwindcss": "4.1.5" + }, + "peerDependencies": { + "vite": "^5.2.0 || ^6" + } + }, "node_modules/@types/estree": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz", @@ -2544,7 +2747,9 @@ "version": "4.0.2", "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz", "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==", - "license": "MIT" + "license": "MIT", + "optional": true, + "peer": true }, "node_modules/@types/prop-types": { "version": "15.7.14", @@ -2553,14 +2758,12 @@ "license": "MIT" }, "node_modules/@types/react": { - "version": "17.0.85", - "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.85.tgz", - "integrity": "sha512-5oBDUsRDsrYq4DdyHaL99gE1AJCfuDhyxqF6/55fvvOIRkp1PpKuwJ+aMiGJR+GJt7YqMNclPROTHF20vY2cXA==", + "version": "19.1.3", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.3.tgz", + "integrity": "sha512-dLWQ+Z0CkIvK1J8+wrDPwGxEYFA4RAyHoZPxHVGspYmFVnwGSNT24cGIhFJrtfRnWVuW8X7NO52gCXmhkVUWGQ==", "license": "MIT", "peer": true, "dependencies": { - "@types/prop-types": "*", - "@types/scheduler": "^0.16", "csstype": "^3.0.2" } }, @@ -2573,28 +2776,14 @@ "@types/react": "*" } }, - "node_modules/@types/react/node_modules/csstype": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", - "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", - "license": "MIT", - "peer": true - }, - "node_modules/@types/scheduler": { - "version": "0.16.8", - "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.8.tgz", - "integrity": "sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==", - "license": "MIT", - "peer": true - }, "node_modules/@vitejs/plugin-react-swc": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-react-swc/-/plugin-react-swc-3.8.1.tgz", - "integrity": "sha512-aEUPCckHDcFyxpwFm0AIkbtv6PpUp3xTb9wYGFjtABynXjCYKkWoxX0AOK9NT9XCrdk6mBBUOeHQS+RKdcNO1A==", + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react-swc/-/plugin-react-swc-3.9.0.tgz", + "integrity": "sha512-jYFUSXhwMCYsh/aQTgSGLIN3Foz5wMbH9ahb0Zva//UzwZYbMiZd7oT3AU9jHT9DLswYDswsRwPU9jVF3yA48Q==", "dev": true, "license": "MIT", "dependencies": { - "@swc/core": "^1.11.11" + "@swc/core": "^1.11.21" }, "peerDependencies": { "vite": "^4 || ^5 || ^6" @@ -2648,6 +2837,20 @@ "node": ">=8" } }, + "node_modules/accepts": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-2.0.0.tgz", + "integrity": "sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==", + "dev": true, + "license": "MIT", + "dependencies": { + "mime-types": "^3.0.0", + "negotiator": "^1.0.0" + }, + "engines": { + "node": ">= 0.6" + } + }, "node_modules/acorn": { "version": "8.14.1", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz", @@ -2935,6 +3138,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz", "integrity": "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==", "license": "MIT", + "optional": true, + "peer": true, "dependencies": { "@babel/runtime": "^7.12.5", "cosmiconfig": "^7.0.0", @@ -2945,51 +3150,6 @@ "npm": ">=6" } }, - "node_modules/babel-plugin-macros/node_modules/cosmiconfig": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", - "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", - "license": "MIT", - "dependencies": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.2.1", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.10.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/babel-plugin-macros/node_modules/resolve": { - "version": "1.22.10", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", - "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", - "license": "MIT", - "dependencies": { - "is-core-module": "^2.16.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/babel-plugin-macros/node_modules/yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", - "license": "ISC", - "engines": { - "node": ">= 6" - } - }, "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", @@ -3194,11 +3354,45 @@ "license": "MIT" }, "node_modules/bn.js": { - "version": "4.12.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz", - "integrity": "sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==", + "version": "4.12.2", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.2.tgz", + "integrity": "sha512-n4DSx829VRTRByMRGdjQ9iqsN0Bh4OolPsFnaZBLcbi8iXcB+kJ9s7EnRt4wILZNV3kPLHkRVfOc/HvhC3ovDw==", "license": "MIT" }, + "node_modules/body-parser": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-2.2.0.tgz", + "integrity": "sha512-02qvAaxv8tp7fBa/mw1ga98OGm+eCbqzJOKoRt70sLmfEEi+jyBYVTDGfCL/k06/4EMk/z01gCe7HoCH/f2LTg==", + "dev": true, + "license": "MIT", + "dependencies": { + "bytes": "^3.1.2", + "content-type": "^1.0.5", + "debug": "^4.4.0", + "http-errors": "^2.0.0", + "iconv-lite": "^0.6.3", + "on-finished": "^2.4.1", + "qs": "^6.14.0", + "raw-body": "^3.0.0", + "type-is": "^2.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/body-parser/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -3230,9 +3424,9 @@ "license": "MIT" }, "node_modules/browserslist": { - "version": "4.24.4", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.4.tgz", - "integrity": "sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==", + "version": "4.24.5", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.5.tgz", + "integrity": "sha512-FDToo4Wo82hIdgc1CQ+NQD0hEhmpPjrZ3hiUgwgOG6IuTdlpr8jdjyG24P6cNP1yJpTLzS5OcGgSw0xmDU1/Tw==", "dev": true, "funding": [ { @@ -3250,10 +3444,10 @@ ], "license": "MIT", "dependencies": { - "caniuse-lite": "^1.0.30001688", - "electron-to-chromium": "^1.5.73", + "caniuse-lite": "^1.0.30001716", + "electron-to-chromium": "^1.5.149", "node-releases": "^2.0.19", - "update-browserslist-db": "^1.1.1" + "update-browserslist-db": "^1.1.3" }, "bin": { "browserslist": "cli.js" @@ -3311,6 +3505,16 @@ "resolved": "https://registry.npmjs.org/buffer-compare/-/buffer-compare-1.1.1.tgz", "integrity": "sha512-O6NvNiHZMd3mlIeMDjP6t/gPG75OqGPeiRZXoMQZJ6iy9GofCls4Ijs5YkPZZwoysizLiedhticmdyx/GyHghA==" }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/call-bind": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", @@ -3365,6 +3569,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "devOptional": true, "license": "MIT", "engines": { "node": ">=6" @@ -3384,9 +3589,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001713", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001713.tgz", - "integrity": "sha512-wCIWIg+A4Xr7NfhTuHdX+/FKh3+Op3LBbSp2N5Pfx6T/LhdQy3GTyoTg48BReaW/MyMNZAkTadsBtai3ldWK0Q==", + "version": "1.0.30001717", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001717.tgz", + "integrity": "sha512-auPpttCq6BDEG8ZAuHJIplGw6GODhjw+/11e7IjpnYCxZcW/ONgPs0KVBJ0d1bY3e2+7PRe5RCLyP+PfwVgkYw==", "dev": true, "funding": [ { @@ -3498,9 +3703,9 @@ } }, "node_modules/clsx": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", - "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", "license": "MIT", "engines": { "node": ">=6" @@ -3552,12 +3757,56 @@ "dev": true, "license": "MIT" }, - "node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "node_modules/content-disposition": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-1.0.0.tgz", + "integrity": "sha512-Au9nRL8VNUut/XSzbQA38+M78dzP4D+eqg3gfJHMIHHYa3bg067xj1KxMUWj+VULbiZMowKngFFbKczUrNJ1mg==", "dev": true, - "license": "MIT" + "license": "MIT", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "license": "MIT", + "optional": true, + "peer": true + }, + "node_modules/cookie": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", + "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.2.2.tgz", + "integrity": "sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.6.0" + } }, "node_modules/copy-to-clipboard": { "version": "3.3.3", @@ -3574,31 +3823,47 @@ "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", "license": "MIT" }, - "node_modules/cosmiconfig": { - "version": "8.3.6", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", - "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", + "node_modules/cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", "dev": true, "license": "MIT", "dependencies": { - "import-fresh": "^3.3.0", - "js-yaml": "^4.1.0", - "parse-json": "^5.2.0", - "path-type": "^4.0.0" + "object-assign": "^4", + "vary": "^1" }, "engines": { - "node": ">=14" + "node": ">= 0.10" + } + }, + "node_modules/cosmiconfig": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" }, - "funding": { - "url": "https://github.com/sponsors/d-fischer" - }, - "peerDependencies": { - "typescript": ">=4.9.5" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "engines": { + "node": ">=10" + } + }, + "node_modules/cosmiconfig/node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "license": "ISC", + "optional": true, + "peer": true, + "engines": { + "node": ">= 6" } }, "node_modules/countries-and-timezones": { @@ -3659,15 +3924,11 @@ "integrity": "sha512-DIT51nX0dCfKltpRiXV+/TVZq+Qq2NgF4644+K7Ttnla7zEzqc+kjJyiB96BHNyUTBxyjzRcZYpUdZa+QAqi6Q==", "license": "MIT" }, - "node_modules/css-vendor": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/css-vendor/-/css-vendor-2.0.8.tgz", - "integrity": "sha512-x9Aq0XTInxrkuFeHKbYC7zWY8ai7qJ04Kxd9MnvbC1uO5DagxoHQjm4JvG+vCdXOoFtCjbL2XSZfxmoYa9uQVQ==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.8.3", - "is-in-browser": "^1.0.2" - } + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "license": "MIT" }, "node_modules/d3": { "version": "6.7.0", @@ -4060,6 +4321,7 @@ "version": "4.4.0", "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "devOptional": true, "license": "MIT", "dependencies": { "ms": "^2.1.3" @@ -4131,6 +4393,26 @@ "integrity": "sha512-WNPWi1IRKZfCt/qIDMfERkDp93+iZEmOxN2yy4Jg+Xhv8SLk2UTqqbe1sfiipn0and9QrE914/ihdx82Y/Giag==", "license": "ISC" }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/detect-libc": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.4.tgz", + "integrity": "sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=8" + } + }, "node_modules/doctrine": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", @@ -4154,12 +4436,6 @@ "csstype": "^3.0.2" } }, - "node_modules/dom-helpers/node_modules/csstype": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", - "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", - "license": "MIT" - }, "node_modules/dot-case": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", @@ -4255,10 +4531,17 @@ "safe-buffer": "^5.0.1" } }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "dev": true, + "license": "MIT" + }, "node_modules/electron-to-chromium": { - "version": "1.5.136", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.136.tgz", - "integrity": "sha512-kL4+wUTD7RSA5FHx5YwWtjDnEEkIIikFgWHR4P6fqjw1PPLlqYkxeOb++wAauAssat0YClCy8Y3C5SxgSkjibQ==", + "version": "1.5.151", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.151.tgz", + "integrity": "sha512-Rl6uugut2l9sLojjS4H4SAr3A4IgACMLgpuEMPYCVcKydzfyPrn5absNRju38IhQOf/NwjJY8OGWjlteqYeBCA==", "dev": true, "license": "ISC" }, @@ -4290,6 +4573,30 @@ "dev": true, "license": "MIT" }, + "node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/enhanced-resolve": { + "version": "5.18.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.1.tgz", + "integrity": "sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, "node_modules/entities": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", @@ -4320,6 +4627,7 @@ "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "devOptional": true, "license": "MIT", "dependencies": { "is-arrayish": "^0.2.1" @@ -4500,9 +4808,9 @@ } }, "node_modules/esbuild": { - "version": "0.25.2", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.2.tgz", - "integrity": "sha512-16854zccKPnC+toMywC+uKNeYSv+/eXkevRAfwRD/G9Cleq66m8XFIrigkbvauLLlCfDL45Q2cWegSg53gGBnQ==", + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.4.tgz", + "integrity": "sha512-8pgjLUcUjcgDg+2Q4NYXnPbo/vncAY4UmyaCm0jZevERqCHZIaWwdJHkf8XQtu4AxSKCdvrUbT0XUr1IdZzI8Q==", "dev": true, "hasInstallScript": true, "license": "MIT", @@ -4513,31 +4821,31 @@ "node": ">=18" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.25.2", - "@esbuild/android-arm": "0.25.2", - "@esbuild/android-arm64": "0.25.2", - "@esbuild/android-x64": "0.25.2", - "@esbuild/darwin-arm64": "0.25.2", - "@esbuild/darwin-x64": "0.25.2", - "@esbuild/freebsd-arm64": "0.25.2", - "@esbuild/freebsd-x64": "0.25.2", - "@esbuild/linux-arm": "0.25.2", - "@esbuild/linux-arm64": "0.25.2", - "@esbuild/linux-ia32": "0.25.2", - "@esbuild/linux-loong64": "0.25.2", - "@esbuild/linux-mips64el": "0.25.2", - "@esbuild/linux-ppc64": "0.25.2", - "@esbuild/linux-riscv64": "0.25.2", - "@esbuild/linux-s390x": "0.25.2", - "@esbuild/linux-x64": "0.25.2", - "@esbuild/netbsd-arm64": "0.25.2", - "@esbuild/netbsd-x64": "0.25.2", - "@esbuild/openbsd-arm64": "0.25.2", - "@esbuild/openbsd-x64": "0.25.2", - "@esbuild/sunos-x64": "0.25.2", - "@esbuild/win32-arm64": "0.25.2", - "@esbuild/win32-ia32": "0.25.2", - "@esbuild/win32-x64": "0.25.2" + "@esbuild/aix-ppc64": "0.25.4", + "@esbuild/android-arm": "0.25.4", + "@esbuild/android-arm64": "0.25.4", + "@esbuild/android-x64": "0.25.4", + "@esbuild/darwin-arm64": "0.25.4", + "@esbuild/darwin-x64": "0.25.4", + "@esbuild/freebsd-arm64": "0.25.4", + "@esbuild/freebsd-x64": "0.25.4", + "@esbuild/linux-arm": "0.25.4", + "@esbuild/linux-arm64": "0.25.4", + "@esbuild/linux-ia32": "0.25.4", + "@esbuild/linux-loong64": "0.25.4", + "@esbuild/linux-mips64el": "0.25.4", + "@esbuild/linux-ppc64": "0.25.4", + "@esbuild/linux-riscv64": "0.25.4", + "@esbuild/linux-s390x": "0.25.4", + "@esbuild/linux-x64": "0.25.4", + "@esbuild/netbsd-arm64": "0.25.4", + "@esbuild/netbsd-x64": "0.25.4", + "@esbuild/openbsd-arm64": "0.25.4", + "@esbuild/openbsd-x64": "0.25.4", + "@esbuild/sunos-x64": "0.25.4", + "@esbuild/win32-arm64": "0.25.4", + "@esbuild/win32-ia32": "0.25.4", + "@esbuild/win32-x64": "0.25.4" } }, "node_modules/esbuild-plugin-react-virtualized": { @@ -4560,10 +4868,18 @@ "node": ">=6" } }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "dev": true, + "license": "MIT" + }, "node_modules/escape-string-regexp": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "devOptional": true, "license": "MIT", "engines": { "node": ">=10" @@ -4573,23 +4889,24 @@ } }, "node_modules/eslint": { - "version": "9.24.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.24.0.tgz", - "integrity": "sha512-eh/jxIEJyZrvbWRe4XuVclLPDYSYYYgLy5zXGGxD6j8zjSAxFEzI2fL/8xNq6O2yKqVt+eF2YhV+hxjV6UKXwQ==", + "version": "9.26.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.26.0.tgz", + "integrity": "sha512-Hx0MOjPh6uK9oq9nVsATZKE/Wlbai7KFjfCuw9UHaguDW3x+HF0O5nIi3ud39TWgrTjTO5nHxmL3R1eANinWHQ==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.12.1", "@eslint/config-array": "^0.20.0", - "@eslint/config-helpers": "^0.2.0", - "@eslint/core": "^0.12.0", + "@eslint/config-helpers": "^0.2.1", + "@eslint/core": "^0.13.0", "@eslint/eslintrc": "^3.3.1", - "@eslint/js": "9.24.0", - "@eslint/plugin-kit": "^0.2.7", + "@eslint/js": "9.26.0", + "@eslint/plugin-kit": "^0.2.8", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", "@humanwhocodes/retry": "^0.4.2", + "@modelcontextprotocol/sdk": "^1.8.0", "@types/estree": "^1.0.6", "@types/json-schema": "^7.0.15", "ajv": "^6.12.4", @@ -4613,7 +4930,8 @@ "lodash.merge": "^4.6.2", "minimatch": "^3.1.2", "natural-compare": "^1.4.0", - "optionator": "^0.9.3" + "optionator": "^0.9.3", + "zod": "^3.24.2" }, "bin": { "eslint": "bin/eslint.js" @@ -4680,9 +4998,9 @@ } }, "node_modules/eslint-plugin-react-compiler": { - "version": "19.0.0-beta-e993439-20250405", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-compiler/-/eslint-plugin-react-compiler-19.0.0-beta-e993439-20250405.tgz", - "integrity": "sha512-8ZQU4qGc8NOfsM7u7tf7gXmZ+d4tSK+7BFb+Fvs4s9ItQ12m/G6ttSGxompH/Jq7nXgnJ20EqQRshwVG6GwUdA==", + "version": "19.0.0-beta-ebf51a3-20250411", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-compiler/-/eslint-plugin-react-compiler-19.0.0-beta-ebf51a3-20250411.tgz", + "integrity": "sha512-R7ncuwbCPFAoeMlS56DGGSJFxmRtlWafYH/iWyep5Ks0RaPqTCL4k5gA87axUBBcITsaIgUGkbqAxDxl8Xfm5A==", "dev": true, "license": "MIT", "dependencies": { @@ -4700,6 +5018,24 @@ "eslint": ">=7" } }, + "node_modules/eslint-plugin-react/node_modules/resolve": { + "version": "2.0.0-next.5", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", + "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/eslint-scope": { "version": "8.3.0", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.3.0.tgz", @@ -4801,6 +5137,16 @@ "node": ">=0.10.0" } }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, "node_modules/ethereumjs-icap": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/ethereumjs-icap/-/ethereumjs-icap-0.3.2.tgz", @@ -4818,6 +5164,29 @@ "dev": true, "license": "MIT" }, + "node_modules/eventsource": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-3.0.6.tgz", + "integrity": "sha512-l19WpE2m9hSuyP06+FbuUUf1G+R0SFLrtQfbRb9PRr+oimOfxQhgGCbVaXg5IvZyyTThJsxh6L/srkMiCeBPDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "eventsource-parser": "^3.0.1" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/eventsource-parser": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/eventsource-parser/-/eventsource-parser-3.0.1.tgz", + "integrity": "sha512-VARTJ9CYeuQYb0pZEPbzi740OWFgpHe7AYJ2WFZVnUDUQp5Dk2yJUgF36YsZ81cOyxT0QxmXD2EQpapAouzWVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18.0.0" + } + }, "node_modules/execa": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", @@ -4842,6 +5211,65 @@ "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, + "node_modules/express": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/express/-/express-5.1.0.tgz", + "integrity": "sha512-DT9ck5YIRU+8GYzzU5kT3eHGA5iL+1Zd0EutOmTE9Dtk+Tvuzd23VBU+ec7HPNSTxXYO55gPV/hq4pSBJDjFpA==", + "dev": true, + "license": "MIT", + "dependencies": { + "accepts": "^2.0.0", + "body-parser": "^2.2.0", + "content-disposition": "^1.0.0", + "content-type": "^1.0.5", + "cookie": "^0.7.1", + "cookie-signature": "^1.2.1", + "debug": "^4.4.0", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "etag": "^1.8.1", + "finalhandler": "^2.1.0", + "fresh": "^2.0.0", + "http-errors": "^2.0.0", + "merge-descriptors": "^2.0.0", + "mime-types": "^3.0.0", + "on-finished": "^2.4.1", + "once": "^1.4.0", + "parseurl": "^1.3.3", + "proxy-addr": "^2.0.7", + "qs": "^6.14.0", + "range-parser": "^1.2.1", + "router": "^2.2.0", + "send": "^1.1.0", + "serve-static": "^2.2.0", + "statuses": "^2.0.1", + "type-is": "^2.0.1", + "vary": "^1.1.2" + }, + "engines": { + "node": ">= 18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/express-rate-limit": { + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/express-rate-limit/-/express-rate-limit-7.5.0.tgz", + "integrity": "sha512-eB5zbQh5h+VenMPM3fh+nw1YExi5nMr6HUCR62ELSP11huvxm/Uir1H1QEyTkk5QX6A58pX6NmaTMceKZ0Eodg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://github.com/sponsors/express-rate-limit" + }, + "peerDependencies": { + "express": "^4.11 || 5 || ^5.0.0-beta.1" + } + }, "node_modules/extract-files": { "version": "13.0.0", "resolved": "https://registry.npmjs.org/extract-files/-/extract-files-13.0.0.tgz", @@ -4928,11 +5356,31 @@ "node": ">=8" } }, + "node_modules/finalhandler": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-2.1.0.tgz", + "integrity": "sha512-/t88Ty3d5JWQbWYgaOGCCYfXRwV1+be02WqYYlL6h0lEiUAMPM8o8qKGO01YIkOHzka2up08wvgYD0mDiI+q3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.4.0", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "on-finished": "^2.4.1", + "parseurl": "^1.3.3", + "statuses": "^2.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, "node_modules/find-root": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==", - "license": "MIT" + "license": "MIT", + "optional": true, + "peer": true }, "node_modules/find-up": { "version": "5.0.0", @@ -5013,50 +5461,24 @@ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "license": "0BSD" }, - "node_modules/framer-motion": { - "version": "4.1.17", - "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-4.1.17.tgz", - "integrity": "sha512-thx1wvKzblzbs0XaK2X0G1JuwIdARcoNOW7VVwjO8BUltzXPyONGAElLu6CiCScsOQRI7FIk/45YTFtJw5Yozw==", + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "dev": true, "license": "MIT", - "dependencies": { - "framesync": "5.3.0", - "hey-listen": "^1.0.8", - "popmotion": "9.3.6", - "style-value-types": "4.1.4", - "tslib": "^2.1.0" - }, - "optionalDependencies": { - "@emotion/is-prop-valid": "^0.8.2" - }, - "peerDependencies": { - "react": ">=16.8 || ^17.0.0", - "react-dom": ">=16.8 || ^17.0.0" + "engines": { + "node": ">= 0.6" } }, - "node_modules/framer-motion/node_modules/@emotion/is-prop-valid": { - "version": "0.8.8", - "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz", - "integrity": "sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA==", + "node_modules/fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-2.0.0.tgz", + "integrity": "sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==", + "dev": true, "license": "MIT", - "optional": true, - "dependencies": { - "@emotion/memoize": "0.7.4" - } - }, - "node_modules/framer-motion/node_modules/@emotion/memoize": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.4.tgz", - "integrity": "sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==", - "license": "MIT", - "optional": true - }, - "node_modules/framesync": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/framesync/-/framesync-5.3.0.tgz", - "integrity": "sha512-oc5m68HDO/tuK2blj7ZcdEBRx3p1PjrgHazL8GYEpvULhrtGIFbQArN6cQS2QhW8mitffaB+VYzMjDqBxxQeoA==", - "license": "MIT", - "dependencies": { - "tslib": "^2.1.0" + "engines": { + "node": ">= 0.8" } }, "node_modules/fsevents": { @@ -5078,6 +5500,7 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "devOptional": true, "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" @@ -5263,10 +5686,17 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, + "license": "ISC" + }, "node_modules/graphql": { - "version": "16.10.0", - "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.10.0.tgz", - "integrity": "sha512-AjqGKbDGUFRKIRCP9tCKiIGHyriz2oHEbPIbEtcSLSs4YjReZOIPQQWek4+6hjw62H9QShXHyaGivGiYVLeYFQ==", + "version": "16.11.0", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.11.0.tgz", + "integrity": "sha512-mS1lbMsxgQj6hge1XZ6p7GPhbrtFwUFYi3wRzXAC/FmYnyXMTvvI3td3rjmQ2u8ewXueaSvRPWaEcgVVOT9Jnw==", "license": "MIT", "peer": true, "engines": { @@ -5423,6 +5853,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "devOptional": true, "license": "MIT", "dependencies": { "function-bind": "^1.1.2" @@ -5448,12 +5879,6 @@ "hermes-estree": "0.25.1" } }, - "node_modules/hey-listen": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/hey-listen/-/hey-listen-1.0.8.tgz", - "integrity": "sha512-COpmrF2NOg4TBWUJ5UVyaCU2A88wEMkUPK4hNqyCkqHbxT92BbvfjoSozkAIIm6XhicGlJHhFdullInrdhwU8Q==", - "license": "MIT" - }, "node_modules/history": { "version": "4.10.1", "resolved": "https://registry.npmjs.org/history/-/history-4.10.1.tgz", @@ -5494,6 +5919,30 @@ "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", "license": "MIT" }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-errors/node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true, + "license": "ISC" + }, "node_modules/human-signals": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", @@ -5504,12 +5953,6 @@ "node": ">=16.17.0" } }, - "node_modules/hyphenate-style-name": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/hyphenate-style-name/-/hyphenate-style-name-1.1.0.tgz", - "integrity": "sha512-WDC/ui2VVRrz3jOVi+XtjqkDjiVjTtFaAGiW37k6b+ohyQ5wYDOGkvCZa8+H0nx3gyvv0+BST9xuOgIyGQ00gw==", - "license": "BSD-3-Clause" - }, "node_modules/iconv-lite": { "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", @@ -5562,6 +6005,7 @@ "version": "3.3.1", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", + "devOptional": true, "license": "MIT", "dependencies": { "parent-module": "^1.0.0", @@ -5611,6 +6055,16 @@ "integrity": "sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==", "license": "ISC" }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, "node_modules/is-array-buffer": { "version": "3.0.5", "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", @@ -5633,6 +6087,7 @@ "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "devOptional": true, "license": "MIT" }, "node_modules/is-async-function": { @@ -5705,6 +6160,7 @@ "version": "2.16.1", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "devOptional": true, "license": "MIT", "dependencies": { "hasown": "^2.0.2" @@ -5892,6 +6348,13 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/is-promise": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz", + "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==", + "dev": true, + "license": "MIT" + }, "node_modules/is-regex": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", @@ -6081,6 +6544,16 @@ "node": ">= 0.4" } }, + "node_modules/jiti": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.4.2.tgz", + "integrity": "sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==", + "dev": true, + "license": "MIT", + "bin": { + "jiti": "lib/jiti-cli.mjs" + } + }, "node_modules/js-sha256": { "version": "0.9.0", "resolved": "https://registry.npmjs.org/js-sha256/-/js-sha256-0.9.0.tgz", @@ -6110,6 +6583,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "devOptional": true, "license": "MIT", "bin": { "jsesc": "bin/jsesc" @@ -6129,6 +6603,7 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "devOptional": true, "license": "MIT" }, "node_modules/json-schema-traverse": { @@ -6174,27 +6649,6 @@ "url": "https://opencollective.com/jss" } }, - "node_modules/jss-plugin-camel-case": { - "version": "10.10.0", - "resolved": "https://registry.npmjs.org/jss-plugin-camel-case/-/jss-plugin-camel-case-10.10.0.tgz", - "integrity": "sha512-z+HETfj5IYgFxh1wJnUAU8jByI48ED+v0fuTuhKrPR+pRBYS2EDwbusU8aFOpCdYhtRc9zhN+PJ7iNE8pAWyPw==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.3.1", - "hyphenate-style-name": "^1.0.3", - "jss": "10.10.0" - } - }, - "node_modules/jss-plugin-default-unit": { - "version": "10.10.0", - "resolved": "https://registry.npmjs.org/jss-plugin-default-unit/-/jss-plugin-default-unit-10.10.0.tgz", - "integrity": "sha512-SvpajxIECi4JDUbGLefvNckmI+c2VWmP43qnEy/0eiwzRUsafg5DVSIWSzZe4d2vFX1u9nRDP46WCFV/PXVBGQ==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.3.1", - "jss": "10.10.0" - } - }, "node_modules/jss-plugin-extend": { "version": "10.10.0", "resolved": "https://registry.npmjs.org/jss-plugin-extend/-/jss-plugin-extend-10.10.0.tgz", @@ -6206,65 +6660,6 @@ "tiny-warning": "^1.0.2" } }, - "node_modules/jss-plugin-global": { - "version": "10.10.0", - "resolved": "https://registry.npmjs.org/jss-plugin-global/-/jss-plugin-global-10.10.0.tgz", - "integrity": "sha512-icXEYbMufiNuWfuazLeN+BNJO16Ge88OcXU5ZDC2vLqElmMybA31Wi7lZ3lf+vgufRocvPj8443irhYRgWxP+A==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.3.1", - "jss": "10.10.0" - } - }, - "node_modules/jss-plugin-nested": { - "version": "10.10.0", - "resolved": "https://registry.npmjs.org/jss-plugin-nested/-/jss-plugin-nested-10.10.0.tgz", - "integrity": "sha512-9R4JHxxGgiZhurDo3q7LdIiDEgtA1bTGzAbhSPyIOWb7ZubrjQe8acwhEQ6OEKydzpl8XHMtTnEwHXCARLYqYA==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.3.1", - "jss": "10.10.0", - "tiny-warning": "^1.0.2" - } - }, - "node_modules/jss-plugin-props-sort": { - "version": "10.10.0", - "resolved": "https://registry.npmjs.org/jss-plugin-props-sort/-/jss-plugin-props-sort-10.10.0.tgz", - "integrity": "sha512-5VNJvQJbnq/vRfje6uZLe/FyaOpzP/IH1LP+0fr88QamVrGJa0hpRRyAa0ea4U/3LcorJfBFVyC4yN2QC73lJg==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.3.1", - "jss": "10.10.0" - } - }, - "node_modules/jss-plugin-rule-value-function": { - "version": "10.10.0", - "resolved": "https://registry.npmjs.org/jss-plugin-rule-value-function/-/jss-plugin-rule-value-function-10.10.0.tgz", - "integrity": "sha512-uEFJFgaCtkXeIPgki8ICw3Y7VMkL9GEan6SqmT9tqpwM+/t+hxfMUdU4wQ0MtOiMNWhwnckBV0IebrKcZM9C0g==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.3.1", - "jss": "10.10.0", - "tiny-warning": "^1.0.2" - } - }, - "node_modules/jss-plugin-vendor-prefixer": { - "version": "10.10.0", - "resolved": "https://registry.npmjs.org/jss-plugin-vendor-prefixer/-/jss-plugin-vendor-prefixer-10.10.0.tgz", - "integrity": "sha512-UY/41WumgjW8r1qMCO8l1ARg7NHnfRVWRhZ2E2m0DMYsr2DD91qIXLyNhiX83hHswR7Wm4D+oDYNC1zWCJWtqg==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.3.1", - "css-vendor": "^2.0.8", - "jss": "10.10.0" - } - }, - "node_modules/jss/node_modules/csstype": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", - "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", - "license": "MIT" - }, "node_modules/jsx-ast-utils": { "version": "3.3.5", "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", @@ -6340,9 +6735,9 @@ } }, "node_modules/keccak256/node_modules/bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.2.tgz", + "integrity": "sha512-v2YAxEmKaBLahNwE1mjp4WON6huMNeuDvagFZW+ASCuA/ku0bXR9hSMw0XpiqMoA3+rmnyck/tPRSFQkoC9Cuw==", "license": "MIT" }, "node_modules/keyv": { @@ -6370,9 +6765,9 @@ } }, "node_modules/libphonenumber-js": { - "version": "1.12.6", - "resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.12.6.tgz", - "integrity": "sha512-PJiS4ETaUfCOFLpmtKzAbqZQjCCKVu2OhTV4SVNNE7c2nu/dACvtCqj4L0i/KWNnIgRv7yrILvBj5Lonv5Ncxw==", + "version": "1.12.8", + "resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.12.8.tgz", + "integrity": "sha512-f1KakiQJa9tdc7w1phC2ST+DyxWimy9c3g3yeF+84QtEanJr2K77wAmBPP22riU05xldniHsvXuflnLZ4oysqA==", "license": "MIT" }, "node_modules/lie": { @@ -6384,6 +6779,245 @@ "immediate": "~3.0.5" } }, + "node_modules/lightningcss": { + "version": "1.29.2", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.29.2.tgz", + "integrity": "sha512-6b6gd/RUXKaw5keVdSEtqFVdzWnU5jMxTUjA2bVcMNPLwSQ08Sv/UodBVtETLCn7k4S1Ibxwh7k68IwLZPgKaA==", + "dev": true, + "license": "MPL-2.0", + "dependencies": { + "detect-libc": "^2.0.3" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "lightningcss-darwin-arm64": "1.29.2", + "lightningcss-darwin-x64": "1.29.2", + "lightningcss-freebsd-x64": "1.29.2", + "lightningcss-linux-arm-gnueabihf": "1.29.2", + "lightningcss-linux-arm64-gnu": "1.29.2", + "lightningcss-linux-arm64-musl": "1.29.2", + "lightningcss-linux-x64-gnu": "1.29.2", + "lightningcss-linux-x64-musl": "1.29.2", + "lightningcss-win32-arm64-msvc": "1.29.2", + "lightningcss-win32-x64-msvc": "1.29.2" + } + }, + "node_modules/lightningcss-darwin-arm64": { + "version": "1.29.2", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.29.2.tgz", + "integrity": "sha512-cK/eMabSViKn/PG8U/a7aCorpeKLMlK0bQeNHmdb7qUnBkNPnL+oV5DjJUo0kqWsJUapZsM4jCfYItbqBDvlcA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-darwin-x64": { + "version": "1.29.2", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.29.2.tgz", + "integrity": "sha512-j5qYxamyQw4kDXX5hnnCKMf3mLlHvG44f24Qyi2965/Ycz829MYqjrVg2H8BidybHBp9kom4D7DR5VqCKDXS0w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-freebsd-x64": { + "version": "1.29.2", + "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.29.2.tgz", + "integrity": "sha512-wDk7M2tM78Ii8ek9YjnY8MjV5f5JN2qNVO+/0BAGZRvXKtQrBC4/cn4ssQIpKIPP44YXw6gFdpUF+Ps+RGsCwg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm-gnueabihf": { + "version": "1.29.2", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.29.2.tgz", + "integrity": "sha512-IRUrOrAF2Z+KExdExe3Rz7NSTuuJ2HvCGlMKoquK5pjvo2JY4Rybr+NrKnq0U0hZnx5AnGsuFHjGnNT14w26sg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-gnu": { + "version": "1.29.2", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.29.2.tgz", + "integrity": "sha512-KKCpOlmhdjvUTX/mBuaKemp0oeDIBBLFiU5Fnqxh1/DZ4JPZi4evEH7TKoSBFOSOV3J7iEmmBaw/8dpiUvRKlQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-musl": { + "version": "1.29.2", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.29.2.tgz", + "integrity": "sha512-Q64eM1bPlOOUgxFmoPUefqzY1yV3ctFPE6d/Vt7WzLW4rKTv7MyYNky+FWxRpLkNASTnKQUaiMJ87zNODIrrKQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-gnu": { + "version": "1.29.2", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.29.2.tgz", + "integrity": "sha512-0v6idDCPG6epLXtBH/RPkHvYx74CVziHo6TMYga8O2EiQApnUPZsbR9nFNrg2cgBzk1AYqEd95TlrsL7nYABQg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-musl": { + "version": "1.29.2", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.29.2.tgz", + "integrity": "sha512-rMpz2yawkgGT8RULc5S4WiZopVMOFWjiItBT7aSfDX4NQav6M44rhn5hjtkKzB+wMTRlLLqxkeYEtQ3dd9696w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-arm64-msvc": { + "version": "1.29.2", + "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.29.2.tgz", + "integrity": "sha512-nL7zRW6evGQqYVu/bKGK+zShyz8OVzsCotFgc7judbt6wnB2KbiKKJwBE4SGoDBQ1O94RjW4asrCjQL4i8Fhbw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-x64-msvc": { + "version": "1.29.2", + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.29.2.tgz", + "integrity": "sha512-EdIUW3B2vLuHmv7urfzMI/h2fmlnOQBk1xlsDxkN1tCWKjNFjfLhGxYk8C8mzpSfr+A6jFFIi8fU6LbQGsRWjA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, "node_modules/lilconfig": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", @@ -6401,12 +7035,13 @@ "version": "1.2.4", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "devOptional": true, "license": "MIT" }, "node_modules/lint-staged": { - "version": "15.5.0", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-15.5.0.tgz", - "integrity": "sha512-WyCzSbfYGhK7cU+UuDDkzUiytbfbi0ZdPy2orwtM75P3WTtQBzmG40cCxIa8Ii2+XjfxzLH6Be46tUfWS85Xfg==", + "version": "15.5.2", + "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-15.5.2.tgz", + "integrity": "sha512-YUSOLq9VeRNAo/CTaVmhGDKG+LBtA8KF1X4K5+ykMSwWST1vDxJRB2kv2COgLb1fvpCo+A/y9A0G0znNVmdx4w==", "dev": true, "license": "MIT", "dependencies": { @@ -6455,9 +7090,9 @@ } }, "node_modules/listr2": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/listr2/-/listr2-8.3.2.tgz", - "integrity": "sha512-vsBzcU4oE+v0lj4FhVLzr9dBTv4/fHIa57l+GCwovP8MoFNZJTOhGU8PXd4v2VJCbECAaijBiHntiekFMLvo0g==", + "version": "8.3.3", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-8.3.3.tgz", + "integrity": "sha512-LWzX2KsqcB1wqQ4AHgYb4RsDXauQiqhjLk+6hjbaeHG4zpjjVAB6wC/gz6X0l+Du1cN3pUB5ZlrvTbhGSNnUQQ==", "dev": true, "license": "MIT", "dependencies": { @@ -6636,6 +7271,29 @@ "safe-buffer": "^5.1.2" } }, + "node_modules/media-typer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-1.1.0.tgz", + "integrity": "sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/merge-descriptors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-2.0.0.tgz", + "integrity": "sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/merge-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", @@ -6663,6 +7321,29 @@ "node": ">=8.6" } }, + "node_modules/mime-db": { + "version": "1.54.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.1.tgz", + "integrity": "sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA==", + "dev": true, + "license": "MIT", + "dependencies": { + "mime-db": "^1.54.0" + }, + "engines": { + "node": ">= 0.6" + } + }, "node_modules/mimic-fn": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", @@ -6733,6 +7414,7 @@ "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "devOptional": true, "license": "MIT" }, "node_modules/nan": { @@ -6767,6 +7449,16 @@ "dev": true, "license": "MIT" }, + "node_modules/negotiator": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-1.0.0.tgz", + "integrity": "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, "node_modules/no-case": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", @@ -6938,6 +7630,29 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, "node_modules/onetime": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", @@ -7044,6 +7759,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "devOptional": true, "license": "MIT", "dependencies": { "callsites": "^3.0.0" @@ -7056,6 +7772,7 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "devOptional": true, "license": "MIT", "dependencies": { "@babel/code-frame": "^7.0.0", @@ -7079,6 +7796,16 @@ "node": ">=0.10.0" } }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", @@ -7103,6 +7830,7 @@ "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "devOptional": true, "license": "MIT" }, "node_modules/path-to-regexp": { @@ -7118,6 +7846,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "devOptional": true, "license": "MIT", "engines": { "node": ">=8" @@ -7127,6 +7856,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "devOptional": true, "license": "ISC" }, "node_modules/picomatch": { @@ -7155,6 +7885,16 @@ "node": ">=0.10" } }, + "node_modules/pkce-challenge": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/pkce-challenge/-/pkce-challenge-5.0.0.tgz", + "integrity": "sha512-ueGLflrrnvwB3xuo/uGob5pd5FN7l0MsLf0Z87o/UQmRtwjvfylfc9MurIxRAWywCYTgrvpXBcqjV4OfCYGCIQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=16.20.0" + } + }, "node_modules/plur": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/plur/-/plur-1.0.0.tgz", @@ -7164,18 +7904,6 @@ "node": ">=0.10.0" } }, - "node_modules/popmotion": { - "version": "9.3.6", - "resolved": "https://registry.npmjs.org/popmotion/-/popmotion-9.3.6.tgz", - "integrity": "sha512-ZTbXiu6zIggXzIliMi8LGxXBF5ST+wkpXGEjeTUDUOCdSQ356hij/xjeUdv0F8zCQNeqB1+PR5/BB+gC+QLAPw==", - "license": "MIT", - "dependencies": { - "framesync": "5.3.0", - "hey-listen": "^1.0.8", - "style-value-types": "4.1.4", - "tslib": "^2.1.0" - } - }, "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", @@ -7284,6 +8012,20 @@ "integrity": "sha512-SVtmxhRE/CGkn3eZY1T6pC8Nln6Fr/lu1mKSgRud0eC73whjGfoAogbn78LkD8aFL0zz3bAFerKSnOl7NlErBA==", "license": "MIT" }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dev": true, + "license": "MIT", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, "node_modules/punycode": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", @@ -7312,6 +8054,22 @@ "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, + "node_modules/qs": { + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.0.tgz", + "integrity": "sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/ramda": { "version": "0.26.1", "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.26.1.tgz", @@ -7327,6 +8085,45 @@ "safe-buffer": "^5.1.0" } }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-3.0.0.tgz", + "integrity": "sha512-RmkhL8CAyCRPXCE28MMH0z2PNWQBNk2Q09ZdxM9IOOXwxwZbN+qbWaatPkdkWIKL2ZVDImrN/pK5HTRz2PcS4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.6.3", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/raw-body/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/react": { "version": "17.0.2", "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz", @@ -7400,35 +8197,18 @@ "integrity": "sha512-suNP+J1VU1MWFKcyt7RtjiSWUjvidmQSlqu+eHslq+342xCbGTYmC0mEhPCOHxlW0CywylOC1u2DFAT+bv4dBw==", "license": "MIT" }, + "node_modules/react-is": { + "version": "19.1.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-19.1.0.tgz", + "integrity": "sha512-Oe56aUPnkHyyDxxkvqtd7KkdQP5uIUfHxd5XTb3wE9d/kRnZLmKbDB0GWk919tdQ+mxxPtG6EAs6RMT6i1qtHg==", + "license": "MIT" + }, "node_modules/react-lifecycles-compat": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==", "license": "MIT" }, - "node_modules/react-material-ui-carousel": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/react-material-ui-carousel/-/react-material-ui-carousel-3.4.2.tgz", - "integrity": "sha512-jUbC5aBWqbbbUOOdUe3zTVf4kMiZFwKJqwhxzHgBfklaXQbSopis4iWAHvEOLcZtSIJk4JAGxKE0CmxDoxvUuw==", - "license": "MIT", - "dependencies": { - "@emotion/react": "^11.7.1", - "@emotion/styled": "^11.6.0", - "@mui/icons-material": "^5.4.1", - "@mui/material": "^5.4.1", - "@mui/system": "^5.4.1", - "framer-motion": "^4.1.17" - }, - "peerDependencies": { - "@emotion/react": "^11.4.1", - "@emotion/styled": "^11.3.0", - "@mui/icons-material": "^5.0.0", - "@mui/material": "^5.0.0", - "@mui/system": "^5.0.0", - "react": "^17.0.1 || ^18.0.0", - "react-dom": "^17.0.2 || ^18.0.0" - } - }, "node_modules/react-number-format": { "version": "4.9.4", "resolved": "https://registry.npmjs.org/react-number-format/-/react-number-format-4.9.4.tgz", @@ -7531,6 +8311,15 @@ "react-dom": "^16.3.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, + "node_modules/react-virtualized/node_modules/clsx": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", + "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/readable-stream": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", @@ -7587,12 +8376,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/regenerator-runtime": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", - "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", - "license": "MIT" - }, "node_modules/regexp.prototype.flags": { "version": "1.5.4", "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", @@ -7639,19 +8422,23 @@ "license": "MIT" }, "node_modules/resolve": { - "version": "2.0.0-next.5", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", - "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", - "dev": true, + "version": "1.22.10", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", + "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", "license": "MIT", + "optional": true, + "peer": true, "dependencies": { - "is-core-module": "^2.13.0", + "is-core-module": "^2.16.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, "bin": { "resolve": "bin/resolve" }, + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -7660,6 +8447,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "devOptional": true, "license": "MIT", "engines": { "node": ">=4" @@ -7722,9 +8510,9 @@ } }, "node_modules/rollup": { - "version": "4.39.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.39.0.tgz", - "integrity": "sha512-thI8kNc02yNvnmJp8dr3fNWJ9tCONDhp6TV35X6HkKGGs9E6q7YWCHbe5vKiTa7TAiNcFEmXKj3X/pG2b3ci0g==", + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.40.2.tgz", + "integrity": "sha512-tfUOg6DTP4rhQ3VjOO6B4wyrJnGOX85requAXvqYTHsOgb2TFJdZ3aWpT8W2kPoypSGP7dZUyzxJ9ee4buM5Fg==", "dev": true, "license": "MIT", "dependencies": { @@ -7738,29 +8526,56 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.39.0", - "@rollup/rollup-android-arm64": "4.39.0", - "@rollup/rollup-darwin-arm64": "4.39.0", - "@rollup/rollup-darwin-x64": "4.39.0", - "@rollup/rollup-freebsd-arm64": "4.39.0", - "@rollup/rollup-freebsd-x64": "4.39.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.39.0", - "@rollup/rollup-linux-arm-musleabihf": "4.39.0", - "@rollup/rollup-linux-arm64-gnu": "4.39.0", - "@rollup/rollup-linux-arm64-musl": "4.39.0", - "@rollup/rollup-linux-loongarch64-gnu": "4.39.0", - "@rollup/rollup-linux-powerpc64le-gnu": "4.39.0", - "@rollup/rollup-linux-riscv64-gnu": "4.39.0", - "@rollup/rollup-linux-riscv64-musl": "4.39.0", - "@rollup/rollup-linux-s390x-gnu": "4.39.0", - "@rollup/rollup-linux-x64-gnu": "4.39.0", - "@rollup/rollup-linux-x64-musl": "4.39.0", - "@rollup/rollup-win32-arm64-msvc": "4.39.0", - "@rollup/rollup-win32-ia32-msvc": "4.39.0", - "@rollup/rollup-win32-x64-msvc": "4.39.0", + "@rollup/rollup-android-arm-eabi": "4.40.2", + "@rollup/rollup-android-arm64": "4.40.2", + "@rollup/rollup-darwin-arm64": "4.40.2", + "@rollup/rollup-darwin-x64": "4.40.2", + "@rollup/rollup-freebsd-arm64": "4.40.2", + "@rollup/rollup-freebsd-x64": "4.40.2", + "@rollup/rollup-linux-arm-gnueabihf": "4.40.2", + "@rollup/rollup-linux-arm-musleabihf": "4.40.2", + "@rollup/rollup-linux-arm64-gnu": "4.40.2", + "@rollup/rollup-linux-arm64-musl": "4.40.2", + "@rollup/rollup-linux-loongarch64-gnu": "4.40.2", + "@rollup/rollup-linux-powerpc64le-gnu": "4.40.2", + "@rollup/rollup-linux-riscv64-gnu": "4.40.2", + "@rollup/rollup-linux-riscv64-musl": "4.40.2", + "@rollup/rollup-linux-s390x-gnu": "4.40.2", + "@rollup/rollup-linux-x64-gnu": "4.40.2", + "@rollup/rollup-linux-x64-musl": "4.40.2", + "@rollup/rollup-win32-arm64-msvc": "4.40.2", + "@rollup/rollup-win32-ia32-msvc": "4.40.2", + "@rollup/rollup-win32-x64-msvc": "4.40.2", "fsevents": "~2.3.2" } }, + "node_modules/router": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/router/-/router-2.2.0.tgz", + "integrity": "sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.4.0", + "depd": "^2.0.0", + "is-promise": "^4.0.0", + "parseurl": "^1.3.3", + "path-to-regexp": "^8.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/router/node_modules/path-to-regexp": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-8.2.0.tgz", + "integrity": "sha512-TdrF7fW9Rphjq4RjrW0Kp2AW0Ahwu9sRGTkS6bvDi0SCwZlEZYmcfDbEsTz8RVk0EHIS/Vd1bv3JhG+1xZuAyQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=16" + } + }, "node_modules/rw": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz", @@ -7882,6 +8697,45 @@ "semver": "bin/semver.js" } }, + "node_modules/send": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/send/-/send-1.2.0.tgz", + "integrity": "sha512-uaW0WwXKpL9blXE2o0bRhoL2EGXIrZxQ2ZQ4mgcfoBxdFmQold+qWsD2jLrfZ0trjKL6vOw0j//eAwcALFjKSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.3.5", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "etag": "^1.8.1", + "fresh": "^2.0.0", + "http-errors": "^2.0.0", + "mime-types": "^3.0.1", + "ms": "^2.1.3", + "on-finished": "^2.4.1", + "range-parser": "^1.2.1", + "statuses": "^2.0.1" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/serve-static": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-2.2.0.tgz", + "integrity": "sha512-61g9pCh0Vnh7IutZjtLGGpTA355+OPn2TyDv/6ivP2h/AdAVX9azsoxmg2/M6nZeQZNYBEwIcsne1mJd9oQItQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "parseurl": "^1.3.3", + "send": "^1.2.0" + }, + "engines": { + "node": ">= 18" + } + }, "node_modules/set-function-length": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", @@ -7937,6 +8791,13 @@ "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", "license": "MIT" }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "dev": true, + "license": "ISC" + }, "node_modules/sha.js": { "version": "2.4.11", "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", @@ -8108,6 +8969,8 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", "license": "BSD-3-Clause", + "optional": true, + "peer": true, "engines": { "node": ">=0.10.0" } @@ -8122,6 +8985,16 @@ "node": ">=0.10.0" } }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", @@ -8305,16 +9178,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/style-value-types": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/style-value-types/-/style-value-types-4.1.4.tgz", - "integrity": "sha512-LCJL6tB+vPSUoxgUBt9juXIlNJHtBMy8jkXzUJSBzeHWdBu6lhzHqCvLVkXFGsFIlNa2ln1sQHya/gzaFmB2Lg==", - "license": "MIT", - "dependencies": { - "hey-listen": "^1.0.8", - "tslib": "^2.1.0" - } - }, "node_modules/stylis": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.2.0.tgz", @@ -8338,6 +9201,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "devOptional": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -8362,6 +9226,23 @@ "node": ">=0.10" } }, + "node_modules/tailwindcss": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.1.5.tgz", + "integrity": "sha512-nYtSPfWGDiWgCkwQG/m+aX83XCwf62sBgg3bIlNiiOcggnS1x3uVRDAuyelBFL+vJdOPPCGElxv9DjHJjRHiVA==", + "dev": true, + "license": "MIT" + }, + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/tiny-case": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/tiny-case/-/tiny-case-1.0.3.tgz", @@ -8397,6 +9278,51 @@ "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==", "license": "MIT" }, + "node_modules/tinyglobby": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.13.tgz", + "integrity": "sha512-mEwzpUgrLySlveBwEVDMKk5B57bhLPYovRfPAXD5gA/98Opn0rCDj3GtLwFvCvH5RK9uPCExUROW5NjDwvqkxw==", + "dev": true, + "license": "MIT", + "dependencies": { + "fdir": "^6.4.4", + "picomatch": "^4.0.2" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/tinyglobby/node_modules/fdir": { + "version": "6.4.4", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.4.tgz", + "integrity": "sha512-1NZP+GK4GfuAv3PqKvxQRDMjdSRZjnkq7KfhlNrCNNlZ0ygQFpebfrnfnq/W7fpUnAv9aGWmY1zKx7FYL3gwhg==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/tinyglobby/node_modules/picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -8416,6 +9342,16 @@ "integrity": "sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==", "license": "MIT" }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.6" + } + }, "node_modules/toposort": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/toposort/-/toposort-2.0.2.tgz", @@ -8465,6 +9401,21 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/type-is": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-2.0.1.tgz", + "integrity": "sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw==", + "dev": true, + "license": "MIT", + "dependencies": { + "content-type": "^1.0.5", + "media-typer": "^1.1.0", + "mime-types": "^3.0.0" + }, + "engines": { + "node": ">= 0.6" + } + }, "node_modules/typed-array-buffer": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", @@ -8594,6 +9545,16 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/update-browserslist-db": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", @@ -8669,16 +9630,29 @@ "safe-buffer": "^5.1.1" } }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/vite": { - "version": "6.2.6", - "resolved": "https://registry.npmjs.org/vite/-/vite-6.2.6.tgz", - "integrity": "sha512-9xpjNl3kR4rVDZgPNdTL0/c6ao4km69a/2ihNQbcANz8RuCOK3hQBmLSJf3bRKVQjVMda+YvizNE8AwvogcPbw==", + "version": "6.3.5", + "resolved": "https://registry.npmjs.org/vite/-/vite-6.3.5.tgz", + "integrity": "sha512-cZn6NDFE7wdTpINgs++ZJ4N49W2vRp8LCKrn3Ob1kYNtOo21vfDoaV5GzBfLU4MovSAB8uNRm4jgzVQZ+mBzPQ==", "dev": true, "license": "MIT", "dependencies": { "esbuild": "^0.25.0", + "fdir": "^6.4.4", + "picomatch": "^4.0.2", "postcss": "^8.5.3", - "rollup": "^4.30.1" + "rollup": "^4.34.9", + "tinyglobby": "^0.2.13" }, "bin": { "vite": "bin/vite.js" @@ -8756,6 +9730,34 @@ "vite": ">=2.6.0" } }, + "node_modules/vite/node_modules/fdir": { + "version": "6.4.4", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.4.tgz", + "integrity": "sha512-1NZP+GK4GfuAv3PqKvxQRDMjdSRZjnkq7KfhlNrCNNlZ0ygQFpebfrnfnq/W7fpUnAv9aGWmY1zKx7FYL3gwhg==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/vite/node_modules/picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -8918,6 +9920,13 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true, + "license": "ISC" + }, "node_modules/yallist": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", @@ -8979,26 +9988,36 @@ } }, "node_modules/zod": { - "version": "3.24.2", - "resolved": "https://registry.npmjs.org/zod/-/zod-3.24.2.tgz", - "integrity": "sha512-lY7CDW43ECgW9u1TcT3IoXHflywfVqDYze4waEz812jR/bZ8FHDsl7pFQoSZTz5N+2NqRXs8GBwnAwo3ZNxqhQ==", + "version": "3.24.4", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.24.4.tgz", + "integrity": "sha512-OdqJE9UDRPwWsrHjLN2F8bPxvwJBK22EHLWtanu0LSYr5YqzsaaW3RMgmjwr8Rypg5k+meEJdSPXJZXE/yqOMg==", "dev": true, "license": "MIT", "funding": { "url": "https://github.com/sponsors/colinhacks" } }, + "node_modules/zod-to-json-schema": { + "version": "3.24.5", + "resolved": "https://registry.npmjs.org/zod-to-json-schema/-/zod-to-json-schema-3.24.5.tgz", + "integrity": "sha512-/AuWwMP+YqiPbsJx5D6TfgRTc4kTLjsh5SOcd4bLsfUg2RcEXrFMJl1DGgdHy2aCfsIA/cr/1JM0xcB2GZji8g==", + "dev": true, + "license": "ISC", + "peerDependencies": { + "zod": "^3.24.1" + } + }, "node_modules/zod-validation-error": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/zod-validation-error/-/zod-validation-error-3.4.0.tgz", - "integrity": "sha512-ZOPR9SVY6Pb2qqO5XHt+MkkTRxGXb4EVtnjc9JpXUOtUB1T9Ru7mZOT361AN3MsetVe7R0a1KZshJDZdgp9miQ==", + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/zod-validation-error/-/zod-validation-error-3.4.1.tgz", + "integrity": "sha512-1KP64yqDPQ3rupxNv7oXhf7KdhHHgaqbKuspVoiN93TT0xrBjql+Svjkdjq/Qh/7GSMmgQs3AfvBT0heE35thw==", "dev": true, "license": "MIT", "engines": { "node": ">=18.0.0" }, "peerDependencies": { - "zod": "^3.18.0" + "zod": "^3.24.4" } } } diff --git a/new-lamassu-admin/package.json b/new-lamassu-admin/package.json index 1526575e..4e4d3a53 100644 --- a/new-lamassu-admin/package.json +++ b/new-lamassu-admin/package.json @@ -5,12 +5,9 @@ "type": "module", "dependencies": { "@apollo/client": "^3.13.7", - "@emotion/react": "^11.14.0", - "@emotion/styled": "^11.14.0", "@lamassu/coins": "v1.6.1", - "@mui/icons-material": "^5.17.1", - "@mui/material": "^5.17.1", - "@mui/styles": "^5.17.1", + "@mui/icons-material": "^7.1.0", + "@mui/material": "^7.1.0", "@simplewebauthn/browser": "^3.0.0", "apollo-upload-client": "^18.0.0", "bignumber.js": "9.0.0", @@ -33,7 +30,6 @@ "react-copy-to-clipboard": "^5.0.2", "react-dom": "17.0.2", "react-dropzone": "^11.4.2", - "react-material-ui-carousel": "^3.4.2", "react-number-format": "^4.4.1", "react-otp-input": "3.1.1", "react-router-dom": "5.1.2", @@ -44,6 +40,7 @@ }, "devDependencies": { "@eslint/js": "^9.16.0", + "@tailwindcss/vite": "^4.1.4", "@vitejs/plugin-react-swc": "^3.7.2", "esbuild-plugin-react-virtualized": "^1.0.4", "eslint": "^9.16.0", @@ -53,6 +50,7 @@ "globals": "^15.13.0", "lint-staged": "^15.2.10", "prettier": "3.4.1", + "tailwindcss": "^4.1.4", "vite": "^6.0.1", "vite-plugin-svgr": "^4.3.0" }, diff --git a/new-lamassu-admin/patches/react-scripts+4.0.0.patch b/new-lamassu-admin/patches/react-scripts+4.0.0.patch deleted file mode 100644 index 916c3ecd..00000000 --- a/new-lamassu-admin/patches/react-scripts+4.0.0.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff --git a/node_modules/react-scripts/config/webpack.config.js b/node_modules/react-scripts/config/webpack.config.js -index 80c6ac2..3420936 100644 ---- a/node_modules/react-scripts/config/webpack.config.js -+++ b/node_modules/react-scripts/config/webpack.config.js -@@ -752,6 +752,7 @@ module.exports = function (webpackEnv) { - formatter: require.resolve('react-dev-utils/eslintFormatter'), - eslintPath: require.resolve('eslint'), - context: paths.appSrc, -+ cache: true, - // ESLint class options - cwd: paths.appPath, - resolvePluginsRelativeTo: __dirname, diff --git a/new-lamassu-admin/src/App.jsx b/new-lamassu-admin/src/App.jsx index 1fd11d2b..b5e33847 100644 --- a/new-lamassu-admin/src/App.jsx +++ b/new-lamassu-admin/src/App.jsx @@ -1,137 +1,14 @@ -import { useQuery, gql } from "@apollo/client"; import CssBaseline from '@mui/material/CssBaseline' -import Grid from '@mui/material/Grid' -import Slide from '@mui/material/Slide' -import { StylesProvider, jssPreset, makeStyles } from '@mui/styles'; -import { ThemeProvider, StyledEngineProvider } from '@mui/material/styles'; -import { create } from 'jss' -import extendJss from 'jss-plugin-extend' -import React, { useContext, useState } from 'react' -import { - useLocation, - useHistory, - BrowserRouter as Router -} from 'react-router-dom' -import Header from 'src/components/layout/Header' -import Sidebar from 'src/components/layout/Sidebar' -import TitleSection from 'src/components/layout/TitleSection' -import { tree, hasSidebar, Routes, getParent } from 'src/routing/routes' +import { ThemeProvider, StyledEngineProvider } from '@mui/material/styles' +import React, { useState } from 'react' +import { BrowserRouter as Router } from 'react-router-dom' import ApolloProvider from 'src/utils/apollo' import AppContext from 'src/AppContext' -import global from 'src/styling/global' import theme from 'src/styling/theme' -import { backgroundColor, mainWidth } from 'src/styling/variables' -const jss = create({ - plugins: [extendJss(), ...jssPreset().plugins] -}) - -const fill = '100%' -const flexDirection = 'column' - -const useStyles = makeStyles({ - ...global, - root: { - backgroundColor, - width: fill, - minHeight: fill, - display: 'flex', - flexDirection - }, - wrapper: { - width: mainWidth, - height: fill, - margin: '0 auto', - flex: 1, - display: 'flex', - flexDirection - }, - grid: { - flex: 1, - height: '100%' - }, - contentWithSidebar: { - flex: 1, - marginLeft: 48, - paddingTop: 15 - }, - contentWithoutSidebar: { - width: mainWidth - } -}) - -const GET_USER_DATA = gql` - query userData { - userData { - id - username - role - enabled - last_accessed - last_accessed_from - last_accessed_address - } - } -` - -const Main = () => { - const classes = useStyles() - const location = useLocation() - const history = useHistory() - const { wizardTested, userData, setUserData } = useContext(AppContext) - - const { loading } = useQuery(GET_USER_DATA, { - onCompleted: userResponse => { - if (!userData && userResponse?.userData) - setUserData(userResponse.userData) - } - }) - - const route = location.pathname - - const sidebar = hasSidebar(route) - const parent = sidebar ? getParent(route) : {} - - const is404 = location.pathname === '/404' - - const isSelected = it => location.pathname === it.route - - const onClick = it => history.push(it.route) - - const contentClassName = sidebar - ? classes.contentWithSidebar - : classes.contentWithoutSidebar - - return ( -
- {!is404 && wizardTested && userData && ( -
- )} -
- {sidebar && !is404 && wizardTested && ( - -
- -
-
- )} - - - {sidebar && !is404 && wizardTested && ( - it.label} - onClick={onClick} - /> - )} -
{!loading && }
-
-
-
- ) -} +import Main from './Main' +import './styling/global/global.css' const App = () => { const [wizardTested, setWizardTested] = useState(false) @@ -148,18 +25,16 @@ const App = () => { value={{ wizardTested, setWizardTested, userData, setUserData, setRole }}> - - - - -
- - - + + + +
+ + - ); + ) } export default App diff --git a/new-lamassu-admin/src/Main.jsx b/new-lamassu-admin/src/Main.jsx new file mode 100644 index 00000000..ac31806f --- /dev/null +++ b/new-lamassu-admin/src/Main.jsx @@ -0,0 +1,83 @@ +import { useHistory, useLocation } from 'react-router-dom' +import React, { useContext } from 'react' +import { gql, useQuery } from '@apollo/client' +import Slide from '@mui/material/Slide' +import Grid from '@mui/material/Grid' + +import Header from './components/layout/Header.jsx' +import Sidebar from './components/layout/Sidebar.jsx' +import TitleSection from './components/layout/TitleSection.jsx' +import { getParent, hasSidebar, Routes, tree } from './routing/routes.jsx' + +import AppContext from './AppContext.js' + +const GET_USER_DATA = gql` + query userData { + userData { + id + username + role + enabled + last_accessed + last_accessed_from + last_accessed_address + } + } +` + +const Main = () => { + const location = useLocation() + const history = useHistory() + const { wizardTested, userData, setUserData } = useContext(AppContext) + + const { loading } = useQuery(GET_USER_DATA, { + onCompleted: userResponse => { + if (!userData && userResponse?.userData) + setUserData(userResponse.userData) + } + }) + + const route = location.pathname + + const sidebar = hasSidebar(route) + const parent = sidebar ? getParent(route) : {} + + const is404 = location.pathname === '/404' + + const isSelected = it => location.pathname === it.route + + const onClick = it => history.push(it.route) + + const contentClassName = sidebar ? 'flex-1 ml-12 pt-4' : 'w-[1200px]' + + return ( +
+ {!is404 && wizardTested && userData && ( +
+ )} +
+ {sidebar && !is404 && wizardTested && ( + +
+ +
+
+ )} + + + {sidebar && !is404 && wizardTested && ( + it.label} + onClick={onClick} + /> + )} +
{!loading && }
+
+
+
+ ) +} + +export default Main diff --git a/new-lamassu-admin/src/components/Carousel.jsx b/new-lamassu-admin/src/components/Carousel.jsx index 6b610a6c..e96e8ca3 100644 --- a/new-lamassu-admin/src/components/Carousel.jsx +++ b/new-lamassu-admin/src/components/Carousel.jsx @@ -1,63 +1,48 @@ -import { makeStyles } from '@mui/styles' -import React, { memo } from 'react' -import ReactCarousel from 'react-material-ui-carousel' +import React, { memo, useState } from 'react' +import styles from './Carousel.module.css' import LeftArrow from 'src/styling/icons/arrow/carousel-left-arrow.svg?react' import RightArrow from 'src/styling/icons/arrow/carousel-right-arrow.svg?react' -const useStyles = makeStyles({ - imgWrapper: { - alignItems: 'center', - justifyContent: 'center', - display: 'flex' - }, - imgInner: { - objectFit: 'contain', - objectPosition: 'center', - width: 500, - height: 400, - marginBottom: 40 - } -}) - export const Carousel = memo(({ photosData, slidePhoto }) => { - const classes = useStyles() + const [activeIndex, setActiveIndex] = useState(0) + + const handlePrev = () => { + const newIndex = activeIndex === 0 ? photosData.length - 1 : activeIndex - 1 + setActiveIndex(newIndex) + slidePhoto(newIndex) + } + + const handleNext = () => { + const newIndex = activeIndex === photosData.length - 1 ? 0 : activeIndex + 1 + setActiveIndex(newIndex) + slidePhoto(newIndex) + } + + if (!photosData || photosData.length === 0) { + return null + } return ( - <> - } - NextIcon={} - navButtonsProps={{ - style: { - backgroundColor: 'transparent', - borderRadius: 0, - color: 'transparent', - opacity: 1 - } - }} - navButtonsWrapperProps={{ - style: { - marginLeft: -22, - marginRight: -22 - } - }} - autoPlay={false} - indicators={false} - navButtonsAlwaysVisible={true} - next={activeIndex => slidePhoto(activeIndex)} - prev={activeIndex => slidePhoto(activeIndex)}> - {photosData.map((item, i) => ( -
-
- -
-
- ))} -
- +
+ {photosData.length > 1 && ( + + )} + +
+ +
+ + {photosData.length > 1 && ( + + )} +
) }) diff --git a/new-lamassu-admin/src/components/Carousel.module.css b/new-lamassu-admin/src/components/Carousel.module.css new file mode 100644 index 00000000..92a4c3b0 --- /dev/null +++ b/new-lamassu-admin/src/components/Carousel.module.css @@ -0,0 +1,45 @@ +.carouselContainer { + display: flex; + align-items: center; + justify-content: space-between; + width: 100%; + height: 100%; + box-sizing: border-box; +} + +.imageContainer { + display: flex; + align-items: center; + justify-content: center; + flex: 1; + height: 100%; + overflow: hidden; + max-width: 80%; +} + +.image { + object-fit: contain; + object-position: center; + width: 100%; + height: 100%; + margin-bottom: 40px; +} + +.navButton { + background-color: transparent; + border: none; + border-radius: 0; + color: transparent; + opacity: 1; + cursor: pointer; + padding: 8px; + min-width: 44px; + min-height: 44px; + display: flex; + align-items: center; + justify-content: center; +} + +.navButton:hover { + background-color: rgba(0, 0, 0, 0.04); +} \ No newline at end of file diff --git a/new-lamassu-admin/src/components/Chip.jsx b/new-lamassu-admin/src/components/Chip.jsx deleted file mode 100644 index 6358047d..00000000 --- a/new-lamassu-admin/src/components/Chip.jsx +++ /dev/null @@ -1,34 +0,0 @@ -import Chip from '@mui/material/Chip' -import { withStyles } from '@mui/styles' -import React, { memo } from 'react' - -import { - fontColor, - inputFontWeight, - subheaderColor, - smallestFontSize, - inputFontFamily -} from 'src/styling/variables' - -const styles = theme => ({ - root: { - backgroundColor: subheaderColor, - borderRadius: 4, - margin: theme.spacing(0.5, 0.25), - height: 18 - }, - label: { - fontSize: smallestFontSize, - color: fontColor, - fontWeight: inputFontWeight, - fontFamily: inputFontFamily, - paddingRight: 4, - paddingLeft: 4 - } -}) - -const LsChip = memo(({ classes, ...props }) => ( - -)) - -export default withStyles(styles)(LsChip) diff --git a/new-lamassu-admin/src/components/CollapsibleCard.jsx b/new-lamassu-admin/src/components/CollapsibleCard.jsx index eeec8527..987c32e7 100644 --- a/new-lamassu-admin/src/components/CollapsibleCard.jsx +++ b/new-lamassu-admin/src/components/CollapsibleCard.jsx @@ -1,10 +1,8 @@ -import Grid from '@mui/material/Grid' -import { makeStyles } from '@mui/styles' -import classnames from 'classnames' import PropTypes from 'prop-types' import React from 'react' -import { white } from 'src/styling/variables' +import Paper from '@mui/material/Paper' +import classnames from 'classnames' const cardState = Object.freeze({ DEFAULT: 'default', @@ -12,24 +10,11 @@ const cardState = Object.freeze({ EXPANDED: 'expanded' }) -const styles = { - card: { - wordWrap: 'break-word', - boxShadow: '0 0 4px 0 rgba(0, 0, 0, 0.08)', - borderRadius: 12, - padding: 24, - backgroundColor: white - } -} - -const useStyles = makeStyles(styles) - const CollapsibleCard = ({ className, state, shrunkComponent, children }) => { - const classes = useStyles() return ( - + {state === cardState.SHRUNK ? shrunkComponent : children} - + ) } diff --git a/new-lamassu-admin/src/components/ConfirmDialog.jsx b/new-lamassu-admin/src/components/ConfirmDialog.jsx index 487b2798..607e8477 100644 --- a/new-lamassu-admin/src/components/ConfirmDialog.jsx +++ b/new-lamassu-admin/src/components/ConfirmDialog.jsx @@ -1,51 +1,27 @@ import Dialog from '@mui/material/Dialog' import DialogActions from '@mui/material/DialogActions' import DialogContent from '@mui/material/DialogContent' +import IconButton from '@mui/material/IconButton' import InputLabel from '@mui/material/InputLabel' -import { makeStyles } from '@mui/styles' import React, { memo, useState } from 'react' import { H4, P } from 'src/components/typography' import CloseIcon from 'src/styling/icons/action/close/zodiac.svg?react' -import { Button, IconButton } from 'src/components/buttons' +import { Button } from 'src/components/buttons' import { TextInput } from 'src/components/inputs' -import { spacer } from 'src/styling/variables' import ErrorMessage from './ErrorMessage' - -const useStyles = makeStyles({ - dialogContent: { - width: 434, - padding: spacer * 2, - paddingRight: spacer * 3.5 - }, - dialogTitle: { - padding: spacer * 2, - paddingRight: spacer * 1.5, - display: 'flex', - 'justify-content': 'space-between', - '& > h4': { - margin: 0 - }, - '& > button': { - padding: 0, - marginTop: -(spacer / 2) - } - }, - dialogActions: { - padding: spacer * 4, - paddingTop: spacer * 2 - } -}) +import SvgIcon from '@mui/material/SvgIcon' export const DialogTitle = ({ children, onClose }) => { - const classes = useStyles() return ( -
+
{children} {onClose && ( - - + + + + )}
@@ -67,7 +43,6 @@ export const ConfirmDialog = memo( disabled = false, ...props }) => { - const classes = useStyles() const [value, setValue] = useState(initialValue) const [error, setError] = useState(false) const handleChange = event => setValue(event.target.value) @@ -84,7 +59,7 @@ export const ConfirmDialog = memo( return ( -

{title}

+

{title}

{errorMessage && ( @@ -98,7 +73,7 @@ export const ConfirmDialog = memo( )} - + {message &&

{message}

} {confirmationMessage}
- +
diff --git a/new-lamassu-admin/src/components/ErrorMessage.jsx b/new-lamassu-admin/src/components/ErrorMessage.jsx index e5ff4efc..d60e9cb5 100644 --- a/new-lamassu-admin/src/components/ErrorMessage.jsx +++ b/new-lamassu-admin/src/components/ErrorMessage.jsx @@ -1,38 +1,16 @@ -import { makeStyles } from '@mui/styles' import classnames from 'classnames' import React from 'react' import ErrorIcon from 'src/styling/icons/warning-icon/tomato.svg?react' -import { errorColor } from 'src/styling/variables' - import { Info3 } from './typography' -const styles = { - wrapper: { - display: 'flex', - alignItems: 'center', - '& > svg': { - marginRight: 10 - } - }, - message: { - display: 'flex', - alignItems: 'center', - color: errorColor, - margin: 0, - whiteSpace: 'break-spaces' - } -} - -const useStyles = makeStyles(styles) - -const ErrorMessage = ({ className, children, ...props }) => { - const classes = useStyles() - +const ErrorMessage = ({ className, children }) => { return ( -
- - {children} +
+ + + {children} +
) } diff --git a/new-lamassu-admin/src/components/ImagePopper.jsx b/new-lamassu-admin/src/components/ImagePopper.jsx index 8053819e..d732e957 100644 --- a/new-lamassu-admin/src/components/ImagePopper.jsx +++ b/new-lamassu-admin/src/components/ImagePopper.jsx @@ -1,5 +1,4 @@ import ClickAwayListener from '@mui/material/ClickAwayListener' -import { makeStyles } from '@mui/styles' import classnames from 'classnames' import React, { memo, useState } from 'react' import Popper from 'src/components/Popper' @@ -8,18 +7,8 @@ import ZoomIcon from 'src/styling/icons/circle buttons/search/zodiac.svg?react' import { FeatureButton } from 'src/components/buttons' -import imagePopperStyles from './ImagePopper.styles' - -const useStyles = makeStyles(imagePopperStyles) - const ImagePopper = memo( ({ className, width, height, popupWidth, popupHeight, src }) => { - const classes = useStyles({ - width, - height, - popupWidth, - popupHeight - }) const [popperAnchorEl, setPopperAnchorEl] = useState(null) const handleOpenPopper = event => { @@ -32,23 +21,30 @@ const ImagePopper = memo( const popperOpen = Boolean(popperAnchorEl) - const Image = ({ className }) => ( - + const Image = ({ className, style }) => ( + ) return ( -
- +
+ -
- +
+
diff --git a/new-lamassu-admin/src/components/ImagePopper.styles.js b/new-lamassu-admin/src/components/ImagePopper.styles.js deleted file mode 100644 index f30c8f3e..00000000 --- a/new-lamassu-admin/src/components/ImagePopper.styles.js +++ /dev/null @@ -1,25 +0,0 @@ -export default { - row: { - display: 'flex', - flexDirection: 'row' - }, - image: ({ width, height }) => ({ - objectFit: 'cover', - borderRadius: '8px 0px 0px 8px', - width, - height - }), - popupImage: ({ popupWidth, popupHeight }) => ({ - objectFit: 'cover', - width: popupWidth, - height: popupHeight - }), - button: ({ height }) => ({ - borderRadius: '0px 8px 8px 0px', - height - }), - popoverContent: { - display: 'block', - padding: [[10, 15]] - } -} diff --git a/new-lamassu-admin/src/components/InfoMessage.jsx b/new-lamassu-admin/src/components/InfoMessage.jsx deleted file mode 100644 index 8e59fd90..00000000 --- a/new-lamassu-admin/src/components/InfoMessage.jsx +++ /dev/null @@ -1,26 +0,0 @@ -import Box from '@mui/material/Box' -import { makeStyles } from '@mui/styles' -import React from 'react' -import { Label1 } from 'src/components/typography' -import WarningIcon from 'src/styling/icons/warning-icon/comet.svg?react' - -const useStyles = makeStyles({ - message: ({ width }) => ({ - width, - marginTop: 4, - marginLeft: 16 - }) -}) - -const InfoMessage = ({ children, width = 330, className }) => { - const classes = useStyles({ width }) - - return ( - - - {children} - - ) -} - -export default InfoMessage diff --git a/new-lamassu-admin/src/components/InformativeDialog.jsx b/new-lamassu-admin/src/components/InformativeDialog.jsx index a4c0a8f8..ed39fe4c 100644 --- a/new-lamassu-admin/src/components/InformativeDialog.jsx +++ b/new-lamassu-admin/src/components/InformativeDialog.jsx @@ -1,43 +1,13 @@ import Dialog from '@mui/material/Dialog' import DialogContent from '@mui/material/DialogContent' -import { makeStyles } from '@mui/styles' +import SvgIcon from '@mui/material/SvgIcon' +import IconButton from '@mui/material/IconButton' import React, { memo } from 'react' import { H1 } from 'src/components/typography' import CloseIcon from 'src/styling/icons/action/close/zodiac.svg?react' -import { IconButton } from 'src/components/buttons' -import { spacer } from 'src/styling/variables' - -const useStyles = makeStyles({ - closeButton: { - display: 'flex', - padding: [[spacer * 2, spacer * 2, 0, spacer * 2]], - paddingRight: spacer * 1.5, - justifyContent: 'end' - }, - title: { - margin: [[0, spacer * 2, spacer, spacer * 2 + 4]] - } -}) - -export const DialogTitle = ({ children, onClose }) => { - const classes = useStyles() - return ( -
- {children} - {onClose && ( - - - - )} -
- ) -} - export const InformativeDialog = memo( ({ title = '', open, onDissmised, disabled = false, data, ...props }) => { - const classes = useStyles() - const innerOnClose = () => { onDissmised() } @@ -53,13 +23,16 @@ export const InformativeDialog = memo( open={open} aria-labelledby="form-dialog-title" {...props}> -
- +
+ + + +
-

{title}

- {data} +

{title}

+ {data} ) } diff --git a/new-lamassu-admin/src/components/LogsDownloaderPopper.jsx b/new-lamassu-admin/src/components/LogsDownloaderPopper.jsx index ff877809..67ec9087 100644 --- a/new-lamassu-admin/src/components/LogsDownloaderPopper.jsx +++ b/new-lamassu-admin/src/components/LogsDownloaderPopper.jsx @@ -1,6 +1,5 @@ -import { useLazyQuery } from "@apollo/client"; +import { useLazyQuery } from '@apollo/client' import ClickAwayListener from '@mui/material/ClickAwayListener' -import { makeStyles } from '@mui/styles' import classnames from 'classnames' import { format, set } from 'date-fns/fp' import FileSaver from 'file-saver' @@ -11,68 +10,32 @@ import DownloadInverseIcon from 'src/styling/icons/button/download/white.svg?rea import Download from 'src/styling/icons/button/download/zodiac.svg?react' import { FeatureButton, Link } from 'src/components/buttons' -import { primaryColor, offColor, zircon } from 'src/styling/variables' import { formatDate } from 'src/utils/timezones' import Popper from './Popper' import DateRangePicker from './date-range-picker/DateRangePicker' import { RadioGroup } from './inputs' import typographyStyles from './typography/styles' +import { H4, Info1, Label1, Label2 } from './typography/index.jsx' -const { info1, label1, label2, h4 } = typographyStyles - -const dateContainerStyles = { - wrapper: { - height: 46, - width: 99 - }, - container: { - display: 'flex' - }, - monthWeekDayContainer: { - display: 'flex', - flexDirection: 'column' - }, - label: { - extend: label1, - lineHeight: 1.33, - color: primaryColor - }, - bigNumber: { - extend: info1, - lineHeight: 1, - marginRight: 7 - }, - monthYear: { - extend: label2, - lineHeight: 1.17, - color: primaryColor - }, - weekDay: { - extend: label1, - lineHeight: 1.33, - color: offColor - } -} - -const dateContainerUseStyles = makeStyles(dateContainerStyles) - -const DateContainer = ({ date, children, ...props }) => { - const classes = dateContainerUseStyles() - +const DateContainer = ({ date, children }) => { return ( -
-
{children}
+
+ {children} {date && ( <> -
-
{format('d', date)}
-
- {`${format( +
+ + {format('d', date)} + +
+ {`${format( 'MMM', date - )} ${format('yyyy', date)}`} - {format('EEEE', date)} + )} ${format('yyyy', date)}`} + + {format('EEEE', date)} +
@@ -81,54 +44,6 @@ const DateContainer = ({ date, children, ...props }) => { ) } -const styles = { - popoverContent: { - width: 280 - }, - popoverHeader: { - extend: h4, - padding: [[15, 15, 0, 15]] - }, - radioButtonsContainer: { - padding: [[5, 15, 5, 15]] - }, - radioButtons: { - display: 'flex', - justifyContent: 'space-between', - flexDirection: 'row', - color: primaryColor - }, - dateRangePickerShowing: { - display: 'block', - height: '100%' - }, - dateRangePickerHidden: { - display: 'none', - height: 0 - }, - download: { - padding: [[10, 15]] - }, - dateContainerWrapper: { - display: 'flex', - justifyContent: 'space-between', - alignItems: 'center', - position: 'relative', - backgroundColor: zircon, - padding: [[0, 15]], - minHeight: 70 - }, - arrowContainer: { - position: 'absolute', - left: 125, - top: 26 - }, - arrow: { - margin: 'auto' - } -} - -const useStyles = makeStyles(styles) const ALL = 'all' const RANGE = 'range' const ADVANCED = 'advanced' @@ -153,11 +68,9 @@ const LogsDownloaderPopover = ({ onCompleted: data => createLogsFile(getLogs(data), range) }) - const classes = useStyles() - const dateRangePickerClasses = { - [classes.dateRangePickerShowing]: selectedRadio === RANGE, - [classes.dateRangePickerHidden]: selectedRadio === ALL + 'block h-full': selectedRadio === RANGE, + hidden: selectedRadio === ALL } const handleRadioButtons = evt => { @@ -255,26 +168,28 @@ const LogsDownloaderPopover = ({ variant="contained" /> -
-
{title}
-
+
+

+ {title} +

+
{selectedRadio === RANGE && (
-
+
{range && ( <> From -
- +
+
To @@ -295,18 +210,18 @@ const LogsDownloaderPopover = ({
)} {simplified && ( -
+
)} -
+
downloadLogs(range, args)}> Download diff --git a/new-lamassu-admin/src/components/Modal.jsx b/new-lamassu-admin/src/components/Modal.jsx index 147a144b..67aa2b9f 100644 --- a/new-lamassu-admin/src/components/Modal.jsx +++ b/new-lamassu-admin/src/components/Modal.jsx @@ -1,75 +1,12 @@ import MaterialModal from '@mui/material/Modal' +import IconButton from '@mui/material/IconButton' +import SvgIcon from '@mui/material/SvgIcon' import Paper from '@mui/material/Paper' -import { makeStyles } from '@mui/styles' import classnames from 'classnames' import React from 'react' import { H1, H4 } from 'src/components/typography' import CloseIcon from 'src/styling/icons/action/close/zodiac.svg?react' -import { IconButton } from 'src/components/buttons' - -const styles = { - modal: { - display: 'flex', - justifyContent: 'center', - flexDirection: 'column', - alignItems: 'center' - }, - wrapper: ({ width, height }) => ({ - width, - height, - display: 'flex', - flexDirection: 'column', - minHeight: height ?? 400, - maxHeight: '90vh', - overflowY: 'auto', - borderRadius: 8, - outline: 0 - }), - infoPanelWrapper: ({ width, infoPanelHeight }) => ({ - width, - height: infoPanelHeight, - marginTop: 16, - display: 'flex', - flexDirection: 'column', - minHeight: infoPanelHeight ?? 200, - maxHeight: '90vh', - overflowY: 'auto', - borderRadius: 8, - outline: 0 - }), - panelContent: { - width: '100%', - display: 'flex', - flexDirection: 'column', - flex: 1, - padding: [[0, 24]] - }, - content: ({ small, xl }) => ({ - width: '100%', - display: 'flex', - flexDirection: 'column', - flex: 1, - padding: xl ? [[0, 60 + 28]] : small ? [[0, 16]] : [[0, 32]] - }), - button: ({ small, xl }) => ({ - padding: [[0, 0, xl ? 26 : 0, 0]], - margin: xl - ? [[0, 0, 'auto', 'auto']] - : small - ? [[12, 12, 'auto', 'auto']] - : [[16, 16, 'auto', 'auto']] - }), - header: { - display: 'flex' - }, - title: ({ small }) => ({ - margin: small ? [[20, 0, 8, 16]] : [[28, 0, 8, 32]] - }) -} - -const useStyles = makeStyles(styles) - const Modal = ({ width, height, @@ -86,7 +23,6 @@ const Modal = ({ closeOnBackdropClick, ...props }) => { - const classes = useStyles({ width, height, small, infoPanelHeight, xl }) const TitleCase = small ? H4 : H1 const closeSize = xl ? 28 : small ? 16 : 20 @@ -96,24 +32,61 @@ const Modal = ({ handleClose() } + const marginBySize = xl ? 0 : small ? 12 : 16 + const paddingBySize = xl ? 88 : small ? 16 : 32 return ( - + <> - -
- {title && {title}} - handleClose()}> - - + +
+ {title && ( + + {title} + + )} +
+ handleClose()}> + + + + +
+
+
+ {children}
-
{children}
{infoPanel && ( - -
{infoPanel}
+ +
+ {infoPanel} +
)} diff --git a/new-lamassu-admin/src/components/NotificationCenter/NotificationCenter.jsx b/new-lamassu-admin/src/components/NotificationCenter/NotificationCenter.jsx index f0eef5d5..6e971d55 100644 --- a/new-lamassu-admin/src/components/NotificationCenter/NotificationCenter.jsx +++ b/new-lamassu-admin/src/components/NotificationCenter/NotificationCenter.jsx @@ -1,5 +1,4 @@ -import { useQuery, useMutation, gql } from "@apollo/client"; -import { makeStyles } from '@mui/styles' +import { useQuery, useMutation, gql } from '@apollo/client' import * as R from 'ramda' import React, { useState, useEffect } from 'react' import ActionButton from 'src/components/buttons/ActionButton' @@ -9,10 +8,8 @@ import ClearAllIconInverse from 'src/styling/icons/stage/spring/empty.svg?react' import ClearAllIcon from 'src/styling/icons/stage/zodiac/empty.svg?react' import ShowUnreadIcon from 'src/styling/icons/stage/zodiac/full.svg?react' -import styles from './NotificationCenter.styles' import NotificationRow from './NotificationRow' - -const useStyles = makeStyles(styles) +import classes from './NotificationCenter.module.css' const GET_NOTIFICATIONS = gql` query getNotifications { @@ -63,7 +60,6 @@ const NotificationCenter = ({ const [xOffset, setXoffset] = useState(300) const [showingUnread, setShowingUnread] = useState(false) - const classes = useStyles({ buttonCoords, xOffset }) const machines = R.compose( R.map(R.prop('name')), R.indexBy(R.prop('deviceId')) @@ -120,7 +116,13 @@ const NotificationCenter = ({
Notifications
- diff --git a/new-lamassu-admin/src/components/NotificationCenter/NotificationCenter.module.css b/new-lamassu-admin/src/components/NotificationCenter/NotificationCenter.module.css new file mode 100644 index 00000000..dd30252b --- /dev/null +++ b/new-lamassu-admin/src/components/NotificationCenter/NotificationCenter.module.css @@ -0,0 +1,145 @@ +.container { + width: 40vw; + height: 110vh; + right: 0; + background-color: white; + box-shadow: 0 0 14px 0 rgba(0, 0, 0, 0.24); +} + +.container @media only screen and (max-width: 1920px) { + width: 30vw; +} + +.header { + display: flex; + justify-content: space-between; +} + +.headerText { + margin-top: 20px; + margin-left: 12px; +} + +.actionButtons { + display: flex; + margin-left: 16px; + height: 0; +} + +.notificationIcon { + position: absolute; + cursor: pointer; + background: transparent; + box-shadow: 0 0 0 transparent; + border: 0 solid transparent; + text-shadow: 0 0 0 transparent; + outline: none; +} + +.clearAllButton { + margin-top: -16px; + margin-left: 8px; + background-color: var(--zircon); +} + +.notificationsList { + height: 90vh; + max-height: 100vh; + margin-top: 24px; + margin-left: 0; + overflow-y: auto; + overflow-x: hidden; + background-color: white; + z-index: 10; +} + +.notificationRow { + display: flex; + flex-direction: row; + justify-content: flex-start; + position: relative; + margin-bottom: 16px; + padding-top: 12px; + gap: 10px; +} + +.notificationRow > *:first-child { + margin-right: 24px; +} + +.notificationContent { + display: flex; + flex-direction: column; + justify-content: center; + width: 300px; +} + +.unread { + background-color: var(--spring3) +} + +.notificationRowIcon { + align-self: center; +} + +.notificationRowIcon > * { + margin-left: 24px +} + +.readIconWrapper { + flex-grow: 1 +} + +.unreadIcon { + margin-top: 5px; + margin-left: 8px; + width: 12px; + height: 12px; + background-color: var(--spring); + border-radius: 50%; + cursor: pointer; + z-index: 1; +} + +.readIcon { + margin-left: 8px; + margin-top: 5px; + width: 12px; + height: 12px; + border: 1px solid var(--comet); + border-radius: 50%; + cursor: pointer; + z-index: 1; +} + +.notificationTitle { + margin: 0; + color: var(--comet); +} + +.notificationBody { + margin: 0 +} + +.notificationSubtitle { + margin: 0; + margin-bottom: 8px; + color: var(--comet); +} + +.stripes { + position: absolute; + height: 100%; + top: 0; + opacity: 60%; +} + +.hasUnread { + position: absolute; + top: 0; + left: 16px; + width: 9px; + height: 9px; + background-color: var(--spring); + border-radius: 50%; +} \ No newline at end of file diff --git a/new-lamassu-admin/src/components/NotificationCenter/NotificationCenter.styles.js b/new-lamassu-admin/src/components/NotificationCenter/NotificationCenter.styles.js deleted file mode 100644 index 91d1b720..00000000 --- a/new-lamassu-admin/src/components/NotificationCenter/NotificationCenter.styles.js +++ /dev/null @@ -1,143 +0,0 @@ -import { - spacer, - white, - zircon, - secondaryColor, - spring3, - comet -} from 'src/styling/variables' - -const styles = { - container: { - '@media only screen and (max-width: 1920px)': { - width: '30vw' - }, - width: '40vw', - height: '110vh', - right: 0, - backgroundColor: white, - boxShadow: '0 0 14px 0 rgba(0, 0, 0, 0.24)' - }, - header: { - display: 'flex', - justifyContent: 'space-between' - }, - headerText: { - marginTop: spacer * 2.5, - marginLeft: spacer * 3 - }, - actionButtons: { - display: 'flex', - marginLeft: spacer * 2, - height: 0 - }, - notificationIcon: ({ buttonCoords, xOffset }) => ({ - position: 'absolute', - top: buttonCoords ? buttonCoords.y : 0, - left: buttonCoords ? buttonCoords.x - xOffset : 0, - cursor: 'pointer', - background: 'transparent', - boxShadow: '0px 0px 0px transparent', - border: '0px solid transparent', - textShadow: '0px 0px 0px transparent', - outline: 'none' - }), - clearAllButton: { - marginTop: -spacer * 2, - marginLeft: spacer, - backgroundColor: zircon - }, - notificationsList: { - height: '90vh', - maxHeight: '100vh', - marginTop: spacer * 3, - marginLeft: 0, - overflowY: 'auto', - overflowX: 'hidden', - backgroundColor: white, - zIndex: 10 - }, - notificationRow: { - display: 'flex', - flexDirection: 'row', - justifyContent: 'flex-start', - position: 'relative', - marginBottom: spacer / 2, - paddingTop: spacer * 1.5, - '& > *:first-child': { - marginRight: 24 - }, - '& > *': { - marginRight: 10 - }, - '& > *:last-child': { - marginRight: 0 - } - }, - notificationContent: { - display: 'flex', - flexDirection: 'column', - justifyContent: 'center', - width: 300 - }, - unread: { - backgroundColor: spring3 - }, - notificationRowIcon: { - alignSelf: 'center', - '& > *': { - marginLeft: spacer * 3 - } - }, - readIconWrapper: { - flexGrow: 1 - }, - unreadIcon: { - marginTop: 2, - width: '12px', - height: '12px', - backgroundColor: secondaryColor, - borderRadius: '50%', - cursor: 'pointer', - zIndex: 1 - }, - readIcon: { - marginLeft: spacer, - marginTop: 5, - width: '12px', - height: '12px', - border: [[1, 'solid', comet]], - borderRadius: '50%', - cursor: 'pointer', - zIndex: 1 - }, - notificationTitle: { - margin: 0, - color: comet - }, - notificationBody: { - margin: 0 - }, - notificationSubtitle: { - margin: 0, - marginBottom: spacer, - color: comet - }, - stripes: { - position: 'absolute', - height: '100%', - top: '0px', - opacity: '60%' - }, - hasUnread: { - position: 'absolute', - top: 0, - left: 16, - width: '9px', - height: '9px', - backgroundColor: secondaryColor, - borderRadius: '50%' - } -} - -export default styles diff --git a/new-lamassu-admin/src/components/NotificationCenter/NotificationRow.jsx b/new-lamassu-admin/src/components/NotificationCenter/NotificationRow.jsx index 5b5de598..37f4bfa1 100644 --- a/new-lamassu-admin/src/components/NotificationCenter/NotificationRow.jsx +++ b/new-lamassu-admin/src/components/NotificationCenter/NotificationRow.jsx @@ -1,4 +1,3 @@ -import { makeStyles } from '@mui/styles' import classnames from 'classnames' import prettyMs from 'pretty-ms' import * as R from 'ramda' @@ -8,8 +7,7 @@ import Wrench from 'src/styling/icons/action/wrench/zodiac.svg?react' import Transaction from 'src/styling/icons/arrow/transaction.svg?react' import WarningIcon from 'src/styling/icons/warning-icon/tomato.svg?react' -import styles from './NotificationCenter.styles' -const useStyles = makeStyles(styles) +import classes from './NotificationCenter.module.css' const types = { transaction: { @@ -46,8 +44,6 @@ const NotificationRow = ({ valid, toggleClear }) => { - const classes = useStyles() - const typeDisplay = R.path([type, 'display'])(types) ?? null const icon = R.path([type, 'icon'])(types) ?? ( diff --git a/new-lamassu-admin/src/components/Popper.jsx b/new-lamassu-admin/src/components/Popper.jsx index 75159a0a..d440b987 100644 --- a/new-lamassu-admin/src/components/Popper.jsx +++ b/new-lamassu-admin/src/components/Popper.jsx @@ -1,120 +1,15 @@ import MaterialPopper from '@mui/material/Popper' import Paper from '@mui/material/Paper' -import { makeStyles } from '@mui/styles' import classnames from 'classnames' import * as R from 'ramda' import React, { useState } from 'react' import { white } from 'src/styling/variables' +import classes from './Popper.module.css' -const Popover = ({ - children, - bgColor = white, - arrowSize = 6, - className, - ...props -}) => { +const Popover = ({ children, bgColor = white, className, ...props }) => { const [arrowRef, setArrowRef] = useState(null) - const styles = { - popover: { - zIndex: 3000, - backgroundColor: bgColor, - borderRadius: 4 - }, - arrow: { - position: 'absolute', - fontSize: arrowSize, - width: '3em', - height: '3em' - }, - arrowBottom: { - top: 0, - width: 0, - height: 0, - borderLeft: [['2em', 'solid', 'transparent']], - borderRight: [['2em', 'solid', 'transparent']], - borderBottom: [['2em', 'solid', bgColor]], - marginTop: '-1.9em', - '&:after': { - zIndex: -10, - content: '""', - position: 'absolute', - width: arrowSize * 3, - height: arrowSize * 3, - marginLeft: 0, - bottom: 0, - top: 'calc(50% - 0px)', - left: 0, - border: '5px solid #fff', - borderColor: 'transparent transparent #fff #fff', - transformOrigin: '0 0', - transform: 'rotate(45deg)', - boxShadow: - '0px 2px 1px -1px rgba(0,0,0,0.2),0px 1px 1px 0px rgba(0,0,0,0.14),0px 1px 3px 0px rgba(0,0,0,0.12)' - } - }, - arrowTop: { - bottom: 0, - width: 0, - height: 0, - borderLeft: [['2em', 'solid', 'transparent']], - borderRight: [['2em', 'solid', 'transparent']], - borderTop: [['2em', 'solid', bgColor]], - marginBottom: '-1.9em', - '&:after': { - zIndex: -10, - content: '""', - position: 'absolute', - width: arrowSize * 3, - height: arrowSize * 3, - marginLeft: 0, - bottom: 0, - top: -(arrowSize * 4 + 2), - left: 0, - border: '5px solid #fff', - borderColor: 'transparent transparent #fff #fff', - transformOrigin: '0 0', - transform: 'rotate(45deg)', - boxShadow: - '0px 2px 1px -1px rgba(0,0,0,0.2),0px 1px 1px 0px rgba(0,0,0,0.14),0px 1px 3px 0px rgba(0,0,0,0.12)' - } - }, - arrowRight: { - left: 0, - width: 0, - height: 0, - borderTop: [['2em', 'solid', 'transparent']], - borderBottom: [['2em', 'solid', 'transparent']], - borderRight: [['2em', 'solid', bgColor]], - marginLeft: '-1.9em' - }, - arrowLeft: { - right: 0, - width: 0, - height: 0, - borderTop: [['2em', 'solid', 'transparent']], - borderBottom: [['2em', 'solid', 'transparent']], - borderLeft: [['2em', 'solid', bgColor]], - marginRight: '-1.9em' - }, - root: { - backgroundColor: bgColor - } - } - - const useStyles = makeStyles(styles) - - const classes = useStyles() - - const getArrowClasses = placement => ({ - [classes.arrow]: true, - [classes.arrowBottom]: placement === 'bottom', - [classes.arrowTop]: placement === 'top', - [classes.arrowRight]: placement === 'right', - [classes.arrowLeft]: placement === 'left' - }) - const flipPlacements = { top: ['bottom'], bottom: ['top'], @@ -164,17 +59,16 @@ const Popover = ({ - {({ placement }) => ( - - - {children} - - )} + + + {children} + ) diff --git a/new-lamassu-admin/src/components/Popper.module.css b/new-lamassu-admin/src/components/Popper.module.css new file mode 100644 index 00000000..66826b91 --- /dev/null +++ b/new-lamassu-admin/src/components/Popper.module.css @@ -0,0 +1,33 @@ +.newArrow, +.newArrow::before { + position: absolute; + width: 8px; + height: 8px; + background: inherit; +} + +.newArrow { + visibility: hidden; +} + +.newArrow::before { + visibility: visible; + content: ''; + transform: rotate(45deg); +} + +.tooltip[data-popper-placement^='top'] > div > span { + bottom: -4px; +} + +.tooltip[data-popper-placement^='bottom'] > div > span { + top: -4px; +} + +.tooltip[data-popper-placement^='left'] > div > span { + right: -4px; +} + +.tooltip[data-popper-placement^='right'] > div > span { + left: -4px; +} \ No newline at end of file diff --git a/new-lamassu-admin/src/components/SearchBox.jsx b/new-lamassu-admin/src/components/SearchBox.jsx index 0ef4d95e..dea9cb3d 100644 --- a/new-lamassu-admin/src/components/SearchBox.jsx +++ b/new-lamassu-admin/src/components/SearchBox.jsx @@ -1,16 +1,11 @@ import InputBase from '@mui/material/InputBase' import Paper from '@mui/material/Paper' -import { makeStyles } from '@mui/styles' import MAutocomplete from '@mui/material/Autocomplete' import classnames from 'classnames' import React, { memo, useState } from 'react' import { P } from 'src/components/typography' import SearchIcon from 'src/styling/icons/circle buttons/search/zodiac.svg?react' -import styles from './SearchBox.styles' - -const useStyles = makeStyles(styles) - const SearchBox = memo( ({ loading = false, @@ -21,13 +16,11 @@ const SearchBox = memo( onChange, ...props }) => { - const classes = useStyles({ size }) - const [popupOpen, setPopupOpen] = useState(false) const inputClasses = { - [classes.input]: true, - [classes.inputWithPopup]: popupOpen + 'flex flex-1 h-8 px-2 py-2 font-md items-center rounded-2xl bg-zircon text-comet': true, + 'rounded-b-none': popupOpen } const innerOnChange = filters => onChange(filters) @@ -35,15 +28,16 @@ const SearchBox = memo( return ( it.label || it.value} renderOption={(props, it) => (
  • -
    -

    {it.label || it.value}

    -

    {it.type}

    +
    +

    + {it.label || it.value} +

    +

    {it.type}

  • )} @@ -53,25 +47,16 @@ const SearchBox = memo( multiple filterSelectedOptions isOptionEqualToValue={(option, value) => option.type === value.type} - PaperComponent={({ children }) => ( - -
    - {children} - - )} renderInput={params => { return ( } + startAdornment={} placeholder={inputPlaceholder} inputProps={{ - className: classes.bold, - classes: { - root: classes.size - }, + className: 'font-bold', ...params.inputProps }} /> @@ -81,8 +66,17 @@ const SearchBox = memo( onClose={() => setPopupOpen(false)} onChange={(_, filters) => innerOnChange(filters)} {...props} - /> - ) + slots={{ + paper: ({ children }) => ( + +
    + {children} + + ) + }} /> + ); } ) diff --git a/new-lamassu-admin/src/components/SearchBox.styles.js b/new-lamassu-admin/src/components/SearchBox.styles.js deleted file mode 100644 index 336f3ff7..00000000 --- a/new-lamassu-admin/src/components/SearchBox.styles.js +++ /dev/null @@ -1,78 +0,0 @@ -import baseButtonStyles from 'src/components/buttons/BaseButton.styles' -import { bySize, bold } from 'src/styling/helpers' -import { zircon, comet, primaryColor } from 'src/styling/variables' - -const { baseButton } = baseButtonStyles - -const searchBoxBorderRadius = baseButton.height / 2 -const searchBoxHeight = 32 -const popupBorderRadiusFocus = baseButton.height / 4 - -const hoverColor = 'rgba(0, 0, 0, 0.08)' -const boxShadow = `0 4px 4px 0 ${hoverColor}` - -const styles = { - size: ({ size }) => ({ - marginTop: size === 'lg' ? 0 : 2, - ...bySize(size) - }), - bold, - autocomplete: { - '&[data-focus="true"]': { - backgroundColor: hoverColor - } - }, - popup: { - display: 'flex', - flexDirection: 'column', - borderRadius: [[0, 0, popupBorderRadiusFocus, popupBorderRadiusFocus]], - backgroundColor: zircon, - boxShadow - }, - separator: { - width: '88%', - height: 1, - margin: '0 auto', - border: 'solid 0.5px', - borderColor: comet - }, - item: { - display: 'flex', - flexDirection: 'row', - width: '100%', - height: 36, - alignItems: 'center' - }, - itemLabel: { - margin: [0], - whiteSpace: 'nowrap', - overflow: 'hidden', - textOverflow: 'ellipsis' - }, - itemType: { - marginLeft: 'auto', - fontSize: 12, - color: comet, - margin: [0] - }, - input: { - display: 'flex', - flex: 1, - width: 273, - padding: [[8, 12]], - alignItems: 'center', - height: searchBoxHeight, - borderRadius: searchBoxBorderRadius, - backgroundColor: zircon, - color: primaryColor - }, - inputWithPopup: { - borderRadius: [[popupBorderRadiusFocus, popupBorderRadiusFocus, 0, 0]], - boxShadow - }, - iconButton: { - marginRight: 12 - } -} - -export default styles diff --git a/new-lamassu-admin/src/components/SearchFilter.jsx b/new-lamassu-admin/src/components/SearchFilter.jsx index 3089f637..62a5d788 100644 --- a/new-lamassu-admin/src/components/SearchFilter.jsx +++ b/new-lamassu-admin/src/components/SearchFilter.jsx @@ -1,6 +1,5 @@ -import { makeStyles } from '@mui/styles' +import Chip from '@mui/material/Chip' import React from 'react' -import Chip from 'src/components/Chip' import { P, Label3 } from 'src/components/typography' import CloseIcon from 'src/styling/icons/action/close/zodiac.svg?react' import FilterIcon from 'src/styling/icons/button/filter/white.svg?react' @@ -9,48 +8,39 @@ import ReverseFilterIcon from 'src/styling/icons/button/filter/zodiac.svg?react' import { ActionButton } from 'src/components/buttons' import { onlyFirstToUpper, singularOrPlural } from 'src/utils/string' -import { chipStyles, styles } from './SearchFilter.styles' - -const useChipStyles = makeStyles(chipStyles) -const useStyles = makeStyles(styles) - const SearchFilter = ({ filters, onFilterDelete, deleteAllFilters, entries = 0 }) => { - const chipClasses = useChipStyles() - const classes = useStyles() - return ( <> -

    {'Filters:'}

    -
    -
    +

    {'Filters:'}

    +
    +
    {filters.map((f, idx) => ( onFilterDelete(f)} - deleteIcon={} + deleteIcon={} /> ))}
    -
    +
    { - {`${entries} ${singularOrPlural( + {`${entries} ${singularOrPlural( entries, `entry`, `entries` )}`} } Delete filters diff --git a/new-lamassu-admin/src/components/SearchFilter.styles.js b/new-lamassu-admin/src/components/SearchFilter.styles.js deleted file mode 100644 index fd2f8ccb..00000000 --- a/new-lamassu-admin/src/components/SearchFilter.styles.js +++ /dev/null @@ -1,62 +0,0 @@ -import { - primaryColor, - zircon, - smallestFontSize, - inputFontFamily, - inputFontWeight, - spacer, - offColor -} from 'src/styling/variables' - -const chipStyles = { - root: { - marginLeft: 0, - height: 20, - backgroundColor: zircon, - '&:hover, &:focus, &:active': { - backgroundColor: zircon - }, - marginBottom: 'auto' - }, - label: { - fontSize: smallestFontSize, - fontWeight: inputFontWeight, - fontFamily: inputFontFamily, - paddingRight: 0, - paddingLeft: spacer, - color: primaryColor - } -} - -const styles = { - button: { - width: 8, - height: 8, - marginLeft: 8, - marginRight: 8 - }, - text: { - marginTop: 0, - marginBottom: 0 - }, - filters: { - display: 'flex', - marginBottom: 16 - }, - deleteWrapper: { - display: 'flex', - marginLeft: 'auto', - justifyContent: 'flex-end', - flexDirection: 'row' - }, - entries: { - color: offColor, - margin: 'auto', - marginRight: 12 - }, - chips: { - marginTop: 'auto' - } -} - -export { chipStyles, styles } diff --git a/new-lamassu-admin/src/components/Stage.jsx b/new-lamassu-admin/src/components/Stage.jsx deleted file mode 100644 index e691e4b4..00000000 --- a/new-lamassu-admin/src/components/Stage.jsx +++ /dev/null @@ -1,112 +0,0 @@ -import { makeStyles } from '@mui/styles' -import classnames from 'classnames' -import * as R from 'ramda' -import React, { memo } from 'react' -import CompleteStageIconSpring from 'src/styling/icons/stage/spring/complete.svg?react' -import CurrentStageIconSpring from 'src/styling/icons/stage/spring/current.svg?react' -import EmptyStageIconSpring from 'src/styling/icons/stage/spring/empty.svg?react' -import CompleteStageIconZodiac from 'src/styling/icons/stage/zodiac/complete.svg?react' -import CurrentStageIconZodiac from 'src/styling/icons/stage/zodiac/current.svg?react' -import EmptyStageIconZodiac from 'src/styling/icons/stage/zodiac/empty.svg?react' - -import { - primaryColor, - secondaryColor, - offColor, - disabledColor -} from 'src/styling/variables' - -const styles = { - stages: { - display: 'flex', - alignItems: 'center' - }, - wrapper: { - display: 'flex', - alignItems: 'center', - margin: 0 - }, - stage: { - display: 'flex', - height: 28, - width: 28, - zIndex: 2, - '& > svg': { - height: '100%', - width: '100%', - overflow: 'visible' - } - }, - separator: { - width: 28, - height: 2, - border: [[2, 'solid']], - zIndex: 1 - }, - separatorSpring: { - borderColor: secondaryColor - }, - separatorZodiac: { - borderColor: primaryColor - }, - separatorSpringEmpty: { - borderColor: disabledColor - }, - separatorZodiacEmpty: { - borderColor: offColor - } -} - -const useStyles = makeStyles(styles) - -const Stage = memo(({ stages, currentStage, color = 'spring', className }) => { - if (currentStage < 1 || currentStage > stages) - throw Error('Value of currentStage is invalid') - if (stages < 1) throw Error('Value of stages is invalid') - - const classes = useStyles() - - const separatorClasses = { - [classes.separator]: true, - [classes.separatorSpring]: color === 'spring', - [classes.separatorZodiac]: color === 'zodiac' - } - - const separatorEmptyClasses = { - [classes.separator]: true, - [classes.separatorSpringEmpty]: color === 'spring', - [classes.separatorZodiacEmpty]: color === 'zodiac' - } - - return ( -
    - {R.range(1, currentStage).map(idx => ( -
    - {idx > 1 &&
    } -
    - {color === 'spring' && } - {color === 'zodiac' && } -
    -
    - ))} -
    - {currentStage > 1 &&
    } -
    - {color === 'spring' && } - {color === 'zodiac' && } -
    -
    - {R.range(currentStage + 1, stages + 1).map(idx => ( -
    -
    -
    - {color === 'spring' && } - {color === 'zodiac' && } -
    -
    - ))} -
    - ) -}) - -export default Stage diff --git a/new-lamassu-admin/src/components/Status.jsx b/new-lamassu-admin/src/components/Status.jsx index 38c02988..710cffdd 100644 --- a/new-lamassu-admin/src/components/Status.jsx +++ b/new-lamassu-admin/src/components/Status.jsx @@ -1,59 +1,8 @@ import Chip from '@mui/material/Chip' -import { makeStyles } from '@mui/styles' import React from 'react' -import { - tomato, - mistyRose, - pumpkin, - secondaryColorDarker as spring4, - inputFontWeight, - spring3, - zircon, - primaryColor, - smallestFontSize, - inputFontFamily, - spacer, - linen -} from '../styling/variables' - -const colors = { - error: tomato, - warning: pumpkin, - success: spring4, - neutral: primaryColor -} - -const backgroundColors = { - error: mistyRose, - warning: linen, - success: spring3, - neutral: zircon -} - -const useStyles = makeStyles({ - root: { - borderRadius: spacer / 2, - marginTop: spacer / 2, - marginRight: spacer / 4, - marginBottom: spacer / 2, - marginLeft: spacer / 4, - height: spacer * 3, - backgroundColor: ({ type }) => backgroundColors[type] - }, - label: { - fontSize: smallestFontSize, - fontWeight: inputFontWeight, - fontFamily: inputFontFamily, - paddingRight: spacer / 2, - paddingLeft: spacer / 2, - color: ({ type }) => colors[type] - } -}) - const Status = ({ status }) => { - const classes = useStyles({ type: status.type }) - return + return } const MainStatus = ({ statuses }) => { diff --git a/new-lamassu-admin/src/components/Stepper.jsx b/new-lamassu-admin/src/components/Stepper.jsx index c8590173..66a829ab 100644 --- a/new-lamassu-admin/src/components/Stepper.jsx +++ b/new-lamassu-admin/src/components/Stepper.jsx @@ -1,4 +1,3 @@ -import { makeStyles } from '@mui/styles' import classnames from 'classnames' import * as R from 'ramda' import React, { memo } from 'react' @@ -9,79 +8,29 @@ import CompleteStageIconZodiac from 'src/styling/icons/stage/zodiac/complete.svg import CurrentStageIconZodiac from 'src/styling/icons/stage/zodiac/current.svg?react' import EmptyStageIconZodiac from 'src/styling/icons/stage/zodiac/empty.svg?react' -import { - primaryColor, - secondaryColor, - offColor, - disabledColor -} from 'src/styling/variables' - -const styles = { - stages: { - display: 'flex', - alignItems: 'center' - }, - wrapper: { - display: 'flex', - alignItems: 'center', - margin: 0 - }, - stage: { - display: 'flex', - height: 28, - width: 28, - zIndex: 2, - '& > svg': { - height: '100%', - width: '100%', - overflow: 'visible' - } - }, - separator: { - width: 28, - height: 2, - border: [[2, 'solid']], - zIndex: 1 - }, - separatorSpring: { - borderColor: secondaryColor - }, - separatorZodiac: { - borderColor: primaryColor - }, - separatorSpringEmpty: { - borderColor: disabledColor - }, - separatorZodiacEmpty: { - borderColor: offColor - } -} - -const useStyles = makeStyles(styles) +import classes from './Stepper.module.css' const Stepper = memo(({ steps, currentStep, color = 'spring', className }) => { if (currentStep < 1 || currentStep > steps) throw Error('Value of currentStage is invalid') if (steps < 1) throw Error('Value of stages is invalid') - const classes = useStyles() - const separatorClasses = { - [classes.separator]: true, - [classes.separatorSpring]: color === 'spring', - [classes.separatorZodiac]: color === 'zodiac' + 'w-7 h-[2px] border-2 z-1': true, + 'border-spring': color === 'spring', + 'border-zodiac': color === 'zodiac' } const separatorEmptyClasses = { - [classes.separator]: true, - [classes.separatorSpringEmpty]: color === 'spring', - [classes.separatorZodiacEmpty]: color === 'zodiac' + 'w-7 h-[2px] border-2 z-1': true, + 'border-dust': color === 'spring', + 'border-comet': color === 'zodiac' } return ( -
    +
    {R.range(1, currentStep).map(idx => ( -
    +
    {idx > 1 &&
    }
    {color === 'spring' && } @@ -89,7 +38,7 @@ const Stepper = memo(({ steps, currentStep, color = 'spring', className }) => {
    ))} -
    +
    {currentStep > 1 &&
    }
    {color === 'spring' && } @@ -97,7 +46,7 @@ const Stepper = memo(({ steps, currentStep, color = 'spring', className }) => {
    {R.range(currentStep + 1, steps + 1).map(idx => ( -
    +
    {color === 'spring' && } diff --git a/new-lamassu-admin/src/components/Stepper.module.css b/new-lamassu-admin/src/components/Stepper.module.css new file mode 100644 index 00000000..34c7b5f7 --- /dev/null +++ b/new-lamassu-admin/src/components/Stepper.module.css @@ -0,0 +1,12 @@ +.stage { + display: flex; + height: 28px; + width: 28px; + z-index: 2; +} + +.stage > svg { + height: 100%; + width: 100%; + overflow: visible; +} \ No newline at end of file diff --git a/new-lamassu-admin/src/components/Subtitle.jsx b/new-lamassu-admin/src/components/Subtitle.jsx index b22f56a0..1efb6f3a 100644 --- a/new-lamassu-admin/src/components/Subtitle.jsx +++ b/new-lamassu-admin/src/components/Subtitle.jsx @@ -1,27 +1,12 @@ -import { makeStyles } from '@mui/styles' import classnames from 'classnames' import React, { memo } from 'react' -import { spacer, offColor } from 'src/styling/variables' - import { TL1 } from './typography' -const useStyles = makeStyles({ - subtitle: { - color: offColor, - marginTop: spacer * 2, - marginBottom: spacer * 2 - }, - extraMarginTop: { - marginTop: spacer * 9 - } -}) - const Subtitle = memo(({ children, className, extraMarginTop }) => { - const classes = useStyles() const classNames = { - [classes.subtitle]: true, - [classes.extraMarginTop]: extraMarginTop + 'text-comet my-4': true, + 'mt-18': extraMarginTop } return {children} diff --git a/new-lamassu-admin/src/components/TableLabel.jsx b/new-lamassu-admin/src/components/TableLabel.jsx deleted file mode 100644 index efddfa62..00000000 --- a/new-lamassu-admin/src/components/TableLabel.jsx +++ /dev/null @@ -1,35 +0,0 @@ -import { makeStyles } from '@mui/styles' -import classnames from 'classnames' -import React from 'react' - -import { Label1 } from './typography' - -const useStyles = makeStyles({ - wrapper: { - display: 'flex', - alignItems: 'center' - }, - colorIndicator: { - borderRadius: 3, - height: 12, - width: 12, - marginRight: 8 - } -}) - -const TableLabel = ({ className, label, color, ...props }) => { - const classes = useStyles() - return ( -
    - {color && ( -
    - )} - {label} -
    - ) -} - -export default TableLabel diff --git a/new-lamassu-admin/src/components/Title.jsx b/new-lamassu-admin/src/components/Title.jsx index 13bf4e5f..25c68b20 100644 --- a/new-lamassu-admin/src/components/Title.jsx +++ b/new-lamassu-admin/src/components/Title.jsx @@ -1,20 +1,9 @@ -import { makeStyles } from '@mui/styles' import React, { memo } from 'react' -import { spacer } from 'src/styling/variables' - import { H1 } from './typography' -const useStyles = makeStyles({ - title: { - marginTop: spacer * 3, - marginBottom: spacer * 3 - } -}) - const Title = memo(({ children }) => { - const classes = useStyles() - return

    {children}

    + return

    {children}

    }) export default Title diff --git a/new-lamassu-admin/src/components/Tooltip.jsx b/new-lamassu-admin/src/components/Tooltip.jsx index 863dc417..1d825f77 100644 --- a/new-lamassu-admin/src/components/Tooltip.jsx +++ b/new-lamassu-admin/src/components/Tooltip.jsx @@ -1,11 +1,10 @@ import ClickAwayListener from '@mui/material/ClickAwayListener' -import { makeStyles } from '@mui/styles' import * as R from 'ramda' import React, { useState, memo } from 'react' import Popper from 'src/components/Popper' import HelpIcon from 'src/styling/icons/action/help/zodiac.svg?react' -const useStyles = makeStyles({ +const useStyles = { transparentButton: { border: 'none', backgroundColor: 'transparent', @@ -27,10 +26,9 @@ const useStyles = makeStyles({ width, padding: [[10, 15]] }) -}) +} -const usePopperHandler = width => { - const classes = useStyles({ width }) +const usePopperHandler = () => { const [helpPopperAnchorEl, setHelpPopperAnchorEl] = useState(null) const handleOpenHelpPopper = event => { @@ -48,7 +46,6 @@ const usePopperHandler = width => { const helpPopperOpen = Boolean(helpPopperAnchorEl) return { - classes, helpPopperAnchorEl, helpPopperOpen, handleOpenHelpPopper, @@ -62,15 +59,13 @@ const HelpTooltip = memo(({ children, width }) => { return ( -
    +
    {handler.helpPopperOpen && ( -
    +
    )} @@ -79,7 +74,9 @@ const HelpTooltip = memo(({ children, width }) => { anchorEl={handler.helpPopperAnchorEl} arrowEnabled={true} placement="bottom"> -
    {children}
    +
    + {children} +
    @@ -104,7 +101,7 @@ const HoverableTooltip = memo(({ parentElements, children, width }) => { type="button" onMouseEnter={handler.handleOpenHelpPopper} onMouseLeave={handler.handleCloseHelpPopper} - className={handler.classes.transparentButton}> + className="border-0 bg-transparent outline-0 cursor-pointer mt-1"> )} @@ -112,7 +109,9 @@ const HoverableTooltip = memo(({ parentElements, children, width }) => { open={handler.helpPopperOpen} anchorEl={handler.helpPopperAnchorEl} placement="bottom"> -
    {children}
    +
    + {children} +
    diff --git a/new-lamassu-admin/src/components/Uptime.jsx b/new-lamassu-admin/src/components/Uptime.jsx deleted file mode 100644 index ed1d4a2e..00000000 --- a/new-lamassu-admin/src/components/Uptime.jsx +++ /dev/null @@ -1,93 +0,0 @@ -import { makeStyles } from '@mui/styles' -import Chip from '@mui/material/Chip' -import * as R from 'ramda' -import React from 'react' - -import { - secondaryColorLighter, - secondaryColorDarker, - offErrorColor, - errorColor, - offColor, - inputFontWeight, - smallestFontSize, - inputFontFamily, - spacer -} from 'src/styling/variables' -import { onlyFirstToUpper } from 'src/utils/string' - -import typographyStyles from './typography/styles' -const { label1 } = typographyStyles - -const colors = { - running: secondaryColorDarker, - notRunning: offErrorColor -} - -const backgroundColors = { - running: secondaryColorLighter, - notRunning: errorColor -} - -const styles = { - uptimeContainer: { - display: 'inline-block', - minWidth: 104, - margin: [[0, 20]] - }, - name: { - extend: label1, - paddingLeft: 4, - color: offColor - } -} - -const useStyles = makeStyles(styles) - -const useChipStyles = makeStyles({ - root: { - borderRadius: spacer / 2, - marginTop: spacer / 2, - marginRight: spacer / 4, - marginBottom: spacer / 2, - marginLeft: spacer / 4, - height: spacer * 3, - backgroundColor: ({ type }) => backgroundColors[type] - }, - label: { - fontSize: smallestFontSize, - fontWeight: inputFontWeight, - fontFamily: inputFontFamily, - padding: [[spacer / 2, spacer]], - color: ({ type }) => colors[type] - } -}) - -const Uptime = ({ process, ...props }) => { - const classes = useStyles() - - const uptime = time => { - if (time < 60) return `${time}s` - if (time < 3600) return `${Math.floor(time / 60)}m` - if (time < 86400) return `${Math.floor(time / 60 / 60)}h` - return `${Math.floor(time / 60 / 60 / 24)}d` - } - - return ( -
    -
    {R.toLower(process.name)}
    - -
    - ) -} - -export default Uptime diff --git a/new-lamassu-admin/src/components/booleanPropertiesTable/BooleanPropertiesTable.jsx b/new-lamassu-admin/src/components/booleanPropertiesTable/BooleanPropertiesTable.jsx index 361adeb2..10ace709 100644 --- a/new-lamassu-admin/src/components/booleanPropertiesTable/BooleanPropertiesTable.jsx +++ b/new-lamassu-admin/src/components/booleanPropertiesTable/BooleanPropertiesTable.jsx @@ -1,5 +1,4 @@ -import { makeStyles } from '@mui/styles' -import classnames from 'classnames' +import IconButton from '@mui/material/IconButton' import { useFormikContext, Form, Formik, Field as FormikField } from 'formik' import * as R from 'ramda' import React, { useState, memo } from 'react' @@ -11,13 +10,10 @@ import FalseIcon from 'src/styling/icons/table/false.svg?react' import TrueIcon from 'src/styling/icons/table/true.svg?react' import * as Yup from 'yup' -import { Link, IconButton } from 'src/components/buttons' +import { Link } from 'src/components/buttons' import { RadioGroup } from 'src/components/inputs/formik' import { Table, TableBody, TableRow, TableCell } from 'src/components/table' - -import { booleanPropertiesTableStyles } from './BooleanPropertiesTable.styles' - -const useStyles = makeStyles(booleanPropertiesTableStyles) +import SvgIcon from '@mui/material/SvgIcon' const BooleanCell = ({ name }) => { const { values } = useFormikContext() @@ -26,6 +22,8 @@ const BooleanCell = ({ name }) => { const BooleanPropertiesTable = memo( ({ title, disabled, data, elements, save, forcedEditing = false }) => { + const [editing, setEditing] = useState(forcedEditing) + const initialValues = R.fromPairs( elements.map(it => [it.name, data[it.name]?.toString() ?? 'false']) ) @@ -39,10 +37,6 @@ const BooleanPropertiesTable = memo( ) ) - const [editing, setEditing] = useState(forcedEditing) - - const classes = useStyles() - const innerSave = async values => { const toBoolean = (num, _) => R.equals(num, 'true') save(R.mapObjIndexed(toBoolean, R.filter(R.complement(R.isNil))(values))) @@ -54,7 +48,7 @@ const BooleanPropertiesTable = memo( { display: 'No', code: 'false' } ] return ( -
    +
    { return (
    -
    +

    {title}

    {editing ? ( -
    +
    Save { resetForm() setEditing(false) @@ -85,34 +79,30 @@ const BooleanPropertiesTable = memo(
    ) : ( setEditing(true)} - size="large"> - {disabled ? : } + className="my-auto mx-3" + onClick={() => setEditing(true)}> + + {disabled ? : } + )}
    - - +
    + {elements.map((it, idx) => ( - - {it.display} - - + className="h-auto py-2 px-4 flex items-center justify-between min-h-8 even:bg-transparent odd:bg-zircon"> + {it.display} + {editing && ( )} {!editing && } @@ -122,11 +112,11 @@ const BooleanPropertiesTable = memo(
    - ); + ) }}
    - ); + ) } ) diff --git a/new-lamassu-admin/src/components/booleanPropertiesTable/BooleanPropertiesTable.styles.js b/new-lamassu-admin/src/components/booleanPropertiesTable/BooleanPropertiesTable.styles.js deleted file mode 100644 index f6a5c1b9..00000000 --- a/new-lamassu-admin/src/components/booleanPropertiesTable/BooleanPropertiesTable.styles.js +++ /dev/null @@ -1,74 +0,0 @@ -import baseStyles from 'src/pages/Logs.styles' -import { backgroundColor, zircon } from 'src/styling/variables' - -const { fillColumn } = baseStyles - -const booleanPropertiesTableStyles = { - booleanPropertiesTableWrapper: { - display: 'flex', - flexDirection: 'column', - width: 396 - }, - tableRow: { - display: 'flex', - alignItems: 'center', - justifyContent: 'space-between', - '&:nth-child(even)': { - backgroundColor: backgroundColor - }, - '&:nth-child(odd)': { - backgroundColor: zircon - }, - minHeight: 32, - height: 'auto', - padding: [[8, 16, 8, 24]], - boxShadow: '0 0 0 0 rgba(0, 0, 0, 0)' - }, - leftTableCell: { - display: 'flex', - alignItems: 'center', - justifyContent: 'left', - width: 200, - padding: [0] - }, - rightTableCell: { - display: 'flex', - alignItems: 'center', - justifyContent: 'right', - padding: [0] - }, - transparentButton: { - '& > *': { - margin: 'auto 12px' - }, - '& button': { - border: 'none', - backgroundColor: 'transparent', - cursor: 'pointer' - } - }, - rowWrapper: { - display: 'flex', - alignItems: 'center', - position: 'relative', - flex: 'wrap' - }, - rightAligned: { - marginLeft: 'auto' - }, - radioButtons: { - display: 'flex', - flexDirection: 'row', - margin: [-15] - }, - rightLink: { - marginLeft: '20px' - }, - fillColumn, - popoverContent: { - width: 272, - padding: [[10, 15]] - } -} - -export { booleanPropertiesTableStyles } diff --git a/new-lamassu-admin/src/components/buttons/ActionButton.jsx b/new-lamassu-admin/src/components/buttons/ActionButton.jsx index d2fb2043..43666387 100644 --- a/new-lamassu-admin/src/components/buttons/ActionButton.jsx +++ b/new-lamassu-admin/src/components/buttons/ActionButton.jsx @@ -1,34 +1,41 @@ -import { makeStyles } from '@mui/styles' import classnames from 'classnames' import React, { memo } from 'react' -import styles from './ActionButton.styles' - -const useStyles = makeStyles(styles) +import moduleStyles from './ActionButton.module.css' const ActionButton = memo( - ({ className, Icon, InverseIcon, color, children, ...props }) => { - const classes = useStyles() + ({ + className, + altTextColor, + Icon, + InverseIcon, + color, + center, + children, + ...props + }) => { const classNames = { - [classes.actionButton]: true, - [classes.primary]: color === 'primary', - [classes.secondary]: color === 'secondary', - [classes.spring]: color === 'spring', - [classes.tomato]: color === 'tomato' + [moduleStyles.actionButton]: true, + [moduleStyles.altText]: altTextColor || color !== 'primary', + [moduleStyles.primary]: color === 'primary', + [moduleStyles.secondary]: color === 'secondary', + [moduleStyles.spring]: color === 'spring', + [moduleStyles.tomato]: color === 'tomato', + [moduleStyles.center]: center } return ( diff --git a/new-lamassu-admin/src/components/buttons/Button.module.css b/new-lamassu-admin/src/components/buttons/Button.module.css new file mode 100644 index 00000000..be15b02e --- /dev/null +++ b/new-lamassu-admin/src/components/buttons/Button.module.css @@ -0,0 +1,49 @@ +.button { + composes: h3 from '../typography/typography.module.css'; + border: none; + cursor: pointer; + outline: 0; + font-weight: 900; + background-color: var(--spring); + height: 40px; + padding: 0 20px; + border-radius: 10px; + box-shadow: 0 3px var(--spring4); +} + +.buttonXl { + composes: h1 from '../typography/typography.module.css'; + height: 61px; + border-radius: 15px +} + +.buttonSm { + height: 32px; + padding: 0 16px; + border-radius: 8px +} + +.button:disabled { + background-color: var(--dust); + box-shadow: none; +} + +.button:disabled:hover { + background-color: var(--dust); + box-shadow: none; +} + +.button:disabled:active { + margin-top: 0; +} + +.button:hover { + background-color: var(--spring2); + box-shadow: 0 3px var(--spring4); +} + +.button:active { + margin-top: 2px; + background-color: var(--spring2); + box-shadow: 0 2px var(--spring4); +} \ No newline at end of file diff --git a/new-lamassu-admin/src/components/buttons/Button.styles.js b/new-lamassu-admin/src/components/buttons/Button.styles.js deleted file mode 100644 index 157c37a1..00000000 --- a/new-lamassu-admin/src/components/buttons/Button.styles.js +++ /dev/null @@ -1,79 +0,0 @@ -import typographyStyles from 'src/components/typography/styles' -import { - white, - disabledColor, - secondaryColor, - secondaryColorDark, - secondaryColorDarker, - offColor, - offDarkColor, - offDarkerColor, - spacer -} from 'src/styling/variables' - -const { h1, h3 } = typographyStyles - -const pickSize = size => { - switch (size) { - case 'xl': - return spacer * 7.625 - case 'sm': - return spacer * 4 - case 'lg': - default: - return spacer * 5 - } -} - -export default { - wrapper: ({ size }) => { - const height = pickSize(size) - const shadowSize = height / 12 - return { height: height + shadowSize / 2 } - }, - button: ({ size, backgroundColor }) => { - const height = pickSize(size) - const shadowSize = size === 'xl' ? 3 : height / 12 - const padding = size === 'xl' ? 20 : height / 2 - const isGrey = backgroundColor === 'grey' - - return { - extend: size === 'xl' ? h1 : h3, - border: 'none', - color: white, - cursor: 'pointer', - fontWeight: 900, - outline: 0, - backgroundColor: isGrey ? offDarkColor : secondaryColor, - '&:disabled': { - backgroundColor: disabledColor, - boxShadow: 'none', - '&:hover': { - backgroundColor: disabledColor, - boxShadow: 'none' - }, - '&:active': { - marginTop: 0 - } - }, - shadowSize, - height, - padding: `0 ${padding}px`, - borderRadius: height / 4, - boxShadow: `0 ${shadowSize}px ${isGrey ? offColor : secondaryColorDark}`, - '&:hover': { - backgroundColor: isGrey ? offColor : secondaryColorDark, - boxShadow: `0 ${shadowSize}px ${ - isGrey ? offDarkerColor : secondaryColorDarker - }` - }, - '&:active': { - marginTop: shadowSize / 2, - backgroundColor: isGrey ? offDarkColor : secondaryColorDark, - boxShadow: `0 ${shadowSize / 2}px ${ - isGrey ? offDarkerColor : secondaryColorDarker - }` - } - } - } -} diff --git a/new-lamassu-admin/src/components/buttons/DeleteButton.jsx b/new-lamassu-admin/src/components/buttons/DeleteButton.jsx deleted file mode 100644 index 3c2f56f6..00000000 --- a/new-lamassu-admin/src/components/buttons/DeleteButton.jsx +++ /dev/null @@ -1,53 +0,0 @@ -import { makeStyles } from '@mui/styles' -import classnames from 'classnames' -import React, { memo } from 'react' -import DeleteIcon from 'src/styling/icons/button/cancel/zodiac.svg?react' - -import typographyStyles from 'src/components/typography/styles' -import { zircon, zircon2, comet, fontColor, white } from 'src/styling/variables' - -const { p } = typographyStyles - -const styles = { - button: { - extend: p, - border: 'none', - backgroundColor: zircon, - cursor: 'pointer', - outline: 0, - display: 'flex', - justifyContent: 'center', - alignItems: 'center', - width: 167, - height: 48, - color: fontColor, - '&:hover': { - backgroundColor: zircon2 - }, - '&:active': { - backgroundColor: comet, - color: white, - '& svg g *': { - stroke: white - } - }, - '& svg': { - marginRight: 8 - } - } -} - -const useStyles = makeStyles(styles) - -const SimpleButton = memo(({ className, children, ...props }) => { - const classes = useStyles() - - return ( - - ) -}) - -export default SimpleButton diff --git a/new-lamassu-admin/src/components/buttons/FeatureButton.jsx b/new-lamassu-admin/src/components/buttons/FeatureButton.jsx index ad571077..73fb0a63 100644 --- a/new-lamassu-admin/src/components/buttons/FeatureButton.jsx +++ b/new-lamassu-admin/src/components/buttons/FeatureButton.jsx @@ -1,47 +1,19 @@ -import { makeStyles } from '@mui/styles' import classnames from 'classnames' import React, { memo } from 'react' -import baseButtonStyles from './BaseButton.styles' - -const { baseButton, primary } = baseButtonStyles - -const styles = { - featureButton: { - extend: baseButton, - width: baseButton.height, - borderRadius: baseButton.height / 2, - display: 'flex', - padding: 0 - }, - primary, - buttonIcon: { - margin: 'auto', - '& svg': { - width: 16, - height: 16, - overflow: 'visible', - '& g': { - strokeWidth: 1.8 - } - } - }, - buttonIconActive: {} // required to extend primary -} - -const useStyles = makeStyles(styles) +import classes from './FeatureButton.module.css' const FeatureButton = memo( ({ className, Icon, InverseIcon, children, ...props }) => { - const classes = useStyles() - - const classNames = { - [classes.featureButton]: true, - [classes.primary]: true - } - return ( - -
    - )} -
    - {editing ? ( - setCurrentCode(event.target.value)} - className={classes.radioButtons} - /> - ) : ( -

    - {`${prefixText} ${options - .find(it => it.code === currentCode) - .display.toLowerCase()}`} -

    - )} - - ) - } -) - -export default EditableProperty diff --git a/new-lamassu-admin/src/components/editableProperty/EditableProperty.styles.js b/new-lamassu-admin/src/components/editableProperty/EditableProperty.styles.js deleted file mode 100644 index 91ebb25b..00000000 --- a/new-lamassu-admin/src/components/editableProperty/EditableProperty.styles.js +++ /dev/null @@ -1,36 +0,0 @@ -const optionsRowHeigth = 43 - -const editablePropertyStyles = { - transparentButton: { - '& > *': { - margin: 'auto 12px' - }, - '& button': { - border: 'none', - backgroundColor: 'transparent', - cursor: 'pointer' - } - }, - rowWrapper: { - display: 'flex', - alignItems: 'center', - position: 'relative', - flex: 'wrap', - height: optionsRowHeigth - }, - rightAligned: { - display: 'flex', - position: 'absolute', - right: 0 - }, - radioButtons: { - display: 'flex', - flexDirection: 'row', - height: optionsRowHeigth - }, - leftSpace: { - marginLeft: '20px' - } -} - -export { editablePropertyStyles } diff --git a/new-lamassu-admin/src/components/editableProperty/index.js b/new-lamassu-admin/src/components/editableProperty/index.js deleted file mode 100644 index 00091dd2..00000000 --- a/new-lamassu-admin/src/components/editableProperty/index.js +++ /dev/null @@ -1,3 +0,0 @@ -import EditableProperty from './EditableProperty' - -export { EditableProperty } diff --git a/new-lamassu-admin/src/components/editableTable/Header.jsx b/new-lamassu-admin/src/components/editableTable/Header.jsx index cb06ffaa..b6406feb 100644 --- a/new-lamassu-admin/src/components/editableTable/Header.jsx +++ b/new-lamassu-admin/src/components/editableTable/Header.jsx @@ -1,4 +1,3 @@ -import { makeStyles } from '@mui/styles' import classnames from 'classnames' import * as R from 'ramda' import React, { useContext } from 'react' @@ -13,14 +12,6 @@ import { sentenceCase } from 'src/utils/string' import TableCtx from './Context' -const styles = { - orderedBySpan: { - whiteSpace: 'nowrap' - } -} - -const useStyles = makeStyles(styles) - const groupSecondHeader = elements => { const doubleHeader = R.prop('doubleHeader') const sameDoubleHeader = (a, b) => doubleHeader(a) === doubleHeader(b) @@ -46,7 +37,6 @@ const groupSecondHeader = elements => { } const Header = () => { - const classes = useStyles() const { elements, enableEdit, @@ -79,7 +69,7 @@ const Header = () => { idx ) => { const orderClasses = classnames({ - [classes.orderedBySpan]: + 'whitespace-nowrap': R.isNil(header) && !R.isNil(orderedBy) && R.equals(name, orderedBy.code) }) diff --git a/new-lamassu-admin/src/components/editableTable/Row.jsx b/new-lamassu-admin/src/components/editableTable/Row.jsx index 7be62e77..a3781660 100644 --- a/new-lamassu-admin/src/components/editableTable/Row.jsx +++ b/new-lamassu-admin/src/components/editableTable/Row.jsx @@ -1,5 +1,6 @@ -import { makeStyles } from '@mui/styles' import Switch from '@mui/material/Switch' +import IconButton from '@mui/material/IconButton' +import SvgIcon from '@mui/material/SvgIcon' import classnames from 'classnames' import { Field, useFormikContext } from 'formik' import * as R from 'ramda' @@ -13,15 +14,12 @@ import DisabledEditIcon from 'src/styling/icons/action/edit/disabled.svg?react' import EditIcon from 'src/styling/icons/action/edit/enabled.svg?react' import StripesSvg from 'src/styling/icons/stripes.svg?react' -import { Link, IconButton } from 'src/components/buttons' +import { Link } from 'src/components/buttons' import TableCtx from './Context' -import styles from './Row.styles' - -const useStyles = makeStyles(styles) +import moduleStyles from './Row.module.css' const ActionCol = ({ disabled, editing }) => { - const classes = useStyles() const { values, submitForm, resetForm } = useFormikContext() const { editWidth, @@ -59,7 +57,7 @@ const ActionCol = ({ disabled, editing }) => { {editing && ( @@ -76,10 +74,11 @@ const ActionCol = ({ disabled, editing }) => { onEdit && onEdit(values.id)} - size="large"> - {disableEdit ? : } + size="small"> + + {disableEdit ? : } + )} @@ -90,8 +89,10 @@ const ActionCol = ({ disabled, editing }) => { onClick={() => { setDeleteDialog(true) }} - size="large"> - {disabled ? : } + size="small"> + + {disabled ? : } + { )} - ); + ) } const ECol = ({ editing, focus, config, extraPaddingRight, extraPadding }) => { @@ -151,11 +152,6 @@ const ECol = ({ editing, focus, config, extraPaddingRight, extraPadding }) => { const isEditing = editing && isEditable(editable) const isField = !bypassField - const classes = useStyles({ - textAlign: isEditing ? editingAlign : textAlign, - size - }) - const innerProps = { fullWidth: true, autoFocus: focus, @@ -165,16 +161,20 @@ const ECol = ({ editing, focus, config, extraPaddingRight, extraPadding }) => { ...inputProps } + const newAlign = isEditing ? editingAlign : textAlign + const justifyContent = newAlign === 'right' ? 'flex-end' : newAlign + const style = suffix || prefix ? { justifyContent } : {} + return ( -
    +
    {fields.map((f, idx) => ( { textAlign={textAlign}> {prefix && !isHidden(values) && ( {typeof prefix === 'function' ? prefix(f) : prefix} @@ -200,7 +200,7 @@ const ECol = ({ editing, focus, config, extraPaddingRight, extraPadding }) => { )} {suffix && !isHidden(values) && ( {suffix} @@ -241,8 +241,6 @@ const ERow = ({ editing, disabled, lastOfGroup, newRow }) => { stripeWhen } = useContext(TableCtx) - const classes = useStyles() - const shouldStripe = !editing && stripeWhen && stripeWhen(values) const innerElements = shouldStripe ? groupStriped(elements) : elements @@ -261,7 +259,7 @@ const ERow = ({ editing, disabled, lastOfGroup, newRow }) => { ) const classNames = { - [classes.lastOfGroup]: lastOfGroup + [moduleStyles.lastOfGroup]: lastOfGroup } const touchedErrors = R.pick(R.keys(touched), errors) diff --git a/new-lamassu-admin/src/components/editableTable/Row.module.css b/new-lamassu-admin/src/components/editableTable/Row.module.css new file mode 100644 index 00000000..b7ef4b0b --- /dev/null +++ b/new-lamassu-admin/src/components/editableTable/Row.module.css @@ -0,0 +1,29 @@ +.saveButton { + margin-right: 20px; +} + +.lastOfGroup { + margin-bottom: 24px; +} + +.extraPadding { + padding-left: 35px; + padding-right: 30px; +} + +.extraPaddingRight { + padding-right: 39px; +} + +.suffix { + margin: 0 0 0 7px; +} + +.prefix { + margin: 0 7px 0 0; +} + +.fields { + display: flex; + flex-direction: column; +} \ No newline at end of file diff --git a/new-lamassu-admin/src/components/editableTable/Row.styles.js b/new-lamassu-admin/src/components/editableTable/Row.styles.js deleted file mode 100644 index 48c7a8f4..00000000 --- a/new-lamassu-admin/src/components/editableTable/Row.styles.js +++ /dev/null @@ -1,45 +0,0 @@ -import { bySize, bold } from 'src/styling/helpers' - -export default { - saveButton: { - marginRight: 20 - }, - lastOfGroup: { - marginBottom: 24 - }, - extraPadding: { - paddingLeft: 35, - paddingRight: 30 - }, - extraPaddingRight: { - paddingRight: 39 - }, - withSuffix: ({ textAlign }) => { - const justifyContent = textAlign === 'right' ? 'flex-end' : textAlign - return { - display: 'flex', - alignItems: 'center', - justifyContent - } - }, - suffix: { - margin: [[0, 0, 0, 7]] - }, - withPrefix: ({ textAlign }) => { - const justifyContent = textAlign === 'right' ? 'flex-end' : textAlign - return { - display: 'flex', - alignItems: 'center', - justifyContent - } - }, - prefix: { - margin: [[0, 7, 0, 0]] - }, - size: ({ size }) => bySize(size), - bold, - fields: { - display: 'flex', - flexDirection: 'column' - } -} diff --git a/new-lamassu-admin/src/components/editableTable/Table.jsx b/new-lamassu-admin/src/components/editableTable/Table.jsx index f7bdefce..07f642a1 100644 --- a/new-lamassu-admin/src/components/editableTable/Table.jsx +++ b/new-lamassu-admin/src/components/editableTable/Table.jsx @@ -1,4 +1,3 @@ -import { makeStyles } from '@mui/styles' import { Form, Formik } from 'formik' import * as R from 'ramda' import React, { useState, useEffect } from 'react' @@ -13,13 +12,11 @@ import { AddButton } from 'src/components/buttons/index' import TableCtx from './Context' import Header from './Header' import ERow from './Row' -import styles from './Table.styles' +import classes from './Table.module.css' const ACTION_COL_SIZE = 87 const DEFAULT_COL_SIZE = 100 -const useStyles = makeStyles(styles) - const getWidth = R.compose( R.reduce(R.add)(0), R.map(it => it.width ?? DEFAULT_COL_SIZE) @@ -129,8 +126,6 @@ const ETable = ({ const width = getWidth(elements) + actionColSize - const classes = useStyles({ width }) - const showButtonOnEmpty = !data.length && enableCreate && !adding const canAdd = !forceDisable && !editingId && !disableAdd && !adding const showTable = adding || data.length !== 0 @@ -162,7 +157,7 @@ const ETable = ({ return ( -
    +
    {showButtonOnEmpty && canAdd && ( {createText} )} diff --git a/new-lamassu-admin/src/components/editableTable/Table.module.css b/new-lamassu-admin/src/components/editableTable/Table.module.css new file mode 100644 index 00000000..9808ccd5 --- /dev/null +++ b/new-lamassu-admin/src/components/editableTable/Table.module.css @@ -0,0 +1,16 @@ +.addLink { + margin-left: auto; +} + +.title { + margin: 0; + color: var(--comet); +} + +.outerHeader { + min-height: 16px; + margin-bottom: 24px; + display: flex; + justify-content: space-between; + align-items: center; +} diff --git a/new-lamassu-admin/src/components/editableTable/Table.styles.js b/new-lamassu-admin/src/components/editableTable/Table.styles.js deleted file mode 100644 index 00f93bd6..00000000 --- a/new-lamassu-admin/src/components/editableTable/Table.styles.js +++ /dev/null @@ -1,21 +0,0 @@ -import { offColor } from 'src/styling/variables' - -export default { - wrapper: ({ width }) => ({ - width: width - }), - addLink: { - marginLeft: 'auto' - }, - title: { - margin: 0, - color: offColor - }, - outerHeader: { - minHeight: 16, - marginBottom: 24, - display: 'flex', - justifyContent: 'space-between', - alignItems: 'center' - } -} diff --git a/new-lamassu-admin/src/components/fake-table/Table.jsx b/new-lamassu-admin/src/components/fake-table/Table.jsx index 3c5fdef9..f5eb27d6 100644 --- a/new-lamassu-admin/src/components/fake-table/Table.jsx +++ b/new-lamassu-admin/src/components/fake-table/Table.jsx @@ -1,14 +1,10 @@ import Card from '@mui/material/Card' import CardContent from '@mui/material/CardContent' -import { makeStyles } from '@mui/styles' import classnames from 'classnames' import React from 'react' import { Link } from 'src/components/buttons' - -import styles from './Table.styles' - -const useStyles = makeStyles(styles) +import styles from './Table.module.css' const Table = ({ children, className, ...props }) => (
    @@ -17,17 +13,12 @@ const Table = ({ children, className, ...props }) => ( ) const THead = ({ children, className }) => { - const classes = useStyles() - return
    {children}
    + return
    {children}
    } const TDoubleLevelHead = ({ children, className }) => { - const classes = useStyles() - return ( -
    - {children} -
    +
    {children}
    ) } @@ -36,6 +27,7 @@ const TBody = ({ children, className }) => { } const Td = ({ + style = {}, children, header, className, @@ -45,15 +37,28 @@ const Td = ({ textAlign, action }) => { - const classes = useStyles({ textAlign, width, size }) - const classNames = { - [classes.td]: true, - [classes.tdHeader]: header, - [classes.actionCol]: action, - [classes.size]: !header, - [classes.bold]: !header && bold + const inlineStyle = { + ...style, + width, + textAlign, + fontSize: size === 'sm' ? '14px' : size === 'lg' ? '24px' : '' } - return
    {children}
    + + const cssClasses = { + [styles.td]: !header, + [styles.tdHeader]: header, + 'font-bold': !header && (bold || size === 'lg'), + [styles.actionCol]: action + } + + return ( +
    + {children} +
    + ) } const Th = ({ children, ...props }) => { @@ -65,11 +70,11 @@ const Th = ({ children, ...props }) => { } const ThDoubleLevel = ({ title, children, className, width }) => { - const classes = useStyles({ width }) - return ( -
    -
    {title}
    +
    +
    {title}
    {children}
    ) @@ -85,23 +90,30 @@ const Tr = ({ size, newRow }) => { - const classes = useStyles({ size }) - const cardClasses = { root: classes.cardContentRoot } - const classNames = { - [classes.tr]: true, - [classes.trError]: error, - [classes.card]: true, - [classes.trAdding]: newRow, - className + const inlineStyle = { + minHeight: size === 'sm' ? '34px' : size === 'lg' ? '68px' : '48px' + } + const cardClasses = { + [styles.card]: true, + [styles.trError]: error, + [styles.trAdding]: newRow + } + + const mainContentClasses = { + [styles.mainContent]: true, + [styles.sizeSm]: size === 'sm', + [styles.sizeLg]: size === 'lg' } return ( <> - - -
    {children}
    + + +
    + {children} +
    {error && shouldShowError && ( -
    {errorMessage}
    +
    {errorMessage}
    )}
    diff --git a/new-lamassu-admin/src/components/fake-table/Table.module.css b/new-lamassu-admin/src/components/fake-table/Table.module.css new file mode 100644 index 00000000..ea3277a4 --- /dev/null +++ b/new-lamassu-admin/src/components/fake-table/Table.module.css @@ -0,0 +1,106 @@ +.header { + composes: tl2 from '../typography/typography.module.css'; + background-color: var(--zodiac); + height: 32px; + text-align: left; + color: white; + display: flex; + align-items: center; +} + +.doubleHeader { + composes: tl2 from '../typography/typography.module.css'; + background-color: var(--zodiac); + height: 64px; + color: white; + display: table-row; +} + +.thDoubleLevel { + display: table-cell; +} + +.thDoubleLevelFirst { + composes: label1 from '../typography/typography.module.css'; + margin: 0 10px; + font-weight: 700; + display: flex; + justify-content: center; + align-items: center; + background-color: var(--comet); + color: white; + border-radius: 0 0 8px 8px; + height: 28px; +} + +.thDoubleLevel > :last-child { + padding: 0 11px; + display: table-cell; + vertical-align: middle; + height: 36px; +} + +.cellDoubleLevel { + display: flex; + padding: 0 16px; +} + +.td { + padding: 1px 24px 0 24px; +} + +.tdHeader { + vertical-align: middle; + display: table-cell; + padding: 0 24px; +} + +.trError { + background-color: var(--misty-rose); +} + +.trAdding { + background-color: var(--spring3); +} + +.mainContent { + display: flex; + align-items: center; +} + +.cardContentRoot { + margin: 0; + padding: 0; +} + +.cardContentRoot:last-child { + padding: 0; +} + +.card { + composes: p from '../typography/typography.module.css'; + margin: 4px 0 0 0; + width: 100%; + box-shadow: 0 0 4px 0 rgba(0, 0, 0, 0.08); +} + +.card:before { + height: 0; +} + +.actionCol { + margin-left: auto; +} + +.errorContent { + padding: 12px 0 12px 24px; + color: var(--tomato); +} + +.sizeSm { + min-height: 34px; +} + +.sizeLg { + min-height: 68px; +} diff --git a/new-lamassu-admin/src/components/fake-table/Table.styles.js b/new-lamassu-admin/src/components/fake-table/Table.styles.js deleted file mode 100644 index 00586996..00000000 --- a/new-lamassu-admin/src/components/fake-table/Table.styles.js +++ /dev/null @@ -1,114 +0,0 @@ -import typographyStyles from 'src/components/typography/styles' -import { bySize, bold } from 'src/styling/helpers' -import { - tableHeaderColor, - tableHeaderHeight, - tableErrorColor, - tableSuccessColor, - spacer, - white, - tableDoubleHeaderHeight, - offColor, - errorColor -} from 'src/styling/variables' - -const { tl2, p, label1 } = typographyStyles - -export default { - size: ({ size }) => bySize(size), - bold, - header: { - extend: tl2, - backgroundColor: tableHeaderColor, - height: tableHeaderHeight, - textAlign: 'left', - color: white, - display: 'flex', - alignItems: 'center' - }, - doubleHeader: { - extend: tl2, - backgroundColor: tableHeaderColor, - height: tableDoubleHeaderHeight, - color: white, - display: 'table-row' - }, - thDoubleLevel: ({ width }) => ({ - width, - display: 'table-cell', - '& > :first-child': { - margin: [[0, 10]], - extend: label1, - fontWeight: 700, - display: 'flex', - justifyContent: 'center', - alignItems: 'center', - backgroundColor: offColor, - color: white, - borderRadius: [[0, 0, 8, 8]], - height: 28 - }, - '& > :last-child': { - padding: [[0, 11]], - display: 'table-cell', - verticalAlign: 'middle', - height: tableDoubleHeaderHeight - 28 - } - }), - cellDoubleLevel: { - display: 'flex', - padding: [[0, spacer * 2]] - }, - td: ({ textAlign, width }) => ({ - width, - padding: [[1, spacer * 3, 0, spacer * 3]], - textAlign - }), - tdHeader: { - verticalAlign: 'middle', - display: 'table-cell', - padding: [[0, spacer * 3]] - }, - trError: { - backgroundColor: tableErrorColor - }, - trAdding: { - backgroundColor: tableSuccessColor - }, - mainContent: ({ size }) => { - const sizes = { - sm: 34, - lg: 68 - } - const minHeight = sizes[size] || 48 - return { - display: 'flex', - alignItems: 'center', - minHeight - } - }, - // mui-overrides - cardContentRoot: { - margin: 0, - padding: 0, - '&:last-child': { - padding: 0 - } - }, - card: { - extend: p, - '&:before': { - height: 0 - }, - margin: [[4, 0, 0, 0]], - width: '100%', - boxShadow: [[0, 0, 4, 0, 'rgba(0, 0, 0, 0.08)']] - }, - actionCol: { - marginLeft: 'auto' - }, - errorContent: { - padding: [[12, 0, 12, 24]], - color: errorColor - } -} diff --git a/new-lamassu-admin/src/components/inputs/base/Autocomplete.jsx b/new-lamassu-admin/src/components/inputs/base/Autocomplete.jsx index c641c4cc..819c9411 100644 --- a/new-lamassu-admin/src/components/inputs/base/Autocomplete.jsx +++ b/new-lamassu-admin/src/components/inputs/base/Autocomplete.jsx @@ -1,13 +1,11 @@ -import Box from '@mui/material/Box' import MAutocomplete from '@mui/material/Autocomplete' +import classnames from 'classnames' import sort from 'match-sorter' import * as R from 'ramda' import React from 'react' import { HoverableTooltip } from 'src/components/Tooltip' import { P } from 'src/components/typography' -import { errorColor, orangeYellow, spring4 } from 'src/styling/variables' - import TextInput from './TextInput' const Autocomplete = ({ @@ -82,7 +80,6 @@ const Autocomplete = ({ openOnFocus autoHighlight disableClearable - ChipProps={{ onDelete: null }} clearOnEscape isOptionEqualToValue={R.eqProps(valueProp)} {...props} @@ -104,39 +101,30 @@ const Autocomplete = ({ if (!props.warning && !props.warningMessage) return
  • {R.path([labelProp])(props)}
  • - const warningColors = { - clean: spring4, - partial: orangeYellow, - important: errorColor + const className = { + 'flex w-4 h-4 rounded-md': true, + 'bg-spring4': props.warning === 'clean', + 'bg-orange-yellow': props.warning === 'partial', + 'bg-tomato': props.warning === 'important' } - const hoverableElement = ( - - ) + const hoverableElement =
    return (
  • - - {R.path([labelProp])(props)} +
    +
    {R.path([labelProp])(props)}

    {props.warningMessage}

    - +
  • ) }} - /> - ) + slotProps={{ + chip: { onDelete: null } + }} /> + ); } export default Autocomplete diff --git a/new-lamassu-admin/src/components/inputs/base/Checkbox.jsx b/new-lamassu-admin/src/components/inputs/base/Checkbox.jsx index cd097e1f..597c2157 100644 --- a/new-lamassu-admin/src/components/inputs/base/Checkbox.jsx +++ b/new-lamassu-admin/src/components/inputs/base/Checkbox.jsx @@ -1,60 +1,22 @@ import Checkbox from '@mui/material/Checkbox' -import { makeStyles } from '@mui/styles' import CheckBoxIcon from '@mui/icons-material/CheckBox' import CheckBoxOutlineBlankIcon from '@mui/icons-material/CheckBoxOutlineBlank' import React from 'react' import { Label2, Info3 } from 'src/components/typography' import WarningIcon from 'src/styling/icons/warning-icon/comet.svg?react' -import { - fontSize2, - fontSize3, - secondaryColor, - offColor -} from 'src/styling/variables' - -const useStyles = makeStyles({ - root: { - color: secondaryColor, - '&.Mui-checked': { - color: secondaryColor - } - }, - checked: {}, - checkBoxLabel: { - display: 'flex' - }, - wrapper: { - display: 'flex', - alignItems: 'center', - '& > svg': { - marginRight: 10 - } - }, - message: { - display: 'flex', - alignItems: 'center', - color: offColor, - margin: 0, - whiteSpace: 'break-spaces' - } -}) +import { fontSize2, fontSize3 } from 'src/styling/variables' const CheckboxInput = ({ name, onChange, value, settings, ...props }) => { const { enabled, label, disabledMessage, rightSideLabel } = settings - const classes = useStyles() return ( <> {enabled ? ( -
    +
    {!rightSideLabel && {label}} { {rightSideLabel && {label}}
    ) : ( -
    +
    - {disabledMessage} + + {disabledMessage} +
    )} diff --git a/new-lamassu-admin/src/components/inputs/base/CodeInput.jsx b/new-lamassu-admin/src/components/inputs/base/CodeInput.jsx index dd238952..c4439f9e 100644 --- a/new-lamassu-admin/src/components/inputs/base/CodeInput.jsx +++ b/new-lamassu-admin/src/components/inputs/base/CodeInput.jsx @@ -1,14 +1,8 @@ -import { makeStyles } from '@mui/styles' import classnames from 'classnames' import React from 'react' import OtpInput from 'react-otp-input' -import typographyStyles from 'src/components/typography/styles' - -import styles from './CodeInput.styles' - -const useStyles = makeStyles(styles) -const useTypographyStyles = makeStyles(typographyStyles) +import classes from './CodeInput.module.css' const CodeInput = ({ name, @@ -19,9 +13,6 @@ const CodeInput = ({ inputStyle, containerStyle }) => { - const classes = useStyles() - const typographyClasses = useTypographyStyles() - return ( } shouldAutoFocus - containerStyle={classnames(containerStyle, classes.container)} + containerStyle={classnames(containerStyle, 'justify-evenly')} inputStyle={classnames( inputStyle, classes.input, - typographyClasses.confirmationCode, - error && classes.error + 'font-museo font-black text-4xl', + error && 'border-tomato' )} inputType={'tel'} - renderInput={(props) => ( - - )} + renderInput={props => } /> ) } diff --git a/new-lamassu-admin/src/components/inputs/base/CodeInput.module.css b/new-lamassu-admin/src/components/inputs/base/CodeInput.module.css new file mode 100644 index 00000000..5d76df7b --- /dev/null +++ b/new-lamassu-admin/src/components/inputs/base/CodeInput.module.css @@ -0,0 +1,14 @@ +.input { + width: 3.5rem !important; + height: 5rem; + border: 2px solid; + border-color: var(--zircon); + border-radius: 4px; +} + +.input:focus { + border: 2px solid; + border-color: var(--zodiac); + border-radius: 4px; + outline: none; +} diff --git a/new-lamassu-admin/src/components/inputs/base/CodeInput.styles.js b/new-lamassu-admin/src/components/inputs/base/CodeInput.styles.js deleted file mode 100644 index dcea511c..00000000 --- a/new-lamassu-admin/src/components/inputs/base/CodeInput.styles.js +++ /dev/null @@ -1,27 +0,0 @@ -import { primaryColor, zircon, errorColor } from 'src/styling/variables' - -const styles = { - input: { - width: '3.5rem !important', - height: '5rem', - border: '2px solid', - borderColor: zircon, - borderRadius: '4px', - '&:focus': { - border: '2px solid', - borderColor: primaryColor, - borderRadius: '4px', - '&:focus': { - outline: 'none' - } - }, - }, - error: { - borderColor: errorColor - }, - container: { - justifyContent: 'space-evenly' - } -} - -export default styles diff --git a/new-lamassu-admin/src/components/inputs/base/RadioGroup.jsx b/new-lamassu-admin/src/components/inputs/base/RadioGroup.jsx index 11f1bfdd..97b52d17 100644 --- a/new-lamassu-admin/src/components/inputs/base/RadioGroup.jsx +++ b/new-lamassu-admin/src/components/inputs/base/RadioGroup.jsx @@ -1,31 +1,10 @@ import Radio from '@mui/material/Radio' import MRadioGroup from '@mui/material/RadioGroup' import FormControlLabel from '@mui/material/FormControlLabel' -import { makeStyles } from '@mui/styles' import classnames from 'classnames' import React from 'react' import { Label1 } from 'src/components/typography' -import { offColor, secondaryColor } from 'src/styling/variables' -const styles = { - label: { - height: 16, - lineHeight: '16px', - margin: [[0, 0, 4, 0]], - paddingLeft: 3 - }, - subtitle: { - marginTop: -8, - marginLeft: 32, - color: offColor - }, - radio: { - color: secondaryColor - } -} - -const useStyles = makeStyles(styles) - const RadioGroup = ({ name, label, @@ -36,10 +15,11 @@ const RadioGroup = ({ labelClassName, radioClassName }) => { - const classes = useStyles() return ( <> - {label && {label}} + {label && ( + {label} + )} } + control={ + + } label={option.display} className={classnames(labelClassName)} /> {option.subtitle && ( - {option.subtitle} + {option.subtitle} )}
    diff --git a/new-lamassu-admin/src/components/inputs/base/Select.jsx b/new-lamassu-admin/src/components/inputs/base/Select.jsx index c79839b3..098844a5 100644 --- a/new-lamassu-admin/src/components/inputs/base/Select.jsx +++ b/new-lamassu-admin/src/components/inputs/base/Select.jsx @@ -1,16 +1,12 @@ -import { makeStyles } from '@mui/styles' import classnames from 'classnames' import { useSelect } from 'downshift' import * as R from 'ramda' import React from 'react' import Arrowdown from 'src/styling/icons/action/arrow/regular.svg?react' -import styles from './Select.styles' - -const useStyles = makeStyles(styles) +import styles from './Select.module.css' function Select({ className, label, items, ...props }) { - const classes = useStyles() const { isOpen, @@ -28,18 +24,18 @@ function Select({ className, label, items, ...props }) { }) const selectClassNames = { - [classes.select]: true, - [classes.selectFiltered]: props.defaultAsFilter + [styles.select]: true, + [styles.selectFiltered]: props.defaultAsFilter ? true : !R.equals(selectedItem, props.default), - [classes.open]: isOpen + [styles.open]: isOpen } return (
      diff --git a/new-lamassu-admin/src/components/inputs/base/Select.module.css b/new-lamassu-admin/src/components/inputs/base/Select.module.css new file mode 100644 index 00000000..4356cde7 --- /dev/null +++ b/new-lamassu-admin/src/components/inputs/base/Select.module.css @@ -0,0 +1,100 @@ +.selectedItem { + width: 111px; + display: block; + white-space: nowrap; + overflow: hidden; +} + +.select { + width: 152px; + z-index: 1; +} + +.select label { + font-size: 13px; + font-family: var(--museo); + font-weight: 500; + color: var(--comet); + padding-left: 10px; +} + +.select button { + font-size: 14px; + font-family: var(--museo); + font-weight: 500; + position: relative; + border: 0; + background-color: var(--zircon); + width: 152px; + padding: 6px 0 6px 12px; + border-radius: 20px; + line-height: 1.14; + text-align: left; + color: var(--comet); + cursor: pointer; + outline: 0 none; +} + +.select ul { + max-height: 200px; + width: 152px; + overflow-y: auto; + position: absolute; + margin: 0; + border-top: 0; + padding: 0; + border-radius: 0 0 8px 8px; + background-color: var(--zircon); + outline: 0 none; +} + +.select ul li { + font-size: 14px; + font-family: var(--museo); + font-weight: 500; + list-style-type: none; + padding: 6px 12px; + cursor: pointer; +} + +.select ul li span { + width: 100%; + display: block; + overflow: hidden; + white-space: nowrap; +} + +.select ul li:hover { + background-color: var(--comet); + color: white; +} + +.select svg { + position: absolute; + top: 12px; + right: 14px; + fill: var(--comet); +} + +.selectFiltered button { + background-color: var(--comet); + color: white; +} + +.selectFiltered ul li { + background-color: var(--comet); + color: white; +} + +.selectFiltered ul li:hover { + background-color: var(--zircon); + color: var(--comet); +} + +.selectFiltered svg { + fill: white !important; +} + +.open button { + border-radius: 8px 8px 0 0; +} \ No newline at end of file diff --git a/new-lamassu-admin/src/components/inputs/base/Select.styles.js b/new-lamassu-admin/src/components/inputs/base/Select.styles.js deleted file mode 100644 index aebce882..00000000 --- a/new-lamassu-admin/src/components/inputs/base/Select.styles.js +++ /dev/null @@ -1,96 +0,0 @@ -import { subheaderColor, offColor, white } from '../../../styling/variables' -import typographyStyles from '../../typography/styles' - -const { p, label1 } = typographyStyles - -const WIDTH = 152 - -export default { - selectedItem: { - width: WIDTH - 41, - display: 'block', - whiteSpace: 'nowrap', - overflow: 'hidden' - }, - select: { - width: WIDTH, - zIndex: 1, - '& label': { - extend: label1, - color: offColor, - paddingLeft: 10 - }, - '& button': { - extend: p, - position: 'relative', - border: 0, - backgroundColor: subheaderColor, - width: WIDTH, - padding: [[6, 0, 6, 12]], - borderRadius: 20, - lineHeight: '1.14', - textAlign: 'left', - color: offColor, - cursor: 'pointer', - outline: '0 none' - }, - '& ul': { - maxHeight: '200px', - width: WIDTH, - overflowY: 'auto', - position: 'absolute', - margin: 0, - borderTop: 0, - padding: 0, - borderRadius: [[0, 0, 8, 8]], - backgroundColor: subheaderColor, - outline: '0 none', - '& li': { - extend: p, - listStyleType: 'none', - padding: [[6, 12]], - cursor: 'pointer', - '& span': { - width: '100%', - display: 'block', - overflow: 'hidden', - whiteSpace: 'nowrap' - } - }, - '& li:hover': { - backgroundColor: offColor, - color: white - } - }, - '& svg': { - position: 'absolute', - top: 12, - right: 14, - fill: offColor - } - }, - selectFiltered: { - '& button': { - backgroundColor: offColor, - color: white - }, - '& ul': { - '& li': { - backgroundColor: offColor, - color: white - }, - '& li:hover': { - backgroundColor: subheaderColor, - color: offColor - } - }, - '& svg': { - fill: [[white], '!important'] - } - }, - open: { - '& button': { - borderRadius: [[8, 8, 0, 0]] - } - } -} diff --git a/new-lamassu-admin/src/components/inputs/base/TextInput.jsx b/new-lamassu-admin/src/components/inputs/base/TextInput.jsx index 33ba68ac..ca8b1994 100644 --- a/new-lamassu-admin/src/components/inputs/base/TextInput.jsx +++ b/new-lamassu-admin/src/components/inputs/base/TextInput.jsx @@ -1,12 +1,9 @@ -import { makeStyles } from '@mui/styles' import TextField from '@mui/material/TextField' import classnames from 'classnames' import * as R from 'ramda' import React, { memo } from 'react' -import styles from './TextInput.styles' - -const useStyles = makeStyles(styles) +import styles from './TextInput.module.css' const TextInput = memo( ({ @@ -19,6 +16,7 @@ const TextInput = memo( suffix, textAlign, width, + inputClasses, // lg or sm size, bold, @@ -26,11 +24,23 @@ const TextInput = memo( InputProps, ...props }) => { - const classes = useStyles({ textAlign, width, size }) const isTextFilled = !error && !R.isNil(value) && !R.isEmpty(value) const filled = isPasswordFilled || isTextFilled - const inputClasses = { - [classes.bold]: bold + + const style = { + width: width, + textAlign: textAlign + } + + const sizeClass = + size === 'sm' + ? styles.sizeSm + : size === 'lg' + ? styles.sizeLg + : styles.size + + const divClass = { + [styles.bold]: bold } return ( @@ -41,17 +51,22 @@ const TextInput = memo( onBlur={onBlur} error={error} value={value} - classes={{ root: classes.root }} className={className} - InputProps={{ - className: classnames(inputClasses), - classes: { - root: classes.size, - underline: filled ? classes.underline : null + style={style} + {...props} + slotProps={{ + input: { + className: classnames(divClass), + classes: { + root: sizeClass, + underline: filled ? styles.underline : null, + input: inputClasses + }, + ...InputProps }, - ...InputProps - }} - {...props} /> + + htmlInput: { style: { textAlign } } + }} /> ); } ) diff --git a/new-lamassu-admin/src/components/inputs/base/TextInput.module.css b/new-lamassu-admin/src/components/inputs/base/TextInput.module.css new file mode 100644 index 00000000..600fad86 --- /dev/null +++ b/new-lamassu-admin/src/components/inputs/base/TextInput.module.css @@ -0,0 +1,24 @@ +.size { + font-size: 16px; +} + +.sizeSm { + font-size: 14px; +} + +.sizeLg { + font-size: 24px; + font-weight: 700; +} + +.bold { + font-weight: 700; +} + +.underline:before { + border-bottom-color: var(--spring); +} + +.underline:hover:not(.Mui-disabled)::before { + border-bottom-color: var(--spring); +} \ No newline at end of file diff --git a/new-lamassu-admin/src/components/inputs/base/TextInput.styles.js b/new-lamassu-admin/src/components/inputs/base/TextInput.styles.js deleted file mode 100644 index 1c8db3e5..00000000 --- a/new-lamassu-admin/src/components/inputs/base/TextInput.styles.js +++ /dev/null @@ -1,24 +0,0 @@ -import { bySize, bold } from 'src/styling/helpers' -import { secondaryColor } from 'src/styling/variables' - -export default { - size: ({ size }) => ({ - marginTop: size === 'lg' ? 0 : 2, - ...bySize(size) - }), - bold, - root: ({ width, textAlign }) => ({ - width, - '& input': { - textAlign - } - }), - underline: { - '&:before': { - borderBottomColor: secondaryColor - }, - '&:hover:not(.Mui-disabled)::before': { - borderBottomColor: secondaryColor - } - } -} diff --git a/new-lamassu-admin/src/components/inputs/base/ToggleButtonGroup.jsx b/new-lamassu-admin/src/components/inputs/base/ToggleButtonGroup.jsx index e236e42f..6d3ec80d 100644 --- a/new-lamassu-admin/src/components/inputs/base/ToggleButtonGroup.jsx +++ b/new-lamassu-admin/src/components/inputs/base/ToggleButtonGroup.jsx @@ -1,38 +1,8 @@ -import { makeStyles } from '@mui/styles' import MUIToggleButtonGroup from '@mui/material/ToggleButtonGroup' import ToggleButton from '@mui/material/ToggleButton' import React from 'react' import { H4, P } from 'src/components/typography' -import { backgroundColor, comet } from 'src/styling/variables' -const styles = { - noTextTransform: { - textTransform: 'none' - }, - flex: { - display: 'flex', - alignItems: 'center', - justifyContent: 'start', - width: '90%', - overflow: 'hidden', - maxHeight: 80 - }, - buttonTextContent: { - marginLeft: 32, - textTransform: 'none', - textAlign: 'left' - }, - button: { - backgroundColor: backgroundColor, - marginBottom: 16 - }, - paragraph: { - color: comet, - marginTop: -10 - } -} - -const useStyles = makeStyles(styles) const ToggleButtonGroup = ({ name, orientation = 'vertical', @@ -42,7 +12,6 @@ const ToggleButtonGroup = ({ size = 'small', ...props }) => { - const classes = useStyles() return ( { return ( -
      +
      -
      +

      {option.title}

      -

      {option.description}

      +

      {option.description}

      diff --git a/new-lamassu-admin/src/components/inputs/cashbox/Cashbox.jsx b/new-lamassu-admin/src/components/inputs/cashbox/Cashbox.jsx index 81d90e83..72a20912 100644 --- a/new-lamassu-admin/src/components/inputs/cashbox/Cashbox.jsx +++ b/new-lamassu-admin/src/components/inputs/cashbox/Cashbox.jsx @@ -1,54 +1,59 @@ -import { makeStyles } from '@mui/styles' +import Chip from '@mui/material/Chip' import classnames from 'classnames' import React from 'react' -import Chip from 'src/components/Chip' import { Info2, Label1, Label2 } from 'src/components/typography' import { numberToFiatAmount } from 'src/utils/number' -import { cashboxStyles, gridStyles } from './Cashbox.styles' +import classes from './Cashbox.module.css' +import { primaryColor as zodiac, tomato } from '../../../styling/variables.js' -const cashboxClasses = makeStyles(cashboxStyles) -const gridClasses = makeStyles(gridStyles) +const colors = { + cashOut: { + empty: tomato, + full: zodiac + }, + cashIn: { + empty: zodiac, + full: tomato + } +} const Cashbox = ({ percent = 0, cashOut = false, - width, - height, + width = 80, + height = 118, className, emptyPartClassName, labelClassName, - applyColorVariant, - applyFiatBalanceAlertsStyling, omitInnerPercentage, isLow }) => { - const classes = cashboxClasses({ - percent, - cashOut, - width, - height, - applyColorVariant, - isLow - }) const ltHalf = percent <= 51 - - const showCashBox = { - [classes.fiatBalanceAlertCashbox]: applyFiatBalanceAlertsStyling, - [classes.cashbox]: !applyFiatBalanceAlertsStyling - } + const color = + colors[cashOut ? 'cashOut' : 'cashIn'][!isLow ? 'full' : 'empty'] return ( -
      -
      +
      +
      {!omitInnerPercentage && ltHalf && ( - {percent.toFixed(0)}% + + {percent.toFixed(0)}% + )}
      -
      +
      {!omitInnerPercentage && !ltHalf && ( - {percent.toFixed(0)}% + + {percent.toFixed(0)}% + )}
      @@ -71,7 +76,6 @@ const CashIn = ({ }) => { const percent = (100 * notes) / capacity const isLow = percent < threshold - const classes = gridClasses() return ( <>
      @@ -117,7 +121,6 @@ const CashOut = ({ }) => { const percent = (100 * notes) / capacity const isLow = percent < threshold - const classes = gridClasses() return ( <>
      @@ -136,10 +139,7 @@ const CashOut = ({
      {notes} - +
      @@ -163,7 +163,6 @@ const CashOutLite = ({ }) => { const percent = (100 * notes) / capacity const isLow = percent < threshold - const classes = gridClasses() return (
      { - return colors[cashOut ? 'cashOut' : 'cashIn'][ - applyColorVariant || !isLow ? 'full' : 'empty' - ] -} - -const cashboxStyles = { - cashbox: { - borderColor: colorPicker, - backgroundColor: colorPicker, - height: ({ height }) => height ?? 118, - width: ({ width }) => width ?? 80, - border: '2px solid', - textAlign: 'end', - display: 'inline-block' - }, - fiatBalanceAlertCashbox: { - borderColor: colorPicker, - backgroundColor: colorPicker, - height: 118, - width: 80, - border: '4px solid' - }, - emptyPart: { - backgroundColor: 'white', - height: ({ percent }) => `${100 - percent}%`, - position: 'relative', - '& > p': { - color: colorPicker, - display: 'inline-block', - position: 'absolute', - margin: 0, - bottom: 0, - right: 0 - } - }, - fullPart: { - backgroundColor: colorPicker, - '& > p': { - color: 'white', - display: 'inline' - } - } -} - -const gridStyles = { - row: { - display: 'flex', - alignItems: 'center' - }, - col: { - display: 'flex', - flexDirection: 'column', - alignItems: 'center' - }, - innerRow: { - display: 'flex', - justifyContent: 'flex-start' - }, - col2: { - marginLeft: 14 - }, - noMarginText: { - marginTop: 0, - marginBottom: 0 - }, - link: { - marginTop: spacer - }, - chip: { - margin: [[0, 0, 0, 7]] - } -} - -export { cashboxStyles, gridStyles } diff --git a/new-lamassu-admin/src/components/inputs/formik/CashCassetteInput.jsx b/new-lamassu-admin/src/components/inputs/formik/CashCassetteInput.jsx index 14f4141a..11744265 100644 --- a/new-lamassu-admin/src/components/inputs/formik/CashCassetteInput.jsx +++ b/new-lamassu-admin/src/components/inputs/formik/CashCassetteInput.jsx @@ -1,30 +1,19 @@ -import { makeStyles } from '@mui/styles' import classNames from 'classnames' import React, { memo, useState } from 'react' import { CashOut } from 'src/components/inputs/cashbox/Cashbox' import { NumberInput } from '../base' -const useStyles = makeStyles({ - flex: { - display: 'flex' - }, - cashCassette: { - height: 36, - marginRight: 14 - } -}) const CashCassetteInput = memo( ({ decimalPlaces, width, threshold, inputClassName, ...props }) => { - const classes = useStyles() const { name, onChange, onBlur, value } = props.field const { touched, errors } = props.form const [notes, setNotes] = useState(value) const error = !!(touched[name] && errors[name]) return ( -
      +
      { +const Subheader = ({ item, user }) => { const [prev, setPrev] = useState(null) return ( -
      -
      +
      +