@react-three/fiber 9.0.0-rc.0 → 9.0.0-rc.10
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 +24 -0
- package/dist/declarations/src/core/events.d.ts +1 -0
- package/dist/declarations/src/core/hooks.d.ts +13 -12
- package/dist/declarations/src/core/index.d.ts +1 -1
- package/dist/declarations/src/core/reconciler.d.ts +0 -5
- package/dist/declarations/src/core/renderer.d.ts +5 -3
- package/dist/declarations/src/core/utils.d.ts +80 -31
- package/dist/declarations/src/native/Canvas.d.ts +2 -3
- package/dist/declarations/src/three-types.d.ts +5 -1
- package/dist/declarations/src/web/Canvas.d.ts +3 -4
- package/dist/{events-5a08b43f.esm.js → events-aba3c3d1.esm.js} +972 -979
- package/dist/{events-aef54ace.cjs.prod.js → events-b02714fc.cjs.dev.js} +970 -977
- package/dist/{events-fa0fb3db.cjs.dev.js → events-bd708dc8.cjs.prod.js} +970 -978
- package/dist/react-three-fiber.cjs.dev.js +60 -252
- package/dist/react-three-fiber.cjs.prod.js +60 -252
- package/dist/react-three-fiber.esm.js +59 -251
- package/native/dist/react-three-fiber-native.cjs.dev.js +63 -63
- package/native/dist/react-three-fiber-native.cjs.prod.js +63 -63
- package/native/dist/react-three-fiber-native.esm.js +64 -63
- package/package.json +11 -12
- package/dist/declarations/src/web/use-measure.d.ts +0 -34
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,29 @@
|
|
|
1
1
|
# @react-three/fiber
|
|
2
2
|
|
|
3
|
+
## 8.17.14
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- eeeed16b: fix: update use-measure
|
|
8
|
+
|
|
9
|
+
## 8.17.13
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- 0a0f2acd: fix: upstream use-measure
|
|
14
|
+
|
|
15
|
+
## 8.17.12
|
|
16
|
+
|
|
17
|
+
### Patch Changes
|
|
18
|
+
|
|
19
|
+
- ff1a16f1: fix: narrow React peer dep range
|
|
20
|
+
|
|
21
|
+
## 8.17.11
|
|
22
|
+
|
|
23
|
+
### Patch Changes
|
|
24
|
+
|
|
25
|
+
- 7461bf0c: fix: loosen instanceof checks for CSB issue
|
|
26
|
+
|
|
3
27
|
## 8.17.10
|
|
4
28
|
|
|
5
29
|
### Patch Changes
|
|
@@ -56,6 +56,7 @@ export interface EventHandlers {
|
|
|
56
56
|
onPointerMissed?: (event: MouseEvent) => void;
|
|
57
57
|
onPointerCancel?: (event: ThreeEvent<PointerEvent>) => void;
|
|
58
58
|
onWheel?: (event: ThreeEvent<WheelEvent>) => void;
|
|
59
|
+
onLostPointerCapture?: (event: ThreeEvent<PointerEvent>) => void;
|
|
59
60
|
}
|
|
60
61
|
export type FilterFunction = (items: THREE.Intersection[], state: RootState) => THREE.Intersection[];
|
|
61
62
|
export type ComputeFunction = (event: DomEvent, root: RootState, previous?: RootState) => void;
|
|
@@ -2,10 +2,10 @@ import * as THREE from 'three';
|
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
import { RootState, RenderCallback, RootStore } from "./store.js";
|
|
4
4
|
import { ObjectMap } from "./utils.js";
|
|
5
|
-
import type { Instance } from "./reconciler.js";
|
|
5
|
+
import type { Instance, ConstructorRepresentation } from "./reconciler.js";
|
|
6
6
|
/**
|
|
7
7
|
* Exposes an object's {@link Instance}.
|
|
8
|
-
* @see https://docs.pmnd.rs/react-three-fiber/api/additional-exports#
|
|
8
|
+
* @see https://docs.pmnd.rs/react-three-fiber/api/additional-exports#useInstanceHandle
|
|
9
9
|
*
|
|
10
10
|
* **Note**: this is an escape hatch to react-internal fields. Expect this to change significantly between versions.
|
|
11
11
|
*/
|
|
@@ -31,22 +31,23 @@ export declare function useFrame(callback: RenderCallback, renderPriority?: numb
|
|
|
31
31
|
* @see https://docs.pmnd.rs/react-three-fiber/api/hooks#usegraph
|
|
32
32
|
*/
|
|
33
33
|
export declare function useGraph(object: THREE.Object3D): ObjectMap;
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
export type LoaderProto<T> = new (...args: any[]) => Loader<T>;
|
|
38
|
-
export type LoaderResult<T> = T extends {
|
|
34
|
+
type InputLike = string | string[] | string[][] | Readonly<string | string[] | string[][]>;
|
|
35
|
+
type LoaderLike = THREE.Loader<any, InputLike>;
|
|
36
|
+
type GLTFLike = {
|
|
39
37
|
scene: THREE.Object3D;
|
|
40
|
-
}
|
|
41
|
-
|
|
38
|
+
};
|
|
39
|
+
type LoaderInstance<T extends LoaderLike | ConstructorRepresentation<LoaderLike>> = T extends ConstructorRepresentation<LoaderLike> ? InstanceType<T> : T;
|
|
40
|
+
export type LoaderResult<T extends LoaderLike | ConstructorRepresentation<LoaderLike>> = Awaited<ReturnType<LoaderInstance<T>['loadAsync']>> extends infer R ? R extends GLTFLike ? R & ObjectMap : R : never;
|
|
41
|
+
export type Extensions<T extends LoaderLike | ConstructorRepresentation<LoaderLike>> = (loader: LoaderInstance<T>) => void;
|
|
42
42
|
/**
|
|
43
43
|
* Synchronously loads and caches assets with a three loader.
|
|
44
44
|
*
|
|
45
45
|
* Note: this hook's caller must be wrapped with `React.Suspense`
|
|
46
46
|
* @see https://docs.pmnd.rs/react-three-fiber/api/hooks#useloader
|
|
47
47
|
*/
|
|
48
|
-
export declare function useLoader<
|
|
48
|
+
export declare function useLoader<I extends InputLike, L extends LoaderLike | ConstructorRepresentation<LoaderLike>>(loader: L, input: I, extensions?: Extensions<L>, onProgress?: (event: ProgressEvent<EventTarget>) => void): I extends any[] ? LoaderResult<L>[] : LoaderResult<L>;
|
|
49
49
|
export declare namespace useLoader {
|
|
50
|
-
var preload: <
|
|
51
|
-
var clear: <
|
|
50
|
+
var preload: <I extends InputLike, L extends LoaderLike | ConstructorRepresentation<LoaderLike>>(loader: L, input: I, extensions?: Extensions<L> | undefined) => void;
|
|
51
|
+
var clear: <I extends InputLike, L extends LoaderLike | ConstructorRepresentation<LoaderLike>>(loader: L, input: I) => void;
|
|
52
52
|
}
|
|
53
|
+
export {};
|
|
@@ -6,7 +6,7 @@ export { flushGlobalEffects, addEffect, addAfterEffect, addTail, invalidate, adv
|
|
|
6
6
|
export type { AttachFnType, AttachType, ConstructorRepresentation, Catalogue, Args, InstanceProps, Instance, } from "./reconciler.js";
|
|
7
7
|
export { extend, reconciler } from "./reconciler.js";
|
|
8
8
|
export type { ReconcilerRoot, GLProps, CameraProps, RenderProps, InjectState } from "./renderer.js";
|
|
9
|
-
export { _roots,
|
|
9
|
+
export { _roots, createRoot, unmountComponentAtNode, createPortal } from "./renderer.js";
|
|
10
10
|
export type { Subscription, Dpr, Size, Viewport, RenderCallback, Frameloop, Performance, Renderer, XRManager, RootState, RootStore, } from "./store.js";
|
|
11
11
|
export { context } from "./store.js";
|
|
12
12
|
export type { ObjectMap, Camera, Disposable, Act } from "./utils.js";
|
|
@@ -5,9 +5,6 @@ import { IsAllOptional } from "./utils.js";
|
|
|
5
5
|
import type { RootStore } from "./store.js";
|
|
6
6
|
import { type EventHandlers } from "./events.js";
|
|
7
7
|
import type { ThreeElement } from "../three-types.js";
|
|
8
|
-
declare module 'react-reconciler/constants' {
|
|
9
|
-
const NoEventPriority = 0;
|
|
10
|
-
}
|
|
11
8
|
export interface Root {
|
|
12
9
|
fiber: Reconciler.FiberRoot;
|
|
13
10
|
store: RootStore;
|
|
@@ -28,7 +25,6 @@ type ArgsProp<P> = P extends ConstructorRepresentation ? IsAllOptional<Construct
|
|
|
28
25
|
};
|
|
29
26
|
export type InstanceProps<T = any, P = any> = ArgsProp<P> & {
|
|
30
27
|
object?: T;
|
|
31
|
-
visible?: boolean;
|
|
32
28
|
dispose?: null;
|
|
33
29
|
attach?: AttachType<T>;
|
|
34
30
|
onUpdate?: (self: T) => void;
|
|
@@ -48,7 +44,6 @@ export interface Instance<O = any> {
|
|
|
48
44
|
previousAttach?: any;
|
|
49
45
|
isHidden: boolean;
|
|
50
46
|
}
|
|
51
|
-
export declare const catalogue: Catalogue;
|
|
52
47
|
export declare function extend<T extends ConstructorRepresentation>(objects: T): React.ExoticComponent<ThreeElement<T>>;
|
|
53
48
|
export declare function extend<T extends Catalogue>(objects: T): void;
|
|
54
49
|
export declare const reconciler: Reconciler.Reconciler<RootStore, Instance<any>, void, Instance<any>, any>;
|
|
@@ -8,7 +8,10 @@ import { type Properties, Camera } from "./utils.js";
|
|
|
8
8
|
interface OffscreenCanvas extends EventTarget {
|
|
9
9
|
}
|
|
10
10
|
export declare const _roots: Map<HTMLCanvasElement | OffscreenCanvas, Root>;
|
|
11
|
-
export type
|
|
11
|
+
export type DefaultGLProps = Omit<THREE.WebGLRendererParameters, 'canvas'> & {
|
|
12
|
+
canvas: HTMLCanvasElement | OffscreenCanvas;
|
|
13
|
+
};
|
|
14
|
+
export type GLProps = Renderer | ((defaultProps: DefaultGLProps) => Renderer) | ((defaultProps: DefaultGLProps) => Promise<Renderer>) | Partial<Properties<THREE.WebGLRenderer> | THREE.WebGLRendererParameters>;
|
|
12
15
|
export type CameraProps = (Camera | Partial<ThreeElement<typeof THREE.Camera> & ThreeElement<typeof THREE.PerspectiveCamera> & ThreeElement<typeof THREE.OrthographicCamera>>) & {
|
|
13
16
|
/** Flags the camera as manual, putting projection into your own hands */
|
|
14
17
|
manual?: boolean;
|
|
@@ -61,12 +64,11 @@ export interface RenderProps<TCanvas extends HTMLCanvasElement | OffscreenCanvas
|
|
|
61
64
|
onPointerMissed?: (event: MouseEvent) => void;
|
|
62
65
|
}
|
|
63
66
|
export interface ReconcilerRoot<TCanvas extends HTMLCanvasElement | OffscreenCanvas> {
|
|
64
|
-
configure: (config?: RenderProps<TCanvas>) => ReconcilerRoot<TCanvas
|
|
67
|
+
configure: (config?: RenderProps<TCanvas>) => Promise<ReconcilerRoot<TCanvas>>;
|
|
65
68
|
render: (element: React.ReactNode) => RootStore;
|
|
66
69
|
unmount: () => void;
|
|
67
70
|
}
|
|
68
71
|
export declare function createRoot<TCanvas extends HTMLCanvasElement | OffscreenCanvas>(canvas: TCanvas): ReconcilerRoot<TCanvas>;
|
|
69
|
-
export declare function render<TCanvas extends HTMLCanvasElement | OffscreenCanvas>(children: React.ReactNode, canvas: TCanvas, config: RenderProps<TCanvas>): RootStore;
|
|
70
72
|
export declare function unmountComponentAtNode<TCanvas extends HTMLCanvasElement | OffscreenCanvas>(canvas: TCanvas, callback?: (canvas: TCanvas) => void): void;
|
|
71
73
|
export type InjectState = Partial<Omit<RootState, 'events'> & {
|
|
72
74
|
events?: {
|
|
@@ -2,7 +2,7 @@ import * as THREE from 'three';
|
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
import { Instance } from "./reconciler.js";
|
|
4
4
|
import type { Fiber } from 'react-reconciler';
|
|
5
|
-
import type { Dpr,
|
|
5
|
+
import type { Dpr, RootStore, Size } from "./store.js";
|
|
6
6
|
export type NonFunctionKeys<P> = {
|
|
7
7
|
[K in keyof P]-?: P[K] extends Function ? never : K;
|
|
8
8
|
}[keyof P];
|
|
@@ -17,23 +17,6 @@ export type IsAllOptional<T extends any[]> = T extends [infer First, ...infer Re
|
|
|
17
17
|
* Returns the instance's initial (outmost) root.
|
|
18
18
|
*/
|
|
19
19
|
export declare function findInitialRoot<T>(instance: Instance<T>): RootStore;
|
|
20
|
-
/**
|
|
21
|
-
* Returns `true` with correct TS type inference if an object has a configurable color space (since r152).
|
|
22
|
-
*/
|
|
23
|
-
export declare const hasColorSpace: <T extends object | THREE.Texture | Renderer, P = T extends Renderer ? {
|
|
24
|
-
outputColorSpace: string;
|
|
25
|
-
} : {
|
|
26
|
-
colorSpace: string;
|
|
27
|
-
}>(object: T) => object is T & P;
|
|
28
|
-
export type ColorManagementRepresentation = {
|
|
29
|
-
enabled: boolean | never;
|
|
30
|
-
} | {
|
|
31
|
-
legacyMode: boolean | never;
|
|
32
|
-
};
|
|
33
|
-
/**
|
|
34
|
-
* The current THREE.ColorManagement instance, if present.
|
|
35
|
-
*/
|
|
36
|
-
export declare const getColorManagement: () => ColorManagementRepresentation | null;
|
|
37
20
|
export type Act = <T = any>(cb: () => Promise<T>) => Promise<T>;
|
|
38
21
|
/**
|
|
39
22
|
* Safely flush async effects when testing, simulating a legacy root.
|
|
@@ -44,6 +27,7 @@ export type Camera = (THREE.OrthographicCamera | THREE.PerspectiveCamera) & {
|
|
|
44
27
|
};
|
|
45
28
|
export declare const isOrthographicCamera: (def: Camera) => def is THREE.OrthographicCamera;
|
|
46
29
|
export declare const isRef: (obj: any) => obj is React.RefObject<unknown>;
|
|
30
|
+
export declare const isColorRepresentation: (value: unknown) => value is THREE.ColorRepresentation;
|
|
47
31
|
/**
|
|
48
32
|
* An SSR-friendly useLayoutEffect.
|
|
49
33
|
*
|
|
@@ -68,21 +52,85 @@ export type UnblockProps = {
|
|
|
68
52
|
children: React.ReactNode;
|
|
69
53
|
};
|
|
70
54
|
export declare function Block({ set }: Omit<UnblockProps, 'children'>): null;
|
|
71
|
-
export declare
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
55
|
+
export declare const ErrorBoundary: {
|
|
56
|
+
new (props: {
|
|
57
|
+
set: React.Dispatch<Error | undefined>;
|
|
58
|
+
children: React.ReactNode;
|
|
59
|
+
}): {
|
|
60
|
+
state: {
|
|
61
|
+
error: boolean;
|
|
62
|
+
};
|
|
63
|
+
componentDidCatch(err: Error): void;
|
|
64
|
+
render(): React.ReactNode;
|
|
65
|
+
context: unknown;
|
|
66
|
+
setState<K extends "error">(state: {
|
|
67
|
+
error: boolean;
|
|
68
|
+
} | ((prevState: Readonly<{
|
|
69
|
+
error: boolean;
|
|
70
|
+
}>, props: Readonly<{
|
|
71
|
+
set: React.Dispatch<Error | undefined>;
|
|
72
|
+
children: React.ReactNode;
|
|
73
|
+
}>) => {
|
|
74
|
+
error: boolean;
|
|
75
|
+
} | Pick<{
|
|
76
|
+
error: boolean;
|
|
77
|
+
}, K> | null) | Pick<{
|
|
78
|
+
error: boolean;
|
|
79
|
+
}, K> | null, callback?: (() => void) | undefined): void;
|
|
80
|
+
forceUpdate(callback?: (() => void) | undefined): void;
|
|
81
|
+
readonly props: Readonly<{
|
|
82
|
+
set: React.Dispatch<Error | undefined>;
|
|
83
|
+
children: React.ReactNode;
|
|
84
|
+
}>;
|
|
85
|
+
componentDidMount?(): void;
|
|
86
|
+
shouldComponentUpdate?(nextProps: Readonly<{
|
|
87
|
+
set: React.Dispatch<Error | undefined>;
|
|
88
|
+
children: React.ReactNode;
|
|
89
|
+
}>, nextState: Readonly<{
|
|
90
|
+
error: boolean;
|
|
91
|
+
}>): boolean;
|
|
92
|
+
componentWillUnmount?(): void;
|
|
93
|
+
getSnapshotBeforeUpdate?(prevProps: Readonly<{
|
|
94
|
+
set: React.Dispatch<Error | undefined>;
|
|
95
|
+
children: React.ReactNode;
|
|
96
|
+
}>, prevState: Readonly<{
|
|
97
|
+
error: boolean;
|
|
98
|
+
}>): any;
|
|
99
|
+
componentDidUpdate?(prevProps: Readonly<{
|
|
100
|
+
set: React.Dispatch<Error | undefined>;
|
|
101
|
+
children: React.ReactNode;
|
|
102
|
+
}>, prevState: Readonly<{
|
|
103
|
+
error: boolean;
|
|
104
|
+
}>, snapshot?: any): void;
|
|
105
|
+
componentWillMount?(): void;
|
|
106
|
+
UNSAFE_componentWillMount?(): void;
|
|
107
|
+
componentWillReceiveProps?(nextProps: Readonly<{
|
|
108
|
+
set: React.Dispatch<Error | undefined>;
|
|
109
|
+
children: React.ReactNode;
|
|
110
|
+
}>): void;
|
|
111
|
+
UNSAFE_componentWillReceiveProps?(nextProps: Readonly<{
|
|
112
|
+
set: React.Dispatch<Error | undefined>;
|
|
113
|
+
children: React.ReactNode;
|
|
114
|
+
}>): void;
|
|
115
|
+
componentWillUpdate?(nextProps: Readonly<{
|
|
116
|
+
set: React.Dispatch<Error | undefined>;
|
|
117
|
+
children: React.ReactNode;
|
|
118
|
+
}>, nextState: Readonly<{
|
|
119
|
+
error: boolean;
|
|
120
|
+
}>): void;
|
|
121
|
+
UNSAFE_componentWillUpdate?(nextProps: Readonly<{
|
|
122
|
+
set: React.Dispatch<Error | undefined>;
|
|
123
|
+
children: React.ReactNode;
|
|
124
|
+
}>, nextState: Readonly<{
|
|
125
|
+
error: boolean;
|
|
126
|
+
}>): void;
|
|
79
127
|
};
|
|
80
|
-
|
|
128
|
+
getDerivedStateFromError: () => {
|
|
81
129
|
error: boolean;
|
|
82
130
|
};
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
}
|
|
131
|
+
contextType?: React.Context<any> | undefined;
|
|
132
|
+
propTypes?: any;
|
|
133
|
+
};
|
|
86
134
|
export interface ObjectMap {
|
|
87
135
|
nodes: {
|
|
88
136
|
[name: string]: THREE.Object3D;
|
|
@@ -111,6 +159,7 @@ export declare const is: {
|
|
|
111
159
|
num: (a: any) => a is number;
|
|
112
160
|
boo: (a: any) => a is boolean;
|
|
113
161
|
und: (a: any) => boolean;
|
|
162
|
+
nul: (a: any) => boolean;
|
|
114
163
|
arr: (a: any) => boolean;
|
|
115
164
|
equ(a: any, b: any, { arrays, objects, strict }?: EquConfig): boolean;
|
|
116
165
|
};
|
|
@@ -135,4 +184,4 @@ export declare function diffProps<T = any>(instance: Instance<T>, newProps: Inst
|
|
|
135
184
|
export declare function applyProps<T = any>(object: Instance<T>['object'], props: Instance<T>['props']): Instance<T>['object'];
|
|
136
185
|
export declare function invalidateInstance(instance: Instance): void;
|
|
137
186
|
export declare function updateCamera(camera: Camera, size: Size): void;
|
|
138
|
-
export declare const isObject3D: (object: any) => object is THREE.Object3D<THREE.
|
|
187
|
+
export declare const isObject3D: (object: any) => object is THREE.Object3D<THREE.Object3DEventMap>;
|
|
@@ -4,11 +4,10 @@ import { RenderProps } from "../core/index.js";
|
|
|
4
4
|
export interface CanvasProps extends Omit<RenderProps<HTMLCanvasElement>, 'size' | 'dpr'>, Omit<ViewProps, 'children'> {
|
|
5
5
|
children: React.ReactNode;
|
|
6
6
|
style?: ViewStyle;
|
|
7
|
-
|
|
8
|
-
export interface Props extends CanvasProps {
|
|
7
|
+
ref?: React.Ref<View>;
|
|
9
8
|
}
|
|
10
9
|
/**
|
|
11
10
|
* A native canvas which accepts threejs elements as children.
|
|
12
11
|
* @see https://docs.pmnd.rs/react-three-fiber/api/canvas
|
|
13
12
|
*/
|
|
14
|
-
export declare
|
|
13
|
+
export declare function Canvas(props: CanvasProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -33,8 +33,12 @@ export interface ReactProps<P> {
|
|
|
33
33
|
export type ElementProps<T extends ConstructorRepresentation, P = InstanceType<T>> = Partial<Overwrite<P, MathProps<P> & ReactProps<P> & EventProps<P>>>;
|
|
34
34
|
export type ThreeElement<T extends ConstructorRepresentation> = Mutable<Overwrite<ElementProps<T>, Omit<InstanceProps<InstanceType<T>, T>, 'object'>>>;
|
|
35
35
|
type ThreeExports = typeof THREE;
|
|
36
|
+
type DuplicateKeys<T, U> = Extract<keyof T, keyof U>;
|
|
37
|
+
type Conflicts = DuplicateKeys<JSX.IntrinsicElements, {
|
|
38
|
+
[K in keyof ThreeExports as Uncapitalize<K>]: any;
|
|
39
|
+
}>;
|
|
36
40
|
type ThreeElementsImpl = {
|
|
37
|
-
[K in keyof ThreeExports as Uncapitalize<K>]: ThreeExports[K] extends ConstructorRepresentation ? ThreeElement<ThreeExports[K]> : never;
|
|
41
|
+
[K in keyof ThreeExports as Uncapitalize<K> extends Conflicts ? `three${Capitalize<K>}` : Uncapitalize<K>]: ThreeExports[K] extends ConstructorRepresentation ? ThreeElement<ThreeExports[K]> : never;
|
|
38
42
|
};
|
|
39
43
|
export interface ThreeElements extends ThreeElementsImpl {
|
|
40
44
|
primitive: Omit<ThreeElement<any>, 'args'> & {
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import { Options as ResizeOptions } from
|
|
2
|
+
import { Options as ResizeOptions } from 'react-use-measure';
|
|
3
3
|
import { RenderProps } from "../core/index.js";
|
|
4
4
|
export interface CanvasProps extends Omit<RenderProps<HTMLCanvasElement>, 'size'>, React.HTMLAttributes<HTMLDivElement> {
|
|
5
5
|
children: React.ReactNode;
|
|
6
|
+
ref?: React.Ref<HTMLCanvasElement>;
|
|
6
7
|
/** Canvas fallback content, similar to img's alt prop */
|
|
7
8
|
fallback?: React.ReactNode;
|
|
8
9
|
/**
|
|
@@ -15,10 +16,8 @@ export interface CanvasProps extends Omit<RenderProps<HTMLCanvasElement>, 'size'
|
|
|
15
16
|
/** The event prefix that is cast into canvas pointer x/y events, default: "offset" */
|
|
16
17
|
eventPrefix?: 'offset' | 'client' | 'page' | 'layer' | 'screen';
|
|
17
18
|
}
|
|
18
|
-
export interface Props extends CanvasProps {
|
|
19
|
-
}
|
|
20
19
|
/**
|
|
21
20
|
* A DOM canvas which accepts threejs elements as children.
|
|
22
21
|
* @see https://docs.pmnd.rs/react-three-fiber/api/canvas
|
|
23
22
|
*/
|
|
24
|
-
export declare
|
|
23
|
+
export declare function Canvas(props: CanvasProps): import("react/jsx-runtime").JSX.Element;
|