@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.
Files changed (326) hide show
  1. package/LICENSE +21 -0
  2. package/dist/asset/asset-manager.d.ts +72 -0
  3. package/dist/asset/asset-manager.d.ts.map +1 -0
  4. package/dist/asset/asset-manager.js +138 -0
  5. package/dist/asset/asset-manager.js.map +1 -0
  6. package/dist/asset/cache-manager.d.ts +44 -0
  7. package/dist/asset/cache-manager.d.ts.map +1 -0
  8. package/dist/asset/cache-manager.js +80 -0
  9. package/dist/asset/cache-manager.js.map +1 -0
  10. package/dist/asset/index.d.ts +9 -0
  11. package/dist/asset/index.d.ts.map +1 -0
  12. package/dist/asset/loaders/audio-loader.d.ts +21 -0
  13. package/dist/asset/loaders/audio-loader.d.ts.map +1 -0
  14. package/dist/asset/loaders/audio-loader.js +57 -0
  15. package/dist/asset/loaders/audio-loader.js.map +1 -0
  16. package/dist/asset/loaders/gltf-loader.d.ts +33 -0
  17. package/dist/asset/loaders/gltf-loader.d.ts.map +1 -0
  18. package/dist/asset/loaders/gltf-loader.js +79 -0
  19. package/dist/asset/loaders/gltf-loader.js.map +1 -0
  20. package/dist/asset/loaders/hdr-texture-loader.d.ts +18 -0
  21. package/dist/asset/loaders/hdr-texture-loader.d.ts.map +1 -0
  22. package/dist/asset/loaders/hdr-texture-loader.js +65 -0
  23. package/dist/asset/loaders/hdr-texture-loader.js.map +1 -0
  24. package/dist/asset/loaders/texture-loader.d.ts +21 -0
  25. package/dist/asset/loaders/texture-loader.d.ts.map +1 -0
  26. package/dist/asset/loaders/texture-loader.js +57 -0
  27. package/dist/asset/loaders/texture-loader.js.map +1 -0
  28. package/dist/audio/audio-pool.d.ts +59 -0
  29. package/dist/audio/audio-pool.d.ts.map +1 -0
  30. package/dist/audio/audio-pool.js +105 -0
  31. package/dist/audio/audio-pool.js.map +1 -0
  32. package/dist/audio/audio-system.d.ts +326 -0
  33. package/dist/audio/audio-system.d.ts.map +1 -0
  34. package/dist/audio/audio-system.js +478 -0
  35. package/dist/audio/audio-system.js.map +1 -0
  36. package/dist/audio/audio-utils.d.ts +71 -0
  37. package/dist/audio/audio-utils.d.ts.map +1 -0
  38. package/dist/audio/audio-utils.js +145 -0
  39. package/dist/audio/audio-utils.js.map +1 -0
  40. package/dist/audio/audio.d.ts +178 -0
  41. package/dist/audio/audio.d.ts.map +1 -0
  42. package/dist/audio/audio.js +104 -0
  43. package/dist/audio/audio.js.map +1 -0
  44. package/dist/audio/index.d.ts +11 -0
  45. package/dist/audio/index.d.ts.map +1 -0
  46. package/dist/ecs/component-registry.d.ts +54 -0
  47. package/dist/ecs/component-registry.d.ts.map +1 -0
  48. package/dist/ecs/component-registry.js +86 -0
  49. package/dist/ecs/component-registry.js.map +1 -0
  50. package/dist/ecs/component.d.ts +12 -0
  51. package/dist/ecs/component.d.ts.map +1 -0
  52. package/dist/ecs/entity.d.ts +17 -0
  53. package/dist/ecs/entity.d.ts.map +1 -0
  54. package/dist/ecs/entity.js +13 -0
  55. package/dist/ecs/entity.js.map +1 -0
  56. package/dist/ecs/index.d.ts +12 -0
  57. package/dist/ecs/index.d.ts.map +1 -0
  58. package/dist/ecs/system.d.ts +70 -0
  59. package/dist/ecs/system.d.ts.map +1 -0
  60. package/dist/ecs/system.js +79 -0
  61. package/dist/ecs/system.js.map +1 -0
  62. package/dist/ecs/world.d.ts +101 -0
  63. package/dist/ecs/world.d.ts.map +1 -0
  64. package/dist/ecs/world.js +165 -0
  65. package/dist/ecs/world.js.map +1 -0
  66. package/dist/environment/dome-gradient.d.ts +39 -0
  67. package/dist/environment/dome-gradient.d.ts.map +1 -0
  68. package/dist/environment/dome-gradient.js +30 -0
  69. package/dist/environment/dome-gradient.js.map +1 -0
  70. package/dist/environment/dome-texture.d.ts +39 -0
  71. package/dist/environment/dome-texture.d.ts.map +1 -0
  72. package/dist/environment/dome-texture.js +30 -0
  73. package/dist/environment/dome-texture.js.map +1 -0
  74. package/dist/environment/environment-system.d.ts +82 -0
  75. package/dist/environment/environment-system.d.ts.map +1 -0
  76. package/dist/environment/environment-system.js +389 -0
  77. package/dist/environment/environment-system.js.map +1 -0
  78. package/dist/environment/gradient-environment.d.ts +37 -0
  79. package/dist/environment/gradient-environment.d.ts.map +1 -0
  80. package/dist/environment/gradient-environment.js +99 -0
  81. package/dist/environment/gradient-environment.js.map +1 -0
  82. package/dist/environment/ibl-gradient.d.ts +38 -0
  83. package/dist/environment/ibl-gradient.d.ts.map +1 -0
  84. package/dist/environment/ibl-gradient.js +29 -0
  85. package/dist/environment/ibl-gradient.js.map +1 -0
  86. package/dist/environment/ibl-texture.d.ts +36 -0
  87. package/dist/environment/ibl-texture.d.ts.map +1 -0
  88. package/dist/environment/ibl-texture.js +30 -0
  89. package/dist/environment/ibl-texture.js.map +1 -0
  90. package/dist/environment/index.d.ts +12 -0
  91. package/dist/environment/index.d.ts.map +1 -0
  92. package/dist/grab/distance-grabbable.d.ts +115 -0
  93. package/dist/grab/distance-grabbable.d.ts.map +1 -0
  94. package/dist/grab/distance-grabbable.js +102 -0
  95. package/dist/grab/distance-grabbable.js.map +1 -0
  96. package/dist/grab/grab-system.d.ts +320 -0
  97. package/dist/grab/grab-system.d.ts.map +1 -0
  98. package/dist/grab/grab-system.js +239 -0
  99. package/dist/grab/grab-system.js.map +1 -0
  100. package/dist/grab/handles.d.ts +43 -0
  101. package/dist/grab/handles.d.ts.map +1 -0
  102. package/dist/grab/handles.js +132 -0
  103. package/dist/grab/handles.js.map +1 -0
  104. package/dist/grab/index.d.ts +13 -0
  105. package/dist/grab/index.d.ts.map +1 -0
  106. package/dist/grab/index.js +23 -0
  107. package/dist/grab/index.js.map +1 -0
  108. package/dist/grab/one-hand-grabbable.d.ts +80 -0
  109. package/dist/grab/one-hand-grabbable.d.ts.map +1 -0
  110. package/dist/grab/one-hand-grabbable.js +80 -0
  111. package/dist/grab/one-hand-grabbable.js.map +1 -0
  112. package/dist/grab/pointer-events-patch.d.ts +16 -0
  113. package/dist/grab/pointer-events-patch.d.ts.map +1 -0
  114. package/dist/grab/pointer-events-patch.js +223 -0
  115. package/dist/grab/pointer-events-patch.js.map +1 -0
  116. package/dist/grab/two-hands-grabbable.d.ts +103 -0
  117. package/dist/grab/two-hands-grabbable.d.ts.map +1 -0
  118. package/dist/grab/two-hands-grabbable.js +100 -0
  119. package/dist/grab/two-hands-grabbable.js.map +1 -0
  120. package/dist/index.d.ts +27 -0
  121. package/dist/index.d.ts.map +1 -0
  122. package/dist/index.js +82 -0
  123. package/dist/index.js.map +1 -0
  124. package/dist/init/index.d.ts +9 -0
  125. package/dist/init/index.d.ts.map +1 -0
  126. package/dist/init/world-initializer.d.ts +76 -0
  127. package/dist/init/world-initializer.d.ts.map +1 -0
  128. package/dist/init/world-initializer.js +403 -0
  129. package/dist/init/world-initializer.js.map +1 -0
  130. package/dist/init/xr.d.ts +87 -0
  131. package/dist/init/xr.d.ts.map +1 -0
  132. package/dist/init/xr.js +193 -0
  133. package/dist/init/xr.js.map +1 -0
  134. package/dist/input/index.d.ts +9 -0
  135. package/dist/input/index.d.ts.map +1 -0
  136. package/dist/input/input-system.d.ts +52 -0
  137. package/dist/input/input-system.d.ts.map +1 -0
  138. package/dist/input/input-system.js +176 -0
  139. package/dist/input/input-system.js.map +1 -0
  140. package/dist/input/state-tags.d.ts +56 -0
  141. package/dist/input/state-tags.d.ts.map +1 -0
  142. package/dist/input/state-tags.js +63 -0
  143. package/dist/input/state-tags.js.map +1 -0
  144. package/dist/level/index.d.ts +12 -0
  145. package/dist/level/index.d.ts.map +1 -0
  146. package/dist/level/level-entity-creator.d.ts +27 -0
  147. package/dist/level/level-entity-creator.d.ts.map +1 -0
  148. package/dist/level/level-entity-creator.js +110 -0
  149. package/dist/level/level-entity-creator.js.map +1 -0
  150. package/dist/level/level-glxf-importer.d.ts +22 -0
  151. package/dist/level/level-glxf-importer.d.ts.map +1 -0
  152. package/dist/level/level-glxf-importer.js +40 -0
  153. package/dist/level/level-glxf-importer.js.map +1 -0
  154. package/dist/level/level-root.d.ts +18 -0
  155. package/dist/level/level-root.d.ts.map +1 -0
  156. package/dist/level/level-root.js +25 -0
  157. package/dist/level/level-root.js.map +1 -0
  158. package/dist/level/level-system.d.ts +54 -0
  159. package/dist/level/level-system.d.ts.map +1 -0
  160. package/dist/level/level-system.js +134 -0
  161. package/dist/level/level-system.js.map +1 -0
  162. package/dist/level/level-tag.d.ts +25 -0
  163. package/dist/level/level-tag.d.ts.map +1 -0
  164. package/dist/level/level-tag.js +28 -0
  165. package/dist/level/level-tag.js.map +1 -0
  166. package/dist/locomotion/geometries/beveled-cylinder.d.ts +12 -0
  167. package/dist/locomotion/geometries/beveled-cylinder.d.ts.map +1 -0
  168. package/dist/locomotion/geometries/beveled-cylinder.js +64 -0
  169. package/dist/locomotion/geometries/beveled-cylinder.js.map +1 -0
  170. package/dist/locomotion/index.d.ts +11 -0
  171. package/dist/locomotion/index.d.ts.map +1 -0
  172. package/dist/locomotion/locomotion.d.ts +239 -0
  173. package/dist/locomotion/locomotion.d.ts.map +1 -0
  174. package/dist/locomotion/locomotion.js +256 -0
  175. package/dist/locomotion/locomotion.js.map +1 -0
  176. package/dist/locomotion/materials/line.d.ts +24 -0
  177. package/dist/locomotion/materials/line.d.ts.map +1 -0
  178. package/dist/locomotion/materials/line.js +307 -0
  179. package/dist/locomotion/materials/line.js.map +1 -0
  180. package/dist/locomotion/slide.d.ts +76 -0
  181. package/dist/locomotion/slide.d.ts.map +1 -0
  182. package/dist/locomotion/slide.js +131 -0
  183. package/dist/locomotion/slide.js.map +1 -0
  184. package/dist/locomotion/teleport.d.ts +68 -0
  185. package/dist/locomotion/teleport.d.ts.map +1 -0
  186. package/dist/locomotion/teleport.js +150 -0
  187. package/dist/locomotion/teleport.js.map +1 -0
  188. package/dist/locomotion/turn.d.ts +77 -0
  189. package/dist/locomotion/turn.d.ts.map +1 -0
  190. package/dist/locomotion/turn.js +126 -0
  191. package/dist/locomotion/turn.js.map +1 -0
  192. 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
  193. 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
  194. 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
  195. 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
  196. package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/common/error-codes.js +66 -0
  197. package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/common/error-codes.js.map +1 -0
  198. package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/common/foreign-content.js +162 -0
  199. package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/common/foreign-content.js.map +1 -0
  200. package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/common/html.js +519 -0
  201. package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/common/html.js.map +1 -0
  202. package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/common/token.js +15 -0
  203. package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/common/token.js.map +1 -0
  204. package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/common/unicode.js +32 -0
  205. package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/common/unicode.js.map +1 -0
  206. package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/parser/formatting-element-list.js +10 -0
  207. package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/parser/formatting-element-list.js.map +1 -0
  208. package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/parser/index.js +41 -0
  209. package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/parser/index.js.map +1 -0
  210. package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/parser/open-element-stack.js +35 -0
  211. package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/parser/open-element-stack.js.map +1 -0
  212. package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/serializer/index.js +24 -0
  213. package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/serializer/index.js.map +1 -0
  214. package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/tokenizer/index.js +92 -0
  215. package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/tokenizer/index.js.map +1 -0
  216. package/dist/node_modules/.pnpm/super-three@0.177.0/node_modules/super-three/examples/jsm/libs/fflate.module.js +382 -0
  217. package/dist/node_modules/.pnpm/super-three@0.177.0/node_modules/super-three/examples/jsm/libs/fflate.module.js.map +1 -0
  218. package/dist/node_modules/.pnpm/super-three@0.177.0/node_modules/super-three/examples/jsm/loaders/EXRLoader.js +2587 -0
  219. package/dist/node_modules/.pnpm/super-three@0.177.0/node_modules/super-three/examples/jsm/loaders/EXRLoader.js.map +1 -0
  220. package/dist/node_modules/.pnpm/super-three@0.177.0/node_modules/super-three/examples/jsm/loaders/RGBELoader.js +477 -0
  221. package/dist/node_modules/.pnpm/super-three@0.177.0/node_modules/super-three/examples/jsm/loaders/RGBELoader.js.map +1 -0
  222. package/dist/node_modules/.pnpm/super-three@0.177.0/node_modules/super-three/src/math/MathUtils.js +17 -0
  223. package/dist/node_modules/.pnpm/super-three@0.177.0/node_modules/super-three/src/math/MathUtils.js.map +1 -0
  224. package/dist/physics/index.d.ts +11 -0
  225. package/dist/physics/index.d.ts.map +1 -0
  226. package/dist/physics/physics-system.d.ts +314 -0
  227. package/dist/physics/physics-system.d.ts.map +1 -0
  228. package/dist/physics/physics-system.js +419 -0
  229. package/dist/physics/physics-system.js.map +1 -0
  230. package/dist/physics/physicsBody.d.ts +83 -0
  231. package/dist/physics/physicsBody.d.ts.map +1 -0
  232. package/dist/physics/physicsBody.js +60 -0
  233. package/dist/physics/physicsBody.js.map +1 -0
  234. package/dist/physics/physicsManipulation.d.ts +51 -0
  235. package/dist/physics/physicsManipulation.d.ts.map +1 -0
  236. package/dist/physics/physicsManipulation.js +46 -0
  237. package/dist/physics/physicsManipulation.js.map +1 -0
  238. package/dist/physics/physicsShape.d.ts +133 -0
  239. package/dist/physics/physicsShape.d.ts.map +1 -0
  240. package/dist/physics/physicsShape.js +97 -0
  241. package/dist/physics/physicsShape.js.map +1 -0
  242. package/dist/physics/utils.d.ts +21 -0
  243. package/dist/physics/utils.d.ts.map +1 -0
  244. package/dist/physics/utils.js +130 -0
  245. package/dist/physics/utils.js.map +1 -0
  246. package/dist/runtime/index.d.ts +8 -0
  247. package/dist/runtime/index.d.ts.map +1 -0
  248. package/dist/runtime/three.d.ts +8 -0
  249. package/dist/runtime/three.d.ts.map +1 -0
  250. package/dist/runtime/three.js +18 -0
  251. package/dist/runtime/three.js.map +1 -0
  252. package/dist/scene-understanding/anchor.d.ts +42 -0
  253. package/dist/scene-understanding/anchor.d.ts.map +1 -0
  254. package/dist/scene-understanding/anchor.js +45 -0
  255. package/dist/scene-understanding/anchor.js.map +1 -0
  256. package/dist/scene-understanding/index.d.ts +11 -0
  257. package/dist/scene-understanding/index.d.ts.map +1 -0
  258. package/dist/scene-understanding/mesh.d.ts +67 -0
  259. package/dist/scene-understanding/mesh.d.ts.map +1 -0
  260. package/dist/scene-understanding/mesh.js +55 -0
  261. package/dist/scene-understanding/mesh.js.map +1 -0
  262. package/dist/scene-understanding/plane.d.ts +39 -0
  263. package/dist/scene-understanding/plane.d.ts.map +1 -0
  264. package/dist/scene-understanding/plane.js +42 -0
  265. package/dist/scene-understanding/plane.js.map +1 -0
  266. package/dist/scene-understanding/scene-understanding-system.d.ts +180 -0
  267. package/dist/scene-understanding/scene-understanding-system.d.ts.map +1 -0
  268. package/dist/scene-understanding/scene-understanding-system.js +342 -0
  269. package/dist/scene-understanding/scene-understanding-system.js.map +1 -0
  270. package/dist/transform/index.d.ts +10 -0
  271. package/dist/transform/index.d.ts.map +1 -0
  272. package/dist/transform/synced-quaternion.d.ts +35 -0
  273. package/dist/transform/synced-quaternion.d.ts.map +1 -0
  274. package/dist/transform/synced-quaternion.js +128 -0
  275. package/dist/transform/synced-quaternion.js.map +1 -0
  276. package/dist/transform/synced-vector3.d.ts +34 -0
  277. package/dist/transform/synced-vector3.d.ts.map +1 -0
  278. package/dist/transform/synced-vector3.js +106 -0
  279. package/dist/transform/synced-vector3.js.map +1 -0
  280. package/dist/transform/transform.d.ts +100 -0
  281. package/dist/transform/transform.d.ts.map +1 -0
  282. package/dist/transform/transform.js +194 -0
  283. package/dist/transform/transform.js.map +1 -0
  284. package/dist/types/webxr-augmentations.d.ts +23 -0
  285. package/dist/types/webxr-augmentations.d.ts.map +1 -0
  286. package/dist/ui/document.d.ts +112 -0
  287. package/dist/ui/document.d.ts.map +1 -0
  288. package/dist/ui/document.js +298 -0
  289. package/dist/ui/document.js.map +1 -0
  290. package/dist/ui/follow.d.ts +197 -0
  291. package/dist/ui/follow.d.ts.map +1 -0
  292. package/dist/ui/follow.js +143 -0
  293. package/dist/ui/follow.js.map +1 -0
  294. package/dist/ui/index.d.ts +18 -0
  295. package/dist/ui/index.d.ts.map +1 -0
  296. package/dist/ui/screenspace.d.ts +219 -0
  297. package/dist/ui/screenspace.d.ts.map +1 -0
  298. package/dist/ui/screenspace.js +215 -0
  299. package/dist/ui/screenspace.js.map +1 -0
  300. package/dist/ui/ui.d.ts +209 -0
  301. package/dist/ui/ui.d.ts.map +1 -0
  302. package/dist/ui/ui.js +185 -0
  303. package/dist/ui/ui.js.map +1 -0
  304. package/dist/vendor/basis/README.md +46 -0
  305. package/dist/vendor/basis/basis_transcoder.js +19 -0
  306. package/dist/vendor/basis/basis_transcoder.wasm +0 -0
  307. package/dist/vendor/draco/README.md +32 -0
  308. package/dist/vendor/draco/draco_decoder.js +34 -0
  309. package/dist/vendor/draco/draco_decoder.wasm +0 -0
  310. package/dist/vendor/draco/draco_encoder.js +33 -0
  311. package/dist/vendor/draco/draco_wasm_wrapper.js +117 -0
  312. package/dist/vendor/draco/gltf/draco_decoder.js +33 -0
  313. package/dist/vendor/draco/gltf/draco_decoder.wasm +0 -0
  314. package/dist/vendor/draco/gltf/draco_encoder.js +33 -0
  315. package/dist/vendor/draco/gltf/draco_wasm_wrapper.js +116 -0
  316. package/dist/version.d.ts +2 -0
  317. package/dist/version.d.ts.map +1 -0
  318. package/dist/version.js +4 -0
  319. package/dist/version.js.map +1 -0
  320. package/dist/visibility/index.d.ts +8 -0
  321. package/dist/visibility/index.d.ts.map +1 -0
  322. package/dist/visibility/visibility.d.ts +37 -0
  323. package/dist/visibility/visibility.d.ts.map +1 -0
  324. package/dist/visibility/visibility.js +52 -0
  325. package/dist/visibility/visibility.js.map +1 -0
  326. 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