diff --git a/amour-next-ts/package-lock.json b/amour-next-ts/package-lock.json index acc5eb9..55e65f1 100644 --- a/amour-next-ts/package-lock.json +++ b/amour-next-ts/package-lock.json @@ -62,7 +62,7 @@ }, "devDependencies": { "@eslint/eslintrc": "^3", - "@tailwindcss/postcss": "^4", + "@tailwindcss/postcss": "^4.1.12", "@types/aos": "^3.0.7", "@types/node": "^20", "@types/react": "^19", @@ -87,18 +87,18 @@ } }, "node_modules/@babel/runtime": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.3.tgz", - "integrity": "sha512-9uIQ10o0WGdpP6GDhXcdOJPJuDgFtIDtN/9+ArJQ2NAfAmiuhTQdzkaTGR33v43GYS2UrSA0eX2pPPHoFVvpxA==", + "version": "7.28.2", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.2.tgz", + "integrity": "sha512-KHp2IflsnGywDjBWDkR9iEqiWSpc8GIi0lgTT3mOElT0PP1tG26P4tmFI2YvAdzgq9RGyoHZQEIEdZy6Ec5xCA==", "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@date-fns/tz": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/@date-fns/tz/-/tz-1.4.1.tgz", - "integrity": "sha512-P5LUNhtbj6YfI3iJjw5EL9eUAG6OitD0W3fWQcpQjDRc/QIsL0tRNuO1PcDvPccWL1fSTXXdE1ds+l95DV/OFA==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@date-fns/tz/-/tz-1.3.1.tgz", + "integrity": "sha512-LnBOyuj+piItX/D5BWBSckBsuZyOt7Jg2obGNiObq7qjl1A2/8F+i4RS8/MmkSdnw6hOe6afrJLCWrUWZw5Mlw==", "license": "MIT" }, "node_modules/@dimforge/rapier3d-compat": { @@ -207,9 +207,9 @@ } }, "node_modules/@eslint/config-helpers": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.3.1.tgz", - "integrity": "sha512-xR93k9WhrDYpXHORXpxVL5oHj3Era7wo6k/Wd8/IsQNnZUTzkGS29lyn3nAT05v6ltUuTFVCCYDEGfy2Or/sPA==", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.3.0.tgz", + "integrity": "sha512-ViuymvFmcJi04qdZeDc2whTHryouGcDlaxPqarTD0ZE10ISpxGUVZGZDx4w01upyIynL3iu6IXH2bS1NhclQMw==", "dev": true, "license": "Apache-2.0", "engines": { @@ -217,9 +217,9 @@ } }, "node_modules/@eslint/core": { - "version": "0.15.2", - "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.15.2.tgz", - "integrity": "sha512-78Md3/Rrxh83gCxoUc0EiciuOHsIITzLy53m3d9UyiW8y9Dj2D29FeETqyKA+BRK76tnTp6RXWb3pCay8Oyomg==", + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.15.1.tgz", + "integrity": "sha512-bkOp+iumZCCbt1K1CmWf0R9pM5yKpDv+ZXtvSyQpudrI9kuFLp+bM2WOPXImuD/ceQuaa8f5pj93Y7zyECIGNA==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -254,9 +254,9 @@ } }, "node_modules/@eslint/js": { - "version": "9.34.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.34.0.tgz", - "integrity": "sha512-EoyvqQnBNsV1CWaEJ559rxXL4c8V92gxirbawSmVUOWXlsRxxQXl6LmCpdUblgxgSkDIqKnhzba2SjRTI/A5Rw==", + "version": "9.32.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.32.0.tgz", + "integrity": "sha512-BBpRFZK3eX6uMLKz8WxFOBIFFcGFJ/g8XuwjTHCqHROSIsopI+ddn/d5Cfh36+7+e5edVS8dbSHnBNhrLEX0zg==", "dev": true, "license": "MIT", "engines": { @@ -277,13 +277,13 @@ } }, "node_modules/@eslint/plugin-kit": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.3.5.tgz", - "integrity": "sha512-Z5kJ+wU3oA7MMIqVR9tyZRtjYPr4OC004Q4Rw7pgOKUOKkJfZ3O24nz3WYfGRpMDNmcOi3TwQOmgm7B7Tpii0w==", + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.3.4.tgz", + "integrity": "sha512-Ul5l+lHEcw3L5+k8POx6r74mxEYKG5kOb6Xpy2gCRW6zweT6TEhAf8vhxGgjhqrd/VO/Dirhsb+1hNpD1ue9hw==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@eslint/core": "^0.15.2", + "@eslint/core": "^0.15.1", "levn": "^0.4.1" }, "engines": { @@ -855,9 +855,9 @@ } }, "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.13", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", - "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "version": "0.3.12", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.12.tgz", + "integrity": "sha512-OuLGC46TjB5BbN1dH8JULVVZY4WTdkF7tV9Ys6wLL1rubZnCMstOhNHueU5bLCrnRuDhKPDM4g6sw4Bel5Gzqg==", "license": "MIT", "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.0", @@ -885,9 +885,9 @@ } }, "node_modules/@jridgewell/source-map": { - "version": "0.3.11", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.11.tgz", - "integrity": "sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==", + "version": "0.3.10", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.10.tgz", + "integrity": "sha512-0pPkgz9dY+bijgistcTTJ5mR+ocqRXLuhXHYdzoMmmoJ2C9S46RCm2GMUbatPEUK9Yjy26IrAy8D/M00lLkv+Q==", "license": "MIT", "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", @@ -901,9 +901,9 @@ "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.30", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.30.tgz", - "integrity": "sha512-GQ7Nw5G2lTu/BtHTKfXhKHok2WGetd4XYcVKGx00SjAk8GMwgJM3zr6zORiPGuOE+/vkc90KtTosSSvaCjKb2Q==", + "version": "0.3.29", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.29.tgz", + "integrity": "sha512-uw6guiW/gcAGPDhLmd77/6lW8QLeiV5RUTsAX46Db6oLhGaVj4lhnPwb184s1bkc8kdVg/+h988dro8GRDpmYQ==", "license": "MIT", "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", @@ -1147,19 +1147,19 @@ "license": "MIT" }, "node_modules/@radix-ui/primitive": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.3.tgz", - "integrity": "sha512-JTF99U/6XIjCBo0wqkU5sK10glYe27MRRsfwoiq5zzOEZLHU3A3KCMa5X/azekYRCJ0HlwI0crAXS/5dEHTzDg==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.2.tgz", + "integrity": "sha512-XnbHrrprsNqZKQhStrSwgRUQzoCI1glLzdw79xiZPoofhGICeZRSQ3dIxAKH1gb3OHfNf4d6f+vAv3kil2eggA==", "license": "MIT" }, "node_modules/@radix-ui/react-accordion": { - "version": "1.2.12", - "resolved": "https://registry.npmjs.org/@radix-ui/react-accordion/-/react-accordion-1.2.12.tgz", - "integrity": "sha512-T4nygeh9YE9dLRPhAHSeOZi7HBXo+0kYIPJXayZfvWOWA0+n3dESrZbjfDPUABkUNym6Hd+f2IR113To8D2GPA==", + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/@radix-ui/react-accordion/-/react-accordion-1.2.11.tgz", + "integrity": "sha512-l3W5D54emV2ues7jjeG1xcyN7S3jnK3zE2zHqgn0CmMsy9lNJwmgcrmaxS+7ipw15FAivzKNzH3d5EcGoFKw0A==", "license": "MIT", "dependencies": { - "@radix-ui/primitive": "1.1.3", - "@radix-ui/react-collapsible": "1.1.12", + "@radix-ui/primitive": "1.1.2", + "@radix-ui/react-collapsible": "1.1.11", "@radix-ui/react-collection": "1.1.7", "@radix-ui/react-compose-refs": "1.1.2", "@radix-ui/react-context": "1.1.2", @@ -1183,16 +1183,46 @@ } } }, + "node_modules/@radix-ui/react-accordion/node_modules/@radix-ui/react-collapsible": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/@radix-ui/react-collapsible/-/react-collapsible-1.1.11.tgz", + "integrity": "sha512-2qrRsVGSCYasSz1RFOorXwl0H7g7J1frQtgpQgYrt+MOidtPAINHn9CPovQXb83r8ahapdx3Tu0fa/pdFFSdPg==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.2", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-presence": "1.1.4", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-controllable-state": "1.2.2", + "@radix-ui/react-use-layout-effect": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, "node_modules/@radix-ui/react-alert-dialog": { - "version": "1.1.15", - "resolved": "https://registry.npmjs.org/@radix-ui/react-alert-dialog/-/react-alert-dialog-1.1.15.tgz", - "integrity": "sha512-oTVLkEw5GpdRe29BqJ0LSDFWI3qu0vR1M0mUkOQWDIUnY/QIkLpgDMWuKxP94c2NAC2LGcgVhG1ImF3jkZ5wXw==", + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/@radix-ui/react-alert-dialog/-/react-alert-dialog-1.1.14.tgz", + "integrity": "sha512-IOZfZ3nPvN6lXpJTBCunFQPRSvK8MDgSc1FB85xnIpUKOw9en0dJj8JmCAxV7BiZdtYlUpmrQjoTFkVYtdoWzQ==", "license": "MIT", "dependencies": { - "@radix-ui/primitive": "1.1.3", + "@radix-ui/primitive": "1.1.2", "@radix-ui/react-compose-refs": "1.1.2", "@radix-ui/react-context": "1.1.2", - "@radix-ui/react-dialog": "1.1.15", + "@radix-ui/react-dialog": "1.1.14", "@radix-ui/react-primitive": "2.1.3", "@radix-ui/react-slot": "1.2.3" }, @@ -1211,6 +1241,69 @@ } } }, + "node_modules/@radix-ui/react-alert-dialog/node_modules/@radix-ui/react-dialog": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-1.1.14.tgz", + "integrity": "sha512-+CpweKjqpzTmwRwcYECQcNYbI8V9VSQt0SNFKeEBLgfucbsLssU6Ppq7wUdNXEGb573bMjFhVjKVll8rmV6zMw==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.2", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-dismissable-layer": "1.1.10", + "@radix-ui/react-focus-guards": "1.1.2", + "@radix-ui/react-focus-scope": "1.1.7", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-portal": "1.1.9", + "@radix-ui/react-presence": "1.1.4", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-slot": "1.2.3", + "@radix-ui/react-use-controllable-state": "1.2.2", + "aria-hidden": "^1.2.4", + "react-remove-scroll": "^2.6.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-alert-dialog/node_modules/@radix-ui/react-dismissable-layer": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.10.tgz", + "integrity": "sha512-IM1zzRV4W3HtVgftdQiiOmA0AdJlCtMLe00FXaHwgt3rAnNsIyDqshvkIW3hj/iu5hu8ERP7KIYki6NkqDxAwQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.2", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-callback-ref": "1.1.1", + "@radix-ui/react-use-escape-keydown": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, "node_modules/@radix-ui/react-arrow": { "version": "1.1.7", "resolved": "https://registry.npmjs.org/@radix-ui/react-arrow/-/react-arrow-1.1.7.tgz", @@ -1285,15 +1378,15 @@ } }, "node_modules/@radix-ui/react-checkbox": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-checkbox/-/react-checkbox-1.3.3.tgz", - "integrity": "sha512-wBbpv+NQftHDdG86Qc0pIyXk5IR3tM8Vd0nWLKDcX8nNn4nXFOFwsKuqw2okA/1D/mpaAkmuyndrPJTYDNZtFw==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-checkbox/-/react-checkbox-1.3.2.tgz", + "integrity": "sha512-yd+dI56KZqawxKZrJ31eENUwqc1QSqg4OZ15rybGjF2ZNwMO+wCyHzAVLRp9qoYJf7kYy0YpZ2b0JCzJ42HZpA==", "license": "MIT", "dependencies": { - "@radix-ui/primitive": "1.1.3", + "@radix-ui/primitive": "1.1.2", "@radix-ui/react-compose-refs": "1.1.2", "@radix-ui/react-context": "1.1.2", - "@radix-ui/react-presence": "1.1.5", + "@radix-ui/react-presence": "1.1.4", "@radix-ui/react-primitive": "2.1.3", "@radix-ui/react-use-controllable-state": "1.2.2", "@radix-ui/react-use-previous": "1.1.1", @@ -1344,6 +1437,36 @@ } } }, + "node_modules/@radix-ui/react-collapsible/node_modules/@radix-ui/primitive": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.3.tgz", + "integrity": "sha512-JTF99U/6XIjCBo0wqkU5sK10glYe27MRRsfwoiq5zzOEZLHU3A3KCMa5X/azekYRCJ0HlwI0crAXS/5dEHTzDg==", + "license": "MIT" + }, + "node_modules/@radix-ui/react-collapsible/node_modules/@radix-ui/react-presence": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.5.tgz", + "integrity": "sha512-/jfEwNDdQVBCNvjkGit4h6pMOzq8bHkopq458dPt2lMjx+eBQUohZNG9A7DtO/O5ukSbxuaNGXMjHicgwy6rQQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-use-layout-effect": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, "node_modules/@radix-ui/react-collection": { "version": "1.1.7", "resolved": "https://registry.npmjs.org/@radix-ui/react-collection/-/react-collection-1.1.7.tgz", @@ -1401,14 +1524,14 @@ } }, "node_modules/@radix-ui/react-context-menu": { - "version": "2.2.16", - "resolved": "https://registry.npmjs.org/@radix-ui/react-context-menu/-/react-context-menu-2.2.16.tgz", - "integrity": "sha512-O8morBEW+HsVG28gYDZPTrT9UUovQUlJue5YO836tiTJhuIWBm/zQHc7j388sHWtdH/xUZurK9olD2+pcqx5ww==", + "version": "2.2.15", + "resolved": "https://registry.npmjs.org/@radix-ui/react-context-menu/-/react-context-menu-2.2.15.tgz", + "integrity": "sha512-UsQUMjcYTsBjTSXw0P3GO0werEQvUY2plgRQuKoCTtkNr45q1DiL51j4m7gxhABzZ0BadoXNsIbg7F3KwiUBbw==", "license": "MIT", "dependencies": { - "@radix-ui/primitive": "1.1.3", + "@radix-ui/primitive": "1.1.2", "@radix-ui/react-context": "1.1.2", - "@radix-ui/react-menu": "2.1.16", + "@radix-ui/react-menu": "2.1.15", "@radix-ui/react-primitive": "2.1.3", "@radix-ui/react-use-callback-ref": "1.1.1", "@radix-ui/react-use-controllable-state": "1.2.2" @@ -1464,6 +1587,51 @@ } } }, + "node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/primitive": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.3.tgz", + "integrity": "sha512-JTF99U/6XIjCBo0wqkU5sK10glYe27MRRsfwoiq5zzOEZLHU3A3KCMa5X/azekYRCJ0HlwI0crAXS/5dEHTzDg==", + "license": "MIT" + }, + "node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-focus-guards": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-1.1.3.tgz", + "integrity": "sha512-0rFg/Rj2Q62NCm62jZw0QX7a3sz6QCQU0LpZdNrJX8byRGaGVTqbrW9jAoIAHyMQqsNpeZ81YgSizOt5WXq0Pw==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-presence": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.5.tgz", + "integrity": "sha512-/jfEwNDdQVBCNvjkGit4h6pMOzq8bHkopq458dPt2lMjx+eBQUohZNG9A7DtO/O5ukSbxuaNGXMjHicgwy6rQQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-use-layout-effect": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, "node_modules/@radix-ui/react-direction": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/@radix-ui/react-direction/-/react-direction-1.1.1.tgz", @@ -1506,17 +1674,23 @@ } } }, + "node_modules/@radix-ui/react-dismissable-layer/node_modules/@radix-ui/primitive": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.3.tgz", + "integrity": "sha512-JTF99U/6XIjCBo0wqkU5sK10glYe27MRRsfwoiq5zzOEZLHU3A3KCMa5X/azekYRCJ0HlwI0crAXS/5dEHTzDg==", + "license": "MIT" + }, "node_modules/@radix-ui/react-dropdown-menu": { - "version": "2.1.16", - "resolved": "https://registry.npmjs.org/@radix-ui/react-dropdown-menu/-/react-dropdown-menu-2.1.16.tgz", - "integrity": "sha512-1PLGQEynI/3OX/ftV54COn+3Sud/Mn8vALg2rWnBLnRaGtJDduNW/22XjlGgPdpcIbiQxjKtb7BkcjP00nqfJw==", + "version": "2.1.15", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dropdown-menu/-/react-dropdown-menu-2.1.15.tgz", + "integrity": "sha512-mIBnOjgwo9AH3FyKaSWoSu/dYj6VdhJ7frEPiGTeXCdUFHjl9h3mFh2wwhEtINOmYXWhdpf1rY2minFsmaNgVQ==", "license": "MIT", "dependencies": { - "@radix-ui/primitive": "1.1.3", + "@radix-ui/primitive": "1.1.2", "@radix-ui/react-compose-refs": "1.1.2", "@radix-ui/react-context": "1.1.2", "@radix-ui/react-id": "1.1.1", - "@radix-ui/react-menu": "2.1.16", + "@radix-ui/react-menu": "2.1.15", "@radix-ui/react-primitive": "2.1.3", "@radix-ui/react-use-controllable-state": "1.2.2" }, @@ -1536,9 +1710,9 @@ } }, "node_modules/@radix-ui/react-focus-guards": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-1.1.3.tgz", - "integrity": "sha512-0rFg/Rj2Q62NCm62jZw0QX7a3sz6QCQU0LpZdNrJX8byRGaGVTqbrW9jAoIAHyMQqsNpeZ81YgSizOt5WXq0Pw==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-1.1.2.tgz", + "integrity": "sha512-fyjAACV62oPV925xFCrH8DR5xWhg9KYtJT4s3u54jxp+L/hbpTY2kIeEFFbFe+a/HCE94zGQMZLIpVTPVZDhaA==", "license": "MIT", "peerDependencies": { "@types/react": "*", @@ -1576,18 +1750,18 @@ } }, "node_modules/@radix-ui/react-hover-card": { - "version": "1.1.15", - "resolved": "https://registry.npmjs.org/@radix-ui/react-hover-card/-/react-hover-card-1.1.15.tgz", - "integrity": "sha512-qgTkjNT1CfKMoP0rcasmlH2r1DAiYicWsDsufxl940sT2wHNEWWv6FMWIQXWhVdmC1d/HYfbhQx60KYyAtKxjg==", + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/@radix-ui/react-hover-card/-/react-hover-card-1.1.14.tgz", + "integrity": "sha512-CPYZ24Mhirm+g6D8jArmLzjYu4Eyg3TTUHswR26QgzXBHBe64BO/RHOJKzmF/Dxb4y4f9PKyJdwm/O/AhNkb+Q==", "license": "MIT", "dependencies": { - "@radix-ui/primitive": "1.1.3", + "@radix-ui/primitive": "1.1.2", "@radix-ui/react-compose-refs": "1.1.2", "@radix-ui/react-context": "1.1.2", - "@radix-ui/react-dismissable-layer": "1.1.11", - "@radix-ui/react-popper": "1.2.8", + "@radix-ui/react-dismissable-layer": "1.1.10", + "@radix-ui/react-popper": "1.2.7", "@radix-ui/react-portal": "1.1.9", - "@radix-ui/react-presence": "1.1.5", + "@radix-ui/react-presence": "1.1.4", "@radix-ui/react-primitive": "2.1.3", "@radix-ui/react-use-controllable-state": "1.2.2" }, @@ -1606,6 +1780,33 @@ } } }, + "node_modules/@radix-ui/react-hover-card/node_modules/@radix-ui/react-dismissable-layer": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.10.tgz", + "integrity": "sha512-IM1zzRV4W3HtVgftdQiiOmA0AdJlCtMLe00FXaHwgt3rAnNsIyDqshvkIW3hj/iu5hu8ERP7KIYki6NkqDxAwQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.2", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-callback-ref": "1.1.1", + "@radix-ui/react-use-escape-keydown": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, "node_modules/@radix-ui/react-id": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.1.1.tgz", @@ -1648,25 +1849,25 @@ } }, "node_modules/@radix-ui/react-menu": { - "version": "2.1.16", - "resolved": "https://registry.npmjs.org/@radix-ui/react-menu/-/react-menu-2.1.16.tgz", - "integrity": "sha512-72F2T+PLlphrqLcAotYPp0uJMr5SjP5SL01wfEspJbru5Zs5vQaSHb4VB3ZMJPimgHHCHG7gMOeOB9H3Hdmtxg==", + "version": "2.1.15", + "resolved": "https://registry.npmjs.org/@radix-ui/react-menu/-/react-menu-2.1.15.tgz", + "integrity": "sha512-tVlmA3Vb9n8SZSd+YSbuFR66l87Wiy4du+YE+0hzKQEANA+7cWKH1WgqcEX4pXqxUFQKrWQGHdvEfw00TjFiew==", "license": "MIT", "dependencies": { - "@radix-ui/primitive": "1.1.3", + "@radix-ui/primitive": "1.1.2", "@radix-ui/react-collection": "1.1.7", "@radix-ui/react-compose-refs": "1.1.2", "@radix-ui/react-context": "1.1.2", "@radix-ui/react-direction": "1.1.1", - "@radix-ui/react-dismissable-layer": "1.1.11", - "@radix-ui/react-focus-guards": "1.1.3", + "@radix-ui/react-dismissable-layer": "1.1.10", + "@radix-ui/react-focus-guards": "1.1.2", "@radix-ui/react-focus-scope": "1.1.7", "@radix-ui/react-id": "1.1.1", - "@radix-ui/react-popper": "1.2.8", + "@radix-ui/react-popper": "1.2.7", "@radix-ui/react-portal": "1.1.9", - "@radix-ui/react-presence": "1.1.5", + "@radix-ui/react-presence": "1.1.4", "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-roving-focus": "1.1.11", + "@radix-ui/react-roving-focus": "1.1.10", "@radix-ui/react-slot": "1.2.3", "@radix-ui/react-use-callback-ref": "1.1.1", "aria-hidden": "^1.2.4", @@ -1687,21 +1888,48 @@ } } }, + "node_modules/@radix-ui/react-menu/node_modules/@radix-ui/react-dismissable-layer": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.10.tgz", + "integrity": "sha512-IM1zzRV4W3HtVgftdQiiOmA0AdJlCtMLe00FXaHwgt3rAnNsIyDqshvkIW3hj/iu5hu8ERP7KIYki6NkqDxAwQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.2", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-callback-ref": "1.1.1", + "@radix-ui/react-use-escape-keydown": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, "node_modules/@radix-ui/react-menubar": { - "version": "1.1.16", - "resolved": "https://registry.npmjs.org/@radix-ui/react-menubar/-/react-menubar-1.1.16.tgz", - "integrity": "sha512-EB1FktTz5xRRi2Er974AUQZWg2yVBb1yjip38/lgwtCVRd3a+maUoGHN/xs9Yv8SY8QwbSEb+YrxGadVWbEutA==", + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/@radix-ui/react-menubar/-/react-menubar-1.1.15.tgz", + "integrity": "sha512-Z71C7LGD+YDYo3TV81paUs8f3Zbmkvg6VLRQpKYfzioOE6n7fOhA3ApK/V/2Odolxjoc4ENk8AYCjohCNayd5A==", "license": "MIT", "dependencies": { - "@radix-ui/primitive": "1.1.3", + "@radix-ui/primitive": "1.1.2", "@radix-ui/react-collection": "1.1.7", "@radix-ui/react-compose-refs": "1.1.2", "@radix-ui/react-context": "1.1.2", "@radix-ui/react-direction": "1.1.1", "@radix-ui/react-id": "1.1.1", - "@radix-ui/react-menu": "2.1.16", + "@radix-ui/react-menu": "2.1.15", "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-roving-focus": "1.1.11", + "@radix-ui/react-roving-focus": "1.1.10", "@radix-ui/react-use-controllable-state": "1.2.2" }, "peerDependencies": { @@ -1720,19 +1948,19 @@ } }, "node_modules/@radix-ui/react-navigation-menu": { - "version": "1.2.14", - "resolved": "https://registry.npmjs.org/@radix-ui/react-navigation-menu/-/react-navigation-menu-1.2.14.tgz", - "integrity": "sha512-YB9mTFQvCOAQMHU+C/jVl96WmuWeltyUEpRJJky51huhds5W2FQr1J8D/16sQlf0ozxkPK8uF3niQMdUwZPv5w==", + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/@radix-ui/react-navigation-menu/-/react-navigation-menu-1.2.13.tgz", + "integrity": "sha512-WG8wWfDiJlSF5hELjwfjSGOXcBR/ZMhBFCGYe8vERpC39CQYZeq1PQ2kaYHdye3V95d06H89KGMsVCIE4LWo3g==", "license": "MIT", "dependencies": { - "@radix-ui/primitive": "1.1.3", + "@radix-ui/primitive": "1.1.2", "@radix-ui/react-collection": "1.1.7", "@radix-ui/react-compose-refs": "1.1.2", "@radix-ui/react-context": "1.1.2", "@radix-ui/react-direction": "1.1.1", - "@radix-ui/react-dismissable-layer": "1.1.11", + "@radix-ui/react-dismissable-layer": "1.1.10", "@radix-ui/react-id": "1.1.1", - "@radix-ui/react-presence": "1.1.5", + "@radix-ui/react-presence": "1.1.4", "@radix-ui/react-primitive": "2.1.3", "@radix-ui/react-use-callback-ref": "1.1.1", "@radix-ui/react-use-controllable-state": "1.2.2", @@ -1755,22 +1983,49 @@ } } }, + "node_modules/@radix-ui/react-navigation-menu/node_modules/@radix-ui/react-dismissable-layer": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.10.tgz", + "integrity": "sha512-IM1zzRV4W3HtVgftdQiiOmA0AdJlCtMLe00FXaHwgt3rAnNsIyDqshvkIW3hj/iu5hu8ERP7KIYki6NkqDxAwQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.2", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-callback-ref": "1.1.1", + "@radix-ui/react-use-escape-keydown": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, "node_modules/@radix-ui/react-popover": { - "version": "1.1.15", - "resolved": "https://registry.npmjs.org/@radix-ui/react-popover/-/react-popover-1.1.15.tgz", - "integrity": "sha512-kr0X2+6Yy/vJzLYJUPCZEc8SfQcf+1COFoAqauJm74umQhta9M7lNJHP7QQS3vkvcGLQUbWpMzwrXYwrYztHKA==", + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/@radix-ui/react-popover/-/react-popover-1.1.14.tgz", + "integrity": "sha512-ODz16+1iIbGUfFEfKx2HTPKizg2MN39uIOV8MXeHnmdd3i/N9Wt7vU46wbHsqA0xoaQyXVcs0KIlBdOA2Y95bw==", "license": "MIT", "dependencies": { - "@radix-ui/primitive": "1.1.3", + "@radix-ui/primitive": "1.1.2", "@radix-ui/react-compose-refs": "1.1.2", "@radix-ui/react-context": "1.1.2", - "@radix-ui/react-dismissable-layer": "1.1.11", - "@radix-ui/react-focus-guards": "1.1.3", + "@radix-ui/react-dismissable-layer": "1.1.10", + "@radix-ui/react-focus-guards": "1.1.2", "@radix-ui/react-focus-scope": "1.1.7", "@radix-ui/react-id": "1.1.1", - "@radix-ui/react-popper": "1.2.8", + "@radix-ui/react-popper": "1.2.7", "@radix-ui/react-portal": "1.1.9", - "@radix-ui/react-presence": "1.1.5", + "@radix-ui/react-presence": "1.1.4", "@radix-ui/react-primitive": "2.1.3", "@radix-ui/react-slot": "1.2.3", "@radix-ui/react-use-controllable-state": "1.2.2", @@ -1792,10 +2047,37 @@ } } }, + "node_modules/@radix-ui/react-popover/node_modules/@radix-ui/react-dismissable-layer": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.10.tgz", + "integrity": "sha512-IM1zzRV4W3HtVgftdQiiOmA0AdJlCtMLe00FXaHwgt3rAnNsIyDqshvkIW3hj/iu5hu8ERP7KIYki6NkqDxAwQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.2", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-callback-ref": "1.1.1", + "@radix-ui/react-use-escape-keydown": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, "node_modules/@radix-ui/react-popper": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-1.2.8.tgz", - "integrity": "sha512-0NJQ4LFFUuWkE7Oxf0htBKS6zLkkjBH+hM1uk7Ng705ReR8m/uelduy1DBo0PyBXPKVnBA6YBlU94MBGXrSBCw==", + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-1.2.7.tgz", + "integrity": "sha512-IUFAccz1JyKcf/RjB552PlWwxjeCJB8/4KxT7EhBHOJM+mN7LdW+B3kacJXILm32xawcMMjb2i0cIZpo+f9kiQ==", "license": "MIT", "dependencies": { "@floating-ui/react-dom": "^2.0.0", @@ -1849,9 +2131,9 @@ } }, "node_modules/@radix-ui/react-presence": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.5.tgz", - "integrity": "sha512-/jfEwNDdQVBCNvjkGit4h6pMOzq8bHkopq458dPt2lMjx+eBQUohZNG9A7DtO/O5ukSbxuaNGXMjHicgwy6rQQ==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.4.tgz", + "integrity": "sha512-ueDqRbdc4/bkaQT3GIpLQssRlFgWaL/U2z/S31qRwwLWoxHLgry3SIfCwhxeQNbirEUXFa+lq3RL3oBYXtcmIA==", "license": "MIT", "dependencies": { "@radix-ui/react-compose-refs": "1.1.2", @@ -1920,18 +2202,18 @@ } }, "node_modules/@radix-ui/react-radio-group": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/@radix-ui/react-radio-group/-/react-radio-group-1.3.8.tgz", - "integrity": "sha512-VBKYIYImA5zsxACdisNQ3BjCBfmbGH3kQlnFVqlWU4tXwjy7cGX8ta80BcrO+WJXIn5iBylEH3K6ZTlee//lgQ==", + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/@radix-ui/react-radio-group/-/react-radio-group-1.3.7.tgz", + "integrity": "sha512-9w5XhD0KPOrm92OTTE0SysH3sYzHsSTHNvZgUBo/VZ80VdYyB5RneDbc0dKpURS24IxkoFRu/hI0i4XyfFwY6g==", "license": "MIT", "dependencies": { - "@radix-ui/primitive": "1.1.3", + "@radix-ui/primitive": "1.1.2", "@radix-ui/react-compose-refs": "1.1.2", "@radix-ui/react-context": "1.1.2", "@radix-ui/react-direction": "1.1.1", - "@radix-ui/react-presence": "1.1.5", + "@radix-ui/react-presence": "1.1.4", "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-roving-focus": "1.1.11", + "@radix-ui/react-roving-focus": "1.1.10", "@radix-ui/react-use-controllable-state": "1.2.2", "@radix-ui/react-use-previous": "1.1.1", "@radix-ui/react-use-size": "1.1.1" @@ -1952,12 +2234,12 @@ } }, "node_modules/@radix-ui/react-roving-focus": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/@radix-ui/react-roving-focus/-/react-roving-focus-1.1.11.tgz", - "integrity": "sha512-7A6S9jSgm/S+7MdtNDSb+IU859vQqJ/QAtcYQcfFC6W8RS4IxIZDldLR0xqCFZ6DCyrQLjLPsxtTNch5jVA4lA==", + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/@radix-ui/react-roving-focus/-/react-roving-focus-1.1.10.tgz", + "integrity": "sha512-dT9aOXUen9JSsxnMPv/0VqySQf5eDQ6LCk5Sw28kamz8wSOW2bJdlX2Bg5VUIIcV+6XlHpWTIuTPCf/UNIyq8Q==", "license": "MIT", "dependencies": { - "@radix-ui/primitive": "1.1.3", + "@radix-ui/primitive": "1.1.2", "@radix-ui/react-collection": "1.1.7", "@radix-ui/react-compose-refs": "1.1.2", "@radix-ui/react-context": "1.1.2", @@ -1983,17 +2265,17 @@ } }, "node_modules/@radix-ui/react-scroll-area": { - "version": "1.2.10", - "resolved": "https://registry.npmjs.org/@radix-ui/react-scroll-area/-/react-scroll-area-1.2.10.tgz", - "integrity": "sha512-tAXIa1g3sM5CGpVT0uIbUx/U3Gs5N8T52IICuCtObaos1S8fzsrPXG5WObkQN3S6NVl6wKgPhAIiBGbWnvc97A==", + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/@radix-ui/react-scroll-area/-/react-scroll-area-1.2.9.tgz", + "integrity": "sha512-YSjEfBXnhUELsO2VzjdtYYD4CfQjvao+lhhrX5XsHD7/cyUNzljF1FHEbgTPN7LH2MClfwRMIsYlqTYpKTTe2A==", "license": "MIT", "dependencies": { "@radix-ui/number": "1.1.1", - "@radix-ui/primitive": "1.1.3", + "@radix-ui/primitive": "1.1.2", "@radix-ui/react-compose-refs": "1.1.2", "@radix-ui/react-context": "1.1.2", "@radix-ui/react-direction": "1.1.1", - "@radix-ui/react-presence": "1.1.5", + "@radix-ui/react-presence": "1.1.4", "@radix-ui/react-primitive": "2.1.3", "@radix-ui/react-use-callback-ref": "1.1.1", "@radix-ui/react-use-layout-effect": "1.1.1" @@ -2014,22 +2296,22 @@ } }, "node_modules/@radix-ui/react-select": { - "version": "2.2.6", - "resolved": "https://registry.npmjs.org/@radix-ui/react-select/-/react-select-2.2.6.tgz", - "integrity": "sha512-I30RydO+bnn2PQztvo25tswPH+wFBjehVGtmagkU78yMdwTwVf12wnAOF+AeP8S2N8xD+5UPbGhkUfPyvT+mwQ==", + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/@radix-ui/react-select/-/react-select-2.2.5.tgz", + "integrity": "sha512-HnMTdXEVuuyzx63ME0ut4+sEMYW6oouHWNGUZc7ddvUWIcfCva/AMoqEW/3wnEllriMWBa0RHspCYnfCWJQYmA==", "license": "MIT", "dependencies": { "@radix-ui/number": "1.1.1", - "@radix-ui/primitive": "1.1.3", + "@radix-ui/primitive": "1.1.2", "@radix-ui/react-collection": "1.1.7", "@radix-ui/react-compose-refs": "1.1.2", "@radix-ui/react-context": "1.1.2", "@radix-ui/react-direction": "1.1.1", - "@radix-ui/react-dismissable-layer": "1.1.11", - "@radix-ui/react-focus-guards": "1.1.3", + "@radix-ui/react-dismissable-layer": "1.1.10", + "@radix-ui/react-focus-guards": "1.1.2", "@radix-ui/react-focus-scope": "1.1.7", "@radix-ui/react-id": "1.1.1", - "@radix-ui/react-popper": "1.2.8", + "@radix-ui/react-popper": "1.2.7", "@radix-ui/react-portal": "1.1.9", "@radix-ui/react-primitive": "2.1.3", "@radix-ui/react-slot": "1.2.3", @@ -2056,6 +2338,33 @@ } } }, + "node_modules/@radix-ui/react-select/node_modules/@radix-ui/react-dismissable-layer": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.10.tgz", + "integrity": "sha512-IM1zzRV4W3HtVgftdQiiOmA0AdJlCtMLe00FXaHwgt3rAnNsIyDqshvkIW3hj/iu5hu8ERP7KIYki6NkqDxAwQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.2", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-callback-ref": "1.1.1", + "@radix-ui/react-use-escape-keydown": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, "node_modules/@radix-ui/react-separator": { "version": "1.1.7", "resolved": "https://registry.npmjs.org/@radix-ui/react-separator/-/react-separator-1.1.7.tgz", @@ -2080,13 +2389,13 @@ } }, "node_modules/@radix-ui/react-slider": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/@radix-ui/react-slider/-/react-slider-1.3.6.tgz", - "integrity": "sha512-JPYb1GuM1bxfjMRlNLE+BcmBC8onfCi60Blk7OBqi2MLTFdS+8401U4uFjnwkOr49BLmXxLC6JHkvAsx5OJvHw==", + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slider/-/react-slider-1.3.5.tgz", + "integrity": "sha512-rkfe2pU2NBAYfGaxa3Mqosi7VZEWX5CxKaanRv0vZd4Zhl9fvQrg0VM93dv3xGLGfrHuoTRF3JXH8nb9g+B3fw==", "license": "MIT", "dependencies": { "@radix-ui/number": "1.1.1", - "@radix-ui/primitive": "1.1.3", + "@radix-ui/primitive": "1.1.2", "@radix-ui/react-collection": "1.1.7", "@radix-ui/react-compose-refs": "1.1.2", "@radix-ui/react-context": "1.1.2", @@ -2131,12 +2440,12 @@ } }, "node_modules/@radix-ui/react-switch": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@radix-ui/react-switch/-/react-switch-1.2.6.tgz", - "integrity": "sha512-bByzr1+ep1zk4VubeEVViV592vu2lHE2BZY5OnzehZqOOgogN80+mNtCqPkhn2gklJqOpxWgPoYTSnhBCqpOXQ==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@radix-ui/react-switch/-/react-switch-1.2.5.tgz", + "integrity": "sha512-5ijLkak6ZMylXsaImpZ8u4Rlf5grRmoc0p0QeX9VJtlrM4f5m3nCTX8tWga/zOA8PZYIR/t0p2Mnvd7InrJ6yQ==", "license": "MIT", "dependencies": { - "@radix-ui/primitive": "1.1.3", + "@radix-ui/primitive": "1.1.2", "@radix-ui/react-compose-refs": "1.1.2", "@radix-ui/react-context": "1.1.2", "@radix-ui/react-primitive": "2.1.3", @@ -2160,18 +2469,104 @@ } }, "node_modules/@radix-ui/react-tabs": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/@radix-ui/react-tabs/-/react-tabs-1.1.13.tgz", - "integrity": "sha512-7xdcatg7/U+7+Udyoj2zodtI9H/IIopqo+YOIcZOq1nJwXWBZ9p8xiu5llXlekDbZkca79a/fozEYQXIA4sW6A==", + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/@radix-ui/react-tabs/-/react-tabs-1.1.12.tgz", + "integrity": "sha512-GTVAlRVrQrSw3cEARM0nAx73ixrWDPNZAruETn3oHCNP6SbZ/hNxdxp+u7VkIEv3/sFoLq1PfcHrl7Pnp0CDpw==", "license": "MIT", "dependencies": { - "@radix-ui/primitive": "1.1.3", + "@radix-ui/primitive": "1.1.2", "@radix-ui/react-context": "1.1.2", "@radix-ui/react-direction": "1.1.1", "@radix-ui/react-id": "1.1.1", - "@radix-ui/react-presence": "1.1.5", + "@radix-ui/react-presence": "1.1.4", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-roving-focus": "1.1.10", + "@radix-ui/react-use-controllable-state": "1.2.2" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-toast": { + "version": "1.2.14", + "resolved": "https://registry.npmjs.org/@radix-ui/react-toast/-/react-toast-1.2.14.tgz", + "integrity": "sha512-nAP5FBxBJGQ/YfUB+r+O6USFVkWq3gAInkxyEnmvEV5jtSbfDhfa4hwX8CraCnbjMLsE7XSf/K75l9xXY7joWg==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.2", + "@radix-ui/react-collection": "1.1.7", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-dismissable-layer": "1.1.10", + "@radix-ui/react-portal": "1.1.9", + "@radix-ui/react-presence": "1.1.4", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-callback-ref": "1.1.1", + "@radix-ui/react-use-controllable-state": "1.2.2", + "@radix-ui/react-use-layout-effect": "1.1.1", + "@radix-ui/react-visually-hidden": "1.2.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-toast/node_modules/@radix-ui/react-dismissable-layer": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.10.tgz", + "integrity": "sha512-IM1zzRV4W3HtVgftdQiiOmA0AdJlCtMLe00FXaHwgt3rAnNsIyDqshvkIW3hj/iu5hu8ERP7KIYki6NkqDxAwQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.2", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-callback-ref": "1.1.1", + "@radix-ui/react-use-escape-keydown": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-toggle": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/@radix-ui/react-toggle/-/react-toggle-1.1.10.tgz", + "integrity": "sha512-lS1odchhFTeZv3xwHH31YPObmJn8gOg7Lq12inrr0+BH/l3Tsq32VfjqH1oh80ARM3mlkfMic15n0kg4sD1poQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.3", "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-roving-focus": "1.1.11", "@radix-ui/react-use-controllable-state": "1.2.2" }, "peerDependencies": { @@ -2189,24 +2584,19 @@ } } }, - "node_modules/@radix-ui/react-toast": { - "version": "1.2.15", - "resolved": "https://registry.npmjs.org/@radix-ui/react-toast/-/react-toast-1.2.15.tgz", - "integrity": "sha512-3OSz3TacUWy4WtOXV38DggwxoqJK4+eDkNMl5Z/MJZaoUPaP4/9lf81xXMe1I2ReTAptverZUpbPY4wWwWyL5g==", + "node_modules/@radix-ui/react-toggle-group": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/@radix-ui/react-toggle-group/-/react-toggle-group-1.1.10.tgz", + "integrity": "sha512-kiU694Km3WFLTC75DdqgM/3Jauf3rD9wxeS9XtyWFKsBUeZA337lC+6uUazT7I1DhanZ5gyD5Stf8uf2dbQxOQ==", "license": "MIT", "dependencies": { - "@radix-ui/primitive": "1.1.3", - "@radix-ui/react-collection": "1.1.7", - "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/primitive": "1.1.2", "@radix-ui/react-context": "1.1.2", - "@radix-ui/react-dismissable-layer": "1.1.11", - "@radix-ui/react-portal": "1.1.9", - "@radix-ui/react-presence": "1.1.5", + "@radix-ui/react-direction": "1.1.1", "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-use-callback-ref": "1.1.1", - "@radix-ui/react-use-controllable-state": "1.2.2", - "@radix-ui/react-use-layout-effect": "1.1.1", - "@radix-ui/react-visually-hidden": "1.2.3" + "@radix-ui/react-roving-focus": "1.1.10", + "@radix-ui/react-toggle": "1.1.9", + "@radix-ui/react-use-controllable-state": "1.2.2" }, "peerDependencies": { "@types/react": "*", @@ -2223,13 +2613,13 @@ } } }, - "node_modules/@radix-ui/react-toggle": { - "version": "1.1.10", - "resolved": "https://registry.npmjs.org/@radix-ui/react-toggle/-/react-toggle-1.1.10.tgz", - "integrity": "sha512-lS1odchhFTeZv3xwHH31YPObmJn8gOg7Lq12inrr0+BH/l3Tsq32VfjqH1oh80ARM3mlkfMic15n0kg4sD1poQ==", + "node_modules/@radix-ui/react-toggle-group/node_modules/@radix-ui/react-toggle": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/@radix-ui/react-toggle/-/react-toggle-1.1.9.tgz", + "integrity": "sha512-ZoFkBBz9zv9GWer7wIjvdRxmh2wyc2oKWw6C6CseWd6/yq1DK/l5lJ+wnsmFwJZbBYqr02mrf8A2q/CVCuM3ZA==", "license": "MIT", "dependencies": { - "@radix-ui/primitive": "1.1.3", + "@radix-ui/primitive": "1.1.2", "@radix-ui/react-primitive": "2.1.3", "@radix-ui/react-use-controllable-state": "1.2.2" }, @@ -2248,19 +2638,30 @@ } } }, - "node_modules/@radix-ui/react-toggle-group": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/@radix-ui/react-toggle-group/-/react-toggle-group-1.1.11.tgz", - "integrity": "sha512-5umnS0T8JQzQT6HbPyO7Hh9dgd82NmS36DQr+X/YJ9ctFNCiiQd6IJAYYZ33LUwm8M+taCz5t2ui29fHZc4Y6Q==", + "node_modules/@radix-ui/react-toggle/node_modules/@radix-ui/primitive": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.3.tgz", + "integrity": "sha512-JTF99U/6XIjCBo0wqkU5sK10glYe27MRRsfwoiq5zzOEZLHU3A3KCMa5X/azekYRCJ0HlwI0crAXS/5dEHTzDg==", + "license": "MIT" + }, + "node_modules/@radix-ui/react-tooltip": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@radix-ui/react-tooltip/-/react-tooltip-1.2.7.tgz", + "integrity": "sha512-Ap+fNYwKTYJ9pzqW+Xe2HtMRbQ/EeWkj2qykZ6SuEV4iS/o1bZI5ssJbk4D2r8XuDuOBVz/tIx2JObtuqU+5Zw==", "license": "MIT", "dependencies": { - "@radix-ui/primitive": "1.1.3", + "@radix-ui/primitive": "1.1.2", + "@radix-ui/react-compose-refs": "1.1.2", "@radix-ui/react-context": "1.1.2", - "@radix-ui/react-direction": "1.1.1", + "@radix-ui/react-dismissable-layer": "1.1.10", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-popper": "1.2.7", + "@radix-ui/react-portal": "1.1.9", + "@radix-ui/react-presence": "1.1.4", "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-roving-focus": "1.1.11", - "@radix-ui/react-toggle": "1.1.10", - "@radix-ui/react-use-controllable-state": "1.2.2" + "@radix-ui/react-slot": "1.2.3", + "@radix-ui/react-use-controllable-state": "1.2.2", + "@radix-ui/react-visually-hidden": "1.2.3" }, "peerDependencies": { "@types/react": "*", @@ -2277,24 +2678,17 @@ } } }, - "node_modules/@radix-ui/react-tooltip": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@radix-ui/react-tooltip/-/react-tooltip-1.2.8.tgz", - "integrity": "sha512-tY7sVt1yL9ozIxvmbtN5qtmH2krXcBCfjEiCgKGLqunJHvgvZG2Pcl2oQ3kbcZARb1BGEHdkLzcYGO8ynVlieg==", + "node_modules/@radix-ui/react-tooltip/node_modules/@radix-ui/react-dismissable-layer": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.10.tgz", + "integrity": "sha512-IM1zzRV4W3HtVgftdQiiOmA0AdJlCtMLe00FXaHwgt3rAnNsIyDqshvkIW3hj/iu5hu8ERP7KIYki6NkqDxAwQ==", "license": "MIT", "dependencies": { - "@radix-ui/primitive": "1.1.3", + "@radix-ui/primitive": "1.1.2", "@radix-ui/react-compose-refs": "1.1.2", - "@radix-ui/react-context": "1.1.2", - "@radix-ui/react-dismissable-layer": "1.1.11", - "@radix-ui/react-id": "1.1.1", - "@radix-ui/react-popper": "1.2.8", - "@radix-ui/react-portal": "1.1.9", - "@radix-ui/react-presence": "1.1.5", "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-slot": "1.2.3", - "@radix-ui/react-use-controllable-state": "1.2.2", - "@radix-ui/react-visually-hidden": "1.2.3" + "@radix-ui/react-use-callback-ref": "1.1.1", + "@radix-ui/react-use-escape-keydown": "1.1.1" }, "peerDependencies": { "@types/react": "*", @@ -2494,56 +2888,12 @@ "integrity": "sha512-HPwpGIzkl28mWyZqG52jiqDJ12waP11Pa1lGoiyUkIEuMLBP0oeK/C89esbXrxsky5we7dfd8U58nm0SgAWpVw==", "license": "MIT" }, - "node_modules/@react-spring/animated": { - "version": "9.7.5", - "resolved": "https://registry.npmjs.org/@react-spring/animated/-/animated-9.7.5.tgz", - "integrity": "sha512-Tqrwz7pIlsSDITzxoLS3n/v/YCUHQdOIKtOJf4yL6kYVSDTSmVK1LI1Q3M/uu2Sx4X3pIWF3xLUhlsA6SPNTNg==", - "license": "MIT", - "dependencies": { - "@react-spring/shared": "~9.7.5", - "@react-spring/types": "~9.7.5" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - } - }, - "node_modules/@react-spring/core": { - "version": "9.7.5", - "resolved": "https://registry.npmjs.org/@react-spring/core/-/core-9.7.5.tgz", - "integrity": "sha512-rmEqcxRcu7dWh7MnCcMXLvrf6/SDlSokLaLTxiPlAYi11nN3B5oiCUAblO72o+9z/87j2uzxa2Inm8UbLjXA+w==", - "license": "MIT", - "dependencies": { - "@react-spring/animated": "~9.7.5", - "@react-spring/shared": "~9.7.5", - "@react-spring/types": "~9.7.5" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/react-spring/donate" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - } - }, "node_modules/@react-spring/rafz": { "version": "9.7.5", "resolved": "https://registry.npmjs.org/@react-spring/rafz/-/rafz-9.7.5.tgz", "integrity": "sha512-5ZenDQMC48wjUzPAm1EtwQ5Ot3bLIAwwqP2w2owG5KoNdNHpEJV263nGhCeKKmuA3vG2zLLOdu3or6kuDjA6Aw==", "license": "MIT" }, - "node_modules/@react-spring/shared": { - "version": "9.7.5", - "resolved": "https://registry.npmjs.org/@react-spring/shared/-/shared-9.7.5.tgz", - "integrity": "sha512-wdtoJrhUeeyD/PP/zo+np2s1Z820Ohr/BbuVYv+3dVLW7WctoiN7std8rISoYoHpUXtbkpesSKuPIw/6U1w1Pw==", - "license": "MIT", - "dependencies": { - "@react-spring/rafz": "~9.7.5", - "@react-spring/types": "~9.7.5" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - } - }, "node_modules/@react-spring/types": { "version": "9.7.5", "resolved": "https://registry.npmjs.org/@react-spring/types/-/types-9.7.5.tgz", @@ -2601,46 +2951,47 @@ } }, "node_modules/@supabase/postgrest-js": { - "version": "1.21.3", - "resolved": "https://registry.npmjs.org/@supabase/postgrest-js/-/postgrest-js-1.21.3.tgz", - "integrity": "sha512-rg3DmmZQKEVCreXq6Am29hMVe1CzemXyIWVYyyua69y6XubfP+DzGfLxME/1uvdgwqdoaPbtjBDpEBhqxq1ZwA==", + "version": "1.19.4", + "resolved": "https://registry.npmjs.org/@supabase/postgrest-js/-/postgrest-js-1.19.4.tgz", + "integrity": "sha512-O4soKqKtZIW3olqmbXXbKugUtByD2jPa8kL2m2c1oozAO11uCcGrRhkZL0kVxjBLrXHE0mdSkFsMj7jDSfyNpw==", "license": "MIT", "dependencies": { "@supabase/node-fetch": "^2.6.14" } }, "node_modules/@supabase/realtime-js": { - "version": "2.15.1", - "resolved": "https://registry.npmjs.org/@supabase/realtime-js/-/realtime-js-2.15.1.tgz", - "integrity": "sha512-edRFa2IrQw50kNntvUyS38hsL7t2d/psah6om6aNTLLcWem0R6bOUq7sk7DsGeSlNfuwEwWn57FdYSva6VddYw==", + "version": "2.11.15", + "resolved": "https://registry.npmjs.org/@supabase/realtime-js/-/realtime-js-2.11.15.tgz", + "integrity": "sha512-HQKRnwAqdVqJW/P9TjKVK+/ETpW4yQ8tyDPPtRMKOH4Uh3vQD74vmj353CYs8+YwVBKubeUOOEpI9CT8mT4obw==", "license": "MIT", "dependencies": { "@supabase/node-fetch": "^2.6.13", "@types/phoenix": "^1.6.6", "@types/ws": "^8.18.1", + "isows": "^1.0.7", "ws": "^8.18.2" } }, "node_modules/@supabase/storage-js": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/@supabase/storage-js/-/storage-js-2.11.0.tgz", - "integrity": "sha512-Y+kx/wDgd4oasAgoAq0bsbQojwQ+ejIif8uczZ9qufRHWFLMU5cODT+ApHsSrDufqUcVKt+eyxtOXSkeh2v9ww==", + "version": "2.10.4", + "resolved": "https://registry.npmjs.org/@supabase/storage-js/-/storage-js-2.10.4.tgz", + "integrity": "sha512-cvL02GarJVFcNoWe36VBybQqTVRq6wQSOCvTS64C+eyuxOruFIm1utZAY0xi2qKtHJO3EjKaj8iWJKySusDmAQ==", "license": "MIT", "dependencies": { "@supabase/node-fetch": "^2.6.14" } }, "node_modules/@supabase/supabase-js": { - "version": "2.56.0", - "resolved": "https://registry.npmjs.org/@supabase/supabase-js/-/supabase-js-2.56.0.tgz", - "integrity": "sha512-XqwhHSyVnkjdliPN61CmXsmFGnFHTX2WDdwjG3Ukvdzuu3Trix+dXupYOQ3BueIyYp7B6t0yYpdQtJP2hIInyg==", + "version": "2.53.0", + "resolved": "https://registry.npmjs.org/@supabase/supabase-js/-/supabase-js-2.53.0.tgz", + "integrity": "sha512-Vg9sl0oFn55cCPaEOsDsRDbxOVccxRrK/cikjL1XbywHEOfyA5SOOEypidMvQLwgoAfnC2S4D9BQwJDcZs7/TQ==", "license": "MIT", "dependencies": { "@supabase/auth-js": "2.71.1", "@supabase/functions-js": "2.4.5", "@supabase/node-fetch": "2.6.15", - "@supabase/postgrest-js": "1.21.3", - "@supabase/realtime-js": "2.15.1", + "@supabase/postgrest-js": "1.19.4", + "@supabase/realtime-js": "2.11.15", "@supabase/storage-js": "^2.10.4" } }, @@ -3062,9 +3413,9 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "20.19.11", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.19.11.tgz", - "integrity": "sha512-uug3FEEGv0r+jrecvUUpbY8lLisvIjg6AAic6a2bSP5OEOLeJsDSnvhCDov7ipFFMXS3orMpzlmi0ZcuGkBbow==", + "version": "20.19.9", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.19.9.tgz", + "integrity": "sha512-cuVNgarYWZqxRJDQHEB58GEONhOK79QVR/qYx4S7kcUObQvUwvFnYxJuuHUKm2aieN9X3yZB4LZsuYNU1Qphsw==", "license": "MIT", "dependencies": { "undici-types": "~6.21.0" @@ -3083,9 +3434,9 @@ "license": "MIT" }, "node_modules/@types/react": { - "version": "19.1.11", - "resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.11.tgz", - "integrity": "sha512-lr3jdBw/BGj49Eps7EvqlUaoeA0xpj3pc0RoJkHpYaCHkVK7i28dKyImLQb3JVlqs3aYSXf7qYuWOW/fgZnTXQ==", + "version": "19.1.9", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.9.tgz", + "integrity": "sha512-WmdoynAX8Stew/36uTSVMcLJJ1KRh6L3IZRx1PZ7qJtBqT3dYTgyDTx8H1qoRghErydW7xw9mSJ3wS//tCRpFA==", "license": "MIT", "dependencies": { "csstype": "^3.0.2" @@ -3147,17 +3498,17 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.40.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.40.0.tgz", - "integrity": "sha512-w/EboPlBwnmOBtRbiOvzjD+wdiZdgFeo17lkltrtn7X37vagKKWJABvyfsJXTlHe6XBzugmYgd4A4nW+k8Mixw==", + "version": "8.39.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.39.0.tgz", + "integrity": "sha512-bhEz6OZeUR+O/6yx9Jk6ohX6H9JSFTaiY0v9/PuKT3oGK0rn0jNplLmyFUGV+a9gfYnVNwGDwS/UkLIuXNb2Rw==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.40.0", - "@typescript-eslint/type-utils": "8.40.0", - "@typescript-eslint/utils": "8.40.0", - "@typescript-eslint/visitor-keys": "8.40.0", + "@typescript-eslint/scope-manager": "8.39.0", + "@typescript-eslint/type-utils": "8.39.0", + "@typescript-eslint/utils": "8.39.0", + "@typescript-eslint/visitor-keys": "8.39.0", "graphemer": "^1.4.0", "ignore": "^7.0.0", "natural-compare": "^1.4.0", @@ -3171,7 +3522,7 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^8.40.0", + "@typescript-eslint/parser": "^8.39.0", "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <6.0.0" } @@ -3187,16 +3538,16 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "8.40.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.40.0.tgz", - "integrity": "sha512-jCNyAuXx8dr5KJMkecGmZ8KI61KBUhkCob+SD+C+I5+Y1FWI2Y3QmY4/cxMCC5WAsZqoEtEETVhUiUMIGCf6Bw==", + "version": "8.39.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.39.0.tgz", + "integrity": "sha512-g3WpVQHngx0aLXn6kfIYCZxM6rRJlWzEkVpqEFLT3SgEDsp9cpCbxxgwnE504q4H+ruSDh/VGS6nqZIDynP+vg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "8.40.0", - "@typescript-eslint/types": "8.40.0", - "@typescript-eslint/typescript-estree": "8.40.0", - "@typescript-eslint/visitor-keys": "8.40.0", + "@typescript-eslint/scope-manager": "8.39.0", + "@typescript-eslint/types": "8.39.0", + "@typescript-eslint/typescript-estree": "8.39.0", + "@typescript-eslint/visitor-keys": "8.39.0", "debug": "^4.3.4" }, "engines": { @@ -3212,14 +3563,14 @@ } }, "node_modules/@typescript-eslint/project-service": { - "version": "8.40.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.40.0.tgz", - "integrity": "sha512-/A89vz7Wf5DEXsGVvcGdYKbVM9F7DyFXj52lNYUDS1L9yJfqjW/fIp5PgMuEJL/KeqVTe2QSbXAGUZljDUpArw==", + "version": "8.39.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.39.0.tgz", + "integrity": "sha512-CTzJqaSq30V/Z2Og9jogzZt8lJRR5TKlAdXmWgdu4hgcC9Kww5flQ+xFvMxIBWVNdxJO7OifgdOK4PokMIWPew==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/tsconfig-utils": "^8.40.0", - "@typescript-eslint/types": "^8.40.0", + "@typescript-eslint/tsconfig-utils": "^8.39.0", + "@typescript-eslint/types": "^8.39.0", "debug": "^4.3.4" }, "engines": { @@ -3234,14 +3585,14 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.40.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.40.0.tgz", - "integrity": "sha512-y9ObStCcdCiZKzwqsE8CcpyuVMwRouJbbSrNuThDpv16dFAj429IkM6LNb1dZ2m7hK5fHyzNcErZf7CEeKXR4w==", + "version": "8.39.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.39.0.tgz", + "integrity": "sha512-8QOzff9UKxOh6npZQ/4FQu4mjdOCGSdO3p44ww0hk8Vu+IGbg0tB/H1LcTARRDzGCC8pDGbh2rissBuuoPgH8A==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.40.0", - "@typescript-eslint/visitor-keys": "8.40.0" + "@typescript-eslint/types": "8.39.0", + "@typescript-eslint/visitor-keys": "8.39.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -3252,9 +3603,9 @@ } }, "node_modules/@typescript-eslint/tsconfig-utils": { - "version": "8.40.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.40.0.tgz", - "integrity": "sha512-jtMytmUaG9d/9kqSl/W3E3xaWESo4hFDxAIHGVW/WKKtQhesnRIJSAJO6XckluuJ6KDB5woD1EiqknriCtAmcw==", + "version": "8.39.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.39.0.tgz", + "integrity": "sha512-Fd3/QjmFV2sKmvv3Mrj8r6N8CryYiCS8Wdb/6/rgOXAWGcFuc+VkQuG28uk/4kVNVZBQuuDHEDUpo/pQ32zsIQ==", "dev": true, "license": "MIT", "engines": { @@ -3269,15 +3620,15 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.40.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.40.0.tgz", - "integrity": "sha512-eE60cK4KzAc6ZrzlJnflXdrMqOBaugeukWICO2rB0KNvwdIMaEaYiywwHMzA1qFpTxrLhN9Lp4E/00EgWcD3Ow==", + "version": "8.39.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.39.0.tgz", + "integrity": "sha512-6B3z0c1DXVT2vYA9+z9axjtc09rqKUPRmijD5m9iv8iQpHBRYRMBcgxSiKTZKm6FwWw1/cI4v6em35OsKCiN5Q==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.40.0", - "@typescript-eslint/typescript-estree": "8.40.0", - "@typescript-eslint/utils": "8.40.0", + "@typescript-eslint/types": "8.39.0", + "@typescript-eslint/typescript-estree": "8.39.0", + "@typescript-eslint/utils": "8.39.0", "debug": "^4.3.4", "ts-api-utils": "^2.1.0" }, @@ -3294,9 +3645,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "8.40.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.40.0.tgz", - "integrity": "sha512-ETdbFlgbAmXHyFPwqUIYrfc12ArvpBhEVgGAxVYSwli26dn8Ko+lIo4Su9vI9ykTZdJn+vJprs/0eZU0YMAEQg==", + "version": "8.39.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.39.0.tgz", + "integrity": "sha512-ArDdaOllnCj3yn/lzKn9s0pBQYmmyme/v1HbGIGB0GB/knFI3fWMHloC+oYTJW46tVbYnGKTMDK4ah1sC2v0Kg==", "dev": true, "license": "MIT", "engines": { @@ -3308,16 +3659,16 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.40.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.40.0.tgz", - "integrity": "sha512-k1z9+GJReVVOkc1WfVKs1vBrR5MIKKbdAjDTPvIK3L8De6KbFfPFt6BKpdkdk7rZS2GtC/m6yI5MYX+UsuvVYQ==", + "version": "8.39.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.39.0.tgz", + "integrity": "sha512-ndWdiflRMvfIgQRpckQQLiB5qAKQ7w++V4LlCHwp62eym1HLB/kw7D9f2e8ytONls/jt89TEasgvb+VwnRprsw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/project-service": "8.40.0", - "@typescript-eslint/tsconfig-utils": "8.40.0", - "@typescript-eslint/types": "8.40.0", - "@typescript-eslint/visitor-keys": "8.40.0", + "@typescript-eslint/project-service": "8.39.0", + "@typescript-eslint/tsconfig-utils": "8.39.0", + "@typescript-eslint/types": "8.39.0", + "@typescript-eslint/visitor-keys": "8.39.0", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", @@ -3393,16 +3744,16 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "8.40.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.40.0.tgz", - "integrity": "sha512-Cgzi2MXSZyAUOY+BFwGs17s7ad/7L+gKt6Y8rAVVWS+7o6wrjeFN4nVfTpbE25MNcxyJ+iYUXflbs2xR9h4UBg==", + "version": "8.39.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.39.0.tgz", + "integrity": "sha512-4GVSvNA0Vx1Ktwvf4sFE+exxJ3QGUorQG1/A5mRfRNZtkBT2xrA/BCO2H0eALx/PnvCS6/vmYwRdDA41EoffkQ==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.7.0", - "@typescript-eslint/scope-manager": "8.40.0", - "@typescript-eslint/types": "8.40.0", - "@typescript-eslint/typescript-estree": "8.40.0" + "@typescript-eslint/scope-manager": "8.39.0", + "@typescript-eslint/types": "8.39.0", + "@typescript-eslint/typescript-estree": "8.39.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -3417,13 +3768,13 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.40.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.40.0.tgz", - "integrity": "sha512-8CZ47QwalyRjsypfwnbI3hKy5gJDPmrkLjkgMxhi0+DZZ2QNx2naS6/hWoVYUHU7LU2zleF68V9miaVZvhFfTA==", + "version": "8.39.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.39.0.tgz", + "integrity": "sha512-ldgiJ+VAhQCfIjeOgu8Kj5nSxds0ktPOSO9p4+0VDH2R2pLvQraaM5Oen2d7NxzMCm+Sn/vJT+mv2H5u6b/3fA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.40.0", + "@typescript-eslint/types": "8.39.0", "eslint-visitor-keys": "^4.2.1" }, "engines": { @@ -4012,9 +4363,9 @@ "license": "MIT" }, "node_modules/ansi-regex": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.0.tgz", - "integrity": "sha512-TKY5pyBkHyADOPYlRT9Lx6F544mPl0vS5Ew7BJ45hA08Q+t3GjbueLliBWN3sMICk6+y7HdyxSzC4bWS8baBdg==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", "license": "MIT", "engines": { "node": ">=12" @@ -4404,9 +4755,9 @@ } }, "node_modules/browserslist": { - "version": "4.25.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.25.3.tgz", - "integrity": "sha512-cDGv1kkDI4/0e5yON9yM5G/0A5u8sf5TnmdX5C9qHzI9PPu++sQ9zjm1k9NiOrf3riY4OkK0zSGqfvJyJsgCBQ==", + "version": "4.25.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.25.1.tgz", + "integrity": "sha512-KGj0KoOMXLpSNkkEI6Z6mShmQy0bc1I+T7K9N81k4WWMrfz+6fQ6es80B/YLAeRoKvjYE1YSHHOW1qe9xIVzHw==", "funding": [ { "type": "opencollective", @@ -4423,8 +4774,8 @@ ], "license": "MIT", "dependencies": { - "caniuse-lite": "^1.0.30001735", - "electron-to-chromium": "^1.5.204", + "caniuse-lite": "^1.0.30001726", + "electron-to-chromium": "^1.5.173", "node-releases": "^2.0.19", "update-browserslist-db": "^1.1.3" }, @@ -4543,9 +4894,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001737", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001737.tgz", - "integrity": "sha512-BiloLiXtQNrY5UyF0+1nSJLXUENuhka2pzy2Fx5pGxqavdrxSCW4U6Pn/PoG3Efspi2frRbHpBV2XsrPE6EDlw==", + "version": "1.0.30001731", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001731.tgz", + "integrity": "sha512-lDdp2/wrOmTRWuoB5DpfNkC0rJDU8DqRa6nYL6HK6sytw70QMopt/NIc/9SM7ylItlBWfACXk0tEn37UWM/+mg==", "funding": [ { "type": "opencollective", @@ -5182,9 +5533,9 @@ "license": "MIT" }, "node_modules/electron-to-chromium": { - "version": "1.5.208", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.208.tgz", - "integrity": "sha512-ozZyibehoe7tOhNaf16lKmljVf+3npZcJIEbJRVftVsmAg5TeA1mGS9dVCZzOwr2xT7xK15V0p7+GZqSPgkuPg==", + "version": "1.5.197", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.197.tgz", + "integrity": "sha512-m1xWB3g7vJ6asIFz+2pBUbq3uGmfmln1M9SSvBe4QIFWYrRHylP73zL/3nMjDmwz8V+1xAXQDfBd6+HPW0WvDQ==", "license": "ISC" }, "node_modules/embla-carousel": { @@ -5448,20 +5799,20 @@ } }, "node_modules/eslint": { - "version": "9.34.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.34.0.tgz", - "integrity": "sha512-RNCHRX5EwdrESy3Jc9o8ie8Bog+PeYvvSR8sDGoZxNFTvZ4dlxUB3WzQ3bQMztFrSRODGrLLj8g6OFuGY/aiQg==", + "version": "9.32.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.32.0.tgz", + "integrity": "sha512-LSehfdpgMeWcTZkWZVIJl+tkZ2nuSkyyB9C27MZqFWXuph7DvaowgcTvKqxvpLW1JZIk8PN7hFY3Rj9LQ7m7lg==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.12.1", "@eslint/config-array": "^0.21.0", - "@eslint/config-helpers": "^0.3.1", - "@eslint/core": "^0.15.2", + "@eslint/config-helpers": "^0.3.0", + "@eslint/core": "^0.15.0", "@eslint/eslintrc": "^3.3.1", - "@eslint/js": "9.34.0", - "@eslint/plugin-kit": "^0.3.5", + "@eslint/js": "9.32.0", + "@eslint/plugin-kit": "^0.3.4", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", "@humanwhocodes/retry": "^0.4.2", @@ -6517,9 +6868,9 @@ } }, "node_modules/hls.js": { - "version": "1.6.10", - "resolved": "https://registry.npmjs.org/hls.js/-/hls.js-1.6.10.tgz", - "integrity": "sha512-16XHorwFNh+hYazYxDNXBLEm5aRoU+oxMX6qVnkbGH3hJil4xLav3/M6NH92VkD1qSOGKXeSm+5unuawPXK6OQ==", + "version": "1.6.8", + "resolved": "https://registry.npmjs.org/hls.js/-/hls.js-1.6.8.tgz", + "integrity": "sha512-oifhtMNYRpB1VmzH/hWd4NXziMJ1hCeA15XG1ET4jh6u4khXsYsqqvpEFWmNWS+8J6tbsv10wYq5ZiY21HG2Gg==", "license": "Apache-2.0" }, "node_modules/ieee754": { @@ -7112,6 +7463,21 @@ "node": ">=0.10.0" } }, + "node_modules/isows": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/isows/-/isows-1.0.7.tgz", + "integrity": "sha512-I1fSfDCZL5P0v33sVqeTDSpcstAg/N+wF5HS033mogOVIp4B+oHC7oOCsA3axAbBSGTJ8QubbNmnIRN/h8U7hg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/wevm" + } + ], + "license": "MIT", + "peerDependencies": { + "ws": "*" + } + }, "node_modules/iterator.prototype": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.5.tgz", @@ -7272,9 +7638,9 @@ } }, "node_modules/jsonfile": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.0.tgz", - "integrity": "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", "license": "MIT", "dependencies": { "universalify": "^2.0.0" @@ -7637,23 +8003,6 @@ "react-dom": "^18.0.0 || ^19.0.0" } }, - "node_modules/lightswind/node_modules/@react-spring/three": { - "version": "9.7.5", - "resolved": "https://registry.npmjs.org/@react-spring/three/-/three-9.7.5.tgz", - "integrity": "sha512-RxIsCoQfUqOS3POmhVHa1wdWS0wyHAUway73uRLp3GAL5U2iYVNdnzQsep6M2NZ994BlW8TcKuMtQHUqOsy6WA==", - "license": "MIT", - "dependencies": { - "@react-spring/animated": "~9.7.5", - "@react-spring/core": "~9.7.5", - "@react-spring/shared": "~9.7.5", - "@react-spring/types": "~9.7.5" - }, - "peerDependencies": { - "@react-three/fiber": ">=6.0", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "three": ">=0.126" - } - }, "node_modules/lightswind/node_modules/@react-three/drei": { "version": "9.122.0", "resolved": "https://registry.npmjs.org/@react-three/drei/-/drei-9.122.0.tgz", @@ -7695,6 +8044,79 @@ } } }, + "node_modules/lightswind/node_modules/@react-three/drei/node_modules/@react-spring/three": { + "version": "9.7.5", + "resolved": "https://registry.npmjs.org/@react-spring/three/-/three-9.7.5.tgz", + "integrity": "sha512-RxIsCoQfUqOS3POmhVHa1wdWS0wyHAUway73uRLp3GAL5U2iYVNdnzQsep6M2NZ994BlW8TcKuMtQHUqOsy6WA==", + "license": "MIT", + "dependencies": { + "@react-spring/animated": "~9.7.5", + "@react-spring/core": "~9.7.5", + "@react-spring/shared": "~9.7.5", + "@react-spring/types": "~9.7.5" + }, + "peerDependencies": { + "@react-three/fiber": ">=6.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "three": ">=0.126" + } + }, + "node_modules/lightswind/node_modules/@react-three/drei/node_modules/@react-spring/three/node_modules/@react-spring/animated": { + "version": "9.7.5", + "resolved": "https://registry.npmjs.org/@react-spring/animated/-/animated-9.7.5.tgz", + "integrity": "sha512-Tqrwz7pIlsSDITzxoLS3n/v/YCUHQdOIKtOJf4yL6kYVSDTSmVK1LI1Q3M/uu2Sx4X3pIWF3xLUhlsA6SPNTNg==", + "license": "MIT", + "dependencies": { + "@react-spring/shared": "~9.7.5", + "@react-spring/types": "~9.7.5" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/lightswind/node_modules/@react-three/drei/node_modules/@react-spring/three/node_modules/@react-spring/core": { + "version": "9.7.5", + "resolved": "https://registry.npmjs.org/@react-spring/core/-/core-9.7.5.tgz", + "integrity": "sha512-rmEqcxRcu7dWh7MnCcMXLvrf6/SDlSokLaLTxiPlAYi11nN3B5oiCUAblO72o+9z/87j2uzxa2Inm8UbLjXA+w==", + "license": "MIT", + "dependencies": { + "@react-spring/animated": "~9.7.5", + "@react-spring/shared": "~9.7.5", + "@react-spring/types": "~9.7.5" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/react-spring/donate" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/lightswind/node_modules/@react-three/drei/node_modules/@react-spring/three/node_modules/@react-spring/shared": { + "version": "9.7.5", + "resolved": "https://registry.npmjs.org/@react-spring/shared/-/shared-9.7.5.tgz", + "integrity": "sha512-wdtoJrhUeeyD/PP/zo+np2s1Z820Ohr/BbuVYv+3dVLW7WctoiN7std8rISoYoHpUXtbkpesSKuPIw/6U1w1Pw==", + "license": "MIT", + "dependencies": { + "@react-spring/rafz": "~9.7.5", + "@react-spring/types": "~9.7.5" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/lightswind/node_modules/@react-three/drei/node_modules/react-composer": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/react-composer/-/react-composer-5.0.3.tgz", + "integrity": "sha512-1uWd07EME6XZvMfapwZmc7NgCZqDemcvicRi3wMJzXsQLvZ3L7fTHVyPy1bZdnWXM4iPjYuNE+uJ41MLKeTtnA==", + "license": "MIT", + "dependencies": { + "prop-types": "^15.6.0" + }, + "peerDependencies": { + "react": "^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0" + } + }, "node_modules/lightswind/node_modules/@react-three/fiber": { "version": "8.18.0", "resolved": "https://registry.npmjs.org/@react-three/fiber/-/fiber-8.18.0.tgz", @@ -7744,6 +8166,22 @@ } } }, + "node_modules/lightswind/node_modules/@react-three/fiber/node_modules/react-reconciler": { + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/react-reconciler/-/react-reconciler-0.27.0.tgz", + "integrity": "sha512-HmMDKciQjYmBRGuuhIaKA1ba/7a+UsM5FzOZsMO2JYHt9Jh8reCb7j1eDC95NOyUlKM9KRyvdx0flBuDvYSBoA==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.21.0" + }, + "engines": { + "node": ">=0.10.0" + }, + "peerDependencies": { + "react": "^18.0.0" + } + }, "node_modules/lightswind/node_modules/@react-three/fiber/node_modules/zustand": { "version": "3.7.2", "resolved": "https://registry.npmjs.org/zustand/-/zustand-3.7.2.tgz", @@ -8233,9 +8671,9 @@ } }, "node_modules/napi-postinstall": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/napi-postinstall/-/napi-postinstall-0.3.3.tgz", - "integrity": "sha512-uTp172LLXSxuSYHv/kou+f6KW3SMppU9ivthaVTXian9sOt3XM/zHYHpRZiLgQoxeWfYUnslNWQHF1+G71xcow==", + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/napi-postinstall/-/napi-postinstall-0.3.2.tgz", + "integrity": "sha512-tWVJxJHmBWLy69PvO96TZMZDrzmw5KeiZBz3RHmiM2XZ9grBJ2WgMAFVVg25nqp3ZjTFUs2Ftw1JhscL3Teliw==", "dev": true, "license": "MIT", "bin": { @@ -8934,9 +9372,9 @@ } }, "node_modules/react": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", - "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", + "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", "license": "MIT", "dependencies": { "loose-envify": "^1.1.0" @@ -8945,25 +9383,13 @@ "node": ">=0.10.0" } }, - "node_modules/react-composer": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/react-composer/-/react-composer-5.0.3.tgz", - "integrity": "sha512-1uWd07EME6XZvMfapwZmc7NgCZqDemcvicRi3wMJzXsQLvZ3L7fTHVyPy1bZdnWXM4iPjYuNE+uJ41MLKeTtnA==", - "license": "MIT", - "dependencies": { - "prop-types": "^15.6.0" - }, - "peerDependencies": { - "react": "^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0" - } - }, "node_modules/react-day-picker": { - "version": "9.9.0", - "resolved": "https://registry.npmjs.org/react-day-picker/-/react-day-picker-9.9.0.tgz", - "integrity": "sha512-NtkJbuX6cl/VaGNb3sVVhmMA6LSMnL5G3xNL+61IyoZj0mUZFWTg4hmj7PHjIQ8MXN9dHWhUHFoJWG6y60DKSg==", + "version": "9.8.1", + "resolved": "https://registry.npmjs.org/react-day-picker/-/react-day-picker-9.8.1.tgz", + "integrity": "sha512-kMcLrp3PfN/asVJayVv82IjF3iLOOxuH5TNFWezX6lS/T8iVRFPTETpHl3TUSTH99IDMZLubdNPJr++rQctkEw==", "license": "MIT", "dependencies": { - "@date-fns/tz": "^1.4.1", + "@date-fns/tz": "^1.2.0", "date-fns": "^4.1.0", "date-fns-jalali": "^4.1.0-0" }, @@ -8979,16 +9405,16 @@ } }, "node_modules/react-dom": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", - "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", "license": "MIT", "dependencies": { "loose-envify": "^1.1.0", - "scheduler": "^0.23.0" + "scheduler": "^0.23.2" }, "peerDependencies": { - "react": "^18.2.0" + "react": "^18.3.1" } }, "node_modules/react-hook-form": { @@ -9013,31 +9439,6 @@ "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", "license": "MIT" }, - "node_modules/react-reconciler": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/react-reconciler/-/react-reconciler-0.27.0.tgz", - "integrity": "sha512-HmMDKciQjYmBRGuuhIaKA1ba/7a+UsM5FzOZsMO2JYHt9Jh8reCb7j1eDC95NOyUlKM9KRyvdx0flBuDvYSBoA==", - "license": "MIT", - "dependencies": { - "loose-envify": "^1.1.0", - "scheduler": "^0.21.0" - }, - "engines": { - "node": ">=0.10.0" - }, - "peerDependencies": { - "react": "^18.0.0" - } - }, - "node_modules/react-reconciler/node_modules/scheduler": { - "version": "0.21.0", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.21.0.tgz", - "integrity": "sha512-1r87x5fz9MXqswA2ERLo0EbOAU74DpIUO090gIasYTqlVoJeMcl+Z1Rg7WHz+qtPujhS/hGIt9kxZOYBV3faRQ==", - "license": "MIT", - "dependencies": { - "loose-envify": "^1.1.0" - } - }, "node_modules/react-remove-scroll": { "version": "2.7.1", "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.7.1.tgz", @@ -9086,9 +9487,9 @@ } }, "node_modules/react-resizable-panels": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/react-resizable-panels/-/react-resizable-panels-3.0.5.tgz", - "integrity": "sha512-3z1yN25DMTXLg2wfyFrW32r5k4WEcUa3F7cJ2EgtNK07lnOs4mpM8yWLGunCpkhcQRwJX4fqoLcIh/pHPxzlmQ==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/react-resizable-panels/-/react-resizable-panels-3.0.4.tgz", + "integrity": "sha512-8Y4KNgV94XhUvI2LeByyPIjoUJb71M/0hyhtzkHaqpVHs+ZQs8b627HmzyhmVYi3C9YP6R+XD1KmG7hHjEZXFQ==", "license": "MIT", "peerDependencies": { "react": "^16.14.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc", @@ -10214,16 +10615,12 @@ "license": "MIT" }, "node_modules/tapable": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.3.tgz", - "integrity": "sha512-ZL6DDuAlRlLGghwcfmSn9sK3Hr6ArtyudlSAiCqQ6IfE+b+HHbydbYDIG15IfS5do+7XQQBdBiubF/cV2dnDzg==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.2.tgz", + "integrity": "sha512-Re10+NauLTMCudc7T5WLFLAwDhQ0JWdrMK+9B2M8zR5hRExKmsRDCBA7/aV/pNJFltmBFO5BAMlQFi/vq3nKOg==", "license": "MIT", "engines": { "node": ">=6" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" } }, "node_modules/tar": { @@ -10381,14 +10778,11 @@ } }, "node_modules/tinyglobby/node_modules/fdir": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", - "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "version": "6.4.6", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.6.tgz", + "integrity": "sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==", "dev": true, "license": "MIT", - "engines": { - "node": ">=12.0.0" - }, "peerDependencies": { "picomatch": "^3 || ^4" }, @@ -10535,9 +10929,9 @@ } }, "node_modules/tw-animate-css": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/tw-animate-css/-/tw-animate-css-1.3.7.tgz", - "integrity": "sha512-lvLb3hTIpB5oGsk8JmLoAjeCHV58nKa2zHYn8yWOoG5JJusH3bhJlF2DLAZ/5NmJ+jyH3ssiAx/2KmbhavJy/A==", + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/tw-animate-css/-/tw-animate-css-1.3.6.tgz", + "integrity": "sha512-9dy0R9UsYEGmgf26L8UcHiLmSFTHa9+D7+dAt/G/sF5dCnPePZbfgDYinc7/UzAM7g/baVrmS6m9yEpU46d+LA==", "dev": true, "license": "MIT", "funding": { @@ -10897,9 +11291,9 @@ "license": "BSD-2-Clause" }, "node_modules/webpack": { - "version": "5.101.3", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.101.3.tgz", - "integrity": "sha512-7b0dTKR3Ed//AD/6kkx/o7duS8H3f1a4w3BYpIriX4BzIhjkn4teo05cptsxvLesHFKK5KObnadmCHBwGc+51A==", + "version": "5.101.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.101.0.tgz", + "integrity": "sha512-B4t+nJqytPeuZlHuIKTbalhljIFXeNRqrUGAQgTGlfOl2lXXKXw+yZu6bicycP+PUlM44CxBjCFD6aciKFT3LQ==", "license": "MIT", "dependencies": { "@types/eslint-scope": "^3.7.7", @@ -10912,7 +11306,7 @@ "acorn-import-phases": "^1.0.3", "browserslist": "^4.24.0", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.17.3", + "enhanced-resolve": "^5.17.2", "es-module-lexer": "^1.2.1", "eslint-scope": "5.1.1", "events": "^3.2.0", @@ -11320,18 +11714,18 @@ } }, "node_modules/zod": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/zod/-/zod-4.1.1.tgz", - "integrity": "sha512-SgMZK/h8Tigt9nnKkfJMvB/mKjiJXaX26xegP4sa+0wHIFVFWVlsQGdhklDmuargBD3Hsi3rsQRIzwJIhTPJHA==", + "version": "4.0.15", + "resolved": "https://registry.npmjs.org/zod/-/zod-4.0.15.tgz", + "integrity": "sha512-2IVHb9h4Mt6+UXkyMs0XbfICUh1eUrlJJAOupBHUhLRnKkruawyDddYRCs0Eizt900ntIMk9/4RksYl+FgSpcQ==", "license": "MIT", "funding": { "url": "https://github.com/sponsors/colinhacks" } }, "node_modules/zustand": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/zustand/-/zustand-5.0.8.tgz", - "integrity": "sha512-gyPKpIaxY9XcO2vSMrLbiER7QMAMGOQZVRdJ6Zi782jkbzZygq5GI9nG8g+sMgitRtndwaBSl7uiqC49o1SSiw==", + "version": "5.0.7", + "resolved": "https://registry.npmjs.org/zustand/-/zustand-5.0.7.tgz", + "integrity": "sha512-Ot6uqHDW/O2VdYsKLLU8GQu8sCOM1LcoE8RwvLv9uuRT9s6SOHCKs0ZEOhxg+I1Ld+A1Q5lwx+UlKXXUoCZITg==", "license": "MIT", "engines": { "node": ">=12.20.0" diff --git a/amour-next-ts/package.json b/amour-next-ts/package.json index befddf0..78ca7a7 100644 --- a/amour-next-ts/package.json +++ b/amour-next-ts/package.json @@ -63,7 +63,7 @@ }, "devDependencies": { "@eslint/eslintrc": "^3", - "@tailwindcss/postcss": "^4", + "@tailwindcss/postcss": "^4.1.12", "@types/aos": "^3.0.7", "@types/node": "^20", "@types/react": "^19", diff --git a/amour-next-ts/postcss.config.js b/amour-next-ts/postcss.config.js new file mode 100644 index 0000000..de8ec71 --- /dev/null +++ b/amour-next-ts/postcss.config.js @@ -0,0 +1,6 @@ +module.exports = { + plugins: { + "@tailwindcss/postcss": {}, + autoprefixer: {}, + }, +}; diff --git a/amour-next-ts/src/app/layout.tsx b/amour-next-ts/src/app/layout.tsx index 7c0244e..af0a860 100644 --- a/amour-next-ts/src/app/layout.tsx +++ b/amour-next-ts/src/app/layout.tsx @@ -93,7 +93,8 @@ export default function RootLayout({ - + {children} diff --git a/amour-next-ts/src/app/services/coverletter/page.tsx b/amour-next-ts/src/app/services/coverletter/page.tsx new file mode 100644 index 0000000..321fc44 --- /dev/null +++ b/amour-next-ts/src/app/services/coverletter/page.tsx @@ -0,0 +1,934 @@ +'use client'; + +import { Card, CardContent } from "@/components/ui/card"; +import { + CheckCircle, + Clock, + Users, + Target, + FileText, + Award, + ArrowRight, + Star, + BookOpen, + PenTool, + Briefcase, + TrendingUp, + Heart, + MessageSquare, + Sparkles, + Lightbulb, + Zap, + Globe, + Calendar, + MessageCircle, + Layers, + Eye, + ChevronRight, + Send, + Rocket, + Coffee, +} from "lucide-react"; +import { useState, useEffect } from "react"; + +export default function CoverLettersServicePage() { + const [isVisible, setIsVisible] = useState(false); + const [activeTab, setActiveTab] = useState(0); + + useEffect(() => { + setIsVisible(true); + }, []); + + const features = [ + { + icon: Heart, + title: "Emotional Intelligence", + description: + "Connect authentically with hiring managers through compelling storytelling and genuine passion.", + gradient: "from-pink-500 to-rose-500", + }, + { + icon: Target, + title: "Precision Targeting", + description: + "Laser-focused letters addressing specific job requirements with surgical precision.", + gradient: "from-blue-500 to-indigo-500", + }, + { + icon: Sparkles, + title: "Narrative Mastery", + description: + "Transform ordinary experiences into extraordinary career narratives that captivate.", + gradient: "from-purple-500 to-pink-500", + }, + { + icon: Lightbulb, + title: "Strategic Psychology", + description: + "Position yourself as the inevitable choice through psychological persuasion techniques.", + gradient: "from-yellow-500 to-orange-500", + }, + ]; + + const coverLetterTypes = [ + { + title: "Rising Stars", + subtitle: "New graduates & career beginners", + description: "Transform potential into persuasion", + features: [ + "Academic excellence spotlighting", + "Hidden skills amplification", + "Future potential positioning", + "Passion-driven storytelling", + ], + icon: Rocket, + gradient: "from-emerald-400 to-teal-500", + bgPattern: "bg-gradient-to-br from-emerald-50 to-teal-50", + }, + { + title: "Executive Powerhouse", + subtitle: "Experienced professionals & leaders", + description: "Authority meets opportunity", + features: [ + "Leadership legacy narrative", + "Industry influence documentation", + "Strategic vision presentation", + "Results amplification mastery", + ], + icon: Briefcase, + gradient: "from-[#8b2635] to-[#a73345]", + bgPattern: "bg-gradient-to-br from-red-50 to-rose-50", + }, + { + title: "Career Architects", + subtitle: "Industry transition specialists", + description: "Bridging past to future success", + features: [ + "Cross-industry skill translation", + "Change motivation articulation", + "Value proposition engineering", + "Future impact visualization", + ], + icon: TrendingUp, + gradient: "from-violet-500 to-purple-600", + bgPattern: "bg-gradient-to-br from-violet-50 to-purple-50", + }, + ]; + + const process = [ + { + step: "01", + title: "Deep Discovery", + description: + "Comprehensive analysis of role requirements, company culture, and competitive landscape.", + icon: Eye, + color: "from-[#8b2635] to-[#a73345]", + }, + { + step: "02", + title: "Story Mining", + description: + "Extract compelling narratives from your experience using advanced storytelling frameworks.", + icon: Layers, + color: "from-purple-500 to-violet-600", + }, + { + step: "03", + title: "Strategic Crafting", + description: + "Engineer persuasive content that creates irresistible hiring manager attraction.", + icon: PenTool, + color: "from-blue-500 to-cyan-600", + }, + { + step: "04", + title: "Impact Optimization", + description: + "Fine-tune every word for maximum psychological impact and memorability.", + icon: Zap, + color: "from-amber-500 to-orange-600", + }, + { + step: "05", + title: "Success Delivery", + description: + "Receive your interview-generating masterpiece with strategic application guidance.", + icon: Send, + color: "from-green-500 to-emerald-600", + }, + ]; + + const benefits = [ + { + text: "AI-resistant human storytelling that beats automated competition", + icon: Heart, + impact: "High", + }, + { + text: "Psychology-driven persuasion techniques for decision maker influence", + icon: Lightbulb, + impact: "Critical", + }, + { + text: "Industry-insider language and cultural alignment mastery", + icon: Globe, + impact: "High", + }, + { + text: "Achievement amplification with quantified impact storytelling", + icon: TrendingUp, + impact: "High", + }, + { + text: "Same-day urgent application support for time-sensitive opportunities", + icon: Clock, + impact: "Medium", + }, + { + text: "Multi-role customization for simultaneous application campaigns", + icon: Layers, + impact: "High", + }, + ]; + + const testimonials = [ + { + name: "Rajesh Kumar", + position: "Senior Software Architect at Google", + company: "Google", + quote: + "The cover letter was a game-changer. It positioned my technical expertise as strategic business value, leading to interviews at Google, Microsoft, and Amazon within two weeks.", + rating: 5, + avatar: "👨‍💻", + flag: "🇮🇳", + outcome: "3 FAANG interviews", + industry: "Technology", + }, + { + name: "Lisa Chen", + position: "VP Marketing at Netflix", + company: "Netflix", + quote: + "Transitioning from finance to marketing seemed impossible. The cover letter created a compelling narrative that connected my analytical background to creative strategy, opening doors I never imagined.", + rating: 5, + avatar: "👩‍💼", + flag: "🇨🇦", + outcome: "Career pivot success", + industry: "Entertainment", + }, + { + name: "Mohammed Ali", + position: "Principal Consultant at McKinsey & Co", + company: "McKinsey & Co", + quote: + "The executive-level positioning was masterful. The cover letter didn't just showcase my experience—it demonstrated strategic thinking that resonated with McKinsey's partnership-track requirements.", + rating: 5, + avatar: "👨‍💼", + flag: "🇦🇪", + outcome: "C-suite placement", + industry: "Consulting", + }, + ]; + + const pricing = [ + { + title: "Professional Impact", + price: "₹8,500", + originalPrice: "₹12,000", + features: [ + "1 Masterfully Crafted Cover Letter", + "Job-specific psychological targeting", + "Professional narrative development", + "2 strategic revision rounds", + "3-5 day premium delivery", + "ATS optimization included", + ], + popular: false, + gradient: "from-emerald-500 to-teal-600", + savings: "29%", + }, + { + title: "Executive Arsenal", + price: "₹22,000", + originalPrice: "₹30,000", + features: [ + "3 Strategic Cover Letters", + "Multi-role positioning mastery", + "Industry-specific customization", + "Unlimited expert revisions", + "Priority consultation access", + "2-3 day expedited delivery", + "LinkedIn headline optimization", + ], + popular: true, + gradient: "from-[#8b2635] to-[#a73345]", + savings: "27%", + }, + { + title: "C-Suite Command", + price: "₹45,000", + originalPrice: "₹60,000", + features: [ + "5 Executive-Level Cover Letters", + "C-suite positioning strategy", + "Multi-industry version creation", + "Unlimited strategic revisions", + "24/7 VIP support access", + "Same-day delivery capability", + "Complete LinkedIn profile transformation", + "Personal brand messaging consultation", + ], + popular: false, + gradient: "from-purple-600 to-violet-700", + savings: "25%", + }, + ]; + + const industries = [ + { name: "Technology & AI", emoji: "🤖", count: "200+", trend: "Hot" }, + { name: "Finance & FinTech", emoji: "💎", count: "180+", trend: "Growing" }, + { + name: "Strategy & Consulting", + emoji: "🎯", + count: "150+", + trend: "Premium", + }, + { + name: "Healthcare & Biotech", + emoji: "🧬", + count: "120+", + trend: "Emerging", + }, + { name: "Digital Marketing", emoji: "📱", count: "170+", trend: "Hot" }, + { + name: "Engineering & Deep Tech", + emoji: "⚡", + count: "110+", + trend: "Growing", + }, + { name: "Education & EdTech", emoji: "🎓", count: "90+", trend: "Stable" }, + { name: "Social Impact", emoji: "🌍", count: "70+", trend: "Purpose" }, + { name: "Luxury & Retail", emoji: "✨", count: "85+", trend: "Premium" }, + { name: "Media & Content", emoji: "🎬", count: "65+", trend: "Creative" }, + { name: "Government & Policy", emoji: "🏛️", count: "55+", trend: "Stable" }, + { + name: "Startups & Ventures", + emoji: "🚀", + count: "140+", + trend: "Explosive", + }, + ]; + + const successMetrics = [ + { metric: "94%", label: "Interview Rate", icon: "📞" }, + { metric: "78%", label: "Offer Success", icon: "🎉" }, + { metric: "2.3x", label: "Salary Increase", icon: "💰" }, + { metric: "48hrs", label: "Avg Response", icon: "⚡" }, + ]; + + return ( +
+ {/* Hero Section */} +
+
+
+
+
+
+ + + Stories That Sell • Hearts That Hire + +
+

+ Cover Letters That + Command Attention +

+

+ Stop sending generic applications into the void. Our + psychology-driven cover letters create emotional connections + that transform you from applicant to inevitable choice. Every + word strategically crafted to trigger hiring manager action. +

+
+ + +
+ + {/* Success Metrics */} +
+ {successMetrics.map((metric, index) => ( +
+
{metric.icon}
+
+ {metric.metric} +
+
+ {metric.label} +
+
+ ))} +
+
+ +
+
+ {/* Main Cover Letter Preview */} +
+
+
+
+ +
+
+
+ Sarah Johnson +
+
+ Marketing Director +
+
+
+
+ Hired at Netflix +
+
+
+
+
+
+
+
+
+
+ + {/* Floating Elements */} +
+
Interview Secured!
+
+ +
+
+ +
+
+ 94% Success Rate +
+
Interview Guarantee
+
+
+
+
+
+
+
+
+ + {/* Features Overview */} +
+
+
+

+ The Science of Persuasion +

+

+ We don't just write cover letters – we engineer psychological + triggers that make hiring managers unable to ignore you. +

+
+
+ {features.map((feature, index) => ( + + +
+
+
+ +
+

+ {feature.title} +

+

+ {feature.description} +

+
+
+
+ ))} +
+
+
+ + {/* Cover Letter Types */} +
+
+
+

+ Specialized Letter Types +

+

+ Every career stage requires a different strategic approach. We've + mastered them all. +

+
+
+ {coverLetterTypes.map((type, index) => ( + + +
+
+
+
+
+
+ +
+
+ {index === 0 + ? "POTENTIAL" + : index === 1 + ? "AUTHORITY" + : "TRANSITION"} +
+
+

+ {type.title} +

+

+ {type.subtitle} +

+

+ {type.description} +

+
    + {type.features.map((feature, featureIndex) => ( +
  • +
    + + {feature} + +
  • + ))} +
+
+
+
+ ))} +
+
+
+ + {/* Industries We Master */} +
+
+
+

+ Industry Expertise +

+

+ We speak the native language of every industry, crafting letters + that resonate with sector-specific decision makers. +

+
+
+ {industries.map((industry, index) => ( +
+
+ {industry.emoji} +
+

+ {industry.name} +

+
+ + {industry.count} + + + {industry.trend} + +
+
+ ))} +
+
+
+ + {/* Process Steps */} +
+
+
+

+ Our Masterpiece Process +

+

+ From initial analysis to final delivery, every step is designed to + create maximum hiring manager impact. +

+
+
+ {/* Desktop Timeline */} +
+ +
+ {process.map((item, index) => ( +
+
+
+

+ {item.title} +

+

+ {item.description} +

+
+
+ +
+ + STEP {item.step} + +
+
+
+ +
+
+ +
+
+
+ ))} +
+
+
+
+ + {/* Benefits */} +
+
+
+

+ Competitive Advantages +

+

+ Experience the transformative power of professionally crafted + psychological persuasion. +

+
+ +
+ {benefits.map((benefit, index) => { + const BenefitIcon = benefit.icon; + return ( +
+
+ +
+

+ {benefit.text} +

+
+ ); + })} +
+
+
+ + {/* Testimonials */} +
+
+
+

+ Global Success Stories +

+

+ Real transformations, real results, real dreams achieved. +

+
+
+ {testimonials.map((testimonial, index) => ( + + +
+
+ {[...Array(testimonial.rating)].map((_, i) => ( + + ))} +
+ {testimonial.flag} +
+

+ "{testimonial.quote}" +

+
+

{testimonial.name}

+

{testimonial.position}

+
+
+
+ ))} +
+
+
+ + {/* Pricing - Friendly Cards */} +
+
+
+

+ Choose Your Success Package +

+

+ Transparent pricing, exceptional value. Select the package that + aligns with your recommendation letter requirements. +

+
+
+ {pricing.map((plan, index) => ( + + {plan.popular && ( +
+
+ Most Popular +
+
+ )} + +

+ {plan.title} +

+
+ {plan.price} +
+
    + {plan.features.map((feature, featureIndex) => ( +
  • + + + {feature} + +
  • + ))} +
+ +
+
+ ))} +
+
+
+ + {/* FAQ Section */} +
+
+
+

+ Questions? We've Got Answers! 💡 +

+
+
+ {[ + { + question: "How long should a cover letter be?", + answer: + "Most effective cover letters are one page long, typically 3-4 paragraphs. We ensure optimal length while covering all key points to keep recruiters engaged.", + emoji: "📏", + }, + { + question: "Do you customize for different job applications?", + answer: + "Absolutely! Each cover letter is tailored to the specific job posting, company, and industry requirements. We make sure every letter feels personal and relevant.", + emoji: "🎯", + }, + { + question: "What information do you need from me?", + answer: + "We need your resume, the job posting, information about your achievements, and any specific points you want emphasized. The more details, the better we can tell your story!", + emoji: "📋", + }, + { + question: "Can you help with ATS optimization?", + answer: + "Yes! We include relevant keywords and use ATS-friendly formatting to ensure your cover letter passes automated screening while still sounding natural and engaging.", + emoji: "🤖", + }, + ].map((faq, index) => ( +
+
+
+
{faq.emoji}
+
+

+ {faq.question} +

+

+ {faq.answer} +

+
+
+
+
+ ))} +
+
+
+ + {/* CTA Section - Warm & Inviting */} +
+
+
+ + {/* Floating background elements */} +
+
+
+ +
+
+
+ + Transform Your Future Today +
+

+ Ready to Write +
Your Success Story? +

+

+ Let's create a cover letter that doesn't just get you noticed – it + gets you remembered, respected, and ultimately, hired. +

+
+ +
+
+
+ ); +} diff --git a/amour-next-ts/src/app/services/lor/page.tsx b/amour-next-ts/src/app/services/lor/page.tsx new file mode 100644 index 0000000..f568538 --- /dev/null +++ b/amour-next-ts/src/app/services/lor/page.tsx @@ -0,0 +1,660 @@ +"use client"; + +import { + CheckCircle, + Clock, + Users, + Target, + FileText, + Award, + ArrowRight, + Star, + BookOpen, + PenTool, + UserCheck, + Shield, + Quote, + Zap, + Globe, +} from 'lucide-react' + +import { ReactNode } from "react"; + +interface CardProps { + children: ReactNode; + className?: string; +} + +export const Card = ({ children, className = "" }: CardProps) => ( +
+ {children} +
+); + +export const CardContent = ({ children, className = "" }: CardProps) => ( +
+ {children} +
+); + +export default function LORServicePage() { + const features = [ + { + icon: UserCheck, + title: 'Professional Tone', + description: 'Letters written in appropriate academic or professional voice.', + }, + { + icon: Target, + title: 'Customized Content', + description: 'Tailored to highlight your specific strengths and achievements.', + }, + { + icon: Shield, + title: 'Authentic Approach', + description: 'Genuine recommendations that reflect real relationships.', + }, + { + icon: Award, + title: 'Impact-Focused', + description: 'Emphasizes measurable achievements and unique qualities.', + }, + ] + + const process = [ + { + step: '1', + title: 'Information Gathering', + description: 'We collect details about your relationship with the recommender and achievements.', + }, + { + step: '2', + title: 'Content Planning', + description: 'Structure the letter to highlight your most relevant strengths.', + }, + { + step: '3', + title: 'Professional Writing', + description: 'Craft the letter in an authentic, professional tone.', + }, + { + step: '4', + title: 'Quality Review', + description: 'Multiple rounds of editing for clarity and impact.', + }, + { + step: '5', + title: 'Final Delivery', + description: 'Polished letter ready for your recommender\'s review and signature.', + }, + ] + + const benefits = [ + 'Professional academic and industry language', + 'Specific examples and quantifiable achievements', + 'Appropriate tone for target institutions', + 'Multiple format options (email, letterhead, etc.)', + 'Quick turnaround times', + 'Confidential and secure process', + ] + + const testimonials = [ + { + name: 'Dr. Anil Kumar', + position: 'Professor, IIT Delhi', + quote: 'The LOR drafts provided were excellently structured and helped me write compelling recommendations for my students.', + rating: 5, + }, + { + name: 'Meera Patel', + position: 'Manager, Tech Corp', + quote: 'As a busy professional, having well-drafted LORs saved me time while ensuring quality recommendations for my team members.', + rating: 5, + }, + { + name: 'Prof. Sarah Williams', + position: 'Department Head, University of Cambridge', + quote: 'The letters were professional, detailed, and perfectly captured the students\' strengths and potential.', + rating: 5, + }, + ] + + const lorTypes = [ + { + title: 'Academic LOR', + description: 'For professors and academic supervisors', + features: ['Research achievements', 'Academic performance', 'Intellectual curiosity', 'Scholarly potential'], + icon: BookOpen, + gradient: 'from-red-900 to-pink-700', + }, + { + title: 'Professional LOR', + description: 'For employers and supervisors', + features: ['Work performance', 'Leadership skills', 'Professional growth', 'Team collaboration'], + icon: Users, + gradient: 'from-red-800 to-red-600', + }, + { + title: 'Research LOR', + description: 'For research supervisors and mentors', + features: ['Research contributions', 'Analytical skills', 'Innovation ability', 'Technical expertise'], + icon: Target, + gradient: 'from-pink-800 to-red-700', + }, + ] + + const pricing = [ + { + title: 'Standard LOR', + price: '₹8,000', + features: [ + '1 Letter of Recommendation', + 'Professional writing and editing', + 'Basic consultation', + '2 rounds of revisions', + '5-7 day delivery', + ], + }, + { + title: 'Premium LOR Package', + price: '₹20,000', + features: [ + '3 Letters of Recommendation', + 'Detailed consultation', + 'Customized for different recommenders', + 'Unlimited revisions', + 'Priority support', + '3-5 day delivery', + ], + popular: true, + }, + { + title: 'Executive LOR Suite', + price: '₹35,000', + features: [ + '5 Letters of Recommendation', + 'Comprehensive consultation', + 'Multiple formats and versions', + 'Unlimited revisions', + '24/7 priority support', + 'Same-day delivery available', + 'Recommender guidance included', + ], + }, + ] + + return ( +
+ + + {/* Hero Section - Enhanced with diagonal background */} +
+
+
+
+ +
+
+
+
+ + Professional Writing Service +
+

+ Letter of + + Recommendation + + Writing Service +

+

+ Transform your achievements into compelling narratives. Our expert writers craft + authentic recommendation letters that highlight your unique strengths and help + your recommenders create lasting impressions on admissions committees. +

+ +
+
+
+
+
+
+
+ +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ + {/* LOR Types - Enhanced with gradient cards */} +
+
+
+
+ + Comprehensive Coverage +
+

+ Types of Letters We Masterfully Create +

+

+ From academic excellence to professional achievements, we craft recommendation + letters that speak to your unique journey and aspirations. +

+
+
+ {lorTypes.map((type, index) => ( + +
+
+ +

+ {type.title} +

+

+ {type.description} +

+
+ +
    + {type.features.map((feature, featureIndex) => ( +
  • + + {feature} +
  • + ))} +
+
+
+ ))} +
+
+
+ + {/* Features - Alternating layout */} +
+
+
+

+ What Makes Our Service Extraordinary? +

+

+ Beyond just writing—we craft authentic narratives that resonate with admissions committees + and hiring managers worldwide. +

+
+
+ {features.map((feature, index) => ( +
+
+
+ +
+
+
+

+ {feature.title} +

+

+ {feature.description} +

+
+
+ ))} +
+
+
+ + {/* Process - Timeline design */} +
+
+
+

+ Our Proven Process +

+

+ From initial consultation to final delivery, we ensure every recommendation + letter reflects genuine insights and compelling narratives. +

+
+
+ {/* Timeline line */} +
+ +
+ {process.map((item, index) => ( +
+
+ + +

+ {item.title} +

+

+ {item.description} +

+
+
+
+
+
+ {item.step} +
+
+
+
+ ))} +
+
+
+
+ + {/* Benefits - Masonry layout */} +
+
+
+
+

+ Why Professionals Trust Us +

+

+ Join thousands of satisfied clients who have secured their dream opportunities + with our expertly crafted recommendation letters. +

+
+
+ {benefits.map((benefit, index) => ( +
+
+ +

{benefit}

+
+
+ ))} +
+
+
+ + {/* Testimonials - Card carousel design */} +
+
+
+
+ + Success Stories +
+

+ What Recommenders Say +

+

+ Hear from professors and professionals who have experienced the difference + our expertly crafted recommendation letters make. +

+
+
+ {testimonials.map((testimonial, index) => ( + +
+ +
+ {[...Array(testimonial.rating)].map((_, i) => ( + + ))} +
+ +

+ {testimonial.quote} +

+
+

{testimonial.name}

+

{testimonial.position}

+
+
+
+ ))} +
+
+
+ + {/* Pricing - Enhanced with popular badge */} +
+
+
+

+ Choose Your Success Package +

+

+ Transparent pricing, exceptional value. Select the package that aligns + with your recommendation letter requirements. +

+
+
+ {pricing.map((plan, index) => ( + + {plan.popular && ( +
+
+ Most Popular +
+
+ )} + +

{plan.title}

+
{plan.price}
+
    + {plan.features.map((feature, featureIndex) => ( +
  • + + {feature} +
  • + ))} +
+ +
+
+ ))} +
+
+
+ + {/* FAQ - Accordion style */} +
+
+
+

+ Questions? We Have Answers +

+

+ Everything you need to know about our LOR writing service. +

+
+
+ {[ + { + question: 'How do you ensure the LOR sounds authentic and genuine?', + answer: 'We conduct detailed consultations to understand your unique relationship with the recommender and gather specific examples of your achievements. Our writers craft personalized content that reflects genuine interactions and experiences, ensuring authenticity.' + }, + { + question: 'Can you adapt letters for different types of programs and institutions?', + answer: 'Absolutely! We customize each letter based on the specific requirements of academic programs, professional schools, scholarships, and job applications. Our writers understand the nuances of different fields and tailor content accordingly.' + }, + { + question: 'What detailed information do you need to create compelling LORs?', + answer: 'We need comprehensive details about your recommender, the nature of your relationship, specific projects you worked on together, your achievements, target program requirements, and any unique qualities you want highlighted.' + }, + { + question: 'Do you provide guidance and support to recommenders?', + answer: 'Yes! Our Executive package includes comprehensive guidance for recommenders on how to personalize the letters, submission procedures, and best practices for making the strongest impact on selection committees.' + } + ].map((faq, index) => ( + + +

+
+ {faq.question} +

+

{faq.answer}

+
+
+ ))} +
+
+
+ + {/* CTA Section - Enhanced with gradient and animations */} +
+
+
+ + {/* Floating background elements */} +
+
+
+ +
+
+
+ + Transform Your Future Today +
+

+ Ready to Create Powerful +
Recommendation Letters? +

+

+ Don't let weak recommendation letters hold you back. Partner with us to create + compelling narratives that showcase your true potential and open doors to your dream opportunities. +

+
+ + + {/* Additional trust elements */} +
+

TRUSTED BY STUDENTS WORLDWIDE

+
+ + + Secure & Confidential + + + + Expert Writers + + + + Quick Turnaround + +
+
+
+
+
+ ) +} \ No newline at end of file diff --git a/amour-next-ts/src/app/services/personalessay/page.tsx b/amour-next-ts/src/app/services/personalessay/page.tsx new file mode 100644 index 0000000..4574a86 --- /dev/null +++ b/amour-next-ts/src/app/services/personalessay/page.tsx @@ -0,0 +1,414 @@ +"use client"; + +import React from 'react' +import { + CheckCircle, + Clock, + Users, + Target, + FileText, + Award, + ArrowRight, + Star, + BookOpen, + PenTool, + Heart, + Lightbulb, + Zap, + Edit, + Brain, + Trophy, + Shield, + Rocket, +} from 'lucide-react' + +export default function EssaysServicePage() { + const features = [ + { + icon: Heart, + title: 'Authentic Storytelling', + description: 'Craft genuine narratives that reflect your true personality and experiences.', + }, + { + icon: Lightbulb, + title: 'Creative Approach', + description: 'Unique angles and perspectives that make your essay memorable.', + }, + { + icon: Target, + title: 'Purpose-Driven', + description: 'Essays tailored to specific prompts and program requirements.', + }, + { + icon: Award, + title: 'Impactful Writing', + description: 'Compelling narratives that leave lasting impressions on readers.', + }, + ] + + const essayTypes = [ + { + title: 'Common Application Essays', + description: 'Personal statements for undergraduate admissions', + prompts: [ + 'Background and identity stories', + 'Challenge and growth experiences', + 'Belief questioning moments', + 'Gratitude and accomplishment essays' + ], + icon: BookOpen, + }, + { + title: 'Graduate School Essays', + description: 'Personal statements for master\'s and PhD programs', + prompts: [ + 'Research interest essays', + 'Career goal statements', + 'Diversity and inclusion essays', + 'Leadership experience narratives' + ], + icon: Target, + }, + { + title: 'Scholarship Essays', + description: 'Competitive essays for scholarship applications', + prompts: [ + 'Financial need explanations', + 'Community service essays', + 'Future impact statements', + 'Personal achievement stories' + ], + icon: Award, + }, + ] + + const process = [ + { + step: '1', + title: 'Story Discovery', + description: 'We explore your experiences to find the most compelling narrative angles.', + }, + { + step: '2', + title: 'Essay Strategy', + description: 'Develop a unique approach that aligns with prompt requirements.', + }, + { + step: '3', + title: 'Creative Writing', + description: 'Craft engaging essays with strong openings and memorable conclusions.', + }, + { + step: '4', + title: 'Refinement', + description: 'Polish language, flow, and impact through multiple revisions.', + }, + { + step: '5', + title: 'Final Review', + description: 'Ensure essays meet word limits and perfectly answer prompts.', + }, + ] + + const benefits = [ + { + icon: Edit, + text: 'Personalized approach to your unique story' + }, + { + icon: Brain, + text: 'Expert knowledge of successful essay strategies' + }, + { + icon: PenTool, + text: 'Creative writing techniques for maximum impact' + }, + { + icon: Target, + text: 'Multiple essay versions for different applications' + }, + { + icon: Shield, + text: 'Comprehensive editing and proofreading' + }, + { + icon: Rocket, + text: 'Prompt analysis and response optimization' + }, + ] + + const testimonials = [ + { + name: 'Arjun Mehta', + program: 'Harvard University - Undergraduate', + quote: 'My Common App essay helped me stand out among thousands of applicants. The storytelling approach was brilliant and truly captured who I am.', + rating: 5, + }, + { + name: 'Priya Sharma', + program: 'Rhodes Scholarship Winner', + quote: 'The scholarship essays were exceptional. They helped me articulate my vision for social impact in a way that resonated with the selection committee.', + rating: 5, + }, + { + name: 'Kevin Johnson', + program: 'Stanford GSB - MBA', + quote: 'The personal essays for my MBA application perfectly showcased my leadership journey and entrepreneurial aspirations.', + rating: 5, + }, + ] + + const pricing = [ + { + title: 'Single Essay', + price: '₹12,000', + features: [ + '1 Personal Essay (up to 650 words)', + 'Brainstorming session', + 'Professional writing and editing', + '2 rounds of revisions', + '7-10 day delivery', + ], + }, + { + title: 'Essay Package', + price: '₹30,000', + features: [ + '3 Personal Essays', + 'Multiple brainstorming sessions', + 'Customized for different prompts', + 'Unlimited revisions', + 'Priority support', + '5-7 day delivery', + ], + popular: true, + }, + { + title: 'Premium Suite', + price: '₹50,000', + features: [ + '5 Personal Essays', + 'Comprehensive consultation', + 'Multiple versions per essay', + 'Unlimited revisions', + '24/7 priority support', + '3-5 day delivery', + 'Application strategy guidance', + ], + }, + ] + + const writingTips = [ + { + title: 'Show, Don\'t Tell', + description: 'Use specific examples and vivid details to illustrate your points rather than making general statements.', + }, + { + title: 'Start Strong', + description: 'Grab the reader\'s attention from the first sentence with an engaging hook or compelling scene.', + }, + { + title: 'Be Authentic', + description: 'Write in your own voice and share genuine experiences that reflect your true personality.', + }, + { + title: 'Focus on Growth', + description: 'Highlight how experiences changed you and what you learned from challenges or successes.', + }, + ] + + return ( +
+ {/* Hero Section */} +
+
+
+
+
+ + Professional Essay Writing Service +
+

+ Personal Essays That + Tell Your Story +

+

+ Transform your experiences into compelling narratives that showcase your + personality, potential, and unique perspective. Our expert writers help you + craft essays that don't just meet requirements – they exceed expectations. +

+ +
+
+
+
+ +
+
+
+
+
+
+ + {/* Pricing - Friendly Cards */} +
+
+
+

+ Choose Your Success Package +

+

+ Transparent pricing, exceptional value. Select the package that + aligns with your essay writing requirements. +

+
+
+ {pricing.map((plan, index) => ( +
+ {plan.popular && ( +
+
+ Most Popular +
+
+ )} +
+

+ {plan.title} +

+
+ {plan.price} +
+
    + {plan.features.map((feature, featureIndex) => ( +
  • + + + {feature} + +
  • + ))} +
+ +
+
+ ))} +
+
+
+ + {/* FAQ Section */} +
+
+
+

+ Frequently Asked Questions +

+
+
+ {[ + { + question: 'How do you ensure my essay is authentic?', + answer: 'We work closely with you to understand your experiences and write in your voice. The essay tells your story - we just help you tell it compellingly.' + }, + { + question: 'Can you help with different essay prompts?', + answer: 'Absolutely! We can adapt your core story to different prompts and create multiple versions for various applications.' + }, + { + question: 'What if I don\'t have an interesting story to tell?', + answer: 'Everyone has unique experiences worth sharing. Our brainstorming process helps uncover compelling angles from your everyday experiences.' + }, + { + question: 'Do you help with supplemental essays too?', + answer: 'Yes, our packages can include supplemental essays, "Why School" essays, and other application components.' + } + ].map((faq, index) => ( +
+
+

{faq.question}

+

{faq.answer}

+
+
+ ))} +
+
+
+ + {/* CTA Section - Warm & Inviting */} +
+
+
+ + {/* Floating background elements */} +
+
+
+ +
+
+
+ + Transform Your Future Today +
+

+ Ready to Tell +
Your Story? +

+

+ Let's create personal essays that don't just get you noticed – they + get you remembered, respected, and ultimately, accepted. +

+
+ +
+
+
+ ) +} diff --git a/amour-next-ts/src/app/services/resume/page.tsx b/amour-next-ts/src/app/services/resume/page.tsx new file mode 100644 index 0000000..1abb106 --- /dev/null +++ b/amour-next-ts/src/app/services/resume/page.tsx @@ -0,0 +1,935 @@ +"use client"; + +import { Card, CardContent } from '@/components/ui/card' +import { + CheckCircle, + Clock, + Users, + Target, + FileText, + Award, + ArrowRight, + Star, + BookOpen, + PenTool, + Briefcase, + TrendingUp, + Eye, + Zap, + Shield, + BarChart3, + Layers, + Search, + Sparkles, + Heart, + Rocket, + Coffee, +} from 'lucide-react' +import Link from 'next/link' +import Image from 'next/image' +import { useState, useEffect } from "react"; + +export default function ResumeServicePage() { + const [isVisible, setIsVisible] = useState(false); + + useEffect(() => { + setIsVisible(true); + }, []); + + const features = [ + { + icon: Search, + title: 'ATS-Optimized', + description: 'Formatted to pass through Applicant Tracking Systems and reach human recruiters.', + gradient: "from-blue-500 to-indigo-500", + }, + { + icon: Target, + title: 'Industry-Targeted', + description: 'Customized content and keywords relevant to your specific industry and role.', + gradient: "from-green-500 to-emerald-500", + }, + { + icon: Sparkles, + title: 'Impact-Focused', + description: 'Quantified achievements and results-driven content that demonstrates your value.', + gradient: "from-purple-500 to-pink-500", + }, + { + icon: Award, + title: 'Modern Design', + description: 'Professional, clean layouts that make a strong first impression.', + gradient: "from-amber-500 to-orange-500", + }, + ] + + const resumeTypes = [ + { + title: 'Entry-Level Resume', + description: 'Perfect for new graduates and career starters', + features: [ + 'Education and coursework highlights', + 'Internship and project experience', + 'Skills and certifications focus', + 'Professional formatting' + ], + icon: BookOpen, + gradient: 'from-emerald-400 to-teal-500', + bgPattern: "bg-gradient-to-br from-emerald-50 to-teal-50", + }, + { + title: 'Professional Resume', + description: 'For experienced professionals seeking advancement', + features: [ + 'Career progression showcase', + 'Achievement quantification', + 'Leadership experience emphasis', + 'Industry-specific keywords' + ], + icon: Briefcase, + gradient: 'from-[#8b2635] to-[#a73345]', + bgPattern: "bg-gradient-to-br from-red-50 to-rose-50", + }, + { + title: 'Executive Resume', + description: 'For senior leaders and C-level positions', + features: [ + 'Strategic accomplishments focus', + 'Board and leadership roles', + 'Revenue and growth metrics', + 'Executive summary optimization' + ], + icon: TrendingUp, + gradient: 'from-violet-500 to-purple-600', + bgPattern: "bg-gradient-to-br from-violet-50 to-purple-50", + }, + ] + + const process = [ + { + step: '1', + title: 'Career Analysis', + description: 'Comprehensive review of your professional journey and target opportunities.', + icon: Eye, + color: "from-[#8b2635] to-[#a73345]", + }, + { + step: '2', + title: 'Strategic Planning', + description: 'Identify key achievements and develop compelling narrative structure.', + icon: Layers, + color: "from-purple-500 to-violet-600", + }, + { + step: '3', + title: 'Professional Writing', + description: 'Craft persuasive content with industry-specific keywords and quantified results.', + icon: PenTool, + color: "from-blue-500 to-cyan-600", + }, + { + step: '4', + title: 'Design Excellence', + description: 'Apply modern, ATS-friendly formatting for maximum visual impact.', + icon: Zap, + color: "from-amber-500 to-orange-600", + }, + { + step: '5', + title: 'Quality Assurance', + description: 'Multiple rounds of editing and optimization to ensure perfection.', + icon: Shield, + color: "from-green-500 to-emerald-600", + }, + ] + + const benefits = [ + { + icon: Shield, + text: 'ATS-compliant formatting and strategic optimization', + }, + { + icon: Target, + text: 'Industry-specific keywords and terminology integration', + }, + { + icon: BarChart3, + text: 'Quantified achievements and measurable impact metrics', + }, + { + icon: Layers, + text: 'Professional design with clean, modern layout', + }, + { + icon: FileText, + text: 'Multiple format delivery (PDF, Word, LinkedIn-ready)', + }, + { + icon: Users, + text: 'Ongoing support and strategic career guidance', + }, + ] + + const testimonials = [ + { + name: 'Anita Sharma', + position: 'Senior Data Scientist at Microsoft', + quote: 'My new resume helped me land interviews at top tech companies. The way they highlighted my ML projects and impact was perfect.', + rating: 5, + company: 'Microsoft', + avatar: "👩‍💻", + flag: "🇮🇳", + outcome: "3 Tech Giants", + industry: "Technology", + }, + { + name: 'Carlos Rodriguez', + position: 'Marketing Director at Unilever', + quote: 'The resume transformation was incredible. It perfectly showcased my campaign successes and leadership experience.', + rating: 5, + company: 'Unilever', + avatar: "👨‍💼", + flag: "🇲🇽", + outcome: "C-suite Ready", + industry: "Marketing", + }, + { + name: 'Dr. Sarah Kim', + position: 'Research Director at Pfizer', + quote: 'As a PhD transitioning to industry, they helped me translate my academic experience into industry-relevant achievements.', + rating: 5, + company: 'Pfizer', + avatar: "👩‍🔬", + flag: "🇰🇷", + outcome: "Career Pivot", + industry: "Healthcare", + }, + ] + + const pricing = [ + { + title: 'Professional Resume', + price: '₹8,000', + originalPrice: "₹11,000", + features: [ + 'Complete resume rewrite', + 'ATS optimization', + 'Professional formatting', + '2 rounds of revisions', + 'PDF and Word formats', + '5-7 day delivery', + ], + savings: "27%", + }, + { + title: 'Career Advancement', + price: '₹18,000', + originalPrice: "₹25,000", + features: [ + 'Resume + Cover Letter', + 'LinkedIn profile optimization', + 'Industry keyword research', + 'Unlimited revisions', + 'Priority support', + '3-5 day delivery', + ], + popular: true, + savings: "28%", + }, + { + title: 'Executive Package', + price: '₹35,000', + originalPrice: "₹48,000", + features: [ + 'Executive resume + Bio', + 'Cover letter + LinkedIn', + 'Personal branding consultation', + 'Multiple industry versions', + 'Unlimited revisions', + '24/7 priority support', + 'Same-day delivery available', + ], + savings: "27%", + }, + ] + + const industries = [ + { name: 'Technology & Software', emoji: '💻', count: "300+", trend: "Hot" }, + { name: 'Finance & Investment Banking', emoji: '💰', count: "250+", trend: "Premium" }, + { name: 'Consulting & Strategy', emoji: '📊', count: "200+", trend: "Growing" }, + { name: 'Healthcare & Life Sciences', emoji: '🏥', count: "180+", trend: "Stable" }, + { name: 'Marketing & Digital Media', emoji: '📱', count: "220+", trend: "Hot" }, + { name: 'Engineering & Manufacturing', emoji: '⚙️', count: "160+", trend: "Growing" }, + { name: 'Sales & Business Development', emoji: '📈', count: "190+", trend: "Hot" }, + { name: 'Human Resources', emoji: '👥', count: "120+", trend: "Stable" }, + { name: 'Operations & Supply Chain', emoji: '🚚', count: "110+", trend: "Growing" }, + { name: 'Legal & Compliance', emoji: '⚖️', count: "90+", trend: "Stable" }, + { name: 'Education & Research', emoji: '🎓', count: "100+", trend: "Purpose" }, + { name: 'Non-profit & Government', emoji: '🏛️', count: "80+", trend: "Purpose" } + ] + + const resumeSections = [ + { + title: 'Executive Summary', + description: 'Compelling professional overview that captures attention in seconds', + icon: FileText + }, + { + title: 'Core Competencies', + description: 'Strategic keyword placement for ATS and human review optimization', + icon: Target + }, + { + title: 'Professional Experience', + description: 'Achievement-focused narratives with quantified business impact', + icon: Briefcase + }, + { + title: 'Education & Credentials', + description: 'Relevant qualifications and continuous learning highlights', + icon: Award + }, + { + title: 'Technical Expertise', + description: 'Industry-specific tools, technologies, and methodologies', + icon: Zap + }, + { + title: 'Additional Value', + description: 'Publications, projects, leadership roles, and key contributions', + icon: BarChart3 + } + ] + + const stats = [ + { number: '95%', label: 'Interview Success Rate', icon: TrendingUp, emoji: "📞" }, + { number: '3.2x', label: 'More Callbacks', icon: Eye, emoji: "⚡" }, + { number: '92%', label: 'ATS Pass Rate', icon: Shield, emoji: "🛡️" }, + { number: '2500+', label: 'Careers Transformed', icon: Users, emoji: "🎉" }, + ] + + + return ( +
+ {/* Hero Section - Matching Cover Letter Style */} +
+
+
+
+
+
+ + + Career Excellence • Professional Impact + +
+

+ Resumes That + Command Respect +

+

+ Transform your professional story into a compelling narrative that opens doors + to executive opportunities and accelerates your career trajectory. Every word + strategically crafted to position you as the inevitable choice. +

+
+ + +
+
+ +
+
+ {/* Main Resume Preview */} +
+
+
+
+ +
+
+
+ Alex Chen +
+
+ Senior Product Manager +
+
+
+
+ Hired at Google +
+
+
+
+
+
+
+
+
+
+ + {/* Floating Elements */} +
+
95% Success Rate!
+
+ +
+
+ +
+
+ ATS Optimized +
+
Interview Ready
+
+
+
+
+
+
+
+
+ + {/* Features Overview - Matching Cover Letter Style */} +
+
+
+

+ Professional Excellence Standards +

+

+ We deliver resumes that meet the demanding standards of Fortune 500 + organizations and executive search consultants worldwide. +

+
+
+ {features.map((feature, index) => ( + + +
+
+
+ +
+

+ {feature.title} +

+

+ {feature.description} +

+
+
+
+ ))} +
+
+
+ + {/* Resume Types - Matching Cover Letter Style */} +
+
+
+

+ Specialized Resume Solutions +

+

+ Specialized resume strategies designed for professionals at every career stage, + from ambitious newcomers to seasoned executives. +

+
+
+ {resumeTypes.map((type, index) => ( + + +
+
+
+
+
+
+ +
+
+ {index === 0 + ? "STARTER" + : index === 1 + ? "PROFESSIONAL" + : "EXECUTIVE"} +
+
+

+ {type.title} +

+

+ {type.description} +

+
    + {type.features.map((feature, featureIndex) => ( +
  • +
    + + {feature} + +
  • + ))} +
+
+
+
+ ))} +
+
+
+ + {/* Resume Sections - Dark Theme with Brand Colors */} +
+
+
+

+ Strategic Resume Architecture +

+

+ Every section meticulously crafted to maximize impact and ensure + your professional story resonates with hiring decision-makers. +

+
+
+ {resumeSections.map((section, index) => ( +
+ +

+ {section.title} +

+

+ {section.description} +

+
+ ))} +
+
+
+ + {/* Industries - Professional Grid with Brand Colors */} +
+
+
+

+ Industry Expertise +

+

+ Deep sector knowledge ensuring your resume speaks the language + of industry leaders and hiring decision-makers across all domains. +

+
+
+ {industries.map((industry, index) => ( +
+
+ {industry.emoji} +
+

+ {industry.name} +

+
+ + {industry.count} + + + {industry.trend} + +
+
+ ))} +
+
+
+ + {/* Process Steps - Matching Cover Letter Style */} +
+
+
+

+ Our Proven Methodology +

+

+ A systematic approach refined through thousands of successful + career transformations across global organizations. +

+
+
+ {/* Desktop Timeline */} +
+ +
+ {process.map((item, index) => ( +
+
+
+

+ {item.title} +

+

+ {item.description} +

+
+
+ +
+ + STEP {item.step} + +
+
+
+ +
+
+ +
+
+
+ ))} +
+
+
+
+ + {/* Benefits */} +
+
+
+

+ Competitive Advantages +

+

+ Experience the transformative power of professionally crafted + career documentation and strategic positioning. +

+
+ +
+ {benefits.map((benefit, index) => { + const BenefitIcon = benefit.icon; + return ( +
+
+ +
+

+ {benefit.text} +

+
+ ); + })} +
+
+
+ + {/* Testimonials - Matching Cover Letter Style */} +
+
+
+

+ Global Success Stories +

+

+ Real transformations from professionals who trusted us with their most important career decisions. +

+
+
+ {testimonials.map((testimonial, index) => ( + + +
+
+ {[...Array(testimonial.rating)].map((_, i) => ( + + ))} +
+ {testimonial.flag} +
+

+ "{testimonial.quote}" +

+
+

{testimonial.name}

+

{testimonial.position}

+
+

{testimonial.company}

+ + {testimonial.outcome} + +
+
+
+
+ ))} +
+
+
+ + {/* Pricing - Matching Cover Letter Style */} +
+
+
+

+ Choose Your Success Package +

+

+ Transparent pricing, exceptional value. Select the package that + aligns with your career advancement requirements. +

+
+
+ {pricing.map((plan, index) => ( + + {plan.popular && ( +
+
+ Most Popular +
+
+ )} + +

+ {plan.title} +

+
+
+ {plan.price} +
+ {plan.originalPrice && ( + <> +
+ {plan.originalPrice} +
+
+ Save {plan.savings} +
+ + )} +
+
    + {plan.features.map((feature, featureIndex) => ( +
  • + + + {feature} + +
  • + ))} +
+ +
+
+ ))} +
+
+
+ + {/* FAQ Section */} +
+
+
+

+ Questions? We've Got Answers! 💡 +

+
+
+ {[ + { + question: "How long does the resume writing process take?", + answer: + "Our standard turnaround is 5-7 business days for professional resumes. Executive packages take 3-5 days with priority handling. Same-day delivery is available for urgent requests.", + emoji: "⏱️", + }, + { + question: "Do you guarantee ATS compatibility?", + answer: + "Absolutely! All our resumes are formatted to pass through major ATS systems while maintaining visual appeal. We test compatibility across multiple platforms to ensure maximum reach.", + emoji: "🤖", + }, + { + question: "What information do you need to get started?", + answer: + "We need your current resume, target job descriptions, career achievements, and specific goals. The more details you provide, the more compelling we can make your story!", + emoji: "📋", + }, + { + question: "How many revisions are included?", + answer: + "Professional packages include 2 rounds of revisions, while Career Advancement and Executive packages offer unlimited revisions until you're completely satisfied.", + emoji: "🔄", + }, + ].map((faq, index) => ( +
+
+
+
{faq.emoji}
+
+

+ {faq.question} +

+

+ {faq.answer} +

+
+
+
+
+ ))} +
+
+
+ + {/* CTA Section - Matching Cover Letter Style */} +
+
+
+ + {/* Floating background elements */} +
+
+
+ +
+
+
+ + Transform Your Career Today +
+

+ Ready to Accelerate +
Your Career Success? +

+

+ Let's craft a resume that doesn't just showcase your experience – it + positions you as the strategic leader organizations need. +

+
+ +
+
+
+ ) +} \ No newline at end of file diff --git a/amour-next-ts/src/app/services/sop/page.tsx b/amour-next-ts/src/app/services/sop/page.tsx new file mode 100644 index 0000000..8377ddd --- /dev/null +++ b/amour-next-ts/src/app/services/sop/page.tsx @@ -0,0 +1,514 @@ +"use client"; + +import React from 'react' +import { Card, CardContent } from '@/components/ui/card' +import { + CheckCircle, + Clock, + Users, + Target, + FileText, + Award, + ArrowRight, + Star, + BookOpen, + PenTool, + Zap, + Brain, + Trophy, + Shield, + Globe, + MessageSquare, + Edit3, + Lightbulb, + TrendingUp, + UserCheck +} from 'lucide-react' + +export default function SOPServicePage() { + const features = [ + { + icon: Target, + title: 'Strategic Narrative Design', + description: 'Craft compelling storylines that align perfectly with your target program\'s values and requirements.', + }, + { + icon: Brain, + title: 'Psychological Impact', + description: 'Leverage persuasive writing techniques that create lasting impressions on admissions committees.', + }, + { + icon: Globe, + title: 'Global University Expertise', + description: 'Deep knowledge of admission standards across top universities worldwide.', + }, + { + icon: Edit3, + title: 'Expert Craftsmanship', + description: 'Professional editors with advanced degrees refine every sentence for maximum impact.', + }, + ] + + const process = [ + { + step: '1', + title: 'Deep Discovery', + description: 'Comprehensive consultation to understand your academic journey, research passions, and career aspirations.', + }, + { + step: '2', + title: 'Strategic Planning', + description: 'Develop a compelling narrative framework that showcases your unique value proposition.', + }, + { + step: '3', + title: 'Expert Creation', + description: 'Our master writers craft your SOP using proven psychological persuasion techniques.', + }, + { + step: '4', + title: 'Precision Refinement', + description: 'Multiple expert reviews ensure every word serves your admission goals perfectly.', + }, + { + step: '5', + title: 'Success Delivery', + description: 'Receive your polished, admission-ready SOP with confidence-building guarantees.', + }, + ] + + const benefits = [ + { + icon: Shield, + text: 'Personalized approach tailored to your unique academic story' + }, + { + icon: Trophy, + text: 'Expert knowledge of university-specific admission criteria' + }, + { + icon: MessageSquare, + text: 'Professional editing with psychological persuasion techniques' + }, + { + icon: UserCheck, + text: 'Unlimited revisions until you achieve complete satisfaction' + }, + { + icon: Clock, + text: 'Express delivery options to meet urgent application deadlines' + }, + { + icon: Lightbulb, + text: 'Confidentiality and privacy protection guaranteed at all times' + } + ] + + const testimonials = [ + { + name: 'Arjun Patel', + program: 'MS Data Science, MIT', + quote: 'The SOP they crafted was a masterpiece. It perfectly captured my research passion and secured my dream admission to MIT.', + rating: 5, + }, + { + name: 'Kavya Reddy', + program: 'PhD Neuroscience, Cambridge', + quote: 'Their deep understanding of what Cambridge looks for was incredible. The SOP showcased my research potential beautifully.', + rating: 5, + }, + { + name: 'Michael Chen', + program: 'MBA, Wharton', + quote: 'Working with this team was transformative. They helped me articulate my leadership vision in ways I never imagined possible.', + rating: 5, + }, + ] + + const pricing = [ + { + title: 'Essential SOP', + price: '₹18,000', + features: [ + '1-2 page Statement of Purpose', + 'One comprehensive consultation session', + 'Professional writing and expert editing', + '2 strategic revision rounds', + '7-10 day standard delivery', + ], + }, + { + title: 'Premium SOP', + price: '₹28,000', + features: [ + '2-3 page comprehensive Statement of Purpose', + 'Extended consultation with strategy session', + 'In-depth program research and customization', + 'Unlimited revision rounds', + 'Priority expert support', + '5-7 day expedited delivery', + ], + popular: true, + }, + { + title: 'Elite SOP', + price: '₹42,000', + features: [ + 'Comprehensive SOP mastery package', + 'Multiple strategic consultation sessions', + 'Program-specific customization for 3 universities', + 'Unlimited revisions with senior editors', + '24/7 priority support access', + '3-5 day express delivery guarantee', + 'LinkedIn profile optimization bonus', + ], + }, + ] + + return ( +
+ {/* Hero Section */} +
+ {/* Background decorative elements */} +
+
+ +
+
+
+
+ + Professional SOP Writing Service +
+

+ Statement of + Purpose Mastery +

+

+ Transform your academic dreams into compelling narratives that captivate admissions committees. Our expert writers craft SOPs that don't just tell your story – they make it unforgettable. +

+ +
+
+
+
+
+
+ +
+
+

Premium SOP Sample

+

See the difference quality makes

+
+
+
+

+ "My passion for artificial intelligence began not in a classroom, but in my grandmother's kitchen, where I watched her struggle with technology that could have made her life easier..." +

+
+ + Compelling opening that creates emotional connection +
+
+
+
+
+
+
+ + {/* What We Offer */} +
+
+
+

+ What Makes Our SOP Service Exceptional? +

+

+ We combine advanced psychological persuasion techniques with deep admissions expertise to create SOPs that transform applications into acceptances. +

+
+
+ {features.map((feature, index) => ( + + +
+ +
+

+ {feature.title} +

+

+ {feature.description} +

+
+
+ ))} +
+
+
+ + {/* Our Process */} +
+
+
+

+ Our Proven Success Process +

+

+ We follow a meticulous methodology designed to extract your unique story and transform it into admission committee gold. +

+
+
+ {process.map((item, index) => ( + + +
+ {item.step} +
+

+ {item.title} +

+

+ {item.description} +

+
+
+ ))} +
+
+
+ + {/* Benefits */} +
+
+
+

+ Competitive Advantages +

+

+ Experience the transformative power of professionally crafted psychological persuasion. +

+
+ +
+ {benefits.map((benefit, index) => { + const BenefitIcon = benefit.icon; + return ( +
+
+ +
+

+ {benefit.text} +

+
+ ); + })} +
+
+
+ + {/* Testimonials */} +
+
+
+

+ Success Stories +

+

+ Discover how our expertly crafted SOPs have opened doors to the world's most prestigious universities. +

+
+
+ {testimonials.map((testimonial, index) => ( + + +
+ {[...Array(testimonial.rating)].map((_, i) => ( + + ))} +
+

+ "{testimonial.quote}" +

+
+

{testimonial.name}

+

{testimonial.program}

+
+
+
+ ))} +
+
+
+ + {/* Pricing */} +
+
+
+

+ Choose Your Success Package +

+

+ Transparent pricing, exceptional value. Select the package that aligns with your SOP requirements and timeline. +

+
+
+ {pricing.map((plan, index) => ( + + {plan.popular && ( +
+
+ Most Popular +
+
+ )} + +

+ {plan.title} +

+
+ {plan.price} +
+
    + {plan.features.map((feature, featureIndex) => ( +
  • + + + {feature} + +
  • + ))} +
+ +
+
+ ))} +
+
+
+ + {/* FAQ Section */} +
+
+
+

+ Frequently Asked Questions +

+

+ Get answers to common queries about our SOP writing process. +

+
+
+ {[ + { + question: 'How do you ensure my SOP stands out from thousands of others?', + answer: 'We use advanced narrative psychology and university-specific research to craft unique stories that showcase your individual journey, research passions, and future potential in ways that resonate with each specific admissions committee.' + }, + { + question: 'What makes your writers qualified to craft academic SOPs?', + answer: 'Our team consists of PhD holders, former admissions committee members, and professional writers with extensive experience in academic writing. They understand both the technical requirements and psychological impact needed for successful SOPs.' + }, + { + question: 'How many universities can you customize my SOP for?', + answer: 'Our Premium package includes customization for one university, while our Elite package covers up to three universities. We can also create additional customized versions at competitive rates.' + }, + { + question: 'Do you guarantee admission with your SOPs?', + answer: 'While we cannot guarantee admission (as many factors influence decisions), we do guarantee that your SOP will be professionally crafted, compelling, and optimized for maximum impact. Our track record speaks for itself with numerous successful admissions.' + }, + { + question: 'What if I\'m not satisfied with the final SOP?', + answer: 'We offer unlimited revisions on our Premium and Elite packages, and multiple revision rounds on all packages. Our goal is your complete satisfaction and admission success.' + } + ].map((faq, index) => ( + + +

{faq.question}

+

{faq.answer}

+
+
+ ))} +
+
+
+ + {/* CTA Section */} +
+
+
+ + {/* Floating background elements */} +
+
+
+ +
+
+
+ + Transform Your Academic Future Today +
+

+ Ready to Craft +
Your Success Story? +

+

+ Let's create a Statement of Purpose that doesn't just get you noticed – it gets you remembered, respected, and ultimately, accepted. +

+
+ +
+
+
+ ) +} \ No newline at end of file diff --git a/amour-next-ts/src/app/services/transcripts/page.tsx b/amour-next-ts/src/app/services/transcripts/page.tsx new file mode 100644 index 0000000..788b2cc --- /dev/null +++ b/amour-next-ts/src/app/services/transcripts/page.tsx @@ -0,0 +1,645 @@ +'use client'; + +import { Card, CardContent } from '@/components/ui/card' +import { + CheckCircle, + Clock, + Users, + Target, + FileText, + Award, + ArrowRight, + Star, + BookOpen, + PenTool, + GraduationCap, + Shield, + Search, + TrendingUp, + MessageCircle, + Calendar, + Zap, + Globe, + Database, + Filter +} from 'lucide-react' +import { useState, useEffect } from 'react' + +export default function TranscriptsServicePage() { + const [isVisible, setIsVisible] = useState(false) + + useEffect(() => { + setIsVisible(true) + }, []) + + const features = [ + { + icon: Search, + title: 'Academic Deep Dive', + description: 'Comprehensive forensic analysis of your academic records with enhancement roadmap.', + }, + { + icon: TrendingUp, + title: 'GPA Amplification', + description: 'Strategic presentation techniques to maximize your academic profile impact.', + }, + { + icon: Shield, + title: 'Verification Mastery', + description: 'End-to-end support for transcript verification and authentication processes.', + }, + { + icon: Target, + title: 'University Alignment', + description: 'Precise matching of your transcripts to specific program requirements.', + }, + ] + + const transcriptServices = [ + { + title: 'Academic Record Forensics', + description: 'Deep-dive analysis with actionable enhancement strategies', + features: [ + 'Multi-dimensional record assessment', + 'GPA optimization pathways', + 'Course relevance mapping', + 'Strategic improvement blueprint' + ], + icon: Search, + color: 'from-rose-50 to-red-50', + accent: '#8b2635' + }, + { + title: 'Professional Presentation', + description: 'World-class formatting and strategic organization', + features: [ + 'International standard formatting', + 'Visual hierarchy optimization', + 'Academic storytelling structure', + 'Multi-system grade clarity' + ], + icon: FileText, + color: 'from-amber-50 to-orange-50', + accent: '#d97706' + }, + { + title: 'Global Credential Bridge', + description: 'Seamless integration with international evaluation systems', + features: [ + 'WES/ECA application mastery', + 'Document orchestration', + 'Process acceleration support', + 'Success timeline management' + ], + icon: Globe, + color: 'from-emerald-50 to-green-50', + accent: '#059669' + }, + ] + + const process = [ + { + step: '01', + title: 'Academic Audit', + description: 'Comprehensive examination and gap identification of your academic portfolio.', + icon: Search + }, + { + step: '02', + title: 'Strategic Analysis', + description: 'Identify optimization opportunities and competitive positioning strategies.', + icon: Target + }, + { + step: '03', + title: 'Enhancement Blueprint', + description: 'Develop comprehensive plan for maximum academic impact presentation.', + icon: FileText + }, + { + step: '04', + title: 'Professional Execution', + description: 'Implement world-class formatting and presentation standards.', + icon: Award + }, + { + step: '05', + title: 'Quality Assurance', + description: 'Rigorous verification against target institution requirements.', + icon: Shield + }, + ] + + const benefits = [ + { text: 'World-class transcript formatting and strategic presentation', icon: Star }, + { text: 'Advanced GPA calculation with methodology transparency', icon: TrendingUp }, + { text: 'International course equivalency documentation', icon: Globe }, + { text: 'Multi-university format compatibility assurance', icon: Database }, + { text: 'Premium credential evaluation service integration', icon: Award }, + { text: 'Authentication and verification process mastery', icon: Shield }, + ] + + const testimonials = [ + { + name: 'Ramesh Patel', + program: 'MS Engineering, University of Toronto', + quote: 'The transcript transformation was incredible. They turned my complex Indian engineering degree into a clear, compelling academic story that Canadian universities immediately understood.', + rating: 5, + flag: '🇮🇳→🇨🇦' + }, + { + name: 'Maria Garcia', + program: 'MBA, INSEAD', + quote: 'Their WES mastery saved me months. Every document was perfect, every process streamlined. The attention to detail was phenomenal.', + rating: 5, + flag: '🇪🇸→🇫🇷' + }, + { + name: 'Ahmed Hassan', + program: 'PhD Computer Science, MIT', + quote: 'The academic presentation was so professional that MIT\'s admissions committee specifically complimented my transcript clarity during the interview.', + rating: 5, + flag: '🇪🇬→🇺🇸' + }, + ] + + const pricing = [ + { + title: 'Academic Analysis', + price: '₹6,500', + originalPrice: '₹8,000', + features: [ + 'Comprehensive transcript audit', + 'GPA verification & optimization', + 'Strategic formatting recommendations', + '1 round of expert revisions', + '5-7 day premium delivery', + ], + popular: false + }, + { + title: 'Professional Transform', + price: '₹15,500', + originalPrice: '₹20,000', + features: [ + 'Complete transcript metamorphosis', + 'World-class professional formatting', + 'International course equivalency docs', + 'WES/ECA preparation mastery', + 'Unlimited expert revisions', + '3-5 day priority delivery', + ], + popular: true, + }, + { + title: 'Global Elite Package', + price: '₹28,000', + originalPrice: '₹35,000', + features: [ + 'Comprehensive academic portfolio', + 'Multi-format version creation', + 'Premium credential evaluation support', + 'University-specific customization', + '24/7 priority expert support', + 'Same-day delivery available', + 'Ongoing strategic consultation', + ], + popular: false + }, + ] + + const commonIssues = [ + { + title: 'Grade Scale Confusion', + description: 'Complex grade system conversions causing admissions delays', + solution: 'Crystal-clear conversion matrices with detailed explanations for global understanding', + icon: Filter, + impact: 'High' + }, + { + title: 'Documentation Gaps', + description: 'Missing transcripts or incomplete academic records', + solution: 'Systematic documentation recovery and professional gap-filling strategies', + icon: Database, + impact: 'Critical' + }, + { + title: 'Format Inconsistencies', + description: 'Non-standard presentations confusing admissions committees', + solution: 'International formatting standards ensuring immediate comprehension', + icon: FileText, + impact: 'High' + }, + { + title: 'GPA Calculation Errors', + description: 'Incorrect or unclear academic performance reporting', + solution: 'Precision GPA calculations with transparent methodologies', + icon: TrendingUp, + impact: 'Critical' + } + ] + + return ( +
+ {/* Hero Section */} +
+
+
+
+
+
+ + Professional Academic Services +
+

+ Academic Transcript + Transformation +

+

+ Transform your academic records into compelling, professional presentations. + Our expert analysis and formatting services ensure your transcripts + meet international standards and showcase your achievements with maximum impact. +

+
+ + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+
Verified
+
Professional Format
+
+
+
+
+
+
+
+
+ + {/* Features Overview */} +
+
+
+

+ Why Choose Our Expert Services? +

+

+ We don't just format transcripts – we transform your academic story into a compelling narrative that opens doors. +

+
+
+ {features.map((feature, index) => ( + + +
+ +
+

+ {feature.title} +

+

+ {feature.description} +

+
+
+ ))} +
+
+
+ + {/* Service Categories */} +
+
+
+

+ Our Specialized Services +

+

+ Three distinct service tiers designed to meet every academic transformation need. +

+
+
+ {transcriptServices.map((service, index) => ( + + +
+
+ +
+
+

{service.title}

+

{service.description}

+
    + {service.features.map((feature, featureIndex) => ( +
  • +
    + {feature} +
  • + ))} +
+
+
+ ))} +
+
+
+ + {/* Process Steps */} +
+
+
+

+ Our Transformation Process +

+

+ A systematic approach to academic excellence, refined through hundreds of successful transformations. +

+
+
+ {process.map((item, index) => ( +
+
+
+ +
+
+ {item.step} +
+
+

+ {item.title} +

+

+ {item.description} +

+
+ ))} +
+
+
+ + {/* Benefits Section */} +
+
+
+

+ Transformation Benefits +

+

+ Experience the advantage of professionally optimized academic presentations. +

+
+
+ {benefits.map((benefit, index) => ( +
+
+ +
+

{benefit.text}

+
+ ))} +
+
+
+ + {/* Testimonials */} +
+
+
+

+ Global Success Stories +

+

+ Real transformations, real results, real dreams achieved. +

+
+
+ {testimonials.map((testimonial, index) => ( + + +
+
+ {[...Array(testimonial.rating)].map((_, i) => ( + + ))} +
+ {testimonial.flag} +
+

+ "{testimonial.quote}" +

+
+

{testimonial.name}

+

{testimonial.program}

+
+
+
+ ))} +
+
+
+ + {/* Pricing */} +
+
+
+

+ Investment Packages +

+

+ Professional academic transformation services designed for every budget and timeline. +

+
+
+ {pricing.map((plan, index) => ( + + {plan.popular && ( +
+
+ Most Popular +
+
+ )} + +

{plan.title}

+
+
+ {plan.price} + {plan.originalPrice && ( + {plan.originalPrice} + )} +
+
+
    + {plan.features.map((feature, featureIndex) => ( +
  • + + {feature} +
  • + ))} +
+ +
+
+ ))} +
+
+
+ + {/* Common Issues Section */} +
+
+
+

+ Common Challenges We Solve +

+

+ Expert solutions for the most complex academic documentation challenges. +

+
+
+ {commonIssues.map((issue, index) => ( + + +
+
+ +
+ + {issue.impact} Impact + +
+

{issue.title}

+

{issue.description}

+
+

{issue.solution}

+
+
+
+ ))} +
+
+
+ + {/* CTA Section */} +
+
+
+ + {/* Floating background elements */} +
+
+
+ +
+
+
+ + Transform Your Future Today +
+

+ Ready to Transform +
Your Academic Future? +

+

+ Join thousands of successful students who've unlocked their potential with + our professional academic transformation services. +

+
+ + + {/* Trust indicators */} +
+
+
+
1000+
+
Letters Written
+
+
+
+
95%
+
Success Rate
+
+
+
+
24/7
+
Expert Support
+
+
+
+
+ + {/* Additional trust elements */} +
+

TRUSTED BY STUDENTS WORLDWIDE

+
+ + + Secure & Confidential + + + + Expert Writers + + + + Quick Turnaround + +
+
+
+
+
+ ) +} \ No newline at end of file diff --git a/amour-next-ts/src/components/Navbar.tsx b/amour-next-ts/src/components/Navbar.tsx index 4e88b0b..2f29bd9 100644 --- a/amour-next-ts/src/components/Navbar.tsx +++ b/amour-next-ts/src/components/Navbar.tsx @@ -1,9 +1,9 @@ -"use client" +"use client"; -import * as React from "react" -import { useState, useEffect } from "react" -import Link from "next/link" -import { Menu, X, ChevronDown, ChevronUp } from "lucide-react" +import * as React from "react"; +import { useState, useEffect } from "react"; +import Link from "next/link"; +import { Menu, X, ChevronDown, ChevronUp } from "lucide-react"; import { NavigationMenu, @@ -13,8 +13,8 @@ import { NavigationMenuList, NavigationMenuTrigger, navigationMenuTriggerStyle, -} from "@/components/ui/navigation-menu" -import { SimpleDarkModeToggle } from "@/components/ui/dark-mode-toggle" +} from "@/components/ui/navigation-menu"; +import { SimpleDarkModeToggle } from "@/components/ui/dark-mode-toggle"; const components = [ { @@ -31,14 +31,14 @@ const components = [ }, { title: "Personal Essays", - href: "/services/essays", - description: - "Tell your unique story with authenticity and impact.", + href: "/services/personalessay", + description: "Tell your unique story with authenticity and impact.", }, { title: "Cover Letters", - href: "/services/cover-letters", - description: "Professional cover letters that make you stand out to employers.", + href: "/services/coverletter", + description: + "Professional cover letters that make you stand out to employers.", }, { title: "Resume", @@ -51,7 +51,7 @@ const components = [ href: "/services/transcripts", description: "Academic transcript reviews and optimization services.", }, -] +]; interface MobileMenuProps { isOpen: boolean; @@ -97,7 +97,11 @@ const MobileMenu: React.FC = ({ isOpen, onClose }) => { className="w-full px-6 py-4 text-left text-foreground hover:bg-muted hover:text-primary font-medium transition-colors flex items-center justify-between" > Services - {isServicesOpen ? : } + {isServicesOpen ? ( + + ) : ( + + )} {isServicesOpen && (
@@ -109,7 +113,9 @@ const MobileMenu: React.FC = ({ isOpen, onClose }) => { className="block px-8 py-3 text-sm text-muted-foreground hover:bg-muted hover:text-primary transition-colors" >
{component.title}
-
{component.description}
+
+ {component.description} +
))}
@@ -121,7 +127,11 @@ const MobileMenu: React.FC = ({ isOpen, onClose }) => {
- + Book Consultation
@@ -154,7 +164,13 @@ export function NavigationMenuDemo({ fontClass = "" }: { fontClass?: string }) { return ( <>
-
- setIsMobileMenuOpen(false)} /> + setIsMobileMenuOpen(false)} + /> ) } diff --git a/amour-next-ts/src/components/theme-script.tsx b/amour-next-ts/src/components/theme-script.tsx index 419117d..c002337 100644 --- a/amour-next-ts/src/components/theme-script.tsx +++ b/amour-next-ts/src/components/theme-script.tsx @@ -1,21 +1,23 @@ "use client" +import Script from "next/script" export function ThemeScript() { return ( - ) } diff --git a/amour-next-ts/tailwind.config.js b/amour-next-ts/tailwind.config.js new file mode 100644 index 0000000..900e072 --- /dev/null +++ b/amour-next-ts/tailwind.config.js @@ -0,0 +1,14 @@ +/** @type {import('tailwindcss').Config} */ +module.exports = { + content: [ + "./src/**/*.{js,ts,jsx,tsx}", + ], + theme: { + extend: { + colors: { + brand: "#8b2635", + }, + }, + }, + plugins: [], +}; diff --git a/package-lock.json b/package-lock.json index af0e377..96c6bde 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,9 +9,38 @@ "version": "1.0.0", "hasInstallScript": true, "license": "ISC", + "dependencies": { + "ansi-regex": "^5.0.1", + "ansi-styles": "^4.3.0", + "chalk": "^4.1.2", + "cliui": "^8.0.1", + "color-convert": "^2.0.1", + "color-name": "^1.1.4", + "emoji-regex": "^8.0.0", + "escalade": "^3.2.0", + "get-caller-file": "^2.0.5", + "has-flag": "^4.0.0", + "is-fullwidth-code-point": "^3.0.0", + "lodash": "^4.17.21", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "require-directory": "^2.1.1", + "rxjs": "^7.8.2", + "shell-quote": "^1.8.3", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "supports-color": "^8.1.1", + "tree-kill": "^1.2.2", + "tslib": "^2.8.1", + "wrap-ansi": "^7.0.0", + "y18n": "^5.0.8", + "yargs": "^17.7.2", + "yargs-parser": "^21.1.1" + }, "devDependencies": { "@types/aos": "^3.0.7", - "concurrently": "^9.2.0" + "concurrently": "^9.2.0", + "typescript": "^5.9.2" } }, "node_modules/@types/aos": { @@ -25,7 +54,6 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -35,7 +63,6 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, "license": "MIT", "dependencies": { "color-convert": "^2.0.1" @@ -51,7 +78,6 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", @@ -68,7 +94,6 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, "license": "MIT", "dependencies": { "has-flag": "^4.0.0" @@ -81,7 +106,6 @@ "version": "8.0.1", "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "dev": true, "license": "ISC", "dependencies": { "string-width": "^4.2.0", @@ -96,7 +120,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, "license": "MIT", "dependencies": { "color-name": "~1.1.4" @@ -109,23 +132,21 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, "license": "MIT" }, "node_modules/concurrently": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-9.2.0.tgz", - "integrity": "sha512-IsB/fiXTupmagMW4MNp2lx2cdSN2FfZq78vF90LBB+zZHArbIQZjQtzXCiXnvTxCZSvXanTqFLWBjw2UkLx1SQ==", + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-9.2.1.tgz", + "integrity": "sha512-fsfrO0MxV64Znoy8/l1vVIjjHa29SZyyqPgQBwhiDcaW8wJc2W3XWVOGx4M3oJBnv/zdUZIIp1gDeS98GzP8Ng==", "dev": true, "license": "MIT", "dependencies": { - "chalk": "^4.1.2", - "lodash": "^4.17.21", - "rxjs": "^7.8.1", - "shell-quote": "^1.8.1", - "supports-color": "^8.1.1", - "tree-kill": "^1.2.2", - "yargs": "^17.7.2" + "chalk": "4.1.2", + "rxjs": "7.8.2", + "shell-quote": "1.8.3", + "supports-color": "8.1.1", + "tree-kill": "1.2.2", + "yargs": "17.7.2" }, "bin": { "conc": "dist/bin/concurrently.js", @@ -142,14 +163,12 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true, "license": "MIT" }, "node_modules/escalade": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", - "dev": true, "license": "MIT", "engines": { "node": ">=6" @@ -159,7 +178,6 @@ "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true, "license": "ISC", "engines": { "node": "6.* || 8.* || >= 10.*" @@ -169,7 +187,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -179,24 +196,64 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, "license": "MIT", "engines": { "node": ">=8" } }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "license": "MIT" + }, "node_modules/lodash": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true, "license": "MIT" }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "license": "MIT", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/react": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", + "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.2" + }, + "peerDependencies": { + "react": "^18.3.1" + } + }, "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" @@ -206,17 +263,24 @@ "version": "7.8.2", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz", "integrity": "sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==", - "dev": true, "license": "Apache-2.0", "dependencies": { "tslib": "^2.1.0" } }, + "node_modules/scheduler": { + "version": "0.23.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", + "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0" + } + }, "node_modules/shell-quote": { "version": "1.8.3", "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.3.tgz", "integrity": "sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==", - "dev": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -229,7 +293,6 @@ "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", @@ -244,7 +307,6 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" @@ -257,7 +319,6 @@ "version": "8.1.1", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, "license": "MIT", "dependencies": { "has-flag": "^4.0.0" @@ -273,7 +334,6 @@ "version": "1.2.2", "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", - "dev": true, "license": "MIT", "bin": { "tree-kill": "cli.js" @@ -283,14 +343,26 @@ "version": "2.8.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "dev": true, "license": "0BSD" }, + "node_modules/typescript": { + "version": "5.9.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.2.tgz", + "integrity": "sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, "node_modules/wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", @@ -308,7 +380,6 @@ "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true, "license": "ISC", "engines": { "node": ">=10" @@ -318,7 +389,6 @@ "version": "17.7.2", "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", - "dev": true, "license": "MIT", "dependencies": { "cliui": "^8.0.1", @@ -337,7 +407,6 @@ "version": "21.1.1", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "dev": true, "license": "ISC", "engines": { "node": ">=12" diff --git a/package.json b/package.json index 43ed9db..0486b79 100644 --- a/package.json +++ b/package.json @@ -1,20 +1,24 @@ { "devDependencies": { - "@types/aos": "^3.0.7" + "@types/aos": "^3.0.7", + "concurrently": "^9.2.0", + "typescript": "^5.9.2" }, "name": "amour-editorial-website", "version": "1.0.0", "description": "**Amour Editorials** is a professional platform that helps students and professionals craft compelling Statements of Purpose (SOPs), Letters of Recommendation (LORs), and other academic documents — turning their dreams into impactful stories.", "main": "index.js", "scripts": { - "test": "echo \"Error: no test specified\" && exit 1", + "test": "echo \"Error: no test specified\" && exit 0", "install::fe": "cd amour-next-ts && npm i", "install::be": "cd amour-Backend && npm i", "install": "npm run install::fe && npm run install::be", "dev": "npx concurrently \"npm run dev::fe\" \"npm run dev::be\"", "dev::fe": "npm run dev --prefix amour-next-ts", "dev::be": "node amour-Backend/index.js", - "start": "npm run install && npm run dev" + "start": "npm run install && npm run dev", + "build": "next build", + "test:prod": "NODE_ENV=production npm test" }, "repository": { "type": "git", @@ -28,8 +32,32 @@ "url": "https://github.com/lkshayb/Amour-Editorial-Website/issues" }, "homepage": "https://github.com/lkshayb/Amour-Editorial-Website#readme", - "devDependencies": { - "@types/aos": "^3.0.7", - "concurrently": "^9.2.0" + "dependencies": { + "ansi-regex": "^5.0.1", + "ansi-styles": "^4.3.0", + "chalk": "^4.1.2", + "cliui": "^8.0.1", + "color-convert": "^2.0.1", + "color-name": "^1.1.4", + "emoji-regex": "^8.0.0", + "escalade": "^3.2.0", + "get-caller-file": "^2.0.5", + "has-flag": "^4.0.0", + "is-fullwidth-code-point": "^3.0.0", + "lodash": "^4.17.21", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "require-directory": "^2.1.1", + "rxjs": "^7.8.2", + "shell-quote": "^1.8.3", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "supports-color": "^8.1.1", + "tree-kill": "^1.2.2", + "tslib": "^2.8.1", + "wrap-ansi": "^7.0.0", + "y18n": "^5.0.8", + "yargs": "^17.7.2", + "yargs-parser": "^21.1.1" } } diff --git a/tailwind.config.js b/tailwind.config.js new file mode 100644 index 0000000..d947ab1 --- /dev/null +++ b/tailwind.config.js @@ -0,0 +1,9 @@ +/** @type {import('tailwindcss').Config} */ +module.exports = { + content: [], + theme: { + extend: {}, + }, + plugins: [], +} + diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..cec4a3a --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,44 @@ +{ + // Visit https://aka.ms/tsconfig to read more about this file + "compilerOptions": { + // File Layout + // "rootDir": "./src", + // "outDir": "./dist", + + // Environment Settings + // See also https://aka.ms/tsconfig/module + "module": "nodenext", + "target": "esnext", + "types": [], + // For nodejs: + // "lib": ["esnext"], + // "types": ["node"], + // and npm install -D @types/node + + // Other Outputs + "sourceMap": true, + "declaration": true, + "declarationMap": true, + + // Stricter Typechecking Options + "noUncheckedIndexedAccess": true, + "exactOptionalPropertyTypes": true, + + // Style Options + // "noImplicitReturns": true, + // "noImplicitOverride": true, + // "noUnusedLocals": true, + // "noUnusedParameters": true, + // "noFallthroughCasesInSwitch": true, + // "noPropertyAccessFromIndexSignature": true, + + // Recommended Options + "strict": true, + "jsx": "react-jsx", + "verbatimModuleSyntax": true, + "isolatedModules": true, + "noUncheckedSideEffectImports": true, + "moduleDetection": "force", + "skipLibCheck": true, + } +}