├── .gitignore
├── README.md
├── app
├── effect1
│ └── page.tsx
├── effect2
│ └── page.tsx
├── effect3
│ └── page.tsx
├── favicon.ico
├── globals.css
├── layout.tsx
└── page.tsx
├── assets
├── depth-1.png
├── depth-2.png
├── depth-3.png
├── edge-2.png
├── raw-1.png
├── raw-2.png
└── raw-3.jpg
├── components
├── canvas.tsx
├── layout.tsx
└── post-processing.tsx
├── context
└── index.tsx
├── eslint.config.mjs
├── next.config.ts
├── package-lock.json
├── package.json
├── pnpm-lock.yaml
├── postcss.config.mjs
├── preview.mp4
└── tsconfig.json
/.gitignore:
--------------------------------------------------------------------------------
1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
2 |
3 | # dependencies
4 | /node_modules
5 | /.pnp
6 | .pnp.*
7 | .yarn/*
8 | !.yarn/patches
9 | !.yarn/plugins
10 | !.yarn/releases
11 | !.yarn/versions
12 |
13 | # testing
14 | /coverage
15 |
16 | # next.js
17 | /.next/
18 | /out/
19 |
20 | # production
21 | /build
22 |
23 | # misc
24 | .DS_Store
25 | *.pem
26 |
27 | # debug
28 | npm-debug.log*
29 | yarn-debug.log*
30 | yarn-error.log*
31 | .pnpm-debug.log*
32 |
33 | # env files (can opt-in for committing if needed)
34 | .env*
35 |
36 | # vercel
37 | .vercel
38 |
39 | # typescript
40 | *.tsbuildinfo
41 | next-env.d.ts
42 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # WebGPU Scanning Effect with Depth Maps
2 |
3 | A WebGPU-powered visual experiment that explores a scanning effect using a depth map and procedural masking, rendered with custom shaders and animated in real time.
4 |
5 | 
6 |
7 |
10 |
11 | [Article on Codrops](https://tympanus.net/codrops/?p=90674)
12 |
13 | [Demo](https://tympanus.net/Development/ScanEffect/)
14 |
15 | ## Installation
16 |
17 | ```bash
18 | npm run dev
19 | # or
20 | yarn dev
21 | # or
22 | pnpm dev
23 | # or
24 | bun dev
25 | ```
26 |
27 | ## License
28 |
29 | [MIT](LICENSE)
30 |
--------------------------------------------------------------------------------
/app/effect1/page.tsx:
--------------------------------------------------------------------------------
1 | 'use client';
2 |
3 | import { WebGPUCanvas } from '@/components/canvas';
4 | import { useAspect, useTexture } from '@react-three/drei';
5 | import { useFrame } from '@react-three/fiber';
6 | import { useContext, useMemo } from 'react';
7 | import { Tomorrow } from 'next/font/google';
8 | import gsap from 'gsap';
9 |
10 | import {
11 | abs,
12 | blendScreen,
13 | float,
14 | mod,
15 | mx_cell_noise_float,
16 | oneMinus,
17 | smoothstep,
18 | texture,
19 | uniform,
20 | uv,
21 | vec2,
22 | vec3,
23 | } from 'three/tsl';
24 |
25 | import * as THREE from 'three/webgpu';
26 | import { useGSAP } from '@gsap/react';
27 | import { GlobalContext, ContextProvider } from '@/context';
28 | import { PostProcessing } from '@/components/post-processing';
29 | import TEXTUREMAP from '@/assets/raw-1.png';
30 | import DEPTHMAP from '@/assets/depth-1.png';
31 |
32 | const tomorrow = Tomorrow({
33 | weight: '600',
34 | subsets: ['latin'],
35 | });
36 |
37 | const WIDTH = 1600;
38 | const HEIGHT = 900;
39 |
40 | const Scene = () => {
41 | const { setIsLoading } = useContext(GlobalContext);
42 |
43 | const [rawMap, depthMap] = useTexture([TEXTUREMAP.src, DEPTHMAP.src], () => {
44 | setIsLoading(false);
45 | rawMap.colorSpace = THREE.SRGBColorSpace;
46 | });
47 |
48 | const { material, uniforms } = useMemo(() => {
49 | const uPointer = uniform(new THREE.Vector2(0));
50 | const uProgress = uniform(0);
51 |
52 | const strength = 0.01;
53 |
54 | const tDepthMap = texture(depthMap);
55 |
56 | const tMap = texture(
57 | rawMap,
58 | uv().add(tDepthMap.r.mul(uPointer).mul(strength))
59 | );
60 |
61 | const aspect = float(WIDTH).div(HEIGHT);
62 | const tUv = vec2(uv().x.mul(aspect), uv().y);
63 |
64 | const tiling = vec2(120.0);
65 | const tiledUv = mod(tUv.mul(tiling), 2.0).sub(1.0);
66 |
67 | const brightness = mx_cell_noise_float(tUv.mul(tiling).div(2));
68 |
69 | const dist = float(tiledUv.length());
70 | const dot = float(smoothstep(0.5, 0.49, dist)).mul(brightness);
71 |
72 | const depth = tDepthMap;
73 |
74 | const flow = oneMinus(smoothstep(0, 0.02, abs(depth.sub(uProgress))));
75 |
76 | const mask = dot.mul(flow).mul(vec3(10, 0, 0));
77 |
78 | const final = blendScreen(tMap, mask);
79 |
80 | const material = new THREE.MeshBasicNodeMaterial({
81 | colorNode: final,
82 | });
83 |
84 | return {
85 | material,
86 | uniforms: {
87 | uPointer,
88 | uProgress,
89 | },
90 | };
91 | }, [rawMap, depthMap]);
92 |
93 | const [w, h] = useAspect(WIDTH, HEIGHT);
94 |
95 | useGSAP(() => {
96 | gsap.to(uniforms.uProgress, {
97 | value: 1,
98 | repeat: -1,
99 | duration: 3,
100 | ease: 'power1.out',
101 | });
102 | }, [uniforms.uProgress]);
103 |
104 | useFrame(({ pointer }) => {
105 | uniforms.uPointer.value = pointer;
106 | });
107 |
108 | return (
109 |
110 |
111 |
112 | );
113 | };
114 |
115 | const Html = () => {
116 | const { isLoading } = useContext(GlobalContext);
117 |
118 | useGSAP(() => {
119 | if (!isLoading) {
120 | gsap
121 | .timeline()
122 | .to('[data-loader]', {
123 | opacity: 0,
124 | })
125 | .from('[data-title]', {
126 | yPercent: -100,
127 | stagger: {
128 | each: 0.15,
129 | },
130 | ease: 'power1.out',
131 | })
132 | .from('[data-desc]', {
133 | opacity: 0,
134 | yPercent: 100,
135 | });
136 | }
137 | }, [isLoading]);
138 |
139 | return (
140 |
141 |
147 |
148 |
149 |
155 |
156 | {'Crown of Fire'.split(' ').map((word, index) => {
157 | return (
158 |
159 | {word}
160 |
161 | );
162 | })}
163 |
164 |
165 |
166 |
167 |
The Majesty and Glory of the Young King
168 |
169 |
170 |
171 |
172 |
173 |
174 |
175 |
176 |
177 | );
178 | };
179 |
180 | export default function Home() {
181 | return (
182 |
183 |
184 |
185 | );
186 | }
187 |
--------------------------------------------------------------------------------
/app/effect2/page.tsx:
--------------------------------------------------------------------------------
1 | 'use client';
2 |
3 | import { WebGPUCanvas } from '@/components/canvas';
4 | import { useAspect, useTexture } from '@react-three/drei';
5 | import { useFrame } from '@react-three/fiber';
6 | import { useContext, useMemo } from 'react';
7 | import { Tomorrow } from 'next/font/google';
8 | import gsap from 'gsap';
9 |
10 | import {
11 | abs,
12 | blendScreen,
13 | oneMinus,
14 | smoothstep,
15 | sub,
16 | texture,
17 | uniform,
18 | uv,
19 | vec3,
20 | } from 'three/tsl';
21 |
22 | import * as THREE from 'three/webgpu';
23 | import { useGSAP } from '@gsap/react';
24 | import { PostProcessing } from '@/components/post-processing';
25 | import { ContextProvider, GlobalContext } from '@/context';
26 |
27 | import TEXTUREMAP from '@/assets/raw-2.png';
28 | import DEPTHMAP from '@/assets/depth-2.png';
29 | import EDGEMAP from '@/assets/edge-2.png';
30 |
31 | const tomorrow = Tomorrow({
32 | weight: '600',
33 | subsets: ['latin'],
34 | });
35 |
36 | const WIDTH = 1600;
37 | const HEIGHT = 900;
38 |
39 | const Scene = () => {
40 | const { setIsLoading } = useContext(GlobalContext);
41 |
42 | const [rawMap, depthMap, edgeMap] = useTexture(
43 | [TEXTUREMAP.src, DEPTHMAP.src, EDGEMAP.src],
44 | () => {
45 | setIsLoading(false);
46 | rawMap.colorSpace = THREE.SRGBColorSpace;
47 | }
48 | );
49 |
50 | const { material, uniforms } = useMemo(() => {
51 | const uPointer = uniform(new THREE.Vector2(0));
52 | const uProgress = uniform(0);
53 |
54 | const strength = 0.01;
55 |
56 | const tDepthMap = texture(depthMap);
57 | const tEdgeMap = texture(edgeMap);
58 |
59 | const tMap = texture(
60 | rawMap,
61 | uv().add(tDepthMap.r.mul(uPointer).mul(strength))
62 | ).mul(0.5);
63 |
64 | const depth = tDepthMap;
65 |
66 | const flow = sub(1, smoothstep(0, 0.02, abs(depth.sub(uProgress))));
67 |
68 | const mask = oneMinus(tEdgeMap).mul(flow).mul(vec3(10, 0.4, 10));
69 |
70 | const final = blendScreen(tMap, mask);
71 |
72 | const material = new THREE.MeshBasicNodeMaterial({
73 | colorNode: final,
74 | });
75 |
76 | return {
77 | material,
78 | uniforms: {
79 | uPointer,
80 | uProgress,
81 | },
82 | };
83 | }, [rawMap, depthMap, edgeMap]);
84 |
85 | const [w, h] = useAspect(WIDTH, HEIGHT);
86 |
87 | useGSAP(() => {
88 | gsap.to(uniforms.uProgress, {
89 | value: 1,
90 | repeat: -1,
91 | duration: 3,
92 | ease: 'power1.out',
93 | });
94 | }, [uniforms.uProgress]);
95 |
96 | useFrame(({ pointer }) => {
97 | uniforms.uPointer.value = pointer;
98 | });
99 |
100 | return (
101 |
102 |
103 |
104 | );
105 | };
106 |
107 | const Html = () => {
108 | const { isLoading } = useContext(GlobalContext);
109 |
110 | useGSAP(() => {
111 | if (!isLoading) {
112 | gsap
113 | .timeline()
114 | .to('[data-loader]', {
115 | opacity: 0,
116 | })
117 | .from('[data-title]', {
118 | yPercent: -100,
119 | stagger: {
120 | each: 0.15,
121 | },
122 | ease: 'power1.out',
123 | })
124 | .from('[data-desc]', {
125 | opacity: 0,
126 | yPercent: 100,
127 | });
128 | }
129 | }, [isLoading]);
130 |
131 | return (
132 |
133 |
139 |
140 |
141 |
147 |
148 | {'Neon Horizon'.split(' ').map((word, index) => {
149 | return (
150 |
151 | {word}
152 |
153 | );
154 | })}
155 |
156 |
157 |
158 |
159 |
160 |
A city consumed by light and shadow,
161 |
where one endless road leads to an uncertain future.
162 |
163 |
164 |
165 |
166 |
167 |
168 |
169 |
170 |
171 |
172 | );
173 | };
174 |
175 | export default function Page() {
176 | return (
177 |
178 |
179 |
180 | );
181 | }
182 |
--------------------------------------------------------------------------------
/app/effect3/page.tsx:
--------------------------------------------------------------------------------
1 | 'use client';
2 |
3 | import { WebGPUCanvas } from '@/components/canvas';
4 | import { useAspect, useTexture } from '@react-three/drei';
5 | import { useFrame } from '@react-three/fiber';
6 | import { useContext, useMemo } from 'react';
7 | import { Tomorrow } from 'next/font/google';
8 | import gsap from 'gsap';
9 |
10 | import {
11 | abs,
12 | blendScreen,
13 | float,
14 | Fn,
15 | max,
16 | mod,
17 | oneMinus,
18 | select,
19 | ShaderNodeObject,
20 | smoothstep,
21 | sub,
22 | texture,
23 | uniform,
24 | uv,
25 | vec2,
26 | vec3,
27 | } from 'three/tsl';
28 |
29 | import * as THREE from 'three/webgpu';
30 | import { useGSAP } from '@gsap/react';
31 | import { PostProcessing } from '@/components/post-processing';
32 | import { ContextProvider, GlobalContext } from '@/context';
33 |
34 | import TEXTUREMAP from '@/assets/raw-3.jpg';
35 | import DEPTHMAP from '@/assets/depth-3.png';
36 |
37 | const tomorrow = Tomorrow({
38 | weight: '600',
39 | subsets: ['latin'],
40 | });
41 |
42 | const WIDTH = 1226;
43 | const HEIGHT = 650;
44 |
45 | const sdCross = Fn(
46 | ([p_immutable, b_immutable, r_immutable]: ShaderNodeObject[]) => {
47 | const r = float(r_immutable).toVar();
48 | const b = vec2(b_immutable).toVar();
49 | const p = vec2(p_immutable).toVar();
50 | p.assign(abs(p));
51 | p.assign(select(p.y.greaterThan(p.x), p.yx, p.xy));
52 | const q = vec2(p.sub(b)).toVar();
53 | const k = float(max(q.y, q.x)).toVar();
54 | const w = vec2(
55 | select(k.greaterThan(0.0), q, vec2(b.y.sub(p.x), k.negate()))
56 | ).toVar();
57 | const d = float(max(w, 0.0).length()).toVar();
58 |
59 | return select(k.greaterThan(0.0), d, d.negate()).add(r);
60 | }
61 | );
62 |
63 | const Scene = () => {
64 | const { setIsLoading } = useContext(GlobalContext);
65 |
66 | const [rawMap, depthMap] = useTexture([TEXTUREMAP.src, DEPTHMAP.src], () => {
67 | setIsLoading(false);
68 | rawMap.colorSpace = THREE.SRGBColorSpace;
69 | });
70 |
71 | const { material, uniforms } = useMemo(() => {
72 | const uPointer = uniform(new THREE.Vector2(0));
73 | const uProgress = uniform(0);
74 |
75 | const strength = 0.01;
76 |
77 | const tDepthMap = texture(depthMap);
78 |
79 | const tMap = texture(
80 | rawMap,
81 | uv().add(tDepthMap.r.mul(uPointer).mul(strength))
82 | ).mul(0.5);
83 |
84 | const aspect = float(WIDTH).div(HEIGHT);
85 | const tUv = vec2(uv().x.mul(aspect), uv().y);
86 |
87 | const tiling = vec2(50.0);
88 | const tiledUv = mod(tUv.mul(tiling), 2.0).sub(1.0);
89 |
90 | const dist = sdCross(tiledUv, vec2(0.3, 0.02), 0.0);
91 | const cross = vec3(smoothstep(0.0, 0.02, dist));
92 |
93 | const depth = oneMinus(tDepthMap);
94 |
95 | const flow = sub(1, smoothstep(0, 0.02, abs(depth.sub(uProgress))));
96 |
97 | const mask = oneMinus(cross).mul(flow).mul(vec3(10, 10, 10));
98 |
99 | const final = blendScreen(tMap, mask);
100 |
101 | const material = new THREE.MeshBasicNodeMaterial({
102 | colorNode: final,
103 | });
104 |
105 | return {
106 | material,
107 | uniforms: {
108 | uPointer,
109 | uProgress,
110 | },
111 | };
112 | }, [rawMap, depthMap]);
113 |
114 | const [w, h] = useAspect(WIDTH, HEIGHT);
115 |
116 | useGSAP(() => {
117 | gsap.to(uniforms.uProgress, {
118 | value: 0.9,
119 | repeat: -1,
120 | duration: 3,
121 | ease: 'power1.out',
122 | });
123 | }, [uniforms.uProgress]);
124 |
125 | useFrame(({ pointer }) => {
126 | uniforms.uPointer.value = pointer;
127 | });
128 |
129 | return (
130 |
131 |
132 |
133 | );
134 | };
135 |
136 | const Html = () => {
137 | const { isLoading } = useContext(GlobalContext);
138 |
139 | useGSAP(() => {
140 | if (!isLoading) {
141 | gsap
142 | .timeline()
143 | .to('[data-loader]', {
144 | opacity: 0,
145 | })
146 | .from('[data-title]', {
147 | yPercent: -100,
148 | stagger: {
149 | each: 0.15,
150 | },
151 | ease: 'power1.out',
152 | })
153 | .from('[data-desc]', {
154 | opacity: 0,
155 | yPercent: 100,
156 | });
157 | }
158 | }, [isLoading]);
159 |
160 | return (
161 |
162 |
168 |
169 |
170 |
176 |
177 | {'Embrace Nature’s Rhythm'.split(' ').map((word, index) => {
178 | return (
179 |
180 | {word}
181 |
182 | );
183 | })}
184 |
185 |
186 |
187 |
188 |
189 |
where one endless road leads to an uncertain future.
190 |
191 |
192 |
193 |
194 |
195 |
196 |
197 |
198 |
199 |
200 | );
201 | };
202 |
203 | export default function Page() {
204 | return (
205 |
206 |
207 |
208 | );
209 | }
210 |
--------------------------------------------------------------------------------
/app/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/d3adrabbit/ScanningEffectWithDepthMap/e15817cb790c71694cfbc5926b80159d45c0cd2f/app/favicon.ico
--------------------------------------------------------------------------------
/app/globals.css:
--------------------------------------------------------------------------------
1 | @import 'tailwindcss';
2 |
3 | body {
4 | font-family: Arial, Helvetica, sans-serif;
5 | }
6 |
--------------------------------------------------------------------------------
/app/layout.tsx:
--------------------------------------------------------------------------------
1 | import Script from 'next/script';
2 | import type { Metadata } from 'next';
3 | import './globals.css';
4 | import { Layout } from '@/components/layout';
5 |
6 | export const metadata: Metadata = {
7 | title: 'Scanning effect with depth map | Codrops',
8 | description: 'Scanning effect with depth map',
9 | };
10 |
11 | export default function RootLayout({
12 | children,
13 | }: Readonly<{
14 | children: React.ReactNode;
15 | }>) {
16 | return (
17 |
18 |
19 |
23 |
24 |
25 |
26 | {children}
27 |
31 |
32 |
33 | );
34 | }
35 |
--------------------------------------------------------------------------------
/app/page.tsx:
--------------------------------------------------------------------------------
1 | import { redirect } from 'next/navigation';
2 |
3 | export default function Home() {
4 | return redirect('/effect1');
5 | }
6 |
--------------------------------------------------------------------------------
/assets/depth-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/d3adrabbit/ScanningEffectWithDepthMap/e15817cb790c71694cfbc5926b80159d45c0cd2f/assets/depth-1.png
--------------------------------------------------------------------------------
/assets/depth-2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/d3adrabbit/ScanningEffectWithDepthMap/e15817cb790c71694cfbc5926b80159d45c0cd2f/assets/depth-2.png
--------------------------------------------------------------------------------
/assets/depth-3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/d3adrabbit/ScanningEffectWithDepthMap/e15817cb790c71694cfbc5926b80159d45c0cd2f/assets/depth-3.png
--------------------------------------------------------------------------------
/assets/edge-2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/d3adrabbit/ScanningEffectWithDepthMap/e15817cb790c71694cfbc5926b80159d45c0cd2f/assets/edge-2.png
--------------------------------------------------------------------------------
/assets/raw-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/d3adrabbit/ScanningEffectWithDepthMap/e15817cb790c71694cfbc5926b80159d45c0cd2f/assets/raw-1.png
--------------------------------------------------------------------------------
/assets/raw-2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/d3adrabbit/ScanningEffectWithDepthMap/e15817cb790c71694cfbc5926b80159d45c0cd2f/assets/raw-2.png
--------------------------------------------------------------------------------
/assets/raw-3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/d3adrabbit/ScanningEffectWithDepthMap/e15817cb790c71694cfbc5926b80159d45c0cd2f/assets/raw-3.jpg
--------------------------------------------------------------------------------
/components/canvas.tsx:
--------------------------------------------------------------------------------
1 | import * as THREE from 'three/webgpu';
2 | import { Canvas, CanvasProps, extend } from '@react-three/fiber';
3 |
4 | extend(THREE as any);
5 |
6 | export const WebGPUCanvas = (props: CanvasProps) => {
7 | return (
8 |
19 | );
20 | };
21 |
--------------------------------------------------------------------------------
/components/layout.tsx:
--------------------------------------------------------------------------------
1 | 'use client';
2 |
3 | import NextLink from 'next/link';
4 | import { ReactNode } from 'react';
5 | import { usePathname } from 'next/navigation';
6 |
7 | const tags = [
8 | {
9 | name: '#WebGPU',
10 | href: 'https://tympanus.net/codrops/demos/?tag=webgpu',
11 | },
12 | {
13 | name: '#Three.js',
14 | href: 'https://tympanus.net/codrops/demos/?tag=three-js',
15 | },
16 | {
17 | name: '#TSL',
18 | href: 'https://tympanus.net/codrops/demos/?tag=tsl',
19 | },
20 | ];
21 |
22 | const Link = ({
23 | href,
24 | target,
25 | className,
26 | children,
27 | }: {
28 | href: string;
29 | children: ReactNode;
30 | className?: string;
31 | target?: string;
32 | }) => {
33 | return (
34 |
39 | {children}
40 |
41 | );
42 | };
43 |
44 | export const Layout = () => {
45 | const pathname = usePathname();
46 |
47 | return (
48 |
54 |
55 |
61 |
62 |
63 | ( All demos )
64 |
65 |
66 |
70 | ( Article )
71 |
72 |
73 |
74 |
75 | {[
76 | {
77 | href: '/effect1/',
78 | name: 'Effect/1',
79 | },
80 | {
81 | href: '/effect2/',
82 | name: 'Effect/2',
83 | },
84 | {
85 | href: '/effect3/',
86 | name: 'Effect/3',
87 | },
88 | ].map((item, index) => {
89 | return (
90 |
95 | {item.name}
96 |
97 | );
98 | })}
99 |
100 |
101 |
102 |
103 |
104 |
111 |
112 |
119 |
123 | Github
124 |
125 |
126 |
127 | {tags.map((item, index) => {
128 | return (
129 |
130 | {item.name}
131 |
132 | );
133 | })}
134 |
135 |
136 |
137 |
144 |
145 | Made by deadrabbbbit
146 |
147 |
148 |
149 |
150 | );
151 | };
152 |
--------------------------------------------------------------------------------
/components/post-processing.tsx:
--------------------------------------------------------------------------------
1 | import { useFrame, useThree } from '@react-three/fiber';
2 | import { useMemo } from 'react';
3 | import { bloom } from 'three/examples/jsm/tsl/display/BloomNode.js';
4 | import { pass } from 'three/tsl';
5 |
6 | import * as THREE from 'three/webgpu';
7 |
8 | export const PostProcessing = ({
9 | strength = 1,
10 | threshold = 1,
11 | }: {
12 | strength?: number;
13 | threshold?: number;
14 | }) => {
15 | const { gl, scene, camera } = useThree();
16 |
17 | const render = useMemo(() => {
18 | const postProcessing = new THREE.PostProcessing(gl as any);
19 | const scenePass = pass(scene, camera);
20 | const scenePassColor = scenePass.getTextureNode('output');
21 | const bloomPass = bloom(scenePassColor, strength, 0.5, threshold);
22 |
23 | const final = scenePassColor.add(bloomPass);
24 |
25 | postProcessing.outputNode = final;
26 |
27 | return postProcessing;
28 | }, [camera, gl, scene, strength, threshold]);
29 |
30 | useFrame(() => {
31 | render.renderAsync();
32 | }, 1);
33 |
34 | return null;
35 | };
36 |
--------------------------------------------------------------------------------
/context/index.tsx:
--------------------------------------------------------------------------------
1 | import {
2 | createContext,
3 | Dispatch,
4 | ReactNode,
5 | SetStateAction,
6 | useState,
7 | } from 'react';
8 |
9 | export type ContextType = {
10 | isLoading: boolean;
11 | setIsLoading: Dispatch>;
12 | };
13 | export const GlobalContext = createContext({} as ContextType);
14 |
15 | export const ContextProvider = ({ children }: { children: ReactNode }) => {
16 | const [isLoading, setIsLoading] = useState(true);
17 |
18 | return (
19 |
20 | {children}
21 |
22 | );
23 | };
24 |
--------------------------------------------------------------------------------
/eslint.config.mjs:
--------------------------------------------------------------------------------
1 | import { dirname } from 'path';
2 | import { fileURLToPath } from 'url';
3 | import { FlatCompat } from '@eslint/eslintrc';
4 |
5 | const __filename = fileURLToPath(import.meta.url);
6 | const __dirname = dirname(__filename);
7 |
8 | const compat = new FlatCompat({
9 | baseDirectory: __dirname,
10 | });
11 |
12 | const eslintConfig = [
13 | ...compat.extends('next/core-web-vitals', 'next/typescript'),
14 | ...compat.config({
15 | rules: {
16 | '@typescript-eslint/no-explicit-any': 0,
17 | },
18 | }),
19 | ];
20 |
21 | export default eslintConfig;
22 |
--------------------------------------------------------------------------------
/next.config.ts:
--------------------------------------------------------------------------------
1 | import type { NextConfig } from 'next';
2 |
3 | const nextConfig: NextConfig = {
4 | /* config options here */
5 | devIndicators: false,
6 | output: 'export',
7 | // basePath: '/Development/ScanEffect',
8 | // distDir: 'Development/ScanEffect',
9 | trailingSlash: true,
10 | };
11 |
12 | export default nextConfig;
13 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "retro-style",
3 | "version": "0.1.0",
4 | "private": true,
5 | "scripts": {
6 | "dev": "next dev --turbopack",
7 | "build": "next build",
8 | "start": "next start",
9 | "lint": "next lint"
10 | },
11 | "dependencies": {
12 | "@gsap/react": "^2.1.2",
13 | "@react-three/drei": "^10.0.4",
14 | "@react-three/fiber": "^9.1.0",
15 | "@types/three": "^0.174.0",
16 | "gsap": "^3.12.7",
17 | "next": "15.2.3",
18 | "react": "^19.0.0",
19 | "react-dom": "^19.0.0",
20 | "three": "^0.174.0"
21 | },
22 | "devDependencies": {
23 | "@eslint/eslintrc": "^3",
24 | "@tailwindcss/postcss": "^4",
25 | "@types/node": "^20",
26 | "@types/react": "^19",
27 | "@types/react-dom": "^19",
28 | "eslint": "^9",
29 | "eslint-config-next": "15.2.1",
30 | "tailwindcss": "^4",
31 | "typescript": "^5"
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/pnpm-lock.yaml:
--------------------------------------------------------------------------------
1 | lockfileVersion: '6.0'
2 |
3 | settings:
4 | autoInstallPeers: true
5 | excludeLinksFromLockfile: false
6 |
7 | dependencies:
8 | '@gsap/react':
9 | specifier: ^2.1.2
10 | version: 2.1.2(gsap@3.12.7)(react@19.0.0)
11 | '@react-three/drei':
12 | specifier: ^10.0.4
13 | version: 10.0.4(@react-three/fiber@9.1.0)(@types/react@19.0.10)(@types/three@0.174.0)(react-dom@19.0.0)(react@19.0.0)(three@0.174.0)
14 | '@react-three/fiber':
15 | specifier: ^9.1.0
16 | version: 9.1.0(@types/react@19.0.10)(react-dom@19.0.0)(react@19.0.0)(three@0.174.0)
17 | '@types/three':
18 | specifier: ^0.174.0
19 | version: 0.174.0
20 | gsap:
21 | specifier: ^3.12.7
22 | version: 3.12.7
23 | next:
24 | specifier: 15.2.3
25 | version: 15.2.3(react-dom@19.0.0)(react@19.0.0)
26 | react:
27 | specifier: ^19.0.0
28 | version: 19.0.0
29 | react-dom:
30 | specifier: ^19.0.0
31 | version: 19.0.0(react@19.0.0)
32 | three:
33 | specifier: ^0.174.0
34 | version: 0.174.0
35 |
36 | devDependencies:
37 | '@eslint/eslintrc':
38 | specifier: ^3
39 | version: 3.3.0
40 | '@tailwindcss/postcss':
41 | specifier: ^4
42 | version: 4.0.12
43 | '@types/node':
44 | specifier: ^20
45 | version: 20.17.24
46 | '@types/react':
47 | specifier: ^19
48 | version: 19.0.10
49 | '@types/react-dom':
50 | specifier: ^19
51 | version: 19.0.4(@types/react@19.0.10)
52 | eslint:
53 | specifier: ^9
54 | version: 9.22.0
55 | eslint-config-next:
56 | specifier: 15.2.1
57 | version: 15.2.1(eslint@9.22.0)(typescript@5.8.2)
58 | tailwindcss:
59 | specifier: ^4
60 | version: 4.0.12
61 | typescript:
62 | specifier: ^5
63 | version: 5.8.2
64 |
65 | packages:
66 |
67 | /@alloc/quick-lru@5.2.0:
68 | resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==}
69 | engines: {node: '>=10'}
70 | dev: true
71 |
72 | /@babel/runtime@7.26.9:
73 | resolution: {integrity: sha512-aA63XwOkcl4xxQa3HjPMqOP6LiK0ZDv3mUPYEFXkpHbaFjtGggE1A61FjFzJnB+p7/oy2gA8E+rcBNl/zC1tMg==}
74 | engines: {node: '>=6.9.0'}
75 | dependencies:
76 | regenerator-runtime: 0.14.1
77 | dev: false
78 |
79 | /@emnapi/runtime@1.3.1:
80 | resolution: {integrity: sha512-kEBmG8KyqtxJZv+ygbEim+KCGtIq1fC22Ms3S4ziXmYKm8uyoLX0MHONVKwp+9opg390VaKRNt4a7A9NwmpNhw==}
81 | requiresBuild: true
82 | dependencies:
83 | tslib: 2.8.1
84 | dev: false
85 | optional: true
86 |
87 | /@eslint-community/eslint-utils@4.4.1(eslint@9.22.0):
88 | resolution: {integrity: sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==}
89 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
90 | peerDependencies:
91 | eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
92 | dependencies:
93 | eslint: 9.22.0
94 | eslint-visitor-keys: 3.4.3
95 | dev: true
96 |
97 | /@eslint-community/regexpp@4.12.1:
98 | resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==}
99 | engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
100 | dev: true
101 |
102 | /@eslint/config-array@0.19.2:
103 | resolution: {integrity: sha512-GNKqxfHG2ySmJOBSHg7LxeUx4xpuCoFjacmlCoYWEbaPXLwvfIjixRI12xCQZeULksQb23uiA8F40w5TojpV7w==}
104 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
105 | dependencies:
106 | '@eslint/object-schema': 2.1.6
107 | debug: 4.4.0
108 | minimatch: 3.1.2
109 | transitivePeerDependencies:
110 | - supports-color
111 | dev: true
112 |
113 | /@eslint/config-helpers@0.1.0:
114 | resolution: {integrity: sha512-kLrdPDJE1ckPo94kmPPf9Hfd0DU0Jw6oKYrhe+pwSC0iTUInmTa+w6fw8sGgcfkFJGNdWOUeOaDM4quW4a7OkA==}
115 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
116 | dev: true
117 |
118 | /@eslint/core@0.12.0:
119 | resolution: {integrity: sha512-cmrR6pytBuSMTaBweKoGMwu3EiHiEC+DoyupPmlZ0HxBJBtIxwe+j/E4XPIKNx+Q74c8lXKPwYawBf5glsTkHg==}
120 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
121 | dependencies:
122 | '@types/json-schema': 7.0.15
123 | dev: true
124 |
125 | /@eslint/eslintrc@3.3.0:
126 | resolution: {integrity: sha512-yaVPAiNAalnCZedKLdR21GOGILMLKPyqSLWaAjQFvYA2i/ciDi8ArYVr69Anohb6cH2Ukhqti4aFnYyPm8wdwQ==}
127 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
128 | dependencies:
129 | ajv: 6.12.6
130 | debug: 4.4.0
131 | espree: 10.3.0
132 | globals: 14.0.0
133 | ignore: 5.3.2
134 | import-fresh: 3.3.1
135 | js-yaml: 4.1.0
136 | minimatch: 3.1.2
137 | strip-json-comments: 3.1.1
138 | transitivePeerDependencies:
139 | - supports-color
140 | dev: true
141 |
142 | /@eslint/js@9.22.0:
143 | resolution: {integrity: sha512-vLFajx9o8d1/oL2ZkpMYbkLv8nDB6yaIwFNt7nI4+I80U/z03SxmfOMsLbvWr3p7C+Wnoh//aOu2pQW8cS0HCQ==}
144 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
145 | dev: true
146 |
147 | /@eslint/object-schema@2.1.6:
148 | resolution: {integrity: sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==}
149 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
150 | dev: true
151 |
152 | /@eslint/plugin-kit@0.2.7:
153 | resolution: {integrity: sha512-JubJ5B2pJ4k4yGxaNLdbjrnk9d/iDz6/q8wOilpIowd6PJPgaxCuHBnBszq7Ce2TyMrywm5r4PnKm6V3iiZF+g==}
154 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
155 | dependencies:
156 | '@eslint/core': 0.12.0
157 | levn: 0.4.1
158 | dev: true
159 |
160 | /@gsap/react@2.1.2(gsap@3.12.7)(react@19.0.0):
161 | resolution: {integrity: sha512-JqliybO1837UcgH2hVOM4VO+38APk3ECNrsuSM4MuXp+rbf+/2IG2K1YJiqfTcXQHH7XlA0m3ykniFYstfq0Iw==}
162 | peerDependencies:
163 | gsap: ^3.12.5
164 | react: '>=17'
165 | dependencies:
166 | gsap: 3.12.7
167 | react: 19.0.0
168 | dev: false
169 |
170 | /@humanfs/core@0.19.1:
171 | resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==}
172 | engines: {node: '>=18.18.0'}
173 | dev: true
174 |
175 | /@humanfs/node@0.16.6:
176 | resolution: {integrity: sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==}
177 | engines: {node: '>=18.18.0'}
178 | dependencies:
179 | '@humanfs/core': 0.19.1
180 | '@humanwhocodes/retry': 0.3.1
181 | dev: true
182 |
183 | /@humanwhocodes/module-importer@1.0.1:
184 | resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==}
185 | engines: {node: '>=12.22'}
186 | dev: true
187 |
188 | /@humanwhocodes/retry@0.3.1:
189 | resolution: {integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==}
190 | engines: {node: '>=18.18'}
191 | dev: true
192 |
193 | /@humanwhocodes/retry@0.4.2:
194 | resolution: {integrity: sha512-xeO57FpIu4p1Ri3Jq/EXq4ClRm86dVF2z/+kvFnyqVYRavTZmaFaUBbWCOuuTh0o/g7DSsk6kc2vrS4Vl5oPOQ==}
195 | engines: {node: '>=18.18'}
196 | dev: true
197 |
198 | /@img/sharp-darwin-arm64@0.33.5:
199 | resolution: {integrity: sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==}
200 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
201 | cpu: [arm64]
202 | os: [darwin]
203 | requiresBuild: true
204 | optionalDependencies:
205 | '@img/sharp-libvips-darwin-arm64': 1.0.4
206 | dev: false
207 | optional: true
208 |
209 | /@img/sharp-darwin-x64@0.33.5:
210 | resolution: {integrity: sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q==}
211 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
212 | cpu: [x64]
213 | os: [darwin]
214 | requiresBuild: true
215 | optionalDependencies:
216 | '@img/sharp-libvips-darwin-x64': 1.0.4
217 | dev: false
218 | optional: true
219 |
220 | /@img/sharp-libvips-darwin-arm64@1.0.4:
221 | resolution: {integrity: sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg==}
222 | cpu: [arm64]
223 | os: [darwin]
224 | requiresBuild: true
225 | dev: false
226 | optional: true
227 |
228 | /@img/sharp-libvips-darwin-x64@1.0.4:
229 | resolution: {integrity: sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ==}
230 | cpu: [x64]
231 | os: [darwin]
232 | requiresBuild: true
233 | dev: false
234 | optional: true
235 |
236 | /@img/sharp-libvips-linux-arm64@1.0.4:
237 | resolution: {integrity: sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==}
238 | cpu: [arm64]
239 | os: [linux]
240 | requiresBuild: true
241 | dev: false
242 | optional: true
243 |
244 | /@img/sharp-libvips-linux-arm@1.0.5:
245 | resolution: {integrity: sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==}
246 | cpu: [arm]
247 | os: [linux]
248 | requiresBuild: true
249 | dev: false
250 | optional: true
251 |
252 | /@img/sharp-libvips-linux-s390x@1.0.4:
253 | resolution: {integrity: sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==}
254 | cpu: [s390x]
255 | os: [linux]
256 | requiresBuild: true
257 | dev: false
258 | optional: true
259 |
260 | /@img/sharp-libvips-linux-x64@1.0.4:
261 | resolution: {integrity: sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==}
262 | cpu: [x64]
263 | os: [linux]
264 | requiresBuild: true
265 | dev: false
266 | optional: true
267 |
268 | /@img/sharp-libvips-linuxmusl-arm64@1.0.4:
269 | resolution: {integrity: sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==}
270 | cpu: [arm64]
271 | os: [linux]
272 | requiresBuild: true
273 | dev: false
274 | optional: true
275 |
276 | /@img/sharp-libvips-linuxmusl-x64@1.0.4:
277 | resolution: {integrity: sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==}
278 | cpu: [x64]
279 | os: [linux]
280 | requiresBuild: true
281 | dev: false
282 | optional: true
283 |
284 | /@img/sharp-linux-arm64@0.33.5:
285 | resolution: {integrity: sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==}
286 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
287 | cpu: [arm64]
288 | os: [linux]
289 | requiresBuild: true
290 | optionalDependencies:
291 | '@img/sharp-libvips-linux-arm64': 1.0.4
292 | dev: false
293 | optional: true
294 |
295 | /@img/sharp-linux-arm@0.33.5:
296 | resolution: {integrity: sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==}
297 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
298 | cpu: [arm]
299 | os: [linux]
300 | requiresBuild: true
301 | optionalDependencies:
302 | '@img/sharp-libvips-linux-arm': 1.0.5
303 | dev: false
304 | optional: true
305 |
306 | /@img/sharp-linux-s390x@0.33.5:
307 | resolution: {integrity: sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==}
308 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
309 | cpu: [s390x]
310 | os: [linux]
311 | requiresBuild: true
312 | optionalDependencies:
313 | '@img/sharp-libvips-linux-s390x': 1.0.4
314 | dev: false
315 | optional: true
316 |
317 | /@img/sharp-linux-x64@0.33.5:
318 | resolution: {integrity: sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==}
319 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
320 | cpu: [x64]
321 | os: [linux]
322 | requiresBuild: true
323 | optionalDependencies:
324 | '@img/sharp-libvips-linux-x64': 1.0.4
325 | dev: false
326 | optional: true
327 |
328 | /@img/sharp-linuxmusl-arm64@0.33.5:
329 | resolution: {integrity: sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==}
330 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
331 | cpu: [arm64]
332 | os: [linux]
333 | requiresBuild: true
334 | optionalDependencies:
335 | '@img/sharp-libvips-linuxmusl-arm64': 1.0.4
336 | dev: false
337 | optional: true
338 |
339 | /@img/sharp-linuxmusl-x64@0.33.5:
340 | resolution: {integrity: sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==}
341 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
342 | cpu: [x64]
343 | os: [linux]
344 | requiresBuild: true
345 | optionalDependencies:
346 | '@img/sharp-libvips-linuxmusl-x64': 1.0.4
347 | dev: false
348 | optional: true
349 |
350 | /@img/sharp-wasm32@0.33.5:
351 | resolution: {integrity: sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==}
352 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
353 | cpu: [wasm32]
354 | requiresBuild: true
355 | dependencies:
356 | '@emnapi/runtime': 1.3.1
357 | dev: false
358 | optional: true
359 |
360 | /@img/sharp-win32-ia32@0.33.5:
361 | resolution: {integrity: sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ==}
362 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
363 | cpu: [ia32]
364 | os: [win32]
365 | requiresBuild: true
366 | dev: false
367 | optional: true
368 |
369 | /@img/sharp-win32-x64@0.33.5:
370 | resolution: {integrity: sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg==}
371 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
372 | cpu: [x64]
373 | os: [win32]
374 | requiresBuild: true
375 | dev: false
376 | optional: true
377 |
378 | /@mediapipe/tasks-vision@0.10.17:
379 | resolution: {integrity: sha512-CZWV/q6TTe8ta61cZXjfnnHsfWIdFhms03M9T7Cnd5y2mdpylJM0rF1qRq+wsQVRMLz1OYPVEBU9ph2Bx8cxrg==}
380 | dev: false
381 |
382 | /@monogrid/gainmap-js@3.1.0(three@0.174.0):
383 | resolution: {integrity: sha512-Obb0/gEd/HReTlg8ttaYk+0m62gQJmCblMOjHSMHRrBP2zdfKMHLCRbh/6ex9fSUJMKdjjIEiohwkbGD3wj2Nw==}
384 | peerDependencies:
385 | three: '>= 0.159.0'
386 | dependencies:
387 | promise-worker-transferable: 1.0.4
388 | three: 0.174.0
389 | dev: false
390 |
391 | /@next/env@15.2.3:
392 | resolution: {integrity: sha512-a26KnbW9DFEUsSxAxKBORR/uD9THoYoKbkpFywMN/AFvboTt94b8+g/07T8J6ACsdLag8/PDU60ov4rPxRAixw==}
393 | dev: false
394 |
395 | /@next/eslint-plugin-next@15.2.1:
396 | resolution: {integrity: sha512-6ppeToFd02z38SllzWxayLxjjNfzvc7Wm07gQOKSLjyASvKcXjNStZrLXMHuaWkhjqxe+cnhb2uzfWXm1VEj/Q==}
397 | dependencies:
398 | fast-glob: 3.3.1
399 | dev: true
400 |
401 | /@next/swc-darwin-arm64@15.2.3:
402 | resolution: {integrity: sha512-uaBhA8aLbXLqwjnsHSkxs353WrRgQgiFjduDpc7YXEU0B54IKx3vU+cxQlYwPCyC8uYEEX7THhtQQsfHnvv8dw==}
403 | engines: {node: '>= 10'}
404 | cpu: [arm64]
405 | os: [darwin]
406 | requiresBuild: true
407 | dev: false
408 | optional: true
409 |
410 | /@next/swc-darwin-x64@15.2.3:
411 | resolution: {integrity: sha512-pVwKvJ4Zk7h+4hwhqOUuMx7Ib02u3gDX3HXPKIShBi9JlYllI0nU6TWLbPT94dt7FSi6mSBhfc2JrHViwqbOdw==}
412 | engines: {node: '>= 10'}
413 | cpu: [x64]
414 | os: [darwin]
415 | requiresBuild: true
416 | dev: false
417 | optional: true
418 |
419 | /@next/swc-linux-arm64-gnu@15.2.3:
420 | resolution: {integrity: sha512-50ibWdn2RuFFkOEUmo9NCcQbbV9ViQOrUfG48zHBCONciHjaUKtHcYFiCwBVuzD08fzvzkWuuZkd4AqbvKO7UQ==}
421 | engines: {node: '>= 10'}
422 | cpu: [arm64]
423 | os: [linux]
424 | requiresBuild: true
425 | dev: false
426 | optional: true
427 |
428 | /@next/swc-linux-arm64-musl@15.2.3:
429 | resolution: {integrity: sha512-2gAPA7P652D3HzR4cLyAuVYwYqjG0mt/3pHSWTCyKZq/N/dJcUAEoNQMyUmwTZWCJRKofB+JPuDVP2aD8w2J6Q==}
430 | engines: {node: '>= 10'}
431 | cpu: [arm64]
432 | os: [linux]
433 | requiresBuild: true
434 | dev: false
435 | optional: true
436 |
437 | /@next/swc-linux-x64-gnu@15.2.3:
438 | resolution: {integrity: sha512-ODSKvrdMgAJOVU4qElflYy1KSZRM3M45JVbeZu42TINCMG3anp7YCBn80RkISV6bhzKwcUqLBAmOiWkaGtBA9w==}
439 | engines: {node: '>= 10'}
440 | cpu: [x64]
441 | os: [linux]
442 | requiresBuild: true
443 | dev: false
444 | optional: true
445 |
446 | /@next/swc-linux-x64-musl@15.2.3:
447 | resolution: {integrity: sha512-ZR9kLwCWrlYxwEoytqPi1jhPd1TlsSJWAc+H/CJHmHkf2nD92MQpSRIURR1iNgA/kuFSdxB8xIPt4p/T78kwsg==}
448 | engines: {node: '>= 10'}
449 | cpu: [x64]
450 | os: [linux]
451 | requiresBuild: true
452 | dev: false
453 | optional: true
454 |
455 | /@next/swc-win32-arm64-msvc@15.2.3:
456 | resolution: {integrity: sha512-+G2FrDcfm2YDbhDiObDU/qPriWeiz/9cRR0yMWJeTLGGX6/x8oryO3tt7HhodA1vZ8r2ddJPCjtLcpaVl7TE2Q==}
457 | engines: {node: '>= 10'}
458 | cpu: [arm64]
459 | os: [win32]
460 | requiresBuild: true
461 | dev: false
462 | optional: true
463 |
464 | /@next/swc-win32-x64-msvc@15.2.3:
465 | resolution: {integrity: sha512-gHYS9tc+G2W0ZC8rBL+H6RdtXIyk40uLiaos0yj5US85FNhbFEndMA2nW3z47nzOWiSvXTZ5kBClc3rD0zJg0w==}
466 | engines: {node: '>= 10'}
467 | cpu: [x64]
468 | os: [win32]
469 | requiresBuild: true
470 | dev: false
471 | optional: true
472 |
473 | /@nodelib/fs.scandir@2.1.5:
474 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
475 | engines: {node: '>= 8'}
476 | dependencies:
477 | '@nodelib/fs.stat': 2.0.5
478 | run-parallel: 1.2.0
479 | dev: true
480 |
481 | /@nodelib/fs.stat@2.0.5:
482 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}
483 | engines: {node: '>= 8'}
484 | dev: true
485 |
486 | /@nodelib/fs.walk@1.2.8:
487 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
488 | engines: {node: '>= 8'}
489 | dependencies:
490 | '@nodelib/fs.scandir': 2.1.5
491 | fastq: 1.19.1
492 | dev: true
493 |
494 | /@nolyfill/is-core-module@1.0.39:
495 | resolution: {integrity: sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==}
496 | engines: {node: '>=12.4.0'}
497 | dev: true
498 |
499 | /@react-three/drei@10.0.4(@react-three/fiber@9.1.0)(@types/react@19.0.10)(@types/three@0.174.0)(react-dom@19.0.0)(react@19.0.0)(three@0.174.0):
500 | resolution: {integrity: sha512-/ZtU4DAkJg72ipsa/UHXJ6SFs45G/rTzV+TdgZH2vyqaNbnFqNHQNXpr/HXWtceZOYI8Gzlv1yPAuk8EjuhLSA==}
501 | peerDependencies:
502 | '@react-three/fiber': ^9.0.0
503 | react: ^19
504 | react-dom: ^19
505 | three: '>=0.159'
506 | peerDependenciesMeta:
507 | react-dom:
508 | optional: true
509 | dependencies:
510 | '@babel/runtime': 7.26.9
511 | '@mediapipe/tasks-vision': 0.10.17
512 | '@monogrid/gainmap-js': 3.1.0(three@0.174.0)
513 | '@react-three/fiber': 9.1.0(@types/react@19.0.10)(react-dom@19.0.0)(react@19.0.0)(three@0.174.0)
514 | '@use-gesture/react': 10.3.1(react@19.0.0)
515 | camera-controls: 2.10.0(three@0.174.0)
516 | cross-env: 7.0.3
517 | detect-gpu: 5.0.70
518 | glsl-noise: 0.0.0
519 | hls.js: 1.5.20
520 | maath: 0.10.8(@types/three@0.174.0)(three@0.174.0)
521 | meshline: 3.3.1(three@0.174.0)
522 | react: 19.0.0
523 | react-dom: 19.0.0(react@19.0.0)
524 | stats-gl: 2.4.2(@types/three@0.174.0)(three@0.174.0)
525 | stats.js: 0.17.0
526 | suspend-react: 0.1.3(react@19.0.0)
527 | three: 0.174.0
528 | three-mesh-bvh: 0.8.3(three@0.174.0)
529 | three-stdlib: 2.35.14(three@0.174.0)
530 | troika-three-text: 0.52.3(three@0.174.0)
531 | tunnel-rat: 0.1.2(@types/react@19.0.10)(react@19.0.0)
532 | use-sync-external-store: 1.4.0(react@19.0.0)
533 | utility-types: 3.11.0
534 | zustand: 5.0.3(@types/react@19.0.10)(react@19.0.0)(use-sync-external-store@1.4.0)
535 | transitivePeerDependencies:
536 | - '@types/react'
537 | - '@types/three'
538 | - immer
539 | dev: false
540 |
541 | /@react-three/fiber@9.1.0(@types/react@19.0.10)(react-dom@19.0.0)(react@19.0.0)(three@0.174.0):
542 | resolution: {integrity: sha512-r/a0dpqdz5ci17yMIWE+70WwxiTScGFEyvtDj0o4isZ7YUvPu0k78Zl7cJGL+KhheKXCzbNNxEz4+lFan6atyg==}
543 | peerDependencies:
544 | expo: '>=43.0'
545 | expo-asset: '>=8.4'
546 | expo-file-system: '>=11.0'
547 | expo-gl: '>=11.0'
548 | react: ^19.0.0
549 | react-dom: ^19.0.0
550 | react-native: '>=0.78'
551 | three: '>=0.156'
552 | peerDependenciesMeta:
553 | expo:
554 | optional: true
555 | expo-asset:
556 | optional: true
557 | expo-file-system:
558 | optional: true
559 | expo-gl:
560 | optional: true
561 | react-dom:
562 | optional: true
563 | react-native:
564 | optional: true
565 | dependencies:
566 | '@babel/runtime': 7.26.9
567 | '@types/react-reconciler': 0.28.9(@types/react@19.0.10)
568 | '@types/webxr': 0.5.21
569 | base64-js: 1.5.1
570 | buffer: 6.0.3
571 | its-fine: 2.0.0(@types/react@19.0.10)(react@19.0.0)
572 | react: 19.0.0
573 | react-dom: 19.0.0(react@19.0.0)
574 | react-reconciler: 0.31.0(react@19.0.0)
575 | react-use-measure: 2.1.7(react-dom@19.0.0)(react@19.0.0)
576 | scheduler: 0.25.0
577 | suspend-react: 0.1.3(react@19.0.0)
578 | three: 0.174.0
579 | use-sync-external-store: 1.4.0(react@19.0.0)
580 | zustand: 5.0.3(@types/react@19.0.10)(react@19.0.0)(use-sync-external-store@1.4.0)
581 | transitivePeerDependencies:
582 | - '@types/react'
583 | - immer
584 | dev: false
585 |
586 | /@rtsao/scc@1.1.0:
587 | resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==}
588 | dev: true
589 |
590 | /@rushstack/eslint-patch@1.10.5:
591 | resolution: {integrity: sha512-kkKUDVlII2DQiKy7UstOR1ErJP8kUKAQ4oa+SQtM0K+lPdmmjj0YnnxBgtTVYH7mUKtbsxeFC9y0AmK7Yb78/A==}
592 | dev: true
593 |
594 | /@swc/counter@0.1.3:
595 | resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==}
596 | dev: false
597 |
598 | /@swc/helpers@0.5.15:
599 | resolution: {integrity: sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==}
600 | dependencies:
601 | tslib: 2.8.1
602 | dev: false
603 |
604 | /@tailwindcss/node@4.0.12:
605 | resolution: {integrity: sha512-a6J11K1Ztdln9OrGfoM75/hChYPcHYGNYimqciMrvKXRmmPaS8XZTHhdvb5a3glz4Kd4ZxE1MnuFE2c0fGGmtg==}
606 | dependencies:
607 | enhanced-resolve: 5.18.1
608 | jiti: 2.4.2
609 | tailwindcss: 4.0.12
610 | dev: true
611 |
612 | /@tailwindcss/oxide-android-arm64@4.0.12:
613 | resolution: {integrity: sha512-dAXCaemu3mHLXcA5GwGlQynX8n7tTdvn5i1zAxRvZ5iC9fWLl5bGnjZnzrQqT7ttxCvRwdVf3IHUnMVdDBO/kQ==}
614 | engines: {node: '>= 10'}
615 | cpu: [arm64]
616 | os: [android]
617 | requiresBuild: true
618 | dev: true
619 | optional: true
620 |
621 | /@tailwindcss/oxide-darwin-arm64@4.0.12:
622 | resolution: {integrity: sha512-vPNI+TpJQ7sizselDXIJdYkx9Cu6JBdtmRWujw9pVIxW8uz3O2PjgGGzL/7A0sXI8XDjSyRChrUnEW9rQygmJQ==}
623 | engines: {node: '>= 10'}
624 | cpu: [arm64]
625 | os: [darwin]
626 | requiresBuild: true
627 | dev: true
628 | optional: true
629 |
630 | /@tailwindcss/oxide-darwin-x64@4.0.12:
631 | resolution: {integrity: sha512-RL/9jM41Fdq4Efr35C5wgLx98BirnrfwuD+zgMFK6Ir68HeOSqBhW9jsEeC7Y/JcGyPd3MEoJVIU4fAb7YLg7A==}
632 | engines: {node: '>= 10'}
633 | cpu: [x64]
634 | os: [darwin]
635 | requiresBuild: true
636 | dev: true
637 | optional: true
638 |
639 | /@tailwindcss/oxide-freebsd-x64@4.0.12:
640 | resolution: {integrity: sha512-7WzWiax+LguJcMEimY0Q4sBLlFXu1tYxVka3+G2M9KmU/3m84J3jAIV4KZWnockbHsbb2XgrEjtlJKVwHQCoRA==}
641 | engines: {node: '>= 10'}
642 | cpu: [x64]
643 | os: [freebsd]
644 | requiresBuild: true
645 | dev: true
646 | optional: true
647 |
648 | /@tailwindcss/oxide-linux-arm-gnueabihf@4.0.12:
649 | resolution: {integrity: sha512-X9LRC7jjE1QlfIaBbXjY0PGeQP87lz5mEfLSVs2J1yRc9PSg1tEPS9NBqY4BU9v5toZgJgzKeaNltORyTs22TQ==}
650 | engines: {node: '>= 10'}
651 | cpu: [arm]
652 | os: [linux]
653 | requiresBuild: true
654 | dev: true
655 | optional: true
656 |
657 | /@tailwindcss/oxide-linux-arm64-gnu@4.0.12:
658 | resolution: {integrity: sha512-i24IFNq2402zfDdoWKypXz0ZNS2G4NKaA82tgBlE2OhHIE+4mg2JDb5wVfyP6R+MCm5grgXvurcIcKWvo44QiQ==}
659 | engines: {node: '>= 10'}
660 | cpu: [arm64]
661 | os: [linux]
662 | requiresBuild: true
663 | dev: true
664 | optional: true
665 |
666 | /@tailwindcss/oxide-linux-arm64-musl@4.0.12:
667 | resolution: {integrity: sha512-LmOdshJBfAGIBG0DdBWhI0n5LTMurnGGJCHcsm9F//ISfsHtCnnYIKgYQui5oOz1SUCkqsMGfkAzWyNKZqbGNw==}
668 | engines: {node: '>= 10'}
669 | cpu: [arm64]
670 | os: [linux]
671 | requiresBuild: true
672 | dev: true
673 | optional: true
674 |
675 | /@tailwindcss/oxide-linux-x64-gnu@4.0.12:
676 | resolution: {integrity: sha512-OSK667qZRH30ep8RiHbZDQfqkXjnzKxdn0oRwWzgCO8CoTxV+MvIkd0BWdQbYtYuM1wrakARV/Hwp0eA/qzdbw==}
677 | engines: {node: '>= 10'}
678 | cpu: [x64]
679 | os: [linux]
680 | requiresBuild: true
681 | dev: true
682 | optional: true
683 |
684 | /@tailwindcss/oxide-linux-x64-musl@4.0.12:
685 | resolution: {integrity: sha512-uylhWq6OWQ8krV8Jk+v0H/3AZKJW6xYMgNMyNnUbbYXWi7hIVdxRKNUB5UvrlC3RxtgsK5EAV2i1CWTRsNcAnA==}
686 | engines: {node: '>= 10'}
687 | cpu: [x64]
688 | os: [linux]
689 | requiresBuild: true
690 | dev: true
691 | optional: true
692 |
693 | /@tailwindcss/oxide-win32-arm64-msvc@4.0.12:
694 | resolution: {integrity: sha512-XDLnhMoXZEEOir1LK43/gHHwK84V1GlV8+pAncUAIN2wloeD+nNciI9WRIY/BeFTqES22DhTIGoilSO39xDb2g==}
695 | engines: {node: '>= 10'}
696 | cpu: [arm64]
697 | os: [win32]
698 | requiresBuild: true
699 | dev: true
700 | optional: true
701 |
702 | /@tailwindcss/oxide-win32-x64-msvc@4.0.12:
703 | resolution: {integrity: sha512-I/BbjCLpKDQucvtn6rFuYLst1nfFwSMYyPzkx/095RE+tuzk5+fwXuzQh7T3fIBTcbn82qH/sFka7yPGA50tLw==}
704 | engines: {node: '>= 10'}
705 | cpu: [x64]
706 | os: [win32]
707 | requiresBuild: true
708 | dev: true
709 | optional: true
710 |
711 | /@tailwindcss/oxide@4.0.12:
712 | resolution: {integrity: sha512-DWb+myvJB9xJwelwT9GHaMc1qJj6MDXRDR0CS+T8IdkejAtu8ctJAgV4r1drQJLPeS7mNwq2UHW2GWrudTf63A==}
713 | engines: {node: '>= 10'}
714 | optionalDependencies:
715 | '@tailwindcss/oxide-android-arm64': 4.0.12
716 | '@tailwindcss/oxide-darwin-arm64': 4.0.12
717 | '@tailwindcss/oxide-darwin-x64': 4.0.12
718 | '@tailwindcss/oxide-freebsd-x64': 4.0.12
719 | '@tailwindcss/oxide-linux-arm-gnueabihf': 4.0.12
720 | '@tailwindcss/oxide-linux-arm64-gnu': 4.0.12
721 | '@tailwindcss/oxide-linux-arm64-musl': 4.0.12
722 | '@tailwindcss/oxide-linux-x64-gnu': 4.0.12
723 | '@tailwindcss/oxide-linux-x64-musl': 4.0.12
724 | '@tailwindcss/oxide-win32-arm64-msvc': 4.0.12
725 | '@tailwindcss/oxide-win32-x64-msvc': 4.0.12
726 | dev: true
727 |
728 | /@tailwindcss/postcss@4.0.12:
729 | resolution: {integrity: sha512-r59Sdr8djCW4dL3kvc4aWU8PHdUAVM3O3te2nbYzXsWwKLlHPCuUoZAc9FafXb/YyNDZOMI7sTbKTKFmwOrMjw==}
730 | dependencies:
731 | '@alloc/quick-lru': 5.2.0
732 | '@tailwindcss/node': 4.0.12
733 | '@tailwindcss/oxide': 4.0.12
734 | lightningcss: 1.29.2
735 | postcss: 8.5.3
736 | tailwindcss: 4.0.12
737 | dev: true
738 |
739 | /@tweenjs/tween.js@23.1.3:
740 | resolution: {integrity: sha512-vJmvvwFxYuGnF2axRtPYocag6Clbb5YS7kLL+SO/TeVFzHqDIWrNKYtcsPMibjDx9O+bu+psAy9NKfWklassUA==}
741 | dev: false
742 |
743 | /@types/draco3d@1.4.10:
744 | resolution: {integrity: sha512-AX22jp8Y7wwaBgAixaSvkoG4M/+PlAcm3Qs4OW8yT9DM4xUpWKeFhLueTAyZF39pviAdcDdeJoACapiAceqNcw==}
745 | dev: false
746 |
747 | /@types/estree@1.0.6:
748 | resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==}
749 | dev: true
750 |
751 | /@types/json-schema@7.0.15:
752 | resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==}
753 | dev: true
754 |
755 | /@types/json5@0.0.29:
756 | resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==}
757 | dev: true
758 |
759 | /@types/node@20.17.24:
760 | resolution: {integrity: sha512-d7fGCyB96w9BnWQrOsJtpyiSaBcAYYr75bnK6ZRjDbql2cGLj/3GsL5OYmLPNq76l7Gf2q4Rv9J2o6h5CrD9sA==}
761 | dependencies:
762 | undici-types: 6.19.8
763 | dev: true
764 |
765 | /@types/offscreencanvas@2019.7.3:
766 | resolution: {integrity: sha512-ieXiYmgSRXUDeOntE1InxjWyvEelZGP63M+cGuquuRLuIKKT1osnkXjxev9B7d1nXSug5vpunx+gNlbVxMlC9A==}
767 | dev: false
768 |
769 | /@types/react-dom@19.0.4(@types/react@19.0.10):
770 | resolution: {integrity: sha512-4fSQ8vWFkg+TGhePfUzVmat3eC14TXYSsiiDSLI0dVLsrm9gZFABjPy/Qu6TKgl1tq1Bu1yDsuQgY3A3DOjCcg==}
771 | peerDependencies:
772 | '@types/react': ^19.0.0
773 | dependencies:
774 | '@types/react': 19.0.10
775 | dev: true
776 |
777 | /@types/react-reconciler@0.28.9(@types/react@19.0.10):
778 | resolution: {integrity: sha512-HHM3nxyUZ3zAylX8ZEyrDNd2XZOnQ0D5XfunJF5FLQnZbHHYq4UWvW1QfelQNXv1ICNkwYhfxjwfnqivYB6bFg==}
779 | peerDependencies:
780 | '@types/react': '*'
781 | dependencies:
782 | '@types/react': 19.0.10
783 | dev: false
784 |
785 | /@types/react@19.0.10:
786 | resolution: {integrity: sha512-JuRQ9KXLEjaUNjTWpzuR231Z2WpIwczOkBEIvbHNCzQefFIT0L8IqE6NV6ULLyC1SI/i234JnDoMkfg+RjQj2g==}
787 | dependencies:
788 | csstype: 3.1.3
789 |
790 | /@types/stats.js@0.17.3:
791 | resolution: {integrity: sha512-pXNfAD3KHOdif9EQXZ9deK82HVNaXP5ZIF5RP2QG6OQFNTaY2YIetfrE9t528vEreGQvEPRDDc8muaoYeK0SxQ==}
792 | dev: false
793 |
794 | /@types/three@0.174.0:
795 | resolution: {integrity: sha512-De/+vZnfg2aVWNiuy1Ldu+n2ydgw1osinmiZTAn0necE++eOfsygL8JpZgFjR2uHmAPo89MkxBj3JJ+2BMe+Uw==}
796 | dependencies:
797 | '@tweenjs/tween.js': 23.1.3
798 | '@types/stats.js': 0.17.3
799 | '@types/webxr': 0.5.21
800 | '@webgpu/types': 0.1.55
801 | fflate: 0.8.2
802 | meshoptimizer: 0.18.1
803 | dev: false
804 |
805 | /@types/webxr@0.5.21:
806 | resolution: {integrity: sha512-geZIAtLzjGmgY2JUi6VxXdCrTb99A7yP49lxLr2Nm/uIK0PkkxcEi4OGhoGDO4pxCf3JwGz2GiJL2Ej4K2bKaA==}
807 | dev: false
808 |
809 | /@typescript-eslint/eslint-plugin@8.26.0(@typescript-eslint/parser@8.26.0)(eslint@9.22.0)(typescript@5.8.2):
810 | resolution: {integrity: sha512-cLr1J6pe56zjKYajK6SSSre6nl1Gj6xDp1TY0trpgPzjVbgDwd09v2Ws37LABxzkicmUjhEeg/fAUjPJJB1v5Q==}
811 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
812 | peerDependencies:
813 | '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0
814 | eslint: ^8.57.0 || ^9.0.0
815 | typescript: '>=4.8.4 <5.9.0'
816 | dependencies:
817 | '@eslint-community/regexpp': 4.12.1
818 | '@typescript-eslint/parser': 8.26.0(eslint@9.22.0)(typescript@5.8.2)
819 | '@typescript-eslint/scope-manager': 8.26.0
820 | '@typescript-eslint/type-utils': 8.26.0(eslint@9.22.0)(typescript@5.8.2)
821 | '@typescript-eslint/utils': 8.26.0(eslint@9.22.0)(typescript@5.8.2)
822 | '@typescript-eslint/visitor-keys': 8.26.0
823 | eslint: 9.22.0
824 | graphemer: 1.4.0
825 | ignore: 5.3.2
826 | natural-compare: 1.4.0
827 | ts-api-utils: 2.0.1(typescript@5.8.2)
828 | typescript: 5.8.2
829 | transitivePeerDependencies:
830 | - supports-color
831 | dev: true
832 |
833 | /@typescript-eslint/parser@8.26.0(eslint@9.22.0)(typescript@5.8.2):
834 | resolution: {integrity: sha512-mNtXP9LTVBy14ZF3o7JG69gRPBK/2QWtQd0j0oH26HcY/foyJJau6pNUez7QrM5UHnSvwlQcJXKsk0I99B9pOA==}
835 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
836 | peerDependencies:
837 | eslint: ^8.57.0 || ^9.0.0
838 | typescript: '>=4.8.4 <5.9.0'
839 | dependencies:
840 | '@typescript-eslint/scope-manager': 8.26.0
841 | '@typescript-eslint/types': 8.26.0
842 | '@typescript-eslint/typescript-estree': 8.26.0(typescript@5.8.2)
843 | '@typescript-eslint/visitor-keys': 8.26.0
844 | debug: 4.4.0
845 | eslint: 9.22.0
846 | typescript: 5.8.2
847 | transitivePeerDependencies:
848 | - supports-color
849 | dev: true
850 |
851 | /@typescript-eslint/scope-manager@8.26.0:
852 | resolution: {integrity: sha512-E0ntLvsfPqnPwng8b8y4OGuzh/iIOm2z8U3S9zic2TeMLW61u5IH2Q1wu0oSTkfrSzwbDJIB/Lm8O3//8BWMPA==}
853 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
854 | dependencies:
855 | '@typescript-eslint/types': 8.26.0
856 | '@typescript-eslint/visitor-keys': 8.26.0
857 | dev: true
858 |
859 | /@typescript-eslint/type-utils@8.26.0(eslint@9.22.0)(typescript@5.8.2):
860 | resolution: {integrity: sha512-ruk0RNChLKz3zKGn2LwXuVoeBcUMh+jaqzN461uMMdxy5H9epZqIBtYj7UiPXRuOpaALXGbmRuZQhmwHhaS04Q==}
861 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
862 | peerDependencies:
863 | eslint: ^8.57.0 || ^9.0.0
864 | typescript: '>=4.8.4 <5.9.0'
865 | dependencies:
866 | '@typescript-eslint/typescript-estree': 8.26.0(typescript@5.8.2)
867 | '@typescript-eslint/utils': 8.26.0(eslint@9.22.0)(typescript@5.8.2)
868 | debug: 4.4.0
869 | eslint: 9.22.0
870 | ts-api-utils: 2.0.1(typescript@5.8.2)
871 | typescript: 5.8.2
872 | transitivePeerDependencies:
873 | - supports-color
874 | dev: true
875 |
876 | /@typescript-eslint/types@8.26.0:
877 | resolution: {integrity: sha512-89B1eP3tnpr9A8L6PZlSjBvnJhWXtYfZhECqlBl1D9Lme9mHO6iWlsprBtVenQvY1HMhax1mWOjhtL3fh/u+pA==}
878 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
879 | dev: true
880 |
881 | /@typescript-eslint/typescript-estree@8.26.0(typescript@5.8.2):
882 | resolution: {integrity: sha512-tiJ1Hvy/V/oMVRTbEOIeemA2XoylimlDQ03CgPPNaHYZbpsc78Hmngnt+WXZfJX1pjQ711V7g0H7cSJThGYfPQ==}
883 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
884 | peerDependencies:
885 | typescript: '>=4.8.4 <5.9.0'
886 | dependencies:
887 | '@typescript-eslint/types': 8.26.0
888 | '@typescript-eslint/visitor-keys': 8.26.0
889 | debug: 4.4.0
890 | fast-glob: 3.3.3
891 | is-glob: 4.0.3
892 | minimatch: 9.0.5
893 | semver: 7.7.1
894 | ts-api-utils: 2.0.1(typescript@5.8.2)
895 | typescript: 5.8.2
896 | transitivePeerDependencies:
897 | - supports-color
898 | dev: true
899 |
900 | /@typescript-eslint/utils@8.26.0(eslint@9.22.0)(typescript@5.8.2):
901 | resolution: {integrity: sha512-2L2tU3FVwhvU14LndnQCA2frYC8JnPDVKyQtWFPf8IYFMt/ykEN1bPolNhNbCVgOmdzTlWdusCTKA/9nKrf8Ig==}
902 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
903 | peerDependencies:
904 | eslint: ^8.57.0 || ^9.0.0
905 | typescript: '>=4.8.4 <5.9.0'
906 | dependencies:
907 | '@eslint-community/eslint-utils': 4.4.1(eslint@9.22.0)
908 | '@typescript-eslint/scope-manager': 8.26.0
909 | '@typescript-eslint/types': 8.26.0
910 | '@typescript-eslint/typescript-estree': 8.26.0(typescript@5.8.2)
911 | eslint: 9.22.0
912 | typescript: 5.8.2
913 | transitivePeerDependencies:
914 | - supports-color
915 | dev: true
916 |
917 | /@typescript-eslint/visitor-keys@8.26.0:
918 | resolution: {integrity: sha512-2z8JQJWAzPdDd51dRQ/oqIJxe99/hoLIqmf8RMCAJQtYDc535W/Jt2+RTP4bP0aKeBG1F65yjIZuczOXCmbWwg==}
919 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
920 | dependencies:
921 | '@typescript-eslint/types': 8.26.0
922 | eslint-visitor-keys: 4.2.0
923 | dev: true
924 |
925 | /@use-gesture/core@10.3.1:
926 | resolution: {integrity: sha512-WcINiDt8WjqBdUXye25anHiNxPc0VOrlT8F6LLkU6cycrOGUDyY/yyFmsg3k8i5OLvv25llc0QC45GhR/C8llw==}
927 | dev: false
928 |
929 | /@use-gesture/react@10.3.1(react@19.0.0):
930 | resolution: {integrity: sha512-Yy19y6O2GJq8f7CHf7L0nxL8bf4PZCPaVOCgJrusOeFHY1LvHgYXnmnXg6N5iwAnbgbZCDjo60SiM6IPJi9C5g==}
931 | peerDependencies:
932 | react: '>= 16.8.0'
933 | dependencies:
934 | '@use-gesture/core': 10.3.1
935 | react: 19.0.0
936 | dev: false
937 |
938 | /@webgpu/types@0.1.55:
939 | resolution: {integrity: sha512-p97I8XEC1h04esklFqyIH+UhFrUcj8/1/vBWgc6lAK4jMJc+KbhUy8D4dquHYztFj6pHLqGcp/P1xvBBF4r3DA==}
940 | dev: false
941 |
942 | /acorn-jsx@5.3.2(acorn@8.14.1):
943 | resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
944 | peerDependencies:
945 | acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
946 | dependencies:
947 | acorn: 8.14.1
948 | dev: true
949 |
950 | /acorn@8.14.1:
951 | resolution: {integrity: sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==}
952 | engines: {node: '>=0.4.0'}
953 | hasBin: true
954 | dev: true
955 |
956 | /ajv@6.12.6:
957 | resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
958 | dependencies:
959 | fast-deep-equal: 3.1.3
960 | fast-json-stable-stringify: 2.1.0
961 | json-schema-traverse: 0.4.1
962 | uri-js: 4.4.1
963 | dev: true
964 |
965 | /ansi-styles@4.3.0:
966 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
967 | engines: {node: '>=8'}
968 | dependencies:
969 | color-convert: 2.0.1
970 | dev: true
971 |
972 | /argparse@2.0.1:
973 | resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
974 | dev: true
975 |
976 | /aria-query@5.3.2:
977 | resolution: {integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==}
978 | engines: {node: '>= 0.4'}
979 | dev: true
980 |
981 | /array-buffer-byte-length@1.0.2:
982 | resolution: {integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==}
983 | engines: {node: '>= 0.4'}
984 | dependencies:
985 | call-bound: 1.0.4
986 | is-array-buffer: 3.0.5
987 | dev: true
988 |
989 | /array-includes@3.1.8:
990 | resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==}
991 | engines: {node: '>= 0.4'}
992 | dependencies:
993 | call-bind: 1.0.8
994 | define-properties: 1.2.1
995 | es-abstract: 1.23.9
996 | es-object-atoms: 1.1.1
997 | get-intrinsic: 1.3.0
998 | is-string: 1.1.1
999 | dev: true
1000 |
1001 | /array.prototype.findlast@1.2.5:
1002 | resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==}
1003 | engines: {node: '>= 0.4'}
1004 | dependencies:
1005 | call-bind: 1.0.8
1006 | define-properties: 1.2.1
1007 | es-abstract: 1.23.9
1008 | es-errors: 1.3.0
1009 | es-object-atoms: 1.1.1
1010 | es-shim-unscopables: 1.1.0
1011 | dev: true
1012 |
1013 | /array.prototype.findlastindex@1.2.5:
1014 | resolution: {integrity: sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==}
1015 | engines: {node: '>= 0.4'}
1016 | dependencies:
1017 | call-bind: 1.0.8
1018 | define-properties: 1.2.1
1019 | es-abstract: 1.23.9
1020 | es-errors: 1.3.0
1021 | es-object-atoms: 1.1.1
1022 | es-shim-unscopables: 1.1.0
1023 | dev: true
1024 |
1025 | /array.prototype.flat@1.3.3:
1026 | resolution: {integrity: sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==}
1027 | engines: {node: '>= 0.4'}
1028 | dependencies:
1029 | call-bind: 1.0.8
1030 | define-properties: 1.2.1
1031 | es-abstract: 1.23.9
1032 | es-shim-unscopables: 1.1.0
1033 | dev: true
1034 |
1035 | /array.prototype.flatmap@1.3.3:
1036 | resolution: {integrity: sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==}
1037 | engines: {node: '>= 0.4'}
1038 | dependencies:
1039 | call-bind: 1.0.8
1040 | define-properties: 1.2.1
1041 | es-abstract: 1.23.9
1042 | es-shim-unscopables: 1.1.0
1043 | dev: true
1044 |
1045 | /array.prototype.tosorted@1.1.4:
1046 | resolution: {integrity: sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==}
1047 | engines: {node: '>= 0.4'}
1048 | dependencies:
1049 | call-bind: 1.0.8
1050 | define-properties: 1.2.1
1051 | es-abstract: 1.23.9
1052 | es-errors: 1.3.0
1053 | es-shim-unscopables: 1.1.0
1054 | dev: true
1055 |
1056 | /arraybuffer.prototype.slice@1.0.4:
1057 | resolution: {integrity: sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==}
1058 | engines: {node: '>= 0.4'}
1059 | dependencies:
1060 | array-buffer-byte-length: 1.0.2
1061 | call-bind: 1.0.8
1062 | define-properties: 1.2.1
1063 | es-abstract: 1.23.9
1064 | es-errors: 1.3.0
1065 | get-intrinsic: 1.3.0
1066 | is-array-buffer: 3.0.5
1067 | dev: true
1068 |
1069 | /ast-types-flow@0.0.8:
1070 | resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==}
1071 | dev: true
1072 |
1073 | /async-function@1.0.0:
1074 | resolution: {integrity: sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==}
1075 | engines: {node: '>= 0.4'}
1076 | dev: true
1077 |
1078 | /available-typed-arrays@1.0.7:
1079 | resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==}
1080 | engines: {node: '>= 0.4'}
1081 | dependencies:
1082 | possible-typed-array-names: 1.1.0
1083 | dev: true
1084 |
1085 | /axe-core@4.10.3:
1086 | resolution: {integrity: sha512-Xm7bpRXnDSX2YE2YFfBk2FnF0ep6tmG7xPh8iHee8MIcrgq762Nkce856dYtJYLkuIoYZvGfTs/PbZhideTcEg==}
1087 | engines: {node: '>=4'}
1088 | dev: true
1089 |
1090 | /axobject-query@4.1.0:
1091 | resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==}
1092 | engines: {node: '>= 0.4'}
1093 | dev: true
1094 |
1095 | /balanced-match@1.0.2:
1096 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
1097 | dev: true
1098 |
1099 | /base64-js@1.5.1:
1100 | resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
1101 | dev: false
1102 |
1103 | /bidi-js@1.0.3:
1104 | resolution: {integrity: sha512-RKshQI1R3YQ+n9YJz2QQ147P66ELpa1FQEg20Dk8oW9t2KgLbpDLLp9aGZ7y8WHSshDknG0bknqGw5/tyCs5tw==}
1105 | dependencies:
1106 | require-from-string: 2.0.2
1107 | dev: false
1108 |
1109 | /brace-expansion@1.1.11:
1110 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
1111 | dependencies:
1112 | balanced-match: 1.0.2
1113 | concat-map: 0.0.1
1114 | dev: true
1115 |
1116 | /brace-expansion@2.0.1:
1117 | resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==}
1118 | dependencies:
1119 | balanced-match: 1.0.2
1120 | dev: true
1121 |
1122 | /braces@3.0.3:
1123 | resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==}
1124 | engines: {node: '>=8'}
1125 | dependencies:
1126 | fill-range: 7.1.1
1127 | dev: true
1128 |
1129 | /buffer@6.0.3:
1130 | resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==}
1131 | dependencies:
1132 | base64-js: 1.5.1
1133 | ieee754: 1.2.1
1134 | dev: false
1135 |
1136 | /busboy@1.6.0:
1137 | resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==}
1138 | engines: {node: '>=10.16.0'}
1139 | dependencies:
1140 | streamsearch: 1.1.0
1141 | dev: false
1142 |
1143 | /call-bind-apply-helpers@1.0.2:
1144 | resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==}
1145 | engines: {node: '>= 0.4'}
1146 | dependencies:
1147 | es-errors: 1.3.0
1148 | function-bind: 1.1.2
1149 | dev: true
1150 |
1151 | /call-bind@1.0.8:
1152 | resolution: {integrity: sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==}
1153 | engines: {node: '>= 0.4'}
1154 | dependencies:
1155 | call-bind-apply-helpers: 1.0.2
1156 | es-define-property: 1.0.1
1157 | get-intrinsic: 1.3.0
1158 | set-function-length: 1.2.2
1159 | dev: true
1160 |
1161 | /call-bound@1.0.4:
1162 | resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==}
1163 | engines: {node: '>= 0.4'}
1164 | dependencies:
1165 | call-bind-apply-helpers: 1.0.2
1166 | get-intrinsic: 1.3.0
1167 | dev: true
1168 |
1169 | /callsites@3.1.0:
1170 | resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
1171 | engines: {node: '>=6'}
1172 | dev: true
1173 |
1174 | /camera-controls@2.10.0(three@0.174.0):
1175 | resolution: {integrity: sha512-vBQ5Daxv4KRsn07U/VqkPxoqD8U+S++0oq5NLf4HevMuh/BDta3rg49e/P564AMzFPBePQeXDKOkiIezRgyDwg==}
1176 | peerDependencies:
1177 | three: '>=0.126.1'
1178 | dependencies:
1179 | three: 0.174.0
1180 | dev: false
1181 |
1182 | /caniuse-lite@1.0.30001702:
1183 | resolution: {integrity: sha512-LoPe/D7zioC0REI5W73PeR1e1MLCipRGq/VkovJnd6Df+QVqT+vT33OXCp8QUd7kA7RZrHWxb1B36OQKI/0gOA==}
1184 | dev: false
1185 |
1186 | /chalk@4.1.2:
1187 | resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
1188 | engines: {node: '>=10'}
1189 | dependencies:
1190 | ansi-styles: 4.3.0
1191 | supports-color: 7.2.0
1192 | dev: true
1193 |
1194 | /client-only@0.0.1:
1195 | resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==}
1196 | dev: false
1197 |
1198 | /color-convert@2.0.1:
1199 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
1200 | engines: {node: '>=7.0.0'}
1201 | dependencies:
1202 | color-name: 1.1.4
1203 |
1204 | /color-name@1.1.4:
1205 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
1206 | requiresBuild: true
1207 |
1208 | /color-string@1.9.1:
1209 | resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==}
1210 | requiresBuild: true
1211 | dependencies:
1212 | color-name: 1.1.4
1213 | simple-swizzle: 0.2.2
1214 | dev: false
1215 | optional: true
1216 |
1217 | /color@4.2.3:
1218 | resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==}
1219 | engines: {node: '>=12.5.0'}
1220 | requiresBuild: true
1221 | dependencies:
1222 | color-convert: 2.0.1
1223 | color-string: 1.9.1
1224 | dev: false
1225 | optional: true
1226 |
1227 | /concat-map@0.0.1:
1228 | resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
1229 | dev: true
1230 |
1231 | /cross-env@7.0.3:
1232 | resolution: {integrity: sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==}
1233 | engines: {node: '>=10.14', npm: '>=6', yarn: '>=1'}
1234 | hasBin: true
1235 | dependencies:
1236 | cross-spawn: 7.0.6
1237 | dev: false
1238 |
1239 | /cross-spawn@7.0.6:
1240 | resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==}
1241 | engines: {node: '>= 8'}
1242 | dependencies:
1243 | path-key: 3.1.1
1244 | shebang-command: 2.0.0
1245 | which: 2.0.2
1246 |
1247 | /csstype@3.1.3:
1248 | resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==}
1249 |
1250 | /damerau-levenshtein@1.0.8:
1251 | resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==}
1252 | dev: true
1253 |
1254 | /data-view-buffer@1.0.2:
1255 | resolution: {integrity: sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==}
1256 | engines: {node: '>= 0.4'}
1257 | dependencies:
1258 | call-bound: 1.0.4
1259 | es-errors: 1.3.0
1260 | is-data-view: 1.0.2
1261 | dev: true
1262 |
1263 | /data-view-byte-length@1.0.2:
1264 | resolution: {integrity: sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==}
1265 | engines: {node: '>= 0.4'}
1266 | dependencies:
1267 | call-bound: 1.0.4
1268 | es-errors: 1.3.0
1269 | is-data-view: 1.0.2
1270 | dev: true
1271 |
1272 | /data-view-byte-offset@1.0.1:
1273 | resolution: {integrity: sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==}
1274 | engines: {node: '>= 0.4'}
1275 | dependencies:
1276 | call-bound: 1.0.4
1277 | es-errors: 1.3.0
1278 | is-data-view: 1.0.2
1279 | dev: true
1280 |
1281 | /debug@3.2.7:
1282 | resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==}
1283 | peerDependencies:
1284 | supports-color: '*'
1285 | peerDependenciesMeta:
1286 | supports-color:
1287 | optional: true
1288 | dependencies:
1289 | ms: 2.1.3
1290 | dev: true
1291 |
1292 | /debug@4.4.0:
1293 | resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==}
1294 | engines: {node: '>=6.0'}
1295 | peerDependencies:
1296 | supports-color: '*'
1297 | peerDependenciesMeta:
1298 | supports-color:
1299 | optional: true
1300 | dependencies:
1301 | ms: 2.1.3
1302 | dev: true
1303 |
1304 | /deep-is@0.1.4:
1305 | resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
1306 | dev: true
1307 |
1308 | /define-data-property@1.1.4:
1309 | resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==}
1310 | engines: {node: '>= 0.4'}
1311 | dependencies:
1312 | es-define-property: 1.0.1
1313 | es-errors: 1.3.0
1314 | gopd: 1.2.0
1315 | dev: true
1316 |
1317 | /define-properties@1.2.1:
1318 | resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==}
1319 | engines: {node: '>= 0.4'}
1320 | dependencies:
1321 | define-data-property: 1.1.4
1322 | has-property-descriptors: 1.0.2
1323 | object-keys: 1.1.1
1324 | dev: true
1325 |
1326 | /detect-gpu@5.0.70:
1327 | resolution: {integrity: sha512-bqerEP1Ese6nt3rFkwPnGbsUF9a4q+gMmpTVVOEzoCyeCc+y7/RvJnQZJx1JwhgQI5Ntg0Kgat8Uu7XpBqnz1w==}
1328 | dependencies:
1329 | webgl-constants: 1.1.1
1330 | dev: false
1331 |
1332 | /detect-libc@2.0.3:
1333 | resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==}
1334 | engines: {node: '>=8'}
1335 |
1336 | /doctrine@2.1.0:
1337 | resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==}
1338 | engines: {node: '>=0.10.0'}
1339 | dependencies:
1340 | esutils: 2.0.3
1341 | dev: true
1342 |
1343 | /draco3d@1.5.7:
1344 | resolution: {integrity: sha512-m6WCKt/erDXcw+70IJXnG7M3awwQPAsZvJGX5zY7beBqpELw6RDGkYVU0W43AFxye4pDZ5i2Lbyc/NNGqwjUVQ==}
1345 | dev: false
1346 |
1347 | /dunder-proto@1.0.1:
1348 | resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==}
1349 | engines: {node: '>= 0.4'}
1350 | dependencies:
1351 | call-bind-apply-helpers: 1.0.2
1352 | es-errors: 1.3.0
1353 | gopd: 1.2.0
1354 | dev: true
1355 |
1356 | /emoji-regex@9.2.2:
1357 | resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==}
1358 | dev: true
1359 |
1360 | /enhanced-resolve@5.18.1:
1361 | resolution: {integrity: sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==}
1362 | engines: {node: '>=10.13.0'}
1363 | dependencies:
1364 | graceful-fs: 4.2.11
1365 | tapable: 2.2.1
1366 | dev: true
1367 |
1368 | /es-abstract@1.23.9:
1369 | resolution: {integrity: sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==}
1370 | engines: {node: '>= 0.4'}
1371 | dependencies:
1372 | array-buffer-byte-length: 1.0.2
1373 | arraybuffer.prototype.slice: 1.0.4
1374 | available-typed-arrays: 1.0.7
1375 | call-bind: 1.0.8
1376 | call-bound: 1.0.4
1377 | data-view-buffer: 1.0.2
1378 | data-view-byte-length: 1.0.2
1379 | data-view-byte-offset: 1.0.1
1380 | es-define-property: 1.0.1
1381 | es-errors: 1.3.0
1382 | es-object-atoms: 1.1.1
1383 | es-set-tostringtag: 2.1.0
1384 | es-to-primitive: 1.3.0
1385 | function.prototype.name: 1.1.8
1386 | get-intrinsic: 1.3.0
1387 | get-proto: 1.0.1
1388 | get-symbol-description: 1.1.0
1389 | globalthis: 1.0.4
1390 | gopd: 1.2.0
1391 | has-property-descriptors: 1.0.2
1392 | has-proto: 1.2.0
1393 | has-symbols: 1.1.0
1394 | hasown: 2.0.2
1395 | internal-slot: 1.1.0
1396 | is-array-buffer: 3.0.5
1397 | is-callable: 1.2.7
1398 | is-data-view: 1.0.2
1399 | is-regex: 1.2.1
1400 | is-shared-array-buffer: 1.0.4
1401 | is-string: 1.1.1
1402 | is-typed-array: 1.1.15
1403 | is-weakref: 1.1.1
1404 | math-intrinsics: 1.1.0
1405 | object-inspect: 1.13.4
1406 | object-keys: 1.1.1
1407 | object.assign: 4.1.7
1408 | own-keys: 1.0.1
1409 | regexp.prototype.flags: 1.5.4
1410 | safe-array-concat: 1.1.3
1411 | safe-push-apply: 1.0.0
1412 | safe-regex-test: 1.1.0
1413 | set-proto: 1.0.0
1414 | string.prototype.trim: 1.2.10
1415 | string.prototype.trimend: 1.0.9
1416 | string.prototype.trimstart: 1.0.8
1417 | typed-array-buffer: 1.0.3
1418 | typed-array-byte-length: 1.0.3
1419 | typed-array-byte-offset: 1.0.4
1420 | typed-array-length: 1.0.7
1421 | unbox-primitive: 1.1.0
1422 | which-typed-array: 1.1.19
1423 | dev: true
1424 |
1425 | /es-define-property@1.0.1:
1426 | resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==}
1427 | engines: {node: '>= 0.4'}
1428 | dev: true
1429 |
1430 | /es-errors@1.3.0:
1431 | resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==}
1432 | engines: {node: '>= 0.4'}
1433 | dev: true
1434 |
1435 | /es-iterator-helpers@1.2.1:
1436 | resolution: {integrity: sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w==}
1437 | engines: {node: '>= 0.4'}
1438 | dependencies:
1439 | call-bind: 1.0.8
1440 | call-bound: 1.0.4
1441 | define-properties: 1.2.1
1442 | es-abstract: 1.23.9
1443 | es-errors: 1.3.0
1444 | es-set-tostringtag: 2.1.0
1445 | function-bind: 1.1.2
1446 | get-intrinsic: 1.3.0
1447 | globalthis: 1.0.4
1448 | gopd: 1.2.0
1449 | has-property-descriptors: 1.0.2
1450 | has-proto: 1.2.0
1451 | has-symbols: 1.1.0
1452 | internal-slot: 1.1.0
1453 | iterator.prototype: 1.1.5
1454 | safe-array-concat: 1.1.3
1455 | dev: true
1456 |
1457 | /es-object-atoms@1.1.1:
1458 | resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==}
1459 | engines: {node: '>= 0.4'}
1460 | dependencies:
1461 | es-errors: 1.3.0
1462 | dev: true
1463 |
1464 | /es-set-tostringtag@2.1.0:
1465 | resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==}
1466 | engines: {node: '>= 0.4'}
1467 | dependencies:
1468 | es-errors: 1.3.0
1469 | get-intrinsic: 1.3.0
1470 | has-tostringtag: 1.0.2
1471 | hasown: 2.0.2
1472 | dev: true
1473 |
1474 | /es-shim-unscopables@1.1.0:
1475 | resolution: {integrity: sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==}
1476 | engines: {node: '>= 0.4'}
1477 | dependencies:
1478 | hasown: 2.0.2
1479 | dev: true
1480 |
1481 | /es-to-primitive@1.3.0:
1482 | resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==}
1483 | engines: {node: '>= 0.4'}
1484 | dependencies:
1485 | is-callable: 1.2.7
1486 | is-date-object: 1.1.0
1487 | is-symbol: 1.1.1
1488 | dev: true
1489 |
1490 | /escape-string-regexp@4.0.0:
1491 | resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
1492 | engines: {node: '>=10'}
1493 | dev: true
1494 |
1495 | /eslint-config-next@15.2.1(eslint@9.22.0)(typescript@5.8.2):
1496 | resolution: {integrity: sha512-mhsprz7l0no8X+PdDnVHF4dZKu9YBJp2Rf6ztWbXBLJ4h6gxmW//owbbGJMBVUU+PibGJDAqZhW4pt8SC8HSow==}
1497 | peerDependencies:
1498 | eslint: ^7.23.0 || ^8.0.0 || ^9.0.0
1499 | typescript: '>=3.3.1'
1500 | peerDependenciesMeta:
1501 | typescript:
1502 | optional: true
1503 | dependencies:
1504 | '@next/eslint-plugin-next': 15.2.1
1505 | '@rushstack/eslint-patch': 1.10.5
1506 | '@typescript-eslint/eslint-plugin': 8.26.0(@typescript-eslint/parser@8.26.0)(eslint@9.22.0)(typescript@5.8.2)
1507 | '@typescript-eslint/parser': 8.26.0(eslint@9.22.0)(typescript@5.8.2)
1508 | eslint: 9.22.0
1509 | eslint-import-resolver-node: 0.3.9
1510 | eslint-import-resolver-typescript: 3.8.3(eslint-plugin-import@2.31.0)(eslint@9.22.0)
1511 | eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.26.0)(eslint-import-resolver-typescript@3.8.3)(eslint@9.22.0)
1512 | eslint-plugin-jsx-a11y: 6.10.2(eslint@9.22.0)
1513 | eslint-plugin-react: 7.37.4(eslint@9.22.0)
1514 | eslint-plugin-react-hooks: 5.2.0(eslint@9.22.0)
1515 | typescript: 5.8.2
1516 | transitivePeerDependencies:
1517 | - eslint-import-resolver-webpack
1518 | - eslint-plugin-import-x
1519 | - supports-color
1520 | dev: true
1521 |
1522 | /eslint-import-resolver-node@0.3.9:
1523 | resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==}
1524 | dependencies:
1525 | debug: 3.2.7
1526 | is-core-module: 2.16.1
1527 | resolve: 1.22.10
1528 | transitivePeerDependencies:
1529 | - supports-color
1530 | dev: true
1531 |
1532 | /eslint-import-resolver-typescript@3.8.3(eslint-plugin-import@2.31.0)(eslint@9.22.0):
1533 | resolution: {integrity: sha512-A0bu4Ks2QqDWNpeEgTQMPTngaMhuDu4yv6xpftBMAf+1ziXnpx+eSR1WRfoPTe2BAiAjHFZ7kSNx1fvr5g5pmQ==}
1534 | engines: {node: ^14.18.0 || >=16.0.0}
1535 | peerDependencies:
1536 | eslint: '*'
1537 | eslint-plugin-import: '*'
1538 | eslint-plugin-import-x: '*'
1539 | peerDependenciesMeta:
1540 | eslint-plugin-import:
1541 | optional: true
1542 | eslint-plugin-import-x:
1543 | optional: true
1544 | dependencies:
1545 | '@nolyfill/is-core-module': 1.0.39
1546 | debug: 4.4.0
1547 | enhanced-resolve: 5.18.1
1548 | eslint: 9.22.0
1549 | eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.26.0)(eslint-import-resolver-typescript@3.8.3)(eslint@9.22.0)
1550 | get-tsconfig: 4.10.0
1551 | is-bun-module: 1.3.0
1552 | stable-hash: 0.0.4
1553 | tinyglobby: 0.2.12
1554 | transitivePeerDependencies:
1555 | - supports-color
1556 | dev: true
1557 |
1558 | /eslint-module-utils@2.12.0(@typescript-eslint/parser@8.26.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.8.3)(eslint@9.22.0):
1559 | resolution: {integrity: sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==}
1560 | engines: {node: '>=4'}
1561 | peerDependencies:
1562 | '@typescript-eslint/parser': '*'
1563 | eslint: '*'
1564 | eslint-import-resolver-node: '*'
1565 | eslint-import-resolver-typescript: '*'
1566 | eslint-import-resolver-webpack: '*'
1567 | peerDependenciesMeta:
1568 | '@typescript-eslint/parser':
1569 | optional: true
1570 | eslint:
1571 | optional: true
1572 | eslint-import-resolver-node:
1573 | optional: true
1574 | eslint-import-resolver-typescript:
1575 | optional: true
1576 | eslint-import-resolver-webpack:
1577 | optional: true
1578 | dependencies:
1579 | '@typescript-eslint/parser': 8.26.0(eslint@9.22.0)(typescript@5.8.2)
1580 | debug: 3.2.7
1581 | eslint: 9.22.0
1582 | eslint-import-resolver-node: 0.3.9
1583 | eslint-import-resolver-typescript: 3.8.3(eslint-plugin-import@2.31.0)(eslint@9.22.0)
1584 | transitivePeerDependencies:
1585 | - supports-color
1586 | dev: true
1587 |
1588 | /eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.26.0)(eslint-import-resolver-typescript@3.8.3)(eslint@9.22.0):
1589 | resolution: {integrity: sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==}
1590 | engines: {node: '>=4'}
1591 | peerDependencies:
1592 | '@typescript-eslint/parser': '*'
1593 | eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9
1594 | peerDependenciesMeta:
1595 | '@typescript-eslint/parser':
1596 | optional: true
1597 | dependencies:
1598 | '@rtsao/scc': 1.1.0
1599 | '@typescript-eslint/parser': 8.26.0(eslint@9.22.0)(typescript@5.8.2)
1600 | array-includes: 3.1.8
1601 | array.prototype.findlastindex: 1.2.5
1602 | array.prototype.flat: 1.3.3
1603 | array.prototype.flatmap: 1.3.3
1604 | debug: 3.2.7
1605 | doctrine: 2.1.0
1606 | eslint: 9.22.0
1607 | eslint-import-resolver-node: 0.3.9
1608 | eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.26.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.8.3)(eslint@9.22.0)
1609 | hasown: 2.0.2
1610 | is-core-module: 2.16.1
1611 | is-glob: 4.0.3
1612 | minimatch: 3.1.2
1613 | object.fromentries: 2.0.8
1614 | object.groupby: 1.0.3
1615 | object.values: 1.2.1
1616 | semver: 6.3.1
1617 | string.prototype.trimend: 1.0.9
1618 | tsconfig-paths: 3.15.0
1619 | transitivePeerDependencies:
1620 | - eslint-import-resolver-typescript
1621 | - eslint-import-resolver-webpack
1622 | - supports-color
1623 | dev: true
1624 |
1625 | /eslint-plugin-jsx-a11y@6.10.2(eslint@9.22.0):
1626 | resolution: {integrity: sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q==}
1627 | engines: {node: '>=4.0'}
1628 | peerDependencies:
1629 | eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9
1630 | dependencies:
1631 | aria-query: 5.3.2
1632 | array-includes: 3.1.8
1633 | array.prototype.flatmap: 1.3.3
1634 | ast-types-flow: 0.0.8
1635 | axe-core: 4.10.3
1636 | axobject-query: 4.1.0
1637 | damerau-levenshtein: 1.0.8
1638 | emoji-regex: 9.2.2
1639 | eslint: 9.22.0
1640 | hasown: 2.0.2
1641 | jsx-ast-utils: 3.3.5
1642 | language-tags: 1.0.9
1643 | minimatch: 3.1.2
1644 | object.fromentries: 2.0.8
1645 | safe-regex-test: 1.1.0
1646 | string.prototype.includes: 2.0.1
1647 | dev: true
1648 |
1649 | /eslint-plugin-react-hooks@5.2.0(eslint@9.22.0):
1650 | resolution: {integrity: sha512-+f15FfK64YQwZdJNELETdn5ibXEUQmW1DZL6KXhNnc2heoy/sg9VJJeT7n8TlMWouzWqSWavFkIhHyIbIAEapg==}
1651 | engines: {node: '>=10'}
1652 | peerDependencies:
1653 | eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0
1654 | dependencies:
1655 | eslint: 9.22.0
1656 | dev: true
1657 |
1658 | /eslint-plugin-react@7.37.4(eslint@9.22.0):
1659 | resolution: {integrity: sha512-BGP0jRmfYyvOyvMoRX/uoUeW+GqNj9y16bPQzqAHf3AYII/tDs+jMN0dBVkl88/OZwNGwrVFxE7riHsXVfy/LQ==}
1660 | engines: {node: '>=4'}
1661 | peerDependencies:
1662 | eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7
1663 | dependencies:
1664 | array-includes: 3.1.8
1665 | array.prototype.findlast: 1.2.5
1666 | array.prototype.flatmap: 1.3.3
1667 | array.prototype.tosorted: 1.1.4
1668 | doctrine: 2.1.0
1669 | es-iterator-helpers: 1.2.1
1670 | eslint: 9.22.0
1671 | estraverse: 5.3.0
1672 | hasown: 2.0.2
1673 | jsx-ast-utils: 3.3.5
1674 | minimatch: 3.1.2
1675 | object.entries: 1.1.8
1676 | object.fromentries: 2.0.8
1677 | object.values: 1.2.1
1678 | prop-types: 15.8.1
1679 | resolve: 2.0.0-next.5
1680 | semver: 6.3.1
1681 | string.prototype.matchall: 4.0.12
1682 | string.prototype.repeat: 1.0.0
1683 | dev: true
1684 |
1685 | /eslint-scope@8.3.0:
1686 | resolution: {integrity: sha512-pUNxi75F8MJ/GdeKtVLSbYg4ZI34J6C0C7sbL4YOp2exGwen7ZsuBqKzUhXd0qMQ362yET3z+uPwKeg/0C2XCQ==}
1687 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
1688 | dependencies:
1689 | esrecurse: 4.3.0
1690 | estraverse: 5.3.0
1691 | dev: true
1692 |
1693 | /eslint-visitor-keys@3.4.3:
1694 | resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==}
1695 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
1696 | dev: true
1697 |
1698 | /eslint-visitor-keys@4.2.0:
1699 | resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==}
1700 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
1701 | dev: true
1702 |
1703 | /eslint@9.22.0:
1704 | resolution: {integrity: sha512-9V/QURhsRN40xuHXWjV64yvrzMjcz7ZyNoF2jJFmy9j/SLk0u1OLSZgXi28MrXjymnjEGSR80WCdab3RGMDveQ==}
1705 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
1706 | hasBin: true
1707 | peerDependencies:
1708 | jiti: '*'
1709 | peerDependenciesMeta:
1710 | jiti:
1711 | optional: true
1712 | dependencies:
1713 | '@eslint-community/eslint-utils': 4.4.1(eslint@9.22.0)
1714 | '@eslint-community/regexpp': 4.12.1
1715 | '@eslint/config-array': 0.19.2
1716 | '@eslint/config-helpers': 0.1.0
1717 | '@eslint/core': 0.12.0
1718 | '@eslint/eslintrc': 3.3.0
1719 | '@eslint/js': 9.22.0
1720 | '@eslint/plugin-kit': 0.2.7
1721 | '@humanfs/node': 0.16.6
1722 | '@humanwhocodes/module-importer': 1.0.1
1723 | '@humanwhocodes/retry': 0.4.2
1724 | '@types/estree': 1.0.6
1725 | '@types/json-schema': 7.0.15
1726 | ajv: 6.12.6
1727 | chalk: 4.1.2
1728 | cross-spawn: 7.0.6
1729 | debug: 4.4.0
1730 | escape-string-regexp: 4.0.0
1731 | eslint-scope: 8.3.0
1732 | eslint-visitor-keys: 4.2.0
1733 | espree: 10.3.0
1734 | esquery: 1.6.0
1735 | esutils: 2.0.3
1736 | fast-deep-equal: 3.1.3
1737 | file-entry-cache: 8.0.0
1738 | find-up: 5.0.0
1739 | glob-parent: 6.0.2
1740 | ignore: 5.3.2
1741 | imurmurhash: 0.1.4
1742 | is-glob: 4.0.3
1743 | json-stable-stringify-without-jsonify: 1.0.1
1744 | lodash.merge: 4.6.2
1745 | minimatch: 3.1.2
1746 | natural-compare: 1.4.0
1747 | optionator: 0.9.4
1748 | transitivePeerDependencies:
1749 | - supports-color
1750 | dev: true
1751 |
1752 | /espree@10.3.0:
1753 | resolution: {integrity: sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==}
1754 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
1755 | dependencies:
1756 | acorn: 8.14.1
1757 | acorn-jsx: 5.3.2(acorn@8.14.1)
1758 | eslint-visitor-keys: 4.2.0
1759 | dev: true
1760 |
1761 | /esquery@1.6.0:
1762 | resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==}
1763 | engines: {node: '>=0.10'}
1764 | dependencies:
1765 | estraverse: 5.3.0
1766 | dev: true
1767 |
1768 | /esrecurse@4.3.0:
1769 | resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==}
1770 | engines: {node: '>=4.0'}
1771 | dependencies:
1772 | estraverse: 5.3.0
1773 | dev: true
1774 |
1775 | /estraverse@5.3.0:
1776 | resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==}
1777 | engines: {node: '>=4.0'}
1778 | dev: true
1779 |
1780 | /esutils@2.0.3:
1781 | resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==}
1782 | engines: {node: '>=0.10.0'}
1783 | dev: true
1784 |
1785 | /fast-deep-equal@3.1.3:
1786 | resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
1787 | dev: true
1788 |
1789 | /fast-glob@3.3.1:
1790 | resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==}
1791 | engines: {node: '>=8.6.0'}
1792 | dependencies:
1793 | '@nodelib/fs.stat': 2.0.5
1794 | '@nodelib/fs.walk': 1.2.8
1795 | glob-parent: 5.1.2
1796 | merge2: 1.4.1
1797 | micromatch: 4.0.8
1798 | dev: true
1799 |
1800 | /fast-glob@3.3.3:
1801 | resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==}
1802 | engines: {node: '>=8.6.0'}
1803 | dependencies:
1804 | '@nodelib/fs.stat': 2.0.5
1805 | '@nodelib/fs.walk': 1.2.8
1806 | glob-parent: 5.1.2
1807 | merge2: 1.4.1
1808 | micromatch: 4.0.8
1809 | dev: true
1810 |
1811 | /fast-json-stable-stringify@2.1.0:
1812 | resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
1813 | dev: true
1814 |
1815 | /fast-levenshtein@2.0.6:
1816 | resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
1817 | dev: true
1818 |
1819 | /fastq@1.19.1:
1820 | resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==}
1821 | dependencies:
1822 | reusify: 1.1.0
1823 | dev: true
1824 |
1825 | /fdir@6.4.3(picomatch@4.0.2):
1826 | resolution: {integrity: sha512-PMXmW2y1hDDfTSRc9gaXIuCCRpuoz3Kaz8cUelp3smouvfT632ozg2vrT6lJsHKKOF59YLbOGfAWGUcKEfRMQw==}
1827 | peerDependencies:
1828 | picomatch: ^3 || ^4
1829 | peerDependenciesMeta:
1830 | picomatch:
1831 | optional: true
1832 | dependencies:
1833 | picomatch: 4.0.2
1834 | dev: true
1835 |
1836 | /fflate@0.6.10:
1837 | resolution: {integrity: sha512-IQrh3lEPM93wVCEczc9SaAOvkmcoQn/G8Bo1e8ZPlY3X3bnAxWaBdvTdvM1hP62iZp0BXWDy4vTAy4fF0+Dlpg==}
1838 | dev: false
1839 |
1840 | /fflate@0.8.2:
1841 | resolution: {integrity: sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==}
1842 | dev: false
1843 |
1844 | /file-entry-cache@8.0.0:
1845 | resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==}
1846 | engines: {node: '>=16.0.0'}
1847 | dependencies:
1848 | flat-cache: 4.0.1
1849 | dev: true
1850 |
1851 | /fill-range@7.1.1:
1852 | resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==}
1853 | engines: {node: '>=8'}
1854 | dependencies:
1855 | to-regex-range: 5.0.1
1856 | dev: true
1857 |
1858 | /find-up@5.0.0:
1859 | resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==}
1860 | engines: {node: '>=10'}
1861 | dependencies:
1862 | locate-path: 6.0.0
1863 | path-exists: 4.0.0
1864 | dev: true
1865 |
1866 | /flat-cache@4.0.1:
1867 | resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==}
1868 | engines: {node: '>=16'}
1869 | dependencies:
1870 | flatted: 3.3.3
1871 | keyv: 4.5.4
1872 | dev: true
1873 |
1874 | /flatted@3.3.3:
1875 | resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==}
1876 | dev: true
1877 |
1878 | /for-each@0.3.5:
1879 | resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==}
1880 | engines: {node: '>= 0.4'}
1881 | dependencies:
1882 | is-callable: 1.2.7
1883 | dev: true
1884 |
1885 | /function-bind@1.1.2:
1886 | resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==}
1887 | dev: true
1888 |
1889 | /function.prototype.name@1.1.8:
1890 | resolution: {integrity: sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==}
1891 | engines: {node: '>= 0.4'}
1892 | dependencies:
1893 | call-bind: 1.0.8
1894 | call-bound: 1.0.4
1895 | define-properties: 1.2.1
1896 | functions-have-names: 1.2.3
1897 | hasown: 2.0.2
1898 | is-callable: 1.2.7
1899 | dev: true
1900 |
1901 | /functions-have-names@1.2.3:
1902 | resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==}
1903 | dev: true
1904 |
1905 | /get-intrinsic@1.3.0:
1906 | resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==}
1907 | engines: {node: '>= 0.4'}
1908 | dependencies:
1909 | call-bind-apply-helpers: 1.0.2
1910 | es-define-property: 1.0.1
1911 | es-errors: 1.3.0
1912 | es-object-atoms: 1.1.1
1913 | function-bind: 1.1.2
1914 | get-proto: 1.0.1
1915 | gopd: 1.2.0
1916 | has-symbols: 1.1.0
1917 | hasown: 2.0.2
1918 | math-intrinsics: 1.1.0
1919 | dev: true
1920 |
1921 | /get-proto@1.0.1:
1922 | resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==}
1923 | engines: {node: '>= 0.4'}
1924 | dependencies:
1925 | dunder-proto: 1.0.1
1926 | es-object-atoms: 1.1.1
1927 | dev: true
1928 |
1929 | /get-symbol-description@1.1.0:
1930 | resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==}
1931 | engines: {node: '>= 0.4'}
1932 | dependencies:
1933 | call-bound: 1.0.4
1934 | es-errors: 1.3.0
1935 | get-intrinsic: 1.3.0
1936 | dev: true
1937 |
1938 | /get-tsconfig@4.10.0:
1939 | resolution: {integrity: sha512-kGzZ3LWWQcGIAmg6iWvXn0ei6WDtV26wzHRMwDSzmAbcXrTEXxHy6IehI6/4eT6VRKyMP1eF1VqwrVUmE/LR7A==}
1940 | dependencies:
1941 | resolve-pkg-maps: 1.0.0
1942 | dev: true
1943 |
1944 | /glob-parent@5.1.2:
1945 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
1946 | engines: {node: '>= 6'}
1947 | dependencies:
1948 | is-glob: 4.0.3
1949 | dev: true
1950 |
1951 | /glob-parent@6.0.2:
1952 | resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==}
1953 | engines: {node: '>=10.13.0'}
1954 | dependencies:
1955 | is-glob: 4.0.3
1956 | dev: true
1957 |
1958 | /globals@14.0.0:
1959 | resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==}
1960 | engines: {node: '>=18'}
1961 | dev: true
1962 |
1963 | /globalthis@1.0.4:
1964 | resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==}
1965 | engines: {node: '>= 0.4'}
1966 | dependencies:
1967 | define-properties: 1.2.1
1968 | gopd: 1.2.0
1969 | dev: true
1970 |
1971 | /glsl-noise@0.0.0:
1972 | resolution: {integrity: sha512-b/ZCF6amfAUb7dJM/MxRs7AetQEahYzJ8PtgfrmEdtw6uyGOr+ZSGtgjFm6mfsBkxJ4d2W7kg+Nlqzqvn3Bc0w==}
1973 | dev: false
1974 |
1975 | /gopd@1.2.0:
1976 | resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==}
1977 | engines: {node: '>= 0.4'}
1978 | dev: true
1979 |
1980 | /graceful-fs@4.2.11:
1981 | resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
1982 | dev: true
1983 |
1984 | /graphemer@1.4.0:
1985 | resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==}
1986 | dev: true
1987 |
1988 | /gsap@3.12.7:
1989 | resolution: {integrity: sha512-V4GsyVamhmKefvcAKaoy0h6si0xX7ogwBoBSs2CTJwt7luW0oZzC0LhdkyuKV8PJAXr7Yaj8pMjCKD4GJ+eEMg==}
1990 | dev: false
1991 |
1992 | /has-bigints@1.1.0:
1993 | resolution: {integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==}
1994 | engines: {node: '>= 0.4'}
1995 | dev: true
1996 |
1997 | /has-flag@4.0.0:
1998 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
1999 | engines: {node: '>=8'}
2000 | dev: true
2001 |
2002 | /has-property-descriptors@1.0.2:
2003 | resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==}
2004 | dependencies:
2005 | es-define-property: 1.0.1
2006 | dev: true
2007 |
2008 | /has-proto@1.2.0:
2009 | resolution: {integrity: sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==}
2010 | engines: {node: '>= 0.4'}
2011 | dependencies:
2012 | dunder-proto: 1.0.1
2013 | dev: true
2014 |
2015 | /has-symbols@1.1.0:
2016 | resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==}
2017 | engines: {node: '>= 0.4'}
2018 | dev: true
2019 |
2020 | /has-tostringtag@1.0.2:
2021 | resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==}
2022 | engines: {node: '>= 0.4'}
2023 | dependencies:
2024 | has-symbols: 1.1.0
2025 | dev: true
2026 |
2027 | /hasown@2.0.2:
2028 | resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==}
2029 | engines: {node: '>= 0.4'}
2030 | dependencies:
2031 | function-bind: 1.1.2
2032 | dev: true
2033 |
2034 | /hls.js@1.5.20:
2035 | resolution: {integrity: sha512-uu0VXUK52JhihhnN/MVVo1lvqNNuhoxkonqgO3IpjvQiGpJBdIXMGkofjQb/j9zvV7a1SW8U9g1FslWx/1HOiQ==}
2036 | dev: false
2037 |
2038 | /ieee754@1.2.1:
2039 | resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==}
2040 | dev: false
2041 |
2042 | /ignore@5.3.2:
2043 | resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==}
2044 | engines: {node: '>= 4'}
2045 | dev: true
2046 |
2047 | /immediate@3.0.6:
2048 | resolution: {integrity: sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==}
2049 | dev: false
2050 |
2051 | /import-fresh@3.3.1:
2052 | resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==}
2053 | engines: {node: '>=6'}
2054 | dependencies:
2055 | parent-module: 1.0.1
2056 | resolve-from: 4.0.0
2057 | dev: true
2058 |
2059 | /imurmurhash@0.1.4:
2060 | resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==}
2061 | engines: {node: '>=0.8.19'}
2062 | dev: true
2063 |
2064 | /internal-slot@1.1.0:
2065 | resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==}
2066 | engines: {node: '>= 0.4'}
2067 | dependencies:
2068 | es-errors: 1.3.0
2069 | hasown: 2.0.2
2070 | side-channel: 1.1.0
2071 | dev: true
2072 |
2073 | /is-array-buffer@3.0.5:
2074 | resolution: {integrity: sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==}
2075 | engines: {node: '>= 0.4'}
2076 | dependencies:
2077 | call-bind: 1.0.8
2078 | call-bound: 1.0.4
2079 | get-intrinsic: 1.3.0
2080 | dev: true
2081 |
2082 | /is-arrayish@0.3.2:
2083 | resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==}
2084 | requiresBuild: true
2085 | dev: false
2086 | optional: true
2087 |
2088 | /is-async-function@2.1.1:
2089 | resolution: {integrity: sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==}
2090 | engines: {node: '>= 0.4'}
2091 | dependencies:
2092 | async-function: 1.0.0
2093 | call-bound: 1.0.4
2094 | get-proto: 1.0.1
2095 | has-tostringtag: 1.0.2
2096 | safe-regex-test: 1.1.0
2097 | dev: true
2098 |
2099 | /is-bigint@1.1.0:
2100 | resolution: {integrity: sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==}
2101 | engines: {node: '>= 0.4'}
2102 | dependencies:
2103 | has-bigints: 1.1.0
2104 | dev: true
2105 |
2106 | /is-boolean-object@1.2.2:
2107 | resolution: {integrity: sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==}
2108 | engines: {node: '>= 0.4'}
2109 | dependencies:
2110 | call-bound: 1.0.4
2111 | has-tostringtag: 1.0.2
2112 | dev: true
2113 |
2114 | /is-bun-module@1.3.0:
2115 | resolution: {integrity: sha512-DgXeu5UWI0IsMQundYb5UAOzm6G2eVnarJ0byP6Tm55iZNKceD59LNPA2L4VvsScTtHcw0yEkVwSf7PC+QoLSA==}
2116 | dependencies:
2117 | semver: 7.7.1
2118 | dev: true
2119 |
2120 | /is-callable@1.2.7:
2121 | resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==}
2122 | engines: {node: '>= 0.4'}
2123 | dev: true
2124 |
2125 | /is-core-module@2.16.1:
2126 | resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==}
2127 | engines: {node: '>= 0.4'}
2128 | dependencies:
2129 | hasown: 2.0.2
2130 | dev: true
2131 |
2132 | /is-data-view@1.0.2:
2133 | resolution: {integrity: sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==}
2134 | engines: {node: '>= 0.4'}
2135 | dependencies:
2136 | call-bound: 1.0.4
2137 | get-intrinsic: 1.3.0
2138 | is-typed-array: 1.1.15
2139 | dev: true
2140 |
2141 | /is-date-object@1.1.0:
2142 | resolution: {integrity: sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==}
2143 | engines: {node: '>= 0.4'}
2144 | dependencies:
2145 | call-bound: 1.0.4
2146 | has-tostringtag: 1.0.2
2147 | dev: true
2148 |
2149 | /is-extglob@2.1.1:
2150 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
2151 | engines: {node: '>=0.10.0'}
2152 | dev: true
2153 |
2154 | /is-finalizationregistry@1.1.1:
2155 | resolution: {integrity: sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==}
2156 | engines: {node: '>= 0.4'}
2157 | dependencies:
2158 | call-bound: 1.0.4
2159 | dev: true
2160 |
2161 | /is-generator-function@1.1.0:
2162 | resolution: {integrity: sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==}
2163 | engines: {node: '>= 0.4'}
2164 | dependencies:
2165 | call-bound: 1.0.4
2166 | get-proto: 1.0.1
2167 | has-tostringtag: 1.0.2
2168 | safe-regex-test: 1.1.0
2169 | dev: true
2170 |
2171 | /is-glob@4.0.3:
2172 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
2173 | engines: {node: '>=0.10.0'}
2174 | dependencies:
2175 | is-extglob: 2.1.1
2176 | dev: true
2177 |
2178 | /is-map@2.0.3:
2179 | resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==}
2180 | engines: {node: '>= 0.4'}
2181 | dev: true
2182 |
2183 | /is-number-object@1.1.1:
2184 | resolution: {integrity: sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==}
2185 | engines: {node: '>= 0.4'}
2186 | dependencies:
2187 | call-bound: 1.0.4
2188 | has-tostringtag: 1.0.2
2189 | dev: true
2190 |
2191 | /is-number@7.0.0:
2192 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
2193 | engines: {node: '>=0.12.0'}
2194 | dev: true
2195 |
2196 | /is-promise@2.2.2:
2197 | resolution: {integrity: sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==}
2198 | dev: false
2199 |
2200 | /is-regex@1.2.1:
2201 | resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==}
2202 | engines: {node: '>= 0.4'}
2203 | dependencies:
2204 | call-bound: 1.0.4
2205 | gopd: 1.2.0
2206 | has-tostringtag: 1.0.2
2207 | hasown: 2.0.2
2208 | dev: true
2209 |
2210 | /is-set@2.0.3:
2211 | resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==}
2212 | engines: {node: '>= 0.4'}
2213 | dev: true
2214 |
2215 | /is-shared-array-buffer@1.0.4:
2216 | resolution: {integrity: sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==}
2217 | engines: {node: '>= 0.4'}
2218 | dependencies:
2219 | call-bound: 1.0.4
2220 | dev: true
2221 |
2222 | /is-string@1.1.1:
2223 | resolution: {integrity: sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==}
2224 | engines: {node: '>= 0.4'}
2225 | dependencies:
2226 | call-bound: 1.0.4
2227 | has-tostringtag: 1.0.2
2228 | dev: true
2229 |
2230 | /is-symbol@1.1.1:
2231 | resolution: {integrity: sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==}
2232 | engines: {node: '>= 0.4'}
2233 | dependencies:
2234 | call-bound: 1.0.4
2235 | has-symbols: 1.1.0
2236 | safe-regex-test: 1.1.0
2237 | dev: true
2238 |
2239 | /is-typed-array@1.1.15:
2240 | resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==}
2241 | engines: {node: '>= 0.4'}
2242 | dependencies:
2243 | which-typed-array: 1.1.19
2244 | dev: true
2245 |
2246 | /is-weakmap@2.0.2:
2247 | resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==}
2248 | engines: {node: '>= 0.4'}
2249 | dev: true
2250 |
2251 | /is-weakref@1.1.1:
2252 | resolution: {integrity: sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==}
2253 | engines: {node: '>= 0.4'}
2254 | dependencies:
2255 | call-bound: 1.0.4
2256 | dev: true
2257 |
2258 | /is-weakset@2.0.4:
2259 | resolution: {integrity: sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==}
2260 | engines: {node: '>= 0.4'}
2261 | dependencies:
2262 | call-bound: 1.0.4
2263 | get-intrinsic: 1.3.0
2264 | dev: true
2265 |
2266 | /isarray@2.0.5:
2267 | resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==}
2268 | dev: true
2269 |
2270 | /isexe@2.0.0:
2271 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
2272 |
2273 | /iterator.prototype@1.1.5:
2274 | resolution: {integrity: sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==}
2275 | engines: {node: '>= 0.4'}
2276 | dependencies:
2277 | define-data-property: 1.1.4
2278 | es-object-atoms: 1.1.1
2279 | get-intrinsic: 1.3.0
2280 | get-proto: 1.0.1
2281 | has-symbols: 1.1.0
2282 | set-function-name: 2.0.2
2283 | dev: true
2284 |
2285 | /its-fine@2.0.0(@types/react@19.0.10)(react@19.0.0):
2286 | resolution: {integrity: sha512-KLViCmWx94zOvpLwSlsx6yOCeMhZYaxrJV87Po5k/FoZzcPSahvK5qJ7fYhS61sZi5ikmh2S3Hz55A2l3U69ng==}
2287 | peerDependencies:
2288 | react: ^19.0.0
2289 | dependencies:
2290 | '@types/react-reconciler': 0.28.9(@types/react@19.0.10)
2291 | react: 19.0.0
2292 | transitivePeerDependencies:
2293 | - '@types/react'
2294 | dev: false
2295 |
2296 | /jiti@2.4.2:
2297 | resolution: {integrity: sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==}
2298 | hasBin: true
2299 | dev: true
2300 |
2301 | /js-tokens@4.0.0:
2302 | resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
2303 | dev: true
2304 |
2305 | /js-yaml@4.1.0:
2306 | resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
2307 | hasBin: true
2308 | dependencies:
2309 | argparse: 2.0.1
2310 | dev: true
2311 |
2312 | /json-buffer@3.0.1:
2313 | resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==}
2314 | dev: true
2315 |
2316 | /json-schema-traverse@0.4.1:
2317 | resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
2318 | dev: true
2319 |
2320 | /json-stable-stringify-without-jsonify@1.0.1:
2321 | resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}
2322 | dev: true
2323 |
2324 | /json5@1.0.2:
2325 | resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==}
2326 | hasBin: true
2327 | dependencies:
2328 | minimist: 1.2.8
2329 | dev: true
2330 |
2331 | /jsx-ast-utils@3.3.5:
2332 | resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==}
2333 | engines: {node: '>=4.0'}
2334 | dependencies:
2335 | array-includes: 3.1.8
2336 | array.prototype.flat: 1.3.3
2337 | object.assign: 4.1.7
2338 | object.values: 1.2.1
2339 | dev: true
2340 |
2341 | /keyv@4.5.4:
2342 | resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==}
2343 | dependencies:
2344 | json-buffer: 3.0.1
2345 | dev: true
2346 |
2347 | /language-subtag-registry@0.3.23:
2348 | resolution: {integrity: sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==}
2349 | dev: true
2350 |
2351 | /language-tags@1.0.9:
2352 | resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==}
2353 | engines: {node: '>=0.10'}
2354 | dependencies:
2355 | language-subtag-registry: 0.3.23
2356 | dev: true
2357 |
2358 | /levn@0.4.1:
2359 | resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==}
2360 | engines: {node: '>= 0.8.0'}
2361 | dependencies:
2362 | prelude-ls: 1.2.1
2363 | type-check: 0.4.0
2364 | dev: true
2365 |
2366 | /lie@3.3.0:
2367 | resolution: {integrity: sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==}
2368 | dependencies:
2369 | immediate: 3.0.6
2370 | dev: false
2371 |
2372 | /lightningcss-darwin-arm64@1.29.2:
2373 | resolution: {integrity: sha512-cK/eMabSViKn/PG8U/a7aCorpeKLMlK0bQeNHmdb7qUnBkNPnL+oV5DjJUo0kqWsJUapZsM4jCfYItbqBDvlcA==}
2374 | engines: {node: '>= 12.0.0'}
2375 | cpu: [arm64]
2376 | os: [darwin]
2377 | requiresBuild: true
2378 | dev: true
2379 | optional: true
2380 |
2381 | /lightningcss-darwin-x64@1.29.2:
2382 | resolution: {integrity: sha512-j5qYxamyQw4kDXX5hnnCKMf3mLlHvG44f24Qyi2965/Ycz829MYqjrVg2H8BidybHBp9kom4D7DR5VqCKDXS0w==}
2383 | engines: {node: '>= 12.0.0'}
2384 | cpu: [x64]
2385 | os: [darwin]
2386 | requiresBuild: true
2387 | dev: true
2388 | optional: true
2389 |
2390 | /lightningcss-freebsd-x64@1.29.2:
2391 | resolution: {integrity: sha512-wDk7M2tM78Ii8ek9YjnY8MjV5f5JN2qNVO+/0BAGZRvXKtQrBC4/cn4ssQIpKIPP44YXw6gFdpUF+Ps+RGsCwg==}
2392 | engines: {node: '>= 12.0.0'}
2393 | cpu: [x64]
2394 | os: [freebsd]
2395 | requiresBuild: true
2396 | dev: true
2397 | optional: true
2398 |
2399 | /lightningcss-linux-arm-gnueabihf@1.29.2:
2400 | resolution: {integrity: sha512-IRUrOrAF2Z+KExdExe3Rz7NSTuuJ2HvCGlMKoquK5pjvo2JY4Rybr+NrKnq0U0hZnx5AnGsuFHjGnNT14w26sg==}
2401 | engines: {node: '>= 12.0.0'}
2402 | cpu: [arm]
2403 | os: [linux]
2404 | requiresBuild: true
2405 | dev: true
2406 | optional: true
2407 |
2408 | /lightningcss-linux-arm64-gnu@1.29.2:
2409 | resolution: {integrity: sha512-KKCpOlmhdjvUTX/mBuaKemp0oeDIBBLFiU5Fnqxh1/DZ4JPZi4evEH7TKoSBFOSOV3J7iEmmBaw/8dpiUvRKlQ==}
2410 | engines: {node: '>= 12.0.0'}
2411 | cpu: [arm64]
2412 | os: [linux]
2413 | requiresBuild: true
2414 | dev: true
2415 | optional: true
2416 |
2417 | /lightningcss-linux-arm64-musl@1.29.2:
2418 | resolution: {integrity: sha512-Q64eM1bPlOOUgxFmoPUefqzY1yV3ctFPE6d/Vt7WzLW4rKTv7MyYNky+FWxRpLkNASTnKQUaiMJ87zNODIrrKQ==}
2419 | engines: {node: '>= 12.0.0'}
2420 | cpu: [arm64]
2421 | os: [linux]
2422 | requiresBuild: true
2423 | dev: true
2424 | optional: true
2425 |
2426 | /lightningcss-linux-x64-gnu@1.29.2:
2427 | resolution: {integrity: sha512-0v6idDCPG6epLXtBH/RPkHvYx74CVziHo6TMYga8O2EiQApnUPZsbR9nFNrg2cgBzk1AYqEd95TlrsL7nYABQg==}
2428 | engines: {node: '>= 12.0.0'}
2429 | cpu: [x64]
2430 | os: [linux]
2431 | requiresBuild: true
2432 | dev: true
2433 | optional: true
2434 |
2435 | /lightningcss-linux-x64-musl@1.29.2:
2436 | resolution: {integrity: sha512-rMpz2yawkgGT8RULc5S4WiZopVMOFWjiItBT7aSfDX4NQav6M44rhn5hjtkKzB+wMTRlLLqxkeYEtQ3dd9696w==}
2437 | engines: {node: '>= 12.0.0'}
2438 | cpu: [x64]
2439 | os: [linux]
2440 | requiresBuild: true
2441 | dev: true
2442 | optional: true
2443 |
2444 | /lightningcss-win32-arm64-msvc@1.29.2:
2445 | resolution: {integrity: sha512-nL7zRW6evGQqYVu/bKGK+zShyz8OVzsCotFgc7judbt6wnB2KbiKKJwBE4SGoDBQ1O94RjW4asrCjQL4i8Fhbw==}
2446 | engines: {node: '>= 12.0.0'}
2447 | cpu: [arm64]
2448 | os: [win32]
2449 | requiresBuild: true
2450 | dev: true
2451 | optional: true
2452 |
2453 | /lightningcss-win32-x64-msvc@1.29.2:
2454 | resolution: {integrity: sha512-EdIUW3B2vLuHmv7urfzMI/h2fmlnOQBk1xlsDxkN1tCWKjNFjfLhGxYk8C8mzpSfr+A6jFFIi8fU6LbQGsRWjA==}
2455 | engines: {node: '>= 12.0.0'}
2456 | cpu: [x64]
2457 | os: [win32]
2458 | requiresBuild: true
2459 | dev: true
2460 | optional: true
2461 |
2462 | /lightningcss@1.29.2:
2463 | resolution: {integrity: sha512-6b6gd/RUXKaw5keVdSEtqFVdzWnU5jMxTUjA2bVcMNPLwSQ08Sv/UodBVtETLCn7k4S1Ibxwh7k68IwLZPgKaA==}
2464 | engines: {node: '>= 12.0.0'}
2465 | dependencies:
2466 | detect-libc: 2.0.3
2467 | optionalDependencies:
2468 | lightningcss-darwin-arm64: 1.29.2
2469 | lightningcss-darwin-x64: 1.29.2
2470 | lightningcss-freebsd-x64: 1.29.2
2471 | lightningcss-linux-arm-gnueabihf: 1.29.2
2472 | lightningcss-linux-arm64-gnu: 1.29.2
2473 | lightningcss-linux-arm64-musl: 1.29.2
2474 | lightningcss-linux-x64-gnu: 1.29.2
2475 | lightningcss-linux-x64-musl: 1.29.2
2476 | lightningcss-win32-arm64-msvc: 1.29.2
2477 | lightningcss-win32-x64-msvc: 1.29.2
2478 | dev: true
2479 |
2480 | /locate-path@6.0.0:
2481 | resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
2482 | engines: {node: '>=10'}
2483 | dependencies:
2484 | p-locate: 5.0.0
2485 | dev: true
2486 |
2487 | /lodash.merge@4.6.2:
2488 | resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
2489 | dev: true
2490 |
2491 | /loose-envify@1.4.0:
2492 | resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==}
2493 | hasBin: true
2494 | dependencies:
2495 | js-tokens: 4.0.0
2496 | dev: true
2497 |
2498 | /maath@0.10.8(@types/three@0.174.0)(three@0.174.0):
2499 | resolution: {integrity: sha512-tRvbDF0Pgqz+9XUa4jjfgAQ8/aPKmQdWXilFu2tMy4GWj4NOsx99HlULO4IeREfbO3a0sA145DZYyvXPkybm0g==}
2500 | peerDependencies:
2501 | '@types/three': '>=0.134.0'
2502 | three: '>=0.134.0'
2503 | dependencies:
2504 | '@types/three': 0.174.0
2505 | three: 0.174.0
2506 | dev: false
2507 |
2508 | /math-intrinsics@1.1.0:
2509 | resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==}
2510 | engines: {node: '>= 0.4'}
2511 | dev: true
2512 |
2513 | /merge2@1.4.1:
2514 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
2515 | engines: {node: '>= 8'}
2516 | dev: true
2517 |
2518 | /meshline@3.3.1(three@0.174.0):
2519 | resolution: {integrity: sha512-/TQj+JdZkeSUOl5Mk2J7eLcYTLiQm2IDzmlSvYm7ov15anEcDJ92GHqqazxTSreeNgfnYu24kiEvvv0WlbCdFQ==}
2520 | peerDependencies:
2521 | three: '>=0.137'
2522 | dependencies:
2523 | three: 0.174.0
2524 | dev: false
2525 |
2526 | /meshoptimizer@0.18.1:
2527 | resolution: {integrity: sha512-ZhoIoL7TNV4s5B6+rx5mC//fw8/POGyNxS/DZyCJeiZ12ScLfVwRE/GfsxwiTkMYYD5DmK2/JXnEVXqL4rF+Sw==}
2528 | dev: false
2529 |
2530 | /micromatch@4.0.8:
2531 | resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==}
2532 | engines: {node: '>=8.6'}
2533 | dependencies:
2534 | braces: 3.0.3
2535 | picomatch: 2.3.1
2536 | dev: true
2537 |
2538 | /minimatch@3.1.2:
2539 | resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
2540 | dependencies:
2541 | brace-expansion: 1.1.11
2542 | dev: true
2543 |
2544 | /minimatch@9.0.5:
2545 | resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==}
2546 | engines: {node: '>=16 || 14 >=14.17'}
2547 | dependencies:
2548 | brace-expansion: 2.0.1
2549 | dev: true
2550 |
2551 | /minimist@1.2.8:
2552 | resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==}
2553 | dev: true
2554 |
2555 | /ms@2.1.3:
2556 | resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
2557 | dev: true
2558 |
2559 | /nanoid@3.3.9:
2560 | resolution: {integrity: sha512-SppoicMGpZvbF1l3z4x7No3OlIjP7QJvC9XR7AhZr1kL133KHnKPztkKDc+Ir4aJ/1VhTySrtKhrsycmrMQfvg==}
2561 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
2562 | hasBin: true
2563 |
2564 | /natural-compare@1.4.0:
2565 | resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
2566 | dev: true
2567 |
2568 | /next@15.2.3(react-dom@19.0.0)(react@19.0.0):
2569 | resolution: {integrity: sha512-x6eDkZxk2rPpu46E1ZVUWIBhYCLszmUY6fvHBFcbzJ9dD+qRX6vcHusaqqDlnY+VngKzKbAiG2iRCkPbmi8f7w==}
2570 | engines: {node: ^18.18.0 || ^19.8.0 || >= 20.0.0}
2571 | hasBin: true
2572 | peerDependencies:
2573 | '@opentelemetry/api': ^1.1.0
2574 | '@playwright/test': ^1.41.2
2575 | babel-plugin-react-compiler: '*'
2576 | react: ^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0
2577 | react-dom: ^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0
2578 | sass: ^1.3.0
2579 | peerDependenciesMeta:
2580 | '@opentelemetry/api':
2581 | optional: true
2582 | '@playwright/test':
2583 | optional: true
2584 | babel-plugin-react-compiler:
2585 | optional: true
2586 | sass:
2587 | optional: true
2588 | dependencies:
2589 | '@next/env': 15.2.3
2590 | '@swc/counter': 0.1.3
2591 | '@swc/helpers': 0.5.15
2592 | busboy: 1.6.0
2593 | caniuse-lite: 1.0.30001702
2594 | postcss: 8.4.31
2595 | react: 19.0.0
2596 | react-dom: 19.0.0(react@19.0.0)
2597 | styled-jsx: 5.1.6(react@19.0.0)
2598 | optionalDependencies:
2599 | '@next/swc-darwin-arm64': 15.2.3
2600 | '@next/swc-darwin-x64': 15.2.3
2601 | '@next/swc-linux-arm64-gnu': 15.2.3
2602 | '@next/swc-linux-arm64-musl': 15.2.3
2603 | '@next/swc-linux-x64-gnu': 15.2.3
2604 | '@next/swc-linux-x64-musl': 15.2.3
2605 | '@next/swc-win32-arm64-msvc': 15.2.3
2606 | '@next/swc-win32-x64-msvc': 15.2.3
2607 | sharp: 0.33.5
2608 | transitivePeerDependencies:
2609 | - '@babel/core'
2610 | - babel-plugin-macros
2611 | dev: false
2612 |
2613 | /object-assign@4.1.1:
2614 | resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
2615 | engines: {node: '>=0.10.0'}
2616 | dev: true
2617 |
2618 | /object-inspect@1.13.4:
2619 | resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==}
2620 | engines: {node: '>= 0.4'}
2621 | dev: true
2622 |
2623 | /object-keys@1.1.1:
2624 | resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==}
2625 | engines: {node: '>= 0.4'}
2626 | dev: true
2627 |
2628 | /object.assign@4.1.7:
2629 | resolution: {integrity: sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==}
2630 | engines: {node: '>= 0.4'}
2631 | dependencies:
2632 | call-bind: 1.0.8
2633 | call-bound: 1.0.4
2634 | define-properties: 1.2.1
2635 | es-object-atoms: 1.1.1
2636 | has-symbols: 1.1.0
2637 | object-keys: 1.1.1
2638 | dev: true
2639 |
2640 | /object.entries@1.1.8:
2641 | resolution: {integrity: sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==}
2642 | engines: {node: '>= 0.4'}
2643 | dependencies:
2644 | call-bind: 1.0.8
2645 | define-properties: 1.2.1
2646 | es-object-atoms: 1.1.1
2647 | dev: true
2648 |
2649 | /object.fromentries@2.0.8:
2650 | resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==}
2651 | engines: {node: '>= 0.4'}
2652 | dependencies:
2653 | call-bind: 1.0.8
2654 | define-properties: 1.2.1
2655 | es-abstract: 1.23.9
2656 | es-object-atoms: 1.1.1
2657 | dev: true
2658 |
2659 | /object.groupby@1.0.3:
2660 | resolution: {integrity: sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==}
2661 | engines: {node: '>= 0.4'}
2662 | dependencies:
2663 | call-bind: 1.0.8
2664 | define-properties: 1.2.1
2665 | es-abstract: 1.23.9
2666 | dev: true
2667 |
2668 | /object.values@1.2.1:
2669 | resolution: {integrity: sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==}
2670 | engines: {node: '>= 0.4'}
2671 | dependencies:
2672 | call-bind: 1.0.8
2673 | call-bound: 1.0.4
2674 | define-properties: 1.2.1
2675 | es-object-atoms: 1.1.1
2676 | dev: true
2677 |
2678 | /optionator@0.9.4:
2679 | resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==}
2680 | engines: {node: '>= 0.8.0'}
2681 | dependencies:
2682 | deep-is: 0.1.4
2683 | fast-levenshtein: 2.0.6
2684 | levn: 0.4.1
2685 | prelude-ls: 1.2.1
2686 | type-check: 0.4.0
2687 | word-wrap: 1.2.5
2688 | dev: true
2689 |
2690 | /own-keys@1.0.1:
2691 | resolution: {integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==}
2692 | engines: {node: '>= 0.4'}
2693 | dependencies:
2694 | get-intrinsic: 1.3.0
2695 | object-keys: 1.1.1
2696 | safe-push-apply: 1.0.0
2697 | dev: true
2698 |
2699 | /p-limit@3.1.0:
2700 | resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==}
2701 | engines: {node: '>=10'}
2702 | dependencies:
2703 | yocto-queue: 0.1.0
2704 | dev: true
2705 |
2706 | /p-locate@5.0.0:
2707 | resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==}
2708 | engines: {node: '>=10'}
2709 | dependencies:
2710 | p-limit: 3.1.0
2711 | dev: true
2712 |
2713 | /parent-module@1.0.1:
2714 | resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
2715 | engines: {node: '>=6'}
2716 | dependencies:
2717 | callsites: 3.1.0
2718 | dev: true
2719 |
2720 | /path-exists@4.0.0:
2721 | resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
2722 | engines: {node: '>=8'}
2723 | dev: true
2724 |
2725 | /path-key@3.1.1:
2726 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
2727 | engines: {node: '>=8'}
2728 |
2729 | /path-parse@1.0.7:
2730 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
2731 | dev: true
2732 |
2733 | /picocolors@1.1.1:
2734 | resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==}
2735 |
2736 | /picomatch@2.3.1:
2737 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
2738 | engines: {node: '>=8.6'}
2739 | dev: true
2740 |
2741 | /picomatch@4.0.2:
2742 | resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==}
2743 | engines: {node: '>=12'}
2744 | dev: true
2745 |
2746 | /possible-typed-array-names@1.1.0:
2747 | resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==}
2748 | engines: {node: '>= 0.4'}
2749 | dev: true
2750 |
2751 | /postcss@8.4.31:
2752 | resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==}
2753 | engines: {node: ^10 || ^12 || >=14}
2754 | dependencies:
2755 | nanoid: 3.3.9
2756 | picocolors: 1.1.1
2757 | source-map-js: 1.2.1
2758 | dev: false
2759 |
2760 | /postcss@8.5.3:
2761 | resolution: {integrity: sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==}
2762 | engines: {node: ^10 || ^12 || >=14}
2763 | dependencies:
2764 | nanoid: 3.3.9
2765 | picocolors: 1.1.1
2766 | source-map-js: 1.2.1
2767 | dev: true
2768 |
2769 | /potpack@1.0.2:
2770 | resolution: {integrity: sha512-choctRBIV9EMT9WGAZHn3V7t0Z2pMQyl0EZE6pFc/6ml3ssw7Dlf/oAOvFwjm1HVsqfQN8GfeFyJ+d8tRzqueQ==}
2771 | dev: false
2772 |
2773 | /prelude-ls@1.2.1:
2774 | resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
2775 | engines: {node: '>= 0.8.0'}
2776 | dev: true
2777 |
2778 | /promise-worker-transferable@1.0.4:
2779 | resolution: {integrity: sha512-bN+0ehEnrXfxV2ZQvU2PetO0n4gqBD4ulq3MI1WOPLgr7/Mg9yRQkX5+0v1vagr74ZTsl7XtzlaYDo2EuCeYJw==}
2780 | dependencies:
2781 | is-promise: 2.2.2
2782 | lie: 3.3.0
2783 | dev: false
2784 |
2785 | /prop-types@15.8.1:
2786 | resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==}
2787 | dependencies:
2788 | loose-envify: 1.4.0
2789 | object-assign: 4.1.1
2790 | react-is: 16.13.1
2791 | dev: true
2792 |
2793 | /punycode@2.3.1:
2794 | resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==}
2795 | engines: {node: '>=6'}
2796 | dev: true
2797 |
2798 | /queue-microtask@1.2.3:
2799 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
2800 | dev: true
2801 |
2802 | /react-dom@19.0.0(react@19.0.0):
2803 | resolution: {integrity: sha512-4GV5sHFG0e/0AD4X+ySy6UJd3jVl1iNsNHdpad0qhABJ11twS3TTBnseqsKurKcsNqCEFeGL3uLpVChpIO3QfQ==}
2804 | peerDependencies:
2805 | react: ^19.0.0
2806 | dependencies:
2807 | react: 19.0.0
2808 | scheduler: 0.25.0
2809 | dev: false
2810 |
2811 | /react-is@16.13.1:
2812 | resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==}
2813 | dev: true
2814 |
2815 | /react-reconciler@0.31.0(react@19.0.0):
2816 | resolution: {integrity: sha512-7Ob7Z+URmesIsIVRjnLoDGwBEG/tVitidU0nMsqX/eeJaLY89RISO/10ERe0MqmzuKUUB1rmY+h1itMbUHg9BQ==}
2817 | engines: {node: '>=0.10.0'}
2818 | peerDependencies:
2819 | react: ^19.0.0
2820 | dependencies:
2821 | react: 19.0.0
2822 | scheduler: 0.25.0
2823 | dev: false
2824 |
2825 | /react-use-measure@2.1.7(react-dom@19.0.0)(react@19.0.0):
2826 | resolution: {integrity: sha512-KrvcAo13I/60HpwGO5jpW7E9DfusKyLPLvuHlUyP5zqnmAPhNc6qTRjUQrdTADl0lpPpDVU2/Gg51UlOGHXbdg==}
2827 | peerDependencies:
2828 | react: '>=16.13'
2829 | react-dom: '>=16.13'
2830 | peerDependenciesMeta:
2831 | react-dom:
2832 | optional: true
2833 | dependencies:
2834 | react: 19.0.0
2835 | react-dom: 19.0.0(react@19.0.0)
2836 | dev: false
2837 |
2838 | /react@19.0.0:
2839 | resolution: {integrity: sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ==}
2840 | engines: {node: '>=0.10.0'}
2841 | dev: false
2842 |
2843 | /reflect.getprototypeof@1.0.10:
2844 | resolution: {integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==}
2845 | engines: {node: '>= 0.4'}
2846 | dependencies:
2847 | call-bind: 1.0.8
2848 | define-properties: 1.2.1
2849 | es-abstract: 1.23.9
2850 | es-errors: 1.3.0
2851 | es-object-atoms: 1.1.1
2852 | get-intrinsic: 1.3.0
2853 | get-proto: 1.0.1
2854 | which-builtin-type: 1.2.1
2855 | dev: true
2856 |
2857 | /regenerator-runtime@0.14.1:
2858 | resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==}
2859 | dev: false
2860 |
2861 | /regexp.prototype.flags@1.5.4:
2862 | resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==}
2863 | engines: {node: '>= 0.4'}
2864 | dependencies:
2865 | call-bind: 1.0.8
2866 | define-properties: 1.2.1
2867 | es-errors: 1.3.0
2868 | get-proto: 1.0.1
2869 | gopd: 1.2.0
2870 | set-function-name: 2.0.2
2871 | dev: true
2872 |
2873 | /require-from-string@2.0.2:
2874 | resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==}
2875 | engines: {node: '>=0.10.0'}
2876 | dev: false
2877 |
2878 | /resolve-from@4.0.0:
2879 | resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
2880 | engines: {node: '>=4'}
2881 | dev: true
2882 |
2883 | /resolve-pkg-maps@1.0.0:
2884 | resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==}
2885 | dev: true
2886 |
2887 | /resolve@1.22.10:
2888 | resolution: {integrity: sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==}
2889 | engines: {node: '>= 0.4'}
2890 | hasBin: true
2891 | dependencies:
2892 | is-core-module: 2.16.1
2893 | path-parse: 1.0.7
2894 | supports-preserve-symlinks-flag: 1.0.0
2895 | dev: true
2896 |
2897 | /resolve@2.0.0-next.5:
2898 | resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==}
2899 | hasBin: true
2900 | dependencies:
2901 | is-core-module: 2.16.1
2902 | path-parse: 1.0.7
2903 | supports-preserve-symlinks-flag: 1.0.0
2904 | dev: true
2905 |
2906 | /reusify@1.1.0:
2907 | resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==}
2908 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
2909 | dev: true
2910 |
2911 | /run-parallel@1.2.0:
2912 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
2913 | dependencies:
2914 | queue-microtask: 1.2.3
2915 | dev: true
2916 |
2917 | /safe-array-concat@1.1.3:
2918 | resolution: {integrity: sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==}
2919 | engines: {node: '>=0.4'}
2920 | dependencies:
2921 | call-bind: 1.0.8
2922 | call-bound: 1.0.4
2923 | get-intrinsic: 1.3.0
2924 | has-symbols: 1.1.0
2925 | isarray: 2.0.5
2926 | dev: true
2927 |
2928 | /safe-push-apply@1.0.0:
2929 | resolution: {integrity: sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==}
2930 | engines: {node: '>= 0.4'}
2931 | dependencies:
2932 | es-errors: 1.3.0
2933 | isarray: 2.0.5
2934 | dev: true
2935 |
2936 | /safe-regex-test@1.1.0:
2937 | resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==}
2938 | engines: {node: '>= 0.4'}
2939 | dependencies:
2940 | call-bound: 1.0.4
2941 | es-errors: 1.3.0
2942 | is-regex: 1.2.1
2943 | dev: true
2944 |
2945 | /scheduler@0.25.0:
2946 | resolution: {integrity: sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA==}
2947 | dev: false
2948 |
2949 | /semver@6.3.1:
2950 | resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==}
2951 | hasBin: true
2952 | dev: true
2953 |
2954 | /semver@7.7.1:
2955 | resolution: {integrity: sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==}
2956 | engines: {node: '>=10'}
2957 | hasBin: true
2958 |
2959 | /set-function-length@1.2.2:
2960 | resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==}
2961 | engines: {node: '>= 0.4'}
2962 | dependencies:
2963 | define-data-property: 1.1.4
2964 | es-errors: 1.3.0
2965 | function-bind: 1.1.2
2966 | get-intrinsic: 1.3.0
2967 | gopd: 1.2.0
2968 | has-property-descriptors: 1.0.2
2969 | dev: true
2970 |
2971 | /set-function-name@2.0.2:
2972 | resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==}
2973 | engines: {node: '>= 0.4'}
2974 | dependencies:
2975 | define-data-property: 1.1.4
2976 | es-errors: 1.3.0
2977 | functions-have-names: 1.2.3
2978 | has-property-descriptors: 1.0.2
2979 | dev: true
2980 |
2981 | /set-proto@1.0.0:
2982 | resolution: {integrity: sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==}
2983 | engines: {node: '>= 0.4'}
2984 | dependencies:
2985 | dunder-proto: 1.0.1
2986 | es-errors: 1.3.0
2987 | es-object-atoms: 1.1.1
2988 | dev: true
2989 |
2990 | /sharp@0.33.5:
2991 | resolution: {integrity: sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==}
2992 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
2993 | requiresBuild: true
2994 | dependencies:
2995 | color: 4.2.3
2996 | detect-libc: 2.0.3
2997 | semver: 7.7.1
2998 | optionalDependencies:
2999 | '@img/sharp-darwin-arm64': 0.33.5
3000 | '@img/sharp-darwin-x64': 0.33.5
3001 | '@img/sharp-libvips-darwin-arm64': 1.0.4
3002 | '@img/sharp-libvips-darwin-x64': 1.0.4
3003 | '@img/sharp-libvips-linux-arm': 1.0.5
3004 | '@img/sharp-libvips-linux-arm64': 1.0.4
3005 | '@img/sharp-libvips-linux-s390x': 1.0.4
3006 | '@img/sharp-libvips-linux-x64': 1.0.4
3007 | '@img/sharp-libvips-linuxmusl-arm64': 1.0.4
3008 | '@img/sharp-libvips-linuxmusl-x64': 1.0.4
3009 | '@img/sharp-linux-arm': 0.33.5
3010 | '@img/sharp-linux-arm64': 0.33.5
3011 | '@img/sharp-linux-s390x': 0.33.5
3012 | '@img/sharp-linux-x64': 0.33.5
3013 | '@img/sharp-linuxmusl-arm64': 0.33.5
3014 | '@img/sharp-linuxmusl-x64': 0.33.5
3015 | '@img/sharp-wasm32': 0.33.5
3016 | '@img/sharp-win32-ia32': 0.33.5
3017 | '@img/sharp-win32-x64': 0.33.5
3018 | dev: false
3019 | optional: true
3020 |
3021 | /shebang-command@2.0.0:
3022 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
3023 | engines: {node: '>=8'}
3024 | dependencies:
3025 | shebang-regex: 3.0.0
3026 |
3027 | /shebang-regex@3.0.0:
3028 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
3029 | engines: {node: '>=8'}
3030 |
3031 | /side-channel-list@1.0.0:
3032 | resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==}
3033 | engines: {node: '>= 0.4'}
3034 | dependencies:
3035 | es-errors: 1.3.0
3036 | object-inspect: 1.13.4
3037 | dev: true
3038 |
3039 | /side-channel-map@1.0.1:
3040 | resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==}
3041 | engines: {node: '>= 0.4'}
3042 | dependencies:
3043 | call-bound: 1.0.4
3044 | es-errors: 1.3.0
3045 | get-intrinsic: 1.3.0
3046 | object-inspect: 1.13.4
3047 | dev: true
3048 |
3049 | /side-channel-weakmap@1.0.2:
3050 | resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==}
3051 | engines: {node: '>= 0.4'}
3052 | dependencies:
3053 | call-bound: 1.0.4
3054 | es-errors: 1.3.0
3055 | get-intrinsic: 1.3.0
3056 | object-inspect: 1.13.4
3057 | side-channel-map: 1.0.1
3058 | dev: true
3059 |
3060 | /side-channel@1.1.0:
3061 | resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==}
3062 | engines: {node: '>= 0.4'}
3063 | dependencies:
3064 | es-errors: 1.3.0
3065 | object-inspect: 1.13.4
3066 | side-channel-list: 1.0.0
3067 | side-channel-map: 1.0.1
3068 | side-channel-weakmap: 1.0.2
3069 | dev: true
3070 |
3071 | /simple-swizzle@0.2.2:
3072 | resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==}
3073 | requiresBuild: true
3074 | dependencies:
3075 | is-arrayish: 0.3.2
3076 | dev: false
3077 | optional: true
3078 |
3079 | /source-map-js@1.2.1:
3080 | resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==}
3081 | engines: {node: '>=0.10.0'}
3082 |
3083 | /stable-hash@0.0.4:
3084 | resolution: {integrity: sha512-LjdcbuBeLcdETCrPn9i8AYAZ1eCtu4ECAWtP7UleOiZ9LzVxRzzUZEoZ8zB24nhkQnDWyET0I+3sWokSDS3E7g==}
3085 | dev: true
3086 |
3087 | /stats-gl@2.4.2(@types/three@0.174.0)(three@0.174.0):
3088 | resolution: {integrity: sha512-g5O9B0hm9CvnM36+v7SFl39T7hmAlv541tU81ME8YeSb3i1CIP5/QdDeSB3A0la0bKNHpxpwxOVRo2wFTYEosQ==}
3089 | peerDependencies:
3090 | '@types/three': '*'
3091 | three: '*'
3092 | dependencies:
3093 | '@types/three': 0.174.0
3094 | three: 0.174.0
3095 | dev: false
3096 |
3097 | /stats.js@0.17.0:
3098 | resolution: {integrity: sha512-hNKz8phvYLPEcRkeG1rsGmV5ChMjKDAWU7/OJJdDErPBNChQXxCo3WZurGpnWc6gZhAzEPFad1aVgyOANH1sMw==}
3099 | dev: false
3100 |
3101 | /streamsearch@1.1.0:
3102 | resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==}
3103 | engines: {node: '>=10.0.0'}
3104 | dev: false
3105 |
3106 | /string.prototype.includes@2.0.1:
3107 | resolution: {integrity: sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==}
3108 | engines: {node: '>= 0.4'}
3109 | dependencies:
3110 | call-bind: 1.0.8
3111 | define-properties: 1.2.1
3112 | es-abstract: 1.23.9
3113 | dev: true
3114 |
3115 | /string.prototype.matchall@4.0.12:
3116 | resolution: {integrity: sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==}
3117 | engines: {node: '>= 0.4'}
3118 | dependencies:
3119 | call-bind: 1.0.8
3120 | call-bound: 1.0.4
3121 | define-properties: 1.2.1
3122 | es-abstract: 1.23.9
3123 | es-errors: 1.3.0
3124 | es-object-atoms: 1.1.1
3125 | get-intrinsic: 1.3.0
3126 | gopd: 1.2.0
3127 | has-symbols: 1.1.0
3128 | internal-slot: 1.1.0
3129 | regexp.prototype.flags: 1.5.4
3130 | set-function-name: 2.0.2
3131 | side-channel: 1.1.0
3132 | dev: true
3133 |
3134 | /string.prototype.repeat@1.0.0:
3135 | resolution: {integrity: sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==}
3136 | dependencies:
3137 | define-properties: 1.2.1
3138 | es-abstract: 1.23.9
3139 | dev: true
3140 |
3141 | /string.prototype.trim@1.2.10:
3142 | resolution: {integrity: sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==}
3143 | engines: {node: '>= 0.4'}
3144 | dependencies:
3145 | call-bind: 1.0.8
3146 | call-bound: 1.0.4
3147 | define-data-property: 1.1.4
3148 | define-properties: 1.2.1
3149 | es-abstract: 1.23.9
3150 | es-object-atoms: 1.1.1
3151 | has-property-descriptors: 1.0.2
3152 | dev: true
3153 |
3154 | /string.prototype.trimend@1.0.9:
3155 | resolution: {integrity: sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==}
3156 | engines: {node: '>= 0.4'}
3157 | dependencies:
3158 | call-bind: 1.0.8
3159 | call-bound: 1.0.4
3160 | define-properties: 1.2.1
3161 | es-object-atoms: 1.1.1
3162 | dev: true
3163 |
3164 | /string.prototype.trimstart@1.0.8:
3165 | resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==}
3166 | engines: {node: '>= 0.4'}
3167 | dependencies:
3168 | call-bind: 1.0.8
3169 | define-properties: 1.2.1
3170 | es-object-atoms: 1.1.1
3171 | dev: true
3172 |
3173 | /strip-bom@3.0.0:
3174 | resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==}
3175 | engines: {node: '>=4'}
3176 | dev: true
3177 |
3178 | /strip-json-comments@3.1.1:
3179 | resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
3180 | engines: {node: '>=8'}
3181 | dev: true
3182 |
3183 | /styled-jsx@5.1.6(react@19.0.0):
3184 | resolution: {integrity: sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA==}
3185 | engines: {node: '>= 12.0.0'}
3186 | peerDependencies:
3187 | '@babel/core': '*'
3188 | babel-plugin-macros: '*'
3189 | react: '>= 16.8.0 || 17.x.x || ^18.0.0-0 || ^19.0.0-0'
3190 | peerDependenciesMeta:
3191 | '@babel/core':
3192 | optional: true
3193 | babel-plugin-macros:
3194 | optional: true
3195 | dependencies:
3196 | client-only: 0.0.1
3197 | react: 19.0.0
3198 | dev: false
3199 |
3200 | /supports-color@7.2.0:
3201 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
3202 | engines: {node: '>=8'}
3203 | dependencies:
3204 | has-flag: 4.0.0
3205 | dev: true
3206 |
3207 | /supports-preserve-symlinks-flag@1.0.0:
3208 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
3209 | engines: {node: '>= 0.4'}
3210 | dev: true
3211 |
3212 | /suspend-react@0.1.3(react@19.0.0):
3213 | resolution: {integrity: sha512-aqldKgX9aZqpoDp3e8/BZ8Dm7x1pJl+qI3ZKxDN0i/IQTWUwBx/ManmlVJ3wowqbno6c2bmiIfs+Um6LbsjJyQ==}
3214 | peerDependencies:
3215 | react: '>=17.0'
3216 | dependencies:
3217 | react: 19.0.0
3218 | dev: false
3219 |
3220 | /tailwindcss@4.0.12:
3221 | resolution: {integrity: sha512-bT0hJo91FtncsAMSsMzUkoo/iEU0Xs5xgFgVC9XmdM9bw5MhZuQFjPNl6wxAE0SiQF/YTZJa+PndGWYSDtuxAg==}
3222 | dev: true
3223 |
3224 | /tapable@2.2.1:
3225 | resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==}
3226 | engines: {node: '>=6'}
3227 | dev: true
3228 |
3229 | /three-mesh-bvh@0.8.3(three@0.174.0):
3230 | resolution: {integrity: sha512-4G5lBaF+g2auKX3P0yqx+MJC6oVt6sB5k+CchS6Ob0qvH0YIhuUk1eYr7ktsIpY+albCqE80/FVQGV190PmiAg==}
3231 | peerDependencies:
3232 | three: '>= 0.159.0'
3233 | dependencies:
3234 | three: 0.174.0
3235 | dev: false
3236 |
3237 | /three-stdlib@2.35.14(three@0.174.0):
3238 | resolution: {integrity: sha512-kpCaEg59M9usFTgHC+YZNKvx7nMoLI2zQxZBV8pjoNW6vNZmGyXpaLBL09A2oLCsS3KepgMFkOuk6lRoebTNvA==}
3239 | peerDependencies:
3240 | three: '>=0.128.0'
3241 | dependencies:
3242 | '@types/draco3d': 1.4.10
3243 | '@types/offscreencanvas': 2019.7.3
3244 | '@types/webxr': 0.5.21
3245 | draco3d: 1.5.7
3246 | fflate: 0.6.10
3247 | potpack: 1.0.2
3248 | three: 0.174.0
3249 | dev: false
3250 |
3251 | /three@0.174.0:
3252 | resolution: {integrity: sha512-p+WG3W6Ov74alh3geCMkGK9NWuT62ee21cV3jEnun201zodVF4tCE5aZa2U122/mkLRmhJJUQmLLW1BH00uQJQ==}
3253 | dev: false
3254 |
3255 | /tinyglobby@0.2.12:
3256 | resolution: {integrity: sha512-qkf4trmKSIiMTs/E63cxH+ojC2unam7rJ0WrauAzpT3ECNTxGRMlaXxVbfxMUC/w0LaYk6jQ4y/nGR9uBO3tww==}
3257 | engines: {node: '>=12.0.0'}
3258 | dependencies:
3259 | fdir: 6.4.3(picomatch@4.0.2)
3260 | picomatch: 4.0.2
3261 | dev: true
3262 |
3263 | /to-regex-range@5.0.1:
3264 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
3265 | engines: {node: '>=8.0'}
3266 | dependencies:
3267 | is-number: 7.0.0
3268 | dev: true
3269 |
3270 | /troika-three-text@0.52.3(three@0.174.0):
3271 | resolution: {integrity: sha512-jLhiwgV8kEkwWjvK12f2fHVpbOC75p7SgPQ0cgcz+IMtN5Bdyg4EuFdwuTOVu9ga8UeYdKBpzd1AxviyixtYTQ==}
3272 | peerDependencies:
3273 | three: '>=0.125.0'
3274 | dependencies:
3275 | bidi-js: 1.0.3
3276 | three: 0.174.0
3277 | troika-three-utils: 0.52.0(three@0.174.0)
3278 | troika-worker-utils: 0.52.0
3279 | webgl-sdf-generator: 1.1.1
3280 | dev: false
3281 |
3282 | /troika-three-utils@0.52.0(three@0.174.0):
3283 | resolution: {integrity: sha512-00oxqIIehtEKInOTQekgyknBuRUj1POfOUE2q1OmL+Xlpp4gIu+S0oA0schTyXsDS4d9DkR04iqCdD40rF5R6w==}
3284 | peerDependencies:
3285 | three: '>=0.125.0'
3286 | dependencies:
3287 | three: 0.174.0
3288 | dev: false
3289 |
3290 | /troika-worker-utils@0.52.0:
3291 | resolution: {integrity: sha512-W1CpvTHykaPH5brv5VHLfQo9D1OYuo0cSBEUQFFT/nBUzM8iD6Lq2/tgG/f1OelbAS1WtaTPQzE5uM49egnngw==}
3292 | dev: false
3293 |
3294 | /ts-api-utils@2.0.1(typescript@5.8.2):
3295 | resolution: {integrity: sha512-dnlgjFSVetynI8nzgJ+qF62efpglpWRk8isUEWZGWlJYySCTD6aKvbUDu+zbPeDakk3bg5H4XpitHukgfL1m9w==}
3296 | engines: {node: '>=18.12'}
3297 | peerDependencies:
3298 | typescript: '>=4.8.4'
3299 | dependencies:
3300 | typescript: 5.8.2
3301 | dev: true
3302 |
3303 | /tsconfig-paths@3.15.0:
3304 | resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==}
3305 | dependencies:
3306 | '@types/json5': 0.0.29
3307 | json5: 1.0.2
3308 | minimist: 1.2.8
3309 | strip-bom: 3.0.0
3310 | dev: true
3311 |
3312 | /tslib@2.8.1:
3313 | resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==}
3314 | dev: false
3315 |
3316 | /tunnel-rat@0.1.2(@types/react@19.0.10)(react@19.0.0):
3317 | resolution: {integrity: sha512-lR5VHmkPhzdhrM092lI2nACsLO4QubF0/yoOhzX7c+wIpbN1GjHNzCc91QlpxBi+cnx8vVJ+Ur6vL5cEoQPFpQ==}
3318 | dependencies:
3319 | zustand: 4.5.6(@types/react@19.0.10)(react@19.0.0)
3320 | transitivePeerDependencies:
3321 | - '@types/react'
3322 | - immer
3323 | - react
3324 | dev: false
3325 |
3326 | /type-check@0.4.0:
3327 | resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
3328 | engines: {node: '>= 0.8.0'}
3329 | dependencies:
3330 | prelude-ls: 1.2.1
3331 | dev: true
3332 |
3333 | /typed-array-buffer@1.0.3:
3334 | resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==}
3335 | engines: {node: '>= 0.4'}
3336 | dependencies:
3337 | call-bound: 1.0.4
3338 | es-errors: 1.3.0
3339 | is-typed-array: 1.1.15
3340 | dev: true
3341 |
3342 | /typed-array-byte-length@1.0.3:
3343 | resolution: {integrity: sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==}
3344 | engines: {node: '>= 0.4'}
3345 | dependencies:
3346 | call-bind: 1.0.8
3347 | for-each: 0.3.5
3348 | gopd: 1.2.0
3349 | has-proto: 1.2.0
3350 | is-typed-array: 1.1.15
3351 | dev: true
3352 |
3353 | /typed-array-byte-offset@1.0.4:
3354 | resolution: {integrity: sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==}
3355 | engines: {node: '>= 0.4'}
3356 | dependencies:
3357 | available-typed-arrays: 1.0.7
3358 | call-bind: 1.0.8
3359 | for-each: 0.3.5
3360 | gopd: 1.2.0
3361 | has-proto: 1.2.0
3362 | is-typed-array: 1.1.15
3363 | reflect.getprototypeof: 1.0.10
3364 | dev: true
3365 |
3366 | /typed-array-length@1.0.7:
3367 | resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==}
3368 | engines: {node: '>= 0.4'}
3369 | dependencies:
3370 | call-bind: 1.0.8
3371 | for-each: 0.3.5
3372 | gopd: 1.2.0
3373 | is-typed-array: 1.1.15
3374 | possible-typed-array-names: 1.1.0
3375 | reflect.getprototypeof: 1.0.10
3376 | dev: true
3377 |
3378 | /typescript@5.8.2:
3379 | resolution: {integrity: sha512-aJn6wq13/afZp/jT9QZmwEjDqqvSGp1VT5GVg+f/t6/oVyrgXM6BY1h9BRh/O5p3PlUPAe+WuiEZOmb/49RqoQ==}
3380 | engines: {node: '>=14.17'}
3381 | hasBin: true
3382 | dev: true
3383 |
3384 | /unbox-primitive@1.1.0:
3385 | resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==}
3386 | engines: {node: '>= 0.4'}
3387 | dependencies:
3388 | call-bound: 1.0.4
3389 | has-bigints: 1.1.0
3390 | has-symbols: 1.1.0
3391 | which-boxed-primitive: 1.1.1
3392 | dev: true
3393 |
3394 | /undici-types@6.19.8:
3395 | resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==}
3396 | dev: true
3397 |
3398 | /uri-js@4.4.1:
3399 | resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
3400 | dependencies:
3401 | punycode: 2.3.1
3402 | dev: true
3403 |
3404 | /use-sync-external-store@1.4.0(react@19.0.0):
3405 | resolution: {integrity: sha512-9WXSPC5fMv61vaupRkCKCxsPxBocVnwakBEkMIHHpkTTg6icbJtg6jzgtLDm4bl3cSHAca52rYWih0k4K3PfHw==}
3406 | peerDependencies:
3407 | react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
3408 | dependencies:
3409 | react: 19.0.0
3410 | dev: false
3411 |
3412 | /utility-types@3.11.0:
3413 | resolution: {integrity: sha512-6Z7Ma2aVEWisaL6TvBCy7P8rm2LQoPv6dJ7ecIaIixHcwfbJ0x7mWdbcwlIM5IGQxPZSFYeqRCqlOOeKoJYMkw==}
3414 | engines: {node: '>= 4'}
3415 | dev: false
3416 |
3417 | /webgl-constants@1.1.1:
3418 | resolution: {integrity: sha512-LkBXKjU5r9vAW7Gcu3T5u+5cvSvh5WwINdr0C+9jpzVB41cjQAP5ePArDtk/WHYdVj0GefCgM73BA7FlIiNtdg==}
3419 | dev: false
3420 |
3421 | /webgl-sdf-generator@1.1.1:
3422 | resolution: {integrity: sha512-9Z0JcMTFxeE+b2x1LJTdnaT8rT8aEp7MVxkNwoycNmJWwPdzoXzMh0BjJSh/AEFP+KPYZUli814h8bJZFIZ2jA==}
3423 | dev: false
3424 |
3425 | /which-boxed-primitive@1.1.1:
3426 | resolution: {integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==}
3427 | engines: {node: '>= 0.4'}
3428 | dependencies:
3429 | is-bigint: 1.1.0
3430 | is-boolean-object: 1.2.2
3431 | is-number-object: 1.1.1
3432 | is-string: 1.1.1
3433 | is-symbol: 1.1.1
3434 | dev: true
3435 |
3436 | /which-builtin-type@1.2.1:
3437 | resolution: {integrity: sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==}
3438 | engines: {node: '>= 0.4'}
3439 | dependencies:
3440 | call-bound: 1.0.4
3441 | function.prototype.name: 1.1.8
3442 | has-tostringtag: 1.0.2
3443 | is-async-function: 2.1.1
3444 | is-date-object: 1.1.0
3445 | is-finalizationregistry: 1.1.1
3446 | is-generator-function: 1.1.0
3447 | is-regex: 1.2.1
3448 | is-weakref: 1.1.1
3449 | isarray: 2.0.5
3450 | which-boxed-primitive: 1.1.1
3451 | which-collection: 1.0.2
3452 | which-typed-array: 1.1.19
3453 | dev: true
3454 |
3455 | /which-collection@1.0.2:
3456 | resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==}
3457 | engines: {node: '>= 0.4'}
3458 | dependencies:
3459 | is-map: 2.0.3
3460 | is-set: 2.0.3
3461 | is-weakmap: 2.0.2
3462 | is-weakset: 2.0.4
3463 | dev: true
3464 |
3465 | /which-typed-array@1.1.19:
3466 | resolution: {integrity: sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==}
3467 | engines: {node: '>= 0.4'}
3468 | dependencies:
3469 | available-typed-arrays: 1.0.7
3470 | call-bind: 1.0.8
3471 | call-bound: 1.0.4
3472 | for-each: 0.3.5
3473 | get-proto: 1.0.1
3474 | gopd: 1.2.0
3475 | has-tostringtag: 1.0.2
3476 | dev: true
3477 |
3478 | /which@2.0.2:
3479 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
3480 | engines: {node: '>= 8'}
3481 | hasBin: true
3482 | dependencies:
3483 | isexe: 2.0.0
3484 |
3485 | /word-wrap@1.2.5:
3486 | resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==}
3487 | engines: {node: '>=0.10.0'}
3488 | dev: true
3489 |
3490 | /yocto-queue@0.1.0:
3491 | resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
3492 | engines: {node: '>=10'}
3493 | dev: true
3494 |
3495 | /zustand@4.5.6(@types/react@19.0.10)(react@19.0.0):
3496 | resolution: {integrity: sha512-ibr/n1hBzLLj5Y+yUcU7dYw8p6WnIVzdJbnX+1YpaScvZVF2ziugqHs+LAmHw4lWO9c/zRj+K1ncgWDQuthEdQ==}
3497 | engines: {node: '>=12.7.0'}
3498 | peerDependencies:
3499 | '@types/react': '>=16.8'
3500 | immer: '>=9.0.6'
3501 | react: '>=16.8'
3502 | peerDependenciesMeta:
3503 | '@types/react':
3504 | optional: true
3505 | immer:
3506 | optional: true
3507 | react:
3508 | optional: true
3509 | dependencies:
3510 | '@types/react': 19.0.10
3511 | react: 19.0.0
3512 | use-sync-external-store: 1.4.0(react@19.0.0)
3513 | dev: false
3514 |
3515 | /zustand@5.0.3(@types/react@19.0.10)(react@19.0.0)(use-sync-external-store@1.4.0):
3516 | resolution: {integrity: sha512-14fwWQtU3pH4dE0dOpdMiWjddcH+QzKIgk1cl8epwSE7yag43k/AD/m4L6+K7DytAOr9gGBe3/EXj9g7cdostg==}
3517 | engines: {node: '>=12.20.0'}
3518 | peerDependencies:
3519 | '@types/react': '>=18.0.0'
3520 | immer: '>=9.0.6'
3521 | react: '>=18.0.0'
3522 | use-sync-external-store: '>=1.2.0'
3523 | peerDependenciesMeta:
3524 | '@types/react':
3525 | optional: true
3526 | immer:
3527 | optional: true
3528 | react:
3529 | optional: true
3530 | use-sync-external-store:
3531 | optional: true
3532 | dependencies:
3533 | '@types/react': 19.0.10
3534 | react: 19.0.0
3535 | use-sync-external-store: 1.4.0(react@19.0.0)
3536 | dev: false
3537 |
--------------------------------------------------------------------------------
/postcss.config.mjs:
--------------------------------------------------------------------------------
1 | const config = {
2 | plugins: ["@tailwindcss/postcss"],
3 | };
4 |
5 | export default config;
6 |
--------------------------------------------------------------------------------
/preview.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/d3adrabbit/ScanningEffectWithDepthMap/e15817cb790c71694cfbc5926b80159d45c0cd2f/preview.mp4
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "target": "ES2017",
4 | "lib": [
5 | "dom",
6 | "dom.iterable",
7 | "esnext"
8 | ],
9 | "allowJs": true,
10 | "skipLibCheck": true,
11 | "strict": true,
12 | "noEmit": true,
13 | "esModuleInterop": true,
14 | "module": "esnext",
15 | "moduleResolution": "bundler",
16 | "resolveJsonModule": true,
17 | "isolatedModules": true,
18 | "jsx": "preserve",
19 | "incremental": true,
20 | "plugins": [
21 | {
22 | "name": "next"
23 | }
24 | ],
25 | "paths": {
26 | "@/*": [
27 | "./*"
28 | ]
29 | }
30 | },
31 | "include": [
32 | "**/*.ts",
33 | "**/*.tsx",
34 | ".next/types/**/*.ts",
35 | "next-env.d.ts",
36 | "Development/ScanEffect/types/**/*.ts"
37 | ],
38 | "exclude": [
39 | "node_modules"
40 | ]
41 | }
42 |
--------------------------------------------------------------------------------