@wise/art 2.7.0-beta.1 → 2.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Illustration.css +0 -19
- package/dist/common.d.ts +0 -5
- package/dist/common.d.ts.map +1 -1
- package/dist/index.d.ts +0 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.esm.js +158 -4
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +155 -15
- package/dist/index.js.map +1 -1
- package/package.json +5 -11
- package/src/common.ts +0 -6
- package/src/illustrations/Illustration.css +0 -19
- package/src/index.ts +0 -5
- package/dist/CheckMark-365a1dc6.js +0 -39
- package/dist/CheckMark-365a1dc6.js.map +0 -1
- package/dist/CheckMark-5b996187.esm.js +0 -37
- package/dist/CheckMark-5b996187.esm.js.map +0 -1
- package/dist/Confetti-b6bfa95b.js +0 -36
- package/dist/Confetti-b6bfa95b.js.map +0 -1
- package/dist/Confetti-c865d663.esm.js +0 -34
- package/dist/Confetti-c865d663.esm.js.map +0 -1
- package/dist/Flower-1987844c.esm.js +0 -27
- package/dist/Flower-1987844c.esm.js.map +0 -1
- package/dist/Flower-385aa337.js +0 -29
- package/dist/Flower-385aa337.js.map +0 -1
- package/dist/Globe-b5acfedf.js +0 -45
- package/dist/Globe-b5acfedf.js.map +0 -1
- package/dist/Globe-df8b4bbd.esm.js +0 -43
- package/dist/Globe-df8b4bbd.esm.js.map +0 -1
- package/dist/Graph-bc618890.js +0 -33
- package/dist/Graph-bc618890.js.map +0 -1
- package/dist/Graph-e48b9d55.esm.js +0 -31
- package/dist/Graph-e48b9d55.esm.js.map +0 -1
- package/dist/Jars-b371f7ec.esm.js +0 -50
- package/dist/Jars-b371f7ec.esm.js.map +0 -1
- package/dist/Jars-b80056b7.js +0 -52
- package/dist/Jars-b80056b7.js.map +0 -1
- package/dist/Lock-0d8008b7.esm.js +0 -41
- package/dist/Lock-0d8008b7.esm.js.map +0 -1
- package/dist/Lock-841864c6.js +0 -43
- package/dist/Lock-841864c6.js.map +0 -1
- package/dist/MagnifyingGlass-7b6dda3b.esm.js +0 -30
- package/dist/MagnifyingGlass-7b6dda3b.esm.js.map +0 -1
- package/dist/MagnifyingGlass-de98441e.js +0 -32
- package/dist/MagnifyingGlass-de98441e.js.map +0 -1
- package/dist/Marble-5a115e95.esm.js +0 -42
- package/dist/Marble-5a115e95.esm.js.map +0 -1
- package/dist/Marble-c42785f3.js +0 -44
- package/dist/Marble-c42785f3.js.map +0 -1
- package/dist/MarbleCard-1792cf0c.esm.js +0 -45
- package/dist/MarbleCard-1792cf0c.esm.js.map +0 -1
- package/dist/MarbleCard-50b56966.js +0 -47
- package/dist/MarbleCard-50b56966.js.map +0 -1
- package/dist/MultiCurrency-4735dbb2.esm.js +0 -61
- package/dist/MultiCurrency-4735dbb2.esm.js.map +0 -1
- package/dist/MultiCurrency-fcf4b9a2.js +0 -63
- package/dist/MultiCurrency-fcf4b9a2.js.map +0 -1
- package/dist/Plane-1e15b49c.esm.js +0 -37
- package/dist/Plane-1e15b49c.esm.js.map +0 -1
- package/dist/Plane-91b11234.js +0 -39
- package/dist/Plane-91b11234.js.map +0 -1
- package/dist/Scene-3830de67.esm.js +0 -48
- package/dist/Scene-3830de67.esm.js.map +0 -1
- package/dist/Scene-fa187d3a.js +0 -50
- package/dist/Scene-fa187d3a.js.map +0 -1
- package/dist/illustrations3d/Illustration3d.d.ts +0 -11
- package/dist/illustrations3d/Illustration3d.d.ts.map +0 -1
- package/dist/illustrations3d/Scene.d.ts +0 -9
- package/dist/illustrations3d/Scene.d.ts.map +0 -1
- package/dist/illustrations3d/index.d.ts +0 -5
- package/dist/illustrations3d/index.d.ts.map +0 -1
- package/dist/illustrations3d/models/CheckMark.d.ts +0 -4
- package/dist/illustrations3d/models/CheckMark.d.ts.map +0 -1
- package/dist/illustrations3d/models/Confetti.d.ts +0 -4
- package/dist/illustrations3d/models/Confetti.d.ts.map +0 -1
- package/dist/illustrations3d/models/Flower.d.ts +0 -4
- package/dist/illustrations3d/models/Flower.d.ts.map +0 -1
- package/dist/illustrations3d/models/Globe.d.ts +0 -4
- package/dist/illustrations3d/models/Globe.d.ts.map +0 -1
- package/dist/illustrations3d/models/Graph.d.ts +0 -4
- package/dist/illustrations3d/models/Graph.d.ts.map +0 -1
- package/dist/illustrations3d/models/Jars.d.ts +0 -4
- package/dist/illustrations3d/models/Jars.d.ts.map +0 -1
- package/dist/illustrations3d/models/Lock.d.ts +0 -4
- package/dist/illustrations3d/models/Lock.d.ts.map +0 -1
- package/dist/illustrations3d/models/MagnifyingGlass.d.ts +0 -4
- package/dist/illustrations3d/models/MagnifyingGlass.d.ts.map +0 -1
- package/dist/illustrations3d/models/Marble.d.ts +0 -4
- package/dist/illustrations3d/models/Marble.d.ts.map +0 -1
- package/dist/illustrations3d/models/MarbleCard.d.ts +0 -4
- package/dist/illustrations3d/models/MarbleCard.d.ts.map +0 -1
- package/dist/illustrations3d/models/MultiCurrency.d.ts +0 -4
- package/dist/illustrations3d/models/MultiCurrency.d.ts.map +0 -1
- package/dist/illustrations3d/models/Plane.d.ts +0 -4
- package/dist/illustrations3d/models/Plane.d.ts.map +0 -1
- package/dist/illustrations3d/utils.d.ts +0 -9
- package/dist/illustrations3d/utils.d.ts.map +0 -1
- package/dist/index-36ff762e.js +0 -332
- package/dist/index-36ff762e.js.map +0 -1
- package/dist/index-76341731.esm.js +0 -325
- package/dist/index-76341731.esm.js.map +0 -1
- package/src/illustrations3d/Illustration3d.stories.tsx +0 -89
- package/src/illustrations3d/Illustration3d.tsx +0 -133
- package/src/illustrations3d/Scene.tsx +0 -54
- package/src/illustrations3d/index.ts +0 -6
- package/src/illustrations3d/models/CheckMark.tsx +0 -30
- package/src/illustrations3d/models/Confetti.tsx +0 -29
- package/src/illustrations3d/models/Flower.tsx +0 -24
- package/src/illustrations3d/models/Globe.tsx +0 -41
- package/src/illustrations3d/models/Graph.tsx +0 -26
- package/src/illustrations3d/models/Jars.tsx +0 -47
- package/src/illustrations3d/models/Lock.tsx +0 -38
- package/src/illustrations3d/models/MagnifyingGlass.tsx +0 -30
- package/src/illustrations3d/models/Marble.tsx +0 -47
- package/src/illustrations3d/models/MarbleCard.tsx +0 -50
- package/src/illustrations3d/models/MultiCurrency.tsx +0 -58
- package/src/illustrations3d/models/Plane.tsx +0 -33
- package/src/illustrations3d/utils.ts +0 -68
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index-76341731.esm.js","sources":["../src/flags/Flag.tsx","../src/common.ts","../src/illustrations/Illustration.tsx","../src/illustrations/metadata.ts","../src/illustrations3d/utils.ts","../src/illustrations3d/Illustration3d.tsx"],"sourcesContent":[null,null,null,null,null,null],"names":["unknownFlagName","Flag","code","intrinsicSize","useEffect","setFallback","name","fallback","toLowerCase","detailed","_jsx","src","height","onError","Sizes","LARGE","imageSizes","SMALL","MEDIUM","Illustration","forwardRef","id","alt","loading","className","size","disablePadding","ref","_jsxs","children","_Fragment","width","media","srcSet","defineSrc","descriptor","Assets","useBattery","batteryData","setBatteryData","useState","level","getBatteryData","battery","RenderMode"],"mappings":"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"}
|
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
/* eslint-disable @typescript-eslint/no-unsafe-return */
|
|
2
|
-
import React, { useEffect } from 'react';
|
|
3
|
-
|
|
4
|
-
import { Sizes } from '../common';
|
|
5
|
-
import { Assets } from '../illustrations/metadata';
|
|
6
|
-
|
|
7
|
-
import Illustration3d from './Illustration3d';
|
|
8
|
-
|
|
9
|
-
export default {
|
|
10
|
-
title: '3D Illustrations',
|
|
11
|
-
};
|
|
12
|
-
|
|
13
|
-
export const Confetti = () => {
|
|
14
|
-
return (
|
|
15
|
-
<>
|
|
16
|
-
<Illustration3d name={Assets.CONFETTI} size={Sizes.LARGE} />
|
|
17
|
-
</>
|
|
18
|
-
);
|
|
19
|
-
};
|
|
20
|
-
|
|
21
|
-
export const Globe = () => {
|
|
22
|
-
return (
|
|
23
|
-
<>
|
|
24
|
-
<Illustration3d name={Assets.GLOBE} size={Sizes.LARGE} />
|
|
25
|
-
</>
|
|
26
|
-
);
|
|
27
|
-
};
|
|
28
|
-
|
|
29
|
-
export const Lock = () => {
|
|
30
|
-
return <Illustration3d name={Assets.LOCK} size={Sizes.LARGE} />;
|
|
31
|
-
};
|
|
32
|
-
|
|
33
|
-
export const CheckMark = () => {
|
|
34
|
-
return <Illustration3d name={Assets.CHECK_MARK} size={Sizes.LARGE} />;
|
|
35
|
-
};
|
|
36
|
-
|
|
37
|
-
export const Flower = () => {
|
|
38
|
-
return <Illustration3d name={Assets.FLOWER} size={Sizes.LARGE} />;
|
|
39
|
-
};
|
|
40
|
-
|
|
41
|
-
export const Plane = () => {
|
|
42
|
-
return <Illustration3d name={Assets.PLANE} size={Sizes.LARGE} />;
|
|
43
|
-
};
|
|
44
|
-
|
|
45
|
-
export const Graph = () => {
|
|
46
|
-
return <Illustration3d name={Assets.GRAPH} size={Sizes.LARGE} />;
|
|
47
|
-
};
|
|
48
|
-
|
|
49
|
-
export const Marble = () => {
|
|
50
|
-
return <Illustration3d name={Assets.MARBLE} size={Sizes.LARGE} />;
|
|
51
|
-
};
|
|
52
|
-
|
|
53
|
-
export const MarbleCard = () => {
|
|
54
|
-
return <Illustration3d name={Assets.MARBLE_CARD} size={Sizes.LARGE} />;
|
|
55
|
-
};
|
|
56
|
-
|
|
57
|
-
export const MagnifyingGlass = () => {
|
|
58
|
-
return <Illustration3d name={Assets.MAGNIFYING_GLASS} size={Sizes.LARGE} />;
|
|
59
|
-
};
|
|
60
|
-
|
|
61
|
-
export const Jars = () => {
|
|
62
|
-
return <Illustration3d name={Assets.JARS} size={Sizes.LARGE} />;
|
|
63
|
-
};
|
|
64
|
-
|
|
65
|
-
export const MultiCurrency = () => {
|
|
66
|
-
return <Illustration3d name={Assets.MULTI_CURRENCY} size={Sizes.LARGE} />;
|
|
67
|
-
};
|
|
68
|
-
|
|
69
|
-
export const Fallback = () => {
|
|
70
|
-
// @ts-expect-error navigator has connection property
|
|
71
|
-
const originalNavigator = window.navigator.connection;
|
|
72
|
-
// mock slow internet connection
|
|
73
|
-
// @ts-expect-error navigator has connection property
|
|
74
|
-
window.navigator.connection = { effectiveType: 'slow-2g' };
|
|
75
|
-
|
|
76
|
-
useEffect(() => {
|
|
77
|
-
// cleanup mock on unmount
|
|
78
|
-
// @ts-expect-error navigator has connection property
|
|
79
|
-
return () => (window.navigator.connection = originalNavigator);
|
|
80
|
-
}, [originalNavigator]);
|
|
81
|
-
|
|
82
|
-
return (
|
|
83
|
-
<>
|
|
84
|
-
<Illustration3d name={Assets.LOCK} />
|
|
85
|
-
<br />
|
|
86
|
-
Mock slow internet connection so it fallback to static illustration
|
|
87
|
-
</>
|
|
88
|
-
);
|
|
89
|
-
};
|
|
@@ -1,133 +0,0 @@
|
|
|
1
|
-
/* eslint-disable fp/no-mutation */
|
|
2
|
-
import { clsx } from 'clsx';
|
|
3
|
-
import { lazy, Suspense, useEffect, useState, LazyExoticComponent } from 'react';
|
|
4
|
-
|
|
5
|
-
import { LargeSize, MediumSize, SmallSize, Sizes } from '../common';
|
|
6
|
-
|
|
7
|
-
import Illustration, { Assets } from './../illustrations';
|
|
8
|
-
import { useBattery, isConnectionSlow, isBatteryLow } from './utils';
|
|
9
|
-
|
|
10
|
-
export type Illustration3dNames =
|
|
11
|
-
| 'lock'
|
|
12
|
-
| 'globe'
|
|
13
|
-
| 'confetti'
|
|
14
|
-
| 'check-mark'
|
|
15
|
-
| 'flower'
|
|
16
|
-
| 'graph'
|
|
17
|
-
| 'jars'
|
|
18
|
-
| 'magnifying-glass'
|
|
19
|
-
| 'marble'
|
|
20
|
-
| 'marble-card'
|
|
21
|
-
| 'multi-currency'
|
|
22
|
-
| 'plane';
|
|
23
|
-
|
|
24
|
-
export type Props = {
|
|
25
|
-
name: Illustration3dNames;
|
|
26
|
-
size?: SmallSize | MediumSize | LargeSize;
|
|
27
|
-
className?: string;
|
|
28
|
-
};
|
|
29
|
-
|
|
30
|
-
enum RenderMode {
|
|
31
|
-
INIT,
|
|
32
|
-
FALLBACK,
|
|
33
|
-
ASSET_3D,
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
const Illustration3d = ({ name, size = Sizes.MEDIUM, className }: Props) => {
|
|
37
|
-
const [renderMode, setRenderMode] = useState<RenderMode>(RenderMode.INIT);
|
|
38
|
-
const [inintrinsicSize, setInintrinsicSize] = useState<Props['size']>(size);
|
|
39
|
-
const batteryData = useBattery();
|
|
40
|
-
|
|
41
|
-
useEffect(() => {
|
|
42
|
-
setRenderMode(
|
|
43
|
-
isConnectionSlow() || isBatteryLow(batteryData.level)
|
|
44
|
-
? RenderMode.FALLBACK
|
|
45
|
-
: RenderMode.ASSET_3D,
|
|
46
|
-
);
|
|
47
|
-
const isMobile: boolean =
|
|
48
|
-
(typeof window !== undefined && window?.matchMedia('(max-width: 575px)')?.matches) ?? false;
|
|
49
|
-
if (isMobile) {
|
|
50
|
-
setInintrinsicSize(Sizes.SMALL);
|
|
51
|
-
}
|
|
52
|
-
}, [batteryData]);
|
|
53
|
-
|
|
54
|
-
return (
|
|
55
|
-
<div
|
|
56
|
-
className={clsx(
|
|
57
|
-
'wds-illustration-3d',
|
|
58
|
-
`wds-illustration-3d-${name}`,
|
|
59
|
-
`wds-illustration-3d-${inintrinsicSize as string}`,
|
|
60
|
-
className,
|
|
61
|
-
)}
|
|
62
|
-
>
|
|
63
|
-
{renderMode === RenderMode.INIT ? null : renderMode === RenderMode.ASSET_3D ? (
|
|
64
|
-
<Suspense fallback={null}>{getModel({ name, size: inintrinsicSize })}</Suspense>
|
|
65
|
-
) : (
|
|
66
|
-
<Illustration name={name} size={size} alt="" />
|
|
67
|
-
)}
|
|
68
|
-
</div>
|
|
69
|
-
);
|
|
70
|
-
};
|
|
71
|
-
|
|
72
|
-
function getModel({ name, size }: Props) {
|
|
73
|
-
// @ts-expect-error unknown generic
|
|
74
|
-
let Model: LazyExoticComponent = <></>;
|
|
75
|
-
const Scene = lazy(() => import('./Scene'));
|
|
76
|
-
switch (name) {
|
|
77
|
-
case Assets.LOCK: {
|
|
78
|
-
Model = lazy(() => import('./models/Lock'));
|
|
79
|
-
break;
|
|
80
|
-
}
|
|
81
|
-
case Assets.GLOBE: {
|
|
82
|
-
Model = lazy(() => import('./models/Globe'));
|
|
83
|
-
break;
|
|
84
|
-
}
|
|
85
|
-
case Assets.CONFETTI: {
|
|
86
|
-
Model = lazy(() => import('./models/Confetti'));
|
|
87
|
-
break;
|
|
88
|
-
}
|
|
89
|
-
case Assets.CHECK_MARK: {
|
|
90
|
-
Model = lazy(() => import('./models/CheckMark'));
|
|
91
|
-
break;
|
|
92
|
-
}
|
|
93
|
-
case Assets.FLOWER: {
|
|
94
|
-
Model = lazy(() => import('./models/Flower'));
|
|
95
|
-
break;
|
|
96
|
-
}
|
|
97
|
-
case Assets.PLANE: {
|
|
98
|
-
Model = lazy(() => import('./models/Plane'));
|
|
99
|
-
break;
|
|
100
|
-
}
|
|
101
|
-
case Assets.GRAPH: {
|
|
102
|
-
Model = lazy(() => import('./models/Graph'));
|
|
103
|
-
break;
|
|
104
|
-
}
|
|
105
|
-
case Assets.MARBLE: {
|
|
106
|
-
Model = lazy(() => import('./models/Marble'));
|
|
107
|
-
break;
|
|
108
|
-
}
|
|
109
|
-
case Assets.MARBLE_CARD: {
|
|
110
|
-
Model = lazy(() => import('./models/MarbleCard'));
|
|
111
|
-
break;
|
|
112
|
-
}
|
|
113
|
-
case Assets.MAGNIFYING_GLASS: {
|
|
114
|
-
Model = lazy(() => import('./models/MagnifyingGlass'));
|
|
115
|
-
break;
|
|
116
|
-
}
|
|
117
|
-
case Assets.JARS: {
|
|
118
|
-
Model = lazy(() => import('./models/Jars'));
|
|
119
|
-
break;
|
|
120
|
-
}
|
|
121
|
-
case Assets.MULTI_CURRENCY: {
|
|
122
|
-
Model = lazy(() => import('./models/MultiCurrency'));
|
|
123
|
-
break;
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
return (
|
|
127
|
-
<Scene assetName={name} size={size}>
|
|
128
|
-
<Model />
|
|
129
|
-
</Scene>
|
|
130
|
-
);
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
export default Illustration3d;
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
/* eslint-disable react/forbid-dom-props */
|
|
2
|
-
/* eslint-disable react/function-component-definition */
|
|
3
|
-
import { PerspectiveCamera } from '@react-three/drei';
|
|
4
|
-
import { Canvas } from '@react-three/fiber';
|
|
5
|
-
import type { PropsWithChildren } from 'react';
|
|
6
|
-
import { PCFShadowMap, LinearToneMapping, SRGBColorSpace } from 'three';
|
|
7
|
-
|
|
8
|
-
import { ImageSizes, LargeSize, MediumSize, Sizes, SmallSize } from '../common';
|
|
9
|
-
import { Assets } from '../illustrations/metadata';
|
|
10
|
-
|
|
11
|
-
import type { Illustration3dNames } from './Illustration3d';
|
|
12
|
-
|
|
13
|
-
export type Props = PropsWithChildren<{
|
|
14
|
-
assetName: Illustration3dNames;
|
|
15
|
-
size?: SmallSize | MediumSize | LargeSize;
|
|
16
|
-
}>;
|
|
17
|
-
|
|
18
|
-
export default function Scene({ children, assetName, size = Sizes.MEDIUM }: Props) {
|
|
19
|
-
const castShadows: boolean = [
|
|
20
|
-
Assets.LOCK as string,
|
|
21
|
-
Assets.MULTI_CURRENCY as string,
|
|
22
|
-
Assets.MAGNIFYING_GLASS as string,
|
|
23
|
-
].includes(assetName);
|
|
24
|
-
return (
|
|
25
|
-
<Canvas
|
|
26
|
-
onCreated={({ gl }) => {
|
|
27
|
-
gl.setClearColor(0x000000, 0);
|
|
28
|
-
gl.setSize(ImageSizes[size], ImageSizes[size]);
|
|
29
|
-
gl.clearDepth();
|
|
30
|
-
}}
|
|
31
|
-
gl={{
|
|
32
|
-
alpha: true,
|
|
33
|
-
antialias: true,
|
|
34
|
-
pixelRatio: window.devicePixelRatio * 1,
|
|
35
|
-
toneMapping: LinearToneMapping,
|
|
36
|
-
outputColorSpace: SRGBColorSpace,
|
|
37
|
-
}}
|
|
38
|
-
shadows={{
|
|
39
|
-
type: PCFShadowMap,
|
|
40
|
-
enabled: castShadows,
|
|
41
|
-
}}
|
|
42
|
-
>
|
|
43
|
-
<PerspectiveCamera
|
|
44
|
-
makeDefault
|
|
45
|
-
far={1000000000000}
|
|
46
|
-
near={0.1}
|
|
47
|
-
fov={10.29}
|
|
48
|
-
aspect={window.innerWidth / window.innerHeight}
|
|
49
|
-
position={[0, 0, 100]}
|
|
50
|
-
/>
|
|
51
|
-
{children}
|
|
52
|
-
</Canvas>
|
|
53
|
-
);
|
|
54
|
-
}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { useGLTF, useAnimations } from '@react-three/drei';
|
|
2
|
-
import { useFrame, useLoader } from '@react-three/fiber';
|
|
3
|
-
import { useRef } from 'react';
|
|
4
|
-
import { ObjectLoader, LoopOnce } from 'three';
|
|
5
|
-
|
|
6
|
-
import { defineSrc } from '../utils';
|
|
7
|
-
|
|
8
|
-
const CheckMark = () => {
|
|
9
|
-
const modelRef = useRef();
|
|
10
|
-
const model = useGLTF(defineSrc('check-mark.gltf'));
|
|
11
|
-
const { animations, scene } = model;
|
|
12
|
-
|
|
13
|
-
const lights = useLoader(ObjectLoader, defineSrc('check-mark-light.json'));
|
|
14
|
-
|
|
15
|
-
const { mixer, clips } = useAnimations(animations, modelRef);
|
|
16
|
-
useFrame(() => {
|
|
17
|
-
model.materials['Standard'].map.offset.x += -0.0025;
|
|
18
|
-
|
|
19
|
-
mixer.clipAction(clips[0]).play().setLoop(LoopOnce, 1);
|
|
20
|
-
});
|
|
21
|
-
|
|
22
|
-
return (
|
|
23
|
-
<>
|
|
24
|
-
<primitive ref={modelRef} scale={1.4} object={scene} />
|
|
25
|
-
<primitive object={lights} />
|
|
26
|
-
</>
|
|
27
|
-
);
|
|
28
|
-
};
|
|
29
|
-
|
|
30
|
-
export default CheckMark;
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { useGLTF, useAnimations } from '@react-three/drei';
|
|
2
|
-
import { useFrame, useLoader } from '@react-three/fiber';
|
|
3
|
-
import { useRef } from 'react';
|
|
4
|
-
import { ObjectLoader, LoopOnce } from 'three';
|
|
5
|
-
|
|
6
|
-
import { defineSrc } from '../utils';
|
|
7
|
-
|
|
8
|
-
const Confetti = () => {
|
|
9
|
-
const ref = useRef();
|
|
10
|
-
const model = useGLTF(defineSrc('confetti.gltf'));
|
|
11
|
-
|
|
12
|
-
const lights = useLoader(ObjectLoader, defineSrc('confetti-light.json'));
|
|
13
|
-
|
|
14
|
-
const { mixer, clips } = useAnimations(model.animations, ref);
|
|
15
|
-
useFrame(() => {
|
|
16
|
-
model.materials['Tapestry WebGL'].map.offset.x += -0.0015;
|
|
17
|
-
|
|
18
|
-
mixer.clipAction(clips[0]).play().setLoop(LoopOnce, 1);
|
|
19
|
-
});
|
|
20
|
-
|
|
21
|
-
return (
|
|
22
|
-
<>
|
|
23
|
-
<primitive ref={ref} scale={1.5} position={[0, 1.5, 0]} object={model.scene} />
|
|
24
|
-
<primitive object={lights} />
|
|
25
|
-
</>
|
|
26
|
-
);
|
|
27
|
-
};
|
|
28
|
-
|
|
29
|
-
export default Confetti;
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { useGLTF } from '@react-three/drei';
|
|
2
|
-
import { useFrame, useLoader } from '@react-three/fiber';
|
|
3
|
-
import { ObjectLoader } from 'three';
|
|
4
|
-
|
|
5
|
-
import { defineSrc } from '../utils';
|
|
6
|
-
|
|
7
|
-
const Flower = () => {
|
|
8
|
-
const model = useGLTF(defineSrc('flower.gltf'));
|
|
9
|
-
|
|
10
|
-
const lights = useLoader(ObjectLoader, defineSrc('flower-light.json'));
|
|
11
|
-
|
|
12
|
-
useFrame(() => {
|
|
13
|
-
model.materials['Tapestry WebGL'].map.offset.x += -0.001;
|
|
14
|
-
});
|
|
15
|
-
|
|
16
|
-
return (
|
|
17
|
-
<>
|
|
18
|
-
<primitive scale={1.3} position={[0, -9, 0]} object={model.scene} />
|
|
19
|
-
<primitive object={lights} />
|
|
20
|
-
</>
|
|
21
|
-
);
|
|
22
|
-
};
|
|
23
|
-
|
|
24
|
-
export default Flower;
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
import { useGLTF } from '@react-three/drei';
|
|
2
|
-
import { useFrame, useLoader } from '@react-three/fiber';
|
|
3
|
-
import { TextureLoader, ObjectLoader } from 'three';
|
|
4
|
-
|
|
5
|
-
import { defineSrc } from '../utils';
|
|
6
|
-
|
|
7
|
-
const Globe = () => {
|
|
8
|
-
const { scene } = useGLTF(defineSrc('globe.gltf'));
|
|
9
|
-
|
|
10
|
-
const lights = useLoader(ObjectLoader, defineSrc('globe-light.json'));
|
|
11
|
-
const wiseLogo = useLoader(TextureLoader, defineSrc('wise-flag-map-bump.jpg'));
|
|
12
|
-
const planet = scene.getObjectByName('Globe');
|
|
13
|
-
const orbit = scene.getObjectByName('Coins_Axis_Rotation_Animate');
|
|
14
|
-
|
|
15
|
-
scene.traverse((child) => {
|
|
16
|
-
if (child.name.startsWith('Coin_')) {
|
|
17
|
-
const mesh = child;
|
|
18
|
-
|
|
19
|
-
const material = mesh.material;
|
|
20
|
-
material.bumpMap = wiseLogo;
|
|
21
|
-
material.bumpMap.flipY = false;
|
|
22
|
-
mesh.castShadow = false;
|
|
23
|
-
mesh.receiveShadow = false;
|
|
24
|
-
}
|
|
25
|
-
});
|
|
26
|
-
|
|
27
|
-
useFrame(() => {
|
|
28
|
-
orbit.rotation.y += 0.002;
|
|
29
|
-
|
|
30
|
-
planet.material.map.offset.x += -0.0002;
|
|
31
|
-
});
|
|
32
|
-
|
|
33
|
-
return (
|
|
34
|
-
<>
|
|
35
|
-
<primitive position={[0, -10, 0]} scale={1.3} object={scene} />
|
|
36
|
-
<primitive object={lights} />
|
|
37
|
-
</>
|
|
38
|
-
);
|
|
39
|
-
};
|
|
40
|
-
|
|
41
|
-
export default Globe;
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { useGLTF } from '@react-three/drei';
|
|
2
|
-
import { useFrame, useLoader } from '@react-three/fiber';
|
|
3
|
-
import { ObjectLoader } from 'three';
|
|
4
|
-
|
|
5
|
-
import { defineSrc } from '../utils';
|
|
6
|
-
|
|
7
|
-
const Graph = () => {
|
|
8
|
-
const model = useGLTF(defineSrc(`graph.gltf`));
|
|
9
|
-
|
|
10
|
-
const lights = useLoader(ObjectLoader, defineSrc('graph-light.json'));
|
|
11
|
-
|
|
12
|
-
useFrame(() => {
|
|
13
|
-
const { offset } = model.materials['Standard '].map;
|
|
14
|
-
offset.x += -0.0015;
|
|
15
|
-
offset.y += 0.0015;
|
|
16
|
-
});
|
|
17
|
-
|
|
18
|
-
return (
|
|
19
|
-
<>
|
|
20
|
-
<primitive scale={1.3} position={[0, -10, 0]} object={model.scene} />
|
|
21
|
-
<primitive object={lights} />
|
|
22
|
-
</>
|
|
23
|
-
);
|
|
24
|
-
};
|
|
25
|
-
|
|
26
|
-
export default Graph;
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import { useGLTF, useAnimations } from '@react-three/drei';
|
|
2
|
-
import { useFrame, useLoader } from '@react-three/fiber';
|
|
3
|
-
import { useRef } from 'react';
|
|
4
|
-
import { TextureLoader, ObjectLoader } from 'three';
|
|
5
|
-
|
|
6
|
-
import { defineSrc } from '../utils';
|
|
7
|
-
|
|
8
|
-
const Jars = () => {
|
|
9
|
-
const ref = useRef();
|
|
10
|
-
const model = useGLTF(defineSrc('jars.gltf'));
|
|
11
|
-
const lights = useLoader(ObjectLoader, defineSrc('jars-light.json'));
|
|
12
|
-
const wiseLogo = useLoader(TextureLoader, defineSrc('wise-flag-map-bump.jpg'));
|
|
13
|
-
const jars = [];
|
|
14
|
-
|
|
15
|
-
model.scene.traverse((child) => {
|
|
16
|
-
if (child.name.startsWith('Coin_')) {
|
|
17
|
-
child.material.bumpMap = wiseLogo;
|
|
18
|
-
|
|
19
|
-
child.material.bumpMap.flipY = false;
|
|
20
|
-
child.castShadow = false;
|
|
21
|
-
child.receiveShadow = false;
|
|
22
|
-
}
|
|
23
|
-
if (child.name.startsWith('Jar_')) {
|
|
24
|
-
jars.push(child);
|
|
25
|
-
}
|
|
26
|
-
});
|
|
27
|
-
|
|
28
|
-
const { mixer, clips } = useAnimations(model.animations, ref);
|
|
29
|
-
|
|
30
|
-
useFrame(() => {
|
|
31
|
-
mixer.clipAction(clips[0]).play();
|
|
32
|
-
|
|
33
|
-
jars.forEach((jar) => {
|
|
34
|
-
jar.material.map.offset.x += 0.001;
|
|
35
|
-
jar.material.map.offset.y += 0.0;
|
|
36
|
-
});
|
|
37
|
-
});
|
|
38
|
-
|
|
39
|
-
return (
|
|
40
|
-
<>
|
|
41
|
-
<primitive ref={ref} scale={1.3} position={[0, -10, 0]} object={model.scene} />
|
|
42
|
-
<primitive object={lights} />
|
|
43
|
-
</>
|
|
44
|
-
);
|
|
45
|
-
};
|
|
46
|
-
|
|
47
|
-
export default Jars;
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import { useGLTF, useAnimations } from '@react-three/drei';
|
|
2
|
-
import { useFrame, useLoader } from '@react-three/fiber';
|
|
3
|
-
import { useRef } from 'react';
|
|
4
|
-
import { LoopOnce, ObjectLoader } from 'three';
|
|
5
|
-
|
|
6
|
-
import { defineSrc } from '../utils';
|
|
7
|
-
|
|
8
|
-
const Lock = () => {
|
|
9
|
-
const ref = useRef();
|
|
10
|
-
const model = useGLTF(defineSrc('lock.gltf'));
|
|
11
|
-
|
|
12
|
-
const lights = useLoader(ObjectLoader, defineSrc('lock-light.json'));
|
|
13
|
-
|
|
14
|
-
model.scene.traverse((node) => {
|
|
15
|
-
if (node.isMesh) {
|
|
16
|
-
node.castShadow = true;
|
|
17
|
-
node.receiveShadow = true;
|
|
18
|
-
}
|
|
19
|
-
});
|
|
20
|
-
|
|
21
|
-
const { clips, mixer } = useAnimations(model.animations, ref);
|
|
22
|
-
let frame = 0;
|
|
23
|
-
useFrame(() => {
|
|
24
|
-
mixer.clipAction(clips[0]).play().setLoop(LoopOnce, 1);
|
|
25
|
-
model.scene.position.y = Math.sin(frame++ * 0.04) * 0.2;
|
|
26
|
-
|
|
27
|
-
model.materials.Standard.map.offset.x += -0.001;
|
|
28
|
-
});
|
|
29
|
-
|
|
30
|
-
return (
|
|
31
|
-
<>
|
|
32
|
-
<primitive ref={ref} scale={1.4} object={model.scene} />
|
|
33
|
-
<primitive object={lights} />
|
|
34
|
-
</>
|
|
35
|
-
);
|
|
36
|
-
};
|
|
37
|
-
|
|
38
|
-
export default Lock;
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { useGLTF } from '@react-three/drei';
|
|
2
|
-
import { useFrame, useLoader } from '@react-three/fiber';
|
|
3
|
-
import { ObjectLoader } from 'three';
|
|
4
|
-
|
|
5
|
-
import { defineSrc } from '../utils';
|
|
6
|
-
|
|
7
|
-
const MagnifyingGlass = () => {
|
|
8
|
-
const model = useGLTF(defineSrc(`magnifying-glass.gltf`));
|
|
9
|
-
|
|
10
|
-
const lights = useLoader(ObjectLoader, defineSrc('magnifying-glass-light.json'));
|
|
11
|
-
|
|
12
|
-
const lens = model.scene.getObjectByName('Optimised_lens');
|
|
13
|
-
|
|
14
|
-
useFrame(() => {
|
|
15
|
-
lens.material.transparent = true;
|
|
16
|
-
|
|
17
|
-
lens.material.opacity = 0.8;
|
|
18
|
-
|
|
19
|
-
model.materials['Tapestry WebGL'].map.offset.x += -0.0006;
|
|
20
|
-
});
|
|
21
|
-
|
|
22
|
-
return (
|
|
23
|
-
<>
|
|
24
|
-
<primitive scale={1.5} position={[0, -12, 0]} object={model.scene} />
|
|
25
|
-
<primitive object={lights} />
|
|
26
|
-
</>
|
|
27
|
-
);
|
|
28
|
-
};
|
|
29
|
-
|
|
30
|
-
export default MagnifyingGlass;
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import { useGLTF } from '@react-three/drei';
|
|
2
|
-
import { useFrame, useLoader } from '@react-three/fiber';
|
|
3
|
-
import { ObjectLoader } from 'three';
|
|
4
|
-
|
|
5
|
-
import { defineSrc } from '../utils';
|
|
6
|
-
|
|
7
|
-
const Marble = () => {
|
|
8
|
-
const model = useGLTF(defineSrc('marble.gltf'));
|
|
9
|
-
|
|
10
|
-
const lights = useLoader(ObjectLoader, defineSrc('marble-light.json'));
|
|
11
|
-
|
|
12
|
-
const sphere = model.scene.getObjectByName('Sphere1');
|
|
13
|
-
sphere.material.depthTest = true;
|
|
14
|
-
|
|
15
|
-
const stripeBottom = model.scene.getObjectByName('Strip_Center_Big_(4th_-_Bottom_Layer)');
|
|
16
|
-
stripeBottom.material.depthTest = false;
|
|
17
|
-
stripeBottom.renderOrder = 1;
|
|
18
|
-
|
|
19
|
-
const stripeLeft = model.scene.getObjectByName('Strip_Left_(3rd)');
|
|
20
|
-
stripeLeft.material.depthTest = false;
|
|
21
|
-
stripeLeft.renderOrder = 2;
|
|
22
|
-
|
|
23
|
-
const stripeRight = model.scene.getObjectByName('Strip_Left_(3rd)');
|
|
24
|
-
stripeRight.material.depthTest = false;
|
|
25
|
-
stripeRight.renderOrder = 3;
|
|
26
|
-
|
|
27
|
-
const stripeTop = model.scene.getObjectByName('Strip_Center_(1st_-_Top_Layer)');
|
|
28
|
-
stripeTop.material.depthTest = false;
|
|
29
|
-
stripeTop.renderOrder = 4;
|
|
30
|
-
|
|
31
|
-
const animatedMaps = [sphere, stripeTop, stripeBottom, stripeLeft, stripeRight].map(
|
|
32
|
-
(object) => object.material.map,
|
|
33
|
-
);
|
|
34
|
-
|
|
35
|
-
useFrame(() => {
|
|
36
|
-
animatedMaps.forEach((map) => (map.offset.y += -0.0015));
|
|
37
|
-
});
|
|
38
|
-
|
|
39
|
-
return (
|
|
40
|
-
<>
|
|
41
|
-
<primitive scale={1.4} position={[0, -11, 0]} object={model.scene} />
|
|
42
|
-
<primitive object={lights} />
|
|
43
|
-
</>
|
|
44
|
-
);
|
|
45
|
-
};
|
|
46
|
-
|
|
47
|
-
export default Marble;
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import { useGLTF } from '@react-three/drei';
|
|
2
|
-
import { useFrame, useLoader } from '@react-three/fiber';
|
|
3
|
-
import { ObjectLoader } from 'three';
|
|
4
|
-
|
|
5
|
-
import { defineSrc } from '../utils';
|
|
6
|
-
|
|
7
|
-
const MarbleCard = () => {
|
|
8
|
-
const model = useGLTF(defineSrc('marble-card.gltf'));
|
|
9
|
-
|
|
10
|
-
const lights = useLoader(ObjectLoader, defineSrc('marble-card-light.json'));
|
|
11
|
-
const sphere = model.scene.getObjectByName('Sphere1');
|
|
12
|
-
sphere.material.depthTest = true;
|
|
13
|
-
|
|
14
|
-
const stripeBottom = model.scene.getObjectByName('Strip_Center_Big_(4th_-_Bottom_Layer)');
|
|
15
|
-
stripeBottom.material.depthTest = false;
|
|
16
|
-
stripeBottom.renderOrder = 1;
|
|
17
|
-
|
|
18
|
-
const stripeLeft = model.scene.getObjectByName('Strip_Left_(3rd)');
|
|
19
|
-
stripeLeft.material.depthTest = false;
|
|
20
|
-
stripeLeft.renderOrder = 2;
|
|
21
|
-
|
|
22
|
-
const stripeRight = model.scene.getObjectByName('Strip_Right_(2nd)');
|
|
23
|
-
stripeRight.material.depthTest = false;
|
|
24
|
-
stripeRight.renderOrder = 3;
|
|
25
|
-
|
|
26
|
-
const stripeTop = model.scene.getObjectByName('Strip_Center_(1st_-_Top_Layer)');
|
|
27
|
-
stripeTop.material.depthTest = false;
|
|
28
|
-
stripeTop.renderOrder = 4;
|
|
29
|
-
|
|
30
|
-
const card = model.scene.getObjectByName('Plane');
|
|
31
|
-
card.material.depthTest = false;
|
|
32
|
-
card.material.metalness = 0;
|
|
33
|
-
|
|
34
|
-
const animatedMaps = [sphere, stripeTop, stripeBottom, stripeLeft, stripeRight].map(
|
|
35
|
-
(object) => object.material.map,
|
|
36
|
-
);
|
|
37
|
-
|
|
38
|
-
useFrame(() => {
|
|
39
|
-
animatedMaps.forEach((map) => (map.offset.y += -0.0015));
|
|
40
|
-
});
|
|
41
|
-
|
|
42
|
-
return (
|
|
43
|
-
<>
|
|
44
|
-
<primitive scale={1.4} position={[0, -10, 0]} object={model.scene} />
|
|
45
|
-
<primitive object={lights} />
|
|
46
|
-
</>
|
|
47
|
-
);
|
|
48
|
-
};
|
|
49
|
-
|
|
50
|
-
export default MarbleCard;
|