diff --git a/.vscode/settings.json b/.vscode/settings.json index 8a03b8d..c65781e 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -9,7 +9,7 @@ } }, "[typescriptreact]": { - "editor.defaultFormatter": "esbenp.prettier-vscode", + "editor.defaultFormatter": "vscode.typescript-language-features", "editor.codeActionsOnSave": { "source.fixAll.eslint": true } diff --git a/package.json b/package.json index c7d447d..ba13bbd 100644 --- a/package.json +++ b/package.json @@ -16,8 +16,9 @@ "@emotion/styled": "^11.10.6", "@mui/icons-material": "^5.11.11", "@mui/material": "^5.11.15", - "@react-three/drei": "^9.7.2", - "@react-three/fiber": "^8.12.0", + "@react-three/cannon": "^6.5.2", + "@react-three/drei": "^9.77.1", + "@react-three/fiber": "^8.13.3", "@types/node": "18.14.2", "@types/react": "18.0.28", "@types/react-dom": "18.0.11", @@ -34,7 +35,8 @@ "react-three-fiber": "^6.0.13", "recoil": "^0.7.7", "swr": "^2.1.5", - "three": "^0.150.1", + "three": "^0.153.0", + "three-stdlib": "^2.23.10", "typescript": "<4.8.0" }, "volta": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ed4d334..bf76975 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,5 +1,9 @@ lockfileVersion: '6.0' +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + dependencies: '@emotion/react': specifier: ^11.10.6 @@ -13,12 +17,15 @@ dependencies: '@mui/material': specifier: ^5.11.15 version: 5.11.15(@emotion/react@11.10.6)(@emotion/styled@11.10.6)(@types/react@18.0.28)(react-dom@18.2.0)(react@18.2.0) + '@react-three/cannon': + specifier: ^6.5.2 + version: 6.5.2(@react-three/fiber@8.13.3)(react@18.2.0)(three@0.153.0)(typescript@4.7.4) '@react-three/drei': - specifier: ^9.7.2 - version: 9.7.2(@react-three/fiber@8.12.0)(react-dom@18.2.0)(react@18.2.0)(three@0.150.1) + specifier: ^9.77.1 + version: 9.77.1(@react-three/fiber@8.13.3)(@types/three@0.152.1)(react-dom@18.2.0)(react@18.2.0)(three@0.153.0) '@react-three/fiber': - specifier: ^8.12.0 - version: 8.12.0(react-dom@18.2.0)(react@18.2.0)(three@0.150.1) + specifier: ^8.13.3 + version: 8.13.3(react-dom@18.2.0)(react@18.2.0)(three@0.153.0) '@types/node': specifier: 18.14.2 version: 18.14.2 @@ -60,7 +67,7 @@ dependencies: version: 2.12.0(react@18.2.0) react-three-fiber: specifier: ^6.0.13 - version: 6.0.13(react-dom@18.2.0)(react@18.2.0)(three@0.150.1) + version: 6.0.13(react-dom@18.2.0)(react@18.2.0)(three@0.153.0) recoil: specifier: ^0.7.7 version: 0.7.7(react-dom@18.2.0)(react@18.2.0) @@ -68,8 +75,11 @@ dependencies: specifier: ^2.1.5 version: 2.1.5(react@18.2.0) three: - specifier: ^0.150.1 - version: 0.150.1 + specifier: ^0.153.0 + version: 0.153.0 + three-stdlib: + specifier: ^2.23.10 + version: 2.23.10(three@0.153.0) typescript: specifier: <4.8.0 version: 4.7.4 @@ -92,7 +102,7 @@ devDependencies: version: 7.0.0-alpha.8(react-dom@18.2.0)(react@18.2.0) '@storybook/nextjs': specifier: ^7.0.0-beta.55 - version: 7.0.0-beta.55(@babel/core@7.21.0)(next@13.2.1)(react-dom@18.2.0)(react@18.2.0)(typescript@4.7.4) + version: 7.0.0-beta.55(@babel/core@7.21.0)(esbuild@0.16.17)(next@13.2.1)(react-dom@18.2.0)(react@18.2.0)(typescript@4.7.4)(webpack@5.75.0) '@storybook/react': specifier: ^7.0.0-beta.55 version: 7.0.0-beta.55(react-dom@18.2.0)(react@18.2.0)(typescript@4.7.4) @@ -101,7 +111,7 @@ devDependencies: version: 1.2.3 babel-loader: specifier: ^8.3.0 - version: 8.3.0(@babel/core@7.21.0) + version: 8.3.0(@babel/core@7.21.0)(webpack@5.75.0) eslint-config-next: specifier: 13.2.1 version: 13.2.1(eslint@8.35.0)(typescript@4.7.4) @@ -119,7 +129,7 @@ devDependencies: version: 0.6.11(eslint@8.35.0)(typescript@4.7.4) file-loader: specifier: ^6.2.0 - version: 6.2.0 + version: 6.2.0(webpack@5.75.0) hygen: specifier: ^6.2.11 version: 6.2.11 @@ -1975,6 +1985,10 @@ packages: react: 18.2.0 dev: true + /@mediapipe/tasks-vision@0.10.2-rc2: + resolution: {integrity: sha512-b9ar6TEUo8I07n/jXSuKDu5HgzkDah9pe4H8BYpcubhCEahlfDD5ixE+9SQyJM4HXHXdF9nN/wRQT7rEnLz7Gg==} + dev: false + /@mui/base@5.0.0-alpha.123(@types/react@18.0.28)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-pxzcAfET3I6jvWqS4kijiLMn1OmdMw+mGmDa0SqmDZo3bXXdvLhpCCPqCkULG3UykhvFCOcU5HclOX3JCA+Zhg==} engines: {node: '>=12.0.0'} @@ -2297,7 +2311,7 @@ packages: tslib: 2.5.0 dev: true - /@pmmmwh/react-refresh-webpack-plugin@0.5.10(react-refresh@0.11.0): + /@pmmmwh/react-refresh-webpack-plugin@0.5.10(react-refresh@0.11.0)(webpack@5.75.0): resolution: {integrity: sha512-j0Ya0hCFZPd4x40qLzbhGsh9TMtdb+CJQiso+WxLOPNasohq9cc5SNUcwsZaRH6++Xh91Xkm/xHCkuIiIu0LUA==} engines: {node: '>= 10.13'} peerDependencies: @@ -2333,8 +2347,17 @@ packages: react-refresh: 0.11.0 schema-utils: 3.1.1 source-map: 0.7.4 + webpack: 5.75.0(esbuild@0.16.17) dev: true + /@pmndrs/cannon-worker-api@2.3.2(three@0.153.0): + resolution: {integrity: sha512-+4YGTH7XfSvUYUa65LoltcDMRLu3lr7rFtHT9dmeCeu2JJ7Zg2xBFJ5wiWSJmcM1ECh2R0YDcROdEQ1JKpOgFA==} + peerDependencies: + three: '>=0.139' + dependencies: + three: 0.153.0 + dev: false + /@popperjs/core@2.11.7: resolution: {integrity: sha512-Cr4OjIkipTtcXKjAsm8agyleBuDHvxzeBoa1v543lbv1YaIwQjESsVcmjiWiPEbC1FIeHOG/Op9kdCmAmiS3Kw==} dev: false @@ -2375,7 +2398,7 @@ packages: react: 18.2.0 dev: false - /@react-spring/three@9.6.1(@react-three/fiber@8.12.0)(react@18.2.0)(three@0.150.1): + /@react-spring/three@9.6.1(@react-three/fiber@8.13.3)(react@18.2.0)(three@0.153.0): resolution: {integrity: sha512-Tyw2YhZPKJAX3t2FcqvpLRb71CyTe1GvT3V+i+xJzfALgpk10uPGdGaQQ5Xrzmok1340DAeg2pR/MCfaW7b8AA==} peerDependencies: '@react-three/fiber': '>=6.0' @@ -2386,17 +2409,34 @@ packages: '@react-spring/core': 9.6.1(react@18.2.0) '@react-spring/shared': 9.6.1(react@18.2.0) '@react-spring/types': 9.6.1 - '@react-three/fiber': 8.12.0(react-dom@18.2.0)(react@18.2.0)(three@0.150.1) + '@react-three/fiber': 8.13.3(react-dom@18.2.0)(react@18.2.0)(three@0.153.0) react: 18.2.0 - three: 0.150.1 + three: 0.153.0 dev: false /@react-spring/types@9.6.1: resolution: {integrity: sha512-POu8Mk0hIU3lRXB3bGIGe4VHIwwDsQyoD1F394OK7STTiX9w4dG3cTLljjYswkQN+hDSHRrj4O36kuVa7KPU8Q==} dev: false - /@react-three/drei@9.7.2(@react-three/fiber@8.12.0)(react-dom@18.2.0)(react@18.2.0)(three@0.150.1): - resolution: {integrity: sha512-3awhZKYTjdQ6lENPGgE4Q/Xl1p6E6WlEOBvNi428INnd+9+vT+/Kx7vmrRQA8bcX0GHQM7ljYKK5twtzVYe6SQ==} + /@react-three/cannon@6.5.2(@react-three/fiber@8.13.3)(react@18.2.0)(three@0.153.0)(typescript@4.7.4): + resolution: {integrity: sha512-d7qH2XMVtHRkCaMUWpLkWSD9JPiE570gy8LoP7WBw+Ui+hI9ZiFx9HDaX5+Y6wzbGJd1WvELWaG9O0cOtk2rmw==} + peerDependencies: + '@react-three/fiber': '>=8' + react: '>=18' + three: '>=0.139' + dependencies: + '@pmndrs/cannon-worker-api': 2.3.2(three@0.153.0) + '@react-three/fiber': 8.13.3(react-dom@18.2.0)(react@18.2.0)(three@0.153.0) + cannon-es: 0.20.0 + cannon-es-debugger: 1.0.0(cannon-es@0.20.0)(three@0.153.0)(typescript@4.7.4) + react: 18.2.0 + three: 0.153.0 + transitivePeerDependencies: + - typescript + dev: false + + /@react-three/drei@9.77.1(@react-three/fiber@8.13.3)(@types/three@0.152.1)(react-dom@18.2.0)(react@18.2.0)(three@0.153.0): + resolution: {integrity: sha512-X8S8Yk8Ku7ql9sMtFD4i5itpEDJmGRIOw8VUpk0sbnNwUGPErlziZubGm/QXbUhDqkus0z7B+YcDarpEuVy+qg==} peerDependencies: '@react-three/fiber': '>=8.0' react: '>=18.0' @@ -2407,30 +2447,36 @@ packages: optional: true dependencies: '@babel/runtime': 7.21.0 - '@react-spring/three': 9.6.1(@react-three/fiber@8.12.0)(react@18.2.0)(three@0.150.1) - '@react-three/fiber': 8.12.0(react-dom@18.2.0)(react@18.2.0)(three@0.150.1) + '@mediapipe/tasks-vision': 0.10.2-rc2 + '@react-spring/three': 9.6.1(@react-three/fiber@8.13.3)(react@18.2.0)(three@0.153.0) + '@react-three/fiber': 8.13.3(react-dom@18.2.0)(react@18.2.0)(three@0.153.0) '@use-gesture/react': 10.2.24(react@18.2.0) - detect-gpu: 4.0.50 + camera-controls: 2.6.0(three@0.153.0) + detect-gpu: 5.0.29 glsl-noise: 0.0.0 + lodash.clamp: 4.0.3 lodash.omit: 4.5.0 lodash.pick: 4.4.0 - meshline: 2.0.4(three@0.150.1) + maath: 0.6.0(@types/three@0.152.1)(three@0.153.0) + meshline: 3.1.6(three@0.153.0) react: 18.2.0 react-composer: 5.0.3(react@18.2.0) react-dom: 18.2.0(react@18.2.0) react-merge-refs: 1.1.0 stats.js: 0.17.0 - suspend-react: 0.0.8(react@18.2.0) - three: 0.150.1 - three-mesh-bvh: 0.5.23(three@0.150.1) - three-stdlib: 2.21.8(three@0.150.1) - troika-three-text: 0.46.4(three@0.150.1) + suspend-react: 0.1.3(react@18.2.0) + three: 0.153.0 + three-mesh-bvh: 0.6.0(three@0.153.0) + three-stdlib: 2.23.10(three@0.153.0) + troika-three-text: 0.47.2(three@0.153.0) utility-types: 3.10.0 zustand: 3.7.2(react@18.2.0) + transitivePeerDependencies: + - '@types/three' dev: false - /@react-three/fiber@8.12.0(react-dom@18.2.0)(react@18.2.0)(three@0.150.1): - resolution: {integrity: sha512-o6DkNtNHqcOFRbxaiY5xayelE/9+Z0z9wWu5awqjVbc0c/1QM6AttJH6rKW0U/O6LWxSfxDTARXVzknZqpDJ7A==} + /@react-three/fiber@8.13.3(react-dom@18.2.0)(react@18.2.0)(three@0.153.0): + resolution: {integrity: sha512-mCdTUB8D1kwlsOSxGhUg5nuGHt3HN3aNFc0s9I/N7ayk+nzT2ttLdn49c56nrHu+YK+SU1xnrxe6LqftZgIRmQ==} peerDependencies: expo: '>=43.0' expo-asset: '>=8.4' @@ -2459,13 +2505,13 @@ packages: react-reconciler: 0.27.0(react@18.2.0) react-use-measure: 2.1.1(react-dom@18.2.0)(react@18.2.0) scheduler: 0.21.0 - suspend-react: 0.0.8(react@18.2.0) - three: 0.150.1 + suspend-react: 0.1.3(react@18.2.0) + three: 0.153.0 zustand: 3.7.2(react@18.2.0) dev: false - /@react-three/fiber@8.13.0(react-dom@18.2.0)(react@18.2.0)(three@0.150.1): - resolution: {integrity: sha512-hPFzFNgikEMyEbL+NpSA7q+UWZxInrrkJldWaCR2w34Fwf20x9p68bsyN0/yn9oM2VlWoJcJjR8hw1tN9AxHuA==} + /@react-three/fiber@8.13.4(react-dom@18.2.0)(react@18.2.0)(three@0.153.0): + resolution: {integrity: sha512-OmyRKt9JU2i/Rc3uw4A+zERXKkFdu8slJjWQZfacoFNHIzGP9QVQ9XxlJWgTbgTLIOD39cUgnmH3RZZGWJqAoQ==} peerDependencies: expo: '>=43.0' expo-asset: '>=8.4' @@ -2494,8 +2540,8 @@ packages: react-reconciler: 0.27.0(react@18.2.0) react-use-measure: 2.1.1(react-dom@18.2.0)(react@18.2.0) scheduler: 0.21.0 - suspend-react: 0.0.8(react@18.2.0) - three: 0.150.1 + suspend-react: 0.1.3(react@18.2.0) + three: 0.153.0 zustand: 3.7.2(react@18.2.0) dev: false @@ -2711,7 +2757,7 @@ packages: dependencies: '@storybook/client-logger': 7.0.0-beta.55 '@storybook/core-events': 7.0.0-beta.55 - '@storybook/csf': 0.0.2-next.11 + '@storybook/csf': 0.1.1-next.0 '@storybook/global': 5.0.0 '@storybook/manager-api': 7.0.0-beta.55(react-dom@18.2.0)(react@18.2.0) '@storybook/preview-api': 7.0.0-beta.55 @@ -2932,7 +2978,7 @@ packages: '@storybook/client-logger': 7.0.0-beta.55 '@storybook/components': 7.0.0-beta.55(react-dom@18.2.0)(react@18.2.0) '@storybook/core-events': 7.0.0-beta.55 - '@storybook/csf': 0.0.2-next.11 + '@storybook/csf': 0.1.1-next.0 '@storybook/docs-tools': 7.0.0-beta.55 '@storybook/global': 5.0.0 '@storybook/manager-api': 7.0.0-beta.55(react-dom@18.2.0)(react@18.2.0) @@ -2980,7 +3026,7 @@ packages: - supports-color dev: true - /@storybook/builder-webpack5@7.0.0-beta.55(react-dom@18.2.0)(react@18.2.0)(typescript@4.7.4): + /@storybook/builder-webpack5@7.0.0-beta.55(esbuild@0.16.17)(react-dom@18.2.0)(react@18.2.0)(typescript@4.7.4): resolution: {integrity: sha512-LeM956TmpRWn/4DLGb4gRzQcVK0d9vzlQ5xz/Ify1Gx9HpXKXXwlYEsFyQn8BJTVACHgBjMpU+b+ZQESB+pXnw==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 @@ -3028,12 +3074,12 @@ packages: semver: 7.3.8 slash: 3.0.0 style-loader: 3.3.1(webpack@5.75.0) - terser-webpack-plugin: 5.3.6(webpack@5.75.0) + terser-webpack-plugin: 5.3.6(esbuild@0.16.17)(webpack@5.75.0) ts-dedent: 2.2.0 typescript: 4.7.4 util: 0.12.5 util-deprecate: 1.0.2 - webpack: 5.75.0 + webpack: 5.75.0(esbuild@0.16.17) webpack-dev-middleware: 5.3.3(webpack@5.75.0) webpack-hot-middleware: 2.25.3 webpack-virtual-modules: 0.4.6 @@ -3165,7 +3211,7 @@ packages: '@babel/core': 7.21.0 '@babel/preset-env': 7.20.2(@babel/core@7.21.0) '@babel/types': 7.21.2 - '@storybook/csf': 0.0.2-next.11 + '@storybook/csf': 0.1.1-next.0 '@storybook/csf-tools': 7.0.0-beta.55 '@storybook/node-logger': 7.0.0-beta.55 '@storybook/types': 7.0.0-beta.55 @@ -3204,7 +3250,7 @@ packages: react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 dependencies: '@storybook/client-logger': 7.0.0-beta.55 - '@storybook/csf': 0.0.2-next.11 + '@storybook/csf': 0.1.1-next.0 '@storybook/global': 5.0.0 '@storybook/theming': 7.0.0-beta.55(react-dom@18.2.0)(react@18.2.0) '@storybook/types': 7.0.0-beta.55 @@ -3267,7 +3313,7 @@ packages: '@storybook/builder-manager': 7.0.0-beta.55 '@storybook/core-common': 7.0.0-beta.55 '@storybook/core-events': 7.0.0-beta.55 - '@storybook/csf': 0.0.2-next.11 + '@storybook/csf': 0.1.1-next.0 '@storybook/csf-tools': 7.0.0-beta.55 '@storybook/docs-mdx': 0.0.1-next.7 '@storybook/global': 5.0.0 @@ -3335,7 +3381,7 @@ packages: resolution: {integrity: sha512-CQQryzQw2Glz7T5w3u0hbb7S3ukuwBfECoAzdMreu1Lv9y6kbKidZiQkBLNTqGq2QV3cmUe5dHntnsk9LKejCw==} dependencies: '@babel/types': 7.21.2 - '@storybook/csf': 0.0.2-next.11 + '@storybook/csf': 0.1.1-next.0 '@storybook/types': 7.0.0-beta.55 fs-extra: 11.1.0 recast: 0.23.1 @@ -3360,8 +3406,8 @@ packages: lodash: 4.17.21 dev: true - /@storybook/csf@0.0.2-next.11: - resolution: {integrity: sha512-xGt0YSVxZb43sKmEf1GIQD8xEbo+c+S6khDEL7Qu/pYA0gh5z3WUuhOlovnelYj/YJod+XRsfVvk23AaRfUJ4Q==} + /@storybook/csf@0.1.1-next.0: + resolution: {integrity: sha512-2M8E4CZOVW77P9lrgZZc2rcwxhNKVVykpzbcAauc3bots7xvDJMG60EasMRB/Y+cfqnSu6aaSUEVmKHTKsVJ3A==} dependencies: type-fest: 2.19.0 dev: true @@ -3422,7 +3468,7 @@ packages: '@storybook/channels': 7.0.0-beta.55 '@storybook/client-logger': 7.0.0-beta.55 '@storybook/core-events': 7.0.0-beta.55 - '@storybook/csf': 0.0.2-next.11 + '@storybook/csf': 0.1.1-next.0 '@storybook/global': 5.0.0 '@storybook/router': 7.0.0-beta.55(react-dom@18.2.0)(react@18.2.0) '@storybook/theming': 7.0.0-beta.55(react-dom@18.2.0)(react@18.2.0) @@ -3446,7 +3492,7 @@ packages: resolution: {integrity: sha512-ONvFBZySHsBIkUYGrUM8FCG2tDKf663TIErztPSOghOpmBGyFLjSsXJHkNWiRi4c740PoemLqJd2XZZVlXRVLQ==} dev: true - /@storybook/nextjs@7.0.0-beta.55(@babel/core@7.21.0)(next@13.2.1)(react-dom@18.2.0)(react@18.2.0)(typescript@4.7.4): + /@storybook/nextjs@7.0.0-beta.55(@babel/core@7.21.0)(esbuild@0.16.17)(next@13.2.1)(react-dom@18.2.0)(react@18.2.0)(typescript@4.7.4)(webpack@5.75.0): resolution: {integrity: sha512-ZM72toKW1dWDh+1Fsn4Ja8/p4X+9pbulbp01TRjw0apsETz71wfcehszWOO8fbIBxCou+0yuwvFvdGHBZRumyg==} engines: {node: '>=16.0.0'} peerDependencies: @@ -3481,14 +3527,14 @@ packages: '@babel/runtime': 7.21.0 '@next/font': 13.2.1 '@storybook/addon-actions': 7.0.0-beta.55(react-dom@18.2.0)(react@18.2.0) - '@storybook/builder-webpack5': 7.0.0-beta.55(react-dom@18.2.0)(react@18.2.0)(typescript@4.7.4) + '@storybook/builder-webpack5': 7.0.0-beta.55(esbuild@0.16.17)(react-dom@18.2.0)(react@18.2.0)(typescript@4.7.4) '@storybook/core-common': 7.0.0-beta.55 '@storybook/node-logger': 7.0.0-beta.55 - '@storybook/preset-react-webpack': 7.0.0-beta.55(@babel/core@7.21.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.7.4) + '@storybook/preset-react-webpack': 7.0.0-beta.55(@babel/core@7.21.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.7.4)(webpack@5.75.0) '@storybook/preview-api': 7.0.0-beta.55 '@storybook/react': 7.0.0-beta.55(react-dom@18.2.0)(react@18.2.0)(typescript@4.7.4) '@types/node': 16.18.13 - css-loader: 6.7.3 + css-loader: 6.7.3(webpack@5.75.0) find-up: 5.0.0 fs-extra: 11.1.0 image-size: 1.0.2 @@ -3496,18 +3542,19 @@ packages: next: 13.2.1(@babel/core@7.21.0)(react-dom@18.2.0)(react@18.2.0) pnp-webpack-plugin: 1.7.0(typescript@4.7.4) postcss: 8.4.21 - postcss-loader: 7.0.2(postcss@8.4.21) + postcss-loader: 7.0.2(postcss@8.4.21)(webpack@5.75.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) resolve-url-loader: 5.0.0 - sass-loader: 12.6.0 + sass-loader: 12.6.0(webpack@5.75.0) semver: 7.3.8 - style-loader: 3.3.1 + style-loader: 3.3.1(webpack@5.75.0) styled-jsx: 5.1.1(@babel/core@7.21.0)(react@18.2.0) ts-dedent: 2.2.0 tsconfig-paths: 4.1.2 tsconfig-paths-webpack-plugin: 3.5.2 typescript: 4.7.4 + webpack: 5.75.0(esbuild@0.16.17) transitivePeerDependencies: - '@swc/core' - '@types/webpack' @@ -3541,7 +3588,7 @@ packages: resolution: {integrity: sha512-iiLb+Xb97fZfLhtGq1tgllhRT23djmKv95URgTAK6dX932G4/V/1QwZ5FYOmt0o99i+o7O3UOWxXwOzum4VrVg==} dev: true - /@storybook/preset-react-webpack@7.0.0-beta.55(@babel/core@7.21.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.7.4): + /@storybook/preset-react-webpack@7.0.0-beta.55(@babel/core@7.21.0)(react-dom@18.2.0)(react@18.2.0)(typescript@4.7.4)(webpack@5.75.0): resolution: {integrity: sha512-AAbwaDI8Mcv80sEfJgdBjDF5NRdLI2lShgC/U/vc/EOZZ7QWroshfhdbV3n7q2GyLGPeqyf6NOTCBDX/NQ/NpA==} engines: {node: '>=16.0.0'} peerDependencies: @@ -3559,12 +3606,12 @@ packages: '@babel/core': 7.21.0 '@babel/preset-flow': 7.18.6(@babel/core@7.21.0) '@babel/preset-react': 7.18.6(@babel/core@7.21.0) - '@pmmmwh/react-refresh-webpack-plugin': 0.5.10(react-refresh@0.11.0) + '@pmmmwh/react-refresh-webpack-plugin': 0.5.10(react-refresh@0.11.0)(webpack@5.75.0) '@storybook/core-webpack': 7.0.0-beta.55 '@storybook/docs-tools': 7.0.0-beta.55 '@storybook/node-logger': 7.0.0-beta.55 '@storybook/react': 7.0.0-beta.55(react-dom@18.2.0)(react@18.2.0)(typescript@4.7.4) - '@storybook/react-docgen-typescript-plugin': 1.0.2-canary.6.9d540b91e815f8fc2f8829189deb00553559ff63.0(typescript@4.7.4) + '@storybook/react-docgen-typescript-plugin': 1.0.2-canary.6.9d540b91e815f8fc2f8829189deb00553559ff63.0(typescript@4.7.4)(webpack@5.75.0) '@types/node': 16.18.13 '@types/semver': 7.3.13 babel-plugin-add-react-displayname: 0.0.5 @@ -3575,6 +3622,7 @@ packages: react-refresh: 0.11.0 semver: 7.3.8 typescript: 4.7.4 + webpack: 5.75.0(esbuild@0.16.17) transitivePeerDependencies: - '@types/webpack' - sockjs-client @@ -3592,7 +3640,7 @@ packages: '@storybook/channels': 7.0.0-beta.55 '@storybook/client-logger': 7.0.0-beta.55 '@storybook/core-events': 7.0.0-beta.55 - '@storybook/csf': 0.0.2-next.11 + '@storybook/csf': 0.1.1-next.0 '@storybook/global': 5.0.0 '@storybook/types': 7.0.0-beta.55 '@types/qs': 6.9.7 @@ -3632,7 +3680,7 @@ packages: resolution: {integrity: sha512-zIEa4PIInI7ZUEVUNqYHI9CLhSZnq2kdvdhDpJRLq8rZTgEIVcyf/xNDeFPnJxQ50ePqghKPEvpBMawsT5Tukw==} dev: true - /@storybook/react-docgen-typescript-plugin@1.0.2-canary.6.9d540b91e815f8fc2f8829189deb00553559ff63.0(typescript@4.7.4): + /@storybook/react-docgen-typescript-plugin@1.0.2-canary.6.9d540b91e815f8fc2f8829189deb00553559ff63.0(typescript@4.7.4)(webpack@5.75.0): resolution: {integrity: sha512-eVg3BxlOm2P+chijHBTByr90IZVUtgRW56qEOLX7xlww2NBuKrcavBlcmn+HH7GIUktquWkMPtvy6e0W0NgA5w==} peerDependencies: typescript: '>= 3.x' @@ -3646,6 +3694,7 @@ packages: react-docgen-typescript: 2.2.2(typescript@4.7.4) tslib: 2.5.0 typescript: 4.7.4 + webpack: 5.75.0(esbuild@0.16.17) transitivePeerDependencies: - supports-color dev: true @@ -3884,6 +3933,10 @@ packages: resolution: {integrity: sha512-w5jZ0ee+HaPOaX25X2/2oGR/7rgAQSYII7X7pp0m9KgBfMP7uKfMfTvcpl5Dj+eDBbpxKGiqE+flqDr6XTd2RA==} dev: true + /@types/draco3d@1.4.2: + resolution: {integrity: sha512-goh23EGr6CLV6aKPwN1p8kBD/7tT5V/bLpToSbarKrwVejqNrspVrv8DhliteYkkhZYrlq/fwKZRRUzH4XN88w==} + dev: false + /@types/ejs@3.1.2: resolution: {integrity: sha512-ZmiaE3wglXVWBM9fyVC17aGPkLo/UgaOjEiI2FXQfyczrCefORPxIe+2dVmnmk3zkVIbizjrlQzmPGhSYGXG5g==} dev: true @@ -4371,10 +4424,6 @@ packages: '@xtuc/long': 4.2.2 dev: true - /@webgpu/glslang@0.0.15: - resolution: {integrity: sha512-niT+Prh3Aff8Uf1MVBVUsaNjFj9rJAKDXuoHIKiQbB+6IUP/3J3JIhBNyZ7lDhytvXxw6ppgnwKZdDJ08UMj4Q==} - dev: false - /@xtuc/ieee754@1.2.0: resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==} dev: true @@ -4475,8 +4524,10 @@ packages: indent-string: 4.0.0 dev: true - /ajv-formats@2.1.1: + /ajv-formats@2.1.1(ajv@8.12.0): resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} + peerDependencies: + ajv: ^8.0.0 peerDependenciesMeta: ajv: optional: true @@ -4727,7 +4778,7 @@ packages: '@babel/core': 7.21.0 dev: true - /babel-loader@8.3.0(@babel/core@7.21.0): + /babel-loader@8.3.0(@babel/core@7.21.0)(webpack@5.75.0): resolution: {integrity: sha512-H8SvsMF+m9t15HNLMipppzkC+Y2Yq+v3SonZyU70RBL/h1gxPkH08Ot8pEE9Z4Kd+czyWJClmFS8qzIP9OZ04Q==} engines: {node: '>= 8.9'} peerDependencies: @@ -4739,6 +4790,7 @@ packages: loader-utils: 2.0.4 make-dir: 3.1.0 schema-utils: 2.7.1 + webpack: 5.75.0(esbuild@0.16.17) dev: true /babel-loader@9.1.2(@babel/core@7.21.0)(webpack@5.75.0): @@ -4751,7 +4803,7 @@ packages: '@babel/core': 7.21.0 find-cache-dir: 3.3.2 schema-utils: 4.0.0 - webpack: 5.75.0 + webpack: 5.75.0(esbuild@0.16.17) dev: true /babel-plugin-add-react-displayname@0.0.5: @@ -5079,9 +5131,36 @@ packages: engines: {node: '>=10'} dev: true + /camera-controls@2.6.0(three@0.153.0): + resolution: {integrity: sha512-65vkZ+FQfRLtq5LHrNuDFeOALN8+gfoRFuIOwYwgwzVY7bjBxP+j3joj6RTgc5Ot+dTJupFWwfcq7ds4Iq4DGg==} + peerDependencies: + three: '>=0.126.1' + dependencies: + three: 0.153.0 + dev: false + /caniuse-lite@1.0.30001458: resolution: {integrity: sha512-lQ1VlUUq5q9ro9X+5gOEyH7i3vm+AYVT1WDCVB69XOZ17KZRhnZ9J0Sqz7wTHQaLBJccNCHq8/Ww5LlOIZbB0w==} + /cannon-es-debugger@1.0.0(cannon-es@0.20.0)(three@0.153.0)(typescript@4.7.4): + resolution: {integrity: sha512-sE9lDOBAYFKlh+0w+cvWKwUhJef8HYnUSVPWPL0jD15MAuVRQKno4QYZSGxgOoJkMR3mQqxL4bxys2b3RSWH8g==} + peerDependencies: + cannon-es: 0.x + three: 0.x + typescript: '>=3.8' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + cannon-es: 0.20.0 + three: 0.153.0 + typescript: 4.7.4 + dev: false + + /cannon-es@0.20.0: + resolution: {integrity: sha512-eZhWTZIkFOnMAJOgfXJa9+b3kVlvG+FX4mdkpePev/w/rP5V8NRquGyEozcjPfEoXUlb+p7d9SUcmDSn14prOA==} + dev: false + /case-sensitive-paths-webpack-plugin@2.4.0: resolution: {integrity: sha512-roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw==} engines: {node: '>=4'} @@ -5423,22 +5502,6 @@ packages: engines: {node: '>=8'} dev: true - /css-loader@6.7.3: - resolution: {integrity: sha512-qhOH1KlBMnZP8FzRO6YCH9UHXQhVMcEGLyNdb7Hv2cpcmJbW0YrddO+tG1ab5nT41KpHIYGsbeHqxB9xPu1pKQ==} - engines: {node: '>= 12.13.0'} - peerDependencies: - webpack: ^5.0.0 - dependencies: - icss-utils: 5.1.0(postcss@8.4.21) - postcss: 8.4.21 - postcss-modules-extract-imports: 3.0.0(postcss@8.4.21) - postcss-modules-local-by-default: 4.0.0(postcss@8.4.21) - postcss-modules-scope: 3.0.0(postcss@8.4.21) - postcss-modules-values: 4.0.0(postcss@8.4.21) - postcss-value-parser: 4.2.0 - semver: 7.3.8 - dev: true - /css-loader@6.7.3(webpack@5.75.0): resolution: {integrity: sha512-qhOH1KlBMnZP8FzRO6YCH9UHXQhVMcEGLyNdb7Hv2cpcmJbW0YrddO+tG1ab5nT41KpHIYGsbeHqxB9xPu1pKQ==} engines: {node: '>= 12.13.0'} @@ -5453,7 +5516,7 @@ packages: postcss-modules-values: 4.0.0(postcss@8.4.21) postcss-value-parser: 4.2.0 semver: 7.3.8 - webpack: 5.75.0 + webpack: 5.75.0(esbuild@0.16.17) dev: true /css-select@4.3.0: @@ -5652,8 +5715,8 @@ packages: engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} dev: true - /detect-gpu@4.0.50: - resolution: {integrity: sha512-T67HE5+ONONN8rPXCBJPupyCg2QT8+l2NUUMuPxAppsMJBDPG/Jg0URLs6GyDzLm2niUE+oncIHSuy3VinoPeQ==} + /detect-gpu@5.0.29: + resolution: {integrity: sha512-DEqWxHXAKaoIHxF0rtFPDdWWINGoketQ6fk64KbahK3IC0I0LiZR6NbWZo4pwf7UH8khBLY8w4wS+1MHi81LSQ==} dependencies: webgl-constants: 1.1.1 dev: false @@ -6498,7 +6561,7 @@ packages: dependencies: flat-cache: 3.0.4 - /file-loader@6.2.0: + /file-loader@6.2.0(webpack@5.75.0): resolution: {integrity: sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==} engines: {node: '>= 10.13.0'} peerDependencies: @@ -6506,6 +6569,7 @@ packages: dependencies: loader-utils: 2.0.4 schema-utils: 3.1.1 + webpack: 5.75.0(esbuild@0.16.17) dev: true /file-system-cache@2.0.2: @@ -6650,7 +6714,7 @@ packages: semver: 7.3.8 tapable: 2.2.1 typescript: 4.7.4 - webpack: 5.75.0 + webpack: 5.75.0(esbuild@0.16.17) dev: true /form-data@3.0.1: @@ -7147,7 +7211,7 @@ packages: lodash: 4.17.21 pretty-error: 4.0.0 tapable: 2.2.1 - webpack: 5.75.0 + webpack: 5.75.0(esbuild@0.16.17) dev: true /htmlparser2@6.1.0: @@ -7977,6 +8041,10 @@ packages: dependencies: p-locate: 5.0.0 + /lodash.clamp@4.0.3: + resolution: {integrity: sha512-HvzRFWjtcguTW7yd8NJBshuNaCa8aqNFtnswdT7f/cMd/1YKy5Zzoq4W/Oxvnx9l7aeY258uSdDfM793+eLsVg==} + dev: false + /lodash.debounce@4.0.8: resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} dev: true @@ -8047,6 +8115,16 @@ packages: yallist: 4.0.0 dev: true + /maath@0.6.0(@types/three@0.152.1)(three@0.153.0): + resolution: {integrity: sha512-dSb2xQuP7vDnaYqfoKzlApeRcR2xtN8/f7WV/TMAkBC8552TwTLtOO0JTcSygkYMjNDPoo6V01jTw/aPi4JrMw==} + peerDependencies: + '@types/three': '>=0.144.0' + three: '>=0.144.0' + dependencies: + '@types/three': 0.152.1 + three: 0.153.0 + dev: false + /make-dir@2.1.0: resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==} engines: {node: '>=6'} @@ -8172,12 +8250,12 @@ packages: engines: {node: '>= 8'} dev: true - /meshline@2.0.4(three@0.150.1): - resolution: {integrity: sha512-Jh6DJl/zLqA4xsKvGv5950jr2ukyXQE1wgxs8u94cImHrvL6soVIggqjP+2hVHZXGYaKnWszhtjuCbKNeQyYiw==} + /meshline@3.1.6(three@0.153.0): + resolution: {integrity: sha512-8JZJOdaL5oz3PI/upG8JvP/5FfzYUOhrkJ8np/WKvXzl0/PZ2V9pqTvCIjSKv+w9ccg2xb+yyBhXAwt6ier3ug==} peerDependencies: three: '>=0.137' dependencies: - three: 0.150.1 + three: 0.153.0 dev: false /methods@1.1.2: @@ -9028,7 +9106,7 @@ packages: '@babel/runtime': 7.21.0 dev: true - /postcss-loader@7.0.2(postcss@8.4.21): + /postcss-loader@7.0.2(postcss@8.4.21)(webpack@5.75.0): resolution: {integrity: sha512-fUJzV/QH7NXUAqV8dWJ9Lg4aTkDCezpTS5HgJ2DvqznexTbSTxgi/dTECvTZ15BwKTtk8G/bqI/QTu2HPd3ZCg==} engines: {node: '>= 14.15.0'} peerDependencies: @@ -9039,6 +9117,7 @@ packages: klona: 2.0.6 postcss: 8.4.21 semver: 7.3.8 + webpack: 5.75.0(esbuild@0.16.17) dev: true /postcss-modules-extract-imports@3.0.0(postcss@8.4.21): @@ -9451,7 +9530,7 @@ packages: engines: {node: '>=0.10.0'} dev: true - /react-three-fiber@6.0.13(react-dom@18.2.0)(react@18.2.0)(three@0.150.1): + /react-three-fiber@6.0.13(react-dom@18.2.0)(react@18.2.0)(three@0.153.0): resolution: {integrity: sha512-uShQnkMVLvnzwf3YzY9mnzCnpmLpvTQkc0ycrtwk8fyjXmZt2695tLn3tufPF6uxq06UKJRKJcjCVCMXyUcEPQ==} deprecated: react-three-fiber has been deprecated, please use @react-three/fiber from now on peerDependencies: @@ -9462,10 +9541,10 @@ packages: react-dom: optional: true dependencies: - '@react-three/fiber': 8.13.0(react-dom@18.2.0)(react@18.2.0)(three@0.150.1) + '@react-three/fiber': 8.13.4(react-dom@18.2.0)(react@18.2.0)(three@0.153.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - three: 0.150.1 + three: 0.153.0 transitivePeerDependencies: - expo - expo-asset @@ -9833,7 +9912,7 @@ packages: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} dev: true - /sass-loader@12.6.0: + /sass-loader@12.6.0(webpack@5.75.0): resolution: {integrity: sha512-oLTaH0YCtX4cfnJZxKSLAyglED0naiYfNG1iXfU5w1LNZ+ukoA5DtyDIN5zmKVZwYNJP4KRc5Y3hkWga+7tYfA==} engines: {node: '>= 12.13.0'} peerDependencies: @@ -9854,6 +9933,7 @@ packages: dependencies: klona: 2.0.6 neo-async: 2.6.2 + webpack: 5.75.0(esbuild@0.16.17) dev: true /scheduler@0.21.0: @@ -9891,7 +9971,7 @@ packages: dependencies: '@types/json-schema': 7.0.11 ajv: 8.12.0 - ajv-formats: 2.1.1 + ajv-formats: 2.1.1(ajv@8.12.0) ajv-keywords: 5.1.0(ajv@8.12.0) dev: true @@ -10246,20 +10326,13 @@ packages: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} - /style-loader@3.3.1: - resolution: {integrity: sha512-GPcQ+LDJbrcxHORTRes6Jy2sfvK2kS6hpSfI/fXhPt+spVzxF6LJ1dHLN9zIGmVaaP044YKaIatFaufENRiDoQ==} - engines: {node: '>= 12.13.0'} - peerDependencies: - webpack: ^5.0.0 - dev: true - /style-loader@3.3.1(webpack@5.75.0): resolution: {integrity: sha512-GPcQ+LDJbrcxHORTRes6Jy2sfvK2kS6hpSfI/fXhPt+spVzxF6LJ1dHLN9zIGmVaaP044YKaIatFaufENRiDoQ==} engines: {node: '>= 12.13.0'} peerDependencies: webpack: ^5.0.0 dependencies: - webpack: 5.75.0 + webpack: 5.75.0(esbuild@0.16.17) dev: true /style-to-object@0.4.1: @@ -10312,8 +10385,8 @@ packages: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} - /suspend-react@0.0.8(react@18.2.0): - resolution: {integrity: sha512-ZC3r8Hu1y0dIThzsGw0RLZplnX9yXwfItcvaIzJc2VQVi8TGyGDlu92syMB5ulybfvGLHAI5Ghzlk23UBPF8xg==} + /suspend-react@0.1.3(react@18.2.0): + resolution: {integrity: sha512-aqldKgX9aZqpoDp3e8/BZ8Dm7x1pJl+qI3ZKxDN0i/IQTWUwBx/ManmlVJ3wowqbno6c2bmiIfs+Um6LbsjJyQ==} peerDependencies: react: '>=17.0' dependencies: @@ -10429,7 +10502,7 @@ packages: unique-string: 2.0.0 dev: true - /terser-webpack-plugin@5.3.6(webpack@5.75.0): + /terser-webpack-plugin@5.3.6(esbuild@0.16.17)(webpack@5.75.0): resolution: {integrity: sha512-kfLFk+PoLUQIbLmB1+PZDMRSZS99Mp+/MHqDNmMA6tOItzRt+Npe3E+fsMs5mfcM0wCtrrdU387UnV+vnSffXQ==} engines: {node: '>= 10.13.0'} peerDependencies: @@ -10446,11 +10519,12 @@ packages: optional: true dependencies: '@jridgewell/trace-mapping': 0.3.17 + esbuild: 0.16.17 jest-worker: 27.5.1 schema-utils: 3.1.1 serialize-javascript: 6.0.1 terser: 5.16.5 - webpack: 5.75.0 + webpack: 5.75.0(esbuild@0.16.17) dev: true /terser@5.16.5: @@ -10476,22 +10550,22 @@ packages: /text-table@0.2.0: resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} - /three-mesh-bvh@0.5.23(three@0.150.1): - resolution: {integrity: sha512-nyk+MskdyDgECqkxdv57UjazqqhrMi+Al9PxJN6yFtx1CTW4r0eCQ27FtyYKY5gCIWhxjtNfWYDPVy8lzx6LkA==} + /three-mesh-bvh@0.6.0(three@0.153.0): + resolution: {integrity: sha512-4/oXeqVMLuN9/P0M3L5ezIVrFiXQXKvjVTErkiSYMjSaPoWfNPAwqulSgLf4bIUPn8/Lq3rmIJwxbCuD8qDobA==} peerDependencies: - three: '>= 0.123.0' + three: '>= 0.151.0' dependencies: - three: 0.150.1 + three: 0.153.0 dev: false - /three-stdlib@2.21.8(three@0.150.1): - resolution: {integrity: sha512-kqisiKvO4mSy59v5vWqBQSH8famLxp7Z51LxpMJI9GwDxqODaW02rhIwmjYDEzZWNFpjZpoDHVGbdpeHf8h3SA==} + /three-stdlib@2.23.10(three@0.153.0): + resolution: {integrity: sha512-y0DlxaN5HZXI9hKjEtqO2xlCEt7XyDCOMvD2M3JJFBmYjwbU+PbJ1n3Z+7Hr/6BeVGE6KZYcqPMnfKrTK5WTJg==} peerDependencies: - three: '>=0.122.0' + three: '>=0.128.0' dependencies: - '@babel/runtime': 7.21.0 + '@types/draco3d': 1.4.2 '@types/offscreencanvas': 2019.7.0 - '@webgpu/glslang': 0.0.15 + '@types/webxr': 0.5.2 chevrotain: 10.5.0 draco3d: 1.5.6 fflate: 0.6.10 @@ -10499,12 +10573,12 @@ packages: mmd-parser: 1.0.4 opentype.js: 1.3.4 potpack: 1.0.2 - three: 0.150.1 + three: 0.153.0 zstddec: 0.0.2 dev: false - /three@0.150.1: - resolution: {integrity: sha512-5C1MqKUWaHYo13BX0Q64qcdwImgnnjSOFgBscOzAo8MYCzEtqfQqorEKMcajnA3FHy1yVlIe9AmaMQ0OQracNA==} + /three@0.153.0: + resolution: {integrity: sha512-OCP2/uQR6GcDpSLnJt/3a4mdS0kNWcbfUXIwLoEMgLzEUIVIYsSDwskpmOii/AkDM+BBwrl6+CKgrjX9+E2aWg==} dev: false /through2@2.0.5: @@ -10569,28 +10643,28 @@ packages: resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} dev: false - /troika-three-text@0.46.4(three@0.150.1): - resolution: {integrity: sha512-Qsv0HhUKTZgSmAJs5wvO7YlBoJSP9TGPLmrg+K9pbQq4lseQdcevbno/WI38bwJBZ/qS56hvfqEzY0zUEFzDIw==} + /troika-three-text@0.47.2(three@0.153.0): + resolution: {integrity: sha512-qylT0F+U7xGs+/PEf3ujBdJMYWbn0Qci0kLqI5BJG2kW1wdg4T1XSxneypnF05DxFqJhEzuaOR9S2SjiyknMng==} peerDependencies: - three: '>=0.103.0' + three: '>=0.125.0' dependencies: bidi-js: 1.0.2 - three: 0.150.1 - troika-three-utils: 0.46.0(three@0.150.1) - troika-worker-utils: 0.46.0 + three: 0.153.0 + troika-three-utils: 0.47.2(three@0.153.0) + troika-worker-utils: 0.47.2 webgl-sdf-generator: 1.1.1 dev: false - /troika-three-utils@0.46.0(three@0.150.1): - resolution: {integrity: sha512-llHyrXAcwzr0bpg80GxsIp73N7FuImm4WCrKDJkAqcAsWmE5pfP9+Qzw+oMWK1P/AdHQ79eOrOl9NjyW4aOw0w==} + /troika-three-utils@0.47.2(three@0.153.0): + resolution: {integrity: sha512-/28plhCxfKtH7MSxEGx8e3b/OXU5A0xlwl+Sbdp0H8FXUHKZDoksduEKmjQayXYtxAyuUiCRunYIv/8Vi7aiyg==} peerDependencies: - three: '>=0.103.0' + three: '>=0.125.0' dependencies: - three: 0.150.1 + three: 0.153.0 dev: false - /troika-worker-utils@0.46.0: - resolution: {integrity: sha512-bzOx5f2ZBxkFhXtIvDJlLn2AI3bzCkGVbCndl/2dL5QZrwHEKl45OEIilCxYQQWJG1rEbOD9O80tMjoYjw19OA==} + /troika-worker-utils@0.47.2: + resolution: {integrity: sha512-mzss4MeyzUkYBppn4x5cdAqrhBHFEuVmMMgLMTyFV23x6GvQMyo+/R5E5Lsbrt7WSt5RfvewjcwD1DChRTA9lA==} dev: false /trough@2.1.0: @@ -11041,7 +11115,7 @@ packages: mime-types: 2.1.35 range-parser: 1.2.1 schema-utils: 4.0.0 - webpack: 5.75.0 + webpack: 5.75.0(esbuild@0.16.17) dev: true /webpack-hot-middleware@2.25.3: @@ -11061,7 +11135,7 @@ packages: resolution: {integrity: sha512-5tyDlKLqPfMqjT3Q9TAqf2YqjwmnUleZwzJi1A5qXnlBCdj2AtOJ6wAWdglTIDOPgOiOrXeBeFcsQ8+aGQ6QbA==} dev: true - /webpack@5.75.0: + /webpack@5.75.0(esbuild@0.16.17): resolution: {integrity: sha512-piaIaoVJlqMsPtX/+3KTTO6jfvrSYgauFVdt8cr9LTHKmcq/AMd4mhzsiP7ZF/PGRNPGA8336jldh9l2Kt2ogQ==} engines: {node: '>=10.13.0'} hasBin: true @@ -11092,7 +11166,7 @@ packages: neo-async: 2.6.2 schema-utils: 3.1.1 tapable: 2.2.1 - terser-webpack-plugin: 5.3.6(webpack@5.75.0) + terser-webpack-plugin: 5.3.6(esbuild@0.16.17)(webpack@5.75.0) watchpack: 2.4.0 webpack-sources: 3.2.3 transitivePeerDependencies: diff --git a/public/models/avatar.glb b/public/models/avatar.glb new file mode 100644 index 0000000..472f344 Binary files /dev/null and b/public/models/avatar.glb differ diff --git a/public/models/site.glb b/public/models/site.glb new file mode 100644 index 0000000..1bbe3d0 Binary files /dev/null and b/public/models/site.glb differ diff --git a/public/models/site_physics.glb b/public/models/site_physics.glb new file mode 100644 index 0000000..838329f Binary files /dev/null and b/public/models/site_physics.glb differ diff --git a/src/components/Map/ColiderBox.tsx b/src/components/Map/ColiderBox.tsx new file mode 100644 index 0000000..9318d40 --- /dev/null +++ b/src/components/Map/ColiderBox.tsx @@ -0,0 +1,20 @@ +import { useBox } from "@react-three/cannon"; + +const debug = false; + +export function ColliderBox({ position, scale }: { position: any, scale: any }) { + useBox(() => ({ + args: scale, + position, + type: "Static", + })); + + return ( + debug && ( + + + + + ) + ); +} \ No newline at end of file diff --git a/src/components/Map/Plane.tsx b/src/components/Map/Plane.tsx new file mode 100644 index 0000000..3dcd478 --- /dev/null +++ b/src/components/Map/Plane.tsx @@ -0,0 +1,21 @@ +import { useRef } from "react"; +import { useBox } from "@react-three/cannon"; + +export const Plane = (props: any) => { + const ref = useRef(); + const [_, api] = useBox(() => ({ + type: 'Static', + position: [0, -1, 0], + args: [10000, 0, 10000], + friction: 0 + })); + + return ( + + + + + ); +} + +export default Plane; \ No newline at end of file diff --git a/src/components/Map/Site/Site.jsx b/src/components/Map/Site/Site.jsx new file mode 100644 index 0000000..6cffbed --- /dev/null +++ b/src/components/Map/Site/Site.jsx @@ -0,0 +1,24 @@ +import { useMemo } from "react"; +import { useConvexPolyhedron } from "@react-three/cannon"; +import { useGLTF } from "@react-three/drei"; +import { Geometry } from "three-stdlib"; + + +function toConvexProps(bufferGeometry) { + const geo = new Geometry().fromBufferGeometry(bufferGeometry); + geo.mergeVertices(); + return [geo.vertices.map((v) => [v.x, v.y, v.z]), geo.faces.map((f) => [f.a, f.b, f.c]), []]; // prettier-ignore +} + +export const Site = () => { + const loadpath = "/models/site_physics.glb"; + const { nodes } = useGLTF(loadpath); + const geo = useMemo(() => toConvexProps(nodes.root.geometry), [nodes]); + const [ref] = useConvexPolyhedron(() => ({ mass: 100,type: "static" , args: geo })); + return ( + + + ) +} + +useGLTF.preload('/models/site_physics_joined.glb') \ No newline at end of file diff --git a/src/components/Map/Site/Site.stories.tsx b/src/components/Map/Site/Site.stories.tsx new file mode 100644 index 0000000..4962252 --- /dev/null +++ b/src/components/Map/Site/Site.stories.tsx @@ -0,0 +1,21 @@ +import { ComponentStory, ComponentMeta } from "@storybook/react"; +import React from "react"; + +import { Site } from "./Site"; + +export default { + title: "Map/Site", + component: Site, + tags: ['autodocs'], + parameters: { + layout: 'fullscreen', + }, + argTypes: { + }, +} as ComponentMeta; + +const Template: ComponentStory = () => ; +export const Default = Template.bind({}); +Default.args = { + +}; diff --git a/src/pages/map/index.tsx b/src/pages/map/index.tsx index 2c5bbcc..6aee21d 100644 --- a/src/pages/map/index.tsx +++ b/src/pages/map/index.tsx @@ -1,4 +1,42 @@ +import { Canvas } from "@react-three/fiber"; +import { OrbitControls } from "@react-three/drei"; +import { Site } from "../../components/Map/Site/Site"; +import { Plane } from "../../components/Map/Plane" +import styles from "../../styles/map.module.css"; +import { Physics, useBox } from "@react-three/cannon"; + +function Box(props: any) { + const [ref, api] = useBox(() => ({ + mass: 1, + position: [30, 10, 0.8], + args: [1, 1, 1], + })); + + return ( + api.velocity.set(0, 5, 0)} {...props}> + + + + ); +} + const Map = () => { - return <>this is map; + return ( +
+ + + + + + + + + +
+ ); }; + export default Map; diff --git a/src/styles/map.module.css b/src/styles/map.module.css new file mode 100644 index 0000000..55e77c0 --- /dev/null +++ b/src/styles/map.module.css @@ -0,0 +1,10 @@ +.map { + position: relative; + width: 100vw; + height: 100vh; +} + +.canvas { + padding: 0; + margin: 0; +} diff --git a/tsconfig.json b/tsconfig.json index 6a9c1a2..7735fc9 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -24,6 +24,6 @@ "@/*": ["./src/*"] } }, - "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"], + "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts", "src/components/Map/Site/SitePhysics.jsx", "src/components/Map/Site/LoadModel.jsx", "src/components/Map/Site/Site.jsx"], "exclude": ["node_modules"] }