react-native-webrtc-kaleidoscope 2.0.0 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1185) hide show
  1. package/NOTICE.md +8 -8
  2. package/README.md +185 -56
  3. package/android/build.gradle +13 -0
  4. package/android/src/main/java/com/simiancraft/kaleidoscope/CompositeLayers.kt +127 -0
  5. package/android/src/main/java/com/simiancraft/kaleidoscope/EffectTuning.kt +69 -69
  6. package/android/src/main/java/com/simiancraft/kaleidoscope/KaleidoscopeModule.kt +86 -33
  7. package/android/src/main/java/com/simiancraft/kaleidoscope/Registration.kt +23 -64
  8. package/android/src/main/java/com/simiancraft/kaleidoscope/effects/CompositeFactory.kt +691 -0
  9. package/android/src/main/java/com/simiancraft/kaleidoscope/effects/LayerShaders.kt +30 -0
  10. package/android/src/main/java/com/simiancraft/kaleidoscope/effects/TransformFactory.kt +248 -200
  11. package/android/src/main/java/com/simiancraft/kaleidoscope/gpu/Egl.kt +82 -70
  12. package/android/src/main/java/com/simiancraft/kaleidoscope/gpu/Fbo.kt +50 -47
  13. package/android/src/main/java/com/simiancraft/kaleidoscope/gpu/FramePipeline.kt +106 -105
  14. package/android/src/main/java/com/simiancraft/kaleidoscope/gpu/GlDebug.kt +23 -23
  15. package/android/src/main/java/com/simiancraft/kaleidoscope/gpu/GlProgram.kt +76 -57
  16. package/android/src/main/java/com/simiancraft/kaleidoscope/gpu/Ingest.kt +92 -71
  17. package/android/src/main/java/com/simiancraft/kaleidoscope/gpu/Orientation.kt +25 -25
  18. package/android/src/main/java/com/simiancraft/kaleidoscope/gpu/Shaders.kt +57 -76
  19. package/android/src/main/java/com/simiancraft/kaleidoscope/gpu/ShadersGenerated.kt +1162 -25
  20. package/android/src/main/java/com/simiancraft/kaleidoscope/segmentation/Mask.kt +254 -242
  21. package/android/src/main/java/com/simiancraft/kaleidoscope/segmentation/MaskTuning.kt +28 -25
  22. package/android/src/main/java/com/simiancraft/kaleidoscope/segmentation/SegmentationEngine.kt +104 -98
  23. package/android/src/test/java/com/simiancraft/kaleidoscope/CompositeLayersTest.kt +165 -0
  24. package/app.plugin.js +9 -255
  25. package/catalog/composites/clouds/clouds.controls.tsx +19 -0
  26. package/catalog/composites/clouds/clouds.ts +32 -0
  27. package/catalog/composites/corporate-blobs/corporate-blobs.controls.tsx +24 -0
  28. package/catalog/composites/corporate-blobs/corporate-blobs.thumb.webp +0 -0
  29. package/catalog/composites/corporate-blobs/corporate-blobs.ts +51 -0
  30. package/catalog/composites/corporate-blobs/corporate-blobs.web.ts +42 -0
  31. package/catalog/composites/fairy-cave/fairy-cave.controls.tsx +33 -0
  32. package/catalog/composites/fairy-cave/fairy-cave.thumb.webp +0 -0
  33. package/catalog/composites/fairy-cave/fairy-cave.ts +53 -0
  34. package/catalog/composites/fairy-cave/fairy-cave.web.ts +47 -0
  35. package/catalog/composites/fairy-grotto/fairy-grotto.controls.tsx +34 -0
  36. package/catalog/composites/fairy-grotto/fairy-grotto.thumb.webp +0 -0
  37. package/catalog/composites/fairy-grotto/fairy-grotto.ts +54 -0
  38. package/catalog/composites/fairy-grotto/fairy-grotto.web.ts +47 -0
  39. package/catalog/composites/fairy-hollow/fairy-hollow.controls.tsx +34 -0
  40. package/catalog/composites/fairy-hollow/fairy-hollow.thumb.webp +0 -0
  41. package/catalog/composites/fairy-hollow/fairy-hollow.ts +55 -0
  42. package/catalog/composites/fairy-hollow/fairy-hollow.web.ts +47 -0
  43. package/catalog/composites/nebula/nebula.controls.tsx +19 -0
  44. package/catalog/composites/nebula/nebula.thumb.webp +0 -0
  45. package/catalog/composites/nebula/nebula.ts +37 -0
  46. package/catalog/composites/nebula/nebula.web.ts +30 -0
  47. package/catalog/composites/observation-deck/observation-deck.controls.tsx +28 -0
  48. package/catalog/composites/observation-deck/observation-deck.thumb.webp +0 -0
  49. package/catalog/composites/observation-deck/observation-deck.ts +59 -0
  50. package/catalog/composites/observation-deck/observation-deck.web.ts +50 -0
  51. package/catalog/composites/simianlights/simianlights.controls.tsx +19 -0
  52. package/catalog/composites/simianlights/simianlights.thumb.webp +0 -0
  53. package/catalog/composites/simianlights/simianlights.ts +34 -0
  54. package/catalog/composites/simianlights/simianlights.web.ts +29 -0
  55. package/catalog/composites/underwater/underwater.controls.tsx +19 -0
  56. package/catalog/composites/underwater/underwater.thumb.webp +0 -0
  57. package/catalog/composites/underwater/underwater.ts +42 -0
  58. package/catalog/composites/underwater/underwater.web.ts +36 -0
  59. package/catalog/composites/wizard-tower/wizard-tower.controls.tsx +23 -0
  60. package/catalog/composites/wizard-tower/wizard-tower.thumb.webp +0 -0
  61. package/catalog/composites/wizard-tower/wizard-tower.ts +44 -0
  62. package/catalog/composites/wizard-tower/wizard-tower.web.ts +35 -0
  63. package/catalog/composites/wizard-tower-night/wizard-tower-night.controls.tsx +22 -0
  64. package/catalog/composites/wizard-tower-night/wizard-tower-night.thumb.webp +0 -0
  65. package/catalog/composites/wizard-tower-night/wizard-tower-night.ts +43 -0
  66. package/catalog/composites/wizard-tower-night/wizard-tower-night.web.ts +35 -0
  67. package/catalog/images/README.md +188 -0
  68. package/catalog/images/corporate/corporate-logo.thumb.webp +0 -0
  69. package/catalog/images/corporate/corporate-logo.ts +6 -0
  70. package/catalog/images/corporate/corporate-logo.web.ts +7 -0
  71. package/catalog/images/corporate/corporate-logo.webp +0 -0
  72. package/catalog/images/debug/debug-resolutions.thumb.webp +0 -0
  73. package/catalog/images/debug/debug-resolutions.ts +6 -0
  74. package/catalog/images/debug/debug-resolutions.web.ts +7 -0
  75. package/catalog/images/fairy-caves/grotto.thumb.webp +0 -0
  76. package/catalog/images/fairy-caves/grotto.ts +6 -0
  77. package/catalog/images/fairy-caves/grotto.web.ts +7 -0
  78. package/catalog/images/fairy-caves/grotto.webp +0 -0
  79. package/catalog/images/fairy-caves/hollow.thumb.webp +0 -0
  80. package/catalog/images/fairy-caves/hollow.ts +6 -0
  81. package/catalog/images/fairy-caves/hollow.web.ts +7 -0
  82. package/catalog/images/fairy-caves/hollow.webp +0 -0
  83. package/catalog/images/fairy-caves/treehouse-2.thumb.webp +0 -0
  84. package/catalog/images/fairy-caves/treehouse-2.ts +6 -0
  85. package/catalog/images/fairy-caves/treehouse-2.web.ts +7 -0
  86. package/catalog/images/fairy-caves/treehouse-2.webp +0 -0
  87. package/catalog/images/fairy-caves/treehouse-3.thumb.webp +0 -0
  88. package/catalog/images/fairy-caves/treehouse-3.ts +6 -0
  89. package/catalog/images/fairy-caves/treehouse-3.web.ts +7 -0
  90. package/catalog/images/fairy-caves/treehouse-3.webp +0 -0
  91. package/catalog/images/fairy-caves/treehouse.thumb.webp +0 -0
  92. package/catalog/images/fairy-caves/treehouse.ts +6 -0
  93. package/catalog/images/fairy-caves/treehouse.web.ts +7 -0
  94. package/catalog/images/fairy-caves/treehouse.webp +0 -0
  95. package/catalog/images/home/home-dark.thumb.webp +0 -0
  96. package/catalog/images/home/home-dark.ts +6 -0
  97. package/catalog/images/home/home-dark.web.ts +7 -0
  98. package/catalog/images/home/home-light.thumb.webp +0 -0
  99. package/catalog/images/home/home-light.ts +6 -0
  100. package/catalog/images/home/home-light.web.ts +7 -0
  101. package/catalog/images/image-ids.ts +42 -0
  102. package/catalog/images/image.types.ts +5 -0
  103. package/catalog/images/index.ts +7 -0
  104. package/catalog/images/nature/landscape-dark.thumb.webp +0 -0
  105. package/catalog/images/nature/landscape-dark.ts +6 -0
  106. package/catalog/images/nature/landscape-dark.web.ts +7 -0
  107. package/catalog/images/nature/landscape-light.thumb.webp +0 -0
  108. package/catalog/images/nature/landscape-light.ts +6 -0
  109. package/catalog/images/nature/landscape-light.web.ts +7 -0
  110. package/catalog/images/office/office-dark.thumb.webp +0 -0
  111. package/catalog/images/office/office-dark.ts +6 -0
  112. package/catalog/images/office/office-dark.web.ts +7 -0
  113. package/catalog/images/office/office-light.thumb.webp +0 -0
  114. package/catalog/images/office/office-light.ts +6 -0
  115. package/catalog/images/office/office-light.web.ts +7 -0
  116. package/catalog/images/sci-fi/sci-fi-light.thumb.webp +0 -0
  117. package/catalog/images/sci-fi/sci-fi-light.ts +6 -0
  118. package/catalog/images/sci-fi/sci-fi-light.web.ts +7 -0
  119. package/catalog/images/simiancraft/simiancraft-dark-transparency.thumb.webp +0 -0
  120. package/catalog/images/simiancraft/simiancraft-dark-transparency.ts +6 -0
  121. package/catalog/images/simiancraft/simiancraft-dark-transparency.web.ts +9 -0
  122. package/catalog/images/simiancraft/simiancraft-dark-transparency.webp +0 -0
  123. package/catalog/images/simiancraft/simiancraft-dark.thumb.webp +0 -0
  124. package/catalog/images/simiancraft/simiancraft-dark.ts +6 -0
  125. package/catalog/images/simiancraft/simiancraft-dark.web.ts +7 -0
  126. package/catalog/images/simiancraft/simiancraft-light-transparency.thumb.webp +0 -0
  127. package/catalog/images/simiancraft/simiancraft-light-transparency.ts +6 -0
  128. package/catalog/images/simiancraft/simiancraft-light-transparency.web.ts +9 -0
  129. package/catalog/images/simiancraft/simiancraft-light-transparency.webp +0 -0
  130. package/catalog/images/simiancraft/simiancraft-light.thumb.webp +0 -0
  131. package/catalog/images/simiancraft/simiancraft-light.ts +6 -0
  132. package/catalog/images/simiancraft/simiancraft-light.web.ts +7 -0
  133. package/catalog/images/spaceship/observation-deck.thumb.webp +0 -0
  134. package/catalog/images/spaceship/observation-deck.ts +6 -0
  135. package/catalog/images/spaceship/observation-deck.web.ts +7 -0
  136. package/catalog/images/spaceship/observation-deck.webp +0 -0
  137. package/catalog/images/underwater/oceanscape-dark.thumb.webp +0 -0
  138. package/catalog/images/underwater/oceanscape-dark.ts +6 -0
  139. package/catalog/images/underwater/oceanscape-dark.web.ts +7 -0
  140. package/catalog/images/underwater/oceanscape-dark.webp +0 -0
  141. package/catalog/images/wizard-tower/wizard-tower-1.thumb.webp +0 -0
  142. package/catalog/images/wizard-tower/wizard-tower-1.ts +6 -0
  143. package/catalog/images/wizard-tower/wizard-tower-1.web.ts +7 -0
  144. package/catalog/images/wizard-tower/wizard-tower-1.webp +0 -0
  145. package/catalog/images/wizard-tower/wizard-tower-2.thumb.webp +0 -0
  146. package/catalog/images/wizard-tower/wizard-tower-2.ts +6 -0
  147. package/catalog/images/wizard-tower/wizard-tower-2.web.ts +7 -0
  148. package/catalog/images/wizard-tower/wizard-tower-2.webp +0 -0
  149. package/catalog/images/wizard-tower/wizard-tower-night.thumb.webp +0 -0
  150. package/catalog/images/wizard-tower/wizard-tower-night.ts +6 -0
  151. package/catalog/images/wizard-tower/wizard-tower-night.web.ts +7 -0
  152. package/catalog/images/wizard-tower/wizard-tower-night.webp +0 -0
  153. package/catalog/shaders/README.md +114 -0
  154. package/catalog/shaders/_shared/composite-blit.frag +26 -0
  155. package/catalog/shaders/_shared/composite-camera.frag +17 -0
  156. package/catalog/shaders/_shared/composite-image.frag +23 -0
  157. package/catalog/shaders/_shared/composite-masked.frag +26 -0
  158. package/catalog/shaders/_shared/composite-subject.frag +27 -0
  159. package/catalog/shaders/_shared/passthrough.vert +27 -0
  160. package/catalog/shaders/_shared/transform.frag +27 -0
  161. package/catalog/shaders/_shared/types.ts +63 -0
  162. package/catalog/shaders/anamorphic-lensflare/anamorphic-lensflare.form.tsx +37 -0
  163. package/catalog/shaders/anamorphic-lensflare/anamorphic-lensflare.frag +123 -0
  164. package/catalog/shaders/anamorphic-lensflare/anamorphic-lensflare.ts +106 -0
  165. package/catalog/shaders/blur/blur.form.tsx +29 -0
  166. package/catalog/shaders/blur/blur.ts +32 -0
  167. package/catalog/shaders/blur/composite-blur.frag +42 -0
  168. package/catalog/shaders/clouds/clouds.form.tsx +39 -0
  169. package/catalog/shaders/clouds/clouds.frag +128 -0
  170. package/catalog/shaders/clouds/clouds.presets.md +37 -0
  171. package/catalog/shaders/clouds/clouds.ts +124 -0
  172. package/catalog/shaders/corporate-blobs/corporate-blobs.form.tsx +44 -0
  173. package/catalog/shaders/corporate-blobs/corporate-blobs.frag +224 -0
  174. package/catalog/shaders/corporate-blobs/corporate-blobs.ts +136 -0
  175. package/catalog/shaders/fireflies/fireflies.form.tsx +33 -0
  176. package/catalog/shaders/fireflies/fireflies.frag +68 -0
  177. package/catalog/shaders/fireflies/fireflies.ts +61 -0
  178. package/catalog/shaders/godrays/godrays.form.tsx +37 -0
  179. package/catalog/shaders/godrays/godrays.frag +85 -0
  180. package/catalog/shaders/godrays/godrays.ts +105 -0
  181. package/catalog/shaders/index.ts +78 -0
  182. package/catalog/shaders/light-beams-and-motes/light-beams-and-motes.form.tsx +55 -0
  183. package/catalog/shaders/light-beams-and-motes/light-beams-and-motes.frag +262 -0
  184. package/catalog/shaders/light-beams-and-motes/light-beams-and-motes.ts +137 -0
  185. package/catalog/shaders/nebula/nebula.form.tsx +34 -0
  186. package/catalog/shaders/nebula/nebula.frag +151 -0
  187. package/catalog/shaders/nebula/nebula.ts +74 -0
  188. package/catalog/shaders/plasma/plasma.form.tsx +32 -0
  189. package/catalog/shaders/plasma/plasma.frag +55 -0
  190. package/catalog/shaders/plasma/plasma.ts +44 -0
  191. package/catalog/shaders/simianlights/simianlights.form.tsx +34 -0
  192. package/catalog/shaders/simianlights/simianlights.frag +151 -0
  193. package/catalog/shaders/simianlights/simianlights.ts +73 -0
  194. package/dist/catalog/composites/clouds/clouds.controls.d.ts +3 -0
  195. package/dist/catalog/composites/clouds/clouds.controls.d.ts.map +1 -0
  196. package/dist/catalog/composites/clouds/clouds.controls.js +11 -0
  197. package/dist/catalog/composites/clouds/clouds.controls.js.map +1 -0
  198. package/dist/catalog/composites/clouds/clouds.d.ts +26 -0
  199. package/dist/catalog/composites/clouds/clouds.d.ts.map +1 -0
  200. package/dist/catalog/composites/clouds/clouds.js +33 -0
  201. package/dist/catalog/composites/clouds/clouds.js.map +1 -0
  202. package/dist/catalog/composites/corporate-blobs/corporate-blobs.controls.d.ts +3 -0
  203. package/dist/catalog/composites/corporate-blobs/corporate-blobs.controls.d.ts.map +1 -0
  204. package/dist/catalog/composites/corporate-blobs/corporate-blobs.controls.js +13 -0
  205. package/dist/catalog/composites/corporate-blobs/corporate-blobs.controls.js.map +1 -0
  206. package/dist/catalog/composites/corporate-blobs/corporate-blobs.d.ts +37 -0
  207. package/dist/catalog/composites/corporate-blobs/corporate-blobs.d.ts.map +1 -0
  208. package/dist/catalog/composites/corporate-blobs/corporate-blobs.js +52 -0
  209. package/dist/catalog/composites/corporate-blobs/corporate-blobs.js.map +1 -0
  210. package/dist/catalog/composites/corporate-blobs/corporate-blobs.thumb.webp +0 -0
  211. package/dist/catalog/composites/corporate-blobs/corporate-blobs.web.d.ts +37 -0
  212. package/dist/catalog/composites/corporate-blobs/corporate-blobs.web.d.ts.map +1 -0
  213. package/dist/catalog/composites/corporate-blobs/corporate-blobs.web.js +46 -0
  214. package/dist/catalog/composites/corporate-blobs/corporate-blobs.web.js.map +1 -0
  215. package/dist/catalog/composites/fairy-cave/fairy-cave.controls.d.ts +3 -0
  216. package/dist/catalog/composites/fairy-cave/fairy-cave.controls.d.ts.map +1 -0
  217. package/dist/catalog/composites/fairy-cave/fairy-cave.controls.js +13 -0
  218. package/dist/catalog/composites/fairy-cave/fairy-cave.controls.js.map +1 -0
  219. package/dist/catalog/composites/fairy-cave/fairy-cave.d.ts +42 -0
  220. package/dist/catalog/composites/fairy-cave/fairy-cave.d.ts.map +1 -0
  221. package/dist/catalog/composites/fairy-cave/fairy-cave.js +54 -0
  222. package/dist/catalog/composites/fairy-cave/fairy-cave.js.map +1 -0
  223. package/dist/catalog/composites/fairy-cave/fairy-cave.thumb.webp +0 -0
  224. package/dist/catalog/composites/fairy-cave/fairy-cave.web.d.ts +42 -0
  225. package/dist/catalog/composites/fairy-cave/fairy-cave.web.d.ts.map +1 -0
  226. package/dist/catalog/composites/fairy-cave/fairy-cave.web.js +51 -0
  227. package/dist/catalog/composites/fairy-cave/fairy-cave.web.js.map +1 -0
  228. package/dist/catalog/composites/fairy-grotto/fairy-grotto.controls.d.ts +3 -0
  229. package/dist/catalog/composites/fairy-grotto/fairy-grotto.controls.d.ts.map +1 -0
  230. package/dist/catalog/composites/fairy-grotto/fairy-grotto.controls.js +14 -0
  231. package/dist/catalog/composites/fairy-grotto/fairy-grotto.controls.js.map +1 -0
  232. package/dist/catalog/composites/fairy-grotto/fairy-grotto.d.ts +42 -0
  233. package/dist/catalog/composites/fairy-grotto/fairy-grotto.d.ts.map +1 -0
  234. package/dist/catalog/composites/fairy-grotto/fairy-grotto.js +55 -0
  235. package/dist/catalog/composites/fairy-grotto/fairy-grotto.js.map +1 -0
  236. package/dist/catalog/composites/fairy-grotto/fairy-grotto.thumb.webp +0 -0
  237. package/dist/catalog/composites/fairy-grotto/fairy-grotto.web.d.ts +42 -0
  238. package/dist/catalog/composites/fairy-grotto/fairy-grotto.web.d.ts.map +1 -0
  239. package/dist/catalog/composites/fairy-grotto/fairy-grotto.web.js +51 -0
  240. package/dist/catalog/composites/fairy-grotto/fairy-grotto.web.js.map +1 -0
  241. package/dist/catalog/composites/fairy-hollow/fairy-hollow.controls.d.ts +3 -0
  242. package/dist/catalog/composites/fairy-hollow/fairy-hollow.controls.d.ts.map +1 -0
  243. package/dist/catalog/composites/fairy-hollow/fairy-hollow.controls.js +14 -0
  244. package/dist/catalog/composites/fairy-hollow/fairy-hollow.controls.js.map +1 -0
  245. package/dist/catalog/composites/fairy-hollow/fairy-hollow.d.ts +42 -0
  246. package/dist/catalog/composites/fairy-hollow/fairy-hollow.d.ts.map +1 -0
  247. package/dist/catalog/composites/fairy-hollow/fairy-hollow.js +56 -0
  248. package/dist/catalog/composites/fairy-hollow/fairy-hollow.js.map +1 -0
  249. package/dist/catalog/composites/fairy-hollow/fairy-hollow.thumb.webp +0 -0
  250. package/dist/catalog/composites/fairy-hollow/fairy-hollow.web.d.ts +42 -0
  251. package/dist/catalog/composites/fairy-hollow/fairy-hollow.web.d.ts.map +1 -0
  252. package/dist/catalog/composites/fairy-hollow/fairy-hollow.web.js +51 -0
  253. package/dist/catalog/composites/fairy-hollow/fairy-hollow.web.js.map +1 -0
  254. package/dist/catalog/composites/nebula/nebula.controls.d.ts +3 -0
  255. package/dist/catalog/composites/nebula/nebula.controls.d.ts.map +1 -0
  256. package/dist/catalog/composites/nebula/nebula.controls.js +11 -0
  257. package/dist/catalog/composites/nebula/nebula.controls.js.map +1 -0
  258. package/dist/catalog/composites/nebula/nebula.d.ts +22 -0
  259. package/dist/catalog/composites/nebula/nebula.d.ts.map +1 -0
  260. package/dist/catalog/composites/nebula/nebula.js +38 -0
  261. package/dist/catalog/composites/nebula/nebula.js.map +1 -0
  262. package/dist/catalog/composites/nebula/nebula.thumb.webp +0 -0
  263. package/dist/catalog/composites/nebula/nebula.web.d.ts +22 -0
  264. package/dist/catalog/composites/nebula/nebula.web.d.ts.map +1 -0
  265. package/dist/catalog/composites/nebula/nebula.web.js +34 -0
  266. package/dist/catalog/composites/nebula/nebula.web.js.map +1 -0
  267. package/dist/catalog/composites/observation-deck/observation-deck.controls.d.ts +3 -0
  268. package/dist/catalog/composites/observation-deck/observation-deck.controls.d.ts.map +1 -0
  269. package/dist/catalog/composites/observation-deck/observation-deck.controls.js +13 -0
  270. package/dist/catalog/composites/observation-deck/observation-deck.controls.js.map +1 -0
  271. package/dist/catalog/composites/observation-deck/observation-deck.d.ts +41 -0
  272. package/dist/catalog/composites/observation-deck/observation-deck.d.ts.map +1 -0
  273. package/dist/catalog/composites/observation-deck/observation-deck.js +60 -0
  274. package/dist/catalog/composites/observation-deck/observation-deck.js.map +1 -0
  275. package/dist/catalog/composites/observation-deck/observation-deck.thumb.webp +0 -0
  276. package/dist/catalog/composites/observation-deck/observation-deck.web.d.ts +41 -0
  277. package/dist/catalog/composites/observation-deck/observation-deck.web.d.ts.map +1 -0
  278. package/dist/catalog/composites/observation-deck/observation-deck.web.js +54 -0
  279. package/dist/catalog/composites/observation-deck/observation-deck.web.js.map +1 -0
  280. package/dist/catalog/composites/simianlights/simianlights.controls.d.ts +3 -0
  281. package/dist/catalog/composites/simianlights/simianlights.controls.d.ts.map +1 -0
  282. package/dist/catalog/composites/simianlights/simianlights.controls.js +11 -0
  283. package/dist/catalog/composites/simianlights/simianlights.controls.js.map +1 -0
  284. package/dist/catalog/composites/simianlights/simianlights.d.ts +22 -0
  285. package/dist/catalog/composites/simianlights/simianlights.d.ts.map +1 -0
  286. package/dist/catalog/composites/simianlights/simianlights.js +30 -0
  287. package/dist/catalog/composites/simianlights/simianlights.js.map +1 -0
  288. package/dist/catalog/composites/simianlights/simianlights.thumb.webp +0 -0
  289. package/dist/catalog/composites/simianlights/simianlights.web.d.ts +22 -0
  290. package/dist/catalog/composites/simianlights/simianlights.web.d.ts.map +1 -0
  291. package/dist/catalog/composites/simianlights/simianlights.web.js +33 -0
  292. package/dist/catalog/composites/simianlights/simianlights.web.js.map +1 -0
  293. package/dist/catalog/composites/underwater/underwater.controls.d.ts +3 -0
  294. package/dist/catalog/composites/underwater/underwater.controls.d.ts.map +1 -0
  295. package/dist/catalog/composites/underwater/underwater.controls.js +11 -0
  296. package/dist/catalog/composites/underwater/underwater.controls.js.map +1 -0
  297. package/dist/catalog/composites/underwater/underwater.d.ts +30 -0
  298. package/dist/catalog/composites/underwater/underwater.d.ts.map +1 -0
  299. package/dist/catalog/composites/underwater/underwater.js +43 -0
  300. package/dist/catalog/composites/underwater/underwater.js.map +1 -0
  301. package/dist/catalog/composites/underwater/underwater.thumb.webp +0 -0
  302. package/dist/catalog/composites/underwater/underwater.web.d.ts +30 -0
  303. package/dist/catalog/composites/underwater/underwater.web.d.ts.map +1 -0
  304. package/dist/catalog/composites/underwater/underwater.web.js +40 -0
  305. package/dist/catalog/composites/underwater/underwater.web.js.map +1 -0
  306. package/dist/catalog/composites/wizard-tower/wizard-tower.controls.d.ts +3 -0
  307. package/dist/catalog/composites/wizard-tower/wizard-tower.controls.d.ts.map +1 -0
  308. package/dist/catalog/composites/wizard-tower/wizard-tower.controls.js +15 -0
  309. package/dist/catalog/composites/wizard-tower/wizard-tower.controls.js.map +1 -0
  310. package/dist/catalog/composites/wizard-tower/wizard-tower.d.ts +31 -0
  311. package/dist/catalog/composites/wizard-tower/wizard-tower.d.ts.map +1 -0
  312. package/dist/catalog/composites/wizard-tower/wizard-tower.js +45 -0
  313. package/dist/catalog/composites/wizard-tower/wizard-tower.js.map +1 -0
  314. package/dist/catalog/composites/wizard-tower/wizard-tower.thumb.webp +0 -0
  315. package/dist/catalog/composites/wizard-tower/wizard-tower.web.d.ts +31 -0
  316. package/dist/catalog/composites/wizard-tower/wizard-tower.web.d.ts.map +1 -0
  317. package/dist/catalog/composites/wizard-tower/wizard-tower.web.js +39 -0
  318. package/dist/catalog/composites/wizard-tower/wizard-tower.web.js.map +1 -0
  319. package/dist/catalog/composites/wizard-tower-night/wizard-tower-night.controls.d.ts +3 -0
  320. package/dist/catalog/composites/wizard-tower-night/wizard-tower-night.controls.d.ts.map +1 -0
  321. package/dist/catalog/composites/wizard-tower-night/wizard-tower-night.controls.js +14 -0
  322. package/dist/catalog/composites/wizard-tower-night/wizard-tower-night.controls.js.map +1 -0
  323. package/dist/catalog/composites/wizard-tower-night/wizard-tower-night.d.ts +31 -0
  324. package/dist/catalog/composites/wizard-tower-night/wizard-tower-night.d.ts.map +1 -0
  325. package/dist/catalog/composites/wizard-tower-night/wizard-tower-night.js +44 -0
  326. package/dist/catalog/composites/wizard-tower-night/wizard-tower-night.js.map +1 -0
  327. package/dist/catalog/composites/wizard-tower-night/wizard-tower-night.thumb.webp +0 -0
  328. package/dist/catalog/composites/wizard-tower-night/wizard-tower-night.web.d.ts +31 -0
  329. package/dist/catalog/composites/wizard-tower-night/wizard-tower-night.web.d.ts.map +1 -0
  330. package/dist/catalog/composites/wizard-tower-night/wizard-tower-night.web.js +39 -0
  331. package/dist/catalog/composites/wizard-tower-night/wizard-tower-night.web.js.map +1 -0
  332. package/dist/catalog/images/corporate/corporate-logo.d.ts +3 -0
  333. package/dist/catalog/images/corporate/corporate-logo.d.ts.map +1 -0
  334. package/dist/catalog/images/corporate/corporate-logo.js +8 -0
  335. package/dist/catalog/images/corporate/corporate-logo.js.map +1 -0
  336. package/dist/catalog/images/corporate/corporate-logo.thumb.webp +0 -0
  337. package/dist/catalog/images/corporate/corporate-logo.web.d.ts +3 -0
  338. package/dist/catalog/images/corporate/corporate-logo.web.d.ts.map +1 -0
  339. package/dist/catalog/images/corporate/corporate-logo.web.js +12 -0
  340. package/dist/catalog/images/corporate/corporate-logo.web.js.map +1 -0
  341. package/dist/catalog/images/corporate/corporate-logo.webp +0 -0
  342. package/dist/catalog/images/debug/debug-resolutions.d.ts +3 -0
  343. package/dist/catalog/images/debug/debug-resolutions.d.ts.map +1 -0
  344. package/dist/catalog/images/debug/debug-resolutions.js +8 -0
  345. package/dist/catalog/images/debug/debug-resolutions.js.map +1 -0
  346. package/dist/catalog/images/debug/debug-resolutions.thumb.webp +0 -0
  347. package/dist/catalog/images/debug/debug-resolutions.web.d.ts +3 -0
  348. package/dist/catalog/images/debug/debug-resolutions.web.d.ts.map +1 -0
  349. package/dist/catalog/images/debug/debug-resolutions.web.js +12 -0
  350. package/dist/catalog/images/debug/debug-resolutions.web.js.map +1 -0
  351. package/dist/catalog/images/fairy-caves/grotto.d.ts +3 -0
  352. package/dist/catalog/images/fairy-caves/grotto.d.ts.map +1 -0
  353. package/dist/catalog/images/fairy-caves/grotto.js +8 -0
  354. package/dist/catalog/images/fairy-caves/grotto.js.map +1 -0
  355. package/dist/catalog/images/fairy-caves/grotto.thumb.webp +0 -0
  356. package/dist/catalog/images/fairy-caves/grotto.web.d.ts +3 -0
  357. package/dist/catalog/images/fairy-caves/grotto.web.d.ts.map +1 -0
  358. package/dist/catalog/images/fairy-caves/grotto.web.js +12 -0
  359. package/dist/catalog/images/fairy-caves/grotto.web.js.map +1 -0
  360. package/dist/catalog/images/fairy-caves/grotto.webp +0 -0
  361. package/dist/catalog/images/fairy-caves/hollow.d.ts +3 -0
  362. package/dist/catalog/images/fairy-caves/hollow.d.ts.map +1 -0
  363. package/dist/catalog/images/fairy-caves/hollow.js +8 -0
  364. package/dist/catalog/images/fairy-caves/hollow.js.map +1 -0
  365. package/dist/catalog/images/fairy-caves/hollow.thumb.webp +0 -0
  366. package/dist/catalog/images/fairy-caves/hollow.web.d.ts +3 -0
  367. package/dist/catalog/images/fairy-caves/hollow.web.d.ts.map +1 -0
  368. package/dist/catalog/images/fairy-caves/hollow.web.js +12 -0
  369. package/dist/catalog/images/fairy-caves/hollow.web.js.map +1 -0
  370. package/dist/catalog/images/fairy-caves/hollow.webp +0 -0
  371. package/dist/catalog/images/fairy-caves/treehouse-2.d.ts +3 -0
  372. package/dist/catalog/images/fairy-caves/treehouse-2.d.ts.map +1 -0
  373. package/dist/catalog/images/fairy-caves/treehouse-2.js +8 -0
  374. package/dist/catalog/images/fairy-caves/treehouse-2.js.map +1 -0
  375. package/dist/catalog/images/fairy-caves/treehouse-2.thumb.webp +0 -0
  376. package/dist/catalog/images/fairy-caves/treehouse-2.web.d.ts +3 -0
  377. package/dist/catalog/images/fairy-caves/treehouse-2.web.d.ts.map +1 -0
  378. package/dist/catalog/images/fairy-caves/treehouse-2.web.js +12 -0
  379. package/dist/catalog/images/fairy-caves/treehouse-2.web.js.map +1 -0
  380. package/dist/catalog/images/fairy-caves/treehouse-2.webp +0 -0
  381. package/dist/catalog/images/fairy-caves/treehouse-3.d.ts +3 -0
  382. package/dist/catalog/images/fairy-caves/treehouse-3.d.ts.map +1 -0
  383. package/dist/catalog/images/fairy-caves/treehouse-3.js +8 -0
  384. package/dist/catalog/images/fairy-caves/treehouse-3.js.map +1 -0
  385. package/dist/catalog/images/fairy-caves/treehouse-3.thumb.webp +0 -0
  386. package/dist/catalog/images/fairy-caves/treehouse-3.web.d.ts +3 -0
  387. package/dist/catalog/images/fairy-caves/treehouse-3.web.d.ts.map +1 -0
  388. package/dist/catalog/images/fairy-caves/treehouse-3.web.js +12 -0
  389. package/dist/catalog/images/fairy-caves/treehouse-3.web.js.map +1 -0
  390. package/dist/catalog/images/fairy-caves/treehouse-3.webp +0 -0
  391. package/dist/catalog/images/fairy-caves/treehouse.d.ts +3 -0
  392. package/dist/catalog/images/fairy-caves/treehouse.d.ts.map +1 -0
  393. package/dist/catalog/images/fairy-caves/treehouse.js +8 -0
  394. package/dist/catalog/images/fairy-caves/treehouse.js.map +1 -0
  395. package/dist/catalog/images/fairy-caves/treehouse.thumb.webp +0 -0
  396. package/dist/catalog/images/fairy-caves/treehouse.web.d.ts +3 -0
  397. package/dist/catalog/images/fairy-caves/treehouse.web.d.ts.map +1 -0
  398. package/dist/catalog/images/fairy-caves/treehouse.web.js +12 -0
  399. package/dist/catalog/images/fairy-caves/treehouse.web.js.map +1 -0
  400. package/dist/catalog/images/fairy-caves/treehouse.webp +0 -0
  401. package/dist/catalog/images/home/home-dark.d.ts +3 -0
  402. package/dist/catalog/images/home/home-dark.d.ts.map +1 -0
  403. package/dist/catalog/images/home/home-dark.js +8 -0
  404. package/dist/catalog/images/home/home-dark.js.map +1 -0
  405. package/dist/catalog/images/home/home-dark.thumb.webp +0 -0
  406. package/dist/catalog/images/home/home-dark.web.d.ts +3 -0
  407. package/dist/catalog/images/home/home-dark.web.d.ts.map +1 -0
  408. package/dist/catalog/images/home/home-dark.web.js +12 -0
  409. package/dist/catalog/images/home/home-dark.web.js.map +1 -0
  410. package/dist/catalog/images/home/home-light.d.ts +3 -0
  411. package/dist/catalog/images/home/home-light.d.ts.map +1 -0
  412. package/dist/catalog/images/home/home-light.js +8 -0
  413. package/dist/catalog/images/home/home-light.js.map +1 -0
  414. package/dist/catalog/images/home/home-light.thumb.webp +0 -0
  415. package/dist/catalog/images/home/home-light.web.d.ts +3 -0
  416. package/dist/catalog/images/home/home-light.web.d.ts.map +1 -0
  417. package/dist/catalog/images/home/home-light.web.js +12 -0
  418. package/dist/catalog/images/home/home-light.web.js.map +1 -0
  419. package/dist/catalog/images/image-ids.d.ts +3 -0
  420. package/dist/catalog/images/image-ids.d.ts.map +1 -0
  421. package/dist/catalog/images/image-ids.js +43 -0
  422. package/dist/catalog/images/image-ids.js.map +1 -0
  423. package/dist/catalog/images/image.types.d.ts +2 -0
  424. package/dist/catalog/images/image.types.d.ts.map +1 -0
  425. package/dist/catalog/images/image.types.js +3 -0
  426. package/dist/catalog/images/image.types.js.map +1 -0
  427. package/dist/catalog/images/index.d.ts +3 -0
  428. package/dist/catalog/images/index.d.ts.map +1 -0
  429. package/dist/catalog/images/index.js +10 -0
  430. package/dist/catalog/images/index.js.map +1 -0
  431. package/dist/catalog/images/nature/landscape-dark.d.ts +3 -0
  432. package/dist/catalog/images/nature/landscape-dark.d.ts.map +1 -0
  433. package/dist/catalog/images/nature/landscape-dark.js +8 -0
  434. package/dist/catalog/images/nature/landscape-dark.js.map +1 -0
  435. package/dist/catalog/images/nature/landscape-dark.thumb.webp +0 -0
  436. package/dist/catalog/images/nature/landscape-dark.web.d.ts +3 -0
  437. package/dist/catalog/images/nature/landscape-dark.web.d.ts.map +1 -0
  438. package/dist/catalog/images/nature/landscape-dark.web.js +12 -0
  439. package/dist/catalog/images/nature/landscape-dark.web.js.map +1 -0
  440. package/dist/catalog/images/nature/landscape-light.d.ts +3 -0
  441. package/dist/catalog/images/nature/landscape-light.d.ts.map +1 -0
  442. package/dist/catalog/images/nature/landscape-light.js +8 -0
  443. package/dist/catalog/images/nature/landscape-light.js.map +1 -0
  444. package/dist/catalog/images/nature/landscape-light.thumb.webp +0 -0
  445. package/dist/catalog/images/nature/landscape-light.web.d.ts +3 -0
  446. package/dist/catalog/images/nature/landscape-light.web.d.ts.map +1 -0
  447. package/dist/catalog/images/nature/landscape-light.web.js +12 -0
  448. package/dist/catalog/images/nature/landscape-light.web.js.map +1 -0
  449. package/dist/catalog/images/office/office-dark.d.ts +3 -0
  450. package/dist/catalog/images/office/office-dark.d.ts.map +1 -0
  451. package/dist/catalog/images/office/office-dark.js +8 -0
  452. package/dist/catalog/images/office/office-dark.js.map +1 -0
  453. package/dist/catalog/images/office/office-dark.thumb.webp +0 -0
  454. package/dist/catalog/images/office/office-dark.web.d.ts +3 -0
  455. package/dist/catalog/images/office/office-dark.web.d.ts.map +1 -0
  456. package/dist/catalog/images/office/office-dark.web.js +12 -0
  457. package/dist/catalog/images/office/office-dark.web.js.map +1 -0
  458. package/dist/catalog/images/office/office-light.d.ts +3 -0
  459. package/dist/catalog/images/office/office-light.d.ts.map +1 -0
  460. package/dist/catalog/images/office/office-light.js +8 -0
  461. package/dist/catalog/images/office/office-light.js.map +1 -0
  462. package/dist/catalog/images/office/office-light.thumb.webp +0 -0
  463. package/dist/catalog/images/office/office-light.web.d.ts +3 -0
  464. package/dist/catalog/images/office/office-light.web.d.ts.map +1 -0
  465. package/dist/catalog/images/office/office-light.web.js +12 -0
  466. package/dist/catalog/images/office/office-light.web.js.map +1 -0
  467. package/dist/catalog/images/sci-fi/sci-fi-light.d.ts +3 -0
  468. package/dist/catalog/images/sci-fi/sci-fi-light.d.ts.map +1 -0
  469. package/dist/catalog/images/sci-fi/sci-fi-light.js +8 -0
  470. package/dist/catalog/images/sci-fi/sci-fi-light.js.map +1 -0
  471. package/dist/catalog/images/sci-fi/sci-fi-light.thumb.webp +0 -0
  472. package/dist/catalog/images/sci-fi/sci-fi-light.web.d.ts +3 -0
  473. package/dist/catalog/images/sci-fi/sci-fi-light.web.d.ts.map +1 -0
  474. package/dist/catalog/images/sci-fi/sci-fi-light.web.js +12 -0
  475. package/dist/catalog/images/sci-fi/sci-fi-light.web.js.map +1 -0
  476. package/dist/catalog/images/simiancraft/simiancraft-dark-transparency.d.ts +3 -0
  477. package/dist/catalog/images/simiancraft/simiancraft-dark-transparency.d.ts.map +1 -0
  478. package/dist/catalog/images/simiancraft/simiancraft-dark-transparency.js +8 -0
  479. package/dist/catalog/images/simiancraft/simiancraft-dark-transparency.js.map +1 -0
  480. package/dist/catalog/images/simiancraft/simiancraft-dark-transparency.thumb.webp +0 -0
  481. package/dist/catalog/images/simiancraft/simiancraft-dark-transparency.web.d.ts +3 -0
  482. package/dist/catalog/images/simiancraft/simiancraft-dark-transparency.web.d.ts.map +1 -0
  483. package/dist/catalog/images/simiancraft/simiancraft-dark-transparency.web.js +12 -0
  484. package/dist/catalog/images/simiancraft/simiancraft-dark-transparency.web.js.map +1 -0
  485. package/dist/catalog/images/simiancraft/simiancraft-dark-transparency.webp +0 -0
  486. package/dist/catalog/images/simiancraft/simiancraft-dark.d.ts +3 -0
  487. package/dist/catalog/images/simiancraft/simiancraft-dark.d.ts.map +1 -0
  488. package/dist/catalog/images/simiancraft/simiancraft-dark.js +8 -0
  489. package/dist/catalog/images/simiancraft/simiancraft-dark.js.map +1 -0
  490. package/dist/catalog/images/simiancraft/simiancraft-dark.thumb.webp +0 -0
  491. package/dist/catalog/images/simiancraft/simiancraft-dark.web.d.ts +3 -0
  492. package/dist/catalog/images/simiancraft/simiancraft-dark.web.d.ts.map +1 -0
  493. package/dist/catalog/images/simiancraft/simiancraft-dark.web.js +12 -0
  494. package/dist/catalog/images/simiancraft/simiancraft-dark.web.js.map +1 -0
  495. package/dist/catalog/images/simiancraft/simiancraft-light-transparency.d.ts +3 -0
  496. package/dist/catalog/images/simiancraft/simiancraft-light-transparency.d.ts.map +1 -0
  497. package/dist/catalog/images/simiancraft/simiancraft-light-transparency.js +8 -0
  498. package/dist/catalog/images/simiancraft/simiancraft-light-transparency.js.map +1 -0
  499. package/dist/catalog/images/simiancraft/simiancraft-light-transparency.thumb.webp +0 -0
  500. package/dist/catalog/images/simiancraft/simiancraft-light-transparency.web.d.ts +3 -0
  501. package/dist/catalog/images/simiancraft/simiancraft-light-transparency.web.d.ts.map +1 -0
  502. package/dist/catalog/images/simiancraft/simiancraft-light-transparency.web.js +12 -0
  503. package/dist/catalog/images/simiancraft/simiancraft-light-transparency.web.js.map +1 -0
  504. package/dist/catalog/images/simiancraft/simiancraft-light-transparency.webp +0 -0
  505. package/dist/catalog/images/simiancraft/simiancraft-light.d.ts +3 -0
  506. package/dist/catalog/images/simiancraft/simiancraft-light.d.ts.map +1 -0
  507. package/dist/catalog/images/simiancraft/simiancraft-light.js +8 -0
  508. package/dist/catalog/images/simiancraft/simiancraft-light.js.map +1 -0
  509. package/dist/catalog/images/simiancraft/simiancraft-light.thumb.webp +0 -0
  510. package/dist/catalog/images/simiancraft/simiancraft-light.web.d.ts +3 -0
  511. package/dist/catalog/images/simiancraft/simiancraft-light.web.d.ts.map +1 -0
  512. package/dist/catalog/images/simiancraft/simiancraft-light.web.js +12 -0
  513. package/dist/catalog/images/simiancraft/simiancraft-light.web.js.map +1 -0
  514. package/dist/catalog/images/spaceship/observation-deck.d.ts +3 -0
  515. package/dist/catalog/images/spaceship/observation-deck.d.ts.map +1 -0
  516. package/dist/catalog/images/spaceship/observation-deck.js +8 -0
  517. package/dist/catalog/images/spaceship/observation-deck.js.map +1 -0
  518. package/dist/catalog/images/spaceship/observation-deck.thumb.webp +0 -0
  519. package/dist/catalog/images/spaceship/observation-deck.web.d.ts +3 -0
  520. package/dist/catalog/images/spaceship/observation-deck.web.d.ts.map +1 -0
  521. package/dist/catalog/images/spaceship/observation-deck.web.js +12 -0
  522. package/dist/catalog/images/spaceship/observation-deck.web.js.map +1 -0
  523. package/dist/catalog/images/spaceship/observation-deck.webp +0 -0
  524. package/dist/catalog/images/underwater/oceanscape-dark.d.ts +3 -0
  525. package/dist/catalog/images/underwater/oceanscape-dark.d.ts.map +1 -0
  526. package/dist/catalog/images/underwater/oceanscape-dark.js +8 -0
  527. package/dist/catalog/images/underwater/oceanscape-dark.js.map +1 -0
  528. package/dist/catalog/images/underwater/oceanscape-dark.thumb.webp +0 -0
  529. package/dist/catalog/images/underwater/oceanscape-dark.web.d.ts +3 -0
  530. package/dist/catalog/images/underwater/oceanscape-dark.web.d.ts.map +1 -0
  531. package/dist/catalog/images/underwater/oceanscape-dark.web.js +12 -0
  532. package/dist/catalog/images/underwater/oceanscape-dark.web.js.map +1 -0
  533. package/dist/catalog/images/underwater/oceanscape-dark.webp +0 -0
  534. package/dist/catalog/images/wizard-tower/wizard-tower-1.d.ts +3 -0
  535. package/dist/catalog/images/wizard-tower/wizard-tower-1.d.ts.map +1 -0
  536. package/dist/catalog/images/wizard-tower/wizard-tower-1.js +8 -0
  537. package/dist/catalog/images/wizard-tower/wizard-tower-1.js.map +1 -0
  538. package/dist/catalog/images/wizard-tower/wizard-tower-1.thumb.webp +0 -0
  539. package/dist/catalog/images/wizard-tower/wizard-tower-1.web.d.ts +3 -0
  540. package/dist/catalog/images/wizard-tower/wizard-tower-1.web.d.ts.map +1 -0
  541. package/dist/catalog/images/wizard-tower/wizard-tower-1.web.js +12 -0
  542. package/dist/catalog/images/wizard-tower/wizard-tower-1.web.js.map +1 -0
  543. package/dist/catalog/images/wizard-tower/wizard-tower-1.webp +0 -0
  544. package/dist/catalog/images/wizard-tower/wizard-tower-2.d.ts +3 -0
  545. package/dist/catalog/images/wizard-tower/wizard-tower-2.d.ts.map +1 -0
  546. package/dist/catalog/images/wizard-tower/wizard-tower-2.js +8 -0
  547. package/dist/catalog/images/wizard-tower/wizard-tower-2.js.map +1 -0
  548. package/dist/catalog/images/wizard-tower/wizard-tower-2.thumb.webp +0 -0
  549. package/dist/catalog/images/wizard-tower/wizard-tower-2.web.d.ts +3 -0
  550. package/dist/catalog/images/wizard-tower/wizard-tower-2.web.d.ts.map +1 -0
  551. package/dist/catalog/images/wizard-tower/wizard-tower-2.web.js +12 -0
  552. package/dist/catalog/images/wizard-tower/wizard-tower-2.web.js.map +1 -0
  553. package/dist/catalog/images/wizard-tower/wizard-tower-2.webp +0 -0
  554. package/dist/catalog/images/wizard-tower/wizard-tower-night.d.ts +3 -0
  555. package/dist/catalog/images/wizard-tower/wizard-tower-night.d.ts.map +1 -0
  556. package/dist/catalog/images/wizard-tower/wizard-tower-night.js +8 -0
  557. package/dist/catalog/images/wizard-tower/wizard-tower-night.js.map +1 -0
  558. package/dist/catalog/images/wizard-tower/wizard-tower-night.thumb.webp +0 -0
  559. package/dist/catalog/images/wizard-tower/wizard-tower-night.web.d.ts +3 -0
  560. package/dist/catalog/images/wizard-tower/wizard-tower-night.web.d.ts.map +1 -0
  561. package/dist/catalog/images/wizard-tower/wizard-tower-night.web.js +12 -0
  562. package/dist/catalog/images/wizard-tower/wizard-tower-night.web.js.map +1 -0
  563. package/dist/catalog/images/wizard-tower/wizard-tower-night.webp +0 -0
  564. package/dist/catalog/shaders/_shared/types.d.ts +38 -0
  565. package/dist/catalog/shaders/_shared/types.d.ts.map +1 -0
  566. package/dist/catalog/shaders/_shared/types.js +15 -0
  567. package/dist/catalog/shaders/_shared/types.js.map +1 -0
  568. package/dist/catalog/shaders/anamorphic-lensflare/anamorphic-lensflare.d.ts +26 -0
  569. package/dist/catalog/shaders/anamorphic-lensflare/anamorphic-lensflare.d.ts.map +1 -0
  570. package/dist/catalog/shaders/anamorphic-lensflare/anamorphic-lensflare.form.d.ts +3 -0
  571. package/dist/catalog/shaders/anamorphic-lensflare/anamorphic-lensflare.form.d.ts.map +1 -0
  572. package/dist/catalog/shaders/anamorphic-lensflare/anamorphic-lensflare.form.js +15 -0
  573. package/dist/catalog/shaders/anamorphic-lensflare/anamorphic-lensflare.form.js.map +1 -0
  574. package/dist/catalog/shaders/anamorphic-lensflare/anamorphic-lensflare.js +84 -0
  575. package/dist/catalog/shaders/anamorphic-lensflare/anamorphic-lensflare.js.map +1 -0
  576. package/dist/catalog/shaders/blur/blur.d.ts +15 -0
  577. package/dist/catalog/shaders/blur/blur.d.ts.map +1 -0
  578. package/dist/catalog/shaders/blur/blur.form.d.ts +3 -0
  579. package/dist/catalog/shaders/blur/blur.form.d.ts.map +1 -0
  580. package/dist/catalog/shaders/blur/blur.form.js +15 -0
  581. package/dist/catalog/shaders/blur/blur.form.js.map +1 -0
  582. package/dist/catalog/shaders/blur/blur.js +27 -0
  583. package/dist/catalog/shaders/blur/blur.js.map +1 -0
  584. package/dist/catalog/shaders/clouds/clouds.d.ts +34 -0
  585. package/dist/catalog/shaders/clouds/clouds.d.ts.map +1 -0
  586. package/dist/catalog/shaders/clouds/clouds.form.d.ts +3 -0
  587. package/dist/catalog/shaders/clouds/clouds.form.d.ts.map +1 -0
  588. package/dist/catalog/shaders/clouds/clouds.form.js +15 -0
  589. package/dist/catalog/shaders/clouds/clouds.form.js.map +1 -0
  590. package/dist/catalog/shaders/clouds/clouds.js +98 -0
  591. package/dist/catalog/shaders/clouds/clouds.js.map +1 -0
  592. package/dist/catalog/shaders/corporate-blobs/corporate-blobs.d.ts +40 -0
  593. package/dist/catalog/shaders/corporate-blobs/corporate-blobs.d.ts.map +1 -0
  594. package/dist/catalog/shaders/corporate-blobs/corporate-blobs.form.d.ts +3 -0
  595. package/dist/catalog/shaders/corporate-blobs/corporate-blobs.form.d.ts.map +1 -0
  596. package/dist/catalog/shaders/corporate-blobs/corporate-blobs.form.js +15 -0
  597. package/dist/catalog/shaders/corporate-blobs/corporate-blobs.form.js.map +1 -0
  598. package/dist/catalog/shaders/corporate-blobs/corporate-blobs.js +100 -0
  599. package/dist/catalog/shaders/corporate-blobs/corporate-blobs.js.map +1 -0
  600. package/dist/catalog/shaders/fireflies/fireflies.d.ts +18 -0
  601. package/dist/catalog/shaders/fireflies/fireflies.d.ts.map +1 -0
  602. package/dist/catalog/shaders/fireflies/fireflies.form.d.ts +3 -0
  603. package/dist/catalog/shaders/fireflies/fireflies.form.d.ts.map +1 -0
  604. package/dist/catalog/shaders/fireflies/fireflies.form.js +15 -0
  605. package/dist/catalog/shaders/fireflies/fireflies.form.js.map +1 -0
  606. package/dist/catalog/shaders/fireflies/fireflies.js +47 -0
  607. package/dist/catalog/shaders/fireflies/fireflies.js.map +1 -0
  608. package/dist/catalog/shaders/godrays/godrays.d.ts +26 -0
  609. package/dist/catalog/shaders/godrays/godrays.d.ts.map +1 -0
  610. package/dist/catalog/shaders/godrays/godrays.form.d.ts +3 -0
  611. package/dist/catalog/shaders/godrays/godrays.form.d.ts.map +1 -0
  612. package/dist/catalog/shaders/godrays/godrays.form.js +15 -0
  613. package/dist/catalog/shaders/godrays/godrays.form.js.map +1 -0
  614. package/dist/catalog/shaders/godrays/godrays.js +83 -0
  615. package/dist/catalog/shaders/godrays/godrays.js.map +1 -0
  616. package/dist/catalog/shaders/index.d.ts +73 -0
  617. package/dist/catalog/shaders/index.d.ts.map +1 -0
  618. package/dist/catalog/shaders/index.js +30 -0
  619. package/dist/catalog/shaders/index.js.map +1 -0
  620. package/dist/catalog/shaders/light-beams-and-motes/light-beams-and-motes.d.ts +44 -0
  621. package/dist/catalog/shaders/light-beams-and-motes/light-beams-and-motes.d.ts.map +1 -0
  622. package/dist/catalog/shaders/light-beams-and-motes/light-beams-and-motes.form.d.ts +3 -0
  623. package/dist/catalog/shaders/light-beams-and-motes/light-beams-and-motes.form.d.ts.map +1 -0
  624. package/dist/catalog/shaders/light-beams-and-motes/light-beams-and-motes.form.js +16 -0
  625. package/dist/catalog/shaders/light-beams-and-motes/light-beams-and-motes.form.js.map +1 -0
  626. package/dist/catalog/shaders/light-beams-and-motes/light-beams-and-motes.js +91 -0
  627. package/dist/catalog/shaders/light-beams-and-motes/light-beams-and-motes.js.map +1 -0
  628. package/dist/catalog/shaders/nebula/nebula.d.ts +20 -0
  629. package/dist/catalog/shaders/nebula/nebula.d.ts.map +1 -0
  630. package/dist/catalog/shaders/nebula/nebula.form.d.ts +3 -0
  631. package/dist/catalog/shaders/nebula/nebula.form.d.ts.map +1 -0
  632. package/dist/catalog/shaders/nebula/nebula.form.js +15 -0
  633. package/dist/catalog/shaders/nebula/nebula.form.js.map +1 -0
  634. package/dist/catalog/shaders/nebula/nebula.js +58 -0
  635. package/dist/catalog/shaders/nebula/nebula.js.map +1 -0
  636. package/dist/catalog/shaders/plasma/plasma.d.ts +16 -0
  637. package/dist/catalog/shaders/plasma/plasma.d.ts.map +1 -0
  638. package/dist/catalog/shaders/plasma/plasma.form.d.ts +3 -0
  639. package/dist/catalog/shaders/plasma/plasma.form.d.ts.map +1 -0
  640. package/dist/catalog/shaders/plasma/plasma.form.js +15 -0
  641. package/dist/catalog/shaders/plasma/plasma.form.js.map +1 -0
  642. package/dist/catalog/shaders/plasma/plasma.js +32 -0
  643. package/dist/catalog/shaders/plasma/plasma.js.map +1 -0
  644. package/dist/catalog/shaders/simianlights/simianlights.d.ts +20 -0
  645. package/dist/catalog/shaders/simianlights/simianlights.d.ts.map +1 -0
  646. package/dist/catalog/shaders/simianlights/simianlights.form.d.ts +3 -0
  647. package/dist/catalog/shaders/simianlights/simianlights.form.d.ts.map +1 -0
  648. package/dist/catalog/shaders/simianlights/simianlights.form.js +15 -0
  649. package/dist/catalog/shaders/simianlights/simianlights.form.js.map +1 -0
  650. package/dist/catalog/shaders/simianlights/simianlights.js +57 -0
  651. package/dist/catalog/shaders/simianlights/simianlights.js.map +1 -0
  652. package/dist/src/components/form/control-form.d.ts +37 -0
  653. package/dist/src/components/form/control-form.d.ts.map +1 -0
  654. package/dist/src/components/form/control-form.js +55 -0
  655. package/dist/src/components/form/control-form.js.map +1 -0
  656. package/dist/src/components/form/make-controls.d.ts +22 -0
  657. package/dist/src/components/form/make-controls.d.ts.map +1 -0
  658. package/dist/src/components/form/make-controls.js +19 -0
  659. package/dist/src/components/form/make-controls.js.map +1 -0
  660. package/dist/src/components/form/scope.d.ts +2 -0
  661. package/dist/src/components/form/scope.d.ts.map +1 -0
  662. package/dist/src/components/form/scope.js +11 -0
  663. package/dist/src/components/form/scope.js.map +1 -0
  664. package/dist/src/components/form/use-field.d.ts +10 -0
  665. package/dist/src/components/form/use-field.d.ts.map +1 -0
  666. package/dist/src/components/form/use-field.js +27 -0
  667. package/dist/src/components/form/use-field.js.map +1 -0
  668. package/dist/src/components/preset-book-menu/index.d.ts +52 -0
  669. package/dist/src/components/preset-book-menu/index.d.ts.map +1 -0
  670. package/dist/src/components/preset-book-menu/index.js +152 -0
  671. package/dist/src/components/preset-book-menu/index.js.map +1 -0
  672. package/dist/src/components/preset-book-menu/layout.d.ts +25 -0
  673. package/dist/src/components/preset-book-menu/layout.d.ts.map +1 -0
  674. package/dist/src/components/preset-book-menu/layout.js +19 -0
  675. package/dist/src/components/preset-book-menu/layout.js.map +1 -0
  676. package/dist/src/components/preset-book-menu/preset-book-menu.types.d.ts +88 -0
  677. package/dist/src/components/preset-book-menu/preset-book-menu.types.d.ts.map +1 -0
  678. package/dist/src/components/preset-book-menu/preset-book-menu.types.js +14 -0
  679. package/dist/src/components/preset-book-menu/preset-book-menu.types.js.map +1 -0
  680. package/dist/src/components/preset-book-menu/preset-grid.d.ts +16 -0
  681. package/dist/src/components/preset-book-menu/preset-grid.d.ts.map +1 -0
  682. package/dist/src/components/preset-book-menu/preset-grid.js +49 -0
  683. package/dist/src/components/preset-book-menu/preset-grid.js.map +1 -0
  684. package/dist/src/components/preset-book-menu/resolve-image-uri.d.ts +3 -0
  685. package/dist/src/components/preset-book-menu/resolve-image-uri.d.ts.map +1 -0
  686. package/dist/src/components/preset-book-menu/resolve-image-uri.js +28 -0
  687. package/dist/src/components/preset-book-menu/resolve-image-uri.js.map +1 -0
  688. package/dist/src/components/preset-book-menu/resolve-image-uri.types.d.ts +13 -0
  689. package/dist/src/components/preset-book-menu/resolve-image-uri.types.d.ts.map +1 -0
  690. package/dist/src/components/preset-book-menu/resolve-image-uri.types.js +5 -0
  691. package/dist/src/components/preset-book-menu/resolve-image-uri.types.js.map +1 -0
  692. package/dist/src/components/preset-book-menu/resolve-image-uri.web.d.ts +3 -0
  693. package/dist/src/components/preset-book-menu/resolve-image-uri.web.d.ts.map +1 -0
  694. package/dist/src/components/preset-book-menu/resolve-image-uri.web.js +17 -0
  695. package/dist/src/components/preset-book-menu/resolve-image-uri.web.js.map +1 -0
  696. package/dist/src/components/preset-control-panel/composite-layer-control-panel.d.ts +14 -0
  697. package/dist/src/components/preset-control-panel/composite-layer-control-panel.d.ts.map +1 -0
  698. package/dist/src/components/preset-control-panel/composite-layer-control-panel.js +36 -0
  699. package/dist/src/components/preset-control-panel/composite-layer-control-panel.js.map +1 -0
  700. package/dist/src/components/preset-control-panel/control-section.d.ts +9 -0
  701. package/dist/src/components/preset-control-panel/control-section.d.ts.map +1 -0
  702. package/dist/src/components/preset-control-panel/control-section.js +47 -0
  703. package/dist/src/components/preset-control-panel/control-section.js.map +1 -0
  704. package/dist/src/components/preset-control-panel/control.d.ts +10 -0
  705. package/dist/src/components/preset-control-panel/control.d.ts.map +1 -0
  706. package/dist/src/components/preset-control-panel/control.js +35 -0
  707. package/dist/src/components/preset-control-panel/control.js.map +1 -0
  708. package/dist/src/components/preset-control-panel/index.d.ts +14 -0
  709. package/dist/src/components/preset-control-panel/index.d.ts.map +1 -0
  710. package/dist/src/components/preset-control-panel/index.js +49 -0
  711. package/dist/src/components/preset-control-panel/index.js.map +1 -0
  712. package/dist/src/components/preset-control-panel/mask-control-panel.d.ts +11 -0
  713. package/dist/src/components/preset-control-panel/mask-control-panel.d.ts.map +1 -0
  714. package/dist/src/components/preset-control-panel/mask-control-panel.js +34 -0
  715. package/dist/src/components/preset-control-panel/mask-control-panel.js.map +1 -0
  716. package/dist/src/components/preset-control-panel/preset-control-panel.d.ts +12 -0
  717. package/dist/src/components/preset-control-panel/preset-control-panel.d.ts.map +1 -0
  718. package/dist/src/components/preset-control-panel/preset-control-panel.js +23 -0
  719. package/dist/src/components/preset-control-panel/preset-control-panel.js.map +1 -0
  720. package/dist/src/components/preset-control-panel/transform-control-panel.d.ts +14 -0
  721. package/dist/src/components/preset-control-panel/transform-control-panel.d.ts.map +1 -0
  722. package/dist/src/components/preset-control-panel/transform-control-panel.js +58 -0
  723. package/dist/src/components/preset-control-panel/transform-control-panel.js.map +1 -0
  724. package/dist/src/components/preset-tile/index.d.ts +24 -0
  725. package/dist/src/components/preset-tile/index.d.ts.map +1 -0
  726. package/dist/src/components/preset-tile/index.js +98 -0
  727. package/dist/src/components/preset-tile/index.js.map +1 -0
  728. package/dist/src/components/theme/provider.d.ts +18 -0
  729. package/dist/src/components/theme/provider.d.ts.map +1 -0
  730. package/dist/src/components/theme/provider.js +29 -0
  731. package/dist/src/components/theme/provider.js.map +1 -0
  732. package/dist/src/components/theme/slots.d.ts +17 -0
  733. package/dist/src/components/theme/slots.d.ts.map +1 -0
  734. package/dist/src/components/theme/slots.js +9 -0
  735. package/dist/src/components/theme/slots.js.map +1 -0
  736. package/dist/src/components/ui/button.d.ts +14 -0
  737. package/dist/src/components/ui/button.d.ts.map +1 -0
  738. package/dist/src/components/ui/button.js +29 -0
  739. package/dist/src/components/ui/button.js.map +1 -0
  740. package/dist/src/components/ui/color-picker.d.ts +12 -0
  741. package/dist/src/components/ui/color-picker.d.ts.map +1 -0
  742. package/dist/src/components/ui/color-picker.js +43 -0
  743. package/dist/src/components/ui/color-picker.js.map +1 -0
  744. package/dist/src/components/ui/index.d.ts +6 -0
  745. package/dist/src/components/ui/index.d.ts.map +1 -0
  746. package/dist/src/components/ui/index.js +18 -0
  747. package/dist/src/components/ui/index.js.map +1 -0
  748. package/dist/src/components/ui/label.d.ts +10 -0
  749. package/dist/src/components/ui/label.d.ts.map +1 -0
  750. package/dist/src/components/ui/label.js +14 -0
  751. package/dist/src/components/ui/label.js.map +1 -0
  752. package/dist/src/components/ui/point.d.ts +19 -0
  753. package/dist/src/components/ui/point.d.ts.map +1 -0
  754. package/dist/src/components/ui/point.js +52 -0
  755. package/dist/src/components/ui/point.js.map +1 -0
  756. package/dist/src/components/ui/polygon-field.d.ts +10 -0
  757. package/dist/src/components/ui/polygon-field.d.ts.map +1 -0
  758. package/dist/src/components/ui/polygon-field.js +50 -0
  759. package/dist/src/components/ui/polygon-field.js.map +1 -0
  760. package/dist/src/components/ui/readout.d.ts +10 -0
  761. package/dist/src/components/ui/readout.d.ts.map +1 -0
  762. package/dist/src/components/ui/readout.js +14 -0
  763. package/dist/src/components/ui/readout.js.map +1 -0
  764. package/dist/src/components/ui/slider-value.d.ts +8 -0
  765. package/dist/src/components/ui/slider-value.d.ts.map +1 -0
  766. package/dist/src/components/ui/slider-value.js +17 -0
  767. package/dist/src/components/ui/slider-value.js.map +1 -0
  768. package/dist/src/components/ui/slider.d.ts +15 -0
  769. package/dist/src/components/ui/slider.d.ts.map +1 -0
  770. package/dist/src/components/ui/slider.js +58 -0
  771. package/dist/src/components/ui/slider.js.map +1 -0
  772. package/dist/src/components/ui/switch.d.ts +8 -0
  773. package/dist/src/components/ui/switch.d.ts.map +1 -0
  774. package/dist/src/components/ui/switch.js +24 -0
  775. package/dist/src/components/ui/switch.js.map +1 -0
  776. package/dist/src/index.d.ts +18 -0
  777. package/dist/src/index.d.ts.map +1 -0
  778. package/dist/src/index.js +187 -0
  779. package/dist/src/index.js.map +1 -0
  780. package/dist/src/index.web.d.ts +32 -0
  781. package/dist/src/index.web.d.ts.map +1 -0
  782. package/dist/src/index.web.js +119 -0
  783. package/dist/src/index.web.js.map +1 -0
  784. package/dist/src/kaleidoscope/controls.d.ts +24 -0
  785. package/dist/src/kaleidoscope/controls.d.ts.map +1 -0
  786. package/dist/src/kaleidoscope/controls.js +92 -0
  787. package/dist/src/kaleidoscope/controls.js.map +1 -0
  788. package/dist/src/kaleidoscope/effect.d.ts +4 -0
  789. package/dist/src/kaleidoscope/effect.d.ts.map +1 -0
  790. package/dist/src/kaleidoscope/effect.js +7 -0
  791. package/dist/src/kaleidoscope/effect.js.map +1 -0
  792. package/dist/src/kaleidoscope/effect.types.d.ts +47 -0
  793. package/dist/src/kaleidoscope/effect.types.d.ts.map +1 -0
  794. package/dist/src/kaleidoscope/effect.types.js +9 -0
  795. package/dist/src/kaleidoscope/effect.types.js.map +1 -0
  796. package/dist/src/kaleidoscope/shader-to-spec.d.ts +4 -0
  797. package/dist/src/kaleidoscope/shader-to-spec.d.ts.map +1 -0
  798. package/dist/src/kaleidoscope/shader-to-spec.js +17 -0
  799. package/dist/src/kaleidoscope/shader-to-spec.js.map +1 -0
  800. package/dist/src/kaleidoscope/types.d.ts +79 -0
  801. package/dist/src/kaleidoscope/types.d.ts.map +1 -0
  802. package/dist/src/kaleidoscope/types.js +18 -0
  803. package/dist/src/kaleidoscope/types.js.map +1 -0
  804. package/dist/src/kaleidoscope.preset-book.types.d.ts +86 -0
  805. package/dist/src/kaleidoscope.preset-book.types.d.ts.map +1 -0
  806. package/dist/src/kaleidoscope.preset-book.types.js +16 -0
  807. package/dist/src/kaleidoscope.preset-book.types.js.map +1 -0
  808. package/dist/src/lib/primitives.types.d.ts +3 -0
  809. package/dist/src/lib/primitives.types.d.ts.map +1 -0
  810. package/dist/src/lib/primitives.types.js +5 -0
  811. package/dist/src/lib/primitives.types.js.map +1 -0
  812. package/dist/src/lib/test-id.d.ts +30 -0
  813. package/dist/src/lib/test-id.d.ts.map +1 -0
  814. package/dist/src/lib/test-id.js +81 -0
  815. package/dist/src/lib/test-id.js.map +1 -0
  816. package/dist/src/livekit.d.ts +24 -0
  817. package/dist/src/livekit.d.ts.map +1 -0
  818. package/dist/src/livekit.js +63 -0
  819. package/dist/src/livekit.js.map +1 -0
  820. package/dist/src/nativewind.d.ts +7 -0
  821. package/dist/src/nativewind.d.ts.map +1 -0
  822. package/dist/src/nativewind.js +43 -0
  823. package/dist/src/nativewind.js.map +1 -0
  824. package/dist/web-driver/effects/composite.d.ts +14 -0
  825. package/dist/web-driver/effects/composite.d.ts.map +1 -0
  826. package/dist/web-driver/effects/composite.js +576 -0
  827. package/dist/web-driver/effects/composite.js.map +1 -0
  828. package/dist/web-driver/effects/layer-shaders.d.ts +2 -0
  829. package/dist/web-driver/effects/layer-shaders.d.ts.map +1 -0
  830. package/dist/web-driver/effects/layer-shaders.js +11 -0
  831. package/dist/web-driver/effects/layer-shaders.js.map +1 -0
  832. package/dist/web-driver/effects/transform.d.ts +4 -0
  833. package/dist/web-driver/effects/transform.d.ts.map +1 -0
  834. package/dist/web-driver/effects/transform.js +66 -0
  835. package/dist/web-driver/effects/transform.js.map +1 -0
  836. package/dist/web-driver/index.d.ts +6 -0
  837. package/dist/web-driver/index.d.ts.map +1 -0
  838. package/dist/web-driver/index.js +21 -0
  839. package/dist/web-driver/index.js.map +1 -0
  840. package/dist/web-driver/insertable-streams.d.ts.map +1 -0
  841. package/dist/web-driver/insertable-streams.js +68 -0
  842. package/dist/web-driver/insertable-streams.js.map +1 -0
  843. package/dist/web-driver/segmenter.d.ts.map +1 -0
  844. package/dist/web-driver/segmenter.js +89 -0
  845. package/dist/web-driver/segmenter.js.map +1 -0
  846. package/dist/web-driver/shaders.d.ts +2 -0
  847. package/dist/web-driver/shaders.d.ts.map +1 -0
  848. package/dist/web-driver/shaders.generated.d.ts +17 -0
  849. package/dist/web-driver/shaders.generated.d.ts.map +1 -0
  850. package/dist/web-driver/shaders.generated.js +1180 -0
  851. package/dist/web-driver/shaders.generated.js.map +1 -0
  852. package/dist/web-driver/shaders.js +28 -0
  853. package/dist/web-driver/shaders.js.map +1 -0
  854. package/dist/web-driver/tuning.d.ts.map +1 -0
  855. package/dist/web-driver/tuning.js +61 -0
  856. package/dist/web-driver/tuning.js.map +1 -0
  857. package/ios/Kaleidoscope.podspec +22 -15
  858. package/ios/KaleidoscopeModule/BundledImage.swift +39 -0
  859. package/ios/KaleidoscopeModule/CompositeLayers.swift +142 -0
  860. package/ios/KaleidoscopeModule/EffectTuning.swift +86 -86
  861. package/ios/KaleidoscopeModule/KaleidoscopeModule.swift +55 -27
  862. package/ios/KaleidoscopeModule/Registration.swift +36 -57
  863. package/ios/KaleidoscopeModule/effects/CompositeProcessor.swift +906 -0
  864. package/ios/KaleidoscopeModule/effects/FrameBridge.swift +25 -25
  865. package/ios/KaleidoscopeModule/effects/TransformProcessor.swift +127 -126
  866. package/ios/KaleidoscopeModule/gpu/CompositeRendering.swift +352 -0
  867. package/ios/KaleidoscopeModule/gpu/Ingest.swift +104 -102
  868. package/ios/KaleidoscopeModule/gpu/MetalRenderer.swift +473 -544
  869. package/ios/KaleidoscopeModule/gpu/Orientation.swift +41 -41
  870. package/ios/KaleidoscopeModule/gpu/ShaderLibrary.swift +100 -54
  871. package/ios/KaleidoscopeModule/gpu/TextureBridge.swift +245 -244
  872. package/ios/KaleidoscopeModule/segmentation/MaskTuning.swift +11 -11
  873. package/ios/KaleidoscopeModule/segmentation/Segmenter.swift +360 -359
  874. package/ios/KaleidoscopeModule/shaders/GENERATIVE.txt +9 -0
  875. package/ios/KaleidoscopeModule/shaders/SHADERS.txt +13 -2
  876. package/ios/KaleidoscopeModule/shaders/anamorphic-lensflare.metalsrc +47 -0
  877. package/ios/KaleidoscopeModule/shaders/clouds.metalsrc +185 -0
  878. package/ios/KaleidoscopeModule/shaders/composite-blit.metalsrc +22 -0
  879. package/ios/KaleidoscopeModule/shaders/composite-blur.metalsrc +93 -0
  880. package/ios/KaleidoscopeModule/shaders/composite-camera.metalsrc +22 -0
  881. package/ios/KaleidoscopeModule/shaders/composite-image.metalsrc +24 -0
  882. package/ios/KaleidoscopeModule/shaders/composite-masked.metalsrc +22 -0
  883. package/ios/KaleidoscopeModule/shaders/composite-subject.metalsrc +23 -0
  884. package/ios/KaleidoscopeModule/shaders/corporate-blobs.metalsrc +221 -0
  885. package/ios/KaleidoscopeModule/shaders/fireflies.metalsrc +44 -0
  886. package/ios/KaleidoscopeModule/shaders/godrays.metalsrc +46 -0
  887. package/ios/KaleidoscopeModule/shaders/light-beams-and-motes.metalsrc +316 -0
  888. package/ios/KaleidoscopeModule/shaders/nebula.metalsrc +45 -45
  889. package/ios/KaleidoscopeModule/shaders/plasma.metalsrc +26 -0
  890. package/ios/KaleidoscopeModule/shaders/simianlights.metalsrc +45 -45
  891. package/package.json +485 -115
  892. package/plugin/build/android/assets.js +45 -0
  893. package/plugin/build/android/index.js +34 -0
  894. package/plugin/build/index.js +39 -0
  895. package/plugin/build/ios/assets.js +110 -0
  896. package/plugin/build/ios/deployment-target.js +105 -0
  897. package/plugin/build/ios/index.js +63 -0
  898. package/plugin/build/ios/pods.js +73 -0
  899. package/plugin/build/lib/constants.js +15 -0
  900. package/plugin/build/lib/file-manipulation.js +57 -0
  901. package/plugin/build/lib/mods.js +36 -0
  902. package/plugin/build/lib/preset-book.js +215 -0
  903. package/plugin/build/lib/types.js +16 -0
  904. package/src/components/form/control-form.tsx +112 -0
  905. package/src/components/form/make-controls.ts +33 -0
  906. package/src/components/form/scope.ts +9 -0
  907. package/src/components/form/use-field.ts +35 -0
  908. package/src/components/preset-book-menu/index.tsx +286 -0
  909. package/src/components/preset-book-menu/layout.tsx +63 -0
  910. package/src/components/preset-book-menu/preset-book-menu.types.ts +112 -0
  911. package/src/components/preset-book-menu/preset-grid.tsx +80 -0
  912. package/src/components/preset-book-menu/resolve-image-uri.ts +31 -0
  913. package/src/components/preset-book-menu/resolve-image-uri.types.ts +18 -0
  914. package/src/components/preset-book-menu/resolve-image-uri.web.ts +15 -0
  915. package/src/components/preset-control-panel/composite-layer-control-panel.tsx +56 -0
  916. package/src/components/preset-control-panel/control-section.tsx +84 -0
  917. package/src/components/preset-control-panel/control.tsx +50 -0
  918. package/src/components/preset-control-panel/index.ts +31 -0
  919. package/src/components/preset-control-panel/mask-control-panel.tsx +93 -0
  920. package/src/components/preset-control-panel/preset-control-panel.tsx +48 -0
  921. package/src/components/preset-control-panel/transform-control-panel.tsx +146 -0
  922. package/src/components/preset-tile/index.tsx +160 -0
  923. package/src/components/theme/provider.tsx +50 -0
  924. package/src/components/theme/slots.ts +37 -0
  925. package/src/components/ui/button.tsx +54 -0
  926. package/src/components/ui/color-picker.tsx +74 -0
  927. package/src/components/ui/index.ts +10 -0
  928. package/src/components/ui/label.tsx +24 -0
  929. package/src/components/ui/point.tsx +116 -0
  930. package/src/components/ui/polygon-field.tsx +84 -0
  931. package/src/components/ui/readout.tsx +25 -0
  932. package/src/components/ui/slider-value.ts +15 -0
  933. package/src/components/ui/slider.tsx +98 -0
  934. package/src/components/ui/switch.tsx +40 -0
  935. package/src/index.ts +176 -95
  936. package/src/index.web.ts +126 -74
  937. package/src/kaleidoscope/controls.ts +127 -0
  938. package/src/kaleidoscope/effect.ts +5 -0
  939. package/src/kaleidoscope/effect.types.ts +63 -0
  940. package/src/kaleidoscope/shader-to-spec.ts +16 -0
  941. package/src/kaleidoscope/types.ts +101 -0
  942. package/src/kaleidoscope.preset-book.types.ts +105 -0
  943. package/src/lib/primitives.types.ts +5 -0
  944. package/src/lib/test-id.ts +81 -0
  945. package/src/livekit.ts +6 -4
  946. package/src/nativewind.ts +41 -0
  947. package/android/src/main/assets/backgrounds/stylized-dark.webp +0 -0
  948. package/android/src/main/java/com/simiancraft/kaleidoscope/effects/BackgroundImageFactory.kt +0 -365
  949. package/android/src/main/java/com/simiancraft/kaleidoscope/effects/BlurFactory.kt +0 -400
  950. package/dist/backgrounds/dark-office.d.ts +0 -3
  951. package/dist/backgrounds/dark-office.d.ts.map +0 -1
  952. package/dist/backgrounds/dark-office.js +0 -5
  953. package/dist/backgrounds/dark-office.js.map +0 -1
  954. package/dist/backgrounds/dark-office.web.d.ts +0 -3
  955. package/dist/backgrounds/dark-office.web.d.ts.map +0 -1
  956. package/dist/backgrounds/dark-office.web.js +0 -8
  957. package/dist/backgrounds/dark-office.web.js.map +0 -1
  958. package/dist/backgrounds/debug-resolutions.d.ts +0 -3
  959. package/dist/backgrounds/debug-resolutions.d.ts.map +0 -1
  960. package/dist/backgrounds/debug-resolutions.js +0 -6
  961. package/dist/backgrounds/debug-resolutions.js.map +0 -1
  962. package/dist/backgrounds/debug-resolutions.web.d.ts +0 -3
  963. package/dist/backgrounds/debug-resolutions.web.d.ts.map +0 -1
  964. package/dist/backgrounds/debug-resolutions.web.js +0 -8
  965. package/dist/backgrounds/debug-resolutions.web.js.map +0 -1
  966. package/dist/backgrounds/home-dark.d.ts +0 -3
  967. package/dist/backgrounds/home-dark.d.ts.map +0 -1
  968. package/dist/backgrounds/home-dark.js +0 -5
  969. package/dist/backgrounds/home-dark.js.map +0 -1
  970. package/dist/backgrounds/home-dark.web.d.ts +0 -3
  971. package/dist/backgrounds/home-dark.web.d.ts.map +0 -1
  972. package/dist/backgrounds/home-dark.web.js +0 -6
  973. package/dist/backgrounds/home-dark.web.js.map +0 -1
  974. package/dist/backgrounds/home-light.d.ts +0 -3
  975. package/dist/backgrounds/home-light.d.ts.map +0 -1
  976. package/dist/backgrounds/home-light.js +0 -5
  977. package/dist/backgrounds/home-light.js.map +0 -1
  978. package/dist/backgrounds/home-light.web.d.ts +0 -3
  979. package/dist/backgrounds/home-light.web.d.ts.map +0 -1
  980. package/dist/backgrounds/home-light.web.js +0 -6
  981. package/dist/backgrounds/home-light.web.js.map +0 -1
  982. package/dist/backgrounds/index.d.ts +0 -3
  983. package/dist/backgrounds/index.d.ts.map +0 -1
  984. package/dist/backgrounds/index.js +0 -6
  985. package/dist/backgrounds/index.js.map +0 -1
  986. package/dist/backgrounds/light-office.d.ts +0 -3
  987. package/dist/backgrounds/light-office.d.ts.map +0 -1
  988. package/dist/backgrounds/light-office.js +0 -5
  989. package/dist/backgrounds/light-office.js.map +0 -1
  990. package/dist/backgrounds/light-office.web.d.ts +0 -3
  991. package/dist/backgrounds/light-office.web.d.ts.map +0 -1
  992. package/dist/backgrounds/light-office.web.js +0 -8
  993. package/dist/backgrounds/light-office.web.js.map +0 -1
  994. package/dist/backgrounds/nature-dark.d.ts +0 -3
  995. package/dist/backgrounds/nature-dark.d.ts.map +0 -1
  996. package/dist/backgrounds/nature-dark.js +0 -5
  997. package/dist/backgrounds/nature-dark.js.map +0 -1
  998. package/dist/backgrounds/nature-dark.web.d.ts +0 -3
  999. package/dist/backgrounds/nature-dark.web.d.ts.map +0 -1
  1000. package/dist/backgrounds/nature-dark.web.js +0 -6
  1001. package/dist/backgrounds/nature-dark.web.js.map +0 -1
  1002. package/dist/backgrounds/nature-light.d.ts +0 -3
  1003. package/dist/backgrounds/nature-light.d.ts.map +0 -1
  1004. package/dist/backgrounds/nature-light.js +0 -5
  1005. package/dist/backgrounds/nature-light.js.map +0 -1
  1006. package/dist/backgrounds/nature-light.web.d.ts +0 -3
  1007. package/dist/backgrounds/nature-light.web.d.ts.map +0 -1
  1008. package/dist/backgrounds/nature-light.web.js +0 -6
  1009. package/dist/backgrounds/nature-light.web.js.map +0 -1
  1010. package/dist/backgrounds/preset-source.types.d.ts +0 -2
  1011. package/dist/backgrounds/preset-source.types.d.ts.map +0 -1
  1012. package/dist/backgrounds/preset-source.types.js +0 -2
  1013. package/dist/backgrounds/preset-source.types.js.map +0 -1
  1014. package/dist/backgrounds/presets.d.ts +0 -3
  1015. package/dist/backgrounds/presets.d.ts.map +0 -1
  1016. package/dist/backgrounds/presets.js +0 -34
  1017. package/dist/backgrounds/presets.js.map +0 -1
  1018. package/dist/backgrounds/simiancraft-dark.d.ts +0 -3
  1019. package/dist/backgrounds/simiancraft-dark.d.ts.map +0 -1
  1020. package/dist/backgrounds/simiancraft-dark.js +0 -5
  1021. package/dist/backgrounds/simiancraft-dark.js.map +0 -1
  1022. package/dist/backgrounds/simiancraft-dark.web.d.ts +0 -3
  1023. package/dist/backgrounds/simiancraft-dark.web.d.ts.map +0 -1
  1024. package/dist/backgrounds/simiancraft-dark.web.js +0 -6
  1025. package/dist/backgrounds/simiancraft-dark.web.js.map +0 -1
  1026. package/dist/backgrounds/simiancraft-light.d.ts +0 -3
  1027. package/dist/backgrounds/simiancraft-light.d.ts.map +0 -1
  1028. package/dist/backgrounds/simiancraft-light.js +0 -5
  1029. package/dist/backgrounds/simiancraft-light.js.map +0 -1
  1030. package/dist/backgrounds/simiancraft-light.web.d.ts +0 -3
  1031. package/dist/backgrounds/simiancraft-light.web.d.ts.map +0 -1
  1032. package/dist/backgrounds/simiancraft-light.web.js +0 -6
  1033. package/dist/backgrounds/simiancraft-light.web.js.map +0 -1
  1034. package/dist/backgrounds/stylized-dark.d.ts +0 -3
  1035. package/dist/backgrounds/stylized-dark.d.ts.map +0 -1
  1036. package/dist/backgrounds/stylized-dark.js +0 -5
  1037. package/dist/backgrounds/stylized-dark.js.map +0 -1
  1038. package/dist/backgrounds/stylized-dark.web.d.ts +0 -3
  1039. package/dist/backgrounds/stylized-dark.web.d.ts.map +0 -1
  1040. package/dist/backgrounds/stylized-dark.web.js +0 -6
  1041. package/dist/backgrounds/stylized-dark.web.js.map +0 -1
  1042. package/dist/backgrounds/stylized-dark.webp +0 -0
  1043. package/dist/backgrounds/stylized-light.d.ts +0 -3
  1044. package/dist/backgrounds/stylized-light.d.ts.map +0 -1
  1045. package/dist/backgrounds/stylized-light.js +0 -5
  1046. package/dist/backgrounds/stylized-light.js.map +0 -1
  1047. package/dist/backgrounds/stylized-light.web.d.ts +0 -3
  1048. package/dist/backgrounds/stylized-light.web.d.ts.map +0 -1
  1049. package/dist/backgrounds/stylized-light.web.js +0 -6
  1050. package/dist/backgrounds/stylized-light.web.js.map +0 -1
  1051. package/dist/index.d.ts +0 -42
  1052. package/dist/index.d.ts.map +0 -1
  1053. package/dist/index.js +0 -155
  1054. package/dist/index.js.map +0 -1
  1055. package/dist/index.web.d.ts +0 -49
  1056. package/dist/index.web.d.ts.map +0 -1
  1057. package/dist/index.web.js +0 -113
  1058. package/dist/index.web.js.map +0 -1
  1059. package/dist/livekit.d.ts +0 -24
  1060. package/dist/livekit.d.ts.map +0 -1
  1061. package/dist/livekit.js +0 -57
  1062. package/dist/livekit.js.map +0 -1
  1063. package/dist/types.d.ts +0 -74
  1064. package/dist/types.d.ts.map +0 -1
  1065. package/dist/types.js +0 -10
  1066. package/dist/types.js.map +0 -1
  1067. package/dist/web/blur-kernel.d.ts +0 -6
  1068. package/dist/web/blur-kernel.d.ts.map +0 -1
  1069. package/dist/web/blur-kernel.js +0 -41
  1070. package/dist/web/blur-kernel.js.map +0 -1
  1071. package/dist/web/effects/background-image.d.ts +0 -3
  1072. package/dist/web/effects/background-image.d.ts.map +0 -1
  1073. package/dist/web/effects/background-image.js +0 -284
  1074. package/dist/web/effects/background-image.js.map +0 -1
  1075. package/dist/web/effects/blur.d.ts +0 -3
  1076. package/dist/web/effects/blur.d.ts.map +0 -1
  1077. package/dist/web/effects/blur.js +0 -339
  1078. package/dist/web/effects/blur.js.map +0 -1
  1079. package/dist/web/effects/transform.d.ts +0 -4
  1080. package/dist/web/effects/transform.d.ts.map +0 -1
  1081. package/dist/web/effects/transform.js +0 -62
  1082. package/dist/web/effects/transform.js.map +0 -1
  1083. package/dist/web/insertable-streams.d.ts.map +0 -1
  1084. package/dist/web/insertable-streams.js +0 -64
  1085. package/dist/web/insertable-streams.js.map +0 -1
  1086. package/dist/web/segmenter.d.ts.map +0 -1
  1087. package/dist/web/segmenter.js +0 -83
  1088. package/dist/web/segmenter.js.map +0 -1
  1089. package/dist/web/shaders.d.ts +0 -2
  1090. package/dist/web/shaders.d.ts.map +0 -1
  1091. package/dist/web/shaders.generated.d.ts +0 -4
  1092. package/dist/web/shaders.generated.d.ts.map +0 -1
  1093. package/dist/web/shaders.generated.js +0 -54
  1094. package/dist/web/shaders.generated.js.map +0 -1
  1095. package/dist/web/shaders.js +0 -32
  1096. package/dist/web/shaders.js.map +0 -1
  1097. package/dist/web/tuning.d.ts.map +0 -1
  1098. package/dist/web/tuning.js +0 -55
  1099. package/dist/web/tuning.js.map +0 -1
  1100. package/ios/KaleidoscopeModule/effects/BackgroundImageProcessor.swift +0 -293
  1101. package/ios/KaleidoscopeModule/effects/BlurProcessor.swift +0 -238
  1102. package/ios/KaleidoscopeModule/resources/backgrounds/dark-office.webp +0 -0
  1103. package/ios/KaleidoscopeModule/resources/backgrounds/debug-resolutions.webp +0 -0
  1104. package/ios/KaleidoscopeModule/resources/backgrounds/home-dark.webp +0 -0
  1105. package/ios/KaleidoscopeModule/resources/backgrounds/home-light.webp +0 -0
  1106. package/ios/KaleidoscopeModule/resources/backgrounds/light-office.webp +0 -0
  1107. package/ios/KaleidoscopeModule/resources/backgrounds/nature-dark.webp +0 -0
  1108. package/ios/KaleidoscopeModule/resources/backgrounds/nature-light.webp +0 -0
  1109. package/ios/KaleidoscopeModule/resources/backgrounds/simiancraft-dark.webp +0 -0
  1110. package/ios/KaleidoscopeModule/resources/backgrounds/simiancraft-light.webp +0 -0
  1111. package/ios/KaleidoscopeModule/resources/backgrounds/stylized-dark.webp +0 -0
  1112. package/ios/KaleidoscopeModule/resources/backgrounds/stylized-light.webp +0 -0
  1113. package/ios/KaleidoscopeModule/shaders/blur.metalsrc +0 -72
  1114. package/ios/KaleidoscopeModule/shaders/composite.metalsrc +0 -22
  1115. package/src/backgrounds/README.md +0 -83
  1116. package/src/backgrounds/dark-office.ts +0 -6
  1117. package/src/backgrounds/dark-office.web.ts +0 -9
  1118. package/src/backgrounds/dark-office.webp +0 -0
  1119. package/src/backgrounds/debug-resolutions.ts +0 -7
  1120. package/src/backgrounds/debug-resolutions.web.ts +0 -9
  1121. package/src/backgrounds/debug-resolutions.webp +0 -0
  1122. package/src/backgrounds/home-dark.ts +0 -6
  1123. package/src/backgrounds/home-dark.web.ts +0 -7
  1124. package/src/backgrounds/home-dark.webp +0 -0
  1125. package/src/backgrounds/home-light.ts +0 -6
  1126. package/src/backgrounds/home-light.web.ts +0 -7
  1127. package/src/backgrounds/home-light.webp +0 -0
  1128. package/src/backgrounds/index.ts +0 -7
  1129. package/src/backgrounds/light-office.ts +0 -6
  1130. package/src/backgrounds/light-office.web.ts +0 -9
  1131. package/src/backgrounds/light-office.webp +0 -0
  1132. package/src/backgrounds/nature-dark.ts +0 -6
  1133. package/src/backgrounds/nature-dark.web.ts +0 -7
  1134. package/src/backgrounds/nature-dark.webp +0 -0
  1135. package/src/backgrounds/nature-light.ts +0 -6
  1136. package/src/backgrounds/nature-light.web.ts +0 -7
  1137. package/src/backgrounds/nature-light.webp +0 -0
  1138. package/src/backgrounds/preset-source.types.ts +0 -5
  1139. package/src/backgrounds/presets.ts +0 -36
  1140. package/src/backgrounds/simiancraft-dark.ts +0 -6
  1141. package/src/backgrounds/simiancraft-dark.web.ts +0 -7
  1142. package/src/backgrounds/simiancraft-dark.webp +0 -0
  1143. package/src/backgrounds/simiancraft-light.ts +0 -6
  1144. package/src/backgrounds/simiancraft-light.web.ts +0 -7
  1145. package/src/backgrounds/simiancraft-light.webp +0 -0
  1146. package/src/backgrounds/stylized-dark.ts +0 -6
  1147. package/src/backgrounds/stylized-dark.web.ts +0 -7
  1148. package/src/backgrounds/stylized-dark.webp +0 -0
  1149. package/src/backgrounds/stylized-light.ts +0 -6
  1150. package/src/backgrounds/stylized-light.web.ts +0 -7
  1151. package/src/backgrounds/stylized-light.webp +0 -0
  1152. package/src/types.ts +0 -89
  1153. package/src/web/blur-kernel.ts +0 -44
  1154. package/src/web/effects/background-image.ts +0 -364
  1155. package/src/web/effects/blur.ts +0 -430
  1156. package/src/web/effects/transform.ts +0 -69
  1157. package/src/web/insertable-streams.ts +0 -112
  1158. package/src/web/segmenter.ts +0 -107
  1159. package/src/web/shaders.generated.ts +0 -56
  1160. package/src/web/shaders.ts +0 -31
  1161. package/src/web/tuning.ts +0 -67
  1162. /package/{src/backgrounds → catalog/images}/assets.d.ts +0 -0
  1163. /package/{android/src/main/assets/backgrounds → catalog/images/debug}/debug-resolutions.webp +0 -0
  1164. /package/{android/src/main/assets/backgrounds → catalog/images/home}/home-dark.webp +0 -0
  1165. /package/{android/src/main/assets/backgrounds → catalog/images/home}/home-light.webp +0 -0
  1166. /package/{android/src/main/assets/backgrounds/nature-dark.webp → catalog/images/nature/landscape-dark.webp} +0 -0
  1167. /package/{android/src/main/assets/backgrounds/nature-light.webp → catalog/images/nature/landscape-light.webp} +0 -0
  1168. /package/{android/src/main/assets/backgrounds/dark-office.webp → catalog/images/office/office-dark.webp} +0 -0
  1169. /package/{android/src/main/assets/backgrounds/light-office.webp → catalog/images/office/office-light.webp} +0 -0
  1170. /package/{android/src/main/assets/backgrounds/stylized-light.webp → catalog/images/sci-fi/sci-fi-light.webp} +0 -0
  1171. /package/{android/src/main/assets/backgrounds → catalog/images/simiancraft}/simiancraft-dark.webp +0 -0
  1172. /package/{android/src/main/assets/backgrounds → catalog/images/simiancraft}/simiancraft-light.webp +0 -0
  1173. /package/dist/{backgrounds → catalog/images/debug}/debug-resolutions.webp +0 -0
  1174. /package/dist/{backgrounds → catalog/images/home}/home-dark.webp +0 -0
  1175. /package/dist/{backgrounds → catalog/images/home}/home-light.webp +0 -0
  1176. /package/dist/{backgrounds/nature-dark.webp → catalog/images/nature/landscape-dark.webp} +0 -0
  1177. /package/dist/{backgrounds/nature-light.webp → catalog/images/nature/landscape-light.webp} +0 -0
  1178. /package/dist/{backgrounds/dark-office.webp → catalog/images/office/office-dark.webp} +0 -0
  1179. /package/dist/{backgrounds/light-office.webp → catalog/images/office/office-light.webp} +0 -0
  1180. /package/dist/{backgrounds/stylized-light.webp → catalog/images/sci-fi/sci-fi-light.webp} +0 -0
  1181. /package/dist/{backgrounds → catalog/images/simiancraft}/simiancraft-dark.webp +0 -0
  1182. /package/dist/{backgrounds → catalog/images/simiancraft}/simiancraft-light.webp +0 -0
  1183. /package/dist/{web → web-driver}/insertable-streams.d.ts +0 -0
  1184. /package/dist/{web → web-driver}/segmenter.d.ts +0 -0
  1185. /package/dist/{web → web-driver}/tuning.d.ts +0 -0
@@ -1,8 +0,0 @@
1
- /// <reference path="./assets.d.ts" />
2
- import { Asset } from 'expo-asset';
3
- import lightOfficeAsset from './light-office.webp';
4
- // Web variant. The bundled WebP's URL, which the background-image effect
5
- // fetches. Resolved with expo-asset because react-native-web has no
6
- // Image.resolveAssetSource; `.uri` is set synchronously by fromModule.
7
- export const lightOffice = Asset.fromModule(lightOfficeAsset).uri;
8
- //# sourceMappingURL=light-office.web.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"light-office.web.js","sourceRoot":"","sources":["../../src/backgrounds/light-office.web.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,gBAAgB,MAAM,qBAAqB,CAAC;AAGnD,yEAAyE;AACzE,oEAAoE;AACpE,uEAAuE;AACvE,MAAM,CAAC,MAAM,WAAW,GAAiB,KAAK,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC","sourcesContent":["/// <reference path=\"./assets.d.ts\" />\nimport { Asset } from 'expo-asset';\nimport lightOfficeAsset from './light-office.webp';\nimport type { PresetSource } from './preset-source.types';\n\n// Web variant. The bundled WebP's URL, which the background-image effect\n// fetches. Resolved with expo-asset because react-native-web has no\n// Image.resolveAssetSource; `.uri` is set synchronously by fromModule.\nexport const lightOffice: PresetSource = Asset.fromModule(lightOfficeAsset).uri;\n"]}
@@ -1,3 +0,0 @@
1
- import type { PresetSource } from './preset-source.types';
2
- export declare const natureDark: PresetSource;
3
- //# sourceMappingURL=nature-dark.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"nature-dark.d.ts","sourceRoot":"","sources":["../../src/backgrounds/nature-dark.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAK1D,eAAO,MAAM,UAAU,EAAE,YAA4B,CAAC","sourcesContent":["import type { PresetSource } from './preset-source.types';\n\n// Native variant. The native module loads its own bundled resource by name, so\n// the source is just the preset name; no WebP import, no expo-asset on native.\n// Web is handled by nature-dark.web.ts.\nexport const natureDark: PresetSource = 'nature-dark';\n"]}
@@ -1,5 +0,0 @@
1
- // Native variant. The native module loads its own bundled resource by name, so
2
- // the source is just the preset name; no WebP import, no expo-asset on native.
3
- // Web is handled by nature-dark.web.ts.
4
- export const natureDark = 'nature-dark';
5
- //# sourceMappingURL=nature-dark.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"nature-dark.js","sourceRoot":"","sources":["../../src/backgrounds/nature-dark.ts"],"names":[],"mappings":"AAEA,+EAA+E;AAC/E,+EAA+E;AAC/E,wCAAwC;AACxC,MAAM,CAAC,MAAM,UAAU,GAAiB,aAAa,CAAC","sourcesContent":["import type { PresetSource } from './preset-source.types';\n\n// Native variant. The native module loads its own bundled resource by name, so\n// the source is just the preset name; no WebP import, no expo-asset on native.\n// Web is handled by nature-dark.web.ts.\nexport const natureDark: PresetSource = 'nature-dark';\n"]}
@@ -1,3 +0,0 @@
1
- import type { PresetSource } from './preset-source.types';
2
- export declare const natureDark: PresetSource;
3
- //# sourceMappingURL=nature-dark.web.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"nature-dark.web.d.ts","sourceRoot":"","sources":["../../src/backgrounds/nature-dark.web.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAG1D,eAAO,MAAM,UAAU,EAAE,YAAoD,CAAC","sourcesContent":["/// <reference path=\"./assets.d.ts\" />\nimport { Asset } from 'expo-asset';\nimport natureDarkAsset from './nature-dark.webp';\nimport type { PresetSource } from './preset-source.types';\n\n// Web variant. The bundled WebP's URL, which the background-image effect fetches.\nexport const natureDark: PresetSource = Asset.fromModule(natureDarkAsset).uri;\n"]}
@@ -1,6 +0,0 @@
1
- /// <reference path="./assets.d.ts" />
2
- import { Asset } from 'expo-asset';
3
- import natureDarkAsset from './nature-dark.webp';
4
- // Web variant. The bundled WebP's URL, which the background-image effect fetches.
5
- export const natureDark = Asset.fromModule(natureDarkAsset).uri;
6
- //# sourceMappingURL=nature-dark.web.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"nature-dark.web.js","sourceRoot":"","sources":["../../src/backgrounds/nature-dark.web.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,eAAe,MAAM,oBAAoB,CAAC;AAGjD,kFAAkF;AAClF,MAAM,CAAC,MAAM,UAAU,GAAiB,KAAK,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC","sourcesContent":["/// <reference path=\"./assets.d.ts\" />\nimport { Asset } from 'expo-asset';\nimport natureDarkAsset from './nature-dark.webp';\nimport type { PresetSource } from './preset-source.types';\n\n// Web variant. The bundled WebP's URL, which the background-image effect fetches.\nexport const natureDark: PresetSource = Asset.fromModule(natureDarkAsset).uri;\n"]}
@@ -1,3 +0,0 @@
1
- import type { PresetSource } from './preset-source.types';
2
- export declare const natureLight: PresetSource;
3
- //# sourceMappingURL=nature-light.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"nature-light.d.ts","sourceRoot":"","sources":["../../src/backgrounds/nature-light.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAK1D,eAAO,MAAM,WAAW,EAAE,YAA6B,CAAC","sourcesContent":["import type { PresetSource } from './preset-source.types';\n\n// Native variant. The native module loads its own bundled resource by name, so\n// the source is just the preset name; no WebP import, no expo-asset on native.\n// Web is handled by nature-light.web.ts.\nexport const natureLight: PresetSource = 'nature-light';\n"]}
@@ -1,5 +0,0 @@
1
- // Native variant. The native module loads its own bundled resource by name, so
2
- // the source is just the preset name; no WebP import, no expo-asset on native.
3
- // Web is handled by nature-light.web.ts.
4
- export const natureLight = 'nature-light';
5
- //# sourceMappingURL=nature-light.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"nature-light.js","sourceRoot":"","sources":["../../src/backgrounds/nature-light.ts"],"names":[],"mappings":"AAEA,+EAA+E;AAC/E,+EAA+E;AAC/E,yCAAyC;AACzC,MAAM,CAAC,MAAM,WAAW,GAAiB,cAAc,CAAC","sourcesContent":["import type { PresetSource } from './preset-source.types';\n\n// Native variant. The native module loads its own bundled resource by name, so\n// the source is just the preset name; no WebP import, no expo-asset on native.\n// Web is handled by nature-light.web.ts.\nexport const natureLight: PresetSource = 'nature-light';\n"]}
@@ -1,3 +0,0 @@
1
- import type { PresetSource } from './preset-source.types';
2
- export declare const natureLight: PresetSource;
3
- //# sourceMappingURL=nature-light.web.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"nature-light.web.d.ts","sourceRoot":"","sources":["../../src/backgrounds/nature-light.web.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAG1D,eAAO,MAAM,WAAW,EAAE,YAAqD,CAAC","sourcesContent":["/// <reference path=\"./assets.d.ts\" />\nimport { Asset } from 'expo-asset';\nimport natureLightAsset from './nature-light.webp';\nimport type { PresetSource } from './preset-source.types';\n\n// Web variant. The bundled WebP's URL, which the background-image effect fetches.\nexport const natureLight: PresetSource = Asset.fromModule(natureLightAsset).uri;\n"]}
@@ -1,6 +0,0 @@
1
- /// <reference path="./assets.d.ts" />
2
- import { Asset } from 'expo-asset';
3
- import natureLightAsset from './nature-light.webp';
4
- // Web variant. The bundled WebP's URL, which the background-image effect fetches.
5
- export const natureLight = Asset.fromModule(natureLightAsset).uri;
6
- //# sourceMappingURL=nature-light.web.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"nature-light.web.js","sourceRoot":"","sources":["../../src/backgrounds/nature-light.web.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,gBAAgB,MAAM,qBAAqB,CAAC;AAGnD,kFAAkF;AAClF,MAAM,CAAC,MAAM,WAAW,GAAiB,KAAK,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC","sourcesContent":["/// <reference path=\"./assets.d.ts\" />\nimport { Asset } from 'expo-asset';\nimport natureLightAsset from './nature-light.webp';\nimport type { PresetSource } from './preset-source.types';\n\n// Web variant. The bundled WebP's URL, which the background-image effect fetches.\nexport const natureLight: PresetSource = Asset.fromModule(natureLightAsset).uri;\n"]}
@@ -1,2 +0,0 @@
1
- export type PresetSource = string;
2
- //# sourceMappingURL=preset-source.types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"preset-source.types.d.ts","sourceRoot":"","sources":["../../src/backgrounds/preset-source.types.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC","sourcesContent":["// Shared contract for the platform-split preset loaders (office-N.ts / .web.ts).\n// The value a consumer passes as the `background-image` effect's `source`:\n// a fetchable URL on web, the preset name on native. Both variants annotate\n// their export against this so the pair cannot drift.\nexport type PresetSource = string;\n"]}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=preset-source.types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"preset-source.types.js","sourceRoot":"","sources":["../../src/backgrounds/preset-source.types.ts"],"names":[],"mappings":"","sourcesContent":["// Shared contract for the platform-split preset loaders (office-N.ts / .web.ts).\n// The value a consumer passes as the `background-image` effect's `source`:\n// a fetchable URL on web, the preset name on native. Both variants annotate\n// their export against this so the pair cannot drift.\nexport type PresetSource = string;\n"]}
@@ -1,3 +0,0 @@
1
- export declare const BACKGROUND_PRESETS: readonly ['debug-resolutions', 'dark-office', 'light-office', 'home-light', 'home-dark', 'nature-light', 'nature-dark', 'stylized-light', 'stylized-dark', 'simiancraft-light', 'simiancraft-dark'];
2
- export type BackgroundPresetName = (typeof BACKGROUND_PRESETS)[number];
3
- //# sourceMappingURL=presets.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"presets.d.ts","sourceRoot":"","sources":["../../src/backgrounds/presets.ts"],"names":[],"mappings":"AAqBA,eAAO,MAAM,kBAAkB,YAC7B,mBAAmB,EACnB,aAAa,EACb,cAAc,EACd,YAAY,EACZ,WAAW,EACX,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,mBAAmB,EACnB,kBAAkB,CACV,CAAC;AAEX,MAAM,MAAM,oBAAoB,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC","sourcesContent":["// Background-image preset catalog. Single source of truth for the bundled\n// presets the library ships. Consumed by:\n// - src/types.ts (BackgroundImageSpec.source narrows to BackgroundPresetName\n// for autocomplete; a free-form string is also accepted on web for\n// consumer-provided URLs),\n// - src/index.ts (native allowlist derivation; the flat-string upstream\n// registry encodes each preset as `background-image-${name}`),\n// - the Android side mirrors this list at android/.../Registration.kt\n// and android/src/main/assets/backgrounds/<name>.webp.\n// - the iOS side mirrors it at ios/.../Registration.swift and\n// ios/KaleidoscopeModule/resources/backgrounds/<name>.webp.\n// - the demo at demo/app/index.tsx maps each preset name to a bundled\n// WebP via Asset.fromModule for the web target.\n//\n// To add a new preset: append the name here, drop the matching\n// <name>.webp into android/src/main/assets/backgrounds/ and\n// ios/KaleidoscopeModule/resources/backgrounds/, add the require()'d\n// asset to the demo's preset map, and register the factory at both\n// Registration.kt and Registration.swift. The web side picks it up\n// automatically via the literal-union type and the derived native allowlist.\n\nexport const BACKGROUND_PRESETS = [\n 'debug-resolutions',\n 'dark-office',\n 'light-office',\n 'home-light',\n 'home-dark',\n 'nature-light',\n 'nature-dark',\n 'stylized-light',\n 'stylized-dark',\n 'simiancraft-light',\n 'simiancraft-dark',\n] as const;\n\nexport type BackgroundPresetName = (typeof BACKGROUND_PRESETS)[number];\n"]}
@@ -1,34 +0,0 @@
1
- // Background-image preset catalog. Single source of truth for the bundled
2
- // presets the library ships. Consumed by:
3
- // - src/types.ts (BackgroundImageSpec.source narrows to BackgroundPresetName
4
- // for autocomplete; a free-form string is also accepted on web for
5
- // consumer-provided URLs),
6
- // - src/index.ts (native allowlist derivation; the flat-string upstream
7
- // registry encodes each preset as `background-image-${name}`),
8
- // - the Android side mirrors this list at android/.../Registration.kt
9
- // and android/src/main/assets/backgrounds/<name>.webp.
10
- // - the iOS side mirrors it at ios/.../Registration.swift and
11
- // ios/KaleidoscopeModule/resources/backgrounds/<name>.webp.
12
- // - the demo at demo/app/index.tsx maps each preset name to a bundled
13
- // WebP via Asset.fromModule for the web target.
14
- //
15
- // To add a new preset: append the name here, drop the matching
16
- // <name>.webp into android/src/main/assets/backgrounds/ and
17
- // ios/KaleidoscopeModule/resources/backgrounds/, add the require()'d
18
- // asset to the demo's preset map, and register the factory at both
19
- // Registration.kt and Registration.swift. The web side picks it up
20
- // automatically via the literal-union type and the derived native allowlist.
21
- export const BACKGROUND_PRESETS = [
22
- 'debug-resolutions',
23
- 'dark-office',
24
- 'light-office',
25
- 'home-light',
26
- 'home-dark',
27
- 'nature-light',
28
- 'nature-dark',
29
- 'stylized-light',
30
- 'stylized-dark',
31
- 'simiancraft-light',
32
- 'simiancraft-dark',
33
- ];
34
- //# sourceMappingURL=presets.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"presets.js","sourceRoot":"","sources":["../../src/backgrounds/presets.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,0CAA0C;AAC1C,+EAA+E;AAC/E,uEAAuE;AACvE,+BAA+B;AAC/B,0EAA0E;AAC1E,mEAAmE;AACnE,wEAAwE;AACxE,2DAA2D;AAC3D,gEAAgE;AAChE,gEAAgE;AAChE,wEAAwE;AACxE,oDAAoD;AACpD,EAAE;AACF,+DAA+D;AAC/D,4DAA4D;AAC5D,qEAAqE;AACrE,mEAAmE;AACnE,mEAAmE;AACnE,6EAA6E;AAE7E,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,mBAAmB;IACnB,aAAa;IACb,cAAc;IACd,YAAY;IACZ,WAAW;IACX,cAAc;IACd,aAAa;IACb,gBAAgB;IAChB,eAAe;IACf,mBAAmB;IACnB,kBAAkB;CACV,CAAC","sourcesContent":["// Background-image preset catalog. Single source of truth for the bundled\n// presets the library ships. Consumed by:\n// - src/types.ts (BackgroundImageSpec.source narrows to BackgroundPresetName\n// for autocomplete; a free-form string is also accepted on web for\n// consumer-provided URLs),\n// - src/index.ts (native allowlist derivation; the flat-string upstream\n// registry encodes each preset as `background-image-${name}`),\n// - the Android side mirrors this list at android/.../Registration.kt\n// and android/src/main/assets/backgrounds/<name>.webp.\n// - the iOS side mirrors it at ios/.../Registration.swift and\n// ios/KaleidoscopeModule/resources/backgrounds/<name>.webp.\n// - the demo at demo/app/index.tsx maps each preset name to a bundled\n// WebP via Asset.fromModule for the web target.\n//\n// To add a new preset: append the name here, drop the matching\n// <name>.webp into android/src/main/assets/backgrounds/ and\n// ios/KaleidoscopeModule/resources/backgrounds/, add the require()'d\n// asset to the demo's preset map, and register the factory at both\n// Registration.kt and Registration.swift. The web side picks it up\n// automatically via the literal-union type and the derived native allowlist.\n\nexport const BACKGROUND_PRESETS = [\n 'debug-resolutions',\n 'dark-office',\n 'light-office',\n 'home-light',\n 'home-dark',\n 'nature-light',\n 'nature-dark',\n 'stylized-light',\n 'stylized-dark',\n 'simiancraft-light',\n 'simiancraft-dark',\n] as const;\n\nexport type BackgroundPresetName = (typeof BACKGROUND_PRESETS)[number];\n"]}
@@ -1,3 +0,0 @@
1
- import type { PresetSource } from './preset-source.types';
2
- export declare const simiancraftDark: PresetSource;
3
- //# sourceMappingURL=simiancraft-dark.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"simiancraft-dark.d.ts","sourceRoot":"","sources":["../../src/backgrounds/simiancraft-dark.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAK1D,eAAO,MAAM,eAAe,EAAE,YAAiC,CAAC","sourcesContent":["import type { PresetSource } from './preset-source.types';\n\n// Native variant. The native module loads its own bundled resource by name, so\n// the source is just the preset name; no WebP import, no expo-asset on native.\n// Web is handled by simiancraft-dark.web.ts.\nexport const simiancraftDark: PresetSource = 'simiancraft-dark';\n"]}
@@ -1,5 +0,0 @@
1
- // Native variant. The native module loads its own bundled resource by name, so
2
- // the source is just the preset name; no WebP import, no expo-asset on native.
3
- // Web is handled by simiancraft-dark.web.ts.
4
- export const simiancraftDark = 'simiancraft-dark';
5
- //# sourceMappingURL=simiancraft-dark.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"simiancraft-dark.js","sourceRoot":"","sources":["../../src/backgrounds/simiancraft-dark.ts"],"names":[],"mappings":"AAEA,+EAA+E;AAC/E,+EAA+E;AAC/E,6CAA6C;AAC7C,MAAM,CAAC,MAAM,eAAe,GAAiB,kBAAkB,CAAC","sourcesContent":["import type { PresetSource } from './preset-source.types';\n\n// Native variant. The native module loads its own bundled resource by name, so\n// the source is just the preset name; no WebP import, no expo-asset on native.\n// Web is handled by simiancraft-dark.web.ts.\nexport const simiancraftDark: PresetSource = 'simiancraft-dark';\n"]}
@@ -1,3 +0,0 @@
1
- import type { PresetSource } from './preset-source.types';
2
- export declare const simiancraftDark: PresetSource;
3
- //# sourceMappingURL=simiancraft-dark.web.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"simiancraft-dark.web.d.ts","sourceRoot":"","sources":["../../src/backgrounds/simiancraft-dark.web.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAI1D,eAAO,MAAM,eAAe,EAAE,YAAyD,CAAC","sourcesContent":["/// <reference path=\"./assets.d.ts\" />\nimport { Asset } from 'expo-asset';\nimport type { PresetSource } from './preset-source.types';\nimport simiancraftDarkAsset from './simiancraft-dark.webp';\n\n// Web variant. The bundled WebP's URL, which the background-image effect fetches.\nexport const simiancraftDark: PresetSource = Asset.fromModule(simiancraftDarkAsset).uri;\n"]}
@@ -1,6 +0,0 @@
1
- /// <reference path="./assets.d.ts" />
2
- import { Asset } from 'expo-asset';
3
- import simiancraftDarkAsset from './simiancraft-dark.webp';
4
- // Web variant. The bundled WebP's URL, which the background-image effect fetches.
5
- export const simiancraftDark = Asset.fromModule(simiancraftDarkAsset).uri;
6
- //# sourceMappingURL=simiancraft-dark.web.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"simiancraft-dark.web.js","sourceRoot":"","sources":["../../src/backgrounds/simiancraft-dark.web.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,OAAO,oBAAoB,MAAM,yBAAyB,CAAC;AAE3D,kFAAkF;AAClF,MAAM,CAAC,MAAM,eAAe,GAAiB,KAAK,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC,GAAG,CAAC","sourcesContent":["/// <reference path=\"./assets.d.ts\" />\nimport { Asset } from 'expo-asset';\nimport type { PresetSource } from './preset-source.types';\nimport simiancraftDarkAsset from './simiancraft-dark.webp';\n\n// Web variant. The bundled WebP's URL, which the background-image effect fetches.\nexport const simiancraftDark: PresetSource = Asset.fromModule(simiancraftDarkAsset).uri;\n"]}
@@ -1,3 +0,0 @@
1
- import type { PresetSource } from './preset-source.types';
2
- export declare const simiancraftLight: PresetSource;
3
- //# sourceMappingURL=simiancraft-light.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"simiancraft-light.d.ts","sourceRoot":"","sources":["../../src/backgrounds/simiancraft-light.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAK1D,eAAO,MAAM,gBAAgB,EAAE,YAAkC,CAAC","sourcesContent":["import type { PresetSource } from './preset-source.types';\n\n// Native variant. The native module loads its own bundled resource by name, so\n// the source is just the preset name; no WebP import, no expo-asset on native.\n// Web is handled by simiancraft-light.web.ts.\nexport const simiancraftLight: PresetSource = 'simiancraft-light';\n"]}
@@ -1,5 +0,0 @@
1
- // Native variant. The native module loads its own bundled resource by name, so
2
- // the source is just the preset name; no WebP import, no expo-asset on native.
3
- // Web is handled by simiancraft-light.web.ts.
4
- export const simiancraftLight = 'simiancraft-light';
5
- //# sourceMappingURL=simiancraft-light.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"simiancraft-light.js","sourceRoot":"","sources":["../../src/backgrounds/simiancraft-light.ts"],"names":[],"mappings":"AAEA,+EAA+E;AAC/E,+EAA+E;AAC/E,8CAA8C;AAC9C,MAAM,CAAC,MAAM,gBAAgB,GAAiB,mBAAmB,CAAC","sourcesContent":["import type { PresetSource } from './preset-source.types';\n\n// Native variant. The native module loads its own bundled resource by name, so\n// the source is just the preset name; no WebP import, no expo-asset on native.\n// Web is handled by simiancraft-light.web.ts.\nexport const simiancraftLight: PresetSource = 'simiancraft-light';\n"]}
@@ -1,3 +0,0 @@
1
- import type { PresetSource } from './preset-source.types';
2
- export declare const simiancraftLight: PresetSource;
3
- //# sourceMappingURL=simiancraft-light.web.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"simiancraft-light.web.d.ts","sourceRoot":"","sources":["../../src/backgrounds/simiancraft-light.web.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAI1D,eAAO,MAAM,gBAAgB,EAAE,YAA0D,CAAC","sourcesContent":["/// <reference path=\"./assets.d.ts\" />\nimport { Asset } from 'expo-asset';\nimport type { PresetSource } from './preset-source.types';\nimport simiancraftLightAsset from './simiancraft-light.webp';\n\n// Web variant. The bundled WebP's URL, which the background-image effect fetches.\nexport const simiancraftLight: PresetSource = Asset.fromModule(simiancraftLightAsset).uri;\n"]}
@@ -1,6 +0,0 @@
1
- /// <reference path="./assets.d.ts" />
2
- import { Asset } from 'expo-asset';
3
- import simiancraftLightAsset from './simiancraft-light.webp';
4
- // Web variant. The bundled WebP's URL, which the background-image effect fetches.
5
- export const simiancraftLight = Asset.fromModule(simiancraftLightAsset).uri;
6
- //# sourceMappingURL=simiancraft-light.web.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"simiancraft-light.web.js","sourceRoot":"","sources":["../../src/backgrounds/simiancraft-light.web.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,OAAO,qBAAqB,MAAM,0BAA0B,CAAC;AAE7D,kFAAkF;AAClF,MAAM,CAAC,MAAM,gBAAgB,GAAiB,KAAK,CAAC,UAAU,CAAC,qBAAqB,CAAC,CAAC,GAAG,CAAC","sourcesContent":["/// <reference path=\"./assets.d.ts\" />\nimport { Asset } from 'expo-asset';\nimport type { PresetSource } from './preset-source.types';\nimport simiancraftLightAsset from './simiancraft-light.webp';\n\n// Web variant. The bundled WebP's URL, which the background-image effect fetches.\nexport const simiancraftLight: PresetSource = Asset.fromModule(simiancraftLightAsset).uri;\n"]}
@@ -1,3 +0,0 @@
1
- import type { PresetSource } from './preset-source.types';
2
- export declare const stylizedDark: PresetSource;
3
- //# sourceMappingURL=stylized-dark.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"stylized-dark.d.ts","sourceRoot":"","sources":["../../src/backgrounds/stylized-dark.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAK1D,eAAO,MAAM,YAAY,EAAE,YAA8B,CAAC","sourcesContent":["import type { PresetSource } from './preset-source.types';\n\n// Native variant. The native module loads its own bundled resource by name, so\n// the source is just the preset name; no WebP import, no expo-asset on native.\n// Web is handled by stylized-dark.web.ts.\nexport const stylizedDark: PresetSource = 'stylized-dark';\n"]}
@@ -1,5 +0,0 @@
1
- // Native variant. The native module loads its own bundled resource by name, so
2
- // the source is just the preset name; no WebP import, no expo-asset on native.
3
- // Web is handled by stylized-dark.web.ts.
4
- export const stylizedDark = 'stylized-dark';
5
- //# sourceMappingURL=stylized-dark.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"stylized-dark.js","sourceRoot":"","sources":["../../src/backgrounds/stylized-dark.ts"],"names":[],"mappings":"AAEA,+EAA+E;AAC/E,+EAA+E;AAC/E,0CAA0C;AAC1C,MAAM,CAAC,MAAM,YAAY,GAAiB,eAAe,CAAC","sourcesContent":["import type { PresetSource } from './preset-source.types';\n\n// Native variant. The native module loads its own bundled resource by name, so\n// the source is just the preset name; no WebP import, no expo-asset on native.\n// Web is handled by stylized-dark.web.ts.\nexport const stylizedDark: PresetSource = 'stylized-dark';\n"]}
@@ -1,3 +0,0 @@
1
- import type { PresetSource } from './preset-source.types';
2
- export declare const stylizedDark: PresetSource;
3
- //# sourceMappingURL=stylized-dark.web.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"stylized-dark.web.d.ts","sourceRoot":"","sources":["../../src/backgrounds/stylized-dark.web.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAI1D,eAAO,MAAM,YAAY,EAAE,YAAsD,CAAC","sourcesContent":["/// <reference path=\"./assets.d.ts\" />\nimport { Asset } from 'expo-asset';\nimport type { PresetSource } from './preset-source.types';\nimport stylizedDarkAsset from './stylized-dark.webp';\n\n// Web variant. The bundled WebP's URL, which the background-image effect fetches.\nexport const stylizedDark: PresetSource = Asset.fromModule(stylizedDarkAsset).uri;\n"]}
@@ -1,6 +0,0 @@
1
- /// <reference path="./assets.d.ts" />
2
- import { Asset } from 'expo-asset';
3
- import stylizedDarkAsset from './stylized-dark.webp';
4
- // Web variant. The bundled WebP's URL, which the background-image effect fetches.
5
- export const stylizedDark = Asset.fromModule(stylizedDarkAsset).uri;
6
- //# sourceMappingURL=stylized-dark.web.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"stylized-dark.web.js","sourceRoot":"","sources":["../../src/backgrounds/stylized-dark.web.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,OAAO,iBAAiB,MAAM,sBAAsB,CAAC;AAErD,kFAAkF;AAClF,MAAM,CAAC,MAAM,YAAY,GAAiB,KAAK,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC","sourcesContent":["/// <reference path=\"./assets.d.ts\" />\nimport { Asset } from 'expo-asset';\nimport type { PresetSource } from './preset-source.types';\nimport stylizedDarkAsset from './stylized-dark.webp';\n\n// Web variant. The bundled WebP's URL, which the background-image effect fetches.\nexport const stylizedDark: PresetSource = Asset.fromModule(stylizedDarkAsset).uri;\n"]}
Binary file
@@ -1,3 +0,0 @@
1
- import type { PresetSource } from './preset-source.types';
2
- export declare const stylizedLight: PresetSource;
3
- //# sourceMappingURL=stylized-light.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"stylized-light.d.ts","sourceRoot":"","sources":["../../src/backgrounds/stylized-light.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAK1D,eAAO,MAAM,aAAa,EAAE,YAA+B,CAAC","sourcesContent":["import type { PresetSource } from './preset-source.types';\n\n// Native variant. The native module loads its own bundled resource by name, so\n// the source is just the preset name; no WebP import, no expo-asset on native.\n// Web is handled by stylized-light.web.ts.\nexport const stylizedLight: PresetSource = 'stylized-light';\n"]}
@@ -1,5 +0,0 @@
1
- // Native variant. The native module loads its own bundled resource by name, so
2
- // the source is just the preset name; no WebP import, no expo-asset on native.
3
- // Web is handled by stylized-light.web.ts.
4
- export const stylizedLight = 'stylized-light';
5
- //# sourceMappingURL=stylized-light.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"stylized-light.js","sourceRoot":"","sources":["../../src/backgrounds/stylized-light.ts"],"names":[],"mappings":"AAEA,+EAA+E;AAC/E,+EAA+E;AAC/E,2CAA2C;AAC3C,MAAM,CAAC,MAAM,aAAa,GAAiB,gBAAgB,CAAC","sourcesContent":["import type { PresetSource } from './preset-source.types';\n\n// Native variant. The native module loads its own bundled resource by name, so\n// the source is just the preset name; no WebP import, no expo-asset on native.\n// Web is handled by stylized-light.web.ts.\nexport const stylizedLight: PresetSource = 'stylized-light';\n"]}
@@ -1,3 +0,0 @@
1
- import type { PresetSource } from './preset-source.types';
2
- export declare const stylizedLight: PresetSource;
3
- //# sourceMappingURL=stylized-light.web.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"stylized-light.web.d.ts","sourceRoot":"","sources":["../../src/backgrounds/stylized-light.web.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAI1D,eAAO,MAAM,aAAa,EAAE,YAAuD,CAAC","sourcesContent":["/// <reference path=\"./assets.d.ts\" />\nimport { Asset } from 'expo-asset';\nimport type { PresetSource } from './preset-source.types';\nimport stylizedLightAsset from './stylized-light.webp';\n\n// Web variant. The bundled WebP's URL, which the background-image effect fetches.\nexport const stylizedLight: PresetSource = Asset.fromModule(stylizedLightAsset).uri;\n"]}
@@ -1,6 +0,0 @@
1
- /// <reference path="./assets.d.ts" />
2
- import { Asset } from 'expo-asset';
3
- import stylizedLightAsset from './stylized-light.webp';
4
- // Web variant. The bundled WebP's URL, which the background-image effect fetches.
5
- export const stylizedLight = Asset.fromModule(stylizedLightAsset).uri;
6
- //# sourceMappingURL=stylized-light.web.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"stylized-light.web.js","sourceRoot":"","sources":["../../src/backgrounds/stylized-light.web.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,OAAO,kBAAkB,MAAM,uBAAuB,CAAC;AAEvD,kFAAkF;AAClF,MAAM,CAAC,MAAM,aAAa,GAAiB,KAAK,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC,GAAG,CAAC","sourcesContent":["/// <reference path=\"./assets.d.ts\" />\nimport { Asset } from 'expo-asset';\nimport type { PresetSource } from './preset-source.types';\nimport stylizedLightAsset from './stylized-light.webp';\n\n// Web variant. The bundled WebP's URL, which the background-image effect fetches.\nexport const stylizedLight: PresetSource = Asset.fromModule(stylizedLightAsset).uri;\n"]}
package/dist/index.d.ts DELETED
@@ -1,42 +0,0 @@
1
- import { type ApplyVideoEffects } from './types';
2
- /**
3
- * Set the Gaussian sigma for the blur effect. Higher = softer blur.
4
- * Clamped to [0.5, 7] (the useful range before the linear-sampled kernel
5
- * truncates and bands). Default 5.
6
- */
7
- export declare const setBlurSigma: (value: number) => void;
8
- /**
9
- * Set the mask smoothstep hardness for blur and background-image
10
- * composites, in [0, 1]. 0 = soft halo, 1 = near-step edge. Default 0.5.
11
- */
12
- export declare const setMaskHardness: (value: number) => void;
13
- /**
14
- * Set the mask smoothstep threshold (center of the transition) in
15
- * [0.05, 0.95]. 0.5 is neutral. Higher values reject low-confidence
16
- * pixels (helps tighten the silhouette against chair-edge noise);
17
- * lower values are more inclusive. Optimal value is platform-specific:
18
- * all three platforms run MediaPipe selfie segmentation, but the input
19
- * downscale and API variant differ and produce different confidence
20
- * distributions.
21
- */
22
- export declare const setMaskThreshold: (value: number) => void;
23
- /**
24
- * Set the segmentation input short-side (px). The person mask is computed from
25
- * an input downscaled to this; lower = cheaper segmentation (helps on older
26
- * devices like the A11), softer mask edge. Default 384, clamped [128, 1080]
27
- * identically on both native platforms. Native only; the web pipeline ignores it.
28
- */
29
- export declare const setSegmentationTargetShortSide: (value: number) => void;
30
- /**
31
- * Toggle native per-frame GPU/segmentation timing logs (off by default). iOS
32
- * logs under os_log "Perf"; Android under the "Perf" logcat tag.
33
- */
34
- export declare const setDebugTiming: (value: boolean) => void;
35
- /**
36
- * Reset all effect tuning parameters to library defaults.
37
- */
38
- export declare const resetEffectTuning: () => void;
39
- export type { BackgroundPresetName } from './backgrounds';
40
- export type { ApplyVideoEffects, BackgroundImageSpec, BlurSpec, EffectInput, EffectName, EffectSpec, TransformName, TransformSpec, } from './types';
41
- export declare const applyVideoEffects: ApplyVideoEffects;
42
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,KAAK,iBAAiB,EAAgB,MAAM,SAAS,CAAC;AAiB/D;;;;GAIG;AACH,eAAO,MAAM,YAAY,UAAW,MAAM,KAAG,IAE5C,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,eAAe,UAAW,MAAM,KAAG,IAE/C,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,gBAAgB,UAAW,MAAM,KAAG,IAEhD,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,8BAA8B,UAAW,MAAM,KAAG,IAE9D,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,cAAc,UAAW,OAAO,KAAG,IAE/C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,QAAO,IAEpC,CAAC;AAEF,YAAY,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAC1D,YAAY,EACV,iBAAiB,EACjB,mBAAmB,EACnB,QAAQ,EACR,WAAW,EACX,UAAU,EACV,UAAU,EACV,aAAa,EACb,aAAa,GACd,MAAM,SAAS,CAAC;AAsEjB,eAAO,MAAM,iBAAiB,EAAE,iBAkD/B,CAAC","sourcesContent":["// Native entry point. Metro picks this up via package.json \"react-native\"\n// and the \".\" subpath export's \"react-native\" condition.\n//\n// Thin facade over `track._setVideoEffects(names)` from react-native-webrtc.\n// Native frame processors are registered at app boot by the Expo Module's\n// OnCreate hook (see android/.../KaleidoscopeModule.kt and ios/.../KaleidoscopeModule.swift);\n// this facade just dispatches into the existing upstream registry.\n\nimport { requireNativeModule } from 'expo-modules-core';\nimport { Platform } from 'react-native';\nimport { BACKGROUND_PRESETS } from './backgrounds';\nimport { type ApplyVideoEffects, toEffectSpec } from './types';\n\ninterface KaleidoscopeNativeModule {\n setBlurSigma: (value: number) => void;\n setMaskHardness: (value: number) => void;\n setMaskThreshold: (value: number) => void;\n setSegmentationTargetShortSide: (value: number) => void;\n setDebugTiming: (value: boolean) => void;\n resetEffectTuning: () => void;\n}\n\n// Lazy because the module is not available during pure-JS tests; the\n// getter throws if you call a setter outside a real native runtime, which\n// is the right failure mode.\nconst nativeModule = (): KaleidoscopeNativeModule =>\n requireNativeModule<KaleidoscopeNativeModule>('RnWebrtcKaleidoscope');\n\n/**\n * Set the Gaussian sigma for the blur effect. Higher = softer blur.\n * Clamped to [0.5, 7] (the useful range before the linear-sampled kernel\n * truncates and bands). Default 5.\n */\nexport const setBlurSigma = (value: number): void => {\n nativeModule().setBlurSigma(value);\n};\n\n/**\n * Set the mask smoothstep hardness for blur and background-image\n * composites, in [0, 1]. 0 = soft halo, 1 = near-step edge. Default 0.5.\n */\nexport const setMaskHardness = (value: number): void => {\n nativeModule().setMaskHardness(value);\n};\n\n/**\n * Set the mask smoothstep threshold (center of the transition) in\n * [0.05, 0.95]. 0.5 is neutral. Higher values reject low-confidence\n * pixels (helps tighten the silhouette against chair-edge noise);\n * lower values are more inclusive. Optimal value is platform-specific:\n * all three platforms run MediaPipe selfie segmentation, but the input\n * downscale and API variant differ and produce different confidence\n * distributions.\n */\nexport const setMaskThreshold = (value: number): void => {\n nativeModule().setMaskThreshold(value);\n};\n\n/**\n * Set the segmentation input short-side (px). The person mask is computed from\n * an input downscaled to this; lower = cheaper segmentation (helps on older\n * devices like the A11), softer mask edge. Default 384, clamped [128, 1080]\n * identically on both native platforms. Native only; the web pipeline ignores it.\n */\nexport const setSegmentationTargetShortSide = (value: number): void => {\n nativeModule().setSegmentationTargetShortSide(value);\n};\n\n/**\n * Toggle native per-frame GPU/segmentation timing logs (off by default). iOS\n * logs under os_log \"Perf\"; Android under the \"Perf\" logcat tag.\n */\nexport const setDebugTiming = (value: boolean): void => {\n nativeModule().setDebugTiming(value);\n};\n\n/**\n * Reset all effect tuning parameters to library defaults.\n */\nexport const resetEffectTuning = (): void => {\n nativeModule().resetEffectTuning();\n};\n\nexport type { BackgroundPresetName } from './backgrounds';\nexport type {\n ApplyVideoEffects,\n BackgroundImageSpec,\n BlurSpec,\n EffectInput,\n EffectName,\n EffectSpec,\n TransformName,\n TransformSpec,\n} from './types';\n\ninterface WebRTCTrackExtensions {\n remote?: boolean;\n // Upstream's typed signature is `string[]`, but the platforms diverge on\n // how to clear effects:\n // - Android: passing `null` takes the\n // `videoSource.setVideoProcessor(null)` branch (the only correct clear\n // path); passing `[]` crashes EglRenderer.\n // - iOS: the Obj-C method declares `names` as `nonnull NSArray<NSString *>`,\n // so `null` violates the bridge contract; `[]` is the supported clear\n // value (iOS's `VideoEffectProcessor` with no processors is a\n // passthrough).\n // We type the parameter as the union so the facade can platform-split at\n // the call site. See `applyVideoEffects` below.\n _setVideoEffects?: (names: ReadonlyArray<string> | null) => void;\n}\n\n// Effect names registered native-side in Registration.kt / Registration.swift.\n// Anything not in this list gets filtered out before reaching upstream,\n// because rn-webrtc's setVideoEffects calls ProcessorProvider.getProcessor()\n// and filters nulls into an empty list, which then hits the\n// VideoEffectProcessor empty-processors-list bug (refcount goes negative,\n// EglRenderer crashes one frame later). Until each effect ships a native\n// factory, dropping its name here is the safe behavior.\n//\n// Background-image preset names come from src/backgrounds.ts; the encoder\n// turns `{name:'background-image', source:'dark-office'}` into the flat-string\n// `'background-image-dark-office'` because the rn-webrtc native registry is\n// keyed by flat strings (parameterization via uniforms is a follow-up).\n//\n// iOS registers the same effects via ios/.../Registration.swift. Each\n// platform's allowlist matches exactly what its native Registration installs;\n// anything else is filtered out before reaching upstream so a name with no\n// registered processor never triggers the empty-processors-list crash.\n// The four geometric transform ops share one native processor per platform\n// (TransformFactory on Android, TransformProcessor on iOS); each is a flat name.\nconst TRANSFORM_EFFECTS: readonly string[] = ['flip-x', 'flip-y', 'rotate-cw', 'rotate-ccw'];\n\n// Android (Registration.kt) and iOS (Registration.swift) install an identical\n// effect set, so one list covers both natives. If the platforms ever diverge,\n// split this back into per-platform lists keyed off Platform.OS.\nconst NATIVE_REGISTERED_EFFECTS_LIST: readonly string[] = [\n ...TRANSFORM_EFFECTS,\n 'blur',\n ...BACKGROUND_PRESETS.map((name) => `background-image-${name}`),\n];\n\nconst registeredForPlatform = (): readonly string[] =>\n Platform.OS === 'android' || Platform.OS === 'ios' ? NATIVE_REGISTERED_EFFECTS_LIST : [];\n\nconst NATIVE_REGISTERED_EFFECTS: ReadonlySet<string> = new Set(registeredForPlatform());\n\nconst specToNativeName = (spec: ReturnType<typeof toEffectSpec>): string => {\n // background-image uses one registered factory per source preset.\n // {name: 'background-image', source: 'dark-office'} -> 'background-image-dark-office'\n if (spec.name === 'background-image') {\n return `background-image-${spec.source}`;\n }\n return spec.name;\n};\n\n// Last effect set applied to each track, as a stable signature. Used to skip\n// redundant native calls: rn-webrtc rebuilds the native frame processors on\n// EVERY _setVideoEffects call (Android constructs a fresh processor per call),\n// so re-issuing an unchanged set (a React re-render, an idempotent effect\n// hook) churns GL + segmentation resources for no reason. The WeakMap lets the\n// entry be collected when the track is.\nconst lastAppliedSignatureByTrack = new WeakMap<object, string>();\n\nexport const applyVideoEffects: ApplyVideoEffects = (track, effects) => {\n const t = track as MediaStreamTrack & WebRTCTrackExtensions;\n if (t.remote) {\n throw new Error('kaleidoscope: cannot apply effects to remote tracks');\n }\n if (typeof t._setVideoEffects !== 'function') {\n throw new Error(\n 'kaleidoscope: track has no _setVideoEffects method (is react-native-webrtc >=124 installed?)',\n );\n }\n // Native side currently only consumes effect names. Spec parameters (blur\n // sigma, etc.) are dropped here; they wire through in a follow-up commit\n // once the GPU effects accept uniforms.\n const allNames = effects.map((e) => specToNativeName(toEffectSpec(e)));\n const names = allNames.filter((n) => NATIVE_REGISTERED_EFFECTS.has(n));\n\n // Dedup against the last set applied to this track. Order is significant\n // (effects chain in array order), so the signature preserves it. Skip the\n // native call when nothing changed; the first call for any given set always\n // proceeds (no prior entry).\n const signature = names.join('\\n');\n if (lastAppliedSignatureByTrack.get(track) === signature) {\n return track;\n }\n lastAppliedSignatureByTrack.set(track, signature);\n\n const dropped = allNames.filter((n) => !NATIVE_REGISTERED_EFFECTS.has(n));\n if (dropped.length > 0) {\n console.warn(\n `kaleidoscope: dropping effects not registered on this native platform: ${dropped.join(', ')}. ` +\n 'Web has its own registry; this is a native-only filter.',\n );\n }\n // Platforms diverge on how to clear effects:\n // - Android: rn-webrtc 124 has a bug where passing `[]` installs a\n // VideoEffectProcessor with an empty processors list, whose\n // onFrameCaptured then double-releases the input frame (retain once,\n // release twice) and crashes EglRenderer one frame later. The only\n // correct clear is `null`, which takes the upstream else-branch that\n // resets the processor via `videoSource.setVideoProcessor(null)`.\n // - iOS: the upstream Obj-C `_setVideoEffects` method declares\n // `names` as `(nonnull NSArray<NSString *> *)`, so passing `null`\n // violates the React Native bridge's nonnull contract. The supported\n // clear value is `[]`, which iOS's VideoEffectProcessor treats as a\n // passthrough (no double-release bug on this platform).\n // The explicit type annotation is required — without it TS widens the\n // empty-array literal to `never[] | null`.\n const clearValue: ReadonlyArray<string> | null = Platform.OS === 'ios' ? [] : null;\n t._setVideoEffects(names.length === 0 ? clearValue : names);\n return track;\n};\n"]}
package/dist/index.js DELETED
@@ -1,155 +0,0 @@
1
- // Native entry point. Metro picks this up via package.json "react-native"
2
- // and the "." subpath export's "react-native" condition.
3
- //
4
- // Thin facade over `track._setVideoEffects(names)` from react-native-webrtc.
5
- // Native frame processors are registered at app boot by the Expo Module's
6
- // OnCreate hook (see android/.../KaleidoscopeModule.kt and ios/.../KaleidoscopeModule.swift);
7
- // this facade just dispatches into the existing upstream registry.
8
- import { requireNativeModule } from 'expo-modules-core';
9
- import { Platform } from 'react-native';
10
- import { BACKGROUND_PRESETS } from './backgrounds';
11
- import { toEffectSpec } from './types';
12
- // Lazy because the module is not available during pure-JS tests; the
13
- // getter throws if you call a setter outside a real native runtime, which
14
- // is the right failure mode.
15
- const nativeModule = () => requireNativeModule('RnWebrtcKaleidoscope');
16
- /**
17
- * Set the Gaussian sigma for the blur effect. Higher = softer blur.
18
- * Clamped to [0.5, 7] (the useful range before the linear-sampled kernel
19
- * truncates and bands). Default 5.
20
- */
21
- export const setBlurSigma = (value) => {
22
- nativeModule().setBlurSigma(value);
23
- };
24
- /**
25
- * Set the mask smoothstep hardness for blur and background-image
26
- * composites, in [0, 1]. 0 = soft halo, 1 = near-step edge. Default 0.5.
27
- */
28
- export const setMaskHardness = (value) => {
29
- nativeModule().setMaskHardness(value);
30
- };
31
- /**
32
- * Set the mask smoothstep threshold (center of the transition) in
33
- * [0.05, 0.95]. 0.5 is neutral. Higher values reject low-confidence
34
- * pixels (helps tighten the silhouette against chair-edge noise);
35
- * lower values are more inclusive. Optimal value is platform-specific:
36
- * all three platforms run MediaPipe selfie segmentation, but the input
37
- * downscale and API variant differ and produce different confidence
38
- * distributions.
39
- */
40
- export const setMaskThreshold = (value) => {
41
- nativeModule().setMaskThreshold(value);
42
- };
43
- /**
44
- * Set the segmentation input short-side (px). The person mask is computed from
45
- * an input downscaled to this; lower = cheaper segmentation (helps on older
46
- * devices like the A11), softer mask edge. Default 384, clamped [128, 1080]
47
- * identically on both native platforms. Native only; the web pipeline ignores it.
48
- */
49
- export const setSegmentationTargetShortSide = (value) => {
50
- nativeModule().setSegmentationTargetShortSide(value);
51
- };
52
- /**
53
- * Toggle native per-frame GPU/segmentation timing logs (off by default). iOS
54
- * logs under os_log "Perf"; Android under the "Perf" logcat tag.
55
- */
56
- export const setDebugTiming = (value) => {
57
- nativeModule().setDebugTiming(value);
58
- };
59
- /**
60
- * Reset all effect tuning parameters to library defaults.
61
- */
62
- export const resetEffectTuning = () => {
63
- nativeModule().resetEffectTuning();
64
- };
65
- // Effect names registered native-side in Registration.kt / Registration.swift.
66
- // Anything not in this list gets filtered out before reaching upstream,
67
- // because rn-webrtc's setVideoEffects calls ProcessorProvider.getProcessor()
68
- // and filters nulls into an empty list, which then hits the
69
- // VideoEffectProcessor empty-processors-list bug (refcount goes negative,
70
- // EglRenderer crashes one frame later). Until each effect ships a native
71
- // factory, dropping its name here is the safe behavior.
72
- //
73
- // Background-image preset names come from src/backgrounds.ts; the encoder
74
- // turns `{name:'background-image', source:'dark-office'}` into the flat-string
75
- // `'background-image-dark-office'` because the rn-webrtc native registry is
76
- // keyed by flat strings (parameterization via uniforms is a follow-up).
77
- //
78
- // iOS registers the same effects via ios/.../Registration.swift. Each
79
- // platform's allowlist matches exactly what its native Registration installs;
80
- // anything else is filtered out before reaching upstream so a name with no
81
- // registered processor never triggers the empty-processors-list crash.
82
- // The four geometric transform ops share one native processor per platform
83
- // (TransformFactory on Android, TransformProcessor on iOS); each is a flat name.
84
- const TRANSFORM_EFFECTS = ['flip-x', 'flip-y', 'rotate-cw', 'rotate-ccw'];
85
- // Android (Registration.kt) and iOS (Registration.swift) install an identical
86
- // effect set, so one list covers both natives. If the platforms ever diverge,
87
- // split this back into per-platform lists keyed off Platform.OS.
88
- const NATIVE_REGISTERED_EFFECTS_LIST = [
89
- ...TRANSFORM_EFFECTS,
90
- 'blur',
91
- ...BACKGROUND_PRESETS.map((name) => `background-image-${name}`),
92
- ];
93
- const registeredForPlatform = () => Platform.OS === 'android' || Platform.OS === 'ios' ? NATIVE_REGISTERED_EFFECTS_LIST : [];
94
- const NATIVE_REGISTERED_EFFECTS = new Set(registeredForPlatform());
95
- const specToNativeName = (spec) => {
96
- // background-image uses one registered factory per source preset.
97
- // {name: 'background-image', source: 'dark-office'} -> 'background-image-dark-office'
98
- if (spec.name === 'background-image') {
99
- return `background-image-${spec.source}`;
100
- }
101
- return spec.name;
102
- };
103
- // Last effect set applied to each track, as a stable signature. Used to skip
104
- // redundant native calls: rn-webrtc rebuilds the native frame processors on
105
- // EVERY _setVideoEffects call (Android constructs a fresh processor per call),
106
- // so re-issuing an unchanged set (a React re-render, an idempotent effect
107
- // hook) churns GL + segmentation resources for no reason. The WeakMap lets the
108
- // entry be collected when the track is.
109
- const lastAppliedSignatureByTrack = new WeakMap();
110
- export const applyVideoEffects = (track, effects) => {
111
- const t = track;
112
- if (t.remote) {
113
- throw new Error('kaleidoscope: cannot apply effects to remote tracks');
114
- }
115
- if (typeof t._setVideoEffects !== 'function') {
116
- throw new Error('kaleidoscope: track has no _setVideoEffects method (is react-native-webrtc >=124 installed?)');
117
- }
118
- // Native side currently only consumes effect names. Spec parameters (blur
119
- // sigma, etc.) are dropped here; they wire through in a follow-up commit
120
- // once the GPU effects accept uniforms.
121
- const allNames = effects.map((e) => specToNativeName(toEffectSpec(e)));
122
- const names = allNames.filter((n) => NATIVE_REGISTERED_EFFECTS.has(n));
123
- // Dedup against the last set applied to this track. Order is significant
124
- // (effects chain in array order), so the signature preserves it. Skip the
125
- // native call when nothing changed; the first call for any given set always
126
- // proceeds (no prior entry).
127
- const signature = names.join('\n');
128
- if (lastAppliedSignatureByTrack.get(track) === signature) {
129
- return track;
130
- }
131
- lastAppliedSignatureByTrack.set(track, signature);
132
- const dropped = allNames.filter((n) => !NATIVE_REGISTERED_EFFECTS.has(n));
133
- if (dropped.length > 0) {
134
- console.warn(`kaleidoscope: dropping effects not registered on this native platform: ${dropped.join(', ')}. ` +
135
- 'Web has its own registry; this is a native-only filter.');
136
- }
137
- // Platforms diverge on how to clear effects:
138
- // - Android: rn-webrtc 124 has a bug where passing `[]` installs a
139
- // VideoEffectProcessor with an empty processors list, whose
140
- // onFrameCaptured then double-releases the input frame (retain once,
141
- // release twice) and crashes EglRenderer one frame later. The only
142
- // correct clear is `null`, which takes the upstream else-branch that
143
- // resets the processor via `videoSource.setVideoProcessor(null)`.
144
- // - iOS: the upstream Obj-C `_setVideoEffects` method declares
145
- // `names` as `(nonnull NSArray<NSString *> *)`, so passing `null`
146
- // violates the React Native bridge's nonnull contract. The supported
147
- // clear value is `[]`, which iOS's VideoEffectProcessor treats as a
148
- // passthrough (no double-release bug on this platform).
149
- // The explicit type annotation is required — without it TS widens the
150
- // empty-array literal to `never[] | null`.
151
- const clearValue = Platform.OS === 'ios' ? [] : null;
152
- t._setVideoEffects(names.length === 0 ? clearValue : names);
153
- return track;
154
- };
155
- //# sourceMappingURL=index.js.map