@iwsdk/core 0.4.1 → 0.5.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 (407) hide show
  1. package/README.md +4 -7
  2. package/dist/asset/asset-manager.d.ts +137 -9
  3. package/dist/asset/asset-manager.d.ts.map +1 -1
  4. package/dist/asset/asset-manager.js +491 -47
  5. package/dist/asset/asset-manager.js.map +1 -1
  6. package/dist/asset/cache-manager.d.ts +4 -2
  7. package/dist/asset/cache-manager.d.ts.map +1 -1
  8. package/dist/asset/cache-manager.js +10 -3
  9. package/dist/asset/cache-manager.js.map +1 -1
  10. package/dist/asset/loaders/audio-loader.d.ts +1 -1
  11. package/dist/asset/loaders/audio-loader.d.ts.map +1 -1
  12. package/dist/asset/loaders/audio-loader.js +8 -26
  13. package/dist/asset/loaders/audio-loader.js.map +1 -1
  14. package/dist/asset/loaders/cached-asset-load.d.ts +35 -0
  15. package/dist/asset/loaders/cached-asset-load.d.ts.map +1 -0
  16. package/dist/asset/loaders/cached-asset-load.js +100 -0
  17. package/dist/asset/loaders/cached-asset-load.js.map +1 -0
  18. package/dist/asset/loaders/gltf-loader.d.ts +28 -1
  19. package/dist/asset/loaders/gltf-loader.d.ts.map +1 -1
  20. package/dist/asset/loaders/gltf-loader.js +254 -33
  21. package/dist/asset/loaders/gltf-loader.js.map +1 -1
  22. package/dist/asset/loaders/hdr-texture-loader.d.ts +1 -1
  23. package/dist/asset/loaders/hdr-texture-loader.d.ts.map +1 -1
  24. package/dist/asset/loaders/hdr-texture-loader.js +19 -29
  25. package/dist/asset/loaders/hdr-texture-loader.js.map +1 -1
  26. package/dist/asset/loaders/texture-loader.d.ts +1 -1
  27. package/dist/asset/loaders/texture-loader.d.ts.map +1 -1
  28. package/dist/asset/loaders/texture-loader.js +9 -26
  29. package/dist/asset/loaders/texture-loader.js.map +1 -1
  30. package/dist/asset/loaders/uikitml-loader.d.ts +12 -0
  31. package/dist/asset/loaders/uikitml-loader.d.ts.map +1 -0
  32. package/dist/asset/loaders/uikitml-loader.js +44 -0
  33. package/dist/asset/loaders/uikitml-loader.js.map +1 -0
  34. package/dist/audio/audio-pool.d.ts +7 -0
  35. package/dist/audio/audio-pool.d.ts.map +1 -1
  36. package/dist/audio/audio-pool.js.map +1 -1
  37. package/dist/audio/audio-system.d.ts +3 -2
  38. package/dist/audio/audio-system.d.ts.map +1 -1
  39. package/dist/audio/audio-system.js +17 -6
  40. package/dist/audio/audio-system.js.map +1 -1
  41. package/dist/audio/audio-utils.d.ts +2 -2
  42. package/dist/audio/audio-utils.d.ts.map +1 -1
  43. package/dist/audio/audio.d.ts +1 -1
  44. package/dist/audio/audio.d.ts.map +1 -1
  45. package/dist/audio/audio.js +2 -4
  46. package/dist/audio/audio.js.map +1 -1
  47. package/dist/camera/camera-source.d.ts +1 -1
  48. package/dist/camera/camera-source.d.ts.map +1 -1
  49. package/dist/camera/camera-source.js +0 -4
  50. package/dist/camera/camera-source.js.map +1 -1
  51. package/dist/camera/camera-system.d.ts +18 -18
  52. package/dist/camera/camera-system.d.ts.map +1 -1
  53. package/dist/camera/camera-system.js +5 -6
  54. package/dist/camera/camera-system.js.map +1 -1
  55. package/dist/camera/camera-utils.d.ts +1 -1
  56. package/dist/camera/camera-utils.d.ts.map +1 -1
  57. package/dist/depth/depth-occludable.d.ts +1 -1
  58. package/dist/depth/depth-occludable.d.ts.map +1 -1
  59. package/dist/depth/depth-occludable.js +0 -4
  60. package/dist/depth/depth-occludable.js.map +1 -1
  61. package/dist/depth/depth-sensing-system.d.ts +2 -2
  62. package/dist/depth/depth-sensing-system.d.ts.map +1 -1
  63. package/dist/depth/depth-sensing-system.js +31 -13
  64. package/dist/depth/depth-sensing-system.js.map +1 -1
  65. package/dist/ecs/builtin-components.d.ts +1239 -0
  66. package/dist/ecs/builtin-components.d.ts.map +1 -0
  67. package/dist/ecs/builtin-components.js +87 -0
  68. package/dist/ecs/builtin-components.js.map +1 -0
  69. package/dist/ecs/component-editor-metadata.d.ts +19 -0
  70. package/dist/ecs/component-editor-metadata.d.ts.map +1 -0
  71. package/dist/ecs/component-editor-metadata.js +19 -0
  72. package/dist/ecs/component-editor-metadata.js.map +1 -0
  73. package/dist/ecs/component-manifest.d.ts +24 -0
  74. package/dist/ecs/component-manifest.d.ts.map +1 -0
  75. package/dist/ecs/component-manifest.js +121 -0
  76. package/dist/ecs/component-manifest.js.map +1 -0
  77. package/dist/ecs/component.d.ts +1 -0
  78. package/dist/ecs/component.d.ts.map +1 -1
  79. package/dist/ecs/entity.d.ts +20 -2
  80. package/dist/ecs/entity.d.ts.map +1 -1
  81. package/dist/ecs/entity.js +59 -3
  82. package/dist/ecs/entity.js.map +1 -1
  83. package/dist/ecs/index.d.ts +3 -1
  84. package/dist/ecs/index.d.ts.map +1 -1
  85. package/dist/ecs/system.d.ts +9 -0
  86. package/dist/ecs/system.d.ts.map +1 -1
  87. package/dist/ecs/system.js.map +1 -1
  88. package/dist/ecs/world.d.ts +160 -5
  89. package/dist/ecs/world.d.ts.map +1 -1
  90. package/dist/ecs/world.js +306 -19
  91. package/dist/ecs/world.js.map +1 -1
  92. package/dist/environment/dome-gradient.d.ts +3 -2
  93. package/dist/environment/dome-gradient.d.ts.map +1 -1
  94. package/dist/environment/dome-gradient.js +2 -5
  95. package/dist/environment/dome-gradient.js.map +1 -1
  96. package/dist/environment/dome-texture.d.ts +1 -1
  97. package/dist/environment/dome-texture.d.ts.map +1 -1
  98. package/dist/environment/dome-texture.js +0 -4
  99. package/dist/environment/dome-texture.js.map +1 -1
  100. package/dist/environment/environment-system.d.ts +20 -4
  101. package/dist/environment/environment-system.d.ts.map +1 -1
  102. package/dist/environment/environment-system.js +79 -61
  103. package/dist/environment/environment-system.js.map +1 -1
  104. package/dist/environment/gradient-environment.d.ts.map +1 -1
  105. package/dist/environment/gradient-environment.js +13 -7
  106. package/dist/environment/gradient-environment.js.map +1 -1
  107. package/dist/environment/ibl-gradient.d.ts +1 -1
  108. package/dist/environment/ibl-gradient.d.ts.map +1 -1
  109. package/dist/environment/ibl-gradient.js +0 -4
  110. package/dist/environment/ibl-gradient.js.map +1 -1
  111. package/dist/environment/ibl-texture.d.ts +1 -1
  112. package/dist/environment/ibl-texture.d.ts.map +1 -1
  113. package/dist/environment/ibl-texture.js +0 -4
  114. package/dist/environment/ibl-texture.js.map +1 -1
  115. package/dist/environment/scene-ar-environment.d.ts +39 -0
  116. package/dist/environment/scene-ar-environment.d.ts.map +1 -0
  117. package/dist/environment/scene-ar-environment.js +93 -0
  118. package/dist/environment/scene-ar-environment.js.map +1 -0
  119. package/dist/environment-raycast/environment-raycast.d.ts +21 -21
  120. package/dist/environment-raycast/environment-raycast.d.ts.map +1 -1
  121. package/dist/environment-raycast/environment-raycast.js +0 -4
  122. package/dist/environment-raycast/environment-raycast.js.map +1 -1
  123. package/dist/environment-raycast/raycast-target.d.ts +1 -1
  124. package/dist/environment-raycast/raycast-target.d.ts.map +1 -1
  125. package/dist/environment-raycast/raycast-target.js +0 -4
  126. package/dist/environment-raycast/raycast-target.js.map +1 -1
  127. package/dist/grab/distance-grabbable.d.ts +1 -1
  128. package/dist/grab/distance-grabbable.d.ts.map +1 -1
  129. package/dist/grab/distance-grabbable.js +0 -4
  130. package/dist/grab/distance-grabbable.js.map +1 -1
  131. package/dist/grab/grab-helpers.d.ts +39 -0
  132. package/dist/grab/grab-helpers.d.ts.map +1 -0
  133. package/dist/grab/grab-helpers.js +59 -0
  134. package/dist/grab/grab-helpers.js.map +1 -0
  135. package/dist/grab/grab-system.d.ts +47 -2
  136. package/dist/grab/grab-system.d.ts.map +1 -1
  137. package/dist/grab/grab-system.js +67 -8
  138. package/dist/grab/grab-system.js.map +1 -1
  139. package/dist/grab/grab-warnings.d.ts +14 -0
  140. package/dist/grab/grab-warnings.d.ts.map +1 -0
  141. package/dist/grab/grab-warnings.js +53 -0
  142. package/dist/grab/grab-warnings.js.map +1 -0
  143. package/dist/grab/grabbed.d.ts.map +1 -1
  144. package/dist/grab/grabbed.js +0 -4
  145. package/dist/grab/grabbed.js.map +1 -1
  146. package/dist/grab/handles.d.ts +1 -1
  147. package/dist/grab/handles.d.ts.map +1 -1
  148. package/dist/grab/handles.js +8 -7
  149. package/dist/grab/handles.js.map +1 -1
  150. package/dist/grab/one-hand-grabbable.d.ts +1 -1
  151. package/dist/grab/one-hand-grabbable.d.ts.map +1 -1
  152. package/dist/grab/one-hand-grabbable.js +0 -4
  153. package/dist/grab/one-hand-grabbable.js.map +1 -1
  154. package/dist/grab/two-hands-grabbable.d.ts +1 -1
  155. package/dist/grab/two-hands-grabbable.d.ts.map +1 -1
  156. package/dist/grab/two-hands-grabbable.js +0 -4
  157. package/dist/grab/two-hands-grabbable.js.map +1 -1
  158. package/dist/index.d.ts +4 -0
  159. package/dist/index.d.ts.map +1 -1
  160. package/dist/index.js +42 -16
  161. package/dist/index.js.map +1 -1
  162. package/dist/init/world-initializer.d.ts +12 -8
  163. package/dist/init/world-initializer.d.ts.map +1 -1
  164. package/dist/init/world-initializer.js +127 -67
  165. package/dist/init/world-initializer.js.map +1 -1
  166. package/dist/init/xr.d.ts +1 -2
  167. package/dist/init/xr.d.ts.map +1 -1
  168. package/dist/init/xr.js +12 -3
  169. package/dist/init/xr.js.map +1 -1
  170. package/dist/input/input-system.d.ts +59 -59
  171. package/dist/input/input-system.d.ts.map +1 -1
  172. package/dist/input/input-system.js +26 -13
  173. package/dist/input/input-system.js.map +1 -1
  174. package/dist/input/state-tags.d.ts.map +1 -1
  175. package/dist/input/state-tags.js +0 -4
  176. package/dist/input/state-tags.js.map +1 -1
  177. package/dist/layers/xr-cylinder-layer.d.ts +1 -1
  178. package/dist/layers/xr-cylinder-layer.d.ts.map +1 -1
  179. package/dist/layers/xr-cylinder-layer.js +0 -4
  180. package/dist/layers/xr-cylinder-layer.js.map +1 -1
  181. package/dist/layers/xr-layer-state.d.ts +47 -0
  182. package/dist/layers/xr-layer-state.d.ts.map +1 -0
  183. package/dist/layers/xr-layer-state.js +23 -0
  184. package/dist/layers/xr-layer-state.js.map +1 -0
  185. package/dist/layers/xr-layer-system.d.ts +46 -94
  186. package/dist/layers/xr-layer-system.d.ts.map +1 -1
  187. package/dist/layers/xr-layer-system.js +4 -28
  188. package/dist/layers/xr-layer-system.js.map +1 -1
  189. package/dist/layers/xr-quad-layer.d.ts +1 -1
  190. package/dist/layers/xr-quad-layer.d.ts.map +1 -1
  191. package/dist/layers/xr-quad-layer.js +0 -4
  192. package/dist/layers/xr-quad-layer.js.map +1 -1
  193. package/dist/level/index.d.ts +6 -2
  194. package/dist/level/index.d.ts.map +1 -1
  195. package/dist/level/level-component-applier.d.ts +24 -0
  196. package/dist/level/level-component-applier.d.ts.map +1 -0
  197. package/dist/level/level-component-applier.js +199 -0
  198. package/dist/level/level-component-applier.js.map +1 -0
  199. package/dist/level/level-player-rig.d.ts +17 -0
  200. package/dist/level/level-player-rig.d.ts.map +1 -0
  201. package/dist/level/level-player-rig.js +113 -0
  202. package/dist/level/level-player-rig.js.map +1 -0
  203. package/dist/level/level-root.d.ts.map +1 -1
  204. package/dist/level/level-root.js +0 -4
  205. package/dist/level/level-root.js.map +1 -1
  206. package/dist/level/level-scene-environment.d.ts +28 -0
  207. package/dist/level/level-scene-environment.d.ts.map +1 -0
  208. package/dist/level/level-scene-environment.js +121 -0
  209. package/dist/level/level-scene-environment.js.map +1 -0
  210. package/dist/level/level-scene-json-importer.d.ts +53 -0
  211. package/dist/level/level-scene-json-importer.d.ts.map +1 -0
  212. package/dist/level/level-scene-json-importer.js +256 -0
  213. package/dist/level/level-scene-json-importer.js.map +1 -0
  214. package/dist/level/level-scene-material.d.ts +22 -0
  215. package/dist/level/level-scene-material.d.ts.map +1 -0
  216. package/dist/level/level-scene-material.js +231 -0
  217. package/dist/level/level-scene-material.js.map +1 -0
  218. package/dist/level/level-scene-object.d.ts +49 -0
  219. package/dist/level/level-scene-object.d.ts.map +1 -0
  220. package/dist/level/level-scene-object.js +396 -0
  221. package/dist/level/level-scene-object.js.map +1 -0
  222. package/dist/level/level-scene-primitive.d.ts +21 -0
  223. package/dist/level/level-scene-primitive.d.ts.map +1 -0
  224. package/dist/level/level-scene-primitive.js +159 -0
  225. package/dist/level/level-scene-primitive.js.map +1 -0
  226. package/dist/level/level-system.d.ts +14 -20
  227. package/dist/level/level-system.d.ts.map +1 -1
  228. package/dist/level/level-system.js +114 -52
  229. package/dist/level/level-system.js.map +1 -1
  230. package/dist/level/level-tag.d.ts +1 -1
  231. package/dist/level/level-tag.d.ts.map +1 -1
  232. package/dist/level/level-tag.js +0 -4
  233. package/dist/level/level-tag.js.map +1 -1
  234. package/dist/lighting/index.d.ts +10 -0
  235. package/dist/lighting/index.d.ts.map +1 -0
  236. package/dist/lighting/index.js +4 -0
  237. package/dist/lighting/index.js.map +1 -0
  238. package/dist/lighting/light-binding.d.ts +76 -0
  239. package/dist/lighting/light-binding.d.ts.map +1 -0
  240. package/dist/lighting/light-binding.js +229 -0
  241. package/dist/lighting/light-binding.js.map +1 -0
  242. package/dist/lighting/light-components.d.ts +885 -0
  243. package/dist/lighting/light-components.d.ts.map +1 -0
  244. package/dist/lighting/light-components.js +146 -0
  245. package/dist/lighting/light-components.js.map +1 -0
  246. package/dist/lighting/light-system.d.ts +919 -0
  247. package/dist/lighting/light-system.d.ts.map +1 -0
  248. package/dist/lighting/light-system.js +244 -0
  249. package/dist/lighting/light-system.js.map +1 -0
  250. package/dist/locomotion/locomotion-environment.d.ts +27 -0
  251. package/dist/locomotion/locomotion-environment.d.ts.map +1 -0
  252. package/dist/locomotion/locomotion-environment.js +22 -0
  253. package/dist/locomotion/locomotion-environment.js.map +1 -0
  254. package/dist/locomotion/locomotion-input-provider.d.ts +1 -1
  255. package/dist/locomotion/locomotion.d.ts +5 -34
  256. package/dist/locomotion/locomotion.d.ts.map +1 -1
  257. package/dist/locomotion/locomotion.js +33 -31
  258. package/dist/locomotion/locomotion.js.map +1 -1
  259. package/dist/locomotion/materials/line.js +1 -1
  260. package/dist/locomotion/slide.d.ts +2 -2
  261. package/dist/locomotion/slide.d.ts.map +1 -1
  262. package/dist/locomotion/slide.js +3 -6
  263. package/dist/locomotion/slide.js.map +1 -1
  264. package/dist/locomotion/teleport.d.ts +2 -2
  265. package/dist/locomotion/teleport.d.ts.map +1 -1
  266. package/dist/locomotion/teleport.js +1 -4
  267. package/dist/locomotion/teleport.js.map +1 -1
  268. package/dist/mcp/ecs-debug-tools.d.ts.map +1 -1
  269. package/dist/mcp/ecs-debug-tools.js +10 -2
  270. package/dist/mcp/ecs-debug-tools.js.map +1 -1
  271. package/dist/mcp/mcp-runtime.d.ts.map +1 -1
  272. package/dist/mcp/mcp-runtime.js +4 -1
  273. package/dist/mcp/mcp-runtime.js.map +1 -1
  274. package/dist/mcp/scene-tools.d.ts +152 -1
  275. package/dist/mcp/scene-tools.d.ts.map +1 -1
  276. package/dist/mcp/scene-tools.js +538 -8
  277. package/dist/mcp/scene-tools.js.map +1 -1
  278. package/dist/physics/index.js +12 -0
  279. package/dist/physics/index.js.map +1 -0
  280. package/dist/physics/physics-system.d.ts +704 -11
  281. package/dist/physics/physics-system.d.ts.map +1 -1
  282. package/dist/physics/physics-system.js +310 -29
  283. package/dist/physics/physics-system.js.map +1 -1
  284. package/dist/physics/physicsBody.d.ts +40 -1
  285. package/dist/physics/physicsBody.d.ts.map +1 -1
  286. package/dist/physics/physicsBody.js +39 -1
  287. package/dist/physics/physicsBody.js.map +1 -1
  288. package/dist/physics/physicsManipulation.d.ts +1 -1
  289. package/dist/physics/physicsManipulation.d.ts.map +1 -1
  290. package/dist/physics/physicsManipulation.js +0 -1
  291. package/dist/physics/physicsManipulation.js.map +1 -1
  292. package/dist/physics/physicsShape.d.ts +5 -3
  293. package/dist/physics/physicsShape.d.ts.map +1 -1
  294. package/dist/physics/physicsShape.js +2 -2
  295. package/dist/physics/physicsShape.js.map +1 -1
  296. package/dist/physics/utils.d.ts +10 -0
  297. package/dist/physics/utils.d.ts.map +1 -1
  298. package/dist/physics/utils.js +82 -48
  299. package/dist/physics/utils.js.map +1 -1
  300. package/dist/project/index.d.ts +11 -0
  301. package/dist/project/index.d.ts.map +1 -0
  302. package/dist/project/index.js +5 -0
  303. package/dist/project/index.js.map +1 -0
  304. package/dist/project/normalize.d.ts +19 -0
  305. package/dist/project/normalize.d.ts.map +1 -0
  306. package/dist/project/normalize.js +206 -0
  307. package/dist/project/normalize.js.map +1 -0
  308. package/dist/project/paths.d.ts +21 -0
  309. package/dist/project/paths.d.ts.map +1 -0
  310. package/dist/project/paths.js +75 -0
  311. package/dist/project/paths.js.map +1 -0
  312. package/dist/project/types.d.ts +159 -0
  313. package/dist/project/types.d.ts.map +1 -0
  314. package/dist/project/types.js +11 -0
  315. package/dist/project/types.js.map +1 -0
  316. package/dist/project/validation.d.ts +17 -0
  317. package/dist/project/validation.d.ts.map +1 -0
  318. package/dist/project/validation.js +501 -0
  319. package/dist/project/validation.js.map +1 -0
  320. package/dist/scene-understanding/anchor.d.ts +1 -1
  321. package/dist/scene-understanding/anchor.d.ts.map +1 -1
  322. package/dist/scene-understanding/anchor.js +0 -4
  323. package/dist/scene-understanding/anchor.js.map +1 -1
  324. package/dist/scene-understanding/mesh.d.ts +1 -1
  325. package/dist/scene-understanding/mesh.d.ts.map +1 -1
  326. package/dist/scene-understanding/mesh.js +0 -4
  327. package/dist/scene-understanding/mesh.js.map +1 -1
  328. package/dist/scene-understanding/plane.d.ts +1 -1
  329. package/dist/scene-understanding/plane.d.ts.map +1 -1
  330. package/dist/scene-understanding/plane.js +0 -4
  331. package/dist/scene-understanding/plane.js.map +1 -1
  332. package/dist/scene-understanding/scene-understanding-system.d.ts +25 -4
  333. package/dist/scene-understanding/scene-understanding-system.d.ts.map +1 -1
  334. package/dist/scene-understanding/scene-understanding-system.js +76 -57
  335. package/dist/scene-understanding/scene-understanding-system.js.map +1 -1
  336. package/dist/schemas/iwsdk-project.v1.schema.json +305 -0
  337. package/dist/transform/transform-component.d.ts +32 -0
  338. package/dist/transform/transform-component.d.ts.map +1 -0
  339. package/dist/transform/transform-component.js +24 -0
  340. package/dist/transform/transform-component.js.map +1 -0
  341. package/dist/transform/transform.d.ts +10 -43
  342. package/dist/transform/transform.d.ts.map +1 -1
  343. package/dist/transform/transform.js +9 -28
  344. package/dist/transform/transform.js.map +1 -1
  345. package/dist/ui/document.d.ts +9 -2
  346. package/dist/ui/document.d.ts.map +1 -1
  347. package/dist/ui/document.js +30 -5
  348. package/dist/ui/document.js.map +1 -1
  349. package/dist/ui/follow-component.d.ts +57 -0
  350. package/dist/ui/follow-component.d.ts.map +1 -0
  351. package/dist/ui/follow-component.js +38 -0
  352. package/dist/ui/follow-component.js.map +1 -0
  353. package/dist/ui/follow.d.ts +29 -103
  354. package/dist/ui/follow.d.ts.map +1 -1
  355. package/dist/ui/follow.js +10 -51
  356. package/dist/ui/follow.js.map +1 -1
  357. package/dist/ui/index.d.ts +3 -0
  358. package/dist/ui/index.d.ts.map +1 -1
  359. package/dist/ui/panel-components.d.ts +29 -0
  360. package/dist/ui/panel-components.d.ts.map +1 -0
  361. package/dist/ui/panel-components.js +22 -0
  362. package/dist/ui/panel-components.js.map +1 -0
  363. package/dist/ui/screenspace-component.d.ts +39 -0
  364. package/dist/ui/screenspace-component.d.ts.map +1 -0
  365. package/dist/ui/screenspace-component.js +21 -0
  366. package/dist/ui/screenspace-component.js.map +1 -0
  367. package/dist/ui/screenspace.d.ts +47 -135
  368. package/dist/ui/screenspace.d.ts.map +1 -1
  369. package/dist/ui/screenspace.js +127 -65
  370. package/dist/ui/screenspace.js.map +1 -1
  371. package/dist/ui/ui.d.ts +20 -122
  372. package/dist/ui/ui.d.ts.map +1 -1
  373. package/dist/ui/ui.js +44 -107
  374. package/dist/ui/ui.js.map +1 -1
  375. package/dist/ui/uikitml-asset.d.ts +25 -0
  376. package/dist/ui/uikitml-asset.d.ts.map +1 -0
  377. package/dist/ui/uikitml-asset.js +56 -0
  378. package/dist/ui/uikitml-asset.js.map +1 -0
  379. package/dist/ui/uikitml.d.ts +41 -0
  380. package/dist/ui/uikitml.d.ts.map +1 -0
  381. package/dist/ui/uikitml.js +119 -0
  382. package/dist/ui/uikitml.js.map +1 -0
  383. package/dist/vendor/draco/gltf/draco_encoder.js +0 -0
  384. package/dist/version.d.ts +1 -1
  385. package/dist/version.js +1 -1
  386. package/dist/visibility/visibility-component.d.ts +14 -0
  387. package/dist/visibility/visibility-component.d.ts.map +1 -0
  388. package/dist/visibility/visibility-component.js +15 -0
  389. package/dist/visibility/visibility-component.js.map +1 -0
  390. package/dist/visibility/visibility.d.ts +4 -11
  391. package/dist/visibility/visibility.d.ts.map +1 -1
  392. package/dist/visibility/visibility.js +9 -15
  393. package/dist/visibility/visibility.js.map +1 -1
  394. package/package.json +71 -19
  395. package/LICENSE +0 -21
  396. package/dist/ecs/component-registry.d.ts +0 -54
  397. package/dist/ecs/component-registry.d.ts.map +0 -1
  398. package/dist/ecs/component-registry.js +0 -86
  399. package/dist/ecs/component-registry.js.map +0 -1
  400. package/dist/level/level-entity-creator.d.ts +0 -27
  401. package/dist/level/level-entity-creator.d.ts.map +0 -1
  402. package/dist/level/level-entity-creator.js +0 -111
  403. package/dist/level/level-entity-creator.js.map +0 -1
  404. package/dist/level/level-glxf-importer.d.ts +0 -22
  405. package/dist/level/level-glxf-importer.d.ts.map +0 -1
  406. package/dist/level/level-glxf-importer.js +0 -40
  407. package/dist/level/level-glxf-importer.js.map +0 -1
@@ -4,51 +4,45 @@
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
- import { Types } from '../ecs/index.js';
8
- declare const LevelSystem_base: import("elics").SystemConstructor<{
9
- /** Attach a default gradient dome on level roots when none provided. */
10
- defaultLighting: {
11
- type: Types.Boolean;
12
- default: true;
13
- };
14
- }, {
7
+ import type { SceneDocument } from '@iwsdk/scene-composition';
8
+ import type { World } from '../ecs/world.js';
9
+ declare const LevelSystem_base: import("elics").SystemConstructor<import("elics").SystemSchema, {
15
10
  levelEntities: {
16
11
  required: import("elics").Component<{
17
12
  id: {
18
- type: Types.String;
13
+ type: import("elics").Types.String;
19
14
  default: string;
20
15
  };
21
16
  }>[];
22
17
  };
23
- }, import("../ecs/world.js").World, import("../ecs/system.js").System<{
24
- /** Attach a default gradient dome on level roots when none provided. */
25
- defaultLighting: {
26
- type: Types.Boolean;
27
- default: true;
28
- };
29
- }, {
18
+ }, World, import("../ecs/system.js").System<import("elics").SystemSchema, {
30
19
  levelEntities: {
31
20
  required: import("elics").Component<{
32
21
  id: {
33
- type: Types.String;
22
+ type: import("elics").Types.String;
34
23
  default: string;
35
24
  };
36
25
  }>[];
37
26
  };
38
27
  }>>;
39
28
  /**
40
- * Manages the active level root, enforces identity transforms, and loads new levels on request.
29
+ * Manages the active level root, enforces identity transforms, and atomically loads levels.
41
30
  *
42
31
  * @remarks
43
- * - Destroys all {@link LevelTag}-tagged entities on level change.
44
- * - Loads GLXF via {@link GLXFImporter} when a URL is requested through {@link World.loadLevel}.
32
+ * - Stages replacement content invisibly and destroys the prior level only after a successful load.
33
+ * - Rejects failed loads while keeping the prior level active.
34
+ * - Loads native scene JSON documents or native scene JSON URLs.
45
35
  * @category Scene
46
36
  */
47
37
  export declare class LevelSystem extends LevelSystem_base {
48
38
  private loading;
39
+ /** Renderer state that predates the currently committed level. */
40
+ private activeEnvironmentBase;
49
41
  init(): void;
50
42
  update(): void;
51
43
  private startLevelChange;
52
44
  }
45
+ /** Apply a composed scene's authored hero view to the non-immersive camera. */
46
+ export declare function applySceneHeroCamera(world: World, document: SceneDocument): boolean;
53
47
  export {};
54
48
  //# sourceMappingURL=level-system.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"level-system.d.ts","sourceRoot":"","sources":["../../src/level/level-system.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,KAAK,EAAgB,MAAM,iBAAiB,CAAC;;IA0BlD,wEAAwE;;;;;;;;;;;;;;;IAAxE,wEAAwE;;;;;;;;;;;;;;;AAd5E;;;;;;;GAOG;AACH,qBAAa,WAAY,SAAQ,gBAShC;IACC,OAAO,CAAC,OAAO,CAAS;IAExB,IAAI,IAAI,IAAI;IAiBZ,MAAM,IAAI,IAAI;IAgCd,OAAO,CAAC,gBAAgB;CAiDzB"}
1
+ {"version":3,"file":"level-system.d.ts","sourceRoot":"","sources":["../../src/level/level-system.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,aAAa,EAEd,MAAM,0BAA0B,CAAC;AAIlC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;;;;;;;;;;;;;;;;;;;;AAmB7C;;;;;;;;GAQG;AACH,qBAAa,WAAY,SAAQ,gBAG/B;IACA,OAAO,CAAC,OAAO,CAAS;IACxB,kEAAkE;IAClE,OAAO,CAAC,qBAAqB,CAAoC;IAEjE,IAAI,IAAI,IAAI;IAiBZ,MAAM,IAAI,IAAI;IAiCd,OAAO,CAAC,gBAAgB;CAoGzB;AAED,+EAA+E;AAC/E,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,aAAa,GACtB,OAAO,CA0BT"}
@@ -1,17 +1,13 @@
1
1
  import { signal } from '@preact/signals-core';
2
2
  import { createSystem } from '../ecs/system.js';
3
- import '../ecs/world.js';
4
- import { Types } from 'elics';
5
- import '../ecs/entity.js';
6
- import '../ecs/component-registry.js';
7
- import { DomeTexture } from '../environment/dome-texture.js';
8
- import { DomeGradient } from '../environment/dome-gradient.js';
9
- import { IBLTexture } from '../environment/ibl-texture.js';
10
- import { IBLGradient } from '../environment/ibl-gradient.js';
11
- import '../environment/environment-system.js';
12
- import { GLXFImporter } from './level-glxf-importer.js';
3
+ import '../runtime/three.js';
4
+ import { applyScenePlayerRig } from './level-player-rig.js';
13
5
  import { LevelRoot } from './level-root.js';
6
+ import { captureSceneEnvironment, applySceneEnvironment, restoreSceneEnvironment } from './level-scene-environment.js';
7
+ import { SceneJSONImporter, createSceneEntityReferenceResolver, activateScenePlayerAttachments } from './level-scene-json-importer.js';
8
+ import { disposeSceneObjectResources } from './level-scene-object.js';
14
9
  import { LevelTag } from './level-tag.js';
10
+ import { Vector3 } from 'three';
15
11
 
16
12
  /**
17
13
  * Copyright (c) Meta Platforms, Inc. and affiliates.
@@ -20,19 +16,17 @@ import { LevelTag } from './level-tag.js';
20
16
  * LICENSE file in the root directory of this source tree.
21
17
  */
22
18
  /**
23
- * Manages the active level root, enforces identity transforms, and loads new levels on request.
19
+ * Manages the active level root, enforces identity transforms, and atomically loads levels.
24
20
  *
25
21
  * @remarks
26
- * - Destroys all {@link LevelTag}-tagged entities on level change.
27
- * - Loads GLXF via {@link GLXFImporter} when a URL is requested through {@link World.loadLevel}.
22
+ * - Stages replacement content invisibly and destroys the prior level only after a successful load.
23
+ * - Rejects failed loads while keeping the prior level active.
24
+ * - Loads native scene JSON documents or native scene JSON URLs.
28
25
  * @category Scene
29
26
  */
30
27
  class LevelSystem extends createSystem({
31
28
  // All entities that belong to a level (will be destroyed on level change)
32
29
  levelEntities: { required: [LevelTag] },
33
- }, {
34
- /** Attach a default gradient dome on level roots when none provided. */
35
- defaultLighting: { type: Types.Boolean, default: true },
36
30
  }) {
37
31
  constructor() {
38
32
  super(...arguments);
@@ -77,59 +71,127 @@ class LevelSystem extends createSystem({
77
71
  if (this.loading) {
78
72
  return;
79
73
  }
80
- const pending = this.world.requestedLevelUrl;
81
- if (pending === undefined) {
74
+ const pendingUrl = this.world.requestedLevelUrl;
75
+ const pendingDocument = this.world.requestedLevelDocument;
76
+ if (pendingUrl === undefined && pendingDocument === undefined) {
82
77
  return;
83
78
  }
84
- this.startLevelChange(pending);
79
+ this.startLevelChange(pendingUrl !== null && pendingUrl !== void 0 ? pendingUrl : '', pendingDocument);
85
80
  }
86
- startLevelChange(url) {
81
+ startLevelChange(url, document = this.world.requestedLevelDocument) {
87
82
  this.loading = true;
83
+ const resolveLoad = this.world._resolveLevelLoad;
84
+ const rejectLoad = this.world._rejectLevelLoad;
85
+ this.world._resolveLevelLoad = undefined;
86
+ this.world._rejectLevelLoad = undefined;
88
87
  // Unset request now to avoid re-entry during async flow
89
88
  this.world.requestedLevelUrl = undefined;
90
- // Destroy all level-tagged entities (current level content)
91
- for (const ent of this.queries.levelEntities.entities) {
92
- try {
93
- ent.destroy();
94
- }
95
- catch (_a) { }
96
- }
97
- // Create a fresh level root and make it active
89
+ this.world.requestedLevelDocument = undefined;
90
+ const previousRoot = this.world.activeLevel.value;
91
+ const previousLevelId = this.world.activeLevelId;
92
+ const previousEntities = new Set(this.queries.levelEntities.entities);
93
+ const nextLevelId = url || 'level:default';
94
+ const environmentAtLoadStart = captureSceneEnvironment(this.world.scene, this.world.renderer);
95
+ // Stage the replacement under the scene root without exposing it as active.
96
+ this.world.activeLevelId = nextLevelId;
98
97
  const newRoot = this.world.createTransformEntity(undefined, {
99
98
  parent: this.world.sceneEntity,
100
99
  });
101
100
  newRoot.object3D.name = 'LevelRoot';
101
+ newRoot.object3D.visible = false;
102
102
  newRoot.addComponent(LevelRoot);
103
- this.world.activeLevel.value = newRoot;
104
- const doLoad = url
105
- ? GLXFImporter.load(this.world, url, newRoot)
106
- : Promise.resolve();
103
+ const doLoad = document != null
104
+ ? SceneJSONImporter.loadDocument(this.world, document, newRoot)
105
+ : url
106
+ ? SceneJSONImporter.load(this.world, url, newRoot)
107
+ : Promise.resolve();
107
108
  void doLoad
108
- .catch((err) => console.error('[LevelSystem] Failed to load level', err))
109
- .finally(() => {
110
- this.loading = false;
111
- // Attach default lighting if requested and the level root has no dome/IBL
112
- try {
113
- if (this.config.defaultLighting.value) {
114
- const hasDome = newRoot.hasComponent(DomeTexture) ||
115
- newRoot.hasComponent(DomeGradient);
116
- const hasIBL = newRoot.hasComponent(IBLTexture) ||
117
- newRoot.hasComponent(IBLGradient);
118
- if (!hasDome && !hasIBL) {
119
- newRoot.addComponent(DomeGradient).addComponent(IBLGradient);
120
- }
121
- }
109
+ .then((loadResult) => {
110
+ var _a;
111
+ const nativeResult = asNativeSceneLoadResult(loadResult);
112
+ // Prepare the next authored environment against the stable pre-level
113
+ // baseline. The apply is transactional and retires the active level's
114
+ // generated resources only after the replacement is ready.
115
+ const nextEnvironmentBase = (_a = this.activeEnvironmentBase) !== null && _a !== void 0 ? _a : environmentAtLoadStart;
116
+ applySceneEnvironment(this.world.scene, this.world.renderer, nativeResult === null || nativeResult === void 0 ? void 0 : nativeResult.document.environment, nextEnvironmentBase);
117
+ if (nativeResult != null) {
118
+ newRoot.object3D.userData.iwsdkSceneResources = cloneJson(nativeResult.document.resources);
122
119
  }
123
- catch (e) {
124
- console.warn('[LevelSystem] defaultLighting setup failed:', e);
120
+ applyScenePlayerRig(this.world, nativeResult === null || nativeResult === void 0 ? void 0 : nativeResult.document.player, {
121
+ resolveEntityReference: nativeResult == null
122
+ ? undefined
123
+ : createSceneEntityReferenceResolver(this.world, newRoot, nativeResult.nodes),
124
+ });
125
+ disposeLevelEntities(previousEntities);
126
+ activateScenePlayerAttachments(nativeResult);
127
+ newRoot.object3D.visible = true;
128
+ this.world.activeLevelId = nextLevelId;
129
+ this.world.activeLevel.value = newRoot;
130
+ if (nativeResult != null) {
131
+ applySceneHeroCamera(this.world, nativeResult.document);
125
132
  }
126
- if (this.world._resolveLevelLoad) {
127
- this.world._resolveLevelLoad();
128
- this.world._resolveLevelLoad = undefined;
133
+ this.activeEnvironmentBase = nextEnvironmentBase;
134
+ this.loading = false;
135
+ resolveLoad === null || resolveLoad === void 0 ? void 0 : resolveLoad();
136
+ })
137
+ .catch((error) => {
138
+ const stagedEntities = new Set([newRoot]);
139
+ for (const entity of this.queries.levelEntities.entities) {
140
+ if (!previousEntities.has(entity)) {
141
+ stagedEntities.add(entity);
142
+ }
129
143
  }
144
+ disposeLevelEntities(stagedEntities);
145
+ restoreSceneEnvironment(this.world.scene, this.world.renderer, environmentAtLoadStart);
146
+ this.world.activeLevelId = previousLevelId;
147
+ this.world.activeLevel.value = previousRoot;
148
+ console.error('[LevelSystem] Failed to load level', error);
149
+ this.loading = false;
150
+ rejectLoad === null || rejectLoad === void 0 ? void 0 : rejectLoad(error);
130
151
  });
131
152
  }
132
153
  }
154
+ /** Apply a composed scene's authored hero view to the non-immersive camera. */
155
+ function applySceneHeroCamera(world, document) {
156
+ var _a, _b, _c, _d, _e;
157
+ if (((_a = world.renderer.xr) === null || _a === void 0 ? void 0 : _a.isPresenting) === true) {
158
+ return false;
159
+ }
160
+ const heroViewId = (_c = (_b = document.authoring) === null || _b === void 0 ? void 0 : _b.composition) === null || _c === void 0 ? void 0 : _c.review.heroView;
161
+ const view = (_e = (_d = document.authoring) === null || _d === void 0 ? void 0 : _d.views) === null || _e === void 0 ? void 0 : _e.find((candidate) => candidate.id === heroViewId && candidate.projection === 'perspective');
162
+ if (view == null) {
163
+ return false;
164
+ }
165
+ const cameraPosition = new Vector3(...view.position);
166
+ if (world.camera.parent != null) {
167
+ world.camera.parent.updateWorldMatrix(true, false);
168
+ world.camera.parent.worldToLocal(cameraPosition);
169
+ }
170
+ world.camera.position.copy(cameraPosition);
171
+ world.camera.lookAt(...view.target);
172
+ if ('fov' in world.camera) {
173
+ world.camera.fov = view.fov;
174
+ }
175
+ world.camera.updateProjectionMatrix();
176
+ world.camera.userData.iwsdkSceneHeroView = cloneJson(view);
177
+ return true;
178
+ }
179
+ function disposeLevelEntities(entities) {
180
+ const uniqueEntities = [...new Set(entities)];
181
+ disposeSceneObjectResources(...uniqueEntities.flatMap((entity) => entity.object3D == null ? [] : [entity.object3D]));
182
+ for (const entity of uniqueEntities) {
183
+ try {
184
+ entity.destroy();
185
+ }
186
+ catch (_a) { }
187
+ }
188
+ }
189
+ function asNativeSceneLoadResult(value) {
190
+ return value != null && 'document' in value ? value : undefined;
191
+ }
192
+ function cloneJson(value) {
193
+ return JSON.parse(JSON.stringify(value));
194
+ }
133
195
 
134
- export { LevelSystem };
196
+ export { LevelSystem, applySceneHeroCamera };
135
197
  //# sourceMappingURL=level-system.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"level-system.js","sources":["../../src/level/level-system.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"level-system.js","sources":["../../src/level/level-system.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
- import { Types } from '../ecs/index.js';
7
+ import { Types } from '../ecs/component.js';
8
8
  /**
9
9
  * Tags entities as belonging to the active level.
10
10
  *
@@ -1 +1 @@
1
- {"version":3,"file":"level-tag.d.ts","sourceRoot":"","sources":["../../src/level/level-tag.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,KAAK,EAAmB,MAAM,iBAAiB,CAAC;AAEzD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,QAAQ;;;;;EAMpB,CAAC"}
1
+ {"version":3,"file":"level-tag.d.ts","sourceRoot":"","sources":["../../src/level/level-tag.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,KAAK,EAAmB,MAAM,qBAAqB,CAAC;AAC7D;;;;;;;;;;GAUG;AACH,eAAO,MAAM,QAAQ;;;;;EAMpB,CAAC"}
@@ -1,8 +1,4 @@
1
- import '@preact/signals-core';
2
- import '../ecs/world.js';
3
1
  import { createComponent, Types } from 'elics';
4
- import '../ecs/entity.js';
5
- import '../ecs/component-registry.js';
6
2
 
7
3
  /**
8
4
  * Copyright (c) Meta Platforms, Inc. and affiliates.
@@ -1 +1 @@
1
- {"version":3,"file":"level-tag.js","sources":["../../src/level/level-tag.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;AAAA;;;;;AAKG;AAIH;;;;;;;;;;AAUG;AACI,MAAM,QAAQ,GAAG,eAAe,CACrC,UAAU,EACV;AACE,IAAA,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE;CACxC,EACD,uCAAuC;;;;"}
1
+ {"version":3,"file":"level-tag.js","sources":["../../src/level/level-tag.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAAA;;;;;AAKG;AAGH;;;;;;;;;;AAUG;AACI,MAAM,QAAQ,GAAG,eAAe,CACrC,UAAU,EACV;AACE,IAAA,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE;CACxC,EACD,uCAAuC;;;;"}
@@ -0,0 +1,10 @@
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
+ export * from './light-binding.js';
8
+ export * from './light-components.js';
9
+ export * from './light-system.js';
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lighting/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC"}
@@ -0,0 +1,4 @@
1
+ export { LightBinding } from './light-binding.js';
2
+ export { AmbientLightComponent, DirectionalLightComponent, HemisphereLightComponent, IWSDK_LIGHT_COMPONENTS, LightShadowMapSize, PointLightComponent, RectAreaLightComponent, SpotLightComponent } from './light-components.js';
3
+ export { LightSystem, lightSpecFromComponentValue, readLightSpec } from './light-system.js';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}
@@ -0,0 +1,76 @@
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 { Light, Object3D } from '../runtime/index.js';
8
+ export type LightColor = readonly [number, number, number, number];
9
+ export interface LightShadowSpec {
10
+ castShadow: boolean;
11
+ shadowBias: number;
12
+ shadowCameraFar: number;
13
+ shadowCameraNear: number;
14
+ shadowMapSize: number;
15
+ shadowNormalBias: number;
16
+ shadowRadius: number;
17
+ }
18
+ export type LightSpec = {
19
+ kind: 'ambient';
20
+ color: LightColor;
21
+ intensity: number;
22
+ } | {
23
+ kind: 'hemisphere';
24
+ groundColor: LightColor;
25
+ intensity: number;
26
+ skyColor: LightColor;
27
+ } | ({
28
+ kind: 'directional';
29
+ color: LightColor;
30
+ intensity: number;
31
+ shadowCameraSize: number;
32
+ } & LightShadowSpec) | ({
33
+ kind: 'point';
34
+ color: LightColor;
35
+ decay: number;
36
+ distance: number;
37
+ intensity: number;
38
+ } & LightShadowSpec) | ({
39
+ kind: 'spot';
40
+ angleDeg: number;
41
+ color: LightColor;
42
+ decay: number;
43
+ distance: number;
44
+ intensity: number;
45
+ penumbra: number;
46
+ } & LightShadowSpec) | {
47
+ kind: 'rect-area';
48
+ color: LightColor;
49
+ height: number;
50
+ intensity: number;
51
+ width: number;
52
+ };
53
+ /**
54
+ * Owns one Three.js light and keeps runtime and managed-editor materialization identical.
55
+ */
56
+ export declare class LightBinding {
57
+ readonly parent: Object3D;
58
+ readonly targetRoot: Object3D;
59
+ readonly light: Light;
60
+ readonly target: Object3D | undefined;
61
+ private readonly desiredWorldMatrix;
62
+ private readonly inverseParentMatrix;
63
+ private readonly localMatrix;
64
+ private readonly worldPosition;
65
+ private readonly worldQuaternion;
66
+ private readonly worldDirection;
67
+ private disposed;
68
+ private specSignature;
69
+ constructor(parent: Object3D, targetRoot: Object3D, spec: LightSpec);
70
+ update(spec: LightSpec): void;
71
+ /** Synchronize position and rotation while deliberately removing inherited scale. */
72
+ syncTransform(): void;
73
+ dispose(): void;
74
+ private assertActive;
75
+ }
76
+ //# sourceMappingURL=light-binding.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"light-binding.d.ts","sourceRoot":"","sources":["../../src/lighting/light-binding.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAKL,KAAK,EAEL,QAAQ,EAOT,MAAM,qBAAqB,CAAC;AAE7B,MAAM,MAAM,UAAU,GAAG,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAEnE,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,MAAM,SAAS,GACjB;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,UAAU,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GACzD;IACE,IAAI,EAAE,YAAY,CAAC;IACnB,WAAW,EAAE,UAAU,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,UAAU,CAAC;CACtB,GACD,CAAC;IACC,IAAI,EAAE,aAAa,CAAC;IACpB,KAAK,EAAE,UAAU,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;CAC1B,GAAG,eAAe,CAAC,GACpB,CAAC;IACC,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,UAAU,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB,GAAG,eAAe,CAAC,GACpB,CAAC;IACC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,UAAU,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB,GAAG,eAAe,CAAC,GACpB;IACE,IAAI,EAAE,WAAW,CAAC;IAClB,KAAK,EAAE,UAAU,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAqEN;;GAEG;AACH,qBAAa,YAAY;IAcrB,QAAQ,CAAC,MAAM,EAAE,QAAQ;IACzB,QAAQ,CAAC,UAAU,EAAE,QAAQ;IAd/B,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,QAAQ,GAAG,SAAS,CAAC;IAEtC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAiB;IACpD,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAiB;IACrD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAiB;IAC7C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAiB;IAC/C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAoB;IACpD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;IAChD,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,aAAa,CAAM;gBAGhB,MAAM,EAAE,QAAQ,EAChB,UAAU,EAAE,QAAQ,EAC7B,IAAI,EAAE,SAAS;IAwBjB,MAAM,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI;IAoE7B,qFAAqF;IACrF,aAAa,IAAI,IAAI;IAmCrB,OAAO,IAAI,IAAI;IAUf,OAAO,CAAC,YAAY;CAKrB"}