@crapthings/run3d 0.2.2 → 0.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -2,6 +2,8 @@
2
2
 
3
3
  Create a 3D project in one command. The starter scene has a grid and a box ready to edit.
4
4
 
5
+ As models like GPT-6 Astra grow more capable at building 3D experiences, the distance from an idea to a working prototype keeps shrinking. I have new ideas every day, and I want to spend that energy creating. run3d brings my go-to tools for brainstorming and experimentation into one ready-to-use starter, so I can jump straight into building, testing ideas, and discovering what works.
6
+
5
7
  ## Usage
6
8
 
7
9
  Requires Node.js `^20.19.0 || >=22.12.0` and pnpm.
@@ -18,38 +20,37 @@ Edit `src/Scene.jsx` to make it your own. To install dependencies later, add `--
18
20
 
19
21
  ### App foundation
20
22
 
21
- - Vite — runs the development server and builds the app.
22
- - React and React DOM — build and render the app UI.
23
+ - [React and React DOM](https://github.com/react/react) — build and render the app UI.
24
+ - [Vite](https://github.com/vitejs/vite) — runs the development server and builds the app.
23
25
 
24
26
  ### 3D scenes
25
27
 
26
- - Three.js — renders 3D scenes.
27
- - pmndrs/math — provides math utilities for 3D work.
28
- - Postprocessing — applies visual effects to rendered scenes.
29
- - React Three Fiber — lets you build Three.js scenes with React.
30
- - Drei — provides ready-made 3D helpers and controls.
31
- - GSAP — animates scene and UI properties with timelines.
32
- - `@react-three/postprocessing` — uses postprocessing effects as React components.
33
- - R3F-Perf — monitors rendering performance while developing.
28
+ - [Three.js](https://github.com/mrdoob/three.js) — renders 3D scenes.
29
+ - [React Three Fiber](https://github.com/pmndrs/react-three-fiber) — lets you build Three.js scenes with React.
30
+ - [Drei](https://github.com/pmndrs/drei) — provides ready-made 3D helpers and controls.
31
+ - [GSAP](https://github.com/greensock/GSAP) and [@gsap/react](https://github.com/greensock/react) — animate scene and UI properties with timelines and the `useGSAP` React hook.
32
+ - [Postprocessing](https://github.com/pmndrs/postprocessing) and [@react-three/postprocessing](https://github.com/pmndrs/react-postprocessing) — add visual effects with React components.
33
+ - [pmndrs/math](https://github.com/pmndrs/math) — provides math utilities for 3D work.
34
+ - [R3F-Perf](https://github.com/utsuboco/r3f-perf) — monitors rendering performance while developing.
34
35
 
35
36
  ### Worlds and movement
36
37
 
37
- - FastNoiseLite — generates procedural 2D and 3D noise.
38
- - Three Hex Tiling — reduces visible repetition in tiled textures.
39
- - Recast Navigation — generates navmeshes and finds paths.
40
- - `@recast-navigation/three` — connects Recast Navigation to Three.js scenes.
41
- - Navcat — builds and queries navmeshes in pure JavaScript, with Three.js helpers.
42
- - React Three Rapier — adds physics and collisions.
38
+ - [React Three Rapier](https://github.com/pmndrs/react-three-rapier) — adds physics and collisions.
39
+ - [Recast Navigation and @recast-navigation/three](https://github.com/isaac-mason/recast-navigation-js) — generate navmeshes and find paths in Three.js scenes.
40
+ - [Navcat](https://github.com/isaac-mason/navcat) — builds and queries navmeshes in pure JavaScript, with Three.js helpers.
41
+ - [FastNoiseLite](https://github.com/Auburn/FastNoiseLite) — generates procedural 2D and 3D noise.
42
+ - [Three Hex Tiling](https://github.com/Ameobea/three-hex-tiling) — reduces visible repetition in tiled textures.
43
43
 
44
44
  ### Data and state
45
45
 
46
- - D3 — provides data scales, layouts, and visualizations.
47
- - p5.js — creates interactive graphics and creative coding sketches.
48
- - Zustand — manages React app state.
49
- - Koota — manages game state with entities and components.
46
+ - [Zustand](https://github.com/pmndrs/zustand) — manages React app state.
47
+ - [Koota](https://github.com/pmndrs/koota) — manages game state with entities and components.
48
+ - [D3](https://github.com/d3/d3) — provides data scales, layouts, and visualizations.
49
+ - [p5.js](https://github.com/processing/p5.js) — creates interactive graphics and creative coding sketches.
50
50
 
51
51
  ### Interface
52
52
 
53
- - React Router — connects URLs to pages and handles navigation.
54
- - Tailwind CSS — styles the app.
55
- - Floating UI — positions menus, tooltips, and popovers.
53
+ - [React Router](https://github.com/remix-run/react-router) — connects URLs to pages and handles navigation.
54
+ - [Tailwind CSS](https://github.com/tailwindlabs/tailwindcss) — styles the app.
55
+ - [Headless UI](https://github.com/tailwindlabs/headlessui) — provides accessible, unstyled React UI components.
56
+ - [Floating UI](https://github.com/floating-ui/floating-ui) — positions menus, tooltips, and popovers.
package/package.json CHANGED
@@ -3,8 +3,8 @@
3
3
  "publishConfig": {
4
4
  "access": "public"
5
5
  },
6
- "version": "0.2.2",
7
- "description": "Create a minimal Vite, React Three Fiber, and Drei Grid starter project",
6
+ "version": "0.2.3",
7
+ "description": "From idea to interactive 3D prototype in one command. A JavaScript starter with Vite, React Three Fiber, and tools for creative experimentation.",
8
8
  "type": "module",
9
9
  "bin": {
10
10
  "run3d": "bin/run3d.js"
@@ -32,12 +32,21 @@
32
32
  "release": "node scripts/release.js"
33
33
  },
34
34
  "keywords": [
35
- "vite",
36
- "react",
35
+ "3d",
37
36
  "three",
37
+ "threejs",
38
+ "react",
38
39
  "react-three-fiber",
40
+ "r3f",
39
41
  "drei",
42
+ "vite",
43
+ "webgl",
44
+ "creative-coding",
45
+ "prototyping",
46
+ "javascript",
40
47
  "starter",
48
+ "template",
49
+ "scaffolding",
41
50
  "cli"
42
51
  ],
43
52
  "license": "MIT",
@@ -14,6 +14,8 @@
14
14
  },
15
15
  "dependencies": {
16
16
  "@floating-ui/react": "^0.27.20",
17
+ "@gsap/react": "^2.1.2",
18
+ "@headlessui/react": "^2.2.10",
17
19
  "@react-three/drei": "^10.7.8",
18
20
  "@react-three/fiber": "^9.7.0",
19
21
  "@react-three/postprocessing": "^3.1.1",
@@ -169,6 +169,12 @@ importers:
169
169
  '@floating-ui/react':
170
170
  specifier: ^0.27.20
171
171
  version: 0.27.20(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
172
+ '@gsap/react':
173
+ specifier: ^2.1.2
174
+ version: 2.1.2(gsap@3.15.0)(react@19.2.8)
175
+ '@headlessui/react':
176
+ specifier: ^2.2.10
177
+ version: 2.2.10(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
172
178
  '@react-three/drei':
173
179
  specifier: ^10.7.8
174
180
  version: 10.7.8(@react-three/fiber@9.7.0(@types/react@19.3.0)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(three@0.186.0))(@types/react@19.3.0)(@types/three@0.186.0)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(three@0.186.0)
@@ -273,6 +279,12 @@ packages:
273
279
  react: '>=16.8.0'
274
280
  react-dom: '>=16.8.0'
275
281
 
282
+ '@floating-ui/react@0.26.28':
283
+ resolution: {integrity: sha512-yORQuuAtVpiRjpMhdc0wJj06b9JFjrYF4qp96j++v2NBpbi6SEGF7donUJ3TMieerQ6qVkAv1tgr7L4r5roTqw==}
284
+ peerDependencies:
285
+ react: '>=16.8.0'
286
+ react-dom: '>=16.8.0'
287
+
276
288
  '@floating-ui/react@0.27.20':
277
289
  resolution: {integrity: sha512-CMqMy7OaXl9W0eq1Uy7L7i2Y/anPvHmFmESd2CEw0t5YvZhcVCeo4MBevAmswRllX7Y2dEidA4ozGPunLSTQpw==}
278
290
  peerDependencies:
@@ -282,6 +294,28 @@ packages:
282
294
  '@floating-ui/utils@0.2.12':
283
295
  resolution: {integrity: sha512-HpCo8tmWzLVad5s2d19EhAz5zqrrQ6s69qd6moPMQvkOuSwDT1YgRfWSVuc4ennqrgv3OHppiOGMQ7oC13yIww==}
284
296
 
297
+ '@gsap/react@2.1.2':
298
+ resolution: {integrity: sha512-JqliybO1837UcgH2hVOM4VO+38APk3ECNrsuSM4MuXp+rbf+/2IG2K1YJiqfTcXQHH7XlA0m3ykniFYstfq0Iw==}
299
+ peerDependencies:
300
+ gsap: ^3.12.5
301
+ react: '>=17'
302
+
303
+ '@headlessui/react@2.2.10':
304
+ resolution: {integrity: sha512-5pVLNK9wlpxTUTy9GpgbX/SdcRh+HBnPktjM2wbiLTH4p+2EPHBO1aoSryUCuKUIItdDWO9ITlhUL8UnUN/oIA==}
305
+ engines: {node: '>=10'}
306
+ peerDependencies:
307
+ react: ^18 || ^19 || ^19.0.0-rc
308
+ react-dom: ^18 || ^19 || ^19.0.0-rc
309
+
310
+ '@internationalized/date@3.12.4':
311
+ resolution: {integrity: sha512-M1dEn4c1U1HsSlaVR8upZtSqvXrTkHDfv18H01uCSJyjVLDxnBR38v/fMxecmlwXKR4i9HeZcmgQAPE6A+aGJQ==}
312
+
313
+ '@internationalized/number@3.6.8':
314
+ resolution: {integrity: sha512-8UmMFia46DUt+k97zKd9fKWXcWHR+k8ae3eYzILETuT2KbIvLyOfac7zesw+sJdRAAZ7Q9pM1Mk22aXp2LD0Ig==}
315
+
316
+ '@internationalized/string@3.2.10':
317
+ resolution: {integrity: sha512-PDx6//vHSpRnHfxqMqto11zQvhsaU74O3mKv2F/0eicGZcl9NLjQmGlbHz/LsJh5tLKp4A4L7ZVTzN1/MmMTvA==}
318
+
285
319
  '@japont/unicode-range@1.0.0':
286
320
  resolution: {integrity: sha512-BckHvA2XdjRBVAWe2uceNuRf78lBeI28kyWEbfr/Q2pE17POkwuZ6WWY/UMv8FL9iBxhW4xfDoNLM9UVZaTeUQ==}
287
321
 
@@ -317,6 +351,18 @@ packages:
317
351
  peerDependencies:
318
352
  react: ^16.x || ^17.x || ^18.x || ^19.0.0 || ^19.0.0-rc
319
353
 
354
+ '@react-aria/focus@3.22.1':
355
+ resolution: {integrity: sha512-CPxtkyrBi/HYY5P3lE/57sQ6qfa0lN8E55TOm89H0kNGv0lKt+/0zP7lWERzBjRr5IxBVrQX4gFEowBN52LPaA==}
356
+ peerDependencies:
357
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
358
+ react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
359
+
360
+ '@react-aria/interactions@3.28.1':
361
+ resolution: {integrity: sha512-Bqb+HrD5I5MHS2SKBhISYqo2SW8Y2dfzgF/Y1lIJq7xqLxheo9vzxPGEHhz+XzkgGfoqEJx8A6a3C7uiqS3HWA==}
362
+ peerDependencies:
363
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
364
+ react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
365
+
320
366
  '@react-spring/animated@9.7.5':
321
367
  resolution: {integrity: sha512-Tqrwz7pIlsSDITzxoLS3n/v/YCUHQdOIKtOJf4yL6kYVSDTSmVK1LI1Q3M/uu2Sx4X3pIWF3xLUhlsA6SPNTNg==}
322
368
  peerDependencies:
@@ -407,6 +453,11 @@ packages:
407
453
  react: ^19
408
454
  three: '>=0.159.0'
409
455
 
456
+ '@react-types/shared@3.36.1':
457
+ resolution: {integrity: sha512-AzsuD9OfxTOZMMvTRhlN3oHBwOmFN7tDh27LzqmHt4+uOgPhJT7ZM7/kVs/8/o0WxayMUIk3hBmCFRHv1FUoag==}
458
+ peerDependencies:
459
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
460
+
410
461
  '@recast-navigation/core@0.43.1':
411
462
  resolution: {integrity: sha512-4igfPgnoV90O92sDSIA0xHa6tanh3z/udlgGmD0SqGQ6PKV4JS2l9jWO8YnxfZuXP/NV52H4c5FU6pSdZc9WDA==}
412
463
 
@@ -526,6 +577,9 @@ packages:
526
577
  peerDependencies:
527
578
  react: '>= 16.3.0'
528
579
 
580
+ '@swc/helpers@0.5.23':
581
+ resolution: {integrity: sha512-5lSsMOTXURePglDfvuAQUqkGek9Hg2kksOYay2m0+XR++b2NWYL/4sWyuvVBIs8oKnJaxkdi9whaL/sqN13afw==}
582
+
529
583
  '@tailwindcss/node@4.3.3':
530
584
  resolution: {integrity: sha512-/T8IKEsf9VTU6tLjgC7+sv2mOPtQxzE2jMw7u4Tt40Tx+QSZxpzh95/H6cMKoja9XuW7iMdLJYBB0o9G1CaAgg==}
531
585
 
@@ -620,6 +674,15 @@ packages:
620
674
  peerDependencies:
621
675
  vite: ^5.2.0 || ^6 || ^7 || ^8
622
676
 
677
+ '@tanstack/react-virtual@3.14.13':
678
+ resolution: {integrity: sha512-JbDTAwtzZ99aOeCrAfW5EsE5KSq5RWh6Af2dtFwyLIIk48Ja7vm6n4axu/43T3vfjFnEGJalxJ1wyYjSQD6bSg==}
679
+ peerDependencies:
680
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
681
+ react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
682
+
683
+ '@tanstack/virtual-core@3.17.11':
684
+ resolution: {integrity: sha512-+ILjvtHup6Y2hzQ6YzwMgX1Q+oQpxEGOXCEsCNaPoIP0VxMbizIBTmYTDtkerkIQS8/CbP1BRuyt8V/8BCsy1g==}
685
+
623
686
  '@tweenjs/tween.js@23.1.3':
624
687
  resolution: {integrity: sha512-vJmvvwFxYuGnF2axRtPYocag6Clbb5YS7kLL+SO/TeVFzHqDIWrNKYtcsPMibjDx9O+bu+psAy9NKfWklassUA==}
625
688
 
@@ -687,6 +750,10 @@ packages:
687
750
  engines: {node: '>=0.4.0'}
688
751
  hasBin: true
689
752
 
753
+ aria-hidden@1.2.6:
754
+ resolution: {integrity: sha512-ik3ZgC9dY/lYVVM++OISsaYDeg1tb0VtP5uL3ouh1koGOaUMDPpbFIei4JkFimWUFPn90sbMNMXQAIVOlnYKJA==}
755
+ engines: {node: '>=10'}
756
+
690
757
  base64-js@1.5.1:
691
758
  resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
692
759
 
@@ -707,6 +774,10 @@ packages:
707
774
  peerDependencies:
708
775
  three: '>=0.126.1'
709
776
 
777
+ clsx@2.1.1:
778
+ resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==}
779
+ engines: {node: '>=6'}
780
+
710
781
  colorjs.io@0.6.1:
711
782
  resolution: {integrity: sha512-8lyR2wHzuIykCpqHKgluGsqQi5iDm3/a2IgP2GBZrasn2sBRkE4NOGsglZxWLs/jZQoNkmA/KM/8NV16rLUdBg==}
712
783
 
@@ -1240,6 +1311,12 @@ packages:
1240
1311
  react-dom:
1241
1312
  optional: true
1242
1313
 
1314
+ react-aria@3.52.1:
1315
+ resolution: {integrity: sha512-fdZZruC9/x/joCg0mhKGs5aHpwrXLCSZ4GOJmhhYyiE0ffyEsk9MLFt9LCOCF9tn8ErTD+UDQP4oDUSlZkmpCg==}
1316
+ peerDependencies:
1317
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
1318
+ react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
1319
+
1243
1320
  react-composer@5.0.3:
1244
1321
  resolution: {integrity: sha512-1uWd07EME6XZvMfapwZmc7NgCZqDemcvicRi3wMJzXsQLvZ3L7fTHVyPy1bZdnWXM4iPjYuNE+uJ41MLKeTtnA==}
1245
1322
  peerDependencies:
@@ -1263,6 +1340,11 @@ packages:
1263
1340
  react-dom:
1264
1341
  optional: true
1265
1342
 
1343
+ react-stately@3.50.0:
1344
+ resolution: {integrity: sha512-TnckvpDQGU0672wEaLZqdzvhuSeXWjgW6vijMWxiKOxc8CosQUfPGISdcZyfHqjX3XMjEtRxj4w9HumvX4h4mw==}
1345
+ peerDependencies:
1346
+ react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
1347
+
1266
1348
  react-use-measure@2.1.7:
1267
1349
  resolution: {integrity: sha512-KrvcAo13I/60HpwGO5jpW7E9DfusKyLPLvuHlUyP5zqnmAPhNc6qTRjUQrdTADl0lpPpDVU2/Gg51UlOGHXbdg==}
1268
1350
  peerDependencies:
@@ -1384,6 +1466,9 @@ packages:
1384
1466
  troika-worker-utils@0.52.0:
1385
1467
  resolution: {integrity: sha512-W1CpvTHykaPH5brv5VHLfQo9D1OYuo0cSBEUQFFT/nBUzM8iD6Lq2/tgG/f1OelbAS1WtaTPQzE5uM49egnngw==}
1386
1468
 
1469
+ tslib@2.8.1:
1470
+ resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==}
1471
+
1387
1472
  tunnel-rat@0.1.2:
1388
1473
  resolution: {integrity: sha512-lR5VHmkPhzdhrM092lI2nACsLO4QubF0/yoOhzX7c+wIpbN1GjHNzCc91QlpxBi+cnx8vVJ+Ur6vL5cEoQPFpQ==}
1389
1474
 
@@ -1511,6 +1596,14 @@ snapshots:
1511
1596
  react: 19.2.8
1512
1597
  react-dom: 19.2.8(react@19.2.8)
1513
1598
 
1599
+ '@floating-ui/react@0.26.28(react-dom@19.2.8(react@19.2.8))(react@19.2.8)':
1600
+ dependencies:
1601
+ '@floating-ui/react-dom': 2.1.9(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
1602
+ '@floating-ui/utils': 0.2.12
1603
+ react: 19.2.8
1604
+ react-dom: 19.2.8(react@19.2.8)
1605
+ tabbable: 6.5.0
1606
+
1514
1607
  '@floating-ui/react@0.27.20(react-dom@19.2.8(react@19.2.8))(react@19.2.8)':
1515
1608
  dependencies:
1516
1609
  '@floating-ui/react-dom': 2.1.9(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
@@ -1521,6 +1614,33 @@ snapshots:
1521
1614
 
1522
1615
  '@floating-ui/utils@0.2.12': {}
1523
1616
 
1617
+ '@gsap/react@2.1.2(gsap@3.15.0)(react@19.2.8)':
1618
+ dependencies:
1619
+ gsap: 3.15.0
1620
+ react: 19.2.8
1621
+
1622
+ '@headlessui/react@2.2.10(react-dom@19.2.8(react@19.2.8))(react@19.2.8)':
1623
+ dependencies:
1624
+ '@floating-ui/react': 0.26.28(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
1625
+ '@react-aria/focus': 3.22.1(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
1626
+ '@react-aria/interactions': 3.28.1(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
1627
+ '@tanstack/react-virtual': 3.14.13(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
1628
+ react: 19.2.8
1629
+ react-dom: 19.2.8(react@19.2.8)
1630
+ use-sync-external-store: 1.7.0(react@19.2.8)
1631
+
1632
+ '@internationalized/date@3.12.4':
1633
+ dependencies:
1634
+ '@swc/helpers': 0.5.23
1635
+
1636
+ '@internationalized/number@3.6.8':
1637
+ dependencies:
1638
+ '@swc/helpers': 0.5.23
1639
+
1640
+ '@internationalized/string@3.2.10':
1641
+ dependencies:
1642
+ '@swc/helpers': 0.5.23
1643
+
1524
1644
  '@japont/unicode-range@1.0.0': {}
1525
1645
 
1526
1646
  '@jridgewell/gen-mapping@0.3.13':
@@ -1555,6 +1675,21 @@ snapshots:
1555
1675
  dependencies:
1556
1676
  react: 19.2.8
1557
1677
 
1678
+ '@react-aria/focus@3.22.1(react-dom@19.2.8(react@19.2.8))(react@19.2.8)':
1679
+ dependencies:
1680
+ '@swc/helpers': 0.5.23
1681
+ react: 19.2.8
1682
+ react-aria: 3.52.1(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
1683
+ react-dom: 19.2.8(react@19.2.8)
1684
+
1685
+ '@react-aria/interactions@3.28.1(react-dom@19.2.8(react@19.2.8))(react@19.2.8)':
1686
+ dependencies:
1687
+ '@react-types/shared': 3.36.1(react@19.2.8)
1688
+ '@swc/helpers': 0.5.23
1689
+ react: 19.2.8
1690
+ react-aria: 3.52.1(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
1691
+ react-dom: 19.2.8(react@19.2.8)
1692
+
1558
1693
  '@react-spring/animated@9.7.5(react@19.2.8)':
1559
1694
  dependencies:
1560
1695
  '@react-spring/shared': 9.7.5(react@19.2.8)
@@ -1696,6 +1831,10 @@ snapshots:
1696
1831
  three: 0.186.0
1697
1832
  three-stdlib: 2.36.1(three@0.186.0)
1698
1833
 
1834
+ '@react-types/shared@3.36.1(react@19.2.8)':
1835
+ dependencies:
1836
+ react: 19.2.8
1837
+
1699
1838
  '@recast-navigation/core@0.43.1':
1700
1839
  dependencies:
1701
1840
  '@recast-navigation/wasm': 0.43.1
@@ -1765,6 +1904,10 @@ snapshots:
1765
1904
  dependencies:
1766
1905
  react: 19.2.8
1767
1906
 
1907
+ '@swc/helpers@0.5.23':
1908
+ dependencies:
1909
+ tslib: 2.8.1
1910
+
1768
1911
  '@tailwindcss/node@4.3.3':
1769
1912
  dependencies:
1770
1913
  '@jridgewell/remapping': 2.3.5
@@ -1833,6 +1976,14 @@ snapshots:
1833
1976
  tailwindcss: 4.3.3
1834
1977
  vite: 8.3.0(jiti@2.7.0)
1835
1978
 
1979
+ '@tanstack/react-virtual@3.14.13(react-dom@19.2.8(react@19.2.8))(react@19.2.8)':
1980
+ dependencies:
1981
+ '@tanstack/virtual-core': 3.17.11
1982
+ react: 19.2.8
1983
+ react-dom: 19.2.8(react@19.2.8)
1984
+
1985
+ '@tanstack/virtual-core@3.17.11': {}
1986
+
1836
1987
  '@tweenjs/tween.js@23.1.3': {}
1837
1988
 
1838
1989
  '@types/draco3d@1.4.10': {}
@@ -1884,6 +2035,10 @@ snapshots:
1884
2035
 
1885
2036
  acorn@8.18.0: {}
1886
2037
 
2038
+ aria-hidden@1.2.6:
2039
+ dependencies:
2040
+ tslib: 2.8.1
2041
+
1887
2042
  base64-js@1.5.1: {}
1888
2043
 
1889
2044
  bidi-js@1.1.0:
@@ -1903,6 +2058,8 @@ snapshots:
1903
2058
  dependencies:
1904
2059
  three: 0.186.0
1905
2060
 
2061
+ clsx@2.1.1: {}
2062
+
1906
2063
  colorjs.io@0.6.1: {}
1907
2064
 
1908
2065
  commander@7.2.0: {}
@@ -2376,6 +2533,20 @@ snapshots:
2376
2533
  - immer
2377
2534
  - use-sync-external-store
2378
2535
 
2536
+ react-aria@3.52.1(react-dom@19.2.8(react@19.2.8))(react@19.2.8):
2537
+ dependencies:
2538
+ '@internationalized/date': 3.12.4
2539
+ '@internationalized/number': 3.6.8
2540
+ '@internationalized/string': 3.2.10
2541
+ '@react-types/shared': 3.36.1(react@19.2.8)
2542
+ '@swc/helpers': 0.5.23
2543
+ aria-hidden: 1.2.6
2544
+ clsx: 2.1.1
2545
+ react: 19.2.8
2546
+ react-dom: 19.2.8(react@19.2.8)
2547
+ react-stately: 3.50.0(react@19.2.8)
2548
+ use-sync-external-store: 1.7.0(react@19.2.8)
2549
+
2379
2550
  react-composer@5.0.3(react@19.2.8):
2380
2551
  dependencies:
2381
2552
  prop-types: 15.8.1
@@ -2396,6 +2567,16 @@ snapshots:
2396
2567
  optionalDependencies:
2397
2568
  react-dom: 19.2.8(react@19.2.8)
2398
2569
 
2570
+ react-stately@3.50.0(react@19.2.8):
2571
+ dependencies:
2572
+ '@internationalized/date': 3.12.4
2573
+ '@internationalized/number': 3.6.8
2574
+ '@internationalized/string': 3.2.10
2575
+ '@react-types/shared': 3.36.1(react@19.2.8)
2576
+ '@swc/helpers': 0.5.23
2577
+ react: 19.2.8
2578
+ use-sync-external-store: 1.7.0(react@19.2.8)
2579
+
2399
2580
  react-use-measure@2.1.7(react-dom@19.2.8(react@19.2.8))(react@19.2.8):
2400
2581
  dependencies:
2401
2582
  react: 19.2.8
@@ -2513,6 +2694,8 @@ snapshots:
2513
2694
 
2514
2695
  troika-worker-utils@0.52.0: {}
2515
2696
 
2697
+ tslib@2.8.1: {}
2698
+
2516
2699
  tunnel-rat@0.1.2(@types/react@19.3.0)(react@19.2.8):
2517
2700
  dependencies:
2518
2701
  zustand: 4.5.7(@types/react@19.3.0)(react@19.2.8)