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