From 457360793c638800556afdc6b4d7eb7d208adbf8 Mon Sep 17 00:00:00 2001 From: rathi Date: Sun, 8 Dec 2024 16:22:56 -0500 Subject: [PATCH] added UI orb to main page --- icon.png | Bin 0 -> 11767 bytes index.html | 4 +- package-lock.json | 804 +++++++++++++++++++++++++++++++++++- package.json | 6 +- src/components/ui/AIOrb.tsx | 167 ++++++++ src/pages/Home.tsx | 10 +- 6 files changed, 976 insertions(+), 15 deletions(-) create mode 100644 icon.png create mode 100644 src/components/ui/AIOrb.tsx diff --git a/icon.png b/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..f746184c49902f0de9d14522d0dc6e685531f64c GIT binary patch literal 11767 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 literal 0 HcmV?d00001 diff --git a/index.html b/index.html index e4b78ea..a113688 100644 --- a/index.html +++ b/index.html @@ -2,9 +2,9 @@ - + - Vite + React + TS + RAG AI
diff --git a/package-lock.json b/package-lock.json index 6b21fff..5439e21 100644 --- a/package-lock.json +++ b/package-lock.json @@ -21,7 +21,10 @@ "@radix-ui/react-switch": "^1.1.1", "@radix-ui/react-tabs": "^1.1.1", "@radix-ui/react-tooltip": "^1.0.7", + "@react-three/drei": "^9.120.3", + "@react-three/fiber": "^8.17.10", "@supabase/supabase-js": "^2.47.0", + "@types/three": "^0.170.0", "class-variance-authority": "^0.7.0", "clsx": "^2.1.0", "date-fns": "^3.3.1", @@ -32,7 +35,8 @@ "react-router-dom": "^6.22.3", "react-syntax-highlighter": "^15.5.0", "remark-gfm": "^4.0.0", - "tailwind-merge": "^2.2.1" + "tailwind-merge": "^2.2.1", + "three": "^0.171.0" }, "devDependencies": { "@eslint/js": "^9.9.1", @@ -1019,6 +1023,24 @@ "@jridgewell/sourcemap-codec": "^1.4.14" } }, + "node_modules/@mediapipe/tasks-vision": { + "version": "0.10.17", + "resolved": "https://registry.npmjs.org/@mediapipe/tasks-vision/-/tasks-vision-0.10.17.tgz", + "integrity": "sha512-CZWV/q6TTe8ta61cZXjfnnHsfWIdFhms03M9T7Cnd5y2mdpylJM0rF1qRq+wsQVRMLz1OYPVEBU9ph2Bx8cxrg==", + "license": "Apache-2.0" + }, + "node_modules/@monogrid/gainmap-js": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@monogrid/gainmap-js/-/gainmap-js-3.1.0.tgz", + "integrity": "sha512-Obb0/gEd/HReTlg8ttaYk+0m62gQJmCblMOjHSMHRrBP2zdfKMHLCRbh/6ex9fSUJMKdjjIEiohwkbGD3wj2Nw==", + "license": "MIT", + "dependencies": { + "promise-worker-transferable": "^1.0.4" + }, + "peerDependencies": { + "three": ">= 0.159.0" + } + }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -1975,6 +1997,197 @@ "resolved": "https://registry.npmjs.org/@radix-ui/rect/-/rect-1.1.0.tgz", "integrity": "sha512-A9+lCBZoaMJlVKcRBz2YByCG+Cp2t6nAnMnNba+XiWxnj6r4JUFqfsgwocMBZU9LPtdxC6wB56ySYpc7LQIoJg==" }, + "node_modules/@react-spring/animated": { + "version": "9.7.5", + "resolved": "https://registry.npmjs.org/@react-spring/animated/-/animated-9.7.5.tgz", + "integrity": "sha512-Tqrwz7pIlsSDITzxoLS3n/v/YCUHQdOIKtOJf4yL6kYVSDTSmVK1LI1Q3M/uu2Sx4X3pIWF3xLUhlsA6SPNTNg==", + "license": "MIT", + "dependencies": { + "@react-spring/shared": "~9.7.5", + "@react-spring/types": "~9.7.5" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/@react-spring/core": { + "version": "9.7.5", + "resolved": "https://registry.npmjs.org/@react-spring/core/-/core-9.7.5.tgz", + "integrity": "sha512-rmEqcxRcu7dWh7MnCcMXLvrf6/SDlSokLaLTxiPlAYi11nN3B5oiCUAblO72o+9z/87j2uzxa2Inm8UbLjXA+w==", + "license": "MIT", + "dependencies": { + "@react-spring/animated": "~9.7.5", + "@react-spring/shared": "~9.7.5", + "@react-spring/types": "~9.7.5" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/react-spring/donate" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/@react-spring/rafz": { + "version": "9.7.5", + "resolved": "https://registry.npmjs.org/@react-spring/rafz/-/rafz-9.7.5.tgz", + "integrity": "sha512-5ZenDQMC48wjUzPAm1EtwQ5Ot3bLIAwwqP2w2owG5KoNdNHpEJV263nGhCeKKmuA3vG2zLLOdu3or6kuDjA6Aw==", + "license": "MIT" + }, + "node_modules/@react-spring/shared": { + "version": "9.7.5", + "resolved": "https://registry.npmjs.org/@react-spring/shared/-/shared-9.7.5.tgz", + "integrity": "sha512-wdtoJrhUeeyD/PP/zo+np2s1Z820Ohr/BbuVYv+3dVLW7WctoiN7std8rISoYoHpUXtbkpesSKuPIw/6U1w1Pw==", + "license": "MIT", + "dependencies": { + "@react-spring/rafz": "~9.7.5", + "@react-spring/types": "~9.7.5" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/@react-spring/three": { + "version": "9.7.5", + "resolved": "https://registry.npmjs.org/@react-spring/three/-/three-9.7.5.tgz", + "integrity": "sha512-RxIsCoQfUqOS3POmhVHa1wdWS0wyHAUway73uRLp3GAL5U2iYVNdnzQsep6M2NZ994BlW8TcKuMtQHUqOsy6WA==", + "license": "MIT", + "dependencies": { + "@react-spring/animated": "~9.7.5", + "@react-spring/core": "~9.7.5", + "@react-spring/shared": "~9.7.5", + "@react-spring/types": "~9.7.5" + }, + "peerDependencies": { + "@react-three/fiber": ">=6.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "three": ">=0.126" + } + }, + "node_modules/@react-spring/types": { + "version": "9.7.5", + "resolved": "https://registry.npmjs.org/@react-spring/types/-/types-9.7.5.tgz", + "integrity": "sha512-HVj7LrZ4ReHWBimBvu2SKND3cDVUPWKLqRTmWe/fNY6o1owGOX0cAHbdPDTMelgBlVbrTKrre6lFkhqGZErK/g==", + "license": "MIT" + }, + "node_modules/@react-three/drei": { + "version": "9.120.3", + "resolved": "https://registry.npmjs.org/@react-three/drei/-/drei-9.120.3.tgz", + "integrity": "sha512-EbevbBf5OQX5oJZO8Pvj5k0hj4GMt666+6AOr86xJfQJHcWci053J5RJNDHA9/3JVvpZ4cOybZNc4/KDY2jXaw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.26.0", + "@mediapipe/tasks-vision": "0.10.17", + "@monogrid/gainmap-js": "^3.0.6", + "@react-spring/three": "~9.7.5", + "@use-gesture/react": "^10.3.1", + "camera-controls": "^2.9.0", + "cross-env": "^7.0.3", + "detect-gpu": "^5.0.56", + "glsl-noise": "^0.0.0", + "hls.js": "^1.5.17", + "maath": "^0.10.8", + "meshline": "^3.3.1", + "react-composer": "^5.0.3", + "stats-gl": "^2.2.8", + "stats.js": "^0.17.0", + "suspend-react": "^0.1.3", + "three-mesh-bvh": "^0.7.8", + "three-stdlib": "^2.34.0", + "troika-three-text": "^0.52.0", + "tunnel-rat": "^0.1.2", + "utility-types": "^3.11.0", + "uuid": "^9.0.1", + "zustand": "^5.0.1" + }, + "peerDependencies": { + "@react-three/fiber": "^8", + "react": "^18", + "react-dom": "^18", + "three": ">=0.137" + }, + "peerDependenciesMeta": { + "react-dom": { + "optional": true + } + } + }, + "node_modules/@react-three/fiber": { + "version": "8.17.10", + "resolved": "https://registry.npmjs.org/@react-three/fiber/-/fiber-8.17.10.tgz", + "integrity": "sha512-S6bqa4DqUooEkInYv/W+Jklv2zjSYCXAhm6qKpAQyOXhTEt5gBXnA7W6aoJ0bjmp9pAeaSj/AZUoz1HCSof/uA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.17.8", + "@types/debounce": "^1.2.1", + "@types/react-reconciler": "^0.26.7", + "@types/webxr": "*", + "base64-js": "^1.5.1", + "buffer": "^6.0.3", + "debounce": "^1.2.1", + "its-fine": "^1.0.6", + "react-reconciler": "^0.27.0", + "scheduler": "^0.21.0", + "suspend-react": "^0.1.3", + "zustand": "^3.7.1" + }, + "peerDependencies": { + "expo": ">=43.0", + "expo-asset": ">=8.4", + "expo-file-system": ">=11.0", + "expo-gl": ">=11.0", + "react": ">=18.0", + "react-dom": ">=18.0", + "react-native": ">=0.64", + "three": ">=0.133" + }, + "peerDependenciesMeta": { + "expo": { + "optional": true + }, + "expo-asset": { + "optional": true + }, + "expo-file-system": { + "optional": true + }, + "expo-gl": { + "optional": true + }, + "react-dom": { + "optional": true + }, + "react-native": { + "optional": true + } + } + }, + "node_modules/@react-three/fiber/node_modules/scheduler": { + "version": "0.21.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.21.0.tgz", + "integrity": "sha512-1r87x5fz9MXqswA2ERLo0EbOAU74DpIUO090gIasYTqlVoJeMcl+Z1Rg7WHz+qtPujhS/hGIt9kxZOYBV3faRQ==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/@react-three/fiber/node_modules/zustand": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/zustand/-/zustand-3.7.2.tgz", + "integrity": "sha512-PIJDIZKtokhof+9+60cpockVOq05sJzHCriyvaLBmEJixseQ1a5Kdov6fWZfWOu5SK9c+FhH1jU0tntLxRJYMA==", + "license": "MIT", + "engines": { + "node": ">=12.7.0" + }, + "peerDependencies": { + "react": ">=16.8" + }, + "peerDependenciesMeta": { + "react": { + "optional": true + } + } + }, "node_modules/@remix-run/router": { "version": "1.21.0", "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.21.0.tgz", @@ -2265,6 +2478,12 @@ "@supabase/storage-js": "2.7.1" } }, + "node_modules/@tweenjs/tween.js": { + "version": "23.1.3", + "resolved": "https://registry.npmjs.org/@tweenjs/tween.js/-/tween.js-23.1.3.tgz", + "integrity": "sha512-vJmvvwFxYuGnF2axRtPYocag6Clbb5YS7kLL+SO/TeVFzHqDIWrNKYtcsPMibjDx9O+bu+psAy9NKfWklassUA==", + "license": "MIT" + }, "node_modules/@types/babel__core": { "version": "7.20.5", "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", @@ -2306,6 +2525,12 @@ "@babel/types": "^7.20.7" } }, + "node_modules/@types/debounce": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@types/debounce/-/debounce-1.2.4.tgz", + "integrity": "sha512-jBqiORIzKDOToaF63Fm//haOCHuwQuLa2202RK4MozpA6lh93eCBc+/8+wZn5OzjJt3ySdc+74SXWXB55Ewtyw==", + "license": "MIT" + }, "node_modules/@types/debug": { "version": "4.1.12", "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz", @@ -2315,6 +2540,12 @@ "@types/ms": "*" } }, + "node_modules/@types/draco3d": { + "version": "1.4.10", + "resolved": "https://registry.npmjs.org/@types/draco3d/-/draco3d-1.4.10.tgz", + "integrity": "sha512-AX22jp8Y7wwaBgAixaSvkoG4M/+PlAcm3Qs4OW8yT9DM4xUpWKeFhLueTAyZF39pviAdcDdeJoACapiAceqNcw==", + "license": "MIT" + }, "node_modules/@types/estree": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", @@ -2368,6 +2599,12 @@ "undici-types": "~6.20.0" } }, + "node_modules/@types/offscreencanvas": { + "version": "2019.7.3", + "resolved": "https://registry.npmjs.org/@types/offscreencanvas/-/offscreencanvas-2019.7.3.tgz", + "integrity": "sha512-ieXiYmgSRXUDeOntE1InxjWyvEelZGP63M+cGuquuRLuIKKT1osnkXjxev9B7d1nXSug5vpunx+gNlbVxMlC9A==", + "license": "MIT" + }, "node_modules/@types/phoenix": { "version": "1.6.6", "resolved": "https://registry.npmjs.org/@types/phoenix/-/phoenix-1.6.6.tgz", @@ -2397,6 +2634,15 @@ "@types/react": "*" } }, + "node_modules/@types/react-reconciler": { + "version": "0.26.7", + "resolved": "https://registry.npmjs.org/@types/react-reconciler/-/react-reconciler-0.26.7.tgz", + "integrity": "sha512-mBDYl8x+oyPX/VBb3E638N0B7xG+SPk/EAMcVPeexqus/5aTpTphQi0curhhshOqRrc9t6OPoJfEUkbymse/lQ==", + "license": "MIT", + "dependencies": { + "@types/react": "*" + } + }, "node_modules/@types/react-syntax-highlighter": { "version": "15.5.13", "resolved": "https://registry.npmjs.org/@types/react-syntax-highlighter/-/react-syntax-highlighter-15.5.13.tgz", @@ -2407,12 +2653,38 @@ "@types/react": "*" } }, + "node_modules/@types/stats.js": { + "version": "0.17.3", + "resolved": "https://registry.npmjs.org/@types/stats.js/-/stats.js-0.17.3.tgz", + "integrity": "sha512-pXNfAD3KHOdif9EQXZ9deK82HVNaXP5ZIF5RP2QG6OQFNTaY2YIetfrE9t528vEreGQvEPRDDc8muaoYeK0SxQ==", + "license": "MIT" + }, + "node_modules/@types/three": { + "version": "0.170.0", + "resolved": "https://registry.npmjs.org/@types/three/-/three-0.170.0.tgz", + "integrity": "sha512-CUm2uckq+zkCY7ZbFpviRttY+6f9fvwm6YqSqPfA5K22s9w7R4VnA3rzJse8kHVvuzLcTx+CjNCs2NYe0QFAyg==", + "license": "MIT", + "dependencies": { + "@tweenjs/tween.js": "~23.1.3", + "@types/stats.js": "*", + "@types/webxr": "*", + "@webgpu/types": "*", + "fflate": "~0.8.2", + "meshoptimizer": "~0.18.1" + } + }, "node_modules/@types/unist": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", "license": "MIT" }, + "node_modules/@types/webxr": { + "version": "0.5.20", + "resolved": "https://registry.npmjs.org/@types/webxr/-/webxr-0.5.20.tgz", + "integrity": "sha512-JGpU6qiIJQKUuVSKx1GtQnHJGxRjtfGIhzO2ilq43VZZS//f1h1Sgexbdk+Lq+7569a6EYhOWrUpIruR/1Enmg==", + "license": "MIT" + }, "node_modules/@types/ws": { "version": "8.5.13", "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.13.tgz", @@ -2658,6 +2930,24 @@ "integrity": "sha512-fEzPV3hSkSMltkw152tJKNARhOupqbH96MZWyRjNaYZOMIzbrTeQDG+MTc6Mr2pgzFQzFxAfmhGDNP5QK++2ZA==", "license": "ISC" }, + "node_modules/@use-gesture/core": { + "version": "10.3.1", + "resolved": "https://registry.npmjs.org/@use-gesture/core/-/core-10.3.1.tgz", + "integrity": "sha512-WcINiDt8WjqBdUXye25anHiNxPc0VOrlT8F6LLkU6cycrOGUDyY/yyFmsg3k8i5OLvv25llc0QC45GhR/C8llw==", + "license": "MIT" + }, + "node_modules/@use-gesture/react": { + "version": "10.3.1", + "resolved": "https://registry.npmjs.org/@use-gesture/react/-/react-10.3.1.tgz", + "integrity": "sha512-Yy19y6O2GJq8f7CHf7L0nxL8bf4PZCPaVOCgJrusOeFHY1LvHgYXnmnXg6N5iwAnbgbZCDjo60SiM6IPJi9C5g==", + "license": "MIT", + "dependencies": { + "@use-gesture/core": "10.3.1" + }, + "peerDependencies": { + "react": ">= 16.8.0" + } + }, "node_modules/@vitejs/plugin-react": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.3.2.tgz", @@ -2677,6 +2967,12 @@ "vite": "^4.2.0 || ^5.0.0" } }, + "node_modules/@webgpu/types": { + "version": "0.1.51", + "resolved": "https://registry.npmjs.org/@webgpu/types/-/types-0.1.51.tgz", + "integrity": "sha512-ktR3u64NPjwIViNCck+z9QeyN0iPkQCUOQ07ZCV1RzlkfP+olLTeEZ95O1QHS+v4w9vJeY9xj/uJuSphsHy5rQ==", + "license": "BSD-3-Clause" + }, "node_modules/acorn": { "version": "8.12.1", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", @@ -2833,6 +3129,35 @@ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "dev": true }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/bidi-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/bidi-js/-/bidi-js-1.0.3.tgz", + "integrity": "sha512-RKshQI1R3YQ+n9YJz2QQ147P66ELpa1FQEg20Dk8oW9t2KgLbpDLLp9aGZ7y8WHSshDknG0bknqGw5/tyCs5tw==", + "license": "MIT", + "dependencies": { + "require-from-string": "^2.0.2" + } + }, "node_modules/binary-extensions": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", @@ -2899,6 +3224,30 @@ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" } }, + "node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, "node_modules/callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", @@ -2917,6 +3266,15 @@ "node": ">= 6" } }, + "node_modules/camera-controls": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/camera-controls/-/camera-controls-2.9.0.tgz", + "integrity": "sha512-TpCujnP0vqPppTXXJRYpvIy0xq9Tro6jQf2iYUxlDpPCNxkvE/XGaTuwIxnhINOkVP/ob2CRYXtY3iVYXeMEzA==", + "license": "MIT", + "peerDependencies": { + "three": ">=0.126.1" + } + }, "node_modules/caniuse-lite": { "version": "1.0.30001667", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001667.tgz", @@ -3102,11 +3460,28 @@ "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", "dev": true }, + "node_modules/cross-env": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz", + "integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==", + "license": "MIT", + "dependencies": { + "cross-spawn": "^7.0.1" + }, + "bin": { + "cross-env": "src/bin/cross-env.js", + "cross-env-shell": "src/bin/cross-env-shell.js" + }, + "engines": { + "node": ">=10.14", + "npm": ">=6", + "yarn": ">=1" + } + }, "node_modules/cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -3143,6 +3518,12 @@ "url": "https://github.com/sponsors/kossnocorp" } }, + "node_modules/debounce": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz", + "integrity": "sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==", + "license": "MIT" + }, "node_modules/debug": { "version": "4.3.7", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", @@ -3187,6 +3568,15 @@ "node": ">=6" } }, + "node_modules/detect-gpu": { + "version": "5.0.60", + "resolved": "https://registry.npmjs.org/detect-gpu/-/detect-gpu-5.0.60.tgz", + "integrity": "sha512-HOUiexaACwaeTBelnR3OrUN0mxgPadneTf7VndBEieQa3cx7xzrsQ/pm3niim4hZhN8gaDpAbTdCrjveGnNToQ==", + "license": "MIT", + "dependencies": { + "webgl-constants": "^1.1.1" + } + }, "node_modules/detect-node-es": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz", @@ -3217,6 +3607,12 @@ "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", "dev": true }, + "node_modules/draco3d": { + "version": "1.5.7", + "resolved": "https://registry.npmjs.org/draco3d/-/draco3d-1.5.7.tgz", + "integrity": "sha512-m6WCKt/erDXcw+70IJXnG7M3awwQPAsZvJGX5zY7beBqpELw6RDGkYVU0W43AFxye4pDZ5i2Lbyc/NNGqwjUVQ==", + "license": "Apache-2.0" + }, "node_modules/eastasianwidth": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", @@ -3625,6 +4021,12 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/fflate": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.8.2.tgz", + "integrity": "sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==", + "license": "MIT" + }, "node_modules/file-entry-cache": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", @@ -3829,6 +4231,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/glsl-noise": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/glsl-noise/-/glsl-noise-0.0.0.tgz", + "integrity": "sha512-b/ZCF6amfAUb7dJM/MxRs7AetQEahYzJ8PtgfrmEdtw6uyGOr+ZSGtgjFm6mfsBkxJ4d2W7kg+Nlqzqvn3Bc0w==", + "license": "MIT" + }, "node_modules/graphemer": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", @@ -3986,6 +4394,12 @@ "integrity": "sha512-PDEfEF102G23vHmPhLyPboFCD+BkMGu+GuJe2d9/eH4FsCwvgBpnc9n0pGE+ffKdph38s6foEZiEjdgHdzp+IA==", "license": "CC0-1.0" }, + "node_modules/hls.js": { + "version": "1.5.17", + "resolved": "https://registry.npmjs.org/hls.js/-/hls.js-1.5.17.tgz", + "integrity": "sha512-wA66nnYFvQa1o4DO/BFgLNRKnBTVXpNeldGRBJ2Y0SvFtdwvFKCbqa9zhHoZLoxHhZ+jYsj3aIBkWQQCPNOhMw==", + "license": "Apache-2.0" + }, "node_modules/html-url-attributes": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/html-url-attributes/-/html-url-attributes-3.0.1.tgz", @@ -3996,6 +4410,26 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "BSD-3-Clause" + }, "node_modules/ignore": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", @@ -4005,6 +4439,12 @@ "node": ">= 4" } }, + "node_modules/immediate": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", + "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==", + "license": "MIT" + }, "node_modules/import-fresh": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", @@ -4166,11 +4606,37 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/is-promise": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", + "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==", + "license": "MIT" + }, "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + "node_modules/its-fine": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/its-fine/-/its-fine-1.2.5.tgz", + "integrity": "sha512-fXtDA0X0t0eBYAGLVM5YsgJGsJ5jEmqZEPrGbzdf5awjv0xE7nqv3TVnvtUF060Tkes15DbDAKW/I48vsb6SyA==", + "license": "MIT", + "dependencies": { + "@types/react-reconciler": "^0.28.0" + }, + "peerDependencies": { + "react": ">=18.0" + } + }, + "node_modules/its-fine/node_modules/@types/react-reconciler": { + "version": "0.28.8", + "resolved": "https://registry.npmjs.org/@types/react-reconciler/-/react-reconciler-0.28.8.tgz", + "integrity": "sha512-SN9c4kxXZonFhbX4hJrZy37yw9e7EIxcpHCxQv5JUS18wDE5ovkQKlqQEkufdJCCMfuI9BnjUJvhYeJ9x5Ra7g==", + "license": "MIT", + "dependencies": { + "@types/react": "*" + } }, "node_modules/jackspeak": { "version": "3.4.3", @@ -4277,6 +4743,15 @@ "node": ">= 0.8.0" } }, + "node_modules/lie": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", + "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", + "license": "MIT", + "dependencies": { + "immediate": "~3.0.5" + } + }, "node_modules/lilconfig": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", @@ -4366,6 +4841,16 @@ "react": "^16.5.1 || ^17.0.0 || ^18.0.0" } }, + "node_modules/maath": { + "version": "0.10.8", + "resolved": "https://registry.npmjs.org/maath/-/maath-0.10.8.tgz", + "integrity": "sha512-tRvbDF0Pgqz+9XUa4jjfgAQ8/aPKmQdWXilFu2tMy4GWj4NOsx99HlULO4IeREfbO3a0sA145DZYyvXPkybm0g==", + "license": "MIT", + "peerDependencies": { + "@types/three": ">=0.134.0", + "three": ">=0.134.0" + } + }, "node_modules/markdown-table": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.4.tgz", @@ -4667,6 +5152,21 @@ "node": ">= 8" } }, + "node_modules/meshline": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/meshline/-/meshline-3.3.1.tgz", + "integrity": "sha512-/TQj+JdZkeSUOl5Mk2J7eLcYTLiQm2IDzmlSvYm7ov15anEcDJ92GHqqazxTSreeNgfnYu24kiEvvv0WlbCdFQ==", + "license": "MIT", + "peerDependencies": { + "three": ">=0.137" + } + }, + "node_modules/meshoptimizer": { + "version": "0.18.1", + "resolved": "https://registry.npmjs.org/meshoptimizer/-/meshoptimizer-0.18.1.tgz", + "integrity": "sha512-ZhoIoL7TNV4s5B6+rx5mC//fw8/POGyNxS/DZyCJeiZ12ScLfVwRE/GfsxwiTkMYYD5DmK2/JXnEVXqL4rF+Sw==", + "license": "MIT" + }, "node_modules/micromark": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.1.tgz", @@ -5332,7 +5832,6 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -5450,7 +5949,6 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, "engines": { "node": ">=8" } @@ -5674,6 +6172,12 @@ "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", "dev": true }, + "node_modules/potpack": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/potpack/-/potpack-1.0.2.tgz", + "integrity": "sha512-choctRBIV9EMT9WGAZHn3V7t0Z2pMQyl0EZE6pFc/6ml3ssw7Dlf/oAOvFwjm1HVsqfQN8GfeFyJ+d8tRzqueQ==", + "license": "ISC" + }, "node_modules/prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", @@ -5692,6 +6196,27 @@ "node": ">=6" } }, + "node_modules/promise-worker-transferable": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/promise-worker-transferable/-/promise-worker-transferable-1.0.4.tgz", + "integrity": "sha512-bN+0ehEnrXfxV2ZQvU2PetO0n4gqBD4ulq3MI1WOPLgr7/Mg9yRQkX5+0v1vagr74ZTsl7XtzlaYDo2EuCeYJw==", + "license": "Apache-2.0", + "dependencies": { + "is-promise": "^2.1.0", + "lie": "^3.0.2" + } + }, + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, "node_modules/property-information": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.5.0.tgz", @@ -5742,6 +6267,18 @@ "node": ">=0.10.0" } }, + "node_modules/react-composer": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/react-composer/-/react-composer-5.0.3.tgz", + "integrity": "sha512-1uWd07EME6XZvMfapwZmc7NgCZqDemcvicRi3wMJzXsQLvZ3L7fTHVyPy1bZdnWXM4iPjYuNE+uJ41MLKeTtnA==", + "license": "MIT", + "dependencies": { + "prop-types": "^15.6.0" + }, + "peerDependencies": { + "react": "^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0" + } + }, "node_modules/react-dom": { "version": "18.3.1", "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", @@ -5754,6 +6291,12 @@ "react": "^18.3.1" } }, + "node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "license": "MIT" + }, "node_modules/react-markdown": { "version": "9.0.1", "resolved": "https://registry.npmjs.org/react-markdown/-/react-markdown-9.0.1.tgz", @@ -5780,6 +6323,31 @@ "react": ">=18" } }, + "node_modules/react-reconciler": { + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/react-reconciler/-/react-reconciler-0.27.0.tgz", + "integrity": "sha512-HmMDKciQjYmBRGuuhIaKA1ba/7a+UsM5FzOZsMO2JYHt9Jh8reCb7j1eDC95NOyUlKM9KRyvdx0flBuDvYSBoA==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.21.0" + }, + "engines": { + "node": ">=0.10.0" + }, + "peerDependencies": { + "react": "^18.0.0" + } + }, + "node_modules/react-reconciler/node_modules/scheduler": { + "version": "0.21.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.21.0.tgz", + "integrity": "sha512-1r87x5fz9MXqswA2ERLo0EbOAU74DpIUO090gIasYTqlVoJeMcl+Z1Rg7WHz+qtPujhS/hGIt9kxZOYBV3faRQ==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0" + } + }, "node_modules/react-refresh": { "version": "0.14.2", "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.2.tgz", @@ -6112,6 +6680,15 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/resolve": { "version": "1.22.8", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", @@ -6227,7 +6804,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, "dependencies": { "shebang-regex": "^3.0.0" }, @@ -6239,7 +6815,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, "engines": { "node": ">=8" } @@ -6275,6 +6850,32 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/stats-gl": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/stats-gl/-/stats-gl-2.4.2.tgz", + "integrity": "sha512-g5O9B0hm9CvnM36+v7SFl39T7hmAlv541tU81ME8YeSb3i1CIP5/QdDeSB3A0la0bKNHpxpwxOVRo2wFTYEosQ==", + "license": "MIT", + "dependencies": { + "@types/three": "*", + "three": "^0.170.0" + }, + "peerDependencies": { + "@types/three": "*", + "three": "*" + } + }, + "node_modules/stats-gl/node_modules/three": { + "version": "0.170.0", + "resolved": "https://registry.npmjs.org/three/-/three-0.170.0.tgz", + "integrity": "sha512-FQK+LEpYc0fBD+J8g6oSEyyNzjp+Q7Ks1C568WWaoMRLW+TkNNWmenWeGgJjV105Gd+p/2ql1ZcjYvNiPZBhuQ==", + "license": "MIT" + }, + "node_modules/stats.js": { + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/stats.js/-/stats.js-0.17.0.tgz", + "integrity": "sha512-hNKz8phvYLPEcRkeG1rsGmV5ChMjKDAWU7/OJJdDErPBNChQXxCo3WZurGpnWc6gZhAzEPFad1aVgyOANH1sMw==", + "license": "MIT" + }, "node_modules/string-width": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", @@ -6452,6 +7053,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/suspend-react": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/suspend-react/-/suspend-react-0.1.3.tgz", + "integrity": "sha512-aqldKgX9aZqpoDp3e8/BZ8Dm7x1pJl+qI3ZKxDN0i/IQTWUwBx/ManmlVJ3wowqbno6c2bmiIfs+Um6LbsjJyQ==", + "license": "MIT", + "peerDependencies": { + "react": ">=17.0" + } + }, "node_modules/tailwind-merge": { "version": "2.5.5", "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-2.5.5.tgz", @@ -6525,6 +7135,45 @@ "node": ">=0.8" } }, + "node_modules/three": { + "version": "0.171.0", + "resolved": "https://registry.npmjs.org/three/-/three-0.171.0.tgz", + "integrity": "sha512-Y/lAXPaKZPcEdkKjh0JOAHVv8OOnv/NDJqm0wjfCzyQmfKxV7zvkwsnBgPBKTzJHToSOhRGQAGbPJObT59B/PQ==", + "license": "MIT" + }, + "node_modules/three-mesh-bvh": { + "version": "0.7.8", + "resolved": "https://registry.npmjs.org/three-mesh-bvh/-/three-mesh-bvh-0.7.8.tgz", + "integrity": "sha512-BGEZTOIC14U0XIRw3tO4jY7IjP7n7v24nv9JXS1CyeVRWOCkcOMhRnmENUjuV39gktAw4Ofhr0OvIAiTspQrrw==", + "deprecated": "Deprecated due to three.js version incompatibility. Please use v0.8.0, instead.", + "license": "MIT", + "peerDependencies": { + "three": ">= 0.151.0" + } + }, + "node_modules/three-stdlib": { + "version": "2.34.0", + "resolved": "https://registry.npmjs.org/three-stdlib/-/three-stdlib-2.34.0.tgz", + "integrity": "sha512-U5qJYWgUKBFJqr1coMSbczA964uvouzBjQbtJlaI9LfMwy7hr+kc1Mfh0gqi/2872KmGu9utgff6lj8Oti8+VQ==", + "license": "MIT", + "dependencies": { + "@types/draco3d": "^1.4.0", + "@types/offscreencanvas": "^2019.6.4", + "@types/webxr": "^0.5.2", + "draco3d": "^1.4.1", + "fflate": "^0.6.9", + "potpack": "^1.0.1" + }, + "peerDependencies": { + "three": ">=0.128.0" + } + }, + "node_modules/three-stdlib/node_modules/fflate": { + "version": "0.6.10", + "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.6.10.tgz", + "integrity": "sha512-IQrh3lEPM93wVCEczc9SaAOvkmcoQn/G8Bo1e8ZPlY3X3bnAxWaBdvTdvM1hP62iZp0BXWDy4vTAy4fF0+Dlpg==", + "license": "MIT" + }, "node_modules/to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", @@ -6562,6 +7211,36 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/troika-three-text": { + "version": "0.52.2", + "resolved": "https://registry.npmjs.org/troika-three-text/-/troika-three-text-0.52.2.tgz", + "integrity": "sha512-UGYwjKnR8RgmyOIpo0/KiSW0wySQ155BQXNLoSWA1liKzXG+RyHM+dvTIDawHGVQcqjqyunFlVY32xm/HDqjpw==", + "license": "MIT", + "dependencies": { + "bidi-js": "^1.0.2", + "troika-three-utils": "^0.52.0", + "troika-worker-utils": "^0.52.0", + "webgl-sdf-generator": "1.1.1" + }, + "peerDependencies": { + "three": ">=0.125.0" + } + }, + "node_modules/troika-three-utils": { + "version": "0.52.0", + "resolved": "https://registry.npmjs.org/troika-three-utils/-/troika-three-utils-0.52.0.tgz", + "integrity": "sha512-00oxqIIehtEKInOTQekgyknBuRUj1POfOUE2q1OmL+Xlpp4gIu+S0oA0schTyXsDS4d9DkR04iqCdD40rF5R6w==", + "license": "MIT", + "peerDependencies": { + "three": ">=0.125.0" + } + }, + "node_modules/troika-worker-utils": { + "version": "0.52.0", + "resolved": "https://registry.npmjs.org/troika-worker-utils/-/troika-worker-utils-0.52.0.tgz", + "integrity": "sha512-W1CpvTHykaPH5brv5VHLfQo9D1OYuo0cSBEUQFFT/nBUzM8iD6Lq2/tgG/f1OelbAS1WtaTPQzE5uM49egnngw==", + "license": "MIT" + }, "node_modules/trough": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/trough/-/trough-2.2.0.tgz", @@ -6595,6 +7274,43 @@ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==" }, + "node_modules/tunnel-rat": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/tunnel-rat/-/tunnel-rat-0.1.2.tgz", + "integrity": "sha512-lR5VHmkPhzdhrM092lI2nACsLO4QubF0/yoOhzX7c+wIpbN1GjHNzCc91QlpxBi+cnx8vVJ+Ur6vL5cEoQPFpQ==", + "license": "MIT", + "dependencies": { + "zustand": "^4.3.2" + } + }, + "node_modules/tunnel-rat/node_modules/zustand": { + "version": "4.5.5", + "resolved": "https://registry.npmjs.org/zustand/-/zustand-4.5.5.tgz", + "integrity": "sha512-+0PALYNJNgK6hldkgDq2vLrw5f6g/jCInz52n9RTpropGgeAf/ioFUCdtsjCqu4gNhW9D01rUQBROoRjdzyn2Q==", + "license": "MIT", + "dependencies": { + "use-sync-external-store": "1.2.2" + }, + "engines": { + "node": ">=12.7.0" + }, + "peerDependencies": { + "@types/react": ">=16.8", + "immer": ">=9.0.6", + "react": ">=16.8" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "immer": { + "optional": true + }, + "react": { + "optional": true + } + } + }, "node_modules/type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", @@ -6816,12 +7532,43 @@ } } }, + "node_modules/use-sync-external-store": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.2.tgz", + "integrity": "sha512-PElTlVMwpblvbNqQ82d2n6RjStvdSoNe9FG28kNfz3WiXilJm4DdNkEzRhCZuIDwY8U08WVihhGR5iRqAwfDiw==", + "license": "MIT", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", "dev": true }, + "node_modules/utility-types": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/utility-types/-/utility-types-3.11.0.tgz", + "integrity": "sha512-6Z7Ma2aVEWisaL6TvBCy7P8rm2LQoPv6dJ7ecIaIixHcwfbJ0x7mWdbcwlIM5IGQxPZSFYeqRCqlOOeKoJYMkw==", + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, "node_modules/vfile": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", @@ -6909,6 +7656,17 @@ } } }, + "node_modules/webgl-constants": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/webgl-constants/-/webgl-constants-1.1.1.tgz", + "integrity": "sha512-LkBXKjU5r9vAW7Gcu3T5u+5cvSvh5WwINdr0C+9jpzVB41cjQAP5ePArDtk/WHYdVj0GefCgM73BA7FlIiNtdg==" + }, + "node_modules/webgl-sdf-generator": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/webgl-sdf-generator/-/webgl-sdf-generator-1.1.1.tgz", + "integrity": "sha512-9Z0JcMTFxeE+b2x1LJTdnaT8rT8aEp7MVxkNwoycNmJWwPdzoXzMh0BjJSh/AEFP+KPYZUli814h8bJZFIZ2jA==", + "license": "MIT" + }, "node_modules/webidl-conversions": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", @@ -6929,7 +7687,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, "dependencies": { "isexe": "^2.0.0" }, @@ -7130,6 +7887,35 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/zustand": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/zustand/-/zustand-5.0.2.tgz", + "integrity": "sha512-8qNdnJVJlHlrKXi50LDqqUNmUbuBjoKLrYQBnoChIbVph7vni+sY+YpvdjXG9YLd/Bxr6scMcR+rm5H3aSqPaw==", + "license": "MIT", + "engines": { + "node": ">=12.20.0" + }, + "peerDependencies": { + "@types/react": ">=18.0.0", + "immer": ">=9.0.6", + "react": ">=18.0.0", + "use-sync-external-store": ">=1.2.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "immer": { + "optional": true + }, + "react": { + "optional": true + }, + "use-sync-external-store": { + "optional": true + } + } + }, "node_modules/zwitch": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz", diff --git a/package.json b/package.json index 413dd2c..6b0083a 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,10 @@ "@radix-ui/react-switch": "^1.1.1", "@radix-ui/react-tabs": "^1.1.1", "@radix-ui/react-tooltip": "^1.0.7", + "@react-three/drei": "^9.120.3", + "@react-three/fiber": "^8.17.10", "@supabase/supabase-js": "^2.47.0", + "@types/three": "^0.170.0", "class-variance-authority": "^0.7.0", "clsx": "^2.1.0", "date-fns": "^3.3.1", @@ -34,7 +37,8 @@ "react-router-dom": "^6.22.3", "react-syntax-highlighter": "^15.5.0", "remark-gfm": "^4.0.0", - "tailwind-merge": "^2.2.1" + "tailwind-merge": "^2.2.1", + "three": "^0.171.0" }, "devDependencies": { "@eslint/js": "^9.9.1", diff --git a/src/components/ui/AIOrb.tsx b/src/components/ui/AIOrb.tsx new file mode 100644 index 0000000..43a66da --- /dev/null +++ b/src/components/ui/AIOrb.tsx @@ -0,0 +1,167 @@ +import React, { useRef, useEffect } from 'react'; +import { Canvas, useFrame } from '@react-three/fiber'; +import { OrbitControls, Sphere } from '@react-three/drei'; +import * as THREE from 'three'; +import { Vector3 } from 'three'; + +const AnimatedSphere = () => { + const sphereRef = useRef(null); + const materialRef = useRef(null); + + // Custom shader for gradient effect without glow + const shaderMaterial = new THREE.ShaderMaterial({ + uniforms: { + time: { value: 0 }, + colorA: { value: new THREE.Color('#f0abfc') }, + colorB: { value: new THREE.Color('#c026d3') }, + colorC: { value: new THREE.Color('#6366f1') } + }, + vertexShader: ` + varying vec2 vUv; + varying vec3 vPosition; + uniform float time; + + void main() { + vUv = uv; + vec3 pos = position; + pos.x += sin(pos.y * 4.0 + time) * 0.05; + pos.y += cos(pos.x * 4.0 + time) * 0.05; + vPosition = pos; + gl_Position = projectionMatrix * modelViewMatrix * vec4(pos, 1.0); + } + `, + fragmentShader: ` + uniform vec3 colorA; + uniform vec3 colorB; + uniform vec3 colorC; + uniform float time; + varying vec2 vUv; + varying vec3 vPosition; + + void main() { + float noise = sin(vPosition.x * 10.0 + time) * 0.5 + 0.5; + vec3 color = mix(colorA, colorB, vUv.y); + color = mix(color, colorC, noise); + gl_FragColor = vec4(color, 1.0); + } + `, + transparent: true, + }); + + useFrame(({ clock, mouse }) => { + if (!sphereRef.current || !materialRef.current) return; + + // Update shader time uniform + materialRef.current.uniforms.time.value = clock.getElapsedTime() * 0.5; // Slower animation + + // Smooth rotation + sphereRef.current.rotation.x = Math.sin(clock.getElapsedTime() * 0.2) * 0.1; + sphereRef.current.rotation.y += 0.0005; + + // Mouse interaction with smoother movement + const target = new Vector3( + (mouse.x * window.innerWidth) / 150, + (mouse.y * window.innerHeight) / 150, + 0 + ); + sphereRef.current.position.lerp(target, 0.03); + }); + + return ( + + + + ); +}; + +const ParticleRing = () => { + const particleCount = 100; // Reduced particle count + const points = Array.from({ length: particleCount }, (_, i) => { + const angle = (i / particleCount) * Math.PI * 2; + const radius = 1.5 + Math.random() * 0.1; + return new THREE.Vector3( + Math.cos(angle) * radius, + Math.sin(angle) * radius, + (Math.random() - 0.5) * 0.2 + ); + }); + + const particleRef = useRef(null); + + useFrame(({ clock }) => { + if (!particleRef.current) return; + particleRef.current.rotation.z = clock.getElapsedTime() * 0.05; + particleRef.current.position.y = Math.sin(clock.getElapsedTime() * 0.3) * 0.05; + }); + + return ( + + + [p.x, p.y, p.z]))} + itemSize={3} + /> + + + + ); +}; + +const AIOrb: React.FC = () => { + useEffect(() => { + // Force hardware acceleration + const canvas = document.createElement('canvas'); + const gl = canvas.getContext('webgl', { + powerPreference: 'high-performance', + antialias: true, + alpha: true, + stencil: false + }); + if (gl) gl.getExtension('WEBGL_lose_context'); + }, []); + + return ( +
+ { + gl.setClearColor(0x000000, 0); + }} + > + + + + + + + + + +
+ ); +}; + +export default AIOrb; diff --git a/src/pages/Home.tsx b/src/pages/Home.tsx index 5c36988..bd0ec5f 100644 --- a/src/pages/Home.tsx +++ b/src/pages/Home.tsx @@ -3,17 +3,21 @@ import { ArrowRight, Brain, Sparkles, Users, FileText, Zap, Shield, MessageSquar import { Link } from 'react-router-dom'; import { Button } from '../components/ui/Button'; import { Header } from '../components/layout/Header'; +import AIOrb from '../components/ui/AIOrb'; function Home() { return (
-
+
{/* Hero Section */} -
+
- +
+ +
+

Advanced Document Intelligence with RAG AI