├── .eslintrc.json
├── .gitignore
├── .prettierrc
├── LICENSE
├── README.md
├── example
├── favicon.svg
├── index.html
├── package.json
├── public
│ ├── Parrot.glb
│ ├── Stork.glb
│ └── mesh.glb
├── src
│ ├── App.tsx
│ ├── Lights.tsx
│ ├── Model.tsx
│ ├── index.css
│ ├── index.tsx
│ └── useMesh.tsx
├── tsconfig.json
├── vite.config.ts
└── yarn.lock
├── package.json
├── rollup.config.js
├── src
├── Scissor.tsx
├── ScissorTunnel.tsx
├── ScissorWindow.tsx
├── index.ts
└── useScissorEvents.tsx
├── tsconfig.json
└── yarn.lock
/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "env": {
3 | "browser": true,
4 | "es6": true,
5 | "node": true
6 | },
7 | "extends": [
8 | "prettier",
9 | "prettier/react",
10 | "prettier/@typescript-eslint",
11 | "plugin:prettier/recommended",
12 | "plugin:react-hooks/recommended",
13 | "plugin:import/errors",
14 | "plugin:import/warnings",
15 | "prettier",
16 | "prettier/react",
17 | "prettier/@typescript-eslint"
18 | ],
19 | "plugins": [
20 | "@typescript-eslint",
21 | "react",
22 | "react-hooks",
23 | "import",
24 | "jest",
25 | "prettier"
26 | ],
27 | "parser": "@typescript-eslint/parser",
28 | "parserOptions": {
29 | "ecmaFeatures": {
30 | "jsx": true
31 | },
32 | "ecmaVersion": 2018,
33 | "sourceType": "module",
34 | "rules": {
35 | "curly": ["warn", "multi-line", "consistent"],
36 | "no-console": "off",
37 | "no-empty-pattern": "warn",
38 | "no-duplicate-imports": "error",
39 | "import/no-unresolved": "off",
40 | "import/export": "error",
41 | // https://github.com/typescript-eslint/typescript-eslint/blob/master/docs/getting-started/linting/FAQ.md#eslint-plugin-import
42 | // We recommend you do not use the following import/* rules, as TypeScript provides the same checks as part of standard type checking:
43 | "import/named": "off",
44 | "import/namespace": "off",
45 | "import/default": "off",
46 | "no-unused-vars": [
47 | "warn",
48 | { "argsIgnorePattern": "^_", "varsIgnorePattern": "^_" }
49 | ],
50 | "@typescript-eslint/no-unused-vars": [
51 | "warn",
52 | { "argsIgnorePattern": "^_", "varsIgnorePattern": "^_" }
53 | ],
54 | "@typescript-eslint/no-use-before-define": "off",
55 | "@typescript-eslint/no-empty-function": "off",
56 | "@typescript-eslint/no-empty-interface": "off",
57 | "@typescript-eslint/no-explicit-any": "off",
58 | "jest/consistent-test-it": [
59 | "error",
60 | { "fn": "it", "withinDescribe": "it" }
61 | ]
62 | }
63 | },
64 | "settings": {
65 | "react": {
66 | "version": "detect"
67 | },
68 | "import/extensions": [".js", ".jsx", ".ts", ".tsx"],
69 | "import/parsers": {
70 | "@typescript-eslint/parser": [".js", ".jsx", ".ts", ".tsx"]
71 | },
72 | "import/resolver": {
73 | "node": {
74 | "extensions": [".js", ".jsx", ".ts", ".tsx", ".json"],
75 | "paths": ["src"]
76 | },
77 | "alias": {
78 | "extensions": [".js", ".jsx", ".ts", ".tsx", ".json"],
79 | "map": [["react-three-fiber", "./src/targets/web.tsx"]]
80 | }
81 | }
82 | },
83 | "overrides": [
84 | {
85 | "files": ["src"],
86 | "parserOptions": {
87 | "project": "./tsconfig.json"
88 | }
89 | }
90 | ]
91 | }
92 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Logs
2 | logs
3 | *.log
4 | npm-debug.log*
5 | yarn-debug.log*
6 | yarn-error.log*
7 | lerna-debug.log*
8 |
9 | # Diagnostic reports (https://nodejs.org/api/report.html)
10 | report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
11 |
12 | # Runtime data
13 | pids
14 | *.pid
15 | *.seed
16 | *.pid.lock
17 |
18 | # Directory for instrumented libs generated by jscoverage/JSCover
19 | lib-cov
20 |
21 | # Coverage directory used by tools like istanbul
22 | coverage
23 | *.lcov
24 |
25 | # nyc test coverage
26 | .nyc_output
27 |
28 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
29 | .grunt
30 |
31 | # Bower dependency directory (https://bower.io/)
32 | bower_components
33 |
34 | # node-waf configuration
35 | .lock-wscript
36 |
37 | # Compiled binary addons (https://nodejs.org/api/addons.html)
38 | build/Release
39 |
40 | # Dependency directories
41 | node_modules/
42 | jspm_packages/
43 |
44 | # TypeScript v1 declaration files
45 | typings/
46 |
47 | # TypeScript cache
48 | *.tsbuildinfo
49 |
50 | # Optional npm cache directory
51 | .npm
52 |
53 | # Optional eslint cache
54 | .eslintcache
55 |
56 | # Microbundle cache
57 | .rpt2_cache/
58 | .rts2_cache_cjs/
59 | .rts2_cache_es/
60 | .rts2_cache_umd/
61 |
62 | # Optional REPL history
63 | .node_repl_history
64 |
65 | # Output of 'npm pack'
66 | *.tgz
67 |
68 | # Yarn Integrity file
69 | .yarn-integrity
70 |
71 | # dotenv environment variables file
72 | .env
73 | .env.test
74 |
75 | # parcel-bundler cache (https://parceljs.org/)
76 | .cache
77 |
78 | # Next.js build output
79 | .next
80 |
81 | # Nuxt.js build / generate output
82 | .nuxt
83 | dist
84 |
85 | # Gatsby files
86 | .cache/
87 | # Comment in the public line in if your project uses Gatsby and *not* Next.js
88 | # https://nextjs.org/blog/next-9-1#public-directory-support
89 | # public
90 |
91 | # vuepress build output
92 | .vuepress/dist
93 |
94 | # Serverless directories
95 | .serverless/
96 |
97 | # FuseBox cache
98 | .fusebox/
99 |
100 | # DynamoDB Local files
101 | .dynamodb/
102 |
103 | # TernJS port file
104 | .tern-port
105 |
--------------------------------------------------------------------------------
/.prettierrc:
--------------------------------------------------------------------------------
1 | {
2 | "semi": false,
3 | "trailingComma": "es5",
4 | "singleQuote": true,
5 | "tabWidth": 2,
6 | "printWidth": 120
7 | }
8 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2022 Poimandres
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
react-three-scissor
4 | Multiple scenes, one canvas! WebGL Scissoring implementation for React Three Fiber.
5 |
6 |
7 |
8 |
9 |
Depricated! Use <View />
from react-three-drei
10 |
11 |
12 |
13 |
14 |
15 | Show depricated readme
16 |
17 | `scissor` lets you render an infinite number of individual scenes (limited by your processing capability of course) on one single WebGL context and canvas.
18 |
19 | It is as easy as:
20 |
21 | ```jsx
22 |
23 | // Add Scissored components to the canvas
24 |
25 |
26 |
27 | // Define sissor windows.
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 | // ... Any number of windows
37 | ```
38 |
39 | ## Why this?
40 |
41 | Havigng multiple WebGL contests within one webpage is generally a bad idea because (from [ThreeJS manual](https://threejs.org/manual/?q=mul#en/multiple-scenes)):
42 |
43 | - **The browser limits how many WebGL contexts you can have.** Typically that limit is around 8 of them. After which, the oldest ones lose context.
44 | - **WebGL resources can not be shared across contexts.** That means expensive operation like loading models and compiling shaders would have to be repeated.
45 |
46 | Instead, we create the illusion of multiple canvases by having one large one and drawing on very speciifc parts of it. This process is called Scissoring.
47 |
48 | ## Getting Started
49 |
50 | ### ⚡️ Jump Start
51 |
52 | ```shell
53 | # Install the entire library
54 | npm install @react-three/scissor
55 | ```
56 |
57 | ```jsx
58 | import { Box } from '@react-three/drei'
59 | import { Scissor, ScissorWindow } from '@react-three/scissor'
60 |
61 | export default function App() {
62 | return (
63 | <>
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 | {/* Any R3F Components */}
76 |
77 | >
78 | )
79 | }
80 | ```
81 |
82 | It's as simple as that to create scroll-in animations.
83 |
84 | ### 💅 Styling Windows
85 |
86 | ### CSS
87 |
88 | `ScissorWindow` can be styled, positioned and scaled with any CSS property.
89 |
90 | ```jsx
91 |
97 | {/* Any R3F Components */}
98 |
99 | ```
100 |
101 | Or,
102 |
103 | ```css
104 | .window {
105 | width: 420px;
106 | height: 420px;
107 | border: 2px solid black;
108 |
109 | position: absolute;
110 | top: 0;
111 | ...;
112 | }
113 | ```
114 |
115 | ### Styled components
116 |
117 | It can also be wrapped in `styled-component` definitions like so:
118 |
119 | ```js
120 | const StyledScissorWindow = styled(ScissorWindow)`
121 | width: 420px;
122 | height: 420px;
123 | border: 2px solid black;
124 |
125 | position: absolute;
126 | top: 0;
127 | ...
128 | `
129 | ```
130 |
131 | ## Roadmap
132 |
133 | Major TODOs
134 |
135 | - [ ] Controls support
136 | - [ ] ` ` support
137 | - [ ] Other Drei helpers support
138 | - [ ] Per-window camera
139 |
140 |
141 |
--------------------------------------------------------------------------------
/example/favicon.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/example/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | react-three-scissor example
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/example/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "example",
3 | "version": "0.0.0",
4 | "scripts": {
5 | "dev": "vite",
6 | "build": "tsc && vite build",
7 | "serve": "vite preview"
8 | },
9 | "dependencies": {
10 | "@react-spring/core": "^9.2.4",
11 | "@react-spring/three": "^9.2.4",
12 | "@react-three/drei": "^7.2.1",
13 | "framer-motion": "^6.2.1",
14 | "leva": "^0.9.18",
15 | "react": "^17.0.2",
16 | "react-dom": "^17.0.2",
17 | "styled-components": "^5.3.0"
18 | },
19 | "devDependencies": {
20 | "@types/react": "^17.0.14",
21 | "@types/react-router-dom": "^5.1.8",
22 | "@types/styled-components": "^5.1.11",
23 | "@vitejs/plugin-react-refresh": "^1.3.5",
24 | "typescript": "^4.3.5",
25 | "vite": "^2.4.3"
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/example/public/Parrot.glb:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pmndrs/react-three-scissor/1d7b50e8ddd886d05eb5b63df887df4f541c3a17/example/public/Parrot.glb
--------------------------------------------------------------------------------
/example/public/Stork.glb:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pmndrs/react-three-scissor/1d7b50e8ddd886d05eb5b63df887df4f541c3a17/example/public/Stork.glb
--------------------------------------------------------------------------------
/example/public/mesh.glb:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pmndrs/react-three-scissor/1d7b50e8ddd886d05eb5b63df887df4f541c3a17/example/public/mesh.glb
--------------------------------------------------------------------------------
/example/src/App.tsx:
--------------------------------------------------------------------------------
1 | import React, { Suspense } from 'react'
2 | import { Canvas } from '@react-three/fiber'
3 | import { Scissor, ScissorWindow } from '@react-three/scissor'
4 | import styled from 'styled-components'
5 | import { Leva, useControls } from 'leva'
6 |
7 | import { AnimatePresence, motion } from 'framer-motion'
8 |
9 | import useMesh from './useMesh'
10 | import Model from './Model'
11 |
12 | const variants = {
13 | container: {
14 | hidden: {
15 | scale: 0,
16 | transition: {
17 | staggerChildren: 0.05,
18 | },
19 | },
20 | show: {
21 | scale: 1,
22 | transition: {
23 | staggerChildren: 0.05,
24 | },
25 | },
26 | },
27 | item: {
28 | hidden: { scale: 0 },
29 | show: { scale: 1 },
30 | },
31 | }
32 |
33 | function Animals() {
34 | const { nMesh } = useControls({
35 | nMesh: {
36 | min: 1,
37 | max: 100,
38 | value: 1,
39 | label: 'Number of meshes',
40 | },
41 | })
42 | const meshes = useMesh(nMesh)
43 |
44 | return (
45 |
46 |
47 | {meshes.map((mesh, i) => (
48 |
49 |
50 |
51 |
52 |
53 | ))}
54 |
55 |
56 | )
57 | }
58 |
59 | export default function App() {
60 | return (
61 | <>
62 |
63 |
64 | react-three-scissor
65 | Multiple scenes, one canvas! WebGL Scissoring implementation for React Three Fiber.
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 | >
78 | )
79 | }
80 |
81 | const Copy = styled.section`
82 | width: 100%;
83 | text-align: center;
84 | font-family: 'Recursive', system-ui, sans-serif;
85 |
86 | display: flex;
87 | justify-content: center;
88 | align-items: center;
89 | flex-direction: column;
90 |
91 | padding: 16px 32px;
92 |
93 | & > main {
94 | max-width: 600px;
95 | }
96 |
97 | h1 {
98 | font-style: italic;
99 | }
100 |
101 | p {
102 | font-weight: lighter;
103 | opacity: 40%;
104 | }
105 | `
106 |
107 | const Grid = styled(motion.section)`
108 | padding: 16px 32px;
109 |
110 | height: 100%;
111 | width: 100%;
112 | display: flex;
113 | flex-wrap: wrap;
114 | gap: 0.5em;
115 | align-items: flex-start;
116 | justify-content: center;
117 | `
118 |
119 | const GridCell = styled(motion.div)`
120 | border: 1px solid black;
121 | border-radius: 5px;
122 |
123 | width: 200px;
124 | height: 200px;
125 | `
126 | const StyledScissorWindow = styled(ScissorWindow)`
127 | width: 100%;
128 | height: 100%;
129 | `
130 |
--------------------------------------------------------------------------------
/example/src/Lights.tsx:
--------------------------------------------------------------------------------
1 | import React, { useRef } from 'react'
2 |
3 | export default function Lights() {
4 | const ref = useRef()
5 |
6 | // useHelper(ref, DirectionalLightHelper);
7 |
8 | return (
9 |
10 |
17 |
25 |
29 |
30 | )
31 | }
32 |
--------------------------------------------------------------------------------
/example/src/Model.tsx:
--------------------------------------------------------------------------------
1 | import { Center, Environment, OrbitControls, OrbitControlsProps, PerspectiveCamera, useCursor } from '@react-three/drei'
2 | import { useSpring, a } from '@react-spring/three'
3 | import React, { useEffect, useRef, useState } from 'react'
4 | import { MathUtils, Mesh } from 'three'
5 | import Lights from './Lights'
6 |
7 | export default function Model({ mesh }: { mesh: Mesh }) {
8 | const [hovered, setHover] = useState(false)
9 | const [active, setActive] = useState(false)
10 |
11 | useCursor(hovered, 'pointer', 'auto')
12 |
13 | const springs = useSpring({ scale: active ? 1.5 : 1 })
14 |
15 | return (
16 |
17 |
18 |
19 | setHover(true)}
23 | onPointerOut={() => setHover(false)}
24 | onClick={() => setActive(!active)}
25 | >
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 | )
36 | }
37 |
--------------------------------------------------------------------------------
/example/src/index.css:
--------------------------------------------------------------------------------
1 | /*styles.css*/
2 |
3 | @font-face {
4 | font-family: 'Recursive';
5 | font-style: normal;
6 | font-weight: 500;
7 | font-display: swap;
8 | src: url(https://fonts.gstatic.com/s/recursive/v23/8vI-7wMr0mhh-RQChyHEH06TlXhq_gukbYrFMk1QuAIcyEwG_X-dpEfaE5YaERmK-CImKsvxvU-MXGX2fSqasNfUlTGZnI14ZeY.woff2)
9 | format('woff2');
10 | unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC,
11 | U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
12 | }
13 |
14 | * {
15 | box-sizing: border-box;
16 | }
17 |
18 | html,
19 | body,
20 | #root {
21 | width: 100%;
22 | height: auto;
23 | margin: 0;
24 | padding: 0;
25 | }
26 |
27 | body {
28 | background: #f0f0f0;
29 | font-family: -apple-system, BlinkMacSystemFont, avenir next, avenir, helvetica neue, helvetica, ubuntu, roboto, noto,
30 | segoe ui, arial, sans-serif;
31 | }
32 |
--------------------------------------------------------------------------------
/example/src/index.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import ReactDOM from 'react-dom'
3 | import App from './App'
4 | import './index.css'
5 |
6 | ReactDOM.render( , document.getElementById('root'))
7 |
--------------------------------------------------------------------------------
/example/src/useMesh.tsx:
--------------------------------------------------------------------------------
1 | import { useGLTF } from '@react-three/drei'
2 | import { useMemo } from 'react'
3 |
4 | export default function useMesh(limit: number) {
5 | // @ts-ignore
6 | const { nodes } = useGLTF(`/mesh.glb`)
7 |
8 | const meshes: THREE.Mesh[] = useMemo(
9 | () =>
10 | Object.values(nodes)
11 | .filter((o: any) => o.isMesh)
12 | .splice(0, limit) as any,
13 | [limit, nodes]
14 | )
15 |
16 | return meshes
17 | }
18 |
19 | useGLTF.preload(`/mesh.glb`)
20 |
--------------------------------------------------------------------------------
/example/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "target": "ESNext",
4 | "lib": ["DOM", "DOM.Iterable", "ESNext"],
5 | "types": ["vite/client"],
6 | "allowJs": false,
7 | "skipLibCheck": false,
8 | "esModuleInterop": false,
9 | "allowSyntheticDefaultImports": true,
10 | "strict": true,
11 | "forceConsistentCasingInFileNames": true,
12 | "module": "ESNext",
13 | "moduleResolution": "Node",
14 | "resolveJsonModule": true,
15 | "isolatedModules": true,
16 | "noEmit": true,
17 | "jsx": "react",
18 | "baseUrl": ".",
19 | "paths": {
20 | "@react-three/scissor": ["../src/index.ts"]
21 | }
22 | },
23 | "include": ["./src"]
24 | }
25 |
--------------------------------------------------------------------------------
/example/vite.config.ts:
--------------------------------------------------------------------------------
1 | import path from 'path'
2 | import { defineConfig } from 'vite'
3 | import reactRefresh from '@vitejs/plugin-react-refresh'
4 |
5 | export default defineConfig({
6 | resolve: {
7 | alias: {
8 | react: path.resolve('./node_modules/react'),
9 | 'react-dom': path.resolve('./node_modules/react-dom'),
10 | '@react-three/scissor': path.resolve('../src/index.ts'),
11 | },
12 | },
13 | plugins: [reactRefresh()],
14 | })
15 |
--------------------------------------------------------------------------------
/example/yarn.lock:
--------------------------------------------------------------------------------
1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2 | # yarn lockfile v1
3 |
4 |
5 | "@babel/code-frame@^7.16.7":
6 | version "7.16.7"
7 | resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.16.7.tgz#44416b6bd7624b998f5b1af5d470856c40138789"
8 | integrity sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==
9 | dependencies:
10 | "@babel/highlight" "^7.16.7"
11 |
12 | "@babel/compat-data@^7.16.4":
13 | version "7.16.8"
14 | resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.16.8.tgz#31560f9f29fdf1868de8cb55049538a1b9732a60"
15 | integrity sha512-m7OkX0IdKLKPpBlJtF561YJal5y/jyI5fNfWbPxh2D/nbzzGI4qRyrD8xO2jB24u7l+5I2a43scCG2IrfjC50Q==
16 |
17 | "@babel/core@^7.14.8":
18 | version "7.16.12"
19 | resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.16.12.tgz#5edc53c1b71e54881315923ae2aedea2522bb784"
20 | integrity sha512-dK5PtG1uiN2ikk++5OzSYsitZKny4wOCD0nrO4TqnW4BVBTQ2NGS3NgilvT/TEyxTST7LNyWV/T4tXDoD3fOgg==
21 | dependencies:
22 | "@babel/code-frame" "^7.16.7"
23 | "@babel/generator" "^7.16.8"
24 | "@babel/helper-compilation-targets" "^7.16.7"
25 | "@babel/helper-module-transforms" "^7.16.7"
26 | "@babel/helpers" "^7.16.7"
27 | "@babel/parser" "^7.16.12"
28 | "@babel/template" "^7.16.7"
29 | "@babel/traverse" "^7.16.10"
30 | "@babel/types" "^7.16.8"
31 | convert-source-map "^1.7.0"
32 | debug "^4.1.0"
33 | gensync "^1.0.0-beta.2"
34 | json5 "^2.1.2"
35 | semver "^6.3.0"
36 | source-map "^0.5.0"
37 |
38 | "@babel/generator@^7.16.8":
39 | version "7.16.8"
40 | resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.16.8.tgz#359d44d966b8cd059d543250ce79596f792f2ebe"
41 | integrity sha512-1ojZwE9+lOXzcWdWmO6TbUzDfqLD39CmEhN8+2cX9XkDo5yW1OpgfejfliysR2AWLpMamTiOiAp/mtroaymhpw==
42 | dependencies:
43 | "@babel/types" "^7.16.8"
44 | jsesc "^2.5.1"
45 | source-map "^0.5.0"
46 |
47 | "@babel/helper-annotate-as-pure@^7.16.0":
48 | version "7.16.7"
49 | resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz#bb2339a7534a9c128e3102024c60760a3a7f3862"
50 | integrity sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==
51 | dependencies:
52 | "@babel/types" "^7.16.7"
53 |
54 | "@babel/helper-compilation-targets@^7.16.7":
55 | version "7.16.7"
56 | resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.7.tgz#06e66c5f299601e6c7da350049315e83209d551b"
57 | integrity sha512-mGojBwIWcwGD6rfqgRXVlVYmPAv7eOpIemUG3dGnDdCY4Pae70ROij3XmfrH6Fa1h1aiDylpglbZyktfzyo/hA==
58 | dependencies:
59 | "@babel/compat-data" "^7.16.4"
60 | "@babel/helper-validator-option" "^7.16.7"
61 | browserslist "^4.17.5"
62 | semver "^6.3.0"
63 |
64 | "@babel/helper-environment-visitor@^7.16.7":
65 | version "7.16.7"
66 | resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz#ff484094a839bde9d89cd63cba017d7aae80ecd7"
67 | integrity sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==
68 | dependencies:
69 | "@babel/types" "^7.16.7"
70 |
71 | "@babel/helper-function-name@^7.16.7":
72 | version "7.16.7"
73 | resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz#f1ec51551fb1c8956bc8dd95f38523b6cf375f8f"
74 | integrity sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA==
75 | dependencies:
76 | "@babel/helper-get-function-arity" "^7.16.7"
77 | "@babel/template" "^7.16.7"
78 | "@babel/types" "^7.16.7"
79 |
80 | "@babel/helper-get-function-arity@^7.16.7":
81 | version "7.16.7"
82 | resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz#ea08ac753117a669f1508ba06ebcc49156387419"
83 | integrity sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==
84 | dependencies:
85 | "@babel/types" "^7.16.7"
86 |
87 | "@babel/helper-hoist-variables@^7.16.7":
88 | version "7.16.7"
89 | resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz#86bcb19a77a509c7b77d0e22323ef588fa58c246"
90 | integrity sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==
91 | dependencies:
92 | "@babel/types" "^7.16.7"
93 |
94 | "@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.16.0", "@babel/helper-module-imports@^7.16.7":
95 | version "7.16.7"
96 | resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz#25612a8091a999704461c8a222d0efec5d091437"
97 | integrity sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==
98 | dependencies:
99 | "@babel/types" "^7.16.7"
100 |
101 | "@babel/helper-module-transforms@^7.16.7":
102 | version "7.16.7"
103 | resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.16.7.tgz#7665faeb721a01ca5327ddc6bba15a5cb34b6a41"
104 | integrity sha512-gaqtLDxJEFCeQbYp9aLAefjhkKdjKcdh6DB7jniIGU3Pz52WAmP268zK0VgPz9hUNkMSYeH976K2/Y6yPadpng==
105 | dependencies:
106 | "@babel/helper-environment-visitor" "^7.16.7"
107 | "@babel/helper-module-imports" "^7.16.7"
108 | "@babel/helper-simple-access" "^7.16.7"
109 | "@babel/helper-split-export-declaration" "^7.16.7"
110 | "@babel/helper-validator-identifier" "^7.16.7"
111 | "@babel/template" "^7.16.7"
112 | "@babel/traverse" "^7.16.7"
113 | "@babel/types" "^7.16.7"
114 |
115 | "@babel/helper-plugin-utils@^7.16.7":
116 | version "7.16.7"
117 | resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz#aa3a8ab4c3cceff8e65eb9e73d87dc4ff320b2f5"
118 | integrity sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==
119 |
120 | "@babel/helper-simple-access@^7.16.7":
121 | version "7.16.7"
122 | resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.16.7.tgz#d656654b9ea08dbb9659b69d61063ccd343ff0f7"
123 | integrity sha512-ZIzHVyoeLMvXMN/vok/a4LWRy8G2v205mNP0XOuf9XRLyX5/u9CnVulUtDgUTama3lT+bf/UqucuZjqiGuTS1g==
124 | dependencies:
125 | "@babel/types" "^7.16.7"
126 |
127 | "@babel/helper-split-export-declaration@^7.16.7":
128 | version "7.16.7"
129 | resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz#0b648c0c42da9d3920d85ad585f2778620b8726b"
130 | integrity sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==
131 | dependencies:
132 | "@babel/types" "^7.16.7"
133 |
134 | "@babel/helper-validator-identifier@^7.16.7":
135 | version "7.16.7"
136 | resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz#e8c602438c4a8195751243da9031d1607d247cad"
137 | integrity sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==
138 |
139 | "@babel/helper-validator-option@^7.16.7":
140 | version "7.16.7"
141 | resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz#b203ce62ce5fe153899b617c08957de860de4d23"
142 | integrity sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==
143 |
144 | "@babel/helpers@^7.16.7":
145 | version "7.16.7"
146 | resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.16.7.tgz#7e3504d708d50344112767c3542fc5e357fffefc"
147 | integrity sha512-9ZDoqtfY7AuEOt3cxchfii6C7GDyyMBffktR5B2jvWv8u2+efwvpnVKXMWzNehqy68tKgAfSwfdw/lWpthS2bw==
148 | dependencies:
149 | "@babel/template" "^7.16.7"
150 | "@babel/traverse" "^7.16.7"
151 | "@babel/types" "^7.16.7"
152 |
153 | "@babel/highlight@^7.16.7":
154 | version "7.16.10"
155 | resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.16.10.tgz#744f2eb81579d6eea753c227b0f570ad785aba88"
156 | integrity sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==
157 | dependencies:
158 | "@babel/helper-validator-identifier" "^7.16.7"
159 | chalk "^2.0.0"
160 | js-tokens "^4.0.0"
161 |
162 | "@babel/parser@^7.16.10", "@babel/parser@^7.16.12", "@babel/parser@^7.16.7":
163 | version "7.16.12"
164 | resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.16.12.tgz#9474794f9a650cf5e2f892444227f98e28cdf8b6"
165 | integrity sha512-VfaV15po8RiZssrkPweyvbGVSe4x2y+aciFCgn0n0/SJMR22cwofRV1mtnJQYcSB1wUTaA/X1LnA3es66MCO5A==
166 |
167 | "@babel/plugin-transform-react-jsx-self@^7.14.5":
168 | version "7.16.7"
169 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.16.7.tgz#f432ad0cba14c4a1faf44f0076c69e42a4d4479e"
170 | integrity sha512-oe5VuWs7J9ilH3BCCApGoYjHoSO48vkjX2CbA5bFVhIuO2HKxA3vyF7rleA4o6/4rTDbk6r8hBW7Ul8E+UZrpA==
171 | dependencies:
172 | "@babel/helper-plugin-utils" "^7.16.7"
173 |
174 | "@babel/plugin-transform-react-jsx-source@^7.14.5":
175 | version "7.16.7"
176 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.16.7.tgz#1879c3f23629d287cc6186a6c683154509ec70c0"
177 | integrity sha512-rONFiQz9vgbsnaMtQlZCjIRwhJvlrPET8TabIUK2hzlXw9B9s2Ieaxte1SCOOXMbWRHodbKixNf3BLcWVOQ8Bw==
178 | dependencies:
179 | "@babel/helper-plugin-utils" "^7.16.7"
180 |
181 | "@babel/runtime@^7.11.2", "@babel/runtime@^7.13.10", "@babel/runtime@^7.16.7":
182 | version "7.16.7"
183 | resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.16.7.tgz#03ff99f64106588c9c403c6ecb8c3bafbbdff1fa"
184 | integrity sha512-9E9FJowqAsytyOY6LG+1KuueckRL+aQW+mKvXRXnuFGyRAyepJPmEo9vgMfXUA6O9u3IeEdv9MAkppFcaQwogQ==
185 | dependencies:
186 | regenerator-runtime "^0.13.4"
187 |
188 | "@babel/template@^7.16.7":
189 | version "7.16.7"
190 | resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.16.7.tgz#8d126c8701fde4d66b264b3eba3d96f07666d155"
191 | integrity sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==
192 | dependencies:
193 | "@babel/code-frame" "^7.16.7"
194 | "@babel/parser" "^7.16.7"
195 | "@babel/types" "^7.16.7"
196 |
197 | "@babel/traverse@^7.16.10", "@babel/traverse@^7.16.7", "@babel/traverse@^7.4.5":
198 | version "7.16.10"
199 | resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.16.10.tgz#448f940defbe95b5a8029975b051f75993e8239f"
200 | integrity sha512-yzuaYXoRJBGMlBhsMJoUW7G1UmSb/eXr/JHYM/MsOJgavJibLwASijW7oXBdw3NQ6T0bW7Ty5P/VarOs9cHmqw==
201 | dependencies:
202 | "@babel/code-frame" "^7.16.7"
203 | "@babel/generator" "^7.16.8"
204 | "@babel/helper-environment-visitor" "^7.16.7"
205 | "@babel/helper-function-name" "^7.16.7"
206 | "@babel/helper-hoist-variables" "^7.16.7"
207 | "@babel/helper-split-export-declaration" "^7.16.7"
208 | "@babel/parser" "^7.16.10"
209 | "@babel/types" "^7.16.8"
210 | debug "^4.1.0"
211 | globals "^11.1.0"
212 |
213 | "@babel/types@^7.16.7", "@babel/types@^7.16.8":
214 | version "7.16.8"
215 | resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.16.8.tgz#0ba5da91dd71e0a4e7781a30f22770831062e3c1"
216 | integrity sha512-smN2DQc5s4M7fntyjGtyIPbRJv6wW4rU/94fmYJ7PKQuZkC0qGMHXJbg6sNGt12JmVr4k5YaptI/XtiLJBnmIg==
217 | dependencies:
218 | "@babel/helper-validator-identifier" "^7.16.7"
219 | to-fast-properties "^2.0.0"
220 |
221 | "@chevrotain/types@^9.1.0":
222 | version "9.1.0"
223 | resolved "https://registry.yarnpkg.com/@chevrotain/types/-/types-9.1.0.tgz#689f2952be5ad9459dae3c8e9209c0f4ec3c5ec4"
224 | integrity sha512-3hbCD1CThkv9gnaSIPq0GUXwKni68e0ph6jIHwCvcWiQ4JB2xi8bFxBain0RF04qHUWuDjgnZLj4rLgimuGO+g==
225 |
226 | "@chevrotain/utils@^9.1.0":
227 | version "9.1.0"
228 | resolved "https://registry.yarnpkg.com/@chevrotain/utils/-/utils-9.1.0.tgz#a34ab0696f9491dee934e848984517d226356f21"
229 | integrity sha512-llLJZ8OAlZrjGlBvamm6Zdo/HmGAcCLq5gx7cSwUX8No+n/8ip+oaC4x33IdZIif8+Rh5dQUIZXmfbSghiOmNQ==
230 |
231 | "@emotion/is-prop-valid@^0.8.2", "@emotion/is-prop-valid@^0.8.8":
232 | version "0.8.8"
233 | resolved "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz#db28b1c4368a259b60a97311d6a952d4fd01ac1a"
234 | integrity sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA==
235 | dependencies:
236 | "@emotion/memoize" "0.7.4"
237 |
238 | "@emotion/memoize@0.7.4":
239 | version "0.7.4"
240 | resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.7.4.tgz#19bf0f5af19149111c40d98bb0cf82119f5d9eeb"
241 | integrity sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==
242 |
243 | "@emotion/stylis@^0.8.4":
244 | version "0.8.5"
245 | resolved "https://registry.yarnpkg.com/@emotion/stylis/-/stylis-0.8.5.tgz#deacb389bd6ee77d1e7fcaccce9e16c5c7e78e04"
246 | integrity sha512-h6KtPihKFn3T9fuIrwvXXUOwlx3rfUvfZIcP5a6rh8Y7zjE3O06hT5Ss4S/YI1AYhuZ1kjaE/5EaOOI2NqSylQ==
247 |
248 | "@emotion/unitless@^0.7.4":
249 | version "0.7.5"
250 | resolved "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.7.5.tgz#77211291c1900a700b8a78cfafda3160d76949ed"
251 | integrity sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==
252 |
253 | "@radix-ui/popper@0.1.0":
254 | version "0.1.0"
255 | resolved "https://registry.yarnpkg.com/@radix-ui/popper/-/popper-0.1.0.tgz#c387a38f31b7799e1ea0d2bb1ca0c91c2931b063"
256 | integrity sha512-uzYeElL3w7SeNMuQpXiFlBhTT+JyaNMCwDfjKkrzugEcYrf5n52PHqncNdQPUtR42hJh8V9FsqyEDbDxkeNjJQ==
257 | dependencies:
258 | "@babel/runtime" "^7.13.10"
259 | csstype "^3.0.4"
260 |
261 | "@radix-ui/primitive@0.1.0":
262 | version "0.1.0"
263 | resolved "https://registry.yarnpkg.com/@radix-ui/primitive/-/primitive-0.1.0.tgz#6206b97d379994f0d1929809db035733b337e543"
264 | integrity sha512-tqxZKybwN5Fa3VzZry4G6mXAAb9aAqKmPtnVbZpL0vsBwvOHTBwsjHVPXylocYLwEtBY9SCe665bYnNB515uoA==
265 | dependencies:
266 | "@babel/runtime" "^7.13.10"
267 |
268 | "@radix-ui/react-arrow@0.1.3":
269 | version "0.1.3"
270 | resolved "https://registry.yarnpkg.com/@radix-ui/react-arrow/-/react-arrow-0.1.3.tgz#17f86eab216c48aff17b13b811569a9bbabaa44d"
271 | integrity sha512-9x1gRYdlUD5OUwY7L+M+4FY/YltDSsrNSj8QXGPbxZxL5ghWXB/4lhyIGccCwk/e8ggfmQYv9SRNmn3LavPo3A==
272 | dependencies:
273 | "@babel/runtime" "^7.13.10"
274 | "@radix-ui/react-primitive" "0.1.3"
275 |
276 | "@radix-ui/react-compose-refs@0.1.0":
277 | version "0.1.0"
278 | resolved "https://registry.yarnpkg.com/@radix-ui/react-compose-refs/-/react-compose-refs-0.1.0.tgz#cff6e780a0f73778b976acff2c2a5b6551caab95"
279 | integrity sha512-eyclbh+b77k+69Dk72q3694OHrn9B3QsoIRx7ywX341U9RK1ThgQjMFZoPtmZNQTksXHLNEiefR8hGVeFyInGg==
280 | dependencies:
281 | "@babel/runtime" "^7.13.10"
282 |
283 | "@radix-ui/react-context@0.1.1":
284 | version "0.1.1"
285 | resolved "https://registry.yarnpkg.com/@radix-ui/react-context/-/react-context-0.1.1.tgz#06996829ea124d9a1bc1dbe3e51f33588fab0875"
286 | integrity sha512-PkyVX1JsLBioeu0jB9WvRpDBBLtLZohVDT3BB5CTSJqActma8S8030P57mWZb4baZifMvN7KKWPAA40UmWKkQg==
287 | dependencies:
288 | "@babel/runtime" "^7.13.10"
289 |
290 | "@radix-ui/react-id@0.1.4":
291 | version "0.1.4"
292 | resolved "https://registry.yarnpkg.com/@radix-ui/react-id/-/react-id-0.1.4.tgz#4cd6126e6ac8a43ebe6d52948a068b797cc9ad71"
293 | integrity sha512-/hq5m/D0ZfJWOS7TLF+G0l08KDRs87LBE46JkAvgKkg1fW4jkucx9At9D9vauIPSbdNmww5kXEp566hMlA8eXA==
294 | dependencies:
295 | "@babel/runtime" "^7.13.10"
296 | "@radix-ui/react-use-layout-effect" "0.1.0"
297 |
298 | "@radix-ui/react-popper@0.1.3":
299 | version "0.1.3"
300 | resolved "https://registry.yarnpkg.com/@radix-ui/react-popper/-/react-popper-0.1.3.tgz#a93bdd72845566007e5f3868caddd62318bb781e"
301 | integrity sha512-2OV2YaJv7iTZexJY3HJ7B6Fs1A/3JXd3fRGU4JY0guACfGMD1C/jSgds505MKQOTiHE/quI6j3/q8yfzFjJR9g==
302 | dependencies:
303 | "@babel/runtime" "^7.13.10"
304 | "@radix-ui/popper" "0.1.0"
305 | "@radix-ui/react-arrow" "0.1.3"
306 | "@radix-ui/react-compose-refs" "0.1.0"
307 | "@radix-ui/react-context" "0.1.1"
308 | "@radix-ui/react-primitive" "0.1.3"
309 | "@radix-ui/react-use-rect" "0.1.1"
310 | "@radix-ui/react-use-size" "0.1.0"
311 | "@radix-ui/rect" "0.1.1"
312 |
313 | "@radix-ui/react-portal@0.1.3", "@radix-ui/react-portal@^0.1.3":
314 | version "0.1.3"
315 | resolved "https://registry.yarnpkg.com/@radix-ui/react-portal/-/react-portal-0.1.3.tgz#56826e789b3d4e37983f6d23666e3f1b1b9ee358"
316 | integrity sha512-DrV+sPYLs0HhmX5/b7yRT6nLM9Nl6FtQe2KUG+46kiCOKQ+0XzNMO5hmeQtyq0mRf/qlC02rFu6OMsWpIqVsJg==
317 | dependencies:
318 | "@babel/runtime" "^7.13.10"
319 | "@radix-ui/react-primitive" "0.1.3"
320 | "@radix-ui/react-use-layout-effect" "0.1.0"
321 |
322 | "@radix-ui/react-presence@0.1.1":
323 | version "0.1.1"
324 | resolved "https://registry.yarnpkg.com/@radix-ui/react-presence/-/react-presence-0.1.1.tgz#2088dec6f4f8042f83dd2d6bf9e8ef09dadbbc15"
325 | integrity sha512-LsL+NcWDpFUAYCmXeH02o4pgqcSLpwxP84UIjCtpIKrsPe2vLuhcp79KC/jZJeXz+of2lUpMAxpM+eCpxFZtlg==
326 | dependencies:
327 | "@babel/runtime" "^7.13.10"
328 | "@radix-ui/react-compose-refs" "0.1.0"
329 | "@radix-ui/react-use-layout-effect" "0.1.0"
330 |
331 | "@radix-ui/react-primitive@0.1.3":
332 | version "0.1.3"
333 | resolved "https://registry.yarnpkg.com/@radix-ui/react-primitive/-/react-primitive-0.1.3.tgz#585c35ef2ec06bab0ea9e0fc5c916e556661b881"
334 | integrity sha512-fcyADaaAx2jdqEDLsTs6aX50S3L1c9K9CC6XMpJpuXFJCU4n9PGTFDZRtY2gAoXXoRCPIBsklCopSmGb6SsDjQ==
335 | dependencies:
336 | "@babel/runtime" "^7.13.10"
337 | "@radix-ui/react-slot" "0.1.2"
338 |
339 | "@radix-ui/react-slot@0.1.2":
340 | version "0.1.2"
341 | resolved "https://registry.yarnpkg.com/@radix-ui/react-slot/-/react-slot-0.1.2.tgz#e6f7ad9caa8ce81cc8d532c854c56f9b8b6307c8"
342 | integrity sha512-ADkqfL+agEzEguU3yS26jfB50hRrwf7U4VTwAOZEmi/g+ITcBWe12yM46ueS/UCIMI9Py+gFUaAdxgxafFvY2Q==
343 | dependencies:
344 | "@babel/runtime" "^7.13.10"
345 | "@radix-ui/react-compose-refs" "0.1.0"
346 |
347 | "@radix-ui/react-tooltip@0.1.6":
348 | version "0.1.6"
349 | resolved "https://registry.yarnpkg.com/@radix-ui/react-tooltip/-/react-tooltip-0.1.6.tgz#46a3e385e004aaebd16ecaa1da7d1af70ba3bb45"
350 | integrity sha512-0uaRpRmTCQo5yMUkDpv4LEDnaQDoeLXcNNhZonCZdbZBQ7ntvjURIWIigq1/pXZp0UX7oPpFzsXD9jUp8JT0WA==
351 | dependencies:
352 | "@babel/runtime" "^7.13.10"
353 | "@radix-ui/primitive" "0.1.0"
354 | "@radix-ui/react-compose-refs" "0.1.0"
355 | "@radix-ui/react-context" "0.1.1"
356 | "@radix-ui/react-id" "0.1.4"
357 | "@radix-ui/react-popper" "0.1.3"
358 | "@radix-ui/react-portal" "0.1.3"
359 | "@radix-ui/react-presence" "0.1.1"
360 | "@radix-ui/react-primitive" "0.1.3"
361 | "@radix-ui/react-slot" "0.1.2"
362 | "@radix-ui/react-use-controllable-state" "0.1.0"
363 | "@radix-ui/react-use-escape-keydown" "0.1.0"
364 | "@radix-ui/react-use-previous" "0.1.0"
365 | "@radix-ui/react-use-rect" "0.1.1"
366 | "@radix-ui/react-visually-hidden" "0.1.3"
367 |
368 | "@radix-ui/react-use-callback-ref@0.1.0":
369 | version "0.1.0"
370 | resolved "https://registry.yarnpkg.com/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-0.1.0.tgz#934b6e123330f5b3a6b116460e6662cbc663493f"
371 | integrity sha512-Va041McOFFl+aV+sejvl0BS2aeHx86ND9X/rVFmEFQKTXCp6xgUK0NGUAGcgBlIjnJSbMYPGEk1xKSSlVcN2Aw==
372 | dependencies:
373 | "@babel/runtime" "^7.13.10"
374 |
375 | "@radix-ui/react-use-controllable-state@0.1.0":
376 | version "0.1.0"
377 | resolved "https://registry.yarnpkg.com/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-0.1.0.tgz#4fced164acfc69a4e34fb9d193afdab973a55de1"
378 | integrity sha512-zv7CX/PgsRl46a52Tl45TwqwVJdmqnlQEQhaYMz/yBOD2sx2gCkCFSoF/z9mpnYWmS6DTLNTg5lIps3fV6EnXg==
379 | dependencies:
380 | "@babel/runtime" "^7.13.10"
381 | "@radix-ui/react-use-callback-ref" "0.1.0"
382 |
383 | "@radix-ui/react-use-escape-keydown@0.1.0":
384 | version "0.1.0"
385 | resolved "https://registry.yarnpkg.com/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-0.1.0.tgz#dc80cb3753e9d1bd992adbad9a149fb6ea941874"
386 | integrity sha512-tDLZbTGFmvXaazUXXv8kYbiCcbAE8yKgng9s95d8fCO+Eundv0Jngbn/hKPhDDs4jj9ChwRX5cDDnlaN+ugYYQ==
387 | dependencies:
388 | "@babel/runtime" "^7.13.10"
389 | "@radix-ui/react-use-callback-ref" "0.1.0"
390 |
391 | "@radix-ui/react-use-layout-effect@0.1.0":
392 | version "0.1.0"
393 | resolved "https://registry.yarnpkg.com/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-0.1.0.tgz#ebf71bd6d2825de8f1fbb984abf2293823f0f223"
394 | integrity sha512-+wdeS51Y+E1q1Wmd+1xSSbesZkpVj4jsg0BojCbopWvgq5iBvixw5vgemscdh58ep98BwUbsFYnrywFhV9yrVg==
395 | dependencies:
396 | "@babel/runtime" "^7.13.10"
397 |
398 | "@radix-ui/react-use-previous@0.1.0":
399 | version "0.1.0"
400 | resolved "https://registry.yarnpkg.com/@radix-ui/react-use-previous/-/react-use-previous-0.1.0.tgz#fed880d41187d0fdd1e19c4588402765f342777e"
401 | integrity sha512-0fxNc33rYnCzDMPSiSnfS8YklnxQo8WqbAQXPAgIaaA1jRu2qFB916PL4qCIW+avcAAqFD38vWhqDqcVmBharA==
402 | dependencies:
403 | "@babel/runtime" "^7.13.10"
404 |
405 | "@radix-ui/react-use-rect@0.1.1":
406 | version "0.1.1"
407 | resolved "https://registry.yarnpkg.com/@radix-ui/react-use-rect/-/react-use-rect-0.1.1.tgz#6c15384beee59c086e75b89a7e66f3d2e583a856"
408 | integrity sha512-kHNNXAsP3/PeszEmM/nxBBS9Jbo93sO+xuMTcRfwzXsmxT5gDXQzAiKbZQ0EecCPtJIzqvr7dlaQi/aP1PKYqQ==
409 | dependencies:
410 | "@babel/runtime" "^7.13.10"
411 | "@radix-ui/rect" "0.1.1"
412 |
413 | "@radix-ui/react-use-size@0.1.0":
414 | version "0.1.0"
415 | resolved "https://registry.yarnpkg.com/@radix-ui/react-use-size/-/react-use-size-0.1.0.tgz#dc49295d646f5d3f570943dbb88bd94fc7db7daf"
416 | integrity sha512-TcZAsR+BYI46w/RbaSFCRACl+Jh6mDqhu6GS2r0iuJpIVrj8atff7qtTjmMmfGtEDNEjhl7DxN3pr1nTS/oruQ==
417 | dependencies:
418 | "@babel/runtime" "^7.13.10"
419 |
420 | "@radix-ui/react-visually-hidden@0.1.3":
421 | version "0.1.3"
422 | resolved "https://registry.yarnpkg.com/@radix-ui/react-visually-hidden/-/react-visually-hidden-0.1.3.tgz#406a2f1e2f2cf27e5b85a29dc3aca718e695acaf"
423 | integrity sha512-dPU6ZR2WQ/W9qv7E1Y8/I8ymqG+8sViU6dQQ6sfr2/8yGr0I4mmI7ywTnqXaE+YS9gHLEZHdQcEqTNESg6YfdQ==
424 | dependencies:
425 | "@babel/runtime" "^7.13.10"
426 | "@radix-ui/react-primitive" "0.1.3"
427 |
428 | "@radix-ui/rect@0.1.1":
429 | version "0.1.1"
430 | resolved "https://registry.yarnpkg.com/@radix-ui/rect/-/rect-0.1.1.tgz#95b5ba51f469bea6b1b841e2d427e17e37d38419"
431 | integrity sha512-g3hnE/UcOg7REdewduRPAK88EPuLZtaq7sA9ouu8S+YEtnyFRI16jgv6GZYe3VMoQLL1T171ebmEPtDjyxWLzw==
432 | dependencies:
433 | "@babel/runtime" "^7.13.10"
434 |
435 | "@react-spring/animated@~9.4.0":
436 | version "9.4.2"
437 | resolved "https://registry.yarnpkg.com/@react-spring/animated/-/animated-9.4.2.tgz#1dc107233ce4a44b023abac829f3b2ea8327a128"
438 | integrity sha512-Dzum5Ho8e+LIAegAqRyoQFakD2IVH3ZQ2nsFXJorAFq3Xjv6IVPz/+TNxb/wSvnsMludfoF+ZIf319FSFmgD5w==
439 | dependencies:
440 | "@react-spring/shared" "~9.4.0"
441 | "@react-spring/types" "~9.4.0"
442 |
443 | "@react-spring/core@^9.2.4", "@react-spring/core@~9.4.0":
444 | version "9.4.2"
445 | resolved "https://registry.yarnpkg.com/@react-spring/core/-/core-9.4.2.tgz#c20249535b3acaead015d17e1c4ce839ec3d4c9f"
446 | integrity sha512-Ej/ULwdx8rQtMAWEpLgwbKcQEx6vPfjyG3cxLP05zAInpCoWkYpl+sXOp9tn3r99mTNQPTTt7BgQsSnmQA8+rQ==
447 | dependencies:
448 | "@react-spring/animated" "~9.4.0"
449 | "@react-spring/rafz" "~9.4.0"
450 | "@react-spring/shared" "~9.4.0"
451 | "@react-spring/types" "~9.4.0"
452 |
453 | "@react-spring/rafz@~9.4.0":
454 | version "9.4.2"
455 | resolved "https://registry.yarnpkg.com/@react-spring/rafz/-/rafz-9.4.2.tgz#40a663d407cd116d436f662c6849f8e5b56234b6"
456 | integrity sha512-rSm+G8E/XEEpnCGtT/xYN6o8VvEXlU8wN/hyKp4Q44XAZzGSMHLIFP7pY94/MmWsxCxjkw1AxUWhiFYxWrnI5Q==
457 |
458 | "@react-spring/shared@~9.4.0":
459 | version "9.4.2"
460 | resolved "https://registry.yarnpkg.com/@react-spring/shared/-/shared-9.4.2.tgz#45e103eee04f5e857ab2c575c2a84d3a883f0bfa"
461 | integrity sha512-mZtbQLpMm6Vy5+O1MSlY9KuAcMO8rdUQvtdnC7Or7y7xiZlnzj8oAILyO6Y2rD2ZC1PmgVS0gMev/8T+MykW+Q==
462 | dependencies:
463 | "@react-spring/rafz" "~9.4.0"
464 | "@react-spring/types" "~9.4.0"
465 |
466 | "@react-spring/three@^9.2.4", "@react-spring/three@^9.3.1":
467 | version "9.4.2"
468 | resolved "https://registry.yarnpkg.com/@react-spring/three/-/three-9.4.2.tgz#a39b4f816023ea7792cacf74188f09de8fa13604"
469 | integrity sha512-qAPHOMjQjl9V3Eh4Xbdsdx9mAMe+rtSBfEuZGfoF5l8P8zC42gxggbyM1sKUOip3yyz76YTPiosWkmvgCVxMng==
470 | dependencies:
471 | "@react-spring/animated" "~9.4.0"
472 | "@react-spring/core" "~9.4.0"
473 | "@react-spring/shared" "~9.4.0"
474 | "@react-spring/types" "~9.4.0"
475 |
476 | "@react-spring/types@~9.4.0":
477 | version "9.4.2"
478 | resolved "https://registry.yarnpkg.com/@react-spring/types/-/types-9.4.2.tgz#f0518f6d23a0b0f699a71976483323ac84bc4ace"
479 | integrity sha512-GGiIscTM+CEUNV52anj3g5FqAZKL2+eRKtvBOAlC99qGBbvJ3qTLImrUR/I3lXY7PRuLgzI6kh34quA1oUxWYQ==
480 |
481 | "@react-three/drei@^7.2.1":
482 | version "7.27.5"
483 | resolved "https://registry.yarnpkg.com/@react-three/drei/-/drei-7.27.5.tgz#8559b8c6e4b1363ee93cfc1d51d936726bf1bb16"
484 | integrity sha512-LD0BvN+toHnyn7TV+M50+MbtVIX1PXwHX9RXRa6wgBBDFWBRXNUQb37401+vgzqYV61/JZtxd+b4kM+OYZGpkg==
485 | dependencies:
486 | "@babel/runtime" "^7.11.2"
487 | "@react-spring/three" "^9.3.1"
488 | "@use-gesture/react" "^10.2.0"
489 | detect-gpu "^3.1.28"
490 | glsl-noise "^0.0.0"
491 | lodash.omit "^4.5.0"
492 | lodash.pick "^4.4.0"
493 | react-composer "^5.0.2"
494 | react-merge-refs "^1.1.0"
495 | stats.js "^0.17.0"
496 | three-mesh-bvh "^0.5.2"
497 | three-stdlib "^2.6.1"
498 | troika-three-text "^0.44.0"
499 | use-asset "^1.0.4"
500 | utility-types "^3.10.0"
501 | zustand "^3.5.13"
502 |
503 | "@rollup/pluginutils@^4.1.1":
504 | version "4.1.2"
505 | resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-4.1.2.tgz#ed5821c15e5e05e32816f5fb9ec607cdf5a75751"
506 | integrity sha512-ROn4qvkxP9SyPeHaf7uQC/GPFY6L/OWy9+bd9AwcjOAWQwxRscoEyAUD8qCY5o5iL4jqQwoLk2kaTKJPb/HwzQ==
507 | dependencies:
508 | estree-walker "^2.0.1"
509 | picomatch "^2.2.2"
510 |
511 | "@stitches/react@1.2.6":
512 | version "1.2.6"
513 | resolved "https://registry.yarnpkg.com/@stitches/react/-/react-1.2.6.tgz#61f2a3d1110334ecd33bcb7463650127d42470cb"
514 | integrity sha512-gRVITYj8W4jJmoiVxWDv72yCvd12VvtUUAnTzs07EqmtvGCVgKZu3Dx0x5KVCcb0b6tfgvvNH2L84YrzdM4Mag==
515 |
516 | "@types/history@^4.7.11":
517 | version "4.7.11"
518 | resolved "https://registry.yarnpkg.com/@types/history/-/history-4.7.11.tgz#56588b17ae8f50c53983a524fc3cc47437969d64"
519 | integrity sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==
520 |
521 | "@types/hoist-non-react-statics@*":
522 | version "3.3.1"
523 | resolved "https://registry.yarnpkg.com/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz#1124aafe5118cb591977aeb1ceaaed1070eb039f"
524 | integrity sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA==
525 | dependencies:
526 | "@types/react" "*"
527 | hoist-non-react-statics "^3.3.0"
528 |
529 | "@types/prop-types@*":
530 | version "15.7.4"
531 | resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.4.tgz#fcf7205c25dff795ee79af1e30da2c9790808f11"
532 | integrity sha512-rZ5drC/jWjrArrS8BR6SIr4cWpW09RNTYt9AMZo3Jwwif+iacXAqgVjm0B0Bv/S1jhDXKHqRVNCbACkJ89RAnQ==
533 |
534 | "@types/react-router-dom@^5.1.8":
535 | version "5.3.3"
536 | resolved "https://registry.yarnpkg.com/@types/react-router-dom/-/react-router-dom-5.3.3.tgz#e9d6b4a66fcdbd651a5f106c2656a30088cc1e83"
537 | integrity sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw==
538 | dependencies:
539 | "@types/history" "^4.7.11"
540 | "@types/react" "*"
541 | "@types/react-router" "*"
542 |
543 | "@types/react-router@*":
544 | version "5.1.18"
545 | resolved "https://registry.yarnpkg.com/@types/react-router/-/react-router-5.1.18.tgz#c8851884b60bc23733500d86c1266e1cfbbd9ef3"
546 | integrity sha512-YYknwy0D0iOwKQgz9v8nOzt2J6l4gouBmDnWqUUznltOTaon+r8US8ky8HvN0tXvc38U9m6z/t2RsVsnd1zM0g==
547 | dependencies:
548 | "@types/history" "^4.7.11"
549 | "@types/react" "*"
550 |
551 | "@types/react@*", "@types/react@^17.0.14":
552 | version "17.0.38"
553 | resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.38.tgz#f24249fefd89357d5fa71f739a686b8d7c7202bd"
554 | integrity sha512-SI92X1IA+FMnP3qM5m4QReluXzhcmovhZnLNm3pyeQlooi02qI7sLiepEYqT678uNiyc25XfCqxREFpy3W7YhQ==
555 | dependencies:
556 | "@types/prop-types" "*"
557 | "@types/scheduler" "*"
558 | csstype "^3.0.2"
559 |
560 | "@types/scheduler@*":
561 | version "0.16.2"
562 | resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.2.tgz#1a62f89525723dde24ba1b01b092bf5df8ad4d39"
563 | integrity sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==
564 |
565 | "@types/styled-components@^5.1.11":
566 | version "5.1.21"
567 | resolved "https://registry.yarnpkg.com/@types/styled-components/-/styled-components-5.1.21.tgz#39f6bdc4103254d899531ef099dae5619b039cdb"
568 | integrity sha512-lQzA0T6CaLXoeiOkSe2US2JfFgJV2/yJ8W1BaJubQQh2wdq7H+qScQQfbjURyLkgI1Ig+S/jRHCrWikfMHC6zA==
569 | dependencies:
570 | "@types/hoist-non-react-statics" "*"
571 | "@types/react" "*"
572 | csstype "^3.0.2"
573 |
574 | "@use-gesture/core@10.2.4":
575 | version "10.2.4"
576 | resolved "https://registry.yarnpkg.com/@use-gesture/core/-/core-10.2.4.tgz#139370223174b0589bd4b4f8ac7c0beb6ba64ba2"
577 | integrity sha512-fk1LjCBj43BKb8NE05qkdtPOR0ngA7PwgvEqfFap/h+s7QHi+JTv4/mtDQ4wI9zzem+Ry5EKrHS/cVdBehI4wA==
578 |
579 | "@use-gesture/react@^10.2.0", "@use-gesture/react@^10.2.4":
580 | version "10.2.4"
581 | resolved "https://registry.yarnpkg.com/@use-gesture/react/-/react-10.2.4.tgz#b333e91b00670785ee32e8f4f1530ac6b8894bbc"
582 | integrity sha512-CbqyRj+qNbRBOGmS8OWtaOa29fxEr7bKTYHvPuMQ1wsgQDh2/DqQxbp7cFxAg6WZ8oZjppDj/EkWnw22WpIIWQ==
583 | dependencies:
584 | "@use-gesture/core" "10.2.4"
585 |
586 | "@vitejs/plugin-react-refresh@^1.3.5":
587 | version "1.3.6"
588 | resolved "https://registry.yarnpkg.com/@vitejs/plugin-react-refresh/-/plugin-react-refresh-1.3.6.tgz#19818392db01e81746cfeb04e096ab3010e79fe3"
589 | integrity sha512-iNR/UqhUOmFFxiezt0em9CgmiJBdWR+5jGxB2FihaoJfqGt76kiwaKoVOJVU5NYcDWMdN06LbyN2VIGIoYdsEA==
590 | dependencies:
591 | "@babel/core" "^7.14.8"
592 | "@babel/plugin-transform-react-jsx-self" "^7.14.5"
593 | "@babel/plugin-transform-react-jsx-source" "^7.14.5"
594 | "@rollup/pluginutils" "^4.1.1"
595 | react-refresh "^0.10.0"
596 |
597 | "@webgpu/glslang@^0.0.15":
598 | version "0.0.15"
599 | resolved "https://registry.yarnpkg.com/@webgpu/glslang/-/glslang-0.0.15.tgz#f5ccaf6015241e6175f4b90906b053f88483d1f2"
600 | integrity sha512-niT+Prh3Aff8Uf1MVBVUsaNjFj9rJAKDXuoHIKiQbB+6IUP/3J3JIhBNyZ7lDhytvXxw6ppgnwKZdDJ08UMj4Q==
601 |
602 | "@webxr-input-profiles/motion-controllers@^1.0.0":
603 | version "1.0.0"
604 | resolved "https://registry.yarnpkg.com/@webxr-input-profiles/motion-controllers/-/motion-controllers-1.0.0.tgz#0a84533288af39d85bfe1987721035925d69be47"
605 | integrity sha512-Ppxde+G1/QZbU8ShCQg+eq5VtlcL/FPkerF1dkDOLlIml0LJD1tFqnCZYR0SrHzYleIQ2siRnOx7xbFLaCpExQ==
606 |
607 | "@welldone-software/why-did-you-render@^6.2.3":
608 | version "6.2.3"
609 | resolved "https://registry.yarnpkg.com/@welldone-software/why-did-you-render/-/why-did-you-render-6.2.3.tgz#cdd5e27cf25b7e767c1c0b0e8808f67d3f6be833"
610 | integrity sha512-FQgi90jvC9uw2aALlonJfqaWOvU5UUBBVvdAnS2iryXwCc4YJkKsPJY5Y/LzaND3OIyk8XGUn1vTRn6hcem28Q==
611 | dependencies:
612 | lodash "^4"
613 |
614 | ansi-styles@^3.2.1:
615 | version "3.2.1"
616 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
617 | integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==
618 | dependencies:
619 | color-convert "^1.9.0"
620 |
621 | assign-symbols@^1.0.0:
622 | version "1.0.0"
623 | resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367"
624 | integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=
625 |
626 | attr-accept@^2.2.1:
627 | version "2.2.2"
628 | resolved "https://registry.yarnpkg.com/attr-accept/-/attr-accept-2.2.2.tgz#646613809660110749e92f2c10833b70968d929b"
629 | integrity sha512-7prDjvt9HmqiZ0cl5CRjtS84sEyhsHP2coDkaZKRKVfCDo9s7iw7ChVmar78Gu9pC4SoR/28wFu/G5JJhTnqEg==
630 |
631 | "babel-plugin-styled-components@>= 1.12.0":
632 | version "2.0.2"
633 | resolved "https://registry.yarnpkg.com/babel-plugin-styled-components/-/babel-plugin-styled-components-2.0.2.tgz#0fac11402dc9db73698b55847ab1dc73f5197c54"
634 | integrity sha512-7eG5NE8rChnNTDxa6LQfynwgHTVOYYaHJbUYSlOhk8QBXIQiMBKq4gyfHBBKPrxUcVBXVJL61ihduCpCQbuNbw==
635 | dependencies:
636 | "@babel/helper-annotate-as-pure" "^7.16.0"
637 | "@babel/helper-module-imports" "^7.16.0"
638 | babel-plugin-syntax-jsx "^6.18.0"
639 | lodash "^4.17.11"
640 |
641 | babel-plugin-syntax-jsx@^6.18.0:
642 | version "6.18.0"
643 | resolved "https://registry.yarnpkg.com/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz#0af32a9a6e13ca7a3fd5069e62d7b0f58d0d8946"
644 | integrity sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY=
645 |
646 | bidi-js@^1.0.2:
647 | version "1.0.2"
648 | resolved "https://registry.yarnpkg.com/bidi-js/-/bidi-js-1.0.2.tgz#1a497a762c2ddea377429d2649c9ce0f8a91527f"
649 | integrity sha512-rzSy/k7WdX5zOyeHHCOixGXbCHkyogkxPKL2r8QtzHmVQDiWCXUWa18bLdMWT9CYMLOYTjWpTHawuev2ouYJVw==
650 | dependencies:
651 | require-from-string "^2.0.2"
652 |
653 | browserslist@^4.17.5:
654 | version "4.19.1"
655 | resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.19.1.tgz#4ac0435b35ab655896c31d53018b6dd5e9e4c9a3"
656 | integrity sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A==
657 | dependencies:
658 | caniuse-lite "^1.0.30001286"
659 | electron-to-chromium "^1.4.17"
660 | escalade "^3.1.1"
661 | node-releases "^2.0.1"
662 | picocolors "^1.0.0"
663 |
664 | camelize@^1.0.0:
665 | version "1.0.0"
666 | resolved "https://registry.yarnpkg.com/camelize/-/camelize-1.0.0.tgz#164a5483e630fa4321e5af07020e531831b2609b"
667 | integrity sha1-FkpUg+Yw+kMh5a8HAg5TGDGyYJs=
668 |
669 | caniuse-lite@^1.0.30001286:
670 | version "1.0.30001301"
671 | resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001301.tgz#ebc9086026534cab0dab99425d9c3b4425e5f450"
672 | integrity sha512-csfD/GpHMqgEL3V3uIgosvh+SVIQvCh43SNu9HRbP1lnxkKm1kjDG4f32PP571JplkLjfS+mg2p1gxR7MYrrIA==
673 |
674 | chalk@^2.0.0:
675 | version "2.4.2"
676 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
677 | integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
678 | dependencies:
679 | ansi-styles "^3.2.1"
680 | escape-string-regexp "^1.0.5"
681 | supports-color "^5.3.0"
682 |
683 | chevrotain@^9.0.2:
684 | version "9.1.0"
685 | resolved "https://registry.yarnpkg.com/chevrotain/-/chevrotain-9.1.0.tgz#ca2a811372687ad6f4d11c063cd27a26e5fbd52d"
686 | integrity sha512-A86/55so63HCfu0dgGg3j9u8uuuBOrSqly1OhBZxRu2x6sAKILLzfVjbGMw45kgier6lz45EzcjjWtTRgoT84Q==
687 | dependencies:
688 | "@chevrotain/types" "^9.1.0"
689 | "@chevrotain/utils" "^9.1.0"
690 | regexp-to-ast "0.5.0"
691 |
692 | color-convert@^1.9.0:
693 | version "1.9.3"
694 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"
695 | integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==
696 | dependencies:
697 | color-name "1.1.3"
698 |
699 | color-name@1.1.3:
700 | version "1.1.3"
701 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
702 | integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=
703 |
704 | colord@^2.9.2:
705 | version "2.9.2"
706 | resolved "https://registry.yarnpkg.com/colord/-/colord-2.9.2.tgz#25e2bacbbaa65991422c07ea209e2089428effb1"
707 | integrity sha512-Uqbg+J445nc1TKn4FoDPS6ZZqAvEDnwrH42yo8B40JSOgSLxMZ/gt3h4nmCtPLQeXhjJJkqBx7SCY35WnIixaQ==
708 |
709 | convert-source-map@^1.7.0:
710 | version "1.8.0"
711 | resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.8.0.tgz#f3373c32d21b4d780dd8004514684fb791ca4369"
712 | integrity sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==
713 | dependencies:
714 | safe-buffer "~5.1.1"
715 |
716 | css-color-keywords@^1.0.0:
717 | version "1.0.0"
718 | resolved "https://registry.yarnpkg.com/css-color-keywords/-/css-color-keywords-1.0.0.tgz#fea2616dc676b2962686b3af8dbdbe180b244e05"
719 | integrity sha1-/qJhbcZ2spYmhrOvjb2+GAskTgU=
720 |
721 | css-to-react-native@^3.0.0:
722 | version "3.0.0"
723 | resolved "https://registry.yarnpkg.com/css-to-react-native/-/css-to-react-native-3.0.0.tgz#62dbe678072a824a689bcfee011fc96e02a7d756"
724 | integrity sha512-Ro1yETZA813eoyUp2GDBhG2j+YggidUmzO1/v9eYBKR2EHVEniE2MI/NqpTQ954BMpTPZFsGNPm46qFB9dpaPQ==
725 | dependencies:
726 | camelize "^1.0.0"
727 | css-color-keywords "^1.0.0"
728 | postcss-value-parser "^4.0.2"
729 |
730 | csstype@^3.0.2, csstype@^3.0.4:
731 | version "3.0.10"
732 | resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.10.tgz#2ad3a7bed70f35b965707c092e5f30b327c290e5"
733 | integrity sha512-2u44ZG2OcNUO9HDp/Jl8C07x6pU/eTR3ncV91SiK3dhG9TWvRVsCoJw14Ckx5DgWkzGA3waZWO3d7pgqpUI/XA==
734 |
735 | debug@^4.1.0:
736 | version "4.3.3"
737 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.3.tgz#04266e0b70a98d4462e6e288e38259213332b664"
738 | integrity sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==
739 | dependencies:
740 | ms "2.1.2"
741 |
742 | dequal@^2.0.2:
743 | version "2.0.2"
744 | resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.2.tgz#85ca22025e3a87e65ef75a7a437b35284a7e319d"
745 | integrity sha512-q9K8BlJVxK7hQYqa6XISGmBZbtQQWVXSrRrWreHC94rMt1QL/Impruc+7p2CYSYuVIUr+YCt6hjrs1kkdJRTug==
746 |
747 | detect-gpu@^3.1.28:
748 | version "3.1.30"
749 | resolved "https://registry.yarnpkg.com/detect-gpu/-/detect-gpu-3.1.30.tgz#5f81d02dc8c6417f686e1057256b3bd5d5a6f3f5"
750 | integrity sha512-WUOk8imHH56AWVt6iHry69qbNEFsPjtS6qsinurfxeI3bVYQZzFk8zECTaodLxfeRad7QspDjjkJWkp5vBo8WA==
751 | dependencies:
752 | webgl-constants "^1.1.1"
753 |
754 | draco3d@^1.4.1:
755 | version "1.5.0"
756 | resolved "https://registry.yarnpkg.com/draco3d/-/draco3d-1.5.0.tgz#768d5e449b6ca60684ed4666e56a5bb585f8c408"
757 | integrity sha512-8ESjH7o5xju1nfSvcS2A9vIbwSRQ3yYY0Yv7SFhNszsq4FlN4LGZuxNc3YfAPcg0AddaK0dE5AES3w1JoGeViA==
758 |
759 | electron-to-chromium@^1.4.17:
760 | version "1.4.51"
761 | resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.51.tgz#a432f5a5d983ace79278a33057300cf949627e63"
762 | integrity sha512-JNEmcYl3mk1tGQmy0EvL5eik/CKSBuzAyGP0QFdG6LIgxQe3II0BL1m2zKc2MZMf3uGqHWE1TFddJML0RpjSHQ==
763 |
764 | esbuild-android-arm64@0.13.15:
765 | version "0.13.15"
766 | resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.13.15.tgz#3fc3ff0bab76fe35dd237476b5d2b32bb20a3d44"
767 | integrity sha512-m602nft/XXeO8YQPUDVoHfjyRVPdPgjyyXOxZ44MK/agewFFkPa8tUo6lAzSWh5Ui5PB4KR9UIFTSBKh/RrCmg==
768 |
769 | esbuild-darwin-64@0.13.15:
770 | version "0.13.15"
771 | resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.13.15.tgz#8e9169c16baf444eacec60d09b24d11b255a8e72"
772 | integrity sha512-ihOQRGs2yyp7t5bArCwnvn2Atr6X4axqPpEdCFPVp7iUj4cVSdisgvEKdNR7yH3JDjW6aQDw40iQFoTqejqxvQ==
773 |
774 | esbuild-darwin-arm64@0.13.15:
775 | version "0.13.15"
776 | resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.13.15.tgz#1b07f893b632114f805e188ddfca41b2b778229a"
777 | integrity sha512-i1FZssTVxUqNlJ6cBTj5YQj4imWy3m49RZRnHhLpefFIh0To05ow9DTrXROTE1urGTQCloFUXTX8QfGJy1P8dQ==
778 |
779 | esbuild-freebsd-64@0.13.15:
780 | version "0.13.15"
781 | resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.13.15.tgz#0b8b7eca1690c8ec94c75680c38c07269c1f4a85"
782 | integrity sha512-G3dLBXUI6lC6Z09/x+WtXBXbOYQZ0E8TDBqvn7aMaOCzryJs8LyVXKY4CPnHFXZAbSwkCbqiPuSQ1+HhrNk7EA==
783 |
784 | esbuild-freebsd-arm64@0.13.15:
785 | version "0.13.15"
786 | resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.13.15.tgz#2e1a6c696bfdcd20a99578b76350b41db1934e52"
787 | integrity sha512-KJx0fzEDf1uhNOZQStV4ujg30WlnwqUASaGSFPhznLM/bbheu9HhqZ6mJJZM32lkyfGJikw0jg7v3S0oAvtvQQ==
788 |
789 | esbuild-linux-32@0.13.15:
790 | version "0.13.15"
791 | resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.13.15.tgz#6fd39f36fc66dd45b6b5f515728c7bbebc342a69"
792 | integrity sha512-ZvTBPk0YWCLMCXiFmD5EUtB30zIPvC5Itxz0mdTu/xZBbbHJftQgLWY49wEPSn2T/TxahYCRDWun5smRa0Tu+g==
793 |
794 | esbuild-linux-64@0.13.15:
795 | version "0.13.15"
796 | resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.13.15.tgz#9cb8e4bcd7574e67946e4ee5f1f1e12386bb6dd3"
797 | integrity sha512-eCKzkNSLywNeQTRBxJRQ0jxRCl2YWdMB3+PkWFo2BBQYC5mISLIVIjThNtn6HUNqua1pnvgP5xX0nHbZbPj5oA==
798 |
799 | esbuild-linux-arm64@0.13.15:
800 | version "0.13.15"
801 | resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.13.15.tgz#3891aa3704ec579a1b92d2a586122e5b6a2bfba1"
802 | integrity sha512-bYpuUlN6qYU9slzr/ltyLTR9YTBS7qUDymO8SV7kjeNext61OdmqFAzuVZom+OLW1HPHseBfJ/JfdSlx8oTUoA==
803 |
804 | esbuild-linux-arm@0.13.15:
805 | version "0.13.15"
806 | resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.13.15.tgz#8a00e99e6a0c6c9a6b7f334841364d8a2b4aecfe"
807 | integrity sha512-wUHttDi/ol0tD8ZgUMDH8Ef7IbDX+/UsWJOXaAyTdkT7Yy9ZBqPg8bgB/Dn3CZ9SBpNieozrPRHm0BGww7W/jA==
808 |
809 | esbuild-linux-mips64le@0.13.15:
810 | version "0.13.15"
811 | resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.13.15.tgz#36b07cc47c3d21e48db3bb1f4d9ef8f46aead4f7"
812 | integrity sha512-KlVjIG828uFPyJkO/8gKwy9RbXhCEUeFsCGOJBepUlpa7G8/SeZgncUEz/tOOUJTcWMTmFMtdd3GElGyAtbSWg==
813 |
814 | esbuild-linux-ppc64le@0.13.15:
815 | version "0.13.15"
816 | resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.13.15.tgz#f7e6bba40b9a11eb9dcae5b01550ea04670edad2"
817 | integrity sha512-h6gYF+OsaqEuBjeesTBtUPw0bmiDu7eAeuc2OEH9S6mV9/jPhPdhOWzdeshb0BskRZxPhxPOjqZ+/OqLcxQwEQ==
818 |
819 | esbuild-netbsd-64@0.13.15:
820 | version "0.13.15"
821 | resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.13.15.tgz#a2fedc549c2b629d580a732d840712b08d440038"
822 | integrity sha512-3+yE9emwoevLMyvu+iR3rsa+Xwhie7ZEHMGDQ6dkqP/ndFzRHkobHUKTe+NCApSqG5ce2z4rFu+NX/UHnxlh3w==
823 |
824 | esbuild-openbsd-64@0.13.15:
825 | version "0.13.15"
826 | resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.13.15.tgz#b22c0e5806d3a1fbf0325872037f885306b05cd7"
827 | integrity sha512-wTfvtwYJYAFL1fSs8yHIdf5GEE4NkbtbXtjLWjM3Cw8mmQKqsg8kTiqJ9NJQe5NX/5Qlo7Xd9r1yKMMkHllp5g==
828 |
829 | esbuild-sunos-64@0.13.15:
830 | version "0.13.15"
831 | resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.13.15.tgz#d0b6454a88375ee8d3964daeff55c85c91c7cef4"
832 | integrity sha512-lbivT9Bx3t1iWWrSnGyBP9ODriEvWDRiweAs69vI+miJoeKwHWOComSRukttbuzjZ8r1q0mQJ8Z7yUsDJ3hKdw==
833 |
834 | esbuild-windows-32@0.13.15:
835 | version "0.13.15"
836 | resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.13.15.tgz#c96d0b9bbb52f3303322582ef8e4847c5ad375a7"
837 | integrity sha512-fDMEf2g3SsJ599MBr50cY5ve5lP1wyVwTe6aLJsM01KtxyKkB4UT+fc5MXQFn3RLrAIAZOG+tHC+yXObpSn7Nw==
838 |
839 | esbuild-windows-64@0.13.15:
840 | version "0.13.15"
841 | resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.13.15.tgz#1f79cb9b1e1bb02fb25cd414cb90d4ea2892c294"
842 | integrity sha512-9aMsPRGDWCd3bGjUIKG/ZOJPKsiztlxl/Q3C1XDswO6eNX/Jtwu4M+jb6YDH9hRSUflQWX0XKAfWzgy5Wk54JQ==
843 |
844 | esbuild-windows-arm64@0.13.15:
845 | version "0.13.15"
846 | resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.13.15.tgz#482173070810df22a752c686509c370c3be3b3c3"
847 | integrity sha512-zzvyCVVpbwQQATaf3IG8mu1IwGEiDxKkYUdA4FpoCHi1KtPa13jeScYDjlW0Qh+ebWzpKfR2ZwvqAQkSWNcKjA==
848 |
849 | esbuild@^0.13.12:
850 | version "0.13.15"
851 | resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.13.15.tgz#db56a88166ee373f87dbb2d8798ff449e0450cdf"
852 | integrity sha512-raCxt02HBKv8RJxE8vkTSCXGIyKHdEdGfUmiYb8wnabnaEmHzyW7DCHb5tEN0xU8ryqg5xw54mcwnYkC4x3AIw==
853 | optionalDependencies:
854 | esbuild-android-arm64 "0.13.15"
855 | esbuild-darwin-64 "0.13.15"
856 | esbuild-darwin-arm64 "0.13.15"
857 | esbuild-freebsd-64 "0.13.15"
858 | esbuild-freebsd-arm64 "0.13.15"
859 | esbuild-linux-32 "0.13.15"
860 | esbuild-linux-64 "0.13.15"
861 | esbuild-linux-arm "0.13.15"
862 | esbuild-linux-arm64 "0.13.15"
863 | esbuild-linux-mips64le "0.13.15"
864 | esbuild-linux-ppc64le "0.13.15"
865 | esbuild-netbsd-64 "0.13.15"
866 | esbuild-openbsd-64 "0.13.15"
867 | esbuild-sunos-64 "0.13.15"
868 | esbuild-windows-32 "0.13.15"
869 | esbuild-windows-64 "0.13.15"
870 | esbuild-windows-arm64 "0.13.15"
871 |
872 | escalade@^3.1.1:
873 | version "3.1.1"
874 | resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40"
875 | integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==
876 |
877 | escape-string-regexp@^1.0.5:
878 | version "1.0.5"
879 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
880 | integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=
881 |
882 | estree-walker@^2.0.1:
883 | version "2.0.2"
884 | resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac"
885 | integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==
886 |
887 | extend-shallow@^2.0.1:
888 | version "2.0.1"
889 | resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f"
890 | integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=
891 | dependencies:
892 | is-extendable "^0.1.0"
893 |
894 | extend-shallow@^3.0.0:
895 | version "3.0.2"
896 | resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8"
897 | integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=
898 | dependencies:
899 | assign-symbols "^1.0.0"
900 | is-extendable "^1.0.1"
901 |
902 | fast-deep-equal@^3.1.3:
903 | version "3.1.3"
904 | resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
905 | integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
906 |
907 | fflate@^0.6.9:
908 | version "0.6.10"
909 | resolved "https://registry.yarnpkg.com/fflate/-/fflate-0.6.10.tgz#5f40f9659205936a2d18abf88b2e7781662b6d43"
910 | integrity sha512-IQrh3lEPM93wVCEczc9SaAOvkmcoQn/G8Bo1e8ZPlY3X3bnAxWaBdvTdvM1hP62iZp0BXWDy4vTAy4fF0+Dlpg==
911 |
912 | file-selector@^0.2.2:
913 | version "0.2.4"
914 | resolved "https://registry.yarnpkg.com/file-selector/-/file-selector-0.2.4.tgz#7b98286f9dbb9925f420130ea5ed0a69238d4d80"
915 | integrity sha512-ZDsQNbrv6qRi1YTDOEWzf5J2KjZ9KMI1Q2SGeTkCJmNNW25Jg4TW4UMcmoqcg4WrAyKRcpBXdbWRxkfrOzVRbA==
916 | dependencies:
917 | tslib "^2.0.3"
918 |
919 | for-in@^1.0.2:
920 | version "1.0.2"
921 | resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80"
922 | integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=
923 |
924 | framer-motion@^6.2.1:
925 | version "6.2.1"
926 | resolved "https://registry.yarnpkg.com/framer-motion/-/framer-motion-6.2.1.tgz#e0d02dd47211fe87e43bf5a0779991372bdadb1c"
927 | integrity sha512-/8MMBCKgiuO6V/raGsJ+2dFZw5kteXsX1cSarxiM8o1F0XNlzd+4WGTIos85G2nZpwpmReJuUk+Hz4S3Y7fwPw==
928 | dependencies:
929 | framesync "6.0.1"
930 | hey-listen "^1.0.8"
931 | popmotion "11.0.3"
932 | style-value-types "5.0.0"
933 | tslib "^2.1.0"
934 | optionalDependencies:
935 | "@emotion/is-prop-valid" "^0.8.2"
936 |
937 | framesync@6.0.1:
938 | version "6.0.1"
939 | resolved "https://registry.yarnpkg.com/framesync/-/framesync-6.0.1.tgz#5e32fc01f1c42b39c654c35b16440e07a25d6f20"
940 | integrity sha512-fUY88kXvGiIItgNC7wcTOl0SNRCVXMKSWW2Yzfmn7EKNc+MpCzcz9DhdHcdjbrtN3c6R4H5dTY2jiCpPdysEjA==
941 | dependencies:
942 | tslib "^2.1.0"
943 |
944 | fsevents@~2.3.2:
945 | version "2.3.2"
946 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a"
947 | integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==
948 |
949 | function-bind@^1.1.1:
950 | version "1.1.1"
951 | resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
952 | integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
953 |
954 | gensync@^1.0.0-beta.2:
955 | version "1.0.0-beta.2"
956 | resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0"
957 | integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==
958 |
959 | get-value@^2.0.6:
960 | version "2.0.6"
961 | resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28"
962 | integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=
963 |
964 | globals@^11.1.0:
965 | version "11.12.0"
966 | resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e"
967 | integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==
968 |
969 | glsl-noise@^0.0.0:
970 | version "0.0.0"
971 | resolved "https://registry.yarnpkg.com/glsl-noise/-/glsl-noise-0.0.0.tgz#367745f3a33382c0eeec4cb54b7e99cfc1d7670b"
972 | integrity sha1-NndF86MzgsDu7Ey1S36Zz8HXZws=
973 |
974 | has-flag@^3.0.0:
975 | version "3.0.0"
976 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
977 | integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0=
978 |
979 | has@^1.0.3:
980 | version "1.0.3"
981 | resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
982 | integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==
983 | dependencies:
984 | function-bind "^1.1.1"
985 |
986 | hey-listen@^1.0.8:
987 | version "1.0.8"
988 | resolved "https://registry.yarnpkg.com/hey-listen/-/hey-listen-1.0.8.tgz#8e59561ff724908de1aa924ed6ecc84a56a9aa68"
989 | integrity sha512-COpmrF2NOg4TBWUJ5UVyaCU2A88wEMkUPK4hNqyCkqHbxT92BbvfjoSozkAIIm6XhicGlJHhFdullInrdhwU8Q==
990 |
991 | hoist-non-react-statics@^3.0.0, hoist-non-react-statics@^3.3.0:
992 | version "3.3.2"
993 | resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45"
994 | integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==
995 | dependencies:
996 | react-is "^16.7.0"
997 |
998 | is-core-module@^2.8.1:
999 | version "2.8.1"
1000 | resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.8.1.tgz#f59fdfca701d5879d0a6b100a40aa1560ce27211"
1001 | integrity sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==
1002 | dependencies:
1003 | has "^1.0.3"
1004 |
1005 | is-extendable@^0.1.0, is-extendable@^0.1.1:
1006 | version "0.1.1"
1007 | resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89"
1008 | integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=
1009 |
1010 | is-extendable@^1.0.0, is-extendable@^1.0.1:
1011 | version "1.0.1"
1012 | resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4"
1013 | integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==
1014 | dependencies:
1015 | is-plain-object "^2.0.4"
1016 |
1017 | is-plain-object@^2.0.3, is-plain-object@^2.0.4:
1018 | version "2.0.4"
1019 | resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677"
1020 | integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==
1021 | dependencies:
1022 | isobject "^3.0.1"
1023 |
1024 | isobject@^3.0.1:
1025 | version "3.0.1"
1026 | resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df"
1027 | integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8=
1028 |
1029 | "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0:
1030 | version "4.0.0"
1031 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
1032 | integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
1033 |
1034 | jsesc@^2.5.1:
1035 | version "2.5.2"
1036 | resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4"
1037 | integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==
1038 |
1039 | json5@^2.1.2:
1040 | version "2.2.0"
1041 | resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.0.tgz#2dfefe720c6ba525d9ebd909950f0515316c89a3"
1042 | integrity sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==
1043 | dependencies:
1044 | minimist "^1.2.5"
1045 |
1046 | ktx-parse@^0.2.1:
1047 | version "0.2.2"
1048 | resolved "https://registry.yarnpkg.com/ktx-parse/-/ktx-parse-0.2.2.tgz#b037b66044855215b332cb73104590af49e47791"
1049 | integrity sha512-cFBc1jnGG2WlUf52NbDUXK2obJ+Mo9WUkBRvr6tP6CKxRMvZwDDFNV3JAS4cewETp5KyexByfWm9sm+O8AffiQ==
1050 |
1051 | leva@^0.9.18:
1052 | version "0.9.18"
1053 | resolved "https://registry.yarnpkg.com/leva/-/leva-0.9.18.tgz#f281375cad1dde517761e3663c3121fd616b97f7"
1054 | integrity sha512-4KlYlblbJAemVHkpljd56RW4IehYvtMlmP4sygC9eot9RD3zXePh7YfL8KF7njNXZkVn/X3xEhRQs45l3QYDWA==
1055 | dependencies:
1056 | "@radix-ui/react-portal" "^0.1.3"
1057 | "@radix-ui/react-tooltip" "0.1.6"
1058 | "@stitches/react" "1.2.6"
1059 | "@use-gesture/react" "^10.2.4"
1060 | "@welldone-software/why-did-you-render" "^6.2.3"
1061 | colord "^2.9.2"
1062 | dequal "^2.0.2"
1063 | merge-value "^1.0.0"
1064 | react-colorful "^5.5.1"
1065 | react-dropzone "^11.4.2"
1066 | v8n "^1.3.3"
1067 | zustand "^3.6.7"
1068 |
1069 | lodash.omit@^4.5.0:
1070 | version "4.5.0"
1071 | resolved "https://registry.yarnpkg.com/lodash.omit/-/lodash.omit-4.5.0.tgz#6eb19ae5a1ee1dd9df0b969e66ce0b7fa30b5e60"
1072 | integrity sha1-brGa5aHuHdnfC5aeZs4Lf6MLXmA=
1073 |
1074 | lodash.pick@^4.4.0:
1075 | version "4.4.0"
1076 | resolved "https://registry.yarnpkg.com/lodash.pick/-/lodash.pick-4.4.0.tgz#52f05610fff9ded422611441ed1fc123a03001b3"
1077 | integrity sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM=
1078 |
1079 | lodash@^4, lodash@^4.17.11:
1080 | version "4.17.21"
1081 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
1082 | integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
1083 |
1084 | loose-envify@^1.1.0, loose-envify@^1.4.0:
1085 | version "1.4.0"
1086 | resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf"
1087 | integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==
1088 | dependencies:
1089 | js-tokens "^3.0.0 || ^4.0.0"
1090 |
1091 | merge-value@^1.0.0:
1092 | version "1.0.0"
1093 | resolved "https://registry.yarnpkg.com/merge-value/-/merge-value-1.0.0.tgz#d28f8d41c0b37426e032d1059a0d0343302de502"
1094 | integrity sha512-fJMmvat4NeKz63Uv9iHWcPDjCWcCkoiRoajRTEO8hlhUC6rwaHg0QCF9hBOTjZmm4JuglPckPSTtcuJL5kp0TQ==
1095 | dependencies:
1096 | get-value "^2.0.6"
1097 | is-extendable "^1.0.0"
1098 | mixin-deep "^1.2.0"
1099 | set-value "^2.0.0"
1100 |
1101 | minimist@^1.2.5:
1102 | version "1.2.5"
1103 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602"
1104 | integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==
1105 |
1106 | mixin-deep@^1.2.0:
1107 | version "1.3.2"
1108 | resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566"
1109 | integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==
1110 | dependencies:
1111 | for-in "^1.0.2"
1112 | is-extendable "^1.0.1"
1113 |
1114 | mmd-parser@^1.0.4:
1115 | version "1.0.4"
1116 | resolved "https://registry.yarnpkg.com/mmd-parser/-/mmd-parser-1.0.4.tgz#87cc05782cb5974ca854f0303fc5147bc9d690e7"
1117 | integrity sha512-Qi0VCU46t2IwfGv5KF0+D/t9cizcDug7qnNoy9Ggk7aucp0tssV8IwTMkBlDbm+VqAf3cdQHTCARKSsuS2MYFg==
1118 |
1119 | ms@2.1.2:
1120 | version "2.1.2"
1121 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
1122 | integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
1123 |
1124 | nanoid@^3.1.30:
1125 | version "3.2.0"
1126 | resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.2.0.tgz#62667522da6673971cca916a6d3eff3f415ff80c"
1127 | integrity sha512-fmsZYa9lpn69Ad5eDn7FMcnnSR+8R34W9qJEijxYhTbfOWzr22n1QxCMzXLK+ODyW2973V3Fux959iQoUxzUIA==
1128 |
1129 | node-releases@^2.0.1:
1130 | version "2.0.1"
1131 | resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.1.tgz#3d1d395f204f1f2f29a54358b9fb678765ad2fc5"
1132 | integrity sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==
1133 |
1134 | object-assign@^4.1.1:
1135 | version "4.1.1"
1136 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
1137 | integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=
1138 |
1139 | opentype.js@^1.3.3:
1140 | version "1.3.4"
1141 | resolved "https://registry.yarnpkg.com/opentype.js/-/opentype.js-1.3.4.tgz#1c0e72e46288473cc4a4c6a2dc60fd7fe6020d77"
1142 | integrity sha512-d2JE9RP/6uagpQAVtJoF0pJJA/fgai89Cc50Yp0EJHk+eLp6QQ7gBoblsnubRULNY132I0J1QKMJ+JTbMqz4sw==
1143 | dependencies:
1144 | string.prototype.codepointat "^0.2.1"
1145 | tiny-inflate "^1.0.3"
1146 |
1147 | path-parse@^1.0.7:
1148 | version "1.0.7"
1149 | resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735"
1150 | integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
1151 |
1152 | picocolors@^1.0.0:
1153 | version "1.0.0"
1154 | resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c"
1155 | integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==
1156 |
1157 | picomatch@^2.2.2:
1158 | version "2.3.1"
1159 | resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42"
1160 | integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
1161 |
1162 | popmotion@11.0.3:
1163 | version "11.0.3"
1164 | resolved "https://registry.yarnpkg.com/popmotion/-/popmotion-11.0.3.tgz#565c5f6590bbcddab7a33a074bb2ba97e24b0cc9"
1165 | integrity sha512-Y55FLdj3UxkR7Vl3s7Qr4e9m0onSnP8W7d/xQLsoJM40vs6UKHFdygs6SWryasTZYqugMjm3BepCF4CWXDiHgA==
1166 | dependencies:
1167 | framesync "6.0.1"
1168 | hey-listen "^1.0.8"
1169 | style-value-types "5.0.0"
1170 | tslib "^2.1.0"
1171 |
1172 | postcss-value-parser@^4.0.2:
1173 | version "4.2.0"
1174 | resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514"
1175 | integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==
1176 |
1177 | postcss@^8.4.5:
1178 | version "8.4.5"
1179 | resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.5.tgz#bae665764dfd4c6fcc24dc0fdf7e7aa00cc77f95"
1180 | integrity sha512-jBDboWM8qpaqwkMwItqTQTiFikhs/67OYVvblFFTM7MrZjt6yMKd6r2kgXizEbTTljacm4NldIlZnhbjr84QYg==
1181 | dependencies:
1182 | nanoid "^3.1.30"
1183 | picocolors "^1.0.0"
1184 | source-map-js "^1.0.1"
1185 |
1186 | potpack@^1.0.1:
1187 | version "1.0.2"
1188 | resolved "https://registry.yarnpkg.com/potpack/-/potpack-1.0.2.tgz#23b99e64eb74f5741ffe7656b5b5c4ddce8dfc14"
1189 | integrity sha512-choctRBIV9EMT9WGAZHn3V7t0Z2pMQyl0EZE6pFc/6ml3ssw7Dlf/oAOvFwjm1HVsqfQN8GfeFyJ+d8tRzqueQ==
1190 |
1191 | prop-types@^15.6.0, prop-types@^15.7.2:
1192 | version "15.8.1"
1193 | resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5"
1194 | integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==
1195 | dependencies:
1196 | loose-envify "^1.4.0"
1197 | object-assign "^4.1.1"
1198 | react-is "^16.13.1"
1199 |
1200 | react-colorful@^5.5.1:
1201 | version "5.5.1"
1202 | resolved "https://registry.yarnpkg.com/react-colorful/-/react-colorful-5.5.1.tgz#29d9c4e496f2ca784dd2bb5053a3a4340cfaf784"
1203 | integrity sha512-M1TJH2X3RXEt12sWkpa6hLc/bbYS0H6F4rIqjQZ+RxNBstpY67d9TrFXtqdZwhpmBXcCwEi7stKqFue3ZRkiOg==
1204 |
1205 | react-composer@^5.0.2:
1206 | version "5.0.2"
1207 | resolved "https://registry.yarnpkg.com/react-composer/-/react-composer-5.0.2.tgz#131cb53326abb07363795ad3abb0dc4a3005ee05"
1208 | integrity sha512-6E2UNjUF0e7KRY+/faU2Hv7D9zagXnYdTfSSCGdYfuds6mRnVpN19vrbHXShaQzJNVXL4VOUb8qq6DvClDIG1g==
1209 | dependencies:
1210 | prop-types "^15.6.0"
1211 |
1212 | react-dom@^17.0.2:
1213 | version "17.0.2"
1214 | resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-17.0.2.tgz#ecffb6845e3ad8dbfcdc498f0d0a939736502c23"
1215 | integrity sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==
1216 | dependencies:
1217 | loose-envify "^1.1.0"
1218 | object-assign "^4.1.1"
1219 | scheduler "^0.20.2"
1220 |
1221 | react-dropzone@^11.4.2:
1222 | version "11.5.1"
1223 | resolved "https://registry.yarnpkg.com/react-dropzone/-/react-dropzone-11.5.1.tgz#f4d664437bf8af6acfccbf5040a9890c6780a49f"
1224 | integrity sha512-eNhttdq4ZDe3eKbXAe54Opt+sbtqmNK5NWTHf/l5d+1TdZqShJ8gMjBrya00qx5zkI//TYxRhu1d9pemTgaWwg==
1225 | dependencies:
1226 | attr-accept "^2.2.1"
1227 | file-selector "^0.2.2"
1228 | prop-types "^15.7.2"
1229 |
1230 | react-is@^16.13.1, react-is@^16.7.0:
1231 | version "16.13.1"
1232 | resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4"
1233 | integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==
1234 |
1235 | react-merge-refs@^1.1.0:
1236 | version "1.1.0"
1237 | resolved "https://registry.yarnpkg.com/react-merge-refs/-/react-merge-refs-1.1.0.tgz#73d88b892c6c68cbb7a66e0800faa374f4c38b06"
1238 | integrity sha512-alTKsjEL0dKH/ru1Iyn7vliS2QRcBp9zZPGoWxUOvRGWPUYgjo+V01is7p04It6KhgrzhJGnIj9GgX8W4bZoCQ==
1239 |
1240 | react-refresh@^0.10.0:
1241 | version "0.10.0"
1242 | resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.10.0.tgz#2f536c9660c0b9b1d500684d9e52a65e7404f7e3"
1243 | integrity sha512-PgidR3wST3dDYKr6b4pJoqQFpPGNKDSCDx4cZoshjXipw3LzO7mG1My2pwEzz2JVkF+inx3xRpDeQLFQGH/hsQ==
1244 |
1245 | react@^17.0.2:
1246 | version "17.0.2"
1247 | resolved "https://registry.yarnpkg.com/react/-/react-17.0.2.tgz#d0b5cc516d29eb3eee383f75b62864cfb6800037"
1248 | integrity sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==
1249 | dependencies:
1250 | loose-envify "^1.1.0"
1251 | object-assign "^4.1.1"
1252 |
1253 | regenerator-runtime@^0.13.4:
1254 | version "0.13.9"
1255 | resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz#8925742a98ffd90814988d7566ad30ca3b263b52"
1256 | integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==
1257 |
1258 | regexp-to-ast@0.5.0:
1259 | version "0.5.0"
1260 | resolved "https://registry.yarnpkg.com/regexp-to-ast/-/regexp-to-ast-0.5.0.tgz#56c73856bee5e1fef7f73a00f1473452ab712a24"
1261 | integrity sha512-tlbJqcMHnPKI9zSrystikWKwHkBqu2a/Sgw01h3zFjvYrMxEDYHzzoMZnUrbIfpTFEsoRnnviOXNCzFiSc54Qw==
1262 |
1263 | require-from-string@^2.0.2:
1264 | version "2.0.2"
1265 | resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909"
1266 | integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==
1267 |
1268 | resolve@^1.20.0:
1269 | version "1.22.0"
1270 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.0.tgz#5e0b8c67c15df57a89bdbabe603a002f21731198"
1271 | integrity sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==
1272 | dependencies:
1273 | is-core-module "^2.8.1"
1274 | path-parse "^1.0.7"
1275 | supports-preserve-symlinks-flag "^1.0.0"
1276 |
1277 | rollup@^2.59.0:
1278 | version "2.66.0"
1279 | resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.66.0.tgz#ee529ea15a20485d579039637fec3050bad03bbb"
1280 | integrity sha512-L6mKOkdyP8HK5kKJXaiWG7KZDumPJjuo1P+cfyHOJPNNTK3Moe7zCH5+fy7v8pVmHXtlxorzaBjvkBMB23s98g==
1281 | optionalDependencies:
1282 | fsevents "~2.3.2"
1283 |
1284 | safe-buffer@~5.1.1:
1285 | version "5.1.2"
1286 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
1287 | integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
1288 |
1289 | scheduler@^0.20.2:
1290 | version "0.20.2"
1291 | resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.20.2.tgz#4baee39436e34aa93b4874bddcbf0fe8b8b50e91"
1292 | integrity sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==
1293 | dependencies:
1294 | loose-envify "^1.1.0"
1295 | object-assign "^4.1.1"
1296 |
1297 | semver@^6.3.0:
1298 | version "6.3.0"
1299 | resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
1300 | integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
1301 |
1302 | set-value@^2.0.0:
1303 | version "2.0.1"
1304 | resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b"
1305 | integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==
1306 | dependencies:
1307 | extend-shallow "^2.0.1"
1308 | is-extendable "^0.1.1"
1309 | is-plain-object "^2.0.3"
1310 | split-string "^3.0.1"
1311 |
1312 | shallowequal@^1.1.0:
1313 | version "1.1.0"
1314 | resolved "https://registry.yarnpkg.com/shallowequal/-/shallowequal-1.1.0.tgz#188d521de95b9087404fd4dcb68b13df0ae4e7f8"
1315 | integrity sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==
1316 |
1317 | source-map-js@^1.0.1:
1318 | version "1.0.2"
1319 | resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c"
1320 | integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==
1321 |
1322 | source-map@^0.5.0:
1323 | version "0.5.7"
1324 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
1325 | integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=
1326 |
1327 | split-string@^3.0.1:
1328 | version "3.1.0"
1329 | resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2"
1330 | integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==
1331 | dependencies:
1332 | extend-shallow "^3.0.0"
1333 |
1334 | stats.js@^0.17.0:
1335 | version "0.17.0"
1336 | resolved "https://registry.yarnpkg.com/stats.js/-/stats.js-0.17.0.tgz#b1c3dc46d94498b578b7fd3985b81ace7131cc7d"
1337 | integrity sha1-scPcRtlEmLV4t/05hbgaznExzH0=
1338 |
1339 | string.prototype.codepointat@^0.2.1:
1340 | version "0.2.1"
1341 | resolved "https://registry.yarnpkg.com/string.prototype.codepointat/-/string.prototype.codepointat-0.2.1.tgz#004ad44c8afc727527b108cd462b4d971cd469bc"
1342 | integrity sha512-2cBVCj6I4IOvEnjgO/hWqXjqBGsY+zwPmHl12Srk9IXSZ56Jwwmy+66XO5Iut/oQVR7t5ihYdLB0GMa4alEUcg==
1343 |
1344 | style-value-types@5.0.0:
1345 | version "5.0.0"
1346 | resolved "https://registry.yarnpkg.com/style-value-types/-/style-value-types-5.0.0.tgz#76c35f0e579843d523187989da866729411fc8ad"
1347 | integrity sha512-08yq36Ikn4kx4YU6RD7jWEv27v4V+PUsOGa4n/as8Et3CuODMJQ00ENeAVXAeydX4Z2j1XHZF1K2sX4mGl18fA==
1348 | dependencies:
1349 | hey-listen "^1.0.8"
1350 | tslib "^2.1.0"
1351 |
1352 | styled-components@^5.3.0:
1353 | version "5.3.3"
1354 | resolved "https://registry.yarnpkg.com/styled-components/-/styled-components-5.3.3.tgz#312a3d9a549f4708f0fb0edc829eb34bde032743"
1355 | integrity sha512-++4iHwBM7ZN+x6DtPPWkCI4vdtwumQ+inA/DdAsqYd4SVgUKJie5vXyzotA00ttcFdQkCng7zc6grwlfIfw+lw==
1356 | dependencies:
1357 | "@babel/helper-module-imports" "^7.0.0"
1358 | "@babel/traverse" "^7.4.5"
1359 | "@emotion/is-prop-valid" "^0.8.8"
1360 | "@emotion/stylis" "^0.8.4"
1361 | "@emotion/unitless" "^0.7.4"
1362 | babel-plugin-styled-components ">= 1.12.0"
1363 | css-to-react-native "^3.0.0"
1364 | hoist-non-react-statics "^3.0.0"
1365 | shallowequal "^1.1.0"
1366 | supports-color "^5.5.0"
1367 |
1368 | supports-color@^5.3.0, supports-color@^5.5.0:
1369 | version "5.5.0"
1370 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
1371 | integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==
1372 | dependencies:
1373 | has-flag "^3.0.0"
1374 |
1375 | supports-preserve-symlinks-flag@^1.0.0:
1376 | version "1.0.0"
1377 | resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09"
1378 | integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==
1379 |
1380 | three-mesh-bvh@^0.5.2:
1381 | version "0.5.4"
1382 | resolved "https://registry.yarnpkg.com/three-mesh-bvh/-/three-mesh-bvh-0.5.4.tgz#f4c8d751f420c60c35f880393bb00553ce1b298c"
1383 | integrity sha512-Hq3zpjqBxx2sp/K2Fw7cZ1yEoIVbMc4hOv3VRtmCjHapDKkZpDh8w3OcktbCwn+vBNPt9Ii8D0nDTeqt+73Dwg==
1384 |
1385 | three-stdlib@^2.6.1:
1386 | version "2.7.2"
1387 | resolved "https://registry.yarnpkg.com/three-stdlib/-/three-stdlib-2.7.2.tgz#801a530e93f82dfdd8e2b0856cd4ef5fd73e9247"
1388 | integrity sha512-6jtdJVZOcA+6xE+/YnuOZ8eCuhQhDi4eZ6XKFGYiUDEVTrAFTehScqhWxdchaPGNEEAqSCuXGwSd14m397xr7w==
1389 | dependencies:
1390 | "@babel/runtime" "^7.16.7"
1391 | "@webgpu/glslang" "^0.0.15"
1392 | "@webxr-input-profiles/motion-controllers" "^1.0.0"
1393 | chevrotain "^9.0.2"
1394 | draco3d "^1.4.1"
1395 | fflate "^0.6.9"
1396 | ktx-parse "^0.2.1"
1397 | mmd-parser "^1.0.4"
1398 | opentype.js "^1.3.3"
1399 | potpack "^1.0.1"
1400 | zstddec "^0.0.2"
1401 |
1402 | tiny-inflate@^1.0.3:
1403 | version "1.0.3"
1404 | resolved "https://registry.yarnpkg.com/tiny-inflate/-/tiny-inflate-1.0.3.tgz#122715494913a1805166aaf7c93467933eea26c4"
1405 | integrity sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==
1406 |
1407 | to-fast-properties@^2.0.0:
1408 | version "2.0.0"
1409 | resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e"
1410 | integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=
1411 |
1412 | troika-three-text@^0.44.0:
1413 | version "0.44.0"
1414 | resolved "https://registry.yarnpkg.com/troika-three-text/-/troika-three-text-0.44.0.tgz#7c1a785c1aea9acc7631651acac97f2dbed2f26f"
1415 | integrity sha512-YwqXczjXQ4yq2a2ufO9icOIjeJutE/ODS8PHmmt/WAzVFqoiqeemclp/Ewiqm0+sdI1KnWRm6lj8df/zmhU3Og==
1416 | dependencies:
1417 | bidi-js "^1.0.2"
1418 | troika-three-utils "^0.44.0"
1419 | troika-worker-utils "^0.44.0"
1420 |
1421 | troika-three-utils@^0.44.0:
1422 | version "0.44.0"
1423 | resolved "https://registry.yarnpkg.com/troika-three-utils/-/troika-three-utils-0.44.0.tgz#c19bcbedb08bff96b8a38cf8b4a60da3b12bb44b"
1424 | integrity sha512-gaEpqrlWnkrVU5UgUx+YZTC8NrhsA2Tt6zEIbn3WNuom7pLtrgjuHpAM72gif7DoYdOWEyFco3Zb6rpJh9Fodg==
1425 |
1426 | troika-worker-utils@^0.44.0:
1427 | version "0.44.0"
1428 | resolved "https://registry.yarnpkg.com/troika-worker-utils/-/troika-worker-utils-0.44.0.tgz#a236dc004b7a3c187ae8f14a6b497e54661e12c8"
1429 | integrity sha512-/ETcH1rUoO9hVBL6Ifea2WOoGPw90ncrk8b8SJKTLtzcQvEWRIZ4eUxlVCtU93fLechCV+DWPs1y8+Bjh1WaJg==
1430 |
1431 | tslib@^2.0.3, tslib@^2.1.0:
1432 | version "2.3.1"
1433 | resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01"
1434 | integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==
1435 |
1436 | typescript@^4.3.5:
1437 | version "4.5.5"
1438 | resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.5.5.tgz#d8c953832d28924a9e3d37c73d729c846c5896f3"
1439 | integrity sha512-TCTIul70LyWe6IJWT8QSYeA54WQe8EjQFU4wY52Fasj5UKx88LNYKCgBEHcOMOrFF1rKGbD8v/xcNWVUq9SymA==
1440 |
1441 | use-asset@^1.0.4:
1442 | version "1.0.4"
1443 | resolved "https://registry.yarnpkg.com/use-asset/-/use-asset-1.0.4.tgz#506caafc29f602890593799e58b577b70293a6e2"
1444 | integrity sha512-7/hqDrWa0iMnCoET9W1T07EmD4Eg/Wmoj/X8TGBc++ECRK4m5yTsjP4O6s0yagbxfqIOuUkIxe2/sA+VR2GxZA==
1445 | dependencies:
1446 | fast-deep-equal "^3.1.3"
1447 |
1448 | utility-types@^3.10.0:
1449 | version "3.10.0"
1450 | resolved "https://registry.yarnpkg.com/utility-types/-/utility-types-3.10.0.tgz#ea4148f9a741015f05ed74fd615e1d20e6bed82b"
1451 | integrity sha512-O11mqxmi7wMKCo6HKFt5AhO4BwY3VV68YU07tgxfz8zJTIxr4BpsezN49Ffwy9j3ZpwwJp4fkRwjRzq3uWE6Rg==
1452 |
1453 | v8n@^1.3.3:
1454 | version "1.3.3"
1455 | resolved "https://registry.yarnpkg.com/v8n/-/v8n-1.3.3.tgz#4e03782173f1ac6108370859319050470d72a1c9"
1456 | integrity sha512-5w0/blXdz5idt+TJj72Vs69HcRYDARRWFami3bj7TLx8qvOVpyL3D3wdnXVrPLWvSApfVe2vBV54V16QYVlJnA==
1457 |
1458 | vite@^2.4.3:
1459 | version "2.7.13"
1460 | resolved "https://registry.yarnpkg.com/vite/-/vite-2.7.13.tgz#99b56e27dfb1e4399e407cf94648f5c7fb9d77f5"
1461 | integrity sha512-Mq8et7f3aK0SgSxjDNfOAimZGW9XryfHRa/uV0jseQSilg+KhYDSoNb9h1rknOy6SuMkvNDLKCYAYYUMCE+IgQ==
1462 | dependencies:
1463 | esbuild "^0.13.12"
1464 | postcss "^8.4.5"
1465 | resolve "^1.20.0"
1466 | rollup "^2.59.0"
1467 | optionalDependencies:
1468 | fsevents "~2.3.2"
1469 |
1470 | webgl-constants@^1.1.1:
1471 | version "1.1.1"
1472 | resolved "https://registry.yarnpkg.com/webgl-constants/-/webgl-constants-1.1.1.tgz#f9633ee87fea56647a60b9ce735cbdfb891c6855"
1473 | integrity sha512-LkBXKjU5r9vAW7Gcu3T5u+5cvSvh5WwINdr0C+9jpzVB41cjQAP5ePArDtk/WHYdVj0GefCgM73BA7FlIiNtdg==
1474 |
1475 | zstddec@^0.0.2:
1476 | version "0.0.2"
1477 | resolved "https://registry.yarnpkg.com/zstddec/-/zstddec-0.0.2.tgz#57e2f28dd1ff56b750e07d158a43f0611ad9eeb4"
1478 | integrity sha512-DCo0oxvcvOTGP/f5FA6tz2Z6wF+FIcEApSTu0zV5sQgn9hoT5lZ9YRAKUraxt9oP7l4e8TnNdi8IZTCX6WCkwA==
1479 |
1480 | zustand@^3.5.13, zustand@^3.6.7:
1481 | version "3.6.9"
1482 | resolved "https://registry.yarnpkg.com/zustand/-/zustand-3.6.9.tgz#f61a756ddea9f95c7ee7cfd3af2f88c10078afbc"
1483 | integrity sha512-OvDNu/jEWpRnEC7k8xh8GKjqYog7td6FZrLMuHs/IeI8WhrCwV+FngVuwMIFhp5kysZXr6emaeReMqjLGaldAQ==
1484 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "react-three-scissor",
3 | "description": "✂ Multiple scenes, one canvas! WebGL Scissoring implementation for React Three Fiber.",
4 | "version": "0.0.1",
5 | "main": "dist/index.cjs",
6 | "module": "dist/index.js",
7 | "types": "dist/index.d.ts",
8 | "sideEffects": false,
9 | "homepage": "https://github.com/pmndrs/react-three-scissor#readme",
10 | "scripts": {
11 | "build": "rollup -c",
12 | "postbuild": "tsc --emitDeclarationOnly",
13 | "prepublishOnly": "npm run build",
14 | "test": "echo no tests yet"
15 | },
16 | "husky": {
17 | "hooks": {
18 | "pre-commit": "lint-staged"
19 | }
20 | },
21 | "lint-staged": {
22 | "*.{js,jsx,ts,tsx}": [
23 | "eslint --fix"
24 | ]
25 | },
26 | "repository": {
27 | "type": "git",
28 | "url": "git+https://github.com/pmndrs/react-three-scissor.git"
29 | },
30 | "keywords": [
31 | "react",
32 | "scissor",
33 | "webgl",
34 | "three"
35 | ],
36 | "author": "Faraz Shaikh ",
37 | "license": "MIT",
38 | "bugs": {
39 | "url": "https://github.com/pmndrs/react-three-scissor/issues"
40 | },
41 | "devDependencies": {
42 | "@babel/core": "7.16.0",
43 | "@babel/plugin-proposal-class-properties": "^7.16.0",
44 | "@babel/plugin-transform-modules-commonjs": "7.16.0",
45 | "@babel/plugin-transform-parameters": "7.16.0",
46 | "@babel/plugin-transform-runtime": "7.16.0",
47 | "@babel/plugin-transform-template-literals": "7.16.0",
48 | "@babel/preset-env": "7.16.0",
49 | "@babel/preset-react": "7.16.0",
50 | "@babel/preset-typescript": "^7.16.0",
51 | "@react-three/fiber": "^7.0.25",
52 | "@rollup/plugin-babel": "^5.3.0",
53 | "@rollup/plugin-node-resolve": "^13.0.6",
54 | "@types/jest": "^27.0.2",
55 | "@types/node": "^16.11.6",
56 | "@types/react": "^17.0.33",
57 | "@types/react-dom": "^17.0.10",
58 | "@types/react-test-renderer": "^17.0.1",
59 | "@types/three": "^0.136.1",
60 | "@typescript-eslint/eslint-plugin": "^5.3.0",
61 | "@typescript-eslint/parser": "^5.3.0",
62 | "eslint": "^8.1.0",
63 | "eslint-config-prettier": "^8.3.0",
64 | "eslint-import-resolver-alias": "^1.1.2",
65 | "eslint-plugin-import": "^2.25.2",
66 | "eslint-plugin-jest": "^25.2.2",
67 | "eslint-plugin-prettier": "^4.0.0",
68 | "eslint-plugin-react": "^7.26.1",
69 | "eslint-plugin-react-hooks": "^4.2.0",
70 | "husky": "^7.0.4",
71 | "lint-staged": "^11.2.6",
72 | "prettier": "^2.4.1",
73 | "react": "^17.0.1",
74 | "rollup": "^2.59.0",
75 | "rollup-plugin-size-snapshot": "^0.12.0",
76 | "rollup-plugin-terser": "^7.0.2",
77 | "three": "^0.136.0",
78 | "tunnel-rat": "^0.0.2",
79 | "typescript": "^4.4.4",
80 | "zustand": "^3.6.9"
81 | },
82 | "dependencies": {}
83 | }
84 |
--------------------------------------------------------------------------------
/rollup.config.js:
--------------------------------------------------------------------------------
1 | import path from 'path'
2 | import babel from '@rollup/plugin-babel'
3 | import resolve from '@rollup/plugin-node-resolve'
4 |
5 | const root = process.platform === 'win32' ? path.resolve('/') : '/'
6 | const external = (id) => !id.startsWith('.') && !id.startsWith(root)
7 | const extensions = ['.js', '.jsx', '.ts', '.tsx', '.json']
8 |
9 | const getBabelOptions = ({ useESModules }) => ({
10 | babelrc: false,
11 | extensions,
12 | exclude: '**/node_modules/**',
13 | babelHelpers: 'runtime',
14 | presets: [
15 | [
16 | '@babel/preset-env',
17 | {
18 | include: [
19 | '@babel/plugin-proposal-optional-chaining',
20 | '@babel/plugin-proposal-nullish-coalescing-operator',
21 | '@babel/plugin-proposal-numeric-separator',
22 | '@babel/plugin-proposal-logical-assignment-operators',
23 | ],
24 | bugfixes: true,
25 | loose: true,
26 | modules: false,
27 | targets: '> 1%, not dead, not ie 11, not op_mini all',
28 | },
29 | ],
30 | '@babel/preset-react',
31 | '@babel/preset-typescript',
32 | ],
33 | plugins: [['@babel/transform-runtime', { regenerator: false, useESModules }]],
34 | })
35 |
36 | export default [
37 | {
38 | input: `./src/index.ts`,
39 | output: { file: `dist/index.js`, format: 'esm' },
40 | external,
41 | plugins: [babel(getBabelOptions({ useESModules: true })), resolve({ extensions })],
42 | },
43 | {
44 | input: `./src/index.ts`,
45 | output: { file: `dist/index.cjs.js`, format: 'cjs' },
46 | external,
47 | plugins: [babel(getBabelOptions({ useESModules: false })), resolve({ extensions })],
48 | },
49 | ]
50 |
--------------------------------------------------------------------------------
/src/Scissor.tsx:
--------------------------------------------------------------------------------
1 | import React, { useEffect } from 'react'
2 | import { useFrame, useThree } from '@react-three/fiber'
3 | import { useLayoutEffect } from 'react'
4 | import ScissorTunnel from './ScissorTunnel'
5 | import useScissorEvents from './useScissorEvents'
6 | import { Object3D } from 'three'
7 |
8 | export default function Scissor() {
9 | const gl = useThree((s) => s.gl)
10 |
11 | useScissorEvents()
12 | useFrame((state) => {
13 | const { gl, camera } = state
14 |
15 | gl.setScissorTest(false)
16 | gl.clear(true, true)
17 | gl.setScissorTest(true)
18 |
19 | const children = state.scene.children
20 | children.forEach((child: Object3D) => {
21 | if (child.userData.__Scissor) {
22 | // console.log(child.userData.__Scissor);
23 | const element = child.userData.__Scissor as HTMLDivElement
24 | const rect = element.getBoundingClientRect()
25 | const { left, right, top, bottom, width, height } = rect
26 |
27 | const isOffscreen =
28 | bottom < 0 || top > gl.domElement.clientHeight || right < 0 || left > gl.domElement.clientWidth
29 |
30 | if (!isOffscreen) {
31 | const positiveYUpBottom = gl.domElement.clientHeight - bottom
32 | gl.setScissor(left, positiveYUpBottom, width, height)
33 | gl.setViewport(left, positiveYUpBottom, width, height)
34 |
35 | // @ts-ignore
36 | camera.aspect = width / height
37 | camera.updateProjectionMatrix()
38 |
39 | gl.render(child, camera)
40 | }
41 | }
42 | })
43 | }, 1)
44 |
45 | useLayoutEffect(() => {
46 | if (gl.domElement.parentElement) {
47 | gl.domElement.parentElement.style.position = 'fixed'
48 | gl.domElement.parentElement.style.top = '0'
49 | gl.domElement.parentElement.style.left = '0'
50 | gl.domElement.parentElement.style.width = '100%'
51 | gl.domElement.parentElement.style.height = '100%'
52 | }
53 | }, [gl])
54 |
55 | return
56 | }
57 |
--------------------------------------------------------------------------------
/src/ScissorTunnel.tsx:
--------------------------------------------------------------------------------
1 | import React, { ReactElement, ReactNode, useLayoutEffect } from 'react'
2 | import { Scene } from 'three'
3 | import create, { SetState } from 'zustand'
4 |
5 | type Props = { children: React.ReactNode }
6 |
7 | interface iScissorTunnel {
8 | scenes: ReactNode[]
9 | addScene: (scene: ReactNode) => any
10 | }
11 |
12 | function tunnel() {
13 | const useStore = create((set) => ({
14 | scenes: [],
15 | addScene: (scene) => set((s) => ({ scenes: [...s.scenes, scene] })),
16 | }))
17 |
18 | return {
19 | Store: useStore,
20 | In: ({ children }: Props) => {
21 | const addScene = useStore((state) => state.addScene)
22 | useLayoutEffect(() => addScene(children), [])
23 | return null
24 | },
25 | Out: () => {
26 | const scenes = useStore((state) => state.scenes)
27 | return scenes as unknown as ReactElement
28 | },
29 | }
30 | }
31 |
32 | export default tunnel()
33 |
--------------------------------------------------------------------------------
/src/ScissorWindow.tsx:
--------------------------------------------------------------------------------
1 | import React, { useLayoutEffect, useRef, useState } from 'react'
2 | import ScissorTunnel from './ScissorTunnel'
3 |
4 | export default function ScissorWindow({ children, ...rest }: React.PropsWithChildren>) {
5 | const [win, setWindow] = useState()
6 | const ref = useRef(null)
7 |
8 | useLayoutEffect(() => void (ref.current && setWindow(ref.current)), [])
9 |
10 | return (
11 | <>
12 |
13 | {win && (
14 |
15 | {children}
16 |
17 | )}
18 | >
19 | )
20 | }
21 |
--------------------------------------------------------------------------------
/src/index.ts:
--------------------------------------------------------------------------------
1 | import Scissor from './Scissor'
2 | import ScissorWindow from './ScissorWindow'
3 |
4 | export { Scissor, ScissorWindow }
5 |
--------------------------------------------------------------------------------
/src/useScissorEvents.tsx:
--------------------------------------------------------------------------------
1 | import React, { useEffect } from 'react'
2 | import { useThree } from '@react-three/fiber'
3 | import { DomEvent } from '@react-three/fiber/dist/declarations/src/core/events'
4 | import { Color, Object3D, Scene, Texture } from 'three'
5 | import ScissorTunnel from './ScissorTunnel'
6 |
7 | export default function useScissorEvents() {
8 | const events = useThree((state) => state.events)
9 | const raycaster = useThree((state) => state.raycaster)
10 | const scene = useThree((state) => state.scene)
11 | const gl = useThree((state) => state.gl)
12 | const size = useThree((state) => state.size)
13 |
14 | const scenes = ScissorTunnel.Store((s) => s.scenes)
15 |
16 | useEffect(() => {
17 | scene.children.forEach((child: Object3D) => {
18 | if (child.userData.__Scissor) {
19 | ;(child as Scene).environment = scene.environment as Texture
20 | ;(child as Scene).background = scene.background as Texture
21 | }
22 | })
23 |
24 | if (events.handlers) {
25 | for (const [key, handler] of Object.entries(events.handlers)) {
26 | const prevHandler = handler
27 |
28 | // @ts-ignore
29 | events.handlers![key] = (e: PointerEvent, state) => {
30 | scene.children.forEach((child: Object3D) => {
31 | if (child.userData.__Scissor) {
32 | const element = child.userData.__Scissor
33 | const rect = element.getBoundingClientRect()
34 | const { left, right, top, bottom, width, height } = rect
35 |
36 | if (
37 | e.clientX >= left && //
38 | e.clientX <= right &&
39 | e.clientY >= top &&
40 | e.clientY <= bottom
41 | ) {
42 | raycaster.filter = (e) => {
43 | return e.filter((intersection) => child.getObjectById(intersection.object.id))
44 | }
45 |
46 | const prevSize = { ...size }
47 | raycaster.computeOffsets = (event: DomEvent, state) => {
48 | state.size.height = height
49 | state.size.width = width
50 |
51 | return {
52 | offsetX: event.offsetX - left, //
53 | offsetY: event.offsetY - top,
54 | }
55 | }
56 |
57 | size.height = prevSize.height
58 | size.width = prevSize.width
59 |
60 | prevHandler(e)
61 | }
62 | }
63 | })
64 | }
65 | }
66 | }
67 | }, [scenes, scene, events, gl, raycaster])
68 | }
69 |
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "module": "esnext",
4 | "target": "es2018",
5 | "allowSyntheticDefaultImports": true,
6 | "jsx": "react",
7 | "strict": true,
8 | "preserveSymlinks": true,
9 | "moduleResolution": "Node",
10 | "esModuleInterop": true,
11 | "declaration": true,
12 | "declarationDir": "dist",
13 | "skipLibCheck": true,
14 | "removeComments": false,
15 | "baseUrl": "."
16 | },
17 | "include": ["src"]
18 | }
19 |
--------------------------------------------------------------------------------