commit 9815d65404c377d3a342e13081122235643d269e Author: dk Date: Fri Jan 16 17:44:35 2026 +0200 Initial commit diff --git a/.env.production b/.env.production new file mode 100644 index 0000000..02269f0 --- /dev/null +++ b/.env.production @@ -0,0 +1 @@ +DISABLE_ESLINT_PLUGIN=true diff --git a/.gitea/workflows/build.yml b/.gitea/workflows/build.yml new file mode 100644 index 0000000..8687ee0 --- /dev/null +++ b/.gitea/workflows/build.yml @@ -0,0 +1,62 @@ +name: Build + +on: + workflow_dispatch: + inputs: + branch: + description: 'Branch to build' + required: true + default: 'main' + +permissions: + contents: read + +jobs: + build: + runs-on: ubuntu-latest + timeout-minutes: 10 + + steps: + - name: Checkout branch + uses: actions/checkout@v3 + with: + ref: ${{ gitea.event.inputs.branch }} + + - name: Setup Node.js + uses: actions/setup-node@v3 + with: + node-version: 24 + + - name: Install dependencies + run: | + set -euo pipefail + npm install --no-audit --silent 2>&1 | tee install.log + env: + NODE_OPTIONS: '--max-old-space-size=4096' + + - name: Build (react-scripts build) + env: + CI: 'false' + NODE_OPTIONS: '--max-old-space-size=4096' + run: | + set -euo pipefail + npm run build 2>&1 | tee build.log + timeout-minutes: 5 + + - name: Verify build folder exists + run: test -d build || (echo "No build folder. Check build logs above."; exit 1) + + - name: Upload logs on failure + if: failure() + uses: actions/upload-artifact@v3 + with: + name: build-logs + path: | + install.log + build.log + npm-debug.log* + if-no-files-found: ignore + + - name: Build completed + if: success() + run: echo "Build completed successfully" diff --git a/package.json b/package.json new file mode 100644 index 0000000..9e2fe71 --- /dev/null +++ b/package.json @@ -0,0 +1,41 @@ +{ + "name": "claude-security-check", + "version": "0.1.0", + "private": true, + "dependencies": { + "react": "^18.3.1", + "react-dom": "^18.3.1", + "react-scripts": "^5.0.1", + "framer-motion": "^11.0.0", + "lucide-react": "^0.400.0" + }, + "devDependencies": { + "tailwindcss": "^3.4.0", + "postcss": "^8.4.0", + "autoprefixer": "^10.4.0" + }, + "scripts": { + "start": "react-scripts start", + "build": "react-scripts build", + "test": "react-scripts test", + "eject": "react-scripts eject" + }, + "eslintConfig": { + "extends": [ + "react-app", + "react-app/jest" + ] + }, + "browserslist": { + "production": [ + ">0.2%", + "not dead", + "not op_mini all" + ], + "development": [ + "last 1 chrome version", + "last 1 firefox version", + "last 1 safari version" + ] + } +} \ No newline at end of file diff --git a/postcss.config.js b/postcss.config.js new file mode 100644 index 0000000..96bb01e --- /dev/null +++ b/postcss.config.js @@ -0,0 +1,6 @@ +module.exports = { + plugins: { + tailwindcss: {}, + autoprefixer: {}, + }, +} \ No newline at end of file diff --git a/public/images/favicon-1768578230024.ico b/public/images/favicon-1768578230024.ico new file mode 100644 index 0000000..a6807bf --- /dev/null +++ b/public/images/favicon-1768578230024.ico @@ -0,0 +1 @@ +AAABAAMAMDAAAAEAIACoJQAANgAAACAgAAABACAAqBAAAN4lAAAQEAAAAQAgAGgEAACGNgAAKAAAADAAAABgAAAAAQAgAAAAAAAAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFWA1QZWd9iLV3bYill63hcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFh42YZXd9n/V3fZ/1d32LkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFd42eBXd9n/V3fZ/1Z32eMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVVX/A1h22E5VddUYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFd32btXd9n/V3fZ/1d32fkAAP8BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAElt2wdYddk9VXjXMwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAV3fZn1d32f9XdtniVXfdHgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFh32INXd9n/V3fZ/1d32f9RedcTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFd22ZtXd9n/V3fZ/1h22m4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVnbaiFd32f9Xd9n/V3fZ2Vl63hcAAAAAAAAAAAAAAAAAAAAAAAAAAFZ3201Xd9n/V3fZ/1d32f9Zd9srAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVnjaU1d32f9Xd9n/V3fZ/1Z32nwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAW4DbDld32d5Xd9n/V3fZ/1d32dBQcN8QAAAAAAAAAAAAAAAAAAAAAFx61hlXd9n/V3fZ/1d32f9YdtlDAAAAAAAAAAAAAAAAAAAAAAAAAABbdtscV3fZ7Vd32f9Xd9n/V3fZ/1h22V0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFd12zJXd9n2V3fZ/1d32f9XeNnCZmbMBQAAAAAAAAAAAAAAAAAAAABXd9nkV3fZ/1d32f9XdthbAAAAAAAAAAAAAAAAAAAAAAAA/wFXd9m+V3fZ/1d32f9Xd9n/V3fZ1mCA3wgAAAAAAAAAAAAAAABWeNhoVnjZcwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYeNpgV3fZ/1d32f9Xd9n/V3fZhwAAAAAAAAAAAAAAAAAAAABWeNqxV3fZ/1d32f9WeNlzAAAAAAAAAAAAAAAAAAAAAFd32GlXd9n/V3fZ/1d32f9Xd9n8V3bbOAAAAAAAAAAAVXfdD1Z32qtXd9n/V3fZ7QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAV3falld32f9Xd9n/V3fZ/VZ310cAAAAAAAAAAAAAAABYdth9V3fZ/1d32f9Wd9iLAAAAAAAAAAAAAAAAVXfdHld32fJXd9n/V3fZ/1d32f9XdtiKAAAAAAAAAABXddsyV3fZ21d32f9Xd9n/VnfafAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFh22GNWd9muV3fZjVd12zIAAAAAAAAAAAAAAAAAAAAAVYDVBlh22MZXd9n/V3fZ/1Z32elcetYZAAAAAAAAAABWedlKV3fZ/1d32f9XeNmiAAAAAAAAAAAAAAAAVnbZt1d32f9Xd9n/V3fZ/1d32ddggN8IAAAAAFd42WRXd9n3V3fZ/1d32f5YeNlxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVVX/A1d32f1Xd9n/V3fZ/1d32ftWdtqIYIDfCAAAAAAAAAAAAAAAAFV72RtXd9noV3fZ/1d32f9Xd9m8gID/AgAAAABddNwWV3fZ/1d32f9Wd9m6AAAAAAAAAABXd9leV3fZ/1d32f9Xd9n/V3fZ/Fd22zgAAP8BV3fZh1d32f9Xd9n/V3fZ/Fd22mEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFd32dJXd9n/V3fZ/1d32f9Xd9n/V3fZ2FV32TwAAAAAAAAAAAAAAABWd9o+V3fZ+1d32f9Xd9n/VnfafAAAAAAAAAAAV3fZ6ld32f9Xd9nSAAAAAFV33Q9Xd9noV3fZ/1d32f9Xd9n/VnfYi1Vx4wlXd9qqV3fZ/1d32f9Xd9n4V3baUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFVx1RJXd9mnV3fZ/1d32f9Xd9n/V3fZ/1d32f1XeNmTVYDVDAAAAAAAAAAAWHjYd1d32f9Xd9n/V3fZ+1V32TwAAAAAWHfZw1d32f9Xd9nqAAAAAFd32Y1Xd9n/V3fZ/1d32f9Xd9nXVXTYIVh32clXd9n/V3fZ/1d32fNWeNpEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWHjZV1d32e1Xd9n/V3fZ/1d32f9Xd9n/V3fZ31d420YAAAAAAAD/AVd32LJXd9n/V3fZ/1d32OFaeNIRWHfanVd32f9Xd9n9VXfXLVd32fpXd9n/V3fZ/1d32f9WeNhoV3fY4Vd32f9Xd9n/V3fZ6FV41zMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFh22BpWd9qrV3fZ/1d32f9Xd9n/V3fZ/1d32f5Xd9ieWnjSEVp40hFXd9nfV3fZ/1d32f9Xd9mtVnjZc1d32f9Xd9n/V3fZ31d32f9Xd9n/V3fZ/1d32f9Xd9n7V3fZ/1d32f9Xd9ncV3XbIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVXfZPFd32cpXd9n/V3fZ/1d32f9Xd9n/VnfZ5lh42VFXd9kvV3fZ8ld32f9Xd9n/WHfZqVd32f9Xd9n/V3fZ/1d32f9Xd9n/V3fZ/1d32f9Xd9n/V3fZ/1h32sxZet4XAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUHDfEFh32ktYeNmGV3bZmVd51yYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wFXdthbV3fY4Vd32f9Xd9n/V3fZ/1d32f9Xd9qqV3baYVd32fxXd9n/V3fZ/1d32f9Xd9n/V3fZ/1d32f9Xd9n/V3fZ/1d32f9Xd9n/V3jZwk522A0AAAAAAAAAAAAAAABYdtgaWHjZV1d42ZNXeNnRV3fZ/Vd32f9Xd9n/V3fZ/1d32fxWdtl/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVXHjCVh32XpXd9nyV3fZ/1d32f9Xd9n/WHfZ7Fd32u5Xd9n/V3fZ/1d32f9Xd9n/V3fZ/1d32f9Xd9n/V3fZ/1d32f9Xd9q/XXTRC1V43CRXdtphV3fZn1d32dxXd9n/V3fZ/1d32f9Xd9n/V3fZ/1d32f9Xd9n/V3fZ/1d32f9Xd9ilAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABZet4XV3bZmVd32fxXd9n/V3fZ/1d32f9Xd9n/V3fZ/1d32f9Xd9n/V3fZ/1d32f9Xd9n/V3fZ/1d32f9Wd9m9V3fZ5Fd32f9Xd9n/V3fZ/1d32f9Xd9n/V3fZ/1d32f9Xd9n/V3fZ/1d32f9Xd9n/V3fZ/1d32dVVedsVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFd61ixXd9nlV3fZ/1d32f9Xd9n/V3fZ/1d32f9Xd9n/V3fZ/1d32f9Xd9n/V3fZ/1d32f9Xd9n/V3fZ/1d32f9Xd9n/V3fZ/1d32f9Xd9n/V3fZ/1d32fJXd9nfV3fZylZ22bdXeNqkV3fZeElt2wcAAAAAAAAAAAAAAAAAAAAAVYDVBll02C5Wedg7VnfXR1d42FVWd9llWHbablh42HdWd9mFV3bZjFd22ZlXdtmZV3bZqFd32qpWeNqxV3fZu1d32ctXd9n2V3fZ/1d32f9Xd9n/V3fZ/1d32f9Xd9n/V3fZ/1d32f9Xd9n/V3fZ/1d32f9Xd9nQWHjZcVd61ixRedcTVVX/AwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABXdtopV3fZ8ld32f9Xd9n/V3fZ/1d32f9Xd9n/V3fZ/1d32f9Xd9n/V3fZ/1d32f9Xd9n/V3fZ/1d32f9Xd9n/V3fZ/1d32f9Xd9n/V3fZ/1d32f9Xd9n/V3fZ/1d32f9Xd9n/V3fZ/1d32f9Xd9n/V3fZ/1d32f9Xd9n/V3fZ/1d32fNWd9m6VnbZf1l42EJddNELAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABXd9m2V3fZ/1d32f9Xd9n/V3fZ/1d32f9Xd9n/V3fZ/1d32f9Xd9n/V3fZ/1d32fhWd9npV3ba01Z22bdXd9mfVnjaglh32WtXd9nZV3fZ/1d32f9Xd9n/V3fZ/1d32f9Xd9n/V3fZ/1d32f9Xd9n/V3fZ/1d32f9Xd9n/V3fZ/1d32f9Xd9n/V3fZ/1d32f9Xd9n7V3fZzld22ZtXd9pnVXjXM2ZmzAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABXdts4V3fYpVd42ZNXd9mBV3fYb1h22V1XddpMWHfXOld22ilZet4XSW3bBwAAAAAAAAAAAAAAAAAAAAAAAAAAWnjSEVh32aNXd9n/V3fZ/1d32f9Xd9n/V3fZ/1d32f9Xd9n/V3fZ/1d32f9Xd9n/V3fZ/1d32f9Xd9n/V3fZ/1d32f9Xd9n/V3fZ/1d32f9Xd9n/V3fZ/1d32f9Xd9n/V3fZ/1d32fZXd9m+WHjZgFZ22EGAgP8CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABXd9lJV3fZ5Fd32f9Xd9n/V3fZ/1d32f9Xd9n/V3fZ/1d32f9Xd9n/V3fZ/1d32f9Xd9n/V3fZ/1d32f9Xd9n/V3fZ2Fd42bNXd9nqV3fZ/1d32f9Xd9n/V3fZ/1d32f9Xd9n/V3fZ/1d32f9Xd9n/V3fZ/1d32f9Xd9lJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATnbYDVh32ZpXd9n+V3fZ/1d32f9Xd9n/V3fZ/1d32f9Xd9n/V3fZ/1d32f9Xd9n/V3fZ/1d32f9Xd9n/V3fZ/1d32f9Xd9n/V3fZ6FuA2w4AAAAAWnjaIlZ42llXd9qQWHbYxld32fNXd9n/V3fZ/1d32f9Xd9n/V3fZ/1d32f9Wd9mUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABWeNpEV3fZ31d32f9Xd9n/V3fZ/1d32f9Xd9n/V3fZ/1d32f9Xd9n/V3fZ/1d32f9Xd9n/V3fZ/1d32f9Xd9n/V3fZ/1d32f9Xd9n/V3fZ/1d32okAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wFXddsjWHjZUVZ32nxXdtmoV3jZ0Vh32p1aeNoiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVXfdD1d22ZtXd9n+V3fZ/1d32f9Xd9n/V3fZ/1d32fpXd9n/V3fZ/1d32f9Xd9n/V3fZ/Vd42cJXd9n/V3fZ/1d32f9Xd9n/V3fZ/1d32f9Xd9n/V3fZ/1d32fhXetYsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABWedlKVnfZ41d32f9Xd9n/V3fZ/1d32f9Xd9n/V3fZ1lZ52UpXd9n7V3fZ/1d32f9Xd9n/V3fZylh22H1Xd9n/V3fZ/1d32d9Xd9n8V3fZ/1d32f9Xd9n/V3fZ/1d32f9Xd9nWXXTRCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVYDVDFh32p1Xd9n/V3fZ/1d32f9Xd9n/V3fZ/1d32f9Xd9mcTYDmCld32adXd9n/V3fZ/1d32f9Xd9n/VnfYdld22WpXd9n/V3fZ/1d32J5XdthwV3fZ/1d32f9Xd9n/V3fZ/1d32f9Xd9n/WHjZoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYeNsxV3fZ2Fd32f9Xd9n/V3fZ/1d32f9Xd9n/V3fZ8VZ42lkAAAAAVXbZNld32f5Xd9n/V3fZ/1d32f9Xd9ntW4DbDlh42VdXd9n/V3fZ/1d32c4AAP8BV3fYrFd32f9Xd9n/V3fZ/1d32f9Xd9n/V3fZ/1h42mAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgID/AlZ42XNXd9n4V3fZ/1d32f9Xd9n/V3fZ/1d32f9Xd9nKV3XbIwAAAAAAAAAAV3fZwVd32f9Xd9n/V3fZ/1d32f9Wdtl5AAAAAFZ32j5Xd9n/V3fZ/1d32fhmZswFVXfdD1d32dtXd9n/V3fZ/1d32f9Xd9n/V3fZ/1d32fZXd9kvAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAV3fYnld32f9Xd9n/V3fZ/1d32f9Xd9n/V3fZ/1d32pZJbdsHAAAAAAAAAABXd9hPV3fZ/1d32f9Xd9n/V3fZ/1d32epVgNUMAAAAAFp42iJXd9n/V3fZ/1d32f9Vd9ctAAAAAFV31y1Xd9nzV3fZ/1d32f9Xd9n/V3fZ/1d32f9Xd9nbVXfdDwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABddNwWV3fZ/1d32f9Xd9n/V3fZ/1d32f9Xd9j1WHbZXQAAAAAAAAAAAAAAAGZmzAVXd9nYV3fZ/1d32f9Xd9n/V3fZ/1Z42XMAAAAAAAAAAElt2wdXd9n+V3fZ/1d32f9Xd9leAAAAAAAAAABWd9hWV3fZ/ld32f9Xd9n/V3fZ/1d32f9Xd9n/VnjasQAA/wEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABVd9k8V3fZ/1d32f9Xd9n/V3fZ/1d32tpZdNguAAAAAAAAAAAAAAAAAAAAAFh42XFXd9n/V3fZ/1d32f9Xd9n/VnfZ5lVx4wkAAAAAAAAAAAAAAABXd9noV3fZ/1d32f9Xd9qQAAAAAAAAAAAAAAAAV3faiVd32f9Xd9n/V3fZ/1d32f9Xd9n/V3fZ/1h22H0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABVgNUGV3fZvFd32f9Xd9n/V3fZrVuA2w4AAAAAAAAAAAAAAAAAAAAAVXnbFVd32e9Xd9n/V3fZ/1d32f9Xd9n/V3bZbAAAAAAAAAAAAAAAAAAAAABXd9nQV3fZ/1d32f9Xd9nBAAAAAAAAAAAAAAAAVVX/A1d32rhXd9n/V3fZ/1d32f9Xd9n/V3fZ/1d32f1XetYsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATnbYDVZ52DtVdtgnAAD/AQAAAAAAAAAAAAAAAAAAAAAAAAAAV3bZmVd32f9Xd9n/V3fZ/1d32f9Xd9jhSW3bBwAAAAAAAAAAAAAAAAAAAABWd9m6V3fZ/1d32f9Xd9nxAAD/AQAAAAAAAAAAAAAAAE522A1Xd9nPV3fZ/1d32f9Xd9n/V3fZ/1d32f9Xdtp7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABVddowV3fZ/Fd32f9Xd9n/V3fZ/1d32f9Xd9hvAAAAAAAAAAAAAAAAAAAAAAAAAABXeNqkV3fZ/1d32f9Xd9n/VXjcJAAAAAAAAAAAAAAAAAAAAABcetYZV3fZ21d32f9Xd9n/V3fZ/1d32f9Xd9isAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAICA/wJXdtnEV3fZ/1d32f9Xd9n/V3fZ/1d32e9VgNUMAAAAAAAAAAAAAAAAAAAAAAAAAABXd9mNV3fZ/1d32f9Xd9n/VnbZUAAAAAAAAAAAAAAAAAAAAAAAAAAAWnPWH1d22eJXd9n/V3fZ/1d32flVd9ctAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFd32mdXd9n/V3fZ/1d32f9Xd9n/V3fZ/1d32okAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYeNh3V3fZ/1d32f9Xd9n/WHjYdwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFx61hlXd9ieV3faqlh42mYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFd32d9Xd9n/V3fZ/1d32f9Xd9n/V3fZ+lt22xwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABWdtlfV3fZ/1d32f9Xd9n/V3fZnwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAW3bbHFd32f9Xd9n/V3fZ/1d32f9Xd9n/V3japAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABVeds5V3fZ/1d32f9Xd9n/V3fZxQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAV3XbMld32f9Xd9n/V3fZ/1d32f9Xd9n/WHbYNAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8BV3fZ11d32f9Xd9n/VnbZtwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFd42aJXd9n/V3fZ/1d32f9Xd9nBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAV3bbOFd32tpXd9nUVXfdHgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE522A1Xd9mnV3fauFd42ZNddNwWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAElt2weAgP8CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///////wAA///8////AAD///h///8AAP//+H///wAA///4f///AAD/4/h/j/8AAP/h/H+P/wAA//D8fw//AAD/+Hx+D/8AAP/8PH4ePwAA//w+PBx/AAD+fh44OP8AAPwfDjhh/wAA/A+OMEP/AAD+A8Ygh/8AAP+BwiEP/wAA/8BhAB//AAD/8DAAP+cAAP/8CAB+AwAA//8AAOABAAD//4AAAAMAAP//4AAADwAA/8AAAP//AADAAAAAH/8AAIAAIAAA/wAAx//AAAAHAAD//4AAAAMAAP/+AAB4AQAA//wAAD/jAAD/8AAAP/8AAP/gIIAf/wAA/4BBiA//AAD/AcGID/8AAP4Dg4wH/wAA+AeDjgP/AAD4HwePAf8AAPg/B4cB/wAA+H4Ph4D/AAD//A+HwP8AAP/8H4fgfwAA//gfh/D/AAD/+B/H+f8AAP/wP8P//wAA//A/w///AAD/8H/D//8AAP/wf+f//wAA//j/////AAD///////8AACgAAAAgAAAAQAAAAAEAIAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABZc9kUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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 \ No newline at end of file diff --git a/public/index.html b/public/index.html new file mode 100644 index 0000000..1ef0de7 --- /dev/null +++ b/public/index.html @@ -0,0 +1,1232 @@ + + + + + + + + + Just a moment... + + + +
+ + + + + \ No newline at end of file diff --git a/src/App.js b/src/App.js new file mode 100644 index 0000000..3e77f8f --- /dev/null +++ b/src/App.js @@ -0,0 +1,12 @@ +import React from 'react'; +import SecurityCheck from './components/SecurityCheck'; + +function App() { + return ( +
+ +
+ ); +} + +export default App; \ No newline at end of file diff --git a/src/components/SecurityCheck.js b/src/components/SecurityCheck.js new file mode 100644 index 0000000..605079a --- /dev/null +++ b/src/components/SecurityCheck.js @@ -0,0 +1,145 @@ +import React from 'react'; +import { motion, useReducedMotion } from 'framer-motion'; +import { Zap } from 'lucide-react'; + +const fadeUpPreset = (delay = 0, duration = 0.8) => ({ + initial: { opacity: 0, y: 20 }, + animate: { opacity: 1, y: 0 }, + transition: { delay, duration, ease: 'easeOut' } +}); + +function SecurityCheck() { + const shouldReduceMotion = useReducedMotion(); + + if (shouldReduceMotion) { + return ( +
+
+
+ + claude.ai +
+ +

+ Verify you are human by completing the action below. +

+ +
+ + +
+ Cloudflare +
+
+ +
+ Privacy + + Terms +
+
+ +
+

+ claude.ai needs to review the security of your connection before proceeding. +

+ +
+

Ray ID: 9beebae23c38dc3

+

+ Performance & security by{' '} + + Cloudflare + +

+
+
+
+ ); + } + + return ( +
+ + + + claude.ai + + + + Verify you are human by completing the action below. + + + + + +
+ Cloudflare +
+
+ + + Privacy + + Terms + +
+ + +

+ claude.ai needs to review the security of your connection before proceeding. +

+ +
+

Ray ID: 9beebae23c38dc3

+

+ Performance & security by{' '} + + Cloudflare + +

+
+
+
+ ); +} + +export default SecurityCheck; \ No newline at end of file diff --git a/src/index.css b/src/index.css new file mode 100644 index 0000000..8c34d74 --- /dev/null +++ b/src/index.css @@ -0,0 +1,31 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; + +@layer base { + html { + font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; + } + + body { + margin: 0; + padding: 0; + background-color: #F7FAFC; + color: #2D3748; + line-height: 1.5; + } +} + +@layer components { + .claude-logo { + @apply flex items-center gap-2 text-xl font-medium; + } + + .security-card { + @apply bg-white rounded-lg shadow-sm border border-gray-200 p-8 max-w-md mx-auto; + } + + .captcha-container { + @apply border border-gray-300 rounded p-4 bg-gray-50 flex items-center gap-3; + } +} \ No newline at end of file diff --git a/src/index.js b/src/index.js new file mode 100644 index 0000000..0881df3 --- /dev/null +++ b/src/index.js @@ -0,0 +1,13 @@ +import React from 'react'; +import { createRoot } from 'react-dom/client'; +import './index.css'; +import App from './App'; + +const container = document.getElementById('root'); +const root = createRoot(container); + +root.render( + + + +); \ No newline at end of file diff --git a/tailwind.config.js b/tailwind.config.js new file mode 100644 index 0000000..c6b6796 --- /dev/null +++ b/tailwind.config.js @@ -0,0 +1,22 @@ +/** @type {import('tailwindcss').Config} */ +module.exports = { + content: [ + "./src/**/*.{js,jsx,ts,tsx}", + "./public/index.html" + ], + theme: { + extend: { + colors: { + 'claude-orange': '#E97441', + 'claude-text': '#2D3748', + 'claude-gray': '#718096', + 'claude-light-gray': '#F7FAFC', + 'cloudflare-blue': '#0066CC' + }, + fontFamily: { + 'sans': ['system-ui', '-apple-system', 'BlinkMacSystemFont', 'Segoe UI', 'Roboto', 'sans-serif'] + } + }, + }, + plugins: [], +} \ No newline at end of file diff --git a/vercel.json b/vercel.json new file mode 100644 index 0000000..760984a --- /dev/null +++ b/vercel.json @@ -0,0 +1,5 @@ +{ + "installCommand": "npm install", + "buildCommand": "CI=false npm run build", + "outputDirectory": "build" +} \ No newline at end of file