shaders 3.0.444 → 3.0.445

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 (411) hide show
  1. package/dist/cli.js +2 -2
  2. package/dist/core/{AngularBlur-D-tt4pvi.js → AngularBlur-D33jrcZd.js} +1 -1
  3. package/dist/core/{Arc-DrBTn2ft.js → Arc-BG8Bpknl.js} +1 -1
  4. package/dist/core/{Ascii-cHzx_Cgc.js → Ascii-DE0vAAOX.js} +1 -1
  5. package/dist/core/{Aurora-15z76vsc.js → Aurora-Cu4JGjCD.js} +2 -2
  6. package/dist/core/{BarShift-s7HgQwz5.js → BarShift-o_IvV0t_.js} +4 -4
  7. package/dist/core/{BarnDoors-CBzse00V.js → BarnDoors-JraHuTwe.js} +1 -1
  8. package/dist/core/{Beam-DZgWUuTC.js → Beam-DshQatlM.js} +1 -1
  9. package/dist/core/{Bend-CHTYK8SA.js → Bend-KJzYWEJV.js} +3 -3
  10. package/dist/core/{Blob-A8bKkEG1.js → Blob-BJxkqvOO.js} +2 -2
  11. package/dist/core/{BlockDissolve-Bb4aDV5s.js → BlockDissolve-CsIQWUpY.js} +1 -1
  12. package/dist/core/{BlockNoise-BnnsS95j.js → BlockNoise-DVI-0PnC.js} +3 -3
  13. package/dist/core/{BlueNoise-DTOarEL0.js → BlueNoise-CzBN6i38.js} +2 -2
  14. package/dist/core/{Blur-DEwHcGOu.js → Blur-W95k4Lxz.js} +1 -1
  15. package/dist/core/{Boids-BWJXVflR.js → Boids-BJ6wxFC8.js} +1 -1
  16. package/dist/core/{BokehBlur-pQJN6FFd.js → BokehBlur-CbOO__cN.js} +1 -1
  17. package/dist/core/{BrickPattern-Kwmx3pdx.js → BrickPattern-eQv5DrKE.js} +2 -2
  18. package/dist/core/{BrightnessContrast-CAkwN3s1.js → BrightnessContrast-CmH2DvaZ.js} +1 -1
  19. package/dist/core/{BrushedMetal-B4qfaTCf.js → BrushedMetal-D-7M7ZuM.js} +4 -4
  20. package/dist/core/{Bulge-CLBhicOs.js → Bulge-KmBnaVMx.js} +3 -3
  21. package/dist/core/{CRTScreen-Cj2H2mXK.js → CRTScreen-t7dyfO5u.js} +1 -1
  22. package/dist/core/{CarbonFiber-zA6_ZDg8.js → CarbonFiber-D4jap49E.js} +3 -3
  23. package/dist/core/{Chalkboard-DwkX3ZL3.js → Chalkboard-H6-0OXC3.js} +1 -1
  24. package/dist/core/{ChannelBlur-KHDU8WCn.js → ChannelBlur-BKJfnu91.js} +1 -1
  25. package/dist/core/{CheckerWipe-CNlqWp0y.js → CheckerWipe-acIaflfK.js} +1 -1
  26. package/dist/core/{Checkerboard-CvP8BKcu.js → Checkerboard-NwKMLVHe.js} +1 -1
  27. package/dist/core/{Chevron-BFmKhIws.js → Chevron-eBbFV2ud.js} +2 -2
  28. package/dist/core/{ChromaFlow-C8I4PtcP.js → ChromaFlow-ex7l4tTK.js} +1 -1
  29. package/dist/core/{ChromaticAberration-CGPfHEFI.js → ChromaticAberration-Bbi9vNxS.js} +1 -1
  30. package/dist/core/{Circle-ChmepdP_.js → Circle-DdFWEti1.js} +1 -1
  31. package/dist/core/{ColorWheel-D5V4ozig.js → ColorWheel-BqcyPqcj.js} +2 -2
  32. package/dist/core/{CompressionArtifacts--GdHELg8.js → CompressionArtifacts-DqWq-4h8.js} +1 -1
  33. package/dist/core/{ConcentricSpin-DIWQ80K5.js → ConcentricSpin-CtI1hKio.js} +4 -4
  34. package/dist/core/{ConicGradient-DjMQDAT6.js → ConicGradient-HmImN4LO.js} +2 -2
  35. package/dist/core/{ContourLines-Pq1zDmlf.js → ContourLines-BMom2vMu.js} +1 -1
  36. package/dist/core/{CornerPin-C-x2z8H5.js → CornerPin-D_-luriU.js} +2 -2
  37. package/dist/core/{Crescent-C6COUHa5.js → Crescent-CY6MeN9V.js} +1 -1
  38. package/dist/core/{Cross-Cgw13Sga.js → Cross-ClImej9a.js} +1 -1
  39. package/dist/core/{Crystal-RnN4Y5Tf.js → Crystal-CMrqHLFD.js} +3 -3
  40. package/dist/core/{CurlNoise-jaIscgOF.js → CurlNoise-C_QZBT5m.js} +3 -3
  41. package/dist/core/{CursorRipples-Gv0B1S-h.js → CursorRipples-Bmlex_IF.js} +1 -1
  42. package/dist/core/{CursorTrail-BMHsUYwx.js → CursorTrail-B68x1Cv-.js} +2 -2
  43. package/dist/core/{DataMosh-CaqYFxYA.js → DataMosh-FZQWg5Ui.js} +1 -1
  44. package/dist/core/{DiamondGradient-D388xLbc.js → DiamondGradient-C0hD1lNN.js} +2 -2
  45. package/dist/core/{DiamondWipe-BRXj3gon.js → DiamondWipe-B8rFSwsV.js} +1 -1
  46. package/dist/core/{DiffuseBlur-CM5Qy5JM.js → DiffuseBlur--Gn4bDwC.js} +1 -1
  47. package/dist/core/{DisplacementMap-Cr1fauBv.js → DisplacementMap-DQk8S4sK.js} +3 -3
  48. package/dist/core/{Dither-CubXhMES.js → Dither-rB9M7FS7.js} +1 -1
  49. package/dist/core/{DotGrid-D6We1dqv.js → DotGrid-DszAbmy5.js} +2 -2
  50. package/dist/core/{DropShadow-C8v9KJgy.js → DropShadow-BS3S178o.js} +1 -1
  51. package/dist/core/{Duotone-BfVi04d4.js → Duotone-Cf_ybegD.js} +1 -1
  52. package/dist/core/{Ellipse-fTV0CAVg.js → Ellipse-DY8FgSSx.js} +1 -1
  53. package/dist/core/{Emboss-BNhsz2v0.js → Emboss-RxgVyKyU.js} +3 -3
  54. package/dist/core/{Engraving-DYTr1YbV.js → Engraving-C0OuioUr.js} +1 -1
  55. package/dist/core/{ErosionNoise-CxsXwPPE.js → ErosionNoise-B-I3VFiY.js} +2 -2
  56. package/dist/core/{Exposure-DISAOzQ5.js → Exposure-360tdOrT.js} +1 -1
  57. package/dist/core/{FallingLines-DBGk9U7l.js → FallingLines-4sVKJMDj.js} +2 -2
  58. package/dist/core/{FilmGrain-Ban-r5as.js → FilmGrain-CgzuRidb.js} +1 -1
  59. package/dist/core/{FilmStock-BlOwC5zb.js → FilmStock-BW9k3EPE.js} +1 -1
  60. package/dist/core/{Flip-CAt9CFWn.js → Flip-DqdxtYHS.js} +1 -1
  61. package/dist/core/{FloatingParticles-Cppgg6I0.js → FloatingParticles-BI8Y9Gcv.js} +1 -1
  62. package/dist/core/{FlowField-b0PcB7MV.js → FlowField-CV0Is569.js} +4 -4
  63. package/dist/core/{Flower-iLK4UwZa.js → Flower-IaNzANoa.js} +1 -1
  64. package/dist/core/{FlowingGradient-CZc_z9cL.js → FlowingGradient-CEAAa11t.js} +2 -2
  65. package/dist/core/{FlutedGlass-DMl2A42x.js → FlutedGlass-CF6mZMq4.js} +2 -2
  66. package/dist/core/{Fog-BBc52yrL.js → Fog-D9OYGwhY.js} +1 -1
  67. package/dist/core/{Form3D-BqMINp_g.js → Form3D-CJKutcFA.js} +2 -2
  68. package/dist/core/{FractalNoise-BjGa9I7_.js → FractalNoise-DelBWQyb.js} +2 -2
  69. package/dist/core/{Frost-ttMO1uGc.js → Frost-Br7b9n4L.js} +4 -4
  70. package/dist/core/{GaborNoise-CSC24alr.js → GaborNoise-DViNgIse.js} +3 -3
  71. package/dist/core/{Glass-DHkb-2UB.js → Glass-IwPea9h1.js} +3 -3
  72. package/dist/core/{GlassTiles-CTSmg7gD.js → GlassTiles-DpPHPKv7.js} +3 -5
  73. package/dist/core/{Glitch-O5FZxlBV.js → Glitch-CKmX-agV.js} +1 -1
  74. package/dist/core/{Glow-Cj9SzOqq.js → Glow-CVcVetaa.js} +1 -1
  75. package/dist/core/{Godrays-XW1fNiSU.js → Godrays-CNNHJzNz.js} +2 -2
  76. package/dist/core/{Goo-Bc43zAec.js → Goo-BUXnhwTk.js} +4 -4
  77. package/dist/core/{GradientMap-BxSv1OOf.js → GradientMap-DqGEXRl9.js} +1 -1
  78. package/dist/core/{Grayscale-CNM0GlQN.js → Grayscale-DiJAjdx3.js} +1 -1
  79. package/dist/core/{Grid-reIQAyFU.js → Grid-utmP7uyR.js} +1 -1
  80. package/dist/core/{GridDistortion-tJym6OIr.js → GridDistortion-Bn6D5dfC.js} +2 -2
  81. package/dist/core/{Group-8iAuPA0-.js → Group-u-o7qE0Y.js} +1 -1
  82. package/dist/core/{HTMLInCanvas-CAHfLRAz.js → HTMLInCanvas-sK9HN-gI.js} +1 -1
  83. package/dist/core/{Halftone-Dlk16PsH.js → Halftone-C5La06l6.js} +1 -1
  84. package/dist/core/{Heart-C3Uas8c_.js → Heart-CGLx1F8D.js} +1 -1
  85. package/dist/core/{Heatmap-CE7IB_4g.js → Heatmap-CE5DLeJp.js} +4 -4
  86. package/dist/core/{HexGrid-BiXYpVNp.js → HexGrid-CqB-yMWN.js} +1 -1
  87. package/dist/core/{Hologram-BjKBncw8.js → Hologram-CctodmpA.js} +4 -4
  88. package/dist/core/{Holographic-CCTmTYXb.js → Holographic-DSz4qfkn.js} +4 -4
  89. package/dist/core/{HueShift-CE5RgaBc.js → HueShift-Cfq-ijQP.js} +1 -1
  90. package/dist/core/{ImageTexture-BrjlwuWY.js → ImageTexture-DdzAYFTi.js} +1 -1
  91. package/dist/core/{InkFlow-DS92HgM9.js → InkFlow-CCPfoQXs.js} +1 -1
  92. package/dist/core/{Invert-e1Z9IfPo.js → Invert-CtUHcYmv.js} +1 -1
  93. package/dist/core/{IrisWipe-CCK_EamC.js → IrisWipe-DWVFMn81.js} +1 -1
  94. package/dist/core/{IsometricCubes-BA-cN4bC.js → IsometricCubes-m-mYnbqN.js} +1 -1
  95. package/dist/core/{Kaleidoscope-Cin7yxd7.js → Kaleidoscope-DMNLVgx6.js} +3 -3
  96. package/dist/core/{KeyFrames-D4-678xR.js → KeyFrames-jgrfR3Hj.js} +1 -1
  97. package/dist/core/{LensFlare-UNNiSfiz.js → LensFlare-CuWJsfwE.js} +2 -2
  98. package/dist/core/{LightEdge-GUFdnqjh.js → LightEdge-WMxb-xKB.js} +4 -4
  99. package/dist/core/{LightLeak-DWv0ec7B.js → LightLeak-DfOngFp7.js} +2 -2
  100. package/dist/core/{LinearBlur-DBKjOKVV.js → LinearBlur-iLXYGof_.js} +1 -1
  101. package/dist/core/{LinearGradient--Vy79Fs_.js → LinearGradient-DLrJban6.js} +2 -2
  102. package/dist/core/{LinearWipe-PZcYib77.js → LinearWipe-C_fWBl4i.js} +1 -1
  103. package/dist/core/{LiquidMetal-cUxfJdju.js → LiquidMetal-DHM8kVNr.js} +4 -4
  104. package/dist/core/{Liquify-B1o-_MJZ.js → Liquify-FQWL8j4t.js} +3 -3
  105. package/dist/core/{MagneticFilings-B1Qvnw6t.js → MagneticFilings-BUzSkycD.js} +1 -1
  106. package/dist/core/{Marble-CD5fqEce.js → Marble-BnHffB3C.js} +2 -2
  107. package/dist/core/{Mirror-QJoYnzu6.js → Mirror-B_v4FunG.js} +2 -2
  108. package/dist/core/{MultiPointGradient-CLRPS8u7.js → MultiPointGradient-5NGBm90u.js} +1 -1
  109. package/dist/core/{Neon-DAPbLlBN.js → Neon-BjBSg2FR.js} +3 -3
  110. package/dist/core/{NoiseDissolve-jdMIvdYS.js → NoiseDissolve-kDP6-h9F.js} +1 -1
  111. package/dist/core/{ObjectTracker-BD_l_g6R.js → ObjectTracker-vU1bVmIJ.js} +1 -1
  112. package/dist/core/{PagePeel-YyWAE0am.js → PagePeel-BgDvgtIV.js} +1 -1
  113. package/dist/core/{Paper-DOFhG3gq.js → Paper-_alN4JdS.js} +1 -1
  114. package/dist/core/{Parallelogram-CKlvs9a_.js → Parallelogram--Cil139y.js} +1 -1
  115. package/dist/core/{ParticleField-R--x794f.js → ParticleField-DZ7um7tu.js} +1 -1
  116. package/dist/core/{ParticleFlow-DY8g2n2d.js → ParticleFlow-CmRP2S8W.js} +1 -1
  117. package/dist/core/{Particles-D6-MCj-7.js → Particles-DFw2E9SE.js} +2 -2
  118. package/dist/core/{PerlinNoise-DKBJst5k.js → PerlinNoise-BmNpwJtM.js} +3 -3
  119. package/dist/core/{Perspective-DH5aV7fh.js → Perspective-DVcUW7jR.js} +3 -3
  120. package/dist/core/{PixelSort-DRd4GE4_.js → PixelSort-Bz5dIrqH.js} +1 -1
  121. package/dist/core/{PixelThrow-CRizzpOr.js → PixelThrow-DEMX8VOw.js} +1 -1
  122. package/dist/core/{Pixelate-DgPtCErp.js → Pixelate-D-eWrHTE.js} +1 -1
  123. package/dist/core/{Plasma-8zXLjhIr.js → Plasma-C_EIkpQi.js} +2 -2
  124. package/dist/core/{Plastic-Dv-N6_Nv.js → Plastic-CYeefb91.js} +4 -4
  125. package/dist/core/{PolarCoordinates-lw0yBeJq.js → PolarCoordinates-DmpUBdGX.js} +2 -2
  126. package/dist/core/{Polygon-DQxmxfqr.js → Polygon-DEEUdZd6.js} +1 -1
  127. package/dist/core/{Posterize-C4qpmou-.js → Posterize-B8oVbNZL.js} +1 -1
  128. package/dist/core/{Prism-C0qW3WgL.js → Prism-Btijlm0t.js} +2 -2
  129. package/dist/core/{ProgressiveBlur-C_xtFzmP.js → ProgressiveBlur-BoRFh6Tn.js} +1 -1
  130. package/dist/core/{RadialGradient-DetBcKps.js → RadialGradient-CNDiMPZM.js} +2 -2
  131. package/dist/core/{RadialWipe-Cmv05uxE.js → RadialWipe-C213vCrJ.js} +1 -1
  132. package/dist/core/{RandomBars-CrPfWF8l.js → RandomBars-hOY9hNS7.js} +1 -1
  133. package/dist/core/{ReactionDiffusion-Dc_uVKMg.js → ReactionDiffusion--UjME4_r.js} +1 -1
  134. package/dist/core/{RectangularCoordinates-C1sbpWlI.js → RectangularCoordinates-DB7rPJ2Z.js} +2 -2
  135. package/dist/core/{ReflectivePlane-DyTDDfvN.js → ReflectivePlane-D92GjNLR.js} +1 -1
  136. package/dist/core/{Repeater-CzvIt5Gw.js → Repeater-CJjylN6O.js} +1 -1
  137. package/dist/core/{Ring-6gd4orX0.js → Ring-CJYQP2Qm.js} +1 -1
  138. package/dist/core/{RippleWipe-BU-dDvBK.js → RippleWipe-DJlrObO0.js} +1 -1
  139. package/dist/core/{Ripples-D7Y__Ls8.js → Ripples-Brj67b7H.js} +2 -2
  140. package/dist/core/{RoundedRect-DMzr6z4F.js → RoundedRect-3vfFsHAl.js} +1 -1
  141. package/dist/core/{Saturation-BZ5ZmmKo.js → Saturation-lx3DV3Up.js} +1 -1
  142. package/dist/core/{Scratches-wRRWI1-5.js → Scratches-CMFr8AfL.js} +3 -3
  143. package/dist/core/{Sharpness-BQu_GeV6.js → Sharpness-ByZbUAd0.js} +1 -1
  144. package/dist/core/{Shatter-HTHPxq07.js → Shatter-B1_rLacw.js} +1 -1
  145. package/dist/core/{SimplexNoise-arMv2IxX.js → SimplexNoise-zItLLG1j.js} +2 -2
  146. package/dist/core/{SineWave-crFYxXPS.js → SineWave-BvrhRcvv.js} +2 -2
  147. package/dist/core/{SliceWipe-D-Rnm4ce.js → SliceWipe-9bUWTClo.js} +1 -1
  148. package/dist/core/{Smoke-Cyjm_hFb.js → Smoke-YixCTJbh.js} +2 -2
  149. package/dist/core/{SmokeFill-CMBAFeM8.js → SmokeFill-Cccbyi4g.js} +3 -3
  150. package/dist/core/{SmokeFlow-DfytXLC4.js → SmokeFlow-DJ3sQPH1.js} +2 -2
  151. package/dist/core/{Solarize-BNuZoWV5.js → Solarize-CZeTsJG8.js} +1 -1
  152. package/dist/core/{Spherize-LIfupaEj.js → Spherize-BdYP0Auv.js} +2 -2
  153. package/dist/core/{Spiral-B-Kz6zOG.js → Spiral-PPqgFMRM.js} +2 -2
  154. package/dist/core/{Star-Bxi6VOuZ.js → Star-mgLhY4e_.js} +1 -1
  155. package/dist/core/{Stone-CrdhdOWf.js → Stone-CehIcoVu.js} +1 -1
  156. package/dist/core/{Strands-CgOVvjKk.js → Strands-Dzj-5h31.js} +2 -2
  157. package/dist/core/{Stretch-CWpqkWdT.js → Stretch-C82iJhQu.js} +3 -3
  158. package/dist/core/{Stripes-DnmkVdJi.js → Stripes-C3XL9mWC.js} +2 -2
  159. package/dist/core/{StudioBackground-BR7HA0ot.js → StudioBackground-CDpLmvMH.js} +2 -2
  160. package/dist/core/{SunBurst-2tbvTvoR.js → SunBurst-fFeTV8O4.js} +2 -2
  161. package/dist/core/{Surface3D-BDN9t6UU.js → Surface3D-BFGuR3YZ.js} +1 -1
  162. package/dist/core/{Swirl-BO63keY-.js → Swirl-DGZs_YDx.js} +2 -2
  163. package/dist/core/{Teardrop-Cj9wbWNj.js → Teardrop-DN7t-3HU.js} +1 -1
  164. package/dist/core/{Text-DDpqrXsw.js → Text-DuQnSDiW.js} +4 -3
  165. package/dist/core/{ThinFilm-Cfx6eANY.js → ThinFilm-DhQXCGw9.js} +3 -3
  166. package/dist/core/{TiltShift-DtDGS05n.js → TiltShift-CpHBxw5I.js} +1 -1
  167. package/dist/core/{TimeTrail-CH7CMyxo.js → TimeTrail-j89dMqNU.js} +1 -1
  168. package/dist/core/{Tint-RTSV6Aiu.js → Tint-WmBROyUm.js} +1 -1
  169. package/dist/core/{Trapezoid-B8YUl-8U.js → Trapezoid-RrEwHfyH.js} +1 -1
  170. package/dist/core/{TriangularGrid-B_P_Bn6J.js → TriangularGrid-D7r3Nhss.js} +2 -2
  171. package/dist/core/{Tritone-zbDA_LBO.js → Tritone-BREi33uL.js} +1 -1
  172. package/dist/core/{Truchet-QdRvWfkQ.js → Truchet-CTjP4x60.js} +1 -1
  173. package/dist/core/{Twirl-M1ylLxnB.js → Twirl-Bvk8-3JT.js} +3 -3
  174. package/dist/core/{VHS-BbpH5MH8.js → VHS-et86dWDU.js} +1 -1
  175. package/dist/core/{VenetianBlinds-DyBouRcb.js → VenetianBlinds-Bv0f2lFw.js} +1 -1
  176. package/dist/core/{Vesica-DYkOtRW9.js → Vesica-BV2Sz5VV.js} +1 -1
  177. package/dist/core/{Vibrance-DYCb_3Vb.js → Vibrance-Q9Mrvfs-.js} +1 -1
  178. package/dist/core/{VideoTexture-B5QB_7wK.js → VideoTexture-BUY69Gqp.js} +1 -1
  179. package/dist/core/{Vignette-CWNEqMe7.js → Vignette-DyScJQWj.js} +1 -1
  180. package/dist/core/{Voronoi-DJIf5qyN.js → Voronoi-DxoT7iRa.js} +2 -2
  181. package/dist/core/{Water-D7FpFPfD.js → Water-CE1rY4LR.js} +4 -4
  182. package/dist/core/{Watercolor-B4bOV2pY.js → Watercolor-Buk5FkKR.js} +1 -1
  183. package/dist/core/{WaveDistortion-C9K0iLOy.js → WaveDistortion-Ca6y77xt.js} +4 -4
  184. package/dist/core/{WaveletNoise-MxVl5SGH.js → WaveletNoise-Y7LdptK_.js} +3 -3
  185. package/dist/core/{Weave-DMvmkoDF.js → Weave-CTpPvAhK.js} +1 -1
  186. package/dist/core/{WebcamTexture-ylP8AAV1.js → WebcamTexture-85gdzpo_.js} +1 -1
  187. package/dist/core/{Wool-DKuYNXvU.js → Wool-DJJkx7S2.js} +1 -1
  188. package/dist/core/{WorleyNoise-C-8TphM9.js → WorleyNoise-C_CHhfMF.js} +2 -2
  189. package/dist/core/{ZoomBlur-BxPekTQP.js → ZoomBlur-8tmVWx1n.js} +1 -1
  190. package/dist/core/{coords-CLqRuQwC.js → coords-BkIjixe_.js} +709 -41
  191. package/dist/core/{glass-BLc74dQi.js → glass-sOqjtPJD.js} +1 -1
  192. package/dist/core/gpu/composer.d.ts +7 -0
  193. package/dist/core/gpu/composer.d.ts.map +1 -1
  194. package/dist/core/gpu/index.d.ts.map +1 -1
  195. package/dist/core/gpu/kit/edges.d.ts +19 -1
  196. package/dist/core/gpu/kit/edges.d.ts.map +1 -1
  197. package/dist/core/gpu/kit/index.d.ts +1 -0
  198. package/dist/core/gpu/kit/index.d.ts.map +1 -1
  199. package/dist/core/gpu/kit/sampling.d.ts +34 -0
  200. package/dist/core/gpu/kit/sampling.d.ts.map +1 -0
  201. package/dist/core/gpu/kit/uvTransform.d.ts +13 -3
  202. package/dist/core/gpu/kit/uvTransform.d.ts.map +1 -1
  203. package/dist/core/index.js +201 -236
  204. package/dist/core/{noiseColor-CFYtKwDd.js → noiseColor-CY6QVFgB.js} +1 -1
  205. package/dist/core/{porters-u50QU6Yv.js → porters-Bl3WB9VW.js} +1 -1
  206. package/dist/core/presetRenderer.d.ts.map +1 -1
  207. package/dist/core/registry.js +194 -194
  208. package/dist/core/shaderRegistry-CSTwovjI.js +425 -0
  209. package/dist/core/shaders/AngularBlur/index.js +3 -3
  210. package/dist/core/shaders/Arc/index.js +3 -3
  211. package/dist/core/shaders/Ascii/index.js +3 -3
  212. package/dist/core/shaders/Aurora/index.js +3 -3
  213. package/dist/core/shaders/BarShift/index.js +3 -3
  214. package/dist/core/shaders/BarnDoors/index.js +3 -3
  215. package/dist/core/shaders/Beam/index.js +3 -3
  216. package/dist/core/shaders/Bend/index.js +3 -3
  217. package/dist/core/shaders/Blob/index.js +3 -3
  218. package/dist/core/shaders/BlockDissolve/index.js +3 -3
  219. package/dist/core/shaders/BlockNoise/index.js +4 -4
  220. package/dist/core/shaders/BlueNoise/index.js +4 -4
  221. package/dist/core/shaders/Blur/index.js +3 -3
  222. package/dist/core/shaders/Boids/index.js +3 -3
  223. package/dist/core/shaders/BokehBlur/index.js +3 -3
  224. package/dist/core/shaders/BrickPattern/index.js +3 -3
  225. package/dist/core/shaders/BrightnessContrast/index.js +3 -3
  226. package/dist/core/shaders/BrushedMetal/index.js +5 -5
  227. package/dist/core/shaders/Bulge/index.js +3 -3
  228. package/dist/core/shaders/CRTScreen/index.js +3 -3
  229. package/dist/core/shaders/CarbonFiber/index.js +5 -5
  230. package/dist/core/shaders/Chalkboard/index.js +3 -3
  231. package/dist/core/shaders/ChannelBlur/index.js +3 -3
  232. package/dist/core/shaders/CheckerWipe/index.js +3 -3
  233. package/dist/core/shaders/Checkerboard/index.js +3 -3
  234. package/dist/core/shaders/Chevron/index.js +3 -3
  235. package/dist/core/shaders/ChromaFlow/index.js +3 -3
  236. package/dist/core/shaders/ChromaticAberration/index.js +3 -3
  237. package/dist/core/shaders/Circle/index.js +3 -3
  238. package/dist/core/shaders/ColorWheel/index.js +3 -3
  239. package/dist/core/shaders/CompressionArtifacts/index.js +3 -3
  240. package/dist/core/shaders/ConcentricSpin/index.js +3 -3
  241. package/dist/core/shaders/ConicGradient/index.js +3 -3
  242. package/dist/core/shaders/ContourLines/index.js +3 -3
  243. package/dist/core/shaders/CornerPin/index.js +3 -3
  244. package/dist/core/shaders/Crescent/index.js +3 -3
  245. package/dist/core/shaders/Cross/index.js +3 -3
  246. package/dist/core/shaders/Crystal/index.js +5 -5
  247. package/dist/core/shaders/CurlNoise/index.js +4 -4
  248. package/dist/core/shaders/CursorRipples/index.js +3 -3
  249. package/dist/core/shaders/CursorTrail/index.js +3 -3
  250. package/dist/core/shaders/DataMosh/index.js +3 -3
  251. package/dist/core/shaders/DiamondGradient/index.js +3 -3
  252. package/dist/core/shaders/DiamondWipe/index.js +3 -3
  253. package/dist/core/shaders/DiffuseBlur/index.js +3 -3
  254. package/dist/core/shaders/DisplacementMap/index.js +3 -3
  255. package/dist/core/shaders/Dither/index.js +3 -3
  256. package/dist/core/shaders/DotGrid/index.js +3 -3
  257. package/dist/core/shaders/DropShadow/index.js +3 -3
  258. package/dist/core/shaders/Duotone/index.js +3 -3
  259. package/dist/core/shaders/Ellipse/index.js +3 -3
  260. package/dist/core/shaders/Emboss/index.js +5 -5
  261. package/dist/core/shaders/Engraving/index.js +3 -3
  262. package/dist/core/shaders/ErosionNoise/index.js +4 -4
  263. package/dist/core/shaders/Exposure/index.js +3 -3
  264. package/dist/core/shaders/FallingLines/index.js +3 -3
  265. package/dist/core/shaders/FilmGrain/index.js +3 -3
  266. package/dist/core/shaders/FilmStock/index.js +3 -3
  267. package/dist/core/shaders/Flip/index.js +3 -3
  268. package/dist/core/shaders/FloatingParticles/index.js +3 -3
  269. package/dist/core/shaders/FlowField/index.js +3 -3
  270. package/dist/core/shaders/Flower/index.js +3 -3
  271. package/dist/core/shaders/FlowingGradient/index.js +3 -3
  272. package/dist/core/shaders/FlutedGlass/index.js +3 -3
  273. package/dist/core/shaders/Fog/index.js +3 -3
  274. package/dist/core/shaders/Form3D/index.js +3 -3
  275. package/dist/core/shaders/FractalNoise/index.js +3 -3
  276. package/dist/core/shaders/Frost/index.js +5 -5
  277. package/dist/core/shaders/GaborNoise/index.js +4 -4
  278. package/dist/core/shaders/Glass/index.js +5 -5
  279. package/dist/core/shaders/GlassTiles/index.d.ts.map +1 -1
  280. package/dist/core/shaders/GlassTiles/index.js +3 -3
  281. package/dist/core/shaders/Glitch/index.js +3 -3
  282. package/dist/core/shaders/Glow/index.js +3 -3
  283. package/dist/core/shaders/Godrays/index.js +3 -3
  284. package/dist/core/shaders/Goo/index.js +5 -5
  285. package/dist/core/shaders/GradientMap/index.js +3 -3
  286. package/dist/core/shaders/Grayscale/index.js +3 -3
  287. package/dist/core/shaders/Grid/index.js +3 -3
  288. package/dist/core/shaders/GridDistortion/index.js +3 -3
  289. package/dist/core/shaders/Group/index.js +3 -3
  290. package/dist/core/shaders/HTMLInCanvas/index.js +3 -3
  291. package/dist/core/shaders/Halftone/index.js +3 -3
  292. package/dist/core/shaders/Heart/index.js +3 -3
  293. package/dist/core/shaders/Heatmap/index.js +5 -5
  294. package/dist/core/shaders/HexGrid/index.js +3 -3
  295. package/dist/core/shaders/Hologram/index.js +5 -5
  296. package/dist/core/shaders/Holographic/index.js +5 -5
  297. package/dist/core/shaders/HueShift/index.js +3 -3
  298. package/dist/core/shaders/ImageTexture/index.js +3 -3
  299. package/dist/core/shaders/InkFlow/index.js +3 -3
  300. package/dist/core/shaders/Invert/index.js +3 -3
  301. package/dist/core/shaders/IrisWipe/index.js +3 -3
  302. package/dist/core/shaders/IsometricCubes/index.js +3 -3
  303. package/dist/core/shaders/Kaleidoscope/index.js +3 -3
  304. package/dist/core/shaders/KeyFrames/index.js +3 -3
  305. package/dist/core/shaders/LensFlare/index.js +3 -3
  306. package/dist/core/shaders/LightEdge/index.js +5 -5
  307. package/dist/core/shaders/LightLeak/index.js +3 -3
  308. package/dist/core/shaders/LinearBlur/index.js +3 -3
  309. package/dist/core/shaders/LinearGradient/index.js +3 -3
  310. package/dist/core/shaders/LinearWipe/index.js +3 -3
  311. package/dist/core/shaders/LiquidMetal/index.js +5 -5
  312. package/dist/core/shaders/Liquify/index.js +3 -3
  313. package/dist/core/shaders/MagneticFilings/index.js +3 -3
  314. package/dist/core/shaders/Marble/index.js +3 -3
  315. package/dist/core/shaders/Mirror/index.js +3 -3
  316. package/dist/core/shaders/MultiPointGradient/index.js +3 -3
  317. package/dist/core/shaders/Neon/index.js +4 -4
  318. package/dist/core/shaders/NoiseDissolve/index.js +3 -3
  319. package/dist/core/shaders/ObjectTracker/index.js +3 -3
  320. package/dist/core/shaders/PagePeel/index.js +3 -3
  321. package/dist/core/shaders/Paper/index.js +3 -3
  322. package/dist/core/shaders/Parallelogram/index.js +3 -3
  323. package/dist/core/shaders/ParticleField/index.js +3 -3
  324. package/dist/core/shaders/ParticleFlow/index.js +3 -3
  325. package/dist/core/shaders/Particles/index.js +4 -4
  326. package/dist/core/shaders/PerlinNoise/index.js +4 -4
  327. package/dist/core/shaders/Perspective/index.js +3 -3
  328. package/dist/core/shaders/PixelSort/index.js +3 -3
  329. package/dist/core/shaders/PixelThrow/index.js +3 -3
  330. package/dist/core/shaders/Pixelate/index.js +3 -3
  331. package/dist/core/shaders/Plasma/index.js +3 -3
  332. package/dist/core/shaders/Plastic/index.js +5 -5
  333. package/dist/core/shaders/PolarCoordinates/index.js +3 -3
  334. package/dist/core/shaders/Polygon/index.js +3 -3
  335. package/dist/core/shaders/Posterize/index.js +3 -3
  336. package/dist/core/shaders/Prism/index.js +3 -3
  337. package/dist/core/shaders/ProgressiveBlur/index.js +3 -3
  338. package/dist/core/shaders/RadialGradient/index.js +3 -3
  339. package/dist/core/shaders/RadialWipe/index.js +3 -3
  340. package/dist/core/shaders/RandomBars/index.js +3 -3
  341. package/dist/core/shaders/ReactionDiffusion/index.js +3 -3
  342. package/dist/core/shaders/RectangularCoordinates/index.js +3 -3
  343. package/dist/core/shaders/ReflectivePlane/index.js +3 -3
  344. package/dist/core/shaders/Repeater/index.js +3 -3
  345. package/dist/core/shaders/Ring/index.js +3 -3
  346. package/dist/core/shaders/RippleWipe/index.js +3 -3
  347. package/dist/core/shaders/Ripples/index.js +3 -3
  348. package/dist/core/shaders/RoundedRect/index.js +3 -3
  349. package/dist/core/shaders/Saturation/index.js +3 -3
  350. package/dist/core/shaders/Scratches/index.js +4 -4
  351. package/dist/core/shaders/Sharpness/index.js +3 -3
  352. package/dist/core/shaders/Shatter/index.js +3 -3
  353. package/dist/core/shaders/SimplexNoise/index.js +3 -3
  354. package/dist/core/shaders/SineWave/index.js +3 -3
  355. package/dist/core/shaders/SliceWipe/index.js +3 -3
  356. package/dist/core/shaders/Smoke/index.js +3 -3
  357. package/dist/core/shaders/SmokeFill/index.js +5 -5
  358. package/dist/core/shaders/SmokeFlow/index.js +3 -3
  359. package/dist/core/shaders/Solarize/index.js +3 -3
  360. package/dist/core/shaders/Spherize/index.d.ts.map +1 -1
  361. package/dist/core/shaders/Spherize/index.js +3 -3
  362. package/dist/core/shaders/Spiral/index.js +3 -3
  363. package/dist/core/shaders/Star/index.js +3 -3
  364. package/dist/core/shaders/Stone/index.js +2 -2
  365. package/dist/core/shaders/Strands/index.js +3 -3
  366. package/dist/core/shaders/Stretch/index.js +3 -3
  367. package/dist/core/shaders/Stripes/index.js +3 -3
  368. package/dist/core/shaders/StudioBackground/index.js +3 -3
  369. package/dist/core/shaders/SunBurst/index.js +3 -3
  370. package/dist/core/shaders/Surface3D/index.js +3 -3
  371. package/dist/core/shaders/Swirl/index.js +3 -3
  372. package/dist/core/shaders/Teardrop/index.js +3 -3
  373. package/dist/core/shaders/Text/index.d.ts.map +1 -1
  374. package/dist/core/shaders/Text/index.js +3 -3
  375. package/dist/core/shaders/ThinFilm/index.js +4 -4
  376. package/dist/core/shaders/TiltShift/index.js +3 -3
  377. package/dist/core/shaders/TimeTrail/index.js +3 -3
  378. package/dist/core/shaders/Tint/index.js +3 -3
  379. package/dist/core/shaders/Trapezoid/index.js +3 -3
  380. package/dist/core/shaders/TriangularGrid/index.js +3 -3
  381. package/dist/core/shaders/Tritone/index.js +3 -3
  382. package/dist/core/shaders/Truchet/index.js +3 -3
  383. package/dist/core/shaders/Twirl/index.js +3 -3
  384. package/dist/core/shaders/VHS/index.js +3 -3
  385. package/dist/core/shaders/VenetianBlinds/index.js +3 -3
  386. package/dist/core/shaders/Vesica/index.js +3 -3
  387. package/dist/core/shaders/Vibrance/index.js +3 -3
  388. package/dist/core/shaders/VideoTexture/index.js +3 -3
  389. package/dist/core/shaders/Vignette/index.js +3 -3
  390. package/dist/core/shaders/Voronoi/index.js +3 -3
  391. package/dist/core/shaders/Water/index.js +5 -5
  392. package/dist/core/shaders/Watercolor/index.js +3 -3
  393. package/dist/core/shaders/WaveDistortion/index.js +3 -3
  394. package/dist/core/shaders/WaveletNoise/index.js +4 -4
  395. package/dist/core/shaders/Weave/index.js +3 -3
  396. package/dist/core/shaders/WebcamTexture/index.js +3 -3
  397. package/dist/core/shaders/Wool/index.js +2 -2
  398. package/dist/core/shaders/WorleyNoise/index.js +3 -3
  399. package/dist/core/shaders/ZoomBlur/index.js +3 -3
  400. package/dist/core/{shapeEffectBounds-DIjA_-15.js → shapeEffectBounds-Cl58vRlg.js} +1 -1
  401. package/dist/core/utilities/boundingBox.d.ts +14 -0
  402. package/dist/core/utilities/boundingBox.d.ts.map +1 -1
  403. package/dist/js/bundle.js +151 -151
  404. package/dist/js/createShader.js +1 -1
  405. package/dist/react/Shader.js +1 -1
  406. package/dist/react/bundle.js +152 -152
  407. package/dist/solid/engine/Shader.js +1 -1
  408. package/dist/svelte/index.js +1 -1
  409. package/dist/vue/Shader.vue_vue_type_script_setup_true_lang.js +1 -1
  410. package/package.json +1 -1
  411. package/dist/core/shaderRegistry-QNzuz_fH.js +0 -425
@@ -11780,8 +11780,9 @@ const applyRectangularClipMask = tgpu$1.fn([
11780
11780
  d.f32,
11781
11781
  d.f32,
11782
11782
  d.f32,
11783
+ d.f32,
11783
11784
  d.f32
11784
- ], d.f32)(/* @__PURE__ */ (($) => (globalThis.__TYPEGPU_META__ ??= /* @__PURE__ */ new WeakMap()).set($.f = ((uv, centerX, centerY, halfWidth, halfHeight, cornerRadius, rotation, aspectRatio) => {
11785
+ ], d.f32)(/* @__PURE__ */ (($) => (globalThis.__TYPEGPU_META__ ??= /* @__PURE__ */ new WeakMap()).set($.f = ((uv, centerX, centerY, halfWidth, halfHeight, cornerRadius, rotation, aspectRatio, aaFeather) => {
11785
11786
  "use gpu";
11786
11787
  const centeredX = __tsover_sub(uv.x, centerX);
11787
11788
  const centeredY = __tsover_sub(uv.y, centerY);
@@ -11800,7 +11801,10 @@ const applyRectangularClipMask = tgpu$1.fn([
11800
11801
  const qy = __tsover_sub(std.abs(rotatedY), innerHalfH);
11801
11802
  const qClamped = d.vec2f(std.max(qx, 0), std.max(qy, 0));
11802
11803
  const sdf = __tsover_sub(__tsover_add(std.length(qClamped), std.min(std.max(qx, qy), 0)), cornerRadius);
11803
- return std.select(d.f32(0), d.f32(1), sdf <= 0);
11804
+ const feather = std.max(aaFeather, 1e-7);
11805
+ const ramp = __tsover_sub(1, std.smoothstep(-feather, feather, sdf));
11806
+ const binary = std.select(d.f32(0), d.f32(1), sdf <= 0);
11807
+ return std.select(ramp, binary, aaFeather <= 0);
11804
11808
  }), {
11805
11809
  v: 1,
11806
11810
  name: void 0,
@@ -11837,6 +11841,10 @@ const applyRectangularClipMask = tgpu$1.fn([
11837
11841
  {
11838
11842
  "type": "i",
11839
11843
  "name": "aspectRatio"
11844
+ },
11845
+ {
11846
+ "type": "i",
11847
+ "name": "aaFeather"
11840
11848
  }
11841
11849
  ],
11842
11850
  "body": [0, [
@@ -12111,35 +12119,96 @@ const applyRectangularClipMask = tgpu$1.fn([
12111
12119
  "cornerRadius"
12112
12120
  ]
12113
12121
  ],
12114
- [10, [
12115
- 6,
12122
+ [
12123
+ 13,
12124
+ "feather",
12116
12125
  [
12117
- 7,
12118
- "std",
12119
- "select"
12120
- ],
12126
+ 6,
12127
+ [
12128
+ 7,
12129
+ "std",
12130
+ "max"
12131
+ ],
12132
+ ["aaFeather", [5, "1e-7"]]
12133
+ ]
12134
+ ],
12135
+ [
12136
+ 13,
12137
+ "ramp",
12121
12138
  [
12139
+ 1,
12140
+ [5, "1"],
12141
+ "-",
12122
12142
  [
12123
12143
  6,
12124
12144
  [
12125
12145
  7,
12126
- "d",
12127
- "f32"
12146
+ "std",
12147
+ "smoothstep"
12128
12148
  ],
12129
- [[5, "0"]]
12149
+ [
12150
+ [
12151
+ 4,
12152
+ "-",
12153
+ "feather"
12154
+ ],
12155
+ "feather",
12156
+ "sdf"
12157
+ ]
12158
+ ]
12159
+ ]
12160
+ ],
12161
+ [
12162
+ 13,
12163
+ "binary",
12164
+ [
12165
+ 6,
12166
+ [
12167
+ 7,
12168
+ "std",
12169
+ "select"
12130
12170
  ],
12131
12171
  [
12132
- 6,
12133
12172
  [
12134
- 7,
12135
- "d",
12136
- "f32"
12173
+ 6,
12174
+ [
12175
+ 7,
12176
+ "d",
12177
+ "f32"
12178
+ ],
12179
+ [[5, "0"]]
12137
12180
  ],
12138
- [[5, "1"]]
12139
- ],
12181
+ [
12182
+ 6,
12183
+ [
12184
+ 7,
12185
+ "d",
12186
+ "f32"
12187
+ ],
12188
+ [[5, "1"]]
12189
+ ],
12190
+ [
12191
+ 1,
12192
+ "sdf",
12193
+ "<=",
12194
+ [5, "0"]
12195
+ ]
12196
+ ]
12197
+ ]
12198
+ ],
12199
+ [10, [
12200
+ 6,
12201
+ [
12202
+ 7,
12203
+ "std",
12204
+ "select"
12205
+ ],
12206
+ [
12207
+ "ramp",
12208
+ "binary",
12140
12209
  [
12141
12210
  1,
12142
- "sdf",
12211
+ "aaFeather",
12143
12212
  "<=",
12144
12213
  [5, "0"]
12145
12214
  ]
@@ -12457,6 +12526,48 @@ const screenUVToBoxLocal = (sx, sy, g) => {
12457
12526
  y: ry / (2 * hhSq) + .5
12458
12527
  };
12459
12528
  };
12529
+ const DEFAULT_BOUNDING_BOX = {
12530
+ x: {
12531
+ value: 0,
12532
+ unit: "uv"
12533
+ },
12534
+ y: {
12535
+ value: 0,
12536
+ unit: "uv"
12537
+ },
12538
+ width: {
12539
+ value: 1,
12540
+ unit: "uv"
12541
+ },
12542
+ height: {
12543
+ value: 1,
12544
+ unit: "uv"
12545
+ },
12546
+ origin: "top-left",
12547
+ rotation: 0
12548
+ };
12549
+ function resolveBoundingBox(bbox) {
12550
+ if (!bbox || typeof bbox !== "object") return void 0;
12551
+ const dim = (d$1, fallback) => d$1 && typeof d$1 === "object" ? {
12552
+ value: d$1.value ?? fallback.value,
12553
+ unit: d$1.unit ?? fallback.unit
12554
+ } : { ...fallback };
12555
+ return {
12556
+ x: dim(bbox.x, DEFAULT_BOUNDING_BOX.x),
12557
+ y: dim(bbox.y, DEFAULT_BOUNDING_BOX.y),
12558
+ width: dim(bbox.width, DEFAULT_BOUNDING_BOX.width),
12559
+ height: dim(bbox.height, DEFAULT_BOUNDING_BOX.height),
12560
+ origin: bbox.origin ?? "top-left",
12561
+ rotation: bbox.rotation ?? 0,
12562
+ ...bbox.cornerRadius ? { cornerRadius: bbox.cornerRadius } : {},
12563
+ ...bbox.lockAspect !== void 0 ? { lockAspect: bbox.lockAspect } : {}
12564
+ };
12565
+ }
12566
+ function isIdentityBoundingBox(bbox) {
12567
+ if (!bbox || typeof bbox !== "object") return false;
12568
+ const isUV = (d$1, value) => !!d$1 && d$1.unit === "uv" && d$1.value === value;
12569
+ return isUV(bbox.x, 0) && isUV(bbox.y, 0) && isUV(bbox.width, 1) && isUV(bbox.height, 1) && (bbox.rotation ?? 0) === 0 && (bbox.cornerRadius?.value ?? 0) === 0;
12570
+ }
12460
12571
  var Expr = class Expr {
12461
12572
  _emit;
12462
12573
  constructor(emit) {
@@ -12739,23 +12850,34 @@ function composeNodeTree(registry, options = {}) {
12739
12850
  return applyMaskFn(result, maskExpr, maskCfg.type ?? "alpha");
12740
12851
  };
12741
12852
  const opacityExpr = (node) => uniAccessor(`${nodeKey(node.id)}._opacity`);
12742
- const hasBox = (node) => !!node.metadata.boundingBox && !!node.definition.boundingBoxDeclaration;
12853
+ const hasBox = (node) => !!node.metadata.boundingBox && !!node.definition.boundingBoxDeclaration && !isIdentityBoundingBox(node.metadata.boundingBox);
12743
12854
  const cutoutActive = (node) => node.handles.cutout?.value === 1;
12744
12855
  const requiresChild = (node) => !!node.definition.requiresChild;
12745
12856
  const blendWithChildren = (node) => !!node.definition.blendWithChildren;
12746
12857
  const usesBoxClipWindow = (node) => hasBox(node) && !node.definition.boundingBoxDeclaration?.boxResamplesContent && requiresChild(node) && node.metadata.blendMode === "normal" && !cutoutActive(node) && !blendWithChildren(node);
12747
- const clipMaskExpr = (node) => {
12858
+ const halfPixelSq = () => new Expr((ctx) => `(0.5 / max(${sysCtx.viewportSize.member("y")._emit(ctx)}, 1.0))`);
12859
+ let hoistCounter = 0;
12860
+ const asLocal = (e, hint) => {
12861
+ const id = hoistCounter++;
12862
+ return new Expr((ctx) => ctx.memo(`local:${id}`, () => {
12863
+ const name = ctx.freshLocal(hint);
12864
+ ctx.statement(`let ${name} = ${e._emit(ctx)};`);
12865
+ return name;
12866
+ }));
12867
+ };
12868
+ const clipMaskExpr = (node, uv = sysCtx.uv) => {
12748
12869
  const key = nodeKey(node.id);
12749
12870
  const bu = (f) => uniAccessor(`${key}._bbox_${f}`);
12750
12871
  return call(applyRectangularClipMask, "bboxClipMask", [
12751
- sysCtx.uv,
12872
+ uv,
12752
12873
  bu("centerX"),
12753
12874
  bu("centerY"),
12754
12875
  bu("halfWidth"),
12755
12876
  bu("halfHeight"),
12756
12877
  bu("cornerRadius"),
12757
12878
  bu("rotation"),
12758
- bu("aspectRatio")
12879
+ bu("aspectRatio"),
12880
+ halfPixelSq()
12759
12881
  ]);
12760
12882
  };
12761
12883
  const applyBoxTransform = (result, node) => {
@@ -12982,6 +13104,8 @@ function composeNodeTree(registry, options = {}) {
12982
13104
  if (uvResult !== null) return uvResult;
12983
13105
  }
12984
13106
  if (children.length > 0 && node.definition.uvRemap) {
13107
+ const pushed = tryComposeViaAnalyticPushdown(node, children);
13108
+ if (pushed !== null) return pushed;
12985
13109
  const nested = tryComposeViaAnalyticUVRemapNested(node, children, processedMasks);
12986
13110
  if (nested !== null) return nested;
12987
13111
  }
@@ -13050,14 +13174,14 @@ function composeNodeTree(registry, options = {}) {
13050
13174
  }
13051
13175
  return composed;
13052
13176
  }
13053
- function genResizeFitParams(node) {
13177
+ function genResizeFitParams(node, uv = sysCtx.uv) {
13054
13178
  if (!hasBox(node)) return {};
13055
13179
  if (!node.definition.boundingBoxDeclaration?.supportsResizeFit) return {};
13056
13180
  const key = nodeKey(node.id);
13057
13181
  const bu = (f) => uniAccessor(`${key}._bbox_${f}`);
13058
13182
  return {
13059
13183
  uvContext: call(boundingBoxToGeneratorUVContext, "bboxGenUVContext", [
13060
- sysCtx.uv,
13184
+ uv,
13061
13185
  bu("centerX"),
13062
13186
  bu("centerY"),
13063
13187
  bu("halfWidth"),
@@ -13075,23 +13199,25 @@ function composeNodeTree(registry, options = {}) {
13075
13199
  }
13076
13200
  const analyticHasFallbackTriggers = (n) => !!n.metadata.mask || n.metadata.opacity !== void 0 && n.metadata.opacity < 1 || (n.metadata.blendMode ?? "normal") !== "normal" || needsTransformation(n.metadata.transform) || hasBox(n);
13077
13201
  const analyticRunEligible = (n) => !!n.definition.uvRemap && registry.getChildren(n.id).length === 0 && !analyticHasFallbackTriggers(n);
13202
+ function remapAt(dNode, uv, mask) {
13203
+ composedNodeIds.add(dNode.id);
13204
+ const computeOutputs = initNodeCompute(dNode, makeParams(dNode, void 0));
13205
+ return dNode.definition.uvRemap({
13206
+ uv,
13207
+ mask,
13208
+ uniforms: uniformExprs(dNode),
13209
+ propValues: propValuesFor(dNode),
13210
+ props: propsAccessor(dNode),
13211
+ aspect: sysCtx.aspect,
13212
+ onBeforeRender: (cb) => onBeforeRender.push(cb),
13213
+ computeOutputs
13214
+ });
13215
+ }
13078
13216
  function foldAnalyticRun(run) {
13079
13217
  let uv = sysCtx.uv;
13080
13218
  let mask = floatE(1);
13081
13219
  for (let i = run.length - 1; i >= 0; i--) {
13082
- const dNode = run[i];
13083
- composedNodeIds.add(dNode.id);
13084
- const computeOutputs = initNodeCompute(dNode, makeParams(dNode, void 0));
13085
- const remapped = dNode.definition.uvRemap({
13086
- uv,
13087
- mask,
13088
- uniforms: uniformExprs(dNode),
13089
- propValues: propValuesFor(dNode),
13090
- props: propsAccessor(dNode),
13091
- aspect: sysCtx.aspect,
13092
- onBeforeRender: (cb) => onBeforeRender.push(cb),
13093
- computeOutputs
13094
- });
13220
+ const remapped = remapAt(run[i], uv, mask);
13095
13221
  uv = remapped.uv;
13096
13222
  mask = remapped.mask;
13097
13223
  }
@@ -13100,6 +13226,75 @@ function composeNodeTree(registry, options = {}) {
13100
13226
  mask
13101
13227
  };
13102
13228
  }
13229
+ const PUSHDOWN_MAX_NODES = 24;
13230
+ const fullCoverage = floatE(1);
13231
+ const pushdownEligible = (n, budget) => {
13232
+ if (budget.left-- <= 0) return false;
13233
+ if (n.metadata.mask) return false;
13234
+ if (needsTransformation(n.metadata.transform)) return false;
13235
+ const children = registry.getChildren(n.id).filter((c) => c.metadata.visible !== false);
13236
+ if (children.length === 0) {
13237
+ if (hasBox(n) && n.definition.boundingBoxDeclaration?.boxResamplesContent) return false;
13238
+ return !!n.definition.acceptsUVContext && !n.definition.requiresChild;
13239
+ }
13240
+ if (!n.definition.uvRemap) return false;
13241
+ if (hasBox(n)) return false;
13242
+ return children.every((c) => pushdownEligible(c, budget));
13243
+ };
13244
+ function remapCoverage(dNode, uv, mask) {
13245
+ const incoming = mask ?? fullCoverage;
13246
+ const out = remapAt(dNode, uv, incoming);
13247
+ return {
13248
+ uv: out.uv,
13249
+ mask: out.mask === incoming ? mask : out.mask
13250
+ };
13251
+ }
13252
+ const combineCoverage = (a, b) => a === void 0 ? b : b === void 0 ? a : a.mul(b);
13253
+ function composeAtUV(node, uv, mask) {
13254
+ const children = registry.getChildren(node.id).filter((c) => c.metadata.visible !== false);
13255
+ if (children.length > 0) {
13256
+ if (!node.definition.uvRemap) return null;
13257
+ const next = remapCoverage(node, uv, mask);
13258
+ return composeChildrenAtUV(children, asLocal(next.uv, "foldUV"), next.mask);
13259
+ }
13260
+ if (!node.definition.acceptsUVContext) return null;
13261
+ composedNodeIds.add(node.id);
13262
+ const resizeFit = genResizeFitParams(node, uv);
13263
+ const params = makeParams(node, void 0, Object.keys(resizeFit).length > 0 ? resizeFit : { uvContext: uv });
13264
+ params.computeOutputs = initNodeCompute(node, params);
13265
+ const fragmentResult = node.definition.fragment(params);
13266
+ const coverage = combineCoverage(mask, hasBox(node) ? clipMaskExpr(node, uv) : void 0);
13267
+ if (coverage === void 0) return fragmentResult;
13268
+ const result = asLocal(fragmentResult, "gen");
13269
+ return vec4(result.member("rgb"), result.member("a").mul(coverage));
13270
+ }
13271
+ function composeChildrenAtUV(children, uv, mask) {
13272
+ const sorted = [...children].sort((a, b) => a.metadata.renderOrder - b.metadata.renderOrder);
13273
+ let composed;
13274
+ for (const child of sorted) {
13275
+ const childResult = composeAtUV(child, uv, void 0);
13276
+ if (childResult === null) return null;
13277
+ const blendMode = child.metadata.blendMode ?? "normal";
13278
+ const effectiveOpacity = child.metadata.opacity ?? 1;
13279
+ if (composed === void 0) composed = blendMode === "normal" && effectiveOpacity === 1 ? childResult : applyBlend(WHITE0, childResult, blendMode, opacityExpr(child));
13280
+ else composed = applyBlend(composed, childResult, blendMode, opacityExpr(child));
13281
+ }
13282
+ if (composed === void 0) return null;
13283
+ if (mask === void 0) return composed;
13284
+ const sibs = asLocal(composed, "sibs");
13285
+ return vec4(sibs.member("rgb"), sibs.member("a").mul(mask));
13286
+ }
13287
+ function tryComposeViaAnalyticPushdown(parent, children) {
13288
+ if (!parent.definition.uvRemap) return null;
13289
+ if (analyticHasFallbackTriggers(parent)) return null;
13290
+ const visible = children.filter((c) => c.metadata.visible !== false);
13291
+ if (visible.length === 0) return null;
13292
+ const budget = { left: PUSHDOWN_MAX_NODES };
13293
+ if (!visible.every((c) => pushdownEligible(c, budget))) return null;
13294
+ composedNodeIds.add(parent.id);
13295
+ const { uv, mask } = remapCoverage(parent, sysCtx.uv, void 0);
13296
+ return composeChildrenAtUV(visible, asLocal(uv, "foldUV"), mask);
13297
+ }
13103
13298
  function tryComposeViaAnalyticUVRemap(sorted, _processedMasks) {
13104
13299
  const visible = sorted.filter((c) => c.metadata.visible !== false);
13105
13300
  if (!visible.some((c) => !!c.definition.uvRemap)) return null;
@@ -13183,7 +13378,7 @@ function composeNodeTree(registry, options = {}) {
13183
13378
  const gen = terminusGenerator.definition.fragment(params);
13184
13379
  result = vec4(gen.member("rgb"), gen.member("a").mul(mask));
13185
13380
  } else {
13186
- const sampled = convertToTexture(applyBlend(ZERO, composeNode(terminusComposite.id, processedMasks), "normal", floatE(1))).sample(uv);
13381
+ const sampled = convertToTexture(applyBlend(WHITE0, composeNode(terminusComposite.id, processedMasks), terminusComposite.metadata.blendMode ?? "normal", opacityExpr(terminusComposite))).sample(uv);
13187
13382
  result = vec4(sampled.member("rgb"), sampled.member("a").mul(mask));
13188
13383
  }
13189
13384
  return applyMaskIfNeeded(hasBox(parent) ? applyBoxTransform(result, parent) : applyNodeTransform(result, parent), parent, processedMasks);
@@ -13359,7 +13554,7 @@ function collectStructuralHashInputs(registry, options = {}) {
13359
13554
  const m = node.metadata;
13360
13555
  const def = node.definition;
13361
13556
  const transformActive = needsTransformation(m.transform);
13362
- const bboxActive = !!m.boundingBox && !!def.boundingBoxDeclaration;
13557
+ const bboxActive = !!m.boundingBox && !!def.boundingBoxDeclaration && !isIdentityBoundingBox(m.boundingBox);
13363
13558
  const opacityBucket = (m.opacity ?? 1) === 0 ? "zero" : "nonzero";
13364
13559
  const maskCfg = m.mask ? `${m.mask.source}:${m.mask.type}` : "none";
13365
13560
  const compileTimeProps = [];
@@ -13369,6 +13564,7 @@ function collectStructuralHashInputs(registry, options = {}) {
13369
13564
  }
13370
13565
  parts.push([
13371
13566
  `id:${node.id}`,
13567
+ `parent:${node.parentId ?? ""}`,
13372
13568
  `name:${node.componentName}`,
13373
13569
  `blend:${m.blendMode ?? "normal"}`,
13374
13570
  `mask:${maskCfg}`,
@@ -13386,6 +13582,474 @@ function collectStructuralHashInputs(registry, options = {}) {
13386
13582
  if (registry.rootId) visit(registry.rootId);
13387
13583
  return parts;
13388
13584
  }
13585
+ const catmullRomAxisPositions = tgpu$1.fn([d.f32, d.f32], d.vec3f)(/* @__PURE__ */ (($) => (globalThis.__TYPEGPU_META__ ??= /* @__PURE__ */ new WeakMap()).set($.f = ((uv, texSize) => {
13586
+ "use gpu";
13587
+ const samplePos = __tsover_mul(uv, texSize);
13588
+ const texPos1 = __tsover_add(std.floor(__tsover_sub(samplePos, .5)), .5);
13589
+ const f = __tsover_sub(samplePos, texPos1);
13590
+ const w1 = __tsover_add(1, __tsover_mul(__tsover_mul(f, f), __tsover_add(-2.5, __tsover_mul(1.5, f))));
13591
+ const w2 = __tsover_mul(f, __tsover_add(.5, __tsover_mul(f, __tsover_sub(2, __tsover_mul(1.5, f)))));
13592
+ const w12 = std.max(__tsover_add(w1, w2), 1e-6);
13593
+ const offset12 = __tsover_div(w2, w12);
13594
+ return d.vec3f(__tsover_div(__tsover_sub(texPos1, 1), texSize), __tsover_div(__tsover_add(texPos1, offset12), texSize), __tsover_div(__tsover_add(texPos1, 2), texSize));
13595
+ }), {
13596
+ v: 1,
13597
+ name: void 0,
13598
+ ast: {
13599
+ "params": [{
13600
+ "type": "i",
13601
+ "name": "uv"
13602
+ }, {
13603
+ "type": "i",
13604
+ "name": "texSize"
13605
+ }],
13606
+ "body": [0, [
13607
+ [
13608
+ 13,
13609
+ "samplePos",
13610
+ [
13611
+ 1,
13612
+ "uv",
13613
+ "*",
13614
+ "texSize"
13615
+ ]
13616
+ ],
13617
+ [
13618
+ 13,
13619
+ "texPos1",
13620
+ [
13621
+ 1,
13622
+ [
13623
+ 6,
13624
+ [
13625
+ 7,
13626
+ "std",
13627
+ "floor"
13628
+ ],
13629
+ [[
13630
+ 1,
13631
+ "samplePos",
13632
+ "-",
13633
+ [5, "0.5"]
13634
+ ]]
13635
+ ],
13636
+ "+",
13637
+ [5, "0.5"]
13638
+ ]
13639
+ ],
13640
+ [
13641
+ 13,
13642
+ "f",
13643
+ [
13644
+ 1,
13645
+ "samplePos",
13646
+ "-",
13647
+ "texPos1"
13648
+ ]
13649
+ ],
13650
+ [
13651
+ 13,
13652
+ "w1",
13653
+ [
13654
+ 1,
13655
+ [5, "1"],
13656
+ "+",
13657
+ [
13658
+ 1,
13659
+ [
13660
+ 1,
13661
+ "f",
13662
+ "*",
13663
+ "f"
13664
+ ],
13665
+ "*",
13666
+ [
13667
+ 1,
13668
+ [
13669
+ 4,
13670
+ "-",
13671
+ [5, "2.5"]
13672
+ ],
13673
+ "+",
13674
+ [
13675
+ 1,
13676
+ [5, "1.5"],
13677
+ "*",
13678
+ "f"
13679
+ ]
13680
+ ]
13681
+ ]
13682
+ ]
13683
+ ],
13684
+ [
13685
+ 13,
13686
+ "w2",
13687
+ [
13688
+ 1,
13689
+ "f",
13690
+ "*",
13691
+ [
13692
+ 1,
13693
+ [5, "0.5"],
13694
+ "+",
13695
+ [
13696
+ 1,
13697
+ "f",
13698
+ "*",
13699
+ [
13700
+ 1,
13701
+ [5, "2"],
13702
+ "-",
13703
+ [
13704
+ 1,
13705
+ [5, "1.5"],
13706
+ "*",
13707
+ "f"
13708
+ ]
13709
+ ]
13710
+ ]
13711
+ ]
13712
+ ]
13713
+ ],
13714
+ [
13715
+ 13,
13716
+ "w12",
13717
+ [
13718
+ 6,
13719
+ [
13720
+ 7,
13721
+ "std",
13722
+ "max"
13723
+ ],
13724
+ [[
13725
+ 1,
13726
+ "w1",
13727
+ "+",
13728
+ "w2"
13729
+ ], [5, "0.000001"]]
13730
+ ]
13731
+ ],
13732
+ [
13733
+ 13,
13734
+ "offset12",
13735
+ [
13736
+ 1,
13737
+ "w2",
13738
+ "/",
13739
+ "w12"
13740
+ ]
13741
+ ],
13742
+ [10, [
13743
+ 6,
13744
+ [
13745
+ 7,
13746
+ "d",
13747
+ "vec3f"
13748
+ ],
13749
+ [
13750
+ [
13751
+ 1,
13752
+ [
13753
+ 1,
13754
+ "texPos1",
13755
+ "-",
13756
+ [5, "1"]
13757
+ ],
13758
+ "/",
13759
+ "texSize"
13760
+ ],
13761
+ [
13762
+ 1,
13763
+ [
13764
+ 1,
13765
+ "texPos1",
13766
+ "+",
13767
+ "offset12"
13768
+ ],
13769
+ "/",
13770
+ "texSize"
13771
+ ],
13772
+ [
13773
+ 1,
13774
+ [
13775
+ 1,
13776
+ "texPos1",
13777
+ "+",
13778
+ [5, "2"]
13779
+ ],
13780
+ "/",
13781
+ "texSize"
13782
+ ]
13783
+ ]
13784
+ ]]
13785
+ ]],
13786
+ "externalNames": ["std", "d"]
13787
+ },
13788
+ externals: () => ({
13789
+ std,
13790
+ d
13791
+ })
13792
+ }) && $.f)({}));
13793
+ const catmullRomAxisWeights = tgpu$1.fn([d.f32, d.f32], d.vec3f)(/* @__PURE__ */ (($) => (globalThis.__TYPEGPU_META__ ??= /* @__PURE__ */ new WeakMap()).set($.f = ((uv, texSize) => {
13794
+ "use gpu";
13795
+ const samplePos = __tsover_mul(uv, texSize);
13796
+ const texPos1 = __tsover_add(std.floor(__tsover_sub(samplePos, .5)), .5);
13797
+ const f = __tsover_sub(samplePos, texPos1);
13798
+ const w0 = __tsover_mul(f, __tsover_add(-.5, __tsover_mul(f, __tsover_sub(1, __tsover_mul(.5, f)))));
13799
+ const w1 = __tsover_add(1, __tsover_mul(__tsover_mul(f, f), __tsover_add(-2.5, __tsover_mul(1.5, f))));
13800
+ const w2 = __tsover_mul(f, __tsover_add(.5, __tsover_mul(f, __tsover_sub(2, __tsover_mul(1.5, f)))));
13801
+ const w3 = __tsover_mul(__tsover_mul(f, f), __tsover_add(-.5, __tsover_mul(.5, f)));
13802
+ return d.vec3f(w0, __tsover_add(w1, w2), w3);
13803
+ }), {
13804
+ v: 1,
13805
+ name: void 0,
13806
+ ast: {
13807
+ "params": [{
13808
+ "type": "i",
13809
+ "name": "uv"
13810
+ }, {
13811
+ "type": "i",
13812
+ "name": "texSize"
13813
+ }],
13814
+ "body": [0, [
13815
+ [
13816
+ 13,
13817
+ "samplePos",
13818
+ [
13819
+ 1,
13820
+ "uv",
13821
+ "*",
13822
+ "texSize"
13823
+ ]
13824
+ ],
13825
+ [
13826
+ 13,
13827
+ "texPos1",
13828
+ [
13829
+ 1,
13830
+ [
13831
+ 6,
13832
+ [
13833
+ 7,
13834
+ "std",
13835
+ "floor"
13836
+ ],
13837
+ [[
13838
+ 1,
13839
+ "samplePos",
13840
+ "-",
13841
+ [5, "0.5"]
13842
+ ]]
13843
+ ],
13844
+ "+",
13845
+ [5, "0.5"]
13846
+ ]
13847
+ ],
13848
+ [
13849
+ 13,
13850
+ "f",
13851
+ [
13852
+ 1,
13853
+ "samplePos",
13854
+ "-",
13855
+ "texPos1"
13856
+ ]
13857
+ ],
13858
+ [
13859
+ 13,
13860
+ "w0",
13861
+ [
13862
+ 1,
13863
+ "f",
13864
+ "*",
13865
+ [
13866
+ 1,
13867
+ [
13868
+ 4,
13869
+ "-",
13870
+ [5, "0.5"]
13871
+ ],
13872
+ "+",
13873
+ [
13874
+ 1,
13875
+ "f",
13876
+ "*",
13877
+ [
13878
+ 1,
13879
+ [5, "1"],
13880
+ "-",
13881
+ [
13882
+ 1,
13883
+ [5, "0.5"],
13884
+ "*",
13885
+ "f"
13886
+ ]
13887
+ ]
13888
+ ]
13889
+ ]
13890
+ ]
13891
+ ],
13892
+ [
13893
+ 13,
13894
+ "w1",
13895
+ [
13896
+ 1,
13897
+ [5, "1"],
13898
+ "+",
13899
+ [
13900
+ 1,
13901
+ [
13902
+ 1,
13903
+ "f",
13904
+ "*",
13905
+ "f"
13906
+ ],
13907
+ "*",
13908
+ [
13909
+ 1,
13910
+ [
13911
+ 4,
13912
+ "-",
13913
+ [5, "2.5"]
13914
+ ],
13915
+ "+",
13916
+ [
13917
+ 1,
13918
+ [5, "1.5"],
13919
+ "*",
13920
+ "f"
13921
+ ]
13922
+ ]
13923
+ ]
13924
+ ]
13925
+ ],
13926
+ [
13927
+ 13,
13928
+ "w2",
13929
+ [
13930
+ 1,
13931
+ "f",
13932
+ "*",
13933
+ [
13934
+ 1,
13935
+ [5, "0.5"],
13936
+ "+",
13937
+ [
13938
+ 1,
13939
+ "f",
13940
+ "*",
13941
+ [
13942
+ 1,
13943
+ [5, "2"],
13944
+ "-",
13945
+ [
13946
+ 1,
13947
+ [5, "1.5"],
13948
+ "*",
13949
+ "f"
13950
+ ]
13951
+ ]
13952
+ ]
13953
+ ]
13954
+ ]
13955
+ ],
13956
+ [
13957
+ 13,
13958
+ "w3",
13959
+ [
13960
+ 1,
13961
+ [
13962
+ 1,
13963
+ "f",
13964
+ "*",
13965
+ "f"
13966
+ ],
13967
+ "*",
13968
+ [
13969
+ 1,
13970
+ [
13971
+ 4,
13972
+ "-",
13973
+ [5, "0.5"]
13974
+ ],
13975
+ "+",
13976
+ [
13977
+ 1,
13978
+ [5, "0.5"],
13979
+ "*",
13980
+ "f"
13981
+ ]
13982
+ ]
13983
+ ]
13984
+ ],
13985
+ [10, [
13986
+ 6,
13987
+ [
13988
+ 7,
13989
+ "d",
13990
+ "vec3f"
13991
+ ],
13992
+ [
13993
+ "w0",
13994
+ [
13995
+ 1,
13996
+ "w1",
13997
+ "+",
13998
+ "w2"
13999
+ ],
14000
+ "w3"
14001
+ ]
14002
+ ]]
14003
+ ]],
14004
+ "externalNames": ["std", "d"]
14005
+ },
14006
+ externals: () => ({
14007
+ std,
14008
+ d
14009
+ })
14010
+ }) && $.f)({}));
14011
+ var bicubicCounter = 0;
14012
+ const sampleCatmullRomExpr = (tex, uv, sampler = "linearClamp", range = "positive") => {
14013
+ const id = bicubicCounter++;
14014
+ return new Expr((ctx) => ctx.memo(`catmullRom:${id}`, () => {
14015
+ const uvL = ctx.freshLocal("crUV");
14016
+ const sizeL = ctx.freshLocal("crSize");
14017
+ const pxL = ctx.freshLocal("crPosX");
14018
+ const pyL = ctx.freshLocal("crPosY");
14019
+ const wxL = ctx.freshLocal("crWx");
14020
+ const wyL = ctx.freshLocal("crWy");
14021
+ const outL = ctx.freshLocal("crOut");
14022
+ ctx.statement(`let ${uvL} = ${uv._emit(ctx)};`);
14023
+ ctx.statement(`let ${sizeL} = ${tex.dimensions()._emit(ctx)};`);
14024
+ const posFn = ctx.external(catmullRomAxisPositions, "catmullRomAxisPositions");
14025
+ const wFn = ctx.external(catmullRomAxisWeights, "catmullRomAxisWeights");
14026
+ ctx.statement(`let ${pxL} = ${posFn}(${uvL}.x, ${sizeL}.x);`);
14027
+ ctx.statement(`let ${pyL} = ${posFn}(${uvL}.y, ${sizeL}.y);`);
14028
+ ctx.statement(`let ${wxL} = ${wFn}(${uvL}.x, ${sizeL}.x);`);
14029
+ ctx.statement(`let ${wyL} = ${wFn}(${uvL}.y, ${sizeL}.y);`);
14030
+ ctx.statement(`var ${outL} = vec4f(0.0, 0.0, 0.0, 0.0);`);
14031
+ const axis = [
14032
+ "x",
14033
+ "y",
14034
+ "z"
14035
+ ];
14036
+ for (const yi of [
14037
+ 0,
14038
+ 1,
14039
+ 2
14040
+ ]) for (const xi of [
14041
+ 0,
14042
+ 1,
14043
+ 2
14044
+ ]) {
14045
+ const tapUV = new Expr(() => `vec2f(${pxL}.${axis[xi]}, ${pyL}.${axis[yi]})`);
14046
+ const weight = `(${wxL}.${axis[xi]} * ${wyL}.${axis[yi]})`;
14047
+ ctx.statement(`${outL} += ${tex.sample(tapUV, sampler)._emit(ctx)} * ${weight};`);
14048
+ }
14049
+ ctx.statement(range === "unit" ? `${outL} = clamp(${outL}, vec4f(0.0, 0.0, 0.0, 0.0), vec4f(1.0, 1.0, 1.0, 1.0));` : `${outL} = max(${outL}, vec4f(0.0, 0.0, 0.0, 0.0));`);
14050
+ return outL;
14051
+ }));
14052
+ };
13389
14053
  var edges_exports = /* @__PURE__ */ __export({
13390
14054
  applyEdgeHandling: () => applyEdgeHandling,
13391
14055
  applyEdgeHandlingExpr: () => applyEdgeHandlingExpr,
@@ -13396,7 +14060,8 @@ var edges_exports = /* @__PURE__ */ __export({
13396
14060
  edgeClampUV: () => edgeClampUV,
13397
14061
  edgeMirrorUV: () => edgeMirrorUV,
13398
14062
  edgeTransparentMask: () => edgeTransparentMask,
13399
- edgeWrapUV: () => edgeWrapUV
14063
+ edgeWrapUV: () => edgeWrapUV,
14064
+ sampleRemappedExpr: () => sampleRemappedExpr
13400
14065
  });
13401
14066
  const edgeClampUV = tgpu$1.fn([d.vec2f], d.vec2f)(/* @__PURE__ */ (($) => (globalThis.__TYPEGPU_META__ ??= /* @__PURE__ */ new WeakMap()).set($.f = ((uv) => {
13402
14067
  "use gpu";
@@ -13804,6 +14469,9 @@ const applyEdgeHandlingExpr = (distortedUV, sample, edgeMode) => {
13804
14469
  if (edgeMode === WRAP) return sample(call(edgeWrapUV, "edgeWrapUV", [distortedUV]));
13805
14470
  return sample(distortedUV);
13806
14471
  };
14472
+ const sampleRemappedExpr = (tex, distortedUV, edgeMode) => {
14473
+ return applyEdgeHandlingExpr(distortedUV, edgeMode === MIRROR ? (uv) => tex.sample(uv) : (uv) => sampleCatmullRomExpr(tex, uv, edgeMode === WRAP ? "linearRepeat" : "linearClamp"), edgeMode);
14474
+ };
13807
14475
  function createAnimatedTimeState() {
13808
14476
  const state = {
13809
14477
  value: 0,
@@ -55053,4 +55721,4 @@ tgpu$1.fn([d.vec2f], d.f32)(/* @__PURE__ */ (($) => (globalThis.__TYPEGPU_META__
55053
55721
  },
55054
55722
  externals: () => ({})
55055
55723
  }) && $.f)({}));
55056
- export { mixStopsOrColorsExpr as $, srgbToLinear as $t, heartSdf as A, applyEdgeHandlingExpr as At, trapezoidSdf as B, call as Bt, ShapeMask as C, MAX_COLOR_STOPS as Ct, crossSdf as D, packConvertedStops as Dt, crescentSdf as E, mixColorStopsRuntime as Et, sdf_exports as F, edgeWrapUV as Ft, DEFAULT_COMPUTE_WIDTH as G, mixExpr as Gt, toHalfFloat as H, composeNodeTree as Ht, shapeLocalCoords as I, edges_exports as It, std as J, formatFloat as Jt, createGaussianBlurCompute as K, vec4 as Kt, starSdf as L, SHARED_SAMPLER_LAYOUT as Lt, polygonSdf as M, edgeClampUV as Mt, ringSdf as N, edgeMirrorUV as Nt, ellipseSdf as O, packStops as Ot, roundedRectSdf as P, edgeTransparentMask as Pt, applyNoiseReliefExpr as Q, linearToSrgb as Qt, strokeMaskFromSdf as R, ZERO as Rt, maxPixelRatioForDevice as S, __export as Sn, wool12 as St, circleSdf as T, gradientStopsInSpace as Tt, BLUR_MAP_FORMAT as U, expr as Ut, vesicaSdf as V, collectStructuralHashInputs as Vt, DEFAULT_COMPUTE_HEIGHT as W, floatE as Wt, createGuardedCompute as X, needsTransformation as Xt, createComputeDispatcher as Y, boundingBoxToUVParams as Yt, createStateBuffer as Z, screenUVToBoxLocal as Zt, scaleScaleDown as _, sRGBToP3 as _n, scratches12 as _t, cursorFalloff as a, convertP3ToMixSpaceCPU as an, gabor12 as at, getSdfContentBounds as b, d as bn, value13 as bt, orientedShapeOptions as c, labToRgb as cn, hash22 as ct, alphaCutLinear as d, mixColorsVariants as dn, mxNoiseFloat3 as dt, tonemap_exports as en, toneAndColorExpr as et, sampleUV as f, mixPreconvertedLinear as fn, mxWorleyNoiseFloat2Pub as ft, scaleNone as g, rgbToHsl as gn, perlin13 as gt, scaleFill as h, oklchToOklab as hn, perlin12d as ht, agents_exports as i, colorMixing_exports as in, erosion12 as it, parallelogramSdf as j, composeEdgeRemapExpr as jt, flowerSdf as k, getAnimatedTimeState as kt, pointShapeOptions as l, lchToLab as ln, hash33 as lt, scaleCover as m, oklabToRgb as mn, paper12 as mt, tgpu$1 as n, blend_exports as nn, curl22 as nt, cursorMagnet as o, hslToRgb as on, hash11 as ot, scaleContain as p, mixPreconvertedVariants as pn, noise_exports as pt, createVariableGaussianBlurCompute as q, Expr as qt, AGENT_SHAPES as r, unpremultiplyAlpha as rn, curl22z as rt, makeAgentWeightFn as s, hsvToRgb as sn, hash12 as st, SystemUniforms as t, blendModes as tn, blue12 as tt, resolveAgentShape as u, mixColorsLinear as un, mxNoiseFloat2 as ut, VOLUMETRIC_FIELD_EXTRA_FIELDS as v, FieldHandle as vn, stone12 as vt, arcSdf as w, colorStops_exports as wt, isMobileGpuViewport as x, updateFieldValue as xn, wavelet12 as xt, sdf3d_exports as y, createUniformStore as yn, value12 as yt, teardropSdf as z, arrayExpr as zt };
55724
+ export { mixStopsOrColorsExpr as $, resolveBoundingBox as $t, heartSdf as A, applyEdgeHandlingExpr as At, trapezoidSdf as B, ZERO as Bt, ShapeMask as C, FieldHandle as Cn, MAX_COLOR_STOPS as Ct, crossSdf as D, __export as Dn, packConvertedStops as Dt, crescentSdf as E, updateFieldValue as En, mixColorStopsRuntime as Et, sdf_exports as F, edgeWrapUV as Ft, DEFAULT_COMPUTE_WIDTH as G, expr as Gt, toHalfFloat as H, call as Ht, shapeLocalCoords as I, edges_exports as It, std as J, vec4 as Jt, createGaussianBlurCompute as K, floatE as Kt, starSdf as L, sampleRemappedExpr as Lt, polygonSdf as M, edgeClampUV as Mt, ringSdf as N, edgeMirrorUV as Nt, ellipseSdf as O, packStops as Ot, roundedRectSdf as P, edgeTransparentMask as Pt, applyNoiseReliefExpr as Q, isIdentityBoundingBox as Qt, strokeMaskFromSdf as R, sampleCatmullRomExpr as Rt, maxPixelRatioForDevice as S, sRGBToP3 as Sn, wool12 as St, circleSdf as T, d as Tn, gradientStopsInSpace as Tt, BLUR_MAP_FORMAT as U, collectStructuralHashInputs as Ut, vesicaSdf as V, arrayExpr as Vt, DEFAULT_COMPUTE_HEIGHT as W, composeNodeTree as Wt, createGuardedCompute as X, formatFloat as Xt, createComputeDispatcher as Y, Expr as Yt, createStateBuffer as Z, DEFAULT_BOUNDING_BOX as Zt, scaleScaleDown as _, mixPreconvertedLinear as _n, scratches12 as _t, cursorFalloff as a, tonemap_exports as an, gabor12 as at, getSdfContentBounds as b, oklchToOklab as bn, value13 as bt, orientedShapeOptions as c, unpremultiplyAlpha as cn, hash22 as ct, alphaCutLinear as d, hslToRgb as dn, mxNoiseFloat3 as dt, boundingBoxToUVParams as en, toneAndColorExpr as et, sampleUV as f, hsvToRgb as fn, mxWorleyNoiseFloat2Pub as ft, scaleNone as g, mixColorsVariants as gn, perlin13 as gt, scaleFill as h, mixColorsLinear as hn, perlin12d as ht, agents_exports as i, srgbToLinear as in, erosion12 as it, parallelogramSdf as j, composeEdgeRemapExpr as jt, flowerSdf as k, getAnimatedTimeState as kt, pointShapeOptions as l, colorMixing_exports as ln, hash33 as lt, scaleCover as m, lchToLab as mn, paper12 as mt, tgpu$1 as n, screenUVToBoxLocal as nn, curl22 as nt, cursorMagnet as o, blendModes as on, hash11 as ot, scaleContain as p, labToRgb as pn, noise_exports as pt, createVariableGaussianBlurCompute as q, mixExpr as qt, AGENT_SHAPES as r, linearToSrgb as rn, curl22z as rt, makeAgentWeightFn as s, blend_exports as sn, hash12 as st, SystemUniforms as t, needsTransformation as tn, blue12 as tt, resolveAgentShape as u, convertP3ToMixSpaceCPU as un, mxNoiseFloat2 as ut, VOLUMETRIC_FIELD_EXTRA_FIELDS as v, mixPreconvertedVariants as vn, stone12 as vt, arcSdf as w, createUniformStore as wn, colorStops_exports as wt, isMobileGpuViewport as x, rgbToHsl as xn, wavelet12 as xt, sdf3d_exports as y, oklabToRgb as yn, value12 as yt, teardropSdf as z, SHARED_SAMPLER_LAYOUT as zt };