shaders 4.0.2 → 4.0.3

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 (468) hide show
  1. package/dist/cli.js +2 -2
  2. package/dist/core/{AngularBlur-BEBs-lRR.js → AngularBlur-CadOY7zB.js} +1 -1
  3. package/dist/core/{Arc-D-WnjM7T.js → Arc-B5grj-p3.js} +1 -1
  4. package/dist/core/{Ascii-BGPIwMc3.js → Ascii-Chul_q9B.js} +1 -1
  5. package/dist/core/{Aurora-DqJBPdMQ.js → Aurora-COjCTZzM.js} +1 -1
  6. package/dist/core/{BarShift-BcCOweUh.js → BarShift-CmMkOiz1.js} +1 -1
  7. package/dist/core/{BarnDoors-B9B-AmCV.js → BarnDoors-B_Tfvd5_.js} +1 -1
  8. package/dist/core/{Beam-QG_9OS8I.js → Beam-DqUZIoO-.js} +1 -1
  9. package/dist/core/{Bend-Cy9VAowL.js → Bend-CzoMkg0C.js} +1 -1
  10. package/dist/core/{Blob-C3txJeW0.js → Blob-D-FcfCk_.js} +1 -1
  11. package/dist/core/{BlockDissolve-C1SFUys7.js → BlockDissolve-Cfg38mph.js} +1 -1
  12. package/dist/core/{BlockNoise-Cm3y8hce.js → BlockNoise-AOm3USwt.js} +2 -2
  13. package/dist/core/{BlueNoise-BCLObOMm.js → BlueNoise-B1goUO9x.js} +2 -2
  14. package/dist/core/{Blur-Dg29SnXd.js → Blur-orV6Zo0Q.js} +1 -1
  15. package/dist/core/{Boids-rsGsPN5h.js → Boids-CaGoO9l6.js} +1 -1
  16. package/dist/core/{BokehBlur-rFSFEnb0.js → BokehBlur-Bak9qlJC.js} +1 -1
  17. package/dist/core/{BrickPattern-DqN6JKEN.js → BrickPattern-57nSncIU.js} +1 -1
  18. package/dist/core/{BrightnessContrast-J9fCSBiC.js → BrightnessContrast-CT-FMH50.js} +1 -1
  19. package/dist/core/{BrushedMetal-74wSZKjG.js → BrushedMetal-CsOf111o.js} +1 -1
  20. package/dist/core/{Bulge-BIk0oq8j.js → Bulge-BENQmcJz.js} +1 -1
  21. package/dist/core/{CRTScreen-hEH-JNRd.js → CRTScreen-DRg0NNys.js} +1 -1
  22. package/dist/core/{CarbonFiber-CZdUDvRU.js → CarbonFiber-CP8sfZpO.js} +1 -1
  23. package/dist/core/{Chalkboard-CClJHqvs.js → Chalkboard-DIKb88fc.js} +1 -1
  24. package/dist/core/{ChannelBlur-BEuEwQOC.js → ChannelBlur-hR8wijV7.js} +1 -1
  25. package/dist/core/{CheckerWipe-KuAWj2qg.js → CheckerWipe-BiWuSCaB.js} +1 -1
  26. package/dist/core/{Checkerboard-Rq9ze1W3.js → Checkerboard-CI7mErmL.js} +1 -1
  27. package/dist/core/{Chevron-C1j6X2Ye.js → Chevron-B8Vhf4mu.js} +1 -1
  28. package/dist/core/{ChromaFlow-BgsCUYIl.js → ChromaFlow-BA40CkCT.js} +1 -1
  29. package/dist/core/{ChromaticAberration-2_4tjQ0u.js → ChromaticAberration-Co8JMSWY.js} +1 -1
  30. package/dist/core/{Chrome-Be3z6C5i.js → Chrome-1t9oTBIF.js} +1 -1
  31. package/dist/core/{Circle-e_qQI3tU.js → Circle-BQq87Fzk.js} +1 -1
  32. package/dist/core/{ColorWheel-s5ep1H7d.js → ColorWheel-X5JCwd6p.js} +1 -1
  33. package/dist/core/{CompressionArtifacts-OE9U9Qrq.js → CompressionArtifacts-CfZMsMVi.js} +1 -1
  34. package/dist/core/{ConcentricSpin-CLE_5yCJ.js → ConcentricSpin-D8srFQgv.js} +1 -1
  35. package/dist/core/{ConicGradient-Cji2SgVO.js → ConicGradient-zgpOve2I.js} +1 -1
  36. package/dist/core/{ContourLines-wpPK00cF.js → ContourLines-CIPNR5U6.js} +1 -1
  37. package/dist/core/{CornerPin-gYU0Uf2m.js → CornerPin-DDatnonj.js} +1 -1
  38. package/dist/core/{Crescent-viNc7Unp.js → Crescent-2VNndYEF.js} +1 -1
  39. package/dist/core/{Cross-DyQSsw_k.js → Cross--RtTa2r5.js} +1 -1
  40. package/dist/core/{Crystal-Vjj8azWg.js → Crystal-RuFWVxDw.js} +1 -1
  41. package/dist/core/{CurlNoise-C7PHjDht.js → CurlNoise-Dz7E3WIq.js} +2 -2
  42. package/dist/core/{CursorRipples-BzPPNkA3.js → CursorRipples-DWwT4wnN.js} +1 -1
  43. package/dist/core/{CursorTrail-cBj0AuQA.js → CursorTrail-DtEejGeY.js} +1 -1
  44. package/dist/core/{DataMosh-5Yr9TyVx.js → DataMosh-DHklBXQy.js} +1 -1
  45. package/dist/core/{DiamondGradient-DZM7HwF5.js → DiamondGradient-j3Af00XM.js} +1 -1
  46. package/dist/core/{DiamondWipe-CqeT7lCt.js → DiamondWipe-BwzZIEYX.js} +1 -1
  47. package/dist/core/{DiffuseBlur-Y5hSDTZF.js → DiffuseBlur-CztumKI8.js} +1 -1
  48. package/dist/core/{DisplacementMap-FobRx5Ie.js → DisplacementMap-_R0XWmDv.js} +1 -1
  49. package/dist/core/{Dither-50rqHpt9.js → Dither-BMtSn0ET.js} +1 -1
  50. package/dist/core/{DotGrid-B6AGLUbR.js → DotGrid-5pz59elN.js} +1 -1
  51. package/dist/core/{DropShadow-CEPpgatB.js → DropShadow-Afbu-AM5.js} +1 -1
  52. package/dist/core/{Duotone-D76Kp7Pb.js → Duotone-CPNAyquB.js} +1 -1
  53. package/dist/core/{Ellipse-BGod1LeG.js → Ellipse-CIdAfmRX.js} +1 -1
  54. package/dist/core/{Emboss-DMNFb_ww.js → Emboss-B0ZaXWSG.js} +1 -1
  55. package/dist/core/{Engraving-Dj7bCATQ.js → Engraving-C6DmtOdA.js} +1 -1
  56. package/dist/core/{ErosionNoise-4O68wJQZ.js → ErosionNoise-3QrqYZy6.js} +2 -2
  57. package/dist/core/{Exposure-h-vapOpj.js → Exposure-CQ6luJ-4.js} +1 -1
  58. package/dist/core/{FallingLines-Dzop_89k.js → FallingLines-y-XE0joI.js} +1 -1
  59. package/dist/core/{FilmGrain-Bs8PCfdf.js → FilmGrain-Bxz_2Za0.js} +1 -1
  60. package/dist/core/{FilmStock-DBjVo6rL.js → FilmStock-BsPw-b6W.js} +1 -1
  61. package/dist/core/{Flip-CfrS4KfZ.js → Flip-CML4rm2V.js} +1 -1
  62. package/dist/core/{FloatingParticles-D1R2tD2J.js → FloatingParticles-CDQaOt3i.js} +1 -1
  63. package/dist/core/{FlowField-Slirm5AI.js → FlowField-CEhUrnv4.js} +1 -1
  64. package/dist/core/{Flower-Ddlut7QZ.js → Flower-Bp75dXJa.js} +1 -1
  65. package/dist/core/{FlowingGradient-CwIgTtbj.js → FlowingGradient-CGBB_tvE.js} +1 -1
  66. package/dist/core/{FlutedGlass-CMMy2GJ5.js → FlutedGlass-CkwFDUxi.js} +1 -1
  67. package/dist/core/{Fog-DjjUkcTZ.js → Fog-Dhy6FKme.js} +1 -1
  68. package/dist/core/{Form3D-DQDOHWpC.js → Form3D-CFaxdFCN.js} +1 -1
  69. package/dist/core/{FractalNoise-BjI3IOIj.js → FractalNoise-DMLBHVU1.js} +1 -1
  70. package/dist/core/{Frost-CK12HnL1.js → Frost-CvCAXumf.js} +1 -1
  71. package/dist/core/{GaborNoise-DKEIvvRJ.js → GaborNoise-pBwEWsvq.js} +2 -2
  72. package/dist/core/{Glass-CzcOVD5Y.js → Glass--gVUc74k.js} +1 -1
  73. package/dist/core/{GlassTiles-gjhc563g.js → GlassTiles-C7iGBDOu.js} +1 -1
  74. package/dist/core/{Glitch-C_XAWltC.js → Glitch-DdIqzf1U.js} +1 -1
  75. package/dist/core/{Glow-CrYCanBI.js → Glow-Be0YEdsy.js} +1 -1
  76. package/dist/core/{Godrays-BBTMOVLP.js → Godrays-BkR81S_6.js} +1 -1
  77. package/dist/core/{Goo-Brhjk8aS.js → Goo-BuQBpLC1.js} +1 -1
  78. package/dist/core/{GradientMap-C5325QWw.js → GradientMap-BhzXbIUo.js} +1 -1
  79. package/dist/core/{Grayscale-dPjs-wvf.js → Grayscale-CgPfjxpC.js} +1 -1
  80. package/dist/core/{Grid-UjEd3O76.js → Grid-Bf4drnEK.js} +1 -1
  81. package/dist/core/{GridDistortion-vVgYya1U.js → GridDistortion-OKWF9BkP.js} +1 -1
  82. package/dist/core/{Group-KVdmAi5g.js → Group-CmvLWhtc.js} +1 -1
  83. package/dist/core/{HTMLInCanvas-CKr2u76R.js → HTMLInCanvas-t9ohcHFo.js} +1 -1
  84. package/dist/core/{Halftone-pRV3TRUW.js → Halftone-CL2X2QB3.js} +1 -1
  85. package/dist/core/{Heart-CX7MvvHZ.js → Heart-B0VJdilk.js} +1 -1
  86. package/dist/core/{Heatmap-Dn6qyd2e.js → Heatmap-CmoQKw_9.js} +1 -1
  87. package/dist/core/{HexGrid-BIfYhkfV.js → HexGrid-qzOUXxGp.js} +1 -1
  88. package/dist/core/{Hologram-ou27baPQ.js → Hologram-DoxZwBsb.js} +1 -1
  89. package/dist/core/{Holographic-CiHdBSMg.js → Holographic-DOx95C7o.js} +1 -1
  90. package/dist/core/{HueShift-CG7pcXfg.js → HueShift-DJsP1low.js} +1 -1
  91. package/dist/core/{ImageTexture-BiZuU58C.js → ImageTexture-GyknRQS4.js} +1 -1
  92. package/dist/core/{InkFlow-D9_L7opB.js → InkFlow-zlXRbwHy.js} +1 -1
  93. package/dist/core/{Invert-CHEaiQZO.js → Invert-3ZoLoQJH.js} +1 -1
  94. package/dist/core/{IrisWipe-x22vOQHm.js → IrisWipe-BuX7mBHl.js} +1 -1
  95. package/dist/core/{Irradiance-7yq2K87_.js → Irradiance-DAx-vIdy.js} +1 -1
  96. package/dist/core/{IsometricCubes-CkPGWr7M.js → IsometricCubes-7sbQ2VJA.js} +1 -1
  97. package/dist/core/{Kaleidoscope-CEC5m1Ww.js → Kaleidoscope-CsLdv8Az.js} +1 -1
  98. package/dist/core/{KeyFrames-BMGEZsAZ.js → KeyFrames-BzO618Dz.js} +1 -1
  99. package/dist/core/{LensDistortion-DKo8PiO5.js → LensDistortion-BLR3_sbS.js} +1 -1
  100. package/dist/core/{LensFlare-DMS-NUtK.js → LensFlare-DTM_QH_n.js} +1 -1
  101. package/dist/core/{LightEdge-DxmnCRls.js → LightEdge-D9XK4MVu.js} +1 -1
  102. package/dist/core/{LightLeak-yoEsZtYg.js → LightLeak-Cle2_fM9.js} +1 -1
  103. package/dist/core/{Line-D17XDUjO.js → Line-DHya7Oc3.js} +1 -1
  104. package/dist/core/{LinearBlur-CiyjPTUH.js → LinearBlur-DgJP8TuW.js} +1 -1
  105. package/dist/core/{LinearGradient-DfjKG70q.js → LinearGradient-DQmjBptA.js} +1 -1
  106. package/dist/core/{LinearWipe-D9CtBg6S.js → LinearWipe-CQlYqf9e.js} +1 -1
  107. package/dist/core/{LiquidMetal-8EG6DwV6.js → LiquidMetal-BYDcC5TU.js} +1 -1
  108. package/dist/core/{Liquify-BySXF1OB.js → Liquify-zEXo6xUV.js} +1 -1
  109. package/dist/core/{MagneticFilings-DNESH3Zs.js → MagneticFilings-D7kyi6PI.js} +1 -1
  110. package/dist/core/{Marble-C9WvdxrP.js → Marble-DMBDSQC1.js} +1 -1
  111. package/dist/core/{MeshGradient-d9--RXOU.js → MeshGradient-ByUJxHX0.js} +1 -1
  112. package/dist/core/{Mirror-1V2FF2kD.js → Mirror-Bjfbugbi.js} +1 -1
  113. package/dist/core/{MultiPointGradient-cRA9ytgL.js → MultiPointGradient-BJMQ5JbT.js} +1 -1
  114. package/dist/core/{Nebula-BRV-q74y.js → Nebula-c7wMpb9v.js} +1 -1
  115. package/dist/core/{Neon-4PemK9Rj.js → Neon-xm7nkRIp.js} +1 -1
  116. package/dist/core/{NoiseDissolve-B7LgD46G.js → NoiseDissolve-DTSS-5J7.js} +1 -1
  117. package/dist/core/{ObjectTracker-CdzDxhpy.js → ObjectTracker-CeiMs5_g.js} +1 -1
  118. package/dist/core/{Obsidian-2J1eX9kT.js → Obsidian-CEzCs0lZ.js} +1 -1
  119. package/dist/core/{PagePeel-D-ziraOm.js → PagePeel-D8-jVFVt.js} +1 -1
  120. package/dist/core/{Paper-BxzCLyzB.js → Paper-o3JcSJga.js} +1 -1
  121. package/dist/core/{Parallelogram-D4OflTwn.js → Parallelogram-DZdZTiv_.js} +1 -1
  122. package/dist/core/{ParticleField-tWNicEDO.js → ParticleField-mb50mtLl.js} +1 -1
  123. package/dist/core/{ParticleFlow-BiEYFyWR.js → ParticleFlow-NxmRBFxq.js} +1 -1
  124. package/dist/core/{Particles-B7W4yWgo.js → Particles-ynCeKlnk.js} +1 -1
  125. package/dist/core/{PerlinNoise-C-irUxp9.js → PerlinNoise-B43AbgNy.js} +2 -2
  126. package/dist/core/{Perspective-DlnAW-pe.js → Perspective-Bdr4mrFK.js} +1 -1
  127. package/dist/core/{PixelSort-BBOTYuOE.js → PixelSort-y1sMZn8T.js} +1 -1
  128. package/dist/core/{PixelThrow-DCJb9Lxd.js → PixelThrow-MoKF4eJQ.js} +1 -1
  129. package/dist/core/{Pixelate-CZdwB--K.js → Pixelate-Dt3Dvyye.js} +1 -1
  130. package/dist/core/{Plasma-CTOQJeqy.js → Plasma-BHPsAkrx.js} +1 -1
  131. package/dist/core/{Plastic-DvyH9x-4.js → Plastic-8Al38_Uo.js} +1 -1
  132. package/dist/core/{PolarCoordinates-XhdDAOD0.js → PolarCoordinates-BuiRt8Ae.js} +1 -1
  133. package/dist/core/{Polygon-CLohB-Ly.js → Polygon-CElChfL_.js} +1 -1
  134. package/dist/core/{Posterize-BAQfnvmK.js → Posterize-CkX1ySem.js} +1 -1
  135. package/dist/core/{Prism-DJVCVAXX.js → Prism-B_8r_ACa.js} +1 -1
  136. package/dist/core/{ProgressiveBlur-Dirva1on.js → ProgressiveBlur-BY9XCK4l.js} +1 -1
  137. package/dist/core/{RadialGradient-DuSKR8Ds.js → RadialGradient-D4ELylxQ.js} +1 -1
  138. package/dist/core/{RadialWipe-n8tON7x2.js → RadialWipe-DNvkJb42.js} +1 -1
  139. package/dist/core/{RandomBars-BYouiIgQ.js → RandomBars-5D9oIVCD.js} +1 -1
  140. package/dist/core/{ReactionDiffusion-CHDd3y2q.js → ReactionDiffusion-BGmksqeC.js} +1 -1
  141. package/dist/core/{RectangularCoordinates-CYFfCawa.js → RectangularCoordinates-0l5t-2No.js} +1 -1
  142. package/dist/core/{ReflectivePlane-DFTl5U9q.js → ReflectivePlane-BqefdbHK.js} +1 -1
  143. package/dist/core/{Repeater-CnbzXuAe.js → Repeater-CJj0PHTv.js} +1 -1
  144. package/dist/core/{Ring-CGkHVSVd.js → Ring-Czf6zylA.js} +1 -1
  145. package/dist/core/{RippleWipe-DLjPzY6u.js → RippleWipe-gk_KAy9N.js} +1 -1
  146. package/dist/core/{Ripples-C2tITU62.js → Ripples-DSmJplDh.js} +1 -1
  147. package/dist/core/{RoundedRect-sfNTUaCY.js → RoundedRect-DCFq3bhP.js} +1 -1
  148. package/dist/core/Satin-BEbTbcTD.js +372 -0
  149. package/dist/core/{Saturation-BRkifYWj.js → Saturation-D0hjM6vJ.js} +1 -1
  150. package/dist/core/{Scratches-D87O5C2K.js → Scratches-CBbSvaL9.js} +2 -2
  151. package/dist/core/{Sharpness-BGv613Zw.js → Sharpness-CxNkUCd4.js} +1 -1
  152. package/dist/core/{Shatter-DuyCFU1f.js → Shatter-OGsXkOO8.js} +1 -1
  153. package/dist/core/{SimplexNoise-CQJvmqd-.js → SimplexNoise-EZ9qyUZl.js} +2 -2
  154. package/dist/core/{SineWave-BfOgSGMP.js → SineWave-jv-D2nek.js} +1 -1
  155. package/dist/core/{SliceWipe-CD_D99sl.js → SliceWipe-CyQ8KwJe.js} +1 -1
  156. package/dist/core/{Smoke-BDQYKRP1.js → Smoke-D5t3guA6.js} +1 -1
  157. package/dist/core/{SmokeFill-CPnzQtQv.js → SmokeFill-DDqH7q9k.js} +1 -1
  158. package/dist/core/{SmokeFlow-BkPMjZq8.js → SmokeFlow-dqFWC3nR.js} +1 -1
  159. package/dist/core/{Solarize-DSiS32QS.js → Solarize-DQKm8tad.js} +1 -1
  160. package/dist/core/{SolidColor-DEKpgy1c.js → SolidColor-AuMQ8wsV.js} +1 -1
  161. package/dist/core/{Sparkle-BZur6gPW.js → Sparkle-DB3i_Vm0.js} +1 -1
  162. package/dist/core/{Spherize-D9Yg4n6O.js → Spherize-BvO_quYf.js} +1 -1
  163. package/dist/core/{Spiral-BCacfEpT.js → Spiral-A7K8dyqa.js} +1 -1
  164. package/dist/core/{Star-Dnw1ihk7.js → Star-Bhjof1Aq.js} +1 -1
  165. package/dist/core/{Stone-Cje-_vAg.js → Stone-BqVeG7vJ.js} +1 -1
  166. package/dist/core/{Strands-CFRxS1G_.js → Strands-B_yNFviv.js} +1 -1
  167. package/dist/core/{Stretch-DXVhfIqO.js → Stretch-CoJ0ZxXU.js} +1 -1
  168. package/dist/core/{Stripes-CCADWwyq.js → Stripes-DnVSZwzX.js} +1 -1
  169. package/dist/core/{StudioBackground-BlzYNAsu.js → StudioBackground-WLPZVlBE.js} +1 -1
  170. package/dist/core/{SunBurst-CmWbI18r.js → SunBurst-V0H9L8IC.js} +1 -1
  171. package/dist/core/{Surface3D-Dmh98-0V.js → Surface3D-CYrJo3xx.js} +1 -1
  172. package/dist/core/{Swirl-CzI1qSVc.js → Swirl-C5du-FPv.js} +1 -1
  173. package/dist/core/{Teardrop-D24uulL0.js → Teardrop-BmMSpSnv.js} +1 -1
  174. package/dist/core/{Text-CrZKvBw6.js → Text-BI5tmkPX.js} +1 -1
  175. package/dist/core/{ThinFilm-D7R2dt1O.js → ThinFilm-Ce-bUUyq.js} +1 -1
  176. package/dist/core/{TiltShift-AMMDZBvf.js → TiltShift-DnjqzNPb.js} +1 -1
  177. package/dist/core/{TimeTrail-BCYDP2ep.js → TimeTrail-CZBKfdhv.js} +1 -1
  178. package/dist/core/{Tint-DHb5wBN5.js → Tint-CiaVTPnf.js} +1 -1
  179. package/dist/core/{Trapezoid-CL5Fxvq7.js → Trapezoid-C5uh_TK4.js} +1 -1
  180. package/dist/core/{TriangularGrid-Bp-SJS-H.js → TriangularGrid-B1E1yy5Y.js} +1 -1
  181. package/dist/core/{Tritone-C0nx7OdC.js → Tritone-VDEMnDwQ.js} +1 -1
  182. package/dist/core/{Truchet-DCetyDaq.js → Truchet-Bl6ASWtj.js} +1 -1
  183. package/dist/core/{Twirl-D_mv9KEi.js → Twirl-BzLRq2-1.js} +1 -1
  184. package/dist/core/{VHS-Cp9aDjti.js → VHS-BjOXkojN.js} +1 -1
  185. package/dist/core/{VenetianBlinds-DUyvaT5w.js → VenetianBlinds-D6S_TOHF.js} +1 -1
  186. package/dist/core/{Vesica-BpzrTPTA.js → Vesica-Br6UVZt3.js} +1 -1
  187. package/dist/core/{Vibrance-DW3J-pvW.js → Vibrance-D5x8kNPO.js} +1 -1
  188. package/dist/core/{VideoTexture-zoKsSrex.js → VideoTexture-CJIi00YZ.js} +1 -1
  189. package/dist/core/{Vignette-KKbP3qdZ.js → Vignette-BgPDqyZY.js} +1 -1
  190. package/dist/core/{Voronoi-Bp2-U6lm.js → Voronoi-C_0qmF5M.js} +1 -1
  191. package/dist/core/{Voxels-B3e3LHH5.js → Voxels-Cr2nX-J2.js} +1 -1
  192. package/dist/core/{Water-CoYwvqKx.js → Water-C1hpWaDG.js} +1 -1
  193. package/dist/core/{Watercolor-DUNjSIN1.js → Watercolor-DcHvJiR0.js} +1 -1
  194. package/dist/core/{WaveDistortion-Dp8ws0z1.js → WaveDistortion-Dh79dGBr.js} +1 -1
  195. package/dist/core/{Waveform-DDBLB6zu.js → Waveform-WaNoseGL.js} +1 -1
  196. package/dist/core/{WaveletNoise-CpBkzfRT.js → WaveletNoise-B7BbHyRe.js} +2 -2
  197. package/dist/core/{Weave-cWkvSEAy.js → Weave-ltmDeQ91.js} +1 -1
  198. package/dist/core/{WebcamTexture-D484SXSE.js → WebcamTexture-CxehSVcP.js} +1 -1
  199. package/dist/core/{Wool-C9L7O9fD.js → Wool-BGpl5MnC.js} +1 -1
  200. package/dist/core/{WorleyNoise-B5j5lDQZ.js → WorleyNoise-COzM7yGf.js} +1 -1
  201. package/dist/core/{ZoomBlur-bPC1dBu2.js → ZoomBlur-jsmAeX03.js} +1 -1
  202. package/dist/core/docs-manifest.json +373 -75
  203. package/dist/core/gpu/frame.d.ts +14 -7
  204. package/dist/core/gpu/frame.d.ts.map +1 -1
  205. package/dist/core/gpu/index.d.ts.map +1 -1
  206. package/dist/core/index.js +211 -209
  207. package/dist/core/llms.txt +21 -3
  208. package/dist/core/{noiseColor-D_bPhJ4m.js → noiseColor-oUufQir9.js} +1 -1
  209. package/dist/core/presetRenderer.d.ts.map +1 -1
  210. package/dist/core/registry.js +203 -202
  211. package/dist/core/shaderRegistry-jxUBiD5N.js +447 -0
  212. package/dist/core/shaderRegistry.d.ts.map +1 -1
  213. package/dist/core/shaders/AngularBlur/index.js +2 -2
  214. package/dist/core/shaders/Arc/index.js +2 -2
  215. package/dist/core/shaders/Ascii/index.js +2 -2
  216. package/dist/core/shaders/Aurora/index.js +2 -2
  217. package/dist/core/shaders/BarShift/index.js +2 -2
  218. package/dist/core/shaders/BarnDoors/index.js +2 -2
  219. package/dist/core/shaders/Beam/index.js +2 -2
  220. package/dist/core/shaders/Bend/index.js +2 -2
  221. package/dist/core/shaders/Blob/index.js +2 -2
  222. package/dist/core/shaders/BlockDissolve/index.js +2 -2
  223. package/dist/core/shaders/BlockNoise/index.js +3 -3
  224. package/dist/core/shaders/BlueNoise/index.js +3 -3
  225. package/dist/core/shaders/Blur/index.js +2 -2
  226. package/dist/core/shaders/Boids/index.js +2 -2
  227. package/dist/core/shaders/BokehBlur/index.js +2 -2
  228. package/dist/core/shaders/BrickPattern/index.js +2 -2
  229. package/dist/core/shaders/BrightnessContrast/index.js +2 -2
  230. package/dist/core/shaders/BrushedMetal/index.js +2 -2
  231. package/dist/core/shaders/Bulge/index.js +2 -2
  232. package/dist/core/shaders/CRTScreen/index.js +2 -2
  233. package/dist/core/shaders/CarbonFiber/index.js +2 -2
  234. package/dist/core/shaders/Chalkboard/index.js +2 -2
  235. package/dist/core/shaders/ChannelBlur/index.js +2 -2
  236. package/dist/core/shaders/CheckerWipe/index.js +2 -2
  237. package/dist/core/shaders/Checkerboard/index.js +2 -2
  238. package/dist/core/shaders/Chevron/index.js +2 -2
  239. package/dist/core/shaders/ChromaFlow/index.js +2 -2
  240. package/dist/core/shaders/ChromaticAberration/index.js +2 -2
  241. package/dist/core/shaders/Chrome/index.js +2 -2
  242. package/dist/core/shaders/Circle/index.js +2 -2
  243. package/dist/core/shaders/ColorWheel/index.js +2 -2
  244. package/dist/core/shaders/CompressionArtifacts/index.js +2 -2
  245. package/dist/core/shaders/ConcentricSpin/index.js +2 -2
  246. package/dist/core/shaders/ConicGradient/index.js +2 -2
  247. package/dist/core/shaders/ContourLines/index.js +2 -2
  248. package/dist/core/shaders/CornerPin/index.js +2 -2
  249. package/dist/core/shaders/Crescent/index.js +2 -2
  250. package/dist/core/shaders/Cross/index.js +2 -2
  251. package/dist/core/shaders/Crystal/index.js +2 -2
  252. package/dist/core/shaders/CurlNoise/index.js +3 -3
  253. package/dist/core/shaders/CursorRipples/index.js +2 -2
  254. package/dist/core/shaders/CursorTrail/index.js +2 -2
  255. package/dist/core/shaders/DataMosh/index.js +2 -2
  256. package/dist/core/shaders/DiamondGradient/index.js +2 -2
  257. package/dist/core/shaders/DiamondWipe/index.js +2 -2
  258. package/dist/core/shaders/DiffuseBlur/index.js +2 -2
  259. package/dist/core/shaders/DisplacementMap/index.js +2 -2
  260. package/dist/core/shaders/Dither/index.js +2 -2
  261. package/dist/core/shaders/DotGrid/index.js +2 -2
  262. package/dist/core/shaders/DropShadow/index.js +2 -2
  263. package/dist/core/shaders/Duotone/index.js +2 -2
  264. package/dist/core/shaders/Ellipse/index.js +2 -2
  265. package/dist/core/shaders/Emboss/index.js +2 -2
  266. package/dist/core/shaders/Engraving/index.js +2 -2
  267. package/dist/core/shaders/ErosionNoise/index.js +3 -3
  268. package/dist/core/shaders/Exposure/index.js +2 -2
  269. package/dist/core/shaders/FallingLines/index.js +2 -2
  270. package/dist/core/shaders/FilmGrain/index.js +2 -2
  271. package/dist/core/shaders/FilmStock/index.js +2 -2
  272. package/dist/core/shaders/Flip/index.js +2 -2
  273. package/dist/core/shaders/FloatingParticles/index.js +2 -2
  274. package/dist/core/shaders/FlowField/index.js +2 -2
  275. package/dist/core/shaders/Flower/index.js +2 -2
  276. package/dist/core/shaders/FlowingGradient/index.js +2 -2
  277. package/dist/core/shaders/FlutedGlass/index.js +2 -2
  278. package/dist/core/shaders/Fog/index.js +2 -2
  279. package/dist/core/shaders/Form3D/index.js +2 -2
  280. package/dist/core/shaders/FractalNoise/index.js +2 -2
  281. package/dist/core/shaders/Frost/index.js +2 -2
  282. package/dist/core/shaders/GaborNoise/index.js +3 -3
  283. package/dist/core/shaders/Glass/index.js +2 -2
  284. package/dist/core/shaders/GlassTiles/index.js +2 -2
  285. package/dist/core/shaders/Glitch/index.js +2 -2
  286. package/dist/core/shaders/Glow/index.js +2 -2
  287. package/dist/core/shaders/Godrays/index.js +2 -2
  288. package/dist/core/shaders/Goo/index.js +2 -2
  289. package/dist/core/shaders/GradientMap/index.js +2 -2
  290. package/dist/core/shaders/Grayscale/index.js +2 -2
  291. package/dist/core/shaders/Grid/index.js +2 -2
  292. package/dist/core/shaders/GridDistortion/index.js +2 -2
  293. package/dist/core/shaders/Group/index.js +2 -2
  294. package/dist/core/shaders/HTMLInCanvas/index.js +2 -2
  295. package/dist/core/shaders/Halftone/index.js +2 -2
  296. package/dist/core/shaders/Heart/index.js +2 -2
  297. package/dist/core/shaders/Heatmap/index.js +2 -2
  298. package/dist/core/shaders/HexGrid/index.js +2 -2
  299. package/dist/core/shaders/Hologram/index.js +2 -2
  300. package/dist/core/shaders/Holographic/index.js +2 -2
  301. package/dist/core/shaders/HueShift/index.js +2 -2
  302. package/dist/core/shaders/ImageTexture/index.js +2 -2
  303. package/dist/core/shaders/InkFlow/index.js +2 -2
  304. package/dist/core/shaders/Invert/index.js +2 -2
  305. package/dist/core/shaders/IrisWipe/index.js +2 -2
  306. package/dist/core/shaders/Irradiance/index.js +2 -2
  307. package/dist/core/shaders/IsometricCubes/index.js +2 -2
  308. package/dist/core/shaders/Kaleidoscope/index.js +2 -2
  309. package/dist/core/shaders/KeyFrames/index.js +2 -2
  310. package/dist/core/shaders/LensDistortion/index.js +2 -2
  311. package/dist/core/shaders/LensFlare/index.js +2 -2
  312. package/dist/core/shaders/LightEdge/index.js +2 -2
  313. package/dist/core/shaders/LightLeak/index.js +2 -2
  314. package/dist/core/shaders/Line/index.js +2 -2
  315. package/dist/core/shaders/LinearBlur/index.js +2 -2
  316. package/dist/core/shaders/LinearGradient/index.js +2 -2
  317. package/dist/core/shaders/LinearWipe/index.js +2 -2
  318. package/dist/core/shaders/LiquidMetal/index.js +2 -2
  319. package/dist/core/shaders/Liquify/index.js +2 -2
  320. package/dist/core/shaders/MagneticFilings/index.js +2 -2
  321. package/dist/core/shaders/Marble/index.js +2 -2
  322. package/dist/core/shaders/MeshGradient/index.js +2 -2
  323. package/dist/core/shaders/Mirror/index.js +2 -2
  324. package/dist/core/shaders/MultiPointGradient/index.js +2 -2
  325. package/dist/core/shaders/Nebula/index.js +2 -2
  326. package/dist/core/shaders/Neon/index.js +2 -2
  327. package/dist/core/shaders/NoiseDissolve/index.js +2 -2
  328. package/dist/core/shaders/ObjectTracker/index.js +2 -2
  329. package/dist/core/shaders/Obsidian/index.js +2 -2
  330. package/dist/core/shaders/PagePeel/index.js +2 -2
  331. package/dist/core/shaders/Paper/index.js +2 -2
  332. package/dist/core/shaders/Parallelogram/index.js +2 -2
  333. package/dist/core/shaders/ParticleField/index.js +2 -2
  334. package/dist/core/shaders/ParticleFlow/index.js +2 -2
  335. package/dist/core/shaders/Particles/index.js +2 -2
  336. package/dist/core/shaders/PerlinNoise/index.js +3 -3
  337. package/dist/core/shaders/Perspective/index.js +2 -2
  338. package/dist/core/shaders/PixelSort/index.js +2 -2
  339. package/dist/core/shaders/PixelThrow/index.js +2 -2
  340. package/dist/core/shaders/Pixelate/index.js +2 -2
  341. package/dist/core/shaders/Plasma/index.js +2 -2
  342. package/dist/core/shaders/Plastic/index.js +2 -2
  343. package/dist/core/shaders/PolarCoordinates/index.js +2 -2
  344. package/dist/core/shaders/Polygon/index.js +2 -2
  345. package/dist/core/shaders/Posterize/index.js +2 -2
  346. package/dist/core/shaders/Prism/index.js +2 -2
  347. package/dist/core/shaders/ProgressiveBlur/index.js +2 -2
  348. package/dist/core/shaders/RadialGradient/index.js +2 -2
  349. package/dist/core/shaders/RadialWipe/index.js +2 -2
  350. package/dist/core/shaders/RandomBars/index.js +2 -2
  351. package/dist/core/shaders/ReactionDiffusion/index.js +2 -2
  352. package/dist/core/shaders/RectangularCoordinates/index.js +2 -2
  353. package/dist/core/shaders/ReflectivePlane/index.js +2 -2
  354. package/dist/core/shaders/Repeater/index.js +2 -2
  355. package/dist/core/shaders/Ring/index.js +2 -2
  356. package/dist/core/shaders/RippleWipe/index.js +2 -2
  357. package/dist/core/shaders/Ripples/index.js +2 -2
  358. package/dist/core/shaders/RoundedRect/index.js +2 -2
  359. package/dist/core/shaders/Satin/index.d.ts +120 -0
  360. package/dist/core/shaders/Satin/index.d.ts.map +1 -0
  361. package/dist/core/shaders/Satin/index.js +5 -0
  362. package/dist/core/shaders/Saturation/index.js +2 -2
  363. package/dist/core/shaders/Scratches/index.js +3 -3
  364. package/dist/core/shaders/Sharpness/index.js +2 -2
  365. package/dist/core/shaders/Shatter/index.js +2 -2
  366. package/dist/core/shaders/SimplexNoise/index.js +3 -3
  367. package/dist/core/shaders/SineWave/index.js +2 -2
  368. package/dist/core/shaders/SliceWipe/index.js +2 -2
  369. package/dist/core/shaders/Smoke/index.js +2 -2
  370. package/dist/core/shaders/SmokeFill/index.js +2 -2
  371. package/dist/core/shaders/SmokeFlow/index.js +2 -2
  372. package/dist/core/shaders/Solarize/index.js +2 -2
  373. package/dist/core/shaders/SolidColor/index.js +2 -2
  374. package/dist/core/shaders/Sparkle/index.js +2 -2
  375. package/dist/core/shaders/Spherize/index.js +2 -2
  376. package/dist/core/shaders/Spiral/index.js +2 -2
  377. package/dist/core/shaders/Star/index.js +2 -2
  378. package/dist/core/shaders/Stone/index.js +2 -2
  379. package/dist/core/shaders/Strands/index.js +2 -2
  380. package/dist/core/shaders/Stretch/index.js +2 -2
  381. package/dist/core/shaders/Stripes/index.js +2 -2
  382. package/dist/core/shaders/StudioBackground/index.js +2 -2
  383. package/dist/core/shaders/SunBurst/index.js +2 -2
  384. package/dist/core/shaders/Surface3D/index.js +2 -2
  385. package/dist/core/shaders/Swirl/index.js +2 -2
  386. package/dist/core/shaders/Teardrop/index.js +2 -2
  387. package/dist/core/shaders/Text/index.js +2 -2
  388. package/dist/core/shaders/ThinFilm/index.js +2 -2
  389. package/dist/core/shaders/TiltShift/index.js +2 -2
  390. package/dist/core/shaders/TimeTrail/index.js +2 -2
  391. package/dist/core/shaders/Tint/index.js +2 -2
  392. package/dist/core/shaders/Trapezoid/index.js +2 -2
  393. package/dist/core/shaders/TriangularGrid/index.js +2 -2
  394. package/dist/core/shaders/Tritone/index.js +2 -2
  395. package/dist/core/shaders/Truchet/index.js +2 -2
  396. package/dist/core/shaders/Twirl/index.js +2 -2
  397. package/dist/core/shaders/VHS/index.js +2 -2
  398. package/dist/core/shaders/VenetianBlinds/index.js +2 -2
  399. package/dist/core/shaders/Vesica/index.js +2 -2
  400. package/dist/core/shaders/Vibrance/index.js +2 -2
  401. package/dist/core/shaders/VideoTexture/index.js +2 -2
  402. package/dist/core/shaders/Vignette/index.js +2 -2
  403. package/dist/core/shaders/Voronoi/index.js +2 -2
  404. package/dist/core/shaders/Voxels/index.js +2 -2
  405. package/dist/core/shaders/Water/index.js +2 -2
  406. package/dist/core/shaders/Watercolor/index.js +2 -2
  407. package/dist/core/shaders/WaveDistortion/index.js +2 -2
  408. package/dist/core/shaders/Waveform/index.js +2 -2
  409. package/dist/core/shaders/WaveletNoise/index.js +3 -3
  410. package/dist/core/shaders/Weave/index.js +2 -2
  411. package/dist/core/shaders/WebcamTexture/index.js +2 -2
  412. package/dist/core/shaders/Wool/index.js +2 -2
  413. package/dist/core/shaders/WorleyNoise/index.js +2 -2
  414. package/dist/core/shaders/ZoomBlur/index.js +2 -2
  415. package/dist/core/std/index.js +1 -1
  416. package/dist/core/std/paint/materials.d.ts +48 -2
  417. package/dist/core/std/paint/materials.d.ts.map +1 -1
  418. package/dist/core/std/paint/noise.d.ts +120 -0
  419. package/dist/core/std/paint/noise.d.ts.map +1 -1
  420. package/dist/core/{std-ClftfWpF.js → std-ebybEx3c.js} +114 -19
  421. package/dist/js/bundle.js +101 -101
  422. package/dist/js/createShader.js +1 -1
  423. package/dist/js/utils/generatePresetCode.d.ts.map +1 -1
  424. package/dist/js/utils/generatePresetCode.js +23 -0
  425. package/dist/react/Preview.js +1 -0
  426. package/dist/react/Satin.js +226 -0
  427. package/dist/react/Shader.js +1 -1
  428. package/dist/react/bundle.js +90 -90
  429. package/dist/react/components/Satin.d.ts +49 -0
  430. package/dist/react/components/Satin.d.ts.map +1 -0
  431. package/dist/react/engine/Preview.d.ts.map +1 -1
  432. package/dist/react/index.d.ts +1 -0
  433. package/dist/react/index.d.ts.map +1 -1
  434. package/dist/react/index.js +2 -1
  435. package/dist/react/utils/generatePresetCode.d.ts.map +1 -1
  436. package/dist/react/utils/generatePresetCode.js +23 -0
  437. package/dist/registry.js +528 -0
  438. package/dist/solid/components/Satin.d.ts +46 -0
  439. package/dist/solid/components/Satin.d.ts.map +1 -0
  440. package/dist/solid/components/Satin.js +232 -0
  441. package/dist/solid/engine/Preview.d.ts.map +1 -1
  442. package/dist/solid/engine/Preview.js +295 -293
  443. package/dist/solid/engine/Shader.js +1 -1
  444. package/dist/solid/index.d.ts +1 -0
  445. package/dist/solid/index.d.ts.map +1 -1
  446. package/dist/solid/index.js +114 -112
  447. package/dist/solid/utils/generatePresetCode.d.ts.map +1 -1
  448. package/dist/solid/utils/generatePresetCode.js +23 -0
  449. package/dist/svelte/components/Satin.svelte.d.ts +36 -0
  450. package/dist/svelte/index.d.ts +1 -0
  451. package/dist/svelte/index.js +2500 -2293
  452. package/dist/svelte/source/components/Satin.svelte +360 -0
  453. package/dist/svelte/source/engine/Preview.svelte +2 -0
  454. package/dist/svelte/source/index.js +1 -0
  455. package/dist/svelte/utils/generatePresetCode.js +23 -0
  456. package/dist/vue/Preview.vue_vue_type_script_setup_true_lang.js +2 -0
  457. package/dist/vue/Satin.js +3 -0
  458. package/dist/vue/Satin.vue_vue_type_script_setup_true_lang.js +243 -0
  459. package/dist/vue/Shader.vue_vue_type_script_setup_true_lang.js +1 -1
  460. package/dist/vue/components/Satin.vue.d.ts +71 -0
  461. package/dist/vue/components/Satin.vue.d.ts.map +1 -0
  462. package/dist/vue/index.d.ts +1 -0
  463. package/dist/vue/index.d.ts.map +1 -1
  464. package/dist/vue/index.js +2 -1
  465. package/dist/vue/utils/generatePresetCode.d.ts.map +1 -1
  466. package/dist/vue/utils/generatePresetCode.js +23 -0
  467. package/package.json +9 -1
  468. package/dist/core/shaderRegistry-BaozBFyh.js +0 -445
@@ -0,0 +1,360 @@
1
+ <script lang="ts">
2
+ import { getContext, setContext, onMount, onDestroy } from 'svelte';
3
+ import {
4
+ createGpuUniformsMap,
5
+ resolveBoundingBox,
6
+ type GpuUniformsMap,
7
+ type BlendMode,
8
+ type NodeMetadata,
9
+ type PropConfig,
10
+ type MaskConfig,
11
+ type PropDriver,
12
+ type TransformConfig,
13
+ type BoundingBoxConfig,
14
+ type LayoutConfig
15
+ } from '../../../core/index.js';
16
+ import {setColorSpaceMode} from '../../../core/utilities/transformations/index.js';
17
+
18
+ // @ts-ignore - this import is replaced at build time
19
+ import { componentDefinition, type ComponentProps } from '../../../core/shaders/Satin/index.js';
20
+
21
+ // Warn once per page load if this is an experimental component
22
+ let _experimentalWarnedOnce = false;
23
+ if ((componentDefinition as any).experimental && !_experimentalWarnedOnce) {
24
+ _experimentalWarnedOnce = true;
25
+ const _e = (componentDefinition as any).experimental;
26
+ console.info(`%c⚠ [Shaders] ${componentDefinition.name} is experimental: ${_e.message}`, 'color: #f59e0b; font-weight: bold');
27
+ }
28
+
29
+ /**
30
+ * Define component props including blend mode, opacity, visibility, masking, and transformation
31
+ */
32
+ interface ExtendedComponentProps extends Partial<ComponentProps> {
33
+ foldDirection?: ComponentProps['foldDirection'] | PropDriver;
34
+ foldDepth?: ComponentProps['foldDepth'] | PropDriver;
35
+ foldWidth?: ComponentProps['foldWidth'] | PropDriver;
36
+ pinning?: ComponentProps['pinning'] | PropDriver;
37
+ seed?: ComponentProps['seed'] | PropDriver;
38
+ breeze?: ComponentProps['breeze'] | PropDriver;
39
+ gloss?: ComponentProps['gloss'] | PropDriver;
40
+ anisotropy?: ComponentProps['anisotropy'] | PropDriver;
41
+ bloom?: ComponentProps['bloom'] | PropDriver;
42
+ sheen?: ComponentProps['sheen'] | PropDriver;
43
+ weave?: ComponentProps['weave'] | PropDriver;
44
+ fiberAngle?: ComponentProps['fiberAngle'] | PropDriver;
45
+ lightAngle?: ComponentProps['lightAngle'] | PropDriver;
46
+ fill?: ComponentProps['fill'] | PropDriver;
47
+ blendMode?: BlendMode;
48
+ opacity?: number;
49
+ visible?: boolean;
50
+ id?: string;
51
+ maskSource?: string;
52
+ maskType?: string;
53
+ renderOrder?: number;
54
+ transform?: Partial<TransformConfig>;
55
+ boundingBox?: Partial<BoundingBoxConfig>;
56
+ flow?: LayoutConfig;
57
+ absolute?: boolean;
58
+ children?: import('svelte').Snippet;
59
+ }
60
+
61
+ function isPropDriver(value: unknown): value is PropDriver {
62
+ return typeof value === 'object' && value !== null && 'type' in value &&
63
+ ((value as any).type === 'map' || (value as any).type === 'mouse' || (value as any).type === 'mouse-position' || (value as any).type === 'auto-animate');
64
+ }
65
+
66
+ /**
67
+ * Default transform configuration (optimized for zero overhead)
68
+ */
69
+ const DEFAULT_TRANSFORM: TransformConfig = {
70
+ offsetX: 0,
71
+ offsetY: 0,
72
+ rotation: 0,
73
+ scale: 1,
74
+ anchorX: 0.5,
75
+ anchorY: 0.5,
76
+ edges: 'transparent'
77
+ };
78
+
79
+ // Define the component props and their default values from the shader definition
80
+ const componentDefaults = {
81
+ blendMode: 'normal' as BlendMode,
82
+ visible: true,
83
+ // opacity intentionally has no default - handled by renderer
84
+ // transform intentionally has no default - handled by effectiveTransform
85
+ ...Object.entries(componentDefinition.props).reduce(
86
+ (acc, [key, config]) => {
87
+ acc[key] = (config as unknown as PropConfig<typeof config>).default;
88
+ return acc;
89
+ },
90
+ {} as Record<string, any>
91
+ )
92
+ };
93
+
94
+ // Declare props using Svelte 5's syntax
95
+ const props: ExtendedComponentProps = $props();
96
+
97
+ // Apply defaults manually since Svelte 5 doesn't have withDefaults equivalent
98
+ // Use $derived so the metadata $effect re-runs when any of these change at runtime
99
+ const blendMode = $derived(props.blendMode ?? componentDefaults.blendMode);
100
+ const opacity = $derived(props.opacity); // No default - handled by renderer
101
+ const visible = $derived(props.visible ?? componentDefaults.visible); // Default to true
102
+ const id = $derived(props.id);
103
+ const maskSource = $derived(props.maskSource);
104
+ const maskType = $derived(props.maskType);
105
+ const renderOrder = $derived(props.renderOrder);
106
+ const { children } = props;
107
+
108
+ // Collect PropDriver values from shader props into the maps metadata structure
109
+ const mapsFromProps = $derived.by(() => {
110
+ const maps: Record<string, PropDriver> = {};
111
+ for (const key of Object.keys(componentDefinition.props)) {
112
+ const val = (props as any)[key];
113
+ if (isPropDriver(val)) maps[key] = val as PropDriver;
114
+ }
115
+ return Object.keys(maps).length > 0 ? maps : undefined;
116
+ });
117
+
118
+ /**
119
+ * Computed transform that merges user-provided values with defaults
120
+ */
121
+ const effectiveTransform = $derived({
122
+ ...DEFAULT_TRANSFORM,
123
+ ...props.transform
124
+ });
125
+
126
+ /**
127
+ * Effective bounding box — partial configs merge with full-frame defaults,
128
+ * absent stays undefined so the bbox render path is not activated
129
+ */
130
+ const effectiveBoundingBox = $derived(resolveBoundingBox(props.boundingBox));
131
+
132
+ /**
133
+ * FIRST: Get the parent ID from context BEFORE setting our own context
134
+ */
135
+ const parentId = getContext<string>('shaderParentId');
136
+ if (parentId === undefined) {
137
+ throw new Error('Shader components must be used inside an <Shader> component or another shader component');
138
+ }
139
+
140
+ /**
141
+ * Use the provided ID or generate a unique identifier for this component instance
142
+ */
143
+ const instanceId = (id ? id.replace(/[^a-zA-Z0-9_]/g, '_') : null) || Math.random().toString(36).substring(2, 10);
144
+
145
+ /**
146
+ * THEN: Provide our unique identifier to child components
147
+ */
148
+ setContext('shaderParentId', instanceId);
149
+
150
+ /**
151
+ * Creates a non-reactive object containing only props that differ from defaults
152
+ * This optimization prevents unnecessary GPU uniform updates for unchanged values
153
+ * Special props like blendMode and opacity are handled separately
154
+ */
155
+ const shaderReadyProps = $derived.by(() => {
156
+ let baseProps = { ...componentDefaults };
157
+
158
+ // Only include props that differ from defaults (excluding special props and PropDrivers)
159
+ for (const key in props) {
160
+ if (key !== 'blendMode' && key !== 'opacity' && key !== 'visible' &&
161
+ key !== 'id' && key !== 'maskSource' && key !== 'maskType' && key !== 'renderOrder' &&
162
+ key !== 'transform' && key !== 'boundingBox' && key !== 'flow' && key !== 'absolute' && key !== 'children') {
163
+ const propValue = (props as any)[key];
164
+ if (isPropDriver(propValue)) continue; // PropDrivers go to metadata.maps, not uniforms
165
+ const defaultValue = (componentDefaults as any)[key];
166
+ if (propValue !== undefined && propValue !== defaultValue) {
167
+ (baseProps as any)[key] = propValue;
168
+ }
169
+ }
170
+ }
171
+ return baseProps;
172
+ });
173
+
174
+ /**
175
+ * Get the color space from the root Shader component.
176
+ * Used to set the global color space mode before creating uniforms.
177
+ */
178
+ const shaderColorSpace = getContext<() => 'p3-linear' | 'srgb'>('shaderColorSpace');
179
+
180
+ /**
181
+ * Creates the GPU uniform values map using only the changed props
182
+ * Set the global color space mode before creating uniforms so colors are transformed correctly
183
+ * Note: Intentionally captures initial value - props are immutable after initialization
184
+ */
185
+ if (shaderColorSpace) {
186
+ setColorSpaceMode(shaderColorSpace());
187
+ }
188
+ // svelte-ignore state_referenced_locally
189
+ const uniforms: GpuUniformsMap = createGpuUniformsMap(componentDefinition, shaderReadyProps, instanceId);
190
+
191
+ /**
192
+ * Get the node registration function from parent context
193
+ */
194
+ const parentRegister = getContext<(id: string, fragmentNodeFunc: any, parentId: string | null, metadata: NodeMetadata | null, uniforms: GpuUniformsMap | null, componentDefinition: any, domCanvas?: HTMLCanvasElement) => void>('shaderNodeRegister');
195
+ if (parentRegister === undefined) {
196
+ throw new Error('Shader components must be used inside an <Shader> component or another shader component');
197
+ }
198
+
199
+ /**
200
+ * Get the uniform update function from parent context
201
+ */
202
+ const parentUniformUpdate = getContext<(nodeId: string, uniformName: string, value: any) => void>('shaderUniformUpdate');
203
+ if (parentUniformUpdate === undefined) {
204
+ throw new Error('Shader components require shaderUniformUpdate from parent');
205
+ }
206
+
207
+ /**
208
+ * Get the metadata update function from parent context
209
+ */
210
+ const parentMetadataUpdate = getContext<(nodeId: string, metadata: NodeMetadata) => void>('shaderMetadataUpdate');
211
+ if (parentMetadataUpdate === undefined) {
212
+ throw new Error('Shader components require shaderMetadataUpdate from parent');
213
+ }
214
+
215
+ // capturesDOM — canvas layoutsubtree portal for HTMLInCanvas-style shaders
216
+ const isCapturesDOM = !!(componentDefinition as any).capturesDOM;
217
+ let captureCanvas: HTMLCanvasElement | undefined;
218
+ let captureW = $state(typeof window !== 'undefined' ? Math.round(window.innerWidth * Math.min(window.devicePixelRatio, 2)) : 0);
219
+ let captureH = $state(typeof window !== 'undefined' ? Math.round(window.innerHeight * Math.min(window.devicePixelRatio, 2)) : 0);
220
+
221
+ function teleportToBody(node: HTMLElement) {
222
+ document.body.appendChild(node);
223
+ return { destroy() { node.remove(); } };
224
+ }
225
+
226
+ if (isCapturesDOM) {
227
+ const onWinResize = () => {
228
+ const d = Math.min(window.devicePixelRatio, 2);
229
+ captureW = Math.round(window.innerWidth * d);
230
+ captureH = Math.round(window.innerHeight * d);
231
+ };
232
+ onMount(() => { window.addEventListener('resize', onWinResize); });
233
+ onDestroy(() => { window.removeEventListener('resize', onWinResize); });
234
+ }
235
+
236
+ // DOM marker ref for determining render order from template position
237
+ let orderMarker: HTMLSpanElement;
238
+
239
+ // Stores the DOM-detected render order
240
+ let detectedRenderOrder: number | undefined = undefined;
241
+
242
+ // Flag to track when component is registered
243
+ let isRegistered = $state(false);
244
+
245
+ // Setup uniform watchers with registration guard
246
+ Object.entries(uniforms).forEach(([propName, entry]) => {
247
+ $effect(() => {
248
+ // Only run after component is registered
249
+ if (!isRegistered) return;
250
+
251
+ // GPU bridge entries carry `.value` (no v1 `.uniform` node). colorStops expands into
252
+ // extra array fields (colorsArray/…) that aren't component props — their `props[name]`
253
+ // is always undefined, so the guard below skips them.
254
+ if (entry && entry.value !== undefined) {
255
+ const newValue = (props as any)[propName];
256
+ if (newValue !== undefined && !isPropDriver(newValue)) {
257
+ // Send raw value - renderer will handle transformation
258
+ // PropDriver values go to metadata.maps, not uniforms
259
+ parentUniformUpdate(instanceId, propName, newValue);
260
+ }
261
+ }
262
+ });
263
+ });
264
+
265
+ // Watch blend mode, opacity, visibility, masking, transformations, and prop maps changes
266
+ $effect(() => {
267
+ // Only run after component is registered
268
+ if (!isRegistered) return;
269
+
270
+ const metadata: NodeMetadata = {
271
+ blendMode,
272
+ opacity,
273
+ visible: visible === false ? false : true,
274
+ id,
275
+ mask: maskSource ? {
276
+ source: maskSource,
277
+ type: (maskType || 'alpha') as MaskConfig['type']
278
+ } : undefined,
279
+ maps: mapsFromProps,
280
+ renderOrder: renderOrder ?? detectedRenderOrder,
281
+ transform: effectiveTransform,
282
+ boundingBox: effectiveBoundingBox,
283
+ flow: props.flow,
284
+ absolute: props.absolute
285
+ };
286
+ parentMetadataUpdate(instanceId, metadata);
287
+ });
288
+
289
+ // Register this component after mount to ensure parent is ready
290
+ onMount(() => {
291
+ // Register this component with safety check
292
+ if (componentDefinition && typeof componentDefinition.fragment === 'function') {
293
+ parentRegister(
294
+ instanceId,
295
+ componentDefinition.fragment,
296
+ parentId,
297
+ {
298
+ blendMode,
299
+ opacity,
300
+ visible: visible !== false ? true : false,
301
+ id,
302
+ mask: maskSource ? {
303
+ source: maskSource,
304
+ type: (maskType || 'alpha') as MaskConfig['type']
305
+ } as MaskConfig : undefined,
306
+ maps: mapsFromProps,
307
+ renderOrder: renderOrder ?? detectedRenderOrder,
308
+ transform: effectiveTransform,
309
+ boundingBox: effectiveBoundingBox,
310
+ flow: props.flow,
311
+ absolute: props.absolute
312
+ },
313
+ uniforms,
314
+ componentDefinition,
315
+ isCapturesDOM ? captureCanvas : undefined
316
+ );
317
+
318
+ // Set flag to enable effects after successful registration
319
+ isRegistered = true;
320
+
321
+ // Detect DOM position for correct render ordering
322
+ if (renderOrder === undefined && orderMarker) {
323
+ const parent = orderMarker.parentElement;
324
+ if (parent) {
325
+ const siblings = parent.querySelectorAll(':scope > [data-shader-id]');
326
+ const position = Array.from(siblings).indexOf(orderMarker);
327
+ if (position >= 0) {
328
+ detectedRenderOrder = position;
329
+ parentMetadataUpdate(instanceId, { renderOrder: position } as NodeMetadata);
330
+ }
331
+ }
332
+ }
333
+ } else {
334
+ console.error('componentDefinition.fragment is not a function:', {
335
+ componentDefinition,
336
+ fragment: componentDefinition?.fragment,
337
+ type: typeof componentDefinition?.fragment
338
+ });
339
+ }
340
+ });
341
+
342
+ // Clean up node from registry when component is unmounted
343
+ onDestroy(() => {
344
+ isRegistered = false;
345
+ parentRegister(instanceId, null, null, null, null);
346
+ });
347
+ </script>
348
+
349
+ <span bind:this={orderMarker} style="display:contents" data-shader-id={instanceId}>
350
+ {#if !isCapturesDOM}
351
+ {@render children?.()}
352
+ {/if}
353
+ </span>
354
+ {#if isCapturesDOM}
355
+ <canvas use:teleportToBody bind:this={captureCanvas} layoutsubtree
356
+ width={captureW} height={captureH}
357
+ style="position:fixed;inset:0;width:100vw;height:100vh;z-index:-9999">
358
+ {@render children?.()}
359
+ </canvas>
360
+ {/if}
@@ -151,6 +151,7 @@ import Ring from '../components/Ring.svelte'
151
151
  import RippleWipe from '../components/RippleWipe.svelte'
152
152
  import Ripples from '../components/Ripples.svelte'
153
153
  import RoundedRect from '../components/RoundedRect.svelte'
154
+ import Satin from '../components/Satin.svelte'
154
155
  import Saturation from '../components/Saturation.svelte'
155
156
  import Scratches from '../components/Scratches.svelte'
156
157
  import Sharpness from '../components/Sharpness.svelte'
@@ -355,6 +356,7 @@ const componentMap: Record<string, any> = {
355
356
  RippleWipe,
356
357
  Ripples,
357
358
  RoundedRect,
359
+ Satin,
358
360
  Saturation,
359
361
  Scratches,
360
362
  Sharpness,
@@ -146,6 +146,7 @@ export { default as Ring } from './components/Ring.svelte';
146
146
  export { default as RippleWipe } from './components/RippleWipe.svelte';
147
147
  export { default as Ripples } from './components/Ripples.svelte';
148
148
  export { default as RoundedRect } from './components/RoundedRect.svelte';
149
+ export { default as Satin } from './components/Satin.svelte';
149
150
  export { default as Saturation } from './components/Saturation.svelte';
150
151
  export { default as Scratches } from './components/Scratches.svelte';
151
152
  export { default as Sharpness } from './components/Sharpness.svelte';
@@ -2267,6 +2267,28 @@ var shaderMetadata = {
2267
2267
  "strokePosition": "center",
2268
2268
  "colorSpace": "linear"
2269
2269
  },
2270
+ "Satin": {
2271
+ "opacity": 1,
2272
+ "blendMode": "normal",
2273
+ "color": "#c92c40",
2274
+ "highlightColor": "#c4667b",
2275
+ "foldCount": 7,
2276
+ "foldDirection": 90,
2277
+ "foldDepth": .5,
2278
+ "foldWidth": .14,
2279
+ "pinning": .6,
2280
+ "seed": 0,
2281
+ "speed": 1,
2282
+ "breeze": .4,
2283
+ "gloss": .1,
2284
+ "anisotropy": .7,
2285
+ "bloom": .5,
2286
+ "sheen": .5,
2287
+ "weave": .1,
2288
+ "fiberAngle": 90,
2289
+ "lightAngle": 215,
2290
+ "fill": .35
2291
+ },
2270
2292
  "Saturation": {
2271
2293
  "opacity": 1,
2272
2294
  "blendMode": "normal",
@@ -3348,6 +3370,7 @@ const availableComponents = [
3348
3370
  "RippleWipe",
3349
3371
  "Ripples",
3350
3372
  "RoundedRect",
3373
+ "Satin",
3351
3374
  "Saturation",
3352
3375
  "Scratches",
3353
3376
  "Sharpness",
@@ -144,6 +144,7 @@ import Ring_default from "./Ring.js";
144
144
  import RippleWipe_default from "./RippleWipe.js";
145
145
  import Ripples_default from "./Ripples.js";
146
146
  import RoundedRect_default from "./RoundedRect.js";
147
+ import Satin_default from "./Satin.js";
147
148
  import Saturation_default from "./Saturation.js";
148
149
  import Scratches_default from "./Scratches.js";
149
150
  import Sharpness_default from "./Sharpness.js";
@@ -401,6 +402,7 @@ var Preview_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ define
401
402
  RippleWipe: RippleWipe_default,
402
403
  Ripples: Ripples_default,
403
404
  RoundedRect: RoundedRect_default,
405
+ Satin: Satin_default,
404
406
  Saturation: Saturation_default,
405
407
  Scratches: Scratches_default,
406
408
  Sharpness: Sharpness_default,
@@ -0,0 +1,3 @@
1
+ import Satin_vue_vue_type_script_setup_true_lang_default from "./Satin.vue_vue_type_script_setup_true_lang.js";
2
+ var Satin_default = Satin_vue_vue_type_script_setup_true_lang_default;
3
+ export { Satin_default as default };
@@ -0,0 +1,243 @@
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 { createGpuUniformsMap, resolveBoundingBox } from "../core/index.js";
3
+ import { setColorSpaceMode } from "../core/utilities/transformations/index.js";
4
+ import { componentDefinition } from "../core/shaders/Satin/index.js";
5
+ var _hoisted_1 = ["data-shader-id"];
6
+ var _hoisted_2 = ["width", "height"];
7
+ var Satin_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
8
+ __name: "Satin",
9
+ props: /* @__PURE__ */ mergeDefaults({
10
+ foldDirection: {},
11
+ foldDepth: {},
12
+ foldWidth: {},
13
+ pinning: {},
14
+ seed: {},
15
+ breeze: {},
16
+ gloss: {},
17
+ anisotropy: {},
18
+ bloom: {},
19
+ sheen: {},
20
+ weave: {},
21
+ fiberAngle: {},
22
+ lightAngle: {},
23
+ fill: {},
24
+ blendMode: {},
25
+ opacity: {},
26
+ visible: { type: Boolean },
27
+ id: {},
28
+ maskSource: {},
29
+ maskType: {},
30
+ renderOrder: {},
31
+ transform: {},
32
+ boundingBox: {},
33
+ flow: {},
34
+ absolute: { type: Boolean },
35
+ color: {},
36
+ highlightColor: {},
37
+ foldCount: {},
38
+ speed: {}
39
+ }, {
40
+ blendMode: "normal",
41
+ visible: true,
42
+ ...Object.entries(componentDefinition.props).reduce((acc, [key, config]) => {
43
+ acc[key] = config.default;
44
+ return acc;
45
+ }, {})
46
+ }),
47
+ setup(__props) {
48
+ let _experimentalWarnedOnce = false;
49
+ if (componentDefinition.experimental && !_experimentalWarnedOnce) {
50
+ _experimentalWarnedOnce = true;
51
+ const _e = componentDefinition.experimental;
52
+ console.info(`%c⚠ [Shaders] ${componentDefinition.name} is experimental: ${_e.message}`, "color: #f59e0b; font-weight: bold");
53
+ }
54
+ function isPropDriver(value) {
55
+ return typeof value === "object" && value !== null && "type" in value && (value.type === "map" || value.type === "mouse" || value.type === "mouse-position" || value.type === "auto-animate");
56
+ }
57
+ const props = __props;
58
+ const instanceId = (props.id ? props.id.replace(/[^a-zA-Z0-9_]/g, "_") : null) || useId().replace(/[^a-zA-Z0-9_]/g, "");
59
+ provide("shaderParentId", instanceId);
60
+ const DEFAULT_TRANSFORM = {
61
+ offsetX: 0,
62
+ offsetY: 0,
63
+ rotation: 0,
64
+ scale: 1,
65
+ anchorX: .5,
66
+ anchorY: .5,
67
+ edges: "transparent"
68
+ };
69
+ const effectiveTransform = computed(() => ({
70
+ ...DEFAULT_TRANSFORM,
71
+ ...props.transform
72
+ }));
73
+ const effectiveBoundingBox = computed(() => resolveBoundingBox(props.boundingBox));
74
+ const shaderReadyProps = computed(() => {
75
+ let baseProps = { ...Object.entries(componentDefinition.props).reduce((acc, [key, config]) => {
76
+ acc[key] = config.default;
77
+ return acc;
78
+ }, {}) };
79
+ for (const key in props) if (key !== "blendMode" && key !== "opacity" && key !== "visible" && key !== "id" && key !== "maskSource" && key !== "maskType" && key !== "renderOrder" && key !== "transform" && key !== "boundingBox" && key !== "flow" && key !== "absolute") {
80
+ const val = toValue(props[key]);
81
+ if (isPropDriver(val)) continue;
82
+ if (val !== Object.entries(componentDefinition.props).reduce((acc, [key$1, config]) => {
83
+ acc[key$1] = config.default;
84
+ return acc;
85
+ }, {})[key]) baseProps[key] = val;
86
+ }
87
+ return baseProps;
88
+ });
89
+ const mapsFromProps = computed(() => {
90
+ const maps = {};
91
+ for (const key of Object.keys(componentDefinition.props)) {
92
+ const val = props[key];
93
+ if (isPropDriver(val)) maps[key] = val;
94
+ }
95
+ return Object.keys(maps).length > 0 ? maps : void 0;
96
+ });
97
+ const shaderColorSpace = inject("shaderColorSpace");
98
+ if (shaderColorSpace) setColorSpaceMode(shaderColorSpace.value);
99
+ const uniforms = createGpuUniformsMap(componentDefinition, shaderReadyProps.value, instanceId);
100
+ const parentId = inject("shaderParentId");
101
+ if (parentId === void 0) throw new Error("Shader components must be used inside an <Shader> component or another shader component");
102
+ const parentRegister = inject("shaderNodeRegister");
103
+ if (parentRegister === void 0) throw new Error("Shader components must be used inside an <Shader> component or another shader component");
104
+ const parentUniformUpdate = inject("shaderUniformUpdate");
105
+ if (parentUniformUpdate === void 0) throw new Error("Shader components require shaderUniformUpdate from parent");
106
+ const parentMetadataUpdate = inject("shaderMetadataUpdate");
107
+ if (parentMetadataUpdate === void 0) throw new Error("Shader components require shaderMetadataUpdate from parent");
108
+ const rendererResetSignal = inject("shaderRendererResetSignal");
109
+ const orderMarker = ref(null);
110
+ const isCapturesDOM = !!componentDefinition.capturesDOM;
111
+ const captureCanvas = ref(null);
112
+ const captureW = ref(typeof window !== "undefined" ? Math.round(window.innerWidth * Math.min(window.devicePixelRatio, 2)) : 0);
113
+ const captureH = ref(typeof window !== "undefined" ? Math.round(window.innerHeight * Math.min(window.devicePixelRatio, 2)) : 0);
114
+ const captureStyle = {
115
+ position: "fixed",
116
+ inset: "0",
117
+ width: "100vw",
118
+ height: "100vh",
119
+ zIndex: "-9999"
120
+ };
121
+ if (isCapturesDOM) {
122
+ const onWinResize = () => {
123
+ const d = Math.min(window.devicePixelRatio, 2);
124
+ captureW.value = Math.round(window.innerWidth * d);
125
+ captureH.value = Math.round(window.innerHeight * d);
126
+ };
127
+ onMounted(() => {
128
+ const d = Math.min(window.devicePixelRatio, 2);
129
+ captureW.value = Math.round(window.innerWidth * d);
130
+ captureH.value = Math.round(window.innerHeight * d);
131
+ window.addEventListener("resize", onWinResize);
132
+ });
133
+ onBeforeUnmount(() => {
134
+ window.removeEventListener("resize", onWinResize);
135
+ });
136
+ }
137
+ let detectedRenderOrder = void 0;
138
+ const registerWithRenderer = () => {
139
+ parentRegister(instanceId, componentDefinition.fragment, parentId, {
140
+ blendMode: props.blendMode,
141
+ opacity: props.opacity,
142
+ visible: props.visible === false ? false : true,
143
+ id: props.id,
144
+ mask: props.maskSource ? {
145
+ source: props.maskSource,
146
+ type: props.maskType || "alpha"
147
+ } : void 0,
148
+ maps: mapsFromProps.value,
149
+ renderOrder: props.renderOrder ?? detectedRenderOrder,
150
+ transform: effectiveTransform.value,
151
+ boundingBox: effectiveBoundingBox.value,
152
+ flow: props.flow,
153
+ absolute: props.absolute
154
+ }, uniforms, componentDefinition, isCapturesDOM ? captureCanvas.value ?? void 0 : void 0);
155
+ };
156
+ onMounted(() => {
157
+ if (props.renderOrder === void 0 && orderMarker.value) {
158
+ const parent = orderMarker.value.parentElement;
159
+ if (parent) {
160
+ const siblings = parent.querySelectorAll(":scope > [data-shader-id]");
161
+ const position = Array.from(siblings).indexOf(orderMarker.value);
162
+ if (position >= 0) {
163
+ detectedRenderOrder = position;
164
+ parentMetadataUpdate(instanceId, { renderOrder: position });
165
+ }
166
+ }
167
+ }
168
+ });
169
+ const setupUniformWatchers = () => {
170
+ const scope = effectScope();
171
+ scope.run(() => {
172
+ Object.entries(uniforms).forEach(([propName, entry]) => {
173
+ watch(() => props[propName], (newValue) => {
174
+ if (entry && entry.value !== void 0 && !isPropDriver(newValue)) parentUniformUpdate(instanceId, propName, newValue);
175
+ }, { deep: true });
176
+ });
177
+ watch(() => [
178
+ props.blendMode,
179
+ props.opacity,
180
+ props.visible,
181
+ props.id,
182
+ props.maskSource,
183
+ props.maskType,
184
+ props.renderOrder,
185
+ props.transform,
186
+ props.boundingBox,
187
+ props.flow,
188
+ props.absolute,
189
+ mapsFromProps.value
190
+ ], ([blendMode, opacity, visible]) => {
191
+ parentMetadataUpdate(instanceId, {
192
+ blendMode,
193
+ opacity,
194
+ visible: visible === false ? false : true,
195
+ id: props.id,
196
+ mask: props.maskSource ? {
197
+ source: props.maskSource,
198
+ type: props.maskType || "alpha"
199
+ } : void 0,
200
+ maps: mapsFromProps.value,
201
+ renderOrder: props.renderOrder ?? detectedRenderOrder,
202
+ transform: effectiveTransform.value,
203
+ boundingBox: effectiveBoundingBox.value,
204
+ flow: props.flow,
205
+ absolute: props.absolute
206
+ });
207
+ }, { deep: true });
208
+ if (rendererResetSignal) watch(() => rendererResetSignal.value, (newValue) => {
209
+ if (newValue > 0) registerWithRenderer();
210
+ }, { immediate: true });
211
+ });
212
+ onBeforeUnmount(() => {
213
+ scope.stop();
214
+ });
215
+ };
216
+ if (isCapturesDOM) onMounted(() => {
217
+ setupUniformWatchers();
218
+ });
219
+ else setupUniformWatchers();
220
+ onBeforeUnmount(() => {
221
+ parentRegister(instanceId, null, null, null, null, null);
222
+ });
223
+ return (_ctx, _cache) => {
224
+ return openBlock(), createElementBlock(Fragment, null, [createElementVNode("span", {
225
+ ref_key: "orderMarker",
226
+ ref: orderMarker,
227
+ style: { "display": "contents" },
228
+ "data-shader-id": unref(instanceId)
229
+ }, [!isCapturesDOM ? renderSlot(_ctx.$slots, "default", { key: 0 }) : createCommentVNode("", true)], 8, _hoisted_1), isCapturesDOM ? (openBlock(), createBlock(Teleport, {
230
+ key: 0,
231
+ to: "body"
232
+ }, [createElementVNode("canvas", mergeProps({
233
+ ref_key: "captureCanvas",
234
+ ref: captureCanvas
235
+ }, { "layoutsubtree": "" }, {
236
+ width: captureW.value,
237
+ height: captureH.value,
238
+ style: captureStyle
239
+ }), [renderSlot(_ctx.$slots, "default")], 16, _hoisted_2)])) : createCommentVNode("", true)], 64);
240
+ };
241
+ }
242
+ });
243
+ export { Satin_vue_vue_type_script_setup_true_lang_default as default };