@react-three/fiber 9.6.1 → 9.8.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.
Files changed (33) hide show
  1. package/CHANGELOG.md +1241 -1204
  2. package/dist/declarations/react-reconciler/index.d.ts +30 -13
  3. package/dist/declarations/src/core/events.d.ts +94 -94
  4. package/dist/declarations/src/core/hooks.d.ts +53 -53
  5. package/dist/declarations/src/core/index.d.ts +14 -13
  6. package/dist/declarations/src/core/loop.d.ts +31 -31
  7. package/dist/declarations/src/core/promise.d.ts +15 -0
  8. package/dist/declarations/src/core/reconciler.d.ts +54 -50
  9. package/dist/declarations/src/core/renderer.d.ts +91 -89
  10. package/dist/declarations/src/core/store.d.ts +130 -130
  11. package/dist/declarations/src/core/utils.d.ts +265 -262
  12. package/dist/declarations/src/index.d.ts +6 -6
  13. package/dist/declarations/src/native/Canvas.d.ts +13 -13
  14. package/dist/declarations/src/native/events.d.ts +4 -4
  15. package/dist/declarations/src/native.d.ts +6 -6
  16. package/dist/declarations/src/three-types.d.ts +68 -68
  17. package/dist/declarations/src/web/Canvas.d.ts +23 -23
  18. package/dist/declarations/src/web/events.d.ts +4 -4
  19. package/dist/events-803f4abc.esm.js +17563 -0
  20. package/dist/{events-583399dd.cjs.prod.js → events-a79ef12b.cjs.prod.js} +3558 -2807
  21. package/dist/{events-f19bcc32.cjs.dev.js → events-ce5e34e8.cjs.dev.js} +7985 -6652
  22. package/dist/react-three-fiber.cjs.dev.js +61 -43
  23. package/dist/react-three-fiber.cjs.prod.js +61 -43
  24. package/dist/react-three-fiber.esm.js +63 -45
  25. package/native/dist/react-three-fiber-native.cjs.dev.js +49 -43
  26. package/native/dist/react-three-fiber-native.cjs.prod.js +49 -43
  27. package/native/dist/react-three-fiber-native.esm.js +50 -44
  28. package/native/package.json +5 -5
  29. package/package.json +6 -6
  30. package/react-reconciler/index.d.ts +30 -13
  31. package/react-reconciler/index.js +79 -77
  32. package/readme.md +253 -253
  33. package/dist/events-b389eeca.esm.js +0 -16231
package/CHANGELOG.md CHANGED
@@ -1,1204 +1,1241 @@
1
- # @react-three/fiber
2
-
3
- ## 9.6.1
4
-
5
- ### Patch Changes
6
-
7
- - b645741874486417727ea75a0704d48e9f21d623: fix: Seamlessly transfer interactivity state when swapping instances
8
-
9
- ## 9.6.0
10
-
11
- ### Minor Changes
12
-
13
- - 26e4716412b11a189dd9ac4b3033d0e504f1d7df: Fix uniforms refs so they remain stable for ShaderMaterial
14
-
15
- ## 9.5.0
16
-
17
- ### Minor Changes
18
-
19
- - 1050a62bd4bc15e60ab3a65deea08dedfcf24989: Support React 19.2
20
-
21
- ## 9.4.2
22
-
23
- ### Patch Changes
24
-
25
- - 3d445fd158b25eb380cd27bd2e01304016aa23e3: fix: Expo SDK 54 compatibility through workaround
26
-
27
- ## 9.4.1
28
-
29
- ### Patch Changes
30
-
31
- - 4f8cec0d79003a9ef6d1ca1e56de94aec4158714: fix: pass DevTools config through createReconciler to fix React DevTools
32
-
33
- ## 9.4.0
34
-
35
- ### Minor Changes
36
-
37
- - f0976dc14a2d3203af267d0e3524d45a07f3248a: feat: improve applyProps errors, harden pierced props setting
38
-
39
- ## 9.3.0
40
-
41
- ### Minor Changes
42
-
43
- - 7579c2d79ed60e5c93a259637b65c01971f39d82: feat: add flushSync example
44
- - 26e5d6e8b8b00b817ebb5242432000abe38bfc2c: fix: update flushSync for new reconciler
45
- - 0281b6bc4fcf041ed801e64f1876f70c214aa117: fix(native): update react-native deep imports for 0.79 compatibility
46
-
47
- ## 9.2.0
48
-
49
- ### Minor Changes
50
-
51
- - 94ece53e17a586465b10ec627cf4799cefa72b3a: Export flushSync
52
-
53
- ## 9.1.4
54
-
55
- ### Patch Changes
56
-
57
- - d491e46087508dff50c48768a99f87bd486b6910: Accept readonly arrays for vector props
58
-
59
- ## 9.1.3
60
-
61
- ### Patch Changes
62
-
63
- - efd28328f5e612b0592be7da316fad990fdf4675: fix(native) fix crash on rerendering GLView with new arch
64
-
65
- ## 9.1.2
66
-
67
- ### Patch Changes
68
-
69
- - 053757f45d2411f2929975add76a4c979713e616: fix: reference dev-only act with computed key for Webpack
70
-
71
- ## 9.1.1
72
-
73
- ### Patch Changes
74
-
75
- - 0deae3fb12b6d62ff083891e388ab09de51330d0: Fix failing builds for production when React.act is unavailable. This fixes issues found in React@19.1.0 and up.
76
-
77
- ## 9.1.0
78
-
79
- ### Minor Changes
80
-
81
- - cbc79507600b81f6a39de9f3f0ecb3aaf811233f: feat: add meshes to loader graph, misc internal fixes
82
-
83
- ## 9.0.4
84
-
85
- ### Patch Changes
86
-
87
- - 28ebfbf3e7f9e69dc62f5481965b7fd6a3e3a038: fix(types): exclude type conflicts in React runtime types
88
-
89
- ## 9.0.3
90
-
91
- ### Patch Changes
92
-
93
- - 01f0f1c8855325aae1c337d5443c846cc46007b0: fix(types): remove recursive references in JSX types
94
-
95
- ## 9.0.2
96
-
97
- ### Patch Changes
98
-
99
- - 14e133278c3cf1550a3b9aeaaadb624a2aae4781: fix(reconciler): prefer to resolve unprefixed instance types
100
-
101
- ## 9.0.1
102
-
103
- ### Patch Changes
104
-
105
- - 5d711d103b8d3833b93c3ab74707b2b6db5d274a: fix: add use-sync-external-store dep
106
-
107
- ## 9.0.0
108
-
109
- ### Major Changes
110
-
111
- - 226d2ec: feat: React 19 support
112
-
113
- ## 8.18.0
114
-
115
- ### Minor Changes
116
-
117
- - 54a3330f: feat: make children optional in Canvas
118
-
119
- ## 8.17.14
120
-
121
- ### Patch Changes
122
-
123
- - eeeed16b: fix: update use-measure
124
-
125
- ## 8.17.13
126
-
127
- ### Patch Changes
128
-
129
- - 0a0f2acd: fix: upstream use-measure
130
-
131
- ## 8.17.12
132
-
133
- ### Patch Changes
134
-
135
- - ff1a16f1: fix: narrow React peer dep range
136
-
137
- ## 8.17.11
138
-
139
- ### Patch Changes
140
-
141
- - 7461bf0c: fix: loosen instanceof checks for CSB issue
142
-
143
- ## 8.17.10
144
-
145
- ### Patch Changes
146
-
147
- - d1a072ac: fix: ThreeEvent should not include initMouseEvent
148
-
149
- ## 8.17.9
150
-
151
- ### Patch Changes
152
-
153
- - f34de655: fix: add orientation handling
154
-
155
- ## 8.17.8
156
-
157
- ### Patch Changes
158
-
159
- - 3c885807: fix(types): fix React typings, fault tolerant Node type
160
-
161
- ## 8.17.7
162
-
163
- ### Patch Changes
164
-
165
- - c20a7d73: fix(native): missing pointerId in pointer events
166
-
167
- ## 8.17.6
168
-
169
- ### Patch Changes
170
-
171
- - 66c3e9fe: fix(native): don't bind events to GLView
172
-
173
- ## 8.17.5
174
-
175
- ### Patch Changes
176
-
177
- - 162dbbdd: fix: npmignore ignored types"
178
-
179
- ## 8.17.4
180
-
181
- ### Patch Changes
182
-
183
- - 43866f4e: fix: rebuild with types
184
-
185
- ## 8.17.3
186
-
187
- ### Patch Changes
188
-
189
- - 8363eb7a: fix: rebuild with types
190
-
191
- ## 8.17.2
192
-
193
- ### Patch Changes
194
-
195
- - 6aa4eb28: fix: rebuild with types
196
-
197
- ## 8.17.1
198
-
199
- ### Patch Changes
200
-
201
- - e5f3f4f9: fix: rebuild with types
202
-
203
- ## 8.17.0
204
-
205
- ### Minor Changes
206
-
207
- - 3c22194d: feat: flushSync, native EventTarget
208
-
209
- ## 8.16.8
210
-
211
- ### Patch Changes
212
-
213
- - 4748b365: fix: update is.equ to compare booleans
214
-
215
- ## 8.16.7
216
-
217
- ### Patch Changes
218
-
219
- - 4d6408c7: fix(types): revert usage of future module JSX
220
-
221
- ## 8.16.6
222
-
223
- ### Patch Changes
224
-
225
- - 03ab82fe: fix(applyProps): null check indeterminate instances
226
-
227
- ## 8.16.5
228
-
229
- ### Patch Changes
230
-
231
- - cb913e01: fix: use fast JSX, future JSX types
232
-
233
- ## 8.16.4
234
-
235
- ### Patch Changes
236
-
237
- - 1270d24c: fix: missing dependency on inject function
238
-
239
- ## 8.16.3
240
-
241
- ### Patch Changes
242
-
243
- - 9c83502c: fix(Canvas): don't override camera frustum props
244
-
245
- ## 8.16.2
246
-
247
- ### Patch Changes
248
-
249
- - e0900489: fix(useLoader): don't dispose of memoized loader
250
-
251
- ## 8.16.1
252
-
253
- ### Patch Changes
254
-
255
- - 503efc2e: fix: prevent invalidate from piling up frames
256
-
257
- ## 8.16.0
258
-
259
- ### Minor Changes
260
-
261
- - 6b0ea6eb: feat: add childadded event dispatch
262
-
263
- ## 8.15.19
264
-
265
- ### Patch Changes
266
-
267
- - 74926b94: fix(types): avoid emitting THREE.XRFrame
268
-
269
- ## 8.15.18
270
-
271
- ### Patch Changes
272
-
273
- - 8c01939a: fix: correctly pass frames in invalidate
274
-
275
- ## 8.15.17
276
-
277
- ### Patch Changes
278
-
279
- - 16c2ee97: fix(types): support @types/three@0.162.0
280
-
281
- ## 8.15.16
282
-
283
- ### Patch Changes
284
-
285
- - 71cd8f96: fix: tonemapping config overwrites userland
286
- - 0bb12fd1: fix(types): remove usage of THREE.Vector
287
-
288
- ## 8.15.14
289
-
290
- ### Patch Changes
291
-
292
- - 0afc9c12: fix: portal events, update examples
293
-
294
- ## 8.15.13
295
-
296
- ### Patch Changes
297
-
298
- - 0a399f6d: fix(native): use MSAA for antialias on iOS
299
-
300
- ## 8.15.12
301
-
302
- ### Patch Changes
303
-
304
- - 496d6f0d: fix: useLoader and XRFrame type fixes
305
-
306
- ## 8.15.11
307
-
308
- ### Patch Changes
309
-
310
- - 3d9af04d: fix: update import from three examples
311
-
312
- ## 8.15.10
313
-
314
- ### Patch Changes
315
-
316
- - 49158164: fix: don't recursively dispose primitives
317
-
318
- ## 8.15.9
319
-
320
- ### Patch Changes
321
-
322
- - 4cbc5530: fix(native): deopt iOS blob URI path
323
-
324
- ## 8.15.8
325
-
326
- ### Patch Changes
327
-
328
- - 70680832: fix: revert stable sort
329
-
330
- ## 8.15.7
331
-
332
- ### Patch Changes
333
-
334
- - 07e39e2e: fix(types): remove use of Object3D generic
335
-
336
- ## 8.15.6
337
-
338
- ### Patch Changes
339
-
340
- - 7bb2950b: experiment: stable object sort
341
-
342
- ## 8.15.5
343
-
344
- ### Patch Changes
345
-
346
- - 0e44fd8b: fix(types): preserve deprecated JSX annotations
347
-
348
- ## 8.15.4
349
-
350
- ### Patch Changes
351
-
352
- - 634e5db5: fix(native): harden Blob URI check for Android
353
-
354
- ## 8.15.3
355
-
356
- ### Patch Changes
357
-
358
- - beab4344: fix(native): workaround Android content policy for Blob URI
359
-
360
- ## 8.15.2
361
-
362
- ### Patch Changes
363
-
364
- - 086d3932: fix: size check and raycaster camera
365
-
366
- ## 8.15.1
367
-
368
- ### Patch Changes
369
-
370
- - 2d39676d: fix: ignore deprecated types, use correct XRFrame definition
371
-
372
- ## 8.15.0
373
-
374
- ### Minor Changes
375
-
376
- - cca8b6bb: feat: export buildGraph
377
-
378
- ## 8.14.7
379
-
380
- ### Patch Changes
381
-
382
- - 0f63a287: fix(native): restore polyfill conversions, drop networking
383
-
384
- ## 8.14.6
385
-
386
- ### Patch Changes
387
-
388
- - 465fa0fb: fix(native): revert usage of networking stack
389
-
390
- ## 8.14.5
391
-
392
- ### Patch Changes
393
-
394
- - f372a5b5: fix(applyProps): loosen copy identity in dev
395
-
396
- ## 8.14.4
397
-
398
- ### Patch Changes
399
-
400
- - dc7e5739: fix(native): amend BlobManager over globals
401
-
402
- ## 8.14.3
403
-
404
- ### Patch Changes
405
-
406
- - d77b0990: fix(native): drop fsstat for react-native-web
407
-
408
- ## 8.14.2
409
-
410
- ### Patch Changes
411
-
412
- - 33e8baef: fix: native perf, loader types
413
-
414
- ## 8.14.1
415
-
416
- ### Patch Changes
417
-
418
- - c99907bf: fix(native): prefer local uri for fs
419
-
420
- ## 8.14.0
421
-
422
- ### Minor Changes
423
-
424
- - 89e96bf4: feat: react-native-web, native globals fixes
425
-
426
- ## 8.13.9
427
-
428
- ### Patch Changes
429
-
430
- - 44d57b3c: fix(native): TextureLoader should remain consistent with FileLoader
431
-
432
- ## 8.13.8
433
-
434
- ### Patch Changes
435
-
436
- - 5da26d52: fix(useLoader): dispose loaders
437
-
438
- ## 8.13.7
439
-
440
- ### Patch Changes
441
-
442
- - 37b9502a: fix(Canvas): pass scene prop
443
-
444
- ## 8.13.6
445
-
446
- ### Patch Changes
447
-
448
- - 0597495c: fix: harden XR init against Renderer shim
449
-
450
- ## 8.13.5
451
-
452
- ### Patch Changes
453
-
454
- - 7a3b543b: fix: three type regressions
455
-
456
- ## 8.13.4
457
-
458
- ### Patch Changes
459
-
460
- - 824ee0f7: fix: safely diff instances
461
-
462
- ## 8.13.3
463
-
464
- ### Patch Changes
465
-
466
- - ffdb5fc4: revert nested portals, up suspend-react
467
-
468
- ## 8.13.2
469
-
470
- ### Patch Changes
471
-
472
- - bbabdf07: update suspend-react
473
-
474
- ## 8.13.1
475
-
476
- ### Patch Changes
477
-
478
- - c9fe03ba: fix: primitive swap and reactive portals
479
-
480
- ## 8.13.0
481
-
482
- ### Minor Changes
483
-
484
- - ecfc48b7: feat: CanvasProps alias, respect r152 color management
485
-
486
- ## 8.12.2
487
-
488
- ### Patch Changes
489
-
490
- - c5193468: fix: safeguard window.devicePixelRatio
491
-
492
- ## 8.12.1
493
-
494
- ### Patch Changes
495
-
496
- - 571f07ac: fix: safeguard window.devicePixelRatio
497
-
498
- ## 8.12.0
499
-
500
- ### Minor Changes
501
-
502
- - 1928d095: feat: `scene` render prop for custom THREE.Scene
503
-
504
- ## 8.11.11
505
-
506
- ### Patch Changes
507
-
508
- - f03c6ef8: feat: `scene` render prop for custom THREE.Scene
509
-
510
- ## 8.11.10
511
-
512
- ### Patch Changes
513
-
514
- - 12907836: fix onpointerlostcapture which fired before pointerup
515
-
516
- ## 8.11.9
517
-
518
- ### Patch Changes
519
-
520
- - 6b5f572c: fix: treeshake THREE.ColorManagement
521
-
522
- ## 8.11.8
523
-
524
- ### Patch Changes
525
-
526
- - 350cd3f3: fix(Canvas): inline render-effect
527
-
528
- ## 8.11.7
529
-
530
- ### Patch Changes
531
-
532
- - 96af62d5: fix: don't overwrite public cameras
533
-
534
- ## 8.11.6
535
-
536
- ### Patch Changes
537
-
538
- - 7d319c18: Fix is.equ obj:shallow, allow it to test arrays 1 level deep, fix canvas.camera prop being stale
539
-
540
- ## 8.11.5
541
-
542
- ### Patch Changes
543
-
544
- - c658f763: fix: update canvas prop types
545
-
546
- ## 8.11.4
547
-
548
- ### Patch Changes
549
-
550
- - 970aa58b: fix: play nice with offscreencanvas
551
-
552
- ## 8.11.3
553
-
554
- ### Patch Changes
555
-
556
- - 2bce569c: fix: progressively set colormanagement
557
-
558
- ## 8.11.2
559
-
560
- ### Patch Changes
561
-
562
- - 41d655cd: fix: hmr, srgb encode
563
-
564
- ## 8.11.1
565
-
566
- ### Patch Changes
567
-
568
- - 58cadeff: fix: skip circular onUpdate calls
569
-
570
- ## 8.11.0
571
-
572
- ### Minor Changes
573
-
574
- - 2917a47b: events.update, allow raycast w/o user interaction
575
- - 521bfb07: events.update, allow raycast w/o user interaction
576
-
577
- ## 8.10.4
578
-
579
- ### Patch Changes
580
-
581
- - d9e6316d: fix: transpile class properties
582
-
583
- ## 8.10.3
584
-
585
- ### Patch Changes
586
-
587
- - d06d2879: fix: align useLoader type, public fields from builds
588
-
589
- ## 8.10.2
590
-
591
- ### Patch Changes
592
-
593
- - 564edbbb: fix port inject layers, it should allow root props to overwrite undefined portal props"
594
-
595
- ## 8.10.1
596
-
597
- ### Patch Changes
598
-
599
- - bfa0298f: fix memoized identity
600
-
601
- ## 8.10.0
602
-
603
- ### Minor Changes
604
-
605
- - 24c4dba4: shortcut for shadow type
606
-
607
- ## 8.9.2
608
-
609
- ### Patch Changes
610
-
611
- - 2aeb6500: fix: primitives are incorrectly swapped on key change in maps
612
-
613
- ## 8.9.1
614
-
615
- ### Patch Changes
616
-
617
- - 0cf11797: fix(events): type spread event props
618
-
619
- ## 8.9.0
620
-
621
- ### Minor Changes
622
-
623
- - a458b4dd: fix(loop): export flush methods and types
624
-
625
- ## 8.8.11
626
-
627
- ### Patch Changes
628
-
629
- - 2068f0cc: fix: events pointerlock, useLoader extension types
630
-
631
- ## 8.8.10
632
-
633
- ### Patch Changes
634
-
635
- - 00c24718: fix: invalidate pierced props
636
-
637
- ## 8.8.9
638
-
639
- ### Patch Changes
640
-
641
- - 4254400e: fix(createPortal): use correct JSX type
642
-
643
- ## 8.8.8
644
-
645
- ### Patch Changes
646
-
647
- - fcb183e3: fix: call onUpdate for attached children prop update
648
-
649
- ## 8.8.7
650
-
651
- ### Patch Changes
652
-
653
- - bedb16e7: fix: prefer named functions, for loops in hot paths
654
-
655
- ## 8.8.6
656
-
657
- ### Patch Changes
658
-
659
- - 02a558bb: fix: upgrade deps
660
-
661
- ## 8.8.5
662
-
663
- ### Patch Changes
664
-
665
- - 530a06d6: fix: upgrade deps to work-around CRA
666
-
667
- ## 8.8.4
668
-
669
- ### Patch Changes
670
-
671
- - 2f2dc9f9: chore: upgrade bridge to harden suspense behavior
672
-
673
- ## 8.8.3
674
-
675
- ### Patch Changes
676
-
677
- - 9f571239: fix #2506, events should fall back to rootstate"
678
-
679
- ## 8.8.2
680
-
681
- ### Patch Changes
682
-
683
- - dc389ed6: fix(Canvas): prevent remount on context update
684
-
685
- ## 8.8.1
686
-
687
- ### Patch Changes
688
-
689
- - 370d3ae5: refactor: pull context bridge from its-fine
690
-
691
- ## 8.8.0
692
-
693
- ### Minor Changes
694
-
695
- - 46d8b440: bridge cross-container context
696
-
697
- ## 8.7.4
698
-
699
- ### Patch Changes
700
-
701
- - 259c8895: fix: use self to get global context before window
702
-
703
- ## 8.7.3
704
-
705
- ### Patch Changes
706
-
707
- - eb5a3be4: fix: if there is an eventsource pointerevent will be set to none
708
-
709
- ## 8.7.2
710
-
711
- ### Patch Changes
712
-
713
- - 7f801e60: fix: events in portals carry the wrong raycaster, camera, etc
714
-
715
- ## 8.7.1
716
-
717
- ### Patch Changes
718
-
719
- - 962cc270: fix: allow canvas eventsource to be a ref
720
-
721
- ## 8.7.0
722
-
723
- ### Minor Changes
724
-
725
- - f5db1b78: feat: useInstanceHandle, flushGlobalEffects
726
-
727
- ## 8.6.2
728
-
729
- ### Patch Changes
730
-
731
- - 57c12e9c: fix(types): @react-three/drei declaration files
732
-
733
- ## 8.6.1
734
-
735
- ### Patch Changes
736
-
737
- - 7a0b5670: fix(core): don't append to unmounted containers
738
-
739
- ## 8.6.0
740
-
741
- ### Minor Changes
742
-
743
- - 85c80e70: eventsource and eventprefix on the canvas component
744
-
745
- ## 8.5.1
746
-
747
- ### Patch Changes
748
-
749
- - 87821d9: fix: null-check instance.children on reconstruct
750
-
751
- ## 8.5.0
752
-
753
- ### Minor Changes
754
-
755
- - edc8252: feat: handle primitive children, auto-attach via instanceof
756
-
757
- ## 8.3.1
758
-
759
- ### Patch Changes
760
-
761
- - aaeb2b8: fix(types): accept readonly arrays for vector props
762
-
763
- ## 8.3.0
764
-
765
- ### Minor Changes
766
-
767
- - 9c450ec: feat: improve errors
768
-
769
- ## 8.2.3
770
-
771
- ### Patch Changes
772
-
773
- - b8d2eab: fix: improve useLoader signature, initial size on createRoot
774
-
775
- ## 8.2.2
776
-
777
- ### Patch Changes
778
-
779
- - acd6f04: fix: warn on stray text
780
-
781
- ## 8.2.1
782
-
783
- ### Patch Changes
784
-
785
- - 25e35a1: fix: prefer useLayoutEffect in react-native
786
-
787
- ## 8.2.0
788
-
789
- ### Minor Changes
790
-
791
- - 9770d7d: feat: expose ThreeElements interface for JSX elements
792
-
793
- ## 8.1.0
794
-
795
- ### Minor Changes
796
-
797
- - 8d0f708c: Expose position information in state.size
798
-
799
- ## 8.0.27
800
-
801
- ### Patch Changes
802
-
803
- - 7940995: fix: resume on xrsession end, export internal events
804
-
805
- ## 8.0.26
806
-
807
- ### Patch Changes
808
-
809
- - 7b6df9df: fix: infinite loop updating cam viewport
810
-
811
- ## 8.0.25
812
-
813
- ### Patch Changes
814
-
815
- - b7cd0f42: update viewport on camera changes
816
-
817
- ## 8.0.24
818
-
819
- ### Patch Changes
820
-
821
- - ee8e785: fix: attach timings
822
-
823
- ## 8.0.23
824
-
825
- ### Patch Changes
826
-
827
- - 29d03c64: revert multi attach
828
-
829
- ## 8.0.22
830
-
831
- ### Patch Changes
832
-
833
- - 419e854: fix: always prepare primitives
834
-
835
- ## 8.0.21
836
-
837
- ### Patch Changes
838
-
839
- - 3098b9b: fix: resizing in worker contexts, copy over attachments on reconstruct
840
-
841
- ## 8.0.20
842
-
843
- ### Patch Changes
844
-
845
- - 4c87bce: fix: attach, devtools, and perf fixes
846
-
847
- ## 8.0.19
848
-
849
- ### Patch Changes
850
-
851
- - 360b45a: fix: handle attach on reconstruct
852
-
853
- ## 8.0.18
854
-
855
- ### Patch Changes
856
-
857
- - be567c1: fix: suspense attach and three compat in webpack
858
-
859
- ## 8.0.17
860
-
861
- ### Patch Changes
862
-
863
- - 9e3369e: fix dom resize, improve native tree shaking
864
-
865
- ## 8.0.16
866
-
867
- ### Patch Changes
868
-
869
- - 669c45c: correctly type useLoader results
870
-
871
- ## 8.0.15
872
-
873
- ### Patch Changes
874
-
875
- - c4715d5f: allow invalidate to preempt more than 1 frame
876
-
877
- ## 8.0.14
878
-
879
- ### Patch Changes
880
-
881
- - 5559a119: Add support for recoverable errors
882
-
883
- ## 8.0.13
884
-
885
- ### Patch Changes
886
-
887
- - 9d77d8e2: fix: detach attribute removal
888
-
889
- ## 8.0.12
890
-
891
- ### Patch Changes
892
-
893
- - 3d10413f: fix portal layers
894
-
895
- ## 8.0.11
896
-
897
- ### Patch Changes
898
-
899
- - 5167b1e4: memoized.args can be undefined
900
-
901
- ## 8.0.10
902
-
903
- ### Patch Changes
904
-
905
- - eb321afd: fix: remount bug, allow portals to inject custom size
906
-
907
- ## 8.0.9
908
-
909
- ### Patch Changes
910
-
911
- - 624df949: fix: canvas unmount race condition"
912
-
913
- ## 8.0.8
914
-
915
- ### Patch Changes
916
-
917
- - 952a566: fix: react SSR
918
-
919
- ## 8.0.7
920
-
921
- ### Patch Changes
922
-
923
- - f63806b: fix: react SSR
924
-
925
- ## 8.0.6
926
-
927
- ### Patch Changes
928
-
929
- - d4bafb9: fix re-parenting, useframe not working properly in portals, attach crash
930
-
931
- ## 8.0.5
932
-
933
- ### Patch Changes
934
-
935
- - 227c328: fix pointer for root and portals
936
-
937
- ## 8.0.4
938
-
939
- ### Patch Changes
940
-
941
- - e981a72: fix: mock three color management, loosen peer dep
942
-
943
- ## 8.0.3
944
-
945
- ### Patch Changes
946
-
947
- - 3252aed: setevents needs to spread and be mirrored in portals
948
-
949
- ## 8.0.2
950
-
951
- ### Patch Changes
952
-
953
- - 8035d1f: fix: legacy mode
954
-
955
- ## 8.0.1
956
-
957
- ### Patch Changes
958
-
959
- - 26db195: add legacy flag to turn of three.colormanagement
960
-
961
- ## 8.0.0
962
-
963
- ### Major Changes
964
-
965
- - 385ba9c: v8 major, react-18 compat
966
- - 04c07b8: v8 major, react-18 compat
967
-
968
- ### Patch Changes
969
-
970
- - 347ea79: new beta for library testing
971
-
972
- ## 8.0.0-beta.0
973
-
974
- ### Major Changes
975
-
976
- - 385ba9c: v8 major, react-18 compat
977
-
978
- ## 8.0.0-beta.0
979
-
980
- ### Patch Changes
981
-
982
- - cf6316c: new beta for library testing
983
-
984
- ## 7.0.25
985
-
986
- ### Patch Changes
987
-
988
- - 8698734: Release latest patches
989
-
990
- ## 7.0.24
991
-
992
- ### Patch Changes
993
-
994
- - 7f46ddf: cleanup captured pointers when released (#1914)
995
-
996
- ## 7.0.23
997
-
998
- ### Patch Changes
999
-
1000
- - 30d38b1: remove logs
1001
-
1002
- ## 7.0.22
1003
-
1004
- ### Patch Changes
1005
-
1006
- - 259e1fa: add camera:manual
1007
-
1008
- ## 7.0.21
1009
-
1010
- ### Patch Changes
1011
-
1012
- - 65e4147: up usemeasure, add last event to internals"
1013
-
1014
- ## 7.0.20
1015
-
1016
- ### Patch Changes
1017
-
1018
- - 54cb0fd: update react-use-measure, allow it to use the offsetSize
1019
-
1020
- ## 7.0.19
1021
-
1022
- ### Patch Changes
1023
-
1024
- - 7aa2eab: fix: remove zustand subscribe selector
1025
-
1026
- ## 7.0.18
1027
-
1028
- ### Patch Changes
1029
-
1030
- - 6780f58: fix unmount pointer capture
1031
-
1032
- ## 7.0.17
1033
-
1034
- ### Patch Changes
1035
-
1036
- - 894c550: fix: event count
1037
-
1038
- ## 7.0.16
1039
-
1040
- ### Patch Changes
1041
-
1042
- - c7a4220: patch: applyprops returns the same instance
1043
-
1044
- ## 7.0.15
1045
-
1046
- ### Patch Changes
1047
-
1048
- - c5645e8: fix primitive leftovers on switch
1049
-
1050
- ## 7.0.14
1051
-
1052
- ### Patch Changes
1053
-
1054
- - 05af996: fix: revert the is function
1055
-
1056
- ## 7.0.13
1057
-
1058
- ### Patch Changes
1059
-
1060
- - f256558: fix(core): don't overwrite camera rotation
1061
- - 51e6fc9: fix(core): safely handle external instances
1062
-
1063
- ## 7.0.12
1064
-
1065
- ### Patch Changes
1066
-
1067
- - 0df6073: fix: missed events
1068
-
1069
- ## 7.0.11
1070
-
1071
- ### Patch Changes
1072
-
1073
- - 62b0a3a: fix: event order of missed pointers
1074
-
1075
- ## 7.0.10
1076
-
1077
- ### Patch Changes
1078
-
1079
- - e019dd4: fixes
1080
-
1081
- ## 7.0.9
1082
-
1083
- ### Patch Changes
1084
-
1085
- - cd266e4: Fix diffProps dashed keys
1086
-
1087
- ## 7.0.8
1088
-
1089
- ### Patch Changes
1090
-
1091
- - 6f68406: Allow getCurrentViewport to receive an array
1092
-
1093
- ## 7.0.7
1094
-
1095
- ### Patch Changes
1096
-
1097
- - 0375896: Simplify useframe, support instanced event cancelation, silence disposal
1098
-
1099
- ## 7.0.6
1100
-
1101
- ### Patch Changes
1102
-
1103
- - fb052ad: Fix babel-env browserslist transpiling into old code"
1104
-
1105
- ## 7.0.5
1106
-
1107
- ### Patch Changes
1108
-
1109
- - c97794a: Add useLoader.clear(Loader, input)
1110
-
1111
- ## 7.0.4
1112
-
1113
- ### Patch Changes
1114
-
1115
- - 974ecfb: Allow elements to define attachFns for specific mount/unmount
1116
-
1117
- ## 7.0.2
1118
-
1119
- ### Patch Changes
1120
-
1121
- - a97aca3: Add controls state field
1122
- - 4c703d6: fix rttr didn't work with r130
1123
-
1124
- ## 7.0.0
1125
-
1126
- ### Major Changes
1127
-
1128
- - 96ae1ad: fix javascript interpreting negative renderpriority as positive
1129
-
1130
- 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
1131
-
1132
- ```jsx
1133
- useFrame(..., -1)
1134
- ```
1135
-
1136
- Surprisingly this disabled auto-rendering although the documentation says positive numbers only. As of v7 this will not take over the render loop.
1137
-
1138
- ```jsx
1139
- function Render() {
1140
- // Takes over the render-loop, the user has the responsibility to render
1141
- useFrame(({ gl, scene, camera }) => {
1142
- gl.render(scene, camera)
1143
- }, 1)
1144
-
1145
- function RenderOnTop() {
1146
- // This will render on top of the previous call
1147
- useFrame(({ gl, ... }) => {
1148
- gl.render(...)
1149
- }, 2)
1150
-
1151
- function A() {
1152
- // Will *not* take over the render-loop, negative indices can still be useful for sorting
1153
- useFrame(() => ..., -1)
1154
-
1155
- function B() {
1156
- // B's useFrame will execute *after* A's
1157
- useFrame(() => ..., -2)
1158
- ```
1159
-
1160
- ## 6.2.3
1161
-
1162
- ### Patch Changes
1163
-
1164
- - 26bc7eb: typescript changes
1165
-
1166
- ## 6.2.2
1167
-
1168
- ### Patch Changes
1169
-
1170
- - 4f44a2c: use more helpful name with event handling in rttr
1171
-
1172
- ## 6.2.1
1173
-
1174
- ### Patch Changes
1175
-
1176
- - Fix stopPropagation logic
1177
-
1178
- ## 6.2.0
1179
-
1180
- ### Minor Changes
1181
-
1182
- - Allow object3d instances to be attached
1183
-
1184
- ## 6.1.5
1185
-
1186
- ### Patch Changes
1187
-
1188
- - fix(rttr): if children is undefined return an array to map with
1189
-
1190
- ## 6.1.4
1191
-
1192
- ### Patch Changes
1193
-
1194
- - 6faa090: Add shape to types, exclude event functions from event data
1195
-
1196
- ## 6.1.3
1197
-
1198
- ### Patch Changes
1199
-
1200
- - 71e72c0: Fix constructor args with attached children (#1348)
1201
- - 015fc03: Only set up pointer/wheel events as passive
1202
- - a160e08: Fix event setPointerCapture and stopPropagation.
1203
-
1204
- ## 6.1.2
1
+ # @react-three/fiber
2
+
3
+ ## 9.8.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 4ae2f816543f21e72b38d3e1328a21fc312428c1: Support React 19.3. Transitions that touch a `<ViewTransition>` subtree inside the canvas now commit synchronously, mirroring react-dom in browsers without view transitions, instead of leaving the reconciler stuck mid-commit.
8
+ - bc240cc56dbb0162737b2df0e99077c889d7cf2e: feat: configure and render roots synchronously; suspend on async renderers.
9
+
10
+ `root.configure()` now runs synchronously unless `gl` is an async factory (WebGPU), and the first `root.render()` mounts synchronously once the root is configured; later renders are batched as before. The returned promises carry a `status` field that React's `use` reads, and every root exposes `ready`, which is pending only while an async renderer is being created.
11
+
12
+ `<Canvas>` uses this to commit its scene inside its own layout effect, so `onCreated` runs while the wrapper is mounted and the events are connected before the browser paints. With an async renderer the canvas suspends on `root.ready` internally, without showing a parent fallback, and mounts once it resolves. Unmounting meanwhile never renders the scene. A renderer factory that fails now reaches the nearest error boundary instead of an unhandled rejection.
13
+
14
+ Configure calls made while another is in flight are applied after it, in order. The `flushSync` caveats apply to that first `root.render()` when it is called from inside another root's commit.
15
+
16
+ ### Patch Changes
17
+
18
+ - f0f1cdf4336519a988faadae7f8607bc0cd8d7e2: fix: unmount roots deterministically instead of after a 500ms timer.
19
+
20
+ `unmountComponentAtNode` deferred disposal by 500ms. A `<StrictMode>` remount lands inside that window and reuses the same root, store, scene and GL context, so the deferred callback destroyed a live root. `forceContextLoss()` is permanent, which left the canvas blank for the rest of the session.
21
+
22
+ Unmounting now claims the root and runs the teardown through React once the unmounted tree's effect cleanups have flushed. Using the root again through `configure` or `render` before then cancels it. A root that is unmounted, remounted and unmounted again is torn down exactly once.
23
+
24
+ - bc240cc56dbb0162737b2df0e99077c889d7cf2e: fix: don't resurrect a `<Canvas>` root that unmounts before its render settles.
25
+
26
+ `<Canvas>` configured its root asynchronously. When the canvas was unmounted between that effect and the microtasks it queued, for example by a spring reparenting it through a synchronous state update from a layout effect, the stale continuation still rendered into the torn-down root. Its Provider then mounted again and called `events.connect` with the unmounted wrapper `div`, throwing `Cannot read properties of null (reading 'addEventListener')`, and the resurrected root leaked a live WebGL context.
27
+
28
+ The scene now commits inside the canvas' own commit, a deferred render bails once the root is claimed for teardown, and `unmountComponentAtNode` waits for a configure still in flight so the renderer it creates is disposed rather than orphaned.
29
+
30
+ ## 9.7.0
31
+
32
+ ### Minor Changes
33
+
34
+ - c340195e7129d6b244a9eb11c0c10573954d03ef: Match React DOM event priorities and microtask scheduling so reconciler updates flush with consistent priority and timing.
35
+
36
+ ### Patch Changes
37
+
38
+ - c340195e7129d6b244a9eb11c0c10573954d03ef: Harden internal instance synchronization after keyed reorders and batched reconstruction, and correctly reset pierced props.
39
+
40
+ ## 9.6.1
41
+
42
+ ### Patch Changes
43
+
44
+ - b645741874486417727ea75a0704d48e9f21d623: fix: Seamlessly transfer interactivity state when swapping instances
45
+
46
+ ## 9.6.0
47
+
48
+ ### Minor Changes
49
+
50
+ - 26e4716412b11a189dd9ac4b3033d0e504f1d7df: Fix uniforms refs so they remain stable for ShaderMaterial
51
+
52
+ ## 9.5.0
53
+
54
+ ### Minor Changes
55
+
56
+ - 1050a62bd4bc15e60ab3a65deea08dedfcf24989: Support React 19.2
57
+
58
+ ## 9.4.2
59
+
60
+ ### Patch Changes
61
+
62
+ - 3d445fd158b25eb380cd27bd2e01304016aa23e3: fix: Expo SDK 54 compatibility through workaround
63
+
64
+ ## 9.4.1
65
+
66
+ ### Patch Changes
67
+
68
+ - 4f8cec0d79003a9ef6d1ca1e56de94aec4158714: fix: pass DevTools config through createReconciler to fix React DevTools
69
+
70
+ ## 9.4.0
71
+
72
+ ### Minor Changes
73
+
74
+ - f0976dc14a2d3203af267d0e3524d45a07f3248a: feat: improve applyProps errors, harden pierced props setting
75
+
76
+ ## 9.3.0
77
+
78
+ ### Minor Changes
79
+
80
+ - 7579c2d79ed60e5c93a259637b65c01971f39d82: feat: add flushSync example
81
+ - 26e5d6e8b8b00b817ebb5242432000abe38bfc2c: fix: update flushSync for new reconciler
82
+ - 0281b6bc4fcf041ed801e64f1876f70c214aa117: fix(native): update react-native deep imports for 0.79 compatibility
83
+
84
+ ## 9.2.0
85
+
86
+ ### Minor Changes
87
+
88
+ - 94ece53e17a586465b10ec627cf4799cefa72b3a: Export flushSync
89
+
90
+ ## 9.1.4
91
+
92
+ ### Patch Changes
93
+
94
+ - d491e46087508dff50c48768a99f87bd486b6910: Accept readonly arrays for vector props
95
+
96
+ ## 9.1.3
97
+
98
+ ### Patch Changes
99
+
100
+ - efd28328f5e612b0592be7da316fad990fdf4675: fix(native) fix crash on rerendering GLView with new arch
101
+
102
+ ## 9.1.2
103
+
104
+ ### Patch Changes
105
+
106
+ - 053757f45d2411f2929975add76a4c979713e616: fix: reference dev-only act with computed key for Webpack
107
+
108
+ ## 9.1.1
109
+
110
+ ### Patch Changes
111
+
112
+ - 0deae3fb12b6d62ff083891e388ab09de51330d0: Fix failing builds for production when React.act is unavailable. This fixes issues found in React@19.1.0 and up.
113
+
114
+ ## 9.1.0
115
+
116
+ ### Minor Changes
117
+
118
+ - cbc79507600b81f6a39de9f3f0ecb3aaf811233f: feat: add meshes to loader graph, misc internal fixes
119
+
120
+ ## 9.0.4
121
+
122
+ ### Patch Changes
123
+
124
+ - 28ebfbf3e7f9e69dc62f5481965b7fd6a3e3a038: fix(types): exclude type conflicts in React runtime types
125
+
126
+ ## 9.0.3
127
+
128
+ ### Patch Changes
129
+
130
+ - 01f0f1c8855325aae1c337d5443c846cc46007b0: fix(types): remove recursive references in JSX types
131
+
132
+ ## 9.0.2
133
+
134
+ ### Patch Changes
135
+
136
+ - 14e133278c3cf1550a3b9aeaaadb624a2aae4781: fix(reconciler): prefer to resolve unprefixed instance types
137
+
138
+ ## 9.0.1
139
+
140
+ ### Patch Changes
141
+
142
+ - 5d711d103b8d3833b93c3ab74707b2b6db5d274a: fix: add use-sync-external-store dep
143
+
144
+ ## 9.0.0
145
+
146
+ ### Major Changes
147
+
148
+ - 226d2ec: feat: React 19 support
149
+
150
+ ## 8.18.0
151
+
152
+ ### Minor Changes
153
+
154
+ - 54a3330f: feat: make children optional in Canvas
155
+
156
+ ## 8.17.14
157
+
158
+ ### Patch Changes
159
+
160
+ - eeeed16b: fix: update use-measure
161
+
162
+ ## 8.17.13
163
+
164
+ ### Patch Changes
165
+
166
+ - 0a0f2acd: fix: upstream use-measure
167
+
168
+ ## 8.17.12
169
+
170
+ ### Patch Changes
171
+
172
+ - ff1a16f1: fix: narrow React peer dep range
173
+
174
+ ## 8.17.11
175
+
176
+ ### Patch Changes
177
+
178
+ - 7461bf0c: fix: loosen instanceof checks for CSB issue
179
+
180
+ ## 8.17.10
181
+
182
+ ### Patch Changes
183
+
184
+ - d1a072ac: fix: ThreeEvent should not include initMouseEvent
185
+
186
+ ## 8.17.9
187
+
188
+ ### Patch Changes
189
+
190
+ - f34de655: fix: add orientation handling
191
+
192
+ ## 8.17.8
193
+
194
+ ### Patch Changes
195
+
196
+ - 3c885807: fix(types): fix React typings, fault tolerant Node type
197
+
198
+ ## 8.17.7
199
+
200
+ ### Patch Changes
201
+
202
+ - c20a7d73: fix(native): missing pointerId in pointer events
203
+
204
+ ## 8.17.6
205
+
206
+ ### Patch Changes
207
+
208
+ - 66c3e9fe: fix(native): don't bind events to GLView
209
+
210
+ ## 8.17.5
211
+
212
+ ### Patch Changes
213
+
214
+ - 162dbbdd: fix: npmignore ignored types"
215
+
216
+ ## 8.17.4
217
+
218
+ ### Patch Changes
219
+
220
+ - 43866f4e: fix: rebuild with types
221
+
222
+ ## 8.17.3
223
+
224
+ ### Patch Changes
225
+
226
+ - 8363eb7a: fix: rebuild with types
227
+
228
+ ## 8.17.2
229
+
230
+ ### Patch Changes
231
+
232
+ - 6aa4eb28: fix: rebuild with types
233
+
234
+ ## 8.17.1
235
+
236
+ ### Patch Changes
237
+
238
+ - e5f3f4f9: fix: rebuild with types
239
+
240
+ ## 8.17.0
241
+
242
+ ### Minor Changes
243
+
244
+ - 3c22194d: feat: flushSync, native EventTarget
245
+
246
+ ## 8.16.8
247
+
248
+ ### Patch Changes
249
+
250
+ - 4748b365: fix: update is.equ to compare booleans
251
+
252
+ ## 8.16.7
253
+
254
+ ### Patch Changes
255
+
256
+ - 4d6408c7: fix(types): revert usage of future module JSX
257
+
258
+ ## 8.16.6
259
+
260
+ ### Patch Changes
261
+
262
+ - 03ab82fe: fix(applyProps): null check indeterminate instances
263
+
264
+ ## 8.16.5
265
+
266
+ ### Patch Changes
267
+
268
+ - cb913e01: fix: use fast JSX, future JSX types
269
+
270
+ ## 8.16.4
271
+
272
+ ### Patch Changes
273
+
274
+ - 1270d24c: fix: missing dependency on inject function
275
+
276
+ ## 8.16.3
277
+
278
+ ### Patch Changes
279
+
280
+ - 9c83502c: fix(Canvas): don't override camera frustum props
281
+
282
+ ## 8.16.2
283
+
284
+ ### Patch Changes
285
+
286
+ - e0900489: fix(useLoader): don't dispose of memoized loader
287
+
288
+ ## 8.16.1
289
+
290
+ ### Patch Changes
291
+
292
+ - 503efc2e: fix: prevent invalidate from piling up frames
293
+
294
+ ## 8.16.0
295
+
296
+ ### Minor Changes
297
+
298
+ - 6b0ea6eb: feat: add childadded event dispatch
299
+
300
+ ## 8.15.19
301
+
302
+ ### Patch Changes
303
+
304
+ - 74926b94: fix(types): avoid emitting THREE.XRFrame
305
+
306
+ ## 8.15.18
307
+
308
+ ### Patch Changes
309
+
310
+ - 8c01939a: fix: correctly pass frames in invalidate
311
+
312
+ ## 8.15.17
313
+
314
+ ### Patch Changes
315
+
316
+ - 16c2ee97: fix(types): support @types/three@0.162.0
317
+
318
+ ## 8.15.16
319
+
320
+ ### Patch Changes
321
+
322
+ - 71cd8f96: fix: tonemapping config overwrites userland
323
+ - 0bb12fd1: fix(types): remove usage of THREE.Vector
324
+
325
+ ## 8.15.14
326
+
327
+ ### Patch Changes
328
+
329
+ - 0afc9c12: fix: portal events, update examples
330
+
331
+ ## 8.15.13
332
+
333
+ ### Patch Changes
334
+
335
+ - 0a399f6d: fix(native): use MSAA for antialias on iOS
336
+
337
+ ## 8.15.12
338
+
339
+ ### Patch Changes
340
+
341
+ - 496d6f0d: fix: useLoader and XRFrame type fixes
342
+
343
+ ## 8.15.11
344
+
345
+ ### Patch Changes
346
+
347
+ - 3d9af04d: fix: update import from three examples
348
+
349
+ ## 8.15.10
350
+
351
+ ### Patch Changes
352
+
353
+ - 49158164: fix: don't recursively dispose primitives
354
+
355
+ ## 8.15.9
356
+
357
+ ### Patch Changes
358
+
359
+ - 4cbc5530: fix(native): deopt iOS blob URI path
360
+
361
+ ## 8.15.8
362
+
363
+ ### Patch Changes
364
+
365
+ - 70680832: fix: revert stable sort
366
+
367
+ ## 8.15.7
368
+
369
+ ### Patch Changes
370
+
371
+ - 07e39e2e: fix(types): remove use of Object3D generic
372
+
373
+ ## 8.15.6
374
+
375
+ ### Patch Changes
376
+
377
+ - 7bb2950b: experiment: stable object sort
378
+
379
+ ## 8.15.5
380
+
381
+ ### Patch Changes
382
+
383
+ - 0e44fd8b: fix(types): preserve deprecated JSX annotations
384
+
385
+ ## 8.15.4
386
+
387
+ ### Patch Changes
388
+
389
+ - 634e5db5: fix(native): harden Blob URI check for Android
390
+
391
+ ## 8.15.3
392
+
393
+ ### Patch Changes
394
+
395
+ - beab4344: fix(native): workaround Android content policy for Blob URI
396
+
397
+ ## 8.15.2
398
+
399
+ ### Patch Changes
400
+
401
+ - 086d3932: fix: size check and raycaster camera
402
+
403
+ ## 8.15.1
404
+
405
+ ### Patch Changes
406
+
407
+ - 2d39676d: fix: ignore deprecated types, use correct XRFrame definition
408
+
409
+ ## 8.15.0
410
+
411
+ ### Minor Changes
412
+
413
+ - cca8b6bb: feat: export buildGraph
414
+
415
+ ## 8.14.7
416
+
417
+ ### Patch Changes
418
+
419
+ - 0f63a287: fix(native): restore polyfill conversions, drop networking
420
+
421
+ ## 8.14.6
422
+
423
+ ### Patch Changes
424
+
425
+ - 465fa0fb: fix(native): revert usage of networking stack
426
+
427
+ ## 8.14.5
428
+
429
+ ### Patch Changes
430
+
431
+ - f372a5b5: fix(applyProps): loosen copy identity in dev
432
+
433
+ ## 8.14.4
434
+
435
+ ### Patch Changes
436
+
437
+ - dc7e5739: fix(native): amend BlobManager over globals
438
+
439
+ ## 8.14.3
440
+
441
+ ### Patch Changes
442
+
443
+ - d77b0990: fix(native): drop fsstat for react-native-web
444
+
445
+ ## 8.14.2
446
+
447
+ ### Patch Changes
448
+
449
+ - 33e8baef: fix: native perf, loader types
450
+
451
+ ## 8.14.1
452
+
453
+ ### Patch Changes
454
+
455
+ - c99907bf: fix(native): prefer local uri for fs
456
+
457
+ ## 8.14.0
458
+
459
+ ### Minor Changes
460
+
461
+ - 89e96bf4: feat: react-native-web, native globals fixes
462
+
463
+ ## 8.13.9
464
+
465
+ ### Patch Changes
466
+
467
+ - 44d57b3c: fix(native): TextureLoader should remain consistent with FileLoader
468
+
469
+ ## 8.13.8
470
+
471
+ ### Patch Changes
472
+
473
+ - 5da26d52: fix(useLoader): dispose loaders
474
+
475
+ ## 8.13.7
476
+
477
+ ### Patch Changes
478
+
479
+ - 37b9502a: fix(Canvas): pass scene prop
480
+
481
+ ## 8.13.6
482
+
483
+ ### Patch Changes
484
+
485
+ - 0597495c: fix: harden XR init against Renderer shim
486
+
487
+ ## 8.13.5
488
+
489
+ ### Patch Changes
490
+
491
+ - 7a3b543b: fix: three type regressions
492
+
493
+ ## 8.13.4
494
+
495
+ ### Patch Changes
496
+
497
+ - 824ee0f7: fix: safely diff instances
498
+
499
+ ## 8.13.3
500
+
501
+ ### Patch Changes
502
+
503
+ - ffdb5fc4: revert nested portals, up suspend-react
504
+
505
+ ## 8.13.2
506
+
507
+ ### Patch Changes
508
+
509
+ - bbabdf07: update suspend-react
510
+
511
+ ## 8.13.1
512
+
513
+ ### Patch Changes
514
+
515
+ - c9fe03ba: fix: primitive swap and reactive portals
516
+
517
+ ## 8.13.0
518
+
519
+ ### Minor Changes
520
+
521
+ - ecfc48b7: feat: CanvasProps alias, respect r152 color management
522
+
523
+ ## 8.12.2
524
+
525
+ ### Patch Changes
526
+
527
+ - c5193468: fix: safeguard window.devicePixelRatio
528
+
529
+ ## 8.12.1
530
+
531
+ ### Patch Changes
532
+
533
+ - 571f07ac: fix: safeguard window.devicePixelRatio
534
+
535
+ ## 8.12.0
536
+
537
+ ### Minor Changes
538
+
539
+ - 1928d095: feat: `scene` render prop for custom THREE.Scene
540
+
541
+ ## 8.11.11
542
+
543
+ ### Patch Changes
544
+
545
+ - f03c6ef8: feat: `scene` render prop for custom THREE.Scene
546
+
547
+ ## 8.11.10
548
+
549
+ ### Patch Changes
550
+
551
+ - 12907836: fix onpointerlostcapture which fired before pointerup
552
+
553
+ ## 8.11.9
554
+
555
+ ### Patch Changes
556
+
557
+ - 6b5f572c: fix: treeshake THREE.ColorManagement
558
+
559
+ ## 8.11.8
560
+
561
+ ### Patch Changes
562
+
563
+ - 350cd3f3: fix(Canvas): inline render-effect
564
+
565
+ ## 8.11.7
566
+
567
+ ### Patch Changes
568
+
569
+ - 96af62d5: fix: don't overwrite public cameras
570
+
571
+ ## 8.11.6
572
+
573
+ ### Patch Changes
574
+
575
+ - 7d319c18: Fix is.equ obj:shallow, allow it to test arrays 1 level deep, fix canvas.camera prop being stale
576
+
577
+ ## 8.11.5
578
+
579
+ ### Patch Changes
580
+
581
+ - c658f763: fix: update canvas prop types
582
+
583
+ ## 8.11.4
584
+
585
+ ### Patch Changes
586
+
587
+ - 970aa58b: fix: play nice with offscreencanvas
588
+
589
+ ## 8.11.3
590
+
591
+ ### Patch Changes
592
+
593
+ - 2bce569c: fix: progressively set colormanagement
594
+
595
+ ## 8.11.2
596
+
597
+ ### Patch Changes
598
+
599
+ - 41d655cd: fix: hmr, srgb encode
600
+
601
+ ## 8.11.1
602
+
603
+ ### Patch Changes
604
+
605
+ - 58cadeff: fix: skip circular onUpdate calls
606
+
607
+ ## 8.11.0
608
+
609
+ ### Minor Changes
610
+
611
+ - 2917a47b: events.update, allow raycast w/o user interaction
612
+ - 521bfb07: events.update, allow raycast w/o user interaction
613
+
614
+ ## 8.10.4
615
+
616
+ ### Patch Changes
617
+
618
+ - d9e6316d: fix: transpile class properties
619
+
620
+ ## 8.10.3
621
+
622
+ ### Patch Changes
623
+
624
+ - d06d2879: fix: align useLoader type, public fields from builds
625
+
626
+ ## 8.10.2
627
+
628
+ ### Patch Changes
629
+
630
+ - 564edbbb: fix port inject layers, it should allow root props to overwrite undefined portal props"
631
+
632
+ ## 8.10.1
633
+
634
+ ### Patch Changes
635
+
636
+ - bfa0298f: fix memoized identity
637
+
638
+ ## 8.10.0
639
+
640
+ ### Minor Changes
641
+
642
+ - 24c4dba4: shortcut for shadow type
643
+
644
+ ## 8.9.2
645
+
646
+ ### Patch Changes
647
+
648
+ - 2aeb6500: fix: primitives are incorrectly swapped on key change in maps
649
+
650
+ ## 8.9.1
651
+
652
+ ### Patch Changes
653
+
654
+ - 0cf11797: fix(events): type spread event props
655
+
656
+ ## 8.9.0
657
+
658
+ ### Minor Changes
659
+
660
+ - a458b4dd: fix(loop): export flush methods and types
661
+
662
+ ## 8.8.11
663
+
664
+ ### Patch Changes
665
+
666
+ - 2068f0cc: fix: events pointerlock, useLoader extension types
667
+
668
+ ## 8.8.10
669
+
670
+ ### Patch Changes
671
+
672
+ - 00c24718: fix: invalidate pierced props
673
+
674
+ ## 8.8.9
675
+
676
+ ### Patch Changes
677
+
678
+ - 4254400e: fix(createPortal): use correct JSX type
679
+
680
+ ## 8.8.8
681
+
682
+ ### Patch Changes
683
+
684
+ - fcb183e3: fix: call onUpdate for attached children prop update
685
+
686
+ ## 8.8.7
687
+
688
+ ### Patch Changes
689
+
690
+ - bedb16e7: fix: prefer named functions, for loops in hot paths
691
+
692
+ ## 8.8.6
693
+
694
+ ### Patch Changes
695
+
696
+ - 02a558bb: fix: upgrade deps
697
+
698
+ ## 8.8.5
699
+
700
+ ### Patch Changes
701
+
702
+ - 530a06d6: fix: upgrade deps to work-around CRA
703
+
704
+ ## 8.8.4
705
+
706
+ ### Patch Changes
707
+
708
+ - 2f2dc9f9: chore: upgrade bridge to harden suspense behavior
709
+
710
+ ## 8.8.3
711
+
712
+ ### Patch Changes
713
+
714
+ - 9f571239: fix #2506, events should fall back to rootstate"
715
+
716
+ ## 8.8.2
717
+
718
+ ### Patch Changes
719
+
720
+ - dc389ed6: fix(Canvas): prevent remount on context update
721
+
722
+ ## 8.8.1
723
+
724
+ ### Patch Changes
725
+
726
+ - 370d3ae5: refactor: pull context bridge from its-fine
727
+
728
+ ## 8.8.0
729
+
730
+ ### Minor Changes
731
+
732
+ - 46d8b440: bridge cross-container context
733
+
734
+ ## 8.7.4
735
+
736
+ ### Patch Changes
737
+
738
+ - 259c8895: fix: use self to get global context before window
739
+
740
+ ## 8.7.3
741
+
742
+ ### Patch Changes
743
+
744
+ - eb5a3be4: fix: if there is an eventsource pointerevent will be set to none
745
+
746
+ ## 8.7.2
747
+
748
+ ### Patch Changes
749
+
750
+ - 7f801e60: fix: events in portals carry the wrong raycaster, camera, etc
751
+
752
+ ## 8.7.1
753
+
754
+ ### Patch Changes
755
+
756
+ - 962cc270: fix: allow canvas eventsource to be a ref
757
+
758
+ ## 8.7.0
759
+
760
+ ### Minor Changes
761
+
762
+ - f5db1b78: feat: useInstanceHandle, flushGlobalEffects
763
+
764
+ ## 8.6.2
765
+
766
+ ### Patch Changes
767
+
768
+ - 57c12e9c: fix(types): @react-three/drei declaration files
769
+
770
+ ## 8.6.1
771
+
772
+ ### Patch Changes
773
+
774
+ - 7a0b5670: fix(core): don't append to unmounted containers
775
+
776
+ ## 8.6.0
777
+
778
+ ### Minor Changes
779
+
780
+ - 85c80e70: eventsource and eventprefix on the canvas component
781
+
782
+ ## 8.5.1
783
+
784
+ ### Patch Changes
785
+
786
+ - 87821d9: fix: null-check instance.children on reconstruct
787
+
788
+ ## 8.5.0
789
+
790
+ ### Minor Changes
791
+
792
+ - edc8252: feat: handle primitive children, auto-attach via instanceof
793
+
794
+ ## 8.3.1
795
+
796
+ ### Patch Changes
797
+
798
+ - aaeb2b8: fix(types): accept readonly arrays for vector props
799
+
800
+ ## 8.3.0
801
+
802
+ ### Minor Changes
803
+
804
+ - 9c450ec: feat: improve errors
805
+
806
+ ## 8.2.3
807
+
808
+ ### Patch Changes
809
+
810
+ - b8d2eab: fix: improve useLoader signature, initial size on createRoot
811
+
812
+ ## 8.2.2
813
+
814
+ ### Patch Changes
815
+
816
+ - acd6f04: fix: warn on stray text
817
+
818
+ ## 8.2.1
819
+
820
+ ### Patch Changes
821
+
822
+ - 25e35a1: fix: prefer useLayoutEffect in react-native
823
+
824
+ ## 8.2.0
825
+
826
+ ### Minor Changes
827
+
828
+ - 9770d7d: feat: expose ThreeElements interface for JSX elements
829
+
830
+ ## 8.1.0
831
+
832
+ ### Minor Changes
833
+
834
+ - 8d0f708c: Expose position information in state.size
835
+
836
+ ## 8.0.27
837
+
838
+ ### Patch Changes
839
+
840
+ - 7940995: fix: resume on xrsession end, export internal events
841
+
842
+ ## 8.0.26
843
+
844
+ ### Patch Changes
845
+
846
+ - 7b6df9df: fix: infinite loop updating cam viewport
847
+
848
+ ## 8.0.25
849
+
850
+ ### Patch Changes
851
+
852
+ - b7cd0f42: update viewport on camera changes
853
+
854
+ ## 8.0.24
855
+
856
+ ### Patch Changes
857
+
858
+ - ee8e785: fix: attach timings
859
+
860
+ ## 8.0.23
861
+
862
+ ### Patch Changes
863
+
864
+ - 29d03c64: revert multi attach
865
+
866
+ ## 8.0.22
867
+
868
+ ### Patch Changes
869
+
870
+ - 419e854: fix: always prepare primitives
871
+
872
+ ## 8.0.21
873
+
874
+ ### Patch Changes
875
+
876
+ - 3098b9b: fix: resizing in worker contexts, copy over attachments on reconstruct
877
+
878
+ ## 8.0.20
879
+
880
+ ### Patch Changes
881
+
882
+ - 4c87bce: fix: attach, devtools, and perf fixes
883
+
884
+ ## 8.0.19
885
+
886
+ ### Patch Changes
887
+
888
+ - 360b45a: fix: handle attach on reconstruct
889
+
890
+ ## 8.0.18
891
+
892
+ ### Patch Changes
893
+
894
+ - be567c1: fix: suspense attach and three compat in webpack
895
+
896
+ ## 8.0.17
897
+
898
+ ### Patch Changes
899
+
900
+ - 9e3369e: fix dom resize, improve native tree shaking
901
+
902
+ ## 8.0.16
903
+
904
+ ### Patch Changes
905
+
906
+ - 669c45c: correctly type useLoader results
907
+
908
+ ## 8.0.15
909
+
910
+ ### Patch Changes
911
+
912
+ - c4715d5f: allow invalidate to preempt more than 1 frame
913
+
914
+ ## 8.0.14
915
+
916
+ ### Patch Changes
917
+
918
+ - 5559a119: Add support for recoverable errors
919
+
920
+ ## 8.0.13
921
+
922
+ ### Patch Changes
923
+
924
+ - 9d77d8e2: fix: detach attribute removal
925
+
926
+ ## 8.0.12
927
+
928
+ ### Patch Changes
929
+
930
+ - 3d10413f: fix portal layers
931
+
932
+ ## 8.0.11
933
+
934
+ ### Patch Changes
935
+
936
+ - 5167b1e4: memoized.args can be undefined
937
+
938
+ ## 8.0.10
939
+
940
+ ### Patch Changes
941
+
942
+ - eb321afd: fix: remount bug, allow portals to inject custom size
943
+
944
+ ## 8.0.9
945
+
946
+ ### Patch Changes
947
+
948
+ - 624df949: fix: canvas unmount race condition"
949
+
950
+ ## 8.0.8
951
+
952
+ ### Patch Changes
953
+
954
+ - 952a566: fix: react SSR
955
+
956
+ ## 8.0.7
957
+
958
+ ### Patch Changes
959
+
960
+ - f63806b: fix: react SSR
961
+
962
+ ## 8.0.6
963
+
964
+ ### Patch Changes
965
+
966
+ - d4bafb9: fix re-parenting, useframe not working properly in portals, attach crash
967
+
968
+ ## 8.0.5
969
+
970
+ ### Patch Changes
971
+
972
+ - 227c328: fix pointer for root and portals
973
+
974
+ ## 8.0.4
975
+
976
+ ### Patch Changes
977
+
978
+ - e981a72: fix: mock three color management, loosen peer dep
979
+
980
+ ## 8.0.3
981
+
982
+ ### Patch Changes
983
+
984
+ - 3252aed: setevents needs to spread and be mirrored in portals
985
+
986
+ ## 8.0.2
987
+
988
+ ### Patch Changes
989
+
990
+ - 8035d1f: fix: legacy mode
991
+
992
+ ## 8.0.1
993
+
994
+ ### Patch Changes
995
+
996
+ - 26db195: add legacy flag to turn of three.colormanagement
997
+
998
+ ## 8.0.0
999
+
1000
+ ### Major Changes
1001
+
1002
+ - 385ba9c: v8 major, react-18 compat
1003
+ - 04c07b8: v8 major, react-18 compat
1004
+
1005
+ ### Patch Changes
1006
+
1007
+ - 347ea79: new beta for library testing
1008
+
1009
+ ## 8.0.0-beta.0
1010
+
1011
+ ### Major Changes
1012
+
1013
+ - 385ba9c: v8 major, react-18 compat
1014
+
1015
+ ## 8.0.0-beta.0
1016
+
1017
+ ### Patch Changes
1018
+
1019
+ - cf6316c: new beta for library testing
1020
+
1021
+ ## 7.0.25
1022
+
1023
+ ### Patch Changes
1024
+
1025
+ - 8698734: Release latest patches
1026
+
1027
+ ## 7.0.24
1028
+
1029
+ ### Patch Changes
1030
+
1031
+ - 7f46ddf: cleanup captured pointers when released (#1914)
1032
+
1033
+ ## 7.0.23
1034
+
1035
+ ### Patch Changes
1036
+
1037
+ - 30d38b1: remove logs
1038
+
1039
+ ## 7.0.22
1040
+
1041
+ ### Patch Changes
1042
+
1043
+ - 259e1fa: add camera:manual
1044
+
1045
+ ## 7.0.21
1046
+
1047
+ ### Patch Changes
1048
+
1049
+ - 65e4147: up usemeasure, add last event to internals"
1050
+
1051
+ ## 7.0.20
1052
+
1053
+ ### Patch Changes
1054
+
1055
+ - 54cb0fd: update react-use-measure, allow it to use the offsetSize
1056
+
1057
+ ## 7.0.19
1058
+
1059
+ ### Patch Changes
1060
+
1061
+ - 7aa2eab: fix: remove zustand subscribe selector
1062
+
1063
+ ## 7.0.18
1064
+
1065
+ ### Patch Changes
1066
+
1067
+ - 6780f58: fix unmount pointer capture
1068
+
1069
+ ## 7.0.17
1070
+
1071
+ ### Patch Changes
1072
+
1073
+ - 894c550: fix: event count
1074
+
1075
+ ## 7.0.16
1076
+
1077
+ ### Patch Changes
1078
+
1079
+ - c7a4220: patch: applyprops returns the same instance
1080
+
1081
+ ## 7.0.15
1082
+
1083
+ ### Patch Changes
1084
+
1085
+ - c5645e8: fix primitive leftovers on switch
1086
+
1087
+ ## 7.0.14
1088
+
1089
+ ### Patch Changes
1090
+
1091
+ - 05af996: fix: revert the is function
1092
+
1093
+ ## 7.0.13
1094
+
1095
+ ### Patch Changes
1096
+
1097
+ - f256558: fix(core): don't overwrite camera rotation
1098
+ - 51e6fc9: fix(core): safely handle external instances
1099
+
1100
+ ## 7.0.12
1101
+
1102
+ ### Patch Changes
1103
+
1104
+ - 0df6073: fix: missed events
1105
+
1106
+ ## 7.0.11
1107
+
1108
+ ### Patch Changes
1109
+
1110
+ - 62b0a3a: fix: event order of missed pointers
1111
+
1112
+ ## 7.0.10
1113
+
1114
+ ### Patch Changes
1115
+
1116
+ - e019dd4: fixes
1117
+
1118
+ ## 7.0.9
1119
+
1120
+ ### Patch Changes
1121
+
1122
+ - cd266e4: Fix diffProps dashed keys
1123
+
1124
+ ## 7.0.8
1125
+
1126
+ ### Patch Changes
1127
+
1128
+ - 6f68406: Allow getCurrentViewport to receive an array
1129
+
1130
+ ## 7.0.7
1131
+
1132
+ ### Patch Changes
1133
+
1134
+ - 0375896: Simplify useframe, support instanced event cancelation, silence disposal
1135
+
1136
+ ## 7.0.6
1137
+
1138
+ ### Patch Changes
1139
+
1140
+ - fb052ad: Fix babel-env browserslist transpiling into old code"
1141
+
1142
+ ## 7.0.5
1143
+
1144
+ ### Patch Changes
1145
+
1146
+ - c97794a: Add useLoader.clear(Loader, input)
1147
+
1148
+ ## 7.0.4
1149
+
1150
+ ### Patch Changes
1151
+
1152
+ - 974ecfb: Allow elements to define attachFns for specific mount/unmount
1153
+
1154
+ ## 7.0.2
1155
+
1156
+ ### Patch Changes
1157
+
1158
+ - a97aca3: Add controls state field
1159
+ - 4c703d6: fix rttr didn't work with r130
1160
+
1161
+ ## 7.0.0
1162
+
1163
+ ### Major Changes
1164
+
1165
+ - 96ae1ad: fix javascript interpreting negative renderpriority as positive
1166
+
1167
+ 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
1168
+
1169
+ ```jsx
1170
+ useFrame(..., -1)
1171
+ ```
1172
+
1173
+ Surprisingly this disabled auto-rendering although the documentation says positive numbers only. As of v7 this will not take over the render loop.
1174
+
1175
+ ```jsx
1176
+ function Render() {
1177
+ // Takes over the render-loop, the user has the responsibility to render
1178
+ useFrame(({ gl, scene, camera }) => {
1179
+ gl.render(scene, camera)
1180
+ }, 1)
1181
+
1182
+ function RenderOnTop() {
1183
+ // This will render on top of the previous call
1184
+ useFrame(({ gl, ... }) => {
1185
+ gl.render(...)
1186
+ }, 2)
1187
+
1188
+ function A() {
1189
+ // Will *not* take over the render-loop, negative indices can still be useful for sorting
1190
+ useFrame(() => ..., -1)
1191
+
1192
+ function B() {
1193
+ // B's useFrame will execute *after* A's
1194
+ useFrame(() => ..., -2)
1195
+ ```
1196
+
1197
+ ## 6.2.3
1198
+
1199
+ ### Patch Changes
1200
+
1201
+ - 26bc7eb: typescript changes
1202
+
1203
+ ## 6.2.2
1204
+
1205
+ ### Patch Changes
1206
+
1207
+ - 4f44a2c: use more helpful name with event handling in rttr
1208
+
1209
+ ## 6.2.1
1210
+
1211
+ ### Patch Changes
1212
+
1213
+ - Fix stopPropagation logic
1214
+
1215
+ ## 6.2.0
1216
+
1217
+ ### Minor Changes
1218
+
1219
+ - Allow object3d instances to be attached
1220
+
1221
+ ## 6.1.5
1222
+
1223
+ ### Patch Changes
1224
+
1225
+ - fix(rttr): if children is undefined return an array to map with
1226
+
1227
+ ## 6.1.4
1228
+
1229
+ ### Patch Changes
1230
+
1231
+ - 6faa090: Add shape to types, exclude event functions from event data
1232
+
1233
+ ## 6.1.3
1234
+
1235
+ ### Patch Changes
1236
+
1237
+ - 71e72c0: Fix constructor args with attached children (#1348)
1238
+ - 015fc03: Only set up pointer/wheel events as passive
1239
+ - a160e08: Fix event setPointerCapture and stopPropagation.
1240
+
1241
+ ## 6.1.2