shaders 2.5.103 → 2.5.104

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 (223) hide show
  1. package/dist/core/Fog-DhFHErOx.js +674 -0
  2. package/dist/core/Smoke-LIDjCv7f.js +629 -0
  3. package/dist/core/SmokeFill-ChSIfTxW.js +641 -0
  4. package/dist/core/{VideoTexture-DnHIs4pp.js → VideoTexture-SWLe5c3m.js} +1 -1
  5. package/dist/core/{WebcamTexture-XBDo2kgN.js → WebcamTexture-cXPyEumA.js} +1 -1
  6. package/dist/core/index.js +73 -70
  7. package/dist/core/registry.js +72 -69
  8. package/dist/core/renderer.d.ts.map +1 -1
  9. package/dist/core/shaderRegistry-CVhdTDhR.js +252 -0
  10. package/dist/core/shaderRegistry.d.ts.map +1 -1
  11. package/dist/core/shaders/Fog/index.d.ts +78 -0
  12. package/dist/core/shaders/Fog/index.d.ts.map +1 -0
  13. package/dist/core/shaders/Fog/index.js +4 -0
  14. package/dist/core/shaders/Form3D/index.js +1 -1
  15. package/dist/core/shaders/Glass/index.js +1 -1
  16. package/dist/core/shaders/GlassTiles/index.js +1 -1
  17. package/dist/core/shaders/Glitch/index.js +1 -1
  18. package/dist/core/shaders/Glow/index.js +1 -1
  19. package/dist/core/shaders/Godrays/index.js +1 -1
  20. package/dist/core/shaders/Grayscale/index.js +1 -1
  21. package/dist/core/shaders/Grid/index.js +1 -1
  22. package/dist/core/shaders/GridDistortion/index.js +1 -1
  23. package/dist/core/shaders/Group/index.js +1 -1
  24. package/dist/core/shaders/Halftone/index.js +1 -1
  25. package/dist/core/shaders/HexGrid/index.js +1 -1
  26. package/dist/core/shaders/HueShift/index.js +1 -1
  27. package/dist/core/shaders/ImageTexture/index.js +1 -1
  28. package/dist/core/shaders/Invert/index.js +1 -1
  29. package/dist/core/shaders/Kaleidoscope/index.js +1 -1
  30. package/dist/core/shaders/LensFlare/index.js +1 -1
  31. package/dist/core/shaders/LinearBlur/index.js +1 -1
  32. package/dist/core/shaders/LinearGradient/index.js +1 -1
  33. package/dist/core/shaders/Liquify/index.js +1 -1
  34. package/dist/core/shaders/Mirror/index.js +1 -1
  35. package/dist/core/shaders/MultiPointGradient/index.js +1 -1
  36. package/dist/core/shaders/Neon/index.js +1 -1
  37. package/dist/core/shaders/Paper/index.js +1 -1
  38. package/dist/core/shaders/Perspective/index.js +1 -1
  39. package/dist/core/shaders/Pixelate/index.js +1 -1
  40. package/dist/core/shaders/Plasma/index.js +1 -1
  41. package/dist/core/shaders/PolarCoordinates/index.js +1 -1
  42. package/dist/core/shaders/Polygon/index.js +1 -1
  43. package/dist/core/shaders/Posterize/index.js +1 -1
  44. package/dist/core/shaders/ProgressiveBlur/index.js +1 -1
  45. package/dist/core/shaders/RadialGradient/index.js +1 -1
  46. package/dist/core/shaders/RectangularCoordinates/index.js +1 -1
  47. package/dist/core/shaders/Ring/index.js +1 -1
  48. package/dist/core/shaders/Ripples/index.js +1 -1
  49. package/dist/core/shaders/RoundedRect/index.js +1 -1
  50. package/dist/core/shaders/Saturation/index.js +1 -1
  51. package/dist/core/shaders/Sharpness/index.js +1 -1
  52. package/dist/core/shaders/Shatter/index.js +1 -1
  53. package/dist/core/shaders/SimplexNoise/index.js +1 -1
  54. package/dist/core/shaders/SineWave/index.js +1 -1
  55. package/dist/core/shaders/Smoke/index.d.ts +113 -0
  56. package/dist/core/shaders/Smoke/index.d.ts.map +1 -0
  57. package/dist/core/shaders/Smoke/index.js +4 -0
  58. package/dist/core/shaders/SmokeFill/index.d.ts +145 -0
  59. package/dist/core/shaders/SmokeFill/index.d.ts.map +1 -0
  60. package/dist/core/shaders/SmokeFill/index.js +5 -0
  61. package/dist/core/shaders/Solarize/index.js +1 -1
  62. package/dist/core/shaders/SolidColor/index.js +1 -1
  63. package/dist/core/shaders/Spherize/index.js +1 -1
  64. package/dist/core/shaders/Spiral/index.js +1 -1
  65. package/dist/core/shaders/Star/index.js +1 -1
  66. package/dist/core/shaders/Strands/index.js +1 -1
  67. package/dist/core/shaders/Stretch/index.js +1 -1
  68. package/dist/core/shaders/Stripes/index.js +1 -1
  69. package/dist/core/shaders/StudioBackground/index.js +1 -1
  70. package/dist/core/shaders/Swirl/index.js +1 -1
  71. package/dist/core/shaders/TiltShift/index.js +1 -1
  72. package/dist/core/shaders/Tint/index.js +1 -1
  73. package/dist/core/shaders/Trapezoid/index.js +1 -1
  74. package/dist/core/shaders/Tritone/index.js +1 -1
  75. package/dist/core/shaders/Truchet/index.js +1 -1
  76. package/dist/core/shaders/Twirl/index.js +1 -1
  77. package/dist/core/shaders/VHS/index.js +1 -1
  78. package/dist/core/shaders/Vesica/index.js +1 -1
  79. package/dist/core/shaders/Vibrance/index.js +1 -1
  80. package/dist/core/shaders/VideoTexture/index.js +2 -2
  81. package/dist/core/shaders/Vignette/index.js +1 -1
  82. package/dist/core/shaders/Voronoi/index.js +1 -1
  83. package/dist/core/shaders/WaveDistortion/index.js +1 -1
  84. package/dist/core/shaders/Weave/index.js +1 -1
  85. package/dist/core/shaders/WebcamTexture/index.js +2 -2
  86. package/dist/core/shaders/ZoomBlur/index.js +1 -1
  87. package/dist/js/createShader.js +1 -1
  88. package/dist/js/utils/generatePresetCode.d.ts.map +1 -1
  89. package/dist/js/utils/generatePresetCode.js +67 -0
  90. package/dist/react/Fog.js +223 -0
  91. package/dist/react/Preview.js +3 -0
  92. package/dist/react/Shader.js +1 -1
  93. package/dist/react/Smoke.js +223 -0
  94. package/dist/react/SmokeFill.js +223 -0
  95. package/dist/react/components/Fog.d.ts +31 -0
  96. package/dist/react/components/Fog.d.ts.map +1 -0
  97. package/dist/react/components/Smoke.d.ts +33 -0
  98. package/dist/react/components/Smoke.d.ts.map +1 -0
  99. package/dist/react/components/SmokeFill.d.ts +34 -0
  100. package/dist/react/components/SmokeFill.d.ts.map +1 -0
  101. package/dist/react/engine/Preview.d.ts.map +1 -1
  102. package/dist/react/index.d.ts +3 -0
  103. package/dist/react/index.d.ts.map +1 -1
  104. package/dist/react/index.js +4 -1
  105. package/dist/react/utils/generatePresetCode.d.ts.map +1 -1
  106. package/dist/react/utils/generatePresetCode.js +67 -0
  107. package/dist/registry.js +1189 -0
  108. package/dist/solid/components/Fog.d.ts +28 -0
  109. package/dist/solid/components/Fog.d.ts.map +1 -0
  110. package/dist/solid/components/Fog.js +228 -0
  111. package/dist/solid/components/Smoke.d.ts +30 -0
  112. package/dist/solid/components/Smoke.d.ts.map +1 -0
  113. package/dist/solid/components/Smoke.js +228 -0
  114. package/dist/solid/components/SmokeFill.d.ts +31 -0
  115. package/dist/solid/components/SmokeFill.d.ts.map +1 -0
  116. package/dist/solid/components/SmokeFill.js +228 -0
  117. package/dist/solid/engine/Preview.d.ts.map +1 -1
  118. package/dist/solid/engine/Preview.js +162 -156
  119. package/dist/solid/engine/Shader.js +1 -1
  120. package/dist/solid/index.d.ts +3 -0
  121. package/dist/solid/index.d.ts.map +1 -1
  122. package/dist/solid/index.js +144 -138
  123. package/dist/solid/utils/generatePresetCode.d.ts.map +1 -1
  124. package/dist/solid/utils/generatePresetCode.js +67 -0
  125. package/dist/svelte/components/Fog.svelte.d.ts +19 -0
  126. package/dist/svelte/components/Smoke.svelte.d.ts +20 -0
  127. package/dist/svelte/components/SmokeFill.svelte.d.ts +21 -0
  128. package/dist/svelte/{generatePresetCode-psTzYsW3.js → generatePresetCode-DR_OAIL7.js} +67 -0
  129. package/dist/svelte/index.d.ts +3 -0
  130. package/dist/svelte/index.js +1151 -551
  131. package/dist/svelte/source/components/Fog.svelte +325 -0
  132. package/dist/svelte/source/components/Smoke.svelte +326 -0
  133. package/dist/svelte/source/components/SmokeFill.svelte +327 -0
  134. package/dist/svelte/source/engine/Preview.svelte +6 -0
  135. package/dist/svelte/source/index.js +3 -0
  136. package/dist/svelte/utils/generatePresetCode.js +1 -1
  137. package/dist/vue/Fog.js +3 -0
  138. package/dist/vue/Fog.vue_vue_type_script_setup_true_lang.js +222 -0
  139. package/dist/vue/Preview.vue_vue_type_script_setup_true_lang.js +6 -0
  140. package/dist/vue/Shader.vue_vue_type_script_setup_true_lang.js +1 -1
  141. package/dist/vue/Smoke.js +3 -0
  142. package/dist/vue/Smoke.vue_vue_type_script_setup_true_lang.js +227 -0
  143. package/dist/vue/SmokeFill.js +3 -0
  144. package/dist/vue/SmokeFill.vue_vue_type_script_setup_true_lang.js +232 -0
  145. package/dist/vue/components/Fog.vue.d.ts +54 -0
  146. package/dist/vue/components/Fog.vue.d.ts.map +1 -0
  147. package/dist/vue/components/Smoke.vue.d.ts +55 -0
  148. package/dist/vue/components/Smoke.vue.d.ts.map +1 -0
  149. package/dist/vue/components/SmokeFill.vue.d.ts +56 -0
  150. package/dist/vue/components/SmokeFill.vue.d.ts.map +1 -0
  151. package/dist/vue/index.d.ts +3 -0
  152. package/dist/vue/index.d.ts.map +1 -1
  153. package/dist/vue/index.js +4 -1
  154. package/dist/vue/utils/generatePresetCode.d.ts.map +1 -1
  155. package/dist/vue/utils/generatePresetCode.js +67 -0
  156. package/package.json +25 -1
  157. package/dist/core/shaderRegistry-BWuH2me2.js +0 -246
  158. /package/dist/core/{Form3D-rKpxb9t3.js → Form3D-DaPbLGUi.js} +0 -0
  159. /package/dist/core/{Glass-C04tCmBL.js → Glass-CpcmrDfm.js} +0 -0
  160. /package/dist/core/{GlassTiles-k1C4a4u8.js → GlassTiles-Dgh6nOaE.js} +0 -0
  161. /package/dist/core/{Glitch-DzPMkBu4.js → Glitch-BsbzLahF.js} +0 -0
  162. /package/dist/core/{Glow-BwaPYDRZ.js → Glow-Ft2x2QHL.js} +0 -0
  163. /package/dist/core/{Godrays-DAYmq-BP.js → Godrays-D1LINbut.js} +0 -0
  164. /package/dist/core/{Grayscale-lYKBBkGY.js → Grayscale-Ri-695Uh.js} +0 -0
  165. /package/dist/core/{Grid-BJ-nxN3i.js → Grid-BYSsAIEv.js} +0 -0
  166. /package/dist/core/{GridDistortion-DtaRNrTZ.js → GridDistortion-DWFGD8ya.js} +0 -0
  167. /package/dist/core/{Group-DpozigtX.js → Group-CkhjTW59.js} +0 -0
  168. /package/dist/core/{Halftone-XFa7by1s.js → Halftone-BUCDTTAU.js} +0 -0
  169. /package/dist/core/{HexGrid-D-EmQ4kI.js → HexGrid-BUiDrehv.js} +0 -0
  170. /package/dist/core/{HueShift-D9K0ynaS.js → HueShift-BtGVMu7q.js} +0 -0
  171. /package/dist/core/{ImageTexture-CArkZMfh.js → ImageTexture-CrX_9-f0.js} +0 -0
  172. /package/dist/core/{Invert-DCnwo_Xq.js → Invert-azYrcDMi.js} +0 -0
  173. /package/dist/core/{Kaleidoscope-BytHro3k.js → Kaleidoscope-CFWtKisp.js} +0 -0
  174. /package/dist/core/{LensFlare-B0vv4x97.js → LensFlare-ttrXgfea.js} +0 -0
  175. /package/dist/core/{LinearBlur-BFewxPjV.js → LinearBlur-By2aD8OO.js} +0 -0
  176. /package/dist/core/{LinearGradient-BKUf_u7r.js → LinearGradient-CM02z32l.js} +0 -0
  177. /package/dist/core/{Liquify-cE5dxrfh.js → Liquify-CyXo6vAH.js} +0 -0
  178. /package/dist/core/{Mirror-DIle92J8.js → Mirror-B7XmfGdw.js} +0 -0
  179. /package/dist/core/{MultiPointGradient-DDwac_mm.js → MultiPointGradient-8zGSIM4U.js} +0 -0
  180. /package/dist/core/{Neon-Dg8UfC7P.js → Neon-C1JlexhM.js} +0 -0
  181. /package/dist/core/{Paper-bMSMCeYK.js → Paper-B08rxNys.js} +0 -0
  182. /package/dist/core/{Perspective-BmfvQV6W.js → Perspective-BN_OpTZq.js} +0 -0
  183. /package/dist/core/{Pixelate-Dl26r6IT.js → Pixelate-dxPAFCRu.js} +0 -0
  184. /package/dist/core/{Plasma-CJWS1TvX.js → Plasma-DGCw0cd7.js} +0 -0
  185. /package/dist/core/{PolarCoordinates-lq6K4WBm.js → PolarCoordinates-CMYCFT4S.js} +0 -0
  186. /package/dist/core/{Polygon-DRCs3CYs.js → Polygon-CsCOt5YE.js} +0 -0
  187. /package/dist/core/{Posterize-BjH7Zscm.js → Posterize-Blv9pzPT.js} +0 -0
  188. /package/dist/core/{ProgressiveBlur-B8xwWyTM.js → ProgressiveBlur-Cx6eR7o9.js} +0 -0
  189. /package/dist/core/{RadialGradient-DiGFPgrn.js → RadialGradient-De0gtdh3.js} +0 -0
  190. /package/dist/core/{RectangularCoordinates-COkNDxi0.js → RectangularCoordinates-8Sa2GaDy.js} +0 -0
  191. /package/dist/core/{Ring-QApyKPzE.js → Ring-kHH-DIDQ.js} +0 -0
  192. /package/dist/core/{Ripples-C8Q17Hvz.js → Ripples-Bf6Zwg6X.js} +0 -0
  193. /package/dist/core/{RoundedRect-Ca9af9xe.js → RoundedRect-B0sWh2BN.js} +0 -0
  194. /package/dist/core/{Saturation-CgDaiq6n.js → Saturation-CB19kOXg.js} +0 -0
  195. /package/dist/core/{Sharpness-CRXT0D30.js → Sharpness-CQOboeqy.js} +0 -0
  196. /package/dist/core/{Shatter-BssZTRYJ.js → Shatter-BhK75BiG.js} +0 -0
  197. /package/dist/core/{SimplexNoise-KfTCAfpL.js → SimplexNoise-BcSgytjc.js} +0 -0
  198. /package/dist/core/{SineWave-Ckeap_YM.js → SineWave-VTNDSK_g.js} +0 -0
  199. /package/dist/core/{Solarize-DhtQYYpW.js → Solarize-CWDgSBiv.js} +0 -0
  200. /package/dist/core/{SolidColor-6yUkGybH.js → SolidColor-DhMdM3bE.js} +0 -0
  201. /package/dist/core/{Spherize-8LXrGGG_.js → Spherize-BZxwopX8.js} +0 -0
  202. /package/dist/core/{Spiral-Bs7uZrBr.js → Spiral-gpkw37l1.js} +0 -0
  203. /package/dist/core/{Star-DiXwnPGP.js → Star-WJAOZ5P5.js} +0 -0
  204. /package/dist/core/{Strands-DsAAVemq.js → Strands-DOthZNHt.js} +0 -0
  205. /package/dist/core/{Stretch-D7P2R5lV.js → Stretch--GV6hbru.js} +0 -0
  206. /package/dist/core/{Stripes-DF8agIiJ.js → Stripes-CFCXw1_N.js} +0 -0
  207. /package/dist/core/{StudioBackground-BFeNfwEu.js → StudioBackground-DJr-cxOL.js} +0 -0
  208. /package/dist/core/{Swirl-BwezrSAA.js → Swirl-By5FadQK.js} +0 -0
  209. /package/dist/core/{TiltShift-CI3FlfYk.js → TiltShift-Dh8wc9GG.js} +0 -0
  210. /package/dist/core/{Tint-BdXlqlzz.js → Tint-DaTx2HII.js} +0 -0
  211. /package/dist/core/{Trapezoid-BX_hmeZJ.js → Trapezoid-Co0sIA73.js} +0 -0
  212. /package/dist/core/{Tritone-BlJ7cchN.js → Tritone-C9Yx69Tw.js} +0 -0
  213. /package/dist/core/{Truchet-Bnn0fwbF.js → Truchet-CkFSkniR.js} +0 -0
  214. /package/dist/core/{Twirl-C5ijhqz1.js → Twirl-v8pLqUTN.js} +0 -0
  215. /package/dist/core/{VHS-CQJ1hV_D.js → VHS-mKd1QBBj.js} +0 -0
  216. /package/dist/core/{Vesica-DU0f85NG.js → Vesica-CxP7UD0a.js} +0 -0
  217. /package/dist/core/{Vibrance-CGvYDeds.js → Vibrance-WR5yQv_9.js} +0 -0
  218. /package/dist/core/{Vignette-BJaonUVL.js → Vignette-hAIKTi35.js} +0 -0
  219. /package/dist/core/{Voronoi-DZemzWA4.js → Voronoi-DOGmwUSK.js} +0 -0
  220. /package/dist/core/{WaveDistortion--Y-m667K.js → WaveDistortion-BGdgj3Iz.js} +0 -0
  221. /package/dist/core/{Weave-CtyohvHz.js → Weave-CIP_EUPa.js} +0 -0
  222. /package/dist/core/{ZoomBlur-BwkhsFRE.js → ZoomBlur-BuIVpHGG.js} +0 -0
  223. /package/dist/core/{browser-DTNngPey.js → browser-D8zonASQ.js} +0 -0
@@ -0,0 +1,227 @@
1
+ import { Fragment, Teleport, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, defineComponent, effectScope, inject, mergeDefaults, mergeProps, onBeforeUnmount, onMounted, openBlock, provide, ref, renderSlot, toValue, unref, useId, watch } from "vue";
2
+ import { createUniformsMap } from "../core/index.js";
3
+ import { setColorSpaceMode } from "../core/utilities/transformations/index.js";
4
+ import { componentDefinition } from "../core/shaders/Smoke/index.js";
5
+ var _hoisted_1 = ["data-shader-id"];
6
+ var _hoisted_2 = ["width", "height"];
7
+ var Smoke_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
8
+ __name: "Smoke",
9
+ props: /* @__PURE__ */ mergeDefaults({
10
+ emitFrom: {},
11
+ blendMode: {},
12
+ opacity: {},
13
+ visible: { type: Boolean },
14
+ id: {},
15
+ maskSource: {},
16
+ maskType: {},
17
+ renderOrder: {},
18
+ transform: {},
19
+ colorA: {},
20
+ colorB: {},
21
+ direction: {},
22
+ speed: {},
23
+ spread: {},
24
+ emitRadius: {},
25
+ intensity: {},
26
+ dissipation: {},
27
+ detail: {},
28
+ gravity: {},
29
+ colorDecay: {},
30
+ mouseInfluence: {},
31
+ mouseRadius: {},
32
+ colorSpace: {}
33
+ }, {
34
+ blendMode: "normal",
35
+ visible: true,
36
+ ...Object.entries(componentDefinition.props).reduce((acc, [key, config]) => {
37
+ acc[key] = config.default;
38
+ return acc;
39
+ }, {})
40
+ }),
41
+ setup(__props) {
42
+ let _experimentalWarnedOnce = false;
43
+ if (componentDefinition.experimental && !_experimentalWarnedOnce) {
44
+ _experimentalWarnedOnce = true;
45
+ const _e = componentDefinition.experimental;
46
+ console.info(`%c⚠ [Shaders] ${componentDefinition.name} is experimental: ${_e.message}`, "color: #f59e0b; font-weight: bold");
47
+ }
48
+ function isPropDriver(value) {
49
+ return typeof value === "object" && value !== null && "type" in value && (value.type === "map" || value.type === "mouse" || value.type === "mouse-position" || value.type === "auto-animate");
50
+ }
51
+ const props = __props;
52
+ const instanceId = (props.id ? props.id.replace(/[^a-zA-Z0-9_]/g, "_") : null) || useId().replace(/[^a-zA-Z0-9_]/g, "");
53
+ provide("shaderParentId", instanceId);
54
+ const DEFAULT_TRANSFORM = {
55
+ offsetX: 0,
56
+ offsetY: 0,
57
+ rotation: 0,
58
+ scale: 1,
59
+ anchorX: .5,
60
+ anchorY: .5,
61
+ edges: "transparent"
62
+ };
63
+ const effectiveTransform = computed(() => ({
64
+ ...DEFAULT_TRANSFORM,
65
+ ...props.transform
66
+ }));
67
+ const shaderReadyProps = computed(() => {
68
+ let baseProps = { ...Object.entries(componentDefinition.props).reduce((acc, [key, config]) => {
69
+ acc[key] = config.default;
70
+ return acc;
71
+ }, {}) };
72
+ for (const key in props) if (key !== "blendMode" && key !== "opacity" && key !== "visible" && key !== "id" && key !== "maskSource" && key !== "maskType" && key !== "renderOrder" && key !== "transform") {
73
+ const val = toValue(props[key]);
74
+ if (isPropDriver(val)) continue;
75
+ if (val !== Object.entries(componentDefinition.props).reduce((acc, [key$1, config]) => {
76
+ acc[key$1] = config.default;
77
+ return acc;
78
+ }, {})[key]) baseProps[key] = val;
79
+ }
80
+ return baseProps;
81
+ });
82
+ const mapsFromProps = computed(() => {
83
+ const maps = {};
84
+ for (const key of Object.keys(componentDefinition.props)) {
85
+ const val = props[key];
86
+ if (isPropDriver(val)) maps[key] = val;
87
+ }
88
+ return Object.keys(maps).length > 0 ? maps : void 0;
89
+ });
90
+ const shaderColorSpace = inject("shaderColorSpace");
91
+ if (shaderColorSpace) setColorSpaceMode(shaderColorSpace.value);
92
+ const uniforms = createUniformsMap(componentDefinition, shaderReadyProps.value, instanceId);
93
+ const parentId = inject("shaderParentId");
94
+ if (parentId === void 0) throw new Error("Shader components must be used inside an <Shader> component or another shader component");
95
+ const parentRegister = inject("shaderNodeRegister");
96
+ if (parentRegister === void 0) throw new Error("Shader components must be used inside an <Shader> component or another shader component");
97
+ const parentUniformUpdate = inject("shaderUniformUpdate");
98
+ if (parentUniformUpdate === void 0) throw new Error("Shader components require shaderUniformUpdate from parent");
99
+ const parentMetadataUpdate = inject("shaderMetadataUpdate");
100
+ if (parentMetadataUpdate === void 0) throw new Error("Shader components require shaderMetadataUpdate from parent");
101
+ const rendererResetSignal = inject("shaderRendererResetSignal");
102
+ const orderMarker = ref(null);
103
+ const isCapturesDOM = !!componentDefinition.capturesDOM;
104
+ const captureCanvas = ref(null);
105
+ const captureW = ref(typeof window !== "undefined" ? Math.round(window.innerWidth * Math.min(window.devicePixelRatio, 2)) : 0);
106
+ const captureH = ref(typeof window !== "undefined" ? Math.round(window.innerHeight * Math.min(window.devicePixelRatio, 2)) : 0);
107
+ const captureStyle = {
108
+ position: "fixed",
109
+ inset: "0",
110
+ width: "100vw",
111
+ height: "100vh",
112
+ zIndex: "-9999"
113
+ };
114
+ if (isCapturesDOM) {
115
+ const onWinResize = () => {
116
+ const d = Math.min(window.devicePixelRatio, 2);
117
+ captureW.value = Math.round(window.innerWidth * d);
118
+ captureH.value = Math.round(window.innerHeight * d);
119
+ };
120
+ onMounted(() => {
121
+ const d = Math.min(window.devicePixelRatio, 2);
122
+ captureW.value = Math.round(window.innerWidth * d);
123
+ captureH.value = Math.round(window.innerHeight * d);
124
+ window.addEventListener("resize", onWinResize);
125
+ });
126
+ onBeforeUnmount(() => {
127
+ window.removeEventListener("resize", onWinResize);
128
+ });
129
+ }
130
+ let detectedRenderOrder = void 0;
131
+ const registerWithRenderer = () => {
132
+ parentRegister(instanceId, componentDefinition.fragmentNode, parentId, {
133
+ blendMode: props.blendMode,
134
+ opacity: props.opacity,
135
+ visible: props.visible === false ? false : true,
136
+ id: props.id,
137
+ mask: props.maskSource ? {
138
+ source: props.maskSource,
139
+ type: props.maskType || "alpha"
140
+ } : void 0,
141
+ maps: mapsFromProps.value,
142
+ renderOrder: props.renderOrder ?? detectedRenderOrder,
143
+ transform: effectiveTransform.value
144
+ }, uniforms, componentDefinition, isCapturesDOM ? captureCanvas.value ?? void 0 : void 0);
145
+ };
146
+ onMounted(() => {
147
+ if (props.renderOrder === void 0 && orderMarker.value) {
148
+ const parent = orderMarker.value.parentElement;
149
+ if (parent) {
150
+ const siblings = parent.querySelectorAll(":scope > [data-shader-id]");
151
+ const position = Array.from(siblings).indexOf(orderMarker.value);
152
+ if (position >= 0) {
153
+ detectedRenderOrder = position;
154
+ parentMetadataUpdate(instanceId, { renderOrder: position });
155
+ }
156
+ }
157
+ }
158
+ });
159
+ const setupUniformWatchers = () => {
160
+ const scope = effectScope();
161
+ scope.run(() => {
162
+ Object.entries(uniforms).forEach(([propName, { uniform, transform }]) => {
163
+ watch(() => props[propName], (newValue) => {
164
+ if (uniform && uniform.value !== void 0 && !isPropDriver(newValue)) parentUniformUpdate(instanceId, propName, newValue);
165
+ }, { deep: true });
166
+ });
167
+ watch(() => [
168
+ props.blendMode,
169
+ props.opacity,
170
+ props.visible,
171
+ props.id,
172
+ props.maskSource,
173
+ props.maskType,
174
+ props.renderOrder,
175
+ props.transform,
176
+ mapsFromProps.value
177
+ ], ([blendMode, opacity, visible]) => {
178
+ parentMetadataUpdate(instanceId, {
179
+ blendMode,
180
+ opacity,
181
+ visible: visible === false ? false : true,
182
+ id: props.id,
183
+ mask: props.maskSource ? {
184
+ source: props.maskSource,
185
+ type: props.maskType || "alpha"
186
+ } : void 0,
187
+ maps: mapsFromProps.value,
188
+ renderOrder: props.renderOrder ?? detectedRenderOrder,
189
+ transform: effectiveTransform.value
190
+ });
191
+ }, { deep: true });
192
+ if (rendererResetSignal) watch(() => rendererResetSignal.value, (newValue) => {
193
+ if (newValue > 0) registerWithRenderer();
194
+ }, { immediate: true });
195
+ });
196
+ onBeforeUnmount(() => {
197
+ scope.stop();
198
+ });
199
+ };
200
+ if (isCapturesDOM) onMounted(() => {
201
+ setupUniformWatchers();
202
+ });
203
+ else setupUniformWatchers();
204
+ onBeforeUnmount(() => {
205
+ parentRegister(instanceId, null, null, null, null, null);
206
+ });
207
+ return (_ctx, _cache) => {
208
+ return openBlock(), createElementBlock(Fragment, null, [createElementVNode("span", {
209
+ ref_key: "orderMarker",
210
+ ref: orderMarker,
211
+ style: { "display": "contents" },
212
+ "data-shader-id": unref(instanceId)
213
+ }, [!isCapturesDOM ? renderSlot(_ctx.$slots, "default", { key: 0 }) : createCommentVNode("", true)], 8, _hoisted_1), isCapturesDOM ? (openBlock(), createBlock(Teleport, {
214
+ key: 0,
215
+ to: "body"
216
+ }, [createElementVNode("canvas", mergeProps({
217
+ ref_key: "captureCanvas",
218
+ ref: captureCanvas
219
+ }, { "layoutsubtree": "" }, {
220
+ width: captureW.value,
221
+ height: captureH.value,
222
+ style: captureStyle
223
+ }), [renderSlot(_ctx.$slots, "default")], 16, _hoisted_2)])) : createCommentVNode("", true)], 64);
224
+ };
225
+ }
226
+ });
227
+ export { Smoke_vue_vue_type_script_setup_true_lang_default as default };
@@ -0,0 +1,3 @@
1
+ import SmokeFill_vue_vue_type_script_setup_true_lang_default from "./SmokeFill.vue_vue_type_script_setup_true_lang.js";
2
+ var SmokeFill_default = SmokeFill_vue_vue_type_script_setup_true_lang_default;
3
+ export { SmokeFill_default as default };
@@ -0,0 +1,232 @@
1
+ import { Fragment, Teleport, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, defineComponent, effectScope, inject, mergeDefaults, mergeProps, onBeforeUnmount, onMounted, openBlock, provide, ref, renderSlot, toValue, unref, useId, watch } from "vue";
2
+ import { createUniformsMap } from "../core/index.js";
3
+ import { setColorSpaceMode } from "../core/utilities/transformations/index.js";
4
+ import { componentDefinition } from "../core/shaders/SmokeFill/index.js";
5
+ var _hoisted_1 = ["data-shader-id"];
6
+ var _hoisted_2 = ["width", "height"];
7
+ var SmokeFill_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
8
+ __name: "SmokeFill",
9
+ props: /* @__PURE__ */ mergeDefaults({
10
+ center: {},
11
+ emitFrom: {},
12
+ blendMode: {},
13
+ opacity: {},
14
+ visible: { type: Boolean },
15
+ id: {},
16
+ maskSource: {},
17
+ maskType: {},
18
+ renderOrder: {},
19
+ transform: {},
20
+ colorA: {},
21
+ colorB: {},
22
+ scale: {},
23
+ direction: {},
24
+ speed: {},
25
+ spread: {},
26
+ emitRadius: {},
27
+ intensity: {},
28
+ dissipation: {},
29
+ detail: {},
30
+ gravity: {},
31
+ colorDecay: {},
32
+ mouseInfluence: {},
33
+ mouseRadius: {},
34
+ colorSpace: {},
35
+ shape: {},
36
+ shapeSdfUrl: {},
37
+ shapeType: {}
38
+ }, {
39
+ blendMode: "normal",
40
+ visible: true,
41
+ ...Object.entries(componentDefinition.props).reduce((acc, [key, config]) => {
42
+ acc[key] = config.default;
43
+ return acc;
44
+ }, {})
45
+ }),
46
+ setup(__props) {
47
+ let _experimentalWarnedOnce = false;
48
+ if (componentDefinition.experimental && !_experimentalWarnedOnce) {
49
+ _experimentalWarnedOnce = true;
50
+ const _e = componentDefinition.experimental;
51
+ console.info(`%c⚠ [Shaders] ${componentDefinition.name} is experimental: ${_e.message}`, "color: #f59e0b; font-weight: bold");
52
+ }
53
+ function isPropDriver(value) {
54
+ return typeof value === "object" && value !== null && "type" in value && (value.type === "map" || value.type === "mouse" || value.type === "mouse-position" || value.type === "auto-animate");
55
+ }
56
+ const props = __props;
57
+ const instanceId = (props.id ? props.id.replace(/[^a-zA-Z0-9_]/g, "_") : null) || useId().replace(/[^a-zA-Z0-9_]/g, "");
58
+ provide("shaderParentId", instanceId);
59
+ const DEFAULT_TRANSFORM = {
60
+ offsetX: 0,
61
+ offsetY: 0,
62
+ rotation: 0,
63
+ scale: 1,
64
+ anchorX: .5,
65
+ anchorY: .5,
66
+ edges: "transparent"
67
+ };
68
+ const effectiveTransform = computed(() => ({
69
+ ...DEFAULT_TRANSFORM,
70
+ ...props.transform
71
+ }));
72
+ const shaderReadyProps = computed(() => {
73
+ let baseProps = { ...Object.entries(componentDefinition.props).reduce((acc, [key, config]) => {
74
+ acc[key] = config.default;
75
+ return acc;
76
+ }, {}) };
77
+ for (const key in props) if (key !== "blendMode" && key !== "opacity" && key !== "visible" && key !== "id" && key !== "maskSource" && key !== "maskType" && key !== "renderOrder" && key !== "transform") {
78
+ const val = toValue(props[key]);
79
+ if (isPropDriver(val)) continue;
80
+ if (val !== Object.entries(componentDefinition.props).reduce((acc, [key$1, config]) => {
81
+ acc[key$1] = config.default;
82
+ return acc;
83
+ }, {})[key]) baseProps[key] = val;
84
+ }
85
+ return baseProps;
86
+ });
87
+ const mapsFromProps = computed(() => {
88
+ const maps = {};
89
+ for (const key of Object.keys(componentDefinition.props)) {
90
+ const val = props[key];
91
+ if (isPropDriver(val)) maps[key] = val;
92
+ }
93
+ return Object.keys(maps).length > 0 ? maps : void 0;
94
+ });
95
+ const shaderColorSpace = inject("shaderColorSpace");
96
+ if (shaderColorSpace) setColorSpaceMode(shaderColorSpace.value);
97
+ const uniforms = createUniformsMap(componentDefinition, shaderReadyProps.value, instanceId);
98
+ const parentId = inject("shaderParentId");
99
+ if (parentId === void 0) throw new Error("Shader components must be used inside an <Shader> component or another shader component");
100
+ const parentRegister = inject("shaderNodeRegister");
101
+ if (parentRegister === void 0) throw new Error("Shader components must be used inside an <Shader> component or another shader component");
102
+ const parentUniformUpdate = inject("shaderUniformUpdate");
103
+ if (parentUniformUpdate === void 0) throw new Error("Shader components require shaderUniformUpdate from parent");
104
+ const parentMetadataUpdate = inject("shaderMetadataUpdate");
105
+ if (parentMetadataUpdate === void 0) throw new Error("Shader components require shaderMetadataUpdate from parent");
106
+ const rendererResetSignal = inject("shaderRendererResetSignal");
107
+ const orderMarker = ref(null);
108
+ const isCapturesDOM = !!componentDefinition.capturesDOM;
109
+ const captureCanvas = ref(null);
110
+ const captureW = ref(typeof window !== "undefined" ? Math.round(window.innerWidth * Math.min(window.devicePixelRatio, 2)) : 0);
111
+ const captureH = ref(typeof window !== "undefined" ? Math.round(window.innerHeight * Math.min(window.devicePixelRatio, 2)) : 0);
112
+ const captureStyle = {
113
+ position: "fixed",
114
+ inset: "0",
115
+ width: "100vw",
116
+ height: "100vh",
117
+ zIndex: "-9999"
118
+ };
119
+ if (isCapturesDOM) {
120
+ const onWinResize = () => {
121
+ const d = Math.min(window.devicePixelRatio, 2);
122
+ captureW.value = Math.round(window.innerWidth * d);
123
+ captureH.value = Math.round(window.innerHeight * d);
124
+ };
125
+ onMounted(() => {
126
+ const d = Math.min(window.devicePixelRatio, 2);
127
+ captureW.value = Math.round(window.innerWidth * d);
128
+ captureH.value = Math.round(window.innerHeight * d);
129
+ window.addEventListener("resize", onWinResize);
130
+ });
131
+ onBeforeUnmount(() => {
132
+ window.removeEventListener("resize", onWinResize);
133
+ });
134
+ }
135
+ let detectedRenderOrder = void 0;
136
+ const registerWithRenderer = () => {
137
+ parentRegister(instanceId, componentDefinition.fragmentNode, parentId, {
138
+ blendMode: props.blendMode,
139
+ opacity: props.opacity,
140
+ visible: props.visible === false ? false : true,
141
+ id: props.id,
142
+ mask: props.maskSource ? {
143
+ source: props.maskSource,
144
+ type: props.maskType || "alpha"
145
+ } : void 0,
146
+ maps: mapsFromProps.value,
147
+ renderOrder: props.renderOrder ?? detectedRenderOrder,
148
+ transform: effectiveTransform.value
149
+ }, uniforms, componentDefinition, isCapturesDOM ? captureCanvas.value ?? void 0 : void 0);
150
+ };
151
+ onMounted(() => {
152
+ if (props.renderOrder === void 0 && orderMarker.value) {
153
+ const parent = orderMarker.value.parentElement;
154
+ if (parent) {
155
+ const siblings = parent.querySelectorAll(":scope > [data-shader-id]");
156
+ const position = Array.from(siblings).indexOf(orderMarker.value);
157
+ if (position >= 0) {
158
+ detectedRenderOrder = position;
159
+ parentMetadataUpdate(instanceId, { renderOrder: position });
160
+ }
161
+ }
162
+ }
163
+ });
164
+ const setupUniformWatchers = () => {
165
+ const scope = effectScope();
166
+ scope.run(() => {
167
+ Object.entries(uniforms).forEach(([propName, { uniform, transform }]) => {
168
+ watch(() => props[propName], (newValue) => {
169
+ if (uniform && uniform.value !== void 0 && !isPropDriver(newValue)) parentUniformUpdate(instanceId, propName, newValue);
170
+ }, { deep: true });
171
+ });
172
+ watch(() => [
173
+ props.blendMode,
174
+ props.opacity,
175
+ props.visible,
176
+ props.id,
177
+ props.maskSource,
178
+ props.maskType,
179
+ props.renderOrder,
180
+ props.transform,
181
+ mapsFromProps.value
182
+ ], ([blendMode, opacity, visible]) => {
183
+ parentMetadataUpdate(instanceId, {
184
+ blendMode,
185
+ opacity,
186
+ visible: visible === false ? false : true,
187
+ id: props.id,
188
+ mask: props.maskSource ? {
189
+ source: props.maskSource,
190
+ type: props.maskType || "alpha"
191
+ } : void 0,
192
+ maps: mapsFromProps.value,
193
+ renderOrder: props.renderOrder ?? detectedRenderOrder,
194
+ transform: effectiveTransform.value
195
+ });
196
+ }, { deep: true });
197
+ if (rendererResetSignal) watch(() => rendererResetSignal.value, (newValue) => {
198
+ if (newValue > 0) registerWithRenderer();
199
+ }, { immediate: true });
200
+ });
201
+ onBeforeUnmount(() => {
202
+ scope.stop();
203
+ });
204
+ };
205
+ if (isCapturesDOM) onMounted(() => {
206
+ setupUniformWatchers();
207
+ });
208
+ else setupUniformWatchers();
209
+ onBeforeUnmount(() => {
210
+ parentRegister(instanceId, null, null, null, null, null);
211
+ });
212
+ return (_ctx, _cache) => {
213
+ return openBlock(), createElementBlock(Fragment, null, [createElementVNode("span", {
214
+ ref_key: "orderMarker",
215
+ ref: orderMarker,
216
+ style: { "display": "contents" },
217
+ "data-shader-id": unref(instanceId)
218
+ }, [!isCapturesDOM ? renderSlot(_ctx.$slots, "default", { key: 0 }) : createCommentVNode("", true)], 8, _hoisted_1), isCapturesDOM ? (openBlock(), createBlock(Teleport, {
219
+ key: 0,
220
+ to: "body"
221
+ }, [createElementVNode("canvas", mergeProps({
222
+ ref_key: "captureCanvas",
223
+ ref: captureCanvas
224
+ }, { "layoutsubtree": "" }, {
225
+ width: captureW.value,
226
+ height: captureH.value,
227
+ style: captureStyle
228
+ }), [renderSlot(_ctx.$slots, "default")], 16, _hoisted_2)])) : createCommentVNode("", true)], 64);
229
+ };
230
+ }
231
+ });
232
+ export { SmokeFill_vue_vue_type_script_setup_true_lang_default as default };
@@ -0,0 +1,54 @@
1
+ import { BlendMode, TransformConfig } from '../../core';
2
+ import { ComponentProps } from '../../core/shaders/Fog';
3
+
4
+ /**
5
+ * Define component props including blend mode, opacity, visibility, masking, and transformation
6
+ */
7
+ interface ExtendedComponentProps extends Partial<ComponentProps> {
8
+ blendMode?: BlendMode;
9
+ opacity?: number;
10
+ visible?: boolean;
11
+ id?: string;
12
+ maskSource?: string;
13
+ maskType?: string;
14
+ renderOrder?: number;
15
+ transform?: Partial<TransformConfig>;
16
+ }
17
+ declare function __VLS_template(): {
18
+ default?(_: {}): any;
19
+ };
20
+ declare const __VLS_component: import('vue').DefineComponent<import('vue').ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<ExtendedComponentProps>, {
21
+ blendMode: string;
22
+ visible: boolean;
23
+ }>>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<ExtendedComponentProps>, {
24
+ blendMode: string;
25
+ visible: boolean;
26
+ }>>> & Readonly<{}>, {
27
+ blendMode: BlendMode;
28
+ visible: boolean;
29
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
30
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, ReturnType<typeof __VLS_template>>;
31
+ export default _default;
32
+ type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
33
+ type __VLS_TypePropsToRuntimeProps<T> = {
34
+ [K in keyof T]-?: {} extends Pick<T, K> ? {
35
+ type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
36
+ } : {
37
+ type: import('vue').PropType<T[K]>;
38
+ required: true;
39
+ };
40
+ };
41
+ type __VLS_WithDefaults<P, D> = {
42
+ [K in keyof Pick<P, keyof P>]: K extends keyof D ? __VLS_Prettify<P[K] & {
43
+ default: D[K];
44
+ }> : P[K];
45
+ };
46
+ type __VLS_Prettify<T> = {
47
+ [K in keyof T]: T[K];
48
+ } & {};
49
+ type __VLS_WithTemplateSlots<T, S> = T & {
50
+ new (): {
51
+ $slots: S;
52
+ };
53
+ };
54
+ //# sourceMappingURL=Fog.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Fog.vue.d.ts","sourceRoot":"","sources":["../../src/components/Fog.vue"],"names":[],"mappings":"AAGA,OAAO,EAGL,KAAK,SAAS,EAKd,KAAK,eAAe,EACrB,MAAM,cAAc,CAAA;AAIrB,OAAO,EAAsB,KAAK,cAAc,EAAC,MAAM,kBAAkB,CAAA;AAYzE;;GAEG;AACH,UAAU,sBAAuB,SAAQ,OAAO,CAAC,cAAc,CAAC;IAC9D,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;CACtC;AAyTD,iBAAS,cAAc;qBAkFO,GAAG;EAGhC;AAeD,QAAA,MAAM,eAAe;;;;;;;eAraP,SAAS;aAEX,OAAO;4EAyajB,CAAC;wBACkB,uBAAuB,CAAC,OAAO,eAAe,EAAE,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAAvG,wBAAwG;AACxG,KAAK,sBAAsB,CAAC,CAAC,IAAI,CAAC,SAAS,SAAS,GAAG,KAAK,GAAG,CAAC,CAAC;AACjE,KAAK,6BAA6B,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG;QAAE,IAAI,EAAE,OAAO,KAAK,EAAE,QAAQ,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;KAAE,GAAG;QAAE,IAAI,EAAE,OAAO,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAAC,QAAQ,EAAE,IAAI,CAAA;KAAE;CAAE,CAAC;AAC9M,KAAK,kBAAkB,CAAC,CAAC,EAAE,CAAC,IAAI;KAE1B,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,MAAM,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG;QACxE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;KACb,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CACT,CAAC;AACN,KAAK,cAAc,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAG,GAAG,EAAE,CAAC;AACxD,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAAE,QAAO;QAClD,MAAM,EAAE,CAAC,CAAC;KACT,CAAA;CAAE,CAAC"}
@@ -0,0 +1,55 @@
1
+ import { BlendMode, PropDriver, TransformConfig } from '../../core';
2
+ import { ComponentProps } from '../../core/shaders/Smoke';
3
+
4
+ /**
5
+ * Define component props including blend mode, opacity, visibility, masking, and transformation
6
+ */
7
+ interface ExtendedComponentProps extends Partial<ComponentProps> {
8
+ emitFrom?: ComponentProps['emitFrom'] | PropDriver;
9
+ blendMode?: BlendMode;
10
+ opacity?: number;
11
+ visible?: boolean;
12
+ id?: string;
13
+ maskSource?: string;
14
+ maskType?: string;
15
+ renderOrder?: number;
16
+ transform?: Partial<TransformConfig>;
17
+ }
18
+ declare function __VLS_template(): {
19
+ default?(_: {}): any;
20
+ };
21
+ declare const __VLS_component: import('vue').DefineComponent<import('vue').ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<ExtendedComponentProps>, {
22
+ blendMode: string;
23
+ visible: boolean;
24
+ }>>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<ExtendedComponentProps>, {
25
+ blendMode: string;
26
+ visible: boolean;
27
+ }>>> & Readonly<{}>, {
28
+ blendMode: BlendMode;
29
+ visible: boolean;
30
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
31
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, ReturnType<typeof __VLS_template>>;
32
+ export default _default;
33
+ type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
34
+ type __VLS_TypePropsToRuntimeProps<T> = {
35
+ [K in keyof T]-?: {} extends Pick<T, K> ? {
36
+ type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
37
+ } : {
38
+ type: import('vue').PropType<T[K]>;
39
+ required: true;
40
+ };
41
+ };
42
+ type __VLS_WithDefaults<P, D> = {
43
+ [K in keyof Pick<P, keyof P>]: K extends keyof D ? __VLS_Prettify<P[K] & {
44
+ default: D[K];
45
+ }> : P[K];
46
+ };
47
+ type __VLS_Prettify<T> = {
48
+ [K in keyof T]: T[K];
49
+ } & {};
50
+ type __VLS_WithTemplateSlots<T, S> = T & {
51
+ new (): {
52
+ $slots: S;
53
+ };
54
+ };
55
+ //# sourceMappingURL=Smoke.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Smoke.vue.d.ts","sourceRoot":"","sources":["../../src/components/Smoke.vue"],"names":[],"mappings":"AAGA,OAAO,EAGL,KAAK,SAAS,EAId,KAAK,UAAU,EACf,KAAK,eAAe,EACrB,MAAM,cAAc,CAAA;AAIrB,OAAO,EAAsB,KAAK,cAAc,EAAC,MAAM,oBAAoB,CAAA;AAY3E;;GAEG;AACH,UAAU,sBAAuB,SAAQ,OAAO,CAAC,cAAc,CAAC;IAC9D,QAAQ,CAAC,EAAE,cAAc,CAAC,UAAU,CAAC,GAAG,UAAU,CAAC;IACnD,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;CACtC;AAyTD,iBAAS,cAAc;qBAkFO,GAAG;EAGhC;AAeD,QAAA,MAAM,eAAe;;;;;;;eAraP,SAAS;aAEX,OAAO;4EAyajB,CAAC;wBACkB,uBAAuB,CAAC,OAAO,eAAe,EAAE,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAAvG,wBAAwG;AACxG,KAAK,sBAAsB,CAAC,CAAC,IAAI,CAAC,SAAS,SAAS,GAAG,KAAK,GAAG,CAAC,CAAC;AACjE,KAAK,6BAA6B,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG;QAAE,IAAI,EAAE,OAAO,KAAK,EAAE,QAAQ,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;KAAE,GAAG;QAAE,IAAI,EAAE,OAAO,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAAC,QAAQ,EAAE,IAAI,CAAA;KAAE;CAAE,CAAC;AAC9M,KAAK,kBAAkB,CAAC,CAAC,EAAE,CAAC,IAAI;KAE1B,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,MAAM,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG;QACxE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;KACb,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CACT,CAAC;AACN,KAAK,cAAc,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAG,GAAG,EAAE,CAAC;AACxD,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAAE,QAAO;QAClD,MAAM,EAAE,CAAC,CAAC;KACT,CAAA;CAAE,CAAC"}
@@ -0,0 +1,56 @@
1
+ import { BlendMode, PropDriver, TransformConfig } from '../../core';
2
+ import { ComponentProps } from '../../core/shaders/SmokeFill';
3
+
4
+ /**
5
+ * Define component props including blend mode, opacity, visibility, masking, and transformation
6
+ */
7
+ interface ExtendedComponentProps extends Partial<ComponentProps> {
8
+ center?: ComponentProps['center'] | PropDriver;
9
+ emitFrom?: ComponentProps['emitFrom'] | PropDriver;
10
+ blendMode?: BlendMode;
11
+ opacity?: number;
12
+ visible?: boolean;
13
+ id?: string;
14
+ maskSource?: string;
15
+ maskType?: string;
16
+ renderOrder?: number;
17
+ transform?: Partial<TransformConfig>;
18
+ }
19
+ declare function __VLS_template(): {
20
+ default?(_: {}): any;
21
+ };
22
+ declare const __VLS_component: import('vue').DefineComponent<import('vue').ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<ExtendedComponentProps>, {
23
+ blendMode: string;
24
+ visible: boolean;
25
+ }>>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<ExtendedComponentProps>, {
26
+ blendMode: string;
27
+ visible: boolean;
28
+ }>>> & Readonly<{}>, {
29
+ blendMode: BlendMode;
30
+ visible: boolean;
31
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
32
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, ReturnType<typeof __VLS_template>>;
33
+ export default _default;
34
+ type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
35
+ type __VLS_TypePropsToRuntimeProps<T> = {
36
+ [K in keyof T]-?: {} extends Pick<T, K> ? {
37
+ type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
38
+ } : {
39
+ type: import('vue').PropType<T[K]>;
40
+ required: true;
41
+ };
42
+ };
43
+ type __VLS_WithDefaults<P, D> = {
44
+ [K in keyof Pick<P, keyof P>]: K extends keyof D ? __VLS_Prettify<P[K] & {
45
+ default: D[K];
46
+ }> : P[K];
47
+ };
48
+ type __VLS_Prettify<T> = {
49
+ [K in keyof T]: T[K];
50
+ } & {};
51
+ type __VLS_WithTemplateSlots<T, S> = T & {
52
+ new (): {
53
+ $slots: S;
54
+ };
55
+ };
56
+ //# sourceMappingURL=SmokeFill.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SmokeFill.vue.d.ts","sourceRoot":"","sources":["../../src/components/SmokeFill.vue"],"names":[],"mappings":"AAGA,OAAO,EAGL,KAAK,SAAS,EAId,KAAK,UAAU,EACf,KAAK,eAAe,EACrB,MAAM,cAAc,CAAA;AAIrB,OAAO,EAAsB,KAAK,cAAc,EAAC,MAAM,wBAAwB,CAAA;AAY/E;;GAEG;AACH,UAAU,sBAAuB,SAAQ,OAAO,CAAC,cAAc,CAAC;IAC9D,MAAM,CAAC,EAAE,cAAc,CAAC,QAAQ,CAAC,GAAG,UAAU,CAAC;IAC/C,QAAQ,CAAC,EAAE,cAAc,CAAC,UAAU,CAAC,GAAG,UAAU,CAAC;IACnD,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;CACtC;AAyTD,iBAAS,cAAc;qBAkFO,GAAG;EAGhC;AAeD,QAAA,MAAM,eAAe;;;;;;;eAraP,SAAS;aAEX,OAAO;4EAyajB,CAAC;wBACkB,uBAAuB,CAAC,OAAO,eAAe,EAAE,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAAvG,wBAAwG;AACxG,KAAK,sBAAsB,CAAC,CAAC,IAAI,CAAC,SAAS,SAAS,GAAG,KAAK,GAAG,CAAC,CAAC;AACjE,KAAK,6BAA6B,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG;QAAE,IAAI,EAAE,OAAO,KAAK,EAAE,QAAQ,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;KAAE,GAAG;QAAE,IAAI,EAAE,OAAO,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAAC,QAAQ,EAAE,IAAI,CAAA;KAAE;CAAE,CAAC;AAC9M,KAAK,kBAAkB,CAAC,CAAC,EAAE,CAAC,IAAI;KAE1B,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,MAAM,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG;QACxE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;KACb,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CACT,CAAC;AACN,KAAK,cAAc,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAG,GAAG,EAAE,CAAC;AACxD,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAAE,QAAO;QAClD,MAAM,EAAE,CAAC,CAAC;KACT,CAAA;CAAE,CAAC"}
@@ -35,6 +35,7 @@ export { default as FloatingParticles } from './components/FloatingParticles.vue
35
35
  export { default as FlowField } from './components/FlowField.vue';
36
36
  export { default as Flower } from './components/Flower.vue';
37
37
  export { default as FlowingGradient } from './components/FlowingGradient.vue';
38
+ export { default as Fog } from './components/Fog.vue';
38
39
  export { default as Form3D } from './components/Form3D.vue';
39
40
  export { default as Glass } from './components/Glass.vue';
40
41
  export { default as GlassTiles } from './components/GlassTiles.vue';
@@ -76,6 +77,8 @@ export { default as Sharpness } from './components/Sharpness.vue';
76
77
  export { default as Shatter } from './components/Shatter.vue';
77
78
  export { default as SimplexNoise } from './components/SimplexNoise.vue';
78
79
  export { default as SineWave } from './components/SineWave.vue';
80
+ export { default as Smoke } from './components/Smoke.vue';
81
+ export { default as SmokeFill } from './components/SmokeFill.vue';
79
82
  export { default as Solarize } from './components/Solarize.vue';
80
83
  export { default as SolidColor } from './components/SolidColor.vue';
81
84
  export { default as Spherize } from './components/Spherize.vue';