mirror of
https://github.com/AtHeartEngineer/MetaFest2.git
synced 2026-01-08 04:33:50 -05:00
a swathe of updates
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
const plugins = require('next-compose-plugins')
|
||||
const withImages = require('next-images');
|
||||
// const withOptimizedImages = require('next-optimized-images');
|
||||
const withBundleAnalyzer = require('@next/bundle-analyzer')({
|
||||
enabled: process.env.ANALYZE === 'true',
|
||||
@@ -46,6 +47,22 @@ if (process.env.EXPORT !== 'true') {
|
||||
defaultLocale: 'en-US',
|
||||
}
|
||||
}
|
||||
// module.exports = withImages({
|
||||
// images: {
|
||||
// loader: "custom",
|
||||
// path: "/public/",
|
||||
// imageSizes: [16, 32, 48, 64, 96, 128, 256, 384],
|
||||
// deviceSizes: [640, 750, 828, 1080, 1200, 1920, 2048, 3840],
|
||||
// nextImageExportOptimizer: {
|
||||
// imageFolderPath: "public",
|
||||
// exportFolderPath: "out",
|
||||
// quality: 75,
|
||||
// },
|
||||
// },
|
||||
// env: {
|
||||
// storePicturesInWEBP: true,
|
||||
// },
|
||||
// })
|
||||
|
||||
module.exports = plugins(
|
||||
[
|
||||
@@ -79,7 +96,7 @@ module.exports = plugins(
|
||||
},
|
||||
},
|
||||
],
|
||||
// withOptimizedImages,
|
||||
// withImages,
|
||||
withBundleAnalyzer,
|
||||
],
|
||||
nextConfig
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
"prettier": "prettier -l \"./src/**/*.{js,jsx,md}\"",
|
||||
"dev": "next dev",
|
||||
"build": "next build",
|
||||
"export": "EXPORT=true next build && EXPORT=true next export",
|
||||
"export": "EXPORT=true next build && EXPORT=true next export && EXPORT=true next-image-export-optimizer",
|
||||
"analyze": "ANALYZE=true next build",
|
||||
"start": "next start",
|
||||
"fleek:deploy": "EXPORT=true next build && EXPORT=true next export && fleek site:deploy"
|
||||
@@ -33,6 +33,7 @@
|
||||
"@react-three/postprocessing": "^2.3.2",
|
||||
"@widgetbot/react-embed": "^1.4.0",
|
||||
"babel-plugin-glsl": "^1.0.0",
|
||||
"cloudinary-build-url": "^0.2.4",
|
||||
"framer-motion": "4.1.17",
|
||||
"global": "^4.4.0",
|
||||
"glsl-random": "^0.0.5",
|
||||
@@ -43,6 +44,8 @@
|
||||
"leva": "^0.9.23",
|
||||
"lil-gui": "^0.11.0",
|
||||
"next": "^12.1.4",
|
||||
"next-image-export-optimizer": "^0.9.5",
|
||||
"next-images": "^1.8.4",
|
||||
"next-optimized-images": "^2.6.2",
|
||||
"next-seo": "^5.4.0",
|
||||
"react": "^18.0.0",
|
||||
|
||||
@@ -74,74 +74,74 @@
|
||||
<stop offset="1" stop-color="#FF22CF"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint9_linear" x1="144.24" y1="249.503" x2="144.24" y2="37.9967" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#04468B"/>
|
||||
<stop offset="0.1742" stop-color="#0561A3"/>
|
||||
<stop offset="0.5126" stop-color="#0791CE"/>
|
||||
<stop offset="0.772" stop-color="#09AEE8"/>
|
||||
<stop offset="0.9194" stop-color="#09B9F2"/>
|
||||
<stop stop-color="#C433FF"/>
|
||||
<stop offset="0.1742" stop-color="#D72EF0"/>
|
||||
<stop offset="0.5126" stop-color="#F425D8"/>
|
||||
<stop offset="0.772" stop-color="#FF22CF"/>
|
||||
<stop offset="0.9194" stop-color="#FF22CF"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint10_linear" x1="172.568" y1="249.503" x2="172.568" y2="37.9966" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#04468B"/>
|
||||
<stop offset="0.1742" stop-color="#0561A3"/>
|
||||
<stop offset="0.5126" stop-color="#0791CE"/>
|
||||
<stop offset="0.772" stop-color="#09AEE8"/>
|
||||
<stop offset="0.9194" stop-color="#09B9F2"/>
|
||||
<stop stop-color="#C433FF"/>
|
||||
<stop offset="0.1742" stop-color="#D72EF0"/>
|
||||
<stop offset="0.5126" stop-color="#F425D8"/>
|
||||
<stop offset="0.772" stop-color="#FF22CF"/>
|
||||
<stop offset="0.9194" stop-color="#FF22CF"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint11_linear" x1="84.6012" y1="249.502" x2="84.6012" y2="37.9964" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#04468B"/>
|
||||
<stop offset="0.1742" stop-color="#0561A3"/>
|
||||
<stop offset="0.5126" stop-color="#0791CE"/>
|
||||
<stop offset="0.772" stop-color="#09AEE8"/>
|
||||
<stop offset="0.9194" stop-color="#09B9F2"/>
|
||||
<stop stop-color="#C433FF"/>
|
||||
<stop offset="0.1742" stop-color="#D72EF0"/>
|
||||
<stop offset="0.5126" stop-color="#F425D8"/>
|
||||
<stop offset="0.772" stop-color="#FF22CF"/>
|
||||
<stop offset="0.9194" stop-color="#FF22CF"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint12_linear" x1="96.446" y1="249.502" x2="96.446" y2="37.9961" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#04468B"/>
|
||||
<stop offset="0.1742" stop-color="#0561A3"/>
|
||||
<stop offset="0.5126" stop-color="#0791CE"/>
|
||||
<stop offset="0.772" stop-color="#09AEE8"/>
|
||||
<stop offset="0.9194" stop-color="#09B9F2"/>
|
||||
<stop stop-color="#C433FF"/>
|
||||
<stop offset="0.1742" stop-color="#D72EF0"/>
|
||||
<stop offset="0.5126" stop-color="#F425D8"/>
|
||||
<stop offset="0.772" stop-color="#FF22CF"/>
|
||||
<stop offset="0.9194" stop-color="#FF22CF"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint13_linear" x1="184.837" y1="249.503" x2="184.837" y2="37.9968" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#04468B"/>
|
||||
<stop offset="0.1742" stop-color="#0561A3"/>
|
||||
<stop offset="0.5126" stop-color="#0791CE"/>
|
||||
<stop offset="0.772" stop-color="#09AEE8"/>
|
||||
<stop offset="0.9194" stop-color="#09B9F2"/>
|
||||
<stop stop-color="#C433FF"/>
|
||||
<stop offset="0.1742" stop-color="#D72EF0"/>
|
||||
<stop offset="0.5126" stop-color="#F425D8"/>
|
||||
<stop offset="0.772" stop-color="#FF22CF"/>
|
||||
<stop offset="0.9194" stop-color="#FF22CF"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint14_linear" x1="139.626" y1="249.502" x2="139.626" y2="37.9963" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#04468B"/>
|
||||
<stop offset="0.1742" stop-color="#0561A3"/>
|
||||
<stop offset="0.5126" stop-color="#0791CE"/>
|
||||
<stop offset="0.772" stop-color="#09AEE8"/>
|
||||
<stop offset="0.9194" stop-color="#09B9F2"/>
|
||||
<stop stop-color="#C433FF"/>
|
||||
<stop offset="0.1742" stop-color="#D72EF0"/>
|
||||
<stop offset="0.5126" stop-color="#F425D8"/>
|
||||
<stop offset="0.772" stop-color="#FF22CF"/>
|
||||
<stop offset="0.9194" stop-color="#FF22CF"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint15_linear" x1="85.3726" y1="249.502" x2="85.3726" y2="37.9968" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#04468B"/>
|
||||
<stop offset="0.1742" stop-color="#0561A3"/>
|
||||
<stop offset="0.5126" stop-color="#0791CE"/>
|
||||
<stop offset="0.772" stop-color="#09AEE8"/>
|
||||
<stop offset="0.9194" stop-color="#09B9F2"/>
|
||||
<stop stop-color="#C433FF"/>
|
||||
<stop offset="0.1742" stop-color="#D72EF0"/>
|
||||
<stop offset="0.5126" stop-color="#F425D8"/>
|
||||
<stop offset="0.772" stop-color="#FF22CF"/>
|
||||
<stop offset="0.9194" stop-color="#FF22CF"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint16_linear" x1="111.293" y1="249.502" x2="111.293" y2="37.9968" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#04468B"/>
|
||||
<stop offset="0.1742" stop-color="#0561A3"/>
|
||||
<stop offset="0.5126" stop-color="#0791CE"/>
|
||||
<stop offset="0.772" stop-color="#09AEE8"/>
|
||||
<stop offset="0.9194" stop-color="#09B9F2"/>
|
||||
<stop stop-color="#C433FF"/>
|
||||
<stop offset="0.1742" stop-color="#D72EF0"/>
|
||||
<stop offset="0.5126" stop-color="#F425D8"/>
|
||||
<stop offset="0.772" stop-color="#FF22CF"/>
|
||||
<stop offset="0.9194" stop-color="#FF22CF"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint17_linear" x1="212.09" y1="249.502" x2="212.09" y2="37.9968" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#04468B"/>
|
||||
<stop offset="0.1742" stop-color="#0561A3"/>
|
||||
<stop offset="0.5126" stop-color="#0791CE"/>
|
||||
<stop offset="0.772" stop-color="#09AEE8"/>
|
||||
<stop offset="0.9194" stop-color="#09B9F2"/>
|
||||
<stop stop-color="#C433FF"/>
|
||||
<stop offset="0.1742" stop-color="#D72EF0"/>
|
||||
<stop offset="0.5126" stop-color="#F425D8"/>
|
||||
<stop offset="0.772" stop-color="#FF22CF"/>
|
||||
<stop offset="0.9194" stop-color="#FF22CF"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint18_linear" x1="145.853" y1="249.502" x2="145.853" y2="37.9967" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#04468B"/>
|
||||
<stop offset="0.1742" stop-color="#0561A3"/>
|
||||
<stop offset="0.5126" stop-color="#0791CE"/>
|
||||
<stop offset="0.772" stop-color="#09AEE8"/>
|
||||
<stop offset="0.9194" stop-color="#09B9F2"/>
|
||||
<stop stop-color="#C433FF"/>
|
||||
<stop offset="0.1742" stop-color="#D72EF0"/>
|
||||
<stop offset="0.5126" stop-color="#F425D8"/>
|
||||
<stop offset="0.772" stop-color="#FF22CF"/>
|
||||
<stop offset="0.9194" stop-color="#FF22CF"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 21 KiB |
BIN
public/assets/models/musashi/ilb.glb
Normal file
BIN
public/assets/models/musashi/ilb.glb
Normal file
Binary file not shown.
BIN
public/assets/models/musashi/moloch-pet-1.glb
Normal file
BIN
public/assets/models/musashi/moloch-pet-1.glb
Normal file
Binary file not shown.
BIN
public/assets/models/musashi/robe.glb
Normal file
BIN
public/assets/models/musashi/robe.glb
Normal file
Binary file not shown.
BIN
public/assets/models/musashi/robe2.glb
Normal file
BIN
public/assets/models/musashi/robe2.glb
Normal file
Binary file not shown.
Binary file not shown.
|
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 5.7 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 761 KiB After Width: | Height: | Size: 119 KiB |
@@ -30,23 +30,22 @@ export default function BabyEarthVox(props) {
|
||||
|
||||
|
||||
return (
|
||||
<group ref={group} {...props} dispose={null}>
|
||||
<group ref={group} {...props} name="BabyEarthVox" dispose={null}>
|
||||
<mesh
|
||||
castShadow
|
||||
receiveShadow
|
||||
geometry={nodes["voxel-earth"].geometry}
|
||||
material={materials['palette.003']}
|
||||
rotation={[Math.PI * 0.5, 0, 0]}
|
||||
onClick={() => router.push(route)}
|
||||
// onPointerOver={(e) => setHover(true)}
|
||||
// onPointerOut={(e) => setHover(false)}
|
||||
/>
|
||||
|
||||
<pointLight
|
||||
intensity={3}
|
||||
intensity={6}
|
||||
distance={3}
|
||||
decay={2}
|
||||
color={'0xfff'}
|
||||
color={'cyan'}
|
||||
castShadow
|
||||
/>
|
||||
</group>
|
||||
|
||||
@@ -39,11 +39,6 @@ const OctoEasterEgg = (props) => {
|
||||
const deltaTime = elapsedTime - previousTime;
|
||||
previousTime = elapsedTime;
|
||||
|
||||
if (mesh.current && animate) {
|
||||
mesh.current.position.x = -3.5 + Math.sin(elapsedTime * 0.9) * Math.PI * 0.05;
|
||||
mesh.current.position.y = -1.5 - Math.cos(elapsedTime * 0.1) * Math.PI * 0.5;
|
||||
mesh.current.rotation.z = -elapsedTime * 0.06;
|
||||
}
|
||||
})
|
||||
if (material.current) {
|
||||
material.current.map = mapTexture;
|
||||
|
||||
@@ -54,12 +54,15 @@ const Galaxy = ({ dof, parameters, nucleus, helper, effects, ...props }) => {
|
||||
particles.current.position.y = -scrollY * 0.0005;
|
||||
// galaxy1.rotation.y += (parallaxX - cameraGroup.position.x) * 2 * deltaTime
|
||||
particles.current.rotation.z = scrollY * 0.0004;
|
||||
particles.current.rotation.x = -elapsedTime * 0.006;
|
||||
particles.current.rotation.y = -elapsedTime * 0.006;
|
||||
} else if (parameters.type === 2) {
|
||||
particles.current.rotation.y = -elapsedTime * 0.007;
|
||||
} else if (parameters.type == 3) {
|
||||
particles.current.position.y = scrollY * 0.0004;
|
||||
particles.current.rotation.y = Math.cos(elapsedTime * 0.03) * Math.PI * 0.05;
|
||||
} else if (parameters.type == 4) {
|
||||
particles.current.position.z = -scrollY * 0.0004;
|
||||
particles.current.rotation.y = Math.cos(elapsedTime * 0.03) * Math.PI * 0.05;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -156,7 +159,7 @@ const Galaxy = ({ dof, parameters, nucleus, helper, effects, ...props }) => {
|
||||
positions[i3 + 2] = Math.sin(branchAngle + spinAngle) * radius + randomZ
|
||||
|
||||
const mixedColor = colorInside.clone()
|
||||
mixedColor.lerp(colorOutside, radius / parameters.radius * 1.05)
|
||||
mixedColor.lerp(colorOutside, radius / parameters.radius * 2)
|
||||
|
||||
colors[i3 + 0] = mixedColor.r
|
||||
colors[i3 + 1] = mixedColor.g
|
||||
@@ -228,7 +231,7 @@ const Galaxy = ({ dof, parameters, nucleus, helper, effects, ...props }) => {
|
||||
particles.current.geometry.setAttribute('position', new THREE.BufferAttribute(positions, 3))
|
||||
particles.current.geometry.setAttribute('color', new THREE.BufferAttribute(colors, 3))
|
||||
|
||||
if (parameters.type === 5) {
|
||||
if (parameters.type === 3) {
|
||||
|
||||
material.current.map = planeColorTexture
|
||||
material.current.alphaMap = planeAlphaTexture
|
||||
@@ -237,6 +240,12 @@ const Galaxy = ({ dof, parameters, nucleus, helper, effects, ...props }) => {
|
||||
material.current.opacity = parameters.opacity
|
||||
|
||||
}
|
||||
// if (parameters.type === 3) {
|
||||
// material.current.transparent = true
|
||||
// material.current.sizeAttenuation = true
|
||||
// material.current.opacity = parameters.opacity
|
||||
|
||||
// }
|
||||
}
|
||||
|
||||
return (
|
||||
@@ -312,17 +321,6 @@ export function Nucleus({ size }) {
|
||||
|
||||
// eslint-disable-next-line react/display-name
|
||||
export const Effects = forwardRef((props, ref) => {
|
||||
const bokehScale = {
|
||||
min: 0,
|
||||
max: 10,
|
||||
value: 1,
|
||||
};
|
||||
|
||||
return (
|
||||
<EffectComposer multisampling={0}>
|
||||
<DepthOfField ref={ref} bokehScale={bokehScale} />
|
||||
</EffectComposer>
|
||||
)
|
||||
})
|
||||
|
||||
|
||||
|
||||
@@ -25,7 +25,7 @@ export default function HouseholdVox(props) {
|
||||
}
|
||||
})
|
||||
return (
|
||||
<group ref={group} {...props} dispose={null}>
|
||||
<group ref={group} {...props} name="Household" dispose={null}>
|
||||
<mesh
|
||||
castShadow
|
||||
receiveShadow
|
||||
|
||||
@@ -25,7 +25,7 @@ export default function IndustrialVox(props) {
|
||||
}
|
||||
})
|
||||
return (
|
||||
<group ref={group} {...props} dispose={null}>
|
||||
<group ref={group} {...props} name="Industrial" dispose={null}>
|
||||
<mesh
|
||||
castShadow
|
||||
receiveShadow
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import React, { useRef, useState } from "react";
|
||||
import React, { useCallback, useEffect, useRef, useState } from "react";
|
||||
import { useFrame } from '@react-three/fiber'
|
||||
import { useGLTF } from "@react-three/drei";
|
||||
import * as THREE from "three";
|
||||
@@ -7,6 +7,7 @@ import useStore from '@/helpers/store'
|
||||
|
||||
export default function JetsetterVox(props) {
|
||||
const router = useStore((s) => s.router)
|
||||
const [originalPos, setOriginalPos] = useState(null)
|
||||
const group = useRef();
|
||||
const [hovered, setHover] = useState(false)
|
||||
const { nodes, materials } = useGLTF("/assets/models/jetsetter-vox.glb");
|
||||
@@ -14,38 +15,49 @@ export default function JetsetterVox(props) {
|
||||
const clock = new THREE.Clock();
|
||||
let previousTime = 0;
|
||||
|
||||
|
||||
const storeOriginalPos = useCallback((pos) => {
|
||||
|
||||
if (originalPos !== null) return;
|
||||
setOriginalPos(pos)
|
||||
}, [originalPos, setOriginalPos])
|
||||
|
||||
useFrame((state, delta) => {
|
||||
const elapsedTime = clock.getElapsedTime();
|
||||
const deltaTime = elapsedTime - previousTime;
|
||||
previousTime = elapsedTime;
|
||||
|
||||
if (group.current && animate && !route) {
|
||||
// group.current.position.x = -3.5 + Math.sin(elapsedTime * 0.9) * Math.PI * 1;
|
||||
// group.current.position.y = -1.5 - Math.cos(elapsedTime * 0.1) * Math.PI * 0.5;
|
||||
// group.current.position.z = -1.5 - Math.cos(elapsedTime * 0.1) * Math.PI * 3;
|
||||
group.current.rotation.y = elapsedTime * 0.3;
|
||||
if (group.current && animate) {
|
||||
group.current.rotation.y = (Math.PI * 0.4) + elapsedTime * 0.03
|
||||
}
|
||||
})
|
||||
|
||||
// useEffect(() => {
|
||||
// let z = null;
|
||||
// if (group.current) {
|
||||
// storeOriginalPos(group.current.position)
|
||||
|
||||
// if (hovered) {
|
||||
// console.log('origpos', originalPos.z);
|
||||
// gsap.to(group.current.position, {
|
||||
// duration: 1.5,
|
||||
// ease: "power2.inOut",
|
||||
// z: 1
|
||||
// })
|
||||
// }
|
||||
// console.log(originalPos);
|
||||
// gsap.to(group.current.position, {
|
||||
// duration: 1.5,
|
||||
// ease: "power2.inOut",
|
||||
// z: 0
|
||||
// })
|
||||
|
||||
// }
|
||||
|
||||
// }, [group, hovered, originalPos, storeOriginalPos]);
|
||||
// gsap
|
||||
if (group.current && animate === false) {
|
||||
if (hovered) {
|
||||
gsap.to(group.current.position, {
|
||||
duration: 1.5,
|
||||
ease: "power2.inOut",
|
||||
z: 1
|
||||
})
|
||||
} else {
|
||||
gsap.to(group.current.position, {
|
||||
duration: 1.5,
|
||||
ease: "power2.inOut",
|
||||
z: 0
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
return (
|
||||
<group ref={group} {...props} dispose={null}>
|
||||
<group ref={group} {...props} name="Jetsetter" dispose={null}>
|
||||
<mesh
|
||||
castShadow
|
||||
receiveShadow
|
||||
|
||||
@@ -1,19 +1,52 @@
|
||||
import React, {useRef} from "react";
|
||||
import { Text } from "@react-three/drei";
|
||||
import React, { useEffect, useRef } from "react";
|
||||
import { Html, useProgress } from "@react-three/drei";
|
||||
import {
|
||||
Box,
|
||||
Text,
|
||||
} from "@chakra-ui/react";
|
||||
import gsap from "gsap";
|
||||
import useStore from '@/helpers/store'
|
||||
|
||||
export const CanvasLoader = () => {
|
||||
const { dom } = useStore();
|
||||
const group = useRef(null);
|
||||
const loadingBar = useRef(null);
|
||||
const { active, progress, errors, item, loaded, total } = useProgress();
|
||||
let ratioLoaded = loaded / total
|
||||
|
||||
useEffect(() => {
|
||||
if (ratioLoaded < 1) {
|
||||
console.log(ratioLoaded);
|
||||
if (loadingBar.current) {
|
||||
console.log(loadingBar.current);
|
||||
// loadingBar.current.style.transform = `scaleX(${ratioLoaded})`
|
||||
|
||||
}
|
||||
} else {
|
||||
// loadingBar.current.style.transform = ''
|
||||
}
|
||||
|
||||
}, [ratioLoaded]);
|
||||
|
||||
return (
|
||||
<group ref={group} position={[0,0,0]}>
|
||||
<Text
|
||||
scale={[10, 10, 10]}
|
||||
color={
|
||||
"rgb(255, 255, 255)"
|
||||
}
|
||||
anchorX="center"
|
||||
anchorY="middle"
|
||||
>Loading...</Text>
|
||||
</group>
|
||||
<Html center background="linear-gradient(0deg, rgba(41,2,80,1) 0%, rgba(25,0,50,1) 40%)" >
|
||||
<Box width="100vw" height="100vh" d="flex" flexFlow="column wrap" alignItems="center" justifyContent="center" opacity={ratioLoaded < 1 ? 0.7 : 0} color="#FF61E6" sx={{
|
||||
transition: 'transform 0.5s ease-in-out, opacity 0.5s ease-in-out'
|
||||
}}>
|
||||
<Box d="flex" flexFlow="column wrap" w="100%" textAlign="center">
|
||||
<Text fontSize="5vw" className="gradient" mb={0}>
|
||||
{progress.toFixed()}% loaded
|
||||
</Text>
|
||||
<Box ref={loadingBar} className="loading-bar" mb={2} height="5px" width="100%" bg="linear-gradient(90.24deg, #79F8FB 0.3%, #9032E6 55.76%, #E839B7 106.78%)" sx={{
|
||||
opacity: ratioLoaded < 1 ? 0.7 : 0,
|
||||
transform: ratioLoaded < 1 ? `scaleX(${ratioLoaded})` : 0,
|
||||
transformOrigin: ratioLoaded < 1 ? 'top left' : 'top right',
|
||||
transition: 'transform 0.5s ease-in-out, opacity 0.5s ease-in-out'
|
||||
}} />
|
||||
<Text fontSize="0.5vw" mt={2}>{item} / {total}</Text>
|
||||
</Box>
|
||||
|
||||
</Box>
|
||||
</Html>
|
||||
);
|
||||
};
|
||||
@@ -28,7 +28,7 @@ export default function LuxVox(props) {
|
||||
}
|
||||
})
|
||||
return (
|
||||
<group ref={group} {...props} dispose={null}>
|
||||
<group ref={group} {...props} name="Lux" dispose={null}>
|
||||
<mesh
|
||||
castShadow
|
||||
receiveShadow
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import React, { useRef, useState } from "react";
|
||||
import React, { useEffect, useRef, useState } from "react";
|
||||
import { useFrame } from '@react-three/fiber'
|
||||
import { useGLTF } from "@react-three/drei";
|
||||
import * as THREE from "three";
|
||||
@@ -10,32 +10,23 @@ export default function NomadVox(props) {
|
||||
const group = useRef();
|
||||
const [hovered, setHover] = useState(false)
|
||||
const { nodes, materials } = useGLTF("/assets/models/nomad-vox.glb");
|
||||
const { route, animate } = props
|
||||
const clock = new THREE.Clock();
|
||||
let previousTime = 0;
|
||||
console.log(animate);
|
||||
useFrame((state, delta) => {
|
||||
const elapsedTime = clock.getElapsedTime();
|
||||
const deltaTime = elapsedTime - previousTime;
|
||||
previousTime = elapsedTime;
|
||||
if (group.current && animate) {
|
||||
group.current.position.y = -1 - Math.cos(elapsedTime * 0.1) * Math.PI * 0.05;
|
||||
const { route } = props
|
||||
useEffect(() => {
|
||||
if (group.current.children) {
|
||||
console.log(group.current.children);
|
||||
// group.current.children[0].geometry.computeFaceNormals();
|
||||
// group.current.children[0].geometry.computeVertextNormals();
|
||||
// group.current.children[0].geometry.normalsNeedUpdate = true;
|
||||
|
||||
// group.current.rotation.y = elapsedTime * 0.03;
|
||||
group.current.rotation.z = -0.05 - Math.sin(elapsedTime * 0.3) * Math.PI * 0.03;
|
||||
}
|
||||
})
|
||||
|
||||
}, []);
|
||||
return (
|
||||
<group ref={group} {...props} dispose={null}>
|
||||
<group position={[0.01, 0, -0.01]} rotation={[2, 0.1, 2.13]}>
|
||||
<directionalLight
|
||||
intensity={0.5}
|
||||
color="#FF61E6"
|
||||
decay={2}
|
||||
rotation={[-Math.PI / 2, 0, 0]}
|
||||
/>
|
||||
</group>
|
||||
<group
|
||||
ref={group}
|
||||
{...props}
|
||||
name="Nomad"
|
||||
dispose={null}
|
||||
>
|
||||
<mesh
|
||||
castShadow
|
||||
receiveShadow
|
||||
@@ -43,9 +34,6 @@ export default function NomadVox(props) {
|
||||
material={materials.palette}
|
||||
rotation={[Math.PI * 0.5, -Math.PI / 0.05, 0]}
|
||||
onClick={() => router.push(route)}
|
||||
onPointerOver={(e) => setHover(true)}
|
||||
onPointerOut={(e) => setHover(false)}
|
||||
// scale={hovered ? 1.1 : 1}
|
||||
/>
|
||||
{/* <axesHelper /> */}
|
||||
</group>
|
||||
|
||||
@@ -23,17 +23,18 @@ export default function OctoPetVox(props) {
|
||||
group.current.position.y = 4 - Math.cos(elapsedTime * 0.1) * Math.PI * 0.5;
|
||||
group.current.position.z = -2.5 - Math.cos(elapsedTime * 0.1) * Math.PI * 0.3;
|
||||
group.current.rotation.y = elapsedTime * 0.005;
|
||||
group.current.rotation.z = -elapsedTime * 0.05;
|
||||
// group.current.rotation.z = -elapsedTime * 0.05;
|
||||
}
|
||||
})
|
||||
return (
|
||||
<group ref={group} {...props} dispose={null}>
|
||||
<group ref={group} {...props} name="OctoPet" dispose={null}>
|
||||
<mesh
|
||||
castShadow
|
||||
receiveShadow
|
||||
geometry={nodes["cuteocto-pet"].geometry}
|
||||
material={materials['palette.004']}
|
||||
rotation={[Math.PI * 0.5, 0, 0]}
|
||||
scale={0.5}
|
||||
onClick={() => router.push(route)}
|
||||
// onPointerOver={(e) => setHover(true)}
|
||||
// onPointerOut={(e) => setHover(false)}
|
||||
|
||||
@@ -16,7 +16,7 @@ export const galaxyColors = {
|
||||
outside: '#FF61E6'
|
||||
}
|
||||
export const galaxy2Colors = {
|
||||
inside: '#462080',
|
||||
inside: '#FF61E6',
|
||||
outside: '#7C56FF'
|
||||
}
|
||||
export const galaxy3Colors = {
|
||||
@@ -25,18 +25,18 @@ export const galaxy3Colors = {
|
||||
}
|
||||
export const galaxy4Colors = {
|
||||
inside: '#462080',
|
||||
outside: '#7C56FF'
|
||||
outside: '#FF61E6'
|
||||
}
|
||||
export const galaxy5Colors = {
|
||||
inside: '#7C56FF',
|
||||
outside: '#462080'
|
||||
inside: '#ffffff',
|
||||
outside: '#FF61E6'
|
||||
}
|
||||
/**
|
||||
* Galaxy
|
||||
*/
|
||||
export const galaxy1Params = {
|
||||
count: 100000,
|
||||
size: 0.033,
|
||||
size: 0.03,
|
||||
radius: 4.86,
|
||||
branches: 8,
|
||||
spin: 8,
|
||||
@@ -61,7 +61,7 @@ export const galaxy2Params = {
|
||||
branches: 8,
|
||||
spin: 8,
|
||||
randomness: 9,
|
||||
randomnessPower: 1,
|
||||
randomnessPower: 10,
|
||||
insideColor: galaxy2Colors.inside,
|
||||
outsideColor: galaxy2Colors.outside,
|
||||
type: 2,
|
||||
@@ -99,16 +99,16 @@ export const galaxy3Params = {
|
||||
|
||||
export const galaxy4Params = {
|
||||
count: 100000,
|
||||
size: 0.005,
|
||||
radius: 1,
|
||||
size: 0.01,
|
||||
radius: 8,
|
||||
branches: 8,
|
||||
spin: 5,
|
||||
randomness: 4,
|
||||
randomnessPower: 20,
|
||||
randomness: 1.5,
|
||||
randomnessPower: 1,
|
||||
insideColor: galaxy4Colors.inside,
|
||||
outsideColor: galaxy4Colors.outside,
|
||||
type: 4,
|
||||
opacity: 1,
|
||||
opacity: 0.5,
|
||||
focusDistance: 0.05,
|
||||
focalLength: 0.05,
|
||||
width: 480,
|
||||
@@ -119,17 +119,17 @@ export const galaxy4Params = {
|
||||
}
|
||||
|
||||
export const galaxy5Params = {
|
||||
count: 75000,
|
||||
size: 0.03,
|
||||
count: 100000,
|
||||
size: 0.05,
|
||||
radius: 35,
|
||||
branches: 8,
|
||||
spin: 5,
|
||||
randomness: 1.7,
|
||||
randomness: 2.5,
|
||||
randomnessPower: 10,
|
||||
insideColor: galaxy5Colors.inside,
|
||||
outsideColor: galaxy5Colors.outside,
|
||||
type: 3,
|
||||
opacity: 0.1,
|
||||
opacity: 0.5,
|
||||
focusDistance: 0.05,
|
||||
focalLength: 0.05,
|
||||
width: 480,
|
||||
@@ -232,7 +232,7 @@ export const generateGalaxy = (params) => {
|
||||
positions[i3 + 2] = Math.sin(branchAngle + spinAngle) * radius + randomZ
|
||||
|
||||
const mixedColor = colorInside.clone()
|
||||
mixedColor.lerp(colorOutside, radius / params.radius * 1.05)
|
||||
mixedColor.lerp(colorOutside, radius / params.radius * 2)
|
||||
|
||||
colors[i3 + 0] = mixedColor.r
|
||||
colors[i3 + 1] = mixedColor.g
|
||||
|
||||
65
src/components/canvas/musashi/Ilb.jsx
Normal file
65
src/components/canvas/musashi/Ilb.jsx
Normal file
@@ -0,0 +1,65 @@
|
||||
import React, { useRef, useState } from "react";
|
||||
import { useFrame } from '@react-three/fiber'
|
||||
import { useGLTF } from "@react-three/drei";
|
||||
import * as THREE from "three";
|
||||
import gsap from "gsap";
|
||||
import useStore from '@/helpers/store'
|
||||
|
||||
export default function ILBVox(props) {
|
||||
const router = useStore((s) => s.router)
|
||||
const group = useRef();
|
||||
const material = useRef();
|
||||
const [hovered, setHover] = useState(false)
|
||||
const { nodes, materials } = useGLTF("/assets/models/musashi/ilb.glb");
|
||||
const { route } = props
|
||||
const clock = new THREE.Clock();
|
||||
let previousTime = 0;
|
||||
|
||||
|
||||
useFrame(() => {
|
||||
const elapsedTime = clock.getElapsedTime();
|
||||
const deltaTime = elapsedTime - previousTime;
|
||||
previousTime = elapsedTime;
|
||||
|
||||
})
|
||||
|
||||
// if (hovered) {
|
||||
// gsap.to(group.current.position, {
|
||||
// x: 2,
|
||||
// y: 0,
|
||||
// z: 0
|
||||
// })
|
||||
// } else {
|
||||
// gsap.to(group.current.position, {
|
||||
// x: 0,
|
||||
// y: 0,
|
||||
// z: 0
|
||||
// })
|
||||
// }
|
||||
|
||||
return (
|
||||
<group ref={group} {...props} dispose={null}>
|
||||
<mesh
|
||||
castShadow
|
||||
receiveShadow
|
||||
geometry={nodes.ILB.geometry}
|
||||
material={materials["palette.002"]}
|
||||
rotation={[Math.PI * 0.5, 0, 0]}
|
||||
scale={[0.5,0.5,0.5]}
|
||||
onClick={() => router.push(route)}
|
||||
onPointerOver={(e) => setHover(true)}
|
||||
onPointerOut={(e) => setHover(false)}
|
||||
/>
|
||||
|
||||
<pointLight
|
||||
intensity={0.6}
|
||||
distance={3}
|
||||
decay={2}
|
||||
color={'0xfff'}
|
||||
castShadow
|
||||
/>
|
||||
</group>
|
||||
);
|
||||
}
|
||||
|
||||
useGLTF.preload("/assets/models/musashi/ilb.glb");
|
||||
73
src/components/canvas/musashi/MolochPet1.jsx
Normal file
73
src/components/canvas/musashi/MolochPet1.jsx
Normal file
@@ -0,0 +1,73 @@
|
||||
import React, { useRef, useState } from "react";
|
||||
import { useFrame } from '@react-three/fiber'
|
||||
import { useGLTF } from "@react-three/drei";
|
||||
import * as THREE from "three";
|
||||
import gsap from "gsap";
|
||||
import useStore from '@/helpers/store'
|
||||
|
||||
export default function ILBVox(props) {
|
||||
const router = useStore((s) => s.router)
|
||||
const group = useRef();
|
||||
const material = useRef();
|
||||
const [hovered, setHover] = useState(false)
|
||||
const { nodes, materials } = useGLTF("/assets/models/musashi/moloch-pet-1.glb");
|
||||
const { route, animate } = props
|
||||
const clock = new THREE.Clock();
|
||||
let previousTime = 0;
|
||||
|
||||
|
||||
useFrame(() => {
|
||||
const elapsedTime = clock.getElapsedTime();
|
||||
const deltaTime = elapsedTime - previousTime;
|
||||
previousTime = elapsedTime;
|
||||
|
||||
if (group.current && animate) {
|
||||
group.current.position.x = 1 + Math.sin(elapsedTime * 0.6) * Math.PI * 0.03;
|
||||
group.current.position.y = -1 - Math.cos(elapsedTime * 0.07) * Math.PI * 0.5;
|
||||
// group.current.position.z = -0.25 - Math.cos(elapsedTime * 0.1) * Math.PI * 0.3;
|
||||
|
||||
group.current.rotation.z = -0.05 - Math.sin(elapsedTime * 0.3) * Math.PI * 0.03;
|
||||
group.current.rotation.y = elapsedTime * 0.03;
|
||||
}
|
||||
})
|
||||
|
||||
// if (hovered) {
|
||||
// gsap.to(group.current.position, {
|
||||
// x: 2,
|
||||
// y: 0,
|
||||
// z: 0
|
||||
// })
|
||||
// } else {
|
||||
// gsap.to(group.current.position, {
|
||||
// x: 0,
|
||||
// y: 0,
|
||||
// z: 0
|
||||
// })
|
||||
// }
|
||||
|
||||
return (
|
||||
<group ref={group} {...props} dispose={null}>
|
||||
<mesh
|
||||
castShadow
|
||||
receiveShadow
|
||||
geometry={nodes.MolochPet1.geometry}
|
||||
material={materials["palette.003"]}
|
||||
rotation={[Math.PI * 0.5, 0, 0]}
|
||||
scale={[0.5,0.5,0.5]}
|
||||
onClick={() => router.push(route)}
|
||||
onPointerOver={(e) => setHover(true)}
|
||||
onPointerOut={(e) => setHover(false)}
|
||||
/>
|
||||
|
||||
<pointLight
|
||||
intensity={0.6}
|
||||
distance={3}
|
||||
decay={2}
|
||||
color={'0xfff'}
|
||||
castShadow
|
||||
/>
|
||||
</group>
|
||||
);
|
||||
}
|
||||
|
||||
useGLTF.preload("/assets/models/musashi/moloch-pet-1.glb");
|
||||
53
src/components/canvas/musashi/Robe.jsx
Normal file
53
src/components/canvas/musashi/Robe.jsx
Normal file
@@ -0,0 +1,53 @@
|
||||
import React, { useRef, useState } from "react";
|
||||
import { useFrame } from '@react-three/fiber'
|
||||
import { useGLTF } from "@react-three/drei";
|
||||
import * as THREE from "three";
|
||||
import gsap from "gsap";
|
||||
import useStore from '@/helpers/store'
|
||||
|
||||
export default function RobeVox(props) {
|
||||
const router = useStore((s) => s.router)
|
||||
const group = useRef();
|
||||
const material = useRef();
|
||||
const [hovered, setHover] = useState(false)
|
||||
const { nodes, materials } = useGLTF("/assets/models/musashi/robe.glb");
|
||||
const { route, animate } = props
|
||||
const clock = new THREE.Clock();
|
||||
let previousTime = 0;
|
||||
|
||||
useFrame(() => {
|
||||
const elapsedTime = clock.getElapsedTime();
|
||||
const deltaTime = elapsedTime - previousTime;
|
||||
previousTime = elapsedTime;
|
||||
|
||||
if (group.current && animate) {
|
||||
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
return (
|
||||
<group ref={group} {...props} name="Robe" dispose={null}>
|
||||
<mesh
|
||||
castShadow
|
||||
receiveShadow
|
||||
geometry={nodes.Robe.geometry}
|
||||
material={materials['palette.001']}
|
||||
rotation={[Math.PI * 0.5, 0, 0]}
|
||||
onClick={() => router.push(route)}
|
||||
// onPointerOver={(e) => setHover(true)}
|
||||
// onPointerOut={(e) => setHover(false)}
|
||||
/>
|
||||
|
||||
<pointLight
|
||||
intensity={3}
|
||||
distance={3}
|
||||
decay={2}
|
||||
color={'0xfff'}
|
||||
castShadow
|
||||
/>
|
||||
</group>
|
||||
);
|
||||
}
|
||||
|
||||
useGLTF.preload("/assets/models/musashi/robe.glb");
|
||||
66
src/components/canvas/musashi/Robe2.jsx
Normal file
66
src/components/canvas/musashi/Robe2.jsx
Normal file
@@ -0,0 +1,66 @@
|
||||
import React, { useRef, useState } from "react";
|
||||
import { useFrame } from '@react-three/fiber'
|
||||
import { useGLTF } from "@react-three/drei";
|
||||
import * as THREE from "three";
|
||||
import gsap from "gsap";
|
||||
import useStore from '@/helpers/store'
|
||||
|
||||
export default function Robe2Vox(props) {
|
||||
const router = useStore((s) => s.router)
|
||||
const group = useRef();
|
||||
const material = useRef();
|
||||
const [hovered, setHover] = useState(false)
|
||||
const { nodes, materials } = useGLTF("/assets/models/musashi/robe2.glb");
|
||||
const { route, animate } = props
|
||||
const clock = new THREE.Clock();
|
||||
let previousTime = 0;
|
||||
|
||||
|
||||
useFrame(() => {
|
||||
const elapsedTime = clock.getElapsedTime();
|
||||
const deltaTime = elapsedTime - previousTime;
|
||||
previousTime = elapsedTime;
|
||||
|
||||
if (group.current && animate) {
|
||||
}
|
||||
})
|
||||
|
||||
// if (hovered) {
|
||||
// gsap.to(group.current.position, {
|
||||
// x: 2,
|
||||
// y: 0,
|
||||
// z: 0
|
||||
// })
|
||||
// } else {
|
||||
// gsap.to(group.current.position, {
|
||||
// x: 0,
|
||||
// y: 0,
|
||||
// z: 0
|
||||
// })
|
||||
// }
|
||||
|
||||
return (
|
||||
<group ref={group} {...props} name="Robe2" dispose={null}>
|
||||
<mesh
|
||||
castShadow
|
||||
receiveShadow
|
||||
geometry={nodes.Robe1.geometry}
|
||||
material={materials.palette}
|
||||
rotation={[Math.PI * 0.5, 0, 0]}
|
||||
onClick={() => router.push(route)}
|
||||
onPointerOver={(e) => setHover(true)}
|
||||
onPointerOut={(e) => setHover(false)}
|
||||
/>
|
||||
|
||||
<pointLight
|
||||
intensity={3}
|
||||
distance={3}
|
||||
decay={2}
|
||||
color={'0xfff'}
|
||||
castShadow
|
||||
/>
|
||||
</group>
|
||||
);
|
||||
}
|
||||
|
||||
useGLTF.preload("/assets/models/musashi/robe2.glb");
|
||||
@@ -51,9 +51,9 @@ export function AlphaNotice() {
|
||||
<span role="img" aria-label="watchful eyes">
|
||||
👀
|
||||
</span>{" "}
|
||||
We're still working on content, there's no Web3 connectivity and there
|
||||
We're still working on content, there's no Web3 connectivity (or is there...?) and there
|
||||
are some bugs. <br /> We're working to get it
|
||||
all ship shape for June!
|
||||
all ship shape ASAP!
|
||||
</Text>
|
||||
{/* <Image src={BabyOctoGif} boxSize="35px" objectFit="cover" /> */}
|
||||
<IconButton
|
||||
|
||||
@@ -12,4 +12,5 @@ export const BoxedNextImage = ({ src, alt, ...props }) => (
|
||||
>
|
||||
<NextImage {...{ src, alt }} layout="fill" objectFit="contain" />
|
||||
</Box>
|
||||
);
|
||||
);
|
||||
|
||||
|
||||
@@ -125,7 +125,7 @@ export const EasterEgg = () => {
|
||||
</Button>
|
||||
</Box>
|
||||
|
||||
<Box src={BabyOctoGif} alt="Baby Octo mascot" boxSize={{base: '35px', xl:"100px"}} objectFit="cover" />
|
||||
<BoxedNextImage src={BabyOctoGif} alt="Baby Octo mascot" boxSize={{base: '35px', xl:"100px"}} objectFit="cover" />
|
||||
<IconButton
|
||||
onClick={handleToggle}
|
||||
colorScheme="ghost"
|
||||
|
||||
@@ -28,7 +28,7 @@ export function SiteFooter() {
|
||||
// transform={{md: `translate3d(0, ${onScreen ? 0 : "70px"}, 0)`}}
|
||||
opacity={onScreen ? 1 : 0}
|
||||
transition="transform 0.3s 0.4s ease-in-out, opacity 0.6s 0.3s ease-in"
|
||||
zIndex={0}
|
||||
zIndex={1999}
|
||||
sx={{
|
||||
a: {
|
||||
color: "white",
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
/* eslint-disable @next/next/no-page-custom-font */
|
||||
import React from 'react';
|
||||
import { useRouter } from 'next/router';
|
||||
import Head from 'next/head';
|
||||
@@ -34,7 +35,7 @@ export const HeadComponent = (props) => {
|
||||
|
||||
<link rel="preconnect" href="https://fonts.googleapis.com" />
|
||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossOrigin="true" />
|
||||
<link href="https://fonts.googleapis.com/css2?family=Exo+2:wght@300;500;700&display=swap" rel="stylesheet" />
|
||||
<link href="https://fonts.googleapis.com/css2?family=Exo+2:wght@400;500;700&display=swap" rel="stylesheet" />
|
||||
</Head>
|
||||
|
||||
);
|
||||
|
||||
@@ -11,7 +11,7 @@ import {
|
||||
useDisclosure,
|
||||
Stack,
|
||||
} from "@chakra-ui/react";
|
||||
import { BiWalletAlt } from 'react-icons/bi'
|
||||
import { BiWalletAlt, BiJoystick } from 'react-icons/bi'
|
||||
import { BoxedNextImage } from "@/components/dom/BoxedNextImage";
|
||||
import { useDisabledGeneralNotify, useOnScreen } from "@/utils/hooks";
|
||||
|
||||
@@ -36,7 +36,7 @@ const Links = [
|
||||
href: "#speakers",
|
||||
},
|
||||
{
|
||||
name: "MetaFest-a-verse",
|
||||
name: "MetaFest-a-Verse",
|
||||
href: "#metafest-verse",
|
||||
},
|
||||
{
|
||||
@@ -203,29 +203,45 @@ export function SiteHeader() {
|
||||
</HStack>
|
||||
<Flex alignItems="center" justifyContent="end" width={{ base: "25%", md: 'auto' }}>
|
||||
{screenSize !== 'base' ? (
|
||||
<Button
|
||||
variant={"solid"}
|
||||
colorScheme={"purple"}
|
||||
<Link
|
||||
href="https://metagame.wtf"
|
||||
px={5}
|
||||
py={2}
|
||||
color={"white"}
|
||||
bg="#927CFF"
|
||||
boxShadow="0 0 10px rgba(0, 0, 0, 0.6)"
|
||||
size="sm"
|
||||
mr={0}
|
||||
onClick={disabledGenNotify}
|
||||
borderRadius="md"
|
||||
isExternal
|
||||
>
|
||||
Connect
|
||||
</Button>
|
||||
Join MetaGame
|
||||
</Link>
|
||||
) : (
|
||||
<Link
|
||||
href="https://metagame.wtf"
|
||||
px={0}
|
||||
py={0}
|
||||
// color={"white"}
|
||||
bg="transparent"
|
||||
boxShadow="0 0 10px rgba(0, 0, 0, 0.6)"
|
||||
size="sm"
|
||||
mr={0}
|
||||
borderRadius="md"
|
||||
isExternal
|
||||
>
|
||||
<IconButton
|
||||
icon={<BiWalletAlt />}
|
||||
aria-label="Connect Web3 wallet"
|
||||
icon={<BiJoystick />}
|
||||
aria-label="Join MetaGame"
|
||||
flex={0}
|
||||
fontSize={{base: '12vmin', lg: "2vmax"}}
|
||||
colorScheme="ghost"
|
||||
color="#927CFF"
|
||||
onClick={disabledGenNotify}
|
||||
alignSelf="center"
|
||||
// filter="drop-shadow(0 0 15px #FF61E6)"
|
||||
/>
|
||||
</Link>
|
||||
|
||||
)}
|
||||
</Flex>
|
||||
</Flex>
|
||||
|
||||
@@ -28,7 +28,7 @@ export const ArtistLuxumbra = () => {
|
||||
>
|
||||
<Box className="__content__body--no-firstof" textAlign="right" mt={6}>
|
||||
<Text as="h2">luxumbra</Text>
|
||||
<Text className="gradient">
|
||||
<Text fontWeight={700}>
|
||||
Some Voxels by lux.
|
||||
</Text>
|
||||
<Text>
|
||||
|
||||
@@ -13,7 +13,7 @@ export const ArtistMusashi = ({artist}) => {
|
||||
return (
|
||||
<Box
|
||||
as="section"
|
||||
id={`artist-${artist}`}
|
||||
id={`artist-${slug}`}
|
||||
justifyContent={{base: 'flex-end', lg: 'inherit'}}
|
||||
>
|
||||
<Box
|
||||
@@ -28,7 +28,7 @@ export const ArtistMusashi = ({artist}) => {
|
||||
>
|
||||
<Box className="__content__body--no-firstof" textAlign="right" mt={6}>
|
||||
<Text as="h2">{name}</Text>
|
||||
<Text className="gradient">
|
||||
<Text fontWeight={700}>
|
||||
{strapline}
|
||||
</Text>
|
||||
<Text>
|
||||
|
||||
@@ -31,11 +31,10 @@ export function AirtablePerformerInstance () {
|
||||
)
|
||||
}
|
||||
|
||||
export function AirtableSponsorInstance () {
|
||||
export function AirtableFairInstance () {
|
||||
return (
|
||||
<Suspense fallback={<DOMLoader />}>
|
||||
<Script src="https://static.airtable.com/js/embed/embed_snippet_v1.js"></Script>
|
||||
<iframe title="Sponsor MetaFest2" className="airtable-embed airtable-dynamic-height" src="https://airtable.com/embed/shr2kuLumbj9Wnka8?backgroundColor=blue" frameBorder="0" onmousewheel="" width="100%" height="3185" style={{background: 'transparent', border: '0'}}></iframe>
|
||||
<iframe title="MetaFest2 JobFair info" src="https://docs.google.com/document/d/e/2PACX-1vQav5MOP2EOE9NrnpP2AepGfsBl6VsDalt30JyDGaNGAEEaQgwzx7mgjF4nB_h18dKa-5frZDcYOkL7/pub?embedded=true" frameBorder="0" onmousewheel="" width="100%" height="100%" style={{background: 'transparent', border: '0', marginLeft: 'auto', marginRight: 'auto'}}></iframe>
|
||||
</Suspense>
|
||||
)
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import React, { useState } from 'react'
|
||||
import { Box } from "@chakra-ui/react";
|
||||
import { Box, Text } from "@chakra-ui/react";
|
||||
// import TimezonePicker from 'react-timezone'
|
||||
import styled from '@emotion/styled'
|
||||
|
||||
@@ -15,6 +15,8 @@ const InstanceContainer = styled.div`
|
||||
|
||||
function CalendarInstance () {
|
||||
const [timezone, changeTimezone] = useState('Europe/London')
|
||||
const [viewTip, setViewTip] = useState(false)
|
||||
|
||||
return (
|
||||
<>
|
||||
<iframe
|
||||
@@ -27,9 +29,31 @@ function CalendarInstance () {
|
||||
border: '0px'
|
||||
}}
|
||||
/>
|
||||
<p style={{ color: '#65CBF6', marginTop: '1rem' }}>
|
||||
<Box
|
||||
bg="linear-gradient(90.24deg, #640DFB99 0.3%, rgba(100, 13, 251, 0.9) 80.16%)"
|
||||
borderRadius="0 8px 8px 0"
|
||||
boxShadow="0 0 5px rgba(0,0,0,0.6)"
|
||||
p={2}
|
||||
w="auto"
|
||||
maxW="200px"
|
||||
mt={3}
|
||||
textAlign="center">
|
||||
<Text sx={{ color: '#fff', fontWeight: 500}}>
|
||||
All times are in UTC
|
||||
</p>
|
||||
</Text>
|
||||
|
||||
</Box>
|
||||
<Box
|
||||
bg="linear-gradient(90.24deg, #640DFB99 0.3%, rgba(100, 13, 251, 0.9) 80.16%)"
|
||||
borderRadius="0 8px 8px 0"
|
||||
boxShadow="0 0 5px rgba(0,0,0,0.6)"
|
||||
p={2}
|
||||
position="fixed"
|
||||
top="12%"
|
||||
left={0}
|
||||
maxW="225px">
|
||||
<Text fontSize="sm" fontWeight={500}>Google fail. Click 'Look for more' to view the calendar dates for MetaFest2. <br />We will improve this UX soon <span role="img" aria-label="trademark">™️</span></Text>
|
||||
</Box>
|
||||
{/* <TimezonePicker
|
||||
value={timezone}
|
||||
onChange={picktimezone => changeTimezone(picktimezone)}
|
||||
|
||||
@@ -17,14 +17,17 @@ import {
|
||||
AirtableContributorInstance,
|
||||
AirtablePerformerInstance,
|
||||
AirtableSponsorInstance,
|
||||
AirtableFairInstance,
|
||||
} from "../integrations/AirtableInstance";
|
||||
import { useOnScreen } from "@/utils/hooks";
|
||||
import { BoxedNextImage } from "@/components/dom/BoxedNextImage";
|
||||
import { BiUserVoice } from 'react-icons/bi';
|
||||
|
||||
import SpeakerIcon from "@/static/assets/img/icons/forum.svg"
|
||||
import ContributorIcon from "@/static/assets/img/icons/players.svg"
|
||||
import PerformerIcon from "@/static/assets/img/icons/xpearned.svg"
|
||||
import SponsorIcon from "@/static/assets/img/icons/patrons.svg"
|
||||
import FairIcon from "@/static/assets/img/icons/welcometometagame.svg"
|
||||
import { BsFillPinMapFill } from 'react-icons/bs';
|
||||
|
||||
|
||||
export const ApplySection = () => {
|
||||
@@ -38,7 +41,7 @@ export const ApplySection = () => {
|
||||
false
|
||||
);
|
||||
const [openSponsorApplication, setOpenSponsorApplication] = useState(false);
|
||||
|
||||
const [openFairApplication, setOpenFairApplication] = useState(false);
|
||||
return (
|
||||
<Box as="section" id="apply" position="relative">
|
||||
<Box
|
||||
@@ -139,6 +142,14 @@ export const ApplySection = () => {
|
||||
call={() =>
|
||||
setOpenSponsorApplication(!openSponsorApplication)
|
||||
}
|
||||
/>
|
||||
<Feature
|
||||
icon={FairIcon}
|
||||
iconBg={"purple.900"}
|
||||
text={"Job Fair"}
|
||||
call={() =>
|
||||
setOpenFairApplication(!openFairApplication)
|
||||
}
|
||||
/>
|
||||
</Stack>
|
||||
</Stack>
|
||||
@@ -313,6 +324,47 @@ export const ApplySection = () => {
|
||||
<AirtableSponsorInstance />
|
||||
</Box>
|
||||
</>
|
||||
)}
|
||||
{openFairApplication && (
|
||||
<>
|
||||
<Button
|
||||
aria-label="Open the Job Fair application form"
|
||||
position="absolute"
|
||||
bottom={{base: 10, md: 20}}
|
||||
right={6}
|
||||
colorScheme="pink"
|
||||
bg="#FF61E6"
|
||||
boxShadow="0 0 10px rgba(0, 0, 0, 0.6)"
|
||||
size="sm"
|
||||
transition="all 0.3s 0.8s ease"
|
||||
transform={`translateY(${openFairApplication ? 0 : "-70px"})`}
|
||||
onClick={() => setOpenFairApplication(!openFairApplication)}
|
||||
zIndex={2005}
|
||||
>
|
||||
Close form
|
||||
</Button>
|
||||
<Box
|
||||
ref={ref}
|
||||
position="absolute"
|
||||
top="12.5vh"
|
||||
left={0}
|
||||
height="75vh"
|
||||
minH="75vh"
|
||||
width="100vw"
|
||||
textAlign="center"
|
||||
sx={{
|
||||
bg: "rgba(25,0,50,0.4)",
|
||||
backdropFilter: "blur(7px)",
|
||||
}}
|
||||
boxShadow="0 0 30px rgba(0,0,0,0.8)"
|
||||
opacity={onScreen ? 1 : 0}
|
||||
transition="opacity 1.2s 0.8s ease-in-out"
|
||||
zIndex={2001}
|
||||
overflowY="scroll"
|
||||
>
|
||||
<AirtableFairInstance />
|
||||
</Box>
|
||||
</>
|
||||
)}
|
||||
</Box>
|
||||
);
|
||||
@@ -330,9 +382,9 @@ export const Feature = ({ text, icon, iconBg, call }) => {
|
||||
rounded={"full"}
|
||||
// bg={iconBg}
|
||||
>
|
||||
<BoxedNextImage src={icon} alt={text} />
|
||||
<BoxedNextImage src={icon} alt={text} boxSize={{base: '30px', lg: '75px'}} className="gradient" />
|
||||
</Flex>
|
||||
<Text fontWeight={500} fontSize={{base: '2.8vmin', md: '1.2vmax'}} flex={1}>
|
||||
<Text fontWeight={500} fontSize={{base: '4vmin', md: '1.2vmax'}} flex={1}>
|
||||
{text}
|
||||
</Text>
|
||||
<Button onClick={() => call()} colorScheme="pink" bg="#FF61E6" size={responsiveSize} justifySelf="right">
|
||||
|
||||
@@ -59,7 +59,7 @@ export const HomeSection = () => {
|
||||
>
|
||||
MetaFest2
|
||||
</Text>
|
||||
<span className="fest-dates">9th - 23rd JUNE</span>
|
||||
<span className="fest-dates">9th - 23rd June</span>
|
||||
</Box>
|
||||
<Box className="__content__body" maxW={{base: '66vw', lg: 'unset'}}>
|
||||
<Text as="p" fontWeight={300} mt={-2}>
|
||||
|
||||
@@ -74,12 +74,12 @@ export const MetaverseSection = () => {
|
||||
zIndex={openHQ || openFair ? 0 : 2001}
|
||||
>
|
||||
<Box className="__content__body--no-firstof" textAlign="right" mt={6}>
|
||||
<Text as="h2">MetaFest-a-verse</Text>
|
||||
<Text as="h2">MetaFest-a-Verse</Text>
|
||||
<Text className="gradient">
|
||||
Metafest 2 full dive: MetaFam's HQ in the Metaverse.
|
||||
Metafest 2 full dive: The MetaGame HQ
|
||||
</Text>
|
||||
<Text>
|
||||
From scavenger hunts to gigs, come explore our virtual HQ!{" "}
|
||||
Join us at our HQ and explore the metaverse as we join together in games, scavenger hunts, learning, and other fun events.{" "}
|
||||
</Text>
|
||||
|
||||
<Button colorScheme="ghost" onClick={() => setOpenHQ(!openHQ)}>
|
||||
|
||||
@@ -5,6 +5,7 @@ import {
|
||||
IconButton,
|
||||
Link,
|
||||
Text,
|
||||
Tabs, TabList, TabPanels, Tab, TabPanel, useDisclosure
|
||||
} from "@chakra-ui/react";
|
||||
import { CalendarIcon, ExternalLinkIcon } from "@chakra-ui/icons";
|
||||
import CalendarInstance from "@/components/dom/integrations/CalendarInstance";
|
||||
@@ -25,6 +26,8 @@ export const ScheduleSection = () => {
|
||||
id="schedule"
|
||||
flexFlow="row nowrap"
|
||||
justifyContent="space-between"
|
||||
alignItems="flex-start"
|
||||
pt="10%"
|
||||
>
|
||||
{openCal && (
|
||||
<Button
|
||||
@@ -72,26 +75,21 @@ export const ScheduleSection = () => {
|
||||
alignSelf="center"
|
||||
filter="drop-shadow(0 0 15px #FF61E6)"
|
||||
/>
|
||||
<Text flex="1 0 100%" width="100%" alignSelf="flex-end" justifySelf="flex-start" fontWeight={500}>
|
||||
{/* <Text flex="1 0 100%" width="100%" alignSelf="flex-end" justifySelf="flex-start" fontWeight={500}>
|
||||
Our community members are busy rn, booking guests & organising
|
||||
workshops. <br /> Watch this space
|
||||
<Text as="span" className="gradient2">
|
||||
...it's gonna blow your mind!
|
||||
</Text>
|
||||
</Text>
|
||||
</Text> */}
|
||||
</Box>
|
||||
|
||||
<Box className="__content__body">
|
||||
|
||||
<Box
|
||||
d="flex"
|
||||
alignContent="flex-start"
|
||||
justifyContent="space-between"
|
||||
flexFlow="row wrap"
|
||||
w="100%"
|
||||
>
|
||||
{timeBlocks.map((block, i) => <DayBlock key={`dayBlock-${i}`} block={block} />)}
|
||||
</Box>
|
||||
|
||||
{/* {timeBlocks.map((block, i) => <DayBlock key={`dayBlock-${i}`} block={block} />)} */}
|
||||
<WeekTabs blocks={timeBlocks} />
|
||||
|
||||
<Box mt={5}>
|
||||
<Text>
|
||||
To enter MetaFest2, you will have to{" "}
|
||||
@@ -184,29 +182,97 @@ export const ScheduleSection = () => {
|
||||
};
|
||||
|
||||
|
||||
export const DayBlock = ({ block }) => {
|
||||
const { dates, title, strapline, description, extra } = block
|
||||
export const WeekTabs = ({ blocks }) => {
|
||||
const [tabIndex, setTabIndex] = useState(0);
|
||||
const week1 = blocks.filter(block => block.week === 1)
|
||||
const week2 = blocks.filter(block => block.week === 2)
|
||||
return (
|
||||
<Tabs
|
||||
mt={0}
|
||||
maxW={{ base: 'full', lg: 'full' }}
|
||||
height="-webkit-fit-content"
|
||||
defaultIndex={0}
|
||||
variant="unstyled"
|
||||
isFitted
|
||||
onChange={(index) => setTabIndex(index)}
|
||||
>
|
||||
<TabList fontSize={{ base: '2.6vmin', lg: '2vmax' }} w="50%" flex="0 0 50%" justifyContent="flex-start" justifyItems="center" borderBottom="none">
|
||||
<Box p={5} pl={0}>
|
||||
<Tab
|
||||
borderBottom={tabIndex === 0 ? "4px solid #640DFB99" : "2px solid transparent"}
|
||||
>
|
||||
<Text as="h3" className="gradient2" my={0}>Week One</Text></Tab>
|
||||
</Box>
|
||||
<Box p={5} pl={0}>
|
||||
<Tab borderBottom={tabIndex === 1 ? "4px solid #640DFB99" : "2px solid transparent"}><Text as="h3" className="gradient2" my={0}>Week Two</Text></Tab>
|
||||
</Box>
|
||||
|
||||
</TabList>
|
||||
|
||||
<TabPanels>
|
||||
<TabPanel >
|
||||
<Box
|
||||
d="flex"
|
||||
alignContent="flex-start"
|
||||
justifyContent="space-between"
|
||||
flexFlow="row wrap"
|
||||
w="100%"
|
||||
opacity={tabIndex === 0 ? 1 : 0}
|
||||
transform={tabIndex === 0 ? 'translateX(0)' : 'translateX(-200px)'}
|
||||
transition="transform 0.3s 1s ease-in-out, opacity 0.3s 1.1s ease-in-out"
|
||||
>
|
||||
{
|
||||
week1 && week1.map((day, i) => (
|
||||
<DayBlock key={i} day={day} />
|
||||
))
|
||||
}
|
||||
</Box>
|
||||
</TabPanel>
|
||||
<TabPanel>
|
||||
<Box
|
||||
d="flex"
|
||||
alignContent="flex-start"
|
||||
justifyContent="space-between"
|
||||
flexFlow="row wrap"
|
||||
w="100%"
|
||||
opacity={tabIndex === 1 ? 1 : 0}
|
||||
transform={tabIndex === 1 ? 'translateX(0)' : 'translateX(-200px)'}
|
||||
transition="transform 0.3s 1s ease-in-out, opacity 0.3s 1.1s ease-in-out"
|
||||
>
|
||||
{
|
||||
week2 && week2.map((day, i) => (
|
||||
<DayBlock key={i} day={day} />
|
||||
))
|
||||
}
|
||||
</Box>
|
||||
</TabPanel>
|
||||
|
||||
</TabPanels>
|
||||
</Tabs>
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
export const DayBlock = ({ day }) => {
|
||||
const { dates, title, strapline, description, extra } = day
|
||||
return (
|
||||
<Box className="time-block"
|
||||
sx={{
|
||||
'h3 + p': {
|
||||
fontSize: { base: "2.6vmin", md: "1vmax" },
|
||||
},
|
||||
flex: {
|
||||
base: '0 0 50%', xl: '0 0 32%'
|
||||
base: '0 0 49%', xl: '0 0 32%'
|
||||
},
|
||||
W: { base: '50%', xl: '32%' }
|
||||
W: { base: '49%', xl: '32%' }
|
||||
}}
|
||||
>
|
||||
<Box d="inline-block">
|
||||
<Text as="span" className="fest-dates">
|
||||
<span>{dates}</span>
|
||||
</Text>
|
||||
<Text as="h3" className="gradient2" my={0}>
|
||||
<Text as="h4" className="gradient2" my={0}>
|
||||
<span>{title}</span>
|
||||
</Text>
|
||||
</Box>
|
||||
<Text fontSize={{ base: "2.6vmin", md: "1vmax" }} fontWeight={500}>{strapline}</Text>
|
||||
<Text fontSize={{ base: "2.6vmin", md: "1vmax" }} fontWeight={500} mb={1}>{strapline}</Text>
|
||||
<Text>{description}</Text>
|
||||
{!extra && <Text>{extra}</Text>}
|
||||
</Box>
|
||||
@@ -215,6 +281,7 @@ export const DayBlock = ({ block }) => {
|
||||
|
||||
const timeBlocks = [
|
||||
{
|
||||
week: 1,
|
||||
dates: 'Thursday June 9th',
|
||||
title: 'Opening Ceremonies!',
|
||||
strapline: 'Get ready for a jam-packed 2 weeks! 55+ plus speakers, panels, workshops, and more...',
|
||||
@@ -222,6 +289,7 @@ const timeBlocks = [
|
||||
extra: `If you missed out last year, I can feel your <span className="gradient">FOMO</span> from here!!`
|
||||
},
|
||||
{
|
||||
week: 1,
|
||||
dates: 'Friday-Saturday June 10th-11th',
|
||||
title: 'Tooling Days',
|
||||
strapline: 'How do you stay organized and productive?',
|
||||
@@ -229,13 +297,15 @@ const timeBlocks = [
|
||||
extra: `If you missed out last year, I can feel your <span className="gradient">FOMO</span> from here!!`
|
||||
},
|
||||
{
|
||||
week: 1,
|
||||
dates: 'Sunday-Monday June 12th-13th',
|
||||
title: 'Metaverse Days',
|
||||
strapline: 'Whoa, the MetaVerse, what’s that?',
|
||||
description: 'There’s a lot happening in the MetaVerse. MetaGamers have a presence in Neos, Cryptovoxels, Atlantis World, Decentraland, Aavegotchi Gotchiverse, and more. Come join us and see what we’ve been building! Learn some new skills to start playing in your MetaVerse of choice. It may be a new trend word, but we’ve been digging in for than a year. :)',
|
||||
description: 'There’s a lot happening in the MetaVerse. MetaGamers have a presence in Neos, Cryptovoxels, Atlantis World, Decentraland, Aavegotchi Gotchiverse, and more. Come join us and see what we’ve been building! Learn some new skills to start playing in your MetaVerse of choice. It may be a new trend word, but we’ve been digging in for more than a year. :)',
|
||||
extra: `If you missed out last year, I can feel your <span className="gradient">FOMO</span> from here!!`
|
||||
},
|
||||
{
|
||||
week: 2,
|
||||
dates: 'Tuesday-Friday June 14th-17th',
|
||||
title: 'MetaAlliance and Regen Days',
|
||||
strapline: 'Speakers! Panels! Workshops!',
|
||||
@@ -243,6 +313,7 @@ const timeBlocks = [
|
||||
extra: `If you missed out last year, I can feel your <span className="gradient">FOMO</span> from here!!`
|
||||
},
|
||||
{
|
||||
week: 2,
|
||||
dates: 'Saturday June 18th',
|
||||
title: 'Tooling Follow-up Presentations',
|
||||
strapline: 'Well I got this shiny new toolbox, now what?',
|
||||
@@ -250,13 +321,15 @@ const timeBlocks = [
|
||||
extra: `If you missed out last year, I can feel your <span className="gradient">FOMO</span> from here!!`
|
||||
},
|
||||
{
|
||||
week: 2,
|
||||
dates: 'Sunday June 19th',
|
||||
title: 'Sunday Funday: Live Concerts & Entertainment',
|
||||
strapline: 'All work and no play, makes Nova swim in circles.',
|
||||
description: 'Sunday Funday is our weekend day of play and entertainment. Join us for live events in MetaVerse worlds, games, possible Poaps, and more!',
|
||||
description: 'Sunday Funday is our weekend day of play and entertainment. Join us for live events in MetaVerse worlds, games, possible Poaps, and more!',
|
||||
extra: `If you missed out last year, I can feel your <span className="gradient">FOMO</span> from here!!`
|
||||
},
|
||||
{
|
||||
week: 2,
|
||||
dates: 'Monday June 20th',
|
||||
title: 'DeFi Day',
|
||||
strapline: 'We know, we could do a whole Fest on just DeFi. But look at how much we’ve stacked in one day!',
|
||||
@@ -264,6 +337,7 @@ const timeBlocks = [
|
||||
extra: `If you missed out last year, I can feel your <span className="gradient">FOMO</span> from here!!`
|
||||
},
|
||||
{
|
||||
week: 2,
|
||||
dates: 'Tuesday-Wednesday June 21st-22nd',
|
||||
title: 'Job Fair and Meta-Days',
|
||||
strapline: 'So, how do I start working in a DAO?',
|
||||
@@ -271,10 +345,11 @@ const timeBlocks = [
|
||||
extra: `If you missed out last year, I can feel your <span className="gradient">FOMO</span> from here!!`
|
||||
},
|
||||
{
|
||||
week: 2,
|
||||
dates: 'Thursday June 23rd',
|
||||
title: 'Closing Ceremonies and Awards',
|
||||
strapline: 'Well that was fun! Can we stay here forever??',
|
||||
description: 'Whoa, so much was covered. How do we wrap this up? Awards! You get an Oprah nft, you get a Octo, you get the point. If you came for the Poap, don’t miss this day.',
|
||||
description: 'Whoa, so much was covered. How do we wrap this up? Awards! You get an Oprah NFT, you get a Octo, you get the point. If you came for the POAP, don’t miss this day.',
|
||||
extra: `If you missed out last year, I can feel your <span className="gradient">FOMO</span> from here!!`
|
||||
},
|
||||
]
|
||||
|
||||
@@ -33,22 +33,22 @@ export const SpeakersSection = () => {
|
||||
<Flex alignItems="flex-start" justifyContent="space-between">
|
||||
<Box flex="0 0 48%" w="48%">
|
||||
<Text as="h3" className="gradient2">
|
||||
Metaverse Week
|
||||
Week One
|
||||
</Text>
|
||||
<Text>Want to take part in Metaverse Week?</Text>
|
||||
<Text>
|
||||
Find the application forms on the{" "}
|
||||
<Link href="#schedule">Schedule page</Link>
|
||||
<Link href="#apply">Applications page</Link>
|
||||
</Text>
|
||||
</Box>
|
||||
<Box flex="0 0 48%" w="48%">
|
||||
<Text as="h3" className="gradient2">
|
||||
DAO Week
|
||||
Week Two
|
||||
</Text>
|
||||
<Text>Want to take part in DAO Week?</Text>
|
||||
<Text>
|
||||
Find the application forms on the{" "}
|
||||
<Link href="#schedule">Schedule page</Link>
|
||||
<Link href="#apply">Applications page</Link>
|
||||
</Text>
|
||||
</Box>
|
||||
</Flex>
|
||||
|
||||
@@ -68,7 +68,7 @@ export const WorkshopsSection = () => {
|
||||
folks to help with <strong className="gradient">Innkeeping</strong>. */}
|
||||
</Text>
|
||||
<Text>
|
||||
Check the <Link href="#schedule">Schedule page</Link> for the
|
||||
Check the <Link href="#apply">Applications page</Link> for the
|
||||
contributors application form and as always, you can always{" "}
|
||||
<Link href="https://discord.gg/invite/metagame" isExternal>
|
||||
join our Discord
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import dynamic from 'next/dynamic'
|
||||
import { Canvas } from '@react-three/fiber'
|
||||
import * as THREE from "three";
|
||||
import { OrbitControls, Preload } from '@react-three/drei'
|
||||
import { Environment, OrbitControls, Preload } from '@react-three/drei'
|
||||
import {
|
||||
Box
|
||||
} from '@chakra-ui/react'
|
||||
@@ -33,7 +33,7 @@ const LCanvas = ({ children }) => {
|
||||
return (
|
||||
<Canvas
|
||||
mode='concurrent'
|
||||
// shadows
|
||||
shadow="true"
|
||||
style={{
|
||||
position: 'fixed',
|
||||
top: 0,
|
||||
@@ -48,6 +48,7 @@ const LCanvas = ({ children }) => {
|
||||
<Preload all />
|
||||
<Suspense fallback={<CanvasLoader />}>
|
||||
{children}
|
||||
<Environment preset="forest" />
|
||||
</Suspense>
|
||||
</Canvas>
|
||||
)
|
||||
|
||||
@@ -1,85 +0,0 @@
|
||||
import Head from 'next/head'
|
||||
|
||||
const titleDefault = 'React Three Next Starter'
|
||||
const url = 'https://react-three-next.vercel.app/'
|
||||
const description =
|
||||
'The easiest and fastest way to create a 3D website using React Three Fiber and NextJS'
|
||||
const author = 'Author'
|
||||
|
||||
const Header = ({ title = titleDefault }) => {
|
||||
return (
|
||||
<>
|
||||
<Head>
|
||||
{/* Recommended Meta Tags */}
|
||||
<meta charSet='utf-8' />
|
||||
<meta name='language' content='english' />
|
||||
<meta httpEquiv='content-type' content='text/html' />
|
||||
<meta name='author' content={author} />
|
||||
<meta name='designer' content={author} />
|
||||
<meta name='publisher' content={author} />
|
||||
|
||||
{/* Search Engine Optimization Meta Tags */}
|
||||
<title>{title}</title>
|
||||
<meta name='description' content={description} />
|
||||
<meta
|
||||
name='keywords'
|
||||
content='Software Engineer,Product Manager,Project Manager,Data Scientist,Computer Scientist'
|
||||
/>
|
||||
<meta name='robots' content='index,follow' />
|
||||
<meta name='distribution' content='web' />
|
||||
{/*
|
||||
Facebook Open Graph meta tags
|
||||
documentation: https://developers.facebook.com/docs/sharing/opengraph */}
|
||||
<meta name='og:title' content={title} />
|
||||
<meta name='og:type' content='site' />
|
||||
<meta name='og:url' content={url} />
|
||||
<meta name='og:image' content={'/icons/share.png'} />
|
||||
<meta name='og:site_name' content={title} />
|
||||
<meta name='og:description' content={description} />
|
||||
|
||||
<link rel='apple-touch-icon' href='/icons/apple-touch-icon.png' />
|
||||
<link
|
||||
rel='apple-touch-icon'
|
||||
sizes='16x16'
|
||||
href='/icons/favicon-16x16.png'
|
||||
/>
|
||||
<link
|
||||
rel='apple-touch-icon'
|
||||
sizes='32x32'
|
||||
href='/icons/favicon-32x32.png'
|
||||
/>
|
||||
<link
|
||||
rel='apple-touch-icon'
|
||||
sizes='180x180'
|
||||
href='/icons/apple-touch-icon.png'
|
||||
/>
|
||||
<link rel='manifest' href='/manifest.json' />
|
||||
<link
|
||||
rel='mask-icon'
|
||||
color='#000000'
|
||||
href='/icons/safari-pinned-tab.svg'
|
||||
/>
|
||||
<link rel='apple-touch-startup-image' href='/startup.png' />
|
||||
|
||||
{/* Meta Tags for HTML pages on Mobile */}
|
||||
{/* <meta name="format-detection" content="telephone=yes"/>
|
||||
<meta name="HandheldFriendly" content="true"/> */}
|
||||
<meta
|
||||
name='viewport'
|
||||
content='width=device-width, minimum-scale=1, initial-scale=1.0'
|
||||
/>
|
||||
<meta name='theme-color' content='#000' />
|
||||
<link rel='shortcut icon' href='/icons/favicon.ico' />
|
||||
|
||||
{/*
|
||||
Twitter Summary card
|
||||
documentation: https://dev.twitter.com/cards/getting-started
|
||||
Be sure validate your Twitter card markup on the documentation site. */}
|
||||
<meta name='twitter:card' content='summary' />
|
||||
<meta name='twitter:site' content='@onirenaud' />
|
||||
</Head>
|
||||
</>
|
||||
)
|
||||
}
|
||||
|
||||
export default Header
|
||||
@@ -24,12 +24,26 @@ const theme = extendTheme({
|
||||
color: "#ffeded",
|
||||
fontFamily: '"Exo 2", sans-serif',
|
||||
fontSize: "16px",
|
||||
fontWeight: 300,
|
||||
fontWeight: 400,
|
||||
p: 0,
|
||||
m: '0 auto',
|
||||
minH: "100vh",
|
||||
width: '100%'
|
||||
width: '100%',
|
||||
// overflowY: "auto",
|
||||
'.loading-canvas': {
|
||||
'.dom-loader': {
|
||||
opacity: 1,
|
||||
zIndex: 4000,
|
||||
}
|
||||
},
|
||||
'.dom-loader': {
|
||||
position: 'fixed',
|
||||
opacity: 0,
|
||||
top: 0,
|
||||
left: 0,
|
||||
zIndex: -200,
|
||||
transition: 'all 0.5s ease'
|
||||
}
|
||||
},
|
||||
// "body *": {
|
||||
// outline: "1px solid red",
|
||||
@@ -62,6 +76,16 @@ const theme = extendTheme({
|
||||
fontSize: "4vmax",
|
||||
fontWeight: 700,
|
||||
},
|
||||
'& + .fest-dates': {
|
||||
fontWeight: 700,
|
||||
justifyContent: "right",
|
||||
opacity: 1,
|
||||
transform: {
|
||||
base: "translateY(5px)",
|
||||
lg: "translateY(9px)",
|
||||
"2xl": "translateY(10px)",
|
||||
},
|
||||
}
|
||||
},
|
||||
h2: {
|
||||
color: "#fff",
|
||||
@@ -86,7 +110,7 @@ const theme = extendTheme({
|
||||
fontWeight: 500,
|
||||
},
|
||||
p: {
|
||||
fontSize: { base: "2.6vmin", md: ".9vmax" },
|
||||
fontSize: { base: "2.6vmin", md: ".8vmax" },
|
||||
textShadow: "0 0 5px rgba(0, 0, 0, 0.6)",
|
||||
},
|
||||
section: {
|
||||
@@ -111,7 +135,7 @@ const theme = extendTheme({
|
||||
fontSize: { base: "2.6vmin", md: "0.9vmax" },
|
||||
fontWeight: 500,
|
||||
"& + p": {
|
||||
fontWeight: 300,
|
||||
fontWeight: 400,
|
||||
},
|
||||
},
|
||||
},
|
||||
@@ -121,9 +145,10 @@ const theme = extendTheme({
|
||||
display: "inline-block",
|
||||
background: "linear-gradient(90deg, #FF61E6 -29.22%, #7C56FF 107.53%)",
|
||||
backgroundClip: "text",
|
||||
// WebkitTextFillColor: "transparent",
|
||||
// textFillColor: "transparent",
|
||||
// filter: "drop-shadow(0 0 5px rgba(0,0,0,0.6))",
|
||||
WebkitTextFillColor: "transparent",
|
||||
textFillColor: "transparent",
|
||||
textShadow: 'unset',
|
||||
filter: "drop-shadow(0 0 5px rgba(0,0,0,0.6))",
|
||||
},
|
||||
".gradient2": {
|
||||
display: "inline-block",
|
||||
@@ -134,6 +159,7 @@ const theme = extendTheme({
|
||||
backgroundClip: "text",
|
||||
textFillColor: "transparent",
|
||||
WebkitTextFillColor: "transparent",
|
||||
textShadow: 'unset',
|
||||
filter: "drop-shadow(0 0 5px rgba(0,0,0,0.6))",
|
||||
},
|
||||
".gradient-cone": {
|
||||
@@ -146,6 +172,7 @@ const theme = extendTheme({
|
||||
textFillColor: "transparent",
|
||||
WebkitTextFillColor: "transparent",
|
||||
transition: "background 0.3s ease",
|
||||
textShadow: 'unset',
|
||||
filter: "drop-shadow(0 0 5px rgba(0,0,0,0.6))",
|
||||
},
|
||||
".highlight": {},
|
||||
@@ -154,8 +181,9 @@ const theme = extendTheme({
|
||||
width: "100%",
|
||||
color: "#FF61E6",
|
||||
fontSize: { base: "2.2vmin", md: "0.7vmax" },
|
||||
fontWeight: 700,
|
||||
fontWeight: 500,
|
||||
justifyContent: "left",
|
||||
opacity: 0.8,
|
||||
pr: 0.5,
|
||||
transform: {
|
||||
base: "translateY(7px)",
|
||||
|
||||
273
src/pages/cv.jsx
273
src/pages/cv.jsx
@@ -1,6 +1,7 @@
|
||||
import { PerspectiveCamera, Stats } from '@react-three/drei'
|
||||
import React, { useEffect, useMemo, useRef, forwardRef, useLayoutEffect } from "react";
|
||||
import React, { useEffect, useMemo, useRef, forwardRef, useLayoutEffect, Suspense } from "react";
|
||||
import * as THREE from "three";
|
||||
import gsap from "gsap";
|
||||
import { useFrame, extend } from '@react-three/fiber'
|
||||
import dynamic from 'next/dynamic'
|
||||
|
||||
@@ -19,6 +20,7 @@ import {
|
||||
galaxy5Params,
|
||||
} from '@/components/canvas/galaxies';
|
||||
import { Effects, Nucleus } from "@/components/canvas/Galaxy";
|
||||
import { CanvasLoader } from '@/components/canvas/Loader';
|
||||
|
||||
const NomadVox = dynamic(() => import('@/components/canvas/Nomad'), {
|
||||
ssr: false,
|
||||
@@ -44,6 +46,21 @@ const OctoPetVox = dynamic(() => import('@/components/canvas/OctoPet'), {
|
||||
const Galaxy = dynamic(() => import('@/components/canvas/Galaxy'), {
|
||||
ssr: false,
|
||||
})
|
||||
// Musashi
|
||||
const Robe = dynamic(() => import('@/components/canvas/musashi/Robe'), {
|
||||
ssr: false,
|
||||
})
|
||||
const Robe2 = dynamic(() => import('@/components/canvas/musashi/Robe2'), {
|
||||
ssr: false,
|
||||
})
|
||||
const ILB = dynamic(() => import('@/components/canvas/musashi/Ilb'), {
|
||||
ssr: false,
|
||||
})
|
||||
const MolochPet1 = dynamic(() => import('@/components/canvas/musashi/MolochPet1'), {
|
||||
ssr: false,
|
||||
})
|
||||
|
||||
|
||||
|
||||
export const objectsDistance = 4;
|
||||
|
||||
@@ -88,11 +105,20 @@ const R3F = () => {
|
||||
const mouse = new THREE.Vector2();
|
||||
const rayMouse = new THREE.Vector2();
|
||||
const section = useRef(0);
|
||||
|
||||
// Model groups
|
||||
const musashiGroup = useRef(null);
|
||||
const ilbRef = useRef(null);
|
||||
const molochPet1 = useRef(null);
|
||||
|
||||
const luxGroup = useRef(null);
|
||||
|
||||
/**
|
||||
* Animate
|
||||
*/
|
||||
const clock = new THREE.Clock();
|
||||
let previousTime = 0;
|
||||
const isOdd = (num) => !!num % 2;
|
||||
/**
|
||||
* Cursor / Mouse
|
||||
*/
|
||||
@@ -132,9 +158,108 @@ const R3F = () => {
|
||||
// camera.current.layers.set(section.current);
|
||||
|
||||
console.log('Current section: ', section.current);
|
||||
if (musashiGroup.current) {
|
||||
let tl = gsap.timeline();
|
||||
switch (currentSection) {
|
||||
// Workshops
|
||||
case 2:
|
||||
tl.to(musashiGroup.current.position, {
|
||||
duration: 1.5,
|
||||
ease: "power2.inOut",
|
||||
y: 0,
|
||||
z: 0,
|
||||
});
|
||||
break;
|
||||
|
||||
default:
|
||||
tl.to(musashiGroup.current.position, {
|
||||
duration: 1.5,
|
||||
ease: "power2.inOut",
|
||||
y: -10,
|
||||
z: 0,
|
||||
});
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (luxGroup.current) {
|
||||
let tl2 = gsap.timeline();
|
||||
switch (currentSection) {
|
||||
// Workshops
|
||||
case 1:
|
||||
tl2.to(luxGroup.current.position, {
|
||||
duration: 1.5,
|
||||
delay: 0.3,
|
||||
ease: "power2.inOut",
|
||||
y: 0,
|
||||
z: 0,
|
||||
});
|
||||
break;
|
||||
|
||||
default:
|
||||
tl2.to(luxGroup.current.position, {
|
||||
duration: 1.5,
|
||||
delay: 0.3,
|
||||
ease: "power2.inOut",
|
||||
y: 0,
|
||||
z: -10,
|
||||
});
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
if (musashiGroup.current) {
|
||||
let tl = gsap.timeline();
|
||||
switch (section.current) {
|
||||
// Workshops
|
||||
case 2:
|
||||
tl.to(musashiGroup.current.position, {
|
||||
duration: 1.5,
|
||||
ease: "power2.inOut",
|
||||
y: 0,
|
||||
z: 0,
|
||||
});
|
||||
break;
|
||||
|
||||
default:
|
||||
tl.to(musashiGroup.current.position, {
|
||||
duration: 1.5,
|
||||
ease: "power2.inOut",
|
||||
y: -10,
|
||||
z: 0,
|
||||
});
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (luxGroup.current) {
|
||||
let tl2 = gsap.timeline();
|
||||
switch (currentSection) {
|
||||
// Workshops
|
||||
case 1:
|
||||
tl2.to(luxGroup.current.position, {
|
||||
duration: 1.5,
|
||||
delay: 0.3,
|
||||
ease: "power2.inOut",
|
||||
y: 0,
|
||||
z: 0,
|
||||
});
|
||||
break;
|
||||
|
||||
default:
|
||||
tl2.to(luxGroup.current.position, {
|
||||
duration: 1.5,
|
||||
delay: 0.3,
|
||||
ease: "power2.inOut",
|
||||
y: 0,
|
||||
z: -10,
|
||||
});
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// Mouse move
|
||||
window.addEventListener("mousemove", (event) => {
|
||||
cursor.current.x = (event.clientX / sizes.current.width) - 0.3;
|
||||
@@ -146,7 +271,6 @@ const R3F = () => {
|
||||
// console.log('mousePos', mousePos.current);
|
||||
rayMousePos.current.x = event.clientX / sizes.current.width;
|
||||
rayMousePos.current.y = event.clientY / sizes.current.height;
|
||||
|
||||
// mouse.position.x = event.clientX / sizes.current.width
|
||||
// mouse.position.y = event.clientY / sizes.current.height
|
||||
// console.log('mouse pos', mouse.position);
|
||||
@@ -172,91 +296,106 @@ const R3F = () => {
|
||||
cameraGroup.current.position.y +=
|
||||
(parallaxY - cameraGroup.current.position.y) * 5 * deltaTime;
|
||||
|
||||
rimLight.current.position.y = (-scrollY.current / sizes.current.height) * objectsDistance;
|
||||
rimLight2.current.position.y = (-scrollY.current / sizes.current.height) * objectsDistance;
|
||||
// rimLight3.current.position.y = (-scrollY.current / sizes.current.height) * objectsDistance;
|
||||
// rimLight.current.position.x +=
|
||||
// (parallaxX - rimLight.current.position.x) ;
|
||||
// rimLight.current.position.y =
|
||||
// (parallaxY - rimLight.current.position.y);
|
||||
// rimLight.current.position.y = (-scrollY.current / sizes.current.height) * objectsDistance;
|
||||
// rimLight2.current.position.y = (-scrollY.current / sizes.current.height) * objectsDistance;
|
||||
|
||||
// console.log('camg', rimLight.current.position);
|
||||
if (ilbRef.current) {
|
||||
ilbRef.current.position.x = 1 + Math.sin(elapsedTime * 0.8) * Math.PI * 0.03;
|
||||
ilbRef.current.position.y = 1 - Math.cos(elapsedTime * 0.1) * Math.PI * 0.3;
|
||||
// group.current.position.z = -0.25 - Math.cos(elapsedTime * 0.1) * Math.PI * 0.3;
|
||||
|
||||
// ilbRef.current.rotation.z = -0.5 - Math.sin(elapsedTime * 0.3) * Math.PI * 0.03;
|
||||
ilbRef.current.rotation.y = -elapsedTime * 0.006;
|
||||
}
|
||||
|
||||
if (molochPet1.current) {
|
||||
molochPet1.current.position.x = -1 + Math.sin(elapsedTime * 0.6) * Math.PI * 0.03;
|
||||
molochPet1.current.position.y = 1 + Math.cos(elapsedTime * 0.07) * Math.PI * 0.5;
|
||||
// group.current.position.z = -0.25 - Math.cos(elapsedTime * 0.1) * Math.PI * 0.3;
|
||||
|
||||
molochPet1.current.rotation.z = -0.05 - Math.sin(elapsedTime * 0.3) * Math.PI * 0.03;
|
||||
// molochPet1.current.rotation.y = elapsedTime * 0.03;
|
||||
}
|
||||
|
||||
if (luxGroup.current) {
|
||||
luxGroup.current.children.map((child, i) => {
|
||||
// console.log(child);
|
||||
if (child.name === 'LuxVoxGroup' || child.name === 'OctoPetGroup' || child.name === 'BabyEarthGroup') {
|
||||
} else {
|
||||
// console.log(child.name)
|
||||
child.position.y = -1.5 - Math.cos(elapsedTime * (0.1)) * Math.PI * (0.05 - i*0.1) ;
|
||||
child.position.z = isOdd(i) ? -2 : -4;
|
||||
// group.current.rotation.y = elapsedTime * 0.03;
|
||||
child.rotation.z = 0.2 - Math.sin(elapsedTime * 0.3) * Math.PI * (0.03 - i * 0.001);
|
||||
}
|
||||
})
|
||||
// console.log(luxGroup.current.children);
|
||||
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
|
||||
return (
|
||||
<>
|
||||
<group ref={cameraGroup}>
|
||||
<PerspectiveCamera ref={camera} makeDefault position={[0, 0, 6]} />
|
||||
<rectAreaLight
|
||||
ref={rimLight}
|
||||
width={6}
|
||||
height={2}
|
||||
intensity={2}
|
||||
color="#fffccc'"
|
||||
position={[0, 0, 1.5]}
|
||||
rotation={[0, 0, 0]}
|
||||
castShadow
|
||||
/>
|
||||
<rectAreaLight
|
||||
ref={rimLight2}
|
||||
width={6}
|
||||
height={2}
|
||||
intensity={5}
|
||||
color="blue"
|
||||
position={[0, 0, 1.5]}
|
||||
rotation={[0, 0, 0]}
|
||||
castShadow
|
||||
/>
|
||||
<rectAreaLight
|
||||
ref={rimLight3}
|
||||
width={1}
|
||||
height={1}
|
||||
intensity={2}
|
||||
color="#76EBF2"
|
||||
position={[-1.6, -1, 0.5]}
|
||||
rotation={[0, 0, 0]}
|
||||
castShadow
|
||||
/>
|
||||
<axesHelper />
|
||||
<Stats />
|
||||
|
||||
{/* <Stats /> */}
|
||||
</group>
|
||||
|
||||
<Suspense fallback={<CanvasLoader />}>
|
||||
<Galaxy
|
||||
dof={dof}
|
||||
parameters={galaxy5Params}
|
||||
nucleus={false} helper={false}
|
||||
position={[0, -3, -20]} />
|
||||
position={[0, -3, -10]}
|
||||
rotation={[Math.PI * 0.3, 0, 0]}
|
||||
/>
|
||||
|
||||
<R3FSceneSection name="SectionOne" count={0} >
|
||||
{/* <JetsetterVox route='/' position={[1, -2.4, -2]} rotation={[-Math.PI / 0.51, Math.PI / 4.5, 0]} /> */}
|
||||
</R3FSceneSection>
|
||||
|
||||
<R3FSceneSection name="SectionTwo" count={1} >
|
||||
|
||||
<LuxVox route='/' position={[-3.5, -1.5, -1.5]} rotation={[-Math.PI / 0.51, Math.PI / 3.25, 0]} />
|
||||
<OctoPetVox route='/' position={[-3, -2, -2]} rotation={[-Math.PI / 0.51, Math.PI / 4.5, 0]} />
|
||||
<BabyEarthVox route='/' animate={true} position={[-2, -1, -0.25]} rotation={[-Math.PI / 0.51, Math.PI / 4.5, 0]} />
|
||||
<NomadVox route='/' position={[-1.5, 0, -2]} rotation={[-Math.PI / 0.51, Math.PI / 3.5, 0]} />
|
||||
<HouseholdVox route='/' position={[2, 2, -4]} rotation={[-Math.PI / 0.55, Math.PI / 3, 0]} />
|
||||
<JetsetterVox route='/' position={[1, -2.4, -3]} rotation={[-Math.PI / 0.51, Math.PI / 2.75, 0]} />
|
||||
<IndustrialVox route='/' position={[5, -1.4, -3]} rotation={[-Math.PI / 0.55, Math.PI / 3, 0]} />
|
||||
|
||||
<group ref={luxGroup} name="LuxGroup" position={[0, 0, -10]}>
|
||||
<group name="LuxVoxGroup">
|
||||
<LuxVox route='/' position={[-3.5, -1.5, -1.5]} rotation={[-Math.PI / 0.51, Math.PI / 3.25, 0]} />
|
||||
</group>
|
||||
<group name="OctoPetGroup">
|
||||
<OctoPetVox route='/' position={[-3, -2, -2]} rotation={[-Math.PI / 0.51, Math.PI / 4.5, 0]} />
|
||||
</group>
|
||||
<group name="BabyEarthGroup">
|
||||
<BabyEarthVox route='/' animate={true} position={[-2, -1, -0.25]} rotation={[-Math.PI / 0.51, Math.PI / 4.5, 0]} />
|
||||
</group>
|
||||
<group name="NomadGroup">
|
||||
<NomadVox route='/' position={[-1.5, 0, -2]} rotation={[-Math.PI / 0.51, Math.PI / 3.5, 0]} />
|
||||
</group>
|
||||
<group name="HouseholdGroup">
|
||||
<HouseholdVox route='/' position={[2, 2, -4]} rotation={[-Math.PI / 0.55, Math.PI / 3, 0]} />
|
||||
</group>
|
||||
<group name="JetsetterGroup">
|
||||
<JetsetterVox route='/' position={[1, -2.4, -3]} rotation={[-Math.PI / 0.51, Math.PI / 2.75, 0]} />
|
||||
</group>
|
||||
<group name="IndustrialGroup">
|
||||
<IndustrialVox route='/' position={[5, -1.4, -3]} rotation={[-Math.PI / 0.55, Math.PI / 3, 0]} />
|
||||
</group>
|
||||
</group>
|
||||
</R3FSceneSection>
|
||||
|
||||
<R3FSceneSection name="SectionThree" count={2}>
|
||||
<Galaxy dof={dof} parameters={galaxy2Params} position={[0, -6, -20]} />
|
||||
{/* <group position={[5, 0, 3]} rotation={[0, 0.1, 0]}>
|
||||
<directionalLight
|
||||
intensity={0.3}
|
||||
decay={2}
|
||||
color="cyan"
|
||||
rotation={[0, 0, 0]}
|
||||
/>
|
||||
<axesHelper />
|
||||
</group> */}
|
||||
{/* <LuxVox route='/' position={[-3, -2, -1]} rotation={[-Math.PI / 0.51, Math.PI / 4.5, 0]} />
|
||||
<NomadVox route='/' position={[3, -1.5, -0.5]} rotation={[-Math.PI / 0.51, Math.PI / 4.5, 0]} />
|
||||
<JetsetterVox route='/' position={[1, -2.4, -3]} rotation={[-Math.PI / 0.55, Math.PI / 3, 0]} /> */}
|
||||
</R3FSceneSection>
|
||||
<group ref={musashiGroup} name="MusashiGroup" position={[0, 0, 0]}>
|
||||
<Robe route='/' animate={false} position={[-2.25, -2, 0]} rotation={[-Math.PI / 0.51, Math.PI / 4.5, 0]} />
|
||||
<Robe2 route='/' animate={false} position={[-2.25, -2, 0]} rotation={[-Math.PI / 0.51, Math.PI / 4.5, 0]} />
|
||||
<group ref={ilbRef}>
|
||||
<ILB position={[2, -2.5, -1]} rotation={[0, 0, 0]} />
|
||||
</group>
|
||||
<group ref={molochPet1}>
|
||||
<MolochPet1 position={[1, -2.5, 0]} rotation={[-Math.PI / 0.51, Math.PI / 4.5, 0]} />
|
||||
</group>
|
||||
</group>
|
||||
</R3FSceneSection>
|
||||
</Suspense>
|
||||
</>
|
||||
)
|
||||
}
|
||||
@@ -293,7 +432,7 @@ export const artists = [
|
||||
slug: 'musashi',
|
||||
name: 'Musashi',
|
||||
strapline: 'Some voxels made by Musashi',
|
||||
description: 'to follow...',
|
||||
description: 'Member of MG writers guild and bridgebuilder & cross-pollination extraordinaire',
|
||||
}
|
||||
];
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import React, { createRef, useEffect, useLayoutEffect, useMemo, useRef } from "react";
|
||||
import React, { createRef, Suspense, useEffect, useLayoutEffect, useMemo, useRef } from "react";
|
||||
import * as THREE from "three";
|
||||
import { useFrame, useThree, extend } from '@react-three/fiber'
|
||||
import { PerspectiveCamera, Stats } from '@react-three/drei'
|
||||
import { PerspectiveCamera, Stats, useProgress } from '@react-three/drei'
|
||||
import gsap from "gsap";
|
||||
import dynamic from 'next/dynamic'
|
||||
|
||||
@@ -15,7 +15,6 @@ import {
|
||||
ChatSection,
|
||||
ApplySection,
|
||||
} from "@/components/dom/page-sections";
|
||||
import useStore from '@/helpers/store'
|
||||
|
||||
import {
|
||||
galaxy1Params,
|
||||
@@ -24,8 +23,7 @@ import {
|
||||
galaxy4Params,
|
||||
galaxy5Params,
|
||||
} from '@/components/canvas/galaxies';
|
||||
|
||||
|
||||
import { CanvasLoader } from "@/components/canvas/Loader";
|
||||
|
||||
|
||||
// Dynamic import is used to prevent a payload when the website start that will include threejs r3f etc..
|
||||
@@ -74,9 +72,9 @@ export const R3FSceneSection = ({ name, count, children, ...props }) => {
|
||||
// useLayoutEffect(() => {
|
||||
// group.current.layers.enable(layers);
|
||||
// }, [layers])
|
||||
if (group.current) {
|
||||
console.log('section grp cur: ', group.current);
|
||||
}
|
||||
// if (group.current) {
|
||||
// console.log('section grp cur: ', group.current);
|
||||
// }
|
||||
return (
|
||||
<group ref={group} name={name} position={[0, -objectsDistance * count, 0]} {...props}>{children}</group>
|
||||
)
|
||||
@@ -92,6 +90,9 @@ const R3F = () => {
|
||||
const dof3 = useRef(null);
|
||||
const dof4 = useRef(null);
|
||||
const galaxy1 = useRef(null);
|
||||
const nomad = useRef(null);
|
||||
const jetsetter = useRef(null);
|
||||
const octoEasterEgg = useRef(null);
|
||||
const camera = useRef();
|
||||
const cameraGroup = useRef();
|
||||
const rimLight = useRef({ x: 0, y: 0 });
|
||||
@@ -237,7 +238,7 @@ const R3F = () => {
|
||||
gsap.to(cameraGroup.current.position, {
|
||||
duration: 1.5,
|
||||
ease: "power2.inOut",
|
||||
z: -1,
|
||||
z: -0.2,
|
||||
});
|
||||
break;
|
||||
|
||||
@@ -296,7 +297,26 @@ const R3F = () => {
|
||||
cameraGroup.current.position.y +=
|
||||
(parallaxY - cameraGroup.current.position.y) * 5 * deltaTime;
|
||||
|
||||
rimLight.current.position.y = cameraGroup.current.position.y;
|
||||
// rimLight.current.position.y = (-scrollY.current / sizes.current.height) * objectsDistance;
|
||||
|
||||
if (nomad.current) {
|
||||
nomad.current.position.y = -1.5 - Math.cos(elapsedTime * 0.1) * Math.PI * 0.05;
|
||||
|
||||
// group.current.rotation.y = elapsedTime * 0.03;
|
||||
nomad.current.rotation.z = -0.05 - Math.sin(elapsedTime * 0.3) * Math.PI * 0.03;
|
||||
}
|
||||
|
||||
if (jetsetter.current) {
|
||||
jetsetter.current.position.y = -1 - Math.cos(elapsedTime * 0.1) * Math.PI * 0.05;
|
||||
|
||||
// group.current.rotation.y = elapsedTime * 0.03;
|
||||
jetsetter.current.rotation.z = -0.05 - Math.sin(elapsedTime * 0.3) * Math.PI * 0.03;
|
||||
}
|
||||
if (octoEasterEgg.current) {
|
||||
octoEasterEgg.current.position.x = -3.5 + Math.sin(elapsedTime * 0.9) * Math.PI * 0.05;
|
||||
octoEasterEgg.current.position.y = -1.5 - Math.cos(elapsedTime * 0.1) * Math.PI * 0.5;
|
||||
octoEasterEgg.current.rotation.z = -elapsedTime * 0.06;
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
@@ -304,34 +324,20 @@ const R3F = () => {
|
||||
<>
|
||||
<group ref={cameraGroup}>
|
||||
<PerspectiveCamera ref={camera} makeDefault aspect={sizes.width / sizes.height} position={[0, 0, 6]} far={1000} filmGauge={53} />
|
||||
<rectAreaLight
|
||||
ref={rimLight}
|
||||
width={6}
|
||||
height={2}
|
||||
intensity={3}
|
||||
color="pink"
|
||||
position={[0, 0, 1.5]}
|
||||
rotation={[0, 0, 0]}
|
||||
castShadow
|
||||
/>
|
||||
|
||||
<ambientLight
|
||||
intensity={0.2}
|
||||
color="pink"
|
||||
castShadow
|
||||
/>
|
||||
|
||||
<Stats />
|
||||
{/* <Stats /> */}
|
||||
</group>
|
||||
|
||||
<Suspense fallback={<CanvasLoader />}>
|
||||
<Galaxy
|
||||
dof={dof}
|
||||
parameters={galaxy5Params}
|
||||
nucleus={false} helper={false}
|
||||
position={[0, -3, -20]} />
|
||||
position={[0, -3, -17]} />
|
||||
|
||||
<R3FSceneSection name="SectionOne" count={0}>
|
||||
<OctoEasterEgg animate={true} />
|
||||
<group ref={octoEasterEgg}>
|
||||
<OctoEasterEgg/>
|
||||
</group>
|
||||
<Galaxy dof={dof} parameters={galaxy1Params} position={[6, 0, -13]} rotation={[4.8, 4.15, 4.75]} />
|
||||
</R3FSceneSection>
|
||||
|
||||
@@ -348,18 +354,25 @@ const R3F = () => {
|
||||
</R3FSceneSection>
|
||||
|
||||
<R3FSceneSection name="SectionFive" count={4}>
|
||||
<NomadVox animate={true} position={[2, -1, 0.3]} rotation={[-Math.PI / 0.51, Math.PI / 4.5, 0]} />
|
||||
<group ref={nomad} receiveShadow>
|
||||
<NomadVox route='/cv' position={[1.75, 0.5, 0.3]} rotation={[-Math.PI / 0.51, Math.PI / 4.5, 0]} />
|
||||
</group>
|
||||
</R3FSceneSection>
|
||||
|
||||
<R3FSceneSection name="SectionSix" count={5}>
|
||||
<OctoPetVox route='/cv' position={[0, -.8, 0]} animate={true} rotation={[-Math.PI / 0.51, Math.PI / 4.5, 0]} />
|
||||
<BabyEarthVox route='/cv' position={[-1.5, -.8, -2]} animate={true} rotation={[-Math.PI / 0.51, Math.PI / 4.5, 0]} />
|
||||
<OctoPetVox position={[0, -1.8, 0]} animate={true} rotation={[-Math.PI / 0.51, Math.PI / 4.5, 0]} />
|
||||
<BabyEarthVox position={[-1.5, -.8, -2]} animate={true} rotation={[-Math.PI / 0.51, Math.PI / 4.5, 0]} />
|
||||
<Galaxy dof={dof} parameters={galaxy3Params} position={[6, -6.5, -15]} />
|
||||
</R3FSceneSection>
|
||||
|
||||
<R3FSceneSection name="SectionSeven" count={6}>
|
||||
<JetsetterVox route='/cv' animate={false} position={[-2, -1.8, 0]} rotation={[-Math.PI / .1, Math.PI / 6.5, 0]} />
|
||||
</R3FSceneSection>
|
||||
<group ref={jetsetter}>
|
||||
<JetsetterVox animate={true} position={[-2, -1.8, 0]} rotation={[-Math.PI / .1, Math.PI / 6.5, 0]}
|
||||
/>
|
||||
</group>
|
||||
<Galaxy dof={dof} parameters={galaxy4Params} position={[3, -1.5, -2]} />
|
||||
</R3FSceneSection>
|
||||
</Suspense>
|
||||
</>
|
||||
)
|
||||
}
|
||||
@@ -367,7 +380,6 @@ const R3F = () => {
|
||||
const Page = () => {
|
||||
return (
|
||||
<>
|
||||
|
||||
<DOM />
|
||||
{/* @ts-ignore */}
|
||||
<R3F r3f />
|
||||
|
||||
322
yarn.lock
322
yarn.lock
@@ -1523,6 +1523,13 @@
|
||||
dependencies:
|
||||
commander "^2.15.1"
|
||||
|
||||
"@cld-apis/utils@^0.2.0":
|
||||
version "0.2.0"
|
||||
resolved "https://registry.yarnpkg.com/@cld-apis/utils/-/utils-0.2.0.tgz#2a98d77f546bc968b6234959dec804b9953dbb94"
|
||||
integrity sha512-WBhOZ+wz93G/vsqkfmIBsPYf7FH4i5ZKN3QYlUfg9Ni5A2E09CCfsNG6RUuGeLjDPaFXFbta1rkNf3+2hFlavQ==
|
||||
dependencies:
|
||||
snake-case "^3.0.4"
|
||||
|
||||
"@ctrl/tinycolor@^3.4.0":
|
||||
version "3.4.1"
|
||||
resolved "https://registry.yarnpkg.com/@ctrl/tinycolor/-/tinycolor-3.4.1.tgz#75b4c27948c81e88ccd3a8902047bcd797f38d32"
|
||||
@@ -3420,7 +3427,7 @@ any-signal@^2.1.0:
|
||||
abort-controller "^3.0.0"
|
||||
native-abort-controller "^1.0.3"
|
||||
|
||||
aproba@^1.1.1:
|
||||
aproba@^1.0.3, aproba@^1.1.1:
|
||||
version "1.2.0"
|
||||
resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a"
|
||||
integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==
|
||||
@@ -3437,6 +3444,14 @@ archive-type@^4.0.0:
|
||||
dependencies:
|
||||
file-type "^4.2.0"
|
||||
|
||||
are-we-there-yet@~1.1.2:
|
||||
version "1.1.7"
|
||||
resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz#b15474a932adab4ff8a50d9adfa7e4e926f21146"
|
||||
integrity sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==
|
||||
dependencies:
|
||||
delegates "^1.0.0"
|
||||
readable-stream "^2.0.6"
|
||||
|
||||
argparse@^1.0.7:
|
||||
version "1.0.10"
|
||||
resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911"
|
||||
@@ -3848,7 +3863,7 @@ bl@^2.2.1:
|
||||
readable-stream "^2.3.5"
|
||||
safe-buffer "^5.1.1"
|
||||
|
||||
bl@^4.0.0:
|
||||
bl@^4.0.0, bl@^4.0.3:
|
||||
version "4.1.0"
|
||||
resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a"
|
||||
integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==
|
||||
@@ -4308,7 +4323,7 @@ cli-cursor@^3.1.0:
|
||||
dependencies:
|
||||
restore-cursor "^3.1.0"
|
||||
|
||||
cli-progress@^3.4.0, cli-progress@^3.9.0:
|
||||
cli-progress@^3.10.0, cli-progress@^3.4.0, cli-progress@^3.9.0:
|
||||
version "3.10.0"
|
||||
resolved "https://registry.yarnpkg.com/cli-progress/-/cli-progress-3.10.0.tgz#63fd9d6343c598c93542fdfa3563a8b59887d78a"
|
||||
integrity sha512-kLORQrhYCAtUPLZxqsAt2YJGOvRdt34+O6jl5cQGb7iF3dM55FQZlTR+rQyIK9JUcO9bBMwZsTlND+3dmFU2Cw==
|
||||
@@ -4405,6 +4420,13 @@ clone-response@1.0.2:
|
||||
dependencies:
|
||||
mimic-response "^1.0.0"
|
||||
|
||||
cloudinary-build-url@^0.2.4:
|
||||
version "0.2.4"
|
||||
resolved "https://registry.yarnpkg.com/cloudinary-build-url/-/cloudinary-build-url-0.2.4.tgz#465889847cbd846ac36baafcb90e3b6d93e51ee2"
|
||||
integrity sha512-Wi0aZPHOa90xDCCC4k9eoTVPIm3aWNyycO+rJUXvOyusQqmkPSprHSuJh3s2zNxEtuGj24aCM13iLDpilWMpSw==
|
||||
dependencies:
|
||||
"@cld-apis/utils" "^0.2.0"
|
||||
|
||||
coa@^2.0.2:
|
||||
version "2.0.2"
|
||||
resolved "https://registry.yarnpkg.com/coa/-/coa-2.0.2.tgz#43f6c21151b4ef2bf57187db0d73de229e3e7ec3"
|
||||
@@ -4414,6 +4436,11 @@ coa@^2.0.2:
|
||||
chalk "^2.4.1"
|
||||
q "^1.1.2"
|
||||
|
||||
code-point-at@^1.0.0:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77"
|
||||
integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=
|
||||
|
||||
collection-visit@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0"
|
||||
@@ -4441,11 +4468,27 @@ color-name@1.1.3:
|
||||
resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
|
||||
integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=
|
||||
|
||||
color-name@~1.1.4:
|
||||
color-name@^1.0.0, color-name@~1.1.4:
|
||||
version "1.1.4"
|
||||
resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
|
||||
integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
|
||||
|
||||
color-string@^1.9.0:
|
||||
version "1.9.0"
|
||||
resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.9.0.tgz#63b6ebd1bec11999d1df3a79a7569451ac2be8aa"
|
||||
integrity sha512-9Mrz2AQLefkH1UvASKj6v6hj/7eWgjnT/cVsR8CumieLoT+g900exWeNogqtweI8dxloXN9BDQTYro1oWu/5CQ==
|
||||
dependencies:
|
||||
color-name "^1.0.0"
|
||||
simple-swizzle "^0.2.2"
|
||||
|
||||
color@^4.2.3:
|
||||
version "4.2.3"
|
||||
resolved "https://registry.yarnpkg.com/color/-/color-4.2.3.tgz#d781ecb5e57224ee43ea9627560107c0e0c6463a"
|
||||
integrity sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==
|
||||
dependencies:
|
||||
color-convert "^2.0.1"
|
||||
color-string "^1.9.0"
|
||||
|
||||
colord@^2.9.2:
|
||||
version "2.9.2"
|
||||
resolved "https://registry.yarnpkg.com/colord/-/colord-2.9.2.tgz#25e2bacbbaa65991422c07ea209e2089428effb1"
|
||||
@@ -4543,6 +4586,11 @@ config-chain@^1.1.11:
|
||||
ini "^1.3.4"
|
||||
proto-list "~1.2.1"
|
||||
|
||||
console-control-strings@^1.0.0, console-control-strings@~1.1.0:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e"
|
||||
integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=
|
||||
|
||||
console-stream@^0.1.1:
|
||||
version "0.1.1"
|
||||
resolved "https://registry.yarnpkg.com/console-stream/-/console-stream-0.1.1.tgz#a095fe07b20465955f2fafd28b5d72bccd949d44"
|
||||
@@ -4866,6 +4914,13 @@ decompress-response@^3.2.0, decompress-response@^3.3.0:
|
||||
dependencies:
|
||||
mimic-response "^1.0.0"
|
||||
|
||||
decompress-response@^6.0.0:
|
||||
version "6.0.0"
|
||||
resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc"
|
||||
integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==
|
||||
dependencies:
|
||||
mimic-response "^3.1.0"
|
||||
|
||||
decompress-tar@^4.0.0, decompress-tar@^4.1.0, decompress-tar@^4.1.1:
|
||||
version "4.1.1"
|
||||
resolved "https://registry.yarnpkg.com/decompress-tar/-/decompress-tar-4.1.1.tgz#718cbd3fcb16209716e70a26b84e7ba4592e5af1"
|
||||
@@ -4919,6 +4974,11 @@ decompress@^4.0.0, decompress@^4.2.0:
|
||||
pify "^2.3.0"
|
||||
strip-dirs "^2.0.0"
|
||||
|
||||
deep-extend@^0.6.0:
|
||||
version "0.6.0"
|
||||
resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac"
|
||||
integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==
|
||||
|
||||
deep-is@^0.1.3, deep-is@~0.1.3:
|
||||
version "0.1.4"
|
||||
resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831"
|
||||
@@ -4959,6 +5019,11 @@ delayed-stream@~1.0.0:
|
||||
resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
|
||||
integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk=
|
||||
|
||||
delegates@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a"
|
||||
integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=
|
||||
|
||||
delimit-stream@0.1.0:
|
||||
version "0.1.0"
|
||||
resolved "https://registry.yarnpkg.com/delimit-stream/-/delimit-stream-0.1.0.tgz#9b8319477c0e5f8aeb3ce357ae305fc25ea1cd2b"
|
||||
@@ -4976,6 +5041,11 @@ detect-gpu@^4.0.14:
|
||||
dependencies:
|
||||
webgl-constants "^1.1.1"
|
||||
|
||||
detect-libc@^2.0.0, detect-libc@^2.0.1:
|
||||
version "2.0.1"
|
||||
resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.0.1.tgz#e1897aa88fa6ad197862937fbc0441ef352ee0cd"
|
||||
integrity sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==
|
||||
|
||||
detect-node-es@^1.1.0:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/detect-node-es/-/detect-node-es-1.1.0.tgz#163acdf643330caa0b4cd7c21e7ee7755d6fa493"
|
||||
@@ -5246,7 +5316,7 @@ encoding@^0.1.13:
|
||||
dependencies:
|
||||
iconv-lite "^0.6.2"
|
||||
|
||||
end-of-stream@^1.0.0, end-of-stream@^1.1.0:
|
||||
end-of-stream@^1.0.0, end-of-stream@^1.1.0, end-of-stream@^1.4.1:
|
||||
version "1.4.4"
|
||||
resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0"
|
||||
integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==
|
||||
@@ -5843,6 +5913,11 @@ expand-brackets@^2.1.4:
|
||||
snapdragon "^0.8.1"
|
||||
to-regex "^3.0.1"
|
||||
|
||||
expand-template@^2.0.3:
|
||||
version "2.0.3"
|
||||
resolved "https://registry.yarnpkg.com/expand-template/-/expand-template-2.0.3.tgz#6e14b3fcee0f3a6340ecb57d2e8918692052a47c"
|
||||
integrity sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==
|
||||
|
||||
ext-list@^2.0.0:
|
||||
version "2.2.2"
|
||||
resolved "https://registry.yarnpkg.com/ext-list/-/ext-list-2.2.2.tgz#0b98e64ed82f5acf0f2931babf69212ef52ddd37"
|
||||
@@ -6403,6 +6478,20 @@ fuzzy@^0.1.3:
|
||||
resolved "https://registry.yarnpkg.com/fuzzy/-/fuzzy-0.1.3.tgz#4c76ec2ff0ac1a36a9dccf9a00df8623078d4ed8"
|
||||
integrity sha1-THbsL/CsGjap3M+aAN+GIweNTtg=
|
||||
|
||||
gauge@~2.7.3:
|
||||
version "2.7.4"
|
||||
resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7"
|
||||
integrity sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=
|
||||
dependencies:
|
||||
aproba "^1.0.3"
|
||||
console-control-strings "^1.0.0"
|
||||
has-unicode "^2.0.0"
|
||||
object-assign "^4.1.0"
|
||||
signal-exit "^3.0.0"
|
||||
string-width "^1.0.1"
|
||||
strip-ansi "^3.0.1"
|
||||
wide-align "^1.1.0"
|
||||
|
||||
gensync@^1.0.0-beta.2:
|
||||
version "1.0.0-beta.2"
|
||||
resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0"
|
||||
@@ -6511,6 +6600,11 @@ gifwrap@^0.9.2:
|
||||
image-q "^4.0.0"
|
||||
omggif "^1.0.10"
|
||||
|
||||
github-from-package@0.0.0:
|
||||
version "0.0.0"
|
||||
resolved "https://registry.yarnpkg.com/github-from-package/-/github-from-package-0.0.0.tgz#97fb5d96bfde8973313f20e8288ef9a167fa64ce"
|
||||
integrity sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4=
|
||||
|
||||
glob-parent@^3.1.0:
|
||||
version "3.1.0"
|
||||
resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae"
|
||||
@@ -6920,6 +7014,11 @@ has-tostringtag@^1.0.0:
|
||||
dependencies:
|
||||
has-symbols "^1.0.2"
|
||||
|
||||
has-unicode@^2.0.0:
|
||||
version "2.0.1"
|
||||
resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9"
|
||||
integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=
|
||||
|
||||
has-value@^0.3.1:
|
||||
version "0.3.1"
|
||||
resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f"
|
||||
@@ -7254,7 +7353,7 @@ inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1,
|
||||
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
|
||||
integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
|
||||
|
||||
ini@^1.3.4:
|
||||
ini@^1.3.4, ini@~1.3.0:
|
||||
version "1.3.8"
|
||||
resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c"
|
||||
integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==
|
||||
@@ -7540,6 +7639,11 @@ is-arrayish@^0.2.1:
|
||||
resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
|
||||
integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=
|
||||
|
||||
is-arrayish@^0.3.1:
|
||||
version "0.3.2"
|
||||
resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03"
|
||||
integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==
|
||||
|
||||
is-bigint@^1.0.1:
|
||||
version "1.0.4"
|
||||
resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3"
|
||||
@@ -7655,6 +7759,13 @@ is-finite@^1.0.0:
|
||||
resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.1.0.tgz#904135c77fb42c0641d6aa1bcdbc4daa8da082f3"
|
||||
integrity sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==
|
||||
|
||||
is-fullwidth-code-point@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb"
|
||||
integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs=
|
||||
dependencies:
|
||||
number-is-nan "^1.0.0"
|
||||
|
||||
is-fullwidth-code-point@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f"
|
||||
@@ -8734,6 +8845,11 @@ mimic-response@^1.0.0:
|
||||
resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b"
|
||||
integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==
|
||||
|
||||
mimic-response@^3.1.0:
|
||||
version "3.1.0"
|
||||
resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9"
|
||||
integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==
|
||||
|
||||
min-document@^2.19.0:
|
||||
version "2.19.0"
|
||||
resolved "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685"
|
||||
@@ -8765,7 +8881,7 @@ minimatch@^3.0.4, minimatch@^3.1.2:
|
||||
dependencies:
|
||||
brace-expansion "^1.1.7"
|
||||
|
||||
minimist@^1.1.3, minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6:
|
||||
minimist@^1.1.3, minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.5, minimist@^1.2.6:
|
||||
version "1.2.6"
|
||||
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44"
|
||||
integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==
|
||||
@@ -8814,6 +8930,11 @@ mixin-deep@^1.2.0:
|
||||
for-in "^1.0.2"
|
||||
is-extendable "^1.0.1"
|
||||
|
||||
mkdirp-classic@^0.5.2, mkdirp-classic@^0.5.3:
|
||||
version "0.5.3"
|
||||
resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113"
|
||||
integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==
|
||||
|
||||
mkdirp@^0.5.1, mkdirp@~0.5.1:
|
||||
version "0.5.6"
|
||||
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6"
|
||||
@@ -9012,6 +9133,11 @@ nanomatch@^1.2.9:
|
||||
snapdragon "^0.8.1"
|
||||
to-regex "^3.0.1"
|
||||
|
||||
napi-build-utils@^1.0.1:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/napi-build-utils/-/napi-build-utils-1.0.2.tgz#b1fddc0b2c46e380a0b7a76f984dd47c41a13806"
|
||||
integrity sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==
|
||||
|
||||
native-abort-controller@^1.0.3:
|
||||
version "1.0.4"
|
||||
resolved "https://registry.yarnpkg.com/native-abort-controller/-/native-abort-controller-1.0.4.tgz#39920155cc0c18209ff93af5bc90be856143f251"
|
||||
@@ -9037,6 +9163,22 @@ next-compose-plugins@^2.2.1:
|
||||
resolved "https://registry.yarnpkg.com/next-compose-plugins/-/next-compose-plugins-2.2.1.tgz#020fc53f275a7e719d62521bef4300fbb6fde5ab"
|
||||
integrity sha512-OjJ+fV15FXO2uQXQagLD4C0abYErBjyjE0I0FHpOEIB8upw0hg1ldFP6cqHTJBH1cZqy96OeR3u1dJ+Ez2D4Bg==
|
||||
|
||||
next-image-export-optimizer@^0.9.5:
|
||||
version "0.9.5"
|
||||
resolved "https://registry.yarnpkg.com/next-image-export-optimizer/-/next-image-export-optimizer-0.9.5.tgz#4adc86b155f8145b6d3d52a01992e068bad899ca"
|
||||
integrity sha512-HmRcxX96RQCL+eOsxR854XAcbBlTZMT0uN9xEZp3kwNge9UE7VIPmycCl6Lg5ZYfaAqxUQxtx+vpCZk2Igu9oQ==
|
||||
dependencies:
|
||||
cli-progress "^3.10.0"
|
||||
sharp "^0.30.1"
|
||||
|
||||
next-images@^1.8.4:
|
||||
version "1.8.4"
|
||||
resolved "https://registry.yarnpkg.com/next-images/-/next-images-1.8.4.tgz#3b3d4840dae50893fc2a15906266532ec5fa58f0"
|
||||
integrity sha512-E6JV+aMxeUCh8A+cwn1xgmlh/zINSW4JC/XLNbM+PWQd5LBdfB+m1IDCAfNnGOKMo96kzw+4LsKxnX/Kldw78Q==
|
||||
dependencies:
|
||||
file-loader "^6.2.0"
|
||||
url-loader "^4.1.0"
|
||||
|
||||
next-offline@^5.0.5:
|
||||
version "5.0.5"
|
||||
resolved "https://registry.yarnpkg.com/next-offline/-/next-offline-5.0.5.tgz#91b2792f92a65e33eee00c9ab0dd1af9b9f71caa"
|
||||
@@ -9100,11 +9242,23 @@ no-case@^3.0.4:
|
||||
lower-case "^2.0.2"
|
||||
tslib "^2.0.3"
|
||||
|
||||
node-abi@^3.3.0:
|
||||
version "3.15.0"
|
||||
resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-3.15.0.tgz#cd9ac8c58328129b49998cc6fa16aa5506152716"
|
||||
integrity sha512-Ic6z/j6I9RLm4ov7npo1I48UQr2BEyFCqh6p7S1dhEx9jPO0GPGq/e2Rb7x7DroQrmiVMz/Bw1vJm9sPAl2nxA==
|
||||
dependencies:
|
||||
semver "^7.3.5"
|
||||
|
||||
node-addon-api@^2.0.0:
|
||||
version "2.0.2"
|
||||
resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-2.0.2.tgz#432cfa82962ce494b132e9d72a15b29f71ff5d32"
|
||||
integrity sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==
|
||||
|
||||
node-addon-api@^4.3.0:
|
||||
version "4.3.0"
|
||||
resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-4.3.0.tgz#52a1a0b475193e0928e98e0426a0d1254782b77f"
|
||||
integrity sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==
|
||||
|
||||
node-fetch@2.6.7, node-fetch@^2.6.0, node-fetch@^2.6.1:
|
||||
version "2.6.7"
|
||||
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad"
|
||||
@@ -9193,6 +9347,16 @@ npm-run-path@^5.1.0:
|
||||
dependencies:
|
||||
path-key "^4.0.0"
|
||||
|
||||
npmlog@^4.0.1:
|
||||
version "4.1.2"
|
||||
resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b"
|
||||
integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==
|
||||
dependencies:
|
||||
are-we-there-yet "~1.1.2"
|
||||
console-control-strings "~1.1.0"
|
||||
gauge "~2.7.3"
|
||||
set-blocking "~2.0.0"
|
||||
|
||||
nth-check@^1.0.2:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c"
|
||||
@@ -9207,6 +9371,11 @@ nth-check@^2.0.1:
|
||||
dependencies:
|
||||
boolbase "^1.0.0"
|
||||
|
||||
number-is-nan@^1.0.0:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d"
|
||||
integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=
|
||||
|
||||
number-to-bn@1.7.0:
|
||||
version "1.7.0"
|
||||
resolved "https://registry.yarnpkg.com/number-to-bn/-/number-to-bn-1.7.0.tgz#bb3623592f7e5f9e0030b1977bd41a0c53fe1ea0"
|
||||
@@ -9881,6 +10050,25 @@ potrace@^2.1.2:
|
||||
dependencies:
|
||||
jimp "^0.14.0"
|
||||
|
||||
prebuild-install@^7.0.1:
|
||||
version "7.1.0"
|
||||
resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-7.1.0.tgz#991b6ac16c81591ba40a6d5de93fb33673ac1370"
|
||||
integrity sha512-CNcMgI1xBypOyGqjp3wOc8AAo1nMhZS3Cwd3iHIxOdAUbb+YxdNuM4Z5iIrZ8RLvOsf3F3bl7b7xGq6DjQoNYA==
|
||||
dependencies:
|
||||
detect-libc "^2.0.0"
|
||||
expand-template "^2.0.3"
|
||||
github-from-package "0.0.0"
|
||||
minimist "^1.2.3"
|
||||
mkdirp-classic "^0.5.3"
|
||||
napi-build-utils "^1.0.1"
|
||||
node-abi "^3.3.0"
|
||||
npmlog "^4.0.1"
|
||||
pump "^3.0.0"
|
||||
rc "^1.2.7"
|
||||
simple-get "^4.0.0"
|
||||
tar-fs "^2.0.0"
|
||||
tunnel-agent "^0.6.0"
|
||||
|
||||
prelude-ls@^1.2.1:
|
||||
version "1.2.1"
|
||||
resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396"
|
||||
@@ -10070,6 +10258,16 @@ raw-loader@^4.0.2:
|
||||
loader-utils "^2.0.0"
|
||||
schema-utils "^3.0.0"
|
||||
|
||||
rc@^1.2.7:
|
||||
version "1.2.8"
|
||||
resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed"
|
||||
integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==
|
||||
dependencies:
|
||||
deep-extend "^0.6.0"
|
||||
ini "~1.3.0"
|
||||
minimist "^1.2.0"
|
||||
strip-json-comments "~2.0.1"
|
||||
|
||||
react-clientside-effect@^1.2.5:
|
||||
version "1.2.5"
|
||||
resolved "https://registry.yarnpkg.com/react-clientside-effect/-/react-clientside-effect-1.2.5.tgz#e2c4dc3c9ee109f642fac4f5b6e9bf5bcd2219a3"
|
||||
@@ -10229,7 +10427,7 @@ read-pkg@^1.0.0:
|
||||
normalize-package-data "^2.3.2"
|
||||
path-type "^1.0.0"
|
||||
|
||||
"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.0, readable-stream@^2.3.5, readable-stream@^2.3.6, readable-stream@~2.3.6:
|
||||
"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.0, readable-stream@^2.3.5, readable-stream@^2.3.6, readable-stream@~2.3.6:
|
||||
version "2.3.7"
|
||||
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57"
|
||||
integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==
|
||||
@@ -10767,7 +10965,7 @@ semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0:
|
||||
resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
|
||||
integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
|
||||
|
||||
semver@^7.3.2, semver@^7.3.4, semver@^7.3.5:
|
||||
semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.3.7:
|
||||
version "7.3.7"
|
||||
resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.7.tgz#12c5b649afdbf9049707796e22a4028814ce523f"
|
||||
integrity sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==
|
||||
@@ -10781,7 +10979,7 @@ serialize-javascript@^4.0.0:
|
||||
dependencies:
|
||||
randombytes "^2.1.0"
|
||||
|
||||
set-blocking@^2.0.0:
|
||||
set-blocking@^2.0.0, set-blocking@~2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
|
||||
integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc=
|
||||
@@ -10814,6 +11012,20 @@ shallow-copy@0.0.1:
|
||||
resolved "https://registry.yarnpkg.com/shallow-copy/-/shallow-copy-0.0.1.tgz#415f42702d73d810330292cc5ee86eae1a11a170"
|
||||
integrity sha1-QV9CcC1z2BAzApLMXuhurhoRoXA=
|
||||
|
||||
sharp@^0.30.1:
|
||||
version "0.30.4"
|
||||
resolved "https://registry.yarnpkg.com/sharp/-/sharp-0.30.4.tgz#73d9daa63bbc20da189c9328d75d5d395fc8fb73"
|
||||
integrity sha512-3Onig53Y6lji4NIZo69s14mERXXY/GV++6CzOYx/Rd8bnTwbhFbL09WZd7Ag/CCnA0WxFID8tkY0QReyfL6v0Q==
|
||||
dependencies:
|
||||
color "^4.2.3"
|
||||
detect-libc "^2.0.1"
|
||||
node-addon-api "^4.3.0"
|
||||
prebuild-install "^7.0.1"
|
||||
semver "^7.3.7"
|
||||
simple-get "^4.0.1"
|
||||
tar-fs "^2.1.1"
|
||||
tunnel-agent "^0.6.0"
|
||||
|
||||
shebang-command@^1.2.0:
|
||||
version "1.2.0"
|
||||
resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea"
|
||||
@@ -10859,6 +11071,27 @@ signed-varint@^2.0.1:
|
||||
dependencies:
|
||||
varint "~5.0.0"
|
||||
|
||||
simple-concat@^1.0.0:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.1.tgz#f46976082ba35c2263f1c8ab5edfe26c41c9552f"
|
||||
integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==
|
||||
|
||||
simple-get@^4.0.0, simple-get@^4.0.1:
|
||||
version "4.0.1"
|
||||
resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-4.0.1.tgz#4a39db549287c979d352112fa03fd99fd6bc3543"
|
||||
integrity sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==
|
||||
dependencies:
|
||||
decompress-response "^6.0.0"
|
||||
once "^1.3.1"
|
||||
simple-concat "^1.0.0"
|
||||
|
||||
simple-swizzle@^0.2.2:
|
||||
version "0.2.2"
|
||||
resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a"
|
||||
integrity sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=
|
||||
dependencies:
|
||||
is-arrayish "^0.3.1"
|
||||
|
||||
sirv@^1.0.7:
|
||||
version "1.0.19"
|
||||
resolved "https://registry.yarnpkg.com/sirv/-/sirv-1.0.19.tgz#1d73979b38c7fe91fcba49c85280daa9c2363b49"
|
||||
@@ -10887,6 +11120,14 @@ slice-ansi@^2.1.0:
|
||||
astral-regex "^1.0.0"
|
||||
is-fullwidth-code-point "^2.0.0"
|
||||
|
||||
snake-case@^3.0.4:
|
||||
version "3.0.4"
|
||||
resolved "https://registry.yarnpkg.com/snake-case/-/snake-case-3.0.4.tgz#4f2bbd568e9935abdfd593f34c691dadb49c452c"
|
||||
integrity sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==
|
||||
dependencies:
|
||||
dot-case "^3.0.4"
|
||||
tslib "^2.0.3"
|
||||
|
||||
snapdragon-node@^2.0.1:
|
||||
version "2.1.1"
|
||||
resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b"
|
||||
@@ -11121,6 +11362,24 @@ strict-uri-encode@^1.0.0:
|
||||
resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713"
|
||||
integrity sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=
|
||||
|
||||
string-width@^1.0.1:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3"
|
||||
integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=
|
||||
dependencies:
|
||||
code-point-at "^1.0.0"
|
||||
is-fullwidth-code-point "^1.0.0"
|
||||
strip-ansi "^3.0.0"
|
||||
|
||||
"string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0:
|
||||
version "4.2.3"
|
||||
resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
|
||||
integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
|
||||
dependencies:
|
||||
emoji-regex "^8.0.0"
|
||||
is-fullwidth-code-point "^3.0.0"
|
||||
strip-ansi "^6.0.1"
|
||||
|
||||
string-width@^2.1.0:
|
||||
version "2.1.1"
|
||||
resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e"
|
||||
@@ -11138,15 +11397,6 @@ string-width@^3.0.0:
|
||||
is-fullwidth-code-point "^2.0.0"
|
||||
strip-ansi "^5.1.0"
|
||||
|
||||
string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0:
|
||||
version "4.2.3"
|
||||
resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
|
||||
integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
|
||||
dependencies:
|
||||
emoji-regex "^8.0.0"
|
||||
is-fullwidth-code-point "^3.0.0"
|
||||
strip-ansi "^6.0.1"
|
||||
|
||||
string.prototype.codepointat@^0.2.1:
|
||||
version "0.2.1"
|
||||
resolved "https://registry.yarnpkg.com/string.prototype.codepointat/-/string.prototype.codepointat-0.2.1.tgz#004ad44c8afc727527b108cd462b4d971cd469bc"
|
||||
@@ -11210,7 +11460,7 @@ stringify-object@^3.3.0:
|
||||
is-obj "^1.0.1"
|
||||
is-regexp "^1.0.0"
|
||||
|
||||
strip-ansi@^3.0.0:
|
||||
strip-ansi@^3.0.0, strip-ansi@^3.0.1:
|
||||
version "3.0.1"
|
||||
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf"
|
||||
integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=
|
||||
@@ -11294,7 +11544,7 @@ strip-indent@^1.0.1:
|
||||
dependencies:
|
||||
get-stdin "^4.0.1"
|
||||
|
||||
strip-json-comments@^2.0.1:
|
||||
strip-json-comments@^2.0.1, strip-json-comments@~2.0.1:
|
||||
version "2.0.1"
|
||||
resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"
|
||||
integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo=
|
||||
@@ -11419,6 +11669,16 @@ tapable@^2.0.0:
|
||||
resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0"
|
||||
integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==
|
||||
|
||||
tar-fs@^2.0.0, tar-fs@^2.1.1:
|
||||
version "2.1.1"
|
||||
resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.1.1.tgz#489a15ab85f1f0befabb370b7de4f9eb5cbe8784"
|
||||
integrity sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==
|
||||
dependencies:
|
||||
chownr "^1.1.1"
|
||||
mkdirp-classic "^0.5.2"
|
||||
pump "^3.0.0"
|
||||
tar-stream "^2.1.4"
|
||||
|
||||
tar-stream@^1.5.2:
|
||||
version "1.6.2"
|
||||
resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-1.6.2.tgz#8ea55dab37972253d9a9af90fdcd559ae435c555"
|
||||
@@ -11432,6 +11692,17 @@ tar-stream@^1.5.2:
|
||||
to-buffer "^1.1.1"
|
||||
xtend "^4.0.0"
|
||||
|
||||
tar-stream@^2.1.4:
|
||||
version "2.2.0"
|
||||
resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287"
|
||||
integrity sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==
|
||||
dependencies:
|
||||
bl "^4.0.3"
|
||||
end-of-stream "^1.4.1"
|
||||
fs-constants "^1.0.0"
|
||||
inherits "^2.0.3"
|
||||
readable-stream "^3.1.1"
|
||||
|
||||
tar@^6.1.0:
|
||||
version "6.1.11"
|
||||
resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.11.tgz#6760a38f003afa1b2ffd0ffe9e9abbd0eab3d621"
|
||||
@@ -11887,7 +12158,7 @@ url-loader@^1.1.2:
|
||||
mime "^2.0.3"
|
||||
schema-utils "^1.0.0"
|
||||
|
||||
url-loader@^4.1.1:
|
||||
url-loader@^4.1.0, url-loader@^4.1.1:
|
||||
version "4.1.1"
|
||||
resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-4.1.1.tgz#28505e905cae158cf07c92ca622d7f237e70a4e2"
|
||||
integrity sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==
|
||||
@@ -12173,6 +12444,13 @@ which@^2.0.1:
|
||||
dependencies:
|
||||
isexe "^2.0.0"
|
||||
|
||||
wide-align@^1.1.0:
|
||||
version "1.1.5"
|
||||
resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.5.tgz#df1d4c206854369ecf3c9a4898f1b23fbd9d15d3"
|
||||
integrity sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==
|
||||
dependencies:
|
||||
string-width "^1.0.2 || 2 || 3 || 4"
|
||||
|
||||
widest-line@^3.1.0:
|
||||
version "3.1.0"
|
||||
resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-3.1.0.tgz#8292333bbf66cb45ff0de1603b136b7ae1496eca"
|
||||
|
||||
Reference in New Issue
Block a user