diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a547bf3 --- /dev/null +++ b/.gitignore @@ -0,0 +1,24 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/index.html b/index.html new file mode 100644 index 0000000..c26d6c0 --- /dev/null +++ b/index.html @@ -0,0 +1,113 @@ + + + + + + + + + + HBO Max + + + + + + + + + + assine agora + entrar + + + + +
+
+
+ + + +
+ + + + + + agora na hbo max + em breve + + Filme em destaque + + Séries + Ajuda + + + + + Facebook + + + Twitter + + + Instagram + + + Youtube + + + + + diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..33969a0 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,2204 @@ +{ + "name": "hbomax", + "version": "0.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "hbomax", + "version": "0.0.0", + "devDependencies": { + "sass": "^1.77.8", + "sass-embedded": "^1.77.8", + "typescript": "^5.2.2", + "vite": "^5.3.4", + "vite-plugin-html": "^3.2.2" + } + }, + "node_modules/@bufbuild/protobuf": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/@bufbuild/protobuf/-/protobuf-1.10.0.tgz", + "integrity": "sha512-QDdVFLoN93Zjg36NoQPZfsVH9tZew7wKDKyV5qRdj8ntT4wQCOradQjRaTdwMhWUYsgKsvCINKKm87FdEk96Ag==", + "dev": true + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", + "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@rollup/pluginutils": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.2.1.tgz", + "integrity": "sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==", + "dev": true, + "dependencies": { + "estree-walker": "^2.0.1", + "picomatch": "^2.2.2" + }, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.19.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.19.2.tgz", + "integrity": "sha512-OHflWINKtoCFSpm/WmuQaWW4jeX+3Qt3XQDepkkiFTsoxFc5BpF3Z5aDxFZgBqRjO6ATP5+b1iilp4kGIZVWlA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.19.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.19.2.tgz", + "integrity": "sha512-k0OC/b14rNzMLDOE6QMBCjDRm3fQOHAL8Ldc9bxEWvMo4Ty9RY6rWmGetNTWhPo+/+FNd1lsQYRd0/1OSix36A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.19.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.19.2.tgz", + "integrity": "sha512-IIARRgWCNWMTeQH+kr/gFTHJccKzwEaI0YSvtqkEBPj7AshElFq89TyreKNFAGh5frLfDCbodnq+Ye3dqGKPBw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.19.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.19.2.tgz", + "integrity": "sha512-52udDMFDv54BTAdnw+KXNF45QCvcJOcYGl3vQkp4vARyrcdI/cXH8VXTEv/8QWfd6Fru8QQuw1b2uNersXOL0g==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.19.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.19.2.tgz", + "integrity": "sha512-r+SI2t8srMPYZeoa1w0o/AfoVt9akI1ihgazGYPQGRilVAkuzMGiTtexNZkrPkQsyFrvqq/ni8f3zOnHw4hUbA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.19.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.19.2.tgz", + "integrity": "sha512-+tYiL4QVjtI3KliKBGtUU7yhw0GMcJJuB9mLTCEauHEsqfk49gtUBXGtGP3h1LW8MbaTY6rSFIQV1XOBps1gBA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.19.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.19.2.tgz", + "integrity": "sha512-OR5DcvZiYN75mXDNQQxlQPTv4D+uNCUsmSCSY2FolLf9W5I4DSoJyg7z9Ea3TjKfhPSGgMJiey1aWvlWuBzMtg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.19.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.19.2.tgz", + "integrity": "sha512-Hw3jSfWdUSauEYFBSFIte6I8m6jOj+3vifLg8EU3lreWulAUpch4JBjDMtlKosrBzkr0kwKgL9iCfjA8L3geoA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.19.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.19.2.tgz", + "integrity": "sha512-rhjvoPBhBwVnJRq/+hi2Q3EMiVF538/o9dBuj9TVLclo9DuONqt5xfWSaE6MYiFKpo/lFPJ/iSI72rYWw5Hc7w==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.19.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.19.2.tgz", + "integrity": "sha512-EAz6vjPwHHs2qOCnpQkw4xs14XJq84I81sDRGPEjKPFVPBw7fwvtwhVjcZR6SLydCv8zNK8YGFblKWd/vRmP8g==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.19.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.19.2.tgz", + "integrity": "sha512-IJSUX1xb8k/zN9j2I7B5Re6B0NNJDJ1+soezjNojhT8DEVeDNptq2jgycCOpRhyGj0+xBn7Cq+PK7Q+nd2hxLA==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.19.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.19.2.tgz", + "integrity": "sha512-OgaToJ8jSxTpgGkZSkwKE+JQGihdcaqnyHEFOSAU45utQ+yLruE1dkonB2SDI8t375wOKgNn8pQvaWY9kPzxDQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.19.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.19.2.tgz", + "integrity": "sha512-5V3mPpWkB066XZZBgSd1lwozBk7tmOkKtquyCJ6T4LN3mzKENXyBwWNQn8d0Ci81hvlBw5RoFgleVpL6aScLYg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.19.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.19.2.tgz", + "integrity": "sha512-ayVstadfLeeXI9zUPiKRVT8qF55hm7hKa+0N1V6Vj+OTNFfKSoUxyZvzVvgtBxqSb5URQ8sK6fhwxr9/MLmxdA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.19.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.19.2.tgz", + "integrity": "sha512-Mda7iG4fOLHNsPqjWSjANvNZYoW034yxgrndof0DwCy0D3FvTjeNo+HGE6oGWgvcLZNLlcp0hLEFcRs+UGsMLg==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.19.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.19.2.tgz", + "integrity": "sha512-DPi0ubYhSow/00YqmG1jWm3qt1F8aXziHc/UNy8bo9cpCacqhuWu+iSq/fp2SyEQK7iYTZ60fBU9cat3MXTjIQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@types/estree": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", + "dev": true + }, + "node_modules/acorn": { + "version": "8.12.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", + "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/async": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz", + "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==", + "dev": true + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/buffer-builder": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/buffer-builder/-/buffer-builder-0.2.0.tgz", + "integrity": "sha512-7VPMEPuYznPSoR21NE1zvd2Xna6c/CloiZCfcMXR1Jny6PjX0N4Nsa38zcBFo/FMK+BlA+FLKbJCQ0i2yxp+Xg==", + "dev": true + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "node_modules/camel-case": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", + "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", + "dev": true, + "dependencies": { + "pascal-case": "^3.1.2", + "tslib": "^2.0.3" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chalk/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/clean-css": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.3.tgz", + "integrity": "sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==", + "dev": true, + "dependencies": { + "source-map": "~0.6.0" + }, + "engines": { + "node": ">= 10.0" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/colorette": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", + "dev": true + }, + "node_modules/commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "dev": true, + "engines": { + "node": ">= 12" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/connect-history-api-fallback": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", + "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/consola": { + "version": "2.15.3", + "resolved": "https://registry.npmjs.org/consola/-/consola-2.15.3.tgz", + "integrity": "sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==", + "dev": true + }, + "node_modules/css-select": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "dev": true, + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "dev": true, + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] + }, + "node_modules/domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "dev": true, + "dependencies": { + "domelementtype": "^2.2.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "dev": true, + "dependencies": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/dot-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "dev": true, + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/dotenv": { + "version": "16.4.5", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz", + "integrity": "sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, + "node_modules/dotenv-expand": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-8.0.3.tgz", + "integrity": "sha512-SErOMvge0ZUyWd5B0NXMQlDkN+8r+HhVUsxgOO7IoPDOdDRD2JjExpN6y3KnFR66jsJMwSn1pqIivhU5rcJiNg==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/ejs": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz", + "integrity": "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==", + "dev": true, + "dependencies": { + "jake": "^10.8.5" + }, + "bin": { + "ejs": "bin/cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "dev": true, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/esbuild": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/filelist": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", + "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", + "dev": true, + "dependencies": { + "minimatch": "^5.0.1" + } + }, + "node_modules/filelist/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/filelist/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true, + "bin": { + "he": "bin/he" + } + }, + "node_modules/html-minifier-terser": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", + "integrity": "sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==", + "dev": true, + "dependencies": { + "camel-case": "^4.1.2", + "clean-css": "^5.2.2", + "commander": "^8.3.0", + "he": "^1.2.0", + "param-case": "^3.0.4", + "relateurl": "^0.2.7", + "terser": "^5.10.0" + }, + "bin": { + "html-minifier-terser": "cli.js" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/immutable": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.7.tgz", + "integrity": "sha512-1hqclzwYwjRDFLjcFxOM5AYkkG0rpFPpr1RLPMEuGczoS7YA8gLhy8SWXYRAA/XwfEHpfo3cw5JGioS32fnMRw==", + "dev": true + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/jake": { + "version": "10.9.2", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.9.2.tgz", + "integrity": "sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==", + "dev": true, + "dependencies": { + "async": "^3.2.3", + "chalk": "^4.0.2", + "filelist": "^1.0.4", + "minimatch": "^3.1.2" + }, + "bin": { + "jake": "bin/cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "dev": true, + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz", + "integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==", + "dev": true, + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "dev": true, + "dependencies": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "node_modules/node-html-parser": { + "version": "5.4.2", + "resolved": "https://registry.npmjs.org/node-html-parser/-/node-html-parser-5.4.2.tgz", + "integrity": "sha512-RaBPP3+51hPne/OolXxcz89iYvQvKOydaqoePpOgXcrOKZhjVIzmpKZz+Hd/RBO2/zN2q6CNJhQzucVz+u3Jyw==", + "dev": true, + "dependencies": { + "css-select": "^4.2.1", + "he": "1.2.0" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/param-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", + "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", + "dev": true, + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/pascal-case": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", + "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "dev": true, + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/pathe": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-0.2.0.tgz", + "integrity": "sha512-sTitTPYnn23esFR3RlqYBWn4c45WGeLcsKzQiUpXJAyfcWkolvlYpV8FLo7JishK946oQwMFUCHXQ9AjGPKExw==", + "dev": true + }, + "node_modules/picocolors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/postcss": { + "version": "8.4.40", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.40.tgz", + "integrity": "sha512-YF2kKIUzAofPMpfH6hOi2cGnv/HrUlfucspc7pDyvv7kGdqXrfj8SCl/t8owkEgKEuu8ZcRjSOxFxVLqwChZ2Q==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.1", + "source-map-js": "^1.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/relateurl": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", + "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rollup": { + "version": "4.19.2", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.19.2.tgz", + "integrity": "sha512-6/jgnN1svF9PjNYJ4ya3l+cqutg49vOZ4rVgsDKxdl+5gpGPnByFXWGyfH9YGx9i3nfBwSu1Iyu6vGwFFA0BdQ==", + "dev": true, + "dependencies": { + "@types/estree": "1.0.5" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.19.2", + "@rollup/rollup-android-arm64": "4.19.2", + "@rollup/rollup-darwin-arm64": "4.19.2", + "@rollup/rollup-darwin-x64": "4.19.2", + "@rollup/rollup-linux-arm-gnueabihf": "4.19.2", + "@rollup/rollup-linux-arm-musleabihf": "4.19.2", + "@rollup/rollup-linux-arm64-gnu": "4.19.2", + "@rollup/rollup-linux-arm64-musl": "4.19.2", + "@rollup/rollup-linux-powerpc64le-gnu": "4.19.2", + "@rollup/rollup-linux-riscv64-gnu": "4.19.2", + "@rollup/rollup-linux-s390x-gnu": "4.19.2", + "@rollup/rollup-linux-x64-gnu": "4.19.2", + "@rollup/rollup-linux-x64-musl": "4.19.2", + "@rollup/rollup-win32-arm64-msvc": "4.19.2", + "@rollup/rollup-win32-ia32-msvc": "4.19.2", + "@rollup/rollup-win32-x64-msvc": "4.19.2", + "fsevents": "~2.3.2" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "dev": true, + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/sass": { + "version": "1.77.8", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.77.8.tgz", + "integrity": "sha512-4UHg6prsrycW20fqLGPShtEvo/WyHRVRHwOP4DzkUrObWoWI05QBSfzU71TVB7PFaL104TwNaHpjlWXAZbQiNQ==", + "dev": true, + "dependencies": { + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0", + "source-map-js": ">=0.6.2 <2.0.0" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded": { + "version": "1.77.8", + "resolved": "https://registry.npmjs.org/sass-embedded/-/sass-embedded-1.77.8.tgz", + "integrity": "sha512-WGXA6jcaoBo5Uhw0HX/s6z/sl3zyYQ7ZOnLOJzqwpctFcFmU4L07zn51e2VSkXXFpQZFAdMZNqOGz/7h/fvcRA==", + "dev": true, + "dependencies": { + "@bufbuild/protobuf": "^1.0.0", + "buffer-builder": "^0.2.0", + "immutable": "^4.0.0", + "rxjs": "^7.4.0", + "supports-color": "^8.1.1", + "varint": "^6.0.0" + }, + "engines": { + "node": ">=16.0.0" + }, + "optionalDependencies": { + "sass-embedded-android-arm": "1.77.8", + "sass-embedded-android-arm64": "1.77.8", + "sass-embedded-android-ia32": "1.77.8", + "sass-embedded-android-x64": "1.77.8", + "sass-embedded-darwin-arm64": "1.77.8", + "sass-embedded-darwin-x64": "1.77.8", + "sass-embedded-linux-arm": "1.77.8", + "sass-embedded-linux-arm64": "1.77.8", + "sass-embedded-linux-ia32": "1.77.8", + "sass-embedded-linux-musl-arm": "1.77.8", + "sass-embedded-linux-musl-arm64": "1.77.8", + "sass-embedded-linux-musl-ia32": "1.77.8", + "sass-embedded-linux-musl-x64": "1.77.8", + "sass-embedded-linux-x64": "1.77.8", + "sass-embedded-win32-arm64": "1.77.8", + "sass-embedded-win32-ia32": "1.77.8", + "sass-embedded-win32-x64": "1.77.8" + } + }, + "node_modules/sass-embedded-android-arm": { + "version": "1.77.8", + "resolved": "https://registry.npmjs.org/sass-embedded-android-arm/-/sass-embedded-android-arm-1.77.8.tgz", + "integrity": "sha512-GpGL7xZ7V1XpFbnflib/NWbM0euRzineK0iwoo31/ntWKAXGj03iHhGzkSiOwWSFcXgsJJi3eRA5BTmBvK5Q+w==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "bin": { + "sass": "dart-sass/sass" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-android-arm64": { + "version": "1.77.8", + "resolved": "https://registry.npmjs.org/sass-embedded-android-arm64/-/sass-embedded-android-arm64-1.77.8.tgz", + "integrity": "sha512-EmWHLbEx0Zo/f/lTFzMeH2Du+/I4RmSRlEnERSUKQWVp3aBSO04QDvdxfFezgQ+2Yt/ub9WMqBpma9P/8MPsLg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "bin": { + "sass": "dart-sass/sass" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-android-ia32": { + "version": "1.77.8", + "resolved": "https://registry.npmjs.org/sass-embedded-android-ia32/-/sass-embedded-android-ia32-1.77.8.tgz", + "integrity": "sha512-+GjfJ3lDezPi4dUUyjQBxlNKXNa+XVWsExtGvVNkv1uKyaOxULJhubVo2G6QTJJU0esJdfeXf5Ca5/J0ph7+7w==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "bin": { + "sass": "dart-sass/sass" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-android-x64": { + "version": "1.77.8", + "resolved": "https://registry.npmjs.org/sass-embedded-android-x64/-/sass-embedded-android-x64-1.77.8.tgz", + "integrity": "sha512-YZbFDzGe5NhaMCygShqkeCWtzjhkWxGVunc7ULR97wmxYPQLPeVyx7XFQZc84Aj0lKAJBJS4qRZeqphMqZEJsQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "bin": { + "sass": "dart-sass/sass" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-darwin-arm64": { + "version": "1.77.8", + "resolved": "https://registry.npmjs.org/sass-embedded-darwin-arm64/-/sass-embedded-darwin-arm64-1.77.8.tgz", + "integrity": "sha512-aifgeVRNE+i43toIkDFFJc/aPLMo0PJ5s5hKb52U+oNdiJE36n65n2L8F/8z3zZRvCa6eYtFY2b7f1QXR3B0LA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "bin": { + "sass": "dart-sass/sass" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-darwin-x64": { + "version": "1.77.8", + "resolved": "https://registry.npmjs.org/sass-embedded-darwin-x64/-/sass-embedded-darwin-x64-1.77.8.tgz", + "integrity": "sha512-/VWZQtcWIOek60Zj6Sxk6HebXA1Qyyt3sD8o5qwbTgZnKitB1iEBuNunyGoAgMNeUz2PRd6rVki6hvbas9hQ6w==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "bin": { + "sass": "dart-sass/sass" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-linux-arm": { + "version": "1.77.8", + "resolved": "https://registry.npmjs.org/sass-embedded-linux-arm/-/sass-embedded-linux-arm-1.77.8.tgz", + "integrity": "sha512-2edZMB6jf0whx3T0zlgH+p131kOEmWp+I4wnKj7ZMUeokiY4Up05d10hSvb0Q63lOrSjFAWu6P5/pcYUUx8arQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "bin": { + "sass": "dart-sass/sass" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-linux-arm64": { + "version": "1.77.8", + "resolved": "https://registry.npmjs.org/sass-embedded-linux-arm64/-/sass-embedded-linux-arm64-1.77.8.tgz", + "integrity": "sha512-6iIOIZtBFa2YfMsHqOb3qake3C9d/zlKxjooKKnTSo+6g6z+CLTzMXe1bOfayb7yxeenElmFoK1k54kWD/40+g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "bin": { + "sass": "dart-sass/sass" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-linux-ia32": { + "version": "1.77.8", + "resolved": "https://registry.npmjs.org/sass-embedded-linux-ia32/-/sass-embedded-linux-ia32-1.77.8.tgz", + "integrity": "sha512-63GsFFHWN5yRLTWiSef32TM/XmjhCBx1DFhoqxmj+Yc6L9Z1h0lDHjjwdG6Sp5XTz5EmsaFKjpDgnQTP9hJX3Q==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "bin": { + "sass": "dart-sass/sass" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-linux-musl-arm": { + "version": "1.77.8", + "resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-arm/-/sass-embedded-linux-musl-arm-1.77.8.tgz", + "integrity": "sha512-nFkhSl3uu9btubm+JBW7uRglNVJ8W8dGfzVqh3fyQJKS1oyBC3vT3VOtfbT9YivXk28wXscSHpqXZwY7bUuopA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-linux-musl-arm64": { + "version": "1.77.8", + "resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-arm64/-/sass-embedded-linux-musl-arm64-1.77.8.tgz", + "integrity": "sha512-j8cgQxNWecYK+aH8ESFsyam/Q6G+9gg8eJegiRVpA9x8yk3ykfHC7UdQWwUcF22ZcuY4zegrjJx8k+thsgsOVA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-linux-musl-ia32": { + "version": "1.77.8", + "resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-ia32/-/sass-embedded-linux-musl-ia32-1.77.8.tgz", + "integrity": "sha512-oWveMe+8TFlP8WBWPna/+Ec5TV0CE+PxEutyi0ltSruBds2zxRq9dPVOqrpPcDN9QUx50vNZC0Afgch0aQEd0g==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-linux-musl-x64": { + "version": "1.77.8", + "resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-x64/-/sass-embedded-linux-musl-x64-1.77.8.tgz", + "integrity": "sha512-2NtRpMXHeFo9kaYxuZ+Ewwo39CE7BTS2JDfXkTjZTZqd8H+8KC53eBh516YQnn2oiqxSiKxm7a6pxbxGZGwXOQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-linux-x64": { + "version": "1.77.8", + "resolved": "https://registry.npmjs.org/sass-embedded-linux-x64/-/sass-embedded-linux-x64-1.77.8.tgz", + "integrity": "sha512-ND5qZLWUCpOn7LJfOf0gLSZUWhNIysY+7NZK1Ctq+pM6tpJky3JM5I1jSMplNxv5H3o8p80n0gSm+fcjsEFfjQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "bin": { + "sass": "dart-sass/sass" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-win32-arm64": { + "version": "1.77.8", + "resolved": "https://registry.npmjs.org/sass-embedded-win32-arm64/-/sass-embedded-win32-arm64-1.77.8.tgz", + "integrity": "sha512-7L8zT6xzEvTYj86MvUWnbkWYCNQP+74HvruLILmiPPE+TCgOjgdi750709BtppVJGGZSs40ZuN6mi/YQyGtwXg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "bin": { + "sass": "dart-sass/sass.bat" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-win32-ia32": { + "version": "1.77.8", + "resolved": "https://registry.npmjs.org/sass-embedded-win32-ia32/-/sass-embedded-win32-ia32-1.77.8.tgz", + "integrity": "sha512-7Buh+4bP0WyYn6XPbthkIa3M2vtcR8QIsFVg3JElVlr+8Ng19jqe0t0SwggDgbMX6AdQZC+Wj4F1BprZSok42A==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "bin": { + "sass": "dart-sass/sass.bat" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-win32-x64": { + "version": "1.77.8", + "resolved": "https://registry.npmjs.org/sass-embedded-win32-x64/-/sass-embedded-win32-x64-1.77.8.tgz", + "integrity": "sha512-rZmLIx4/LLQm+4GW39sRJW0MIlDqmyV0fkRzTmhFP5i/wVC7cuj8TUubPHw18rv2rkHFfBZKZJTCkPjCS5Z+SA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "bin": { + "sass": "dart-sass/sass.bat" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", + "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/terser": { + "version": "5.31.6", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.31.6.tgz", + "integrity": "sha512-PQ4DAriWzKj+qgehQ7LK5bQqCFNMmlhjR2PFFLuqGCpuCAauxemVBWwWOxo3UIwWQx8+Pr61Df++r76wDmkQBg==", + "dev": true, + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/tslib": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz", + "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==", + "dev": true + }, + "node_modules/typescript": { + "version": "5.5.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.5.4.tgz", + "integrity": "sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/varint": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/varint/-/varint-6.0.0.tgz", + "integrity": "sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==", + "dev": true + }, + "node_modules/vite": { + "version": "5.3.5", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.3.5.tgz", + "integrity": "sha512-MdjglKR6AQXQb9JGiS7Rc2wC6uMjcm7Go/NHNO63EwiJXfuk9PgqiP/n5IDJCziMkfw9n4Ubp7lttNwz+8ZVKA==", + "dev": true, + "dependencies": { + "esbuild": "^0.21.3", + "postcss": "^8.4.39", + "rollup": "^4.13.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vite-plugin-html": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/vite-plugin-html/-/vite-plugin-html-3.2.2.tgz", + "integrity": "sha512-vb9C9kcdzcIo/Oc3CLZVS03dL5pDlOFuhGlZYDCJ840BhWl/0nGeZWf3Qy7NlOayscY4Cm/QRgULCQkEZige5Q==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^4.2.0", + "colorette": "^2.0.16", + "connect-history-api-fallback": "^1.6.0", + "consola": "^2.15.3", + "dotenv": "^16.0.0", + "dotenv-expand": "^8.0.2", + "ejs": "^3.1.6", + "fast-glob": "^3.2.11", + "fs-extra": "^10.0.1", + "html-minifier-terser": "^6.1.0", + "node-html-parser": "^5.3.3", + "pathe": "^0.2.0" + }, + "peerDependencies": { + "vite": ">=2.0.0" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..2b926e4 --- /dev/null +++ b/package.json @@ -0,0 +1,18 @@ +{ + "name": "hbomax", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "preview": "vite preview" + }, + "devDependencies": { + "sass": "^1.77.8", + "sass-embedded": "^1.77.8", + "typescript": "^5.2.2", + "vite": "^5.3.4", + "vite-plugin-html": "^3.2.2" + } +} diff --git a/public/images/CN-Default.webp b/public/images/CN-Default.webp new file mode 100644 index 0000000..933ea75 Binary files /dev/null and b/public/images/CN-Default.webp differ diff --git a/public/images/CN-Hover.png b/public/images/CN-Hover.png new file mode 100644 index 0000000..938c539 Binary files /dev/null and b/public/images/CN-Hover.png differ diff --git a/public/images/DC-Hover.webp b/public/images/DC-Hover.webp new file mode 100644 index 0000000..34226f9 Binary files /dev/null and b/public/images/DC-Hover.webp differ diff --git a/public/images/DC_Default.webp b/public/images/DC_Default.webp new file mode 100644 index 0000000..9ccc019 Binary files /dev/null and b/public/images/DC_Default.webp differ diff --git a/public/images/MAX-Default.webp b/public/images/MAX-Default.webp new file mode 100644 index 0000000..ce14131 Binary files /dev/null and b/public/images/MAX-Default.webp differ diff --git a/public/images/MAX-Hover.webp b/public/images/MAX-Hover.webp new file mode 100644 index 0000000..1e2b7c0 Binary files /dev/null and b/public/images/MAX-Hover.webp differ diff --git a/public/images/UCL-Default.webp b/public/images/UCL-Default.webp new file mode 100644 index 0000000..7d5f87e Binary files /dev/null and b/public/images/UCL-Default.webp differ diff --git a/public/images/UCL-Hover.webp b/public/images/UCL-Hover.webp new file mode 100644 index 0000000..9220a26 Binary files /dev/null and b/public/images/UCL-Hover.webp differ diff --git a/public/images/WB-Default.webp b/public/images/WB-Default.webp new file mode 100644 index 0000000..24c9be1 Binary files /dev/null and b/public/images/WB-Default.webp differ diff --git a/public/images/WB-Hover.webp b/public/images/WB-Hover.webp new file mode 100644 index 0000000..84566a1 Binary files /dev/null and b/public/images/WB-Hover.webp differ diff --git a/public/images/background-movies-series.png b/public/images/background-movies-series.png new file mode 100644 index 0000000..cce373a Binary files /dev/null and b/public/images/background-movies-series.png differ diff --git a/public/images/cartoon-network_neutral.png b/public/images/cartoon-network_neutral.png new file mode 100644 index 0000000..38fc8ab Binary files /dev/null and b/public/images/cartoon-network_neutral.png differ diff --git a/public/images/dc.png b/public/images/dc.png new file mode 100644 index 0000000..f7c1598 Binary files /dev/null and b/public/images/dc.png differ diff --git a/public/images/fb_0.png b/public/images/fb_0.png new file mode 100644 index 0000000..36cf479 Binary files /dev/null and b/public/images/fb_0.png differ diff --git a/public/images/hbo-default_0.webp b/public/images/hbo-default_0.webp new file mode 100644 index 0000000..850f266 Binary files /dev/null and b/public/images/hbo-default_0.webp differ diff --git a/public/images/hbo-hover_0.webp b/public/images/hbo-hover_0.webp new file mode 100644 index 0000000..ff6b942 Binary files /dev/null and b/public/images/hbo-hover_0.webp differ diff --git a/public/images/hbo-logo.svg b/public/images/hbo-logo.svg new file mode 100644 index 0000000..efe5102 --- /dev/null +++ b/public/images/hbo-logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/images/hbo.png b/public/images/hbo.png new file mode 100644 index 0000000..db1d47e Binary files /dev/null and b/public/images/hbo.png differ diff --git a/public/images/instagram_0.png b/public/images/instagram_0.png new file mode 100644 index 0000000..b3eb46e Binary files /dev/null and b/public/images/instagram_0.png differ diff --git a/public/images/max_originals.png b/public/images/max_originals.png new file mode 100644 index 0000000..f5ac083 Binary files /dev/null and b/public/images/max_originals.png differ diff --git a/public/images/readme-images/cover-2.png b/public/images/readme-images/cover-2.png new file mode 100644 index 0000000..2ff8cec Binary files /dev/null and b/public/images/readme-images/cover-2.png differ diff --git a/public/images/readme-images/cover.png b/public/images/readme-images/cover.png new file mode 100644 index 0000000..85f3269 Binary files /dev/null and b/public/images/readme-images/cover.png differ diff --git a/public/images/twitter_0.png b/public/images/twitter_0.png new file mode 100644 index 0000000..9f625f1 Binary files /dev/null and b/public/images/twitter_0.png differ diff --git a/public/images/wb.png b/public/images/wb.png new file mode 100644 index 0000000..906ab49 Binary files /dev/null and b/public/images/wb.png differ diff --git a/public/images/youtube_0.png b/public/images/youtube_0.png new file mode 100644 index 0000000..9611fd1 Binary files /dev/null and b/public/images/youtube_0.png differ diff --git a/public/views/home.view.html b/public/views/home.view.html new file mode 100644 index 0000000..c6b80d2 --- /dev/null +++ b/public/views/home.view.html @@ -0,0 +1,168 @@ +
+ + + +
+
+
+
+ HBO + DC + Warner Bross + Cartoon Network + Max Originals +
+

+ Curta as melhores histórias + Para todo mundo +

+
+
+

Assinaturas a partir de

+

+ R$14,15 /mês* +

+
+ assine agora +

+ *aplicável ao plano anual com o pagamento antecipado. +

+
+
+
+
+
+

+ Conheça nossos planos e economize na assinatura trimestral ou anual com o + pagamento antecipado. +

+
+
+
+
+

Mobile

+

+ R$ 19,90 /mês +

+
+ +
    +
  • + Aproveite em smartphones e tablets, onde quiser. +
  • +
  • + Assista em 1 tela por vez. +
  • +
  • + Tenha conteúdo em resolução adaptada para cada dispositivo. +
  • +
  • + Baixe suas séries e filmes favoritos, assista onde e quando + quiser. +
  • +
+
+ + Escolher o Plano Mobile + +
+
+
+
+

Multitelas

+

+ R$ 27,90 /mês +

+
+ +
    +
  • + Aproveite em todos os seus dispositivos. +
  • +
  • + Chromecast e Airplay disponíveis. +
  • +
  • + Assista em até 3 telas ao mesmo tempo. +
  • +
  • + Tenha conteúdo em alta definição, com qualidade 4K. +
  • +
  • + Baixe suas séries e filmes favoritos, assista onde e quando + quiser. +
  • +
  • + Crie até 5 perfis diferentes. +
  • +
+
+ + Escolher o Plano Multitelas + +
+
+
+
+
+
+

Descubra novos universos

+
+
+ HBO +
+
+ Max Originals +
+
+ DC +
+
+ Warner Bross +
+
+ Cartoon Network +
+
+ UEFA Champions League +
+
+
+
+
diff --git a/public/views/not-found.view.html b/public/views/not-found.view.html new file mode 100644 index 0000000..c75bdd8 --- /dev/null +++ b/public/views/not-found.view.html @@ -0,0 +1,10 @@ +
+
+

404

+

desculpe, mas a página que você solicitou não foi implementada

+ +
+
diff --git a/public/views/signin.view.html b/public/views/signin.view.html new file mode 100644 index 0000000..70944a7 --- /dev/null +++ b/public/views/signin.view.html @@ -0,0 +1,25 @@ +
+
+

Entrar

+ + + + +
+
diff --git a/src/components/footer.component.ts b/src/components/footer.component.ts new file mode 100644 index 0000000..39e6b27 --- /dev/null +++ b/src/components/footer.component.ts @@ -0,0 +1,91 @@ +export class Footer extends HTMLElement { + rendered: boolean = false; + + constructor() { + super(); + this.attachShadow({ mode: "open" }); + this.render(); + } + + get styled(): string { + return ` + * { + padding: 0; + margin: 0; + box-sizing: border-box; + vertical-align: baseline; + list-style: none; + border: 0; + font-family: 'Raleway', sans-serif; + } + + :host { + display: none; + } + + .c-footer { + max-width: 1400px; + margin: 0 auto; + padding: var(--24px); + text-align: center; + } + + .c-footer__social { + display: flex; + align-items: center; + justify-content: center; + gap: var(--40px); + margin-top: var(--80px); + } + + ::slotted(a[slot="link"]) { + display: inline-block; + font-size: var(--14px); + color: var(--link-color); + text-transform: uppercase; + font-weight: 700; + text-decoration: none; + transition: color .5s; + letter-spacing: 2px; + } + + ::slotted(p[slot="copyright"]) { + font-size: var(--12px); + color: var(--link-color); + } + + /* Responsive */ + @media screen and (max-width: 576px) { + .c-footer__social { + gap: var(--24px); + flex-wrap: wrap; + } + } + `; + } + + get template(): string { + return ` + + + `; + } + + connectedCallback() { + this.rendered = true; + } + + render(): void { + if (this.shadowRoot !== null) this.shadowRoot.innerHTML = this.template; + } +} diff --git a/src/components/navbar.component.ts b/src/components/navbar.component.ts new file mode 100644 index 0000000..831fafe --- /dev/null +++ b/src/components/navbar.component.ts @@ -0,0 +1,101 @@ +export class NavBar extends HTMLElement { + rendered: boolean = false; + + // DOMContentLoaded + constructor () { + super(); + this.attachShadow({ mode: 'open' }); + this.render(); + } + + get styled(): string { + return ` + * { + padding: 0; + margin: 0; + box-sizing: border-box; + vertical-align: baseline; + list-style: none; + border: 0; + font-family: 'Raleway', sans-serif; + } + + img { + max-width: 100%; + } + + :host { + display: none; + position: fixed; + left: 0; + top: 0; + width: 100%; + z-index: 1; + box-shadow: 1px 1px 8px 4px rgba(0, 0, 0, 0.1); + } + + .c-navbar { + display: flex; + justify-content: space-between; + background-color: var(--nav-bg-color); + padding: var(--12px) var(--16px); + } + + ::slotted(a) { + cursor: pointer; + text-decoration: none; + display: inline-block; + color: var(--text-color); + text-transform: uppercase; + font-size: var(--12px); + font-weight: 700; + line-height: var(--14px); + letter-spacing: 2px; + } + + ::slotted(a[slot="link"]) { + border-radius: 500px; + transition: background 1s, color 1s; + } + + /* Responsive */ + @media screen and (max-width: 576px) { + .c-navbar { + flex-direction: column; + gap: var(--16px); + padding: var(--32px) var(--24px); + } + + .c-navbar__left, + .c-navbar__right { + text-align: center; + } + } + `; + } + + get template(): string { + return ` + + + `; + } + + connectedCallback(): void { + this.rendered = true; + } + + render(): void { + if (this.shadowRoot !== null) this.shadowRoot.innerHTML = this.template; + } +} \ No newline at end of file diff --git a/src/index.ts b/src/index.ts new file mode 100644 index 0000000..3daf133 --- /dev/null +++ b/src/index.ts @@ -0,0 +1,13 @@ +// 2. Styles +import './styles/index.scss'; + +// 3. NavBar +import { NavBar } from "./components/navbar.component.ts"; +customElements.define('max-navbar', NavBar); + +// 4. Footer +import { Footer } from './components/footer.component.ts'; +customElements.define('max-footer', Footer); + +// 1. Router +import './router.ts'; \ No newline at end of file diff --git a/src/interfaces/IPotentialMatch.interface.ts b/src/interfaces/IPotentialMatch.interface.ts new file mode 100644 index 0000000..ebac747 --- /dev/null +++ b/src/interfaces/IPotentialMatch.interface.ts @@ -0,0 +1,6 @@ +import IRoute from "./IRoute.interface"; + +export default interface IPotentialMatch { + route: IRoute, + isMatch: boolean +} \ No newline at end of file diff --git a/src/interfaces/IRoute.interface.ts b/src/interfaces/IRoute.interface.ts new file mode 100644 index 0000000..305c217 --- /dev/null +++ b/src/interfaces/IRoute.interface.ts @@ -0,0 +1,6 @@ +import AbstratctView from "../views/abstract.view"; + +export default interface IRoute { + path: string, + view: new () => AbstratctView +} \ No newline at end of file diff --git a/src/router.ts b/src/router.ts new file mode 100644 index 0000000..d79de52 --- /dev/null +++ b/src/router.ts @@ -0,0 +1,99 @@ +// Views +import HomeView from './views/home.view'; +import NotFoundView from './views/not-found.view'; +import SignInView from "./views/signin.view"; + +// Interfaces +import IRoute from "./interfaces/IRoute.interface"; +import IPotentialMatch from "./interfaces/IPotentialMatch.interface"; + +// Utils +import getElement from './utils/get-element.util'; +import setClasses from './utils/set-classes.util'; +import sleep from './utils/sleep.util'; + +const navigateTo = (url: string): void => { + history.pushState(null, '', url); + router(); +}; + +const router: () => Promise = async (): Promise => { + const routes: IRoute[] = [ + { path: "/", view: HomeView }, + { path: "/signin", view: SignInView }, + { path: '/404', view: NotFoundView } + ]; + + // Test each route potential match + const potentialMatches: IPotentialMatch[] = routes.map((route: IRoute): IPotentialMatch => { + return { + route: route, + isMatch: location.pathname === route.path + } + }); + + let match: IPotentialMatch | undefined = potentialMatches + .find((potentialMatch: IPotentialMatch): boolean => potentialMatch.isMatch); + + if (!match) { + match = { + route: routes[routes.length - 1], + isMatch: true + }; + } + + const root: HTMLElement = getElement('#root'); + const view = new match.route.view(); + + const init: () => Promise = async (): Promise => { + root.innerHTML = await view.getHtml(); + setClasses(['main'], true, 'is-rendered'); + + const isRendered: boolean + = getElement('main').classList.contains('is-rendered'); + + if (isRendered) { + getElement('#loader').classList.add('is-hidden'); + setClasses(['max-navbar', 'max-footer'], true, 'is-visible'); + await sleep(.3); + setClasses(['#root'], false, 'is-show'); + } + + const route: string = match.route.path; + + if (route !== '/') + getElement('.ts-assign-link').setAttribute('data-link', ''); + else + getElement('.ts-assign-link').removeAttribute('data-link'); + } + + init(); +}; + +window.addEventListener('popstate', router); + +document.addEventListener('DOMContentLoaded', (): void => { + document.body.addEventListener('click', (e: MouseEvent): void => { + // const exit: () => void = async (): Promise => { + // await sleep(.3); + // setClasses(['#root'], true, 'is-show--exit'); + // } + + const target = e.target as HTMLElement; + + if (target.matches('[data-link]')) { + e.preventDefault(); // Sempre prevenir o comportamento padrão + + const currentUrl: string = window.location.href; + const linkUrl: string = (target as HTMLAnchorElement).href; + + if (currentUrl !== linkUrl) { + //exit(); + navigateTo(linkUrl); + } + } + }); + + router(); +}); + diff --git a/src/styles/components/_button.component.scss b/src/styles/components/_button.component.scss new file mode 100644 index 0000000..52e60ee --- /dev/null +++ b/src/styles/components/_button.component.scss @@ -0,0 +1,29 @@ +.c-button { + padding: var(--16px) var(--40px); + background-color: var(--tertiary-color); + border-radius: 500px; + font-weight: 700; + color: var(--text-color); + text-transform: uppercase; + text-decoration: none; + text-align: center; + letter-spacing: 4px; + border: none; + cursor: pointer; + font-size: var(--14px); + line-height: var(--16px); +} + +.c-button.c-button--gradient { + background: var(--btn-bg-color-gradient); + outline: 3px solid transparent; + transition: background 1s, outline 1s, transform 1s; + background-size: 250%; +} + +.c-button.c-button--gradient:hover { + background-color: transparent; + background-position: 100%; + outline: 2px solid var(--secondary-color); + transform: scale(1.05); +} diff --git a/src/styles/components/_contents.component.scss b/src/styles/components/_contents.component.scss new file mode 100644 index 0000000..f987f74 --- /dev/null +++ b/src/styles/components/_contents.component.scss @@ -0,0 +1,69 @@ +.c-contents { + margin: 100px auto; + + // Context + .o-wrapper { + max-width: 1200px; + padding: var(--24px); + } +} + +.c-contents_card-container { + gap: var(--40px); + grid-template-columns: repeat(3, 1fr); + margin-top: var(--40px); +} + +.c-contents__title { + text-align: center; +} + +.c-contents__card { + border-radius: 16px; + background-repeat: no-repeat; + background-size: cover; + background-position: center; + border: 2px solid transparent; + transition: transform 0.8s, background 0.8s, border 1s; +} + +.c-contents__card:hover { + transform: scale(1.05); + border: 2px solid var(--tertiary-color); +} + +.c-contents__card:hover .c-contents__image { + opacity: 0; +} + +.c-contents__image { + width: 100%; + object-fit: cover; + object-position: center; + transition: opacity 2s; +} + +@include generate-hover-backgrounds($urls); + +// Responsive + + +@media screen and (max-width: 992px) { + .c-contents_card-container { + grid-template-columns: repeat(2, 1fr); + } +} + +@media screen and (max-width: 576px) { + .c-contents_card-container { + grid-template-columns: repeat(6, 100%); + grid-auto-flow: column; + overflow: auto hidden; + } +} + +@media (pointer: coarse) { + .c-contents__card:hover { + transform: none; + } +} diff --git a/src/styles/components/_footer.component.scss b/src/styles/components/_footer.component.scss new file mode 100644 index 0000000..2c30b65 --- /dev/null +++ b/src/styles/components/_footer.component.scss @@ -0,0 +1,23 @@ +.c-footer__link { + margin: 0 var(--14px); +} + +.c-footer__link:hover { + color: var(--text-color); +} + +.c-footer__copyright { + margin: var(--16px) 0; +} + +.c-footer__social-link { + padding: var(--8px); +} + +/* Responsive */ +@media screen and (max-width: 768px) { + .c-footer__link { + margin: 0 var(--14px) var(--16px); + line-height: calc(var(--14px) * 1.5); + } +} \ No newline at end of file diff --git a/src/styles/components/_header.component.scss b/src/styles/components/_header.component.scss new file mode 100644 index 0000000..1b7b960 --- /dev/null +++ b/src/styles/components/_header.component.scss @@ -0,0 +1,135 @@ +.c-header { + margin-top: var(--54px); + padding: 6.25rem 0 18.75rem; + background-image: var(--header-bg-color); + background-size: 400% 400%; + animation: gradient 10s ease infinite alternate; + position: relative; + + &::after { + content: ''; + width: 100%; + height: 15.625rem; + position: absolute; + bottom: 0; + background-image: linear-gradient(to top,var(--primary-color), transparent); + } + + // Context + .c-header__channels { + gap: var(--24px); + } + + .o-text-small { + max-width: 18.75rem; + text-align: center; + } +} + +.c-header__content { + padding: 0 var(--40px); + flex-direction: column; + gap: var(--40px); + align-items: center; +} + +.c-header__channels { + justify-content: center; +} + +.c-header__channel { + object-fit: contain; +} + +.c-header__title { + text-transform: uppercase; + text-align: center; + margin: 0; +} + +.c-header__title--light { + display: block; + font-weight: lighter; + font-size: var(--32px); +} + +.c-divider { + width: 70%; + max-width: 700px; + height: 5px; + background: var(--divider-bg-color); +} + +.c-offer { + font-size: var(--20px); + text-align: center; +} + +.c-offer__price { + font-size: var(--40px); + font-weight: 700; +} + +.c-header__button { + font-size: var(--16px); + line-height: calc(var(--18px)); + animation: wiggle 2.2s linear infinite; + + &:hover { + animation: pause; + } +} + +// Animations +@keyframes gradient { + 0%, 100% { + background-position: 0% 50%; + } 50% { + background-position: 100% 50%; + } +} + +@keyframes wiggle { + 0%, + 10% { + transform: rotate(0); + } + 15% { + transform: rotate(-15deg); + } + 20% { + transform: rotate(10deg); + } + 25% { + transform: rotate(-10deg); + } + 30% { + transform: rotate(10deg); + } + 35% { + transform: rotate(-10deg); + } + 40%, + 100% { + transform: rotate(0); + } +} + +// Responsive +@media screen and (max-width: 576px) { + .c-header { + margin-top: 134px; + background-size: 400% 400%; + animation: gradient 8s ease infinite alternate; + } + + .c-header__channels { + flex-wrap: wrap; + } +} + +@media screen and (max-width: 334px) { + .c-header { + margin-top: 164px; + } +} \ No newline at end of file diff --git a/src/styles/components/_info.component.scss b/src/styles/components/_info.component.scss new file mode 100644 index 0000000..ca2a260 --- /dev/null +++ b/src/styles/components/_info.component.scss @@ -0,0 +1,55 @@ +.c-info { + text-align: center; + flex-direction: column; + gap: var(--24px); + padding: var(--40px) 0; +} + +.c-info__title { + margin: 0; + font-size: 200px; + font-weight: 700; +} + +.c-info__text { + font-weight: 700; + font-size: var(--20px); + text-transform: uppercase; + line-height: calc(var(--20px) * 1.5); +} + +.c-info__actions { + margin-top: var(--24px); +} + +.c-info__button { + display: inline-block; +} + +.c-info__link { + color: var(--link-color); + text-decoration: none; + font-weight: bold; + padding: var(--16px) var(--24px); + display: inline-block; + text-transform: uppercase; + letter-spacing: 2px; + font-size: var(--14px); +} + +// Responsive +@media screen and (max-width: 576px) { + .c-info__title { + font-size: 100px; + } + + .c-info__text { + font-size: var(--16px); + line-height: calc(var(--16px) * 1.5); + } + + .c-info__link { + font-size: var(--14px); + margin-top: var(--8px); + } +} \ No newline at end of file diff --git a/src/styles/components/_loader.component.scss b/src/styles/components/_loader.component.scss new file mode 100644 index 0000000..2151f6c --- /dev/null +++ b/src/styles/components/_loader.component.scss @@ -0,0 +1,17 @@ +.c-loader { + width: var(--48px); + height: var(--48px); + border: var(--8px) solid var(--loader-bg-color); + border-top: var(--8px) solid var(--text-color); + border-radius: 50%; + animation: spin 1s linear infinite; +} + +// Animation +@keyframes spin { + 0% { + transform: rotate(0deg); + } 100% { + transform: rotate(360deg); + } +} diff --git a/src/styles/components/_login.component.scss b/src/styles/components/_login.component.scss new file mode 100644 index 0000000..5dd8dd2 --- /dev/null +++ b/src/styles/components/_login.component.scss @@ -0,0 +1,65 @@ +.c-login { + width: 100%; + max-width: 800px; + background-color: var(--form-bg-color); + border-radius: var(--8px); + flex-direction: column; + gap: var(--24px); + padding: var(--40px); +} + +.c-login__title { + margin: 0; + letter-spacing: 2px; + text-transform: uppercase; + font-size: var(--20px); + margin-bottom: var(--24px); + text-align: center; +} + +.c-login__label { + text-align: left; +} + +.c-login__field { + background: var(--form-field-bg-color); + border: var(--form-field-border); + border-radius: var(--8px); + color: var(--text-color); + padding: var(--16px); + font-size: var(--16px); + + &::placeholder { + color: var(--form-field-placeholder); + } + + &:invalid { + border-color: var(--form-field-error); + } +} + +.c-login__actions { + margin-top: var(--24px); + text-align: left; +} + +.c-login__button { + display: inline-block; +} + +.c-login__link { + color: var(--link-color); + text-decoration: none; + font-weight: bold; + padding: var(--16px) var(--24px); + display: inline-block; + font-size: var(--14px); +} + +// Responsive +@media screen and (max-width: 496px) { + .c-login__link { + padding-left: var(--12px); + margin-top: var(--8px); + } +} diff --git a/src/styles/components/_navbar.component.scss b/src/styles/components/_navbar.component.scss new file mode 100644 index 0000000..50bc544 --- /dev/null +++ b/src/styles/components/_navbar.component.scss @@ -0,0 +1,34 @@ +.c-navbar__logo { + display: inline-block; +} + +.c-navbar__img { + height: var(--26px); + pointer-events: none; +} + +.c-navbar__link { + padding: var(--8px) var(--26px); + +} + +.c-navbar__link[slot="link"] { + background-color: var(--tertiary-color); + margin-right: var(--24px); +} + +.c-navbar__link[slot="link"]:hover { + background-color: var(--btn-link-bg-color); + color: var(--btn-link-color); +} + +// Responsive +@media screen and (max-width: 576px) { + .c-navbar__link[slot="link"] { + margin-right: 0; + } + + .c-navbar__img { + height: var(--20px); + } +} diff --git a/src/styles/components/_root.component.scss b/src/styles/components/_root.component.scss new file mode 100644 index 0000000..e0ae4e8 --- /dev/null +++ b/src/styles/components/_root.component.scss @@ -0,0 +1,16 @@ +#root { + visibility: hidden; + transform: translateY(-25px); + opacity: 0; + transition: transform .3s ease, opacity .3s ease; +} + +#root.is-show { + visibility: visible; + transform: translateY(0); + opacity: 1; +} + +#root.is-show--exit { + transform: translateY(25px); +} \ No newline at end of file diff --git a/src/styles/components/_subscription.component.scss b/src/styles/components/_subscription.component.scss new file mode 100644 index 0000000..7a0b2c7 --- /dev/null +++ b/src/styles/components/_subscription.component.scss @@ -0,0 +1,127 @@ +.c-subscription { + background-image: url("/images/background-movies-series.png"); + background-size: cover; + + // Context + .o-wrapper { + max-width: 1200px; + padding: var(--24px); + } +} + +.c-subscription__title { + text-align: center; +} + +.c-subscription__plans { + justify-content: space-around; + gap: var(--80px); + margin: var(--40px) 0; + perspective: 2000px; + perspective-origin: top; +} + +.c-subscription__card { + padding: var(--40px) var(--60px); + background: var(--card-bg-color); + border-radius: var(--8px); + min-height: 600px; + justify-content: space-between; + flex-direction: column; + transition: transform 1s ease-in-out; +} + +.c-subscription__plan { + display: flex; + justify-content: space-between; + font-size: var(--20px); + margin-bottom: 16px; +} + +.c-subscription__plans:has(.c-subscription__card:nth-child(1):hover) + .c-subscription__card:nth-child(2) { + transform: rotateY(-45deg); +} + +.c-subscription__plans:has(.c-subscription__card:nth-child(2):hover) + .c-subscription__card:nth-child(1) { + transform: rotateY(45deg); +} + +.c-subscription__description { + text-align: left; + list-style: none; + font-size: var(--20px); + margin-bottom: var(--14px); + padding-left: var(--14px); + line-height: calc(var(--20px) * 1.6); +} + +.c-subscription__price { + font-size: var(--32px); + font-family: "Raleway", sans-serif; + color: var(--secondary-color); + font-weight: 700; +} + +.subscription__price .o-text-small { + color: var(--text-color); +} + +.c-subscription__description::marker { + content: "+"; + font-size: var(--32px); + margin: 0 var(--8px) 0 0; +} + +// Responsive +@media screen and (max-width: 1200px) { + .c-subscription__plans { + flex-direction: column; + align-items: center; + gap: var(--40px); + } + + .c-subscription__card { + max-width: 600px; + } +} + +@media screen and (max-width: 576px) { + .c-subscription__card { + padding: var(--40px); + } + + .c-subscription__plan { + flex-direction: column; + align-items: center; + } + + .c-subscription__price { + font-size: var(--24px); + } + + .c-subscription__description { + font-size: var(--16px); + line-height: calc(var(--16px) * 1.5); + } + + .c-subscription__description::marker { + font-size: var(--24px); + } +} + +@media screen and (max-width: 376px) { + .c-subscription__card { + padding: var(--32px); + } +} + +@media (pointer: coarse) { + .c-subscription__plans:has(.c-subscription__card:nth-child(1):hover) + .c-subscription__card:nth-child(2), + .c-subscription__plans:has(.c-subscription__card:nth-child(2):hover) + .c-subscription__card:nth-child(1) { + transform: none; + } +} \ No newline at end of file diff --git a/src/styles/elements/_tags.elements.scss b/src/styles/elements/_tags.elements.scss new file mode 100644 index 0000000..d833610 --- /dev/null +++ b/src/styles/elements/_tags.elements.scss @@ -0,0 +1,18 @@ +body { + background-color: var(--primary-color); + color: var(--text-color); +} + +img { + max-width: 100%; +} + +h1 { + font-size: var(--48px); + line-height: calc(var(--48px) + 20); +} + +h2 { + font-size: var(--32px); + line-height: calc(var(--32px) + 20); +} \ No newline at end of file diff --git a/src/styles/generic/_reset.generic.scss b/src/styles/generic/_reset.generic.scss new file mode 100644 index 0000000..9ef88a0 --- /dev/null +++ b/src/styles/generic/_reset.generic.scss @@ -0,0 +1,22 @@ +* { + padding: 0; + margin: 0; + box-sizing: border-box; + vertical-align: baseline; + list-style: none; + border: 0; + font-family: "Raleway", sans-serif; +} + +::-webkit-scrollbar { + width: 8px; +} + +::-webkit-scrollbar-thumb { + background: var(--tertiary-color); + border-radius: 10px; +} + +::-webkit-scrollbar-thumb:hover { + background: var(--secondary-color); +} \ No newline at end of file diff --git a/src/styles/generic/~normalize.generic.scss b/src/styles/generic/~normalize.generic.scss new file mode 100644 index 0000000..0033bbb --- /dev/null +++ b/src/styles/generic/~normalize.generic.scss @@ -0,0 +1 @@ +@import 'https://cdnjs.cloudflare.com/ajax/libs/normalize/8.0.1/normalize.min.css'; \ No newline at end of file diff --git a/src/styles/imports/_components.import.scss b/src/styles/imports/_components.import.scss new file mode 100644 index 0000000..3bb94ec --- /dev/null +++ b/src/styles/imports/_components.import.scss @@ -0,0 +1,5 @@ +@import '../components/navbar.component.scss'; +@import '../components/footer.component.scss'; +@import '../components/button.component.scss'; +@import '../components/loader.component'; +@import '../components/root.component'; diff --git a/src/styles/imports/_elements.import.scss b/src/styles/imports/_elements.import.scss new file mode 100644 index 0000000..df9ace1 --- /dev/null +++ b/src/styles/imports/_elements.import.scss @@ -0,0 +1 @@ +@import '../elements/tags.elements.scss'; \ No newline at end of file diff --git a/src/styles/imports/_generic.import.scss b/src/styles/imports/_generic.import.scss new file mode 100644 index 0000000..f03e42f --- /dev/null +++ b/src/styles/imports/_generic.import.scss @@ -0,0 +1,2 @@ +@import '../generic/reset.generic.scss'; +@import '../generic/~normalize.generic.scss'; \ No newline at end of file diff --git a/src/styles/imports/_objects.import.scss b/src/styles/imports/_objects.import.scss new file mode 100644 index 0000000..8a87a1a --- /dev/null +++ b/src/styles/imports/_objects.import.scss @@ -0,0 +1,3 @@ +@import '../objects/containers.object.scss'; +@import '../objects/text.object.scss'; +@import '../objects/wrapper.object.scss'; \ No newline at end of file diff --git a/src/styles/imports/_settings.import.scss b/src/styles/imports/_settings.import.scss new file mode 100644 index 0000000..41b49c0 --- /dev/null +++ b/src/styles/imports/_settings.import.scss @@ -0,0 +1,2 @@ +@import "../settings/variables.setting.scss"; +@import "../settings/fonts.setting.scss"; \ No newline at end of file diff --git a/src/styles/imports/_states.import.scss b/src/styles/imports/_states.import.scss new file mode 100644 index 0000000..50ee021 --- /dev/null +++ b/src/styles/imports/_states.import.scss @@ -0,0 +1 @@ +@import '../states/visual.state'; \ No newline at end of file diff --git a/src/styles/imports/_tools.import.scss b/src/styles/imports/_tools.import.scss new file mode 100644 index 0000000..783ff3d --- /dev/null +++ b/src/styles/imports/_tools.import.scss @@ -0,0 +1 @@ +@import '../tools/contents.tool.scss'; \ No newline at end of file diff --git a/src/styles/imports/_views.import.scss b/src/styles/imports/_views.import.scss new file mode 100644 index 0000000..0d948bb --- /dev/null +++ b/src/styles/imports/_views.import.scss @@ -0,0 +1,3 @@ +@import '../views/home.view.scss'; +@import '../views/signin.view.scss'; +@import '../views/not-found.view.scss'; \ No newline at end of file diff --git a/src/styles/index.scss b/src/styles/index.scss new file mode 100644 index 0000000..eb02e03 --- /dev/null +++ b/src/styles/index.scss @@ -0,0 +1,26 @@ +@charset 'UTF-8'; + +// 1. Settings +@import './imports/settings.import.scss'; + +// 2. Tools +@import './imports/tools.import.scss'; + +// 3. Generic +@import './imports/generic.import.scss'; + +// 4. Elements +@import './imports/elements.import.scss'; + +// 5. Objects +@import './imports/objects.import.scss'; + +// 6. Components +@import './imports/components.import.scss'; + +// 7. States +@import './imports/states.import'; + + +// PAGES // +@import './imports/views.import'; diff --git a/src/styles/objects/_containers.object.scss b/src/styles/objects/_containers.object.scss new file mode 100644 index 0000000..a1a163a --- /dev/null +++ b/src/styles/objects/_containers.object.scss @@ -0,0 +1,16 @@ +.o-flex-container { + display: flex; + gap: 1rem; +} + +.o-grid-container { + display: grid; + gap: 1rem; +} + +.o-loader-container { + flex-direction: column; + justify-content: center; + align-items: center; + height: 100vh; +} \ No newline at end of file diff --git a/src/styles/objects/_text.object.scss b/src/styles/objects/_text.object.scss new file mode 100644 index 0000000..c2e77fd --- /dev/null +++ b/src/styles/objects/_text.object.scss @@ -0,0 +1,4 @@ +.o-text-small { + font-size: 1rem; + font-weight: 300; +} diff --git a/src/styles/objects/_wrapper.object.scss b/src/styles/objects/_wrapper.object.scss new file mode 100644 index 0000000..1902858 --- /dev/null +++ b/src/styles/objects/_wrapper.object.scss @@ -0,0 +1,4 @@ +.o-wrapper { + max-width: 1400px; + margin: 0 auto; +} \ No newline at end of file diff --git a/src/styles/settings/_fonts.setting.scss b/src/styles/settings/_fonts.setting.scss new file mode 100644 index 0000000..5aa39c8 --- /dev/null +++ b/src/styles/settings/_fonts.setting.scss @@ -0,0 +1,2 @@ +@import url("https://fonts.googleapis.com/css2?family=Raleway:wght@300;400;500;600;700&display=swap"); +@import url("https://fonts.googleapis.com/css2?family=Quicksand:wght@300;400;700&display=swap"); \ No newline at end of file diff --git a/src/styles/settings/_variables.setting.scss b/src/styles/settings/_variables.setting.scss new file mode 100644 index 0000000..71dafa0 --- /dev/null +++ b/src/styles/settings/_variables.setting.scss @@ -0,0 +1,48 @@ +:root { + --primary-color: #020228; + --secondary-color: #ff00e5; + --tertiary-color: #b535f6; + --btn-bg-color-gradient: linear-gradient( + 45deg, + #9b34ef 0%, + #490cb0 20%, + transparent 50% + ); + + --loader-bg-color: rgba(128, 128, 128, 0.25); + --btn-link-bg-color: #fff; + --btn-link-color: #000; + --card-bg-color: linear-gradient(0deg, transparent, #3b1e63); + --divider-bg-color: linear-gradient( + 90deg, + #5516ba, + rgba(255, 0, 229, 0.5) 80% + ); + --nav-bg-color: rgba(0, 0, 0, 0.3); + --header-bg-color: linear-gradient(-45deg, #56125b, #0f0f10, #271e6e); + --text-color: #fff; + --link-color: #9e86ff; + --form-bg-color: rgba(211, 211, 211, 0.06); + --form-field-bg-color: rgba(0, 0, 0, 0.2); + --form-field-border: 1px solid rgba(255, 255, 255, 0.7); + --form-field-placeholder: rgba(255, 255, 255, 0.7); + --form-field-error: rgb(255, 76, 76); + + --8px: .5rem; + --12px: .75rem; + --14px: .875rem; + --16px: 1rem; + --18px: 1.125rem; + --20px: 1.25rem; + --24px: 1.5rem; + --26px: 1.625rem; + --32px: 2rem; + --36px: 2.25rem; + --40px: 2.5rem; + --48px: 3rem; + --54px: 3.375rem; + --60px: 3.75rem; + --80px: 5rem; + + scroll-behavior: smooth; +} diff --git a/src/styles/states/_visual.state.scss b/src/styles/states/_visual.state.scss new file mode 100644 index 0000000..c3284c6 --- /dev/null +++ b/src/styles/states/_visual.state.scss @@ -0,0 +1,7 @@ +.is-hidden { + display: none; +} + +.is-visible { + display: block; +} \ No newline at end of file diff --git a/src/styles/tools/_contents.tool.scss b/src/styles/tools/_contents.tool.scss new file mode 100644 index 0000000..7f9847c --- /dev/null +++ b/src/styles/tools/_contents.tool.scss @@ -0,0 +1,21 @@ +$urls: ( + '/images/hbo-hover_0.webp', + '/images/MAX-Hover.webp', + '/images/DC-Hover.webp', + '/images/WB-Hover.webp', + '/images/CN-Hover.png', + '/images/UCL-Hover.webp' +); + +@mixin generate-hover-backgrounds($urls) { + $counter: 1; + + @each $url in $urls { + .c-contents__card:nth-child(#{$counter}):hover { + cursor: pointer; + background-image: url(#{$url}); + } + + $counter: $counter + 1; + } +} diff --git a/src/styles/views/home.view.scss b/src/styles/views/home.view.scss new file mode 100644 index 0000000..aa45520 --- /dev/null +++ b/src/styles/views/home.view.scss @@ -0,0 +1,3 @@ +@import '../components/header.component'; +@import '../components/subscription.component'; +@import '../components/contents.component'; diff --git a/src/styles/views/not-found.view.scss b/src/styles/views/not-found.view.scss new file mode 100644 index 0000000..ab2ffda --- /dev/null +++ b/src/styles/views/not-found.view.scss @@ -0,0 +1,21 @@ +@import '../components/info.component'; + +.c-not-found-navbar { + position: relative; +} + +.c-not-found-main { + height: 50vh; + justify-content: center; + align-items: flex-end; + padding: var(--24px); +} + +// Responsive +@media screen and (max-width: 576px) { + .c-not-found-main { + margin-top: var(--40px); + height: auto; + } +} + diff --git a/src/styles/views/signin.view.scss b/src/styles/views/signin.view.scss new file mode 100644 index 0000000..fb1c150 --- /dev/null +++ b/src/styles/views/signin.view.scss @@ -0,0 +1,35 @@ +@import '../components/login.component'; + +.signin { + background-image: url("/images/background-movies-series.png"); + background-size: cover; + background-repeat: no-repeat; + height: 100vh; +} + +.c-signin-navbar { + position: relative; +} + +.c-signin-main { + justify-content: center; + align-items: center; + font-family: "Quicksand", cursive; + width: 100%; + height: 70vh; + padding: var(--24px); +} + +// Responsive +@media screen and (max-width: 768px) { + .c-signin-main { + height: 50vh; + } +} + +@media screen and (max-width: 596px) { + .c-signin-main { + margin-top: var(--40px); + height: auto; + } +} diff --git a/src/utils/get-element.util.ts b/src/utils/get-element.util.ts new file mode 100644 index 0000000..c7505a7 --- /dev/null +++ b/src/utils/get-element.util.ts @@ -0,0 +1,4 @@ +export default (refElement: string): any => { + const element: HTMLElement | null = document.querySelector(refElement); + if (element) return element; +}; diff --git a/src/utils/set-classes.util.ts b/src/utils/set-classes.util.ts new file mode 100644 index 0000000..02e52ec --- /dev/null +++ b/src/utils/set-classes.util.ts @@ -0,0 +1,37 @@ +import getElement from './get-element.util'; + +export default ( + refElement: string[], + reusePresentClasses?: boolean, ...classes: string[] +): void => { + const setClasses = (scElement: string): void => { + const element: HTMLElement | null = getElement(scElement); + + if (element) { + if (classes.length > 0 && classes[0] !== '') { + if (reusePresentClasses) { + classes.forEach((c: string): void => { + if (!element.classList.contains(c)) { + element.classList.add(c); + } + }); + } else { + element.setAttribute('class', classes.join(' ')); + } + } else { + element.removeAttribute('class'); + } + } else { + console.error(`Elemento com referência "${scElement}" não encontrado.`); + } + }; + + if (refElement.length > 1) { + refElement.forEach((element: string): void => { + setClasses(element); + }); + } else { + setClasses(refElement[0]); + } +}; + diff --git a/src/utils/sleep.util.ts b/src/utils/sleep.util.ts new file mode 100644 index 0000000..e8e938d --- /dev/null +++ b/src/utils/sleep.util.ts @@ -0,0 +1,7 @@ +export default (sc: number): Promise => { + return new Promise( + (resolve: ( + value: void | PromiseLike) => void + ): number => setTimeout(resolve, sc * 1000) + ); +} \ No newline at end of file diff --git a/src/views/abstract.view.ts b/src/views/abstract.view.ts new file mode 100644 index 0000000..3740735 --- /dev/null +++ b/src/views/abstract.view.ts @@ -0,0 +1,15 @@ +import setClasses from "../utils/set-classes.util"; + +export default class AbstratctView { + constructor() { + setClasses(['body', 'max-navbar', '#root', 'max-footer'], false, ''); + } + + setTitle(title: string): void { + document.title = title; + } + + async getHtml(): Promise { + return ''; + } +} diff --git a/src/views/home.view.ts b/src/views/home.view.ts new file mode 100644 index 0000000..66d6abd --- /dev/null +++ b/src/views/home.view.ts @@ -0,0 +1,16 @@ +import AbstratctView from "./abstract.view.ts"; + +export default class HomeView extends AbstratctView { + constructor() { + super(); + this.setTitle('HBO Max'); + } + + async getHtml(): Promise { + const url: string = '/views/home.view.html'; + const resquest: string = await fetch(url) + .then((data: Response): Promise => data.text()) + + return resquest; + } +} diff --git a/src/views/not-found.view.ts b/src/views/not-found.view.ts new file mode 100644 index 0000000..42c5711 --- /dev/null +++ b/src/views/not-found.view.ts @@ -0,0 +1,18 @@ +import setClasses from "../utils/set-classes.util"; +import AbstratctView from "./abstract.view"; + +export default class NotFoundView extends AbstratctView { + constructor() { + super(); + this.setTitle('Error 404 Page Not Found'); + setClasses(['max-navbar'], false, 'c-not-found-navbar'); + } + + async getHtml(): Promise { + const url: string = '/views/not-found.view.html' + const resquest: string = await fetch(url) + .then((data: Response): Promise => data.text()); + + return resquest; + } +} diff --git a/src/views/signin.view.ts b/src/views/signin.view.ts new file mode 100644 index 0000000..ea83a2b --- /dev/null +++ b/src/views/signin.view.ts @@ -0,0 +1,19 @@ +import setClasses from "../utils/set-classes.util.ts"; +import AbstratctView from "./abstract.view.ts"; + +export default class SignInView extends AbstratctView { + constructor() { + super(); + this.setTitle('Entrar HBO Max'); + setClasses(['body'], false, 'signin'); + setClasses(['max-navbar'], false, 'c-signin-navbar'); + } + + async getHtml(): Promise { + const url: string = '/views/signin.view.html'; + const resquest: string = await fetch(url) + .then((data: Response): Promise => data.text()); + + return resquest; + } +} diff --git a/src/vite-env.d.ts b/src/vite-env.d.ts new file mode 100644 index 0000000..11f02fe --- /dev/null +++ b/src/vite-env.d.ts @@ -0,0 +1 @@ +/// diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..7bb0db2 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,24 @@ +{ + "compilerOptions": { + "target": "ES2020", + "useDefineForClassFields": true, + "module": "ESNext", + "lib": ["ES2020", "DOM", "DOM.Iterable"], + "skipLibCheck": true, + + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "resolveJsonModule": true, + "isolatedModules": true, + "moduleDetection": "force", + "noEmit": true, + + /* Linting */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true + }, + "include": ["src"] +}