@opsydyn/effect-three-foldkit 0.4.0 → 0.6.4

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 CHANGED
@@ -1,5 +1,44 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.6.4](https://github.com/opsydyn/fold-kit-experiments/compare/effect-three-foldkit-v0.6.3...effect-three-foldkit-v0.6.4) (2026-10-30)
4
+
5
+ ### Miscellaneous Chores
6
+
7
+ - **effect-three-foldkit:** Synchronize effect-three versions
8
+
9
+ ## [0.6.3](https://github.com/opsydyn/fold-kit-experiments/compare/effect-three-foldkit-v0.6.2...effect-three-foldkit-v0.6.3) (2026-10-29)
10
+
11
+ ### Bug Fixes
12
+
13
+ - **deps:** move to FoldKit 0.170 and Effect 4.1 with one Effect throughout ([ef2f8c2](https://github.com/opsydyn/fold-kit-experiments/commit/ef2f8c28215cf4d497b6483e3e3acc12f7a33496))
14
+
15
+ ## [0.6.2](https://github.com/opsydyn/fold-kit-experiments/compare/effect-three-foldkit-v0.6.1...effect-three-foldkit-v0.6.2) (2026-10-28)
16
+
17
+ ### Bug Fixes
18
+
19
+ - **deps:** accept FoldKit 0.169 and move the workspace to it ([b5e40b0](https://github.com/opsydyn/fold-kit-experiments/commit/b5e40b0317e594f38c0596aac49f79cccae4a974))
20
+ - **deps:** accept FoldKit 0.169 and move the workspace to it ([fc82d5d](https://github.com/opsydyn/fold-kit-experiments/commit/fc82d5de50151053514e9e7a0ab676a55141e755))
21
+
22
+ ## [0.6.1](https://github.com/opsydyn/fold-kit-experiments/compare/effect-three-foldkit-v0.6.0...effect-three-foldkit-v0.6.1) (2026-10-27)
23
+
24
+ ### Bug Fixes
25
+
26
+ - **effect-three:** let a finger's tap on nothing wander a little ([db9e070](https://github.com/opsydyn/fold-kit-experiments/commit/db9e07046baed1f3e61ba0730e085497d52ba0e1))
27
+
28
+ ## [0.6.0](https://github.com/opsydyn/fold-kit-experiments/compare/effect-three-foldkit-v0.5.0...effect-three-foldkit-v0.6.0) (2026-10-21)
29
+
30
+ ### Features
31
+
32
+ - **effect-three:** snapshot a world on until, and start a run from one ([881d520](https://github.com/opsydyn/fold-kit-experiments/commit/881d5206531c8f0a42fce1e1428034a41e558656))
33
+
34
+ ## [0.5.0](https://github.com/opsydyn/fold-kit-experiments/compare/effect-three-foldkit-v0.4.0...effect-three-foldkit-v0.5.0) (2026-10-20)
35
+
36
+ ### Features
37
+
38
+ - **effect-three-foldkit:** load, share, cancel and free the assets scenes ask for ([eca8f9f](https://github.com/opsydyn/fold-kit-experiments/commit/eca8f9fad2637f7fb5896fb832981c5258be1cdb))
39
+ - **effect-three-foldkit:** stream an asset's levels of detail ([ec5840c](https://github.com/opsydyn/fold-kit-experiments/commit/ec5840c299b7f20d02ffe556f26c7c5fc1293bb4))
40
+ - **effect-three:** physics on the Model's clock, for worlds that must agree ([e91612c](https://github.com/opsydyn/fold-kit-experiments/commit/e91612c50b20be408df2e6e287203456ae45fe1b))
41
+
3
42
  ## [0.4.0](https://github.com/opsydyn/fold-kit-experiments/compare/effect-three-foldkit-v0.3.0...effect-three-foldkit-v0.4.0) (2026-10-20)
4
43
 
5
44
  ### Features
package/README.md CHANGED
@@ -40,13 +40,14 @@ EffectThreeFoldkit.view(
40
40
 
41
41
  - **Updates are in place.** Foldkit hands the element a new scene on every render, and the core diffs it, so unchanged scenes cost no host changes and changed ones reuse their three.js objects.
42
42
  - **Animation never touches the Model.** Behaviours such as `spin` run in the frame loop, outside Foldkit's `update`.
43
- - **Events are typed and opt-in:** `onClick`, `onDoubleClick`, `onContextMenu`, `onPointerDown`, `onPointerUp`, `onPointerEnter`, `onPointerMove`, `onPointerLeave`, `onPointerMissed`, `onWheel`, `onDrag`, `onDragEnd`, `onGesture`, `onGestureEnd`, `onAutoRotated`, `onCollision`, `onContactForce`, `onMeasured`, `onLabelMeasured`, `onXRSession`, `onXRStick`, `onXRButton`, `onXRSurface`, `onXRMoved`, `onXRPlanes`, `onXRMeshes`, `onPerformanceChange`, `onError` and `onReconciled`. Only the handlers you pass are bound. Hits carry the mesh key (and instance), world-space point, distance, face normal and uv.
43
+ - **Events are typed and opt-in:** `onClick`, `onDoubleClick`, `onContextMenu`, `onPointerDown`, `onPointerUp`, `onPointerEnter`, `onPointerMove`, `onPointerLeave`, `onPointerMissed`, `onWheel`, `onDrag`, `onDragEnd`, `onGesture`, `onGestureEnd`, `onAutoRotated`, `onCollision`, `onContactForce`, `onPhysicsReached`, `onMeasured`, `onLabelMeasured`, `onXRSession`, `onXRStick`, `onXRButton`, `onXRSurface`, `onXRMoved`, `onXRPlanes`, `onXRMeshes`, `onPerformanceChange`, `onError`, `onReconciled`, `onAssetLoaded` and `onAssetFailed`. Only the handlers you pass are bound. Hits carry the mesh key (and instance), world-space point, distance, face normal and uv.
44
44
  - **Controls:** with `scene({ gestures: 'scene' })`, `onGesture` reports drags, the wheel and pinches; `orbit(model.camera, gesture)` moves a camera kept in the Model ([ADR-006](../../docs/effect-three/adr/006-controls-as-data.md)).
45
45
  - **Editing widgets as submodels:** `TransformGizmo` (three's `TransformControls`), `PivotControls` (Drei's), `BoxSelect` (three's `SelectionBox`, from shift-drags), `ViewportGizmo` (Drei's `GizmoHelper`, in a scene's `hud`) and `MeasuringTape` each keep a Model, take Messages from the scene's events and report OutMessages (`Moved`, `Finished`, `Selected`, `Turned`, `Measured`) for the parent to apply; `inspectorView` draws the fields `Inspector.fields` reads from a schema as a form. The core keeps the maths pure and checked against three's and Drei's own ([ADR-006](../../docs/effect-three/adr/006-controls-as-data.md)).
46
46
  - **HTML overlays:** `overlays: [{ overlay, content }]` places Model-rendered HTML at points in the scene every drawn frame, as Drei's `Html`.
47
47
  - **Groups and drags:** hits carry their ancestor `path`, and an `interactive` group makes every mesh inside it pickable. A press on a mesh captures the pointer, so `onDrag` keeps firing off the mesh and off the canvas; pair its `ray` with `pointOnPlane` to drag along a plane.
48
48
  - **Pixel ratio:** `makeEnvironment(window, { pixelRatio: [1, 2] })` takes a fixed ratio or a `[min, max]` range around the device's (the default is `[1, 2]`, as React Three Fiber's `dpr`), and re-measures when the device ratio changes.
49
- - **Assets:** `environment.assets.loadModel(id, url)`, `loadTexture(id, url)`, `loadFont(id, url)` and `loadEnvironment(id, url)` load glTF models, textures, typeface fonts and HDR panoramas as Effects for Commands (settle them into `AsyncData`), lend them to the store, and own them: loading an id again replaces and disposes the old asset, and `unload(id)` frees it. Show a model with `borrowed({ id, animation: play('wave') })`; use a texture with `map: id`, a font with `text({ font: id })`, a panorama with `environment({ map: id })` (Drei's presets: `environmentPresetUrl('city')`).
49
+ - **Assets a scene asks for:** list them in the description, `scene({ assets: [modelAsset({ id: 'robot', url: 'robot.glb' }), textureAsset({ id: 'floor', url: 'tiles.png' })] })`. The environment loads each once however many scenes ask, aborts a load no scene asks for any more, and withdraws and disposes an asset when the last scene stops asking; each scene hears `onAssetLoaded` (a model's parts and clips with it) and `onAssetFailed`. An asset with coarser `levels` shows each as it arrives, finer replacing coarser, and `onAssetLoaded` says the `level` and whether it is `final`. Settle them into `AsyncData` by id; to unload, stop asking ([ADR-015](../../docs/effect-three/adr/015-assets-a-scene-asks-for.md)).
50
+ - **Assets from Commands:** `environment.assets.loadModel(id, url)`, `loadTexture(id, url)`, `loadFont(id, url)` and `loadEnvironment(id, url)` load glTF models, textures, typeface fonts and HDR panoramas as Effects for Commands (settle them into `AsyncData`), lend them to the store, and own them: loading an id again replaces and disposes the old asset, and `unload(id)` frees it. Show a model with `borrowed({ id, animation: play('wave') })`; use a texture with `map: id`, a font with `text({ font: id })`, a panorama with `environment({ map: id })` (Drei's presets: `environmentPresetUrl('city')`).
50
51
  - **Engines:** `makeEnvironment(window, { physics: loadRapier(), labels: troikaLabels() })` adds the Rapier physics engine ([`effect-three-rapier`](../effect-three-rapier/README.md); scenes wait for it to load) and the troika label engine ([`effect-three-troika`](../effect-three-troika/README.md)). Without them, bodies stay put and labels are empty.
51
52
  - **XR:** `environment.xr.supported(mode)`, `enter(mode)` and `exit` are Effects for Commands; `enter` (from a click) presents the mounted scene that describes `xr`, in VR or AR. Controllers and hands hover, click and drag; sticks, buttons and AR surfaces arrive through `onXRStick`, `onXRButton` and `onXRSurface` ([ADR-008](../../docs/effect-three/adr/008-immersive-sessions.md)).
52
53
  - **Browser defaults:** a context menu over an interactive mesh keeps the browser's menu shut; elsewhere it opens as usual. Wheel listening is passive, so the page still scrolls.
@@ -0,0 +1,49 @@
1
+ /**
2
+ * The assets scenes ask for with `scene({ assets })` (ADR-015), held for the environment:
3
+ * each loaded once however many scenes ask, lent to the store under its id, its load
4
+ * cancelled when no scene asks for it any more, and withdrawn and disposed when the last
5
+ * scene stops asking. Each scene hears whether what it asked for loaded or failed.
6
+ *
7
+ * An asset with coarser `levels` streams in: every level loads at once, each is lent as it
8
+ * arrives if it is finer than what is shown (replacing it), and once the finest is shown
9
+ * the coarser loads still under way are cancelled. Only the finest failing fails it.
10
+ *
11
+ * An id names one asset at a time: a scene asking for an id another scene holds as
12
+ * something else (another kind or URL) is told it failed, and gets it once the other lets
13
+ * go.
14
+ *
15
+ * @module
16
+ */
17
+ import { type Asset } from '@opsydyn/effect-three';
18
+ /** An asset as loaded and lent: what a model offers, and how to withdraw and free it. */
19
+ export type Lent = {
20
+ readonly parts: ReadonlyArray<string>;
21
+ readonly clips: ReadonlyArray<string>;
22
+ readonly release: () => void;
23
+ };
24
+ /** Loads one asset and lends it under its id; gives up (rejecting) when `signal` aborts. */
25
+ export type AssetLoader = (asset: Asset, signal: AbortSignal) => Promise<Lent>;
26
+ /**
27
+ * What a scene hears about an asset it asked for: a level of detail shown (0 for the
28
+ * coarsest of its levels, `levels.length` for its URL, the finest), or its finest failed.
29
+ */
30
+ export type AssetNotice = ({
31
+ readonly _tag: 'Loaded';
32
+ readonly level: number;
33
+ readonly final: boolean;
34
+ } & Asset & Pick<Lent, 'parts' | 'clips'>) | ({
35
+ readonly _tag: 'Failed';
36
+ readonly reason: string;
37
+ } & Asset);
38
+ /** Who asks: a mounted scene, by any object that stands for it. */
39
+ type Holder = object;
40
+ type Notify = (notice: AssetNotice) => void;
41
+ /** Creates the registry for one environment, loading with `load`. */
42
+ export declare const makeAssetRegistry: (load: AssetLoader) => {
43
+ want: (holder: Holder, assets: ReadonlyArray<Asset>, notify: Notify) => void;
44
+ release: (holder: Holder) => void;
45
+ dispose: () => void;
46
+ };
47
+ export type AssetRegistry = ReturnType<typeof makeAssetRegistry>;
48
+ export {};
49
+ //# sourceMappingURL=assetRegistry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assetRegistry.d.ts","sourceRoot":"","sources":["../src/assetRegistry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EAAE,KAAK,KAAK,EAAe,MAAM,uBAAuB,CAAC;AAEhE,yFAAyF;AACzF,MAAM,MAAM,IAAI,GAAG;IACjB,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACtC,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACtC,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC;CAC9B,CAAC;AAEF,4FAA4F;AAC5F,MAAM,MAAM,WAAW,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAE/E;;;GAGG;AACH,MAAM,MAAM,WAAW,GACnB,CAAC;IACC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB,GAAG,KAAK,GACP,IAAI,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,GAChC,CAAC;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,KAAK,CAAC,CAAC;AAEnE,mEAAmE;AACnE,KAAK,MAAM,GAAG,MAAM,CAAC;AAErB,KAAK,MAAM,GAAG,CAAC,MAAM,EAAE,WAAW,KAAK,IAAI,CAAC;AAiC5C,qEAAqE;AACrE,eAAO,MAAM,iBAAiB,SAAU,WAAW;mBAiH3B,MAAM,UAAU,aAAa,CAAC,KAAK,CAAC,UAAU,MAAM,KAAG,IAAI;sBAYxD,MAAM,KAAG,IAAI;mBAMlB,IAAI;CAMzB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC"}
package/dist/assets.d.ts CHANGED
@@ -1,14 +1,21 @@
1
1
  /**
2
- * Loading textures, glTF models and typeface fonts by URL, as Effects an application runs
3
- * from a Foldkit Command and settles into `AsyncData`. Each asset is lent to the shared
4
- * resource store under an id: materials use a texture with `map: id`, a `borrowed({ id })`
5
- * node shows a model, and `text({ font: id })` geometry draws with a font. The environment owns what it loads: loading an id again replaces and disposes
6
- * the earlier asset, and `unload` or the environment's `dispose` frees it.
2
+ * Loading textures, glTF models, HDR panoramas and typeface fonts by URL. Each asset is
3
+ * lent to the shared resource store under an id: materials use a texture with `map: id`,
4
+ * a `borrowed({ id })` node shows a model, `environment({ map: id })` a panorama, and
5
+ * `text({ font: id })` geometry draws with a font.
6
+ *
7
+ * Two ways in. A scene can ask for assets in its description (`scene({ assets })`), and
8
+ * the environment's registry loads, shares, cancels and frees them as scenes ask
9
+ * (`assetLoader` is what it loads with; ADR-015). Or an application loads one with an
10
+ * Effect from a Command and settles it into `AsyncData`; the environment owns what it
11
+ * loads that way, loading an id again replaces and disposes the earlier asset, and
12
+ * `unload` or the environment's `dispose` frees it. Use one way for any one id.
7
13
  *
8
14
  * @module
9
15
  */
10
16
  import type { ResourceStore } from '@opsydyn/effect-three';
11
17
  import { Effect } from 'effect';
18
+ import type { AssetLoader } from './assetRegistry.ts';
12
19
  declare const AssetLoadError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
13
20
  readonly _tag: "AssetLoadError";
14
21
  } & Readonly<A>;
@@ -26,6 +33,12 @@ export type ModelInfo = {
26
33
  /** Names of the model's animation clips. */
27
34
  readonly clips: ReadonlyArray<string>;
28
35
  };
36
+ /**
37
+ * What the environment's registry loads scenes' assets with: three's loaders, each load
38
+ * with a loading manager of its own, so aborting it cancels its requests (three's file
39
+ * and image-bitmap loaders honour the manager's abort).
40
+ */
41
+ export declare const assetLoader: (store: ResourceStore) => AssetLoader;
29
42
  /** Creates the asset loader for a store. One per environment. */
30
43
  export declare const makeAssets: (store: ResourceStore) => {
31
44
  /** Loads a colour texture (sRGB) and lends it under `id`. Succeeds with the id. */
@@ -1 +1 @@
1
- {"version":3,"file":"assets.d.ts","sourceRoot":"","sources":["../src/assets.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAQ,MAAM,EAAE,MAAM,QAAQ,CAAC;;;;AActC,gDAAgD;AAChD,qBAAa,cAAe,SAAQ,oBAAmC;IACrE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB,CAAC;CAAG;AAEL,0FAA0F;AAC1F,MAAM,MAAM,SAAS,GAAG;IACtB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,4EAA4E;IAC5E,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACtC,4CAA4C;IAC5C,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;CACvC,CAAC;AAEF,iEAAiE;AACjE,eAAO,MAAM,UAAU,UAAW,aAAa;IA4D3C,mFAAmF;IACnF,WAAW,OAAO,MAAM,OAAO,MAAM;IAOrC,gFAAgF;IAChF,SAAS,OAAO,MAAM,OAAO,MAAM;IAOnC;;;;OAIG;IACH,eAAe,OAAO,MAAM,OAAO,MAAM;IAOzC;;;OAGG;IACH,QAAQ,OAAO,MAAM,OAAO,MAAM;IAOlC,kEAAkE;IAClE,MAAM,OAAO,MAAM;IAKnB,iDAAiD;IACjD,OAAO,QApDc,IAAI;CAsD5B,CAAC;AAEF,MAAM,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC"}
1
+ {"version":3,"file":"assets.d.ts","sourceRoot":"","sources":["../src/assets.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,KAAK,EAAoB,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC7E,OAAO,EAAQ,MAAM,EAAE,MAAM,QAAQ,CAAC;AAatC,OAAO,KAAK,EAAE,WAAW,EAAQ,MAAM,oBAAoB,CAAC;;;;AAG5D,gDAAgD;AAChD,qBAAa,cAAe,SAAQ,oBAAmC;IACrE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB,CAAC;CAAG;AAEL,0FAA0F;AAC1F,MAAM,MAAM,SAAS,GAAG;IACtB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,4EAA4E;IAC5E,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACtC,4CAA4C;IAC5C,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;CACvC,CAAC;AA6DF;;;;GAIG;AACH,eAAO,MAAM,WAAW,UACd,aAAa,KAAG,WAKvB,CAAC;AAEJ,iEAAiE;AACjE,eAAO,MAAM,UAAU,UAAW,aAAa;IAqC3C,mFAAmF;IACnF,WAAW,OAAO,MAAM,OAAO,MAAM;IAOrC,gFAAgF;IAChF,SAAS,OAAO,MAAM,OAAO,MAAM;IAOnC;;;;OAIG;IACH,eAAe,OAAO,MAAM,OAAO,MAAM;IAOzC;;;OAGG;IACH,QAAQ,OAAO,MAAM,OAAO,MAAM;IAOlC,kEAAkE;IAClE,MAAM,OAAO,MAAM;IAKnB,iDAAiD;IACjD,OAAO,QApDc,IAAI;CAsD5B,CAAC;AAEF,MAAM,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC"}
@@ -4,6 +4,7 @@
4
4
  * @module
5
5
  */
6
6
  import type { Op, ResourceStore, SceneEvent } from '@opsydyn/effect-three';
7
+ import type { AssetNotice } from '../assetRegistry.ts';
7
8
  import { type SceneError } from '../element.ts';
8
9
  import type { Latch } from './latch.ts';
9
10
  /** Creates a canvas filling `host` and appends it. */
@@ -12,6 +13,12 @@ export declare const appendCanvas: (host: Element) => HTMLCanvasElement;
12
13
  export declare const dispatchSceneEvent: (element: Element, event: SceneEvent) => void;
13
14
  /** Dispatches a rejected scene update as a `scene-error` event. */
14
15
  export declare const dispatchSceneError: (element: Element, error: SceneError) => void;
16
+ /**
17
+ * Dispatches what the environment says about an asset the scene asked for, as a
18
+ * `scene-asset-loaded` or `scene-asset-failed` event. Not held back while time travel is
19
+ * paused: whether an asset loaded is a fact about the page, not a frame.
20
+ */
21
+ export declare const dispatchAssetNotice: (element: Element, notice: AssetNotice) => void;
15
22
  /** Thunk builders, so Effect code can run DOM work with `Effect.sync(thunk)`. */
16
23
  export declare const canvasIn: (host: Element) => () => HTMLCanvasElement;
17
24
  export declare const removal: (node: ChildNode) => () => void;
@@ -1 +1 @@
1
- {"version":3,"file":"canvas.d.ts","sourceRoot":"","sources":["../../src/dom/canvas.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,EAAE,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAE3E,OAAO,EAAgB,KAAK,UAAU,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAGxC,sDAAsD;AACtD,eAAO,MAAM,YAAY,SAAU,OAAO,KAAG,iBAS5C,CAAC;AAEF,iEAAiE;AACjE,eAAO,MAAM,kBAAkB,YAAa,OAAO,SAAS,UAAU,KAAG,IAExE,CAAC;AAEF,mEAAmE;AACnE,eAAO,MAAM,kBAAkB,YAAa,OAAO,SAAS,UAAU,KAAG,IAExE,CAAC;AAEF,iFAAiF;AACjF,eAAO,MAAM,QAAQ,SAAU,OAAO,4BAA6B,CAAC;AACpE,eAAO,MAAM,OAAO,SAAU,SAAS,eAAwB,CAAC;AAChE,yFAAyF;AACzF,eAAO,MAAM,kBAAkB,YAAa,OAAO,QAAQ,KAAK,aAAa,UAAU,eAEtF,CAAC;AACF,eAAO,MAAM,kBAAkB,YAAa,OAAO,aAAa,UAAU,eACtC,CAAC;AAErC;;;GAGG;AACH,eAAO,MAAM,kBAAkB,YACnB,OAAO,SAAS,aAAa,WAAW,aAAa,CAAC,EAAE,CAAC,eAKlE,CAAC"}
1
+ {"version":3,"file":"canvas.d.ts","sourceRoot":"","sources":["../../src/dom/canvas.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,EAAE,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAE3E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAgB,KAAK,UAAU,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAGxC,sDAAsD;AACtD,eAAO,MAAM,YAAY,SAAU,OAAO,KAAG,iBAS5C,CAAC;AAEF,iEAAiE;AACjE,eAAO,MAAM,kBAAkB,YAAa,OAAO,SAAS,UAAU,KAAG,IAExE,CAAC;AAEF,mEAAmE;AACnE,eAAO,MAAM,kBAAkB,YAAa,OAAO,SAAS,UAAU,KAAG,IAExE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,YAAa,OAAO,UAAU,WAAW,KAAG,IAI3E,CAAC;AAEF,iFAAiF;AACjF,eAAO,MAAM,QAAQ,SAAU,OAAO,4BAA6B,CAAC;AACpE,eAAO,MAAM,OAAO,SAAU,SAAS,eAAwB,CAAC;AAChE,yFAAyF;AACzF,eAAO,MAAM,kBAAkB,YAAa,OAAO,QAAQ,KAAK,aAAa,UAAU,eAEtF,CAAC;AACF,eAAO,MAAM,kBAAkB,YAAa,OAAO,aAAa,UAAU,eACtC,CAAC;AAErC;;;GAGG;AACH,eAAO,MAAM,kBAAkB,YACnB,OAAO,SAAS,aAAa,WAAW,aAAa,CAAC,EAAE,CAAC,eAKlE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"pointer.d.ts","sourceRoot":"","sources":["../../src/dom/pointer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAa,YAAY,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAE3F,kDAAkD;AAClD,MAAM,MAAM,IAAI,GAAG;IACjB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,iGAAiG;AACjG,eAAO,MAAM,KAAK,SACV,IAAI,WACD,MAAM,WACN,MAAM,KACd;IAAE,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAA;CAM1C,CAAC;AAmBF;;;GAGG;AACH,eAAO,MAAM,cAAc,UAAW,UAAU,QAAQ,IAAI,KAAG,YAAY,GAAG,SAsC7E,CAAC;AAEF,wFAAwF;AACxF,eAAO,MAAM,eAAe,WAAY,aAAa,CAAC,UAAU,CAAC,KAAG,OACd,CAAC;AAEvD,6FAA6F;AAC7F,eAAO,MAAM,iBAAiB,WAAY,aAAa,CAAC,UAAU,CAAC,KAAG,OAChB,CAAC;AAavD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,gBAAgB,YAClB,WAAW,WACX,CAAC,KAAK,EAAE,YAAY,KAAK,aAAa,CAAC,UAAU,CAAC,mBAC3C,MAAM,OAAO,KAC5B,CAAC,MAAM,IAAI,CA2Bb,CAAC;AAEF,iEAAiE;AACjE,KAAK,YAAY,GAAG;IAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,QAAQ,CAAA;CAAE,CAAC;AAE1D,iEAAiE;AACjE,eAAO,MAAM,cAAc,UAAW,YAAY,WAAS,OAAuC,CAAC;AAEnG,sFAAsF;AACtF,eAAO,MAAM,eAAe,YAAa,WAAW,SAAS,YAAY,WAAS,IAGjF,CAAC"}
1
+ {"version":3,"file":"pointer.d.ts","sourceRoot":"","sources":["../../src/dom/pointer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EACV,QAAQ,EAGR,YAAY,EACZ,UAAU,EACX,MAAM,uBAAuB,CAAC;AAE/B,kDAAkD;AAClD,MAAM,MAAM,IAAI,GAAG;IACjB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,iGAAiG;AACjG,eAAO,MAAM,KAAK,SACV,IAAI,WACD,MAAM,WACN,MAAM,KACd;IAAE,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAA;CAM1C,CAAC;AAyBF;;;GAGG;AACH,eAAO,MAAM,cAAc,UAAW,UAAU,QAAQ,IAAI,KAAG,YAAY,GAAG,SAuC7E,CAAC;AAEF,wFAAwF;AACxF,eAAO,MAAM,eAAe,WAAY,aAAa,CAAC,UAAU,CAAC,KAAG,OACd,CAAC;AAEvD,6FAA6F;AAC7F,eAAO,MAAM,iBAAiB,WAAY,aAAa,CAAC,UAAU,CAAC,KAAG,OAChB,CAAC;AAavD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,gBAAgB,YAClB,WAAW,WACX,CAAC,KAAK,EAAE,YAAY,KAAK,aAAa,CAAC,UAAU,CAAC,mBAC3C,MAAM,OAAO,KAC5B,CAAC,MAAM,IAAI,CA2Bb,CAAC;AAEF,iEAAiE;AACjE,KAAK,YAAY,GAAG;IAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,QAAQ,CAAA;CAAE,CAAC;AAE1D,iEAAiE;AACjE,eAAO,MAAM,cAAc,UAAW,YAAY,WAAS,OAAuC,CAAC;AAEnG,sFAAsF;AACtF,eAAO,MAAM,eAAe,YAAa,WAAW,SAAS,YAAY,WAAS,IAGjF,CAAC"}
package/dist/element.d.ts CHANGED
@@ -30,6 +30,8 @@ export declare const SceneError: Schema.Union<readonly [Schema.TaggedStruct<"Dup
30
30
  readonly view: Schema.String;
31
31
  }>, Schema.TaggedStruct<"UnknownMeasuredNode", {
32
32
  readonly key: Schema.String;
33
+ }>, Schema.TaggedStruct<"DuplicateAssetId", {
34
+ readonly id: Schema.String;
33
35
  }>, Schema.TaggedStruct<"DuplicateJointKey", {
34
36
  readonly key: Schema.String;
35
37
  }>, Schema.TaggedStruct<"UnknownJointBody", {
@@ -260,6 +262,14 @@ export declare const sceneElement: CustomElement.CustomElementSpec<"effect-three
260
262
  readonly paused: Schema.Boolean;
261
263
  readonly timeStep: Schema.Finite;
262
264
  readonly interpolate: Schema.Boolean;
265
+ readonly until: Schema.withDecodingDefaultKey<Schema.NullOr<Schema.Int>, never>;
266
+ readonly run: Schema.withDecodingDefaultKey<Schema.Int, never>;
267
+ readonly snapshotAt: Schema.withDecodingDefaultKey<Schema.NullOr<Schema.Int>, never>;
268
+ readonly from: Schema.withDecodingDefaultKey<Schema.NullOr<Schema.Struct<{
269
+ readonly step: Schema.Int;
270
+ readonly snapshot: Schema.NullOr<Schema.String>;
271
+ }>>, never>;
272
+ readonly keep: Schema.withDecodingDefaultKey<Schema.Int, never>;
263
273
  readonly debug: Schema.Boolean;
264
274
  readonly joints: Schema.$Array<Schema.Struct<{
265
275
  readonly key: Schema.String;
@@ -327,6 +337,12 @@ export declare const sceneElement: CustomElement.CustomElementSpec<"effect-three
327
337
  }>>;
328
338
  }>>;
329
339
  readonly measure: Schema.$Array<Schema.String>;
340
+ readonly assets: Schema.withDecodingDefaultKey<Schema.$Array<Schema.Struct<{
341
+ readonly kind: Schema.Literals<readonly ["model", "texture", "environment", "font"]>;
342
+ readonly id: Schema.String;
343
+ readonly url: Schema.String;
344
+ readonly levels: Schema.withDecodingDefaultKey<Schema.$Array<Schema.String>, never>;
345
+ }>>, never>;
330
346
  readonly render: Schema.Struct<{
331
347
  readonly effects: Schema.$Array<Schema.Union<readonly [Schema.TaggedStruct<"Bloom", {
332
348
  readonly strength: Schema.Finite;
@@ -715,6 +731,12 @@ export declare const sceneElement: CustomElement.CustomElementSpec<"effect-three
715
731
  readonly maxForceDirection: Schema.Tuple<readonly [Schema.Finite, Schema.Finite, Schema.Finite]>;
716
732
  readonly maxForceMagnitude: Schema.Finite;
717
733
  }>;
734
+ 'scene-physics-reached': Schema.Struct<{
735
+ readonly run: Schema.Int;
736
+ readonly step: Schema.Int;
737
+ readonly checksum: Schema.String;
738
+ readonly snapshot: Schema.optionalKey<Schema.String>;
739
+ }>;
718
740
  'scene-measured': Schema.Struct<{
719
741
  readonly key: Schema.String;
720
742
  readonly min: Schema.Tuple<readonly [Schema.Finite, Schema.Finite, Schema.Finite]>;
@@ -798,6 +820,8 @@ export declare const sceneElement: CustomElement.CustomElementSpec<"effect-three
798
820
  readonly view: Schema.String;
799
821
  }>, Schema.TaggedStruct<"UnknownMeasuredNode", {
800
822
  readonly key: Schema.String;
823
+ }>, Schema.TaggedStruct<"DuplicateAssetId", {
824
+ readonly id: Schema.String;
801
825
  }>, Schema.TaggedStruct<"DuplicateJointKey", {
802
826
  readonly key: Schema.String;
803
827
  }>, Schema.TaggedStruct<"UnknownJointBody", {
@@ -809,6 +833,23 @@ export declare const sceneElement: CustomElement.CustomElementSpec<"effect-three
809
833
  readonly issue: Schema.String;
810
834
  }>]>;
811
835
  }>;
836
+ 'scene-asset-loaded': Schema.Struct<{
837
+ readonly kind: Schema.Literals<readonly ["model", "texture", "environment", "font"]>;
838
+ readonly id: Schema.String;
839
+ readonly url: Schema.String;
840
+ readonly levels: Schema.$Array<Schema.String>;
841
+ readonly level: Schema.Int;
842
+ readonly final: Schema.Boolean;
843
+ readonly parts: Schema.$Array<Schema.String>;
844
+ readonly clips: Schema.$Array<Schema.String>;
845
+ }>;
846
+ 'scene-asset-failed': Schema.Struct<{
847
+ readonly kind: Schema.Literals<readonly ["model", "texture", "environment", "font"]>;
848
+ readonly id: Schema.String;
849
+ readonly url: Schema.String;
850
+ readonly levels: Schema.$Array<Schema.String>;
851
+ readonly reason: Schema.String;
852
+ }>;
812
853
  'scene-reconciled': Schema.Struct<{
813
854
  readonly ops: Schema.Struct<{
814
855
  readonly created: Schema.Int;
@@ -852,6 +893,7 @@ export declare const domEventName: {
852
893
  readonly AutoRotated: 'scene-auto-rotated';
853
894
  readonly Collision: 'scene-collision';
854
895
  readonly ContactForce: 'scene-contact-force';
896
+ readonly PhysicsReached: 'scene-physics-reached';
855
897
  readonly Measured: 'scene-measured';
856
898
  readonly LabelMeasured: 'scene-label-measured';
857
899
  readonly XrStick: 'scene-xr-stick';
@@ -1 +1 @@
1
- {"version":3,"file":"element.d.ts","sourceRoot":"","sources":["../src/element.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAGxC,qFAAqF;AACrF,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAGrB,CAAC;AACH,MAAM,MAAM,UAAU,GAAG,OAAO,UAAU,CAAC,IAAI,CAAC;AAIhD,wEAAwE;AACxE,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;EAW3B,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,OAAO,gBAAgB,CAAC,IAAI,CAAC;AAE5D,oFAAoF;AACpF,eAAO,MAAM,eAAe;;EAE1B,CAAC;AACH,MAAM,MAAM,eAAe,GAAG,OAAO,eAAe,CAAC,IAAI,CAAC;AAE1D,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkCvB,CAAC;AAEH,sDAAsD;AACtD,eAAO,MAAM,YAAY;oBAChB,aAAa;0BACP,oBAAoB;0BACpB,oBAAoB;0BACpB,oBAAoB;wBACtB,kBAAkB;2BACf,qBAAqB;0BACtB,oBAAoB;2BACnB,qBAAqB;4BACpB,sBAAsB;oBAC9B,aAAa;mBACd,YAAY;sBACT,gBAAgB;sBAChB,eAAe;yBACZ,mBAAmB;0BAClB,oBAAoB;wBACtB,iBAAiB;2BACd,qBAAqB;uBACzB,gBAAgB;4BACX,sBAAsB;sBAC5B,gBAAgB;uBACf,iBAAiB;wBAChB,kBAAkB;sBACpB,gBAAgB;uBACf,iBAAiB;uBACjB,iBAAiB;iCACP,mBAAmB;CACwC,CAAC;AAElF,yFAAyF;AACzF,eAAO,MAAM,cAAc;;;QAEV,MAAM;;EACrB,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,OAAO,cAAc,CAAC,IAAI,CAAC"}
1
+ {"version":3,"file":"element.d.ts","sourceRoot":"","sources":["../src/element.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAGxC,qFAAqF;AACrF,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAGrB,CAAC;AACH,MAAM,MAAM,UAAU,GAAG,OAAO,UAAU,CAAC,IAAI,CAAC;AAIhD,wEAAwE;AACxE,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;EAW3B,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,OAAO,gBAAgB,CAAC,IAAI,CAAC;AAE5D,oFAAoF;AACpF,eAAO,MAAM,eAAe;;EAE1B,CAAC;AACH,MAAM,MAAM,eAAe,GAAG,OAAO,eAAe,CAAC,IAAI,CAAC;AAE1D,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqCvB,CAAC;AAEH,sDAAsD;AACtD,eAAO,MAAM,YAAY;oBAChB,aAAa;0BACP,oBAAoB;0BACpB,oBAAoB;0BACpB,oBAAoB;wBACtB,kBAAkB;2BACf,qBAAqB;0BACtB,oBAAoB;2BACnB,qBAAqB;4BACpB,sBAAsB;oBAC9B,aAAa;mBACd,YAAY;sBACT,gBAAgB;sBAChB,eAAe;yBACZ,mBAAmB;0BAClB,oBAAoB;wBACtB,iBAAiB;2BACd,qBAAqB;6BACnB,uBAAuB;uBAC7B,gBAAgB;4BACX,sBAAsB;sBAC5B,gBAAgB;uBACf,iBAAiB;wBAChB,kBAAkB;sBACpB,gBAAgB;uBACf,iBAAiB;uBACjB,iBAAiB;iCACP,mBAAmB;CACwC,CAAC;AAElF,yFAAyF;AACzF,eAAO,MAAM,cAAc;;;QAEV,MAAM;;EACrB,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,OAAO,cAAc,CAAC,IAAI,CAAC"}
@@ -49,6 +49,12 @@ export declare const makeEnvironment: (host: EnvironmentHost, options?: Environm
49
49
  unload: (id: string) => import("effect/Effect").Effect<void, never, never>;
50
50
  dispose: () => void;
51
51
  };
52
+ /** The assets scenes ask for in their descriptions: loaded, shared, cancelled, freed. */
53
+ assetRegistry: {
54
+ want: (holder: object, assets: ReadonlyArray<import("@opsydyn/effect-three").Asset>, notify: (notice: import("./assetRegistry.ts").AssetNotice) => void) => void;
55
+ release: (holder: object) => void;
56
+ dispose: () => void;
57
+ };
52
58
  /** Enters and leaves immersive (WebXR) sessions, from Commands. */
53
59
  xr: {
54
60
  supported: (mode: import("./index.ts").XrMode) => import("effect/Effect").Effect<boolean, never, never>;
@@ -1 +1 @@
1
- {"version":3,"file":"environment.d.ts","sourceRoot":"","sources":["../src/environment.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EACL,KAAK,SAAS,EAEd,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,aAAa,EACnB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EAA2B,KAAK,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC5F,OAAO,EAAqB,KAAK,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAKvE,4DAA4D;AAC5D,MAAM,MAAM,eAAe,GAAG,kBAAkB,GAC9C,IAAI,CAAC,MAAM,EAAE,YAAY,GAAG,kBAAkB,CAAC,GAC/C,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC;AAErC,MAAM,MAAM,kBAAkB,GAAG;IAC/B,yEAAyE;IACzE,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,eAAe,CAAC;IACnE,gGAAgG;IAChG,QAAQ,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC;IACjC,mFAAmF;IACnF,QAAQ,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;IAC1D;;;;OAIG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAC1D;;;OAGG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;CAC/B,CAAC;AAEF,yFAAyF;AACzF,eAAO,MAAM,eAAe,SAAU,eAAe,YAAW,kBAAkB;;;;uBAnBnD,iBAAiB,KAAK,eAAe;;;IA8BhE,uEAAuE;;IAEvE,wDAAwD;;IAExD,yEAAyE;;;;;;;;;IAEzE,mEAAmE;;;;;;IAEnE,iFAAiF;;IAEjF,qEAAqE;;CAMxE,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC"}
1
+ {"version":3,"file":"environment.d.ts","sourceRoot":"","sources":["../src/environment.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EACL,KAAK,SAAS,EAEd,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,aAAa,EACnB,MAAM,uBAAuB,CAAC;AAI/B,OAAO,EAA2B,KAAK,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC5F,OAAO,EAAqB,KAAK,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAKvE,4DAA4D;AAC5D,MAAM,MAAM,eAAe,GAAG,kBAAkB,GAC9C,IAAI,CAAC,MAAM,EAAE,YAAY,GAAG,kBAAkB,CAAC,GAC/C,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC;AAErC,MAAM,MAAM,kBAAkB,GAAG;IAC/B,yEAAyE;IACzE,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,eAAe,CAAC;IACnE,gGAAgG;IAChG,QAAQ,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC;IACjC,mFAAmF;IACnF,QAAQ,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;IAC1D;;;;OAIG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAC1D;;;OAGG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;CAC/B,CAAC;AAEF,yFAAyF;AACzF,eAAO,MAAM,eAAe,SAAU,eAAe,YAAW,kBAAkB;;;;uBAnBnD,iBAAiB,KAAK,eAAe;;;IA+BhE,uEAAuE;;IAEvE,wDAAwD;;IAExD,yEAAyE;;;;;;;;;IAEzE,yFAAyF;;;;;;IAEzF,mEAAmE;;;;;;IAEnE,iFAAiF;;IAEjF,qEAAqE;;CAOxE,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC"}
package/dist/index.d.ts CHANGED
@@ -34,5 +34,5 @@ export * as PivotControls from './pivotControls.ts';
34
34
  export * as TransformGizmo from './transformGizmo.ts';
35
35
  export * as ViewportGizmo from './viewportGizmo.ts';
36
36
  export { type OverlayView } from './overlayView.ts';
37
- export { type AutoRotatedDetail, type ButtonDetail, type CollisionDetail, type ContactForceDetail, type DragDetail, type Gesture, type GestureEndDetail, type HitDetail, type KeyDetail, type LabelMeasuredDetail, type MeasuredDetail, type MissDetail, type PerformanceDetail, view, type ViewConfig, type WheelDetail, type XrButtonDetail, type XrMeshesDetail, type XrMovedDetail, type XrPlanesDetail, type XrStickDetail, type XrSurfaceDetail, } from './view.ts';
37
+ export { type AssetFailedDetail, type AssetLoadedDetail, type AutoRotatedDetail, type ButtonDetail, type CollisionDetail, type ContactForceDetail, type DragDetail, type Gesture, type GestureEndDetail, type HitDetail, type KeyDetail, type LabelMeasuredDetail, type MeasuredDetail, type MissDetail, type PerformanceDetail, type PhysicsReachedDetail, view, type ViewConfig, type WheelDetail, type XrButtonDetail, type XrMeshesDetail, type XrMovedDetail, type XrPlanesDetail, type XrStickDetail, type XrSurfaceDetail, } from './view.ts';
38
38
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,EAAE,cAAc,EAAE,KAAK,MAAM,EAAE,UAAU,EAAE,KAAK,SAAS,EAAE,MAAM,aAAa,CAAC;AACtF,OAAO,EAAE,uBAAuB,EAAE,KAAK,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC5F,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,KAAK,IAAI,EACT,KAAK,EACL,cAAc,GACf,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,iBAAiB,EAAE,KAAK,UAAU,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC1F,OAAO,EAAE,oBAAoB,EAAE,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzE,OAAO,EAAE,KAAK,aAAa,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAC5E,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,UAAU,EACV,YAAY,EACZ,cAAc,EACd,eAAe,GAChB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,KAAK,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,eAAe,GAChB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,KAAK,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7D,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAC;AAC5C,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAC;AACpD,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAC;AACpD,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,KAAK,UAAU,EACf,KAAK,OAAO,EACZ,KAAK,gBAAgB,EACrB,KAAK,SAAS,EACd,KAAK,SAAS,EACd,KAAK,mBAAmB,EACxB,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,KAAK,iBAAiB,EACtB,IAAI,EACJ,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,eAAe,GACrB,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,EAAE,cAAc,EAAE,KAAK,MAAM,EAAE,UAAU,EAAE,KAAK,SAAS,EAAE,MAAM,aAAa,CAAC;AACtF,OAAO,EAAE,uBAAuB,EAAE,KAAK,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC5F,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,KAAK,IAAI,EACT,KAAK,EACL,cAAc,GACf,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,iBAAiB,EAAE,KAAK,UAAU,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC1F,OAAO,EAAE,oBAAoB,EAAE,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzE,OAAO,EAAE,KAAK,aAAa,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAC5E,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,UAAU,EACV,YAAY,EACZ,cAAc,EACd,eAAe,GAChB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,KAAK,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,eAAe,GAChB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,KAAK,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7D,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAC;AAC5C,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAC;AACpD,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAC;AACpD,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,KAAK,UAAU,EACf,KAAK,OAAO,EACZ,KAAK,gBAAgB,EACrB,KAAK,SAAS,EACd,KAAK,SAAS,EACd,KAAK,mBAAmB,EACxB,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EACzB,IAAI,EACJ,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,eAAe,GACrB,MAAM,WAAW,CAAC"}