@aura3d/react 2.0.4 → 3.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -17,6 +17,30 @@ with typed assets, cameras, lights, effects, and product-viewer scene builders.
17
17
  `AuraSceneBuilder`.
18
18
  - `productViewerScene`: convenience builder for a typed-asset product viewer
19
19
  scene.
20
+ - `useAuraApp` / `AuraAppContext`: the mounted `AuraApp` (undefined until
21
+ mount). Detect "outside a canvas" with `useAuraApp() !== undefined`.
22
+ - `useAuraFrame(callback, priority?)`: the game loop — priority-ordered
23
+ fan-out over one shared `app.onFrame` subscription, cleaned up on unmount.
24
+ - `AuraCanvas` event props (`onPointerDown/Move/Up`, `onHover`): canvas-level
25
+ DOM listeners with unmount cleanup. Pair with `eventInteractionNodes(target)`
26
+ so the F4 picking stack is engaged — a DOM handler alone is not picking.
27
+ - `createAuraAssetResource` / `useAuraAsset` / `resourceForDescriptors`:
28
+ Suspense-compatible asset boundary with `preloadAll` semantics
29
+ (per-record ok/failed evidence; failures throw to an error boundary).
30
+ `<Model suspendOnLoad fallback>` suspends on typed-asset preload.
31
+ - drei-pattern recipes (tested fragments, not deps, not parity):
32
+ `cameraControlsRecipe`, `environmentPresetRecipe`, `transformGizmoRecipe`.
33
+ - `R3F_TO_AURA_MIGRATION_TABLE`: the R3F → AuraCanvas mapping for importers.
34
+
35
+ ## R3F migration note
36
+
37
+ `R3F_TO_AURA_MIGRATION_TABLE` maps idiomatic R3F to the covered AuraCanvas
38
+ surface (Canvas, mesh/model, lights, camera, effects, `useFrame`, `useThree`,
39
+ `useLoader`/Suspense, mesh events, drei OrbitControls/Environment/
40
+ TransformControls). It is a mapping, not an R3F-parity claim
41
+ (`R3F_MIGRATION_NOT_PARITY`). The three-compat migration lab detects
42
+ `@react-three/fiber` / `@react-three/drei` source and points here, and
43
+ documents the manual CSS2D/CSS3D mapping (`CSS2D_CSS3D_MANUAL_MAP`).
20
44
 
21
45
  ## Package Boundary
22
46
 
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { type CSSProperties, type ReactElement, type ReactNode } from "react";
2
- import { type AuraApp, type AuraAssetRef, type AuraCameraSpec, type AuraColor, type AuraCreateAppOptions, type AuraEffectNode, type AuraLightNode, type AuraMaterialSpec, type AuraModelOptions, type AuraSceneBuilder, type AuraTimelineSpec } from "@aura3d/engine";
2
+ import { type AuraApp, type AuraAssetRef, type AuraCameraSpec, type AuraColor, type AuraCreateAppOptions, type AuraEffectNode, type AuraFrameCallback, type AuraLightNode, type AuraMaterialSpec, type AuraModelOptions, type AuraSceneBuilder, type AuraTimelineSpec } from "@aura3d/engine";
3
3
  export interface AuraCanvasProps {
4
4
  readonly children?: ReactNode;
5
5
  readonly diagnostics?: AuraCreateAppOptions["diagnostics"];
@@ -9,6 +9,18 @@ export interface AuraCanvasProps {
9
9
  readonly className?: string;
10
10
  readonly style?: CSSProperties;
11
11
  readonly onReady?: (app: AuraApp) => void;
12
+ /**
13
+ * Declarative canvas event bindings (V1). These are canvas-level DOM
14
+ * listeners, attached on mount and removed on unmount. Per-node picking
15
+ * stays declarative: pair them with `eventInteractionNodes(target)` (or
16
+ * `.onPointer(...)` / `interactions.hover(...)` scene nodes) so the F4
17
+ * picking stack is actually engaged — a DOM handler alone is not picking.
18
+ */
19
+ readonly onPointerDown?: (event: PointerEvent) => void;
20
+ readonly onPointerMove?: (event: PointerEvent) => void;
21
+ readonly onPointerUp?: (event: PointerEvent) => void;
22
+ /** Fires on canvas pointermove for hover-position tracking. */
23
+ readonly onHover?: (event: PointerEvent) => void;
12
24
  }
13
25
  export interface SceneProps {
14
26
  readonly children?: ReactNode;
@@ -19,6 +31,17 @@ export interface SceneProps {
19
31
  }
20
32
  export interface ModelProps extends AuraModelOptions {
21
33
  readonly asset: AuraAssetRef<"model">;
34
+ /**
35
+ * Suspense-compatible asset boundary (V1). When provided, the model
36
+ * suspends until every descriptor preloads, rendering `fallback` meanwhile.
37
+ * Preloading reuses `AssetPreloader` semantics — preload-all with
38
+ * per-record ok/failed evidence — not a second loader: pass
39
+ * `preloader.preloadAll.bind(preloader)` as `loader` when the app already
40
+ * owns a preloader, or omit `loader` to warm the HTTP cache with a fetch.
41
+ */
42
+ readonly suspendOnLoad?: readonly AuraAssetDescriptor[];
43
+ readonly fallback?: ReactNode;
44
+ readonly loader?: AuraAssetPreloadFn;
22
45
  }
23
46
  export interface CameraProps extends Omit<AuraCameraSpec, "mode"> {
24
47
  readonly mode?: AuraCameraSpec["mode"];
@@ -33,12 +56,123 @@ export interface LightsProps {
33
56
  export interface EffectProps extends Omit<AuraEffectNode, "kind" | "effect"> {
34
57
  readonly type: AuraEffectNode["effect"];
35
58
  }
59
+ /**
60
+ * The mounted app, for `useAuraFrame` / `useAuraEvents`. Undefined until
61
+ * `AuraCanvas` mounts (and again after unmount). Components outside an
62
+ * `AuraCanvas` see undefined — they must handle that rather than assume an app.
63
+ */
64
+ export declare const AuraAppContext: import("react").Context<AuraApp | undefined>;
65
+ export declare function useAuraApp(): AuraApp | undefined;
66
+ export interface FrameSubscriberHost {
67
+ onFrame(callback: AuraFrameCallback): () => void;
68
+ }
69
+ export interface FrameScheduler {
70
+ subscribe(callback: AuraFrameCallback, priority?: number): () => void;
71
+ subscriberCount(): number;
72
+ }
73
+ /**
74
+ * Priority-ordered fan-out over one host `onFrame` subscription (V1).
75
+ *
76
+ * Lower `priority` runs first; ties keep subscription order. One host
77
+ * subscription is shared no matter how many components subscribe, and it is
78
+ * released when the last subscriber leaves — that release is the tested
79
+ * unmount-cleanup half of the U1 mount/unmount/listener-clean policy.
80
+ * Pure except for the host calls, so it is unit-testable with a fake host.
81
+ */
82
+ export declare function createFrameScheduler(host: FrameSubscriberHost): FrameScheduler;
83
+ /**
84
+ * The game loop for React developers (V1): subscribe to frames with a
85
+ * priority, automatically unsubscribed on unmount.
86
+ *
87
+ * Must be used under an `AuraCanvas`. The app arrives after mount (the canvas
88
+ * node has to exist first), so the subscription attaches when `useAuraApp()`
89
+ * turns defined — outside an `AuraCanvas` it stays undefined and the callback
90
+ * never fires rather than throwing during the mount pass. Detect that case
91
+ * with `useAuraApp() !== undefined`.
92
+ */
93
+ export type { AuraFrameCallback, AuraFrameInfo } from "@aura3d/engine";
94
+ export declare function useAuraFrame(callback: AuraFrameCallback, priority?: number): void;
95
+ export interface AuraCanvasEventHandlers {
96
+ readonly onPointerDown?: (event: PointerEvent) => void;
97
+ readonly onPointerMove?: (event: PointerEvent) => void;
98
+ readonly onPointerUp?: (event: PointerEvent) => void;
99
+ readonly onHover?: (event: PointerEvent) => void;
100
+ }
101
+ /**
102
+ * Interaction nodes that engage the F4 picking stack for a target node.
103
+ * Add these to the scene alongside `AuraCanvas` event props: the props hear
104
+ * canvas-level DOM events, these nodes declare what the picking stack tracks.
105
+ */
106
+ export declare function eventInteractionNodes(target?: string): readonly [import("@aura3d/engine").AuraNodeBuilder<import("@aura3d/engine").AuraInteractionNode>, import("@aura3d/engine").AuraNodeBuilder<import("@aura3d/engine").AuraInteractionNode>];
36
107
  export declare function AuraCanvas(props: AuraCanvasProps): ReactElement;
37
108
  export declare function Scene(_props: SceneProps): null;
38
- export declare function Model(_props: ModelProps): null;
109
+ export declare function Model(props: ModelProps): ReactElement | null;
39
110
  export declare function Camera(_props: CameraProps): null;
40
111
  export declare function Lights(_props: LightsProps): null;
41
112
  export declare function Effect(_props: EffectProps): null;
113
+ export interface AuraAssetDescriptor {
114
+ readonly id: string;
115
+ readonly url: string;
116
+ }
117
+ export interface AuraAssetPreloadEvidence {
118
+ readonly ok: boolean;
119
+ readonly loaded: readonly string[];
120
+ readonly failed: readonly {
121
+ readonly id: string;
122
+ readonly message: string;
123
+ }[];
124
+ }
125
+ export type AuraAssetPreloadFn = (descriptors: readonly AuraAssetDescriptor[]) => Promise<AuraAssetPreloadEvidence>;
126
+ export interface AuraAssetResource {
127
+ preload(): Promise<AuraAssetPreloadEvidence>;
128
+ read(): AuraAssetPreloadEvidence;
129
+ readonly descriptors: readonly AuraAssetDescriptor[];
130
+ }
131
+ /**
132
+ * Suspense-compatible asset boundary over typed-asset preload (V1).
133
+ *
134
+ * `read()` throws the in-flight promise while pending (so `<Suspense>`
135
+ * shows the fallback), throws the failure once failed (so an error boundary
136
+ * hears it — preload failures are never silent), and returns evidence when
137
+ * ready. Consecutive `preload()` calls share one flight. Not a second loader:
138
+ * the default warms the HTTP cache the engine loader then reads, and apps
139
+ * that own an `AssetPreloader` pass its `preloadAll` as `loader`.
140
+ */
141
+ export declare function createAuraAssetResource(descriptors: readonly AuraAssetDescriptor[], loader?: AuraAssetPreloadFn): AuraAssetResource;
142
+ /** Shared resource per descriptor set, so sibling `<Model>`s preload once. */
143
+ export declare function resourceForDescriptors(descriptors: readonly AuraAssetDescriptor[], loader?: AuraAssetPreloadFn): AuraAssetResource;
144
+ /** Read preloaded asset evidence inside a `<Suspense>` boundary. Suspends while pending. */
145
+ export declare function useAuraAsset(resource: AuraAssetResource): AuraAssetPreloadEvidence;
146
+ /**
147
+ * drei-pattern recipes (V1): documented, tested scene fragments — not deps,
148
+ * not parity claims. Each takes a scene builder and returns it with the
149
+ * recipe's nodes applied.
150
+ */
151
+ export type SceneRecipe = (builder: AuraSceneBuilder) => AuraSceneBuilder;
152
+ /** Camera-controls binding (F1/N2): orbit camera plus an orbit interaction node. */
153
+ export declare function cameraControlsRecipe(options?: {
154
+ readonly distance?: number;
155
+ readonly target?: string;
156
+ }): SceneRecipe;
157
+ /** Environment preset (M3/B3): one IBL environment node from the preset catalog. */
158
+ export declare function environmentPresetRecipe(preset?: "studio" | "materialLab" | "productHero" | "nightCinematic" | "metalStudio" | "glassStudio"): SceneRecipe;
159
+ /** Transform gizmo (F4/O3): drag-vector plus hover-select on a target node. */
160
+ export declare function transformGizmoRecipe(target: string): SceneRecipe;
161
+ export interface R3FMigrationRow {
162
+ /** The idiomatic R3F / drei surface. */
163
+ readonly r3f: string;
164
+ /** The AuraCanvas mapping. A mapping, not a parity claim. */
165
+ readonly aura: string;
166
+ readonly notes: string;
167
+ }
168
+ /**
169
+ * R3F → AuraCanvas mapping table (V1). Documents the manual mapping for
170
+ * importers; "R3F parity" wording is deliberately absent — these are the
171
+ * covered paths, not the whole library.
172
+ */
173
+ export declare const R3F_TO_AURA_MIGRATION_TABLE: readonly R3FMigrationRow[];
174
+ /** Migration-table scope guard: the table maps covered paths, never claims R3F parity. */
175
+ export declare const R3F_MIGRATION_NOT_PARITY = "This table maps idiomatic R3F to the covered AuraCanvas surface. It is not an R3F-parity claim.";
42
176
  export declare function buildSceneFromChildren(children: ReactNode): AuraSceneBuilder;
43
177
  export declare function productViewerScene(asset: AuraAssetRef<"model">, material?: AuraMaterialSpec): AuraSceneBuilder;
44
178
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../packages/react/src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../packages/react/src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,22 +1,130 @@
1
- import { Children, createElement, isValidElement, useEffect, useMemo, useRef } from "react";
2
- import { camera, createAuraApp, effects, lights, model, scene } from "@aura3d/engine";
1
+ import { Children, Suspense, createContext, createElement, isValidElement, useContext, useEffect, useMemo, useRef, useState } from "react";
2
+ import { camera, createAuraApp, effects, environments, interactions, lights, model, scene } from "@aura3d/engine";
3
+ /**
4
+ * The mounted app, for `useAuraFrame` / `useAuraEvents`. Undefined until
5
+ * `AuraCanvas` mounts (and again after unmount). Components outside an
6
+ * `AuraCanvas` see undefined — they must handle that rather than assume an app.
7
+ */
8
+ export const AuraAppContext = createContext(undefined);
9
+ export function useAuraApp() {
10
+ return useContext(AuraAppContext);
11
+ }
12
+ let frameSubscriptionOrder = 0;
13
+ /**
14
+ * Priority-ordered fan-out over one host `onFrame` subscription (V1).
15
+ *
16
+ * Lower `priority` runs first; ties keep subscription order. One host
17
+ * subscription is shared no matter how many components subscribe, and it is
18
+ * released when the last subscriber leaves — that release is the tested
19
+ * unmount-cleanup half of the U1 mount/unmount/listener-clean policy.
20
+ * Pure except for the host calls, so it is unit-testable with a fake host.
21
+ */
22
+ export function createFrameScheduler(host) {
23
+ const entries = [];
24
+ let unsubscribe;
25
+ const dispatch = (frame) => {
26
+ const ordered = [...entries].sort((a, b) => a.priority - b.priority || a.order - b.order);
27
+ for (const entry of ordered)
28
+ entry.callback(frame);
29
+ };
30
+ return {
31
+ subscribe(callback, priority = 0) {
32
+ if (!Number.isFinite(priority))
33
+ throw new Error("Aura3D frame priority must be finite.");
34
+ const entry = { callback, priority, order: frameSubscriptionOrder++ };
35
+ entries.push(entry);
36
+ if (!unsubscribe)
37
+ unsubscribe = host.onFrame(dispatch);
38
+ let released = false;
39
+ return () => {
40
+ if (released)
41
+ return;
42
+ released = true;
43
+ const index = entries.indexOf(entry);
44
+ if (index !== -1)
45
+ entries.splice(index, 1);
46
+ if (entries.length === 0 && unsubscribe) {
47
+ unsubscribe();
48
+ unsubscribe = undefined;
49
+ }
50
+ };
51
+ },
52
+ subscriberCount() {
53
+ return entries.length;
54
+ }
55
+ };
56
+ }
57
+ const schedulers = new WeakMap();
58
+ function schedulerForApp(app) {
59
+ let scheduler = schedulers.get(app);
60
+ if (!scheduler) {
61
+ scheduler = createFrameScheduler(app);
62
+ schedulers.set(app, scheduler);
63
+ }
64
+ return scheduler;
65
+ }
66
+ export function useAuraFrame(callback, priority = 0) {
67
+ const app = useAuraApp();
68
+ const latest = useRef(callback);
69
+ latest.current = callback;
70
+ useEffect(() => {
71
+ if (!app)
72
+ return undefined;
73
+ return schedulerForApp(app).subscribe((frame) => latest.current(frame), priority);
74
+ }, [app, priority]);
75
+ }
76
+ /**
77
+ * Interaction nodes that engage the F4 picking stack for a target node.
78
+ * Add these to the scene alongside `AuraCanvas` event props: the props hear
79
+ * canvas-level DOM events, these nodes declare what the picking stack tracks.
80
+ */
81
+ export function eventInteractionNodes(target) {
82
+ return [
83
+ interactions.pointer(target ? { target } : {}),
84
+ interactions.hover(target ? { target } : {})
85
+ ];
86
+ }
3
87
  export function AuraCanvas(props) {
4
88
  const ref = useRef(null);
89
+ const [app, setApp] = useState(undefined);
5
90
  const builtScene = useMemo(() => buildSceneFromChildren(props.children), [props.children]);
91
+ const handlers = useMemo(() => ({
92
+ ...(props.onPointerDown ? { onPointerDown: props.onPointerDown } : {}),
93
+ ...(props.onPointerMove ? { onPointerMove: props.onPointerMove } : {}),
94
+ ...(props.onPointerUp ? { onPointerUp: props.onPointerUp } : {}),
95
+ ...(props.onHover ? { onHover: props.onHover } : {})
96
+ }), [props.onPointerDown, props.onPointerMove, props.onPointerUp, props.onHover]);
6
97
  useEffect(() => {
7
98
  if (!ref.current)
8
99
  return undefined;
9
- const app = createAuraApp(ref.current, {
100
+ const canvas = ref.current;
101
+ const created = createAuraApp(canvas, {
10
102
  scene: builtScene,
11
103
  diagnostics: props.diagnostics,
12
104
  pixelRatio: props.pixelRatio,
13
105
  autoStart: props.autoStart,
14
106
  resize: props.resize
15
107
  });
16
- props.onReady?.(app);
17
- return () => app.dispose();
18
- }, [builtScene, props.autoStart, props.diagnostics, props.onReady, props.pixelRatio, props.resize]);
19
- return createElement("canvas", {
108
+ setApp(created);
109
+ props.onReady?.(created);
110
+ const pointerDown = (event) => handlers.onPointerDown?.(event);
111
+ const pointerMove = (event) => {
112
+ handlers.onPointerMove?.(event);
113
+ handlers.onHover?.(event);
114
+ };
115
+ const pointerUp = (event) => handlers.onPointerUp?.(event);
116
+ canvas.addEventListener("pointerdown", pointerDown);
117
+ canvas.addEventListener("pointermove", pointerMove);
118
+ canvas.addEventListener("pointerup", pointerUp);
119
+ return () => {
120
+ canvas.removeEventListener("pointerdown", pointerDown);
121
+ canvas.removeEventListener("pointermove", pointerMove);
122
+ canvas.removeEventListener("pointerup", pointerUp);
123
+ created.dispose();
124
+ setApp(undefined);
125
+ };
126
+ }, [builtScene, props.autoStart, props.diagnostics, props.onReady, props.pixelRatio, props.resize, handlers]);
127
+ return createElement(AuraAppContext.Provider, { value: app }, createElement("canvas", {
20
128
  ref,
21
129
  className: props.className,
22
130
  style: {
@@ -25,13 +133,15 @@ export function AuraCanvas(props) {
25
133
  display: "block",
26
134
  ...(props.style ?? {})
27
135
  }
28
- });
136
+ }));
29
137
  }
30
138
  export function Scene(_props) {
31
139
  return null;
32
140
  }
33
- export function Model(_props) {
34
- return null;
141
+ export function Model(props) {
142
+ if (!props.suspendOnLoad || props.suspendOnLoad.length === 0)
143
+ return null;
144
+ return createElement(Suspense, { fallback: props.fallback ?? null }, createElement(ModelPreloader, { descriptors: props.suspendOnLoad, loader: props.loader }));
35
145
  }
36
146
  export function Camera(_props) {
37
147
  return null;
@@ -42,6 +152,137 @@ export function Lights(_props) {
42
152
  export function Effect(_props) {
43
153
  return null;
44
154
  }
155
+ async function fetchPreload(descriptors) {
156
+ const settled = await Promise.allSettled(descriptors.map(async (descriptor) => {
157
+ const response = await fetch(descriptor.url);
158
+ if (!response.ok)
159
+ throw new Error(`HTTP ${response.status} for ${descriptor.url}`);
160
+ await response.arrayBuffer();
161
+ return descriptor.id;
162
+ }));
163
+ const loaded = [];
164
+ const failed = [];
165
+ settled.forEach((result, index) => {
166
+ const id = descriptors[index]?.id ?? `asset-${index}`;
167
+ if (result.status === "fulfilled")
168
+ loaded.push(result.value);
169
+ else
170
+ failed.push({ id, message: result.reason instanceof Error ? result.reason.message : String(result.reason) });
171
+ });
172
+ return { ok: failed.length === 0, loaded, failed };
173
+ }
174
+ /**
175
+ * Suspense-compatible asset boundary over typed-asset preload (V1).
176
+ *
177
+ * `read()` throws the in-flight promise while pending (so `<Suspense>`
178
+ * shows the fallback), throws the failure once failed (so an error boundary
179
+ * hears it — preload failures are never silent), and returns evidence when
180
+ * ready. Consecutive `preload()` calls share one flight. Not a second loader:
181
+ * the default warms the HTTP cache the engine loader then reads, and apps
182
+ * that own an `AssetPreloader` pass its `preloadAll` as `loader`.
183
+ */
184
+ export function createAuraAssetResource(descriptors, loader = fetchPreload) {
185
+ if (descriptors.length === 0)
186
+ throw new Error("Aura3D asset preload requires at least one descriptor.");
187
+ const seen = new Set();
188
+ for (const descriptor of descriptors) {
189
+ if (!descriptor.id || !descriptor.url)
190
+ throw new Error("Aura3D asset descriptors require an id and a url.");
191
+ if (seen.has(descriptor.id))
192
+ throw new Error(`Duplicate Aura3D asset descriptor id "${descriptor.id}".`);
193
+ seen.add(descriptor.id);
194
+ }
195
+ let state;
196
+ const preload = () => {
197
+ if (state?.status === "ready")
198
+ return Promise.resolve(state.evidence);
199
+ if (state?.status === "pending")
200
+ return state.promise;
201
+ if (state?.status === "error")
202
+ return Promise.reject(state.error);
203
+ const promise = loader(descriptors).then((evidence) => {
204
+ state = { status: "ready", evidence };
205
+ return evidence;
206
+ }, (error) => {
207
+ state = { status: "error", error };
208
+ throw error;
209
+ });
210
+ state = { status: "pending", promise };
211
+ return promise;
212
+ };
213
+ return {
214
+ descriptors,
215
+ preload,
216
+ read() {
217
+ if (!state)
218
+ throw preload();
219
+ if (state.status === "pending")
220
+ throw state.promise;
221
+ if (state.status === "error")
222
+ throw state.error;
223
+ return state.evidence;
224
+ }
225
+ };
226
+ }
227
+ const resourceCache = new Map();
228
+ function resourceKey(descriptors) {
229
+ return [...descriptors].map((d) => `${d.id}@${d.url}`).sort().join("|");
230
+ }
231
+ /** Shared resource per descriptor set, so sibling `<Model>`s preload once. */
232
+ export function resourceForDescriptors(descriptors, loader) {
233
+ const key = resourceKey(descriptors);
234
+ let resource = resourceCache.get(key);
235
+ if (!resource) {
236
+ resource = createAuraAssetResource(descriptors, loader);
237
+ resourceCache.set(key, resource);
238
+ }
239
+ return resource;
240
+ }
241
+ /** Read preloaded asset evidence inside a `<Suspense>` boundary. Suspends while pending. */
242
+ export function useAuraAsset(resource) {
243
+ return resource.read();
244
+ }
245
+ function ModelPreloader(props) {
246
+ useAuraAsset(resourceForDescriptors(props.descriptors, props.loader));
247
+ return null;
248
+ }
249
+ /** Camera-controls binding (F1/N2): orbit camera plus an orbit interaction node. */
250
+ export function cameraControlsRecipe(options = {}) {
251
+ return (builder) => builder
252
+ .camera(camera.orbit(options.distance !== undefined ? { distance: options.distance } : {}))
253
+ .add(interactions.orbit(options.target ? { target: options.target } : {}));
254
+ }
255
+ /** Environment preset (M3/B3): one IBL environment node from the preset catalog. */
256
+ export function environmentPresetRecipe(preset = "studio") {
257
+ return (builder) => builder.add(environments[preset]());
258
+ }
259
+ /** Transform gizmo (F4/O3): drag-vector plus hover-select on a target node. */
260
+ export function transformGizmoRecipe(target) {
261
+ if (!target)
262
+ throw new Error("Aura3D transform gizmo recipe requires a target node name.");
263
+ return (builder) => builder.add(interactions.dragVector({ target })).add(interactions.hover({ target, selected: target }));
264
+ }
265
+ /**
266
+ * R3F → AuraCanvas mapping table (V1). Documents the manual mapping for
267
+ * importers; "R3F parity" wording is deliberately absent — these are the
268
+ * covered paths, not the whole library.
269
+ */
270
+ export const R3F_TO_AURA_MIGRATION_TABLE = [
271
+ { r3f: "<Canvas>", aura: "<AuraCanvas>", notes: "Mounts createAuraApp; diagnostics/pixelRatio/autoStart/resize map directly." },
272
+ { r3f: "<mesh> / <primitive>", aura: "<Model asset={...}>", notes: "Typed asset refs only (assets.*); no raw GLB URLs or guessed IDs." },
273
+ { r3f: "<ambientLight> / <pointLight>", aura: "<Lights>", notes: "Studio preset plus ambient/directional/point declarations." },
274
+ { r3f: "<PerspectiveCamera> / OrbitControls", aura: "<Camera> + cameraControlsRecipe", notes: "Orbit/dolly/follow/perspective declarations; recipe adds the orbit interaction node." },
275
+ { r3f: "<EffectComposer> effects", aura: "<Effect>", notes: "Fog/bloom/rain declarations; no postprocess parity beyond the covered set." },
276
+ { r3f: "useFrame(callback)", aura: "useAuraFrame(callback, priority?)", notes: "Priority-ordered fan-out over app.onFrame; cleanup on unmount." },
277
+ { r3f: "useThree((s) => s.gl)", aura: "useAuraApp()", notes: "Returns the mounted AuraApp or undefined before mount." },
278
+ { r3f: "useLoader + <Suspense>", aura: "<Model suspendOnLoad fallback> + useAuraAsset", notes: "preloadAll semantics with per-record ok/failed evidence; failures throw to an error boundary." },
279
+ { r3f: "onPointerOver / onClick on meshes", aura: "AuraCanvas event props + eventInteractionNodes", notes: "Props hear canvas-level DOM events; picking stays declarative via interaction nodes." },
280
+ { r3f: "drei <OrbitControls>", aura: "cameraControlsRecipe", notes: "Tested recipe, not a drei port." },
281
+ { r3f: "drei <Environment>", aura: "environmentPresetRecipe", notes: "IBL preset catalog node; HDRI probe stays on environments.hdri." },
282
+ { r3f: "drei <TransformControls>", aura: "transformGizmoRecipe", notes: "Drag-vector plus hover-select recipe; editor gizmos stay in editor-runtime." }
283
+ ];
284
+ /** Migration-table scope guard: the table maps covered paths, never claims R3F parity. */
285
+ export const R3F_MIGRATION_NOT_PARITY = "This table maps idiomatic R3F to the covered AuraCanvas surface. It is not an R3F-parity claim.";
45
286
  export function buildSceneFromChildren(children) {
46
287
  let builder = scene();
47
288
  const sceneElement = findFirstElementOfType(children, Scene);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/react/src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/react/src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aura3d/react",
3
- "version": "2.0.4",
3
+ "version": "3.0.1",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": {
@@ -11,11 +11,11 @@
11
11
  "main": "./dist/index.js",
12
12
  "types": "./dist/index.d.ts",
13
13
  "peerDependencies": {
14
- "@aura3d/engine": "^2.0.0",
14
+ "@aura3d/engine": "^3.0.1",
15
15
  "react": "^19.0.0 || ^18.0.0"
16
16
  },
17
17
  "devDependencies": {
18
- "@aura3d/engine": "2.0.4"
18
+ "@aura3d/engine": "3.0.1"
19
19
  },
20
20
  "description": "React components and helpers for mounting Aura3D scenes with typed assets, cameras, lights, effects, and product-viewer scene builders.",
21
21
  "keywords": [