@supersoniks/concorde 4.9.96 → 4.9.98-visual-stack.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 (1020) hide show
  1. package/README.md +34 -17
  2. package/build-infos.json +1 -1
  3. package/concorde-3d.bundle.js +3911 -0
  4. package/concorde-3d.es.js +32651 -0
  5. package/concorde-core.bundle.js +147 -147
  6. package/concorde-core.es.js +4375 -4282
  7. package/concorde-hugging-face-infer.bundle.js +32 -0
  8. package/concorde-hugging-face-infer.es.js +2952 -0
  9. package/concorde-shader.bundle.js +105 -0
  10. package/concorde-shader.es.js +8127 -0
  11. package/concorde-webgpu.bundle.js +296 -0
  12. package/concorde-webgpu.es.js +8361 -0
  13. package/dist/concorde-3d.bundle.js +3911 -0
  14. package/dist/concorde-3d.es.js +32651 -0
  15. package/dist/concorde-core.bundle.js +147 -147
  16. package/dist/concorde-core.es.js +4375 -4282
  17. package/dist/concorde-hugging-face-infer.bundle.js +32 -0
  18. package/dist/concorde-hugging-face-infer.es.js +2952 -0
  19. package/dist/concorde-shader.bundle.js +105 -0
  20. package/dist/concorde-shader.es.js +8127 -0
  21. package/dist/concorde-webgpu.bundle.js +296 -0
  22. package/dist/concorde-webgpu.es.js +8361 -0
  23. package/dist/docs/hf-samples/beach.jpg +0 -0
  24. package/dist/docs/hf-samples/cats.jpg +0 -0
  25. package/dist/docs/hf-samples/corgi.jpg +0 -0
  26. package/dist/docs/hf-samples/portrait.jpg +0 -0
  27. package/dist/docs/hf-samples/scene.jpg +0 -0
  28. package/dist/docs/hf-samples/singer.jpg +0 -0
  29. package/dist/docs/shader-samples/color.jpg +0 -0
  30. package/dist/docs/shader-samples/depth.png +0 -0
  31. package/dist/docs/shader-samples/impact.jpg +0 -0
  32. package/dist/docs/shader-samples/video.webm +0 -0
  33. package/dist/js/addons/3d.js +6 -0
  34. package/dist/js/addons/3d.js.map +1 -0
  35. package/dist/js/addons/hugging-face-infer.js +8 -0
  36. package/dist/js/addons/hugging-face-infer.js.map +1 -0
  37. package/dist/js/addons/shader.js +6 -0
  38. package/dist/js/addons/shader.js.map +1 -0
  39. package/dist/js/addons/webgpu.js +7 -0
  40. package/dist/js/addons/webgpu.js.map +1 -0
  41. package/dist/js/components.js +12 -0
  42. package/dist/js/components.js.map +1 -0
  43. package/dist/js/concorde-loaded.js +5 -0
  44. package/dist/js/concorde-loaded.js.map +1 -0
  45. package/dist/js/core/_types/endpoint.js +5 -0
  46. package/dist/js/core/_types/endpoint.js.map +1 -0
  47. package/dist/js/core/_types/key.js +2 -0
  48. package/dist/js/core/_types/key.js.map +1 -0
  49. package/dist/js/core/_types/types.js +3 -0
  50. package/dist/js/core/_types/types.js.map +1 -0
  51. package/dist/js/core/components/functional/3d/3d.js +161 -0
  52. package/dist/js/core/components/functional/3d/3d.js.map +1 -0
  53. package/dist/js/core/components/functional/3d/asset.js +20 -0
  54. package/dist/js/core/components/functional/3d/asset.js.map +1 -0
  55. package/dist/js/core/components/functional/3d/boot.js +47 -0
  56. package/dist/js/core/components/functional/3d/boot.js.map +1 -0
  57. package/dist/js/core/components/functional/3d/constants.js +90 -0
  58. package/dist/js/core/components/functional/3d/constants.js.map +1 -0
  59. package/dist/js/core/components/functional/3d/demo-content.js +38 -0
  60. package/dist/js/core/components/functional/3d/demo-content.js.map +1 -0
  61. package/dist/js/core/components/functional/3d/ensure.js +73 -0
  62. package/dist/js/core/components/functional/3d/ensure.js.map +1 -0
  63. package/dist/js/core/components/functional/3d/form-bind.js +25 -0
  64. package/dist/js/core/components/functional/3d/form-bind.js.map +1 -0
  65. package/dist/js/core/components/functional/3d/form-fields.js +76 -0
  66. package/dist/js/core/components/functional/3d/form-fields.js.map +1 -0
  67. package/dist/js/core/components/functional/3d/form-params.js +67 -0
  68. package/dist/js/core/components/functional/3d/form-params.js.map +1 -0
  69. package/dist/js/core/components/functional/3d/frame-capture.js +108 -0
  70. package/dist/js/core/components/functional/3d/frame-capture.js.map +1 -0
  71. package/dist/js/core/components/functional/3d/frame-source.js +22 -0
  72. package/dist/js/core/components/functional/3d/frame-source.js.map +1 -0
  73. package/dist/js/core/components/functional/3d/gl.js +34 -0
  74. package/dist/js/core/components/functional/3d/gl.js.map +1 -0
  75. package/dist/js/core/components/functional/3d/life.js +55 -0
  76. package/dist/js/core/components/functional/3d/life.js.map +1 -0
  77. package/dist/js/core/components/functional/3d/load.js +109 -0
  78. package/dist/js/core/components/functional/3d/load.js.map +1 -0
  79. package/dist/js/core/components/functional/3d/ops.js +78 -0
  80. package/dist/js/core/components/functional/3d/ops.js.map +1 -0
  81. package/dist/js/core/components/functional/3d/opts.js +2 -0
  82. package/dist/js/core/components/functional/3d/opts.js.map +1 -0
  83. package/dist/js/core/components/functional/3d/orbit.js +136 -0
  84. package/dist/js/core/components/functional/3d/orbit.js.map +1 -0
  85. package/dist/js/core/components/functional/3d/out-publish.js +103 -0
  86. package/dist/js/core/components/functional/3d/out-publish.js.map +1 -0
  87. package/dist/js/core/components/functional/3d/parse.js +95 -0
  88. package/dist/js/core/components/functional/3d/parse.js.map +1 -0
  89. package/dist/js/core/components/functional/3d/pick.js +62 -0
  90. package/dist/js/core/components/functional/3d/pick.js.map +1 -0
  91. package/dist/js/core/components/functional/3d/playback.js +56 -0
  92. package/dist/js/core/components/functional/3d/playback.js.map +1 -0
  93. package/dist/js/core/components/functional/3d/pointer.js +58 -0
  94. package/dist/js/core/components/functional/3d/pointer.js.map +1 -0
  95. package/dist/js/core/components/functional/3d/props.js +105 -0
  96. package/dist/js/core/components/functional/3d/props.js.map +1 -0
  97. package/dist/js/core/components/functional/3d/publisher-listen.js +6 -0
  98. package/dist/js/core/components/functional/3d/publisher-listen.js.map +1 -0
  99. package/dist/js/core/components/functional/3d/reload.js +63 -0
  100. package/dist/js/core/components/functional/3d/reload.js.map +1 -0
  101. package/dist/js/core/components/functional/3d/runtime.js +116 -0
  102. package/dist/js/core/components/functional/3d/runtime.js.map +1 -0
  103. package/dist/js/core/components/functional/3d/scene-runtime.js +6 -0
  104. package/dist/js/core/components/functional/3d/scene-runtime.js.map +1 -0
  105. package/dist/js/core/components/functional/3d/snapshot.js +47 -0
  106. package/dist/js/core/components/functional/3d/snapshot.js.map +1 -0
  107. package/dist/js/core/components/functional/3d/styles.js +38 -0
  108. package/dist/js/core/components/functional/3d/styles.js.map +1 -0
  109. package/dist/js/core/components/functional/3d/tune.js +42 -0
  110. package/dist/js/core/components/functional/3d/tune.js.map +1 -0
  111. package/dist/js/core/components/functional/3d/types.js +8 -0
  112. package/dist/js/core/components/functional/3d/types.js.map +1 -0
  113. package/dist/js/core/components/functional/3d/updated.js +58 -0
  114. package/dist/js/core/components/functional/3d/updated.js.map +1 -0
  115. package/dist/js/core/components/functional/3d/view.js +40 -0
  116. package/dist/js/core/components/functional/3d/view.js.map +1 -0
  117. package/dist/js/core/components/functional/3d/wire.js +34 -0
  118. package/dist/js/core/components/functional/3d/wire.js.map +1 -0
  119. package/dist/js/core/components/functional/date/date.js +272 -0
  120. package/dist/js/core/components/functional/date/date.js.map +1 -0
  121. package/dist/js/core/components/functional/example/example.js +44 -0
  122. package/dist/js/core/components/functional/example/example.js.map +1 -0
  123. package/dist/js/core/components/functional/fetch/fetch.js +79 -0
  124. package/dist/js/core/components/functional/fetch/fetch.js.map +1 -0
  125. package/dist/js/core/components/functional/functional.js +18 -0
  126. package/dist/js/core/components/functional/functional.js.map +1 -0
  127. package/dist/js/core/components/functional/if/if.js +39 -0
  128. package/dist/js/core/components/functional/if/if.js.map +1 -0
  129. package/dist/js/core/components/functional/infer/hugging-face/hf-cache.js +183 -0
  130. package/dist/js/core/components/functional/infer/hugging-face/hf-cache.js.map +1 -0
  131. package/dist/js/core/components/functional/infer/hugging-face/hf-config.js +50 -0
  132. package/dist/js/core/components/functional/infer/hugging-face/hf-config.js.map +1 -0
  133. package/dist/js/core/components/functional/infer/hugging-face/hf-controller.js +460 -0
  134. package/dist/js/core/components/functional/infer/hugging-face/hf-controller.js.map +1 -0
  135. package/dist/js/core/components/functional/infer/hugging-face/hf-engine.js +116 -0
  136. package/dist/js/core/components/functional/infer/hugging-face/hf-engine.js.map +1 -0
  137. package/dist/js/core/components/functional/infer/hugging-face/hf-input.js +170 -0
  138. package/dist/js/core/components/functional/infer/hugging-face/hf-input.js.map +1 -0
  139. package/dist/js/core/components/functional/infer/hugging-face/hf-protocol.js +2 -0
  140. package/dist/js/core/components/functional/infer/hugging-face/hf-protocol.js.map +1 -0
  141. package/dist/js/core/components/functional/infer/hugging-face/hf-registry.js +367 -0
  142. package/dist/js/core/components/functional/infer/hugging-face/hf-registry.js.map +1 -0
  143. package/dist/js/core/components/functional/infer/hugging-face/hf-schema.js +288 -0
  144. package/dist/js/core/components/functional/infer/hugging-face/hf-schema.js.map +1 -0
  145. package/dist/js/core/components/functional/infer/hugging-face/hf-worker-runtime.js +309 -0
  146. package/dist/js/core/components/functional/infer/hugging-face/hf-worker-runtime.js.map +1 -0
  147. package/dist/js/core/components/functional/infer/hugging-face/hugging-face-infer.js +213 -0
  148. package/dist/js/core/components/functional/infer/hugging-face/hugging-face-infer.js.map +1 -0
  149. package/dist/js/core/components/functional/infer/hugging-face/hugging-face.js +76 -0
  150. package/dist/js/core/components/functional/infer/hugging-face/hugging-face.js.map +1 -0
  151. package/dist/js/core/components/functional/infer/hugging-face/types.js +62 -0
  152. package/dist/js/core/components/functional/infer/hugging-face/types.js.map +1 -0
  153. package/dist/js/core/components/functional/jsonata/jsonata.js +119 -0
  154. package/dist/js/core/components/functional/jsonata/jsonata.js.map +1 -0
  155. package/dist/js/core/components/functional/list/list.js +341 -0
  156. package/dist/js/core/components/functional/list/list.js.map +1 -0
  157. package/dist/js/core/components/functional/mix/mix.js +103 -0
  158. package/dist/js/core/components/functional/mix/mix.js.map +1 -0
  159. package/dist/js/core/components/functional/queue/queue.js +450 -0
  160. package/dist/js/core/components/functional/queue/queue.js.map +1 -0
  161. package/dist/js/core/components/functional/router/redirect.js +54 -0
  162. package/dist/js/core/components/functional/router/redirect.js.map +1 -0
  163. package/dist/js/core/components/functional/router/router.js +179 -0
  164. package/dist/js/core/components/functional/router/router.js.map +1 -0
  165. package/dist/js/core/components/functional/sdui/SDUIDescriptorTransformer.js +216 -0
  166. package/dist/js/core/components/functional/sdui/SDUIDescriptorTransformer.js.map +1 -0
  167. package/dist/js/core/components/functional/sdui/default-library.json +108 -0
  168. package/dist/js/core/components/functional/sdui/sdui-utils.js +64 -0
  169. package/dist/js/core/components/functional/sdui/sdui-utils.js.map +1 -0
  170. package/dist/js/core/components/functional/sdui/sdui.js +271 -0
  171. package/dist/js/core/components/functional/sdui/sdui.js.map +1 -0
  172. package/dist/js/core/components/functional/sdui/types.js +2 -0
  173. package/dist/js/core/components/functional/sdui/types.js.map +1 -0
  174. package/dist/js/core/components/functional/shader/gl-runtime.js +738 -0
  175. package/dist/js/core/components/functional/shader/gl-runtime.js.map +1 -0
  176. package/dist/js/core/components/functional/shader/shader.js +1642 -0
  177. package/dist/js/core/components/functional/shader/shader.js.map +1 -0
  178. package/dist/js/core/components/functional/shader/shadertoy-prelude.js +48 -0
  179. package/dist/js/core/components/functional/shader/shadertoy-prelude.js.map +1 -0
  180. package/dist/js/core/components/functional/shader/types.js +179 -0
  181. package/dist/js/core/components/functional/shader/types.js.map +1 -0
  182. package/dist/js/core/components/functional/sonic-scope/sonic-scope.js +22 -0
  183. package/dist/js/core/components/functional/sonic-scope/sonic-scope.js.map +1 -0
  184. package/dist/js/core/components/functional/states/states.js +172 -0
  185. package/dist/js/core/components/functional/states/states.js.map +1 -0
  186. package/dist/js/core/components/functional/submit/submit.js +284 -0
  187. package/dist/js/core/components/functional/submit/submit.js.map +1 -0
  188. package/dist/js/core/components/functional/subscriber/subscriber.js +39 -0
  189. package/dist/js/core/components/functional/subscriber/subscriber.js.map +1 -0
  190. package/dist/js/core/components/functional/translation/translation.js +28 -0
  191. package/dist/js/core/components/functional/translation/translation.js.map +1 -0
  192. package/dist/js/core/components/functional/value/value.js +28 -0
  193. package/dist/js/core/components/functional/value/value.js.map +1 -0
  194. package/dist/js/core/components/functional/webgpu/canvas2d-fallback.js +117 -0
  195. package/dist/js/core/components/functional/webgpu/canvas2d-fallback.js.map +1 -0
  196. package/dist/js/core/components/functional/webgpu/form-bind.js +92 -0
  197. package/dist/js/core/components/functional/webgpu/form-bind.js.map +1 -0
  198. package/dist/js/core/components/functional/webgpu/gl-fallback.js +135 -0
  199. package/dist/js/core/components/functional/webgpu/gl-fallback.js.map +1 -0
  200. package/dist/js/core/components/functional/webgpu/gpu-runtime.js +305 -0
  201. package/dist/js/core/components/functional/webgpu/gpu-runtime.js.map +1 -0
  202. package/dist/js/core/components/functional/webgpu/helpers.js +44 -0
  203. package/dist/js/core/components/functional/webgpu/helpers.js.map +1 -0
  204. package/dist/js/core/components/functional/webgpu/out-frame.js +117 -0
  205. package/dist/js/core/components/functional/webgpu/out-frame.js.map +1 -0
  206. package/dist/js/core/components/functional/webgpu/particles-runtime.js +407 -0
  207. package/dist/js/core/components/functional/webgpu/particles-runtime.js.map +1 -0
  208. package/dist/js/core/components/functional/webgpu/pointer.js +56 -0
  209. package/dist/js/core/components/functional/webgpu/pointer.js.map +1 -0
  210. package/dist/js/core/components/functional/webgpu/types.js +24 -0
  211. package/dist/js/core/components/functional/webgpu/types.js.map +1 -0
  212. package/dist/js/core/components/functional/webgpu/webgpu.js +676 -0
  213. package/dist/js/core/components/functional/webgpu/webgpu.js.map +1 -0
  214. package/dist/js/core/components/functional/webgpu/wgsl-prelude.js +77 -0
  215. package/dist/js/core/components/functional/webgpu/wgsl-prelude.js.map +1 -0
  216. package/dist/js/core/components/ui/_css/scroll.js +27 -0
  217. package/dist/js/core/components/ui/_css/scroll.js.map +1 -0
  218. package/dist/js/core/components/ui/_css/shadow.js +22 -0
  219. package/dist/js/core/components/ui/_css/shadow.js.map +1 -0
  220. package/dist/js/core/components/ui/_css/size.js +36 -0
  221. package/dist/js/core/components/ui/_css/size.js.map +1 -0
  222. package/dist/js/core/components/ui/_css/type.js +92 -0
  223. package/dist/js/core/components/ui/_css/type.js.map +1 -0
  224. package/dist/js/core/components/ui/alert/alert.js +213 -0
  225. package/dist/js/core/components/ui/alert/alert.js.map +1 -0
  226. package/dist/js/core/components/ui/alert-messages/alert-messages.js +68 -0
  227. package/dist/js/core/components/ui/alert-messages/alert-messages.js.map +1 -0
  228. package/dist/js/core/components/ui/badge/badge.js +199 -0
  229. package/dist/js/core/components/ui/badge/badge.js.map +1 -0
  230. package/dist/js/core/components/ui/button/button.js +697 -0
  231. package/dist/js/core/components/ui/button/button.js.map +1 -0
  232. package/dist/js/core/components/ui/captcha/altchaStyles.js +226 -0
  233. package/dist/js/core/components/ui/captcha/altchaStyles.js.map +1 -0
  234. package/dist/js/core/components/ui/captcha/captcha.js +167 -0
  235. package/dist/js/core/components/ui/captcha/captcha.js.map +1 -0
  236. package/dist/js/core/components/ui/card/card-footer.js +26 -0
  237. package/dist/js/core/components/ui/card/card-footer.js.map +1 -0
  238. package/dist/js/core/components/ui/card/card-header-descripton.js +30 -0
  239. package/dist/js/core/components/ui/card/card-header-descripton.js.map +1 -0
  240. package/dist/js/core/components/ui/card/card-header.js +79 -0
  241. package/dist/js/core/components/ui/card/card-header.js.map +1 -0
  242. package/dist/js/core/components/ui/card/card-main.js +26 -0
  243. package/dist/js/core/components/ui/card/card-main.js.map +1 -0
  244. package/dist/js/core/components/ui/card/card.js +67 -0
  245. package/dist/js/core/components/ui/card/card.js.map +1 -0
  246. package/dist/js/core/components/ui/divider/divider.js +200 -0
  247. package/dist/js/core/components/ui/divider/divider.js.map +1 -0
  248. package/dist/js/core/components/ui/form/checkbox/checkbox.js +257 -0
  249. package/dist/js/core/components/ui/form/checkbox/checkbox.js.map +1 -0
  250. package/dist/js/core/components/ui/form/css/form-control.js +393 -0
  251. package/dist/js/core/components/ui/form/css/form-control.js.map +1 -0
  252. package/dist/js/core/components/ui/form/fieldset/fieldset.js +124 -0
  253. package/dist/js/core/components/ui/form/fieldset/fieldset.js.map +1 -0
  254. package/dist/js/core/components/ui/form/fieldset/legend-description.js +38 -0
  255. package/dist/js/core/components/ui/form/fieldset/legend-description.js.map +1 -0
  256. package/dist/js/core/components/ui/form/fieldset/legend.js +130 -0
  257. package/dist/js/core/components/ui/form/fieldset/legend.js.map +1 -0
  258. package/dist/js/core/components/ui/form/form-actions/form-actions.js +47 -0
  259. package/dist/js/core/components/ui/form/form-actions/form-actions.js.map +1 -0
  260. package/dist/js/core/components/ui/form/form-layout/form-layout.js +84 -0
  261. package/dist/js/core/components/ui/form/form-layout/form-layout.js.map +1 -0
  262. package/dist/js/core/components/ui/form/input/input.js +316 -0
  263. package/dist/js/core/components/ui/form/input/input.js.map +1 -0
  264. package/dist/js/core/components/ui/form/input/password-helper.js +134 -0
  265. package/dist/js/core/components/ui/form/input/password-helper.js.map +1 -0
  266. package/dist/js/core/components/ui/form/input/same-value-helper.js +85 -0
  267. package/dist/js/core/components/ui/form/input/same-value-helper.js.map +1 -0
  268. package/dist/js/core/components/ui/form/input-autocomplete/input-autocomplete.js +405 -0
  269. package/dist/js/core/components/ui/form/input-autocomplete/input-autocomplete.js.map +1 -0
  270. package/dist/js/core/components/ui/form/radio/radio.js +63 -0
  271. package/dist/js/core/components/ui/form/radio/radio.js.map +1 -0
  272. package/dist/js/core/components/ui/form/select/select.js +323 -0
  273. package/dist/js/core/components/ui/form/select/select.js.map +1 -0
  274. package/dist/js/core/components/ui/form/switch/switch.js +90 -0
  275. package/dist/js/core/components/ui/form/switch/switch.js.map +1 -0
  276. package/dist/js/core/components/ui/form/textarea/textarea.js +162 -0
  277. package/dist/js/core/components/ui/form/textarea/textarea.js.map +1 -0
  278. package/dist/js/core/components/ui/group/group.js +128 -0
  279. package/dist/js/core/components/ui/group/group.js.map +1 -0
  280. package/dist/js/core/components/ui/icon/icon.js +145 -0
  281. package/dist/js/core/components/ui/icon/icon.js.map +1 -0
  282. package/dist/js/core/components/ui/icon/icons.js +184 -0
  283. package/dist/js/core/components/ui/icon/icons.js.map +1 -0
  284. package/dist/js/core/components/ui/icon/icons.json +1 -0
  285. package/dist/js/core/components/ui/image/image.js +160 -0
  286. package/dist/js/core/components/ui/image/image.js.map +1 -0
  287. package/dist/js/core/components/ui/link/link.js +125 -0
  288. package/dist/js/core/components/ui/link/link.js.map +1 -0
  289. package/dist/js/core/components/ui/loader/loader.js +106 -0
  290. package/dist/js/core/components/ui/loader/loader.js.map +1 -0
  291. package/dist/js/core/components/ui/loader/styles/fixed.js +56 -0
  292. package/dist/js/core/components/ui/loader/styles/fixed.js.map +1 -0
  293. package/dist/js/core/components/ui/loader/styles/inline.js +70 -0
  294. package/dist/js/core/components/ui/loader/styles/inline.js.map +1 -0
  295. package/dist/js/core/components/ui/menu/menu-item.js +35 -0
  296. package/dist/js/core/components/ui/menu/menu-item.js.map +1 -0
  297. package/dist/js/core/components/ui/menu/menu.js +436 -0
  298. package/dist/js/core/components/ui/menu/menu.js.map +1 -0
  299. package/dist/js/core/components/ui/modal/modal-actions.js +44 -0
  300. package/dist/js/core/components/ui/modal/modal-actions.js.map +1 -0
  301. package/dist/js/core/components/ui/modal/modal-close.js +56 -0
  302. package/dist/js/core/components/ui/modal/modal-close.js.map +1 -0
  303. package/dist/js/core/components/ui/modal/modal-content.js +27 -0
  304. package/dist/js/core/components/ui/modal/modal-content.js.map +1 -0
  305. package/dist/js/core/components/ui/modal/modal-subtitle.js +34 -0
  306. package/dist/js/core/components/ui/modal/modal-subtitle.js.map +1 -0
  307. package/dist/js/core/components/ui/modal/modal-title.js +35 -0
  308. package/dist/js/core/components/ui/modal/modal-title.js.map +1 -0
  309. package/dist/js/core/components/ui/modal/modal-utils.js +32 -0
  310. package/dist/js/core/components/ui/modal/modal-utils.js.map +1 -0
  311. package/dist/js/core/components/ui/modal/modal.js +568 -0
  312. package/dist/js/core/components/ui/modal/modal.js.map +1 -0
  313. package/dist/js/core/components/ui/pop/pop.js +337 -0
  314. package/dist/js/core/components/ui/pop/pop.js.map +1 -0
  315. package/dist/js/core/components/ui/progress/progress.js +164 -0
  316. package/dist/js/core/components/ui/progress/progress.js.map +1 -0
  317. package/dist/js/core/components/ui/table/table-caption.js +29 -0
  318. package/dist/js/core/components/ui/table/table-caption.js.map +1 -0
  319. package/dist/js/core/components/ui/table/table-tbody.js +41 -0
  320. package/dist/js/core/components/ui/table/table-tbody.js.map +1 -0
  321. package/dist/js/core/components/ui/table/table-td.js +69 -0
  322. package/dist/js/core/components/ui/table/table-td.js.map +1 -0
  323. package/dist/js/core/components/ui/table/table-tfoot.js +28 -0
  324. package/dist/js/core/components/ui/table/table-tfoot.js.map +1 -0
  325. package/dist/js/core/components/ui/table/table-th.js +80 -0
  326. package/dist/js/core/components/ui/table/table-th.js.map +1 -0
  327. package/dist/js/core/components/ui/table/table-thead.js +26 -0
  328. package/dist/js/core/components/ui/table/table-thead.js.map +1 -0
  329. package/dist/js/core/components/ui/table/table-tr.js +67 -0
  330. package/dist/js/core/components/ui/table/table-tr.js.map +1 -0
  331. package/dist/js/core/components/ui/table/table.js +106 -0
  332. package/dist/js/core/components/ui/table/table.js.map +1 -0
  333. package/dist/js/core/components/ui/theme/theme-collection/core-variables.js +74 -0
  334. package/dist/js/core/components/ui/theme/theme-collection/core-variables.js.map +1 -0
  335. package/dist/js/core/components/ui/theme/theme-collection/dark.js +39 -0
  336. package/dist/js/core/components/ui/theme/theme-collection/dark.js.map +1 -0
  337. package/dist/js/core/components/ui/theme/theme-collection/light.js +32 -0
  338. package/dist/js/core/components/ui/theme/theme-collection/light.js.map +1 -0
  339. package/dist/js/core/components/ui/theme/theme.js +150 -0
  340. package/dist/js/core/components/ui/theme/theme.js.map +1 -0
  341. package/dist/js/core/components/ui/toast/message-subscriber.js +41 -0
  342. package/dist/js/core/components/ui/toast/message-subscriber.js.map +1 -0
  343. package/dist/js/core/components/ui/toast/toast-item.js +379 -0
  344. package/dist/js/core/components/ui/toast/toast-item.js.map +1 -0
  345. package/dist/js/core/components/ui/toast/toast.js +269 -0
  346. package/dist/js/core/components/ui/toast/toast.js.map +1 -0
  347. package/dist/js/core/components/ui/toast/types.js +2 -0
  348. package/dist/js/core/components/ui/toast/types.js.map +1 -0
  349. package/dist/js/core/components/ui/tooltip/tooltip.js +219 -0
  350. package/dist/js/core/components/ui/tooltip/tooltip.js.map +1 -0
  351. package/dist/js/core/components/ui/ui.js +41 -0
  352. package/dist/js/core/components/ui/ui.js.map +1 -0
  353. package/dist/js/core/core.js +14 -0
  354. package/dist/js/core/core.js.map +1 -0
  355. package/dist/js/core/decorators/Subscriber.js +10 -0
  356. package/dist/js/core/decorators/Subscriber.js.map +1 -0
  357. package/dist/js/core/decorators/api.js +806 -0
  358. package/dist/js/core/decorators/api.js.map +1 -0
  359. package/dist/js/core/decorators/lifecycle.js +67 -0
  360. package/dist/js/core/decorators/lifecycle.js.map +1 -0
  361. package/dist/js/core/decorators/subscriber/ancestorAttribute.js +27 -0
  362. package/dist/js/core/decorators/subscriber/ancestorAttribute.js.map +1 -0
  363. package/dist/js/core/decorators/subscriber/autoFill.js +26 -0
  364. package/dist/js/core/decorators/subscriber/autoFill.js.map +1 -0
  365. package/dist/js/core/decorators/subscriber/autoSubscribe.js +46 -0
  366. package/dist/js/core/decorators/subscriber/autoSubscribe.js.map +1 -0
  367. package/dist/js/core/decorators/subscriber/bind.js +150 -0
  368. package/dist/js/core/decorators/subscriber/bind.js.map +1 -0
  369. package/dist/js/core/decorators/subscriber/common.js +44 -0
  370. package/dist/js/core/decorators/subscriber/common.js.map +1 -0
  371. package/dist/js/core/decorators/subscriber/derive.js +60 -0
  372. package/dist/js/core/decorators/subscriber/derive.js.map +1 -0
  373. package/dist/js/core/decorators/subscriber/dynamicPath.js +75 -0
  374. package/dist/js/core/decorators/subscriber/dynamicPath.js.map +1 -0
  375. package/dist/js/core/decorators/subscriber/dynamicPropertyWatch.js +138 -0
  376. package/dist/js/core/decorators/subscriber/dynamicPropertyWatch.js.map +1 -0
  377. package/dist/js/core/decorators/subscriber/handle.js +22 -0
  378. package/dist/js/core/decorators/subscriber/handle.js.map +1 -0
  379. package/dist/js/core/decorators/subscriber/onAssign.js +199 -0
  380. package/dist/js/core/decorators/subscriber/onAssign.js.map +1 -0
  381. package/dist/js/core/decorators/subscriber/publish.js +108 -0
  382. package/dist/js/core/decorators/subscriber/publish.js.map +1 -0
  383. package/dist/js/core/decorators/subscriber/publisherPath.js +16 -0
  384. package/dist/js/core/decorators/subscriber/publisherPath.js.map +1 -0
  385. package/dist/js/core/decorators/subscriber/subscribe.js +20 -0
  386. package/dist/js/core/decorators/subscriber/subscribe.js.map +1 -0
  387. package/dist/js/core/directives/DataProvider.js +127 -0
  388. package/dist/js/core/directives/DataProvider.js.map +1 -0
  389. package/dist/js/core/directives/Wording.js +221 -0
  390. package/dist/js/core/directives/Wording.js.map +1 -0
  391. package/dist/js/core/mixins/Fetcher.js +325 -0
  392. package/dist/js/core/mixins/Fetcher.js.map +1 -0
  393. package/dist/js/core/mixins/FormCheckable.js +313 -0
  394. package/dist/js/core/mixins/FormCheckable.js.map +1 -0
  395. package/dist/js/core/mixins/FormElement.js +304 -0
  396. package/dist/js/core/mixins/FormElement.js.map +1 -0
  397. package/dist/js/core/mixins/FormInput.js +82 -0
  398. package/dist/js/core/mixins/FormInput.js.map +1 -0
  399. package/dist/js/core/mixins/Subscriber.js +354 -0
  400. package/dist/js/core/mixins/Subscriber.js.map +1 -0
  401. package/dist/js/core/mixins/TemplatesContainer.js +70 -0
  402. package/dist/js/core/mixins/TemplatesContainer.js.map +1 -0
  403. package/dist/js/core/mixins/mixins.js +7 -0
  404. package/dist/js/core/mixins/mixins.js.map +1 -0
  405. package/dist/js/core/utils/AncestorAttributeObserver.js +140 -0
  406. package/dist/js/core/utils/AncestorAttributeObserver.js.map +1 -0
  407. package/dist/js/core/utils/Arrays.js +141 -0
  408. package/dist/js/core/utils/Arrays.js.map +1 -0
  409. package/dist/js/core/utils/DataBindObserver.js +265 -0
  410. package/dist/js/core/utils/DataBindObserver.js.map +1 -0
  411. package/dist/js/core/utils/Electron.js +14 -0
  412. package/dist/js/core/utils/Electron.js.map +1 -0
  413. package/dist/js/core/utils/Format.js +43 -0
  414. package/dist/js/core/utils/Format.js.map +1 -0
  415. package/dist/js/core/utils/HTML.js +307 -0
  416. package/dist/js/core/utils/HTML.js.map +1 -0
  417. package/dist/js/core/utils/LocationHandler.js +143 -0
  418. package/dist/js/core/utils/LocationHandler.js.map +1 -0
  419. package/dist/js/core/utils/Objects.js +111 -0
  420. package/dist/js/core/utils/Objects.js.map +1 -0
  421. package/dist/js/core/utils/PublisherProxy.js +970 -0
  422. package/dist/js/core/utils/PublisherProxy.js.map +1 -0
  423. package/dist/js/core/utils/SafariScrollGuard.js +384 -0
  424. package/dist/js/core/utils/SafariScrollGuard.js.map +1 -0
  425. package/dist/js/core/utils/Utils.js +19 -0
  426. package/dist/js/core/utils/Utils.js.map +1 -0
  427. package/dist/js/core/utils/aesCrypto.js +98 -0
  428. package/dist/js/core/utils/aesCrypto.js.map +1 -0
  429. package/dist/js/core/utils/api.js +595 -0
  430. package/dist/js/core/utils/api.js.map +1 -0
  431. package/dist/js/core/utils/dataProviderKey.js +64 -0
  432. package/dist/js/core/utils/dataProviderKey.js.map +1 -0
  433. package/dist/js/core/utils/derive.js +246 -0
  434. package/dist/js/core/utils/derive.js.map +1 -0
  435. package/dist/js/core/utils/endpoint.js +74 -0
  436. package/dist/js/core/utils/endpoint.js.map +1 -0
  437. package/dist/js/core/utils/jsonataHelpers.js +84 -0
  438. package/dist/js/core/utils/jsonataHelpers.js.map +1 -0
  439. package/dist/js/core/utils/jsonataRuntime.js +75 -0
  440. package/dist/js/core/utils/jsonataRuntime.js.map +1 -0
  441. package/dist/js/core/utils/mediaRef.js +169 -0
  442. package/dist/js/core/utils/mediaRef.js.map +1 -0
  443. package/dist/js/core/utils/route.js +149 -0
  444. package/dist/js/core/utils/route.js.map +1 -0
  445. package/dist/js/core/utils/similarity.js +44 -0
  446. package/dist/js/core/utils/similarity.js.map +1 -0
  447. package/dist/js/core/utils/url-pattern.js +3 -0
  448. package/dist/js/core/utils/url-pattern.js.map +1 -0
  449. package/dist/js/dataprovider.js +2 -0
  450. package/dist/js/dataprovider.js.map +1 -0
  451. package/dist/js/decorators.js +43 -0
  452. package/dist/js/decorators.js.map +1 -0
  453. package/dist/js/directives.js +30 -0
  454. package/dist/js/directives.js.map +1 -0
  455. package/dist/js/index.js +8 -0
  456. package/dist/js/index.js.map +1 -0
  457. package/dist/js/mixins.js +23 -0
  458. package/dist/js/mixins.js.map +1 -0
  459. package/dist/js/test-utils/TestUtils.js +10 -0
  460. package/dist/js/test-utils/TestUtils.js.map +1 -0
  461. package/dist/js/utils.js +46 -0
  462. package/dist/js/utils.js.map +1 -0
  463. package/dist/types/addons/3d.d.ts +6 -0
  464. package/dist/types/addons/3d.d.ts.map +1 -0
  465. package/dist/types/addons/hugging-face-infer.d.ts +8 -0
  466. package/dist/types/addons/hugging-face-infer.d.ts.map +1 -0
  467. package/dist/types/addons/shader.d.ts +6 -0
  468. package/dist/types/addons/shader.d.ts.map +1 -0
  469. package/dist/types/addons/webgpu.d.ts +7 -0
  470. package/dist/types/addons/webgpu.d.ts.map +1 -0
  471. package/dist/types/components.d.ts +5 -0
  472. package/dist/types/components.d.ts.map +1 -0
  473. package/dist/types/concorde-loaded.d.ts +2 -0
  474. package/dist/types/concorde-loaded.d.ts.map +1 -0
  475. package/dist/types/core/_types/endpoint.d.ts +5 -0
  476. package/dist/types/core/_types/endpoint.d.ts.map +1 -0
  477. package/dist/types/core/_types/key.d.ts +2 -0
  478. package/dist/types/core/_types/key.d.ts.map +1 -0
  479. package/dist/types/core/_types/types.d.ts +28 -0
  480. package/dist/types/core/_types/types.d.ts.map +1 -0
  481. package/dist/types/core/components/functional/3d/3d.d.ts +71 -0
  482. package/dist/types/core/components/functional/3d/3d.d.ts.map +1 -0
  483. package/dist/types/core/components/functional/3d/asset.d.ts +12 -0
  484. package/dist/types/core/components/functional/3d/asset.d.ts.map +1 -0
  485. package/dist/types/core/components/functional/3d/boot.d.ts +23 -0
  486. package/dist/types/core/components/functional/3d/boot.d.ts.map +1 -0
  487. package/dist/types/core/components/functional/3d/constants.d.ts +43 -0
  488. package/dist/types/core/components/functional/3d/constants.d.ts.map +1 -0
  489. package/dist/types/core/components/functional/3d/demo-content.d.ts +10 -0
  490. package/dist/types/core/components/functional/3d/demo-content.d.ts.map +1 -0
  491. package/dist/types/core/components/functional/3d/ensure.d.ts +36 -0
  492. package/dist/types/core/components/functional/3d/ensure.d.ts.map +1 -0
  493. package/dist/types/core/components/functional/3d/form-bind.d.ts +20 -0
  494. package/dist/types/core/components/functional/3d/form-bind.d.ts.map +1 -0
  495. package/dist/types/core/components/functional/3d/form-fields.d.ts +14 -0
  496. package/dist/types/core/components/functional/3d/form-fields.d.ts.map +1 -0
  497. package/dist/types/core/components/functional/3d/form-params.d.ts +37 -0
  498. package/dist/types/core/components/functional/3d/form-params.d.ts.map +1 -0
  499. package/dist/types/core/components/functional/3d/frame-capture.d.ts +33 -0
  500. package/dist/types/core/components/functional/3d/frame-capture.d.ts.map +1 -0
  501. package/dist/types/core/components/functional/3d/frame-source.d.ts +23 -0
  502. package/dist/types/core/components/functional/3d/frame-source.d.ts.map +1 -0
  503. package/dist/types/core/components/functional/3d/gl.d.ts +4 -0
  504. package/dist/types/core/components/functional/3d/gl.d.ts.map +1 -0
  505. package/dist/types/core/components/functional/3d/life.d.ts +41 -0
  506. package/dist/types/core/components/functional/3d/life.d.ts.map +1 -0
  507. package/dist/types/core/components/functional/3d/load.d.ts +36 -0
  508. package/dist/types/core/components/functional/3d/load.d.ts.map +1 -0
  509. package/dist/types/core/components/functional/3d/ops.d.ts +48 -0
  510. package/dist/types/core/components/functional/3d/ops.d.ts.map +1 -0
  511. package/dist/types/core/components/functional/3d/opts.d.ts +16 -0
  512. package/dist/types/core/components/functional/3d/opts.d.ts.map +1 -0
  513. package/dist/types/core/components/functional/3d/orbit.d.ts +55 -0
  514. package/dist/types/core/components/functional/3d/orbit.d.ts.map +1 -0
  515. package/dist/types/core/components/functional/3d/out-publish.d.ts +47 -0
  516. package/dist/types/core/components/functional/3d/out-publish.d.ts.map +1 -0
  517. package/dist/types/core/components/functional/3d/parse.d.ts +23 -0
  518. package/dist/types/core/components/functional/3d/parse.d.ts.map +1 -0
  519. package/dist/types/core/components/functional/3d/pick.d.ts +32 -0
  520. package/dist/types/core/components/functional/3d/pick.d.ts.map +1 -0
  521. package/dist/types/core/components/functional/3d/playback.d.ts +26 -0
  522. package/dist/types/core/components/functional/3d/playback.d.ts.map +1 -0
  523. package/dist/types/core/components/functional/3d/pointer.d.ts +27 -0
  524. package/dist/types/core/components/functional/3d/pointer.d.ts.map +1 -0
  525. package/dist/types/core/components/functional/3d/props.d.ts +30 -0
  526. package/dist/types/core/components/functional/3d/props.d.ts.map +1 -0
  527. package/dist/types/core/components/functional/3d/publisher-listen.d.ts +8 -0
  528. package/dist/types/core/components/functional/3d/publisher-listen.d.ts.map +1 -0
  529. package/dist/types/core/components/functional/3d/reload.d.ts +38 -0
  530. package/dist/types/core/components/functional/3d/reload.d.ts.map +1 -0
  531. package/dist/types/core/components/functional/3d/runtime.d.ts +75 -0
  532. package/dist/types/core/components/functional/3d/runtime.d.ts.map +1 -0
  533. package/dist/types/core/components/functional/3d/scene-runtime.d.ts +6 -0
  534. package/dist/types/core/components/functional/3d/scene-runtime.d.ts.map +1 -0
  535. package/dist/types/core/components/functional/3d/snapshot.d.ts +29 -0
  536. package/dist/types/core/components/functional/3d/snapshot.d.ts.map +1 -0
  537. package/dist/types/core/components/functional/3d/styles.d.ts +2 -0
  538. package/dist/types/core/components/functional/3d/styles.d.ts.map +1 -0
  539. package/dist/types/core/components/functional/3d/tune.d.ts +32 -0
  540. package/dist/types/core/components/functional/3d/tune.d.ts.map +1 -0
  541. package/dist/types/core/components/functional/3d/types.d.ts +140 -0
  542. package/dist/types/core/components/functional/3d/types.d.ts.map +1 -0
  543. package/dist/types/core/components/functional/3d/updated.d.ts +7 -0
  544. package/dist/types/core/components/functional/3d/updated.d.ts.map +1 -0
  545. package/dist/types/core/components/functional/3d/view.d.ts +25 -0
  546. package/dist/types/core/components/functional/3d/view.d.ts.map +1 -0
  547. package/dist/types/core/components/functional/3d/wire.d.ts +32 -0
  548. package/dist/types/core/components/functional/3d/wire.d.ts.map +1 -0
  549. package/dist/types/core/components/functional/date/date.d.ts +52 -0
  550. package/dist/types/core/components/functional/date/date.d.ts.map +1 -0
  551. package/dist/types/core/components/functional/example/example.d.ts +15 -0
  552. package/dist/types/core/components/functional/example/example.d.ts.map +1 -0
  553. package/dist/types/core/components/functional/fetch/fetch.d.ts +102 -0
  554. package/dist/types/core/components/functional/fetch/fetch.d.ts.map +1 -0
  555. package/dist/types/core/components/functional/functional.d.ts +18 -0
  556. package/dist/types/core/components/functional/functional.d.ts.map +1 -0
  557. package/dist/types/core/components/functional/if/if.d.ts +13 -0
  558. package/dist/types/core/components/functional/if/if.d.ts.map +1 -0
  559. package/dist/types/core/components/functional/infer/hugging-face/hf-cache.d.ts +21 -0
  560. package/dist/types/core/components/functional/infer/hugging-face/hf-cache.d.ts.map +1 -0
  561. package/dist/types/core/components/functional/infer/hugging-face/hf-config.d.ts +133 -0
  562. package/dist/types/core/components/functional/infer/hugging-face/hf-config.d.ts.map +1 -0
  563. package/dist/types/core/components/functional/infer/hugging-face/hf-controller.d.ts +79 -0
  564. package/dist/types/core/components/functional/infer/hugging-face/hf-controller.d.ts.map +1 -0
  565. package/dist/types/core/components/functional/infer/hugging-face/hf-engine.d.ts +43 -0
  566. package/dist/types/core/components/functional/infer/hugging-face/hf-engine.d.ts.map +1 -0
  567. package/dist/types/core/components/functional/infer/hugging-face/hf-input.d.ts +47 -0
  568. package/dist/types/core/components/functional/infer/hugging-face/hf-input.d.ts.map +1 -0
  569. package/dist/types/core/components/functional/infer/hugging-face/hf-protocol.d.ts +95 -0
  570. package/dist/types/core/components/functional/infer/hugging-face/hf-protocol.d.ts.map +1 -0
  571. package/dist/types/core/components/functional/infer/hugging-face/hf-registry.d.ts +77 -0
  572. package/dist/types/core/components/functional/infer/hugging-face/hf-registry.d.ts.map +1 -0
  573. package/dist/types/core/components/functional/infer/hugging-face/hf-schema.d.ts +1251 -0
  574. package/dist/types/core/components/functional/infer/hugging-face/hf-schema.d.ts.map +1 -0
  575. package/dist/types/core/components/functional/infer/hugging-face/hf-worker-runtime.d.ts +56 -0
  576. package/dist/types/core/components/functional/infer/hugging-face/hf-worker-runtime.d.ts.map +1 -0
  577. package/dist/types/core/components/functional/infer/hugging-face/hugging-face-infer.d.ts +67 -0
  578. package/dist/types/core/components/functional/infer/hugging-face/hugging-face-infer.d.ts.map +1 -0
  579. package/dist/types/core/components/functional/infer/hugging-face/hugging-face.d.ts +116 -0
  580. package/dist/types/core/components/functional/infer/hugging-face/hugging-face.d.ts.map +1 -0
  581. package/dist/types/core/components/functional/infer/hugging-face/types.d.ts +167 -0
  582. package/dist/types/core/components/functional/infer/hugging-face/types.d.ts.map +1 -0
  583. package/dist/types/core/components/functional/jsonata/jsonata.d.ts +29 -0
  584. package/dist/types/core/components/functional/jsonata/jsonata.d.ts.map +1 -0
  585. package/dist/types/core/components/functional/list/list.d.ts +149 -0
  586. package/dist/types/core/components/functional/list/list.d.ts.map +1 -0
  587. package/dist/types/core/components/functional/mix/mix.d.ts +23 -0
  588. package/dist/types/core/components/functional/mix/mix.d.ts.map +1 -0
  589. package/dist/types/core/components/functional/queue/queue.d.ts +93 -0
  590. package/dist/types/core/components/functional/queue/queue.d.ts.map +1 -0
  591. package/dist/types/core/components/functional/router/redirect.d.ts +19 -0
  592. package/dist/types/core/components/functional/router/redirect.d.ts.map +1 -0
  593. package/dist/types/core/components/functional/router/router.d.ts +46 -0
  594. package/dist/types/core/components/functional/router/router.d.ts.map +1 -0
  595. package/dist/types/core/components/functional/sdui/SDUIDescriptorTransformer.d.ts +59 -0
  596. package/dist/types/core/components/functional/sdui/SDUIDescriptorTransformer.d.ts.map +1 -0
  597. package/dist/types/core/components/functional/sdui/sdui-utils.d.ts +6 -0
  598. package/dist/types/core/components/functional/sdui/sdui-utils.d.ts.map +1 -0
  599. package/dist/types/core/components/functional/sdui/sdui.d.ts +148 -0
  600. package/dist/types/core/components/functional/sdui/sdui.d.ts.map +1 -0
  601. package/dist/types/core/components/functional/sdui/types.d.ts +38 -0
  602. package/dist/types/core/components/functional/sdui/types.d.ts.map +1 -0
  603. package/dist/types/core/components/functional/shader/gl-runtime.d.ts +90 -0
  604. package/dist/types/core/components/functional/shader/gl-runtime.d.ts.map +1 -0
  605. package/dist/types/core/components/functional/shader/shader.d.ts +285 -0
  606. package/dist/types/core/components/functional/shader/shader.d.ts.map +1 -0
  607. package/dist/types/core/components/functional/shader/shadertoy-prelude.d.ts +6 -0
  608. package/dist/types/core/components/functional/shader/shadertoy-prelude.d.ts.map +1 -0
  609. package/dist/types/core/components/functional/shader/types.d.ts +262 -0
  610. package/dist/types/core/components/functional/shader/types.d.ts.map +1 -0
  611. package/dist/types/core/components/functional/sonic-scope/sonic-scope.d.ts +6 -0
  612. package/dist/types/core/components/functional/sonic-scope/sonic-scope.d.ts.map +1 -0
  613. package/dist/types/core/components/functional/states/states.d.ts +42 -0
  614. package/dist/types/core/components/functional/states/states.d.ts.map +1 -0
  615. package/dist/types/core/components/functional/submit/submit.d.ts +37 -0
  616. package/dist/types/core/components/functional/submit/submit.d.ts.map +1 -0
  617. package/dist/types/core/components/functional/subscriber/subscriber.d.ts +13 -0
  618. package/dist/types/core/components/functional/subscriber/subscriber.d.ts.map +1 -0
  619. package/dist/types/core/components/functional/translation/translation.d.ts +7 -0
  620. package/dist/types/core/components/functional/translation/translation.d.ts.map +1 -0
  621. package/dist/types/core/components/functional/value/value.d.ts +8 -0
  622. package/dist/types/core/components/functional/value/value.d.ts.map +1 -0
  623. package/dist/types/core/components/functional/webgpu/canvas2d-fallback.d.ts +29 -0
  624. package/dist/types/core/components/functional/webgpu/canvas2d-fallback.d.ts.map +1 -0
  625. package/dist/types/core/components/functional/webgpu/form-bind.d.ts +43 -0
  626. package/dist/types/core/components/functional/webgpu/form-bind.d.ts.map +1 -0
  627. package/dist/types/core/components/functional/webgpu/gl-fallback.d.ts +31 -0
  628. package/dist/types/core/components/functional/webgpu/gl-fallback.d.ts.map +1 -0
  629. package/dist/types/core/components/functional/webgpu/gpu-runtime.d.ts +53 -0
  630. package/dist/types/core/components/functional/webgpu/gpu-runtime.d.ts.map +1 -0
  631. package/dist/types/core/components/functional/webgpu/helpers.d.ts +9 -0
  632. package/dist/types/core/components/functional/webgpu/helpers.d.ts.map +1 -0
  633. package/dist/types/core/components/functional/webgpu/out-frame.d.ts +29 -0
  634. package/dist/types/core/components/functional/webgpu/out-frame.d.ts.map +1 -0
  635. package/dist/types/core/components/functional/webgpu/particles-runtime.d.ts +37 -0
  636. package/dist/types/core/components/functional/webgpu/particles-runtime.d.ts.map +1 -0
  637. package/dist/types/core/components/functional/webgpu/pointer.d.ts +41 -0
  638. package/dist/types/core/components/functional/webgpu/pointer.d.ts.map +1 -0
  639. package/dist/types/core/components/functional/webgpu/types.d.ts +75 -0
  640. package/dist/types/core/components/functional/webgpu/types.d.ts.map +1 -0
  641. package/dist/types/core/components/functional/webgpu/webgpu.d.ts +127 -0
  642. package/dist/types/core/components/functional/webgpu/webgpu.d.ts.map +1 -0
  643. package/dist/types/core/components/functional/webgpu/wgsl-prelude.d.ts +8 -0
  644. package/dist/types/core/components/functional/webgpu/wgsl-prelude.d.ts.map +1 -0
  645. package/dist/types/core/components/ui/_css/scroll.d.ts +2 -0
  646. package/dist/types/core/components/ui/_css/scroll.d.ts.map +1 -0
  647. package/dist/types/core/components/ui/_css/shadow.d.ts +3 -0
  648. package/dist/types/core/components/ui/_css/shadow.d.ts.map +1 -0
  649. package/dist/types/core/components/ui/_css/size.d.ts +3 -0
  650. package/dist/types/core/components/ui/_css/size.d.ts.map +1 -0
  651. package/dist/types/core/components/ui/_css/type.d.ts +3 -0
  652. package/dist/types/core/components/ui/_css/type.d.ts.map +1 -0
  653. package/dist/types/core/components/ui/alert/alert.d.ts +37 -0
  654. package/dist/types/core/components/ui/alert/alert.d.ts.map +1 -0
  655. package/dist/types/core/components/ui/alert-messages/alert-messages.d.ts +15 -0
  656. package/dist/types/core/components/ui/alert-messages/alert-messages.d.ts.map +1 -0
  657. package/dist/types/core/components/ui/badge/badge.d.ts +27 -0
  658. package/dist/types/core/components/ui/badge/badge.d.ts.map +1 -0
  659. package/dist/types/core/components/ui/button/button.d.ts +180 -0
  660. package/dist/types/core/components/ui/button/button.d.ts.map +1 -0
  661. package/dist/types/core/components/ui/captcha/altchaStyles.d.ts +2 -0
  662. package/dist/types/core/components/ui/captcha/altchaStyles.d.ts.map +1 -0
  663. package/dist/types/core/components/ui/captcha/captcha.d.ts +30 -0
  664. package/dist/types/core/components/ui/captcha/captcha.d.ts.map +1 -0
  665. package/dist/types/core/components/ui/card/card-footer.d.ts +6 -0
  666. package/dist/types/core/components/ui/card/card-footer.d.ts.map +1 -0
  667. package/dist/types/core/components/ui/card/card-header-descripton.d.ts +6 -0
  668. package/dist/types/core/components/ui/card/card-header-descripton.d.ts.map +1 -0
  669. package/dist/types/core/components/ui/card/card-header.d.ts +9 -0
  670. package/dist/types/core/components/ui/card/card-header.d.ts.map +1 -0
  671. package/dist/types/core/components/ui/card/card-main.d.ts +6 -0
  672. package/dist/types/core/components/ui/card/card-main.d.ts.map +1 -0
  673. package/dist/types/core/components/ui/card/card.d.ts +13 -0
  674. package/dist/types/core/components/ui/card/card.d.ts.map +1 -0
  675. package/dist/types/core/components/ui/divider/divider.d.ts +16 -0
  676. package/dist/types/core/components/ui/divider/divider.d.ts.map +1 -0
  677. package/dist/types/core/components/ui/form/checkbox/checkbox.d.ts +176 -0
  678. package/dist/types/core/components/ui/form/checkbox/checkbox.d.ts.map +1 -0
  679. package/dist/types/core/components/ui/form/css/form-control.d.ts +5 -0
  680. package/dist/types/core/components/ui/form/css/form-control.d.ts.map +1 -0
  681. package/dist/types/core/components/ui/form/fieldset/fieldset.d.ts +24 -0
  682. package/dist/types/core/components/ui/form/fieldset/fieldset.d.ts.map +1 -0
  683. package/dist/types/core/components/ui/form/fieldset/legend-description.d.ts +6 -0
  684. package/dist/types/core/components/ui/form/fieldset/legend-description.d.ts.map +1 -0
  685. package/dist/types/core/components/ui/form/fieldset/legend.d.ts +17 -0
  686. package/dist/types/core/components/ui/form/fieldset/legend.d.ts.map +1 -0
  687. package/dist/types/core/components/ui/form/form-actions/form-actions.d.ts +8 -0
  688. package/dist/types/core/components/ui/form/form-actions/form-actions.d.ts.map +1 -0
  689. package/dist/types/core/components/ui/form/form-layout/form-layout.d.ts +13 -0
  690. package/dist/types/core/components/ui/form/form-layout/form-layout.d.ts.map +1 -0
  691. package/dist/types/core/components/ui/form/input/input.d.ts +123 -0
  692. package/dist/types/core/components/ui/form/input/input.d.ts.map +1 -0
  693. package/dist/types/core/components/ui/form/input/password-helper.d.ts +26 -0
  694. package/dist/types/core/components/ui/form/input/password-helper.d.ts.map +1 -0
  695. package/dist/types/core/components/ui/form/input/same-value-helper.d.ts +17 -0
  696. package/dist/types/core/components/ui/form/input/same-value-helper.d.ts.map +1 -0
  697. package/dist/types/core/components/ui/form/input-autocomplete/input-autocomplete.d.ts +155 -0
  698. package/dist/types/core/components/ui/form/input-autocomplete/input-autocomplete.d.ts.map +1 -0
  699. package/dist/types/core/components/ui/form/radio/radio.d.ts +15 -0
  700. package/dist/types/core/components/ui/form/radio/radio.d.ts.map +1 -0
  701. package/dist/types/core/components/ui/form/select/select.d.ts +59 -0
  702. package/dist/types/core/components/ui/form/select/select.d.ts.map +1 -0
  703. package/dist/types/core/components/ui/form/switch/switch.d.ts +6 -0
  704. package/dist/types/core/components/ui/form/switch/switch.d.ts.map +1 -0
  705. package/dist/types/core/components/ui/form/textarea/textarea.d.ts +94 -0
  706. package/dist/types/core/components/ui/form/textarea/textarea.d.ts.map +1 -0
  707. package/dist/types/core/components/ui/group/group.d.ts +17 -0
  708. package/dist/types/core/components/ui/group/group.d.ts.map +1 -0
  709. package/dist/types/core/components/ui/icon/icon.d.ts +30 -0
  710. package/dist/types/core/components/ui/icon/icon.d.ts.map +1 -0
  711. package/dist/types/core/components/ui/icon/icons.d.ts +13 -0
  712. package/dist/types/core/components/ui/icon/icons.d.ts.map +1 -0
  713. package/dist/types/core/components/ui/image/image.d.ts +16 -0
  714. package/dist/types/core/components/ui/image/image.d.ts.map +1 -0
  715. package/dist/types/core/components/ui/link/link.d.ts +30 -0
  716. package/dist/types/core/components/ui/link/link.d.ts.map +1 -0
  717. package/dist/types/core/components/ui/loader/loader.d.ts +24 -0
  718. package/dist/types/core/components/ui/loader/loader.d.ts.map +1 -0
  719. package/dist/types/core/components/ui/loader/styles/fixed.d.ts +2 -0
  720. package/dist/types/core/components/ui/loader/styles/fixed.d.ts.map +1 -0
  721. package/dist/types/core/components/ui/loader/styles/inline.d.ts +2 -0
  722. package/dist/types/core/components/ui/loader/styles/inline.d.ts.map +1 -0
  723. package/dist/types/core/components/ui/menu/menu-item.d.ts +6 -0
  724. package/dist/types/core/components/ui/menu/menu-item.d.ts.map +1 -0
  725. package/dist/types/core/components/ui/menu/menu.d.ts +52 -0
  726. package/dist/types/core/components/ui/menu/menu.d.ts.map +1 -0
  727. package/dist/types/core/components/ui/modal/modal-actions.d.ts +9 -0
  728. package/dist/types/core/components/ui/modal/modal-actions.d.ts.map +1 -0
  729. package/dist/types/core/components/ui/modal/modal-close.d.ts +11 -0
  730. package/dist/types/core/components/ui/modal/modal-close.d.ts.map +1 -0
  731. package/dist/types/core/components/ui/modal/modal-content.d.ts +6 -0
  732. package/dist/types/core/components/ui/modal/modal-content.d.ts.map +1 -0
  733. package/dist/types/core/components/ui/modal/modal-subtitle.d.ts +6 -0
  734. package/dist/types/core/components/ui/modal/modal-subtitle.d.ts.map +1 -0
  735. package/dist/types/core/components/ui/modal/modal-title.d.ts +6 -0
  736. package/dist/types/core/components/ui/modal/modal-title.d.ts.map +1 -0
  737. package/dist/types/core/components/ui/modal/modal-utils.d.ts +4 -0
  738. package/dist/types/core/components/ui/modal/modal-utils.d.ts.map +1 -0
  739. package/dist/types/core/components/ui/modal/modal.d.ts +79 -0
  740. package/dist/types/core/components/ui/modal/modal.d.ts.map +1 -0
  741. package/dist/types/core/components/ui/pop/pop.d.ts +42 -0
  742. package/dist/types/core/components/ui/pop/pop.d.ts.map +1 -0
  743. package/dist/types/core/components/ui/progress/progress.d.ts +12 -0
  744. package/dist/types/core/components/ui/progress/progress.d.ts.map +1 -0
  745. package/dist/types/core/components/ui/table/table-caption.d.ts +6 -0
  746. package/dist/types/core/components/ui/table/table-caption.d.ts.map +1 -0
  747. package/dist/types/core/components/ui/table/table-tbody.d.ts +6 -0
  748. package/dist/types/core/components/ui/table/table-tbody.d.ts.map +1 -0
  749. package/dist/types/core/components/ui/table/table-td.d.ts +13 -0
  750. package/dist/types/core/components/ui/table/table-td.d.ts.map +1 -0
  751. package/dist/types/core/components/ui/table/table-tfoot.d.ts +6 -0
  752. package/dist/types/core/components/ui/table/table-tfoot.d.ts.map +1 -0
  753. package/dist/types/core/components/ui/table/table-th.d.ts +12 -0
  754. package/dist/types/core/components/ui/table/table-th.d.ts.map +1 -0
  755. package/dist/types/core/components/ui/table/table-thead.d.ts +6 -0
  756. package/dist/types/core/components/ui/table/table-thead.d.ts.map +1 -0
  757. package/dist/types/core/components/ui/table/table-tr.d.ts +14 -0
  758. package/dist/types/core/components/ui/table/table-tr.d.ts.map +1 -0
  759. package/dist/types/core/components/ui/table/table.d.ts +18 -0
  760. package/dist/types/core/components/ui/table/table.d.ts.map +1 -0
  761. package/dist/types/core/components/ui/theme/theme-collection/core-variables.d.ts +2 -0
  762. package/dist/types/core/components/ui/theme/theme-collection/core-variables.d.ts.map +1 -0
  763. package/dist/types/core/components/ui/theme/theme-collection/dark.d.ts +2 -0
  764. package/dist/types/core/components/ui/theme/theme-collection/dark.d.ts.map +1 -0
  765. package/dist/types/core/components/ui/theme/theme-collection/light.d.ts +2 -0
  766. package/dist/types/core/components/ui/theme/theme-collection/light.d.ts.map +1 -0
  767. package/dist/types/core/components/ui/theme/theme.d.ts +20 -0
  768. package/dist/types/core/components/ui/theme/theme.d.ts.map +1 -0
  769. package/dist/types/core/components/ui/toast/message-subscriber.d.ts +19 -0
  770. package/dist/types/core/components/ui/toast/message-subscriber.d.ts.map +1 -0
  771. package/dist/types/core/components/ui/toast/toast-item.d.ts +41 -0
  772. package/dist/types/core/components/ui/toast/toast-item.d.ts.map +1 -0
  773. package/dist/types/core/components/ui/toast/toast.d.ts +28 -0
  774. package/dist/types/core/components/ui/toast/toast.d.ts.map +1 -0
  775. package/dist/types/core/components/ui/toast/types.d.ts +12 -0
  776. package/dist/types/core/components/ui/toast/types.d.ts.map +1 -0
  777. package/dist/types/core/components/ui/tooltip/tooltip.d.ts +21 -0
  778. package/dist/types/core/components/ui/tooltip/tooltip.d.ts.map +1 -0
  779. package/dist/types/core/components/ui/ui.d.ts +35 -0
  780. package/dist/types/core/components/ui/ui.d.ts.map +1 -0
  781. package/dist/types/core/core.d.ts +5 -0
  782. package/dist/types/core/core.d.ts.map +1 -0
  783. package/dist/types/core/decorators/Subscriber.d.ts +13 -0
  784. package/dist/types/core/decorators/Subscriber.d.ts.map +1 -0
  785. package/dist/types/core/decorators/api.d.ts +155 -0
  786. package/dist/types/core/decorators/api.d.ts.map +1 -0
  787. package/dist/types/core/decorators/lifecycle.d.ts +19 -0
  788. package/dist/types/core/decorators/lifecycle.d.ts.map +1 -0
  789. package/dist/types/core/decorators/subscriber/ancestorAttribute.d.ts +11 -0
  790. package/dist/types/core/decorators/subscriber/ancestorAttribute.d.ts.map +1 -0
  791. package/dist/types/core/decorators/subscriber/autoFill.d.ts +2 -0
  792. package/dist/types/core/decorators/subscriber/autoFill.d.ts.map +1 -0
  793. package/dist/types/core/decorators/subscriber/autoSubscribe.d.ts +2 -0
  794. package/dist/types/core/decorators/subscriber/autoSubscribe.d.ts.map +1 -0
  795. package/dist/types/core/decorators/subscriber/bind.d.ts +28 -0
  796. package/dist/types/core/decorators/subscriber/bind.d.ts.map +1 -0
  797. package/dist/types/core/decorators/subscriber/common.d.ts +14 -0
  798. package/dist/types/core/decorators/subscriber/common.d.ts.map +1 -0
  799. package/dist/types/core/decorators/subscriber/derive.d.ts +30 -0
  800. package/dist/types/core/decorators/subscriber/derive.d.ts.map +1 -0
  801. package/dist/types/core/decorators/subscriber/dynamicPath.d.ts +23 -0
  802. package/dist/types/core/decorators/subscriber/dynamicPath.d.ts.map +1 -0
  803. package/dist/types/core/decorators/subscriber/dynamicPropertyWatch.d.ts +42 -0
  804. package/dist/types/core/decorators/subscriber/dynamicPropertyWatch.d.ts.map +1 -0
  805. package/dist/types/core/decorators/subscriber/handle.d.ts +74 -0
  806. package/dist/types/core/decorators/subscriber/handle.d.ts.map +1 -0
  807. package/dist/types/core/decorators/subscriber/onAssign.d.ts +53 -0
  808. package/dist/types/core/decorators/subscriber/onAssign.d.ts.map +1 -0
  809. package/dist/types/core/decorators/subscriber/publish.d.ts +23 -0
  810. package/dist/types/core/decorators/subscriber/publish.d.ts.map +1 -0
  811. package/dist/types/core/decorators/subscriber/publisherPath.d.ts +3 -0
  812. package/dist/types/core/decorators/subscriber/publisherPath.d.ts.map +1 -0
  813. package/dist/types/core/decorators/subscriber/subscribe.d.ts +20 -0
  814. package/dist/types/core/decorators/subscriber/subscribe.d.ts.map +1 -0
  815. package/dist/types/core/directives/DataProvider.d.ts +45 -0
  816. package/dist/types/core/directives/DataProvider.d.ts.map +1 -0
  817. package/dist/types/core/directives/Wording.d.ts +44 -0
  818. package/dist/types/core/directives/Wording.d.ts.map +1 -0
  819. package/dist/types/core/mixins/Fetcher.d.ts +108 -0
  820. package/dist/types/core/mixins/Fetcher.d.ts.map +1 -0
  821. package/dist/types/core/mixins/FormCheckable.d.ts +95 -0
  822. package/dist/types/core/mixins/FormCheckable.d.ts.map +1 -0
  823. package/dist/types/core/mixins/FormElement.d.ts +37 -0
  824. package/dist/types/core/mixins/FormElement.d.ts.map +1 -0
  825. package/dist/types/core/mixins/FormInput.d.ts +79 -0
  826. package/dist/types/core/mixins/FormInput.d.ts.map +1 -0
  827. package/dist/types/core/mixins/Subscriber.d.ts +38 -0
  828. package/dist/types/core/mixins/Subscriber.d.ts.map +1 -0
  829. package/dist/types/core/mixins/TemplatesContainer.d.ts +14 -0
  830. package/dist/types/core/mixins/TemplatesContainer.d.ts.map +1 -0
  831. package/dist/types/core/mixins/mixins.d.ts +7 -0
  832. package/dist/types/core/mixins/mixins.d.ts.map +1 -0
  833. package/dist/types/core/utils/AncestorAttributeObserver.d.ts +38 -0
  834. package/dist/types/core/utils/AncestorAttributeObserver.d.ts.map +1 -0
  835. package/dist/types/core/utils/Arrays.d.ts +98 -0
  836. package/dist/types/core/utils/Arrays.d.ts.map +1 -0
  837. package/dist/types/core/utils/DataBindObserver.d.ts +84 -0
  838. package/dist/types/core/utils/DataBindObserver.d.ts.map +1 -0
  839. package/dist/types/core/utils/Electron.d.ts +8 -0
  840. package/dist/types/core/utils/Electron.d.ts.map +1 -0
  841. package/dist/types/core/utils/Format.d.ts +13 -0
  842. package/dist/types/core/utils/Format.d.ts.map +1 -0
  843. package/dist/types/core/utils/HTML.d.ts +59 -0
  844. package/dist/types/core/utils/HTML.d.ts.map +1 -0
  845. package/dist/types/core/utils/LocationHandler.d.ts +48 -0
  846. package/dist/types/core/utils/LocationHandler.d.ts.map +1 -0
  847. package/dist/types/core/utils/Objects.d.ts +31 -0
  848. package/dist/types/core/utils/Objects.d.ts.map +1 -0
  849. package/dist/types/core/utils/PublisherProxy.d.ts +230 -0
  850. package/dist/types/core/utils/PublisherProxy.d.ts.map +1 -0
  851. package/dist/types/core/utils/SafariScrollGuard.d.ts +36 -0
  852. package/dist/types/core/utils/SafariScrollGuard.d.ts.map +1 -0
  853. package/dist/types/core/utils/Utils.d.ts +6 -0
  854. package/dist/types/core/utils/Utils.d.ts.map +1 -0
  855. package/dist/types/core/utils/aesCrypto.d.ts +53 -0
  856. package/dist/types/core/utils/aesCrypto.d.ts.map +1 -0
  857. package/dist/types/core/utils/api.d.ts +173 -0
  858. package/dist/types/core/utils/api.d.ts.map +1 -0
  859. package/dist/types/core/utils/dataProviderKey.d.ts +56 -0
  860. package/dist/types/core/utils/dataProviderKey.d.ts.map +1 -0
  861. package/dist/types/core/utils/derive.d.ts +40 -0
  862. package/dist/types/core/utils/derive.d.ts.map +1 -0
  863. package/dist/types/core/utils/endpoint.d.ts +37 -0
  864. package/dist/types/core/utils/endpoint.d.ts.map +1 -0
  865. package/dist/types/core/utils/jsonataHelpers.d.ts +15 -0
  866. package/dist/types/core/utils/jsonataHelpers.d.ts.map +1 -0
  867. package/dist/types/core/utils/jsonataRuntime.d.ts +13 -0
  868. package/dist/types/core/utils/jsonataRuntime.d.ts.map +1 -0
  869. package/dist/types/core/utils/mediaRef.d.ts +53 -0
  870. package/dist/types/core/utils/mediaRef.d.ts.map +1 -0
  871. package/dist/types/core/utils/route.d.ts +41 -0
  872. package/dist/types/core/utils/route.d.ts.map +1 -0
  873. package/dist/types/core/utils/similarity.d.ts +15 -0
  874. package/dist/types/core/utils/similarity.d.ts.map +1 -0
  875. package/dist/types/core/utils/url-pattern.d.ts +3 -0
  876. package/dist/types/core/utils/url-pattern.d.ts.map +1 -0
  877. package/dist/types/dataprovider.d.ts +2 -0
  878. package/dist/types/dataprovider.d.ts.map +1 -0
  879. package/dist/types/decorators.d.ts +30 -0
  880. package/dist/types/decorators.d.ts.map +1 -0
  881. package/dist/types/directives.d.ts +21 -0
  882. package/dist/types/directives.d.ts.map +1 -0
  883. package/dist/types/index.d.ts +8 -0
  884. package/dist/types/index.d.ts.map +1 -0
  885. package/dist/types/mixins.d.ts +204 -0
  886. package/dist/types/mixins.d.ts.map +1 -0
  887. package/dist/types/test-utils/TestUtils.d.ts +4 -0
  888. package/dist/types/test-utils/TestUtils.d.ts.map +1 -0
  889. package/dist/types/utils.d.ts +20 -0
  890. package/dist/types/utils.d.ts.map +1 -0
  891. package/package.json +1792 -382
  892. package/public/docs/hf-samples/beach.jpg +0 -0
  893. package/public/docs/hf-samples/cats.jpg +0 -0
  894. package/public/docs/hf-samples/corgi.jpg +0 -0
  895. package/public/docs/hf-samples/portrait.jpg +0 -0
  896. package/public/docs/hf-samples/scene.jpg +0 -0
  897. package/public/docs/hf-samples/singer.jpg +0 -0
  898. package/public/docs/shader-samples/color.jpg +0 -0
  899. package/public/docs/shader-samples/depth.png +0 -0
  900. package/public/docs/shader-samples/impact.jpg +0 -0
  901. package/public/docs/shader-samples/video.webm +0 -0
  902. package/scripts/build-addons.mjs +26 -0
  903. package/scripts/gen-shader-depth.mjs +85 -0
  904. package/scripts/gen-shader-harris-video.mjs +17 -0
  905. package/scripts/gen-shader-harris-video.py +84 -0
  906. package/scripts/hf-vendor.mjs +154 -0
  907. package/scripts/post-build.mjs +116 -10
  908. package/scripts/pre-build.mjs +119 -36
  909. package/scripts/pre-publish.mjs +76 -54
  910. package/src/addons/3d.ts +5 -0
  911. package/src/addons/hugging-face-infer.ts +11 -0
  912. package/src/addons/shader.ts +5 -0
  913. package/src/addons/webgpu.ts +15 -0
  914. package/src/core/components/functional/3d/3d.md +128 -0
  915. package/src/core/components/functional/3d/3d.spec.ts +171 -0
  916. package/src/core/components/functional/3d/3d.ts +186 -0
  917. package/src/core/components/functional/3d/asset.ts +22 -0
  918. package/src/core/components/functional/3d/boot.ts +77 -0
  919. package/src/core/components/functional/3d/constants.ts +100 -0
  920. package/src/core/components/functional/3d/demo-content.ts +45 -0
  921. package/src/core/components/functional/3d/ensure.ts +99 -0
  922. package/src/core/components/functional/3d/form-bind.ts +40 -0
  923. package/src/core/components/functional/3d/form-fields.ts +80 -0
  924. package/src/core/components/functional/3d/form-params.ts +97 -0
  925. package/src/core/components/functional/3d/frame-capture.spec.ts +72 -0
  926. package/src/core/components/functional/3d/frame-capture.ts +135 -0
  927. package/src/core/components/functional/3d/frame-source.ts +30 -0
  928. package/src/core/components/functional/3d/gl.ts +35 -0
  929. package/src/core/components/functional/3d/life.ts +101 -0
  930. package/src/core/components/functional/3d/load.ts +129 -0
  931. package/src/core/components/functional/3d/ops.ts +126 -0
  932. package/src/core/components/functional/3d/opts.ts +16 -0
  933. package/src/core/components/functional/3d/orbit.ts +185 -0
  934. package/src/core/components/functional/3d/out-publish.ts +140 -0
  935. package/src/core/components/functional/3d/parse.ts +95 -0
  936. package/src/core/components/functional/3d/pick.ts +92 -0
  937. package/src/core/components/functional/3d/playback.ts +70 -0
  938. package/src/core/components/functional/3d/pointer.ts +79 -0
  939. package/src/core/components/functional/3d/props.ts +50 -0
  940. package/src/core/components/functional/3d/publisher-listen.ts +13 -0
  941. package/src/core/components/functional/3d/reload.ts +94 -0
  942. package/src/core/components/functional/3d/runtime.ts +148 -0
  943. package/src/core/components/functional/3d/scene-runtime.ts +9 -0
  944. package/src/core/components/functional/3d/snapshot.ts +73 -0
  945. package/src/core/components/functional/3d/styles.ts +38 -0
  946. package/src/core/components/functional/3d/tune.ts +72 -0
  947. package/src/core/components/functional/3d/types.ts +150 -0
  948. package/src/core/components/functional/3d/updated.ts +70 -0
  949. package/src/core/components/functional/3d/view.ts +63 -0
  950. package/src/core/components/functional/3d/wire.ts +65 -0
  951. package/src/core/components/functional/infer/hugging-face/hf-cache.ts +198 -0
  952. package/src/core/components/functional/infer/hugging-face/hf-config.ts +188 -0
  953. package/src/core/components/functional/infer/hugging-face/hf-controller.spec.ts +350 -0
  954. package/src/core/components/functional/infer/hugging-face/hf-controller.ts +622 -0
  955. package/src/core/components/functional/infer/hugging-face/hf-engine.ts +178 -0
  956. package/src/core/components/functional/infer/hugging-face/hf-input.spec.ts +99 -0
  957. package/src/core/components/functional/infer/hugging-face/hf-input.ts +218 -0
  958. package/src/core/components/functional/infer/hugging-face/hf-protocol.ts +76 -0
  959. package/src/core/components/functional/infer/hugging-face/hf-registry.ts +457 -0
  960. package/src/core/components/functional/infer/hugging-face/hf-schema.spec.ts +124 -0
  961. package/src/core/components/functional/infer/hugging-face/hf-schema.ts +390 -0
  962. package/src/core/components/functional/infer/hugging-face/hf-worker-runtime.spec.ts +147 -0
  963. package/src/core/components/functional/infer/hugging-face/hf-worker-runtime.ts +381 -0
  964. package/src/core/components/functional/infer/hugging-face/hugging-face-infer.md +304 -0
  965. package/src/core/components/functional/infer/hugging-face/hugging-face-infer.ts +202 -0
  966. package/src/core/components/functional/infer/hugging-face/hugging-face.ts +282 -0
  967. package/src/core/components/functional/infer/hugging-face/types.ts +325 -0
  968. package/src/core/components/functional/jsonata/jsonata.md +4 -2
  969. package/src/core/components/functional/sdui/sdui.md +2 -2
  970. package/src/core/components/functional/sdui/sdui.ts +40 -29
  971. package/src/core/components/functional/shader/gl-runtime.ts +963 -0
  972. package/src/core/components/functional/shader/shader.md +209 -0
  973. package/src/core/components/functional/shader/shader.spec.ts +368 -0
  974. package/src/core/components/functional/shader/shader.ts +1624 -0
  975. package/src/core/components/functional/shader/shadertoy-prelude.ts +52 -0
  976. package/src/core/components/functional/shader/types.ts +448 -0
  977. package/src/core/components/functional/webgpu/canvas2d-fallback.ts +125 -0
  978. package/src/core/components/functional/webgpu/form-bind.ts +116 -0
  979. package/src/core/components/functional/webgpu/gl-fallback.ts +158 -0
  980. package/src/core/components/functional/webgpu/gpu-runtime.ts +349 -0
  981. package/src/core/components/functional/webgpu/helpers.ts +47 -0
  982. package/src/core/components/functional/webgpu/out-frame.ts +137 -0
  983. package/src/core/components/functional/webgpu/particles-runtime.ts +426 -0
  984. package/src/core/components/functional/webgpu/pointer.ts +85 -0
  985. package/src/core/components/functional/webgpu/types.ts +96 -0
  986. package/src/core/components/functional/webgpu/webgpu.md +75 -0
  987. package/src/core/components/functional/webgpu/webgpu.spec.ts +141 -0
  988. package/src/core/components/functional/webgpu/webgpu.ts +668 -0
  989. package/src/core/components/functional/webgpu/wgsl-prelude.ts +81 -0
  990. package/src/core/mixins/Fetcher.ts +1 -1
  991. package/src/core/utils/HTML.ts +107 -74
  992. package/src/core/utils/PublisherProxy.ts +29 -6
  993. package/src/core/utils/jsonataHelpers.ts +36 -0
  994. package/src/core/utils/mediaRef.spec.ts +121 -0
  995. package/src/core/utils/mediaRef.ts +193 -0
  996. package/src/core/utils/similarity.spec.ts +34 -0
  997. package/src/core/utils/similarity.ts +54 -0
  998. package/src/docs/_core-concept/dataFlow.md +2 -0
  999. package/src/docs/_getting-started/cdn-addons.md +73 -0
  1000. package/src/docs/_getting-started/create-a-component.md +1 -1
  1001. package/src/docs/_misc/visual-stack.md +65 -0
  1002. package/src/docs/components/docs-demo-sources.ts +373 -39
  1003. package/src/docs/docs.ts +7 -0
  1004. package/src/docs/example/docs-3d-demos.ts +8 -0
  1005. package/src/docs/example/docs-3d-form.ts +95 -0
  1006. package/src/docs/example/docs-3d-orbit.ts +44 -0
  1007. package/src/docs/example/docs-3d-out.ts +56 -0
  1008. package/src/docs/example/docs-3d-shader-live-demo.ts +98 -0
  1009. package/src/docs/example/docs-3d-shared.ts +15 -0
  1010. package/src/docs/example/docs-harris-webgpu-demo.ts +482 -0
  1011. package/src/docs/example/docs-hugging-face-demos.ts +516 -0
  1012. package/src/docs/example/docs-shader-demos.ts +357 -0
  1013. package/src/docs/example/docs-visual-stack-demo.ts +394 -0
  1014. package/src/docs/example/docs-webgpu-demo.ts +77 -0
  1015. package/src/docs/navigation/navigation.ts +25 -0
  1016. package/src/docs/search/docs-search.json +61 -11
  1017. package/src/tsconfig.json +490 -301
  1018. package/src/tsconfig.tsbuildinfo +1 -1
  1019. package/vite/config.js +42 -30
  1020. package/vite.config.mts +51 -12
@@ -0,0 +1,1642 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { css, html, LitElement } from "lit";
8
+ import { customElement, property, state } from "lit/decorators.js";
9
+ import HTML from "@supersoniks/concorde/core/utils/HTML";
10
+ import { revokeMediaUrls, toMediaUrl, mediaElementKey, lookupLiveElement } from "@supersoniks/concorde/core/utils/mediaRef";
11
+ import { PublisherManager } from "@supersoniks/concorde/utils";
12
+ import { parseChannelSource, ShaderToyRuntime, } from "./gl-runtime";
13
+ import { ShaderCompileError, findPeaks, meanRgba, parseExtractPass, parseHoverParam, roiToPixels, } from "./types";
14
+ const tagName = "sonic-shader";
15
+ const MAX_PATCH_PX = 128;
16
+ /**
17
+ * Champs méta publiés vers le out-dataProvider.
18
+ * `param0…3` sont exclus du gate « consommateur » : un `sonic-input name="param0"`
19
+ * ne doit pas activer la publication (sinon write-back → reset des champs form).
20
+ */
21
+ const OUT_META_KEYS = [
22
+ "time",
23
+ "frame",
24
+ "mouseX",
25
+ "mouseY",
26
+ "hovering",
27
+ ];
28
+ const OUT_PARAM_KEYS = ["param0", "param1", "param2", "param3"];
29
+ /** Champs canaux lisibles depuis dataProvider (string | SonicMediaRef). */
30
+ const CHANNEL_FORM_KEYS = [
31
+ "channel0",
32
+ "channel1",
33
+ "channel2",
34
+ "channel3",
35
+ "imageCh0",
36
+ "imageCh1",
37
+ "imageCh2",
38
+ "imageCh3",
39
+ "bufferACh0",
40
+ "bufferACh1",
41
+ "bufferACh2",
42
+ "bufferACh3",
43
+ "bufferBCh0",
44
+ "bufferBCh1",
45
+ "bufferBCh2",
46
+ "bufferBCh3",
47
+ "bufferCCh0",
48
+ "bufferCCh1",
49
+ "bufferCCh2",
50
+ "bufferCCh3",
51
+ "bufferDCh0",
52
+ "bufferDCh1",
53
+ "bufferDCh2",
54
+ "bufferDCh3",
55
+ ];
56
+ /** Champs sample (coûteux : readPixels). */
57
+ const OUT_SAMPLE_KEYS = [
58
+ "sampleR",
59
+ "sampleG",
60
+ "sampleB",
61
+ "sampleA",
62
+ "sampleLuma",
63
+ ];
64
+ const EXTRACT_OUT_KEYS = ["extracts", "extractCount", "extractSeq"];
65
+ function prefersReducedMotion() {
66
+ return (typeof matchMedia === "function" &&
67
+ matchMedia("(prefers-reduced-motion: reduce)").matches);
68
+ }
69
+ function toNum(v, fallback) {
70
+ if (typeof v === "number" && Number.isFinite(v))
71
+ return v;
72
+ if (typeof v === "string" && v.trim() !== "") {
73
+ const n = Number(v);
74
+ if (Number.isFinite(n))
75
+ return n;
76
+ }
77
+ return fallback;
78
+ }
79
+ /** Valeur canal depuis DP : string (url, buffer-a, #id) | MediaRef → url | { element }. */
80
+ function channelFormValue(value) {
81
+ if (value === null || value === "")
82
+ return "";
83
+ if (typeof value === "string")
84
+ return value.trim();
85
+ const url = toMediaUrl(value);
86
+ if (url)
87
+ return url;
88
+ if (value && typeof value === "object") {
89
+ const el = value.element;
90
+ const key = mediaElementKey(el);
91
+ if (key)
92
+ return key;
93
+ return undefined;
94
+ }
95
+ return "";
96
+ }
97
+ /** Exposé pour tests. */
98
+ export { channelFormValue };
99
+ function parseRois(value) {
100
+ if (!Array.isArray(value))
101
+ return [];
102
+ const out = [];
103
+ for (const raw of value) {
104
+ if (!raw || typeof raw !== "object")
105
+ continue;
106
+ const o = raw;
107
+ const x = toNum(o.x, NaN);
108
+ const y = toNum(o.y, NaN);
109
+ if (!Number.isFinite(x) || !Number.isFinite(y))
110
+ continue;
111
+ const roi = { x, y, source: "manual" };
112
+ if (typeof o.id === "string" && o.id)
113
+ roi.id = o.id;
114
+ if ("w" in o)
115
+ roi.w = toNum(o.w, 0);
116
+ if ("h" in o)
117
+ roi.h = toNum(o.h, 0);
118
+ if ("patch" in o)
119
+ roi.patch = toNum(o.patch, 16);
120
+ out.push(roi);
121
+ }
122
+ return out;
123
+ }
124
+ const BYTES_PER_PIXEL = 4;
125
+ async function rgbaToBlobUrl(data, width, height) {
126
+ if (typeof document === "undefined" || width < 1 || height < 1)
127
+ return null;
128
+ try {
129
+ const canvas = document.createElement("canvas");
130
+ canvas.width = width;
131
+ canvas.height = height;
132
+ const ctx = canvas.getContext("2d");
133
+ if (!ctx)
134
+ return null;
135
+ // WebGL readPixels is bottom-up; flip for canvas display.
136
+ const imageData = ctx.createImageData(width, height);
137
+ const dst = imageData.data;
138
+ for (let y = 0; y < height; y++) {
139
+ const srcRow = (height - 1 - y) * width * BYTES_PER_PIXEL;
140
+ const dstRow = y * width * BYTES_PER_PIXEL;
141
+ for (let i = 0; i < width * BYTES_PER_PIXEL; i++) {
142
+ dst[dstRow + i] = data[srcRow + i];
143
+ }
144
+ }
145
+ ctx.putImageData(imageData, 0, 0);
146
+ const blob = await new Promise((resolve) => {
147
+ try {
148
+ canvas.toBlob((b) => resolve(b), "image/png");
149
+ }
150
+ catch {
151
+ resolve(null);
152
+ }
153
+ });
154
+ if (blob)
155
+ return URL.createObjectURL(blob);
156
+ // Fallback (certs navigateurs / contexts bloquent toBlob)
157
+ const dataUrl = canvas.toDataURL("image/png");
158
+ return dataUrl || null;
159
+ }
160
+ catch {
161
+ return null;
162
+ }
163
+ }
164
+ function assignExtractMediaUrls(item, url) {
165
+ item.blobUrl = url;
166
+ item.url = url;
167
+ }
168
+ /**
169
+ * ShaderToy-compatible multipass renderer (Image + Buffer A–D + Common).
170
+ * Opt-in: import `@supersoniks/concorde/shader`.
171
+ *
172
+ * Optional `dataProvider` (attr or ancestor `dataProvider` / `formDataProvider`):
173
+ * maps form fields `param0`…`param3` → uniforms `uParam0`…`uParam3`.
174
+ */
175
+ let SonicShader = class SonicShader extends LitElement {
176
+ constructor() {
177
+ super(...arguments);
178
+ this.image = "";
179
+ this.bufferA = "";
180
+ this.bufferB = "";
181
+ this.bufferC = "";
182
+ this.bufferD = "";
183
+ this.common = "";
184
+ this.channel0 = "";
185
+ this.channel1 = "";
186
+ this.channel2 = "";
187
+ this.channel3 = "";
188
+ this.imageCh0 = "";
189
+ this.imageCh1 = "";
190
+ this.imageCh2 = "";
191
+ this.imageCh3 = "";
192
+ this.bufferACh0 = "";
193
+ this.bufferACh1 = "";
194
+ this.bufferACh2 = "";
195
+ this.bufferACh3 = "";
196
+ this.bufferBCh0 = "";
197
+ this.bufferBCh1 = "";
198
+ this.bufferBCh2 = "";
199
+ this.bufferBCh3 = "";
200
+ this.bufferCCh0 = "";
201
+ this.bufferCCh1 = "";
202
+ this.bufferCCh2 = "";
203
+ this.bufferCCh3 = "";
204
+ this.bufferDCh0 = "";
205
+ this.bufferDCh1 = "";
206
+ this.bufferDCh2 = "";
207
+ this.bufferDCh3 = "";
208
+ this.play = true;
209
+ /**
210
+ * N’anime que pendant le hover (ou tant que le param hover n’a pas fini
211
+ * sa transition). Utile avec beaucoup d’instances.
212
+ */
213
+ this.playOnHover = false;
214
+ this.mouse = true;
215
+ /**
216
+ * `direct` — `iMouse.xy` = pointeur (ShaderToy).
217
+ * `target` — le pointeur est une cible ; `iMouse.xy` suit (vitesse ∝ distance).
218
+ */
219
+ this.mouseMode = "direct";
220
+ /**
221
+ * Vitesse de poursuite en mode `target` (1/s). Plus haut = plus snappy.
222
+ * Déplacement ≈ `(cible − pos) * (1 − e^(−speed·dt))`.
223
+ */
224
+ this.mouseSpeed = 8;
225
+ /**
226
+ * Anime `uParamN` au rollover / roll-out (0↔1). Ex. `hover-param="0"` ou `"param0"`.
227
+ * Le shader lit `uParamN` pour mixer l’effet on/off.
228
+ */
229
+ this.hoverParam = "";
230
+ /** Vitesse d’easing hover on/off (1/s, défaut 10). */
231
+ this.hoverSpeed = 10;
232
+ /**
233
+ * Libère le contexte WebGL hors viewport (défaut true).
234
+ * Les navigateurs limitent ~8–16 contextes.
235
+ */
236
+ this.releaseOffscreen = true;
237
+ this.dprMax = 2;
238
+ /** Generic float uniforms `uParam0`…`uParam3` (no shader rebuild). */
239
+ this.param0 = 0;
240
+ this.param1 = 0;
241
+ this.param2 = 0;
242
+ this.param3 = 0;
243
+ /**
244
+ * Publisher id. Fields `param0`…`param3` feed `uParam0`…`uParam3`.
245
+ * Falls back to ancestor `dataProvider` or `formDataProvider` when unset.
246
+ * Also used as default out publisher (see `outDataProvider`).
247
+ */
248
+ this.dataProvider = "";
249
+ /**
250
+ * Publisher de sortie. Défaut : même id que `dataProvider` / ancêtre.
251
+ * Écrit mouseX/Y, hovering, frame (+ sample* si `sample`).
252
+ * Sur DP partagé form+out : ne réécrit pas param0…3 (sauf slot hover-param).
253
+ * Paresseux : pas de set / readPixels sans lecteur méta/sample ni listener `out`.
254
+ */
255
+ this.outDataProvider = "";
256
+ /**
257
+ * Active le sample couleur → sampleR/G/B/A + sampleLuma.
258
+ * `readPixels` uniquement s’il y a un consommateur out (DP ou event `out`).
259
+ */
260
+ this.sample = false;
261
+ /** Intervalle de publication / event `out` (ms, défaut 80). */
262
+ this.outInterval = 80;
263
+ /** Active l’extraction de patches / singularités. */
264
+ this.extract = false;
265
+ /** Throttle extract ms (défaut = `out-interval` ou 100). */
266
+ this.extractInterval = 0;
267
+ /** Pass où lire les pixels couleur : `image` \| `buffer-a`… */
268
+ this.extractSource = "image";
269
+ /** Pass mask pour détection : `none` \| `buffer-a`… */
270
+ this.extractMask = "none";
271
+ /** Seuil 0–1 sur le mask (défaut 0.5). */
272
+ this.extractThreshold = 0.5;
273
+ /** Cap N items détectés (défaut 8). */
274
+ this.extractMax = 8;
275
+ /** Taille patch px par défaut pour un point (défaut 16). */
276
+ this.extractPatch = 16;
277
+ /** Génère des blob URLs par item. */
278
+ this.extractBitmaps = false;
279
+ /** Publisher dédié extract (défaut = out / dataProvider). */
280
+ this.extractDataProvider = "";
281
+ /**
282
+ * Force CSS aspect-ratio (e.g. `"16/9"`, `"1"`).
283
+ * When empty, uses channel0 (or first texture) dimensions.
284
+ */
285
+ this.aspectRatio = "";
286
+ this.errorMessage = "";
287
+ this.runtime = null;
288
+ this.raf = 0;
289
+ this.startTime = 0;
290
+ this.lastTime = 0;
291
+ this.frame = 0;
292
+ /** Incrémenté après chaque render (contrat SonicFrameSource). */
293
+ this.frameSeq = 0;
294
+ this.mouseVec = [0, 0, 0, 0];
295
+ /** Cible pointeur (px drawing buffer, origine bas-gauche). */
296
+ this.mouseTarget = [0, 0];
297
+ /** Position suivie → `iMouse.xy` en mode target. */
298
+ this.mouseFollow = [0, 0];
299
+ this.mouseHasPointer = false;
300
+ this.pointerDown = false;
301
+ this.hovering = false;
302
+ this.hoverGoal = 0;
303
+ /**
304
+ * Valeur easée 0↔1 pour le slot `hover-param`.
305
+ * Privée (pas une @property) pour éviter un requestUpdate Lit à chaque frame
306
+ * — sinon re-renders / write-back dataProvider → enter/leave en boucle.
307
+ */
308
+ this.hoverMix = 0;
309
+ this.leaveRaf = 0;
310
+ /** Compteur d’écouteurs `out` (publication paresseuse). */
311
+ this.outEventListeners = 0;
312
+ /** Compteur d’écouteurs `extract`. */
313
+ this.extractEventListeners = 0;
314
+ this.releasing = false;
315
+ this.inView = true;
316
+ this.resizeObserver = null;
317
+ this.intersectionObserver = null;
318
+ this.rebuildToken = 0;
319
+ this.ready = false;
320
+ this.formPublisher = null;
321
+ this.outPublisher = null;
322
+ this.extractPublisher = null;
323
+ this.lastOutAt = 0;
324
+ this.lastExtractAt = 0;
325
+ this.manualRois = [];
326
+ this.lastBlobUrls = [];
327
+ this.pendingRevokeUrls = [];
328
+ this.extractRunning = false;
329
+ this.extractSeq = 0;
330
+ this.onFormMutation = () => {
331
+ const data = (this.formPublisher?.get() ?? {});
332
+ this.applyFormParams(data);
333
+ };
334
+ this.onContextLost = (e) => {
335
+ e.preventDefault();
336
+ if (this.releasing)
337
+ return;
338
+ this.rebuildToken++;
339
+ this.stopLoop();
340
+ this.ready = false;
341
+ this.runtime = null;
342
+ };
343
+ this.onContextRestored = () => {
344
+ if (this.releasing || !this.inView)
345
+ return;
346
+ void this.ensureRuntime();
347
+ };
348
+ this.loop = () => {
349
+ this.raf = requestAnimationFrame(this.loop);
350
+ this.drawFrame(performance.now());
351
+ // play-on-hover : arrêter une fois la transition terminée
352
+ if (this.playOnHover && !this.hovering && this.hoverSettled()) {
353
+ this.stopLoop();
354
+ this.runtime?.setVideosPlaying(false);
355
+ }
356
+ };
357
+ this.onPointerMove = (e) => {
358
+ if (!this.mouse)
359
+ return;
360
+ const { x, y } = this.localPointer(e);
361
+ this.setPointerTarget(x, y);
362
+ if (this.pointerDown) {
363
+ this.mouseVec[2] = x;
364
+ this.mouseVec[3] = y;
365
+ }
366
+ };
367
+ this.onPointerDown = (e) => {
368
+ if (!this.mouse)
369
+ return;
370
+ this.pointerDown = true;
371
+ this.setPointerCapture?.(e.pointerId);
372
+ const { x, y } = this.localPointer(e);
373
+ this.setPointerTarget(x, y, true);
374
+ this.mouseVec[2] = x;
375
+ this.mouseVec[3] = y;
376
+ };
377
+ this.onPointerUp = (e) => {
378
+ if (!this.mouse)
379
+ return;
380
+ this.pointerDown = false;
381
+ const { x, y } = this.localPointer(e);
382
+ this.setPointerTarget(x, y);
383
+ this.mouseVec[2] = -Math.abs(this.mouseVec[2]);
384
+ this.mouseVec[3] = -Math.abs(this.mouseVec[3]);
385
+ };
386
+ this.onPointerEnter = () => {
387
+ if (this.leaveRaf) {
388
+ cancelAnimationFrame(this.leaveRaf);
389
+ this.leaveRaf = 0;
390
+ }
391
+ this.hovering = true;
392
+ this.hoverGoal = 1;
393
+ this.syncPlayback();
394
+ };
395
+ this.onPointerLeave = () => {
396
+ // Différer : un leave parasite (re-render / enfant shadow) suivi d’un
397
+ // re-enter immédiat provoquait activation↔désactivation en boucle.
398
+ if (this.leaveRaf)
399
+ cancelAnimationFrame(this.leaveRaf);
400
+ this.leaveRaf = requestAnimationFrame(() => {
401
+ this.leaveRaf = 0;
402
+ if (!this.isConnected || this.matches(":hover"))
403
+ return;
404
+ this.hovering = false;
405
+ this.hoverGoal = 0;
406
+ this.pointerDown = false;
407
+ this.syncPlayback();
408
+ });
409
+ };
410
+ }
411
+ connectedCallback() {
412
+ super.connectedCallback();
413
+ this.addEventListener("pointermove", this.onPointerMove);
414
+ this.addEventListener("pointerdown", this.onPointerDown);
415
+ this.addEventListener("pointerup", this.onPointerUp);
416
+ this.addEventListener("pointerleave", this.onPointerLeave);
417
+ this.addEventListener("pointerenter", this.onPointerEnter);
418
+ this.bindFormProvider();
419
+ this.bindOutPublisher();
420
+ this.bindExtractPublisher();
421
+ }
422
+ /**
423
+ * Suit les listeners `out` / `extract` pour ne publier (et ne readPixels)
424
+ * que s’il y a un consommateur — zéro coût tant que personne ne lit.
425
+ */
426
+ addEventListener(type, listener, options) {
427
+ if (type === "out" && listener)
428
+ this.outEventListeners++;
429
+ if (type === "extract" && listener)
430
+ this.extractEventListeners++;
431
+ super.addEventListener(type, listener, options);
432
+ }
433
+ removeEventListener(type, listener, options) {
434
+ if (type === "out" && listener) {
435
+ this.outEventListeners = Math.max(0, this.outEventListeners - 1);
436
+ }
437
+ if (type === "extract" && listener) {
438
+ this.extractEventListeners = Math.max(0, this.extractEventListeners - 1);
439
+ }
440
+ super.removeEventListener(type, listener, options);
441
+ }
442
+ disconnectedCallback() {
443
+ super.disconnectedCallback();
444
+ this.removeEventListener("pointermove", this.onPointerMove);
445
+ this.removeEventListener("pointerdown", this.onPointerDown);
446
+ this.removeEventListener("pointerup", this.onPointerUp);
447
+ this.removeEventListener("pointerleave", this.onPointerLeave);
448
+ this.removeEventListener("pointerenter", this.onPointerEnter);
449
+ if (this.leaveRaf) {
450
+ cancelAnimationFrame(this.leaveRaf);
451
+ this.leaveRaf = 0;
452
+ }
453
+ this.unbindFormProvider();
454
+ this.unbindContextEvents();
455
+ this.revokeBlobUrls();
456
+ for (const url of this.pendingRevokeUrls) {
457
+ try {
458
+ URL.revokeObjectURL(url);
459
+ }
460
+ catch {
461
+ /* ignore */
462
+ }
463
+ }
464
+ this.pendingRevokeUrls = [];
465
+ this.stopLoop();
466
+ this.resizeObserver?.disconnect();
467
+ this.intersectionObserver?.disconnect();
468
+ this.rebuildToken++;
469
+ this.ready = false;
470
+ this.releasing = true;
471
+ this.runtime?.dispose(true); // libère le slot navigateur
472
+ this.runtime = null;
473
+ this.outPublisher = null;
474
+ this.releasing = false;
475
+ }
476
+ firstUpdated() {
477
+ this.resizeObserver = new ResizeObserver(() => this.syncSize());
478
+ this.resizeObserver.observe(this);
479
+ this.intersectionObserver = new IntersectionObserver((entries) => {
480
+ this.inView = entries.some((e) => e.isIntersecting);
481
+ this.syncVisibility();
482
+ }, { threshold: 0 });
483
+ this.intersectionObserver.observe(this);
484
+ this.bindFormProvider();
485
+ this.bindOutPublisher();
486
+ this.bindExtractPublisher();
487
+ requestAnimationFrame(() => {
488
+ if (this.inView || !this.releaseOffscreen) {
489
+ void this.ensureRuntime();
490
+ }
491
+ });
492
+ }
493
+ updated(changed) {
494
+ if (!this.runtime)
495
+ return;
496
+ const shaderKeys = [
497
+ "image",
498
+ "bufferA",
499
+ "bufferB",
500
+ "bufferC",
501
+ "bufferD",
502
+ "common",
503
+ "channel0",
504
+ "channel1",
505
+ "channel2",
506
+ "channel3",
507
+ "imageCh0",
508
+ "imageCh1",
509
+ "imageCh2",
510
+ "imageCh3",
511
+ "bufferACh0",
512
+ "bufferACh1",
513
+ "bufferACh2",
514
+ "bufferACh3",
515
+ "bufferBCh0",
516
+ "bufferBCh1",
517
+ "bufferBCh2",
518
+ "bufferBCh3",
519
+ "bufferCCh0",
520
+ "bufferCCh1",
521
+ "bufferCCh2",
522
+ "bufferCCh3",
523
+ "bufferDCh0",
524
+ "bufferDCh1",
525
+ "bufferDCh2",
526
+ "bufferDCh3",
527
+ ];
528
+ if (shaderKeys.some((k) => changed.has(k))) {
529
+ void this.rebuild();
530
+ }
531
+ if (changed.has("play")) {
532
+ this.syncPlayback();
533
+ }
534
+ if (changed.has("dataProvider") ||
535
+ changed.has("outDataProvider") ||
536
+ changed.has("extractDataProvider")) {
537
+ this.bindFormProvider();
538
+ this.bindOutPublisher();
539
+ this.bindExtractPublisher();
540
+ }
541
+ if (changed.has("aspectRatio")) {
542
+ this.applyAspectRatio();
543
+ }
544
+ }
545
+ applyAspectRatio(textureUrl) {
546
+ const forced = this.aspectRatio.trim();
547
+ if (forced) {
548
+ this.style.setProperty("--sonic-shader-ar", forced.includes("/") ? forced : forced.replace(":", " / "));
549
+ return;
550
+ }
551
+ const url = textureUrl || this.channel0;
552
+ const size = url ? this.runtime?.getTextureSize(url) : null;
553
+ if (size) {
554
+ this.style.setProperty("--sonic-shader-ar", `${size.width} / ${size.height}`);
555
+ return;
556
+ }
557
+ this.style.removeProperty("--sonic-shader-ar");
558
+ }
559
+ resolveFormProviderId() {
560
+ const own = this.dataProvider?.trim();
561
+ if (own)
562
+ return own;
563
+ return (HTML.getAncestorAttributeValue(this, "dataProvider") ||
564
+ HTML.getAncestorAttributeValue(this, "formDataProvider") ||
565
+ "");
566
+ }
567
+ unbindFormProvider() {
568
+ if (this.formPublisher) {
569
+ // Nested form fields (sonic-input) mutate children — root onAssign
570
+ // does not fire; onInternalMutation does.
571
+ this.formPublisher.offInternalMutation(this.onFormMutation);
572
+ this.formPublisher = null;
573
+ }
574
+ }
575
+ bindFormProvider() {
576
+ this.unbindFormProvider();
577
+ const id = this.resolveFormProviderId();
578
+ if (!id)
579
+ return;
580
+ this.formPublisher = PublisherManager.get(id);
581
+ this.formPublisher.onInternalMutation(this.onFormMutation);
582
+ this.onFormMutation();
583
+ }
584
+ resolveOutProviderId() {
585
+ const own = this.outDataProvider?.trim();
586
+ if (own)
587
+ return own;
588
+ return this.resolveFormProviderId();
589
+ }
590
+ bindOutPublisher() {
591
+ const id = this.resolveOutProviderId();
592
+ this.outPublisher = id ? PublisherManager.get(id) : null;
593
+ }
594
+ resolveExtractProviderId() {
595
+ const own = this.extractDataProvider?.trim();
596
+ if (own)
597
+ return own;
598
+ return this.resolveOutProviderId();
599
+ }
600
+ bindExtractPublisher() {
601
+ const id = this.resolveExtractProviderId();
602
+ this.extractPublisher = id ? PublisherManager.get(id) : null;
603
+ }
604
+ applyFormParams(value) {
605
+ const data = value && typeof value === "object"
606
+ ? value
607
+ : {};
608
+ // Le slot hover-param est piloté en interne : ne pas le réécrire depuis le
609
+ // publisher (évite la boucle out → mutation → param ↔ hoverGoal).
610
+ const hoverSlot = parseHoverParam(this.hoverParam);
611
+ if (hoverSlot !== 0)
612
+ this.param0 = toNum(data.param0, this.param0);
613
+ if (hoverSlot !== 1)
614
+ this.param1 = toNum(data.param1, this.param1);
615
+ if (hoverSlot !== 2)
616
+ this.param2 = toNum(data.param2, this.param2);
617
+ if (hoverSlot !== 3)
618
+ this.param3 = toNum(data.param3, this.param3);
619
+ if ("mouseSpeed" in data) {
620
+ this.mouseSpeed = toNum(data.mouseSpeed, this.mouseSpeed);
621
+ }
622
+ if ("hoverSpeed" in data) {
623
+ this.hoverSpeed = toNum(data.hoverSpeed, this.hoverSpeed);
624
+ }
625
+ if ("extractThreshold" in data) {
626
+ this.extractThreshold = toNum(data.extractThreshold, this.extractThreshold);
627
+ }
628
+ if ("extractMax" in data) {
629
+ this.extractMax = toNum(data.extractMax, this.extractMax);
630
+ }
631
+ if ("extractPatch" in data) {
632
+ this.extractPatch = toNum(data.extractPatch, this.extractPatch);
633
+ }
634
+ if ("rois" in data) {
635
+ this.manualRois = parseRois(data.rois);
636
+ }
637
+ for (const key of CHANNEL_FORM_KEYS) {
638
+ if (!(key in data))
639
+ continue;
640
+ const next = channelFormValue(data[key]);
641
+ if (next === undefined)
642
+ continue;
643
+ if (this[key] !== next) {
644
+ this[key] = next;
645
+ }
646
+ }
647
+ }
648
+ /** Params GPU : remplace le slot `hover-param` par `hoverMix`. */
649
+ effectiveParams() {
650
+ const params = [
651
+ this.param0,
652
+ this.param1,
653
+ this.param2,
654
+ this.param3,
655
+ ];
656
+ const slot = parseHoverParam(this.hoverParam);
657
+ if (slot !== null)
658
+ params[slot] = this.hoverMix;
659
+ return params;
660
+ }
661
+ /**
662
+ * Hors viewport : libère textures / FBO / programmes, **sans** loseContext
663
+ * (sinon le même canvas ne peut plus compiler au retour).
664
+ * Le slot navigateur est libéré au disconnect (`dispose(true)`).
665
+ */
666
+ releaseRuntime() {
667
+ this.rebuildToken++;
668
+ this.stopLoop();
669
+ this.ready = false;
670
+ this.releasing = true;
671
+ this.unbindContextEvents();
672
+ this.runtime?.dispose(false);
673
+ this.runtime = null;
674
+ this.releasing = false;
675
+ }
676
+ getCanvas() {
677
+ return (this.renderRoot?.querySelector("canvas") ??
678
+ null);
679
+ }
680
+ /** Contrat SonicFrameSource — canvas lisible pour un autre sonic-shader. */
681
+ getFrameCanvas() {
682
+ if (!this.ready || !this.runtime || this.runtime.isLost)
683
+ return null;
684
+ return this.getCanvas();
685
+ }
686
+ /** Résout `#id` dans getRootNode() puis document ; clés live `__sonic_frame_`. */
687
+ lookupElement(key) {
688
+ if (!key.startsWith("#"))
689
+ return null;
690
+ const live = lookupLiveElement(key);
691
+ if (live)
692
+ return live;
693
+ const id = key.slice(1);
694
+ if (!id || id.startsWith("__sonic_frame_"))
695
+ return null;
696
+ const root = this.getRootNode();
697
+ if (root instanceof Document || root instanceof ShadowRoot) {
698
+ const el = root.getElementById(id);
699
+ if (el)
700
+ return el;
701
+ }
702
+ return typeof document !== "undefined" ? document.getElementById(id) : null;
703
+ }
704
+ bindContextEvents() {
705
+ const canvas = this.getCanvas();
706
+ canvas?.addEventListener("webglcontextlost", this.onContextLost);
707
+ canvas?.addEventListener("webglcontextrestored", this.onContextRestored);
708
+ }
709
+ unbindContextEvents() {
710
+ const canvas = this.getCanvas();
711
+ canvas?.removeEventListener("webglcontextlost", this.onContextLost);
712
+ canvas?.removeEventListener("webglcontextrestored", this.onContextRestored);
713
+ }
714
+ async ensureRuntime() {
715
+ if (this.runtime && !this.runtime.isLost)
716
+ return;
717
+ this.runtime = null;
718
+ await this.updateComplete;
719
+ if (!this.isConnected || (!this.inView && this.releaseOffscreen))
720
+ return;
721
+ const canvas = this.getCanvas();
722
+ if (!canvas)
723
+ return;
724
+ try {
725
+ this.errorMessage = "";
726
+ this.runtime = new ShaderToyRuntime(canvas);
727
+ this.runtime.setElementResolver((key) => this.lookupElement(key));
728
+ this.bindContextEvents();
729
+ this.syncSize();
730
+ await this.rebuild();
731
+ }
732
+ catch (err) {
733
+ this.emitError(err);
734
+ }
735
+ }
736
+ syncVisibility() {
737
+ if (!this.inView && this.releaseOffscreen) {
738
+ this.releaseRuntime();
739
+ return;
740
+ }
741
+ if (this.inView && (!this.runtime || this.runtime.isLost)) {
742
+ void this.ensureRuntime();
743
+ return;
744
+ }
745
+ this.syncPlayback();
746
+ }
747
+ syncSize() {
748
+ if (!this.runtime)
749
+ return;
750
+ const rect = this.getBoundingClientRect();
751
+ const cssW = Math.max(rect.width, this.clientWidth, 1);
752
+ const cssH = Math.max(rect.height, this.clientHeight, 1);
753
+ const dpr = Math.min(window.devicePixelRatio || 1, this.dprMax);
754
+ this.runtime.resize(cssW * dpr, cssH * dpr);
755
+ if (this.ready) {
756
+ this.drawFrame(performance.now());
757
+ }
758
+ }
759
+ buildChannels(pass) {
760
+ const fallbacks = [
761
+ this.channel0,
762
+ this.channel1,
763
+ this.channel2,
764
+ this.channel3,
765
+ ];
766
+ const overrides = pass === "image"
767
+ ? [this.imageCh0, this.imageCh1, this.imageCh2, this.imageCh3]
768
+ : pass === "bufferA"
769
+ ? [
770
+ this.bufferACh0,
771
+ this.bufferACh1,
772
+ this.bufferACh2,
773
+ this.bufferACh3,
774
+ ]
775
+ : pass === "bufferB"
776
+ ? [
777
+ this.bufferBCh0,
778
+ this.bufferBCh1,
779
+ this.bufferBCh2,
780
+ this.bufferBCh3,
781
+ ]
782
+ : pass === "bufferC"
783
+ ? [
784
+ this.bufferCCh0,
785
+ this.bufferCCh1,
786
+ this.bufferCCh2,
787
+ this.bufferCCh3,
788
+ ]
789
+ : [
790
+ this.bufferDCh0,
791
+ this.bufferDCh1,
792
+ this.bufferDCh2,
793
+ this.bufferDCh3,
794
+ ];
795
+ return [0, 1, 2, 3].map((i) => parseChannelSource(overrides[i], fallbacks[i]));
796
+ }
797
+ collectUrls(channels) {
798
+ const urls = [];
799
+ for (const chs of channels.values()) {
800
+ for (const c of chs) {
801
+ if (c.kind === "url")
802
+ urls.push(c.url);
803
+ }
804
+ }
805
+ return urls;
806
+ }
807
+ collectElementKeys(channels) {
808
+ const keys = [];
809
+ for (const chs of channels.values()) {
810
+ for (const c of chs) {
811
+ if (c.kind === "element")
812
+ keys.push(c.key);
813
+ }
814
+ }
815
+ return [...new Set(keys)];
816
+ }
817
+ async rebuild() {
818
+ if (!this.runtime || this.runtime.isLost || !this.image.trim())
819
+ return;
820
+ const token = ++this.rebuildToken;
821
+ this.errorMessage = "";
822
+ const sources = {
823
+ common: this.common,
824
+ image: this.image,
825
+ bufferA: this.bufferA,
826
+ bufferB: this.bufferB,
827
+ bufferC: this.bufferC,
828
+ bufferD: this.bufferD,
829
+ };
830
+ const channels = new Map();
831
+ for (const pass of [
832
+ "bufferA",
833
+ "bufferB",
834
+ "bufferC",
835
+ "bufferD",
836
+ "image",
837
+ ]) {
838
+ channels.set(pass, this.buildChannels(pass));
839
+ }
840
+ try {
841
+ this.syncSize();
842
+ const urls = this.collectUrls(channels);
843
+ await this.runtime.ensureTextures(urls);
844
+ for (const key of this.collectElementKeys(channels)) {
845
+ this.runtime.ensureElementTexture(key);
846
+ }
847
+ if (token !== this.rebuildToken || !this.runtime || this.runtime.isLost) {
848
+ return;
849
+ }
850
+ const aspectHint = this.channel0.startsWith("#") ? "" : this.channel0 || urls[0];
851
+ this.applyAspectRatio(aspectHint);
852
+ this.syncSize();
853
+ this.runtime.setSources(sources, channels);
854
+ if (token !== this.rebuildToken || !this.runtime || this.runtime.isLost) {
855
+ return;
856
+ }
857
+ this.ready = true;
858
+ this.startTime = performance.now();
859
+ this.lastTime = this.startTime;
860
+ this.frame = 0;
861
+ this.drawFrame(this.startTime);
862
+ this.syncPlayback();
863
+ }
864
+ catch (err) {
865
+ if (token !== this.rebuildToken)
866
+ return;
867
+ this.ready = false;
868
+ this.stopLoop();
869
+ this.emitError(err);
870
+ }
871
+ }
872
+ emitError(err) {
873
+ const message = err instanceof ShaderCompileError
874
+ ? err.message
875
+ : err instanceof Error
876
+ ? err.message
877
+ : String(err);
878
+ this.errorMessage = message;
879
+ this.dispatchEvent(new CustomEvent("error", {
880
+ detail: {
881
+ message,
882
+ pass: err instanceof ShaderCompileError ? err.pass : undefined,
883
+ infoLog: err instanceof ShaderCompileError ? err.infoLog : undefined,
884
+ },
885
+ bubbles: true,
886
+ composed: true,
887
+ }));
888
+ }
889
+ shouldAnimate() {
890
+ if (!this.play ||
891
+ !this.ready ||
892
+ !this.inView ||
893
+ prefersReducedMotion() ||
894
+ !this.runtime) {
895
+ return false;
896
+ }
897
+ if (this.playOnHover) {
898
+ return this.hovering || !this.hoverSettled();
899
+ }
900
+ return true;
901
+ }
902
+ hoverSettled() {
903
+ if (parseHoverParam(this.hoverParam) === null)
904
+ return true;
905
+ return Math.abs(this.hoverMix - this.hoverGoal) < 0.002;
906
+ }
907
+ syncPlayback() {
908
+ if (this.shouldAnimate()) {
909
+ this.runtime?.setVideosPlaying(true);
910
+ if (!this.raf) {
911
+ this.lastTime = performance.now();
912
+ this.loop();
913
+ }
914
+ }
915
+ else {
916
+ this.stopLoop();
917
+ this.runtime?.setVideosPlaying(false);
918
+ if (this.ready)
919
+ this.drawFrame(performance.now());
920
+ }
921
+ }
922
+ stopLoop() {
923
+ if (this.raf) {
924
+ cancelAnimationFrame(this.raf);
925
+ this.raf = 0;
926
+ }
927
+ }
928
+ drawFrame(now) {
929
+ if (!this.runtime || !this.ready)
930
+ return;
931
+ const time = (now - this.startTime) / 1000;
932
+ const timeDelta = Math.max(0, (now - this.lastTime) / 1000);
933
+ this.lastTime = now;
934
+ this.advanceMouseFollow(timeDelta);
935
+ this.advanceHover(timeDelta);
936
+ const params = this.effectiveParams();
937
+ this.runtime.render({
938
+ time,
939
+ timeDelta,
940
+ frame: this.frame++,
941
+ mouse: this.mouseVec,
942
+ params,
943
+ });
944
+ this.frameSeq++;
945
+ this.maybePublishOut(now, time, params);
946
+ void this.maybeExtract(now, time);
947
+ }
948
+ round3(n) {
949
+ return Math.round(n * 1000) / 1000;
950
+ }
951
+ buildOutput(time, params, wantSample = false) {
952
+ const { width, height } = this.runtime?.size ?? { width: 1, height: 1 };
953
+ const hasPtr = this.mouseHasPointer;
954
+ const mx = hasPtr && width > 0 ? this.mouseVec[0] / width : 0.5;
955
+ const my = hasPtr && height > 0 ? this.mouseVec[1] / height : 0.5;
956
+ const p = params ?? this.effectiveParams();
957
+ const out = {
958
+ time: this.round3(time),
959
+ frame: this.frame,
960
+ mouseX: this.round3(mx),
961
+ mouseY: this.round3(my),
962
+ hovering: this.hovering ? 1 : 0,
963
+ param0: this.round3(p[0]),
964
+ param1: this.round3(p[1]),
965
+ param2: this.round3(p[2]),
966
+ param3: this.round3(p[3]),
967
+ };
968
+ if (wantSample && this.runtime) {
969
+ const sx = hasPtr ? this.mouseVec[0] : width * 0.5;
970
+ const sy = hasPtr ? this.mouseVec[1] : height * 0.5;
971
+ const [r8, g8, b8, a8] = this.runtime.readPixel(sx, sy);
972
+ const r = r8 / 255;
973
+ const g = g8 / 255;
974
+ const b = b8 / 255;
975
+ const a = a8 / 255;
976
+ out.sampleR = this.round3(r);
977
+ out.sampleG = this.round3(g);
978
+ out.sampleB = this.round3(b);
979
+ out.sampleA = this.round3(a);
980
+ out.sampleLuma = this.round3(0.2126 * r + 0.7152 * g + 0.0722 * b);
981
+ }
982
+ return out;
983
+ }
984
+ /** Un champ out du publisher a-t-il un listener (sonic-value, @subscribe…) ? */
985
+ publisherFieldHasListener(key) {
986
+ const pub = this.outPublisher;
987
+ const child = pub?._proxies_?.get(key);
988
+ return !!child?.hasListener?.();
989
+ }
990
+ /**
991
+ * Publication paresseuse : uniquement s’il y a un event `out` ou un lecteur
992
+ * DP sur un champ de sortie. Sinon aucun coût (pas de set, pas de readPixels).
993
+ */
994
+ hasOutConsumers() {
995
+ if (this.outEventListeners > 0)
996
+ return true;
997
+ if (!this.outPublisher)
998
+ return false;
999
+ for (const key of OUT_META_KEYS) {
1000
+ if (this.publisherFieldHasListener(key))
1001
+ return true;
1002
+ }
1003
+ for (const key of OUT_SAMPLE_KEYS) {
1004
+ if (this.publisherFieldHasListener(key))
1005
+ return true;
1006
+ }
1007
+ return false;
1008
+ }
1009
+ /**
1010
+ * Même DP pour form (entrée param*) et out : ne pas réécrire les params
1011
+ * pilotés par le formulaire (sinon sortie viewport / hoverMix → champs à 0).
1012
+ * Seul le slot `hover-param` reste écrit (piloté par le shader).
1013
+ */
1014
+ shouldSkipParamOutWrite(key) {
1015
+ if (!OUT_PARAM_KEYS.includes(key))
1016
+ return false;
1017
+ if (!this.formPublisher || this.formPublisher !== this.outPublisher) {
1018
+ return false;
1019
+ }
1020
+ const slot = parseHoverParam(this.hoverParam);
1021
+ if (slot === null)
1022
+ return true;
1023
+ return Number(key.slice(5)) !== slot;
1024
+ }
1025
+ /**
1026
+ * `readPixels` si `sample` et au moins un consommateur out.
1027
+ * (Un `@handle(frame)` + `get(dp)` massif doit recevoir les samples.)
1028
+ */
1029
+ needsSampleRead() {
1030
+ return this.sample && this.hasOutConsumers();
1031
+ }
1032
+ maybePublishOut(now, time, params) {
1033
+ if (!this.outPublisher)
1034
+ this.bindOutPublisher();
1035
+ if (!this.hasOutConsumers())
1036
+ return;
1037
+ const interval = Math.max(16, this.outInterval || 80);
1038
+ if (now - this.lastOutAt < interval)
1039
+ return;
1040
+ this.lastOutAt = now;
1041
+ const payload = this.buildOutput(time, params, this.needsSampleRead());
1042
+ const pub = this.outPublisher;
1043
+ if (pub) {
1044
+ for (const [key, value] of Object.entries(payload)) {
1045
+ if (value === undefined)
1046
+ continue;
1047
+ if (this.shouldSkipParamOutWrite(key))
1048
+ continue;
1049
+ try {
1050
+ // Champs individuels pour ne pas écraser le reste du form
1051
+ pub[key].set(value);
1052
+ }
1053
+ catch {
1054
+ /* publisher leaf manquant / non settable */
1055
+ }
1056
+ }
1057
+ }
1058
+ this.dispatchEvent(new CustomEvent("out", {
1059
+ detail: payload,
1060
+ bubbles: true,
1061
+ composed: true,
1062
+ }));
1063
+ }
1064
+ revokeBlobUrls() {
1065
+ for (const url of this.lastBlobUrls) {
1066
+ try {
1067
+ URL.revokeObjectURL(url);
1068
+ }
1069
+ catch {
1070
+ /* ignore */
1071
+ }
1072
+ }
1073
+ this.lastBlobUrls = [];
1074
+ }
1075
+ /** Révoque les URLs du batch précédent après un court délai (évite img cassées). */
1076
+ scheduleRevokePreviousBlobs(urls) {
1077
+ const objectUrls = urls.filter((u) => u.startsWith("blob:"));
1078
+ if (objectUrls.length === 0)
1079
+ return;
1080
+ this.pendingRevokeUrls.push(...objectUrls);
1081
+ const toRevoke = objectUrls;
1082
+ window.setTimeout(() => {
1083
+ for (const url of toRevoke) {
1084
+ try {
1085
+ URL.revokeObjectURL(url);
1086
+ }
1087
+ catch {
1088
+ /* ignore */
1089
+ }
1090
+ const i = this.pendingRevokeUrls.indexOf(url);
1091
+ if (i >= 0)
1092
+ this.pendingRevokeUrls.splice(i, 1);
1093
+ }
1094
+ }, 1500);
1095
+ }
1096
+ publisherHasFieldListener(pub, key) {
1097
+ const child = pub?._proxies_?.get(key);
1098
+ return !!child?.hasListener?.();
1099
+ }
1100
+ hasExtractConsumers() {
1101
+ if (this.extractEventListeners > 0)
1102
+ return true;
1103
+ const pub = this.extractPublisher;
1104
+ if (!pub)
1105
+ return false;
1106
+ for (const key of EXTRACT_OUT_KEYS) {
1107
+ if (this.publisherHasFieldListener(pub, key))
1108
+ return true;
1109
+ }
1110
+ return false;
1111
+ }
1112
+ syncManualRoisFromPublishers() {
1113
+ const tryGet = (pub) => {
1114
+ if (!pub?.get)
1115
+ return;
1116
+ try {
1117
+ const data = pub.get() ?? {};
1118
+ if ("rois" in data)
1119
+ this.manualRois = parseRois(data.rois);
1120
+ }
1121
+ catch {
1122
+ /* ignore */
1123
+ }
1124
+ };
1125
+ tryGet(this.formPublisher);
1126
+ if (this.extractPublisher && this.extractPublisher !== this.formPublisher) {
1127
+ tryGet(this.extractPublisher);
1128
+ }
1129
+ }
1130
+ resolveExtractInterval() {
1131
+ if (this.extractInterval > 0)
1132
+ return Math.max(16, this.extractInterval);
1133
+ return Math.max(16, this.outInterval || 100);
1134
+ }
1135
+ /**
1136
+ * Lit une ROI à la demande (hors throttle). Nécessite un runtime prêt.
1137
+ */
1138
+ async readRegion(roi) {
1139
+ if (!this.runtime || !this.ready)
1140
+ return null;
1141
+ const item = await this.buildExtractItem(roi, "manual", undefined);
1142
+ return item;
1143
+ }
1144
+ /** Lance une extraction complète immédiatement. */
1145
+ async extractNow() {
1146
+ const time = (performance.now() - this.startTime) / 1000;
1147
+ return this.runExtract(time);
1148
+ }
1149
+ async maybeExtract(now, time) {
1150
+ if (!this.extract || !this.ready || !this.runtime)
1151
+ return;
1152
+ if (!this.extractPublisher)
1153
+ this.bindExtractPublisher();
1154
+ if (!this.hasExtractConsumers())
1155
+ return;
1156
+ if (now - this.lastExtractAt < this.resolveExtractInterval())
1157
+ return;
1158
+ if (this.extractRunning)
1159
+ return;
1160
+ this.lastExtractAt = now;
1161
+ await this.runExtract(time);
1162
+ }
1163
+ async runExtract(time) {
1164
+ const empty = {
1165
+ frame: this.frame,
1166
+ time: this.round3(time),
1167
+ items: [],
1168
+ };
1169
+ if (!this.runtime || !this.ready)
1170
+ return empty;
1171
+ this.extractRunning = true;
1172
+ try {
1173
+ this.syncManualRoisFromPublishers();
1174
+ const { width: bufW, height: bufH } = this.runtime.size;
1175
+ const rois = this.manualRois.map((r) => ({
1176
+ ...r,
1177
+ source: "manual",
1178
+ }));
1179
+ const maskPass = parseExtractPass(this.extractMask);
1180
+ if (maskPass) {
1181
+ const full = this.runtime.readBufferRect(maskPass, 0, 0, bufW, bufH);
1182
+ if (full) {
1183
+ const peaks = findPeaks(full.data, full.width, full.height, {
1184
+ threshold: this.extractThreshold,
1185
+ maxCount: Math.max(0, Math.floor(this.extractMax)),
1186
+ // Défaut ≈ patch/3 plafonné à 16 (doc) — laisse assez de coins espacés
1187
+ minDistance: Math.max(8, Math.floor(Math.min(this.extractPatch / 3, 16))),
1188
+ });
1189
+ // Score relatif au meilleur peak du batch (ordre inchangé, UI lisible)
1190
+ const topScore = peaks[0]?.score || 1;
1191
+ for (let i = 0; i < peaks.length; i++) {
1192
+ const p = peaks[i];
1193
+ rois.push({
1194
+ id: `detect-${i}`,
1195
+ x: (p.x + 0.5) / bufW,
1196
+ y: (p.y + 0.5) / bufH,
1197
+ patch: this.extractPatch,
1198
+ source: "detect",
1199
+ score: topScore > 0 ? p.score / topScore : p.score,
1200
+ });
1201
+ }
1202
+ }
1203
+ }
1204
+ const pending = [];
1205
+ let detectIdx = 0;
1206
+ const pass = parseExtractPass(this.extractSource) ?? "image";
1207
+ for (const roi of rois) {
1208
+ const source = roi.source === "detect" ? "detect" : "manual";
1209
+ if (source === "detect") {
1210
+ if (detectIdx >= Math.max(0, Math.floor(this.extractMax)))
1211
+ continue;
1212
+ detectIdx++;
1213
+ }
1214
+ const px = roiToPixels(roi, bufW, bufH, this.extractPatch, MAX_PATCH_PX);
1215
+ if (!px)
1216
+ continue;
1217
+ const rect = pass === "image"
1218
+ ? this.runtime.readRect(px.x, px.y, px.w, px.h)
1219
+ : this.runtime.readBufferRect(pass, px.x, px.y, px.w, px.h);
1220
+ if (!rect)
1221
+ continue;
1222
+ // Copie : le buffer WebGL peut être réutilisé / invalidé ensuite
1223
+ const rgba = new Uint8Array(rect.data);
1224
+ const mean = meanRgba(rgba);
1225
+ const item = {
1226
+ id: roi.id || `${source}-${px.x}-${px.y}`,
1227
+ x: this.round3(rect.x / bufW),
1228
+ y: this.round3(rect.y / bufH),
1229
+ w: this.round3(rect.width / bufW),
1230
+ h: this.round3(rect.height / bufH),
1231
+ meanR: this.round3(mean.r),
1232
+ meanG: this.round3(mean.g),
1233
+ meanB: this.round3(mean.b),
1234
+ meanA: this.round3(mean.a),
1235
+ meanLuma: this.round3(mean.luma),
1236
+ source,
1237
+ };
1238
+ if (typeof roi.score === "number")
1239
+ item.score = this.round3(roi.score);
1240
+ pending.push({
1241
+ item,
1242
+ rgba,
1243
+ width: rect.width,
1244
+ height: rect.height,
1245
+ });
1246
+ }
1247
+ // Phase async : bitmaps (après copies CPU)
1248
+ if (this.extractBitmaps) {
1249
+ const token = this.rebuildToken;
1250
+ for (const p of pending) {
1251
+ if (token !== this.rebuildToken || !this.isConnected) {
1252
+ for (const q of pending) {
1253
+ if (q.item.blobUrl)
1254
+ revokeMediaUrls([q.item.blobUrl]);
1255
+ }
1256
+ return empty;
1257
+ }
1258
+ const url = await rgbaToBlobUrl(p.rgba, p.width, p.height);
1259
+ if (token !== this.rebuildToken || !this.isConnected) {
1260
+ if (url)
1261
+ revokeMediaUrls([url]);
1262
+ for (const q of pending) {
1263
+ if (q.item.blobUrl)
1264
+ revokeMediaUrls([q.item.blobUrl]);
1265
+ }
1266
+ return empty;
1267
+ }
1268
+ if (url)
1269
+ assignExtractMediaUrls(p.item, url);
1270
+ }
1271
+ }
1272
+ if (!this.isConnected) {
1273
+ for (const p of pending) {
1274
+ if (p.item.blobUrl)
1275
+ revokeMediaUrls([p.item.blobUrl]);
1276
+ }
1277
+ return empty;
1278
+ }
1279
+ const items = pending.map((p) => p.item);
1280
+ const payload = {
1281
+ frame: this.frame,
1282
+ time: this.round3(time),
1283
+ items,
1284
+ };
1285
+ this.publishExtract(payload);
1286
+ return payload;
1287
+ }
1288
+ finally {
1289
+ this.extractRunning = false;
1290
+ }
1291
+ }
1292
+ async buildExtractItem(roi, source, score) {
1293
+ if (!this.runtime)
1294
+ return null;
1295
+ const { width: bufW, height: bufH } = this.runtime.size;
1296
+ const px = roiToPixels(roi, bufW, bufH, this.extractPatch, MAX_PATCH_PX);
1297
+ if (!px)
1298
+ return null;
1299
+ const pass = parseExtractPass(this.extractSource) ?? "image";
1300
+ const rect = pass === "image"
1301
+ ? this.runtime.readRect(px.x, px.y, px.w, px.h)
1302
+ : this.runtime.readBufferRect(pass, px.x, px.y, px.w, px.h);
1303
+ if (!rect)
1304
+ return null;
1305
+ const mean = meanRgba(rect.data);
1306
+ const item = {
1307
+ id: roi.id || `${source}-${px.x}-${px.y}`,
1308
+ x: this.round3(rect.x / bufW),
1309
+ y: this.round3(rect.y / bufH),
1310
+ w: this.round3(rect.width / bufW),
1311
+ h: this.round3(rect.height / bufH),
1312
+ meanR: this.round3(mean.r),
1313
+ meanG: this.round3(mean.g),
1314
+ meanB: this.round3(mean.b),
1315
+ meanA: this.round3(mean.a),
1316
+ meanLuma: this.round3(mean.luma),
1317
+ source,
1318
+ };
1319
+ if (typeof score === "number")
1320
+ item.score = this.round3(score);
1321
+ if (this.extractBitmaps) {
1322
+ const token = this.rebuildToken;
1323
+ const url = await rgbaToBlobUrl(rect.data, rect.width, rect.height);
1324
+ if (token !== this.rebuildToken || !this.isConnected) {
1325
+ if (url)
1326
+ revokeMediaUrls([url]);
1327
+ return null;
1328
+ }
1329
+ if (url)
1330
+ assignExtractMediaUrls(item, url);
1331
+ }
1332
+ return item;
1333
+ }
1334
+ publishExtract(payload) {
1335
+ // Ne pas révoquer tout de suite : les <img> du batch précédent casseraient.
1336
+ this.scheduleRevokePreviousBlobs(this.lastBlobUrls);
1337
+ this.lastBlobUrls = [];
1338
+ for (const it of payload.items) {
1339
+ if (it.blobUrl)
1340
+ this.lastBlobUrls.push(it.blobUrl);
1341
+ }
1342
+ this.extractSeq++;
1343
+ if (!this.extractPublisher)
1344
+ this.bindExtractPublisher();
1345
+ const pub = this.extractPublisher;
1346
+ if (pub) {
1347
+ // Set atomique sur la racine : invalide `_cachedGet_` du parent.
1348
+ // (pub.extracts.set(...) seul laisse un snapshot périmé → 1 seul item en get()).
1349
+ try {
1350
+ const prev = pub.get?.() ?? {};
1351
+ pub.set({
1352
+ ...prev,
1353
+ rois: Array.isArray(prev.rois) ? prev.rois : this.manualRois,
1354
+ extracts: payload.items,
1355
+ extractCount: payload.items.length,
1356
+ extractSeq: this.extractSeq,
1357
+ });
1358
+ }
1359
+ catch {
1360
+ try {
1361
+ pub.extracts.set(payload.items);
1362
+ pub.extractCount.set(payload.items.length);
1363
+ pub.extractSeq.set(this.extractSeq);
1364
+ }
1365
+ catch {
1366
+ /* ignore */
1367
+ }
1368
+ }
1369
+ }
1370
+ this.dispatchEvent(new CustomEvent("extract", {
1371
+ detail: payload,
1372
+ bubbles: true,
1373
+ composed: true,
1374
+ }));
1375
+ }
1376
+ /**
1377
+ * Mode target : poursuite exponentielle (vitesse proportionnelle à la distance).
1378
+ * Frame-rate indépendant via `1 - exp(-speed * dt)`.
1379
+ */
1380
+ advanceMouseFollow(dt) {
1381
+ if (!this.mouse || this.mouseMode !== "target" || !this.mouseHasPointer) {
1382
+ return;
1383
+ }
1384
+ const speed = Math.max(0, this.mouseSpeed);
1385
+ const t = speed <= 0 || dt <= 0 ? 1 : 1 - Math.exp(-speed * dt);
1386
+ this.mouseFollow[0] += (this.mouseTarget[0] - this.mouseFollow[0]) * t;
1387
+ this.mouseFollow[1] += (this.mouseTarget[1] - this.mouseFollow[1]) * t;
1388
+ this.mouseVec[0] = this.mouseFollow[0];
1389
+ this.mouseVec[1] = this.mouseFollow[1];
1390
+ }
1391
+ /** Rollover / roll-out → easing de `hoverMix` (0↔1) pour le slot choisi. */
1392
+ advanceHover(dt) {
1393
+ if (parseHoverParam(this.hoverParam) === null)
1394
+ return;
1395
+ const speed = Math.max(0, this.hoverSpeed);
1396
+ const t = speed <= 0 || dt <= 0 ? 1 : 1 - Math.exp(-speed * dt);
1397
+ const next = this.hoverMix + (this.hoverGoal - this.hoverMix) * t;
1398
+ // Snap pour éviter une micro-animation infinie (play-on-hover qui redémarre).
1399
+ this.hoverMix =
1400
+ Math.abs(next - this.hoverGoal) < 0.002 ? this.hoverGoal : next;
1401
+ }
1402
+ localPointer(e) {
1403
+ const rect = this.getBoundingClientRect();
1404
+ const dpr = Math.min(window.devicePixelRatio || 1, this.dprMax);
1405
+ const x = (e.clientX - rect.left) * dpr;
1406
+ const y = (rect.height - (e.clientY - rect.top)) * dpr;
1407
+ return { x, y };
1408
+ }
1409
+ setPointerTarget(x, y, snap = false) {
1410
+ this.mouseTarget[0] = x;
1411
+ this.mouseTarget[1] = y;
1412
+ if (!this.mouseHasPointer || snap || this.mouseMode === "direct") {
1413
+ this.mouseHasPointer = true;
1414
+ this.mouseFollow[0] = x;
1415
+ this.mouseFollow[1] = y;
1416
+ this.mouseVec[0] = x;
1417
+ this.mouseVec[1] = y;
1418
+ }
1419
+ }
1420
+ render() {
1421
+ return html `
1422
+ <canvas part="canvas"></canvas>
1423
+ ${this.errorMessage
1424
+ ? html `<div class="err" part="error">${this.errorMessage}</div>`
1425
+ : null}
1426
+ `;
1427
+ }
1428
+ };
1429
+ SonicShader.styles = css `
1430
+ :host {
1431
+ display: block;
1432
+ position: relative;
1433
+ width: 100%;
1434
+ max-width: 100%;
1435
+ height: auto;
1436
+ aspect-ratio: var(--sonic-shader-ar, 16 / 9);
1437
+ overflow: hidden;
1438
+ background: #0a0a0a;
1439
+ color: #f87171;
1440
+ font: 12px/1.4 ui-monospace, monospace;
1441
+ }
1442
+ canvas {
1443
+ position: absolute;
1444
+ inset: 0;
1445
+ width: 100%;
1446
+ height: 100%;
1447
+ display: block;
1448
+ touch-action: none;
1449
+ }
1450
+ .err {
1451
+ position: absolute;
1452
+ inset: 0;
1453
+ z-index: 1;
1454
+ padding: 0.75rem;
1455
+ background: rgba(0, 0, 0, 0.85);
1456
+ white-space: pre-wrap;
1457
+ overflow: auto;
1458
+ }
1459
+ `;
1460
+ __decorate([
1461
+ property()
1462
+ ], SonicShader.prototype, "image", void 0);
1463
+ __decorate([
1464
+ property({ attribute: "buffer-a" })
1465
+ ], SonicShader.prototype, "bufferA", void 0);
1466
+ __decorate([
1467
+ property({ attribute: "buffer-b" })
1468
+ ], SonicShader.prototype, "bufferB", void 0);
1469
+ __decorate([
1470
+ property({ attribute: "buffer-c" })
1471
+ ], SonicShader.prototype, "bufferC", void 0);
1472
+ __decorate([
1473
+ property({ attribute: "buffer-d" })
1474
+ ], SonicShader.prototype, "bufferD", void 0);
1475
+ __decorate([
1476
+ property()
1477
+ ], SonicShader.prototype, "common", void 0);
1478
+ __decorate([
1479
+ property()
1480
+ ], SonicShader.prototype, "channel0", void 0);
1481
+ __decorate([
1482
+ property()
1483
+ ], SonicShader.prototype, "channel1", void 0);
1484
+ __decorate([
1485
+ property()
1486
+ ], SonicShader.prototype, "channel2", void 0);
1487
+ __decorate([
1488
+ property()
1489
+ ], SonicShader.prototype, "channel3", void 0);
1490
+ __decorate([
1491
+ property({ attribute: "image-ch0" })
1492
+ ], SonicShader.prototype, "imageCh0", void 0);
1493
+ __decorate([
1494
+ property({ attribute: "image-ch1" })
1495
+ ], SonicShader.prototype, "imageCh1", void 0);
1496
+ __decorate([
1497
+ property({ attribute: "image-ch2" })
1498
+ ], SonicShader.prototype, "imageCh2", void 0);
1499
+ __decorate([
1500
+ property({ attribute: "image-ch3" })
1501
+ ], SonicShader.prototype, "imageCh3", void 0);
1502
+ __decorate([
1503
+ property({ attribute: "buffer-a-ch0" })
1504
+ ], SonicShader.prototype, "bufferACh0", void 0);
1505
+ __decorate([
1506
+ property({ attribute: "buffer-a-ch1" })
1507
+ ], SonicShader.prototype, "bufferACh1", void 0);
1508
+ __decorate([
1509
+ property({ attribute: "buffer-a-ch2" })
1510
+ ], SonicShader.prototype, "bufferACh2", void 0);
1511
+ __decorate([
1512
+ property({ attribute: "buffer-a-ch3" })
1513
+ ], SonicShader.prototype, "bufferACh3", void 0);
1514
+ __decorate([
1515
+ property({ attribute: "buffer-b-ch0" })
1516
+ ], SonicShader.prototype, "bufferBCh0", void 0);
1517
+ __decorate([
1518
+ property({ attribute: "buffer-b-ch1" })
1519
+ ], SonicShader.prototype, "bufferBCh1", void 0);
1520
+ __decorate([
1521
+ property({ attribute: "buffer-b-ch2" })
1522
+ ], SonicShader.prototype, "bufferBCh2", void 0);
1523
+ __decorate([
1524
+ property({ attribute: "buffer-b-ch3" })
1525
+ ], SonicShader.prototype, "bufferBCh3", void 0);
1526
+ __decorate([
1527
+ property({ attribute: "buffer-c-ch0" })
1528
+ ], SonicShader.prototype, "bufferCCh0", void 0);
1529
+ __decorate([
1530
+ property({ attribute: "buffer-c-ch1" })
1531
+ ], SonicShader.prototype, "bufferCCh1", void 0);
1532
+ __decorate([
1533
+ property({ attribute: "buffer-c-ch2" })
1534
+ ], SonicShader.prototype, "bufferCCh2", void 0);
1535
+ __decorate([
1536
+ property({ attribute: "buffer-c-ch3" })
1537
+ ], SonicShader.prototype, "bufferCCh3", void 0);
1538
+ __decorate([
1539
+ property({ attribute: "buffer-d-ch0" })
1540
+ ], SonicShader.prototype, "bufferDCh0", void 0);
1541
+ __decorate([
1542
+ property({ attribute: "buffer-d-ch1" })
1543
+ ], SonicShader.prototype, "bufferDCh1", void 0);
1544
+ __decorate([
1545
+ property({ attribute: "buffer-d-ch2" })
1546
+ ], SonicShader.prototype, "bufferDCh2", void 0);
1547
+ __decorate([
1548
+ property({ attribute: "buffer-d-ch3" })
1549
+ ], SonicShader.prototype, "bufferDCh3", void 0);
1550
+ __decorate([
1551
+ property({ type: Boolean, reflect: true })
1552
+ ], SonicShader.prototype, "play", void 0);
1553
+ __decorate([
1554
+ property({ type: Boolean, attribute: "play-on-hover" })
1555
+ ], SonicShader.prototype, "playOnHover", void 0);
1556
+ __decorate([
1557
+ property({ type: Boolean })
1558
+ ], SonicShader.prototype, "mouse", void 0);
1559
+ __decorate([
1560
+ property({ type: String, attribute: "mouse-mode" })
1561
+ ], SonicShader.prototype, "mouseMode", void 0);
1562
+ __decorate([
1563
+ property({ type: Number, attribute: "mouse-speed" })
1564
+ ], SonicShader.prototype, "mouseSpeed", void 0);
1565
+ __decorate([
1566
+ property({ attribute: "hover-param" })
1567
+ ], SonicShader.prototype, "hoverParam", void 0);
1568
+ __decorate([
1569
+ property({ type: Number, attribute: "hover-speed" })
1570
+ ], SonicShader.prototype, "hoverSpeed", void 0);
1571
+ __decorate([
1572
+ property({ type: Boolean, attribute: "release-offscreen" })
1573
+ ], SonicShader.prototype, "releaseOffscreen", void 0);
1574
+ __decorate([
1575
+ property({ type: Number, attribute: "dpr-max" })
1576
+ ], SonicShader.prototype, "dprMax", void 0);
1577
+ __decorate([
1578
+ property({ type: Number, attribute: "param0" })
1579
+ ], SonicShader.prototype, "param0", void 0);
1580
+ __decorate([
1581
+ property({ type: Number, attribute: "param1" })
1582
+ ], SonicShader.prototype, "param1", void 0);
1583
+ __decorate([
1584
+ property({ type: Number, attribute: "param2" })
1585
+ ], SonicShader.prototype, "param2", void 0);
1586
+ __decorate([
1587
+ property({ type: Number, attribute: "param3" })
1588
+ ], SonicShader.prototype, "param3", void 0);
1589
+ __decorate([
1590
+ property({ type: String })
1591
+ ], SonicShader.prototype, "dataProvider", void 0);
1592
+ __decorate([
1593
+ property({ type: String, attribute: "out-data-provider" })
1594
+ ], SonicShader.prototype, "outDataProvider", void 0);
1595
+ __decorate([
1596
+ property({ type: Boolean })
1597
+ ], SonicShader.prototype, "sample", void 0);
1598
+ __decorate([
1599
+ property({ type: Number, attribute: "out-interval" })
1600
+ ], SonicShader.prototype, "outInterval", void 0);
1601
+ __decorate([
1602
+ property({ type: Boolean })
1603
+ ], SonicShader.prototype, "extract", void 0);
1604
+ __decorate([
1605
+ property({ type: Number, attribute: "extract-interval" })
1606
+ ], SonicShader.prototype, "extractInterval", void 0);
1607
+ __decorate([
1608
+ property({ type: String, attribute: "extract-source" })
1609
+ ], SonicShader.prototype, "extractSource", void 0);
1610
+ __decorate([
1611
+ property({ type: String, attribute: "extract-mask" })
1612
+ ], SonicShader.prototype, "extractMask", void 0);
1613
+ __decorate([
1614
+ property({ type: Number, attribute: "extract-threshold" })
1615
+ ], SonicShader.prototype, "extractThreshold", void 0);
1616
+ __decorate([
1617
+ property({ type: Number, attribute: "extract-max" })
1618
+ ], SonicShader.prototype, "extractMax", void 0);
1619
+ __decorate([
1620
+ property({ type: Number, attribute: "extract-patch" })
1621
+ ], SonicShader.prototype, "extractPatch", void 0);
1622
+ __decorate([
1623
+ property({ type: Boolean, attribute: "extract-bitmaps" })
1624
+ ], SonicShader.prototype, "extractBitmaps", void 0);
1625
+ __decorate([
1626
+ property({ type: String, attribute: "extract-data-provider" })
1627
+ ], SonicShader.prototype, "extractDataProvider", void 0);
1628
+ __decorate([
1629
+ property({ type: String, attribute: "aspect-ratio" })
1630
+ ], SonicShader.prototype, "aspectRatio", void 0);
1631
+ __decorate([
1632
+ state()
1633
+ ], SonicShader.prototype, "errorMessage", void 0);
1634
+ SonicShader = __decorate([
1635
+ customElement(tagName)
1636
+ ], SonicShader);
1637
+ export { SonicShader };
1638
+ export { parseChannelSource, ShaderToyRuntime, shouldUploadElementFrame } from "./gl-runtime";
1639
+ export { buildFragmentSource } from "./shadertoy-prelude";
1640
+ export { toMediaUrl, cloneMediaRef, isFrameSource, mediaElementKey, } from "@supersoniks/concorde/core/utils/mediaRef";
1641
+ export { findPeaks, meanRgba, parseExtractPass, parseHoverParam, roiToPixels, ShaderCompileError, } from "./types";
1642
+ //# sourceMappingURL=shader.js.map