@3driseai/3drise-viewer 0.1.27 → 0.1.29

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 (690) hide show
  1. package/dist/animationsV2/ClipPlayer.d.ts.map +1 -1
  2. package/dist/animationsV2/ClipPlayer.js +13 -9
  3. package/dist/animationsV2/ClipsRuntime.d.ts +44 -3
  4. package/dist/animationsV2/ClipsRuntime.d.ts.map +1 -1
  5. package/dist/animationsV2/ClipsRuntime.js +173 -55
  6. package/dist/animationsV2/appliers.d.ts.map +1 -1
  7. package/dist/animationsV2/appliers.js +21 -5
  8. package/dist/animationsV2/index.d.ts +1 -1
  9. package/dist/animationsV2/index.d.ts.map +1 -1
  10. package/dist/animationsV2/normalize.d.ts.map +1 -1
  11. package/dist/animationsV2/normalize.js +7 -3
  12. package/dist/animationsV2/sequenceUtils.d.ts +44 -6
  13. package/dist/animationsV2/sequenceUtils.d.ts.map +1 -1
  14. package/dist/animationsV2/sequenceUtils.js +58 -12
  15. package/dist/animationsV2/types.d.ts +22 -12
  16. package/dist/animationsV2/types.d.ts.map +1 -1
  17. package/dist/api/sceneHandle.d.ts +35 -1
  18. package/dist/api/sceneHandle.d.ts.map +1 -1
  19. package/dist/api/sceneHandle.js +88 -17
  20. package/dist/components/AdvancedGrid.d.ts +1 -5
  21. package/dist/components/AdvancedGrid.d.ts.map +1 -1
  22. package/dist/components/AdvancedGrid.js +6 -35
  23. package/dist/components/AnimatedObject.d.ts.map +1 -1
  24. package/dist/components/AnimatedObject.js +9 -4
  25. package/dist/components/ApollonianGrid.d.ts +25 -0
  26. package/dist/components/ApollonianGrid.d.ts.map +1 -0
  27. package/dist/components/ApollonianGrid.js +55 -0
  28. package/dist/components/ChladniGrid.d.ts +1 -1
  29. package/dist/components/ChladniGrid.d.ts.map +1 -1
  30. package/dist/components/ChladniGrid.js +6 -35
  31. package/dist/components/CircuitGrid.d.ts +1 -1
  32. package/dist/components/CircuitGrid.d.ts.map +1 -1
  33. package/dist/components/CircuitGrid.js +6 -34
  34. package/dist/components/ConformalGrid.d.ts +25 -0
  35. package/dist/components/ConformalGrid.d.ts.map +1 -0
  36. package/dist/components/ConformalGrid.js +66 -0
  37. package/dist/components/ContourGrid.d.ts +1 -1
  38. package/dist/components/ContourGrid.d.ts.map +1 -1
  39. package/dist/components/ContourGrid.js +6 -34
  40. package/dist/components/CustomPrimitive.js +1 -1
  41. package/dist/components/EnvironmentObject.d.ts.map +1 -1
  42. package/dist/components/EnvironmentObject.js +9 -7
  43. package/dist/components/FlowNetGrid.d.ts +1 -1
  44. package/dist/components/FlowNetGrid.d.ts.map +1 -1
  45. package/dist/components/FlowNetGrid.js +6 -34
  46. package/dist/components/FractalGrid.d.ts +1 -1
  47. package/dist/components/FractalGrid.d.ts.map +1 -1
  48. package/dist/components/FractalGrid.js +6 -37
  49. package/dist/components/Galaxy.d.ts.map +1 -1
  50. package/dist/components/Galaxy.js +9 -23
  51. package/dist/components/GirihGrid.d.ts +1 -1
  52. package/dist/components/GirihGrid.d.ts.map +1 -1
  53. package/dist/components/GirihGrid.js +6 -35
  54. package/dist/components/GravWaveGrid.d.ts +1 -1
  55. package/dist/components/GravWaveGrid.d.ts.map +1 -1
  56. package/dist/components/GravWaveGrid.js +6 -35
  57. package/dist/components/GridsGenerator.d.ts +2 -2
  58. package/dist/components/GridsGenerator.d.ts.map +1 -1
  59. package/dist/components/GridsGenerator.js +21 -0
  60. package/dist/components/HexGrid.d.ts +1 -5
  61. package/dist/components/HexGrid.d.ts.map +1 -1
  62. package/dist/components/HexGrid.js +6 -36
  63. package/dist/components/HilbertGrid.d.ts +25 -0
  64. package/dist/components/HilbertGrid.d.ts.map +1 -0
  65. package/dist/components/HilbertGrid.js +66 -0
  66. package/dist/components/HyperbolicGrid.d.ts +1 -1
  67. package/dist/components/HyperbolicGrid.d.ts.map +1 -1
  68. package/dist/components/HyperbolicGrid.js +6 -34
  69. package/dist/components/LandObject.d.ts +9 -0
  70. package/dist/components/LandObject.d.ts.map +1 -0
  71. package/dist/components/LandObject.js +15 -0
  72. package/dist/components/LensingGrid.d.ts +25 -0
  73. package/dist/components/LensingGrid.d.ts.map +1 -0
  74. package/dist/components/LensingGrid.js +55 -0
  75. package/dist/components/LightsManager.d.ts.map +1 -1
  76. package/dist/components/LightsManager.js +8 -0
  77. package/dist/components/ModelBoundary.d.ts +2 -0
  78. package/dist/components/ModelBoundary.d.ts.map +1 -1
  79. package/dist/components/ModelBoundary.js +3 -0
  80. package/dist/components/ModelPrimitive.d.ts.map +1 -1
  81. package/dist/components/ModelPrimitive.js +6 -0
  82. package/dist/components/MoireGrid.d.ts +1 -1
  83. package/dist/components/MoireGrid.d.ts.map +1 -1
  84. package/dist/components/MoireGrid.js +6 -35
  85. package/dist/components/MoonDisc.d.ts +11 -0
  86. package/dist/components/MoonDisc.d.ts.map +1 -0
  87. package/dist/components/MoonDisc.js +128 -0
  88. package/dist/components/ObjectNode.d.ts.map +1 -1
  89. package/dist/components/ObjectNode.js +15 -4
  90. package/dist/components/ObjectsRenderer.d.ts.map +1 -1
  91. package/dist/components/ObjectsRenderer.js +7 -5
  92. package/dist/components/OceanBuilder.d.ts.map +1 -1
  93. package/dist/components/OceanBuilder.js +2 -0
  94. package/dist/components/ParastichyGrid.d.ts +25 -0
  95. package/dist/components/ParastichyGrid.d.ts.map +1 -0
  96. package/dist/components/ParastichyGrid.js +55 -0
  97. package/dist/components/PhyllotaxisGrid.d.ts +25 -0
  98. package/dist/components/PhyllotaxisGrid.d.ts.map +1 -0
  99. package/dist/components/PhyllotaxisGrid.js +66 -0
  100. package/dist/components/ProjectLoader.d.ts +5 -3
  101. package/dist/components/ProjectLoader.d.ts.map +1 -1
  102. package/dist/components/ProjectLoader.js +6 -3
  103. package/dist/components/QuasiGrid.d.ts +1 -1
  104. package/dist/components/QuasiGrid.d.ts.map +1 -1
  105. package/dist/components/QuasiGrid.js +6 -33
  106. package/dist/components/RadarGrid.d.ts +1 -1
  107. package/dist/components/RadarGrid.d.ts.map +1 -1
  108. package/dist/components/RadarGrid.js +6 -34
  109. package/dist/components/ReactionDiffusionGrid.d.ts +1 -1
  110. package/dist/components/ReactionDiffusionGrid.d.ts.map +1 -1
  111. package/dist/components/ReactionDiffusionGrid.js +6 -35
  112. package/dist/components/SceneBuilder.d.ts +25 -3
  113. package/dist/components/SceneBuilder.d.ts.map +1 -1
  114. package/dist/components/SceneBuilder.js +68 -38
  115. package/dist/components/SkyController.d.ts +25 -1
  116. package/dist/components/SkyController.d.ts.map +1 -1
  117. package/dist/components/SkyController.js +189 -130
  118. package/dist/components/SkyMesh.d.ts.map +1 -1
  119. package/dist/components/SkyMesh.js +26 -1
  120. package/dist/components/SkyStars.d.ts +11 -0
  121. package/dist/components/SkyStars.d.ts.map +1 -0
  122. package/dist/components/SkyStars.js +187 -0
  123. package/dist/components/SkySystem.d.ts +3 -3
  124. package/dist/components/SkySystem.d.ts.map +1 -1
  125. package/dist/components/SkySystem.js +8 -2
  126. package/dist/components/Sun.d.ts +15 -1
  127. package/dist/components/Sun.d.ts.map +1 -1
  128. package/dist/components/Sun.js +64 -3
  129. package/dist/components/SunLight.d.ts +6 -1
  130. package/dist/components/SunLight.d.ts.map +1 -1
  131. package/dist/components/SunLight.js +96 -44
  132. package/dist/components/TerrainBuilder.d.ts.map +1 -1
  133. package/dist/components/TerrainBuilder.js +2 -0
  134. package/dist/components/TextGenerator.d.ts +9 -0
  135. package/dist/components/TextGenerator.d.ts.map +1 -0
  136. package/dist/components/TextGenerator.js +29 -0
  137. package/dist/components/TruchetGrid.d.ts +25 -0
  138. package/dist/components/TruchetGrid.d.ts.map +1 -0
  139. package/dist/components/TruchetGrid.js +55 -0
  140. package/dist/components/VoronoiGrid.d.ts +1 -1
  141. package/dist/components/VoronoiGrid.d.ts.map +1 -1
  142. package/dist/components/VoronoiGrid.js +6 -33
  143. package/dist/components/WallpaperGrid.d.ts +1 -1
  144. package/dist/components/WallpaperGrid.d.ts.map +1 -1
  145. package/dist/components/WallpaperGrid.js +6 -35
  146. package/dist/components/environment/Rain.d.ts +15 -0
  147. package/dist/components/environment/Rain.d.ts.map +1 -0
  148. package/dist/components/environment/Rain.js +110 -0
  149. package/dist/components/environment/Rainbow.d.ts +20 -0
  150. package/dist/components/environment/Rainbow.d.ts.map +1 -0
  151. package/dist/components/environment/Rainbow.js +974 -0
  152. package/dist/components/environment/Sandstorm.d.ts +20 -0
  153. package/dist/components/environment/Sandstorm.d.ts.map +1 -0
  154. package/dist/components/environment/Sandstorm.js +776 -0
  155. package/dist/components/environment/Snow.d.ts +20 -0
  156. package/dist/components/environment/Snow.d.ts.map +1 -0
  157. package/dist/components/environment/Snow.js +609 -0
  158. package/dist/components/environment/Thunderstorm.d.ts +20 -0
  159. package/dist/components/environment/Thunderstorm.d.ts.map +1 -0
  160. package/dist/components/environment/Thunderstorm.js +731 -0
  161. package/dist/components/environment/Tornado.d.ts +20 -0
  162. package/dist/components/environment/Tornado.d.ts.map +1 -0
  163. package/dist/components/environment/Tornado.js +762 -0
  164. package/dist/components/environment/index.d.ts +13 -0
  165. package/dist/components/environment/index.d.ts.map +1 -0
  166. package/dist/components/environment/index.js +7 -0
  167. package/dist/components/index.d.ts +24 -10
  168. package/dist/components/index.d.ts.map +1 -1
  169. package/dist/components/index.js +15 -6
  170. package/dist/components/land/LandPatch.d.ts +15 -0
  171. package/dist/components/land/LandPatch.d.ts.map +1 -0
  172. package/dist/components/land/LandPatch.js +170 -0
  173. package/dist/components/land/index.d.ts +3 -0
  174. package/dist/components/land/index.d.ts.map +1 -0
  175. package/dist/components/land/index.js +1 -0
  176. package/dist/components/space/Earth.d.ts +16 -0
  177. package/dist/components/space/Earth.d.ts.map +1 -0
  178. package/dist/components/space/Earth.js +75 -0
  179. package/dist/components/space/ShootingStar.d.ts +21 -0
  180. package/dist/components/space/ShootingStar.d.ts.map +1 -0
  181. package/dist/components/space/ShootingStar.js +101 -0
  182. package/dist/components/space/ShootingStars.d.ts +16 -0
  183. package/dist/components/space/ShootingStars.d.ts.map +1 -0
  184. package/dist/components/space/ShootingStars.js +71 -0
  185. package/dist/components/space/SolarSystem.d.ts +16 -0
  186. package/dist/components/space/SolarSystem.d.ts.map +1 -0
  187. package/dist/components/space/SolarSystem.js +141 -0
  188. package/dist/components/space/Stars.d.ts +20 -0
  189. package/dist/components/space/Stars.d.ts.map +1 -0
  190. package/dist/components/space/Stars.js +160 -0
  191. package/dist/components/space/index.d.ts +11 -0
  192. package/dist/components/space/index.d.ts.map +1 -0
  193. package/dist/components/space/index.js +8 -0
  194. package/dist/components/terrain/TerrainSurface.d.ts.map +1 -1
  195. package/dist/components/terrain/TerrainSurface.js +27 -3
  196. package/dist/components/terrain/types.d.ts +5 -1
  197. package/dist/components/terrain/types.d.ts.map +1 -1
  198. package/dist/components/text/BurnAwayText.d.ts +15 -0
  199. package/dist/components/text/BurnAwayText.d.ts.map +1 -0
  200. package/dist/components/text/BurnAwayText.js +4 -0
  201. package/dist/components/text/ChalkboardText.d.ts +15 -0
  202. package/dist/components/text/ChalkboardText.d.ts.map +1 -0
  203. package/dist/components/text/ChalkboardText.js +4 -0
  204. package/dist/components/text/ConstellationText.d.ts +15 -0
  205. package/dist/components/text/ConstellationText.d.ts.map +1 -0
  206. package/dist/components/text/ConstellationText.js +4 -0
  207. package/dist/components/text/EmbroideryText.d.ts +15 -0
  208. package/dist/components/text/EmbroideryText.d.ts.map +1 -0
  209. package/dist/components/text/EmbroideryText.js +4 -0
  210. package/dist/components/text/FourierSketchText.d.ts +15 -0
  211. package/dist/components/text/FourierSketchText.d.ts.map +1 -0
  212. package/dist/components/text/FourierSketchText.js +4 -0
  213. package/dist/components/text/FrostGrowthText.d.ts +15 -0
  214. package/dist/components/text/FrostGrowthText.d.ts.map +1 -0
  215. package/dist/components/text/FrostGrowthText.js +4 -0
  216. package/dist/components/text/HandwritingText.d.ts +15 -0
  217. package/dist/components/text/HandwritingText.d.ts.map +1 -0
  218. package/dist/components/text/HandwritingText.js +4 -0
  219. package/dist/components/text/InkBleedText.d.ts +15 -0
  220. package/dist/components/text/InkBleedText.d.ts.map +1 -0
  221. package/dist/components/text/InkBleedText.js +4 -0
  222. package/dist/components/text/LightPaintingText.d.ts +15 -0
  223. package/dist/components/text/LightPaintingText.d.ts.map +1 -0
  224. package/dist/components/text/LightPaintingText.js +4 -0
  225. package/dist/components/text/LiquidMetalText.d.ts +15 -0
  226. package/dist/components/text/LiquidMetalText.d.ts.map +1 -0
  227. package/dist/components/text/LiquidMetalText.js +4 -0
  228. package/dist/components/text/NeonTubeText.d.ts +15 -0
  229. package/dist/components/text/NeonTubeText.d.ts.map +1 -0
  230. package/dist/components/text/NeonTubeText.js +4 -0
  231. package/dist/components/text/PlasmaDischargeText.d.ts +15 -0
  232. package/dist/components/text/PlasmaDischargeText.d.ts.map +1 -0
  233. package/dist/components/text/PlasmaDischargeText.js +4 -0
  234. package/dist/components/text/TextObjectView.d.ts +12 -0
  235. package/dist/components/text/TextObjectView.d.ts.map +1 -0
  236. package/dist/components/text/TextObjectView.js +11 -0
  237. package/dist/components/text/engine/fieldkit.d.ts +24 -0
  238. package/dist/components/text/engine/fieldkit.d.ts.map +1 -0
  239. package/dist/components/text/engine/fieldkit.js +201 -0
  240. package/dist/components/text/engine/glyphs.d.ts +19 -0
  241. package/dist/components/text/engine/glyphs.d.ts.map +1 -0
  242. package/dist/components/text/engine/glyphs.js +269 -0
  243. package/dist/components/text/engine/looks/burnAway.d.ts +144 -0
  244. package/dist/components/text/engine/looks/burnAway.d.ts.map +1 -0
  245. package/dist/components/text/engine/looks/burnAway.js +593 -0
  246. package/dist/components/text/engine/looks/chalkboard.d.ts +135 -0
  247. package/dist/components/text/engine/looks/chalkboard.d.ts.map +1 -0
  248. package/dist/components/text/engine/looks/chalkboard.js +426 -0
  249. package/dist/components/text/engine/looks/constellation.d.ts +111 -0
  250. package/dist/components/text/engine/looks/constellation.d.ts.map +1 -0
  251. package/dist/components/text/engine/looks/constellation.js +496 -0
  252. package/dist/components/text/engine/looks/embroidery.d.ts +165 -0
  253. package/dist/components/text/engine/looks/embroidery.d.ts.map +1 -0
  254. package/dist/components/text/engine/looks/embroidery.js +645 -0
  255. package/dist/components/text/engine/looks/frostGrowth.d.ts +109 -0
  256. package/dist/components/text/engine/looks/frostGrowth.d.ts.map +1 -0
  257. package/dist/components/text/engine/looks/frostGrowth.js +727 -0
  258. package/dist/components/text/engine/looks/index.d.ts +2 -0
  259. package/dist/components/text/engine/looks/index.d.ts.map +1 -0
  260. package/dist/components/text/engine/looks/index.js +48 -0
  261. package/dist/components/text/engine/looks/inkBleed.d.ts +103 -0
  262. package/dist/components/text/engine/looks/inkBleed.d.ts.map +1 -0
  263. package/dist/components/text/engine/looks/inkBleed.js +590 -0
  264. package/dist/components/text/engine/looks/lightPainting.d.ts +132 -0
  265. package/dist/components/text/engine/looks/lightPainting.d.ts.map +1 -0
  266. package/dist/components/text/engine/looks/lightPainting.js +567 -0
  267. package/dist/components/text/engine/looks/liquidMetal.d.ts +135 -0
  268. package/dist/components/text/engine/looks/liquidMetal.d.ts.map +1 -0
  269. package/dist/components/text/engine/looks/liquidMetal.js +655 -0
  270. package/dist/components/text/engine/looks/plasmaDischarge.d.ts +126 -0
  271. package/dist/components/text/engine/looks/plasmaDischarge.d.ts.map +1 -0
  272. package/dist/components/text/engine/looks/plasmaDischarge.js +763 -0
  273. package/dist/components/text/engine/methods.d.ts +19 -0
  274. package/dist/components/text/engine/methods.d.ts.map +1 -0
  275. package/dist/components/text/engine/methods.js +126 -0
  276. package/dist/components/text/engine/playback.d.ts +40 -0
  277. package/dist/components/text/engine/playback.d.ts.map +1 -0
  278. package/dist/components/text/engine/playback.js +114 -0
  279. package/dist/components/text/engine/ribbon.d.ts +58 -0
  280. package/dist/components/text/engine/ribbon.d.ts.map +1 -0
  281. package/dist/components/text/engine/ribbon.js +250 -0
  282. package/dist/components/text/engine/variants.d.ts +159 -0
  283. package/dist/components/text/engine/variants.d.ts.map +1 -0
  284. package/dist/components/text/engine/variants.js +378 -0
  285. package/dist/components/text/fonts/architects-daughter.outline.d.ts +3 -0
  286. package/dist/components/text/fonts/architects-daughter.outline.d.ts.map +1 -0
  287. package/dist/components/text/fonts/architects-daughter.outline.js +4 -0
  288. package/dist/components/text/fonts/architects-daughter.strokes.d.ts +3 -0
  289. package/dist/components/text/fonts/architects-daughter.strokes.d.ts.map +1 -0
  290. package/dist/components/text/fonts/architects-daughter.strokes.js +4 -0
  291. package/dist/components/text/fonts/caveat.outline.d.ts +3 -0
  292. package/dist/components/text/fonts/caveat.outline.d.ts.map +1 -0
  293. package/dist/components/text/fonts/caveat.outline.js +4 -0
  294. package/dist/components/text/fonts/caveat.strokes.d.ts +3 -0
  295. package/dist/components/text/fonts/caveat.strokes.d.ts.map +1 -0
  296. package/dist/components/text/fonts/caveat.strokes.js +4 -0
  297. package/dist/components/text/fonts/courgette.outline.d.ts +3 -0
  298. package/dist/components/text/fonts/courgette.outline.d.ts.map +1 -0
  299. package/dist/components/text/fonts/courgette.outline.js +4 -0
  300. package/dist/components/text/fonts/courgette.strokes.d.ts +3 -0
  301. package/dist/components/text/fonts/courgette.strokes.d.ts.map +1 -0
  302. package/dist/components/text/fonts/courgette.strokes.js +4 -0
  303. package/dist/components/text/fonts/dancing-script.outline.d.ts +3 -0
  304. package/dist/components/text/fonts/dancing-script.outline.d.ts.map +1 -0
  305. package/dist/components/text/fonts/dancing-script.outline.js +4 -0
  306. package/dist/components/text/fonts/dancing-script.strokes.d.ts +3 -0
  307. package/dist/components/text/fonts/dancing-script.strokes.d.ts.map +1 -0
  308. package/dist/components/text/fonts/dancing-script.strokes.js +4 -0
  309. package/dist/components/text/fonts/gochi-hand.outline.d.ts +3 -0
  310. package/dist/components/text/fonts/gochi-hand.outline.d.ts.map +1 -0
  311. package/dist/components/text/fonts/gochi-hand.outline.js +4 -0
  312. package/dist/components/text/fonts/gochi-hand.strokes.d.ts +3 -0
  313. package/dist/components/text/fonts/gochi-hand.strokes.d.ts.map +1 -0
  314. package/dist/components/text/fonts/gochi-hand.strokes.js +4 -0
  315. package/dist/components/text/fonts/handlee.outline.d.ts +3 -0
  316. package/dist/components/text/fonts/handlee.outline.d.ts.map +1 -0
  317. package/dist/components/text/fonts/handlee.outline.js +4 -0
  318. package/dist/components/text/fonts/handlee.strokes.d.ts +3 -0
  319. package/dist/components/text/fonts/handlee.strokes.d.ts.map +1 -0
  320. package/dist/components/text/fonts/handlee.strokes.js +4 -0
  321. package/dist/components/text/fonts/index.d.ts +5 -0
  322. package/dist/components/text/fonts/index.d.ts.map +1 -0
  323. package/dist/components/text/fonts/index.js +44 -0
  324. package/dist/components/text/fonts/indie-flower.outline.d.ts +3 -0
  325. package/dist/components/text/fonts/indie-flower.outline.d.ts.map +1 -0
  326. package/dist/components/text/fonts/indie-flower.outline.js +4 -0
  327. package/dist/components/text/fonts/indie-flower.strokes.d.ts +3 -0
  328. package/dist/components/text/fonts/indie-flower.strokes.d.ts.map +1 -0
  329. package/dist/components/text/fonts/indie-flower.strokes.js +4 -0
  330. package/dist/components/text/fonts/kalam.outline.d.ts +3 -0
  331. package/dist/components/text/fonts/kalam.outline.d.ts.map +1 -0
  332. package/dist/components/text/fonts/kalam.outline.js +4 -0
  333. package/dist/components/text/fonts/kalam.strokes.d.ts +3 -0
  334. package/dist/components/text/fonts/kalam.strokes.d.ts.map +1 -0
  335. package/dist/components/text/fonts/kalam.strokes.js +4 -0
  336. package/dist/components/text/fonts/kaushan-script.outline.d.ts +3 -0
  337. package/dist/components/text/fonts/kaushan-script.outline.d.ts.map +1 -0
  338. package/dist/components/text/fonts/kaushan-script.outline.js +4 -0
  339. package/dist/components/text/fonts/kaushan-script.strokes.d.ts +3 -0
  340. package/dist/components/text/fonts/kaushan-script.strokes.d.ts.map +1 -0
  341. package/dist/components/text/fonts/kaushan-script.strokes.js +4 -0
  342. package/dist/components/text/fonts/mynerve.outline.d.ts +3 -0
  343. package/dist/components/text/fonts/mynerve.outline.d.ts.map +1 -0
  344. package/dist/components/text/fonts/mynerve.outline.js +4 -0
  345. package/dist/components/text/fonts/mynerve.strokes.d.ts +3 -0
  346. package/dist/components/text/fonts/mynerve.strokes.d.ts.map +1 -0
  347. package/dist/components/text/fonts/mynerve.strokes.js +4 -0
  348. package/dist/components/text/fonts/nanum-pen-script.outline.d.ts +3 -0
  349. package/dist/components/text/fonts/nanum-pen-script.outline.d.ts.map +1 -0
  350. package/dist/components/text/fonts/nanum-pen-script.outline.js +4 -0
  351. package/dist/components/text/fonts/nanum-pen-script.strokes.d.ts +3 -0
  352. package/dist/components/text/fonts/nanum-pen-script.strokes.d.ts.map +1 -0
  353. package/dist/components/text/fonts/nanum-pen-script.strokes.js +4 -0
  354. package/dist/components/text/fonts/pacifico.outline.d.ts +3 -0
  355. package/dist/components/text/fonts/pacifico.outline.d.ts.map +1 -0
  356. package/dist/components/text/fonts/pacifico.outline.js +4 -0
  357. package/dist/components/text/fonts/pacifico.strokes.d.ts +3 -0
  358. package/dist/components/text/fonts/pacifico.strokes.d.ts.map +1 -0
  359. package/dist/components/text/fonts/pacifico.strokes.js +4 -0
  360. package/dist/components/text/fonts/patrick-hand.outline.d.ts +3 -0
  361. package/dist/components/text/fonts/patrick-hand.outline.d.ts.map +1 -0
  362. package/dist/components/text/fonts/patrick-hand.outline.js +4 -0
  363. package/dist/components/text/fonts/patrick-hand.strokes.d.ts +3 -0
  364. package/dist/components/text/fonts/patrick-hand.strokes.d.ts.map +1 -0
  365. package/dist/components/text/fonts/patrick-hand.strokes.js +4 -0
  366. package/dist/components/text/fonts/poppins.outline.d.ts +3 -0
  367. package/dist/components/text/fonts/poppins.outline.d.ts.map +1 -0
  368. package/dist/components/text/fonts/poppins.outline.js +4 -0
  369. package/dist/components/text/fonts/poppins.strokes.d.ts +3 -0
  370. package/dist/components/text/fonts/poppins.strokes.d.ts.map +1 -0
  371. package/dist/components/text/fonts/poppins.strokes.js +4 -0
  372. package/dist/components/text/fonts/satisfy.outline.d.ts +3 -0
  373. package/dist/components/text/fonts/satisfy.outline.d.ts.map +1 -0
  374. package/dist/components/text/fonts/satisfy.outline.js +4 -0
  375. package/dist/components/text/fonts/satisfy.strokes.d.ts +3 -0
  376. package/dist/components/text/fonts/satisfy.strokes.d.ts.map +1 -0
  377. package/dist/components/text/fonts/satisfy.strokes.js +4 -0
  378. package/dist/components/text/fonts/sriracha.outline.d.ts +3 -0
  379. package/dist/components/text/fonts/sriracha.outline.d.ts.map +1 -0
  380. package/dist/components/text/fonts/sriracha.outline.js +4 -0
  381. package/dist/components/text/fonts/sriracha.strokes.d.ts +3 -0
  382. package/dist/components/text/fonts/sriracha.strokes.d.ts.map +1 -0
  383. package/dist/components/text/fonts/sriracha.strokes.js +4 -0
  384. package/dist/components/text/index.d.ts +27 -0
  385. package/dist/components/text/index.d.ts.map +1 -0
  386. package/dist/components/text/index.js +13 -0
  387. package/dist/components/text/useTextObject.d.ts +21 -0
  388. package/dist/components/text/useTextObject.d.ts.map +1 -0
  389. package/dist/components/text/useTextObject.js +118 -0
  390. package/dist/components/water/OceanSurface.d.ts.map +1 -1
  391. package/dist/components/water/OceanSurface.js +3 -1
  392. package/dist/components/water/WaterBody.d.ts.map +1 -1
  393. package/dist/components/water/WaterBody.js +3 -1
  394. package/dist/components/water/types.d.ts +5 -1
  395. package/dist/components/water/types.d.ts.map +1 -1
  396. package/dist/constants.d.ts +1 -1
  397. package/dist/constants.d.ts.map +1 -1
  398. package/dist/constants.js +5 -1
  399. package/dist/hooks/index.d.ts +2 -0
  400. package/dist/hooks/index.d.ts.map +1 -1
  401. package/dist/hooks/index.js +1 -0
  402. package/dist/hooks/useCloudSun.d.ts +9 -4
  403. package/dist/hooks/useCloudSun.d.ts.map +1 -1
  404. package/dist/hooks/useCloudSun.js +17 -7
  405. package/dist/hooks/useConfigLive.d.ts +3 -2
  406. package/dist/hooks/useConfigLive.d.ts.map +1 -1
  407. package/dist/hooks/useContinuousEffects.d.ts.map +1 -1
  408. package/dist/hooks/useContinuousEffects.js +4 -10
  409. package/dist/hooks/useEnvironmentProbe.d.ts +3 -22
  410. package/dist/hooks/useEnvironmentProbe.d.ts.map +1 -1
  411. package/dist/hooks/useEnvironmentProbe.js +47 -8
  412. package/dist/hooks/useGridSurface.d.ts +3 -10
  413. package/dist/hooks/useGridSurface.d.ts.map +1 -1
  414. package/dist/hooks/useGridSurface.js +5 -31
  415. package/dist/hooks/useInteraction.d.ts.map +1 -1
  416. package/dist/hooks/useInteraction.js +19 -72
  417. package/dist/hooks/useLightConfig.d.ts +2 -1
  418. package/dist/hooks/useLightConfig.d.ts.map +1 -1
  419. package/dist/hooks/useOceanMaterial.d.ts +6 -2
  420. package/dist/hooks/useOceanMaterial.d.ts.map +1 -1
  421. package/dist/hooks/useOceanMaterial.js +37 -2
  422. package/dist/hooks/useSkyLive.d.ts +23 -0
  423. package/dist/hooks/useSkyLive.d.ts.map +1 -0
  424. package/dist/hooks/useSkyLive.js +30 -0
  425. package/dist/hooks/useSkyUniforms.d.ts.map +1 -1
  426. package/dist/hooks/useSkyUniforms.js +2 -10
  427. package/dist/hooks/useTerrainLive.d.ts +3 -1
  428. package/dist/hooks/useTerrainLive.d.ts.map +1 -1
  429. package/dist/hooks/useTerrainTextures.d.ts +38 -0
  430. package/dist/hooks/useTerrainTextures.d.ts.map +1 -0
  431. package/dist/hooks/useTerrainTextures.js +149 -0
  432. package/dist/index.d.ts +11 -2
  433. package/dist/index.d.ts.map +1 -1
  434. package/dist/index.js +8 -1
  435. package/dist/operations/catalogue/blastOff.d.ts +3 -0
  436. package/dist/operations/catalogue/blastOff.d.ts.map +1 -0
  437. package/dist/operations/catalogue/blastOff.js +118 -0
  438. package/dist/operations/catalogue/bounce.d.ts +3 -0
  439. package/dist/operations/catalogue/bounce.d.ts.map +1 -0
  440. package/dist/operations/catalogue/bounce.js +34 -0
  441. package/dist/operations/catalogue/curlSmoke.d.ts.map +1 -1
  442. package/dist/operations/catalogue/curlSmoke.js +3 -1
  443. package/dist/operations/catalogue/dissolve.d.ts.map +1 -1
  444. package/dist/operations/catalogue/dissolve.js +2 -1
  445. package/dist/operations/catalogue/driftUp.d.ts +3 -0
  446. package/dist/operations/catalogue/driftUp.d.ts.map +1 -0
  447. package/dist/operations/catalogue/driftUp.js +57 -0
  448. package/dist/operations/catalogue/emberAsh.d.ts.map +1 -1
  449. package/dist/operations/catalogue/emberAsh.js +2 -1
  450. package/dist/operations/catalogue/flip.d.ts.map +1 -1
  451. package/dist/operations/catalogue/flip.js +19 -9
  452. package/dist/operations/catalogue/float.d.ts +3 -0
  453. package/dist/operations/catalogue/float.d.ts.map +1 -0
  454. package/dist/operations/catalogue/float.js +39 -0
  455. package/dist/operations/catalogue/flyBy.d.ts +3 -0
  456. package/dist/operations/catalogue/flyBy.d.ts.map +1 -0
  457. package/dist/operations/catalogue/flyBy.js +79 -0
  458. package/dist/operations/catalogue/frost.d.ts.map +1 -1
  459. package/dist/operations/catalogue/frost.js +10 -3
  460. package/dist/operations/catalogue/grow.d.ts +3 -0
  461. package/dist/operations/catalogue/grow.d.ts.map +1 -0
  462. package/dist/operations/catalogue/grow.js +19 -0
  463. package/dist/operations/catalogue/hologram.d.ts.map +1 -1
  464. package/dist/operations/catalogue/hologram.js +11 -5
  465. package/dist/operations/catalogue/jelly.d.ts.map +1 -1
  466. package/dist/operations/catalogue/jelly.js +18 -8
  467. package/dist/operations/catalogue/knockAway.d.ts +3 -0
  468. package/dist/operations/catalogue/knockAway.d.ts.map +1 -0
  469. package/dist/operations/catalogue/knockAway.js +74 -0
  470. package/dist/operations/catalogue/leafFall.d.ts +3 -0
  471. package/dist/operations/catalogue/leafFall.d.ts.map +1 -0
  472. package/dist/operations/catalogue/leafFall.js +74 -0
  473. package/dist/operations/catalogue/lidarScan.d.ts.map +1 -1
  474. package/dist/operations/catalogue/lidarScan.js +4 -1
  475. package/dist/operations/catalogue/metalize.d.ts.map +1 -1
  476. package/dist/operations/catalogue/metalize.js +8 -2
  477. package/dist/operations/catalogue/motionTrail.d.ts +6 -0
  478. package/dist/operations/catalogue/motionTrail.d.ts.map +1 -0
  479. package/dist/operations/catalogue/motionTrail.js +221 -0
  480. package/dist/operations/catalogue/petrify.d.ts.map +1 -1
  481. package/dist/operations/catalogue/petrify.js +9 -3
  482. package/dist/operations/catalogue/physicalExit.d.ts +55 -0
  483. package/dist/operations/catalogue/physicalExit.d.ts.map +1 -0
  484. package/dist/operations/catalogue/physicalExit.js +165 -0
  485. package/dist/operations/catalogue/physicalHeld.d.ts +41 -0
  486. package/dist/operations/catalogue/physicalHeld.d.ts.map +1 -0
  487. package/dist/operations/catalogue/physicalHeld.js +78 -0
  488. package/dist/operations/catalogue/physicalMix.d.ts +45 -0
  489. package/dist/operations/catalogue/physicalMix.d.ts.map +1 -0
  490. package/dist/operations/catalogue/physicalMix.js +144 -0
  491. package/dist/operations/catalogue/pop.d.ts +3 -0
  492. package/dist/operations/catalogue/pop.d.ts.map +1 -0
  493. package/dist/operations/catalogue/pop.js +44 -0
  494. package/dist/operations/catalogue/print3d.d.ts.map +1 -1
  495. package/dist/operations/catalogue/print3d.js +5 -1
  496. package/dist/operations/catalogue/pulse.d.ts +3 -0
  497. package/dist/operations/catalogue/pulse.d.ts.map +1 -0
  498. package/dist/operations/catalogue/pulse.js +29 -0
  499. package/dist/operations/catalogue/restPose.d.ts +5 -7
  500. package/dist/operations/catalogue/restPose.d.ts.map +1 -1
  501. package/dist/operations/catalogue/restPose.js +18 -48
  502. package/dist/operations/catalogue/rotate.d.ts +3 -0
  503. package/dist/operations/catalogue/rotate.d.ts.map +1 -0
  504. package/dist/operations/catalogue/rotate.js +49 -0
  505. package/dist/operations/catalogue/shake.d.ts +3 -0
  506. package/dist/operations/catalogue/shake.d.ts.map +1 -0
  507. package/dist/operations/catalogue/shake.js +31 -0
  508. package/dist/operations/catalogue/shatter.d.ts.map +1 -1
  509. package/dist/operations/catalogue/shatter.js +5 -1
  510. package/dist/operations/catalogue/slam.d.ts +3 -0
  511. package/dist/operations/catalogue/slam.d.ts.map +1 -0
  512. package/dist/operations/catalogue/slam.js +89 -0
  513. package/dist/operations/catalogue/slingshot.d.ts +3 -0
  514. package/dist/operations/catalogue/slingshot.d.ts.map +1 -0
  515. package/dist/operations/catalogue/slingshot.js +88 -0
  516. package/dist/operations/catalogue/spin.d.ts.map +1 -1
  517. package/dist/operations/catalogue/spin.js +24 -13
  518. package/dist/operations/catalogue/sway.d.ts +3 -0
  519. package/dist/operations/catalogue/sway.d.ts.map +1 -0
  520. package/dist/operations/catalogue/sway.js +23 -0
  521. package/dist/operations/catalogue/swirl.d.ts.map +1 -1
  522. package/dist/operations/catalogue/swirl.js +6 -5
  523. package/dist/operations/catalogue/trailCore.d.ts +89 -0
  524. package/dist/operations/catalogue/trailCore.d.ts.map +1 -0
  525. package/dist/operations/catalogue/trailCore.js +190 -0
  526. package/dist/operations/catalogue/trailGhosts.d.ts +5 -0
  527. package/dist/operations/catalogue/trailGhosts.d.ts.map +1 -0
  528. package/dist/operations/catalogue/trailGhosts.js +179 -0
  529. package/dist/operations/catalogue/trailStampStyles.d.ts +11 -0
  530. package/dist/operations/catalogue/trailStampStyles.d.ts.map +1 -0
  531. package/dist/operations/catalogue/trailStampStyles.js +479 -0
  532. package/dist/operations/catalogue/trailStamps.d.ts +57 -0
  533. package/dist/operations/catalogue/trailStamps.d.ts.map +1 -0
  534. package/dist/operations/catalogue/trailStamps.js +349 -0
  535. package/dist/operations/catalogue/trailStreaks.d.ts +3 -0
  536. package/dist/operations/catalogue/trailStreaks.d.ts.map +1 -0
  537. package/dist/operations/catalogue/trailStreaks.js +147 -0
  538. package/dist/operations/catalogue/transitionField.d.ts +30 -0
  539. package/dist/operations/catalogue/transitionField.d.ts.map +1 -1
  540. package/dist/operations/catalogue/transitionField.js +21 -0
  541. package/dist/operations/catalogue/turnAway.d.ts +3 -0
  542. package/dist/operations/catalogue/turnAway.d.ts.map +1 -0
  543. package/dist/operations/catalogue/turnAway.js +54 -0
  544. package/dist/operations/catalogue/vortexDrain.d.ts +3 -0
  545. package/dist/operations/catalogue/vortexDrain.d.ts.map +1 -0
  546. package/dist/operations/catalogue/vortexDrain.js +68 -0
  547. package/dist/operations/catalogue/warp.d.ts +3 -0
  548. package/dist/operations/catalogue/warp.d.ts.map +1 -0
  549. package/dist/operations/catalogue/warp.js +73 -0
  550. package/dist/operations/catalogue/whoosh.d.ts +3 -0
  551. package/dist/operations/catalogue/whoosh.d.ts.map +1 -0
  552. package/dist/operations/catalogue/whoosh.js +84 -0
  553. package/dist/operations/catalogue/wobble.d.ts +3 -0
  554. package/dist/operations/catalogue/wobble.d.ts.map +1 -0
  555. package/dist/operations/catalogue/wobble.js +23 -0
  556. package/dist/operations/clipPreview.d.ts +3 -0
  557. package/dist/operations/clipPreview.d.ts.map +1 -0
  558. package/dist/operations/clipPreview.js +20 -0
  559. package/dist/operations/groupFanout.d.ts +96 -0
  560. package/dist/operations/groupFanout.d.ts.map +1 -0
  561. package/dist/operations/groupFanout.js +365 -0
  562. package/dist/operations/groups.d.ts +20 -0
  563. package/dist/operations/groups.d.ts.map +1 -0
  564. package/dist/operations/groups.js +66 -0
  565. package/dist/operations/index.d.ts +5 -2
  566. package/dist/operations/index.d.ts.map +1 -1
  567. package/dist/operations/index.js +5 -2
  568. package/dist/operations/objectEffects.d.ts +161 -6
  569. package/dist/operations/objectEffects.d.ts.map +1 -1
  570. package/dist/operations/objectEffects.js +1091 -17
  571. package/dist/operations/registry.d.ts.map +1 -1
  572. package/dist/operations/registry.js +24 -2
  573. package/dist/operations/runtime.d.ts +57 -2
  574. package/dist/operations/runtime.d.ts.map +1 -1
  575. package/dist/operations/runtime.js +161 -18
  576. package/dist/operations/types.d.ts +60 -3
  577. package/dist/operations/types.d.ts.map +1 -1
  578. package/dist/operations/types.js +5 -1
  579. package/dist/operations/useObjectEffectLayers.d.ts +2 -2
  580. package/dist/operations/useObjectEffectLayers.d.ts.map +1 -1
  581. package/dist/operations/useObjectEffectLayers.js +31 -10
  582. package/dist/operations/usePresentedVisibility.d.ts +10 -0
  583. package/dist/operations/usePresentedVisibility.d.ts.map +1 -0
  584. package/dist/operations/usePresentedVisibility.js +53 -0
  585. package/dist/presets/terrainBiomes.d.ts +67 -0
  586. package/dist/presets/terrainBiomes.d.ts.map +1 -0
  587. package/dist/presets/terrainBiomes.js +294 -0
  588. package/dist/presets/terrainPresets.d.ts +6 -0
  589. package/dist/presets/terrainPresets.d.ts.map +1 -1
  590. package/dist/presets/terrainPresets.js +26 -38
  591. package/dist/shaders/glsl/oceanCore.glsl.d.ts +2 -2
  592. package/dist/shaders/glsl/oceanCore.glsl.d.ts.map +1 -1
  593. package/dist/shaders/glsl/oceanCore.glsl.js +17 -0
  594. package/dist/shaders/glsl/surfaceCore.glsl.d.ts +21 -0
  595. package/dist/shaders/glsl/surfaceCore.glsl.d.ts.map +1 -0
  596. package/dist/shaders/glsl/surfaceCore.glsl.js +120 -0
  597. package/dist/shaders/glsl/terrainCore.glsl.d.ts +16 -3
  598. package/dist/shaders/glsl/terrainCore.glsl.d.ts.map +1 -1
  599. package/dist/shaders/glsl/terrainCore.glsl.js +266 -20
  600. package/dist/shaders/ocean/OceanSurfaceMaterial.d.ts +2 -0
  601. package/dist/shaders/ocean/OceanSurfaceMaterial.d.ts.map +1 -1
  602. package/dist/shaders/ocean/OceanSurfaceMaterial.js +3 -0
  603. package/dist/shaders/terrain/TerrainMaterial.d.ts +17 -0
  604. package/dist/shaders/terrain/TerrainMaterial.d.ts.map +1 -1
  605. package/dist/shaders/terrain/TerrainMaterial.js +107 -8
  606. package/dist/triggers/engine.d.ts +44 -0
  607. package/dist/triggers/engine.d.ts.map +1 -0
  608. package/dist/triggers/engine.js +165 -0
  609. package/dist/triggers/hosts/actions.d.ts +8 -0
  610. package/dist/triggers/hosts/actions.d.ts.map +1 -0
  611. package/dist/triggers/hosts/actions.js +22 -0
  612. package/dist/triggers/hosts/interactions.d.ts +6 -0
  613. package/dist/triggers/hosts/interactions.d.ts.map +1 -0
  614. package/dist/triggers/hosts/interactions.js +4 -0
  615. package/dist/triggers/hosts/timelineCues.d.ts +2 -0
  616. package/dist/triggers/hosts/timelineCues.d.ts.map +1 -0
  617. package/dist/triggers/hosts/timelineCues.js +22 -0
  618. package/dist/triggers/index.d.ts +13 -0
  619. package/dist/triggers/index.d.ts.map +1 -0
  620. package/dist/triggers/index.js +9 -0
  621. package/dist/triggers/kinds/action.d.ts +2 -0
  622. package/dist/triggers/kinds/action.d.ts.map +1 -0
  623. package/dist/triggers/kinds/action.js +31 -0
  624. package/dist/triggers/kinds/animations.d.ts +2 -0
  625. package/dist/triggers/kinds/animations.d.ts.map +1 -0
  626. package/dist/triggers/kinds/animations.js +75 -0
  627. package/dist/triggers/kinds/effects.d.ts +2 -0
  628. package/dist/triggers/kinds/effects.d.ts.map +1 -0
  629. package/dist/triggers/kinds/effects.js +27 -0
  630. package/dist/triggers/kinds/index.d.ts +4 -0
  631. package/dist/triggers/kinds/index.d.ts.map +1 -0
  632. package/dist/triggers/kinds/index.js +4 -0
  633. package/dist/triggers/log.d.ts +21 -0
  634. package/dist/triggers/log.d.ts.map +1 -0
  635. package/dist/triggers/log.js +43 -0
  636. package/dist/triggers/readiness.d.ts +40 -0
  637. package/dist/triggers/readiness.d.ts.map +1 -0
  638. package/dist/triggers/readiness.js +158 -0
  639. package/dist/triggers/registry.d.ts +41 -0
  640. package/dist/triggers/registry.d.ts.map +1 -0
  641. package/dist/triggers/registry.js +7 -0
  642. package/dist/types/gridConfigs.d.ts +117 -19
  643. package/dist/types/gridConfigs.d.ts.map +1 -1
  644. package/dist/types/index.d.ts +1 -1
  645. package/dist/types/index.d.ts.map +1 -1
  646. package/dist/ui/UiAnchorUpdater.d.ts +10 -0
  647. package/dist/ui/UiAnchorUpdater.d.ts.map +1 -0
  648. package/dist/ui/UiAnchorUpdater.js +111 -0
  649. package/dist/ui/UiLayers.d.ts +20 -0
  650. package/dist/ui/UiLayers.d.ts.map +1 -0
  651. package/dist/ui/UiLayers.js +57 -0
  652. package/dist/ui/index.d.ts +9 -0
  653. package/dist/ui/index.d.ts.map +1 -0
  654. package/dist/ui/index.js +6 -0
  655. package/dist/ui/uiAnchors.d.ts +21 -0
  656. package/dist/ui/uiAnchors.d.ts.map +1 -0
  657. package/dist/ui/uiAnchors.js +22 -0
  658. package/dist/ui/uiBaseStyles.d.ts +2 -0
  659. package/dist/ui/uiBaseStyles.d.ts.map +1 -0
  660. package/dist/ui/uiBaseStyles.js +100 -0
  661. package/dist/ui/uiBinder.d.ts +30 -0
  662. package/dist/ui/uiBinder.d.ts.map +1 -0
  663. package/dist/ui/uiBinder.js +344 -0
  664. package/dist/utils/configAnimations.d.ts.map +1 -1
  665. package/dist/utils/configAnimations.js +5 -1
  666. package/dist/utils/gridConfig.d.ts +1 -1
  667. package/dist/utils/gridConfig.d.ts.map +1 -1
  668. package/dist/utils/gridConfig.js +1 -1
  669. package/dist/utils/landPatch.d.ts +33 -0
  670. package/dist/utils/landPatch.d.ts.map +1 -0
  671. package/dist/utils/landPatch.js +114 -0
  672. package/dist/utils/renderedSky.d.ts +32 -0
  673. package/dist/utils/renderedSky.d.ts.map +1 -0
  674. package/dist/utils/renderedSky.js +57 -0
  675. package/dist/utils/skyMoon.d.ts +35 -0
  676. package/dist/utils/skyMoon.d.ts.map +1 -0
  677. package/dist/utils/skyMoon.js +41 -0
  678. package/dist/utils/terrainHeight.d.ts +4 -0
  679. package/dist/utils/terrainHeight.d.ts.map +1 -0
  680. package/dist/utils/terrainHeight.js +150 -0
  681. package/dist/utils/terrainTextureResolver.d.ts +18 -0
  682. package/dist/utils/terrainTextureResolver.d.ts.map +1 -0
  683. package/dist/utils/terrainTextureResolver.js +17 -0
  684. package/dist/utils/terrainUniforms.d.ts +17 -0
  685. package/dist/utils/terrainUniforms.d.ts.map +1 -1
  686. package/dist/utils/terrainUniforms.js +84 -0
  687. package/dist/utils/textureArrays.d.ts +29 -0
  688. package/dist/utils/textureArrays.d.ts.map +1 -0
  689. package/dist/utils/textureArrays.js +140 -0
  690. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,YAAY,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAGtD,OAAO,EAAE,iBAAiB,IAAI,iBAAiB,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAG5F,cAAc,SAAS,CAAC;AAGxB,cAAc,cAAc,CAAC;AAG7B,cAAc,SAAS,CAAC;AAExB,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,YAAY,EAAE,WAAW,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,eAAe,EAAE,aAAa,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEjL,YAAY,EAAE,oBAAoB,IAAI,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAGjG,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,iBAAiB,EAAE,WAAW,GAAG,MAAM,iBAAiB,CAAC;AACrG,OAAO,EAAE,mBAAmB,IAAI,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AACvF,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAC7F,YAAY,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC/E,cAAc,qBAAqB,CAAC;AACpC,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACvF,YAAY,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,EACL,oBAAoB,EACpB,4BAA4B,EAC5B,qBAAqB,EACrB,eAAe,EACf,8BAA8B,GAC/B,MAAM,yBAAyB,CAAC;AACjC,YAAY,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,sBAAsB,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACpG,YAAY,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACnF,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAC1F,YAAY,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACrF,YAAY,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,6BAA6B,EAC7B,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,gCAAgC,CAAC;AAExC,OAAO,EACL,6BAA6B,EAC7B,oBAAoB,EACpB,kBAAkB,EAClB,aAAa,EACb,kBAAkB,GACnB,MAAM,0BAA0B,CAAC;AAClC,YAAY,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAGlF,OAAO,EACL,sBAAsB,EACtB,aAAa,EACb,sBAAsB,EACtB,oBAAoB,EACpB,qBAAqB,EACrB,wBAAwB,GACzB,MAAM,kCAAkC,CAAC;AAC1C,YAAY,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAC5F,OAAO,EACL,cAAc,EACd,wBAAwB,EACxB,sBAAsB,EACtB,0BAA0B,GAC3B,MAAM,0BAA0B,CAAC;AAClC,YAAY,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EACL,wBAAwB,EACxB,yBAAyB,EACzB,gBAAgB,EAChB,sBAAsB,EACtB,4BAA4B,GAC7B,MAAM,4BAA4B,CAAC;AACpC,YAAY,EACV,sBAAsB,EACtB,eAAe,EACf,uBAAuB,GACxB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EACrB,iBAAiB,EACjB,gBAAgB,EAChB,yBAAyB,EACzB,eAAe,EACf,kBAAkB,EAClB,yBAAyB,EACzB,cAAc,EACd,eAAe,EACf,oBAAoB,GACrB,MAAM,0BAA0B,CAAC;AAClC,YAAY,EACV,mBAAmB,EACnB,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,yBAAyB,EACzB,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,mBAAmB,EACnB,sBAAsB,EACtB,oBAAoB,EACpB,wBAAwB,GACzB,MAAM,+BAA+B,CAAC;AACvC,YAAY,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -10,7 +10,9 @@ export * from './hooks/index.js';
10
10
  export { createSceneHandle } from './api/sceneHandle.js';
11
11
  export * from './animationsV2/index.js';
12
12
  export * from './interactions/index.js';
13
+ export * from './ui/index.js';
13
14
  export * from './operations/index.js';
15
+ export * from './triggers/index.js';
14
16
  // Utils
15
17
  export { cameraManager } from './utils/CameraSingleton.js';
16
18
  export { applyAnchorSettings, createCurves, createSunPosition, randomRange, } from './utils/utils3d.js';
@@ -21,7 +23,11 @@ export { findById } from './utils/sceneQuery.js';
21
23
  export { hasFrameRenderer, registerFrameRenderer, renderFrame } from './utils/frameRenderer.js';
22
24
  export { resolveObject3D } from './utils/resolveObject3D.js';
23
25
  export * from './utils/textEffects.js';
24
- export { applyTerrainUniforms } from './utils/terrainUniforms.js';
26
+ export { applyTerrainUniforms, applyTerrainTextures } from './utils/terrainUniforms.js';
27
+ export { useTerrainTextures } from './hooks/useTerrainTextures.js';
28
+ export { terrainHeightAt } from './utils/terrainHeight.js';
29
+ export { setTerrainTextureResolver, resolveTerrainTextureSets, useTerrainTextureResolverVersion } from './utils/terrainTextureResolver.js';
30
+ export { landHeightAt, landWorldHeightAt, landSeedOffset, landToTerrainConfig, LAND_SEGMENTS } from './utils/landPatch.js';
25
31
  export { applyLandscapeMaps, applyLandscapeUniforms } from './utils/landscapeUniforms.js';
26
32
  export { getLandscapeHeightAt, registerLandscapeHeightField, sampleLandscapeHeight, snapToLandscape, unregisterLandscapeHeightField, } from './utils/landscapeHeight.js';
27
33
  export { buildLandscapeGeometry, rtinTileFor, setLandscapeBounds } from './utils/landscapeGeometry.js';
@@ -34,6 +40,7 @@ export { applyConfigKeyframeAnimations, applyConfigMouseMove, hasConfigOverrides
34
40
  // Presets
35
41
  export { volumetricCloudPresets, cirrusPresets, getCloudPresetsForType, getCloudPresetByName, getCirrusPresetByName, searchCloudPresetsByTags, } from './presets/volumetricCloudPresets.js';
36
42
  export { terrainPresets, getTerrainPresetsForType, getTerrainPresetByName, searchTerrainPresetsByTags, } from './presets/terrainPresets.js';
43
+ export { terrainBiomes, getTerrainBiomeByName, terrainBiomeFields, applyTerrainShape, applyTerrainBiome, applyTerrainPreset, terrainRuggednessPatch, terrainCoveragePatch, BIOME_KEYS, RUGGEDNESS_KEYS, COVERAGE_KEYS, } from './presets/terrainBiomes.js';
37
44
  export { getLandscapePresetByName, landscapePresetAssetNames, landscapePresets, resolveLandscapePreset, searchLandscapePresetsByTags, } from './presets/landscapePresets.js';
38
45
  export { LANDSCAPE_DETAIL, detectLandscapeDetail, getLandscapeShape, getLandscapeType, landscapeQualityForDetail, landscapeShapes, landscapeTypePacks, landscapeTypeAvailability, landscapeTypes, repeatForMetres, resolveLandscapeType, } from './presets/landscapeTypes.js';
39
46
  export { oceanSurfacePresets, getOceanPresetsForType, getOceanPresetByName, searchOceanPresetsByTags, } from './presets/oceanSurfacePresets.js';
@@ -0,0 +1,3 @@
1
+ declare const _default: import("..").OperationDefinition;
2
+ export default _default;
3
+ //# sourceMappingURL=blastOff.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blastOff.d.ts","sourceRoot":"","sources":["../../../src/operations/catalogue/blastOff.ts"],"names":[],"mappings":";AAuEA,wBAmDG"}
@@ -0,0 +1,118 @@
1
+ // Blast off — the object crouches (a volume-keeping squash at its base), then
2
+ // launches straight up. Thrust builds instead of kicking in at once (constant jerk:
3
+ // height ∝ t³), it stretches along its speed and trembles a little on the thrust,
4
+ // and is gone above.
5
+ //
6
+ // The way back is a powered landing, not the launch backwards:
7
+ // fall it drops in from above, already fast and speeding up, a little tilted
8
+ // burn hard braking: the deceleration squashes it, and it rights itself with a
9
+ // damped correction (overshoots, settles upright)
10
+ // hover it hangs just above the ground for a moment, easing down
11
+ // land touches down at almost no speed and settles with a small damped squash
12
+ // Its height comes from integrating that speed profile (a table built per run),
13
+ // scaled so the fall starts `height` × its height up and ends exactly on the ground.
14
+ import { Quaternion } from 'three';
15
+ import { clamp01, physicalExit, smooth } from './physicalExit.js';
16
+ const _a = new Quaternion(), _b = new Quaternion();
17
+ const CROUCH_END = 0.2; // share of the exit spent crouching
18
+ // the landing's phases, as shares of the entrance
19
+ const FALL_END = 0.36, BURN_END = 0.68, TOUCH = 0.86;
20
+ const N = 400;
21
+ /** Downward speed (relative) along the entrance, before touchdown. */
22
+ function speedAt(v) {
23
+ if (v < FALL_END)
24
+ return 0.62 + 0.38 * (v / FALL_END); // falling, speeding up
25
+ if (v < BURN_END) { // the burn: from full speed to a crawl
26
+ const k = smooth(0, 1, (v - FALL_END) / (BURN_END - FALL_END));
27
+ return 1 + (0.035 - 1) * k;
28
+ }
29
+ return 0.035 * (1 - 0.6 * smooth(BURN_END, TOUCH, v)); // hover, easing down
30
+ }
31
+ function buildLanding() {
32
+ const drop = new Float32Array(N), decel = new Float32Array(N);
33
+ let acc = 0;
34
+ const dv = TOUCH / (N - 1);
35
+ for (let i = 1; i < N; i++) {
36
+ acc += speedAt((i - 0.5) * dv) * dv;
37
+ drop[i] = acc;
38
+ }
39
+ let peak = 0;
40
+ for (let i = 0; i < N; i++) {
41
+ drop[i] /= acc; // 0 at the start → 1 on the ground
42
+ decel[i] = Math.max(0, speedAt(i * dv) - speedAt(Math.min(TOUCH, (i + 1) * dv))) / dv;
43
+ peak = Math.max(peak, decel[i]);
44
+ }
45
+ for (let i = 0; i < N; i++)
46
+ decel[i] /= peak || 1; // 1 = the hardest braking
47
+ return { drop, decel };
48
+ }
49
+ function table(t, v) {
50
+ const x = clamp01(v / TOUCH) * (N - 1), i = Math.floor(x), f = x - i;
51
+ return i >= N - 1 ? t[N - 1] : t[i] * (1 - f) + t[i + 1] * f;
52
+ }
53
+ /** Thrust tremble: two incommensurate sines per axis, in world axes about the base. */
54
+ function tremble(a, amount, secs, lean = 0) {
55
+ const rad = (Number(a.p.wobble) * Math.PI / 180) * amount;
56
+ const w = 2 * Math.PI * secs;
57
+ const rx = rad * (0.62 * Math.sin(5.3 * w) + 0.38 * Math.sin(8.71 * w + 1.1)) + lean;
58
+ const rz = rad * (0.62 * Math.sin(4.7 * w + 2.3) + 0.38 * Math.sin(9.13 * w + 0.4)) + lean * 0.45;
59
+ _a.setFromAxisAngle(a.frame.right, rx).multiply(_b.setFromAxisAngle(a.frame.toward, rz));
60
+ return a.local(_a);
61
+ }
62
+ /** Stretch `sy` along up keeping the volume. */
63
+ function stretch(out, sy, k) {
64
+ const sxz = 1 / Math.sqrt(Math.max(sy, 0.05));
65
+ out.s.set(sxz * k, sy * k, sxz * k);
66
+ }
67
+ export default physicalExit({
68
+ value: 'blastOff',
69
+ label: 'Blast off',
70
+ description: 'Crouch, then launch straight up and out of the scene — it comes back with a powered landing: falls in, brakes hard, hovers, touches down',
71
+ params: {
72
+ height: { type: 'number', label: 'Height', default: 8, min: 2, max: 30, step: 0.5, hint: 'How high it flies before it is gone, × its height' },
73
+ crouch: { type: 'number', label: 'Crouch', default: 0.2, min: 0, max: 0.5, step: 0.01, hint: 'Squash before the launch and on the landing' },
74
+ stretch: { type: 'number', label: 'Stretch', default: 0.25, min: 0, max: 0.8, step: 0.01, hint: 'How much it stretches with its speed, and squashes when it brakes' },
75
+ wobble: { type: 'number', label: 'Thrust wobble', default: 2.5, min: 0, max: 12, step: 0.5, unit: '°' },
76
+ duration: { type: 'number', label: 'Duration', default: 1.8, min: 0.4, max: 8, step: 0.05, unit: 's' },
77
+ },
78
+ prepare: () => buildLanding(),
79
+ exit(u, out, a) {
80
+ const p = a.p, H = a.size.y, D = Number(p.duration);
81
+ out.pivot = 'bottom';
82
+ const crouch = Number(p.crouch);
83
+ const tau = clamp01((u - CROUCH_END) / (1 - CROUCH_END));
84
+ // crouch down, and spring out of it as the thrust takes over
85
+ const squash = crouch * (smooth(0, CROUCH_END, u) - smooth(CROUCH_END, CROUCH_END + 0.07, u));
86
+ const speed = tau * tau; // ∝ velocity of y = H t³
87
+ const sy = 1 - squash + Number(p.stretch) * Math.min(1, 3 * speed) * smooth(0, 0.25, tau);
88
+ stretch(out, sy, 1 - smooth(0.82, 1, tau)); // far up: it goes
89
+ out.off.copy(a.frame.up).multiplyScalar(Number(p.height) * H * tau * tau * tau);
90
+ out.q.copy(tremble(a, smooth(0, 0.15, tau), u * D));
91
+ },
92
+ enter(v, out, a) {
93
+ const p = a.p, H = a.size.y, D = Number(p.duration);
94
+ const st = Number(p.stretch), wob = Number(p.wobble) * Math.PI / 180;
95
+ out.pivot = 'bottom';
96
+ const secs = v * D;
97
+ if (v < TOUCH) {
98
+ const y = Number(p.height) * H * (1 - table(a.mem.drop, v));
99
+ const speed = speedAt(v);
100
+ // stretched by its speed while it falls; squashed by the braking (it keeps moving, the base stops it)
101
+ const sy = 1 + st * 0.8 * speed * (1 - smooth(FALL_END - 0.08, FALL_END + 0.08, v)) - st * 0.7 * table(a.mem.decel, v);
102
+ stretch(out, sy, smooth(0, 0.08, v));
103
+ out.off.copy(a.frame.up).multiplyScalar(y);
104
+ // comes in leaning; the burn rights it with a damped correction (overshoot, then upright by the hover)
105
+ const c = clamp01((v - FALL_END * 0.6) / (TOUCH - FALL_END * 0.6));
106
+ const lean = (0.12 + 2 * wob) * Math.exp(-4.5 * c) * Math.cos(2.6 * Math.PI * c) * (1 - smooth(0.7, 1, c));
107
+ // the thrust trembles during the burn, calms in the hover
108
+ const shake = smooth(FALL_END - 0.1, FALL_END, v) * (1 - 0.7 * smooth(BURN_END, TOUCH, v));
109
+ out.q.copy(tremble(a, shake, secs, lean));
110
+ return;
111
+ }
112
+ // touchdown: a small damped squash that rings out and lands exactly on rest
113
+ const sg = (v - TOUCH) / (1 - TOUCH);
114
+ const sy = 1 - Number(p.crouch) * 0.7 * Math.sin(2 * Math.PI * sg) * Math.exp(-3 * sg) * (1 - sg * sg);
115
+ stretch(out, sy, 1);
116
+ out.q.copy(tremble(a, 0.3 * (1 - sg) * (1 - sg), secs));
117
+ },
118
+ });
@@ -0,0 +1,3 @@
1
+ declare const _default: import("..").OperationDefinition;
2
+ export default _default;
3
+ //# sourceMappingURL=bounce.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bounce.d.ts","sourceRoot":"","sources":["../../../src/operations/catalogue/bounce.ts"],"names":[],"mappings":";AAOA,wBA2BG"}
@@ -0,0 +1,34 @@
1
+ // Bounce — real hops: a ballistic arc (it hangs at the top), a stretch on the way
2
+ // up and down, and a volume-keeping squash on every landing, about the base.
3
+ import { DURATION, heldPhysical } from './physicalHeld.js';
4
+ /** Share of each hop spent on the ground, squashing. */
5
+ const CONTACT = 0.2;
6
+ export default heldPhysical({
7
+ value: 'bounce', label: 'Bounce',
8
+ description: 'Hop on the spot — a real arc with a squash on every landing',
9
+ params: {
10
+ height: { type: 'number', label: 'Height', default: 0.35, min: 0.02, max: 2, step: 0.01, hint: 'A fraction of the object’s height' },
11
+ speed: { type: 'number', label: 'Hops', default: 1.1, min: 0.2, max: 5, step: 0.05, unit: '/s' },
12
+ squash: { type: 'number', label: 'Squash', default: 0.16, min: 0, max: 0.5, step: 0.01 },
13
+ duration: { ...DURATION, default: 3 },
14
+ },
15
+ memory: () => null,
16
+ move(part, st, time) {
17
+ const p = st.p, a = st.amp.v;
18
+ const ph = (time * Number(p.speed)) % 1;
19
+ const sq = Number(p.squash) * a;
20
+ let y = 0, sy = 1;
21
+ if (ph < CONTACT) {
22
+ sy = 1 - sq * Math.sin(Math.PI * (ph / CONTACT));
23
+ }
24
+ else {
25
+ const v = (ph - CONTACT) / (1 - CONTACT);
26
+ y = 4 * v * (1 - v);
27
+ sy = 1 + sq * 0.55 * Math.abs(1 - 2 * v) * (1 - y * 0.6); // stretched while it moves fast
28
+ }
29
+ const sxz = 1 / Math.sqrt(sy);
30
+ part.s.set(sxz, sy, sxz);
31
+ part.off.set(0, y * st.body.size.y * Number(p.height) * a, 0);
32
+ part.pivot.copy(st.body.bottomLocal);
33
+ },
34
+ });
@@ -1 +1 @@
1
- {"version":3,"file":"curlSmoke.d.ts","sourceRoot":"","sources":["../../../src/operations/catalogue/curlSmoke.ts"],"names":[],"mappings":";AAkDA,wBAwIG"}
1
+ {"version":3,"file":"curlSmoke.d.ts","sourceRoot":"","sources":["../../../src/operations/catalogue/curlSmoke.ts"],"names":[],"mappings":";AAkDA,wBA0IG"}
@@ -14,7 +14,7 @@
14
14
  import { Color, Vector3 } from 'three';
15
15
  import { defineOperation } from '../types.js';
16
16
  import { addLayer, forEachMeshMaterial, removeLayer } from './shaderLayers.js';
17
- import { DIRECTION_OPTIONS, createFieldState, fieldGlsl, fieldUniforms, hideMeshes, runProgress, setFieldParams, surfaceLayer, } from './transitionField.js';
17
+ import { DIRECTION_OPTIONS, createFieldState, fieldGlsl, fieldUniforms, hideMeshes, runProgress, setFieldParams, setReveal, surfaceLayer, } from './transitionField.js';
18
18
  import { sampleSurfaceCached } from './surfaceSample.js';
19
19
  import { GLSL_POINT_SIZE, createFxPoints, disposeFxPoints } from './fxPoints.js';
20
20
  const P = 'Smk';
@@ -56,6 +56,7 @@ export default defineOperation({
56
56
  disappear: { type: 'boolean', label: 'Disappear', default: true, hint: 'Off: the whole object becomes smoke in its own shape and stays' },
57
57
  },
58
58
  objectParams: { disappear: false },
59
+ presence: 'paint',
59
60
  apply(target, p, ctx) {
60
61
  let st = target.userData[STATE];
61
62
  if (!st) {
@@ -163,6 +164,7 @@ export default defineOperation({
163
164
  if (!s)
164
165
  return;
165
166
  hideMeshes(target, KEY, false);
167
+ setReveal(s.field, p);
166
168
  s.points.visible = true;
167
169
  // same speed back, from wherever it got to
168
170
  const span = s.keep.value ? 1 / KEEP_SPEED : END;
@@ -1 +1 @@
1
- {"version":3,"file":"dissolve.d.ts","sourceRoot":"","sources":["../../../src/operations/catalogue/dissolve.ts"],"names":[],"mappings":";AAcA,wBA2CG"}
1
+ {"version":3,"file":"dissolve.d.ts","sourceRoot":"","sources":["../../../src/operations/catalogue/dissolve.ts"],"names":[],"mappings":";AAcA,wBA4CG"}
@@ -15,7 +15,8 @@ export default defineOperation({
15
15
  channel: 'visual',
16
16
  multi: true,
17
17
  toggles: true,
18
- usableIn: ['interaction', 'action'],
18
+ usableIn: ['interaction', 'action', 'object'],
19
+ presence: 'vanish',
19
20
  params: {
20
21
  direction: { type: 'select', label: 'Direction', default: 'noise', options: DIRECTION_OPTIONS },
21
22
  edgeColor: { type: 'color', label: 'Edge colour', default: '#ff7a2e' },
@@ -0,0 +1,3 @@
1
+ declare const _default: import("..").OperationDefinition;
2
+ export default _default;
3
+ //# sourceMappingURL=driftUp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"driftUp.d.ts","sourceRoot":"","sources":["../../../src/operations/catalogue/driftUp.ts"],"names":[],"mappings":";AA+BA,wBA6BG"}
@@ -0,0 +1,57 @@
1
+ // Drift up — the object turns light, like a balloon let go. Buoyancy lifts it
2
+ // gently and keeps accelerating it (height ∝ t² after a soft start), calm
3
+ // low-frequency wind pushes it sideways, it leans the way it drifts and sways
4
+ // like something hanging from a lift point above it, turning slowly as it goes.
5
+ // The way back: it sinks down from above, slowing, the sway dying away, and
6
+ // settles with a small bob.
7
+ import { Quaternion, Vector3 } from 'three';
8
+ import { clamp01, physicalExit, ring, smooth } from './physicalExit.js';
9
+ const _r = new Quaternion(), _p = new Quaternion(), _y = new Quaternion(), _d = new Vector3();
10
+ /** Calm wind: two slow sines per ground axis, as a fraction of the drift (0 at t = 0). */
11
+ function wind(t) {
12
+ const x = 0.7 * Math.sin(1.9 * t + 0.4) + 0.3 * Math.sin(3.7 * t + 2.0) - (0.7 * Math.sin(0.4) + 0.3 * Math.sin(2.0));
13
+ const z = 0.6 * Math.sin(1.3 * t + 1.7) + 0.4 * Math.sin(3.1 * t + 0.2) - (0.6 * Math.sin(1.7) + 0.4 * Math.sin(0.2));
14
+ return [x, z];
15
+ }
16
+ function pose(out, a, y, drift, t, sway, yaw, lean) {
17
+ const f = a.frame, span = a.span;
18
+ const [wx, wz] = wind(t);
19
+ _d.set(0, 0, 0).addScaledVector(f.right, wx).addScaledVector(f.toward, wz);
20
+ out.off.copy(_d).multiplyScalar(drift * span).addScaledVector(f.up, y);
21
+ // leans into its drift (the lift point leads), plus a pendulum sway about the screen axes
22
+ const sw = sway * Math.sin(2 * Math.PI * 0.55 * t * 1.6);
23
+ _r.setFromAxisAngle(f.toward, -lean * wx + sw);
24
+ _p.setFromAxisAngle(f.right, lean * wz + 0.6 * sw * Math.cos(2 * Math.PI * 0.37 * t));
25
+ _y.setFromAxisAngle(f.up, yaw);
26
+ out.q.copy(a.local(_r.multiply(_p).multiply(_y)));
27
+ }
28
+ export default physicalExit({
29
+ value: 'driftUp',
30
+ label: 'Drift up',
31
+ description: 'Lifts away like a balloon let go — rising faster and faster, drifting and swaying in a calm wind; it sinks back down and settles with a bob',
32
+ params: {
33
+ rise: { type: 'number', label: 'Rise', default: 7, min: 2, max: 30, step: 0.5, hint: 'How high it floats before it is gone, × its height' },
34
+ drift: { type: 'number', label: 'Drift', default: 0.6, min: 0, max: 4, step: 0.05, hint: 'Sideways wander in the wind, × its size' },
35
+ sway: { type: 'number', label: 'Sway', default: 6, min: 0, max: 25, step: 0.5, unit: '°' },
36
+ duration: { type: 'number', label: 'Duration', default: 3.2, min: 0.6, max: 12, step: 0.05, unit: 's' },
37
+ },
38
+ exit(u, out, a) {
39
+ const p = a.p, H = a.size.y, D = Number(p.duration);
40
+ const e = smooth(0, 0.25, u); // it lets go gently
41
+ const y = Number(p.rise) * H * u * u * (0.35 + 0.65 * u);
42
+ const sway = (Number(p.sway) * Math.PI / 180) * e;
43
+ pose(out, a, y, Number(p.drift) * u * u, u * D, sway, 0.6 * Math.PI * u * u, 0.25 * e);
44
+ out.s.setScalar(1 - smooth(0.72, 1, u));
45
+ },
46
+ enter(v, out, a) {
47
+ const p = a.p, H = a.size.y, D = Number(p.duration);
48
+ const left = 1 - v;
49
+ // sinks in from above, slowing; the last stretch is a damped bob about rest
50
+ const sink = 3.2 * H * Math.pow(left, 2.4);
51
+ const bob = 0.035 * H * ring(clamp01((v - 0.62) / 0.38), 1.5, 2.6);
52
+ const die = Math.pow(left, 1.4);
53
+ const sway = (Number(p.sway) * Math.PI / 180) * die;
54
+ pose(out, a, sink - bob, Number(p.drift) * 0.5 * left * left, -left * D, sway, -0.4 * Math.PI * left * left, 0.25 * die);
55
+ out.s.setScalar(smooth(0, 0.18, v));
56
+ },
57
+ });
@@ -1 +1 @@
1
- {"version":3,"file":"emberAsh.d.ts","sourceRoot":"","sources":["../../../src/operations/catalogue/emberAsh.ts"],"names":[],"mappings":";AAoFA,wBA0FG"}
1
+ {"version":3,"file":"emberAsh.d.ts","sourceRoot":"","sources":["../../../src/operations/catalogue/emberAsh.ts"],"names":[],"mappings":";AAoFA,wBA2FG"}
@@ -78,7 +78,8 @@ export default defineOperation({
78
78
  channel: 'visual',
79
79
  multi: true,
80
80
  toggles: true,
81
- usableIn: ['interaction', 'action'],
81
+ usableIn: ['interaction', 'action', 'object'],
82
+ presence: 'vanish',
82
83
  params: {
83
84
  direction: { type: 'select', label: 'Burn direction', default: 'up', options: DIRECTION_OPTIONS },
84
85
  wind: { type: 'select', label: 'Wind', default: 'left', options: [{ value: 'left', label: 'Left → right' }, { value: 'right', label: 'Right → left' }, { value: 'up', label: 'Rising' }] },
@@ -1 +1 @@
1
- {"version":3,"file":"flip.d.ts","sourceRoot":"","sources":["../../../src/operations/catalogue/flip.ts"],"names":[],"mappings":";AAaA,wBAoDG"}
1
+ {"version":3,"file":"flip.d.ts","sourceRoot":"","sources":["../../../src/operations/catalogue/flip.ts"],"names":[],"mappings":";AAaA,wBA6DG"}
@@ -16,7 +16,7 @@ export default defineOperation({
16
16
  channel: 'transform',
17
17
  multi: true,
18
18
  toggles: false,
19
- usableIn: ['interaction', 'action'],
19
+ usableIn: ['interaction', 'action', 'object'],
20
20
  params: {
21
21
  axis: { type: 'select', label: 'Flip', default: 'x', options: [{ value: 'x', label: 'Forward (X)' }, { value: 'z', label: 'Sideways (Z)' }, { value: 'y', label: 'Twist (Y)' }] },
22
22
  height: { type: 'number', label: 'Jump height', default: 0.45, min: 0.1, max: 4, step: 0.05, hint: 'A fraction of the object’s own height' },
@@ -27,10 +27,12 @@ export default defineOperation({
27
27
  const running = target.userData[KEY];
28
28
  if (running) {
29
29
  gsap.killTweensOf(running.proxy);
30
- releaseRest(target);
30
+ releaseRest(target, KEY);
31
31
  }
32
- const rest = acquireRest(target);
33
- const proxy = { u: 0 };
32
+ const rest = acquireRest(target, KEY);
33
+ // p.__backward (playback: reverse / yoyo) plays the same move backwards in time.
34
+ const back = p.__backward === true;
35
+ const proxy = { u: back ? 1 : 0 };
34
36
  target.userData[KEY] = { proxy };
35
37
  const axis = AXES[String(p.axis)] ?? AXES.x;
36
38
  const dir = p.reverse ? -1 : 1;
@@ -38,7 +40,7 @@ export default defineOperation({
38
40
  const q = new Quaternion(), s = new Vector3(), off = new Vector3();
39
41
  const CROUCH = 0.18, LAND = 0.82;
40
42
  gsap.to(proxy, {
41
- u: 1, duration: Number(p.duration), ease: 'none',
43
+ u: back ? 0 : 1, duration: Number(p.duration), ease: 'none',
42
44
  onUpdate: () => {
43
45
  const u = proxy.u;
44
46
  if (u < CROUCH) {
@@ -46,24 +48,32 @@ export default defineOperation({
46
48
  const v = u / CROUCH;
47
49
  const sy = 1 - 0.16 * Math.sin(Math.PI * v);
48
50
  const sxz = 1 / Math.sqrt(sy);
49
- poseAbout(target, rest, rest.bottomLocal, NO_TURN, s.set(sxz, sy, sxz));
51
+ poseAbout(target, rest, rest.bottomLocal, NO_TURN, s.set(sxz, sy, sxz), undefined, KEY);
50
52
  }
51
53
  else if (u < LAND) {
52
54
  // ballistic hop + a full turn about the centre, eased so it hangs at the top
53
55
  const v = (u - CROUCH) / (LAND - CROUCH);
54
56
  off.set(0, 4 * h * v * (1 - v), 0);
55
57
  q.setFromAxisAngle(axis, dir * 2 * Math.PI * smooth(v));
56
- poseAbout(target, rest, rest.centerLocal, q, s.set(1, 1, 1), off);
58
+ poseAbout(target, rest, rest.centerLocal, q, s.set(1, 1, 1), off, KEY);
57
59
  }
58
60
  else {
59
61
  // landing: squash that rings out once
60
62
  const v = (u - LAND) / (1 - LAND);
61
63
  const sy = 1 - 0.14 * Math.sin(Math.PI * v) * (1 - v * 0.4);
62
64
  const sxz = 1 / Math.sqrt(sy);
63
- poseAbout(target, rest, rest.bottomLocal, NO_TURN, s.set(sxz, sy, sxz));
65
+ poseAbout(target, rest, rest.bottomLocal, NO_TURN, s.set(sxz, sy, sxz), undefined, KEY);
64
66
  }
65
67
  },
66
- onComplete: () => { delete target.userData[KEY]; releaseRest(target); },
68
+ onComplete: () => { delete target.userData[KEY]; releaseRest(target, KEY); },
67
69
  });
68
70
  },
71
+ cancel(target) {
72
+ const running = target.userData[KEY];
73
+ if (!running)
74
+ return;
75
+ gsap.killTweensOf(running.proxy);
76
+ delete target.userData[KEY];
77
+ releaseRest(target, KEY);
78
+ },
69
79
  });
@@ -0,0 +1,3 @@
1
+ declare const _default: import("..").OperationDefinition;
2
+ export default _default;
3
+ //# sourceMappingURL=float.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"float.d.ts","sourceRoot":"","sources":["../../../src/operations/catalogue/float.ts"],"names":[],"mappings":";AASA,wBA8BG"}
@@ -0,0 +1,39 @@
1
+ // Float — the object hovers. Three sines at ratios that never line up (1, φ, e)
2
+ // make a bob that does not visibly repeat; it drifts a little sideways on slower
3
+ // ones and banks into that drift, the way something light hangs in the air.
4
+ import { Quaternion, Vector3 } from 'three';
5
+ import { DURATION, heldPhysical } from './physicalHeld.js';
6
+ const X = new Vector3(1, 0, 0), Z = new Vector3(0, 0, 1);
7
+ const _q = new Quaternion();
8
+ export default heldPhysical({
9
+ value: 'float', label: 'Float',
10
+ description: 'Hover in the air — a soft bob that never quite repeats, drifting and banking a little',
11
+ params: {
12
+ height: { type: 'number', label: 'Bob', default: 0.08, min: 0, max: 0.6, step: 0.005, hint: 'Up and down, as a fraction of the object’s height' },
13
+ drift: { type: 'number', label: 'Drift', default: 0.04, min: 0, max: 0.5, step: 0.005, hint: 'Sideways wander, as a fraction of its height' },
14
+ tilt: { type: 'number', label: 'Bank', default: 5, min: 0, max: 30, step: 0.5, unit: '°', hint: 'How much it leans into its drift' },
15
+ speed: { type: 'number', label: 'Speed', default: 1, min: 0.1, max: 5, step: 0.05, unit: '×' },
16
+ duration: { ...DURATION, default: 4 },
17
+ },
18
+ memory: () => ({ px: 0, pz: 0 }),
19
+ move(part, st, time, dt) {
20
+ const p = st.p, a = st.amp.v, H = st.body.size.y;
21
+ const w = 2 * Math.PI * 0.32 * Number(p.speed) * time;
22
+ const bob = 0.62 * Math.sin(w) + 0.28 * Math.sin(1.618 * w + 1.3) + 0.1 * Math.sin(2.718 * w + 4.1);
23
+ const dx = 0.7 * Math.sin(0.41 * w + 0.5) + 0.3 * Math.sin(0.93 * w + 2.2);
24
+ const dz = 0.7 * Math.sin(0.33 * w + 3.9) + 0.3 * Math.sin(0.77 * w + 0.4);
25
+ const D = H * Number(p.drift) * a;
26
+ part.off.set(dx * D, bob * H * Number(p.height) * a, dz * D);
27
+ // bank by the drift's own speed (finite difference, smoothed)
28
+ const k = dt > 0 ? Math.min(1, dt * 6) : 0;
29
+ const vx = dt > 0 ? (dx - st.mem.px) / dt : 0, vz = dt > 0 ? (dz - st.mem.pz) / dt : 0;
30
+ st.mem.px = dx;
31
+ st.mem.pz = dz;
32
+ const lean = (Number(p.tilt) * Math.PI / 180) * a;
33
+ const m = st.mem;
34
+ m.lx = (m.lx ?? 0) + (Math.max(-1, Math.min(1, vx * 0.9)) - (m.lx ?? 0)) * k;
35
+ m.lz = (m.lz ?? 0) + (Math.max(-1, Math.min(1, vz * 0.9)) - (m.lz ?? 0)) * k;
36
+ part.q.setFromAxisAngle(Z, -m.lx * lean).multiply(_q.setFromAxisAngle(X, m.lz * lean));
37
+ part.pivot.copy(st.body.centerLocal);
38
+ },
39
+ });
@@ -0,0 +1,3 @@
1
+ declare const _default: import("..").OperationDefinition;
2
+ export default _default;
3
+ //# sourceMappingURL=flyBy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flyBy.d.ts","sourceRoot":"","sources":["../../../src/operations/catalogue/flyBy.ts"],"names":[],"mappings":";AA+CA,wBAkCG"}
@@ -0,0 +1,79 @@
1
+ // Fly-by — the object takes off and flies past the camera. It lifts, banks into
2
+ // a turn and sweeps towards the viewer on a cubic Bézier, rolling into the curve
3
+ // (bank follows the path's sideways acceleration) and yawing to its heading, and
4
+ // passes just beside the lens. The way back: it comes in from behind the camera
5
+ // on the other side, banks round and sets down in place, the roll easing out.
6
+ import { Quaternion, Vector3 } from 'three';
7
+ import { clamp01, physicalExit, ring, smooth } from './physicalExit.js';
8
+ const _p0 = new Vector3(), _p1 = new Vector3(), _p2 = new Vector3(), _p3 = new Vector3();
9
+ const _a = new Vector3(), _vel = new Vector3(), _acc = new Vector3(), _side = new Vector3();
10
+ const _r = new Quaternion(), _y = new Quaternion();
11
+ /** The flight path from the object (0) to just beside the camera (1), on `side` (±1 along screen right). */
12
+ function path(a, side) {
13
+ const f = a.frame, H = a.size.y, span = a.span;
14
+ const cam = f.camera ?? _a.copy(f.toward).multiplyScalar(14 * span).addScaledVector(f.up, 1.5 * H);
15
+ const lift = Number(a.p.lift) * H;
16
+ _p0.set(0, 0, 0);
17
+ _p1.copy(f.up).multiplyScalar(lift * 1.4); // straight up off the ground
18
+ _p2.copy(cam).multiplyScalar(0.45).addScaledVector(f.right, side * 2.2 * span).addScaledVector(f.up, lift);
19
+ _p3.copy(cam).multiplyScalar(1.12).addScaledVector(f.right, side * 1.4 * span); // just past the lens, to the side
20
+ }
21
+ function bez(t, out, d = 0) {
22
+ const m = 1 - t;
23
+ if (d === 0)
24
+ return out.set(0, 0, 0).addScaledVector(_p0, m * m * m).addScaledVector(_p1, 3 * m * m * t).addScaledVector(_p2, 3 * m * t * t).addScaledVector(_p3, t * t * t);
25
+ if (d === 1)
26
+ return out.set(0, 0, 0).addScaledVector(_p1.clone().sub(_p0), 3 * m * m).addScaledVector(_p2.clone().sub(_p1), 6 * m * t).addScaledVector(_p3.clone().sub(_p2), 3 * t * t);
27
+ return out.set(0, 0, 0).addScaledVector(_p2.clone().sub(_p1.clone().multiplyScalar(2)).add(_p0), 6 * m).addScaledVector(_p3.clone().sub(_p2.clone().multiplyScalar(2)).add(_p1), 6 * t);
28
+ }
29
+ /** Bank into the curve: roll about the heading by the sideways acceleration, yaw towards the heading. */
30
+ function attitude(a, t, amount, yawAmount) {
31
+ const f = a.frame;
32
+ bez(t, _vel, 1);
33
+ bez(t, _acc, 2);
34
+ const flat = _vel.clone().addScaledVector(f.up, -_vel.dot(f.up));
35
+ const heading = flat.lengthSq() > 1e-8 ? flat.normalize() : f.toward.clone();
36
+ _side.crossVectors(f.up, heading);
37
+ const lateral = _acc.dot(_side) / Math.max(1e-6, _vel.lengthSq());
38
+ const bank = (Number(a.p.bank) * Math.PI / 180) * Math.max(-1, Math.min(1, lateral * a.span * 1.2)) * amount;
39
+ const yaw = Math.atan2(heading.dot(f.right), heading.dot(f.toward)) * yawAmount;
40
+ _r.setFromAxisAngle(heading, -bank);
41
+ _y.setFromAxisAngle(f.up, yaw);
42
+ return a.local(_r.multiply(_y));
43
+ }
44
+ const sideOf = (a) => (a.p.side === 'left' ? -1 : 1);
45
+ export default physicalExit({
46
+ value: 'flyBy',
47
+ label: 'Fly-by',
48
+ description: 'Takes off, banks and flies past the camera — it comes back from behind the camera on the other side and sets down in place',
49
+ params: {
50
+ side: {
51
+ type: 'select', label: 'Passes on the', default: 'right', options: [{ value: 'right', label: 'Right' }, { value: 'left', label: 'Left' }],
52
+ hint: 'The camera side it flies past',
53
+ },
54
+ bank: { type: 'number', label: 'Bank', default: 35, min: 0, max: 80, step: 1, unit: '°', hint: 'How hard it rolls into the turn' },
55
+ lift: { type: 'number', label: 'Climb', default: 0.8, min: 0, max: 4, step: 0.05, hint: 'How high it climbs first, × its height' },
56
+ duration: { type: 'number', label: 'Duration', default: 2.2, min: 0.5, max: 8, step: 0.05, unit: 's' },
57
+ },
58
+ exit(u, out, a) {
59
+ path(a, sideOf(a));
60
+ // takes off slowly, then accelerates along the path
61
+ const t = u * u * (0.4 + 0.6 * u);
62
+ bez(t, out.off);
63
+ const e = smooth(0, 0.2, u);
64
+ out.q.copy(attitude(a, Math.max(t, 0.02), e, e * 0.6));
65
+ out.s.setScalar(1 - smooth(0.9, 1, u)); // behind the lens: gone
66
+ },
67
+ enter(v, out, a) {
68
+ path(a, -sideOf(a));
69
+ // the same kind of path flown backwards: in from beside the lens, slowing down to set down
70
+ const left = 1 - v;
71
+ const t = Math.pow(left, 1.8);
72
+ bez(t, out.off);
73
+ // a soft touchdown bob in the last bit
74
+ out.off.addScaledVector(a.frame.up, -0.03 * a.size.y * ring(clamp01((v - 0.8) / 0.2), 1, 2.5));
75
+ const e = 1 - smooth(0.7, 1, v);
76
+ out.q.copy(attitude(a, Math.max(t, 0.02), e, e * 0.6));
77
+ out.s.setScalar(smooth(0, 0.08, v));
78
+ },
79
+ });
@@ -1 +1 @@
1
- {"version":3,"file":"frost.d.ts","sourceRoot":"","sources":["../../../src/operations/catalogue/frost.ts"],"names":[],"mappings":";AAoEA,wBA4CG"}
1
+ {"version":3,"file":"frost.d.ts","sourceRoot":"","sources":["../../../src/operations/catalogue/frost.ts"],"names":[],"mappings":";AAwEA,wBA+CG"}
@@ -7,7 +7,7 @@
7
7
  import { Color } from 'three';
8
8
  import { defineOperation } from '../types.js';
9
9
  import { GLSL_WORLEY, addLayer, forEachMeshMaterial, removeLayer } from './shaderLayers.js';
10
- import { DIRECTION_OPTIONS, createFieldState, fieldGlsl, fieldUniforms, runProgress, setFieldParams } from './transitionField.js';
10
+ import { DIRECTION_OPTIONS, createFieldState, fieldGlsl, fieldUniforms, goneGlsl, runProgress, setFieldParams, setReveal } from './transitionField.js';
11
11
  const P = 'Frs';
12
12
  const KEY = 'frost';
13
13
  const STATE = '__opFrost';
@@ -23,7 +23,7 @@ function layerFor(st) {
23
23
  `;
24
24
  return {
25
25
  uniforms: { ...fieldUniforms(P, st.field), uFrsIce: st.ice, uFrsDensity: st.density },
26
- common: `varying vec3 vFrsQ;\nvarying vec3 vFrsR;\nvarying vec3 vFrsView;\n${fieldGlsl(P)}\n${GLSL_WORLEY}`,
26
+ common: `varying vec3 vFrsQ;\nvarying vec3 vFrsR;\nvarying vec3 vFrsView;\n${fieldGlsl(P)}\n${goneGlsl(P)}\n${GLSL_WORLEY}`,
27
27
  fragmentPars: 'float frsFr = 0.0; vec3 frsCell = vec3(1.0); float frsSeam = 0.0;',
28
28
  vertex: /* glsl */ `
29
29
  vFrsR = (uFrsRootInv * modelMatrix * vec4(transformed, 1.0)).xyz;
@@ -31,7 +31,11 @@ function layerFor(st) {
31
31
  vFrsView = (modelViewMatrix * vec4(transformed, 1.0)).xyz;`,
32
32
  diffuse: /* glsl */ `
33
33
  {
34
- frsFr = smoothstep(0.0, uFrsEdgeWidth, FrsThreshold() - FrsField(vFrsQ));
34
+ float frsD = FrsThreshold() - FrsField(vFrsQ);
35
+ frsFr = smoothstep(0.0, uFrsEdgeWidth, frsD);
36
+ // revealed by the ice: nothing ahead of the front, solid ice right behind it
37
+ if (uFrsReveal > 0.5) { if (frsD < 0.0) discard; frsFr = 1.0; }
38
+ frsFr *= 1.0 - FrsGone(vFrsQ); // wiped by the look that replaces it
35
39
  frsCell = fxWorley(vFrsR * (uFrsDensity / uFrsExtent));
36
40
  frsSeam = 1.0 - smoothstep(0.0, 0.09, frsCell.y - frsCell.x);
37
41
  ${frozen}
@@ -70,6 +74,8 @@ export default defineOperation({
70
74
  toggles: true,
71
75
  usableIn: ['interaction', 'action', 'object'],
72
76
  stack: 'surface',
77
+ presence: 'paint',
78
+ field: (target) => target.userData[STATE]?.field,
73
79
  params: {
74
80
  direction: { type: 'select', label: 'Direction', default: 'up', options: DIRECTION_OPTIONS },
75
81
  ice: { type: 'color', label: 'Ice', default: '#bfe4ff' },
@@ -103,6 +109,7 @@ export default defineOperation({
103
109
  const s = target.userData[STATE];
104
110
  if (!s)
105
111
  return;
112
+ setReveal(s.field, p);
106
113
  return runProgress(target, s.field, 0, {
107
114
  duration: Number(p.duration), ease: 'power1.in',
108
115
  onComplete: () => { s.mats.forEach(m => removeLayer(m, KEY)); delete target.userData[STATE]; },
@@ -0,0 +1,3 @@
1
+ declare const _default: import("..").OperationDefinition;
2
+ export default _default;
3
+ //# sourceMappingURL=grow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grow.d.ts","sourceRoot":"","sources":["../../../src/operations/catalogue/grow.ts"],"names":[],"mappings":";AAIA,wBAeG"}