@iwsdk/core 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/dist/asset/asset-manager.d.ts +72 -0
- package/dist/asset/asset-manager.d.ts.map +1 -0
- package/dist/asset/asset-manager.js +138 -0
- package/dist/asset/asset-manager.js.map +1 -0
- package/dist/asset/cache-manager.d.ts +44 -0
- package/dist/asset/cache-manager.d.ts.map +1 -0
- package/dist/asset/cache-manager.js +80 -0
- package/dist/asset/cache-manager.js.map +1 -0
- package/dist/asset/index.d.ts +9 -0
- package/dist/asset/index.d.ts.map +1 -0
- package/dist/asset/loaders/audio-loader.d.ts +21 -0
- package/dist/asset/loaders/audio-loader.d.ts.map +1 -0
- package/dist/asset/loaders/audio-loader.js +57 -0
- package/dist/asset/loaders/audio-loader.js.map +1 -0
- package/dist/asset/loaders/gltf-loader.d.ts +33 -0
- package/dist/asset/loaders/gltf-loader.d.ts.map +1 -0
- package/dist/asset/loaders/gltf-loader.js +79 -0
- package/dist/asset/loaders/gltf-loader.js.map +1 -0
- package/dist/asset/loaders/hdr-texture-loader.d.ts +18 -0
- package/dist/asset/loaders/hdr-texture-loader.d.ts.map +1 -0
- package/dist/asset/loaders/hdr-texture-loader.js +65 -0
- package/dist/asset/loaders/hdr-texture-loader.js.map +1 -0
- package/dist/asset/loaders/texture-loader.d.ts +21 -0
- package/dist/asset/loaders/texture-loader.d.ts.map +1 -0
- package/dist/asset/loaders/texture-loader.js +57 -0
- package/dist/asset/loaders/texture-loader.js.map +1 -0
- package/dist/audio/audio-pool.d.ts +59 -0
- package/dist/audio/audio-pool.d.ts.map +1 -0
- package/dist/audio/audio-pool.js +105 -0
- package/dist/audio/audio-pool.js.map +1 -0
- package/dist/audio/audio-system.d.ts +326 -0
- package/dist/audio/audio-system.d.ts.map +1 -0
- package/dist/audio/audio-system.js +478 -0
- package/dist/audio/audio-system.js.map +1 -0
- package/dist/audio/audio-utils.d.ts +71 -0
- package/dist/audio/audio-utils.d.ts.map +1 -0
- package/dist/audio/audio-utils.js +145 -0
- package/dist/audio/audio-utils.js.map +1 -0
- package/dist/audio/audio.d.ts +178 -0
- package/dist/audio/audio.d.ts.map +1 -0
- package/dist/audio/audio.js +104 -0
- package/dist/audio/audio.js.map +1 -0
- package/dist/audio/index.d.ts +11 -0
- package/dist/audio/index.d.ts.map +1 -0
- package/dist/ecs/component-registry.d.ts +54 -0
- package/dist/ecs/component-registry.d.ts.map +1 -0
- package/dist/ecs/component-registry.js +86 -0
- package/dist/ecs/component-registry.js.map +1 -0
- package/dist/ecs/component.d.ts +12 -0
- package/dist/ecs/component.d.ts.map +1 -0
- package/dist/ecs/entity.d.ts +17 -0
- package/dist/ecs/entity.d.ts.map +1 -0
- package/dist/ecs/entity.js +13 -0
- package/dist/ecs/entity.js.map +1 -0
- package/dist/ecs/index.d.ts +12 -0
- package/dist/ecs/index.d.ts.map +1 -0
- package/dist/ecs/system.d.ts +70 -0
- package/dist/ecs/system.d.ts.map +1 -0
- package/dist/ecs/system.js +79 -0
- package/dist/ecs/system.js.map +1 -0
- package/dist/ecs/world.d.ts +101 -0
- package/dist/ecs/world.d.ts.map +1 -0
- package/dist/ecs/world.js +165 -0
- package/dist/ecs/world.js.map +1 -0
- package/dist/environment/dome-gradient.d.ts +39 -0
- package/dist/environment/dome-gradient.d.ts.map +1 -0
- package/dist/environment/dome-gradient.js +30 -0
- package/dist/environment/dome-gradient.js.map +1 -0
- package/dist/environment/dome-texture.d.ts +39 -0
- package/dist/environment/dome-texture.d.ts.map +1 -0
- package/dist/environment/dome-texture.js +30 -0
- package/dist/environment/dome-texture.js.map +1 -0
- package/dist/environment/environment-system.d.ts +82 -0
- package/dist/environment/environment-system.d.ts.map +1 -0
- package/dist/environment/environment-system.js +389 -0
- package/dist/environment/environment-system.js.map +1 -0
- package/dist/environment/gradient-environment.d.ts +37 -0
- package/dist/environment/gradient-environment.d.ts.map +1 -0
- package/dist/environment/gradient-environment.js +99 -0
- package/dist/environment/gradient-environment.js.map +1 -0
- package/dist/environment/ibl-gradient.d.ts +38 -0
- package/dist/environment/ibl-gradient.d.ts.map +1 -0
- package/dist/environment/ibl-gradient.js +29 -0
- package/dist/environment/ibl-gradient.js.map +1 -0
- package/dist/environment/ibl-texture.d.ts +36 -0
- package/dist/environment/ibl-texture.d.ts.map +1 -0
- package/dist/environment/ibl-texture.js +30 -0
- package/dist/environment/ibl-texture.js.map +1 -0
- package/dist/environment/index.d.ts +12 -0
- package/dist/environment/index.d.ts.map +1 -0
- package/dist/grab/distance-grabbable.d.ts +115 -0
- package/dist/grab/distance-grabbable.d.ts.map +1 -0
- package/dist/grab/distance-grabbable.js +102 -0
- package/dist/grab/distance-grabbable.js.map +1 -0
- package/dist/grab/grab-system.d.ts +320 -0
- package/dist/grab/grab-system.d.ts.map +1 -0
- package/dist/grab/grab-system.js +239 -0
- package/dist/grab/grab-system.js.map +1 -0
- package/dist/grab/handles.d.ts +43 -0
- package/dist/grab/handles.d.ts.map +1 -0
- package/dist/grab/handles.js +132 -0
- package/dist/grab/handles.js.map +1 -0
- package/dist/grab/index.d.ts +13 -0
- package/dist/grab/index.d.ts.map +1 -0
- package/dist/grab/index.js +23 -0
- package/dist/grab/index.js.map +1 -0
- package/dist/grab/one-hand-grabbable.d.ts +80 -0
- package/dist/grab/one-hand-grabbable.d.ts.map +1 -0
- package/dist/grab/one-hand-grabbable.js +80 -0
- package/dist/grab/one-hand-grabbable.js.map +1 -0
- package/dist/grab/pointer-events-patch.d.ts +16 -0
- package/dist/grab/pointer-events-patch.d.ts.map +1 -0
- package/dist/grab/pointer-events-patch.js +223 -0
- package/dist/grab/pointer-events-patch.js.map +1 -0
- package/dist/grab/two-hands-grabbable.d.ts +103 -0
- package/dist/grab/two-hands-grabbable.d.ts.map +1 -0
- package/dist/grab/two-hands-grabbable.js +100 -0
- package/dist/grab/two-hands-grabbable.js.map +1 -0
- package/dist/index.d.ts +27 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +82 -0
- package/dist/index.js.map +1 -0
- package/dist/init/index.d.ts +9 -0
- package/dist/init/index.d.ts.map +1 -0
- package/dist/init/world-initializer.d.ts +76 -0
- package/dist/init/world-initializer.d.ts.map +1 -0
- package/dist/init/world-initializer.js +403 -0
- package/dist/init/world-initializer.js.map +1 -0
- package/dist/init/xr.d.ts +87 -0
- package/dist/init/xr.d.ts.map +1 -0
- package/dist/init/xr.js +193 -0
- package/dist/init/xr.js.map +1 -0
- package/dist/input/index.d.ts +9 -0
- package/dist/input/index.d.ts.map +1 -0
- package/dist/input/input-system.d.ts +52 -0
- package/dist/input/input-system.d.ts.map +1 -0
- package/dist/input/input-system.js +176 -0
- package/dist/input/input-system.js.map +1 -0
- package/dist/input/state-tags.d.ts +56 -0
- package/dist/input/state-tags.d.ts.map +1 -0
- package/dist/input/state-tags.js +63 -0
- package/dist/input/state-tags.js.map +1 -0
- package/dist/level/index.d.ts +12 -0
- package/dist/level/index.d.ts.map +1 -0
- package/dist/level/level-entity-creator.d.ts +27 -0
- package/dist/level/level-entity-creator.d.ts.map +1 -0
- package/dist/level/level-entity-creator.js +110 -0
- package/dist/level/level-entity-creator.js.map +1 -0
- package/dist/level/level-glxf-importer.d.ts +22 -0
- package/dist/level/level-glxf-importer.d.ts.map +1 -0
- package/dist/level/level-glxf-importer.js +40 -0
- package/dist/level/level-glxf-importer.js.map +1 -0
- package/dist/level/level-root.d.ts +18 -0
- package/dist/level/level-root.d.ts.map +1 -0
- package/dist/level/level-root.js +25 -0
- package/dist/level/level-root.js.map +1 -0
- package/dist/level/level-system.d.ts +54 -0
- package/dist/level/level-system.d.ts.map +1 -0
- package/dist/level/level-system.js +134 -0
- package/dist/level/level-system.js.map +1 -0
- package/dist/level/level-tag.d.ts +25 -0
- package/dist/level/level-tag.d.ts.map +1 -0
- package/dist/level/level-tag.js +28 -0
- package/dist/level/level-tag.js.map +1 -0
- package/dist/locomotion/geometries/beveled-cylinder.d.ts +12 -0
- package/dist/locomotion/geometries/beveled-cylinder.d.ts.map +1 -0
- package/dist/locomotion/geometries/beveled-cylinder.js +64 -0
- package/dist/locomotion/geometries/beveled-cylinder.js.map +1 -0
- package/dist/locomotion/index.d.ts +11 -0
- package/dist/locomotion/index.d.ts.map +1 -0
- package/dist/locomotion/locomotion.d.ts +239 -0
- package/dist/locomotion/locomotion.d.ts.map +1 -0
- package/dist/locomotion/locomotion.js +256 -0
- package/dist/locomotion/locomotion.js.map +1 -0
- package/dist/locomotion/materials/line.d.ts +24 -0
- package/dist/locomotion/materials/line.d.ts.map +1 -0
- package/dist/locomotion/materials/line.js +307 -0
- package/dist/locomotion/materials/line.js.map +1 -0
- package/dist/locomotion/slide.d.ts +76 -0
- package/dist/locomotion/slide.d.ts.map +1 -0
- package/dist/locomotion/slide.js +131 -0
- package/dist/locomotion/slide.js.map +1 -0
- package/dist/locomotion/teleport.d.ts +68 -0
- package/dist/locomotion/teleport.d.ts.map +1 -0
- package/dist/locomotion/teleport.js +150 -0
- package/dist/locomotion/teleport.js.map +1 -0
- package/dist/locomotion/turn.d.ts +77 -0
- package/dist/locomotion/turn.d.ts.map +1 -0
- package/dist/locomotion/turn.js +126 -0
- package/dist/locomotion/turn.js.map +1 -0
- package/dist/node_modules/.pnpm/@pmndrs_uikitml@0.0.10_@pmndrs_uikit@1.0.32_super-three@0.177.0_/node_modules/@pmndrs/uikitml/dist/index.js +13 -0
- package/dist/node_modules/.pnpm/@pmndrs_uikitml@0.0.10_@pmndrs_uikit@1.0.32_super-three@0.177.0_/node_modules/@pmndrs/uikitml/dist/index.js.map +1 -0
- package/dist/node_modules/.pnpm/@pmndrs_uikitml@0.0.10_@pmndrs_uikit@1.0.32_super-three@0.177.0_/node_modules/@pmndrs/uikitml/dist/interpreter/index.js +154 -0
- package/dist/node_modules/.pnpm/@pmndrs_uikitml@0.0.10_@pmndrs_uikit@1.0.32_super-three@0.177.0_/node_modules/@pmndrs/uikitml/dist/interpreter/index.js.map +1 -0
- package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/common/error-codes.js +66 -0
- package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/common/error-codes.js.map +1 -0
- package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/common/foreign-content.js +162 -0
- package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/common/foreign-content.js.map +1 -0
- package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/common/html.js +519 -0
- package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/common/html.js.map +1 -0
- package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/common/token.js +15 -0
- package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/common/token.js.map +1 -0
- package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/common/unicode.js +32 -0
- package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/common/unicode.js.map +1 -0
- package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/parser/formatting-element-list.js +10 -0
- package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/parser/formatting-element-list.js.map +1 -0
- package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/parser/index.js +41 -0
- package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/parser/index.js.map +1 -0
- package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/parser/open-element-stack.js +35 -0
- package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/parser/open-element-stack.js.map +1 -0
- package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/serializer/index.js +24 -0
- package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/serializer/index.js.map +1 -0
- package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/tokenizer/index.js +92 -0
- package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/tokenizer/index.js.map +1 -0
- package/dist/node_modules/.pnpm/super-three@0.177.0/node_modules/super-three/examples/jsm/libs/fflate.module.js +382 -0
- package/dist/node_modules/.pnpm/super-three@0.177.0/node_modules/super-three/examples/jsm/libs/fflate.module.js.map +1 -0
- package/dist/node_modules/.pnpm/super-three@0.177.0/node_modules/super-three/examples/jsm/loaders/EXRLoader.js +2587 -0
- package/dist/node_modules/.pnpm/super-three@0.177.0/node_modules/super-three/examples/jsm/loaders/EXRLoader.js.map +1 -0
- package/dist/node_modules/.pnpm/super-three@0.177.0/node_modules/super-three/examples/jsm/loaders/RGBELoader.js +477 -0
- package/dist/node_modules/.pnpm/super-three@0.177.0/node_modules/super-three/examples/jsm/loaders/RGBELoader.js.map +1 -0
- package/dist/node_modules/.pnpm/super-three@0.177.0/node_modules/super-three/src/math/MathUtils.js +17 -0
- package/dist/node_modules/.pnpm/super-three@0.177.0/node_modules/super-three/src/math/MathUtils.js.map +1 -0
- package/dist/physics/index.d.ts +11 -0
- package/dist/physics/index.d.ts.map +1 -0
- package/dist/physics/physics-system.d.ts +314 -0
- package/dist/physics/physics-system.d.ts.map +1 -0
- package/dist/physics/physics-system.js +419 -0
- package/dist/physics/physics-system.js.map +1 -0
- package/dist/physics/physicsBody.d.ts +83 -0
- package/dist/physics/physicsBody.d.ts.map +1 -0
- package/dist/physics/physicsBody.js +60 -0
- package/dist/physics/physicsBody.js.map +1 -0
- package/dist/physics/physicsManipulation.d.ts +51 -0
- package/dist/physics/physicsManipulation.d.ts.map +1 -0
- package/dist/physics/physicsManipulation.js +46 -0
- package/dist/physics/physicsManipulation.js.map +1 -0
- package/dist/physics/physicsShape.d.ts +133 -0
- package/dist/physics/physicsShape.d.ts.map +1 -0
- package/dist/physics/physicsShape.js +97 -0
- package/dist/physics/physicsShape.js.map +1 -0
- package/dist/physics/utils.d.ts +21 -0
- package/dist/physics/utils.d.ts.map +1 -0
- package/dist/physics/utils.js +130 -0
- package/dist/physics/utils.js.map +1 -0
- package/dist/runtime/index.d.ts +8 -0
- package/dist/runtime/index.d.ts.map +1 -0
- package/dist/runtime/three.d.ts +8 -0
- package/dist/runtime/three.d.ts.map +1 -0
- package/dist/runtime/three.js +18 -0
- package/dist/runtime/three.js.map +1 -0
- package/dist/scene-understanding/anchor.d.ts +42 -0
- package/dist/scene-understanding/anchor.d.ts.map +1 -0
- package/dist/scene-understanding/anchor.js +45 -0
- package/dist/scene-understanding/anchor.js.map +1 -0
- package/dist/scene-understanding/index.d.ts +11 -0
- package/dist/scene-understanding/index.d.ts.map +1 -0
- package/dist/scene-understanding/mesh.d.ts +67 -0
- package/dist/scene-understanding/mesh.d.ts.map +1 -0
- package/dist/scene-understanding/mesh.js +55 -0
- package/dist/scene-understanding/mesh.js.map +1 -0
- package/dist/scene-understanding/plane.d.ts +39 -0
- package/dist/scene-understanding/plane.d.ts.map +1 -0
- package/dist/scene-understanding/plane.js +42 -0
- package/dist/scene-understanding/plane.js.map +1 -0
- package/dist/scene-understanding/scene-understanding-system.d.ts +180 -0
- package/dist/scene-understanding/scene-understanding-system.d.ts.map +1 -0
- package/dist/scene-understanding/scene-understanding-system.js +342 -0
- package/dist/scene-understanding/scene-understanding-system.js.map +1 -0
- package/dist/transform/index.d.ts +10 -0
- package/dist/transform/index.d.ts.map +1 -0
- package/dist/transform/synced-quaternion.d.ts +35 -0
- package/dist/transform/synced-quaternion.d.ts.map +1 -0
- package/dist/transform/synced-quaternion.js +128 -0
- package/dist/transform/synced-quaternion.js.map +1 -0
- package/dist/transform/synced-vector3.d.ts +34 -0
- package/dist/transform/synced-vector3.d.ts.map +1 -0
- package/dist/transform/synced-vector3.js +106 -0
- package/dist/transform/synced-vector3.js.map +1 -0
- package/dist/transform/transform.d.ts +100 -0
- package/dist/transform/transform.d.ts.map +1 -0
- package/dist/transform/transform.js +194 -0
- package/dist/transform/transform.js.map +1 -0
- package/dist/types/webxr-augmentations.d.ts +23 -0
- package/dist/types/webxr-augmentations.d.ts.map +1 -0
- package/dist/ui/document.d.ts +112 -0
- package/dist/ui/document.d.ts.map +1 -0
- package/dist/ui/document.js +298 -0
- package/dist/ui/document.js.map +1 -0
- package/dist/ui/follow.d.ts +197 -0
- package/dist/ui/follow.d.ts.map +1 -0
- package/dist/ui/follow.js +143 -0
- package/dist/ui/follow.js.map +1 -0
- package/dist/ui/index.d.ts +18 -0
- package/dist/ui/index.d.ts.map +1 -0
- package/dist/ui/screenspace.d.ts +219 -0
- package/dist/ui/screenspace.d.ts.map +1 -0
- package/dist/ui/screenspace.js +215 -0
- package/dist/ui/screenspace.js.map +1 -0
- package/dist/ui/ui.d.ts +209 -0
- package/dist/ui/ui.d.ts.map +1 -0
- package/dist/ui/ui.js +185 -0
- package/dist/ui/ui.js.map +1 -0
- package/dist/vendor/basis/README.md +46 -0
- package/dist/vendor/basis/basis_transcoder.js +19 -0
- package/dist/vendor/basis/basis_transcoder.wasm +0 -0
- package/dist/vendor/draco/README.md +32 -0
- package/dist/vendor/draco/draco_decoder.js +34 -0
- package/dist/vendor/draco/draco_decoder.wasm +0 -0
- package/dist/vendor/draco/draco_encoder.js +33 -0
- package/dist/vendor/draco/draco_wasm_wrapper.js +117 -0
- package/dist/vendor/draco/gltf/draco_decoder.js +33 -0
- package/dist/vendor/draco/gltf/draco_decoder.wasm +0 -0
- package/dist/vendor/draco/gltf/draco_encoder.js +33 -0
- package/dist/vendor/draco/gltf/draco_wasm_wrapper.js +116 -0
- package/dist/version.d.ts +2 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +4 -0
- package/dist/version.js.map +1 -0
- package/dist/visibility/index.d.ts +8 -0
- package/dist/visibility/index.d.ts.map +1 -0
- package/dist/visibility/visibility.d.ts +37 -0
- package/dist/visibility/visibility.d.ts.map +1 -0
- package/dist/visibility/visibility.js +52 -0
- package/dist/visibility/visibility.js.map +1 -0
- package/package.json +46 -0
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
import { sampleParabolicCurve } from '@iwsdk/locomotor';
|
|
2
|
+
import { InputComponent, AxesState } from '@iwsdk/xr-input';
|
|
3
|
+
import { Line2 } from 'three/examples/jsm/lines/Line2.js';
|
|
4
|
+
import { LineGeometry } from 'three/examples/jsm/lines/LineGeometry.js';
|
|
5
|
+
import { createSystem } from '../ecs/system.js';
|
|
6
|
+
import '../ecs/world.js';
|
|
7
|
+
import { Types } from 'elics';
|
|
8
|
+
import '../ecs/component-registry.js';
|
|
9
|
+
import '../runtime/three.js';
|
|
10
|
+
import { LineMaterial } from './materials/line.js';
|
|
11
|
+
import { Color, Vector3, MeshBasicMaterial, Mesh, RingGeometry } from 'three';
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
15
|
+
*
|
|
16
|
+
* This source code is licensed under the MIT license found in the
|
|
17
|
+
* LICENSE file in the root directory of this source tree.
|
|
18
|
+
*/
|
|
19
|
+
const Colors = {
|
|
20
|
+
valid: new Color(0xffffff),
|
|
21
|
+
invalid: new Color(0xed4337),
|
|
22
|
+
};
|
|
23
|
+
const Scales = {
|
|
24
|
+
valid: new Vector3(1, 1, 1),
|
|
25
|
+
invalid: new Vector3(0.5, 0.5, 0.5),
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* Arc‑based teleportation with surface validation and hand/controller input.
|
|
29
|
+
*
|
|
30
|
+
* @remarks
|
|
31
|
+
* - Uses locomotor ray hit tests and only allows targets with upward normals.
|
|
32
|
+
* - In hand‑tracking mode, optional micro‑gestures can control activation
|
|
33
|
+
* (e.g., thumb tap to confirm).
|
|
34
|
+
* - Draws a curved parabolic guide and landing marker with visual feedback.
|
|
35
|
+
*
|
|
36
|
+
* @category Locomotion
|
|
37
|
+
*/
|
|
38
|
+
class TeleportSystem extends createSystem({}, {
|
|
39
|
+
/** Downward acceleration for the parabolic guide (negative). */
|
|
40
|
+
rayGravity: { type: Types.Float32, default: -0.4 },
|
|
41
|
+
/** Locomotor engine used for hit testing and teleport execution. */
|
|
42
|
+
locomotor: { type: Types.Object, default: undefined },
|
|
43
|
+
/** Enable hand‑tracking micro‑gesture flow for activation/confirm. */
|
|
44
|
+
microGestureControlsEnabled: { type: Types.Boolean, default: false },
|
|
45
|
+
}) {
|
|
46
|
+
constructor() {
|
|
47
|
+
super(...arguments);
|
|
48
|
+
this.rayOrigin = new Vector3();
|
|
49
|
+
this.rayDirection = new Vector3();
|
|
50
|
+
this.targetValid = false;
|
|
51
|
+
this.teleportWasActive = false;
|
|
52
|
+
}
|
|
53
|
+
init() {
|
|
54
|
+
this.locomotor = this.config.locomotor.value;
|
|
55
|
+
this.markerMat = new MeshBasicMaterial();
|
|
56
|
+
this.teleportMarker = new Mesh(new RingGeometry(0.12, 0.15).translate(0, 0, 0.02), this.markerMat);
|
|
57
|
+
this.scene.add(this.teleportMarker);
|
|
58
|
+
this.markers = [];
|
|
59
|
+
for (let i = 0; i < 20; i++) {
|
|
60
|
+
this.markers.push(new Vector3(0, i, 0));
|
|
61
|
+
}
|
|
62
|
+
const geometry = new LineGeometry().setFromPoints(this.markers);
|
|
63
|
+
const mat = new LineMaterial({
|
|
64
|
+
color: 0xffffff,
|
|
65
|
+
linewidth: 0.01,
|
|
66
|
+
worldUnits: true,
|
|
67
|
+
vertexColors: true,
|
|
68
|
+
alphaToCoverage: false,
|
|
69
|
+
transparent: true,
|
|
70
|
+
});
|
|
71
|
+
this.line = new Line2(geometry, mat);
|
|
72
|
+
this.line.frustumCulled = false;
|
|
73
|
+
this.scene.add(this.line);
|
|
74
|
+
this.line.visible = false;
|
|
75
|
+
this.teleportMarker.visible = false;
|
|
76
|
+
}
|
|
77
|
+
destroy() {
|
|
78
|
+
this.teleportMarker.removeFromParent();
|
|
79
|
+
this.line.removeFromParent();
|
|
80
|
+
// Note: No need to remove raycastTarget as we use locomotor's hit test target
|
|
81
|
+
}
|
|
82
|
+
update() {
|
|
83
|
+
var _a, _b;
|
|
84
|
+
// Get hit test target from locomotor
|
|
85
|
+
const hitTestTarget = this.locomotor.hitTestTarget;
|
|
86
|
+
const hitTestNormal = this.locomotor.hitTestNormal;
|
|
87
|
+
// Validate target: must have hit AND normal must be mostly upward-facing (> 0.7)
|
|
88
|
+
this.targetValid = hitTestTarget.visible && hitTestNormal.y > 0.7;
|
|
89
|
+
const gamepad = this.input.gamepads.right;
|
|
90
|
+
const pointerBusy = this.input.multiPointers.right.getRayBusy();
|
|
91
|
+
let teleportActive = !!gamepad && !pointerBusy;
|
|
92
|
+
const cancelAction = !gamepad ||
|
|
93
|
+
pointerBusy ||
|
|
94
|
+
gamepad !== this.activeInput ||
|
|
95
|
+
(this.input.isPrimary('hand', 'right') &&
|
|
96
|
+
!this.config.microGestureControlsEnabled.value);
|
|
97
|
+
this.activeInput = gamepad;
|
|
98
|
+
if (teleportActive) {
|
|
99
|
+
// if primary input exists and pointer is not busy, teleportActive is
|
|
100
|
+
// decided by gamepad/hand input
|
|
101
|
+
if (this.input.isPrimary('hand', 'right')) {
|
|
102
|
+
// Only allow micro-gesture-based teleport when explicitly enabled
|
|
103
|
+
if (this.config.microGestureControlsEnabled.value) {
|
|
104
|
+
// In hand-tracking mode, keep teleport active until confirm (thumb tap)
|
|
105
|
+
teleportActive = !((_a = this.input.gamepads.right) === null || _a === void 0 ? void 0 : _a.getButtonDownByIdx(9));
|
|
106
|
+
}
|
|
107
|
+
else {
|
|
108
|
+
teleportActive = false;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
else {
|
|
112
|
+
teleportActive =
|
|
113
|
+
((_b = this.input.gamepads.right) === null || _b === void 0 ? void 0 : _b.getAxesState(InputComponent.Thumbstick)) ===
|
|
114
|
+
AxesState.Down;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
if (teleportActive) {
|
|
118
|
+
if (!this.teleportWasActive) {
|
|
119
|
+
this.line.visible = true;
|
|
120
|
+
this.teleportMarker.visible = true;
|
|
121
|
+
}
|
|
122
|
+
this.player.raySpaces.right.getWorldPosition(this.rayOrigin);
|
|
123
|
+
this.player.raySpaces.right.getWorldDirection(this.rayDirection);
|
|
124
|
+
const minY = Math.max(this.player.position.y, this.teleportMarker.position.y);
|
|
125
|
+
sampleParabolicCurve(this.rayOrigin, this.rayDirection, minY, this.config.rayGravity.value, this.markers, 1);
|
|
126
|
+
this.line.geometry.setFromPoints(this.markers);
|
|
127
|
+
this.line.material.uniforms.startPoint.value.copy(this.markers[0]);
|
|
128
|
+
this.line.material.uniforms.endPoint.value.copy(this.markers[this.markers.length - 1]);
|
|
129
|
+
// Request hit test from locomotor
|
|
130
|
+
this.locomotor.requestHitTest(this.rayOrigin, this.rayDirection);
|
|
131
|
+
// Update teleport marker to follow hit test target
|
|
132
|
+
this.teleportMarker.position.lerp(hitTestTarget.position, 0.2);
|
|
133
|
+
this.teleportMarker.quaternion.slerp(hitTestTarget.quaternion, 0.2);
|
|
134
|
+
this.markerMat.color.lerp(this.targetValid ? Colors.valid : Colors.invalid, 0.2);
|
|
135
|
+
this.teleportMarker.scale.lerp(this.targetValid ? Scales.valid : Scales.invalid, 0.2);
|
|
136
|
+
}
|
|
137
|
+
else if (this.teleportWasActive) {
|
|
138
|
+
if (!cancelAction && this.targetValid) {
|
|
139
|
+
// Teleport to the hit test target position
|
|
140
|
+
this.locomotor.teleport(this.teleportMarker.position);
|
|
141
|
+
}
|
|
142
|
+
this.line.visible = false;
|
|
143
|
+
this.teleportMarker.visible = false;
|
|
144
|
+
}
|
|
145
|
+
this.teleportWasActive = teleportActive;
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
export { TeleportSystem };
|
|
150
|
+
//# sourceMappingURL=teleport.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"teleport.js","sources":["../../src/locomotion/teleport.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/
|
|
7
|
+
import { Types } from '../ecs/component.js';
|
|
8
|
+
export declare enum TurningMethod {
|
|
9
|
+
SnapTurn = 1,
|
|
10
|
+
SmoothTurn = 2
|
|
11
|
+
}
|
|
12
|
+
declare const TurnSystem_base: import("elics").SystemConstructor<{
|
|
13
|
+
/** Choose snap or smooth turning. */
|
|
14
|
+
turningMethod: {
|
|
15
|
+
type: Types.Int8;
|
|
16
|
+
default: TurningMethod;
|
|
17
|
+
};
|
|
18
|
+
/** Degrees to rotate per snap. */
|
|
19
|
+
turningAngle: {
|
|
20
|
+
type: Types.Float32;
|
|
21
|
+
default: number;
|
|
22
|
+
};
|
|
23
|
+
/** Degrees per second when smooth turning. */
|
|
24
|
+
turningSpeed: {
|
|
25
|
+
type: Types.Float32;
|
|
26
|
+
default: number;
|
|
27
|
+
};
|
|
28
|
+
/** Enable swipe‑gesture turning in hand‑tracking mode. */
|
|
29
|
+
microGestureControlsEnabled: {
|
|
30
|
+
type: Types.Boolean;
|
|
31
|
+
default: false;
|
|
32
|
+
};
|
|
33
|
+
}, {}, import("../index.js").World, import("../ecs/system.js").System<{
|
|
34
|
+
/** Choose snap or smooth turning. */
|
|
35
|
+
turningMethod: {
|
|
36
|
+
type: Types.Int8;
|
|
37
|
+
default: TurningMethod;
|
|
38
|
+
};
|
|
39
|
+
/** Degrees to rotate per snap. */
|
|
40
|
+
turningAngle: {
|
|
41
|
+
type: Types.Float32;
|
|
42
|
+
default: number;
|
|
43
|
+
};
|
|
44
|
+
/** Degrees per second when smooth turning. */
|
|
45
|
+
turningSpeed: {
|
|
46
|
+
type: Types.Float32;
|
|
47
|
+
default: number;
|
|
48
|
+
};
|
|
49
|
+
/** Enable swipe‑gesture turning in hand‑tracking mode. */
|
|
50
|
+
microGestureControlsEnabled: {
|
|
51
|
+
type: Types.Boolean;
|
|
52
|
+
default: false;
|
|
53
|
+
};
|
|
54
|
+
}, {}>>;
|
|
55
|
+
/**
|
|
56
|
+
* Player yaw rotation via snap or smooth turning.
|
|
57
|
+
*
|
|
58
|
+
* @remarks
|
|
59
|
+
* - When snap turning is active, visual turn signals render on the right ray
|
|
60
|
+
* and respond to thumbstick left/right or hand micro‑gestures (if enabled).
|
|
61
|
+
* - Smooth turning applies a continuous yaw at `turningSpeed` degrees/second.
|
|
62
|
+
*
|
|
63
|
+
* @category Locomotion
|
|
64
|
+
*/
|
|
65
|
+
export declare class TurnSystem extends TurnSystem_base {
|
|
66
|
+
private turnSignals;
|
|
67
|
+
private leftSignal;
|
|
68
|
+
private rightSignal;
|
|
69
|
+
private playerHeadPosition;
|
|
70
|
+
init(): void;
|
|
71
|
+
destroy(): void;
|
|
72
|
+
update(delta: number): void;
|
|
73
|
+
private updateSmooth;
|
|
74
|
+
private updateSnap;
|
|
75
|
+
}
|
|
76
|
+
export {};
|
|
77
|
+
//# sourceMappingURL=turn.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"turn.d.ts","sourceRoot":"","sources":["../../src/locomotion/turn.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAO5C,oBAAY,aAAa;IACvB,QAAQ,IAAI;IACZ,UAAU,IAAI;CACf;;IAeG,qCAAqC;;;;;IAErC,kCAAkC;;;;;IAElC,8CAA8C;;;;;IAE9C,0DAA0D;;;;;;IAN1D,qCAAqC;;;;;IAErC,kCAAkC;;;;;IAElC,8CAA8C;;;;;IAE9C,0DAA0D;;;;;;AAnB9D;;;;;;;;;GASG;AACH,qBAAa,UAAW,SAAQ,eAY/B;IACC,OAAO,CAAC,WAAW,CAAe;IAClC,OAAO,CAAC,UAAU,CAIhB;IACF,OAAO,CAAC,WAAW,CAIjB;IACF,OAAO,CAAC,kBAAkB,CAAiB;IAE3C,IAAI;IAeJ,OAAO,IAAI,IAAI;IAKf,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAQ3B,OAAO,CAAC,YAAY;IAYpB,OAAO,CAAC,UAAU;CAsCnB"}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import { InputComponent, AxesState } from '@iwsdk/xr-input';
|
|
2
|
+
import { Types } from 'elics';
|
|
3
|
+
import { createSystem } from '../ecs/system.js';
|
|
4
|
+
import '../runtime/three.js';
|
|
5
|
+
import { BeveledCylinderGeometry } from './geometries/beveled-cylinder.js';
|
|
6
|
+
import { Vector3, Group, Mesh } from 'three';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
10
|
+
*
|
|
11
|
+
* This source code is licensed under the MIT license found in the
|
|
12
|
+
* LICENSE file in the root directory of this source tree.
|
|
13
|
+
*/
|
|
14
|
+
const unitVector = new Vector3(1, 1, 1);
|
|
15
|
+
var TurningMethod;
|
|
16
|
+
(function (TurningMethod) {
|
|
17
|
+
TurningMethod[TurningMethod["SnapTurn"] = 1] = "SnapTurn";
|
|
18
|
+
TurningMethod[TurningMethod["SmoothTurn"] = 2] = "SmoothTurn";
|
|
19
|
+
})(TurningMethod || (TurningMethod = {}));
|
|
20
|
+
/**
|
|
21
|
+
* Player yaw rotation via snap or smooth turning.
|
|
22
|
+
*
|
|
23
|
+
* @remarks
|
|
24
|
+
* - When snap turning is active, visual turn signals render on the right ray
|
|
25
|
+
* and respond to thumbstick left/right or hand micro‑gestures (if enabled).
|
|
26
|
+
* - Smooth turning applies a continuous yaw at `turningSpeed` degrees/second.
|
|
27
|
+
*
|
|
28
|
+
* @category Locomotion
|
|
29
|
+
*/
|
|
30
|
+
class TurnSystem extends createSystem({}, {
|
|
31
|
+
/** Choose snap or smooth turning. */
|
|
32
|
+
turningMethod: { type: Types.Int8, default: TurningMethod.SnapTurn },
|
|
33
|
+
/** Degrees to rotate per snap. */
|
|
34
|
+
turningAngle: { type: Types.Float32, default: 45 },
|
|
35
|
+
/** Degrees per second when smooth turning. */
|
|
36
|
+
turningSpeed: { type: Types.Float32, default: 180 },
|
|
37
|
+
/** Enable swipe‑gesture turning in hand‑tracking mode. */
|
|
38
|
+
microGestureControlsEnabled: { type: Types.Boolean, default: false },
|
|
39
|
+
}) {
|
|
40
|
+
constructor() {
|
|
41
|
+
super(...arguments);
|
|
42
|
+
this.turnSignals = new Group();
|
|
43
|
+
this.leftSignal = new Mesh(new BeveledCylinderGeometry(0.004, 0.012, 0.022, 4, 0.004).rotateZ(Math.PI / 2));
|
|
44
|
+
this.rightSignal = new Mesh(new BeveledCylinderGeometry(0.004, 0.012, 0.022, 4, 0.004).rotateZ(-Math.PI / 2));
|
|
45
|
+
this.playerHeadPosition = new Vector3();
|
|
46
|
+
}
|
|
47
|
+
init() {
|
|
48
|
+
this.turnSignals.add(this.leftSignal, this.rightSignal);
|
|
49
|
+
this.leftSignal.position.set(-0.015, 0.02, 0);
|
|
50
|
+
this.rightSignal.position.set(0.055, 0.02, 0);
|
|
51
|
+
this.cleanupFuncs.push(this.config.turningMethod.subscribe((value) => {
|
|
52
|
+
if (value === TurningMethod.SmoothTurn) {
|
|
53
|
+
this.turnSignals.removeFromParent();
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
this.player.raySpaces.right.add(this.turnSignals);
|
|
57
|
+
}
|
|
58
|
+
}));
|
|
59
|
+
}
|
|
60
|
+
destroy() {
|
|
61
|
+
super.destroy();
|
|
62
|
+
this.turnSignals.removeFromParent();
|
|
63
|
+
}
|
|
64
|
+
update(delta) {
|
|
65
|
+
if (this.config.turningMethod.value === TurningMethod.SmoothTurn) {
|
|
66
|
+
this.updateSmooth(delta);
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
this.updateSnap(delta);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
updateSmooth(delta) {
|
|
73
|
+
var _a;
|
|
74
|
+
const state = (_a = this.input.gamepads.right) === null || _a === void 0 ? void 0 : _a.getAxesState(InputComponent.Thumbstick);
|
|
75
|
+
const turningSpeedRadian = (this.config.turningSpeed.value / 180) * Math.PI;
|
|
76
|
+
if (state === AxesState.Left) {
|
|
77
|
+
this.player.rotateY(turningSpeedRadian * delta);
|
|
78
|
+
}
|
|
79
|
+
else if (state === AxesState.Right) {
|
|
80
|
+
this.player.rotateY(-turningSpeedRadian * delta);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
updateSnap(delta) {
|
|
84
|
+
let turningLeft = false;
|
|
85
|
+
let turningRight = false;
|
|
86
|
+
const gamepad = this.input.gamepads.right;
|
|
87
|
+
const turningAngleRadian = (this.config.turningAngle.value / 180) * Math.PI;
|
|
88
|
+
if (this.input.isPrimary('hand', 'right')) {
|
|
89
|
+
// Show and listen only if micro-gesture controls are enabled
|
|
90
|
+
const enabled = this.config.microGestureControlsEnabled.value;
|
|
91
|
+
this.turnSignals.visible = !!enabled;
|
|
92
|
+
if (enabled) {
|
|
93
|
+
this.player.head.getWorldPosition(this.playerHeadPosition);
|
|
94
|
+
this.turnSignals.lookAt(this.playerHeadPosition);
|
|
95
|
+
turningLeft = (gamepad === null || gamepad === void 0 ? void 0 : gamepad.getButtonDownByIdx(5)) || false;
|
|
96
|
+
turningRight = (gamepad === null || gamepad === void 0 ? void 0 : gamepad.getButtonDownByIdx(6)) || false;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
this.turnSignals.visible = false;
|
|
101
|
+
turningLeft =
|
|
102
|
+
(gamepad === null || gamepad === void 0 ? void 0 : gamepad.getAxesEnteringLeft(InputComponent.Thumbstick)) || false;
|
|
103
|
+
turningRight =
|
|
104
|
+
(gamepad === null || gamepad === void 0 ? void 0 : gamepad.getAxesEnteringRight(InputComponent.Thumbstick)) || false;
|
|
105
|
+
}
|
|
106
|
+
if (turningLeft) {
|
|
107
|
+
this.player.rotateY(turningAngleRadian);
|
|
108
|
+
if (this.turnSignals.visible) {
|
|
109
|
+
this.leftSignal.scale.setScalar(1.5);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
else if (turningRight) {
|
|
113
|
+
this.player.rotateY(-turningAngleRadian);
|
|
114
|
+
if (this.turnSignals.visible) {
|
|
115
|
+
this.rightSignal.scale.setScalar(1.5);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
if (this.turnSignals.visible) {
|
|
119
|
+
this.leftSignal.scale.lerp(unitVector, 5 * delta);
|
|
120
|
+
this.rightSignal.scale.lerp(unitVector, 5 * delta);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
export { TurnSystem, TurningMethod };
|
|
126
|
+
//# sourceMappingURL=turn.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"turn.js","sources":["../../src/locomotion/turn.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import '../../../../../parse5@7.3.0/node_modules/parse5/dist/parser/index.js';
|
|
2
|
+
import '../../../../../parse5@7.3.0/node_modules/parse5/dist/common/html.js';
|
|
3
|
+
import '../../../../../parse5@7.3.0/node_modules/parse5/dist/serializer/index.js';
|
|
4
|
+
import '../../../../../parse5@7.3.0/node_modules/parse5/dist/common/error-codes.js';
|
|
5
|
+
import '../../../../../parse5@7.3.0/node_modules/parse5/dist/common/foreign-content.js';
|
|
6
|
+
import '../../../../../parse5@7.3.0/node_modules/parse5/dist/common/token.js';
|
|
7
|
+
import '../../../../../parse5@7.3.0/node_modules/parse5/dist/tokenizer/index.js';
|
|
8
|
+
import '@pmndrs/uikit';
|
|
9
|
+
|
|
10
|
+
const conditionals = ['hover', 'active', 'focus', 'sm', 'md', 'lg', 'xl', '2xl'];
|
|
11
|
+
|
|
12
|
+
export { conditionals };
|
|
13
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../../../../../../node_modules/.pnpm/@pmndrs+uikitml@0.0.10_@pmndrs+uikit@1.0.32_super-three@0.177.0_/node_modules/@pmndrs/uikitml/dist/index.js"],"sourcesContent":["export const conditionals = ['hover', 'active', 'focus', 'sm', 'md', 'lg', 'xl', '2xl'];\nexport * from './parser/index.js';\nexport * from './generator/index.js';\nexport * from './interpreter/index.js';\n//# sourceMappingURL=index.js.map"],"names":[],"mappings":";;;;;;;;;AAAY,MAAC,YAAY,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK;;;;","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
import { StyleSheet, Text, Container, Input, Video, Svg, Image } from '@pmndrs/uikit';
|
|
2
|
+
import { conditionals } from '../index.js';
|
|
3
|
+
|
|
4
|
+
function interpret(parseResult, kit) {
|
|
5
|
+
if (!parseResult.element) {
|
|
6
|
+
return null;
|
|
7
|
+
}
|
|
8
|
+
// Add parsed CSS classes to the global StyleSheet
|
|
9
|
+
for (const [className, classData] of Object.entries(parseResult.classes)) {
|
|
10
|
+
if (classData && typeof classData === 'object' && 'content' in classData) {
|
|
11
|
+
StyleSheet[className] = classData.content;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
return interpretElement(parseResult.element, kit);
|
|
15
|
+
}
|
|
16
|
+
function interpretElement(json, kit) {
|
|
17
|
+
if (json === null || json === undefined) {
|
|
18
|
+
return null;
|
|
19
|
+
}
|
|
20
|
+
if (typeof json === 'string') {
|
|
21
|
+
return new Text({ text: json });
|
|
22
|
+
}
|
|
23
|
+
const properties = { ...json.properties };
|
|
24
|
+
if (properties.style && typeof properties.style === 'object') {
|
|
25
|
+
Object.assign(properties, properties.style);
|
|
26
|
+
delete properties.style;
|
|
27
|
+
}
|
|
28
|
+
for (const conditional of conditionals) {
|
|
29
|
+
const key = `${conditional}:style`;
|
|
30
|
+
if (!(key in properties) || typeof properties[key] != 'object') {
|
|
31
|
+
continue;
|
|
32
|
+
}
|
|
33
|
+
properties[conditional] ??= {};
|
|
34
|
+
Object.assign(properties[conditional], properties[key]);
|
|
35
|
+
}
|
|
36
|
+
if (json.defaultProperties) {
|
|
37
|
+
Object.assign(properties, json.defaultProperties, properties);
|
|
38
|
+
}
|
|
39
|
+
const elementId = properties.id;
|
|
40
|
+
let element;
|
|
41
|
+
switch (json.type) {
|
|
42
|
+
case 'container':
|
|
43
|
+
element = createContainerElement(json, properties);
|
|
44
|
+
break;
|
|
45
|
+
case 'custom':
|
|
46
|
+
element = createCustomElement(json, properties, kit);
|
|
47
|
+
break;
|
|
48
|
+
case 'image':
|
|
49
|
+
element = createImageElement(json, properties);
|
|
50
|
+
break;
|
|
51
|
+
case 'svg':
|
|
52
|
+
element = createSvgElement(json, properties);
|
|
53
|
+
break;
|
|
54
|
+
case 'inline-svg':
|
|
55
|
+
element = createInlineSvgElement(json, properties);
|
|
56
|
+
break;
|
|
57
|
+
case 'video':
|
|
58
|
+
element = createVideoElement(json, properties);
|
|
59
|
+
break;
|
|
60
|
+
case 'input':
|
|
61
|
+
element = createInputElement(json, properties);
|
|
62
|
+
break;
|
|
63
|
+
default:
|
|
64
|
+
console.warn(`Unknown element type: ${json.type}, falling back to container`);
|
|
65
|
+
element = new Container(properties);
|
|
66
|
+
break;
|
|
67
|
+
}
|
|
68
|
+
if (elementId) {
|
|
69
|
+
element.userData.id = elementId;
|
|
70
|
+
}
|
|
71
|
+
if (json.sourceTag) {
|
|
72
|
+
element.userData.sourceTag = json.sourceTag;
|
|
73
|
+
}
|
|
74
|
+
if (json.dataUid) {
|
|
75
|
+
element.userData.dataUid = json.dataUid;
|
|
76
|
+
}
|
|
77
|
+
if (properties.class) {
|
|
78
|
+
const classNames = properties.class.split(' ').filter((name) => name.trim());
|
|
79
|
+
element.classList.add(...classNames);
|
|
80
|
+
}
|
|
81
|
+
if (element instanceof Container) {
|
|
82
|
+
json.children.forEach((childElementJson) => {
|
|
83
|
+
const childElement = interpretElement(childElementJson, kit);
|
|
84
|
+
if (childElement) {
|
|
85
|
+
element.add(childElement);
|
|
86
|
+
}
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
return element;
|
|
90
|
+
}
|
|
91
|
+
function createContainerElement(json, properties) {
|
|
92
|
+
if (json.children && json.children.length === 1 && typeof json.children[0] === 'string') {
|
|
93
|
+
return new Text({ ...properties, text: json.children[0] });
|
|
94
|
+
}
|
|
95
|
+
return new Container(properties);
|
|
96
|
+
}
|
|
97
|
+
function createCustomElement(json, properties, kit) {
|
|
98
|
+
const componentName = json.sourceTag;
|
|
99
|
+
const CustomComponent = kit?.[componentName];
|
|
100
|
+
if (CustomComponent) {
|
|
101
|
+
const element = new CustomComponent(properties);
|
|
102
|
+
element.userData.customElement = {
|
|
103
|
+
componentName,
|
|
104
|
+
sourceTag: json.sourceTag,
|
|
105
|
+
};
|
|
106
|
+
return element;
|
|
107
|
+
}
|
|
108
|
+
else {
|
|
109
|
+
const element = new Container(properties);
|
|
110
|
+
element.userData.customElement = {
|
|
111
|
+
componentName,
|
|
112
|
+
sourceTag: json.sourceTag,
|
|
113
|
+
};
|
|
114
|
+
console.warn(`Custom component '${componentName}' not found in kit, falling back to Container`);
|
|
115
|
+
return element;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
function createImageElement(_json, properties) {
|
|
119
|
+
if (!properties.src) {
|
|
120
|
+
console.warn('Image element missing src property');
|
|
121
|
+
properties.src = '';
|
|
122
|
+
}
|
|
123
|
+
return new Image(properties);
|
|
124
|
+
}
|
|
125
|
+
function createSvgElement(_json, properties) {
|
|
126
|
+
if (!properties.src) {
|
|
127
|
+
console.warn('SVG element missing src property');
|
|
128
|
+
properties.src = '';
|
|
129
|
+
}
|
|
130
|
+
return new Svg(properties);
|
|
131
|
+
}
|
|
132
|
+
function createInlineSvgElement(json, properties) {
|
|
133
|
+
const svgText = json.text || '';
|
|
134
|
+
return new Svg({
|
|
135
|
+
...properties,
|
|
136
|
+
content: svgText,
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
function createVideoElement(_json, properties) {
|
|
140
|
+
if (!properties.src) {
|
|
141
|
+
console.warn('Video element missing src property');
|
|
142
|
+
properties.src = '';
|
|
143
|
+
}
|
|
144
|
+
return new Video(properties);
|
|
145
|
+
}
|
|
146
|
+
function createInputElement(json, properties) {
|
|
147
|
+
if (json.sourceTag === 'textarea' && !properties.multiline) {
|
|
148
|
+
properties.multiline = true;
|
|
149
|
+
}
|
|
150
|
+
return new Input(properties);
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
export { interpret };
|
|
154
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../../../../../../../node_modules/.pnpm/@pmndrs+uikitml@0.0.10_@pmndrs+uikit@1.0.32_super-three@0.177.0_/node_modules/@pmndrs/uikitml/dist/interpreter/index.js"],"sourcesContent":["import { Container, Image, Input, Text, Video, Svg, StyleSheet } from '@pmndrs/uikit';\nimport { conditionals } from '../index.js';\nexport function interpret(parseResult, kit) {\n if (!parseResult.element) {\n return null;\n }\n // Add parsed CSS classes to the global StyleSheet\n for (const [className, classData] of Object.entries(parseResult.classes)) {\n if (classData && typeof classData === 'object' && 'content' in classData) {\n StyleSheet[className] = classData.content;\n }\n }\n return interpretElement(parseResult.element, kit);\n}\nfunction interpretElement(json, kit) {\n if (json === null || json === undefined) {\n return null;\n }\n if (typeof json === 'string') {\n return new Text({ text: json });\n }\n const properties = { ...json.properties };\n if (properties.style && typeof properties.style === 'object') {\n Object.assign(properties, properties.style);\n delete properties.style;\n }\n for (const conditional of conditionals) {\n const key = `${conditional}:style`;\n if (!(key in properties) || typeof properties[key] != 'object') {\n continue;\n }\n properties[conditional] ??= {};\n Object.assign(properties[conditional], properties[key]);\n }\n if (json.defaultProperties) {\n Object.assign(properties, json.defaultProperties, properties);\n }\n const elementId = properties.id;\n let element;\n switch (json.type) {\n case 'container':\n element = createContainerElement(json, properties);\n break;\n case 'custom':\n element = createCustomElement(json, properties, kit);\n break;\n case 'image':\n element = createImageElement(json, properties);\n break;\n case 'svg':\n element = createSvgElement(json, properties);\n break;\n case 'inline-svg':\n element = createInlineSvgElement(json, properties);\n break;\n case 'video':\n element = createVideoElement(json, properties);\n break;\n case 'input':\n element = createInputElement(json, properties);\n break;\n default:\n console.warn(`Unknown element type: ${json.type}, falling back to container`);\n element = new Container(properties);\n break;\n }\n if (elementId) {\n element.userData.id = elementId;\n }\n if (json.sourceTag) {\n element.userData.sourceTag = json.sourceTag;\n }\n if (json.dataUid) {\n element.userData.dataUid = json.dataUid;\n }\n if (properties.class) {\n const classNames = properties.class.split(' ').filter((name) => name.trim());\n element.classList.add(...classNames);\n }\n if (element instanceof Container) {\n ;\n json.children.forEach((childElementJson) => {\n const childElement = interpretElement(childElementJson, kit);\n if (childElement) {\n element.add(childElement);\n }\n });\n }\n return element;\n}\nfunction createContainerElement(json, properties) {\n if (json.children && json.children.length === 1 && typeof json.children[0] === 'string') {\n return new Text({ ...properties, text: json.children[0] });\n }\n return new Container(properties);\n}\nfunction createCustomElement(json, properties, kit) {\n const componentName = json.sourceTag;\n const CustomComponent = kit?.[componentName];\n if (CustomComponent) {\n const element = new CustomComponent(properties);\n element.userData.customElement = {\n componentName,\n sourceTag: json.sourceTag,\n };\n return element;\n }\n else {\n const element = new Container(properties);\n element.userData.customElement = {\n componentName,\n sourceTag: json.sourceTag,\n };\n console.warn(`Custom component '${componentName}' not found in kit, falling back to Container`);\n return element;\n }\n}\nfunction createImageElement(_json, properties) {\n if (!properties.src) {\n console.warn('Image element missing src property');\n properties.src = '';\n }\n return new Image(properties);\n}\nfunction createSvgElement(_json, properties) {\n if (!properties.src) {\n console.warn('SVG element missing src property');\n properties.src = '';\n }\n return new Svg(properties);\n}\nfunction createInlineSvgElement(json, properties) {\n const svgText = json.text || '';\n return new Svg({\n ...properties,\n content: svgText,\n });\n}\nfunction createVideoElement(_json, properties) {\n if (!properties.src) {\n console.warn('Video element missing src property');\n properties.src = '';\n }\n return new Video(properties);\n}\nfunction createInputElement(json, properties) {\n if (json.sourceTag === 'textarea' && !properties.multiline) {\n properties.multiline = true;\n }\n return new Input(properties);\n}\nexport function getElementDescription(json) {\n if (typeof json === 'string') {\n return `Text: \"${json.substring(0, 20)}${json.length > 20 ? '...' : ''}\"`;\n }\n switch (json.type) {\n case 'container':\n return `Container (${json.sourceTag})`;\n case 'custom':\n return `Custom: ${json.sourceTag}`;\n case 'image':\n return `Image: ${json.properties?.src || 'no src'}`;\n case 'svg':\n return `SVG: ${json.properties?.src || 'no src'}`;\n case 'inline-svg':\n return `Inline SVG (${json.text?.length || 0} chars)`;\n case 'video':\n return `Video: ${json.properties?.src || 'no src'}`;\n case 'input':\n return `Input (${json.sourceTag}${json.properties?.multiline || json.defaultProperties?.multiline ? ', multiline' : ''})`;\n default:\n return `Unknown: ${json.type}`;\n }\n}\n//# sourceMappingURL=index.js.map"],"names":[],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
var ERR;
|
|
2
|
+
(function (ERR) {
|
|
3
|
+
ERR["controlCharacterInInputStream"] = "control-character-in-input-stream";
|
|
4
|
+
ERR["noncharacterInInputStream"] = "noncharacter-in-input-stream";
|
|
5
|
+
ERR["surrogateInInputStream"] = "surrogate-in-input-stream";
|
|
6
|
+
ERR["nonVoidHtmlElementStartTagWithTrailingSolidus"] = "non-void-html-element-start-tag-with-trailing-solidus";
|
|
7
|
+
ERR["endTagWithAttributes"] = "end-tag-with-attributes";
|
|
8
|
+
ERR["endTagWithTrailingSolidus"] = "end-tag-with-trailing-solidus";
|
|
9
|
+
ERR["unexpectedSolidusInTag"] = "unexpected-solidus-in-tag";
|
|
10
|
+
ERR["unexpectedNullCharacter"] = "unexpected-null-character";
|
|
11
|
+
ERR["unexpectedQuestionMarkInsteadOfTagName"] = "unexpected-question-mark-instead-of-tag-name";
|
|
12
|
+
ERR["invalidFirstCharacterOfTagName"] = "invalid-first-character-of-tag-name";
|
|
13
|
+
ERR["unexpectedEqualsSignBeforeAttributeName"] = "unexpected-equals-sign-before-attribute-name";
|
|
14
|
+
ERR["missingEndTagName"] = "missing-end-tag-name";
|
|
15
|
+
ERR["unexpectedCharacterInAttributeName"] = "unexpected-character-in-attribute-name";
|
|
16
|
+
ERR["unknownNamedCharacterReference"] = "unknown-named-character-reference";
|
|
17
|
+
ERR["missingSemicolonAfterCharacterReference"] = "missing-semicolon-after-character-reference";
|
|
18
|
+
ERR["unexpectedCharacterAfterDoctypeSystemIdentifier"] = "unexpected-character-after-doctype-system-identifier";
|
|
19
|
+
ERR["unexpectedCharacterInUnquotedAttributeValue"] = "unexpected-character-in-unquoted-attribute-value";
|
|
20
|
+
ERR["eofBeforeTagName"] = "eof-before-tag-name";
|
|
21
|
+
ERR["eofInTag"] = "eof-in-tag";
|
|
22
|
+
ERR["missingAttributeValue"] = "missing-attribute-value";
|
|
23
|
+
ERR["missingWhitespaceBetweenAttributes"] = "missing-whitespace-between-attributes";
|
|
24
|
+
ERR["missingWhitespaceAfterDoctypePublicKeyword"] = "missing-whitespace-after-doctype-public-keyword";
|
|
25
|
+
ERR["missingWhitespaceBetweenDoctypePublicAndSystemIdentifiers"] = "missing-whitespace-between-doctype-public-and-system-identifiers";
|
|
26
|
+
ERR["missingWhitespaceAfterDoctypeSystemKeyword"] = "missing-whitespace-after-doctype-system-keyword";
|
|
27
|
+
ERR["missingQuoteBeforeDoctypePublicIdentifier"] = "missing-quote-before-doctype-public-identifier";
|
|
28
|
+
ERR["missingQuoteBeforeDoctypeSystemIdentifier"] = "missing-quote-before-doctype-system-identifier";
|
|
29
|
+
ERR["missingDoctypePublicIdentifier"] = "missing-doctype-public-identifier";
|
|
30
|
+
ERR["missingDoctypeSystemIdentifier"] = "missing-doctype-system-identifier";
|
|
31
|
+
ERR["abruptDoctypePublicIdentifier"] = "abrupt-doctype-public-identifier";
|
|
32
|
+
ERR["abruptDoctypeSystemIdentifier"] = "abrupt-doctype-system-identifier";
|
|
33
|
+
ERR["cdataInHtmlContent"] = "cdata-in-html-content";
|
|
34
|
+
ERR["incorrectlyOpenedComment"] = "incorrectly-opened-comment";
|
|
35
|
+
ERR["eofInScriptHtmlCommentLikeText"] = "eof-in-script-html-comment-like-text";
|
|
36
|
+
ERR["eofInDoctype"] = "eof-in-doctype";
|
|
37
|
+
ERR["nestedComment"] = "nested-comment";
|
|
38
|
+
ERR["abruptClosingOfEmptyComment"] = "abrupt-closing-of-empty-comment";
|
|
39
|
+
ERR["eofInComment"] = "eof-in-comment";
|
|
40
|
+
ERR["incorrectlyClosedComment"] = "incorrectly-closed-comment";
|
|
41
|
+
ERR["eofInCdata"] = "eof-in-cdata";
|
|
42
|
+
ERR["absenceOfDigitsInNumericCharacterReference"] = "absence-of-digits-in-numeric-character-reference";
|
|
43
|
+
ERR["nullCharacterReference"] = "null-character-reference";
|
|
44
|
+
ERR["surrogateCharacterReference"] = "surrogate-character-reference";
|
|
45
|
+
ERR["characterReferenceOutsideUnicodeRange"] = "character-reference-outside-unicode-range";
|
|
46
|
+
ERR["controlCharacterReference"] = "control-character-reference";
|
|
47
|
+
ERR["noncharacterCharacterReference"] = "noncharacter-character-reference";
|
|
48
|
+
ERR["missingWhitespaceBeforeDoctypeName"] = "missing-whitespace-before-doctype-name";
|
|
49
|
+
ERR["missingDoctypeName"] = "missing-doctype-name";
|
|
50
|
+
ERR["invalidCharacterSequenceAfterDoctypeName"] = "invalid-character-sequence-after-doctype-name";
|
|
51
|
+
ERR["duplicateAttribute"] = "duplicate-attribute";
|
|
52
|
+
ERR["nonConformingDoctype"] = "non-conforming-doctype";
|
|
53
|
+
ERR["missingDoctype"] = "missing-doctype";
|
|
54
|
+
ERR["misplacedDoctype"] = "misplaced-doctype";
|
|
55
|
+
ERR["endTagWithoutMatchingOpenElement"] = "end-tag-without-matching-open-element";
|
|
56
|
+
ERR["closingOfElementWithOpenChildElements"] = "closing-of-element-with-open-child-elements";
|
|
57
|
+
ERR["disallowedContentInNoscriptInHead"] = "disallowed-content-in-noscript-in-head";
|
|
58
|
+
ERR["openElementsLeftAfterEof"] = "open-elements-left-after-eof";
|
|
59
|
+
ERR["abandonedHeadElementChild"] = "abandoned-head-element-child";
|
|
60
|
+
ERR["misplacedStartTagForHeadElement"] = "misplaced-start-tag-for-head-element";
|
|
61
|
+
ERR["nestedNoscriptInHead"] = "nested-noscript-in-head";
|
|
62
|
+
ERR["eofInElementThatCanContainOnlyText"] = "eof-in-element-that-can-contain-only-text";
|
|
63
|
+
})(ERR || (ERR = {}));
|
|
64
|
+
|
|
65
|
+
export { ERR };
|
|
66
|
+
//# sourceMappingURL=error-codes.js.map
|