diff --git a/components/R3Background.tsx b/components/R3Background.tsx
new file mode 100644
index 0000000..2dd69a4
--- /dev/null
+++ b/components/R3Background.tsx
@@ -0,0 +1,61 @@
+import { useRef, useMemo } from 'react'
+import { Canvas, useFrame } from '@react-three/fiber'
+import { BufferGeometry, Material, MathUtils, Mesh } from "three";
+import { vertexShader } from './Shaders/Background/vertex';
+import { fragmentShader } from './Shaders/Background/fragment';
+
+const Fragment = () => {
+ // This reference will give us direct access to the mesh
+ const meshRef = useRef
>(null);
+
+ const uniforms = useMemo(
+ () => ({
+ u_intensity: {
+ value: 1.0,
+ },
+ u_time: {
+ value: 0.0,
+ },
+ }),
+ []
+ );
+
+ useFrame((state) => {
+ if(!meshRef.current){
+ return;
+ }
+ const { clock } = state;
+ //@ts-ignore
+ meshRef.current.material.uniforms.u_time.value = 0.4 * clock.getElapsedTime()/5;
+ //@ts-ignore
+ meshRef.current.material.uniforms.u_intensity.value = MathUtils.lerp(
+ //@ts-ignore
+ meshRef.current.material.uniforms.u_intensity.value,
+ 1.0,
+ 0.02
+ );
+ });
+
+ return (
+
+
+
+
+ );
+};
+
+
+export const R3Gradient = () => {
+ return (
+
+
+
+
+
+ );
+};
diff --git a/components/Shaders/Background/fragment.tsx b/components/Shaders/Background/fragment.tsx
new file mode 100644
index 0000000..43f6437
--- /dev/null
+++ b/components/Shaders/Background/fragment.tsx
@@ -0,0 +1,82 @@
+
+export const fragmentShader = `
+uniform float u_intensity;
+uniform float u_time;
+uniform int width;
+uniform int height;
+
+varying vec2 vUv;
+varying float vDisplacement;
+
+//from Hash Functions for GPU Rendering (Jarzynski et al.)
+//http://www.jcgt.org/published/0009/03/02/
+vec3 pcg3d(uvec3 v)
+{
+ v = v * 1664525u + 1013904223u;
+ v.x += v.y*v.z; v.y += v.z*v.x; v.z += v.x*v.y;
+ v ^= v >> 16u;
+ v.x += v.y*v.z; v.y += v.z*v.x; v.z += v.x*v.y;
+ return vec3(v) * (1.0/float(0xffffffffu));
+}
+
+// convert texture coordinates to pixel
+float t2p(float t, int noOfPixels){
+ return t * float(noOfPixels) - 0.5;
+}
+
+#define M_PI 3.1415926535897932384626433832795
+vec2 randomGradient(uvec3 p){
+ vec3 _uv = pcg3d(p);
+ float r = sqrt(_uv[0]);
+ float phi = 2.0 * M_PI * _uv[1];
+ return vec2(r* cos(phi), r * sin(phi));
+}
+
+
+vec3 gradientNoise(vec2 pos, float gridSize){
+ vec2 gridPos = pos * gridSize;
+ uvec2 i = uvec2(gridPos);
+ vec2 f = fract(gridPos);
+
+ vec2 g11 = randomGradient(uvec3(i.x,i.y,1));
+ vec2 g12 = randomGradient(uvec3(i.x + 1u,i.y,1));
+ vec2 g21 = randomGradient(uvec3(i.x,i.y + 1u,1));
+ vec2 g22 = randomGradient(uvec3(i.x + 1u,i.y +1u,1));
+
+ float d11 = dot(g11, f);
+ float d12 = dot(g12, f - vec2(1.0, 0.0));
+ float d21 = dot(g21, f - vec2(0.0, 1.0));
+ float d22 = dot(g22, f - vec2(1.0, 1.0));
+
+ /*
+ vec3 f11 = vec3(d11);
+ vec3 f12 = vec3(d12);
+ vec3 f21 = vec3(d21);
+ vec3 f22 = vec3(d22);
+ */
+
+ vec3 f11 = pcg3d(uvec3(i.x,i.y,0)) * (d11 + 1.0);
+ vec3 f12 = pcg3d(uvec3(i.x + 1u,i.y,0))* (d12 + 1.0);
+ vec3 f21 = pcg3d(uvec3(i.x,i.y + 1u,0))* (d21 + 1.0);
+ vec3 f22 = pcg3d(uvec3(i.x + 1u,i.y +1u,0))* (d22 + 1.0);
+
+ f = smoothstep(0.0, 1.0, f);
+
+ vec3 q1 = mix(f11, f12, vec3(f.x));
+ vec3 q2 = mix(f21, f22, vec3(f.x));
+ vec3 p = mix(q1, q2, vec3(f.y));
+
+ return p;
+}
+
+
+void main() {
+ float distort = 2.0 * vDisplacement + u_intensity;
+ vec2 pos = vec2(u_time) /5.0 + vUv;
+ vec3 texColor = gradientNoise(pos, 4.0);
+ texColor.y = 0.0;
+ gl_FragColor = vec4(texColor, 1.0);
+}
+
+`
+
diff --git a/components/Shaders/Background/vertex.tsx b/components/Shaders/Background/vertex.tsx
new file mode 100644
index 0000000..dd74e1d
--- /dev/null
+++ b/components/Shaders/Background/vertex.tsx
@@ -0,0 +1,108 @@
+export const vertexShader = `
+uniform float u_intensity;
+uniform float u_time;
+
+varying vec2 vUv;
+varying float vDisplacement;
+
+
+// Classic Perlin 3D Noise
+// by Stefan Gustavson
+//
+vec4 permute(vec4 x) {
+ return mod(((x*34.0)+1.0)*x, 289.0);
+}
+
+vec4 taylorInvSqrt(vec4 r) {
+ return 1.79284291400159 - 0.85373472095314 * r;
+}
+
+vec3 fade(vec3 t) {
+ return t*t*t*(t*(t*6.0-15.0)+10.0);
+}
+
+float cnoise(vec3 P) {
+ vec3 Pi0 = floor(P); // Integer part for indexing
+ vec3 Pi1 = Pi0 + vec3(1.0); // Integer part + 1
+ Pi0 = mod(Pi0, 289.0);
+ Pi1 = mod(Pi1, 289.0);
+ vec3 Pf0 = fract(P); // Fractional part for interpolation
+ vec3 Pf1 = Pf0 - vec3(1.0); // Fractional part - 1.0
+ vec4 ix = vec4(Pi0.x, Pi1.x, Pi0.x, Pi1.x);
+ vec4 iy = vec4(Pi0.yy, Pi1.yy);
+ vec4 iz0 = Pi0.zzzz;
+ vec4 iz1 = Pi1.zzzz;
+
+ vec4 ixy = permute(permute(ix) + iy);
+ vec4 ixy0 = permute(ixy + iz0);
+ vec4 ixy1 = permute(ixy + iz1);
+
+ vec4 gx0 = ixy0 / 7.0;
+ vec4 gy0 = fract(floor(gx0) / 7.0) - 0.5;
+ gx0 = fract(gx0);
+ vec4 gz0 = vec4(0.5) - abs(gx0) - abs(gy0);
+ vec4 sz0 = step(gz0, vec4(0.0));
+ gx0 -= sz0 * (step(0.0, gx0) - 0.5);
+ gy0 -= sz0 * (step(0.0, gy0) - 0.5);
+
+ vec4 gx1 = ixy1 / 7.0;
+ vec4 gy1 = fract(floor(gx1) / 7.0) - 0.5;
+ gx1 = fract(gx1);
+ vec4 gz1 = vec4(0.5) - abs(gx1) - abs(gy1);
+ vec4 sz1 = step(gz1, vec4(0.0));
+ gx1 -= sz1 * (step(0.0, gx1) - 0.5);
+ gy1 -= sz1 * (step(0.0, gy1) - 0.5);
+
+ vec3 g000 = vec3(gx0.x,gy0.x,gz0.x);
+ vec3 g100 = vec3(gx0.y,gy0.y,gz0.y);
+ vec3 g010 = vec3(gx0.z,gy0.z,gz0.z);
+ vec3 g110 = vec3(gx0.w,gy0.w,gz0.w);
+ vec3 g001 = vec3(gx1.x,gy1.x,gz1.x);
+ vec3 g101 = vec3(gx1.y,gy1.y,gz1.y);
+ vec3 g011 = vec3(gx1.z,gy1.z,gz1.z);
+ vec3 g111 = vec3(gx1.w,gy1.w,gz1.w);
+
+ vec4 norm0 = taylorInvSqrt(vec4(dot(g000, g000), dot(g010, g010), dot(g100, g100), dot(g110, g110)));
+ g000 *= norm0.x;
+ g010 *= norm0.y;
+ g100 *= norm0.z;
+ g110 *= norm0.w;
+ vec4 norm1 = taylorInvSqrt(vec4(dot(g001, g001), dot(g011, g011), dot(g101, g101), dot(g111, g111)));
+ g001 *= norm1.x;
+ g011 *= norm1.y;
+ g101 *= norm1.z;
+ g111 *= norm1.w;
+
+ float n000 = dot(g000, Pf0);
+ float n100 = dot(g100, vec3(Pf1.x, Pf0.yz));
+ float n010 = dot(g010, vec3(Pf0.x, Pf1.y, Pf0.z));
+ float n110 = dot(g110, vec3(Pf1.xy, Pf0.z));
+ float n001 = dot(g001, vec3(Pf0.xy, Pf1.z));
+ float n101 = dot(g101, vec3(Pf1.x, Pf0.y, Pf1.z));
+ float n011 = dot(g011, vec3(Pf0.x, Pf1.yz));
+ float n111 = dot(g111, Pf1);
+
+ vec3 fade_xyz = fade(Pf0);
+ vec4 n_z = mix(vec4(n000, n100, n010, n110), vec4(n001, n101, n011, n111), fade_xyz.z);
+ vec2 n_yz = mix(n_z.xy, n_z.zw, fade_xyz.y);
+ float n_xyz = mix(n_yz.x, n_yz.y, fade_xyz.x);
+ return 2.2 * n_xyz;
+}
+
+// End of Perlin Noise Code
+
+void main() {
+ vUv = uv;
+
+ vDisplacement = cnoise(position + vec3(2.0 * u_time));
+
+ vec3 newPosition = position + normal * (u_intensity * vDisplacement);
+
+ vec4 modelPosition = modelMatrix * vec4(newPosition, 1.0);
+ vec4 viewPosition = viewMatrix * modelPosition;
+ vec4 projectedPosition = projectionMatrix * viewPosition;
+
+ gl_Position = projectedPosition;
+}
+
+`
\ No newline at end of file
diff --git a/components/StyledMarkdown.tsx b/components/StyledMarkdown.tsx
index 204d76e..240ba21 100644
--- a/components/StyledMarkdown.tsx
+++ b/components/StyledMarkdown.tsx
@@ -16,6 +16,7 @@ import remarkTypograf from "@mavrin/remark-typograf";
import smartypants from "remark-smartypants";
import oembed from "@agentofuser/remark-oembed";
import rehypeRaw from "rehype-raw";
+import emoji from "remark-emoji";
import rehypeSanitize from "rehype-sanitize";
SyntaxHighlighter.registerLanguage("tsx", tsx);
@@ -104,9 +105,11 @@ export const StyledMarkdown = ({ html }: { html: string }) => {
);
},
code({ node, inline, className, ...props }: any) {
+
const match = /language-(\w+)/.exec(className || "");
const hasMeta = node?.data?.meta;
+
const applyHighlights: object = (applyHighlights: number) => {
if (hasMeta) {
const RE = /{([\d,-]+)}/;
@@ -118,7 +121,7 @@ export const StyledMarkdown = ({ html }: { html: string }) => {
const highlightLines = rangeParser(strlineNumbers);
const highlight = highlightLines;
- const data = highlight.includes(applyHighlights) ? 200 : null;
+ const data = highlight.includes(applyHighlights) ? "highlight" : null;
return { data };
} else {
return {};
@@ -141,11 +144,12 @@ export const StyledMarkdown = ({ html }: { html: string }) => {
const metadata = node.data.meta;
const RE = /title=\"(.*)\"/;
const title = RE?.test(metadata) && RE.exec(metadata);
- return title ? title[1] : null;
+ return title ? title[1] : "Code";
}
return "Code";
};
+
return match ? (
@@ -155,7 +159,7 @@ export const StyledMarkdown = ({ html }: { html: string }) => {
>
- {getTitle() &&
{getTitle()}
}
+ {
{getTitle()}
}
{
>
diff --git a/content/projects/SpaceMadness.md b/content/projects/SpaceMadness.md
new file mode 100644
index 0000000..c45e1fb
--- /dev/null
+++ b/content/projects/SpaceMadness.md
@@ -0,0 +1,33 @@
+---
+title: "Space Madness"
+date: 29.12.2022
+author: kookroach
+authorLink: https://git.peroxy.dev/kookroach
+description: "Challenge yourself in this mobile endless space shooter game. Navigate through an endless battlefield and destroy turrets while avoiding being killed. See if you can beat the current high score of 7471."
+thumbnail: https://docs.peroxy.dev/uploads/cd22a289-ebe7-4d82-98e3-b639d1df2ea6.png
+---
+
+```
+ _____ ___ ___ _
+/ ___| | \/ | | |
+\ `--. _ __ __ _ ___ ___ | . . | __ _ __| | _ __ ___ ___ ___
+ `--. \| '_ \ / _` | / __| / _ \ | |\/| | / _` | / _` || '_ \ / _ \/ __|/ __|
+/\__/ /| |_) || (_| || (__ | __/ | | | || (_| || (_| || | | || __/\__ \\__ \
+\____/ | .__/ \__,_| \___| \___| \_| |_/ \__,_| \__,_||_| |_| \___||___/|___/
+ | |
+ |_|
+```
+
+> :warning: **Assets and Sounds of this game are not self made**
+
+### About this Project
+
+My introduction to game development began with the completion of my first project, "Space Madness", which I created using the Unity Engine. This experience sparked my passion for the field and led me to pursue a degree in Informatics: Games Engineering at the Technical University of Munich.
+
+### Technical Features
+
+- Procedual Terrain generation
+- Chunk rendering with LOD
+- Endless Level generation
+- Basic Boss Fight Logic
+- Touch input support
diff --git a/content/projects/first-project.md b/content/projects/first-project.md
deleted file mode 100644
index 1279f7a..0000000
--- a/content/projects/first-project.md
+++ /dev/null
@@ -1,16 +0,0 @@
----
-title: "My First Project"
-date: 29.12.2022
-author: kookroach
-authorLink: https://git.peroxy.dev/kookroach
-description: Short description
-thumbnail: https://images.unsplash.com/photo-1640539984026-c1b0d7c5d4b5?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=1332&q=80
----
-
-# First project
-
-This is a project
-
-You can add pics
-
-
\ No newline at end of file
diff --git a/content/projects/markdown-test.md b/content/projects/markdown-test.md
index 7573153..d8d1954 100644
--- a/content/projects/markdown-test.md
+++ b/content/projects/markdown-test.md
@@ -115,7 +115,7 @@ var foo = function (bar) {
console.log(foo(5));
```
-```js line=200,{2-3, 5},title="pidhsome je"
+```tsx line=200, title="pidhsome je"
var foo = function (bar) {
return bar++;
};
diff --git a/layouts/MainLayout.tsx b/layouts/MainLayout.tsx
index c6ee5b7..01b832f 100644
--- a/layouts/MainLayout.tsx
+++ b/layouts/MainLayout.tsx
@@ -1,14 +1,13 @@
import { PropsWithChildren } from "react";
-
-import { GradientBG } from '../components/GradientBG';
+import { R3Gradient } from '../components/R3Background';
import { Navbar } from "../components/Navbar";
export const MainLayout = ({ children }: PropsWithChildren) => {
return (
-
- {children}
+
+ {children}
);
};
diff --git a/package-lock.json b/package-lock.json
index 6746c78..caeba4e 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -10,10 +10,13 @@
"dependencies": {
"@agentofuser/remark-oembed": "^1.0.4",
"@mavrin/remark-typograf": "^2.2.0",
+ "@react-three/drei": "^9.56.19",
+ "@react-three/fiber": "^8.11.0",
"@tailwindcss/typography": "^0.5.8",
"@types/node": "18.11.11",
"@types/react": "18.0.26",
"@types/react-dom": "18.0.9",
+ "@types/three": "^0.149.0",
"framer-motion": "^8.0.2",
"gray-matter": "^4.0.3",
"next": "13.0.6",
@@ -26,9 +29,11 @@
"rehype-raw": "^6.1.1",
"rehype-sanitize": "^5.0.1",
"remark": "^14.0.2",
+ "remark-emoji": "^3.1.0",
"remark-gfm": "^3.0.1",
"remark-html": "^15.0.1",
"remark-smartypants": "^2.0.0",
+ "three": "^0.149.0",
"typescript": "4.9.3"
},
"devDependencies": {
@@ -58,6 +63,35 @@
"node": ">=6.9.0"
}
},
+ "node_modules/@chevrotain/cst-dts-gen": {
+ "version": "10.4.2",
+ "resolved": "https://registry.npmjs.org/@chevrotain/cst-dts-gen/-/cst-dts-gen-10.4.2.tgz",
+ "integrity": "sha512-0+4bNjlndNWMoVLH/+y4uHnf6GrTipsC+YTppJxelVJo+xeRVQ0s2PpkdDCVTsu7efyj+8r1gFiwVXsp6JZ0iQ==",
+ "dependencies": {
+ "@chevrotain/gast": "10.4.2",
+ "@chevrotain/types": "10.4.2",
+ "lodash": "4.17.21"
+ }
+ },
+ "node_modules/@chevrotain/gast": {
+ "version": "10.4.2",
+ "resolved": "https://registry.npmjs.org/@chevrotain/gast/-/gast-10.4.2.tgz",
+ "integrity": "sha512-4ZAn8/mjkmYonilSJ60gGj1tAF0cVWYUMlIGA0e4ATAc3a648aCnvpBw7zlPHDQjFp50XC13iyWEgWAKiRKTOA==",
+ "dependencies": {
+ "@chevrotain/types": "10.4.2",
+ "lodash": "4.17.21"
+ }
+ },
+ "node_modules/@chevrotain/types": {
+ "version": "10.4.2",
+ "resolved": "https://registry.npmjs.org/@chevrotain/types/-/types-10.4.2.tgz",
+ "integrity": "sha512-QzSCjg6G4MvIoLeIgOiMR0IgzkGEQqrNJJIr3T5ETRa7l4Av4AMIiEctV99mvDr57iXwwk0/kr3RJxiU36Nevw=="
+ },
+ "node_modules/@chevrotain/utils": {
+ "version": "10.4.2",
+ "resolved": "https://registry.npmjs.org/@chevrotain/utils/-/utils-10.4.2.tgz",
+ "integrity": "sha512-V34dacxWLwKcvcy32dx96ADJVdB7kOJLm7LyBkBQw5u5HC9WdEFw2G17zml+U3ivavGTrGPJHl8o9/UJm0PlUw=="
+ },
"node_modules/@emotion/is-prop-valid": {
"version": "0.8.8",
"resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz",
@@ -409,6 +443,161 @@
"node": ">= 8"
}
},
+ "node_modules/@react-spring/animated": {
+ "version": "9.6.1",
+ "resolved": "https://registry.npmjs.org/@react-spring/animated/-/animated-9.6.1.tgz",
+ "integrity": "sha512-ls/rJBrAqiAYozjLo5EPPLLOb1LM0lNVQcXODTC1SMtS6DbuBCPaKco5svFUQFMP2dso3O+qcC4k9FsKc0KxMQ==",
+ "dependencies": {
+ "@react-spring/shared": "~9.6.1",
+ "@react-spring/types": "~9.6.1"
+ },
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0"
+ }
+ },
+ "node_modules/@react-spring/core": {
+ "version": "9.6.1",
+ "resolved": "https://registry.npmjs.org/@react-spring/core/-/core-9.6.1.tgz",
+ "integrity": "sha512-3HAAinAyCPessyQNNXe5W0OHzRfa8Yo5P748paPcmMowZ/4sMfaZ2ZB6e5x5khQI8NusOHj8nquoutd6FRY5WQ==",
+ "dependencies": {
+ "@react-spring/animated": "~9.6.1",
+ "@react-spring/rafz": "~9.6.1",
+ "@react-spring/shared": "~9.6.1",
+ "@react-spring/types": "~9.6.1"
+ },
+ "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.6.1",
+ "resolved": "https://registry.npmjs.org/@react-spring/rafz/-/rafz-9.6.1.tgz",
+ "integrity": "sha512-v6qbgNRpztJFFfSE3e2W1Uz+g8KnIBs6SmzCzcVVF61GdGfGOuBrbjIcp+nUz301awVmREKi4eMQb2Ab2gGgyQ=="
+ },
+ "node_modules/@react-spring/shared": {
+ "version": "9.6.1",
+ "resolved": "https://registry.npmjs.org/@react-spring/shared/-/shared-9.6.1.tgz",
+ "integrity": "sha512-PBFBXabxFEuF8enNLkVqMC9h5uLRBo6GQhRMQT/nRTnemVENimgRd+0ZT4yFnAQ0AxWNiJfX3qux+bW2LbG6Bw==",
+ "dependencies": {
+ "@react-spring/rafz": "~9.6.1",
+ "@react-spring/types": "~9.6.1"
+ },
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0"
+ }
+ },
+ "node_modules/@react-spring/three": {
+ "version": "9.6.1",
+ "resolved": "https://registry.npmjs.org/@react-spring/three/-/three-9.6.1.tgz",
+ "integrity": "sha512-Tyw2YhZPKJAX3t2FcqvpLRb71CyTe1GvT3V+i+xJzfALgpk10uPGdGaQQ5Xrzmok1340DAeg2pR/MCfaW7b8AA==",
+ "dependencies": {
+ "@react-spring/animated": "~9.6.1",
+ "@react-spring/core": "~9.6.1",
+ "@react-spring/shared": "~9.6.1",
+ "@react-spring/types": "~9.6.1"
+ },
+ "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.6.1",
+ "resolved": "https://registry.npmjs.org/@react-spring/types/-/types-9.6.1.tgz",
+ "integrity": "sha512-POu8Mk0hIU3lRXB3bGIGe4VHIwwDsQyoD1F394OK7STTiX9w4dG3cTLljjYswkQN+hDSHRrj4O36kuVa7KPU8Q=="
+ },
+ "node_modules/@react-three/drei": {
+ "version": "9.56.19",
+ "resolved": "https://registry.npmjs.org/@react-three/drei/-/drei-9.56.19.tgz",
+ "integrity": "sha512-vbBEbxDrC1VZ16QFtJQoC0QK1d3HSFV0WxPL5wxXZcL1zI0GN9RvoWj9CF9z2ImsaAQYzCnEurPJbsKJopxwzQ==",
+ "dependencies": {
+ "@babel/runtime": "^7.11.2",
+ "@react-spring/three": "^9.3.1",
+ "@use-gesture/react": "^10.2.24",
+ "camera-controls": "^2.0.1",
+ "detect-gpu": "^5.0.9",
+ "glsl-noise": "^0.0.0",
+ "lodash.clamp": "^4.0.3",
+ "lodash.omit": "^4.5.0",
+ "lodash.pick": "^4.4.0",
+ "maath": "^0.5.2",
+ "meshline": "^3.1.6",
+ "react-composer": "^5.0.3",
+ "react-merge-refs": "^1.1.0",
+ "stats.js": "^0.17.0",
+ "suspend-react": "^0.0.8",
+ "three-mesh-bvh": "^0.5.23",
+ "three-stdlib": "^2.21.8",
+ "troika-three-text": "^0.47.1",
+ "utility-types": "^3.10.0",
+ "zustand": "^3.5.13"
+ },
+ "peerDependencies": {
+ "@react-three/fiber": ">=8.0",
+ "react": ">=18.0",
+ "react-dom": ">=18.0",
+ "three": ">=0.137"
+ },
+ "peerDependenciesMeta": {
+ "react-dom": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@react-three/fiber": {
+ "version": "8.11.0",
+ "resolved": "https://registry.npmjs.org/@react-three/fiber/-/fiber-8.11.0.tgz",
+ "integrity": "sha512-n9eM7hVsHbecexKK0isvUOPq1SYMHcLhUTZsMZQSYo5RT1yjbgQbbrVtF9bXN9rQgrD9l3V3Ho3ckPp0cNNs1w==",
+ "dependencies": {
+ "@babel/runtime": "^7.17.8",
+ "@types/react-reconciler": "^0.26.7",
+ "its-fine": "^1.0.6",
+ "react-reconciler": "^0.27.0",
+ "react-use-measure": "^2.1.1",
+ "scheduler": "^0.21.0",
+ "suspend-react": "^0.0.8",
+ "zustand": "^3.7.1"
+ },
+ "peerDependencies": {
+ "expo": ">=43.0",
+ "expo-asset": ">=8.4",
+ "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-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==",
+ "dependencies": {
+ "loose-envify": "^1.1.0"
+ }
+ },
"node_modules/@swc/helpers": {
"version": "0.4.14",
"resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.4.14.tgz",
@@ -473,6 +662,11 @@
"resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.11.tgz",
"integrity": "sha512-KJ021B1nlQUBLopzZmPBVuGU9un7WJd/W4ya7Ih02B4Uwky5Nja0yGYav2EfYIk0RR2Q9oVhf60S2XR1BCWJ2g=="
},
+ "node_modules/@types/offscreencanvas": {
+ "version": "2019.7.0",
+ "resolved": "https://registry.npmjs.org/@types/offscreencanvas/-/offscreencanvas-2019.7.0.tgz",
+ "integrity": "sha512-PGcyveRIpL1XIqK8eBsmRBt76eFgtzuPiSTyKHZxnGemp2yzGzWpjYKAfK3wIMiU7eH+851yEpiuP8JZerTmWg=="
+ },
"node_modules/@types/parse5": {
"version": "6.0.3",
"resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-6.0.3.tgz",
@@ -501,6 +695,14 @@
"@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==",
+ "dependencies": {
+ "@types/react": "*"
+ }
+ },
"node_modules/@types/react-syntax-highlighter": {
"version": "15.5.6",
"resolved": "https://registry.npmjs.org/@types/react-syntax-highlighter/-/react-syntax-highlighter-15.5.6.tgz",
@@ -515,11 +717,45 @@
"resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz",
"integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew=="
},
+ "node_modules/@types/three": {
+ "version": "0.149.0",
+ "resolved": "https://registry.npmjs.org/@types/three/-/three-0.149.0.tgz",
+ "integrity": "sha512-fgNBm9LWc65ER/W0cvoXdC0iMy7Ke9e2CONmEr6Jt8sDSY3sw4DgOubZfmdZ747dkPhbQrgRQAWwDEr2S/7IEg==",
+ "dependencies": {
+ "@types/webxr": "*"
+ }
+ },
"node_modules/@types/unist": {
"version": "2.0.6",
"resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.6.tgz",
"integrity": "sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ=="
},
+ "node_modules/@types/webxr": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/@types/webxr/-/webxr-0.5.1.tgz",
+ "integrity": "sha512-xlFXPfgJR5vIuDefhaHuUM9uUgvPaXB6GKdXy2gdEh8gBWQZ2ul24AJz3foUd8NNKlSTQuWYJpCb1/pL81m1KQ=="
+ },
+ "node_modules/@use-gesture/core": {
+ "version": "10.2.24",
+ "resolved": "https://registry.npmjs.org/@use-gesture/core/-/core-10.2.24.tgz",
+ "integrity": "sha512-ZL7F9mgOn3Qlnp6QLI9jaOfcvqrx6JPE/BkdVSd8imveaFTm/a3udoO6f5Us/1XtqnL4347PsIiK6AtCvMHk2Q=="
+ },
+ "node_modules/@use-gesture/react": {
+ "version": "10.2.24",
+ "resolved": "https://registry.npmjs.org/@use-gesture/react/-/react-10.2.24.tgz",
+ "integrity": "sha512-rAZ8Nnpu1g4eFzqCPlaq+TppJpMy0dTpYOQx5KpfoBF4P3aWnCqwj7eKxcmdIb1NJKpIJj50DPugUH4mq5cpBg==",
+ "dependencies": {
+ "@use-gesture/core": "10.2.24"
+ },
+ "peerDependencies": {
+ "react": ">= 16.8.0"
+ }
+ },
+ "node_modules/@webgpu/glslang": {
+ "version": "0.0.15",
+ "resolved": "https://registry.npmjs.org/@webgpu/glslang/-/glslang-0.0.15.tgz",
+ "integrity": "sha512-niT+Prh3Aff8Uf1MVBVUsaNjFj9rJAKDXuoHIKiQbB+6IUP/3J3JIhBNyZ7lDhytvXxw6ppgnwKZdDJ08UMj4Q=="
+ },
"node_modules/acorn": {
"version": "7.4.1",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz",
@@ -634,6 +870,14 @@
"url": "https://github.com/sponsors/wooorm"
}
},
+ "node_modules/bidi-js": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/bidi-js/-/bidi-js-1.0.2.tgz",
+ "integrity": "sha512-rzSy/k7WdX5zOyeHHCOixGXbCHkyogkxPKL2r8QtzHmVQDiWCXUWa18bLdMWT9CYMLOYTjWpTHawuev2ouYJVw==",
+ "dependencies": {
+ "require-from-string": "^2.0.2"
+ }
+ },
"node_modules/binary-extensions": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
@@ -694,6 +938,14 @@
"node": ">= 6"
}
},
+ "node_modules/camera-controls": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/camera-controls/-/camera-controls-2.1.0.tgz",
+ "integrity": "sha512-9b2dpUZp+3Rfkh/E8dU9O9/rBbPDzyB5DBINktedRAF4I5ldZUgBiSYtFac7wF3yXNf4UH2pjP3uRcoAtXTh4A==",
+ "peerDependencies": {
+ "three": ">=0.126.1"
+ }
+ },
"node_modules/caniuse-lite": {
"version": "1.0.30001441",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001441.tgz",
@@ -754,6 +1006,19 @@
"url": "https://github.com/sponsors/wooorm"
}
},
+ "node_modules/chevrotain": {
+ "version": "10.4.2",
+ "resolved": "https://registry.npmjs.org/chevrotain/-/chevrotain-10.4.2.tgz",
+ "integrity": "sha512-gzF5GxE0Ckti5kZVuKEZycLntB5X2aj9RVY0r4/220GwQjdnljU+/t3kP74/FMWC7IzCDDEjQ9wsFUf0WCdSHg==",
+ "dependencies": {
+ "@chevrotain/cst-dts-gen": "10.4.2",
+ "@chevrotain/gast": "10.4.2",
+ "@chevrotain/types": "10.4.2",
+ "@chevrotain/utils": "10.4.2",
+ "lodash": "4.17.21",
+ "regexp-to-ast": "0.5.0"
+ }
+ },
"node_modules/chokidar": {
"version": "3.5.3",
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
@@ -831,6 +1096,11 @@
"resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.1.tgz",
"integrity": "sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw=="
},
+ "node_modules/debounce": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz",
+ "integrity": "sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug=="
+ },
"node_modules/debug": {
"version": "4.3.4",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
@@ -875,6 +1145,14 @@
"node": ">=6"
}
},
+ "node_modules/detect-gpu": {
+ "version": "5.0.10",
+ "resolved": "https://registry.npmjs.org/detect-gpu/-/detect-gpu-5.0.10.tgz",
+ "integrity": "sha512-V0g0RhtlItrhgBM4/T/lTpjephr9b/xDAOtJZztGTvQxaPSMQ4EAiV9tdHL+4GcT1ATvYmMCm4QbrhyjdEH6Fw==",
+ "dependencies": {
+ "webgl-constants": "^1.1.1"
+ }
+ },
"node_modules/detective": {
"version": "5.2.1",
"resolved": "https://registry.npmjs.org/detective/-/detective-5.2.1.tgz",
@@ -909,12 +1187,26 @@
"resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz",
"integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA=="
},
+ "node_modules/draco3d": {
+ "version": "1.5.6",
+ "resolved": "https://registry.npmjs.org/draco3d/-/draco3d-1.5.6.tgz",
+ "integrity": "sha512-+3NaRjWktb5r61ZFoDejlykPEFKT5N/LkbXsaddlw6xNSXBanUYpFc2AXXpbJDilPHazcSreU/DpQIaxfX0NfQ=="
+ },
"node_modules/electron-to-chromium": {
"version": "1.4.284",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz",
"integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==",
"dev": true
},
+ "node_modules/emoticon": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/emoticon/-/emoticon-4.0.1.tgz",
+ "integrity": "sha512-dqx7eA9YaqyvYtUhJwT4rC1HIp82j5ybS1/vQ42ur+jBe17dJMwZE4+gvL1XadSFfxaPFFGt3Xsw+Y8akThDlw==",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
"node_modules/escalade": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
@@ -1009,6 +1301,11 @@
"url": "https://github.com/sponsors/wooorm"
}
},
+ "node_modules/fflate": {
+ "version": "0.6.10",
+ "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.6.10.tgz",
+ "integrity": "sha512-IQrh3lEPM93wVCEczc9SaAOvkmcoQn/G8Bo1e8ZPlY3X3bnAxWaBdvTdvM1hP62iZp0BXWDy4vTAy4fF0+Dlpg=="
+ },
"node_modules/fill-range": {
"version": "7.0.1",
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
@@ -1098,6 +1395,11 @@
"node": ">=10.13.0"
}
},
+ "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=="
+ },
"node_modules/gray-matter": {
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/gray-matter/-/gray-matter-4.0.3.tgz",
@@ -1475,6 +1777,25 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/its-fine": {
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/its-fine/-/its-fine-1.0.9.tgz",
+ "integrity": "sha512-Ph+vcp1R100JOM4raXmDx/wCTi4kMkMXiFE108qGzsLdghXFPqad82UJJtqT1jwdyWYkTU6eDpDnol/ZIzW+1g==",
+ "dependencies": {
+ "@types/react-reconciler": "^0.28.0"
+ },
+ "peerDependencies": {
+ "react": ">=18.0"
+ }
+ },
+ "node_modules/its-fine/node_modules/@types/react-reconciler": {
+ "version": "0.28.2",
+ "resolved": "https://registry.npmjs.org/@types/react-reconciler/-/react-reconciler-0.28.2.tgz",
+ "integrity": "sha512-8tu6lHzEgYPlfDf/J6GOQdIc+gs+S2yAqlby3zTsB3SP2svlqTYe5fwZNtZyfactP74ShooP2vvi1BOp9ZemWw==",
+ "dependencies": {
+ "@types/react": "*"
+ }
+ },
"node_modules/js-tokens": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
@@ -1508,6 +1829,11 @@
"node": ">=6"
}
},
+ "node_modules/ktx-parse": {
+ "version": "0.4.5",
+ "resolved": "https://registry.npmjs.org/ktx-parse/-/ktx-parse-0.4.5.tgz",
+ "integrity": "sha512-MK3FOody4TXbFf8Yqv7EBbySw7aPvEcPX++Ipt6Sox+/YMFvR5xaTyhfNSk1AEmMy+RYIw81ctN4IMxCB8OAlg=="
+ },
"node_modules/lilconfig": {
"version": "2.0.6",
"resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.6.tgz",
@@ -1516,11 +1842,21 @@
"node": ">=10"
}
},
+ "node_modules/lodash": {
+ "version": "4.17.21",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
+ "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
+ },
"node_modules/lodash.castarray": {
"version": "4.4.0",
"resolved": "https://registry.npmjs.org/lodash.castarray/-/lodash.castarray-4.4.0.tgz",
"integrity": "sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q=="
},
+ "node_modules/lodash.clamp": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/lodash.clamp/-/lodash.clamp-4.0.3.tgz",
+ "integrity": "sha512-HvzRFWjtcguTW7yd8NJBshuNaCa8aqNFtnswdT7f/cMd/1YKy5Zzoq4W/Oxvnx9l7aeY258uSdDfM793+eLsVg=="
+ },
"node_modules/lodash.escaperegexp": {
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz",
@@ -1536,6 +1872,16 @@
"resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
"integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ=="
},
+ "node_modules/lodash.omit": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/lodash.omit/-/lodash.omit-4.5.0.tgz",
+ "integrity": "sha512-XeqSp49hNGmlkj2EJlfrQFIzQ6lXdNro9sddtQzcJY8QaoC2GO0DT7xaIokHeyM+mIT0mPMlPvkYzg2xCuHdZg=="
+ },
+ "node_modules/lodash.pick": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz",
+ "integrity": "sha512-hXt6Ul/5yWjfklSGvLQl8vM//l3FtyHZeuelpzK6mm99pNvN9yTDruNZPEJZD1oWrqo+izBmB7oUfWgcCX7s4Q=="
+ },
"node_modules/longest-streak": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz",
@@ -1569,6 +1915,15 @@
"url": "https://github.com/sponsors/wooorm"
}
},
+ "node_modules/maath": {
+ "version": "0.5.2",
+ "resolved": "https://registry.npmjs.org/maath/-/maath-0.5.2.tgz",
+ "integrity": "sha512-MFjfnXF5CzZaVnBuKc9y1FJh/BiPGqf19NH8Jm4o/jKTxuQ3RyPkcSIpuwdDhXrWROVKAxi3KjmHFUNMuIndbg==",
+ "peerDependencies": {
+ "@types/three": ">=0.144.0",
+ "three": ">=0.144.0"
+ }
+ },
"node_modules/markdown-table": {
"version": "3.0.3",
"resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.3.tgz",
@@ -1593,10 +1948,11 @@
}
},
"node_modules/mdast-util-find-and-replace": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-2.2.1.tgz",
- "integrity": "sha512-SobxkQXFAdd4b5WmEakmkVoh18icjQRxGy5OWTCzgsLRm1Fu/KCtwD1HIQSsmq5ZRjVH0Ehwg6/Fn3xIUk+nKw==",
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-2.2.2.tgz",
+ "integrity": "sha512-MTtdFRz/eMDHXzeK6W3dO7mXUlF82Gom4y0oOgvHhh/HXZAGvIQDUvQ0SuUx+j2tv44b8xTHOm8K/9OoRFnXKw==",
"dependencies": {
+ "@types/mdast": "^3.0.0",
"escape-string-regexp": "^5.0.0",
"unist-util-is": "^5.0.0",
"unist-util-visit-parents": "^5.0.0"
@@ -1772,6 +2128,14 @@
"node": ">= 8"
}
},
+ "node_modules/meshline": {
+ "version": "3.1.6",
+ "resolved": "https://registry.npmjs.org/meshline/-/meshline-3.1.6.tgz",
+ "integrity": "sha512-8JZJOdaL5oz3PI/upG8JvP/5FfzYUOhrkJ8np/WKvXzl0/PZ2V9pqTvCIjSKv+w9ccg2xb+yyBhXAwt6ier3ug==",
+ "peerDependencies": {
+ "three": ">=0.137"
+ }
+ },
"node_modules/micromark": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/micromark/-/micromark-3.1.0.tgz",
@@ -2329,6 +2693,11 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/mmd-parser": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/mmd-parser/-/mmd-parser-1.0.4.tgz",
+ "integrity": "sha512-Qi0VCU46t2IwfGv5KF0+D/t9cizcDug7qnNoy9Ggk7aucp0tssV8IwTMkBlDbm+VqAf3cdQHTCARKSsuS2MYFg=="
+ },
"node_modules/mri": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz",
@@ -2439,6 +2808,14 @@
"url": "https://opencollective.com/unified"
}
},
+ "node_modules/node-emoji": {
+ "version": "1.11.0",
+ "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.11.0.tgz",
+ "integrity": "sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==",
+ "dependencies": {
+ "lodash": "^4.17.21"
+ }
+ },
"node_modules/node-releases": {
"version": "2.0.8",
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.8.tgz",
@@ -2491,6 +2868,21 @@
"node": ">= 6"
}
},
+ "node_modules/opentype.js": {
+ "version": "1.3.4",
+ "resolved": "https://registry.npmjs.org/opentype.js/-/opentype.js-1.3.4.tgz",
+ "integrity": "sha512-d2JE9RP/6uagpQAVtJoF0pJJA/fgai89Cc50Yp0EJHk+eLp6QQ7gBoblsnubRULNY132I0J1QKMJ+JTbMqz4sw==",
+ "dependencies": {
+ "string.prototype.codepointat": "^0.2.1",
+ "tiny-inflate": "^1.0.3"
+ },
+ "bin": {
+ "ot": "bin/ot"
+ },
+ "engines": {
+ "node": ">= 8.0.0"
+ }
+ },
"node_modules/parse-entities": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-2.0.0.tgz",
@@ -2699,6 +3091,11 @@
"resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz",
"integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ=="
},
+ "node_modules/potpack": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/potpack/-/potpack-1.0.2.tgz",
+ "integrity": "sha512-choctRBIV9EMT9WGAZHn3V7t0Z2pMQyl0EZE6pFc/6ml3ssw7Dlf/oAOvFwjm1HVsqfQN8GfeFyJ+d8tRzqueQ=="
+ },
"node_modules/prismjs": {
"version": "1.29.0",
"resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.29.0.tgz",
@@ -2772,6 +3169,17 @@
"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==",
+ "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.2.0",
"resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz",
@@ -2827,6 +3235,38 @@
"react": ">=16"
}
},
+ "node_modules/react-merge-refs": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/react-merge-refs/-/react-merge-refs-1.1.0.tgz",
+ "integrity": "sha512-alTKsjEL0dKH/ru1Iyn7vliS2QRcBp9zZPGoWxUOvRGWPUYgjo+V01is7p04It6KhgrzhJGnIj9GgX8W4bZoCQ==",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/gregberge"
+ }
+ },
+ "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==",
+ "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==",
+ "dependencies": {
+ "loose-envify": "^1.1.0"
+ }
+ },
"node_modules/react-syntax-highlighter": {
"version": "15.5.0",
"resolved": "https://registry.npmjs.org/react-syntax-highlighter/-/react-syntax-highlighter-15.5.0.tgz",
@@ -2842,6 +3282,18 @@
"react": ">= 0.14.0"
}
},
+ "node_modules/react-use-measure": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/react-use-measure/-/react-use-measure-2.1.1.tgz",
+ "integrity": "sha512-nocZhN26cproIiIduswYpV5y5lQpSQS1y/4KuvUCjSKmw7ZWIS/+g3aFnX3WdBkyuGUtTLif3UTqnLLhbDoQig==",
+ "dependencies": {
+ "debounce": "^1.2.1"
+ },
+ "peerDependencies": {
+ "react": ">=16.13",
+ "react-dom": ">=16.13"
+ }
+ },
"node_modules/read-cache": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz",
@@ -2888,6 +3340,11 @@
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz",
"integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg=="
},
+ "node_modules/regexp-to-ast": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/regexp-to-ast/-/regexp-to-ast-0.5.0.tgz",
+ "integrity": "sha512-tlbJqcMHnPKI9zSrystikWKwHkBqu2a/Sgw01h3zFjvYrMxEDYHzzoMZnUrbIfpTFEsoRnnviOXNCzFiSc54Qw=="
+ },
"node_modules/rehype-raw": {
"version": "6.1.1",
"resolved": "https://registry.npmjs.org/rehype-raw/-/rehype-raw-6.1.1.tgz",
@@ -2931,6 +3388,19 @@
"url": "https://opencollective.com/unified"
}
},
+ "node_modules/remark-emoji": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/remark-emoji/-/remark-emoji-3.1.0.tgz",
+ "integrity": "sha512-KmjkU04niXFMn/H+SsPAGnXhsuq0gT/neIg1KRw8vUKZ/PNxpLDGmwVzx4a14OOd5GJ8rnCdh6DKXqHySkUHAQ==",
+ "dependencies": {
+ "emoticon": "^4.0.1",
+ "mdast-util-find-and-replace": "^2.2.2",
+ "node-emoji": "^1.11.0"
+ },
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ }
+ },
"node_modules/remark-gfm": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-3.0.1.tgz",
@@ -3018,6 +3488,14 @@
"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==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/resolve": {
"version": "1.22.1",
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz",
@@ -3177,6 +3655,16 @@
"resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
"integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g=="
},
+ "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=="
+ },
+ "node_modules/string.prototype.codepointat": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/string.prototype.codepointat/-/string.prototype.codepointat-0.2.1.tgz",
+ "integrity": "sha512-2cBVCj6I4IOvEnjgO/hWqXjqBGsY+zwPmHl12Srk9IXSZ56Jwwmy+66XO5Iut/oQVR7t5ihYdLB0GMa4alEUcg=="
+ },
"node_modules/stringify-entities": {
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.3.tgz",
@@ -3239,6 +3727,14 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/suspend-react": {
+ "version": "0.0.8",
+ "resolved": "https://registry.npmjs.org/suspend-react/-/suspend-react-0.0.8.tgz",
+ "integrity": "sha512-ZC3r8Hu1y0dIThzsGw0RLZplnX9yXwfItcvaIzJc2VQVi8TGyGDlu92syMB5ulybfvGLHAI5Ghzlk23UBPF8xg==",
+ "peerDependencies": {
+ "react": ">=17.0"
+ }
+ },
"node_modules/tailwindcss": {
"version": "3.2.4",
"resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.2.4.tgz",
@@ -3279,6 +3775,45 @@
"postcss": "^8.0.9"
}
},
+ "node_modules/three": {
+ "version": "0.149.0",
+ "resolved": "https://registry.npmjs.org/three/-/three-0.149.0.tgz",
+ "integrity": "sha512-tohpUxPDht0qExRLDTM8sjRLc5d9STURNrdnK3w9A+V4pxaTBfKWWT/IqtiLfg23Vfc3Z+ImNfvRw1/0CtxrkQ=="
+ },
+ "node_modules/three-mesh-bvh": {
+ "version": "0.5.23",
+ "resolved": "https://registry.npmjs.org/three-mesh-bvh/-/three-mesh-bvh-0.5.23.tgz",
+ "integrity": "sha512-nyk+MskdyDgECqkxdv57UjazqqhrMi+Al9PxJN6yFtx1CTW4r0eCQ27FtyYKY5gCIWhxjtNfWYDPVy8lzx6LkA==",
+ "peerDependencies": {
+ "three": ">= 0.123.0"
+ }
+ },
+ "node_modules/three-stdlib": {
+ "version": "2.21.8",
+ "resolved": "https://registry.npmjs.org/three-stdlib/-/three-stdlib-2.21.8.tgz",
+ "integrity": "sha512-kqisiKvO4mSy59v5vWqBQSH8famLxp7Z51LxpMJI9GwDxqODaW02rhIwmjYDEzZWNFpjZpoDHVGbdpeHf8h3SA==",
+ "dependencies": {
+ "@babel/runtime": "^7.16.7",
+ "@types/offscreencanvas": "^2019.6.4",
+ "@webgpu/glslang": "^0.0.15",
+ "chevrotain": "^10.1.2",
+ "draco3d": "^1.4.1",
+ "fflate": "^0.6.9",
+ "ktx-parse": "^0.4.5",
+ "mmd-parser": "^1.0.4",
+ "opentype.js": "^1.3.3",
+ "potpack": "^1.0.1",
+ "zstddec": "^0.0.2"
+ },
+ "peerDependencies": {
+ "three": ">=0.122.0"
+ }
+ },
+ "node_modules/tiny-inflate": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/tiny-inflate/-/tiny-inflate-1.0.3.tgz",
+ "integrity": "sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw=="
+ },
"node_modules/to-regex-range": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
@@ -3299,6 +3834,33 @@
"url": "https://github.com/sponsors/wooorm"
}
},
+ "node_modules/troika-three-text": {
+ "version": "0.47.1",
+ "resolved": "https://registry.npmjs.org/troika-three-text/-/troika-three-text-0.47.1.tgz",
+ "integrity": "sha512-/fPRUmxCkXxyUT8k6REC/aWeFzKbNr37ivrkrplSJNb3JcBUXvVt8MT0Ac5wTUvFsYTviYWprYS4/8Laen08WA==",
+ "dependencies": {
+ "bidi-js": "^1.0.2",
+ "troika-three-utils": "^0.47.0",
+ "troika-worker-utils": "^0.47.0",
+ "webgl-sdf-generator": "1.1.1"
+ },
+ "peerDependencies": {
+ "three": ">=0.125.0"
+ }
+ },
+ "node_modules/troika-three-utils": {
+ "version": "0.47.0",
+ "resolved": "https://registry.npmjs.org/troika-three-utils/-/troika-three-utils-0.47.0.tgz",
+ "integrity": "sha512-yoVTQxVbpQX3a55giIwqwq6hyJA6oYvq7kaNGwFTeicoWmTZCqqTbytafx1gcuL5umrtw5MYgsxYUSOha+xp5w==",
+ "peerDependencies": {
+ "three": ">=0.125.0"
+ }
+ },
+ "node_modules/troika-worker-utils": {
+ "version": "0.47.0",
+ "resolved": "https://registry.npmjs.org/troika-worker-utils/-/troika-worker-utils-0.47.0.tgz",
+ "integrity": "sha512-PSUc9vunDEkbE23jpgXD3PcF96jQHKjgMjS+4o5g6DEK/ZAPTnldb+FNddhppawfUcuraMFrslo0GmIC8UpEmA=="
+ },
"node_modules/trough": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/trough/-/trough-2.1.0.tgz",
@@ -3523,6 +4085,14 @@
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
"integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
},
+ "node_modules/utility-types": {
+ "version": "3.10.0",
+ "resolved": "https://registry.npmjs.org/utility-types/-/utility-types-3.10.0.tgz",
+ "integrity": "sha512-O11mqxmi7wMKCo6HKFt5AhO4BwY3VV68YU07tgxfz8zJTIxr4BpsezN49Ffwy9j3ZpwwJp4fkRwjRzq3uWE6Rg==",
+ "engines": {
+ "node": ">= 4"
+ }
+ },
"node_modules/uvu": {
"version": "0.5.6",
"resolved": "https://registry.npmjs.org/uvu/-/uvu-0.5.6.tgz",
@@ -3590,6 +4160,16 @@
"url": "https://github.com/sponsors/wooorm"
}
},
+ "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=="
+ },
"node_modules/xtend": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
@@ -3606,6 +4186,27 @@
"node": ">= 6"
}
},
+ "node_modules/zstddec": {
+ "version": "0.0.2",
+ "resolved": "https://registry.npmjs.org/zstddec/-/zstddec-0.0.2.tgz",
+ "integrity": "sha512-DCo0oxvcvOTGP/f5FA6tz2Z6wF+FIcEApSTu0zV5sQgn9hoT5lZ9YRAKUraxt9oP7l4e8TnNdi8IZTCX6WCkwA=="
+ },
+ "node_modules/zustand": {
+ "version": "3.7.2",
+ "resolved": "https://registry.npmjs.org/zustand/-/zustand-3.7.2.tgz",
+ "integrity": "sha512-PIJDIZKtokhof+9+60cpockVOq05sJzHCriyvaLBmEJixseQ1a5Kdov6fWZfWOu5SK9c+FhH1jU0tntLxRJYMA==",
+ "engines": {
+ "node": ">=12.7.0"
+ },
+ "peerDependencies": {
+ "react": ">=16.8"
+ },
+ "peerDependenciesMeta": {
+ "react": {
+ "optional": true
+ }
+ }
+ },
"node_modules/zwitch": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz",
@@ -3634,6 +4235,35 @@
"regenerator-runtime": "^0.13.11"
}
},
+ "@chevrotain/cst-dts-gen": {
+ "version": "10.4.2",
+ "resolved": "https://registry.npmjs.org/@chevrotain/cst-dts-gen/-/cst-dts-gen-10.4.2.tgz",
+ "integrity": "sha512-0+4bNjlndNWMoVLH/+y4uHnf6GrTipsC+YTppJxelVJo+xeRVQ0s2PpkdDCVTsu7efyj+8r1gFiwVXsp6JZ0iQ==",
+ "requires": {
+ "@chevrotain/gast": "10.4.2",
+ "@chevrotain/types": "10.4.2",
+ "lodash": "4.17.21"
+ }
+ },
+ "@chevrotain/gast": {
+ "version": "10.4.2",
+ "resolved": "https://registry.npmjs.org/@chevrotain/gast/-/gast-10.4.2.tgz",
+ "integrity": "sha512-4ZAn8/mjkmYonilSJ60gGj1tAF0cVWYUMlIGA0e4ATAc3a648aCnvpBw7zlPHDQjFp50XC13iyWEgWAKiRKTOA==",
+ "requires": {
+ "@chevrotain/types": "10.4.2",
+ "lodash": "4.17.21"
+ }
+ },
+ "@chevrotain/types": {
+ "version": "10.4.2",
+ "resolved": "https://registry.npmjs.org/@chevrotain/types/-/types-10.4.2.tgz",
+ "integrity": "sha512-QzSCjg6G4MvIoLeIgOiMR0IgzkGEQqrNJJIr3T5ETRa7l4Av4AMIiEctV99mvDr57iXwwk0/kr3RJxiU36Nevw=="
+ },
+ "@chevrotain/utils": {
+ "version": "10.4.2",
+ "resolved": "https://registry.npmjs.org/@chevrotain/utils/-/utils-10.4.2.tgz",
+ "integrity": "sha512-V34dacxWLwKcvcy32dx96ADJVdB7kOJLm7LyBkBQw5u5HC9WdEFw2G17zml+U3ivavGTrGPJHl8o9/UJm0PlUw=="
+ },
"@emotion/is-prop-valid": {
"version": "0.8.8",
"resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz",
@@ -3849,6 +4479,108 @@
"fastq": "^1.6.0"
}
},
+ "@react-spring/animated": {
+ "version": "9.6.1",
+ "resolved": "https://registry.npmjs.org/@react-spring/animated/-/animated-9.6.1.tgz",
+ "integrity": "sha512-ls/rJBrAqiAYozjLo5EPPLLOb1LM0lNVQcXODTC1SMtS6DbuBCPaKco5svFUQFMP2dso3O+qcC4k9FsKc0KxMQ==",
+ "requires": {
+ "@react-spring/shared": "~9.6.1",
+ "@react-spring/types": "~9.6.1"
+ }
+ },
+ "@react-spring/core": {
+ "version": "9.6.1",
+ "resolved": "https://registry.npmjs.org/@react-spring/core/-/core-9.6.1.tgz",
+ "integrity": "sha512-3HAAinAyCPessyQNNXe5W0OHzRfa8Yo5P748paPcmMowZ/4sMfaZ2ZB6e5x5khQI8NusOHj8nquoutd6FRY5WQ==",
+ "requires": {
+ "@react-spring/animated": "~9.6.1",
+ "@react-spring/rafz": "~9.6.1",
+ "@react-spring/shared": "~9.6.1",
+ "@react-spring/types": "~9.6.1"
+ }
+ },
+ "@react-spring/rafz": {
+ "version": "9.6.1",
+ "resolved": "https://registry.npmjs.org/@react-spring/rafz/-/rafz-9.6.1.tgz",
+ "integrity": "sha512-v6qbgNRpztJFFfSE3e2W1Uz+g8KnIBs6SmzCzcVVF61GdGfGOuBrbjIcp+nUz301awVmREKi4eMQb2Ab2gGgyQ=="
+ },
+ "@react-spring/shared": {
+ "version": "9.6.1",
+ "resolved": "https://registry.npmjs.org/@react-spring/shared/-/shared-9.6.1.tgz",
+ "integrity": "sha512-PBFBXabxFEuF8enNLkVqMC9h5uLRBo6GQhRMQT/nRTnemVENimgRd+0ZT4yFnAQ0AxWNiJfX3qux+bW2LbG6Bw==",
+ "requires": {
+ "@react-spring/rafz": "~9.6.1",
+ "@react-spring/types": "~9.6.1"
+ }
+ },
+ "@react-spring/three": {
+ "version": "9.6.1",
+ "resolved": "https://registry.npmjs.org/@react-spring/three/-/three-9.6.1.tgz",
+ "integrity": "sha512-Tyw2YhZPKJAX3t2FcqvpLRb71CyTe1GvT3V+i+xJzfALgpk10uPGdGaQQ5Xrzmok1340DAeg2pR/MCfaW7b8AA==",
+ "requires": {
+ "@react-spring/animated": "~9.6.1",
+ "@react-spring/core": "~9.6.1",
+ "@react-spring/shared": "~9.6.1",
+ "@react-spring/types": "~9.6.1"
+ }
+ },
+ "@react-spring/types": {
+ "version": "9.6.1",
+ "resolved": "https://registry.npmjs.org/@react-spring/types/-/types-9.6.1.tgz",
+ "integrity": "sha512-POu8Mk0hIU3lRXB3bGIGe4VHIwwDsQyoD1F394OK7STTiX9w4dG3cTLljjYswkQN+hDSHRrj4O36kuVa7KPU8Q=="
+ },
+ "@react-three/drei": {
+ "version": "9.56.19",
+ "resolved": "https://registry.npmjs.org/@react-three/drei/-/drei-9.56.19.tgz",
+ "integrity": "sha512-vbBEbxDrC1VZ16QFtJQoC0QK1d3HSFV0WxPL5wxXZcL1zI0GN9RvoWj9CF9z2ImsaAQYzCnEurPJbsKJopxwzQ==",
+ "requires": {
+ "@babel/runtime": "^7.11.2",
+ "@react-spring/three": "^9.3.1",
+ "@use-gesture/react": "^10.2.24",
+ "camera-controls": "^2.0.1",
+ "detect-gpu": "^5.0.9",
+ "glsl-noise": "^0.0.0",
+ "lodash.clamp": "^4.0.3",
+ "lodash.omit": "^4.5.0",
+ "lodash.pick": "^4.4.0",
+ "maath": "^0.5.2",
+ "meshline": "^3.1.6",
+ "react-composer": "^5.0.3",
+ "react-merge-refs": "^1.1.0",
+ "stats.js": "^0.17.0",
+ "suspend-react": "^0.0.8",
+ "three-mesh-bvh": "^0.5.23",
+ "three-stdlib": "^2.21.8",
+ "troika-three-text": "^0.47.1",
+ "utility-types": "^3.10.0",
+ "zustand": "^3.5.13"
+ }
+ },
+ "@react-three/fiber": {
+ "version": "8.11.0",
+ "resolved": "https://registry.npmjs.org/@react-three/fiber/-/fiber-8.11.0.tgz",
+ "integrity": "sha512-n9eM7hVsHbecexKK0isvUOPq1SYMHcLhUTZsMZQSYo5RT1yjbgQbbrVtF9bXN9rQgrD9l3V3Ho3ckPp0cNNs1w==",
+ "requires": {
+ "@babel/runtime": "^7.17.8",
+ "@types/react-reconciler": "^0.26.7",
+ "its-fine": "^1.0.6",
+ "react-reconciler": "^0.27.0",
+ "react-use-measure": "^2.1.1",
+ "scheduler": "^0.21.0",
+ "suspend-react": "^0.0.8",
+ "zustand": "^3.7.1"
+ },
+ "dependencies": {
+ "scheduler": {
+ "version": "0.21.0",
+ "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.21.0.tgz",
+ "integrity": "sha512-1r87x5fz9MXqswA2ERLo0EbOAU74DpIUO090gIasYTqlVoJeMcl+Z1Rg7WHz+qtPujhS/hGIt9kxZOYBV3faRQ==",
+ "requires": {
+ "loose-envify": "^1.1.0"
+ }
+ }
+ }
+ },
"@swc/helpers": {
"version": "0.4.14",
"resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.4.14.tgz",
@@ -3910,6 +4642,11 @@
"resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.11.tgz",
"integrity": "sha512-KJ021B1nlQUBLopzZmPBVuGU9un7WJd/W4ya7Ih02B4Uwky5Nja0yGYav2EfYIk0RR2Q9oVhf60S2XR1BCWJ2g=="
},
+ "@types/offscreencanvas": {
+ "version": "2019.7.0",
+ "resolved": "https://registry.npmjs.org/@types/offscreencanvas/-/offscreencanvas-2019.7.0.tgz",
+ "integrity": "sha512-PGcyveRIpL1XIqK8eBsmRBt76eFgtzuPiSTyKHZxnGemp2yzGzWpjYKAfK3wIMiU7eH+851yEpiuP8JZerTmWg=="
+ },
"@types/parse5": {
"version": "6.0.3",
"resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-6.0.3.tgz",
@@ -3938,6 +4675,14 @@
"@types/react": "*"
}
},
+ "@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==",
+ "requires": {
+ "@types/react": "*"
+ }
+ },
"@types/react-syntax-highlighter": {
"version": "15.5.6",
"resolved": "https://registry.npmjs.org/@types/react-syntax-highlighter/-/react-syntax-highlighter-15.5.6.tgz",
@@ -3952,11 +4697,42 @@
"resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz",
"integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew=="
},
+ "@types/three": {
+ "version": "0.149.0",
+ "resolved": "https://registry.npmjs.org/@types/three/-/three-0.149.0.tgz",
+ "integrity": "sha512-fgNBm9LWc65ER/W0cvoXdC0iMy7Ke9e2CONmEr6Jt8sDSY3sw4DgOubZfmdZ747dkPhbQrgRQAWwDEr2S/7IEg==",
+ "requires": {
+ "@types/webxr": "*"
+ }
+ },
"@types/unist": {
"version": "2.0.6",
"resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.6.tgz",
"integrity": "sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ=="
},
+ "@types/webxr": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/@types/webxr/-/webxr-0.5.1.tgz",
+ "integrity": "sha512-xlFXPfgJR5vIuDefhaHuUM9uUgvPaXB6GKdXy2gdEh8gBWQZ2ul24AJz3foUd8NNKlSTQuWYJpCb1/pL81m1KQ=="
+ },
+ "@use-gesture/core": {
+ "version": "10.2.24",
+ "resolved": "https://registry.npmjs.org/@use-gesture/core/-/core-10.2.24.tgz",
+ "integrity": "sha512-ZL7F9mgOn3Qlnp6QLI9jaOfcvqrx6JPE/BkdVSd8imveaFTm/a3udoO6f5Us/1XtqnL4347PsIiK6AtCvMHk2Q=="
+ },
+ "@use-gesture/react": {
+ "version": "10.2.24",
+ "resolved": "https://registry.npmjs.org/@use-gesture/react/-/react-10.2.24.tgz",
+ "integrity": "sha512-rAZ8Nnpu1g4eFzqCPlaq+TppJpMy0dTpYOQx5KpfoBF4P3aWnCqwj7eKxcmdIb1NJKpIJj50DPugUH4mq5cpBg==",
+ "requires": {
+ "@use-gesture/core": "10.2.24"
+ }
+ },
+ "@webgpu/glslang": {
+ "version": "0.0.15",
+ "resolved": "https://registry.npmjs.org/@webgpu/glslang/-/glslang-0.0.15.tgz",
+ "integrity": "sha512-niT+Prh3Aff8Uf1MVBVUsaNjFj9rJAKDXuoHIKiQbB+6IUP/3J3JIhBNyZ7lDhytvXxw6ppgnwKZdDJ08UMj4Q=="
+ },
"acorn": {
"version": "7.4.1",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz",
@@ -4031,6 +4807,14 @@
"resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz",
"integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw=="
},
+ "bidi-js": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/bidi-js/-/bidi-js-1.0.2.tgz",
+ "integrity": "sha512-rzSy/k7WdX5zOyeHHCOixGXbCHkyogkxPKL2r8QtzHmVQDiWCXUWa18bLdMWT9CYMLOYTjWpTHawuev2ouYJVw==",
+ "requires": {
+ "require-from-string": "^2.0.2"
+ }
+ },
"binary-extensions": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
@@ -4066,6 +4850,12 @@
"resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz",
"integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA=="
},
+ "camera-controls": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/camera-controls/-/camera-controls-2.1.0.tgz",
+ "integrity": "sha512-9b2dpUZp+3Rfkh/E8dU9O9/rBbPDzyB5DBINktedRAF4I5ldZUgBiSYtFac7wF3yXNf4UH2pjP3uRcoAtXTh4A==",
+ "requires": {}
+ },
"caniuse-lite": {
"version": "1.0.30001441",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001441.tgz",
@@ -4096,6 +4886,19 @@
"resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz",
"integrity": "sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg=="
},
+ "chevrotain": {
+ "version": "10.4.2",
+ "resolved": "https://registry.npmjs.org/chevrotain/-/chevrotain-10.4.2.tgz",
+ "integrity": "sha512-gzF5GxE0Ckti5kZVuKEZycLntB5X2aj9RVY0r4/220GwQjdnljU+/t3kP74/FMWC7IzCDDEjQ9wsFUf0WCdSHg==",
+ "requires": {
+ "@chevrotain/cst-dts-gen": "10.4.2",
+ "@chevrotain/gast": "10.4.2",
+ "@chevrotain/types": "10.4.2",
+ "@chevrotain/utils": "10.4.2",
+ "lodash": "4.17.21",
+ "regexp-to-ast": "0.5.0"
+ }
+ },
"chokidar": {
"version": "3.5.3",
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
@@ -4151,6 +4954,11 @@
"resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.1.tgz",
"integrity": "sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw=="
},
+ "debounce": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz",
+ "integrity": "sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug=="
+ },
"debug": {
"version": "4.3.4",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
@@ -4177,6 +4985,14 @@
"resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz",
"integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA=="
},
+ "detect-gpu": {
+ "version": "5.0.10",
+ "resolved": "https://registry.npmjs.org/detect-gpu/-/detect-gpu-5.0.10.tgz",
+ "integrity": "sha512-V0g0RhtlItrhgBM4/T/lTpjephr9b/xDAOtJZztGTvQxaPSMQ4EAiV9tdHL+4GcT1ATvYmMCm4QbrhyjdEH6Fw==",
+ "requires": {
+ "webgl-constants": "^1.1.1"
+ }
+ },
"detective": {
"version": "5.2.1",
"resolved": "https://registry.npmjs.org/detective/-/detective-5.2.1.tgz",
@@ -4202,12 +5018,22 @@
"resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz",
"integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA=="
},
+ "draco3d": {
+ "version": "1.5.6",
+ "resolved": "https://registry.npmjs.org/draco3d/-/draco3d-1.5.6.tgz",
+ "integrity": "sha512-+3NaRjWktb5r61ZFoDejlykPEFKT5N/LkbXsaddlw6xNSXBanUYpFc2AXXpbJDilPHazcSreU/DpQIaxfX0NfQ=="
+ },
"electron-to-chromium": {
"version": "1.4.284",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz",
"integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==",
"dev": true
},
+ "emoticon": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/emoticon/-/emoticon-4.0.1.tgz",
+ "integrity": "sha512-dqx7eA9YaqyvYtUhJwT4rC1HIp82j5ybS1/vQ42ur+jBe17dJMwZE4+gvL1XadSFfxaPFFGt3Xsw+Y8akThDlw=="
+ },
"escalade": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
@@ -4275,6 +5101,11 @@
"format": "^0.2.0"
}
},
+ "fflate": {
+ "version": "0.6.10",
+ "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.6.10.tgz",
+ "integrity": "sha512-IQrh3lEPM93wVCEczc9SaAOvkmcoQn/G8Bo1e8ZPlY3X3bnAxWaBdvTdvM1hP62iZp0BXWDy4vTAy4fF0+Dlpg=="
+ },
"fill-range": {
"version": "7.0.1",
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
@@ -4341,6 +5172,11 @@
"is-glob": "^4.0.3"
}
},
+ "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=="
+ },
"gray-matter": {
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/gray-matter/-/gray-matter-4.0.3.tgz",
@@ -4596,6 +5432,24 @@
"resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz",
"integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg=="
},
+ "its-fine": {
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/its-fine/-/its-fine-1.0.9.tgz",
+ "integrity": "sha512-Ph+vcp1R100JOM4raXmDx/wCTi4kMkMXiFE108qGzsLdghXFPqad82UJJtqT1jwdyWYkTU6eDpDnol/ZIzW+1g==",
+ "requires": {
+ "@types/react-reconciler": "^0.28.0"
+ },
+ "dependencies": {
+ "@types/react-reconciler": {
+ "version": "0.28.2",
+ "resolved": "https://registry.npmjs.org/@types/react-reconciler/-/react-reconciler-0.28.2.tgz",
+ "integrity": "sha512-8tu6lHzEgYPlfDf/J6GOQdIc+gs+S2yAqlby3zTsB3SP2svlqTYe5fwZNtZyfactP74ShooP2vvi1BOp9ZemWw==",
+ "requires": {
+ "@types/react": "*"
+ }
+ }
+ }
+ },
"js-tokens": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
@@ -4620,16 +5474,31 @@
"resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz",
"integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ=="
},
+ "ktx-parse": {
+ "version": "0.4.5",
+ "resolved": "https://registry.npmjs.org/ktx-parse/-/ktx-parse-0.4.5.tgz",
+ "integrity": "sha512-MK3FOody4TXbFf8Yqv7EBbySw7aPvEcPX++Ipt6Sox+/YMFvR5xaTyhfNSk1AEmMy+RYIw81ctN4IMxCB8OAlg=="
+ },
"lilconfig": {
"version": "2.0.6",
"resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.6.tgz",
"integrity": "sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg=="
},
+ "lodash": {
+ "version": "4.17.21",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
+ "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
+ },
"lodash.castarray": {
"version": "4.4.0",
"resolved": "https://registry.npmjs.org/lodash.castarray/-/lodash.castarray-4.4.0.tgz",
"integrity": "sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q=="
},
+ "lodash.clamp": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/lodash.clamp/-/lodash.clamp-4.0.3.tgz",
+ "integrity": "sha512-HvzRFWjtcguTW7yd8NJBshuNaCa8aqNFtnswdT7f/cMd/1YKy5Zzoq4W/Oxvnx9l7aeY258uSdDfM793+eLsVg=="
+ },
"lodash.escaperegexp": {
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz",
@@ -4645,6 +5514,16 @@
"resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
"integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ=="
},
+ "lodash.omit": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/lodash.omit/-/lodash.omit-4.5.0.tgz",
+ "integrity": "sha512-XeqSp49hNGmlkj2EJlfrQFIzQ6lXdNro9sddtQzcJY8QaoC2GO0DT7xaIokHeyM+mIT0mPMlPvkYzg2xCuHdZg=="
+ },
+ "lodash.pick": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz",
+ "integrity": "sha512-hXt6Ul/5yWjfklSGvLQl8vM//l3FtyHZeuelpzK6mm99pNvN9yTDruNZPEJZD1oWrqo+izBmB7oUfWgcCX7s4Q=="
+ },
"longest-streak": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz",
@@ -4667,6 +5546,12 @@
"highlight.js": "~10.7.0"
}
},
+ "maath": {
+ "version": "0.5.2",
+ "resolved": "https://registry.npmjs.org/maath/-/maath-0.5.2.tgz",
+ "integrity": "sha512-MFjfnXF5CzZaVnBuKc9y1FJh/BiPGqf19NH8Jm4o/jKTxuQ3RyPkcSIpuwdDhXrWROVKAxi3KjmHFUNMuIndbg==",
+ "requires": {}
+ },
"markdown-table": {
"version": "3.0.3",
"resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.3.tgz",
@@ -4683,10 +5568,11 @@
}
},
"mdast-util-find-and-replace": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-2.2.1.tgz",
- "integrity": "sha512-SobxkQXFAdd4b5WmEakmkVoh18icjQRxGy5OWTCzgsLRm1Fu/KCtwD1HIQSsmq5ZRjVH0Ehwg6/Fn3xIUk+nKw==",
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-2.2.2.tgz",
+ "integrity": "sha512-MTtdFRz/eMDHXzeK6W3dO7mXUlF82Gom4y0oOgvHhh/HXZAGvIQDUvQ0SuUx+j2tv44b8xTHOm8K/9OoRFnXKw==",
"requires": {
+ "@types/mdast": "^3.0.0",
"escape-string-regexp": "^5.0.0",
"unist-util-is": "^5.0.0",
"unist-util-visit-parents": "^5.0.0"
@@ -4815,6 +5701,12 @@
"resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
"integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg=="
},
+ "meshline": {
+ "version": "3.1.6",
+ "resolved": "https://registry.npmjs.org/meshline/-/meshline-3.1.6.tgz",
+ "integrity": "sha512-8JZJOdaL5oz3PI/upG8JvP/5FfzYUOhrkJ8np/WKvXzl0/PZ2V9pqTvCIjSKv+w9ccg2xb+yyBhXAwt6ier3ug==",
+ "requires": {}
+ },
"micromark": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/micromark/-/micromark-3.1.0.tgz",
@@ -5128,6 +6020,11 @@
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz",
"integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g=="
},
+ "mmd-parser": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/mmd-parser/-/mmd-parser-1.0.4.tgz",
+ "integrity": "sha512-Qi0VCU46t2IwfGv5KF0+D/t9cizcDug7qnNoy9Ggk7aucp0tssV8IwTMkBlDbm+VqAf3cdQHTCARKSsuS2MYFg=="
+ },
"mri": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz",
@@ -5188,6 +6085,14 @@
"@types/nlcst": "^1.0.0"
}
},
+ "node-emoji": {
+ "version": "1.11.0",
+ "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.11.0.tgz",
+ "integrity": "sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==",
+ "requires": {
+ "lodash": "^4.17.21"
+ }
+ },
"node-releases": {
"version": "2.0.8",
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.8.tgz",
@@ -5228,6 +6133,15 @@
"resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz",
"integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw=="
},
+ "opentype.js": {
+ "version": "1.3.4",
+ "resolved": "https://registry.npmjs.org/opentype.js/-/opentype.js-1.3.4.tgz",
+ "integrity": "sha512-d2JE9RP/6uagpQAVtJoF0pJJA/fgai89Cc50Yp0EJHk+eLp6QQ7gBoblsnubRULNY132I0J1QKMJ+JTbMqz4sw==",
+ "requires": {
+ "string.prototype.codepointat": "^0.2.1",
+ "tiny-inflate": "^1.0.3"
+ }
+ },
"parse-entities": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-2.0.0.tgz",
@@ -5352,6 +6266,11 @@
"resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz",
"integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ=="
},
+ "potpack": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/potpack/-/potpack-1.0.2.tgz",
+ "integrity": "sha512-choctRBIV9EMT9WGAZHn3V7t0Z2pMQyl0EZE6pFc/6ml3ssw7Dlf/oAOvFwjm1HVsqfQN8GfeFyJ+d8tRzqueQ=="
+ },
"prismjs": {
"version": "1.29.0",
"resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.29.0.tgz",
@@ -5397,6 +6316,14 @@
"loose-envify": "^1.1.0"
}
},
+ "react-composer": {
+ "version": "5.0.3",
+ "resolved": "https://registry.npmjs.org/react-composer/-/react-composer-5.0.3.tgz",
+ "integrity": "sha512-1uWd07EME6XZvMfapwZmc7NgCZqDemcvicRi3wMJzXsQLvZ3L7fTHVyPy1bZdnWXM4iPjYuNE+uJ41MLKeTtnA==",
+ "requires": {
+ "prop-types": "^15.6.0"
+ }
+ },
"react-dom": {
"version": "18.2.0",
"resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz",
@@ -5439,6 +6366,30 @@
"vfile": "^5.0.0"
}
},
+ "react-merge-refs": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/react-merge-refs/-/react-merge-refs-1.1.0.tgz",
+ "integrity": "sha512-alTKsjEL0dKH/ru1Iyn7vliS2QRcBp9zZPGoWxUOvRGWPUYgjo+V01is7p04It6KhgrzhJGnIj9GgX8W4bZoCQ=="
+ },
+ "react-reconciler": {
+ "version": "0.27.0",
+ "resolved": "https://registry.npmjs.org/react-reconciler/-/react-reconciler-0.27.0.tgz",
+ "integrity": "sha512-HmMDKciQjYmBRGuuhIaKA1ba/7a+UsM5FzOZsMO2JYHt9Jh8reCb7j1eDC95NOyUlKM9KRyvdx0flBuDvYSBoA==",
+ "requires": {
+ "loose-envify": "^1.1.0",
+ "scheduler": "^0.21.0"
+ },
+ "dependencies": {
+ "scheduler": {
+ "version": "0.21.0",
+ "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.21.0.tgz",
+ "integrity": "sha512-1r87x5fz9MXqswA2ERLo0EbOAU74DpIUO090gIasYTqlVoJeMcl+Z1Rg7WHz+qtPujhS/hGIt9kxZOYBV3faRQ==",
+ "requires": {
+ "loose-envify": "^1.1.0"
+ }
+ }
+ }
+ },
"react-syntax-highlighter": {
"version": "15.5.0",
"resolved": "https://registry.npmjs.org/react-syntax-highlighter/-/react-syntax-highlighter-15.5.0.tgz",
@@ -5451,6 +6402,14 @@
"refractor": "^3.6.0"
}
},
+ "react-use-measure": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/react-use-measure/-/react-use-measure-2.1.1.tgz",
+ "integrity": "sha512-nocZhN26cproIiIduswYpV5y5lQpSQS1y/4KuvUCjSKmw7ZWIS/+g3aFnX3WdBkyuGUtTLif3UTqnLLhbDoQig==",
+ "requires": {
+ "debounce": "^1.2.1"
+ }
+ },
"read-cache": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz",
@@ -5489,6 +6448,11 @@
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz",
"integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg=="
},
+ "regexp-to-ast": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/regexp-to-ast/-/regexp-to-ast-0.5.0.tgz",
+ "integrity": "sha512-tlbJqcMHnPKI9zSrystikWKwHkBqu2a/Sgw01h3zFjvYrMxEDYHzzoMZnUrbIfpTFEsoRnnviOXNCzFiSc54Qw=="
+ },
"rehype-raw": {
"version": "6.1.1",
"resolved": "https://registry.npmjs.org/rehype-raw/-/rehype-raw-6.1.1.tgz",
@@ -5520,6 +6484,16 @@
"unified": "^10.0.0"
}
},
+ "remark-emoji": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/remark-emoji/-/remark-emoji-3.1.0.tgz",
+ "integrity": "sha512-KmjkU04niXFMn/H+SsPAGnXhsuq0gT/neIg1KRw8vUKZ/PNxpLDGmwVzx4a14OOd5GJ8rnCdh6DKXqHySkUHAQ==",
+ "requires": {
+ "emoticon": "^4.0.1",
+ "mdast-util-find-and-replace": "^2.2.2",
+ "node-emoji": "^1.11.0"
+ }
+ },
"remark-gfm": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-3.0.1.tgz",
@@ -5584,6 +6558,11 @@
"unified": "^10.0.0"
}
},
+ "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=="
+ },
"resolve": {
"version": "1.22.1",
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz",
@@ -5690,6 +6669,16 @@
"resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
"integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g=="
},
+ "stats.js": {
+ "version": "0.17.0",
+ "resolved": "https://registry.npmjs.org/stats.js/-/stats.js-0.17.0.tgz",
+ "integrity": "sha512-hNKz8phvYLPEcRkeG1rsGmV5ChMjKDAWU7/OJJdDErPBNChQXxCo3WZurGpnWc6gZhAzEPFad1aVgyOANH1sMw=="
+ },
+ "string.prototype.codepointat": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/string.prototype.codepointat/-/string.prototype.codepointat-0.2.1.tgz",
+ "integrity": "sha512-2cBVCj6I4IOvEnjgO/hWqXjqBGsY+zwPmHl12Srk9IXSZ56Jwwmy+66XO5Iut/oQVR7t5ihYdLB0GMa4alEUcg=="
+ },
"stringify-entities": {
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.3.tgz",
@@ -5725,6 +6714,12 @@
"resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
"integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w=="
},
+ "suspend-react": {
+ "version": "0.0.8",
+ "resolved": "https://registry.npmjs.org/suspend-react/-/suspend-react-0.0.8.tgz",
+ "integrity": "sha512-ZC3r8Hu1y0dIThzsGw0RLZplnX9yXwfItcvaIzJc2VQVi8TGyGDlu92syMB5ulybfvGLHAI5Ghzlk23UBPF8xg==",
+ "requires": {}
+ },
"tailwindcss": {
"version": "3.2.4",
"resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.2.4.tgz",
@@ -5755,6 +6750,40 @@
"resolve": "^1.22.1"
}
},
+ "three": {
+ "version": "0.149.0",
+ "resolved": "https://registry.npmjs.org/three/-/three-0.149.0.tgz",
+ "integrity": "sha512-tohpUxPDht0qExRLDTM8sjRLc5d9STURNrdnK3w9A+V4pxaTBfKWWT/IqtiLfg23Vfc3Z+ImNfvRw1/0CtxrkQ=="
+ },
+ "three-mesh-bvh": {
+ "version": "0.5.23",
+ "resolved": "https://registry.npmjs.org/three-mesh-bvh/-/three-mesh-bvh-0.5.23.tgz",
+ "integrity": "sha512-nyk+MskdyDgECqkxdv57UjazqqhrMi+Al9PxJN6yFtx1CTW4r0eCQ27FtyYKY5gCIWhxjtNfWYDPVy8lzx6LkA==",
+ "requires": {}
+ },
+ "three-stdlib": {
+ "version": "2.21.8",
+ "resolved": "https://registry.npmjs.org/three-stdlib/-/three-stdlib-2.21.8.tgz",
+ "integrity": "sha512-kqisiKvO4mSy59v5vWqBQSH8famLxp7Z51LxpMJI9GwDxqODaW02rhIwmjYDEzZWNFpjZpoDHVGbdpeHf8h3SA==",
+ "requires": {
+ "@babel/runtime": "^7.16.7",
+ "@types/offscreencanvas": "^2019.6.4",
+ "@webgpu/glslang": "^0.0.15",
+ "chevrotain": "^10.1.2",
+ "draco3d": "^1.4.1",
+ "fflate": "^0.6.9",
+ "ktx-parse": "^0.4.5",
+ "mmd-parser": "^1.0.4",
+ "opentype.js": "^1.3.3",
+ "potpack": "^1.0.1",
+ "zstddec": "^0.0.2"
+ }
+ },
+ "tiny-inflate": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/tiny-inflate/-/tiny-inflate-1.0.3.tgz",
+ "integrity": "sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw=="
+ },
"to-regex-range": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
@@ -5768,6 +6797,28 @@
"resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz",
"integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg=="
},
+ "troika-three-text": {
+ "version": "0.47.1",
+ "resolved": "https://registry.npmjs.org/troika-three-text/-/troika-three-text-0.47.1.tgz",
+ "integrity": "sha512-/fPRUmxCkXxyUT8k6REC/aWeFzKbNr37ivrkrplSJNb3JcBUXvVt8MT0Ac5wTUvFsYTviYWprYS4/8Laen08WA==",
+ "requires": {
+ "bidi-js": "^1.0.2",
+ "troika-three-utils": "^0.47.0",
+ "troika-worker-utils": "^0.47.0",
+ "webgl-sdf-generator": "1.1.1"
+ }
+ },
+ "troika-three-utils": {
+ "version": "0.47.0",
+ "resolved": "https://registry.npmjs.org/troika-three-utils/-/troika-three-utils-0.47.0.tgz",
+ "integrity": "sha512-yoVTQxVbpQX3a55giIwqwq6hyJA6oYvq7kaNGwFTeicoWmTZCqqTbytafx1gcuL5umrtw5MYgsxYUSOha+xp5w==",
+ "requires": {}
+ },
+ "troika-worker-utils": {
+ "version": "0.47.0",
+ "resolved": "https://registry.npmjs.org/troika-worker-utils/-/troika-worker-utils-0.47.0.tgz",
+ "integrity": "sha512-PSUc9vunDEkbE23jpgXD3PcF96jQHKjgMjS+4o5g6DEK/ZAPTnldb+FNddhppawfUcuraMFrslo0GmIC8UpEmA=="
+ },
"trough": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/trough/-/trough-2.1.0.tgz",
@@ -5916,6 +6967,11 @@
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
"integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
},
+ "utility-types": {
+ "version": "3.10.0",
+ "resolved": "https://registry.npmjs.org/utility-types/-/utility-types-3.10.0.tgz",
+ "integrity": "sha512-O11mqxmi7wMKCo6HKFt5AhO4BwY3VV68YU07tgxfz8zJTIxr4BpsezN49Ffwy9j3ZpwwJp4fkRwjRzq3uWE6Rg=="
+ },
"uvu": {
"version": "0.5.6",
"resolved": "https://registry.npmjs.org/uvu/-/uvu-0.5.6.tgz",
@@ -5961,6 +7017,16 @@
"resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-2.0.1.tgz",
"integrity": "sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ=="
},
+ "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=="
+ },
+ "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=="
+ },
"xtend": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
@@ -5971,6 +7037,17 @@
"resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz",
"integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg=="
},
+ "zstddec": {
+ "version": "0.0.2",
+ "resolved": "https://registry.npmjs.org/zstddec/-/zstddec-0.0.2.tgz",
+ "integrity": "sha512-DCo0oxvcvOTGP/f5FA6tz2Z6wF+FIcEApSTu0zV5sQgn9hoT5lZ9YRAKUraxt9oP7l4e8TnNdi8IZTCX6WCkwA=="
+ },
+ "zustand": {
+ "version": "3.7.2",
+ "resolved": "https://registry.npmjs.org/zustand/-/zustand-3.7.2.tgz",
+ "integrity": "sha512-PIJDIZKtokhof+9+60cpockVOq05sJzHCriyvaLBmEJixseQ1a5Kdov6fWZfWOu5SK9c+FhH1jU0tntLxRJYMA==",
+ "requires": {}
+ },
"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 8b954e3..103ba33 100644
--- a/package.json
+++ b/package.json
@@ -11,10 +11,13 @@
"dependencies": {
"@agentofuser/remark-oembed": "^1.0.4",
"@mavrin/remark-typograf": "^2.2.0",
+ "@react-three/drei": "^9.56.19",
+ "@react-three/fiber": "^8.11.0",
"@tailwindcss/typography": "^0.5.8",
"@types/node": "18.11.11",
"@types/react": "18.0.26",
"@types/react-dom": "18.0.9",
+ "@types/three": "^0.149.0",
"framer-motion": "^8.0.2",
"gray-matter": "^4.0.3",
"next": "13.0.6",
@@ -27,9 +30,11 @@
"rehype-raw": "^6.1.1",
"rehype-sanitize": "^5.0.1",
"remark": "^14.0.2",
+ "remark-emoji": "^3.1.0",
"remark-gfm": "^3.0.1",
"remark-html": "^15.0.1",
"remark-smartypants": "^2.0.0",
+ "three": "^0.149.0",
"typescript": "4.9.3"
},
"devDependencies": {
diff --git a/pages/blog/[slug].tsx b/pages/blog/[slug].tsx
index f137af0..c109828 100644
--- a/pages/blog/[slug].tsx
+++ b/pages/blog/[slug].tsx
@@ -13,14 +13,18 @@ import { StyledMarkdown } from "../../components/StyledMarkdown";
export const BlogArticle = ({ frontMatter, html }: MarkdownRenderingResult) => {
return (
-
-
-
- Go Back
-
-
-
-
+
+
+
+
+
+ Go Back
+
+
+
+
+
+
);
};
diff --git a/pages/blog/index.tsx b/pages/blog/index.tsx
index e2b6b6b..fabfc66 100644
--- a/pages/blog/index.tsx
+++ b/pages/blog/index.tsx
@@ -13,12 +13,12 @@ const BlogCard = ({
slug: string;
}) => {
return (
-
+
{formatDate(blog.date)}
{blog.title}
-
+
{blog.description}
@@ -36,7 +36,7 @@ const Blog = ({ posts }: { posts: Post[] }) => {
Blog
-
+
{posts.map((post, index) => (
{
return (
-
-
-
- Go Back
-
-
+
+
+
+
+
+ Go Back
+
+
-
+
-
+
+
+
);
};
diff --git a/pages/projects/index.tsx b/pages/projects/index.tsx
index a2b8cf3..270ed4a 100644
--- a/pages/projects/index.tsx
+++ b/pages/projects/index.tsx
@@ -13,13 +13,13 @@ const ProjectCard = ({
slug: string;
}) => {
return (
-
+
{formatDate(project.date)}
{project.title}
-
+
{project.description}
@@ -45,7 +45,7 @@ const Projects = ({ posts }: { posts: Post[] }) => {
Projects
-
+
{posts.map((post, index) => (
a:hover::before {
div > code, pre > code {
@apply p-0 m-0 !important
-}
-
-#gradient-background {
- width:100%;
- height:100%;
- fill: rgba(0, 0, 0, 0.6);
- --gradient-color-1: #161926;
- --gradient-color-2: #1E96FC;
- --gradient-color-3: #FF3366;
- --gradient-color-4: #1b2034;
-}
-
\ No newline at end of file
+}
\ No newline at end of file
diff --git a/yarn.lock b/yarn.lock
index f24e642..b6a88cb 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -10,13 +10,40 @@
"axios" "^0.19.0"
"unist-util-select" "^2.0.2"
-"@babel/runtime@^7.3.1":
+"@babel/runtime@^7.11.2", "@babel/runtime@^7.16.7", "@babel/runtime@^7.17.8", "@babel/runtime@^7.3.1":
"integrity" "sha512-gt3PKXs0DBoL9xCvOIIZ2NEqAGZqHjAnmVbfQtB620V0uReIQutpel14KcneZuer7UioY8ALKZ7iocavvzTNFA=="
"resolved" "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.13.tgz"
"version" "7.20.13"
dependencies:
"regenerator-runtime" "^0.13.11"
+"@chevrotain/cst-dts-gen@10.4.2":
+ "integrity" "sha512-0+4bNjlndNWMoVLH/+y4uHnf6GrTipsC+YTppJxelVJo+xeRVQ0s2PpkdDCVTsu7efyj+8r1gFiwVXsp6JZ0iQ=="
+ "resolved" "https://registry.npmjs.org/@chevrotain/cst-dts-gen/-/cst-dts-gen-10.4.2.tgz"
+ "version" "10.4.2"
+ dependencies:
+ "@chevrotain/gast" "10.4.2"
+ "@chevrotain/types" "10.4.2"
+ "lodash" "4.17.21"
+
+"@chevrotain/gast@10.4.2":
+ "integrity" "sha512-4ZAn8/mjkmYonilSJ60gGj1tAF0cVWYUMlIGA0e4ATAc3a648aCnvpBw7zlPHDQjFp50XC13iyWEgWAKiRKTOA=="
+ "resolved" "https://registry.npmjs.org/@chevrotain/gast/-/gast-10.4.2.tgz"
+ "version" "10.4.2"
+ dependencies:
+ "@chevrotain/types" "10.4.2"
+ "lodash" "4.17.21"
+
+"@chevrotain/types@10.4.2":
+ "integrity" "sha512-QzSCjg6G4MvIoLeIgOiMR0IgzkGEQqrNJJIr3T5ETRa7l4Av4AMIiEctV99mvDr57iXwwk0/kr3RJxiU36Nevw=="
+ "resolved" "https://registry.npmjs.org/@chevrotain/types/-/types-10.4.2.tgz"
+ "version" "10.4.2"
+
+"@chevrotain/utils@10.4.2":
+ "integrity" "sha512-V34dacxWLwKcvcy32dx96ADJVdB7kOJLm7LyBkBQw5u5HC9WdEFw2G17zml+U3ivavGTrGPJHl8o9/UJm0PlUw=="
+ "resolved" "https://registry.npmjs.org/@chevrotain/utils/-/utils-10.4.2.tgz"
+ "version" "10.4.2"
+
"@emotion/is-prop-valid@^0.8.2":
"integrity" "sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA=="
"resolved" "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz"
@@ -127,6 +154,92 @@
"@nodelib/fs.scandir" "2.1.5"
"fastq" "^1.6.0"
+"@react-spring/animated@~9.6.1":
+ "integrity" "sha512-ls/rJBrAqiAYozjLo5EPPLLOb1LM0lNVQcXODTC1SMtS6DbuBCPaKco5svFUQFMP2dso3O+qcC4k9FsKc0KxMQ=="
+ "resolved" "https://registry.npmjs.org/@react-spring/animated/-/animated-9.6.1.tgz"
+ "version" "9.6.1"
+ dependencies:
+ "@react-spring/shared" "~9.6.1"
+ "@react-spring/types" "~9.6.1"
+
+"@react-spring/core@~9.6.1":
+ "integrity" "sha512-3HAAinAyCPessyQNNXe5W0OHzRfa8Yo5P748paPcmMowZ/4sMfaZ2ZB6e5x5khQI8NusOHj8nquoutd6FRY5WQ=="
+ "resolved" "https://registry.npmjs.org/@react-spring/core/-/core-9.6.1.tgz"
+ "version" "9.6.1"
+ dependencies:
+ "@react-spring/animated" "~9.6.1"
+ "@react-spring/rafz" "~9.6.1"
+ "@react-spring/shared" "~9.6.1"
+ "@react-spring/types" "~9.6.1"
+
+"@react-spring/rafz@~9.6.1":
+ "integrity" "sha512-v6qbgNRpztJFFfSE3e2W1Uz+g8KnIBs6SmzCzcVVF61GdGfGOuBrbjIcp+nUz301awVmREKi4eMQb2Ab2gGgyQ=="
+ "resolved" "https://registry.npmjs.org/@react-spring/rafz/-/rafz-9.6.1.tgz"
+ "version" "9.6.1"
+
+"@react-spring/shared@~9.6.1":
+ "integrity" "sha512-PBFBXabxFEuF8enNLkVqMC9h5uLRBo6GQhRMQT/nRTnemVENimgRd+0ZT4yFnAQ0AxWNiJfX3qux+bW2LbG6Bw=="
+ "resolved" "https://registry.npmjs.org/@react-spring/shared/-/shared-9.6.1.tgz"
+ "version" "9.6.1"
+ dependencies:
+ "@react-spring/rafz" "~9.6.1"
+ "@react-spring/types" "~9.6.1"
+
+"@react-spring/three@^9.3.1":
+ "integrity" "sha512-Tyw2YhZPKJAX3t2FcqvpLRb71CyTe1GvT3V+i+xJzfALgpk10uPGdGaQQ5Xrzmok1340DAeg2pR/MCfaW7b8AA=="
+ "resolved" "https://registry.npmjs.org/@react-spring/three/-/three-9.6.1.tgz"
+ "version" "9.6.1"
+ dependencies:
+ "@react-spring/animated" "~9.6.1"
+ "@react-spring/core" "~9.6.1"
+ "@react-spring/shared" "~9.6.1"
+ "@react-spring/types" "~9.6.1"
+
+"@react-spring/types@~9.6.1":
+ "integrity" "sha512-POu8Mk0hIU3lRXB3bGIGe4VHIwwDsQyoD1F394OK7STTiX9w4dG3cTLljjYswkQN+hDSHRrj4O36kuVa7KPU8Q=="
+ "resolved" "https://registry.npmjs.org/@react-spring/types/-/types-9.6.1.tgz"
+ "version" "9.6.1"
+
+"@react-three/drei@^9.56.19":
+ "integrity" "sha512-vbBEbxDrC1VZ16QFtJQoC0QK1d3HSFV0WxPL5wxXZcL1zI0GN9RvoWj9CF9z2ImsaAQYzCnEurPJbsKJopxwzQ=="
+ "resolved" "https://registry.npmjs.org/@react-three/drei/-/drei-9.56.19.tgz"
+ "version" "9.56.19"
+ dependencies:
+ "@babel/runtime" "^7.11.2"
+ "@react-spring/three" "^9.3.1"
+ "@use-gesture/react" "^10.2.24"
+ "camera-controls" "^2.0.1"
+ "detect-gpu" "^5.0.9"
+ "glsl-noise" "^0.0.0"
+ "lodash.clamp" "^4.0.3"
+ "lodash.omit" "^4.5.0"
+ "lodash.pick" "^4.4.0"
+ "maath" "^0.5.2"
+ "meshline" "^3.1.6"
+ "react-composer" "^5.0.3"
+ "react-merge-refs" "^1.1.0"
+ "stats.js" "^0.17.0"
+ "suspend-react" "^0.0.8"
+ "three-mesh-bvh" "^0.5.23"
+ "three-stdlib" "^2.21.8"
+ "troika-three-text" "^0.47.1"
+ "utility-types" "^3.10.0"
+ "zustand" "^3.5.13"
+
+"@react-three/fiber@^8.11.0", "@react-three/fiber@>=6.0", "@react-three/fiber@>=8.0":
+ "integrity" "sha512-n9eM7hVsHbecexKK0isvUOPq1SYMHcLhUTZsMZQSYo5RT1yjbgQbbrVtF9bXN9rQgrD9l3V3Ho3ckPp0cNNs1w=="
+ "resolved" "https://registry.npmjs.org/@react-three/fiber/-/fiber-8.11.0.tgz"
+ "version" "8.11.0"
+ dependencies:
+ "@babel/runtime" "^7.17.8"
+ "@types/react-reconciler" "^0.26.7"
+ "its-fine" "^1.0.6"
+ "react-reconciler" "^0.27.0"
+ "react-use-measure" "^2.1.1"
+ "scheduler" "^0.21.0"
+ "suspend-react" "^0.0.8"
+ "zustand" "^3.7.1"
+
"@swc/helpers@0.4.14":
"integrity" "sha512-4C7nX/dvpzB7za4Ql9K81xK3HPxCpHMgwTZVyf+9JQ6VUbn9jjZVN7/Nkdz/Ugzs2CSjqnL/UPXroiVBVHUWUw=="
"resolved" "https://registry.npmjs.org/@swc/helpers/-/helpers-0.4.14.tgz"
@@ -182,6 +295,11 @@
"resolved" "https://registry.npmjs.org/@types/node/-/node-18.11.11.tgz"
"version" "18.11.11"
+"@types/offscreencanvas@^2019.6.4":
+ "integrity" "sha512-PGcyveRIpL1XIqK8eBsmRBt76eFgtzuPiSTyKHZxnGemp2yzGzWpjYKAfK3wIMiU7eH+851yEpiuP8JZerTmWg=="
+ "resolved" "https://registry.npmjs.org/@types/offscreencanvas/-/offscreencanvas-2019.7.0.tgz"
+ "version" "2019.7.0"
+
"@types/parse5@^6.0.0":
"integrity" "sha512-SuT16Q1K51EAVPz1K29DJ/sXjhSQ0zjvsypYJ6tlwVsRV9jwW5Adq2ch8Dq8kDBCkYnELS7N7VNCSB5nC56t/g=="
"resolved" "https://registry.npmjs.org/@types/parse5/-/parse5-6.0.3.tgz"
@@ -199,6 +317,20 @@
dependencies:
"@types/react" "*"
+"@types/react-reconciler@^0.26.7":
+ "integrity" "sha512-mBDYl8x+oyPX/VBb3E638N0B7xG+SPk/EAMcVPeexqus/5aTpTphQi0curhhshOqRrc9t6OPoJfEUkbymse/lQ=="
+ "resolved" "https://registry.npmjs.org/@types/react-reconciler/-/react-reconciler-0.26.7.tgz"
+ "version" "0.26.7"
+ dependencies:
+ "@types/react" "*"
+
+"@types/react-reconciler@^0.28.0":
+ "integrity" "sha512-8tu6lHzEgYPlfDf/J6GOQdIc+gs+S2yAqlby3zTsB3SP2svlqTYe5fwZNtZyfactP74ShooP2vvi1BOp9ZemWw=="
+ "resolved" "https://registry.npmjs.org/@types/react-reconciler/-/react-reconciler-0.28.2.tgz"
+ "version" "0.28.2"
+ dependencies:
+ "@types/react" "*"
+
"@types/react-syntax-highlighter@^15.5.5":
"integrity" "sha512-i7wFuLbIAFlabTeD2I1cLjEOrG/xdMa/rpx2zwzAoGHuXJDhSqp9BSfDlMHSh9JSuNfxHk9eEmMX6D55GiyjGg=="
"resolved" "https://registry.npmjs.org/@types/react-syntax-highlighter/-/react-syntax-highlighter-15.5.6.tgz"
@@ -220,11 +352,40 @@
"resolved" "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz"
"version" "0.16.2"
+"@types/three@^0.149.0", "@types/three@>=0.144.0":
+ "integrity" "sha512-fgNBm9LWc65ER/W0cvoXdC0iMy7Ke9e2CONmEr6Jt8sDSY3sw4DgOubZfmdZ747dkPhbQrgRQAWwDEr2S/7IEg=="
+ "resolved" "https://registry.npmjs.org/@types/three/-/three-0.149.0.tgz"
+ "version" "0.149.0"
+ dependencies:
+ "@types/webxr" "*"
+
"@types/unist@*", "@types/unist@^2.0.0":
"integrity" "sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ=="
"resolved" "https://registry.npmjs.org/@types/unist/-/unist-2.0.6.tgz"
"version" "2.0.6"
+"@types/webxr@*":
+ "integrity" "sha512-xlFXPfgJR5vIuDefhaHuUM9uUgvPaXB6GKdXy2gdEh8gBWQZ2ul24AJz3foUd8NNKlSTQuWYJpCb1/pL81m1KQ=="
+ "resolved" "https://registry.npmjs.org/@types/webxr/-/webxr-0.5.1.tgz"
+ "version" "0.5.1"
+
+"@use-gesture/core@10.2.24":
+ "integrity" "sha512-ZL7F9mgOn3Qlnp6QLI9jaOfcvqrx6JPE/BkdVSd8imveaFTm/a3udoO6f5Us/1XtqnL4347PsIiK6AtCvMHk2Q=="
+ "resolved" "https://registry.npmjs.org/@use-gesture/core/-/core-10.2.24.tgz"
+ "version" "10.2.24"
+
+"@use-gesture/react@^10.2.24":
+ "integrity" "sha512-rAZ8Nnpu1g4eFzqCPlaq+TppJpMy0dTpYOQx5KpfoBF4P3aWnCqwj7eKxcmdIb1NJKpIJj50DPugUH4mq5cpBg=="
+ "resolved" "https://registry.npmjs.org/@use-gesture/react/-/react-10.2.24.tgz"
+ "version" "10.2.24"
+ dependencies:
+ "@use-gesture/core" "10.2.24"
+
+"@webgpu/glslang@^0.0.15":
+ "integrity" "sha512-niT+Prh3Aff8Uf1MVBVUsaNjFj9rJAKDXuoHIKiQbB+6IUP/3J3JIhBNyZ7lDhytvXxw6ppgnwKZdDJ08UMj4Q=="
+ "resolved" "https://registry.npmjs.org/@webgpu/glslang/-/glslang-0.0.15.tgz"
+ "version" "0.0.15"
+
"acorn-node@^1.8.2":
"integrity" "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A=="
"resolved" "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz"
@@ -293,6 +454,13 @@
"resolved" "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz"
"version" "2.0.2"
+"bidi-js@^1.0.2":
+ "integrity" "sha512-rzSy/k7WdX5zOyeHHCOixGXbCHkyogkxPKL2r8QtzHmVQDiWCXUWa18bLdMWT9CYMLOYTjWpTHawuev2ouYJVw=="
+ "resolved" "https://registry.npmjs.org/bidi-js/-/bidi-js-1.0.2.tgz"
+ "version" "1.0.2"
+ dependencies:
+ "require-from-string" "^2.0.2"
+
"binary-extensions@^2.0.0":
"integrity" "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA=="
"resolved" "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz"
@@ -325,6 +493,11 @@
"resolved" "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz"
"version" "2.0.1"
+"camera-controls@^2.0.1":
+ "integrity" "sha512-9b2dpUZp+3Rfkh/E8dU9O9/rBbPDzyB5DBINktedRAF4I5ldZUgBiSYtFac7wF3yXNf4UH2pjP3uRcoAtXTh4A=="
+ "resolved" "https://registry.npmjs.org/camera-controls/-/camera-controls-2.1.0.tgz"
+ "version" "2.1.0"
+
"caniuse-lite@^1.0.30001400", "caniuse-lite@^1.0.30001406", "caniuse-lite@^1.0.30001426":
"integrity" "sha512-OyxRR4Vof59I3yGWXws6i908EtGbMzVUi3ganaZQHmydk1iwDhRnvaPG2WaR0KcqrDFKrxVZHULT396LEPhXfg=="
"resolved" "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001441.tgz"
@@ -365,6 +538,18 @@
"resolved" "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz"
"version" "1.1.4"
+"chevrotain@^10.1.2":
+ "integrity" "sha512-gzF5GxE0Ckti5kZVuKEZycLntB5X2aj9RVY0r4/220GwQjdnljU+/t3kP74/FMWC7IzCDDEjQ9wsFUf0WCdSHg=="
+ "resolved" "https://registry.npmjs.org/chevrotain/-/chevrotain-10.4.2.tgz"
+ "version" "10.4.2"
+ dependencies:
+ "@chevrotain/cst-dts-gen" "10.4.2"
+ "@chevrotain/gast" "10.4.2"
+ "@chevrotain/types" "10.4.2"
+ "@chevrotain/utils" "10.4.2"
+ "lodash" "4.17.21"
+ "regexp-to-ast" "0.5.0"
+
"chokidar@^3.5.3":
"integrity" "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw=="
"resolved" "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz"
@@ -415,6 +600,11 @@
"resolved" "https://registry.npmjs.org/csstype/-/csstype-3.1.1.tgz"
"version" "3.1.1"
+"debounce@^1.2.1":
+ "integrity" "sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug=="
+ "resolved" "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz"
+ "version" "1.2.1"
+
"debug@^4.0.0":
"integrity" "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ=="
"resolved" "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz"
@@ -446,6 +636,13 @@
"resolved" "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz"
"version" "2.0.3"
+"detect-gpu@^5.0.9":
+ "integrity" "sha512-V0g0RhtlItrhgBM4/T/lTpjephr9b/xDAOtJZztGTvQxaPSMQ4EAiV9tdHL+4GcT1ATvYmMCm4QbrhyjdEH6Fw=="
+ "resolved" "https://registry.npmjs.org/detect-gpu/-/detect-gpu-5.0.10.tgz"
+ "version" "5.0.10"
+ dependencies:
+ "webgl-constants" "^1.1.1"
+
"detective@^5.2.1":
"integrity" "sha512-v9XE1zRnz1wRtgurGu0Bs8uHKFSTdteYZNbIPFVhUZ39L/S79ppMpdmVOZAnoz1jfEFodc48n6MX483Xo3t1yw=="
"resolved" "https://registry.npmjs.org/detective/-/detective-5.2.1.tgz"
@@ -470,11 +667,21 @@
"resolved" "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz"
"version" "1.1.3"
+"draco3d@^1.4.1":
+ "integrity" "sha512-+3NaRjWktb5r61ZFoDejlykPEFKT5N/LkbXsaddlw6xNSXBanUYpFc2AXXpbJDilPHazcSreU/DpQIaxfX0NfQ=="
+ "resolved" "https://registry.npmjs.org/draco3d/-/draco3d-1.5.6.tgz"
+ "version" "1.5.6"
+
"electron-to-chromium@^1.4.251":
"integrity" "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA=="
"resolved" "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz"
"version" "1.4.284"
+"emoticon@^4.0.1":
+ "integrity" "sha512-dqx7eA9YaqyvYtUhJwT4rC1HIp82j5ybS1/vQ42ur+jBe17dJMwZE4+gvL1XadSFfxaPFFGt3Xsw+Y8akThDlw=="
+ "resolved" "https://registry.npmjs.org/emoticon/-/emoticon-4.0.1.tgz"
+ "version" "4.0.1"
+
"escalade@^3.1.1":
"integrity" "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw=="
"resolved" "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz"
@@ -527,6 +734,11 @@
dependencies:
"format" "^0.2.0"
+"fflate@^0.6.9":
+ "integrity" "sha512-IQrh3lEPM93wVCEczc9SaAOvkmcoQn/G8Bo1e8ZPlY3X3bnAxWaBdvTdvM1hP62iZp0BXWDy4vTAy4fF0+Dlpg=="
+ "resolved" "https://registry.npmjs.org/fflate/-/fflate-0.6.10.tgz"
+ "version" "0.6.10"
+
"fill-range@^7.0.1":
"integrity" "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ=="
"resolved" "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz"
@@ -588,6 +800,11 @@
dependencies:
"is-glob" "^4.0.1"
+"glsl-noise@^0.0.0":
+ "integrity" "sha512-b/ZCF6amfAUb7dJM/MxRs7AetQEahYzJ8PtgfrmEdtw6uyGOr+ZSGtgjFm6mfsBkxJ4d2W7kg+Nlqzqvn3Bc0w=="
+ "resolved" "https://registry.npmjs.org/glsl-noise/-/glsl-noise-0.0.0.tgz"
+ "version" "0.0.0"
+
"gray-matter@^4.0.3":
"integrity" "sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q=="
"resolved" "https://registry.npmjs.org/gray-matter/-/gray-matter-4.0.3.tgz"
@@ -806,6 +1023,13 @@
"resolved" "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz"
"version" "4.1.0"
+"its-fine@^1.0.6":
+ "integrity" "sha512-Ph+vcp1R100JOM4raXmDx/wCTi4kMkMXiFE108qGzsLdghXFPqad82UJJtqT1jwdyWYkTU6eDpDnol/ZIzW+1g=="
+ "resolved" "https://registry.npmjs.org/its-fine/-/its-fine-1.0.9.tgz"
+ "version" "1.0.9"
+ dependencies:
+ "@types/react-reconciler" "^0.28.0"
+
"js-tokens@^3.0.0 || ^4.0.0":
"integrity" "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
"resolved" "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz"
@@ -829,6 +1053,11 @@
"resolved" "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz"
"version" "4.1.5"
+"ktx-parse@^0.4.5":
+ "integrity" "sha512-MK3FOody4TXbFf8Yqv7EBbySw7aPvEcPX++Ipt6Sox+/YMFvR5xaTyhfNSk1AEmMy+RYIw81ctN4IMxCB8OAlg=="
+ "resolved" "https://registry.npmjs.org/ktx-parse/-/ktx-parse-0.4.5.tgz"
+ "version" "0.4.5"
+
"lilconfig@^2.0.5", "lilconfig@^2.0.6":
"integrity" "sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg=="
"resolved" "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.6.tgz"
@@ -839,6 +1068,11 @@
"resolved" "https://registry.npmjs.org/lodash.castarray/-/lodash.castarray-4.4.0.tgz"
"version" "4.4.0"
+"lodash.clamp@^4.0.3":
+ "integrity" "sha512-HvzRFWjtcguTW7yd8NJBshuNaCa8aqNFtnswdT7f/cMd/1YKy5Zzoq4W/Oxvnx9l7aeY258uSdDfM793+eLsVg=="
+ "resolved" "https://registry.npmjs.org/lodash.clamp/-/lodash.clamp-4.0.3.tgz"
+ "version" "4.0.3"
+
"lodash.escaperegexp@^4.1.2":
"integrity" "sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw=="
"resolved" "https://registry.npmjs.org/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz"
@@ -854,6 +1088,21 @@
"resolved" "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz"
"version" "4.6.2"
+"lodash.omit@^4.5.0":
+ "integrity" "sha512-XeqSp49hNGmlkj2EJlfrQFIzQ6lXdNro9sddtQzcJY8QaoC2GO0DT7xaIokHeyM+mIT0mPMlPvkYzg2xCuHdZg=="
+ "resolved" "https://registry.npmjs.org/lodash.omit/-/lodash.omit-4.5.0.tgz"
+ "version" "4.5.0"
+
+"lodash.pick@^4.4.0":
+ "integrity" "sha512-hXt6Ul/5yWjfklSGvLQl8vM//l3FtyHZeuelpzK6mm99pNvN9yTDruNZPEJZD1oWrqo+izBmB7oUfWgcCX7s4Q=="
+ "resolved" "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz"
+ "version" "4.4.0"
+
+"lodash@^4.17.21", "lodash@4.17.21":
+ "integrity" "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
+ "resolved" "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz"
+ "version" "4.17.21"
+
"longest-streak@^3.0.0":
"integrity" "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g=="
"resolved" "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz"
@@ -874,6 +1123,11 @@
"fault" "^1.0.0"
"highlight.js" "~10.7.0"
+"maath@^0.5.2":
+ "integrity" "sha512-MFjfnXF5CzZaVnBuKc9y1FJh/BiPGqf19NH8Jm4o/jKTxuQ3RyPkcSIpuwdDhXrWROVKAxi3KjmHFUNMuIndbg=="
+ "resolved" "https://registry.npmjs.org/maath/-/maath-0.5.2.tgz"
+ "version" "0.5.2"
+
"markdown-table@^3.0.0":
"integrity" "sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw=="
"resolved" "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.3.tgz"
@@ -888,11 +1142,12 @@
"@types/unist" "^2.0.0"
"unist-util-visit" "^4.0.0"
-"mdast-util-find-and-replace@^2.0.0":
- "integrity" "sha512-SobxkQXFAdd4b5WmEakmkVoh18icjQRxGy5OWTCzgsLRm1Fu/KCtwD1HIQSsmq5ZRjVH0Ehwg6/Fn3xIUk+nKw=="
- "resolved" "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-2.2.1.tgz"
- "version" "2.2.1"
+"mdast-util-find-and-replace@^2.0.0", "mdast-util-find-and-replace@^2.2.2":
+ "integrity" "sha512-MTtdFRz/eMDHXzeK6W3dO7mXUlF82Gom4y0oOgvHhh/HXZAGvIQDUvQ0SuUx+j2tv44b8xTHOm8K/9OoRFnXKw=="
+ "resolved" "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-2.2.2.tgz"
+ "version" "2.2.2"
dependencies:
+ "@types/mdast" "^3.0.0"
"escape-string-regexp" "^5.0.0"
"unist-util-is" "^5.0.0"
"unist-util-visit-parents" "^5.0.0"
@@ -1011,6 +1266,11 @@
"resolved" "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz"
"version" "1.4.1"
+"meshline@^3.1.6":
+ "integrity" "sha512-8JZJOdaL5oz3PI/upG8JvP/5FfzYUOhrkJ8np/WKvXzl0/PZ2V9pqTvCIjSKv+w9ccg2xb+yyBhXAwt6ier3ug=="
+ "resolved" "https://registry.npmjs.org/meshline/-/meshline-3.1.6.tgz"
+ "version" "3.1.6"
+
"micromark-core-commonmark@^1.0.0", "micromark-core-commonmark@^1.0.1":
"integrity" "sha512-K+PkJTxqjFfSNkfAhp4GB+cZPfQd6dxtTXnf+RjZOV7T4EEXnvgzOcnp+eSTmpGk9d1S9sL6/lqrgSNn/s0HZA=="
"resolved" "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-1.0.6.tgz"
@@ -1299,6 +1559,11 @@
"resolved" "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz"
"version" "1.2.7"
+"mmd-parser@^1.0.4":
+ "integrity" "sha512-Qi0VCU46t2IwfGv5KF0+D/t9cizcDug7qnNoy9Ggk7aucp0tssV8IwTMkBlDbm+VqAf3cdQHTCARKSsuS2MYFg=="
+ "resolved" "https://registry.npmjs.org/mmd-parser/-/mmd-parser-1.0.4.tgz"
+ "version" "1.0.4"
+
"mri@^1.1.0":
"integrity" "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA=="
"resolved" "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz"
@@ -1351,6 +1616,13 @@
dependencies:
"@types/nlcst" "^1.0.0"
+"node-emoji@^1.11.0":
+ "integrity" "sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A=="
+ "resolved" "https://registry.npmjs.org/node-emoji/-/node-emoji-1.11.0.tgz"
+ "version" "1.11.0"
+ dependencies:
+ "lodash" "^4.17.21"
+
"node-releases@^2.0.6":
"integrity" "sha512-dFSmB8fFHEH/s81Xi+Y/15DQY6VHW81nXRj86EMSL3lmuTmK1e+aT4wrFCkTbm+gSwkw4KpX+rT/pMM2c1mF+A=="
"resolved" "https://registry.npmjs.org/node-releases/-/node-releases-2.0.8.tgz"
@@ -1388,6 +1660,14 @@
"resolved" "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz"
"version" "3.0.0"
+"opentype.js@^1.3.3":
+ "integrity" "sha512-d2JE9RP/6uagpQAVtJoF0pJJA/fgai89Cc50Yp0EJHk+eLp6QQ7gBoblsnubRULNY132I0J1QKMJ+JTbMqz4sw=="
+ "resolved" "https://registry.npmjs.org/opentype.js/-/opentype.js-1.3.4.tgz"
+ "version" "1.3.4"
+ dependencies:
+ "string.prototype.codepointat" "^0.2.1"
+ "tiny-inflate" "^1.0.3"
+
"parse-entities@^2.0.0":
"integrity" "sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ=="
"resolved" "https://registry.npmjs.org/parse-entities/-/parse-entities-2.0.0.tgz"
@@ -1501,6 +1781,11 @@
"picocolors" "^1.0.0"
"source-map-js" "^1.0.2"
+"potpack@^1.0.1":
+ "integrity" "sha512-choctRBIV9EMT9WGAZHn3V7t0Z2pMQyl0EZE6pFc/6ml3ssw7Dlf/oAOvFwjm1HVsqfQN8GfeFyJ+d8tRzqueQ=="
+ "resolved" "https://registry.npmjs.org/potpack/-/potpack-1.0.2.tgz"
+ "version" "1.0.2"
+
"prismjs@^1.27.0":
"integrity" "sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q=="
"resolved" "https://registry.npmjs.org/prismjs/-/prismjs-1.29.0.tgz"
@@ -1511,7 +1796,7 @@
"resolved" "https://registry.npmjs.org/prismjs/-/prismjs-1.27.0.tgz"
"version" "1.27.0"
-"prop-types@^15.0.0":
+"prop-types@^15.0.0", "prop-types@^15.6.0":
"integrity" "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg=="
"resolved" "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz"
"version" "15.8.1"
@@ -1542,7 +1827,14 @@
"resolved" "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz"
"version" "5.1.1"
-"react-dom@^18.0.0", "react-dom@^18.2.0", "react-dom@18.2.0":
+"react-composer@^5.0.3":
+ "integrity" "sha512-1uWd07EME6XZvMfapwZmc7NgCZqDemcvicRi3wMJzXsQLvZ3L7fTHVyPy1bZdnWXM4iPjYuNE+uJ41MLKeTtnA=="
+ "resolved" "https://registry.npmjs.org/react-composer/-/react-composer-5.0.3.tgz"
+ "version" "5.0.3"
+ dependencies:
+ "prop-types" "^15.6.0"
+
+"react-dom@^18.0.0", "react-dom@^18.2.0", "react-dom@>=16.13", "react-dom@>=18.0", "react-dom@18.2.0":
"integrity" "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g=="
"resolved" "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz"
"version" "18.2.0"
@@ -1586,6 +1878,19 @@
"unist-util-visit" "^4.0.0"
"vfile" "^5.0.0"
+"react-merge-refs@^1.1.0":
+ "integrity" "sha512-alTKsjEL0dKH/ru1Iyn7vliS2QRcBp9zZPGoWxUOvRGWPUYgjo+V01is7p04It6KhgrzhJGnIj9GgX8W4bZoCQ=="
+ "resolved" "https://registry.npmjs.org/react-merge-refs/-/react-merge-refs-1.1.0.tgz"
+ "version" "1.1.0"
+
+"react-reconciler@^0.27.0":
+ "integrity" "sha512-HmMDKciQjYmBRGuuhIaKA1ba/7a+UsM5FzOZsMO2JYHt9Jh8reCb7j1eDC95NOyUlKM9KRyvdx0flBuDvYSBoA=="
+ "resolved" "https://registry.npmjs.org/react-reconciler/-/react-reconciler-0.27.0.tgz"
+ "version" "0.27.0"
+ dependencies:
+ "loose-envify" "^1.1.0"
+ "scheduler" "^0.21.0"
+
"react-syntax-highlighter@^15.5.0":
"integrity" "sha512-+zq2myprEnQmH5yw6Gqc8lD55QHnpKaU8TOcFeC/Lg/MQSs8UknEA0JC4nTZGFAXC2J2Hyj/ijJ7NlabyPi2gg=="
"resolved" "https://registry.npmjs.org/react-syntax-highlighter/-/react-syntax-highlighter-15.5.0.tgz"
@@ -1597,7 +1902,14 @@
"prismjs" "^1.27.0"
"refractor" "^3.6.0"
-"react@*", "react@^18.0.0", "react@^18.2.0", "react@>= 0.14.0", "react@>= 16.8.0 || 17.x.x || ^18.0.0-0", "react@>=16", "react@18.2.0":
+"react-use-measure@^2.1.1":
+ "integrity" "sha512-nocZhN26cproIiIduswYpV5y5lQpSQS1y/4KuvUCjSKmw7ZWIS/+g3aFnX3WdBkyuGUtTLif3UTqnLLhbDoQig=="
+ "resolved" "https://registry.npmjs.org/react-use-measure/-/react-use-measure-2.1.1.tgz"
+ "version" "2.1.1"
+ dependencies:
+ "debounce" "^1.2.1"
+
+"react@*", "react@^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0", "react@^16.8.0 || ^17.0.0 || ^18.0.0", "react@^18.0.0", "react@^18.2.0", "react@>= 0.14.0", "react@>= 16.8.0", "react@>= 16.8.0 || 17.x.x || ^18.0.0-0", "react@>=16", "react@>=16.13", "react@>=16.8", "react@>=17.0", "react@>=18.0", "react@18.2.0":
"integrity" "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ=="
"resolved" "https://registry.npmjs.org/react/-/react-18.2.0.tgz"
"version" "18.2.0"
@@ -1632,6 +1944,11 @@
"resolved" "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz"
"version" "0.13.11"
+"regexp-to-ast@0.5.0":
+ "integrity" "sha512-tlbJqcMHnPKI9zSrystikWKwHkBqu2a/Sgw01h3zFjvYrMxEDYHzzoMZnUrbIfpTFEsoRnnviOXNCzFiSc54Qw=="
+ "resolved" "https://registry.npmjs.org/regexp-to-ast/-/regexp-to-ast-0.5.0.tgz"
+ "version" "0.5.0"
+
"rehype-raw@^6.1.1":
"integrity" "sha512-d6AKtisSRtDRX4aSPsJGTfnzrX2ZkHQLE5kiUuGOeEoLpbEulFF4hj0mLPbsa+7vmguDKOVVEQdHKDSwoaIDsQ=="
"resolved" "https://registry.npmjs.org/rehype-raw/-/rehype-raw-6.1.1.tgz"
@@ -1650,6 +1967,15 @@
"hast-util-sanitize" "^4.0.0"
"unified" "^10.0.0"
+"remark-emoji@^3.1.0":
+ "integrity" "sha512-KmjkU04niXFMn/H+SsPAGnXhsuq0gT/neIg1KRw8vUKZ/PNxpLDGmwVzx4a14OOd5GJ8rnCdh6DKXqHySkUHAQ=="
+ "resolved" "https://registry.npmjs.org/remark-emoji/-/remark-emoji-3.1.0.tgz"
+ "version" "3.1.0"
+ dependencies:
+ "emoticon" "^4.0.1"
+ "mdast-util-find-and-replace" "^2.2.2"
+ "node-emoji" "^1.11.0"
+
"remark-gfm@^3.0.1":
"integrity" "sha512-lEFDoi2PICJyNrACFOfDD3JlLkuSbOa5Wd8EPt06HUdptv8Gn0bxYTdbU/XXQ3swAPkEaGxxPN9cbnMHvVu1Ig=="
"resolved" "https://registry.npmjs.org/remark-gfm/-/remark-gfm-3.0.1.tgz"
@@ -1718,6 +2044,11 @@
"remark-stringify" "^10.0.0"
"unified" "^10.0.0"
+"require-from-string@^2.0.2":
+ "integrity" "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw=="
+ "resolved" "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz"
+ "version" "2.0.2"
+
"resolve@^1.1.7", "resolve@^1.22.1":
"integrity" "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw=="
"resolved" "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz"
@@ -1785,6 +2116,13 @@
dependencies:
"mri" "^1.1.0"
+"scheduler@^0.21.0":
+ "integrity" "sha512-1r87x5fz9MXqswA2ERLo0EbOAU74DpIUO090gIasYTqlVoJeMcl+Z1Rg7WHz+qtPujhS/hGIt9kxZOYBV3faRQ=="
+ "resolved" "https://registry.npmjs.org/scheduler/-/scheduler-0.21.0.tgz"
+ "version" "0.21.0"
+ dependencies:
+ "loose-envify" "^1.1.0"
+
"scheduler@^0.23.0":
"integrity" "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw=="
"resolved" "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz"
@@ -1820,6 +2158,16 @@
"resolved" "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz"
"version" "1.0.3"
+"stats.js@^0.17.0":
+ "integrity" "sha512-hNKz8phvYLPEcRkeG1rsGmV5ChMjKDAWU7/OJJdDErPBNChQXxCo3WZurGpnWc6gZhAzEPFad1aVgyOANH1sMw=="
+ "resolved" "https://registry.npmjs.org/stats.js/-/stats.js-0.17.0.tgz"
+ "version" "0.17.0"
+
+"string.prototype.codepointat@^0.2.1":
+ "integrity" "sha512-2cBVCj6I4IOvEnjgO/hWqXjqBGsY+zwPmHl12Srk9IXSZ56Jwwmy+66XO5Iut/oQVR7t5ihYdLB0GMa4alEUcg=="
+ "resolved" "https://registry.npmjs.org/string.prototype.codepointat/-/string.prototype.codepointat-0.2.1.tgz"
+ "version" "0.2.1"
+
"stringify-entities@^4.0.2":
"integrity" "sha512-BP9nNHMhhfcMbiuQKCqMjhDP5yBCAxsPu4pHFFzJ6Alo9dZgY4VLDPutXqIjpRiMoKdp7Av85Gr73Q5uH9k7+g=="
"resolved" "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.3.tgz"
@@ -1852,6 +2200,11 @@
"resolved" "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz"
"version" "1.0.0"
+"suspend-react@^0.0.8":
+ "integrity" "sha512-ZC3r8Hu1y0dIThzsGw0RLZplnX9yXwfItcvaIzJc2VQVi8TGyGDlu92syMB5ulybfvGLHAI5Ghzlk23UBPF8xg=="
+ "resolved" "https://registry.npmjs.org/suspend-react/-/suspend-react-0.0.8.tgz"
+ "version" "0.0.8"
+
"tailwindcss@^3.2.4", "tailwindcss@>=3.0.0 || insiders":
"integrity" "sha512-AhwtHCKMtR71JgeYDaswmZXhPcW9iuI9Sp2LvZPo9upDZ7231ZJ7eA9RaURbhpXGVlrjX4cFNlB4ieTetEb7hQ=="
"resolved" "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.2.4.tgz"
@@ -1881,6 +2234,38 @@
"quick-lru" "^5.1.1"
"resolve" "^1.22.1"
+"three-mesh-bvh@^0.5.23":
+ "integrity" "sha512-nyk+MskdyDgECqkxdv57UjazqqhrMi+Al9PxJN6yFtx1CTW4r0eCQ27FtyYKY5gCIWhxjtNfWYDPVy8lzx6LkA=="
+ "resolved" "https://registry.npmjs.org/three-mesh-bvh/-/three-mesh-bvh-0.5.23.tgz"
+ "version" "0.5.23"
+
+"three-stdlib@^2.21.8":
+ "integrity" "sha512-kqisiKvO4mSy59v5vWqBQSH8famLxp7Z51LxpMJI9GwDxqODaW02rhIwmjYDEzZWNFpjZpoDHVGbdpeHf8h3SA=="
+ "resolved" "https://registry.npmjs.org/three-stdlib/-/three-stdlib-2.21.8.tgz"
+ "version" "2.21.8"
+ dependencies:
+ "@babel/runtime" "^7.16.7"
+ "@types/offscreencanvas" "^2019.6.4"
+ "@webgpu/glslang" "^0.0.15"
+ "chevrotain" "^10.1.2"
+ "draco3d" "^1.4.1"
+ "fflate" "^0.6.9"
+ "ktx-parse" "^0.4.5"
+ "mmd-parser" "^1.0.4"
+ "opentype.js" "^1.3.3"
+ "potpack" "^1.0.1"
+ "zstddec" "^0.0.2"
+
+"three@^0.149.0", "three@>= 0.123.0", "three@>=0.122.0", "three@>=0.125.0", "three@>=0.126", "three@>=0.126.1", "three@>=0.133", "three@>=0.137", "three@>=0.144.0":
+ "integrity" "sha512-tohpUxPDht0qExRLDTM8sjRLc5d9STURNrdnK3w9A+V4pxaTBfKWWT/IqtiLfg23Vfc3Z+ImNfvRw1/0CtxrkQ=="
+ "resolved" "https://registry.npmjs.org/three/-/three-0.149.0.tgz"
+ "version" "0.149.0"
+
+"tiny-inflate@^1.0.3":
+ "integrity" "sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw=="
+ "resolved" "https://registry.npmjs.org/tiny-inflate/-/tiny-inflate-1.0.3.tgz"
+ "version" "1.0.3"
+
"to-regex-range@^5.0.1":
"integrity" "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ=="
"resolved" "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz"
@@ -1893,6 +2278,26 @@
"resolved" "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz"
"version" "3.0.1"
+"troika-three-text@^0.47.1":
+ "integrity" "sha512-/fPRUmxCkXxyUT8k6REC/aWeFzKbNr37ivrkrplSJNb3JcBUXvVt8MT0Ac5wTUvFsYTviYWprYS4/8Laen08WA=="
+ "resolved" "https://registry.npmjs.org/troika-three-text/-/troika-three-text-0.47.1.tgz"
+ "version" "0.47.1"
+ dependencies:
+ "bidi-js" "^1.0.2"
+ "troika-three-utils" "^0.47.0"
+ "troika-worker-utils" "^0.47.0"
+ "webgl-sdf-generator" "1.1.1"
+
+"troika-three-utils@^0.47.0":
+ "integrity" "sha512-yoVTQxVbpQX3a55giIwqwq6hyJA6oYvq7kaNGwFTeicoWmTZCqqTbytafx1gcuL5umrtw5MYgsxYUSOha+xp5w=="
+ "resolved" "https://registry.npmjs.org/troika-three-utils/-/troika-three-utils-0.47.0.tgz"
+ "version" "0.47.0"
+
+"troika-worker-utils@^0.47.0":
+ "integrity" "sha512-PSUc9vunDEkbE23jpgXD3PcF96jQHKjgMjS+4o5g6DEK/ZAPTnldb+FNddhppawfUcuraMFrslo0GmIC8UpEmA=="
+ "resolved" "https://registry.npmjs.org/troika-worker-utils/-/troika-worker-utils-0.47.0.tgz"
+ "version" "0.47.0"
+
"trough@^2.0.0":
"integrity" "sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g=="
"resolved" "https://registry.npmjs.org/trough/-/trough-2.1.0.tgz"
@@ -2045,6 +2450,11 @@
"resolved" "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz"
"version" "1.0.2"
+"utility-types@^3.10.0":
+ "integrity" "sha512-O11mqxmi7wMKCo6HKFt5AhO4BwY3VV68YU07tgxfz8zJTIxr4BpsezN49Ffwy9j3ZpwwJp4fkRwjRzq3uWE6Rg=="
+ "resolved" "https://registry.npmjs.org/utility-types/-/utility-types-3.10.0.tgz"
+ "version" "3.10.0"
+
"uvu@^0.5.0":
"integrity" "sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA=="
"resolved" "https://registry.npmjs.org/uvu/-/uvu-0.5.6.tgz"
@@ -2086,6 +2496,16 @@
"resolved" "https://registry.npmjs.org/web-namespaces/-/web-namespaces-2.0.1.tgz"
"version" "2.0.1"
+"webgl-constants@^1.1.1":
+ "integrity" "sha512-LkBXKjU5r9vAW7Gcu3T5u+5cvSvh5WwINdr0C+9jpzVB41cjQAP5ePArDtk/WHYdVj0GefCgM73BA7FlIiNtdg=="
+ "resolved" "https://registry.npmjs.org/webgl-constants/-/webgl-constants-1.1.1.tgz"
+ "version" "1.1.1"
+
+"webgl-sdf-generator@1.1.1":
+ "integrity" "sha512-9Z0JcMTFxeE+b2x1LJTdnaT8rT8aEp7MVxkNwoycNmJWwPdzoXzMh0BjJSh/AEFP+KPYZUli814h8bJZFIZ2jA=="
+ "resolved" "https://registry.npmjs.org/webgl-sdf-generator/-/webgl-sdf-generator-1.1.1.tgz"
+ "version" "1.1.1"
+
"xtend@^4.0.0", "xtend@^4.0.2":
"integrity" "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ=="
"resolved" "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz"
@@ -2096,6 +2516,16 @@
"resolved" "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz"
"version" "1.10.2"
+"zstddec@^0.0.2":
+ "integrity" "sha512-DCo0oxvcvOTGP/f5FA6tz2Z6wF+FIcEApSTu0zV5sQgn9hoT5lZ9YRAKUraxt9oP7l4e8TnNdi8IZTCX6WCkwA=="
+ "resolved" "https://registry.npmjs.org/zstddec/-/zstddec-0.0.2.tgz"
+ "version" "0.0.2"
+
+"zustand@^3.5.13", "zustand@^3.7.1":
+ "integrity" "sha512-PIJDIZKtokhof+9+60cpockVOq05sJzHCriyvaLBmEJixseQ1a5Kdov6fWZfWOu5SK9c+FhH1jU0tntLxRJYMA=="
+ "resolved" "https://registry.npmjs.org/zustand/-/zustand-3.7.2.tgz"
+ "version" "3.7.2"
+
"zwitch@^1.0.3":
"integrity" "sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw=="
"resolved" "https://registry.npmjs.org/zwitch/-/zwitch-1.0.5.tgz"