@xperimntl/vue-threejs 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md ADDED
@@ -0,0 +1,1210 @@
1
+ # @react-three/fiber
2
+
3
+ ## 1.1.0
4
+
5
+ ### Minor Changes
6
+
7
+ - c7e33c6: Initial publish under @xperimntl scope
8
+
9
+ ## 1.1.1
10
+
11
+ ### Patch Changes
12
+
13
+ - 0433707: Bump TypeScript to 5.9 and align @types/three with three@0.183.
14
+
15
+ ## 1.1.0
16
+
17
+ ### Minor Changes
18
+
19
+ - 46ce1f9: Publish all sub-packages to npm and export templateCompilerOptions for Vite custom element configuration.
20
+
21
+ ## 9.5.0
22
+
23
+ ### Minor Changes
24
+
25
+ - 1050a62bd4bc15e60ab3a65deea08dedfcf24989: Support React 19.2
26
+
27
+ ## 9.4.2
28
+
29
+ ### Patch Changes
30
+
31
+ - 3d445fd158b25eb380cd27bd2e01304016aa23e3: fix: Expo SDK 54 compatibility through workaround
32
+
33
+ ## 9.4.1
34
+
35
+ ### Patch Changes
36
+
37
+ - 4f8cec0d79003a9ef6d1ca1e56de94aec4158714: fix: pass DevTools config through createReconciler to fix React DevTools
38
+
39
+ ## 9.4.0
40
+
41
+ ### Minor Changes
42
+
43
+ - f0976dc14a2d3203af267d0e3524d45a07f3248a: feat: improve applyProps errors, harden pierced props setting
44
+
45
+ ## 9.3.0
46
+
47
+ ### Minor Changes
48
+
49
+ - 7579c2d79ed60e5c93a259637b65c01971f39d82: feat: add flushSync example
50
+ - 26e5d6e8b8b00b817ebb5242432000abe38bfc2c: fix: update flushSync for new reconciler
51
+ - 0281b6bc4fcf041ed801e64f1876f70c214aa117: fix(native): update react-native deep imports for 0.79 compatibility
52
+
53
+ ## 9.2.0
54
+
55
+ ### Minor Changes
56
+
57
+ - 94ece53e17a586465b10ec627cf4799cefa72b3a: Export flushSync
58
+
59
+ ## 9.1.4
60
+
61
+ ### Patch Changes
62
+
63
+ - d491e46087508dff50c48768a99f87bd486b6910: Accept readonly arrays for vector props
64
+
65
+ ## 9.1.3
66
+
67
+ ### Patch Changes
68
+
69
+ - efd28328f5e612b0592be7da316fad990fdf4675: fix(native) fix crash on rerendering GLView with new arch
70
+
71
+ ## 9.1.2
72
+
73
+ ### Patch Changes
74
+
75
+ - 053757f45d2411f2929975add76a4c979713e616: fix: reference dev-only act with computed key for Webpack
76
+
77
+ ## 9.1.1
78
+
79
+ ### Patch Changes
80
+
81
+ - 0deae3fb12b6d62ff083891e388ab09de51330d0: Fix failing builds for production when React.act is unavailable. This fixes issues found in React@19.1.0 and up.
82
+
83
+ ## 9.1.0
84
+
85
+ ### Minor Changes
86
+
87
+ - cbc79507600b81f6a39de9f3f0ecb3aaf811233f: feat: add meshes to loader graph, misc internal fixes
88
+
89
+ ## 9.0.4
90
+
91
+ ### Patch Changes
92
+
93
+ - 28ebfbf3e7f9e69dc62f5481965b7fd6a3e3a038: fix(types): exclude type conflicts in React runtime types
94
+
95
+ ## 9.0.3
96
+
97
+ ### Patch Changes
98
+
99
+ - 01f0f1c8855325aae1c337d5443c846cc46007b0: fix(types): remove recursive references in JSX types
100
+
101
+ ## 9.0.2
102
+
103
+ ### Patch Changes
104
+
105
+ - 14e133278c3cf1550a3b9aeaaadb624a2aae4781: fix(reconciler): prefer to resolve unprefixed instance types
106
+
107
+ ## 9.0.1
108
+
109
+ ### Patch Changes
110
+
111
+ - 5d711d103b8d3833b93c3ab74707b2b6db5d274a: fix: add use-sync-external-store dep
112
+
113
+ ## 9.0.0
114
+
115
+ ### Major Changes
116
+
117
+ - 226d2ec: feat: React 19 support
118
+
119
+ ## 8.18.0
120
+
121
+ ### Minor Changes
122
+
123
+ - 54a3330f: feat: make children optional in Canvas
124
+
125
+ ## 8.17.14
126
+
127
+ ### Patch Changes
128
+
129
+ - eeeed16b: fix: update use-measure
130
+
131
+ ## 8.17.13
132
+
133
+ ### Patch Changes
134
+
135
+ - 0a0f2acd: fix: upstream use-measure
136
+
137
+ ## 8.17.12
138
+
139
+ ### Patch Changes
140
+
141
+ - ff1a16f1: fix: narrow React peer dep range
142
+
143
+ ## 8.17.11
144
+
145
+ ### Patch Changes
146
+
147
+ - 7461bf0c: fix: loosen instanceof checks for CSB issue
148
+
149
+ ## 8.17.10
150
+
151
+ ### Patch Changes
152
+
153
+ - d1a072ac: fix: ThreeEvent should not include initMouseEvent
154
+
155
+ ## 8.17.9
156
+
157
+ ### Patch Changes
158
+
159
+ - f34de655: fix: add orientation handling
160
+
161
+ ## 8.17.8
162
+
163
+ ### Patch Changes
164
+
165
+ - 3c885807: fix(types): fix React typings, fault tolerant Node type
166
+
167
+ ## 8.17.7
168
+
169
+ ### Patch Changes
170
+
171
+ - c20a7d73: fix(native): missing pointerId in pointer events
172
+
173
+ ## 8.17.6
174
+
175
+ ### Patch Changes
176
+
177
+ - 66c3e9fe: fix(native): don't bind events to GLView
178
+
179
+ ## 8.17.5
180
+
181
+ ### Patch Changes
182
+
183
+ - 162dbbdd: fix: npmignore ignored types"
184
+
185
+ ## 8.17.4
186
+
187
+ ### Patch Changes
188
+
189
+ - 43866f4e: fix: rebuild with types
190
+
191
+ ## 8.17.3
192
+
193
+ ### Patch Changes
194
+
195
+ - 8363eb7a: fix: rebuild with types
196
+
197
+ ## 8.17.2
198
+
199
+ ### Patch Changes
200
+
201
+ - 6aa4eb28: fix: rebuild with types
202
+
203
+ ## 8.17.1
204
+
205
+ ### Patch Changes
206
+
207
+ - e5f3f4f9: fix: rebuild with types
208
+
209
+ ## 8.17.0
210
+
211
+ ### Minor Changes
212
+
213
+ - 3c22194d: feat: flushSync, native EventTarget
214
+
215
+ ## 8.16.8
216
+
217
+ ### Patch Changes
218
+
219
+ - 4748b365: fix: update is.equ to compare booleans
220
+
221
+ ## 8.16.7
222
+
223
+ ### Patch Changes
224
+
225
+ - 4d6408c7: fix(types): revert usage of future module JSX
226
+
227
+ ## 8.16.6
228
+
229
+ ### Patch Changes
230
+
231
+ - 03ab82fe: fix(applyProps): null check indeterminate instances
232
+
233
+ ## 8.16.5
234
+
235
+ ### Patch Changes
236
+
237
+ - cb913e01: fix: use fast JSX, future JSX types
238
+
239
+ ## 8.16.4
240
+
241
+ ### Patch Changes
242
+
243
+ - 1270d24c: fix: missing dependency on inject function
244
+
245
+ ## 8.16.3
246
+
247
+ ### Patch Changes
248
+
249
+ - 9c83502c: fix(Canvas): don't override camera frustum props
250
+
251
+ ## 8.16.2
252
+
253
+ ### Patch Changes
254
+
255
+ - e0900489: fix(useLoader): don't dispose of memoized loader
256
+
257
+ ## 8.16.1
258
+
259
+ ### Patch Changes
260
+
261
+ - 503efc2e: fix: prevent invalidate from piling up frames
262
+
263
+ ## 8.16.0
264
+
265
+ ### Minor Changes
266
+
267
+ - 6b0ea6eb: feat: add childadded event dispatch
268
+
269
+ ## 8.15.19
270
+
271
+ ### Patch Changes
272
+
273
+ - 74926b94: fix(types): avoid emitting THREE.XRFrame
274
+
275
+ ## 8.15.18
276
+
277
+ ### Patch Changes
278
+
279
+ - 8c01939a: fix: correctly pass frames in invalidate
280
+
281
+ ## 8.15.17
282
+
283
+ ### Patch Changes
284
+
285
+ - 16c2ee97: fix(types): support @types/three@0.162.0
286
+
287
+ ## 8.15.16
288
+
289
+ ### Patch Changes
290
+
291
+ - 71cd8f96: fix: tonemapping config overwrites userland
292
+ - 0bb12fd1: fix(types): remove usage of THREE.Vector
293
+
294
+ ## 8.15.14
295
+
296
+ ### Patch Changes
297
+
298
+ - 0afc9c12: fix: portal events, update examples
299
+
300
+ ## 8.15.13
301
+
302
+ ### Patch Changes
303
+
304
+ - 0a399f6d: fix(native): use MSAA for antialias on iOS
305
+
306
+ ## 8.15.12
307
+
308
+ ### Patch Changes
309
+
310
+ - 496d6f0d: fix: useLoader and XRFrame type fixes
311
+
312
+ ## 8.15.11
313
+
314
+ ### Patch Changes
315
+
316
+ - 3d9af04d: fix: update import from three examples
317
+
318
+ ## 8.15.10
319
+
320
+ ### Patch Changes
321
+
322
+ - 49158164: fix: don't recursively dispose primitives
323
+
324
+ ## 8.15.9
325
+
326
+ ### Patch Changes
327
+
328
+ - 4cbc5530: fix(native): deopt iOS blob URI path
329
+
330
+ ## 8.15.8
331
+
332
+ ### Patch Changes
333
+
334
+ - 70680832: fix: revert stable sort
335
+
336
+ ## 8.15.7
337
+
338
+ ### Patch Changes
339
+
340
+ - 07e39e2e: fix(types): remove use of Object3D generic
341
+
342
+ ## 8.15.6
343
+
344
+ ### Patch Changes
345
+
346
+ - 7bb2950b: experiment: stable object sort
347
+
348
+ ## 8.15.5
349
+
350
+ ### Patch Changes
351
+
352
+ - 0e44fd8b: fix(types): preserve deprecated JSX annotations
353
+
354
+ ## 8.15.4
355
+
356
+ ### Patch Changes
357
+
358
+ - 634e5db5: fix(native): harden Blob URI check for Android
359
+
360
+ ## 8.15.3
361
+
362
+ ### Patch Changes
363
+
364
+ - beab4344: fix(native): workaround Android content policy for Blob URI
365
+
366
+ ## 8.15.2
367
+
368
+ ### Patch Changes
369
+
370
+ - 086d3932: fix: size check and raycaster camera
371
+
372
+ ## 8.15.1
373
+
374
+ ### Patch Changes
375
+
376
+ - 2d39676d: fix: ignore deprecated types, use correct XRFrame definition
377
+
378
+ ## 8.15.0
379
+
380
+ ### Minor Changes
381
+
382
+ - cca8b6bb: feat: export buildGraph
383
+
384
+ ## 8.14.7
385
+
386
+ ### Patch Changes
387
+
388
+ - 0f63a287: fix(native): restore polyfill conversions, drop networking
389
+
390
+ ## 8.14.6
391
+
392
+ ### Patch Changes
393
+
394
+ - 465fa0fb: fix(native): revert usage of networking stack
395
+
396
+ ## 8.14.5
397
+
398
+ ### Patch Changes
399
+
400
+ - f372a5b5: fix(applyProps): loosen copy identity in dev
401
+
402
+ ## 8.14.4
403
+
404
+ ### Patch Changes
405
+
406
+ - dc7e5739: fix(native): amend BlobManager over globals
407
+
408
+ ## 8.14.3
409
+
410
+ ### Patch Changes
411
+
412
+ - d77b0990: fix(native): drop fsstat for react-native-web
413
+
414
+ ## 8.14.2
415
+
416
+ ### Patch Changes
417
+
418
+ - 33e8baef: fix: native perf, loader types
419
+
420
+ ## 8.14.1
421
+
422
+ ### Patch Changes
423
+
424
+ - c99907bf: fix(native): prefer local uri for fs
425
+
426
+ ## 8.14.0
427
+
428
+ ### Minor Changes
429
+
430
+ - 89e96bf4: feat: react-native-web, native globals fixes
431
+
432
+ ## 8.13.9
433
+
434
+ ### Patch Changes
435
+
436
+ - 44d57b3c: fix(native): TextureLoader should remain consistent with FileLoader
437
+
438
+ ## 8.13.8
439
+
440
+ ### Patch Changes
441
+
442
+ - 5da26d52: fix(useLoader): dispose loaders
443
+
444
+ ## 8.13.7
445
+
446
+ ### Patch Changes
447
+
448
+ - 37b9502a: fix(Canvas): pass scene prop
449
+
450
+ ## 8.13.6
451
+
452
+ ### Patch Changes
453
+
454
+ - 0597495c: fix: harden XR init against Renderer shim
455
+
456
+ ## 8.13.5
457
+
458
+ ### Patch Changes
459
+
460
+ - 7a3b543b: fix: three type regressions
461
+
462
+ ## 8.13.4
463
+
464
+ ### Patch Changes
465
+
466
+ - 824ee0f7: fix: safely diff instances
467
+
468
+ ## 8.13.3
469
+
470
+ ### Patch Changes
471
+
472
+ - ffdb5fc4: revert nested portals, up suspend-react
473
+
474
+ ## 8.13.2
475
+
476
+ ### Patch Changes
477
+
478
+ - bbabdf07: update suspend-react
479
+
480
+ ## 8.13.1
481
+
482
+ ### Patch Changes
483
+
484
+ - c9fe03ba: fix: primitive swap and reactive portals
485
+
486
+ ## 8.13.0
487
+
488
+ ### Minor Changes
489
+
490
+ - ecfc48b7: feat: CanvasProps alias, respect r152 color management
491
+
492
+ ## 8.12.2
493
+
494
+ ### Patch Changes
495
+
496
+ - c5193468: fix: safeguard window.devicePixelRatio
497
+
498
+ ## 8.12.1
499
+
500
+ ### Patch Changes
501
+
502
+ - 571f07ac: fix: safeguard window.devicePixelRatio
503
+
504
+ ## 8.12.0
505
+
506
+ ### Minor Changes
507
+
508
+ - 1928d095: feat: `scene` render prop for custom THREE.Scene
509
+
510
+ ## 8.11.11
511
+
512
+ ### Patch Changes
513
+
514
+ - f03c6ef8: feat: `scene` render prop for custom THREE.Scene
515
+
516
+ ## 8.11.10
517
+
518
+ ### Patch Changes
519
+
520
+ - 12907836: fix onpointerlostcapture which fired before pointerup
521
+
522
+ ## 8.11.9
523
+
524
+ ### Patch Changes
525
+
526
+ - 6b5f572c: fix: treeshake THREE.ColorManagement
527
+
528
+ ## 8.11.8
529
+
530
+ ### Patch Changes
531
+
532
+ - 350cd3f3: fix(Canvas): inline render-effect
533
+
534
+ ## 8.11.7
535
+
536
+ ### Patch Changes
537
+
538
+ - 96af62d5: fix: don't overwrite public cameras
539
+
540
+ ## 8.11.6
541
+
542
+ ### Patch Changes
543
+
544
+ - 7d319c18: Fix is.equ obj:shallow, allow it to test arrays 1 level deep, fix canvas.camera prop being stale
545
+
546
+ ## 8.11.5
547
+
548
+ ### Patch Changes
549
+
550
+ - c658f763: fix: update canvas prop types
551
+
552
+ ## 8.11.4
553
+
554
+ ### Patch Changes
555
+
556
+ - 970aa58b: fix: play nice with offscreencanvas
557
+
558
+ ## 8.11.3
559
+
560
+ ### Patch Changes
561
+
562
+ - 2bce569c: fix: progressively set colormanagement
563
+
564
+ ## 8.11.2
565
+
566
+ ### Patch Changes
567
+
568
+ - 41d655cd: fix: hmr, srgb encode
569
+
570
+ ## 8.11.1
571
+
572
+ ### Patch Changes
573
+
574
+ - 58cadeff: fix: skip circular onUpdate calls
575
+
576
+ ## 8.11.0
577
+
578
+ ### Minor Changes
579
+
580
+ - 2917a47b: events.update, allow raycast w/o user interaction
581
+ - 521bfb07: events.update, allow raycast w/o user interaction
582
+
583
+ ## 8.10.4
584
+
585
+ ### Patch Changes
586
+
587
+ - d9e6316d: fix: transpile class properties
588
+
589
+ ## 8.10.3
590
+
591
+ ### Patch Changes
592
+
593
+ - d06d2879: fix: align useLoader type, public fields from builds
594
+
595
+ ## 8.10.2
596
+
597
+ ### Patch Changes
598
+
599
+ - 564edbbb: fix port inject layers, it should allow root props to overwrite undefined portal props"
600
+
601
+ ## 8.10.1
602
+
603
+ ### Patch Changes
604
+
605
+ - bfa0298f: fix memoized identity
606
+
607
+ ## 8.10.0
608
+
609
+ ### Minor Changes
610
+
611
+ - 24c4dba4: shortcut for shadow type
612
+
613
+ ## 8.9.2
614
+
615
+ ### Patch Changes
616
+
617
+ - 2aeb6500: fix: primitives are incorrectly swapped on key change in maps
618
+
619
+ ## 8.9.1
620
+
621
+ ### Patch Changes
622
+
623
+ - 0cf11797: fix(events): type spread event props
624
+
625
+ ## 8.9.0
626
+
627
+ ### Minor Changes
628
+
629
+ - a458b4dd: fix(loop): export flush methods and types
630
+
631
+ ## 8.8.11
632
+
633
+ ### Patch Changes
634
+
635
+ - 2068f0cc: fix: events pointerlock, useLoader extension types
636
+
637
+ ## 8.8.10
638
+
639
+ ### Patch Changes
640
+
641
+ - 00c24718: fix: invalidate pierced props
642
+
643
+ ## 8.8.9
644
+
645
+ ### Patch Changes
646
+
647
+ - 4254400e: fix(createPortal): use correct JSX type
648
+
649
+ ## 8.8.8
650
+
651
+ ### Patch Changes
652
+
653
+ - fcb183e3: fix: call onUpdate for attached children prop update
654
+
655
+ ## 8.8.7
656
+
657
+ ### Patch Changes
658
+
659
+ - bedb16e7: fix: prefer named functions, for loops in hot paths
660
+
661
+ ## 8.8.6
662
+
663
+ ### Patch Changes
664
+
665
+ - 02a558bb: fix: upgrade deps
666
+
667
+ ## 8.8.5
668
+
669
+ ### Patch Changes
670
+
671
+ - 530a06d6: fix: upgrade deps to work-around CRA
672
+
673
+ ## 8.8.4
674
+
675
+ ### Patch Changes
676
+
677
+ - 2f2dc9f9: chore: upgrade bridge to harden suspense behavior
678
+
679
+ ## 8.8.3
680
+
681
+ ### Patch Changes
682
+
683
+ - 9f571239: fix #2506, events should fall back to rootstate"
684
+
685
+ ## 8.8.2
686
+
687
+ ### Patch Changes
688
+
689
+ - dc389ed6: fix(Canvas): prevent remount on context update
690
+
691
+ ## 8.8.1
692
+
693
+ ### Patch Changes
694
+
695
+ - 370d3ae5: refactor: pull context bridge from its-fine
696
+
697
+ ## 8.8.0
698
+
699
+ ### Minor Changes
700
+
701
+ - 46d8b440: bridge cross-container context
702
+
703
+ ## 8.7.4
704
+
705
+ ### Patch Changes
706
+
707
+ - 259c8895: fix: use self to get global context before window
708
+
709
+ ## 8.7.3
710
+
711
+ ### Patch Changes
712
+
713
+ - eb5a3be4: fix: if there is an eventsource pointerevent will be set to none
714
+
715
+ ## 8.7.2
716
+
717
+ ### Patch Changes
718
+
719
+ - 7f801e60: fix: events in portals carry the wrong raycaster, camera, etc
720
+
721
+ ## 8.7.1
722
+
723
+ ### Patch Changes
724
+
725
+ - 962cc270: fix: allow canvas eventsource to be a ref
726
+
727
+ ## 8.7.0
728
+
729
+ ### Minor Changes
730
+
731
+ - f5db1b78: feat: useInstanceHandle, flushGlobalEffects
732
+
733
+ ## 8.6.2
734
+
735
+ ### Patch Changes
736
+
737
+ - 57c12e9c: fix(types): @react-three/drei declaration files
738
+
739
+ ## 8.6.1
740
+
741
+ ### Patch Changes
742
+
743
+ - 7a0b5670: fix(core): don't append to unmounted containers
744
+
745
+ ## 8.6.0
746
+
747
+ ### Minor Changes
748
+
749
+ - 85c80e70: eventsource and eventprefix on the canvas component
750
+
751
+ ## 8.5.1
752
+
753
+ ### Patch Changes
754
+
755
+ - 87821d9: fix: null-check instance.children on reconstruct
756
+
757
+ ## 8.5.0
758
+
759
+ ### Minor Changes
760
+
761
+ - edc8252: feat: handle primitive children, auto-attach via instanceof
762
+
763
+ ## 8.3.1
764
+
765
+ ### Patch Changes
766
+
767
+ - aaeb2b8: fix(types): accept readonly arrays for vector props
768
+
769
+ ## 8.3.0
770
+
771
+ ### Minor Changes
772
+
773
+ - 9c450ec: feat: improve errors
774
+
775
+ ## 8.2.3
776
+
777
+ ### Patch Changes
778
+
779
+ - b8d2eab: fix: improve useLoader signature, initial size on createRoot
780
+
781
+ ## 8.2.2
782
+
783
+ ### Patch Changes
784
+
785
+ - acd6f04: fix: warn on stray text
786
+
787
+ ## 8.2.1
788
+
789
+ ### Patch Changes
790
+
791
+ - 25e35a1: fix: prefer useLayoutEffect in react-native
792
+
793
+ ## 8.2.0
794
+
795
+ ### Minor Changes
796
+
797
+ - 9770d7d: feat: expose ThreeElements interface for JSX elements
798
+
799
+ ## 8.1.0
800
+
801
+ ### Minor Changes
802
+
803
+ - 8d0f708c: Expose position information in state.size
804
+
805
+ ## 8.0.27
806
+
807
+ ### Patch Changes
808
+
809
+ - 7940995: fix: resume on xrsession end, export internal events
810
+
811
+ ## 8.0.26
812
+
813
+ ### Patch Changes
814
+
815
+ - 7b6df9df: fix: infinite loop updating cam viewport
816
+
817
+ ## 8.0.25
818
+
819
+ ### Patch Changes
820
+
821
+ - b7cd0f42: update viewport on camera changes
822
+
823
+ ## 8.0.24
824
+
825
+ ### Patch Changes
826
+
827
+ - ee8e785: fix: attach timings
828
+
829
+ ## 8.0.23
830
+
831
+ ### Patch Changes
832
+
833
+ - 29d03c64: revert multi attach
834
+
835
+ ## 8.0.22
836
+
837
+ ### Patch Changes
838
+
839
+ - 419e854: fix: always prepare primitives
840
+
841
+ ## 8.0.21
842
+
843
+ ### Patch Changes
844
+
845
+ - 3098b9b: fix: resizing in worker contexts, copy over attachments on reconstruct
846
+
847
+ ## 8.0.20
848
+
849
+ ### Patch Changes
850
+
851
+ - 4c87bce: fix: attach, devtools, and perf fixes
852
+
853
+ ## 8.0.19
854
+
855
+ ### Patch Changes
856
+
857
+ - 360b45a: fix: handle attach on reconstruct
858
+
859
+ ## 8.0.18
860
+
861
+ ### Patch Changes
862
+
863
+ - be567c1: fix: suspense attach and three compat in webpack
864
+
865
+ ## 8.0.17
866
+
867
+ ### Patch Changes
868
+
869
+ - 9e3369e: fix dom resize, improve native tree shaking
870
+
871
+ ## 8.0.16
872
+
873
+ ### Patch Changes
874
+
875
+ - 669c45c: correctly type useLoader results
876
+
877
+ ## 8.0.15
878
+
879
+ ### Patch Changes
880
+
881
+ - c4715d5f: allow invalidate to preempt more than 1 frame
882
+
883
+ ## 8.0.14
884
+
885
+ ### Patch Changes
886
+
887
+ - 5559a119: Add support for recoverable errors
888
+
889
+ ## 8.0.13
890
+
891
+ ### Patch Changes
892
+
893
+ - 9d77d8e2: fix: detach attribute removal
894
+
895
+ ## 8.0.12
896
+
897
+ ### Patch Changes
898
+
899
+ - 3d10413f: fix portal layers
900
+
901
+ ## 8.0.11
902
+
903
+ ### Patch Changes
904
+
905
+ - 5167b1e4: memoized.args can be undefined
906
+
907
+ ## 8.0.10
908
+
909
+ ### Patch Changes
910
+
911
+ - eb321afd: fix: remount bug, allow portals to inject custom size
912
+
913
+ ## 8.0.9
914
+
915
+ ### Patch Changes
916
+
917
+ - 624df949: fix: canvas unmount race condition"
918
+
919
+ ## 8.0.8
920
+
921
+ ### Patch Changes
922
+
923
+ - 952a566: fix: react SSR
924
+
925
+ ## 8.0.7
926
+
927
+ ### Patch Changes
928
+
929
+ - f63806b: fix: react SSR
930
+
931
+ ## 8.0.6
932
+
933
+ ### Patch Changes
934
+
935
+ - d4bafb9: fix re-parenting, useframe not working properly in portals, attach crash
936
+
937
+ ## 8.0.5
938
+
939
+ ### Patch Changes
940
+
941
+ - 227c328: fix pointer for root and portals
942
+
943
+ ## 8.0.4
944
+
945
+ ### Patch Changes
946
+
947
+ - e981a72: fix: mock three color management, loosen peer dep
948
+
949
+ ## 8.0.3
950
+
951
+ ### Patch Changes
952
+
953
+ - 3252aed: setevents needs to spread and be mirrored in portals
954
+
955
+ ## 8.0.2
956
+
957
+ ### Patch Changes
958
+
959
+ - 8035d1f: fix: legacy mode
960
+
961
+ ## 8.0.1
962
+
963
+ ### Patch Changes
964
+
965
+ - 26db195: add legacy flag to turn of three.colormanagement
966
+
967
+ ## 8.0.0
968
+
969
+ ### Major Changes
970
+
971
+ - 385ba9c: v8 major, react-18 compat
972
+ - 04c07b8: v8 major, react-18 compat
973
+
974
+ ### Patch Changes
975
+
976
+ - 347ea79: new beta for library testing
977
+
978
+ ## 8.0.0-beta.0
979
+
980
+ ### Major Changes
981
+
982
+ - 385ba9c: v8 major, react-18 compat
983
+
984
+ ## 8.0.0-beta.0
985
+
986
+ ### Patch Changes
987
+
988
+ - cf6316c: new beta for library testing
989
+
990
+ ## 7.0.25
991
+
992
+ ### Patch Changes
993
+
994
+ - 8698734: Release latest patches
995
+
996
+ ## 7.0.24
997
+
998
+ ### Patch Changes
999
+
1000
+ - 7f46ddf: cleanup captured pointers when released (#1914)
1001
+
1002
+ ## 7.0.23
1003
+
1004
+ ### Patch Changes
1005
+
1006
+ - 30d38b1: remove logs
1007
+
1008
+ ## 7.0.22
1009
+
1010
+ ### Patch Changes
1011
+
1012
+ - 259e1fa: add camera:manual
1013
+
1014
+ ## 7.0.21
1015
+
1016
+ ### Patch Changes
1017
+
1018
+ - 65e4147: up usemeasure, add last event to internals"
1019
+
1020
+ ## 7.0.20
1021
+
1022
+ ### Patch Changes
1023
+
1024
+ - 54cb0fd: update react-use-measure, allow it to use the offsetSize
1025
+
1026
+ ## 7.0.19
1027
+
1028
+ ### Patch Changes
1029
+
1030
+ - 7aa2eab: fix: remove zustand subscribe selector
1031
+
1032
+ ## 7.0.18
1033
+
1034
+ ### Patch Changes
1035
+
1036
+ - 6780f58: fix unmount pointer capture
1037
+
1038
+ ## 7.0.17
1039
+
1040
+ ### Patch Changes
1041
+
1042
+ - 894c550: fix: event count
1043
+
1044
+ ## 7.0.16
1045
+
1046
+ ### Patch Changes
1047
+
1048
+ - c7a4220: patch: applyprops returns the same instance
1049
+
1050
+ ## 7.0.15
1051
+
1052
+ ### Patch Changes
1053
+
1054
+ - c5645e8: fix primitive leftovers on switch
1055
+
1056
+ ## 7.0.14
1057
+
1058
+ ### Patch Changes
1059
+
1060
+ - 05af996: fix: revert the is function
1061
+
1062
+ ## 7.0.13
1063
+
1064
+ ### Patch Changes
1065
+
1066
+ - f256558: fix(core): don't overwrite camera rotation
1067
+ - 51e6fc9: fix(core): safely handle external instances
1068
+
1069
+ ## 7.0.12
1070
+
1071
+ ### Patch Changes
1072
+
1073
+ - 0df6073: fix: missed events
1074
+
1075
+ ## 7.0.11
1076
+
1077
+ ### Patch Changes
1078
+
1079
+ - 62b0a3a: fix: event order of missed pointers
1080
+
1081
+ ## 7.0.10
1082
+
1083
+ ### Patch Changes
1084
+
1085
+ - e019dd4: fixes
1086
+
1087
+ ## 7.0.9
1088
+
1089
+ ### Patch Changes
1090
+
1091
+ - cd266e4: Fix diffProps dashed keys
1092
+
1093
+ ## 7.0.8
1094
+
1095
+ ### Patch Changes
1096
+
1097
+ - 6f68406: Allow getCurrentViewport to receive an array
1098
+
1099
+ ## 7.0.7
1100
+
1101
+ ### Patch Changes
1102
+
1103
+ - 0375896: Simplify useframe, support instanced event cancelation, silence disposal
1104
+
1105
+ ## 7.0.6
1106
+
1107
+ ### Patch Changes
1108
+
1109
+ - fb052ad: Fix babel-env browserslist transpiling into old code"
1110
+
1111
+ ## 7.0.5
1112
+
1113
+ ### Patch Changes
1114
+
1115
+ - c97794a: Add useLoader.clear(Loader, input)
1116
+
1117
+ ## 7.0.4
1118
+
1119
+ ### Patch Changes
1120
+
1121
+ - 974ecfb: Allow elements to define attachFns for specific mount/unmount
1122
+
1123
+ ## 7.0.2
1124
+
1125
+ ### Patch Changes
1126
+
1127
+ - a97aca3: Add controls state field
1128
+ - 4c703d6: fix rttr didn't work with r130
1129
+
1130
+ ## 7.0.0
1131
+
1132
+ ### Major Changes
1133
+
1134
+ - 96ae1ad: fix javascript interpreting negative renderpriority as positive
1135
+
1136
+ This is a major breaking change that will fix an edge-case. It will only affect you if you used negative useFrame indices, for instance
1137
+
1138
+ ```jsx
1139
+ useFrame(..., -1)
1140
+ ```
1141
+
1142
+ Surprisingly this disabled auto-rendering although the documentation says positive numbers only. As of v7 this will not take over the render loop.
1143
+
1144
+ ```jsx
1145
+ function Render() {
1146
+ // Takes over the render-loop, the user has the responsibility to render
1147
+ useFrame(({ gl, scene, camera }) => {
1148
+ gl.render(scene, camera)
1149
+ }, 1)
1150
+
1151
+ function RenderOnTop() {
1152
+ // This will render on top of the previous call
1153
+ useFrame(({ gl, ... }) => {
1154
+ gl.render(...)
1155
+ }, 2)
1156
+
1157
+ function A() {
1158
+ // Will *not* take over the render-loop, negative indices can still be useful for sorting
1159
+ useFrame(() => ..., -1)
1160
+
1161
+ function B() {
1162
+ // B's useFrame will execute *after* A's
1163
+ useFrame(() => ..., -2)
1164
+ ```
1165
+
1166
+ ## 6.2.3
1167
+
1168
+ ### Patch Changes
1169
+
1170
+ - 26bc7eb: typescript changes
1171
+
1172
+ ## 6.2.2
1173
+
1174
+ ### Patch Changes
1175
+
1176
+ - 4f44a2c: use more helpful name with event handling in rttr
1177
+
1178
+ ## 6.2.1
1179
+
1180
+ ### Patch Changes
1181
+
1182
+ - Fix stopPropagation logic
1183
+
1184
+ ## 6.2.0
1185
+
1186
+ ### Minor Changes
1187
+
1188
+ - Allow object3d instances to be attached
1189
+
1190
+ ## 6.1.5
1191
+
1192
+ ### Patch Changes
1193
+
1194
+ - fix(rttr): if children is undefined return an array to map with
1195
+
1196
+ ## 6.1.4
1197
+
1198
+ ### Patch Changes
1199
+
1200
+ - 6faa090: Add shape to types, exclude event functions from event data
1201
+
1202
+ ## 6.1.3
1203
+
1204
+ ### Patch Changes
1205
+
1206
+ - 71e72c0: Fix constructor args with attached children (#1348)
1207
+ - 015fc03: Only set up pointer/wheel events as passive
1208
+ - a160e08: Fix event setPointerCapture and stopPropagation.
1209
+
1210
+ ## 6.1.2
package/README.md ADDED
@@ -0,0 +1,125 @@
1
+ # vue-threejs
2
+
3
+ [![npm](https://img.shields.io/npm/v/@xperimntl/vue-threejs?style=flat&colorA=09090b&colorB=09090b)](https://www.npmjs.com/package/@xperimntl/vue-threejs)
4
+ [![CI](https://img.shields.io/github/actions/workflow/status/chris-xperimntl/vue-threejs/test.yml?branch=master&style=flat&colorA=09090b&colorB=09090b&label=tests)](https://github.com/chris-xperimntl/vue-threejs/actions/workflows/test.yml)
5
+ [![docs](https://img.shields.io/badge/docs-live-09090b?style=flat&colorA=09090b)](https://chris-xperimntl.github.io/vue-threejs/)
6
+ [![license](https://img.shields.io/github/license/chris-xperimntl/vue-threejs?style=flat&colorA=09090b&colorB=09090b)](LICENSE)
7
+
8
+ A Vue 3 renderer for [Three.js](https://threejs.org/), ported from [react-three-fiber](https://github.com/pmndrs/react-three-fiber). Declarative scene authoring with Vue composables, DOM/3D slot composition, and reactive demand rendering.
9
+
10
+ ```bash
11
+ npm install @xperimntl/vue-threejs three vue
12
+ ```
13
+
14
+ ## Quick Start
15
+
16
+ ```vue
17
+ <script setup lang="ts">
18
+ import type { Mesh } from 'three'
19
+ import { Canvas, useFrame, useObjectRef } from '@xperimntl/vue-threejs'
20
+
21
+ const box = useObjectRef<Mesh>()
22
+
23
+ useFrame((_, delta) => {
24
+ if (box.object.value) {
25
+ box.object.value.rotation.x += delta
26
+ box.object.value.rotation.y += delta * 0.5
27
+ }
28
+ })
29
+ </script>
30
+
31
+ <template>
32
+ <Canvas>
33
+ <ambientLight :intensity="0.5" />
34
+ <pointLight :position="[10, 10, 10]" />
35
+ <mesh :ref="box.ref">
36
+ <boxGeometry />
37
+ <meshStandardMaterial color="orange" />
38
+ </mesh>
39
+ </Canvas>
40
+ </template>
41
+ ```
42
+
43
+ ## Features
44
+
45
+ | | |
46
+ | ---------------------- | --------------------------------------------------------------------------------- |
47
+ | **Declarative scenes** | Vue components map directly to Three.js objects |
48
+ | **Fiber-compatible** | `Canvas`, `useFrame`, `useThree`, `useLoader`, `createPortal`, `extend` |
49
+ | **Vue-native** | `useObjectRef`, `useRenderCommit`, `useNextFrame`, `watchInvalidate` |
50
+ | **DOM + 3D** | Canvas `#overlay` and `#error` slots, `provide`/`inject` across boundaries |
51
+ | **Demand rendering** | `frameloop="demand"` + `watchInvalidate` for zero-waste rendering |
52
+ | **Plugin system** | `defineFiberPlugin` for root-scoped extensions (postprocessing, physics, helpers) |
53
+
54
+ ## API
55
+
56
+ <details>
57
+ <summary><strong>Core composables</strong></summary>
58
+
59
+ | Composable | Purpose |
60
+ | ------------------------------------------- | ----------------------------------------------- |
61
+ | `useFrame(cb, priority?)` | Run logic each rendered frame |
62
+ | `useThree(selector?)` | Access renderer state (gl, scene, camera, size) |
63
+ | `useLoader(loader, url, ext?, onProgress?)` | Load and cache assets |
64
+ | `useObjectRef<T>()` | Raw THREE object access with lifecycle tracking |
65
+ | `useRenderCommit()` | Wait for Vue flush + rendered frame |
66
+ | `useNextFrame()` | Promise that resolves after one frame |
67
+ | `useAfterRender(cb)` | Post-render hook with auto cleanup |
68
+ | `watchInvalidate(source, opts?)` | Vue reactivity to demand-mode invalidation |
69
+ | `createPortal(children, container)` | Render into another scene container |
70
+
71
+ </details>
72
+
73
+ <details>
74
+ <summary><strong>Compatibility notes</strong></summary>
75
+
76
+ - **Refs** are proxy-backed. `instanceof` works, `===` identity does not. Use `useObjectRef` for the raw object.
77
+ - **Suspense** keeps previous content visible during re-entrance. Use manual loading patterns for transitions.
78
+ - **Events** are raycaster-based, not DOM-based. Pointer capture semantics differ.
79
+
80
+ See [Known Limitations](https://chris-xperimntl.github.io/vue-threejs/advanced/known-limitations) and [Compatibility Contract](https://chris-xperimntl.github.io/vue-threejs/advanced/compatibility-contract).
81
+
82
+ </details>
83
+
84
+ ## Ecosystem
85
+
86
+ Built-in packages ported from [Poimandres](https://github.com/pmndrs):
87
+
88
+ | Package | Origin | What it provides |
89
+ | -------------- | ------------------------------------------------------------------------------------------------------------ | ---------------------------------------------- |
90
+ | drei | [@react-three/drei](https://github.com/pmndrs/drei) | Controls, loaders, staging, materials, helpers |
91
+ | postprocessing | [@react-three/postprocessing](https://github.com/pmndrs/react-postprocessing) | GPU postprocessing effects |
92
+ | rapier | [@react-three/rapier](https://github.com/pmndrs/react-three-rapier) | Rigid-body physics |
93
+ | test-renderer | [@react-three/test-renderer](https://github.com/pmndrs/react-three-fiber/tree/master/packages/test-renderer) | Node.js testing |
94
+
95
+ ## Documentation
96
+
97
+ [**chris-xperimntl.github.io/vue-threejs**](https://chris-xperimntl.github.io/vue-threejs/)
98
+
99
+ - [Installation](https://chris-xperimntl.github.io/vue-threejs/getting-started/installation)
100
+ - [Interactive Examples](https://chris-xperimntl.github.io/vue-threejs/getting-started/examples)
101
+ - [Vue-Native Patterns](https://chris-xperimntl.github.io/vue-threejs/tutorials/vue-native-patterns)
102
+ - [Architecture](https://chris-xperimntl.github.io/vue-threejs/advanced/architecture)
103
+ - [Support Matrix](https://chris-xperimntl.github.io/vue-threejs/advanced/support-matrix)
104
+
105
+ <details>
106
+ <summary><strong>Develop locally</strong></summary>
107
+
108
+ ```bash
109
+ git clone https://github.com/chris-xperimntl/vue-threejs.git
110
+ cd vue-threejs
111
+ yarn install && yarn build
112
+ ```
113
+
114
+ ```bash
115
+ yarn examples # docs site with demos
116
+ yarn test # test suite
117
+ yarn typecheck # TypeScript checks
118
+ yarn eslint # lint
119
+ ```
120
+
121
+ </details>
122
+
123
+ ## License
124
+
125
+ [MIT](LICENSE). Includes substantial code from [react-three-fiber](https://github.com/pmndrs/react-three-fiber) by [Poimandres](https://github.com/pmndrs), licensed under the same terms. Ecosystem packages ported from [drei](https://github.com/pmndrs/drei), [react-postprocessing](https://github.com/pmndrs/react-postprocessing), and [react-three-rapier](https://github.com/pmndrs/react-three-rapier).
package/TESTING.md ADDED
@@ -0,0 +1,34 @@
1
+ # Testing — Gap-to-Proof Map
2
+
3
+ Internal reference mapping each behavioral claim to the test that proves it.
4
+ This is not part of the public docs.
5
+
6
+ ## Divergence Coverage
7
+
8
+ | Behavior | Test Name | File |
9
+ | ---------------------------------------------- | ----------------------------------------------------------------- | ----------------- |
10
+ | Refs: instanceof works via proxy | "should forward ref three object" | renderer.test.tsx |
11
+ | Refs: identity requires .object | "should handle the object prop reactively" | renderer.test.tsx |
12
+ | Suspense: visibility stays true | "should toggle visibility during Suspense non-destructively" | renderer.test.tsx |
13
+ | Suspense: old content stays during re-entrance | "should handle Suspense lifecycle with async primitives" (Step 3) | renderer.test.tsx |
14
+ | flushSync: synchronous scene update | "should update scene synchronously with flushSync" | renderer.test.tsx |
15
+ | flushSync: nested component flush | "should flush nested component updates synchronously" | renderer.test.tsx |
16
+ | flushSync: no double-run after flush | "should not double-run effects after flushSync" | renderer.test.tsx |
17
+ | flushSync: multi-root flush | "should flush multiple roots" | renderer.test.tsx |
18
+ | flushSync: returns void | "should return void, not Promise" | renderer.test.tsx |
19
+
20
+ ## Vue-Native API Coverage
21
+
22
+ | Behavior | Test Name | File |
23
+ | ---------------------------------------- | ----------------------------------------------------------------- | ----------------- |
24
+ | useObjectRef: direct object access | "should provide direct object access" | renderer.test.tsx |
25
+ | useObjectRef: reconstruction handling | "should handle reconstruction" | renderer.test.tsx |
26
+ | useObjectRef: mounted state tracking | "should track mounted state" | renderer.test.tsx |
27
+ | Canvas: overlay slot renders DOM sibling | "should render overlay slot in DOM sibling of canvas" | renderer.test.tsx |
28
+ | Canvas: no overlay div when slot absent | "should not render overlay div when slot is absent" | renderer.test.tsx |
29
+ | Canvas: error slot with retry | "should render error slot with error and retry props" | renderer.test.tsx |
30
+ | Canvas: default error display | "should show default error display when no error slot provided" | renderer.test.tsx |
31
+ | watchInvalidate: invalidates on change | "should invalidate on reactive source change" | renderer.test.tsx |
32
+ | useAfterRender: callback + cleanup | "useAfterRender should call callback after render and cleanup" | renderer.test.tsx |
33
+ | useNextFrame: resolves after frame | "useNextFrame should resolve after a rendered frame" | renderer.test.tsx |
34
+ | useRenderCommit: waits for flush + frame | "useRenderCommit should wait for Vue flush and scene application" | renderer.test.tsx |
@@ -0,0 +1,2 @@
1
+ export * from "../src/index.js";
2
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieHBlcmltbnRsLXZ1ZS10aHJlZWpzLmNqcy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIn0=
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ // this file might look strange and you might be wondering what it's for
3
+ // it's lets you import your source files by importing this entrypoint
4
+ // as you would import it if it was built with preconstruct build
5
+ // this file is slightly different to some others though
6
+ // it has a require hook which compiles your code with Babel
7
+ // this means that you don't have to set up @babel/register or anything like that
8
+ // but you can still require this module and it'll be compiled
9
+
10
+ // this bit of code imports the require hook and registers it
11
+ let unregister = require("../../../node_modules/@preconstruct/hook").___internalHook(typeof __dirname === 'undefined' ? undefined : __dirname, "../../..", "..");
12
+
13
+ // this re-exports the source file
14
+ module.exports = require("../src/index.ts");
15
+
16
+ unregister();
package/package.json ADDED
@@ -0,0 +1,45 @@
1
+ {
2
+ "name": "@xperimntl/vue-threejs",
3
+ "version": "1.1.0",
4
+ "description": "A Vue.js renderer for Three.js",
5
+ "keywords": [
6
+ "vue",
7
+ "renderer",
8
+ "fiber",
9
+ "three",
10
+ "threejs"
11
+ ],
12
+ "license": "MIT",
13
+ "bugs": {
14
+ "url": "https://github.com/chris-xperimntl/vue-threejs/issues"
15
+ },
16
+ "homepage": "https://github.com/chris-xperimntl/vue-threejs#readme",
17
+ "repository": {
18
+ "type": "git",
19
+ "url": "git+https://github.com/chris-xperimntl/vue-threejs.git"
20
+ },
21
+ "main": "dist/xperimntl-vue-threejs.cjs.js",
22
+ "module": "dist/xperimntl-vue-threejs.esm.js",
23
+ "types": "dist/xperimntl-vue-threejs.cjs.d.ts",
24
+ "sideEffects": false,
25
+ "preconstruct": {
26
+ "entrypoints": [
27
+ "index.ts"
28
+ ]
29
+ },
30
+ "scripts": {
31
+ "prebuild": "node -e \"require('node:fs').copyFileSync('../../README.md','README.md')\""
32
+ },
33
+ "dependencies": {
34
+ "@babel/runtime": "^7.29.2",
35
+ "@types/webxr": "*",
36
+ "@vueuse/core": "^10.0.0",
37
+ "base64-js": "^1.5.1",
38
+ "buffer": "^6.0.3",
39
+ "zustand": "^5.0.12"
40
+ },
41
+ "peerDependencies": {
42
+ "vue": ">=3.3",
43
+ "three": ">=0.156"
44
+ }
45
+ }