{"version":3,"sources":["jsdelivr-header.js","/npm/shaders@2.5.135/dist/core/edges-CX_lJB9R.js","/npm/shaders@2.5.135/dist/core/transformations-CJcUeZIC.js","/npm/shaders@2.5.135/dist/core/alpha-C4ptedXe.js","/npm/shaders@2.5.135/dist/core/AngularBlur-C1oRJ8Y9.js","/npm/shaders@2.5.135/dist/core/Ascii-BwSMmD6Z.js","/npm/shaders@2.5.135/dist/core/colorMixing-BPpDnR5I.js","/npm/shaders@2.5.135/dist/core/time-DUqSFWvT.js","/npm/shaders@2.5.135/dist/core/Aurora-D5Pjk4ve.js","/npm/shaders@2.5.135/dist/core/BarShift-2XBhva1A.js","/npm/shaders@2.5.135/dist/core/Beam-B3BX08lR.js","/npm/shaders@2.5.135/dist/core/Blob-BT50tDXE.js","/npm/shaders@2.5.135/dist/core/computeBlur-oxyhoztH.js","/npm/shaders@2.5.135/dist/core/Blur-1GcG1L1y.js","/npm/shaders@2.5.135/dist/core/BrickPattern-BfTsjp4I.js","/npm/shaders@2.5.135/dist/core/BrightnessContrast-GppIqtkO.js","/npm/shaders@2.5.135/dist/core/Bulge-DMOATSEs.js","/npm/shaders@2.5.135/dist/core/ChannelBlur-CxlVaYGM.js","/npm/shaders@2.5.135/dist/core/Checkerboard-BVBGTvd-.js","/npm/shaders@2.5.135/dist/core/Chevron-BKZjAXR_.js","/npm/shaders@2.5.135/dist/core/ChromaFlow-C0guw_LP.js","/npm/shaders@2.5.135/dist/core/ChromaticAberration-DZOcs-bZ.js","/npm/shaders@2.5.135/dist/core/Circle-BycqVCMt.js","/npm/shaders@2.5.135/dist/core/ColorWheel-BQUKQPM-.js","/npm/shaders@2.5.135/dist/core/ConcentricSpin-CO3Kx1I1.js","/npm/shaders@2.5.135/dist/core/ConicGradient-DRvVwiSj.js","/npm/shaders@2.5.135/dist/core/ContourLines-s4waN3uU.js","/npm/shaders@2.5.135/dist/core/sdf-D_EAGXhN.js","/npm/shaders@2.5.135/dist/core/Crescent-ppz7W7eM.js","/npm/shaders@2.5.135/dist/core/Cross-BfNOtQ6s.js","/npm/shaders@2.5.135/dist/core/CRTScreen-corekL_R.js","/npm/shaders@2.5.135/dist/core/Crystal-QsQoy8fZ.js","/npm/shaders@2.5.135/dist/core/CursorRipples-CLP7Sinv.js","/npm/shaders@2.5.135/dist/core/CursorTrail-CshoSM5Y.js","/npm/shaders@2.5.135/dist/core/DiamondGradient-D6eyjZOn.js","/npm/shaders@2.5.135/dist/core/DiffuseBlur-BjvXHmJx.js","/npm/shaders@2.5.135/dist/core/Dither-z6s-TFg7.js","/npm/shaders@2.5.135/dist/core/DOMTexture-Ec0k6AnK.js","/npm/shaders@2.5.135/dist/core/DotGrid-BxAAGO4F.js","/npm/shaders@2.5.135/dist/core/DropShadow-CR3cecIQ.js","/npm/shaders@2.5.135/dist/core/Duotone-PwTfBBtM.js","/npm/shaders@2.5.135/dist/core/Ellipse-sWhNvW9-.js","/npm/shaders@2.5.135/dist/core/Emboss-DGaubb9x.js","/npm/shaders@2.5.135/dist/core/Exposure-CFn2J_t3.js","/npm/shaders@2.5.135/dist/core/FallingLines-9elMmSlj.js","/npm/shaders@2.5.135/dist/core/FilmGrain-DIydVgOW.js","/npm/shaders@2.5.135/dist/core/FloatingParticles-B068TLIi.js","/npm/shaders@2.5.135/dist/core/Flower-DSr0JWa2.js","/npm/shaders@2.5.135/dist/core/FlowField-CeZjhyEo.js","/npm/shaders@2.5.135/dist/core/FlowingGradient-Bd8KBK5P.js","/npm/shaders@2.5.135/dist/core/FlutedGlass-BJtMfV2c.js","/npm/shaders@2.5.135/dist/core/Fog-BQuVDReH.js","/npm/shaders@2.5.135/dist/core/Form3D-DOek31CJ.js","/npm/shaders@2.5.135/dist/core/FractalNoise-Dyhbvx9a.js","/npm/shaders@2.5.135/dist/core/Glass-D8DayF1P.js","/npm/shaders@2.5.135/dist/core/GlassTiles-Bb3cuOkr.js","/npm/shaders@2.5.135/dist/core/Glitch-zqdbCc2E.js","/npm/shaders@2.5.135/dist/core/Glow-chsUpCyj.js","/npm/shaders@2.5.135/dist/core/Godrays-DdSLZtBs.js","/npm/shaders@2.5.135/dist/core/Grayscale-BC40hfXH.js","/npm/shaders@2.5.135/dist/core/Grid-Lc4S0Hmp.js","/npm/shaders@2.5.135/dist/core/GridDistortion-DQcPYbXS.js","/npm/shaders@2.5.135/dist/core/Group-BeZhHbOT.js","/npm/shaders@2.5.135/dist/core/Halftone-CsblgxnY.js","/npm/shaders@2.5.135/dist/core/HexGrid-DWRNPMET.js","/npm/shaders@2.5.135/dist/core/HueShift-C-p9W5sr.js","/npm/shaders@2.5.135/dist/core/ImageTexture-bqgQxAt9.js","/npm/shaders@2.5.135/dist/core/Invert-D-RVP34v.js","/npm/shaders@2.5.135/dist/core/Kaleidoscope-HQNQrRP_.js","/npm/shaders@2.5.135/dist/core/LensFlare-DtES749p.js","/npm/shaders@2.5.135/dist/core/LinearBlur-6mCJ9fY5.js","/npm/shaders@2.5.135/dist/core/LinearGradient-DIbCAHc7.js","/npm/shaders@2.5.135/dist/core/Liquify-8dcdv2Sl.js","/npm/shaders@2.5.135/dist/core/Marble-DX29RG-p.js","/npm/shaders@2.5.135/dist/core/Mirror-BM2xf3Nr.js","/npm/shaders@2.5.135/dist/core/MultiPointGradient-BzM24vnR.js","/npm/shaders@2.5.135/dist/core/Neon-nPiMi3wt.js","/npm/shaders@2.5.135/dist/core/Paper-Ddpe8-EI.js","/npm/shaders@2.5.135/dist/core/Perspective-BIKpqd4H.js","/npm/shaders@2.5.135/dist/core/Pixelate-Cp0-lwkG.js","/npm/shaders@2.5.135/dist/core/Plasma-M--gLd1Q.js","/npm/shaders@2.5.135/dist/core/PolarCoordinates-C42rlD2q.js","/npm/shaders@2.5.135/dist/core/Polygon-CKqH0ApY.js","/npm/shaders@2.5.135/dist/core/Posterize-B6ZhRkH2.js","/npm/shaders@2.5.135/dist/core/ProgressiveBlur-By_PgPtK.js","/npm/shaders@2.5.135/dist/core/RadialGradient-SHxJ9ZNF.js","/npm/shaders@2.5.135/dist/core/RectangularCoordinates-Dw6Xr9uV.js","/npm/shaders@2.5.135/dist/core/ReflectivePlane-VjZ1E5B0.js","/npm/shaders@2.5.135/dist/core/Ring-V4sEHwwm.js","/npm/shaders@2.5.135/dist/core/Ripples-DC1y3YuP.js","/npm/shaders@2.5.135/dist/core/RoundedRect-JY2z6YEH.js","/npm/shaders@2.5.135/dist/core/Saturation-ChJ9IWnl.js","/npm/shaders@2.5.135/dist/core/Sharpness-C1ufX8S-.js","/npm/shaders@2.5.135/dist/core/Shatter-Du5THcwZ.js","/npm/shaders@2.5.135/dist/core/SimplexNoise--vwIZVu0.js","/npm/shaders@2.5.135/dist/core/SineWave-BIVPG3oc.js","/npm/shaders@2.5.135/dist/core/Smoke-DSBQreo0.js","/npm/shaders@2.5.135/dist/core/SmokeFill-Dy-0kjsX.js","/npm/shaders@2.5.135/dist/core/Solarize-BymZlSu0.js","/npm/shaders@2.5.135/dist/core/SolidColor-D8XC4aoJ.js","/npm/shaders@2.5.135/dist/core/Spherize-tRTB4WdO.js","/npm/shaders@2.5.135/dist/core/Spiral-CiDp2Tg2.js","/npm/shaders@2.5.135/dist/core/Star-Cp4dt6Fl.js","/npm/shaders@2.5.135/dist/core/Strands-V3q8N-y1.js","/npm/shaders@2.5.135/dist/core/Stretch-CTgtc3nG.js","/npm/shaders@2.5.135/dist/core/Stripes-CZV6oGMy.js","/npm/shaders@2.5.135/dist/core/StudioBackground-CWSHq6vE.js","/npm/shaders@2.5.135/dist/core/SunBurst-CskZwXc3.js","/npm/shaders@2.5.135/dist/core/Swirl-CyGfVZ8n.js","/npm/shaders@2.5.135/dist/core/ThinFilm-CUsi8eSg.js","/npm/shaders@2.5.135/dist/core/TiltShift-vG90NlLr.js","/npm/shaders@2.5.135/dist/core/Tint-R7y5CJ4U.js","/npm/shaders@2.5.135/dist/core/Trapezoid-BXzH--z9.js","/npm/shaders@2.5.135/dist/core/Tritone-CF4Oj1sl.js","/npm/shaders@2.5.135/dist/core/Truchet-BL4jzZDX.js","/npm/shaders@2.5.135/dist/core/Twirl-BVLPHKJD.js","/npm/shaders@2.5.135/dist/core/Vesica-DzIEa3aJ.js","/npm/shaders@2.5.135/dist/core/VHS-B2IBdQgX.js","/npm/shaders@2.5.135/dist/core/Vibrance-jrvT49Du.js","/npm/shaders@2.5.135/dist/core/browser-CDogs09U.js","/npm/shaders@2.5.135/dist/core/VideoTexture-FmV1l91c.js","/npm/shaders@2.5.135/dist/core/Vignette-ng_5gjXc.js","/npm/shaders@2.5.135/dist/core/Voronoi-C8iIU7AT.js","/npm/shaders@2.5.135/dist/core/WaveDistortion-Crt9JSXN.js","/npm/shaders@2.5.135/dist/core/Weave-CFmLkEaq.js","/npm/shaders@2.5.135/dist/core/WebcamTexture-DlS4MCDm.js","/npm/shaders@2.5.135/dist/core/WorleyNoise-CEZiaVAN.js","/npm/shaders@2.5.135/dist/core/ZoomBlur-DTVSwIvc.js","/npm/shaders@2.5.135/dist/core/shaderRegistry-BVFBmRN3.js","/npm/shaders@2.5.135/dist/core/index.js","/npm/shaders@2.5.135/dist/core/telemetry/index.js","/npm/shaders@2.5.135/dist/js/createShader.js","/npm/shaders@2.5.135/dist/js/decode.js","/npm/shaders@2.5.135/dist/js/createPreview.js","/npm/shaders@2.5.135/dist/js/createSharedDevice.js"],"names":[],"mappings":"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,CAAC,GAAG,CAAQ,GAClE,CACA,OAAO,CACR,CACA,IAAI,GAAgB,IAAI,GAAc,CACrC,GAAI,iBACJ,MAAO,mBACP,KAAM,kBACN,MAAO,MACP,QAAS,CACR,CACC,kBACA,mBACA,iBACH,EACE,CACC,kBACA,kBACA,kBACH,EACE,CACC,EACA,oBACA,iBACH,CACA,EACC,UAAW,CACV,CACC,kBACA,kBACA,gBACH,EACE,CACC,kBACA,kBACA,iBACH,EACE,CACC,iBACA,kBACA,gBACH,CACA,CACA,CAAC,EACG,GAAI,iBACJ,GAAI,iBACJ,GAAU,IAAI,GAAc,CAC/B,GAAI,UACJ,KAAM,WACN,KAAM,GACN,OAAO,EAAK,CACX,OAAO,EAAI,IAAI,SAAS,EAAK,CAC5B,OAAI,EAAM,GAAI,IAAY,EAAM,IACzB,KAAK,KAAK,EAAM,GAAI,GAAK,GAAG,EAAI,GAAG,CAC3C,CAAC,CACF,EACA,SAAS,EAAK,CACb,OAAO,EAAI,IAAI,SAAS,EAAK,CAC5B,OAAI,GAAO,GAAU,GAAI,KAAK,IAAI,EAAK,GAAG,GAAK,GAAI,GAC5C,IAAM,CACd,CAAC,CACF,CACD,CAAC,EACG,GAAW,IAAI,GAAc,CAChC,GAAI,YACJ,MAAO,sBACP,KAAM,YACN,MAAO,MACP,QAAS,CACR,CACC,kBACA,mBACA,iBACH,EACE,CACC,kBACA,kBACA,gBACH,EACE,CACC,EACA,mBACA,iBACH,CACA,EACC,UAAW,CACV,CACC,kBACA,mBACA,mBACH,EACE,CACC,mBACA,mBACA,mBACH,EACE,CACC,mBACA,oBACA,iBACH,CACA,CACA,CAAC,EACG,GAAY,CACf,CACC,mBACA,iBACA,iBACF,EACC,CACC,mBACA,iBACA,kBACF,EACC,CACC,mBACA,mBACA,iBACF,CACA,EACI,GAAc,CACjB,CACC,mBACA,mBACA,kBACF,EACC,CACC,mBACA,mBACA,kBACF,EACC,CACC,mBACA,oBACA,kBACF,CACA,EACI,GAAa,IAAI,GAAc,CAClC,GAAI,cACJ,KAAM,cACN,MAAO,MACP,QAAS,GACT,UAAW,EACZ,CAAC,EACG,GAAW,CACd,UAAa,CACZ,IAAM,IACN,IAAM,IACN,CACF,EACC,aAAgB,CACf,IAAM,IACN,IAAM,IACN,IAAM,GACR,EACC,KAAQ,CACP,EACA,EACA,CACF,EACC,WAAc,CACb,IAAM,IACN,EACA,IAAM,GACR,EACC,MAAS,CACR,IAAM,IACN,EACA,CACF,EACC,MAAS,CACR,IAAM,IACN,IAAM,IACN,IAAM,GACR,EACC,OAAU,CACT,EACA,IAAM,IACN,IAAM,GACR,EACC,MAAS,CACR,EACA,EACA,CACF,EACC,eAAkB,CACjB,EACA,IAAM,IACN,IAAM,GACR,EACC,KAAQ,CACP,EACA,EACA,CACF,EACC,WAAc,CACb,IAAM,IACN,GAAK,IACL,IAAM,GACR,EACC,MAAS,CACR,IAAM,IACN,GAAK,IACL,GAAK,GACP,EACC,UAAa,CACZ,IAAM,IACN,IAAM,IACN,IAAM,GACR,EACC,UAAa,CACZ,GAAK,IACL,IAAM,IACN,IAAM,GACR,EACC,WAAc,CACb,IAAM,IACN,EACA,CACF,EACC,UAAa,CACZ,IAAM,IACN,IAAM,IACN,GAAK,GACP,EACC,MAAS,CACR,EACA,IAAM,IACN,GAAK,GACP,EACC,eAAkB,CACjB,IAAM,IACN,IAAM,IACN,IAAM,GACR,EACC,SAAY,CACX,EACA,IAAM,IACN,IAAM,GACR,EACC,QAAW,CACV,IAAM,IACN,GAAK,IACL,GAAK,GACP,EACC,KAAQ,CACP,EACA,EACA,CACF,EACC,SAAY,CACX,EACA,EACA,IAAM,GACR,EACC,SAAY,CACX,EACA,IAAM,IACN,IAAM,GACR,EACC,cAAiB,CAChB,IAAM,IACN,IAAM,IACN,GAAK,GACP,EACC,SAAY,CACX,IAAM,IACN,IAAM,IACN,IAAM,GACR,EACC,UAAa,CACZ,EACA,IAAM,IACN,CACF,EACC,SAAY,CACX,IAAM,IACN,IAAM,IACN,IAAM,GACR,EACC,UAAa,CACZ,IAAM,IACN,IAAM,IACN,IAAM,GACR,EACC,YAAe,CACd,IAAM,IACN,EACA,IAAM,GACR,EACC,eAAkB,CACjB,GAAK,IACL,IAAM,IACN,GAAK,GACP,EACC,WAAc,CACb,EACA,IAAM,IACN,CACF,EACC,WAAc,CACb,IAAM,IACN,GAAK,IACL,IAAM,GACR,EACC,QAAW,CACV,IAAM,IACN,EACA,CACF,EACC,WAAc,CACb,IAAM,IACN,IAAM,IACN,IAAM,GACR,EACC,aAAgB,CACf,IAAM,IACN,IAAM,IACN,IAAM,GACR,EACC,cAAiB,CAChB,GAAK,IACL,GAAK,IACL,IAAM,GACR,EACC,cAAiB,CAChB,GAAK,IACL,GAAK,IACL,GAAK,GACP,EACC,cAAiB,CAChB,GAAK,IACL,GAAK,IACL,GAAK,GACP,EACC,cAAiB,CAChB,EACA,IAAM,IACN,IAAM,GACR,EACC,WAAc,CACb,IAAM,IACN,EACA,IAAM,GACR,EACC,SAAY,CACX,EACA,GAAK,IACL,IAAM,GACR,EACC,YAAe,CACd,EACA,IAAM,IACN,CACF,EACC,QAAW,CACV,IAAM,IACN,IAAM,IACN,IAAM,GACR,EACC,QAAW,CACV,IAAM,IACN,IAAM,IACN,IAAM,GACR,EACC,WAAc,CACb,GAAK,IACL,IAAM,IACN,CACF,EACC,UAAa,CACZ,IAAM,IACN,GAAK,IACL,GAAK,GACP,EACC,YAAe,CACd,EACA,IAAM,IACN,IAAM,GACR,EACC,YAAe,CACd,GAAK,IACL,IAAM,IACN,GAAK,GACP,EACC,QAAW,CACV,EACA,EACA,CACF,EACC,UAAa,CACZ,IAAM,IACN,IAAM,IACN,IAAM,GACR,EACC,WAAc,CACb,IAAM,IACN,IAAM,IACN,CACF,EACC,KAAQ,CACP,EACA,IAAM,IACN,CACF,EACC,UAAa,CACZ,IAAM,IACN,IAAM,IACN,GAAK,GACP,EACC,KAAQ,CACP,IAAM,IACN,IAAM,IACN,IAAM,GACR,EACC,MAAS,CACR,EACA,IAAM,IACN,CACF,EACC,YAAe,CACd,IAAM,IACN,EACA,GAAK,GACP,EACC,KAAQ,CACP,IAAM,IACN,IAAM,IACN,IAAM,GACR,EACC,SAAY,CACX,IAAM,IACN,EACA,IAAM,GACR,EACC,QAAW,CACV,EACA,IAAM,IACN,IAAM,GACR,EACC,UAAa,CACZ,IAAM,IACN,GAAK,IACL,GAAK,GACP,EACC,OAAU,CACT,GAAK,IACL,EACA,IAAM,GACR,EACC,MAAS,CACR,EACA,EACA,IAAM,GACR,EACC,MAAS,CACR,IAAM,IACN,IAAM,IACN,IAAM,GACR,EACC,SAAY,CACX,IAAM,IACN,IAAM,IACN,IAAM,GACR,EACC,cAAiB,CAChB,EACA,IAAM,IACN,IAAM,GACR,EACC,UAAa,CACZ,IAAM,IACN,IAAM,IACN,CACF,EACC,aAAgB,CACf,EACA,IAAM,IACN,IAAM,GACR,EACC,UAAa,CACZ,IAAM,IACN,IAAM,IACN,IAAM,GACR,EACC,WAAc,CACb,IAAM,IACN,IAAM,IACN,IAAM,GACR,EACC,UAAa,CACZ,IAAM,IACN,EACA,CACF,EACC,qBAAwB,CACvB,IAAM,IACN,IAAM,IACN,IAAM,GACR,EACC,UAAa,CACZ,IAAM,IACN,IAAM,IACN,IAAM,GACR,EACC,WAAc,CACb,IAAM,IACN,IAAM,IACN,IAAM,GACR,EACC,UAAa,CACZ,IAAM,IACN,IAAM,IACN,IAAM,GACR,EACC,UAAa,CACZ,EACA,IAAM,IACN,IAAM,GACR,EACC,YAAe,CACd,EACA,IAAM,IACN,IAAM,GACR,EACC,cAAiB,CAChB,GAAK,IACL,IAAM,IACN,IAAM,GACR,EACC,aAAgB,CACf,IAAM,IACN,IAAM,IACN,IAAM,GACR,EACC,eAAkB,CACjB,IAAM,IACN,IAAM,IACN,IAAM,GACR,EACC,eAAkB,CACjB,IAAM,IACN,IAAM,IACN,IAAM,GACR,EACC,eAAkB,CACjB,IAAM,IACN,IAAM,IACN,IAAM,GACR,EACC,YAAe,CACd,EACA,EACA,IAAM,GACR,EACC,KAAQ,CACP,EACA,EACA,CACF,EACC,UAAa,CACZ,GAAK,IACL,IAAM,IACN,GAAK,GACP,EACC,MAAS,CACR,IAAM,IACN,IAAM,IACN,IAAM,GACR,EACC,QAAW,CACV,EACA,EACA,CACF,EACC,OAAU,CACT,IAAM,IACN,EACA,CACF,EACC,iBAAoB,CACnB,IAAM,IACN,IAAM,IACN,IAAM,GACR,EACC,WAAc,CACb,EACA,EACA,IAAM,GACR,EACC,aAAgB,CACf,IAAM,IACN,GAAK,IACL,IAAM,GACR,EACC,aAAgB,CACf,IAAM,IACN,IAAM,IACN,IAAM,GACR,EACC,eAAkB,CACjB,GAAK,IACL,IAAM,IACN,IAAM,GACR,EACC,gBAAmB,CAClB,IAAM,IACN,IAAM,IACN,IAAM,GACR,EACC,kBAAqB,CACpB,EACA,IAAM,IACN,IAAM,GACR,EACC,gBAAmB,CAClB,GAAK,IACL,IAAM,IACN,IAAM,GACR,EACC,gBAAmB,CAClB,IAAM,IACN,GAAK,IACL,IAAM,GACR,EACC,aAAgB,CACf,GAAK,IACL,GAAK,IACL,IAAM,GACR,EACC,UAAa,CACZ,IAAM,IACN,EACA,IAAM,GACR,EACC,UAAa,CACZ,EACA,IAAM,IACN,IAAM,GACR,EACC,SAAY,CACX,EACA,IAAM,IACN,IAAM,GACR,EACC,YAAe,CACd,EACA,IAAM,IACN,IAAM,GACR,EACC,KAAQ,CACP,EACA,EACA,IAAM,GACR,EACC,QAAW,CACV,IAAM,IACN,IAAM,IACN,IAAM,GACR,EACC,MAAS,CACR,IAAM,IACN,IAAM,IACN,CACF,EACC,UAAa,CACZ,IAAM,IACN,IAAM,IACN,GAAK,GACP,EACC,OAAU,CACT,EACA,IAAM,IACN,CACF,EACC,UAAa,CACZ,EACA,GAAK,IACL,CACF,EACC,OAAU,CACT,IAAM,IACN,IAAM,IACN,IAAM,GACR,EACC,cAAiB,CAChB,IAAM,IACN,IAAM,IACN,IAAM,GACR,EACC,UAAa,CACZ,IAAM,IACN,IAAM,IACN,IAAM,GACR,EACC,cAAiB,CAChB,IAAM,IACN,IAAM,IACN,IAAM,GACR,EACC,cAAiB,CAChB,IAAM,IACN,IAAM,IACN,IAAM,GACR,EACC,WAAc,CACb,EACA,IAAM,IACN,IAAM,GACR,EACC,UAAa,CACZ,EACA,IAAM,IACN,IAAM,GACR,EACC,KAAQ,CACP,IAAM,IACN,IAAM,IACN,GAAK,GACP,EACC,KAAQ,CACP,EACA,IAAM,IACN,IAAM,GACR,EACC,KAAQ,CACP,IAAM,IACN,IAAM,IACN,IAAM,GACR,EACC,WAAc,CACb,IAAM,IACN,IAAM,IACN,IAAM,GACR,EACC,OAAU,CACT,IAAM,IACN,EACA,IAAM,GACR,EACC,cAAiB,CAChB,IAAM,IACN,GAAK,IACL,IAAM,GACR,EACC,IAAO,CACN,EACA,EACA,CACF,EACC,UAAa,CACZ,IAAM,IACN,IAAM,IACN,IAAM,GACR,EACC,UAAa,CACZ,GAAK,IACL,IAAM,IACN,IAAM,GACR,EACC,YAAe,CACd,IAAM,IACN,GAAK,IACL,GAAK,GACP,EACC,OAAU,CACT,IAAM,IACN,IAAM,IACN,IAAM,GACR,EACC,WAAc,CACb,IAAM,IACN,IAAM,IACN,GAAK,GACP,EACC,SAAY,CACX,GAAK,IACL,IAAM,IACN,GAAK,GACP,EACC,SAAY,CACX,EACA,IAAM,IACN,IAAM,GACR,EACC,OAAU,CACT,IAAM,IACN,GAAK,IACL,GAAK,GACP,EACC,OAAU,CACT,IAAM,IACN,IAAM,IACN,IAAM,GACR,EACC,QAAW,CACV,IAAM,IACN,IAAM,IACN,IAAM,GACR,EACC,UAAa,CACZ,IAAM,IACN,GAAK,IACL,IAAM,GACR,EACC,UAAa,CACZ,IAAM,IACN,IAAM,IACN,IAAM,GACR,EACC,UAAa,CACZ,IAAM,IACN,IAAM,IACN,IAAM,GACR,EACC,KAAQ,CACP,EACA,IAAM,IACN,IAAM,GACR,EACC,YAAe,CACd,EACA,EACA,IAAM,GACR,EACC,UAAa,CACZ,GAAK,IACL,IAAM,IACN,IAAM,GACR,EACC,IAAO,CACN,IAAM,IACN,IAAM,IACN,IAAM,GACR,EACC,KAAQ,CACP,EACA,IAAM,IACN,IAAM,GACR,EACC,QAAW,CACV,IAAM,IACN,IAAM,IACN,IAAM,GACR,EACC,OAAU,CACT,EACA,GAAK,IACL,GAAK,GACP,EACC,UAAa,CACZ,GAAK,IACL,IAAM,IACN,IAAM,GACR,EACC,OAAU,CAC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oBACA,mBACA,eACH,CACA,CACA,CAAC,EACD,GAAU,CACT,GAAI,QACJ,SAAU,CACT,CACC,MACA,MACA,MACH,EACE,CACC,OACA,OACA,KACH,EACE,CACC,KACA,MACA,KACH,CACA,EACC,WAAY,CACX,CACC,mBACA,oBACA,kBACH,EACE,CACC,kBACA,kBACA,kBACH,EACE,CACC,qBACA,oBACA,kBACH,CACA,CACA,CAAC,EACD,GAAU,CACT,GAAI,QACJ,SAAU,CACT,CACC,QACA,QACA,QACH,EACE,CACC,SACA,SACA,OACH,EACE,CACC,SACA,QACA,OACH,CACA,EACC,WAAY,CACX,CACC,kBACA,oBACA,kBACH,EACE,CACC,kBACA,kBACA,oBACH,EACE,CACC,oBACA,oBACA,kBACH,CACA,CACA,CAAC,EACD,OAAO,OAAO,GAAQ,CACrB,EAAG,CACF,OACA,EACA,MACF,EACC,EAAG,CACF,OACA,EACA,OACF,EACC,IAAK,CACJ,OACA,EACA,MACF,EACC,IAAK,CACJ,OACA,EACA,OACF,EACC,EAAG,CACF,EACA,EACA,CACF,EACC,GAAI,CACH,OACA,EACA,MACF,EACC,GAAI,CACH,OACA,EACA,OACF,EACC,IAAK,CACJ,QACA,EACA,KACF,CACA,CAAC,EACD,GAAO,KAAO,CACb,OAAS,OACT,EACA,OAAS,MACV,EACA,IAAI,GAAS,IAAI,GAAc,CAC9B,GAAI,SACJ,MAAO,WACP,KAAM,SACN,OAAQ,CACP,EAAG,CACF,MAAO,CAAC,EAAG,KAAK,EAChB,KAAM,KACT,EACE,EAAG,CACF,MAAO,CAAC,EAAG,KAAK,EAChB,KAAM,OACT,EACE,EAAG,CACF,MAAO,CAAC,EAAG,KAAK,EAChB,KAAM,MACT,CACA,EACC,SAAU,QACV,MAAO,GAAO,KACd,QAAS,CACR,CACC,kBACA,mBACA,iBACH,EACE,CACC,mBACA,kBACA,kBACH,EACE,CACC,qBACA,oBACA,kBACH,CACA,EACC,UAAW,CACV,CACC,mBACA,iBACA,mBACH,EACE,CACC,mBACA,mBACA,mBACH,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ACN,MAAO,YACP,MAAO,QACX,CACA,EACE,WAAY,CACX,QAAS,iBACT,YAAa,6BACb,GAAI,CACH,KAAM,SACN,QAAS,CACR,CACC,MAAO,cACP,MAAO,aACb,EACK,CACC,MAAO,gBACP,MAAO,eACb,EACK,CACC,MAAO,cACP,MAAO,aACb,EACK,CACC,MAAO,YACP,MAAO,WACb,EACK,CACC,MAAO,aACP,MAAO,YACb,EACK,CACC,MAAO,gBACP,MAAO,eACb,EACK,CACC,MAAO,iBACP,MAAO,gBACb,EACK,CACC,MAAO,qBACP,MAAO,oBACb,EACK,CACC,MAAO,eACP,MAAO,cACb,EACK,CACC,MAAO,YACP,MAAO,WACb,EACK,CACC,MAAO,iBACP,MAAO,gBACb,EACK,CACC,MAAO,cACP,MAAO,aACb,EACK,CACC,MAAO,kBACP,MAAO,iBACb,EACK,CACC,MAAO,aACP,MAAO,YACb,EACK,CACC,MAAO,kBACP,MAAO,iBACb,EACK,CACC,MAAO,aACP,MAAO,YACb,EACK,CACC,MAAO,YACP,MAAO,WACb,EACK,CACC,MAAO,QACP,MAAO,OACb,EACK,CACC,MAAO,YACP,MAAO,WACb,CACA,EACI,MAAO,cACP,MAAO,YACX,CACA,EACE,QAAS,CACR,QAAS,EACT,YAAa,uEACb,GAAI,CACH,KAAM,CAAC,QAAS,KAAK,EACrB,IAAK,EACL,IAAK,EACL,KAAM,IACN,MAAO,iBACP,MAAO,QACX,EACG,UAAY,GAAU,GAAK,EAAQ,GACtC,EACE,MAAO,CACN,QAAS,EACT,YAAa,+KACb,GAAI,CACH,KAAM,CAAC,QAAS,KAAK,EACrB,IAAK,IACL,IAAK,EACL,KAAM,IACN,MAAO,QACP,MAAO,QACX,CACA,EACE,eAAgB,CACf,QAAS,EACT,YAAa,mEACb,GAAI,CACH,KAAM,QACN,IAAK,EACL,IAAK,EACL,KAAM,IACN,MAAO,kBACP,MAAO,QACX,CACA,EACE,cAAe,CACd,QAAS,GACT,YAAa,uHACb,GAAI,CACH,KAAM,WACN,MAAO,iBACP,MAAO,QACX,EACG,UAAY,GAAU,EAAQ,E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CACb,GAAI,CACH,KAAM,QACN,MAAO,UACP,MAAO,QACX,CACA,EACE,OAAQ,CACP,QAAS,UACT,UAAW,GACX,YAAa,4BACb,GAAI,CACH,KAAM,QACN,MAAO,UACP,MAAO,QACX,CACA,EACE,WAAY,CACX,QAAS,SACT,UAAW,GACX,YAAa,GACb,YAAa,sCACb,GAAI,CACH,KAAM,SACN,QAAS,GACT,MAAO,cACP,MAAO,QACX,CACA,EACE,QAAS,CACR,QAAS,GACT,YAAa,sDACb,GAAI,CACH,KAAM,CAAC,QAAS,KAAK,EACrB,IAAK,EACL,IAAK,IACL,KAAM,EACN,MAAO,UACP,MAAO,QACX,CACA,EACE,UAAW,CACV,QAAS,GACT,YAAa,4BACb,GAAI,CACH,KAAM,CAAC,QAAS,KAAK,EACrB,IAAK,EACL,IAAK,IACL,KAAM,EACN,MAAO,YACP,MAAO,QACX,CACA,EACE,aAAc,CACb,QAAS,EACT,YAAa,GACb,YAAa,kCACb,GAAI,CACH,KAAM,QACN,IAAK,EACL,IAAK,EACL,KAAM,EACN,MAAO,WACP,MAAO,QACX,CACA,EACE,MAAO,CACN,QAAS,EACT,YAAa,kBACb,GAAI,CACH,KAAM,QACN,IAAK,IACL,IAAK,GACL,KAAM,GACN,MAAO,QACP,MAAO,QACX,CACA,EACE,SAAU,CACT,QAAS,GACT,YAAa,iCACb,GAAI,CACH,KAAM,CAAC,QAAS,KAAK,EACrB,IAAK,EACL,IAAK,IACL,KAAM,EACN,MAAO,WACP,MAAO,QACX,CACA,EACE,WAAY,CACX,QAAS,GACT,YAAa,qCACb,GAAI,CACH,KAAM,CAAC,QAAS,KAAK,EACrB,IAAK,EACL,IAAK,IACL,KAAM,EACN,MAAO,aACP,MAAO,QACX,CACA,EACE,OAAQ,CACP,QAAS,IACT,YAAa,8BACb,GAAI,CACH,KAAM,CAAC,QAAS,KAAK,EACrB,IAAK,GACL,IAAK,IACL,KAAM,EACN,MAAO,SACP,MAAO,OACX,CACA,EACE,OAAQ,CACP,QAAS,CACR,EAAG,GACH,EAAG,CACP,EACG,UAAW,GACX,YAAa,gCACb,GAAI,CACH,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MAAM,EAAO,CACZ,QAAW,EACX,OAAU,EACV,OAAU,CACZ,EAAG,EAAM,YAAW,CAAE,EACrB,OAAI,IAAS,QACZ,QAAQ,KAAK,4BAA4B,CAAK,4BAA4B,EACnE,GAED,CACR,EACA,MAAM,GAAsB,CAC3B,KAAM,SACN,SAAU,SACV,YAAa,sDACb,MAAO,CACN,MAAO,CACN,QAAS,UACT,UAAW,GACX,YAAa,0BACb,GAAI,CACH,KAAM,QACN,MAAO,QACP,MAAO,QACX,CACA,EACE,OAAQ,CACP,QAAS,EACT,YAAa,qFACb,GAAI,CACH,KAAM,CAAC,QAAS,KAAK,EACrB,IAAK,EACL,IAAK,EACL,KAAM,IACN,MAAO,SACP,MAAO,QACX,CACA,EACE,SAAU,CACT,QAAS,EACT,YAAa,8FACb,GAAI,CACH,KAAM,CAAC,QAAS,KAAK,EACrB,IAAK,EACL,IAAK,EACL,KAAM,IACN,MAAO,WACP,MAAO,QACX,CACA,EACE,OAAQ,CACP,QAAS,CACR,EAAG,GACH,EAAG,EACP,EACG,UAAW,GACX,YAAa,iCACb,GAAI,CACH,KAAM,WACN,MAAO,kBACP,MAAO,UACX,CACA,EACE,gBAAiB,CAChB,QAAS,EACT,YAAa,iEACb,GAAI,CACH,KAAM,CAAC,QAAS,KAAK,EACrB,IAAK,EACL,IAAK,GACL,KAAM,IACN,MAAO,mBACP,MAAO,QACX,CACA,EACE,YAAa,CACZ,QAAS,UACT,UAAW,GACX,YAAa,kCACb,GAAI,CACH,KAAM,QACN,MAAO,eACP,MAAO,QACX,CACA,EACE,eAAgB,CACf,QAAS,SACT,UAAW,GACX,YAAa,qDACb,GAAI,CACH,KAAM,SACN,QAAS,CACR,CACC,MAAO,UACP,MAAO,SACb,EACK,CACC,MAAO,SACP,MAAO,QACb,EACK,CACC,MAAO,SACP,MAAO,QACb,CACA,EACI,MAAO,kBACP,MAAO,QACX,CACA,EACE,WAAY,CACX,QAAS,SACT,UAAW,GACX,YAAa,GACb,YAAa,gEACb,GAAI,CACH,KAAM,SACN,QAAS,GACT,MAAO,iBACP,MAAO,QACX,CACA,CACA,EACC,aAAc,CA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QAAS,EACT,YAAa,mFACb,GAAI,CACH,KAAM,QACN,IAAK,EACL,IAAK,GACL,KAAM,EACN,MAAO,SACP,MAAO,SACX,CACA,EACE,QAAS,CACR,QAAS,IACT,YAAa,yDACb,GAAI,CACH,KAAM,QACN,IAAK,EACL,IAAK,EACL,KAAM,IACN,MAAO,UACP,MAAO,SACX,CACA,EACE,gBAAiB,CAChB,QAAS,EACT,YAAa,wEACb,GAAI,CACH,KAAM,QACN,IAAK,EACL,IAAK,EACL,KAAM,IACN,MAAO,mBACP,MAAO,SACX,CACA,EACE,aAAc,CACb,QAAS,UACT,UAAW,GACX,YAAa,gCACb,GAAI,CACH,KAAM,QACN,MAAO,gBACP,MAAO,SACX,CACA,EACE,aAAc,CACb,QAAS,EACT,YAAa,wCACb,GAAI,CACH,KAAM,QACN,IAAK,EACL,IAAK,EACL,KAAM,IACN,MAAO,gBACP,MAAO,SACX,CACA,EACE,UAAW,CACV,QAAS,IACT,YAAa,oDACb,GAAI,CACH,KAAM,QACN,IAAK,GACL,IAAK,EACL,KAAM,IACN,MAAO,aACP,MAAO,SACX,CACA,EACE,WAAY,CACX,QAAS,IACT,YAAa,mCACb,GAAI,CACH,KAAM,QACN,IAAK,EACL,IAAK,IACL,KAAM,EACN,MAAO,cACP,MAAO,UACX,CACA,EACE,WAAY,CACX,QAAS,GACT,YAAa,kEACb,GAAI,CACH,KAAM,QACN,IAAK,EACL,IAAK,EACL,KAAM,IACN,MAAO,aACP,MAAO,UACX,CACA,EACE,QAAS,CACR,QAAS,GACT,YAAa,2DACb,GAAI,CACH,KAAM,QACN,IAAK,EACL,IAAK,EACL,KAAM,IACN,MAAO,UACP,MAAO,UACX,CACA,EACE,WAAY,CACX,QAAS,IACT,YAAa,qFACb,GAAI,CACH,KAAM,QACN,IAAK,GACL,IAAK,EACL,KAAM,IACN,MAAO,aACP,MAAO,UACX,CACA,EACE,UAAW,CACV,QAAS,UACT,UAAW,GACX,YAAa,0BACb,GAAI,CACH,KAAM,QACN,MAAO,aACP,MAAO,MACX,CACA,EACE,cAAe,CACd,QAAS,EACT,YAA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ACL,IAAK,GACL,KAAM,IACN,MAAO,iBACP,MAAO,SACP,UAAW,CAAE,MAAO,OAAO,CAC/B,CACA,EACE,cAAe,CACd,QAAS,IACT,YAAa,yDACb,GAAI,CACH,KAAM,CAAC,QAAS,KAAK,EACrB,IAAK,GACL,IAAK,GACL,KAAM,GACN,MAAO,iBACP,MAAO,SACP,UAAW,CAAE,MAAO,OAAO,CAC/B,CACA,EACE,MAAO,CACN,QAAS,EACT,YAAa,yFACb,GAAI,CACH,KAAM,QACN,IAAK,GACL,IAAK,EACL,KAAM,IACN,MAAO,QACP,MAAO,WACX,CACA,EACE,WAAY,CACX,QAAS,IACT,YAAa,uDACb,GAAI,CACH,KAAM,CAAC,QAAS,KAAK,EACrB,IAAK,EACL,IAAK,EACL,KAAM,IACN,MAAO,aACP,MAAO,QACX,CACA,EACE,WAAY,CACX,QAAS,GACT,YAAa,uFACb,gBAAiB,CAAC,EAAM,IAAS,EAAO,GAAM,EAAO,EACrD,GAAI,CACH,KAAM,CAAC,QAAS,KAAK,EACrB,IAAK,EACL,IAAK,EACL,KAAM,IACN,MAAO,aACP,MAAO,QACX,CACA,EACE,WAAY,CACX,QAAS,GACT,YAAa,wEACb,GAAI,CACH,KAAM,QACN,IAAK,IACL,IAAK,GACL,KAAM,EACN,MAAO,cACP,MAAO,WACX,CACA,EACE,UAAW,CACV,QAAS,GACT,YAAa,oDACb,GAAI,CACH,KAAM,CAAC,QAAS,KAAK,EACrB,IAAK,EACL,IAAK,EACL,KAAM,IACN,MAAO,YACP,MAAO,WACX,CACA,EACE,kBAAmB,CAClB,QAAS,GACT,YAAa,+DACb,GAAI,CACH,KAAM,CAAC,QAAS,KAAK,EACrB,IAAK,EACL,IAAK,EACL,KAAM,IACN,MAAO,qBACP,MAAO,WACX,CACA,EACE,eAAgB,CACf,QAAS,UACT,UAAW,GACX,YAAa,kCACb,GAAI,CACH,KAAM,QACN,MAAO,kBACP,MAAO,WACX,CACA,EACE,MAAO,CACN,QAAS,SACT,YAAa,gEACb,UAAW,GACX,YAAa,GACb,GAAI,CACH,KAAM,SACN,QAAS,CACR,CACC,MAAO,UACP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L,IAAK,EACL,KAAM,IACN,MAAO,YACP,MAAO,OACX,CACA,EACE,WAAY,CACX,QAAS,GACT,gBAAiB,CAAC,EAAM,IAAS,EAAO,GAAM,EAAO,EACrD,YAAa,8EACb,GAAI,CACH,KAAM,CAAC,QAAS,KAAK,EACrB,IAAK,EACL,IAAK,EACL,KAAM,IACN,MAAO,aACP,MAAO,OACX,CACA,EACE,UAAW,CACV,QAAS,EACT,YAAa,mEACb,GAAI,CACH,KAAM,CAAC,QAAS,KAAK,EACrB,IAAK,GACL,IAAK,EACL,KAAM,IACN,MAAO,aACP,MAAO,OACX,CACA,EACE,WAAY,CACX,QAAS,IACT,YAAa,yBACb,GAAI,CACH,KAAM,QACN,IAAK,EACL,IAAK,IACL,KAAM,EACN,MAAO,cACP,MAAO,WACX,CACA,EACE,UAAW,CACV,QAAS,IACT,YAAa,4EACb,GAAI,CACH,KAAM,CAAC,QAAS,KAAK,EACrB,IAAK,EACL,IAAK,EACL,KAAM,IACN,MAAO,YACP,MAAO,WACX,CACA,EACE,eAAgB,CACf,QAAS,UACT,UAAW,GACX,YAAa,6DACb,GAAI,CACH,KAAM,QACN,MAAO,kBACP,MAAO,WACX,CACA,EACE,kBAAmB,CAClB,QAAS,GACT,YAAa,8BACb,GAAI,CACH,KAAM,CAAC,QAAS,KAAK,EACrB,IAAK,EACL,IAAK,EACL,KAAM,IACN,MAAO,qBACP,MAAO,WACX,CACA,EACE,QAAS,CACR,QAAS,GACT,YAAa,yEACb,GAAI,CACH,KAAM,CAAC,QAAS,KAAK,EACrB,IAAK,EACL,IAAK,EACL,KAAM,IACN,MAAO,UACP,MAAO,SACX,CACA,EACE,gBAAiB,CAChB,QAAS,GACT,YAAa,wEACb,GAAI,CACH,KAAM,CAAC,QAAS,KAAK,EACrB,IAAK,EACL,IAAK,EACL,KAAM,IACN,MAAO,mBACP,MAAO,SACX,CACA,EACE,aAAc,CACb,QAAS,UACT,UAAW,GACX,YAAa,gCACb,GAAI,CACH,KAAM,QACN,MAAO,gBACP,MAAO,SACX,CACA,EACE,UAAW,CACV,QAAS,UACT,UAAW,GACX,YAAa,0DACb,GAAI,CACH,KAAM,QACN,MAAO,aACP,MAAO,MACX,CACA,EACE,cAAe,CACd,QAAS,EACT,YAAa,4DACb,GAAI,CACH,KAAM,CAAC,QAAS,KAAK,EACrB,IAAK,EACL,IAAK,EACL,KAAM,IACN,MAAO,iBACP,MAAO,MACX,CACA,EACE,uBAAwB,CACvB,QAAS,GACT,UAAW,GACX,YAAa,4CACb,GAAI,CACH,KAAM,WACN,MAAO,sBACP,MAAO,MACX,CACA,EACE,MAAO,CACN,QAAS,GACT,YAAa,wCACb,GAAI,CACH,KAAM,QACN,MAAO,QACP,MAAO,OACX,CACA,EACE,YAAa,CACZ,QAAS,GACT,YAAa,GACb,YAAa,gHAChB,EACE,UAAW,CACV,QAAS,GACT,YAAa,GACb,YAAa,4HAChB,CACA,EACC,YAAa,CAAC,CAAE,SAAA,EAAU,UAAA,EAAW,UAAA,EAAW,WAAA,EAAY,SAAA,EAAU,SAAA,CAAQ,IAAO,CACpF,GAAI,CAAC,EAAW,OAAO,KACvB,MAAM,EAAY,EAAS,KAAK,QAAQ,MACxC,GAAI,OAAO,GAAc,UAAY,GAAa,EAAG,OAAO,KAC5D,MAAM,EAAe,GAAiB,CAAS,EAC/C,EAAU,IAAM,CACX,GAAc,cAAc,SAAS,EAAa,aAAa,QAAO,CAC3E,CAAC,EACD,MAAM,EAAM,GAAU,gBAAa,GAAQ,EACrC,EAAO,GAA0B,EAAc,KAAK,MAAM,EAAW,MAAQ,CAAG,EAAG,KAAK,MAAM,EAAW,OAAS,CAAG,EAAG,CAAS,EACjI,CAAE,aAAA,EAAc,cAAA,EAAe,aAAA,CAAY,EAAK,EACtD,OAAA,EAAS,CAAC,CAAE,MAAA,EAAO,OAAA,CAAM,IAAO,CAC/B,EAAK,mBAAmB,KAAK,MAAM,EAAQ,CAAG,EAAG,KAAK,MAAM,EAAS,CAAG,CAAC,CAC1E,CAAC,EACM,CACN,QAAS,CACR,aAAA,EACA,eAAgB,CACpB,EACG,gBAAiB,IAAM,CACtB,MAAM,EAAc,EAAS,KAAK,QAAQ,MAC1C,OAAA,EAAa,EAAc,CAAC,EACrB,CACR,CACH,CACC,EACA,aAAc,CAAC,CAAE,SAAA,EAAU,UAAA,EAAW,UAAA,EAAW,eAAA,EAAgB,eAAA,CAAc,IAAO,CACrF,GAAI,CAAC,EAAW,OAAO,EAAK,CAAC,EAC7B,MAAM,EAAe,GAAgB,cAAgB,GAAiB,CAAS,EAC1E,GAAgB,EAAU,IAAM,CAChC,GAAc,cAAc,SAAS,EAAa,aAAa,QAAO,CAC3E,CAAC,EACD,MAAM,EAAiB,GAAgB,eACjC,EAAc,EAAS,YAAY,QAAQ,MAC3C,GAAiB,IAAM,CAC5B,MAAM,EAAM,EAAS,MAAM,QAAQ,MACnC,GAAI,OAAO,GAAQ,UAAY,IAAQ,KAAM,OAAO,EACpD,GAAI,CACH,OAAO,KAAK,MAAM,CAAG,CACtB,MAAQ,CACP,MAAO,CACN,KAAM,YACN,OAAQ,IACR,QAAS,GACT,QAAS,EACd,CACG,CACD,GAAC,EACD,OAAI,EAAoB,GAAiB,EAAc,GAAoB,EAAa,EAAgB,CAAS,EAAG,EAAU,EAAgB,CAAc,EAChJ,GAAiB,EAAc,GAAyB,EAAS,UAAU,QAAQ,OAAS,EAAc,MAAQ,YAAa,EAAe,EAAS,MAAO,CAAc,EAAG,EAAU,EAAgB,CAAc,CACpO,CACD,EC1bM,GAAsB,CAC3B,KAAM,aACN,SAAU,cACV,YAAa,oDACb,YAAa,GACb,cAAe,GACf,MAAO,CACN,UAAW,CACV,QAAS,EACT,YAAa,0CACb,GAAI,CACH,KAAM,CAAC,QAAS,KAAK,EACrB,IAAK,EACL,IAAK,GACL,KAAM,GACN,MAAO,YACP,MAAO,QACX,CACA,EACE,UAAW,CACV,QAAS,GACT,YAAa,+CACb,GAAI,CACH,KAAM,CAAC,QAAS,KAAK,EACrB,IAAK,EACL,IAAK,GACL,KAAM,EACN,MAAO,aACP,MAAO,QACX,CACA,EACE,SAAU,CACT,QAAS,EACT,YAAa,6CACb,GAAI,CACH,KAAM,CAAC,QAAS,KAAK,EACrB,IAAK,EACL,IAAK,IACL,KAAM,EACN,MAAO,WACP,MAAO,QACX,CACA,EACE,UAAW,CACV,QAAS,EACT,YAAa,8CACb,GAAI,CACH,KAAM,CAAC,QAAS,KAAK,EACrB,IAAK,EACL,IAAK,EACL,KAAM,GACN,MAAO,YACP,MAAO,QACX,CACA,CACA,EACC,aAAc,CAAC,CAAE,SAAA,EAAU,UAAA,EAAW,UAAA,CAAS,IAAO,CACrD,GAAI,CAAC,EACJ,eAAQ,MAAM,8DAA8D,EACrE,EAAK,CAAC,EAEd,MAAM,EAAY,GAAiB,CAAS,EAC5C,EAAU,IAAM,CACX,GAAW,cAAc,SAAS,EAAU,aAAa,QAAO,CACrE,CAAC,EACD,MAAM,EAAqB,EAAa,EAAE,IAAI,EAAa,CAAC,EACtD,EAAS,EACT,EAAY,EAAS,UAAU,QAC/B,EAAgB,EAAS,UAAU,QACnC,EAAkB,EAAS,SAAS,QACpC,EAAkB,EAAS,UAAU,QACrC,EAAS,EAAmB,YAAY,EAAM,CAAC,CAAC,EAChD,EAAY,EAAK,EAAO,OAAO,EAAe,GAAI,EAAe,CAAkB,CAAC,EAAG,EAAO,OAAO,GAAI,EAAe,CAAkB,EAAG,CAAa,CAAC,EAC3J,EAAoB,EAAK,GAAI,EAAO,EAAG,CAAkB,EAAG,EAAO,CAAC,EACpE,EAAkB,GAAI,EAAiB,KAAK,GAAK,GAAG,EACpD,EAAW,GAAI,CAAe,EAC9B,EAAW,EAAI,CAAe,EAC9B,EAAW,GAAI,EAAmB,EAAK,GAAI,GAAI,CAAkB,EAAG,EAAE,CAAC,EACvE,EAAY,GAAI,EAAK,GAAI,GAAI,EAAS,EAAG,CAAQ,EAAG,GAAI,EAAS,EAAG,CAAQ,CAAC,EAAG,GAAI,GAAI,EAAS,EAAG,CAAQ,EAAG,GAAI,EAAS,EAAG,CAAQ,CAAC,CAAC,EAAG,EAAK,GAAI,GAAI,CAAkB,EAAG,EAAE,CAAC,EACjL,EAAS,EAAK,GAAI,EAAU,EAAG,CAAkB,EAAG,EAAU,CAAC,EAC/D,EAAa,GAAI,GAAI,GAAI,EAAQ,GAAI,GAAM,GAAI,EAAQ,CAAS,CAAC,EAAG,CAAS,CAAC,EAAG,GAAI,EAAK,CAAC,EAAG,CAAS,CAAC,EAAG,EAAK,GAAI,EAAE,CAAC,EACvH,EAAmB,GAAI,EAAG,GAAI,GAAI,EAAW,EAAG,EAAW,CAAC,EAAE,IAAI,GAAI,EAAW,EAAG,EAAW,CAAC,CAAC,EAAG,GAAI,EAAiB,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EACnI,EAAiB,GAAI,EAAY,GAAI,GAAI,EAAW,IAAI,EAAG,CAAgB,CAAC,EAC5E,EAAc,GAAI,EAAQ,EAAK,GAAI,EAAe,EAAG,CAAkB,EAAG,EAAe,CAAC,CAAC,EACjG,OAAO,GAAmB,EAAK,EAAU,OAAO,CAAW,CAAC,CAAC,CAC9D,CACD,ECtFA,IAAI,GAAS,GAAG,CAAC,CAAC,CAAC,IACX,GAAM,EAAI,EAAE,IAAI,MAAM,CAAC,EAAE,IAAI,UAAU,CAAC,CAC/C,EACD,MAAM,GAAsB,CAC3B,KAAM,SACN,SAAU,UACV,YAAa,uDACb,YAAa,GACb,cAAe,GACf,MAAO,CACN,UAAW,CACV,QAAS,GACT,YAAa,yDACb,GAAI,CACH,KAAM,CAAC,QAAS,KAAK,EACrB,IAAK,EACL,IAAK,EACL,KAAM,IACN,MAAO,YACP,MAAO,QACX,CACA,EACE,MAAO,CACN,QAAS,EACT,YAAa,sCACb,GAAI,CACH,KAAM,QACN,IAAK,GACL,IAAK,EACL,KAAM,GACN,MAAO,QACP,MAAO,QACX,CACA,EACE,SAAU,CACT,QAAS,EACT,YAAa,yDACb,GAAI,CACH,KAAM,CAAC,QAAS,KAAK,EACrB,IAAK,EACL,IAAK,GACL,KAAM,GACN,MAAO,YACP,MAAO,QACX,CACA,EACE,aAAc,CACb,QAAS,GACT,YAAa,yCACb,GAAI,CACH,KAAM,CAAC,QAAS,KAAK,EACrB,IAAK,EACL,IAAK,GACL,KAAM,EACN,MAAO,gBACP,MAAO,QACX,CACA,EACE,kBAAmB,CAClB,QAAS,GACT,YAAa,8DACb,GAAI,CACH,KAAM,CAAC,QAAS,KAAK,EACrB,IAAK,EACL,IAAK,EACL,KAAM,IACN,MAAO,aACP,MAAO,QACX,CACA,EACE,aAAc,CACb,QAAS,GACT,YAAa,2DACb,GAAI,CACH,KAAM,CAAC,QAAS,KAAK,EACrB,IAAK,EACL,IAAK,EACL,KAAM,IACN,MAAO,SACP,MAAO,QACX,CACA,EACE,kBAAmB,CAClB,QAAS,GACT,YAAa,kEACb,GAAI,CACH,KAAM,CAAC,QAAS,KAAK,EACrB,IAAK,EACL,IAAK,EACL,KAAM,IACN,MAAO,YACP,MAAO,QACX,CACA,CACA,EACC,aAAc,CAAC,CAAE,SAAA,EAAU,UAAA,EAAW,UAAA,CAAS,IAAO,CACrD,GAAI,CAAC,EAAW,OAAO,EAAK,EAAG,EAAG,EAAG,CAAC,EACtC,MAAM,EAAe,GAAiB,CAAS,EAC/C,EAAU,IAAM,CACX,GAAc,cAAc,SAAS,EAAa,aAAa,QAAO,CAC3E,CAAC,EACD,MAAM,EAAY,EAAS,UAAU,QAC/B,EAAQ,EAAS,MAAM,QACvB,EAAiB,EAAS,SAAS,QACnC,EAAe,EAAS,aAAa,QACrC,EAAc,EAAS,kBAAkB,QACzC,EAAe,EAAS,aAAa,QACrC,EAAY,EAAS,kBAAkB,QACvC,EAAI,GAAK,IAAI,CAAK,EAClB,EAAY,GAAM,EAAE,IAAI,GAAG,CAAC,EAC5B,EAAW,GAAO,CAAS,EAC3B,EAAY,EAAS,IAAI,CAAQ,EAAE,IAAI,CAAQ,EAC/C,EAAY,GAAM,EAAE,IAAI,EAAE,CAAC,EAC3B,EAAW,GAAO,EAAU,IAAI,EAAE,CAAC,EACnC,EAAY,EAAS,IAAI,CAAQ,EACjC,EAAY,EAAM,CAAC,EAAE,IAAI,CAAS,EAClC,EAAa,GAAK,EAAW,CAAS,EACtC,EAAe,GAAK,EAAU,IAAI,GAAG,EAAG,CAAS,EACjD,EAAiB,GAAM,EAAW,IAAI,EAAE,EAAE,IAAI,EAAa,IAAI,EAAE,CAAC,EAAG,EAAG,CAAC,EAAE,IAAI,CAAS,EACxF,EAAS,GAAM,EAAS,EAAE,IAAI,CAAY,CAAC,EAC3C,EAAY,EAAO,IAAI,GAAG,EAAE,IAAI,EAAU,IAAI,IAAI,CAAC,EACnD,EAAY,GAAO,CAAS,EAC5B,EAAc,GAAK,EAAM,CAAC,EAAE,IAAI,EAAe,IAAI,EAAE,CAAC,EAAG,CAAS,EAClE,EAAY,GAAO,EAAU,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,GAAG,EAAE,IAAI,CAAW,EACtE,EAAY,GAAM,EAAS,EAAE,IAAI,EAAa,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,EAAE,IAAI,EAAU,IAAI,IAAI,CAAC,EACvF,EAAY,GAAO,CAAS,EAC5B,EAAc,GAAK,EAAM,CAAC,EAAE,IAAI,EAAe,IAAI,EAAE,CAAC,EAAG,CAAS,EAClE,EAAY,GAAO,EAAU,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,GAAG,EAAE,IAAI,CAAW,EACtE,EAAY,GAAM,EAAS,EAAE,IAAI,EAAa,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,EAAE,IAAI,EAAU,IAAI,KAAK,CAAC,EACxF,EAAY,GAAO,CAAS,EAC5B,EAAc,GAAK,EAAM,CAAC,EAAE,IAAI,EAAe,IAAI,EAAE,CAAC,EAAG,CAAS,EAClE,EAAY,GAAO,EAAU,IAAI,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,GAAG,EAAE,IAAI,CAAW,EACvE,EAAO,GAAM,EAAS,EAAE,IAAI,CAAC,CAAC,EAC9B,GAAY,EAAK,IAAI,GAAG,EAAE,IAAI,EAAO,IAAI,GAAG,CAAC,EAAE,IAAI,EAAU,IAAI,IAAI,CAAC,EACtE,GAAY,GAAO,EAAS,EAC5B,GAAc,GAAK,EAAM,CAAC,EAAE,IAAI,EAAe,IAAI,GAAG,CAAC,EAAG,EAAS,EACnE,GAAgB,GAAO,GAAU,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,GAAG,EAAE,IAAI,EAAW,EAC1E,GAAiB,EAAU,IAAI,CAAS,EAAE,IAAI,CAAS,EAAE,IAAI,EAAa,EAC1E,GAAa,EAAY,IAAI,GAAO,EAAU,IAAI,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,IAAI,EACzE,GAAc,EAAK,GAAM,EAAS,EAAE,IAAI,GAAe,IAAI,CAAc,CAAC,EAAG,EAAG,CAAC,EAAG,GAAM,EAAS,EAAE,IAAI,GAAW,IAAI,CAAc,CAAC,EAAG,EAAG,CAAC,CAAC,EAC/I,GAAa,EAAK,IAAI,GAAG,EAAE,IAAI,EAAO,IAAI,IAAI,CAAC,EAAE,IAAI,EAAU,IAAI,IAAI,CAAC,EACxE,GAAc,GAAO,EAAU,EAC/B,GAAc,GAAO,GAAW,IAAI,GAAG,CAAC,EACxC,GAAgB,GAAK,EAAM,CAAC,EAAE,IAAI,EAAa,IAAI,CAAc,CAAC,EAAG,EAAW,EAAE,IAAI,CAAW,EACjG,EAAgB,GAAK,EAAM,CAAC,EAAE,IAAI,EAAa,IAAI,CAAc,EAAE,IAAI,EAAE,CAAC,EAAG,EAAW,EAAE,IAAI,CAAW,EACzG,GAAa,EAAK,GAAI,GAAY,EAAG,EAAM,CAAC,EAAE,IAAI,GAAY,CAAC,EAAG,EAAa,EAAG,GAAI,GAAY,EAAG,EAAM,CAAC,EAAE,IAAI,GAAY,CAAC,EAAG,CAAa,CAAC,EAChJ,GAAY,EAAe,IAAI,IAAI,EAAE,IAAI,EAAe,IAAI,GAAI,EAAc,EAAE,IAAI,CAAC,CAAC,CAAC,EACvF,EAAQ,EAAK,GAAM,GAAW,EAAE,IAAI,EAAS,EAAG,EAAG,CAAC,EAAG,GAAW,CAAC,EACnE,EAAS,EAAK,GAAM,GAAW,EAAE,IAAI,EAAS,EAAG,EAAG,CAAC,EAAG,GAAW,CAAC,EACpE,EAAU,EAAa,OAAO,CAAK,EAAE,EACrC,GAAU,EAAa,OAAO,EAAU,EAAE,EAC1C,GAAU,EAAa,OAAO,CAAM,EAAE,EACtC,GAAgB,EAAK,EAAS,GAAS,EAAO,EAC9C,GAAgB,GAAO,GAAU,IAAI,GAAG,CAAC,EACzC,GAAY,GAAO,EAAO,IAAI,EAAU,IAAI,IAAI,CAAC,EAAE,IAAI,GAAG,CAAC,EAC3D,GAAW,GAAM,GAAM,EAAS,EAAE,IAAI,CAAC,EAAE,IAAI,GAAU,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EACtE,GAAa,EAAK,EAAM,CAAC,EAAE,IAAI,GAAK,EAAM,CAAC,EAAG,EAAQ,CAAC,EAAE,IAAI,GAAK,EAAM,CAAC,EAAG,EAAQ,EAAE,IAAI,EAAM,CAAC,EAAE,IAAI,GAAK,EAAM,CAAC,EAAG,EAAQ,CAAC,CAAC,CAAC,EAAG,EAAM,CAAC,EAAE,IAAI,GAAK,EAAM,CAAC,EAAG,EAAQ,CAAC,EAAG,EAAM,CAAC,EAAE,IAAI,GAAK,EAAM,EAAE,EAAG,GAAM,GAAS,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAClO,GAAM,GAAM,GAAO,EAAO,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAU,IAAI,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,EACzE,GAAW,GAAI,GAAe,GAAI,EAAK,GAAM,GAAI,GAAI,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,EAAG,EAAG,CAAC,EAAG,GAAM,EAAM,CAAC,EAAE,IAAI,GAAI,GAAI,IAAI,CAAC,CAAC,CAAC,EAAG,EAAG,CAAC,EAAG,GAAM,EAAM,CAAC,EAAE,IAAI,GAAI,GAAI,IAAI,CAAC,CAAC,CAAC,EAAG,EAAG,CAAC,CAAC,EAAE,IAAI,GAAG,EAAG,GAAY,GAAK,EAAM,EAAE,EAAG,EAAa,CAAC,EAAG,EAAY,IAAI,EAAW,EAAE,IAAI,CAAW,EAAE,IAAI,CAAc,CAAC,EAC5R,GAAgB,GAAM,EAAY,IAAI,CAAW,EAAE,IAAI,CAAW,EAAG,EAAG,CAAC,EACzE,EAAe,EAAI,EAAS,EAAE,IAAI,EAAa,CAAC,EAAE,IAAI,EAAM,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EACxF,EAAiB,EAAM,CAAC,EAAE,IAAI,EAAU,IAAI,CAAY,EAAE,IAAI,EAAE,EAAE,IAAI,EAAa,CAAC,EAC1F,OAAO,GAAmB,EAAK,GAAS,IAAI,CAAc,EAAG,EAAM,CAAC,CAAC,CAAC,CACvE,CACD,ECjKM,GAAsB,CAC3B,KAAM,OACN,SAAU,UACV,YAAa,6CACb,YAAa,GACb,cAAe,GACf,MAAO,CACN,UAAW,CACV,QAAS,EACT,YAAa,iDACb,GAAI,CACH,KAAM,CAAC,QAAS,KAAK,EACrB,IAAK,EACL,IAAK,GACL,KAAM,GACN,MAAO,YACP,MAAO,QACX,CACA,EACE,UAAW,CACV,QAAS,GACT,YAAa,+DACb,GAAI,CACH,KAAM,CAAC,QAAS,KAAK,EACrB,IAAK,EACL,IAAK,EACL,KAAM,IACN,MAAO,YACP,MAAO,QACX,CACA,EACE,KAAM,CACL,QAAS,GACT,YAAa,gEACb,gBAAiB,CAAC,EAAM,IAAS,IAAS,IAAO,IAAS,GAC1D,GAAI,CACH,KAAM,CAAC,QAAS,KAAK,EACrB,IAAK,EACL,IAAK,IACL,KAAM,EACN,MAAO,YACP,MAAO,QACX,CACA,CACA,EACC,YAAa,CAAC,CAAE,UAAA,EAAW,UAAA,EAAW,WAAA,EAAY,SAAA,EAAU,SAAA,EAAU,SAAA,CAAQ,IAAO,CAEpF,GADI,CAAC,GACD,EAAS,KAAK,QAAQ,QAAU,EAAG,OAAO,KAC9C,MAAM,EAAe,GAAiB,CAAS,EAC/C,EAAU,IAAM,CACX,GAAc,cAAc,SAAS,EAAa,aAAa,QAAO,CAC3E,CAAC,EACD,MAAM,EAAM,GAAU,gBAAa,GAAQ,EACrC,EAAW,KAAK,MAAM,EAAW,MAAQ,CAAG,EAC5C,EAAY,KAAK,MAAM,EAAW,OAAS,CAAG,EAC9C,EAAY,KAAK,IAAI,GAAuB,GAAG,EAC/C,EAAS,EAAY,EAAI,EAAW,EAAY,EAChD,EAAe,KAAK,IAAI,EAAG,GAAU,EAAI,EAAY,KAAK,MAAM,EAAY,CAAM,CAAC,EACnF,EAAgB,KAAK,IAAI,EAAG,GAAU,EAAI,KAAK,MAAM,EAAY,CAAM,EAAI,CAAS,EACpF,EAAY,IAAI,GAAe,EAAc,CAAa,EAChE,EAAU,KAAO,GACjB,MAAM,EAAkB,GAAe,CAAS,EAC1C,EAAiB,GAAe,CAAS,EAAE,WAAU,EAC3D,EAAU,IAAM,CACf,EAAU,QAAO,CAClB,CAAC,EACD,KAAM,CAAE,aAAc,EAAW,cAAe,EAAY,iBAAA,CAAgB,EAAK,GAAkC,EAAgB,EAAc,EAAe,EAAW,OAAQ,EAAc,EAAe,CAAE,WAAY,EAAI,CAAE,EAC9N,EAAc,EAAQ,CAAQ,EAC9B,EAAe,EAAQ,CAAS,EAChC,EAAK,GAAK,CAAY,EACtB,EAAK,GAAK,CAAa,EACvB,EAAc,EAAS,KAAK,eAC5B,EAAiB,GAAG,IAAM,CAC/B,MAAM,EAAM,GACN,EAAK,EAAI,IAAI,CAAE,EACf,EAAK,EAAI,IAAI,CAAE,EACrB,GAAG,EAAG,SAAS,CAAE,EAAG,IAAM,CACzB,MAAM,EAAI,EAAG,QAAO,EAAG,IAAI,EAAM,EAAE,CAAC,EAAE,IAAI,EAAM,CAAY,CAAC,EACvD,EAAI,EAAG,QAAO,EAAG,IAAI,EAAM,EAAE,CAAC,EAAE,IAAI,EAAM,CAAa,CAAC,EACxD,EAAO,EAAE,IAAI,CAAW,EAAE,MAAK,EAAG,MAAK,EAAG,MAAM,GAAI,CAAC,EAAG,GAAI,EAAY,IAAI,CAAC,CAAC,CAAC,EAAE,OAAM,EACvF,EAAO,EAAE,IAAI,CAAY,EAAE,MAAK,EAAG,MAAK,EAAG,MAAM,GAAI,CAAC,EAAG,GAAI,EAAa,IAAI,CAAC,CAAC,CAAC,EAAE,OAAM,EACzF,EAAW,GAAI,EAAY,IAAI,CAAC,CAAC,EACjC,EAAW,GAAI,EAAa,IAAI,CAAC,CAAC,EAClC,EAAS,EAAK,CAAC,EAAE,MAAK,EAC5B,QAAS,GAAK,EAAG,GAAK,EAAG,KAAM,QAAS,GAAK,EAAG,GAAK,EAAG,KAAM,CAC7D,MAAM,GAAK,EAAG,QAAO,EAAG,IAAI,GAAO,GAAK,IAAM,CAAC,CAAC,EAAE,IAAI,EAAM,CAAY,CAAC,EACnE,GAAK,EAAG,QAAO,EAAG,IAAI,GAAO,GAAK,IAAM,CAAC,CAAC,EAAE,IAAI,EAAM,CAAa,CAAC,EACpE,GAAK,GAAG,IAAI,CAAW,EAAE,MAAK,EAAG,MAAM,GAAI,CAAC,EAAG,CAAQ,EAAE,OAAM,EAC/D,EAAK,GAAG,IAAI,CAAY,EAAE,MAAK,EAAG,MAAM,GAAI,CAAC,EAAG,CAAQ,EAAE,OAAM,EACtE,EAAO,OAAO,EAAO,IAAI,GAAY,EAAc,GAAM,GAAI,CAAE,EAAG,GAAI,CAAC,CAAC,CAAC,CAAC,CAC3E,CACA,EAAO,OAAO,EAAO,IAAI,EAAM,EAAI,EAAE,CAAC,CAAC,EACvC,MAAM,GAAY,EAAS,UAAU,QAC/B,GAAO,GAAU,IAAI,EAAM,EAAE,CAAC,EAAE,IAAI,EAAM,IAAI,CAAC,EAC/C,GAAM,GAAI,EAAO,IAAK,EAAK,MAAO,MAAO,KAAK,CAAC,EAC/C,GAAO,GAAM,GAAI,IAAI,EAAS,EAAE,IAAI,EAAI,EAAG,EAAM,CAAC,EAAG,GAAK,IAAI,EAAM,CAAC,CAAC,CAAC,EACvE,GAAO,GAAI,GAAK,IAAI,EAAI,EAAE,IAAI,GAAK,IAAI,EAAM,CAAC,CAAC,CAAC,EAAG,GAAI,IAAI,EAAS,CAAC,EAAE,IAAI,GAAI,GAAK,EAAM,IAAI,CAAC,CAAC,EACtG,GAAa,EAAiB,GAAM,EAAI,CAAE,EAAG,EAAK,EAAO,IAAI,IAAI,EAAI,EAAG,EAAO,EAAE,IAAI,EAAI,CAAC,CAAC,EAAE,YAAW,EACxG,IAAI,GACJ,GAAI,EAAa,CAChB,KAAM,CAAE,cAAA,GAAe,QAAA,GAAS,SAAA,GAAU,SAAA,GAAU,UAAA,GAAW,UAAA,EAAW,MAAA,EAAK,EAAK,EAC9E,GAAY,GAAY,GAAe,GAAM,EAAM,CAAI,EAAG,GAAI,CAAC,CAAC,EACtE,IAAI,EACA,KAAY,QAAS,EAAM,GAAU,EAChC,KAAY,gBAAiB,EAAM,GAAU,EAAE,SAAQ,EACvD,KAAY,oBAAqB,EAAM,GAAI,GAAU,IAAK,EAAK,MAAO,MAAO,KAAK,CAAC,EAAE,SAAQ,EACjG,EAAM,GAAI,GAAU,IAAK,EAAK,MAAO,MAAO,KAAK,CAAC,EACvD,MAAM,EAAa,GAAS,IAAI,EAAQ,EAAE,IAAI,EAAM,IAAI,CAAC,EACzD,GAAS,GAAI,GAAW,EAAW,GAAI,GAAM,EAAI,IAAI,EAAQ,EAAE,IAAI,CAAU,EAAG,EAAM,CAAC,EAAG,EAAM,CAAC,CAAC,EAAG,GAAI,EAAM,CAAC,EAAG,GAAM,OAAM,EAAG,IAAI,EAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAClJ,MAAO,GAAS,EAAS,KAAK,QAC9B,GAAa,EAAkB,GAAM,EAAI,CAAE,EAAG,EAAK,GAAQ,EAAM,CAAC,EAAG,EAAM,CAAC,EAAG,EAAM,CAAC,CAAC,CAAC,EAAE,YAAW,CACtG,CAAC,CACF,CAAC,EAAC,EAAG,QAAQ,EAAe,EAAe,CAAC,GAAG,CAAC,EAChD,OAAA,EAAS,CAAC,CAAE,MAAA,EAAO,OAAA,CAAM,IAAO,CAC/B,MAAM,EAAO,KAAK,MAAM,EAAQ,CAAG,EAC7B,EAAO,KAAK,MAAM,EAAS,CAAG,EACpC,EAAY,MAAQ,EACpB,EAAa,MAAQ,CACtB,CAAC,EACM,CACN,QAAS,CACR,aAAA,EACA,eAAgB,CACpB,EACG,gBAAiB,IAAM,CAAC,EAAgB,GAAG,CAAS,CACvD,CACC,EACA,aAAc,CAAC,CAAE,SAAA,EAAU,UAAA,EAAW,UAAA,EAAW,eAAA,CAAc,IAAO,CACrE,GAAI,CAAC,EAAW,OAAO,EAAK,EAAG,EAAG,EAAG,CAAC,EACtC,GAAI,EAAS,KAAK,QAAQ,QAAU,EAAG,OAAO,EAC9C,GAAI,GAAgB,eAAgB,CACnC,MAAM,EAAW,EAAe,aAAa,OAAO,CAAQ,EACtD,EAAQ,GAAQ,EAAe,cAAc,EAAE,OAAO,CAAQ,EAC9D,EAAU,EAAS,KAAK,QAAQ,IAAI,EAAM,CAAC,CAAC,EAC5C,EAAc,EAAS,UAAU,QACjC,EAAa,EAAS,IAAI,IAAI,EAAM,IAAI,IAAI,CAAW,CAAC,EAAE,IAAI,CAAO,EACrE,EAAY,GAAM,EAAM,EAAE,IAAI,CAAW,EAAG,EAAM,CAAC,EAAG,EAAM,CAAC,CAAC,EACpE,OAAO,GAAmB,EAAK,EAAY,EAAS,EAAE,IAAI,EAAU,IAAI,EAAS,EAAE,SAAQ,CAAE,CAAC,CAAC,CAAC,CACjG,CACA,MAAM,EAAe,GAAiB,CAAS,EAC/C,EAAU,IAAM,CACX,GAAc,cAAc,SAAS,EAAa,aAAa,QAAO,CAC3E,CAAC,EACD,MAAM,EAAgB,EAAa,OAAO,CAAQ,EAC5C,EAAU,CACf,KACA,KACA,KACA,KACA,KACA,KACA,EACA,KACA,KACA,KACA,KACA,KACA,IACH,EACQ,EAAY,MACZ,EAAoB,GAAiB,GAAG,IAAM,CACnD,MAAM,EAAa,EAAS,KAAK,QAC3B,EAAY,EAAS,UAAU,QAC/B,EAAY,EAAK,CAAC,EAAE,IAAI,CAAY,EACpC,EAAQ,EAAK,CAAC,EAAE,MAAK,EAC3B,QAAS,EAAI,GAAI,GAAK,EAAG,IAAK,CAC7B,MAAM,EAAS,EAAM,EAAQ,EAAI,CAAC,EAAI,CAAS,EACzC,EAAS,EAAK,EAAM,CAAC,EAAG,EAAM,CAAC,CAAC,EAAE,IAAI,CAAU,EAAE,IAAI,CAAS,EAC/D,EAAc,EAAS,IAAI,CAAM,EACjC,EAAc,EAAa,OAAO,CAAW,EAC7C,EAAY,GAAI,EAAY,IAAK,EAAK,KAAM,KAAM,IAAI,CAAC,EACvD,EAAiB,GAAI,EAAM,CAAC,EAAG,EAAU,IAAI,CAAS,CAAC,EACvD,EAAc,EAAY,IAAI,CAAc,EAClD,EAAM,OAAO,EAAM,IAAI,EAAY,IAAI,CAAM,CAAC,CAAC,CAChD,CACA,OAAO,CACR,CAAC,EAAC,CAAE,EACJ,EAAU,IAAM,CACX,GAAmB,cAAc,SAAS,EAAkB,aAAa,QAAO,CACrF,CAAC,EACD,MAAM,EAAa,GAAG,IAAM,CAC3B,MAAM,EAAa,EAAS,KAAK,QAC3B,EAAY,EAAK,CAAC,EAAE,IAAI,CAAY,EACpC,EAAQ,EAAK,CAAC,EAAE,MAAK,EAC3B,QAAS,EAAI,GAAI,GAAK,EAAG,IAAK,CAC7B,MAAM,EAAS,EAAM,EAAQ,EAAI,CAAC,EAAI,CAAS,EACzC,EAAS,EAAK,EAAM,CAAC,EAAG,EAAM,CAAC,CAAC,EAAE,IAAI,CAAU,EAAE,IAAI,CAAS,EAC/D,EAAc,EAAS,IAAI,CAAM,EACvC,EAAM,OAAO,EAAM,IAAI,EAAkB,OAAO,CAAW,EAAE,IAAI,CAAM,CAAC,CAAC,CAC1E,CACA,OAAO,CACR,CAAC,EAAC,EACI,EAAY,EAAS,UAAU,QAC/B,EAAkB,EAAW,IAAI,CAAS,EAChD,OAAO,GAAmB,EAAK,EAAc,IAAI,IAAI,EAAgB,GAAG,EAAG,GAAI,EAAc,EAAG,EAAgB,CAAC,CAAC,CAAC,CACpH,CACD,ECtMM,GAAsB,CAC3B,KAAM,UACN,SAAU,WACV,YAAa,+CACb,YAAa,GACb,MAAO,CACN,OAAQ,CACP,QAAS,CACR,EAAG,EACH,EAAG,CACP,EACG,UAAW,GACX,YAAa,mCACb,GAAI,CACH,KAAM,WACN,MAAO,SACP,MAAO,UACX,CACA,EACE,QAAS,CACR,QAAS,GACT,YAAa,2BACb,GAAI,CACH,KAAM,CAAC,QAAS,KAAK,EACrB,IAAK,EACL,IAAK,EACL,KAAM,GACN,MAAO,UACP,MAAO,QACX,CACA,EACE,UAAW,CACV,QAAS,GACT,YAAa,gCACb,GAAI,CACH,KAAM,CAAC,QAAS,KAAK,EACrB,IAAK,EACL,IAAK,EACL,KAAM,GACN,MAAO,YACP,MAAO,QACX,CACA,EACE,OAAQ,CACP,QAAS,EACT,YAAa,iDACb,GAAI,CACH,KAAM,CAAC,QAAS,KAAK,EACrB,IAAK,EACL,IAAK,EACL,KAAM,GACN,MAAO,SACP,MAAO,QACX,CACA,EACE,MAAO,CACN,QAAS,GACT,YAAa,8BACb,GAAI,CACH,KAAM,QACN,IAAK,EACL,IAAK,EACL,KAAM,GACN,MAAO,QACP,MAAO,WACX,CACA,EACE,SAAU,CACT,QAAS,UACT,UAAW,GACX,YAAa,0BACb,GAAI,CACH,KAAM,QACN,MAAO,YACP,MAAO,QACX,CACA,EACE,gBAAiB,CAChB,QAAS,cACT,UAAW,GACX,YAAa,mBACb,GAAI,CACH,KAAM,QACN,MAAO,mBACP,MAAO,QACX,CACA,CACA,EACC,aAAe,GAAW,CACzB,KAAM,CAAE,SAAA,CAAQ,EAAK,EACf,EAAO,EACP,EAAS,EAAa,EAAE,IAAI,EAAa,CAAC,EAC1C,EAAY,EAAK,EAAS,OAAO,QAAQ,EAAG,EAAS,OAAO,QAAQ,EAAE,SAAQ,CAAE,EAChF,EAAQ,EAAK,IAAI,CAAS,EAC1B,EAAU,EAAK,EAAM,EAAE,IAAI,CAAM,EAAG,EAAM,CAAC,EAC3C,EAAa,GAAG,CAAC,CAAC,CAAE,IAAM,CAC/B,MAAM,EAAI,EAAG,MAAK,EACZ,EAAI,EAAG,MAAK,EACZ,EAAQ,GACN,EAAI,EAAE,EAAE,IAAI,KAAK,EAAE,IAAI,EAAE,EAAE,IAAI,KAAK,CAAC,CAAC,EAAE,IAAI,UAAU,EAAE,MAAK,EAE/D,EAAI,EAAK,CAAC,EACV,EAAI,EAAK,EAAE,IAAI,EAAK,EAAG,CAAC,CAAC,CAAC,EAC1B,EAAI,EAAK,EAAE,IAAI,EAAK,EAAG,CAAC,CAAC,CAAC,EAC1B,EAAI,EAAK,EAAE,IAAI,EAAK,EAAG,CAAC,CAAC,CAAC,EAC1B,EAAI,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC,EACvC,OAAO,GAAI,GAAI,EAAG,EAAG,EAAE,CAAC,EAAG,GAAI,EAAG,EAAG,EAAE,CAAC,EAAG,EAAE,CAAC,CAC/C,CAAC,EACK,EAAQ,GAAK,EAAQ,EAAG,EAAQ,CAAC,EACjC,EAAe,EAAM,IAAI,GAAG,IAAI,CAAC,CAAC,EAClC,EAAc,GAAW,KAAM,IAAK,EAAQ,CAAC,EAC7C,EAAY,GAAG,CAAC,CAAC,EAAG,EAAU,EAAO,EAAG,EAAM,CAAS,IAAM,CAClE,MAAM,EAAO,EAAK,EAAE,IAAI,CAAI,EAAG,CAAC,EAC1B,EAAQ,EAAK,EAAS,IAAI,CAAI,EAAG,CAAC,EAClC,EAAQ,GAAI,EAAW,CAAI,EAAG,CAAS,EAC7C,OAAO,GAAI,GAAI,EAAW,CAAK,EAAG,CAAS,EAAG,EAAO,CAAK,CAC3D,CAAC,EACK,EAAW,GAAmB,EAAQ,EAAS,KAAK,EAAE,IAAI,EAAE,EAC5D,EAAY,GAAG,IAAM,CAC1B,MAAM,EAAS,GAAO,CAAO,EACvB,EAAQ,EAAM,GAAG,EAAE,IAAI,GAAI,EAAS,OAAO,OAAO,CAAC,EACnD,EAAgB,EAAM,CAAC,EAAE,IAAI,EAAM,CAAC,EAAE,IAAI,GAAM,EAAS,UAAU,QAAS,EAAG,CAAC,CAAC,CAAC,EAClF,EAAU,EAAM,CAAC,EAAE,IAAI,EAAS,QAAQ,OAAO,EAC/C,EAAW,EAAM,CAAC,EAAE,MAAK,EACzB,EAAK,EAAO,IAAI,CAAC,EAAE,IAAI,EAAS,IAAI,CAAC,CAAC,EACtC,EAAK,EAAO,IAAI,EAAE,EAAE,IAAI,EAAM,CAAC,EAAE,IAAI,CAAK,CAAC,EAAE,IAAI,EAAS,IAAI,CAAC,CAAC,EAChE,EAAK,EAAQ,IAAI,CAAC,EAClB,EAAM,EAAU,EAAO,EAAc,EAAa,EAAI,EAAI,CAAa,EAAE,MAAK,EACpF,EAAI,OAAO,EAAI,IAAI,EAAU,EAAO,EAAc,EAAa,EAAI,EAAG,IAAI,CAAC,EAAG,CAAa,CAAC,CAAC,EAC7F,EAAS,OAAO,EAAS,IAAI,CAAG,CAAC,EACjC,MAAM,EAAK,EAAO,IAAI,GAAG,EAAE,IAAI,EAAS,IAAI,GAAG,CAAC,EAC1C,EAAK,EAAO,IAAI,EAAE,EAAE,IAAI,EAAM,CAAC,EAAE,IAAI,CAAK,CAAC,EAAE,IAAI,EAAS,IAAI,GAAG,CAAC,EAClE,EAAK,EAAQ,IAAI,GAAG,EACpB,EAAO,EAAU,EAAO,EAAc,EAAa,EAAI,EAAI,CAAa,EAAE,MAAK,EACrF,OAAA,EAAK,OAAO,EAAK,IAAI,EAAU,EAAO,EAAc,EAAa,EAAI,EAAG,IAAI,GAAG,EAAG,CAAa,CAAC,CAAC,EACjG,EAAS,OAAO,EAAS,IAAI,EAAK,IAAI,EAAE,CAAC,CAAC,EACnC,GAAM,EAAU,EAAG,CAAC,CAC5B,CAAC,EAAC,EACI,EAAc,EAAS,SAAS,QAAQ,IACxC,EAAY,EAAS,SAAS,QAAQ,EACtC,EAAa,EAAS,gBAAgB,QAAQ,IAC9C,EAAW,EAAS,gBAAgB,QAAQ,EAC5C,EAAW,EAAU,IAAI,CAAS,EAClC,EAAa,EAAS,IAAI,EAAS,IAAI,EAAM,CAAC,EAAE,IAAI,CAAQ,CAAC,CAAC,EAC9D,EAAY,GAAM,EAAY,KAAM,CAAC,EACrC,EAAkB,EAAY,IAAI,CAAQ,EAC1C,EAAiB,EAAW,IAAI,CAAQ,EAAE,IAAI,EAAM,CAAC,EAAE,IAAI,CAAQ,CAAC,EAC1E,OAAO,EAAK,EAAgB,IAAI,CAAc,EAAE,IAAI,CAAS,EAAG,CAAU,CAC3E,CACD,ECvJM,GAAsB,CAC3B,KAAM,YACN,SAAU,cACV,YAAa,oCACb,cAAe,GACf,MAAO,CAAA,EACP,aAAc,CAAC,CAAE,UAAA,CAAS,IAAO,CAChC,GAAI,CAAC,EACJ,eAAQ,MAAM,4DAA4D,EACnE,EAAK,CAAC,EAEd,MAAM,EAAY,GAAI,EAAU,IAAK,EAAK,MAAO,MAAO,KAAK,CAAC,EAC9D,OAAO,EAAK,EAAW,EAAW,EAAW,EAAU,CAAC,CACzD,CACD,ECbM,GAAsB,CAC3B,KAAM,OACN,SAAU,WACV,YAAa,mEACb,MAAO,CACN,MAAO,CACN,QAAS,UACT,UAAW,GACX,YAAa,8BACb,GAAI,CACH,KAAM,QACN,MAAO,QACP,MAAO,QACX,CACA,EACE,MAAO,CACN,QAAS,GACT,YAAa,wEACb,GAAI,CACH,KAAM,CAAC,QAAS,KAAK,EACrB,IAAK,EACL,IAAK,GACL,KAAM,EACN,MAAO,QACP,MAAO,QACX,CACA,EACE,UAAW,CACV,QAAS,EACT,YAAa,gDACb,GAAI,CACH,KAAM,CAAC,QAAS,KAAK,EACrB,IAAK,EACL,IAAK,GACL,KAAM,GACN,MAAO,YACP,MAAO,QACX,CACA,EACE,SAAU,CACT,QAAS,EACT,YAAa,yFACb,GAAI,CACH,KAAM,CAAC,QAAS,KAAK,EACrB,IAAK,EACL,IAAK,IACL,KAAM,EACN,MAAO,WACP,MAAO,QACX,CACA,CACA,EACC,aAAe,GAAa,CAC3B,MAAM,EAAS,EAAa,EAAE,IAAI,EAAa,CAAC,EAC1C,EAAc,EAAK,EAAS,EAAE,IAAI,CAAM,EAAG,EAAS,EAAE,SAAQ,CAAE,EAChE,EAAS,EAAS,SAAS,QAAQ,IAAI,EAAM,KAAK,GAAK,GAAG,CAAC,EAC3D,EAAO,GAAI,CAAM,EACjB,EAAO,EAAI,CAAM,EACjB,EAAS,EAAK,EAAO,IAAI,EAAM,EAAE,CAAC,EAAG,EAAM,EAAE,CAAC,EAC9C,EAAW,EAAY,IAAI,CAAM,EACjC,EAAe,GAAM,EAAK,EAAS,EAAE,IAAI,CAAI,EAAE,IAAI,EAAS,EAAE,IAAI,CAAI,CAAC,EAAG,EAAS,EAAE,IAAI,CAAI,EAAE,IAAI,EAAS,EAAE,IAAI,CAAI,CAAC,CAAC,EAAE,IAAI,CAAM,EAAE,IAAI,EAAS,MAAM,OAAO,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAS,MAAM,OAAO,EAAE,IAAI,CAAM,EACjN,EAAY,EAAK,EAAa,EAAE,IAAI,CAAI,EAAE,IAAI,EAAa,EAAE,IAAI,CAAI,CAAC,EAAG,EAAa,EAAE,IAAI,CAAI,EAAE,OAAM,EAAG,IAAI,EAAa,EAAE,IAAI,CAAI,CAAC,CAAC,EAAE,IAAI,CAAM,EACpJ,EAAmB,EAAK,EAAU,EAAE,IAAI,CAAM,EAAG,EAAU,EAAE,SAAQ,CAAE,EAC7E,MAAO,CACN,UAAW,EACX,MAAO,EACP,SAAU,CACb,CACC,EACA,aAAc,CAAC,CAAE,SAAA,CAAQ,IAAO,CAC/B,MAAM,EAAO,EACP,EAAS,EAAa,EAAE,IAAI,EAAa,CAAC,EAC1C,EAAc,EAAK,EAAK,EAAE,IAAI,CAAM,EAAG,EAAK,EAAE,SAAQ,CAAE,EACxD,EAAS,EAAS,SAAS,QAAQ,IAAI,EAAM,KAAK,GAAK,GAAG,CAAC,EAC3D,EAAO,GAAI,CAAM,EACjB,EAAO,EAAI,CAAM,EACjB,EAAS,EAAK,EAAO,IAAI,EAAM,EAAE,CAAC,EAAG,EAAM,EAAE,CAAC,EAC9C,EAAW,EAAY,IAAI,CAAM,EACjC,EAAU,EAAK,EAAS,EAAE,IAAI,CAAI,EAAE,IAAI,EAAS,EAAE,IAAI,CAAI,CAAC,EAAG,EAAS,EAAE,IAAI,CAAI,EAAE,IAAI,EAAS,EAAE,IAAI,CAAI,CAAC,CAAC,EAAE,IAAI,CAAM,EACzH,EAAQ,EAAS,MAAM,QACvB,EAAS,EAAQ,IAAI,CAAK,EAC1B,EAAY,GAAM,CAAM,EACxB,EAAY,EAAS,UAAU,QAAQ,IAAI,GAAG,EAC9C,EAAc,EAAU,EAAE,IAAI,EAAU,EAAE,SAAQ,CAAE,EACpD,EAAc,EAAU,EAAE,IAAI,EAAU,EAAE,SAAQ,CAAE,EACpD,EAAY,GAAO,CAAM,EACzB,EAAW,GAAI,GAAW,EAAU,IAAI,EAAU,CAAC,EAAG,EAAW,CAAW,EAAG,GAAW,EAAU,IAAI,EAAU,CAAC,EAAG,EAAW,CAAW,CAAC,EAAE,IAAI,GAAK,KAAM,CAAS,CAAC,EAC9K,OAAO,EAAK,EAAS,MAAM,QAAQ,IAAK,EAAS,MAAM,QAAQ,EAAE,IAAI,CAAQ,CAAC,CAC/E,CACD,ECrFA,IAAI,GAAoB,GACpB,GAAyC,IAAI,QAC7C,GAAgC,GAAa,CAChD,IAAI,EAAQ,GAAuB,IAAI,CAAQ,EAC/C,MAAM,EAAW,GAAU,UAAU,SAAS,MAAQ,KAAK,IAAI,EAAG,KAAK,IAAI,IAAK,KAAK,MAAM,EAAS,SAAS,QAAQ,KAAK,CAAC,CAAC,EAAI,GAMhI,GALI,GAAS,EAAM,WAAa,IAC/B,EAAM,YAAY,QAAO,EACzB,EAAQ,OACR,GAAuB,OAAO,CAAQ,GAEnC,CAAC,EAAO,CACX,MAAM,EAAO,IAAI,aAAa,EAAW,EAAW,CAAC,EAC/C,EAAc,IAAI,GAAY,EAAM,EAAU,EAAU,GAAU,EAAS,EACjF,EAAY,UAAY,GACxB,EAAY,UAAY,GACxB,EAAY,YAAc,GAC1B,EAAQ,CACP,YAAA,EACA,KAAA,EACA,QAAS,GAAQ,CAAW,EAC5B,SAAA,CACH,EACE,GAAuB,IAAI,EAAU,CAAK,CAC3C,CACA,OAAO,CACR,EACA,MAAM,GAAsB,CAC3B,KAAM,iBACN,SAAU,cACV,YAAa,2DACb,YAAa,GACb,cAAe,GACf,YAAa,GACb,MAAO,CACN,UAAW,CACV,QAAS,EACT,YAAa,oCACb,GAAI,CACH,KAAM,QACN,IAAK,EACL,IAAK,EACL,KAAM,GACN,MAAO,YACP,MAAO,QACX,CACA,EACE,MAAO,CACN,QAAS,EACT,YAAa,6CACb,GAAI,CACH,KAAM,QACN,IAAK,EACL,IAAK,GACL,KAAM,GACN,MAAO,QACP,MAAO,QACX,CACA,EACE,OAAQ,CACP,QAAS,EACT,YAAa,kCACb,GAAI,CACH,KAAM,QACN,IAAK,EACL,IAAK,EACL,KAAM,GACN,MAAO,SACP,MAAO,QACX,CACA,EACE,SAAU,CACT,QAAS,GACT,YAAa,6DACb,GAAI,CACH,KAAM,CAAC,QAAS,KAAK,EACrB,IAAK,EACL,IAAK,IACL,KAAM,EACN,MAAO,YACP,MAAO,QACX,CACA,EACE,MAAO,CACN,QAAS,UACT,YAAa,mEACb,UAAW,GACX,YAAa,GACb,GAAI,CACH,KAAM,SACN,QAAS,CACR,CACC,MAAO,UACP,MAAO,SACb,EACK,CACC,MAAO,cACP,MAAO,aACb,EACK,CACC,MAAO,SACP,MAAO,QACb,EACK,CACC,MAAO,OACP,MAAO,MACb,CACA,EACI,MAAO,QACP,MAAO,QACX,CACA,CACA,EACC,YAAa,CAAC,CAAE,SAAA,EAAU,UAAA,CAAS,IAAO,CACzC,MAAM,EAAY,GAAU,UAAU,SAAS,MAAQ,KAAK,IAAI,EAAG,KAAK,IAAI,IAAK,KAAK,MAAM,EAAS,SAAS,QAAQ,KAAK,CAAC,CAAC,EAAI,GAC3H,EAAS,GAAe,EAAY,EAAW,MAAM,EACrD,EAAU,IAAI,GAAe,EAAW,CAAS,EACvD,EAAQ,KAAO,GACf,MAAM,EAAc,GAAe,CAAO,EAC1C,EAAU,IAAM,CACf,EAAQ,QAAO,CAChB,CAAC,EACD,MAAM,EAAW,EAAQ,EAAE,EACrB,EAAW,EAAQ,EAAE,EACrB,EAAa,EAAQ,CAAC,EACtB,EAAa,EAAQ,CAAC,EACtB,EAAM,EAAQ,IAAI,EAClB,EAAS,EAAQ,CAAC,EAClB,EAAa,EAAQ,CAAC,EACtB,EAAU,EAAQ,GAAG,EACrB,EAAU,EAAQ,CAAC,EACnB,EAAK,GAAK,CAAS,EACnB,EAAa,GAAG,IAAM,CAC3B,MAAM,EAAM,GACN,EAAI,EAAI,IAAI,CAAE,EACd,EAAI,EAAI,IAAI,CAAE,EACd,EAAO,EAAO,QAAQ,CAAG,EACzB,EAAK,EAAK,EAAE,IAAI,EAAM,CAAC,EAAE,IAAI,EAAO,IAAI,CAAG,CAAC,CAAC,EAAE,MAAK,EACpD,EAAK,EAAK,EAAE,IAAI,EAAM,CAAC,EAAE,IAAI,EAAO,IAAI,CAAG,CAAC,CAAC,EAAE,MAAK,EACpD,EAAQ,EAAE,QAAO,EAAG,IAAI,EAAM,EAAE,CAAC,EAAE,IAAI,EAAM,CAAS,CAAC,EACvD,EAAQ,EAAE,QAAO,EAAG,IAAI,EAAM,EAAE,CAAC,EAAE,IAAI,EAAM,CAAS,CAAC,EACvD,EAAM,EAAQ,iBAAiB,EAAM,CAAC,CAAC,EAAE,OAAO,EAAM,IAAI,CAAQ,EAAE,IAAI,CAAO,EAAG,EAAM,IAAI,CAAQ,CAAC,EACrG,EAAM,EAAQ,iBAAiB,EAAM,CAAC,CAAC,EAAE,OAAO,EAAM,IAAI,CAAQ,EAAG,EAAM,IAAI,CAAQ,EAAE,IAAI,CAAO,CAAC,EACrG,EAAS,EAAI,IAAI,CAAG,EAAE,IAAI,EAAI,IAAI,CAAG,CAAC,EACtC,EAAU,EAAQ,IAAI,EAAM,CAAC,CAAC,EACpC,GAAG,EAAO,SAAS,EAAQ,IAAI,CAAO,CAAC,EAAE,IAAI,EAAW,IAAG,EAAG,IAAI,EAAW,IAAG,CAAE,EAAE,YAAY,EAAM,GAAG,CAAC,CAAC,EAAG,IAAM,CACnH,MAAM,GAAY,EAAO,OAAM,EAAG,IAAI,EAAQ,IAAI,CAAO,CAAC,EAAE,IAAG,EAC/D,EAAG,OAAO,EAAG,IAAI,EAAW,IAAI,EAAS,EAAE,IAAI,CAAU,EAAE,IAAI,CAAG,EAAE,IAAI,EAAM,EAAE,CAAC,CAAC,CAAC,EACnF,EAAG,OAAO,EAAG,IAAI,EAAW,IAAI,EAAS,EAAE,IAAI,CAAU,EAAE,IAAI,CAAG,EAAE,IAAI,EAAM,EAAE,CAAC,CAAC,CAAC,CACpF,CAAC,EACD,EAAG,OAAO,EAAG,MAAM,EAAM,EAAE,EAAG,EAAM,CAAC,CAAC,CAAC,EACvC,EAAG,OAAO,EAAG,MAAM,EAAM,EAAE,EAAG,EAAM,CAAC,CAAC,CAAC,EACvC,EAAO,QAAQ,CAAG,EAAE,OAAO,EAAK,EAAI,EAAI,EAAM,CAAC,EAAG,EAAM,CAAC,CAAC,CAAC,CAC5D,CAAC,EAAC,EAAG,QAAQ,EAAY,EAAW,CAAC,GAAG,CAAC,EACnC,EAAa,GAAG,IAAM,CAC3B,MAAM,EAAM,GACN,EAAI,EAAI,IAAI,CAAE,EACd,EAAI,EAAI,IAAI,CAAE,EACd,EAAO,EAAO,QAAQ,CAAG,EAC/B,GAAa,EAAa,GAAM,EAAG,CAAC,EAAG,EAAK,EAAK,EAAG,EAAK,EAAG,EAAM,CAAC,EAAG,EAAM,CAAC,CAAC,CAAC,EAAE,YAAW,CAC7F,CAAC,EAAC,EAAG,QAAQ,EAAY,EAAW,CAAC,GAAG,CAAC,EACzC,IAAI,EAAQ,GACR,EAAQ,GACR,EAAW,KAAK,IAAG,EACnB,EAAiB,KAAK,IAAG,EACzB,EAAa,EACb,EAAa,EACjB,MAAO,CACN,QAAS,CACR,aAAc,EACd,SAAU,CACd,EACG,gBAAkB,GAAW,CAC5B,MAAM,EAAc,KAAK,IAAG,EACtB,EAAK,KAAK,KAAK,EAAc,GAAY,IAAK,IAAI,EACxD,EAAW,EACX,MAAM,EAAS,KAAK,IAAI,EAAG,EAAO,WAAW,KAAK,EAAI,KAAK,IAAI,EAAG,EAAO,WAAW,MAAM,EACpF,EAAO,EAAK,GAAK,EAAO,QAAQ,EAAI,GAAS,EAAK,EAClD,EAAO,EAAK,GAAK,EAAO,QAAQ,EAAI,GAAS,EAAK,EACxD,EAAa,EAAa,IAAM,EAAO,IACvC,EAAa,EAAa,IAAM,EAAO,IACvC,EAAQ,EAAO,QAAQ,EACvB,EAAQ,EAAO,QAAQ,EACnB,KAAK,IAAI,CAAI,EAAI,KAAK,IAAI,CAAI,EAAI,MAAK,EAAiB,GAC5D,MAAM,EAAW,EAAS,MAAM,QAAQ,MAClC,EAAa,EAAW,EAAI,KAAK,IAAI,IAAK,KAAK,IAAI,IAAI,EAAI,KAAK,IAAI,KAAK,IAAI,KAAM,EAAI,EAAW,IAAI,CAAC,EAAI,KAAK,EAAI,IAC1H,OAAI,EAAc,EAAiB,EAAmB,MACtD,EAAS,MAAQ,EAAO,QAAQ,EAChC,EAAS,MAAQ,EAAO,QAAQ,EAChC,EAAW,MAAQ,EACnB,EAAW,MAAQ,EACnB,EAAI,MAAQ,EACZ,EAAO,MAAQ,EAAS,MAAM,QAAQ,MACtC,EAAW,MAAQ,EAAS,UAAU,QAAQ,MAC9C,EAAQ,MAAQ,EAAS,OAAO,QAAQ,MAAQ,IAChD,EAAQ,MAAQ,EACT,CAAC,EAAY,CAAU,EAC/B,CACH,CACC,EACA,aAAc,CAAC,CAAE,SAAA,EAAU,eAAA,EAAgB,UAAA,EAAW,UAAA,EAAW,eAAA,CAAc,IAAO,CACrF,IAAI,EACA,EACJ,GAAI,GAAgB,aACnB,EAAoB,GAAQ,EAAe,YAAY,EACvD,EAAY,EAAe,aACrB,CACN,MAAM,EAAQ,GAA6B,CAAQ,EACnD,EAAoB,EAAM,QAC1B,EAAY,EAAM,SAClB,KAAM,CAAE,YAAa,EAAqB,KAAM,CAAgB,EAAK,EAC/D,EAAY,EAAQ,CAAC,EACrB,EAAY,EAAQ,CAAC,EAC3B,IAAI,EAAQ,GAAI,EAAQ,GAAI,EAAW,KAAK,IAAG,EAC/C,EAAe,CAAC,CAAE,QAAA,EAAS,WAAA,CAAU,IAAO,CAC3C,MAAM,EAAc,KAAK,IAAG,EACtB,EAAK,KAAK,KAAK,EAAc,GAAY,IAAK,IAAI,EACxD,EAAW,EACX,MAAM,EAAW,KAAK,IAAI,EAAG,EAAW,KAAK,EAAI,KAAK,IAAI,EAAG,EAAW,MAAM,EACxE,EAAO,EAAK,GAAK,EAAQ,EAAI,GAAS,EAAK,EAC3C,EAAO,EAAK,GAAK,EAAQ,EAAI,GAAS,EAAK,EACjD,EAAU,MAAQ,EAAU,MAAQ,IAAM,EAAO,IACjD,EAAU,MAAQ,EAAU,MAAQ,IAAM,EAAO,IACjD,MAAM,EAAQ,EAAS,MAAM,QAAQ,MAC/B,GAAY,EAAS,UAAU,QAAQ,MACvC,GAAS,EAAS,OAAO,QAAQ,MAAQ,IAC/C,QAAS,GAAI,EAAG,GAAI,EAAW,KAAK,QAAS,GAAI,EAAG,GAAI,EAAW,KAAK,CACvE,MAAM,IAAO,GAAI,EAAY,IAAK,EAClC,EAAiB,EAAG,GAAK,EAAI,EAAQ,EACrC,EAAiB,GAAM,CAAC,GAAK,EAAI,EAAQ,EACzC,MAAM,IAAS,GAAI,IAAM,EACnB,IAAS,GAAI,IAAM,EACnB,GAAK,GAAY,GAAK,GAAQ,EAAQ,GAAK,EAAW,GAAQ,EAAQ,EACtE,GAAK,GAAY,EAAI,GAAQ,EAAQ,GAAK,GAAQ,EAAQ,GAAK,EAC/D,GAAO,KAAK,KAAK,GAAK,GAAK,GAAK,EAAE,EACxC,GAAI,GAAO,GAAS,GAAK,KAAK,IAAI,CAAI,EAAI,KAAK,IAAI,CAAI,EAAI,IAAK,CAC/D,MAAM,GAAY,KAAK,IAAI,CAAC,GAAO,IAAQ,GAAS,GAAO,EAC3D,EAAiB,EAAG,GAAK,EAAU,MAAQ,GAAY,GAAY,EAAK,GACxE,EAAiB,GAAM,CAAC,GAAK,EAAU,MAAQ,GAAY,GAAY,EAAK,EAC7E,CACA,EAAiB,EAAG,EAAI,KAAK,IAAI,GAAI,KAAK,IAAI,EAAG,EAAiB,EAAG,CAAC,CAAC,EACvE,EAAiB,GAAM,CAAC,EAAI,KAAK,IAAI,GAAI,KAAK,IAAI,EAAG,EAAiB,GAAM,CAAC,CAAC,CAAC,CAChF,CACA,EAAoB,YAAc,GAClC,EAAQ,EAAQ,EAChB,EAAQ,EAAQ,CACjB,CAAC,EACD,EAAU,IAAM,CACf,EAAoB,QAAO,EAC3B,GAAuB,OAAO,CAAQ,CACvC,CAAC,CACF,CACA,GAAI,CAAC,EAAW,OAAO,EAAK,EAAG,EAAG,EAAG,CAAC,EACtC,MAAM,EAAe,GAAiB,CAAS,EAC/C,EAAU,IAAM,CACX,GAAc,cAAc,SAAS,EAAa,aAAa,QAAO,CAC3E,CAAC,EACD,MAAM,EAAS,EAAa,EAAE,IAAI,EAAa,CAAC,EAC1C,EAAkB,EAAS,SAAS,QACpC,EAAS,EAAO,YAAY,EAAM,CAAC,CAAC,EACpC,EAAS,EAAO,OAAO,EAAiB,EAAgB,IAAI,CAAM,CAAC,EAAE,IAAI,EAAM,CAAC,CAAC,EACjF,EAAS,EAAO,OAAO,EAAgB,IAAI,CAAM,EAAG,CAAe,EAAE,IAAI,EAAM,CAAC,CAAC,EACjF,EAAa,EAAS,EAAE,IAAI,CAAM,EAAE,MAAK,EACzC,EAAa,EAAS,EAAE,IAAI,CAAM,EAAE,MAAK,EACzC,EAAa,EAAK,EAAW,IAAI,EAAE,EAAE,IAAI,CAAM,EAAG,EAAW,IAAI,EAAE,EAAE,IAAI,CAAM,CAAC,EAChF,EAAe,EAAkB,OAAO,CAAU,EAAE,GACpD,EAAkB,EAAM,EAAE,EAC1B,EAAsB,EAAa,MAAM,EAAK,EAAgB,OAAM,EAAI,EAAgB,OAAM,CAAE,EAAG,EAAK,EAAiB,CAAe,CAAC,EACzI,EAAc,EAAS,IAAI,CAAmB,EACpD,OAAO,GAAmB,GAAkB,EAAa,EAAa,OAAO,CAAW,EAAG,EAAc,EAAS,MAAM,QAAQ,KAAK,CAAC,CACvI,CACD,ECnRM,GAAsB,CAC3B,KAAM,QACN,SAAU,YACV,YAAa,uDACb,cAAe,GACf,MAAO,CAAA,EACP,aAAc,CAAC,CAAE,UAAA,CAAS,IAClB,GAAa,EAAK,CAAC,CAE5B,ECPA,IAAI,GAAkB,GACd,IAAU,OAAS,EAAI,EAE/B,MAAM,GAAsB,CAC3B,KAAM,WACN,SAAU,UACV,YAAa,sDACb,YAAa,GACb,cAAe,GACf,MAAO,CACN,MAAO,CACN,QAAS,UACT,UAAW,GACX,YAAa,GACb,YAAa,2BACb,GAAI,CACH,KAAM,SACN,QAAS,CAAC,CACT,MAAO,SACP,MAAO,SACZ,EAAO,CACF,MAAO,aACP,MAAO,MACZ,CAAK,EACD,MAAO,QACP,MAAO,QACX,CACA,EACE,UAAW,CACV,QAAS,IACT,YAAa,iCACb,GAAI,CACH,KAAM,CAAC,QAAS,KAAK,EACrB,IAAK,GACL,IAAK,IACL,KAAM,EACN,MAAO,YACP,MAAO,QACX,CACA,EACE,MAAO,CACN,QAAS,GACT,UAAW,GACX,YAAa,6CACb,GAAI,CACH,KAAM,CAAC,QAAS,KAAK,EACrB,IAAK,EACL,IAAK,IACL,KAAM,EACN,MAAO,QACP,MAAO,SACP,UAAW,CAAE,MAAO,SAAS,CACjC,CACA,EACE,UAAW,CACV,QAAS,GACT,UAAW,GACX,YAAa,+CACb,GAAI,CACH,KAAM,CAAC,QAAS,KAAK,EACrB,IAAK,EACL,IAAK,IACL,KAAM,EACN,MAAO,aACP,MAAO,eACP,UAAW,CAAE,MAAO,MAAM,CAC9B,CACA,EACE,aAAc,CACb,QAAS,GACT,UAAW,GACX,YAAa,kDACb,GAAI,CACH,KAAM,CAAC,QAAS,KAAK,EACrB,IAAK,EACL,IAAK,IACL,KAAM,EACN,MAAO,gBACP,MAAO,eACP,UAAW,CAAE,MAAO,MAAM,CAC9B,CACA,EACE,YAAa,CACZ,QAAS,EACT,UAAW,GACX,YAAa,iDACb,GAAI,CACH,KAAM,CAAC,QAAS,KAAK,EACrB,IAAK,EACL,IAAK,IACL,KAAM,EACN,MAAO,eACP,MAAO,eACP,UAAW,CAAE,MAAO,MAAM,CAC9B,CACA,EACE,WAAY,CACX,QAAS,GACT,UAAW,GACX,YAAa,gDACb,GAAI,CACH,KAAM,CAAC,QAAS,KAAK,EACrB,IAAK,EACL,IAAK,IACL,KAAM,EACN,MAAO,cACP,MAAO,eACP,UAAW,CAAE,MAAO,MAAM,CAC9B,CACA,EACE,SAAU,CACT,QAAS,EACT,YAAa,mJACb,GAAI,CACH,KAAM,CAAC,QAAS,KAAK,EACrB,IAAK,EACL,IAAK,IACL,KAAM,KACN,MAAO,WACP,MAAO,SACP,UAAW,CAAE,MAAO,MAAM,CAC9B,CACA,EACE,cAAe,CACd,QAAS,EACT,UAAW,GACX,YAAa,uFACb,GAAI,CACH,KAAM,CAAC,QAAS,KAAK,EACrB,IAAK,EACL,IAAK,IACL,KAAM,EACN,MAAO,iBACP,MAAO,SACP,UAAW,CAAE,MAAO,MAAM,CAC9B,CACA,EACE,WAAY,CACX,QAAS,UACT,UAAW,GACX,YAAa,iDACb,GAAI,CACH,KAAM,QACN,MAAO,QACP,MAAO,OACP,UAAW,CAAE,MAAO,MAAM,CAC9B,CACA,EACE,UAAW,CACV,QAAS,UACT,UAAW,GACX,YAAa,iBACb,GAAI,CACH,KAAM,QACN,MAAO,OACP,MAAO,OACP,UAAW,CAAE,MAAO,MAAM,CAC9B,CACA,EACE,aAAc,CACb,QAAS,UACT,UAAW,GACX,YAAa,oBACb,GAAI,CACH,KAAM,QACN,MAAO,UACP,MAAO,OACP,UAAW,CAAE,MAAO,MAAM,CAC9B,CACA,EACE,YAAa,CACZ,QAAS,UACT,UAAW,GACX,YAAa,mBACb,GAAI,CACH,KAAM,QACN,MAAO,SACP,MAAO,OACP,UAAW,CAAE,MAAO,MAAM,CAC9B,CACA,EACE,WAAY,CACX,QAAS,UACT,UAAW,GACX,YAAa,wBACb,GAAI,CACH,KAAM,QACN,MAAO,QACP,MAAO,OACP,UAAW,CAAE,MAAO,MAAM,CAC9B,CACA,CACA,EACC,aAAc,CAAC,CAAE,SAAA,EAAU,UAAA,EAAW,UAAA,CAAS,IAAO,CACrD,GAAI,CAAC,EAAW,OAAO,EAAK,CAAC,EAC7B,MAAM,EAAY,EAAS,UAAU,QAC/B,EAAa,EAAM,EAAE,EACrB,EAAS,EAAa,EAAE,IAAI,EAAa,CAAC,EAC1C,EAAW,EAAK,EAAS,EAAE,IAAI,CAAM,EAAG,EAAS,CAAC,EAClD,EAAW,CAAC,GAAM,IAAa,CACpC,MAAM,EAAM,GAAI,CAAQ,EAClB,EAAI,EAAI,CAAQ,EACtB,OAAO,EAAK,GAAI,GAAM,EAAK,EAAK,EAAE,OAAM,CAAE,CAAC,EAAG,GAAI,GAAM,EAAK,EAAG,CAAG,CAAC,CAAC,CACtE,EACM,EAAU,CAAC,GAAW,IAAc,CACzC,MAAM,EAAO,GAAO,GAAM,GAAU,IAAI,CAAS,CAAC,EAAE,IAAI,EAAE,CAAC,EACrD,EAAO,EAAU,IAAI,GAAG,EAAE,IAAI,CAAU,EAC9C,OAAO,GAAW,EAAK,IAAI,CAAU,EAAG,EAAK,IAAI,CAAU,EAAG,CAAI,EAAE,SAAQ,CAC7E,EACA,GAAI,EAAS,MAAM,QAAQ,QAAU,EAAG,CACvC,MAAM,GAAS,GAAM,EAAS,EAAU,GAAQ,EAAS,MAAM,OAAO,CAAC,EAAE,IAAI,CAAS,CAAC,EAAE,IAAI,EAAE,EACzF,EAAU,GAAI,EAAU,IAAK,EAAK,KAAM,KAAM,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,GAAG,EACpE,EAAO,GAAO,EAAM,EACpB,EAAa,GAAW,EAAQ,IAAI,CAAU,EAAG,EAAQ,IAAI,CAAU,EAAG,CAAI,EAAE,SAAQ,EAC9F,OAAO,EAAK,EAAU,IAAI,IAAI,CAAU,EAAG,EAAU,EAAE,IAAI,CAAU,CAAC,CACvE,CACA,MAAM,EAAe,GAAiB,CAAS,EAC/C,EAAU,IAAM,CACX,GAAc,cAAc,SAAS,EAAa,aAAa,QAAO,CAC3E,CAAC,EACD,MAAM,EAAW,EAAS,SAAS,QAC7B,EAAmB,GAAQ,EAAS,cAAc,OAAO,EACzD,EAAY,GAAQ,EAAS,UAAU,OAAO,EAC9C,EAAY,GAAQ,EAAS,aAAa,OAAO,EACjD,EAAY,GAAQ,EAAS,YAAY,OAAO,EAChD,EAAY,GAAQ,EAAS,WAAW,OAAO,EAC/C,EAAe,IACb,EAAK,GAAI,EAAc,EAAE,IAAI,CAAQ,EAAG,EAAI,EAAc,EAAE,IAAI,CAAQ,EAAE,IAAI,CAAM,CAAC,EAEvF,EAAY,EAAS,IAAI,EAAY,CAAgB,CAAC,EACtD,EAAY,EAAS,IAAI,EAAY,EAAiB,IAAI,GAAQ,EAAM,EAAE,CAAC,CAAC,CAAC,CAAC,EAC9E,EAAY,EAAS,IAAI,EAAY,EAAiB,IAAI,GAAQ,EAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAC/E,EAAY,EAAS,IAAI,EAAY,EAAiB,IAAI,GAAQ,EAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAC/E,EAAU,GAAmB,EAAa,OAAO,CAAS,CAAC,EAC3D,EAAU,GAAmB,EAAa,OAAO,CAAS,CAAC,EAC3D,EAAU,GAAmB,EAAa,OAAO,CAAS,CAAC,EAC3D,EAAU,GAAmB,EAAa,OAAO,CAAS,CAAC,EAC3D,EAAe,GAAmB,EAAa,OAAO,CAAQ,CAAC,EAC/D,EAAY,IAAM,EAAM,CAAC,EAAE,IAAI,GAAI,GAAI,GAAE,EAAG,GAAE,CAAC,EAAG,GAAE,CAAC,CAAC,EACtD,EAAY,IAAM,CACvB,MAAM,EAAM,EAAS,EAAC,EAChB,EAAO,EAAM,CAAC,EAAE,IAAI,CAAG,EAAE,IAAI,EAAM,IAAI,CAAC,EAC9C,OAAO,EAAM,CAAC,EAAE,IAAI,GAAE,CAAC,EAAE,IAAI,CAAG,EAAE,IAAI,CAAI,CAC3C,EACM,EAAY,IAAM,CACvB,MAAM,EAAM,EAAS,EAAC,EAChB,EAAO,EAAM,CAAC,EAAE,IAAI,CAAG,EAAE,IAAI,EAAM,IAAI,CAAC,EAC9C,OAAO,EAAM,CAAC,EAAE,IAAI,GAAE,CAAC,EAAE,IAAI,CAAG,EAAE,IAAI,CAAI,CAC3C,EACM,EAAY,IAAM,CACvB,MAAM,EAAM,EAAS,EAAC,EAChB,EAAO,EAAM,CAAC,EAAE,IAAI,CAAG,EAAE,IAAI,EAAM,IAAI,CAAC,EAC9C,OAAO,EAAM,CAAC,EAAE,IAAI,GAAE,CAAC,EAAE,IAAI,CAAG,EAAE,IAAI,CAAI,CAC3C,EACM,EAAI,EAAS,CAAO,EACpB,EAAI,EAAS,CAAO,EACpB,EAAI,EAAS,CAAO,EACpB,EAAI,EAAS,CAAO,EACpB,EAAM,EAAS,EAAU,CAAS,EAClC,EAAM,EAAS,EAAU,CAAS,EAClC,GAAM,EAAS,EAAU,CAAS,EAClC,GAAM,EAAS,EAAU,CAAS,EAClC,GAAO,EAAQ,EAAK,CAAC,EACrB,GAAO,EAAQ,EAAK,CAAC,EACrB,GAAO,EAAQ,GAAK,CAAC,EACrB,GAAO,EAAQ,GAAK,CAAC,EACrB,GAAQ,EAAS,WAAW,QAC5B,GAAU,EAAS,UAAU,QAC7B,GAAa,EAAS,aAAa,QACnC,GAAY,EAAS,YAAY,QACjC,GAAW,EAAS,WAAW,QAC/B,EAAe,CAAC,GAAU,IACxB,GAAI,EAAK,EAAG,EAAG,CAAC,EAAG,GAAS,IAAK,EAAQ,IAAI,GAAS,CAAC,CAAC,EAEhE,IAAI,GAAU,GAAM,IACpB,OAAA,GAAU,GAAQ,IAAI,EAAa,GAAS,EAAI,CAAC,EACjD,GAAU,GAAQ,IAAI,EAAa,GAAY,EAAI,CAAC,EACpD,GAAU,GAAQ,IAAI,EAAa,GAAW,EAAI,CAAC,EACnD,GAAU,GAAQ,IAAI,EAAa,GAAU,EAAI,CAAC,EAC3C,EAAK,GAAS,EAAa,CAAC,CACpC,CACD,ECzRM,GAAsB,CAC3B,KAAM,UACN,SAAU,WACV,YAAa,mCACb,MAAO,CACN,OAAQ,CACP,QAAS,UACT,UAAW,GACX,YAAa,kBACb,GAAI,CACH,KAAM,QACN,MAAO,UACP,MAAO,QACX,CACA,EACE,OAAQ,CACP,QAAS,UACT,UAAW,GACX,YAAa,kBACb,GAAI,CACH,KAAM,QACN,MAAO,UACP,MAAO,QACX,CACA,EACE,MAAO,CACN,QAAS,EACT,YAAa,qDACb,GAAI,CACH,KAAM,CAAC,QAAS,KAAK,EACrB,IAAK,EACL,IAAK,GACL,KAAM,EACN,MAAO,QACP,MAAO,QACX,CACA,EACE,UAAW,CACV,QAAS,EACT,YAAa,kCACb,GAAI,CACH,KAAM,CAAC,QAAS,KAAK,EACrB,IAAK,EACL,IAAK,GACL,KAAM,GACN,MAAO,YACP,MAAO,QACX,CACA,EACE,WAAY,CACX,QAAS,SACT,UAAW,GACX,YAAa,GACb,YAAa,sCACb,GAAI,CACH,KAAM,SACN,QAAS,GACT,MAAO,cACP,MAAO,QACX,CACA,CACA,EACC,aAAc,CAAC,CAAE,SAAA,CAAQ,IAAO,CAC/B,MAAM,EAAO,EACP,EAAS,EAAa,EAAE,IAAI,EAAa,CAAC,EAC1C,EAAW,EAAK,EAAK,EAAE,IAAI,CAAM,EAAG,EAAK,CAAC,EAAE,IAAI,EAAS,MAAM,OAAO,EACtE,EAAI,EAAK,EAAM,KAAK,KAAK,CAAC,CAAC,EAAG,EAAM,CAAC,CAAC,EACtC,EAAK,EAAE,IAAI,EAAM,EAAE,CAAC,EACpB,EAAI,GAAI,EAAU,CAAC,EAAE,IAAI,CAAE,EAC3B,EAAI,GAAI,EAAS,IAAI,CAAE,EAAG,CAAC,EAAE,IAAI,CAAE,EACnC,EAAK,GAAI,EAAG,CAAC,EAAE,SAAS,GAAI,EAAG,CAAC,CAAC,EAAE,OAAO,EAAG,CAAC,EAC9C,EAAO,EAAK,GAAI,EAAG,CAAC,EAAG,GAAI,EAAG,CAAC,CAAC,EAChC,EAAU,GAAI,GAAI,EAAM,EAAK,EAAM,KAAK,KAAK,CAAC,EAAI,CAAC,EAAG,EAAM,EAAE,CAAC,CAAC,EAAG,EAAK,CAAC,EACzE,EAAW,EAAM,EAAE,EAAE,IAAI,CAAO,EAChC,EAAY,EAAS,UAAU,QAAQ,IAAI,EAAM,GAAG,CAAC,EACrD,EAAQ,GAAO,EAAS,CAAC,EAAE,IAAI,EAAM,EAAE,CAAC,EACxC,EAAW,GAAW,EAAU,IAAI,CAAK,EAAG,EAAW,CAAQ,EAAE,IAAI,GAAK,EAAM,IAAI,EAAG,CAAS,CAAC,EACvG,OAAO,GAAU,EAAS,OAAO,QAAS,EAAS,OAAO,QAAS,EAAU,EAAS,WAAW,QAAQ,KAAK,CAC/G,CACD,ECjFM,GAAsB,CAC3B,KAAM,WACN,SAAU,cACV,YAAa,oCACb,cAAe,GACf,MAAO,CAAE,MAAO,CACf,QAAS,EACT,YAAa,iCACb,gBAAiB,CAAC,EAAM,IAAS,IAAS,IAAO,IAAS,GAC1D,GAAI,CACH,KAAM,CAAC,QAAS,KAAK,EACrB,IAAK,KACL,IAAK,IACL,KAAM,EACN,MAAO,QACP,MAAO,YACV,EACE,UAAY,GAAU,EAAQ,KAAK,GAAK,GAC1C,CAAE,EACD,aAAc,CAAC,CAAE,SAAA,EAAU,UAAA,CAAS,IAAO,CAC1C,GAAI,CAAC,EACJ,eAAQ,MAAM,4DAA4D,EACnE,EAAK,CAAC,EAEd,GAAI,EAAS,MAAM,QAAQ,QAAU,EAAG,OAAO,EAC/C,MAAM,EAAQ,EAAS,MAAM,QACvB,EAAO,GAAI,CAAK,EAChB,EAAO,EAAI,CAAK,EAChB,EAAI,EAAI,EACR,EAAQ,mBACR,EAAe,EAAK,SAAQ,EAAG,IAAI,CAAC,EACpC,EAAe,EAAK,IAAI,CAAK,EAC7B,EAAM,EAAK,IAAI,CAAY,EAC3B,EAAM,EAAa,IAAI,CAAY,EACnC,EAAM,EAAa,IAAI,CAAY,EACnC,EAAM,EAAa,IAAI,CAAY,EACnC,EAAM,EAAK,IAAI,CAAY,EAC3B,EAAM,EAAa,IAAI,CAAY,EACnC,EAAM,EAAa,IAAI,CAAY,EACnC,EAAM,EAAa,IAAI,CAAY,EACnC,EAAM,EAAK,IAAI,CAAY,EAC3B,EAAI,EAAU,EACd,EAAI,EAAU,EACd,EAAI,EAAU,EACpB,OAAO,EAAK,EAAK,EAAE,IAAI,CAAG,EAAE,IAAI,EAAE,IAAI,CAAG,CAAC,EAAE,IAAI,EAAE,IAAI,CAAG,CAAC,EAAG,EAAE,IAAI,CAAG,EAAE,IAAI,EAAE,IAAI,CAAG,CAAC,EAAE,IAAI,EAAE,IAAI,CAAG,CAAC,EAAG,EAAE,IAAI,CAAG,EAAE,IAAI,EAAE,IAAI,CAAG,CAAC,EAAE,IAAI,EAAE,IAAI,CAAG,CAAC,CAAC,EAAG,EAAU,CAAC,CAClK,CACD,EC7CM,GAAsB,CAC3B,KAAM,eACN,SAAU,WACV,YAAa,sDACb,MAAO,CACN,IAAK,CACJ,QAAS,iCACT,YAAa,mCACb,GAAI,CACH,KAAM,eACN,MAAO,QACP,MAAO,OACX,CACA,EACE,UAAW,CACV,QAAS,QACT,YAAa,oDACb,UAAY,IACJ,CACN,MAAS,EACT,QAAW,EACX,KAAQ,EACR,aAAc,EACd,KAAQ,CACb,GAAM,CAAK,GAAK,EAEb,YAAa,GACb,GAAI,CACH,KAAM,SACN,QAAS,CACR,CACC,MAAO,QACP,MAAO,OACb,EACK,CACC,MAAO,UACP,MAAO,SACb,EACK,CACC,MAAO,OACP,MAAO,MACb,EACK,CACC,MAAO,aACP,MAAO,YACb,EACK,CACC,MAAO,OACP,MAAO,MACb,CACA,EACI,MAAO,aACP,MAAO,YACX,CACA,CACA,EACC,aAAc,CAAC,CAAE,SAAA,EAAU,UAAA,EAAW,eAAA,CAAc,IAAO,CAC1D,MAAM,EAAS,EACT,EAAS,IAAI,GACnB,IAAI,EAAa,GACb,EAAY,GAChB,MAAM,EAAqB,IAAI,GAC/B,EAAmB,WAAa,GAChC,MAAM,EAAc,GAAQ,CAAkB,EACxC,EAAqB,EAAQ,CAAC,EAC9B,EAAoB,EAAQ,CAAC,EAC7B,EAAqB,EAAQ,CAAC,EAC9B,EAAkB,KACxB,SAAS,EAAS,EAAK,CACtB,MAAO,iBAAiB,KAAK,CAAG,CACjC,CACA,SAAS,EAAa,EAAK,CAC1B,OAAO,IAAI,QAAQ,CAAC,EAAS,IAAW,CACvC,MAAM,EAAM,IAAI,MAChB,EAAI,YAAc,YAClB,EAAI,OAAS,IAAM,CAClB,MAAM,GAAU,EAAI,cAAgB,IAAoB,EAAI,eAAiB,GACvE,EAAU,GAAU,EAAI,EAAkB,KAAK,MAAM,EAAkB,CAAM,EAC7E,EAAU,GAAU,EAAI,KAAK,MAAM,EAAkB,CAAM,EAAI,EAC/D,EAAS,SAAS,cAAc,QAAQ,EAC9C,EAAO,MAAQ,EACf,EAAO,OAAS,EAChB,MAAM,EAAM,EAAO,WAAW,IAAI,EAClC,GAAI,CAAC,EAAK,CACT,EAAuB,IAAI,MAAM,0BAA0B,CAAC,EAC5D,MACD,CACA,EAAI,UAAU,EAAK,EAAG,EAAG,EAAS,CAAO,EACzC,EAAQ,CACP,OAAA,EACA,MAAO,EACP,OAAQ,CACd,CAAM,CACF,EACA,EAAI,QAAU,EACd,EAAI,IAAM,CACX,CAAC,CACF,CACA,MAAM,EAAa,GAAQ,CAC1B,GAAI,GAAC,GAAO,EAAI,KAAI,IAAO,IAAM,GAEjC,IADA,EAAY,GACR,EAAS,CAAG,EAAG,CAClB,EAAa,CAAG,EAAE,KAAK,CAAC,CAAE,OAAA,EAAQ,MAAA,EAAO,OAAA,CAAM,IAAO,CACrD,MAAM,EAAY,EAAQ,EAC1B,EAAa,EACb,sBAAsB,IAAM,CAC3B,EAAmB,QAAO,EAC1B,EAAmB,MAAQ,EAC3B,EAAkB,MAAQ,EAC1B,EAAmB,MAAQ,EAC3B,EAAmB,MAAQ,EAC3B,EAAmB,WAAa,GAChC,EAAmB,YAAc,EAClC,CAAC,EACD,EAAY,EACb,CAAC,EAAE,MAAO,GAAU,CACnB,QAAQ,MAAM,2CAA2C,CAAG,GAAI,CAAK,EACrE,EAAY,EACb,CAAC,EACD,MACD,CACA,GAAI,CACH,IAAI,EAAc,EAClB,GAAI,CACH,EAAc,IAAI,IAAI,EAAK,OAAO,SAAS,IAAI,EAAE,IAClD,MAAY,CAAC,CACb,EAAO,KAAK,EAAM,GAAkB,CACnC,EAAc,WAAa,GAC3B,MAAM,EAAM,EAAc,MACpB,EAAW,EAAI,OAAS,EACxB,EAAY,EAAI,QAAU,EAC1B,EAAY,EAAW,EAC7B,EAAc,QAAO,EACrB,EAAa,EACb,sBAAsB,IAAM,CAC3B,MAAM,EAAe,EAAmB,MACpC,GAAgB,OAAO,GAAiB,WAAa,EAAa,QAAU,GAAY,EAAa,SAAW,IAAY,EAAmB,QAAO,EAC1J,EAAmB,MAAQ,EAC3B,EAAkB,MAAQ,EAC1B,EAAmB,MAAQ,EAC3B,EAAmB,MAAQ,EAC3B,EAAmB,WAAa,GAChC,EAAmB,YAAc,EAClC,CAAC,EACD,EAAY,EACb,EAAG,OAAS,GAAU,CACrB,MAAM,EAAa,CAAC,EAAI,WAAW,SAAS,GAAK,CAAC,EAAI,WAAW,UAAU,GAAK,CAAC,EAAI,WAAW,OAAO,EACvG,QAAQ,MAAM;mBAAyD,CAAG;kBAAqB,CAAW;eAAkB,EAAa,WAAa,UAAU;UAAc,CAAK,EACnL,EAAY,EACb,CAAC,CACF,OAAS,EAAO,CACf,QAAQ,MAAM,8CAA+C,CAAK,EAClE,EAAY,EACb,EACD,EACA,WAAW,IAAM,CAChB,MAAM,EAAa,GAAU,KAAK,SAAS,OAAS,GAChD,GAAc,EAAW,KAAI,IAAO,IAAI,EAAU,CAAU,CACjE,EAAG,CAAC,EACJ,EAAe,IAAM,CACpB,MAAM,EAAS,GAAU,KAAK,SAAS,OAAS,GAC5C,IAAW,GAAc,CAAC,GAAW,EAAU,CAAM,CAC1D,CAAC,EACD,EAAU,IAAM,CACf,EAAmB,QAAO,CAC3B,CAAC,EACD,MAAM,EAAO,EACP,EAAiB,EAAa,EAAE,IAAI,EAAa,CAAC,EAClD,EAAgB,EAAS,UAAU,QAAQ,MACjD,IAAI,EACJ,OAAQ,EAAa,CACpB,IAAK,GAAG,CACP,MAAM,EAAe,GAAI,EAAe,IAAI,CAAkB,EAAG,EAAM,CAAC,CAAC,EACzE,EAAU,EAAK,EAAmB,IAAI,CAAc,EAAE,IAAI,CAAY,EAAG,CAAY,EACrF,KACD,CACA,IAAK,GACJ,EAAU,EAAK,EAAG,CAAC,EACnB,MACD,IAAK,GAAG,CACP,MAAM,EAAiB,GAAI,GAAI,EAAe,IAAI,CAAkB,EAAG,EAAM,CAAC,CAAC,EAAG,GAAI,EAAa,EAAE,IAAI,CAAiB,EAAG,EAAa,EAAE,IAAI,CAAkB,CAAC,CAAC,EACpK,EAAU,EAAK,EAAmB,IAAI,CAAc,EAAE,IAAI,CAAc,EAAG,CAAc,EACzF,KACD,CACA,IAAK,GAAG,CACP,MAAM,EAAY,GAAI,EAAa,EAAE,IAAI,CAAiB,EAAG,EAAa,EAAE,IAAI,CAAkB,CAAC,EACnG,EAAU,EAAK,EAAmB,IAAI,CAAc,EAAE,IAAI,CAAS,EAAG,CAAS,EAC/E,KACD,CAEA,QAAS,CACR,MAAM,EAAa,GAAI,EAAe,IAAI,CAAkB,EAAG,EAAM,CAAC,CAAC,EACvE,EAAU,EAAK,EAAmB,IAAI,CAAc,EAAE,IAAI,CAAU,EAAG,CAAU,EACjF,KACD,CACH,CACE,MAAM,EAAa,EAAK,IAAI,EAAK,EAAE,CAAC,EAAE,IAAI,CAAO,EAAE,IAAI,EAAK,EAAE,CAAC,EACzD,EAAU,EAAK,EAAW,EAAG,EAAM,CAAC,EAAE,IAAI,EAAW,CAAC,CAAC,EACvD,EAAe,EAAY,OAAO,CAAO,EACzC,EAAgB,GAAG,GAAG,EAAQ,EAAE,SAAS,CAAC,EAAG,EAAQ,EAAE,YAAY,CAAC,CAAC,EAAG,GAAG,EAAQ,EAAE,SAAS,CAAC,EAAG,EAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,EACjI,OAAO,EAAK,EAAa,IAAK,GAAO,EAAe,EAAM,CAAC,EAAG,EAAa,CAAC,CAAC,CAC9E,CACD,EC3MM,GAAsB,CAC3B,KAAM,SACN,SAAU,cACV,YAAa,2CACb,cAAe,GACf,MAAO,CAAA,EACP,aAAc,CAAC,CAAE,UAAA,CAAS,IAAO,CAChC,GAAI,CAAC,EACJ,eAAQ,MAAM,yDAAyD,EAChE,EAAK,CAAC,EAEd,MAAM,EAAc,GAAa,EAAK,EAAG,EAAG,EAAG,CAAC,EAChD,OAAO,EAAK,EAAK,EAAG,EAAG,CAAC,EAAE,IAAI,EAAY,GAAG,EAAG,EAAY,CAAC,CAC9D,CACD,ECXM,GAAsB,CAC3B,KAAM,eACN,SAAU,cACV,YAAa,6DACb,YAAa,GACb,cAAe,GACf,MAAO,CACN,OAAQ,CACP,QAAS,CACR,EAAG,GACH,EAAG,EACP,EACG,UAAW,GACX,YAAa,8CACb,GAAI,CACH,KAAM,WACN,MAAO,SACP,MAAO,UACX,CACA,EACE,SAAU,CACT,QAAS,EACT,YAAa,gDACb,GAAI,CACH,KAAM,CAAC,QAAS,KAAK,EACrB,IAAK,EACL,IAAK,GACL,KAAM,EACN,MAAO,WACP,MAAO,QACX,CACA,EACE,MAAO,CACN,QAAS,EACT,YAAa,sDACb,GAAI,CACH,KAAM,CAAC,QAAS,KAAK,EACrB,IAAK,EACL,IAAK,IACL,KAAM,EACN,MAAO,QACP,MAAO,QACX,CACA,EACE,MAAO,CACN,QAAS,SACT,YAAa,mEACb,UAAW,GACX,YAAa,GACb,GAAI,CACH,KAAM,SACN,QAAS,CACR,CACC,MAAO,UACP,MAAO,SACb,EACK,CACC,MAAO,cACP,MAAO,aACb,EACK,CACC,MAAO,SACP,MAAO,QACb,EACK,CACC,MAAO,OACP,MAAO,MACb,CACA,EACI,MAAO,QACP,MAAO,QACX,CACA,CACA,EACC,aAAc,CAAC,CAAE,SAAA,EAAU,UAAA,EAAW,UAAA,CAAS,IAAO,CACrD,GAAI,CAAC,EAAW,OAAO,EAAK,EAAG,EAAG,EAAG,CAAC,EACtC,MAAM,EAAe,GAAiB,CAAS,EAC/C,EAAU,IAAM,CACX,GAAc,cAAc,SAAS,EAAa,aAAa,QAAO,CAC3E,CAAC,EACD,MAAM,EAAS,EAAa,EAAE,IAAI,EAAa,CAAC,EAC1C,EAAoB,EAAK,EAAS,EAAE,IAAI,CAAM,EAAG,EAAS,CAAC,EAC3D,EAAY,EAAK,EAAS,OAAO,QAAQ,EAAE,IAAI,CAAM,EAAG,EAAS,OAAO,QAAQ,EAAE,SAAQ,CAAE,EAC5F,EAAQ,EAAkB,IAAI,CAAS,EACvC,EAAS,GAAO,CAAK,EACrB,EAAe,GAAK,EAAM,EAAG,EAAM,CAAC,EACpC,EAAc,EAAS,MAAM,QAAQ,IAAI,KAAK,GAAK,GAAG,EACtD,EAAe,EAAa,IAAI,CAAW,EAC3C,EAAe,EAAM,KAAK,GAAK,CAAC,EAAE,IAAI,EAAS,SAAS,OAAO,EAC/D,EAAe,GAAI,EAAc,EAAa,IAAI,CAAC,CAAC,EACpD,EAAa,EAAa,YAAY,CAAY,EAAE,OAAO,EAAa,IAAI,CAAC,EAAE,IAAI,CAAY,EAAG,CAAY,EAC9G,EAAoB,EAAK,GAAI,CAAU,EAAE,IAAI,CAAM,EAAG,EAAI,CAAU,EAAE,IAAI,CAAM,CAAC,EACjF,EAAkB,EAAU,IAAI,CAAiB,EACjD,EAAU,EAAK,EAAgB,EAAE,IAAI,CAAM,EAAG,EAAgB,CAAC,EACrE,OAAO,GAAmB,GAAkB,EAAS,EAAa,OAAO,CAAO,EAAG,EAAc,EAAS,MAAM,QAAQ,KAAK,CAAC,CAC/H,CACD,ECjGA,IAAI,GAAgB,GAAG,CAAC,CAAC,CAAC,IAAM,CAC/B,MAAM,EAAM,EAAM,SAAS,EAC3B,OAAO,EAAK,GAAI,EAAI,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAG,GAAI,EAAI,IAAI,EAAE,IAAI,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAG,GAAI,EAAI,IAAI,EAAE,IAAI,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAClI,CAAC,EACD,MAAM,GAAsB,CAC3B,KAAM,YACN,SAAU,UACV,YAAa,8CACb,MAAO,CACN,cAAe,CACd,QAAS,CACR,EAAG,GACH,EAAG,EACP,EACG,UAAW,GACX,YAAa,+BACb,GAAI,CACH,KAAM,WACN,MAAO,iBACP,MAAO,OACX,CACA,EACE,UAAW,CACV,QAAS,GACT,YAAa,oDACb,GAAI,CACH,KAAM,CAAC,QAAS,KAAK,EACrB,IAAK,EACL,IAAK,EACL,KAAM,IACN,MAAO,YACP,MAAO,OACX,CACA,EACE,eAAgB,CACf,QAAS,GACT,YAAa,qEACb,GAAI,CACH,KAAM,CAAC,QAAS,KAAK,EACrB,IAAK,EACL,IAAK,EACL,KAAM,IACN,MAAO,SACP,MAAO,aACX,CACA,EACE,YAAa,CACZ,QAAS,GACT,YAAa,yDACb,GAAI,CACH,KAAM,QACN,IAAK,GACL,IAAK,EACL,KAAM,IACN,MAAO,eACP,MAAO,aACX,CACA,EACE,YAAa,CACZ,QAAS,GACT,YAAa,wDACb,GAAI,CACH,KAAM,CAAC,QAAS,KAAK,EACrB,IAAK,EACL,IAAK,EACL,KAAM,IACN,MAAO,eACP,MAAO,aACX,CACA,EACE,cAAe,CACd,QAAS,GACT,YAAa,gEACb,GAAI,CACH,KAAM,CAAC,QAAS,KAAK,EACrB,IAAK,EACL,IAAK,EACL,KAAM,IACN,MAAO,OACP,MAAO,aACX,CACA,EACE,WAAY,CACX,QAAS,GACT,YAAa,0BACb,GAAI,CACH,KAAM,QACN,IAAK,GACL,IAAK,EACL,KAAM,IACN,MAAO,YACP,MAAO,aACX,CACA,EACE,WAAY,CACX,QAAS,GACT,YAAa,oEACb,GAAI,CACH,KAAM,CAAC,QAAS,KAAK,EACrB,IAAK,EACL,IAAK,EACL,KAAM,IACN,MAAO,cACP,MAAO,aACX,CACA,EACE,aAAc,CACb,QAAS,GACT,YAAa,0CACb,GAAI,CACH,KAAM,CAAC,QAAS,KAAK,EACrB,IAAK,IACL,IAAK,EACL,KAAM,IACN,MAAO,gBACP,MAAO,aACX,CACA,EACE,mBAAoB,CACnB,QAAS,GACT,YAAa,mEACb,GAAI,CACH,KAAM,CAAC,QAAS,KAAK,EACrB,IAAK,EACL,IAAK,EACL,KAAM,IACN,MAAO,YACP,MAAO,SACX,CACA,EACE,gBAAiB,CAChB,QAAS,EACT,YAAa,8DACb,GAAI,CACH,KAAM,CAAC,QAAS,KAAK,EACrB,IAAK,EACL,IAAK,GACL,KAAM,EACN,MAAO,SACP,MAAO,SACX,CACA,EACE,gBAAiB,CAChB,QAAS,IACT,YAAa,mDACb,GAAI,CACH,KAAM,CAAC,QAAS,KAAK,EACrB,IAAK,EACL,IAAK,EACL,KAAM,IACN,MAAO,SACP,MAAO,SACX,CACA,EACE,aAAc,CACb,QAAS,GACT,YAAa,6CACb,GAAI,CACH,KAAM,CAAC,QAAS,KAAK,EACrB,IAAK,GACL,IAAK,EACL,KAAM,IACN,MAAO,gBACP,MAAO,SACX,CACA,EACE,eAAgB,CACf,QAAS,GACT,YAAa,+DACb,GAAI,CACH,KAAM,CAAC,QAAS,KAAK,EACrB,IAAK,EACL,IAAK,EACL,KAAM,IACN,MAAO,QACP,MAAO,SACX,CACA,EACE,UAAW,CACV,QAAS,GACT,YAAa,8BACb,GAAI,CACH,KAAM,CAAC,QAAS,KAAK,EACrB,IAAK,GACL,IAAK,EACL,KAAM,IACN,MAAO,aACP,MAAO,SACX,CACA,EACE,SAAU,CACT,QAAS,GACT,YAAa,uGACb,GAAI,CACH,KAAM,CAAC,QAAS,KAAK,EACrB,IAAK,EACL,IAAK,EACL,KAAM,IACN,MAAO,YACP,MAAO,OACX,CACA,EACE,MAAO,CACN,QAAS,GACT,YAAa,uDACb,GAAI,CACH,KAAM,QACN,IAAK,EACL,IAAK,EACL,KAAM,GACN,MAAO,QACP,MAAO,WACX,CACA,CACA,EACC,aAAe,GAAW,CACzB,KAAM,CAAE,SAAA,CAAQ,EAAK,EACf,EAAa,EAAS,UAAU,QAChC,EAAY,EAAS,eAAe,QACpC,EAAe,EAAS,YAAY,QACpC,EAAe,EAAS,YAAY,QACpC,EAAW,EAAS,cAAc,QAClC,EAAW,EAAS,WAAW,QAC/B,EAAc,EAAS,WAAW,QAClC,EAAY,EAAS,aAAa,QAClC,EAAgB,EAAS,mBAAmB,QAC5C,EAAgB,EAAS,gBAAgB,QACzC,EAAa,EAAS,gBAAgB,QACtC,EAAa,EAAS,aAAa,QACnC,EAAY,EAAS,eAAe,QACpC,EAAW,EAAS,UAAU,QAC9B,EAAS,EAAa,EAAE,IAAI,EAAa,CAAC,EAC1C,EAAO,EACP,EAAW,EAAK,EAAS,cAAc,QAAQ,EAAG,EAAS,cAAc,QAAQ,EAAE,SAAQ,CAAE,EAC7F,EAAY,EAAK,GAAI,EAAE,EAAE,IAAI,CAAQ,EACrC,EAAI,GAAmB,EAAQ,EAAS,KAAK,EAC7C,EAAU,EAAI,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,EAAE,IAAI,EAAI,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,EAAI,EAAE,IAAI,IAAI,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,EACvG,EAAY,EAAS,SAAS,QAC9B,EAAW,GAAI,GAAI,EAAS,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,EAAG,GAAI,EAAS,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,EAC7E,EAAY,EAAM,CAAC,EAAE,IAAI,EAAU,IAAI,EAAE,CAAC,EAC1C,EAAW,GAAI,EAAM,CAAC,EAAG,GAAW,EAAW,EAAM,CAAC,EAAG,CAAQ,EAAE,SAAQ,EAAI,CAAS,EACxF,EAAa,EAAW,IAAI,CAAQ,EAAE,IAAI,CAAO,EACjD,EAAY,EAAK,EAAK,EAAE,IAAI,EAAS,CAAC,EAAE,IAAI,CAAM,EAAG,EAAK,EAAE,IAAI,EAAS,CAAC,CAAC,EAC3E,EAAY,EAAU,OAAM,EAC5B,EAAe,CACpB,CACC,OAAQ,IACR,KAAM,GACN,OAAQ,GACR,OAAQ,GACR,EAAG,EACH,EAAG,IACH,EAAG,EACP,EACG,CACC,OAAQ,GACR,KAAM,IACN,OAAQ,IACR,OAAQ,IACR,EAAG,EACH,EAAG,IACH,EAAG,GACP,EACG,CACC,OAAQ,GACR,KAAM,IACN,OAAQ,IACR,OAAQ,IACR,EAAG,IACH,EAAG,IACH,EAAG,CACP,EACG,CACC,OAAQ,IACR,KAAM,IACN,OAAQ,IACR,OAAQ,IACR,EAAG,IACH,EAAG,EACH,EAAG,EACP,EACG,CACC,OAAQ,IACR,KAAM,IACN,OAAQ,GACR,OAAQ,EACR,EAAG,EACH,EAAG,GACH,EAAG,GACP,EACG,CACC,OAAQ,KACR,KAAM,GACN,OAAQ,IACR,OAAQ,GACR,EAAG,IACH,EAAG,IACH,EAAG,CACP,EACG,CACC,OAAQ,KACR,KAAM,IACN,OAAQ,GACR,OAAQ,IACR,EAAG,EACH,EAAG,IACH,EAAG,EACP,CACA,EACE,IAAI,EAAa,EAAK,EAAG,EAAG,CAAC,EAC7B,QAAS,EAAI,EAAG,EAAI,EAAa,OAAQ,IAAK,CAC7C,MAAM,GAAM,EAAa,CAAC,EACpB,GAAW,EAAS,IAAI,EAAU,IAAI,EAAM,GAAI,MAAM,EAAE,IAAI,CAAY,EAAE,IAAI,CAAC,CAAC,CAAC,EACjF,GAAO,EAAK,EAAK,EAAE,IAAI,GAAS,CAAC,EAAE,IAAI,CAAM,EAAG,EAAK,EAAE,IAAI,GAAS,CAAC,CAAC,EAAE,OAAM,EAC9E,GAAK,EAAM,GAAI,IAAI,EACnB,GAAO,GAAW,GAAG,IAAI,GAAG,EAAG,GAAI,EAAI,EAAE,SAAQ,EACjD,GAAY,GAAW,GAAG,IAAI,GAAG,EAAG,GAAG,IAAI,GAAG,EAAG,EAAI,EAAE,SAAQ,EAC/D,GAAQ,GAAK,IAAI,EAAM,CAAC,EAAE,IAAI,GAAU,IAAI,EAAM,GAAI,MAAM,CAAC,CAAC,CAAC,EAC/D,GAAS,EAAM,EAAI,IAAI,EACvB,GAAW,EAAI,EAAE,IAAI,GAAG,EAAE,IAAI,EAAM,CAAC,EAAE,IAAI,GAAG,EAAE,IAAI,EAAI,EAAE,IAAI,GAAG,EAAE,IAAI,GAAO,IAAI,GAAG,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,EAC1G,GAAa,GAAG,IAAI,GAAG,EACvB,GAAe,GAAG,IAAI,CAAY,EAAE,IAAI,GAAG,EAC3C,GAAY,GAAG,IAAI,EAAE,EACrB,GAAQ,GAAW,EAAM,CAAC,EAAG,GAAW,GAAI,GAAK,IAAI,GAAW,IAAI,EAAY,CAAC,CAAC,CAAC,EAAE,SAAQ,EAC7F,GAAQ,GAAW,EAAM,CAAC,EAAG,GAAW,GAAI,GAAK,IAAI,EAAU,CAAC,CAAC,EAAE,SAAQ,EAC3E,GAAQ,GAAW,EAAM,CAAC,EAAG,GAAW,GAAI,GAAK,IAAI,GAAW,IAAI,EAAY,CAAC,CAAC,CAAC,EAAE,SAAQ,EAC7F,GAAa,EAAM,GAAI,MAAM,EAAE,IAAI,CAAS,EAAE,IAAI,EAAQ,EAC1D,GAAe,EAAK,GAAM,IAAI,EAAM,GAAI,CAAC,CAAC,EAAE,IAAI,GAAM,IAAI,CAAY,CAAC,EAAE,IAAI,EAAU,EAAG,GAAM,IAAI,EAAM,GAAI,CAAC,CAAC,EAAE,IAAI,GAAM,IAAI,CAAY,CAAC,EAAE,IAAI,EAAU,EAAG,GAAM,IAAI,EAAM,GAAI,CAAC,CAAC,EAAE,IAAI,GAAM,IAAI,CAAY,CAAC,EAAE,IAAI,EAAU,CAAC,EAC1O,EAAa,EAAW,IAAI,EAAY,CACzC,CACA,MAAM,EAAY,EAAK,EAAM,CAAC,EAAE,IAAI,EAAS,CAAC,EAAG,EAAM,CAAC,EAAE,IAAI,EAAS,CAAC,CAAC,EACnE,EAAc,EAAK,EAAK,EAAE,IAAI,EAAU,CAAC,EAAE,IAAI,CAAM,EAAG,EAAK,EAAE,IAAI,EAAU,CAAC,CAAC,EAC/E,EAAgB,EAAY,OAAM,EAClC,EAAmB,EAAS,IAAI,CAAW,EAAE,IAAI,GAAG,EACpD,EAAY,EAAU,IAAI,GAAG,EAAE,IAAI,IAAI,EACvC,GAAQ,GAAW,EAAM,CAAC,EAAG,EAAW,GAAI,EAAc,IAAI,EAAS,IAAI,CAAgB,CAAC,CAAC,CAAC,EAAE,SAAQ,EACxG,GAAQ,GAAW,EAAM,CAAC,EAAG,EAAW,GAAI,EAAc,IAAI,CAAQ,CAAC,CAAC,EAAE,SAAQ,EAClF,GAAQ,GAAW,EAAM,CAAC,EAAG,EAAW,GAAI,EAAc,IAAI,EAAS,IAAI,CAAgB,CAAC,CAAC,CAAC,EAAE,SAAQ,EACxG,GAAa,EAAI,GAAK,EAAY,EAAG,EAAY,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,IAAI,GAAG,EAAE,IAAI,GAAG,EAC3F,GAAY,EAAK,GAAO,GAAO,EAAK,EAAE,IAAI,CAAQ,EAAE,IAAI,EAAU,EAClE,GAAa,GAAK,EAAU,EAAG,EAAU,CAAC,EAC1C,GAAW,GAAK,EAAU,EAAG,EAAU,EAAE,IAAI,CAAM,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,GAAG,CAAC,EAC5E,GAAa,GAAW,IAAI,EAAQ,EACpC,GAAgB,GAAI,GAAI,GAAI,GAAW,IAAI,EAAc,IAAI,CAAC,CAAC,CAAC,CAAC,EAAG,EAAM,GAAG,CAAC,EAC9E,GAAkB,GAAI,GAAI,GAAI,GAAW,IAAI,GAAG,EAAE,IAAI,EAAc,IAAI,CAAC,CAAC,CAAC,CAAC,EAAG,EAAM,CAAC,CAAC,EAAE,IAAI,EAAE,EAC/F,GAAa,EAAM,CAAC,EAAE,IAAI,EAAM,CAAC,EAAE,IAAI,EAAU,IAAI,CAAS,EAAE,IAAI,EAAE,CAAC,CAAC,EACxE,EAAe,GAAc,GAAW,IAAI,EAAM,SAAS,CAAC,EAAE,IAAI,EAAE,CAAC,EACrE,GAAW,GAAI,EAAK,EAAG,IAAK,GAAG,EAAG,EAAc,EAAM,GAAG,CAAC,EAC1D,GAAiB,GAAc,IAAI,EAAe,EAAE,IAAI,EAAU,EAAE,IAAI,CAAa,EAAE,IAAI,EAAQ,EACnG,EAAK,GAAI,EAAK,EAAE,IAAI,EAAS,CAAC,CAAC,EAC/B,EAAK,GAAI,EAAK,EAAE,IAAI,EAAS,CAAC,CAAC,EAC/B,EAAW,EAAM,IAAI,EAAE,IAAI,CAAE,EAAE,IAAI,CAAE,EAAE,IAAG,EAC1C,GAAQ,EAAW,IAAI,CAAU,EAAE,IAAI,GAAG,EAAE,IAAI,IAAI,EACpD,GAAU,EAAM,EAAE,EAAE,IAAI,CAAE,EAAE,IAAI,CAAE,EAAE,IAAI,GAAM,IAAI,EAAE,CAAC,EAAE,IAAG,EAC1D,GAAU,EAAM,EAAE,EAAE,IAAI,CAAE,EAAE,IAAI,CAAE,EAAE,IAAI,EAAK,EAAE,IAAG,EAClD,GAAU,EAAM,EAAE,EAAE,IAAI,CAAE,EAAE,IAAI,CAAE,EAAE,IAAI,GAAM,IAAI,GAAG,CAAC,EAAE,IAAG,EAC3D,GAAc,EAAK,EAAS,IAAI,EAAO,EAAE,IAAI,EAAE,EAAG,EAAS,IAAI,EAAO,EAAE,IAAI,GAAG,EAAG,EAAS,IAAI,EAAO,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,CAAU,EAC/H,GAAiB,EAAM,CAAC,EAAE,IAAI,EAAS,IAAI,CAAQ,EAAE,IAAI,GAAG,CAAC,EAC7D,GAAa,EAAM,EAAE,EAAE,IAAI,CAAS,EAAE,IAAI,CAAS,EAAE,IAAI,EAAc,EAAE,IAAG,EAAG,IAAI,CAAS,EAAE,IAAI,EAAK,EAAG,IAAK,GAAG,CAAC,EACnH,GAAW,EAAM,IAAI,EAAE,IAAI,CAAS,EAAE,IAAI,CAAS,EAAE,IAAG,EACxD,GAAY,GAAW,EAAM,CAAC,EAAG,EAAM,IAAI,EAAG,CAAS,EAAE,SAAQ,EACjE,GAAY,GAAS,IAAI,GAAU,IAAI,GAAG,CAAC,EAAE,IAAI,EAAK,EAAG,IAAK,GAAG,CAAC,EAAE,IAAI,CAAU,EAClF,EAAa,EAAW,IAAI,EAAS,EAAE,IAAI,EAAc,EAAE,IAAI,EAAW,EAAE,IAAI,EAAU,EAAE,IAAI,EAAS,EAAE,IAAI,CAAU,EAC/H,OAAO,EAAK,EAAY,GAAM,GAAI,EAAY,EAAK,KAAM,KAAM,IAAI,CAAC,EAAE,IAAI,CAAC,EAAG,EAAG,CAAC,CAAC,CACpF,CACD,EC7WA,IAAI,GAAa,MAAM,KAAK,CAAE,OAAQ,EAAE,EAAI,CAAC,EAAG,IAAM,CACrD,MAAM,GAAK,EAAI,GAAK,IAAM,EAC1B,OAAO,KAAK,IAAI,IAAM,EAAI,EAAI,GAAG,CAClC,CAAC,EACG,GAAO,GAAW,OAAO,CAAC,EAAG,IAAM,EAAI,CAAC,EACxC,GAAc,GAAW,IAAK,GAAM,EAAI,EAAI,EAChD,MAAM,GAAsB,CAC3B,KAAM,aACN,SAAU,QACV,YAAa,8CACb,YAAa,GACb,cAAe,GACf,MAAO,CACN,UAAW,CACV,QAAS,GACT,YAAa,sCACb,GAAI,CACH,KAAM,CAAC,QAAS,KAAK,EACrB,IAAK,EACL,IAAK,IACL,KAAM,EACN,MAAO,YACP,MAAO,QACX,CACA,EACE,MAAO,CACN,QAAS,EACT,UAAW,GACX,YAAa,4CACb,GAAI,CACH,KAAM,CAAC,QAAS,KAAK,EACrB,IAAK,EACL,IAAK,IACL,KAAM,EACN,MAAO,QACP,MAAO,QACX,CACA,CACA,EACC,aAAc,CAAC,CAAE,SAAA,EAAU,UAAA,EAAW,UAAA,CAAS,IAAO,CACrD,GAAI,CAAC,EAAW,OAAO,EAAK,EAAG,EAAG,EAAG,CAAC,EACtC,MAAM,EAAe,GAAiB,CAAS,EAC/C,EAAU,IAAM,CACX,GAAc,cAAc,SAAS,EAAa,aAAa,QAAO,CAC3E,CAAC,EACD,MAAM,EAAW,GAAQ,EAAS,MAAM,OAAO,EACzC,EAAS,EAAa,EAAE,IAAI,EAAa,CAAC,EAC1C,EAAgB,EAAK,GAAI,CAAQ,EAAE,IAAI,CAAM,EAAG,EAAI,CAAQ,CAAC,EACnE,OAAO,GAAG,IAAM,CACf,MAAM,EAAO,EACP,EAAa,EAAc,IAAI,EAAS,UAAU,OAAO,EAAE,IAAI,CAAY,EAAE,IAAI,CAAC,EAClF,EAAQ,EAAK,CAAC,EAAE,MAAK,EAC3B,QAAS,EAAI,EAAG,EAAI,GAAI,IAAK,CAC5B,MAAM,EAAQ,EAAK,IAAI,EAAW,IAAI,EAAI,GAAK,EAAE,CAAC,EAClD,EAAM,OAAO,EAAM,IAAI,EAAa,OAAO,CAAK,EAAE,IAAI,EAAM,GAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAC9E,CACA,OAAO,GAAmB,CAAK,CAChC,CAAC,EAAC,CACH,CACD,EC3DM,GAAsB,CAC3B,KAAM,iBACN,SAAU,WACV,YAAa,uCACb,MAAO,CACN,OAAQ,CACP,QAAS,UACT,UAAW,GACX,YAAa,qCACb,GAAI,CACH,KAAM,QACN,MAAO,UACP,MAAO,QACX,CACA,EACE,OAAQ,CACP,QAAS,UACT,UAAW,GACX,YAAa,mCACb,GAAI,CACH,KAAM,QACN,MAAO,UACP,MAAO,QACX,CACA,EACE,MAAO,CACN,QAAS,CACR,EAAG,EACH,EAAG,EACP,EACG,UAAW,GACX,YAAa,qCACb,GAAI,CACH,KAAM,WACN,MAAO,QACP,MAAO,UACX,CACA,EACE,IAAK,CACJ,QAAS,CACR,EAAG,EACH,EAAG,EACP,EACG,UAAW,GACX,YAAa,mCACb,GAAI,CACH,KAAM,WACN,MAAO,MACP,MAAO,UACX,CACA,EACE,MAAO,CACN,QAAS,EACT,UAAW,GACX,YAAa,yDACb,GAAI,CACH,KAAM,CAAC,QAAS,KAAK,EACrB,IAAK,EACL,IAAK,IACL,KAAM,EACN,MAAO,QACP,MAAO,QACX,CACA,EACE,MAAO,CACN,QAAS,UACT,UAAW,GACX,YAAa,GACb,YAAa,oDACb,GAAI,CACH,KAAM,SACN,QAAS,CACR,CACC,MAAO,UACP,MAAO,SACb,EACK,CACC,MAAO,cACP,MAAO,aACb,EACK,CACC,MAAO,SACP,MAAO,QACb,EACK,CACC,MAAO,OACP,MAAO,MACb,CACA,EACI,MAAO,QACP,MAAO,QACX,CACA,EACE,WAAY,CACX,QAAS,SACT,UAAW,GACX,YAAa,GACb,YAAa,sCACb,GAAI,CACH,KAAM,SACN,QAAS,GACT,MAAO,cACP,MAAO,QACX,CACA,CACA,EACC,aAAc,CAAC,CAAE,SAAA,CAAQ,IAAO,CAC/B,MAAM,EAAO,EACP,EAAW,EAAK,EAAS,MAAM,QAAQ,CAAC,EAAG,EAAS,MAAM,QAAQ,CAAC,EAAE,SAAQ,CAAE,EAC/E,EAAS,EAAK,EAAS,IAAI,QAAQ,CAAC,EAAG,EAAS,IAAI,QAAQ,CAAC,EAAE,SAAQ,CAAE,EACzE,EAAiB,EAAO,IAAI,CAAQ,EACpC,EAAiB,GAAO,CAAc,EACtC,EAAc,GAAU,CAAc,EACtC,EAAgB,EAAa,EAAE,IAAI,IAAI,EACvC,EAAS,EAAa,EAAE,IAAI,CAAa,EACzC,EAAW,GAAQ,EAAS,MAAM,OAAO,EAAE,OAAM,EACjD,EAAW,GAAI,CAAQ,EACvB,EAAW,EAAI,CAAQ,EACvB,EAAW,EAAS,IAAI,CAAM,EAAE,IAAI,EAAE,EACtC,EAAa,EAAK,IAAI,CAAQ,EAC9B,EAA0B,EAAK,EAAW,EAAE,IAAI,CAAM,EAAG,EAAW,CAAC,EACrE,EAAmB,EAAK,EAAwB,EAAE,IAAI,CAAQ,EAAE,IAAI,EAAwB,EAAE,IAAI,CAAQ,CAAC,EAAG,EAAwB,EAAE,IAAI,CAAQ,EAAE,IAAI,EAAwB,EAAE,IAAI,CAAQ,CAAC,CAAC,EAClM,EAAI,GAAI,EAAK,EAAiB,EAAE,IAAI,CAAM,EAAG,EAAiB,CAAC,EAAE,IAAI,CAAQ,EAAE,IAAI,CAAQ,EAAG,CAAW,EAAE,IAAI,EAAe,IAAI,IAAI,CAAC,EACvI,EAAgB,EAAS,MAAM,QAAQ,MAC7C,IAAI,EACJ,OAAQ,EAAa,CACpB,IAAK,GACJ,EAAS,EACT,MACD,IAAK,GAAG,CACP,MAAM,EAAU,GAAI,GAAI,CAAC,EAAG,EAAM,CAAC,CAAC,EACpC,EAAS,EAAQ,YAAY,EAAM,CAAC,CAAC,EAAE,OAAO,EAAM,CAAC,EAAE,IAAI,CAAO,EAAG,CAAO,EAC5E,KACD,CACA,IAAK,GACJ,EAAS,GAAM,CAAC,EAChB,MACD,QAAS,EAAS,EAAE,MAAM,EAAM,CAAC,EAAG,EAAM,CAAC,CAAC,CAC/C,CACE,MAAM,EAAa,GAAU,EAAS,OAAO,QAAS,EAAS,OAAO,QAAS,EAAO,MAAM,EAAM,CAAC,EAAG,EAAM,CAAC,CAAC,EAAG,EAAS,WAAW,QAAQ,KAAK,EAClJ,IAAI,EACJ,GAAI,IAAkB,EAAG,CACxB,MAAM,EAAY,EAAE,iBAAiB,EAAM,CAAC,CAAC,EAAE,OAAO,EAAM,CAAC,EAAG,EAAM,CAAC,CAAC,EAClE,EAAY,EAAE,cAAc,EAAM,CAAC,CAAC,EAAE,OAAO,EAAM,CAAC,EAAG,EAAM,CAAC,CAAC,EAC/D,EAAW,EAAU,IAAI,CAAS,EACxC,EAAa,EAAW,EAAE,IAAI,CAAQ,CACvC,MAAO,EAAa,EAAW,EAC/B,OAAO,EAAK,EAAW,EAAG,EAAW,EAAG,EAAW,EAAG,CAAU,CACjE,CACD,EClJA,IAAI,GAAY,GAChB,MAAM,GAAsB,CAC3B,KAAM,UACN,SAAU,cACV,YAAa,6CACb,YAAa,GACb,cAAe,GACf,YAAa,GACb,MAAO,CACN,UAAW,CACV,QAAS,GACT,YAAa,0CACb,GAAI,CACH,KAAM,CAAC,QAAS,KAAK,EACrB,IAAK,EACL,IAAK,GACL,KAAM,GACN,MAAO,YACP,MAAO,QACX,CACA,EACE,UAAW,CACV,QAAS,EACT,YAAa,mEACb,GAAI,CACH,KAAM,QACN,IAAK,EACL,IAAK,GACL,KAAM,GACN,MAAO,YACP,MAAO,QACX,CACA,EACE,QAAS,CACR,QAAS,EACT,YAAa,oCACb,GAAI,CACH,KAAM,QACN,IAAK,EACL,IAAK,GACL,KAAM,GACN,MAAO,UACP,MAAO,QACX,CACA,EACE,OAAQ,CACP,QAAS,EACT,YAAa,wBACb,GAAI,CACH,KAAM,QACN,IAAK,GACL,IAAK,IACL,KAAM,GACN,MAAO,SACP,MAAO,QACX,CACA,EACE,MAAO,CACN,QAAS,UACT,YAAa,mEACb,UAAW,GACX,YAAa,GACb,GAAI,CACH,KAAM,SACN,QAAS,CACR,CACC,MAAO,UACP,MAAO,SACb,EACK,CACC,MAAO,cACP,MAAO,aACb,EACK,CACC,MAAO,SACP,MAAO,QACb,EACK,CACC,MAAO,OACP,MAAO,MACb,CACA,EACI,MAAO,QACP,MAAO,QACX,CACA,CACA,EACC,YAAa,CAAC,CAAE,SAAA,EAAU,UAAA,CAAS,IAAO,CACzC,MAAM,EAAU,GAAe,GAAY,GAAW,MAAM,EACtD,EAAU,GAAe,GAAY,GAAW,MAAM,EACtD,EAAU,IAAI,GAAe,GAAW,EAAS,EACvD,EAAQ,KAAO,GACf,MAAM,EAAc,GAAe,CAAO,EAC1C,EAAU,IAAM,CACf,EAAQ,QAAO,CAChB,CAAC,EACD,MAAM,EAAW,EAAQ,EAAE,EACrB,EAAW,EAAQ,EAAE,EACrB,EAAQ,EAAQ,CAAC,EACjB,EAAQ,EAAQ,CAAC,EACjB,EAAgB,EAAQ,CAAC,EACzB,EAAM,EAAQ,IAAI,EAClB,EAAS,EAAQ,IAAI,EACrB,EAAa,EAAQ,CAAC,EACtB,EAAc,EAAQ,GAAG,EACzB,EAAU,EAAQ,GAAG,EACrB,EAAU,EAAQ,CAAC,EACnB,EAAK,GAAK,EAAS,EACnB,EAAO,GAAK,GAAY,CAAC,EACzB,EAAoB,CAAC,EAAS,IAAa,GAAG,IAAM,CACzD,MAAM,EAAM,GACN,EAAI,EAAI,IAAI,CAAE,EACd,EAAI,EAAI,IAAI,CAAE,EACpB,GAAG,EAAE,YAAY,GAAK,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,CAAI,CAAC,EAAE,IAAI,EAAE,YAAY,GAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,CAAI,CAAC,EAAG,IAAM,CACxG,MAAM,EAAU,EAAQ,QAAQ,CAAG,EAC7B,EAAQ,EAAQ,EAChB,EAAQ,EAAQ,EAChB,GAAO,EAAQ,EACf,GAAO,EAAQ,EACf,GAAO,EAAI,IAAI,GAAK,CAAC,CAAC,EACtB,GAAO,EAAI,IAAI,GAAK,CAAC,CAAC,EACtB,GAAO,EAAI,IAAI,CAAE,EACjB,GAAO,EAAI,IAAI,CAAE,EACjB,GAAQ,EAAI,IAAI,CAAE,EAAE,IAAI,GAAK,CAAC,CAAC,EAC/B,GAAQ,EAAI,IAAI,CAAE,EAAE,IAAI,GAAK,CAAC,CAAC,EAC/B,GAAQ,EAAI,IAAI,CAAE,EAAE,IAAI,GAAK,CAAC,CAAC,EAC/B,GAAQ,EAAI,IAAI,CAAE,EAAE,IAAI,GAAK,CAAC,CAAC,EAC/B,GAAK,EAAW,IAAI,EAAQ,QAAQ,EAAI,EAAE,EAAE,IAAI,CAAK,EAAE,IAAI,EAAQ,QAAQ,EAAI,EAAE,EAAE,IAAI,CAAK,CAAC,EAAE,IAAI,EAAQ,QAAQ,EAAI,EAAE,EAAE,IAAI,CAAK,CAAC,EAAE,IAAI,EAAQ,QAAQ,EAAI,EAAE,EAAE,IAAI,CAAK,CAAC,CAAC,EAAE,MAAK,EACrL,EAAK,EAAW,IAAI,EAAQ,QAAQ,EAAI,EAAE,EAAE,IAAI,CAAK,EAAE,IAAI,EAAQ,QAAQ,EAAI,EAAE,EAAE,IAAI,CAAK,CAAC,EAAE,IAAI,EAAQ,QAAQ,EAAI,EAAE,EAAE,IAAI,CAAK,CAAC,EAAE,IAAI,EAAQ,QAAQ,EAAI,EAAE,EAAE,IAAI,CAAK,CAAC,CAAC,EAAE,MAAK,EACrL,GAAS,EAAW,IAAI,EAAM,GAAG,CAAC,EACxC,GAAG,OAAO,GAAG,IAAI,GAAO,IAAI,EAAQ,QAAQ,EAAK,EAAE,EAAE,IAAI,CAAK,EAAE,IAAI,EAAQ,QAAQ,EAAK,EAAE,EAAE,IAAI,CAAK,CAAC,EAAE,IAAI,EAAQ,QAAQ,EAAK,EAAE,EAAE,IAAI,CAAK,CAAC,EAAE,IAAI,EAAQ,QAAQ,EAAK,EAAE,EAAE,IAAI,CAAK,CAAC,CAAC,CAAC,CAAC,EAC5L,EAAG,OAAO,EAAG,IAAI,GAAO,IAAI,EAAQ,QAAQ,EAAK,EAAE,EAAE,IAAI,CAAK,EAAE,IAAI,EAAQ,QAAQ,EAAK,EAAE,EAAE,IAAI,CAAK,CAAC,EAAE,IAAI,EAAQ,QAAQ,EAAK,EAAE,EAAE,IAAI,CAAK,CAAC,EAAE,IAAI,EAAQ,QAAQ,EAAK,EAAE,EAAE,IAAI,CAAK,CAAC,CAAC,CAAC,CAAC,EAC5L,GAAG,OAAO,GAAG,IAAI,EAAW,IAAI,EAAM,EAAE,CAAC,EAAE,IAAI,CAAK,CAAC,CAAC,EACtD,EAAG,OAAO,EAAG,IAAI,EAAW,IAAI,EAAM,EAAE,CAAC,EAAE,IAAI,CAAK,CAAC,CAAC,EACtD,MAAM,GAAU,GAAK,IAAI,CAAW,EAAE,IAAI,GAAG,IAAI,CAAM,CAAC,EAAE,MAAK,EACzD,EAAU,GAAK,IAAI,CAAW,EAAE,IAAI,EAAG,IAAI,CAAM,CAAC,EAAE,MAAK,EAC/D,GAAG,EAAc,YAAY,EAAM,GAAG,CAAC,EAAG,IAAM,CAC/C,MAAM,GAAQ,EAAE,QAAO,EAAG,IAAI,EAAM,EAAE,CAAC,EAAE,IAAI,EAAM,EAAS,CAAC,EACvD,GAAQ,EAAE,QAAO,EAAG,IAAI,EAAM,EAAE,CAAC,EAAE,IAAI,EAAM,EAAS,CAAC,EACvD,GAAM,EAAQ,iBAAiB,EAAM,CAAC,CAAC,EAAE,OAAO,GAAM,IAAI,CAAQ,EAAE,IAAI,CAAO,EAAG,GAAM,IAAI,CAAQ,CAAC,EACrG,GAAM,EAAQ,iBAAiB,EAAM,CAAC,CAAC,EAAE,OAAO,GAAM,IAAI,CAAQ,EAAG,GAAM,IAAI,CAAQ,EAAE,IAAI,CAAO,CAAC,EACrG,GAAS,GAAI,IAAI,EAAG,EAAE,IAAI,GAAI,IAAI,EAAG,CAAC,EACtC,GAAkB,EAAQ,IAAI,EAAM,CAAC,CAAC,EAC5C,GAAG,GAAO,SAAS,GAAgB,IAAI,EAAe,CAAC,EAAG,IAAM,CAC/D,MAAM,GAAW,GAAO,OAAM,EAAG,IAAI,EAAQ,IAAI,CAAO,CAAC,EAAE,IAAG,EAAG,IAAI,CAAa,EAAE,IAAI,CAAG,EAAE,IAAI,EAAM,CAAC,CAAC,EACzG,GAAQ,OAAO,GAAQ,IAAI,EAAM,IAAI,EAAQ,CAAC,CAAC,EAC/C,EAAQ,OAAO,EAAQ,IAAI,EAAM,IAAI,EAAQ,CAAC,CAAC,CAChD,CAAC,CACF,CAAC,EACD,MAAM,EAAW,EAAM,IAAI,GAAQ,IAAI,CAAM,CAAC,EAAE,MAAM,EAAM,GAAG,EAAG,EAAM,EAAE,CAAC,EACrE,EAAW,EAAM,IAAI,EAAQ,IAAI,CAAM,CAAC,EAAE,MAAM,EAAM,GAAG,EAAG,EAAM,EAAE,CAAC,EAC3E,EAAS,QAAQ,CAAG,EAAE,OAAO,EAAK,EAAU,EAAU,GAAS,CAAO,CAAC,CACxE,CAAC,CACF,CAAC,EAAC,EAAG,QAAQ,GAAY,GAAW,CAAC,GAAG,CAAC,EACnC,EAAqB,GAAW,GAAG,IAAM,CAC9C,MAAM,EAAM,GACN,EAAI,EAAI,IAAI,CAAE,EACd,EAAI,EAAI,IAAI,CAAE,EACd,EAAO,EAAO,QAAQ,CAAG,EAC/B,GAAa,EAAa,GAAM,EAAG,CAAC,EAAG,EAAK,EAAK,EAAG,EAAK,EAAG,EAAM,CAAC,EAAG,EAAM,CAAC,CAAC,CAAC,EAAE,YAAW,CAC7F,CAAC,EAAC,EAAG,QAAQ,GAAY,GAAW,CAAC,GAAG,CAAC,EACnC,EAAa,EAAkB,EAAS,CAAO,EAC/C,EAAa,EAAkB,EAAS,CAAO,EAC/C,EAAc,EAAkB,CAAO,EAC7C,IAAI,EAAQ,GACR,EAAQ,GACR,EAAW,KAAK,IAAG,EACnB,EAAiB,KAAK,IAAG,EAC7B,MAAO,CACN,QAAS,CAAE,aAAc,CAAO,EAChC,gBAAkB,GAAW,CAC5B,MAAM,EAAc,KAAK,IAAG,EACtB,EAAK,KAAK,KAAK,EAAc,GAAY,IAAK,IAAI,EAExD,GADA,EAAW,EACP,GAAM,EAAG,OAAO,KACpB,MAAM,EAAS,KAAK,IAAI,EAAG,EAAO,WAAW,KAAK,EAAI,KAAK,IAAI,EAAG,EAAO,WAAW,MAAM,EACpF,EAAY,EAAS,UAAU,QAAQ,MACvC,EAAU,EAAS,QAAQ,QAAQ,MACnC,EAAS,EAAS,OAAO,QAAQ,MAAQ,IACzC,GAAW,EAAO,QAAQ,EAAI,GAAS,EACvC,IAAW,EAAO,QAAQ,EAAI,GAAS,EACvC,GAAQ,KAAK,KAAK,EAAU,EAAU,GAAU,EAAO,EACvD,GAAe,KAAK,IAAI,GAAO,CAAC,EACtC,EAAQ,EAAO,QAAQ,EACvB,EAAQ,EAAO,QAAQ,EACnB,GAAe,MAAK,EAAiB,GACzC,MAAM,GAAU,EAAS,QAAQ,QAAQ,MACnC,GAAW,GAAU,EAAI,KAAK,IAAI,IAAK,IAAM,EAAO,EAAI,IAC9D,GAAI,EAAc,EAAiB,GAAU,OAAO,KACpD,MAAM,GAAQ,EAAK,EACnB,OAAA,EAAS,MAAQ,EAAO,QAAQ,EAChC,EAAS,MAAQ,EAAO,QAAQ,EAChC,EAAM,MAAQ,GAAQ,IAAM,EAAU,GAAQ,EAC9C,EAAM,MAAQ,GAAQ,IAAM,GAAU,GAAQ,EAC9C,EAAc,MAAQ,GACtB,EAAI,MAAQ,EACZ,EAAO,MAAQ,GACf,EAAW,MAAQ,EACnB,EAAY,MAAQ,KAAK,IAAI,EAAG,KAAK,IAAI,EAAG,EAAI,EAAU,EAAK,CAAC,EAChE,EAAQ,MAAQ,EAChB,EAAQ,MAAQ,EACT,CACN,EACA,EACA,CACL,CACG,CACH,CACC,EACA,aAAc,CAAC,CAAE,SAAA,EAAU,eAAA,EAAgB,UAAA,EAAW,UAAA,EAAW,eAAA,CAAc,IAAO,CACrF,GAAI,CAAC,EAAW,OAAO,EAAK,EAAG,EAAG,EAAG,CAAC,EACtC,MAAM,EAAe,GAAgB,cAAgB,GAAiB,CAAS,EAC1E,GAAgB,EAAU,IAAM,CAChC,GAAc,cAAc,SAAS,EAAa,aAAa,QAAO,CAC3E,CAAC,EACD,IAAI,EACJ,GAAI,GAAgB,aACnB,EAAa,OAAO,CAAQ,EAC5B,EAAe,GAAQ,EAAe,YAAY,EAAE,OAAO,CAAQ,EAAE,OAC/D,CACN,MAAM,EAAgB,IAAI,aAAa,GAAY,EAAS,EACtD,EAAgB,IAAI,aAAa,GAAY,EAAS,EACtD,EAAY,IAAI,aAAa,GAAY,EAAS,EAClD,EAAY,IAAI,aAAa,GAAY,EAAS,EAClD,EAAgB,IAAI,aAAa,GAAY,EAAS,EACtD,EAAgB,IAAI,aAAa,GAAY,EAAS,EACtD,EAAoB,IAAI,aAAa,GAAY,EAAS,EAC1D,EAAoB,IAAI,aAAa,GAAY,EAAS,EAC1D,EAAmB,IAAI,aAAa,GAAY,GAAY,CAAC,EAC7D,EAAsB,IAAI,GAAY,EAAkB,GAAW,GAAW,GAAU,EAAS,EACvG,EAAoB,UAAY,GAChC,EAAoB,UAAY,GAChC,EAAoB,YAAc,GAClC,MAAM,EAAoB,GAAQ,CAAmB,EACrD,IAAI,EAAQ,GACR,EAAQ,GACR,EAAW,KAAK,IAAG,EACvB,MAAM,EAAW,EACjB,EAAe,CAAC,CAAE,QAAA,EAAS,WAAA,CAAU,IAAO,CAC3C,MAAM,EAAc,KAAK,IAAG,EACtB,EAAK,KAAK,KAAK,EAAc,GAAY,IAAK,IAAI,EAExD,GADA,EAAW,EACP,GAAM,EAAG,OACb,MAAM,EAAS,KAAK,IAAI,EAAG,EAAW,KAAK,EAAI,KAAK,IAAI,EAAG,EAAW,MAAM,EACtE,EAAY,EAAS,UAAU,QAAQ,MACvC,EAAU,EAAS,QAAQ,QAAQ,MACnC,EAAS,EAAS,OAAO,QAAQ,MAAQ,IACzC,GAAW,EAAQ,EAAI,GAAS,EAChC,IAAW,EAAQ,EAAI,GAAS,EAChC,GAAQ,KAAK,KAAK,EAAU,EAAU,GAAU,EAAO,EACvD,GAAe,KAAK,IAAI,GAAO,CAAC,EACtC,IAAI,GAAO,EAAG,GAAO,EACjB,GAAQ,MACX,GAAO,EAAU,GACjB,GAAO,GAAU,IAElB,MAAM,GAAQ,EAAK,EACnB,QAAS,GAAI,EAAG,GAAI,EAAU,KAAK,CAClC,GAAI,KAAM,GAAK,GAAe,IAAK,CAClC,MAAM,GAAkB,EAAS,EAC3B,GAAO,KAAK,IAAI,EAAG,KAAK,OAAO,EAAQ,EAAI,IAAmB,EAAS,CAAC,EACxE,EAAO,KAAK,IAAI,GAAY,EAAG,KAAK,MAAM,EAAQ,EAAI,IAAmB,EAAS,CAAC,EACnF,GAAO,KAAK,IAAI,EAAG,KAAK,OAAO,EAAQ,EAAI,IAAmB,EAAS,CAAC,EACxE,GAAO,KAAK,IAAI,GAAY,EAAG,KAAK,MAAM,EAAQ,EAAI,IAAmB,EAAS,CAAC,EACzF,QAAS,EAAI,GAAM,GAAK,EAAM,IAAK,QAAS,EAAI,GAAM,GAAK,GAAM,IAAK,CACrE,MAAM,EAAM,EAAI,GAAY,EACtB,IAAS,EAAI,IAAM,GACnB,IAAS,EAAI,IAAM,GACnB,GAAM,GAAU,GAAK,GAAQ,EAAQ,GAAK,EAAS,GAAQ,EAAQ,EACnE,GAAM,GAAU,EAAI,GAAQ,EAAQ,GAAK,GAAQ,EAAQ,GAAK,EAC9D,GAAO,KAAK,KAAK,GAAM,GAAM,GAAM,EAAG,EAC5C,GAAI,GAAO,GAAiB,CAC3B,MAAM,GAAW,KAAK,IAAI,CAAC,GAAO,IAAQ,EAAS,EAAO,EAAI,GAAe,EAAK,EAClF,EAAU,CAAG,GAAK,GAAO,GACzB,EAAU,CAAG,GAAK,GAAO,EAC1B,CACD,CACD,CACA,MAAM,GAAa,KAAK,IAAI,EAAG,KAAK,IAAI,EAAG,EAAI,EAAU,EAAK,CAAC,EACzD,GAAS,EAAY,IAC3B,EAAc,IAAI,CAAS,EAC3B,EAAc,IAAI,CAAS,EAC3B,EAAkB,IAAI,CAAa,EACnC,EAAkB,IAAI,CAAa,EACnC,QAAS,GAAI,EAAG,GAAI,GAAY,EAAG,KAAK,QAAS,GAAI,EAAG,GAAI,GAAY,EAAG,KAAK,CAC/E,MAAM,EAAM,GAAI,GAAY,GAC5B,IAAI,GAAK,EAAG,GAAK,EACjB,MAAM,EAAO,EAAM,EAAG,EAAO,EAAM,EAC7B,EAAO,EAAM,GAAW,GAAO,EAAM,GAC3C,IAAM,GAAa,EAAc,CAAI,EAAI,EAAc,CAAG,GAC1D,IAAM,GAAa,EAAc,CAAI,EAAI,EAAc,CAAG,GAC1D,IAAM,GAAa,EAAc,CAAI,EAAI,EAAc,CAAG,GAC1D,IAAM,GAAa,EAAc,EAAI,EAAI,EAAc,CAAG,GAC1D,IAAM,GAAa,EAAc,CAAI,EAAI,EAAc,CAAG,GAC1D,IAAM,GAAa,EAAc,CAAI,EAAI,EAAc,CAAG,GAC1D,IAAM,GAAa,EAAc,CAAI,EAAI,EAAc,CAAG,GAC1D,IAAM,GAAa,EAAc,EAAI,EAAI,EAAc,CAAG,GAC1D,MAAM,GAAQ,EAAM,GAAY,EAAG,GAAQ,EAAM,GAAY,EACvD,GAAQ,EAAM,GAAY,EAAG,GAAQ,EAAM,GAAY,EAC7D,IAAM,IAAU,EAAc,EAAK,EAAI,EAAc,CAAG,GACxD,IAAM,IAAU,EAAc,EAAK,EAAI,EAAc,CAAG,GACxD,IAAM,IAAU,EAAc,EAAK,EAAI,EAAc,CAAG,GACxD,IAAM,IAAU,EAAc,EAAK,EAAI,EAAc,CAAG,GACxD,IAAM,IAAU,EAAc,EAAK,EAAI,EAAc,CAAG,GACxD,IAAM,IAAU,EAAc,EAAK,EAAI,EAAc,CAAG,GACxD,IAAM,IAAU,EAAc,EAAK,EAAI,EAAc,CAAG,GACxD,IAAM,IAAU,EAAc,EAAK,EAAI,EAAc,CAAG,GACxD,IAAM,EAAY,GAAK,EAAc,CAAG,EACxC,IAAM,EAAY,GAAK,EAAc,CAAG,EACxC,EAAc,CAAG,EAAI,EAAU,CAAG,EAAI,GAAa,GAAK,GACxD,EAAc,CAAG,EAAI,EAAU,CAAG,EAAI,GAAa,GAAK,GACxD,EAAkB,CAAG,EAAI,EAAc,CAAG,EAAI,EAAc,CAAG,EAAI,GACnE,EAAkB,CAAG,EAAI,EAAc,CAAG,EAAI,EAAc,CAAG,EAAI,GACnE,EAAkB,CAAG,EAAI,KAAK,IAAI,IAAK,KAAK,IAAI,GAAI,EAAkB,CAAG,CAAC,CAAC,EAC3E,EAAkB,CAAG,EAAI,KAAK,IAAI,IAAK,KAAK,IAAI,GAAI,EAAkB,CAAG,CAAC,CAAC,CAC5E,CACA,EAAU,IAAI,CAAa,EAC3B,EAAU,IAAI,CAAa,EAC3B,EAAc,IAAI,CAAiB,EACnC,EAAc,IAAI,CAAiB,CACpC,CACA,QAAS,GAAI,EAAG,GAAI,GAAW,KAAK,QAAS,GAAI,EAAG,GAAI,GAAW,KAAK,CACvE,MAAM,GAAM,GAAI,GAAY,GACtB,GAAO,GAAM,EACnB,EAAiB,EAAI,EAAI,EAAc,EAAG,EAC1C,EAAiB,GAAO,CAAC,EAAI,EAAc,EAAG,CAC/C,CACA,EAAoB,YAAc,GAClC,EAAQ,EAAQ,EAChB,EAAQ,EAAQ,CACjB,CAAC,EACD,EAAU,IAAM,CACf,EAAoB,QAAO,CAC5B,CAAC,EACD,EAAe,EAAkB,OAAO,CAAQ,EAAE,EACnD,CACA,MAAM,EAAiB,EAAS,UAAU,QAAQ,IAAI,EAAE,EAClD,EAAqB,EAAa,IAAI,CAAc,EACpD,EAAU,EAAM,GAAG,EACnB,EAAsB,EAAmB,MAAM,EAAK,EAAQ,OAAM,EAAI,EAAQ,OAAM,CAAE,EAAG,EAAK,EAAS,CAAO,CAAC,EAC/G,EAAc,EAAS,IAAI,CAAmB,EACpD,OAAO,GAAmB,GAAkB,EAAa,EAAa,OAAO,CAAW,EAAG,EAAc,EAAS,MAAM,QAAQ,KAAK,CAAC,CACvI,CACD,ECzVM,GAAsB,CAC3B,KAAM,SACN,SAAU,WACV,YAAa,sEACb,MAAO,CACN,OAAQ,CACP,QAAS,UACT,UAAW,GACX,YAAa,sCACb,GAAI,CACH,KAAM,QACN,MAAO,OACP,MAAO,QACX,CACA,EACE,OAAQ,CACP,QAAS,UACT,UAAW,GACX,YAAa,wBACb,GAAI,CACH,KAAM,QACN,MAAO,OACP,MAAO,QACX,CACA,EACE,OAAQ,CACP,QAAS,UACT,UAAW,GACX,YAAa,uBACb,GAAI,CACH,KAAM,QACN,MAAO,QACP,MAAO,QACX,CACA,EACE,MAAO,CACN,QAAS,EACT,YAAa,+CACb,GAAI,CACH,KAAM,CAAC,QAAS,KAAK,EACrB,IAAK,GACL,IAAK,GACL,KAAM,GACN,MAAO,QACP,MAAO,QACX,CACA,EACE,WAAY,CACX,QAAS,GACT,YAAa,yDACb,GAAI,CACH,KAAM,CAAC,QAAS,KAAK,EACrB,IAAK,EACL,IAAK,GACL,KAAM,GACN,MAAO,aACP,MAAO,QACX,CACA,EACE,MAAO,CACN,QAAS,IACT,YAAa,kBACb,GAAI,CACH,KAAM,QACN,IAAK,EACL,IAAK,IACL,KAAM,KACN,MAAO,QACP,MAAO,WACX,CACA,EACE,KAAM,CACL,QAAS,EACT,YAAa,oCACb,GAAI,CACH,KAAM,CAAC,QAAS,KAAK,EACrB,IAAK,EACL,IAAK,IACL,KAAM,EACN,MAAO,OACP,MAAO,QACX,CACA,EACE,WAAY,CACX,QAAS,SACT,UAAW,GACX,YAAa,GACb,YAAa,sCACb,GAAI,CACH,KAAM,SACN,QAAS,GACT,MAAO,cACP,MAAO,QACX,CACA,CACA,EACC,aAAe,GAAW,CACzB,KAAM,CAAE,SAAA,CAAQ,EAAK,EACf,EAAO,EACP,EAAS,EAAa,EAAE,IAAI,EAAa,CAAC,EAC1C,EAAK,EAAK,EAAE,IAAI,CAAM,EACtB,EAAK,EAAK,EACV,EAAW,GAAmB,EAAQ,EAAS,KAAK,EACpD,EAAQ,EAAS,MAAM,QACvB,EAAU,EAAS,KAAK,QACxB,EAAK,GAAe,EAAK,EAAG,IAAI,CAAK,EAAE,IAAI,CAAO,EAAG,EAAG,IAAI,CAAK,EAAE,IAAI,CAAQ,CAAC,CAAC,EACjF,EAAK,GAAe,EAAK,EAAG,IAAI,CAAK,EAAE,IAAI,CAAC,EAAE,IAAI,EAAQ,IAAI,GAAG,CAAC,EAAG,EAAG,IAAI,CAAK,EAAE,IAAI,CAAC,EAAE,IAAI,EAAS,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EACxH,EAAK,GAAe,EAAK,EAAG,IAAI,CAAK,EAAE,IAAI,CAAC,EAAE,IAAI,EAAQ,IAAI,GAAG,CAAC,EAAG,EAAG,IAAI,CAAK,EAAE,IAAI,CAAC,EAAE,IAAI,EAAS,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,EAC1H,EAAa,EAAG,IAAI,CAAE,EAAE,IAAI,CAAE,EAC9B,EAAa,EAAS,WAAW,QACjC,EAAU,EAAI,EAAG,IAAI,CAAK,EAAE,IAAI,EAAM,KAAK,EAAE,CAAC,EAAE,IAAI,EAAW,IAAI,CAAU,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAC/F,EAAK,GAAe,EAAK,EAAG,IAAI,CAAK,EAAE,IAAI,GAAG,EAAE,IAAI,EAAQ,IAAI,CAAC,CAAC,EAAG,EAAG,IAAI,CAAK,EAAE,IAAI,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAC5G,EAAK,GAAW,EAAM,EAAE,EAAG,EAAM,EAAE,EAAG,CAAO,EAC7C,EAAK,GAAW,EAAM,EAAE,EAAG,EAAM,EAAE,EAAG,CAAO,EAC7C,EAAS,GAAU,GAAU,EAAS,OAAO,QAAS,EAAS,OAAO,QAAS,EAAI,EAAS,WAAW,QAAQ,KAAK,EAAG,EAAS,OAAO,QAAS,EAAG,IAAI,CAAE,EAAG,EAAS,WAAW,QAAQ,KAAK,EACnM,OAAO,EAAK,EAAO,IAAK,EAAO,CAAC,CACjC,CACD,ECrHM,GAAsB,CAC3B,KAAM,SACN,SAAU,cACV,YAAa,iEACb,YAAa,GACb,cAAe,GACf,MAAO,CACN,OAAQ,CACP,QAAS,CACR,EAAG,GACH,EAAG,EACP,EACG,UAAW,GACX,YAAa,2CACb,GAAI,CACH,KAAM,WACN,MAAO,SACP,MAAO,UACX,CACA,EACE,MAAO,CACN,QAAS,EACT,YAAa,0CACb,GAAI,CACH,KAAM,CAAC,QAAS,KAAK,EACrB,IAAK,EACL,IAAK,IACL,KAAM,EACN,MAAO,QACP,MAAO,QACX,CACA,EACE,MAAO,CACN,QAAS,SACT,YAAa,mEACb,UAAW,GACX,YAAa,GACb,GAAI,CACH,KAAM,SACN,QAAS,CACR,CACC,MAAO,UACP,MAAO,SACb,EACK,CACC,MAAO,cACP,MAAO,aACb,EACK,CACC,MAAO,SACP,MAAO,QACb,EACK,CACC,MAAO,OACP,MAAO,MACb,CACA,EACI,MAAO,QACP,MAAO,QACX,CACA,CACA,EACC,aAAc,CAAC,CAAE,SAAA,EAAU,UAAA,EAAW,UAAA,CAAS,IAAO,CACrD,GAAI,CAAC,EAAW,OAAO,EAAK,EAAG,EAAG,EAAG,CAAC,EACtC,MAAM,EAAe,GAAiB,CAAS,EAC/C,EAAU,IAAM,CACX,GAAc,cAAc,SAAS,EAAa,aAAa,QAAO,CAC3E,CAAC,EACD,MAAM,EAAS,EAAa,EAAE,IAAI,EAAa,CAAC,EAC1C,EAAoB,EAAK,EAAS,EAAE,IAAI,CAAM,EAAG,EAAS,CAAC,EAC3D,EAAY,EAAK,EAAS,OAAO,QAAQ,EAAE,IAAI,CAAM,EAAG,EAAS,OAAO,QAAQ,EAAE,SAAQ,CAAE,EAC5F,EAAQ,EAAkB,IAAI,CAAS,EACvC,EAAW,EAAS,MAAM,QAAQ,IAAI,KAAK,GAAK,GAAG,EACnD,EAAgB,EAAK,GAAI,CAAQ,EAAG,EAAI,CAAQ,CAAC,EACjD,EAAa,EAAK,EAAc,EAAE,OAAM,EAAI,EAAc,CAAC,EAC3D,EAAiB,EAAM,IAAI,CAAU,EACrC,EAAiB,EAAM,IAAI,EAAW,IAAI,EAAe,IAAI,CAAC,CAAC,CAAC,EAChE,EAAa,EAAU,IAAI,CAAc,EACzC,EAAkB,EAAK,EAAW,EAAE,IAAI,CAAM,EAAG,EAAW,CAAC,EAC7D,EAAe,GAAK,EAAG,CAAc,EAC3C,OAAO,GAAmB,GAAI,EAAa,OAAO,CAAQ,EAAG,GAAkB,EAAiB,EAAa,OAAO,CAAe,EAAG,EAAc,EAAS,MAAM,QAAQ,KAAK,EAAG,CAAY,CAAC,CACjM,CACD,ECpFM,GAAsB,CAC3B,KAAM,qBACN,SAAU,WACV,YAAa,mHACb,MAAO,CACN,OAAQ,CACP,QAAS,UACT,UAAW,GACX,YAAa,2BACb,GAAI,CACH,KAAM,QACN,MAAO,QACP,MAAO,SACX,CACA,EACE,UAAW,CACV,QAAS,CACR,EAAG,GACH,EAAG,EACP,EACG,UAAW,GACX,YAAa,8BACb,GAAI,CACH,KAAM,WACN,MAAO,WACP,MAAO,SACX,CACA,EACE,OAAQ,CACP,QAAS,UACT,UAAW,GACX,YAAa,2BACb,GAAI,CACH,KAAM,QACN,MAAO,QACP,MAAO,SACX,CACA,EACE,UAAW,CACV,QAAS,CACR,EAAG,GACH,EAAG,EACP,EACG,UAAW,GACX,YAAa,8BACb,GAAI,CACH,KAAM,WACN,MAAO,WACP,MAAO,SACX,CACA,EACE,OAAQ,CACP,QAAS,UACT,UAAW,GACX,YAAa,2BACb,GAAI,CACH,KAAM,QACN,MAAO,QACP,MAAO,SACX,CACA,EACE,UAAW,CACV,QAAS,CACR,EAAG,GACH,EAAG,EACP,EACG,UAAW,GACX,YAAa,8BACb,GAAI,CACH,KAAM,WACN,MAAO,WACP,MAAO,SACX,CACA,EACE,OAAQ,CACP,QAAS,UACT,UAAW,GACX,YAAa,2BACb,GAAI,CACH,KAAM,QACN,MAAO,QACP,MAAO,SACX,CACA,EACE,UAAW,CACV,QAAS,CACR,EAAG,GACH,EAAG,EACP,EACG,UAAW,GACX,YAAa,8BACb,GAAI,CACH,KAAM,WACN,MAAO,WACP,MAAO,SACX,CACA,EACE,OAAQ,CACP,QAAS,UACT,UAAW,GACX,YAAa,2BACb,GAAI,CACH,KAAM,QACN,MAAO,QACP,MAAO,SACX,CACA,EACE,UAAW,CACV,QAAS,CACR,EAAG,GACH,EAAG,EACP,EACG,UAAW,GACX,YAAa,8BACb,GAAI,CACH,KAAM,WACN,MAAO,WACP,MAAO,SACX,CACA,EACE,WAAY,CACX,QAAS,EACT,YAAa,sCACb,GAAI,CACH,KAAM,CAAC,QAAS,KAAK,EACrB,IAAK,EACL,IAAK,EACL,KAAM,IACN,MAAO,aACP,MAAO,QACX,CACA,CACA,EACC,aAAc,CAAC,CAAE,SAAA,CAAQ,IAAO,CAC/B,MAAM,EAAa,EAAS,WAAW,QACjC,EAAS,EAAa,EAAE,IAAI,EAAa,CAAC,EAC1C,EAAW,EAAK,EAAS,EAAE,IAAI,CAAM,EAAG,EAAS,CAAC,EAClD,EAAS,CACd,CACC,MAAO,EAAS,OAAO,QACvB,IAAK,EAAK,EAAS,UAAU,QAAQ,EAAE,IAAI,CAAM,EAAG,EAAS,UAAU,QAAQ,EAAE,SAAQ,CAAE,CAC/F,EACG,CACC,MAAO,EAAS,OAAO,QACvB,IAAK,EAAK,EAAS,UAAU,QAAQ,EAAE,IAAI,CAAM,EAAG,EAAS,UAAU,QAAQ,EAAE,SAAQ,CAAE,CAC/F,EACG,CACC,MAAO,EAAS,OAAO,QACvB,IAAK,EAAK,EAAS,UAAU,QAAQ,EAAE,IAAI,CAAM,EAAG,EAAS,UAAU,QAAQ,EAAE,SAAQ,CAAE,CAC/F,EACG,CACC,MAAO,EAAS,OAAO,QACvB,IAAK,EAAK,EAAS,UAAU,QAAQ,EAAE,IAAI,CAAM,EAAG,EAAS,UAAU,QAAQ,EAAE,SAAQ,CAAE,CAC/F,EACG,CACC,MAAO,EAAS,OAAO,QACvB,IAAK,EAAK,EAAS,UAAU,QAAQ,EAAE,IAAI,CAAM,EAAG,EAAS,UAAU,QAAQ,EAAE,SAAQ,CAAE,CAC/F,CACA,EACE,OAAO,GAAG,IAAM,CACf,MAAM,EAAO,EAAK,CAAC,EAAE,MAAK,EACpB,EAAK,EAAM,CAAC,EAAE,MAAK,EACnB,EAAO,EAAM,CAAC,EAAE,MAAK,EAC3B,SAAW,CAAE,MAAA,EAAO,IAAA,CAAG,IAAM,EAAQ,CACpC,MAAM,EAAK,EAAS,EAAE,IAAI,EAAI,CAAC,EACzB,EAAK,EAAS,EAAE,IAAI,EAAI,CAAC,EACzB,EAAO,GAAK,EAAG,IAAI,CAAE,EAAE,IAAI,EAAG,IAAI,CAAE,CAAC,CAAC,EAAE,IAAI,EAAM,IAAI,CAAC,EACvD,EAAiB,EAAM,CAAC,EAAE,IAAI,EAAW,IAAI,EAAM,EAAE,CAAC,CAAC,EAAE,IAAI,EAAM,CAAC,CAAC,EACrE,EAAS,EAAM,CAAC,EAAE,IAAI,GAAI,EAAM,CAAc,CAAC,EACrD,EAAK,OAAO,EAAK,IAAI,EAAM,IAAI,IAAI,CAAM,CAAC,CAAC,EAC3C,EAAG,OAAO,EAAG,IAAI,EAAM,EAAE,IAAI,CAAM,CAAC,CAAC,EACrC,EAAK,OAAO,EAAK,IAAI,CAAM,CAAC,CAC7B,CACA,OAAO,EAAK,EAAK,IAAI,CAAI,EAAG,EAAG,IAAI,CAAI,CAAC,CACzC,CAAC,EAAC,CACH,CACD,EC/KA,IAAI,GAAM,GACN,GAAiB,EAAI,KAAK,KAAK,EAAI,GAAM,EAAG,EAC5C,GAAO,GAAM,GACb,GAAM,GAAO,EACb,GAAa,EAAI,KAAK,KAAK,GAAiB,GAAiB,GAAM,EAAG,EAC1E,SAAS,GAAgB,EAAY,EAAU,EAAU,CACxD,OAAO,GAAG,IAAM,CACf,MAAM,EAAO,EACP,EAAS,EAAa,EAAE,IAAI,EAAa,CAAC,EAC1C,EAAY,EAAK,EAAS,OAAO,QAAQ,EAAG,EAAS,OAAO,QAAQ,EAAE,SAAQ,CAAE,EAChF,EAAQ,EAAS,MAAM,QACvB,EAAQ,EAAK,EAAK,EAAE,IAAI,EAAU,CAAC,EAAE,IAAI,CAAM,EAAE,IAAI,CAAK,EAAE,IAAI,EAAM,EAAE,CAAC,EAAG,EAAK,EAAE,IAAI,EAAU,CAAC,EAAE,IAAI,CAAK,EAAE,IAAI,EAAM,EAAE,CAAC,CAAC,EAC7H,EAAY,EAAS,gBAAgB,QACrC,EAAY,EAAM,IAAI,EAAE,IAAI,EAAU,IAAI,EAAM,GAAG,CAAC,CAAC,EACrD,EAAY,EAAW,CAAK,EAAE,EAC9B,EAAW,EAAW,EAAM,IAAI,EAAK,EAAW,EAAM,CAAC,CAAC,CAAC,CAAC,EAAE,EAC5D,EAAU,EAAW,EAAM,IAAI,EAAK,EAAW,EAAM,CAAC,CAAC,CAAC,CAAC,EAAE,EAC3D,EAAQ,EAAW,EAAM,IAAI,EAAK,EAAM,CAAC,EAAG,CAAS,CAAC,CAAC,EAAE,EACzD,EAAU,EAAW,EAAM,IAAI,EAAK,EAAM,CAAC,EAAG,CAAS,CAAC,CAAC,EAAE,EAC3D,EAAQ,EAAS,IAAI,CAAO,EAAE,IAAI,EAAU,IAAI,EAAM,CAAC,CAAC,CAAC,EACzD,EAAQ,EAAM,IAAI,CAAO,EAAE,IAAI,EAAU,IAAI,EAAM,CAAC,CAAC,CAAC,EACtD,EAAM,GAAI,EAAW,EAAU,IAAI,CAAQ,EAAE,IAAI,CAAO,EAAE,IAAI,CAAK,EAAE,IAAI,CAAO,EAAE,IAAI,EAAM,CAAC,CAAC,EAAG,CAAS,EAC1G,EAAM,EAAM,CAAC,EAAE,IAAI,EAAa,CAAC,EACjC,EAAQ,EAAS,WAAW,QAAQ,IAAI,EAAM,IAAI,CAAC,EACnD,EAAS,GAAI,EAAI,IAAI,CAAK,EAAG,EAAM,IAAI,CAAC,EACxC,EAAS,EAAK,CAAC,EAAE,MAAK,EAC5B,OAAA,GAAG,EAAI,YAAY,EAAM,IAAI,EAAM,GAAG,CAAC,EAAE,IAAI,CAAM,CAAC,EAAG,IAAM,CAC5D,EAAO,OAAO,EAAK,EAAG,EAAG,EAAG,CAAC,CAAC,CAC/B,CAAC,EAAE,KAAK,IAAM,CACb,MAAM,EAAU,GAAK,EAAM,IAAI,CAAK,EAAE,IAAI,EAAM,IAAI,CAAK,CAAC,CAAC,EAAE,IAAI,EAAM,IAAI,CAAC,EACtE,EAAM,EAAM,IAAI,CAAO,EACvB,EAAM,EAAM,IAAI,CAAO,EACvB,EAAQ,EAAS,cAAc,QAC/B,EAAY,GAAM,EAAI,OAAM,EAAG,IAAI,EAAM,IAAI,EAAM,IAAI,CAAC,CAAC,EAAG,EAAM,CAAC,EAAG,EAAM,CAAC,CAAC,EAC9E,EAAY,GAAW,EAAQ,EAAO,OAAM,EAAI,CAAG,EACnD,EAAY,GAAW,EAAM,IAAI,CAAM,EAAG,EAAM,IAAI,CAAM,EAAG,EAAI,OAAM,CAAE,EACzE,EAAW,EAAU,IAAI,CAAS,EAClC,EAAI,EACJ,EAAY,GAAK,EAAE,IAAI,EAAM,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,EAAM,CAAC,CAAC,CAAC,EACrD,EAAY,EAAM,CAAC,EAAE,IAAI,CAAC,EAC1B,EAAK,EAAI,IAAI,CAAS,EACtB,EAAK,EAAI,IAAI,CAAS,EACtB,EAAK,EACL,GAAW,EAAS,WAAW,QAAQ,IAAI,EAAM,KAAK,GAAK,GAAG,CAAC,EAC/D,GAAK,GAAI,EAAQ,EACjB,GAAK,EAAI,EAAQ,EACjB,GAAM,GAAG,IAAI,EAAM,EAAc,CAAC,EAClC,GAAM,GAAG,IAAI,EAAM,EAAc,CAAC,EAClC,GAAM,EAAM,EAAI,EAChB,GAAU,GAAM,EAAG,IAAI,EAAG,EAAE,IAAI,EAAG,IAAI,EAAG,CAAC,EAAE,IAAI,EAAG,IAAI,EAAG,CAAC,EAAG,EAAM,CAAC,EAAG,EAAM,CAAC,CAAC,EACjF,GAAQ,EAAG,IAAI,GAAI,IAAI,EAAM,EAAU,CAAC,CAAC,EAAE,IAAI,EAAG,IAAI,GAAI,IAAI,EAAM,EAAU,CAAC,CAAC,CAAC,EAAE,IAAI,EAAG,IAAI,EAAM,GAAM,EAAU,CAAC,CAAC,EACtH,GAAY,GAAK,EAAM,CAAC,EAAE,IAAI,EAAS,aAAa,QAAQ,IAAI,EAAM,CAAC,CAAC,CAAC,CAAC,EAC1E,GAAW,GAAI,GAAM,GAAO,EAAM,CAAC,EAAG,EAAM,CAAC,CAAC,EAAG,EAAS,EAAE,IAAI,EAAS,kBAAkB,OAAO,EAClG,GAAS,EAAM,EAAE,IAAI,EAAM,EAAE,CAAC,EAC9B,EAAW,EAAI,GAAK,EAAM,EAAE,IAAI,EAAM,EAAE,CAAC,EAAG,EAAM,EAAE,IAAI,EAAM,CAAC,CAAC,EAAE,IAAI,EAAS,IAAI,EAAS,UAAU,OAAO,CAAC,CAAC,EAAE,IAAI,EAAM,EAAE,CAAC,EAAE,IAAI,EAAM,EAAE,CAAC,EAC7I,GAAU,GAAI,EAAM,CAAC,EAAG,EAAU,EAAS,WAAW,OAAO,EAC7D,GAAa,EAAK,EAAS,MAAM,QAAQ,EAAG,EAAS,MAAM,QAAQ,EAAG,EAAS,MAAM,QAAQ,CAAC,EAC9F,EAAY,EAAK,EAAS,eAAe,QAAQ,EAAG,EAAS,eAAe,QAAQ,EAAG,EAAS,eAAe,QAAQ,CAAC,EACxH,EAAW,EAAS,eAAe,QACnC,EAAY,GAAI,GAAY,GAAI,EAAW,GAAY,EAAO,EAAG,CAAQ,EACzE,GAAU,EAAM,GAAG,EACnB,GAAe,EAAU,IAAI,EAAM,GAAG,CAAC,EACvC,GAAY,EAAU,IAAI,GAAQ,IAAI,GAAQ,IAAI,EAAM,GAAG,CAAC,CAAC,EAAE,IAAI,EAAY,CAAC,EAChF,GAAU,EAAK,GAAU,GAAU,EAAQ,EAC3C,GAAU,GAAU,IAAI,EAAO,EAC/B,GAAa,GAAW,EAAM,GAAG,EAAG,EAAM,CAAC,EAAG,CAAS,EAAE,IAAI,EAAS,iBAAiB,OAAO,EAAE,IAAI,EAAO,EAC3G,GAAa,GAAI,GAAS,GAAI,GAAY,EAAK,EAAG,EAAG,CAAC,EAAG,EAAM,GAAG,CAAC,EAAG,EAAU,EAAE,IAAI,GAAI,EAAM,CAAC,EAAG,GAAS,EAAM,EAAE,CAAC,CAAC,EACvH,GAAQ,EAAS,cAAc,QAC/B,GAAa,GAAI,EAAK,EAAM,CAAC,CAAC,EAC9B,GAAmB,EAAM,EAAE,EAAE,IAAI,CAAK,EACtC,EAAY,GAAI,GAAW,OAAM,EAAG,IAAI,EAAgB,CAAC,EAAE,IAAI,EAAM,EAAE,CAAC,EACxE,EAAmB,EAAM,CAAC,EAAE,IAAI,CAAK,EACrC,GAAY,GAAI,GAAW,OAAM,EAAG,IAAI,CAAgB,CAAC,EAAE,IAAI,EAAM,GAAG,CAAC,EACzE,GAAY,EAAU,IAAI,EAAS,EAAE,IAAI,EAAK,EAC9C,GAAgB,GAAW,EAAM,KAAK,EAAG,EAAM,IAAI,EAAG,CAAG,EACzD,GAAa,GAAU,IAAI,EAAa,EACxC,GAAU,EAAK,EAAS,UAAU,QAAQ,EAAG,EAAS,UAAU,QAAQ,EAAG,EAAS,UAAU,QAAQ,CAAC,EACvG,GAAc,EAAS,IAAI,EAAS,aAAa,OAAO,EACxD,GAAK,EAAI,GAAY,IAAI,EAAM,KAAK,CAAC,CAAC,EACtC,GAAK,EAAI,GAAY,IAAI,EAAM,KAAK,CAAC,CAAC,EACtC,GAAK,EAAI,GAAY,IAAI,EAAM,KAAK,CAAC,CAAC,EACtC,GAAW,GAAG,IAAI,GAAG,IAAI,EAAM,EAAE,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,EAAM,EAAE,CAAC,CAAC,EAC1D,GAAY,GAAI,EAAM,EAAE,EAAG,EAAM,EAAE,EAAG,EAAS,cAAc,OAAO,EACpE,GAAe,GAAW,GAAU,IAAI,EAAM,EAAE,CAAC,EAAG,GAAU,IAAI,EAAM,EAAE,CAAC,EAAG,EAAQ,EACtF,GAAe,EAAS,UAAU,QAAQ,IAAI,EAAY,EAC1D,GAAe,GAAW,IAAI,EAAY,EAC1C,GAAe,GAAQ,IAAI,EAAU,EAAE,IAAI,EAAY,EACvD,GAAS,GAAI,GAAa,EAAG,GAAa,EAAG,CAAQ,EACrD,GAAS,GAAI,GAAa,EAAG,GAAa,EAAG,CAAQ,EACrD,GAAS,GAAI,GAAa,EAAG,GAAa,EAAG,CAAQ,EACrD,GAAS,GAAI,EAAU,GAAM,GAAW,IAAI,EAAM,EAAE,CAAC,EAAG,EAAM,CAAC,EAAG,EAAM,CAAC,CAAC,CAAC,EACjF,EAAO,OAAO,EAAK,GAAQ,GAAQ,GAAQ,EAAM,CAAC,CACnD,CAAC,EACM,CACR,CAAC,EAAC,CACH,CACA,IAAI,GAAuB,KAAK,UAAU,CACzC,KAAM,YACN,OAAQ,GACT,CAAC,EACD,MAAM,GAAsB,CAC3B,KAAM,OACN,SAAU,gBACV,YAAa,qEACb,MAAO,CACN,OAAQ,CACP,QAAS,CACR,EAAG,GACH,EAAG,EACP,EACG,UAAW,GACX,YAAa,oCACb,GAAI,CACH,KAAM,WACN,MAAO,SACP,MAAO,UACX,CACA,EACE,MAAO,CACN,QAAS,EACT,YAAa,6CACb,GAAI,CACH,KAAM,QACN,IAAK,GACL,IAAK,EACL,KAAM,IACN,MAAO,QACP,MAAO,UACX,CACA,EACE,MAAO,CACN,QAAS,UACT,UAAW,GACX,YAAa,0BACb,GAAI,CACH,KAAM,QACN,MAAO,aACP,MAAO,QACX,CACA,EACE,eAAgB,CACf,QAAS,UACT,UAAW,GACX,YAAa,wDACb,GAAI,CACH,KAAM,QACN,MAAO,kBACP,MAAO,QACX,CACA,EACE,eAAgB,CACf,QAAS,GACT,YAAa,wDACb,GAAI,CACH,KAAM,QACN,IAAK,EACL,IAAK,EACL,KAAM,IACN,MAAO,QACP,MAAO,QACX,CACA,EACE,UAAW,CACV,QAAS,UACT,UAAW,GACX,YAAa,kCACb,GAAI,CACH,KAAM,QACN,MAAO,aACP,MAAO,QACX,CACA,EACE,cAAe,CACd,QAAS,GACT,UAAY,GAAM,EAAI,IACtB,YAAa,mGACb,GAAI,CACH,KAAM,QACN,IAAK,EACL,IAAK,EACL,KAAM,IACN,MAAO,iBACP,MAAO,MACX,CACA,EACE,UAAW,CACV,QAAS,IACT,YAAa,gCACb,GAAI,CACH,KAAM,QACN,IAAK,GACL,IAAK,EACL,KAAM,IACN,MAAO,YACP,MAAO,MACX,CACA,EACE,iBAAkB,CACjB,QAAS,GACT,YAAa,6EACb,GAAI,CACH,KAAM,QACN,IAAK,EACL,IAAK,EACL,KAAM,IACN,MAAO,WACP,MAAO,MACX,CACA,EACE,cAAe,CACd,QAAS,GACT,YAAa,8BACb,GAAI,CACH,KAAM,QACN,IAAK,EACL,IAAK,EACL,KAAM,IACN,MAAO,iBACP,MAAO,MACX,CACA,EACE,WAAY,CACX,QAAS,IACT,YAAa,2CACb,GAAI,CACH,KAAM,QACN,IAAK,IACL,IAAK,EACL,KAAM,IACN,MAAO,cACP,MAAO,MACX,CACA,EACE,WAAY,CACX,QAAS,IACT,YAAa,4EACb,GAAI,CACH,KAAM,QACN,IAAK,EACL,IAAK,IACL,KAAM,EACN,MAAO,cACP,MAAO,UACX,CACA,EACE,kBAAmB,CAClB,QAAS,GACT,YAAa,oDACb,GAAI,CACH,KAAM,QACN,IAAK,EACL,IAAK,EACL,KAAM,IACN,MAAO,WACP,MAAO,UACX,CACA,EACE,aAAc,CACb,QAAS,GACT,YAAa,qEACb,GAAI,CACH,KAAM,QACN,IAAK,EACL,IAAK,EACL,KAAM,IACN,MAAO,gBACP,MAAO,UACX,CACA,EACE,gBAAiB,CAChB,QAAS,IACT,YAAa,oEACb,GAAI,CACH,KAAM,QACN,IAAK,EACL,IAAK,EACL,KAAM,IACN,MAAO,mBACP,MAAO,MACX,CACA,EACE,aAAc,CACb,QAAS,EACT,YAAa,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AAS,IACT,YAAa,8BACb,GAAI,CACH,KAAM,QACN,IAAK,IACL,IAAK,EACL,KAAM,IACN,MAAO,QACP,MAAO,OACX,CACA,EACE,OAAQ,CACP,QAAS,IACT,YAAa,+BACb,GAAI,CACH,KAAM,QACN,IAAK,IACL,IAAK,EACL,KAAM,IACN,MAAO,SACP,MAAO,OACX,CACA,EACE,SAAU,CACT,QAAS,IACT,YAAa,2EACb,GAAI,CACH,KAAM,QACN,IAAK,EACL,IAAK,GACL,KAAM,IACN,MAAO,WACP,MAAO,OACX,CACA,EACE,SAAU,CACT,QAAS,EACT,YAAa,sBACb,GAAI,CACH,KAAM,QACN,IAAK,EACL,IAAK,IACL,KAAM,EACN,MAAO,WACP,MAAO,OACX,CACA,EACE,SAAU,CACT,QAAS,EACT,YAAa,iCACb,GAAI,CACH,KAAM,QACN,IAAK,EACL,IAAK,GACL,KAAM,KACN,MAAO,WACP,MAAO,QACX,CACA,EACE,gBAAiB,CAChB,QAAS,EACT,YAAa,0CACb,GAAI,CACH,KAAM,QACN,IAAK,EACL,IAAK,GACL,KAAM,KACN,MAAO,mBACP,MAAO,QACX,CACA,EACE,YAAa,CACZ,QAAS,UACT,UAAW,GACX,YAAa,8BACb,GAAI,CACH,KAAM,QACN,MAAO,eACP,MAAO,QACX,CACA,EACE,eAAgB,CACf,QAAS,SACT,UAAW,GACX,YAAa,oDACb,GAAI,CACH,KAAM,SACN,QAAS,CACR,CACC,MAAO,UACP,MAAO,SACb,EACK,CACC,MAAO,SACP,MAAO,QACb,EACK,CACC,MAAO,SACP,MAAO,QACb,CACA,EACI,MAAO,kBACP,MAAO,QACX,CACA,EACE,WAAY,CACX,QAAS,SACT,UAAW,GACX,YAAa,GACb,YAAa,kDACb,GAAI,CACH,KAAM,SACN,QAAS,GACT,MAAO,iBACP,MAAO,QACX,CACA,CACA,EACC,aAAc,CAAC,CAAE,SAAA,CAAQ,IAAO,CAC/B,MAAM,EAAO,EACP,EAAS,EAAa,EAAE,IAAI,EAAa,CAAC,EAC1C,EAAW,EAAK,EAAK,EAAE,IAAI,CAAM,EAAG,EAAK,CAAC,EAC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AO,YACP,MAAO,QACX,CACA,EACE,SAAU,CACT,QAAS,CACR,EAAG,GACH,EAAG,CACP,EACG,UAAW,GACX,YAAa,4BACb,GAAI,CACH,KAAM,WACN,MAAO,YACP,MAAO,UACX,CACA,EACE,UAAW,CACV,QAAS,EACT,YAAa,kEACb,GAAI,CACH,KAAM,QACN,IAAK,EACL,IAAK,IACL,KAAM,EACN,MAAO,YACP,MAAO,UACX,CACA,EACE,MAAO,CACN,QAAS,GACT,YAAa,6BACb,GAAI,CACH,KAAM,QACN,IAAK,GACL,IAAK,GACL,KAAM,GACN,MAAO,QACP,MAAO,UACX,CACA,EACE,OAAQ,CACP,QAAS,GACT,YAAa,iCACb,GAAI,CACH,KAAM,QACN,IAAK,EACL,IAAK,IACL,KAAM,EACN,MAAO,SACP,MAAO,UACX,CACA,EACE,WAAY,CACX,QAAS,IACT,YAAa,4BACb,GAAI,CACH,KAAM,QACN,IAAK,IACL,IAAK,GACL,KAAM,IACN,MAAO,YACP,MAAO,UACX,CACA,EACE,UAAW,CACV,QAAS,EACT,YAAa,yBACb,GAAI,CACH,KAAM,QACN,IAAK,GACL,IAAK,EACL,KAAM,IACN,MAAO,YACP,MAAO,QACX,CACA,EACE,YAAa,CACZ,QAAS,GACT,YAAa,iCACb,GAAI,CACH,KAAM,QACN,IAAK,GACL,IAAK,EACL,KAAM,GACN,MAAO,cACP,MAAO,QACX,CACA,EACE,OAAQ,CACP,QAAS,GACT,YAAa,6BACb,GAAI,CACH,KAAM,QACN,IAAK,EACL,IAAK,GACL,KAAM,EACN,MAAO,SACP,MAAO,QACX,CACA,EACE,QAAS,CACR,QAAS,GACT,YAAa,uCACb,GAAI,CACH,KAAM,QACN,IAAK,GACL,IAAK,EACL,KAAM,GACN,MAAO,UACP,MAAO,QACX,CACA,EACE,WAAY,CACX,QAAS,GACT,YAAa,mDACb,GAAI,CACH,KAAM,QACN,IAAK,EACL,IAAK,EACL,KAAM,GACN,MAAO,cACP,MAAO,QACX,CACA,EACE,eAAgB,CACf,QAAS,GACT,YAAa,+BACb,GAAI,CACH,KAAM,QACN,IAAK,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AW,GACX,YAAa,wCACb,GAAI,CACH,KAAM,QACN,MAAO,YACP,MAAO,QACX,CACA,EACE,OAAQ,CACP,QAAS,CACR,EAAG,GACH,EAAG,EACP,EACG,UAAW,GACX,YAAa,+BACb,GAAI,CACH,KAAM,WACN,MAAO,SACP,MAAO,UACX,CACA,EACE,MAAO,CACN,QAAS,EACT,YAAa,wCACb,GAAI,CACH,KAAM,QACN,IAAK,GACL,IAAK,EACL,KAAM,IACN,MAAO,QACP,MAAO,UACX,CACA,EACE,SAAU,CACT,QAAS,CACR,EAAG,GACH,EAAG,EACP,EACG,UAAW,GACX,YAAa,yCACb,GAAI,CACH,KAAM,WACN,MAAO,YACP,MAAO,UACX,CACA,EACE,UAAW,CACV,QAAS,EACT,YAAa,kEACb,GAAI,CACH,KAAM,QACN,IAAK,EACL,IAAK,IACL,KAAM,EACN,MAAO,YACP,MAAO,UACX,CACA,EACE,MAAO,CACN,QAAS,GACT,YAAa,6BACb,GAAI,CACH,KAAM,QACN,IAAK,GACL,IAAK,GACL,KAAM,GACN,MAAO,QACP,MAAO,UACX,CACA,EACE,OAAQ,CACP,QAAS,GACT,YAAa,iCACb,GAAI,CACH,KAAM,QACN,IAAK,EACL,IAAK,IACL,KAAM,EACN,MAAO,SACP,MAAO,UACX,CACA,EACE,WAAY,CACX,QAAS,IACT,YAAa,4BACb,GAAI,CACH,KAAM,QACN,IAAK,IACL,IAAK,GACL,KAAM,IACN,MAAO,YACP,MAAO,UACX,CACA,EACE,UAAW,CACV,QAAS,EACT,YAAa,yBACb,GAAI,CACH,KAAM,QACN,IAAK,GACL,IAAK,EACL,KAAM,IACN,MAAO,YACP,MAAO,QACX,CACA,EACE,YAAa,CACZ,QAAS,GACT,YAAa,iCACb,GAAI,CACH,KAAM,QACN,IAAK,GACL,IAAK,EACL,KAAM,GACN,MAAO,cACP,MAAO,QACX,CACA,EACE,OAAQ,CACP,QAAS,GACT,YAAa,6BACb,GAAI,CACH,KAAM,QACN,IAAK,EACL,IAAK,GACL,KAAM,EACN,MAAO,SACP,MAAO,QACX,CACA,EACE,QAAS,CACR,Q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,YACP,MAAO,aACX,CACA,EACE,aAAc,CACb,QAAS,GACT,YAAa,kCACb,GAAI,CACH,KAAM,CAAC,QAAS,KAAK,EACrB,IAAK,EACL,IAAK,IACL,KAAM,EACN,MAAO,WACP,MAAO,aACX,CACA,EACE,UAAW,CACV,QAAS,GACT,YAAa,gDACb,GAAI,CACH,KAAM,CAAC,QAAS,KAAK,EACrB,IAAK,EACL,IAAK,IACL,KAAM,EACN,MAAO,SACP,MAAO,aACX,CACA,EACE,UAAW,CACV,QAAS,UACT,UAAW,GACX,YAAa,gCACb,GAAI,CACH,KAAM,QACN,MAAO,aACP,MAAO,YACX,CACA,EACE,cAAe,CACd,QAAS,GACT,YAAa,6BACb,GAAI,CACH,KAAM,CAAC,QAAS,KAAK,EACrB,IAAK,EACL,IAAK,IACL,KAAM,EACN,MAAO,YACP,MAAO,YACX,CACA,EACE,aAAc,CACb,QAAS,GACT,YAAa,+BACb,GAAI,CACH,KAAM,CAAC,QAAS,KAAK,EACrB,IAAK,EACL,IAAK,IACL,KAAM,EACN,MAAO,WACP,MAAO,YACX,CACA,EACE,WAAY,CACX,QAAS,GACT,YAAa,8BACb,GAAI,CACH,KAAM,CAAC,QAAS,KAAK,EACrB,IAAK,EACL,IAAK,IACL,KAAM,EACN,MAAO,UACP,MAAO,UACX,CACA,EACE,SAAU,CACT,QAAS,EACT,YAAa,iBACb,GAAI,CACH,KAAM,CAAC,QAAS,KAAK,EACrB,IAAK,EACL,IAAK,IACL,KAAM,EACN,MAAO,WACP,MAAO,UACX,CACA,EACE,OAAQ,CACP,QAAS,CACR,EAAG,GACH,EAAG,EACP,EACG,UAAW,GACX,YAAa,sCACb,GAAI,CACH,KAAM,WACN,MAAO,eACP,MAAO,OACX,CACA,EACE,YAAa,CACZ,QAAS,IACT,YAAa,sDACb,GAAI,CACH,KAAM,CAAC,QAAS,KAAK,EACrB,IAAK,EACL,IAAK,IACL,KAAM,EACN,MAAO,cACP,MAAO,OACX,CACA,EACE,cAAe,CACd,QAAS,GACT,YAAa,0BACb,GAAI,CACH,KAAM,CAAC,QAAS,KAAK,EACrB,IAAK,EACL,I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K,GACL,KAAM,GACN,MAAO,QACP,MAAO,QACX,CACA,EACE,KAAM,CACL,QAAS,KACT,UAAW,GACX,YAAa,GACb,YAAa,wHACb,GAAI,CACH,KAAM,SACN,QAAS,CACR,CACC,MAAO,aACP,MAAO,IACb,EACK,CACC,MAAO,mBACP,MAAO,IACb,EACK,CACC,MAAO,uBACP,MAAO,WACb,EACK,CACC,MAAO,UACP,MAAO,UACb,EACK,CACC,MAAO,aACP,MAAO,WACb,CACA,EACI,MAAO,OACP,MAAO,QACX,CACA,EACE,SAAU,CACT,QAAS,YACT,UAAW,GACX,YAAa,GACb,YAAa,qFACb,GAAI,CACH,KAAM,SACN,QAAS,CACR,CACC,MAAO,YACP,MAAO,WACb,EACK,CACC,MAAO,YACP,MAAO,WACb,EACK,CACC,MAAO,YACP,MAAO,WACb,CACA,EACI,MAAO,WACP,MAAO,QACX,CACA,EACE,QAAS,CACR,QAAS,EACT,YAAa,GACb,YAAa,iEACb,GAAI,CACH,KAAM,QACN,IAAK,EACL,IAAK,EACL,KAAM,EACN,MAAO,UACP,MAAO,QACX,CACA,EACE,WAAY,CACX,QAAS,EACT,YAAa,kEACb,GAAI,CACH,KAAM,CAAC,QAAS,KAAK,EACrB,IAAK,IACL,IAAK,EACL,KAAM,GACN,MAAO,aACP,MAAO,SACP,UAAW,CAAE,QAAS,CACrB,EACA,EACA,CACL,CAAK,CACL,CACA,EACE,YAAa,CACZ,QAAS,GACT,YAAa,sEACb,GAAI,CACH,KAAM,CAAC,QAAS,KAAK,EACrB,IAAK,EACL,IAAK,EACL,KAAM,IACN,MAAO,cACP,MAAO,SACP,UAAW,CAAE,QAAS,CACrB,EACA,EACA,CACL,CAAK,CACL,CACA,EACE,OAAQ,CACP,QAAS,EACT,YAAa,qGACb,GAAI,CACH,KAAM,CAAC,QAAS,KAAK,EACrB,IAAK,EACL,IAAK,EACL,KAAM,IACN,MAAO,SACP,MAAO,QACX,CACA,EACE,SAAU,CACT,QAAS,EACT,YAAa,yDACb,GAAI,CACH,KAAM,CAAC,QAAS,KAAK,EACrB,IAAK,IACL,IAAK,EAC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","file":"/npm/shaders@2.5.135/dist/js/index.js/+esm","sourceRoot":"","sourcesContent":["/**\n * Bundled by jsDelivr using Rollup v4.62.2 and esbuild v0.28.1.\n * Original file: /npm/shaders@2.5.135/dist/js/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","import { abs, float, fract, mod, select, step, vec2, vec4 } from \"three/tsl\";\nconst applyEdgeToUV = (uv$1, edgeMode) => {\n\tswitch (edgeMode) {\n\t\tcase 1: return uv$1;\n\t\tcase 2: {\n\t\t\tconst mirrorX = mod(abs(uv$1.x), float(2));\n\t\t\tconst mirrorY = mod(abs(uv$1.y), float(2));\n\t\t\treturn vec2(select(step(float(1), mirrorX), float(2).sub(mirrorX), mirrorX), select(step(float(1), mirrorY), float(2).sub(mirrorY), mirrorY));\n\t\t}\n\t\tcase 3: return fract(uv$1);\n\t\tdefault: return uv$1.clamp(vec2(0, 0), vec2(1, 1));\n\t}\n};\nconst applyEdgeHandling = (distortedUV, sampledColor, childTexture, edgeMode) => {\n\tswitch (edgeMode) {\n\t\tcase 1: {\n\t\t\tconst inBoundsX = step(float(0), distortedUV.x).mul(step(distortedUV.x, float(1)));\n\t\t\tconst inBoundsY = step(float(0), distortedUV.y).mul(step(distortedUV.y, float(1)));\n\t\t\tconst inBounds = inBoundsX.mul(inBoundsY);\n\t\t\treturn vec4(sampledColor.rgb, sampledColor.a.mul(inBounds));\n\t\t}\n\t\tcase 2: {\n\t\t\tif (!childTexture) return sampledColor;\n\t\t\tconst mirrorX = mod(abs(distortedUV.x), float(2));\n\t\t\tconst mirrorY = mod(abs(distortedUV.y), float(2));\n\t\t\tconst mirroredUV = vec2(select(step(float(1), mirrorX), float(2).sub(mirrorX), mirrorX), select(step(float(1), mirrorY), float(2).sub(mirrorY), mirrorY));\n\t\t\treturn childTexture.sample(mirroredUV);\n\t\t}\n\t\tcase 3: {\n\t\t\tif (!childTexture) return sampledColor;\n\t\t\tconst wrappedUV = vec2(fract(distortedUV.x), fract(distortedUV.y));\n\t\t\treturn childTexture.sample(wrappedUV);\n\t\t}\n\t\tdefault: return sampledColor;\n\t}\n};\nexport { applyEdgeToUV as n, applyEdgeHandling as t };\n","import { Vector2, Vector4 } from \"three\";\nimport { vec2, vec4 } from \"three/tsl\";\nfunction multiplyMatrices(A, B) {\n\tlet m$1 = A.length;\n\tif (!Array.isArray(A[0])) A = [A];\n\tif (!Array.isArray(B[0])) B = B.map((x) => [x]);\n\tlet p$1 = B[0].length;\n\tlet B_cols = B[0].map((_, i) => B.map((x) => x[i]));\n\tlet product = A.map((row) => B_cols.map((col) => {\n\t\tlet ret = 0;\n\t\tif (!Array.isArray(row)) {\n\t\t\tfor (let c$1 of col) ret += row * c$1;\n\t\t\treturn ret;\n\t\t}\n\t\tfor (let i = 0; i < row.length; i++) ret += row[i] * (col[i] || 0);\n\t\treturn ret;\n\t}));\n\tif (m$1 === 1) product = product[0];\n\tif (p$1 === 1) return product.map((x) => x[0]);\n\treturn product;\n}\nfunction isString(str) {\n\treturn type(str) === \"string\";\n}\nfunction type(o) {\n\treturn (Object.prototype.toString.call(o).match(/^\\[object\\s+(.*?)\\]$/)[1] || \"\").toLowerCase();\n}\nfunction serializeNumber(n$2, { precision, unit }) {\n\tif (isNone(n$2)) return \"none\";\n\treturn toPrecision(n$2, precision) + (unit ?? \"\");\n}\nfunction isNone(n$2) {\n\treturn Number.isNaN(n$2) || n$2 instanceof Number && n$2?.none;\n}\nfunction skipNone(n$2) {\n\treturn isNone(n$2) ? 0 : n$2;\n}\nfunction toPrecision(n$2, precision) {\n\tif (n$2 === 0) return 0;\n\tlet integer = ~~n$2;\n\tlet digits = 0;\n\tif (integer && precision) digits = ~~Math.log10(Math.abs(integer)) + 1;\n\tconst multiplier = 10 ** (precision - digits);\n\treturn Math.floor(n$2 * multiplier + .5) / multiplier;\n}\nvar angleFactor = {\n\tdeg: 1,\n\tgrad: .9,\n\trad: 180 / Math.PI,\n\tturn: 360\n};\nfunction parseFunction(str) {\n\tif (!str) return;\n\tstr = str.trim();\n\tconst isFunctionRegex = /^([a-z]+)\\((.+?)\\)$/i;\n\tconst isNumberRegex = /^-?[\\d.]+$/;\n\tconst unitValueRegex = /%|deg|g?rad|turn$/;\n\tconst singleArgument = /\\/?\\s*(none|[-\\w.]+(?:%|deg|g?rad|turn)?)/g;\n\tlet parts = str.match(isFunctionRegex);\n\tif (parts) {\n\t\tlet args = [];\n\t\tparts[2].replace(singleArgument, ($0, rawArg) => {\n\t\t\tlet match = rawArg.match(unitValueRegex);\n\t\t\tlet arg = rawArg;\n\t\t\tif (match) {\n\t\t\t\tlet unit = match[0];\n\t\t\t\tlet unitlessArg = arg.slice(0, -unit.length);\n\t\t\t\tif (unit === \"%\") {\n\t\t\t\t\targ = /* @__PURE__ */ new Number(unitlessArg / 100);\n\t\t\t\t\targ.type = \"<percentage>\";\n\t\t\t\t} else {\n\t\t\t\t\targ = new Number(unitlessArg * angleFactor[unit]);\n\t\t\t\t\targ.type = \"<angle>\";\n\t\t\t\t\targ.unit = unit;\n\t\t\t\t}\n\t\t\t} else if (isNumberRegex.test(arg)) {\n\t\t\t\targ = new Number(arg);\n\t\t\t\targ.type = \"<number>\";\n\t\t\t} else if (arg === \"none\") {\n\t\t\t\targ = /* @__PURE__ */ new Number(NaN);\n\t\t\t\targ.none = true;\n\t\t\t}\n\t\t\tif ($0.startsWith(\"/\")) {\n\t\t\t\targ = arg instanceof Number ? arg : new Number(arg);\n\t\t\t\targ.alpha = true;\n\t\t\t}\n\t\t\tif (typeof arg === \"object\" && arg instanceof Number) arg.raw = rawArg;\n\t\t\targs.push(arg);\n\t\t});\n\t\treturn {\n\t\t\tname: parts[1].toLowerCase(),\n\t\t\trawName: parts[1],\n\t\t\trawArgs: parts[2],\n\t\t\targs\n\t\t};\n\t}\n}\nfunction last(arr) {\n\treturn arr[arr.length - 1];\n}\nfunction interpolate(start, end, p$1) {\n\tif (isNaN(start)) return end;\n\tif (isNaN(end)) return start;\n\treturn start + (end - start) * p$1;\n}\nfunction interpolateInv(start, end, value) {\n\treturn (value - start) / (end - start);\n}\nfunction mapRange(from, to$1, value) {\n\treturn interpolate(to$1[0], to$1[1], interpolateInv(from[0], from[1], value));\n}\nfunction parseCoordGrammar(coordGrammars) {\n\treturn coordGrammars.map((coordGrammar$1) => {\n\t\treturn coordGrammar$1.split(\"|\").map((type$1) => {\n\t\t\ttype$1 = type$1.trim();\n\t\t\tlet range$1 = type$1.match(/^(<[a-z]+>)\\[(-?[.\\d]+),\\s*(-?[.\\d]+)\\]?$/);\n\t\t\tif (range$1) {\n\t\t\t\tlet ret = new String(range$1[1]);\n\t\t\t\tret.range = [+range$1[2], +range$1[3]];\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t\treturn type$1;\n\t\t});\n\t});\n}\nfunction clamp$1(min$1, val, max$2) {\n\treturn Math.max(Math.min(max$2, val), min$1);\n}\nfunction copySign(to$1, from) {\n\treturn Math.sign(to$1) === Math.sign(from) ? to$1 : -to$1;\n}\nfunction spow(base, exp$1) {\n\treturn copySign(Math.abs(base) ** exp$1, base);\n}\nfunction zdiv(n$2, d$1) {\n\treturn d$1 === 0 ? 0 : n$2 / d$1;\n}\nfunction bisectLeft(arr, value, lo = 0, hi = arr.length) {\n\twhile (lo < hi) {\n\t\tconst mid = lo + hi >> 1;\n\t\tif (arr[mid] < value) lo = mid + 1;\n\t\telse hi = mid;\n\t}\n\treturn lo;\n}\nvar util = /* @__PURE__ */ Object.freeze({\n\t__proto__: null,\n\tbisectLeft,\n\tclamp: clamp$1,\n\tcopySign,\n\tinterpolate,\n\tinterpolateInv,\n\tisNone,\n\tisString,\n\tlast,\n\tmapRange,\n\tmultiplyMatrices,\n\tparseCoordGrammar,\n\tparseFunction,\n\tserializeNumber,\n\tskipNone,\n\tspow,\n\ttoPrecision,\n\ttype,\n\tzdiv\n});\nvar Hooks = class {\n\tadd(name, callback, first) {\n\t\tif (typeof arguments[0] != \"string\") {\n\t\t\tfor (var name in arguments[0]) this.add(name, arguments[0][name], arguments[1]);\n\t\t\treturn;\n\t\t}\n\t\t(Array.isArray(name) ? name : [name]).forEach(function(name$1) {\n\t\t\tthis[name$1] = this[name$1] || [];\n\t\t\tif (callback) this[name$1][first ? \"unshift\" : \"push\"](callback);\n\t\t}, this);\n\t}\n\trun(name, env) {\n\t\tthis[name] = this[name] || [];\n\t\tthis[name].forEach(function(callback) {\n\t\t\tcallback.call(env && env.context ? env.context : env, env);\n\t\t});\n\t}\n};\nvar hooks = new Hooks();\nvar defaults = {\n\tgamut_mapping: \"css\",\n\tprecision: 5,\n\tdeltaE: \"76\",\n\tverbose: globalThis?.process?.env?.NODE_ENV?.toLowerCase() !== \"test\",\n\twarn: function warn(msg) {\n\t\tif (this.verbose) globalThis?.console?.warn?.(msg);\n\t}\n};\nvar WHITES = {\n\tD50: [\n\t\t.3457 / .3585,\n\t\t1,\n\t\t.2958 / .3585\n\t],\n\tD65: [\n\t\t.3127 / .329,\n\t\t1,\n\t\t.3583 / .329\n\t]\n};\nfunction getWhite(name) {\n\tif (Array.isArray(name)) return name;\n\treturn WHITES[name];\n}\nfunction adapt$2(W1, W2, XYZ, options = {}) {\n\tW1 = getWhite(W1);\n\tW2 = getWhite(W2);\n\tif (!W1 || !W2) throw new TypeError(`Missing white point to convert ${!W1 ? \"from\" : \"\"}${!W1 && !W2 ? \"/\" : \"\"}${!W2 ? \"to\" : \"\"}`);\n\tif (W1 === W2) return XYZ;\n\tlet env = {\n\t\tW1,\n\t\tW2,\n\t\tXYZ,\n\t\toptions\n\t};\n\thooks.run(\"chromatic-adaptation-start\", env);\n\tif (!env.M) {\n\t\tif (env.W1 === WHITES.D65 && env.W2 === WHITES.D50) env.M = [\n\t\t\t[\n\t\t\t\t1.0479297925449969,\n\t\t\t\t.022946870601609652,\n\t\t\t\t-.05019226628920524\n\t\t\t],\n\t\t\t[\n\t\t\t\t.02962780877005599,\n\t\t\t\t.9904344267538799,\n\t\t\t\t-.017073799063418826\n\t\t\t],\n\t\t\t[\n\t\t\t\t-.009243040646204504,\n\t\t\t\t.015055191490298152,\n\t\t\t\t.7518742814281371\n\t\t\t]\n\t\t];\n\t\telse if (env.W1 === WHITES.D50 && env.W2 === WHITES.D65) env.M = [\n\t\t\t[\n\t\t\t\t.955473421488075,\n\t\t\t\t-.02309845494876471,\n\t\t\t\t.06325924320057072\n\t\t\t],\n\t\t\t[\n\t\t\t\t-.0283697093338637,\n\t\t\t\t1.0099953980813041,\n\t\t\t\t.021041441191917323\n\t\t\t],\n\t\t\t[\n\t\t\t\t.012314014864481998,\n\t\t\t\t-.020507649298898964,\n\t\t\t\t1.330365926242124\n\t\t\t]\n\t\t];\n\t}\n\thooks.run(\"chromatic-adaptation-end\", env);\n\tif (env.M) return multiplyMatrices(env.M, env.XYZ);\n\telse throw new TypeError(\"Only Bradford CAT with white points D50 and D65 supported for now.\");\n}\nvar noneTypes = new Set([\n\t\"<number>\",\n\t\"<percentage>\",\n\t\"<angle>\"\n]);\nfunction coerceCoords(space, format, name, coords) {\n\treturn Object.entries(space.coords).map(([id, coordMeta], i) => {\n\t\tlet coordGrammar$1 = format.coordGrammar[i];\n\t\tlet arg = coords[i];\n\t\tlet providedType = arg?.type;\n\t\tlet type$1;\n\t\tif (arg.none) type$1 = coordGrammar$1.find((c$1) => noneTypes.has(c$1));\n\t\telse type$1 = coordGrammar$1.find((c$1) => c$1 == providedType);\n\t\tif (!type$1) {\n\t\t\tlet coordName = coordMeta.name || id;\n\t\t\tthrow new TypeError(`${providedType ?? arg.raw} not allowed for ${coordName} in ${name}()`);\n\t\t}\n\t\tlet fromRange = type$1.range;\n\t\tif (providedType === \"<percentage>\") fromRange ||= [0, 1];\n\t\tlet toRange = coordMeta.range || coordMeta.refRange;\n\t\tif (fromRange && toRange) coords[i] = mapRange(fromRange, toRange, coords[i]);\n\t\treturn type$1;\n\t});\n}\nfunction parse(str, { meta } = {}) {\n\tlet env = { \"str\": String(str)?.trim() };\n\thooks.run(\"parse-start\", env);\n\tif (env.color) return env.color;\n\tenv.parsed = parseFunction(env.str);\n\tif (env.parsed) {\n\t\tlet name = env.parsed.name;\n\t\tif (name === \"color\") {\n\t\t\tlet id = env.parsed.args.shift();\n\t\t\tlet alternateId = id.startsWith(\"--\") ? id.substring(2) : `--${id}`;\n\t\t\tlet ids = [id, alternateId];\n\t\t\tlet alpha = env.parsed.rawArgs.indexOf(\"/\") > 0 ? env.parsed.args.pop() : 1;\n\t\t\tfor (let space of ColorSpace.all) {\n\t\t\t\tlet colorSpec = space.getFormat(\"color\");\n\t\t\t\tif (colorSpec) {\n\t\t\t\t\tif (ids.includes(colorSpec.id) || colorSpec.ids?.filter((specId) => ids.includes(specId)).length) {\n\t\t\t\t\t\tconst coords = Object.keys(space.coords).map((_, i) => env.parsed.args[i] || 0);\n\t\t\t\t\t\tlet types;\n\t\t\t\t\t\tif (colorSpec.coordGrammar) types = coerceCoords(space, colorSpec, \"color\", coords);\n\t\t\t\t\t\tif (meta) Object.assign(meta, {\n\t\t\t\t\t\t\tformatId: \"color\",\n\t\t\t\t\t\t\ttypes\n\t\t\t\t\t\t});\n\t\t\t\t\t\tif (colorSpec.id.startsWith(\"--\") && !id.startsWith(\"--\")) defaults.warn(`${space.name} is a non-standard space and not currently supported in the CSS spec. Use prefixed color(${colorSpec.id}) instead of color(${id}).`);\n\t\t\t\t\t\tif (id.startsWith(\"--\") && !colorSpec.id.startsWith(\"--\")) defaults.warn(`${space.name} is a standard space and supported in the CSS spec. Use color(${colorSpec.id}) instead of prefixed color(${id}).`);\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tspaceId: space.id,\n\t\t\t\t\t\t\tcoords,\n\t\t\t\t\t\t\talpha\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tlet didYouMean = \"\";\n\t\t\tlet registryId = id in ColorSpace.registry ? id : alternateId;\n\t\t\tif (registryId in ColorSpace.registry) {\n\t\t\t\tlet cssId = ColorSpace.registry[registryId].formats?.color?.id;\n\t\t\t\tif (cssId) didYouMean = `Did you mean color(${cssId})?`;\n\t\t\t}\n\t\t\tthrow new TypeError(`Cannot parse color(${id}). ` + (didYouMean || \"Missing a plugin?\"));\n\t\t} else for (let space of ColorSpace.all) {\n\t\t\tlet format = space.getFormat(name);\n\t\t\tif (format && format.type === \"function\") {\n\t\t\t\tlet alpha = 1;\n\t\t\t\tif (format.lastAlpha || last(env.parsed.args).alpha) alpha = env.parsed.args.pop();\n\t\t\t\tlet coords = env.parsed.args;\n\t\t\t\tlet types;\n\t\t\t\tif (format.coordGrammar) types = coerceCoords(space, format, name, coords);\n\t\t\t\tif (meta) Object.assign(meta, {\n\t\t\t\t\tformatId: format.name,\n\t\t\t\t\ttypes\n\t\t\t\t});\n\t\t\t\treturn {\n\t\t\t\t\tspaceId: space.id,\n\t\t\t\t\tcoords,\n\t\t\t\t\talpha\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t} else for (let space of ColorSpace.all) for (let formatId in space.formats) {\n\t\tlet format = space.formats[formatId];\n\t\tif (format.type !== \"custom\") continue;\n\t\tif (format.test && !format.test(env.str)) continue;\n\t\tlet color = format.parse(env.str);\n\t\tif (color) {\n\t\t\tcolor.alpha ??= 1;\n\t\t\tif (meta) meta.formatId = formatId;\n\t\t\treturn color;\n\t\t}\n\t}\n\tthrow new TypeError(`Could not parse ${str} as a color. Missing a plugin?`);\n}\nfunction getColor(color) {\n\tif (Array.isArray(color)) return color.map(getColor);\n\tif (!color) throw new TypeError(\"Empty color reference\");\n\tif (isString(color)) color = parse(color);\n\tlet space = color.space || color.spaceId;\n\tif (!(space instanceof ColorSpace)) color.space = ColorSpace.get(space);\n\tif (color.alpha === void 0) color.alpha = 1;\n\treturn color;\n}\nvar ε$7 = 75e-6;\nvar ColorSpace = class ColorSpace {\n\tconstructor(options) {\n\t\tthis.id = options.id;\n\t\tthis.name = options.name;\n\t\tthis.base = options.base ? ColorSpace.get(options.base) : null;\n\t\tthis.aliases = options.aliases;\n\t\tif (this.base) {\n\t\t\tthis.fromBase = options.fromBase;\n\t\t\tthis.toBase = options.toBase;\n\t\t}\n\t\tlet coords = options.coords ?? this.base.coords;\n\t\tfor (let name in coords) if (!(\"name\" in coords[name])) coords[name].name = name;\n\t\tthis.coords = coords;\n\t\tthis.white = getWhite(options.white ?? this.base.white ?? \"D65\");\n\t\tthis.formats = options.formats ?? {};\n\t\tfor (let name in this.formats) {\n\t\t\tlet format = this.formats[name];\n\t\t\tformat.type ||= \"function\";\n\t\t\tformat.name ||= name;\n\t\t}\n\t\tif (!this.formats.color?.id) this.formats.color = {\n\t\t\t...this.formats.color ?? {},\n\t\t\tid: options.cssId || this.id\n\t\t};\n\t\tif (options.gamutSpace) this.gamutSpace = options.gamutSpace === \"self\" ? this : ColorSpace.get(options.gamutSpace);\n\t\telse if (this.isPolar) this.gamutSpace = this.base;\n\t\telse this.gamutSpace = this;\n\t\tif (this.gamutSpace.isUnbounded) this.inGamut = (coords$1, options$1) => {\n\t\t\treturn true;\n\t\t};\n\t\tthis.referred = options.referred;\n\t\tObject.defineProperty(this, \"path\", {\n\t\t\tvalue: getPath(this).reverse(),\n\t\t\twritable: false,\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true\n\t\t});\n\t\thooks.run(\"colorspace-init-end\", this);\n\t}\n\tinGamut(coords, { epsilon = ε$7 } = {}) {\n\t\tif (!this.equals(this.gamutSpace)) {\n\t\t\tcoords = this.to(this.gamutSpace, coords);\n\t\t\treturn this.gamutSpace.inGamut(coords, { epsilon });\n\t\t}\n\t\tlet coordMeta = Object.values(this.coords);\n\t\treturn coords.every((c$1, i) => {\n\t\t\tlet meta = coordMeta[i];\n\t\t\tif (meta.type !== \"angle\" && meta.range) {\n\t\t\t\tif (Number.isNaN(c$1)) return true;\n\t\t\t\tlet [min$1, max$2] = meta.range;\n\t\t\t\treturn (min$1 === void 0 || c$1 >= min$1 - epsilon) && (max$2 === void 0 || c$1 <= max$2 + epsilon);\n\t\t\t}\n\t\t\treturn true;\n\t\t});\n\t}\n\tget isUnbounded() {\n\t\treturn Object.values(this.coords).every((coord) => !(\"range\" in coord));\n\t}\n\tget cssId() {\n\t\treturn this.formats?.color?.id || this.id;\n\t}\n\tget isPolar() {\n\t\tfor (let id in this.coords) if (this.coords[id].type === \"angle\") return true;\n\t\treturn false;\n\t}\n\tgetFormat(format) {\n\t\tif (typeof format === \"object\") {\n\t\t\tformat = processFormat(format, this);\n\t\t\treturn format;\n\t\t}\n\t\tlet ret;\n\t\tif (format === \"default\") ret = Object.values(this.formats)[0];\n\t\telse ret = this.formats[format];\n\t\tif (ret) {\n\t\t\tret = processFormat(ret, this);\n\t\t\treturn ret;\n\t\t}\n\t\treturn null;\n\t}\n\tequals(space) {\n\t\tif (!space) return false;\n\t\treturn this === space || this.id === space || this.id === space.id;\n\t}\n\tto(space, coords) {\n\t\tif (arguments.length === 1) {\n\t\t\tconst color = getColor(space);\n\t\t\t[space, coords] = [color.space, color.coords];\n\t\t}\n\t\tspace = ColorSpace.get(space);\n\t\tif (this.equals(space)) return coords;\n\t\tcoords = coords.map((c$1) => Number.isNaN(c$1) ? 0 : c$1);\n\t\tlet myPath = this.path;\n\t\tlet otherPath = space.path;\n\t\tlet connectionSpace, connectionSpaceIndex;\n\t\tfor (let i = 0; i < myPath.length; i++) if (myPath[i].equals(otherPath[i])) {\n\t\t\tconnectionSpace = myPath[i];\n\t\t\tconnectionSpaceIndex = i;\n\t\t} else break;\n\t\tif (!connectionSpace) throw new Error(`Cannot convert between color spaces ${this} and ${space}: no connection space was found`);\n\t\tfor (let i = myPath.length - 1; i > connectionSpaceIndex; i--) coords = myPath[i].toBase(coords);\n\t\tfor (let i = connectionSpaceIndex + 1; i < otherPath.length; i++) coords = otherPath[i].fromBase(coords);\n\t\treturn coords;\n\t}\n\tfrom(space, coords) {\n\t\tif (arguments.length === 1) {\n\t\t\tconst color = getColor(space);\n\t\t\t[space, coords] = [color.space, color.coords];\n\t\t}\n\t\tspace = ColorSpace.get(space);\n\t\treturn space.to(this, coords);\n\t}\n\ttoString() {\n\t\treturn `${this.name} (${this.id})`;\n\t}\n\tgetMinCoords() {\n\t\tlet ret = [];\n\t\tfor (let id in this.coords) {\n\t\t\tlet meta = this.coords[id];\n\t\t\tlet range$1 = meta.range || meta.refRange;\n\t\t\tret.push(range$1?.min ?? 0);\n\t\t}\n\t\treturn ret;\n\t}\n\tstatic registry = {};\n\tstatic get all() {\n\t\treturn [...new Set(Object.values(ColorSpace.registry))];\n\t}\n\tstatic register(id, space) {\n\t\tif (arguments.length === 1) {\n\t\t\tspace = arguments[0];\n\t\t\tid = space.id;\n\t\t}\n\t\tspace = this.get(space);\n\t\tif (this.registry[id] && this.registry[id] !== space) throw new Error(`Duplicate color space registration: '${id}'`);\n\t\tthis.registry[id] = space;\n\t\tif (arguments.length === 1 && space.aliases) for (let alias of space.aliases) this.register(alias, space);\n\t\treturn space;\n\t}\n\tstatic get(space, ...alternatives) {\n\t\tif (!space || space instanceof ColorSpace) return space;\n\t\tif (type(space) === \"string\") {\n\t\t\tlet ret = ColorSpace.registry[space.toLowerCase()];\n\t\t\tif (!ret) throw new TypeError(`No color space found with id = \"${space}\"`);\n\t\t\treturn ret;\n\t\t}\n\t\tif (alternatives.length) return ColorSpace.get(...alternatives);\n\t\tthrow new TypeError(`${space} is not a valid color space`);\n\t}\n\tstatic resolveCoord(ref, workingSpace) {\n\t\tlet coordType = type(ref);\n\t\tlet space, coord;\n\t\tif (coordType === \"string\") if (ref.includes(\".\")) [space, coord] = ref.split(\".\");\n\t\telse [space, coord] = [, ref];\n\t\telse if (Array.isArray(ref)) [space, coord] = ref;\n\t\telse {\n\t\t\tspace = ref.space;\n\t\t\tcoord = ref.coordId;\n\t\t}\n\t\tspace = ColorSpace.get(space);\n\t\tif (!space) space = workingSpace;\n\t\tif (!space) throw new TypeError(`Cannot resolve coordinate reference ${ref}: No color space specified and relative references are not allowed here`);\n\t\tcoordType = type(coord);\n\t\tif (coordType === \"number\" || coordType === \"string\" && coord >= 0) {\n\t\t\tlet meta = Object.entries(space.coords)[coord];\n\t\t\tif (meta) return {\n\t\t\t\tspace,\n\t\t\t\tid: meta[0],\n\t\t\t\tindex: coord,\n\t\t\t\t...meta[1]\n\t\t\t};\n\t\t}\n\t\tspace = ColorSpace.get(space);\n\t\tlet normalizedCoord = coord.toLowerCase();\n\t\tlet i = 0;\n\t\tfor (let id in space.coords) {\n\t\t\tlet meta = space.coords[id];\n\t\t\tif (id.toLowerCase() === normalizedCoord || meta.name?.toLowerCase() === normalizedCoord) return {\n\t\t\t\tspace,\n\t\t\t\tid,\n\t\t\t\tindex: i,\n\t\t\t\t...meta\n\t\t\t};\n\t\t\ti++;\n\t\t}\n\t\tthrow new TypeError(`No \"${coord}\" coordinate found in ${space.name}. Its coordinates are: ${Object.keys(space.coords).join(\", \")}`);\n\t}\n\tstatic DEFAULT_FORMAT = {\n\t\ttype: \"functions\",\n\t\tname: \"color\"\n\t};\n};\nfunction getPath(space) {\n\tlet ret = [space];\n\tfor (let s = space; s = s.base;) ret.push(s);\n\treturn ret;\n}\nfunction processFormat(format, { coords } = {}) {\n\tif (format.coords && !format.coordGrammar) {\n\t\tformat.type ||= \"function\";\n\t\tformat.name ||= \"color\";\n\t\tformat.coordGrammar = parseCoordGrammar(format.coords);\n\t\tlet coordFormats = Object.entries(coords).map(([id, coordMeta], i) => {\n\t\t\tlet outputType = format.coordGrammar[i][0];\n\t\t\tlet fromRange = coordMeta.range || coordMeta.refRange;\n\t\t\tlet toRange = outputType.range, suffix = \"\";\n\t\t\tif (outputType == \"<percentage>\") {\n\t\t\t\ttoRange = [0, 100];\n\t\t\t\tsuffix = \"%\";\n\t\t\t} else if (outputType == \"<angle>\") suffix = \"deg\";\n\t\t\treturn {\n\t\t\t\tfromRange,\n\t\t\t\ttoRange,\n\t\t\t\tsuffix\n\t\t\t};\n\t\t});\n\t\tformat.serializeCoords = (coords$1, precision) => {\n\t\t\treturn coords$1.map((c$1, i) => {\n\t\t\t\tlet { fromRange, toRange, suffix } = coordFormats[i];\n\t\t\t\tif (fromRange && toRange) c$1 = mapRange(fromRange, toRange, c$1);\n\t\t\t\tc$1 = serializeNumber(c$1, {\n\t\t\t\t\tprecision,\n\t\t\t\t\tunit: suffix\n\t\t\t\t});\n\t\t\t\treturn c$1;\n\t\t\t});\n\t\t};\n\t}\n\treturn format;\n}\nvar xyz_d65 = new ColorSpace({\n\tid: \"xyz-d65\",\n\tname: \"XYZ D65\",\n\tcoords: {\n\t\tx: { name: \"X\" },\n\t\ty: { name: \"Y\" },\n\t\tz: { name: \"Z\" }\n\t},\n\twhite: \"D65\",\n\tformats: { color: { ids: [\"xyz-d65\", \"xyz\"] } },\n\taliases: [\"xyz\"]\n});\nvar RGBColorSpace = class extends ColorSpace {\n\tconstructor(options) {\n\t\tif (!options.coords) options.coords = {\n\t\t\tr: {\n\t\t\t\trange: [0, 1],\n\t\t\t\tname: \"Red\"\n\t\t\t},\n\t\t\tg: {\n\t\t\t\trange: [0, 1],\n\t\t\t\tname: \"Green\"\n\t\t\t},\n\t\t\tb: {\n\t\t\t\trange: [0, 1],\n\t\t\t\tname: \"Blue\"\n\t\t\t}\n\t\t};\n\t\tif (!options.base) options.base = xyz_d65;\n\t\tif (options.toXYZ_M && options.fromXYZ_M) {\n\t\t\toptions.toBase ??= (rgb) => {\n\t\t\t\tlet xyz = multiplyMatrices(options.toXYZ_M, rgb);\n\t\t\t\tif (this.white !== this.base.white) xyz = adapt$2(this.white, this.base.white, xyz);\n\t\t\t\treturn xyz;\n\t\t\t};\n\t\t\toptions.fromBase ??= (xyz) => {\n\t\t\t\txyz = adapt$2(this.base.white, this.white, xyz);\n\t\t\t\treturn multiplyMatrices(options.fromXYZ_M, xyz);\n\t\t\t};\n\t\t}\n\t\toptions.referred ??= \"display\";\n\t\tsuper(options);\n\t}\n};\nfunction getAll(color, space) {\n\tcolor = getColor(color);\n\tif (!space || color.space.equals(space)) return color.coords.slice();\n\tspace = ColorSpace.get(space);\n\treturn space.from(color);\n}\nfunction get(color, prop) {\n\tcolor = getColor(color);\n\tlet { space, index } = ColorSpace.resolveCoord(prop, color.space);\n\treturn getAll(color, space)[index];\n}\nfunction setAll(color, space, coords) {\n\tcolor = getColor(color);\n\tspace = ColorSpace.get(space);\n\tcolor.coords = space.to(color.space, coords);\n\treturn color;\n}\nsetAll.returns = \"color\";\nfunction set(color, prop, value) {\n\tcolor = getColor(color);\n\tif (arguments.length === 2 && type(arguments[1]) === \"object\") {\n\t\tlet object = arguments[1];\n\t\tfor (let p$1 in object) set(color, p$1, object[p$1]);\n\t} else {\n\t\tif (typeof value === \"function\") value = value(get(color, prop));\n\t\tlet { space, index } = ColorSpace.resolveCoord(prop, color.space);\n\t\tlet coords = getAll(color, space);\n\t\tcoords[index] = value;\n\t\tsetAll(color, space, coords);\n\t}\n\treturn color;\n}\nset.returns = \"color\";\nvar XYZ_D50 = new ColorSpace({\n\tid: \"xyz-d50\",\n\tname: \"XYZ D50\",\n\twhite: \"D50\",\n\tbase: xyz_d65,\n\tfromBase: (coords) => adapt$2(xyz_d65.white, \"D50\", coords),\n\ttoBase: (coords) => adapt$2(\"D50\", xyz_d65.white, coords)\n});\nvar ε$6 = 216 / 24389;\nvar ε3$1 = 24 / 116;\nvar κ$4 = 24389 / 27;\nvar white$4 = WHITES.D50;\nvar lab = new ColorSpace({\n\tid: \"lab\",\n\tname: \"Lab\",\n\tcoords: {\n\t\tl: {\n\t\t\trefRange: [0, 100],\n\t\t\tname: \"Lightness\"\n\t\t},\n\t\ta: { refRange: [-125, 125] },\n\t\tb: { refRange: [-125, 125] }\n\t},\n\twhite: white$4,\n\tbase: XYZ_D50,\n\tfromBase(XYZ) {\n\t\tlet f = XYZ.map((value, i) => value / white$4[i]).map((value) => value > ε$6 ? Math.cbrt(value) : (κ$4 * value + 16) / 116);\n\t\treturn [\n\t\t\t116 * f[1] - 16,\n\t\t\t500 * (f[0] - f[1]),\n\t\t\t200 * (f[1] - f[2])\n\t\t];\n\t},\n\ttoBase(Lab) {\n\t\tlet f = [];\n\t\tf[1] = (Lab[0] + 16) / 116;\n\t\tf[0] = Lab[1] / 500 + f[1];\n\t\tf[2] = f[1] - Lab[2] / 200;\n\t\treturn [\n\t\t\tf[0] > ε3$1 ? Math.pow(f[0], 3) : (116 * f[0] - 16) / κ$4,\n\t\t\tLab[0] > 8 ? Math.pow((Lab[0] + 16) / 116, 3) : Lab[0] / κ$4,\n\t\t\tf[2] > ε3$1 ? Math.pow(f[2], 3) : (116 * f[2] - 16) / κ$4\n\t\t].map((value, i) => value * white$4[i]);\n\t},\n\tformats: { \"lab\": { coords: [\n\t\t\"<number> | <percentage>\",\n\t\t\"<number> | <percentage>[-1,1]\",\n\t\t\"<number> | <percentage>[-1,1]\"\n\t] } }\n});\nfunction constrain(angle) {\n\treturn (angle % 360 + 360) % 360;\n}\nfunction adjust(arc, angles) {\n\tif (arc === \"raw\") return angles;\n\tlet [a1, a2] = angles.map(constrain);\n\tlet angleDiff = a2 - a1;\n\tif (arc === \"increasing\") {\n\t\tif (angleDiff < 0) a2 += 360;\n\t} else if (arc === \"decreasing\") {\n\t\tif (angleDiff > 0) a1 += 360;\n\t} else if (arc === \"longer\") {\n\t\tif (-180 < angleDiff && angleDiff < 180) if (angleDiff > 0) a1 += 360;\n\t\telse a2 += 360;\n\t} else if (arc === \"shorter\") {\n\t\tif (angleDiff > 180) a1 += 360;\n\t\telse if (angleDiff < -180) a2 += 360;\n\t}\n\treturn [a1, a2];\n}\nvar lch = new ColorSpace({\n\tid: \"lch\",\n\tname: \"LCH\",\n\tcoords: {\n\t\tl: {\n\t\t\trefRange: [0, 100],\n\t\t\tname: \"Lightness\"\n\t\t},\n\t\tc: {\n\t\t\trefRange: [0, 150],\n\t\t\tname: \"Chroma\"\n\t\t},\n\t\th: {\n\t\t\trefRange: [0, 360],\n\t\t\ttype: \"angle\",\n\t\t\tname: \"Hue\"\n\t\t}\n\t},\n\tbase: lab,\n\tfromBase(Lab) {\n\t\tlet [L, a$1, b$2] = Lab;\n\t\tlet hue;\n\t\tconst ε$8 = .02;\n\t\tif (Math.abs(a$1) < ε$8 && Math.abs(b$2) < ε$8) hue = NaN;\n\t\telse hue = Math.atan2(b$2, a$1) * 180 / Math.PI;\n\t\treturn [\n\t\t\tL,\n\t\t\tMath.sqrt(a$1 ** 2 + b$2 ** 2),\n\t\t\tconstrain(hue)\n\t\t];\n\t},\n\ttoBase(LCH) {\n\t\tlet [Lightness, Chroma, Hue] = LCH;\n\t\tif (Chroma < 0) Chroma = 0;\n\t\tif (isNaN(Hue)) Hue = 0;\n\t\treturn [\n\t\t\tLightness,\n\t\t\tChroma * Math.cos(Hue * Math.PI / 180),\n\t\t\tChroma * Math.sin(Hue * Math.PI / 180)\n\t\t];\n\t},\n\tformats: { \"lch\": { coords: [\n\t\t\"<number> | <percentage>\",\n\t\t\"<number> | <percentage>\",\n\t\t\"<number> | <angle>\"\n\t] } }\n});\nvar Gfactor = 25 ** 7;\nvar π$1 = Math.PI;\nvar r2d = 180 / π$1;\nvar d2r$1 = π$1 / 180;\nfunction pow7(x) {\n\tconst x2 = x * x;\n\treturn x2 * x2 * x2 * x;\n}\nfunction deltaE2000(color, sample, { kL = 1, kC = 1, kH = 1 } = {}) {\n\t[color, sample] = getColor([color, sample]);\n\tlet [L1, a1, b1] = lab.from(color);\n\tlet C1 = lch.from(lab, [\n\t\tL1,\n\t\ta1,\n\t\tb1\n\t])[1];\n\tlet [L2, a2, b2] = lab.from(sample);\n\tlet C2 = lch.from(lab, [\n\t\tL2,\n\t\ta2,\n\t\tb2\n\t])[1];\n\tif (C1 < 0) C1 = 0;\n\tif (C2 < 0) C2 = 0;\n\tlet C7 = pow7((C1 + C2) / 2);\n\tlet G = .5 * (1 - Math.sqrt(C7 / (C7 + Gfactor)));\n\tlet adash1 = (1 + G) * a1;\n\tlet adash2 = (1 + G) * a2;\n\tlet Cdash1 = Math.sqrt(adash1 ** 2 + b1 ** 2);\n\tlet Cdash2 = Math.sqrt(adash2 ** 2 + b2 ** 2);\n\tlet h1 = adash1 === 0 && b1 === 0 ? 0 : Math.atan2(b1, adash1);\n\tlet h2 = adash2 === 0 && b2 === 0 ? 0 : Math.atan2(b2, adash2);\n\tif (h1 < 0) h1 += 2 * π$1;\n\tif (h2 < 0) h2 += 2 * π$1;\n\th1 *= r2d;\n\th2 *= r2d;\n\tlet ΔL = L2 - L1;\n\tlet ΔC = Cdash2 - Cdash1;\n\tlet hdiff = h2 - h1;\n\tlet hsum = h1 + h2;\n\tlet habs = Math.abs(hdiff);\n\tlet Δh;\n\tif (Cdash1 * Cdash2 === 0) Δh = 0;\n\telse if (habs <= 180) Δh = hdiff;\n\telse if (hdiff > 180) Δh = hdiff - 360;\n\telse if (hdiff < -180) Δh = hdiff + 360;\n\telse defaults.warn(\"the unthinkable has happened\");\n\tlet ΔH = 2 * Math.sqrt(Cdash2 * Cdash1) * Math.sin(Δh * d2r$1 / 2);\n\tlet Ldash = (L1 + L2) / 2;\n\tlet Cdash = (Cdash1 + Cdash2) / 2;\n\tlet Cdash7 = pow7(Cdash);\n\tlet hdash;\n\tif (Cdash1 * Cdash2 === 0) hdash = hsum;\n\telse if (habs <= 180) hdash = hsum / 2;\n\telse if (hsum < 360) hdash = (hsum + 360) / 2;\n\telse hdash = (hsum - 360) / 2;\n\tlet lsq = (Ldash - 50) ** 2;\n\tlet SL = 1 + .015 * lsq / Math.sqrt(20 + lsq);\n\tlet SC = 1 + .045 * Cdash;\n\tlet T = 1;\n\tT -= .17 * Math.cos((hdash - 30) * d2r$1);\n\tT += .24 * Math.cos(2 * hdash * d2r$1);\n\tT += .32 * Math.cos((3 * hdash + 6) * d2r$1);\n\tT -= .2 * Math.cos((4 * hdash - 63) * d2r$1);\n\tlet SH = 1 + .015 * Cdash * T;\n\tlet Δθ = 30 * Math.exp(-1 * ((hdash - 275) / 25) ** 2);\n\tlet RC = 2 * Math.sqrt(Cdash7 / (Cdash7 + Gfactor));\n\tlet RT = -1 * Math.sin(2 * Δθ * d2r$1) * RC;\n\tlet dE = (ΔL / (kL * SL)) ** 2;\n\tdE += (ΔC / (kC * SC)) ** 2;\n\tdE += (ΔH / (kH * SH)) ** 2;\n\tdE += RT * (ΔC / (kC * SC)) * (ΔH / (kH * SH));\n\treturn Math.sqrt(dE);\n}\nvar XYZtoLMS_M$1 = [\n\t[\n\t\t.819022437996703,\n\t\t.3619062600528904,\n\t\t-.1288737815209879\n\t],\n\t[\n\t\t.0329836539323885,\n\t\t.9292868615863434,\n\t\t.0361446663506424\n\t],\n\t[\n\t\t.0481771893596242,\n\t\t.2642395317527308,\n\t\t.6335478284694309\n\t]\n];\nvar LMStoXYZ_M$1 = [\n\t[\n\t\t1.2268798758459243,\n\t\t-.5578149944602171,\n\t\t.2813910456659647\n\t],\n\t[\n\t\t-.0405757452148008,\n\t\t1.112286803280317,\n\t\t-.0717110580655164\n\t],\n\t[\n\t\t-.0763729366746601,\n\t\t-.4214933324022432,\n\t\t1.5869240198367816\n\t]\n];\nvar LMStoLab_M = [\n\t[\n\t\t.210454268309314,\n\t\t.7936177747023054,\n\t\t-.0040720430116193\n\t],\n\t[\n\t\t1.9779985324311684,\n\t\t-2.42859224204858,\n\t\t.450593709617411\n\t],\n\t[\n\t\t.0259040424655478,\n\t\t.7827717124575296,\n\t\t-.8086757549230774\n\t]\n];\nvar LabtoLMS_M = [\n\t[\n\t\t1,\n\t\t.3963377773761749,\n\t\t.2158037573099136\n\t],\n\t[\n\t\t1,\n\t\t-.1055613458156586,\n\t\t-.0638541728258133\n\t],\n\t[\n\t\t1,\n\t\t-.0894841775298119,\n\t\t-1.2914855480194092\n\t]\n];\nvar OKLab = new ColorSpace({\n\tid: \"oklab\",\n\tname: \"Oklab\",\n\tcoords: {\n\t\tl: {\n\t\t\trefRange: [0, 1],\n\t\t\tname: \"Lightness\"\n\t\t},\n\t\ta: { refRange: [-.4, .4] },\n\t\tb: { refRange: [-.4, .4] }\n\t},\n\twhite: \"D65\",\n\tbase: xyz_d65,\n\tfromBase(XYZ) {\n\t\treturn multiplyMatrices(LMStoLab_M, multiplyMatrices(XYZtoLMS_M$1, XYZ).map((val) => Math.cbrt(val)));\n\t},\n\ttoBase(OKLab$1) {\n\t\treturn multiplyMatrices(LMStoXYZ_M$1, multiplyMatrices(LabtoLMS_M, OKLab$1).map((val) => val ** 3));\n\t},\n\tformats: { \"oklab\": { coords: [\n\t\t\"<percentage> | <number>\",\n\t\t\"<number> | <percentage>[-1,1]\",\n\t\t\"<number> | <percentage>[-1,1]\"\n\t] } }\n});\nfunction deltaEOK(color, sample) {\n\t[color, sample] = getColor([color, sample]);\n\tlet [L1, a1, b1] = OKLab.from(color);\n\tlet [L2, a2, b2] = OKLab.from(sample);\n\tlet ΔL = L1 - L2;\n\tlet Δa = a1 - a2;\n\tlet Δb = b1 - b2;\n\treturn Math.sqrt(ΔL ** 2 + Δa ** 2 + Δb ** 2);\n}\nvar ε$5 = 75e-6;\nfunction inGamut(color, space, { epsilon = ε$5 } = {}) {\n\tcolor = getColor(color);\n\tif (!space) space = color.space;\n\tspace = ColorSpace.get(space);\n\tlet coords = color.coords;\n\tif (space !== color.space) coords = space.from(color);\n\treturn space.inGamut(coords, { epsilon });\n}\nfunction clone(color) {\n\treturn {\n\t\tspace: color.space,\n\t\tcoords: color.coords.slice(),\n\t\talpha: color.alpha\n\t};\n}\nfunction distance$1(color1, color2, space = \"lab\") {\n\tspace = ColorSpace.get(space);\n\tlet coords1 = space.from(color1);\n\tlet coords2 = space.from(color2);\n\treturn Math.sqrt(coords1.reduce((acc, c1$3, i) => {\n\t\tlet c2$3 = coords2[i];\n\t\tif (isNaN(c1$3) || isNaN(c2$3)) return acc;\n\t\treturn acc + (c2$3 - c1$3) ** 2;\n\t}, 0));\n}\nfunction deltaE76(color, sample) {\n\treturn distance$1(color, sample, \"lab\");\n}\nvar d2r = Math.PI / 180;\nfunction deltaECMC(color, sample, { l = 2, c: c$1 = 1 } = {}) {\n\t[color, sample] = getColor([color, sample]);\n\tlet [L1, a1, b1] = lab.from(color);\n\tlet [, C1, H1] = lch.from(lab, [\n\t\tL1,\n\t\ta1,\n\t\tb1\n\t]);\n\tlet [L2, a2, b2] = lab.from(sample);\n\tlet C2 = lch.from(lab, [\n\t\tL2,\n\t\ta2,\n\t\tb2\n\t])[1];\n\tif (C1 < 0) C1 = 0;\n\tif (C2 < 0) C2 = 0;\n\tlet ΔL = L1 - L2;\n\tlet ΔC = C1 - C2;\n\tlet Δa = a1 - a2;\n\tlet Δb = b1 - b2;\n\tlet H2 = Δa ** 2 + Δb ** 2 - ΔC ** 2;\n\tlet SL = .511;\n\tif (L1 >= 16) SL = .040975 * L1 / (1 + .01765 * L1);\n\tlet SC = .0638 * C1 / (1 + .0131 * C1) + .638;\n\tlet T;\n\tif (Number.isNaN(H1)) H1 = 0;\n\tif (H1 >= 164 && H1 <= 345) T = .56 + Math.abs(.2 * Math.cos((H1 + 168) * d2r));\n\telse T = .36 + Math.abs(.4 * Math.cos((H1 + 35) * d2r));\n\tlet C4 = Math.pow(C1, 4);\n\tlet F = Math.sqrt(C4 / (C4 + 1900));\n\tlet SH = SC * (F * T + 1 - F);\n\tlet dE = (ΔL / (l * SL)) ** 2;\n\tdE += (ΔC / (c$1 * SC)) ** 2;\n\tdE += H2 / SH ** 2;\n\treturn Math.sqrt(dE);\n}\nvar Yw$1 = 203;\nvar XYZ_Abs_D65 = new ColorSpace({\n\tid: \"xyz-abs-d65\",\n\tcssId: \"--xyz-abs-d65\",\n\tname: \"Absolute XYZ D65\",\n\tcoords: {\n\t\tx: {\n\t\t\trefRange: [0, 9504.7],\n\t\t\tname: \"Xa\"\n\t\t},\n\t\ty: {\n\t\t\trefRange: [0, 1e4],\n\t\t\tname: \"Ya\"\n\t\t},\n\t\tz: {\n\t\t\trefRange: [0, 10888.3],\n\t\t\tname: \"Za\"\n\t\t}\n\t},\n\tbase: xyz_d65,\n\tfromBase(XYZ) {\n\t\treturn XYZ.map((v) => Math.max(v * Yw$1, 0));\n\t},\n\ttoBase(AbsXYZ) {\n\t\treturn AbsXYZ.map((v) => Math.max(v / Yw$1, 0));\n\t}\n});\nvar b$1 = 1.15;\nvar g = .66;\nvar n$1 = 2610 / 2 ** 14;\nvar ninv$1 = 2 ** 14 / 2610;\nvar c1$2 = 3424 / 2 ** 12;\nvar c2$2 = 2413 / 2 ** 7;\nvar c3$2 = 2392 / 2 ** 7;\nvar p = 1.7 * 2523 / 2 ** 5;\nvar pinv = 2 ** 5 / (1.7 * 2523);\nvar d = -.56;\nvar d0 = 16295499532821565e-27;\nvar XYZtoCone_M = [\n\t[\n\t\t.41478972,\n\t\t.579999,\n\t\t.014648\n\t],\n\t[\n\t\t-.20151,\n\t\t1.120649,\n\t\t.0531008\n\t],\n\t[\n\t\t-.0166008,\n\t\t.2648,\n\t\t.6684799\n\t]\n];\nvar ConetoXYZ_M = [\n\t[\n\t\t1.9242264357876067,\n\t\t-1.0047923125953657,\n\t\t.037651404030618\n\t],\n\t[\n\t\t.35031676209499907,\n\t\t.7264811939316552,\n\t\t-.06538442294808501\n\t],\n\t[\n\t\t-.09098281098284752,\n\t\t-.3127282905230739,\n\t\t1.5227665613052603\n\t]\n];\nvar ConetoIab_M = [\n\t[\n\t\t.5,\n\t\t.5,\n\t\t0\n\t],\n\t[\n\t\t3.524,\n\t\t-4.066708,\n\t\t.542708\n\t],\n\t[\n\t\t.199076,\n\t\t1.096799,\n\t\t-1.295875\n\t]\n];\nvar IabtoCone_M = [\n\t[\n\t\t1,\n\t\t.1386050432715393,\n\t\t.05804731615611886\n\t],\n\t[\n\t\t.9999999999999999,\n\t\t-.1386050432715393,\n\t\t-.05804731615611886\n\t],\n\t[\n\t\t.9999999999999998,\n\t\t-.09601924202631895,\n\t\t-.8118918960560388\n\t]\n];\nvar Jzazbz = new ColorSpace({\n\tid: \"jzazbz\",\n\tname: \"Jzazbz\",\n\tcoords: {\n\t\tjz: {\n\t\t\trefRange: [0, 1],\n\t\t\tname: \"Jz\"\n\t\t},\n\t\taz: { refRange: [-.5, .5] },\n\t\tbz: { refRange: [-.5, .5] }\n\t},\n\tbase: XYZ_Abs_D65,\n\tfromBase(XYZ) {\n\t\tlet [Xa, Ya, Za] = XYZ;\n\t\tlet [Iz, az, bz] = multiplyMatrices(ConetoIab_M, multiplyMatrices(XYZtoCone_M, [\n\t\t\tb$1 * Xa - (b$1 - 1) * Za,\n\t\t\tg * Ya - (g - 1) * Xa,\n\t\t\tZa\n\t\t]).map(function(val) {\n\t\t\treturn ((c1$2 + c2$2 * (val / 1e4) ** n$1) / (1 + c3$2 * (val / 1e4) ** n$1)) ** p;\n\t\t}));\n\t\treturn [\n\t\t\t(1 + d) * Iz / (1 + d * Iz) - d0,\n\t\t\taz,\n\t\t\tbz\n\t\t];\n\t},\n\ttoBase(Jzazbz$1) {\n\t\tlet [Jz, az, bz] = Jzazbz$1;\n\t\tlet [Xm, Ym, Za] = multiplyMatrices(ConetoXYZ_M, multiplyMatrices(IabtoCone_M, [\n\t\t\t(Jz + d0) / (1 + d - d * (Jz + d0)),\n\t\t\taz,\n\t\t\tbz\n\t\t]).map(function(val) {\n\t\t\treturn 1e4 * ((c1$2 - val ** pinv) / (c3$2 * val ** pinv - c2$2)) ** ninv$1;\n\t\t}));\n\t\tlet Xa = (Xm + (b$1 - 1) * Za) / b$1;\n\t\treturn [\n\t\t\tXa,\n\t\t\t(Ym + (g - 1) * Xa) / g,\n\t\t\tZa\n\t\t];\n\t},\n\tformats: { \"color\": { coords: [\n\t\t\"<number> | <percentage>\",\n\t\t\"<number> | <percentage>[-1,1]\",\n\t\t\"<number> | <percentage>[-1,1]\"\n\t] } }\n});\nvar jzczhz = new ColorSpace({\n\tid: \"jzczhz\",\n\tname: \"JzCzHz\",\n\tcoords: {\n\t\tjz: {\n\t\t\trefRange: [0, 1],\n\t\t\tname: \"Jz\"\n\t\t},\n\t\tcz: {\n\t\t\trefRange: [0, 1],\n\t\t\tname: \"Chroma\"\n\t\t},\n\t\thz: {\n\t\t\trefRange: [0, 360],\n\t\t\ttype: \"angle\",\n\t\t\tname: \"Hue\"\n\t\t}\n\t},\n\tbase: Jzazbz,\n\tfromBase(jzazbz) {\n\t\tlet [Jz, az, bz] = jzazbz;\n\t\tlet hue;\n\t\tconst ε$8 = 2e-4;\n\t\tif (Math.abs(az) < ε$8 && Math.abs(bz) < ε$8) hue = NaN;\n\t\telse hue = Math.atan2(bz, az) * 180 / Math.PI;\n\t\treturn [\n\t\t\tJz,\n\t\t\tMath.sqrt(az ** 2 + bz ** 2),\n\t\t\tconstrain(hue)\n\t\t];\n\t},\n\ttoBase(jzczhz$1) {\n\t\treturn [\n\t\t\tjzczhz$1[0],\n\t\t\tjzczhz$1[1] * Math.cos(jzczhz$1[2] * Math.PI / 180),\n\t\t\tjzczhz$1[1] * Math.sin(jzczhz$1[2] * Math.PI / 180)\n\t\t];\n\t}\n});\nfunction deltaEJz(color, sample) {\n\t[color, sample] = getColor([color, sample]);\n\tlet [Jz1, Cz1, Hz1] = jzczhz.from(color);\n\tlet [Jz2, Cz2, Hz2] = jzczhz.from(sample);\n\tlet ΔJ = Jz1 - Jz2;\n\tlet ΔC = Cz1 - Cz2;\n\tif (Number.isNaN(Hz1) && Number.isNaN(Hz2)) {\n\t\tHz1 = 0;\n\t\tHz2 = 0;\n\t} else if (Number.isNaN(Hz1)) Hz1 = Hz2;\n\telse if (Number.isNaN(Hz2)) Hz2 = Hz1;\n\tlet Δh = Hz1 - Hz2;\n\tlet ΔH = 2 * Math.sqrt(Cz1 * Cz2) * Math.sin(Δh / 2 * (Math.PI / 180));\n\treturn Math.sqrt(ΔJ ** 2 + ΔC ** 2 + ΔH ** 2);\n}\nvar c1$1 = 3424 / 4096;\nvar c2$1 = 2413 / 128;\nvar c3$1 = 2392 / 128;\nvar m1$1 = 2610 / 16384;\nvar m2 = 2523 / 32;\nvar im1 = 16384 / 2610;\nvar im2 = 32 / 2523;\nvar XYZtoLMS_M = [\n\t[\n\t\t.3592832590121217,\n\t\t.6976051147779502,\n\t\t-.035891593232029\n\t],\n\t[\n\t\t-.1920808463704993,\n\t\t1.100476797037432,\n\t\t.0753748658519118\n\t],\n\t[\n\t\t.0070797844607479,\n\t\t.0748396662186362,\n\t\t.8433265453898765\n\t]\n];\nvar LMStoIPT_M = [\n\t[\n\t\t2048 / 4096,\n\t\t2048 / 4096,\n\t\t0\n\t],\n\t[\n\t\t6610 / 4096,\n\t\t-13613 / 4096,\n\t\t7003 / 4096\n\t],\n\t[\n\t\t17933 / 4096,\n\t\t-17390 / 4096,\n\t\t-543 / 4096\n\t]\n];\nvar IPTtoLMS_M = [\n\t[\n\t\t.9999999999999998,\n\t\t.0086090370379328,\n\t\t.111029625003026\n\t],\n\t[\n\t\t.9999999999999998,\n\t\t-.0086090370379328,\n\t\t-.1110296250030259\n\t],\n\t[\n\t\t.9999999999999998,\n\t\t.5600313357106791,\n\t\t-.3206271749873188\n\t]\n];\nvar LMStoXYZ_M = [\n\t[\n\t\t2.0701522183894223,\n\t\t-1.3263473389671563,\n\t\t.2066510476294053\n\t],\n\t[\n\t\t.3647385209748072,\n\t\t.6805660249472273,\n\t\t-.0453045459220347\n\t],\n\t[\n\t\t-.0497472075358123,\n\t\t-.0492609666966131,\n\t\t1.1880659249923042\n\t]\n];\nvar ictcp = new ColorSpace({\n\tid: \"ictcp\",\n\tname: \"ICTCP\",\n\tcoords: {\n\t\ti: {\n\t\t\trefRange: [0, 1],\n\t\t\tname: \"I\"\n\t\t},\n\t\tct: {\n\t\t\trefRange: [-.5, .5],\n\t\t\tname: \"CT\"\n\t\t},\n\t\tcp: {\n\t\t\trefRange: [-.5, .5],\n\t\t\tname: \"CP\"\n\t\t}\n\t},\n\tbase: XYZ_Abs_D65,\n\tfromBase(XYZ) {\n\t\treturn LMStoICtCp(multiplyMatrices(XYZtoLMS_M, XYZ));\n\t},\n\ttoBase(ICtCp) {\n\t\treturn multiplyMatrices(LMStoXYZ_M, ICtCptoLMS(ICtCp));\n\t}\n});\nfunction LMStoICtCp(LMS) {\n\treturn multiplyMatrices(LMStoIPT_M, LMS.map(function(val) {\n\t\treturn ((c1$1 + c2$1 * (val / 1e4) ** m1$1) / (1 + c3$1 * (val / 1e4) ** m1$1)) ** m2;\n\t}));\n}\nfunction ICtCptoLMS(ICtCp) {\n\treturn multiplyMatrices(IPTtoLMS_M, ICtCp).map(function(val) {\n\t\treturn 1e4 * (Math.max(val ** im2 - c1$1, 0) / (c2$1 - c3$1 * val ** im2)) ** im1;\n\t});\n}\nfunction deltaEITP(color, sample) {\n\t[color, sample] = getColor([color, sample]);\n\tlet [I1, T1, P1] = ictcp.from(color);\n\tlet [I2, T2, P2] = ictcp.from(sample);\n\treturn 720 * Math.sqrt((I1 - I2) ** 2 + .25 * (T1 - T2) ** 2 + (P1 - P2) ** 2);\n}\nvar white$3 = WHITES.D65;\nvar adaptedCoef = .42;\nvar adaptedCoefInv = 1 / adaptedCoef;\nvar tau = 2 * Math.PI;\nvar cat16 = [\n\t[\n\t\t.401288,\n\t\t.650173,\n\t\t-.051461\n\t],\n\t[\n\t\t-.250268,\n\t\t1.204414,\n\t\t.045854\n\t],\n\t[\n\t\t-.002079,\n\t\t.048952,\n\t\t.953127\n\t]\n];\nvar cat16Inv = [\n\t[\n\t\t1.8620678550872327,\n\t\t-1.0112546305316843,\n\t\t.14918677544445175\n\t],\n\t[\n\t\t.38752654323613717,\n\t\t.6214474419314753,\n\t\t-.008973985167612518\n\t],\n\t[\n\t\t-.015841498849333856,\n\t\t-.03412293802851557,\n\t\t1.0499644368778496\n\t]\n];\nvar m1 = [\n\t[\n\t\t460,\n\t\t451,\n\t\t288\n\t],\n\t[\n\t\t460,\n\t\t-891,\n\t\t-261\n\t],\n\t[\n\t\t460,\n\t\t-220,\n\t\t-6300\n\t]\n];\nvar surroundMap = {\n\tdark: [\n\t\t.8,\n\t\t.525,\n\t\t.8\n\t],\n\tdim: [\n\t\t.9,\n\t\t.59,\n\t\t.9\n\t],\n\taverage: [\n\t\t1,\n\t\t.69,\n\t\t1\n\t]\n};\nvar hueQuadMap = {\n\th: [\n\t\t20.14,\n\t\t90,\n\t\t164.25,\n\t\t237.53,\n\t\t380.14\n\t],\n\te: [\n\t\t.8,\n\t\t.7,\n\t\t1,\n\t\t1.2,\n\t\t.8\n\t],\n\tH: [\n\t\t0,\n\t\t100,\n\t\t200,\n\t\t300,\n\t\t400\n\t]\n};\nvar rad2deg = 180 / Math.PI;\nvar deg2rad$1 = Math.PI / 180;\nfunction adapt$1(coords, fl) {\n\treturn coords.map((c$1) => {\n\t\tconst x = spow(fl * Math.abs(c$1) * .01, adaptedCoef);\n\t\treturn 400 * copySign(x, c$1) / (x + 27.13);\n\t});\n}\nfunction unadapt(adapted, fl) {\n\tconst constant = 100 / fl * 27.13 ** adaptedCoefInv;\n\treturn adapted.map((c$1) => {\n\t\tconst cabs = Math.abs(c$1);\n\t\treturn copySign(constant * spow(cabs / (400 - cabs), adaptedCoefInv), c$1);\n\t});\n}\nfunction hueQuadrature(h) {\n\tlet hp = constrain(h);\n\tif (hp <= hueQuadMap.h[0]) hp += 360;\n\tconst i = bisectLeft(hueQuadMap.h, hp) - 1;\n\tconst [hi, hii] = hueQuadMap.h.slice(i, i + 2);\n\tconst [ei, eii] = hueQuadMap.e.slice(i, i + 2);\n\tconst Hi = hueQuadMap.H[i];\n\tconst t = (hp - hi) / ei;\n\treturn Hi + 100 * t / (t + (hii - hp) / eii);\n}\nfunction invHueQuadrature(H) {\n\tlet Hp = (H % 400 + 400) % 400;\n\tconst i = Math.floor(.01 * Hp);\n\tHp = Hp % 100;\n\tconst [hi, hii] = hueQuadMap.h.slice(i, i + 2);\n\tconst [ei, eii] = hueQuadMap.e.slice(i, i + 2);\n\treturn constrain((Hp * (eii * hi - ei * hii) - 100 * hi * eii) / (Hp * (eii - ei) - 100 * eii));\n}\nfunction environment(refWhite, adaptingLuminance, backgroundLuminance, surround, discounting) {\n\tconst env = {};\n\tenv.discounting = discounting;\n\tenv.refWhite = refWhite;\n\tenv.surround = surround;\n\tconst xyzW = refWhite.map((c$1) => {\n\t\treturn c$1 * 100;\n\t});\n\tenv.la = adaptingLuminance;\n\tenv.yb = backgroundLuminance;\n\tconst yw = xyzW[1];\n\tconst rgbW = multiplyMatrices(cat16, xyzW);\n\tsurround = surroundMap[env.surround];\n\tconst f = surround[0];\n\tenv.c = surround[1];\n\tenv.nc = surround[2];\n\tconst k4 = (1 / (5 * env.la + 1)) ** 4;\n\tenv.fl = k4 * env.la + .1 * (1 - k4) * (1 - k4) * Math.cbrt(5 * env.la);\n\tenv.flRoot = env.fl ** .25;\n\tenv.n = env.yb / yw;\n\tenv.z = 1.48 + Math.sqrt(env.n);\n\tenv.nbb = .725 * env.n ** -.2;\n\tenv.ncb = env.nbb;\n\tconst d$1 = discounting ? 1 : Math.max(Math.min(f * (1 - 1 / 3.6 * Math.exp((-env.la - 42) / 92)), 1), 0);\n\tenv.dRgb = rgbW.map((c$1) => {\n\t\treturn interpolate(1, yw / c$1, d$1);\n\t});\n\tenv.dRgbInv = env.dRgb.map((c$1) => {\n\t\treturn 1 / c$1;\n\t});\n\tconst rgbAW = adapt$1(rgbW.map((c$1, i) => {\n\t\treturn c$1 * env.dRgb[i];\n\t}), env.fl);\n\tenv.aW = env.nbb * (2 * rgbAW[0] + rgbAW[1] + .05 * rgbAW[2]);\n\treturn env;\n}\nvar viewingConditions$1 = environment(white$3, 64 / Math.PI * .2, 20, \"average\", false);\nfunction fromCam16(cam16$1, env) {\n\tif (!(cam16$1.J !== void 0 ^ cam16$1.Q !== void 0)) throw new Error(\"Conversion requires one and only one: 'J' or 'Q'\");\n\tif (!(cam16$1.C !== void 0 ^ cam16$1.M !== void 0 ^ cam16$1.s !== void 0)) throw new Error(\"Conversion requires one and only one: 'C', 'M' or 's'\");\n\tif (!(cam16$1.h !== void 0 ^ cam16$1.H !== void 0)) throw new Error(\"Conversion requires one and only one: 'h' or 'H'\");\n\tif (cam16$1.J === 0 || cam16$1.Q === 0) return [\n\t\t0,\n\t\t0,\n\t\t0\n\t];\n\tlet hRad = 0;\n\tif (cam16$1.h !== void 0) hRad = constrain(cam16$1.h) * deg2rad$1;\n\telse hRad = invHueQuadrature(cam16$1.H) * deg2rad$1;\n\tconst cosh = Math.cos(hRad);\n\tconst sinh = Math.sin(hRad);\n\tlet Jroot = 0;\n\tif (cam16$1.J !== void 0) Jroot = spow(cam16$1.J, 1 / 2) * .1;\n\telse if (cam16$1.Q !== void 0) Jroot = .25 * env.c * cam16$1.Q / ((env.aW + 4) * env.flRoot);\n\tlet alpha = 0;\n\tif (cam16$1.C !== void 0) alpha = cam16$1.C / Jroot;\n\telse if (cam16$1.M !== void 0) alpha = cam16$1.M / env.flRoot / Jroot;\n\telse if (cam16$1.s !== void 0) alpha = 4e-4 * cam16$1.s ** 2 * (env.aW + 4) / env.c;\n\tconst t = spow(alpha * Math.pow(1.64 - Math.pow(.29, env.n), -.73), 10 / 9);\n\tconst et = .25 * (Math.cos(hRad + 2) + 3.8);\n\tconst A = env.aW * spow(Jroot, 2 / env.c / env.z);\n\tconst p1 = 5e4 / 13 * env.nc * env.ncb * et;\n\tconst p2 = A / env.nbb;\n\tconst r = 23 * (p2 + .305) * zdiv(t, 23 * p1 + t * (11 * cosh + 108 * sinh));\n\treturn multiplyMatrices(cat16Inv, unadapt(multiplyMatrices(m1, [\n\t\tp2,\n\t\tr * cosh,\n\t\tr * sinh\n\t]).map((c$1) => {\n\t\treturn c$1 * 1 / 1403;\n\t}), env.fl).map((c$1, i) => {\n\t\treturn c$1 * env.dRgbInv[i];\n\t})).map((c$1) => {\n\t\treturn c$1 / 100;\n\t});\n}\nfunction toCam16(xyzd65, env) {\n\tconst rgbA = adapt$1(multiplyMatrices(cat16, xyzd65.map((c$1) => {\n\t\treturn c$1 * 100;\n\t})).map((c$1, i) => {\n\t\treturn c$1 * env.dRgb[i];\n\t}), env.fl);\n\tconst a$1 = rgbA[0] + (-12 * rgbA[1] + rgbA[2]) / 11;\n\tconst b$2 = (rgbA[0] + rgbA[1] - 2 * rgbA[2]) / 9;\n\tconst hRad = (Math.atan2(b$2, a$1) % tau + tau) % tau;\n\tconst et = .25 * (Math.cos(hRad + 2) + 3.8);\n\tconst alpha = spow(5e4 / 13 * env.nc * env.ncb * zdiv(et * Math.sqrt(a$1 ** 2 + b$2 ** 2), rgbA[0] + rgbA[1] + 1.05 * rgbA[2] + .305), .9) * Math.pow(1.64 - Math.pow(.29, env.n), .73);\n\tconst Jroot = spow(env.nbb * (2 * rgbA[0] + rgbA[1] + .05 * rgbA[2]) / env.aW, .5 * env.c * env.z);\n\tconst J = 100 * spow(Jroot, 2);\n\tconst Q = 4 / env.c * Jroot * (env.aW + 4) * env.flRoot;\n\tconst C = alpha * Jroot;\n\tconst M = C * env.flRoot;\n\tconst h = constrain(hRad * rad2deg);\n\tconst H = hueQuadrature(h);\n\treturn {\n\t\tJ,\n\t\tC,\n\t\th,\n\t\ts: 50 * spow(env.c * alpha / (env.aW + 4), 1 / 2),\n\t\tQ,\n\t\tM,\n\t\tH\n\t};\n}\nvar cam16 = new ColorSpace({\n\tid: \"cam16-jmh\",\n\tcssId: \"--cam16-jmh\",\n\tname: \"CAM16-JMh\",\n\tcoords: {\n\t\tj: {\n\t\t\trefRange: [0, 100],\n\t\t\tname: \"J\"\n\t\t},\n\t\tm: {\n\t\t\trefRange: [0, 105],\n\t\t\tname: \"Colorfulness\"\n\t\t},\n\t\th: {\n\t\t\trefRange: [0, 360],\n\t\t\ttype: \"angle\",\n\t\t\tname: \"Hue\"\n\t\t}\n\t},\n\tbase: xyz_d65,\n\tfromBase(xyz) {\n\t\tconst cam16$1 = toCam16(xyz, viewingConditions$1);\n\t\treturn [\n\t\t\tcam16$1.J,\n\t\t\tcam16$1.M,\n\t\t\tcam16$1.h\n\t\t];\n\t},\n\ttoBase(cam16$1) {\n\t\treturn fromCam16({\n\t\t\tJ: cam16$1[0],\n\t\t\tM: cam16$1[1],\n\t\t\th: cam16$1[2]\n\t\t}, viewingConditions$1);\n\t}\n});\nvar white$2 = WHITES.D65;\nvar ε$4 = 216 / 24389;\nvar κ$3 = 24389 / 27;\nfunction toLstar(y) {\n\treturn 116 * (y > ε$4 ? Math.cbrt(y) : (κ$3 * y + 16) / 116) - 16;\n}\nfunction fromLstar(lstar) {\n\treturn lstar > 8 ? Math.pow((lstar + 16) / 116, 3) : lstar / κ$3;\n}\nfunction fromHct(coords, env) {\n\tlet [h, c$1, t] = coords;\n\tlet xyz = [];\n\tlet j = 0;\n\tif (t === 0) return [\n\t\t0,\n\t\t0,\n\t\t0\n\t];\n\tlet y = fromLstar(t);\n\tif (t > 0) j = .00379058511492914 * t ** 2 + .608983189401032 * t + .9155088574762233;\n\telse j = 9514440756550361e-21 * t ** 2 + .08693057439788597 * t - 21.928975842194614;\n\tconst threshold = 2e-12;\n\tconst max_attempts = 15;\n\tlet attempt = 0;\n\tlet last$1 = Infinity;\n\twhile (attempt <= max_attempts) {\n\t\txyz = fromCam16({\n\t\t\tJ: j,\n\t\t\tC: c$1,\n\t\t\th\n\t\t}, env);\n\t\tconst delta = Math.abs(xyz[1] - y);\n\t\tif (delta < last$1) {\n\t\t\tif (delta <= threshold) return xyz;\n\t\t\tlast$1 = delta;\n\t\t}\n\t\tj = j - (xyz[1] - y) * j / (2 * xyz[1]);\n\t\tattempt += 1;\n\t}\n\treturn fromCam16({\n\t\tJ: j,\n\t\tC: c$1,\n\t\th\n\t}, env);\n}\nfunction toHct(xyz, env) {\n\tconst t = toLstar(xyz[1]);\n\tif (t === 0) return [\n\t\t0,\n\t\t0,\n\t\t0\n\t];\n\tconst cam16$1 = toCam16(xyz, viewingConditions);\n\treturn [\n\t\tconstrain(cam16$1.h),\n\t\tcam16$1.C,\n\t\tt\n\t];\n}\nvar viewingConditions = environment(white$2, 200 / Math.PI * fromLstar(50), fromLstar(50) * 100, \"average\", false);\nvar hct = new ColorSpace({\n\tid: \"hct\",\n\tname: \"HCT\",\n\tcoords: {\n\t\th: {\n\t\t\trefRange: [0, 360],\n\t\t\ttype: \"angle\",\n\t\t\tname: \"Hue\"\n\t\t},\n\t\tc: {\n\t\t\trefRange: [0, 145],\n\t\t\tname: \"Colorfulness\"\n\t\t},\n\t\tt: {\n\t\t\trefRange: [0, 100],\n\t\t\tname: \"Tone\"\n\t\t}\n\t},\n\tbase: xyz_d65,\n\tfromBase(xyz) {\n\t\treturn toHct(xyz);\n\t},\n\ttoBase(hct$1) {\n\t\treturn fromHct(hct$1, viewingConditions);\n\t},\n\tformats: { color: {\n\t\tid: \"--hct\",\n\t\tcoords: [\n\t\t\t\"<number> | <angle>\",\n\t\t\t\"<percentage> | <number>\",\n\t\t\t\"<percentage> | <number>\"\n\t\t]\n\t} }\n});\nvar deg2rad = Math.PI / 180;\nvar ucsCoeff = [\n\t1,\n\t.007,\n\t.0228\n];\nfunction convertUcsAb(coords) {\n\tif (coords[1] < 0) coords = hct.fromBase(hct.toBase(coords));\n\tconst M = Math.log(Math.max(1 + ucsCoeff[2] * coords[1] * viewingConditions.flRoot, 1)) / ucsCoeff[2];\n\tconst hrad = coords[0] * deg2rad;\n\tconst a$1 = M * Math.cos(hrad);\n\tconst b$2 = M * Math.sin(hrad);\n\treturn [\n\t\tcoords[2],\n\t\ta$1,\n\t\tb$2\n\t];\n}\nfunction deltaEHCT(color, sample) {\n\t[color, sample] = getColor([color, sample]);\n\tlet [t1, a1, b1] = convertUcsAb(hct.from(color));\n\tlet [t2, a2, b2] = convertUcsAb(hct.from(sample));\n\treturn Math.sqrt((t1 - t2) ** 2 + (a1 - a2) ** 2 + (b1 - b2) ** 2);\n}\nvar deltaEMethods = {\n\tdeltaE76,\n\tdeltaECMC,\n\tdeltaE2000,\n\tdeltaEJz,\n\tdeltaEITP,\n\tdeltaEOK,\n\tdeltaEHCT\n};\nfunction calcEpsilon(jnd) {\n\tconst order = !jnd ? 0 : Math.floor(Math.log10(Math.abs(jnd)));\n\treturn Math.max(parseFloat(`1e${order - 2}`), 1e-6);\n}\nvar GMAPPRESET = {\n\t\"hct\": {\n\t\tmethod: \"hct.c\",\n\t\tjnd: 2,\n\t\tdeltaEMethod: \"hct\",\n\t\tblackWhiteClamp: {}\n\t},\n\t\"hct-tonal\": {\n\t\tmethod: \"hct.c\",\n\t\tjnd: 0,\n\t\tdeltaEMethod: \"hct\",\n\t\tblackWhiteClamp: {\n\t\t\tchannel: \"hct.t\",\n\t\t\tmin: 0,\n\t\t\tmax: 100\n\t\t}\n\t}\n};\nfunction toGamut(color, { method = defaults.gamut_mapping, space = void 0, deltaEMethod = \"\", jnd = 2, blackWhiteClamp = {} } = {}) {\n\tcolor = getColor(color);\n\tif (isString(arguments[1])) space = arguments[1];\n\telse if (!space) space = color.space;\n\tspace = ColorSpace.get(space);\n\tif (inGamut(color, space, { epsilon: 0 })) return color;\n\tlet spaceColor;\n\tif (method === \"css\") spaceColor = toGamutCSS(color, { space });\n\telse {\n\t\tif (method !== \"clip\" && !inGamut(color, space)) {\n\t\t\tif (Object.prototype.hasOwnProperty.call(GMAPPRESET, method)) ({method, jnd, deltaEMethod, blackWhiteClamp} = GMAPPRESET[method]);\n\t\t\tlet de = deltaE2000;\n\t\t\tif (deltaEMethod !== \"\") {\n\t\t\t\tfor (let m$1 in deltaEMethods) if (\"deltae\" + deltaEMethod.toLowerCase() === m$1.toLowerCase()) {\n\t\t\t\t\tde = deltaEMethods[m$1];\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tlet clipped = toGamut(to(color, space), {\n\t\t\t\tmethod: \"clip\",\n\t\t\t\tspace\n\t\t\t});\n\t\t\tif (de(color, clipped) > jnd) {\n\t\t\t\tif (Object.keys(blackWhiteClamp).length === 3) {\n\t\t\t\t\tlet channelMeta = ColorSpace.resolveCoord(blackWhiteClamp.channel);\n\t\t\t\t\tlet channel = get(to(color, channelMeta.space), channelMeta.id);\n\t\t\t\t\tif (isNone(channel)) channel = 0;\n\t\t\t\t\tif (channel >= blackWhiteClamp.max) return to({\n\t\t\t\t\t\tspace: \"xyz-d65\",\n\t\t\t\t\t\tcoords: WHITES[\"D65\"]\n\t\t\t\t\t}, color.space);\n\t\t\t\t\telse if (channel <= blackWhiteClamp.min) return to({\n\t\t\t\t\t\tspace: \"xyz-d65\",\n\t\t\t\t\t\tcoords: [\n\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t0\n\t\t\t\t\t\t]\n\t\t\t\t\t}, color.space);\n\t\t\t\t}\n\t\t\t\tlet coordMeta = ColorSpace.resolveCoord(method);\n\t\t\t\tlet mapSpace = coordMeta.space;\n\t\t\t\tlet coordId = coordMeta.id;\n\t\t\t\tlet mappedColor = to(color, mapSpace);\n\t\t\t\tmappedColor.coords.forEach((c$1, i) => {\n\t\t\t\t\tif (isNone(c$1)) mappedColor.coords[i] = 0;\n\t\t\t\t});\n\t\t\t\tlet min$1 = (coordMeta.range || coordMeta.refRange)[0];\n\t\t\t\tlet ε$8 = calcEpsilon(jnd);\n\t\t\t\tlet low = min$1;\n\t\t\t\tlet high = get(mappedColor, coordId);\n\t\t\t\twhile (high - low > ε$8) {\n\t\t\t\t\tlet clipped$1 = clone(mappedColor);\n\t\t\t\t\tclipped$1 = toGamut(clipped$1, {\n\t\t\t\t\t\tspace,\n\t\t\t\t\t\tmethod: \"clip\"\n\t\t\t\t\t});\n\t\t\t\t\tif (de(mappedColor, clipped$1) - jnd < ε$8) low = get(mappedColor, coordId);\n\t\t\t\t\telse high = get(mappedColor, coordId);\n\t\t\t\t\tset(mappedColor, coordId, (low + high) / 2);\n\t\t\t\t}\n\t\t\t\tspaceColor = to(mappedColor, space);\n\t\t\t} else spaceColor = clipped;\n\t\t} else spaceColor = to(color, space);\n\t\tif (method === \"clip\" || !inGamut(spaceColor, space, { epsilon: 0 })) {\n\t\t\tlet bounds = Object.values(space.coords).map((c$1) => c$1.range || []);\n\t\t\tspaceColor.coords = spaceColor.coords.map((c$1, i) => {\n\t\t\t\tlet [min$1, max$2] = bounds[i];\n\t\t\t\tif (min$1 !== void 0) c$1 = Math.max(min$1, c$1);\n\t\t\t\tif (max$2 !== void 0) c$1 = Math.min(c$1, max$2);\n\t\t\t\treturn c$1;\n\t\t\t});\n\t\t}\n\t}\n\tif (space !== color.space) spaceColor = to(spaceColor, color.space);\n\tcolor.coords = spaceColor.coords;\n\treturn color;\n}\ntoGamut.returns = \"color\";\nvar COLORS = {\n\tWHITE: {\n\t\tspace: OKLab,\n\t\tcoords: [\n\t\t\t1,\n\t\t\t0,\n\t\t\t0\n\t\t]\n\t},\n\tBLACK: {\n\t\tspace: OKLab,\n\t\tcoords: [\n\t\t\t0,\n\t\t\t0,\n\t\t\t0\n\t\t]\n\t}\n};\nfunction toGamutCSS(origin, { space } = {}) {\n\tconst JND = .02;\n\tconst ε$8 = 1e-4;\n\torigin = getColor(origin);\n\tif (!space) space = origin.space;\n\tspace = ColorSpace.get(space);\n\tconst oklchSpace = ColorSpace.get(\"oklch\");\n\tif (space.isUnbounded) return to(origin, space);\n\tconst origin_OKLCH = to(origin, oklchSpace);\n\tlet L = origin_OKLCH.coords[0];\n\tif (L >= 1) {\n\t\tconst white$5 = to(COLORS.WHITE, space);\n\t\twhite$5.alpha = origin.alpha;\n\t\treturn to(white$5, space);\n\t}\n\tif (L <= 0) {\n\t\tconst black = to(COLORS.BLACK, space);\n\t\tblack.alpha = origin.alpha;\n\t\treturn to(black, space);\n\t}\n\tif (inGamut(origin_OKLCH, space, { epsilon: 0 })) return to(origin_OKLCH, space);\n\tfunction clip(_color) {\n\t\tconst destColor = to(_color, space);\n\t\tconst spaceCoords = Object.values(space.coords);\n\t\tdestColor.coords = destColor.coords.map((coord, index) => {\n\t\t\tif (\"range\" in spaceCoords[index]) {\n\t\t\t\tconst [min$2, max$3] = spaceCoords[index].range;\n\t\t\t\treturn clamp$1(min$2, coord, max$3);\n\t\t\t}\n\t\t\treturn coord;\n\t\t});\n\t\treturn destColor;\n\t}\n\tlet min$1 = 0;\n\tlet max$2 = origin_OKLCH.coords[1];\n\tlet min_inGamut = true;\n\tlet current = clone(origin_OKLCH);\n\tlet clipped = clip(current);\n\tlet E = deltaEOK(clipped, current);\n\tif (E < JND) return clipped;\n\twhile (max$2 - min$1 > ε$8) {\n\t\tconst chroma = (min$1 + max$2) / 2;\n\t\tcurrent.coords[1] = chroma;\n\t\tif (min_inGamut && inGamut(current, space, { epsilon: 0 })) min$1 = chroma;\n\t\telse {\n\t\t\tclipped = clip(current);\n\t\t\tE = deltaEOK(clipped, current);\n\t\t\tif (E < JND) if (JND - E < ε$8) break;\n\t\t\telse {\n\t\t\t\tmin_inGamut = false;\n\t\t\t\tmin$1 = chroma;\n\t\t\t}\n\t\t\telse max$2 = chroma;\n\t\t}\n\t}\n\treturn clipped;\n}\nfunction to(color, space, { inGamut: inGamut$1 } = {}) {\n\tcolor = getColor(color);\n\tspace = ColorSpace.get(space);\n\tlet coords = space.from(color);\n\tlet ret = {\n\t\tspace,\n\t\tcoords,\n\t\talpha: color.alpha\n\t};\n\tif (inGamut$1) ret = toGamut(ret, inGamut$1 === true ? void 0 : inGamut$1);\n\treturn ret;\n}\nto.returns = \"color\";\nfunction serialize(color, { precision = defaults.precision, format = \"default\", inGamut: inGamut$1 = true,...customOptions } = {}) {\n\tlet ret;\n\tcolor = getColor(color);\n\tlet formatId = format;\n\tformat = color.space.getFormat(format) ?? color.space.getFormat(\"default\") ?? ColorSpace.DEFAULT_FORMAT;\n\tlet coords = color.coords.slice();\n\tinGamut$1 ||= format.toGamut;\n\tif (inGamut$1 && !inGamut(color)) coords = toGamut(clone(color), inGamut$1 === true ? void 0 : inGamut$1).coords;\n\tif (format.type === \"custom\") {\n\t\tcustomOptions.precision = precision;\n\t\tif (format.serialize) ret = format.serialize(coords, color.alpha, customOptions);\n\t\telse throw new TypeError(`format ${formatId} can only be used to parse colors, not for serialization`);\n\t} else {\n\t\tlet name = format.name || \"color\";\n\t\tif (format.serializeCoords) coords = format.serializeCoords(coords, precision);\n\t\telse if (precision !== null) coords = coords.map((c$1) => {\n\t\t\treturn serializeNumber(c$1, { precision });\n\t\t});\n\t\tlet args = [...coords];\n\t\tif (name === \"color\") {\n\t\t\tlet cssId = format.id || format.ids?.[0] || color.space.id;\n\t\t\targs.unshift(cssId);\n\t\t}\n\t\tlet alpha = color.alpha;\n\t\tif (precision !== null) alpha = serializeNumber(alpha, { precision });\n\t\tlet strAlpha = color.alpha >= 1 || format.noAlpha ? \"\" : `${format.commas ? \",\" : \" /\"} ${alpha}`;\n\t\tret = `${name}(${args.join(format.commas ? \", \" : \" \")}${strAlpha})`;\n\t}\n\treturn ret;\n}\nvar REC2020Linear = new RGBColorSpace({\n\tid: \"rec2020-linear\",\n\tcssId: \"--rec2020-linear\",\n\tname: \"Linear REC.2020\",\n\twhite: \"D65\",\n\ttoXYZ_M: [\n\t\t[\n\t\t\t.6369580483012914,\n\t\t\t.14461690358620832,\n\t\t\t.1688809751641721\n\t\t],\n\t\t[\n\t\t\t.2627002120112671,\n\t\t\t.6779980715188708,\n\t\t\t.05930171646986196\n\t\t],\n\t\t[\n\t\t\t0,\n\t\t\t.028072693049087428,\n\t\t\t1.060985057710791\n\t\t]\n\t],\n\tfromXYZ_M: [\n\t\t[\n\t\t\t1.716651187971268,\n\t\t\t-.355670783776392,\n\t\t\t-.25336628137366\n\t\t],\n\t\t[\n\t\t\t-.666684351832489,\n\t\t\t1.616481236634939,\n\t\t\t.0157685458139111\n\t\t],\n\t\t[\n\t\t\t.017639857445311,\n\t\t\t-.042770613257809,\n\t\t\t.942103121235474\n\t\t]\n\t]\n});\nvar α = 1.09929682680944;\nvar β = .018053968510807;\nvar REC2020 = new RGBColorSpace({\n\tid: \"rec2020\",\n\tname: \"REC.2020\",\n\tbase: REC2020Linear,\n\ttoBase(RGB) {\n\t\treturn RGB.map(function(val) {\n\t\t\tif (val < β * 4.5) return val / 4.5;\n\t\t\treturn Math.pow((val + α - 1) / α, 1 / .45);\n\t\t});\n\t},\n\tfromBase(RGB) {\n\t\treturn RGB.map(function(val) {\n\t\t\tif (val >= β) return α * Math.pow(val, .45) - (α - 1);\n\t\t\treturn 4.5 * val;\n\t\t});\n\t}\n});\nvar P3Linear = new RGBColorSpace({\n\tid: \"p3-linear\",\n\tcssId: \"--display-p3-linear\",\n\tname: \"Linear P3\",\n\twhite: \"D65\",\n\ttoXYZ_M: [\n\t\t[\n\t\t\t.4865709486482162,\n\t\t\t.26566769316909306,\n\t\t\t.1982172852343625\n\t\t],\n\t\t[\n\t\t\t.2289745640697488,\n\t\t\t.6917385218365064,\n\t\t\t.079286914093745\n\t\t],\n\t\t[\n\t\t\t0,\n\t\t\t.04511338185890264,\n\t\t\t1.043944368900976\n\t\t]\n\t],\n\tfromXYZ_M: [\n\t\t[\n\t\t\t2.493496911941425,\n\t\t\t-.9313836179191239,\n\t\t\t-.40271078445071684\n\t\t],\n\t\t[\n\t\t\t-.8294889695615747,\n\t\t\t1.7626640603183463,\n\t\t\t.023624685841943577\n\t\t],\n\t\t[\n\t\t\t.03584583024378447,\n\t\t\t-.07617238926804182,\n\t\t\t.9568845240076872\n\t\t]\n\t]\n});\nvar toXYZ_M$3 = [\n\t[\n\t\t.41239079926595934,\n\t\t.357584339383878,\n\t\t.1804807884018343\n\t],\n\t[\n\t\t.21263900587151027,\n\t\t.715168678767756,\n\t\t.07219231536073371\n\t],\n\t[\n\t\t.01933081871559182,\n\t\t.11919477979462598,\n\t\t.9505321522496607\n\t]\n];\nvar fromXYZ_M$3 = [\n\t[\n\t\t3.2409699419045226,\n\t\t-1.537383177570094,\n\t\t-.4986107602930034\n\t],\n\t[\n\t\t-.9692436362808796,\n\t\t1.8759675015077202,\n\t\t.04155505740717559\n\t],\n\t[\n\t\t.05563007969699366,\n\t\t-.20397695888897652,\n\t\t1.0569715142428786\n\t]\n];\nvar sRGBLinear = new RGBColorSpace({\n\tid: \"srgb-linear\",\n\tname: \"Linear sRGB\",\n\twhite: \"D65\",\n\ttoXYZ_M: toXYZ_M$3,\n\tfromXYZ_M: fromXYZ_M$3\n});\nvar KEYWORDS = {\n\t\"aliceblue\": [\n\t\t240 / 255,\n\t\t248 / 255,\n\t\t1\n\t],\n\t\"antiquewhite\": [\n\t\t250 / 255,\n\t\t235 / 255,\n\t\t215 / 255\n\t],\n\t\"aqua\": [\n\t\t0,\n\t\t1,\n\t\t1\n\t],\n\t\"aquamarine\": [\n\t\t127 / 255,\n\t\t1,\n\t\t212 / 255\n\t],\n\t\"azure\": [\n\t\t240 / 255,\n\t\t1,\n\t\t1\n\t],\n\t\"beige\": [\n\t\t245 / 255,\n\t\t245 / 255,\n\t\t220 / 255\n\t],\n\t\"bisque\": [\n\t\t1,\n\t\t228 / 255,\n\t\t196 / 255\n\t],\n\t\"black\": [\n\t\t0,\n\t\t0,\n\t\t0\n\t],\n\t\"blanchedalmond\": [\n\t\t1,\n\t\t235 / 255,\n\t\t205 / 255\n\t],\n\t\"blue\": [\n\t\t0,\n\t\t0,\n\t\t1\n\t],\n\t\"blueviolet\": [\n\t\t138 / 255,\n\t\t43 / 255,\n\t\t226 / 255\n\t],\n\t\"brown\": [\n\t\t165 / 255,\n\t\t42 / 255,\n\t\t42 / 255\n\t],\n\t\"burlywood\": [\n\t\t222 / 255,\n\t\t184 / 255,\n\t\t135 / 255\n\t],\n\t\"cadetblue\": [\n\t\t95 / 255,\n\t\t158 / 255,\n\t\t160 / 255\n\t],\n\t\"chartreuse\": [\n\t\t127 / 255,\n\t\t1,\n\t\t0\n\t],\n\t\"chocolate\": [\n\t\t210 / 255,\n\t\t105 / 255,\n\t\t30 / 255\n\t],\n\t\"coral\": [\n\t\t1,\n\t\t127 / 255,\n\t\t80 / 255\n\t],\n\t\"cornflowerblue\": [\n\t\t100 / 255,\n\t\t149 / 255,\n\t\t237 / 255\n\t],\n\t\"cornsilk\": [\n\t\t1,\n\t\t248 / 255,\n\t\t220 / 255\n\t],\n\t\"crimson\": [\n\t\t220 / 255,\n\t\t20 / 255,\n\t\t60 / 255\n\t],\n\t\"cyan\": [\n\t\t0,\n\t\t1,\n\t\t1\n\t],\n\t\"darkblue\": [\n\t\t0,\n\t\t0,\n\t\t139 / 255\n\t],\n\t\"darkcyan\": [\n\t\t0,\n\t\t139 / 255,\n\t\t139 / 255\n\t],\n\t\"darkgoldenrod\": [\n\t\t184 / 255,\n\t\t134 / 255,\n\t\t11 / 255\n\t],\n\t\"darkgray\": [\n\t\t169 / 255,\n\t\t169 / 255,\n\t\t169 / 255\n\t],\n\t\"darkgreen\": [\n\t\t0,\n\t\t100 / 255,\n\t\t0\n\t],\n\t\"darkgrey\": [\n\t\t169 / 255,\n\t\t169 / 255,\n\t\t169 / 255\n\t],\n\t\"darkkhaki\": [\n\t\t189 / 255,\n\t\t183 / 255,\n\t\t107 / 255\n\t],\n\t\"darkmagenta\": [\n\t\t139 / 255,\n\t\t0,\n\t\t139 / 255\n\t],\n\t\"darkolivegreen\": [\n\t\t85 / 255,\n\t\t107 / 255,\n\t\t47 / 255\n\t],\n\t\"darkorange\": [\n\t\t1,\n\t\t140 / 255,\n\t\t0\n\t],\n\t\"darkorchid\": [\n\t\t153 / 255,\n\t\t50 / 255,\n\t\t204 / 255\n\t],\n\t\"darkred\": [\n\t\t139 / 255,\n\t\t0,\n\t\t0\n\t],\n\t\"darksalmon\": [\n\t\t233 / 255,\n\t\t150 / 255,\n\t\t122 / 255\n\t],\n\t\"darkseagreen\": [\n\t\t143 / 255,\n\t\t188 / 255,\n\t\t143 / 255\n\t],\n\t\"darkslateblue\": [\n\t\t72 / 255,\n\t\t61 / 255,\n\t\t139 / 255\n\t],\n\t\"darkslategray\": [\n\t\t47 / 255,\n\t\t79 / 255,\n\t\t79 / 255\n\t],\n\t\"darkslategrey\": [\n\t\t47 / 255,\n\t\t79 / 255,\n\t\t79 / 255\n\t],\n\t\"darkturquoise\": [\n\t\t0,\n\t\t206 / 255,\n\t\t209 / 255\n\t],\n\t\"darkviolet\": [\n\t\t148 / 255,\n\t\t0,\n\t\t211 / 255\n\t],\n\t\"deeppink\": [\n\t\t1,\n\t\t20 / 255,\n\t\t147 / 255\n\t],\n\t\"deepskyblue\": [\n\t\t0,\n\t\t191 / 255,\n\t\t1\n\t],\n\t\"dimgray\": [\n\t\t105 / 255,\n\t\t105 / 255,\n\t\t105 / 255\n\t],\n\t\"dimgrey\": [\n\t\t105 / 255,\n\t\t105 / 255,\n\t\t105 / 255\n\t],\n\t\"dodgerblue\": [\n\t\t30 / 255,\n\t\t144 / 255,\n\t\t1\n\t],\n\t\"firebrick\": [\n\t\t178 / 255,\n\t\t34 / 255,\n\t\t34 / 255\n\t],\n\t\"floralwhite\": [\n\t\t1,\n\t\t250 / 255,\n\t\t240 / 255\n\t],\n\t\"forestgreen\": [\n\t\t34 / 255,\n\t\t139 / 255,\n\t\t34 / 255\n\t],\n\t\"fuchsia\": [\n\t\t1,\n\t\t0,\n\t\t1\n\t],\n\t\"gainsboro\": [\n\t\t220 / 255,\n\t\t220 / 255,\n\t\t220 / 255\n\t],\n\t\"ghostwhite\": [\n\t\t248 / 255,\n\t\t248 / 255,\n\t\t1\n\t],\n\t\"gold\": [\n\t\t1,\n\t\t215 / 255,\n\t\t0\n\t],\n\t\"goldenrod\": [\n\t\t218 / 255,\n\t\t165 / 255,\n\t\t32 / 255\n\t],\n\t\"gray\": [\n\t\t128 / 255,\n\t\t128 / 255,\n\t\t128 / 255\n\t],\n\t\"green\": [\n\t\t0,\n\t\t128 / 255,\n\t\t0\n\t],\n\t\"greenyellow\": [\n\t\t173 / 255,\n\t\t1,\n\t\t47 / 255\n\t],\n\t\"grey\": [\n\t\t128 / 255,\n\t\t128 / 255,\n\t\t128 / 255\n\t],\n\t\"honeydew\": [\n\t\t240 / 255,\n\t\t1,\n\t\t240 / 255\n\t],\n\t\"hotpink\": [\n\t\t1,\n\t\t105 / 255,\n\t\t180 / 255\n\t],\n\t\"indianred\": [\n\t\t205 / 255,\n\t\t92 / 255,\n\t\t92 / 255\n\t],\n\t\"indigo\": [\n\t\t75 / 255,\n\t\t0,\n\t\t130 / 255\n\t],\n\t\"ivory\": [\n\t\t1,\n\t\t1,\n\t\t240 / 255\n\t],\n\t\"khaki\": [\n\t\t240 / 255,\n\t\t230 / 255,\n\t\t140 / 255\n\t],\n\t\"lavender\": [\n\t\t230 / 255,\n\t\t230 / 255,\n\t\t250 / 255\n\t],\n\t\"lavenderblush\": [\n\t\t1,\n\t\t240 / 255,\n\t\t245 / 255\n\t],\n\t\"lawngreen\": [\n\t\t124 / 255,\n\t\t252 / 255,\n\t\t0\n\t],\n\t\"lemonchiffon\": [\n\t\t1,\n\t\t250 / 255,\n\t\t205 / 255\n\t],\n\t\"lightblue\": [\n\t\t173 / 255,\n\t\t216 / 255,\n\t\t230 / 255\n\t],\n\t\"lightcoral\": [\n\t\t240 / 255,\n\t\t128 / 255,\n\t\t128 / 255\n\t],\n\t\"lightcyan\": [\n\t\t224 / 255,\n\t\t1,\n\t\t1\n\t],\n\t\"lightgoldenrodyellow\": [\n\t\t250 / 255,\n\t\t250 / 255,\n\t\t210 / 255\n\t],\n\t\"lightgray\": [\n\t\t211 / 255,\n\t\t211 / 255,\n\t\t211 / 255\n\t],\n\t\"lightgreen\": [\n\t\t144 / 255,\n\t\t238 / 255,\n\t\t144 / 255\n\t],\n\t\"lightgrey\": [\n\t\t211 / 255,\n\t\t211 / 255,\n\t\t211 / 255\n\t],\n\t\"lightpink\": [\n\t\t1,\n\t\t182 / 255,\n\t\t193 / 255\n\t],\n\t\"lightsalmon\": [\n\t\t1,\n\t\t160 / 255,\n\t\t122 / 255\n\t],\n\t\"lightseagreen\": [\n\t\t32 / 255,\n\t\t178 / 255,\n\t\t170 / 255\n\t],\n\t\"lightskyblue\": [\n\t\t135 / 255,\n\t\t206 / 255,\n\t\t250 / 255\n\t],\n\t\"lightslategray\": [\n\t\t119 / 255,\n\t\t136 / 255,\n\t\t153 / 255\n\t],\n\t\"lightslategrey\": [\n\t\t119 / 255,\n\t\t136 / 255,\n\t\t153 / 255\n\t],\n\t\"lightsteelblue\": [\n\t\t176 / 255,\n\t\t196 / 255,\n\t\t222 / 255\n\t],\n\t\"lightyellow\": [\n\t\t1,\n\t\t1,\n\t\t224 / 255\n\t],\n\t\"lime\": [\n\t\t0,\n\t\t1,\n\t\t0\n\t],\n\t\"limegreen\": [\n\t\t50 / 255,\n\t\t205 / 255,\n\t\t50 / 255\n\t],\n\t\"linen\": [\n\t\t250 / 255,\n\t\t240 / 255,\n\t\t230 / 255\n\t],\n\t\"magenta\": [\n\t\t1,\n\t\t0,\n\t\t1\n\t],\n\t\"maroon\": [\n\t\t128 / 255,\n\t\t0,\n\t\t0\n\t],\n\t\"mediumaquamarine\": [\n\t\t102 / 255,\n\t\t205 / 255,\n\t\t170 / 255\n\t],\n\t\"mediumblue\": [\n\t\t0,\n\t\t0,\n\t\t205 / 255\n\t],\n\t\"mediumorchid\": [\n\t\t186 / 255,\n\t\t85 / 255,\n\t\t211 / 255\n\t],\n\t\"mediumpurple\": [\n\t\t147 / 255,\n\t\t112 / 255,\n\t\t219 / 255\n\t],\n\t\"mediumseagreen\": [\n\t\t60 / 255,\n\t\t179 / 255,\n\t\t113 / 255\n\t],\n\t\"mediumslateblue\": [\n\t\t123 / 255,\n\t\t104 / 255,\n\t\t238 / 255\n\t],\n\t\"mediumspringgreen\": [\n\t\t0,\n\t\t250 / 255,\n\t\t154 / 255\n\t],\n\t\"mediumturquoise\": [\n\t\t72 / 255,\n\t\t209 / 255,\n\t\t204 / 255\n\t],\n\t\"mediumvioletred\": [\n\t\t199 / 255,\n\t\t21 / 255,\n\t\t133 / 255\n\t],\n\t\"midnightblue\": [\n\t\t25 / 255,\n\t\t25 / 255,\n\t\t112 / 255\n\t],\n\t\"mintcream\": [\n\t\t245 / 255,\n\t\t1,\n\t\t250 / 255\n\t],\n\t\"mistyrose\": [\n\t\t1,\n\t\t228 / 255,\n\t\t225 / 255\n\t],\n\t\"moccasin\": [\n\t\t1,\n\t\t228 / 255,\n\t\t181 / 255\n\t],\n\t\"navajowhite\": [\n\t\t1,\n\t\t222 / 255,\n\t\t173 / 255\n\t],\n\t\"navy\": [\n\t\t0,\n\t\t0,\n\t\t128 / 255\n\t],\n\t\"oldlace\": [\n\t\t253 / 255,\n\t\t245 / 255,\n\t\t230 / 255\n\t],\n\t\"olive\": [\n\t\t128 / 255,\n\t\t128 / 255,\n\t\t0\n\t],\n\t\"olivedrab\": [\n\t\t107 / 255,\n\t\t142 / 255,\n\t\t35 / 255\n\t],\n\t\"orange\": [\n\t\t1,\n\t\t165 / 255,\n\t\t0\n\t],\n\t\"orangered\": [\n\t\t1,\n\t\t69 / 255,\n\t\t0\n\t],\n\t\"orchid\": [\n\t\t218 / 255,\n\t\t112 / 255,\n\t\t214 / 255\n\t],\n\t\"palegoldenrod\": [\n\t\t238 / 255,\n\t\t232 / 255,\n\t\t170 / 255\n\t],\n\t\"palegreen\": [\n\t\t152 / 255,\n\t\t251 / 255,\n\t\t152 / 255\n\t],\n\t\"paleturquoise\": [\n\t\t175 / 255,\n\t\t238 / 255,\n\t\t238 / 255\n\t],\n\t\"palevioletred\": [\n\t\t219 / 255,\n\t\t112 / 255,\n\t\t147 / 255\n\t],\n\t\"papayawhip\": [\n\t\t1,\n\t\t239 / 255,\n\t\t213 / 255\n\t],\n\t\"peachpuff\": [\n\t\t1,\n\t\t218 / 255,\n\t\t185 / 255\n\t],\n\t\"peru\": [\n\t\t205 / 255,\n\t\t133 / 255,\n\t\t63 / 255\n\t],\n\t\"pink\": [\n\t\t1,\n\t\t192 / 255,\n\t\t203 / 255\n\t],\n\t\"plum\": [\n\t\t221 / 255,\n\t\t160 / 255,\n\t\t221 / 255\n\t],\n\t\"powderblue\": [\n\t\t176 / 255,\n\t\t224 / 255,\n\t\t230 / 255\n\t],\n\t\"purple\": [\n\t\t128 / 255,\n\t\t0,\n\t\t128 / 255\n\t],\n\t\"rebeccapurple\": [\n\t\t102 / 255,\n\t\t51 / 255,\n\t\t153 / 255\n\t],\n\t\"red\": [\n\t\t1,\n\t\t0,\n\t\t0\n\t],\n\t\"rosybrown\": [\n\t\t188 / 255,\n\t\t143 / 255,\n\t\t143 / 255\n\t],\n\t\"royalblue\": [\n\t\t65 / 255,\n\t\t105 / 255,\n\t\t225 / 255\n\t],\n\t\"saddlebrown\": [\n\t\t139 / 255,\n\t\t69 / 255,\n\t\t19 / 255\n\t],\n\t\"salmon\": [\n\t\t250 / 255,\n\t\t128 / 255,\n\t\t114 / 255\n\t],\n\t\"sandybrown\": [\n\t\t244 / 255,\n\t\t164 / 255,\n\t\t96 / 255\n\t],\n\t\"seagreen\": [\n\t\t46 / 255,\n\t\t139 / 255,\n\t\t87 / 255\n\t],\n\t\"seashell\": [\n\t\t1,\n\t\t245 / 255,\n\t\t238 / 255\n\t],\n\t\"sienna\": [\n\t\t160 / 255,\n\t\t82 / 255,\n\t\t45 / 255\n\t],\n\t\"silver\": [\n\t\t192 / 255,\n\t\t192 / 255,\n\t\t192 / 255\n\t],\n\t\"skyblue\": [\n\t\t135 / 255,\n\t\t206 / 255,\n\t\t235 / 255\n\t],\n\t\"slateblue\": [\n\t\t106 / 255,\n\t\t90 / 255,\n\t\t205 / 255\n\t],\n\t\"slategray\": [\n\t\t112 / 255,\n\t\t128 / 255,\n\t\t144 / 255\n\t],\n\t\"slategrey\": [\n\t\t112 / 255,\n\t\t128 / 255,\n\t\t144 / 255\n\t],\n\t\"snow\": [\n\t\t1,\n\t\t250 / 255,\n\t\t250 / 255\n\t],\n\t\"springgreen\": [\n\t\t0,\n\t\t1,\n\t\t127 / 255\n\t],\n\t\"steelblue\": [\n\t\t70 / 255,\n\t\t130 / 255,\n\t\t180 / 255\n\t],\n\t\"tan\": [\n\t\t210 / 255,\n\t\t180 / 255,\n\t\t140 / 255\n\t],\n\t\"teal\": [\n\t\t0,\n\t\t128 / 255,\n\t\t128 / 255\n\t],\n\t\"thistle\": [\n\t\t216 / 255,\n\t\t191 / 255,\n\t\t216 / 255\n\t],\n\t\"tomato\": [\n\t\t1,\n\t\t99 / 255,\n\t\t71 / 255\n\t],\n\t\"turquoise\": [\n\t\t64 / 255,\n\t\t224 / 255,\n\t\t208 / 255\n\t],\n\t\"violet\": [\n\t\t238 / 255,\n\t\t130 / 255,\n\t\t238 / 255\n\t],\n\t\"wheat\": [\n\t\t245 / 255,\n\t\t222 / 255,\n\t\t179 / 255\n\t],\n\t\"white\": [\n\t\t1,\n\t\t1,\n\t\t1\n\t],\n\t\"whitesmoke\": [\n\t\t245 / 255,\n\t\t245 / 255,\n\t\t245 / 255\n\t],\n\t\"yellow\": [\n\t\t1,\n\t\t1,\n\t\t0\n\t],\n\t\"yellowgreen\": [\n\t\t154 / 255,\n\t\t205 / 255,\n\t\t50 / 255\n\t]\n};\nvar coordGrammar = Array(3).fill(\"<percentage> | <number>[0, 255]\");\nvar coordGrammarNumber = Array(3).fill(\"<number>[0, 255]\");\nvar sRGB = new RGBColorSpace({\n\tid: \"srgb\",\n\tname: \"sRGB\",\n\tbase: sRGBLinear,\n\tfromBase: (rgb) => {\n\t\treturn rgb.map((val) => {\n\t\t\tlet sign$1 = val < 0 ? -1 : 1;\n\t\t\tlet abs$1 = val * sign$1;\n\t\t\tif (abs$1 > .0031308) return sign$1 * (1.055 * abs$1 ** (1 / 2.4) - .055);\n\t\t\treturn 12.92 * val;\n\t\t});\n\t},\n\ttoBase: (rgb) => {\n\t\treturn rgb.map((val) => {\n\t\t\tlet sign$1 = val < 0 ? -1 : 1;\n\t\t\tlet abs$1 = val * sign$1;\n\t\t\tif (abs$1 <= .04045) return val / 12.92;\n\t\t\treturn sign$1 * ((abs$1 + .055) / 1.055) ** 2.4;\n\t\t});\n\t},\n\tformats: {\n\t\t\"rgb\": { coords: coordGrammar },\n\t\t\"rgb_number\": {\n\t\t\tname: \"rgb\",\n\t\t\tcommas: true,\n\t\t\tcoords: coordGrammarNumber,\n\t\t\tnoAlpha: true\n\t\t},\n\t\t\"color\": {},\n\t\t\"rgba\": {\n\t\t\tcoords: coordGrammar,\n\t\t\tcommas: true,\n\t\t\tlastAlpha: true\n\t\t},\n\t\t\"rgba_number\": {\n\t\t\tname: \"rgba\",\n\t\t\tcommas: true,\n\t\t\tcoords: coordGrammarNumber\n\t\t},\n\t\t\"hex\": {\n\t\t\ttype: \"custom\",\n\t\t\ttoGamut: true,\n\t\t\ttest: (str) => /^#([a-f0-9]{3,4}){1,2}$/i.test(str),\n\t\t\tparse(str) {\n\t\t\t\tif (str.length <= 5) str = str.replace(/[a-f0-9]/gi, \"$&$&\");\n\t\t\t\tlet rgba = [];\n\t\t\t\tstr.replace(/[a-f0-9]{2}/gi, (component) => {\n\t\t\t\t\trgba.push(parseInt(component, 16) / 255);\n\t\t\t\t});\n\t\t\t\treturn {\n\t\t\t\t\tspaceId: \"srgb\",\n\t\t\t\t\tcoords: rgba.slice(0, 3),\n\t\t\t\t\talpha: rgba.slice(3)[0]\n\t\t\t\t};\n\t\t\t},\n\t\t\tserialize: (coords, alpha, { collapse = true } = {}) => {\n\t\t\t\tif (alpha < 1) coords.push(alpha);\n\t\t\t\tcoords = coords.map((c$1) => Math.round(c$1 * 255));\n\t\t\t\tlet collapsible = collapse && coords.every((c$1) => c$1 % 17 === 0);\n\t\t\t\treturn \"#\" + coords.map((c$1) => {\n\t\t\t\t\tif (collapsible) return (c$1 / 17).toString(16);\n\t\t\t\t\treturn c$1.toString(16).padStart(2, \"0\");\n\t\t\t\t}).join(\"\");\n\t\t\t}\n\t\t},\n\t\t\"keyword\": {\n\t\t\ttype: \"custom\",\n\t\t\ttest: (str) => /^[a-z]+$/i.test(str),\n\t\t\tparse(str) {\n\t\t\t\tstr = str.toLowerCase();\n\t\t\t\tlet ret = {\n\t\t\t\t\tspaceId: \"srgb\",\n\t\t\t\t\tcoords: null,\n\t\t\t\t\talpha: 1\n\t\t\t\t};\n\t\t\t\tif (str === \"transparent\") {\n\t\t\t\t\tret.coords = KEYWORDS.black;\n\t\t\t\t\tret.alpha = 0;\n\t\t\t\t} else ret.coords = KEYWORDS[str];\n\t\t\t\tif (ret.coords) return ret;\n\t\t\t}\n\t\t}\n\t}\n});\nvar P3 = new RGBColorSpace({\n\tid: \"p3\",\n\tcssId: \"display-p3\",\n\tname: \"P3\",\n\tbase: P3Linear,\n\tfromBase: sRGB.fromBase,\n\ttoBase: sRGB.toBase\n});\ndefaults.display_space = sRGB;\nvar supportsNone;\nif (typeof CSS !== \"undefined\" && CSS.supports) for (let space of [\n\tlab,\n\tREC2020,\n\tP3\n]) {\n\tlet str = serialize({\n\t\tspace,\n\t\tcoords: space.getMinCoords(),\n\t\talpha: 1\n\t});\n\tif (CSS.supports(\"color\", str)) {\n\t\tdefaults.display_space = space;\n\t\tbreak;\n\t}\n}\nfunction display(color, { space = defaults.display_space,...options } = {}) {\n\tlet ret = serialize(color, options);\n\tif (typeof CSS === \"undefined\" || CSS.supports(\"color\", ret) || !defaults.display_space) {\n\t\tret = new String(ret);\n\t\tret.color = color;\n\t} else {\n\t\tlet fallbackColor = color;\n\t\tif (color.coords.some(isNone) || isNone(color.alpha)) {\n\t\t\tif (!(supportsNone ??= CSS.supports(\"color\", \"hsl(none 50% 50%)\"))) {\n\t\t\t\tfallbackColor = clone(color);\n\t\t\t\tfallbackColor.coords = fallbackColor.coords.map(skipNone);\n\t\t\t\tfallbackColor.alpha = skipNone(fallbackColor.alpha);\n\t\t\t\tret = serialize(fallbackColor, options);\n\t\t\t\tif (CSS.supports(\"color\", ret)) {\n\t\t\t\t\tret = new String(ret);\n\t\t\t\t\tret.color = fallbackColor;\n\t\t\t\t\treturn ret;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tfallbackColor = to(fallbackColor, space);\n\t\tret = new String(serialize(fallbackColor, options));\n\t\tret.color = fallbackColor;\n\t}\n\treturn ret;\n}\nfunction equals(color1, color2) {\n\tcolor1 = getColor(color1);\n\tcolor2 = getColor(color2);\n\treturn color1.space === color2.space && color1.alpha === color2.alpha && color1.coords.every((c$1, i) => c$1 === color2.coords[i]);\n}\nfunction getLuminance(color) {\n\treturn get(color, [xyz_d65, \"y\"]);\n}\nfunction setLuminance(color, value) {\n\tset(color, [xyz_d65, \"y\"], value);\n}\nfunction register$2(Color$1) {\n\tObject.defineProperty(Color$1.prototype, \"luminance\", {\n\t\tget() {\n\t\t\treturn getLuminance(this);\n\t\t},\n\t\tset(value) {\n\t\t\tsetLuminance(this, value);\n\t\t}\n\t});\n}\nvar luminance = /* @__PURE__ */ Object.freeze({\n\t__proto__: null,\n\tgetLuminance,\n\tregister: register$2,\n\tsetLuminance\n});\nfunction contrastWCAG21(color1, color2) {\n\tcolor1 = getColor(color1);\n\tcolor2 = getColor(color2);\n\tlet Y1 = Math.max(getLuminance(color1), 0);\n\tlet Y2 = Math.max(getLuminance(color2), 0);\n\tif (Y2 > Y1) [Y1, Y2] = [Y2, Y1];\n\treturn (Y1 + .05) / (Y2 + .05);\n}\nvar normBG = .56;\nvar normTXT = .57;\nvar revTXT = .62;\nvar revBG = .65;\nvar blkThrs = .022;\nvar blkClmp = 1.414;\nvar loClip = .1;\nvar deltaYmin = 5e-4;\nvar scaleBoW = 1.14;\nvar loBoWoffset = .027;\nvar scaleWoB = 1.14;\nfunction fclamp(Y) {\n\tif (Y >= blkThrs) return Y;\n\treturn Y + (blkThrs - Y) ** blkClmp;\n}\nfunction linearize(val) {\n\tlet sign$1 = val < 0 ? -1 : 1;\n\tlet abs$1 = Math.abs(val);\n\treturn sign$1 * Math.pow(abs$1, 2.4);\n}\nfunction contrastAPCA(background, foreground) {\n\tforeground = getColor(foreground);\n\tbackground = getColor(background);\n\tlet S;\n\tlet C;\n\tlet Sapc;\n\tlet R, G, B;\n\tforeground = to(foreground, \"srgb\");\n\t[R, G, B] = foreground.coords;\n\tlet lumTxt = linearize(R) * .2126729 + linearize(G) * .7151522 + linearize(B) * .072175;\n\tbackground = to(background, \"srgb\");\n\t[R, G, B] = background.coords;\n\tlet lumBg = linearize(R) * .2126729 + linearize(G) * .7151522 + linearize(B) * .072175;\n\tlet Ytxt = fclamp(lumTxt);\n\tlet Ybg = fclamp(lumBg);\n\tlet BoW = Ybg > Ytxt;\n\tif (Math.abs(Ybg - Ytxt) < deltaYmin) C = 0;\n\telse if (BoW) {\n\t\tS = Ybg ** normBG - Ytxt ** normTXT;\n\t\tC = S * scaleBoW;\n\t} else {\n\t\tS = Ybg ** revBG - Ytxt ** revTXT;\n\t\tC = S * scaleWoB;\n\t}\n\tif (Math.abs(C) < loClip) Sapc = 0;\n\telse if (C > 0) Sapc = C - loBoWoffset;\n\telse Sapc = C + loBoWoffset;\n\treturn Sapc * 100;\n}\nfunction contrastMichelson(color1, color2) {\n\tcolor1 = getColor(color1);\n\tcolor2 = getColor(color2);\n\tlet Y1 = Math.max(getLuminance(color1), 0);\n\tlet Y2 = Math.max(getLuminance(color2), 0);\n\tif (Y2 > Y1) [Y1, Y2] = [Y2, Y1];\n\tlet denom = Y1 + Y2;\n\treturn denom === 0 ? 0 : (Y1 - Y2) / denom;\n}\nvar max$1 = 5e4;\nfunction contrastWeber(color1, color2) {\n\tcolor1 = getColor(color1);\n\tcolor2 = getColor(color2);\n\tlet Y1 = Math.max(getLuminance(color1), 0);\n\tlet Y2 = Math.max(getLuminance(color2), 0);\n\tif (Y2 > Y1) [Y1, Y2] = [Y2, Y1];\n\treturn Y2 === 0 ? max$1 : (Y1 - Y2) / Y2;\n}\nfunction contrastLstar(color1, color2) {\n\tcolor1 = getColor(color1);\n\tcolor2 = getColor(color2);\n\tlet L1 = get(color1, [lab, \"l\"]);\n\tlet L2 = get(color2, [lab, \"l\"]);\n\treturn Math.abs(L1 - L2);\n}\nvar ε$3 = 216 / 24389;\nvar ε3 = 24 / 116;\nvar κ$2 = 24389 / 27;\nvar white$1 = WHITES.D65;\nvar lab_d65 = new ColorSpace({\n\tid: \"lab-d65\",\n\tname: \"Lab D65\",\n\tcoords: {\n\t\tl: {\n\t\t\trefRange: [0, 100],\n\t\t\tname: \"Lightness\"\n\t\t},\n\t\ta: { refRange: [-125, 125] },\n\t\tb: { refRange: [-125, 125] }\n\t},\n\twhite: white$1,\n\tbase: xyz_d65,\n\tfromBase(XYZ) {\n\t\tlet f = XYZ.map((value, i) => value / white$1[i]).map((value) => value > ε$3 ? Math.cbrt(value) : (κ$2 * value + 16) / 116);\n\t\treturn [\n\t\t\t116 * f[1] - 16,\n\t\t\t500 * (f[0] - f[1]),\n\t\t\t200 * (f[1] - f[2])\n\t\t];\n\t},\n\ttoBase(Lab) {\n\t\tlet f = [];\n\t\tf[1] = (Lab[0] + 16) / 116;\n\t\tf[0] = Lab[1] / 500 + f[1];\n\t\tf[2] = f[1] - Lab[2] / 200;\n\t\treturn [\n\t\t\tf[0] > ε3 ? Math.pow(f[0], 3) : (116 * f[0] - 16) / κ$2,\n\t\t\tLab[0] > 8 ? Math.pow((Lab[0] + 16) / 116, 3) : Lab[0] / κ$2,\n\t\t\tf[2] > ε3 ? Math.pow(f[2], 3) : (116 * f[2] - 16) / κ$2\n\t\t].map((value, i) => value * white$1[i]);\n\t},\n\tformats: { \"lab-d65\": { coords: [\n\t\t\"<number> | <percentage>\",\n\t\t\"<number> | <percentage>[-1,1]\",\n\t\t\"<number> | <percentage>[-1,1]\"\n\t] } }\n});\nvar phi = Math.pow(5, .5) * .5 + .5;\nfunction contrastDeltaPhi(color1, color2) {\n\tcolor1 = getColor(color1);\n\tcolor2 = getColor(color2);\n\tlet Lstr1 = get(color1, [lab_d65, \"l\"]);\n\tlet Lstr2 = get(color2, [lab_d65, \"l\"]);\n\tlet deltaPhiStar = Math.abs(Math.pow(Lstr1, phi) - Math.pow(Lstr2, phi));\n\tlet contrast$1 = Math.pow(deltaPhiStar, 1 / phi) * Math.SQRT2 - 40;\n\treturn contrast$1 < 7.5 ? 0 : contrast$1;\n}\nvar contrastMethods = /* @__PURE__ */ Object.freeze({\n\t__proto__: null,\n\tcontrastAPCA,\n\tcontrastDeltaPhi,\n\tcontrastLstar,\n\tcontrastMichelson,\n\tcontrastWCAG21,\n\tcontrastWeber\n});\nfunction contrast(background, foreground, o = {}) {\n\tif (isString(o)) o = { algorithm: o };\n\tlet { algorithm,...rest } = o;\n\tif (!algorithm) {\n\t\tlet algorithms = Object.keys(contrastMethods).map((a$1) => a$1.replace(/^contrast/, \"\")).join(\", \");\n\t\tthrow new TypeError(`contrast() function needs a contrast algorithm. Please specify one of: ${algorithms}`);\n\t}\n\tbackground = getColor(background);\n\tforeground = getColor(foreground);\n\tfor (let a$1 in contrastMethods) if (\"contrast\" + algorithm.toLowerCase() === a$1.toLowerCase()) return contrastMethods[a$1](background, foreground, rest);\n\tthrow new TypeError(`Unknown contrast algorithm: ${algorithm}`);\n}\nfunction uv$1(color) {\n\tlet [X, Y, Z] = getAll(color, xyz_d65);\n\tlet denom = X + 15 * Y + 3 * Z;\n\treturn [4 * X / denom, 9 * Y / denom];\n}\nfunction xy(color) {\n\tlet [X, Y, Z] = getAll(color, xyz_d65);\n\tlet sum = X + Y + Z;\n\treturn [X / sum, Y / sum];\n}\nfunction register$1(Color$1) {\n\tObject.defineProperty(Color$1.prototype, \"uv\", { get() {\n\t\treturn uv$1(this);\n\t} });\n\tObject.defineProperty(Color$1.prototype, \"xy\", { get() {\n\t\treturn xy(this);\n\t} });\n}\nvar chromaticity = /* @__PURE__ */ Object.freeze({\n\t__proto__: null,\n\tregister: register$1,\n\tuv: uv$1,\n\txy\n});\nfunction deltaE(c1$3, c2$3, o = {}) {\n\tif (isString(o)) o = { method: o };\n\tlet { method = defaults.deltaE,...rest } = o;\n\tfor (let m$1 in deltaEMethods) if (\"deltae\" + method.toLowerCase() === m$1.toLowerCase()) return deltaEMethods[m$1](c1$3, c2$3, rest);\n\tthrow new TypeError(`Unknown deltaE method: ${method}`);\n}\nfunction lighten(color, amount = .25) {\n\treturn set(color, [ColorSpace.get(\"oklch\", \"lch\"), \"l\"], (l) => l * (1 + amount));\n}\nfunction darken(color, amount = .25) {\n\treturn set(color, [ColorSpace.get(\"oklch\", \"lch\"), \"l\"], (l) => l * (1 - amount));\n}\nvar variations = /* @__PURE__ */ Object.freeze({\n\t__proto__: null,\n\tdarken,\n\tlighten\n});\nfunction mix$1(c1$3, c2$3, p$1 = .5, o = {}) {\n\t[c1$3, c2$3] = [getColor(c1$3), getColor(c2$3)];\n\tif (type(p$1) === \"object\") [p$1, o] = [.5, p$1];\n\treturn range(c1$3, c2$3, o)(p$1);\n}\nfunction steps(c1$3, c2$3, options = {}) {\n\tlet colorRange;\n\tif (isRange(c1$3)) {\n\t\t[colorRange, options] = [c1$3, c2$3];\n\t\t[c1$3, c2$3] = colorRange.rangeArgs.colors;\n\t}\n\tlet { maxDeltaE, deltaEMethod, steps: steps$1 = 2, maxSteps = 1e3,...rangeOptions } = options;\n\tif (!colorRange) {\n\t\t[c1$3, c2$3] = [getColor(c1$3), getColor(c2$3)];\n\t\tcolorRange = range(c1$3, c2$3, rangeOptions);\n\t}\n\tlet totalDelta = deltaE(c1$3, c2$3);\n\tlet actualSteps = maxDeltaE > 0 ? Math.max(steps$1, Math.ceil(totalDelta / maxDeltaE) + 1) : steps$1;\n\tlet ret = [];\n\tif (maxSteps !== void 0) actualSteps = Math.min(actualSteps, maxSteps);\n\tif (actualSteps === 1) ret = [{\n\t\tp: .5,\n\t\tcolor: colorRange(.5)\n\t}];\n\telse {\n\t\tlet step$1 = 1 / (actualSteps - 1);\n\t\tret = Array.from({ length: actualSteps }, (_, i) => {\n\t\t\tlet p$1 = i * step$1;\n\t\t\treturn {\n\t\t\t\tp: p$1,\n\t\t\t\tcolor: colorRange(p$1)\n\t\t\t};\n\t\t});\n\t}\n\tif (maxDeltaE > 0) {\n\t\tlet maxDelta = ret.reduce((acc, cur, i) => {\n\t\t\tif (i === 0) return 0;\n\t\t\tlet ΔΕ = deltaE(cur.color, ret[i - 1].color, deltaEMethod);\n\t\t\treturn Math.max(acc, ΔΕ);\n\t\t}, 0);\n\t\twhile (maxDelta > maxDeltaE) {\n\t\t\tmaxDelta = 0;\n\t\t\tfor (let i = 1; i < ret.length && ret.length < maxSteps; i++) {\n\t\t\t\tlet prev = ret[i - 1];\n\t\t\t\tlet cur = ret[i];\n\t\t\t\tlet p$1 = (cur.p + prev.p) / 2;\n\t\t\t\tlet color = colorRange(p$1);\n\t\t\t\tmaxDelta = Math.max(maxDelta, deltaE(color, prev.color), deltaE(color, cur.color));\n\t\t\t\tret.splice(i, 0, {\n\t\t\t\t\tp: p$1,\n\t\t\t\t\tcolor: colorRange(p$1)\n\t\t\t\t});\n\t\t\t\ti++;\n\t\t\t}\n\t\t}\n\t}\n\tret = ret.map((a$1) => a$1.color);\n\treturn ret;\n}\nfunction range(color1, color2, options = {}) {\n\tif (isRange(color1)) {\n\t\tlet [r, options$1] = [color1, color2];\n\t\treturn range(...r.rangeArgs.colors, {\n\t\t\t...r.rangeArgs.options,\n\t\t\t...options$1\n\t\t});\n\t}\n\tlet { space, outputSpace, progression, premultiplied } = options;\n\tcolor1 = getColor(color1);\n\tcolor2 = getColor(color2);\n\tcolor1 = clone(color1);\n\tcolor2 = clone(color2);\n\tlet rangeArgs = {\n\t\tcolors: [color1, color2],\n\t\toptions\n\t};\n\tif (space) space = ColorSpace.get(space);\n\telse space = ColorSpace.registry[defaults.interpolationSpace] || color1.space;\n\toutputSpace = outputSpace ? ColorSpace.get(outputSpace) : space;\n\tcolor1 = to(color1, space);\n\tcolor2 = to(color2, space);\n\tcolor1 = toGamut(color1);\n\tcolor2 = toGamut(color2);\n\tif (space.coords.h && space.coords.h.type === \"angle\") {\n\t\tlet arc = options.hue = options.hue || \"shorter\";\n\t\tlet hue = [space, \"h\"];\n\t\tlet [θ1, θ2] = [get(color1, hue), get(color2, hue)];\n\t\tif (isNaN(θ1) && !isNaN(θ2)) θ1 = θ2;\n\t\telse if (isNaN(θ2) && !isNaN(θ1)) θ2 = θ1;\n\t\t[θ1, θ2] = adjust(arc, [θ1, θ2]);\n\t\tset(color1, hue, θ1);\n\t\tset(color2, hue, θ2);\n\t}\n\tif (premultiplied) {\n\t\tcolor1.coords = color1.coords.map((c$1) => c$1 * color1.alpha);\n\t\tcolor2.coords = color2.coords.map((c$1) => c$1 * color2.alpha);\n\t}\n\treturn Object.assign((p$1) => {\n\t\tp$1 = progression ? progression(p$1) : p$1;\n\t\tlet coords = color1.coords.map((start, i) => {\n\t\t\tlet end = color2.coords[i];\n\t\t\treturn interpolate(start, end, p$1);\n\t\t});\n\t\tlet alpha = interpolate(color1.alpha, color2.alpha, p$1);\n\t\tlet ret = {\n\t\t\tspace,\n\t\t\tcoords,\n\t\t\talpha\n\t\t};\n\t\tif (premultiplied) ret.coords = ret.coords.map((c$1) => c$1 / alpha);\n\t\tif (outputSpace !== space) ret = to(ret, outputSpace);\n\t\treturn ret;\n\t}, { rangeArgs });\n}\nfunction isRange(val) {\n\treturn type(val) === \"function\" && !!val.rangeArgs;\n}\ndefaults.interpolationSpace = \"lab\";\nfunction register(Color$1) {\n\tColor$1.defineFunction(\"mix\", mix$1, { returns: \"color\" });\n\tColor$1.defineFunction(\"range\", range, { returns: \"function<color>\" });\n\tColor$1.defineFunction(\"steps\", steps, { returns: \"array<color>\" });\n}\nvar interpolation = /* @__PURE__ */ Object.freeze({\n\t__proto__: null,\n\tisRange,\n\tmix: mix$1,\n\trange,\n\tregister,\n\tsteps\n});\nvar HSL = new ColorSpace({\n\tid: \"hsl\",\n\tname: \"HSL\",\n\tcoords: {\n\t\th: {\n\t\t\trefRange: [0, 360],\n\t\t\ttype: \"angle\",\n\t\t\tname: \"Hue\"\n\t\t},\n\t\ts: {\n\t\t\trange: [0, 100],\n\t\t\tname: \"Saturation\"\n\t\t},\n\t\tl: {\n\t\t\trange: [0, 100],\n\t\t\tname: \"Lightness\"\n\t\t}\n\t},\n\tbase: sRGB,\n\tfromBase: (rgb) => {\n\t\tlet max$2 = Math.max(...rgb);\n\t\tlet min$1 = Math.min(...rgb);\n\t\tlet [r, g$1, b$2] = rgb;\n\t\tlet [h, s, l] = [\n\t\t\tNaN,\n\t\t\t0,\n\t\t\t(min$1 + max$2) / 2\n\t\t];\n\t\tlet d$1 = max$2 - min$1;\n\t\tif (d$1 !== 0) {\n\t\t\ts = l === 0 || l === 1 ? 0 : (max$2 - l) / Math.min(l, 1 - l);\n\t\t\tswitch (max$2) {\n\t\t\t\tcase r:\n\t\t\t\t\th = (g$1 - b$2) / d$1 + (g$1 < b$2 ? 6 : 0);\n\t\t\t\t\tbreak;\n\t\t\t\tcase g$1:\n\t\t\t\t\th = (b$2 - r) / d$1 + 2;\n\t\t\t\t\tbreak;\n\t\t\t\tcase b$2: h = (r - g$1) / d$1 + 4;\n\t\t\t}\n\t\t\th = h * 60;\n\t\t}\n\t\tif (s < 0) {\n\t\t\th += 180;\n\t\t\ts = Math.abs(s);\n\t\t}\n\t\tif (h >= 360) h -= 360;\n\t\treturn [\n\t\t\th,\n\t\t\ts * 100,\n\t\t\tl * 100\n\t\t];\n\t},\n\ttoBase: (hsl) => {\n\t\tlet [h, s, l] = hsl;\n\t\th = h % 360;\n\t\tif (h < 0) h += 360;\n\t\ts /= 100;\n\t\tl /= 100;\n\t\tfunction f(n$2) {\n\t\t\tlet k = (n$2 + h / 30) % 12;\n\t\t\tlet a$1 = s * Math.min(l, 1 - l);\n\t\t\treturn l - a$1 * Math.max(-1, Math.min(k - 3, 9 - k, 1));\n\t\t}\n\t\treturn [\n\t\t\tf(0),\n\t\t\tf(8),\n\t\t\tf(4)\n\t\t];\n\t},\n\tformats: {\n\t\t\"hsl\": { coords: [\n\t\t\t\"<number> | <angle>\",\n\t\t\t\"<percentage>\",\n\t\t\t\"<percentage>\"\n\t\t] },\n\t\t\"hsla\": {\n\t\t\tcoords: [\n\t\t\t\t\"<number> | <angle>\",\n\t\t\t\t\"<percentage>\",\n\t\t\t\t\"<percentage>\"\n\t\t\t],\n\t\t\tcommas: true,\n\t\t\tlastAlpha: true\n\t\t}\n\t}\n});\nvar HSV = new ColorSpace({\n\tid: \"hsv\",\n\tname: \"HSV\",\n\tcoords: {\n\t\th: {\n\t\t\trefRange: [0, 360],\n\t\t\ttype: \"angle\",\n\t\t\tname: \"Hue\"\n\t\t},\n\t\ts: {\n\t\t\trange: [0, 100],\n\t\t\tname: \"Saturation\"\n\t\t},\n\t\tv: {\n\t\t\trange: [0, 100],\n\t\t\tname: \"Value\"\n\t\t}\n\t},\n\tbase: HSL,\n\tfromBase(hsl) {\n\t\tlet [h, s, l] = hsl;\n\t\ts /= 100;\n\t\tl /= 100;\n\t\tlet v = l + s * Math.min(l, 1 - l);\n\t\treturn [\n\t\t\th,\n\t\t\tv === 0 ? 0 : 200 * (1 - l / v),\n\t\t\t100 * v\n\t\t];\n\t},\n\ttoBase(hsv) {\n\t\tlet [h, s, v] = hsv;\n\t\ts /= 100;\n\t\tv /= 100;\n\t\tlet l = v * (1 - s / 2);\n\t\treturn [\n\t\t\th,\n\t\t\tl === 0 || l === 1 ? 0 : (v - l) / Math.min(l, 1 - l) * 100,\n\t\t\tl * 100\n\t\t];\n\t},\n\tformats: { color: {\n\t\tid: \"--hsv\",\n\t\tcoords: [\n\t\t\t\"<number> | <angle>\",\n\t\t\t\"<percentage> | <number>\",\n\t\t\t\"<percentage> | <number>\"\n\t\t]\n\t} }\n});\nvar hwb = new ColorSpace({\n\tid: \"hwb\",\n\tname: \"HWB\",\n\tcoords: {\n\t\th: {\n\t\t\trefRange: [0, 360],\n\t\t\ttype: \"angle\",\n\t\t\tname: \"Hue\"\n\t\t},\n\t\tw: {\n\t\t\trange: [0, 100],\n\t\t\tname: \"Whiteness\"\n\t\t},\n\t\tb: {\n\t\t\trange: [0, 100],\n\t\t\tname: \"Blackness\"\n\t\t}\n\t},\n\tbase: HSV,\n\tfromBase(hsv) {\n\t\tlet [h, s, v] = hsv;\n\t\treturn [\n\t\t\th,\n\t\t\tv * (100 - s) / 100,\n\t\t\t100 - v\n\t\t];\n\t},\n\ttoBase(hwb$1) {\n\t\tlet [h, w, b$2] = hwb$1;\n\t\tw /= 100;\n\t\tb$2 /= 100;\n\t\tlet sum = w + b$2;\n\t\tif (sum >= 1) return [\n\t\t\th,\n\t\t\t0,\n\t\t\tw / sum * 100\n\t\t];\n\t\tlet v = 1 - b$2;\n\t\treturn [\n\t\t\th,\n\t\t\t(v === 0 ? 0 : 1 - w / v) * 100,\n\t\t\tv * 100\n\t\t];\n\t},\n\tformats: { \"hwb\": { coords: [\n\t\t\"<number> | <angle>\",\n\t\t\"<percentage> | <number>\",\n\t\t\"<percentage> | <number>\"\n\t] } }\n});\nvar A98Linear = new RGBColorSpace({\n\tid: \"a98rgb-linear\",\n\tcssId: \"--a98-rgb-linear\",\n\tname: \"Linear Adobe® 98 RGB compatible\",\n\twhite: \"D65\",\n\ttoXYZ_M: [\n\t\t[\n\t\t\t.5766690429101305,\n\t\t\t.1855582379065463,\n\t\t\t.1882286462349947\n\t\t],\n\t\t[\n\t\t\t.29734497525053605,\n\t\t\t.6273635662554661,\n\t\t\t.07529145849399788\n\t\t],\n\t\t[\n\t\t\t.02703136138641234,\n\t\t\t.07068885253582723,\n\t\t\t.9913375368376388\n\t\t]\n\t],\n\tfromXYZ_M: [\n\t\t[\n\t\t\t2.0415879038107465,\n\t\t\t-.5650069742788596,\n\t\t\t-.34473135077832956\n\t\t],\n\t\t[\n\t\t\t-.9692436362808795,\n\t\t\t1.8759675015077202,\n\t\t\t.04155505740717557\n\t\t],\n\t\t[\n\t\t\t.013444280632031142,\n\t\t\t-.11836239223101838,\n\t\t\t1.0151749943912054\n\t\t]\n\t]\n});\nvar a98rgb = new RGBColorSpace({\n\tid: \"a98rgb\",\n\tcssId: \"a98-rgb\",\n\tname: \"Adobe® 98 RGB compatible\",\n\tbase: A98Linear,\n\ttoBase: (RGB) => RGB.map((val) => Math.pow(Math.abs(val), 563 / 256) * Math.sign(val)),\n\tfromBase: (RGB) => RGB.map((val) => Math.pow(Math.abs(val), 256 / 563) * Math.sign(val))\n});\nvar ProPhotoLinear = new RGBColorSpace({\n\tid: \"prophoto-linear\",\n\tcssId: \"--prophoto-rgb-linear\",\n\tname: \"Linear ProPhoto\",\n\twhite: \"D50\",\n\tbase: XYZ_D50,\n\ttoXYZ_M: [\n\t\t[\n\t\t\t.7977666449006423,\n\t\t\t.13518129740053308,\n\t\t\t.0313477341283922\n\t\t],\n\t\t[\n\t\t\t.2880748288194013,\n\t\t\t.711835234241873,\n\t\t\t8993693872564e-17\n\t\t],\n\t\t[\n\t\t\t0,\n\t\t\t0,\n\t\t\t.8251046025104602\n\t\t]\n\t],\n\tfromXYZ_M: [\n\t\t[\n\t\t\t1.3457868816471583,\n\t\t\t-.25557208737979464,\n\t\t\t-.05110186497554526\n\t\t],\n\t\t[\n\t\t\t-.5446307051249019,\n\t\t\t1.5082477428451468,\n\t\t\t.02052744743642139\n\t\t],\n\t\t[\n\t\t\t0,\n\t\t\t0,\n\t\t\t1.2119675456389452\n\t\t]\n\t]\n});\nvar Et = 1 / 512;\nvar Et2 = 16 / 512;\nvar prophoto = new RGBColorSpace({\n\tid: \"prophoto\",\n\tcssId: \"prophoto-rgb\",\n\tname: \"ProPhoto\",\n\tbase: ProPhotoLinear,\n\ttoBase(RGB) {\n\t\treturn RGB.map((v) => v < Et2 ? v / 16 : v ** 1.8);\n\t},\n\tfromBase(RGB) {\n\t\treturn RGB.map((v) => v >= Et ? v ** (1 / 1.8) : 16 * v);\n\t}\n});\nvar oklch = new ColorSpace({\n\tid: \"oklch\",\n\tname: \"Oklch\",\n\tcoords: {\n\t\tl: {\n\t\t\trefRange: [0, 1],\n\t\t\tname: \"Lightness\"\n\t\t},\n\t\tc: {\n\t\t\trefRange: [0, .4],\n\t\t\tname: \"Chroma\"\n\t\t},\n\t\th: {\n\t\t\trefRange: [0, 360],\n\t\t\ttype: \"angle\",\n\t\t\tname: \"Hue\"\n\t\t}\n\t},\n\twhite: \"D65\",\n\tbase: OKLab,\n\tfromBase(oklab) {\n\t\tlet [L, a$1, b$2] = oklab;\n\t\tlet h;\n\t\tconst ε$8 = 2e-4;\n\t\tif (Math.abs(a$1) < ε$8 && Math.abs(b$2) < ε$8) h = NaN;\n\t\telse h = Math.atan2(b$2, a$1) * 180 / Math.PI;\n\t\treturn [\n\t\t\tL,\n\t\t\tMath.sqrt(a$1 ** 2 + b$2 ** 2),\n\t\t\tconstrain(h)\n\t\t];\n\t},\n\ttoBase(oklch$1) {\n\t\tlet [L, C, h] = oklch$1;\n\t\tlet a$1, b$2;\n\t\tif (isNaN(h)) {\n\t\t\ta$1 = 0;\n\t\t\tb$2 = 0;\n\t\t} else {\n\t\t\ta$1 = C * Math.cos(h * Math.PI / 180);\n\t\t\tb$2 = C * Math.sin(h * Math.PI / 180);\n\t\t}\n\t\treturn [\n\t\t\tL,\n\t\t\ta$1,\n\t\t\tb$2\n\t\t];\n\t},\n\tformats: { \"oklch\": { coords: [\n\t\t\"<percentage> | <number>\",\n\t\t\"<number> | <percentage>[0,1]\",\n\t\t\"<number> | <angle>\"\n\t] } }\n});\nvar white = WHITES.D65;\nvar ε$2 = 216 / 24389;\nvar κ$1 = 24389 / 27;\nvar [U_PRIME_WHITE, V_PRIME_WHITE] = uv$1({\n\tspace: xyz_d65,\n\tcoords: white\n});\nvar Luv = new ColorSpace({\n\tid: \"luv\",\n\tname: \"Luv\",\n\tcoords: {\n\t\tl: {\n\t\t\trefRange: [0, 100],\n\t\t\tname: \"Lightness\"\n\t\t},\n\t\tu: { refRange: [-215, 215] },\n\t\tv: { refRange: [-215, 215] }\n\t},\n\twhite,\n\tbase: xyz_d65,\n\tfromBase(XYZ) {\n\t\tlet xyz = [\n\t\t\tskipNone(XYZ[0]),\n\t\t\tskipNone(XYZ[1]),\n\t\t\tskipNone(XYZ[2])\n\t\t];\n\t\tlet y = xyz[1];\n\t\tlet [up, vp] = uv$1({\n\t\t\tspace: xyz_d65,\n\t\t\tcoords: xyz\n\t\t});\n\t\tif (!Number.isFinite(up) || !Number.isFinite(vp)) return [\n\t\t\t0,\n\t\t\t0,\n\t\t\t0\n\t\t];\n\t\tlet L = y <= ε$2 ? κ$1 * y : 116 * Math.cbrt(y) - 16;\n\t\treturn [\n\t\t\tL,\n\t\t\t13 * L * (up - U_PRIME_WHITE),\n\t\t\t13 * L * (vp - V_PRIME_WHITE)\n\t\t];\n\t},\n\ttoBase(Luv$1) {\n\t\tlet [L, u, v] = Luv$1;\n\t\tif (L === 0 || isNone(L)) return [\n\t\t\t0,\n\t\t\t0,\n\t\t\t0\n\t\t];\n\t\tu = skipNone(u);\n\t\tv = skipNone(v);\n\t\tlet up = u / (13 * L) + U_PRIME_WHITE;\n\t\tlet vp = v / (13 * L) + V_PRIME_WHITE;\n\t\tlet y = L <= 8 ? L / κ$1 : Math.pow((L + 16) / 116, 3);\n\t\treturn [\n\t\t\ty * (9 * up / (4 * vp)),\n\t\t\ty,\n\t\t\ty * ((12 - 3 * up - 20 * vp) / (4 * vp))\n\t\t];\n\t},\n\tformats: { color: {\n\t\tid: \"--luv\",\n\t\tcoords: [\n\t\t\t\"<number> | <percentage>\",\n\t\t\t\"<number> | <percentage>[-1,1]\",\n\t\t\t\"<number> | <percentage>[-1,1]\"\n\t\t]\n\t} }\n});\nvar LCHuv = new ColorSpace({\n\tid: \"lchuv\",\n\tname: \"LChuv\",\n\tcoords: {\n\t\tl: {\n\t\t\trefRange: [0, 100],\n\t\t\tname: \"Lightness\"\n\t\t},\n\t\tc: {\n\t\t\trefRange: [0, 220],\n\t\t\tname: \"Chroma\"\n\t\t},\n\t\th: {\n\t\t\trefRange: [0, 360],\n\t\t\ttype: \"angle\",\n\t\t\tname: \"Hue\"\n\t\t}\n\t},\n\tbase: Luv,\n\tfromBase(Luv$1) {\n\t\tlet [L, u, v] = Luv$1;\n\t\tlet hue;\n\t\tconst ε$8 = .02;\n\t\tif (Math.abs(u) < ε$8 && Math.abs(v) < ε$8) hue = NaN;\n\t\telse hue = Math.atan2(v, u) * 180 / Math.PI;\n\t\treturn [\n\t\t\tL,\n\t\t\tMath.sqrt(u ** 2 + v ** 2),\n\t\t\tconstrain(hue)\n\t\t];\n\t},\n\ttoBase(LCH) {\n\t\tlet [Lightness, Chroma, Hue] = LCH;\n\t\tif (Chroma < 0) Chroma = 0;\n\t\tif (isNaN(Hue)) Hue = 0;\n\t\treturn [\n\t\t\tLightness,\n\t\t\tChroma * Math.cos(Hue * Math.PI / 180),\n\t\t\tChroma * Math.sin(Hue * Math.PI / 180)\n\t\t];\n\t},\n\tformats: { color: {\n\t\tid: \"--lchuv\",\n\t\tcoords: [\n\t\t\t\"<number> | <percentage>\",\n\t\t\t\"<number> | <percentage>\",\n\t\t\t\"<number> | <angle>\"\n\t\t]\n\t} }\n});\nvar ε$1 = 216 / 24389;\nvar κ = 24389 / 27;\nvar m_r0 = fromXYZ_M$3[0][0];\nvar m_r1 = fromXYZ_M$3[0][1];\nvar m_r2 = fromXYZ_M$3[0][2];\nvar m_g0 = fromXYZ_M$3[1][0];\nvar m_g1 = fromXYZ_M$3[1][1];\nvar m_g2 = fromXYZ_M$3[1][2];\nvar m_b0 = fromXYZ_M$3[2][0];\nvar m_b1 = fromXYZ_M$3[2][1];\nvar m_b2 = fromXYZ_M$3[2][2];\nfunction distanceFromOriginAngle(slope, intercept, angle) {\n\tconst d$1 = intercept / (Math.sin(angle) - slope * Math.cos(angle));\n\treturn d$1 < 0 ? Infinity : d$1;\n}\nfunction calculateBoundingLines(l) {\n\tconst sub1 = Math.pow(l + 16, 3) / 1560896;\n\tconst sub2 = sub1 > ε$1 ? sub1 : l / κ;\n\tconst s1r = sub2 * (284517 * m_r0 - 94839 * m_r2);\n\tconst s2r = sub2 * (838422 * m_r2 + 769860 * m_r1 + 731718 * m_r0);\n\tconst s3r = sub2 * (632260 * m_r2 - 126452 * m_r1);\n\tconst s1g = sub2 * (284517 * m_g0 - 94839 * m_g2);\n\tconst s2g = sub2 * (838422 * m_g2 + 769860 * m_g1 + 731718 * m_g0);\n\tconst s3g = sub2 * (632260 * m_g2 - 126452 * m_g1);\n\tconst s1b = sub2 * (284517 * m_b0 - 94839 * m_b2);\n\tconst s2b = sub2 * (838422 * m_b2 + 769860 * m_b1 + 731718 * m_b0);\n\tconst s3b = sub2 * (632260 * m_b2 - 126452 * m_b1);\n\treturn {\n\t\tr0s: s1r / s3r,\n\t\tr0i: s2r * l / s3r,\n\t\tr1s: s1r / (s3r + 126452),\n\t\tr1i: (s2r - 769860) * l / (s3r + 126452),\n\t\tg0s: s1g / s3g,\n\t\tg0i: s2g * l / s3g,\n\t\tg1s: s1g / (s3g + 126452),\n\t\tg1i: (s2g - 769860) * l / (s3g + 126452),\n\t\tb0s: s1b / s3b,\n\t\tb0i: s2b * l / s3b,\n\t\tb1s: s1b / (s3b + 126452),\n\t\tb1i: (s2b - 769860) * l / (s3b + 126452)\n\t};\n}\nfunction calcMaxChromaHsluv(lines, h) {\n\tconst hueRad = h / 360 * Math.PI * 2;\n\tconst r0 = distanceFromOriginAngle(lines.r0s, lines.r0i, hueRad);\n\tconst r1 = distanceFromOriginAngle(lines.r1s, lines.r1i, hueRad);\n\tconst g0 = distanceFromOriginAngle(lines.g0s, lines.g0i, hueRad);\n\tconst g1 = distanceFromOriginAngle(lines.g1s, lines.g1i, hueRad);\n\tconst b0 = distanceFromOriginAngle(lines.b0s, lines.b0i, hueRad);\n\tconst b1 = distanceFromOriginAngle(lines.b1s, lines.b1i, hueRad);\n\treturn Math.min(r0, r1, g0, g1, b0, b1);\n}\nvar hsluv = new ColorSpace({\n\tid: \"hsluv\",\n\tname: \"HSLuv\",\n\tcoords: {\n\t\th: {\n\t\t\trefRange: [0, 360],\n\t\t\ttype: \"angle\",\n\t\t\tname: \"Hue\"\n\t\t},\n\t\ts: {\n\t\t\trange: [0, 100],\n\t\t\tname: \"Saturation\"\n\t\t},\n\t\tl: {\n\t\t\trange: [0, 100],\n\t\t\tname: \"Lightness\"\n\t\t}\n\t},\n\tbase: LCHuv,\n\tgamutSpace: sRGB,\n\tfromBase(lch$1) {\n\t\tlet [l, c$1, h] = [\n\t\t\tskipNone(lch$1[0]),\n\t\t\tskipNone(lch$1[1]),\n\t\t\tskipNone(lch$1[2])\n\t\t];\n\t\tlet s;\n\t\tif (l > 99.9999999) {\n\t\t\ts = 0;\n\t\t\tl = 100;\n\t\t} else if (l < 1e-8) {\n\t\t\ts = 0;\n\t\t\tl = 0;\n\t\t} else s = c$1 / calcMaxChromaHsluv(calculateBoundingLines(l), h) * 100;\n\t\treturn [\n\t\t\th,\n\t\t\ts,\n\t\t\tl\n\t\t];\n\t},\n\ttoBase(hsl) {\n\t\tlet [h, s, l] = [\n\t\t\tskipNone(hsl[0]),\n\t\t\tskipNone(hsl[1]),\n\t\t\tskipNone(hsl[2])\n\t\t];\n\t\tlet c$1;\n\t\tif (l > 99.9999999) {\n\t\t\tl = 100;\n\t\t\tc$1 = 0;\n\t\t} else if (l < 1e-8) {\n\t\t\tl = 0;\n\t\t\tc$1 = 0;\n\t\t} else c$1 = calcMaxChromaHsluv(calculateBoundingLines(l), h) / 100 * s;\n\t\treturn [\n\t\t\tl,\n\t\t\tc$1,\n\t\t\th\n\t\t];\n\t},\n\tformats: { color: {\n\t\tid: \"--hsluv\",\n\t\tcoords: [\n\t\t\t\"<number> | <angle>\",\n\t\t\t\"<percentage> | <number>\",\n\t\t\t\"<percentage> | <number>\"\n\t\t]\n\t} }\n});\nfromXYZ_M$3[0][0];\nfromXYZ_M$3[0][1];\nfromXYZ_M$3[0][2];\nfromXYZ_M$3[1][0];\nfromXYZ_M$3[1][1];\nfromXYZ_M$3[1][2];\nfromXYZ_M$3[2][0];\nfromXYZ_M$3[2][1];\nfromXYZ_M$3[2][2];\nfunction distanceFromOrigin(slope, intercept) {\n\treturn Math.abs(intercept) / Math.sqrt(Math.pow(slope, 2) + 1);\n}\nfunction calcMaxChromaHpluv(lines) {\n\tlet r0 = distanceFromOrigin(lines.r0s, lines.r0i);\n\tlet r1 = distanceFromOrigin(lines.r1s, lines.r1i);\n\tlet g0 = distanceFromOrigin(lines.g0s, lines.g0i);\n\tlet g1 = distanceFromOrigin(lines.g1s, lines.g1i);\n\tlet b0 = distanceFromOrigin(lines.b0s, lines.b0i);\n\tlet b1 = distanceFromOrigin(lines.b1s, lines.b1i);\n\treturn Math.min(r0, r1, g0, g1, b0, b1);\n}\nvar hpluv = new ColorSpace({\n\tid: \"hpluv\",\n\tname: \"HPLuv\",\n\tcoords: {\n\t\th: {\n\t\t\trefRange: [0, 360],\n\t\t\ttype: \"angle\",\n\t\t\tname: \"Hue\"\n\t\t},\n\t\ts: {\n\t\t\trange: [0, 100],\n\t\t\tname: \"Saturation\"\n\t\t},\n\t\tl: {\n\t\t\trange: [0, 100],\n\t\t\tname: \"Lightness\"\n\t\t}\n\t},\n\tbase: LCHuv,\n\tgamutSpace: \"self\",\n\tfromBase(lch$1) {\n\t\tlet [l, c$1, h] = [\n\t\t\tskipNone(lch$1[0]),\n\t\t\tskipNone(lch$1[1]),\n\t\t\tskipNone(lch$1[2])\n\t\t];\n\t\tlet s;\n\t\tif (l > 99.9999999) {\n\t\t\ts = 0;\n\t\t\tl = 100;\n\t\t} else if (l < 1e-8) {\n\t\t\ts = 0;\n\t\t\tl = 0;\n\t\t} else s = c$1 / calcMaxChromaHpluv(calculateBoundingLines(l)) * 100;\n\t\treturn [\n\t\t\th,\n\t\t\ts,\n\t\t\tl\n\t\t];\n\t},\n\ttoBase(hsl) {\n\t\tlet [h, s, l] = [\n\t\t\tskipNone(hsl[0]),\n\t\t\tskipNone(hsl[1]),\n\t\t\tskipNone(hsl[2])\n\t\t];\n\t\tlet c$1;\n\t\tif (l > 99.9999999) {\n\t\t\tl = 100;\n\t\t\tc$1 = 0;\n\t\t} else if (l < 1e-8) {\n\t\t\tl = 0;\n\t\t\tc$1 = 0;\n\t\t} else c$1 = calcMaxChromaHpluv(calculateBoundingLines(l)) / 100 * s;\n\t\treturn [\n\t\t\tl,\n\t\t\tc$1,\n\t\t\th\n\t\t];\n\t},\n\tformats: { color: {\n\t\tid: \"--hpluv\",\n\t\tcoords: [\n\t\t\t\"<number> | <angle>\",\n\t\t\t\"<percentage> | <number>\",\n\t\t\t\"<percentage> | <number>\"\n\t\t]\n\t} }\n});\nvar Yw = 203;\nvar n = 2610 / 2 ** 14;\nvar ninv = 2 ** 14 / 2610;\nvar m = 2523 / 2 ** 5;\nvar minv = 2 ** 5 / 2523;\nvar c1 = 3424 / 2 ** 12;\nvar c2 = 2413 / 2 ** 7;\nvar c3 = 2392 / 2 ** 7;\nvar rec2100Pq = new RGBColorSpace({\n\tid: \"rec2100pq\",\n\tcssId: \"rec2100-pq\",\n\tname: \"REC.2100-PQ\",\n\tbase: REC2020Linear,\n\ttoBase(RGB) {\n\t\treturn RGB.map(function(val) {\n\t\t\treturn (Math.max(val ** minv - c1, 0) / (c2 - c3 * val ** minv)) ** ninv * 1e4 / Yw;\n\t\t});\n\t},\n\tfromBase(RGB) {\n\t\treturn RGB.map(function(val) {\n\t\t\tlet x = Math.max(val * Yw / 1e4, 0);\n\t\t\treturn ((c1 + c2 * x ** n) / (1 + c3 * x ** n)) ** m;\n\t\t});\n\t}\n});\nvar a = .17883277;\nvar b = .28466892;\nvar c = .55991073;\nvar scale = 3.7743;\nvar rec2100Hlg = new RGBColorSpace({\n\tid: \"rec2100hlg\",\n\tcssId: \"rec2100-hlg\",\n\tname: \"REC.2100-HLG\",\n\treferred: \"scene\",\n\tbase: REC2020Linear,\n\ttoBase(RGB) {\n\t\treturn RGB.map(function(val) {\n\t\t\tif (val <= .5) return val ** 2 / 3 * scale;\n\t\t\treturn (Math.exp((val - c) / a) + b) / 12 * scale;\n\t\t});\n\t},\n\tfromBase(RGB) {\n\t\treturn RGB.map(function(val) {\n\t\t\tval /= scale;\n\t\t\tif (val <= 1 / 12) return Math.sqrt(3 * val);\n\t\t\treturn a * Math.log(12 * val - b) + c;\n\t\t});\n\t}\n});\nvar CATs = {};\nhooks.add(\"chromatic-adaptation-start\", (env) => {\n\tif (env.options.method) env.M = adapt(env.W1, env.W2, env.options.method);\n});\nhooks.add(\"chromatic-adaptation-end\", (env) => {\n\tif (!env.M) env.M = adapt(env.W1, env.W2, env.options.method);\n});\nfunction defineCAT({ id, toCone_M, fromCone_M }) {\n\tCATs[id] = arguments[0];\n}\nfunction adapt(W1, W2, id = \"Bradford\") {\n\tlet method = CATs[id];\n\tlet [ρs, γs, βs] = multiplyMatrices(method.toCone_M, W1);\n\tlet [ρd, γd, βd] = multiplyMatrices(method.toCone_M, W2);\n\tlet scaled_cone_M = multiplyMatrices([\n\t\t[\n\t\t\tρd / ρs,\n\t\t\t0,\n\t\t\t0\n\t\t],\n\t\t[\n\t\t\t0,\n\t\t\tγd / γs,\n\t\t\t0\n\t\t],\n\t\t[\n\t\t\t0,\n\t\t\t0,\n\t\t\tβd / βs\n\t\t]\n\t], method.toCone_M);\n\treturn multiplyMatrices(method.fromCone_M, scaled_cone_M);\n}\ndefineCAT({\n\tid: \"von Kries\",\n\ttoCone_M: [\n\t\t[\n\t\t\t.40024,\n\t\t\t.7076,\n\t\t\t-.08081\n\t\t],\n\t\t[\n\t\t\t-.2263,\n\t\t\t1.16532,\n\t\t\t.0457\n\t\t],\n\t\t[\n\t\t\t0,\n\t\t\t0,\n\t\t\t.91822\n\t\t]\n\t],\n\tfromCone_M: [\n\t\t[\n\t\t\t1.8599363874558397,\n\t\t\t-1.1293816185800916,\n\t\t\t.21989740959619328\n\t\t],\n\t\t[\n\t\t\t.3611914362417676,\n\t\t\t.6388124632850422,\n\t\t\t-6370596838649899e-21\n\t\t],\n\t\t[\n\t\t\t0,\n\t\t\t0,\n\t\t\t1.0890636230968613\n\t\t]\n\t]\n});\ndefineCAT({\n\tid: \"Bradford\",\n\ttoCone_M: [\n\t\t[\n\t\t\t.8951,\n\t\t\t.2664,\n\t\t\t-.1614\n\t\t],\n\t\t[\n\t\t\t-.7502,\n\t\t\t1.7135,\n\t\t\t.0367\n\t\t],\n\t\t[\n\t\t\t.0389,\n\t\t\t-.0685,\n\t\t\t1.0296\n\t\t]\n\t],\n\tfromCone_M: [\n\t\t[\n\t\t\t.9869929054667121,\n\t\t\t-.14705425642099013,\n\t\t\t.15996265166373122\n\t\t],\n\t\t[\n\t\t\t.4323052697233945,\n\t\t\t.5183602715367774,\n\t\t\t.049291228212855594\n\t\t],\n\t\t[\n\t\t\t-.00852866457517732,\n\t\t\t.04004282165408486,\n\t\t\t.96848669578755\n\t\t]\n\t]\n});\ndefineCAT({\n\tid: \"CAT02\",\n\ttoCone_M: [\n\t\t[\n\t\t\t.7328,\n\t\t\t.4296,\n\t\t\t-.1624\n\t\t],\n\t\t[\n\t\t\t-.7036,\n\t\t\t1.6975,\n\t\t\t.0061\n\t\t],\n\t\t[\n\t\t\t.003,\n\t\t\t.0136,\n\t\t\t.9834\n\t\t]\n\t],\n\tfromCone_M: [\n\t\t[\n\t\t\t1.0961238208355142,\n\t\t\t-.27886900021828726,\n\t\t\t.18274517938277307\n\t\t],\n\t\t[\n\t\t\t.4543690419753592,\n\t\t\t.4735331543074117,\n\t\t\t.07209780371722911\n\t\t],\n\t\t[\n\t\t\t-.009627608738429355,\n\t\t\t-.00569803121611342,\n\t\t\t1.0153256399545427\n\t\t]\n\t]\n});\ndefineCAT({\n\tid: \"CAT16\",\n\ttoCone_M: [\n\t\t[\n\t\t\t.401288,\n\t\t\t.650173,\n\t\t\t-.051461\n\t\t],\n\t\t[\n\t\t\t-.250268,\n\t\t\t1.204414,\n\t\t\t.045854\n\t\t],\n\t\t[\n\t\t\t-.002079,\n\t\t\t.048952,\n\t\t\t.953127\n\t\t]\n\t],\n\tfromCone_M: [\n\t\t[\n\t\t\t1.862067855087233,\n\t\t\t-1.0112546305316845,\n\t\t\t.14918677544445172\n\t\t],\n\t\t[\n\t\t\t.3875265432361372,\n\t\t\t.6214474419314753,\n\t\t\t-.008973985167612521\n\t\t],\n\t\t[\n\t\t\t-.01584149884933386,\n\t\t\t-.03412293802851557,\n\t\t\t1.0499644368778496\n\t\t]\n\t]\n});\nObject.assign(WHITES, {\n\tA: [\n\t\t1.0985,\n\t\t1,\n\t\t.35585\n\t],\n\tC: [\n\t\t.98074,\n\t\t1,\n\t\t1.18232\n\t],\n\tD55: [\n\t\t.95682,\n\t\t1,\n\t\t.92149\n\t],\n\tD75: [\n\t\t.94972,\n\t\t1,\n\t\t1.22638\n\t],\n\tE: [\n\t\t1,\n\t\t1,\n\t\t1\n\t],\n\tF2: [\n\t\t.99186,\n\t\t1,\n\t\t.67393\n\t],\n\tF7: [\n\t\t.95041,\n\t\t1,\n\t\t1.08747\n\t],\n\tF11: [\n\t\t1.00962,\n\t\t1,\n\t\t.6435\n\t]\n});\nWHITES.ACES = [\n\t.32168 / .33767,\n\t1,\n\t.34065 / .33767\n];\nvar ACEScg = new RGBColorSpace({\n\tid: \"acescg\",\n\tcssId: \"--acescg\",\n\tname: \"ACEScg\",\n\tcoords: {\n\t\tr: {\n\t\t\trange: [0, 65504],\n\t\t\tname: \"Red\"\n\t\t},\n\t\tg: {\n\t\t\trange: [0, 65504],\n\t\t\tname: \"Green\"\n\t\t},\n\t\tb: {\n\t\t\trange: [0, 65504],\n\t\t\tname: \"Blue\"\n\t\t}\n\t},\n\treferred: \"scene\",\n\twhite: WHITES.ACES,\n\ttoXYZ_M: [\n\t\t[\n\t\t\t.6624541811085053,\n\t\t\t.13400420645643313,\n\t\t\t.1561876870049078\n\t\t],\n\t\t[\n\t\t\t.27222871678091454,\n\t\t\t.6740817658111484,\n\t\t\t.05368951740793705\n\t\t],\n\t\t[\n\t\t\t-.005574649490394108,\n\t\t\t.004060733528982826,\n\t\t\t1.0103391003129971\n\t\t]\n\t],\n\tfromXYZ_M: [\n\t\t[\n\t\t\t1.6410233796943257,\n\t\t\t-.32480329418479,\n\t\t\t-.23642469523761225\n\t\t],\n\t\t[\n\t\t\t-.6636628587229829,\n\t\t\t1.6153315916573379,\n\t\t\t.016756347685530137\n\t\t],\n\t\t[\n\t\t\t.011721894328375376,\n\t\t\t-.008284441996237409,\n\t\t\t.9883948585390215\n\t\t]\n\t]\n});\nvar ε = 2 ** -16;\nvar ACES_min_nonzero = -.35828683;\nvar ACES_cc_max = (Math.log2(65504) + 9.72) / 17.52;\nvar acescc = new RGBColorSpace({\n\tid: \"acescc\",\n\tcssId: \"--acescc\",\n\tname: \"ACEScc\",\n\tcoords: {\n\t\tr: {\n\t\t\trange: [ACES_min_nonzero, ACES_cc_max],\n\t\t\tname: \"Red\"\n\t\t},\n\t\tg: {\n\t\t\trange: [ACES_min_nonzero, ACES_cc_max],\n\t\t\tname: \"Green\"\n\t\t},\n\t\tb: {\n\t\t\trange: [ACES_min_nonzero, ACES_cc_max],\n\t\t\tname: \"Blue\"\n\t\t}\n\t},\n\treferred: \"scene\",\n\tbase: ACEScg,\n\ttoBase(RGB) {\n\t\tconst low = -5.279999999999999 / 17.52;\n\t\treturn RGB.map(function(val) {\n\t\t\tif (val <= low) return (2 ** (val * 17.52 - 9.72) - ε) * 2;\n\t\t\telse if (val < ACES_cc_max) return 2 ** (val * 17.52 - 9.72);\n\t\t\telse return 65504;\n\t\t});\n\t},\n\tfromBase(RGB) {\n\t\treturn RGB.map(function(val) {\n\t\t\tif (val <= 0) return (Math.log2(ε) + 9.72) / 17.52;\n\t\t\telse if (val < ε) return (Math.log2(ε + val * .5) + 9.72) / 17.52;\n\t\t\telse return (Math.log2(val) + 9.72) / 17.52;\n\t\t});\n\t}\n});\nvar spaces = /* @__PURE__ */ Object.freeze({\n\t__proto__: null,\n\tA98RGB: a98rgb,\n\tA98RGB_Linear: A98Linear,\n\tACEScc: acescc,\n\tACEScg,\n\tCAM16_JMh: cam16,\n\tHCT: hct,\n\tHPLuv: hpluv,\n\tHSL,\n\tHSLuv: hsluv,\n\tHSV,\n\tHWB: hwb,\n\tICTCP: ictcp,\n\tJzCzHz: jzczhz,\n\tJzazbz,\n\tLCH: lch,\n\tLCHuv,\n\tLab: lab,\n\tLab_D65: lab_d65,\n\tLuv,\n\tOKLCH: oklch,\n\tOKLab,\n\tP3,\n\tP3_Linear: P3Linear,\n\tProPhoto: prophoto,\n\tProPhoto_Linear: ProPhotoLinear,\n\tREC_2020: REC2020,\n\tREC_2020_Linear: REC2020Linear,\n\tREC_2100_HLG: rec2100Hlg,\n\tREC_2100_PQ: rec2100Pq,\n\tXYZ_ABS_D65: XYZ_Abs_D65,\n\tXYZ_D50,\n\tXYZ_D65: xyz_d65,\n\tsRGB,\n\tsRGB_Linear: sRGBLinear\n});\nvar Color = class Color {\n\tconstructor(...args) {\n\t\tlet color;\n\t\tif (args.length === 1) color = getColor(args[0]);\n\t\tlet space, coords, alpha;\n\t\tif (color) {\n\t\t\tspace = color.space || color.spaceId;\n\t\t\tcoords = color.coords;\n\t\t\talpha = color.alpha;\n\t\t} else [space, coords, alpha] = args;\n\t\tObject.defineProperty(this, \"space\", {\n\t\t\tvalue: ColorSpace.get(space),\n\t\t\twritable: false,\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true\n\t\t});\n\t\tthis.coords = coords ? coords.slice() : [\n\t\t\t0,\n\t\t\t0,\n\t\t\t0\n\t\t];\n\t\tthis.alpha = alpha > 1 || alpha === void 0 ? 1 : alpha < 0 ? 0 : alpha;\n\t\tfor (let i = 0; i < this.coords.length; i++) if (this.coords[i] === \"NaN\") this.coords[i] = NaN;\n\t\tfor (let id in this.space.coords) Object.defineProperty(this, id, {\n\t\t\tget: () => this.get(id),\n\t\t\tset: (value) => this.set(id, value)\n\t\t});\n\t}\n\tget spaceId() {\n\t\treturn this.space.id;\n\t}\n\tclone() {\n\t\treturn new Color(this.space, this.coords, this.alpha);\n\t}\n\ttoJSON() {\n\t\treturn {\n\t\t\tspaceId: this.spaceId,\n\t\t\tcoords: this.coords,\n\t\t\talpha: this.alpha\n\t\t};\n\t}\n\tdisplay(...args) {\n\t\tlet ret = display(this, ...args);\n\t\tret.color = new Color(ret.color);\n\t\treturn ret;\n\t}\n\tstatic get(color, ...args) {\n\t\tif (color instanceof Color) return color;\n\t\treturn new Color(color, ...args);\n\t}\n\tstatic defineFunction(name, code, o = code) {\n\t\tlet { instance = true, returns } = o;\n\t\tlet func = function(...args) {\n\t\t\tlet ret = code(...args);\n\t\t\tif (returns === \"color\") ret = Color.get(ret);\n\t\t\telse if (returns === \"function<color>\") {\n\t\t\t\tlet f = ret;\n\t\t\t\tret = function(...args$1) {\n\t\t\t\t\tlet ret$1 = f(...args$1);\n\t\t\t\t\treturn Color.get(ret$1);\n\t\t\t\t};\n\t\t\t\tObject.assign(ret, f);\n\t\t\t} else if (returns === \"array<color>\") ret = ret.map((c$1) => Color.get(c$1));\n\t\t\treturn ret;\n\t\t};\n\t\tif (!(name in Color)) Color[name] = func;\n\t\tif (instance) Color.prototype[name] = function(...args) {\n\t\t\treturn func(this, ...args);\n\t\t};\n\t}\n\tstatic defineFunctions(o) {\n\t\tfor (let name in o) Color.defineFunction(name, o[name], o[name]);\n\t}\n\tstatic extend(exports) {\n\t\tif (exports.register) exports.register(Color);\n\t\telse for (let name in exports) Color.defineFunction(name, exports[name]);\n\t}\n};\nColor.defineFunctions({\n\tget,\n\tgetAll,\n\tset,\n\tsetAll,\n\tto,\n\tequals,\n\tinGamut,\n\ttoGamut,\n\tdistance: distance$1,\n\ttoString: serialize\n});\nObject.assign(Color, {\n\tutil,\n\thooks,\n\tWHITES,\n\tSpace: ColorSpace,\n\tspaces: ColorSpace.registry,\n\tparse,\n\tdefaults\n});\nfor (let key of Object.keys(spaces)) ColorSpace.register(spaces[key]);\nfor (let id in ColorSpace.registry) addSpaceAccessors(id, ColorSpace.registry[id]);\nhooks.add(\"colorspace-init-end\", (space) => {\n\taddSpaceAccessors(space.id, space);\n\tspace.aliases?.forEach((alias) => {\n\t\taddSpaceAccessors(alias, space);\n\t});\n});\nfunction addSpaceAccessors(id, space) {\n\tlet propId = id.replace(/-/g, \"_\");\n\tObject.defineProperty(Color.prototype, propId, {\n\t\tget() {\n\t\t\tlet ret = this.getAll(id);\n\t\t\tif (typeof Proxy === \"undefined\") return ret;\n\t\t\treturn new Proxy(ret, {\n\t\t\t\thas: (obj, property) => {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tColorSpace.resolveCoord([space, property]);\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t} catch (e) {}\n\t\t\t\t\treturn Reflect.has(obj, property);\n\t\t\t\t},\n\t\t\t\tget: (obj, property, receiver) => {\n\t\t\t\t\tif (property && typeof property !== \"symbol\" && !(property in obj)) {\n\t\t\t\t\t\tlet { index } = ColorSpace.resolveCoord([space, property]);\n\t\t\t\t\t\tif (index >= 0) return obj[index];\n\t\t\t\t\t}\n\t\t\t\t\treturn Reflect.get(obj, property, receiver);\n\t\t\t\t},\n\t\t\t\tset: (obj, property, value, receiver) => {\n\t\t\t\t\tif (property && typeof property !== \"symbol\" && !(property in obj) || property >= 0) {\n\t\t\t\t\t\tlet { index } = ColorSpace.resolveCoord([space, property]);\n\t\t\t\t\t\tif (index >= 0) {\n\t\t\t\t\t\t\tobj[index] = value;\n\t\t\t\t\t\t\tthis.setAll(id, obj);\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn Reflect.set(obj, property, value, receiver);\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\t\tset(coords) {\n\t\t\tthis.setAll(id, coords);\n\t\t},\n\t\tconfigurable: true,\n\t\tenumerable: true\n\t});\n}\nColor.extend(deltaEMethods);\nColor.extend({ deltaE });\nObject.assign(Color, { deltaEMethods });\nColor.extend(variations);\nColor.extend({ contrast });\nColor.extend(chromaticity);\nColor.extend(luminance);\nColor.extend(interpolation);\nColor.extend(contrastMethods);\nvar reusableVector4 = null;\nvar reusableVector2 = null;\nvar getReusableVector4 = () => {\n\tif (!reusableVector4) reusableVector4 = new Vector4();\n\treturn reusableVector4;\n};\nvar getReusableVector2 = () => {\n\tif (!reusableVector2) reusableVector2 = new Vector2();\n\treturn reusableVector2;\n};\nvar colorSpaceMode = \"p3-linear\";\nconst setColorSpaceMode = (mode) => {\n\tcolorSpaceMode = mode;\n};\nconst transformBoolean = (value) => value ? 1 : -1;\nfunction parseColorChannels(value) {\n\ttry {\n\t\tconst threeColor = new Color(value);\n\t\tconst targetSpace = colorSpaceMode === \"srgb\" ? \"srgb-linear\" : \"p3-linear\";\n\t\tconst coords = threeColor.to(targetSpace).coords;\n\t\treturn {\n\t\t\tr: Number.isFinite(coords?.[0]) ? coords[0] : 0,\n\t\t\tg: Number.isFinite(coords?.[1]) ? coords[1] : 0,\n\t\t\tb: Number.isFinite(coords?.[2]) ? coords[2] : 0,\n\t\t\ta: Number.isFinite(threeColor.alpha) ? threeColor.alpha : 0\n\t\t};\n\t} catch {\n\t\treturn {\n\t\t\tr: 0,\n\t\t\tg: 0,\n\t\t\tb: 0,\n\t\t\ta: 0\n\t\t};\n\t}\n}\nconst transformColor = (value) => {\n\tconst { r, g: g$1, b: b$2, a: a$1 } = parseColorChannels(value);\n\treturn {\n\t\tnode: vec4(r, g$1, b$2, a$1),\n\t\tdata: new Vector4(r, g$1, b$2, a$1)\n\t};\n};\nconst transformColorUpdate = (value) => {\n\tconst { r, g: g$1, b: b$2, a: a$1 } = parseColorChannels(value);\n\treturn getReusableVector4().set(r, g$1, b$2, a$1);\n};\nconst transformPosition = (value) => {\n\tlet x = .5;\n\tlet y = .5;\n\tconst parsePositionValue = (val, isVertical = false) => {\n\t\tif (typeof val === \"number\") return val;\n\t\tconst str = val.toLowerCase().trim();\n\t\tif (isVertical) {\n\t\t\tif (str === \"top\") return 0;\n\t\t\tif (str === \"bottom\") return 1;\n\t\t\tif (str === \"center\") return .5;\n\t\t} else {\n\t\t\tif (str === \"left\") return 0;\n\t\t\tif (str === \"right\") return 1;\n\t\t\tif (str === \"center\") return .5;\n\t\t}\n\t\tconsole.warn(`Invalid position value: ${val}. Defaulting to center.`);\n\t\treturn .5;\n\t};\n\tif (typeof value === \"string\") {\n\t\tconst parts = value.toLowerCase().trim().split(/\\s+/);\n\t\tif (parts.includes(\"left\")) x = 0;\n\t\telse if (parts.includes(\"right\")) x = 1;\n\t\telse if (parts.includes(\"center\") || parts.length === 1 && (parts[0] === \"top\" || parts[0] === \"bottom\")) x = .5;\n\t\tif (parts.includes(\"top\")) y = 0;\n\t\telse if (parts.includes(\"bottom\")) y = 1;\n\t\telse if (parts.includes(\"center\") || parts.length === 1 && (parts[0] === \"left\" || parts[0] === \"right\")) y = .5;\n\t\tif (parts.length === 1 && parts[0] === \"center\") {\n\t\t\tx = .5;\n\t\t\ty = .5;\n\t\t}\n\t} else if (typeof value === \"object\" && value !== null) {\n\t\tx = parsePositionValue(value.x, false);\n\t\ty = parsePositionValue(value.y, true);\n\t} else console.warn(`Invalid position value provided: ${value}. Defaulting to center.`);\n\tconst finalY = 1 - y;\n\treturn {\n\t\tnode: vec2(x, finalY),\n\t\tdata: new Vector2(x, finalY)\n\t};\n};\nconst transformPositionUpdate = (value) => {\n\tlet x = .5;\n\tlet y = .5;\n\tconst parsePositionValue = (val, isVertical = false) => {\n\t\tif (typeof val === \"number\") return val;\n\t\tconst str = val.toLowerCase().trim();\n\t\tif (isVertical) {\n\t\t\tif (str === \"top\") return 0;\n\t\t\tif (str === \"bottom\") return 1;\n\t\t\tif (str === \"center\") return .5;\n\t\t} else {\n\t\t\tif (str === \"left\") return 0;\n\t\t\tif (str === \"right\") return 1;\n\t\t\tif (str === \"center\") return .5;\n\t\t}\n\t\treturn .5;\n\t};\n\tif (typeof value === \"string\") {\n\t\tconst parts = value.toLowerCase().trim().split(/\\s+/);\n\t\tif (parts.includes(\"left\")) x = 0;\n\t\telse if (parts.includes(\"right\")) x = 1;\n\t\telse if (parts.includes(\"center\") || parts.length === 1 && (parts[0] === \"top\" || parts[0] === \"bottom\")) x = .5;\n\t\tif (parts.includes(\"top\")) y = 0;\n\t\telse if (parts.includes(\"bottom\")) y = 1;\n\t\telse if (parts.includes(\"center\") || parts.length === 1 && (parts[0] === \"left\" || parts[0] === \"right\")) y = .5;\n\t\tif (parts.length === 1 && parts[0] === \"center\") {\n\t\t\tx = .5;\n\t\t\ty = .5;\n\t\t}\n\t} else if (typeof value === \"object\" && value !== null) {\n\t\tx = parsePositionValue(value.x, false);\n\t\ty = parsePositionValue(value.y, true);\n\t}\n\treturn getReusableVector2().set(x, 1 - y);\n};\nconst transformAngle = (value) => {\n\tif (typeof value === \"number\") return (value % 360 + 360) % 360;\n\tconst str = value.toLowerCase().trim();\n\tswitch (str) {\n\t\tcase \"to right\": return 0;\n\t\tcase \"to bottom\": return 90;\n\t\tcase \"to left\": return 180;\n\t\tcase \"to top\": return 270;\n\t\tcase \"to bottom right\":\n\t\tcase \"to right bottom\": return 45;\n\t\tcase \"to bottom left\":\n\t\tcase \"to left bottom\": return 135;\n\t\tcase \"to top left\":\n\t\tcase \"to left top\": return 225;\n\t\tcase \"to top right\":\n\t\tcase \"to right top\": return 315;\n\t\tcase \"from left\": return 0;\n\t\tcase \"from top\": return 90;\n\t\tcase \"from right\": return 180;\n\t\tcase \"from bottom\": return 270;\n\t\tcase \"from top left\": return 45;\n\t\tcase \"from top right\": return 135;\n\t\tcase \"from bottom right\": return 225;\n\t\tcase \"from bottom left\": return 315;\n\t\tdefault:\n\t\t\tconst numMatch = str.match(/^(-?\\d*\\.?\\d+)(deg|rad|turn)?$/);\n\t\t\tif (numMatch) {\n\t\t\t\tconst [, valueStr, unit = \"deg\"] = numMatch;\n\t\t\t\tconst numValue = parseFloat(valueStr);\n\t\t\t\tswitch (unit) {\n\t\t\t\t\tcase \"deg\": return (numValue % 360 + 360) % 360;\n\t\t\t\t\tcase \"rad\": return (numValue * 180 / Math.PI % 360 + 360) % 360;\n\t\t\t\t\tcase \"turn\": return (numValue * 360 % 360 + 360) % 360;\n\t\t\t\t\tdefault: return (numValue % 360 + 360) % 360;\n\t\t\t\t}\n\t\t\t}\n\t\t\tconsole.warn(`Invalid angle value: ${value}. Defaulting to 0 degrees.`);\n\t\t\treturn 0;\n\t}\n};\nconst transformEdges = (value) => {\n\tconst mode = {\n\t\t\"stretch\": 0,\n\t\t\"transparent\": 1,\n\t\t\"mirror\": 2,\n\t\t\"wrap\": 3\n\t}[value.toLowerCase()];\n\tif (mode === void 0) {\n\t\tconsole.warn(`Invalid edge mode: ${value}. Defaulting to 'stretch'.`);\n\t\treturn 0;\n\t}\n\treturn mode;\n};\nconst colorSpaceOptions = [\n\t{\n\t\tlabel: \"Linear RGB\",\n\t\tvalue: \"linear\"\n\t},\n\t{\n\t\tlabel: \"OKLCh\",\n\t\tvalue: \"oklch\"\n\t},\n\t{\n\t\tlabel: \"OKLAB\",\n\t\tvalue: \"oklab\"\n\t},\n\t{\n\t\tlabel: \"HSL\",\n\t\tvalue: \"hsl\"\n\t},\n\t{\n\t\tlabel: \"HSV\",\n\t\tvalue: \"hsv\"\n\t},\n\t{\n\t\tlabel: \"LCH\",\n\t\tvalue: \"lch\"\n\t}\n];\nconst transformColorSpace = (value) => {\n\tconst mode = {\n\t\t\"linear\": 0,\n\t\t\"oklch\": 1,\n\t\t\"oklab\": 2,\n\t\t\"hsl\": 3,\n\t\t\"hsv\": 4,\n\t\t\"lch\": 5\n\t}[value.toLowerCase()];\n\tif (mode === void 0) {\n\t\tconsole.warn(`Invalid color space mode: ${value}. Defaulting to 'linear'.`);\n\t\treturn 0;\n\t}\n\treturn mode;\n};\nexport { transformColor as a, transformEdges as c, transformBoolean as i, transformPosition as l, setColorSpaceMode as n, transformColorSpace as o, transformAngle as r, transformColorUpdate as s, colorSpaceOptions as t, transformPositionUpdate as u };\n","import { vec3, vec4 } from \"three/tsl\";\nconst unpremultiplyAlpha = (color) => {\n\tconst alpha = color.a;\n\treturn vec4(alpha.greaterThan(.001).select(color.rgb.div(alpha), vec3(0, 0, 0)), alpha);\n};\nexport { unpremultiplyAlpha as t };\n","import { l as transformPosition } from \"./transformations-CJcUeZIC.js\";\nimport { t as unpremultiplyAlpha } from \"./alpha-C4ptedXe.js\";\nimport { Fn, convertToTexture, cos, float, screenUV, sin, vec2, vec4, viewportSize } from \"three/tsl\";\nvar rawWeights = Array.from({ length: 32 }, (_, i) => {\n\tconst t = (i / 31 - .5) * 2;\n\treturn Math.exp(-.5 * t * t / .64);\n});\nvar wSum = rawWeights.reduce((a, b) => a + b);\nvar blurWeights = rawWeights.map((w) => w / wSum);\nconst componentDefinition = {\n\tname: \"AngularBlur\",\n\tcategory: \"Blurs\",\n\tdescription: \"Radial motion blur rotating around a center point\",\n\trequiresRTT: true,\n\trequiresChild: true,\n\tprops: {\n\t\tintensity: {\n\t\t\tdefault: 20,\n\t\t\tdescription: \"Intensity of the angular blur effect\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 100,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Blur Intensity\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tcenter: {\n\t\t\tdefault: {\n\t\t\t\tx: .5,\n\t\t\t\ty: .5\n\t\t\t},\n\t\t\ttransform: transformPosition,\n\t\t\tdescription: \"The center point of the rotation\",\n\t\t\tui: {\n\t\t\t\ttype: \"position\",\n\t\t\t\tlabel: \"Center Position\",\n\t\t\t\tgroup: \"Position\"\n\t\t\t}\n\t\t}\n\t},\n\tfragmentNode: ({ uniforms, childNode, onCleanup }) => {\n\t\tif (!childNode) return vec4(0, 0, 0, 0);\n\t\tconst childTexture = convertToTexture(childNode);\n\t\tonCleanup(() => {\n\t\t\tif (childTexture?.renderTarget?.dispose) childTexture.renderTarget.dispose();\n\t\t});\n\t\tconst center = vec2(uniforms.center.uniform.x, uniforms.center.uniform.y.oneMinus());\n\t\tconst angleStep = uniforms.intensity.uniform.mul(.005).div(float(31));\n\t\tconst aspect = viewportSize.x.div(viewportSize.y);\n\t\tconst cosStep = cos(angleStep);\n\t\tconst sinStep = sin(angleStep);\n\t\treturn Fn(() => {\n\t\t\tconst initialCoord = screenUV.sub(center);\n\t\t\tconst aspectCorrectedCoord = vec2(initialCoord.x.mul(aspect), initialCoord.y);\n\t\t\tconst total = vec4(0).toVar();\n\t\t\tconst curCos = float(1).toVar();\n\t\t\tconst curSin = float(0).toVar();\n\t\t\tfor (let i = 0; i < 32; i++) {\n\t\t\t\tconst rotatedX = aspectCorrectedCoord.x.mul(curCos).sub(aspectCorrectedCoord.y.mul(curSin));\n\t\t\t\tconst rotatedY = aspectCorrectedCoord.x.mul(curSin).add(aspectCorrectedCoord.y.mul(curCos));\n\t\t\t\tconst sampleCoord = vec2(rotatedX.div(aspect), rotatedY).add(center);\n\t\t\t\ttotal.assign(total.add(childTexture.sample(sampleCoord).mul(float(blurWeights[i]))));\n\t\t\t\tconst nextCos = curCos.mul(cosStep).sub(curSin.mul(sinStep));\n\t\t\t\tconst nextSin = curSin.mul(cosStep).add(curCos.mul(sinStep));\n\t\t\t\tcurCos.assign(nextCos);\n\t\t\t\tcurSin.assign(nextSin);\n\t\t\t}\n\t\t\treturn unpremultiplyAlpha(total);\n\t\t})();\n\t}\n};\nvar AngularBlur_default = componentDefinition;\nexport { componentDefinition as n, AngularBlur_default as t };\n","import { t as unpremultiplyAlpha } from \"./alpha-C4ptedXe.js\";\nimport { DataTexture, NearestFilter, RGBAFormat, UnsignedByteType } from \"three\";\nimport { abs, any, clamp, convertToTexture, dot, float, floor, fract, greaterThan, or, pow, screenUV, select, texture, uniform, vec2, vec3, vec4, viewportSize } from \"three/tsl\";\nconst componentDefinition = {\n\tname: \"Ascii\",\n\tcategory: \"Stylize\",\n\tdescription: \"Convert imagery to ASCII character art\",\n\trequiresRTT: true,\n\trequiresChild: true,\n\tprops: {\n\t\tcharacters: {\n\t\t\tdefault: \"@%#*+=-:.\",\n\t\t\tdescription: \"Characters ordered from dense to sparse. First character is used for bright areas, last for dark areas.\",\n\t\t\tui: {\n\t\t\t\ttype: \"text\",\n\t\t\t\tlabel: \"Characters\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tcellSize: {\n\t\t\tdefault: 30,\n\t\t\tdescription: \"Size of each ASCII character cell (normalized to 1080p reference, scales proportionally at other resolutions)\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 8,\n\t\t\t\tmax: 100,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Cell Size\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tfontFamily: {\n\t\t\tdefault: \"JetBrains Mono\",\n\t\t\tdescription: \"Font family for characters\",\n\t\t\tui: {\n\t\t\t\ttype: \"select\",\n\t\t\t\toptions: [\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Azeret Mono\",\n\t\t\t\t\t\tvalue: \"Azeret Mono\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Courier Prime\",\n\t\t\t\t\t\tvalue: \"Courier Prime\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Cutive Mono\",\n\t\t\t\t\t\tvalue: \"Cutive Mono\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Fira Code\",\n\t\t\t\t\t\tvalue: \"Fira Code\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Geist Mono\",\n\t\t\t\t\t\tvalue: \"Geist Mono\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"IBM Plex Mono\",\n\t\t\t\t\t\tvalue: \"IBM Plex Mono\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"JetBrains Mono\",\n\t\t\t\t\t\tvalue: \"JetBrains Mono\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Major Mono Display\",\n\t\t\t\t\t\tvalue: \"Major Mono Display\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Martian Mono\",\n\t\t\t\t\t\tvalue: \"Martian Mono\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Nova Mono\",\n\t\t\t\t\t\tvalue: \"Nova Mono\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Press Start 2P\",\n\t\t\t\t\t\tvalue: \"Press Start 2P\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Roboto Mono\",\n\t\t\t\t\t\tvalue: \"Roboto Mono\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Share Tech Mono\",\n\t\t\t\t\t\tvalue: \"Share Tech Mono\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Silkscreen\",\n\t\t\t\t\t\tvalue: \"Silkscreen\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Source Code Pro\",\n\t\t\t\t\t\tvalue: \"Source Code Pro\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Space Mono\",\n\t\t\t\t\t\tvalue: \"Space Mono\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Syne Mono\",\n\t\t\t\t\t\tvalue: \"Syne Mono\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"VT323\",\n\t\t\t\t\t\tvalue: \"VT323\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Xanh Mono\",\n\t\t\t\t\t\tvalue: \"Xanh Mono\"\n\t\t\t\t\t}\n\t\t\t\t],\n\t\t\t\tlabel: \"Font Family\",\n\t\t\t\tgroup: \"Appearance\"\n\t\t\t}\n\t\t},\n\t\tspacing: {\n\t\t\tdefault: 1,\n\t\t\tdescription: \"Character size within each cell (1.0 = optimal size, 0.0 = smallest)\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .05,\n\t\t\t\tlabel: \"Character Size\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t},\n\t\t\ttransform: (value) => .1 + value * 1.4\n\t\t},\n\t\tgamma: {\n\t\t\tdefault: 1,\n\t\t\tdescription: \"Brightness curve adjustment. <1 brightens darks (more light characters), >1 darkens midtones (more dark characters). Use to better fit characters to image brightness range.\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: .25,\n\t\t\t\tmax: 3,\n\t\t\t\tstep: .05,\n\t\t\t\tlabel: \"Gamma\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\talphaThreshold: {\n\t\t\tdefault: 0,\n\t\t\tdescription: \"Pixels with alpha below this threshold become fully transparent.\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Alpha Threshold\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tpreserveAlpha: {\n\t\t\tdefault: true,\n\t\t\tdescription: \"When enabled, output alpha matches input alpha. When disabled, pixels above the alpha threshold become fully opaque.\",\n\t\t\tui: {\n\t\t\t\ttype: \"checkbox\",\n\t\t\t\tlabel: \"Preserve Alpha\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t},\n\t\t\ttransform: (value) => value ? 1 : 0\n\t\t}\n\t},\n\tfragmentNode: ({ uniforms, childNode, onCleanup, onBeforeRender }) => {\n\t\tif (!childNode) return vec4(0, 0, 0, 0);\n\t\tconst childTexture = convertToTexture(childNode);\n\t\tonCleanup(() => {\n\t\t\tif (childTexture?.renderTarget?.dispose) childTexture.renderTarget.dispose();\n\t\t});\n\t\tconst ATLAS_TEXTURE_SIZE = 2048;\n\t\tconst GOOGLE_FONTS_MAP = {\n\t\t\t\"JetBrains Mono\": \"JetBrains+Mono\",\n\t\t\t\"Fira Code\": \"Fira+Code\",\n\t\t\t\"Source Code Pro\": \"Source+Code+Pro\",\n\t\t\t\"IBM Plex Mono\": \"IBM+Plex+Mono\",\n\t\t\t\"Space Mono\": \"Space+Mono\",\n\t\t\t\"Roboto Mono\": \"Roboto+Mono\",\n\t\t\t\"Courier Prime\": \"Courier+Prime\",\n\t\t\t\"Geist Mono\": \"Geist+Mono\",\n\t\t\t\"VT323\": \"VT323\",\n\t\t\t\"Press Start 2P\": \"Press+Start+2P\",\n\t\t\t\"Silkscreen\": \"Silkscreen\",\n\t\t\t\"Major Mono Display\": \"Major+Mono+Display\",\n\t\t\t\"Syne Mono\": \"Syne+Mono\",\n\t\t\t\"Nova Mono\": \"Nova+Mono\",\n\t\t\t\"Xanh Mono\": \"Xanh+Mono\",\n\t\t\t\"Cutive Mono\": \"Cutive+Mono\",\n\t\t\t\"Share Tech Mono\": \"Share+Tech+Mono\",\n\t\t\t\"Martian Mono\": \"Martian+Mono\",\n\t\t\t\"Azeret Mono\": \"Azeret+Mono\"\n\t\t};\n\t\tconst loadedFonts = /* @__PURE__ */ new Set();\n\t\tasync function loadGoogleFont(fontFamily) {\n\t\t\tif (loadedFonts.has(fontFamily)) return;\n\t\t\tif (!GOOGLE_FONTS_MAP[fontFamily]) return;\n\t\t\tconst googleFontName = GOOGLE_FONTS_MAP[fontFamily];\n\t\t\tif (!document.querySelector(`link[href*=\"${googleFontName}\"]`)) {\n\t\t\t\tconst link = document.createElement(\"link\");\n\t\t\t\tlink.rel = \"stylesheet\";\n\t\t\t\tlink.href = `https://fonts.googleapis.com/css2?family=${googleFontName}:wght@400&display=swap`;\n\t\t\t\tdocument.head.appendChild(link);\n\t\t\t}\n\t\t\ttry {\n\t\t\t\tif (document.fonts && document.fonts.load) {\n\t\t\t\t\tconst specs = [\n\t\t\t\t\t\t`400 12px \"${fontFamily}\"`,\n\t\t\t\t\t\t`12px \"${fontFamily}\"`,\n\t\t\t\t\t\t`400 12px ${fontFamily}`,\n\t\t\t\t\t\t`12px ${fontFamily}`\n\t\t\t\t\t];\n\t\t\t\t\tfor (const spec of specs) try {\n\t\t\t\t\t\tawait document.fonts.load(spec);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t} catch (e) {}\n\t\t\t\t\tawait new Promise((resolve) => setTimeout(resolve, 500));\n\t\t\t\t\tloadedFonts.add(fontFamily);\n\t\t\t\t} else {\n\t\t\t\t\tawait new Promise((resolve) => setTimeout(resolve, 1e3));\n\t\t\t\t\tloadedFonts.add(fontFamily);\n\t\t\t\t}\n\t\t\t} catch (error) {}\n\t\t}\n\t\tlet reusableCanvas = null;\n\t\tlet reusableCtx = null;\n\t\tlet reusableDataBuffer = null;\n\t\tconst createCharacterAtlas = async (characters, cellSize, fontFamily, spacing) => {\n\t\t\tif (!characters || characters.length === 0) throw new Error(\"Characters string cannot be empty\");\n\t\t\tconst charCount$1 = characters.length;\n\t\t\tconst atlasSize$1 = Math.max(2, Math.ceil(Math.sqrt(charCount$1)));\n\t\t\tconst baseAtlasCellSize = 128;\n\t\t\tconst spacingMultiplier = Math.max(1, 2 / spacing);\n\t\t\tconst actualCellSize = Math.min(baseAtlasCellSize * spacingMultiplier, ATLAS_TEXTURE_SIZE / atlasSize$1);\n\t\t\tconst fontSize = actualCellSize * .75;\n\t\t\tif (!reusableCanvas) {\n\t\t\t\treusableCanvas = document.createElement(\"canvas\");\n\t\t\t\treusableCanvas.width = ATLAS_TEXTURE_SIZE;\n\t\t\t\treusableCanvas.height = ATLAS_TEXTURE_SIZE;\n\t\t\t\treusableCtx = reusableCanvas.getContext(\"2d\", { willReadFrequently: true });\n\t\t\t\tif (!reusableCtx) {\n\t\t\t\t\tconsole.error(\"[Ascii] Failed to create 2D canvas context for character atlas\");\n\t\t\t\t\tthrow new Error(\"Ascii shader: Canvas 2D context unavailable\");\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (!reusableCtx) {\n\t\t\t\tconsole.error(\"[Ascii] Canvas context unexpectedly null during atlas creation\");\n\t\t\t\tthrow new Error(\"Ascii shader: Canvas 2D context unavailable\");\n\t\t\t}\n\t\t\tconst ctx = reusableCtx;\n\t\t\tctx.clearRect(0, 0, ATLAS_TEXTURE_SIZE, ATLAS_TEXTURE_SIZE);\n\t\t\tctx.fillStyle = \"#ffffff\";\n\t\t\tctx.font = `${fontSize}px \"${fontFamily}\", ${fontFamily}, monospace`;\n\t\t\tif (!ctx.font.includes(fontFamily) && !ctx.font.includes(\"IBM\") && !ctx.font.includes(\"Plex\")) ctx.font = `${fontSize}px ${fontFamily}, monospace`;\n\t\t\tctx.textAlign = \"center\";\n\t\t\tctx.textBaseline = \"middle\";\n\t\t\tfor (let i = 0; i < charCount$1; i++) {\n\t\t\t\tconst char = characters[i];\n\t\t\t\tconst row = Math.floor(i / atlasSize$1);\n\t\t\t\tconst x = i % atlasSize$1 * actualCellSize + actualCellSize / 2;\n\t\t\t\tconst y = row * actualCellSize + actualCellSize / 2;\n\t\t\t\tctx.fillText(char, x, y);\n\t\t\t}\n\t\t\tconst imageData = ctx.getImageData(0, 0, ATLAS_TEXTURE_SIZE, ATLAS_TEXTURE_SIZE);\n\t\t\tif (!reusableDataBuffer) reusableDataBuffer = new Uint8Array(ATLAS_TEXTURE_SIZE * ATLAS_TEXTURE_SIZE * 4);\n\t\t\treusableDataBuffer.set(imageData.data);\n\t\t\treturn {\n\t\t\t\tdata: reusableDataBuffer,\n\t\t\t\twidth: ATLAS_TEXTURE_SIZE,\n\t\t\t\theight: ATLAS_TEXTURE_SIZE,\n\t\t\t\tatlasSize: atlasSize$1,\n\t\t\t\tcellSize,\n\t\t\t\tcharCount: charCount$1,\n\t\t\t\tcharacters,\n\t\t\t\tfontFamily,\n\t\t\t\tuvScale: atlasSize$1 * actualCellSize / ATLAS_TEXTURE_SIZE\n\t\t\t};\n\t\t};\n\t\tconst defaultCharacters = componentDefinition.props.characters.default;\n\t\tconst defaultCellSize = componentDefinition.props.cellSize.default;\n\t\tconst defaultFontFamily = componentDefinition.props.fontFamily.default;\n\t\tconst defaultSpacing = componentDefinition.props.spacing.transform ? componentDefinition.props.spacing.transform(componentDefinition.props.spacing.default) : componentDefinition.props.spacing.default;\n\t\tconst initialCharacters = uniforms?.characters?.uniform?.value ?? defaultCharacters;\n\t\tconst initialCellSize = uniforms?.cellSize?.uniform?.value ?? defaultCellSize;\n\t\tconst initialFontFamily = uniforms?.fontFamily?.uniform?.value ?? defaultFontFamily;\n\t\tconst initialSpacing = uniforms?.spacing?.uniform?.value ?? defaultSpacing;\n\t\tlet atlasData = {\n\t\t\tdata: new Uint8Array(ATLAS_TEXTURE_SIZE * ATLAS_TEXTURE_SIZE * 4),\n\t\t\twidth: ATLAS_TEXTURE_SIZE,\n\t\t\theight: ATLAS_TEXTURE_SIZE,\n\t\t\tatlasSize: 3,\n\t\t\tcellSize: initialCellSize,\n\t\t\tcharCount: initialCharacters.length,\n\t\t\tcharacters: initialCharacters,\n\t\t\tfontFamily: initialFontFamily,\n\t\t\tuvScale: 1\n\t\t};\n\t\tconst atlasTexture = new DataTexture(atlasData.data, ATLAS_TEXTURE_SIZE, ATLAS_TEXTURE_SIZE, RGBAFormat, UnsignedByteType);\n\t\tatlasTexture.minFilter = NearestFilter;\n\t\tatlasTexture.magFilter = NearestFilter;\n\t\tatlasTexture.generateMipmaps = false;\n\t\tatlasTexture.needsUpdate = true;\n\t\tconst atlasField = texture(atlasTexture);\n\t\tconst charCountUniform = uniform(atlasData.charCount);\n\t\tconst cellSizeUniform = uniform(atlasData.cellSize);\n\t\tconst atlasScaleUniform = uniform(atlasData.uvScale);\n\t\tconst atlasSizeUniform = uniform(atlasData.atlasSize);\n\t\tlet lastCharacters = initialCharacters;\n\t\tlet lastCellSize = initialCellSize;\n\t\tlet lastFontFamily = initialFontFamily;\n\t\tlet lastSpacing = initialSpacing;\n\t\tconst initializeAtlas = async () => {\n\t\t\tconst currentCharacters = uniforms?.characters?.uniform?.value ?? lastCharacters;\n\t\t\tconst currentCellSize = uniforms?.cellSize?.uniform?.value ?? lastCellSize;\n\t\t\tconst currentFontFamily = uniforms?.fontFamily?.uniform?.value ?? lastFontFamily;\n\t\t\tconst currentSpacing = uniforms?.spacing?.uniform?.value ?? lastSpacing;\n\t\t\tatlasData = await createCharacterAtlas(currentCharacters, currentCellSize, currentFontFamily, currentSpacing);\n\t\t\tatlasTexture.image.data = atlasData.data;\n\t\t\tatlasTexture.needsUpdate = true;\n\t\t\tcharCountUniform.value = atlasData.charCount;\n\t\t\tcellSizeUniform.value = atlasData.cellSize;\n\t\t\tatlasScaleUniform.value = atlasData.uvScale;\n\t\t\tatlasSizeUniform.value = atlasData.atlasSize;\n\t\t\tlastCharacters = currentCharacters;\n\t\t\tlastCellSize = currentCellSize;\n\t\t\tlastFontFamily = currentFontFamily;\n\t\t\tlastSpacing = currentSpacing;\n\t\t};\n\t\tsetTimeout(() => {\n\t\t\tinitializeAtlas().catch((error) => {\n\t\t\t\tconsole.error(\"Failed to initialize atlas:\", error);\n\t\t\t});\n\t\t\tloadGoogleFont(uniforms?.fontFamily?.uniform?.value ?? initialFontFamily).then(() => {\n\t\t\t\tinitializeAtlas().catch((error) => {\n\t\t\t\t\tconsole.error(\"Failed to update atlas with custom font:\", error);\n\t\t\t\t});\n\t\t\t}).catch((error) => {\n\t\t\t\tconsole.error(\"Failed to load font:\", error);\n\t\t\t});\n\t\t}, 0);\n\t\tlet lastUpdateTime = 0;\n\t\tlet isUpdating = false;\n\t\tonBeforeRender(() => {\n\t\t\tconst now = Date.now();\n\t\t\tif (now - lastUpdateTime < 16 || isUpdating) return;\n\t\t\tconst currentCharacters = uniforms.characters?.uniform?.value ?? lastCharacters;\n\t\t\tconst currentCellSize = uniforms.cellSize?.uniform?.value ?? lastCellSize;\n\t\t\tconst currentFontFamily = uniforms.fontFamily?.uniform?.value ?? lastFontFamily;\n\t\t\tconst currentSpacing = uniforms.spacing?.uniform?.value ?? lastSpacing;\n\t\t\tif (!currentCharacters || currentCharacters.length === 0) return;\n\t\t\tif (currentCharacters !== lastCharacters || currentCellSize !== lastCellSize || currentFontFamily !== lastFontFamily || currentSpacing !== lastSpacing) {\n\t\t\t\tlastUpdateTime = now;\n\t\t\t\tisUpdating = true;\n\t\t\t\tcreateCharacterAtlas(currentCharacters, currentCellSize, currentFontFamily, currentSpacing).then((newAtlasData) => {\n\t\t\t\t\tatlasData = newAtlasData;\n\t\t\t\t\tatlasTexture.image.data = atlasData.data;\n\t\t\t\t\tatlasTexture.needsUpdate = true;\n\t\t\t\t\tcharCountUniform.value = atlasData.charCount;\n\t\t\t\t\tcellSizeUniform.value = atlasData.cellSize;\n\t\t\t\t\tatlasScaleUniform.value = atlasData.uvScale;\n\t\t\t\t\tatlasSizeUniform.value = atlasData.atlasSize;\n\t\t\t\t\tlastCharacters = currentCharacters;\n\t\t\t\t\tlastCellSize = currentCellSize;\n\t\t\t\t\tlastFontFamily = currentFontFamily;\n\t\t\t\t\tlastSpacing = currentSpacing;\n\t\t\t\t\tisUpdating = false;\n\t\t\t\t}).catch((error) => {\n\t\t\t\t\tconsole.error(\"Failed to update atlas:\", error);\n\t\t\t\t\tisUpdating = false;\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t\tonCleanup(() => {\n\t\t\tatlasTexture.dispose();\n\t\t\tif (reusableCanvas) {\n\t\t\t\treusableCanvas.width = 0;\n\t\t\t\treusableCanvas.height = 0;\n\t\t\t\treusableCanvas = null;\n\t\t\t\treusableCtx = null;\n\t\t\t}\n\t\t\treusableDataBuffer = null;\n\t\t});\n\t\tconst defaultGamma = componentDefinition.props.gamma.default;\n\t\tconst defaultAlphaThreshold = componentDefinition.props.alphaThreshold.default;\n\t\tconst defaultPreserveAlpha = componentDefinition.props.preserveAlpha.transform ? componentDefinition.props.preserveAlpha.transform(componentDefinition.props.preserveAlpha.default) : componentDefinition.props.preserveAlpha.default ? 1 : 0;\n\t\tconst gammaUniform = uniforms.gamma?.uniform ?? uniform(defaultGamma);\n\t\tconst alphaThresholdUniform = uniforms.alphaThreshold?.uniform ?? uniform(defaultAlphaThreshold);\n\t\tconst preserveAlphaUniform = uniforms.preserveAlpha?.uniform ?? uniform(defaultPreserveAlpha);\n\t\tconst scaleFactor = viewportSize.y.div(1080);\n\t\tconst effectiveCellSize = cellSizeUniform.mul(scaleFactor);\n\t\tconst mainGridSize = viewportSize.div(effectiveCellSize);\n\t\tconst gridCoords = screenUV.mul(mainGridSize);\n\t\tconst cellCoords = floor(gridCoords);\n\t\tconst rawCellUV = fract(gridCoords);\n\t\tconst characterSize = uniforms.spacing?.uniform ?? uniform(initialSpacing);\n\t\tconst center = vec2(.5);\n\t\tconst centeredUV = rawCellUV.sub(center);\n\t\tconst cellUV = centeredUV.div(characterSize).add(center);\n\t\tconst isOutsideBounds = any(greaterThan(abs(centeredUV), vec2(characterSize.mul(.5))));\n\t\tconst cellCenter = cellCoords.add(vec2(.5)).div(mainGridSize);\n\t\tconst cellColor = unpremultiplyAlpha(childTexture.sample(cellCenter));\n\t\tconst adjustedBrightness = pow(dot(cellColor.rgb, vec3(.299, .587, .114)), gammaUniform);\n\t\tconst charCount = charCountUniform;\n\t\tconst charIndex = clamp(floor(float(1).sub(adjustedBrightness).mul(charCount)), 0, charCount.sub(1));\n\t\tconst atlasSize = atlasSizeUniform;\n\t\tconst atlasCol = charIndex.mod(atlasSize);\n\t\tconst atlasRow = floor(charIndex.div(atlasSize));\n\t\tconst atlasCellSize = float(1).div(atlasSize).mul(atlasScaleUniform);\n\t\tconst atlasSampleUV = vec2(atlasCol, atlasRow).mul(atlasCellSize).add(cellUV.mul(atlasCellSize));\n\t\tconst asciiChar = atlasField.sample(atlasSampleUV);\n\t\tconst isBackground = dot(asciiChar.rgb, vec3(.299, .587, .114)).lessThan(.1);\n\t\tconst sourceAlpha = cellColor.a;\n\t\tconst isBelowThreshold = sourceAlpha.lessThan(alphaThresholdUniform);\n\t\tconst outputAlpha = select(preserveAlphaUniform.greaterThan(.5), sourceAlpha, float(1));\n\t\tconst finalAlpha = select(or(or(isBackground, isOutsideBounds), isBelowThreshold), float(0), outputAlpha);\n\t\treturn vec4(asciiChar.rgb.mul(cellColor.rgb), finalAlpha);\n\t}\n};\nvar Ascii_default = componentDefinition;\nexport { componentDefinition as n, Ascii_default as t };\n","import { abs, atan, cos, float, max, min, mod, pow, sign, sin, sqrt, vec3, vec4 } from \"three/tsl\";\nvar EPSILON = float(1e-4);\nvar PI_OVER_3 = 1.0471975512;\nvar LAB_DELTA = float(6 / 29);\nvar LAB_KAPPA = float(500);\nvar LAB_LAMBDA = float(200);\nvar p3ToSRGB = (p3) => {\n\treturn vec3(p3.x.mul(1.2249401).sub(p3.y.mul(.2249404)).sub(p3.z.mul(0)), p3.x.mul(-.0420569).add(p3.y.mul(1.0420571)).add(p3.z.mul(0)), p3.x.mul(-.0196376).sub(p3.y.mul(.0786361)).add(p3.z.mul(1.0982735)));\n};\nvar sRGBToP3 = (srgb) => {\n\treturn vec3(srgb.x.mul(.8224621).add(srgb.y.mul(.177538)).add(srgb.z.mul(0)), srgb.x.mul(.0331941).add(srgb.y.mul(.9668058)).add(srgb.z.mul(0)), srgb.x.mul(.0170826).add(srgb.y.mul(.0723974)).add(srgb.z.mul(.9105199)));\n};\nvar rgbToOklab = (rgb) => {\n\tconst r = rgb.x;\n\tconst g = rgb.y;\n\tconst b = rgb.z;\n\tconst l = r.mul(.4122214708).add(g.mul(.5363325363)).add(b.mul(.0514459929));\n\tconst m = r.mul(.2119034982).add(g.mul(.6806995451).add(b.mul(.1073969566)));\n\tconst s = r.mul(.0883024619).add(g.mul(.2817188376)).add(b.mul(.6299787005));\n\tconst l_ = sign(l).mul(pow(abs(l), float(1 / 3)));\n\tconst m_ = sign(m).mul(pow(abs(m), float(1 / 3)));\n\tconst s_ = sign(s).mul(pow(abs(s), float(1 / 3)));\n\treturn vec3(l_.mul(.2104542553).add(m_.mul(.793617785)).sub(s_.mul(.0040720468)), l_.mul(1.9779984951).sub(m_.mul(2.428592205)).add(s_.mul(.4505937099)), l_.mul(.0259040371).add(m_.mul(.7827717662)).sub(s_.mul(.808675766)));\n};\nvar oklabToRgb = (lab) => {\n\tconst L = lab.x;\n\tconst a = lab.y;\n\tconst b = lab.z;\n\tconst l_ = L.add(a.mul(.3963377774)).add(b.mul(.2158037573));\n\tconst m_ = L.sub(a.mul(.1055613458)).sub(b.mul(.0638541728));\n\tconst s_ = L.sub(a.mul(.0894841775)).sub(b.mul(1.291485548));\n\tconst l = pow(l_, float(3));\n\tconst m = pow(m_, float(3));\n\tconst s = pow(s_, float(3));\n\treturn vec3(l.mul(4.0767416621).sub(m.mul(3.3077115913)).add(s.mul(.2309699292)), l.mul(-1.2684380046).add(m.mul(2.6097574011)).sub(s.mul(.3413193965)), l.mul(-.0041960863).sub(m.mul(.7034186147)).add(s.mul(1.707614701)));\n};\nvar oklabToOklch = (lab) => {\n\tconst L = lab.x;\n\tconst a = lab.y;\n\tconst b = lab.z;\n\treturn vec3(L, sqrt(a.mul(a).add(b.mul(b))), atan(b, a));\n};\nvar oklchToOklab = (lch) => {\n\tconst L = lch.x;\n\tconst C = lch.y;\n\tconst h = lch.z;\n\treturn vec3(L, C.mul(cos(h)), C.mul(sin(h)));\n};\nvar selectRGBBySector = (c, x, sector) => {\n\tconst isSector0 = sector.lessThan(float(1));\n\tconst isSector1 = sector.greaterThanEqual(float(1)).and(sector.lessThan(float(2)));\n\tconst isSector2 = sector.greaterThanEqual(float(2)).and(sector.lessThan(float(3)));\n\tconst isSector3 = sector.greaterThanEqual(float(3)).and(sector.lessThan(float(4)));\n\tconst isSector4 = sector.greaterThanEqual(float(4)).and(sector.lessThan(float(5)));\n\treturn {\n\t\tr: isSector0.select(c, isSector1.select(x, isSector2.select(float(0), isSector3.select(float(0), isSector4.select(x, c))))),\n\t\tg: isSector0.select(x, isSector1.select(c, isSector2.select(c, isSector3.select(x, isSector4.select(float(0), float(0)))))),\n\t\tb: isSector0.select(float(0), isSector1.select(float(0), isSector2.select(x, isSector3.select(c, isSector4.select(c, x)))))\n\t};\n};\nvar rgbToHsl = (rgb) => {\n\tconst r = rgb.x;\n\tconst g = rgb.y;\n\tconst b = rgb.z;\n\tconst maxVal = max(max(r, g), b);\n\tconst minVal = min(min(r, g), b);\n\tconst delta = maxVal.sub(minVal);\n\tconst l = maxVal.add(minVal).mul(.5);\n\tconst satDenom = float(1).sub(abs(l.mul(2).sub(1))).max(EPSILON);\n\tconst s = delta.div(satDenom);\n\tconst isRMax = maxVal.equal(r);\n\tconst isGMax = maxVal.equal(g);\n\tconst hueR = g.sub(b).div(delta.max(EPSILON));\n\tconst hueG = float(2).add(b.sub(r).div(delta.max(EPSILON)));\n\tconst hueB = float(4).add(r.sub(g).div(delta.max(EPSILON)));\n\treturn vec3(isRMax.select(hueR, isGMax.select(hueG, hueB)).mul(PI_OVER_3), s, l);\n};\nvar hslToRgb = (hsl) => {\n\tconst h = hsl.x;\n\tconst s = hsl.y;\n\tconst l = hsl.z;\n\tconst c = s.mul(float(1).sub(abs(l.mul(2).sub(1))));\n\tconst hPrime = h.div(PI_OVER_3);\n\tconst x = c.mul(float(1).sub(abs(mod(hPrime, float(2)).sub(1))));\n\tconst m = l.sub(c.mul(.5));\n\tconst rgb = selectRGBBySector(c, x, hPrime.floor());\n\treturn vec3(rgb.r.add(m), rgb.g.add(m), rgb.b.add(m));\n};\nvar rgbToHsv = (rgb) => {\n\tconst r = rgb.x;\n\tconst g = rgb.y;\n\tconst b = rgb.z;\n\tconst maxVal = max(max(r, g), b);\n\tconst minVal = min(min(r, g), b);\n\tconst delta = maxVal.sub(minVal);\n\tconst v = maxVal;\n\tconst s = delta.div(maxVal.max(EPSILON));\n\tconst isRMax = maxVal.equal(r);\n\tconst isGMax = maxVal.equal(g);\n\tconst hueR = g.sub(b).div(delta.max(EPSILON));\n\tconst hueG = float(2).add(b.sub(r).div(delta.max(EPSILON)));\n\tconst hueB = float(4).add(r.sub(g).div(delta.max(EPSILON)));\n\treturn vec3(isRMax.select(hueR, isGMax.select(hueG, hueB)).mul(PI_OVER_3), s, v);\n};\nvar hsvToRgb = (hsv) => {\n\tconst h = hsv.x;\n\tconst s = hsv.y;\n\tconst v = hsv.z;\n\tconst c = v.mul(s);\n\tconst hPrime = h.div(PI_OVER_3);\n\tconst x = c.mul(float(1).sub(abs(mod(hPrime, float(2)).sub(1))));\n\tconst m = v.sub(c);\n\tconst rgb = selectRGBBySector(c, x, hPrime.floor());\n\treturn vec3(rgb.r.add(m), rgb.g.add(m), rgb.b.add(m));\n};\nvar rgbToLab = (rgb) => {\n\tconst r = rgb.x;\n\tconst g = rgb.y;\n\tconst b = rgb.z;\n\tconst x = r.mul(.4124564).add(g.mul(.3575761)).add(b.mul(.1804375));\n\tconst y = r.mul(.2126729).add(g.mul(.7151522)).add(b.mul(.072175));\n\tconst z = r.mul(.0193339).add(g.mul(.119192)).add(b.mul(.9503041));\n\tconst xn = x.div(.95047);\n\tconst yn = y.div(1);\n\tconst zn = z.div(1.08883);\n\tconst delta3 = LAB_DELTA.mul(LAB_DELTA).mul(LAB_DELTA);\n\tconst slope = float(1).div(float(3).mul(LAB_DELTA).mul(LAB_DELTA));\n\tconst offset = float(4 / 29);\n\tconst fx = xn.greaterThan(delta3).select(pow(xn, float(1 / 3)), xn.mul(slope).add(offset));\n\tconst fy = yn.greaterThan(delta3).select(pow(yn, float(1 / 3)), yn.mul(slope).add(offset));\n\tconst fz = zn.greaterThan(delta3).select(pow(zn, float(1 / 3)), zn.mul(slope).add(offset));\n\treturn vec3(fy.mul(116).sub(16), fx.sub(fy).mul(LAB_KAPPA), fy.sub(fz).mul(LAB_LAMBDA));\n};\nvar labToRgb = (lab) => {\n\tconst L = lab.x;\n\tconst a = lab.y;\n\tconst b = lab.z;\n\tconst fy = L.add(16).div(116);\n\tconst fx = a.div(LAB_KAPPA).add(fy);\n\tconst fz = fy.sub(b.div(LAB_LAMBDA));\n\tconst slope = float(3).mul(LAB_DELTA).mul(LAB_DELTA);\n\tconst offset = float(4 / 29);\n\tconst xn = fx.greaterThan(LAB_DELTA).select(pow(fx, float(3)), fx.sub(offset).mul(slope));\n\tconst yn = fy.greaterThan(LAB_DELTA).select(pow(fy, float(3)), fy.sub(offset).mul(slope));\n\tconst zn = fz.greaterThan(LAB_DELTA).select(pow(fz, float(3)), fz.sub(offset).mul(slope));\n\tconst x = xn.mul(.95047);\n\tconst y = yn.mul(1);\n\tconst z = zn.mul(1.08883);\n\treturn vec3(x.mul(3.2404542).sub(y.mul(1.5371385)).sub(z.mul(.4985314)), x.mul(-.969266).add(y.mul(1.8760108)).add(z.mul(.041556)), x.mul(.0556434).sub(y.mul(.2040259)).add(z.mul(1.0572252)));\n};\nvar labToLch = (lab) => {\n\tconst L = lab.x;\n\tconst a = lab.y;\n\tconst b = lab.z;\n\treturn vec3(L, sqrt(a.mul(a).add(b.mul(b))), atan(b, a));\n};\nvar lchToLab = (lch) => {\n\tconst L = lch.x;\n\tconst C = lch.y;\n\tconst h = lch.z;\n\treturn vec3(L, C.mul(cos(h)), C.mul(sin(h)));\n};\nconst mixColors = (colorA, colorB, t, colorSpaceMode) => {\n\tconst p3A = vec3(colorA.x, colorA.y, colorA.z);\n\tconst p3B = vec3(colorB.x, colorB.y, colorB.z);\n\tconst alphaA = colorA.w;\n\tconst alphaB = colorB.w;\n\tconst weightA = alphaA.mul(float(1).sub(t));\n\tconst weightB = alphaB.mul(t);\n\tconst totalWeight = weightA.add(weightB);\n\tconst safeWeight = max(totalWeight, float(.001));\n\tconst alphaWeightedMix = (rgbA, rgbB) => {\n\t\treturn rgbA.mul(weightA).add(rgbB.mul(weightB)).div(safeWeight);\n\t};\n\tconst alpha = totalWeight;\n\tswitch (colorSpaceMode) {\n\t\tcase 1: {\n\t\t\tconst srgbA = p3ToSRGB(p3A);\n\t\t\tconst srgbB = p3ToSRGB(p3B);\n\t\t\tconst oklabA = rgbToOklab(srgbA);\n\t\t\tconst oklabB = rgbToOklab(srgbB);\n\t\t\tconst rgb = sRGBToP3(oklabToRgb(oklchToOklab(alphaWeightedMix(oklabToOklch(oklabA), oklabToOklch(oklabB)))));\n\t\t\treturn vec4(rgb.x, rgb.y, rgb.z, alpha);\n\t\t}\n\t\tcase 2: {\n\t\t\tconst srgbA = p3ToSRGB(p3A);\n\t\t\tconst srgbB = p3ToSRGB(p3B);\n\t\t\tconst rgb = sRGBToP3(oklabToRgb(alphaWeightedMix(rgbToOklab(srgbA), rgbToOklab(srgbB))));\n\t\t\treturn vec4(rgb.x, rgb.y, rgb.z, alpha);\n\t\t}\n\t\tcase 3: {\n\t\t\tconst srgbA = p3ToSRGB(p3A);\n\t\t\tconst srgbB = p3ToSRGB(p3B);\n\t\t\tconst rgb = sRGBToP3(hslToRgb(alphaWeightedMix(rgbToHsl(srgbA), rgbToHsl(srgbB))));\n\t\t\treturn vec4(rgb.x, rgb.y, rgb.z, alpha);\n\t\t}\n\t\tcase 4: {\n\t\t\tconst srgbA = p3ToSRGB(p3A);\n\t\t\tconst srgbB = p3ToSRGB(p3B);\n\t\t\tconst rgb = sRGBToP3(hsvToRgb(alphaWeightedMix(rgbToHsv(srgbA), rgbToHsv(srgbB))));\n\t\t\treturn vec4(rgb.x, rgb.y, rgb.z, alpha);\n\t\t}\n\t\tcase 5: {\n\t\t\tconst srgbA = p3ToSRGB(p3A);\n\t\t\tconst srgbB = p3ToSRGB(p3B);\n\t\t\tconst labA = rgbToLab(srgbA);\n\t\t\tconst labB = rgbToLab(srgbB);\n\t\t\tconst rgb = sRGBToP3(labToRgb(lchToLab(alphaWeightedMix(labToLch(labA), labToLch(labB)))));\n\t\t\treturn vec4(rgb.x, rgb.y, rgb.z, alpha);\n\t\t}\n\t\tdefault: {\n\t\t\tconst rgb = alphaWeightedMix(p3A, p3B);\n\t\t\treturn vec4(rgb.x, rgb.y, rgb.z, alpha);\n\t\t}\n\t}\n};\nexport { mixColors as t };\n","import { uniform } from \"three/tsl\";\nvar accumulatedTimeCache = /* @__PURE__ */ new WeakMap();\nconst createAnimatedTime = (params, speedUniform, seedUniform) => {\n\tlet accumulatedTime = accumulatedTimeCache.get(speedUniform);\n\tif (!accumulatedTime) {\n\t\taccumulatedTime = uniform(0);\n\t\taccumulatedTimeCache.set(speedUniform, accumulatedTime);\n\t}\n\tparams.onBeforeRender(({ deltaTime }) => {\n\t\taccumulatedTime.value += deltaTime * speedUniform.uniform.value;\n\t});\n\tif (seedUniform) return accumulatedTime.add(seedUniform.uniform);\n\treturn accumulatedTime;\n};\nexport { createAnimatedTime as t };\n","import { a as transformColor, l as transformPosition, o as transformColorSpace, t as colorSpaceOptions } from \"./transformations-CJcUeZIC.js\";\nimport { t as mixColors } from \"./colorMixing-BPpDnR5I.js\";\nimport { t as createAnimatedTime } from \"./time-DUqSFWvT.js\";\nimport { Fn, clamp, exp, float, fract, mix, mx_noise_float, pow, screenUV, sin, smoothstep, vec2, vec3, vec4, viewportSize } from \"three/tsl\";\nconst componentDefinition = {\n\tname: \"Aurora\",\n\tcategory: \"Textures\",\n\tdescription: \"Mesmerizing aurora borealis with layered curtains, vertical rays, and flowing light.\",\n\tprops: {\n\t\tcolorA: {\n\t\t\tdefault: \"#a533f8\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Edge color at the curtain base\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Color A\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tcolorB: {\n\t\t\tdefault: \"#22ee88\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Core color in the bright center\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Color B\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tcolorC: {\n\t\t\tdefault: \"#1694e8\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Tip color at the ray ends\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Color C\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tcolorSpace: {\n\t\t\tdefault: \"linear\",\n\t\t\ttransform: transformColorSpace,\n\t\t\tcompileTime: true,\n\t\t\tdescription: \"Color space for color interpolation\",\n\t\t\tui: {\n\t\t\t\ttype: \"select\",\n\t\t\t\toptions: colorSpaceOptions,\n\t\t\t\tlabel: \"Color Space\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tbalance: {\n\t\t\tdefault: 50,\n\t\t\tdescription: \"Shifts color distribution across the curtain height\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 100,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Balance\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tintensity: {\n\t\t\tdefault: 80,\n\t\t\tdescription: \"Overall aurora brightness\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 100,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Intensity\",\n\t\t\t\tgroup: \"Aurora\"\n\t\t\t}\n\t\t},\n\t\tcurtainCount: {\n\t\t\tdefault: 4,\n\t\t\tcompileTime: true,\n\t\t\tdescription: \"Number of aurora curtain layers\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 1,\n\t\t\t\tmax: 4,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Curtains\",\n\t\t\t\tgroup: \"Aurora\"\n\t\t\t}\n\t\t},\n\t\tspeed: {\n\t\t\tdefault: 5,\n\t\t\tdescription: \"Animation speed\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: -10,\n\t\t\t\tmax: 10,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Speed\",\n\t\t\t\tgroup: \"Aurora\"\n\t\t\t}\n\t\t},\n\t\twaviness: {\n\t\t\tdefault: 50,\n\t\t\tdescription: \"How much the curtains undulate\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 200,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Waviness\",\n\t\t\t\tgroup: \"Aurora\"\n\t\t\t}\n\t\t},\n\t\trayDensity: {\n\t\t\tdefault: 20,\n\t\t\tdescription: \"Density of vertical ray structures\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 100,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Ray Detail\",\n\t\t\t\tgroup: \"Aurora\"\n\t\t\t}\n\t\t},\n\t\theight: {\n\t\t\tdefault: 120,\n\t\t\tdescription: \"How tall the aurora extends\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 10,\n\t\t\t\tmax: 200,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Height\",\n\t\t\t\tgroup: \"Scene\"\n\t\t\t}\n\t\t},\n\t\tcenter: {\n\t\t\tdefault: {\n\t\t\t\tx: .5,\n\t\t\t\ty: 0\n\t\t\t},\n\t\t\ttransform: transformPosition,\n\t\t\tdescription: \"Center position of the aurora\",\n\t\t\tui: {\n\t\t\t\ttype: \"position\",\n\t\t\t\tlabel: \"Center\",\n\t\t\t\tgroup: \"Scene\"\n\t\t\t}\n\t\t},\n\t\tseed: {\n\t\t\tdefault: 0,\n\t\t\tdescription: \"Random seed for variation\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 100,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Seed\",\n\t\t\t\tgroup: \"Aurora\"\n\t\t\t}\n\t\t}\n\t},\n\tfragmentNode: (params) => {\n\t\tconst { uniforms } = params;\n\t\tconst colorA = uniforms.colorA.uniform;\n\t\tconst colorB = uniforms.colorB.uniform;\n\t\tconst colorC = uniforms.colorC.uniform;\n\t\tconst csMode = uniforms.colorSpace.uniform.value;\n\t\tconst balanceExp = mix(float(2.5), float(.4), uniforms.balance.uniform.mul(.01));\n\t\tconst intensity = uniforms.intensity.uniform.mul(.018);\n\t\tconst curtainCount = uniforms.curtainCount.uniform.value | 0;\n\t\tconst waviness = uniforms.waviness.uniform.mul(.01);\n\t\tconst rayAmount = uniforms.rayDensity.uniform.mul(.01);\n\t\tconst auroraHeight = uniforms.height.uniform.mul(.01);\n\t\tconst centerX = uniforms.center.uniform.x;\n\t\tconst centerY = uniforms.center.uniform.y.oneMinus();\n\t\tconst seed = uniforms.seed.uniform;\n\t\tconst aspect = viewportSize.x.div(viewportSize.y);\n\t\tconst t = createAnimatedTime(params, uniforms.speed);\n\t\tconst auroraCurtain = Fn(([uv$1, layerIdx, layerTime]) => {\n\t\t\tconst tSlow = t.mul(.06).add(layerTime);\n\t\t\tconst lSeed = seed.add(layerIdx.mul(31.7));\n\t\t\tconst wx = uv$1.x.sub(centerX).mul(aspect).mul(2);\n\t\t\tconst ph1 = fract(sin(lSeed.mul(12.9)).mul(4758.5)).mul(Math.PI * 2);\n\t\t\tconst ph2 = fract(sin(lSeed.mul(78.2)).mul(2847.1)).mul(Math.PI * 2);\n\t\t\tconst ph3 = fract(sin(lSeed.mul(41.6)).mul(1593.7)).mul(Math.PI * 2);\n\t\t\tconst arc = sin(wx.mul(.7).add(tSlow.mul(.4)).add(ph1)).mul(.15).add(sin(wx.mul(1.6).add(tSlow.mul(.65)).add(ph2)).mul(.08)).add(sin(wx.mul(2.9).add(tSlow.mul(.3)).add(ph3)).mul(.04));\n\t\t\tconst noiseWarp = mx_noise_float(vec3(wx.mul(.5), tSlow.mul(.25), lSeed.mul(.1)));\n\t\t\tconst pathY = centerY.add(arc.mul(waviness)).add(noiseWarp.mul(.14).mul(waviness));\n\t\t\tconst warpedX = wx.add(noiseWarp.mul(2.5));\n\t\t\tconst rayFreq = mix(float(6), float(20), rayAmount);\n\t\t\tconst rayPhase = fract(sin(lSeed.mul(53.7)).mul(3847.2)).mul(Math.PI * 2);\n\t\t\tconst rays = pow(sin(warpedX.mul(rayFreq.mul(.15)).add(tSlow.mul(.1)).add(rayPhase)).mul(.5).add(.5), float(1.5));\n\t\t\tconst localHeight = auroraHeight.mul(mix(float(.4), float(1), rays));\n\t\t\tconst distFromPath = uv$1.y.sub(pathY);\n\t\t\tconst bottomFade = smoothstep(float(-.04), float(.015), distFromPath);\n\t\t\tconst topExtent = localHeight.mul(rays.mul(.4).add(.6));\n\t\t\tconst topFade = smoothstep(topExtent, float(0), distFromPath);\n\t\t\tconst envelope = bottomFade.mul(topFade);\n\t\t\tconst sectionBright = mix(float(.4), float(1), noiseWarp.mul(.5).add(.5));\n\t\t\tconst colorT = clamp(distFromPath.div(topExtent.add(.001)), 0, 1);\n\t\t\tconst coreD = colorT.sub(.2);\n\t\t\tconst coreBright = exp(coreD.mul(coreD).mul(-6)).mul(.3).add(1);\n\t\t\treturn vec2(colorT, envelope.mul(rays).mul(sectionBright).mul(coreBright));\n\t\t});\n\t\treturn Fn(() => {\n\t\t\tconst uv$1 = screenUV;\n\t\t\tconst weightedT = float(0).toVar();\n\t\t\tconst totalAlpha = float(0).toVar();\n\t\t\tconst a1 = auroraCurtain(uv$1, float(0), float(0));\n\t\t\tweightedT.assign(weightedT.add(a1.x.mul(a1.y)));\n\t\t\ttotalAlpha.assign(totalAlpha.add(a1.y));\n\t\t\tif (curtainCount >= 2) {\n\t\t\t\tconst a2 = auroraCurtain(uv$1, float(1), float(3.1));\n\t\t\t\tconst w2 = a2.y.mul(.65);\n\t\t\t\tweightedT.assign(weightedT.add(a2.x.mul(w2)));\n\t\t\t\ttotalAlpha.assign(totalAlpha.add(w2));\n\t\t\t}\n\t\t\tif (curtainCount >= 3) {\n\t\t\t\tconst a3 = auroraCurtain(uv$1, float(2), float(6.7));\n\t\t\t\tconst w3 = a3.y.mul(.45);\n\t\t\t\tweightedT.assign(weightedT.add(a3.x.mul(w3)));\n\t\t\t\ttotalAlpha.assign(totalAlpha.add(w3));\n\t\t\t}\n\t\t\tif (curtainCount >= 4) {\n\t\t\t\tconst a4 = auroraCurtain(uv$1, float(3), float(9.4));\n\t\t\t\tconst w4 = a4.y.mul(.3);\n\t\t\t\tweightedT.assign(weightedT.add(a4.x.mul(w4)));\n\t\t\t\ttotalAlpha.assign(totalAlpha.add(w4));\n\t\t\t}\n\t\t\tconst avgT = pow(weightedT.div(totalAlpha.add(.001)), balanceExp);\n\t\t\tconst lowToMid = smoothstep(float(0), float(.2), avgT);\n\t\t\tconst midToHigh = smoothstep(float(.4), float(.85), avgT);\n\t\t\tconst col = mixColors(mixColors(colorA, colorB, lowToMid, csMode), colorC, midToHigh, csMode).rgb.mul(totalAlpha).mul(intensity);\n\t\t\tconst alpha = clamp(totalAlpha.mul(intensity).mul(.5), 0, 1);\n\t\t\treturn vec4(clamp(col, 0, 1), alpha);\n\t\t})();\n\t}\n};\nvar Aurora_default = componentDefinition;\nexport { componentDefinition as n, Aurora_default as t };\n","import { t as applyEdgeHandling } from \"./edges-CX_lJB9R.js\";\nimport { c as transformEdges, r as transformAngle } from \"./transformations-CJcUeZIC.js\";\nimport { t as unpremultiplyAlpha } from \"./alpha-C4ptedXe.js\";\nimport { t as createAnimatedTime } from \"./time-DUqSFWvT.js\";\nimport { Fn, convertToTexture, cos, float, floor, fract, screenUV, sin, vec2, vec4, viewportSize } from \"three/tsl\";\nconst componentDefinition = {\n\tname: \"BarShift\",\n\tcategory: \"Distortions\",\n\tdescription: \"Slices content into parallel bars, each offset independently for a fractured or glitch-like effect\",\n\trequiresRTT: true,\n\trequiresChild: true,\n\tprops: {\n\t\tcount: {\n\t\t\tdefault: 6,\n\t\t\tdescription: \"Number of bars across the longest viewport dimension\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 1,\n\t\t\t\tmax: 30,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Count\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tangle: {\n\t\t\tdefault: 0,\n\t\t\ttransform: transformAngle,\n\t\t\tdescription: \"Angle of bar orientation in degrees (0 = vertical bars, 90 = horizontal bars)\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: -180,\n\t\t\t\tmax: 180,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Angle\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tintensity: {\n\t\t\tdefault: .15,\n\t\t\tdescription: \"Maximum displacement per bar\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Intensity\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tseed: {\n\t\t\tdefault: 0,\n\t\t\tdescription: \"Randomization seed for per-bar offset variation\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 100,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Seed\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tspeed: {\n\t\t\tdefault: 0,\n\t\t\tdescription: \"Animation speed — each bar drifts at its own rate and direction\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: -2,\n\t\t\t\tmax: 2,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Speed\",\n\t\t\t\tgroup: \"Animation\"\n\t\t\t}\n\t\t},\n\t\tedges: {\n\t\t\tdefault: \"mirror\",\n\t\t\tdescription: \"How to handle edges when distortion pushes content out of bounds\",\n\t\t\ttransform: transformEdges,\n\t\t\tcompileTime: true,\n\t\t\tui: {\n\t\t\t\ttype: \"select\",\n\t\t\t\toptions: [\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Stretch\",\n\t\t\t\t\t\tvalue: \"stretch\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Transparent\",\n\t\t\t\t\t\tvalue: \"transparent\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Mirror\",\n\t\t\t\t\t\tvalue: \"mirror\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Wrap\",\n\t\t\t\t\t\tvalue: \"wrap\"\n\t\t\t\t\t}\n\t\t\t\t],\n\t\t\t\tlabel: \"Edges\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t}\n\t},\n\tfragmentNode: (params) => {\n\t\tconst { uniforms, childNode, onCleanup } = params;\n\t\tif (!childNode) return vec4(0, 0, 0, 0);\n\t\tconst childTexture = convertToTexture(childNode);\n\t\tonCleanup(() => {\n\t\t\tif (childTexture?.renderTarget?.dispose) childTexture.renderTarget.dispose();\n\t\t});\n\t\tconst aspect = viewportSize.x.div(viewportSize.y);\n\t\tconst animTime = createAnimatedTime(params, uniforms.speed);\n\t\tconst hash = (x) => fract(sin(x.mul(12.9898)).mul(43758.5453)).sub(.5).mul(2);\n\t\tconst angleRad = uniforms.angle.uniform.mul(.0174533);\n\t\tconst cosA = cos(angleRad);\n\t\tconst sinA = sin(angleRad);\n\t\tconst longestAxis = aspect.max(float(1));\n\t\treturn Fn(() => {\n\t\t\tconst uv$1 = screenUV;\n\t\t\tconst au = uv$1.x.mul(aspect);\n\t\t\tconst av = uv$1.y;\n\t\t\tconst cu = au.sub(aspect.mul(.5));\n\t\t\tconst cv = av.sub(.5);\n\t\t\tconst projectedU = cu.mul(cosA).add(cv.mul(sinA));\n\t\t\tconst projectedV = cu.mul(sinA).negate().add(cv.mul(cosA));\n\t\t\tconst barIndex = floor(projectedU.mul(uniforms.count.uniform).div(longestAxis));\n\t\t\tconst seedOffset = uniforms.seed.uniform.mul(.137);\n\t\t\tconst staticOffset = hash(barIndex.add(seedOffset));\n\t\t\tconst barSpeed = hash(barIndex.add(seedOffset).add(float(42.7)));\n\t\t\tconst animOffset = animTime.mul(barSpeed).mul(.2);\n\t\t\tconst offset = staticOffset.add(animOffset).mul(uniforms.intensity.uniform);\n\t\t\tconst distPV = projectedV.add(offset);\n\t\t\tconst dcu = projectedU.mul(cosA).sub(distPV.mul(sinA));\n\t\t\tconst dcv = projectedU.mul(sinA).add(distPV.mul(cosA));\n\t\t\tconst sampleUV = vec2(dcu.div(aspect).add(.5), dcv.add(.5));\n\t\t\treturn unpremultiplyAlpha(applyEdgeHandling(sampleUV, childTexture.sample(sampleUV), childTexture, uniforms.edges.uniform.value));\n\t\t})();\n\t}\n};\nvar BarShift_default = componentDefinition;\nexport { componentDefinition as n, BarShift_default as t };\n","import { a as transformColor, l as transformPosition, o as transformColorSpace, t as colorSpaceOptions } from \"./transformations-CJcUeZIC.js\";\nimport { t as mixColors } from \"./colorMixing-BPpDnR5I.js\";\nimport { clamp, float, max, mix, pow, screenUV, smoothstep, sqrt, vec2, vec4, viewportSize } from \"three/tsl\";\nconst componentDefinition = {\n\tname: \"Beam\",\n\tcategory: \"Textures\",\n\tdescription: \"A beam of light from one point to another.\",\n\tprops: {\n\t\tstartPosition: {\n\t\t\tdefault: {\n\t\t\t\tx: .2,\n\t\t\t\ty: .5\n\t\t\t},\n\t\t\ttransform: transformPosition,\n\t\t\tdescription: \"Starting point of the beam\",\n\t\t\tui: {\n\t\t\t\ttype: \"position\",\n\t\t\t\tlabel: \"Start Position\",\n\t\t\t\tgroup: \"Position\"\n\t\t\t}\n\t\t},\n\t\tendPosition: {\n\t\t\tdefault: {\n\t\t\t\tx: .8,\n\t\t\t\ty: .5\n\t\t\t},\n\t\t\ttransform: transformPosition,\n\t\t\tdescription: \"Ending point of the beam\",\n\t\t\tui: {\n\t\t\t\ttype: \"position\",\n\t\t\t\tlabel: \"End Position\",\n\t\t\t\tgroup: \"Position\"\n\t\t\t}\n\t\t},\n\t\tstartThickness: {\n\t\t\tdefault: .2,\n\t\t\tdescription: \"Thickness at the start of the beam\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 2,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Start Thickness\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tendThickness: {\n\t\t\tdefault: .2,\n\t\t\tdescription: \"Thickness at the end of the beam\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 2,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"End Thickness\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tstartSoftness: {\n\t\t\tdefault: .5,\n\t\t\tdescription: \"Edge softness at the start of the beam\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 50,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Start Softness\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tendSoftness: {\n\t\t\tdefault: .5,\n\t\t\tdescription: \"Edge softness at the end of the beam\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 20,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"End Softness\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tinsideColor: {\n\t\t\tdefault: \"#FF0000\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Color at the center of the beam\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Inside Color\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\toutsideColor: {\n\t\t\tdefault: \"#0000FF\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Color at the edges of the beam\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Outside Color\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tcolorSpace: {\n\t\t\tdefault: \"linear\",\n\t\t\ttransform: transformColorSpace,\n\t\t\tcompileTime: true,\n\t\t\tdescription: \"Color space for color interpolation\",\n\t\t\tui: {\n\t\t\t\ttype: \"select\",\n\t\t\t\toptions: colorSpaceOptions,\n\t\t\t\tlabel: \"Color Space\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t}\n\t},\n\tfragmentNode: ({ uniforms }) => {\n\t\tconst baseUV = screenUV;\n\t\tconst aspect = viewportSize.x.div(viewportSize.y);\n\t\tconst startPos = vec2(uniforms.startPosition.uniform.x, uniforms.startPosition.uniform.y.oneMinus());\n\t\tconst endPos = vec2(uniforms.endPosition.uniform.x, uniforms.endPosition.uniform.y.oneMinus());\n\t\tconst aspectCorrectedStart = vec2(startPos.x.mul(aspect), startPos.y);\n\t\tconst aspectCorrectedEnd = vec2(endPos.x.mul(aspect), endPos.y);\n\t\tconst aspectCorrectedUV = vec2(baseUV.x.mul(aspect), baseUV.y);\n\t\tconst lineVec = vec2(aspectCorrectedEnd.x.sub(aspectCorrectedStart.x), aspectCorrectedEnd.y.sub(aspectCorrectedStart.y));\n\t\tconst toPoint = vec2(aspectCorrectedUV.x.sub(aspectCorrectedStart.x), aspectCorrectedUV.y.sub(aspectCorrectedStart.y));\n\t\tconst dotProduct = toPoint.x.mul(lineVec.x).add(toPoint.y.mul(lineVec.y));\n\t\tconst lineLengthSq = lineVec.x.mul(lineVec.x).add(lineVec.y.mul(lineVec.y));\n\t\tconst t = clamp(dotProduct.div(max(lineLengthSq, float(1e-4))), float(0), float(1));\n\t\tconst closestPoint = vec2(aspectCorrectedStart.x.add(lineVec.x.mul(t)), aspectCorrectedStart.y.add(lineVec.y.mul(t)));\n\t\tconst distVec = vec2(aspectCorrectedUV.x.sub(closestPoint.x), aspectCorrectedUV.y.sub(closestPoint.y));\n\t\tconst distance$1 = sqrt(distVec.x.mul(distVec.x).add(distVec.y.mul(distVec.y)));\n\t\tconst thickness = mix(uniforms.startThickness.uniform.mul(.25), uniforms.endThickness.uniform.mul(.25), t);\n\t\tconst startSoft = uniforms.startSoftness.uniform;\n\t\tconst endSoft = uniforms.endSoftness.uniform;\n\t\tconst softness = mix(startSoft, endSoft, t);\n\t\tconst normalizedDist = distance$1.div(max(thickness, float(1e-4)));\n\t\tconst edgeEnd = float(1).add(softness);\n\t\tconst alpha = pow(float(1).sub(smoothstep(float(1), edgeEnd, normalizedDist)), float(1).add(softness.mul(1.5)));\n\t\tconst colorT = smoothstep(float(1).sub(softness), float(1).add(softness), normalizedDist);\n\t\tconst insideCol = uniforms.insideColor.uniform;\n\t\tconst outsideCol = uniforms.outsideColor.uniform;\n\t\tconst beamColorRGB = mixColors(insideCol, outsideCol, colorT, uniforms.colorSpace.uniform.value).rgb;\n\t\treturn vec4(beamColorRGB, insideCol.a.add(outsideCol.a).div(float(2)).mul(alpha));\n\t}\n};\nvar Beam_default = componentDefinition;\nexport { componentDefinition as n, Beam_default as t };\n","import { a as transformColor, l as transformPosition, o as transformColorSpace, t as colorSpaceOptions } from \"./transformations-CJcUeZIC.js\";\nimport { t as mixColors } from \"./colorMixing-BPpDnR5I.js\";\nimport { t as createAnimatedTime } from \"./time-DUqSFWvT.js\";\nimport { Fn, dot, float, length, max, normalize, pow, reflect, screenUV, sin, smoothstep, uniform, vec2, vec3, vec4, viewportSize } from \"three/tsl\";\nconst componentDefinition = {\n\tname: \"Blob\",\n\tcategory: \"Textures\",\n\tdescription: \"Organic animated blob with 3D lighting and gradients\",\n\tprops: {\n\t\tcolorA: {\n\t\t\tdefault: \"#ff6b35\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Primary color of the blob\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Color A\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tcolorB: {\n\t\t\tdefault: \"#e91e63\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Secondary color of the blob\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Color B\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tsize: {\n\t\t\tdefault: .5,\n\t\t\tdescription: \"Size of the blob\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 2,\n\t\t\t\tstep: .05,\n\t\t\t\tlabel: \"Size\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tdeformation: {\n\t\t\tdefault: .5,\n\t\t\tdescription: \"How organic and blobby the shape is (0 = circle, 1 = very blobby)\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Deformation\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tsoftness: {\n\t\t\tdefault: .5,\n\t\t\tdescription: \"Softness of the blob edges (combines edge width and transition curve)\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Softness\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\thighlightIntensity: {\n\t\t\tdefault: .5,\n\t\t\tdescription: \"Intensity of specular highlight effect\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Highlight Intensity\",\n\t\t\t\tgroup: \"Highlight\"\n\t\t\t}\n\t\t},\n\t\thighlightX: {\n\t\t\tdefault: .3,\n\t\t\tdescription: \"Light direction X component\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: -1,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Highlight X\",\n\t\t\t\tgroup: \"Highlight\"\n\t\t\t}\n\t\t},\n\t\thighlightY: {\n\t\t\tdefault: -.3,\n\t\t\tdescription: \"Light direction Y component\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: -1,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Highlight Y\",\n\t\t\t\tgroup: \"Highlight\"\n\t\t\t}\n\t\t},\n\t\thighlightZ: {\n\t\t\tdefault: .4,\n\t\t\tdescription: \"Light direction Z component\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: -1,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Highlight Z\",\n\t\t\t\tgroup: \"Highlight\"\n\t\t\t}\n\t\t},\n\t\thighlightColor: {\n\t\t\tdefault: \"#ffe11a\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Color of the specular highlight\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Highlight Color\",\n\t\t\t\tgroup: \"Highlight\"\n\t\t\t}\n\t\t},\n\t\tspeed: {\n\t\t\tdefault: .5,\n\t\t\tdescription: \"Animation speed\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 2,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Speed\",\n\t\t\t\tgroup: \"Animation\"\n\t\t\t}\n\t\t},\n\t\tseed: {\n\t\t\tdefault: 1,\n\t\t\tdescription: \"Adjusts the starting state, useful for variation\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 100,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Seed\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tcenter: {\n\t\t\tdefault: {\n\t\t\t\tx: .5,\n\t\t\t\ty: .5\n\t\t\t},\n\t\t\ttransform: transformPosition,\n\t\t\tdescription: \"The center point of the blob\",\n\t\t\tui: {\n\t\t\t\ttype: \"position\",\n\t\t\t\tlabel: \"Center Position\",\n\t\t\t\tgroup: \"Position\"\n\t\t\t}\n\t\t},\n\t\tcolorSpace: {\n\t\t\tdefault: \"linear\",\n\t\t\ttransform: transformColorSpace,\n\t\t\tcompileTime: true,\n\t\t\tdescription: \"Color space for color interpolation\",\n\t\t\tui: {\n\t\t\t\ttype: \"select\",\n\t\t\t\toptions: colorSpaceOptions,\n\t\t\t\tlabel: \"Color Space\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t}\n\t},\n\tfragmentNode: (params) => {\n\t\tconst { uniforms, onBeforeRender } = params;\n\t\tconst animTime = createAnimatedTime(params, uniforms.speed, uniforms.seed);\n\t\tconst normLx = uniform(0);\n\t\tconst normLy = uniform(0);\n\t\tconst normLz = uniform(1);\n\t\tonBeforeRender(() => {\n\t\t\tconst lx = uniforms.highlightX.uniform.value;\n\t\t\tconst ly = uniforms.highlightY.uniform.value;\n\t\t\tconst lz = uniforms.highlightZ.uniform.value;\n\t\t\tconst len = Math.sqrt(lx * lx + ly * ly + lz * lz);\n\t\t\tif (len > 0) {\n\t\t\t\tnormLx.value = lx / len;\n\t\t\t\tnormLy.value = ly / len;\n\t\t\t\tnormLz.value = lz / len;\n\t\t\t} else {\n\t\t\t\tnormLx.value = 0;\n\t\t\t\tnormLy.value = 0;\n\t\t\t\tnormLz.value = 0;\n\t\t\t}\n\t\t});\n\t\treturn Fn(() => {\n\t\t\tconst baseUV = screenUV;\n\t\t\tconst colorA = uniforms.colorA.uniform;\n\t\t\tconst colorB = uniforms.colorB.uniform;\n\t\t\tconst size = uniforms.size.uniform;\n\t\t\tconst deformation = uniforms.deformation.uniform;\n\t\t\tconst softness = uniforms.softness.uniform;\n\t\t\tconst highlightIntensity = uniforms.highlightIntensity.uniform;\n\t\t\tconst highlightColor = uniforms.highlightColor.uniform;\n\t\t\tconst edgeWidth = softness.mul(float(.3));\n\t\t\tconst edgeCurve = softness.mul(float(2)).add(float(.5));\n\t\t\tconst aspect = viewportSize.x.div(viewportSize.y);\n\t\t\tconst aspectCorrectedUV = vec2(baseUV.x.mul(aspect), baseUV.y);\n\t\t\tconst centerPos = vec2(uniforms.center.uniform.x.mul(aspect), uniforms.center.uniform.y.oneMinus());\n\t\t\tconst uv$1 = aspectCorrectedUV.sub(centerPos).toVar();\n\t\t\tconst dist = length(uv$1);\n\t\t\tconst baseRadius = size;\n\t\t\tconst noiseScale = float(4);\n\t\t\tconst noise1 = sin(uv$1.x.mul(noiseScale.mul(float(.8))).add(animTime.mul(float(.8)))).mul(sin(uv$1.y.mul(noiseScale.mul(float(.7))).add(animTime.mul(float(.6))))).add(sin(uv$1.x.mul(noiseScale.mul(float(1.2))).sub(uv$1.y.mul(noiseScale.mul(float(.9))).add(animTime.mul(float(.4)))))).mul(float(.15)).mul(deformation);\n\t\t\tconst noise2 = sin(uv$1.x.mul(noiseScale.mul(float(1.4))).sub(animTime.mul(float(.5)))).mul(sin(uv$1.y.mul(noiseScale.mul(float(1.1))).add(animTime.mul(float(.7))))).mul(float(.12)).mul(deformation);\n\t\t\tconst noise3 = sin(uv$1.x.mul(noiseScale.mul(float(1.8))).add(uv$1.y.mul(noiseScale.mul(float(1.6))).add(animTime.mul(float(.3))))).add(sin(uv$1.x.mul(noiseScale.mul(float(.6))).sub(animTime.mul(float(.9))))).mul(float(.1)).mul(deformation);\n\t\t\tconst noise4 = sin(uv$1.x.mul(noiseScale.mul(float(2.2))).add(animTime.mul(float(.2)))).mul(sin(uv$1.y.mul(noiseScale.mul(float(1.9))).sub(animTime.mul(float(.8))))).mul(float(.04)).mul(deformation);\n\t\t\tconst noiseAmount = noise1.add(noise2).add(noise3).add(noise4);\n\t\t\tconst organicRadius = baseRadius.add(noiseAmount);\n\t\t\tconst blobMask = pow(smoothstep(organicRadius.sub(edgeWidth), organicRadius.add(edgeWidth), dist).oneMinus(), edgeCurve).toVar();\n\t\t\tconst distFromCenter = dist;\n\t\t\tconst sphereRadius = organicRadius;\n\t\t\tconst normalTilt = smoothstep(float(0), sphereRadius, distFromCenter).toVar();\n\t\t\tconst fakeZ = float(1).sub(normalTilt.mul(float(.1)));\n\t\t\tconst tilted = normalTilt.add(float(.2)).toVar();\n\t\t\tconst surfaceNormal = normalize(vec3(uv$1.x.mul(tilted), uv$1.y.mul(tilted), fakeZ));\n\t\t\tconst lightDir = vec3(normLx, normLy, normLz);\n\t\t\tconst viewDir = vec3(float(0), float(0), float(1));\n\t\t\tconst reflectDir = reflect(lightDir.negate(), surfaceNormal);\n\t\t\tconst specularPower = float(32);\n\t\t\tconst specular = pow(max(float(0), dot(reflectDir, viewDir)), specularPower);\n\t\t\tconst curvatureBoost = normalTilt.mul(float(.5)).add(float(.5));\n\t\t\tconst finalHighlight = specular.mul(curvatureBoost).mul(highlightIntensity).mul(blobMask);\n\t\t\tconst posX = uv$1.x.mul(float(3));\n\t\t\tconst posY = uv$1.y.mul(float(3));\n\t\t\tconst colorNoise1 = sin(posX.add(animTime.mul(float(.4)))).mul(sin(posY.add(animTime.mul(float(.3))))).add(sin(posX.mul(float(.7)).add(posY.mul(float(.8))).add(animTime.mul(float(.2))))).mul(float(.5)).add(float(.5));\n\t\t\tconst colorNoise2 = sin(posX.mul(float(1.3)).sub(animTime.mul(float(.5)))).mul(sin(posY.mul(float(1.1)).add(animTime.mul(float(.6))))).add(sin(posX.mul(float(.5)).sub(posY.mul(float(.6)).sub(animTime.mul(float(.3)))))).mul(float(.5)).add(float(.5));\n\t\t\tconst combinedNoise = colorNoise1.mul(float(.6)).add(colorNoise2.mul(float(.4)));\n\t\t\tconst finalColorRGB = mixColors(colorA, colorB, smoothstep(float(.1), float(.9), combinedNoise), uniforms.colorSpace.uniform.value).rgb;\n\t\t\tconst avgAlpha = colorA.a.add(colorB.a).div(float(2));\n\t\t\tconst highlightContribution = highlightColor.rgb.mul(finalHighlight);\n\t\t\treturn vec4(finalColorRGB.add(highlightContribution), avgAlpha.mul(blobMask));\n\t\t})();\n\t}\n};\nvar Blob_default = componentDefinition;\nexport { componentDefinition as n, Blob_default as t };\n","import { StorageTexture } from \"three/webgpu\";\nimport { FloatType, HalfFloatType, LinearFilter as LinearFilter$1 } from \"three\";\nimport { Fn, If, float, fract, instanceIndex, int, storageTexture, textureLoad, textureStore, uint, uniform, uniformArray, uvec2, vec4 } from \"three/tsl\";\nvar DEFAULT_HALF_KERNEL = 24;\nconst DEFAULT_COMPUTE_WIDTH = 1024;\nconst DEFAULT_COMPUTE_HEIGHT = 640;\nfunction buildFixedWeights(halfKernel) {\n\tconst sigma = halfKernel / 3;\n\tconst size = halfKernel * 2 + 1;\n\tconst weights = [];\n\tlet sum = 0;\n\tfor (let i = -halfKernel; i <= halfKernel; i++) {\n\t\tconst w = Math.exp(-(i * i) / (2 * sigma * sigma));\n\t\tweights.push(w);\n\t\tsum += w;\n\t}\n\tfor (let i = 0; i < size; i++) weights[i] /= sum;\n\treturn weights;\n}\nvar PASSTHROUGH_THRESHOLD = .5;\nfunction createGaussianBlurCompute(inputTexture, inputWidth, inputHeight, onCleanup, halfKernel = DEFAULT_HALF_KERNEL, computeWidth = DEFAULT_COMPUTE_WIDTH, computeHeight = 640) {\n\tconst KERNEL_SIZE = halfKernel * 2 + 1;\n\tconst HALF_KERNEL = halfKernel;\n\tconst intermediateTex = new StorageTexture(computeWidth, computeHeight);\n\tintermediateTex.type = FloatType;\n\tconst outputTex = new StorageTexture(computeWidth, computeHeight);\n\toutputTex.type = HalfFloatType;\n\toutputTex.minFilter = LinearFilter$1;\n\toutputTex.magFilter = LinearFilter$1;\n\tonCleanup(() => {\n\t\tintermediateTex.dispose();\n\t\toutputTex.dispose();\n\t});\n\tconst intermediateWriteNode = storageTexture(intermediateTex);\n\tconst intermediateReadNode = storageTexture(intermediateTex).toReadOnly();\n\tconst outputNode = storageTexture(outputTex);\n\tconst weightsH = uniformArray(new Array(KERNEL_SIZE).fill(0), \"float\");\n\tconst weightsV = uniformArray(new Array(KERNEL_SIZE).fill(0), \"float\");\n\tlet lastRadius = -1;\n\tconst inputWidthU = uniform(inputWidth);\n\tconst inputHeightU = uniform(inputHeight);\n\tlet scaleY = inputHeight / computeHeight;\n\tconst cw = uint(computeWidth);\n\tconst ch = uint(computeHeight);\n\tconst computeHm1 = int(computeHeight - 1);\n\tconst inputWm1 = int(inputWidthU.sub(1));\n\tconst inputHm1 = int(inputHeightU.sub(1));\n\tconst horizontalPass = Fn(() => {\n\t\tconst idx = instanceIndex;\n\t\tconst cx = idx.mod(cw);\n\t\tconst cy = idx.div(cw);\n\t\tIf(cy.lessThan(ch), () => {\n\t\t\tconst sum = vec4(0).toVar();\n\t\t\tconst inputCx = cx.toFloat().add(float(.5)).mul(inputWidthU).div(float(computeWidth)).sub(float(.5));\n\t\t\tconst inputCy = cy.toFloat().add(float(.5)).mul(inputHeightU).div(float(computeHeight)).sub(float(.5));\n\t\t\tconst inputCxI = inputCx.round().toInt();\n\t\t\tconst inputCyI = inputCy.round().toInt().clamp(int(0), inputHm1);\n\t\t\tfor (let i = -HALF_KERNEL; i <= HALF_KERNEL; i++) {\n\t\t\t\tconst texel = textureLoad(inputTexture, uvec2(inputCxI.add(int(i)).clamp(int(0), inputWm1).toUint(), inputCyI.toUint()), int(0));\n\t\t\t\tsum.assign(sum.add(texel.mul(weightsH.element(int(i + HALF_KERNEL)))));\n\t\t\t}\n\t\t\ttextureStore(intermediateWriteNode, uvec2(cx, cy), sum).toWriteOnly();\n\t\t});\n\t})().compute(computeWidth * computeHeight, [256]);\n\tconst verticalPass = Fn(() => {\n\t\tconst idx = instanceIndex;\n\t\tconst cx = idx.mod(cw);\n\t\tconst cy = idx.div(cw);\n\t\tIf(cy.lessThan(ch), () => {\n\t\t\tconst sum = vec4(0).toVar();\n\t\t\tfor (let i = -HALF_KERNEL; i <= HALF_KERNEL; i++) {\n\t\t\t\tconst texel = textureLoad(intermediateReadNode, uvec2(cx, cy.toInt().add(int(i)).clamp(int(0), computeHm1).toUint()), int(0));\n\t\t\t\tsum.assign(sum.add(texel.mul(weightsV.element(int(i + HALF_KERNEL)))));\n\t\t\t}\n\t\t\ttextureStore(outputNode, uvec2(cx, cy), sum).toWriteOnly();\n\t\t});\n\t})().compute(computeWidth * computeHeight, [256]);\n\tfunction updateWeights() {\n\t\tconst pixelRadius = lastRadius < 0 ? 4 : lastRadius;\n\t\tconst sigmaH = Math.max(pixelRadius * .5, .001);\n\t\tconst sigmaV = Math.max(sigmaH / scaleY, .001);\n\t\tconst newH = new Array(KERNEL_SIZE);\n\t\tconst newV = new Array(KERNEL_SIZE);\n\t\tlet totalH = 0, totalV = 0;\n\t\tfor (let i = -HALF_KERNEL; i <= HALF_KERNEL; i++) {\n\t\t\tconst h = Math.exp(-(i * i) / (2 * sigmaH * sigmaH));\n\t\t\tconst v = Math.exp(-(i * i) / (2 * sigmaV * sigmaV));\n\t\t\tnewH[i + HALF_KERNEL] = h;\n\t\t\tnewV[i + HALF_KERNEL] = v;\n\t\t\ttotalH += h;\n\t\t\ttotalV += v;\n\t\t}\n\t\tfor (let i = 0; i < KERNEL_SIZE; i++) {\n\t\t\tnewH[i] /= totalH;\n\t\t\tnewV[i] /= totalV;\n\t\t}\n\t\tweightsH.array = newH;\n\t\tweightsV.array = newV;\n\t}\n\tfunction updateRadius(pixelRadius) {\n\t\tif (Math.abs(pixelRadius - lastRadius) < .01) return;\n\t\tlastRadius = pixelRadius;\n\t\tupdateWeights();\n\t}\n\tupdateRadius(4);\n\treturn {\n\t\tcomputeNodes: [horizontalPass, verticalPass],\n\t\toutputTexture: outputTex,\n\t\tupdateRadius,\n\t\tcomputeWidth,\n\t\tcomputeHeight,\n\t\tsetInputDimensions: (newW, newH) => {\n\t\t\tinputWidthU.value = newW;\n\t\t\tinputHeightU.value = newH;\n\t\t\tconst newScaleY = newH / computeHeight;\n\t\t\tif (Math.abs(newScaleY - scaleY) > .001) {\n\t\t\t\tscaleY = newScaleY;\n\t\t\t\tupdateWeights();\n\t\t\t}\n\t\t}\n\t};\n}\nfunction createVariableGaussianBlurCompute(inputTexture, inputWidth, inputHeight, onCleanup, halfKernel = DEFAULT_HALF_KERNEL, computeWidth = DEFAULT_COMPUTE_WIDTH, computeHeight = 640, options) {\n\tconst jitterTaps = options?.jitterTaps === true;\n\tconst HALF_KERNEL = halfKernel;\n\tconst FIXED_WEIGHTS = buildFixedWeights(HALF_KERNEL);\n\tconst blurMapTex = new StorageTexture(computeWidth, computeHeight);\n\tblurMapTex.type = FloatType;\n\tconst blurMapWriteNode = storageTexture(blurMapTex);\n\tconst blurMapReadNode = storageTexture(blurMapTex).toReadOnly();\n\tconst intermediateTex = new StorageTexture(computeWidth, computeHeight);\n\tintermediateTex.type = FloatType;\n\tconst outputTex = new StorageTexture(computeWidth, computeHeight);\n\toutputTex.type = HalfFloatType;\n\toutputTex.minFilter = LinearFilter$1;\n\toutputTex.magFilter = LinearFilter$1;\n\tonCleanup(() => {\n\t\tblurMapTex.dispose();\n\t\tintermediateTex.dispose();\n\t\toutputTex.dispose();\n\t});\n\tconst intermediateWriteNode = storageTexture(intermediateTex);\n\tconst intermediateReadNode = storageTexture(intermediateTex).toReadOnly();\n\tconst outputNode = storageTexture(outputTex);\n\tconst weights = uniformArray(FIXED_WEIGHTS, \"float\");\n\tconst inputWidthU = uniform(inputWidth);\n\tconst inputHeightU = uniform(inputHeight);\n\tconst scaleYU = uniform(inputHeight / computeHeight);\n\tconst cw = uint(computeWidth);\n\tconst ch = uint(computeHeight);\n\tconst computeHm1 = int(computeHeight - 1);\n\tconst inputWm1 = int(inputWidthU.sub(1));\n\tconst inputHm1 = int(inputHeightU.sub(1));\n\tconst invHalf = float(1 / HALF_KERNEL);\n\tconst passthroughThreshold = float(PASSTHROUGH_THRESHOLD);\n\treturn {\n\t\tcomputeNodes: [Fn(() => {\n\t\t\tconst idx = instanceIndex;\n\t\t\tconst cx = idx.mod(cw);\n\t\t\tconst cy = idx.div(cw);\n\t\t\tIf(cy.lessThan(ch), () => {\n\t\t\t\tconst blurRadius = textureLoad(blurMapReadNode, uvec2(cx, cy), int(0)).r;\n\t\t\t\tconst inputCx = cx.toFloat().add(float(.5)).mul(inputWidthU).div(float(computeWidth)).sub(float(.5));\n\t\t\t\tconst inputCy = cy.toFloat().add(float(.5)).mul(inputHeightU).div(float(computeHeight)).sub(float(.5));\n\t\t\t\tconst inputCxF = inputCx;\n\t\t\t\tconst inputCyI = inputCy.round().toInt().clamp(int(0), inputHm1);\n\t\t\t\tIf(blurRadius.lessThan(passthroughThreshold), () => {\n\t\t\t\t\tconst texel = textureLoad(inputTexture, uvec2(inputCxF.round().toInt().clamp(int(0), inputWm1).toUint(), inputCyI.toUint()), int(0));\n\t\t\t\t\ttextureStore(intermediateWriteNode, uvec2(cx, cy), texel).toWriteOnly();\n\t\t\t\t}).Else(() => {\n\t\t\t\t\tconst sum = vec4(0).toVar();\n\t\t\t\t\tconst jitterH = jitterTaps ? fract(float(52.9829189).mul(fract(cx.toFloat().mul(float(.06711056)).add(cy.toFloat().mul(float(.00583715)))))).sub(float(.5)) : float(0);\n\t\t\t\t\tfor (let i = -HALF_KERNEL; i <= HALF_KERNEL; i++) {\n\t\t\t\t\t\tconst offset = float(i).add(jitterH).mul(invHalf).mul(blurRadius);\n\t\t\t\t\t\tconst texel = textureLoad(inputTexture, uvec2(inputCxF.add(offset).round().toInt().clamp(int(0), inputWm1).toUint(), inputCyI.toUint()), int(0));\n\t\t\t\t\t\tsum.assign(sum.add(texel.mul(weights.element(int(i + HALF_KERNEL)))));\n\t\t\t\t\t}\n\t\t\t\t\ttextureStore(intermediateWriteNode, uvec2(cx, cy), sum).toWriteOnly();\n\t\t\t\t});\n\t\t\t});\n\t\t})().compute(computeWidth * computeHeight, [256]), Fn(() => {\n\t\t\tconst idx = instanceIndex;\n\t\t\tconst cx = idx.mod(cw);\n\t\t\tconst cy = idx.div(cw);\n\t\t\tIf(cy.lessThan(ch), () => {\n\t\t\t\tconst blurRadius = textureLoad(blurMapReadNode, uvec2(cx, cy), int(0)).r;\n\t\t\t\tIf(blurRadius.lessThan(passthroughThreshold), () => {\n\t\t\t\t\tconst texel = textureLoad(intermediateReadNode, uvec2(cx, cy), int(0));\n\t\t\t\t\ttextureStore(outputNode, uvec2(cx, cy), texel).toWriteOnly();\n\t\t\t\t}).Else(() => {\n\t\t\t\t\tconst sum = vec4(0).toVar();\n\t\t\t\t\tconst yi = cy.toInt();\n\t\t\t\t\tconst radiusComputeY = blurRadius.div(scaleYU);\n\t\t\t\t\tconst jitterV = jitterTaps ? fract(float(52.9829189).mul(fract(cx.toFloat().mul(float(.00583715)).add(cy.toFloat().mul(float(.06711056)))))).sub(float(.5)) : float(0);\n\t\t\t\t\tfor (let i = -HALF_KERNEL; i <= HALF_KERNEL; i++) {\n\t\t\t\t\t\tconst offset = float(i).add(jitterV).mul(invHalf).mul(radiusComputeY);\n\t\t\t\t\t\tconst texel = textureLoad(intermediateReadNode, uvec2(cx, yi.add(offset.round().toInt()).clamp(int(0), computeHm1).toUint()), int(0));\n\t\t\t\t\t\tsum.assign(sum.add(texel.mul(weights.element(int(i + HALF_KERNEL)))));\n\t\t\t\t\t}\n\t\t\t\t\ttextureStore(outputNode, uvec2(cx, cy), sum).toWriteOnly();\n\t\t\t\t});\n\t\t\t});\n\t\t})().compute(computeWidth * computeHeight, [256])],\n\t\toutputTexture: outputTex,\n\t\tblurMapTexture: blurMapTex,\n\t\tblurMapWriteNode,\n\t\tcomputeWidth,\n\t\tcomputeHeight,\n\t\tsetInputDimensions: (newW, newH) => {\n\t\t\tinputWidthU.value = newW;\n\t\t\tinputHeightU.value = newH;\n\t\t\tscaleYU.value = newH / computeHeight;\n\t\t}\n\t};\n}\nexport { createVariableGaussianBlurCompute as i, DEFAULT_COMPUTE_WIDTH as n, createGaussianBlurCompute as r, DEFAULT_COMPUTE_HEIGHT as t };\n","import { t as unpremultiplyAlpha } from \"./alpha-C4ptedXe.js\";\nimport { i as createVariableGaussianBlurCompute, r as createGaussianBlurCompute } from \"./computeBlur-oxyhoztH.js\";\nimport { Fn, If, clamp, convertToTexture, dot, float, instanceIndex, int, mix, pow, screenUV, texture, textureLoad, textureStore, uint, uniform, uvec2, vec2, vec3, vec4, viewportSize } from \"three/tsl\";\nconst componentDefinition = {\n\tname: \"Blur\",\n\tcategory: \"Blurs\",\n\tdescription: \"A simple Gaussian blur effect\",\n\trequiresRTT: true,\n\trequiresChild: true,\n\tprops: { intensity: {\n\t\tdefault: 50,\n\t\tdescription: \"Intensity of the blur effect\",\n\t\tui: {\n\t\t\ttype: [\"range\", \"map\"],\n\t\t\tmin: 0,\n\t\t\tmax: 200,\n\t\t\tstep: 1,\n\t\t\tlabel: \"Intensity\",\n\t\t\tgroup: \"Effect\"\n\t\t}\n\t} },\n\tcomputeNode: ({ childNode, onCleanup, dimensions, renderer, uniforms, onResize }) => {\n\t\tif (!childNode) return null;\n\t\tconst childTexture = convertToTexture(childNode);\n\t\tonCleanup(() => {\n\t\t\tif (childTexture?.renderTarget?.dispose) childTexture.renderTarget.dispose();\n\t\t});\n\t\tconst dpr = renderer?.getPixelRatio?.() ?? 1;\n\t\tconst texWidth = Math.round(dimensions.width * dpr);\n\t\tconst texHeight = Math.round(dimensions.height * dpr);\n\t\tconst mapInfo = uniforms.intensity.mapComputeInfo;\n\t\tif (mapInfo) {\n\t\t\tconst blur$1 = createVariableGaussianBlurCompute(childTexture, texWidth, texHeight, onCleanup);\n\t\t\tconst { computeNodes: blurNodes, outputTexture: outputTexture$1, blurMapWriteNode, computeWidth, computeHeight } = blur$1;\n\t\t\tconst inputWidthU = uniform(texWidth);\n\t\t\tconst inputHeightU = uniform(texHeight);\n\t\t\tconst cw = uint(computeWidth);\n\t\t\tconst ch = uint(computeHeight);\n\t\t\tconst { sourceTexture, channel, inputMin, inputMax, outputMin, outputMax, curve } = mapInfo;\n\t\t\tconst fillBlurMap = Fn(() => {\n\t\t\t\tconst idx = instanceIndex;\n\t\t\t\tconst cx = idx.mod(cw);\n\t\t\t\tconst cy = idx.div(cw);\n\t\t\t\tIf(cy.lessThan(ch), () => {\n\t\t\t\t\tconst u = cx.toFloat().add(float(.5)).div(float(computeWidth));\n\t\t\t\t\tconst v = cy.toFloat().add(float(.5)).div(float(computeHeight));\n\t\t\t\t\tconst sample = textureLoad(sourceTexture, uvec2(u.mul(inputWidthU).round().toInt().clamp(int(0), int(inputWidthU.sub(1))).toUint(), v.mul(inputHeightU).round().toInt().clamp(int(0), int(inputHeightU.sub(1))).toUint()), int(0));\n\t\t\t\t\tlet raw;\n\t\t\t\t\tif (channel === \"alpha\") raw = sample.a;\n\t\t\t\t\telse if (channel === \"alphaInverted\") raw = sample.a.oneMinus();\n\t\t\t\t\telse if (channel === \"luminanceInverted\") raw = dot(sample.rgb, vec3(.2126, .7152, .0722)).oneMinus();\n\t\t\t\t\telse raw = dot(sample.rgb, vec3(.2126, .7152, .0722));\n\t\t\t\t\tconst inputRange = inputMax.sub(inputMin).max(float(1e-4));\n\t\t\t\t\tconst radius = mix(outputMin, outputMax, pow(clamp(raw.sub(inputMin).div(inputRange), float(0), float(1)), pow(float(2), curve.negate().mul(float(2))))).mul(float(.36));\n\t\t\t\t\ttextureStore(blurMapWriteNode, uvec2(cx, cy), vec4(radius, float(0), float(0), float(1))).toWriteOnly();\n\t\t\t\t});\n\t\t\t})().compute(computeWidth * computeHeight, [256]);\n\t\t\tonResize(({ width, height }) => {\n\t\t\t\tconst newW = Math.round(width * dpr);\n\t\t\t\tconst newH = Math.round(height * dpr);\n\t\t\t\tinputWidthU.value = newW;\n\t\t\t\tinputHeightU.value = newH;\n\t\t\t\tblur$1.setInputDimensions(newW, newH);\n\t\t\t});\n\t\t\treturn {\n\t\t\t\toutputs: {\n\t\t\t\t\tchildTexture,\n\t\t\t\t\tblurredTexture: outputTexture$1\n\t\t\t\t},\n\t\t\t\tgetComputeNodes: () => [fillBlurMap, ...blurNodes]\n\t\t\t};\n\t\t}\n\t\tconst blur = createGaussianBlurCompute(childTexture, texWidth, texHeight, onCleanup);\n\t\tconst { computeNodes, outputTexture, updateRadius } = blur;\n\t\tonResize(({ width, height }) => {\n\t\t\tblur.setInputDimensions(Math.round(width * dpr), Math.round(height * dpr));\n\t\t});\n\t\treturn {\n\t\t\toutputs: {\n\t\t\t\tchildTexture,\n\t\t\t\tblurredTexture: outputTexture\n\t\t\t},\n\t\t\tgetComputeNodes: () => {\n\t\t\t\tconst intensityEntry = uniforms.intensity;\n\t\t\t\tconst intensity = intensityEntry.getCpuValue?.() ?? (typeof intensityEntry.uniform.value === \"number\" ? intensityEntry.uniform.value : null);\n\t\t\t\tif (intensity !== null) updateRadius(intensity * .36);\n\t\t\t\treturn computeNodes;\n\t\t\t}\n\t\t};\n\t},\n\tfragmentNode: ({ uniforms, childNode, onCleanup, computeOutputs }) => {\n\t\tif (!childNode) return vec4(0, 0, 0, 0);\n\t\tif (computeOutputs?.blurredTexture) {\n\t\t\tconst sharp = computeOutputs.childTexture.sample(screenUV);\n\t\t\tconst blurred = texture(computeOutputs.blurredTexture).sample(screenUV);\n\t\t\tconst intensityPin = uniforms.intensity.uniform.mul(float(0));\n\t\t\treturn unpremultiplyAlpha(vec4(blurred.rgb.add(intensityPin), sharp.a));\n\t\t}\n\t\tconst childTexture = convertToTexture(childNode);\n\t\tonCleanup(() => {\n\t\t\tif (childTexture?.renderTarget?.dispose) childTexture.renderTarget.dispose();\n\t\t});\n\t\tconst weights = [\n\t\t\t.056,\n\t\t\t.135,\n\t\t\t.278,\n\t\t\t.487,\n\t\t\t.726,\n\t\t\t.923,\n\t\t\t1,\n\t\t\t.923,\n\t\t\t.726,\n\t\t\t.487,\n\t\t\t.278,\n\t\t\t.135,\n\t\t\t.056\n\t\t];\n\t\tconst weightSum = 6.214;\n\t\tconst scaledIntensity = uniforms.intensity.uniform.mul(.06);\n\t\tconst horizontalTexture = convertToTexture(Fn(() => {\n\t\t\tconst uv$1 = screenUV;\n\t\t\tconst blurRadius = scaledIntensity;\n\t\t\tconst pixelSize = vec2(1).div(viewportSize);\n\t\t\tconst total = vec4(0).toVar();\n\t\t\tfor (let x = -6; x <= 6; x++) {\n\t\t\t\tconst weight = float(weights[x + 6] / weightSum);\n\t\t\t\tconst offset = vec2(float(x), float(0)).mul(blurRadius).mul(pixelSize);\n\t\t\t\tconst sampleCoord = uv$1.add(offset);\n\t\t\t\tconst sample = childTexture.sample(sampleCoord).mul(weight);\n\t\t\t\ttotal.assign(total.add(sample));\n\t\t\t}\n\t\t\treturn total;\n\t\t})());\n\t\tonCleanup(() => {\n\t\t\tif (horizontalTexture?.renderTarget?.dispose) horizontalTexture.renderTarget.dispose();\n\t\t});\n\t\treturn Fn(() => {\n\t\t\tconst uv$1 = screenUV;\n\t\t\tconst blurRadius = scaledIntensity;\n\t\t\tconst pixelSize = vec2(1).div(viewportSize);\n\t\t\tconst total = vec4(0).toVar();\n\t\t\tfor (let y = -6; y <= 6; y++) {\n\t\t\t\tconst weight = float(weights[y + 6] / weightSum);\n\t\t\t\tconst offset = vec2(float(0), float(y)).mul(blurRadius).mul(pixelSize);\n\t\t\t\tconst sampleCoord = uv$1.add(offset);\n\t\t\t\tconst sample = horizontalTexture.sample(sampleCoord).mul(weight);\n\t\t\t\ttotal.assign(total.add(sample));\n\t\t\t}\n\t\t\treturn unpremultiplyAlpha(total);\n\t\t})();\n\t}\n};\nvar Blur_default = componentDefinition;\nexport { componentDefinition as n, Blur_default as t };\n","import { a as transformColor, o as transformColorSpace, r as transformAngle, t as colorSpaceOptions } from \"./transformations-CJcUeZIC.js\";\nimport { t as mixColors } from \"./colorMixing-BPpDnR5I.js\";\nimport { t as createAnimatedTime } from \"./time-DUqSFWvT.js\";\nimport { cos, float, floor, fract, mix, mod, screenUV, sin, step, vec4, viewportSize } from \"three/tsl\";\nconst componentDefinition = {\n\tname: \"BrickPattern\",\n\tcategory: \"Textures\",\n\tdescription: \"Classic brick wall pattern with alternating rows and mortar gaps\",\n\tprops: {\n\t\tcolorBrick: {\n\t\t\tdefault: \"#000000\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Brick color\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Brick Color\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tcolorMortar: {\n\t\t\tdefault: \"#ffffff\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Mortar / gap color\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Mortar Color\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tcellsX: {\n\t\t\tdefault: 8,\n\t\t\tdescription: \"Number of bricks per row\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 1,\n\t\t\t\tmax: 30,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Bricks per Row\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tcellsY: {\n\t\t\tdefault: 10,\n\t\t\tdescription: \"Number of brick rows\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 1,\n\t\t\t\tmax: 30,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Rows\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tmortar: {\n\t\t\tdefault: .05,\n\t\t\tdescription: \"Width of mortar gaps — equal pixel thickness in both directions\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Mortar Gap\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tangle: {\n\t\t\tdefault: 0,\n\t\t\ttransform: transformAngle,\n\t\t\tdescription: \"Rotation angle in degrees\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: -180,\n\t\t\t\tmax: 180,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Angle\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tspeed: {\n\t\t\tdefault: 0,\n\t\t\tdescription: \"Animation speed\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: -2,\n\t\t\t\tmax: 2,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Speed\",\n\t\t\t\tgroup: \"Animation\"\n\t\t\t}\n\t\t},\n\t\toffset: {\n\t\t\tdefault: 0,\n\t\t\tdescription: \"Static horizontal offset — shifts the brick pattern without animating\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Offset\",\n\t\t\t\tgroup: \"Animation\"\n\t\t\t}\n\t\t},\n\t\tspeedVariance: {\n\t\t\tdefault: 0,\n\t\t\tdescription: \"How much each row's speed varies — at high values rows move at different speeds and directions\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Speed Variance\",\n\t\t\t\tgroup: \"Animation\"\n\t\t\t}\n\t\t},\n\t\tseed: {\n\t\t\tdefault: 0,\n\t\t\tdescription: \"Random seed for per-row speed variation\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 100,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Seed\",\n\t\t\t\tgroup: \"Animation\"\n\t\t\t}\n\t\t},\n\t\tcolorSpace: {\n\t\t\tdefault: \"linear\",\n\t\t\ttransform: transformColorSpace,\n\t\t\tcompileTime: true,\n\t\t\tdescription: \"Color space for interpolation\",\n\t\t\tui: {\n\t\t\t\ttype: \"select\",\n\t\t\t\toptions: colorSpaceOptions,\n\t\t\t\tlabel: \"Color Space\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t}\n\t},\n\tfragmentNode: (params) => {\n\t\tconst { uniforms } = params;\n\t\tconst uv$1 = screenUV;\n\t\tconst aspect = viewportSize.x.div(viewportSize.y);\n\t\tconst au = uv$1.x.mul(aspect);\n\t\tconst av = uv$1.y;\n\t\tconst cu = au.sub(aspect.mul(.5));\n\t\tconst cv = av.sub(float(.5));\n\t\tconst rotRad = uniforms.angle.uniform.mul(float(.0174533));\n\t\tconst cosR = cos(rotRad);\n\t\tconst sinR = sin(rotRad);\n\t\tconst ru = cu.mul(cosR).add(cv.mul(sinR));\n\t\tconst rv = cu.mul(sinR).negate().add(cv.mul(cosR));\n\t\tconst u = ru.div(aspect).add(float(.5));\n\t\tconst v = rv.add(float(.5));\n\t\tconst cellsX = uniforms.cellsX.uniform;\n\t\tconst cellsY = uniforms.cellsY.uniform;\n\t\tconst animTime = createAnimatedTime(params, uniforms.speed);\n\t\tconst mortarU = uniforms.mortar.uniform.mul(float(.3));\n\t\tconst mortarV = mortarU.mul(aspect).mul(cellsY).div(cellsX);\n\t\tconst row = floor(v.mul(cellsY));\n\t\tconst rowOffset = mod(row, float(2)).mul(.5);\n\t\tconst rowDir = mod(row, float(2)).mul(2).sub(1);\n\t\tconst seedVal = uniforms.seed.uniform;\n\t\tconst rowSpeedMult = mix(rowDir, fract(sin(row.add(seedVal.mul(.137))).mul(43758.5453)).sub(.5).mul(2), uniforms.speedVariance.uniform);\n\t\tconst cellU = fract(u.mul(cellsX).add(rowOffset).add(animTime.mul(rowSpeedMult)).add(uniforms.offset.uniform));\n\t\tconst cellV = fract(v.mul(cellsY));\n\t\tconst brickU = step(mortarU, cellU).mul(step(mortarU, float(1).sub(cellU)));\n\t\tconst brickV = step(mortarV, cellV).mul(step(mortarV, float(1).sub(cellV)));\n\t\tconst brickMask = brickU.mul(brickV);\n\t\tconst result = mixColors(uniforms.colorMortar.uniform, uniforms.colorBrick.uniform, brickMask, uniforms.colorSpace.uniform.value);\n\t\treturn vec4(result.rgb, result.a);\n\t}\n};\nvar BrickPattern_default = componentDefinition;\nexport { componentDefinition as n, BrickPattern_default as t };\n","import { vec3, vec4 } from \"three/tsl\";\nconst componentDefinition = {\n\tname: \"BrightnessContrast\",\n\tcategory: \"Adjustments\",\n\tdescription: \"Adjust brightness and contrast of the image\",\n\trequiresChild: true,\n\tprops: {\n\t\tbrightness: {\n\t\t\tdefault: 0,\n\t\t\tdescription: \"Brightness adjustment (-1 to 1)\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: -1,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .05,\n\t\t\t\tlabel: \"Brightness\",\n\t\t\t\tgroup: \"Appearance\"\n\t\t\t}\n\t\t},\n\t\tcontrast: {\n\t\t\tdefault: 0,\n\t\t\tdescription: \"Contrast adjustment (-1 to 1)\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: -1,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .05,\n\t\t\t\tlabel: \"Contrast\",\n\t\t\t\tgroup: \"Appearance\"\n\t\t\t},\n\t\t\ttransform: (value) => value + 1\n\t\t}\n\t},\n\tfragmentNode: ({ uniforms, childNode }) => {\n\t\tif (!childNode) {\n\t\t\tconsole.error(\"You must pass a child component into the Brightness Contrast shader.\");\n\t\t\treturn vec4(0);\n\t\t}\n\t\tconst brightness = uniforms.brightness.uniform;\n\t\tconst contrast = uniforms.contrast.uniform;\n\t\treturn vec4(vec3(childNode.r, childNode.g, childNode.b).sub(.5).mul(contrast).add(.5).add(brightness), childNode.a);\n\t}\n};\nvar BrightnessContrast_default = componentDefinition;\nexport { componentDefinition as n, BrightnessContrast_default as t };\n","import { t as applyEdgeHandling } from \"./edges-CX_lJB9R.js\";\nimport { c as transformEdges, l as transformPosition } from \"./transformations-CJcUeZIC.js\";\nimport { t as unpremultiplyAlpha } from \"./alpha-C4ptedXe.js\";\nimport { convertToTexture, float, length, max, screenUV, smoothstep, vec2, vec4, viewportSize } from \"three/tsl\";\nconst componentDefinition = {\n\tname: \"Bulge\",\n\tcategory: \"Distortions\",\n\tdescription: \"Magnify or pinch content around a center point\",\n\trequiresRTT: true,\n\trequiresChild: true,\n\tprops: {\n\t\tcenter: {\n\t\t\tdefault: {\n\t\t\t\tx: .5,\n\t\t\t\ty: .5\n\t\t\t},\n\t\t\ttransform: transformPosition,\n\t\t\tdescription: \"The center point of the bulge effect\",\n\t\t\tui: {\n\t\t\t\ttype: \"position\",\n\t\t\t\tlabel: \"Center\",\n\t\t\t\tgroup: \"Position\"\n\t\t\t}\n\t\t},\n\t\tstrength: {\n\t\t\tdefault: 1,\n\t\t\tdescription: \"The intensity of the bulge effect (positive = bulge out, negative = pinch in)\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: -1,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .05,\n\t\t\t\tlabel: \"Strength\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tradius: {\n\t\t\tdefault: 1,\n\t\t\tdescription: \"The radius of the bulge effect area\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 5,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Radius\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tfalloff: {\n\t\t\tdefault: .5,\n\t\t\tdescription: \"Controls the smoothness of the transition (0 = hard edge, 1 = very smooth)\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .05,\n\t\t\t\tlabel: \"Falloff\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tedges: {\n\t\t\tdefault: \"stretch\",\n\t\t\tdescription: \"How to handle edges when distortion pushes content out of bounds\",\n\t\t\ttransform: transformEdges,\n\t\t\tcompileTime: true,\n\t\t\tui: {\n\t\t\t\ttype: \"select\",\n\t\t\t\toptions: [\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Stretch\",\n\t\t\t\t\t\tvalue: \"stretch\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Transparent\",\n\t\t\t\t\t\tvalue: \"transparent\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Mirror\",\n\t\t\t\t\t\tvalue: \"mirror\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Wrap\",\n\t\t\t\t\t\tvalue: \"wrap\"\n\t\t\t\t\t}\n\t\t\t\t],\n\t\t\t\tlabel: \"Edges\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t}\n\t},\n\tfragmentNode: ({ uniforms, childNode, onCleanup }) => {\n\t\tif (!childNode) return vec4(0, 0, 0, 0);\n\t\tconst childTexture = convertToTexture(childNode);\n\t\tonCleanup(() => {\n\t\t\tif (childTexture?.renderTarget?.dispose) childTexture.renderTarget.dispose();\n\t\t});\n\t\tconst aspect = viewportSize.x.div(viewportSize.y);\n\t\tconst aspectCorrectedUV = vec2(screenUV.x.mul(aspect), screenUV.y);\n\t\tconst centerPos = vec2(uniforms.center.uniform.x.mul(aspect), uniforms.center.uniform.y.oneMinus());\n\t\tconst delta = aspectCorrectedUV.sub(centerPos);\n\t\tconst distance$1 = length(delta);\n\t\tconst effectRadius = uniforms.radius.uniform.mul(.5);\n\t\tconst falloffAmount = uniforms.falloff.uniform;\n\t\tconst smoothFalloff = smoothstep(effectRadius.mul(float(1).sub(falloffAmount).sub(float(.001)).max(float(0))), effectRadius, distance$1).oneMinus();\n\t\tconst normalizedDist = distance$1.div(effectRadius);\n\t\tconst distSq = normalizedDist.mul(normalizedDist);\n\t\tconst quadraticFalloff = max(float(0), float(1).sub(distSq));\n\t\tconst falloff = smoothFalloff.mul(quadraticFalloff);\n\t\tconst displacementAmount = uniforms.strength.uniform.negate().mul(falloff);\n\t\tconst scaleFactor = float(1).add(displacementAmount);\n\t\tconst bulgedDelta = delta.mul(scaleFactor);\n\t\tconst bulgedUV = centerPos.add(bulgedDelta);\n\t\tconst finalUV = vec2(bulgedUV.x.div(aspect), bulgedUV.y);\n\t\treturn unpremultiplyAlpha(applyEdgeHandling(finalUV, childTexture.sample(finalUV), childTexture, uniforms.edges.uniform.value));\n\t}\n};\nvar Bulge_default = componentDefinition;\nexport { componentDefinition as n, Bulge_default as t };\n","import { t as unpremultiplyAlpha } from \"./alpha-C4ptedXe.js\";\nimport { r as createGaussianBlurCompute } from \"./computeBlur-oxyhoztH.js\";\nimport { Fn, convertToTexture, float, mix, screenUV, texture, vec2, vec4, viewportSize } from \"three/tsl\";\nconst componentDefinition = {\n\tname: \"ChannelBlur\",\n\tcategory: \"Blurs\",\n\tdescription: \"Independent blur for red, green, and blue channels\",\n\trequiresRTT: true,\n\trequiresChild: true,\n\tprops: {\n\t\tredIntensity: {\n\t\t\tdefault: 0,\n\t\t\tdescription: \"Blur intensity for red channel\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 100,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Red Intensity\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tgreenIntensity: {\n\t\t\tdefault: 20,\n\t\t\tdescription: \"Blur intensity for green channel\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 100,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Green Intensity\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tblueIntensity: {\n\t\t\tdefault: 40,\n\t\t\tdescription: \"Blur intensity for blue channel\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 100,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Blue Intensity\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t}\n\t},\n\tcomputeNode: ({ childNode, onCleanup, dimensions, renderer, uniforms, onResize }) => {\n\t\tif (!childNode) return null;\n\t\tconst childTexture = convertToTexture(childNode);\n\t\tonCleanup(() => {\n\t\t\tif (childTexture?.renderTarget?.dispose) childTexture.renderTarget.dispose();\n\t\t});\n\t\tconst dpr = renderer?.getPixelRatio?.() ?? 1;\n\t\tconst blur = createGaussianBlurCompute(childTexture, Math.round(dimensions.width * dpr), Math.round(dimensions.height * dpr), onCleanup);\n\t\tconst { computeNodes, outputTexture, updateRadius } = blur;\n\t\tonResize(({ width, height }) => {\n\t\t\tblur.setInputDimensions(Math.round(width * dpr), Math.round(height * dpr));\n\t\t});\n\t\treturn {\n\t\t\toutputs: {\n\t\t\t\tchildTexture,\n\t\t\t\tblurredTexture: outputTexture\n\t\t\t},\n\t\t\tgetComputeNodes: () => {\n\t\t\t\tconst r = uniforms.redIntensity.uniform.value * .1;\n\t\t\t\tconst g = uniforms.greenIntensity.uniform.value * .1;\n\t\t\t\tconst b = uniforms.blueIntensity.uniform.value * .1;\n\t\t\t\tupdateRadius(Math.max(r, g, b, .01));\n\t\t\t\treturn computeNodes;\n\t\t\t}\n\t\t};\n\t},\n\tfragmentNode: ({ uniforms, childNode, onCleanup, computeOutputs }) => {\n\t\tif (!childNode) return vec4(0, 0, 0, 0);\n\t\tif (computeOutputs?.blurredTexture) {\n\t\t\tconst sharp = computeOutputs.childTexture.sample(screenUV);\n\t\t\tconst blurred = texture(computeOutputs.blurredTexture).sample(screenUV);\n\t\t\tconst redRadius$1 = uniforms.redIntensity.uniform.mul(.1);\n\t\t\tconst greenRadius$1 = uniforms.greenIntensity.uniform.mul(.1);\n\t\t\tconst blueRadius$1 = uniforms.blueIntensity.uniform.mul(.1);\n\t\t\tconst maxRadius = redRadius$1.max(greenRadius$1).max(blueRadius$1).max(float(.01));\n\t\t\tconst rMix = redRadius$1.div(maxRadius);\n\t\t\tconst gMix = greenRadius$1.div(maxRadius);\n\t\t\tconst bMix = blueRadius$1.div(maxRadius);\n\t\t\treturn unpremultiplyAlpha(vec4(mix(sharp.r, blurred.r, rMix), mix(sharp.g, blurred.g, gMix), mix(sharp.b, blurred.b, bMix), sharp.a));\n\t\t}\n\t\tconst childTexture = convertToTexture(childNode);\n\t\tonCleanup(() => {\n\t\t\tif (childTexture?.renderTarget?.dispose) childTexture.renderTarget.dispose();\n\t\t});\n\t\tconst weights = [\n\t\t\t.056,\n\t\t\t.135,\n\t\t\t.278,\n\t\t\t.487,\n\t\t\t.726,\n\t\t\t.923,\n\t\t\t1,\n\t\t\t.923,\n\t\t\t.726,\n\t\t\t.487,\n\t\t\t.278,\n\t\t\t.135,\n\t\t\t.056\n\t\t];\n\t\tconst weightSum = 6.214;\n\t\tconst redRadius = uniforms.redIntensity.uniform.mul(.1);\n\t\tconst greenRadius = uniforms.greenIntensity.uniform.mul(.1);\n\t\tconst blueRadius = uniforms.blueIntensity.uniform.mul(.1);\n\t\tconst horizontalTexture = convertToTexture(Fn(() => {\n\t\t\tconst uv$1 = screenUV;\n\t\t\tconst pixelSize = vec2(1).div(viewportSize);\n\t\t\tconst redTotal = float(0).toVar();\n\t\t\tconst greenTotal = float(0).toVar();\n\t\t\tconst blueTotal = float(0).toVar();\n\t\t\tfor (let x = -6; x <= 6; x++) {\n\t\t\t\tconst weight = float(weights[x + 6] / weightSum);\n\t\t\t\tconst xOffset = float(x).mul(pixelSize.x);\n\t\t\t\tconst redOffset = vec2(xOffset.mul(redRadius), float(0));\n\t\t\t\tconst greenOffset = vec2(xOffset.mul(greenRadius), float(0));\n\t\t\t\tconst blueOffset = vec2(xOffset.mul(blueRadius), float(0));\n\t\t\t\tconst redSample = childTexture.sample(uv$1.add(redOffset)).r.mul(weight);\n\t\t\t\tconst greenSample = childTexture.sample(uv$1.add(greenOffset)).g.mul(weight);\n\t\t\t\tconst blueSample = childTexture.sample(uv$1.add(blueOffset)).b.mul(weight);\n\t\t\t\tredTotal.assign(redTotal.add(redSample));\n\t\t\t\tgreenTotal.assign(greenTotal.add(greenSample));\n\t\t\t\tblueTotal.assign(blueTotal.add(blueSample));\n\t\t\t}\n\t\t\treturn vec4(redTotal, greenTotal, blueTotal, float(1));\n\t\t})());\n\t\tonCleanup(() => {\n\t\t\tif (horizontalTexture?.renderTarget?.dispose) horizontalTexture.renderTarget.dispose();\n\t\t});\n\t\treturn Fn(() => {\n\t\t\tconst uv$1 = screenUV;\n\t\t\tconst pixelSize = vec2(1).div(viewportSize);\n\t\t\tconst redTotal = float(0).toVar();\n\t\t\tconst greenTotal = float(0).toVar();\n\t\t\tconst blueTotal = float(0).toVar();\n\t\t\tfor (let y = -6; y <= 6; y++) {\n\t\t\t\tconst weight = float(weights[y + 6] / weightSum);\n\t\t\t\tconst yOffset = float(y).mul(pixelSize.y);\n\t\t\t\tconst redOffset = vec2(float(0), yOffset.mul(redRadius));\n\t\t\t\tconst greenOffset = vec2(float(0), yOffset.mul(greenRadius));\n\t\t\t\tconst blueOffset = vec2(float(0), yOffset.mul(blueRadius));\n\t\t\t\tconst redSample = horizontalTexture.sample(uv$1.add(redOffset)).r.mul(weight);\n\t\t\t\tconst greenSample = horizontalTexture.sample(uv$1.add(greenOffset)).g.mul(weight);\n\t\t\t\tconst blueSample = horizontalTexture.sample(uv$1.add(blueOffset)).b.mul(weight);\n\t\t\t\tredTotal.assign(redTotal.add(redSample));\n\t\t\t\tgreenTotal.assign(greenTotal.add(greenSample));\n\t\t\t\tblueTotal.assign(blueTotal.add(blueSample));\n\t\t\t}\n\t\t\tconst originalAlpha = childTexture.sample(uv$1).a;\n\t\t\treturn unpremultiplyAlpha(vec4(redTotal, greenTotal, blueTotal, originalAlpha));\n\t\t})();\n\t}\n};\nvar ChannelBlur_default = componentDefinition;\nexport { componentDefinition as n, ChannelBlur_default as t };\n","import { a as transformColor, o as transformColorSpace, t as colorSpaceOptions } from \"./transformations-CJcUeZIC.js\";\nimport { t as mixColors } from \"./colorMixing-BPpDnR5I.js\";\nimport { float, floor, fract, min, mod, screenUV, smoothstep, vec2, viewportSize } from \"three/tsl\";\nconst componentDefinition = {\n\tname: \"Checkerboard\",\n\tcategory: \"Textures\",\n\tdescription: \"Classic checkerboard pattern with two alternating colors\",\n\tprops: {\n\t\tcolorA: {\n\t\t\tdefault: \"#cccccc\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"First color of the checkerboard pattern\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Color A\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tcolorB: {\n\t\t\tdefault: \"#999999\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Second color of the checkerboard pattern\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Color B\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tcells: {\n\t\t\tdefault: 8,\n\t\t\tdescription: \"Number of cells along the shortest canvas edge (creates square cells)\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 1,\n\t\t\t\tmax: 50,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Cells\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tsoftness: {\n\t\t\tdefault: 0,\n\t\t\tdescription: \"Smoothness of the transition between colors (0 = hard edges, 1 = very soft)\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Softness\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tcolorSpace: {\n\t\t\tdefault: \"linear\",\n\t\t\ttransform: transformColorSpace,\n\t\t\tcompileTime: true,\n\t\t\tdescription: \"Color space for color interpolation\",\n\t\t\tui: {\n\t\t\t\ttype: \"select\",\n\t\t\t\toptions: colorSpaceOptions,\n\t\t\t\tlabel: \"Color Space\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t}\n\t},\n\tfragmentNode: ({ uniforms }) => {\n\t\tconst uv$1 = screenUV;\n\t\tconst aspect = viewportSize.x.div(viewportSize.y);\n\t\tconst correctedUV = vec2(uv$1.x.mul(aspect), uv$1.y.oneMinus());\n\t\tconst cells = uniforms.cells.uniform;\n\t\tconst softness = uniforms.softness.uniform;\n\t\tconst gridUV = correctedUV.mul(cells);\n\t\tconst gridCoords = floor(gridUV);\n\t\tconst checkerValue = mod(gridCoords.x.add(gridCoords.y), 2);\n\t\tconst cellUV = fract(gridUV);\n\t\tconst distToEdge = min(min(cellUV.x, float(1).sub(cellUV.x)), min(cellUV.y, float(1).sub(cellUV.y)));\n\t\tconst softRange = softness.mul(.5).add(1e-4);\n\t\tconst edgeBlend = smoothstep(float(0), softRange, distToEdge);\n\t\tconst blendFactor = checkerValue.mul(edgeBlend).add(float(.5).mul(float(1).sub(edgeBlend)));\n\t\treturn mixColors(uniforms.colorA.uniform, uniforms.colorB.uniform, blendFactor, uniforms.colorSpace.uniform.value);\n\t}\n};\nvar Checkerboard_default = componentDefinition;\nexport { componentDefinition as n, Checkerboard_default as t };\n","import { a as transformColor, o as transformColorSpace, r as transformAngle, t as colorSpaceOptions } from \"./transformations-CJcUeZIC.js\";\nimport { t as mixColors } from \"./colorMixing-BPpDnR5I.js\";\nimport { t as createAnimatedTime } from \"./time-DUqSFWvT.js\";\nimport { cos, fract, fwidth, mix, screenUV, sin, smoothstep, vec4, viewportSize } from \"three/tsl\";\nconst componentDefinition = {\n\tname: \"Chevron\",\n\tcategory: \"Textures\",\n\tdescription: \"Animated chevron / zigzag stripe pattern\",\n\tprops: {\n\t\tcolorA: {\n\t\t\tdefault: \"#000000\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"First color\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Color A\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tcolorB: {\n\t\t\tdefault: \"#ffffff\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Second color\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Color B\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tcount: {\n\t\t\tdefault: 5,\n\t\t\tdescription: \"Number of chevron pairs visible\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 1,\n\t\t\t\tmax: 30,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Count\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tangle: {\n\t\t\tdefault: 0,\n\t\t\ttransform: transformAngle,\n\t\t\tdescription: \"Rotation angle of the chevrons\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: -180,\n\t\t\t\tmax: 180,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Angle\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tbalance: {\n\t\t\tdefault: .5,\n\t\t\tdescription: \"Ratio of the two colors\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Balance\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tsoftness: {\n\t\t\tdefault: 0,\n\t\t\tdescription: \"Edge softness\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Softness\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tspeed: {\n\t\t\tdefault: 0,\n\t\t\tdescription: \"Animation speed\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: -2,\n\t\t\t\tmax: 2,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Speed\",\n\t\t\t\tgroup: \"Animation\"\n\t\t\t}\n\t\t},\n\t\toffset: {\n\t\t\tdefault: 0,\n\t\t\tdescription: \"Phase offset for pattern positioning\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Offset\",\n\t\t\t\tgroup: \"Animation\"\n\t\t\t}\n\t\t},\n\t\tcolorSpace: {\n\t\t\tdefault: \"linear\",\n\t\t\ttransform: transformColorSpace,\n\t\t\tcompileTime: true,\n\t\t\tdescription: \"Color space for interpolation\",\n\t\t\tui: {\n\t\t\t\ttype: \"select\",\n\t\t\t\toptions: colorSpaceOptions,\n\t\t\t\tlabel: \"Color Space\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t}\n\t},\n\tfragmentNode: (params) => {\n\t\tconst { uniforms } = params;\n\t\tconst uv$1 = screenUV;\n\t\tconst aspect = viewportSize.x.div(viewportSize.y);\n\t\tconst au = uv$1.x.mul(aspect);\n\t\tconst av = uv$1.y;\n\t\tconst angleRad = uniforms.angle.uniform.mul(.0174533);\n\t\tconst cosA = cos(angleRad);\n\t\tconst sinA = sin(angleRad);\n\t\tconst cu = au.sub(aspect.mul(.5));\n\t\tconst cv = av.sub(.5);\n\t\tconst rotU = cu.mul(cosA).add(cv.mul(sinA));\n\t\tconst rotV = cu.mul(sinA).negate().add(cv.mul(cosA));\n\t\tconst count = uniforms.count.uniform;\n\t\tconst animTime = createAnimatedTime(params, uniforms.speed);\n\t\tconst zigzag = fract(rotV.mul(count)).sub(.5).abs().mul(2);\n\t\tconst stripeCoord = rotU.mul(count).add(zigzag.mul(.5)).add(animTime).add(uniforms.offset.uniform);\n\t\tconst pattern = fract(stripeCoord);\n\t\tconst fw = fwidth(stripeCoord);\n\t\tconst balance = uniforms.balance.uniform;\n\t\tconst soft = uniforms.softness.uniform;\n\t\tconst mask = smoothstep(balance.sub(soft).sub(fw), balance.add(soft).add(fw), pattern);\n\t\treturn vec4(mixColors(uniforms.colorA.uniform, uniforms.colorB.uniform, mask, uniforms.colorSpace.uniform.value).rgb, mix(uniforms.colorA.uniform.a, uniforms.colorB.uniform.a, mask));\n\t}\n};\nvar Chevron_default = componentDefinition;\nexport { componentDefinition as n, Chevron_default as t };\n","import { a as transformColor } from \"./transformations-CJcUeZIC.js\";\nimport { DataTexture, FloatType, LinearFilter, RGFormat } from \"three\";\nimport { float, mix, screenUV, smoothstep, texture, uniform, vec2, vec4 } from \"three/tsl\";\nconst componentDefinition = {\n\tname: \"ChromaFlow\",\n\tcategory: \"Interactive\",\n\tdescription: \"Interactive liquid flow effect that follows your cursor\",\n\tusesPointer: true,\n\tprops: {\n\t\tbaseColor: {\n\t\t\tdefault: \"#0066ff\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Base liquid color\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Base Color\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tupColor: {\n\t\t\tdefault: \"#00ff00\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Color for upward movement\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Up Color\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tdownColor: {\n\t\t\tdefault: \"#ff0000\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Color for downward movement\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Down Color\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tleftColor: {\n\t\t\tdefault: \"#0000ff\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Color for leftward movement\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Left Color\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\trightColor: {\n\t\t\tdefault: \"#ffff00\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Color for rightward movement\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Right Color\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tintensity: {\n\t\t\tdefault: 1,\n\t\t\tdescription: \"Strength of the liquid effect\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: .5,\n\t\t\t\tmax: 1.5,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Intensity\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tradius: {\n\t\t\tdefault: 3,\n\t\t\tdescription: \"Radius of the liquid effect\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 5,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Radius\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tmomentum: {\n\t\t\tdefault: 30,\n\t\t\tdescription: \"How much momentum colors retain in their flow direction\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 10,\n\t\t\t\tmax: 60,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Momentum\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t}\n\t},\n\tfragmentNode: ({ uniforms, onBeforeRender, onCleanup, dimensions }) => {\n\t\tconst GRID_SIZE = 128;\n\t\tconst displacementData = new Float32Array(GRID_SIZE * GRID_SIZE * 2);\n\t\tconst liquidData = new Float32Array(GRID_SIZE * GRID_SIZE * 2);\n\t\tconst tempDisplacementData = new Float32Array(GRID_SIZE * GRID_SIZE * 2);\n\t\tconst tempLiquidData = new Float32Array(GRID_SIZE * GRID_SIZE * 2);\n\t\tconst displacementTexture = new DataTexture(displacementData, GRID_SIZE, GRID_SIZE, RGFormat, FloatType);\n\t\tdisplacementTexture.magFilter = LinearFilter;\n\t\tdisplacementTexture.minFilter = LinearFilter;\n\t\tdisplacementTexture.needsUpdate = true;\n\t\tconst liquidTexture = new DataTexture(liquidData, GRID_SIZE, GRID_SIZE, RGFormat, FloatType);\n\t\tliquidTexture.magFilter = LinearFilter;\n\t\tliquidTexture.minFilter = LinearFilter;\n\t\tliquidTexture.needsUpdate = true;\n\t\tconst displacementField = texture(displacementTexture);\n\t\tconst liquidField = texture(liquidTexture);\n\t\tconst mouseX = uniform(.5);\n\t\tconst mouseY = uniform(.5);\n\t\tconst mouseVelX = uniform(0);\n\t\tconst mouseVelY = uniform(0);\n\t\tlet prevX = .5;\n\t\tlet prevY = .5;\n\t\tlet lastTime = Date.now();\n\t\tonBeforeRender(({ pointer }) => {\n\t\t\tconst currentTime = Date.now();\n\t\t\tconst dt = Math.min((currentTime - lastTime) / 1e3, .016);\n\t\t\tlastTime = currentTime;\n\t\t\tconst aspect = dimensions.width / dimensions.height;\n\t\t\tconst velX = dt > 0 ? (pointer.x - prevX) / dt : 0;\n\t\t\tconst velY = dt > 0 ? (pointer.y - prevY) / dt : 0;\n\t\t\tmouseVelX.value = mouseVelX.value * .85 + velX * .15;\n\t\t\tmouseVelY.value = mouseVelY.value * .85 + velY * .15;\n\t\t\tmouseX.value = pointer.x;\n\t\t\tmouseY.value = pointer.y;\n\t\t\tconst intensity = uniforms.intensity.uniform.value;\n\t\t\tconst radius = uniforms.radius.uniform.value * .05;\n\t\t\tconst momentum = uniforms.momentum.uniform.value;\n\t\t\ttempDisplacementData.set(displacementData);\n\t\t\ttempLiquidData.set(liquidData);\n\t\t\tconst flowFadeRate = 1 - dt / Math.max(.1, 1);\n\t\t\tfor (let i = 0; i < GRID_SIZE * GRID_SIZE * 2; i++) tempDisplacementData[i] = displacementData[i] * flowFadeRate;\n\t\t\tfor (let i = 0; i < GRID_SIZE; i++) for (let j = 0; j < GRID_SIZE; j++) {\n\t\t\t\tconst idx = (i * GRID_SIZE + j) * 2;\n\t\t\t\tconst liquidFadeRate = 1 - dt / Math.max(.4, 1);\n\t\t\t\ttempLiquidData[idx] = liquidData[idx] * liquidFadeRate;\n\t\t\t\ttempLiquidData[idx + 1] = liquidData[idx + 1] * liquidFadeRate;\n\t\t\t\tif (Math.abs(displacementData[idx]) > .001 || Math.abs(displacementData[idx + 1]) > .001) {\n\t\t\t\t\tconst flowSpeed = momentum * 50 * dt;\n\t\t\t\t\tconst advectX = j - displacementData[idx] * flowSpeed;\n\t\t\t\t\tconst advectY = i - displacementData[idx + 1] * flowSpeed;\n\t\t\t\t\tconst x0 = Math.floor(advectX);\n\t\t\t\t\tconst y0 = Math.floor(advectY);\n\t\t\t\t\tconst x1 = x0 + 1;\n\t\t\t\t\tconst y1 = y0 + 1;\n\t\t\t\t\tif (x0 >= 0 && y0 >= 0 && x1 < GRID_SIZE && y1 < GRID_SIZE) {\n\t\t\t\t\t\tconst fx = advectX - x0;\n\t\t\t\t\t\tconst fy = advectY - y0;\n\t\t\t\t\t\tconst idx00 = (y0 * GRID_SIZE + x0) * 2;\n\t\t\t\t\t\tconst idx01 = (y0 * GRID_SIZE + x1) * 2;\n\t\t\t\t\t\tconst idx10 = (y1 * GRID_SIZE + x0) * 2;\n\t\t\t\t\t\tconst idx11 = (y1 * GRID_SIZE + x1) * 2;\n\t\t\t\t\t\ttempLiquidData[idx] = (liquidData[idx00] * (1 - fx) * (1 - fy) + liquidData[idx01] * fx * (1 - fy) + liquidData[idx10] * (1 - fx) * fy + liquidData[idx11] * fx * fy) * liquidFadeRate;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tfor (let i = 0; i < GRID_SIZE; i++) for (let j = 0; j < GRID_SIZE; j++) {\n\t\t\t\tconst idx = (i * GRID_SIZE + j) * 2;\n\t\t\t\tconst cellX = (j + .5) / GRID_SIZE;\n\t\t\t\tconst cellY = (i + .5) / GRID_SIZE;\n\t\t\t\tconst dx = aspect >= 1 ? (cellX - pointer.x) * aspect : cellX - pointer.x;\n\t\t\t\tconst dy = aspect >= 1 ? cellY - pointer.y : (cellY - pointer.y) / aspect;\n\t\t\t\tconst dist = Math.sqrt(dx * dx + dy * dy);\n\t\t\t\tconst speed = Math.sqrt(mouseVelX.value * mouseVelX.value + mouseVelY.value * mouseVelY.value);\n\t\t\t\tconst effectiveRadius = radius * Math.min(speed * speed * 20, 1);\n\t\t\t\tif (dist < effectiveRadius * 2 && Math.abs(velX) + Math.abs(velY) > .01) {\n\t\t\t\t\tconst influence = Math.exp(-dist * dist / (effectiveRadius * effectiveRadius));\n\t\t\t\t\ttempDisplacementData[idx] += mouseVelX.value * influence * (intensity * 100) * dt * .01;\n\t\t\t\t\ttempDisplacementData[idx + 1] += mouseVelY.value * influence * (intensity * 100) * dt * .01;\n\t\t\t\t\tconst speedMultiplier = Math.min(speed * 10, 1);\n\t\t\t\t\ttempLiquidData[idx] += influence * (intensity * 100) * dt * .01 * speedMultiplier;\n\t\t\t\t\ttempLiquidData[idx + 1] = 0;\n\t\t\t\t}\n\t\t\t\ttempDisplacementData[idx] = Math.max(-1, Math.min(1, tempDisplacementData[idx]));\n\t\t\t\ttempDisplacementData[idx + 1] = Math.max(-1, Math.min(1, tempDisplacementData[idx + 1]));\n\t\t\t\ttempLiquidData[idx] = Math.max(0, Math.min(1, tempLiquidData[idx]));\n\t\t\t\ttempLiquidData[idx + 1] = 0;\n\t\t\t}\n\t\t\tdisplacementData.set(tempDisplacementData);\n\t\t\tliquidData.set(tempLiquidData);\n\t\t\tdisplacementTexture.needsUpdate = true;\n\t\t\tliquidTexture.needsUpdate = true;\n\t\t\tprevX = pointer.x;\n\t\t\tprevY = pointer.y;\n\t\t});\n\t\tonCleanup(() => {\n\t\t\tdisplacementTexture.dispose();\n\t\t\tliquidTexture.dispose();\n\t\t});\n\t\tconst liquidDensity = liquidField.sample(screenUV).x;\n\t\tconst pixelSize = vec2(float(1 / 128), float(1 / 128));\n\t\tconst sample1 = liquidField.sample(screenUV.add(vec2(pixelSize.x, float(0)))).x;\n\t\tconst sample2 = liquidField.sample(screenUV.add(vec2(float(0), pixelSize.y))).x;\n\t\tconst sample3 = liquidField.sample(screenUV.add(vec2(pixelSize.x.negate(), float(0)))).x;\n\t\tconst sample4 = liquidField.sample(screenUV.add(vec2(float(0), pixelSize.y.negate()))).x;\n\t\tconst smoothedLiquid = liquidDensity.add(sample1).add(sample2).add(sample3).add(sample4).mul(float(.2));\n\t\tconst liquidIntensity = smoothstep(float(0), float(.1), smoothedLiquid);\n\t\tconst flowPixelSize = vec2(float(1 / 128), float(1 / 128));\n\t\tconst centerFlow = displacementField.sample(screenUV).xy;\n\t\tconst flowSample1 = displacementField.sample(screenUV.add(vec2(flowPixelSize.x, float(0)))).xy;\n\t\tconst flowSample2 = displacementField.sample(screenUV.add(vec2(float(0), flowPixelSize.y))).xy;\n\t\tconst flowSample3 = displacementField.sample(screenUV.add(vec2(flowPixelSize.x.negate(), float(0)))).xy;\n\t\tconst flowSample4 = displacementField.sample(screenUV.add(vec2(float(0), flowPixelSize.y.negate()))).xy;\n\t\tconst flowVectors = centerFlow.add(flowSample1).add(flowSample2).add(flowSample3).add(flowSample4).mul(float(.2));\n\t\tconst baseColor = uniforms.baseColor.uniform;\n\t\tconst upColor = uniforms.upColor.uniform;\n\t\tconst downColor = uniforms.downColor.uniform;\n\t\tconst leftColor = uniforms.leftColor.uniform;\n\t\tconst rightColor = uniforms.rightColor.uniform;\n\t\tconst flowMagnitude = flowVectors.x.mul(flowVectors.x).add(flowVectors.y.mul(flowVectors.y)).sqrt();\n\t\tconst hasFlow = smoothstep(float(.01), float(.1), flowMagnitude);\n\t\tconst normalizedX = flowVectors.x.div(flowMagnitude.add(float(.001)));\n\t\tconst normalizedY = flowVectors.y.div(flowMagnitude.add(float(.001)));\n\t\tconst rightAmount = smoothstep(float(0), float(.7), normalizedX.max(float(0)));\n\t\tconst leftAmount = smoothstep(float(0), float(.7), normalizedX.negate().max(float(0)));\n\t\tconst upAmount = smoothstep(float(0), float(.7), normalizedY.max(float(0)));\n\t\tconst downAmount = smoothstep(float(0), float(.7), normalizedY.negate().max(float(0)));\n\t\tconst horizontalColor = leftColor.mul(leftAmount).add(rightColor.mul(rightAmount));\n\t\tconst verticalColor = downColor.mul(downAmount).add(upColor.mul(upAmount));\n\t\tconst horizontalWeight = leftAmount.add(rightAmount);\n\t\tconst verticalWeight = upAmount.add(downAmount);\n\t\tconst totalWeight = horizontalWeight.add(verticalWeight).add(float(.001));\n\t\tconst finalColor = mix(baseColor, horizontalColor.mul(horizontalWeight.div(totalWeight)).add(verticalColor.mul(verticalWeight.div(totalWeight))), hasFlow);\n\t\treturn vec4(finalColor.rgb.mul(liquidIntensity), finalColor.a.mul(liquidIntensity));\n\t}\n};\nvar ChromaFlow_default = componentDefinition;\nexport { componentDefinition as n, ChromaFlow_default as t };\n","import { r as transformAngle } from \"./transformations-CJcUeZIC.js\";\nimport { t as unpremultiplyAlpha } from \"./alpha-C4ptedXe.js\";\nimport { convertToTexture, cos, radians, screenUV, sin, vec2, vec4, viewportSize } from \"three/tsl\";\nconst componentDefinition = {\n\tname: \"ChromaticAberration\",\n\tcategory: \"Stylize\",\n\tdescription: \"Separate RGB channels for a prismatic distortion effect\",\n\trequiresRTT: true,\n\trequiresChild: true,\n\tprops: {\n\t\tstrength: {\n\t\t\tdefault: .2,\n\t\t\tdescription: \"Overall strength of the chromatic aberration effect\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .05,\n\t\t\t\tlabel: \"Strength\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tangle: {\n\t\t\tdefault: 0,\n\t\t\ttransform: transformAngle,\n\t\t\tdescription: \"Direction of the chromatic aberration in degrees\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 360,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Angle\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tredOffset: {\n\t\t\tdefault: -1,\n\t\t\tdescription: \"Red channel offset multiplier\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: -2,\n\t\t\t\tmax: 2,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Red Offset\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tgreenOffset: {\n\t\t\tdefault: 0,\n\t\t\tdescription: \"Green channel offset multiplier\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: -2,\n\t\t\t\tmax: 2,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Green Offset\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tblueOffset: {\n\t\t\tdefault: 1,\n\t\t\tdescription: \"Blue channel offset multiplier\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: -2,\n\t\t\t\tmax: 2,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Blue Offset\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t}\n\t},\n\tfragmentNode: ({ uniforms, childNode, onCleanup }) => {\n\t\tif (!childNode) return vec4(0, 0, 0, 0);\n\t\tconst childTexture = convertToTexture(childNode);\n\t\tonCleanup(() => {\n\t\t\tif (childTexture?.renderTarget?.dispose) childTexture.renderTarget.dispose();\n\t\t});\n\t\tconst angleRad = radians(uniforms.angle.uniform);\n\t\tconst aspect = viewportSize.x.div(viewportSize.y);\n\t\tconst direction = vec2(cos(angleRad).div(aspect), sin(angleRad));\n\t\tconst scaledStrength = uniforms.strength.uniform.mul(.1);\n\t\tconst offsetBase = direction.mul(scaledStrength).toVar();\n\t\tconst redUV = screenUV.add(offsetBase.mul(uniforms.redOffset.uniform));\n\t\tconst greenUV = screenUV.add(offsetBase.mul(uniforms.greenOffset.uniform));\n\t\tconst blueUV = screenUV.add(offsetBase.mul(uniforms.blueOffset.uniform));\n\t\tconst redChannel = childTexture.sample(redUV).r;\n\t\tconst greenSample = childTexture.sample(greenUV);\n\t\tconst blueChannel = childTexture.sample(blueUV).b;\n\t\treturn unpremultiplyAlpha(vec4(redChannel, greenSample.g, blueChannel, greenSample.a));\n\t}\n};\nvar ChromaticAberration_default = componentDefinition;\nexport { componentDefinition as n, ChromaticAberration_default as t };\n","import { a as transformColor, l as transformPosition, o as transformColorSpace, t as colorSpaceOptions } from \"./transformations-CJcUeZIC.js\";\nimport { t as mixColors } from \"./colorMixing-BPpDnR5I.js\";\nimport { float, length, screenUV, smoothstep, vec2, vec4, viewportSize } from \"three/tsl\";\nvar transformStrokePosition = (value) => {\n\tconst mode = {\n\t\t\"outside\": 0,\n\t\t\"center\": 1,\n\t\t\"inside\": 2\n\t}[value.toLowerCase()];\n\tif (mode === void 0) {\n\t\tconsole.warn(`Invalid stroke position: ${value}. Defaulting to 'outside'.`);\n\t\treturn 0;\n\t}\n\treturn mode;\n};\nconst componentDefinition = {\n\tname: \"Circle\",\n\tcategory: \"Shapes\",\n\tdescription: \"Generate a circle with adjustable size and softness\",\n\tprops: {\n\t\tcolor: {\n\t\t\tdefault: \"#ffffff\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"The color of the circle\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Color\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tradius: {\n\t\t\tdefault: 1,\n\t\t\tdescription: \"The radius of the circle. A value of one (1) is sets the circle to fit the canvas.\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 2,\n\t\t\t\tstep: .05,\n\t\t\t\tlabel: \"Radius\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tsoftness: {\n\t\t\tdefault: 0,\n\t\t\tdescription: \"Edge softness. Lower values like zero (0) are sharp, higher values like one (1) are softer.\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Softness\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tcenter: {\n\t\t\tdefault: {\n\t\t\t\tx: .5,\n\t\t\t\ty: .5\n\t\t\t},\n\t\t\ttransform: transformPosition,\n\t\t\tdescription: \"The center point of the circle\",\n\t\t\tui: {\n\t\t\t\ttype: \"position\",\n\t\t\t\tlabel: \"Center Position\",\n\t\t\t\tgroup: \"Position\"\n\t\t\t}\n\t\t},\n\t\tstrokeThickness: {\n\t\t\tdefault: 0,\n\t\t\tdescription: \"The thickness of the stroke outline. Zero (0) means no stroke.\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: .5,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Stroke Thickness\",\n\t\t\t\tgroup: \"Stroke\"\n\t\t\t}\n\t\t},\n\t\tstrokeColor: {\n\t\t\tdefault: \"#000000\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"The color of the stroke outline\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Stroke Color\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tstrokePosition: {\n\t\t\tdefault: \"center\",\n\t\t\ttransform: transformStrokePosition,\n\t\t\tdescription: \"Position of the stroke relative to the circle edge\",\n\t\t\tui: {\n\t\t\t\ttype: \"select\",\n\t\t\t\toptions: [\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Outside\",\n\t\t\t\t\t\tvalue: \"outside\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Center\",\n\t\t\t\t\t\tvalue: \"center\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Inside\",\n\t\t\t\t\t\tvalue: \"inside\"\n\t\t\t\t\t}\n\t\t\t\t],\n\t\t\t\tlabel: \"Stroke Position\",\n\t\t\t\tgroup: \"Stroke\"\n\t\t\t}\n\t\t},\n\t\tcolorSpace: {\n\t\t\tdefault: \"linear\",\n\t\t\ttransform: transformColorSpace,\n\t\t\tcompileTime: true,\n\t\t\tdescription: \"Color space for blending fill and stroke colors in soft edges\",\n\t\t\tui: {\n\t\t\t\ttype: \"select\",\n\t\t\t\toptions: colorSpaceOptions,\n\t\t\t\tlabel: \"Color Blending\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t}\n\t},\n\tfragmentNode: ({ uniforms }) => {\n\t\tconst uv$1 = screenUV;\n\t\tconst aspect = viewportSize.x.div(viewportSize.y);\n\t\tconst aspectCorrectedUV = vec2(uv$1.x.mul(aspect), uv$1.y);\n\t\tconst centerPos = vec2(uniforms.center.uniform.x.mul(aspect), uniforms.center.uniform.y.oneMinus());\n\t\tconst distanceFromCenter = length(aspectCorrectedUV.sub(centerPos));\n\t\tconst edgeSoftness = uniforms.softness.uniform;\n\t\tconst circleEdge = uniforms.radius.uniform.mul(.5);\n\t\tconst strokeThickness = uniforms.strokeThickness.uniform;\n\t\tconst strokePositionMode = uniforms.strokePosition.uniform;\n\t\tconst isCenter = strokePositionMode.greaterThanEqual(float(.5)).and(strokePositionMode.lessThan(float(1.5)));\n\t\tconst isInside = strokePositionMode.greaterThanEqual(float(1.5));\n\t\tconst halfThickness = strokeThickness.mul(.5);\n\t\tconst strokeInner = isInside.select(circleEdge.sub(strokeThickness), isCenter.select(circleEdge.sub(halfThickness), circleEdge));\n\t\tconst strokeOuter = isInside.select(circleEdge, isCenter.select(circleEdge.add(halfThickness), circleEdge.add(strokeThickness)));\n\t\tconst overallMask = smoothstep(strokeOuter.sub(edgeSoftness), strokeOuter, distanceFromCenter).oneMinus();\n\t\tconst strokeBlend = strokeThickness.greaterThan(float(0)).select(smoothstep(strokeInner.sub(edgeSoftness), strokeInner, distanceFromCenter), float(0));\n\t\tconst blendedColor = mixColors(vec4(uniforms.color.uniform.rgb, uniforms.color.uniform.a), vec4(uniforms.strokeColor.uniform.rgb, uniforms.strokeColor.uniform.a), strokeBlend, uniforms.colorSpace.uniform.value);\n\t\treturn vec4(blendedColor.xyz, blendedColor.w.mul(overallMask));\n\t}\n};\nvar Circle_default = componentDefinition;\nexport { componentDefinition as n, Circle_default as t };\n","import { a as transformColor, o as transformColorSpace, r as transformAngle, t as colorSpaceOptions } from \"./transformations-CJcUeZIC.js\";\nimport { t as mixColors } from \"./colorMixing-BPpDnR5I.js\";\nimport { t as createAnimatedTime } from \"./time-DUqSFWvT.js\";\nimport { clamp, cos, float, floor, fract, mix, screenUV, sin, step, vec4, viewportSize } from \"three/tsl\";\nconst componentDefinition = {\n\tname: \"ColorWheel\",\n\tcategory: \"Textures\",\n\tdescription: \"A directional gradient that smoothly cycles through rainbow colors or a custom set of three colors\",\n\tprops: {\n\t\tmode: {\n\t\t\tdefault: \"rainbow\",\n\t\t\tcompileTime: true,\n\t\t\tdescription: \"Rainbow cycles through the full spectrum; Custom loops through your three chosen colors\",\n\t\t\tui: {\n\t\t\t\ttype: \"select\",\n\t\t\t\toptions: [{\n\t\t\t\t\tlabel: \"Rainbow\",\n\t\t\t\t\tvalue: \"rainbow\"\n\t\t\t\t}, {\n\t\t\t\t\tlabel: \"Custom\",\n\t\t\t\t\tvalue: \"custom\"\n\t\t\t\t}],\n\t\t\t\tlabel: \"Mode\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tcolorA: {\n\t\t\tdefault: \"#ff0000\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"First color in the cycle\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Color 1\",\n\t\t\t\tgroup: \"Colors\",\n\t\t\t\tcondition: { mode: \"custom\" }\n\t\t\t}\n\t\t},\n\t\tcolorB: {\n\t\t\tdefault: \"#00ff88\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Second color in the cycle\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Color 2\",\n\t\t\t\tgroup: \"Colors\",\n\t\t\t\tcondition: { mode: \"custom\" }\n\t\t\t}\n\t\t},\n\t\tcolorC: {\n\t\t\tdefault: \"#0066ff\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Third color in the cycle\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Color 3\",\n\t\t\t\tgroup: \"Colors\",\n\t\t\t\tcondition: { mode: \"custom\" }\n\t\t\t}\n\t\t},\n\t\tscale: {\n\t\t\tdefault: 1,\n\t\t\tdescription: \"Number of color cycles across the viewport\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: .1,\n\t\t\t\tmax: 10,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Scale\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tangle: {\n\t\t\tdefault: 0,\n\t\t\ttransform: transformAngle,\n\t\t\tdescription: \"Direction the gradient flows\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: -180,\n\t\t\t\tmax: 180,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Angle\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tspeed: {\n\t\t\tdefault: .05,\n\t\t\tdescription: \"Speed at which the gradient cycles\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: -1,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Speed\",\n\t\t\t\tgroup: \"Animation\"\n\t\t\t}\n\t\t},\n\t\tcolorSpace: {\n\t\t\tdefault: \"oklch\",\n\t\t\ttransform: transformColorSpace,\n\t\t\tcompileTime: true,\n\t\t\tdescription: \"Color space for blending between custom colors\",\n\t\t\tui: {\n\t\t\t\ttype: \"select\",\n\t\t\t\toptions: colorSpaceOptions,\n\t\t\t\tlabel: \"Color Space\",\n\t\t\t\tgroup: \"Colors\",\n\t\t\t\tcondition: { mode: \"custom\" }\n\t\t\t}\n\t\t}\n\t},\n\tfragmentNode: (params) => {\n\t\tconst { uniforms } = params;\n\t\tconst uv$1 = screenUV;\n\t\tconst aspect = viewportSize.x.div(viewportSize.y);\n\t\tconst angleRad = uniforms.angle.uniform.mul(.0174533);\n\t\tconst cosA = cos(angleRad);\n\t\tconst sinA = sin(angleRad);\n\t\tconst au = uv$1.x.mul(aspect);\n\t\tconst av = uv$1.y;\n\t\tconst projectedCoord = au.mul(cosA).add(av.mul(sinA));\n\t\tconst animTime = createAnimatedTime(params, uniforms.speed);\n\t\tconst t = fract(projectedCoord.mul(uniforms.scale.uniform).mul(float(.2)).add(animTime));\n\t\tif (uniforms.mode.uniform.value === \"rainbow\") {\n\t\t\tconst h6 = t.mul(float(6));\n\t\t\treturn vec4(clamp(h6.sub(float(3)).abs().sub(float(1)), float(0), float(1)), clamp(float(2).sub(h6.sub(float(2)).abs()), float(0), float(1)), clamp(float(2).sub(h6.sub(float(4)).abs()), float(0), float(1)), float(1));\n\t\t} else {\n\t\t\tconst t3 = t.mul(float(3));\n\t\t\tconst si = fract(t3);\n\t\t\tconst floorT3 = floor(t3);\n\t\t\tconst c01 = mixColors(uniforms.colorA.uniform, uniforms.colorB.uniform, si, uniforms.colorSpace.uniform.value);\n\t\t\tconst c12 = mixColors(uniforms.colorB.uniform, uniforms.colorC.uniform, si, uniforms.colorSpace.uniform.value);\n\t\t\tlet result = mixColors(uniforms.colorC.uniform, uniforms.colorA.uniform, si, uniforms.colorSpace.uniform.value);\n\t\t\tresult = mix(result, c12, step(floorT3, float(1.5)));\n\t\t\tresult = mix(result, c01, step(floorT3, float(.5)));\n\t\t\treturn vec4(result.rgb, result.a);\n\t\t}\n\t}\n};\nvar ColorWheel_default = componentDefinition;\nexport { componentDefinition as n, ColorWheel_default as t };\n","import { t as applyEdgeHandling } from \"./edges-CX_lJB9R.js\";\nimport { c as transformEdges, l as transformPosition } from \"./transformations-CJcUeZIC.js\";\nimport { t as unpremultiplyAlpha } from \"./alpha-C4ptedXe.js\";\nimport { t as createAnimatedTime } from \"./time-DUqSFWvT.js\";\nimport { Fn, convertToTexture, cos, float, floor, fract, mix, mod, screenUV, sin, smoothstep, vec2, vec4, viewportSize } from \"three/tsl\";\nconst componentDefinition = {\n\tname: \"ConcentricSpin\",\n\tcategory: \"Distortions\",\n\tdescription: \"Concentric rings that each rotate the underlying image by different amounts\",\n\trequiresRTT: true,\n\trequiresChild: true,\n\tprops: {\n\t\tintensity: {\n\t\t\tdefault: 20,\n\t\t\tdescription: \"Maximum rotation angle per ring\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 100,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Intensity\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\trings: {\n\t\t\tdefault: 8,\n\t\t\tdescription: \"Number of concentric rings\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 1,\n\t\t\t\tmax: 30,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Rings\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tsmoothness: {\n\t\t\tdefault: .03,\n\t\t\tdescription: \"Softness of transitions between rings\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Smoothness\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tseed: {\n\t\t\tdefault: 0,\n\t\t\tdescription: \"Randomization seed for per-ring rotation variation\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 100,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Seed\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tspeed: {\n\t\t\tdefault: .1,\n\t\t\tdescription: \"Speed of continuous ring rotation\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: -5,\n\t\t\t\tmax: 5,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Speed\",\n\t\t\t\tgroup: \"Animation\"\n\t\t\t}\n\t\t},\n\t\tspeedRandomness: {\n\t\t\tdefault: .5,\n\t\t\tdescription: \"How much each ring varies in rotation speed and direction\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Speed Randomness\",\n\t\t\t\tgroup: \"Animation\"\n\t\t\t}\n\t\t},\n\t\tedges: {\n\t\t\tdefault: \"mirror\",\n\t\t\tdescription: \"How to handle edges when distortion pushes content out of bounds\",\n\t\t\ttransform: transformEdges,\n\t\t\tcompileTime: true,\n\t\t\tui: {\n\t\t\t\ttype: \"select\",\n\t\t\t\toptions: [\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Stretch\",\n\t\t\t\t\t\tvalue: \"stretch\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Transparent\",\n\t\t\t\t\t\tvalue: \"transparent\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Mirror\",\n\t\t\t\t\t\tvalue: \"mirror\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Wrap\",\n\t\t\t\t\t\tvalue: \"wrap\"\n\t\t\t\t\t}\n\t\t\t\t],\n\t\t\t\tlabel: \"Edges\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tcenter: {\n\t\t\tdefault: {\n\t\t\t\tx: .5,\n\t\t\t\ty: .5\n\t\t\t},\n\t\t\ttransform: transformPosition,\n\t\t\tdescription: \"Center point of the concentric rings\",\n\t\t\tui: {\n\t\t\t\ttype: \"position\",\n\t\t\t\tlabel: \"Center Position\",\n\t\t\t\tgroup: \"Position\"\n\t\t\t}\n\t\t}\n\t},\n\tfragmentNode: (params) => {\n\t\tconst { uniforms, childNode, onCleanup } = params;\n\t\tif (!childNode) return vec4(0, 0, 0, 0);\n\t\tconst childTexture = convertToTexture(childNode);\n\t\tonCleanup(() => {\n\t\t\tif (childTexture?.renderTarget?.dispose) childTexture.renderTarget.dispose();\n\t\t});\n\t\tconst center = vec2(uniforms.center.uniform.x, uniforms.center.uniform.y.oneMinus());\n\t\tconst maxAngle = uniforms.intensity.uniform.mul(.01745);\n\t\tconst rings = uniforms.rings.uniform;\n\t\tconst edgeSoftness = uniforms.smoothness.uniform;\n\t\tconst seed = uniforms.seed.uniform;\n\t\tconst speedRandomness = uniforms.speedRandomness.uniform;\n\t\tconst aspect = viewportSize.x.div(viewportSize.y);\n\t\tconst animTime = createAnimatedTime(params, uniforms.speed);\n\t\tconst hash = (x) => fract(sin(x.mul(12.9898)).mul(43758.5453)).sub(.5).mul(2);\n\t\treturn Fn(() => {\n\t\t\tconst uv$1 = screenUV;\n\t\t\tconst dx = uv$1.x.sub(center.x).mul(aspect);\n\t\t\tconst dy = uv$1.y.sub(center.y);\n\t\t\tconst ringCoord = vec2(dx, dy).length().mul(rings);\n\t\t\tconst ringIndex = floor(ringCoord);\n\t\t\tconst ringFrac = fract(ringCoord);\n\t\t\tconst seedOffset = seed.mul(.137);\n\t\t\tconst staticA = hash(ringIndex.add(seedOffset)).mul(maxAngle);\n\t\t\tconst staticB = hash(ringIndex.add(1).add(seedOffset)).mul(maxAngle);\n\t\t\tconst ringSpeedA = mix(float(1), hash(ringIndex.add(42.7)), speedRandomness);\n\t\t\tconst ringSpeedB = mix(float(1), hash(ringIndex.add(1).add(42.7)), speedRandomness);\n\t\t\tconst animA = animTime.mul(.25).mul(ringSpeedA);\n\t\t\tconst animB = animTime.mul(.25).mul(ringSpeedB);\n\t\t\tconst totalA = staticA.add(animA);\n\t\t\tconst totalB = staticB.add(animB);\n\t\t\tconst TWO_PI = float(Math.PI * 2);\n\t\t\tconst diff = mod(totalB.sub(totalA).add(Math.PI), TWO_PI).sub(Math.PI);\n\t\t\tconst halfEdge = edgeSoftness.mul(.5).add(.001);\n\t\t\tconst blend = smoothstep(float(.5).sub(halfEdge), float(.5).add(halfEdge), ringFrac);\n\t\t\tconst angle = totalA.add(diff.mul(blend));\n\t\t\tconst cosA = cos(angle);\n\t\t\tconst sinA = sin(angle);\n\t\t\tconst rotX = dx.mul(cosA).sub(dy.mul(sinA));\n\t\t\tconst rotY = dx.mul(sinA).add(dy.mul(cosA));\n\t\t\tconst distortedUV = vec2(rotX.div(aspect).add(center.x), rotY.add(center.y));\n\t\t\treturn unpremultiplyAlpha(applyEdgeHandling(distortedUV, childTexture.sample(distortedUV), childTexture, uniforms.edges.uniform.value));\n\t\t})();\n\t}\n};\nvar ConcentricSpin_default = componentDefinition;\nexport { componentDefinition as n, ConcentricSpin_default as t };\n","import { a as transformColor, l as transformPosition, o as transformColorSpace, t as colorSpaceOptions } from \"./transformations-CJcUeZIC.js\";\nimport { t as mixColors } from \"./colorMixing-BPpDnR5I.js\";\nimport { atan, float, fract, screenUV, vec2, viewportSize } from \"three/tsl\";\nconst componentDefinition = {\n\tname: \"ConicGradient\",\n\tcategory: \"Textures\",\n\tdescription: \"Colors sweep in a full circle around a center point, like a color wheel\",\n\tprops: {\n\t\tcolorA: {\n\t\t\tdefault: \"#FF0080\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Starting color of the sweep\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Color A\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tcolorB: {\n\t\t\tdefault: \"#00BFFF\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Ending color of the sweep (wraps back to Color A)\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Color B\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tcenter: {\n\t\t\tdefault: {\n\t\t\t\tx: .5,\n\t\t\t\ty: .5\n\t\t\t},\n\t\t\ttransform: transformPosition,\n\t\t\tdescription: \"Center point of the sweep\",\n\t\t\tui: {\n\t\t\t\ttype: \"position\",\n\t\t\t\tlabel: \"Center\",\n\t\t\t\tgroup: \"Position\"\n\t\t\t}\n\t\t},\n\t\trotation: {\n\t\t\tdefault: 0,\n\t\t\tdescription: \"Rotation offset in degrees — shifts where Color A begins\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 360,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Rotation\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\trepeat: {\n\t\t\tdefault: 1,\n\t\t\tdescription: \"Number of times the gradient repeats around the circle. Values above 1 create a starburst pattern.\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 1,\n\t\t\t\tmax: 24,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Repeat\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tcolorSpace: {\n\t\t\tdefault: \"oklch\",\n\t\t\ttransform: transformColorSpace,\n\t\t\tcompileTime: true,\n\t\t\tdescription: \"Color space for color interpolation\",\n\t\t\tui: {\n\t\t\t\ttype: \"select\",\n\t\t\t\toptions: colorSpaceOptions,\n\t\t\t\tlabel: \"Color Space\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t}\n\t},\n\tfragmentNode: ({ uniforms }) => {\n\t\tconst uv$1 = screenUV;\n\t\tconst aspect = viewportSize.x.div(viewportSize.y);\n\t\tconst aspectUV = vec2(uv$1.x.mul(aspect), uv$1.y);\n\t\tconst centerPos = vec2(uniforms.center.uniform.x.mul(aspect), uniforms.center.uniform.y.oneMinus());\n\t\tconst dx = aspectUV.x.sub(centerPos.x);\n\t\tconst normalized = atan(aspectUV.y.sub(centerPos.y), dx).negate().div(float(2 * Math.PI)).add(float(.5));\n\t\tconst rotationFraction = uniforms.rotation.uniform.div(float(360));\n\t\tconst t = fract(normalized.add(rotationFraction).mul(uniforms.repeat.uniform));\n\t\treturn mixColors(uniforms.colorA.uniform, uniforms.colorB.uniform, t, uniforms.colorSpace.uniform.value);\n\t}\n};\nvar ConicGradient_default = componentDefinition;\nexport { componentDefinition as n, ConicGradient_default as t };\n","import { a as transformColor } from \"./transformations-CJcUeZIC.js\";\nimport { dot, float, fract, fwidth, mix, oneMinus, pow, smoothstep, vec3, vec4 } from \"three/tsl\";\nvar transformSource = (value) => {\n\treturn value === \"alpha\" ? 1 : 0;\n};\nvar transformColorMode = (value) => {\n\treturn value === \"custom\" ? 1 : 0;\n};\nvar transformBoolean = (value) => {\n\treturn value ? 1 : 0;\n};\nconst componentDefinition = {\n\tname: \"ContourLines\",\n\tcategory: \"Stylize\",\n\tdescription: \"Draw topographical contour lines based on luminance or alpha\",\n\trequiresChild: true,\n\tprops: {\n\t\tlevels: {\n\t\t\tdefault: 5,\n\t\t\tdescription: \"Number of contour levels\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 2,\n\t\t\t\tmax: 30,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Levels\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tlineWidth: {\n\t\t\tdefault: 2,\n\t\t\tdescription: \"Width of the contour lines in pixels\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: .5,\n\t\t\t\tmax: 5,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Line Width\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tsoftness: {\n\t\t\tdefault: 0,\n\t\t\tdescription: \"Edge softness of the lines (0 = sharp, 1 = soft)\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .05,\n\t\t\t\tlabel: \"Softness\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tgamma: {\n\t\t\tdefault: .5,\n\t\t\tdescription: \"Contour distribution. <1 clusters in bright, >1 clusters in dark\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: .1,\n\t\t\t\tmax: 2,\n\t\t\t\tstep: .05,\n\t\t\t\tlabel: \"Gamma\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tinvert: {\n\t\t\tdefault: false,\n\t\t\tdescription: \"Invert the source values\",\n\t\t\ttransform: transformBoolean,\n\t\t\tui: {\n\t\t\t\ttype: \"checkbox\",\n\t\t\t\tlabel: \"Invert\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tsource: {\n\t\t\tdefault: \"luminance\",\n\t\t\tdescription: \"Use luminance or alpha channel for contours\",\n\t\t\ttransform: transformSource,\n\t\t\tcompileTime: true,\n\t\t\tui: {\n\t\t\t\ttype: \"select\",\n\t\t\t\toptions: [{\n\t\t\t\t\tlabel: \"Luminance\",\n\t\t\t\t\tvalue: \"luminance\"\n\t\t\t\t}, {\n\t\t\t\t\tlabel: \"Alpha\",\n\t\t\t\t\tvalue: \"alpha\"\n\t\t\t\t}],\n\t\t\t\tlabel: \"Source\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tcolorMode: {\n\t\t\tdefault: \"source\",\n\t\t\tdescription: \"Use source image colors or custom colors\",\n\t\t\ttransform: transformColorMode,\n\t\t\tcompileTime: true,\n\t\t\tui: {\n\t\t\t\ttype: \"select\",\n\t\t\t\toptions: [{\n\t\t\t\t\tlabel: \"Source\",\n\t\t\t\t\tvalue: \"source\"\n\t\t\t\t}, {\n\t\t\t\t\tlabel: \"Custom\",\n\t\t\t\t\tvalue: \"custom\"\n\t\t\t\t}],\n\t\t\t\tlabel: \"Color Mode\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tlineColor: {\n\t\t\tdefault: \"#000000\",\n\t\t\tdescription: \"Color of the contour lines (custom mode)\",\n\t\t\ttransform: transformColor,\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Line Color\",\n\t\t\t\tgroup: \"Colors\",\n\t\t\t\tcondition: { colorMode: \"custom\" }\n\t\t\t}\n\t\t},\n\t\tbackgroundColor: {\n\t\t\tdefault: \"transparent\",\n\t\t\tdescription: \"Background color (custom mode)\",\n\t\t\ttransform: transformColor,\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Background Color\",\n\t\t\t\tgroup: \"Colors\",\n\t\t\t\tcondition: { colorMode: \"custom\" }\n\t\t\t}\n\t\t}\n\t},\n\tfragmentNode: ({ uniforms, childNode }) => {\n\t\tif (!childNode) return vec4(0, 0, 0, 0);\n\t\tconst levels = uniforms.levels.uniform;\n\t\tconst lineWidth = uniforms.lineWidth.uniform;\n\t\tconst softness = uniforms.softness.uniform;\n\t\tconst gamma = uniforms.gamma.uniform;\n\t\tconst isInverted = uniforms.invert.uniform.equal(float(1));\n\t\tconst lineColorVec = uniforms.lineColor.uniform;\n\t\tconst customLineColor = vec3(lineColorVec.x, lineColorVec.y, lineColorVec.z);\n\t\tconst customLineAlpha = lineColorVec.w;\n\t\tconst bgColorVec = uniforms.backgroundColor.uniform;\n\t\tconst customBgColor = vec3(bgColorVec.x, bgColorVec.y, bgColorVec.z);\n\t\tconst customBgAlpha = bgColorVec.w;\n\t\tconst originalColor = childNode;\n\t\tconst rawSourceValue = uniforms.source.uniform.value === 1 ? originalColor.a : dot(originalColor.rgb, vec3(.2126, .7152, .0722));\n\t\tconst scaledValue = pow(isInverted.select(oneMinus(rawSourceValue), rawSourceValue), gamma).mul(levels).add(.5);\n\t\tconst fw = fwidth(scaledValue).max(float(1e-4));\n\t\tconst normalizedDist = fract(scaledValue.add(.5)).sub(.5).abs().div(fw);\n\t\tconst transitionFactor = softness.mul(.99).add(.01);\n\t\tconst lineMask = smoothstep(lineWidth.mul(oneMinus(transitionFactor)), lineWidth, normalizedDist).oneMinus();\n\t\tconst colorMode = uniforms.colorMode.uniform.value;\n\t\tconst lineColor = colorMode === 1 ? customLineColor : originalColor.rgb;\n\t\tconst lineAlpha = colorMode === 1 ? customLineAlpha : float(1);\n\t\tconst bgColor = colorMode === 1 ? customBgColor : vec3(0, 0, 0);\n\t\tconst bgAlpha = colorMode === 1 ? customBgAlpha : float(0);\n\t\treturn vec4(mix(bgColor, lineColor, lineMask), mix(bgAlpha, lineAlpha, lineMask));\n\t}\n};\nvar ContourLines_default = componentDefinition;\nexport { componentDefinition as n, ContourLines_default as t };\n","import { DataTexture, FloatType, LinearFilter, RedFormat } from \"three\";\nimport { abs, atan, cos, float, floor, max, min, mix, sign, sin, sqrt, texture, uniform, vec4 } from \"three/tsl\";\nfunction circleSdf(dx, dy, radius) {\n\treturn sqrt(dx.mul(dx).add(dy.mul(dy))).sub(radius);\n}\nfunction polygonSdf(dx, dy, radius, sides) {\n\tconst len = sqrt(dx.mul(dx).add(dy.mul(dy)));\n\tconst angle = atan(dy, dx);\n\tconst sectorAngle = float(2 * Math.PI).div(sides);\n\tconst sectorIdx = floor(angle.div(sectorAngle).add(float(.5)));\n\tconst canonicalAngle = angle.sub(sectorIdx.mul(sectorAngle));\n\treturn len.mul(cos(canonicalAngle)).sub(radius);\n}\nfunction flowerSdf(dx, dy, outerRadius, sides, innerRatio) {\n\tconst angle = atan(dy, dx);\n\tconst len = sqrt(dx.mul(dx).add(dy.mul(dy)));\n\tconst innerRadius = outerRadius.mul(innerRatio);\n\tconst tAngle = angle.mul(sides).div(float(2 * Math.PI));\n\tconst t = abs(tAngle.sub(floor(tAngle)).mul(float(2)).sub(float(1)));\n\tconst boundaryR = innerRadius.add(outerRadius.sub(innerRadius).mul(t));\n\treturn len.sub(boundaryR);\n}\nfunction starSdf(dx, dy, outerRadius, sides, innerRatio) {\n\tconst innerRadius = outerRadius.mul(innerRatio);\n\tconst len = sqrt(dx.mul(dx).add(dy.mul(dy)));\n\tconst angle = atan(dy, dx);\n\tconst sectorAngle = float(2 * Math.PI).div(sides);\n\tconst sectorIdx = floor(angle.div(sectorAngle).add(float(.5)));\n\tconst bn = angle.sub(sectorIdx.mul(sectorAngle));\n\tconst fpx = abs(len.mul(sin(bn)));\n\tconst fpy = len.mul(cos(bn));\n\tconst an = float(Math.PI).div(sides);\n\tconst sinAn = sin(an);\n\tconst cosAn = cos(an);\n\tconst ex = innerRadius.mul(sinAn);\n\tconst ey = innerRadius.mul(cosAn).sub(outerRadius);\n\tconst qx = fpx;\n\tconst qy = fpy.sub(outerRadius);\n\tconst dotQE = qx.mul(ex).add(qy.mul(ey));\n\tconst dotEE = ex.mul(ex).add(ey.mul(ey));\n\tconst t = dotQE.div(dotEE).clamp(float(0), float(1));\n\tconst nx = fpx.sub(ex.mul(t));\n\tconst ny = fpy.sub(outerRadius.add(ey.mul(t)));\n\tconst dist = sqrt(nx.mul(nx).add(ny.mul(ny)));\n\tconst cross = ex.mul(qy).sub(ey.mul(qx));\n\treturn dist.mul(sign(cross));\n}\nfunction ringSdf(dx, dy, radius, thickness) {\n\treturn abs(sqrt(dx.mul(dx).add(dy.mul(dy))).sub(radius)).sub(thickness);\n}\nfunction crossSdf(dx, dy, size, thickness, rounding) {\n\tconst px = abs(dx);\n\tconst py = abs(dy);\n\treturn min(max(px.sub(size), py.sub(thickness)), max(py.sub(size), px.sub(thickness))).sub(rounding);\n}\nfunction roundedRectSdf(dx, dy, width, height, rounding) {\n\tconst qx = abs(dx).sub(width).add(rounding);\n\tconst qy = abs(dy).sub(height).add(rounding);\n\tconst outerDist = sqrt(max(qx, float(0)).mul(max(qx, float(0))).add(max(qy, float(0)).mul(max(qy, float(0)))));\n\tconst innerDist = min(max(qx, qy), float(0));\n\treturn outerDist.add(innerDist).sub(rounding);\n}\nfunction ellipseSdf(dx, dy, radiusX, radiusY) {\n\tconst nx = dx.div(radiusX);\n\tconst ny = dy.div(radiusY);\n\treturn sqrt(nx.mul(nx).add(ny.mul(ny))).sub(float(1)).mul(min(radiusX, radiusY));\n}\nfunction vesicaSdf(dx, dy, radius, spread) {\n\tconst px = abs(dx);\n\tconst py = abs(dy);\n\tconst d = radius.mul(spread);\n\tconst b = sqrt(max(radius.mul(radius).sub(d.mul(d)), float(0)));\n\tconst cond = py.sub(b).mul(d).greaterThan(px.mul(b));\n\tconst dist1 = sqrt(px.mul(px).add(py.sub(b).mul(py.sub(b))));\n\tconst dist2 = sqrt(px.add(d).mul(px.add(d)).add(py.mul(py))).sub(radius);\n\treturn cond.select(dist1, dist2);\n}\nfunction crescentSdf(dx, dy, outerRadius, innerRatio, offset) {\n\tconst py = abs(dy);\n\tconst ra = outerRadius;\n\tconst rb = outerRadius.mul(innerRatio);\n\tconst d = offset;\n\tconst a = ra.mul(ra).sub(rb.mul(rb)).add(d.mul(d)).div(d.mul(float(2)).max(float(.001)));\n\tconst b = sqrt(max(ra.mul(ra).sub(a.mul(a)), float(0)));\n\tconst lhs = d.mul(dx.mul(b).sub(py.mul(a)));\n\tconst rhs = d.mul(d).mul(max(b.sub(py), float(0)));\n\tconst d1x = dx.sub(a);\n\tconst d1y = py.sub(b);\n\tconst dist1 = sqrt(d1x.mul(d1x).add(d1y.mul(d1y)));\n\tconst lenP = sqrt(dx.mul(dx).add(py.mul(py)));\n\tconst innerX = dx.sub(d);\n\tconst lenInner = sqrt(innerX.mul(innerX).add(py.mul(py)));\n\tconst dist2 = max(lenP.sub(ra), lenInner.sub(rb).negate());\n\treturn lhs.greaterThan(rhs).select(dist1, dist2);\n}\nfunction trapezoidSdf(dx, dy, r1, r2, he) {\n\tconst px = abs(dx);\n\tconst k1x = r2;\n\tconst k1y = he;\n\tconst k2x = r2.sub(r1);\n\tconst k2y = he.mul(float(2));\n\tconst clampWidth = dy.lessThan(float(0)).select(r1, r2);\n\tconst cax = px.sub(min(px, clampWidth));\n\tconst cay = abs(dy).sub(he);\n\tconst diffX = k1x.sub(px);\n\tconst diffY = k1y.sub(dy);\n\tconst dotNum = diffX.mul(k2x).add(diffY.mul(k2y));\n\tconst dotDen = k2x.mul(k2x).add(k2y.mul(k2y)).max(float(1e-4));\n\tconst t = dotNum.div(dotDen).clamp(float(0), float(1));\n\tconst cbx = px.sub(k1x).add(k2x.mul(t));\n\tconst cby = dy.sub(k1y).add(k2y.mul(t));\n\tconst s = cbx.lessThan(float(0)).and(cay.lessThan(float(0))).select(float(-1), float(1));\n\tconst dca = cax.mul(cax).add(cay.mul(cay));\n\tconst dcb = cbx.mul(cbx).add(cby.mul(cby));\n\treturn s.mul(sqrt(min(dca, dcb)));\n}\nasync function loadSdfFromUrl(url, sdfData) {\n\tconst response = await fetch(url, { mode: \"cors\" });\n\tif (!response.ok) throw new Error(`SDF fetch failed: HTTP ${response.status}`);\n\tconst buffer = await response.arrayBuffer();\n\tif (buffer.byteLength === 512 * 512 * 2) {\n\t\tconst uint16 = new Uint16Array(buffer);\n\t\tconst n = Math.min(uint16.length, sdfData.length);\n\t\tfor (let i = 0; i < n; i++) sdfData[i] = uint16[i] / 32767.5 - 1;\n\t} else {\n\t\tconst floats = new Float32Array(buffer);\n\t\tconst n = Math.min(floats.length, sdfData.length);\n\t\tfor (let i = 0; i < n; i++) sdfData[i] = floats[i];\n\t}\n}\nfunction createSvgSdfSampler(shapeSdfUrl, onBeforeRender, onCleanup) {\n\tconst sdfData = new Float32Array(512 * 512).fill(.5);\n\tconst sdfTexture = new DataTexture(sdfData, 512, 512, RedFormat, FloatType);\n\tsdfTexture.magFilter = LinearFilter;\n\tsdfTexture.minFilter = LinearFilter;\n\tsdfTexture.needsUpdate = true;\n\tonCleanup(() => sdfTexture.dispose());\n\tlet sdfNeedsUpdate = false;\n\tif (shapeSdfUrl) loadSdfFromUrl(shapeSdfUrl, sdfData).then(() => {\n\t\tsdfNeedsUpdate = true;\n\t}).catch((err) => console.warn(\"[SDF] Failed to load SDF texture:\", err));\n\tonBeforeRender(() => {\n\t\tif (sdfNeedsUpdate) {\n\t\t\tsdfNeedsUpdate = false;\n\t\t\tsdfTexture.needsUpdate = true;\n\t\t}\n\t});\n\tconst sdfNode = texture(sdfTexture);\n\treturn (uv$1) => sdfNode.sample(uv$1);\n}\nfunction createAnalyticSdfSampler(shapeType, initialConfig, shapeUniform, onBeforeRender) {\n\tconst radiusU = uniform(initialConfig.radius ?? .35);\n\tconst sidesU = uniform(initialConfig.sides ?? 6);\n\tconst roundingU = uniform(initialConfig.rounding ?? 0);\n\tconst innerRatioU = uniform(initialConfig.innerRatio ?? initialConfig.thickness ?? .4);\n\tconst rotationU = uniform(initialConfig.rotation ?? 0);\n\tconst heightU = uniform(initialConfig.height ?? .25);\n\tconst offsetU = uniform(initialConfig.offset ?? .2);\n\tlet lastShapeJson = \"\";\n\tlet lastCfg = initialConfig;\n\tonBeforeRender(() => {\n\t\tconst raw = shapeUniform.uniform.value;\n\t\tif (typeof raw === \"object\" && raw !== null) lastCfg = raw;\n\t\telse {\n\t\t\tconst str = raw;\n\t\t\tif (str !== lastShapeJson) {\n\t\t\t\tlastShapeJson = str;\n\t\t\t\ttry {\n\t\t\t\t\tlastCfg = JSON.parse(str);\n\t\t\t\t} catch {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tradiusU.value = lastCfg.radius ?? lastCfg.width ?? lastCfg.bottomWidth ?? .35;\n\t\tsidesU.value = lastCfg.sides ?? 6;\n\t\troundingU.value = lastCfg.rounding ?? 0;\n\t\tinnerRatioU.value = lastCfg.innerRatio ?? lastCfg.thickness ?? lastCfg.spread ?? lastCfg.topWidth ?? lastCfg.topRatio ?? .4;\n\t\trotationU.value = lastCfg.rotation ?? 0;\n\t\theightU.value = lastCfg.height ?? .25;\n\t\toffsetU.value = lastCfg.offset ?? .2;\n\t});\n\tconst needsRotation = shapeType !== \"circleSDF\" && shapeType !== \"ringSDF\";\n\treturn (uv$1) => {\n\t\tconst dx = uv$1.x.sub(float(.5));\n\t\tconst dy = uv$1.y.sub(float(.5));\n\t\tlet rdx = dx, rdy = dy;\n\t\tif (needsRotation) {\n\t\t\tconst rotRad = rotationU.mul(float(Math.PI / 180));\n\t\t\tconst cosR = cos(rotRad);\n\t\t\tconst sinR = sin(rotRad);\n\t\t\trdx = dx.mul(cosR).add(dy.mul(sinR));\n\t\t\trdy = dy.mul(cosR).sub(dx.mul(sinR));\n\t\t}\n\t\tlet dist;\n\t\tswitch (shapeType) {\n\t\t\tcase \"polygonSDF\":\n\t\t\t\tdist = mix(polygonSdf(rdx, rdy, radiusU, sidesU), circleSdf(dx, dy, radiusU), roundingU);\n\t\t\t\tbreak;\n\t\t\tcase \"flowerSDF\":\n\t\t\t\tdist = flowerSdf(rdx, rdy, radiusU, sidesU, innerRatioU);\n\t\t\t\tbreak;\n\t\t\tcase \"ringSDF\":\n\t\t\t\tdist = ringSdf(dx, dy, radiusU, innerRatioU);\n\t\t\t\tbreak;\n\t\t\tcase \"crossSDF\":\n\t\t\t\tdist = crossSdf(rdx, rdy, radiusU, innerRatioU, roundingU);\n\t\t\t\tbreak;\n\t\t\tcase \"starSDF\":\n\t\t\t\tdist = starSdf(rdx, rdy, radiusU, sidesU, innerRatioU);\n\t\t\t\tbreak;\n\t\t\tcase \"roundedRectSDF\":\n\t\t\t\tdist = roundedRectSdf(rdx, rdy, radiusU, heightU, roundingU);\n\t\t\t\tbreak;\n\t\t\tcase \"ellipseSDF\":\n\t\t\t\tdist = ellipseSdf(rdx, rdy, radiusU, heightU);\n\t\t\t\tbreak;\n\t\t\tcase \"vesicaSDF\":\n\t\t\t\tdist = vesicaSdf(rdx, rdy, radiusU, innerRatioU);\n\t\t\t\tbreak;\n\t\t\tcase \"crescentSDF\":\n\t\t\t\tdist = crescentSdf(rdx, rdy, radiusU, innerRatioU, offsetU);\n\t\t\t\tbreak;\n\t\t\tcase \"trapezoidSDF\":\n\t\t\t\tdist = trapezoidSdf(rdx, rdy, innerRatioU, radiusU, heightU);\n\t\t\t\tbreak;\n\t\t\tcase \"circleSDF\":\n\t\t\tdefault:\n\t\t\t\tdist = circleSdf(dx, dy, radiusU);\n\t\t\t\tbreak;\n\t\t}\n\t\treturn vec4(dist, float(0), float(0), float(1));\n\t};\n}\nexport { crossSdf as a, polygonSdf as c, starSdf as d, trapezoidSdf as f, crescentSdf as i, ringSdf as l, createAnalyticSdfSampler as n, ellipseSdf as o, vesicaSdf as p, createSvgSdfSampler as r, flowerSdf as s, circleSdf as t, roundedRectSdf as u };\n","import { a as transformColor, l as transformPosition, o as transformColorSpace, t as colorSpaceOptions } from \"./transformations-CJcUeZIC.js\";\nimport { t as mixColors } from \"./colorMixing-BPpDnR5I.js\";\nimport { i as crescentSdf } from \"./sdf-D_EAGXhN.js\";\nimport { cos, float, screenUV, sin, smoothstep, vec2, vec4, viewportSize } from \"three/tsl\";\nvar transformStrokePosition = (value) => {\n\treturn {\n\t\t\"outside\": 0,\n\t\t\"center\": 1,\n\t\t\"inside\": 2\n\t}[value?.toLowerCase()] ?? 1;\n};\nconst componentDefinition = {\n\tname: \"Crescent\",\n\tcategory: \"Shapes\",\n\tdescription: \"Crescent moon shape — an outer circle with an inner circle subtracted\",\n\tprops: {\n\t\tcolor: {\n\t\t\tdefault: \"#ffffff\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Fill color of the crescent\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Color\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tcenter: {\n\t\t\tdefault: {\n\t\t\t\tx: .5,\n\t\t\t\ty: .5\n\t\t\t},\n\t\t\ttransform: transformPosition,\n\t\t\tdescription: \"Center position of the crescent\",\n\t\t\tui: {\n\t\t\t\ttype: \"position\",\n\t\t\t\tlabel: \"Center\",\n\t\t\t\tgroup: \"Position\"\n\t\t\t}\n\t\t},\n\t\tradius: {\n\t\t\tdefault: .3,\n\t\t\tdescription: \"Outer circle radius\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: .05,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Size\",\n\t\t\t\tgroup: \"Shape\"\n\t\t\t}\n\t\t},\n\t\tinnerRatio: {\n\t\t\tdefault: .8,\n\t\t\tdescription: \"Inner (bite) circle radius as a fraction of outer radius\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: .3,\n\t\t\t\tmax: 1.2,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Bite Size\",\n\t\t\t\tgroup: \"Shape\"\n\t\t\t}\n\t\t},\n\t\toffset: {\n\t\t\tdefault: .2,\n\t\t\tdescription: \"Horizontal distance the bite circle is shifted from center\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: .01,\n\t\t\t\tmax: .5,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Bite Offset\",\n\t\t\t\tgroup: \"Shape\"\n\t\t\t}\n\t\t},\n\t\trotation: {\n\t\t\tdefault: 0,\n\t\t\tdescription: \"Rotation in degrees\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 360,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Rotation\",\n\t\t\t\tgroup: \"Shape\"\n\t\t\t}\n\t\t},\n\t\tsoftness: {\n\t\t\tdefault: 0,\n\t\t\tdescription: \"Edge softness for antialiasing\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: .1,\n\t\t\t\tstep: .001,\n\t\t\t\tlabel: \"Softness\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tstrokeThickness: {\n\t\t\tdefault: 0,\n\t\t\tdescription: \"Stroke thickness. Zero means no stroke.\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: .2,\n\t\t\t\tstep: .005,\n\t\t\t\tlabel: \"Stroke Thickness\",\n\t\t\t\tgroup: \"Stroke\"\n\t\t\t}\n\t\t},\n\t\tstrokeColor: {\n\t\t\tdefault: \"#000000\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Color of the stroke outline\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Stroke Color\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tstrokePosition: {\n\t\t\tdefault: \"center\",\n\t\t\ttransform: transformStrokePosition,\n\t\t\tdescription: \"Position of the stroke relative to the shape edge\",\n\t\t\tui: {\n\t\t\t\ttype: \"select\",\n\t\t\t\toptions: [\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Outside\",\n\t\t\t\t\t\tvalue: \"outside\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Center\",\n\t\t\t\t\t\tvalue: \"center\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Inside\",\n\t\t\t\t\t\tvalue: \"inside\"\n\t\t\t\t\t}\n\t\t\t\t],\n\t\t\t\tlabel: \"Stroke Position\",\n\t\t\t\tgroup: \"Stroke\"\n\t\t\t}\n\t\t},\n\t\tcolorSpace: {\n\t\t\tdefault: \"linear\",\n\t\t\ttransform: transformColorSpace,\n\t\t\tcompileTime: true,\n\t\t\tdescription: \"Color space for blending fill and stroke colors\",\n\t\t\tui: {\n\t\t\t\ttype: \"select\",\n\t\t\t\toptions: colorSpaceOptions,\n\t\t\t\tlabel: \"Color Blending\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t}\n\t},\n\tfragmentNode: ({ uniforms }) => {\n\t\tconst uv$1 = screenUV;\n\t\tconst aspect = viewportSize.x.div(viewportSize.y);\n\t\tconst aspectUV = vec2(uv$1.x.mul(aspect), uv$1.y);\n\t\tconst centerPos = vec2(uniforms.center.uniform.x.mul(aspect), uniforms.center.uniform.y.oneMinus());\n\t\tconst dx = aspectUV.x.sub(centerPos.x);\n\t\tconst dy = aspectUV.y.sub(centerPos.y);\n\t\tconst rotRad = uniforms.rotation.uniform.mul(float(Math.PI / 180));\n\t\tconst cosR = cos(rotRad);\n\t\tconst sinR = sin(rotRad);\n\t\tconst sdf = crescentSdf(dx.mul(cosR).add(dy.mul(sinR)), dy.mul(cosR).sub(dx.mul(sinR)), uniforms.radius.uniform, uniforms.innerRatio.uniform, uniforms.offset.uniform);\n\t\tconst edgeSoftness = uniforms.softness.uniform;\n\t\tconst strokeThickness = uniforms.strokeThickness.uniform;\n\t\tconst strokePositionMode = uniforms.strokePosition.uniform;\n\t\tconst hasStroke = strokeThickness.greaterThan(float(0));\n\t\tconst isCenter = strokePositionMode.greaterThanEqual(float(.5)).and(strokePositionMode.lessThan(float(1.5)));\n\t\tconst isInside = strokePositionMode.greaterThanEqual(float(1.5));\n\t\tconst halfThickness = strokeThickness.mul(.5);\n\t\tconst strokeInner = isInside.select(strokeThickness.negate(), isCenter.select(halfThickness.negate(), float(0)));\n\t\tconst strokeOuter = isInside.select(float(0), isCenter.select(halfThickness, strokeThickness));\n\t\tconst overallMask = smoothstep(strokeOuter.sub(edgeSoftness), strokeOuter, sdf).oneMinus();\n\t\tconst strokeBlend = hasStroke.select(smoothstep(strokeInner.sub(edgeSoftness), strokeInner, sdf), float(0));\n\t\tconst blendedColor = mixColors(vec4(uniforms.color.uniform.rgb, uniforms.color.uniform.a), vec4(uniforms.strokeColor.uniform.rgb, uniforms.strokeColor.uniform.a), strokeBlend, uniforms.colorSpace.uniform.value);\n\t\treturn vec4(blendedColor.xyz, blendedColor.w.mul(overallMask));\n\t}\n};\nvar Crescent_default = componentDefinition;\nexport { componentDefinition as n, Crescent_default as t };\n","import { a as transformColor, l as transformPosition, o as transformColorSpace, t as colorSpaceOptions } from \"./transformations-CJcUeZIC.js\";\nimport { t as mixColors } from \"./colorMixing-BPpDnR5I.js\";\nimport { a as crossSdf } from \"./sdf-D_EAGXhN.js\";\nimport { cos, float, screenUV, sin, smoothstep, vec2, vec4, viewportSize } from \"three/tsl\";\nvar transformStrokePosition = (value) => {\n\treturn {\n\t\t\"outside\": 0,\n\t\t\"center\": 1,\n\t\t\"inside\": 2\n\t}[value?.toLowerCase()] ?? 1;\n};\nconst componentDefinition = {\n\tname: \"Cross\",\n\tcategory: \"Shapes\",\n\tdescription: \"Plus / cross shape with adjustable arm length, width, and rounding\",\n\tprops: {\n\t\tcolor: {\n\t\t\tdefault: \"#ffffff\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Fill color of the cross\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Color\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tcenter: {\n\t\t\tdefault: {\n\t\t\t\tx: .5,\n\t\t\t\ty: .5\n\t\t\t},\n\t\t\ttransform: transformPosition,\n\t\t\tdescription: \"Center position of the cross\",\n\t\t\tui: {\n\t\t\t\ttype: \"position\",\n\t\t\t\tlabel: \"Center\",\n\t\t\t\tgroup: \"Position\"\n\t\t\t}\n\t\t},\n\t\tradius: {\n\t\t\tdefault: .35,\n\t\t\tdescription: \"Arm half-length — distance from center to the end of each arm\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Arm Length\",\n\t\t\t\tgroup: \"Shape\"\n\t\t\t}\n\t\t},\n\t\tthickness: {\n\t\t\tdefault: .08,\n\t\t\tdescription: \"Arm half-width — controls how wide each arm is\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: .01,\n\t\t\t\tmax: .5,\n\t\t\t\tstep: .005,\n\t\t\t\tlabel: \"Arm Width\",\n\t\t\t\tgroup: \"Shape\"\n\t\t\t}\n\t\t},\n\t\trounding: {\n\t\t\tdefault: 0,\n\t\t\tdescription: \"Corner rounding — rounds the arm ends and concave corners\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: .2,\n\t\t\t\tstep: .005,\n\t\t\t\tlabel: \"Rounding\",\n\t\t\t\tgroup: \"Shape\"\n\t\t\t}\n\t\t},\n\t\trotation: {\n\t\t\tdefault: 0,\n\t\t\tdescription: \"Rotation in degrees (45° turns a plus into an ×)\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 360,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Rotation\",\n\t\t\t\tgroup: \"Shape\"\n\t\t\t}\n\t\t},\n\t\tsoftness: {\n\t\t\tdefault: 0,\n\t\t\tdescription: \"Edge softness for antialiasing\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: .1,\n\t\t\t\tstep: .001,\n\t\t\t\tlabel: \"Softness\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tstrokeThickness: {\n\t\t\tdefault: 0,\n\t\t\tdescription: \"Stroke thickness. Zero means no stroke.\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: .2,\n\t\t\t\tstep: .005,\n\t\t\t\tlabel: \"Stroke Thickness\",\n\t\t\t\tgroup: \"Stroke\"\n\t\t\t}\n\t\t},\n\t\tstrokeColor: {\n\t\t\tdefault: \"#000000\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Color of the stroke outline\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Stroke Color\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tstrokePosition: {\n\t\t\tdefault: \"center\",\n\t\t\ttransform: transformStrokePosition,\n\t\t\tdescription: \"Position of the stroke relative to the shape edge\",\n\t\t\tui: {\n\t\t\t\ttype: \"select\",\n\t\t\t\toptions: [\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Outside\",\n\t\t\t\t\t\tvalue: \"outside\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Center\",\n\t\t\t\t\t\tvalue: \"center\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Inside\",\n\t\t\t\t\t\tvalue: \"inside\"\n\t\t\t\t\t}\n\t\t\t\t],\n\t\t\t\tlabel: \"Stroke Position\",\n\t\t\t\tgroup: \"Stroke\"\n\t\t\t}\n\t\t},\n\t\tcolorSpace: {\n\t\t\tdefault: \"linear\",\n\t\t\ttransform: transformColorSpace,\n\t\t\tcompileTime: true,\n\t\t\tdescription: \"Color space for blending fill and stroke colors\",\n\t\t\tui: {\n\t\t\t\ttype: \"select\",\n\t\t\t\toptions: colorSpaceOptions,\n\t\t\t\tlabel: \"Color Blending\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t}\n\t},\n\tfragmentNode: ({ uniforms }) => {\n\t\tconst uv$1 = screenUV;\n\t\tconst aspect = viewportSize.x.div(viewportSize.y);\n\t\tconst aspectUV = vec2(uv$1.x.mul(aspect), uv$1.y);\n\t\tconst centerPos = vec2(uniforms.center.uniform.x.mul(aspect), uniforms.center.uniform.y.oneMinus());\n\t\tconst dx = aspectUV.x.sub(centerPos.x);\n\t\tconst dy = aspectUV.y.sub(centerPos.y);\n\t\tconst rotRad = uniforms.rotation.uniform.mul(float(Math.PI / 180));\n\t\tconst cosR = cos(rotRad);\n\t\tconst sinR = sin(rotRad);\n\t\tconst sdf = crossSdf(dx.mul(cosR).add(dy.mul(sinR)), dy.mul(cosR).sub(dx.mul(sinR)), uniforms.radius.uniform, uniforms.thickness.uniform, uniforms.rounding.uniform);\n\t\tconst edgeSoftness = uniforms.softness.uniform;\n\t\tconst strokeThickness = uniforms.strokeThickness.uniform;\n\t\tconst strokePositionMode = uniforms.strokePosition.uniform;\n\t\tconst hasStroke = strokeThickness.greaterThan(float(0));\n\t\tconst isCenter = strokePositionMode.greaterThanEqual(float(.5)).and(strokePositionMode.lessThan(float(1.5)));\n\t\tconst isInside = strokePositionMode.greaterThanEqual(float(1.5));\n\t\tconst halfThickness = strokeThickness.mul(.5);\n\t\tconst strokeInner = isInside.select(strokeThickness.negate(), isCenter.select(halfThickness.negate(), float(0)));\n\t\tconst strokeOuter = isInside.select(float(0), isCenter.select(halfThickness, strokeThickness));\n\t\tconst overallMask = smoothstep(strokeOuter.sub(edgeSoftness), strokeOuter, sdf).oneMinus();\n\t\tconst strokeBlend = hasStroke.select(smoothstep(strokeInner.sub(edgeSoftness), strokeInner, sdf), float(0));\n\t\tconst blendedColor = mixColors(vec4(uniforms.color.uniform.rgb, uniforms.color.uniform.a), vec4(uniforms.strokeColor.uniform.rgb, uniforms.strokeColor.uniform.a), strokeBlend, uniforms.colorSpace.uniform.value);\n\t\treturn vec4(blendedColor.xyz, blendedColor.w.mul(overallMask));\n\t}\n};\nvar Cross_default = componentDefinition;\nexport { componentDefinition as n, Cross_default as t };\n","import { t as unpremultiplyAlpha } from \"./alpha-C4ptedXe.js\";\nimport { convertToTexture, float, fract, length, mix, screenUV, sin, smoothstep, vec2, vec3, vec4, viewportSize } from \"three/tsl\";\nconst componentDefinition = {\n\tname: \"CRTScreen\",\n\tcategory: \"Stylize\",\n\tdescription: \"Retro CRT monitor simulation with scanlines\",\n\trequiresRTT: true,\n\trequiresChild: true,\n\tprops: {\n\t\tpixelSize: {\n\t\t\tdefault: 128,\n\t\t\tdescription: \"Size of individual TV pixels (lower = more pixels)\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 8,\n\t\t\t\tmax: 128,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Pixel Size\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tcolorShift: {\n\t\t\tdefault: 1,\n\t\t\tdescription: \"Chromatic aberration amount\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 10,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Color Shift\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tscanlineIntensity: {\n\t\t\tdefault: .3,\n\t\t\tdescription: \"Strength of horizontal scanlines\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Scanline Intensity\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tscanlineFrequency: {\n\t\t\tdefault: 200,\n\t\t\tdescription: \"Number of scanlines across screen\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 100,\n\t\t\t\tmax: 800,\n\t\t\t\tstep: 10,\n\t\t\t\tlabel: \"Scanline Frequency\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tbrightness: {\n\t\t\tdefault: 1,\n\t\t\tdescription: \"Screen brightness boost\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: .5,\n\t\t\t\tmax: 2,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Brightness\",\n\t\t\t\tgroup: \"Appearance\"\n\t\t\t}\n\t\t},\n\t\tcontrast: {\n\t\t\tdefault: 1,\n\t\t\tdescription: \"Screen contrast enhancement\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: .5,\n\t\t\t\tmax: 2,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Contrast\",\n\t\t\t\tgroup: \"Appearance\"\n\t\t\t}\n\t\t},\n\t\tvignetteIntensity: {\n\t\t\tdefault: 1,\n\t\t\tdescription: \"Strength of corner darkening effect (0 = off)\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Vignette Intensity\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tvignetteRadius: {\n\t\t\tdefault: .5,\n\t\t\tdescription: \"How far the vignette extends inward (0 = edges only, 1 = reaches center)\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .05,\n\t\t\t\tlabel: \"Vignette Radius\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t}\n\t},\n\tfragmentNode: ({ uniforms, childNode, onCleanup }) => {\n\t\tif (!childNode) return vec4(0, 0, 0, 0);\n\t\tconst childTexture = convertToTexture(childNode);\n\t\tonCleanup(() => {\n\t\t\tif (childTexture?.renderTarget?.dispose) childTexture.renderTarget.dispose();\n\t\t});\n\t\tconst pixelSize = uniforms.pixelSize.uniform;\n\t\tconst colorShift = uniforms.colorShift.uniform;\n\t\tconst scanlineIntensity = uniforms.scanlineIntensity.uniform;\n\t\tconst scanlineFrequency = uniforms.scanlineFrequency.uniform;\n\t\tconst brightness = uniforms.brightness.uniform;\n\t\tconst contrast = uniforms.contrast.uniform;\n\t\tconst scaledColorShift = colorShift.mul(float(.002));\n\t\tconst redUV = screenUV.add(vec2(scaledColorShift, float(0)));\n\t\tconst greenUV = screenUV;\n\t\tconst blueUV = screenUV.sub(vec2(scaledColorShift, float(0)));\n\t\tconst redSample = childTexture.sample(redUV).r;\n\t\tconst greenSample = childTexture.sample(greenUV).g;\n\t\tconst blueSample = childTexture.sample(blueUV).b;\n\t\tconst adjustedColor = vec3(redSample, greenSample, blueSample).sub(float(.5)).mul(contrast).add(float(.5)).mul(brightness);\n\t\tconst scanlineWave = sin(screenUV.y.mul(scanlineFrequency).mul(float(3.14159 * 2)));\n\t\tconst scanlineEffect = float(1).sub(scanlineIntensity.mul(scanlineWave.mul(float(.5)).add(float(.5))));\n\t\tconst scanlinedColor = adjustedColor.mul(scanlineEffect);\n\t\tconst phosphorScale = pixelSize.mul(float(.5));\n\t\tconst pixelPhase = fract(screenUV.mul(phosphorScale));\n\t\tconst redMask = sin(pixelPhase.x.mul(float(6.28318))).mul(float(.1)).add(float(.95));\n\t\tconst greenMask = sin(pixelPhase.x.mul(float(6.28318)).add(float(2.09))).mul(float(.1)).add(float(.95));\n\t\tconst blueMask = sin(pixelPhase.x.mul(float(6.28318)).add(float(4.18))).mul(float(.1)).add(float(.95));\n\t\tconst phosphorColor = vec3(scanlinedColor.r.mul(redMask), scanlinedColor.g.mul(greenMask), scanlinedColor.b.mul(blueMask));\n\t\tconst aspect = viewportSize.x.div(viewportSize.y);\n\t\tconst centeredUV = screenUV.sub(vec2(.5, .5));\n\t\tconst vignetteDistance = length(vec2(centeredUV.x.mul(aspect), centeredUV.y));\n\t\tconst vignetteRadiusProp = uniforms.vignetteRadius.uniform;\n\t\tconst vignetteIntensity = uniforms.vignetteIntensity.uniform;\n\t\tconst innerEdge = float(1).sub(vignetteRadiusProp.mul(float(.9)));\n\t\tconst vignetteValue = smoothstep(innerEdge, innerEdge.add(float(.5)), vignetteDistance).oneMinus();\n\t\tconst vignette = mix(float(1), vignetteValue, vignetteIntensity);\n\t\treturn unpremultiplyAlpha(vec4(phosphorColor.mul(vignette), float(1)));\n\t}\n};\nvar CRTScreen_default = componentDefinition;\nexport { componentDefinition as n, CRTScreen_default as t };\n","import { a as transformColor, l as transformPosition } from \"./transformations-CJcUeZIC.js\";\nimport { n as createAnalyticSdfSampler, r as createSvgSdfSampler } from \"./sdf-D_EAGXhN.js\";\nimport { Fn, If, atan, clamp, convertToTexture, cos, dot, float, fract, max, min, mix, mx_worley_noise_float, pow, screenUV, sin, smoothstep, sqrt, vec2, vec3, vec4, viewportSize } from \"three/tsl\";\nvar transformBoolean = (value) => value ? 1 : 0;\nvar DEFAULT_SHAPE_CONFIG = JSON.stringify({\n\ttype: \"polygonSDF\",\n\tradius: .35,\n\tsides: 10\n});\nvar kaleidoFold = (uvX, uvY, sectorAngle) => {\n\tconst dx = uvX.sub(float(.5));\n\tconst dy = uvY.sub(float(.5));\n\tconst r = sqrt(dx.mul(dx).add(dy.mul(dy)));\n\tconst inSector = fract(atan(dy, dx).add(float(Math.PI)).div(sectorAngle)).mul(sectorAngle);\n\tconst folded = min(inSector, sectorAngle.sub(inSector));\n\treturn vec2(r.mul(cos(folded)), r.mul(sin(folded)));\n};\nconst componentDefinition = {\n\tname: \"Crystal\",\n\tcategory: \"Shape Effects\",\n\tdescription: \"Diamond-like crystal lens with faceted refraction.\",\n\trequiresRTT: true,\n\trequiresChild: true,\n\tprops: {\n\t\tcenter: {\n\t\t\tdefault: {\n\t\t\t\tx: .5,\n\t\t\t\ty: .5\n\t\t\t},\n\t\t\ttransform: transformPosition,\n\t\t\tdescription: \"Center position of the crystal shape\",\n\t\t\tui: {\n\t\t\t\ttype: \"position\",\n\t\t\t\tlabel: \"Center\",\n\t\t\t\tgroup: \"Position\"\n\t\t\t}\n\t\t},\n\t\tscale: {\n\t\t\tdefault: 1,\n\t\t\tdescription: \"Scale of the crystal shape (1 = default size)\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: .1,\n\t\t\t\tmax: 3,\n\t\t\t\tstep: .05,\n\t\t\t\tlabel: \"Scale\",\n\t\t\t\tgroup: \"Position\"\n\t\t\t}\n\t\t},\n\t\tcutout: {\n\t\t\tdefault: false,\n\t\t\ttransform: transformBoolean,\n\t\t\tdescription: \"Cut out alpha outside the crystal shape\",\n\t\t\tui: {\n\t\t\t\ttype: \"checkbox\",\n\t\t\t\tlabel: \"Cutout\",\n\t\t\t\tgroup: \"Crystal\"\n\t\t\t}\n\t\t},\n\t\trefraction: {\n\t\t\tdefault: .5,\n\t\t\tdescription: \"How strongly the crystal refracts content beneath\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 3,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Refraction\",\n\t\t\t\tgroup: \"Crystal\"\n\t\t\t}\n\t\t},\n\t\tdispersion: {\n\t\t\tdefault: .5,\n\t\t\tdescription: \"Prismatic rainbow dispersion — splits light into spectral colors\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 2,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Dispersion\",\n\t\t\t\tgroup: \"Crystal\"\n\t\t\t}\n\t\t},\n\t\tfacets: {\n\t\t\tdefault: 5,\n\t\t\tdescription: \"Symmetry order — how many times the facet pattern repeats around the center\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 3,\n\t\t\t\tmax: 24,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Facets\",\n\t\t\t\tgroup: \"Crystal\"\n\t\t\t}\n\t\t},\n\t\tfresnel: {\n\t\t\tdefault: .05,\n\t\t\tdescription: \"Fresnel rim glow intensity around the crystal boundary\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Fresnel\",\n\t\t\t\tgroup: \"Fresnel\"\n\t\t\t}\n\t\t},\n\t\tfresnelSoftness: {\n\t\t\tdefault: 1,\n\t\t\tdescription: \"Fresnel rim width — higher values spread the glow further inward\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 2,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Fresnel Softness\",\n\t\t\t\tgroup: \"Fresnel\"\n\t\t\t}\n\t\t},\n\t\tfresnelColor: {\n\t\t\tdefault: \"#ffffff\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Color of the fresnel rim glow\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Fresnel Color\",\n\t\t\t\tgroup: \"Fresnel\"\n\t\t\t}\n\t\t},\n\t\tedgeSoftness: {\n\t\t\tdefault: 0,\n\t\t\tdescription: \"Softness of the crystal boundary edge\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .05,\n\t\t\t\tlabel: \"Edge Softness\",\n\t\t\t\tgroup: \"Crystal\"\n\t\t\t}\n\t\t},\n\t\tinnerZoom: {\n\t\t\tdefault: 1.5,\n\t\t\tdescription: \"Magnification of content seen through the crystal\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: .5,\n\t\t\t\tmax: 3,\n\t\t\t\tstep: .05,\n\t\t\t\tlabel: \"Inner Zoom\",\n\t\t\t\tgroup: \"Crystal\"\n\t\t\t}\n\t\t},\n\t\tlightAngle: {\n\t\t\tdefault: 270,\n\t\t\tdescription: \"Light direction angle in degrees\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 360,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Light Angle\",\n\t\t\t\tgroup: \"Lighting\"\n\t\t\t}\n\t\t},\n\t\thighlights: {\n\t\t\tdefault: .5,\n\t\t\tdescription: \"Additive brightness on light-facing facets — never darkens\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 2,\n\t\t\t\tstep: .05,\n\t\t\t\tlabel: \"Highlights\",\n\t\t\t\tgroup: \"Lighting\"\n\t\t\t}\n\t\t},\n\t\tshadows: {\n\t\t\tdefault: .3,\n\t\t\tdescription: \"Darkening on shadow-facing facets — never brightens\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .05,\n\t\t\t\tlabel: \"Shadows\",\n\t\t\t\tgroup: \"Lighting\"\n\t\t\t}\n\t\t},\n\t\tbrightness: {\n\t\t\tdefault: 1.2,\n\t\t\tdescription: \"Overall crystal brightness — higher values push facets toward brilliant white\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: .5,\n\t\t\t\tmax: 3,\n\t\t\t\tstep: .05,\n\t\t\t\tlabel: \"Brightness\",\n\t\t\t\tgroup: \"Lighting\"\n\t\t\t}\n\t\t},\n\t\ttintColor: {\n\t\t\tdefault: \"#e8e0ff\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Crystal body tint color\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Tint Color\",\n\t\t\t\tgroup: \"Tint\"\n\t\t\t}\n\t\t},\n\t\ttintIntensity: {\n\t\t\tdefault: 0,\n\t\t\tdescription: \"How much tint color is applied to the crystal interior\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Tint Intensity\",\n\t\t\t\tgroup: \"Tint\"\n\t\t\t}\n\t\t},\n\t\ttintPreserveLuminosity: {\n\t\t\tdefault: true,\n\t\t\ttransform: transformBoolean,\n\t\t\tdescription: \"Preserve original brightness when tinting\",\n\t\t\tui: {\n\t\t\t\ttype: \"checkbox\",\n\t\t\t\tlabel: \"Preserve Luminosity\",\n\t\t\t\tgroup: \"Tint\"\n\t\t\t}\n\t\t},\n\t\tshape: {\n\t\t\tdefault: DEFAULT_SHAPE_CONFIG,\n\t\t\tdescription: \"Serialized shape configuration (JSON)\",\n\t\t\tui: {\n\t\t\t\ttype: \"shape\",\n\t\t\t\tlabel: \"Shape\",\n\t\t\t\tgroup: \"Shape\"\n\t\t\t}\n\t\t},\n\t\tshapeSdfUrl: {\n\t\t\tdefault: \"\",\n\t\t\tcompileTime: true,\n\t\t\tdescription: \"URL to a pre-generated SDF .bin file\"\n\t\t},\n\t\tshapeType: {\n\t\t\tdefault: \"\",\n\t\t\tcompileTime: true,\n\t\t\tdescription: \"Active SDF shape type\"\n\t\t}\n\t},\n\tfragmentNode: ({ uniforms, childNode, onCleanup, onBeforeRender }) => {\n\t\tif (!childNode) return vec4(0);\n\t\tconst childTexture = convertToTexture(childNode);\n\t\tonCleanup(() => {\n\t\t\tif (childTexture?.renderTarget?.dispose) childTexture.renderTarget.dispose();\n\t\t});\n\t\tconst shapeSdfUrl = uniforms.shapeSdfUrl.uniform.value;\n\t\tconst initialConfig = (() => {\n\t\t\tconst val = uniforms.shape.uniform.value;\n\t\t\tif (typeof val === \"object\" && val !== null) return val;\n\t\t\ttry {\n\t\t\t\treturn JSON.parse(val);\n\t\t\t} catch {\n\t\t\t\treturn {\n\t\t\t\t\ttype: \"circleSDF\",\n\t\t\t\t\tradius: .35,\n\t\t\t\t\tcenterX: .5,\n\t\t\t\t\tcenterY: .5\n\t\t\t\t};\n\t\t\t}\n\t\t})();\n\t\tlet sdfSampler;\n\t\tif (shapeSdfUrl) sdfSampler = createSvgSdfSampler(shapeSdfUrl, onBeforeRender, onCleanup);\n\t\telse sdfSampler = createAnalyticSdfSampler(uniforms.shapeType.uniform.value || initialConfig.type || \"circleSDF\", initialConfig, uniforms.shape, onBeforeRender);\n\t\treturn Fn(() => {\n\t\t\tconst uv$1 = screenUV;\n\t\t\tconst aspect = viewportSize.x.div(viewportSize.y);\n\t\t\tconst sharp = uniforms.edgeSoftness.uniform.mul(float(.5)).max(float(.001));\n\t\t\tconst pxH = float(1).div(viewportSize.y);\n\t\t\tconst centerPos = vec2(uniforms.center.uniform.x, uniforms.center.uniform.y.oneMinus());\n\t\t\tconst scale = uniforms.scale.uniform;\n\t\t\tconst sdfUV = vec2(uv$1.x.sub(centerPos.x).mul(aspect).div(scale).add(float(.5)), uv$1.y.sub(centerPos.y).div(scale).add(float(.5)));\n\t\t\tconst sdfRaw = sdfSampler(sdfUV).r;\n\t\t\tconst sdf = sdfRaw.div(scale);\n\t\t\tconst output = vec4(0).toVar();\n\t\t\tIf(sdf.greaterThan(float(.03).add(pxH.mul(float(2)))), () => {\n\t\t\t\tconst baseSample = childTexture.sample(uv$1);\n\t\t\t\tconst isCutoutEarly = uniforms.cutout.uniform.equal(float(1));\n\t\t\t\toutput.assign(vec4(baseSample.r, baseSample.g, baseSample.b, isCutoutEarly.select(float(0), baseSample.a)));\n\t\t\t}).Else(() => {\n\t\t\t\tconst EPS = float(.01);\n\t\t\t\tconst gradX = sdfSampler(sdfUV.add(vec2(EPS, float(0)))).r.sub(sdfRaw).div(EPS);\n\t\t\t\tconst gradY = sdfSampler(sdfUV.add(vec2(float(0), EPS))).r.sub(sdfRaw).div(EPS);\n\t\t\t\tconst rb1 = clamp(sdf.negate().div(sharp).mul(float(32)), float(0), float(1));\n\t\t\t\tconst lightRad = uniforms.lightAngle.uniform.mul(float(Math.PI / 180));\n\t\t\t\tconst lx = cos(lightRad).add(centerPos.x.sub(float(.5)).mul(float(3)));\n\t\t\t\tconst ly = sin(lightRad).add(centerPos.y.sub(float(.5)).mul(float(3)));\n\t\t\t\tconst depthNorm = clamp(sdf.negate().div(float(.15)), float(0), float(1));\n\t\t\t\tconst edgeRefrStrength = float(1).sub(depthNorm).mul(float(1).sub(depthNorm));\n\t\t\t\tconst outerWarp = float(1).sub(smoothstep(float(0), float(.03), sdf)).mul(float(.4));\n\t\t\t\tconst refrScale = uniforms.refraction.uniform.mul(float(.15));\n\t\t\t\tconst sdfOffX = gradX.negate().mul(refrScale).mul(edgeRefrStrength.add(outerWarp)).div(aspect);\n\t\t\t\tconst sdfOffY = gradY.negate().mul(refrScale).mul(edgeRefrStrength.add(outerWarp));\n\t\t\t\tconst highlights = uniforms.highlights.uniform;\n\t\t\t\tconst shadows = uniforms.shadows.uniform;\n\t\t\t\tconst sAngle = float(2 * Math.PI).div(uniforms.facets.uniform);\n\t\t\t\tconst fUv = kaleidoFold(sdfUV.x, sdfUV.y, sAngle);\n\t\t\t\tconst pdx = sdfUV.x.sub(float(.5));\n\t\t\t\tconst pdy = sdfUV.y.sub(float(.5));\n\t\t\t\tconst posBias1 = clamp(pdx.mul(lx).add(pdy.mul(ly)).mul(float(2.5)).add(float(.5)), float(0), float(1));\n\t\t\t\tconst posBias2 = clamp(pdx.mul(ly.negate()).add(pdy.mul(lx)).mul(float(2.5)).add(float(.5)), float(0), float(1));\n\t\t\t\tconst crystalRNorm = sqrt(pdx.mul(pdx).add(pdy.mul(pdy))).div(float(.35));\n\t\t\t\tconst tableMask = float(1).sub(smoothstep(float(.22), float(.32), crystalRNorm));\n\t\t\t\tconst radialDensity = float(1).add(crystalRNorm.clamp(float(0), float(1)).mul(float(.6)));\n\t\t\t\tconst vScale1 = uniforms.facets.uniform.mul(float(1.2)).mul(radialDensity);\n\t\t\t\tconst fUvS1 = fUv.mul(vScale1);\n\t\t\t\tconst feps = float(.02);\n\t\t\t\tconst f1center = mx_worley_noise_float(fUvS1, 1);\n\t\t\t\tconst gx1 = mx_worley_noise_float(fUvS1.add(vec2(feps, float(0))), 1).sub(f1center).div(feps);\n\t\t\t\tconst gy1 = mx_worley_noise_float(fUvS1.add(vec2(float(0), feps)), 1).sub(f1center).div(feps);\n\t\t\t\tconst gLen1 = sqrt(gx1.mul(gx1).add(gy1.mul(gy1))).max(float(.001));\n\t\t\t\tconst nx1 = gx1.div(gLen1);\n\t\t\t\tconst ny1 = gy1.div(gLen1);\n\t\t\t\tconst facetVar1 = clamp(nx1.mul(lx).add(ny1.mul(ly)).mul(float(.5)).add(float(.5)), float(0), float(1));\n\t\t\t\tconst raw1 = pow(posBias1.mul(float(.6)).add(facetVar1.mul(float(.4))), float(2.5));\n\t\t\t\tconst f1s = uniforms.refraction.uniform.mul(float(.12));\n\t\t\t\tconst tableSuppress = float(1).sub(tableMask.mul(float(.9)));\n\t\t\t\tconst f1offX = gx1.mul(f1s).mul(rb1).mul(tableSuppress).div(aspect);\n\t\t\t\tconst f1offY = gy1.mul(f1s).mul(rb1).mul(tableSuppress);\n\t\t\t\tconst fUvS2 = fUv.mul(vScale1.mul(float(1.7))).add(vec2(float(3.7), float(1.2)));\n\t\t\t\tconst c2 = mx_worley_noise_float(fUvS2, 1);\n\t\t\t\tconst gx2 = mx_worley_noise_float(fUvS2.add(vec2(feps, float(0))), 1).sub(c2).div(feps);\n\t\t\t\tconst gy2 = mx_worley_noise_float(fUvS2.add(vec2(float(0), feps)), 1).sub(c2).div(feps);\n\t\t\t\tconst gLen2 = sqrt(gx2.mul(gx2).add(gy2.mul(gy2))).max(float(.001));\n\t\t\t\tconst nx2 = gx2.div(gLen2);\n\t\t\t\tconst ny2 = gy2.div(gLen2);\n\t\t\t\tconst facetVar2 = clamp(nx2.mul(ly.negate()).add(ny2.mul(lx)).mul(float(.5)).add(float(.5)), float(0), float(1));\n\t\t\t\tconst raw2 = pow(posBias2.mul(float(.5)).add(facetVar2.mul(float(.5))), float(2));\n\t\t\t\tconst f2s = uniforms.refraction.uniform.mul(float(.07));\n\t\t\t\tconst f2offX = gx2.mul(f2s).mul(rb1).div(aspect);\n\t\t\t\tconst f2offY = gy2.mul(f2s).mul(rb1);\n\t\t\t\tconst totalOffX = sdfOffX.add(f1offX).add(f2offX);\n\t\t\t\tconst totalOffY = sdfOffY.add(f1offY).add(f2offY);\n\t\t\t\tconst lensUV = centerPos.add(uv$1.sub(centerPos).div(uniforms.innerZoom.uniform)).add(vec2(totalOffX, totalOffY));\n\t\t\t\tconst lit1 = clamp(raw1.sub(float(.5)).mul(float(2)), float(0), float(1));\n\t\t\t\tconst shadow1 = clamp(float(.5).sub(raw1).mul(float(2)), float(0), float(1));\n\t\t\t\tconst bright1 = float(1).add(lit1.mul(highlights)).sub(shadow1.mul(shadows)).max(float(.02));\n\t\t\t\tconst lit2 = clamp(raw2.sub(float(.5)).mul(float(2)), float(0), float(1));\n\t\t\t\tconst shadow2 = clamp(float(.5).sub(raw2).mul(float(2)), float(0), float(1));\n\t\t\t\tconst bright2 = float(1).add(lit2.mul(highlights.mul(float(.5)))).sub(shadow2.mul(shadows.mul(float(.5))));\n\t\t\t\tconst combinedBright = bright1.mul(bright2);\n\t\t\t\tconst chrScale = uniforms.dispersion.uniform.mul(float(.12));\n\t\t\t\tconst chrOffX = totalOffX.mul(chrScale);\n\t\t\t\tconst chrOffY = totalOffY.mul(chrScale);\n\t\t\t\tconst rUV = lensUV.add(vec2(chrOffX, chrOffY));\n\t\t\t\tconst bUV = lensUV.sub(vec2(chrOffX, chrOffY));\n\t\t\t\tconst sampledR = childTexture.sample(rUV);\n\t\t\t\tconst sampledG = childTexture.sample(lensUV);\n\t\t\t\tconst sampledB = childTexture.sample(bUV);\n\t\t\t\tconst refracted = vec4(sampledR.r, sampledG.g, sampledB.b, sampledG.a);\n\t\t\t\tconst refractedRgb = vec3(refracted.r, refracted.g, refracted.b);\n\t\t\t\tconst brightness = uniforms.brightness.uniform;\n\t\t\t\tconst edgeDarken = mix(smoothstep(float(.2), float(.8), gLen1), float(1), tableMask).mul(float(.4)).add(float(.6));\n\t\t\t\tconst tableBoost = tableMask.mul(float(.25));\n\t\t\t\tconst facetMul = combinedBright.add(tableBoost).mul(edgeDarken).mul(brightness);\n\t\t\t\tconst litRgb = refractedRgb.mul(facetMul);\n\t\t\t\tconst flash1 = smoothstep(float(.65), float(1), raw1).mul(brightness);\n\t\t\t\tconst flash2 = smoothstep(float(.6), float(1), raw2).mul(brightness).mul(float(.4));\n\t\t\t\tconst flashContrib = flash1.add(flash2).mul(highlights);\n\t\t\t\tconst tintCol = vec3(uniforms.tintColor.uniform.x, uniforms.tintColor.uniform.y, uniforms.tintColor.uniform.z);\n\t\t\t\tconst tintAmt = uniforms.tintIntensity.uniform;\n\t\t\t\tconst lumWeights = vec3(.299, .587, .114);\n\t\t\t\tconst origLum = dot(litRgb, lumWeights);\n\t\t\t\tconst tinted = mix(litRgb, tintCol, tintAmt);\n\t\t\t\tconst tintedLum = dot(tinted, lumWeights);\n\t\t\t\tconst lumPreserved = tinted.mul(origLum.div(max(tintedLum, float(1e-4))));\n\t\t\t\tconst crystalRgb = uniforms.tintPreserveLuminosity.uniform.equal(float(1)).select(lumPreserved, tinted).add(vec3(flashContrib));\n\t\t\t\tconst fresnelWidth = uniforms.fresnelSoftness.uniform.mul(float(.06)).max(float(.001));\n\t\t\t\tconst fresnelDepth = clamp(sdf.negate().div(fresnelWidth), float(0), float(1));\n\t\t\t\tconst fresnelRim = float(1).sub(fresnelDepth).mul(float(1).sub(fresnelDepth)).mul(uniforms.fresnel.uniform).mul(rb1);\n\t\t\t\tconst frCol = uniforms.fresnelColor.uniform;\n\t\t\t\tconst fresnelContrib = vec3(frCol.x, frCol.y, frCol.z).mul(fresnelRim);\n\t\t\t\tconst lightFacing = gradX.mul(lx).add(gradY.mul(ly)).mul(float(.5)).add(float(.5));\n\t\t\t\tconst rb2 = clamp(sdf.sub(pxH).negate().div(sharp).mul(float(16)), float(0), float(1)).sub(clamp(sdf.negate().div(sharp).mul(float(16)), float(0), float(1))).mul(lightFacing).mul(float(.35));\n\t\t\t\tconst finalRgb = crystalRgb.add(fresnelContrib).add(rb2);\n\t\t\t\tconst transition = smoothstep(float(0), float(1), rb1);\n\t\t\t\tconst isCutout = uniforms.cutout.uniform.equal(float(1));\n\t\t\t\tconst outerUV = uv$1.add(vec2(gradX.negate().mul(refrScale).mul(outerWarp).div(aspect), gradY.negate().mul(refrScale).mul(outerWarp)));\n\t\t\t\tconst baseColor = childTexture.sample(isCutout.select(uv$1, outerUV));\n\t\t\t\tconst composited = vec4(mix(baseColor.r, finalRgb.x, transition), mix(baseColor.g, finalRgb.y, transition), mix(baseColor.b, finalRgb.z, transition), mix(baseColor.a, refracted.a, transition));\n\t\t\t\tconst cutoutAlpha = isCutout.select(transition, float(1));\n\t\t\t\toutput.assign(vec4(composited.r, composited.g, composited.b, composited.a.mul(cutoutAlpha)));\n\t\t\t});\n\t\t\treturn output;\n\t\t})();\n\t}\n};\nvar Crystal_default = componentDefinition;\nexport { componentDefinition as n, Crystal_default as t };\n","import { t as applyEdgeHandling } from \"./edges-CX_lJB9R.js\";\nimport { c as transformEdges } from \"./transformations-CJcUeZIC.js\";\nimport { t as unpremultiplyAlpha } from \"./alpha-C4ptedXe.js\";\nimport { StorageTexture } from \"three/webgpu\";\nimport { DataTexture, FloatType, LinearFilter as LinearFilter$1, RGFormat } from \"three\";\nimport { Fn, If, attributeArray, convertToTexture, float, instanceIndex, screenUV, storageTexture, texture, textureStore, uint, uniform, uvec2, vec2, vec4 } from \"three/tsl\";\nvar GRID_SIZE = 128;\nconst componentDefinition = {\n\tname: \"CursorRipples\",\n\tcategory: \"Interactive\",\n\tdescription: \"Fluid-like ripple distortion\",\n\trequiresRTT: true,\n\trequiresChild: true,\n\tusesPointer: true,\n\tprops: {\n\t\tintensity: {\n\t\t\tdefault: 10,\n\t\t\tdescription: \"Strength of the ripple distortion\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 20,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Intensity\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tdecay: {\n\t\t\tdefault: 10,\n\t\t\tdescription: \"How quickly ripples fade (higher = faster)\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 20,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Decay\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tradius: {\n\t\t\tdefault: .5,\n\t\t\tdescription: \"Radius of cursor influence\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: .1,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Radius\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tchromaticSplit: {\n\t\t\tdefault: 1,\n\t\t\tdescription: \"RGB channel separation along ripple edges\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 3,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Chromatic Split\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tedges: {\n\t\t\tdefault: \"stretch\",\n\t\t\tdescription: \"How to handle edges when distortion pushes content out of bounds\",\n\t\t\ttransform: transformEdges,\n\t\t\tcompileTime: true,\n\t\t\tui: {\n\t\t\t\ttype: \"select\",\n\t\t\t\toptions: [\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Stretch\",\n\t\t\t\t\t\tvalue: \"stretch\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Transparent\",\n\t\t\t\t\t\tvalue: \"transparent\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Mirror\",\n\t\t\t\t\t\tvalue: \"mirror\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Wrap\",\n\t\t\t\t\t\tvalue: \"wrap\"\n\t\t\t\t\t}\n\t\t\t\t],\n\t\t\t\tlabel: \"Edges\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t}\n\t},\n\tcomputeNode: ({ uniforms, onCleanup, dimensions }) => {\n\t\tconst bufferA = attributeArray(GRID_SIZE * GRID_SIZE, \"float\");\n\t\tconst bufferB = attributeArray(GRID_SIZE * GRID_SIZE, \"float\");\n\t\tconst dispTex = new StorageTexture(GRID_SIZE, GRID_SIZE);\n\t\tdispTex.type = FloatType;\n\t\tconst dispTexNode = storageTexture(dispTex);\n\t\tonCleanup(() => {\n\t\t\tdispTex.dispose();\n\t\t});\n\t\tconst cursorXU = uniform(.5);\n\t\tconst cursorYU = uniform(.5);\n\t\tconst mouseSpeedU = uniform(0);\n\t\tconst dtU = uniform(.016);\n\t\tconst decayU = uniform(10);\n\t\tconst radiusU = uniform(.025);\n\t\tconst aspectU = uniform(1);\n\t\tconst gs = uint(GRID_SIZE);\n\t\tconst gsm1 = uint(GRID_SIZE - 1);\n\t\tconst buildPropagateKernel = (readBuf, writeBuf) => Fn(() => {\n\t\t\tconst idx = instanceIndex;\n\t\t\tconst j = idx.mod(gs);\n\t\t\tconst i = idx.div(gs);\n\t\t\tIf(i.greaterThan(uint(0)).and(i.lessThan(gsm1)).and(j.greaterThan(uint(0))).and(j.lessThan(gsm1)), () => {\n\t\t\t\tconst left = readBuf.element(idx.sub(uint(1)));\n\t\t\t\tconst right = readBuf.element(idx.add(uint(1)));\n\t\t\t\tconst up = readBuf.element(idx.sub(gs));\n\t\t\t\tconst down = readBuf.element(idx.add(gs));\n\t\t\t\tconst avg = left.add(right).add(up).add(down).mul(float(.5));\n\t\t\t\tconst prev = writeBuf.element(idx);\n\t\t\t\tconst dampFactor = float(1).sub(decayU.mul(float(.004)));\n\t\t\t\tconst next = avg.sub(prev).mul(dampFactor).toVar();\n\t\t\t\tconst cellX = j.toFloat().add(float(.5)).div(float(GRID_SIZE));\n\t\t\t\tconst cellY = i.toFloat().add(float(.5)).div(float(GRID_SIZE));\n\t\t\t\tconst ddx = aspectU.greaterThanEqual(float(1)).select(cellX.sub(cursorXU).mul(aspectU), cellX.sub(cursorXU));\n\t\t\t\tconst ddy = aspectU.greaterThanEqual(float(1)).select(cellY.sub(cursorYU), cellY.sub(cursorYU).div(aspectU));\n\t\t\t\tconst distSq = ddx.mul(ddx).add(ddy.mul(ddy));\n\t\t\t\tconst influenceRadius = radiusU.mul(float(3));\n\t\t\t\tIf(distSq.lessThan(influenceRadius.mul(influenceRadius)).and(mouseSpeedU.greaterThan(float(.01))), () => {\n\t\t\t\t\tconst influence = distSq.negate().div(radiusU.mul(radiusU)).exp();\n\t\t\t\t\tnext.assign(next.sub(influence.mul(mouseSpeedU).mul(dtU).mul(float(3))));\n\t\t\t\t});\n\t\t\t\twriteBuf.element(idx).assign(next);\n\t\t\t});\n\t\t})().compute(GRID_SIZE * GRID_SIZE, [256]);\n\t\tconst buildGradientKernel = (srcBuf) => Fn(() => {\n\t\t\tconst idx = instanceIndex;\n\t\t\tconst j = idx.mod(gs);\n\t\t\tconst i = idx.div(gs);\n\t\t\tIf(i.greaterThan(uint(0)).and(i.lessThan(gsm1)).and(j.greaterThan(uint(0))).and(j.lessThan(gsm1)), () => {\n\t\t\t\tconst right = srcBuf.element(idx.add(uint(1)));\n\t\t\t\tconst left = srcBuf.element(idx.sub(uint(1)));\n\t\t\t\tconst down = srcBuf.element(idx.add(gs));\n\t\t\t\tconst up = srcBuf.element(idx.sub(gs));\n\t\t\t\tconst dx = right.sub(left).mul(float(.5));\n\t\t\t\tconst dy = down.sub(up).mul(float(.5));\n\t\t\t\ttextureStore(dispTexNode, uvec2(j, i), vec4(dx, dy, float(0), float(1))).toWriteOnly();\n\t\t\t});\n\t\t})().compute(GRID_SIZE * GRID_SIZE, [256]);\n\t\tconst propagateAtoB = buildPropagateKernel(bufferA, bufferB);\n\t\tconst gradientB = buildGradientKernel(bufferB);\n\t\tconst propagateBtoA = buildPropagateKernel(bufferB, bufferA);\n\t\tconst gradientA = buildGradientKernel(bufferA);\n\t\tlet direction = 0;\n\t\tlet prevX = .5;\n\t\tlet prevY = .5;\n\t\tlet lastTime = Date.now();\n\t\tlet lastActiveTime = Date.now();\n\t\treturn {\n\t\t\toutputs: { displacement: dispTex },\n\t\t\tgetComputeNodes: (params) => {\n\t\t\t\tconst currentTime = Date.now();\n\t\t\t\tconst dt = Math.min((currentTime - lastTime) / 1e3, .016);\n\t\t\t\tlastTime = currentTime;\n\t\t\t\tconst aspect = dimensions.width / dimensions.height;\n\t\t\t\tconst decay = uniforms.decay.uniform.value;\n\t\t\t\tconst radius = uniforms.radius.uniform.value * .05;\n\t\t\t\tconst rawVelX = dt > 0 ? (params.pointer.x - prevX) / dt : 0;\n\t\t\t\tconst rawVelY = dt > 0 ? (params.pointer.y - prevY) / dt : 0;\n\t\t\t\tconst mouseSpeed = Math.min(Math.sqrt(rawVelX * rawVelX + rawVelY * rawVelY), 2);\n\t\t\t\tprevX = params.pointer.x;\n\t\t\t\tprevY = params.pointer.y;\n\t\t\t\tif (mouseSpeed > .01) lastActiveTime = currentTime;\n\t\t\t\tconst dampFactor = 1 - decay * .004;\n\t\t\t\tconst settleTime = dampFactor >= 1 ? Infinity : Math.min(3e4, Math.log(1e-6) / Math.log(Math.max(dampFactor, .001)) * 16.67);\n\t\t\t\tif (currentTime - lastActiveTime > settleTime) return null;\n\t\t\t\tcursorXU.value = params.pointer.x;\n\t\t\t\tcursorYU.value = params.pointer.y;\n\t\t\t\tmouseSpeedU.value = mouseSpeed;\n\t\t\t\tdtU.value = dt;\n\t\t\t\tdecayU.value = decay;\n\t\t\t\tradiusU.value = radius;\n\t\t\t\taspectU.value = aspect;\n\t\t\t\tconst nodes = direction === 0 ? [propagateAtoB, gradientB] : [propagateBtoA, gradientA];\n\t\t\t\tdirection = 1 - direction;\n\t\t\t\treturn nodes;\n\t\t\t}\n\t\t};\n\t},\n\tfragmentNode: ({ uniforms, onBeforeRender, childNode, onCleanup, dimensions, computeOutputs }) => {\n\t\tif (!childNode) return vec4(0, 0, 0, 0);\n\t\tconst childTexture = convertToTexture(childNode);\n\t\tonCleanup(() => {\n\t\t\tif (childTexture?.renderTarget?.dispose) childTexture.renderTarget.dispose();\n\t\t});\n\t\tlet displacement;\n\t\tif (computeOutputs?.displacement) displacement = texture(computeOutputs.displacement).sample(screenUV).xy;\n\t\telse {\n\t\t\tconst buffers = [new Float32Array(GRID_SIZE * GRID_SIZE), new Float32Array(GRID_SIZE * GRID_SIZE)];\n\t\t\tlet currentBuffer = 0;\n\t\t\tconst displacementData = new Float32Array(GRID_SIZE * GRID_SIZE * 2);\n\t\t\tconst displacementTexture = new DataTexture(displacementData, GRID_SIZE, GRID_SIZE, RGFormat, FloatType);\n\t\t\tdisplacementTexture.magFilter = LinearFilter$1;\n\t\t\tdisplacementTexture.minFilter = LinearFilter$1;\n\t\t\tdisplacementTexture.needsUpdate = true;\n\t\t\tconst displacementField = texture(displacementTexture);\n\t\t\tlet prevX = .5;\n\t\t\tlet prevY = .5;\n\t\t\tlet lastTime = Date.now();\n\t\t\tlet prevMaxAbsVal = 1;\n\t\t\tonBeforeRender(({ pointer }) => {\n\t\t\t\tconst currentTime = Date.now();\n\t\t\t\tconst dt = Math.min((currentTime - lastTime) / 1e3, .016);\n\t\t\t\tlastTime = currentTime;\n\t\t\t\tconst aspect = dimensions.width / dimensions.height;\n\t\t\t\tconst substeps = 1;\n\t\t\t\tconst decay = uniforms.decay.uniform.value;\n\t\t\t\tconst radius = uniforms.radius.uniform.value * .05;\n\t\t\t\tconst rawVelX = dt > 0 ? (pointer.x - prevX) / dt : 0;\n\t\t\t\tconst rawVelY = dt > 0 ? (pointer.y - prevY) / dt : 0;\n\t\t\t\tconst mouseSpeed = Math.min(Math.sqrt(rawVelX * rawVelX + rawVelY * rawVelY), 2);\n\t\t\t\tprevX = pointer.x;\n\t\t\t\tprevY = pointer.y;\n\t\t\t\tif (mouseSpeed <= .01 && prevMaxAbsVal < 1e-6) return;\n\t\t\t\tconst dampFactor = 1 - decay * .004;\n\t\t\t\tlet maxAbsVal = 0;\n\t\t\t\tfor (let s = 0; s < substeps; s++) {\n\t\t\t\t\tconst curr$1 = buffers[currentBuffer];\n\t\t\t\t\tconst prev = buffers[1 - currentBuffer];\n\t\t\t\t\tif (s === 0 && mouseSpeed > .01) {\n\t\t\t\t\t\tconst influenceRadius = radius * 3;\n\t\t\t\t\t\tconst minJ = Math.max(1, Math.floor((pointer.x - influenceRadius) * GRID_SIZE));\n\t\t\t\t\t\tconst maxJ = Math.min(GRID_SIZE - 2, Math.ceil((pointer.x + influenceRadius) * GRID_SIZE));\n\t\t\t\t\t\tconst minI = Math.max(1, Math.floor((pointer.y - influenceRadius) * GRID_SIZE));\n\t\t\t\t\t\tconst maxI = Math.min(GRID_SIZE - 2, Math.ceil((pointer.y + influenceRadius) * GRID_SIZE));\n\t\t\t\t\t\tfor (let i = minI; i <= maxI; i++) for (let j = minJ; j <= maxJ; j++) {\n\t\t\t\t\t\t\tconst idx = i * GRID_SIZE + j;\n\t\t\t\t\t\t\tconst cellX = (j + .5) / GRID_SIZE;\n\t\t\t\t\t\t\tconst cellY = (i + .5) / GRID_SIZE;\n\t\t\t\t\t\t\tconst ddx = aspect >= 1 ? (cellX - pointer.x) * aspect : cellX - pointer.x;\n\t\t\t\t\t\t\tconst ddy = aspect >= 1 ? cellY - pointer.y : (cellY - pointer.y) / aspect;\n\t\t\t\t\t\t\tconst dist = Math.sqrt(ddx * ddx + ddy * ddy);\n\t\t\t\t\t\t\tif (dist < influenceRadius) {\n\t\t\t\t\t\t\t\tconst influence = Math.exp(-dist * dist / (radius * radius));\n\t\t\t\t\t\t\t\tcurr$1[idx] -= influence * mouseSpeed * dt * 3;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tfor (let i = 1; i < GRID_SIZE - 1; i++) for (let j = 1; j < GRID_SIZE - 1; j++) {\n\t\t\t\t\t\tconst idx = i * GRID_SIZE + j;\n\t\t\t\t\t\tconst next = ((curr$1[idx - 1] + curr$1[idx + 1] + curr$1[idx - GRID_SIZE] + curr$1[idx + GRID_SIZE]) * .5 - prev[idx]) * dampFactor;\n\t\t\t\t\t\tprev[idx] = next;\n\t\t\t\t\t\tconst absNext = next < 0 ? -next : next;\n\t\t\t\t\t\tif (absNext > maxAbsVal) maxAbsVal = absNext;\n\t\t\t\t\t}\n\t\t\t\t\tcurrentBuffer = 1 - currentBuffer;\n\t\t\t\t}\n\t\t\t\tprevMaxAbsVal = maxAbsVal;\n\t\t\t\tconst curr = buffers[currentBuffer];\n\t\t\t\tfor (let i = 1; i < GRID_SIZE - 1; i++) for (let j = 1; j < GRID_SIZE - 1; j++) {\n\t\t\t\t\tconst idx = i * GRID_SIZE + j;\n\t\t\t\t\tconst dIdx = idx * 2;\n\t\t\t\t\tdisplacementData[dIdx] = (curr[idx + 1] - curr[idx - 1]) * .5;\n\t\t\t\t\tdisplacementData[dIdx + 1] = (curr[idx + GRID_SIZE] - curr[idx - GRID_SIZE]) * .5;\n\t\t\t\t}\n\t\t\t\tdisplacementTexture.needsUpdate = true;\n\t\t\t});\n\t\t\tonCleanup(() => {\n\t\t\t\tdisplacementTexture.dispose();\n\t\t\t});\n\t\t\tdisplacement = displacementField.sample(screenUV).xy;\n\t\t}\n\t\tconst intensityScale = uniforms.intensity.uniform.mul(.1);\n\t\tconst scaledDisplacement = displacement.mul(intensityScale);\n\t\tconst maxDisp = float(.15);\n\t\tconst clampedDisplacement = scaledDisplacement.clamp(vec2(maxDisp.negate(), maxDisp.negate()), vec2(maxDisp, maxDisp));\n\t\tconst chromaticScale = uniforms.chromaticSplit.uniform.mul(.1);\n\t\tconst rUV = screenUV.sub(clampedDisplacement.mul(float(1).add(chromaticScale)));\n\t\tconst gUV = screenUV.sub(clampedDisplacement);\n\t\tconst bUV = screenUV.sub(clampedDisplacement.mul(float(1).sub(chromaticScale)));\n\t\tconst rSample = applyEdgeHandling(rUV, childTexture.sample(rUV), childTexture, uniforms.edges.uniform.value);\n\t\tconst gSample = applyEdgeHandling(gUV, childTexture.sample(gUV), childTexture, uniforms.edges.uniform.value);\n\t\tconst bSample = applyEdgeHandling(bUV, childTexture.sample(bUV), childTexture, uniforms.edges.uniform.value);\n\t\treturn unpremultiplyAlpha(vec4(rSample.r, gSample.g, bSample.b, gSample.a));\n\t}\n};\nvar CursorRipples_default = componentDefinition;\nexport { componentDefinition as n, CursorRipples_default as t };\n","import { a as transformColor, o as transformColorSpace, t as colorSpaceOptions } from \"./transformations-CJcUeZIC.js\";\nimport { t as mixColors } from \"./colorMixing-BPpDnR5I.js\";\nimport { StorageTexture } from \"three/webgpu\";\nimport { DataTexture, FloatType, LinearFilter as LinearFilter$1, RGBAFormat } from \"three\";\nimport { Fn, If, attributeArray, float, instanceIndex, screenUV, step, storageTexture, texture, textureStore, uint, uniform, uvec2, vec2, vec4 } from \"three/tsl\";\nvar GRID_SIZE = 128;\nconst componentDefinition = {\n\tname: \"CursorTrail\",\n\tcategory: \"Interactive\",\n\tdescription: \"Animated trail effect that tracks cursor movement\",\n\tusesPointer: true,\n\tprops: {\n\t\tcolorA: {\n\t\t\tdefault: \"#00aaff\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Color of fresh trails\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Start Color\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tcolorB: {\n\t\t\tdefault: \"#ff00aa\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Color trails transition to as they fade\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"End Color\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tradius: {\n\t\t\tdefault: .5,\n\t\t\tdescription: \"Base radius of trail circles\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: .5,\n\t\t\t\tmax: 2,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Radius\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tlength: {\n\t\t\tdefault: .5,\n\t\t\tdescription: \"How long trail circles persist (in seconds)\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: .1,\n\t\t\t\tmax: 2,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Trail Length\",\n\t\t\t\tgroup: \"Animation\"\n\t\t\t}\n\t\t},\n\t\tshrink: {\n\t\t\tdefault: 1,\n\t\t\tdescription: \"How much circles shrink as they fade out (0 = no shrink, 1 = full shrink)\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Shrink Amount\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tcolorSpace: {\n\t\t\tdefault: \"linear\",\n\t\t\ttransform: transformColorSpace,\n\t\t\tcompileTime: true,\n\t\t\tdescription: \"Color space for color interpolation\",\n\t\t\tui: {\n\t\t\t\ttype: \"select\",\n\t\t\t\toptions: colorSpaceOptions,\n\t\t\t\tlabel: \"Color Space\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t}\n\t},\n\tcomputeNode: ({ uniforms, onCleanup, renderer }) => {\n\t\tconst trailBuffer = attributeArray(GRID_SIZE * GRID_SIZE, \"vec4\");\n\t\tconst trailTex = new StorageTexture(GRID_SIZE, GRID_SIZE);\n\t\ttrailTex.type = FloatType;\n\t\tconst trailTexNode = storageTexture(trailTex);\n\t\tonCleanup(() => {\n\t\t\ttrailTex.dispose();\n\t\t});\n\t\tconst fadeRateU = uniform(.97);\n\t\tconst ageRateU = uniform(.03);\n\t\tconst shrinkU = uniform(1);\n\t\tconst cursorXU = uniform(.5);\n\t\tconst cursorYU = uniform(.5);\n\t\tconst radiusU = uniform(.05);\n\t\tconst amountU = uniform(0);\n\t\tconst aspectU = uniform(1);\n\t\tconst mouseActiveU = uniform(0);\n\t\tconst gs = uint(GRID_SIZE);\n\t\tconst decayPass = Fn(() => {\n\t\t\tconst idx = instanceIndex;\n\t\t\tconst cell = trailBuffer.element(idx);\n\t\t\tconst intensity = cell.x.mul(fadeRateU);\n\t\t\tconst size = float(1).sub(float(1).sub(intensity).mul(shrinkU));\n\t\t\tconst age = cell.z.add(ageRateU).min(float(1));\n\t\t\ttrailBuffer.element(idx).assign(vec4(intensity, size, age, float(0)));\n\t\t})().compute(GRID_SIZE * GRID_SIZE, [256]);\n\t\tconst stampPass = Fn(() => {\n\t\t\tconst idx = instanceIndex;\n\t\t\tconst j = idx.mod(gs);\n\t\t\tconst i = idx.div(gs);\n\t\t\tIf(mouseActiveU.greaterThan(float(.5)), () => {\n\t\t\t\tconst cellX = j.toFloat().add(float(.5)).div(float(GRID_SIZE));\n\t\t\t\tconst cellY = i.toFloat().add(float(.5)).div(float(GRID_SIZE));\n\t\t\t\tconst ddx = aspectU.greaterThanEqual(float(1)).select(cellX.sub(cursorXU).mul(aspectU), cellX.sub(cursorXU));\n\t\t\t\tconst ddy = aspectU.greaterThanEqual(float(1)).select(cellY.sub(cursorYU), cellY.sub(cursorYU).div(aspectU));\n\t\t\t\tconst distSq = ddx.mul(ddx).add(ddy.mul(ddy));\n\t\t\t\tconst influenceRadius = radiusU.mul(float(3));\n\t\t\t\tIf(distSq.lessThan(influenceRadius.mul(influenceRadius)), () => {\n\t\t\t\t\tconst influence = distSq.negate().div(radiusU.mul(radiusU)).exp();\n\t\t\t\t\tconst newIntensity = trailBuffer.element(idx).x.add(influence.mul(amountU)).min(float(1));\n\t\t\t\t\ttrailBuffer.element(idx).assign(vec4(newIntensity, float(1), float(0), float(0)));\n\t\t\t\t});\n\t\t\t});\n\t\t})().compute(GRID_SIZE * GRID_SIZE, [256]);\n\t\tconst outputPass = Fn(() => {\n\t\t\tconst idx = instanceIndex;\n\t\t\tconst j = idx.mod(gs);\n\t\t\tconst i = idx.div(gs);\n\t\t\tconst cell = trailBuffer.element(idx);\n\t\t\ttextureStore(trailTexNode, uvec2(j, i), cell).toWriteOnly();\n\t\t})().compute(GRID_SIZE * GRID_SIZE, [256]);\n\t\tlet prevX = .5;\n\t\tlet prevY = .5;\n\t\tlet lastTime = Date.now();\n\t\tlet lastActiveTime = Date.now();\n\t\treturn {\n\t\t\toutputs: { trailTexture: trailTex },\n\t\t\tgetComputeNodes: (params) => {\n\t\t\t\tconst currentTime = Date.now();\n\t\t\t\tconst dt = Math.min((currentTime - lastTime) / 1e3, .016);\n\t\t\t\tlastTime = currentTime;\n\t\t\t\tconst aspect = Math.max(1, params.dimensions.width) / Math.max(1, params.dimensions.height);\n\t\t\t\tconst radius = uniforms.radius.uniform.value * .1;\n\t\t\t\tconst length$1 = uniforms.length.uniform.value;\n\t\t\t\tconst shrink = uniforms.shrink.uniform.value;\n\t\t\t\tconst dx = params.pointer.x - prevX;\n\t\t\t\tconst dy = params.pointer.y - prevY;\n\t\t\t\tconst speed = Math.sqrt(dx * dx + dy * dy);\n\t\t\t\tconst oldX = prevX;\n\t\t\t\tconst oldY = prevY;\n\t\t\t\tprevX = params.pointer.x;\n\t\t\t\tprevY = params.pointer.y;\n\t\t\t\tif (speed > .001) lastActiveTime = currentTime;\n\t\t\t\tconst settleMs = Math.min(3e4, Math.max(3e3, length$1 * 5e3));\n\t\t\t\tif (currentTime - lastActiveTime > settleMs) return null;\n\t\t\t\tfadeRateU.value = 1 - dt / Math.max(.1, length$1);\n\t\t\t\tageRateU.value = dt / Math.max(.1, length$1);\n\t\t\t\tshrinkU.value = shrink;\n\t\t\t\tradiusU.value = radius;\n\t\t\t\taspectU.value = aspect;\n\t\t\t\trenderer.compute(decayPass);\n\t\t\t\tif (speed > .001) {\n\t\t\t\t\tconst stepSize = Math.max(.005, radius * .5);\n\t\t\t\t\tconst numSteps = Math.min(20, Math.max(1, Math.ceil(speed / stepSize)));\n\t\t\t\t\tconst amountPerStep = speed / numSteps * 50 * dt;\n\t\t\t\t\tmouseActiveU.value = 1;\n\t\t\t\t\tamountU.value = amountPerStep;\n\t\t\t\t\tfor (let s = 0; s < numSteps; s++) {\n\t\t\t\t\t\tconst t = (s + .5) / numSteps;\n\t\t\t\t\t\tcursorXU.value = oldX + dx * t;\n\t\t\t\t\t\tcursorYU.value = oldY + dy * t;\n\t\t\t\t\t\trenderer.compute(stampPass);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn [outputPass];\n\t\t\t}\n\t\t};\n\t},\n\tfragmentNode: ({ uniforms, onBeforeRender, onCleanup, computeOutputs }) => {\n\t\tlet trailField;\n\t\tif (computeOutputs?.trailTexture) trailField = texture(computeOutputs.trailTexture);\n\t\telse {\n\t\t\tconst trailData = new Float32Array(GRID_SIZE * GRID_SIZE * 4);\n\t\t\tconst trailTexture = new DataTexture(trailData, GRID_SIZE, GRID_SIZE, RGBAFormat, FloatType);\n\t\t\ttrailTexture.magFilter = LinearFilter$1;\n\t\t\ttrailTexture.minFilter = LinearFilter$1;\n\t\t\ttrailTexture.needsUpdate = true;\n\t\t\ttrailField = texture(trailTexture);\n\t\t\tlet prevX = .5;\n\t\t\tlet prevY = .5;\n\t\t\tlet lastTime = Date.now();\n\t\t\tonBeforeRender(({ pointer, dimensions }) => {\n\t\t\t\tconst currentTime = Date.now();\n\t\t\t\tconst dt = Math.min((currentTime - lastTime) / 1e3, .016);\n\t\t\t\tlastTime = currentTime;\n\t\t\t\tconst aspect = Math.max(1, dimensions.width) / Math.max(1, dimensions.height);\n\t\t\t\tconst radius = uniforms.radius.uniform.value * .1;\n\t\t\t\tconst length$1 = uniforms.length.uniform.value;\n\t\t\t\tconst shrink = uniforms.shrink.uniform.value;\n\t\t\t\tconst dx = pointer.x - prevX;\n\t\t\t\tconst dy = pointer.y - prevY;\n\t\t\t\tconst speed = Math.sqrt(dx * dx + dy * dy);\n\t\t\t\tconst fadeRate = 1 - dt / Math.max(.1, length$1);\n\t\t\t\tconst ageRate = dt / Math.max(.1, length$1);\n\t\t\t\tfor (let i = 0; i < GRID_SIZE * GRID_SIZE * 4; i += 4) {\n\t\t\t\t\ttrailData[i] *= fadeRate;\n\t\t\t\t\ttrailData[i + 1] = 1 - (1 - trailData[i]) * shrink;\n\t\t\t\t\ttrailData[i + 2] = Math.min(1, trailData[i + 2] + ageRate);\n\t\t\t\t}\n\t\t\t\tif (speed > .001) {\n\t\t\t\t\tconst influenceRadius = radius * 3;\n\t\t\t\t\tconst stepSize = Math.max(.005, radius * .5);\n\t\t\t\t\tconst numSteps = Math.min(20, Math.max(1, Math.ceil(speed / stepSize)));\n\t\t\t\t\tconst amountPerStep = speed / numSteps * 50 * dt;\n\t\t\t\t\tfor (let s = 0; s < numSteps; s++) {\n\t\t\t\t\t\tconst t = (s + .5) / numSteps;\n\t\t\t\t\t\tconst px = prevX + dx * t;\n\t\t\t\t\t\tconst py = prevY + dy * t;\n\t\t\t\t\t\tconst minJ = Math.max(0, Math.floor((px - influenceRadius) * GRID_SIZE));\n\t\t\t\t\t\tconst maxJ = Math.min(GRID_SIZE - 1, Math.ceil((px + influenceRadius) * GRID_SIZE));\n\t\t\t\t\t\tconst minI = Math.max(0, Math.floor((py - influenceRadius) * GRID_SIZE));\n\t\t\t\t\t\tconst maxI = Math.min(GRID_SIZE - 1, Math.ceil((py + influenceRadius) * GRID_SIZE));\n\t\t\t\t\t\tfor (let i = minI; i <= maxI; i++) for (let j = minJ; j <= maxJ; j++) {\n\t\t\t\t\t\t\tconst idx = (i * GRID_SIZE + j) * 4;\n\t\t\t\t\t\t\tconst cellX = (j + .5) / GRID_SIZE;\n\t\t\t\t\t\t\tconst cellY = (i + .5) / GRID_SIZE;\n\t\t\t\t\t\t\tconst cellDx = aspect >= 1 ? (cellX - px) * aspect : cellX - px;\n\t\t\t\t\t\t\tconst cellDy = aspect >= 1 ? cellY - py : (cellY - py) / aspect;\n\t\t\t\t\t\t\tconst dist = Math.sqrt(cellDx * cellDx + cellDy * cellDy);\n\t\t\t\t\t\t\tif (dist < influenceRadius) {\n\t\t\t\t\t\t\t\tconst influence = Math.exp(-dist * dist / (radius * radius));\n\t\t\t\t\t\t\t\ttrailData[idx] = Math.min(1, trailData[idx] + influence * amountPerStep);\n\t\t\t\t\t\t\t\ttrailData[idx + 1] = 1;\n\t\t\t\t\t\t\t\ttrailData[idx + 2] = 0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\ttrailTexture.needsUpdate = true;\n\t\t\t\tprevX = pointer.x;\n\t\t\t\tprevY = pointer.y;\n\t\t\t});\n\t\t\tonCleanup(() => {\n\t\t\t\ttrailTexture.dispose();\n\t\t\t});\n\t\t}\n\t\tconst pixelSize = float(1 / GRID_SIZE);\n\t\tconst centerSample = trailField.sample(screenUV);\n\t\tconst sample1 = trailField.sample(screenUV.add(vec2(pixelSize, float(0))));\n\t\tconst sample2 = trailField.sample(screenUV.add(vec2(float(0), pixelSize)));\n\t\tconst sample3 = trailField.sample(screenUV.add(vec2(pixelSize.negate(), float(0))));\n\t\tconst sample4 = trailField.sample(screenUV.add(vec2(float(0), pixelSize.negate())));\n\t\tconst trailIntensity = centerSample.x.mul(float(.5)).add(sample1.x.mul(float(.125))).add(sample2.x.mul(float(.125))).add(sample3.x.mul(float(.125))).add(sample4.x.mul(float(.125)));\n\t\tconst trailAge = centerSample.z.mul(float(.5)).add(sample1.z.mul(float(.125))).add(sample2.z.mul(float(.125))).add(sample3.z.mul(float(.125))).add(sample4.z.mul(float(.125)));\n\t\tconst circleMask = step(float(.01), trailIntensity);\n\t\tconst colorA = uniforms.colorA.uniform;\n\t\tconst colorB = uniforms.colorB.uniform;\n\t\tconst trailColor = mixColors(colorA, colorB, trailAge, uniforms.colorSpace.uniform.value);\n\t\treturn vec4(trailColor.rgb, trailColor.a.mul(circleMask));\n\t}\n};\nvar CursorTrail_default = componentDefinition;\nexport { componentDefinition as n, CursorTrail_default as t };\n","import { a as transformColor, l as transformPosition, o as transformColorSpace, t as colorSpaceOptions } from \"./transformations-CJcUeZIC.js\";\nimport { t as mixColors } from \"./colorMixing-BPpDnR5I.js\";\nimport { abs, cos, float, fract, max, mix, screenUV, sin, vec2, viewportSize } from \"three/tsl\";\nconst componentDefinition = {\n\tname: \"DiamondGradient\",\n\tcategory: \"Textures\",\n\tdescription: \"Diamond-shaped gradient radiating from a center point using Manhattan distance\",\n\tprops: {\n\t\tcolorA: {\n\t\t\tdefault: \"#4ffb4a\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Color at the center of the diamond\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Color A (Center)\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tcolorB: {\n\t\t\tdefault: \"#4f1238\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Color at the outer edges of the diamond\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Color B (Edge)\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tcenter: {\n\t\t\tdefault: {\n\t\t\t\tx: .5,\n\t\t\t\ty: .5\n\t\t\t},\n\t\t\ttransform: transformPosition,\n\t\t\tdescription: \"Center point of the diamond\",\n\t\t\tui: {\n\t\t\t\ttype: \"position\",\n\t\t\t\tlabel: \"Center\",\n\t\t\t\tgroup: \"Position\"\n\t\t\t}\n\t\t},\n\t\tsize: {\n\t\t\tdefault: .7,\n\t\t\tdescription: \"Extent of the gradient — controls how far Color A reaches before transitioning to Color B\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: .01,\n\t\t\t\tmax: 2,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Size\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\trotation: {\n\t\t\tdefault: 0,\n\t\t\tdescription: \"Rotation in degrees — tilts the diamond into a rhombus\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 360,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Rotation\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\trepeat: {\n\t\t\tdefault: 1,\n\t\t\tdescription: \"Number of times the gradient repeats outward. Values above 1 create concentric diamond or square bands.\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 1,\n\t\t\t\tmax: 16,\n\t\t\t\tstep: .5,\n\t\t\t\tlabel: \"Repeat\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\troundness: {\n\t\t\tdefault: 0,\n\t\t\tdescription: \"Morphs from a sharp diamond (0) to a square (1)\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Roundness\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tcolorSpace: {\n\t\t\tdefault: \"oklch\",\n\t\t\ttransform: transformColorSpace,\n\t\t\tcompileTime: true,\n\t\t\tdescription: \"Color space for color interpolation\",\n\t\t\tui: {\n\t\t\t\ttype: \"select\",\n\t\t\t\toptions: colorSpaceOptions,\n\t\t\t\tlabel: \"Color Space\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t}\n\t},\n\tfragmentNode: ({ uniforms }) => {\n\t\tconst uv$1 = screenUV;\n\t\tconst aspect = viewportSize.x.div(viewportSize.y);\n\t\tconst aspectUV = vec2(uv$1.x.mul(aspect), uv$1.y);\n\t\tconst centerPos = vec2(uniforms.center.uniform.x.mul(aspect), uniforms.center.uniform.y.oneMinus());\n\t\tconst dx = aspectUV.x.sub(centerPos.x);\n\t\tconst dy = aspectUV.y.sub(centerPos.y);\n\t\tconst rotRad = uniforms.rotation.uniform.mul(float(Math.PI / 180));\n\t\tconst cosR = cos(rotRad);\n\t\tconst sinR = sin(rotRad);\n\t\tconst rdx = dx.mul(cosR).add(dy.mul(sinR));\n\t\tconst rdy = dy.mul(cosR).sub(dx.mul(sinR));\n\t\tconst absDx = abs(rdx);\n\t\tconst absDy = abs(rdy);\n\t\tconst t = mix(absDx.add(absDy), max(absDx, absDy), uniforms.roundness.uniform).div(uniforms.size.uniform).mul(uniforms.repeat.uniform);\n\t\tconst finalT = uniforms.repeat.uniform.greaterThan(float(1.0001)).select(fract(t), t.clamp(float(0), float(1)));\n\t\treturn mixColors(uniforms.colorA.uniform, uniforms.colorB.uniform, finalT, uniforms.colorSpace.uniform.value);\n\t}\n};\nvar DiamondGradient_default = componentDefinition;\nexport { componentDefinition as n, DiamondGradient_default as t };\n","import { t as applyEdgeHandling } from \"./edges-CX_lJB9R.js\";\nimport { c as transformEdges } from \"./transformations-CJcUeZIC.js\";\nimport { t as unpremultiplyAlpha } from \"./alpha-C4ptedXe.js\";\nimport { convertToTexture, dot, fract, screenUV, sin, vec2, vec4, viewportSize } from \"three/tsl\";\nconst componentDefinition = {\n\tname: \"DiffuseBlur\",\n\tcategory: \"Blurs\",\n\tdescription: \"Grain-like pixel displacement at random\",\n\trequiresRTT: true,\n\trequiresChild: true,\n\tprops: {\n\t\tintensity: {\n\t\t\tdefault: 30,\n\t\t\tdescription: \"Intensity of the diffuse blur effect\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 100,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Intensity\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tedges: {\n\t\t\tdefault: \"stretch\",\n\t\t\tdescription: \"How to handle edges when distortion pushes content out of bounds\",\n\t\t\ttransform: transformEdges,\n\t\t\tcompileTime: true,\n\t\t\tui: {\n\t\t\t\ttype: \"select\",\n\t\t\t\toptions: [\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Stretch\",\n\t\t\t\t\t\tvalue: \"stretch\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Transparent\",\n\t\t\t\t\t\tvalue: \"transparent\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Mirror\",\n\t\t\t\t\t\tvalue: \"mirror\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Wrap\",\n\t\t\t\t\t\tvalue: \"wrap\"\n\t\t\t\t\t}\n\t\t\t\t],\n\t\t\t\tlabel: \"Edges\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t}\n\t},\n\tfragmentNode: ({ uniforms, childNode, onCleanup }) => {\n\t\tif (!childNode) return vec4(0, 0, 0, 0);\n\t\tconst childTexture = convertToTexture(childNode);\n\t\tonCleanup(() => {\n\t\t\tif (childTexture?.renderTarget?.dispose) childTexture.renderTarget.dispose();\n\t\t});\n\t\tconst uv$1 = screenUV;\n\t\tconst sinVal = sin(dot(uv$1.mul(1e3), vec2(25.9796, 156.466)));\n\t\tconst offset = fract(vec2(sinVal.mul(43758.5453), sinVal.mul(28461.7231))).mul(2).sub(1).mul(uniforms.intensity.uniform).div(viewportSize);\n\t\tconst displacedUV = uv$1.add(offset);\n\t\treturn unpremultiplyAlpha(applyEdgeHandling(displacedUV, childTexture.sample(displacedUV), childTexture, uniforms.edges.uniform.value));\n\t}\n};\nvar DiffuseBlur_default = componentDefinition;\nexport { componentDefinition as n, DiffuseBlur_default as t };\n","import { a as transformColor } from \"./transformations-CJcUeZIC.js\";\nimport { t as unpremultiplyAlpha } from \"./alpha-C4ptedXe.js\";\nimport { DataTexture, FloatType, NearestFilter, RGBAFormat, RepeatWrapping } from \"three\";\nimport { convertToTexture, dot, float, floor, fract, mix, screenUV, sin, step, texture, vec2, vec3, vec4, viewportSize } from \"three/tsl\";\nvar transformPattern = (value) => {\n\treturn {\n\t\t\"bayer2\": 0,\n\t\t\"bayer4\": 1,\n\t\t\"bayer8\": 2,\n\t\t\"clusteredDot\": 3,\n\t\t\"blueNoise\": 4,\n\t\t\"whiteNoise\": 5\n\t}[value] ?? 1;\n};\nvar transformColorMode = (value) => {\n\treturn value === \"source\" ? 1 : 0;\n};\nconst componentDefinition = {\n\tname: \"Dither\",\n\tcategory: \"Stylize\",\n\tdescription: \"Dithering effect with multiple pattern options\",\n\trequiresRTT: true,\n\trequiresChild: true,\n\tprops: {\n\t\tpattern: {\n\t\t\tdefault: \"bayer4\",\n\t\t\ttransform: transformPattern,\n\t\t\tcompileTime: true,\n\t\t\tdescription: \"Dithering pattern algorithm\",\n\t\t\tui: {\n\t\t\t\ttype: \"select\",\n\t\t\t\toptions: [\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Bayer 2x2\",\n\t\t\t\t\t\tvalue: \"bayer2\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Bayer 4x4\",\n\t\t\t\t\t\tvalue: \"bayer4\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Bayer 8x8\",\n\t\t\t\t\t\tvalue: \"bayer8\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Clustered Dot\",\n\t\t\t\t\t\tvalue: \"clusteredDot\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Blue Noise\",\n\t\t\t\t\t\tvalue: \"blueNoise\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"White Noise\",\n\t\t\t\t\t\tvalue: \"whiteNoise\"\n\t\t\t\t\t}\n\t\t\t\t],\n\t\t\t\tlabel: \"Pattern\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tpixelSize: {\n\t\t\tdefault: 4,\n\t\t\tdescription: \"Size of dithering pixels\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 1,\n\t\t\t\tmax: 20,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Pixel Size\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tthreshold: {\n\t\t\tdefault: .5,\n\t\t\tdescription: \"Luminance threshold for dithering\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Threshold\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tspread: {\n\t\t\tdefault: 1,\n\t\t\tdescription: \"How much of the luminance range participates in dithering (lower = more solid areas)\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Spread\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tcolorMode: {\n\t\t\tdefault: \"custom\",\n\t\t\ttransform: transformColorMode,\n\t\t\tcompileTime: true,\n\t\t\tdescription: \"How colors are determined\",\n\t\t\tui: {\n\t\t\t\ttype: \"select\",\n\t\t\t\toptions: [{\n\t\t\t\t\tlabel: \"Custom Colors\",\n\t\t\t\t\tvalue: \"custom\"\n\t\t\t\t}, {\n\t\t\t\t\tlabel: \"Source Colors\",\n\t\t\t\t\tvalue: \"source\"\n\t\t\t\t}],\n\t\t\t\tlabel: \"Color Mode\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tcolorA: {\n\t\t\tdefault: \"transparent\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Dark color for dithering\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Dark Color\",\n\t\t\t\tcondition: { colorMode: \"custom\" },\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tcolorB: {\n\t\t\tdefault: \"#ffffff\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Light color for dithering\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Light Color\",\n\t\t\t\tcondition: { colorMode: \"custom\" },\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t}\n\t},\n\tfragmentNode: ({ uniforms, childNode, onCleanup }) => {\n\t\tif (!childNode) return vec4(0, 0, 0, 0);\n\t\tconst childTexture = convertToTexture(childNode);\n\t\tonCleanup(() => {\n\t\t\tif (childTexture?.renderTarget?.dispose) childTexture.renderTarget.dispose();\n\t\t});\n\t\tconst DITHER_SIZE = 8;\n\t\tconst ditherData = new Float32Array(DITHER_SIZE * DITHER_SIZE * 4);\n\t\tconst bQ = (x, y) => y * 3 + x * 2 - x * y * 4;\n\t\tconst cM = [\n\t\t\t[\n\t\t\t\t12,\n\t\t\t\t5,\n\t\t\t\t6,\n\t\t\t\t13\n\t\t\t],\n\t\t\t[\n\t\t\t\t4,\n\t\t\t\t0,\n\t\t\t\t1,\n\t\t\t\t7\n\t\t\t],\n\t\t\t[\n\t\t\t\t11,\n\t\t\t\t3,\n\t\t\t\t2,\n\t\t\t\t8\n\t\t\t],\n\t\t\t[\n\t\t\t\t15,\n\t\t\t\t10,\n\t\t\t\t9,\n\t\t\t\t14\n\t\t\t]\n\t\t];\n\t\tfor (let y = 0; y < DITHER_SIZE; y++) for (let x = 0; x < DITHER_SIZE; x++) {\n\t\t\tconst i = (y * DITHER_SIZE + x) * 4;\n\t\t\tditherData[i] = bQ(x % 2, y % 2) / 4;\n\t\t\tditherData[i + 1] = (bQ(x % 2, y % 2) * 4 + bQ(Math.floor(x % 4 / 2), Math.floor(y % 4 / 2))) / 16;\n\t\t\tditherData[i + 2] = (bQ(x % 2, y % 2) * 16 + bQ(Math.floor(x % 4 / 2), Math.floor(y % 4 / 2)) * 4 + bQ(Math.floor(x / 4), Math.floor(y / 4))) / 64;\n\t\t\tditherData[i + 3] = cM[y % 4][x % 4] / 16;\n\t\t}\n\t\tconst ditherTex = new DataTexture(ditherData, DITHER_SIZE, DITHER_SIZE, RGBAFormat, FloatType);\n\t\tditherTex.magFilter = NearestFilter;\n\t\tditherTex.minFilter = NearestFilter;\n\t\tditherTex.wrapS = RepeatWrapping;\n\t\tditherTex.wrapT = RepeatWrapping;\n\t\tditherTex.needsUpdate = true;\n\t\tonCleanup(() => {\n\t\t\tditherTex.dispose();\n\t\t});\n\t\tconst pixelSize = uniforms.pixelSize.uniform;\n\t\tconst threshold = uniforms.threshold.uniform;\n\t\tconst spread = uniforms.spread.uniform;\n\t\tconst pixelCoord = floor(screenUV.mul(viewportSize).div(pixelSize));\n\t\tconst pixelatedUV = pixelCoord.add(.5).mul(pixelSize).div(viewportSize);\n\t\tconst sourceColor = unpremultiplyAlpha(childTexture.sample(pixelatedUV));\n\t\tconst luminance = dot(sourceColor.rgb, vec3(.299, .587, .114)).mul(sourceColor.a);\n\t\tlet ditherValue;\n\t\tswitch (uniforms.pattern.uniform.value) {\n\t\t\tcase 0:\n\t\t\t\tditherValue = texture(ditherTex).sample(pixelCoord.div(float(DITHER_SIZE))).r;\n\t\t\t\tbreak;\n\t\t\tcase 1:\n\t\t\t\tditherValue = texture(ditherTex).sample(pixelCoord.div(float(DITHER_SIZE))).g;\n\t\t\t\tbreak;\n\t\t\tcase 2:\n\t\t\t\tditherValue = texture(ditherTex).sample(pixelCoord.div(float(DITHER_SIZE))).b;\n\t\t\t\tbreak;\n\t\t\tcase 3:\n\t\t\t\tditherValue = texture(ditherTex).sample(pixelCoord.div(float(DITHER_SIZE))).a;\n\t\t\t\tbreak;\n\t\t\tcase 4: {\n\t\t\t\tconst blueNoiseCoord = pixelCoord.add(.5);\n\t\t\t\tditherValue = fract(float(52.9829189).mul(fract(blueNoiseCoord.x.mul(.06711056).add(blueNoiseCoord.y.mul(.00583715)))));\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tdefault: ditherValue = fract(sin(dot(pixelCoord, vec2(12.9898, 78.233))).mul(43758.5453));\n\t\t}\n\t\tconst ditherResult = step(float(.5).add(ditherValue.sub(.5).mul(spread)), luminance.add(threshold.sub(.5)));\n\t\tlet finalRGB;\n\t\tlet finalAlpha;\n\t\tif (uniforms.colorMode.uniform.value === 0) {\n\t\t\tfinalRGB = mix(uniforms.colorA.uniform.rgb, uniforms.colorB.uniform.rgb, ditherResult);\n\t\t\tfinalAlpha = mix(uniforms.colorA.uniform.a, uniforms.colorB.uniform.a, ditherResult);\n\t\t} else {\n\t\t\tfinalRGB = mix(sourceColor.rgb.mul(.3), sourceColor.rgb.mul(1.3).min(vec3(1)), ditherResult);\n\t\t\tfinalAlpha = sourceColor.a;\n\t\t}\n\t\treturn vec4(finalRGB, finalAlpha);\n\t}\n};\nvar Dither_default = componentDefinition;\nexport { componentDefinition as n, Dither_default as t };\n","import { CanvasTexture, LinearFilter, SRGBColorSpace } from \"three/webgpu\";\nimport { screenUV, texture } from \"three/tsl\";\nconst componentDefinition = {\n\tname: \"DOMTexture\",\n\tcategory: \"Textures\",\n\tdescription: \"Render live HTML/DOM content as a WebGPU texture layer via the html-in-canvas API. Requires Chrome Canary with chrome://flags/#canvas-draw-element enabled.\",\n\tcapturesDOM: true,\n\texperimental: {\n\t\tmessage: \"Requires Chrome Canary with chrome://flags/#canvas-draw-element enabled. Do not use for production use.\",\n\t\tdocs: \"This component is powered by the WICG html-in-canvas proposal, which is currently only available in Chrome Canary behind a feature flag. It is not suitable for production use and may change as the specification evolves.\",\n\t\tdocsLink: {\n\t\t\turl: \"https://github.com/WICG/html-in-canvas\",\n\t\t\tlabel: \"View the spec\"\n\t\t}\n\t},\n\tprops: {},\n\tfragmentNode: ({ onCleanup, onBeforeRender, onResize, renderer, domCanvas }) => {\n\t\tconst dpr = Math.min(window.devicePixelRatio, 2);\n\t\tconst backingCanvas = document.createElement(\"canvas\");\n\t\tbackingCanvas.width = Math.round(window.innerWidth * dpr);\n\t\tbackingCanvas.height = Math.round(window.innerHeight * dpr);\n\t\tconst ctx = backingCanvas.getContext(\"2d\");\n\t\tctx.fillStyle = \"rgba(0,0,0,0)\";\n\t\tctx.fillRect(0, 0, backingCanvas.width, backingCanvas.height);\n\t\tconst threeTexture = new CanvasTexture(backingCanvas);\n\t\tthreeTexture.colorSpace = SRGBColorSpace;\n\t\tthreeTexture.generateMipmaps = false;\n\t\tthreeTexture.minFilter = LinearFilter;\n\t\tthreeTexture.needsUpdate = true;\n\t\tconst textureNode = texture(threeTexture);\n\t\tlet gpuTexture = null;\n\t\tlet gpuDevice = null;\n\t\tlet contentElement = null;\n\t\tlet hasLoggedError = false;\n\t\tlet paintSetup = false;\n\t\tlet hasFreshSnapshot = false;\n\t\tonBeforeRender(() => {\n\t\t\tif (!domCanvas) return;\n\t\t\tif (!contentElement) {\n\t\t\t\tcontentElement = domCanvas.firstElementChild;\n\t\t\t\tif (contentElement) {\n\t\t\t\t\tconst rect = contentElement.getBoundingClientRect();\n\t\t\t\t\tconst physW = Math.round(rect.width * window.devicePixelRatio);\n\t\t\t\t\tconst physH = Math.round(rect.height * window.devicePixelRatio);\n\t\t\t\t\tif (physW > 0 && physH > 0 && (physW !== backingCanvas.width || physH !== backingCanvas.height)) {\n\t\t\t\t\t\tbackingCanvas.width = physW;\n\t\t\t\t\t\tbackingCanvas.height = physH;\n\t\t\t\t\t\tthreeTexture.needsUpdate = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (!contentElement) return;\n\t\t\tif (!gpuDevice) try {\n\t\t\t\tgpuDevice = renderer.backend?.device ?? null;\n\t\t\t} catch {}\n\t\t\tif (!gpuTexture && gpuDevice) try {\n\t\t\t\tgpuTexture = renderer.backend.get(threeTexture)?.texture ?? null;\n\t\t\t} catch {}\n\t\t\tif (!paintSetup) {\n\t\t\t\tdomCanvas.getContext(\"2d\");\n\t\t\t\tdomCanvas.onpaint = () => {\n\t\t\t\t\thasFreshSnapshot = true;\n\t\t\t\t};\n\t\t\t\tdomCanvas.requestPaint?.();\n\t\t\t\tpaintSetup = true;\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (hasFreshSnapshot && gpuDevice && gpuTexture && contentElement) try {\n\t\t\t\tgpuDevice.queue.copyElementImageToTexture(contentElement, { texture: gpuTexture });\n\t\t\t\thasFreshSnapshot = false;\n\t\t\t} catch (e) {\n\t\t\t\tif (!hasLoggedError) {\n\t\t\t\t\tconsole.warn(\"[DOMTexture] copyElementImageToTexture failed.\\nRequires Chrome Canary with chrome://flags/#canvas-draw-element enabled.\\nThe element must be a direct child of a <canvas layoutsubtree>.\", e);\n\t\t\t\t\thasLoggedError = true;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\tonResize(() => {\n\t\t\tconst newDpr = Math.min(window.devicePixelRatio, 2);\n\t\t\tbackingCanvas.width = Math.round(window.innerWidth * newDpr);\n\t\t\tbackingCanvas.height = Math.round(window.innerHeight * newDpr);\n\t\t\tthreeTexture.dispose();\n\t\t\tthreeTexture.image = backingCanvas;\n\t\t\tthreeTexture.needsUpdate = true;\n\t\t\tgpuTexture = null;\n\t\t\thasFreshSnapshot = false;\n\t\t\tif (domCanvas) domCanvas.requestPaint?.();\n\t\t});\n\t\tonCleanup(() => {\n\t\t\tif (domCanvas) domCanvas.onpaint = null;\n\t\t\tthreeTexture.dispose();\n\t\t});\n\t\treturn textureNode.sample(screenUV);\n\t}\n};\nvar DOMTexture_default = componentDefinition;\nexport { componentDefinition as n, DOMTexture_default as t };\n","import { a as transformColor } from \"./transformations-CJcUeZIC.js\";\nimport { float, floor, fwidth, length, mix, screenUV, sin, smoothstep, time, vec2, vec4, viewportSize } from \"three/tsl\";\nconst componentDefinition = {\n\tname: \"DotGrid\",\n\tcategory: \"Textures\",\n\tdescription: \"Grid of dots with optional twinkling animation\",\n\tprops: {\n\t\tcolor: {\n\t\t\tdefault: \"#ffffff\",\n\t\t\tdescription: \"The color of the dot\",\n\t\t\ttransform: transformColor,\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Color\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tdensity: {\n\t\t\tdefault: 30,\n\t\t\tdescription: \"The number of dots on the longest canvas edge\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 1,\n\t\t\t\tmax: 200,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Density\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tdotSize: {\n\t\t\tdefault: .3,\n\t\t\tdescription: \"The size of each dot, zero (0) being invisible, one (1) filled the grid with no gaps\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .05,\n\t\t\t\tlabel: \"Dot Size\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\ttwinkle: {\n\t\t\tdefault: 0,\n\t\t\tdescription: \"Intensity of the twinkle effect (0 = off, 1 = full twinkle)\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Twinkle\",\n\t\t\t\tgroup: \"Animation\"\n\t\t\t}\n\t\t}\n\t},\n\tmapSampleUVs: (uniforms) => {\n\t\tconst aspect = viewportSize.x.div(viewportSize.y);\n\t\tconst cellCenterCorrected = floor(vec2(screenUV.x.mul(aspect), screenUV.y.oneMinus()).mul(uniforms.density.uniform)).add(.5).div(uniforms.density.uniform);\n\t\tconst cellCenterScreen = vec2(cellCenterCorrected.x.div(aspect), cellCenterCorrected.y.oneMinus());\n\t\treturn {\n\t\t\tdotSize: cellCenterScreen,\n\t\t\ttwinkle: cellCenterScreen\n\t\t};\n\t},\n\tfragmentNode: ({ uniforms }) => {\n\t\tconst uvCoords = screenUV;\n\t\tconst density = uniforms.density.uniform;\n\t\tconst dotSize = uniforms.dotSize.uniform;\n\t\tconst dotColor = uniforms.color.uniform;\n\t\tconst twinkleIntensity = uniforms.twinkle.uniform;\n\t\tconst resolution = viewportSize;\n\t\tconst aspect = resolution.x.div(resolution.y);\n\t\tconst correctedUV = vec2(uvCoords.x.mul(aspect), uvCoords.y.oneMinus());\n\t\tconst gridUV = correctedUV.mul(density);\n\t\tconst centerDistance = length(gridUV.sub(floor(gridUV)).sub(.5));\n\t\tconst pixelSize = length(fwidth(correctedUV.mul(density)));\n\t\tconst dot$1 = float(1).sub(smoothstep(dotSize.mul(.5).sub(pixelSize.mul(.5)), dotSize.mul(.5), centerDistance));\n\t\tconst gridPosition = floor(gridUV);\n\t\tconst dotPhase = gridPosition.x.mul(12.9898).add(gridPosition.y.mul(78.233)).sin().mul(43758.5453).fract();\n\t\tconst twinkleValue = sin(time.mul(2).add(dotPhase.mul(6.28318))).mul(.5).add(.5);\n\t\tconst twinkleModifier = mix(float(1), twinkleValue, twinkleIntensity);\n\t\tconst twinkledAlpha = dot$1.mul(twinkleModifier);\n\t\treturn vec4(dotColor.rgb, twinkledAlpha);\n\t}\n};\nvar DotGrid_default = componentDefinition;\nexport { componentDefinition as n, DotGrid_default as t };\n","import { a as transformColor, i as transformBoolean } from \"./transformations-CJcUeZIC.js\";\nimport { t as unpremultiplyAlpha } from \"./alpha-C4ptedXe.js\";\nimport { Fn, clamp, convertToTexture, cos, float, max, screenUV, sin, vec2, vec4, viewportSize } from \"three/tsl\";\nvar weights = [\n\t.056,\n\t.135,\n\t.278,\n\t.487,\n\t.726,\n\t.923,\n\t1,\n\t.923,\n\t.726,\n\t.487,\n\t.278,\n\t.135,\n\t.056\n];\nvar weightSum = 6.214;\nconst componentDefinition = {\n\tname: \"DropShadow\",\n\tcategory: \"Stylize\",\n\tdescription: \"Adds a soft shadow behind the child content based on its alpha silhouette\",\n\trequiresRTT: true,\n\trequiresChild: true,\n\tprops: {\n\t\tcolor: {\n\t\t\tdefault: \"#000000\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Shadow color\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Color\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tdistance: {\n\t\t\tdefault: .1,\n\t\t\tdescription: \"How far the shadow is offset from the content\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .005,\n\t\t\t\tlabel: \"Distance\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tangle: {\n\t\t\tdefault: 135,\n\t\t\tdescription: \"Direction the shadow is cast (compass degrees: 0=up, 90=right, 135=lower-right, 180=down)\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 360,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Angle\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tblur: {\n\t\t\tdefault: 5,\n\t\t\tdescription: \"Shadow softness (blur radius in pixels)\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 20,\n\t\t\t\tstep: .5,\n\t\t\t\tlabel: \"Blur\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tintensity: {\n\t\t\tdefault: .5,\n\t\t\tdescription: \"Shadow intensity — how strong/visible the shadow is\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Intensity\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tcutout: {\n\t\t\tdefault: false,\n\t\t\ttransform: transformBoolean,\n\t\t\tcompileTime: true,\n\t\t\tdescription: \"Hide the original layer and show only the shadow\",\n\t\t\tui: {\n\t\t\t\ttype: \"checkbox\",\n\t\t\t\tlabel: \"Cutout\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t}\n\t},\n\tfragmentNode: ({ uniforms, childNode, onCleanup }) => {\n\t\tif (!childNode) return vec4(0);\n\t\tconst childTexture = convertToTexture(childNode);\n\t\tonCleanup(() => {\n\t\t\tif (childTexture?.renderTarget?.dispose) childTexture.renderTarget.dispose();\n\t\t});\n\t\tconst originalColor = childTexture.sample(screenUV);\n\t\tconst angleRad = uniforms.angle.uniform.mul(float(Math.PI / 180));\n\t\tconst dist = uniforms.distance.uniform.mul(float(.2));\n\t\tconst aspect = viewportSize.x.div(viewportSize.y);\n\t\tconst offsetUV = vec2(sin(angleRad).mul(dist).div(aspect), cos(angleRad).negate().mul(dist));\n\t\tconst shadowUV = screenUV.sub(offsetUV);\n\t\tconst horizontalTexture = convertToTexture(Fn(() => {\n\t\t\tconst blurRadius = uniforms.blur.uniform;\n\t\t\tconst pixelSize = vec2(float(1)).div(viewportSize);\n\t\t\tconst total = float(0).toVar();\n\t\t\tfor (let x = -6; x <= 6; x++) {\n\t\t\t\tconst weight = float(weights[x + 6] / weightSum);\n\t\t\t\tconst offset = vec2(float(x), float(0)).mul(blurRadius).mul(pixelSize);\n\t\t\t\ttotal.assign(total.add(childTexture.sample(shadowUV.add(offset)).a.mul(weight)));\n\t\t\t}\n\t\t\treturn vec4(total, float(0), float(0), float(1));\n\t\t})());\n\t\tonCleanup(() => {\n\t\t\tif (horizontalTexture?.renderTarget?.dispose) horizontalTexture.renderTarget.dispose();\n\t\t});\n\t\tconst shadowAlpha = Fn(() => {\n\t\t\tconst blurRadius = uniforms.blur.uniform;\n\t\t\tconst pixelSize = vec2(float(1)).div(viewportSize);\n\t\t\tconst total = float(0).toVar();\n\t\t\tfor (let y = -6; y <= 6; y++) {\n\t\t\t\tconst weight = float(weights[y + 6] / weightSum);\n\t\t\t\tconst offset = vec2(float(0), float(y)).mul(blurRadius).mul(pixelSize);\n\t\t\t\ttotal.assign(total.add(horizontalTexture.sample(screenUV.add(offset)).r.mul(weight)));\n\t\t\t}\n\t\t\treturn total;\n\t\t})().mul(uniforms.intensity.uniform);\n\t\tconst shadowColor = uniforms.color.uniform;\n\t\tconst shadowA = shadowColor.a.mul(shadowAlpha);\n\t\tconst cutout = uniforms.cutout.uniform.value === 1;\n\t\tlet resultRGB;\n\t\tlet resultA;\n\t\tif (cutout) {\n\t\t\tresultA = clamp(shadowA.sub(originalColor.a), float(0), float(1));\n\t\t\tresultRGB = shadowColor.rgb.mul(shadowColor.a).mul(resultA);\n\t\t} else {\n\t\t\tconst shadowPremulRGB = shadowColor.rgb.mul(shadowColor.a).mul(shadowAlpha);\n\t\t\tconst oneMinusOrigA = float(1).sub(originalColor.a);\n\t\t\tresultRGB = originalColor.rgb.add(shadowPremulRGB.mul(oneMinusOrigA));\n\t\t\tresultA = max(originalColor.a.add(shadowA.mul(oneMinusOrigA)), originalColor.a);\n\t\t}\n\t\treturn unpremultiplyAlpha(vec4(resultRGB, resultA));\n\t}\n};\nvar DropShadow_default = componentDefinition;\nexport { componentDefinition as n, DropShadow_default as t };\n","import { a as transformColor, o as transformColorSpace, t as colorSpaceOptions } from \"./transformations-CJcUeZIC.js\";\nimport { t as mixColors } from \"./colorMixing-BPpDnR5I.js\";\nimport { dot, smoothstep, vec3, vec4 } from \"three/tsl\";\nconst componentDefinition = {\n\tname: \"Duotone\",\n\tcategory: \"Adjustments\",\n\tdescription: \"Map colors to two tones based on luminance\",\n\trequiresChild: true,\n\tprops: {\n\t\tcolorA: {\n\t\t\tdefault: \"#ff0000\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"First color (used for darker areas)\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Color A\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tcolorB: {\n\t\t\tdefault: \"#023af4\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Second color (used for brighter areas)\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Color B\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tblend: {\n\t\t\tdefault: .5,\n\t\t\tdescription: \"Blend point between the two colors\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Blend\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tcolorSpace: {\n\t\t\tdefault: \"linear\",\n\t\t\ttransform: transformColorSpace,\n\t\t\tcompileTime: true,\n\t\t\tdescription: \"Color space for color interpolation\",\n\t\t\tui: {\n\t\t\t\ttype: \"select\",\n\t\t\t\toptions: colorSpaceOptions,\n\t\t\t\tlabel: \"Color Space\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t}\n\t},\n\tfragmentNode: ({ uniforms, childNode }) => {\n\t\tif (!childNode) return vec4(0, 0, 0, 0);\n\t\tconst luminance = dot(vec3(childNode.r, childNode.g, childNode.b), vec3(.299, .587, .114));\n\t\tconst adjustedLuminance = smoothstep(uniforms.blend.uniform.sub(.5), uniforms.blend.uniform.add(.5), luminance);\n\t\treturn vec4(mixColors(uniforms.colorA.uniform, uniforms.colorB.uniform, adjustedLuminance, uniforms.colorSpace.uniform.value).rgb, childNode.a);\n\t}\n};\nvar Duotone_default = componentDefinition;\nexport { componentDefinition as n, Duotone_default as t };\n","import { a as transformColor, l as transformPosition, o as transformColorSpace, t as colorSpaceOptions } from \"./transformations-CJcUeZIC.js\";\nimport { t as mixColors } from \"./colorMixing-BPpDnR5I.js\";\nimport { o as ellipseSdf } from \"./sdf-D_EAGXhN.js\";\nimport { cos, float, screenUV, sin, smoothstep, vec2, vec4, viewportSize } from \"three/tsl\";\nvar transformStrokePosition = (value) => {\n\treturn {\n\t\t\"outside\": 0,\n\t\t\"center\": 1,\n\t\t\"inside\": 2\n\t}[value?.toLowerCase()] ?? 1;\n};\nconst componentDefinition = {\n\tname: \"Ellipse\",\n\tcategory: \"Shapes\",\n\tdescription: \"Ellipse with independently adjustable horizontal and vertical radii\",\n\tprops: {\n\t\tcolor: {\n\t\t\tdefault: \"#ffffff\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Fill color of the ellipse\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Color\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tcenter: {\n\t\t\tdefault: {\n\t\t\t\tx: .5,\n\t\t\t\ty: .5\n\t\t\t},\n\t\t\ttransform: transformPosition,\n\t\t\tdescription: \"Center position of the ellipse\",\n\t\t\tui: {\n\t\t\t\ttype: \"position\",\n\t\t\t\tlabel: \"Center\",\n\t\t\t\tgroup: \"Position\"\n\t\t\t}\n\t\t},\n\t\tradiusX: {\n\t\t\tdefault: .35,\n\t\t\tdescription: \"Horizontal semi-axis radius\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: .01,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Width\",\n\t\t\t\tgroup: \"Shape\"\n\t\t\t}\n\t\t},\n\t\tradiusY: {\n\t\t\tdefault: .2,\n\t\t\tdescription: \"Vertical semi-axis radius\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: .01,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Height\",\n\t\t\t\tgroup: \"Shape\"\n\t\t\t}\n\t\t},\n\t\trotation: {\n\t\t\tdefault: 0,\n\t\t\tdescription: \"Rotation in degrees\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 360,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Rotation\",\n\t\t\t\tgroup: \"Shape\"\n\t\t\t}\n\t\t},\n\t\tsoftness: {\n\t\t\tdefault: 0,\n\t\t\tdescription: \"Edge softness for antialiasing\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: .1,\n\t\t\t\tstep: .001,\n\t\t\t\tlabel: \"Softness\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tstrokeThickness: {\n\t\t\tdefault: 0,\n\t\t\tdescription: \"Stroke thickness. Zero means no stroke.\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: .2,\n\t\t\t\tstep: .005,\n\t\t\t\tlabel: \"Stroke Thickness\",\n\t\t\t\tgroup: \"Stroke\"\n\t\t\t}\n\t\t},\n\t\tstrokeColor: {\n\t\t\tdefault: \"#000000\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Color of the stroke outline\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Stroke Color\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tstrokePosition: {\n\t\t\tdefault: \"center\",\n\t\t\ttransform: transformStrokePosition,\n\t\t\tdescription: \"Position of the stroke relative to the shape edge\",\n\t\t\tui: {\n\t\t\t\ttype: \"select\",\n\t\t\t\toptions: [\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Outside\",\n\t\t\t\t\t\tvalue: \"outside\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Center\",\n\t\t\t\t\t\tvalue: \"center\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Inside\",\n\t\t\t\t\t\tvalue: \"inside\"\n\t\t\t\t\t}\n\t\t\t\t],\n\t\t\t\tlabel: \"Stroke Position\",\n\t\t\t\tgroup: \"Stroke\"\n\t\t\t}\n\t\t},\n\t\tcolorSpace: {\n\t\t\tdefault: \"linear\",\n\t\t\ttransform: transformColorSpace,\n\t\t\tcompileTime: true,\n\t\t\tdescription: \"Color space for blending fill and stroke colors\",\n\t\t\tui: {\n\t\t\t\ttype: \"select\",\n\t\t\t\toptions: colorSpaceOptions,\n\t\t\t\tlabel: \"Color Blending\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t}\n\t},\n\tfragmentNode: ({ uniforms }) => {\n\t\tconst uv$1 = screenUV;\n\t\tconst aspect = viewportSize.x.div(viewportSize.y);\n\t\tconst aspectUV = vec2(uv$1.x.mul(aspect), uv$1.y);\n\t\tconst centerPos = vec2(uniforms.center.uniform.x.mul(aspect), uniforms.center.uniform.y.oneMinus());\n\t\tconst dx = aspectUV.x.sub(centerPos.x);\n\t\tconst dy = aspectUV.y.sub(centerPos.y);\n\t\tconst rotRad = uniforms.rotation.uniform.mul(float(Math.PI / 180));\n\t\tconst cosR = cos(rotRad);\n\t\tconst sinR = sin(rotRad);\n\t\tconst sdf = ellipseSdf(dx.mul(cosR).add(dy.mul(sinR)), dy.mul(cosR).sub(dx.mul(sinR)), uniforms.radiusX.uniform, uniforms.radiusY.uniform);\n\t\tconst edgeSoftness = uniforms.softness.uniform;\n\t\tconst strokeThickness = uniforms.strokeThickness.uniform;\n\t\tconst strokePositionMode = uniforms.strokePosition.uniform;\n\t\tconst hasStroke = strokeThickness.greaterThan(float(0));\n\t\tconst isCenter = strokePositionMode.greaterThanEqual(float(.5)).and(strokePositionMode.lessThan(float(1.5)));\n\t\tconst isInside = strokePositionMode.greaterThanEqual(float(1.5));\n\t\tconst halfThickness = strokeThickness.mul(.5);\n\t\tconst strokeInner = isInside.select(strokeThickness.negate(), isCenter.select(halfThickness.negate(), float(0)));\n\t\tconst strokeOuter = isInside.select(float(0), isCenter.select(halfThickness, strokeThickness));\n\t\tconst overallMask = smoothstep(strokeOuter.sub(edgeSoftness), strokeOuter, sdf).oneMinus();\n\t\tconst strokeBlend = hasStroke.select(smoothstep(strokeInner.sub(edgeSoftness), strokeInner, sdf), float(0));\n\t\tconst blendedColor = mixColors(vec4(uniforms.color.uniform.rgb, uniforms.color.uniform.a), vec4(uniforms.strokeColor.uniform.rgb, uniforms.strokeColor.uniform.a), strokeBlend, uniforms.colorSpace.uniform.value);\n\t\treturn vec4(blendedColor.xyz, blendedColor.w.mul(overallMask));\n\t}\n};\nvar Ellipse_default = componentDefinition;\nexport { componentDefinition as n, Ellipse_default as t };\n","import { l as transformPosition } from \"./transformations-CJcUeZIC.js\";\nimport { n as createAnalyticSdfSampler, r as createSvgSdfSampler } from \"./sdf-D_EAGXhN.js\";\nimport { Fn, If, abs, clamp, convertToTexture, cos, float, max, screenUV, sin, smoothstep, sqrt, vec2, vec3, vec4, viewportSize } from \"three/tsl\";\nvar _INV_LIGHT_LEN = 1 / Math.sqrt(1.49);\nvar _LZN = .7 * _INV_LIGHT_LEN;\nfunction applyEmbossEffect(childTexture, sdfSampler, uniforms) {\n\treturn Fn(() => {\n\t\tconst uv$1 = screenUV;\n\t\tconst aspect = viewportSize.x.div(viewportSize.y);\n\t\tconst centerPos = vec2(uniforms.center.uniform.x, uniforms.center.uniform.y.oneMinus());\n\t\tconst scale = uniforms.scale.uniform;\n\t\tconst sdfUV = vec2(uv$1.x.sub(centerPos.x).mul(aspect).div(scale).add(float(.5)), uv$1.y.sub(centerPos.y).div(scale).add(float(.5)));\n\t\tconst pxH = float(1).div(viewportSize.y);\n\t\tconst eps = float(.003);\n\t\tconst tw = float(.003);\n\t\tconst sdfC = sdfSampler(sdfUV).r;\n\t\tconst absDepth = abs(uniforms.depth.uniform).max(float(1e-4));\n\t\tconst spread = absDepth.mul(float(.06));\n\t\tconst pxH_sdf = pxH.div(scale);\n\t\tconst output = vec4(0).toVar();\n\t\tIf(sdfC.greaterThan(spread.mul(float(2)).add(max(pxH_sdf, tw))), () => {\n\t\t\toutput.assign(childTexture.sample(uv$1));\n\t\t}).Else(() => {\n\t\t\tconst sdfR = sdfSampler(sdfUV.add(vec2(eps, float(0)))).r;\n\t\t\tconst sdfL = sdfSampler(sdfUV.sub(vec2(eps, float(0)))).r;\n\t\t\tconst sdfU = sdfSampler(sdfUV.add(vec2(float(0), eps))).r;\n\t\t\tconst sdfD = sdfSampler(sdfUV.sub(vec2(float(0), eps))).r;\n\t\t\tconst depth = uniforms.depth.uniform;\n\t\t\tconst hC = depth.mul(smoothstep(tw, tw.negate(), sdfC));\n\t\t\tconst hR = depth.mul(smoothstep(tw, tw.negate(), sdfR));\n\t\t\tconst hL = depth.mul(smoothstep(tw, tw.negate(), sdfL));\n\t\t\tconst hU = depth.mul(smoothstep(tw, tw.negate(), sdfU));\n\t\t\tconst hD = depth.mul(smoothstep(tw, tw.negate(), sdfD));\n\t\t\tconst dhx = hR.sub(hL).div(eps.mul(float(2)));\n\t\t\tconst dhy = hU.sub(hD).div(eps.mul(float(2)));\n\t\t\tconst nLen = sqrt(dhx.mul(dhx).add(dhy.mul(dhy)).add(float(1)));\n\t\t\tconst nx = dhx.negate().div(nLen);\n\t\t\tconst ny = dhy.negate().div(nLen);\n\t\t\tconst nz = float(1).div(nLen);\n\t\t\tconst lightRad = uniforms.lightAngle.uniform.mul(float(Math.PI / 180));\n\t\t\tconst lx = cos(lightRad);\n\t\t\tconst ly = sin(lightRad);\n\t\t\tconst lxn = lx.mul(float(_INV_LIGHT_LEN));\n\t\t\tconst lyn = ly.mul(float(_INV_LIGHT_LEN));\n\t\t\tconst lzn = float(_LZN);\n\t\t\tconst edgeLighting = nx.mul(lxn).add(ny.mul(lyn)).add(nz.mul(lzn)).sub(lzn).mul(uniforms.lightIntensity.uniform);\n\t\t\tconst highlight = max(edgeLighting, float(0));\n\t\t\tconst edgeShadow = max(edgeLighting.negate(), float(0));\n\t\t\tconst shadowTw = spread;\n\t\t\tconst s1UV = sdfUV.add(vec2(lx.mul(spread.mul(float(.5))), ly.mul(spread.mul(float(.5)))));\n\t\t\tconst s2UV = sdfUV.add(vec2(lx.mul(spread), ly.mul(spread)));\n\t\t\tconst h1 = depth.mul(smoothstep(shadowTw, shadowTw.negate(), sdfSampler(s1UV).r));\n\t\t\tconst h2 = depth.mul(smoothstep(shadowTw, shadowTw.negate(), sdfSampler(s2UV).r));\n\t\t\tconst diff1 = h1.sub(hC).div(absDepth);\n\t\t\tconst diff2 = h2.sub(hC).div(absDepth);\n\t\t\tconst castShadow = smoothstep(float(0), float(.5), diff1).mul(float(.55)).add(smoothstep(float(0), float(.5), diff2).mul(float(.45)));\n\t\t\tconst inside = smoothstep(tw, tw.negate(), sdfC);\n\t\t\tconst dispScale = float(1).sub(depth.mul(float(.05)).mul(inside));\n\t\t\tconst warpedUV = vec2(centerPos.x.add(uv$1.x.sub(centerPos.x).mul(dispScale)), centerPos.y.add(uv$1.y.sub(centerPos.y).mul(dispScale)));\n\t\t\tconst totalShadow = clamp(edgeShadow.add(castShadow), float(0), float(1)).mul(uniforms.shadowIntensity.uniform);\n\t\t\tconst childColor = childTexture.sample(warpedUV);\n\t\t\tconst finalRgb = clamp(vec3(childColor.r, childColor.g, childColor.b).mul(float(1).sub(totalShadow)).add(vec3(highlight, highlight, highlight)), float(0), float(1));\n\t\t\toutput.assign(vec4(finalRgb.x, finalRgb.y, finalRgb.z, childColor.a));\n\t\t});\n\t\treturn output;\n\t})();\n}\nvar DEFAULT_SHAPE_CONFIG = JSON.stringify({\n\ttype: \"circleSDF\",\n\tradius: .35\n});\nconst componentDefinition = {\n\tname: \"Emboss\",\n\tcategory: \"Shape Effects\",\n\tdescription: \"Embossed / debossed relief shading on top of child content, driven by a custom shape\",\n\trequiresRTT: true,\n\trequiresChild: true,\n\tprops: {\n\t\tcenter: {\n\t\t\tdefault: {\n\t\t\t\tx: .5,\n\t\t\t\ty: .5\n\t\t\t},\n\t\t\ttransform: transformPosition,\n\t\t\tdescription: \"Center position of the embossed shape\",\n\t\t\tui: {\n\t\t\t\ttype: \"position\",\n\t\t\t\tlabel: \"Center\",\n\t\t\t\tgroup: \"Position\"\n\t\t\t}\n\t\t},\n\t\tscale: {\n\t\t\tdefault: 1,\n\t\t\tdescription: \"Scale of the embossed shape (1 = default size)\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: .1,\n\t\t\t\tmax: 3,\n\t\t\t\tstep: .05,\n\t\t\t\tlabel: \"Scale\",\n\t\t\t\tgroup: \"Position\"\n\t\t\t}\n\t\t},\n\t\tdepth: {\n\t\t\tdefault: -.5,\n\t\t\tdescription: \"Relief depth — negative = inset (debossed), positive = raised (embossed)\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: -1,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Depth\",\n\t\t\t\tgroup: \"Relief\"\n\t\t\t}\n\t\t},\n\t\tlightAngle: {\n\t\t\tdefault: 260,\n\t\t\tdescription: \"Directional light angle in degrees — controls highlight and shadow direction\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 360,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Light Angle\",\n\t\t\t\tgroup: \"Lighting\"\n\t\t\t}\n\t\t},\n\t\tlightIntensity: {\n\t\t\tdefault: .6,\n\t\t\tdescription: \"Strength of the directional edge highlights and shadows\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 2,\n\t\t\t\tstep: .05,\n\t\t\t\tlabel: \"Light Intensity\",\n\t\t\t\tgroup: \"Lighting\"\n\t\t\t}\n\t\t},\n\t\tshadowIntensity: {\n\t\t\tdefault: .3,\n\t\t\tdescription: \"Darkness of the relief shadow\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Shadow Intensity\",\n\t\t\t\tgroup: \"Relief\"\n\t\t\t}\n\t\t},\n\t\tshape: {\n\t\t\tdefault: DEFAULT_SHAPE_CONFIG,\n\t\t\tdescription: \"Serialized shape configuration (JSON)\",\n\t\t\tui: {\n\t\t\t\ttype: \"shape\",\n\t\t\t\tlabel: \"Shape\",\n\t\t\t\tgroup: \"Shape\"\n\t\t\t}\n\t\t},\n\t\tshapeSdfUrl: {\n\t\t\tdefault: \"\",\n\t\t\tcompileTime: true,\n\t\t\tdescription: \"URL to a pre-generated SDF .bin file — when non-empty, activates SVG mode and triggers a shader recompile\"\n\t\t},\n\t\tshapeType: {\n\t\t\tdefault: \"\",\n\t\t\tcompileTime: true,\n\t\t\tdescription: \"Active SDF shape type — triggers recompile when shape is switched. When empty, derived from shape JSON at mount time.\"\n\t\t}\n\t},\n\tfragmentNode: ({ uniforms, childNode, onCleanup, onBeforeRender }) => {\n\t\tif (!childNode) return vec4(0);\n\t\tconst childTexture = convertToTexture(childNode);\n\t\tonCleanup(() => {\n\t\t\tif (childTexture?.renderTarget?.dispose) childTexture.renderTarget.dispose();\n\t\t});\n\t\tconst shapeSdfUrl = uniforms.shapeSdfUrl.uniform.value;\n\t\tconst initialConfig = (() => {\n\t\t\tconst val = uniforms.shape.uniform.value;\n\t\t\tif (typeof val === \"object\" && val !== null) return val;\n\t\t\ttry {\n\t\t\t\treturn JSON.parse(val);\n\t\t\t} catch {\n\t\t\t\treturn {\n\t\t\t\t\ttype: \"circleSDF\",\n\t\t\t\t\tradius: .35,\n\t\t\t\t\tcenterX: .5,\n\t\t\t\t\tcenterY: .5\n\t\t\t\t};\n\t\t\t}\n\t\t})();\n\t\tif (shapeSdfUrl) return applyEmbossEffect(childTexture, createSvgSdfSampler(shapeSdfUrl, onBeforeRender, onCleanup), uniforms);\n\t\telse return applyEmbossEffect(childTexture, createAnalyticSdfSampler(uniforms.shapeType.uniform.value || initialConfig.type || \"circleSDF\", initialConfig, uniforms.shape, onBeforeRender), uniforms);\n\t}\n};\nvar Emboss_default = componentDefinition;\nexport { componentDefinition as n, Emboss_default as t };\n","import { vec3, vec4 } from \"three/tsl\";\nconst componentDefinition = {\n\tname: \"Exposure\",\n\tcategory: \"Adjustments\",\n\tdescription: \"Multiplicative exposure (gain) on the child. Unlike additive brightness, it scales values around black — blacks stay black while highlights can be pushed past 1.0 to feed HDR bloom and tone-mapping roll-off. Pointwise, so no extra render pass is needed.\",\n\trequiresChild: true,\n\tprops: { exposure: {\n\t\tdefault: 1,\n\t\tdescription: \"Brightness multiplier (gain). 1 = unchanged, >1 pushes highlights past white for HDR bloom, <1 darkens.\",\n\t\tui: {\n\t\t\ttype: [\"range\", \"map\"],\n\t\t\tmin: 0,\n\t\t\tmax: 8,\n\t\t\tstep: .1,\n\t\t\tlabel: \"Exposure\",\n\t\t\tgroup: \"Appearance\"\n\t\t}\n\t} },\n\tfragmentNode: ({ uniforms, childNode }) => {\n\t\tif (!childNode) {\n\t\t\tconsole.error(\"You must pass a child component into the Exposure shader.\");\n\t\t\treturn vec4(0);\n\t\t}\n\t\tconst gain = uniforms.exposure.uniform;\n\t\treturn vec4(vec3(childNode.r, childNode.g, childNode.b).mul(gain), childNode.a);\n\t}\n};\nvar Exposure_default = componentDefinition;\nexport { componentDefinition as n, Exposure_default as t };\n","import { a as transformColor, o as transformColorSpace, t as colorSpaceOptions } from \"./transformations-CJcUeZIC.js\";\nimport { t as mixColors } from \"./colorMixing-BPpDnR5I.js\";\nimport { t as createAnimatedTime } from \"./time-DUqSFWvT.js\";\nimport { Fn, abs, cos, float, floor, fract, fwidth, screenUV, sin, smoothstep, vec2, vec4, viewportSize } from \"three/tsl\";\nvar colHash = Fn(([idx]) => {\n\treturn vec2(fract(sin(idx.mul(127.1)).mul(43758.5453123)), fract(sin(idx.mul(311.7)).mul(38291.3421)));\n});\nconst componentDefinition = {\n\tname: \"FallingLines\",\n\tcategory: \"Textures\",\n\tdescription: \"Directional falling lines with a leading-to-trailing color fade\",\n\trequiresRTT: false,\n\tprops: {\n\t\tcolorA: {\n\t\t\tdefault: \"#ffffff\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Color at the leading edge of each line\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Lead Color\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tcolorB: {\n\t\t\tdefault: \"#ffffff00\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Color at the trailing edge (transparent by default)\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Trail Color\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tcolorSpace: {\n\t\t\tdefault: \"linear\",\n\t\t\ttransform: transformColorSpace,\n\t\t\tcompileTime: true,\n\t\t\tdescription: \"Color space for interpolation between lead and trail colors\",\n\t\t\tui: {\n\t\t\t\ttype: \"select\",\n\t\t\t\toptions: colorSpaceOptions,\n\t\t\t\tlabel: \"Color Space\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tangle: {\n\t\t\tdefault: 90,\n\t\t\tdescription: \"Direction of movement in degrees (90=down, 270=up, 0=right, 180=left)\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 360,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Angle\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tspeed: {\n\t\t\tdefault: .5,\n\t\t\tdescription: \"Movement speed\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 3,\n\t\t\t\tstep: .05,\n\t\t\t\tlabel: \"Speed\",\n\t\t\t\tgroup: \"Animation\"\n\t\t\t}\n\t\t},\n\t\tspeedVariance: {\n\t\t\tdefault: .3,\n\t\t\tdescription: \"Per-line speed variance (0=uniform, 1=high variance)\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .05,\n\t\t\t\tlabel: \"Speed Variance\",\n\t\t\t\tgroup: \"Animation\"\n\t\t\t}\n\t\t},\n\t\tdensity: {\n\t\t\tdefault: 15,\n\t\t\tdescription: \"Number of line columns across the canvas\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 1,\n\t\t\t\tmax: 60,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Density\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\ttrailLength: {\n\t\t\tdefault: .35,\n\t\t\tdescription: \"Streak length relative to spacing (0=point, 1=continuous)\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: .01,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Trail Length\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tbalance: {\n\t\t\tdefault: .5,\n\t\t\tdescription: \"Color mix midpoint (0.5=linear, 0=all trailing/colorB, 1=all leading/colorA)\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .05,\n\t\t\t\tlabel: \"Balance\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tstrokeWidth: {\n\t\t\tdefault: .15,\n\t\t\tdescription: \"Line thickness as fraction of column width (0=hairline, 1=full width)\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: .02,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .02,\n\t\t\t\tlabel: \"Stroke Width\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\trounding: {\n\t\t\tdefault: 1,\n\t\t\tdescription: \"Rounds the leading edge (0=flat/square, 1=fully rounded cap)\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .05,\n\t\t\t\tlabel: \"Rounding\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t}\n\t},\n\tfragmentNode: (params) => {\n\t\tconst { uniforms } = params;\n\t\tconst aspect = viewportSize.x.div(viewportSize.y);\n\t\tconst corrUV = vec2(screenUV.x.mul(aspect), screenUV.y);\n\t\tconst canvasCenter = vec2(aspect.mul(.5), float(.5));\n\t\tconst centeredUV = corrUV.sub(canvasCenter);\n\t\tconst angleRad = uniforms.angle.uniform.mul(Math.PI / 180);\n\t\tconst cosA = cos(angleRad);\n\t\tconst sinA = sin(angleRad);\n\t\tconst u = centeredUV.x.mul(sinA).negate().add(centeredUV.y.mul(cosA));\n\t\tconst v = centeredUV.x.mul(cosA).add(centeredUV.y.mul(sinA));\n\t\tconst density = uniforms.density.uniform;\n\t\tconst colF = u.mul(density);\n\t\tconst colIdx = floor(colF);\n\t\tconst colLocalU = fract(colF);\n\t\tconst h = colHash(colIdx);\n\t\tconst speedMod = float(1).add(h.x.sub(.5).mul(uniforms.speedVariance.uniform).mul(2));\n\t\tconst phase = h.y;\n\t\tconst animOffset = fract(createAnimatedTime(params, uniforms.speed).mul(speedMod));\n\t\tconst vPeriodic = fract(v.sub(animOffset).sub(phase));\n\t\tconst trailLen = uniforms.trailLength.uniform;\n\t\tconst withinStreak = vPeriodic.div(trailLen).clamp(0, 1);\n\t\tconst fwV = fwidth(v).clamp(.001, .1);\n\t\tconst fwU = fwidth(u).mul(density).clamp(.001, .1);\n\t\tconst streakMask = smoothstep(trailLen.sub(fwV), trailLen.add(fwV), vPeriodic).oneMinus();\n\t\tconst hw = uniforms.strokeWidth.uniform.mul(.5);\n\t\tconst distFromCenter = abs(colLocalU.sub(.5));\n\t\tconst widthMask = smoothstep(hw.sub(fwU), hw.add(fwU), distFromCenter).oneMinus();\n\t\tconst rectMask = streakMask.mul(widthMask);\n\t\tconst maxDepth = hw.mul(uniforms.rounding.uniform);\n\t\tconst t = vPeriodic.sub(trailLen).max(float(0)).mul(density).div(maxDepth.max(float(1e-4))).clamp(float(0), float(1));\n\t\tconst capHW = hw.mul(float(1).sub(t.mul(t)).max(float(0)).sqrt());\n\t\tconst capAlpha = smoothstep(capHW.sub(fwU).max(float(0)), capHW.add(fwU).max(float(.001)), distFromCenter).oneMinus().mul(smoothstep(float(0), fwU, capHW));\n\t\tconst finalMask = rectMask.max(capAlpha);\n\t\tconst balanceNum = float(2).mul(uniforms.balance.uniform).sub(float(1));\n\t\tconst balanceDen = float(2).mul(float(1).sub(uniforms.balance.uniform)).max(.001);\n\t\tconst balancedT = withinStreak.add(balanceNum).div(balanceDen).clamp(0, 1);\n\t\tconst mixedColor = mixColors(uniforms.colorB.uniform, uniforms.colorA.uniform, balancedT, uniforms.colorSpace.uniform.value);\n\t\tconst finalAlpha = finalMask.mul(mixedColor.a);\n\t\treturn vec4(mixedColor.rgb, finalAlpha);\n\t}\n};\nvar FallingLines_default = componentDefinition;\nexport { componentDefinition as n, FallingLines_default as t };\n","import { clamp, dot, float, fract, pow, sin, uniform, vec2, vec3, vec4, viewportCoordinate } from \"three/tsl\";\nconst componentDefinition = {\n\tname: \"FilmGrain\",\n\tcategory: \"Stylize\",\n\tdescription: \"Analog film grain texture overlay, weighted toward darker areas\",\n\trequiresChild: true,\n\tprops: {\n\t\tstrength: {\n\t\t\tdefault: .5,\n\t\t\tdescription: \"Intensity of the film grain noise\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .025,\n\t\t\t\tlabel: \"Strength\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tbias: {\n\t\t\tdefault: 2,\n\t\t\tdescription: \"Concentrates grain in darker areas. Higher values focus grain more heavily on shadows; 0 applies grain uniformly.\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 10,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Bias\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tanimated: {\n\t\t\tdefault: false,\n\t\t\tdescription: \"When enabled, the grain pattern changes each frame for a dynamic film effect\",\n\t\t\tui: {\n\t\t\t\ttype: \"checkbox\",\n\t\t\t\tlabel: \"Animated\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t},\n\t\t\ttransform: (value) => value ? 1 : 0\n\t\t}\n\t},\n\tfragmentNode: ({ uniforms, childNode, onBeforeRender }) => {\n\t\tconst strength = uniforms.strength.uniform;\n\t\tconst bias = uniforms.bias.uniform;\n\t\tconst animated = uniforms.animated.uniform;\n\t\tconst sourceColor = (childNode || vec4(0, 0, 0, 0)).toVar();\n\t\tconst animTime = uniform(0);\n\t\tonBeforeRender(({ deltaTime }) => {\n\t\t\tanimTime.value += deltaTime * animated.value * 10;\n\t\t});\n\t\tconst grain = fract(sin(dot(viewportCoordinate, vec2(12.9898, 78.233)).add(animTime)).mul(float(43758.5453))).mul(float(2)).sub(float(1));\n\t\tconst brightness = clamp(dot(sourceColor.rgb, vec3(.2126, .7152, .0722)), 0, 1);\n\t\tconst darkFactor = pow(float(1).sub(brightness).add(float(1e-6)), bias);\n\t\tconst grainIntensity = grain.mul(darkFactor).mul(strength.mul(float(.1)));\n\t\treturn vec4(sourceColor.rgb.add(grainIntensity), sourceColor.a);\n\t}\n};\nvar FilmGrain_default = componentDefinition;\nexport { componentDefinition as n, FilmGrain_default as t };\n","import { a as transformColor } from \"./transformations-CJcUeZIC.js\";\nimport { t as createAnimatedTime } from \"./time-DUqSFWvT.js\";\nimport { StorageTexture } from \"three/webgpu\";\nimport { FloatType } from \"three\";\nimport { Fn, cos, dot, float, floor, fract, instanceIndex, length, min, mix, screenUV, sin, smoothstep, storageTexture, texture, textureStore, time, uint, uniform, uvec2, vec2, vec3, vec4, viewportSize } from \"three/tsl\";\nvar PARTICLE_TEX = 1024;\nvar hash1_2 = Fn(([p]) => {\n\tconst p3 = fract(vec3(p.x, p.y, p.x).mul(.1031));\n\tconst d = dot(p3, vec3(p3.y, p3.z, p3.x).add(33.33));\n\tconst p3b = p3.add(d);\n\treturn fract(p3b.x.add(p3b.y).mul(p3b.z));\n});\nvar hash2_2 = Fn(([p]) => {\n\tconst p3 = fract(vec3(p.x, p.y, p.x).mul(vec3(.1031, .103, .0973)));\n\tconst d = dot(p3, vec3(p3.y, p3.z, p3.x).add(33.33));\n\tconst p3b = p3.add(d);\n\tconst s = p3b.x.add(p3b.y);\n\treturn fract(vec2(s.mul(p3b.z), s.mul(p3b.y)));\n});\nvar voronoiPointFromRoot = Fn(([root, deg]) => {\n\tconst point = hash2_2(root).sub(.5);\n\tconst s = sin(deg);\n\tconst c = cos(deg);\n\treturn vec2(c.mul(point.x).sub(s.mul(point.y)).mul(.66), s.mul(point.x).add(c.mul(point.y)).mul(.66)).add(root).add(.5);\n});\nvar degFromRootUV = Fn(([uv$1, randomness]) => {\n\treturn time.mul(randomness).mul(hash1_2(uv$1).sub(.5)).mul(2);\n});\nvar getParticleDistance = Fn(([uv$1, cellUV, randomness]) => {\n\tconst pointUV = voronoiPointFromRoot(cellUV, degFromRootUV(cellUV, randomness));\n\treturn length(uv$1.sub(pointUV));\n});\nvar degFromRootUV_compute = Fn(([uv$1, randomness, frameTimeU]) => {\n\treturn frameTimeU.mul(randomness).mul(hash1_2(uv$1).sub(.5)).mul(2);\n});\nvar getParticleDistance_compute = Fn(([uv$1, cellUV, randomness, frameTimeU]) => {\n\tconst pointUV = voronoiPointFromRoot(cellUV, degFromRootUV_compute(cellUV, randomness, frameTimeU));\n\treturn length(uv$1.sub(pointUV));\n});\nconst componentDefinition = {\n\tname: \"FloatingParticles\",\n\tcategory: \"Textures\",\n\tdescription: \"Animated floating particles with twinkle effects\",\n\trequiresRTT: false,\n\tprops: {\n\t\trandomness: {\n\t\t\tdefault: .25,\n\t\t\tdescription: \"Randomness of particle animation\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Randomness\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tspeed: {\n\t\t\tdefault: .25,\n\t\t\tdescription: \"Speed of particle movement\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Speed\",\n\t\t\t\tgroup: \"Animation\"\n\t\t\t}\n\t\t},\n\t\tangle: {\n\t\t\tdefault: 90,\n\t\t\tdescription: \"Movement angle in degrees (0=right, 90=down, 180=left, 270=up)\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 360,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Angle\",\n\t\t\t\tgroup: \"Animation\"\n\t\t\t}\n\t\t},\n\t\tparticleSize: {\n\t\t\tdefault: 2,\n\t\t\tdescription: \"Size of particles\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: .1,\n\t\t\t\tmax: 20,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Particle Size\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tparticleSoftness: {\n\t\t\tdefault: 0,\n\t\t\tdescription: \"Edge softness of particles (0 = sharp, 1 = very soft)\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 5,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Particle Softness\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\ttwinkle: {\n\t\t\tdefault: .5,\n\t\t\tdescription: \"Intensity of the twinkle effect (0 = off, 1 = full twinkle)\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Twinkle\",\n\t\t\t\tgroup: \"Animation\"\n\t\t\t}\n\t\t},\n\t\tcount: {\n\t\t\tdefault: 5,\n\t\t\tdescription: \"Number of particle layers\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 1,\n\t\t\t\tmax: 5,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Count\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tparticleColor: {\n\t\t\tdefault: \"#ffffff\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Color of the particles\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Particle Color\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tspeedVariance: {\n\t\t\tdefault: .3,\n\t\t\tdescription: \"Per-layer speed variance (0 = all layers same speed, 1 = high variance)\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Speed Variance\",\n\t\t\t\tgroup: \"Animation\"\n\t\t\t}\n\t\t},\n\t\tangleVariance: {\n\t\t\tdefault: 30,\n\t\t\tdescription: \"Per-layer angle variance in degrees (0 = all layers same angle, 180 = full variance)\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 180,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Angle Variance\",\n\t\t\t\tgroup: \"Animation\"\n\t\t\t}\n\t\t},\n\t\tparticleDensity: {\n\t\t\tdefault: 3,\n\t\t\tdescription: \"Particle density (lower = more spread out, higher = more dense)\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: .5,\n\t\t\t\tmax: 3,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Particle Density\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t}\n\t},\n\tcomputeNode: (params) => {\n\t\tconst { uniforms, onCleanup } = params;\n\t\tconst texSize = PARTICLE_TEX;\n\t\tconst count = texSize * texSize;\n\t\tconst gs = uint(texSize);\n\t\tconst outTex = new StorageTexture(texSize, texSize);\n\t\toutTex.type = FloatType;\n\t\tconst outTexNode = storageTexture(outTex);\n\t\tonCleanup(() => outTex.dispose());\n\t\tconst animTimeU = uniform(0);\n\t\tconst frameTimeU = uniform(0);\n\t\tconst aspectU = uniform(16 / 9);\n\t\tconst computeRenderParticle = Fn(([uv$1]) => {\n\t\t\tconst rootUV = floor(uv$1);\n\t\t\tconst randomness = uniforms.randomness.uniform;\n\t\t\tconst dCenter = getParticleDistance_compute(uv$1, rootUV, randomness, frameTimeU);\n\t\t\tconst dLeft = getParticleDistance_compute(uv$1, rootUV.add(vec2(-1, 0)), randomness, frameTimeU);\n\t\t\tconst dRight = getParticleDistance_compute(uv$1, rootUV.add(vec2(1, 0)), randomness, frameTimeU);\n\t\t\tconst dTop = getParticleDistance_compute(uv$1, rootUV.add(vec2(0, -1)), randomness, frameTimeU);\n\t\t\tconst dBottom = getParticleDistance_compute(uv$1, rootUV.add(vec2(0, 1)), randomness, frameTimeU);\n\t\t\tconst minDist = min(min(min(min(dCenter, dLeft), dRight), dTop), dBottom);\n\t\t\tconst softness = uniforms.particleSoftness.uniform;\n\t\t\tconst scaledSize = uniforms.particleSize.uniform.mul(.01);\n\t\t\tconst innerRadius = scaledSize.mul(.6);\n\t\t\tconst baseIntensity = smoothstep(innerRadius, innerRadius.add(softness.mul(scaledSize.mul(2.4))), minDist).oneMinus();\n\t\t\tconst twinkleIntensity = uniforms.twinkle.uniform;\n\t\t\tconst particlePhase = hash1_2(rootUV);\n\t\t\tconst twinkleValue = sin(frameTimeU.mul(2).add(particlePhase.mul(6.28318))).mul(.5).add(.5);\n\t\t\tconst twinkleModifier = mix(float(1), twinkleValue, twinkleIntensity);\n\t\t\treturn baseIntensity.mul(twinkleModifier).mul(uniforms.particleColor.uniform.rgb);\n\t\t});\n\t\tconst computeLayeredParticles = Fn(([uv$1]) => {\n\t\t\tconst sizeMod = float(1.05);\n\t\t\tconst alphaMod = float(.9);\n\t\t\tconst layers = uniforms.count.uniform;\n\t\t\tconst particles = vec3(0).toVar();\n\t\t\tconst layerScale = float(1).toVar();\n\t\t\tconst alpha = float(1).toVar();\n\t\t\tconst offset = vec2(0).toVar();\n\t\t\tconst angleRad = uniforms.angle.uniform.mul(3.14159).div(180);\n\t\t\tconst baseMovementDir = vec2(cos(angleRad), sin(angleRad));\n\t\t\tconst baseMovement = animTimeU.mul(baseMovementDir);\n\t\t\tconst speedVar = uniforms.speedVariance.uniform;\n\t\t\tconst angleVar = uniforms.angleVariance.uniform.mul(3.14159).div(180);\n\t\t\tfor (let i = 0; i < 5; i++) {\n\t\t\t\tconst layerActive = float(i).lessThan(layers).and(alpha.greaterThan(.02));\n\t\t\t\tconst layerHash = hash2_2(vec2(alpha, float(i).mul(7.919)));\n\t\t\t\tconst speedMod = float(1).add(layerHash.x.sub(.5).mul(speedVar));\n\t\t\t\tconst angleDelta = layerHash.y.sub(.5).mul(angleVar).mul(2);\n\t\t\t\tconst variedAngle = angleRad.add(angleDelta).toVar();\n\t\t\t\tconst variedDir = vec2(cos(variedAngle), sin(variedAngle));\n\t\t\t\tconst movement = baseMovement.mul(speedMod).add(variedDir.sub(baseMovementDir).mul(animTimeU));\n\t\t\t\tconst layerParticles = computeRenderParticle(uv$1.mul(layerScale).add(movement).add(offset)).mul(alpha);\n\t\t\t\tparticles.assign(particles.add(layerActive.select(layerParticles, vec3(0))));\n\t\t\t\toffset.assign(offset.add(layerHash.mul(10)));\n\t\t\t\talpha.assign(alpha.mul(alphaMod));\n\t\t\t\tlayerScale.assign(layerScale.mul(sizeMod));\n\t\t\t}\n\t\t\treturn particles;\n\t\t});\n\t\tconst particlePass = Fn(() => {\n\t\t\tconst idx = instanceIndex;\n\t\t\tconst j = idx.mod(gs);\n\t\t\tconst i = idx.div(gs);\n\t\t\tconst u = j.toFloat().add(.5).div(float(texSize));\n\t\t\tconst v = i.toFloat().add(.5).div(float(texSize));\n\t\t\tconst particles = computeLayeredParticles(vec2(u.mul(2).sub(1).mul(aspectU), v.mul(2).sub(1)).mul(uniforms.particleDensity.uniform));\n\t\t\tconst pa = length(particles).clamp(0, 1);\n\t\t\ttextureStore(outTexNode, uvec2(j, i), vec4(particles, pa)).toWriteOnly();\n\t\t})().compute(count, [256]);\n\t\treturn {\n\t\t\toutputs: { particleTexture: outTex },\n\t\t\tgetComputeNodes: (frameParams) => {\n\t\t\t\tanimTimeU.value += frameParams.deltaTime * uniforms.speed.uniform.value;\n\t\t\t\tframeTimeU.value += frameParams.deltaTime;\n\t\t\t\tif (frameParams.dimensions.height > 0) aspectU.value = frameParams.dimensions.width / frameParams.dimensions.height;\n\t\t\t\treturn [particlePass];\n\t\t\t}\n\t\t};\n\t},\n\tfragmentNode: (params) => {\n\t\tconst { uniforms, childNode, computeOutputs } = params;\n\t\tif (computeOutputs?.particleTexture) {\n\t\t\tconst particleField = texture(computeOutputs.particleTexture);\n\t\t\tconst px = float(1 / PARTICLE_TEX);\n\t\t\tconst s0 = particleField.sample(screenUV);\n\t\t\tconst s1 = particleField.sample(screenUV.add(vec2(px, float(0))));\n\t\t\tconst s2 = particleField.sample(screenUV.add(vec2(float(0), px)));\n\t\t\tconst s3 = particleField.sample(screenUV.add(vec2(px.negate(), float(0))));\n\t\t\tconst s4 = particleField.sample(screenUV.add(vec2(float(0), px.negate())));\n\t\t\tconst w0 = float(.5), w1 = float(.125);\n\t\t\tconst particles$1 = s0.xyz.mul(w0).add(s1.xyz.mul(w1)).add(s2.xyz.mul(w1)).add(s3.xyz.mul(w1)).add(s4.xyz.mul(w1));\n\t\t\tconst particleAlpha$1 = s0.w.mul(w0).add(s1.w.mul(w1)).add(s2.w.mul(w1)).add(s3.w.mul(w1)).add(s4.w.mul(w1));\n\t\t\tif (childNode) {\n\t\t\t\tconst mixedColor = mix(childNode.xyz, particles$1, particleAlpha$1.greaterThan(.01).select(particleAlpha$1, 0));\n\t\t\t\tconst pa = particleAlpha$1.clamp(0, 1);\n\t\t\t\treturn vec4(mixedColor, pa.add(childNode.w.mul(float(1).sub(pa))));\n\t\t\t}\n\t\t\treturn vec4(particles$1, particleAlpha$1);\n\t\t}\n\t\tconst baseUV = screenUV;\n\t\tconst animTime = createAnimatedTime(params, uniforms.speed);\n\t\tconst renderParticle = Fn(([uv$2]) => {\n\t\t\tconst rootUV = floor(uv$2);\n\t\t\tconst randomness = uniforms.randomness.uniform;\n\t\t\tconst dCenter = getParticleDistance(uv$2, rootUV, randomness);\n\t\t\tconst dLeft = getParticleDistance(uv$2, rootUV.add(vec2(-1, 0)), randomness);\n\t\t\tconst dRight = getParticleDistance(uv$2, rootUV.add(vec2(1, 0)), randomness);\n\t\t\tconst dTop = getParticleDistance(uv$2, rootUV.add(vec2(0, -1)), randomness);\n\t\t\tconst dBottom = getParticleDistance(uv$2, rootUV.add(vec2(0, 1)), randomness);\n\t\t\tconst minDist = min(min(min(min(dCenter, dLeft), dRight), dTop), dBottom);\n\t\t\tconst softness = uniforms.particleSoftness.uniform;\n\t\t\tconst scaledSize = uniforms.particleSize.uniform.mul(.01);\n\t\t\tconst innerRadius = scaledSize.mul(.6);\n\t\t\tconst baseIntensity = smoothstep(innerRadius, innerRadius.add(softness.mul(scaledSize.mul(2.4))), minDist).oneMinus();\n\t\t\tconst twinkleIntensity = uniforms.twinkle.uniform;\n\t\t\tconst particlePhase = hash1_2(rootUV);\n\t\t\tconst twinkleValue = sin(time.mul(2).add(particlePhase.mul(6.28318))).mul(.5).add(.5);\n\t\t\tconst twinkleModifier = mix(float(1), twinkleValue, twinkleIntensity);\n\t\t\treturn baseIntensity.mul(twinkleModifier).mul(uniforms.particleColor.uniform.rgb);\n\t\t});\n\t\tconst layeredParticles = Fn(([uv$2]) => {\n\t\t\tconst sizeMod = float(1.05);\n\t\t\tconst alphaMod = float(.9);\n\t\t\tconst layers = uniforms.count.uniform;\n\t\t\tconst particles$1 = vec3(0).toVar();\n\t\t\tconst size = float(1).toVar();\n\t\t\tconst alpha = float(1).toVar();\n\t\t\tconst offset = vec2(0).toVar();\n\t\t\tconst angleRad = uniforms.angle.uniform.mul(3.14159).div(180);\n\t\t\tconst baseMovementDir = vec2(cos(angleRad), sin(angleRad));\n\t\t\tconst baseMovement = animTime.mul(baseMovementDir);\n\t\t\tconst speedVar = uniforms.speedVariance.uniform;\n\t\t\tconst angleVar = uniforms.angleVariance.uniform.mul(3.14159).div(180);\n\t\t\tfor (let i = 0; i < 5; i++) {\n\t\t\t\tconst layerActive = float(i).lessThan(layers).and(alpha.greaterThan(.02));\n\t\t\t\tconst layerHash = hash2_2(vec2(alpha, float(i).mul(7.919)));\n\t\t\t\tconst speedMod = float(1).add(layerHash.x.sub(.5).mul(speedVar));\n\t\t\t\tconst angleDelta = layerHash.y.sub(.5).mul(angleVar).mul(2);\n\t\t\t\tconst variedAngle = angleRad.add(angleDelta).toVar();\n\t\t\t\tconst variedDir = vec2(cos(variedAngle), sin(variedAngle));\n\t\t\t\tconst movement = baseMovement.mul(speedMod).add(variedDir.sub(baseMovementDir).mul(animTime));\n\t\t\t\tconst layerParticles = renderParticle(uv$2.mul(size).add(movement).add(offset)).mul(alpha);\n\t\t\t\tparticles$1.assign(particles$1.add(layerActive.select(layerParticles, vec3(0))));\n\t\t\t\toffset.assign(offset.add(layerHash.mul(10)));\n\t\t\t\talpha.assign(alpha.mul(alphaMod));\n\t\t\t\tsize.assign(size.mul(sizeMod));\n\t\t\t}\n\t\t\treturn particles$1;\n\t\t});\n\t\tconst uv$1 = baseUV.mul(2).sub(1);\n\t\tconst aspectRatio = viewportSize.x.div(viewportSize.y);\n\t\tconst particles = layeredParticles(vec2(uv$1.x.mul(aspectRatio), uv$1.y).mul(uniforms.particleDensity.uniform));\n\t\tconst particleAlpha = length(particles);\n\t\tif (childNode) {\n\t\t\tconst mixedColor = mix(childNode.xyz, particles, particleAlpha.greaterThan(.01).select(particleAlpha, 0));\n\t\t\tconst pa = particleAlpha.clamp(0, 1);\n\t\t\treturn vec4(mixedColor, pa.add(childNode.w.mul(float(1).sub(pa))));\n\t\t}\n\t\treturn vec4(particles, particleAlpha);\n\t}\n};\nvar FloatingParticles_default = componentDefinition;\nexport { componentDefinition as n, FloatingParticles_default as t };\n","import { a as transformColor, l as transformPosition, o as transformColorSpace, t as colorSpaceOptions } from \"./transformations-CJcUeZIC.js\";\nimport { t as mixColors } from \"./colorMixing-BPpDnR5I.js\";\nimport { s as flowerSdf } from \"./sdf-D_EAGXhN.js\";\nimport { cos, float, screenUV, sin, smoothstep, vec2, vec4, viewportSize } from \"three/tsl\";\nvar transformStrokePosition = (value) => {\n\treturn {\n\t\t\"outside\": 0,\n\t\t\"center\": 1,\n\t\t\"inside\": 2\n\t}[value?.toLowerCase()] ?? 1;\n};\nconst componentDefinition = {\n\tname: \"Flower\",\n\tcategory: \"Shapes\",\n\tdescription: \"Petal shape with N lobes and adjustable inner-to-outer radius ratio\",\n\tprops: {\n\t\tcolor: {\n\t\t\tdefault: \"#ffffff\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Fill color of the flower\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Color\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tcenter: {\n\t\t\tdefault: {\n\t\t\t\tx: .5,\n\t\t\t\ty: .5\n\t\t\t},\n\t\t\ttransform: transformPosition,\n\t\t\tdescription: \"Center position of the flower\",\n\t\t\tui: {\n\t\t\t\ttype: \"position\",\n\t\t\t\tlabel: \"Center\",\n\t\t\t\tgroup: \"Position\"\n\t\t\t}\n\t\t},\n\t\tradius: {\n\t\t\tdefault: .4,\n\t\t\tdescription: \"Outer petal tip radius in UV space\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Radius\",\n\t\t\t\tgroup: \"Shape\"\n\t\t\t}\n\t\t},\n\t\tsides: {\n\t\t\tdefault: 5,\n\t\t\tdescription: \"Number of petals\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 3,\n\t\t\t\tmax: 12,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Petals\",\n\t\t\t\tgroup: \"Shape\"\n\t\t\t}\n\t\t},\n\t\tinnerRatio: {\n\t\t\tdefault: .4,\n\t\t\tdescription: \"Inner valley radius as a ratio of outer radius — lower values make deeper notches\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: .1,\n\t\t\t\tmax: .95,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Inner Ratio\",\n\t\t\t\tgroup: \"Shape\"\n\t\t\t}\n\t\t},\n\t\trotation: {\n\t\t\tdefault: 0,\n\t\t\tdescription: \"Rotation in degrees\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 360,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Rotation\",\n\t\t\t\tgroup: \"Shape\"\n\t\t\t}\n\t\t},\n\t\tsoftness: {\n\t\t\tdefault: 0,\n\t\t\tdescription: \"Edge softness for antialiasing\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: .1,\n\t\t\t\tstep: .001,\n\t\t\t\tlabel: \"Softness\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tstrokeThickness: {\n\t\t\tdefault: 0,\n\t\t\tdescription: \"Stroke thickness. Zero means no stroke.\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: .2,\n\t\t\t\tstep: .005,\n\t\t\t\tlabel: \"Stroke Thickness\",\n\t\t\t\tgroup: \"Stroke\"\n\t\t\t}\n\t\t},\n\t\tstrokeColor: {\n\t\t\tdefault: \"#000000\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Color of the stroke outline\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Stroke Color\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tstrokePosition: {\n\t\t\tdefault: \"center\",\n\t\t\ttransform: transformStrokePosition,\n\t\t\tdescription: \"Position of the stroke relative to the shape edge\",\n\t\t\tui: {\n\t\t\t\ttype: \"select\",\n\t\t\t\toptions: [\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Outside\",\n\t\t\t\t\t\tvalue: \"outside\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Center\",\n\t\t\t\t\t\tvalue: \"center\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Inside\",\n\t\t\t\t\t\tvalue: \"inside\"\n\t\t\t\t\t}\n\t\t\t\t],\n\t\t\t\tlabel: \"Stroke Position\",\n\t\t\t\tgroup: \"Stroke\"\n\t\t\t}\n\t\t},\n\t\tcolorSpace: {\n\t\t\tdefault: \"linear\",\n\t\t\ttransform: transformColorSpace,\n\t\t\tcompileTime: true,\n\t\t\tdescription: \"Color space for blending fill and stroke colors\",\n\t\t\tui: {\n\t\t\t\ttype: \"select\",\n\t\t\t\toptions: colorSpaceOptions,\n\t\t\t\tlabel: \"Color Blending\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t}\n\t},\n\tfragmentNode: ({ uniforms }) => {\n\t\tconst uv$1 = screenUV;\n\t\tconst aspect = viewportSize.x.div(viewportSize.y);\n\t\tconst aspectUV = vec2(uv$1.x.mul(aspect), uv$1.y);\n\t\tconst centerPos = vec2(uniforms.center.uniform.x.mul(aspect), uniforms.center.uniform.y.oneMinus());\n\t\tconst dx = aspectUV.x.sub(centerPos.x);\n\t\tconst dy = aspectUV.y.sub(centerPos.y);\n\t\tconst rotRad = uniforms.rotation.uniform.mul(float(Math.PI / 180));\n\t\tconst cosR = cos(rotRad);\n\t\tconst sinR = sin(rotRad);\n\t\tconst sdf = flowerSdf(dx.mul(cosR).add(dy.mul(sinR)), dy.mul(cosR).sub(dx.mul(sinR)), uniforms.radius.uniform, uniforms.sides.uniform, uniforms.innerRatio.uniform);\n\t\tconst edgeSoftness = uniforms.softness.uniform;\n\t\tconst strokeThickness = uniforms.strokeThickness.uniform;\n\t\tconst strokePositionMode = uniforms.strokePosition.uniform;\n\t\tconst hasStroke = strokeThickness.greaterThan(float(0));\n\t\tconst isCenter = strokePositionMode.greaterThanEqual(float(.5)).and(strokePositionMode.lessThan(float(1.5)));\n\t\tconst isInside = strokePositionMode.greaterThanEqual(float(1.5));\n\t\tconst halfThickness = strokeThickness.mul(.5);\n\t\tconst strokeInner = isInside.select(strokeThickness.negate(), isCenter.select(halfThickness.negate(), float(0)));\n\t\tconst strokeOuter = isInside.select(float(0), isCenter.select(halfThickness, strokeThickness));\n\t\tconst overallMask = smoothstep(strokeOuter.sub(edgeSoftness), strokeOuter, sdf).oneMinus();\n\t\tconst strokeBlend = hasStroke.select(smoothstep(strokeInner.sub(edgeSoftness), strokeInner, sdf), float(0));\n\t\tconst blendedColor = mixColors(vec4(uniforms.color.uniform.rgb, uniforms.color.uniform.a), vec4(uniforms.strokeColor.uniform.rgb, uniforms.strokeColor.uniform.a), strokeBlend, uniforms.colorSpace.uniform.value);\n\t\treturn vec4(blendedColor.xyz, blendedColor.w.mul(overallMask));\n\t}\n};\nvar Flower_default = componentDefinition;\nexport { componentDefinition as n, Flower_default as t };\n","import { t as applyEdgeHandling } from \"./edges-CX_lJB9R.js\";\nimport { c as transformEdges } from \"./transformations-CJcUeZIC.js\";\nimport { t as unpremultiplyAlpha } from \"./alpha-C4ptedXe.js\";\nimport { t as createAnimatedTime } from \"./time-DUqSFWvT.js\";\nimport { convertToTexture, cos, float, length, max, mx_noise_float, screenUV, sin, vec2, vec3, vec4, viewportSize } from \"three/tsl\";\nconst componentDefinition = {\n\tname: \"FlowField\",\n\tcategory: \"Distortions\",\n\tdescription: \"Fluid-like distortion with constant smooth motion\",\n\trequiresRTT: true,\n\trequiresChild: true,\n\tprops: {\n\t\tstrength: {\n\t\t\tdefault: .15,\n\t\t\tdescription: \"Intensity of the flow distortion\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: .5,\n\t\t\t\tstep: .05,\n\t\t\t\tlabel: \"Strength\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tdetail: {\n\t\t\tdefault: 2,\n\t\t\tdescription: \"Scale of the flow patterns\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: .5,\n\t\t\t\tmax: 5,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Detail\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tspeed: {\n\t\t\tdefault: 0,\n\t\t\tdescription: \"Speed of the flow\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 20,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Speed\",\n\t\t\t\tgroup: \"Animation\"\n\t\t\t}\n\t\t},\n\t\tevolutionSpeed: {\n\t\t\tdefault: 0,\n\t\t\tdescription: \"How fast the flow field pattern reshapes over time\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 20,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Evolution Speed\",\n\t\t\t\tgroup: \"Animation\"\n\t\t\t}\n\t\t},\n\t\tedges: {\n\t\t\tdefault: \"mirror\",\n\t\t\tdescription: \"How to handle edges when distortion pushes content out of bounds\",\n\t\t\ttransform: transformEdges,\n\t\t\tcompileTime: true,\n\t\t\tui: {\n\t\t\t\ttype: \"select\",\n\t\t\t\toptions: [\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Stretch\",\n\t\t\t\t\t\tvalue: \"stretch\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Transparent\",\n\t\t\t\t\t\tvalue: \"transparent\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Mirror\",\n\t\t\t\t\t\tvalue: \"mirror\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Wrap\",\n\t\t\t\t\t\tvalue: \"wrap\"\n\t\t\t\t\t}\n\t\t\t\t],\n\t\t\t\tlabel: \"Edges\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t}\n\t},\n\tfragmentNode: (params) => {\n\t\tconst { uniforms, childNode, onCleanup } = params;\n\t\tif (!childNode) return vec4(0, 0, 0, 0);\n\t\tconst childTexture = convertToTexture(childNode);\n\t\tonCleanup(() => {\n\t\t\tif (childTexture?.renderTarget?.dispose) childTexture.renderTarget.dispose();\n\t\t});\n\t\tconst time$1 = createAnimatedTime(params, uniforms.speed).mul(.1);\n\t\tconst evolutionTime = createAnimatedTime(params, uniforms.evolutionSpeed).mul(.1);\n\t\tconst aspect = viewportSize.x.div(viewportSize.y);\n\t\tconst aspectCorrectedUV = vec2(screenUV.x.mul(aspect), screenUV.y);\n\t\tconst scale = uniforms.detail.uniform;\n\t\tconst strength = uniforms.strength.uniform;\n\t\tconst drift1 = time$1.mul(.7);\n\t\tconst evolve1 = evolutionTime.mul(.2);\n\t\tconst angle1 = mx_noise_float(vec3(aspectCorrectedUV.x.mul(scale).add(drift1.mul(.3)), aspectCorrectedUV.y.mul(scale).add(drift1.mul(.5)), evolve1)).mul(Math.PI * 2);\n\t\tconst flow1 = vec2(cos(angle1), sin(angle1));\n\t\tconst drift2 = time$1.mul(.5);\n\t\tconst evolve2 = evolutionTime.mul(.15);\n\t\tconst angle2 = mx_noise_float(vec3(aspectCorrectedUV.x.mul(scale.mul(2.3)).add(drift2.mul(-.4)).add(173.5), aspectCorrectedUV.y.mul(scale.mul(2.3)).add(drift2.mul(.3)).add(291.7), evolve2.add(50))).mul(Math.PI * 2);\n\t\tconst flow2 = vec2(cos(angle2), sin(angle2));\n\t\tconst drift3 = time$1.mul(.3);\n\t\tconst evolve3 = evolutionTime.mul(.1);\n\t\tconst angle3 = mx_noise_float(vec3(aspectCorrectedUV.x.mul(scale.mul(4.7)).add(drift3.mul(.2)).add(527.3), aspectCorrectedUV.y.mul(scale.mul(4.7)).add(drift3.mul(-.6)).add(839.1), evolve3.add(100))).mul(Math.PI * 2);\n\t\tconst flow3 = vec2(cos(angle3), sin(angle3));\n\t\tconst combinedFlow = flow1.add(flow2.mul(.5)).add(flow3.mul(.25));\n\t\tconst flowLength = max(length(combinedFlow), float(.001));\n\t\tconst normalizedFlow = combinedFlow.div(flowLength);\n\t\tconst finalFlow = vec2(normalizedFlow.x.mul(strength).div(aspect), normalizedFlow.y.mul(strength));\n\t\tconst distortedUV = vec2(screenUV.x.add(finalFlow.x), screenUV.y.add(finalFlow.y));\n\t\treturn unpremultiplyAlpha(applyEdgeHandling(distortedUV, childTexture.sample(distortedUV), childTexture, uniforms.edges.uniform.value));\n\t}\n};\nvar FlowField_default = componentDefinition;\nexport { componentDefinition as n, FlowField_default as t };\n","import { a as transformColor, o as transformColorSpace, t as colorSpaceOptions } from \"./transformations-CJcUeZIC.js\";\nimport { t as mixColors } from \"./colorMixing-BPpDnR5I.js\";\nimport { t as createAnimatedTime } from \"./time-DUqSFWvT.js\";\nimport { Fn, abs, clamp, cos, float, mix, mx_noise_float, pow, screenUV, sin, smoothstep, vec2, vec3, vec4, viewportSize } from \"three/tsl\";\nconst componentDefinition = {\n\tname: \"FlowingGradient\",\n\tcategory: \"Textures\",\n\tdescription: \"Liquid silk gradient with organic flowing color bands\",\n\tprops: {\n\t\tcolorA: {\n\t\t\tdefault: \"#0a0015\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Deep background color\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Color A\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tcolorB: {\n\t\t\tdefault: \"#6b17e6\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Primary accent color\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Color B\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tcolorC: {\n\t\t\tdefault: \"#ff4d6a\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Secondary accent color\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Color C\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tcolorD: {\n\t\t\tdefault: \"#ff6b35\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Tertiary accent color\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Color D\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tcolorSpace: {\n\t\t\tdefault: \"oklch\",\n\t\t\ttransform: transformColorSpace,\n\t\t\tcompileTime: true,\n\t\t\tdescription: \"Color space for color interpolation\",\n\t\t\tui: {\n\t\t\t\ttype: \"select\",\n\t\t\t\toptions: colorSpaceOptions,\n\t\t\t\tlabel: \"Color Space\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tspeed: {\n\t\t\tdefault: 1,\n\t\t\tdescription: \"Animation speed\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 10,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Speed\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tdistortion: {\n\t\t\tdefault: .5,\n\t\t\tdescription: \"Organic distortion intensity\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 2,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Distortion\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tseed: {\n\t\t\tdefault: 0,\n\t\t\tdescription: \"Random seed for variation\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 100,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Seed\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t}\n\t},\n\tfragmentNode: (params) => {\n\t\tconst { uniforms } = params;\n\t\tconst colorA = uniforms.colorA.uniform;\n\t\tconst colorB = uniforms.colorB.uniform;\n\t\tconst colorC = uniforms.colorC.uniform;\n\t\tconst colorD = uniforms.colorD.uniform;\n\t\tconst csMode = uniforms.colorSpace.uniform.value;\n\t\tconst distortion = uniforms.distortion.uniform;\n\t\tconst seed = uniforms.seed.uniform;\n\t\tconst t = createAnimatedTime(params, uniforms.speed).mul(.075);\n\t\tconst aspect = viewportSize.x.div(viewportSize.y);\n\t\treturn Fn(() => {\n\t\t\tconst uv$1 = screenUV.sub(.5).toVar();\n\t\t\tconst seedOff = seed.mul(.17);\n\t\t\tconst angle = mx_noise_float(vec3(uv$1.x.mul(.8).add(t.mul(.4)), uv$1.y.mul(.8).sub(t.mul(.25)), seedOff)).mul(4 * Math.PI).mul(distortion);\n\t\t\tconst uvCorr = vec2(uv$1.x, uv$1.y.div(aspect));\n\t\t\tconst ca = cos(angle);\n\t\t\tconst sa = sin(angle);\n\t\t\tuv$1.assign(vec2(uvCorr.x.mul(ca).sub(uvCorr.y.mul(sa)), uvCorr.x.mul(sa).add(uvCorr.y.mul(ca)).mul(aspect)));\n\t\t\tconst ws = t.mul(2);\n\t\t\tuv$1.x.assign(uv$1.x.add(sin(uv$1.y.mul(5).add(ws)).div(50).mul(distortion)));\n\t\t\tuv$1.y.assign(uv$1.y.add(sin(uv$1.x.mul(7.5).add(ws)).div(25).mul(distortion)));\n\t\t\tconst wp1 = vec3(uv$1.x.mul(2), uv$1.y.mul(2), t.mul(.5).add(seedOff));\n\t\t\tconst wx1 = mx_noise_float(wp1.add(vec3(5.2, 1.3, 0)));\n\t\t\tconst wy1 = mx_noise_float(wp1.add(vec3(1.7, 9.2, 0)));\n\t\t\tuv$1.assign(uv$1.add(vec2(wx1, wy1).mul(.25).mul(distortion)));\n\t\t\tconst wp2 = vec3(uv$1.x.mul(1.5), uv$1.y.mul(1.5), t.mul(.3).add(seedOff));\n\t\t\tconst wx2 = mx_noise_float(wp2.add(vec3(8.3, 2.8, 0)));\n\t\t\tconst wy2 = mx_noise_float(wp2.add(vec3(3.1, 7.4, 0)));\n\t\t\tuv$1.assign(uv$1.add(vec2(wx2, wy2).mul(.2).mul(distortion)));\n\t\t\tconst zoneNoise = mx_noise_float(vec3(uv$1.x.mul(1.8), uv$1.y.mul(1.8), t.mul(.3).add(seedOff)));\n\t\t\tconst edgeHardness = pow(wx1.mul(.5).add(.5), float(1.5));\n\t\t\tconst edgeWidth = mix(float(.5), float(.008), edgeHardness);\n\t\t\tconst t1 = smoothstep(edgeWidth.negate(), edgeWidth, zoneNoise);\n\t\t\tconst t2 = smoothstep(edgeWidth.negate(), edgeWidth, wy1);\n\t\t\tconst baseColor = mixColors(mixColors(colorA, colorB, t1, csMode), mixColors(colorC, colorD, t1, csMode), t2, csMode);\n\t\t\tconst foldMask1 = float(1).sub(abs(t1.mul(2).sub(1)));\n\t\t\tconst foldMask2 = float(1).sub(abs(t2.mul(2).sub(1)));\n\t\t\tconst foldHighlight = foldMask1.max(foldMask2).mul(edgeHardness);\n\t\t\tconst surfaceLight = wx2.mul(.5).add(.5).mul(.12).add(.94);\n\t\t\tconst baseAlpha = baseColor.w;\n\t\t\treturn vec4(clamp(baseColor.rgb.mul(surfaceLight).mul(float(1).add(foldHighlight.mul(.35))), 0, 1), baseAlpha);\n\t\t})();\n\t}\n};\nvar FlowingGradient_default = componentDefinition;\nexport { componentDefinition as n, FlowingGradient_default as t };\n","import { n as applyEdgeToUV } from \"./edges-CX_lJB9R.js\";\nimport { a as transformColor, c as transformEdges } from \"./transformations-CJcUeZIC.js\";\nimport { t as unpremultiplyAlpha } from \"./alpha-C4ptedXe.js\";\nimport { t as createAnimatedTime } from \"./time-DUqSFWvT.js\";\nimport { PI, abs, convertToTexture, cos, exp2, float, fract, mix, pow, screenUV, sign, sin, sqrt, step, uniform, vec2, vec3, vec4, viewportSize } from \"three/tsl\";\nconst componentDefinition = {\n\tname: \"FlutedGlass\",\n\tcategory: \"Distortions\",\n\tdescription: \"Full-screen fluted glass effect — refracts content through repeating cylindrical bars\",\n\trequiresRTT: true,\n\trequiresChild: true,\n\tprops: {\n\t\tshape: {\n\t\t\tdefault: \"bars\",\n\t\t\tdescription: \"Cross-section shape of each flute\",\n\t\t\tcompileTime: true,\n\t\t\ttransform: (value) => {\n\t\t\t\treturn {\n\t\t\t\t\t\"bars\": 0,\n\t\t\t\t\t\"rounded\": 1,\n\t\t\t\t\t\"waves\": 2\n\t\t\t\t}[value] ?? 0;\n\t\t\t},\n\t\t\tui: {\n\t\t\t\ttype: \"select\",\n\t\t\t\toptions: [\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Bars\",\n\t\t\t\t\t\tvalue: \"bars\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Rounded\",\n\t\t\t\t\t\tvalue: \"rounded\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Waves\",\n\t\t\t\t\t\tvalue: \"waves\"\n\t\t\t\t\t}\n\t\t\t\t],\n\t\t\t\tlabel: \"Shape\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tangle: {\n\t\t\tdefault: 0,\n\t\t\tdescription: \"Direction of the flutes in degrees (0 = vertical bars)\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 360,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Angle\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tfrequency: {\n\t\t\tdefault: 10,\n\t\t\tdescription: \"Number of flutes across the longest viewport axis\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 1,\n\t\t\t\tmax: 20,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Frequency\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tsoftness: {\n\t\t\tdefault: .5,\n\t\t\tdescription: \"How smoothly distortion fades from each flute centre to its edge (0 = flat middle / sharp seams, 1 = gentle curve)\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Softness\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\twaveAmplitude: {\n\t\t\tdefault: .06,\n\t\t\tdescription: \"How far each flute sways horizontally as it travels (Waves shape only)\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: .5,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Wave Amplitude\",\n\t\t\t\tgroup: \"Effect\",\n\t\t\t\tcondition: { shape: \"waves\" }\n\t\t\t}\n\t\t},\n\t\twaveFrequency: {\n\t\t\tdefault: 1.5,\n\t\t\tdescription: \"How many sways fit along each flute (Waves shape only)\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: .1,\n\t\t\t\tmax: 10,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Wave Frequency\",\n\t\t\t\tgroup: \"Effect\",\n\t\t\t\tcondition: { shape: \"waves\" }\n\t\t\t}\n\t\t},\n\t\tspeed: {\n\t\t\tdefault: 0,\n\t\t\tdescription: \"Animation speed — drifts the flute pattern over time and flows wave perturbations\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: -1,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .05,\n\t\t\t\tlabel: \"Speed\",\n\t\t\t\tgroup: \"Animation\"\n\t\t\t}\n\t\t},\n\t\trefraction: {\n\t\t\tdefault: 1.5,\n\t\t\tdescription: \"How aggressively each flute bends content beneath it\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 4,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Refraction\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\taberration: {\n\t\t\tdefault: .2,\n\t\t\tdescription: \"Chromatic aberration — splits RGB along the refraction direction at flute seams\",\n\t\t\tcompileTimeWhen: (prev, next) => prev > 0 !== next > 0,\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Aberration\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tlightAngle: {\n\t\t\tdefault: 30,\n\t\t\tdescription: \"Direction the light source is coming from (0 = head-on, 90 = grazing)\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: -90,\n\t\t\t\tmax: 90,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Light Angle\",\n\t\t\t\tgroup: \"Highlight\"\n\t\t\t}\n\t\t},\n\t\thighlight: {\n\t\t\tdefault: .2,\n\t\t\tdescription: \"Strength of the specular reflection on each flute\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 2,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Highlight\",\n\t\t\t\tgroup: \"Highlight\"\n\t\t\t}\n\t\t},\n\t\thighlightSoftness: {\n\t\t\tdefault: .3,\n\t\t\tdescription: \"Spread of the specular peak (0 = pin-tight, 1 = broad sheen)\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Highlight Softness\",\n\t\t\t\tgroup: \"Highlight\"\n\t\t\t}\n\t\t},\n\t\thighlightColor: {\n\t\t\tdefault: \"#ffffff\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Color of the specular highlight\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Highlight Color\",\n\t\t\t\tgroup: \"Highlight\"\n\t\t\t}\n\t\t},\n\t\tedges: {\n\t\t\tdefault: \"mirror\",\n\t\t\tdescription: \"How to handle edges when distortion samples beyond the canvas\",\n\t\t\ttransform: transformEdges,\n\t\t\tcompileTime: true,\n\t\t\tui: {\n\t\t\t\ttype: \"select\",\n\t\t\t\toptions: [\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Stretch\",\n\t\t\t\t\t\tvalue: \"stretch\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Transparent\",\n\t\t\t\t\t\tvalue: \"transparent\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Mirror\",\n\t\t\t\t\t\tvalue: \"mirror\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Wrap\",\n\t\t\t\t\t\tvalue: \"wrap\"\n\t\t\t\t\t}\n\t\t\t\t],\n\t\t\t\tlabel: \"Edges\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t}\n\t},\n\tfragmentNode: (params) => {\n\t\tconst { uniforms, childNode, onCleanup, onBeforeRender } = params;\n\t\tif (!childNode) return vec4(0);\n\t\tconst childTexture = convertToTexture(childNode);\n\t\tonCleanup(() => {\n\t\t\tif (childTexture?.renderTarget?.dispose) childTexture.renderTarget.dispose();\n\t\t});\n\t\tconst uvCoord = screenUV;\n\t\tconst aspect = viewportSize.x.div(viewportSize.y);\n\t\tconst t = createAnimatedTime(params, uniforms.speed).negate();\n\t\tlet cosA, sinA;\n\t\tif (uniforms.angle.uniform.isUniformNode) {\n\t\t\tconst cu = uniform(1);\n\t\t\tconst su = uniform(0);\n\t\t\tconst updateAngle = () => {\n\t\t\t\tconst r = uniforms.angle.uniform.value * Math.PI / 180;\n\t\t\t\tcu.value = Math.cos(r);\n\t\t\t\tsu.value = Math.sin(r);\n\t\t\t};\n\t\t\tupdateAngle();\n\t\t\tonBeforeRender(updateAngle);\n\t\t\tcosA = cu;\n\t\t\tsinA = su;\n\t\t} else {\n\t\t\tconst r = uniforms.angle.uniform.mul(PI).div(180);\n\t\t\tcosA = cos(r);\n\t\t\tsinA = sin(r);\n\t\t}\n\t\tconst hx = uniform(0);\n\t\tconst hy = uniform(1);\n\t\tconst updateLight = () => {\n\t\t\tconst half = uniforms.lightAngle.uniform.value * Math.PI / 360;\n\t\t\thx.value = Math.sin(half);\n\t\t\thy.value = Math.cos(half);\n\t\t};\n\t\tupdateLight();\n\t\tonBeforeRender(updateLight);\n\t\tconst centered = uvCoord.sub(vec2(.5, .5));\n\t\tconst aspCorr = vec2(centered.x.mul(aspect), centered.y);\n\t\tconst u = aspCorr.x.mul(cosA).add(aspCorr.y.mul(sinA));\n\t\tconst v = aspCorr.x.mul(sinA).negate().add(aspCorr.y.mul(cosA));\n\t\tconst shapeId = uniforms.shape.uniform.value;\n\t\tconst cellPos = fract((shapeId === 2 ? u.add(sin(v.mul(uniforms.waveFrequency.uniform).mul(PI.mul(2)).add(t.mul(2))).mul(uniforms.waveAmplitude.uniform)) : u).mul(uniforms.frequency.uniform).add(t)).sub(.5).mul(2);\n\t\tconst softness = uniforms.softness.uniform;\n\t\tconst absCell = abs(cellPos).max(float(1e-4));\n\t\tlet slope;\n\t\tswitch (shapeId) {\n\t\t\tcase 0: {\n\t\t\t\tconst exp$1 = mix(float(16), float(4), softness);\n\t\t\t\tslope = sign(cellPos).mul(pow(absCell, exp$1));\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tdefault: {\n\t\t\t\tconst exp$1 = mix(float(8), float(3), softness);\n\t\t\t\tslope = sign(cellPos).mul(pow(absCell, exp$1));\n\t\t\t}\n\t\t}\n\t\tconst halfCell = float(.5).div(uniforms.frequency.uniform.max(float(.001)));\n\t\tconst refrU = slope.mul(uniforms.refraction.uniform).mul(halfCell).negate();\n\t\tconst refrOffsetX = refrU.mul(cosA).div(aspect);\n\t\tconst refrOffsetY = refrU.mul(sinA);\n\t\tconst refractedUV = vec2(uvCoord.x.add(refrOffsetX), uvCoord.y.add(refrOffsetY));\n\t\tconst aberrationEnabled = typeof uniforms.aberration.uniform.value === \"number\" ? uniforms.aberration.uniform.value > 0 : true;\n\t\tconst chrU = refrU.mul(uniforms.aberration.uniform).mul(.5);\n\t\tconst chrOffX = chrU.mul(cosA).div(aspect);\n\t\tconst chrOffY = chrU.mul(sinA);\n\t\tconst edgeMode = uniforms.edges.uniform.value;\n\t\tconst sampleAt = (uv$1) => {\n\t\t\tif (edgeMode === 1) {\n\t\t\t\tconst inX = step(float(0), uv$1.x).mul(step(uv$1.x, float(1)));\n\t\t\t\tconst inY = step(float(0), uv$1.y).mul(step(uv$1.y, float(1)));\n\t\t\t\treturn childTexture.sample(uv$1).mul(inX.mul(inY));\n\t\t\t}\n\t\t\treturn childTexture.sample(applyEdgeToUV(uv$1, edgeMode));\n\t\t};\n\t\tlet sampled;\n\t\tif (!aberrationEnabled) sampled = sampleAt(refractedUV);\n\t\telse {\n\t\t\tconst rUV = vec2(refractedUV.x.add(chrOffX), refractedUV.y.add(chrOffY));\n\t\t\tconst bUV = vec2(refractedUV.x.sub(chrOffX), refractedUV.y.sub(chrOffY));\n\t\t\tconst rS = sampleAt(rUV);\n\t\t\tconst gS = sampleAt(refractedUV);\n\t\t\tconst bS = sampleAt(bUV);\n\t\t\tsampled = vec4(rS.r, gS.g, bS.b, gS.a);\n\t\t}\n\t\tconst straight = unpremultiplyAlpha(sampled);\n\t\tconst baseRgb = vec3(straight.r, straight.g, straight.b);\n\t\tconst slopeSq = slope.mul(slope).min(float(1));\n\t\tconst nz = sqrt(float(1).sub(slopeSq));\n\t\tconst nDotH = slope.mul(hx).add(nz.mul(hy)).max(float(0));\n\t\tconst shininess = exp2(float(8).sub(uniforms.highlightSoftness.uniform.mul(float(7))));\n\t\tconst fresnel = pow(float(1).sub(nz), float(5));\n\t\tconst fresnelMix = float(.04).add(float(.96).mul(fresnel));\n\t\tconst spec = pow(nDotH, shininess).mul(fresnelMix).mul(uniforms.highlight.uniform);\n\t\tconst hlCol = uniforms.highlightColor.uniform;\n\t\tconst specA = spec.mul(straight.a);\n\t\tconst lit = vec3(baseRgb.x.add(hlCol.x.mul(specA)), baseRgb.y.add(hlCol.y.mul(specA)), baseRgb.z.add(hlCol.z.mul(specA)));\n\t\treturn vec4(lit.x, lit.y, lit.z, straight.a);\n\t}\n};\nvar FlutedGlass_default = componentDefinition;\nexport { componentDefinition as n, FlutedGlass_default as t };\n","import { a as transformColor, o as transformColorSpace, t as colorSpaceOptions } from \"./transformations-CJcUeZIC.js\";\nimport { t as mixColors } from \"./colorMixing-BPpDnR5I.js\";\nimport { StorageTexture } from \"three/webgpu\";\nimport { DataTexture, FloatType, LinearFilter as LinearFilter$1, RGBAFormat } from \"three\";\nimport { Fn, attributeArray, cos, float, floor, fract, instanceIndex, int, mix, mod, screenUV, sin, storageTexture, texture, textureStore, uint, uniform, uvec2, vec2, vec4 } from \"three/tsl\";\nvar GRID_GPU = 256;\nvar GRID_CPU = 64;\nvar JACOBI_ITERS = 20;\nvar PRESSURE_DISSIPATION = .8;\nvar VELOCITY_DISSIPATION = .15;\nvar INTERNAL_MAX_VEL = GRID_GPU * .6;\nconst componentDefinition = {\n\tname: \"Fog\",\n\tcategory: \"Interactive\",\n\tdescription: \"Fog that fills the screen and interacts with the mouse\",\n\tusesPointer: true,\n\tprops: {\n\t\tcolorA: {\n\t\t\tdefault: \"#e0e0e0\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Primary fog color\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Color A\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tcolorB: {\n\t\t\tdefault: \"#888888\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Secondary fog color — creates variation across the field\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Color B\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tseed: {\n\t\t\tdefault: 0,\n\t\t\tdescription: \"Deterministic starting pattern — different seeds produce different fog configurations\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 999,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Seed\",\n\t\t\t\tgroup: \"Field\"\n\t\t\t}\n\t\t},\n\t\tspeed: {\n\t\t\tdefault: 1,\n\t\t\tdescription: \"Simulation speed multiplier\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: .1,\n\t\t\t\tmax: 3,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Speed\",\n\t\t\t\tgroup: \"Field\"\n\t\t\t}\n\t\t},\n\t\tturbulence: {\n\t\t\tdefault: 1,\n\t\t\tdescription: \"Ambient motion strength\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 3,\n\t\t\t\tstep: .05,\n\t\t\t\tlabel: \"Turbulence\",\n\t\t\t\tgroup: \"Field\"\n\t\t\t}\n\t\t},\n\t\tdetail: {\n\t\t\tdefault: 15,\n\t\t\tdescription: \"Fine-scale swirling structure — higher values produce more intricate wisps and vortices\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 50,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Detail\",\n\t\t\t\tgroup: \"Field\"\n\t\t\t}\n\t\t},\n\t\tblending: {\n\t\t\tdefault: .3,\n\t\t\tdescription: \"How much the two colors blend together — 0 behaves like oil & water (colors stay distinct with sharp boundaries), 1 behaves like food coloring (colors fully mix)\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .05,\n\t\t\t\tlabel: \"Blending\",\n\t\t\t\tgroup: \"Field\"\n\t\t\t}\n\t\t},\n\t\tmouseInfluence: {\n\t\t\tdefault: .1,\n\t\t\tdescription: \"Strength of cursor influence — move the cursor to push fog\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 2,\n\t\t\t\tstep: .05,\n\t\t\t\tlabel: \"Cursor Influence\",\n\t\t\t\tgroup: \"Interaction\"\n\t\t\t}\n\t\t},\n\t\tmouseRadius: {\n\t\t\tdefault: .1,\n\t\t\tdescription: \"Radius of cursor influence area\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: .02,\n\t\t\t\tmax: .5,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Cursor Radius\",\n\t\t\t\tgroup: \"Interaction\"\n\t\t\t}\n\t\t},\n\t\tcolorSpace: {\n\t\t\tdefault: \"linear\",\n\t\t\ttransform: transformColorSpace,\n\t\t\tcompileTime: true,\n\t\t\tdescription: \"Color space for color interpolation\",\n\t\t\tui: {\n\t\t\t\ttype: \"select\",\n\t\t\t\toptions: colorSpaceOptions,\n\t\t\t\tlabel: \"Color Space\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t}\n\t},\n\tcomputeNode: ({ uniforms, onCleanup, renderer }) => {\n\t\tconst N = GRID_GPU;\n\t\tconst gs = uint(N);\n\t\tconst Ni = int(N);\n\t\tconst Nf = float(N);\n\t\tconst TAU = float(Math.PI * 2);\n\t\tconst count = N * N;\n\t\tconst nw = (ii, ji, di, dj) => ii.add(int(di)).add(Ni).mod(Ni).mul(Ni).add(ji.add(int(dj)).add(Ni).mod(Ni));\n\t\tconst velA = attributeArray(count, \"vec4\");\n\t\tconst velB = attributeArray(count, \"vec4\");\n\t\tconst densA = attributeArray(count, \"vec4\");\n\t\tconst densB = attributeArray(count, \"vec4\");\n\t\tconst pressDivBuf = attributeArray(count, \"vec4\");\n\t\tconst valueNoise2D = Fn(([nx, ny]) => {\n\t\t\tconst ix = floor(nx), iy = floor(ny);\n\t\t\tconst sx = fract(nx), sy = fract(ny);\n\t\t\tconst ux = sx.mul(sx).mul(float(3).sub(sx.mul(float(2))));\n\t\t\tconst uy = sy.mul(sy).mul(float(3).sub(sy.mul(float(2))));\n\t\t\tconst h = (px, py) => fract(sin(px.mul(float(127.1)).add(py.mul(float(311.7)))).mul(float(43758.5453)));\n\t\t\treturn mix(mix(h(ix, iy), h(ix.add(float(1)), iy), ux), mix(h(ix, iy.add(float(1))), h(ix.add(float(1)), iy.add(float(1))), ux), uy);\n\t\t});\n\t\tconst fbm = Fn(([nx, ny]) => valueNoise2D(nx, ny).mul(float(.5)).add(valueNoise2D(nx.mul(float(2)).add(float(5.37)), ny.mul(float(2)).add(float(9.13))).mul(float(.3))).add(valueNoise2D(nx.mul(float(4)).add(float(1.79)), ny.mul(float(4)).add(float(3.51))).mul(float(.2))));\n\t\tconst outTex = new StorageTexture(N, N);\n\t\toutTex.type = FloatType;\n\t\tconst outTexNode = storageTexture(outTex);\n\t\tonCleanup(() => {\n\t\t\toutTex.dispose();\n\t\t});\n\t\tconst dtU = uniform(.016);\n\t\tconst timeU = uniform(0);\n\t\tconst seedU = uniform(0);\n\t\tconst turbulenceU = uniform(.3);\n\t\tconst curlStrengthU = uniform(25);\n\t\tconst blendingU = uniform(.3);\n\t\tconst cursorXU = uniform(128);\n\t\tconst cursorYU = uniform(128);\n\t\tconst cursorVelXU = uniform(0);\n\t\tconst cursorVelYU = uniform(0);\n\t\tconst mouseActiveU = uniform(0);\n\t\tconst mouseRadSqU = uniform(1500);\n\t\tconst initPass = Fn(() => {\n\t\t\tconst idx = instanceIndex;\n\t\t\tconst jf = idx.mod(gs).toFloat();\n\t\t\tconst iF = idx.div(gs).toFloat();\n\t\t\tconst sdx = fract(sin(seedU.mul(float(37.31))).mul(float(43758.5453))).mul(float(97));\n\t\t\tconst sdy = fract(sin(seedU.mul(float(83.17))).mul(float(43758.5453))).mul(float(97));\n\t\t\tconst nx = jf.div(Nf).mul(float(3)).add(sdx);\n\t\t\tconst ny = iF.div(Nf).mul(float(3)).add(sdy);\n\t\t\tconst fogDens = fbm(nx.add(float(31.7)), ny.add(float(53.3))).mul(float(.75)).add(float(.25)).clamp(float(.15), float(.9));\n\t\t\tconst colorVar = fbm(nx, ny).clamp(float(0), float(1));\n\t\t\tdensA.element(idx).assign(vec4(fogDens, colorVar, float(0), float(0)));\n\t\t\tdensB.element(idx).assign(vec4(fogDens, colorVar, float(0), float(0)));\n\t\t\tvelA.element(idx).assign(vec4(float(0), float(0), float(0), float(0)));\n\t\t\tvelB.element(idx).assign(vec4(float(0), float(0), float(0), float(0)));\n\t\t\tpressDivBuf.element(idx).assign(vec4(float(0), float(0), float(0), float(0)));\n\t\t})().compute(count, [256]);\n\t\tconst forcePass = Fn(() => {\n\t\t\tconst idx = instanceIndex;\n\t\t\tconst j = idx.mod(gs);\n\t\t\tconst i = idx.div(gs);\n\t\t\tconst jf = j.toFloat().add(float(.5));\n\t\t\tconst iF = i.toFloat().add(float(.5));\n\t\t\tconst x = jf.div(Nf).mul(TAU);\n\t\t\tconst y = iF.div(Nf).mul(TAU);\n\t\t\tconst vel = velA.element(idx);\n\t\t\tconst t = timeU;\n\t\t\tconst fx = sin(x.mul(float(2)).add(t.mul(float(.31)))).mul(cos(y.mul(float(1.5)).add(t.mul(float(.23))))).add(sin(x.mul(float(.7)).add(y.mul(float(1.3))).add(t.mul(float(.17)))).mul(float(.4))).mul(turbulenceU).mul(float(N * .04)).mul(dtU);\n\t\t\tconst fy = cos(x.mul(float(1.5)).add(t.mul(float(.27)))).mul(sin(y.mul(float(2)).add(t.mul(float(.19))))).add(cos(x.mul(float(1.1)).add(y.mul(float(.9))).add(t.mul(float(.21)))).mul(float(.4))).mul(turbulenceU).mul(float(N * .04)).mul(dtU);\n\t\t\tconst cellX = jf;\n\t\t\tconst cellY = iF;\n\t\t\tconst cdx = cellX.sub(cursorXU);\n\t\t\tconst cdy = cellY.sub(cursorYU);\n\t\t\tconst cursorInf = cdx.mul(cdx).add(cdy.mul(cdy)).negate().div(mouseRadSqU.max(float(1))).exp().mul(mouseActiveU);\n\t\t\tconst newVx = vel.x.add(fx).add(cursorVelXU.mul(cursorInf));\n\t\t\tconst newVy = vel.y.add(fy).add(cursorVelYU.mul(cursorInf));\n\t\t\tvelA.element(idx).assign(vec4(newVx, newVy, vel.z, float(0)));\n\t\t})().compute(count, [256]);\n\t\tconst curlPass = Fn(() => {\n\t\t\tconst idx = instanceIndex;\n\t\t\tconst ji = idx.mod(gs).toInt();\n\t\t\tconst ii = idx.div(gs).toInt();\n\t\t\tconst vL = velA.element(nw(ii, ji, 0, -1));\n\t\t\tconst vR = velA.element(nw(ii, ji, 0, 1));\n\t\t\tconst vU = velA.element(nw(ii, ji, -1, 0));\n\t\t\tconst vD = velA.element(nw(ii, ji, 1, 0));\n\t\t\tconst curl = vR.y.sub(vL.y).sub(vD.x.sub(vU.x)).mul(float(.5));\n\t\t\tconst vel = velA.element(idx);\n\t\t\tvelA.element(idx).assign(vec4(vel.x, vel.y, curl, float(0)));\n\t\t})().compute(count, [256]);\n\t\tconst vorticityPass = Fn(() => {\n\t\t\tconst idx = instanceIndex;\n\t\t\tconst ji = idx.mod(gs).toInt();\n\t\t\tconst ii = idx.div(gs).toInt();\n\t\t\tconst cL = velA.element(nw(ii, ji, 0, -1)).z.abs();\n\t\t\tconst cR = velA.element(nw(ii, ji, 0, 1)).z.abs();\n\t\t\tconst cU = velA.element(nw(ii, ji, -1, 0)).z.abs();\n\t\t\tconst cD = velA.element(nw(ii, ji, 1, 0)).z.abs();\n\t\t\tconst cc = velA.element(idx).z;\n\t\t\tconst gx = cR.sub(cL).mul(float(.5));\n\t\t\tconst gy = cD.sub(cU).mul(float(.5));\n\t\t\tconst gl = gx.mul(gx).add(gy.mul(gy)).sqrt().max(float(1e-5));\n\t\t\tconst vel = velA.element(idx);\n\t\t\tvelA.element(idx).assign(vec4(vel.x.add(gy.div(gl).mul(cc).mul(curlStrengthU).mul(dtU)), vel.y.add(gx.div(gl).negate().mul(cc).mul(curlStrengthU).mul(dtU)), vel.z, float(0)));\n\t\t})().compute(count, [256]);\n\t\tconst divergencePass = Fn(() => {\n\t\t\tconst idx = instanceIndex;\n\t\t\tconst ji = idx.mod(gs).toInt();\n\t\t\tconst ii = idx.div(gs).toInt();\n\t\t\tconst vL = velA.element(nw(ii, ji, 0, -1)).x;\n\t\t\tconst vR = velA.element(nw(ii, ji, 0, 1)).x;\n\t\t\tconst vU = velA.element(nw(ii, ji, -1, 0)).y;\n\t\t\tconst vD = velA.element(nw(ii, ji, 1, 0)).y;\n\t\t\tconst div$1 = vR.sub(vL).add(vD.sub(vU)).mul(float(.5));\n\t\t\tconst oldP = pressDivBuf.element(idx).x.mul(float(PRESSURE_DISSIPATION));\n\t\t\tpressDivBuf.element(idx).assign(vec4(oldP, div$1, float(0), float(0)));\n\t\t})().compute(count, [256]);\n\t\tconst jacobiPass = Fn(() => {\n\t\t\tconst idx = instanceIndex;\n\t\t\tconst ji = idx.mod(gs).toInt();\n\t\t\tconst ii = idx.div(gs).toInt();\n\t\t\tconst pL = pressDivBuf.element(nw(ii, ji, 0, -1)).x;\n\t\t\tconst pR = pressDivBuf.element(nw(ii, ji, 0, 1)).x;\n\t\t\tconst pU = pressDivBuf.element(nw(ii, ji, -1, 0)).x;\n\t\t\tconst pD = pressDivBuf.element(nw(ii, ji, 1, 0)).x;\n\t\t\tconst div$1 = pressDivBuf.element(idx).y;\n\t\t\tpressDivBuf.element(idx).assign(vec4(pL.add(pR).add(pU).add(pD).sub(div$1).mul(float(.25)), div$1, float(0), float(0)));\n\t\t})().compute(count, [256]);\n\t\tconst gradSubtractPass = Fn(() => {\n\t\t\tconst idx = instanceIndex;\n\t\t\tconst ji = idx.mod(gs).toInt();\n\t\t\tconst ii = idx.div(gs).toInt();\n\t\t\tconst pL = pressDivBuf.element(nw(ii, ji, 0, -1)).x;\n\t\t\tconst pR = pressDivBuf.element(nw(ii, ji, 0, 1)).x;\n\t\t\tconst pU = pressDivBuf.element(nw(ii, ji, -1, 0)).x;\n\t\t\tconst pD = pressDivBuf.element(nw(ii, ji, 1, 0)).x;\n\t\t\tconst vel = velA.element(idx);\n\t\t\tconst vx = vel.x.sub(pR.sub(pL).mul(float(.5)));\n\t\t\tconst vy = vel.y.sub(pD.sub(pU).mul(float(.5)));\n\t\t\tconst maxVel = float(INTERNAL_MAX_VEL);\n\t\t\tconst vLen = vx.mul(vx).add(vy.mul(vy)).sqrt().max(float(1e-6));\n\t\t\tconst capScale = maxVel.div(vLen.max(maxVel));\n\t\t\tvelA.element(idx).assign(vec4(vx.mul(capScale), vy.mul(capScale), vel.z, float(0)));\n\t\t})().compute(count, [256]);\n\t\tconst advectVelPass = Fn(() => {\n\t\t\tconst idx = instanceIndex;\n\t\t\tconst j = idx.mod(gs);\n\t\t\tconst i = idx.div(gs);\n\t\t\tconst vel = velA.element(idx);\n\t\t\tconst srcX = mod(j.toFloat().sub(vel.x.mul(dtU)).add(Nf), Nf);\n\t\t\tconst srcY = mod(i.toFloat().sub(vel.y.mul(dtU)).add(Nf), Nf);\n\t\t\tconst x0 = floor(srcX);\n\t\t\tconst y0 = floor(srcY);\n\t\t\tconst sx = srcX.sub(x0);\n\t\t\tconst sy = srcY.sub(y0);\n\t\t\tconst ix0 = x0.toInt();\n\t\t\tconst iy0 = y0.toInt();\n\t\t\tconst ix1 = ix0.add(int(1)).mod(Ni);\n\t\t\tconst iy1 = iy0.add(int(1)).mod(Ni);\n\t\t\tconst v00 = velA.element(iy0.mul(Ni).add(ix0));\n\t\t\tconst v10 = velA.element(iy0.mul(Ni).add(ix1));\n\t\t\tconst v01 = velA.element(iy1.mul(Ni).add(ix0));\n\t\t\tconst v11 = velA.element(iy1.mul(Ni).add(ix1));\n\t\t\tconst decay = float(1).add(float(VELOCITY_DISSIPATION).mul(dtU));\n\t\t\tvelB.element(idx).assign(vec4(mix(mix(v00.x, v10.x, sx), mix(v01.x, v11.x, sx), sy).div(decay), mix(mix(v00.y, v10.y, sx), mix(v01.y, v11.y, sx), sy).div(decay), float(0), float(0)));\n\t\t})().compute(count, [256]);\n\t\tconst copyVelPass = Fn(() => {\n\t\t\tconst v = velB.element(instanceIndex);\n\t\t\tvelA.element(instanceIndex).assign(vec4(v.x, v.y, float(0), float(0)));\n\t\t})().compute(count, [256]);\n\t\tconst advectDensPass = Fn(() => {\n\t\t\tconst idx = instanceIndex;\n\t\t\tconst j = idx.mod(gs);\n\t\t\tconst i = idx.div(gs);\n\t\t\tconst vel = velA.element(idx);\n\t\t\tconst srcX = mod(j.toFloat().sub(vel.x.mul(dtU)).add(Nf), Nf);\n\t\t\tconst srcY = mod(i.toFloat().sub(vel.y.mul(dtU)).add(Nf), Nf);\n\t\t\tconst x0 = floor(srcX);\n\t\t\tconst y0 = floor(srcY);\n\t\t\tconst sx = srcX.sub(x0);\n\t\t\tconst sy = srcY.sub(y0);\n\t\t\tconst ix0 = x0.toInt();\n\t\t\tconst iy0 = y0.toInt();\n\t\t\tconst ix1 = ix0.add(int(1)).mod(Ni);\n\t\t\tconst iy1 = iy0.add(int(1)).mod(Ni);\n\t\t\tconst d00 = densA.element(iy0.mul(Ni).add(ix0));\n\t\t\tconst d10 = densA.element(iy0.mul(Ni).add(ix1));\n\t\t\tconst d01 = densA.element(iy1.mul(Ni).add(ix0));\n\t\t\tconst d11 = densA.element(iy1.mul(Ni).add(ix1));\n\t\t\tdensB.element(idx).assign(vec4(mix(mix(d00.x, d10.x, sx), mix(d01.x, d11.x, sx), sy), mix(mix(d00.y, d10.y, sx), mix(d01.y, d11.y, sx), sy), float(0), float(0)));\n\t\t})().compute(count, [256]);\n\t\tconst copyDensPass = Fn(() => {\n\t\t\tconst d = densB.element(instanceIndex);\n\t\t\tdensA.element(instanceIndex).assign(vec4(d.x, d.y, float(0), float(0)));\n\t\t})().compute(count, [256]);\n\t\tconst colorRestorePass = Fn(() => {\n\t\t\tconst idx = instanceIndex;\n\t\t\tconst jf = idx.mod(gs).toFloat();\n\t\t\tconst iF = idx.div(gs).toFloat();\n\t\t\tconst sdx2 = fract(sin(seedU.mul(float(37.31))).mul(float(43758.5453))).mul(float(97));\n\t\t\tconst sdy2 = fract(sin(seedU.mul(float(83.17))).mul(float(43758.5453))).mul(float(97));\n\t\t\tconst refRaw = fbm(jf.div(Nf).mul(float(3)).add(sdx2), iF.div(Nf).mul(float(3)).add(sdy2));\n\t\t\tconst invBlend = float(1).sub(blendingU);\n\t\t\tconst contrastBoost = float(1).add(invBlend.mul(float(5)));\n\t\t\tconst refBoosted = refRaw.sub(float(.5)).mul(contrastBoost).add(float(.5)).clamp(float(0), float(1));\n\t\t\tconst cell = densA.element(idx);\n\t\t\tconst rateMult = float(1).add(invBlend.mul(float(2.5)));\n\t\t\tconst blendRate = dtU.mul(float(.5)).mul(rateMult).min(float(.3));\n\t\t\tdensA.element(idx).assign(vec4(cell.x, mix(cell.y, refBoosted, blendRate), float(0), float(0)));\n\t\t})().compute(count, [256]);\n\t\tconst outputPass = Fn(() => {\n\t\t\tconst idx = instanceIndex;\n\t\t\tconst j = idx.mod(gs);\n\t\t\tconst i = idx.div(gs);\n\t\t\tconst d = densA.element(idx);\n\t\t\ttextureStore(outTexNode, uvec2(j, i), vec4(d.x, d.y, float(0), float(0))).toWriteOnly();\n\t\t})().compute(count, [256]);\n\t\tlet lastTime = Date.now();\n\t\tlet elapsed = 0;\n\t\tlet prevMx = .5, prevMy = .5;\n\t\tlet lastSeed = -1;\n\t\tlet initialized = false;\n\t\treturn {\n\t\t\toutputs: { fogTexture: outTex },\n\t\t\tgetComputeNodes: (params) => {\n\t\t\t\tconst now = Date.now();\n\t\t\t\tconst rawDt = Math.min((now - lastTime) / 1e3, .033);\n\t\t\t\tlastTime = now;\n\t\t\t\tif (rawDt < .001) return null;\n\t\t\t\tconst getNum = (key, fallback) => {\n\t\t\t\t\tconst def = uniforms[key];\n\t\t\t\t\tif (!def) return fallback;\n\t\t\t\t\tif (typeof def.getCpuValue === \"function\") {\n\t\t\t\t\t\tconst v$1 = def.getCpuValue();\n\t\t\t\t\t\treturn typeof v$1 === \"number\" ? v$1 : fallback;\n\t\t\t\t\t}\n\t\t\t\t\tconst v = def.uniform?.value;\n\t\t\t\t\treturn typeof v === \"number\" ? v : fallback;\n\t\t\t\t};\n\t\t\t\tconst dt = rawDt * getNum(\"speed\", 1);\n\t\t\t\telapsed += rawDt;\n\t\t\t\tconst seed = Number(uniforms.seed.uniform.value ?? 0);\n\t\t\t\tif (!initialized || seed !== lastSeed) {\n\t\t\t\t\tinitialized = true;\n\t\t\t\t\tlastSeed = seed;\n\t\t\t\t\tseedU.value = seed;\n\t\t\t\t\tconst warmDt = .05;\n\t\t\t\t\tturbulenceU.value = getNum(\"turbulence\", 1);\n\t\t\t\t\tcurlStrengthU.value = getNum(\"detail\", 15);\n\t\t\t\t\tblendingU.value = getNum(\"blending\", .3);\n\t\t\t\t\tdtU.value = warmDt;\n\t\t\t\t\trenderer.compute(initPass);\n\t\t\t\t\tlet warmTime = Math.random() * 60;\n\t\t\t\t\tfor (let w = 0; w < 100; w++) {\n\t\t\t\t\t\ttimeU.value = warmTime;\n\t\t\t\t\t\twarmTime += warmDt;\n\t\t\t\t\t\trenderer.compute(forcePass);\n\t\t\t\t\t\trenderer.compute(curlPass);\n\t\t\t\t\t\trenderer.compute(vorticityPass);\n\t\t\t\t\t\trenderer.compute(divergencePass);\n\t\t\t\t\t\tfor (let iter = 0; iter < 10; iter++) renderer.compute(jacobiPass);\n\t\t\t\t\t\trenderer.compute(gradSubtractPass);\n\t\t\t\t\t\trenderer.compute(advectVelPass);\n\t\t\t\t\t\trenderer.compute(copyVelPass);\n\t\t\t\t\t\trenderer.compute(advectDensPass);\n\t\t\t\t\t\trenderer.compute(copyDensPass);\n\t\t\t\t\t\trenderer.compute(colorRestorePass);\n\t\t\t\t\t}\n\t\t\t\t\telapsed = warmTime;\n\t\t\t\t}\n\t\t\t\tdtU.value = dt;\n\t\t\t\ttimeU.value = elapsed;\n\t\t\t\tturbulenceU.value = getNum(\"turbulence\", 1);\n\t\t\t\tcurlStrengthU.value = getNum(\"detail\", 15);\n\t\t\t\tblendingU.value = getNum(\"blending\", .3);\n\t\t\t\tconst mouseInf = getNum(\"mouseInfluence\", .1);\n\t\t\t\tconst mouseRad = getNum(\"mouseRadius\", .1) * GRID_GPU;\n\t\t\t\tconst mx = params?.pointer?.x ?? prevMx;\n\t\t\t\tconst my = params?.pointer?.y ?? prevMy;\n\t\t\t\tconst mdx = mx - prevMx, mdy = my - prevMy;\n\t\t\t\tprevMx = mx;\n\t\t\t\tprevMy = my;\n\t\t\t\tconst cspeed = Math.sqrt(mdx * mdx + mdy * mdy);\n\t\t\t\tmouseRadSqU.value = mouseRad * mouseRad;\n\t\t\t\tif (cspeed > 5e-4 && mouseInf > 0) {\n\t\t\t\t\tcursorXU.value = mx * GRID_GPU;\n\t\t\t\t\tcursorYU.value = my * GRID_GPU;\n\t\t\t\t\tcursorVelXU.value = mdx * GRID_GPU * 15 * mouseInf;\n\t\t\t\t\tcursorVelYU.value = mdy * GRID_GPU * 15 * mouseInf;\n\t\t\t\t\tmouseActiveU.value = 1;\n\t\t\t\t} else mouseActiveU.value = 0;\n\t\t\t\trenderer.compute(forcePass);\n\t\t\t\trenderer.compute(curlPass);\n\t\t\t\trenderer.compute(vorticityPass);\n\t\t\t\trenderer.compute(divergencePass);\n\t\t\t\tfor (let iter = 0; iter < JACOBI_ITERS; iter++) renderer.compute(jacobiPass);\n\t\t\t\trenderer.compute(gradSubtractPass);\n\t\t\t\trenderer.compute(advectVelPass);\n\t\t\t\trenderer.compute(copyVelPass);\n\t\t\t\trenderer.compute(advectDensPass);\n\t\t\t\trenderer.compute(copyDensPass);\n\t\t\t\trenderer.compute(colorRestorePass);\n\t\t\t\treturn [outputPass];\n\t\t\t}\n\t\t};\n\t},\n\tfragmentNode: ({ uniforms, onBeforeRender, onCleanup, computeOutputs }) => {\n\t\tlet fogField;\n\t\tconst N = computeOutputs?.fogTexture ? GRID_GPU : GRID_CPU;\n\t\tif (computeOutputs?.fogTexture) fogField = texture(computeOutputs.fogTexture);\n\t\telse {\n\t\t\tconst cpuN = GRID_CPU;\n\t\t\tconst cells = cpuN * cpuN;\n\t\t\tconst vx = new Float32Array(cells), vy = new Float32Array(cells);\n\t\t\tconst vtx = new Float32Array(cells), vty = new Float32Array(cells);\n\t\t\tconst den = new Float32Array(cells), cv = new Float32Array(cells);\n\t\t\tconst dtmp = new Float32Array(cells), ctmp = new Float32Array(cells);\n\t\t\tconst pres = new Float32Array(cells), divg = new Float32Array(cells);\n\t\t\tconst curlArr = new Float32Array(cells);\n\t\t\tconst texData = new Float32Array(cells * 4);\n\t\t\tconst fogTex = new DataTexture(texData, cpuN, cpuN, RGBAFormat, FloatType);\n\t\t\tfogTex.magFilter = LinearFilter$1;\n\t\t\tfogTex.minFilter = LinearFilter$1;\n\t\t\tfogTex.needsUpdate = true;\n\t\t\tfogField = texture(fogTex);\n\t\t\tconst hashF = (px$1, py) => {\n\t\t\t\tconst s = Math.sin(px$1 * 127.1 + py * 311.7) * 43758.5453;\n\t\t\t\treturn s - Math.floor(s);\n\t\t\t};\n\t\t\tconst valueNoiseCPU = (nx, ny) => {\n\t\t\t\tconst ix = Math.floor(nx), iy = Math.floor(ny);\n\t\t\t\tconst fx = nx - ix, fy = ny - iy;\n\t\t\t\tconst sx = fx * fx * (3 - 2 * fx), sy = fy * fy * (3 - 2 * fy);\n\t\t\t\treturn (1 - sy) * ((1 - sx) * hashF(ix, iy) + sx * hashF(ix + 1, iy)) + sy * ((1 - sx) * hashF(ix, iy + 1) + sx * hashF(ix + 1, iy + 1));\n\t\t\t};\n\t\t\tconst fbmCPU = (nx, ny) => valueNoiseCPU(nx, ny) * .5 + valueNoiseCPU(nx * 2 + 5.37, ny * 2 + 9.13) * .3 + valueNoiseCPU(nx * 4 + 1.79, ny * 4 + 3.51) * .2;\n\t\t\tconst cpuSeedOffset = (seed) => {\n\t\t\t\tconst sx2 = (x) => {\n\t\t\t\t\tconst s = Math.sin(x) * 43758.5453;\n\t\t\t\t\treturn s - Math.floor(s);\n\t\t\t\t};\n\t\t\t\treturn {\n\t\t\t\t\tsdx: sx2(seed * 37.31) * 97,\n\t\t\t\t\tsdy: sx2(seed * 83.17) * 97\n\t\t\t\t};\n\t\t\t};\n\t\t\tconst cpuRefColorVar = (j, i, seed) => {\n\t\t\t\tconst { sdx, sdy } = cpuSeedOffset(seed);\n\t\t\t\tconst nx = (j + .5) / cpuN * 3 + sdx;\n\t\t\t\tconst ny = (i + .5) / cpuN * 3 + sdy;\n\t\t\t\treturn Math.max(0, Math.min(1, fbmCPU(nx, ny)));\n\t\t\t};\n\t\t\tconst initCPU = (seed) => {\n\t\t\t\tvx.fill(0);\n\t\t\t\tvy.fill(0);\n\t\t\t\tconst { sdx, sdy } = cpuSeedOffset(seed);\n\t\t\t\tfor (let i = 0; i < cpuN; i++) for (let j = 0; j < cpuN; j++) {\n\t\t\t\t\tconst idx = i * cpuN + j;\n\t\t\t\t\tconst nx = (j + .5) / cpuN * 3 + sdx;\n\t\t\t\t\tconst ny = (i + .5) / cpuN * 3 + sdy;\n\t\t\t\t\tden[idx] = Math.max(.15, Math.min(.9, fbmCPU(nx + 31.7, ny + 53.3) * .75 + .25));\n\t\t\t\t\tcv[idx] = Math.max(0, Math.min(1, fbmCPU(nx, ny)));\n\t\t\t\t}\n\t\t\t};\n\t\t\tlet lt = Date.now(), elapsed = 0;\n\t\t\tlet prevMx = .5, prevMy = .5, lastSeed = -1;\n\t\t\tconst safeWrap = (x) => (x % cpuN + cpuN) % cpuN;\n\t\t\tconst blWrap = (f, fx, fy) => {\n\t\t\t\tconst sx = (fx % cpuN + cpuN) % cpuN;\n\t\t\t\tconst sy = (fy % cpuN + cpuN) % cpuN;\n\t\t\t\tconst x0 = Math.floor(sx) % cpuN, y0 = Math.floor(sy) % cpuN;\n\t\t\t\tconst x1 = (x0 + 1) % cpuN, y1 = (y0 + 1) % cpuN;\n\t\t\t\tconst tx = sx - x0, ty = sy - y0;\n\t\t\t\treturn (1 - tx) * (1 - ty) * f[y0 * cpuN + x0] + tx * (1 - ty) * f[y0 * cpuN + x1] + (1 - tx) * ty * f[y1 * cpuN + x0] + tx * ty * f[y1 * cpuN + x1];\n\t\t\t};\n\t\t\tconst nw2 = (i, j, di, dj) => safeWrap(i + di) * cpuN + safeWrap(j + dj);\n\t\t\tconst cpuGetNum = (key, fallback) => {\n\t\t\t\tconst def = uniforms[key];\n\t\t\t\tif (!def) return fallback;\n\t\t\t\tif (typeof def.getCpuValue === \"function\") {\n\t\t\t\t\tconst v$1 = def.getCpuValue();\n\t\t\t\t\treturn typeof v$1 === \"number\" ? v$1 : fallback;\n\t\t\t\t}\n\t\t\t\tconst v = def.uniform?.value;\n\t\t\t\treturn typeof v === \"number\" ? v : fallback;\n\t\t\t};\n\t\t\tonBeforeRender(({ pointer }) => {\n\t\t\t\tconst now = Date.now();\n\t\t\t\tconst rawDt = Math.min((now - lt) / 1e3, .033);\n\t\t\t\tlt = now;\n\t\t\t\tif (rawDt < .001) return;\n\t\t\t\tconst seed = Number(uniforms.seed.uniform.value ?? 0);\n\t\t\t\tif (seed !== lastSeed) {\n\t\t\t\t\tlastSeed = seed;\n\t\t\t\t\tinitCPU(seed);\n\t\t\t\t\tconst wTurb = cpuGetNum(\"turbulence\", 1);\n\t\t\t\t\tconst wInvBlend = 1 - cpuGetNum(\"blending\", .3);\n\t\t\t\t\tconst wBoost = 1 + wInvBlend * 5;\n\t\t\t\t\tconst wRateMult = 1 + wInvBlend * 2.5;\n\t\t\t\t\tconst wDt = .05;\n\t\t\t\t\tlet wt = Math.random() * 60;\n\t\t\t\t\tconst wMaxVel = cpuN * .6;\n\t\t\t\t\tfor (let w = 0; w < 60; w++) {\n\t\t\t\t\t\tconst tau2 = Math.PI * 2;\n\t\t\t\t\t\tfor (let i = 0; i < cpuN; i++) for (let j = 0; j < cpuN; j++) {\n\t\t\t\t\t\t\tconst idx = i * cpuN + j;\n\t\t\t\t\t\t\tconst x = (j + .5) / cpuN * tau2, y = (i + .5) / cpuN * tau2;\n\t\t\t\t\t\t\tvx[idx] += Math.sin(2 * x + wt * .31) * Math.cos(1.5 * y + wt * .23) * wTurb * cpuN * .04 * wDt;\n\t\t\t\t\t\t\tvy[idx] += Math.cos(1.5 * x + wt * .27) * Math.sin(2 * y + wt * .19) * wTurb * cpuN * .04 * wDt;\n\t\t\t\t\t\t\tconst vl = Math.sqrt(vx[idx] * vx[idx] + vy[idx] * vy[idx]);\n\t\t\t\t\t\t\tif (vl > wMaxVel) {\n\t\t\t\t\t\t\t\tvx[idx] *= wMaxVel / vl;\n\t\t\t\t\t\t\t\tvy[idx] *= wMaxVel / vl;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tfor (let i = 0; i < cpuN; i++) for (let j = 0; j < cpuN; j++) {\n\t\t\t\t\t\t\tconst idx = i * cpuN + j;\n\t\t\t\t\t\t\tdtmp[idx] = blWrap(den, j - vx[idx] * wDt, i - vy[idx] * wDt);\n\t\t\t\t\t\t\tctmp[idx] = blWrap(cv, j - vx[idx] * wDt, i - vy[idx] * wDt);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tden.set(dtmp);\n\t\t\t\t\t\tcv.set(ctmp);\n\t\t\t\t\t\tconst br = Math.min(.3, wDt * .5 * wRateMult);\n\t\t\t\t\t\tfor (let i2 = 0; i2 < cpuN; i2++) for (let j2 = 0; j2 < cpuN; j2++) {\n\t\t\t\t\t\t\tconst refRaw = cpuRefColorVar(j2, i2, seed);\n\t\t\t\t\t\t\tconst refBoosted = Math.max(0, Math.min(1, (refRaw - .5) * wBoost + .5));\n\t\t\t\t\t\t\tcv[i2 * cpuN + j2] = cv[i2 * cpuN + j2] * (1 - br) + refBoosted * br;\n\t\t\t\t\t\t}\n\t\t\t\t\t\twt += wDt;\n\t\t\t\t\t}\n\t\t\t\t\telapsed = wt;\n\t\t\t\t}\n\t\t\t\tconst dt = rawDt * cpuGetNum(\"speed\", 1);\n\t\t\t\telapsed += rawDt;\n\t\t\t\tconst t = elapsed;\n\t\t\t\tconst turb = cpuGetNum(\"turbulence\", 1);\n\t\t\t\tconst curl = cpuGetNum(\"detail\", 15);\n\t\t\t\tconst blending = cpuGetNum(\"blending\", .3);\n\t\t\t\tconst mi = cpuGetNum(\"mouseInfluence\", .1);\n\t\t\t\tconst mr = cpuGetNum(\"mouseRadius\", .1) * cpuN;\n\t\t\t\tconst mx = pointer?.x ?? prevMx, my = pointer?.y ?? prevMy;\n\t\t\t\tconst mdx = mx - prevMx, mdy = my - prevMy;\n\t\t\t\tprevMx = mx;\n\t\t\t\tprevMy = my;\n\t\t\t\tconst cActive = Math.sqrt(mdx * mdx + mdy * mdy) > 5e-4 && mi > 0;\n\t\t\t\tconst maxVel = cpuN * .6;\n\t\t\t\tconst tau = Math.PI * 2;\n\t\t\t\tfor (let i = 0; i < cpuN; i++) for (let j = 0; j < cpuN; j++) {\n\t\t\t\t\tconst idx = i * cpuN + j;\n\t\t\t\t\tconst x = (j + .5) / cpuN * tau, y = (i + .5) / cpuN * tau;\n\t\t\t\t\tconst fx = Math.sin(2 * x + t * .31) * Math.cos(1.5 * y + t * .23) * turb * cpuN * .04 * dt;\n\t\t\t\t\tconst fy = Math.cos(1.5 * x + t * .27) * Math.sin(2 * y + t * .19) * turb * cpuN * .04 * dt;\n\t\t\t\t\tlet cvxF = 0, cvyF = 0;\n\t\t\t\t\tif (cActive) {\n\t\t\t\t\t\tconst cdx = j + .5 - mx * cpuN, cdy = i + .5 - my * cpuN;\n\t\t\t\t\t\tconst cinf = Math.exp(-(cdx * cdx + cdy * cdy) / Math.max(1, mr * mr));\n\t\t\t\t\t\tcvxF = mdx * cpuN * 15 * mi * cinf;\n\t\t\t\t\t\tcvyF = mdy * cpuN * 15 * mi * cinf;\n\t\t\t\t\t}\n\t\t\t\t\tvx[idx] += fx + cvxF;\n\t\t\t\t\tvy[idx] += fy + cvyF;\n\t\t\t\t}\n\t\t\t\tif (curl > 0) {\n\t\t\t\t\tfor (let i = 0; i < cpuN; i++) for (let j = 0; j < cpuN; j++) curlArr[i * cpuN + j] = .5 * (vy[nw2(i, j, 0, 1)] - vy[nw2(i, j, 0, -1)] - (vx[nw2(i, j, 1, 0)] - vx[nw2(i, j, -1, 0)]));\n\t\t\t\t\tfor (let i = 0; i < cpuN; i++) for (let j = 0; j < cpuN; j++) {\n\t\t\t\t\t\tconst idx = i * cpuN + j;\n\t\t\t\t\t\tconst gx = .5 * (Math.abs(curlArr[nw2(i, j, 0, 1)]) - Math.abs(curlArr[nw2(i, j, 0, -1)]));\n\t\t\t\t\t\tconst gy = .5 * (Math.abs(curlArr[nw2(i, j, 1, 0)]) - Math.abs(curlArr[nw2(i, j, -1, 0)]));\n\t\t\t\t\t\tconst gl = Math.max(1e-5, Math.sqrt(gx * gx + gy * gy));\n\t\t\t\t\t\tvx[idx] += gy / gl * curlArr[idx] * curl * dt;\n\t\t\t\t\t\tvy[idx] += -(gx / gl) * curlArr[idx] * curl * dt;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfor (let i = 0; i < cpuN; i++) for (let j = 0; j < cpuN; j++) {\n\t\t\t\t\tconst idx = i * cpuN + j;\n\t\t\t\t\tdivg[idx] = .5 * (vx[nw2(i, j, 0, 1)] - vx[nw2(i, j, 0, -1)] + vy[nw2(i, j, 1, 0)] - vy[nw2(i, j, -1, 0)]);\n\t\t\t\t\tpres[idx] *= .8;\n\t\t\t\t}\n\t\t\t\tfor (let it = 0; it < 12; it++) for (let i = 0; i < cpuN; i++) for (let j = 0; j < cpuN; j++) {\n\t\t\t\t\tconst idx = i * cpuN + j;\n\t\t\t\t\tpres[idx] = .25 * (pres[nw2(i, j, 0, -1)] + pres[nw2(i, j, 0, 1)] + pres[nw2(i, j, -1, 0)] + pres[nw2(i, j, 1, 0)] - divg[idx]);\n\t\t\t\t}\n\t\t\t\tfor (let i = 0; i < cpuN; i++) for (let j = 0; j < cpuN; j++) {\n\t\t\t\t\tconst idx = i * cpuN + j;\n\t\t\t\t\tvx[idx] -= .5 * (pres[nw2(i, j, 0, 1)] - pres[nw2(i, j, 0, -1)]);\n\t\t\t\t\tvy[idx] -= .5 * (pres[nw2(i, j, 1, 0)] - pres[nw2(i, j, -1, 0)]);\n\t\t\t\t\tconst vlen = Math.sqrt(vx[idx] * vx[idx] + vy[idx] * vy[idx]);\n\t\t\t\t\tif (vlen > maxVel) {\n\t\t\t\t\t\tvx[idx] *= maxVel / vlen;\n\t\t\t\t\t\tvy[idx] *= maxVel / vlen;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tconst vDecay = 1 + VELOCITY_DISSIPATION * dt;\n\t\t\t\tfor (let i = 0; i < cpuN; i++) for (let j = 0; j < cpuN; j++) {\n\t\t\t\t\tconst idx = i * cpuN + j;\n\t\t\t\t\tvtx[idx] = blWrap(vx, j - vx[idx] * dt, i - vy[idx] * dt) / vDecay;\n\t\t\t\t\tvty[idx] = blWrap(vy, j - vx[idx] * dt, i - vy[idx] * dt) / vDecay;\n\t\t\t\t}\n\t\t\t\tvx.set(vtx);\n\t\t\t\tvy.set(vty);\n\t\t\t\tfor (let i = 0; i < cpuN; i++) for (let j = 0; j < cpuN; j++) {\n\t\t\t\t\tconst idx = i * cpuN + j;\n\t\t\t\t\tdtmp[idx] = blWrap(den, j - vx[idx] * dt, i - vy[idx] * dt);\n\t\t\t\t\tctmp[idx] = blWrap(cv, j - vx[idx] * dt, i - vy[idx] * dt);\n\t\t\t\t}\n\t\t\t\tden.set(dtmp);\n\t\t\t\tcv.set(ctmp);\n\t\t\t\tconst invBlend = 1 - blending;\n\t\t\t\tconst contrastBoost = 1 + invBlend * 5;\n\t\t\t\tconst rateMult = 1 + invBlend * 2.5;\n\t\t\t\tconst blendRate = Math.min(.3, dt * .5 * rateMult);\n\t\t\t\tconst seed2 = Number(uniforms.seed.uniform.value ?? 0);\n\t\t\t\tfor (let i = 0; i < cpuN; i++) for (let j = 0; j < cpuN; j++) {\n\t\t\t\t\tconst idx = i * cpuN + j;\n\t\t\t\t\tconst refRaw = cpuRefColorVar(j, i, seed2);\n\t\t\t\t\tconst refBoosted = Math.max(0, Math.min(1, (refRaw - .5) * contrastBoost + .5));\n\t\t\t\t\tcv[idx] = cv[idx] * (1 - blendRate) + refBoosted * blendRate;\n\t\t\t\t}\n\t\t\t\tfor (let i = 0; i < cells; i++) {\n\t\t\t\t\ttexData[i * 4] = den[i];\n\t\t\t\t\ttexData[i * 4 + 1] = cv[i];\n\t\t\t\t}\n\t\t\t\tfogTex.needsUpdate = true;\n\t\t\t});\n\t\t\tonCleanup(() => {\n\t\t\t\tfogTex.dispose();\n\t\t\t});\n\t\t}\n\t\tconst px = float(1 / N);\n\t\tconst s0 = fogField.sample(screenUV);\n\t\tconst s1 = fogField.sample(screenUV.add(vec2(px, float(0))));\n\t\tconst s2 = fogField.sample(screenUV.add(vec2(float(0), px)));\n\t\tconst s3 = fogField.sample(screenUV.add(vec2(px.negate(), float(0))));\n\t\tconst s4 = fogField.sample(screenUV.add(vec2(float(0), px.negate())));\n\t\tconst fogDensity = s0.x.mul(float(.5)).add(s1.x.mul(float(.125))).add(s2.x.mul(float(.125))).add(s3.x.mul(float(.125))).add(s4.x.mul(float(.125)));\n\t\tconst colorVar = s0.y.mul(float(.5)).add(s1.y.mul(float(.125))).add(s2.y.mul(float(.125))).add(s3.y.mul(float(.125))).add(s4.y.mul(float(.125)));\n\t\tconst fogColor = mixColors(uniforms.colorA.uniform, uniforms.colorB.uniform, colorVar, uniforms.colorSpace.uniform.value);\n\t\treturn vec4(fogColor.x, fogColor.y, fogColor.z, fogColor.w.mul(fogDensity));\n\t}\n};\nvar Fog_default = componentDefinition;\nexport { componentDefinition as n, Fog_default as t };\n","import { c as transformEdges, l as transformPosition } from \"./transformations-CJcUeZIC.js\";\nimport { t as createAnimatedTime } from \"./time-DUqSFWvT.js\";\nimport { Break, Fn, If, Loop, abs, atan, clamp, convertToTexture, cos, dot, float, fract, max, min, mix, normalize, pow, screenUV, sin, uniform, vec2, vec3, vec4, viewportSize } from \"three/tsl\";\nfunction applyDistortion3D(childTexture, shape, uniforms, march = {}) {\n\tconst steps = march.steps ?? 96;\n\tconst stepCap = march.stepCap ?? .15;\n\tconst hitEps = march.hitEps ?? .001;\n\tconst maxDistance = march.maxDistance ?? 20;\n\tconst aspect = viewportSize.x.div(viewportSize.y);\n\tconst cx = uniforms.center.uniform.x;\n\tconst cy = uniforms.center.uniform.y.oneMinus();\n\tconst camDist = float(8).sub(uniforms.zoom.uniform.mul(.06));\n\tconst glossAmt = uniforms.glossiness.uniform.mul(.005);\n\tconst lightAmt = uniforms.lighting.uniform.mul(.005);\n\tconst uvMode = uniforms.uvMode.uniform;\n\tconst applyUVMode = (uv$1) => {\n\t\tconst stretched = clamp(uv$1, 0, 1);\n\t\tconst mirrored = abs(fract(uv$1.mul(.5)).mul(2).sub(1));\n\t\tconst wrapped = fract(uv$1);\n\t\tconst transparentVisible = uv$1.x.lessThan(0).or(uv$1.x.greaterThan(1)).or(uv$1.y.lessThan(0)).or(uv$1.y.greaterThan(1)).select(float(0), float(1));\n\t\treturn {\n\t\t\tuv: uvMode.lessThan(float(.5)).select(stretched, uvMode.lessThan(float(1.5)).select(uv$1, uvMode.lessThan(float(2.5)).select(mirrored, wrapped))),\n\t\t\tvisible: uvMode.lessThan(float(.5)).select(float(1), uvMode.lessThan(float(1.5)).select(transparentVisible, float(1)))\n\t\t};\n\t};\n\tconst calcNormal = Fn(([p]) => {\n\t\tconst h = float(.001);\n\t\tconst hn = h.negate();\n\t\tconst k0 = shape.sdf(p.add(vec3(h, hn, hn)));\n\t\tconst k1 = shape.sdf(p.add(vec3(hn, hn, h)));\n\t\tconst k2 = shape.sdf(p.add(vec3(hn, h, hn)));\n\t\tconst k3 = shape.sdf(p.add(vec3(h, h, h)));\n\t\treturn normalize(vec3(1, -1, -1).mul(k0).add(vec3(-1, -1, 1).mul(k1)).add(vec3(-1, 1, -1).mul(k2)).add(vec3(1, 1, 1).mul(k3)));\n\t});\n\treturn Fn(() => {\n\t\tconst uv$1 = screenUV;\n\t\tconst ro = vec3(0, 0, camDist.negate());\n\t\tconst focal = float(1.5);\n\t\tconst rd = normalize(vec3(uv$1.x.sub(cx).mul(aspect), uv$1.y.sub(cy), focal));\n\t\tconst rayT = float(0).toVar();\n\t\tconst hit = float(0).toVar();\n\t\tLoop(steps, () => {\n\t\t\tconst p = ro.add(rd.mul(rayT));\n\t\t\tconst d = shape.sdf(p);\n\t\t\tIf(d.lessThan(float(hitEps)), () => {\n\t\t\t\thit.assign(1);\n\t\t\t\tBreak();\n\t\t\t});\n\t\t\tIf(rayT.greaterThan(maxDistance), () => {\n\t\t\t\tBreak();\n\t\t\t});\n\t\t\trayT.addAssign(min(d, float(stepCap)));\n\t\t});\n\t\tconst hitPos = ro.add(rd.mul(rayT));\n\t\tconst normal = calcNormal(hitPos);\n\t\tconst { uv: finalUV, visible: uvVisible } = applyUVMode(shape.surfaceUV(hitPos, normal));\n\t\tconst surfaceColor = childTexture.sample(finalUV);\n\t\tconst lightDir = normalize(vec3(.4, .7, -.6));\n\t\tconst viewDir = rd.negate();\n\t\tconst diffuse = clamp(dot(normal, lightDir), 0, 1);\n\t\tconst halfVec = normalize(lightDir.add(viewDir));\n\t\tconst specPow = glossAmt.mul(256).add(4);\n\t\tconst specular = pow(clamp(dot(normal, halfVec), 0, 1), specPow).mul(glossAmt).mul(1.5);\n\t\tconst nDotV = clamp(dot(normal, viewDir), 0, 1);\n\t\tconst fresnel = pow(float(1).sub(nDotV), float(3)).mul(.5).mul(glossAmt);\n\t\tconst ambient = float(.35);\n\t\tconst lit = mix(float(1), ambient.add(diffuse.mul(.65)).add(specular).add(fresnel), lightAmt);\n\t\treturn vec4(clamp(surfaceColor.rgb.mul(clamp(lit, 0, 3)), 0, 1), hit.mul(surfaceColor.a).mul(uvVisible));\n\t})();\n}\nvar TWIST_SPEED = .08;\nfunction createRibbonShape(params) {\n\tconst { angleRad, twistAmt, halfW, ribbonWidth, ribbonThickness, twistPhase, t } = params;\n\tconst evalCrossSection = (rpy, pz, xPos) => {\n\t\tconst twistAngle = xPos.mul(twistAmt).add(twistPhase).add(t.mul(TWIST_SPEED));\n\t\tconst ca = cos(twistAngle);\n\t\tconst sa = sin(twistAngle);\n\t\tconst localU = rpy.mul(ca).add(pz.mul(sa));\n\t\tconst localV = rpy.mul(sa).negate().add(pz.mul(ca));\n\t\treturn vec2(max(abs(localU).sub(halfW), 0), localV).length().sub(ribbonThickness);\n\t};\n\tconst getRotated = (p) => {\n\t\tconst cosA = cos(angleRad);\n\t\tconst sinA = sin(angleRad);\n\t\treturn {\n\t\t\trpx: p.x.mul(cosA).add(p.y.mul(sinA)),\n\t\t\trpy: p.x.mul(sinA).negate().add(p.y.mul(cosA))\n\t\t};\n\t};\n\tconst lipschitz = max(halfW.mul(twistAmt), float(1));\n\treturn {\n\t\tsdf: Fn(([p]) => {\n\t\t\tconst { rpx, rpy } = getRotated(p);\n\t\t\treturn evalCrossSection(rpy, p.z, rpx).div(lipschitz);\n\t\t}),\n\t\tsurfaceUV: Fn(([hitPos, _normal]) => {\n\t\t\tconst { rpx, rpy } = getRotated(hitPos);\n\t\t\tconst twistAngle = rpx.mul(twistAmt).add(twistPhase).add(t.mul(TWIST_SPEED));\n\t\t\tconst ca = cos(twistAngle);\n\t\t\tconst sa = sin(twistAngle);\n\t\t\tconst localUClamped = max(min(rpy.mul(ca).add(hitPos.z.mul(sa)), halfW), halfW.negate());\n\t\t\treturn vec2(rpx.mul(.15).add(.5), localUClamped.div(ribbonWidth).add(.5));\n\t\t})\n\t};\n}\nconst rotateX = Fn(([p, a]) => {\n\tconst c = cos(a), s = sin(a);\n\treturn vec3(p.x, p.y.mul(c).sub(p.z.mul(s)), p.y.mul(s).add(p.z.mul(c)));\n});\nconst rotateY = Fn(([p, a]) => {\n\tconst c = cos(a), s = sin(a);\n\treturn vec3(p.x.mul(c).add(p.z.mul(s)), p.y, p.x.mul(s).negate().add(p.z.mul(c)));\n});\nconst rotateZ = Fn(([p, a]) => {\n\tconst c = cos(a), s = sin(a);\n\treturn vec3(p.x.mul(c).sub(p.y.mul(s)), p.x.mul(s).add(p.y.mul(c)), p.z);\n});\nconst createApplyRot = (rotX_u, rotY_u, rotZ_u, spinX, spinY, spinZ) => (p) => rotateZ(rotateX(rotateY(p, rotY_u.add(spinY)), rotX_u.add(spinX)), rotZ_u.add(spinZ));\nfunction createTorusShape(u) {\n\tconst { outerRadius, tubeRadius, rotX, rotY, rotZ, spinAngleX, spinAngleY, spinAngleZ } = u;\n\tconst applyRot = createApplyRot(rotX, rotY, rotZ, spinAngleX, spinAngleY, spinAngleZ);\n\treturn {\n\t\tsdf: Fn(([p]) => {\n\t\t\tconst rp = applyRot(p);\n\t\t\treturn vec2(vec2(rp.x, rp.z).length().sub(outerRadius), rp.y).length().sub(tubeRadius);\n\t\t}),\n\t\tsurfaceUV: Fn(([hitPos, _normal]) => {\n\t\t\tconst rp = applyRot(hitPos);\n\t\t\tconst u$1 = atan(rp.z, rp.x).div(Math.PI * 2).add(.5);\n\t\t\tconst ringDist = vec2(rp.x, rp.z).length().sub(outerRadius);\n\t\t\treturn vec2(u$1, atan(rp.y, ringDist).div(Math.PI * 2).add(.5));\n\t\t})\n\t};\n}\nfunction createBoxShape(u) {\n\tconst { halfExtents, rounding, rotX, rotY, rotZ, spinAngleX, spinAngleY, spinAngleZ } = u;\n\tconst applyRot = createApplyRot(rotX, rotY, rotZ, spinAngleX, spinAngleY, spinAngleZ);\n\treturn {\n\t\tsdf: Fn(([p]) => {\n\t\t\tconst rp = applyRot(p);\n\t\t\tconst q = vec3(abs(rp.x), abs(rp.y), abs(rp.z)).sub(halfExtents).add(rounding);\n\t\t\tconst outer = vec3(max(q.x, float(0)), max(q.y, float(0)), max(q.z, float(0))).length();\n\t\t\tconst inner = min(max(q.x, max(q.y, q.z)), float(0));\n\t\t\treturn outer.add(inner).sub(rounding);\n\t\t}),\n\t\tsurfaceUV: Fn(([hitPos, normal]) => {\n\t\t\tconst rp = applyRot(hitPos);\n\t\t\tconst rn = applyRot(normal);\n\t\t\tconst absNorm = vec3(abs(rn.x), abs(rn.y), abs(rn.z));\n\t\t\tconst scaleX = float(.5).div(max(halfExtents.y, halfExtents.z));\n\t\t\tconst scaleY = float(.5).div(max(halfExtents.x, halfExtents.z));\n\t\t\tconst scaleZ = float(.5).div(max(halfExtents.x, halfExtents.y));\n\t\t\tconst uvX = vec2(rp.z, rp.y).mul(scaleX).add(.5);\n\t\t\tconst uvY = vec2(rp.x, rp.z).mul(scaleY).add(.5);\n\t\t\tconst uvZ = vec2(rp.x, rp.y).mul(scaleZ).add(.5);\n\t\t\treturn absNorm.x.greaterThan(absNorm.y).select(absNorm.x.greaterThan(absNorm.z).select(uvX, uvZ), absNorm.y.greaterThan(absNorm.z).select(uvY, uvZ));\n\t\t})\n\t};\n}\nfunction createSphereShape(u) {\n\tconst { radius, rotX, rotY, rotZ, spinAngleX, spinAngleY, spinAngleZ } = u;\n\tconst applyRot = createApplyRot(rotX, rotY, rotZ, spinAngleX, spinAngleY, spinAngleZ);\n\treturn {\n\t\tsdf: Fn(([p]) => {\n\t\t\treturn applyRot(p).length().sub(radius);\n\t\t}),\n\t\tsurfaceUV: Fn(([hitPos, _normal]) => {\n\t\t\tconst n = normalize(applyRot(hitPos));\n\t\t\treturn vec2(atan(n.z, n.x).div(Math.PI * 2).add(.5), n.y.add(1).mul(.5));\n\t\t})\n\t};\n}\nfunction createCapsuleShape(u) {\n\tconst { radius, halfHeight, rotX, rotY, rotZ, spinAngleX, spinAngleY, spinAngleZ } = u;\n\tconst applyRot = createApplyRot(rotX, rotY, rotZ, spinAngleX, spinAngleY, spinAngleZ);\n\treturn {\n\t\tsdf: Fn(([p]) => {\n\t\t\tconst rp = applyRot(p);\n\t\t\tconst clampedY = clamp(rp.y, halfHeight.negate(), halfHeight);\n\t\t\treturn vec3(rp.x, rp.y.sub(clampedY), rp.z).length().sub(radius);\n\t\t}),\n\t\tsurfaceUV: Fn(([hitPos, _normal]) => {\n\t\t\tconst rp = applyRot(hitPos);\n\t\t\tconst u$1 = atan(rp.z, rp.x).div(Math.PI * 2).add(.5);\n\t\t\tconst span = halfHeight.add(radius);\n\t\t\treturn vec2(u$1, clamp(rp.y.div(span).mul(.5).add(.5), float(0), float(1)));\n\t\t})\n\t};\n}\nfunction createMobiusShape(u) {\n\tconst { ringRadius, halfWidth, thickness, rotX, rotY, rotZ, spinAngleX, spinAngleY, spinAngleZ } = u;\n\tconst applyRot = createApplyRot(rotX, rotY, rotZ, spinAngleX, spinAngleY, spinAngleZ);\n\tconst mobiusSDF = (rp) => {\n\t\tconst phi = atan(rp.z, rp.x);\n\t\tconst spine = vec3(cos(phi).mul(ringRadius), float(0), sin(phi).mul(ringRadius));\n\t\tconst d = rp.sub(spine);\n\t\tconst halfPhi = phi.mul(.5);\n\t\tconst ev = vec3(cos(phi).mul(cos(halfPhi)), sin(halfPhi), sin(phi).mul(cos(halfPhi)));\n\t\tconst vProj = dot(d, ev);\n\t\treturn {\n\t\t\tphi,\n\t\t\tvProj,\n\t\t\tdu: max(abs(vProj).sub(halfWidth), float(0)),\n\t\t\tperp: d.sub(ev.mul(vProj))\n\t\t};\n\t};\n\treturn {\n\t\tsdf: Fn(([p]) => {\n\t\t\tconst { du, perp } = mobiusSDF(applyRot(p));\n\t\t\treturn vec2(du, perp.length()).length().sub(thickness);\n\t\t}),\n\t\tsurfaceUV: Fn(([hitPos, _normal]) => {\n\t\t\tconst { phi, vProj } = mobiusSDF(applyRot(hitPos));\n\t\t\treturn vec2(phi.div(Math.PI * 2).add(.5), vProj.div(halfWidth).mul(.5).add(.5));\n\t\t})\n\t};\n}\nconst componentDefinition = {\n\tname: \"Form3D\",\n\tcategory: \"Distortions\",\n\tdescription: \"Wraps child content onto a 3D raymarched shape with lighting.\",\n\trequiresRTT: true,\n\trequiresChild: true,\n\tprops: {\n\t\tshape3d: {\n\t\t\tdefault: JSON.stringify({\n\t\t\t\ttype: \"ribbon\",\n\t\t\t\tangle: 0,\n\t\t\t\ttwist: 50,\n\t\t\t\twidth: 40,\n\t\t\t\tthickness: 20,\n\t\t\t\tseed: 0\n\t\t\t}),\n\t\t\tdescription: \"3D shape and its parameters\",\n\t\t\tui: {\n\t\t\t\ttype: \"shape3d\",\n\t\t\t\tlabel: \"Shape\",\n\t\t\t\tgroup: \"Shape\"\n\t\t\t}\n\t\t},\n\t\tshape3dType: {\n\t\t\tdefault: \"ribbon\",\n\t\t\tcompileTime: true,\n\t\t\tdescription: \"Active shape type — triggers recompile when shape is switched\"\n\t\t},\n\t\tcenter: {\n\t\t\tdefault: {\n\t\t\t\tx: .5,\n\t\t\t\ty: .5\n\t\t\t},\n\t\t\ttransform: transformPosition,\n\t\t\tdescription: \"Center position of the shape on screen\",\n\t\t\tui: {\n\t\t\t\ttype: \"position\",\n\t\t\t\tlabel: \"Center\",\n\t\t\t\tgroup: \"Position\"\n\t\t\t}\n\t\t},\n\t\tzoom: {\n\t\t\tdefault: 50,\n\t\t\tdescription: \"Camera zoom level\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 10,\n\t\t\t\tmax: 200,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Zoom\",\n\t\t\t\tgroup: \"Scene\"\n\t\t\t}\n\t\t},\n\t\tglossiness: {\n\t\t\tdefault: 50,\n\t\t\tdescription: \"Specular highlight intensity and sharpness\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 200,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Glossiness\",\n\t\t\t\tgroup: \"Lighting\"\n\t\t\t}\n\t\t},\n\t\tlighting: {\n\t\t\tdefault: 50,\n\t\t\tdescription: \"Overall intensity of lighting effects\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 200,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Lighting\",\n\t\t\t\tgroup: \"Lighting\"\n\t\t\t}\n\t\t},\n\t\tuvMode: {\n\t\t\tdefault: \"stretch\",\n\t\t\ttransform: transformEdges,\n\t\t\tdescription: \"How to handle UV coordinates at shape boundaries\",\n\t\t\tui: {\n\t\t\t\ttype: \"select\",\n\t\t\t\toptions: [\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Stretch\",\n\t\t\t\t\t\tvalue: \"stretch\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Mirror\",\n\t\t\t\t\t\tvalue: \"mirror\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Wrap\",\n\t\t\t\t\t\tvalue: \"wrap\"\n\t\t\t\t\t}\n\t\t\t\t],\n\t\t\t\tlabel: \"UV Edges\",\n\t\t\t\tgroup: \"Scene\"\n\t\t\t}\n\t\t},\n\t\tspeed: {\n\t\t\tdefault: 1,\n\t\t\tdescription: \"Animation speed — scales all spin rates\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: -10,\n\t\t\t\tmax: 10,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Speed\",\n\t\t\t\tgroup: \"Animation\"\n\t\t\t}\n\t\t}\n\t},\n\tfragmentNode: (params) => {\n\t\tconst { uniforms, childNode, onCleanup, onBeforeRender } = params;\n\t\tif (!childNode) return vec4(0);\n\t\tconst childTexture = convertToTexture(childNode);\n\t\tonCleanup(() => {\n\t\t\tif (childTexture?.renderTarget?.dispose) childTexture.renderTarget.dispose();\n\t\t});\n\t\tconst t = createAnimatedTime(params, uniforms.speed);\n\t\tconst shapeType = uniforms.shape3dType.uniform.value;\n\t\tlet _parseCacheKey = null;\n\t\tlet _parseCacheVal = {};\n\t\tconst parse = (raw) => {\n\t\t\tlet key;\n\t\t\ttry {\n\t\t\t\tkey = typeof raw === \"string\" ? raw : JSON.stringify(raw);\n\t\t\t} catch {\n\t\t\t\tkey = null;\n\t\t\t}\n\t\t\tif (key !== null && key === _parseCacheKey) return _parseCacheVal;\n\t\t\ttry {\n\t\t\t\t_parseCacheVal = JSON.parse(key ?? (typeof raw === \"string\" ? raw : \"{}\"));\n\t\t\t\t_parseCacheKey = key;\n\t\t\t} catch {\n\t\t\t\t_parseCacheVal = {};\n\t\t\t\t_parseCacheKey = null;\n\t\t\t}\n\t\t\treturn _parseCacheVal;\n\t\t};\n\t\tconst cfg0 = parse(uniforms.shape3d.uniform.value);\n\t\tconst DEG = Math.PI / 180;\n\t\tconst TAU_RATE = Math.PI * 2 / 10;\n\t\tconst makeRotSpin = (defaults) => {\n\t\t\tconst u_rotX = uniform((cfg0.rotX ?? defaults.rotX ?? 0) * DEG);\n\t\t\tconst u_rotY = uniform((cfg0.rotY ?? defaults.rotY ?? 0) * DEG);\n\t\t\tconst u_rotZ = uniform((cfg0.rotZ ?? defaults.rotZ ?? 0) * DEG);\n\t\t\tconst u_spinAngleX = uniform(0);\n\t\t\tconst u_spinAngleY = uniform(0);\n\t\t\tconst u_spinAngleZ = uniform(0);\n\t\t\tonBeforeRender(({ deltaTime }) => {\n\t\t\t\tconst cfg = parse(uniforms.shape3d.uniform.value);\n\t\t\t\tconst speed = uniforms.speed.uniform.value;\n\t\t\t\tu_rotX.value = (cfg.rotX ?? defaults.rotX ?? 0) * DEG;\n\t\t\t\tu_rotY.value = (cfg.rotY ?? defaults.rotY ?? 0) * DEG;\n\t\t\t\tu_rotZ.value = (cfg.rotZ ?? defaults.rotZ ?? 0) * DEG;\n\t\t\t\tu_spinAngleX.value += deltaTime * speed * (cfg.spinX ?? defaults.spinX ?? 0) * TAU_RATE;\n\t\t\t\tu_spinAngleY.value += deltaTime * speed * (cfg.spinY ?? defaults.spinY ?? 0) * TAU_RATE;\n\t\t\t\tu_spinAngleZ.value += deltaTime * speed * (cfg.spinZ ?? defaults.spinZ ?? 0) * TAU_RATE;\n\t\t\t});\n\t\t\treturn {\n\t\t\t\tu_rotX,\n\t\t\t\tu_rotY,\n\t\t\t\tu_rotZ,\n\t\t\t\tu_spinAngleX,\n\t\t\t\tu_spinAngleY,\n\t\t\t\tu_spinAngleZ\n\t\t\t};\n\t\t};\n\t\tlet shape;\n\t\tif (shapeType === \"torus\") {\n\t\t\tconst u_outerR = uniform((cfg0.outerRadius ?? 60) * .008 + .1);\n\t\t\tconst u_tubeR = uniform((cfg0.tubeRadius ?? 25) * .006 + .05);\n\t\t\tconst { u_rotX, u_rotY, u_rotZ, u_spinAngleX, u_spinAngleY, u_spinAngleZ } = makeRotSpin({\n\t\t\t\trotX: -90,\n\t\t\t\trotY: 0,\n\t\t\t\trotZ: 0,\n\t\t\t\tspinX: 0,\n\t\t\t\tspinY: .05,\n\t\t\t\tspinZ: 0\n\t\t\t});\n\t\t\tonBeforeRender(() => {\n\t\t\t\tconst cfg = parse(uniforms.shape3d.uniform.value);\n\t\t\t\tu_outerR.value = (cfg.outerRadius ?? 60) * .008 + .1;\n\t\t\t\tu_tubeR.value = (cfg.tubeRadius ?? 25) * .006 + .05;\n\t\t\t});\n\t\t\tshape = createTorusShape({\n\t\t\t\touterRadius: u_outerR,\n\t\t\t\ttubeRadius: u_tubeR,\n\t\t\t\trotX: u_rotX,\n\t\t\t\trotY: u_rotY,\n\t\t\t\trotZ: u_rotZ,\n\t\t\t\tspinAngleX: u_spinAngleX,\n\t\t\t\tspinAngleY: u_spinAngleY,\n\t\t\t\tspinAngleZ: u_spinAngleZ\n\t\t\t});\n\t\t} else if (shapeType === \"box\") {\n\t\t\tconst u_halfX = uniform((cfg0.sizeX ?? 50) * .006);\n\t\t\tconst u_halfY = uniform((cfg0.sizeY ?? 50) * .006);\n\t\t\tconst u_halfZ = uniform((cfg0.sizeZ ?? 50) * .006);\n\t\t\tconst u_rounding = uniform((cfg0.rounding ?? 20) * .001);\n\t\t\tconst { u_rotX, u_rotY, u_rotZ, u_spinAngleX, u_spinAngleY, u_spinAngleZ } = makeRotSpin({\n\t\t\t\trotX: 15,\n\t\t\t\trotY: 0,\n\t\t\t\trotZ: 0,\n\t\t\t\tspinX: 0,\n\t\t\t\tspinY: .1,\n\t\t\t\tspinZ: 0\n\t\t\t});\n\t\t\tonBeforeRender(() => {\n\t\t\t\tconst cfg = parse(uniforms.shape3d.uniform.value);\n\t\t\t\tu_halfX.value = (cfg.sizeX ?? 50) * .006;\n\t\t\t\tu_halfY.value = (cfg.sizeY ?? 50) * .006;\n\t\t\t\tu_halfZ.value = (cfg.sizeZ ?? 50) * .006;\n\t\t\t\tu_rounding.value = (cfg.rounding ?? 20) * .001;\n\t\t\t});\n\t\t\tshape = createBoxShape({\n\t\t\t\thalfExtents: vec3(u_halfX, u_halfY, u_halfZ),\n\t\t\t\trounding: u_rounding,\n\t\t\t\trotX: u_rotX,\n\t\t\t\trotY: u_rotY,\n\t\t\t\trotZ: u_rotZ,\n\t\t\t\tspinAngleX: u_spinAngleX,\n\t\t\t\tspinAngleY: u_spinAngleY,\n\t\t\t\tspinAngleZ: u_spinAngleZ\n\t\t\t});\n\t\t} else if (shapeType === \"sphere\") {\n\t\t\tconst u_radius = uniform((cfg0.radius ?? 60) * .008 + .1);\n\t\t\tconst { u_rotX, u_rotY, u_rotZ, u_spinAngleX, u_spinAngleY, u_spinAngleZ } = makeRotSpin({\n\t\t\t\trotX: 0,\n\t\t\t\trotY: 0,\n\t\t\t\trotZ: 0,\n\t\t\t\tspinX: 0,\n\t\t\t\tspinY: .1,\n\t\t\t\tspinZ: 0\n\t\t\t});\n\t\t\tonBeforeRender(() => {\n\t\t\t\tu_radius.value = (parse(uniforms.shape3d.uniform.value).radius ?? 60) * .008 + .1;\n\t\t\t});\n\t\t\tshape = createSphereShape({\n\t\t\t\tradius: u_radius,\n\t\t\t\trotX: u_rotX,\n\t\t\t\trotY: u_rotY,\n\t\t\t\trotZ: u_rotZ,\n\t\t\t\tspinAngleX: u_spinAngleX,\n\t\t\t\tspinAngleY: u_spinAngleY,\n\t\t\t\tspinAngleZ: u_spinAngleZ\n\t\t\t});\n\t\t} else if (shapeType === \"capsule\") {\n\t\t\tconst u_radius = uniform((cfg0.radius ?? 25) * .006 + .05);\n\t\t\tconst u_halfHeight = uniform((cfg0.height ?? 80) * .005);\n\t\t\tconst { u_rotX, u_rotY, u_rotZ, u_spinAngleX, u_spinAngleY, u_spinAngleZ } = makeRotSpin({\n\t\t\t\trotX: 0,\n\t\t\t\trotY: 0,\n\t\t\t\trotZ: 0,\n\t\t\t\tspinX: 0,\n\t\t\t\tspinY: .1,\n\t\t\t\tspinZ: 0\n\t\t\t});\n\t\t\tonBeforeRender(() => {\n\t\t\t\tconst cfg = parse(uniforms.shape3d.uniform.value);\n\t\t\t\tu_radius.value = (cfg.radius ?? 25) * .006 + .05;\n\t\t\t\tu_halfHeight.value = (cfg.height ?? 80) * .005;\n\t\t\t});\n\t\t\tshape = createCapsuleShape({\n\t\t\t\tradius: u_radius,\n\t\t\t\thalfHeight: u_halfHeight,\n\t\t\t\trotX: u_rotX,\n\t\t\t\trotY: u_rotY,\n\t\t\t\trotZ: u_rotZ,\n\t\t\t\tspinAngleX: u_spinAngleX,\n\t\t\t\tspinAngleY: u_spinAngleY,\n\t\t\t\tspinAngleZ: u_spinAngleZ\n\t\t\t});\n\t\t} else if (shapeType === \"mobius\") {\n\t\t\tconst u_ringRadius = uniform((cfg0.ringRadius ?? 60) * .008 + .1);\n\t\t\tconst u_halfWidth = uniform((cfg0.halfWidth ?? 30) * .005);\n\t\t\tconst u_thickness = uniform((cfg0.thickness ?? 8) * .001 + .005);\n\t\t\tconst { u_rotX, u_rotY, u_rotZ, u_spinAngleX, u_spinAngleY, u_spinAngleZ } = makeRotSpin({\n\t\t\t\trotX: -30,\n\t\t\t\trotY: 0,\n\t\t\t\trotZ: 0,\n\t\t\t\tspinX: 0,\n\t\t\t\tspinY: .05,\n\t\t\t\tspinZ: 0\n\t\t\t});\n\t\t\tonBeforeRender(() => {\n\t\t\t\tconst cfg = parse(uniforms.shape3d.uniform.value);\n\t\t\t\tu_ringRadius.value = (cfg.ringRadius ?? 60) * .008 + .1;\n\t\t\t\tu_halfWidth.value = (cfg.halfWidth ?? 30) * .005;\n\t\t\t\tu_thickness.value = (cfg.thickness ?? 8) * .001 + .005;\n\t\t\t});\n\t\t\tshape = createMobiusShape({\n\t\t\t\tringRadius: u_ringRadius,\n\t\t\t\thalfWidth: u_halfWidth,\n\t\t\t\tthickness: u_thickness,\n\t\t\t\trotX: u_rotX,\n\t\t\t\trotY: u_rotY,\n\t\t\t\trotZ: u_rotZ,\n\t\t\t\tspinAngleX: u_spinAngleX,\n\t\t\t\tspinAngleY: u_spinAngleY,\n\t\t\t\tspinAngleZ: u_spinAngleZ\n\t\t\t});\n\t\t} else {\n\t\t\tconst u_angle = uniform((cfg0.angle ?? 0) * DEG);\n\t\t\tconst u_twist = uniform((cfg0.twist ?? 50) * .03);\n\t\t\tconst u_width = uniform((cfg0.width ?? 40) * .012);\n\t\t\tconst u_thickness = uniform((cfg0.thickness ?? 20) * .001 + .01);\n\t\t\tconst u_seed = uniform(cfg0.seed ?? 0);\n\t\t\tonBeforeRender(() => {\n\t\t\t\tconst cfg = parse(uniforms.shape3d.uniform.value);\n\t\t\t\tu_angle.value = (cfg.angle ?? 0) * DEG;\n\t\t\t\tu_twist.value = (cfg.twist ?? 50) * .03;\n\t\t\t\tu_width.value = (cfg.width ?? 40) * .012;\n\t\t\t\tu_thickness.value = (cfg.thickness ?? 20) * .001 + .01;\n\t\t\t\tu_seed.value = cfg.seed ?? 0;\n\t\t\t});\n\t\t\tshape = createRibbonShape({\n\t\t\t\tangleRad: u_angle,\n\t\t\t\ttwistAmt: u_twist,\n\t\t\t\thalfW: u_width.mul(.5),\n\t\t\t\tribbonWidth: u_width,\n\t\t\t\tribbonThickness: u_thickness,\n\t\t\t\ttwistPhase: u_seed,\n\t\t\t\tt\n\t\t\t});\n\t\t}\n\t\treturn applyDistortion3D(childTexture, shape, uniforms, {\n\t\t\tribbon: {\n\t\t\t\tsteps: 128,\n\t\t\t\tstepCap: .08,\n\t\t\t\thitEps: .002\n\t\t\t},\n\t\t\ttorus: {\n\t\t\t\tsteps: 96,\n\t\t\t\tstepCap: .5,\n\t\t\t\thitEps: .001\n\t\t\t},\n\t\t\tbox: {\n\t\t\t\tsteps: 96,\n\t\t\t\tstepCap: .5,\n\t\t\t\thitEps: .001\n\t\t\t},\n\t\t\tsphere: {\n\t\t\t\tsteps: 64,\n\t\t\t\tstepCap: 1.5,\n\t\t\t\thitEps: .001\n\t\t\t},\n\t\t\tcapsule: {\n\t\t\t\tsteps: 64,\n\t\t\t\tstepCap: 1.5,\n\t\t\t\thitEps: .001\n\t\t\t},\n\t\t\tmobius: {\n\t\t\t\tsteps: 96,\n\t\t\t\tstepCap: .3,\n\t\t\t\thitEps: .001\n\t\t\t}\n\t\t}[shapeType] ?? {\n\t\t\tsteps: 96,\n\t\t\tstepCap: .5,\n\t\t\thitEps: .001\n\t\t});\n\t}\n};\nvar Form3D_default = componentDefinition;\nexport { componentDefinition as n, Form3D_default as t };\n","import { a as transformColor, o as transformColorSpace, r as transformAngle, t as colorSpaceOptions } from \"./transformations-CJcUeZIC.js\";\nimport { t as mixColors } from \"./colorMixing-BPpDnR5I.js\";\nimport { t as createAnimatedTime } from \"./time-DUqSFWvT.js\";\nimport { clamp, cos, float, mx_noise_float, screenUV, sin, vec2, vec4, viewportSize } from \"three/tsl\";\nvar GOLDEN = 2.39996;\nconst componentDefinition = {\n\tname: \"FractalNoise\",\n\tcategory: \"Textures\",\n\tdescription: \"Multi-octave fractal Brownian motion noise texture with true noise evolution\",\n\tprops: {\n\t\tcolorA: {\n\t\t\tdefault: \"#000000\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"First color\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Color A\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tcolorB: {\n\t\t\tdefault: \"#ffffff\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Second color\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Color B\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\toctaves: {\n\t\t\tdefault: 4,\n\t\t\tcompileTime: true,\n\t\t\tdescription: \"Number of noise octaves (more = more detail)\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 1,\n\t\t\t\tmax: 8,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Octaves\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tdetail: {\n\t\t\tdefault: 2,\n\t\t\tdescription: \"How much finer each successive octave becomes\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 1,\n\t\t\t\tmax: 4,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Detail\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tcontrast: {\n\t\t\tdefault: .5,\n\t\t\tdescription: \"How strongly finer octaves contribute — higher values create more texture contrast\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: .1,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .05,\n\t\t\t\tlabel: \"Contrast\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tspeed: {\n\t\t\tdefault: .15,\n\t\t\tdescription: \"Speed at which the noise pattern evolves in place\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Speed\",\n\t\t\t\tgroup: \"Animation\"\n\t\t\t}\n\t\t},\n\t\tangle: {\n\t\t\tdefault: 0,\n\t\t\ttransform: transformAngle,\n\t\t\tdescription: \"Rotation angle in degrees\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: -180,\n\t\t\t\tmax: 180,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Angle\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tseed: {\n\t\t\tdefault: 0,\n\t\t\tdescription: \"Random seed for pattern variation\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 100,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Seed\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tcolorSpace: {\n\t\t\tdefault: \"linear\",\n\t\t\ttransform: transformColorSpace,\n\t\t\tcompileTime: true,\n\t\t\tdescription: \"Color space for interpolation\",\n\t\t\tui: {\n\t\t\t\ttype: \"select\",\n\t\t\t\toptions: colorSpaceOptions,\n\t\t\t\tlabel: \"Color Space\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t}\n\t},\n\tfragmentNode: (params) => {\n\t\tconst { uniforms } = params;\n\t\tconst uv$1 = screenUV;\n\t\tconst aspect = viewportSize.x.div(viewportSize.y);\n\t\tconst angleRad = uniforms.angle.uniform.mul(.0174533);\n\t\tconst cosA = cos(angleRad);\n\t\tconst sinA = sin(angleRad);\n\t\tconst au = uv$1.x.mul(aspect).sub(aspect.mul(.5));\n\t\tconst av = uv$1.y.sub(.5);\n\t\tconst ru = au.mul(cosA).add(av.mul(sinA));\n\t\tconst rv = au.mul(sinA).negate().add(av.mul(cosA));\n\t\tconst animTime = createAnimatedTime(params, uniforms.speed);\n\t\tconst scale = float(2);\n\t\tconst seedVal = uniforms.seed.uniform;\n\t\tconst l = uniforms.detail.uniform;\n\t\tconst p = uniforms.contrast.uniform;\n\t\tconst d = (i) => ({\n\t\t\tx: Math.cos(i * GOLDEN),\n\t\t\ty: Math.sin(i * GOLDEN)\n\t\t});\n\t\tconst coord = (octaveScale, i) => vec2(ru.mul(octaveScale).add(animTime.mul(float(d(i).x))).add(seedVal), rv.mul(octaveScale).add(animTime.mul(float(d(i).y))).add(seedVal.mul(.7)));\n\t\tconst n1 = mx_noise_float(coord(scale, 0));\n\t\tconst n2 = mx_noise_float(coord(scale.mul(l), 1)).mul(p);\n\t\tconst n3 = mx_noise_float(coord(scale.mul(l).mul(l), 2)).mul(p).mul(p);\n\t\tconst n4 = mx_noise_float(coord(scale.mul(l).mul(l).mul(l), 3)).mul(p).mul(p).mul(p);\n\t\tconst n5 = mx_noise_float(coord(scale.mul(l).mul(l).mul(l).mul(l), 4)).mul(p).mul(p).mul(p).mul(p);\n\t\tconst n6 = mx_noise_float(coord(scale.mul(l).mul(l).mul(l).mul(l).mul(l), 5)).mul(p).mul(p).mul(p).mul(p).mul(p);\n\t\tconst n7 = mx_noise_float(coord(scale.mul(l).mul(l).mul(l).mul(l).mul(l).mul(l), 6)).mul(p).mul(p).mul(p).mul(p).mul(p).mul(p);\n\t\tconst n8 = mx_noise_float(coord(scale.mul(l).mul(l).mul(l).mul(l).mul(l).mul(l).mul(l), 7)).mul(p).mul(p).mul(p).mul(p).mul(p).mul(p).mul(p);\n\t\tconst octaveCount = uniforms.octaves.uniform.value;\n\t\tlet accumulated = n1;\n\t\tlet totalWeight = float(1);\n\t\tif (octaveCount >= 2) {\n\t\t\taccumulated = accumulated.add(n2);\n\t\t\ttotalWeight = totalWeight.add(p);\n\t\t}\n\t\tif (octaveCount >= 3) {\n\t\t\taccumulated = accumulated.add(n3);\n\t\t\ttotalWeight = totalWeight.add(p.mul(p));\n\t\t}\n\t\tif (octaveCount >= 4) {\n\t\t\taccumulated = accumulated.add(n4);\n\t\t\ttotalWeight = totalWeight.add(p.mul(p).mul(p));\n\t\t}\n\t\tif (octaveCount >= 5) {\n\t\t\taccumulated = accumulated.add(n5);\n\t\t\ttotalWeight = totalWeight.add(p.mul(p).mul(p).mul(p));\n\t\t}\n\t\tif (octaveCount >= 6) {\n\t\t\taccumulated = accumulated.add(n6);\n\t\t\ttotalWeight = totalWeight.add(p.mul(p).mul(p).mul(p).mul(p));\n\t\t}\n\t\tif (octaveCount >= 7) {\n\t\t\taccumulated = accumulated.add(n7);\n\t\t\ttotalWeight = totalWeight.add(p.mul(p).mul(p).mul(p).mul(p).mul(p));\n\t\t}\n\t\tif (octaveCount >= 8) {\n\t\t\taccumulated = accumulated.add(n8);\n\t\t\ttotalWeight = totalWeight.add(p.mul(p).mul(p).mul(p).mul(p).mul(p).mul(p));\n\t\t}\n\t\tconst normalized = clamp(accumulated.div(totalWeight).mul(.5).add(.5), float(0), float(1));\n\t\tconst result = mixColors(uniforms.colorA.uniform, uniforms.colorB.uniform, normalized, uniforms.colorSpace.uniform.value);\n\t\treturn vec4(result.rgb, result.a);\n\t}\n};\nvar FractalNoise_default = componentDefinition;\nexport { componentDefinition as n, FractalNoise_default as t };\n","import { a as transformColor, l as transformPosition } from \"./transformations-CJcUeZIC.js\";\nimport { r as createGaussianBlurCompute } from \"./computeBlur-oxyhoztH.js\";\nimport { n as createAnalyticSdfSampler, r as createSvgSdfSampler } from \"./sdf-D_EAGXhN.js\";\nimport { Fn, If, clamp, convertToTexture, dot, exp2, float, max, mix, pow, screenUV, smoothstep, sqrt, texture, uniform, vec2, vec3, vec4, viewportSize } from \"three/tsl\";\nvar GOLDEN_ANGLE = 2.3999632297286535;\nvar BLUR_SAMPLE_COUNT = 9;\nconst BLUR_DISK = [];\nfor (let i = 0; i < BLUR_SAMPLE_COUNT; i++) {\n\tconst angle = i * GOLDEN_ANGLE;\n\tconst r = Math.sqrt(i / BLUR_SAMPLE_COUNT);\n\tBLUR_DISK.push([Math.cos(angle) * r, Math.sin(angle) * r]);\n}\nvar INV_HLEN_GLASS = 1 / Math.sqrt(5);\nfunction applyGlassEffect(childTexture, sdfSampler, uniforms, onBeforeRender, blurredTexture) {\n\tconst lx = uniform(0);\n\tconst ly = uniform(0);\n\tconst updateLightAngle = () => {\n\t\tconst rad = uniforms.lightAngle.uniform.value * Math.PI / 180;\n\t\tlx.value = Math.cos(rad);\n\t\tly.value = Math.sin(rad);\n\t};\n\tupdateLightAngle();\n\tonBeforeRender?.(updateLightAngle);\n\treturn Fn(() => {\n\t\tconst uv$1 = screenUV;\n\t\tconst aspect = viewportSize.x.div(viewportSize.y);\n\t\tconst sharp = uniforms.edgeSoftness.uniform.mul(float(.5)).max(float(.001));\n\t\tconst pixelSize = vec2(1).div(viewportSize);\n\t\tconst pxH = float(1).div(viewportSize.y);\n\t\tconst centerPos = vec2(uniforms.center.uniform.x, uniforms.center.uniform.y.oneMinus());\n\t\tconst scale = uniforms.scale.uniform;\n\t\tconst sdfUV = vec2(uv$1.x.sub(centerPos.x).mul(aspect).div(scale).add(float(.5)), uv$1.y.sub(centerPos.y).div(scale).add(float(.5)));\n\t\tconst sdfRaw = sdfSampler(sdfUV).r;\n\t\tconst sdf = sdfRaw.div(scale);\n\t\tconst output = vec4(0).toVar();\n\t\tIf(sdf.greaterThan(pxH.mul(float(2))), () => {\n\t\t\tconst baseSample = childTexture.sample(uv$1);\n\t\t\tconst earlyAlpha = uniforms.cutout.uniform.equal(float(1)).select(float(0), baseSample.a);\n\t\t\toutput.assign(vec4(baseSample.r, baseSample.g, baseSample.b, earlyAlpha));\n\t\t}).Else(() => {\n\t\t\tconst EPS = float(.01);\n\t\t\tconst gradX = sdfSampler(sdfUV.add(vec2(EPS, float(0)))).r.sub(sdfRaw).div(EPS);\n\t\t\tconst gradY = sdfSampler(sdfUV.add(vec2(float(0), EPS))).r.sub(sdfRaw).div(EPS);\n\t\t\tconst rb1 = clamp(sdf.negate().div(sharp).mul(float(32)), float(0), float(1));\n\t\t\tconst rb2base = clamp(sdf.sub(pxH).negate().div(sharp).mul(float(16)), float(0), float(1)).sub(clamp(sdf.negate().div(sharp).mul(float(16)), float(0), float(1)));\n\t\t\tconst lightFacing = gradX.mul(lx).add(gradY.mul(ly)).mul(float(.5)).add(float(.5));\n\t\t\tconst rb2 = rb2base.mul(lightFacing).mul(uniforms.highlight.uniform);\n\t\t\tconst thicknessRange = uniforms.thickness.uniform.mul(float(.3)).max(float(.005));\n\t\t\tconst depthNorm = clamp(sdf.negate().div(thicknessRange), float(0), float(1));\n\t\t\tconst refrStrength = float(1).sub(depthNorm).mul(float(1).sub(depthNorm));\n\t\t\tconst refrScale = uniforms.refraction.uniform.mul(float(.15));\n\t\t\tconst offsetX = gradX.negate().mul(refrScale).mul(refrStrength).div(aspect);\n\t\t\tconst offsetY = gradY.negate().mul(refrScale).mul(refrStrength);\n\t\t\tconst lensUV = centerPos.add(uv$1.sub(centerPos).div(uniforms.innerZoom.uniform)).add(vec2(offsetX, offsetY));\n\t\t\tconst blurEnabled = typeof uniforms.blur.uniform.value === \"number\" ? uniforms.blur.uniform.value > 0 : true;\n\t\t\tconst aberrationEnabled = typeof uniforms.aberration.uniform.value === \"number\" ? uniforms.aberration.uniform.value > 0 : true;\n\t\t\tlet blurred;\n\t\t\tif (blurredTexture && blurEnabled) {\n\t\t\t\tconst blurTex = texture(blurredTexture);\n\t\t\t\tif (!aberrationEnabled) blurred = blurTex.sample(lensUV);\n\t\t\t\telse {\n\t\t\t\t\tconst chrScale = uniforms.aberration.uniform.mul(float(.06));\n\t\t\t\t\tconst chrOffX = offsetX.mul(chrScale);\n\t\t\t\t\tconst chrOffY = offsetY.mul(chrScale);\n\t\t\t\t\tconst rUV = lensUV.add(vec2(chrOffX, chrOffY));\n\t\t\t\t\tconst bUV = lensUV.sub(vec2(chrOffX, chrOffY));\n\t\t\t\t\tconst rSample = blurTex.sample(rUV);\n\t\t\t\t\tconst gSample = blurTex.sample(lensUV);\n\t\t\t\t\tconst bSample = blurTex.sample(bUV);\n\t\t\t\t\tblurred = vec4(rSample.r, gSample.g, bSample.b, gSample.a);\n\t\t\t\t}\n\t\t\t} else if (!blurEnabled && !aberrationEnabled) blurred = childTexture.sample(lensUV);\n\t\t\telse if (!blurEnabled && aberrationEnabled) {\n\t\t\t\tconst chrScale = uniforms.aberration.uniform.mul(float(.06));\n\t\t\t\tconst chrOffX = offsetX.mul(chrScale);\n\t\t\t\tconst chrOffY = offsetY.mul(chrScale);\n\t\t\t\tconst rUV = lensUV.add(vec2(chrOffX, chrOffY));\n\t\t\t\tconst bUV = lensUV.sub(vec2(chrOffX, chrOffY));\n\t\t\t\tconst rSample = childTexture.sample(rUV);\n\t\t\t\tconst gSample = childTexture.sample(lensUV);\n\t\t\t\tconst bSample = childTexture.sample(bUV);\n\t\t\t\tblurred = vec4(rSample.r, gSample.g, bSample.b, gSample.a);\n\t\t\t} else if (blurEnabled && !aberrationEnabled) {\n\t\t\t\tconst acc = vec4(0).toVar();\n\t\t\t\tfor (const [ox, oy] of BLUR_DISK) {\n\t\t\t\t\tconst blurOff = pixelSize.mul(vec2(float(ox), float(oy))).mul(uniforms.blur.uniform.mul(2));\n\t\t\t\t\tacc.assign(acc.add(childTexture.sample(lensUV.add(blurOff))));\n\t\t\t\t}\n\t\t\t\tblurred = acc.mul(float(1 / BLUR_SAMPLE_COUNT));\n\t\t\t} else {\n\t\t\t\tconst chrScale = uniforms.aberration.uniform.mul(float(.06));\n\t\t\t\tconst chrOffX = offsetX.mul(chrScale);\n\t\t\t\tconst chrOffY = offsetY.mul(chrScale);\n\t\t\t\tconst rUV = lensUV.add(vec2(chrOffX, chrOffY));\n\t\t\t\tconst bUV = lensUV.sub(vec2(chrOffX, chrOffY));\n\t\t\t\tconst accR = vec4(0).toVar();\n\t\t\t\tconst accG = vec4(0).toVar();\n\t\t\t\tconst accB = vec4(0).toVar();\n\t\t\t\tfor (const [ox, oy] of BLUR_DISK) {\n\t\t\t\t\tconst blurOff = pixelSize.mul(vec2(float(ox), float(oy))).mul(uniforms.blur.uniform.mul(2));\n\t\t\t\t\taccR.assign(accR.add(childTexture.sample(rUV.add(blurOff))));\n\t\t\t\t\taccG.assign(accG.add(childTexture.sample(lensUV.add(blurOff))));\n\t\t\t\t\taccB.assign(accB.add(childTexture.sample(bUV.add(blurOff))));\n\t\t\t\t}\n\t\t\t\tconst samplesInv = float(1 / BLUR_SAMPLE_COUNT);\n\t\t\t\tblurred = vec4(accR.mul(samplesInv).r, accG.mul(samplesInv).g, accB.mul(samplesInv).b, accG.mul(samplesInv).a);\n\t\t\t}\n\t\t\tconst tintCol = vec3(uniforms.tintColor.uniform.x, uniforms.tintColor.uniform.y, uniforms.tintColor.uniform.z);\n\t\t\tconst tintAmt = uniforms.tintIntensity.uniform;\n\t\t\tconst blurredRgb = vec3(blurred.r, blurred.g, blurred.b);\n\t\t\tconst lumWeights = vec3(.299, .587, .114);\n\t\t\tconst origLum = dot(blurredRgb, lumWeights);\n\t\t\tconst tinted = mix(blurredRgb, tintCol, tintAmt);\n\t\t\tconst tintedLum = dot(tinted, lumWeights);\n\t\t\tconst lumPreserved = tinted.mul(origLum.div(max(tintedLum, float(1e-4))));\n\t\t\tconst tintedGlass = vec4(uniforms.tintPreserveLuminosity.uniform.equal(float(1)).select(lumPreserved, tinted), blurred.a);\n\t\t\tconst nz = float(2);\n\t\t\tconst nLen = sqrt(gradX.mul(gradX).add(gradY.mul(gradY)).add(nz.mul(nz)));\n\t\t\tconst nx = gradX.div(nLen);\n\t\t\tconst ny = gradY.div(nLen);\n\t\t\tconst nnz = nz.div(nLen);\n\t\t\tconst nDotH = nx.mul(lx.mul(float(INV_HLEN_GLASS))).add(ny.mul(ly.mul(float(INV_HLEN_GLASS)))).add(nnz.mul(float(2 * INV_HLEN_GLASS)));\n\t\t\tconst shininess = exp2(float(8).sub(uniforms.highlightSoftness.uniform.mul(float(7))));\n\t\t\tconst specGlint = pow(clamp(nDotH, float(0), float(1)), shininess).mul(uniforms.highlight.uniform).mul(refrStrength);\n\t\t\tconst fresnelWidth = uniforms.fresnelSoftness.uniform.mul(float(.06)).max(float(.001));\n\t\t\tconst fresnelDepth = clamp(sdf.negate().div(fresnelWidth), float(0), float(1));\n\t\t\tconst fresnelRim = float(1).sub(fresnelDepth).mul(float(1).sub(fresnelDepth)).mul(uniforms.fresnel.uniform).mul(rb1);\n\t\t\tconst hlCol = uniforms.highlightColor.uniform;\n\t\t\tconst frCol = uniforms.fresnelColor.uniform;\n\t\t\tconst lighting = tintedGlass.add(vec4(hlCol.x.mul(rb2), hlCol.y.mul(rb2), hlCol.z.mul(rb2), rb2)).add(vec4(hlCol.x.mul(specGlint), hlCol.y.mul(specGlint), hlCol.z.mul(specGlint), float(0))).add(vec4(frCol.x.mul(fresnelRim), frCol.y.mul(fresnelRim), frCol.z.mul(fresnelRim), float(0)));\n\t\t\tconst transition = smoothstep(float(0), float(1), rb1);\n\t\t\tconst isCutout = uniforms.cutout.uniform.equal(float(1));\n\t\t\tconst composited = mix(childTexture.sample(uv$1), lighting, transition);\n\t\t\tconst cutoutAlpha = isCutout.select(transition, float(1));\n\t\t\toutput.assign(vec4(composited.r, composited.g, composited.b, composited.a.mul(cutoutAlpha)));\n\t\t});\n\t\treturn output;\n\t})();\n}\nvar transformBoolean = (value) => value ? 1 : 0;\nvar DEFAULT_SHAPE_CONFIG = JSON.stringify({\n\ttype: \"circleSDF\",\n\tradius: .35\n});\nconst componentDefinition = {\n\tname: \"Glass\",\n\tcategory: \"Shape Effects\",\n\tdescription: \"Optically realistic glass lens driven in a custom shape\",\n\trequiresRTT: true,\n\trequiresChild: true,\n\tprops: {\n\t\tcenter: {\n\t\t\tdefault: {\n\t\t\t\tx: .5,\n\t\t\t\ty: .5\n\t\t\t},\n\t\t\ttransform: transformPosition,\n\t\t\tdescription: \"Center position of the glass shape\",\n\t\t\tui: {\n\t\t\t\ttype: \"position\",\n\t\t\t\tlabel: \"Center\",\n\t\t\t\tgroup: \"Position\"\n\t\t\t}\n\t\t},\n\t\tscale: {\n\t\t\tdefault: 1,\n\t\t\tdescription: \"Scale of the glass shape (1 = default size)\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: .1,\n\t\t\t\tmax: 3,\n\t\t\t\tstep: .05,\n\t\t\t\tlabel: \"Scale\",\n\t\t\t\tgroup: \"Position\"\n\t\t\t}\n\t\t},\n\t\tcutout: {\n\t\t\tdefault: false,\n\t\t\tdescription: \"Cut out the alpha outside the glass shape\",\n\t\t\ttransform: transformBoolean,\n\t\t\tui: {\n\t\t\t\ttype: \"checkbox\",\n\t\t\t\tlabel: \"Cutout\",\n\t\t\t\tgroup: \"Glass\"\n\t\t\t}\n\t\t},\n\t\trefraction: {\n\t\t\tdefault: 1,\n\t\t\tdescription: \"Lens refraction — how aggressively the edges warp content beneath (0 = none, 1 = max)\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 2,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Refraction\",\n\t\t\t\tgroup: \"Glass\"\n\t\t\t}\n\t\t},\n\t\tedgeSoftness: {\n\t\t\tdefault: .1,\n\t\t\tdescription: \"Edge softness — higher values give a wider, softer fade at the glass boundary\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .05,\n\t\t\t\tlabel: \"Edge Softness\",\n\t\t\t\tgroup: \"Glass\"\n\t\t\t}\n\t\t},\n\t\tblur: {\n\t\t\tdefault: 0,\n\t\t\tcompileTimeWhen: (prev, next) => prev > 0 !== next > 0,\n\t\t\tdescription: \"Frosted blur amount — 0 = clear glass, higher = frosted/diffuse\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 20,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Blur\",\n\t\t\t\tgroup: \"Glass\"\n\t\t\t}\n\t\t},\n\t\tthickness: {\n\t\t\tdefault: .2,\n\t\t\ttransform: (v) => v * .5,\n\t\t\tdescription: \"Glass depth — how far inward from the edge the refraction extends\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Thickness\",\n\t\t\t\tgroup: \"Glass\"\n\t\t\t}\n\t\t},\n\t\taberration: {\n\t\t\tdefault: .5,\n\t\t\tcompileTimeWhen: (prev, next) => prev > 0 !== next > 0,\n\t\t\tdescription: \"Chromatic aberration — splits RGB channels along the refraction vector\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Aberration\",\n\t\t\t\tgroup: \"Glass\"\n\t\t\t}\n\t\t},\n\t\tinnerZoom: {\n\t\t\tdefault: 1,\n\t\t\tdescription: \"Inner zoom level — magnifies content seen through the glass\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: .5,\n\t\t\t\tmax: 3,\n\t\t\t\tstep: .05,\n\t\t\t\tlabel: \"Inner Zoom\",\n\t\t\t\tgroup: \"Glass\"\n\t\t\t}\n\t\t},\n\t\tlightAngle: {\n\t\t\tdefault: 300,\n\t\t\tdescription: \"Light angle in degrees\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 360,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Light Angle\",\n\t\t\t\tgroup: \"Highlight\"\n\t\t\t}\n\t\t},\n\t\thighlight: {\n\t\t\tdefault: .05,\n\t\t\tdescription: \"Directional edge highlight — bright rim on the light-facing boundary\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 2,\n\t\t\t\tstep: .05,\n\t\t\t\tlabel: \"Highlight\",\n\t\t\t\tgroup: \"Highlight\"\n\t\t\t}\n\t\t},\n\t\thighlightColor: {\n\t\t\tdefault: \"#ffffff\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Color of the directional edge highlight and specular glint\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Highlight Color\",\n\t\t\t\tgroup: \"Highlight\"\n\t\t\t}\n\t\t},\n\t\thighlightSoftness: {\n\t\t\tdefault: .5,\n\t\t\tdescription: \"Specular highlight softness\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Highlight Softness\",\n\t\t\t\tgroup: \"Highlight\"\n\t\t\t}\n\t\t},\n\t\tfresnel: {\n\t\t\tdefault: .1,\n\t\t\tdescription: \"Fresnel rim glow — a soft luminous halo around the glass boundary\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Fresnel\",\n\t\t\t\tgroup: \"Fresnel\"\n\t\t\t}\n\t\t},\n\t\tfresnelSoftness: {\n\t\t\tdefault: .1,\n\t\t\tdescription: \"Fresnel rim width — higher values spread the glow further inward\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Fresnel Softness\",\n\t\t\t\tgroup: \"Fresnel\"\n\t\t\t}\n\t\t},\n\t\tfresnelColor: {\n\t\t\tdefault: \"#ffffff\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Color of the fresnel rim glow\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Fresnel Color\",\n\t\t\t\tgroup: \"Fresnel\"\n\t\t\t}\n\t\t},\n\t\ttintColor: {\n\t\t\tdefault: \"#ffffff\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Color tint applied to the internal directional gradient\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Tint Color\",\n\t\t\t\tgroup: \"Tint\"\n\t\t\t}\n\t\t},\n\t\ttintIntensity: {\n\t\t\tdefault: 0,\n\t\t\tdescription: \"Intensity of the color tint applied to the glass interior\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Tint Intensity\",\n\t\t\t\tgroup: \"Tint\"\n\t\t\t}\n\t\t},\n\t\ttintPreserveLuminosity: {\n\t\t\tdefault: true,\n\t\t\ttransform: transformBoolean,\n\t\t\tdescription: \"Preserve original brightness when tinting\",\n\t\t\tui: {\n\t\t\t\ttype: \"checkbox\",\n\t\t\t\tlabel: \"Preserve Luminosity\",\n\t\t\t\tgroup: \"Tint\"\n\t\t\t}\n\t\t},\n\t\tshape: {\n\t\t\tdefault: DEFAULT_SHAPE_CONFIG,\n\t\t\tdescription: \"Serialized shape configuration (JSON)\",\n\t\t\tui: {\n\t\t\t\ttype: \"shape\",\n\t\t\t\tlabel: \"Shape\",\n\t\t\t\tgroup: \"Shape\"\n\t\t\t}\n\t\t},\n\t\tshapeSdfUrl: {\n\t\t\tdefault: \"\",\n\t\t\tcompileTime: true,\n\t\t\tdescription: \"URL to a pre-generated SDF .bin file — when non-empty, activates SVG mode and triggers a shader recompile\"\n\t\t},\n\t\tshapeType: {\n\t\t\tdefault: \"\",\n\t\t\tcompileTime: true,\n\t\t\tdescription: \"Active SDF shape type — triggers recompile when shape is switched. When empty, derived from shape JSON at mount time.\"\n\t\t}\n\t},\n\tcomputeNode: ({ uniforms, childNode, onCleanup, dimensions, renderer, onResize }) => {\n\t\tif (!childNode) return null;\n\t\tconst blurValue = uniforms.blur.uniform.value;\n\t\tif (typeof blurValue === \"number\" && blurValue <= 0) return null;\n\t\tconst childTexture = convertToTexture(childNode);\n\t\tonCleanup(() => {\n\t\t\tif (childTexture?.renderTarget?.dispose) childTexture.renderTarget.dispose();\n\t\t});\n\t\tconst dpr = renderer?.getPixelRatio?.() ?? 1;\n\t\tconst blur = createGaussianBlurCompute(childTexture, Math.round(dimensions.width * dpr), Math.round(dimensions.height * dpr), onCleanup);\n\t\tconst { computeNodes, outputTexture, updateRadius } = blur;\n\t\tonResize(({ width, height }) => {\n\t\t\tblur.setInputDimensions(Math.round(width * dpr), Math.round(height * dpr));\n\t\t});\n\t\treturn {\n\t\t\toutputs: {\n\t\t\t\tchildTexture,\n\t\t\t\tblurredTexture: outputTexture\n\t\t\t},\n\t\t\tgetComputeNodes: () => {\n\t\t\t\tconst currentBlur = uniforms.blur.uniform.value;\n\t\t\t\tupdateRadius(currentBlur * 2);\n\t\t\t\treturn computeNodes;\n\t\t\t}\n\t\t};\n\t},\n\tfragmentNode: ({ uniforms, childNode, onCleanup, onBeforeRender, computeOutputs }) => {\n\t\tif (!childNode) return vec4(0);\n\t\tconst childTexture = computeOutputs?.childTexture ?? convertToTexture(childNode);\n\t\tif (!computeOutputs) onCleanup(() => {\n\t\t\tif (childTexture?.renderTarget?.dispose) childTexture.renderTarget.dispose();\n\t\t});\n\t\tconst blurredTexture = computeOutputs?.blurredTexture;\n\t\tconst shapeSdfUrl = uniforms.shapeSdfUrl.uniform.value;\n\t\tconst initialConfig = (() => {\n\t\t\tconst val = uniforms.shape.uniform.value;\n\t\t\tif (typeof val === \"object\" && val !== null) return val;\n\t\t\ttry {\n\t\t\t\treturn JSON.parse(val);\n\t\t\t} catch {\n\t\t\t\treturn {\n\t\t\t\t\ttype: \"circleSDF\",\n\t\t\t\t\tradius: .35,\n\t\t\t\t\tcenterX: .5,\n\t\t\t\t\tcenterY: .5\n\t\t\t\t};\n\t\t\t}\n\t\t})();\n\t\tif (shapeSdfUrl) return applyGlassEffect(childTexture, createSvgSdfSampler(shapeSdfUrl, onBeforeRender, onCleanup), uniforms, onBeforeRender, blurredTexture);\n\t\telse return applyGlassEffect(childTexture, createAnalyticSdfSampler(uniforms.shapeType.uniform.value || initialConfig.type || \"circleSDF\", initialConfig, uniforms.shape, onBeforeRender), uniforms, onBeforeRender, blurredTexture);\n\t}\n};\nvar Glass_default = componentDefinition;\nexport { componentDefinition as n, Glass_default as t };\n","import { t as unpremultiplyAlpha } from \"./alpha-C4ptedXe.js\";\nimport { add, convertToTexture, cos, div, float, floor, mul, screenUV, sin, sub, vec2, vec4, viewportSize } from \"three/tsl\";\nconst componentDefinition = {\n\tname: \"GlassTiles\",\n\tcategory: \"Distortions\",\n\tdescription: \"Refraction-like distortion in a tile grid pattern\",\n\trequiresRTT: true,\n\trequiresChild: true,\n\tprops: {\n\t\tintensity: {\n\t\t\tdefault: 2,\n\t\t\tdescription: \"The intensity of the glass tiles effect\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 10,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Intensity\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\ttileCount: {\n\t\t\tdefault: 20,\n\t\t\tdescription: \"Number of tiles across the longest dimension\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 5,\n\t\t\t\tmax: 50,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Tile Count\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\trotation: {\n\t\t\tdefault: 0,\n\t\t\tdescription: \"Rotation angle of the tile grid in degrees\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 360,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Rotation\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\troundness: {\n\t\t\tdefault: 0,\n\t\t\tdescription: \"Makes tiles more circular instead of square\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Roundness\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t}\n\t},\n\tfragmentNode: ({ uniforms, childNode, onCleanup }) => {\n\t\tif (!childNode) {\n\t\t\tconsole.error(\"You must pass a child component into the Glass Tiles shader.\");\n\t\t\treturn vec4(0);\n\t\t}\n\t\tconst texture$1 = convertToTexture(childNode);\n\t\tonCleanup(() => {\n\t\t\tif (texture$1?.renderTarget?.dispose) texture$1.renderTarget.dispose();\n\t\t});\n\t\tconst aspectRatioUniform = viewportSize.x.div(viewportSize.y);\n\t\tconst baseUV = screenUV;\n\t\tconst intensity = uniforms.intensity.uniform;\n\t\tconst baseTileCount = uniforms.tileCount.uniform;\n\t\tconst rotationDegrees = uniforms.rotation.uniform;\n\t\tconst roundnessAmount = uniforms.roundness.uniform;\n\t\tconst isWide = aspectRatioUniform.greaterThan(float(1));\n\t\tconst tileCount = vec2(isWide.select(baseTileCount, mul(baseTileCount, aspectRatioUniform)), isWide.select(div(baseTileCount, aspectRatioUniform), baseTileCount));\n\t\tconst aspectCorrectedUV = vec2(mul(baseUV.x, aspectRatioUniform), baseUV.y);\n\t\tconst rotationRadians = mul(rotationDegrees, Math.PI / 180);\n\t\tconst cosAngle = cos(rotationRadians);\n\t\tconst sinAngle = sin(rotationRadians);\n\t\tconst centered = sub(aspectCorrectedUV, vec2(mul(.5, aspectRatioUniform), .5));\n\t\tconst rotatedUV = add(vec2(sub(mul(centered.x, cosAngle), mul(centered.y, sinAngle)), add(mul(centered.x, sinAngle), mul(centered.y, cosAngle))), vec2(mul(.5, aspectRatioUniform), .5));\n\t\tconst gridUV = vec2(div(rotatedUV.x, aspectRatioUniform), rotatedUV.y);\n\t\tconst fromCenter = sub(div(sub(gridUV, div(floor(mul(gridUV, tileCount)), tileCount)), div(vec2(1), tileCount)), vec2(.5, .5));\n\t\tconst clampedRoundness = sub(1, mul(mul(fromCenter.x, fromCenter.x).add(mul(fromCenter.y, fromCenter.y)), mul(roundnessAmount, 4))).max(0);\n\t\tconst baseDistortion = mul(fromCenter, mul(mul(intensity, .025), clampedRoundness));\n\t\tconst distortedUV = add(baseUV, vec2(div(baseDistortion.x, aspectRatioUniform), baseDistortion.y));\n\t\treturn unpremultiplyAlpha(vec4(texture$1.sample(distortedUV)));\n\t}\n};\nvar GlassTiles_default = componentDefinition;\nexport { componentDefinition as n, GlassTiles_default as t };\n","import { t as unpremultiplyAlpha } from \"./alpha-C4ptedXe.js\";\nimport { Fn, abs, clamp, convertToTexture, float, floor, fract, mix, screenUV, sin, step, time, vec2, vec3, vec4, viewportSize } from \"three/tsl\";\nvar hash11 = Fn(([p]) => {\n\treturn fract(sin(p.mul(78.233)).mul(43758.5453));\n});\nconst componentDefinition = {\n\tname: \"Glitch\",\n\tcategory: \"Stylize\",\n\tdescription: \"Digital glitch that melts pixels and distorts colors\",\n\trequiresRTT: true,\n\trequiresChild: true,\n\tprops: {\n\t\tintensity: {\n\t\t\tdefault: .5,\n\t\t\tdescription: \"Overall glitch strength and frequency of glitch bursts\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Intensity\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tspeed: {\n\t\t\tdefault: 1,\n\t\t\tdescription: \"How fast the glitch pattern evolves\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: .1,\n\t\t\t\tmax: 5,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Speed\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\trgbShift: {\n\t\t\tdefault: 5,\n\t\t\tdescription: \"Amount of chromatic aberration (RGB channel splitting)\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 20,\n\t\t\t\tstep: .5,\n\t\t\t\tlabel: \"RGB Shift\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tblockDensity: {\n\t\t\tdefault: 10,\n\t\t\tdescription: \"Base number of horizontal glitch bands\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 2,\n\t\t\t\tmax: 50,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Block Density\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tcolorBarIntensity: {\n\t\t\tdefault: .2,\n\t\t\tdescription: \"Intensity of vivid neon color bar overlay in glitch regions\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Color Bars\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tmirrorAmount: {\n\t\t\tdefault: .3,\n\t\t\tdescription: \"Chance of glitch blocks showing mirrored/flipped content\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Mirror\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tscanlineIntensity: {\n\t\t\tdefault: .2,\n\t\t\tdescription: \"Visibility of CRT-style horizontal scanlines in distorted areas\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Scanlines\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t}\n\t},\n\tfragmentNode: ({ uniforms, childNode, onCleanup }) => {\n\t\tif (!childNode) return vec4(0, 0, 0, 0);\n\t\tconst childTexture = convertToTexture(childNode);\n\t\tonCleanup(() => {\n\t\t\tif (childTexture?.renderTarget?.dispose) childTexture.renderTarget.dispose();\n\t\t});\n\t\tconst intensity = uniforms.intensity.uniform;\n\t\tconst speed = uniforms.speed.uniform;\n\t\tconst rgbShiftAmount = uniforms.rgbShift.uniform;\n\t\tconst blockDensity = uniforms.blockDensity.uniform;\n\t\tconst colorBarMix = uniforms.colorBarIntensity.uniform;\n\t\tconst mirrorChance = uniforms.mirrorAmount.uniform;\n\t\tconst scanlines = uniforms.scanlineIntensity.uniform;\n\t\tconst t = time.mul(speed);\n\t\tconst slowFrame = floor(t.mul(2.5));\n\t\tconst slowHash = hash11(slowFrame);\n\t\tconst slowPulse = slowHash.mul(slowHash).mul(slowHash);\n\t\tconst fastFrame = floor(t.mul(10));\n\t\tconst fastHash = hash11(fastFrame.add(73));\n\t\tconst fastPulse = fastHash.mul(fastHash);\n\t\tconst threshold = float(1).sub(intensity);\n\t\tconst majorBurst = step(threshold, slowPulse);\n\t\tconst minorFlicker = step(threshold.add(.15), fastPulse);\n\t\tconst glitchStrength = clamp(majorBurst.mul(.8).add(minorFlicker.mul(.4)), 0, 1).mul(intensity);\n\t\tconst bandY1 = floor(screenUV.y.mul(blockDensity));\n\t\tconst bandSeed1 = bandY1.mul(.37).add(slowFrame.mul(7.13));\n\t\tconst bandHash1 = hash11(bandSeed1);\n\t\tconst bandActive1 = step(float(1).sub(glitchStrength.mul(.5)), bandHash1);\n\t\tconst displace1 = hash11(bandSeed1.add(42)).sub(.5).mul(.25).mul(bandActive1);\n\t\tconst bandSeed2 = floor(screenUV.y.mul(blockDensity.mul(2))).mul(.53).add(fastFrame.mul(3.37));\n\t\tconst bandHash2 = hash11(bandSeed2);\n\t\tconst bandActive2 = step(float(1).sub(glitchStrength.mul(.7)), bandHash2);\n\t\tconst displace2 = hash11(bandSeed2.add(99)).sub(.5).mul(.12).mul(bandActive2);\n\t\tconst bandSeed3 = floor(screenUV.y.mul(blockDensity.mul(4))).mul(.71).add(fastFrame.mul(11.71));\n\t\tconst bandHash3 = hash11(bandSeed3);\n\t\tconst bandActive3 = step(float(1).sub(glitchStrength.mul(.9)), bandHash3);\n\t\tconst displace3 = hash11(bandSeed3.add(173)).sub(.5).mul(.05).mul(bandActive3);\n\t\tconst colX = floor(screenUV.x.mul(4));\n\t\tconst blockSeed = colX.mul(.41).add(bandY1.mul(.67)).add(slowFrame.mul(2.31));\n\t\tconst blockHash = hash11(blockSeed);\n\t\tconst blockActive = step(float(1).sub(glitchStrength.mul(.35)), blockHash);\n\t\tconst blockDisplace = hash11(blockSeed.add(77)).sub(.5).mul(.18).mul(blockActive);\n\t\tconst totalDisplaceX = displace1.add(displace2).add(displace3).add(blockDisplace);\n\t\tconst vertJitter = bandActive1.mul(hash11(bandSeed1.add(200)).sub(.5)).mul(.012);\n\t\tconst displacedUV = vec2(clamp(screenUV.x.add(totalDisplaceX.mul(glitchStrength)), 0, 1), clamp(screenUV.y.add(vertJitter.mul(glitchStrength)), 0, 1));\n\t\tconst mirrorSeed = colX.mul(.83).add(bandY1.mul(1.17)).add(slowFrame.mul(4.57));\n\t\tconst hMirrorHash = hash11(mirrorSeed);\n\t\tconst vMirrorHash = hash11(mirrorSeed.add(500));\n\t\tconst hMirrorActive = step(float(1).sub(mirrorChance.mul(glitchStrength)), hMirrorHash).mul(bandActive1);\n\t\tconst vMirrorActive = step(float(1).sub(mirrorChance.mul(glitchStrength).mul(.4)), vMirrorHash).mul(bandActive1);\n\t\tconst mirroredUV = vec2(mix(displacedUV.x, float(1).sub(displacedUV.x), hMirrorActive), mix(displacedUV.y, float(1).sub(displacedUV.y), vMirrorActive));\n\t\tconst rgbOffset = rgbShiftAmount.mul(.003).mul(glitchStrength.add(abs(totalDisplaceX).mul(2)));\n\t\tconst redUV = vec2(clamp(mirroredUV.x.add(rgbOffset), 0, 1), mirroredUV.y);\n\t\tconst blueUV = vec2(clamp(mirroredUV.x.sub(rgbOffset), 0, 1), mirroredUV.y);\n\t\tconst rSample = childTexture.sample(redUV).r;\n\t\tconst gSample = childTexture.sample(mirroredUV).g;\n\t\tconst bSample = childTexture.sample(blueUV).b;\n\t\tconst glitchedColor = vec3(rSample, gSample, bSample);\n\t\tconst fillStyleHash = hash11(blockSeed.add(555));\n\t\tconst barOffset = hash11(bandY1.add(slowFrame.mul(3.33)).add(333));\n\t\tconst barIndex = floor(fract(screenUV.x.mul(3).add(barOffset.mul(7))).mul(7));\n\t\tconst smpteColor = vec3(float(1).sub(step(float(2), barIndex)).add(step(float(4), barIndex).mul(float(1).sub(step(float(6), barIndex)))), float(1).sub(step(float(4), barIndex)), float(1).sub(step(float(.5), fract(barIndex.mul(.5)))));\n\t\tconst sh6 = fract(hash11(bandY1.add(13)).mul(.8).add(slowFrame.mul(.07))).mul(6);\n\t\tconst withBars = mix(glitchedColor, mix(vec3(clamp(abs(sh6.sub(3)).sub(1), 0, 1), clamp(float(2).sub(abs(sh6.sub(2))), 0, 1), clamp(float(2).sub(abs(sh6.sub(4))), 0, 1)).mul(1.3), smpteColor, step(float(.5), fillStyleHash)), bandActive1.mul(blockActive).mul(colorBarMix).mul(glitchStrength));\n\t\tconst anyDistortion = clamp(bandActive1.add(bandActive2).add(bandActive3), 0, 1);\n\t\tconst scanlineWave = sin(screenUV.y.mul(viewportSize.y).mul(float(3.14159265))).mul(.5).add(.5);\n\t\tconst scanlineEffect = float(1).sub(scanlines.mul(scanlineWave).mul(.3).mul(anyDistortion));\n\t\treturn unpremultiplyAlpha(vec4(withBars.mul(scanlineEffect), float(1)));\n\t}\n};\nvar Glitch_default = componentDefinition;\nexport { componentDefinition as n, Glitch_default as t };\n","import { t as unpremultiplyAlpha } from \"./alpha-C4ptedXe.js\";\nimport { i as createVariableGaussianBlurCompute, n as DEFAULT_COMPUTE_WIDTH, t as DEFAULT_COMPUTE_HEIGHT } from \"./computeBlur-oxyhoztH.js\";\nimport { StorageTexture } from \"three/webgpu\";\nimport { FloatType } from \"three\";\nimport { Fn, If, clamp, convertToTexture, dot, float, instanceIndex, int, max, mix, pow, screenUV, storageTexture, texture, textureLoad, textureStore, uint, uniform, uvec2, vec2, vec3, vec4, viewportSize } from \"three/tsl\";\nconst componentDefinition = {\n\tname: \"Glow\",\n\tcategory: \"Stylize\",\n\tdescription: \"Soft glow effect with adjustable intensity\",\n\trequiresRTT: true,\n\trequiresChild: true,\n\tprops: {\n\t\tintensity: {\n\t\t\tdefault: 1,\n\t\t\tdescription: \"Glow intensity (brightness of the glow effect)\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 50,\n\t\t\t\tstep: .5,\n\t\t\t\tlabel: \"Intensity\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tthreshold: {\n\t\t\tdefault: .5,\n\t\t\tdescription: \"Brightness threshold for glow extraction (lower = more glow)\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .05,\n\t\t\t\tlabel: \"Threshold\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tsize: {\n\t\t\tdefault: 25,\n\t\t\tdescription: \"Glow spread in pixels (clean up to ~72px, mild banding above)\",\n\t\t\tcompileTimeWhen: (prev, next) => prev === 0 !== (next === 0),\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 100,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Glow Size\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t}\n\t},\n\tcomputeNode: ({ childNode, onCleanup, dimensions, renderer, uniforms, onResize }) => {\n\t\tif (!childNode) return null;\n\t\tif (uniforms.size.uniform.value === 0) return null;\n\t\tconst childTexture = convertToTexture(childNode);\n\t\tonCleanup(() => {\n\t\t\tif (childTexture?.renderTarget?.dispose) childTexture.renderTarget.dispose();\n\t\t});\n\t\tconst dpr = renderer?.getPixelRatio?.() ?? 1;\n\t\tconst texWidth = Math.round(dimensions.width * dpr);\n\t\tconst texHeight = Math.round(dimensions.height * dpr);\n\t\tconst LONG_EDGE = Math.max(DEFAULT_COMPUTE_WIDTH, 640);\n\t\tconst aspect = texHeight > 0 ? texWidth / texHeight : 1;\n\t\tconst computeWidth = Math.max(8, aspect >= 1 ? LONG_EDGE : Math.round(LONG_EDGE * aspect));\n\t\tconst computeHeight = Math.max(8, aspect >= 1 ? Math.round(LONG_EDGE / aspect) : LONG_EDGE);\n\t\tconst brightTex = new StorageTexture(computeWidth, computeHeight);\n\t\tbrightTex.type = FloatType;\n\t\tconst brightWriteNode = storageTexture(brightTex);\n\t\tconst brightReadNode = storageTexture(brightTex).toReadOnly();\n\t\tonCleanup(() => {\n\t\t\tbrightTex.dispose();\n\t\t});\n\t\tconst { computeNodes: blurNodes, outputTexture: blurredTex, blurMapWriteNode } = createVariableGaussianBlurCompute(brightReadNode, computeWidth, computeHeight, onCleanup, void 0, computeWidth, computeHeight, { jitterTaps: true });\n\t\tconst inputWidthU = uniform(texWidth);\n\t\tconst inputHeightU = uniform(texHeight);\n\t\tconst cw = uint(computeWidth);\n\t\tconst ch = uint(computeHeight);\n\t\tconst sizeMapInfo = uniforms.size.mapComputeInfo;\n\t\tconst extractAndFill = Fn(() => {\n\t\t\tconst idx = instanceIndex;\n\t\t\tconst cx = idx.mod(cw);\n\t\t\tconst cy = idx.div(cw);\n\t\t\tIf(cy.lessThan(ch), () => {\n\t\t\t\tconst u = cx.toFloat().add(float(.5)).div(float(computeWidth));\n\t\t\t\tconst v = cy.toFloat().add(float(.5)).div(float(computeHeight));\n\t\t\t\tconst srcX = u.mul(inputWidthU).round().toInt().clamp(int(0), int(inputWidthU.sub(1))).toUint();\n\t\t\t\tconst srcY = v.mul(inputHeightU).round().toInt().clamp(int(0), int(inputHeightU.sub(1))).toUint();\n\t\t\t\tconst inputWm1 = int(inputWidthU.sub(1));\n\t\t\t\tconst inputHm1 = int(inputHeightU.sub(1));\n\t\t\t\tconst sample = vec4(0).toVar();\n\t\t\t\tfor (let ty = 0; ty < 4; ty++) for (let tx = 0; tx < 4; tx++) {\n\t\t\t\t\tconst su = cx.toFloat().add(float((tx + .5) / 4)).div(float(computeWidth));\n\t\t\t\t\tconst sv = cy.toFloat().add(float((ty + .5) / 4)).div(float(computeHeight));\n\t\t\t\t\tconst sx = su.mul(inputWidthU).toInt().clamp(int(0), inputWm1).toUint();\n\t\t\t\t\tconst sy = sv.mul(inputHeightU).toInt().clamp(int(0), inputHm1).toUint();\n\t\t\t\t\tsample.assign(sample.add(textureLoad(childTexture, uvec2(sx, sy), int(0))));\n\t\t\t\t}\n\t\t\t\tsample.assign(sample.mul(float(1 / 16)));\n\t\t\t\tconst threshold = uniforms.threshold.uniform;\n\t\t\t\tconst knee = threshold.mul(float(.5)).add(float(1e-4));\n\t\t\t\tconst lum = dot(sample.rgb, vec3(.2126, .7152, .0722));\n\t\t\t\tconst soft = clamp(lum.sub(threshold).add(knee), float(0), knee.mul(float(2)));\n\t\t\t\tconst mask = max(soft.mul(soft).div(knee.mul(float(4))), lum.sub(threshold)).div(max(lum, float(1e-4)));\n\t\t\t\ttextureStore(brightWriteNode, uvec2(cx, cy), vec4(sample.rgb.mul(mask), sample.a.mul(mask))).toWriteOnly();\n\t\t\t\tlet radius;\n\t\t\t\tif (sizeMapInfo) {\n\t\t\t\t\tconst { sourceTexture, channel, inputMin, inputMax, outputMin, outputMax, curve } = sizeMapInfo;\n\t\t\t\t\tconst mapSample = textureLoad(sourceTexture, uvec2(srcX, srcY), int(0));\n\t\t\t\t\tlet raw;\n\t\t\t\t\tif (channel === \"alpha\") raw = mapSample.a;\n\t\t\t\t\telse if (channel === \"alphaInverted\") raw = mapSample.a.oneMinus();\n\t\t\t\t\telse if (channel === \"luminanceInverted\") raw = dot(mapSample.rgb, vec3(.2126, .7152, .0722)).oneMinus();\n\t\t\t\t\telse raw = dot(mapSample.rgb, vec3(.2126, .7152, .0722));\n\t\t\t\t\tconst inputRange = inputMax.sub(inputMin).max(float(1e-4));\n\t\t\t\t\tradius = mix(outputMin, outputMax, pow(clamp(raw.sub(inputMin).div(inputRange), float(0), float(1)), pow(float(2), curve.negate().mul(float(2)))));\n\t\t\t\t} else radius = uniforms.size.uniform;\n\t\t\t\ttextureStore(blurMapWriteNode, uvec2(cx, cy), vec4(radius, float(0), float(0), float(1))).toWriteOnly();\n\t\t\t});\n\t\t})().compute(computeWidth * computeHeight, [256]);\n\t\tonResize(({ width, height }) => {\n\t\t\tconst newW = Math.round(width * dpr);\n\t\t\tconst newH = Math.round(height * dpr);\n\t\t\tinputWidthU.value = newW;\n\t\t\tinputHeightU.value = newH;\n\t\t});\n\t\treturn {\n\t\t\toutputs: {\n\t\t\t\tchildTexture,\n\t\t\t\tblurredTexture: blurredTex\n\t\t\t},\n\t\t\tgetComputeNodes: () => [extractAndFill, ...blurNodes]\n\t\t};\n\t},\n\tfragmentNode: ({ uniforms, childNode, onCleanup, computeOutputs }) => {\n\t\tif (!childNode) return vec4(0, 0, 0, 0);\n\t\tif (uniforms.size.uniform.value === 0) return childNode;\n\t\tif (computeOutputs?.blurredTexture) {\n\t\t\tconst original = computeOutputs.childTexture.sample(screenUV);\n\t\t\tconst bloom = texture(computeOutputs.blurredTexture).sample(screenUV);\n\t\t\tconst sizePin = uniforms.size.uniform.mul(float(0));\n\t\t\tconst intensity$1 = uniforms.intensity.uniform;\n\t\t\tconst finalColor = original.rgb.add(bloom.rgb.mul(intensity$1)).add(sizePin);\n\t\t\tconst glowAlpha = clamp(bloom.a.mul(intensity$1), float(0), float(1));\n\t\t\treturn unpremultiplyAlpha(vec4(finalColor, original.a.add(glowAlpha.mul(original.a.oneMinus()))));\n\t\t}\n\t\tconst childTexture = convertToTexture(childNode);\n\t\tonCleanup(() => {\n\t\t\tif (childTexture?.renderTarget?.dispose) childTexture.renderTarget.dispose();\n\t\t});\n\t\tconst originalColor = childTexture.sample(screenUV);\n\t\tconst weights = [\n\t\t\t.056,\n\t\t\t.135,\n\t\t\t.278,\n\t\t\t.487,\n\t\t\t.726,\n\t\t\t.923,\n\t\t\t1,\n\t\t\t.923,\n\t\t\t.726,\n\t\t\t.487,\n\t\t\t.278,\n\t\t\t.135,\n\t\t\t.056\n\t\t];\n\t\tconst weightSum = 6.214;\n\t\tconst horizontalTexture = convertToTexture(Fn(() => {\n\t\t\tconst blurRadius = uniforms.size.uniform;\n\t\t\tconst threshold = uniforms.threshold.uniform;\n\t\t\tconst pixelSize = vec2(1).div(viewportSize);\n\t\t\tconst total = vec4(0).toVar();\n\t\t\tfor (let x = -6; x <= 6; x++) {\n\t\t\t\tconst weight = float(weights[x + 6] / weightSum);\n\t\t\t\tconst offset = vec2(float(x), float(0)).mul(blurRadius).mul(pixelSize);\n\t\t\t\tconst sampleCoord = screenUV.add(offset);\n\t\t\t\tconst sampleColor = childTexture.sample(sampleCoord);\n\t\t\t\tconst luminance = dot(sampleColor.rgb, vec3(.299, .587, .114));\n\t\t\t\tconst brightnessMask = max(float(0), luminance.sub(threshold));\n\t\t\t\tconst brightColor = sampleColor.mul(brightnessMask);\n\t\t\t\ttotal.assign(total.add(brightColor.mul(weight)));\n\t\t\t}\n\t\t\treturn total;\n\t\t})());\n\t\tonCleanup(() => {\n\t\t\tif (horizontalTexture?.renderTarget?.dispose) horizontalTexture.renderTarget.dispose();\n\t\t});\n\t\tconst glowEffect = Fn(() => {\n\t\t\tconst blurRadius = uniforms.size.uniform;\n\t\t\tconst pixelSize = vec2(1).div(viewportSize);\n\t\t\tconst total = vec4(0).toVar();\n\t\t\tfor (let y = -6; y <= 6; y++) {\n\t\t\t\tconst weight = float(weights[y + 6] / weightSum);\n\t\t\t\tconst offset = vec2(float(0), float(y)).mul(blurRadius).mul(pixelSize);\n\t\t\t\tconst sampleCoord = screenUV.add(offset);\n\t\t\t\ttotal.assign(total.add(horizontalTexture.sample(sampleCoord).mul(weight)));\n\t\t\t}\n\t\t\treturn total;\n\t\t})();\n\t\tconst intensity = uniforms.intensity.uniform;\n\t\tconst intensifiedGlow = glowEffect.mul(intensity);\n\t\treturn unpremultiplyAlpha(vec4(originalColor.rgb.add(intensifiedGlow.rgb), max(originalColor.a, intensifiedGlow.a)));\n\t}\n};\nvar Glow_default = componentDefinition;\nexport { componentDefinition as n, Glow_default as t };\n","import { a as transformColor, l as transformPosition } from \"./transformations-CJcUeZIC.js\";\nimport { t as createAnimatedTime } from \"./time-DUqSFWvT.js\";\nimport { Fn, PI, abs, atan, clamp, float, length, mix, pow, screenUV, sin, smoothstep, vec2, vec4, viewportSize } from \"three/tsl\";\nconst componentDefinition = {\n\tname: \"Godrays\",\n\tcategory: \"Textures\",\n\tdescription: \"Volumetric light rays emanating from a point\",\n\trequiresRTT: false,\n\tprops: {\n\t\tcenter: {\n\t\t\tdefault: {\n\t\t\t\tx: 0,\n\t\t\t\ty: 0\n\t\t\t},\n\t\t\ttransform: transformPosition,\n\t\t\tdescription: \"The center point of the god rays\",\n\t\t\tui: {\n\t\t\t\ttype: \"position\",\n\t\t\t\tlabel: \"Center\",\n\t\t\t\tgroup: \"Position\"\n\t\t\t}\n\t\t},\n\t\tdensity: {\n\t\t\tdefault: .3,\n\t\t\tdescription: \"Frequency of ray sectors\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Density\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tintensity: {\n\t\t\tdefault: .8,\n\t\t\tdescription: \"Ray visibility within sectors\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Intensity\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tspotty: {\n\t\t\tdefault: 1,\n\t\t\tdescription: \"Density of spots on rays (higher = more spots)\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Spotty\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tspeed: {\n\t\t\tdefault: .5,\n\t\t\tdescription: \"Animation speed of the rays\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 2,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Speed\",\n\t\t\t\tgroup: \"Animation\"\n\t\t\t}\n\t\t},\n\t\trayColor: {\n\t\t\tdefault: \"#4283fb\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Color of the light rays\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Ray Color\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tbackgroundColor: {\n\t\t\tdefault: \"transparent\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Background color\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Background Color\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t}\n\t},\n\tfragmentNode: (params) => {\n\t\tconst { uniforms } = params;\n\t\tconst uv$1 = screenUV;\n\t\tconst aspect = viewportSize.x.div(viewportSize.y);\n\t\tconst centerPos = vec2(uniforms.center.uniform.x, uniforms.center.uniform.y.oneMinus());\n\t\tconst delta = uv$1.sub(centerPos);\n\t\tconst shapeUV = vec2(delta.x.mul(aspect), delta.y);\n\t\tconst valueNoise = Fn(([st]) => {\n\t\t\tconst i = st.floor();\n\t\t\tconst f = st.fract();\n\t\t\tconst hash = (p) => {\n\t\t\t\treturn sin(p.x.mul(127.1).add(p.y.mul(311.7))).mul(43758.5453).fract();\n\t\t\t};\n\t\t\tconst a = hash(i);\n\t\t\tconst b = hash(i.add(vec2(1, 0)));\n\t\t\tconst c = hash(i.add(vec2(0, 1)));\n\t\t\tconst d = hash(i.add(vec2(1, 1)));\n\t\t\tconst u = f.mul(f).mul(f.mul(-2).add(3));\n\t\t\treturn mix(mix(a, b, u.x), mix(c, d, u.x), u.y);\n\t\t});\n\t\tconst angle = atan(shapeUV.y, shapeUV.x);\n\t\tconst angleWrapped = angle.mod(PI.mul(2));\n\t\tconst blendFactor = smoothstep(-.15, .15, shapeUV.x);\n\t\tconst raysShape = Fn(([a, aWrapped, blend, r, freq, intensity]) => {\n\t\t\tconst left = vec2(a.mul(freq), r);\n\t\t\tconst right = vec2(aWrapped.mul(freq), r);\n\t\t\tconst nLeft = pow(valueNoise(left), intensity);\n\t\t\treturn mix(pow(valueNoise(right), intensity), nLeft, blend);\n\t\t});\n\t\tconst animTime = createAnimatedTime(params, uniforms.speed).mul(.2);\n\t\tconst rayEffect = Fn(() => {\n\t\t\tconst radius = length(shapeUV);\n\t\t\tconst spots = float(6.5).mul(abs(uniforms.spotty.uniform));\n\t\t\tconst intensityCalc = float(4).sub(float(3).mul(clamp(uniforms.intensity.uniform, 0, 1)));\n\t\t\tconst density = float(6).mul(uniforms.density.uniform);\n\t\t\tconst accumRay = float(0).toVar();\n\t\t\tconst r1 = radius.mul(1).sub(animTime.mul(3));\n\t\t\tconst r2 = radius.mul(.5).mul(float(1).add(spots)).sub(animTime.mul(2));\n\t\t\tconst f1 = density.mul(5);\n\t\t\tconst ray = raysShape(angle, angleWrapped, blendFactor, r1, f1, intensityCalc).toVar();\n\t\t\tray.assign(ray.mul(raysShape(angle, angleWrapped, blendFactor, r2, f1.mul(4), intensityCalc)));\n\t\t\taccumRay.assign(accumRay.add(ray));\n\t\t\tconst r3 = radius.mul(1.4).sub(animTime.mul(2.5));\n\t\t\tconst r4 = radius.mul(.7).mul(float(1).add(spots)).sub(animTime.mul(1.8));\n\t\t\tconst f2 = density.mul(4.5);\n\t\t\tconst ray2 = raysShape(angle, angleWrapped, blendFactor, r3, f2, intensityCalc).toVar();\n\t\t\tray2.assign(ray2.mul(raysShape(angle, angleWrapped, blendFactor, r4, f2.mul(3.5), intensityCalc)));\n\t\t\taccumRay.assign(accumRay.add(ray2.mul(.7)));\n\t\t\treturn clamp(accumRay, 0, 1);\n\t\t})();\n\t\tconst rayColorRGB = uniforms.rayColor.uniform.rgb;\n\t\tconst rayColorA = uniforms.rayColor.uniform.a;\n\t\tconst bgColorRGB = uniforms.backgroundColor.uniform.rgb;\n\t\tconst bgColorA = uniforms.backgroundColor.uniform.a;\n\t\tconst rayAlpha = rayEffect.mul(rayColorA);\n\t\tconst finalAlpha = rayAlpha.add(bgColorA.mul(float(1).sub(rayAlpha)));\n\t\tconst safeAlpha = clamp(finalAlpha, .001, 1);\n\t\tconst rayContribution = rayColorRGB.mul(rayAlpha);\n\t\tconst bgContribution = bgColorRGB.mul(bgColorA).mul(float(1).sub(rayAlpha));\n\t\treturn vec4(rayContribution.add(bgContribution).div(safeAlpha), finalAlpha);\n\t}\n};\nvar Godrays_default = componentDefinition;\nexport { componentDefinition as n, Godrays_default as t };\n","import { dot, vec3, vec4 } from \"three/tsl\";\nconst componentDefinition = {\n\tname: \"Grayscale\",\n\tcategory: \"Adjustments\",\n\tdescription: \"Convert colors to black and white\",\n\trequiresChild: true,\n\tprops: {},\n\tfragmentNode: ({ childNode }) => {\n\t\tif (!childNode) {\n\t\t\tconsole.error(\"You must pass a child component into the Grayscale shader.\");\n\t\t\treturn vec4(0);\n\t\t}\n\t\tconst luminance = dot(childNode.rgb, vec3(.2126, .7152, .0722));\n\t\treturn vec4(luminance, luminance, luminance, childNode.a);\n\t}\n};\nvar Grayscale_default = componentDefinition;\nexport { componentDefinition as n, Grayscale_default as t };\n","import { a as transformColor } from \"./transformations-CJcUeZIC.js\";\nimport { cos, float, floor, fract, fwidth, max, screenUV, sin, smoothstep, step, vec2, vec4, viewportSize } from \"three/tsl\";\nconst componentDefinition = {\n\tname: \"Grid\",\n\tcategory: \"Textures\",\n\tdescription: \"Simple grid lines pattern with adjustable thickness and rotation\",\n\tprops: {\n\t\tcolor: {\n\t\t\tdefault: \"#ffffff\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"The color of the grid lines\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Color\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tcells: {\n\t\t\tdefault: 10,\n\t\t\tdescription: \"Number of cells along the shortest canvas edge (creates square cells)\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 1,\n\t\t\t\tmax: 50,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Cells\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tthickness: {\n\t\t\tdefault: 1,\n\t\t\tdescription: \"Thickness of grid lines (normalized, 0.0-1.0)\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 20,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Thickness\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\trotation: {\n\t\t\tdefault: 0,\n\t\t\tdescription: \"Rotation of the grid in degrees. At 45° this produces a crosshatch/diamond pattern.\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 360,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Rotation\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t}\n\t},\n\tmapSampleUVs: (uniforms) => {\n\t\tconst aspect = viewportSize.x.div(viewportSize.y);\n\t\tconst correctedUV = vec2(screenUV.x.mul(aspect), screenUV.y.oneMinus());\n\t\tconst rotRad = uniforms.rotation.uniform.mul(float(Math.PI / 180));\n\t\tconst cosR = cos(rotRad);\n\t\tconst sinR = sin(rotRad);\n\t\tconst center = vec2(aspect.mul(float(.5)), float(.5));\n\t\tconst centered = correctedUV.sub(center);\n\t\tconst cellCentered = floor(vec2(centered.x.mul(cosR).sub(centered.y.mul(sinR)), centered.x.mul(sinR).add(centered.y.mul(cosR))).add(center).mul(uniforms.cells.uniform)).add(.5).div(uniforms.cells.uniform).sub(center);\n\t\tconst unrotated = vec2(cellCentered.x.mul(cosR).add(cellCentered.y.mul(sinR)), cellCentered.x.mul(sinR).negate().add(cellCentered.y.mul(cosR))).add(center);\n\t\tconst cellCenterScreen = vec2(unrotated.x.div(aspect), unrotated.y.oneMinus());\n\t\treturn {\n\t\t\tthickness: cellCenterScreen,\n\t\t\tcells: cellCenterScreen,\n\t\t\trotation: cellCenterScreen\n\t\t};\n\t},\n\tfragmentNode: ({ uniforms }) => {\n\t\tconst uv$1 = screenUV;\n\t\tconst aspect = viewportSize.x.div(viewportSize.y);\n\t\tconst correctedUV = vec2(uv$1.x.mul(aspect), uv$1.y.oneMinus());\n\t\tconst rotRad = uniforms.rotation.uniform.mul(float(Math.PI / 180));\n\t\tconst cosR = cos(rotRad);\n\t\tconst sinR = sin(rotRad);\n\t\tconst center = vec2(aspect.mul(float(.5)), float(.5));\n\t\tconst centered = correctedUV.sub(center);\n\t\tconst rotated = vec2(centered.x.mul(cosR).sub(centered.y.mul(sinR)), centered.x.mul(sinR).add(centered.y.mul(cosR))).add(center);\n\t\tconst cells = uniforms.cells.uniform;\n\t\tconst gridUV = rotated.mul(cells);\n\t\tconst gridFract = fract(gridUV);\n\t\tconst lineWidth = uniforms.thickness.uniform.mul(.01);\n\t\tconst distToLineX = gridFract.x.min(gridFract.x.oneMinus());\n\t\tconst distToLineY = gridFract.y.min(gridFract.y.oneMinus());\n\t\tconst pixelSize = fwidth(gridUV);\n\t\tconst gridMask = max(smoothstep(lineWidth.add(pixelSize.x), lineWidth, distToLineX), smoothstep(lineWidth.add(pixelSize.y), lineWidth, distToLineY)).mul(step(1e-4, lineWidth));\n\t\treturn vec4(uniforms.color.uniform.rgb, uniforms.color.uniform.a.mul(gridMask));\n\t}\n};\nvar Grid_default = componentDefinition;\nexport { componentDefinition as n, Grid_default as t };\n","import { t as applyEdgeHandling } from \"./edges-CX_lJB9R.js\";\nimport { c as transformEdges } from \"./transformations-CJcUeZIC.js\";\nimport { t as unpremultiplyAlpha } from \"./alpha-C4ptedXe.js\";\nimport { StorageTexture } from \"three/webgpu\";\nimport { DataTexture, FloatType, LinearFilter as LinearFilter$1, RGFormat } from \"three\";\nimport { Fn, If, attributeArray, convertToTexture, float, instanceIndex, screenUV, storageTexture, texture, textureStore, uint, uniform, uvec2, vec2, vec4, viewportSize } from \"three/tsl\";\nvar DEFAULT_GRID_SIZE = 20;\nvar displacementStateCache = /* @__PURE__ */ new WeakMap();\nvar getOrCreateDisplacementState = (uniforms) => {\n\tlet state = displacementStateCache.get(uniforms);\n\tconst gridSize = uniforms?.gridSize?.uniform?.value ? Math.max(8, Math.min(128, Math.floor(uniforms.gridSize.uniform.value))) : DEFAULT_GRID_SIZE;\n\tif (state && state.gridSize !== gridSize) {\n\t\tstate.dataTexture.dispose();\n\t\tstate = void 0;\n\t\tdisplacementStateCache.delete(uniforms);\n\t}\n\tif (!state) {\n\t\tconst data = new Float32Array(gridSize * gridSize * 2);\n\t\tconst dataTexture = new DataTexture(data, gridSize, gridSize, RGFormat, FloatType);\n\t\tdataTexture.magFilter = LinearFilter$1;\n\t\tdataTexture.minFilter = LinearFilter$1;\n\t\tdataTexture.needsUpdate = true;\n\t\tstate = {\n\t\t\tdataTexture,\n\t\t\tdata,\n\t\t\ttslNode: texture(dataTexture),\n\t\t\tgridSize\n\t\t};\n\t\tdisplacementStateCache.set(uniforms, state);\n\t}\n\treturn state;\n};\nconst componentDefinition = {\n\tname: \"GridDistortion\",\n\tcategory: \"Interactive\",\n\tdescription: \"Interactive grid distortion controlled by mouse position\",\n\trequiresRTT: true,\n\trequiresChild: true,\n\tusesPointer: true,\n\tprops: {\n\t\tintensity: {\n\t\t\tdefault: 1,\n\t\t\tdescription: \"Strength of the distortion effect\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 5,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Intensity\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tdecay: {\n\t\t\tdefault: 3,\n\t\t\tdescription: \"Rate of distortion decay (higher = faster)\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 10,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Decay\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tradius: {\n\t\t\tdefault: 1,\n\t\t\tdescription: \"Radius of the distortion effect\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 3,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Radius\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tgridSize: {\n\t\t\tdefault: 20,\n\t\t\tdescription: \"Resolution of the distortion grid (higher = more detailed)\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 8,\n\t\t\t\tmax: 128,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Grid Size\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tedges: {\n\t\t\tdefault: \"stretch\",\n\t\t\tdescription: \"How to handle edges when distortion pushes content out of bounds\",\n\t\t\ttransform: transformEdges,\n\t\t\tcompileTime: true,\n\t\t\tui: {\n\t\t\t\ttype: \"select\",\n\t\t\t\toptions: [\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Stretch\",\n\t\t\t\t\t\tvalue: \"stretch\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Transparent\",\n\t\t\t\t\t\tvalue: \"transparent\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Mirror\",\n\t\t\t\t\t\tvalue: \"mirror\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Wrap\",\n\t\t\t\t\t\tvalue: \"wrap\"\n\t\t\t\t\t}\n\t\t\t\t],\n\t\t\t\tlabel: \"Edges\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t}\n\t},\n\tcomputeNode: ({ uniforms, onCleanup }) => {\n\t\tconst GRID_SIZE = uniforms?.gridSize?.uniform?.value ? Math.max(8, Math.min(128, Math.floor(uniforms.gridSize.uniform.value))) : DEFAULT_GRID_SIZE;\n\t\tconst buffer = attributeArray(GRID_SIZE * GRID_SIZE, \"vec4\");\n\t\tconst dispTex = new StorageTexture(GRID_SIZE, GRID_SIZE);\n\t\tdispTex.type = FloatType;\n\t\tconst dispTexNode = storageTexture(dispTex);\n\t\tonCleanup(() => {\n\t\t\tdispTex.dispose();\n\t\t});\n\t\tconst cursorXU = uniform(.5);\n\t\tconst cursorYU = uniform(.5);\n\t\tconst mouseVelXU = uniform(0);\n\t\tconst mouseVelYU = uniform(0);\n\t\tconst dtU = uniform(.016);\n\t\tconst decayU = uniform(3);\n\t\tconst intensityU = uniform(1);\n\t\tconst radiusU = uniform(.05);\n\t\tconst aspectU = uniform(1);\n\t\tconst gs = uint(GRID_SIZE);\n\t\tconst updatePass = Fn(() => {\n\t\t\tconst idx = instanceIndex;\n\t\t\tconst j = idx.mod(gs);\n\t\t\tconst i = idx.div(gs);\n\t\t\tconst cell = buffer.element(idx);\n\t\t\tconst dx = cell.x.mul(float(1).sub(decayU.mul(dtU))).toVar();\n\t\t\tconst dy = cell.y.mul(float(1).sub(decayU.mul(dtU))).toVar();\n\t\t\tconst cellX = j.toFloat().add(float(.5)).div(float(GRID_SIZE));\n\t\t\tconst cellY = i.toFloat().add(float(.5)).div(float(GRID_SIZE));\n\t\t\tconst ddx = aspectU.greaterThanEqual(float(1)).select(cellX.sub(cursorXU).mul(aspectU), cellX.sub(cursorXU));\n\t\t\tconst ddy = aspectU.greaterThanEqual(float(1)).select(cellY.sub(cursorYU), cellY.sub(cursorYU).div(aspectU));\n\t\t\tconst distSq = ddx.mul(ddx).add(ddy.mul(ddy));\n\t\t\tconst radius2 = radiusU.mul(float(2));\n\t\t\tIf(distSq.lessThan(radius2.mul(radius2)).and(mouseVelXU.abs().add(mouseVelYU.abs()).greaterThan(float(.01))), () => {\n\t\t\t\tconst influence = distSq.negate().div(radiusU.mul(radiusU)).exp();\n\t\t\t\tdx.assign(dx.add(mouseVelXU.mul(influence).mul(intensityU).mul(dtU).mul(float(.5))));\n\t\t\t\tdy.assign(dy.add(mouseVelYU.mul(influence).mul(intensityU).mul(dtU).mul(float(.5))));\n\t\t\t});\n\t\t\tdx.assign(dx.clamp(float(-1), float(1)));\n\t\t\tdy.assign(dy.clamp(float(-1), float(1)));\n\t\t\tbuffer.element(idx).assign(vec4(dx, dy, float(0), float(0)));\n\t\t})().compute(GRID_SIZE * GRID_SIZE, [256]);\n\t\tconst outputPass = Fn(() => {\n\t\t\tconst idx = instanceIndex;\n\t\t\tconst j = idx.mod(gs);\n\t\t\tconst i = idx.div(gs);\n\t\t\tconst cell = buffer.element(idx);\n\t\t\ttextureStore(dispTexNode, uvec2(j, i), vec4(cell.x, cell.y, float(0), float(1))).toWriteOnly();\n\t\t})().compute(GRID_SIZE * GRID_SIZE, [256]);\n\t\tlet prevX = .5;\n\t\tlet prevY = .5;\n\t\tlet lastTime = Date.now();\n\t\tlet lastActiveTime = Date.now();\n\t\tlet smoothVelX = 0;\n\t\tlet smoothVelY = 0;\n\t\treturn {\n\t\t\toutputs: {\n\t\t\t\tdisplacement: dispTex,\n\t\t\t\tgridSize: GRID_SIZE\n\t\t\t},\n\t\t\tgetComputeNodes: (params) => {\n\t\t\t\tconst currentTime = Date.now();\n\t\t\t\tconst dt = Math.min((currentTime - lastTime) / 1e3, .016);\n\t\t\t\tlastTime = currentTime;\n\t\t\t\tconst aspect = Math.max(1, params.dimensions.width) / Math.max(1, params.dimensions.height);\n\t\t\t\tconst velX = dt > 0 ? (params.pointer.x - prevX) / dt : 0;\n\t\t\t\tconst velY = dt > 0 ? (params.pointer.y - prevY) / dt : 0;\n\t\t\t\tsmoothVelX = smoothVelX * .85 + velX * .15;\n\t\t\t\tsmoothVelY = smoothVelY * .85 + velY * .15;\n\t\t\t\tprevX = params.pointer.x;\n\t\t\t\tprevY = params.pointer.y;\n\t\t\t\tif (Math.abs(velX) + Math.abs(velY) > .01) lastActiveTime = currentTime;\n\t\t\t\tconst decayVal = uniforms.decay.uniform.value;\n\t\t\t\tconst settleTime = decayVal > 0 ? Math.min(3e4, Math.log(1e-4) / Math.log(Math.max(1e-6, 1 - decayVal * .016)) * 16.67) : 3e4;\n\t\t\t\tif (currentTime - lastActiveTime > settleTime) return null;\n\t\t\t\tcursorXU.value = params.pointer.x;\n\t\t\t\tcursorYU.value = params.pointer.y;\n\t\t\t\tmouseVelXU.value = smoothVelX;\n\t\t\t\tmouseVelYU.value = smoothVelY;\n\t\t\t\tdtU.value = dt;\n\t\t\t\tdecayU.value = uniforms.decay.uniform.value;\n\t\t\t\tintensityU.value = uniforms.intensity.uniform.value;\n\t\t\t\tradiusU.value = uniforms.radius.uniform.value * .05;\n\t\t\t\taspectU.value = aspect;\n\t\t\t\treturn [updatePass, outputPass];\n\t\t\t}\n\t\t};\n\t},\n\tfragmentNode: ({ uniforms, onBeforeRender, childNode, onCleanup, computeOutputs }) => {\n\t\tlet displacementField;\n\t\tlet GRID_SIZE;\n\t\tif (computeOutputs?.displacement) {\n\t\t\tdisplacementField = texture(computeOutputs.displacement);\n\t\t\tGRID_SIZE = computeOutputs.gridSize;\n\t\t} else {\n\t\t\tconst state = getOrCreateDisplacementState(uniforms);\n\t\t\tdisplacementField = state.tslNode;\n\t\t\tGRID_SIZE = state.gridSize;\n\t\t\tconst { dataTexture: displacementTexture, data: displacementData } = state;\n\t\t\tconst mouseVelX = uniform(0);\n\t\t\tconst mouseVelY = uniform(0);\n\t\t\tlet prevX = .5, prevY = .5, lastTime = Date.now();\n\t\t\tonBeforeRender(({ pointer, dimensions }) => {\n\t\t\t\tconst currentTime = Date.now();\n\t\t\t\tconst dt = Math.min((currentTime - lastTime) / 1e3, .016);\n\t\t\t\tlastTime = currentTime;\n\t\t\t\tconst aspect$1 = Math.max(1, dimensions.width) / Math.max(1, dimensions.height);\n\t\t\t\tconst velX = dt > 0 ? (pointer.x - prevX) / dt : 0;\n\t\t\t\tconst velY = dt > 0 ? (pointer.y - prevY) / dt : 0;\n\t\t\t\tmouseVelX.value = mouseVelX.value * .85 + velX * .15;\n\t\t\t\tmouseVelY.value = mouseVelY.value * .85 + velY * .15;\n\t\t\t\tconst decay = uniforms.decay.uniform.value;\n\t\t\t\tconst intensity = uniforms.intensity.uniform.value;\n\t\t\t\tconst radius = uniforms.radius.uniform.value * .05;\n\t\t\t\tfor (let i = 0; i < GRID_SIZE; i++) for (let j = 0; j < GRID_SIZE; j++) {\n\t\t\t\t\tconst idx = (i * GRID_SIZE + j) * 2;\n\t\t\t\t\tdisplacementData[idx] *= 1 - decay * dt;\n\t\t\t\t\tdisplacementData[idx + 1] *= 1 - decay * dt;\n\t\t\t\t\tconst cellX = (j + .5) / GRID_SIZE;\n\t\t\t\t\tconst cellY = (i + .5) / GRID_SIZE;\n\t\t\t\t\tconst dx = aspect$1 >= 1 ? (cellX - pointer.x) * aspect$1 : cellX - pointer.x;\n\t\t\t\t\tconst dy = aspect$1 >= 1 ? cellY - pointer.y : (cellY - pointer.y) / aspect$1;\n\t\t\t\t\tconst dist = Math.sqrt(dx * dx + dy * dy);\n\t\t\t\t\tif (dist < radius * 2 && Math.abs(velX) + Math.abs(velY) > .01) {\n\t\t\t\t\t\tconst influence = Math.exp(-dist * dist / (radius * radius));\n\t\t\t\t\t\tdisplacementData[idx] += mouseVelX.value * influence * intensity * dt * .5;\n\t\t\t\t\t\tdisplacementData[idx + 1] += mouseVelY.value * influence * intensity * dt * .5;\n\t\t\t\t\t}\n\t\t\t\t\tdisplacementData[idx] = Math.max(-1, Math.min(1, displacementData[idx]));\n\t\t\t\t\tdisplacementData[idx + 1] = Math.max(-1, Math.min(1, displacementData[idx + 1]));\n\t\t\t\t}\n\t\t\t\tdisplacementTexture.needsUpdate = true;\n\t\t\t\tprevX = pointer.x;\n\t\t\t\tprevY = pointer.y;\n\t\t\t});\n\t\t\tonCleanup(() => {\n\t\t\t\tdisplacementTexture.dispose();\n\t\t\t\tdisplacementStateCache.delete(uniforms);\n\t\t\t});\n\t\t}\n\t\tif (!childNode) return vec4(0, 0, 0, 0);\n\t\tconst childTexture = convertToTexture(childNode);\n\t\tonCleanup(() => {\n\t\t\tif (childTexture?.renderTarget?.dispose) childTexture.renderTarget.dispose();\n\t\t});\n\t\tconst aspect = viewportSize.x.div(viewportSize.y);\n\t\tconst gridSizeUniform = uniforms.gridSize.uniform;\n\t\tconst isWide = aspect.greaterThan(float(1));\n\t\tconst cellsX = isWide.select(gridSizeUniform, gridSizeUniform.mul(aspect)).max(float(1));\n\t\tconst cellsY = isWide.select(gridSizeUniform.div(aspect), gridSizeUniform).max(float(1));\n\t\tconst cellIndexX = screenUV.x.mul(cellsX).floor();\n\t\tconst cellIndexY = screenUV.y.mul(cellsY).floor();\n\t\tconst gridCellUV = vec2(cellIndexX.add(.5).div(cellsX), cellIndexY.add(.5).div(cellsY));\n\t\tconst displacement = displacementField.sample(gridCellUV).xy;\n\t\tconst maxDisplacement = float(.1);\n\t\tconst clampedDisplacement = displacement.clamp(vec2(maxDisplacement.negate(), maxDisplacement.negate()), vec2(maxDisplacement, maxDisplacement));\n\t\tconst distortedUV = screenUV.sub(clampedDisplacement);\n\t\treturn unpremultiplyAlpha(applyEdgeHandling(distortedUV, childTexture.sample(distortedUV), childTexture, uniforms.edges.uniform.value));\n\t}\n};\nvar GridDistortion_default = componentDefinition;\nexport { componentDefinition as n, GridDistortion_default as t };\n","import { vec4 } from \"three/tsl\";\nconst componentDefinition = {\n\tname: \"Group\",\n\tcategory: \"Utilities\",\n\tdescription: \"Container for organizing and composing child effects\",\n\trequiresChild: true,\n\tprops: {},\n\tfragmentNode: ({ childNode }) => {\n\t\treturn childNode || vec4(0);\n\t}\n};\nvar Group_default = componentDefinition;\nexport { componentDefinition as n, Group_default as t };\n","import { a as transformColor, r as transformAngle } from \"./transformations-CJcUeZIC.js\";\nimport { t as unpremultiplyAlpha } from \"./alpha-C4ptedXe.js\";\nimport { convertToTexture, cos, dot, float, fract, length, max, mix, radians, screenUV, sin, smoothstep, vec2, vec3, vec4, viewportSize } from \"three/tsl\";\nvar transformStyle = (value) => {\n\treturn value === \"cmyk\" ? 1 : 0;\n};\nconst componentDefinition = {\n\tname: \"Halftone\",\n\tcategory: \"Stylize\",\n\tdescription: \"Halftone dot pattern effect for printing aesthetics\",\n\trequiresRTT: true,\n\trequiresChild: true,\n\tprops: {\n\t\tstyle: {\n\t\t\tdefault: \"classic\",\n\t\t\ttransform: transformStyle,\n\t\t\tcompileTime: true,\n\t\t\tdescription: \"Halftone rendering style\",\n\t\t\tui: {\n\t\t\t\ttype: \"select\",\n\t\t\t\toptions: [{\n\t\t\t\t\tlabel: \"Simple\",\n\t\t\t\t\tvalue: \"classic\"\n\t\t\t\t}, {\n\t\t\t\t\tlabel: \"CMYK Print\",\n\t\t\t\t\tvalue: \"cmyk\"\n\t\t\t\t}],\n\t\t\t\tlabel: \"Style\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tfrequency: {\n\t\t\tdefault: 100,\n\t\t\tdescription: \"Frequency of the halftone dots\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 10,\n\t\t\t\tmax: 300,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Frequency\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tangle: {\n\t\t\tdefault: 45,\n\t\t\ttransform: transformAngle,\n\t\t\tdescription: \"Rotation angle of the pattern (in degrees)\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 360,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Angle\",\n\t\t\t\tgroup: \"Effect\",\n\t\t\t\tcondition: { style: \"classic\" }\n\t\t\t}\n\t\t},\n\t\tcyanAngle: {\n\t\t\tdefault: 15,\n\t\t\ttransform: transformAngle,\n\t\t\tdescription: \"Screen angle for the cyan plate (in degrees)\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 360,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Cyan Angle\",\n\t\t\t\tgroup: \"Plate Angles\",\n\t\t\t\tcondition: { style: \"cmyk\" }\n\t\t\t}\n\t\t},\n\t\tmagentaAngle: {\n\t\t\tdefault: 75,\n\t\t\ttransform: transformAngle,\n\t\t\tdescription: \"Screen angle for the magenta plate (in degrees)\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 360,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Magenta Angle\",\n\t\t\t\tgroup: \"Plate Angles\",\n\t\t\t\tcondition: { style: \"cmyk\" }\n\t\t\t}\n\t\t},\n\t\tyellowAngle: {\n\t\t\tdefault: 0,\n\t\t\ttransform: transformAngle,\n\t\t\tdescription: \"Screen angle for the yellow plate (in degrees)\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 360,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Yellow Angle\",\n\t\t\t\tgroup: \"Plate Angles\",\n\t\t\t\tcondition: { style: \"cmyk\" }\n\t\t\t}\n\t\t},\n\t\tblackAngle: {\n\t\t\tdefault: 45,\n\t\t\ttransform: transformAngle,\n\t\t\tdescription: \"Screen angle for the black plate (in degrees)\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 360,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Black Angle\",\n\t\t\t\tgroup: \"Plate Angles\",\n\t\t\t\tcondition: { style: \"cmyk\" }\n\t\t\t}\n\t\t},\n\t\tmisprint: {\n\t\t\tdefault: 0,\n\t\t\tdescription: \"Simulated mis-registration between plates. Plates are offset around the misprint angle, producing colour fringing at the edges of inked regions.\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: .01,\n\t\t\t\tstep: 5e-4,\n\t\t\t\tlabel: \"Misprint\",\n\t\t\t\tgroup: \"Effect\",\n\t\t\t\tcondition: { style: \"cmyk\" }\n\t\t\t}\n\t\t},\n\t\tmisprintAngle: {\n\t\t\tdefault: 0,\n\t\t\ttransform: transformAngle,\n\t\t\tdescription: \"Direction the plates drift apart. Rotating this rotates the colour-fringing pattern.\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 360,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Misprint Angle\",\n\t\t\t\tgroup: \"Effect\",\n\t\t\t\tcondition: { style: \"cmyk\" }\n\t\t\t}\n\t\t},\n\t\tpaperColor: {\n\t\t\tdefault: \"#ffffff\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Paper/substrate color shown where no ink lands\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Paper\",\n\t\t\t\tgroup: \"Inks\",\n\t\t\t\tcondition: { style: \"cmyk\" }\n\t\t\t}\n\t\t},\n\t\tcyanColor: {\n\t\t\tdefault: \"#00ffff\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Cyan ink color\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Cyan\",\n\t\t\t\tgroup: \"Inks\",\n\t\t\t\tcondition: { style: \"cmyk\" }\n\t\t\t}\n\t\t},\n\t\tmagentaColor: {\n\t\t\tdefault: \"#ff00ff\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Magenta ink color\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Magenta\",\n\t\t\t\tgroup: \"Inks\",\n\t\t\t\tcondition: { style: \"cmyk\" }\n\t\t\t}\n\t\t},\n\t\tyellowColor: {\n\t\t\tdefault: \"#ffff00\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Yellow ink color\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Yellow\",\n\t\t\t\tgroup: \"Inks\",\n\t\t\t\tcondition: { style: \"cmyk\" }\n\t\t\t}\n\t\t},\n\t\tblackColor: {\n\t\t\tdefault: \"#000000\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Black (key) ink color\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Black\",\n\t\t\t\tgroup: \"Inks\",\n\t\t\t\tcondition: { style: \"cmyk\" }\n\t\t\t}\n\t\t}\n\t},\n\tfragmentNode: ({ uniforms, childNode, onCleanup }) => {\n\t\tif (!childNode) return vec4(0);\n\t\tconst frequency = uniforms.frequency.uniform;\n\t\tconst smoothness = float(.1);\n\t\tconst aspect = viewportSize.x.div(viewportSize.y);\n\t\tconst aspectUV = vec2(screenUV.x.mul(aspect), screenUV.y);\n\t\tconst rotateUV = (uv$1, angleRad) => {\n\t\t\tconst c$1 = cos(angleRad);\n\t\t\tconst s = sin(angleRad);\n\t\t\treturn vec2(dot(uv$1, vec2(c$1, s.negate())), dot(uv$1, vec2(s, c$1)));\n\t\t};\n\t\tconst dotMask = (rotatedUV, intensity) => {\n\t\t\tconst dist = length(fract(rotatedUV.mul(frequency)).sub(.5));\n\t\t\tconst size = intensity.mul(.75).sub(smoothness);\n\t\t\treturn smoothstep(size.sub(smoothness), size.add(smoothness), dist).oneMinus();\n\t\t};\n\t\tif (uniforms.style.uniform.value === 0) {\n\t\t\tconst gridUV = fract(rotateUV(aspectUV, radians(uniforms.angle.uniform)).mul(frequency)).sub(.5);\n\t\t\tconst dotSize = dot(childNode.rgb, vec3(.299, .587, .114)).mul(.7).add(.15);\n\t\t\tconst dist = length(gridUV);\n\t\t\tconst dotPattern = smoothstep(dotSize.sub(smoothness), dotSize.add(smoothness), dist).oneMinus();\n\t\t\treturn vec4(childNode.rgb.mul(dotPattern), childNode.a.mul(dotPattern));\n\t\t}\n\t\tconst childTexture = convertToTexture(childNode);\n\t\tonCleanup(() => {\n\t\t\tif (childTexture?.renderTarget?.dispose) childTexture.renderTarget.dispose();\n\t\t});\n\t\tconst misprint = uniforms.misprint.uniform;\n\t\tconst misprintAngleRad = radians(uniforms.misprintAngle.uniform);\n\t\tconst cAngleRad = radians(uniforms.cyanAngle.uniform);\n\t\tconst mAngleRad = radians(uniforms.magentaAngle.uniform);\n\t\tconst yAngleRad = radians(uniforms.yellowAngle.uniform);\n\t\tconst kAngleRad = radians(uniforms.blackAngle.uniform);\n\t\tconst plateOffset = (offsetAngleRad) => {\n\t\t\treturn vec2(cos(offsetAngleRad).mul(misprint), sin(offsetAngleRad).mul(misprint).div(aspect));\n\t\t};\n\t\tconst cSampleUV = screenUV.add(plateOffset(misprintAngleRad));\n\t\tconst mSampleUV = screenUV.add(plateOffset(misprintAngleRad.add(radians(float(90)))));\n\t\tconst ySampleUV = screenUV.add(plateOffset(misprintAngleRad.add(radians(float(180)))));\n\t\tconst kSampleUV = screenUV.add(plateOffset(misprintAngleRad.add(radians(float(270)))));\n\t\tconst cSample = unpremultiplyAlpha(childTexture.sample(cSampleUV));\n\t\tconst mSample = unpremultiplyAlpha(childTexture.sample(mSampleUV));\n\t\tconst ySample = unpremultiplyAlpha(childTexture.sample(ySampleUV));\n\t\tconst kSample = unpremultiplyAlpha(childTexture.sample(kSampleUV));\n\t\tconst centerSample = unpremultiplyAlpha(childTexture.sample(screenUV));\n\t\tconst channelK = (s) => float(1).sub(max(max(s.r, s.g), s.b));\n\t\tconst channelC = (s) => {\n\t\t\tconst k$1 = channelK(s);\n\t\t\tconst invK = float(1).sub(k$1).max(float(1e-4));\n\t\t\treturn float(1).sub(s.r).sub(k$1).div(invK);\n\t\t};\n\t\tconst channelM = (s) => {\n\t\t\tconst k$1 = channelK(s);\n\t\t\tconst invK = float(1).sub(k$1).max(float(1e-4));\n\t\t\treturn float(1).sub(s.g).sub(k$1).div(invK);\n\t\t};\n\t\tconst channelY = (s) => {\n\t\t\tconst k$1 = channelK(s);\n\t\t\tconst invK = float(1).sub(k$1).max(float(1e-4));\n\t\t\treturn float(1).sub(s.b).sub(k$1).div(invK);\n\t\t};\n\t\tconst c = channelC(cSample);\n\t\tconst m = channelM(mSample);\n\t\tconst y = channelY(ySample);\n\t\tconst k = channelK(kSample);\n\t\tconst cUV = rotateUV(aspectUV, cAngleRad);\n\t\tconst mUV = rotateUV(aspectUV, mAngleRad);\n\t\tconst yUV = rotateUV(aspectUV, yAngleRad);\n\t\tconst kUV = rotateUV(aspectUV, kAngleRad);\n\t\tconst cInk = dotMask(cUV, c);\n\t\tconst mInk = dotMask(mUV, m);\n\t\tconst yInk = dotMask(yUV, y);\n\t\tconst kInk = dotMask(kUV, k);\n\t\tconst paper = uniforms.paperColor.uniform;\n\t\tconst cyanCol = uniforms.cyanColor.uniform;\n\t\tconst magentaCol = uniforms.magentaColor.uniform;\n\t\tconst yellowCol = uniforms.yellowColor.uniform;\n\t\tconst blackCol = uniforms.blackColor.uniform;\n\t\tconst transmission = (inkColor, inkMask) => {\n\t\t\treturn mix(vec3(1, 1, 1), inkColor.rgb, inkMask.mul(inkColor.a));\n\t\t};\n\t\tlet printed = paper.rgb;\n\t\tprinted = printed.mul(transmission(cyanCol, cInk));\n\t\tprinted = printed.mul(transmission(magentaCol, mInk));\n\t\tprinted = printed.mul(transmission(yellowCol, yInk));\n\t\tprinted = printed.mul(transmission(blackCol, kInk));\n\t\treturn vec4(printed, centerSample.a);\n\t}\n};\nvar Halftone_default = componentDefinition;\nexport { componentDefinition as n, Halftone_default as t };\n","import { a as transformColor, o as transformColorSpace, t as colorSpaceOptions } from \"./transformations-CJcUeZIC.js\";\nimport { t as mixColors } from \"./colorMixing-BPpDnR5I.js\";\nimport { abs, dot, float, fwidth, max, mod, screenUV, smoothstep, step, vec2, viewportSize } from \"three/tsl\";\nconst componentDefinition = {\n\tname: \"HexGrid\",\n\tcategory: \"Textures\",\n\tdescription: \"Honeycomb hexagonal grid pattern\",\n\tprops: {\n\t\tcolorA: {\n\t\t\tdefault: \"#000000\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Cell fill color\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Color A\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tcolorB: {\n\t\t\tdefault: \"#ffffff\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Grid line color\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Color B\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tcells: {\n\t\t\tdefault: 8,\n\t\t\tdescription: \"Number of hexagons across the shortest canvas edge\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 1,\n\t\t\t\tmax: 40,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Cells\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tthickness: {\n\t\t\tdefault: 1,\n\t\t\tdescription: \"Thickness of the hex grid lines\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 10,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Thickness\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tcolorSpace: {\n\t\t\tdefault: \"linear\",\n\t\t\ttransform: transformColorSpace,\n\t\t\tcompileTime: true,\n\t\t\tdescription: \"Color space for color interpolation\",\n\t\t\tui: {\n\t\t\t\ttype: \"select\",\n\t\t\t\toptions: colorSpaceOptions,\n\t\t\t\tlabel: \"Color Space\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t}\n\t},\n\tfragmentNode: ({ uniforms }) => {\n\t\tconst uv$1 = screenUV;\n\t\tconst aspect = viewportSize.x.div(viewportSize.y);\n\t\tconst scaledUV = vec2(uv$1.x.mul(aspect), uv$1.y).mul(uniforms.cells.uniform);\n\t\tconst s = vec2(float(Math.sqrt(3)), float(1));\n\t\tconst sh = s.mul(float(.5));\n\t\tconst a = mod(scaledUV, s).sub(sh);\n\t\tconst b = mod(scaledUV.sub(sh), s).sub(sh);\n\t\tconst gv = dot(a, a).lessThan(dot(b, b)).select(a, b);\n\t\tconst pAbs = vec2(abs(gv.x), abs(gv.y));\n\t\tconst hexDist = max(dot(pAbs, vec2(float(Math.sqrt(3) / 2), float(.5))), pAbs.y);\n\t\tconst edgeDist = float(.5).sub(hexDist);\n\t\tconst lineWidth = uniforms.thickness.uniform.mul(float(.01));\n\t\tconst pixel = fwidth(scaledUV.x).mul(float(.5));\n\t\tconst lineMask = smoothstep(lineWidth.add(pixel), lineWidth, edgeDist).mul(step(float(1e-4), lineWidth));\n\t\treturn mixColors(uniforms.colorA.uniform, uniforms.colorB.uniform, lineMask, uniforms.colorSpace.uniform.value);\n\t}\n};\nvar HexGrid_default = componentDefinition;\nexport { componentDefinition as n, HexGrid_default as t };\n","import { cos, sin, vec3, vec4 } from \"three/tsl\";\nconst componentDefinition = {\n\tname: \"HueShift\",\n\tcategory: \"Adjustments\",\n\tdescription: \"Rotate hue around the color wheel\",\n\trequiresChild: true,\n\tprops: { shift: {\n\t\tdefault: 0,\n\t\tdescription: \"The amount to shift the hue by\",\n\t\tcompileTimeWhen: (prev, next) => prev === 0 !== (next === 0),\n\t\tui: {\n\t\t\ttype: [\"range\", \"map\"],\n\t\t\tmin: -180,\n\t\t\tmax: 180,\n\t\t\tstep: 1,\n\t\t\tlabel: \"Shift\",\n\t\t\tgroup: \"Appearance\"\n\t\t},\n\t\ttransform: (value) => value * Math.PI / 180\n\t} },\n\tfragmentNode: ({ uniforms, childNode }) => {\n\t\tif (!childNode) {\n\t\t\tconsole.error(\"You must pass a child component into the Hue Shift shader.\");\n\t\t\treturn vec4(0);\n\t\t}\n\t\tif (uniforms.shift.uniform.value === 0) return childNode;\n\t\tconst angle = uniforms.shift.uniform;\n\t\tconst cosA = cos(angle);\n\t\tconst sinA = sin(angle);\n\t\tconst k = 1 / 3;\n\t\tconst sqrt3 = 1.7320508075688772;\n\t\tconst kOneMinusCos = cosA.oneMinus().mul(k);\n\t\tconst sinOverSqrt3 = sinA.div(sqrt3);\n\t\tconst m00 = cosA.add(kOneMinusCos);\n\t\tconst m01 = kOneMinusCos.sub(sinOverSqrt3);\n\t\tconst m02 = kOneMinusCos.add(sinOverSqrt3);\n\t\tconst m10 = kOneMinusCos.add(sinOverSqrt3);\n\t\tconst m11 = cosA.add(kOneMinusCos);\n\t\tconst m12 = kOneMinusCos.sub(sinOverSqrt3);\n\t\tconst m20 = kOneMinusCos.sub(sinOverSqrt3);\n\t\tconst m21 = kOneMinusCos.add(sinOverSqrt3);\n\t\tconst m22 = cosA.add(kOneMinusCos);\n\t\tconst r = childNode.r;\n\t\tconst g = childNode.g;\n\t\tconst b = childNode.b;\n\t\treturn vec4(vec3(r.mul(m00).add(g.mul(m01)).add(b.mul(m02)), r.mul(m10).add(g.mul(m11)).add(b.mul(m12)), r.mul(m20).add(g.mul(m21)).add(b.mul(m22))), childNode.a);\n\t}\n};\nvar HueShift_default = componentDefinition;\nexport { componentDefinition as n, HueShift_default as t };\n","import { SRGBColorSpace, Texture, TextureLoader } from \"three/webgpu\";\nimport { float, max, min, or, screenUV, select, texture, uniform, vec2, vec4, viewportSize } from \"three/tsl\";\nconst componentDefinition = {\n\tname: \"ImageTexture\",\n\tcategory: \"Textures\",\n\tdescription: \"Display an image with customizable object-fit modes\",\n\tprops: {\n\t\turl: {\n\t\t\tdefault: \"https://shaders.com/sample.jpg\",\n\t\t\tdescription: \"Upload an image or provide a URL\",\n\t\t\tui: {\n\t\t\t\ttype: \"image-upload\",\n\t\t\t\tlabel: \"Image\",\n\t\t\t\tgroup: \"Media\"\n\t\t\t}\n\t\t},\n\t\tobjectFit: {\n\t\t\tdefault: \"cover\",\n\t\t\tdescription: \"How the image should be sized within the viewport\",\n\t\t\ttransform: (value) => {\n\t\t\t\treturn {\n\t\t\t\t\t\"cover\": 0,\n\t\t\t\t\t\"contain\": 1,\n\t\t\t\t\t\"fill\": 2,\n\t\t\t\t\t\"scale-down\": 3,\n\t\t\t\t\t\"none\": 4\n\t\t\t\t}[value] ?? 0;\n\t\t\t},\n\t\t\tcompileTime: true,\n\t\t\tui: {\n\t\t\t\ttype: \"select\",\n\t\t\t\toptions: [\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Cover\",\n\t\t\t\t\t\tvalue: \"cover\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Contain\",\n\t\t\t\t\t\tvalue: \"contain\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Fill\",\n\t\t\t\t\t\tvalue: \"fill\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Scale Down\",\n\t\t\t\t\t\tvalue: \"scale-down\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"None\",\n\t\t\t\t\t\tvalue: \"none\"\n\t\t\t\t\t}\n\t\t\t\t],\n\t\t\t\tlabel: \"Object Fit\",\n\t\t\t\tgroup: \"Appearance\"\n\t\t\t}\n\t\t}\n\t},\n\tfragmentNode: ({ uniforms, onCleanup, onBeforeRender }) => {\n\t\tconst baseUV = screenUV;\n\t\tconst loader = new TextureLoader();\n\t\tlet currentUrl = \"\";\n\t\tlet isLoading = false;\n\t\tconst placeholderTexture = new Texture();\n\t\tplaceholderTexture.colorSpace = SRGBColorSpace;\n\t\tconst textureNode = texture(placeholderTexture);\n\t\tconst imageAspectUniform = uniform(1);\n\t\tconst imageWidthUniform = uniform(0);\n\t\tconst imageHeightUniform = uniform(0);\n\t\tconst SVG_RASTER_SIZE = 2048;\n\t\tfunction isSvgUrl(url) {\n\t\t\treturn /\\.svg($|\\?|#)/i.test(url);\n\t\t}\n\t\tfunction rasterizeSvg(url) {\n\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\tconst img = new Image();\n\t\t\t\timg.crossOrigin = \"anonymous\";\n\t\t\t\timg.onload = () => {\n\t\t\t\t\tconst aspect = (img.naturalWidth || SVG_RASTER_SIZE) / (img.naturalHeight || SVG_RASTER_SIZE);\n\t\t\t\t\tconst canvasW = aspect >= 1 ? SVG_RASTER_SIZE : Math.round(SVG_RASTER_SIZE * aspect);\n\t\t\t\t\tconst canvasH = aspect >= 1 ? Math.round(SVG_RASTER_SIZE / aspect) : SVG_RASTER_SIZE;\n\t\t\t\t\tconst canvas = document.createElement(\"canvas\");\n\t\t\t\t\tcanvas.width = canvasW;\n\t\t\t\t\tcanvas.height = canvasH;\n\t\t\t\t\tconst ctx = canvas.getContext(\"2d\");\n\t\t\t\t\tif (!ctx) {\n\t\t\t\t\t\treject(/* @__PURE__ */ new Error(\"Could not get 2D context\"));\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tctx.drawImage(img, 0, 0, canvasW, canvasH);\n\t\t\t\t\tresolve({\n\t\t\t\t\t\tcanvas,\n\t\t\t\t\t\twidth: canvasW,\n\t\t\t\t\t\theight: canvasH\n\t\t\t\t\t});\n\t\t\t\t};\n\t\t\t\timg.onerror = reject;\n\t\t\t\timg.src = url;\n\t\t\t});\n\t\t}\n\t\tconst loadImage = (url) => {\n\t\t\tif (!url || url.trim() === \"\" || isLoading) return;\n\t\t\tisLoading = true;\n\t\t\tif (isSvgUrl(url)) {\n\t\t\t\trasterizeSvg(url).then(({ canvas, width, height }) => {\n\t\t\t\t\tconst newAspect = width / height;\n\t\t\t\t\tcurrentUrl = url;\n\t\t\t\t\trequestAnimationFrame(() => {\n\t\t\t\t\t\tplaceholderTexture.dispose();\n\t\t\t\t\t\timageAspectUniform.value = newAspect;\n\t\t\t\t\t\timageWidthUniform.value = width;\n\t\t\t\t\t\timageHeightUniform.value = height;\n\t\t\t\t\t\tplaceholderTexture.image = canvas;\n\t\t\t\t\t\tplaceholderTexture.colorSpace = SRGBColorSpace;\n\t\t\t\t\t\tplaceholderTexture.needsUpdate = true;\n\t\t\t\t\t});\n\t\t\t\t\tisLoading = false;\n\t\t\t\t}).catch((error) => {\n\t\t\t\t\tconsole.error(`[ImageTexture] Failed to rasterize SVG: ${url}`, error);\n\t\t\t\t\tisLoading = false;\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\t\t\ttry {\n\t\t\t\tlet resolvedUrl = url;\n\t\t\t\ttry {\n\t\t\t\t\tresolvedUrl = new URL(url, window.location.href).href;\n\t\t\t\t} catch (e) {}\n\t\t\t\tloader.load(url, (loadedTexture) => {\n\t\t\t\t\tloadedTexture.colorSpace = SRGBColorSpace;\n\t\t\t\t\tconst img = loadedTexture.image;\n\t\t\t\t\tconst newWidth = img.width || 1;\n\t\t\t\t\tconst newHeight = img.height || 1;\n\t\t\t\t\tconst newAspect = newWidth / newHeight;\n\t\t\t\t\tloadedTexture.dispose();\n\t\t\t\t\tcurrentUrl = url;\n\t\t\t\t\trequestAnimationFrame(() => {\n\t\t\t\t\t\tconst currentImage = placeholderTexture.image;\n\t\t\t\t\t\tif (currentImage && typeof currentImage === \"object\" && (currentImage.width !== newWidth || currentImage.height !== newHeight)) placeholderTexture.dispose();\n\t\t\t\t\t\timageAspectUniform.value = newAspect;\n\t\t\t\t\t\timageWidthUniform.value = newWidth;\n\t\t\t\t\t\timageHeightUniform.value = newHeight;\n\t\t\t\t\t\tplaceholderTexture.image = img;\n\t\t\t\t\t\tplaceholderTexture.colorSpace = SRGBColorSpace;\n\t\t\t\t\t\tplaceholderTexture.needsUpdate = true;\n\t\t\t\t\t});\n\t\t\t\t\tisLoading = false;\n\t\t\t\t}, void 0, (error) => {\n\t\t\t\t\tconst isRelative = !url.startsWith(\"http://\") && !url.startsWith(\"https://\") && !url.startsWith(\"data:\");\n\t\t\t\t\tconsole.error(`[ImageTexture] Failed to load image\\n  Requested URL: ${url}\\n  Resolved URL: ${resolvedUrl}\\n  Path type: ${isRelative ? \"relative\" : \"absolute\"}\\n  Error:`, error);\n\t\t\t\t\tisLoading = false;\n\t\t\t\t});\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error(`[ImageTexture] Error initiating image load:`, error);\n\t\t\t\tisLoading = false;\n\t\t\t}\n\t\t};\n\t\tsetTimeout(() => {\n\t\t\tconst initialUrl = uniforms?.url?.uniform?.value ?? \"\";\n\t\t\tif (initialUrl && initialUrl.trim() !== \"\") loadImage(initialUrl);\n\t\t}, 0);\n\t\tonBeforeRender(() => {\n\t\t\tconst newUrl = uniforms?.url?.uniform?.value ?? \"\";\n\t\t\tif (newUrl !== currentUrl && !isLoading) loadImage(newUrl);\n\t\t});\n\t\tonCleanup(() => {\n\t\t\tplaceholderTexture.dispose();\n\t\t});\n\t\tconst uv$1 = baseUV;\n\t\tconst viewportAspect = viewportSize.x.div(viewportSize.y);\n\t\tconst objectFitMode = uniforms.objectFit.uniform.value;\n\t\tlet uvScale;\n\t\tswitch (objectFitMode) {\n\t\t\tcase 1: {\n\t\t\t\tconst containScale = min(viewportAspect.div(imageAspectUniform), float(1));\n\t\t\t\tuvScale = vec2(imageAspectUniform.div(viewportAspect).mul(containScale), containScale);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase 2:\n\t\t\t\tuvScale = vec2(1, 1);\n\t\t\t\tbreak;\n\t\t\tcase 3: {\n\t\t\t\tconst scaleDownScale = min(min(viewportAspect.div(imageAspectUniform), float(1)), min(viewportSize.x.div(imageWidthUniform), viewportSize.y.div(imageHeightUniform)));\n\t\t\t\tuvScale = vec2(imageAspectUniform.div(viewportAspect).mul(scaleDownScale), scaleDownScale);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase 4: {\n\t\t\t\tconst noneScale = min(viewportSize.x.div(imageWidthUniform), viewportSize.y.div(imageHeightUniform));\n\t\t\t\tuvScale = vec2(imageAspectUniform.div(viewportAspect).mul(noneScale), noneScale);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase 0:\n\t\t\tdefault: {\n\t\t\t\tconst coverScale = max(viewportAspect.div(imageAspectUniform), float(1));\n\t\t\t\tuvScale = vec2(imageAspectUniform.div(viewportAspect).mul(coverScale), coverScale);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tconst adjustedUV = uv$1.sub(vec2(.5)).div(uvScale).add(vec2(.5));\n\t\tconst finalUV = vec2(adjustedUV.x, float(1).sub(adjustedUV.y));\n\t\tconst sampledColor = textureNode.sample(finalUV);\n\t\tconst isOutOfBounds = or(or(finalUV.x.lessThan(0), finalUV.x.greaterThan(1)), or(finalUV.y.lessThan(0), finalUV.y.greaterThan(1)));\n\t\treturn vec4(sampledColor.rgb, select(isOutOfBounds, float(0), sampledColor.a));\n\t}\n};\nvar ImageTexture_default = componentDefinition;\nexport { componentDefinition as n, ImageTexture_default as t };\n","import { vec3, vec4 } from \"three/tsl\";\nconst componentDefinition = {\n\tname: \"Invert\",\n\tcategory: \"Adjustments\",\n\tdescription: \"Invert RGB colors while preserving alpha\",\n\trequiresChild: true,\n\tprops: {},\n\tfragmentNode: ({ childNode }) => {\n\t\tif (!childNode) {\n\t\t\tconsole.error(\"You must pass a child component into the Invert shader.\");\n\t\t\treturn vec4(0);\n\t\t}\n\t\tconst sourceColor = childNode || vec4(0, 0, 0, 0);\n\t\treturn vec4(vec3(1, 1, 1).sub(sourceColor.rgb), sourceColor.a);\n\t}\n};\nvar Invert_default = componentDefinition;\nexport { componentDefinition as n, Invert_default as t };\n","import { t as applyEdgeHandling } from \"./edges-CX_lJB9R.js\";\nimport { c as transformEdges, l as transformPosition } from \"./transformations-CJcUeZIC.js\";\nimport { t as unpremultiplyAlpha } from \"./alpha-C4ptedXe.js\";\nimport { atan, convertToTexture, cos, float, length, mod, screenUV, sin, vec2, vec4, viewportSize } from \"three/tsl\";\nconst componentDefinition = {\n\tname: \"Kaleidoscope\",\n\tcategory: \"Distortions\",\n\tdescription: \"Create a kaleidoscope effect with radial mirrored segments\",\n\trequiresRTT: true,\n\trequiresChild: true,\n\tprops: {\n\t\tcenter: {\n\t\t\tdefault: {\n\t\t\t\tx: .5,\n\t\t\t\ty: .5\n\t\t\t},\n\t\t\ttransform: transformPosition,\n\t\t\tdescription: \"The center point of the kaleidoscope effect\",\n\t\t\tui: {\n\t\t\t\ttype: \"position\",\n\t\t\t\tlabel: \"Center\",\n\t\t\t\tgroup: \"Position\"\n\t\t\t}\n\t\t},\n\t\tsegments: {\n\t\t\tdefault: 6,\n\t\t\tdescription: \"Number of radial segments in the kaleidoscope\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 2,\n\t\t\t\tmax: 24,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Segments\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tangle: {\n\t\t\tdefault: 0,\n\t\t\tdescription: \"Rotation offset for the entire kaleidoscope pattern\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 360,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Angle\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tedges: {\n\t\t\tdefault: \"mirror\",\n\t\t\tdescription: \"How to handle edges when distortion pushes content out of bounds\",\n\t\t\ttransform: transformEdges,\n\t\t\tcompileTime: true,\n\t\t\tui: {\n\t\t\t\ttype: \"select\",\n\t\t\t\toptions: [\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Stretch\",\n\t\t\t\t\t\tvalue: \"stretch\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Transparent\",\n\t\t\t\t\t\tvalue: \"transparent\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Mirror\",\n\t\t\t\t\t\tvalue: \"mirror\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Wrap\",\n\t\t\t\t\t\tvalue: \"wrap\"\n\t\t\t\t\t}\n\t\t\t\t],\n\t\t\t\tlabel: \"Edges\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t}\n\t},\n\tfragmentNode: ({ uniforms, childNode, onCleanup }) => {\n\t\tif (!childNode) return vec4(0, 0, 0, 0);\n\t\tconst childTexture = convertToTexture(childNode);\n\t\tonCleanup(() => {\n\t\t\tif (childTexture?.renderTarget?.dispose) childTexture.renderTarget.dispose();\n\t\t});\n\t\tconst aspect = viewportSize.x.div(viewportSize.y);\n\t\tconst aspectCorrectedUV = vec2(screenUV.x.mul(aspect), screenUV.y);\n\t\tconst centerPos = vec2(uniforms.center.uniform.x.mul(aspect), uniforms.center.uniform.y.oneMinus());\n\t\tconst delta = aspectCorrectedUV.sub(centerPos);\n\t\tconst radius = length(delta);\n\t\tconst currentAngle = atan(delta.y, delta.x);\n\t\tconst rotationRad = uniforms.angle.uniform.mul(Math.PI / 180);\n\t\tconst rotatedAngle = currentAngle.add(rotationRad);\n\t\tconst segmentAngle = float(Math.PI * 2).div(uniforms.segments.uniform);\n\t\tconst wrappedAngle = mod(rotatedAngle, segmentAngle.mul(2));\n\t\tconst finalAngle = wrappedAngle.greaterThan(segmentAngle).select(segmentAngle.mul(2).sub(wrappedAngle), wrappedAngle);\n\t\tconst kaleidoscopeDelta = vec2(cos(finalAngle).mul(radius), sin(finalAngle).mul(radius));\n\t\tconst kaleidoscopePos = centerPos.add(kaleidoscopeDelta);\n\t\tconst finalUV = vec2(kaleidoscopePos.x.div(aspect), kaleidoscopePos.y);\n\t\treturn unpremultiplyAlpha(applyEdgeHandling(finalUV, childTexture.sample(finalUV), childTexture, uniforms.edges.uniform.value));\n\t}\n};\nvar Kaleidoscope_default = componentDefinition;\nexport { componentDefinition as n, Kaleidoscope_default as t };\n","import { l as transformPosition } from \"./transformations-CJcUeZIC.js\";\nimport { t as createAnimatedTime } from \"./time-DUqSFWvT.js\";\nimport { Fn, abs, atan, clamp, cos, dot, float, max, mix, pow, screenUV, sin, smoothstep, vec2, vec3, vec4, viewportSize } from \"three/tsl\";\nvar spectralColor = Fn(([t]) => {\n\tconst TAU = float(6.2831853);\n\treturn vec3(cos(TAU.mul(t)).mul(.5).add(.5), cos(TAU.mul(t.sub(.333))).mul(.5).add(.5), cos(TAU.mul(t.sub(.666))).mul(.5).add(.5));\n});\nconst componentDefinition = {\n\tname: \"LensFlare\",\n\tcategory: \"Stylize\",\n\tdescription: \"Realistic camera lens flare with artifacts.\",\n\tprops: {\n\t\tlightPosition: {\n\t\t\tdefault: {\n\t\t\t\tx: .3,\n\t\t\t\ty: .3\n\t\t\t},\n\t\t\ttransform: transformPosition,\n\t\t\tdescription: \"Position of the light source\",\n\t\t\tui: {\n\t\t\t\ttype: \"position\",\n\t\t\t\tlabel: \"Light Position\",\n\t\t\t\tgroup: \"Light\"\n\t\t\t}\n\t\t},\n\t\tintensity: {\n\t\t\tdefault: .5,\n\t\t\tdescription: \"Master brightness of the entire lens flare effect\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 2,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Intensity\",\n\t\t\t\tgroup: \"Light\"\n\t\t\t}\n\t\t},\n\t\tghostIntensity: {\n\t\t\tdefault: .4,\n\t\t\tdescription: \"Brightness of internal reflection ghost discs along the flare axis\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Ghosts\",\n\t\t\t\tgroup: \"Reflections\"\n\t\t\t}\n\t\t},\n\t\tghostSpread: {\n\t\t\tdefault: .7,\n\t\t\tdescription: \"Spacing between ghost reflections along the flare axis\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: .1,\n\t\t\t\tmax: 2,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Ghost Spread\",\n\t\t\t\tgroup: \"Reflections\"\n\t\t\t}\n\t\t},\n\t\tghostChroma: {\n\t\t\tdefault: .3,\n\t\t\tdescription: \"Rainbow chromatic fringing around ghost element edges\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Ghost Chroma\",\n\t\t\t\tgroup: \"Reflections\"\n\t\t\t}\n\t\t},\n\t\thaloIntensity: {\n\t\t\tdefault: .4,\n\t\t\tdescription: \"Brightness of the circular halo ring from internal reflection\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Halo\",\n\t\t\t\tgroup: \"Reflections\"\n\t\t\t}\n\t\t},\n\t\thaloRadius: {\n\t\t\tdefault: .6,\n\t\t\tdescription: \"Radius of the halo ring\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: .1,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Halo Size\",\n\t\t\t\tgroup: \"Reflections\"\n\t\t\t}\n\t\t},\n\t\thaloChroma: {\n\t\t\tdefault: .6,\n\t\t\tdescription: \"Spectral dispersion on the halo creating rainbow color separation\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Halo Chroma\",\n\t\t\t\tgroup: \"Reflections\"\n\t\t\t}\n\t\t},\n\t\thaloSoftness: {\n\t\t\tdefault: .8,\n\t\t\tdescription: \"Thickness and softness of the halo ring\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: .01,\n\t\t\t\tmax: 3,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Halo Softness\",\n\t\t\t\tgroup: \"Reflections\"\n\t\t\t}\n\t\t},\n\t\tstarburstIntensity: {\n\t\t\tdefault: .3,\n\t\t\tdescription: \"Brightness of diffraction spikes radiating from the light source\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Starburst\",\n\t\t\t\tgroup: \"Effects\"\n\t\t\t}\n\t\t},\n\t\tstarburstPoints: {\n\t\t\tdefault: 6,\n\t\t\tdescription: \"Number of starburst spikes (simulates aperture blade count)\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 4,\n\t\t\t\tmax: 16,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Blades\",\n\t\t\t\tgroup: \"Effects\"\n\t\t\t}\n\t\t},\n\t\tstreakIntensity: {\n\t\t\tdefault: .15,\n\t\t\tdescription: \"Brightness of horizontal anamorphic light streak\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Streak\",\n\t\t\t\tgroup: \"Effects\"\n\t\t\t}\n\t\t},\n\t\tstreakLength: {\n\t\t\tdefault: .5,\n\t\t\tdescription: \"Horizontal extent of the anamorphic streak\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: .1,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Streak Length\",\n\t\t\t\tgroup: \"Effects\"\n\t\t\t}\n\t\t},\n\t\tglareIntensity: {\n\t\t\tdefault: .2,\n\t\t\tdescription: \"Soft veiling glare that washes out contrast around the light\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Glare\",\n\t\t\t\tgroup: \"Effects\"\n\t\t\t}\n\t\t},\n\t\tglareSize: {\n\t\t\tdefault: .5,\n\t\t\tdescription: \"Size of the soft glare glow\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: .1,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Glare Size\",\n\t\t\t\tgroup: \"Effects\"\n\t\t\t}\n\t\t},\n\t\tedgeFade: {\n\t\t\tdefault: .2,\n\t\t\tdescription: \"How much the flare fades when the light source is near the screen edge (0 = no fade, 1 = heavy fade)\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Edge Fade\",\n\t\t\t\tgroup: \"Light\"\n\t\t\t}\n\t\t},\n\t\tspeed: {\n\t\t\tdefault: .5,\n\t\t\tdescription: \"Speed of subtle flare shimmer and starburst rotation\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 3,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Speed\",\n\t\t\t\tgroup: \"Animation\"\n\t\t\t}\n\t\t}\n\t},\n\tfragmentNode: (params) => {\n\t\tconst { uniforms } = params;\n\t\tconst uIntensity = uniforms.intensity.uniform;\n\t\tconst uGhostInt = uniforms.ghostIntensity.uniform;\n\t\tconst uGhostSpread = uniforms.ghostSpread.uniform;\n\t\tconst uGhostChroma = uniforms.ghostChroma.uniform;\n\t\tconst uHaloInt = uniforms.haloIntensity.uniform;\n\t\tconst uHaloRad = uniforms.haloRadius.uniform;\n\t\tconst uHaloChroma = uniforms.haloChroma.uniform;\n\t\tconst uHaloSoft = uniforms.haloSoftness.uniform;\n\t\tconst uStarburstInt = uniforms.starburstIntensity.uniform;\n\t\tconst uStarburstPts = uniforms.starburstPoints.uniform;\n\t\tconst uStreakInt = uniforms.streakIntensity.uniform;\n\t\tconst uStreakLen = uniforms.streakLength.uniform;\n\t\tconst uGlareInt = uniforms.glareIntensity.uniform;\n\t\tconst uGlareSz = uniforms.glareSize.uniform;\n\t\tconst aspect = viewportSize.x.div(viewportSize.y);\n\t\tconst uv$1 = screenUV;\n\t\tconst lightPos = vec2(uniforms.lightPosition.uniform.x, uniforms.lightPosition.uniform.y.oneMinus());\n\t\tconst flareAxis = vec2(.5, .5).sub(lightPos);\n\t\tconst t = createAnimatedTime(params, uniforms.speed);\n\t\tconst shimmer = sin(t.mul(3.7)).mul(.04).add(sin(t.mul(7.3)).mul(.03)).add(sin(t.mul(13.1)).mul(.02)).add(.97);\n\t\tconst uEdgeFade = uniforms.edgeFade.uniform;\n\t\tconst edgeDist = max(abs(lightPos.x.sub(.5)).mul(2), abs(lightPos.y.sub(.5)).mul(2));\n\t\tconst fadeStart = float(1).sub(uEdgeFade.mul(.5));\n\t\tconst edgeFade = mix(float(1), smoothstep(fadeStart, float(1), edgeDist).oneMinus(), uEdgeFade);\n\t\tconst masterFade = uIntensity.mul(edgeFade).mul(shimmer);\n\t\tconst toLightAR = vec2(uv$1.x.sub(lightPos.x).mul(aspect), uv$1.y.sub(lightPos.y));\n\t\tconst lightDist = toLightAR.length();\n\t\tconst ghostConfigs = [\n\t\t\t{\n\t\t\t\toffset: .15,\n\t\t\t\tsize: .2,\n\t\t\t\tbright: .3,\n\t\t\t\thollow: .1,\n\t\t\t\tr: 1,\n\t\t\t\tg: .95,\n\t\t\t\tb: .9\n\t\t\t},\n\t\t\t{\n\t\t\t\toffset: .3,\n\t\t\t\tsize: .12,\n\t\t\t\tbright: .25,\n\t\t\t\thollow: .65,\n\t\t\t\tr: 1,\n\t\t\t\tg: .85,\n\t\t\t\tb: .55\n\t\t\t},\n\t\t\t{\n\t\t\t\toffset: .5,\n\t\t\t\tsize: .08,\n\t\t\t\tbright: .35,\n\t\t\t\thollow: .15,\n\t\t\t\tr: .62,\n\t\t\t\tg: .82,\n\t\t\t\tb: 1\n\t\t\t},\n\t\t\t{\n\t\t\t\toffset: .72,\n\t\t\t\tsize: .14,\n\t\t\t\tbright: .18,\n\t\t\t\thollow: .75,\n\t\t\t\tr: .75,\n\t\t\t\tg: 1,\n\t\t\t\tb: .7\n\t\t\t},\n\t\t\t{\n\t\t\t\toffset: .95,\n\t\t\t\tsize: .06,\n\t\t\t\tbright: .3,\n\t\t\t\thollow: 0,\n\t\t\t\tr: 1,\n\t\t\t\tg: .6,\n\t\t\t\tb: .85\n\t\t\t},\n\t\t\t{\n\t\t\t\toffset: 1.25,\n\t\t\t\tsize: .1,\n\t\t\t\tbright: .15,\n\t\t\t\thollow: .8,\n\t\t\t\tr: .55,\n\t\t\t\tg: .88,\n\t\t\t\tb: 1\n\t\t\t},\n\t\t\t{\n\t\t\t\toffset: 1.55,\n\t\t\t\tsize: .07,\n\t\t\t\tbright: .2,\n\t\t\t\thollow: .25,\n\t\t\t\tr: 1,\n\t\t\t\tg: .92,\n\t\t\t\tb: .6\n\t\t\t}\n\t\t];\n\t\tlet ghostAccum = vec3(0, 0, 0);\n\t\tfor (let i = 0; i < ghostConfigs.length; i++) {\n\t\t\tconst cfg = ghostConfigs[i];\n\t\t\tconst ghostPos = lightPos.add(flareAxis.mul(float(cfg.offset).mul(uGhostSpread).mul(2)));\n\t\t\tconst dist = vec2(uv$1.x.sub(ghostPos.x).mul(aspect), uv$1.y.sub(ghostPos.y)).length();\n\t\t\tconst sz = float(cfg.size);\n\t\t\tconst disc = smoothstep(sz.mul(.12), sz, dist).oneMinus();\n\t\t\tconst innerFade = smoothstep(sz.mul(.05), sz.mul(.45), dist).oneMinus();\n\t\t\tconst shape = disc.mul(float(1).sub(innerFade.mul(float(cfg.hollow))));\n\t\t\tconst gPhase = float(i * 2.17);\n\t\t\tconst gShimmer = sin(t.mul(4.3).add(gPhase)).mul(.08).add(sin(t.mul(9.1).add(gPhase.mul(1.7))).mul(.05)).add(.95);\n\t\t\tconst ringCenter = sz.mul(.78);\n\t\t\tconst chromaSpread = sz.mul(uGhostChroma).mul(.14);\n\t\t\tconst ringWidth = sz.mul(.1);\n\t\t\tconst rRing = smoothstep(float(0), ringWidth, abs(dist.sub(ringCenter.add(chromaSpread)))).oneMinus();\n\t\t\tconst gRing = smoothstep(float(0), ringWidth, abs(dist.sub(ringCenter))).oneMinus();\n\t\t\tconst bRing = smoothstep(float(0), ringWidth, abs(dist.sub(ringCenter.sub(chromaSpread)))).oneMinus();\n\t\t\tconst brightness = float(cfg.bright).mul(uGhostInt).mul(gShimmer);\n\t\t\tconst contribution = vec3(shape.mul(float(cfg.r)).add(rRing.mul(uGhostChroma)).mul(brightness), shape.mul(float(cfg.g)).add(gRing.mul(uGhostChroma)).mul(brightness), shape.mul(float(cfg.b)).add(bRing.mul(uGhostChroma)).mul(brightness));\n\t\t\tghostAccum = ghostAccum.add(contribution);\n\t\t}\n\t\tconst antiLight = vec2(float(1).sub(lightPos.x), float(1).sub(lightPos.y));\n\t\tconst toAntiLight = vec2(uv$1.x.sub(antiLight.x).mul(aspect), uv$1.y.sub(antiLight.y));\n\t\tconst antiLightDist = toAntiLight.length();\n\t\tconst haloChromaSpread = uHaloRad.mul(uHaloChroma).mul(.06);\n\t\tconst haloWidth = uHaloSoft.mul(.12).add(.005);\n\t\tconst rHalo = smoothstep(float(0), haloWidth, abs(antiLightDist.sub(uHaloRad.add(haloChromaSpread)))).oneMinus();\n\t\tconst gHalo = smoothstep(float(0), haloWidth, abs(antiLightDist.sub(uHaloRad))).oneMinus();\n\t\tconst bHalo = smoothstep(float(0), haloWidth, abs(antiLightDist.sub(uHaloRad.sub(haloChromaSpread)))).oneMinus();\n\t\tconst haloAngVar = sin(atan(toAntiLight.y, toAntiLight.x).mul(3).add(t.mul(.5))).mul(.12).add(.88);\n\t\tconst haloColor = vec3(rHalo, gHalo, bHalo).mul(uHaloInt).mul(haloAngVar);\n\t\tconst lightAngle = atan(toLightAR.y, toLightAR.x);\n\t\tconst rotation = atan(flareAxis.y, flareAxis.x.mul(aspect)).mul(.5).add(t.mul(.06));\n\t\tconst spikeAngle = lightAngle.add(rotation);\n\t\tconst primarySpikes = pow(abs(cos(spikeAngle.mul(uStarburstPts.div(2)))), float(3.5));\n\t\tconst secondarySpikes = pow(abs(cos(spikeAngle.add(.25).mul(uStarburstPts.div(2)))), float(7)).mul(.4);\n\t\tconst radialFall = float(1).div(float(1).add(lightDist.mul(lightDist).mul(60)));\n\t\tconst starSpectral = spectralColor(spikeAngle.div(float(6.2831853)).add(.5));\n\t\tconst starTint = mix(vec3(1, .97, .92), starSpectral, float(.12));\n\t\tconst starburstColor = primarySpikes.add(secondarySpikes).mul(radialFall).mul(uStarburstInt).mul(starTint);\n\t\tconst dy = abs(uv$1.y.sub(lightPos.y));\n\t\tconst dx = abs(uv$1.x.sub(lightPos.x));\n\t\tconst vertFall = float(-800).mul(dy).mul(dy).exp();\n\t\tconst lenSq = uStreakLen.mul(uStreakLen).mul(.25).add(.001);\n\t\tconst rStreak = float(-1).mul(dx).mul(dx).div(lenSq.mul(.7)).exp();\n\t\tconst gStreak = float(-1).mul(dx).mul(dx).div(lenSq).exp();\n\t\tconst bStreak = float(-1).mul(dx).mul(dx).div(lenSq.mul(1.4)).exp();\n\t\tconst streakColor = vec3(vertFall.mul(rStreak).mul(.5), vertFall.mul(gStreak).mul(.65), vertFall.mul(bStreak).mul(.9)).mul(uStreakInt);\n\t\tconst glareSharpness = float(1).div(uGlareSz.mul(uGlareSz).add(.01));\n\t\tconst glareColor = float(-1).mul(lightDist).mul(lightDist).mul(glareSharpness).exp().mul(uGlareInt).mul(vec3(1, .98, .95));\n\t\tconst coreSoft = float(-500).mul(lightDist).mul(lightDist).exp();\n\t\tconst coreSharp = smoothstep(float(0), float(.025), lightDist).oneMinus();\n\t\tconst coreColor = coreSoft.add(coreSharp.mul(1.5)).mul(vec3(1, .98, .96)).mul(uIntensity);\n\t\tconst finalColor = ghostAccum.add(haloColor).add(starburstColor).add(streakColor).add(glareColor).add(coreColor).mul(masterFade);\n\t\treturn vec4(finalColor, clamp(dot(finalColor, vec3(.299, .587, .114)).mul(2), 0, 1));\n\t}\n};\nvar LensFlare_default = componentDefinition;\nexport { componentDefinition as n, LensFlare_default as t };\n","import { r as transformAngle } from \"./transformations-CJcUeZIC.js\";\nimport { t as unpremultiplyAlpha } from \"./alpha-C4ptedXe.js\";\nimport { Fn, convertToTexture, cos, float, radians, screenUV, sin, vec2, vec4, viewportSize } from \"three/tsl\";\nvar rawWeights = Array.from({ length: 32 }, (_, i) => {\n\tconst t = (i / 31 - .5) * 2;\n\treturn Math.exp(-.5 * t * t / .64);\n});\nvar wSum = rawWeights.reduce((a, b) => a + b);\nvar blurWeights = rawWeights.map((w) => w / wSum);\nconst componentDefinition = {\n\tname: \"LinearBlur\",\n\tcategory: \"Blurs\",\n\tdescription: \"Directional motion blur in a specific angle\",\n\trequiresRTT: true,\n\trequiresChild: true,\n\tprops: {\n\t\tintensity: {\n\t\t\tdefault: 30,\n\t\t\tdescription: \"Intensity of the linear blur effect\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 100,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Intensity\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tangle: {\n\t\t\tdefault: 0,\n\t\t\ttransform: transformAngle,\n\t\t\tdescription: \"Direction of the linear blur (in degrees)\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 360,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Angle\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t}\n\t},\n\tfragmentNode: ({ uniforms, childNode, onCleanup }) => {\n\t\tif (!childNode) return vec4(0, 0, 0, 0);\n\t\tconst childTexture = convertToTexture(childNode);\n\t\tonCleanup(() => {\n\t\t\tif (childTexture?.renderTarget?.dispose) childTexture.renderTarget.dispose();\n\t\t});\n\t\tconst angleRad = radians(uniforms.angle.uniform);\n\t\tconst aspect = viewportSize.x.div(viewportSize.y);\n\t\tconst blurDirection = vec2(cos(angleRad).div(aspect), sin(angleRad));\n\t\treturn Fn(() => {\n\t\t\tconst uv$1 = screenUV;\n\t\t\tconst blurVector = blurDirection.mul(uniforms.intensity.uniform).div(viewportSize).mul(2);\n\t\t\tconst total = vec4(0).toVar();\n\t\t\tfor (let i = 0; i < 32; i++) {\n\t\t\t\tconst coord = uv$1.add(blurVector.mul(i / 31 - .5));\n\t\t\t\ttotal.assign(total.add(childTexture.sample(coord).mul(float(blurWeights[i]))));\n\t\t\t}\n\t\t\treturn unpremultiplyAlpha(total);\n\t\t})();\n\t}\n};\nvar LinearBlur_default = componentDefinition;\nexport { componentDefinition as n, LinearBlur_default as t };\n","import { a as transformColor, c as transformEdges, l as transformPosition, o as transformColorSpace, r as transformAngle, t as colorSpaceOptions } from \"./transformations-CJcUeZIC.js\";\nimport { t as mixColors } from \"./colorMixing-BPpDnR5I.js\";\nimport { abs, cos, dot, float, fract, length, mod, normalize, radians, screenUV, sin, vec2, vec4, viewportSize } from \"three/tsl\";\nconst componentDefinition = {\n\tname: \"LinearGradient\",\n\tcategory: \"Textures\",\n\tdescription: \"Create smooth linear color gradients\",\n\tprops: {\n\t\tcolorA: {\n\t\t\tdefault: \"#1aff00\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"The starting color of the gradient\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Color A\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tcolorB: {\n\t\t\tdefault: \"#0000ff\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"The ending color of the gradient\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Color B\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tstart: {\n\t\t\tdefault: {\n\t\t\t\tx: 0,\n\t\t\t\ty: .5\n\t\t\t},\n\t\t\ttransform: transformPosition,\n\t\t\tdescription: \"The starting point of the gradient\",\n\t\t\tui: {\n\t\t\t\ttype: \"position\",\n\t\t\t\tlabel: \"Start\",\n\t\t\t\tgroup: \"Position\"\n\t\t\t}\n\t\t},\n\t\tend: {\n\t\t\tdefault: {\n\t\t\t\tx: 1,\n\t\t\t\ty: .5\n\t\t\t},\n\t\t\ttransform: transformPosition,\n\t\t\tdescription: \"The ending point of the gradient\",\n\t\t\tui: {\n\t\t\t\ttype: \"position\",\n\t\t\t\tlabel: \"End\",\n\t\t\t\tgroup: \"Position\"\n\t\t\t}\n\t\t},\n\t\tangle: {\n\t\t\tdefault: 0,\n\t\t\ttransform: transformAngle,\n\t\t\tdescription: \"Additional rotation angle of the gradient (in degrees)\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 360,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Angle\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tedges: {\n\t\t\tdefault: \"stretch\",\n\t\t\ttransform: transformEdges,\n\t\t\tcompileTime: true,\n\t\t\tdescription: \"How to handle areas beyond the gradient endpoints\",\n\t\t\tui: {\n\t\t\t\ttype: \"select\",\n\t\t\t\toptions: [\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Stretch\",\n\t\t\t\t\t\tvalue: \"stretch\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Transparent\",\n\t\t\t\t\t\tvalue: \"transparent\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Mirror\",\n\t\t\t\t\t\tvalue: \"mirror\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Wrap\",\n\t\t\t\t\t\tvalue: \"wrap\"\n\t\t\t\t\t}\n\t\t\t\t],\n\t\t\t\tlabel: \"Edges\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tcolorSpace: {\n\t\t\tdefault: \"linear\",\n\t\t\ttransform: transformColorSpace,\n\t\t\tcompileTime: true,\n\t\t\tdescription: \"Color space for color interpolation\",\n\t\t\tui: {\n\t\t\t\ttype: \"select\",\n\t\t\t\toptions: colorSpaceOptions,\n\t\t\t\tlabel: \"Color Space\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t}\n\t},\n\tfragmentNode: ({ uniforms }) => {\n\t\tconst uv$1 = screenUV;\n\t\tconst startPos = vec2(uniforms.start.uniform[0], uniforms.start.uniform[1].oneMinus());\n\t\tconst endPos = vec2(uniforms.end.uniform[0], uniforms.end.uniform[1].oneMinus());\n\t\tconst gradientVector = endPos.sub(startPos);\n\t\tconst gradientLength = length(gradientVector);\n\t\tconst gradientDir = normalize(gradientVector);\n\t\tconst safeViewportY = viewportSize.y.max(1e-6);\n\t\tconst aspect = viewportSize.x.div(safeViewportY);\n\t\tconst angleRad = radians(uniforms.angle.uniform).negate();\n\t\tconst cosAngle = cos(angleRad);\n\t\tconst sinAngle = sin(angleRad);\n\t\tconst midpoint = startPos.add(endPos).mul(.5);\n\t\tconst centeredUV = uv$1.sub(midpoint);\n\t\tconst aspectCorrectedCentered = vec2(centeredUV.x.mul(aspect), centeredUV.y);\n\t\tconst rotatedCorrected = vec2(aspectCorrectedCentered.x.mul(cosAngle).sub(aspectCorrectedCentered.y.mul(sinAngle)), aspectCorrectedCentered.x.mul(sinAngle).add(aspectCorrectedCentered.y.mul(cosAngle)));\n\t\tconst t = dot(vec2(rotatedCorrected.x.div(aspect), rotatedCorrected.y).add(midpoint).sub(startPos), gradientDir).div(gradientLength.max(1e-6));\n\t\tconst edgeModeValue = uniforms.edges.uniform.value;\n\t\tlet finalT;\n\t\tswitch (edgeModeValue) {\n\t\t\tcase 1:\n\t\t\t\tfinalT = t;\n\t\t\t\tbreak;\n\t\t\tcase 2: {\n\t\t\t\tconst mirrorT = mod(abs(t), float(2));\n\t\t\t\tfinalT = mirrorT.greaterThan(float(1)).select(float(2).sub(mirrorT), mirrorT);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase 3:\n\t\t\t\tfinalT = fract(t);\n\t\t\t\tbreak;\n\t\t\tdefault: finalT = t.clamp(float(0), float(1));\n\t\t}\n\t\tconst mixedColor = mixColors(uniforms.colorA.uniform, uniforms.colorB.uniform, finalT.clamp(float(0), float(1)), uniforms.colorSpace.uniform.value);\n\t\tlet finalAlpha;\n\t\tif (edgeModeValue === 1) {\n\t\t\tconst inBoundsX = t.greaterThanEqual(float(0)).select(float(1), float(0));\n\t\t\tconst inBoundsY = t.lessThanEqual(float(1)).select(float(1), float(0));\n\t\t\tconst inBounds = inBoundsX.mul(inBoundsY);\n\t\t\tfinalAlpha = mixedColor.w.mul(inBounds);\n\t\t} else finalAlpha = mixedColor.w;\n\t\treturn vec4(mixedColor.x, mixedColor.y, mixedColor.z, finalAlpha);\n\t}\n};\nvar LinearGradient_default = componentDefinition;\nexport { componentDefinition as n, LinearGradient_default as t };\n","import { t as applyEdgeHandling } from \"./edges-CX_lJB9R.js\";\nimport { c as transformEdges } from \"./transformations-CJcUeZIC.js\";\nimport { t as unpremultiplyAlpha } from \"./alpha-C4ptedXe.js\";\nimport { StorageTexture } from \"three/webgpu\";\nimport { DataTexture, FloatType, LinearFilter as LinearFilter$1, RGFormat } from \"three\";\nimport { Fn, If, attributeArray, convertToTexture, float, instanceIndex, screenUV, storageTexture, texture, textureStore, uint, uniform, uvec2, vec2, vec4 } from \"three/tsl\";\nvar GRID_SIZE = 64;\nconst componentDefinition = {\n\tname: \"Liquify\",\n\tcategory: \"Interactive\",\n\tdescription: \"Liquid-like interactive deformation effect\",\n\trequiresRTT: true,\n\trequiresChild: true,\n\tusesPointer: true,\n\tprops: {\n\t\tintensity: {\n\t\t\tdefault: 10,\n\t\t\tdescription: \"Scale of the fabric displacement effect\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 20,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Intensity\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tstiffness: {\n\t\t\tdefault: 3,\n\t\t\tdescription: \"Fabric rigidity (higher = stiffer canvas, lower = stretchy silk)\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 1,\n\t\t\t\tmax: 30,\n\t\t\t\tstep: .5,\n\t\t\t\tlabel: \"Stiffness\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tdamping: {\n\t\t\tdefault: 3,\n\t\t\tdescription: \"How quickly fabric motion settles\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 10,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Damping\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tradius: {\n\t\t\tdefault: 1,\n\t\t\tdescription: \"Cursor influence area\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: .1,\n\t\t\t\tmax: 1.5,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Radius\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tedges: {\n\t\t\tdefault: \"stretch\",\n\t\t\tdescription: \"How to handle edges when distortion pushes content out of bounds\",\n\t\t\ttransform: transformEdges,\n\t\t\tcompileTime: true,\n\t\t\tui: {\n\t\t\t\ttype: \"select\",\n\t\t\t\toptions: [\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Stretch\",\n\t\t\t\t\t\tvalue: \"stretch\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Transparent\",\n\t\t\t\t\t\tvalue: \"transparent\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Mirror\",\n\t\t\t\t\t\tvalue: \"mirror\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Wrap\",\n\t\t\t\t\t\tvalue: \"wrap\"\n\t\t\t\t\t}\n\t\t\t\t],\n\t\t\t\tlabel: \"Edges\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t}\n\t},\n\tcomputeNode: ({ uniforms, onCleanup }) => {\n\t\tconst bufferA = attributeArray(GRID_SIZE * GRID_SIZE, \"vec4\");\n\t\tconst bufferB = attributeArray(GRID_SIZE * GRID_SIZE, \"vec4\");\n\t\tconst dispTex = new StorageTexture(GRID_SIZE, GRID_SIZE);\n\t\tdispTex.type = FloatType;\n\t\tconst dispTexNode = storageTexture(dispTex);\n\t\tonCleanup(() => {\n\t\t\tdispTex.dispose();\n\t\t});\n\t\tconst cursorXU = uniform(.5);\n\t\tconst cursorYU = uniform(.5);\n\t\tconst dirXU = uniform(0);\n\t\tconst dirYU = uniform(0);\n\t\tconst clampedSpeedU = uniform(0);\n\t\tconst dtU = uniform(.016);\n\t\tconst subDtU = uniform(.008);\n\t\tconst stiffnessU = uniform(3);\n\t\tconst dampFactorU = uniform(.97);\n\t\tconst radiusU = uniform(.08);\n\t\tconst aspectU = uniform(1);\n\t\tconst gs = uint(GRID_SIZE);\n\t\tconst gsm1 = uint(GRID_SIZE - 1);\n\t\tconst buildSpringKernel = (readBuf, writeBuf) => Fn(() => {\n\t\t\tconst idx = instanceIndex;\n\t\t\tconst j = idx.mod(gs);\n\t\t\tconst i = idx.div(gs);\n\t\t\tIf(i.greaterThan(uint(0)).and(i.lessThan(gsm1)).and(j.greaterThan(uint(0))).and(j.lessThan(gsm1)), () => {\n\t\t\t\tconst current = readBuf.element(idx);\n\t\t\t\tconst dispX = current.x;\n\t\t\t\tconst dispY = current.y;\n\t\t\t\tconst velX = current.z;\n\t\t\t\tconst velY = current.w;\n\t\t\t\tconst idxL = idx.sub(uint(1));\n\t\t\t\tconst idxR = idx.add(uint(1));\n\t\t\t\tconst idxU = idx.sub(gs);\n\t\t\t\tconst idxD = idx.add(gs);\n\t\t\t\tconst idxUL = idx.sub(gs).sub(uint(1));\n\t\t\t\tconst idxUR = idx.sub(gs).add(uint(1));\n\t\t\t\tconst idxDL = idx.add(gs).sub(uint(1));\n\t\t\t\tconst idxDR = idx.add(gs).add(uint(1));\n\t\t\t\tconst fx = stiffnessU.mul(readBuf.element(idxL).x.sub(dispX).add(readBuf.element(idxR).x.sub(dispX)).add(readBuf.element(idxU).x.sub(dispX)).add(readBuf.element(idxD).x.sub(dispX))).toVar();\n\t\t\t\tconst fy = stiffnessU.mul(readBuf.element(idxL).y.sub(dispY).add(readBuf.element(idxR).y.sub(dispY)).add(readBuf.element(idxU).y.sub(dispY)).add(readBuf.element(idxD).y.sub(dispY))).toVar();\n\t\t\t\tconst shearK = stiffnessU.mul(float(.35));\n\t\t\t\tfx.assign(fx.add(shearK.mul(readBuf.element(idxUL).x.sub(dispX).add(readBuf.element(idxUR).x.sub(dispX)).add(readBuf.element(idxDL).x.sub(dispX)).add(readBuf.element(idxDR).x.sub(dispX)))));\n\t\t\t\tfy.assign(fy.add(shearK.mul(readBuf.element(idxUL).y.sub(dispY).add(readBuf.element(idxUR).y.sub(dispY)).add(readBuf.element(idxDL).y.sub(dispY)).add(readBuf.element(idxDR).y.sub(dispY)))));\n\t\t\t\tfx.assign(fx.sub(stiffnessU.mul(float(.1)).mul(dispX)));\n\t\t\t\tfy.assign(fy.sub(stiffnessU.mul(float(.1)).mul(dispY)));\n\t\t\t\tconst newVelX = velX.mul(dampFactorU).add(fx.mul(subDtU)).toVar();\n\t\t\t\tconst newVelY = velY.mul(dampFactorU).add(fy.mul(subDtU)).toVar();\n\t\t\t\tIf(clampedSpeedU.greaterThan(float(.01)), () => {\n\t\t\t\t\tconst cellX = j.toFloat().add(float(.5)).div(float(GRID_SIZE));\n\t\t\t\t\tconst cellY = i.toFloat().add(float(.5)).div(float(GRID_SIZE));\n\t\t\t\t\tconst ddx = aspectU.greaterThanEqual(float(1)).select(cellX.sub(cursorXU).mul(aspectU), cellX.sub(cursorXU));\n\t\t\t\t\tconst ddy = aspectU.greaterThanEqual(float(1)).select(cellY.sub(cursorYU), cellY.sub(cursorYU).div(aspectU));\n\t\t\t\t\tconst distSq = ddx.mul(ddx).add(ddy.mul(ddy));\n\t\t\t\t\tconst influenceRadius = radiusU.mul(float(3));\n\t\t\t\t\tIf(distSq.lessThan(influenceRadius.mul(influenceRadius)), () => {\n\t\t\t\t\t\tconst forceMag = distSq.negate().div(radiusU.mul(radiusU)).exp().mul(clampedSpeedU).mul(dtU).mul(float(2));\n\t\t\t\t\t\tnewVelX.assign(newVelX.add(dirXU.mul(forceMag)));\n\t\t\t\t\t\tnewVelY.assign(newVelY.add(dirYU.mul(forceMag)));\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t\tconst newDispX = dispX.add(newVelX.mul(subDtU)).clamp(float(-.5), float(.5));\n\t\t\t\tconst newDispY = dispY.add(newVelY.mul(subDtU)).clamp(float(-.5), float(.5));\n\t\t\t\twriteBuf.element(idx).assign(vec4(newDispX, newDispY, newVelX, newVelY));\n\t\t\t});\n\t\t})().compute(GRID_SIZE * GRID_SIZE, [256]);\n\t\tconst buildOutputKernel = (srcBuf) => Fn(() => {\n\t\t\tconst idx = instanceIndex;\n\t\t\tconst j = idx.mod(gs);\n\t\t\tconst i = idx.div(gs);\n\t\t\tconst cell = srcBuf.element(idx);\n\t\t\ttextureStore(dispTexNode, uvec2(j, i), vec4(cell.x, cell.y, float(0), float(1))).toWriteOnly();\n\t\t})().compute(GRID_SIZE * GRID_SIZE, [256]);\n\t\tconst springAtoB = buildSpringKernel(bufferA, bufferB);\n\t\tconst springBtoA = buildSpringKernel(bufferB, bufferA);\n\t\tconst outputFromA = buildOutputKernel(bufferA);\n\t\tlet prevX = .5;\n\t\tlet prevY = .5;\n\t\tlet lastTime = Date.now();\n\t\tlet lastActiveTime = Date.now();\n\t\treturn {\n\t\t\toutputs: { displacement: dispTex },\n\t\t\tgetComputeNodes: (params) => {\n\t\t\t\tconst currentTime = Date.now();\n\t\t\t\tconst dt = Math.min((currentTime - lastTime) / 1e3, .016);\n\t\t\t\tlastTime = currentTime;\n\t\t\t\tif (dt <= 0) return null;\n\t\t\t\tconst aspect = Math.max(1, params.dimensions.width) / Math.max(1, params.dimensions.height);\n\t\t\t\tconst stiffness = uniforms.stiffness.uniform.value;\n\t\t\t\tconst damping = uniforms.damping.uniform.value;\n\t\t\t\tconst radius = uniforms.radius.uniform.value * .08;\n\t\t\t\tconst rawVelX = (params.pointer.x - prevX) / dt;\n\t\t\t\tconst rawVelY = (params.pointer.y - prevY) / dt;\n\t\t\t\tconst speed = Math.sqrt(rawVelX * rawVelX + rawVelY * rawVelY);\n\t\t\t\tconst clampedSpeed = Math.min(speed, 3);\n\t\t\t\tprevX = params.pointer.x;\n\t\t\t\tprevY = params.pointer.y;\n\t\t\t\tif (clampedSpeed > .01) lastActiveTime = currentTime;\n\t\t\t\tconst dampVal = uniforms.damping.uniform.value;\n\t\t\t\tconst settleMs = dampVal > 0 ? Math.min(3e4, 5e3 / dampVal) : 3e4;\n\t\t\t\tif (currentTime - lastActiveTime > settleMs) return null;\n\t\t\t\tconst subDt = dt / 2;\n\t\t\t\tcursorXU.value = params.pointer.x;\n\t\t\t\tcursorYU.value = params.pointer.y;\n\t\t\t\tdirXU.value = speed > .01 ? rawVelX / speed : 0;\n\t\t\t\tdirYU.value = speed > .01 ? rawVelY / speed : 0;\n\t\t\t\tclampedSpeedU.value = clampedSpeed;\n\t\t\t\tdtU.value = dt;\n\t\t\t\tsubDtU.value = subDt;\n\t\t\t\tstiffnessU.value = stiffness;\n\t\t\t\tdampFactorU.value = Math.max(0, Math.min(1, 1 - damping * subDt));\n\t\t\t\tradiusU.value = radius;\n\t\t\t\taspectU.value = aspect;\n\t\t\t\treturn [\n\t\t\t\t\tspringAtoB,\n\t\t\t\t\tspringBtoA,\n\t\t\t\t\toutputFromA\n\t\t\t\t];\n\t\t\t}\n\t\t};\n\t},\n\tfragmentNode: ({ uniforms, onBeforeRender, childNode, onCleanup, computeOutputs }) => {\n\t\tif (!childNode) return vec4(0, 0, 0, 0);\n\t\tconst childTexture = computeOutputs?.childTexture ?? convertToTexture(childNode);\n\t\tif (!computeOutputs) onCleanup(() => {\n\t\t\tif (childTexture?.renderTarget?.dispose) childTexture.renderTarget.dispose();\n\t\t});\n\t\tlet displacement;\n\t\tif (computeOutputs?.displacement) {\n\t\t\tchildTexture.sample(screenUV);\n\t\t\tdisplacement = texture(computeOutputs.displacement).sample(screenUV).xy;\n\t\t} else {\n\t\t\tconst displacementX = new Float32Array(GRID_SIZE * GRID_SIZE);\n\t\t\tconst displacementY = new Float32Array(GRID_SIZE * GRID_SIZE);\n\t\t\tconst velocityX = new Float32Array(GRID_SIZE * GRID_SIZE);\n\t\t\tconst velocityY = new Float32Array(GRID_SIZE * GRID_SIZE);\n\t\t\tconst tempVelocityX = new Float32Array(GRID_SIZE * GRID_SIZE);\n\t\t\tconst tempVelocityY = new Float32Array(GRID_SIZE * GRID_SIZE);\n\t\t\tconst tempDisplacementX = new Float32Array(GRID_SIZE * GRID_SIZE);\n\t\t\tconst tempDisplacementY = new Float32Array(GRID_SIZE * GRID_SIZE);\n\t\t\tconst displacementData = new Float32Array(GRID_SIZE * GRID_SIZE * 2);\n\t\t\tconst displacementTexture = new DataTexture(displacementData, GRID_SIZE, GRID_SIZE, RGFormat, FloatType);\n\t\t\tdisplacementTexture.magFilter = LinearFilter$1;\n\t\t\tdisplacementTexture.minFilter = LinearFilter$1;\n\t\t\tdisplacementTexture.needsUpdate = true;\n\t\t\tconst displacementField = texture(displacementTexture);\n\t\t\tlet prevX = .5;\n\t\t\tlet prevY = .5;\n\t\t\tlet lastTime = Date.now();\n\t\t\tconst SUBSTEPS = 2;\n\t\t\tonBeforeRender(({ pointer, dimensions }) => {\n\t\t\t\tconst currentTime = Date.now();\n\t\t\t\tconst dt = Math.min((currentTime - lastTime) / 1e3, .016);\n\t\t\t\tlastTime = currentTime;\n\t\t\t\tif (dt <= 0) return;\n\t\t\t\tconst aspect = Math.max(1, dimensions.width) / Math.max(1, dimensions.height);\n\t\t\t\tconst stiffness = uniforms.stiffness.uniform.value;\n\t\t\t\tconst damping = uniforms.damping.uniform.value;\n\t\t\t\tconst radius = uniforms.radius.uniform.value * .08;\n\t\t\t\tconst rawVelX = (pointer.x - prevX) / dt;\n\t\t\t\tconst rawVelY = (pointer.y - prevY) / dt;\n\t\t\t\tconst speed = Math.sqrt(rawVelX * rawVelX + rawVelY * rawVelY);\n\t\t\t\tconst clampedSpeed = Math.min(speed, 3);\n\t\t\t\tlet dirX = 0, dirY = 0;\n\t\t\t\tif (speed > .01) {\n\t\t\t\t\tdirX = rawVelX / speed;\n\t\t\t\t\tdirY = rawVelY / speed;\n\t\t\t\t}\n\t\t\t\tconst subDt = dt / SUBSTEPS;\n\t\t\t\tfor (let s = 0; s < SUBSTEPS; s++) {\n\t\t\t\t\tif (s === 0 && clampedSpeed > .01) {\n\t\t\t\t\t\tconst influenceRadius = radius * 3;\n\t\t\t\t\t\tconst minI = Math.max(1, Math.floor((pointer.y - influenceRadius) * GRID_SIZE));\n\t\t\t\t\t\tconst maxI = Math.min(GRID_SIZE - 2, Math.ceil((pointer.y + influenceRadius) * GRID_SIZE));\n\t\t\t\t\t\tconst minJ = Math.max(1, Math.floor((pointer.x - influenceRadius) * GRID_SIZE));\n\t\t\t\t\t\tconst maxJ = Math.min(GRID_SIZE - 2, Math.ceil((pointer.x + influenceRadius) * GRID_SIZE));\n\t\t\t\t\t\tfor (let i = minI; i <= maxI; i++) for (let j = minJ; j <= maxJ; j++) {\n\t\t\t\t\t\t\tconst idx = i * GRID_SIZE + j;\n\t\t\t\t\t\t\tconst cellX = (j + .5) / GRID_SIZE;\n\t\t\t\t\t\t\tconst cellY = (i + .5) / GRID_SIZE;\n\t\t\t\t\t\t\tconst ddx = aspect >= 1 ? (cellX - pointer.x) * aspect : cellX - pointer.x;\n\t\t\t\t\t\t\tconst ddy = aspect >= 1 ? cellY - pointer.y : (cellY - pointer.y) / aspect;\n\t\t\t\t\t\t\tconst dist = Math.sqrt(ddx * ddx + ddy * ddy);\n\t\t\t\t\t\t\tif (dist < influenceRadius) {\n\t\t\t\t\t\t\t\tconst forceMag = Math.exp(-dist * dist / (radius * radius)) * clampedSpeed * dt * 2;\n\t\t\t\t\t\t\t\tvelocityX[idx] += dirX * forceMag;\n\t\t\t\t\t\t\t\tvelocityY[idx] += dirY * forceMag;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tconst dampFactor = Math.max(0, Math.min(1, 1 - damping * subDt));\n\t\t\t\t\tconst shearK = stiffness * .35;\n\t\t\t\t\ttempVelocityX.set(velocityX);\n\t\t\t\t\ttempVelocityY.set(velocityY);\n\t\t\t\t\ttempDisplacementX.set(displacementX);\n\t\t\t\t\ttempDisplacementY.set(displacementY);\n\t\t\t\t\tfor (let i = 1; i < GRID_SIZE - 1; i++) for (let j = 1; j < GRID_SIZE - 1; j++) {\n\t\t\t\t\t\tconst idx = i * GRID_SIZE + j;\n\t\t\t\t\t\tlet fx = 0, fy = 0;\n\t\t\t\t\t\tconst idxL = idx - 1, idxR = idx + 1;\n\t\t\t\t\t\tconst idxU = idx - GRID_SIZE, idxD = idx + GRID_SIZE;\n\t\t\t\t\t\tfx += stiffness * (displacementX[idxL] - displacementX[idx]);\n\t\t\t\t\t\tfx += stiffness * (displacementX[idxR] - displacementX[idx]);\n\t\t\t\t\t\tfx += stiffness * (displacementX[idxU] - displacementX[idx]);\n\t\t\t\t\t\tfx += stiffness * (displacementX[idxD] - displacementX[idx]);\n\t\t\t\t\t\tfy += stiffness * (displacementY[idxL] - displacementY[idx]);\n\t\t\t\t\t\tfy += stiffness * (displacementY[idxR] - displacementY[idx]);\n\t\t\t\t\t\tfy += stiffness * (displacementY[idxU] - displacementY[idx]);\n\t\t\t\t\t\tfy += stiffness * (displacementY[idxD] - displacementY[idx]);\n\t\t\t\t\t\tconst idxUL = idx - GRID_SIZE - 1, idxUR = idx - GRID_SIZE + 1;\n\t\t\t\t\t\tconst idxDL = idx + GRID_SIZE - 1, idxDR = idx + GRID_SIZE + 1;\n\t\t\t\t\t\tfx += shearK * (displacementX[idxUL] - displacementX[idx]);\n\t\t\t\t\t\tfx += shearK * (displacementX[idxUR] - displacementX[idx]);\n\t\t\t\t\t\tfx += shearK * (displacementX[idxDL] - displacementX[idx]);\n\t\t\t\t\t\tfx += shearK * (displacementX[idxDR] - displacementX[idx]);\n\t\t\t\t\t\tfy += shearK * (displacementY[idxUL] - displacementY[idx]);\n\t\t\t\t\t\tfy += shearK * (displacementY[idxUR] - displacementY[idx]);\n\t\t\t\t\t\tfy += shearK * (displacementY[idxDL] - displacementY[idx]);\n\t\t\t\t\t\tfy += shearK * (displacementY[idxDR] - displacementY[idx]);\n\t\t\t\t\t\tfx -= stiffness * .1 * displacementX[idx];\n\t\t\t\t\t\tfy -= stiffness * .1 * displacementY[idx];\n\t\t\t\t\t\ttempVelocityX[idx] = velocityX[idx] * dampFactor + fx * subDt;\n\t\t\t\t\t\ttempVelocityY[idx] = velocityY[idx] * dampFactor + fy * subDt;\n\t\t\t\t\t\ttempDisplacementX[idx] = displacementX[idx] + tempVelocityX[idx] * subDt;\n\t\t\t\t\t\ttempDisplacementY[idx] = displacementY[idx] + tempVelocityY[idx] * subDt;\n\t\t\t\t\t\ttempDisplacementX[idx] = Math.max(-.5, Math.min(.5, tempDisplacementX[idx]));\n\t\t\t\t\t\ttempDisplacementY[idx] = Math.max(-.5, Math.min(.5, tempDisplacementY[idx]));\n\t\t\t\t\t}\n\t\t\t\t\tvelocityX.set(tempVelocityX);\n\t\t\t\t\tvelocityY.set(tempVelocityY);\n\t\t\t\t\tdisplacementX.set(tempDisplacementX);\n\t\t\t\t\tdisplacementY.set(tempDisplacementY);\n\t\t\t\t}\n\t\t\t\tfor (let i = 0; i < GRID_SIZE; i++) for (let j = 0; j < GRID_SIZE; j++) {\n\t\t\t\t\tconst idx = i * GRID_SIZE + j;\n\t\t\t\t\tconst dIdx = idx * 2;\n\t\t\t\t\tdisplacementData[dIdx] = displacementX[idx];\n\t\t\t\t\tdisplacementData[dIdx + 1] = displacementY[idx];\n\t\t\t\t}\n\t\t\t\tdisplacementTexture.needsUpdate = true;\n\t\t\t\tprevX = pointer.x;\n\t\t\t\tprevY = pointer.y;\n\t\t\t});\n\t\t\tonCleanup(() => {\n\t\t\t\tdisplacementTexture.dispose();\n\t\t\t});\n\t\t\tdisplacement = displacementField.sample(screenUV).xy;\n\t\t}\n\t\tconst intensityScale = uniforms.intensity.uniform.mul(.1);\n\t\tconst scaledDisplacement = displacement.mul(intensityScale);\n\t\tconst maxDisp = float(.15);\n\t\tconst clampedDisplacement = scaledDisplacement.clamp(vec2(maxDisp.negate(), maxDisp.negate()), vec2(maxDisp, maxDisp));\n\t\tconst distortedUV = screenUV.sub(clampedDisplacement);\n\t\treturn unpremultiplyAlpha(applyEdgeHandling(distortedUV, childTexture.sample(distortedUV), childTexture, uniforms.edges.uniform.value));\n\t}\n};\nvar Liquify_default = componentDefinition;\nexport { componentDefinition as n, Liquify_default as t };\n","import { a as transformColor, o as transformColorSpace, t as colorSpaceOptions } from \"./transformations-CJcUeZIC.js\";\nimport { t as mixColors } from \"./colorMixing-BPpDnR5I.js\";\nimport { t as createAnimatedTime } from \"./time-DUqSFWvT.js\";\nimport { float, mx_noise_float, screenUV, sin, smoothstep, vec2, vec4, viewportSize } from \"three/tsl\";\nconst componentDefinition = {\n\tname: \"Marble\",\n\tcategory: \"Textures\",\n\tdescription: \"Classic marble swirl and vein texture using noise-warped sine waves\",\n\tprops: {\n\t\tcolorA: {\n\t\t\tdefault: \"#ffffff\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Base background color of the marble\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Base\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tcolorB: {\n\t\t\tdefault: \"#3a2d54\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Secondary marble tone\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Tone\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tcolorC: {\n\t\t\tdefault: \"#0f0f0f\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Deepest marble color\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Depth\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tscale: {\n\t\t\tdefault: 2,\n\t\t\tdescription: \"Scale and density of the marble vein pattern\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: .1,\n\t\t\t\tmax: 10,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Scale\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tturbulence: {\n\t\t\tdefault: 10,\n\t\t\tdescription: \"Amount of noise-driven distortion applied to the veins\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 50,\n\t\t\t\tstep: .5,\n\t\t\t\tlabel: \"Turbulence\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tspeed: {\n\t\t\tdefault: .05,\n\t\t\tdescription: \"Animation speed\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: .25,\n\t\t\t\tstep: .005,\n\t\t\t\tlabel: \"Speed\",\n\t\t\t\tgroup: \"Animation\"\n\t\t\t}\n\t\t},\n\t\tseed: {\n\t\t\tdefault: 0,\n\t\t\tdescription: \"Random seed for pattern variation\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 100,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Seed\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tcolorSpace: {\n\t\t\tdefault: \"linear\",\n\t\t\ttransform: transformColorSpace,\n\t\t\tcompileTime: true,\n\t\t\tdescription: \"Color space for color interpolation\",\n\t\t\tui: {\n\t\t\t\ttype: \"select\",\n\t\t\t\toptions: colorSpaceOptions,\n\t\t\t\tlabel: \"Color Space\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t}\n\t},\n\tfragmentNode: (params) => {\n\t\tconst { uniforms } = params;\n\t\tconst uv$1 = screenUV;\n\t\tconst aspect = viewportSize.x.div(viewportSize.y);\n\t\tconst au = uv$1.x.mul(aspect);\n\t\tconst av = uv$1.y;\n\t\tconst animTime = createAnimatedTime(params, uniforms.speed);\n\t\tconst scale = uniforms.scale.uniform;\n\t\tconst seedVal = uniforms.seed.uniform;\n\t\tconst n1 = mx_noise_float(vec2(au.mul(scale).add(seedVal), av.mul(scale).add(animTime)));\n\t\tconst n2 = mx_noise_float(vec2(au.mul(scale).mul(2).add(seedVal.mul(1.7)), av.mul(scale).mul(2).add(animTime.mul(.7)))).mul(.5);\n\t\tconst n3 = mx_noise_float(vec2(au.mul(scale).mul(4).add(seedVal.mul(3.1)), av.mul(scale).mul(4).add(animTime.mul(1.3)))).mul(.25);\n\t\tconst totalNoise = n1.add(n2).add(n3);\n\t\tconst turbulence = uniforms.turbulence.uniform;\n\t\tconst marbleT = sin(au.mul(scale).mul(float(Math.PI)).add(totalNoise.mul(turbulence))).mul(.5).add(.5);\n\t\tconst n4 = mx_noise_float(vec2(av.mul(scale).mul(1.5).add(seedVal.mul(2)), au.mul(scale).mul(1.2))).mul(.3).add(.5);\n\t\tconst t1 = smoothstep(float(.3), float(.6), marbleT);\n\t\tconst t2 = smoothstep(float(.6), float(.9), marbleT);\n\t\tconst colABC = mixColors(mixColors(uniforms.colorA.uniform, uniforms.colorB.uniform, t1, uniforms.colorSpace.uniform.value), uniforms.colorC.uniform, t2.mul(n4), uniforms.colorSpace.uniform.value);\n\t\treturn vec4(colABC.rgb, colABC.a);\n\t}\n};\nvar Marble_default = componentDefinition;\nexport { componentDefinition as n, Marble_default as t };\n","import { t as applyEdgeHandling } from \"./edges-CX_lJB9R.js\";\nimport { c as transformEdges, l as transformPosition } from \"./transformations-CJcUeZIC.js\";\nimport { t as unpremultiplyAlpha } from \"./alpha-C4ptedXe.js\";\nimport { convertToTexture, cos, mix, screenUV, sin, step, vec2, vec4, viewportSize } from \"three/tsl\";\nconst componentDefinition = {\n\tname: \"Mirror\",\n\tcategory: \"Distortions\",\n\tdescription: \"Mirror content across a line defined by center point and angle\",\n\trequiresRTT: true,\n\trequiresChild: true,\n\tprops: {\n\t\tcenter: {\n\t\t\tdefault: {\n\t\t\t\tx: .5,\n\t\t\t\ty: .5\n\t\t\t},\n\t\t\ttransform: transformPosition,\n\t\t\tdescription: \"The point the mirror line passes through\",\n\t\t\tui: {\n\t\t\t\ttype: \"position\",\n\t\t\t\tlabel: \"Center\",\n\t\t\t\tgroup: \"Position\"\n\t\t\t}\n\t\t},\n\t\tangle: {\n\t\t\tdefault: 0,\n\t\t\tdescription: \"The angle of the mirror line in degrees\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 360,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Angle\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tedges: {\n\t\t\tdefault: \"mirror\",\n\t\t\tdescription: \"How to handle edges when distortion pushes content out of bounds\",\n\t\t\ttransform: transformEdges,\n\t\t\tcompileTime: true,\n\t\t\tui: {\n\t\t\t\ttype: \"select\",\n\t\t\t\toptions: [\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Stretch\",\n\t\t\t\t\t\tvalue: \"stretch\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Transparent\",\n\t\t\t\t\t\tvalue: \"transparent\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Mirror\",\n\t\t\t\t\t\tvalue: \"mirror\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Wrap\",\n\t\t\t\t\t\tvalue: \"wrap\"\n\t\t\t\t\t}\n\t\t\t\t],\n\t\t\t\tlabel: \"Edges\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t}\n\t},\n\tfragmentNode: ({ uniforms, childNode, onCleanup }) => {\n\t\tif (!childNode) return vec4(0, 0, 0, 0);\n\t\tconst childTexture = convertToTexture(childNode);\n\t\tonCleanup(() => {\n\t\t\tif (childTexture?.renderTarget?.dispose) childTexture.renderTarget.dispose();\n\t\t});\n\t\tconst aspect = viewportSize.x.div(viewportSize.y);\n\t\tconst aspectCorrectedUV = vec2(screenUV.x.mul(aspect), screenUV.y);\n\t\tconst centerPos = vec2(uniforms.center.uniform.x.mul(aspect), uniforms.center.uniform.y.oneMinus());\n\t\tconst delta = aspectCorrectedUV.sub(centerPos);\n\t\tconst angleRad = uniforms.angle.uniform.mul(Math.PI / 180);\n\t\tconst lineDirection = vec2(cos(angleRad), sin(angleRad));\n\t\tconst lineNormal = vec2(lineDirection.y.negate(), lineDirection.x);\n\t\tconst signedDistance = delta.dot(lineNormal);\n\t\tconst reflectedDelta = delta.sub(lineNormal.mul(signedDistance.mul(2)));\n\t\tconst mirroredUV = centerPos.add(reflectedDelta);\n\t\tconst finalMirroredUV = vec2(mirroredUV.x.div(aspect), mirroredUV.y);\n\t\tconst shouldMirror = step(0, signedDistance);\n\t\treturn unpremultiplyAlpha(mix(childTexture.sample(screenUV), applyEdgeHandling(finalMirroredUV, childTexture.sample(finalMirroredUV), childTexture, uniforms.edges.uniform.value), shouldMirror));\n\t}\n};\nvar Mirror_default = componentDefinition;\nexport { componentDefinition as n, Mirror_default as t };\n","import { a as transformColor, l as transformPosition } from \"./transformations-CJcUeZIC.js\";\nimport { Fn, float, pow, screenUV, sqrt, vec2, vec3, vec4, viewportSize } from \"three/tsl\";\nconst componentDefinition = {\n\tname: \"MultiPointGradient\",\n\tcategory: \"Textures\",\n\tdescription: \"Five individually placed color points blended together by proximity — drag each point to shape the gradient\",\n\tprops: {\n\t\tcolorA: {\n\t\t\tdefault: \"#4776E6\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Color of control point A\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Color\",\n\t\t\t\tgroup: \"Point A\"\n\t\t\t}\n\t\t},\n\t\tpositionA: {\n\t\t\tdefault: {\n\t\t\t\tx: .2,\n\t\t\t\ty: .2\n\t\t\t},\n\t\t\ttransform: transformPosition,\n\t\t\tdescription: \"Position of control point A\",\n\t\t\tui: {\n\t\t\t\ttype: \"position\",\n\t\t\t\tlabel: \"Position\",\n\t\t\t\tgroup: \"Point A\"\n\t\t\t}\n\t\t},\n\t\tcolorB: {\n\t\t\tdefault: \"#C44DFF\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Color of control point B\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Color\",\n\t\t\t\tgroup: \"Point B\"\n\t\t\t}\n\t\t},\n\t\tpositionB: {\n\t\t\tdefault: {\n\t\t\t\tx: .8,\n\t\t\t\ty: .2\n\t\t\t},\n\t\t\ttransform: transformPosition,\n\t\t\tdescription: \"Position of control point B\",\n\t\t\tui: {\n\t\t\t\ttype: \"position\",\n\t\t\t\tlabel: \"Position\",\n\t\t\t\tgroup: \"Point B\"\n\t\t\t}\n\t\t},\n\t\tcolorC: {\n\t\t\tdefault: \"#1ABC9C\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Color of control point C\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Color\",\n\t\t\t\tgroup: \"Point C\"\n\t\t\t}\n\t\t},\n\t\tpositionC: {\n\t\t\tdefault: {\n\t\t\t\tx: .2,\n\t\t\t\ty: .8\n\t\t\t},\n\t\t\ttransform: transformPosition,\n\t\t\tdescription: \"Position of control point C\",\n\t\t\tui: {\n\t\t\t\ttype: \"position\",\n\t\t\t\tlabel: \"Position\",\n\t\t\t\tgroup: \"Point C\"\n\t\t\t}\n\t\t},\n\t\tcolorD: {\n\t\t\tdefault: \"#F8BBD9\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Color of control point D\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Color\",\n\t\t\t\tgroup: \"Point D\"\n\t\t\t}\n\t\t},\n\t\tpositionD: {\n\t\t\tdefault: {\n\t\t\t\tx: .8,\n\t\t\t\ty: .8\n\t\t\t},\n\t\t\ttransform: transformPosition,\n\t\t\tdescription: \"Position of control point D\",\n\t\t\tui: {\n\t\t\t\ttype: \"position\",\n\t\t\t\tlabel: \"Position\",\n\t\t\t\tgroup: \"Point D\"\n\t\t\t}\n\t\t},\n\t\tcolorE: {\n\t\t\tdefault: \"#FF8C42\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Color of control point E\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Color\",\n\t\t\t\tgroup: \"Point E\"\n\t\t\t}\n\t\t},\n\t\tpositionE: {\n\t\t\tdefault: {\n\t\t\t\tx: .5,\n\t\t\t\ty: .5\n\t\t\t},\n\t\t\ttransform: transformPosition,\n\t\t\tdescription: \"Position of control point E\",\n\t\t\tui: {\n\t\t\t\ttype: \"position\",\n\t\t\t\tlabel: \"Position\",\n\t\t\t\tgroup: \"Point E\"\n\t\t\t}\n\t\t},\n\t\tsmoothness: {\n\t\t\tdefault: 2,\n\t\t\tdescription: \"Controls how smoothly colors blend.\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 5,\n\t\t\t\tstep: .05,\n\t\t\t\tlabel: \"Smoothness\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t}\n\t},\n\tfragmentNode: ({ uniforms }) => {\n\t\tconst smoothness = uniforms.smoothness.uniform;\n\t\tconst aspect = viewportSize.x.div(viewportSize.y);\n\t\tconst uvAspect = vec2(screenUV.x.mul(aspect), screenUV.y);\n\t\tconst points = [\n\t\t\t{\n\t\t\t\tcolor: uniforms.colorA.uniform,\n\t\t\t\tpos: vec2(uniforms.positionA.uniform.x.mul(aspect), uniforms.positionA.uniform.y.oneMinus())\n\t\t\t},\n\t\t\t{\n\t\t\t\tcolor: uniforms.colorB.uniform,\n\t\t\t\tpos: vec2(uniforms.positionB.uniform.x.mul(aspect), uniforms.positionB.uniform.y.oneMinus())\n\t\t\t},\n\t\t\t{\n\t\t\t\tcolor: uniforms.colorC.uniform,\n\t\t\t\tpos: vec2(uniforms.positionC.uniform.x.mul(aspect), uniforms.positionC.uniform.y.oneMinus())\n\t\t\t},\n\t\t\t{\n\t\t\t\tcolor: uniforms.colorD.uniform,\n\t\t\t\tpos: vec2(uniforms.positionD.uniform.x.mul(aspect), uniforms.positionD.uniform.y.oneMinus())\n\t\t\t},\n\t\t\t{\n\t\t\t\tcolor: uniforms.colorE.uniform,\n\t\t\t\tpos: vec2(uniforms.positionE.uniform.x.mul(aspect), uniforms.positionE.uniform.y.oneMinus())\n\t\t\t}\n\t\t];\n\t\treturn Fn(() => {\n\t\t\tconst wRGB = vec3(0).toVar();\n\t\t\tconst wA = float(0).toVar();\n\t\t\tconst wSum = float(0).toVar();\n\t\t\tfor (const { color, pos } of points) {\n\t\t\t\tconst dx = uvAspect.x.sub(pos.x);\n\t\t\t\tconst dy = uvAspect.y.sub(pos.y);\n\t\t\t\tconst dist = sqrt(dx.mul(dx).add(dy.mul(dy))).add(float(.001));\n\t\t\t\tconst effectivePower = float(8).div(smoothness.add(float(.5))).min(float(8));\n\t\t\t\tconst weight = float(1).div(pow(dist, effectivePower));\n\t\t\t\twRGB.assign(wRGB.add(color.rgb.mul(weight)));\n\t\t\t\twA.assign(wA.add(color.a.mul(weight)));\n\t\t\t\twSum.assign(wSum.add(weight));\n\t\t\t}\n\t\t\treturn vec4(wRGB.div(wSum), wA.div(wSum));\n\t\t})();\n\t}\n};\nvar MultiPointGradient_default = componentDefinition;\nexport { componentDefinition as n, MultiPointGradient_default as t };\n","import { a as transformColor, l as transformPosition } from \"./transformations-CJcUeZIC.js\";\nimport { n as createAnalyticSdfSampler, r as createSvgSdfSampler } from \"./sdf-D_EAGXhN.js\";\nimport { Fn, If, atan, clamp, cos, exp, exp2, float, max, mix, pow, screenUV, sin, smoothstep, sqrt, uniform, vec2, vec3, vec4, viewportSize } from \"three/tsl\";\nvar _LZ = .7;\nvar _INV_LIGHT_LEN = 1 / Math.sqrt(1 + _LZ * _LZ);\nvar _LZN = _LZ * _INV_LIGHT_LEN;\nvar _HZ = _LZN + 1;\nvar _INV_H_LEN = 1 / Math.sqrt(_INV_LIGHT_LEN * _INV_LIGHT_LEN + _HZ * _HZ);\nfunction applyNeonEffect(sdfSampler, uniforms, timeNode) {\n\treturn Fn(() => {\n\t\tconst uv$1 = screenUV;\n\t\tconst aspect = viewportSize.x.div(viewportSize.y);\n\t\tconst centerPos = vec2(uniforms.center.uniform.x, uniforms.center.uniform.y.oneMinus());\n\t\tconst scale = uniforms.scale.uniform;\n\t\tconst sdfUV = vec2(uv$1.x.sub(centerPos.x).mul(aspect).div(scale).add(float(.5)), uv$1.y.sub(centerPos.y).div(scale).add(float(.5)));\n\t\tconst smoothAmt = uniforms.cornerSmoothing.uniform;\n\t\tconst smoothEPS = float(.008).add(smoothAmt.mul(float(.03)));\n\t\tconst sdfCenter = sdfSampler(sdfUV).r;\n\t\tconst sdfRight = sdfSampler(sdfUV.add(vec2(smoothEPS, float(0)))).r;\n\t\tconst sdfLeft = sdfSampler(sdfUV.sub(vec2(smoothEPS, float(0)))).r;\n\t\tconst sdfUp = sdfSampler(sdfUV.add(vec2(float(0), smoothEPS))).r;\n\t\tconst sdfDown = sdfSampler(sdfUV.sub(vec2(float(0), smoothEPS))).r;\n\t\tconst gradX = sdfRight.sub(sdfLeft).div(smoothEPS.mul(float(2)));\n\t\tconst gradY = sdfUp.sub(sdfDown).div(smoothEPS.mul(float(2)));\n\t\tconst sdf = mix(sdfCenter, sdfCenter.add(sdfRight).add(sdfLeft).add(sdfUp).add(sdfDown).div(float(5)), smoothAmt);\n\t\tconst pxH = float(1).div(viewportSize.y);\n\t\tconst glowR = uniforms.glowRadius.uniform.max(float(.001));\n\t\tconst softPx = max(pxH.div(scale), float(.004));\n\t\tconst output = vec4(0).toVar();\n\t\tIf(sdf.greaterThan(glowR.mul(float(1.5)).add(softPx)), () => {\n\t\t\toutput.assign(vec4(0, 0, 0, 0));\n\t\t}).Else(() => {\n\t\t\tconst gradLen = sqrt(gradX.mul(gradX).add(gradY.mul(gradY))).max(float(1e-4));\n\t\t\tconst gnx = gradX.div(gradLen);\n\t\t\tconst gny = gradY.div(gradLen);\n\t\t\tconst tubeR = uniforms.tubeThickness.uniform;\n\t\t\tconst depthNorm = clamp(sdf.negate().div(tubeR.max(float(.001))), float(0), float(1));\n\t\t\tconst outerMask = smoothstep(softPx, softPx.negate(), sdf);\n\t\t\tconst innerMask = smoothstep(tubeR.add(softPx), tubeR.sub(softPx), sdf.negate());\n\t\t\tconst tubeMask = outerMask.mul(innerMask);\n\t\t\tconst t = depthNorm;\n\t\t\tconst cylinderZ = sqrt(t.mul(float(2).sub(t)).max(float(0)));\n\t\t\tconst cylinderR = float(1).sub(t);\n\t\t\tconst nx = gnx.mul(cylinderR);\n\t\t\tconst ny = gny.mul(cylinderR);\n\t\t\tconst nz = cylinderZ;\n\t\t\tconst lightRad = uniforms.lightAngle.uniform.mul(float(Math.PI / 180));\n\t\t\tconst lx = cos(lightRad);\n\t\t\tconst ly = sin(lightRad);\n\t\t\tconst lxn = lx.mul(float(_INV_LIGHT_LEN));\n\t\t\tconst lyn = ly.mul(float(_INV_LIGHT_LEN));\n\t\t\tconst lzn = float(_LZN);\n\t\t\tconst diffuse = clamp(nx.mul(lxn).add(ny.mul(lyn)).add(nz.mul(lzn)), float(0), float(1));\n\t\t\tconst NdotH = nx.mul(lxn.mul(float(_INV_H_LEN))).add(ny.mul(lyn.mul(float(_INV_H_LEN)))).add(nz.mul(float(_HZ * _INV_H_LEN)));\n\t\t\tconst shininess = exp2(float(8).sub(uniforms.specularSize.uniform.mul(float(7))));\n\t\t\tconst specular = pow(clamp(NdotH, float(0), float(1)), shininess).mul(uniforms.specularIntensity.uniform);\n\t\t\tconst flowDx = sdfUV.x.sub(float(.5));\n\t\t\tconst flowWave = sin(atan(sdfUV.y.sub(float(.5)), flowDx).mul(float(2)).add(timeNode.mul(uniforms.flowSpeed.uniform))).mul(float(.5)).add(float(.5));\n\t\t\tconst flowMod = mix(float(1), flowWave, uniforms.flowAmount.uniform);\n\t\t\tconst primaryCol = vec3(uniforms.color.uniform.x, uniforms.color.uniform.y, uniforms.color.uniform.z);\n\t\t\tconst secondCol = vec3(uniforms.secondaryColor.uniform.x, uniforms.secondaryColor.uniform.y, uniforms.secondaryColor.uniform.z);\n\t\t\tconst blendAmt = uniforms.secondaryBlend.uniform;\n\t\t\tconst baseColor = mix(primaryCol, mix(secondCol, primaryCol, diffuse), blendAmt);\n\t\t\tconst ambient = float(.12);\n\t\t\tconst selfEmission = cylinderZ.mul(float(.35));\n\t\t\tconst shadedRgb = baseColor.mul(ambient.add(diffuse.mul(float(.55))).add(selfEmission));\n\t\t\tconst specCol = vec3(specular, specular, specular);\n\t\t\tconst tubeRgb = shadedRgb.add(specCol);\n\t\t\tconst hotCoreAmt = smoothstep(float(.55), float(1), depthNorm).mul(uniforms.hotCoreIntensity.uniform).mul(flowMod);\n\t\t\tconst tubeFlowed = mix(tubeRgb, mix(primaryCol, vec3(1, 1, 1), float(.75)), hotCoreAmt).mul(mix(float(1), flowMod, float(.4)));\n\t\t\tconst glowI = uniforms.glowIntensity.uniform;\n\t\t\tconst sdfOutside = max(sdf, float(0));\n\t\t\tconst innerGlowFalloff = float(12).div(glowR);\n\t\t\tconst innerGlow = exp(sdfOutside.negate().mul(innerGlowFalloff)).mul(float(.7));\n\t\t\tconst outerGlowFalloff = float(4).div(glowR);\n\t\t\tconst outerGlow = exp(sdfOutside.negate().mul(outerGlowFalloff)).mul(float(.35));\n\t\t\tconst totalGlow = innerGlow.add(outerGlow).mul(glowI);\n\t\t\tconst outsideFactor = smoothstep(float(-.003), float(.003), sdf);\n\t\t\tconst glowMasked = totalGlow.mul(outsideFactor);\n\t\t\tconst glowCol = vec3(uniforms.glowColor.uniform.x, uniforms.glowColor.uniform.y, uniforms.glowColor.uniform.z);\n\t\t\tconst flickerTime = timeNode.mul(uniforms.flickerSpeed.uniform);\n\t\t\tconst f1 = sin(flickerTime.mul(float(17.13)));\n\t\t\tconst f2 = sin(flickerTime.mul(float(31.71)));\n\t\t\tconst f3 = sin(flickerTime.mul(float(47.29)));\n\t\t\tconst combined = f1.add(f2.mul(float(.5))).add(f3.mul(float(.3)));\n\t\t\tconst threshold = mix(float(-2), float(.8), uniforms.flickerAmount.uniform);\n\t\t\tconst flickerValue = smoothstep(threshold.sub(float(.1)), threshold.add(float(.1)), combined);\n\t\t\tconst intensityMul = uniforms.intensity.uniform.mul(flickerValue);\n\t\t\tconst finalTubeRgb = tubeFlowed.mul(intensityMul);\n\t\t\tconst finalGlowRgb = glowCol.mul(glowMasked).mul(intensityMul);\n\t\t\tconst finalR = mix(finalGlowRgb.x, finalTubeRgb.x, tubeMask);\n\t\t\tconst finalG = mix(finalGlowRgb.y, finalTubeRgb.y, tubeMask);\n\t\t\tconst finalB = mix(finalGlowRgb.z, finalTubeRgb.z, tubeMask);\n\t\t\tconst finalA = max(tubeMask, clamp(glowMasked.mul(float(.6)), float(0), float(1)));\n\t\t\toutput.assign(vec4(finalR, finalG, finalB, finalA));\n\t\t});\n\t\treturn output;\n\t})();\n}\nvar DEFAULT_SHAPE_CONFIG = JSON.stringify({\n\ttype: \"circleSDF\",\n\tradius: .35\n});\nconst componentDefinition = {\n\tname: \"Neon\",\n\tcategory: \"Shape Effects\",\n\tdescription: \"Photorealistic neon tube / 3D pipe effect driven by a custom shape\",\n\tprops: {\n\t\tcenter: {\n\t\t\tdefault: {\n\t\t\t\tx: .5,\n\t\t\t\ty: .5\n\t\t\t},\n\t\t\ttransform: transformPosition,\n\t\t\tdescription: \"Center position of the neon shape\",\n\t\t\tui: {\n\t\t\t\ttype: \"position\",\n\t\t\t\tlabel: \"Center\",\n\t\t\t\tgroup: \"Position\"\n\t\t\t}\n\t\t},\n\t\tscale: {\n\t\t\tdefault: 1,\n\t\t\tdescription: \"Scale of the neon shape (1 = default size)\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: .1,\n\t\t\t\tmax: 3,\n\t\t\t\tstep: .05,\n\t\t\t\tlabel: \"Scale\",\n\t\t\t\tgroup: \"Position\"\n\t\t\t}\n\t\t},\n\t\tcolor: {\n\t\t\tdefault: \"#00ddff\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Primary neon tube color\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Tube Color\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tsecondaryColor: {\n\t\t\tdefault: \"#ff00aa\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Shadow-side color for a two-tone / dual-lit pipe look\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Secondary Color\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tsecondaryBlend: {\n\t\t\tdefault: .5,\n\t\t\tdescription: \"Blend between mono (0) and two-tone (1) tube coloring\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Blend\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tglowColor: {\n\t\t\tdefault: \"#00ddff\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Color of the outer glow / bloom\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Glow Color\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\ttubeThickness: {\n\t\t\tdefault: .2,\n\t\t\ttransform: (v) => v * .05,\n\t\t\tdescription: \"How far inward from the boundary the tube extends. Low = thin neon outline, high = thick 3D pipe\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Tube Thickness\",\n\t\t\t\tgroup: \"Tube\"\n\t\t\t}\n\t\t},\n\t\tintensity: {\n\t\t\tdefault: 1.5,\n\t\t\tdescription: \"Overall brightness multiplier\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: .5,\n\t\t\t\tmax: 4,\n\t\t\t\tstep: .05,\n\t\t\t\tlabel: \"Intensity\",\n\t\t\t\tgroup: \"Tube\"\n\t\t\t}\n\t\t},\n\t\thotCoreIntensity: {\n\t\t\tdefault: .6,\n\t\t\tdescription: \"Bright white-hot center line — the gas discharge glow inside the tube\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Hot Core\",\n\t\t\t\tgroup: \"Tube\"\n\t\t\t}\n\t\t},\n\t\tglowIntensity: {\n\t\t\tdefault: .6,\n\t\t\tdescription: \"Outer glow / bloom strength\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 2,\n\t\t\t\tstep: .05,\n\t\t\t\tlabel: \"Glow Intensity\",\n\t\t\t\tgroup: \"Glow\"\n\t\t\t}\n\t\t},\n\t\tglowRadius: {\n\t\t\tdefault: .25,\n\t\t\tdescription: \"How far the glow extends beyond the tube\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: .01,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Glow Radius\",\n\t\t\t\tgroup: \"Glow\"\n\t\t\t}\n\t\t},\n\t\tlightAngle: {\n\t\t\tdefault: 300,\n\t\t\tdescription: \"Directional light angle in degrees — controls 3D shading on the tube\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 360,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Light Angle\",\n\t\t\t\tgroup: \"Lighting\"\n\t\t\t}\n\t\t},\n\t\tspecularIntensity: {\n\t\t\tdefault: .5,\n\t\t\tdescription: \"Specular highlight brightness on the tube surface\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 2,\n\t\t\t\tstep: .05,\n\t\t\t\tlabel: \"Specular\",\n\t\t\t\tgroup: \"Lighting\"\n\t\t\t}\n\t\t},\n\t\tspecularSize: {\n\t\t\tdefault: .5,\n\t\t\tdescription: \"Specular highlight size — 0 = tight pinpoint, 1 = broad sheen\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Specular Size\",\n\t\t\t\tgroup: \"Lighting\"\n\t\t\t}\n\t\t},\n\t\tcornerSmoothing: {\n\t\t\tdefault: .15,\n\t\t\tdescription: \"Rounds sharp corners to mimic how real glass tubes curve at bends\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Corner Smoothing\",\n\t\t\t\tgroup: \"Tube\"\n\t\t\t}\n\t\t},\n\t\tflickerSpeed: {\n\t\t\tdefault: 0,\n\t\t\tdescription: \"Flicker animation speed — 0 = off, higher = faster sporadic on/off\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 5,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Speed\",\n\t\t\t\tgroup: \"Flicker\"\n\t\t\t}\n\t\t},\n\t\tflickerAmount: {\n\t\t\tdefault: .2,\n\t\t\tdescription: \"How often the neon flickers off — 0 = always on, 1 = frequent outages\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Amount\",\n\t\t\t\tgroup: \"Flicker\"\n\t\t\t}\n\t\t},\n\t\tflowSpeed: {\n\t\t\tdefault: 0,\n\t\t\tdescription: \"Flow animation speed — 0 = off, light rotates through the tube\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 5,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Speed\",\n\t\t\t\tgroup: \"Flow\"\n\t\t\t}\n\t\t},\n\t\tflowAmount: {\n\t\t\tdefault: .3,\n\t\t\tdescription: \"Strength of the flowing brightness variation — 0 = uniform, 1 = dramatic\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Amount\",\n\t\t\t\tgroup: \"Flow\"\n\t\t\t}\n\t\t},\n\t\tshape: {\n\t\t\tdefault: DEFAULT_SHAPE_CONFIG,\n\t\t\tdescription: \"Serialized shape configuration (JSON)\",\n\t\t\tui: {\n\t\t\t\ttype: \"shape\",\n\t\t\t\tlabel: \"Shape\",\n\t\t\t\tgroup: \"Shape\"\n\t\t\t}\n\t\t},\n\t\tshapeSdfUrl: {\n\t\t\tdefault: \"\",\n\t\t\tcompileTime: true,\n\t\t\tdescription: \"URL to a pre-generated SDF .bin file — when non-empty, activates SVG mode and triggers a shader recompile\"\n\t\t},\n\t\tshapeType: {\n\t\t\tdefault: \"\",\n\t\t\tcompileTime: true,\n\t\t\tdescription: \"Active SDF shape type — triggers recompile when shape is switched. When empty, derived from shape JSON at mount time.\"\n\t\t}\n\t},\n\tfragmentNode: ({ uniforms, onCleanup, onBeforeRender }) => {\n\t\tconst timeU = uniform(0);\n\t\tonBeforeRender(({ deltaTime }) => {\n\t\t\ttimeU.value += deltaTime;\n\t\t});\n\t\tconst shapeSdfUrl = uniforms.shapeSdfUrl.uniform.value;\n\t\tconst initialConfig = (() => {\n\t\t\tconst val = uniforms.shape.uniform.value;\n\t\t\tif (typeof val === \"object\" && val !== null) return val;\n\t\t\ttry {\n\t\t\t\treturn JSON.parse(val);\n\t\t\t} catch {\n\t\t\t\treturn {\n\t\t\t\t\ttype: \"circleSDF\",\n\t\t\t\t\tradius: .35,\n\t\t\t\t\tcenterX: .5,\n\t\t\t\t\tcenterY: .5\n\t\t\t\t};\n\t\t\t}\n\t\t})();\n\t\tif (shapeSdfUrl) return applyNeonEffect(createSvgSdfSampler(shapeSdfUrl, onBeforeRender, onCleanup), uniforms, timeU);\n\t\telse return applyNeonEffect(createAnalyticSdfSampler(uniforms.shapeType.uniform.value || initialConfig.type || \"circleSDF\", initialConfig, uniforms.shape, onBeforeRender), uniforms, timeU);\n\t}\n};\nvar Neon_default = componentDefinition;\nexport { componentDefinition as n, Neon_default as t };\n","import { abs, clamp, convertToTexture, float, mx_noise_float, screenUV, vec2, vec3, vec4, viewportSize } from \"three/tsl\";\nconst componentDefinition = {\n\tname: \"Paper\",\n\tcategory: \"Stylize\",\n\tdescription: \"Applies realistic paper grain and surface roughness to child content\",\n\trequiresRTT: true,\n\trequiresChild: true,\n\tprops: {\n\t\troughness: {\n\t\t\tdefault: .3,\n\t\t\tdescription: \"Surface roughness — higher values create more pronounced brightness variation\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Roughness\",\n\t\t\t\tgroup: \"Texture\"\n\t\t\t}\n\t\t},\n\t\tgrainScale: {\n\t\t\tdefault: 1,\n\t\t\tdescription: \"Scale of the paper grain — lower = coarser, higher = finer\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: .1,\n\t\t\t\tmax: 3,\n\t\t\t\tstep: .05,\n\t\t\t\tlabel: \"Grain Scale\",\n\t\t\t\tgroup: \"Texture\"\n\t\t\t}\n\t\t},\n\t\tdisplacement: {\n\t\t\tdefault: .15,\n\t\t\tdescription: \"Surface micro-roughness — shifts pixels at grain scale like real paper fiber bumps\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Displacement\",\n\t\t\t\tgroup: \"Texture\"\n\t\t\t}\n\t\t},\n\t\tseed: {\n\t\t\tdefault: 0,\n\t\t\tdescription: \"Random seed for pattern variation\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 100,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Seed\",\n\t\t\t\tgroup: \"Texture\"\n\t\t\t}\n\t\t}\n\t},\n\tfragmentNode: ({ uniforms, childNode, onCleanup }) => {\n\t\tif (!childNode) return vec4(0);\n\t\tconst childTexture = convertToTexture(childNode);\n\t\tonCleanup(() => {\n\t\t\tif (childTexture?.renderTarget?.dispose) childTexture.renderTarget.dispose();\n\t\t});\n\t\tconst uv$1 = screenUV;\n\t\tconst aspect = viewportSize.x.div(viewportSize.y);\n\t\tconst aspectUV = vec2(uv$1.x.mul(aspect), uv$1.y);\n\t\tconst seedOffset = uniforms.seed.uniform;\n\t\tconst grainFreq = uniforms.grainScale.uniform.mul(float(120)).add(float(120));\n\t\tconst warpFreq = grainFreq.mul(float(.25));\n\t\tconst warpPos = aspectUV.mul(warpFreq).add(seedOffset.add(float(50)));\n\t\tconst warpX = mx_noise_float(vec3(warpPos.x, warpPos.y, float(22.3)));\n\t\tconst warpY = mx_noise_float(vec3(warpPos.x, warpPos.y, float(29.7)));\n\t\tconst dispAmt = uniforms.displacement.uniform.mul(float(.002));\n\t\tconst displacedUV = uv$1.add(vec2(warpX.mul(dispAmt), warpY.mul(dispAmt)));\n\t\tconst childColor = childTexture.sample(displacedUV);\n\t\tconst grainUV = vec2(displacedUV.x.mul(aspect), displacedUV.y).add(vec2(warpX.mul(float(.005)), warpY.mul(float(.005))));\n\t\tconst p1 = grainUV.mul(grainFreq.mul(float(.1))).add(seedOffset);\n\t\tconst n1 = mx_noise_float(vec3(p1.x, p1.y, float(1.3)));\n\t\tconst p2 = grainUV.mul(grainFreq.mul(float(.4))).add(seedOffset.add(float(33.7)));\n\t\tconst n2 = abs(mx_noise_float(vec3(p2.x, p2.y, float(4.1))));\n\t\tconst p3 = grainUV.mul(grainFreq).add(seedOffset.add(float(71.2)));\n\t\tconst n3 = mx_noise_float(vec3(p3.x, p3.y, float(9.8)));\n\t\tconst p4 = grainUV.mul(grainFreq.mul(float(2))).add(seedOffset.add(float(107.3)));\n\t\tconst n4 = mx_noise_float(vec3(p4.x, p4.y, float(15.6)));\n\t\tconst grain = n1.mul(float(.3)).add(n2.mul(float(.3))).add(n3.mul(float(.25))).add(n4.mul(float(.15)));\n\t\tconst rough = uniforms.roughness.uniform;\n\t\tconst brightness = clamp(float(1).add(grain.mul(rough.mul(float(.4)))), float(0), float(1.5));\n\t\tconst finalRgb = vec3(childColor.r, childColor.g, childColor.b).mul(brightness);\n\t\treturn vec4(finalRgb.x, finalRgb.y, finalRgb.z, childColor.a);\n\t}\n};\nvar Paper_default = componentDefinition;\nexport { componentDefinition as n, Paper_default as t };\n","import { t as applyEdgeHandling } from \"./edges-CX_lJB9R.js\";\nimport { c as transformEdges, l as transformPosition } from \"./transformations-CJcUeZIC.js\";\nimport { t as unpremultiplyAlpha } from \"./alpha-C4ptedXe.js\";\nimport { convertToTexture, cos, float, max, screenUV, sin, tan, vec2, vec4 } from \"three/tsl\";\nconst componentDefinition = {\n\tname: \"Perspective\",\n\tcategory: \"Distortions\",\n\tdescription: \"Rotate the plane in 3D space with pan and tilt\",\n\trequiresRTT: true,\n\trequiresChild: true,\n\tprops: {\n\t\tcenter: {\n\t\t\tdefault: {\n\t\t\t\tx: .5,\n\t\t\t\ty: .5\n\t\t\t},\n\t\t\ttransform: transformPosition,\n\t\t\tdescription: \"Center point of rotation\",\n\t\t\tui: {\n\t\t\t\ttype: \"position\",\n\t\t\t\tlabel: \"Center\",\n\t\t\t\tgroup: \"Position\"\n\t\t\t}\n\t\t},\n\t\tpan: {\n\t\t\tdefault: 0,\n\t\t\tdescription: \"Horizontal rotation (left/right)\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: -90,\n\t\t\t\tmax: 90,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Pan\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\ttilt: {\n\t\t\tdefault: 0,\n\t\t\tdescription: \"Vertical rotation (up/down)\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: -90,\n\t\t\t\tmax: 90,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Tilt\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tfov: {\n\t\t\tdefault: 60,\n\t\t\tdescription: \"Field of view - controls perspective intensity\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 30,\n\t\t\t\tmax: 120,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"FOV\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tzoom: {\n\t\t\tdefault: 1,\n\t\t\tdescription: \"Zoom in to fill the frame after rotation\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: .5,\n\t\t\t\tmax: 3,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Zoom\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\toffset: {\n\t\t\tdefault: {\n\t\t\t\tx: .5,\n\t\t\t\ty: .5\n\t\t\t},\n\t\t\ttransform: transformPosition,\n\t\t\tdescription: \"Shift the result in X/Y\",\n\t\t\tui: {\n\t\t\t\ttype: \"position\",\n\t\t\t\tlabel: \"Offset\",\n\t\t\t\tgroup: \"Position\"\n\t\t\t}\n\t\t},\n\t\tedges: {\n\t\t\tdefault: \"transparent\",\n\t\t\tdescription: \"How to handle edges\",\n\t\t\ttransform: transformEdges,\n\t\t\tcompileTime: true,\n\t\t\tui: {\n\t\t\t\ttype: \"select\",\n\t\t\t\toptions: [\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Stretch\",\n\t\t\t\t\t\tvalue: \"stretch\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Transparent\",\n\t\t\t\t\t\tvalue: \"transparent\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Mirror\",\n\t\t\t\t\t\tvalue: \"mirror\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Wrap\",\n\t\t\t\t\t\tvalue: \"wrap\"\n\t\t\t\t\t}\n\t\t\t\t],\n\t\t\t\tlabel: \"Edges\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t}\n\t},\n\tfragmentNode: ({ uniforms, childNode, onCleanup }) => {\n\t\tif (!childNode) return vec4(0, 0, 0, 0);\n\t\tconst childTexture = convertToTexture(childNode);\n\t\tonCleanup(() => {\n\t\t\tif (childTexture?.renderTarget?.dispose) childTexture.renderTarget.dispose();\n\t\t});\n\t\tconst centerPos = vec2(uniforms.center.uniform.x, uniforms.center.uniform.y.oneMinus());\n\t\tconst zoom = uniforms.zoom.uniform;\n\t\tconst x = screenUV.x.sub(centerPos.x).div(zoom);\n\t\tconst y = screenUV.y.sub(centerPos.y).div(zoom);\n\t\tconst panRad = uniforms.pan.uniform.mul(Math.PI / 180);\n\t\tconst tiltRad = uniforms.tilt.uniform.mul(Math.PI / 180);\n\t\tconst fovRad = uniforms.fov.uniform.mul(Math.PI / 180);\n\t\tconst cosPan = cos(panRad);\n\t\tconst sinPan = sin(panRad);\n\t\tconst cosTilt = cos(tiltRad);\n\t\tconst sinTilt = sin(tiltRad);\n\t\tconst perspectiveFactor = tan(fovRad.mul(.5)).mul(2);\n\t\tconst safePanDivisor = max(cosPan.add(sinPan.mul(x).mul(perspectiveFactor)), float(.001));\n\t\tconst afterPanX = x.div(safePanDivisor);\n\t\tconst afterPanY = y.mul(cosPan).div(safePanDivisor);\n\t\tconst safeTiltDivisor = max(cosTilt.add(sinTilt.mul(afterPanY).mul(perspectiveFactor)), float(.001));\n\t\tconst finalX = afterPanX.mul(cosTilt).div(safeTiltDivisor);\n\t\tconst finalY = afterPanY.div(safeTiltDivisor);\n\t\tconst offsetPos = vec2(uniforms.offset.uniform.x, uniforms.offset.uniform.y.oneMinus());\n\t\tconst finalUV = vec2(finalX, finalY).add(centerPos).sub(offsetPos).add(vec2(.5, .5));\n\t\treturn unpremultiplyAlpha(applyEdgeHandling(finalUV, childTexture.sample(finalUV), childTexture, uniforms.edges.uniform.value));\n\t}\n};\nvar Perspective_default = componentDefinition;\nexport { componentDefinition as n, Perspective_default as t };\n","import { t as unpremultiplyAlpha } from \"./alpha-C4ptedXe.js\";\nimport { convertToTexture, float, floor, fract, length, screenUV, vec2, vec4, viewportSize } from \"three/tsl\";\nconst componentDefinition = {\n\tname: \"Pixelate\",\n\tcategory: \"Stylize\",\n\tdescription: \"Pixelation effect with adjustable cell size\",\n\trequiresRTT: true,\n\trequiresChild: true,\n\tprops: {\n\t\tscale: {\n\t\t\tdefault: 50,\n\t\t\tdescription: \"Number of pixels along the longest edge (higher = smaller pixels)\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 1,\n\t\t\t\tmax: 200,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Scale\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tgap: {\n\t\t\tdefault: 0,\n\t\t\tdescription: \"Space between pixels as a fraction of cell size (0 = no gap, 1 = fully invisible)\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: .95,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Gap\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\troundness: {\n\t\t\tdefault: 0,\n\t\t\tdescription: \"Roundness of each pixel's corners (0 = square, 1 = circle)\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Roundness\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t}\n\t},\n\tfragmentNode: ({ uniforms, childNode, onCleanup }) => {\n\t\tif (!childNode) return vec4(0, 0, 0, 0);\n\t\tconst childTexture = convertToTexture(childNode);\n\t\tonCleanup(() => {\n\t\t\tif (childTexture?.renderTarget?.dispose) childTexture.renderTarget.dispose();\n\t\t});\n\t\tconst aspect = viewportSize.x.div(viewportSize.y);\n\t\tconst pixelSize = uniforms.scale.uniform;\n\t\tconst isWide = aspect.greaterThan(float(1));\n\t\tconst pixelCountX = isWide.select(pixelSize, pixelSize.mul(aspect)).max(float(1));\n\t\tconst pixelCountY = isWide.select(pixelSize.div(aspect), pixelSize).max(float(1));\n\t\tconst pixelatedUV = vec2(floor(screenUV.x.mul(pixelCountX)).div(pixelCountX), floor(screenUV.y.mul(pixelCountY)).div(pixelCountY));\n\t\tconst sampledColor = unpremultiplyAlpha(childTexture.sample(pixelatedUV));\n\t\tconst localUV = vec2(fract(screenUV.x.mul(pixelCountX)).sub(.5), fract(screenUV.y.mul(pixelCountY)).sub(.5));\n\t\tconst halfSize = float(.5).sub(uniforms.gap.uniform.mul(.5));\n\t\tconst cornerRadius = uniforms.roundness.uniform.mul(halfSize);\n\t\tconst mask = length(vec2(localUV.x.abs().sub(halfSize).add(cornerRadius).max(float(0)), localUV.y.abs().sub(halfSize).add(cornerRadius).max(float(0)))).sub(cornerRadius).lessThanEqual(float(0)).select(float(1), float(0));\n\t\treturn vec4(sampledColor.rgb, sampledColor.a.mul(mask));\n\t}\n};\nvar Pixelate_default = componentDefinition;\nexport { componentDefinition as n, Pixelate_default as t };\n","import { a as transformColor, o as transformColorSpace, t as colorSpaceOptions } from \"./transformations-CJcUeZIC.js\";\nimport { t as mixColors } from \"./colorMixing-BPpDnR5I.js\";\nimport { t as createAnimatedTime } from \"./time-DUqSFWvT.js\";\nimport { clamp, exp, float, mx_noise_float, pow, screenUV, vec3, viewportSize } from \"three/tsl\";\nconst componentDefinition = {\n\tname: \"Plasma\",\n\tcategory: \"Textures\",\n\tdescription: \"Animated effect of glowing plasma\",\n\tprops: {\n\t\tdensity: {\n\t\t\tdefault: 2,\n\t\t\tdescription: \"Density of the plasma pattern\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 4,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Density\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tspeed: {\n\t\t\tdefault: 2,\n\t\t\tdescription: \"Animation speed\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 5,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Speed\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tintensity: {\n\t\t\tdefault: 1.5,\n\t\t\tdescription: \"Brightness and spread of the plasma glow\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: .1,\n\t\t\t\tmax: 3,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Intensity\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\twarp: {\n\t\t\tdefault: .4,\n\t\t\tdescription: \"How much the flow distorts and swirls\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Warp\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tcontrast: {\n\t\t\tdefault: 1,\n\t\t\tdescription: \"Push darks darker and lights lighter\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 3,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Contrast\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tbalance: {\n\t\t\tdefault: 50,\n\t\t\tdescription: \"Skew color balance toward A (higher) or B (lower)\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 100,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Balance\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tcolorA: {\n\t\t\tdefault: \"#7018be\",\n\t\t\tdescription: \"Primary color\",\n\t\t\ttransform: transformColor,\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Color A\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tcolorB: {\n\t\t\tdefault: \"#000000\",\n\t\t\tdescription: \"Secondary color\",\n\t\t\ttransform: transformColor,\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Color B\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tcolorSpace: {\n\t\t\tdefault: \"linear\",\n\t\t\ttransform: transformColorSpace,\n\t\t\tcompileTime: true,\n\t\t\tdescription: \"Color space for color interpolation\",\n\t\t\tui: {\n\t\t\t\ttype: \"select\",\n\t\t\t\toptions: colorSpaceOptions,\n\t\t\t\tlabel: \"Color Space\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t}\n\t},\n\tfragmentNode: (params) => {\n\t\tconst { uniforms } = params;\n\t\tconst density = uniforms.density.uniform;\n\t\tconst intensity = uniforms.intensity.uniform;\n\t\tconst warp = uniforms.warp.uniform;\n\t\tconst t = createAnimatedTime(params, uniforms.speed).mul(.125);\n\t\tconst aspect = viewportSize.x.div(viewportSize.y);\n\t\tconst pos = vec3(screenUV.x.mul(aspect), screenUV.y, float(0)).mul(exp(density.sub(1))).toVar();\n\t\tconst warpAmount = warp.mul(4);\n\t\tconst qx = mx_noise_float(pos.add(vec3(t.mul(.3), t.mul(-.2), 0)));\n\t\tconst qy = mx_noise_float(pos.add(vec3(5.2, 1.3, t.mul(.25))));\n\t\tconst warped1 = pos.add(vec3(qx, qy, float(0)).mul(warpAmount));\n\t\tconst rx = mx_noise_float(warped1.add(vec3(1.7, 9.2, t.mul(.15))));\n\t\tconst ry = mx_noise_float(warped1.add(vec3(8.3, 2.8, t.mul(.13))));\n\t\tconst contrasted = clamp(pow(mx_noise_float(pos.add(vec3(rx, ry, float(0)).mul(warpAmount))).mul(.5).add(.5), float(5).div(intensity)).sub(.5).mul(uniforms.contrast.uniform).add(.5), 0, 1);\n\t\tconst balanceShift = uniforms.balance.uniform.div(100).sub(.5);\n\t\tconst balanced = clamp(contrasted.add(balanceShift), 0, 1);\n\t\treturn mixColors(uniforms.colorB.uniform, uniforms.colorA.uniform, balanced, uniforms.colorSpace.uniform.value);\n\t}\n};\nvar Plasma_default = componentDefinition;\nexport { componentDefinition as n, Plasma_default as t };\n","import { t as applyEdgeHandling } from \"./edges-CX_lJB9R.js\";\nimport { c as transformEdges, l as transformPosition } from \"./transformations-CJcUeZIC.js\";\nimport { t as unpremultiplyAlpha } from \"./alpha-C4ptedXe.js\";\nimport { PI, atan, convertToTexture, length, mix, screenUV, vec2, vec4, viewportSize } from \"three/tsl\";\nconst componentDefinition = {\n\tname: \"PolarCoordinates\",\n\tcategory: \"Distortions\",\n\tdescription: \"Convert rectangular coordinates to polar space\",\n\trequiresRTT: true,\n\trequiresChild: true,\n\tprops: {\n\t\tcenter: {\n\t\t\tdefault: {\n\t\t\t\tx: .5,\n\t\t\t\ty: .5\n\t\t\t},\n\t\t\ttransform: transformPosition,\n\t\t\tdescription: \"The center point for polar coordinate conversion\",\n\t\t\tui: {\n\t\t\t\ttype: \"position\",\n\t\t\t\tlabel: \"Center\",\n\t\t\t\tgroup: \"Position\"\n\t\t\t}\n\t\t},\n\t\twrap: {\n\t\t\tdefault: 1,\n\t\t\tdescription: \"Controls how much of the angular range to use (1 = full 360°, 0.5 = 180°)\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 2,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Wrap\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tradius: {\n\t\t\tdefault: 1,\n\t\t\tdescription: \"Controls how much of the radius range to use (affects the radial mapping)\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 2,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Radius\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tintensity: {\n\t\t\tdefault: 1,\n\t\t\tdescription: \"Blends between original UVs (0) and polar coordinates (1)\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Intensity\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tedges: {\n\t\t\tdefault: \"transparent\",\n\t\t\tdescription: \"How to handle edges when distortion pushes content out of bounds\",\n\t\t\ttransform: transformEdges,\n\t\t\tcompileTime: true,\n\t\t\tui: {\n\t\t\t\ttype: \"select\",\n\t\t\t\toptions: [\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Stretch\",\n\t\t\t\t\t\tvalue: \"stretch\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Transparent\",\n\t\t\t\t\t\tvalue: \"transparent\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Mirror\",\n\t\t\t\t\t\tvalue: \"mirror\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Wrap\",\n\t\t\t\t\t\tvalue: \"wrap\"\n\t\t\t\t\t}\n\t\t\t\t],\n\t\t\t\tlabel: \"Edges\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t}\n\t},\n\tfragmentNode: ({ uniforms, childNode, onCleanup }) => {\n\t\tif (!childNode) return vec4(0, 0, 0, 0);\n\t\tconst childTexture = convertToTexture(childNode);\n\t\tonCleanup(() => {\n\t\t\tif (childTexture?.renderTarget?.dispose) childTexture.renderTarget.dispose();\n\t\t});\n\t\tconst aspect = viewportSize.x.div(viewportSize.y);\n\t\tconst aspectCorrectedUV = vec2(screenUV.x.mul(aspect), screenUV.y);\n\t\tconst centerPos = vec2(uniforms.center.uniform.x.mul(aspect), uniforms.center.uniform.y.oneMinus());\n\t\tconst delta = aspectCorrectedUV.sub(centerPos);\n\t\tconst normalizedAngle = atan(delta.y, delta.x).add(PI).div(PI.mul(2));\n\t\tconst r = length(delta);\n\t\tconst blendedUV = mix(screenUV, vec2(normalizedAngle.mul(uniforms.wrap.uniform), r.mul(uniforms.radius.uniform)), uniforms.intensity.uniform);\n\t\treturn unpremultiplyAlpha(applyEdgeHandling(blendedUV, childTexture.sample(blendedUV), childTexture, uniforms.edges.uniform.value));\n\t}\n};\nvar PolarCoordinates_default = componentDefinition;\nexport { componentDefinition as n, PolarCoordinates_default as t };\n","import { a as transformColor, l as transformPosition, o as transformColorSpace, t as colorSpaceOptions } from \"./transformations-CJcUeZIC.js\";\nimport { t as mixColors } from \"./colorMixing-BPpDnR5I.js\";\nimport { c as polygonSdf, t as circleSdf } from \"./sdf-D_EAGXhN.js\";\nimport { cos, float, mix, screenUV, sin, smoothstep, vec2, vec4, viewportSize } from \"three/tsl\";\nvar transformStrokePosition = (value) => {\n\treturn {\n\t\t\"outside\": 0,\n\t\t\"center\": 1,\n\t\t\"inside\": 2\n\t}[value?.toLowerCase()] ?? 1;\n};\nconst componentDefinition = {\n\tname: \"Polygon\",\n\tcategory: \"Shapes\",\n\tdescription: \"Regular polygon with adjustable sides and corner rounding\",\n\tprops: {\n\t\tcolor: {\n\t\t\tdefault: \"#ffffff\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Fill color of the polygon\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Color\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tcenter: {\n\t\t\tdefault: {\n\t\t\t\tx: .5,\n\t\t\t\ty: .5\n\t\t\t},\n\t\t\ttransform: transformPosition,\n\t\t\tdescription: \"Center position of the polygon\",\n\t\t\tui: {\n\t\t\t\ttype: \"position\",\n\t\t\t\tlabel: \"Center\",\n\t\t\t\tgroup: \"Position\"\n\t\t\t}\n\t\t},\n\t\tradius: {\n\t\t\tdefault: .4,\n\t\t\tdescription: \"Circumradius — distance from center to vertices in UV space\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Radius\",\n\t\t\t\tgroup: \"Shape\"\n\t\t\t}\n\t\t},\n\t\tsides: {\n\t\t\tdefault: 6,\n\t\t\tdescription: \"Number of sides (3 = triangle, 4 = square, 6 = hexagon, etc.)\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 3,\n\t\t\t\tmax: 12,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Sides\",\n\t\t\t\tgroup: \"Shape\"\n\t\t\t}\n\t\t},\n\t\trounding: {\n\t\t\tdefault: 0,\n\t\t\tdescription: \"Corner rounding — 0 is sharp vertices, 1 morphs into a circle\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Rounding\",\n\t\t\t\tgroup: \"Shape\"\n\t\t\t}\n\t\t},\n\t\trotation: {\n\t\t\tdefault: 0,\n\t\t\tdescription: \"Rotation in degrees\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 360,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Rotation\",\n\t\t\t\tgroup: \"Shape\"\n\t\t\t}\n\t\t},\n\t\tsoftness: {\n\t\t\tdefault: 0,\n\t\t\tdescription: \"Edge softness for antialiasing\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: .1,\n\t\t\t\tstep: .001,\n\t\t\t\tlabel: \"Softness\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tstrokeThickness: {\n\t\t\tdefault: 0,\n\t\t\tdescription: \"Stroke thickness. Zero means no stroke.\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: .2,\n\t\t\t\tstep: .005,\n\t\t\t\tlabel: \"Stroke Thickness\",\n\t\t\t\tgroup: \"Stroke\"\n\t\t\t}\n\t\t},\n\t\tstrokeColor: {\n\t\t\tdefault: \"#000000\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Color of the stroke outline\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Stroke Color\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tstrokePosition: {\n\t\t\tdefault: \"center\",\n\t\t\ttransform: transformStrokePosition,\n\t\t\tdescription: \"Position of the stroke relative to the shape edge\",\n\t\t\tui: {\n\t\t\t\ttype: \"select\",\n\t\t\t\toptions: [\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Outside\",\n\t\t\t\t\t\tvalue: \"outside\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Center\",\n\t\t\t\t\t\tvalue: \"center\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Inside\",\n\t\t\t\t\t\tvalue: \"inside\"\n\t\t\t\t\t}\n\t\t\t\t],\n\t\t\t\tlabel: \"Stroke Position\",\n\t\t\t\tgroup: \"Stroke\"\n\t\t\t}\n\t\t},\n\t\tcolorSpace: {\n\t\t\tdefault: \"linear\",\n\t\t\ttransform: transformColorSpace,\n\t\t\tcompileTime: true,\n\t\t\tdescription: \"Color space for blending fill and stroke colors\",\n\t\t\tui: {\n\t\t\t\ttype: \"select\",\n\t\t\t\toptions: colorSpaceOptions,\n\t\t\t\tlabel: \"Color Blending\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t}\n\t},\n\tfragmentNode: ({ uniforms }) => {\n\t\tconst uv$1 = screenUV;\n\t\tconst aspect = viewportSize.x.div(viewportSize.y);\n\t\tconst aspectUV = vec2(uv$1.x.mul(aspect), uv$1.y);\n\t\tconst centerPos = vec2(uniforms.center.uniform.x.mul(aspect), uniforms.center.uniform.y.oneMinus());\n\t\tconst dx = aspectUV.x.sub(centerPos.x);\n\t\tconst dy = aspectUV.y.sub(centerPos.y);\n\t\tconst rotRad = uniforms.rotation.uniform.mul(float(Math.PI / 180));\n\t\tconst cosR = cos(rotRad);\n\t\tconst sinR = sin(rotRad);\n\t\tconst rdx = dx.mul(cosR).add(dy.mul(sinR));\n\t\tconst rdy = dy.mul(cosR).sub(dx.mul(sinR));\n\t\tconst radius = uniforms.radius.uniform;\n\t\tconst sdf = mix(polygonSdf(rdx, rdy, radius, uniforms.sides.uniform), circleSdf(dx, dy, radius), uniforms.rounding.uniform);\n\t\tconst edgeSoftness = uniforms.softness.uniform;\n\t\tconst strokeThickness = uniforms.strokeThickness.uniform;\n\t\tconst strokePositionMode = uniforms.strokePosition.uniform;\n\t\tconst hasStroke = strokeThickness.greaterThan(float(0));\n\t\tconst isCenter = strokePositionMode.greaterThanEqual(float(.5)).and(strokePositionMode.lessThan(float(1.5)));\n\t\tconst isInside = strokePositionMode.greaterThanEqual(float(1.5));\n\t\tconst halfThickness = strokeThickness.mul(.5);\n\t\tconst strokeInner = isInside.select(strokeThickness.negate(), isCenter.select(halfThickness.negate(), float(0)));\n\t\tconst strokeOuter = isInside.select(float(0), isCenter.select(halfThickness, strokeThickness));\n\t\tconst overallMask = smoothstep(strokeOuter.sub(edgeSoftness), strokeOuter, sdf).oneMinus();\n\t\tconst strokeBlend = hasStroke.select(smoothstep(strokeInner.sub(edgeSoftness), strokeInner, sdf), float(0));\n\t\tconst blendedColor = mixColors(vec4(uniforms.color.uniform.rgb, uniforms.color.uniform.a), vec4(uniforms.strokeColor.uniform.rgb, uniforms.strokeColor.uniform.a), strokeBlend, uniforms.colorSpace.uniform.value);\n\t\treturn vec4(blendedColor.xyz, blendedColor.w.mul(overallMask));\n\t}\n};\nvar Polygon_default = componentDefinition;\nexport { componentDefinition as n, Polygon_default as t };\n","import { float, floor, vec4 } from \"three/tsl\";\nconst componentDefinition = {\n\tname: \"Posterize\",\n\tcategory: \"Adjustments\",\n\tdescription: \"Reduce color depth to create a poster effect\",\n\trequiresChild: true,\n\tprops: { intensity: {\n\t\tdefault: 5,\n\t\tdescription: \"The intensity of the posterization effect (lower is more posterized)\",\n\t\tui: {\n\t\t\ttype: [\"range\", \"map\"],\n\t\t\tmin: 2,\n\t\t\tmax: 20,\n\t\t\tstep: 1,\n\t\t\tlabel: \"Intensity\",\n\t\t\tgroup: \"Effect\"\n\t\t}\n\t} },\n\tfragmentNode: ({ uniforms, childNode }) => {\n\t\tif (!childNode) {\n\t\t\tconsole.error(\"You must pass a child component into the Posterize shader.\");\n\t\t\treturn vec4(0);\n\t\t}\n\t\tconst steps = float(uniforms.intensity.uniform);\n\t\treturn vec4(floor(childNode.r.mul(steps)).div(steps), floor(childNode.g.mul(steps)).div(steps), floor(childNode.b.mul(steps)).div(steps), childNode.a);\n\t}\n};\nvar Posterize_default = componentDefinition;\nexport { componentDefinition as n, Posterize_default as t };\n","import { l as transformPosition, r as transformAngle } from \"./transformations-CJcUeZIC.js\";\nimport { t as unpremultiplyAlpha } from \"./alpha-C4ptedXe.js\";\nimport { i as createVariableGaussianBlurCompute } from \"./computeBlur-oxyhoztH.js\";\nimport { Fn, If, clamp, convertToTexture, cos, dot, float, instanceIndex, int, max, mix, pow, radians, screenUV, sin, smoothstep, texture, textureLoad, textureStore, uint, uniform, uvec2, vec2, vec3, vec4, viewportSize } from \"three/tsl\";\nconst componentDefinition = {\n\tname: \"ProgressiveBlur\",\n\tcategory: \"Blurs\",\n\tdescription: \"Blur that increases progressively in one direction\",\n\trequiresRTT: true,\n\trequiresChild: true,\n\tprops: {\n\t\tintensity: {\n\t\t\tdefault: 50,\n\t\t\tdescription: \"Maximum intensity of the blur effect\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 100,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Intensity\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tangle: {\n\t\t\tdefault: 0,\n\t\t\ttransform: transformAngle,\n\t\t\tdescription: \"Direction of the blur gradient (in degrees)\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 360,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Angle\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tcenter: {\n\t\t\tdefault: {\n\t\t\t\tx: 0,\n\t\t\t\ty: .5\n\t\t\t},\n\t\t\ttransform: transformPosition,\n\t\t\tdescription: \"Center point where blur begins\",\n\t\t\tui: {\n\t\t\t\ttype: \"position\",\n\t\t\t\tlabel: \"Center\",\n\t\t\t\tgroup: \"Position\"\n\t\t\t}\n\t\t},\n\t\tfalloff: {\n\t\t\tdefault: 1,\n\t\t\tdescription: \"Distance over which blur transitions to full strength\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Falloff\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t}\n\t},\n\tcomputeNode: ({ childNode, onCleanup, dimensions, renderer, uniforms, onResize }) => {\n\t\tif (!childNode) return null;\n\t\tif (uniforms.angle.mapComputeInfo || uniforms.falloff.mapComputeInfo) return null;\n\t\tconst childTexture = convertToTexture(childNode);\n\t\tonCleanup(() => {\n\t\t\tif (childTexture?.renderTarget?.dispose) childTexture.renderTarget.dispose();\n\t\t});\n\t\tconst dpr = renderer?.getPixelRatio?.() ?? 1;\n\t\tconst texWidth = Math.round(dimensions.width * dpr);\n\t\tconst texHeight = Math.round(dimensions.height * dpr);\n\t\tconst blur = createVariableGaussianBlurCompute(childTexture, texWidth, texHeight, onCleanup);\n\t\tconst { computeNodes: blurNodes, outputTexture, blurMapWriteNode, computeWidth, computeHeight } = blur;\n\t\tconst angleU = uniform(0);\n\t\tconst centerXU = uniform(0);\n\t\tconst centerYU = uniform(.5);\n\t\tconst falloffU = uniform(1);\n\t\tconst aspectU = uniform(1);\n\t\tconst inputWidthU = uniform(texWidth);\n\t\tconst inputHeightU = uniform(texHeight);\n\t\tconst cw = uint(computeWidth);\n\t\tconst ch = uint(computeHeight);\n\t\tfunction readScalar(entry) {\n\t\t\treturn entry.getCpuValue?.() ?? (typeof entry.uniform.value === \"number\" ? entry.uniform.value : null);\n\t\t}\n\t\tfunction updateGeometryUniforms() {\n\t\t\tconst angleVal = readScalar(uniforms.angle);\n\t\t\tif (angleVal !== null) angleU.value = angleVal;\n\t\t\tconst centerXVal = uniforms.center.uniform.value?.x ?? uniforms.center.uniform.x?.value;\n\t\t\tif (typeof centerXVal === \"number\") centerXU.value = centerXVal;\n\t\t\tconst centerYVal = uniforms.center.uniform.value?.y ?? uniforms.center.uniform.y?.value;\n\t\t\tif (typeof centerYVal === \"number\") centerYU.value = centerYVal;\n\t\t\tconst falloffVal = readScalar(uniforms.falloff);\n\t\t\tif (falloffVal !== null) falloffU.value = falloffVal;\n\t\t\taspectU.value = dimensions.width / dimensions.height;\n\t\t}\n\t\tconst intensityMapInfo = uniforms.intensity.mapComputeInfo;\n\t\tif (intensityMapInfo) {\n\t\t\tconst { sourceTexture, channel, inputMin, inputMax, outputMin, outputMax, curve } = intensityMapInfo;\n\t\t\tconst fillBlurMap$1 = Fn(() => {\n\t\t\t\tconst idx = instanceIndex;\n\t\t\t\tconst cx = idx.mod(cw);\n\t\t\t\tconst cy = idx.div(cw);\n\t\t\t\tIf(cy.lessThan(ch), () => {\n\t\t\t\t\tconst u = cx.toFloat().add(float(.5)).div(float(computeWidth));\n\t\t\t\t\tconst v = cy.toFloat().add(float(.5)).div(float(computeHeight));\n\t\t\t\t\tconst angleRad = angleU.mul(float(Math.PI / 180));\n\t\t\t\t\tconst direction = vec2(angleRad.cos().div(aspectU), angleRad.sin());\n\t\t\t\t\tconst centerPos = vec2(centerXU, float(1).sub(centerYU));\n\t\t\t\t\tconst centeredUV = vec2(u, v).sub(centerPos);\n\t\t\t\t\tconst directionalDist = max(float(0), centeredUV.dot(direction));\n\t\t\t\t\tconst blurAmount = smoothstep(float(0), falloffU, directionalDist);\n\t\t\t\t\tconst mapSample = textureLoad(sourceTexture, uvec2(u.mul(inputWidthU).round().toInt().clamp(int(0), int(inputWidthU.sub(1))).toUint(), v.mul(inputHeightU).round().toInt().clamp(int(0), int(inputHeightU.sub(1))).toUint()), int(0));\n\t\t\t\t\tlet raw;\n\t\t\t\t\tif (channel === \"alpha\") raw = mapSample.a;\n\t\t\t\t\telse if (channel === \"alphaInverted\") raw = mapSample.a.oneMinus();\n\t\t\t\t\telse if (channel === \"luminanceInverted\") raw = dot(mapSample.rgb, vec3(.2126, .7152, .0722)).oneMinus();\n\t\t\t\t\telse raw = dot(mapSample.rgb, vec3(.2126, .7152, .0722));\n\t\t\t\t\tconst inputRange = inputMax.sub(inputMin).max(float(1e-4));\n\t\t\t\t\tconst maxRadius = mix(outputMin, outputMax, pow(clamp(raw.sub(inputMin).div(inputRange), float(0), float(1)), pow(float(2), curve.negate().mul(float(2))))).mul(float(.36));\n\t\t\t\t\tconst radius = blurAmount.mul(maxRadius);\n\t\t\t\t\ttextureStore(blurMapWriteNode, uvec2(cx, cy), vec4(radius, float(0), float(0), float(1))).toWriteOnly();\n\t\t\t\t});\n\t\t\t})().compute(computeWidth * computeHeight, [256]);\n\t\t\tonResize(({ width, height }) => {\n\t\t\t\tconst newW = Math.round(width * dpr);\n\t\t\t\tconst newH = Math.round(height * dpr);\n\t\t\t\tinputWidthU.value = newW;\n\t\t\t\tinputHeightU.value = newH;\n\t\t\t\tblur.setInputDimensions(newW, newH);\n\t\t\t});\n\t\t\treturn {\n\t\t\t\toutputs: {\n\t\t\t\t\tchildTexture,\n\t\t\t\t\tblurredTexture: outputTexture\n\t\t\t\t},\n\t\t\t\tgetComputeNodes: () => {\n\t\t\t\t\tupdateGeometryUniforms();\n\t\t\t\t\treturn [fillBlurMap$1, ...blurNodes];\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t\tconst maxRadiusU = uniform(18);\n\t\tconst fillBlurMap = Fn(() => {\n\t\t\tconst idx = instanceIndex;\n\t\t\tconst cx = idx.mod(cw);\n\t\t\tconst cy = idx.div(cw);\n\t\t\tIf(cy.lessThan(ch), () => {\n\t\t\t\tconst u = cx.toFloat().add(float(.5)).div(float(computeWidth));\n\t\t\t\tconst v = cy.toFloat().add(float(.5)).div(float(computeHeight));\n\t\t\t\tconst angleRad = angleU.mul(float(Math.PI / 180));\n\t\t\t\tconst direction = vec2(angleRad.cos().div(aspectU), angleRad.sin());\n\t\t\t\tconst centerPos = vec2(centerXU, float(1).sub(centerYU));\n\t\t\t\tconst centeredUV = vec2(u, v).sub(centerPos);\n\t\t\t\tconst directionalDist = max(float(0), centeredUV.dot(direction));\n\t\t\t\tconst radius = smoothstep(float(0), falloffU, directionalDist).mul(maxRadiusU);\n\t\t\t\ttextureStore(blurMapWriteNode, uvec2(cx, cy), vec4(radius, float(0), float(0), float(1))).toWriteOnly();\n\t\t\t});\n\t\t})().compute(computeWidth * computeHeight, [256]);\n\t\tonResize(({ width, height }) => {\n\t\t\tblur.setInputDimensions(Math.round(width * dpr), Math.round(height * dpr));\n\t\t});\n\t\treturn {\n\t\t\toutputs: {\n\t\t\t\tchildTexture,\n\t\t\t\tblurredTexture: outputTexture\n\t\t\t},\n\t\t\tgetComputeNodes: () => {\n\t\t\t\tupdateGeometryUniforms();\n\t\t\t\tconst intensityVal = readScalar(uniforms.intensity);\n\t\t\t\tif (intensityVal !== null) maxRadiusU.value = intensityVal * .36;\n\t\t\t\treturn [fillBlurMap, ...blurNodes];\n\t\t\t}\n\t\t};\n\t},\n\tfragmentNode: ({ uniforms, childNode, onCleanup, computeOutputs }) => {\n\t\tif (!childNode) return vec4(0, 0, 0, 0);\n\t\tif (computeOutputs?.blurredTexture) {\n\t\t\tconst sharp = computeOutputs.childTexture.sample(screenUV);\n\t\t\tconst blurred = texture(computeOutputs.blurredTexture).sample(screenUV);\n\t\t\tconst propsPin = uniforms.intensity.uniform.mul(float(0)).add(uniforms.angle.uniform.mul(float(0))).add(uniforms.falloff.uniform.mul(float(0)));\n\t\t\treturn unpremultiplyAlpha(vec4(blurred.rgb.add(propsPin), sharp.a));\n\t\t}\n\t\tconst childTexture = convertToTexture(childNode);\n\t\tonCleanup(() => {\n\t\t\tif (childTexture?.renderTarget?.dispose) childTexture.renderTarget.dispose();\n\t\t});\n\t\tconst aspect = viewportSize.x.div(viewportSize.y);\n\t\tconst angleRad = radians(uniforms.angle.uniform);\n\t\tconst cosAngle = cos(angleRad);\n\t\tconst sinAngle = sin(angleRad);\n\t\tconst direction = vec2(cosAngle.div(aspect), sinAngle);\n\t\tconst centerPosition = vec2(uniforms.center.uniform[0], uniforms.center.uniform[1].oneMinus());\n\t\tconst centeredUV = screenUV.sub(centerPosition);\n\t\tconst directionalDist = max(float(0), centeredUV.dot(direction));\n\t\tconst falloff = max(float(.001), uniforms.falloff.uniform);\n\t\tconst blurAmount = smoothstep(float(0), falloff, directionalDist);\n\t\tconst scaledIntensity = uniforms.intensity.uniform.mul(.06);\n\t\tconst blurRadius = blurAmount.mul(scaledIntensity);\n\t\tconst weights = [\n\t\t\t.056,\n\t\t\t.135,\n\t\t\t.278,\n\t\t\t.487,\n\t\t\t.726,\n\t\t\t.923,\n\t\t\t1,\n\t\t\t.923,\n\t\t\t.726,\n\t\t\t.487,\n\t\t\t.278,\n\t\t\t.135,\n\t\t\t.056\n\t\t];\n\t\tconst weightSum = 6.214;\n\t\tconst horizontalTexture = convertToTexture(Fn(() => {\n\t\t\tconst uv$1 = screenUV;\n\t\t\tconst pixelSize = vec2(1).div(viewportSize);\n\t\t\tconst total = vec4(0).toVar();\n\t\t\tfor (let x = -6; x <= 6; x++) {\n\t\t\t\tconst weight = float(weights[x + 6] / weightSum);\n\t\t\t\tconst offset = vec2(float(x), float(0)).mul(blurRadius).mul(pixelSize);\n\t\t\t\tconst sampleCoord = uv$1.add(offset);\n\t\t\t\tconst sample = childTexture.sample(sampleCoord).mul(weight);\n\t\t\t\ttotal.assign(total.add(sample));\n\t\t\t}\n\t\t\treturn total;\n\t\t})());\n\t\tonCleanup(() => {\n\t\t\tif (horizontalTexture?.renderTarget?.dispose) horizontalTexture.renderTarget.dispose();\n\t\t});\n\t\treturn Fn(() => {\n\t\t\tconst uv$1 = screenUV;\n\t\t\tconst pixelSize = vec2(1).div(viewportSize);\n\t\t\tconst total = vec4(0).toVar();\n\t\t\tfor (let y = -6; y <= 6; y++) {\n\t\t\t\tconst weight = float(weights[y + 6] / weightSum);\n\t\t\t\tconst offset = vec2(float(0), float(y)).mul(blurRadius).mul(pixelSize);\n\t\t\t\tconst sampleCoord = uv$1.add(offset);\n\t\t\t\tconst sample = horizontalTexture.sample(sampleCoord).mul(weight);\n\t\t\t\ttotal.assign(total.add(sample));\n\t\t\t}\n\t\t\treturn unpremultiplyAlpha(total);\n\t\t})();\n\t}\n};\nvar ProgressiveBlur_default = componentDefinition;\nexport { componentDefinition as n, ProgressiveBlur_default as t };\n","import { a as transformColor, l as transformPosition, o as transformColorSpace, t as colorSpaceOptions } from \"./transformations-CJcUeZIC.js\";\nimport { t as mixColors } from \"./colorMixing-BPpDnR5I.js\";\nimport { cos, distance, float, fract, screenUV, sin, vec2, viewportSize } from \"three/tsl\";\nconst componentDefinition = {\n\tname: \"RadialGradient\",\n\tcategory: \"Textures\",\n\tdescription: \"Radial gradient radiating from a center point\",\n\tprops: {\n\t\tcolorA: {\n\t\t\tdefault: \"#ff0000\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"The starting color at the center of the gradient\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Color A\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tcolorB: {\n\t\t\tdefault: \"#0000ff\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"The ending color at the edge of the gradient\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Color B\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tcenter: {\n\t\t\tdefault: {\n\t\t\t\tx: .5,\n\t\t\t\ty: .5\n\t\t\t},\n\t\t\ttransform: transformPosition,\n\t\t\tdescription: \"The center point of the radial gradient\",\n\t\t\tui: {\n\t\t\t\ttype: \"position\",\n\t\t\t\tlabel: \"Center\",\n\t\t\t\tgroup: \"Position\"\n\t\t\t}\n\t\t},\n\t\tradius: {\n\t\t\tdefault: 1,\n\t\t\tdescription: \"The radius of the gradient (normalized, 0.0-1.0)\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 2,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Radius\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\trepeat: {\n\t\t\tdefault: 1,\n\t\t\tdescription: \"Number of times the gradient repeats. Values above 1 create concentric rings.\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 1,\n\t\t\t\tmax: 20,\n\t\t\t\tstep: .5,\n\t\t\t\tlabel: \"Repeat\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\taspect: {\n\t\t\tdefault: 1,\n\t\t\tdescription: \"Stretches the gradient into an ellipse. Values below 1 compress vertically, above 1 compress horizontally.\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: .1,\n\t\t\t\tmax: 4,\n\t\t\t\tstep: .05,\n\t\t\t\tlabel: \"Aspect\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tskewAngle: {\n\t\t\tdefault: 0,\n\t\t\tdescription: \"Rotates the ellipse axis in degrees. Only visible when Aspect is not 1.\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 360,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Skew Angle\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tcolorSpace: {\n\t\t\tdefault: \"linear\",\n\t\t\ttransform: transformColorSpace,\n\t\t\tcompileTime: true,\n\t\t\tdescription: \"Color space for color interpolation\",\n\t\t\tui: {\n\t\t\t\ttype: \"select\",\n\t\t\t\toptions: colorSpaceOptions,\n\t\t\t\tlabel: \"Color Space\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t}\n\t},\n\tfragmentNode: ({ uniforms }) => {\n\t\tconst uv$1 = screenUV;\n\t\tconst aspectRatio = viewportSize.x.div(viewportSize.y);\n\t\tconst aspectCorrectedUV = vec2(uv$1.x.mul(aspectRatio), uv$1.y);\n\t\tconst centerPos = vec2(uniforms.center.uniform.x.mul(aspectRatio), uniforms.center.uniform.y.oneMinus());\n\t\tconst dx = aspectCorrectedUV.x.sub(centerPos.x);\n\t\tconst dy = aspectCorrectedUV.y.sub(centerPos.y);\n\t\tconst skewRad = uniforms.skewAngle.uniform.mul(float(Math.PI / 180));\n\t\tconst cosS = cos(skewRad);\n\t\tconst sinS = sin(skewRad);\n\t\tconst rdx = dx.mul(cosS).add(dy.mul(sinS));\n\t\tconst rdy = dx.mul(sinS).negate().add(dy.mul(cosS));\n\t\tconst dist = distance(vec2(rdx.mul(uniforms.aspect.uniform), rdy), vec2(float(0), float(0)));\n\t\tconst safeRadius = uniforms.radius.uniform.max(float(1e-6));\n\t\tconst t = dist.div(safeRadius).mul(uniforms.repeat.uniform);\n\t\tconst finalT = uniforms.repeat.uniform.greaterThan(float(1.0001)).select(fract(t), t.clamp(float(0), float(1)));\n\t\treturn mixColors(uniforms.colorA.uniform, uniforms.colorB.uniform, finalT, uniforms.colorSpace.uniform.value);\n\t}\n};\nvar RadialGradient_default = componentDefinition;\nexport { componentDefinition as n, RadialGradient_default as t };\n","import { t as applyEdgeHandling } from \"./edges-CX_lJB9R.js\";\nimport { c as transformEdges, l as transformPosition } from \"./transformations-CJcUeZIC.js\";\nimport { t as unpremultiplyAlpha } from \"./alpha-C4ptedXe.js\";\nimport { PI, convertToTexture, cos, mix, screenUV, sin, vec2, vec4, viewportSize } from \"three/tsl\";\nconst componentDefinition = {\n\tname: \"RectangularCoordinates\",\n\tcategory: \"Distortions\",\n\tdescription: \"Convert polar coordinates back to rectangular space\",\n\trequiresRTT: true,\n\trequiresChild: true,\n\tprops: {\n\t\tcenter: {\n\t\t\tdefault: {\n\t\t\t\tx: .5,\n\t\t\t\ty: .5\n\t\t\t},\n\t\t\ttransform: transformPosition,\n\t\t\tdescription: \"The center point for rectangular coordinate conversion\",\n\t\t\tui: {\n\t\t\t\ttype: \"position\",\n\t\t\t\tlabel: \"Center\",\n\t\t\t\tgroup: \"Position\"\n\t\t\t}\n\t\t},\n\t\tscale: {\n\t\t\tdefault: 1,\n\t\t\tdescription: \"Scale factor for the rectangular output\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: .1,\n\t\t\t\tmax: 3,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Scale\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tintensity: {\n\t\t\tdefault: 1,\n\t\t\tdescription: \"Blends between original UVs (0) and rectangular coordinates (1)\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Intensity\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tedges: {\n\t\t\tdefault: \"transparent\",\n\t\t\tdescription: \"How to handle edges when distortion pushes content out of bounds\",\n\t\t\ttransform: transformEdges,\n\t\t\tcompileTime: true,\n\t\t\tui: {\n\t\t\t\ttype: \"select\",\n\t\t\t\toptions: [\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Stretch\",\n\t\t\t\t\t\tvalue: \"stretch\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Transparent\",\n\t\t\t\t\t\tvalue: \"transparent\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Mirror\",\n\t\t\t\t\t\tvalue: \"mirror\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Wrap\",\n\t\t\t\t\t\tvalue: \"wrap\"\n\t\t\t\t\t}\n\t\t\t\t],\n\t\t\t\tlabel: \"Edges\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t}\n\t},\n\tfragmentNode: ({ uniforms, childNode, onCleanup }) => {\n\t\tif (!childNode) return vec4(0, 0, 0, 0);\n\t\tconst childTexture = convertToTexture(childNode);\n\t\tonCleanup(() => {\n\t\t\tif (childTexture?.renderTarget?.dispose) childTexture.renderTarget.dispose();\n\t\t});\n\t\tconst theta = screenUV.x.mul(PI.mul(2)).sub(PI);\n\t\tconst r = screenUV.y.mul(uniforms.scale.uniform);\n\t\tconst rectX = r.mul(cos(theta));\n\t\tconst rectY = r.mul(sin(theta));\n\t\tconst aspect = viewportSize.x.div(viewportSize.y);\n\t\tconst centerPos = vec2(uniforms.center.uniform.x, uniforms.center.uniform.y.oneMinus());\n\t\tconst blendedUV = mix(screenUV, vec2(rectX.div(aspect).add(centerPos.x), rectY.add(centerPos.y)), uniforms.intensity.uniform);\n\t\treturn unpremultiplyAlpha(applyEdgeHandling(blendedUV, childTexture.sample(blendedUV), childTexture, uniforms.edges.uniform.value));\n\t}\n};\nvar RectangularCoordinates_default = componentDefinition;\nexport { componentDefinition as n, RectangularCoordinates_default as t };\n","import { t as applyEdgeHandling } from \"./edges-CX_lJB9R.js\";\nimport { c as transformEdges } from \"./transformations-CJcUeZIC.js\";\nimport { t as unpremultiplyAlpha } from \"./alpha-C4ptedXe.js\";\nimport { i as createVariableGaussianBlurCompute } from \"./computeBlur-oxyhoztH.js\";\nimport { Fn, If, convertToTexture, float, instanceIndex, mix, screenUV, smoothstep, step, texture, textureStore, uint, uniform, uvec2, vec2, vec4, viewportSize } from \"three/tsl\";\nvar HALF_KERNEL = 30;\nvar BLUR_TO_RADIUS_PX = 12;\nvar POISSON_DISK = [\n\t[0, 0],\n\t[-.94, -.34],\n\t[.95, .31],\n\t[-.09, -.93],\n\t[.34, .94],\n\t[-.91, .41],\n\t[.88, -.46],\n\t[-.4, .71],\n\t[.51, .58],\n\t[-.49, -.59],\n\t[.4, -.68],\n\t[-.71, .05],\n\t[.07, .21]\n];\nvar POISSON_WEIGHT = 1 / POISSON_DISK.length;\nconst componentDefinition = {\n\tname: \"ReflectivePlane\",\n\tcategory: \"Stylize\",\n\tdescription: \"Reflective floor that mirrors the content above it\",\n\trequiresRTT: true,\n\trequiresChild: true,\n\tprops: {\n\t\theight: {\n\t\t\tdefault: .7,\n\t\t\tdescription: \"Vertical position of the reflective surface\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Floor Height\",\n\t\t\t\tgroup: \"Plane\"\n\t\t\t}\n\t\t},\n\t\tdistance: {\n\t\t\tdefault: .5,\n\t\t\tdescription: \"How far below the floor the reflection remains visible before fully fading to transparent.\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: .01,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Reflection Distance\",\n\t\t\t\tgroup: \"Plane\"\n\t\t\t}\n\t\t},\n\t\tfalloff: {\n\t\t\tdefault: .5,\n\t\t\tdescription: \"Width of the fade zone, as a fraction of reflection distance.\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 3,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Reflection Falloff\",\n\t\t\t\tgroup: \"Plane\"\n\t\t\t}\n\t\t},\n\t\tblur: {\n\t\t\tdefault: 3,\n\t\t\tdescription: \"Maximum blur applied to the reflection far from the surface.\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 5,\n\t\t\t\tstep: .05,\n\t\t\t\tlabel: \"Blur\",\n\t\t\t\tgroup: \"Surface\"\n\t\t\t}\n\t\t},\n\t\tblurDistance: {\n\t\t\tdefault: .3,\n\t\t\tdescription: \"How far below the surface the blur takes to ramp from sharp to maximum.\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: .01,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Blur Distance\",\n\t\t\t\tgroup: \"Surface\"\n\t\t\t}\n\t\t},\n\t\tedges: {\n\t\t\tdefault: \"stretch\",\n\t\t\tdescription: \"How to handle reflected samples that fall outside the source content.\",\n\t\t\ttransform: transformEdges,\n\t\t\tcompileTime: true,\n\t\t\tui: {\n\t\t\t\ttype: \"select\",\n\t\t\t\toptions: [\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Stretch\",\n\t\t\t\t\t\tvalue: \"stretch\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Transparent\",\n\t\t\t\t\t\tvalue: \"transparent\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Mirror\",\n\t\t\t\t\t\tvalue: \"mirror\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Wrap\",\n\t\t\t\t\t\tvalue: \"wrap\"\n\t\t\t\t\t}\n\t\t\t\t],\n\t\t\t\tlabel: \"Edges\",\n\t\t\t\tgroup: \"Surface\"\n\t\t\t}\n\t\t}\n\t},\n\tcomputeNode: ({ childNode, onCleanup, dimensions, renderer, uniforms, onResize }) => {\n\t\tif (!childNode) return null;\n\t\tif (uniforms.height.mapComputeInfo || uniforms.blur.mapComputeInfo || uniforms.blurDistance.mapComputeInfo) return null;\n\t\tconst childTexture = convertToTexture(childNode);\n\t\tonCleanup(() => {\n\t\t\tif (childTexture?.renderTarget?.dispose) childTexture.renderTarget.dispose();\n\t\t});\n\t\tconst dpr = renderer?.getPixelRatio?.() ?? 1;\n\t\tconst blur = createVariableGaussianBlurCompute(childTexture, Math.round(dimensions.width * dpr), Math.round(dimensions.height * dpr), onCleanup, HALF_KERNEL);\n\t\tconst { computeNodes: blurNodes, outputTexture, blurMapWriteNode, computeWidth, computeHeight } = blur;\n\t\tconst heightU = uniform(.5);\n\t\tconst blurAmountU = uniform(1);\n\t\tconst blurDistanceU = uniform(.5);\n\t\tconst cw = uint(computeWidth);\n\t\tconst ch = uint(computeHeight);\n\t\tfunction readScalar(entry) {\n\t\t\treturn entry.getCpuValue?.() ?? (typeof entry.uniform.value === \"number\" ? entry.uniform.value : null);\n\t\t}\n\t\tfunction updateUniforms() {\n\t\t\tconst h = readScalar(uniforms.height);\n\t\t\tif (h !== null) heightU.value = h;\n\t\t\tconst b = readScalar(uniforms.blur);\n\t\t\tif (b !== null) blurAmountU.value = b;\n\t\t\tconst bd = readScalar(uniforms.blurDistance);\n\t\t\tif (bd !== null) blurDistanceU.value = Math.max(.01, bd);\n\t\t}\n\t\tconst fillBlurMap = Fn(() => {\n\t\t\tconst idx = instanceIndex;\n\t\t\tconst cx = idx.mod(cw);\n\t\t\tconst cy = idx.div(cw);\n\t\t\tIf(cy.lessThan(ch), () => {\n\t\t\t\tconst v = cy.toFloat().add(float(.5)).div(float(computeHeight));\n\t\t\t\tconst distBelowAtOutput = heightU.sub(v).max(float(0));\n\t\t\t\tconst ramp = smoothstep(float(0), blurDistanceU, distBelowAtOutput);\n\t\t\t\tconst radius = blurAmountU.mul(ramp).mul(float(BLUR_TO_RADIUS_PX));\n\t\t\t\ttextureStore(blurMapWriteNode, uvec2(cx, cy), vec4(radius, float(0), float(0), float(1))).toWriteOnly();\n\t\t\t});\n\t\t})().compute(computeWidth * computeHeight, [256]);\n\t\tonResize(({ width, height }) => {\n\t\t\tblur.setInputDimensions(Math.round(width * dpr), Math.round(height * dpr));\n\t\t});\n\t\treturn {\n\t\t\toutputs: {\n\t\t\t\tchildTexture,\n\t\t\t\tblurredTexture: outputTexture\n\t\t\t},\n\t\t\tgetComputeNodes: () => {\n\t\t\t\tupdateUniforms();\n\t\t\t\treturn [fillBlurMap, ...blurNodes];\n\t\t\t}\n\t\t};\n\t},\n\tfragmentNode: ({ uniforms, childNode, onCleanup, computeOutputs }) => {\n\t\tif (!childNode) return vec4(0, 0, 0, 0);\n\t\tif (computeOutputs?.blurredTexture && computeOutputs?.childTexture) {\n\t\t\tconst sharp = computeOutputs.childTexture;\n\t\t\tconst blurred = texture(computeOutputs.blurredTexture);\n\t\t\treturn Fn(() => {\n\t\t\t\tconst floorY = uniforms.height.uniform;\n\t\t\t\tconst uv$1 = screenUV;\n\t\t\t\tconst distBelow = uv$1.y.sub(floorY).max(float(0));\n\t\t\t\tconst originalSample = sharp.sample(uv$1);\n\t\t\t\tconst reflectedUV = vec2(uv$1.x, floorY.mul(2).sub(uv$1.y));\n\t\t\t\tconst reflSample = applyEdgeHandling(reflectedUV, blurred.sample(reflectedUV), blurred, uniforms.edges.uniform.value);\n\t\t\t\tconst distanceMax = uniforms.distance.uniform.max(float(.001));\n\t\t\t\tconst fadeWidth = distanceMax.mul(uniforms.falloff.uniform).max(float(1e-4));\n\t\t\t\tconst fadeStart = distanceMax.sub(fadeWidth);\n\t\t\t\tconst visibility = float(1).sub(smoothstep(fadeStart, distanceMax, distBelow));\n\t\t\t\tconst effReflA = reflSample.a.mul(visibility);\n\t\t\t\tconst reflPremultRgb = reflSample.rgb.mul(visibility);\n\t\t\t\tconst propsPin = uniforms.height.uniform.mul(float(0)).add(uniforms.blur.uniform.mul(float(0))).add(uniforms.blurDistance.uniform.mul(float(0)));\n\t\t\t\tconst oneMinusReflA = effReflA.oneMinus();\n\t\t\t\treturn unpremultiplyAlpha(mix(originalSample, vec4(reflPremultRgb.add(originalSample.rgb.mul(oneMinusReflA)).add(propsPin), effReflA.add(originalSample.a.mul(oneMinusReflA))), step(floorY, uv$1.y)));\n\t\t\t})();\n\t\t}\n\t\tconst childTexture = convertToTexture(childNode);\n\t\tonCleanup(() => {\n\t\t\tif (childTexture?.renderTarget?.dispose) childTexture.renderTarget.dispose();\n\t\t});\n\t\treturn Fn(() => {\n\t\t\tconst floorY = uniforms.height.uniform;\n\t\t\tconst uv$1 = screenUV;\n\t\t\tconst aspect = viewportSize.x.div(viewportSize.y);\n\t\t\tconst distBelow = uv$1.y.sub(floorY).max(float(0));\n\t\t\tconst originalSample = childTexture.sample(uv$1);\n\t\t\tconst reflectedUV = vec2(uv$1.x, floorY.mul(2).sub(uv$1.y));\n\t\t\tconst clampedBlurDistance = uniforms.blurDistance.uniform.max(float(.01));\n\t\t\tconst blurRamp = smoothstep(float(0), clampedBlurDistance, distBelow);\n\t\t\tconst blurRadius = uniforms.blur.uniform.mul(blurRamp).mul(.02);\n\t\t\tconst blurredColor = vec4(0).toVar();\n\t\t\tfor (let i = 0; i < POISSON_DISK.length; i++) {\n\t\t\t\tconst [ox, oy] = POISSON_DISK[i];\n\t\t\t\tconst offset = vec2(float(ox).mul(blurRadius).div(aspect), float(oy).mul(blurRadius));\n\t\t\t\tconst sampleUV = reflectedUV.add(offset);\n\t\t\t\tconst edgeHandled = applyEdgeHandling(sampleUV, childTexture.sample(sampleUV), childTexture, uniforms.edges.uniform.value);\n\t\t\t\tblurredColor.assign(blurredColor.add(edgeHandled.mul(float(POISSON_WEIGHT))));\n\t\t\t}\n\t\t\tconst distanceMax = uniforms.distance.uniform.max(float(.001));\n\t\t\tconst fadeWidth = distanceMax.mul(uniforms.falloff.uniform).max(float(1e-4));\n\t\t\tconst fadeStart = distanceMax.sub(fadeWidth);\n\t\t\tconst visibility = float(1).sub(smoothstep(fadeStart, distanceMax, distBelow));\n\t\t\tconst effReflA = blurredColor.a.mul(visibility);\n\t\t\tconst reflPremultRgb = blurredColor.rgb.mul(visibility);\n\t\t\tconst oneMinusReflA = effReflA.oneMinus();\n\t\t\treturn unpremultiplyAlpha(mix(originalSample, vec4(reflPremultRgb.add(originalSample.rgb.mul(oneMinusReflA)), effReflA.add(originalSample.a.mul(oneMinusReflA))), step(floorY, uv$1.y)));\n\t\t})();\n\t}\n};\nvar ReflectivePlane_default = componentDefinition;\nexport { componentDefinition as n, ReflectivePlane_default as t };\n","import { a as transformColor, l as transformPosition, o as transformColorSpace, t as colorSpaceOptions } from \"./transformations-CJcUeZIC.js\";\nimport { t as mixColors } from \"./colorMixing-BPpDnR5I.js\";\nimport { l as ringSdf } from \"./sdf-D_EAGXhN.js\";\nimport { float, screenUV, smoothstep, vec2, vec4, viewportSize } from \"three/tsl\";\nvar transformStrokePosition = (value) => {\n\treturn {\n\t\t\"outside\": 0,\n\t\t\"center\": 1,\n\t\t\"inside\": 2\n\t}[value?.toLowerCase()] ?? 1;\n};\nconst componentDefinition = {\n\tname: \"Ring\",\n\tcategory: \"Shapes\",\n\tdescription: \"Annular ring (donut) with adjustable radius and band thickness\",\n\tprops: {\n\t\tcolor: {\n\t\t\tdefault: \"#ffffff\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Fill color of the ring\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Color\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tcenter: {\n\t\t\tdefault: {\n\t\t\t\tx: .5,\n\t\t\t\ty: .5\n\t\t\t},\n\t\t\ttransform: transformPosition,\n\t\t\tdescription: \"Center position of the ring\",\n\t\t\tui: {\n\t\t\t\ttype: \"position\",\n\t\t\t\tlabel: \"Center\",\n\t\t\t\tgroup: \"Position\"\n\t\t\t}\n\t\t},\n\t\tradius: {\n\t\t\tdefault: .3,\n\t\t\tdescription: \"Distance from center to the ring's midline in UV space\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Radius\",\n\t\t\t\tgroup: \"Shape\"\n\t\t\t}\n\t\t},\n\t\tthickness: {\n\t\t\tdefault: .07,\n\t\t\tdescription: \"Half-width of the ring band — total ring width is twice this value\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: .005,\n\t\t\t\tmax: .3,\n\t\t\t\tstep: .005,\n\t\t\t\tlabel: \"Thickness\",\n\t\t\t\tgroup: \"Shape\"\n\t\t\t}\n\t\t},\n\t\tsoftness: {\n\t\t\tdefault: 0,\n\t\t\tdescription: \"Edge softness for antialiasing (applied to both inner and outer ring edges)\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: .1,\n\t\t\t\tstep: .001,\n\t\t\t\tlabel: \"Softness\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tstrokeThickness: {\n\t\t\tdefault: 0,\n\t\t\tdescription: \"Stroke thickness. Zero means no stroke.\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: .1,\n\t\t\t\tstep: .005,\n\t\t\t\tlabel: \"Stroke Thickness\",\n\t\t\t\tgroup: \"Stroke\"\n\t\t\t}\n\t\t},\n\t\tstrokeColor: {\n\t\t\tdefault: \"#000000\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Color of the stroke outline\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Stroke Color\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tstrokePosition: {\n\t\t\tdefault: \"center\",\n\t\t\ttransform: transformStrokePosition,\n\t\t\tdescription: \"Position of the stroke relative to the ring edge\",\n\t\t\tui: {\n\t\t\t\ttype: \"select\",\n\t\t\t\toptions: [\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Outside\",\n\t\t\t\t\t\tvalue: \"outside\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Center\",\n\t\t\t\t\t\tvalue: \"center\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Inside\",\n\t\t\t\t\t\tvalue: \"inside\"\n\t\t\t\t\t}\n\t\t\t\t],\n\t\t\t\tlabel: \"Stroke Position\",\n\t\t\t\tgroup: \"Stroke\"\n\t\t\t}\n\t\t},\n\t\tcolorSpace: {\n\t\t\tdefault: \"linear\",\n\t\t\ttransform: transformColorSpace,\n\t\t\tcompileTime: true,\n\t\t\tdescription: \"Color space for blending fill and stroke colors\",\n\t\t\tui: {\n\t\t\t\ttype: \"select\",\n\t\t\t\toptions: colorSpaceOptions,\n\t\t\t\tlabel: \"Color Blending\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t}\n\t},\n\tfragmentNode: ({ uniforms }) => {\n\t\tconst uv$1 = screenUV;\n\t\tconst aspect = viewportSize.x.div(viewportSize.y);\n\t\tconst aspectUV = vec2(uv$1.x.mul(aspect), uv$1.y);\n\t\tconst centerPos = vec2(uniforms.center.uniform.x.mul(aspect), uniforms.center.uniform.y.oneMinus());\n\t\tconst sdf = ringSdf(aspectUV.x.sub(centerPos.x), aspectUV.y.sub(centerPos.y), uniforms.radius.uniform, uniforms.thickness.uniform);\n\t\tconst edgeSoftness = uniforms.softness.uniform;\n\t\tconst strokeThickness = uniforms.strokeThickness.uniform;\n\t\tconst strokePositionMode = uniforms.strokePosition.uniform;\n\t\tconst hasStroke = strokeThickness.greaterThan(float(0));\n\t\tconst isCenter = strokePositionMode.greaterThanEqual(float(.5)).and(strokePositionMode.lessThan(float(1.5)));\n\t\tconst isInside = strokePositionMode.greaterThanEqual(float(1.5));\n\t\tconst halfThickness = strokeThickness.mul(.5);\n\t\tconst strokeInner = isInside.select(strokeThickness.negate(), isCenter.select(halfThickness.negate(), float(0)));\n\t\tconst strokeOuter = isInside.select(float(0), isCenter.select(halfThickness, strokeThickness));\n\t\tconst overallMask = smoothstep(strokeOuter.sub(edgeSoftness), strokeOuter, sdf).oneMinus();\n\t\tconst strokeBlend = hasStroke.select(smoothstep(strokeInner.sub(edgeSoftness), strokeInner, sdf), float(0));\n\t\tconst blendedColor = mixColors(vec4(uniforms.color.uniform.rgb, uniforms.color.uniform.a), vec4(uniforms.strokeColor.uniform.rgb, uniforms.strokeColor.uniform.a), strokeBlend, uniforms.colorSpace.uniform.value);\n\t\treturn vec4(blendedColor.xyz, blendedColor.w.mul(overallMask));\n\t}\n};\nvar Ring_default = componentDefinition;\nexport { componentDefinition as n, Ring_default as t };\n","import { a as transformColor, l as transformPosition } from \"./transformations-CJcUeZIC.js\";\nimport { t as mixColors } from \"./colorMixing-BPpDnR5I.js\";\nimport { t as createAnimatedTime } from \"./time-DUqSFWvT.js\";\nimport { distance, float, screenUV, sin, smoothstep, vec2, viewportSize } from \"three/tsl\";\nconst componentDefinition = {\n\tname: \"Ripples\",\n\tcategory: \"Textures\",\n\tdescription: \"Concentric animated ripples emanating from a point\",\n\tprops: {\n\t\tcenter: {\n\t\t\tdefault: {\n\t\t\t\tx: .5,\n\t\t\t\ty: .5\n\t\t\t},\n\t\t\ttransform: transformPosition,\n\t\t\tdescription: \"The center point where ripples emanate from\",\n\t\t\tui: {\n\t\t\t\ttype: \"position\",\n\t\t\t\tlabel: \"Center\",\n\t\t\t\tgroup: \"Position\"\n\t\t\t}\n\t\t},\n\t\tcolorA: {\n\t\t\tdefault: \"#ffffff\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Color of the ripple waves\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Color A\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tcolorB: {\n\t\t\tdefault: \"#000000\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Background color between ripples\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Color B\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tspeed: {\n\t\t\tdefault: 1,\n\t\t\tdescription: \"Speed of ripple animation\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: -5,\n\t\t\t\tmax: 5,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Speed\",\n\t\t\t\tgroup: \"Animation\"\n\t\t\t}\n\t\t},\n\t\tfrequency: {\n\t\t\tdefault: 20,\n\t\t\tdescription: \"Number of ripples/spacing between them\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 1,\n\t\t\t\tmax: 80,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Frequency\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tsoftness: {\n\t\t\tdefault: 0,\n\t\t\tdescription: \"Softness of ripple edges\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 3,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Softness\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tthickness: {\n\t\t\tdefault: .5,\n\t\t\tdescription: \"Thickness of each ripple band\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Thickness\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tphase: {\n\t\t\tdefault: 0,\n\t\t\tdescription: \"Phase offset for ripple animation\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 6.28,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Phase\",\n\t\t\t\tgroup: \"Animation\"\n\t\t\t}\n\t\t}\n\t},\n\tfragmentNode: (params) => {\n\t\tconst { uniforms } = params;\n\t\tconst uv$1 = screenUV;\n\t\tconst center = uniforms.center.uniform;\n\t\tconst colorA = uniforms.colorA.uniform;\n\t\tconst colorB = uniforms.colorB.uniform;\n\t\tconst frequency = uniforms.frequency.uniform;\n\t\tconst softness = uniforms.softness.uniform;\n\t\tconst thickness = uniforms.thickness.uniform;\n\t\tconst phase = uniforms.phase.uniform;\n\t\tconst aspect = viewportSize.x.div(viewportSize.y);\n\t\tconst dist = distance(vec2(uv$1.x.mul(aspect), uv$1.y), vec2(center.x.mul(aspect), center.y.oneMinus()));\n\t\tconst animTime = createAnimatedTime(params, uniforms.speed);\n\t\tconst baseWave = sin(dist.mul(frequency).sub(animTime).add(phase));\n\t\tconst thicknessThreshold = thickness.mul(float(2)).sub(float(1));\n\t\treturn mixColors(colorB, colorA, smoothstep(thicknessThreshold.sub(softness), thicknessThreshold.add(softness), baseWave).oneMinus(), 0);\n\t}\n};\nvar Ripples_default = componentDefinition;\nexport { componentDefinition as n, Ripples_default as t };\n","import { a as transformColor, l as transformPosition, o as transformColorSpace, t as colorSpaceOptions } from \"./transformations-CJcUeZIC.js\";\nimport { t as mixColors } from \"./colorMixing-BPpDnR5I.js\";\nimport { u as roundedRectSdf } from \"./sdf-D_EAGXhN.js\";\nimport { cos, float, screenUV, sin, smoothstep, vec2, vec4, viewportSize } from \"three/tsl\";\nvar transformStrokePosition = (value) => {\n\treturn {\n\t\t\"outside\": 0,\n\t\t\"center\": 1,\n\t\t\"inside\": 2\n\t}[value?.toLowerCase()] ?? 1;\n};\nconst componentDefinition = {\n\tname: \"RoundedRect\",\n\tcategory: \"Shapes\",\n\tdescription: \"Rounded rectangle with adjustable width, height, and corner rounding\",\n\tprops: {\n\t\tcolor: {\n\t\t\tdefault: \"#ffffff\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Fill color of the rectangle\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Color\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tcenter: {\n\t\t\tdefault: {\n\t\t\t\tx: .5,\n\t\t\t\ty: .5\n\t\t\t},\n\t\t\ttransform: transformPosition,\n\t\t\tdescription: \"Center position of the rectangle\",\n\t\t\tui: {\n\t\t\t\ttype: \"position\",\n\t\t\t\tlabel: \"Center\",\n\t\t\t\tgroup: \"Position\"\n\t\t\t}\n\t\t},\n\t\twidth: {\n\t\t\tdefault: .35,\n\t\t\tdescription: \"Half-width of the rectangle\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: .01,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Width\",\n\t\t\t\tgroup: \"Shape\"\n\t\t\t}\n\t\t},\n\t\theight: {\n\t\t\tdefault: .25,\n\t\t\tdescription: \"Half-height of the rectangle\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: .01,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Height\",\n\t\t\t\tgroup: \"Shape\"\n\t\t\t}\n\t\t},\n\t\trounding: {\n\t\t\tdefault: .05,\n\t\t\tdescription: \"Corner rounding radius — set to min(width, height) for a pill shape\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: .5,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Rounding\",\n\t\t\t\tgroup: \"Shape\"\n\t\t\t}\n\t\t},\n\t\trotation: {\n\t\t\tdefault: 0,\n\t\t\tdescription: \"Rotation in degrees\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 360,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Rotation\",\n\t\t\t\tgroup: \"Shape\"\n\t\t\t}\n\t\t},\n\t\tsoftness: {\n\t\t\tdefault: 0,\n\t\t\tdescription: \"Edge softness for antialiasing\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: .1,\n\t\t\t\tstep: .001,\n\t\t\t\tlabel: \"Softness\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tstrokeThickness: {\n\t\t\tdefault: 0,\n\t\t\tdescription: \"Stroke thickness. Zero means no stroke.\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: .2,\n\t\t\t\tstep: .005,\n\t\t\t\tlabel: \"Stroke Thickness\",\n\t\t\t\tgroup: \"Stroke\"\n\t\t\t}\n\t\t},\n\t\tstrokeColor: {\n\t\t\tdefault: \"#000000\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Color of the stroke outline\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Stroke Color\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tstrokePosition: {\n\t\t\tdefault: \"center\",\n\t\t\ttransform: transformStrokePosition,\n\t\t\tdescription: \"Position of the stroke relative to the shape edge\",\n\t\t\tui: {\n\t\t\t\ttype: \"select\",\n\t\t\t\toptions: [\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Outside\",\n\t\t\t\t\t\tvalue: \"outside\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Center\",\n\t\t\t\t\t\tvalue: \"center\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Inside\",\n\t\t\t\t\t\tvalue: \"inside\"\n\t\t\t\t\t}\n\t\t\t\t],\n\t\t\t\tlabel: \"Stroke Position\",\n\t\t\t\tgroup: \"Stroke\"\n\t\t\t}\n\t\t},\n\t\tcolorSpace: {\n\t\t\tdefault: \"linear\",\n\t\t\ttransform: transformColorSpace,\n\t\t\tcompileTime: true,\n\t\t\tdescription: \"Color space for blending fill and stroke colors\",\n\t\t\tui: {\n\t\t\t\ttype: \"select\",\n\t\t\t\toptions: colorSpaceOptions,\n\t\t\t\tlabel: \"Color Blending\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t}\n\t},\n\tfragmentNode: ({ uniforms }) => {\n\t\tconst uv$1 = screenUV;\n\t\tconst aspect = viewportSize.x.div(viewportSize.y);\n\t\tconst aspectUV = vec2(uv$1.x.mul(aspect), uv$1.y);\n\t\tconst centerPos = vec2(uniforms.center.uniform.x.mul(aspect), uniforms.center.uniform.y.oneMinus());\n\t\tconst dx = aspectUV.x.sub(centerPos.x);\n\t\tconst dy = aspectUV.y.sub(centerPos.y);\n\t\tconst rotRad = uniforms.rotation.uniform.mul(float(Math.PI / 180));\n\t\tconst cosR = cos(rotRad);\n\t\tconst sinR = sin(rotRad);\n\t\tconst sdf = roundedRectSdf(dx.mul(cosR).add(dy.mul(sinR)), dy.mul(cosR).sub(dx.mul(sinR)), uniforms.width.uniform, uniforms.height.uniform, uniforms.rounding.uniform);\n\t\tconst edgeSoftness = uniforms.softness.uniform;\n\t\tconst strokeThickness = uniforms.strokeThickness.uniform;\n\t\tconst strokePositionMode = uniforms.strokePosition.uniform;\n\t\tconst hasStroke = strokeThickness.greaterThan(float(0));\n\t\tconst isCenter = strokePositionMode.greaterThanEqual(float(.5)).and(strokePositionMode.lessThan(float(1.5)));\n\t\tconst isInside = strokePositionMode.greaterThanEqual(float(1.5));\n\t\tconst halfThickness = strokeThickness.mul(.5);\n\t\tconst strokeInner = isInside.select(strokeThickness.negate(), isCenter.select(halfThickness.negate(), float(0)));\n\t\tconst strokeOuter = isInside.select(float(0), isCenter.select(halfThickness, strokeThickness));\n\t\tconst overallMask = smoothstep(strokeOuter.sub(edgeSoftness), strokeOuter, sdf).oneMinus();\n\t\tconst strokeBlend = hasStroke.select(smoothstep(strokeInner.sub(edgeSoftness), strokeInner, sdf), float(0));\n\t\tconst blendedColor = mixColors(vec4(uniforms.color.uniform.rgb, uniforms.color.uniform.a), vec4(uniforms.strokeColor.uniform.rgb, uniforms.strokeColor.uniform.a), strokeBlend, uniforms.colorSpace.uniform.value);\n\t\treturn vec4(blendedColor.xyz, blendedColor.w.mul(overallMask));\n\t}\n};\nvar RoundedRect_default = componentDefinition;\nexport { componentDefinition as n, RoundedRect_default as t };\n","import { dot, mix, vec3, vec4 } from \"three/tsl\";\nconst componentDefinition = {\n\tname: \"Saturation\",\n\tcategory: \"Adjustments\",\n\tdescription: \"Adjust color saturation intensity\",\n\trequiresChild: true,\n\tprops: { intensity: {\n\t\tdefault: 1,\n\t\tdescription: \"The intensity of the saturation effect (1 being no change)\",\n\t\tcompileTimeWhen: (prev, next) => prev === 1 !== (next === 1),\n\t\tui: {\n\t\t\ttype: [\"range\", \"map\"],\n\t\t\tmin: 0,\n\t\t\tmax: 3,\n\t\t\tstep: .1,\n\t\t\tlabel: \"Intensity\",\n\t\t\tgroup: \"Appearance\"\n\t\t}\n\t} },\n\tfragmentNode: ({ uniforms, childNode }) => {\n\t\tif (!childNode) {\n\t\t\tconsole.error(\"You must pass a child component into the Saturation shader.\");\n\t\t\treturn vec4(0);\n\t\t}\n\t\tif (uniforms.intensity.uniform.value === 1) return childNode;\n\t\tconst luminance = dot(childNode.rgb, vec3(.2126, .7152, .0722));\n\t\treturn vec4(mix(vec3(luminance, luminance, luminance), childNode.rgb, uniforms.intensity.uniform), childNode.a);\n\t}\n};\nvar Saturation_default = componentDefinition;\nexport { componentDefinition as n, Saturation_default as t };\n","import { t as unpremultiplyAlpha } from \"./alpha-C4ptedXe.js\";\nimport { Fn, clamp, convertToTexture, float, screenUV, vec2, vec4, viewportSize } from \"three/tsl\";\nconst componentDefinition = {\n\tname: \"Sharpness\",\n\tcategory: \"Adjustments\",\n\tdescription: \"Adjust image sharpness using a convolution kernel\",\n\trequiresRTT: true,\n\trequiresChild: true,\n\tprops: { sharpness: {\n\t\tdefault: 0,\n\t\tdescription: \"How sharp to make the underlying image\",\n\t\tcompileTimeWhen: (prev, next) => prev === 0 !== (next === 0),\n\t\tui: {\n\t\t\ttype: [\"range\", \"map\"],\n\t\t\tmin: 0,\n\t\t\tmax: 5,\n\t\t\tstep: .1,\n\t\t\tlabel: \"Sharpness\",\n\t\t\tgroup: \"Appearance\"\n\t\t}\n\t} },\n\tfragmentNode: ({ uniforms, childNode, onCleanup }) => {\n\t\tif (!childNode) return vec4(0, 0, 0, 0);\n\t\tif (uniforms.sharpness.uniform.value === 0) return childNode;\n\t\tconst childTexture = convertToTexture(childNode);\n\t\tonCleanup(() => {\n\t\t\tif (childTexture?.renderTarget?.dispose) childTexture.renderTarget.dispose();\n\t\t});\n\t\treturn Fn(() => {\n\t\t\tconst uv$1 = screenUV;\n\t\t\tconst amount = uniforms.sharpness.uniform;\n\t\t\tconst pixelSize = vec2(1).div(viewportSize);\n\t\t\tconst center = childTexture.sample(uv$1);\n\t\t\tconst top = childTexture.sample(uv$1.add(vec2(0, pixelSize.y)));\n\t\t\tconst bottom = childTexture.sample(uv$1.sub(vec2(0, pixelSize.y)));\n\t\t\tconst left = childTexture.sample(uv$1.sub(vec2(pixelSize.x, 0)));\n\t\t\tconst right = childTexture.sample(uv$1.add(vec2(pixelSize.x, 0)));\n\t\t\tconst centerWeight = float(1).add(amount.mul(4));\n\t\t\tconst neighborWeight = amount.negate();\n\t\t\treturn unpremultiplyAlpha(vec4(clamp(center.rgb.mul(centerWeight).add(top.rgb.mul(neighborWeight)).add(bottom.rgb.mul(neighborWeight)).add(left.rgb.mul(neighborWeight)).add(right.rgb.mul(neighborWeight)), 0, 1), center.a));\n\t\t})();\n\t}\n};\nvar Sharpness_default = componentDefinition;\nexport { componentDefinition as n, Sharpness_default as t };\n","import { t as applyEdgeHandling } from \"./edges-CX_lJB9R.js\";\nimport { c as transformEdges } from \"./transformations-CJcUeZIC.js\";\nimport { t as unpremultiplyAlpha } from \"./alpha-C4ptedXe.js\";\nimport { StorageTexture } from \"three/webgpu\";\nimport { DataTexture, FloatType, NearestFilter, RGBAFormat } from \"three\";\nimport { Fn, If, convertToTexture, float, instanceIndex, int, screenUV, smoothstep, storageTexture, texture, textureStore, uint, uniformArray, uvec2, vec2, vec4 } from \"three/tsl\";\nvar seededRandom = (seed) => {\n\tconst x = Math.sin(seed) * 1e4;\n\treturn x - Math.floor(x);\n};\nvar SHARD_COUNT = 16;\nvar VORONOI_SIZE = 1024;\nconst componentDefinition = {\n\tname: \"Shatter\",\n\tcategory: \"Interactive\",\n\tdescription: \"Broken glass effect with tectonic plate displacement\",\n\trequiresRTT: true,\n\trequiresChild: true,\n\tusesPointer: true,\n\tprops: {\n\t\tcrackWidth: {\n\t\t\tdefault: 1,\n\t\t\tdescription: \"Thickness of crack lines\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: .5,\n\t\t\t\tmax: 5,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Crack Width\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tintensity: {\n\t\t\tdefault: 4,\n\t\t\tdescription: \"How much shards shift\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 20,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Intensity\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tradius: {\n\t\t\tdefault: .4,\n\t\t\tdescription: \"Cursor influence radius\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: .1,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Radius\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tdecay: {\n\t\t\tdefault: 1,\n\t\t\tdescription: \"How fast shards return to rest\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: .1,\n\t\t\t\tmax: 10,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Decay\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tseed: {\n\t\t\tdefault: 2,\n\t\t\tdescription: \"Random seed for pattern\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 50,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Seed\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tchromaticSplit: {\n\t\t\tdefault: 1,\n\t\t\tdescription: \"RGB separation for prismatic glass effect\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 5,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Chromatic Split\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\trefractionStrength: {\n\t\t\tdefault: 5,\n\t\t\tdescription: \"How much cracks bend/distort the underlying image\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 10,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Refraction\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tshardLighting: {\n\t\t\tdefault: .1,\n\t\t\tdescription: \"Subtle lighting on tilted shards for 3D depth\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: .5,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Shard Lighting\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tedges: {\n\t\t\tdefault: \"mirror\",\n\t\t\tdescription: \"How to handle edges when displacement pushes content out of bounds\",\n\t\t\ttransform: transformEdges,\n\t\t\tcompileTime: true,\n\t\t\tui: {\n\t\t\t\ttype: \"select\",\n\t\t\t\toptions: [\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Stretch\",\n\t\t\t\t\t\tvalue: \"stretch\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Transparent\",\n\t\t\t\t\t\tvalue: \"transparent\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Mirror\",\n\t\t\t\t\t\tvalue: \"mirror\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Wrap\",\n\t\t\t\t\t\tvalue: \"wrap\"\n\t\t\t\t\t}\n\t\t\t\t],\n\t\t\t\tlabel: \"Edges\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t}\n\t},\n\tcomputeNode: ({ uniforms, onCleanup }) => {\n\t\tconst cellPositions = uniformArray(new Array(SHARD_COUNT * 2).fill(0), \"float\");\n\t\tconst voronoiTex = new StorageTexture(VORONOI_SIZE, VORONOI_SIZE);\n\t\tvoronoiTex.type = FloatType;\n\t\tvoronoiTex.magFilter = NearestFilter;\n\t\tvoronoiTex.minFilter = NearestFilter;\n\t\tvoronoiTex.generateMipmaps = false;\n\t\tconst voronoiTexNode = storageTexture(voronoiTex);\n\t\tonCleanup(() => {\n\t\t\tvoronoiTex.dispose();\n\t\t});\n\t\tconst vs = uint(VORONOI_SIZE);\n\t\tconst invVS = float(1 / VORONOI_SIZE);\n\t\tconst voronoiKernel = Fn(() => {\n\t\t\tconst idx = instanceIndex;\n\t\t\tconst x = idx.mod(vs);\n\t\t\tconst y = idx.div(vs);\n\t\t\tIf(y.lessThan(vs), () => {\n\t\t\t\tconst u = x.toFloat().add(float(.5)).mul(invVS);\n\t\t\t\tconst v = y.toFloat().add(float(.5)).mul(invVS);\n\t\t\t\tconst d1 = float(99999).toVar();\n\t\t\t\tconst d2 = float(99999).toVar();\n\t\t\t\tconst idx1 = float(0).toVar();\n\t\t\t\tconst idx2 = float(0).toVar();\n\t\t\t\tfor (let i = 0; i < SHARD_COUNT; i++) {\n\t\t\t\t\tconst cellX = cellPositions.element(int(i * 2));\n\t\t\t\t\tconst cellY = cellPositions.element(int(i * 2 + 1));\n\t\t\t\t\tconst ddx = u.sub(cellX);\n\t\t\t\t\tconst ddy = v.sub(cellY);\n\t\t\t\t\tconst distSq = ddx.mul(ddx).add(ddy.mul(ddy));\n\t\t\t\t\tIf(distSq.lessThan(d1), () => {\n\t\t\t\t\t\td2.assign(d1);\n\t\t\t\t\t\tidx2.assign(idx1);\n\t\t\t\t\t\td1.assign(distSq);\n\t\t\t\t\t\tidx1.assign(float(i));\n\t\t\t\t\t}).Else(() => {\n\t\t\t\t\t\tIf(distSq.lessThan(d2), () => {\n\t\t\t\t\t\t\td2.assign(distSq);\n\t\t\t\t\t\t\tidx2.assign(float(i));\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\ttextureStore(voronoiTexNode, uvec2(x, y), vec4(idx1, idx2, float(0), float(0))).toWriteOnly();\n\t\t\t});\n\t\t})().compute(VORONOI_SIZE * VORONOI_SIZE, [256]);\n\t\tlet currentSeed = uniforms.seed.uniform.value;\n\t\tlet needsDispatch = true;\n\t\tconst generateCells = (seed) => {\n\t\t\tconst positions = new Array(SHARD_COUNT * 2);\n\t\t\tfor (let i = 0; i < SHARD_COUNT; i++) {\n\t\t\t\tpositions[i * 2] = seededRandom(seed + i * 2);\n\t\t\t\tpositions[i * 2 + 1] = seededRandom(seed + i * 2 + 1);\n\t\t\t}\n\t\t\tcellPositions.array = positions;\n\t\t};\n\t\tgenerateCells(currentSeed);\n\t\treturn {\n\t\t\toutputs: { voronoiTexture: voronoiTex },\n\t\t\tgetComputeNodes: () => {\n\t\t\t\tconst newSeed = uniforms.seed.uniform.value;\n\t\t\t\tif (newSeed !== currentSeed) {\n\t\t\t\t\tcurrentSeed = newSeed;\n\t\t\t\t\tgenerateCells(currentSeed);\n\t\t\t\t\tneedsDispatch = true;\n\t\t\t\t}\n\t\t\t\tif (needsDispatch) {\n\t\t\t\t\tneedsDispatch = false;\n\t\t\t\t\treturn [voronoiKernel];\n\t\t\t\t}\n\t\t\t\treturn null;\n\t\t\t}\n\t\t};\n\t},\n\tfragmentNode: ({ uniforms, onBeforeRender, childNode, onCleanup, dimensions, computeOutputs }) => {\n\t\tconst FRICTION = 1;\n\t\tconst cellData = new Float32Array(SHARD_COUNT * 4);\n\t\tconst cellPosArray = new Array(SHARD_COUNT * 2).fill(0);\n\t\tconst cellPosUniform = uniformArray(cellPosArray, \"float\");\n\t\tconst displacementData = new Float32Array(SHARD_COUNT * 4);\n\t\tconst dispArray = new Array(SHARD_COUNT * 2).fill(0);\n\t\tconst dispUniform = uniformArray(dispArray, \"float\");\n\t\tconst syncCellPosUniform = () => {\n\t\t\tfor (let i = 0; i < SHARD_COUNT; i++) {\n\t\t\t\tcellPosArray[i * 2] = cellData[i * 4];\n\t\t\t\tcellPosArray[i * 2 + 1] = cellData[i * 4 + 1];\n\t\t\t}\n\t\t\tcellPosUniform.array = cellPosArray;\n\t\t};\n\t\tconst syncDispUniform = () => {\n\t\t\tfor (let i = 0; i < SHARD_COUNT; i++) {\n\t\t\t\tdispArray[i * 2] = displacementData[i * 4];\n\t\t\t\tdispArray[i * 2 + 1] = displacementData[i * 4 + 1];\n\t\t\t}\n\t\t\tdispUniform.array = dispArray;\n\t\t};\n\t\tlet voronoiField;\n\t\tif (computeOutputs?.voronoiTexture) voronoiField = texture(computeOutputs.voronoiTexture);\n\t\telse {\n\t\t\tconst voronoiData = new Float32Array(VORONOI_SIZE * VORONOI_SIZE * 4);\n\t\t\tconst voronoiTexture = new DataTexture(voronoiData, VORONOI_SIZE, VORONOI_SIZE, RGBAFormat, FloatType);\n\t\t\tvoronoiTexture.magFilter = NearestFilter;\n\t\t\tvoronoiTexture.minFilter = NearestFilter;\n\t\t\tvoronoiField = texture(voronoiTexture);\n\t\t\tconst generateVoronoi = () => {\n\t\t\t\tfor (let y = 0; y < VORONOI_SIZE; y++) for (let x = 0; x < VORONOI_SIZE; x++) {\n\t\t\t\t\tconst u = (x + .5) / VORONOI_SIZE;\n\t\t\t\t\tconst v = (y + .5) / VORONOI_SIZE;\n\t\t\t\t\tlet d1 = Infinity, d2 = Infinity, i1 = 0, i2 = 0;\n\t\t\t\t\tfor (let i = 0; i < SHARD_COUNT; i++) {\n\t\t\t\t\t\tconst dx = u - cellData[i * 4];\n\t\t\t\t\t\tconst dy = v - cellData[i * 4 + 1];\n\t\t\t\t\t\tconst distSq = dx * dx + dy * dy;\n\t\t\t\t\t\tif (distSq < d1) {\n\t\t\t\t\t\t\td2 = d1;\n\t\t\t\t\t\t\ti2 = i1;\n\t\t\t\t\t\t\td1 = distSq;\n\t\t\t\t\t\t\ti1 = i;\n\t\t\t\t\t\t} else if (distSq < d2) {\n\t\t\t\t\t\t\td2 = distSq;\n\t\t\t\t\t\t\ti2 = i;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tconst offset = (y * VORONOI_SIZE + x) * 4;\n\t\t\t\t\tvoronoiData[offset] = i1;\n\t\t\t\t\tvoronoiData[offset + 1] = i2;\n\t\t\t\t}\n\t\t\t\tvoronoiTexture.needsUpdate = true;\n\t\t\t};\n\t\t\tlet currentSeed = uniforms.seed.uniform.value;\n\t\t\tconst generateCells = (seed) => {\n\t\t\t\tfor (let i = 0; i < SHARD_COUNT; i++) {\n\t\t\t\t\tcellData[i * 4] = seededRandom(seed + i * 2);\n\t\t\t\t\tcellData[i * 4 + 1] = seededRandom(seed + i * 2 + 1);\n\t\t\t\t\tcellData[i * 4 + 2] = seededRandom(seed + i * 3);\n\t\t\t\t\tcellData[i * 4 + 3] = seededRandom(seed + i * 3 + 1);\n\t\t\t\t}\n\t\t\t\tsyncCellPosUniform();\n\t\t\t};\n\t\t\tgenerateCells(currentSeed);\n\t\t\tgenerateVoronoi();\n\t\t\tonBeforeRender(() => {\n\t\t\t\tconst newSeed = uniforms.seed.uniform.value;\n\t\t\t\tif (newSeed !== currentSeed) {\n\t\t\t\t\tcurrentSeed = newSeed;\n\t\t\t\t\tgenerateCells(currentSeed);\n\t\t\t\t\tgenerateVoronoi();\n\t\t\t\t\tdisplacementData.fill(0);\n\t\t\t\t}\n\t\t\t});\n\t\t\tonCleanup(() => {\n\t\t\t\tvoronoiTexture.dispose();\n\t\t\t});\n\t\t}\n\t\tconst generateCellsFull = (seed) => {\n\t\t\tfor (let i = 0; i < SHARD_COUNT; i++) {\n\t\t\t\tcellData[i * 4] = seededRandom(seed + i * 2);\n\t\t\t\tcellData[i * 4 + 1] = seededRandom(seed + i * 2 + 1);\n\t\t\t\tcellData[i * 4 + 2] = seededRandom(seed + i * 3);\n\t\t\t\tcellData[i * 4 + 3] = seededRandom(seed + i * 3 + 1);\n\t\t\t}\n\t\t\tsyncCellPosUniform();\n\t\t};\n\t\tlet currentSeedForDisp = uniforms.seed.uniform.value;\n\t\tgenerateCellsFull(currentSeedForDisp);\n\t\tdisplacementData.fill(0);\n\t\tsyncDispUniform();\n\t\tlet prevX = .5, prevY = .5, lastTime = Date.now();\n\t\tonBeforeRender(({ pointer }) => {\n\t\t\tconst currentTime = Date.now();\n\t\t\tconst dt = Math.min((currentTime - lastTime) / 1e3, .016);\n\t\t\tlastTime = currentTime;\n\t\t\tconst aspect = dimensions.width / dimensions.height;\n\t\t\tconst newSeed = uniforms.seed.uniform.value;\n\t\t\tif (newSeed !== currentSeedForDisp) {\n\t\t\t\tcurrentSeedForDisp = newSeed;\n\t\t\t\tgenerateCellsFull(currentSeedForDisp);\n\t\t\t\tdisplacementData.fill(0);\n\t\t\t}\n\t\t\tconst intensity = uniforms.intensity.uniform.value;\n\t\t\tconst radius = uniforms.radius.uniform.value;\n\t\t\tconst decay = uniforms.decay.uniform.value;\n\t\t\tlet velX = dt > 0 ? (pointer.x - prevX) / dt : 0;\n\t\t\tlet velY = dt > 0 ? (pointer.y - prevY) / dt : 0;\n\t\t\tlet speed = Math.sqrt(velX * velX + velY * velY);\n\t\t\tconst maxVelocity = 5 + intensity * 2;\n\t\t\tif (speed > maxVelocity) {\n\t\t\t\tconst scale = maxVelocity / speed;\n\t\t\t\tvelX *= scale;\n\t\t\t\tvelY *= scale;\n\t\t\t\tspeed = maxVelocity;\n\t\t\t}\n\t\t\tfor (let i = 0; i < SHARD_COUNT; i++) {\n\t\t\t\tconst cellX = cellData[i * 4];\n\t\t\t\tconst cellY = cellData[i * 4 + 1];\n\t\t\t\tconst randomDirX = cellData[i * 4 + 2] - .5;\n\t\t\t\tconst randomDirY = cellData[i * 4 + 3] - .5;\n\t\t\t\tconst dx = aspect >= 1 ? (cellX - pointer.x) * aspect : cellX - pointer.x;\n\t\t\t\tconst dy = aspect >= 1 ? cellY - pointer.y : (cellY - pointer.y) / aspect;\n\t\t\t\tconst dist = Math.sqrt(dx * dx + dy * dy);\n\t\t\t\tlet currentDx = displacementData[i * 4];\n\t\t\t\tlet currentDy = displacementData[i * 4 + 1];\n\t\t\t\tconst decayTime = Math.max(.01, decay);\n\t\t\t\tconst decayFactor = Math.exp(-dt / decayTime);\n\t\t\t\tcurrentDx *= decayFactor;\n\t\t\t\tcurrentDy *= decayFactor;\n\t\t\t\tlet velocityDx = 0, velocityDy = 0;\n\t\t\t\tif (dist < radius && speed > .01) {\n\t\t\t\t\tconst influence = Math.max(0, 1 - dist / radius);\n\t\t\t\t\tconst influenceCurve = influence * influence;\n\t\t\t\t\tconst pushForce = influenceCurve * speed * intensity * dt * .5;\n\t\t\t\t\tvelocityDx = velX * pushForce;\n\t\t\t\t\tvelocityDy = velY * pushForce;\n\t\t\t\t\tconst jitterForce = influenceCurve * speed * intensity * dt * .1;\n\t\t\t\t\tvelocityDx += randomDirX * jitterForce;\n\t\t\t\t\tvelocityDy += randomDirY * jitterForce;\n\t\t\t\t}\n\t\t\t\tconst lerpFactor = Math.min(1, FRICTION * dt);\n\t\t\t\tdisplacementData[i * 4] = currentDx + velocityDx * lerpFactor;\n\t\t\t\tdisplacementData[i * 4 + 1] = currentDy + velocityDy * lerpFactor;\n\t\t\t\tdisplacementData[i * 4 + 2] = 0;\n\t\t\t\tdisplacementData[i * 4 + 3] = 0;\n\t\t\t}\n\t\t\tsyncDispUniform();\n\t\t\tprevX = pointer.x;\n\t\t\tprevY = pointer.y;\n\t\t});\n\t\tif (!childNode) return vec4(0, 0, 0, 0);\n\t\tconst childTexture = convertToTexture(childNode);\n\t\tonCleanup(() => {\n\t\t\tif (childTexture?.renderTarget?.dispose) childTexture.renderTarget.dispose();\n\t\t});\n\t\tconst voronoiSample = voronoiField.sample(screenUV);\n\t\tconst nearestI = voronoiSample.r.toInt();\n\t\tconst secondI = voronoiSample.g.toInt();\n\t\tconst nearestCellPos = vec2(cellPosUniform.element(nearestI.mul(2)), cellPosUniform.element(nearestI.mul(2).add(1)));\n\t\tconst secondCellPos = vec2(cellPosUniform.element(secondI.mul(2)), cellPosUniform.element(secondI.mul(2).add(1)));\n\t\tconst minDist1 = screenUV.sub(nearestCellPos).length();\n\t\tconst minDist2 = screenUV.sub(secondCellPos).length();\n\t\tconst displacement = vec2(dispUniform.element(nearestI.mul(2)), dispUniform.element(nearestI.mul(2).add(1)));\n\t\tconst displacementMag = displacement.length();\n\t\tconst edgeDiff = minDist2.sub(minDist1);\n\t\tconst crackThreshold = uniforms.crackWidth.uniform.mul(.005);\n\t\tconst baseCrackIntensity = float(1).sub(smoothstep(float(0), crackThreshold, edgeDiff));\n\t\tconst displacementFactor = smoothstep(float(0), float(.01), displacementMag);\n\t\tconst crackIntensity = baseCrackIntensity.mul(displacementFactor);\n\t\tconst toNearest = screenUV.sub(nearestCellPos).normalize();\n\t\tconst edgeNormal = vec2(toNearest.y.negate(), toNearest.x);\n\t\tconst displacedUV = screenUV.sub(displacement);\n\t\tconst refractionOffset = edgeNormal.mul(uniforms.refractionStrength.uniform).mul(.01);\n\t\tconst chromaticOffset = uniforms.chromaticSplit.uniform.mul(.005);\n\t\tconst rOffset = refractionOffset.add(edgeNormal.mul(chromaticOffset));\n\t\tconst gOffset = refractionOffset;\n\t\tconst bOffset = refractionOffset.sub(edgeNormal.mul(chromaticOffset));\n\t\tconst rUV = displacedUV.add(rOffset.mul(crackIntensity));\n\t\tconst gUV = displacedUV.add(gOffset.mul(crackIntensity));\n\t\tconst bUV = displacedUV.add(bOffset.mul(crackIntensity));\n\t\tconst rFinal = applyEdgeHandling(rUV, childTexture.sample(rUV), childTexture, uniforms.edges.uniform.value);\n\t\tconst gFinal = applyEdgeHandling(gUV, childTexture.sample(gUV), childTexture, uniforms.edges.uniform.value);\n\t\tconst bFinal = applyEdgeHandling(bUV, childTexture.sample(bUV), childTexture, uniforms.edges.uniform.value);\n\t\tconst refractedColor = vec4(rFinal.r, gFinal.g, bFinal.b, gFinal.a);\n\t\tconst normalColor = applyEdgeHandling(displacedUV, childTexture.sample(displacedUV), childTexture, uniforms.edges.uniform.value);\n\t\tlet shadedRGB = normalColor.rgb.mul(float(1).sub(crackIntensity)).add(refractedColor.rgb.mul(crackIntensity));\n\t\tconst displacementLength = displacement.length();\n\t\tconst tiltX = displacement.x.div(displacementLength.add(.001));\n\t\tconst tiltY = displacement.y.div(displacementLength.add(.001));\n\t\tconst lightDir3D = vec2(.3, .6).normalize();\n\t\tconst normalDot = tiltX.mul(lightDir3D.x).add(tiltY.mul(lightDir3D.y));\n\t\tconst lightingFactor = float(1).add(normalDot.mul(uniforms.shardLighting.uniform));\n\t\tconst lightingIntensity = smoothstep(float(0), float(.02), displacementLength);\n\t\tconst finalLighting = float(1).add(lightingFactor.sub(1).mul(lightingIntensity));\n\t\treturn unpremultiplyAlpha(vec4(shadedRGB.mul(finalLighting), normalColor.a));\n\t}\n};\nvar Shatter_default = componentDefinition;\nexport { componentDefinition as n, Shatter_default as t };\n","import { a as transformColor, o as transformColorSpace, t as colorSpaceOptions } from \"./transformations-CJcUeZIC.js\";\nimport { t as mixColors } from \"./colorMixing-BPpDnR5I.js\";\nimport { t as createAnimatedTime } from \"./time-DUqSFWvT.js\";\nimport { clamp, exp, mx_noise_float, screenUV, vec2, vec3, viewportSize } from \"three/tsl\";\nconst componentDefinition = {\n\tname: \"SimplexNoise\",\n\tcategory: \"Textures\",\n\tdescription: \"Organic noise with animated movement\",\n\tprops: {\n\t\tcolorA: {\n\t\t\tdefault: \"#ffffff\",\n\t\t\tdescription: \"First color\",\n\t\t\ttransform: transformColor,\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Color A\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tcolorB: {\n\t\t\tdefault: \"#000000\",\n\t\t\tdescription: \"Second color\",\n\t\t\ttransform: transformColor,\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Color B\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tcolorSpace: {\n\t\t\tdefault: \"linear\",\n\t\t\ttransform: transformColorSpace,\n\t\t\tcompileTime: true,\n\t\t\tdescription: \"Color space for color interpolation\",\n\t\t\tui: {\n\t\t\t\ttype: \"select\",\n\t\t\t\toptions: colorSpaceOptions,\n\t\t\t\tlabel: \"Color Space\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tscale: {\n\t\t\tdefault: 2,\n\t\t\tdescription: \"Pattern scale (higher = larger patterns)\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: -2,\n\t\t\t\tmax: 5,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Scale\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tbalance: {\n\t\t\tdefault: 0,\n\t\t\tdescription: \"Balance between colors (negative = more colorB, positive = more colorA)\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: -1,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Balance\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tcontrast: {\n\t\t\tdefault: 0,\n\t\t\tdescription: \"Pattern contrast (higher = sharper transitions)\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: -2,\n\t\t\t\tmax: 5,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Contrast\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tseed: {\n\t\t\tdefault: 0,\n\t\t\tdescription: \"Random seed for pattern variation\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 100,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Seed\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tspeed: {\n\t\t\tdefault: 1,\n\t\t\tdescription: \"Animation speed\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 5,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Speed\",\n\t\t\t\tgroup: \"Animation\"\n\t\t\t}\n\t\t}\n\t},\n\tfragmentNode: (params) => {\n\t\tconst { uniforms } = params;\n\t\tconst uv$1 = screenUV;\n\t\tconst aspect = viewportSize.x.div(viewportSize.y);\n\t\tconst aspectCorrectedUV = vec2(uv$1.x.mul(aspect), uv$1.y);\n\t\tconst animTime = createAnimatedTime(params, uniforms.speed);\n\t\tconst pos = aspectCorrectedUV.mul(exp(uniforms.scale.uniform)).add(uniforms.seed.uniform);\n\t\tconst noise = mx_noise_float(vec3(pos.x, pos.y, animTime.mul(.5)));\n\t\tconst contrastMultiplier = uniforms.contrast.uniform.add(1);\n\t\tconst k = clamp(noise.mul(contrastMultiplier).add(uniforms.balance.uniform).mul(.5).add(.5), 0, 1);\n\t\treturn mixColors(uniforms.colorB.uniform, uniforms.colorA.uniform, k, uniforms.colorSpace.uniform.value);\n\t}\n};\nvar SimplexNoise_default = componentDefinition;\nexport { componentDefinition as n, SimplexNoise_default as t };\n","import { a as transformColor, l as transformPosition, r as transformAngle } from \"./transformations-CJcUeZIC.js\";\nimport { t as createAnimatedTime } from \"./time-DUqSFWvT.js\";\nimport { PI, abs, cos, radians, screenUV, sin, smoothstep, vec2, vec4, viewportSize } from \"three/tsl\";\nconst componentDefinition = {\n\tname: \"SineWave\",\n\tcategory: \"Textures\",\n\tdescription: \"Animated wave with thickness and softness\",\n\tprops: {\n\t\tcolor: {\n\t\t\tdefault: \"#ffffff\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"The color of the sine wave\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Color\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tamplitude: {\n\t\t\tdefault: .15,\n\t\t\tdescription: \"The height/amplitude of the sine wave\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Amplitude\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tfrequency: {\n\t\t\tdefault: 1,\n\t\t\tdescription: \"The frequency/number of wave cycles\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: .1,\n\t\t\t\tmax: 20,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Frequency\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tspeed: {\n\t\t\tdefault: 1,\n\t\t\tdescription: \"The animation speed of the wave\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: -5,\n\t\t\t\tmax: 5,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Speed\",\n\t\t\t\tgroup: \"Animation\"\n\t\t\t}\n\t\t},\n\t\tangle: {\n\t\t\tdefault: 0,\n\t\t\ttransform: transformAngle,\n\t\t\tdescription: \"The rotation angle of the wave (in degrees)\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 360,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Angle\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tposition: {\n\t\t\tdefault: {\n\t\t\t\tx: .5,\n\t\t\t\ty: .5\n\t\t\t},\n\t\t\ttransform: transformPosition,\n\t\t\tdescription: \"The center position of the wave\",\n\t\t\tui: {\n\t\t\t\ttype: \"position\",\n\t\t\t\tlabel: \"Position\",\n\t\t\t\tgroup: \"Position\"\n\t\t\t}\n\t\t},\n\t\tthickness: {\n\t\t\tdefault: .2,\n\t\t\tdescription: \"The thickness of the wave line\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 2,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Thickness\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tsoftness: {\n\t\t\tdefault: .4,\n\t\t\tdescription: \"Edge softness of the wave line\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Softness\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t}\n\t},\n\tfragmentNode: (params) => {\n\t\tconst { uniforms } = params;\n\t\tconst uv$1 = screenUV;\n\t\tconst aspect = viewportSize.x.div(viewportSize.y);\n\t\tconst aspectCorrectedUV = vec2(uv$1.x.mul(aspect), uv$1.y);\n\t\tconst centerPos = vec2(uniforms.position.uniform.x.mul(aspect), uniforms.position.uniform.y.oneMinus());\n\t\tconst centeredUV = aspectCorrectedUV.sub(centerPos);\n\t\tconst angleRad = radians(uniforms.angle.uniform);\n\t\tconst cosAngle = cos(angleRad);\n\t\tconst sinAngle = sin(angleRad);\n\t\tconst rotatedX = centeredUV.x.mul(cosAngle).sub(centeredUV.y.mul(sinAngle));\n\t\tconst rotatedY = centeredUV.x.mul(sinAngle).add(centeredUV.y.mul(cosAngle));\n\t\tconst animatedTime = createAnimatedTime(params, uniforms.speed);\n\t\tconst sineWave = sin(rotatedX.mul(uniforms.frequency.uniform).mul(PI.mul(2)).add(animatedTime)).mul(uniforms.amplitude.uniform);\n\t\tconst distanceFromWave = abs(rotatedY.sub(sineWave));\n\t\tconst halfThickness = uniforms.thickness.uniform.mul(.5);\n\t\tconst halfSoftness = uniforms.softness.uniform.mul(.5);\n\t\tconst waveMask = smoothstep(halfThickness.sub(halfSoftness), halfThickness.add(halfSoftness), distanceFromWave).oneMinus();\n\t\treturn vec4(uniforms.color.uniform.rgb, uniforms.color.uniform.a.mul(waveMask));\n\t}\n};\nvar SineWave_default = componentDefinition;\nexport { componentDefinition as n, SineWave_default as t };\n","import { a as transformColor, l as transformPosition, o as transformColorSpace, t as colorSpaceOptions } from \"./transformations-CJcUeZIC.js\";\nimport { t as mixColors } from \"./colorMixing-BPpDnR5I.js\";\nimport { StorageTexture } from \"three/webgpu\";\nimport { DataTexture, FloatType, LinearFilter as LinearFilter$1, RGBAFormat } from \"three\";\nimport { Fn, attributeArray, float, floor, instanceIndex, int, mix, screenUV, storageTexture, texture, textureStore, uint, uniform, uvec2, vec2, vec4 } from \"three/tsl\";\nvar GRID_GPU = 256;\nvar GRID_CPU = 56;\nvar JACOBI_ITERS = 20;\nvar PRESSURE_DISSIPATION = .8;\nvar VELOCITY_DISSIPATION = .2;\nconst componentDefinition = {\n\tname: \"Smoke\",\n\tcategory: \"Interactive\",\n\tdescription: \"Realistic fluid smoke simulation with vorticity dynamics\",\n\tusesPointer: true,\n\tprops: {\n\t\tcolorA: {\n\t\t\tdefault: \"#fc83f9\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Color of fresh smoke\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Start Color\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tcolorB: {\n\t\t\tdefault: \"#c21c79\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Color smoke transitions to as it ages\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"End Color\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\temitFrom: {\n\t\t\tdefault: {\n\t\t\t\tx: .5,\n\t\t\t\ty: 1\n\t\t\t},\n\t\t\ttransform: transformPosition,\n\t\t\tdescription: \"The emission source point\",\n\t\t\tui: {\n\t\t\t\ttype: \"position\",\n\t\t\t\tlabel: \"Emit From\",\n\t\t\t\tgroup: \"Emission\"\n\t\t\t}\n\t\t},\n\t\tdirection: {\n\t\t\tdefault: 0,\n\t\t\tdescription: \"Emission direction (0 = up, 90 = right, 180 = down, 270 = left)\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 360,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Direction\",\n\t\t\t\tgroup: \"Emission\"\n\t\t\t}\n\t\t},\n\t\tspeed: {\n\t\t\tdefault: 20,\n\t\t\tdescription: \"Emission velocity strength\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: .1,\n\t\t\t\tmax: 50,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Speed\",\n\t\t\t\tgroup: \"Emission\"\n\t\t\t}\n\t\t},\n\t\tspread: {\n\t\t\tdefault: 60,\n\t\t\tdescription: \"Emission cone angle in degrees\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 180,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Spread\",\n\t\t\t\tgroup: \"Emission\"\n\t\t\t}\n\t\t},\n\t\temitRadius: {\n\t\t\tdefault: .08,\n\t\t\tdescription: \"Size of the emission area\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: .01,\n\t\t\t\tmax: .3,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Emit Size\",\n\t\t\t\tgroup: \"Emission\"\n\t\t\t}\n\t\t},\n\t\tintensity: {\n\t\t\tdefault: 1,\n\t\t\tdescription: \"Smoke emission density\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: .1,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .05,\n\t\t\t\tlabel: \"Intensity\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tdissipation: {\n\t\t\tdefault: .2,\n\t\t\tdescription: \"How fast smoke fades over time\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: .1,\n\t\t\t\tmax: 3,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Dissipation\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tdetail: {\n\t\t\tdefault: 25,\n\t\t\tdescription: \"Fine-scale swirling detail\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 50,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Detail\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tgravity: {\n\t\t\tdefault: .5,\n\t\t\tdescription: \"Downward gravitational pull on smoke\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: -2,\n\t\t\t\tmax: 2,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Gravity\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tcolorDecay: {\n\t\t\tdefault: .4,\n\t\t\tdescription: \"How quickly smoke shifts from Color A to Color B\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 3,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Color Decay\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tmouseInfluence: {\n\t\t\tdefault: .1,\n\t\t\tdescription: \"Strength of cursor influence\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 2,\n\t\t\t\tstep: .05,\n\t\t\t\tlabel: \"Cursor Influence\",\n\t\t\t\tgroup: \"Interaction\"\n\t\t\t}\n\t\t},\n\t\tmouseRadius: {\n\t\t\tdefault: .1,\n\t\t\tdescription: \"Radius of cursor influence area\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: .02,\n\t\t\t\tmax: .5,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Cursor Radius\",\n\t\t\t\tgroup: \"Interaction\"\n\t\t\t}\n\t\t},\n\t\tcolorSpace: {\n\t\t\tdefault: \"linear\",\n\t\t\ttransform: transformColorSpace,\n\t\t\tcompileTime: true,\n\t\t\tdescription: \"Color space for color interpolation\",\n\t\t\tui: {\n\t\t\t\ttype: \"select\",\n\t\t\t\toptions: colorSpaceOptions,\n\t\t\t\tlabel: \"Color Space\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t}\n\t},\n\tcomputeNode: ({ uniforms, onCleanup, renderer }) => {\n\t\tconst N = GRID_GPU;\n\t\tconst gs = uint(N);\n\t\tconst Ni = int(N);\n\t\tconst Nm1 = int(N - 1);\n\t\tconst count = N * N;\n\t\tconst nidx = (ii, ji, di, dj) => ii.add(int(di)).clamp(int(0), Nm1).mul(Ni).add(ji.add(int(dj)).clamp(int(0), Nm1));\n\t\tconst velA = attributeArray(count, \"vec4\");\n\t\tconst velB = attributeArray(count, \"vec4\");\n\t\tconst densA = attributeArray(count, \"vec4\");\n\t\tconst densB = attributeArray(count, \"vec4\");\n\t\tconst pressDivBuf = attributeArray(count, \"vec4\");\n\t\tconst outTex = new StorageTexture(N, N);\n\t\toutTex.type = FloatType;\n\t\tconst outTexNode = storageTexture(outTex);\n\t\tonCleanup(() => {\n\t\t\toutTex.dispose();\n\t\t});\n\t\tconst dtU = uniform(.016);\n\t\tconst emitXU = uniform(128);\n\t\tconst emitYU = uniform(256);\n\t\tconst emitVelXU = uniform(0);\n\t\tconst emitVelYU = uniform(-50);\n\t\tconst perpDirXU = uniform(1);\n\t\tconst perpDirYU = uniform(0);\n\t\tconst spreadFactorU = uniform(.5);\n\t\tconst emitRadU = uniform(15);\n\t\tconst emitIntensityU = uniform(.7);\n\t\tconst densDissipU = uniform(1);\n\t\tconst curlStrengthU = uniform(30);\n\t\tconst gravityU = uniform(.5);\n\t\tconst cursorXU = uniform(128);\n\t\tconst cursorYU = uniform(128);\n\t\tconst cursorVelXU = uniform(0);\n\t\tconst cursorVelYU = uniform(0);\n\t\tconst mouseActiveU = uniform(0);\n\t\tconst mouseRadSqU = uniform(900);\n\t\tconst colorDecayU = uniform(1);\n\t\tconst splatPass = Fn(() => {\n\t\t\tconst idx = instanceIndex;\n\t\t\tconst j = idx.mod(gs);\n\t\t\tconst i = idx.div(gs);\n\t\t\tconst cellX = j.toFloat().add(float(.5));\n\t\t\tconst cellY = i.toFloat().add(float(.5));\n\t\t\tconst dx = cellX.sub(emitXU);\n\t\t\tconst dy = cellY.sub(emitYU);\n\t\t\tconst distSq = dx.mul(dx).add(dy.mul(dy));\n\t\t\tconst radSq = emitRadU.mul(emitRadU).max(float(1));\n\t\t\tconst influence = distSq.negate().div(radSq).exp();\n\t\t\tconst cell = densA.element(idx);\n\t\t\tconst oldDens = cell.x;\n\t\t\tconst addDens = emitIntensityU.mul(influence).mul(dtU).mul(float(8));\n\t\t\tconst newDens = oldDens.add(addDens).min(float(1));\n\t\t\tconst rejuvenate = addDens.div(newDens.max(float(.001)));\n\t\t\tdensA.element(idx).assign(vec4(newDens, cell.y.mul(float(1).sub(rejuvenate.min(float(1)))), float(0), float(0)));\n\t\t\tconst vel = velA.element(idx);\n\t\t\tconst perpOff = dx.mul(perpDirXU).add(dy.mul(perpDirYU)).div(emitRadU.max(float(1)));\n\t\t\tconst vmSq = emitVelXU.mul(emitVelXU).add(emitVelYU.mul(emitVelYU)).max(float(1));\n\t\t\tconst tvx = emitVelXU.add(perpDirXU.mul(perpOff).mul(spreadFactorU).mul(vmSq.sqrt()));\n\t\t\tconst tvy = emitVelYU.add(perpDirYU.mul(perpOff).mul(spreadFactorU).mul(vmSq.sqrt()));\n\t\t\tconst br = influence.mul(dtU).mul(float(3)).min(float(1));\n\t\t\tconst gravForce = gravityU.mul(oldDens).mul(dtU).mul(float(N * .08));\n\t\t\tconst cursorDX = cellX.sub(cursorXU);\n\t\t\tconst cursorDY = cellY.sub(cursorYU);\n\t\t\tconst cursorInf = cursorDX.mul(cursorDX).add(cursorDY.mul(cursorDY)).negate().div(mouseRadSqU.max(float(1))).exp().mul(mouseActiveU);\n\t\t\tvelA.element(idx).assign(vec4(mix(vel.x, tvx, br).add(cursorVelXU.mul(cursorInf)), mix(vel.y, tvy, br).add(gravForce).add(cursorVelYU.mul(cursorInf)), vel.z, float(0)));\n\t\t})().compute(count, [256]);\n\t\tconst curlPass = Fn(() => {\n\t\t\tconst idx = instanceIndex;\n\t\t\tconst ji = idx.mod(gs).toInt();\n\t\t\tconst ii = idx.div(gs).toInt();\n\t\t\tconst vL = velA.element(nidx(ii, ji, 0, -1));\n\t\t\tconst vR = velA.element(nidx(ii, ji, 0, 1));\n\t\t\tconst vU = velA.element(nidx(ii, ji, -1, 0));\n\t\t\tconst vD = velA.element(nidx(ii, ji, 1, 0));\n\t\t\tconst curl = vR.y.sub(vL.y).sub(vD.x.sub(vU.x)).mul(float(.5));\n\t\t\tconst vel = velA.element(idx);\n\t\t\tvelA.element(idx).assign(vec4(vel.x, vel.y, curl, float(0)));\n\t\t})().compute(count, [256]);\n\t\tconst vorticityPass = Fn(() => {\n\t\t\tconst idx = instanceIndex;\n\t\t\tconst ji = idx.mod(gs).toInt();\n\t\t\tconst ii = idx.div(gs).toInt();\n\t\t\tconst cL = velA.element(nidx(ii, ji, 0, -1)).z.abs();\n\t\t\tconst cR = velA.element(nidx(ii, ji, 0, 1)).z.abs();\n\t\t\tconst cU = velA.element(nidx(ii, ji, -1, 0)).z.abs();\n\t\t\tconst cD = velA.element(nidx(ii, ji, 1, 0)).z.abs();\n\t\t\tconst cc = velA.element(idx).z;\n\t\t\tconst gx = cR.sub(cL).mul(float(.5));\n\t\t\tconst gy = cD.sub(cU).mul(float(.5));\n\t\t\tconst gl = gx.mul(gx).add(gy.mul(gy)).sqrt().max(float(1e-5));\n\t\t\tconst fx = gy.div(gl).mul(cc).mul(curlStrengthU).mul(dtU);\n\t\t\tconst fy = gx.div(gl).negate().mul(cc).mul(curlStrengthU).mul(dtU);\n\t\t\tconst vel = velA.element(idx);\n\t\t\tvelA.element(idx).assign(vec4(vel.x.add(fx), vel.y.add(fy), vel.z, float(0)));\n\t\t})().compute(count, [256]);\n\t\tconst divergencePass = Fn(() => {\n\t\t\tconst idx = instanceIndex;\n\t\t\tconst ji = idx.mod(gs).toInt();\n\t\t\tconst ii = idx.div(gs).toInt();\n\t\t\tconst jf = ji.toFloat();\n\t\t\tconst iF = ii.toFloat();\n\t\t\tconst selfVel = velA.element(idx);\n\t\t\tconst normalL = velA.element(nidx(ii, ji, 0, -1)).x;\n\t\t\tconst normalR = velA.element(nidx(ii, ji, 0, 1)).x;\n\t\t\tconst normalU = velA.element(nidx(ii, ji, -1, 0)).y;\n\t\t\tconst normalD = velA.element(nidx(ii, ji, 1, 0)).y;\n\t\t\tconst L = jf.lessThan(float(.5)).select(selfVel.x.negate(), normalL);\n\t\t\tconst R = jf.greaterThan(float(N - 1.5)).select(selfVel.x.negate(), normalR);\n\t\t\tconst T = iF.lessThan(float(.5)).select(selfVel.y.negate(), normalU);\n\t\t\tconst B = iF.greaterThan(float(N - 1.5)).select(selfVel.y.negate(), normalD);\n\t\t\tconst div$1 = R.sub(L).add(B.sub(T)).mul(float(.5));\n\t\t\tconst oldP = pressDivBuf.element(idx).x.mul(float(PRESSURE_DISSIPATION));\n\t\t\tpressDivBuf.element(idx).assign(vec4(oldP, div$1, float(0), float(0)));\n\t\t})().compute(count, [256]);\n\t\tconst jacobiPass = Fn(() => {\n\t\t\tconst idx = instanceIndex;\n\t\t\tconst ji = idx.mod(gs).toInt();\n\t\t\tconst ii = idx.div(gs).toInt();\n\t\t\tconst pL = pressDivBuf.element(nidx(ii, ji, 0, -1)).x;\n\t\t\tconst pR = pressDivBuf.element(nidx(ii, ji, 0, 1)).x;\n\t\t\tconst pU = pressDivBuf.element(nidx(ii, ji, -1, 0)).x;\n\t\t\tconst pD = pressDivBuf.element(nidx(ii, ji, 1, 0)).x;\n\t\t\tconst div$1 = pressDivBuf.element(idx).y;\n\t\t\tpressDivBuf.element(idx).assign(vec4(pL.add(pR).add(pU).add(pD).sub(div$1).mul(float(.25)), div$1, float(0), float(0)));\n\t\t})().compute(count, [256]);\n\t\tconst gradSubtractPass = Fn(() => {\n\t\t\tconst idx = instanceIndex;\n\t\t\tconst ji = idx.mod(gs).toInt();\n\t\t\tconst ii = idx.div(gs).toInt();\n\t\t\tconst pL = pressDivBuf.element(nidx(ii, ji, 0, -1)).x;\n\t\t\tconst pR = pressDivBuf.element(nidx(ii, ji, 0, 1)).x;\n\t\t\tconst pU = pressDivBuf.element(nidx(ii, ji, -1, 0)).x;\n\t\t\tconst pD = pressDivBuf.element(nidx(ii, ji, 1, 0)).x;\n\t\t\tconst vel = velA.element(idx);\n\t\t\tvelA.element(idx).assign(vec4(vel.x.sub(pR.sub(pL).mul(float(.5))), vel.y.sub(pD.sub(pU).mul(float(.5))), vel.z, float(0)));\n\t\t})().compute(count, [256]);\n\t\tconst advectVelPass = Fn(() => {\n\t\t\tconst idx = instanceIndex;\n\t\t\tconst j = idx.mod(gs);\n\t\t\tconst i = idx.div(gs);\n\t\t\tconst vel = velA.element(idx);\n\t\t\tconst srcX = j.toFloat().sub(vel.x.mul(dtU)).clamp(float(0), float(N - 1));\n\t\t\tconst srcY = i.toFloat().sub(vel.y.mul(dtU)).clamp(float(0), float(N - 1));\n\t\t\tconst x0 = floor(srcX).clamp(float(0), float(N - 2));\n\t\t\tconst y0 = floor(srcY).clamp(float(0), float(N - 2));\n\t\t\tconst sx = srcX.sub(x0);\n\t\t\tconst sy = srcY.sub(y0);\n\t\t\tconst ix0 = x0.toInt();\n\t\t\tconst iy0 = y0.toInt();\n\t\t\tconst v00 = velA.element(iy0.mul(Ni).add(ix0));\n\t\t\tconst v10 = velA.element(iy0.mul(Ni).add(ix0.add(int(1))));\n\t\t\tconst v01 = velA.element(iy0.add(int(1)).mul(Ni).add(ix0));\n\t\t\tconst v11 = velA.element(iy0.add(int(1)).mul(Ni).add(ix0.add(int(1))));\n\t\t\tconst decay = float(1).add(float(VELOCITY_DISSIPATION).mul(dtU));\n\t\t\tvelB.element(idx).assign(vec4(mix(mix(v00.x, v10.x, sx), mix(v01.x, v11.x, sx), sy).div(decay), mix(mix(v00.y, v10.y, sx), mix(v01.y, v11.y, sx), sy).div(decay), float(0), float(0)));\n\t\t})().compute(count, [256]);\n\t\tconst copyVelPass = Fn(() => {\n\t\t\tconst v = velB.element(instanceIndex);\n\t\t\tvelA.element(instanceIndex).assign(vec4(v.x, v.y, float(0), float(0)));\n\t\t})().compute(count, [256]);\n\t\tconst advectDensPass = Fn(() => {\n\t\t\tconst idx = instanceIndex;\n\t\t\tconst j = idx.mod(gs);\n\t\t\tconst i = idx.div(gs);\n\t\t\tconst vel = velA.element(idx);\n\t\t\tconst srcX = j.toFloat().sub(vel.x.mul(dtU)).clamp(float(0), float(N - 1));\n\t\t\tconst srcY = i.toFloat().sub(vel.y.mul(dtU)).clamp(float(0), float(N - 1));\n\t\t\tconst x0 = floor(srcX).clamp(float(0), float(N - 2));\n\t\t\tconst y0 = floor(srcY).clamp(float(0), float(N - 2));\n\t\t\tconst sx = srcX.sub(x0);\n\t\t\tconst sy = srcY.sub(y0);\n\t\t\tconst ix0 = x0.toInt();\n\t\t\tconst iy0 = y0.toInt();\n\t\t\tconst d00 = densA.element(iy0.mul(Ni).add(ix0));\n\t\t\tconst d10 = densA.element(iy0.mul(Ni).add(ix0.add(int(1))));\n\t\t\tconst d01 = densA.element(iy0.add(int(1)).mul(Ni).add(ix0));\n\t\t\tconst d11 = densA.element(iy0.add(int(1)).mul(Ni).add(ix0.add(int(1))));\n\t\t\tconst dens = mix(mix(d00.x, d10.x, sx), mix(d01.x, d11.x, sx), sy);\n\t\t\tconst age = mix(mix(d00.y, d10.y, sx), mix(d01.y, d11.y, sx), sy);\n\t\t\tconst decay = float(1).add(densDissipU.mul(dtU));\n\t\t\tdensB.element(idx).assign(vec4(dens.div(decay).max(float(0)), age.add(dtU.mul(float(.4)).mul(colorDecayU)).min(float(1)), float(0), float(0)));\n\t\t})().compute(count, [256]);\n\t\tconst copyDensPass = Fn(() => {\n\t\t\tconst d = densB.element(instanceIndex);\n\t\t\tdensA.element(instanceIndex).assign(vec4(d.x, d.y, float(0), float(0)));\n\t\t})().compute(count, [256]);\n\t\tconst outputPass = Fn(() => {\n\t\t\tconst idx = instanceIndex;\n\t\t\tconst j = idx.mod(gs);\n\t\t\tconst i = idx.div(gs);\n\t\t\tconst d = densA.element(idx);\n\t\t\ttextureStore(outTexNode, uvec2(j, i), vec4(d.x, d.y, float(0), float(0))).toWriteOnly();\n\t\t})().compute(count, [256]);\n\t\tlet lastTime = Date.now();\n\t\tlet prevMx = .5, prevMy = .5;\n\t\treturn {\n\t\t\toutputs: { smokeTexture: outTex },\n\t\t\tgetComputeNodes: (params) => {\n\t\t\t\tconst now = Date.now();\n\t\t\t\tconst dt = Math.min((now - lastTime) / 1e3, .033);\n\t\t\t\tlastTime = now;\n\t\t\t\tif (dt < .001) return null;\n\t\t\t\tconst getNum = (key, fallback) => {\n\t\t\t\t\tconst def = uniforms[key];\n\t\t\t\t\tif (!def) return fallback;\n\t\t\t\t\tif (typeof def.getCpuValue === \"function\") {\n\t\t\t\t\t\tconst v$1 = def.getCpuValue();\n\t\t\t\t\t\treturn typeof v$1 === \"number\" ? v$1 : fallback;\n\t\t\t\t\t}\n\t\t\t\t\tconst v = def.uniform?.value;\n\t\t\t\t\treturn typeof v === \"number\" ? v : fallback;\n\t\t\t\t};\n\t\t\t\tconst speed = getNum(\"speed\", 3);\n\t\t\t\tconst dirRad = getNum(\"direction\", 0) * Math.PI / 180;\n\t\t\t\tconst spreadHalf = Math.min(89 * Math.PI / 180, getNum(\"spread\", 45) * Math.PI / 360);\n\t\t\t\tconst emitPos = uniforms.emitFrom.uniform.value;\n\t\t\t\tconst epx = typeof emitPos === \"object\" ? emitPos.x ?? .5 : .5;\n\t\t\t\tconst epy = typeof emitPos === \"object\" ? emitPos.y ?? 0 : 0;\n\t\t\t\tdtU.value = dt;\n\t\t\t\temitXU.value = epx * N;\n\t\t\t\temitYU.value = (1 - epy) * N;\n\t\t\t\tconst velMag = speed * N * .15;\n\t\t\t\temitVelXU.value = Math.sin(dirRad) * velMag;\n\t\t\t\temitVelYU.value = -Math.cos(dirRad) * velMag;\n\t\t\t\tperpDirXU.value = Math.cos(dirRad);\n\t\t\t\tperpDirYU.value = Math.sin(dirRad);\n\t\t\t\tspreadFactorU.value = Math.tan(spreadHalf);\n\t\t\t\temitRadU.value = getNum(\"emitRadius\", .06) * N;\n\t\t\t\temitIntensityU.value = getNum(\"intensity\", .7);\n\t\t\t\tdensDissipU.value = getNum(\"dissipation\", 1);\n\t\t\t\tcurlStrengthU.value = getNum(\"detail\", 30);\n\t\t\t\tgravityU.value = getNum(\"gravity\", .5);\n\t\t\t\tcolorDecayU.value = getNum(\"colorDecay\", 1);\n\t\t\t\tconst mouseInf = getNum(\"mouseInfluence\", .5);\n\t\t\t\tconst mouseRad = getNum(\"mouseRadius\", .12);\n\t\t\t\tconst mx = params?.pointer?.x ?? prevMx;\n\t\t\t\tconst my = params?.pointer?.y ?? prevMy;\n\t\t\t\tconst mdx = mx - prevMx;\n\t\t\t\tconst mdy = my - prevMy;\n\t\t\t\tprevMx = mx;\n\t\t\t\tprevMy = my;\n\t\t\t\tconst cursorSpeed = Math.sqrt(mdx * mdx + mdy * mdy);\n\t\t\t\tconst mouseRadGrid = mouseRad * N;\n\t\t\t\tmouseRadSqU.value = mouseRadGrid * mouseRadGrid;\n\t\t\t\tif (cursorSpeed > 5e-4 && mouseInf > 0) {\n\t\t\t\t\tcursorXU.value = mx * N;\n\t\t\t\t\tcursorYU.value = my * N;\n\t\t\t\t\tcursorVelXU.value = mdx * N * 15 * mouseInf;\n\t\t\t\t\tcursorVelYU.value = mdy * N * 15 * mouseInf;\n\t\t\t\t\tmouseActiveU.value = 1;\n\t\t\t\t} else mouseActiveU.value = 0;\n\t\t\t\trenderer.compute(splatPass);\n\t\t\t\trenderer.compute(curlPass);\n\t\t\t\trenderer.compute(vorticityPass);\n\t\t\t\trenderer.compute(divergencePass);\n\t\t\t\tfor (let iter = 0; iter < JACOBI_ITERS; iter++) renderer.compute(jacobiPass);\n\t\t\t\trenderer.compute(gradSubtractPass);\n\t\t\t\trenderer.compute(advectVelPass);\n\t\t\t\trenderer.compute(copyVelPass);\n\t\t\t\trenderer.compute(advectDensPass);\n\t\t\t\trenderer.compute(copyDensPass);\n\t\t\t\treturn [outputPass];\n\t\t\t}\n\t\t};\n\t},\n\tfragmentNode: ({ uniforms, onBeforeRender, onCleanup, computeOutputs }) => {\n\t\tlet smokeField;\n\t\tif (computeOutputs?.smokeTexture) smokeField = texture(computeOutputs.smokeTexture);\n\t\telse {\n\t\t\tconst cpuN = GRID_CPU;\n\t\t\tconst cells = cpuN * cpuN;\n\t\t\tconst vx = new Float32Array(cells);\n\t\t\tconst vy = new Float32Array(cells);\n\t\t\tconst vtx = new Float32Array(cells);\n\t\t\tconst vty = new Float32Array(cells);\n\t\t\tconst den = new Float32Array(cells);\n\t\t\tconst ag = new Float32Array(cells);\n\t\t\tconst dtmp = new Float32Array(cells);\n\t\t\tconst atmp = new Float32Array(cells);\n\t\t\tconst pres = new Float32Array(cells);\n\t\t\tconst divg = new Float32Array(cells);\n\t\t\tconst crl = new Float32Array(cells);\n\t\t\tconst texData = new Float32Array(cells * 4);\n\t\t\tconst smokeTex = new DataTexture(texData, cpuN, cpuN, RGBAFormat, FloatType);\n\t\t\tsmokeTex.magFilter = LinearFilter$1;\n\t\t\tsmokeTex.minFilter = LinearFilter$1;\n\t\t\tsmokeTex.needsUpdate = true;\n\t\t\tsmokeField = texture(smokeTex);\n\t\t\tconst cpuGetNum = (key, fallback) => {\n\t\t\t\tconst def = uniforms[key];\n\t\t\t\tif (!def) return fallback;\n\t\t\t\tif (typeof def.getCpuValue === \"function\") {\n\t\t\t\t\tconst v$1 = def.getCpuValue();\n\t\t\t\t\treturn typeof v$1 === \"number\" ? v$1 : fallback;\n\t\t\t\t}\n\t\t\t\tconst v = def.uniform?.value;\n\t\t\t\treturn typeof v === \"number\" ? v : fallback;\n\t\t\t};\n\t\t\tlet lt = Date.now();\n\t\t\tlet cpuPrevMx = .5, cpuPrevMy = .5;\n\t\t\tconst bl = (f, fx, fy) => {\n\t\t\t\tconst sx = Math.max(0, Math.min(cpuN - 1, fx));\n\t\t\t\tconst sy = Math.max(0, Math.min(cpuN - 1, fy));\n\t\t\t\tconst x0 = Math.max(0, Math.min(cpuN - 2, Math.floor(sx)));\n\t\t\t\tconst y0 = Math.max(0, Math.min(cpuN - 2, Math.floor(sy)));\n\t\t\t\tconst tx = sx - x0, ty = sy - y0;\n\t\t\t\tconst i00 = y0 * cpuN + x0;\n\t\t\t\treturn (1 - tx) * (1 - ty) * f[i00] + tx * (1 - ty) * f[i00 + 1] + (1 - tx) * ty * f[i00 + cpuN] + tx * ty * f[i00 + cpuN + 1];\n\t\t\t};\n\t\t\tconst ni = (i, j, di, dj) => Math.max(0, Math.min(cpuN - 1, i + di)) * cpuN + Math.max(0, Math.min(cpuN - 1, j + dj));\n\t\t\tonBeforeRender(({ pointer }) => {\n\t\t\t\tconst now = Date.now();\n\t\t\t\tconst dt = Math.min((now - lt) / 1e3, .033);\n\t\t\t\tlt = now;\n\t\t\t\tif (dt < .001) return;\n\t\t\t\tconst sp = cpuGetNum(\"speed\", 3);\n\t\t\t\tconst dr = uniforms.direction.uniform.value * Math.PI / 180;\n\t\t\t\tconst sh = Math.min(89 * Math.PI / 180, uniforms.spread.uniform.value * Math.PI / 360);\n\t\t\t\tconst ep = uniforms.emitFrom.uniform.value;\n\t\t\t\tconst ex = (typeof ep === \"object\" ? ep.x ?? .5 : .5) * cpuN;\n\t\t\t\tconst ey = (1 - (typeof ep === \"object\" ? ep.y ?? 0 : 0)) * cpuN;\n\t\t\t\tconst vm = sp * cpuN * .15;\n\t\t\t\tconst evx = Math.sin(dr) * vm, evy = -Math.cos(dr) * vm;\n\t\t\t\tconst px = Math.cos(dr), py = Math.sin(dr), sf = Math.tan(sh);\n\t\t\t\tconst er = uniforms.emitRadius.uniform.value * cpuN;\n\t\t\t\tconst ei = uniforms.intensity.uniform.value;\n\t\t\t\tconst cv = cpuGetNum(\"detail\", 30);\n\t\t\t\tconst bv = cpuGetNum(\"gravity\", .5);\n\t\t\t\tconst cd = cpuGetNum(\"colorDecay\", 1);\n\t\t\t\tconst dd = cpuGetNum(\"dissipation\", .2);\n\t\t\t\tconst mi = uniforms.mouseInfluence.uniform.value;\n\t\t\t\tconst mr = uniforms.mouseRadius.uniform.value * cpuN;\n\t\t\t\tconst mx = pointer?.x ?? cpuPrevMx;\n\t\t\t\tconst my = pointer?.y ?? cpuPrevMy;\n\t\t\t\tconst mdx = mx - cpuPrevMx, mdy = my - cpuPrevMy;\n\t\t\t\tcpuPrevMx = mx;\n\t\t\t\tcpuPrevMy = my;\n\t\t\t\tconst cActive = Math.sqrt(mdx * mdx + mdy * mdy) > 5e-4 && mi > 0;\n\t\t\t\tconst cvx = cActive ? mdx * cpuN * 15 * mi : 0;\n\t\t\t\tconst cvy = cActive ? mdy * cpuN * 15 * mi : 0;\n\t\t\t\tconst cxGrid = mx * cpuN, cyGrid = my * cpuN;\n\t\t\t\tfor (let i = 0; i < cpuN; i++) for (let j = 0; j < cpuN; j++) {\n\t\t\t\t\tconst idx = i * cpuN + j;\n\t\t\t\t\tconst dx = j + .5 - ex, dy = i + .5 - ey;\n\t\t\t\t\tconst inf = Math.exp(-(dx * dx + dy * dy) / Math.max(1, er * er));\n\t\t\t\t\tconst od = den[idx], ad = ei * inf * dt * 8;\n\t\t\t\t\tconst nd = Math.min(1, od + ad);\n\t\t\t\t\tag[idx] *= 1 - Math.min(1, ad / Math.max(.001, nd));\n\t\t\t\t\tden[idx] = nd;\n\t\t\t\t\tconst po = (dx * px + dy * py) / Math.max(1, er);\n\t\t\t\t\tconst vms = Math.sqrt(evx * evx + evy * evy);\n\t\t\t\t\tconst tvx2 = evx + px * po * sf * vms, tvy2 = evy + py * po * sf * vms;\n\t\t\t\t\tconst br = Math.min(1, inf * dt * 3);\n\t\t\t\t\tconst cdx = j + .5 - cxGrid, cdy = i + .5 - cyGrid;\n\t\t\t\t\tconst cinf = cActive ? Math.exp(-(cdx * cdx + cdy * cdy) / Math.max(1, mr * mr)) : 0;\n\t\t\t\t\tvx[idx] = vx[idx] * (1 - br) + tvx2 * br + cvx * cinf;\n\t\t\t\t\tvy[idx] = vy[idx] * (1 - br) + tvy2 * br + bv * od * dt * cpuN * .08 + cvy * cinf;\n\t\t\t\t}\n\t\t\t\tif (cv > 0) {\n\t\t\t\t\tfor (let i = 0; i < cpuN; i++) for (let j = 0; j < cpuN; j++) crl[i * cpuN + j] = .5 * (vy[ni(i, j, 0, 1)] - vy[ni(i, j, 0, -1)] - (vx[ni(i, j, 1, 0)] - vx[ni(i, j, -1, 0)]));\n\t\t\t\t\tfor (let i = 0; i < cpuN; i++) for (let j = 0; j < cpuN; j++) {\n\t\t\t\t\t\tconst idx = i * cpuN + j;\n\t\t\t\t\t\tconst gx = .5 * (Math.abs(crl[ni(i, j, 0, 1)]) - Math.abs(crl[ni(i, j, 0, -1)]));\n\t\t\t\t\t\tconst gy = .5 * (Math.abs(crl[ni(i, j, 1, 0)]) - Math.abs(crl[ni(i, j, -1, 0)]));\n\t\t\t\t\t\tconst gl = Math.max(1e-5, Math.sqrt(gx * gx + gy * gy));\n\t\t\t\t\t\tvx[idx] += gy / gl * crl[idx] * cv * dt;\n\t\t\t\t\t\tvy[idx] += -(gx / gl) * crl[idx] * cv * dt;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfor (let i = 0; i < cpuN; i++) for (let j = 0; j < cpuN; j++) {\n\t\t\t\t\tconst idx = i * cpuN + j;\n\t\t\t\t\tconst L = j === 0 ? -vx[idx] : vx[ni(i, j, 0, -1)];\n\t\t\t\t\tconst R = j === cpuN - 1 ? -vx[idx] : vx[ni(i, j, 0, 1)];\n\t\t\t\t\tconst T = i === 0 ? -vy[idx] : vy[ni(i, j, -1, 0)];\n\t\t\t\t\tconst B = i === cpuN - 1 ? -vy[idx] : vy[ni(i, j, 1, 0)];\n\t\t\t\t\tdivg[idx] = .5 * (R - L + B - T);\n\t\t\t\t\tpres[idx] *= PRESSURE_DISSIPATION;\n\t\t\t\t}\n\t\t\t\tfor (let it = 0; it < 6; it++) for (let i = 0; i < cpuN; i++) for (let j = 0; j < cpuN; j++) {\n\t\t\t\t\tconst idx = i * cpuN + j;\n\t\t\t\t\tpres[idx] = .25 * (pres[ni(i, j, 0, -1)] + pres[ni(i, j, 0, 1)] + pres[ni(i, j, -1, 0)] + pres[ni(i, j, 1, 0)] - divg[idx]);\n\t\t\t\t}\n\t\t\t\tfor (let i = 0; i < cpuN; i++) for (let j = 0; j < cpuN; j++) {\n\t\t\t\t\tconst idx = i * cpuN + j;\n\t\t\t\t\tvx[idx] -= .5 * (pres[ni(i, j, 0, 1)] - pres[ni(i, j, 0, -1)]);\n\t\t\t\t\tvy[idx] -= .5 * (pres[ni(i, j, 1, 0)] - pres[ni(i, j, -1, 0)]);\n\t\t\t\t}\n\t\t\t\tconst vDecay = 1 + VELOCITY_DISSIPATION * dt;\n\t\t\t\tfor (let i = 0; i < cpuN; i++) for (let j = 0; j < cpuN; j++) {\n\t\t\t\t\tconst idx = i * cpuN + j;\n\t\t\t\t\tvtx[idx] = bl(vx, j - vx[idx] * dt, i - vy[idx] * dt) / vDecay;\n\t\t\t\t\tvty[idx] = bl(vy, j - vx[idx] * dt, i - vy[idx] * dt) / vDecay;\n\t\t\t\t}\n\t\t\t\tvx.set(vtx);\n\t\t\t\tvy.set(vty);\n\t\t\t\tconst dDecay = 1 + dd * dt;\n\t\t\t\tfor (let i = 0; i < cpuN; i++) for (let j = 0; j < cpuN; j++) {\n\t\t\t\t\tconst idx = i * cpuN + j;\n\t\t\t\t\tconst sx = j - vx[idx] * dt, sy = i - vy[idx] * dt;\n\t\t\t\t\tdtmp[idx] = Math.max(0, bl(den, sx, sy) / dDecay);\n\t\t\t\t\tatmp[idx] = Math.min(1, bl(ag, sx, sy) + dt * .4 * cd);\n\t\t\t\t}\n\t\t\t\tden.set(dtmp);\n\t\t\t\tag.set(atmp);\n\t\t\t\tfor (let i = 0; i < cells; i++) {\n\t\t\t\t\ttexData[i * 4] = den[i];\n\t\t\t\t\ttexData[i * 4 + 1] = ag[i];\n\t\t\t\t}\n\t\t\t\tsmokeTex.needsUpdate = true;\n\t\t\t});\n\t\t\tonCleanup(() => {\n\t\t\t\tsmokeTex.dispose();\n\t\t\t});\n\t\t}\n\t\tlet smokeDensity, smokeAge;\n\t\tif (computeOutputs?.smokeTexture) {\n\t\t\tconst px = float(1 / GRID_GPU);\n\t\t\tconst s0 = smokeField.sample(screenUV);\n\t\t\tconst s1 = smokeField.sample(screenUV.add(vec2(px, float(0))));\n\t\t\tconst s2 = smokeField.sample(screenUV.add(vec2(float(0), px)));\n\t\t\tconst s3 = smokeField.sample(screenUV.add(vec2(px.negate(), float(0))));\n\t\t\tconst s4 = smokeField.sample(screenUV.add(vec2(float(0), px.negate())));\n\t\t\tsmokeDensity = s0.x.mul(float(.5)).add(s1.x.mul(float(.125))).add(s2.x.mul(float(.125))).add(s3.x.mul(float(.125))).add(s4.x.mul(float(.125)));\n\t\t\tsmokeAge = s0.y.mul(float(.5)).add(s1.y.mul(float(.125))).add(s2.y.mul(float(.125))).add(s3.y.mul(float(.125))).add(s4.y.mul(float(.125)));\n\t\t} else {\n\t\t\tconst s = smokeField.sample(screenUV);\n\t\t\tsmokeDensity = s.x;\n\t\t\tsmokeAge = s.y;\n\t\t}\n\t\tconst smokeColor = mixColors(uniforms.colorA.uniform, uniforms.colorB.uniform, smokeAge, uniforms.colorSpace.uniform.value);\n\t\treturn vec4(smokeColor.x, smokeColor.y, smokeColor.z, smokeColor.w.mul(smokeDensity));\n\t}\n};\nvar Smoke_default = componentDefinition;\nexport { componentDefinition as n, Smoke_default as t };\n","import { a as transformColor, l as transformPosition, o as transformColorSpace, t as colorSpaceOptions } from \"./transformations-CJcUeZIC.js\";\nimport { t as mixColors } from \"./colorMixing-BPpDnR5I.js\";\nimport { n as createAnalyticSdfSampler, r as createSvgSdfSampler } from \"./sdf-D_EAGXhN.js\";\nimport { StorageTexture } from \"three/webgpu\";\nimport { DataTexture, FloatType, LinearFilter as LinearFilter$1, RGBAFormat } from \"three\";\nimport { Fn, attributeArray, float, floor, instanceIndex, int, mix, screenUV, storageTexture, texture, textureStore, uint, uniform, uvec2, vec2, vec4, viewportSize } from \"three/tsl\";\nvar DEFAULT_SHAPE_CONFIG = JSON.stringify({\n\ttype: \"circleSDF\",\n\tradius: .35\n});\nvar GRID_GPU = 256;\nvar GRID_CPU = 56;\nvar JACOBI_ITERS = 20;\nvar PRESSURE_DISSIPATION = .8;\nvar VELOCITY_DISSIPATION = .2;\nconst componentDefinition = {\n\tname: \"SmokeFill\",\n\tcategory: \"Shape Effects\",\n\tdescription: \"Fill a shape with swirling fluid smoke that interacts with the shape boundary\",\n\trequiresRTT: false,\n\trequiresChild: false,\n\tusesPointer: true,\n\tprops: {\n\t\tcolorA: {\n\t\t\tdefault: \"#8cf3ff\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Color of fresh smoke\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Start Color\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tcolorB: {\n\t\t\tdefault: \"#04a0d6\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Color smoke transitions to as it ages\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"End Color\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tcenter: {\n\t\t\tdefault: {\n\t\t\t\tx: .5,\n\t\t\t\ty: .5\n\t\t\t},\n\t\t\ttransform: transformPosition,\n\t\t\tdescription: \"Center position of the shape\",\n\t\t\tui: {\n\t\t\t\ttype: \"position\",\n\t\t\t\tlabel: \"Center\",\n\t\t\t\tgroup: \"Position\"\n\t\t\t}\n\t\t},\n\t\tscale: {\n\t\t\tdefault: 1,\n\t\t\tdescription: \"Scale of the shape (1 = default size)\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: .1,\n\t\t\t\tmax: 3,\n\t\t\t\tstep: .05,\n\t\t\t\tlabel: \"Scale\",\n\t\t\t\tgroup: \"Position\"\n\t\t\t}\n\t\t},\n\t\temitFrom: {\n\t\t\tdefault: {\n\t\t\t\tx: .5,\n\t\t\t\ty: .5\n\t\t\t},\n\t\t\ttransform: transformPosition,\n\t\t\tdescription: \"Emission source point within the shape\",\n\t\t\tui: {\n\t\t\t\ttype: \"position\",\n\t\t\t\tlabel: \"Emit From\",\n\t\t\t\tgroup: \"Emission\"\n\t\t\t}\n\t\t},\n\t\tdirection: {\n\t\t\tdefault: 0,\n\t\t\tdescription: \"Emission direction (0 = up, 90 = right, 180 = down, 270 = left)\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 360,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Direction\",\n\t\t\t\tgroup: \"Emission\"\n\t\t\t}\n\t\t},\n\t\tspeed: {\n\t\t\tdefault: 10,\n\t\t\tdescription: \"Emission velocity strength\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: .1,\n\t\t\t\tmax: 30,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Speed\",\n\t\t\t\tgroup: \"Emission\"\n\t\t\t}\n\t\t},\n\t\tspread: {\n\t\t\tdefault: 60,\n\t\t\tdescription: \"Emission cone angle in degrees\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 180,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Spread\",\n\t\t\t\tgroup: \"Emission\"\n\t\t\t}\n\t\t},\n\t\temitRadius: {\n\t\t\tdefault: .03,\n\t\t\tdescription: \"Size of the emission area\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: .01,\n\t\t\t\tmax: .3,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Emit Size\",\n\t\t\t\tgroup: \"Emission\"\n\t\t\t}\n\t\t},\n\t\tintensity: {\n\t\t\tdefault: 1,\n\t\t\tdescription: \"Smoke emission density\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: .1,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .05,\n\t\t\t\tlabel: \"Intensity\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tdissipation: {\n\t\t\tdefault: .3,\n\t\t\tdescription: \"How fast smoke fades over time\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: .1,\n\t\t\t\tmax: 5,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Dissipation\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tdetail: {\n\t\t\tdefault: 25,\n\t\t\tdescription: \"Fine-scale swirling detail\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 50,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Detail\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tgravity: {\n\t\t\tdefault: .5,\n\t\t\tdescription: \"Downward gravitational pull on smoke — 0 = weightless, negative values = smoke rises\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: -2,\n\t\t\t\tmax: 2,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Gravity\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tcolorDecay: {\n\t\t\tdefault: .4,\n\t\t\tdescription: \"How quickly smoke shifts from Color A to Color B\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 3,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Color Decay\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tmouseInfluence: {\n\t\t\tdefault: .1,\n\t\t\tdescription: \"Strength of cursor influence\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 2,\n\t\t\t\tstep: .05,\n\t\t\t\tlabel: \"Cursor Influence\",\n\t\t\t\tgroup: \"Interaction\"\n\t\t\t}\n\t\t},\n\t\tmouseRadius: {\n\t\t\tdefault: .1,\n\t\t\tdescription: \"Radius of cursor influence area\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: .02,\n\t\t\t\tmax: .5,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Cursor Radius\",\n\t\t\t\tgroup: \"Interaction\"\n\t\t\t}\n\t\t},\n\t\tcolorSpace: {\n\t\t\tdefault: \"linear\",\n\t\t\ttransform: transformColorSpace,\n\t\t\tcompileTime: true,\n\t\t\tdescription: \"Color space for color interpolation\",\n\t\t\tui: {\n\t\t\t\ttype: \"select\",\n\t\t\t\toptions: colorSpaceOptions,\n\t\t\t\tlabel: \"Color Space\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tshape: {\n\t\t\tdefault: DEFAULT_SHAPE_CONFIG,\n\t\t\tdescription: \"Serialized shape configuration (JSON)\",\n\t\t\tui: {\n\t\t\t\ttype: \"shape\",\n\t\t\t\tlabel: \"Shape\",\n\t\t\t\tgroup: \"Shape\"\n\t\t\t}\n\t\t},\n\t\tshapeSdfUrl: {\n\t\t\tdefault: \"\",\n\t\t\tcompileTime: true,\n\t\t\tdescription: \"URL to a pre-generated SDF .bin file\"\n\t\t},\n\t\tshapeType: {\n\t\t\tdefault: \"\",\n\t\t\tcompileTime: true,\n\t\t\tdescription: \"Active SDF shape type\"\n\t\t}\n\t},\n\tcomputeNode: ({ uniforms, onCleanup, onBeforeRender, renderer }) => {\n\t\tconst N = GRID_GPU;\n\t\tconst gs = uint(N);\n\t\tconst Ni = int(N);\n\t\tconst Nm1 = int(N - 1);\n\t\tconst count = N * N;\n\t\tconst nidx = (ii, ji, di, dj) => ii.add(int(di)).clamp(int(0), Nm1).mul(Ni).add(ji.add(int(dj)).clamp(int(0), Nm1));\n\t\tconst shapeSdfUrl = uniforms.shapeSdfUrl.uniform.value;\n\t\tconst initialConfig = (() => {\n\t\t\tconst val = uniforms.shape.uniform.value;\n\t\t\ttry {\n\t\t\t\treturn JSON.parse(val);\n\t\t\t} catch {\n\t\t\t\treturn {\n\t\t\t\t\ttype: \"circleSDF\",\n\t\t\t\t\tradius: .35\n\t\t\t\t};\n\t\t\t}\n\t\t})();\n\t\tlet sdfSampler;\n\t\tif (shapeSdfUrl) sdfSampler = createSvgSdfSampler(shapeSdfUrl, onBeforeRender, onCleanup);\n\t\telse sdfSampler = createAnalyticSdfSampler(uniforms.shapeType.uniform.value || initialConfig.type || \"circleSDF\", initialConfig, uniforms.shape, onBeforeRender);\n\t\tconst velA = attributeArray(count, \"vec4\");\n\t\tconst velB = attributeArray(count, \"vec4\");\n\t\tconst densA = attributeArray(count, \"vec4\");\n\t\tconst densB = attributeArray(count, \"vec4\");\n\t\tconst pressDivBuf = attributeArray(count, \"vec4\");\n\t\tconst maskBuf = attributeArray(count, \"vec4\");\n\t\tconst outTex = new StorageTexture(N, N);\n\t\toutTex.type = FloatType;\n\t\tconst outTexNode = storageTexture(outTex);\n\t\tonCleanup(() => {\n\t\t\toutTex.dispose();\n\t\t});\n\t\tconst dtU = uniform(.016);\n\t\tconst emitXU = uniform(.5);\n\t\tconst emitYU = uniform(.5);\n\t\tconst emitVelXU = uniform(0);\n\t\tconst emitVelYU = uniform(-50);\n\t\tconst perpDirXU = uniform(1);\n\t\tconst perpDirYU = uniform(0);\n\t\tconst spreadFactorU = uniform(.5);\n\t\tconst emitRadU = uniform(10);\n\t\tconst emitIntensityU = uniform(.8);\n\t\tconst densDissipU = uniform(.5);\n\t\tconst curlStrengthU = uniform(30);\n\t\tconst gravityU = uniform(.5);\n\t\tconst colorDecayU = uniform(1);\n\t\tconst centerXU = uniform(.5);\n\t\tconst centerYU = uniform(.5);\n\t\tconst scaleU = uniform(1);\n\t\tconst aspectU = uniform(1);\n\t\tconst cursorXU = uniform(128);\n\t\tconst cursorYU = uniform(128);\n\t\tconst cursorVelXU = uniform(0);\n\t\tconst cursorVelYU = uniform(0);\n\t\tconst mouseActiveU = uniform(0);\n\t\tconst mouseRadSqU = uniform(900);\n\t\tconst maskPass = Fn(() => {\n\t\t\tconst idx = instanceIndex;\n\t\t\tconst j = idx.mod(gs);\n\t\t\tconst i = idx.div(gs);\n\t\t\tconst u = j.toFloat().add(float(.5)).div(float(N));\n\t\t\tconst v = i.toFloat().add(float(.5)).div(float(N));\n\t\t\tconst sdfUV = vec2(u.sub(centerXU).mul(aspectU).div(scaleU).add(float(.5)), v.sub(centerYU).div(scaleU).add(float(.5)));\n\t\t\tconst dist = sdfSampler(sdfUV).x;\n\t\t\tconst inside = dist.lessThan(float(0)).select(float(1), float(0));\n\t\t\tmaskBuf.element(idx).assign(vec4(inside, dist, float(0), float(0)));\n\t\t})().compute(count, [256]);\n\t\tconst splatPass = Fn(() => {\n\t\t\tconst idx = instanceIndex;\n\t\t\tconst j = idx.mod(gs);\n\t\t\tconst i = idx.div(gs);\n\t\t\tconst mask = maskBuf.element(idx).x;\n\t\t\tconst cellX = j.toFloat().add(float(.5));\n\t\t\tconst cellY = i.toFloat().add(float(.5));\n\t\t\tconst dx = cellX.sub(emitXU);\n\t\t\tconst dy = cellY.sub(emitYU);\n\t\t\tconst distSq = dx.mul(dx).add(dy.mul(dy));\n\t\t\tconst radSq = emitRadU.mul(emitRadU).max(float(1));\n\t\t\tconst influence = distSq.negate().div(radSq).exp().mul(mask);\n\t\t\tconst cell = densA.element(idx);\n\t\t\tconst oldDens = cell.x;\n\t\t\tconst addDens = emitIntensityU.mul(influence).mul(dtU).mul(float(8));\n\t\t\tconst newDens = oldDens.add(addDens).min(float(1));\n\t\t\tconst rejuvenate = addDens.div(newDens.max(float(.001)));\n\t\t\tdensA.element(idx).assign(vec4(newDens, cell.y.mul(float(1).sub(rejuvenate.min(float(1)))), float(0), float(0)));\n\t\t\tconst vel = velA.element(idx);\n\t\t\tconst perpOff = dx.mul(perpDirXU).add(dy.mul(perpDirYU)).div(emitRadU.max(float(1)));\n\t\t\tconst vmSq = emitVelXU.mul(emitVelXU).add(emitVelYU.mul(emitVelYU)).max(float(1));\n\t\t\tconst tvx = emitVelXU.add(perpDirXU.mul(perpOff).mul(spreadFactorU).mul(vmSq.sqrt()));\n\t\t\tconst tvy = emitVelYU.add(perpDirYU.mul(perpOff).mul(spreadFactorU).mul(vmSq.sqrt()));\n\t\t\tconst br = influence.mul(dtU).mul(float(3)).min(float(1));\n\t\t\tconst gravForce = gravityU.mul(oldDens).mul(dtU).mul(float(N * .08)).mul(mask);\n\t\t\tconst cursorDX = cellX.sub(cursorXU);\n\t\t\tconst cursorDY = cellY.sub(cursorYU);\n\t\t\tconst cursorInf = cursorDX.mul(cursorDX).add(cursorDY.mul(cursorDY)).negate().div(mouseRadSqU.max(float(1))).exp().mul(mouseActiveU).mul(mask);\n\t\t\tvelA.element(idx).assign(vec4(mix(vel.x, tvx, br).add(cursorVelXU.mul(cursorInf)), mix(vel.y, tvy, br).add(gravForce).add(cursorVelYU.mul(cursorInf)), vel.z, float(0)));\n\t\t})().compute(count, [256]);\n\t\tconst curlPass = Fn(() => {\n\t\t\tconst idx = instanceIndex;\n\t\t\tconst ji = idx.mod(gs).toInt();\n\t\t\tconst ii = idx.div(gs).toInt();\n\t\t\tconst vL = velA.element(nidx(ii, ji, 0, -1));\n\t\t\tconst vR = velA.element(nidx(ii, ji, 0, 1));\n\t\t\tconst vU = velA.element(nidx(ii, ji, -1, 0));\n\t\t\tconst vD = velA.element(nidx(ii, ji, 1, 0));\n\t\t\tconst curl = vR.y.sub(vL.y).sub(vD.x.sub(vU.x)).mul(float(.5));\n\t\t\tconst vel = velA.element(idx);\n\t\t\tvelA.element(idx).assign(vec4(vel.x, vel.y, curl, float(0)));\n\t\t})().compute(count, [256]);\n\t\tconst vorticityPass = Fn(() => {\n\t\t\tconst idx = instanceIndex;\n\t\t\tconst ji = idx.mod(gs).toInt();\n\t\t\tconst ii = idx.div(gs).toInt();\n\t\t\tconst cL = velA.element(nidx(ii, ji, 0, -1)).z.abs();\n\t\t\tconst cR = velA.element(nidx(ii, ji, 0, 1)).z.abs();\n\t\t\tconst cU = velA.element(nidx(ii, ji, -1, 0)).z.abs();\n\t\t\tconst cD = velA.element(nidx(ii, ji, 1, 0)).z.abs();\n\t\t\tconst cc = velA.element(idx).z;\n\t\t\tconst gx = cR.sub(cL).mul(float(.5));\n\t\t\tconst gy = cD.sub(cU).mul(float(.5));\n\t\t\tconst gl = gx.mul(gx).add(gy.mul(gy)).sqrt().max(float(1e-5));\n\t\t\tconst vel = velA.element(idx);\n\t\t\tvelA.element(idx).assign(vec4(vel.x.add(gy.div(gl).mul(cc).mul(curlStrengthU).mul(dtU)), vel.y.add(gx.div(gl).negate().mul(cc).mul(curlStrengthU).mul(dtU)), vel.z, float(0)));\n\t\t})().compute(count, [256]);\n\t\tconst divergencePass = Fn(() => {\n\t\t\tconst idx = instanceIndex;\n\t\t\tconst ji = idx.mod(gs).toInt();\n\t\t\tconst ii = idx.div(gs).toInt();\n\t\t\tconst jf = ji.toFloat();\n\t\t\tconst iF = ii.toFloat();\n\t\t\tconst selfMask = maskBuf.element(idx).x;\n\t\t\tconst selfVel = velA.element(idx);\n\t\t\tconst isWallL = jf.lessThan(float(.5)).or(maskBuf.element(nidx(ii, ji, 0, -1)).x.lessThan(float(.5)));\n\t\t\tconst isWallR = jf.greaterThan(float(N - 1.5)).or(maskBuf.element(nidx(ii, ji, 0, 1)).x.lessThan(float(.5)));\n\t\t\tconst isWallT = iF.lessThan(float(.5)).or(maskBuf.element(nidx(ii, ji, -1, 0)).x.lessThan(float(.5)));\n\t\t\tconst isWallB = iF.greaterThan(float(N - 1.5)).or(maskBuf.element(nidx(ii, ji, 1, 0)).x.lessThan(float(.5)));\n\t\t\tconst L = isWallL.select(selfVel.x.negate(), velA.element(nidx(ii, ji, 0, -1)).x);\n\t\t\tconst R = isWallR.select(selfVel.x.negate(), velA.element(nidx(ii, ji, 0, 1)).x);\n\t\t\tconst T = isWallT.select(selfVel.y.negate(), velA.element(nidx(ii, ji, -1, 0)).y);\n\t\t\tconst B = isWallB.select(selfVel.y.negate(), velA.element(nidx(ii, ji, 1, 0)).y);\n\t\t\tconst div$1 = R.sub(L).add(B.sub(T)).mul(float(.5)).mul(selfMask);\n\t\t\tconst oldP = pressDivBuf.element(idx).x.mul(float(PRESSURE_DISSIPATION)).mul(selfMask);\n\t\t\tpressDivBuf.element(idx).assign(vec4(oldP, div$1, float(0), float(0)));\n\t\t})().compute(count, [256]);\n\t\tconst jacobiPass = Fn(() => {\n\t\t\tconst idx = instanceIndex;\n\t\t\tconst ji = idx.mod(gs).toInt();\n\t\t\tconst ii = idx.div(gs).toInt();\n\t\t\tconst pL = pressDivBuf.element(nidx(ii, ji, 0, -1)).x;\n\t\t\tconst pR = pressDivBuf.element(nidx(ii, ji, 0, 1)).x;\n\t\t\tconst pU = pressDivBuf.element(nidx(ii, ji, -1, 0)).x;\n\t\t\tconst pD = pressDivBuf.element(nidx(ii, ji, 1, 0)).x;\n\t\t\tconst div$1 = pressDivBuf.element(idx).y;\n\t\t\tpressDivBuf.element(idx).assign(vec4(pL.add(pR).add(pU).add(pD).sub(div$1).mul(float(.25)), div$1, float(0), float(0)));\n\t\t})().compute(count, [256]);\n\t\tconst gradSubtractPass = Fn(() => {\n\t\t\tconst idx = instanceIndex;\n\t\t\tconst ji = idx.mod(gs).toInt();\n\t\t\tconst ii = idx.div(gs).toInt();\n\t\t\tconst pL = pressDivBuf.element(nidx(ii, ji, 0, -1)).x;\n\t\t\tconst pR = pressDivBuf.element(nidx(ii, ji, 0, 1)).x;\n\t\t\tconst pU = pressDivBuf.element(nidx(ii, ji, -1, 0)).x;\n\t\t\tconst pD = pressDivBuf.element(nidx(ii, ji, 1, 0)).x;\n\t\t\tconst vel = velA.element(idx);\n\t\t\tvelA.element(idx).assign(vec4(vel.x.sub(pR.sub(pL).mul(float(.5))), vel.y.sub(pD.sub(pU).mul(float(.5))), vel.z, float(0)));\n\t\t})().compute(count, [256]);\n\t\tconst advectVelPass = Fn(() => {\n\t\t\tconst idx = instanceIndex;\n\t\t\tconst j = idx.mod(gs);\n\t\t\tconst i = idx.div(gs);\n\t\t\tconst vel = velA.element(idx);\n\t\t\tconst srcX = j.toFloat().sub(vel.x.mul(dtU)).clamp(float(0), float(N - 1));\n\t\t\tconst srcY = i.toFloat().sub(vel.y.mul(dtU)).clamp(float(0), float(N - 1));\n\t\t\tconst x0 = floor(srcX).clamp(float(0), float(N - 2));\n\t\t\tconst y0 = floor(srcY).clamp(float(0), float(N - 2));\n\t\t\tconst sx = srcX.sub(x0);\n\t\t\tconst sy = srcY.sub(y0);\n\t\t\tconst ix0 = x0.toInt();\n\t\t\tconst iy0 = y0.toInt();\n\t\t\tconst v00 = velA.element(iy0.mul(Ni).add(ix0));\n\t\t\tconst v10 = velA.element(iy0.mul(Ni).add(ix0.add(int(1))));\n\t\t\tconst v01 = velA.element(iy0.add(int(1)).mul(Ni).add(ix0));\n\t\t\tconst v11 = velA.element(iy0.add(int(1)).mul(Ni).add(ix0.add(int(1))));\n\t\t\tconst decay = float(1).add(float(VELOCITY_DISSIPATION).mul(dtU));\n\t\t\tconst mask = maskBuf.element(idx).x;\n\t\t\tvelB.element(idx).assign(vec4(mix(mix(v00.x, v10.x, sx), mix(v01.x, v11.x, sx), sy).div(decay).mul(mask), mix(mix(v00.y, v10.y, sx), mix(v01.y, v11.y, sx), sy).div(decay).mul(mask), float(0), float(0)));\n\t\t})().compute(count, [256]);\n\t\tconst copyVelPass = Fn(() => {\n\t\t\tconst v = velB.element(instanceIndex);\n\t\t\tvelA.element(instanceIndex).assign(vec4(v.x, v.y, float(0), float(0)));\n\t\t})().compute(count, [256]);\n\t\tconst advectDensPass = Fn(() => {\n\t\t\tconst idx = instanceIndex;\n\t\t\tconst j = idx.mod(gs);\n\t\t\tconst i = idx.div(gs);\n\t\t\tconst vel = velA.element(idx);\n\t\t\tconst srcX = j.toFloat().sub(vel.x.mul(dtU)).clamp(float(0), float(N - 1));\n\t\t\tconst srcY = i.toFloat().sub(vel.y.mul(dtU)).clamp(float(0), float(N - 1));\n\t\t\tconst x0 = floor(srcX).clamp(float(0), float(N - 2));\n\t\t\tconst y0 = floor(srcY).clamp(float(0), float(N - 2));\n\t\t\tconst sx = srcX.sub(x0);\n\t\t\tconst sy = srcY.sub(y0);\n\t\t\tconst ix0 = x0.toInt();\n\t\t\tconst iy0 = y0.toInt();\n\t\t\tconst d00 = densA.element(iy0.mul(Ni).add(ix0));\n\t\t\tconst d10 = densA.element(iy0.mul(Ni).add(ix0.add(int(1))));\n\t\t\tconst d01 = densA.element(iy0.add(int(1)).mul(Ni).add(ix0));\n\t\t\tconst d11 = densA.element(iy0.add(int(1)).mul(Ni).add(ix0.add(int(1))));\n\t\t\tconst dens = mix(mix(d00.x, d10.x, sx), mix(d01.x, d11.x, sx), sy);\n\t\t\tconst age = mix(mix(d00.y, d10.y, sx), mix(d01.y, d11.y, sx), sy);\n\t\t\tconst decay = float(1).add(densDissipU.mul(dtU));\n\t\t\tconst mask = maskBuf.element(idx).x;\n\t\t\tdensB.element(idx).assign(vec4(dens.div(decay).max(float(0)).mul(mask), age.add(dtU.mul(float(.4)).mul(colorDecayU)).min(float(1)), float(0), float(0)));\n\t\t})().compute(count, [256]);\n\t\tconst copyDensPass = Fn(() => {\n\t\t\tconst d = densB.element(instanceIndex);\n\t\t\tdensA.element(instanceIndex).assign(vec4(d.x, d.y, float(0), float(0)));\n\t\t})().compute(count, [256]);\n\t\tconst outputPass = Fn(() => {\n\t\t\tconst idx = instanceIndex;\n\t\t\tconst j = idx.mod(gs);\n\t\t\tconst i = idx.div(gs);\n\t\t\tconst d = densA.element(idx);\n\t\t\ttextureStore(outTexNode, uvec2(j, i), vec4(d.x, d.y, float(0), float(0))).toWriteOnly();\n\t\t})().compute(count, [256]);\n\t\tlet lastTime = Date.now();\n\t\tlet prevMx = .5, prevMy = .5;\n\t\treturn {\n\t\t\toutputs: { smokeTexture: outTex },\n\t\t\tgetComputeNodes: (params) => {\n\t\t\t\tconst now = Date.now();\n\t\t\t\tconst dt = Math.min((now - lastTime) / 1e3, .033);\n\t\t\t\tlastTime = now;\n\t\t\t\tif (dt < .001) return null;\n\t\t\t\tconst getNum = (key, fallback) => {\n\t\t\t\t\tconst def = uniforms[key];\n\t\t\t\t\tif (!def) return fallback;\n\t\t\t\t\tif (typeof def.getCpuValue === \"function\") {\n\t\t\t\t\t\tconst v$1 = def.getCpuValue();\n\t\t\t\t\t\treturn typeof v$1 === \"number\" ? v$1 : fallback;\n\t\t\t\t\t}\n\t\t\t\t\tconst v = def.uniform?.value;\n\t\t\t\t\treturn typeof v === \"number\" ? v : fallback;\n\t\t\t\t};\n\t\t\t\tconst speed = getNum(\"speed\", 2);\n\t\t\t\tconst dirRad = getNum(\"direction\", 0) * Math.PI / 180;\n\t\t\t\tconst spreadHalf = Math.min(89 * Math.PI / 180, getNum(\"spread\", 60) * Math.PI / 360);\n\t\t\t\tconst centerPos = uniforms.center.uniform.value;\n\t\t\t\tconst cpx = typeof centerPos === \"object\" ? centerPos.x ?? .5 : .5;\n\t\t\t\tconst cpy = typeof centerPos === \"object\" ? centerPos.y ?? .5 : .5;\n\t\t\t\tconst aspect = typeof window !== \"undefined\" && renderer?.domElement ? renderer.domElement.width / Math.max(1, renderer.domElement.height) : 1;\n\t\t\t\tdtU.value = dt;\n\t\t\t\tcenterXU.value = cpx;\n\t\t\t\tcenterYU.value = 1 - cpy;\n\t\t\t\tscaleU.value = getNum(\"scale\", 1);\n\t\t\t\taspectU.value = aspect;\n\t\t\t\tconst emitPos = uniforms.emitFrom?.uniform?.value;\n\t\t\t\tconst epx = typeof emitPos === \"object\" ? emitPos.x ?? .5 : .5;\n\t\t\t\tconst epy = typeof emitPos === \"object\" ? emitPos.y ?? .5 : .5;\n\t\t\t\temitXU.value = epx * N;\n\t\t\t\temitYU.value = (1 - epy) * N;\n\t\t\t\tconst velMag = speed * N * .15;\n\t\t\t\temitVelXU.value = Math.sin(dirRad) * velMag;\n\t\t\t\temitVelYU.value = -Math.cos(dirRad) * velMag;\n\t\t\t\tperpDirXU.value = Math.cos(dirRad);\n\t\t\t\tperpDirYU.value = Math.sin(dirRad);\n\t\t\t\tspreadFactorU.value = Math.tan(spreadHalf);\n\t\t\t\temitRadU.value = getNum(\"emitRadius\", .03) * N;\n\t\t\t\temitIntensityU.value = getNum(\"intensity\", .8);\n\t\t\t\tdensDissipU.value = getNum(\"dissipation\", .5);\n\t\t\t\tcurlStrengthU.value = getNum(\"detail\", 30);\n\t\t\t\tgravityU.value = getNum(\"gravity\", .5);\n\t\t\t\tcolorDecayU.value = getNum(\"colorDecay\", 1);\n\t\t\t\tconst mouseInf = getNum(\"mouseInfluence\", .5);\n\t\t\t\tconst mouseRad = getNum(\"mouseRadius\", .12);\n\t\t\t\tconst mx = params?.pointer?.x ?? prevMx;\n\t\t\t\tconst my = params?.pointer?.y ?? prevMy;\n\t\t\t\tconst mdx = mx - prevMx, mdy = my - prevMy;\n\t\t\t\tprevMx = mx;\n\t\t\t\tprevMy = my;\n\t\t\t\tconst cursorSpeed = Math.sqrt(mdx * mdx + mdy * mdy);\n\t\t\t\tconst mouseRadGrid = mouseRad * N;\n\t\t\t\tmouseRadSqU.value = mouseRadGrid * mouseRadGrid;\n\t\t\t\tif (cursorSpeed > 5e-4 && mouseInf > 0) {\n\t\t\t\t\tcursorXU.value = mx * N;\n\t\t\t\t\tcursorYU.value = my * N;\n\t\t\t\t\tcursorVelXU.value = mdx * N * 15 * mouseInf;\n\t\t\t\t\tcursorVelYU.value = mdy * N * 15 * mouseInf;\n\t\t\t\t\tmouseActiveU.value = 1;\n\t\t\t\t} else mouseActiveU.value = 0;\n\t\t\t\trenderer.compute(maskPass);\n\t\t\t\trenderer.compute(splatPass);\n\t\t\t\trenderer.compute(curlPass);\n\t\t\t\trenderer.compute(vorticityPass);\n\t\t\t\trenderer.compute(divergencePass);\n\t\t\t\tfor (let iter = 0; iter < JACOBI_ITERS; iter++) renderer.compute(jacobiPass);\n\t\t\t\trenderer.compute(gradSubtractPass);\n\t\t\t\trenderer.compute(advectVelPass);\n\t\t\t\trenderer.compute(copyVelPass);\n\t\t\t\trenderer.compute(advectDensPass);\n\t\t\t\trenderer.compute(copyDensPass);\n\t\t\t\treturn [outputPass];\n\t\t\t}\n\t\t};\n\t},\n\tfragmentNode: ({ uniforms, onBeforeRender, onCleanup, computeOutputs }) => {\n\t\tconst shapeSdfUrl = uniforms.shapeSdfUrl.uniform.value;\n\t\tconst initialConfig = (() => {\n\t\t\tconst val = uniforms.shape.uniform.value;\n\t\t\ttry {\n\t\t\t\treturn JSON.parse(val);\n\t\t\t} catch {\n\t\t\t\treturn {\n\t\t\t\t\ttype: \"circleSDF\",\n\t\t\t\t\tradius: .35\n\t\t\t\t};\n\t\t\t}\n\t\t})();\n\t\tlet sdfSampler;\n\t\tif (shapeSdfUrl) sdfSampler = createSvgSdfSampler(shapeSdfUrl, onBeforeRender, onCleanup);\n\t\telse sdfSampler = createAnalyticSdfSampler(uniforms.shapeType.uniform.value || initialConfig.type || \"circleSDF\", initialConfig, uniforms.shape, onBeforeRender);\n\t\tlet smokeField;\n\t\tconst N = computeOutputs?.smokeTexture ? GRID_GPU : GRID_CPU;\n\t\tif (computeOutputs?.smokeTexture) smokeField = texture(computeOutputs.smokeTexture);\n\t\telse {\n\t\t\tconst cpuN = GRID_CPU;\n\t\t\tconst cells = cpuN * cpuN;\n\t\t\tconst texData = new Float32Array(cells * 4);\n\t\t\tconst smokeTex = new DataTexture(texData, cpuN, cpuN, RGBAFormat, FloatType);\n\t\t\tsmokeTex.magFilter = LinearFilter$1;\n\t\t\tsmokeTex.minFilter = LinearFilter$1;\n\t\t\tsmokeTex.needsUpdate = true;\n\t\t\tsmokeField = texture(smokeTex);\n\t\t\tconst cpuGetNum = (key, fallback) => {\n\t\t\t\tconst def = uniforms[key];\n\t\t\t\tif (!def) return fallback;\n\t\t\t\tif (typeof def.getCpuValue === \"function\") {\n\t\t\t\t\tconst v$1 = def.getCpuValue();\n\t\t\t\t\treturn typeof v$1 === \"number\" ? v$1 : fallback;\n\t\t\t\t}\n\t\t\t\tconst v = def.uniform?.value;\n\t\t\t\treturn typeof v === \"number\" ? v : fallback;\n\t\t\t};\n\t\t\tlet lt = Date.now();\n\t\t\tonBeforeRender(() => {\n\t\t\t\tconst now = Date.now();\n\t\t\t\tconst dt = Math.min((now - lt) / 1e3, .033);\n\t\t\t\tlt = now;\n\t\t\t\tif (dt < .001) return;\n\t\t\t\tconst ei = cpuGetNum(\"intensity\", .8);\n\t\t\t\tconst dd = cpuGetNum(\"dissipation\", .5);\n\t\t\t\tconst ep = uniforms.emitFrom?.uniform?.value;\n\t\t\t\tconst ex = (typeof ep === \"object\" ? ep.x ?? .5 : .5) * cpuN;\n\t\t\t\tconst ey = (1 - (typeof ep === \"object\" ? ep.y ?? .5 : .5)) * cpuN;\n\t\t\t\tconst er = cpuGetNum(\"emitRadius\", .03) * cpuN;\n\t\t\t\tfor (let i = 0; i < cpuN; i++) for (let j = 0; j < cpuN; j++) {\n\t\t\t\t\tconst idx = i * cpuN + j;\n\t\t\t\t\tconst dx = j + .5 - ex, dy = i + .5 - ey;\n\t\t\t\t\tconst inf = Math.exp(-(dx * dx + dy * dy) / Math.max(1, er * er));\n\t\t\t\t\ttexData[idx * 4] = Math.max(0, (texData[idx * 4] + ei * inf * dt * 8) / (1 + dd * dt));\n\t\t\t\t\ttexData[idx * 4 + 1] = Math.min(1, texData[idx * 4 + 1] + dt * .4 * cpuGetNum(\"colorDecay\", 1));\n\t\t\t\t}\n\t\t\t\tsmokeTex.needsUpdate = true;\n\t\t\t});\n\t\t\tonCleanup(() => {\n\t\t\t\tsmokeTex.dispose();\n\t\t\t});\n\t\t}\n\t\tconst uv$1 = screenUV;\n\t\tconst aspect = viewportSize.x.div(viewportSize.y);\n\t\tconst centerPos = vec2(uniforms.center.uniform.x, uniforms.center.uniform.y.oneMinus());\n\t\tconst scale = uniforms.scale.uniform;\n\t\tconst sdfUV = vec2(uv$1.x.sub(centerPos.x).mul(aspect).div(scale).add(float(.5)), uv$1.y.sub(centerPos.y).div(scale).add(float(.5)));\n\t\tconst shapeMask = sdfSampler(sdfUV).x.negate().mul(float(N * 4)).clamp(float(0), float(1));\n\t\tlet smokeDensity, smokeAge;\n\t\tif (computeOutputs?.smokeTexture) {\n\t\t\tconst px = float(1 / GRID_GPU);\n\t\t\tconst s0 = smokeField.sample(screenUV);\n\t\t\tconst s1 = smokeField.sample(screenUV.add(vec2(px, float(0))));\n\t\t\tconst s2 = smokeField.sample(screenUV.add(vec2(float(0), px)));\n\t\t\tconst s3 = smokeField.sample(screenUV.add(vec2(px.negate(), float(0))));\n\t\t\tconst s4 = smokeField.sample(screenUV.add(vec2(float(0), px.negate())));\n\t\t\tsmokeDensity = s0.x.mul(float(.5)).add(s1.x.mul(float(.125))).add(s2.x.mul(float(.125))).add(s3.x.mul(float(.125))).add(s4.x.mul(float(.125)));\n\t\t\tsmokeAge = s0.y.mul(float(.5)).add(s1.y.mul(float(.125))).add(s2.y.mul(float(.125))).add(s3.y.mul(float(.125))).add(s4.y.mul(float(.125)));\n\t\t} else {\n\t\t\tconst s = smokeField.sample(screenUV);\n\t\t\tsmokeDensity = s.x;\n\t\t\tsmokeAge = s.y;\n\t\t}\n\t\tconst smokeColor = mixColors(uniforms.colorA.uniform, uniforms.colorB.uniform, smokeAge, uniforms.colorSpace.uniform.value);\n\t\treturn vec4(smokeColor.x, smokeColor.y, smokeColor.z, smokeColor.w.mul(smokeDensity).mul(shapeMask));\n\t}\n};\nvar SmokeFill_default = componentDefinition;\nexport { componentDefinition as n, SmokeFill_default as t };\n","import { dot, mix, vec3, vec4 } from \"three/tsl\";\nconst componentDefinition = {\n\tname: \"Solarize\",\n\tcategory: \"Adjustments\",\n\tdescription: \"Inverts tones above a luminance threshold — a classic darkroom and photo effect\",\n\trequiresChild: true,\n\tprops: {\n\t\tthreshold: {\n\t\t\tdefault: .5,\n\t\t\tdescription: \"Luminance level above which colors are inverted. Pixels brighter than this threshold get flipped.\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Threshold\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tstrength: {\n\t\t\tdefault: 1,\n\t\t\tdescription: \"Blend between original (0) and fully solarized (1)\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Strength\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t}\n\t},\n\tfragmentNode: ({ uniforms, childNode }) => {\n\t\tif (!childNode) {\n\t\t\tconsole.error(\"You must pass a child component into the Solarize shader.\");\n\t\t\treturn vec4(0);\n\t\t}\n\t\tconst threshold = uniforms.threshold.uniform;\n\t\tconst strength = uniforms.strength.uniform;\n\t\tconst luminance = dot(childNode.rgb, vec3(.299, .587, .114));\n\t\tconst inverted = vec3(1).sub(childNode.rgb);\n\t\tconst solarized = luminance.greaterThan(threshold).select(inverted, childNode.rgb);\n\t\treturn vec4(mix(childNode.rgb, solarized, strength), childNode.a);\n\t}\n};\nvar Solarize_default = componentDefinition;\nexport { componentDefinition as n, Solarize_default as t };\n","import { a as transformColor } from \"./transformations-CJcUeZIC.js\";\nconst componentDefinition = {\n\tname: \"SolidColor\",\n\tcategory: \"Textures\",\n\tdescription: \"Fill the canvas with a single solid color\",\n\tprops: { color: {\n\t\tdefault: \"#5b18ca\",\n\t\ttransform: transformColor,\n\t\tdescription: \"The solid color to display\",\n\t\tui: {\n\t\t\ttype: \"color\",\n\t\t\tlabel: \"Color\",\n\t\t\tgroup: \"Colors\"\n\t\t}\n\t} },\n\tfragmentNode: ({ uniforms }) => {\n\t\treturn uniforms.color.uniform;\n\t}\n};\nvar SolidColor_default = componentDefinition;\nexport { componentDefinition as n, SolidColor_default as t };\n","import { a as transformColor, l as transformPosition } from \"./transformations-CJcUeZIC.js\";\nimport { t as unpremultiplyAlpha } from \"./alpha-C4ptedXe.js\";\nimport { convertToTexture, dot, float, max, normalize, pow, screenUV, smoothstep, sqrt, vec2, vec3, vec4, viewportSize } from \"three/tsl\";\nconst componentDefinition = {\n\tname: \"Spherize\",\n\tcategory: \"Distortions\",\n\tdescription: \"Map content onto a 3D sphere surface with depth distortion\",\n\trequiresRTT: true,\n\trequiresChild: true,\n\tprops: {\n\t\tradius: {\n\t\t\tdefault: 1,\n\t\t\tdescription: \"Radius of the sphere (1 = half viewport height)\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: .1,\n\t\t\t\tmax: 3,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Radius\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tdepth: {\n\t\t\tdefault: 1,\n\t\t\tdescription: \"How much the sphere bulges toward viewer (0 = flat, higher = more bulge)\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 3,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Depth\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tcenter: {\n\t\t\tdefault: {\n\t\t\t\tx: .5,\n\t\t\t\ty: .5\n\t\t\t},\n\t\t\ttransform: transformPosition,\n\t\t\tdescription: \"The center point of the sphere\",\n\t\t\tui: {\n\t\t\t\ttype: \"position\",\n\t\t\t\tlabel: \"Center\",\n\t\t\t\tgroup: \"Position\"\n\t\t\t}\n\t\t},\n\t\tlightPosition: {\n\t\t\tdefault: {\n\t\t\t\tx: .3,\n\t\t\t\ty: .3\n\t\t\t},\n\t\t\ttransform: transformPosition,\n\t\t\tdescription: \"Position of the specular light source\",\n\t\t\tui: {\n\t\t\t\ttype: \"position\",\n\t\t\t\tlabel: \"Light Position\",\n\t\t\t\tgroup: \"Position\"\n\t\t\t}\n\t\t},\n\t\tlightIntensity: {\n\t\t\tdefault: .5,\n\t\t\tdescription: \"Intensity of the rim light (0 = off)\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Light Intensity\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tlightSoftness: {\n\t\t\tdefault: .5,\n\t\t\tdescription: \"Softness of the rim light falloff (0 = hard edge, 1 = soft glow)\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Light Softness\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tlightColor: {\n\t\t\tdefault: \"#ffffff\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Color of the specular highlight\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Light Color\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t}\n\t},\n\tfragmentNode: ({ uniforms, childNode, onCleanup }) => {\n\t\tif (!childNode) return vec4(0, 0, 0, 0);\n\t\tconst childTexture = convertToTexture(childNode);\n\t\tonCleanup(() => {\n\t\t\tif (childTexture?.renderTarget?.dispose) childTexture.renderTarget.dispose();\n\t\t});\n\t\tconst uv$1 = screenUV;\n\t\tconst aspect = viewportSize.x.div(viewportSize.y);\n\t\tconst centerPos = vec2(uniforms.center.uniform.x, uniforms.center.uniform.y.oneMinus());\n\t\tconst radius = uniforms.radius.uniform;\n\t\tconst sphereUV = vec2(uv$1.x.sub(centerPos.x).mul(aspect), uv$1.y.sub(centerPos.y)).mul(2).div(radius);\n\t\tconst radiusSq = sphereUV.x.mul(sphereUV.x).add(sphereUV.y.mul(sphereUV.y));\n\t\tconst sphereAlpha = float(1).sub(smoothstep(float(.98), float(1), radiusSq));\n\t\tconst z = sqrt(max(float(0), float(1).sub(radiusSq)));\n\t\tconst depthFactor = float(1).add(z.mul(uniforms.depth.uniform));\n\t\tconst finalUV = sphereUV.div(depthFactor).mul(radius).div(2);\n\t\tconst transformedUV = vec2(finalUV.x.div(aspect).add(centerPos.x), finalUV.y.add(centerPos.y));\n\t\tconst straightColor = unpremultiplyAlpha(childTexture.sample(transformedUV));\n\t\tconst lightPos = vec2(uniforms.lightPosition.uniform.x, uniforms.lightPosition.uniform.y.oneMinus());\n\t\tconst lightIntensity = uniforms.lightIntensity.uniform;\n\t\tconst lightSoftness = uniforms.lightSoftness.uniform;\n\t\tconst lightColor = vec3(uniforms.lightColor.uniform.x, uniforms.lightColor.uniform.y, uniforms.lightColor.uniform.z);\n\t\tconst normal = normalize(vec3(sphereUV.x, sphereUV.y, z));\n\t\tconst viewDir = vec3(0, 0, 1);\n\t\tconst fresnelPower = float(1).add(float(4).mul(float(1).sub(lightSoftness)));\n\t\tconst fresnel = pow(float(1).sub(max(dot(normal, viewDir), float(0))), fresnelPower);\n\t\tconst lightDir2D = vec2(lightPos.x.sub(float(.5)).mul(2), lightPos.y.sub(float(.5)).mul(2));\n\t\tconst normalDir = normalize(vec2(normal.x, normal.y).add(vec2(1e-4, 1e-4)));\n\t\tconst lightDirNorm = normalize(lightDir2D.add(vec2(1e-4, 1e-4)));\n\t\tconst directionalBias = pow(max(float(0), dot(normalDir, lightDirNorm)), float(2));\n\t\tconst rimLight = fresnel.mul(directionalBias).mul(lightIntensity).mul(float(2));\n\t\treturn vec4(straightColor.x.add(lightColor.x.mul(rimLight)), straightColor.y.add(lightColor.y.mul(rimLight)), straightColor.z.add(lightColor.z.mul(rimLight)), straightColor.w.mul(sphereAlpha));\n\t}\n};\nvar Spherize_default = componentDefinition;\nexport { componentDefinition as n, Spherize_default as t };\n","import { a as transformColor, l as transformPosition, o as transformColorSpace, t as colorSpaceOptions } from \"./transformations-CJcUeZIC.js\";\nimport { t as mixColors } from \"./colorMixing-BPpDnR5I.js\";\nimport { t as createAnimatedTime } from \"./time-DUqSFWvT.js\";\nimport { abs, atan, clamp, float, fract, fwidth, length, mix, screenUV, smoothstep, vec2, vec4, viewportSize } from \"three/tsl\";\nconst componentDefinition = {\n\tname: \"Spiral\",\n\tcategory: \"Textures\",\n\tdescription: \"Rotating spiral pattern with animated movement\",\n\tprops: {\n\t\tcolorA: {\n\t\t\tdefault: \"#000000\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Background color\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Color A\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tcolorB: {\n\t\t\tdefault: \"#ffffff\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Spiral stroke color\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Color B\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tstrokeWidth: {\n\t\t\tdefault: .5,\n\t\t\tdescription: \"Thickness of spiral stroke\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 2,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Stroke Width\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tstrokeFalloff: {\n\t\t\tdefault: 0,\n\t\t\tdescription: \"Stroke losing width further from center\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Stroke Falloff\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tsoftness: {\n\t\t\tdefault: 0,\n\t\t\tdescription: \"Color transition sharpness (0 = hard edge, 1 = smooth fade)\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Softness\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tspeed: {\n\t\t\tdefault: 1,\n\t\t\tdescription: \"Animation speed (negative values reverse direction)\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: -3,\n\t\t\t\tmax: 3,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Speed\",\n\t\t\t\tgroup: \"Animation\"\n\t\t\t}\n\t\t},\n\t\tcenter: {\n\t\t\tdefault: {\n\t\t\t\tx: .5,\n\t\t\t\ty: .5\n\t\t\t},\n\t\t\ttransform: transformPosition,\n\t\t\tdescription: \"The center point of the spiral\",\n\t\t\tui: {\n\t\t\t\ttype: \"position\",\n\t\t\t\tlabel: \"Center\",\n\t\t\t\tgroup: \"Position\"\n\t\t\t}\n\t\t},\n\t\tscale: {\n\t\t\tdefault: 1,\n\t\t\tdescription: \"Scale factor for spiral bands (higher = more bands, lower = fewer bands)\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: .1,\n\t\t\t\tmax: 5,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Scale\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tcolorSpace: {\n\t\t\tdefault: \"linear\",\n\t\t\ttransform: transformColorSpace,\n\t\t\tcompileTime: true,\n\t\t\tdescription: \"Color space for color interpolation\",\n\t\t\tui: {\n\t\t\t\ttype: \"select\",\n\t\t\t\toptions: colorSpaceOptions,\n\t\t\t\tlabel: \"Color Space\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t}\n\t},\n\tfragmentNode: (params) => {\n\t\tconst { uniforms } = params;\n\t\tconst baseUV = screenUV;\n\t\tconst aspect = viewportSize.x.div(viewportSize.y);\n\t\tconst aspectCorrectedUV = vec2(baseUV.x.mul(aspect), baseUV.y);\n\t\tconst centerPos = vec2(uniforms.center.uniform.x.mul(aspect), uniforms.center.uniform.y.oneMinus());\n\t\tconst uv$1 = aspectCorrectedUV.sub(centerPos);\n\t\tconst t = createAnimatedTime(params, uniforms.speed);\n\t\tconst l = length(uv$1);\n\t\tconst adjustedLength = l;\n\t\tconst angle = atan(uv$1.y, uv$1.x).sub(t);\n\t\tconst TWO_PI = float(6.283185307);\n\t\tconst angleNormalised = angle.div(TWO_PI);\n\t\tconst offset = adjustedLength.mul(uniforms.scale.uniform).add(angleNormalised);\n\t\tconst shape = abs(fract(offset).sub(.5)).mul(2);\n\t\tconst baseWidth = clamp(uniforms.strokeWidth.uniform, uniforms.strokeFalloff.uniform.mul(.005), 1);\n\t\tconst falloffAmount = clamp(uniforms.strokeFalloff.uniform, 0, 1).mul(l).oneMinus();\n\t\tconst width = baseWidth.mul(falloffAmount);\n\t\tconst fw = fwidth(offset);\n\t\tconst pixelSize = mix(float(4).sub(smoothstep(.05, .4, uniforms.strokeWidth.uniform.mul(2)).mul(smoothstep(.05, .4, uniforms.strokeWidth.uniform.oneMinus().mul(2))).mul(3)).mul(fw), fwidth(shape), clamp(fw, 0, 1));\n\t\tconst res = smoothstep(width.sub(pixelSize).sub(uniforms.softness.uniform), width.add(pixelSize).add(uniforms.softness.uniform), shape);\n\t\tconst mixedColor = mixColors(uniforms.colorA.uniform, uniforms.colorB.uniform, res, uniforms.colorSpace.uniform.value);\n\t\treturn vec4(mixedColor.rgb, mixedColor.a);\n\t}\n};\nvar Spiral_default = componentDefinition;\nexport { componentDefinition as n, Spiral_default as t };\n","import { a as transformColor, l as transformPosition, o as transformColorSpace, t as colorSpaceOptions } from \"./transformations-CJcUeZIC.js\";\nimport { t as mixColors } from \"./colorMixing-BPpDnR5I.js\";\nimport { d as starSdf } from \"./sdf-D_EAGXhN.js\";\nimport { cos, float, screenUV, sin, smoothstep, vec2, vec4, viewportSize } from \"three/tsl\";\nvar transformStrokePosition = (value) => {\n\treturn {\n\t\t\"outside\": 0,\n\t\t\"center\": 1,\n\t\t\"inside\": 2\n\t}[value?.toLowerCase()] ?? 1;\n};\nconst componentDefinition = {\n\tname: \"Star\",\n\tcategory: \"Shapes\",\n\tdescription: \"Classic star polygon with straight sides and sharp pointed tips\",\n\tprops: {\n\t\tcolor: {\n\t\t\tdefault: \"#ffffff\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Fill color of the star\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Color\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tcenter: {\n\t\t\tdefault: {\n\t\t\t\tx: .5,\n\t\t\t\ty: .5\n\t\t\t},\n\t\t\ttransform: transformPosition,\n\t\t\tdescription: \"Center position of the star\",\n\t\t\tui: {\n\t\t\t\ttype: \"position\",\n\t\t\t\tlabel: \"Center\",\n\t\t\t\tgroup: \"Position\"\n\t\t\t}\n\t\t},\n\t\tradius: {\n\t\t\tdefault: .4,\n\t\t\tdescription: \"Outer tip radius — distance from center to the pointed tips\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Radius\",\n\t\t\t\tgroup: \"Shape\"\n\t\t\t}\n\t\t},\n\t\tsides: {\n\t\t\tdefault: 5,\n\t\t\tdescription: \"Number of points on the star\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 3,\n\t\t\t\tmax: 12,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Points\",\n\t\t\t\tgroup: \"Shape\"\n\t\t\t}\n\t\t},\n\t\tinnerRatio: {\n\t\t\tdefault: .4,\n\t\t\tdescription: \"Inner vertex radius as a ratio of outer radius (0.382 = golden-ratio 5-star)\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: .1,\n\t\t\t\tmax: .9,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Inner Ratio\",\n\t\t\t\tgroup: \"Shape\"\n\t\t\t}\n\t\t},\n\t\trotation: {\n\t\t\tdefault: 0,\n\t\t\tdescription: \"Rotation in degrees\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 360,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Rotation\",\n\t\t\t\tgroup: \"Shape\"\n\t\t\t}\n\t\t},\n\t\tsoftness: {\n\t\t\tdefault: 0,\n\t\t\tdescription: \"Edge softness for antialiasing\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: .1,\n\t\t\t\tstep: .001,\n\t\t\t\tlabel: \"Softness\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tstrokeThickness: {\n\t\t\tdefault: 0,\n\t\t\tdescription: \"Stroke thickness. Zero means no stroke.\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: .2,\n\t\t\t\tstep: .005,\n\t\t\t\tlabel: \"Stroke Thickness\",\n\t\t\t\tgroup: \"Stroke\"\n\t\t\t}\n\t\t},\n\t\tstrokeColor: {\n\t\t\tdefault: \"#000000\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Color of the stroke outline\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Stroke Color\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tstrokePosition: {\n\t\t\tdefault: \"center\",\n\t\t\ttransform: transformStrokePosition,\n\t\t\tdescription: \"Position of the stroke relative to the shape edge\",\n\t\t\tui: {\n\t\t\t\ttype: \"select\",\n\t\t\t\toptions: [\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Outside\",\n\t\t\t\t\t\tvalue: \"outside\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Center\",\n\t\t\t\t\t\tvalue: \"center\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Inside\",\n\t\t\t\t\t\tvalue: \"inside\"\n\t\t\t\t\t}\n\t\t\t\t],\n\t\t\t\tlabel: \"Stroke Position\",\n\t\t\t\tgroup: \"Stroke\"\n\t\t\t}\n\t\t},\n\t\tcolorSpace: {\n\t\t\tdefault: \"linear\",\n\t\t\ttransform: transformColorSpace,\n\t\t\tcompileTime: true,\n\t\t\tdescription: \"Color space for blending fill and stroke colors\",\n\t\t\tui: {\n\t\t\t\ttype: \"select\",\n\t\t\t\toptions: colorSpaceOptions,\n\t\t\t\tlabel: \"Color Blending\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t}\n\t},\n\tfragmentNode: ({ uniforms }) => {\n\t\tconst uv$1 = screenUV;\n\t\tconst aspect = viewportSize.x.div(viewportSize.y);\n\t\tconst aspectUV = vec2(uv$1.x.mul(aspect), uv$1.y);\n\t\tconst centerPos = vec2(uniforms.center.uniform.x.mul(aspect), uniforms.center.uniform.y.oneMinus());\n\t\tconst dx = aspectUV.x.sub(centerPos.x);\n\t\tconst dy = aspectUV.y.sub(centerPos.y);\n\t\tconst rotRad = uniforms.rotation.uniform.mul(float(Math.PI / 180));\n\t\tconst cosR = cos(rotRad);\n\t\tconst sinR = sin(rotRad);\n\t\tconst sdf = starSdf(dx.mul(cosR).add(dy.mul(sinR)), dy.mul(cosR).sub(dx.mul(sinR)), uniforms.radius.uniform, uniforms.sides.uniform, uniforms.innerRatio.uniform);\n\t\tconst edgeSoftness = uniforms.softness.uniform;\n\t\tconst strokeThickness = uniforms.strokeThickness.uniform;\n\t\tconst strokePositionMode = uniforms.strokePosition.uniform;\n\t\tconst hasStroke = strokeThickness.greaterThan(float(0));\n\t\tconst isCenter = strokePositionMode.greaterThanEqual(float(.5)).and(strokePositionMode.lessThan(float(1.5)));\n\t\tconst isInside = strokePositionMode.greaterThanEqual(float(1.5));\n\t\tconst halfThickness = strokeThickness.mul(.5);\n\t\tconst strokeInner = isInside.select(strokeThickness.negate(), isCenter.select(halfThickness.negate(), float(0)));\n\t\tconst strokeOuter = isInside.select(float(0), isCenter.select(halfThickness, strokeThickness));\n\t\tconst overallMask = smoothstep(strokeOuter.sub(edgeSoftness), strokeOuter, sdf).oneMinus();\n\t\tconst strokeBlend = hasStroke.select(smoothstep(strokeInner.sub(edgeSoftness), strokeInner, sdf), float(0));\n\t\tconst blendedColor = mixColors(vec4(uniforms.color.uniform.rgb, uniforms.color.uniform.a), vec4(uniforms.strokeColor.uniform.rgb, uniforms.strokeColor.uniform.a), strokeBlend, uniforms.colorSpace.uniform.value);\n\t\treturn vec4(blendedColor.xyz, blendedColor.w.mul(overallMask));\n\t}\n};\nvar Star_default = componentDefinition;\nexport { componentDefinition as n, Star_default as t };\n","import { a as transformColor, l as transformPosition } from \"./transformations-CJcUeZIC.js\";\nimport { t as createAnimatedTime } from \"./time-DUqSFWvT.js\";\nimport { Fn, abs, cos, float, max, mix, screenUV, smoothstep, vec2, vec4, viewportSize } from \"three/tsl\";\nconst componentDefinition = {\n\tname: \"Strands\",\n\tcategory: \"Textures\",\n\tdescription: \"Procedural wavy strands with layered animation\",\n\trequiresRTT: false,\n\trequiresChild: false,\n\tprops: {\n\t\tspeed: {\n\t\t\tdefault: .5,\n\t\t\tdescription: \"Overall animation speed\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Speed\",\n\t\t\t\tgroup: \"Animation\"\n\t\t\t}\n\t\t},\n\t\tamplitude: {\n\t\t\tdefault: 1,\n\t\t\tdescription: \"Wave height amplitude\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 5,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Amplitude\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tfrequency: {\n\t\t\tdefault: 1,\n\t\t\tdescription: \"Wave frequency\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 5,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Frequency\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tlineCount: {\n\t\t\tdefault: 12,\n\t\t\tdescription: \"Number of wave lines\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 4,\n\t\t\t\tmax: 32,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Line Count\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tlineWidth: {\n\t\t\tdefault: .1,\n\t\t\tdescription: \"Width of wave lines\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .05,\n\t\t\t\tlabel: \"Line Width\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\twaveColor: {\n\t\t\tdefault: \"#f1c907\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Color of the waves\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Wave Color\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tpinEdges: {\n\t\t\tdefault: true,\n\t\t\tdescription: \"Pin waves at edges (fade effect)\",\n\t\t\tui: {\n\t\t\t\ttype: \"checkbox\",\n\t\t\t\tlabel: \"Pin Edges\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tstart: {\n\t\t\tdefault: {\n\t\t\t\tx: 0,\n\t\t\t\ty: .5\n\t\t\t},\n\t\t\ttransform: transformPosition,\n\t\t\tdescription: \"Starting point of the waves\",\n\t\t\tui: {\n\t\t\t\ttype: \"position\",\n\t\t\t\tlabel: \"Start\",\n\t\t\t\tgroup: \"Position\"\n\t\t\t}\n\t\t},\n\t\tend: {\n\t\t\tdefault: {\n\t\t\t\tx: 1,\n\t\t\t\ty: .5\n\t\t\t},\n\t\t\ttransform: transformPosition,\n\t\t\tdescription: \"Ending point of the waves\",\n\t\t\tui: {\n\t\t\t\ttype: \"position\",\n\t\t\t\tlabel: \"End\",\n\t\t\t\tgroup: \"Position\"\n\t\t\t}\n\t\t}\n\t},\n\tfragmentNode: (params) => {\n\t\tconst { uniforms } = params;\n\t\tconst baseUV = screenUV;\n\t\tconst t = createAnimatedTime(params, uniforms.speed);\n\t\tconst random = Fn(([time$1]) => {\n\t\t\treturn cos(time$1).add(cos(time$1.mul(1.2).add(1.6))).add(cos(time$1.mul(1.4).add(1.5))).div(3);\n\t\t});\n\t\treturn Fn(([uv$1]) => {\n\t\t\tconst aspectRatio = viewportSize.x.div(viewportSize.y);\n\t\t\tconst startPos = vec2(uniforms.start.uniform.x.mul(aspectRatio), uniforms.start.uniform.y.oneMinus());\n\t\t\tconst endPos = vec2(uniforms.end.uniform.x.mul(aspectRatio), uniforms.end.uniform.y.oneMinus());\n\t\t\tconst aspectUV = vec2(uv$1.x.mul(aspectRatio), uv$1.y);\n\t\t\tconst direction = endPos.sub(startPos);\n\t\t\tconst length$1 = direction.length();\n\t\t\tconst normalizedDir = direction.div(length$1);\n\t\t\tconst perpDir = vec2(normalizedDir.y.negate(), normalizedDir.x);\n\t\t\tconst relativePos = aspectUV.sub(startPos);\n\t\t\tconst progress = relativePos.dot(normalizedDir).div(length$1);\n\t\t\tconst distFromLine = relativePos.dot(perpDir);\n\t\t\tconst waveCoord = progress.mul(10);\n\t\t\tconst perpCoord = distFromLine.mul(10);\n\t\t\tconst edgeFade = uniforms.pinEdges.uniform.select(smoothstep(float(0), float(.1), progress).mul(smoothstep(float(.9), float(1), progress).oneMinus()), float(1));\n\t\t\tconst horizontalFade = uniforms.pinEdges.uniform.select(cos(progress.mul(6.28)).mul(.5).add(.5).oneMinus(), float(1));\n\t\t\tconst verticalFade = cos(progress.mul(6.28)).mul(.5).add(.5).oneMinus();\n\t\t\tconst linesColor = vec4(0, 0, 0, 0).toVar();\n\t\t\tconst maxLines = uniforms.lineCount.uniform;\n\t\t\tfor (let i = 0; i < 32; i++) {\n\t\t\t\tconst lineActive = float(i).lessThan(maxLines);\n\t\t\t\tconst lineIndex = float(i);\n\t\t\t\tconst normalizedIndex = lineIndex.div(maxLines);\n\t\t\t\tconst offsetFreq = float(.5);\n\t\t\t\tconst offsetSpeed = float(1.33);\n\t\t\t\tconst offsetTime = t.mul(offsetSpeed);\n\t\t\t\tconst offsetPosition = lineIndex.add(waveCoord.mul(offsetFreq));\n\t\t\t\tconst rand = random(offsetPosition.add(offsetTime)).mul(.5).add(.5);\n\t\t\t\tconst halfWidth = mix(float(.01), uniforms.lineWidth.uniform, rand.mul(horizontalFade)).mul(.5);\n\t\t\t\tconst minSpread = float(.6);\n\t\t\t\tconst maxSpread = float(2);\n\t\t\t\tconst offset = random(offsetPosition.add(offsetTime.mul(normalizedIndex.add(1)))).mul(mix(minSpread, maxSpread, horizontalFade)).mul(uniforms.amplitude.uniform);\n\t\t\t\tconst linePosition = random(waveCoord.mul(uniforms.frequency.uniform).add(t)).mul(horizontalFade).mul(uniforms.amplitude.uniform).add(offset);\n\t\t\t\tconst dist = abs(perpCoord.sub(linePosition));\n\t\t\t\tconst lineEdgeSoftness = float(.01);\n\t\t\t\tconst line = smoothstep(halfWidth.sub(lineEdgeSoftness), halfWidth.add(lineEdgeSoftness), dist).oneMinus();\n\t\t\t\tconst lineContribution = vec4(uniforms.waveColor.uniform.r, uniforms.waveColor.uniform.g, uniforms.waveColor.uniform.b, line).mul(rand);\n\t\t\t\tlinesColor.assign(max(linesColor, lineActive.select(lineContribution, vec4(0, 0, 0, 0))));\n\t\t\t}\n\t\t\treturn linesColor.mul(vec4(1, 1, 1, verticalFade.mul(edgeFade)));\n\t\t})(baseUV);\n\t}\n};\nvar Strands_default = componentDefinition;\nexport { componentDefinition as n, Strands_default as t };\n","import { t as applyEdgeHandling } from \"./edges-CX_lJB9R.js\";\nimport { c as transformEdges, l as transformPosition } from \"./transformations-CJcUeZIC.js\";\nimport { t as unpremultiplyAlpha } from \"./alpha-C4ptedXe.js\";\nimport { clamp, convertToTexture, cos, float, mix, screenUV, sin, vec2, vec4, viewportSize } from \"three/tsl\";\nconst componentDefinition = {\n\tname: \"Stretch\",\n\tcategory: \"Distortions\",\n\tdescription: \"Stretch content towards a direction from a center point\",\n\trequiresRTT: true,\n\trequiresChild: true,\n\tprops: {\n\t\tcenter: {\n\t\t\tdefault: {\n\t\t\t\tx: .5,\n\t\t\t\ty: .5\n\t\t\t},\n\t\t\ttransform: transformPosition,\n\t\t\tdescription: \"The center point of the stretch effect\",\n\t\t\tui: {\n\t\t\t\ttype: \"position\",\n\t\t\t\tlabel: \"Center\",\n\t\t\t\tgroup: \"Position\"\n\t\t\t}\n\t\t},\n\t\tstrength: {\n\t\t\tdefault: 1,\n\t\t\tdescription: \"The intensity of the stretch effect\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .05,\n\t\t\t\tlabel: \"Strength\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tangle: {\n\t\t\tdefault: 0,\n\t\t\tdescription: \"The direction of the stretch in degrees\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 360,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Angle\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tfalloff: {\n\t\t\tdefault: 0,\n\t\t\tdescription: \"Controls the sharpness of the transition (0 = sharp edge, 1 = gradual transition)\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .05,\n\t\t\t\tlabel: \"Falloff\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tedges: {\n\t\t\tdefault: \"stretch\",\n\t\t\tdescription: \"How to handle edges when distortion pushes content out of bounds\",\n\t\t\ttransform: transformEdges,\n\t\t\tcompileTime: true,\n\t\t\tui: {\n\t\t\t\ttype: \"select\",\n\t\t\t\toptions: [\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Stretch\",\n\t\t\t\t\t\tvalue: \"stretch\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Transparent\",\n\t\t\t\t\t\tvalue: \"transparent\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Mirror\",\n\t\t\t\t\t\tvalue: \"mirror\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Wrap\",\n\t\t\t\t\t\tvalue: \"wrap\"\n\t\t\t\t\t}\n\t\t\t\t],\n\t\t\t\tlabel: \"Edges\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t}\n\t},\n\tfragmentNode: ({ uniforms, childNode, onCleanup }) => {\n\t\tif (!childNode) return vec4(0, 0, 0, 0);\n\t\tconst childTexture = convertToTexture(childNode);\n\t\tonCleanup(() => {\n\t\t\tif (childTexture?.renderTarget?.dispose) childTexture.renderTarget.dispose();\n\t\t});\n\t\tconst aspect = viewportSize.x.div(viewportSize.y);\n\t\tconst aspectCorrectedUV = vec2(screenUV.x.mul(aspect), screenUV.y);\n\t\tconst centerPos = vec2(uniforms.center.uniform.x.mul(aspect), uniforms.center.uniform.y.oneMinus());\n\t\tconst delta = aspectCorrectedUV.sub(centerPos);\n\t\tconst angleRad = uniforms.angle.uniform.mul(Math.PI / 180);\n\t\tconst directionVector = vec2(cos(angleRad), sin(angleRad));\n\t\tconst projection = delta.dot(directionVector);\n\t\tconst parallel = directionVector.mul(projection);\n\t\tconst perpendicular = delta.sub(parallel);\n\t\tconst falloffAmount = uniforms.falloff.uniform;\n\t\tconst transitionWidth = mix(float(.001), float(75), falloffAmount);\n\t\tconst effectMask = clamp(projection.div(transitionWidth), float(0), float(1));\n\t\tconst scaledStrength = uniforms.strength.uniform.mul(float(100));\n\t\tconst stretchFactor = float(1).add(scaledStrength.mul(effectMask));\n\t\tconst finalProjection = projection.div(stretchFactor);\n\t\tconst stretchedDelta = directionVector.mul(finalProjection).add(perpendicular);\n\t\tconst stretchedUV = centerPos.add(stretchedDelta);\n\t\tconst finalUV = vec2(stretchedUV.x.div(aspect), stretchedUV.y);\n\t\treturn unpremultiplyAlpha(applyEdgeHandling(finalUV, childTexture.sample(finalUV), childTexture, uniforms.edges.uniform.value));\n\t}\n};\nvar Stretch_default = componentDefinition;\nexport { componentDefinition as n, Stretch_default as t };\n","import { a as transformColor, o as transformColorSpace, r as transformAngle, t as colorSpaceOptions } from \"./transformations-CJcUeZIC.js\";\nimport { t as mixColors } from \"./colorMixing-BPpDnR5I.js\";\nimport { t as createAnimatedTime } from \"./time-DUqSFWvT.js\";\nimport { cos, fract, fwidth, screenUV, sin, smoothstep, vec2, vec4, viewportSize } from \"three/tsl\";\nconst componentDefinition = {\n\tname: \"Stripes\",\n\tcategory: \"Textures\",\n\tdescription: \"Alternating colored stripes with animation\",\n\tprops: {\n\t\tcolorA: {\n\t\t\tdefault: \"#000000\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"First stripe color\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Color A\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tcolorB: {\n\t\t\tdefault: \"#ffffff\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Second stripe color\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Color B\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tangle: {\n\t\t\tdefault: 45,\n\t\t\ttransform: transformAngle,\n\t\t\tdescription: \"Angle of stripes in degrees\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: -180,\n\t\t\t\tmax: 180,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Angle\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tdensity: {\n\t\t\tdefault: 5,\n\t\t\tdescription: \"Number of stripe pairs visible\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 1,\n\t\t\t\tmax: 30,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Density\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tbalance: {\n\t\t\tdefault: .5,\n\t\t\tdescription: \"Ratio of the two colors\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Balance\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tsoftness: {\n\t\t\tdefault: 0,\n\t\t\tdescription: \"Edge softness\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Softness\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tspeed: {\n\t\t\tdefault: .2,\n\t\t\tdescription: \"Animation speed\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: -1,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Speed\",\n\t\t\t\tgroup: \"Animation\"\n\t\t\t}\n\t\t},\n\t\toffset: {\n\t\t\tdefault: 0,\n\t\t\tdescription: \"Phase offset for pattern positioning\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Offset\",\n\t\t\t\tgroup: \"Animation\"\n\t\t\t}\n\t\t},\n\t\tcolorSpace: {\n\t\t\tdefault: \"linear\",\n\t\t\ttransform: transformColorSpace,\n\t\t\tcompileTime: true,\n\t\t\tdescription: \"Color space for interpolation\",\n\t\t\tui: {\n\t\t\t\ttype: \"select\",\n\t\t\t\toptions: colorSpaceOptions,\n\t\t\t\tlabel: \"Color Space\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t}\n\t},\n\tfragmentNode: (params) => {\n\t\tconst { uniforms } = params;\n\t\tconst uv$1 = screenUV;\n\t\tconst aspect = viewportSize.x.div(viewportSize.y);\n\t\tconst aspectCorrectedUV = vec2(uv$1.x.mul(aspect), uv$1.y);\n\t\tconst angleRad = uniforms.angle.uniform.mul(.0174533);\n\t\tconst cosA = cos(angleRad);\n\t\tconst sinA = sin(angleRad);\n\t\tconst rotatedCoord = aspectCorrectedUV.x.mul(cosA).add(aspectCorrectedUV.y.mul(sinA));\n\t\tconst t = createAnimatedTime(params, uniforms.speed);\n\t\tconst pattern = rotatedCoord.mul(uniforms.density.uniform).add(t).add(uniforms.offset.uniform);\n\t\tconst stripe = fract(pattern);\n\t\tconst fw = fwidth(pattern);\n\t\tconst balance = uniforms.balance.uniform;\n\t\tconst soft = uniforms.softness.uniform;\n\t\tconst mask = smoothstep(balance.sub(soft).sub(fw), balance.add(soft).add(fw), stripe);\n\t\tconst mixedColor = mixColors(uniforms.colorA.uniform, uniforms.colorB.uniform, mask, uniforms.colorSpace.uniform.value);\n\t\treturn vec4(mixedColor.rgb, mixedColor.a);\n\t}\n};\nvar Stripes_default = componentDefinition;\nexport { componentDefinition as n, Stripes_default as t };\n","import { a as transformColor, l as transformPosition } from \"./transformations-CJcUeZIC.js\";\nimport { t as createAnimatedTime } from \"./time-DUqSFWvT.js\";\nimport { Fn, clamp, cos, exp, float, fract, mix, screenUV, sin, smoothstep, vec3, vec4, viewportSize } from \"three/tsl\";\nconst componentDefinition = {\n\tname: \"StudioBackground\",\n\tcategory: \"Textures\",\n\tdescription: \"Multi-light studio background with ambient motion.\",\n\tprops: {\n\t\tcolor: {\n\t\t\tdefault: \"#d8dbec\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Base studio surface color\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Surface Color\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tkeyColor: {\n\t\t\tdefault: \"#d5e4ea\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Color of the overhead key light\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Key Color\",\n\t\t\t\tgroup: \"Key Light\"\n\t\t\t}\n\t\t},\n\t\tkeyIntensity: {\n\t\t\tdefault: 40,\n\t\t\tdescription: \"Intensity of the key light\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 100,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Intensity\",\n\t\t\t\tgroup: \"Key Light\"\n\t\t\t}\n\t\t},\n\t\tkeySoftness: {\n\t\t\tdefault: 50,\n\t\t\tdescription: \"How diffuse the key light is\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 100,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Softness\",\n\t\t\t\tgroup: \"Key Light\"\n\t\t\t}\n\t\t},\n\t\tfillColor: {\n\t\t\tdefault: \"#d5e4ea\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Color of the side fill lights\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Fill Color\",\n\t\t\t\tgroup: \"Fill Lights\"\n\t\t\t}\n\t\t},\n\t\tfillIntensity: {\n\t\t\tdefault: 10,\n\t\t\tdescription: \"Intensity of the fill lights\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 100,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Intensity\",\n\t\t\t\tgroup: \"Fill Lights\"\n\t\t\t}\n\t\t},\n\t\tfillSoftness: {\n\t\t\tdefault: 70,\n\t\t\tdescription: \"How diffuse the fill lights are\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 100,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Softness\",\n\t\t\t\tgroup: \"Fill Lights\"\n\t\t\t}\n\t\t},\n\t\tfillAngle: {\n\t\t\tdefault: 70,\n\t\t\tdescription: \"How far apart the fill lights are from center\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 100,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Spread\",\n\t\t\t\tgroup: \"Fill Lights\"\n\t\t\t}\n\t\t},\n\t\tbackColor: {\n\t\t\tdefault: \"#c8d4e8\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Color of the upward back wash\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Back Color\",\n\t\t\t\tgroup: \"Back Light\"\n\t\t\t}\n\t\t},\n\t\tbackIntensity: {\n\t\t\tdefault: 20,\n\t\t\tdescription: \"Intensity of the back wash\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 100,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Intensity\",\n\t\t\t\tgroup: \"Back Light\"\n\t\t\t}\n\t\t},\n\t\tbackSoftness: {\n\t\t\tdefault: 80,\n\t\t\tdescription: \"How diffuse the back wash is\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 100,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Softness\",\n\t\t\t\tgroup: \"Back Light\"\n\t\t\t}\n\t\t},\n\t\tbrightness: {\n\t\t\tdefault: 20,\n\t\t\tdescription: \"Overall ambient light level\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 100,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Ambient\",\n\t\t\t\tgroup: \"Lighting\"\n\t\t\t}\n\t\t},\n\t\tvignette: {\n\t\t\tdefault: 0,\n\t\t\tdescription: \"Edge darkening\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 100,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Vignette\",\n\t\t\t\tgroup: \"Lighting\"\n\t\t\t}\n\t\t},\n\t\tcenter: {\n\t\t\tdefault: {\n\t\t\t\tx: .5,\n\t\t\t\ty: .8\n\t\t\t},\n\t\t\ttransform: transformPosition,\n\t\t\tdescription: \"Where the spotlight meets the floor\",\n\t\t\tui: {\n\t\t\t\ttype: \"position\",\n\t\t\t\tlabel: \"Stage Center\",\n\t\t\t\tgroup: \"Scene\"\n\t\t\t}\n\t\t},\n\t\tlightTarget: {\n\t\t\tdefault: 100,\n\t\t\tdescription: \"How far toward the floor vs wall the spotlights aim\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 100,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Light Depth\",\n\t\t\t\tgroup: \"Scene\"\n\t\t\t}\n\t\t},\n\t\twallCurvature: {\n\t\t\tdefault: 10,\n\t\t\tdescription: \"How rounded the cove is\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 100,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Wall Curvature\",\n\t\t\t\tgroup: \"Scene\"\n\t\t\t}\n\t\t},\n\t\tambientIntensity: {\n\t\t\tdefault: 50,\n\t\t\tdescription: \"Intensity of drifting ambient lights\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 100,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Ambient Detail\",\n\t\t\t\tgroup: \"Environment\"\n\t\t\t}\n\t\t},\n\t\tambientSpeed: {\n\t\t\tdefault: 2,\n\t\t\tdescription: \"Drift speed\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: -5,\n\t\t\t\tmax: 5,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Speed\",\n\t\t\t\tgroup: \"Environment\"\n\t\t\t}\n\t\t},\n\t\tseed: {\n\t\t\tdefault: 0,\n\t\t\tdescription: \"Seed for ambient pattern\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 100,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Seed\",\n\t\t\t\tgroup: \"Environment\"\n\t\t\t}\n\t\t}\n\t},\n\tfragmentNode: (params) => {\n\t\tconst { uniforms } = params;\n\t\tconst surfaceColor = uniforms.color.uniform;\n\t\tconst brightness = uniforms.brightness.uniform.mul(.02);\n\t\tconst keyColor = uniforms.keyColor.uniform;\n\t\tconst keyInt = uniforms.keyIntensity.uniform.mul(.015);\n\t\tconst fillColor = uniforms.fillColor.uniform;\n\t\tconst fillInt = uniforms.fillIntensity.uniform.mul(.015);\n\t\tconst fillOffset = uniforms.fillAngle.uniform.mul(.005);\n\t\tconst backColor = uniforms.backColor.uniform;\n\t\tconst backInt = uniforms.backIntensity.uniform.mul(.015);\n\t\tconst centerX = uniforms.center.uniform.x;\n\t\tconst centerY = uniforms.center.uniform.y.oneMinus();\n\t\tconst lightTarget = uniforms.lightTarget.uniform.mul(.01);\n\t\tconst curvature = uniforms.wallCurvature.uniform.mul(.01);\n\t\tconst vignetteStrength = uniforms.vignette.uniform.mul(.025);\n\t\tconst ambIntensity = uniforms.ambientIntensity.uniform.mul(.012);\n\t\tconst seed = uniforms.seed.uniform;\n\t\tconst aspect = viewportSize.x.div(viewportSize.y);\n\t\tconst animTime = createAnimatedTime(params, uniforms.ambientSpeed);\n\t\tconst keyDecay = mix(float(5), float(.8), uniforms.keySoftness.uniform.mul(.01));\n\t\tconst fillDecay = mix(float(5), float(.8), uniforms.fillSoftness.uniform.mul(.01));\n\t\tconst backDecay = mix(float(5), float(.8), uniforms.backSoftness.uniform.mul(.01));\n\t\tconst hash01 = (x) => fract(sin(x.mul(12.9898)).mul(43758.5453));\n\t\tconst ambLights = Array.from({ length: 4 }, (_, i) => {\n\t\t\tconst s = seed.add(float(i * 73.1));\n\t\t\tconst sizeVal = hash01(s.add(311)).mul(.12).add(.1);\n\t\t\treturn {\n\t\t\t\tradiusX: hash01(s).mul(.5).add(.2),\n\t\t\t\tradiusY: hash01(s.add(37)).mul(.25).add(.1),\n\t\t\t\tfreqX: hash01(s.add(91)).mul(.3).add(.1),\n\t\t\t\tfreqY: hash01(s.add(143)).mul(.25).add(.08),\n\t\t\t\tphaseX: hash01(s.add(200)).mul(Math.PI * 2),\n\t\t\t\tphaseY: hash01(s.add(257)).mul(Math.PI * 2),\n\t\t\t\tsizeSq: sizeVal.mul(sizeVal)\n\t\t\t};\n\t\t});\n\t\treturn Fn(() => {\n\t\t\tconst uv$1 = screenUV;\n\t\t\tconst transitionWidth = mix(float(.015), float(.15), curvature);\n\t\t\tconst isFloor = smoothstep(centerY.sub(transitionWidth), centerY.add(transitionWidth), uv$1.y);\n\t\t\tconst notFloor = float(1).sub(isFloor);\n\t\t\tconst wallNormY = clamp(uv$1.y.div(centerY), 0, 1);\n\t\t\tconst wallNormY2 = wallNormY.mul(wallNormY);\n\t\t\tconst floorNormY = clamp(uv$1.y.sub(centerY).div(float(1).sub(centerY)), 0, 1);\n\t\t\tconst uvXCentered = uv$1.x.sub(centerX).mul(aspect);\n\t\t\tconst coneWidth = mix(float(.05), float(.45), wallNormY2);\n\t\t\tconst wallFallY = float(1).sub(wallNormY).mul(1.2);\n\t\t\tconst wallFallY2 = wallFallY.mul(wallFallY);\n\t\t\tconst floorPoolY = centerY.add(float(1).sub(centerY).mul(.3));\n\t\t\tconst floorDy = uv$1.y.sub(floorPoolY).mul(4);\n\t\t\tconst floorDy2 = floorDy.mul(floorDy);\n\t\t\tconst ambient = mix(mix(float(.2), float(.4), wallNormY), mix(float(.38), float(.18), floorNormY), isFloor).mul(brightness);\n\t\t\tconst curveDist = uv$1.y.sub(centerY).div(transitionWidth.add(.001));\n\t\t\tconst curveGlow = exp(curveDist.mul(curveDist).mul(-.5)).mul(curvature).mul(brightness).mul(.1);\n\t\t\tconst neutralBase = ambient.add(curveGlow);\n\t\t\tconst lightAccum = vec3(neutralBase, neutralBase, neutralBase).toVar();\n\t\t\tconst wallBias = float(1).sub(lightTarget).mul(1.4).add(.3);\n\t\t\tconst floorBias = lightTarget.mul(1.4).add(.3);\n\t\t\tconst downSpot = (sourceX, decay) => {\n\t\t\t\tconst beamX = mix(sourceX, centerX, wallNormY2);\n\t\t\t\tconst wDx = uv$1.x.sub(beamX).mul(aspect).div(coneWidth);\n\t\t\t\tconst wall = exp(wDx.mul(wDx).add(wallFallY2).mul(-1).mul(decay)).mul(notFloor).mul(wallBias);\n\t\t\t\tconst poolX = mix(centerX, sourceX, float(.25));\n\t\t\t\tconst fDx = uv$1.x.sub(poolX).mul(aspect).mul(1.4);\n\t\t\t\tconst floor$1 = exp(fDx.mul(fDx).add(floorDy2).mul(-1).mul(decay.mul(1.5))).mul(isFloor).mul(floorBias);\n\t\t\t\treturn wall.add(floor$1);\n\t\t\t};\n\t\t\tconst keyPat = downSpot(centerX, keyDecay).mul(keyInt);\n\t\t\tlightAccum.assign(lightAccum.add(keyColor.rgb.mul(keyPat)));\n\t\t\tconst leftPat = downSpot(centerX.sub(fillOffset), fillDecay).mul(fillInt);\n\t\t\tconst rightPat = downSpot(centerX.add(fillOffset), fillDecay).mul(fillInt);\n\t\t\tlightAccum.assign(lightAccum.add(fillColor.rgb.mul(leftPat.add(rightPat))));\n\t\t\tconst backBottomY = mix(float(1), centerY, float(.15));\n\t\t\tconst bfDx = uvXCentered.mul(.5);\n\t\t\tconst bfDy = uv$1.y.sub(backBottomY).mul(4);\n\t\t\tconst backFloor = exp(bfDx.mul(bfDx).add(bfDy.mul(bfDy)).mul(-1).mul(backDecay)).mul(isFloor);\n\t\t\tconst bwDx = uvXCentered.mul(.6);\n\t\t\tconst bwDy = centerY.sub(uv$1.y).mul(3);\n\t\t\tconst backWall = exp(bwDx.mul(bwDx).add(bwDy.mul(bwDy)).mul(-1).mul(backDecay.mul(.8))).mul(notFloor).mul(wallNormY2);\n\t\t\tconst backPat = backFloor.add(backWall).mul(backInt);\n\t\t\tlightAccum.assign(lightAccum.add(backColor.rgb.mul(backPat)));\n\t\t\tconst bnDx = uvXCentered.mul(.7);\n\t\t\tconst bnDy = uv$1.y.sub(centerY).add(.02).mul(10);\n\t\t\tconst bounce = exp(bnDx.mul(bnDx).add(bnDy.mul(bnDy)).mul(-2.5)).mul(keyInt.mul(.12)).mul(notFloor);\n\t\t\tlightAccum.assign(lightAccum.add(vec3(bounce, bounce, bounce)));\n\t\t\tconst ambGlowScale = ambIntensity.mul(.25);\n\t\t\tfor (let i = 0; i < 4; i++) {\n\t\t\t\tconst l = ambLights[i];\n\t\t\t\tconst lx = centerX.add(sin(animTime.mul(l.freqX).add(l.phaseX)).mul(l.radiusX));\n\t\t\t\tconst ly = centerY.sub(.2).add(cos(animTime.mul(l.freqY).add(l.phaseY)).mul(l.radiusY));\n\t\t\t\tconst dx = uv$1.x.sub(lx).mul(aspect);\n\t\t\t\tconst dy = uv$1.y.sub(ly);\n\t\t\t\tconst glow = exp(dx.mul(dx).add(dy.mul(dy)).div(l.sizeSq).mul(-.5)).mul(ambGlowScale);\n\t\t\t\tlightAccum.assign(lightAccum.add(vec3(glow, glow, glow)));\n\t\t\t}\n\t\t\tconst vigX = uv$1.x.sub(.5).mul(aspect);\n\t\t\tconst vigY = uv$1.y.sub(.5);\n\t\t\tconst vigD2 = vigX.mul(vigX).add(vigY.mul(vigY));\n\t\t\tconst vig = clamp(float(1).sub(vigD2.mul(vignetteStrength)), 0, 1);\n\t\t\tlightAccum.assign(clamp(lightAccum, 0, 3));\n\t\t\treturn vec4(surfaceColor.rgb.mul(lightAccum).mul(vig).clamp(0, 1), float(1));\n\t\t})();\n\t}\n};\nvar StudioBackground_default = componentDefinition;\nexport { componentDefinition as n, StudioBackground_default as t };\n","import { a as transformColor, l as transformPosition } from \"./transformations-CJcUeZIC.js\";\nimport { t as createAnimatedTime } from \"./time-DUqSFWvT.js\";\nimport { atan, float, mix, pow, screenUV, sin, smoothstep, sqrt, vec4, viewportSize } from \"three/tsl\";\nconst componentDefinition = {\n\tname: \"SunBurst\",\n\tcategory: \"Textures\",\n\tdescription: \"Radial sunburst rays emanating from a center point\",\n\tprops: {\n\t\tcolor: {\n\t\t\tdefault: \"#ffdd88\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Ray color\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Color\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tbackground: {\n\t\t\tdefault: \"#000000\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Background color\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Background\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tcenter: {\n\t\t\tdefault: {\n\t\t\t\tx: .5,\n\t\t\t\ty: .5\n\t\t\t},\n\t\t\ttransform: transformPosition,\n\t\t\tdescription: \"Center point of the sunburst\",\n\t\t\tui: {\n\t\t\t\ttype: \"position\",\n\t\t\t\tlabel: \"Center\",\n\t\t\t\tgroup: \"Position\"\n\t\t\t}\n\t\t},\n\t\trayCount: {\n\t\t\tdefault: 12,\n\t\t\tdescription: \"Number of rays\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 3,\n\t\t\t\tmax: 64,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Ray Count\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tsoftness: {\n\t\t\tdefault: .3,\n\t\t\tdescription: \"Softness of ray edges\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Softness\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tradius: {\n\t\t\tdefault: .8,\n\t\t\tdescription: \"How far the rays extend from the center\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1.2,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Radius\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tfeather: {\n\t\t\tdefault: .5,\n\t\t\tdescription: \"How gradually the rays fade at their outer edge\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 5,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Feather\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tspeed: {\n\t\t\tdefault: .2,\n\t\t\tdescription: \"Rotation speed — positive values rotate clockwise\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: -2,\n\t\t\t\tmax: 2,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Speed\",\n\t\t\t\tgroup: \"Animation\"\n\t\t\t}\n\t\t}\n\t},\n\tfragmentNode: (params) => {\n\t\tconst { uniforms } = params;\n\t\tconst uv$1 = screenUV;\n\t\tconst aspect = viewportSize.x.div(viewportSize.y);\n\t\tconst cx = uniforms.center.uniform.x;\n\t\tconst cy = uniforms.center.uniform.y.oneMinus();\n\t\tconst dx = uv$1.x.mul(aspect).sub(cx.mul(aspect));\n\t\tconst dy = uv$1.y.sub(cy);\n\t\tconst dist = sqrt(dx.mul(dx).add(dy.mul(dy)));\n\t\tconst angle = atan(dy, dx);\n\t\tconst animTime = createAnimatedTime(params, uniforms.speed);\n\t\tconst rayCount = uniforms.rayCount.uniform;\n\t\tconst rayMask = pow(sin(angle.mul(rayCount).sub(animTime)).mul(.5).add(.5), float(1).div(uniforms.softness.uniform.add(float(.05))).mul(float(.3)));\n\t\tconst radius = uniforms.radius.uniform;\n\t\tconst feather = uniforms.feather.uniform;\n\t\tconst falloffStart = radius.mul(float(1).sub(feather));\n\t\tconst outerMask = float(1).sub(smoothstep(falloffStart, radius, dist));\n\t\tconst alpha = rayMask.mul(outerMask);\n\t\tconst col = uniforms.color.uniform;\n\t\tconst bg = uniforms.background.uniform;\n\t\treturn vec4(mix(bg.rgb, col.rgb, alpha), mix(bg.a, col.a, alpha));\n\t}\n};\nvar SunBurst_default = componentDefinition;\nexport { componentDefinition as n, SunBurst_default as t };\n","import { a as transformColor, o as transformColorSpace, t as colorSpaceOptions } from \"./transformations-CJcUeZIC.js\";\nimport { t as mixColors } from \"./colorMixing-BPpDnR5I.js\";\nimport { t as createAnimatedTime } from \"./time-DUqSFWvT.js\";\nimport { Fn, cos, screenUV, sin, smoothstep, vec2, vec4 } from \"three/tsl\";\nconst componentDefinition = {\n\tname: \"Swirl\",\n\tcategory: \"Textures\",\n\tdescription: \"Flowing swirl pattern with multi-layered noise\",\n\tprops: {\n\t\tcolorA: {\n\t\t\tdefault: \"#1275d8\",\n\t\t\tdescription: \"Primary gradient color\",\n\t\t\ttransform: transformColor,\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Color A\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tcolorB: {\n\t\t\tdefault: \"#e19136\",\n\t\t\tdescription: \"Secondary gradient color\",\n\t\t\ttransform: transformColor,\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Color B\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tspeed: {\n\t\t\tdefault: 1,\n\t\t\tdescription: \"Flow animation speed\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 5,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Speed\",\n\t\t\t\tgroup: \"Animation\"\n\t\t\t}\n\t\t},\n\t\tdetail: {\n\t\t\tdefault: 1,\n\t\t\tdescription: \"Level of detail and intricacy in the swirl patterns\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 5,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Detail\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tblend: {\n\t\t\tdefault: 50,\n\t\t\tdescription: \"Skew color balance toward A (lower values) or B (higher values)\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 100,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Blend\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tcolorSpace: {\n\t\t\tdefault: \"linear\",\n\t\t\ttransform: transformColorSpace,\n\t\t\tcompileTime: true,\n\t\t\tdescription: \"Color space for color interpolation\",\n\t\t\tui: {\n\t\t\t\ttype: \"select\",\n\t\t\t\toptions: colorSpaceOptions,\n\t\t\t\tlabel: \"Color Space\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t}\n\t},\n\tfragmentNode: (params) => {\n\t\tconst { uniforms } = params;\n\t\tconst t = createAnimatedTime(params, uniforms.speed);\n\t\tconst detail = uniforms.detail.uniform;\n\t\tconst csMode = uniforms.colorSpace.uniform.value;\n\t\treturn Fn(() => {\n\t\t\tconst freq1 = detail;\n\t\t\tconst d1 = vec2(screenUV.x.add(sin(screenUV.y.mul(freq1.mul(1.7)).add(t.mul(.8))).mul(.12).add(cos(screenUV.x.mul(freq1.mul(.9)).sub(t.mul(.5))).mul(.05))), screenUV.y.add(cos(screenUV.x.mul(freq1.mul(1.3)).sub(t.mul(.6))).mul(.12).add(sin(screenUV.y.mul(freq1.mul(1.1)).add(t.mul(.7))).mul(.05)))).toVar();\n\t\t\tconst pattern1 = sin(d1.x.mul(freq1.mul(2.1)).add(d1.y.mul(freq1.mul(1.8))).add(t.mul(.4)));\n\t\t\tconst freq2 = detail.mul(2.1);\n\t\t\tconst d2 = vec2(d1.x.add(cos(d1.y.mul(freq2.mul(2.7)).sub(t.mul(.45))).mul(.07).add(sin(d1.x.mul(freq2.mul(1.9)).add(t.mul(.6))).mul(.04))), d1.y.add(sin(d1.x.mul(freq2.mul(2.3)).add(t.mul(.65))).mul(.07).add(cos(d1.y.mul(freq2.mul(1.6)).sub(t.mul(.4))).mul(.04)))).toVar();\n\t\t\tconst pattern2 = cos(d2.x.mul(freq2.mul(1.4)).sub(d2.y.mul(freq2.mul(1.9))).add(t.mul(.35)));\n\t\t\tconst freq3 = detail.mul(3.7);\n\t\t\tconst d3 = vec2(d2.x.add(sin(d2.y.mul(freq3.mul(1.8)).add(t.mul(.85))).mul(.04).add(cos(d2.x.mul(freq3.mul(1.3)).sub(t.mul(.55))).mul(.025)).add(sin(d2.x.add(d2.y).mul(freq3.mul(.7)).add(t.mul(.9))).mul(.02))), d2.y.add(cos(d2.x.mul(freq3.mul(1.6)).sub(t.mul(.75))).mul(.04).add(sin(d2.y.mul(freq3.mul(1.1)).add(t.mul(.5))).mul(.025)).add(cos(d2.x.add(d2.y).mul(freq3.mul(.8)).sub(t.mul(.95))).mul(.02)))).toVar();\n\t\t\tconst pattern3 = sin(d3.x.mul(freq3.mul(1.1)).add(d3.y.mul(freq3.mul(1.5))).sub(t.mul(.55)));\n\t\t\tconst combinedPattern = pattern1.mul(.45).add(pattern2.mul(.35)).add(pattern3.mul(.2)).toVar();\n\t\t\tconst blendBias = uniforms.blend.uniform.sub(50).mul(.006);\n\t\t\tconst blendFactor = smoothstep(.3, .7, combinedPattern.mul(.5).add(.5).add(blendBias));\n\t\t\tconst colorMix = mixColors(uniforms.colorA.uniform, uniforms.colorB.uniform, blendFactor, csMode);\n\t\t\tconst shimmer = sin(t.mul(2.5).add(combinedPattern.mul(8))).mul(.015).add(1);\n\t\t\tconst finalColor = colorMix.mul(shimmer);\n\t\t\treturn vec4(finalColor.rgb, finalColor.a);\n\t\t})();\n\t}\n};\nvar Swirl_default = componentDefinition;\nexport { componentDefinition as n, Swirl_default as t };\n","import { a as transformColor, l as transformPosition, o as transformColorSpace, t as colorSpaceOptions } from \"./transformations-CJcUeZIC.js\";\nimport { t as mixColors } from \"./colorMixing-BPpDnR5I.js\";\nimport { t as createAnimatedTime } from \"./time-DUqSFWvT.js\";\nimport { n as createAnalyticSdfSampler, r as createSvgSdfSampler } from \"./sdf-D_EAGXhN.js\";\nimport { Fn, clamp, cos, float, floor, fract, mix, screenUV, sin, sqrt, step, uniform, vec2, vec3, vec4, viewportSize } from \"three/tsl\";\nvar TWO_PI = Math.PI * 2;\nfunction applyThinFilmEffect(sdfSampler, params) {\n\tconst uniforms = params.uniforms;\n\tconst lx = uniform(0);\n\tconst ly = uniform(0);\n\tconst updateLightAngle = () => {\n\t\tconst rad = uniforms.lightAngle.uniform.value * Math.PI / 180;\n\t\tlx.value = Math.cos(rad);\n\t\tly.value = Math.sin(rad);\n\t};\n\tupdateLightAngle();\n\tparams.onBeforeRender(updateLightAngle);\n\tconst animTime = createAnimatedTime(params, uniforms.speed);\n\tconst mode = uniforms.mode.uniform.value;\n\treturn Fn(() => {\n\t\tconst uv$1 = screenUV;\n\t\tconst aspect = viewportSize.x.div(viewportSize.y);\n\t\tconst sharp = uniforms.edgeSoftness.uniform.mul(float(.5)).max(float(.001));\n\t\tconst centerPos = vec2(uniforms.center.uniform.x, uniforms.center.uniform.y.oneMinus());\n\t\tconst scale = uniforms.scale.uniform;\n\t\tconst sdfUV = vec2(uv$1.x.sub(centerPos.x).mul(aspect).div(scale).add(float(.5)), uv$1.y.sub(centerPos.y).div(scale).add(float(.5)));\n\t\tconst sdfRaw = sdfSampler(sdfUV).r;\n\t\tconst sdf = sdfRaw.div(scale);\n\t\tconst EPS = float(.01);\n\t\tconst gradX = sdfSampler(sdfUV.add(vec2(EPS, float(0)))).r.sub(sdfRaw).div(EPS);\n\t\tconst gradY = sdfSampler(sdfUV.add(vec2(float(0), EPS))).r.sub(sdfRaw).div(EPS);\n\t\tconst gLen = sqrt(gradX.mul(gradX).add(gradY.mul(gradY))).max(float(1e-4));\n\t\tconst nx = gradX.div(gLen);\n\t\tconst ny = gradY.div(gLen);\n\t\tconst rb1 = clamp(sdf.negate().div(sharp).mul(float(32)), float(0), float(1));\n\t\tconst rimWidth = uniforms.rimWidth.uniform.mul(float(.1)).max(float(.001));\n\t\tconst depth = clamp(sdf.negate().div(rimWidth), float(0), float(1));\n\t\tconst rim = float(1).sub(depth).mul(float(1).sub(depth)).mul(rb1);\n\t\tconst baseCos = nx.mul(lx).add(ny.mul(ly));\n\t\tconst baseSin = ny.mul(lx).sub(nx.mul(ly));\n\t\tconst theta = animTime.mul(float(TWO_PI));\n\t\tconst rotatedDot = baseCos.mul(cos(theta)).add(baseSin.mul(sin(theta)));\n\t\tconst phase = uniforms.hueShift.uniform.add(uniforms.dispersion.uniform.mul(rotatedDot)).add(uniforms.thickness.uniform.mul(depth).mul(float(2)));\n\t\tlet baseColor;\n\t\tif (mode === \"custom\") {\n\t\t\tconst t3 = fract(phase).mul(float(3));\n\t\t\tconst si = fract(t3);\n\t\t\tconst floorT3 = floor(t3);\n\t\t\tconst cs = uniforms.colorSpace.uniform.value;\n\t\t\tconst c01 = mixColors(uniforms.colorA.uniform, uniforms.colorB.uniform, si, cs);\n\t\t\tconst c12 = mixColors(uniforms.colorB.uniform, uniforms.colorC.uniform, si, cs);\n\t\t\tlet res = mixColors(uniforms.colorC.uniform, uniforms.colorA.uniform, si, cs);\n\t\t\tres = mix(res, c12, step(floorT3, float(1.5)));\n\t\t\tres = mix(res, c01, step(floorT3, float(.5)));\n\t\t\tbaseColor = res.rgb;\n\t\t} else baseColor = vec3(cos(phase.add(float(0)).mul(float(TWO_PI))), cos(phase.add(float(.3333)).mul(float(TWO_PI))), cos(phase.add(float(.6667)).mul(float(TWO_PI)))).mul(float(.5)).add(float(.5));\n\t\treturn vec4(mix(vec3(1), baseColor, uniforms.saturation.uniform).mul(rim).mul(uniforms.intensity.uniform), clamp(rim, float(0), float(1)));\n\t})();\n}\nvar DEFAULT_SHAPE_CONFIG = JSON.stringify({\n\ttype: \"circleSDF\",\n\tradius: .35\n});\nconst componentDefinition = {\n\tname: \"ThinFilm\",\n\tcategory: \"Shape Effects\",\n\tdescription: \"Iridescent thin-film edge\",\n\tprops: {\n\t\tcenter: {\n\t\t\tdefault: {\n\t\t\t\tx: .5,\n\t\t\t\ty: .5\n\t\t\t},\n\t\t\ttransform: transformPosition,\n\t\t\tdescription: \"Center position of the shape\",\n\t\t\tui: {\n\t\t\t\ttype: \"position\",\n\t\t\t\tlabel: \"Center\",\n\t\t\t\tgroup: \"Position\"\n\t\t\t}\n\t\t},\n\t\tscale: {\n\t\t\tdefault: 1,\n\t\t\tdescription: \"Scale of the shape (1 = default size)\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: .1,\n\t\t\t\tmax: 3,\n\t\t\t\tstep: .05,\n\t\t\t\tlabel: \"Scale\",\n\t\t\t\tgroup: \"Position\"\n\t\t\t}\n\t\t},\n\t\tintensity: {\n\t\t\tdefault: 1,\n\t\t\tdescription: \"Rim brightness — values above 1 push the edge past white for HDR bloom\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 4,\n\t\t\t\tstep: .05,\n\t\t\t\tlabel: \"Intensity\",\n\t\t\t\tgroup: \"Film\"\n\t\t\t}\n\t\t},\n\t\trimWidth: {\n\t\t\tdefault: 1,\n\t\t\tdescription: \"How far inward from the edge the iridescence reaches\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 3,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Rim Width\",\n\t\t\t\tgroup: \"Film\"\n\t\t\t}\n\t\t},\n\t\tedgeSoftness: {\n\t\t\tdefault: .3,\n\t\t\tdescription: \"Softness of the shape boundary\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .05,\n\t\t\t\tlabel: \"Edge Softness\",\n\t\t\t\tgroup: \"Film\"\n\t\t\t}\n\t\t},\n\t\tthickness: {\n\t\t\tdefault: .5,\n\t\t\tdescription: \"Film thickness — higher values pack more spectral bands across the rim\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Thickness\",\n\t\t\t\tgroup: \"Film\"\n\t\t\t}\n\t\t},\n\t\tdispersion: {\n\t\t\tdefault: .5,\n\t\t\tdescription: \"How strongly colour separates around the perimeter (warm vs cool sides)\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Dispersion\",\n\t\t\t\tgroup: \"Film\"\n\t\t\t}\n\t\t},\n\t\tsaturation: {\n\t\t\tdefault: 1,\n\t\t\tdescription: \"Spectral saturation — 0 = white rim, 1 = full iridescence\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Saturation\",\n\t\t\t\tgroup: \"Film\"\n\t\t\t}\n\t\t},\n\t\thueShift: {\n\t\t\tdefault: 0,\n\t\t\tdescription: \"Rotate the spectrum to reposition the colours\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Hue Shift\",\n\t\t\t\tgroup: \"Film\"\n\t\t\t}\n\t\t},\n\t\tlightAngle: {\n\t\t\tdefault: 300,\n\t\t\tdescription: \"Light angle in degrees — sets which side of the rim runs warm vs cool\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 360,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Light Angle\",\n\t\t\t\tgroup: \"Film\"\n\t\t\t}\n\t\t},\n\t\tmode: {\n\t\t\tdefault: \"rainbow\",\n\t\t\tcompileTime: true,\n\t\t\tdescription: \"Rainbow uses the full iridescent spectrum; Custom cycles through your three chosen colours\",\n\t\t\tui: {\n\t\t\t\ttype: \"select\",\n\t\t\t\toptions: [{\n\t\t\t\t\tlabel: \"Rainbow\",\n\t\t\t\t\tvalue: \"rainbow\"\n\t\t\t\t}, {\n\t\t\t\t\tlabel: \"Custom\",\n\t\t\t\t\tvalue: \"custom\"\n\t\t\t\t}],\n\t\t\t\tlabel: \"Mode\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tcolorA: {\n\t\t\tdefault: \"#2b6fff\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"First colour in the rim cycle\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Color 1\",\n\t\t\t\tgroup: \"Colors\",\n\t\t\t\tcondition: { mode: \"custom\" }\n\t\t\t}\n\t\t},\n\t\tcolorB: {\n\t\t\tdefault: \"#ffffff\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Second colour in the rim cycle\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Color 2\",\n\t\t\t\tgroup: \"Colors\",\n\t\t\t\tcondition: { mode: \"custom\" }\n\t\t\t}\n\t\t},\n\t\tcolorC: {\n\t\t\tdefault: \"#ff7a21\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Third colour in the rim cycle\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Color 3\",\n\t\t\t\tgroup: \"Colors\",\n\t\t\t\tcondition: { mode: \"custom\" }\n\t\t\t}\n\t\t},\n\t\tcolorSpace: {\n\t\t\tdefault: \"oklch\",\n\t\t\ttransform: transformColorSpace,\n\t\t\tcompileTime: true,\n\t\t\tdescription: \"Colour space used to blend between custom colours\",\n\t\t\tui: {\n\t\t\t\ttype: \"select\",\n\t\t\t\toptions: colorSpaceOptions,\n\t\t\t\tlabel: \"Color Space\",\n\t\t\t\tgroup: \"Colors\",\n\t\t\t\tcondition: { mode: \"custom\" }\n\t\t\t}\n\t\t},\n\t\tspeed: {\n\t\t\tdefault: .1,\n\t\t\tdescription: \"Speed at which the colours rotate around the rim (0 = static)\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: -1,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Speed\",\n\t\t\t\tgroup: \"Animation\"\n\t\t\t}\n\t\t},\n\t\tshape: {\n\t\t\tdefault: DEFAULT_SHAPE_CONFIG,\n\t\t\tdescription: \"Serialized shape configuration (JSON)\",\n\t\t\tui: {\n\t\t\t\ttype: \"shape\",\n\t\t\t\tlabel: \"Shape\",\n\t\t\t\tgroup: \"Shape\"\n\t\t\t}\n\t\t},\n\t\tshapeSdfUrl: {\n\t\t\tdefault: \"\",\n\t\t\tcompileTime: true,\n\t\t\tdescription: \"URL to a pre-generated SDF .bin file — when non-empty, activates SVG mode and triggers a shader recompile\"\n\t\t},\n\t\tshapeType: {\n\t\t\tdefault: \"\",\n\t\t\tcompileTime: true,\n\t\t\tdescription: \"Active SDF shape type — triggers recompile when shape is switched. When empty, derived from shape JSON at mount time.\"\n\t\t}\n\t},\n\tfragmentNode: (params) => {\n\t\tconst { uniforms, onCleanup, onBeforeRender } = params;\n\t\tconst shapeSdfUrl = uniforms.shapeSdfUrl.uniform.value;\n\t\tconst initialConfig = (() => {\n\t\t\tconst val = uniforms.shape.uniform.value;\n\t\t\tif (typeof val === \"object\" && val !== null) return val;\n\t\t\ttry {\n\t\t\t\treturn JSON.parse(val);\n\t\t\t} catch {\n\t\t\t\treturn {\n\t\t\t\t\ttype: \"circleSDF\",\n\t\t\t\t\tradius: .35\n\t\t\t\t};\n\t\t\t}\n\t\t})();\n\t\tif (shapeSdfUrl) return applyThinFilmEffect(createSvgSdfSampler(shapeSdfUrl, onBeforeRender, onCleanup), params);\n\t\telse return applyThinFilmEffect(createAnalyticSdfSampler(uniforms.shapeType.uniform.value || initialConfig.type || \"circleSDF\", initialConfig, uniforms.shape, onBeforeRender), params);\n\t}\n};\nvar ThinFilm_default = componentDefinition;\nexport { componentDefinition as n, ThinFilm_default as t };\n","import { l as transformPosition, r as transformAngle } from \"./transformations-CJcUeZIC.js\";\nimport { t as unpremultiplyAlpha } from \"./alpha-C4ptedXe.js\";\nimport { i as createVariableGaussianBlurCompute } from \"./computeBlur-oxyhoztH.js\";\nimport { Fn, If, abs, clamp, convertToTexture, cos, dot, float, instanceIndex, int, mix, pow, radians, screenUV, sin, smoothstep, texture, textureLoad, textureStore, uint, uniform, uvec2, vec2, vec3, vec4, viewportSize } from \"three/tsl\";\nconst componentDefinition = {\n\tname: \"TiltShift\",\n\tcategory: \"Blurs\",\n\tdescription: \"Selective focus blur mimicking tilt-shift photography\",\n\trequiresRTT: true,\n\trequiresChild: true,\n\tprops: {\n\t\tintensity: {\n\t\t\tdefault: 50,\n\t\t\tdescription: \"Maximum blur intensity at edges\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 100,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Intensity\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\twidth: {\n\t\t\tdefault: .3,\n\t\t\tdescription: \"Width of the sharp focus area\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Width\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tfalloff: {\n\t\t\tdefault: .3,\n\t\t\tdescription: \"Distance over which blur transitions to full strength\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Falloff\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tangle: {\n\t\t\tdefault: 0,\n\t\t\ttransform: transformAngle,\n\t\t\tdescription: \"Rotation angle of the focus line (in degrees)\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 360,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Angle\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tcenter: {\n\t\t\tdefault: {\n\t\t\t\tx: .5,\n\t\t\t\ty: .5\n\t\t\t},\n\t\t\ttransform: transformPosition,\n\t\t\tdescription: \"Center point of the focus line\",\n\t\t\tui: {\n\t\t\t\ttype: \"position\",\n\t\t\t\tlabel: \"Center\",\n\t\t\t\tgroup: \"Position\"\n\t\t\t}\n\t\t}\n\t},\n\tcomputeNode: ({ childNode, onCleanup, dimensions, renderer, uniforms, onResize }) => {\n\t\tif (!childNode) return null;\n\t\tif (uniforms.angle.mapComputeInfo || uniforms.width.mapComputeInfo || uniforms.falloff.mapComputeInfo) return null;\n\t\tconst childTexture = convertToTexture(childNode);\n\t\tonCleanup(() => {\n\t\t\tif (childTexture?.renderTarget?.dispose) childTexture.renderTarget.dispose();\n\t\t});\n\t\tconst dpr = renderer?.getPixelRatio?.() ?? 1;\n\t\tconst texWidth = Math.round(dimensions.width * dpr);\n\t\tconst texHeight = Math.round(dimensions.height * dpr);\n\t\tconst blur = createVariableGaussianBlurCompute(childTexture, texWidth, texHeight, onCleanup, 14);\n\t\tconst { computeNodes: blurNodes, outputTexture, blurMapWriteNode, computeWidth, computeHeight } = blur;\n\t\tconst angleU = uniform(0);\n\t\tconst centerXU = uniform(.5);\n\t\tconst centerYU = uniform(.5);\n\t\tconst focusWidthU = uniform(.15);\n\t\tconst falloffU = uniform(.3);\n\t\tconst aspectU = uniform(1);\n\t\tconst inputWidthU = uniform(texWidth);\n\t\tconst inputHeightU = uniform(texHeight);\n\t\tconst cw = uint(computeWidth);\n\t\tconst ch = uint(computeHeight);\n\t\tfunction readScalar(entry) {\n\t\t\treturn entry.getCpuValue?.() ?? (typeof entry.uniform.value === \"number\" ? entry.uniform.value : null);\n\t\t}\n\t\tfunction updateGeometryUniforms() {\n\t\t\tconst angleVal = readScalar(uniforms.angle);\n\t\t\tif (angleVal !== null) angleU.value = angleVal;\n\t\t\tconst centerXVal = uniforms.center.uniform.value?.x ?? uniforms.center.uniform.x?.value;\n\t\t\tif (typeof centerXVal === \"number\") centerXU.value = centerXVal;\n\t\t\tconst centerYVal = uniforms.center.uniform.value?.y ?? uniforms.center.uniform.y?.value;\n\t\t\tif (typeof centerYVal === \"number\") centerYU.value = centerYVal;\n\t\t\tconst widthVal = readScalar(uniforms.width);\n\t\t\tif (widthVal !== null) focusWidthU.value = widthVal * .5;\n\t\t\tconst falloffVal = readScalar(uniforms.falloff);\n\t\t\tif (falloffVal !== null) falloffU.value = falloffVal;\n\t\t\taspectU.value = dimensions.width / dimensions.height;\n\t\t}\n\t\tconst intensityMapInfo = uniforms.intensity.mapComputeInfo;\n\t\tif (intensityMapInfo) {\n\t\t\tconst { sourceTexture, channel, inputMin, inputMax, outputMin, outputMax, curve } = intensityMapInfo;\n\t\t\tconst fillBlurMap$1 = Fn(() => {\n\t\t\t\tconst idx = instanceIndex;\n\t\t\t\tconst cx = idx.mod(cw);\n\t\t\t\tconst cy = idx.div(cw);\n\t\t\t\tIf(cy.lessThan(ch), () => {\n\t\t\t\t\tconst u = cx.toFloat().add(float(.5)).div(float(computeWidth));\n\t\t\t\t\tconst v = cy.toFloat().add(float(.5)).div(float(computeHeight));\n\t\t\t\t\tconst angleRad = angleU.mul(float(Math.PI / 180));\n\t\t\t\t\tconst perpVector = vec2(angleRad.sin().negate(), angleRad.cos());\n\t\t\t\t\tconst centerPos = vec2(centerXU, float(1).sub(centerYU));\n\t\t\t\t\tconst centeredUV = vec2(u, v).sub(centerPos);\n\t\t\t\t\tconst distFromLine = abs(dot(vec2(centeredUV.x.mul(aspectU), centeredUV.y), perpVector));\n\t\t\t\t\tconst blurAmount = smoothstep(focusWidthU, focusWidthU.add(falloffU), distFromLine);\n\t\t\t\t\tconst mapSample = textureLoad(sourceTexture, uvec2(u.mul(inputWidthU).round().toInt().clamp(int(0), int(inputWidthU.sub(1))).toUint(), v.mul(inputHeightU).round().toInt().clamp(int(0), int(inputHeightU.sub(1))).toUint()), int(0));\n\t\t\t\t\tlet raw;\n\t\t\t\t\tif (channel === \"alpha\") raw = mapSample.a;\n\t\t\t\t\telse if (channel === \"alphaInverted\") raw = mapSample.a.oneMinus();\n\t\t\t\t\telse if (channel === \"luminanceInverted\") raw = dot(mapSample.rgb, vec3(.2126, .7152, .0722)).oneMinus();\n\t\t\t\t\telse raw = dot(mapSample.rgb, vec3(.2126, .7152, .0722));\n\t\t\t\t\tconst inputRange = inputMax.sub(inputMin).max(float(1e-4));\n\t\t\t\t\tconst maxRadius = mix(outputMin, outputMax, pow(clamp(raw.sub(inputMin).div(inputRange), float(0), float(1)), pow(float(2), curve.negate().mul(float(2))))).mul(float(.36));\n\t\t\t\t\tconst radius = blurAmount.mul(maxRadius);\n\t\t\t\t\ttextureStore(blurMapWriteNode, uvec2(cx, cy), vec4(radius, float(0), float(0), float(1))).toWriteOnly();\n\t\t\t\t});\n\t\t\t})().compute(computeWidth * computeHeight, [256]);\n\t\t\tonResize(({ width, height }) => {\n\t\t\t\tconst newW = Math.round(width * dpr);\n\t\t\t\tconst newH = Math.round(height * dpr);\n\t\t\t\tinputWidthU.value = newW;\n\t\t\t\tinputHeightU.value = newH;\n\t\t\t\tblur.setInputDimensions(newW, newH);\n\t\t\t});\n\t\t\treturn {\n\t\t\t\toutputs: {\n\t\t\t\t\tchildTexture,\n\t\t\t\t\tblurredTexture: outputTexture\n\t\t\t\t},\n\t\t\t\tgetComputeNodes: () => {\n\t\t\t\t\tupdateGeometryUniforms();\n\t\t\t\t\treturn [fillBlurMap$1, ...blurNodes];\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t\tconst maxRadiusU = uniform(18);\n\t\tconst fillBlurMap = Fn(() => {\n\t\t\tconst idx = instanceIndex;\n\t\t\tconst cx = idx.mod(cw);\n\t\t\tconst cy = idx.div(cw);\n\t\t\tIf(cy.lessThan(ch), () => {\n\t\t\t\tconst u = cx.toFloat().add(float(.5)).div(float(computeWidth));\n\t\t\t\tconst v = cy.toFloat().add(float(.5)).div(float(computeHeight));\n\t\t\t\tconst angleRad = angleU.mul(float(Math.PI / 180));\n\t\t\t\tconst perpVector = vec2(angleRad.sin().negate(), angleRad.cos());\n\t\t\t\tconst centerPos = vec2(centerXU, float(1).sub(centerYU));\n\t\t\t\tconst centeredUV = vec2(u, v).sub(centerPos);\n\t\t\t\tconst distFromLine = abs(dot(vec2(centeredUV.x.mul(aspectU), centeredUV.y), perpVector));\n\t\t\t\tconst radius = smoothstep(focusWidthU, focusWidthU.add(falloffU), distFromLine).mul(maxRadiusU);\n\t\t\t\ttextureStore(blurMapWriteNode, uvec2(cx, cy), vec4(radius, float(0), float(0), float(1))).toWriteOnly();\n\t\t\t});\n\t\t})().compute(computeWidth * computeHeight, [256]);\n\t\tonResize(({ width, height }) => {\n\t\t\tconst newW = Math.round(width * dpr);\n\t\t\tconst newH = Math.round(height * dpr);\n\t\t\tinputWidthU.value = newW;\n\t\t\tinputHeightU.value = newH;\n\t\t\tblur.setInputDimensions(newW, newH);\n\t\t});\n\t\treturn {\n\t\t\toutputs: {\n\t\t\t\tchildTexture,\n\t\t\t\tblurredTexture: outputTexture\n\t\t\t},\n\t\t\tgetComputeNodes: () => {\n\t\t\t\tupdateGeometryUniforms();\n\t\t\t\tconst intensityVal = readScalar(uniforms.intensity);\n\t\t\t\tif (intensityVal !== null) maxRadiusU.value = intensityVal * .36;\n\t\t\t\treturn [fillBlurMap, ...blurNodes];\n\t\t\t}\n\t\t};\n\t},\n\tfragmentNode: ({ uniforms, childNode, onCleanup, computeOutputs }) => {\n\t\tif (!childNode) return vec4(0, 0, 0, 0);\n\t\tif (computeOutputs?.blurredTexture) {\n\t\t\tconst sharp = computeOutputs.childTexture.sample(screenUV);\n\t\t\tconst blurred = texture(computeOutputs.blurredTexture).sample(screenUV);\n\t\t\tconst aspect$1 = viewportSize.x.div(viewportSize.y);\n\t\t\tconst angleRad$1 = radians(uniforms.angle.uniform);\n\t\t\tconst perpVector$1 = vec2(angleRad$1.sin().negate(), angleRad$1.cos());\n\t\t\tconst centerPosition$1 = vec2(uniforms.center.uniform[0], uniforms.center.uniform[1].oneMinus());\n\t\t\tconst centeredUV$1 = screenUV.sub(centerPosition$1);\n\t\t\tconst distFromLine$1 = abs(dot(vec2(centeredUV$1.x.mul(aspect$1), centeredUV$1.y), perpVector$1));\n\t\t\tconst focusWidth$1 = uniforms.width.uniform.mul(.5);\n\t\t\tconst blurAmount$1 = smoothstep(focusWidth$1, focusWidth$1.add(uniforms.falloff.uniform), distFromLine$1);\n\t\t\tconst propsPin = uniforms.intensity.uniform.mul(float(0)).add(uniforms.width.uniform.mul(float(0))).add(uniforms.falloff.uniform.mul(float(0))).add(uniforms.angle.uniform.mul(float(0)));\n\t\t\tconst mixed = mix(sharp, blurred, blurAmount$1);\n\t\t\treturn unpremultiplyAlpha(vec4(mixed.rgb.add(propsPin), mixed.a));\n\t\t}\n\t\tconst childTexture = convertToTexture(childNode);\n\t\tonCleanup(() => {\n\t\t\tif (childTexture?.renderTarget?.dispose) childTexture.renderTarget.dispose();\n\t\t});\n\t\tconst aspect = viewportSize.x.div(viewportSize.y);\n\t\tconst angleRad = radians(uniforms.angle.uniform);\n\t\tconst cosAngle = cos(angleRad);\n\t\tconst perpVector = vec2(sin(angleRad).negate(), cosAngle);\n\t\tconst centerPosition = vec2(uniforms.center.uniform[0], uniforms.center.uniform[1].oneMinus());\n\t\tconst centeredUV = screenUV.sub(centerPosition);\n\t\tconst distFromLine = abs(dot(vec2(centeredUV.x.mul(aspect), centeredUV.y), perpVector));\n\t\tconst focusWidth = uniforms.width.uniform.mul(.5);\n\t\tconst falloff = uniforms.falloff.uniform;\n\t\tconst blurAmount = smoothstep(focusWidth, focusWidth.add(falloff), distFromLine);\n\t\tconst scaledIntensity = uniforms.intensity.uniform.mul(.06);\n\t\tconst blurRadius = blurAmount.mul(scaledIntensity);\n\t\tconst weights = [\n\t\t\t.056,\n\t\t\t.135,\n\t\t\t.278,\n\t\t\t.487,\n\t\t\t.726,\n\t\t\t.923,\n\t\t\t1,\n\t\t\t.923,\n\t\t\t.726,\n\t\t\t.487,\n\t\t\t.278,\n\t\t\t.135,\n\t\t\t.056\n\t\t];\n\t\tconst weightSum = 6.21;\n\t\tconst horizontalTexture = convertToTexture(Fn(() => {\n\t\t\tconst uv$1 = screenUV;\n\t\t\tconst pixelSize = vec2(1).div(viewportSize);\n\t\t\tconst total = vec4(0).toVar();\n\t\t\tfor (let x = -6; x <= 6; x++) {\n\t\t\t\tconst weight = float(weights[x + 6] / weightSum);\n\t\t\t\tconst offset = vec2(float(x), float(0)).mul(blurRadius).mul(pixelSize);\n\t\t\t\tconst sampleCoord = uv$1.add(offset);\n\t\t\t\tconst sample = childTexture.sample(sampleCoord).mul(weight);\n\t\t\t\ttotal.assign(total.add(sample));\n\t\t\t}\n\t\t\treturn total;\n\t\t})());\n\t\tonCleanup(() => {\n\t\t\tif (horizontalTexture?.renderTarget?.dispose) horizontalTexture.renderTarget.dispose();\n\t\t});\n\t\treturn Fn(() => {\n\t\t\tconst uv$1 = screenUV;\n\t\t\tconst pixelSize = vec2(1).div(viewportSize);\n\t\t\tconst total = vec4(0).toVar();\n\t\t\tfor (let y = -6; y <= 6; y++) {\n\t\t\t\tconst weight = float(weights[y + 6] / weightSum);\n\t\t\t\tconst offset = vec2(float(0), float(y)).mul(blurRadius).mul(pixelSize);\n\t\t\t\tconst sampleCoord = uv$1.add(offset);\n\t\t\t\tconst sample = horizontalTexture.sample(sampleCoord).mul(weight);\n\t\t\t\ttotal.assign(total.add(sample));\n\t\t\t}\n\t\t\tconst blurred = total;\n\t\t\treturn unpremultiplyAlpha(mix(childTexture.sample(uv$1), blurred, blurAmount));\n\t\t})();\n\t}\n};\nvar TiltShift_default = componentDefinition;\nexport { componentDefinition as n, TiltShift_default as t };\n","import { a as transformColor } from \"./transformations-CJcUeZIC.js\";\nimport { dot, max, mix, vec3, vec4 } from \"three/tsl\";\nconst componentDefinition = {\n\tname: \"Tint\",\n\tcategory: \"Adjustments\",\n\tdescription: \"Apply a color tint to the image\",\n\trequiresChild: true,\n\tprops: {\n\t\tcolor: {\n\t\t\tdefault: \"#ff8800\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Tint color\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Tint Color\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tamount: {\n\t\t\tdefault: .5,\n\t\t\tdescription: \"Tint amount (0 = no tint, 1 = full tint)\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Amount\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tpreserveLuminosity: {\n\t\t\tdefault: true,\n\t\t\tcompileTime: true,\n\t\t\tdescription: \"Preserve original brightness\",\n\t\t\ttransform: (v) => v ? 1 : 0,\n\t\t\tui: {\n\t\t\t\ttype: \"checkbox\",\n\t\t\t\tlabel: \"Preserve Luminosity\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t}\n\t},\n\tfragmentNode: ({ uniforms, childNode }) => {\n\t\tif (!childNode) {\n\t\t\tconsole.error(\"You must pass a child component into the Tint shader.\");\n\t\t\treturn vec4(0);\n\t\t}\n\t\tconst tintColor = uniforms.color.uniform;\n\t\tconst amount = uniforms.amount.uniform;\n\t\tconst rgb = vec3(childNode.r, childNode.g, childNode.b);\n\t\tconst tinted = mix(rgb, tintColor.rgb, amount);\n\t\tconst preserveLum = uniforms.preserveLuminosity.uniform.value === 1;\n\t\tlet result;\n\t\tif (preserveLum) {\n\t\t\tconst luminanceWeights = vec3(.299, .587, .114);\n\t\t\tconst originalLum = dot(rgb, luminanceWeights);\n\t\t\tconst tintedLum = dot(tinted, luminanceWeights);\n\t\t\tresult = tinted.mul(originalLum.div(max(tintedLum, 1e-4)));\n\t\t} else result = tinted;\n\t\treturn vec4(result, childNode.a);\n\t}\n};\nvar Tint_default = componentDefinition;\nexport { componentDefinition as n, Tint_default as t };\n","import { a as transformColor, l as transformPosition, o as transformColorSpace, t as colorSpaceOptions } from \"./transformations-CJcUeZIC.js\";\nimport { t as mixColors } from \"./colorMixing-BPpDnR5I.js\";\nimport { f as trapezoidSdf } from \"./sdf-D_EAGXhN.js\";\nimport { cos, float, screenUV, sin, smoothstep, vec2, vec4, viewportSize } from \"three/tsl\";\nvar transformStrokePosition = (value) => {\n\treturn {\n\t\t\"outside\": 0,\n\t\t\"center\": 1,\n\t\t\"inside\": 2\n\t}[value?.toLowerCase()] ?? 1;\n};\nconst componentDefinition = {\n\tname: \"Trapezoid\",\n\tcategory: \"Shapes\",\n\tdescription: \"Trapezoid with adjustable top and bottom widths and height\",\n\tprops: {\n\t\tcolor: {\n\t\t\tdefault: \"#ffffff\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Fill color of the trapezoid\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Color\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tcenter: {\n\t\t\tdefault: {\n\t\t\t\tx: .5,\n\t\t\t\ty: .5\n\t\t\t},\n\t\t\ttransform: transformPosition,\n\t\t\tdescription: \"Center position of the trapezoid\",\n\t\t\tui: {\n\t\t\t\ttype: \"position\",\n\t\t\t\tlabel: \"Center\",\n\t\t\t\tgroup: \"Position\"\n\t\t\t}\n\t\t},\n\t\tbottomWidth: {\n\t\t\tdefault: .35,\n\t\t\tdescription: \"Half-width of the bottom edge\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: .01,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Bottom Width\",\n\t\t\t\tgroup: \"Shape\"\n\t\t\t}\n\t\t},\n\t\ttopWidth: {\n\t\t\tdefault: .2,\n\t\t\tdescription: \"Half-width of the top edge\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: .01,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Top Width\",\n\t\t\t\tgroup: \"Shape\"\n\t\t\t}\n\t\t},\n\t\theight: {\n\t\t\tdefault: .25,\n\t\t\tdescription: \"Half-height of the trapezoid\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: .01,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Height\",\n\t\t\t\tgroup: \"Shape\"\n\t\t\t}\n\t\t},\n\t\trotation: {\n\t\t\tdefault: 0,\n\t\t\tdescription: \"Rotation in degrees\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 360,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Rotation\",\n\t\t\t\tgroup: \"Shape\"\n\t\t\t}\n\t\t},\n\t\tsoftness: {\n\t\t\tdefault: 0,\n\t\t\tdescription: \"Edge softness for antialiasing\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: .1,\n\t\t\t\tstep: .001,\n\t\t\t\tlabel: \"Softness\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tstrokeThickness: {\n\t\t\tdefault: 0,\n\t\t\tdescription: \"Stroke thickness. Zero means no stroke.\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: .2,\n\t\t\t\tstep: .005,\n\t\t\t\tlabel: \"Stroke Thickness\",\n\t\t\t\tgroup: \"Stroke\"\n\t\t\t}\n\t\t},\n\t\tstrokeColor: {\n\t\t\tdefault: \"#000000\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Color of the stroke outline\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Stroke Color\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tstrokePosition: {\n\t\t\tdefault: \"center\",\n\t\t\ttransform: transformStrokePosition,\n\t\t\tdescription: \"Position of the stroke relative to the shape edge\",\n\t\t\tui: {\n\t\t\t\ttype: \"select\",\n\t\t\t\toptions: [\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Outside\",\n\t\t\t\t\t\tvalue: \"outside\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Center\",\n\t\t\t\t\t\tvalue: \"center\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Inside\",\n\t\t\t\t\t\tvalue: \"inside\"\n\t\t\t\t\t}\n\t\t\t\t],\n\t\t\t\tlabel: \"Stroke Position\",\n\t\t\t\tgroup: \"Stroke\"\n\t\t\t}\n\t\t},\n\t\tcolorSpace: {\n\t\t\tdefault: \"linear\",\n\t\t\ttransform: transformColorSpace,\n\t\t\tcompileTime: true,\n\t\t\tdescription: \"Color space for blending fill and stroke colors\",\n\t\t\tui: {\n\t\t\t\ttype: \"select\",\n\t\t\t\toptions: colorSpaceOptions,\n\t\t\t\tlabel: \"Color Blending\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t}\n\t},\n\tfragmentNode: ({ uniforms }) => {\n\t\tconst uv$1 = screenUV;\n\t\tconst aspect = viewportSize.x.div(viewportSize.y);\n\t\tconst aspectUV = vec2(uv$1.x.mul(aspect), uv$1.y);\n\t\tconst centerPos = vec2(uniforms.center.uniform.x.mul(aspect), uniforms.center.uniform.y.oneMinus());\n\t\tconst dx = aspectUV.x.sub(centerPos.x);\n\t\tconst dy = aspectUV.y.sub(centerPos.y);\n\t\tconst rotRad = uniforms.rotation.uniform.mul(float(Math.PI / 180));\n\t\tconst cosR = cos(rotRad);\n\t\tconst sinR = sin(rotRad);\n\t\tconst sdf = trapezoidSdf(dx.mul(cosR).add(dy.mul(sinR)), dy.mul(cosR).sub(dx.mul(sinR)), uniforms.topWidth.uniform, uniforms.bottomWidth.uniform, uniforms.height.uniform);\n\t\tconst edgeSoftness = uniforms.softness.uniform;\n\t\tconst strokeThickness = uniforms.strokeThickness.uniform;\n\t\tconst strokePositionMode = uniforms.strokePosition.uniform;\n\t\tconst hasStroke = strokeThickness.greaterThan(float(0));\n\t\tconst isCenter = strokePositionMode.greaterThanEqual(float(.5)).and(strokePositionMode.lessThan(float(1.5)));\n\t\tconst isInside = strokePositionMode.greaterThanEqual(float(1.5));\n\t\tconst halfThickness = strokeThickness.mul(.5);\n\t\tconst strokeInner = isInside.select(strokeThickness.negate(), isCenter.select(halfThickness.negate(), float(0)));\n\t\tconst strokeOuter = isInside.select(float(0), isCenter.select(halfThickness, strokeThickness));\n\t\tconst overallMask = smoothstep(strokeOuter.sub(edgeSoftness), strokeOuter, sdf).oneMinus();\n\t\tconst strokeBlend = hasStroke.select(smoothstep(strokeInner.sub(edgeSoftness), strokeInner, sdf), float(0));\n\t\tconst blendedColor = mixColors(vec4(uniforms.color.uniform.rgb, uniforms.color.uniform.a), vec4(uniforms.strokeColor.uniform.rgb, uniforms.strokeColor.uniform.a), strokeBlend, uniforms.colorSpace.uniform.value);\n\t\treturn vec4(blendedColor.xyz, blendedColor.w.mul(overallMask));\n\t}\n};\nvar Trapezoid_default = componentDefinition;\nexport { componentDefinition as n, Trapezoid_default as t };\n","import { a as transformColor, o as transformColorSpace, t as colorSpaceOptions } from \"./transformations-CJcUeZIC.js\";\nimport { t as mixColors } from \"./colorMixing-BPpDnR5I.js\";\nimport { dot, smoothstep, vec3, vec4 } from \"three/tsl\";\nconst componentDefinition = {\n\tname: \"Tritone\",\n\tcategory: \"Adjustments\",\n\tdescription: \"Map colors to three tones: shadows, midtones, highlights\",\n\trequiresChild: true,\n\tprops: {\n\t\tcolorA: {\n\t\t\tdefault: \"#ce1bea\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"First color (used for shadows/darkest areas)\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Color A (Shadows)\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tcolorB: {\n\t\t\tdefault: \"#2fff00\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Second color (used for midtones)\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Color B (Midtones)\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tcolorC: {\n\t\t\tdefault: \"#ffff00\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Third color (used for highlights/brightest areas)\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Color C (Highlights)\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tblendMid: {\n\t\t\tdefault: .5,\n\t\t\tdescription: \"Midpoint position between the three colors\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Midpoint\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tcolorSpace: {\n\t\t\tdefault: \"linear\",\n\t\t\ttransform: transformColorSpace,\n\t\t\tcompileTime: true,\n\t\t\tdescription: \"Color space for color interpolation\",\n\t\t\tui: {\n\t\t\t\ttype: \"select\",\n\t\t\t\toptions: colorSpaceOptions,\n\t\t\t\tlabel: \"Color Space\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t}\n\t},\n\tfragmentNode: ({ uniforms, childNode }) => {\n\t\tif (!childNode) return vec4(0, 0, 0, 0);\n\t\tconst luminance = dot(vec3(childNode.r, childNode.g, childNode.b), vec3(.299, .587, .114));\n\t\tconst shadowToMid = smoothstep(uniforms.blendMid.uniform.sub(.25), uniforms.blendMid.uniform, luminance);\n\t\tconst csMode = uniforms.colorSpace.uniform.value;\n\t\tconst lowerBlend = mixColors(uniforms.colorA.uniform, uniforms.colorB.uniform, shadowToMid, csMode);\n\t\tconst midToHighlight = smoothstep(uniforms.blendMid.uniform, uniforms.blendMid.uniform.add(.25), luminance);\n\t\treturn vec4(mixColors(lowerBlend, mixColors(uniforms.colorB.uniform, uniforms.colorC.uniform, midToHighlight, csMode), smoothstep(uniforms.blendMid.uniform.sub(.1), uniforms.blendMid.uniform.add(.1), luminance), csMode).rgb, childNode.a);\n\t}\n};\nvar Tritone_default = componentDefinition;\nexport { componentDefinition as n, Tritone_default as t };\n","import { a as transformColor, o as transformColorSpace, t as colorSpaceOptions } from \"./transformations-CJcUeZIC.js\";\nimport { t as mixColors } from \"./colorMixing-BPpDnR5I.js\";\nimport { Fn, abs, dot, float, floor, fract, fwidth, length, min, screenUV, sin, smoothstep, step, vec2, viewportSize } from \"three/tsl\";\nvar truchetHash = Fn(([p]) => {\n\treturn fract(sin(dot(p, vec2(127.1, 311.7))).mul(float(43758.5453)));\n});\nconst componentDefinition = {\n\tname: \"Truchet\",\n\tcategory: \"Textures\",\n\tdescription: \"Quarter-circle arc tiles that connect to form organic, maze-like flowing curves\",\n\tprops: {\n\t\tcolorA: {\n\t\t\tdefault: \"#000000\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Background color between the arcs\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Color A\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tcolorB: {\n\t\t\tdefault: \"#ffffff\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Arc line color\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Color B\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tcells: {\n\t\t\tdefault: 10,\n\t\t\tdescription: \"Number of tiles across the shortest canvas edge\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 2,\n\t\t\t\tmax: 40,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Cells\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tthickness: {\n\t\t\tdefault: 2,\n\t\t\tdescription: \"Thickness of the arc lines\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 20,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Thickness\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tseed: {\n\t\t\tdefault: 0,\n\t\t\tdescription: \"Random seed — changes which tiles flip, producing a different maze pattern\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 100,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Seed\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tcolorSpace: {\n\t\t\tdefault: \"linear\",\n\t\t\ttransform: transformColorSpace,\n\t\t\tcompileTime: true,\n\t\t\tdescription: \"Color space for color interpolation\",\n\t\t\tui: {\n\t\t\t\ttype: \"select\",\n\t\t\t\toptions: colorSpaceOptions,\n\t\t\t\tlabel: \"Color Space\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t}\n\t},\n\tfragmentNode: ({ uniforms }) => {\n\t\tconst uv$1 = screenUV;\n\t\tconst aspect = viewportSize.x.div(viewportSize.y);\n\t\tconst scaledUV = vec2(uv$1.x.mul(aspect), uv$1.y).mul(uniforms.cells.uniform);\n\t\tconst cell = floor(scaledUV);\n\t\tconst localUV = fract(scaledUV);\n\t\tconst flip = truchetHash(cell.add(uniforms.seed.uniform)).greaterThan(float(.5));\n\t\tconst c1x = flip.select(float(1), float(0));\n\t\tconst c1y = flip.select(float(0), float(0));\n\t\tconst c2x = flip.select(float(0), float(1));\n\t\tconst c2y = flip.select(float(1), float(1));\n\t\tconst arcDist = min(abs(length(localUV.sub(vec2(c1x, c1y))).sub(float(.5))), abs(length(localUV.sub(vec2(c2x, c2y))).sub(float(.5))));\n\t\tconst lineWidth = uniforms.thickness.uniform.mul(float(.005));\n\t\tconst pixel = fwidth(scaledUV.x).mul(float(.5));\n\t\tconst lineMask = smoothstep(lineWidth.add(pixel), lineWidth, arcDist).mul(step(float(1e-4), lineWidth));\n\t\treturn mixColors(uniforms.colorA.uniform, uniforms.colorB.uniform, lineMask, uniforms.colorSpace.uniform.value);\n\t}\n};\nvar Truchet_default = componentDefinition;\nexport { componentDefinition as n, Truchet_default as t };\n","import { t as applyEdgeHandling } from \"./edges-CX_lJB9R.js\";\nimport { c as transformEdges, l as transformPosition } from \"./transformations-CJcUeZIC.js\";\nimport { t as unpremultiplyAlpha } from \"./alpha-C4ptedXe.js\";\nimport { convertToTexture, cos, length, screenUV, sin, vec2, vec4, viewportSize } from \"three/tsl\";\nconst componentDefinition = {\n\tname: \"Twirl\",\n\tcategory: \"Distortions\",\n\tdescription: \"Rotate and twist content around a center point\",\n\trequiresRTT: true,\n\trequiresChild: true,\n\tprops: {\n\t\tcenter: {\n\t\t\tdefault: {\n\t\t\t\tx: .5,\n\t\t\t\ty: .5\n\t\t\t},\n\t\t\ttransform: transformPosition,\n\t\t\tdescription: \"The center point of the twirl effect\",\n\t\t\tui: {\n\t\t\t\ttype: \"position\",\n\t\t\t\tlabel: \"Center\",\n\t\t\t\tgroup: \"Position\"\n\t\t\t}\n\t\t},\n\t\tintensity: {\n\t\t\tdefault: 1,\n\t\t\tdescription: \"The strength of the twirl effect\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: -5,\n\t\t\t\tmax: 5,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Intensity\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tedges: {\n\t\t\tdefault: \"stretch\",\n\t\t\tdescription: \"How to handle edges when distortion pushes content out of bounds\",\n\t\t\ttransform: transformEdges,\n\t\t\tcompileTime: true,\n\t\t\tui: {\n\t\t\t\ttype: \"select\",\n\t\t\t\toptions: [\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Stretch\",\n\t\t\t\t\t\tvalue: \"stretch\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Transparent\",\n\t\t\t\t\t\tvalue: \"transparent\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Mirror\",\n\t\t\t\t\t\tvalue: \"mirror\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Wrap\",\n\t\t\t\t\t\tvalue: \"wrap\"\n\t\t\t\t\t}\n\t\t\t\t],\n\t\t\t\tlabel: \"Edges\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t}\n\t},\n\tfragmentNode: ({ uniforms, childNode, onCleanup }) => {\n\t\tif (!childNode) {\n\t\t\tconsole.error(\"You must pass a child component into the Twirl shader.\");\n\t\t\treturn vec4(0);\n\t\t}\n\t\tconst texture$1 = convertToTexture(childNode);\n\t\tonCleanup(() => {\n\t\t\tif (texture$1?.renderTarget?.dispose) texture$1.renderTarget.dispose();\n\t\t});\n\t\tconst uvNode = screenUV;\n\t\tconst aspect = viewportSize.x.div(viewportSize.y);\n\t\tconst centerPos = vec2(uniforms.center.uniform.x, uniforms.center.uniform.y.oneMinus());\n\t\tconst delta = uvNode.sub(centerPos);\n\t\tconst aspectCorrectedDelta = vec2(delta.x.mul(aspect), delta.y);\n\t\tconst angle = uniforms.intensity.uniform.mul(length(aspectCorrectedDelta));\n\t\tconst cosAngle = cos(angle);\n\t\tconst sinAngle = sin(angle);\n\t\tconst rotatedX = cosAngle.mul(aspectCorrectedDelta.x).sub(sinAngle.mul(aspectCorrectedDelta.y));\n\t\tconst rotatedY = sinAngle.mul(aspectCorrectedDelta.x).add(cosAngle.mul(aspectCorrectedDelta.y));\n\t\tconst twistedUV = vec2(rotatedX.div(aspect).add(centerPos.x), rotatedY.add(centerPos.y));\n\t\treturn unpremultiplyAlpha(applyEdgeHandling(twistedUV, texture$1.sample(twistedUV), texture$1, uniforms.edges.uniform.value));\n\t}\n};\nvar Twirl_default = componentDefinition;\nexport { componentDefinition as n, Twirl_default as t };\n","import { a as transformColor, l as transformPosition, o as transformColorSpace, t as colorSpaceOptions } from \"./transformations-CJcUeZIC.js\";\nimport { t as mixColors } from \"./colorMixing-BPpDnR5I.js\";\nimport { p as vesicaSdf } from \"./sdf-D_EAGXhN.js\";\nimport { cos, float, screenUV, sin, smoothstep, vec2, vec4, viewportSize } from \"three/tsl\";\nvar transformStrokePosition = (value) => {\n\treturn {\n\t\t\"outside\": 0,\n\t\t\"center\": 1,\n\t\t\"inside\": 2\n\t}[value?.toLowerCase()] ?? 1;\n};\nconst componentDefinition = {\n\tname: \"Vesica\",\n\tcategory: \"Shapes\",\n\tdescription: \"Vesica piscis (lens shape) formed by the intersection of two overlapping circles\",\n\tprops: {\n\t\tcolor: {\n\t\t\tdefault: \"#ffffff\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Fill color of the vesica\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Color\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tcenter: {\n\t\t\tdefault: {\n\t\t\t\tx: .5,\n\t\t\t\ty: .5\n\t\t\t},\n\t\t\ttransform: transformPosition,\n\t\t\tdescription: \"Center position of the vesica\",\n\t\t\tui: {\n\t\t\t\ttype: \"position\",\n\t\t\t\tlabel: \"Center\",\n\t\t\t\tgroup: \"Position\"\n\t\t\t}\n\t\t},\n\t\tradius: {\n\t\t\tdefault: .35,\n\t\t\tdescription: \"Radius of the two overlapping circles\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: .05,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Size\",\n\t\t\t\tgroup: \"Shape\"\n\t\t\t}\n\t\t},\n\t\tspread: {\n\t\t\tdefault: .5,\n\t\t\tdescription: \"Circle separation — 0 = full circle overlap, 1 = infinitely thin lens\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: .05,\n\t\t\t\tmax: .95,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Spread\",\n\t\t\t\tgroup: \"Shape\"\n\t\t\t}\n\t\t},\n\t\trotation: {\n\t\t\tdefault: 0,\n\t\t\tdescription: \"Rotation in degrees\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 360,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Rotation\",\n\t\t\t\tgroup: \"Shape\"\n\t\t\t}\n\t\t},\n\t\tsoftness: {\n\t\t\tdefault: 0,\n\t\t\tdescription: \"Edge softness for antialiasing\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: .1,\n\t\t\t\tstep: .001,\n\t\t\t\tlabel: \"Softness\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tstrokeThickness: {\n\t\t\tdefault: 0,\n\t\t\tdescription: \"Stroke thickness. Zero means no stroke.\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: .2,\n\t\t\t\tstep: .005,\n\t\t\t\tlabel: \"Stroke Thickness\",\n\t\t\t\tgroup: \"Stroke\"\n\t\t\t}\n\t\t},\n\t\tstrokeColor: {\n\t\t\tdefault: \"#000000\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Color of the stroke outline\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Stroke Color\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tstrokePosition: {\n\t\t\tdefault: \"center\",\n\t\t\ttransform: transformStrokePosition,\n\t\t\tdescription: \"Position of the stroke relative to the shape edge\",\n\t\t\tui: {\n\t\t\t\ttype: \"select\",\n\t\t\t\toptions: [\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Outside\",\n\t\t\t\t\t\tvalue: \"outside\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Center\",\n\t\t\t\t\t\tvalue: \"center\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Inside\",\n\t\t\t\t\t\tvalue: \"inside\"\n\t\t\t\t\t}\n\t\t\t\t],\n\t\t\t\tlabel: \"Stroke Position\",\n\t\t\t\tgroup: \"Stroke\"\n\t\t\t}\n\t\t},\n\t\tcolorSpace: {\n\t\t\tdefault: \"linear\",\n\t\t\ttransform: transformColorSpace,\n\t\t\tcompileTime: true,\n\t\t\tdescription: \"Color space for blending fill and stroke colors\",\n\t\t\tui: {\n\t\t\t\ttype: \"select\",\n\t\t\t\toptions: colorSpaceOptions,\n\t\t\t\tlabel: \"Color Blending\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t}\n\t},\n\tfragmentNode: ({ uniforms }) => {\n\t\tconst uv$1 = screenUV;\n\t\tconst aspect = viewportSize.x.div(viewportSize.y);\n\t\tconst aspectUV = vec2(uv$1.x.mul(aspect), uv$1.y);\n\t\tconst centerPos = vec2(uniforms.center.uniform.x.mul(aspect), uniforms.center.uniform.y.oneMinus());\n\t\tconst dx = aspectUV.x.sub(centerPos.x);\n\t\tconst dy = aspectUV.y.sub(centerPos.y);\n\t\tconst rotRad = uniforms.rotation.uniform.mul(float(Math.PI / 180));\n\t\tconst cosR = cos(rotRad);\n\t\tconst sinR = sin(rotRad);\n\t\tconst sdf = vesicaSdf(dx.mul(cosR).add(dy.mul(sinR)), dy.mul(cosR).sub(dx.mul(sinR)), uniforms.radius.uniform, uniforms.spread.uniform);\n\t\tconst edgeSoftness = uniforms.softness.uniform;\n\t\tconst strokeThickness = uniforms.strokeThickness.uniform;\n\t\tconst strokePositionMode = uniforms.strokePosition.uniform;\n\t\tconst hasStroke = strokeThickness.greaterThan(float(0));\n\t\tconst isCenter = strokePositionMode.greaterThanEqual(float(.5)).and(strokePositionMode.lessThan(float(1.5)));\n\t\tconst isInside = strokePositionMode.greaterThanEqual(float(1.5));\n\t\tconst halfThickness = strokeThickness.mul(.5);\n\t\tconst strokeInner = isInside.select(strokeThickness.negate(), isCenter.select(halfThickness.negate(), float(0)));\n\t\tconst strokeOuter = isInside.select(float(0), isCenter.select(halfThickness, strokeThickness));\n\t\tconst overallMask = smoothstep(strokeOuter.sub(edgeSoftness), strokeOuter, sdf).oneMinus();\n\t\tconst strokeBlend = hasStroke.select(smoothstep(strokeInner.sub(edgeSoftness), strokeInner, sdf), float(0));\n\t\tconst blendedColor = mixColors(vec4(uniforms.color.uniform.rgb, uniforms.color.uniform.a), vec4(uniforms.strokeColor.uniform.rgb, uniforms.strokeColor.uniform.a), strokeBlend, uniforms.colorSpace.uniform.value);\n\t\treturn vec4(blendedColor.xyz, blendedColor.w.mul(overallMask));\n\t}\n};\nvar Vesica_default = componentDefinition;\nexport { componentDefinition as n, Vesica_default as t };\n","import { t as unpremultiplyAlpha } from \"./alpha-C4ptedXe.js\";\nimport { clamp, convertToTexture, cos, dot, float, floor, fract, mix, mod, screenUV, sin, smoothstep, time, vec2, vec3, vec4 } from \"three/tsl\";\nvar SMEAR_SAMPLES = 6;\nvar FIELD_LINES = 487;\nconst componentDefinition = {\n\tname: \"VHS\",\n\tcategory: \"Stylize\",\n\tdescription: \"Analog VHS tape with intermittent tape damage, chroma bleed, and per-scanline noise\",\n\trequiresRTT: true,\n\trequiresChild: true,\n\tprops: {\n\t\twobble: {\n\t\t\tdefault: 1,\n\t\t\tdescription: \"Overall amount of tape damage — waves, creases, and head-switching noise. Bursts on and off organically over time.\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 5,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Wobble\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tscanlineNoise: {\n\t\t\tdefault: .6,\n\t\t\tdescription: \"Per-scanline fine chroma/luma jitter. Adds the classic horizontal-streak detail.\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Scanline Noise\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tsmear: {\n\t\t\tdefault: .2,\n\t\t\tdescription: \"Horizontal chroma smear (color bleed) amount. Positive trails colour to the right (classic VHS), negative trails it to the left.\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: -2,\n\t\t\t\tmax: 2,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Smear\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tspeed: {\n\t\t\tdefault: 1,\n\t\t\tdescription: \"Animation speed of the tape effects.\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: .1,\n\t\t\t\tmax: 3,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Speed\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t}\n\t},\n\tfragmentNode: ({ uniforms, childNode, onCleanup }) => {\n\t\tif (!childNode) return vec4(0, 0, 0, 0);\n\t\tconst childTexture = convertToTexture(childNode);\n\t\tonCleanup(() => {\n\t\t\tif (childTexture?.renderTarget?.dispose) childTexture.renderTarget.dispose();\n\t\t});\n\t\tconst wobble = uniforms.wobble.uniform;\n\t\tconst scanlineNoiseAmt = uniforms.scanlineNoise.uniform;\n\t\tconst smear = uniforms.smear.uniform;\n\t\tconst speed = uniforms.speed.uniform;\n\t\tconst t = time.mul(speed);\n\t\tconst hash2D = (p) => fract(sin(dot(p, vec2(12.9898, 78.233))).mul(43758.5453));\n\t\tconst smoothNoise2D = (p) => {\n\t\t\tconst i = floor(p);\n\t\t\tconst f = fract(p);\n\t\t\tconst u = f.mul(f).mul(f.mul(-2).add(3));\n\t\t\tconst a = hash2D(i);\n\t\t\tconst b = hash2D(i.add(vec2(1, 0)));\n\t\t\tconst c = hash2D(i.add(vec2(0, 1)));\n\t\t\tconst d = hash2D(i.add(vec2(1, 1)));\n\t\t\treturn mix(mix(a, b, u.x), mix(c, d, u.x), u.y);\n\t\t};\n\t\tconst burst = smoothstep(float(.45), float(.8), smoothNoise2D(vec2(t.mul(.4), float(0))));\n\t\tconst rowInt = floor(screenUV.y.mul(FIELD_LINES));\n\t\tconst scanlineHash = (seedOffset) => fract(sin(rowInt.mul(12.9898).add(t.add(seedOffset).mul(78.233))).mul(43758.5453)).sub(.5).mul(2);\n\t\tconst fineGate = float(.25).add(burst.mul(.75));\n\t\tconst chromaRowOffset = scanlineHash(0).mul(scanlineNoiseAmt).mul(.008).mul(fineGate);\n\t\tconst lumaRowOffset = scanlineHash(69.42).mul(scanlineNoiseAmt).mul(.004).mul(fineGate);\n\t\tconst wave1 = smoothNoise2D(vec2(screenUV.y.mul(3), t.mul(.8))).sub(.5);\n\t\tconst wave2 = smoothNoise2D(vec2(screenUV.y.mul(30), t.mul(6))).sub(.5);\n\t\tconst tapeWave = wave1.mul(.008).add(wave2.mul(.002)).mul(wobble);\n\t\tconst creasePhase = smoothstep(float(.92), float(.99), sin(screenUV.y.mul(8).sub(t.mul(3.77))));\n\t\tconst creaseNoise = smoothstep(float(.3), float(1), smoothNoise2D(vec2(screenUV.y.mul(4.77), t)));\n\t\tconst creaseShift = creasePhase.mul(creaseNoise).mul(wobble).mul(-.018);\n\t\tconst switchPhase = smoothstep(float(.06), float(0), screenUV.y);\n\t\tconst switchNoise = smoothNoise2D(vec2(screenUV.y.mul(60), t.mul(14))).sub(.5);\n\t\tconst switchX = switchPhase.mul(switchNoise).mul(wobble).mul(.09);\n\t\tconst switchY = switchPhase.mul(wobble).mul(burst).mul(.02);\n\t\tconst globalX = tapeWave.add(creaseShift).add(switchX);\n\t\tconst lumaUV = vec2(screenUV.x.add(globalX).add(lumaRowOffset), screenUV.y.add(switchY));\n\t\tconst chromaUV = vec2(screenUV.x.add(globalX).add(chromaRowOffset), screenUV.y.add(switchY));\n\t\tconst lumaSample = childTexture.sample(lumaUV);\n\t\tconst sharpY = lumaSample.rgb.dot(vec3(.299, .587, .114));\n\t\tconst smearScale = smear.mul(.0075);\n\t\tlet accumI = float(0);\n\t\tlet accumQ = float(0);\n\t\tfor (let i = 0; i < SMEAR_SAMPLES; i++) {\n\t\t\tconst offsetX = float(-i).mul(smearScale);\n\t\t\tconst sampled = childTexture.sample(vec2(chromaUV.x.add(offsetX), chromaUV.y));\n\t\t\tconst iComp = sampled.rgb.dot(vec3(.596, -.274, -.322));\n\t\t\tconst qComp = sampled.rgb.dot(vec3(.211, -.523, .312));\n\t\t\tconst w = i / (SMEAR_SAMPLES - 1) * (2 / SMEAR_SAMPLES);\n\t\t\taccumI = accumI.add(iComp.mul(w));\n\t\t\taccumQ = accumQ.add(qComp.mul(w));\n\t\t}\n\t\tconst finalYiq = vec3(sharpY, accumI, accumQ);\n\t\tconst finalRgb = vec3(finalYiq.x.add(finalYiq.y.mul(.956)).add(finalYiq.z.mul(.621)), finalYiq.x.sub(finalYiq.y.mul(.272)).sub(finalYiq.z.mul(.647)), finalYiq.x.sub(finalYiq.y.mul(1.106)).add(finalYiq.z.mul(1.703)));\n\t\tconst acBeat = float(1).add(cos(mod(t, 6.2831853).mul(2).add(screenUV.y.mul(.5))).mul(.015).mul(wobble));\n\t\treturn unpremultiplyAlpha(vec4(clamp(finalRgb.mul(acBeat), vec3(0), vec3(1)), lumaSample.a));\n\t}\n};\nvar VHS_default = componentDefinition;\nexport { componentDefinition as n, VHS_default as t };\n","import { add, max, mix, vec3, vec4 } from \"three/tsl\";\nconst componentDefinition = {\n\tname: \"Vibrance\",\n\tcategory: \"Adjustments\",\n\tdescription: \"Selective saturation adjustment protecting skin tones\",\n\trequiresChild: true,\n\tprops: { intensity: {\n\t\tdefault: 0,\n\t\tdescription: \"The intensity of the vibrance effect\",\n\t\tui: {\n\t\t\ttype: [\"range\", \"map\"],\n\t\t\tmin: -2,\n\t\t\tmax: 2,\n\t\t\tstep: .1,\n\t\t\tlabel: \"Intensity\",\n\t\t\tgroup: \"Appearance\"\n\t\t}\n\t} },\n\tfragmentNode: ({ uniforms, childNode }) => {\n\t\tif (!childNode) {\n\t\t\tconsole.error(\"You must pass a child component into the Vibrance shader.\");\n\t\t\treturn vec4(0);\n\t\t}\n\t\tconst color = childNode.rgb;\n\t\tconst adjustment = uniforms.intensity.uniform;\n\t\tconst average = add(color.r, add(color.g, color.b)).div(3);\n\t\tconst mx = max(color.r, max(color.g, color.b));\n\t\tconst amt = mx.sub(average).mul(adjustment).mul(-3);\n\t\treturn vec4(mix(color, vec3(mx, mx, mx), amt), childNode.a);\n\t}\n};\nvar Vibrance_default = componentDefinition;\nexport { componentDefinition as n, Vibrance_default as t };\n","var _needsCanvasWorkaround = null;\nfunction needsVideoCanvasWorkaround() {\n\tif (_needsCanvasWorkaround === null) _needsCanvasWorkaround = typeof navigator !== \"undefined\" && /Firefox/.test(navigator.userAgent);\n\treturn _needsCanvasWorkaround;\n}\nexport { needsVideoCanvasWorkaround as t };\n","import { t as needsVideoCanvasWorkaround } from \"./browser-CDogs09U.js\";\nimport { CanvasTexture, SRGBColorSpace, VideoTexture } from \"three/webgpu\";\nimport { float, max, min, or, screenUV, select, texture, uniform, vec2, vec4, viewportSize } from \"three/tsl\";\nconst componentDefinition = {\n\tname: \"VideoTexture\",\n\tcategory: \"Textures\",\n\tdescription: \"Display a video with customizable playback and object-fit modes\",\n\tprops: {\n\t\turl: {\n\t\t\tdefault: \"https://shaders.com/sample.mp4\",\n\t\t\tdescription: \"Upload a video or provide a URL\",\n\t\t\tui: {\n\t\t\t\ttype: \"video-upload\",\n\t\t\t\tlabel: \"Video\",\n\t\t\t\tgroup: \"Media\"\n\t\t\t}\n\t\t},\n\t\tobjectFit: {\n\t\t\tdefault: \"cover\",\n\t\t\tdescription: \"How the video should be sized within the viewport\",\n\t\t\ttransform: (value) => {\n\t\t\t\treturn {\n\t\t\t\t\t\"cover\": 0,\n\t\t\t\t\t\"contain\": 1,\n\t\t\t\t\t\"fill\": 2,\n\t\t\t\t\t\"scale-down\": 3,\n\t\t\t\t\t\"none\": 4\n\t\t\t\t}[value] ?? 0;\n\t\t\t},\n\t\t\tcompileTime: true,\n\t\t\tui: {\n\t\t\t\ttype: \"select\",\n\t\t\t\toptions: [\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Cover\",\n\t\t\t\t\t\tvalue: \"cover\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Contain\",\n\t\t\t\t\t\tvalue: \"contain\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Fill\",\n\t\t\t\t\t\tvalue: \"fill\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Scale Down\",\n\t\t\t\t\t\tvalue: \"scale-down\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"None\",\n\t\t\t\t\t\tvalue: \"none\"\n\t\t\t\t\t}\n\t\t\t\t],\n\t\t\t\tlabel: \"Object Fit\",\n\t\t\t\tgroup: \"Appearance\"\n\t\t\t}\n\t\t},\n\t\tloop: {\n\t\t\tdefault: true,\n\t\t\tdescription: \"Loop the video playback\",\n\t\t\tui: {\n\t\t\t\ttype: \"checkbox\",\n\t\t\t\tlabel: \"Loop\",\n\t\t\t\tgroup: \"Playback\"\n\t\t\t}\n\t\t}\n\t},\n\tfragmentNode: ({ uniforms, onCleanup, onBeforeRender }) => {\n\t\tconst baseUV = screenUV;\n\t\tlet videoElement = null;\n\t\tlet currentUrl = \"\";\n\t\tlet isLoading = false;\n\t\tlet isDisposed = false;\n\t\tconst videoAspectUniform = uniform(1);\n\t\tconst videoWidthUniform = uniform(640);\n\t\tconst videoHeightUniform = uniform(480);\n\t\tlet canvas = null;\n\t\tlet ctx = null;\n\t\tlet activeTexture;\n\t\tif (needsVideoCanvasWorkaround()) {\n\t\t\tcanvas = document.createElement(\"canvas\");\n\t\t\tcanvas.width = 640;\n\t\t\tcanvas.height = 480;\n\t\t\tctx = canvas.getContext(\"2d\");\n\t\t\tactiveTexture = new CanvasTexture(canvas);\n\t\t} else {\n\t\t\tconst placeholderVideo = document.createElement(\"video\");\n\t\t\tplaceholderVideo.playsInline = true;\n\t\t\tplaceholderVideo.muted = true;\n\t\t\tactiveTexture = new VideoTexture(placeholderVideo);\n\t\t}\n\t\tactiveTexture.colorSpace = SRGBColorSpace;\n\t\tconst textureNode = texture(activeTexture);\n\t\tconst loadVideo = async (url) => {\n\t\t\tif (!url || url.trim() === \"\" || isLoading || isDisposed) return;\n\t\t\tisLoading = true;\n\t\t\ttry {\n\t\t\t\tconst video = document.createElement(\"video\");\n\t\t\t\tvideo.src = url;\n\t\t\t\tvideo.playsInline = true;\n\t\t\t\tvideo.crossOrigin = \"anonymous\";\n\t\t\t\tvideo.muted = true;\n\t\t\t\tvideo.loop = uniforms.loop?.uniform?.value ?? true;\n\t\t\t\tawait new Promise((resolve, reject) => {\n\t\t\t\t\tvideo.onloadedmetadata = () => {\n\t\t\t\t\t\tresolve();\n\t\t\t\t\t};\n\t\t\t\t\tvideo.onerror = () => {\n\t\t\t\t\t\treject(/* @__PURE__ */ new Error(\"Failed to load video\"));\n\t\t\t\t\t};\n\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\treject(/* @__PURE__ */ new Error(\"Video load timeout\"));\n\t\t\t\t\t}, 1e4);\n\t\t\t\t});\n\t\t\t\tif (isDisposed) {\n\t\t\t\t\tvideo.src = \"\";\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tconst width = video.videoWidth || 640;\n\t\t\t\tconst height = video.videoHeight || 480;\n\t\t\t\tvideoAspectUniform.value = width / height;\n\t\t\t\tvideoWidthUniform.value = width;\n\t\t\t\tvideoHeightUniform.value = height;\n\t\t\t\tif (videoElement) {\n\t\t\t\t\tvideoElement.pause();\n\t\t\t\t\tvideoElement.src = \"\";\n\t\t\t\t\tvideoElement = null;\n\t\t\t\t}\n\t\t\t\tvideoElement = video;\n\t\t\t\tcurrentUrl = url;\n\t\t\t\ttry {\n\t\t\t\t\tawait video.play();\n\t\t\t\t} catch (error) {\n\t\t\t\t\tconsole.warn(\"[VideoTexture] Autoplay failed (browser policy):\", error);\n\t\t\t\t}\n\t\t\t\tactiveTexture.dispose();\n\t\t\t\tif (needsVideoCanvasWorkaround()) {\n\t\t\t\t\tcanvas.width = width;\n\t\t\t\t\tcanvas.height = height;\n\t\t\t\t\tactiveTexture = new CanvasTexture(canvas);\n\t\t\t\t} else activeTexture = new VideoTexture(video);\n\t\t\t\tactiveTexture.colorSpace = SRGBColorSpace;\n\t\t\t\ttextureNode.value = activeTexture;\n\t\t\t\tisLoading = false;\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error(\"[VideoTexture] Failed to load video:\", error);\n\t\t\t\tisLoading = false;\n\t\t\t}\n\t\t};\n\t\tsetTimeout(() => {\n\t\t\tconst initialUrl = uniforms?.url?.uniform?.value ?? \"\";\n\t\t\tif (initialUrl && initialUrl.trim() !== \"\") loadVideo(initialUrl);\n\t\t}, 0);\n\t\tonBeforeRender(() => {\n\t\t\tconst newUrl = uniforms?.url?.uniform?.value ?? \"\";\n\t\t\tif (newUrl !== currentUrl && !isLoading) loadVideo(newUrl);\n\t\t\tif (videoElement) {\n\t\t\t\tconst loopValue = uniforms.loop?.uniform?.value ?? true;\n\t\t\t\tif (videoElement.loop !== loopValue) videoElement.loop = loopValue;\n\t\t\t\tif (needsVideoCanvasWorkaround() && !videoElement.paused && videoElement.readyState >= 2) {\n\t\t\t\t\tctx.drawImage(videoElement, 0, 0, canvas.width, canvas.height);\n\t\t\t\t\tactiveTexture.needsUpdate = true;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\tonCleanup(() => {\n\t\t\tisDisposed = true;\n\t\t\tif (videoElement) {\n\t\t\t\tvideoElement.pause();\n\t\t\t\tvideoElement.src = \"\";\n\t\t\t\tvideoElement = null;\n\t\t\t}\n\t\t\tactiveTexture.dispose();\n\t\t\tcurrentUrl = \"\";\n\t\t});\n\t\tconst uv$1 = baseUV;\n\t\tconst viewportAspect = viewportSize.x.div(viewportSize.y);\n\t\tconst objectFitMode = uniforms.objectFit.uniform.value;\n\t\tlet uvScale;\n\t\tswitch (objectFitMode) {\n\t\t\tcase 1: {\n\t\t\t\tconst containScale = min(viewportAspect.div(videoAspectUniform), float(1));\n\t\t\t\tuvScale = vec2(videoAspectUniform.div(viewportAspect).mul(containScale), containScale);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase 2:\n\t\t\t\tuvScale = vec2(1, 1);\n\t\t\t\tbreak;\n\t\t\tcase 3: {\n\t\t\t\tconst scaleDownScale = min(min(viewportAspect.div(videoAspectUniform), float(1)), min(viewportSize.x.div(videoWidthUniform), viewportSize.y.div(videoHeightUniform)));\n\t\t\t\tuvScale = vec2(videoAspectUniform.div(viewportAspect).mul(scaleDownScale), scaleDownScale);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase 4: {\n\t\t\t\tconst noneScale = min(viewportSize.x.div(videoWidthUniform), viewportSize.y.div(videoHeightUniform));\n\t\t\t\tuvScale = vec2(videoAspectUniform.div(viewportAspect).mul(noneScale), noneScale);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase 0:\n\t\t\tdefault: {\n\t\t\t\tconst coverScale = max(viewportAspect.div(videoAspectUniform), float(1));\n\t\t\t\tuvScale = vec2(videoAspectUniform.div(viewportAspect).mul(coverScale), coverScale);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tconst adjustedUV = uv$1.sub(vec2(.5)).div(uvScale).add(vec2(.5));\n\t\tconst finalUV = vec2(adjustedUV.x, float(1).sub(adjustedUV.y));\n\t\tconst sampledColor = textureNode.sample(finalUV);\n\t\tconst isOutOfBounds = or(or(finalUV.x.lessThan(0), finalUV.x.greaterThan(1)), or(finalUV.y.lessThan(0), finalUV.y.greaterThan(1)));\n\t\treturn vec4(sampledColor.rgb, select(isOutOfBounds, float(0), sampledColor.a));\n\t}\n};\nvar VideoTexture_default = componentDefinition;\nexport { componentDefinition as n, VideoTexture_default as t };\n","import { a as transformColor, l as transformPosition } from \"./transformations-CJcUeZIC.js\";\nimport { length, mix, screenUV, smoothstep, vec2, vec4, viewportSize } from \"three/tsl\";\nconst componentDefinition = {\n\tname: \"Vignette\",\n\tcategory: \"Stylize\",\n\tdescription: \"Darkens or tints the edges of the frame, drawing attention toward the center\",\n\trequiresChild: true,\n\tprops: {\n\t\tcolor: {\n\t\t\tdefault: \"#000000\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Color of the vignette at the edges\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Color\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tcenter: {\n\t\t\tdefault: {\n\t\t\t\tx: .5,\n\t\t\t\ty: .5\n\t\t\t},\n\t\t\ttransform: transformPosition,\n\t\t\tdescription: \"Center of the clear area where the vignette begins\",\n\t\t\tui: {\n\t\t\t\ttype: \"position\",\n\t\t\t\tlabel: \"Center\",\n\t\t\t\tgroup: \"Position\"\n\t\t\t}\n\t\t},\n\t\tradius: {\n\t\t\tdefault: .5,\n\t\t\tdescription: \"Distance from center where the vignette begins to fade in\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1.5,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Radius\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tfalloff: {\n\t\t\tdefault: .5,\n\t\t\tdescription: \"Width of the transition zone from clear to full vignette\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: .01,\n\t\t\t\tmax: 1.5,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Falloff\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tintensity: {\n\t\t\tdefault: 1,\n\t\t\tdescription: \"Strength of the vignette effect\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Intensity\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t}\n\t},\n\tfragmentNode: ({ uniforms, childNode }) => {\n\t\tif (!childNode) {\n\t\t\tconsole.error(\"You must pass a child component into the Vignette shader.\");\n\t\t\treturn vec4(0);\n\t\t}\n\t\tconst uv$1 = screenUV;\n\t\tconst aspect = viewportSize.x.div(viewportSize.y);\n\t\tconst aspectUV = vec2(uv$1.x.mul(aspect), uv$1.y);\n\t\tconst centerPos = vec2(uniforms.center.uniform.x.mul(aspect), uniforms.center.uniform.y.oneMinus());\n\t\tconst dist = length(aspectUV.sub(centerPos));\n\t\tconst vignetteMask = smoothstep(uniforms.radius.uniform, uniforms.radius.uniform.add(uniforms.falloff.uniform), dist);\n\t\treturn vec4(mix(childNode.rgb, uniforms.color.uniform.rgb, vignetteMask.mul(uniforms.intensity.uniform)), childNode.a);\n\t}\n};\nvar Vignette_default = componentDefinition;\nexport { componentDefinition as n, Vignette_default as t };\n","import { a as transformColor, o as transformColorSpace, t as colorSpaceOptions } from \"./transformations-CJcUeZIC.js\";\nimport { t as mixColors } from \"./colorMixing-BPpDnR5I.js\";\nimport { t as createAnimatedTime } from \"./time-DUqSFWvT.js\";\nimport { Fn, cos, dot, float, floor, fract, length, mix, pow, screenUV, sin, smoothstep, vec2, vec4, viewportSize } from \"three/tsl\";\nvar voronoiHash = Fn(([p]) => {\n\treturn fract(sin(vec2(dot(p, vec2(127.1, 311.7)), dot(p, vec2(269.5, 183.3)))).mul(float(43758.5453)));\n});\nconst componentDefinition = {\n\tname: \"Voronoi\",\n\tcategory: \"Textures\",\n\tdescription: \"Cellular pattern where each pixel is colored by its distance to the nearest of many scattered points\",\n\tprops: {\n\t\tcolorA: {\n\t\t\tdefault: \"#3186cf\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Color near each cell's center point\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Color A (Center)\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tcolorB: {\n\t\t\tdefault: \"#fc02dd\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Color at cell boundaries, far from any center point\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Color B (Edge)\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tcolorBorder: {\n\t\t\tdefault: \"#000000\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Color of the cell boundary lines\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Border Color\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tscale: {\n\t\t\tdefault: 6,\n\t\t\tdescription: \"Number of cells across the canvas\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 1,\n\t\t\t\tmax: 20,\n\t\t\t\tstep: .5,\n\t\t\t\tlabel: \"Scale\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tspeed: {\n\t\t\tdefault: .5,\n\t\t\tdescription: \"Animation speed — how fast the cell points drift\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 5,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Speed\",\n\t\t\t\tgroup: \"Animation\"\n\t\t\t}\n\t\t},\n\t\tseed: {\n\t\t\tdefault: 0,\n\t\t\tdescription: \"Random seed — shifts the cell pattern without changing the overall structure\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 100,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Seed\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tedgeIntensity: {\n\t\t\tdefault: .5,\n\t\t\tdescription: \"Controls how much of the cell interior is filled by the edge color. Low = center color dominates with a sharp boundary. High = edge color spreads further into the cell.\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Edge Intensity\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tedgeSoftness: {\n\t\t\tdefault: .05,\n\t\t\tdescription: \"Width of the cell boundary lines.\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: .4,\n\t\t\t\tstep: .005,\n\t\t\t\tlabel: \"Edge Softness\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tcolorSpace: {\n\t\t\tdefault: \"oklch\",\n\t\t\ttransform: transformColorSpace,\n\t\t\tcompileTime: true,\n\t\t\tdescription: \"Color space for color interpolation\",\n\t\t\tui: {\n\t\t\t\ttype: \"select\",\n\t\t\t\toptions: colorSpaceOptions,\n\t\t\t\tlabel: \"Color Space\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t}\n\t},\n\tfragmentNode: (params) => {\n\t\tconst { uniforms } = params;\n\t\tconst colorA = uniforms.colorA.uniform;\n\t\tconst colorB = uniforms.colorB.uniform;\n\t\tconst colorBorder = uniforms.colorBorder.uniform;\n\t\tconst csMode = uniforms.colorSpace.uniform.value;\n\t\tconst scale = uniforms.scale.uniform;\n\t\tconst seed = uniforms.seed.uniform;\n\t\tconst t = createAnimatedTime(params, uniforms.speed);\n\t\tconst aspect = viewportSize.x.div(viewportSize.y);\n\t\tconst scaledUV = vec2(screenUV.x.mul(aspect), screenUV.y).mul(scale);\n\t\treturn Fn(([uv$1, animT, seedVal, edgeIntensity, edgeSoftness, borderColor]) => {\n\t\t\tconst cell = floor(uv$1);\n\t\t\tconst localUV = fract(uv$1);\n\t\t\tlet d1 = float(10);\n\t\t\tlet d2 = float(10);\n\t\t\tfor (let ny = -1; ny <= 1; ny++) for (let nx = -1; nx <= 1; nx++) {\n\t\t\t\tconst offset = vec2(float(nx), float(ny));\n\t\t\t\tconst h = voronoiHash(cell.add(offset).add(seedVal));\n\t\t\t\tconst pointX = h.x.add(sin(animT.add(h.x.mul(float(6.28)))).mul(float(.15))).clamp(float(.05), float(.95));\n\t\t\t\tconst pointY = h.y.add(cos(animT.mul(float(.7)).add(h.y.mul(float(6.28)))).mul(float(.15))).clamp(float(.05), float(.95));\n\t\t\t\tconst d = length(localUV.sub(offset.add(vec2(pointX, pointY))));\n\t\t\t\tconst isCloser = d.lessThan(d1);\n\t\t\t\td2 = isCloser.select(d1, d.lessThan(d2).select(d, d2));\n\t\t\t\td1 = isCloser.select(d, d1);\n\t\t\t}\n\t\t\tconst safeSum = d1.add(d2).max(float(1e-4));\n\t\t\tconst cellColor = mixColors(colorA, colorB, pow(d1.mul(float(2)).div(safeSum).clamp(float(0), float(1)), float(4).sub(edgeIntensity.mul(float(3)))).clamp(float(0), float(1)), csMode);\n\t\t\tconst scaledEdgeSoftness = edgeSoftness.mul(scale).div(float(6));\n\t\t\tconst edgeMetric = d2.sub(d1).div(safeSum);\n\t\t\tconst edgeMask = smoothstep(float(0), scaledEdgeSoftness.add(float(.001)), edgeMetric);\n\t\t\treturn vec4(mix(borderColor.rgb, cellColor.rgb, edgeMask), cellColor.a);\n\t\t})(scaledUV, t, seed, uniforms.edgeIntensity.uniform, uniforms.edgeSoftness.uniform, colorBorder);\n\t}\n};\nvar Voronoi_default = componentDefinition;\nexport { componentDefinition as n, Voronoi_default as t };\n","import { n as applyEdgeToUV, t as applyEdgeHandling } from \"./edges-CX_lJB9R.js\";\nimport { c as transformEdges } from \"./transformations-CJcUeZIC.js\";\nimport { t as unpremultiplyAlpha } from \"./alpha-C4ptedXe.js\";\nimport { t as createAnimatedTime } from \"./time-DUqSFWvT.js\";\nimport { PI, abs, convertToTexture, cos, float, fract, screenUV, sin, step, uniform, vec2, vec4, viewportSize } from \"three/tsl\";\nconst componentDefinition = {\n\tname: \"WaveDistortion\",\n\tcategory: \"Distortions\",\n\tdescription: \"Wave-based distortion with multiple waveform types\",\n\trequiresRTT: true,\n\trequiresChild: true,\n\tprops: {\n\t\tstrength: {\n\t\t\tdefault: .3,\n\t\t\tdescription: \"Distortion intensity\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .05,\n\t\t\t\tlabel: \"Strength\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tfrequency: {\n\t\t\tdefault: 1,\n\t\t\tdescription: \"Number of bends/waves\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: .1,\n\t\t\t\tmax: 10,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Frequency\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tspeed: {\n\t\t\tdefault: 1,\n\t\t\tdescription: \"Animation speed\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 5,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Speed\",\n\t\t\t\tgroup: \"Animation\"\n\t\t\t}\n\t\t},\n\t\tangle: {\n\t\t\tdefault: 0,\n\t\t\tdescription: \"Direction of wave distortion in degrees\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 360,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Angle\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\twaveType: {\n\t\t\tdefault: \"sine\",\n\t\t\tdescription: \"Shape of the distortion wave\",\n\t\t\tcompileTime: true,\n\t\t\ttransform: (value) => {\n\t\t\t\treturn {\n\t\t\t\t\t\"sine\": 0,\n\t\t\t\t\t\"triangle\": 1,\n\t\t\t\t\t\"square\": 2,\n\t\t\t\t\t\"sawtooth\": 3,\n\t\t\t\t\t\"bounce\": 4\n\t\t\t\t}[value] ?? 0;\n\t\t\t},\n\t\t\tui: {\n\t\t\t\ttype: \"select\",\n\t\t\t\toptions: [\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Sine\",\n\t\t\t\t\t\tvalue: \"sine\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Triangle\",\n\t\t\t\t\t\tvalue: \"triangle\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Square\",\n\t\t\t\t\t\tvalue: \"square\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Sawtooth\",\n\t\t\t\t\t\tvalue: \"sawtooth\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Bounce\",\n\t\t\t\t\t\tvalue: \"bounce\"\n\t\t\t\t\t}\n\t\t\t\t],\n\t\t\t\tlabel: \"Wave Type\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tedges: {\n\t\t\tdefault: \"stretch\",\n\t\t\tdescription: \"How to handle edges when distortion pushes content out of bounds\",\n\t\t\ttransform: transformEdges,\n\t\t\tcompileTime: true,\n\t\t\tui: {\n\t\t\t\ttype: \"select\",\n\t\t\t\toptions: [\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Stretch\",\n\t\t\t\t\t\tvalue: \"stretch\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Transparent\",\n\t\t\t\t\t\tvalue: \"transparent\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Mirror\",\n\t\t\t\t\t\tvalue: \"mirror\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Wrap\",\n\t\t\t\t\t\tvalue: \"wrap\"\n\t\t\t\t\t}\n\t\t\t\t],\n\t\t\t\tlabel: \"Edges\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t}\n\t},\n\tfragmentNode: (params) => {\n\t\tconst { uniforms, childNode, onCleanup, onBeforeRender } = params;\n\t\tif (!childNode) return vec4(0, 0, 0, 0);\n\t\tconst uvCoord = screenUV;\n\t\tconst aspect = viewportSize.x.div(viewportSize.y);\n\t\tconst t = createAnimatedTime(params, uniforms.speed).mul(.5);\n\t\tlet cosAngle, sinAngle;\n\t\tif (uniforms.angle.uniform.isUniformNode) {\n\t\t\tconst precomputedCos = uniform(1);\n\t\t\tconst precomputedSin = uniform(0);\n\t\t\tonBeforeRender(() => {\n\t\t\t\tconst rad = uniforms.angle.uniform.value * Math.PI / 180;\n\t\t\t\tprecomputedCos.value = Math.cos(rad);\n\t\t\t\tprecomputedSin.value = Math.sin(rad);\n\t\t\t});\n\t\t\tcosAngle = precomputedCos;\n\t\t\tsinAngle = precomputedSin;\n\t\t} else {\n\t\t\tconst angleRad = uniforms.angle.uniform.mul(PI).div(180);\n\t\t\tcosAngle = cos(angleRad).toVar();\n\t\t\tsinAngle = sin(angleRad).toVar();\n\t\t}\n\t\tconst centeredUV = uvCoord.sub(vec2(.5, .5));\n\t\tconst aspectCorrectedUV = vec2(centeredUV.x.mul(aspect), centeredUV.y);\n\t\tconst phase = aspectCorrectedUV.x.mul(sinAngle).add(aspectCorrectedUV.y.mul(cosAngle)).add(.5).mul(uniforms.frequency.uniform).mul(PI.mul(2)).add(t);\n\t\tlet finalWave;\n\t\tswitch (uniforms.waveType.uniform.value) {\n\t\t\tcase 1:\n\t\t\t\tfinalWave = abs(fract(phase.div(PI.mul(2))).mul(2).sub(1)).mul(2).sub(1);\n\t\t\t\tbreak;\n\t\t\tcase 2: {\n\t\t\t\tconst normalizedPhase = fract(phase.div(PI.mul(2)));\n\t\t\t\tfinalWave = step(float(.5), normalizedPhase).mul(2).sub(1);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase 3:\n\t\t\t\tfinalWave = fract(phase.div(PI.mul(2))).mul(2).sub(1);\n\t\t\t\tbreak;\n\t\t\tcase 4:\n\t\t\t\tfinalWave = abs(sin(phase));\n\t\t\t\tbreak;\n\t\t\tdefault: finalWave = sin(phase);\n\t\t}\n\t\tconst displacement = finalWave.mul(uniforms.strength.uniform).mul(.5);\n\t\tconst displacementX = displacement.mul(cosAngle).div(aspect);\n\t\tconst displacementY = displacement.mul(sinAngle);\n\t\tconst distortedUV = vec2(uvCoord.x.add(displacementX), uvCoord.y.add(displacementY));\n\t\tconst childTexture = convertToTexture(childNode);\n\t\tonCleanup(() => {\n\t\t\tif (childTexture?.renderTarget?.dispose) childTexture.renderTarget.dispose();\n\t\t});\n\t\tconst edgeMode = uniforms.edges.uniform.value;\n\t\tlet finalColor;\n\t\tif (edgeMode === 2 || edgeMode === 3) {\n\t\t\tconst finalUV = applyEdgeToUV(distortedUV, edgeMode);\n\t\t\tfinalColor = childTexture.sample(finalUV);\n\t\t} else finalColor = applyEdgeHandling(distortedUV, childTexture.sample(distortedUV), childTexture, edgeMode);\n\t\treturn unpremultiplyAlpha(finalColor);\n\t}\n};\nvar WaveDistortion_default = componentDefinition;\nexport { componentDefinition as n, WaveDistortion_default as t };\n","import { a as transformColor } from \"./transformations-CJcUeZIC.js\";\nimport { cos, float, floor, fract, fwidth, mod, screenUV, sin, smoothstep, vec2, vec4, viewportSize } from \"three/tsl\";\nconst componentDefinition = {\n\tname: \"Weave\",\n\tcategory: \"Textures\",\n\tdescription: \"Interlaced textile weave pattern with two thread colors going over and under each other\",\n\tprops: {\n\t\tcolorA: {\n\t\t\tdefault: \"#c4c4c4\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Horizontal thread color\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"X Color\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tcolorB: {\n\t\t\tdefault: \"#4d4d4d\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Vertical thread color\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Y Color\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tcells: {\n\t\t\tdefault: 10,\n\t\t\tdescription: \"Number of threads across the shortest canvas edge\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 2,\n\t\t\t\tmax: 40,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Cells\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tgap: {\n\t\t\tdefault: .25,\n\t\t\tdescription: \"Gap between threads (0 = no gap, 0.5 = maximum gap)\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: .45,\n\t\t\t\tstep: .01,\n\t\t\t\tlabel: \"Gap\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\trotation: {\n\t\t\tdefault: 0,\n\t\t\tdescription: \"Rotation of the weave pattern in degrees\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 360,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Rotation\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t}\n\t},\n\tfragmentNode: ({ uniforms }) => {\n\t\tconst uv$1 = screenUV;\n\t\tconst aspect = viewportSize.x.div(viewportSize.y);\n\t\tconst correctedUV = vec2(uv$1.x.mul(aspect), uv$1.y);\n\t\tconst rotRad = uniforms.rotation.uniform.mul(float(Math.PI / 180));\n\t\tconst cosR = cos(rotRad);\n\t\tconst sinR = sin(rotRad);\n\t\tconst center = vec2(aspect.mul(float(.5)), float(.5));\n\t\tconst centered = correctedUV.sub(center);\n\t\tconst scaledUV = vec2(centered.x.mul(cosR).sub(centered.y.mul(sinR)), centered.x.mul(sinR).add(centered.y.mul(cosR))).add(center).mul(uniforms.cells.uniform);\n\t\tconst cell = floor(scaledUV);\n\t\tconst localUV = fract(scaledUV);\n\t\tconst gap = uniforms.gap.uniform;\n\t\tconst pixel = fwidth(scaledUV.x).mul(float(.5));\n\t\tconst hBand = smoothstep(gap, gap.add(pixel), localUV.y).mul(smoothstep(gap, gap.add(pixel), float(1).sub(localUV.y)));\n\t\tconst vBand = smoothstep(gap, gap.add(pixel), localUV.x).mul(smoothstep(gap, gap.add(pixel), float(1).sub(localUV.x)));\n\t\tconst isHTopFloat = mod(cell.x.add(cell.y), float(2));\n\t\tconst intersection = hBand.mul(vBand);\n\t\tconst hVis = hBand.sub(intersection.mul(isHTopFloat)).clamp(float(0), float(1));\n\t\tconst vVis = vBand.sub(intersection.mul(float(1).sub(isHTopFloat))).clamp(float(0), float(1));\n\t\tconst colorA = uniforms.colorA.uniform;\n\t\tconst colorB = uniforms.colorB.uniform;\n\t\tconst weightA = colorA.a.mul(hVis);\n\t\tconst weightB = colorB.a.mul(vVis);\n\t\tconst totalAlpha = weightA.add(weightB).clamp(float(0), float(1));\n\t\tconst safeWeight = weightA.add(weightB).max(float(.001));\n\t\treturn vec4(colorA.x.mul(weightA).add(colorB.x.mul(weightB)).div(safeWeight), colorA.y.mul(weightA).add(colorB.y.mul(weightB)).div(safeWeight), colorA.z.mul(weightA).add(colorB.z.mul(weightB)).div(safeWeight), totalAlpha);\n\t}\n};\nvar Weave_default = componentDefinition;\nexport { componentDefinition as n, Weave_default as t };\n","import { t as needsVideoCanvasWorkaround } from \"./browser-CDogs09U.js\";\nimport { CanvasTexture, SRGBColorSpace, VideoTexture } from \"three/webgpu\";\nimport { float, max, min, or, screenUV, select, texture, uniform, vec2, vec4, viewportSize } from \"three/tsl\";\nconst componentDefinition = {\n\tname: \"WebcamTexture\",\n\tcategory: \"Textures\",\n\tdescription: \"Display a live webcam feed with customizable object-fit modes\",\n\tprops: {\n\t\tobjectFit: {\n\t\t\tdefault: \"cover\",\n\t\t\tdescription: \"How the webcam feed should be sized within the viewport\",\n\t\t\ttransform: (value) => {\n\t\t\t\treturn {\n\t\t\t\t\t\"cover\": 0,\n\t\t\t\t\t\"contain\": 1,\n\t\t\t\t\t\"fill\": 2,\n\t\t\t\t\t\"scale-down\": 3,\n\t\t\t\t\t\"none\": 4\n\t\t\t\t}[value] ?? 0;\n\t\t\t},\n\t\t\tcompileTime: true,\n\t\t\tui: {\n\t\t\t\ttype: \"select\",\n\t\t\t\toptions: [\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Cover\",\n\t\t\t\t\t\tvalue: \"cover\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Contain\",\n\t\t\t\t\t\tvalue: \"contain\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Fill\",\n\t\t\t\t\t\tvalue: \"fill\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Scale Down\",\n\t\t\t\t\t\tvalue: \"scale-down\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"None\",\n\t\t\t\t\t\tvalue: \"none\"\n\t\t\t\t\t}\n\t\t\t\t],\n\t\t\t\tlabel: \"Object Fit\",\n\t\t\t\tgroup: \"Appearance\"\n\t\t\t}\n\t\t},\n\t\tmirror: {\n\t\t\tdefault: true,\n\t\t\tdescription: \"Mirror the webcam feed horizontally (selfie mode)\",\n\t\t\tui: {\n\t\t\t\ttype: \"checkbox\",\n\t\t\t\tlabel: \"Mirror\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t}\n\t},\n\tfragmentNode: ({ uniforms, onCleanup, onBeforeRender }) => {\n\t\tconst baseUV = screenUV;\n\t\tlet mediaStream = null;\n\t\tlet videoElement = null;\n\t\tlet isInitialized = false;\n\t\tlet isDisposed = false;\n\t\tconst videoAspectUniform = uniform(1);\n\t\tconst videoWidthUniform = uniform(640);\n\t\tconst videoHeightUniform = uniform(480);\n\t\tlet canvas = null;\n\t\tlet ctx = null;\n\t\tlet activeTexture;\n\t\tif (needsVideoCanvasWorkaround()) {\n\t\t\tcanvas = document.createElement(\"canvas\");\n\t\t\tcanvas.width = 640;\n\t\t\tcanvas.height = 480;\n\t\t\tctx = canvas.getContext(\"2d\");\n\t\t\tactiveTexture = new CanvasTexture(canvas);\n\t\t} else {\n\t\t\tconst placeholderVideo = document.createElement(\"video\");\n\t\t\tplaceholderVideo.playsInline = true;\n\t\t\tplaceholderVideo.muted = true;\n\t\t\tactiveTexture = new VideoTexture(placeholderVideo);\n\t\t}\n\t\tactiveTexture.colorSpace = SRGBColorSpace;\n\t\tconst textureNode = texture(activeTexture);\n\t\tconst startWebcam = async () => {\n\t\t\tif (isInitialized || isDisposed) return;\n\t\t\ttry {\n\t\t\t\tmediaStream = await navigator.mediaDevices.getUserMedia({\n\t\t\t\t\tvideo: {\n\t\t\t\t\t\twidth: { ideal: 1280 },\n\t\t\t\t\t\theight: { ideal: 720 },\n\t\t\t\t\t\tfacingMode: \"user\"\n\t\t\t\t\t},\n\t\t\t\t\taudio: false\n\t\t\t\t});\n\t\t\t\tif (isDisposed) {\n\t\t\t\t\tmediaStream.getTracks().forEach((track) => track.stop());\n\t\t\t\t\tmediaStream = null;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tvideoElement = document.createElement(\"video\");\n\t\t\t\tvideoElement.srcObject = mediaStream;\n\t\t\t\tvideoElement.playsInline = true;\n\t\t\t\tvideoElement.muted = true;\n\t\t\t\tawait new Promise((resolve, reject) => {\n\t\t\t\t\tif (!videoElement) return reject(/* @__PURE__ */ new Error(\"Video element not created\"));\n\t\t\t\t\tvideoElement.onloadedmetadata = () => {\n\t\t\t\t\t\tresolve();\n\t\t\t\t\t};\n\t\t\t\t\tvideoElement.onerror = () => {\n\t\t\t\t\t\treject(/* @__PURE__ */ new Error(\"Failed to load video metadata\"));\n\t\t\t\t\t};\n\t\t\t\t});\n\t\t\t\tif (isDisposed) return;\n\t\t\t\tawait videoElement.play();\n\t\t\t\tif (isDisposed) return;\n\t\t\t\tconst width = videoElement.videoWidth || 640;\n\t\t\t\tconst height = videoElement.videoHeight || 480;\n\t\t\t\tvideoAspectUniform.value = width / height;\n\t\t\t\tvideoWidthUniform.value = width;\n\t\t\t\tvideoHeightUniform.value = height;\n\t\t\t\tactiveTexture.dispose();\n\t\t\t\tif (needsVideoCanvasWorkaround()) {\n\t\t\t\t\tcanvas.width = width;\n\t\t\t\t\tcanvas.height = height;\n\t\t\t\t\tactiveTexture = new CanvasTexture(canvas);\n\t\t\t\t} else activeTexture = new VideoTexture(videoElement);\n\t\t\t\tactiveTexture.colorSpace = SRGBColorSpace;\n\t\t\t\ttextureNode.value = activeTexture;\n\t\t\t\tisInitialized = true;\n\t\t\t\tconsole.log(`[WebcamTexture] Webcam started: ${width}x${height}`);\n\t\t\t} catch (error) {\n\t\t\t\tif (error instanceof DOMException) if (error.name === \"NotAllowedError\") console.error(\"[WebcamTexture] Camera permission denied by user\");\n\t\t\t\telse if (error.name === \"NotFoundError\") console.error(\"[WebcamTexture] No camera found on this device\");\n\t\t\t\telse if (error.name === \"NotReadableError\") console.error(\"[WebcamTexture] Camera is already in use by another application\");\n\t\t\t\telse console.error(\"[WebcamTexture] Camera error:\", error.message);\n\t\t\t\telse console.error(\"[WebcamTexture] Failed to start webcam:\", error);\n\t\t\t}\n\t\t};\n\t\tstartWebcam();\n\t\tonBeforeRender(() => {\n\t\t\tif (needsVideoCanvasWorkaround() && videoElement && isInitialized && !videoElement.paused && videoElement.readyState >= 2) {\n\t\t\t\tctx.drawImage(videoElement, 0, 0, canvas.width, canvas.height);\n\t\t\t\tactiveTexture.needsUpdate = true;\n\t\t\t}\n\t\t});\n\t\tonCleanup(() => {\n\t\t\tisDisposed = true;\n\t\t\tif (mediaStream) {\n\t\t\t\tmediaStream.getTracks().forEach((track) => track.stop());\n\t\t\t\tmediaStream = null;\n\t\t\t}\n\t\t\tif (videoElement) {\n\t\t\t\tvideoElement.srcObject = null;\n\t\t\t\tvideoElement = null;\n\t\t\t}\n\t\t\tactiveTexture.dispose();\n\t\t\tisInitialized = false;\n\t\t});\n\t\tconst uv$1 = baseUV;\n\t\tconst viewportAspect = viewportSize.x.div(viewportSize.y);\n\t\tconst objectFitMode = uniforms.objectFit.uniform.value;\n\t\tlet uvScale;\n\t\tswitch (objectFitMode) {\n\t\t\tcase 1: {\n\t\t\t\tconst containScale = min(viewportAspect.div(videoAspectUniform), float(1));\n\t\t\t\tuvScale = vec2(videoAspectUniform.div(viewportAspect).mul(containScale), containScale);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase 2:\n\t\t\t\tuvScale = vec2(1, 1);\n\t\t\t\tbreak;\n\t\t\tcase 3: {\n\t\t\t\tconst scaleDownScale = min(min(viewportAspect.div(videoAspectUniform), float(1)), min(viewportSize.x.div(videoWidthUniform), viewportSize.y.div(videoHeightUniform)));\n\t\t\t\tuvScale = vec2(videoAspectUniform.div(viewportAspect).mul(scaleDownScale), scaleDownScale);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase 4: {\n\t\t\t\tconst noneScale = min(viewportSize.x.div(videoWidthUniform), viewportSize.y.div(videoHeightUniform));\n\t\t\t\tuvScale = vec2(videoAspectUniform.div(viewportAspect).mul(noneScale), noneScale);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase 0:\n\t\t\tdefault: {\n\t\t\t\tconst coverScale = max(viewportAspect.div(videoAspectUniform), float(1));\n\t\t\t\tuvScale = vec2(videoAspectUniform.div(viewportAspect).mul(coverScale), coverScale);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tconst adjustedUV = uv$1.sub(vec2(.5)).div(uvScale).add(vec2(.5));\n\t\tconst mirrorMode = uniforms.mirror.uniform;\n\t\tconst finalUV = vec2(select(mirrorMode, float(1).sub(adjustedUV.x), adjustedUV.x), float(1).sub(adjustedUV.y));\n\t\tconst sampledColor = textureNode.sample(finalUV);\n\t\tconst isOutOfBounds = or(or(finalUV.x.lessThan(0), finalUV.x.greaterThan(1)), or(finalUV.y.lessThan(0), finalUV.y.greaterThan(1)));\n\t\treturn vec4(sampledColor.rgb, select(isOutOfBounds, float(0), sampledColor.a));\n\t}\n};\nvar WebcamTexture_default = componentDefinition;\nexport { componentDefinition as n, WebcamTexture_default as t };\n","import { a as transformColor, o as transformColorSpace, t as colorSpaceOptions } from \"./transformations-CJcUeZIC.js\";\nimport { t as mixColors } from \"./colorMixing-BPpDnR5I.js\";\nimport { t as createAnimatedTime } from \"./time-DUqSFWvT.js\";\nimport { Fn, abs, clamp, cos, dot, float, floor, fract, lengthSq, max, min, mix, screenUV, sin, sqrt, vec2, viewportSize } from \"three/tsl\";\nvar TAU = float(Math.PI * 2);\nvar HASH_AMP = float(.15);\nvar CELL_CENTER = float(.5);\nvar CELL_MIN = float(.05);\nvar CELL_MAX = float(.95);\nvar ANIM_PHASE_SCALE = float(.7);\nvar SENTINEL = float(10);\nvar worleyHash = Fn(([p]) => {\n\treturn fract(sin(vec2(dot(p, vec2(127.1, 311.7)), dot(p, vec2(269.5, 183.3)))).mul(float(43758.5453)));\n});\nvar transformMode = (value) => {\n\treturn {\n\t\tf1: 0,\n\t\tf2: 1,\n\t\tf2MinusF1: 2,\n\t\tf1PlusF2: 3,\n\t\tf1TimesF2: 4\n\t}[value] ?? 0;\n};\nvar transformDistance = (value) => {\n\treturn {\n\t\teuclidean: 0,\n\t\tmanhattan: 1,\n\t\tchebyshev: 2\n\t}[value] ?? 0;\n};\nconst componentDefinition = {\n\tname: \"WorleyNoise\",\n\tcategory: \"Textures\",\n\tdescription: \"Cellular noise field — distance-based, with selectable feature combinations and fractal octaves\",\n\tprops: {\n\t\tcolorA: {\n\t\t\tdefault: \"#ffffff\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Color where the noise field is low (typically near cell centers)\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Color A (Low)\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tcolorB: {\n\t\t\tdefault: \"#000000\",\n\t\t\ttransform: transformColor,\n\t\t\tdescription: \"Color where the noise field is high (typically near cell boundaries)\",\n\t\t\tui: {\n\t\t\t\ttype: \"color\",\n\t\t\t\tlabel: \"Color B (High)\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tcolorSpace: {\n\t\t\tdefault: \"linear\",\n\t\t\ttransform: transformColorSpace,\n\t\t\tcompileTime: true,\n\t\t\tdescription: \"Color space for color interpolation\",\n\t\t\tui: {\n\t\t\t\ttype: \"select\",\n\t\t\t\toptions: colorSpaceOptions,\n\t\t\t\tlabel: \"Color Space\",\n\t\t\t\tgroup: \"Colors\"\n\t\t\t}\n\t\t},\n\t\tscale: {\n\t\t\tdefault: 6,\n\t\t\tdescription: \"Number of cells across the canvas at the base octave\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 1,\n\t\t\t\tmax: 30,\n\t\t\t\tstep: .5,\n\t\t\t\tlabel: \"Scale\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tmode: {\n\t\t\tdefault: \"f1\",\n\t\t\ttransform: transformMode,\n\t\t\tcompileTime: true,\n\t\t\tdescription: \"Field type. F1 = distance to nearest point. F2 = distance to second-nearest. F2 − F1 emphasises cell boundaries.\",\n\t\t\tui: {\n\t\t\t\ttype: \"select\",\n\t\t\t\toptions: [\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"F1 (Cells)\",\n\t\t\t\t\t\tvalue: \"f1\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"F2 (Wider Cells)\",\n\t\t\t\t\t\tvalue: \"f2\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"F2 − F1 (Edges)\",\n\t\t\t\t\t\tvalue: \"f2MinusF1\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"F1 + F2\",\n\t\t\t\t\t\tvalue: \"f1PlusF2\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"F1 × F2\",\n\t\t\t\t\t\tvalue: \"f1TimesF2\"\n\t\t\t\t\t}\n\t\t\t\t],\n\t\t\t\tlabel: \"Mode\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tdistance: {\n\t\t\tdefault: \"euclidean\",\n\t\t\ttransform: transformDistance,\n\t\t\tcompileTime: true,\n\t\t\tdescription: \"Distance metric. Euclidean = round cells. Manhattan = diamond. Chebyshev = square.\",\n\t\t\tui: {\n\t\t\t\ttype: \"select\",\n\t\t\t\toptions: [\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Euclidean\",\n\t\t\t\t\t\tvalue: \"euclidean\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Manhattan\",\n\t\t\t\t\t\tvalue: \"manhattan\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"Chebyshev\",\n\t\t\t\t\t\tvalue: \"chebyshev\"\n\t\t\t\t\t}\n\t\t\t\t],\n\t\t\t\tlabel: \"Distance\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\toctaves: {\n\t\t\tdefault: 1,\n\t\t\tcompileTime: true,\n\t\t\tdescription: \"Number of fractal layers stacked at progressively finer scales\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 1,\n\t\t\t\tmax: 4,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Octaves\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tlacunarity: {\n\t\t\tdefault: 2,\n\t\t\tdescription: \"Scale multiplier between octaves (only active when Octaves > 1)\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 1.5,\n\t\t\t\tmax: 4,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Lacunarity\",\n\t\t\t\tgroup: \"Effect\",\n\t\t\t\tcondition: { octaves: [\n\t\t\t\t\t2,\n\t\t\t\t\t3,\n\t\t\t\t\t4\n\t\t\t\t] }\n\t\t\t}\n\t\t},\n\t\tpersistence: {\n\t\t\tdefault: .5,\n\t\t\tdescription: \"Amplitude multiplier between octaves (only active when Octaves > 1)\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .05,\n\t\t\t\tlabel: \"Persistence\",\n\t\t\t\tgroup: \"Effect\",\n\t\t\t\tcondition: { octaves: [\n\t\t\t\t\t2,\n\t\t\t\t\t3,\n\t\t\t\t\t4\n\t\t\t\t] }\n\t\t\t}\n\t\t},\n\t\tjitter: {\n\t\t\tdefault: 1,\n\t\t\tdescription: \"How much each cell's point drifts inside its cell. 0 = rigid grid (banded look), 1 = fully random.\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .05,\n\t\t\t\tlabel: \"Jitter\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tcontrast: {\n\t\t\tdefault: 1,\n\t\t\tdescription: \"Steepness of the gradient between low and high regions\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: .25,\n\t\t\t\tmax: 4,\n\t\t\t\tstep: .05,\n\t\t\t\tlabel: \"Contrast\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tbalance: {\n\t\t\tdefault: 0,\n\t\t\tdescription: \"Shifts the gradient midpoint. Negative pulls the field toward Color A, positive toward Color B.\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: -1,\n\t\t\t\tmax: 1,\n\t\t\t\tstep: .05,\n\t\t\t\tlabel: \"Balance\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tseed: {\n\t\t\tdefault: 0,\n\t\t\tdescription: \"Random seed — shifts the cell pattern without changing its overall structure\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 100,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Seed\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tspeed: {\n\t\t\tdefault: .5,\n\t\t\tdescription: \"Animation speed — how fast each cell's point drifts\",\n\t\t\tui: {\n\t\t\t\ttype: \"range\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 5,\n\t\t\t\tstep: .1,\n\t\t\t\tlabel: \"Speed\",\n\t\t\t\tgroup: \"Animation\"\n\t\t\t}\n\t\t}\n\t},\n\tfragmentNode: (params) => {\n\t\tconst { uniforms } = params;\n\t\tconst colorA = uniforms.colorA.uniform;\n\t\tconst colorB = uniforms.colorB.uniform;\n\t\tconst csMode = uniforms.colorSpace.uniform.value;\n\t\tconst modeNum = uniforms.mode.uniform.value;\n\t\tconst distNum = uniforms.distance.uniform.value;\n\t\tconst octavesNum = Math.max(1, Math.min(4, Math.round(uniforms.octaves.uniform.value)));\n\t\tconst t = createAnimatedTime(params, uniforms.speed);\n\t\tconst aspect = viewportSize.x.div(viewportSize.y);\n\t\tconst baseUV = vec2(screenUV.x.mul(aspect), screenUV.y);\n\t\tconst scale = uniforms.scale.uniform;\n\t\tconst seed = uniforms.seed.uniform;\n\t\tconst jitter = uniforms.jitter.uniform;\n\t\tconst lacunarity = uniforms.lacunarity.uniform;\n\t\tconst persistence = uniforms.persistence.uniform;\n\t\tlet modeScale = 1.5;\n\t\tif (modeNum === 1) modeScale = 1;\n\t\telse if (modeNum === 2) modeScale = 2.5;\n\t\telse if (modeNum === 3) modeScale = .6;\n\t\telse if (modeNum === 4) modeScale = 2;\n\t\tif (distNum === 1) modeScale *= .7;\n\t\telse if (distNum === 2) modeScale *= 1.4;\n\t\tconst isSquaredEuclidean = distNum === 0;\n\t\tconst needsD2 = modeNum !== 0;\n\t\tconst evalOctaveRaw = Fn(([oUV, animT, seedOff]) => {\n\t\t\tconst animTSlow = animT.mul(ANIM_PHASE_SCALE);\n\t\t\tconst cell = floor(oUV);\n\t\t\tconst localUV = fract(oUV);\n\t\t\tlet d1 = SENTINEL;\n\t\t\tlet d2 = SENTINEL;\n\t\t\tfor (let ny = -1; ny <= 1; ny++) for (let nx = -1; nx <= 1; nx++) {\n\t\t\t\tconst offset = vec2(float(nx), float(ny));\n\t\t\t\tconst h = worleyHash(cell.add(offset).add(seedOff));\n\t\t\t\tconst px = h.x.add(sin(animT.add(h.x.mul(TAU))).mul(HASH_AMP));\n\t\t\t\tconst py = h.y.add(cos(animTSlow.add(h.y.mul(TAU))).mul(HASH_AMP));\n\t\t\t\tconst jx = mix(CELL_CENTER, px.clamp(CELL_MIN, CELL_MAX), jitter);\n\t\t\t\tconst jy = mix(CELL_CENTER, py.clamp(CELL_MIN, CELL_MAX), jitter);\n\t\t\t\tconst point = offset.add(vec2(jx, jy));\n\t\t\t\tconst delta = localUV.sub(point);\n\t\t\t\tlet d;\n\t\t\t\tif (distNum === 1) d = abs(delta.x).add(abs(delta.y));\n\t\t\t\telse if (distNum === 2) d = max(abs(delta.x), abs(delta.y));\n\t\t\t\telse d = lengthSq(delta);\n\t\t\t\tif (needsD2) {\n\t\t\t\t\td2 = min(d2, max(d, d1));\n\t\t\t\t\td1 = min(d1, d);\n\t\t\t\t} else d1 = min(d1, d);\n\t\t\t}\n\t\t\tlet raw;\n\t\t\tif (isSquaredEuclidean) if (modeNum === 1) raw = sqrt(d2);\n\t\t\telse if (modeNum === 2) raw = sqrt(d2).sub(sqrt(d1));\n\t\t\telse if (modeNum === 3) raw = sqrt(d1).add(sqrt(d2));\n\t\t\telse if (modeNum === 4) raw = sqrt(d1.mul(d2));\n\t\t\telse raw = sqrt(d1);\n\t\t\telse if (modeNum === 1) raw = d2;\n\t\t\telse if (modeNum === 2) raw = d2.sub(d1);\n\t\t\telse if (modeNum === 3) raw = d1.add(d2);\n\t\t\telse if (modeNum === 4) raw = d1.mul(d2);\n\t\t\telse raw = d1;\n\t\t\treturn raw;\n\t\t});\n\t\tlet acc = float(0);\n\t\tlet totalAmp = float(0);\n\t\tlet amp = float(1);\n\t\tlet freq = scale;\n\t\tfor (let o = 0; o < octavesNum; o++) {\n\t\t\tconst raw = evalOctaveRaw(baseUV.mul(freq), t.add(float(o * 17)), seed.add(float(o * 31)));\n\t\t\tacc = acc.add(raw.mul(amp));\n\t\t\ttotalAmp = totalAmp.add(amp);\n\t\t\tamp = amp.mul(persistence);\n\t\t\tfreq = freq.mul(lacunarity);\n\t\t}\n\t\treturn mixColors(colorA, colorB, clamp(acc.div(totalAmp.max(float(1e-4))).mul(float(modeScale)).mul(float(2)).sub(float(1)).mul(uniforms.contrast.uniform).add(uniforms.balance.uniform).mul(float(.5)).add(float(.5)), float(0), float(1)), csMode);\n\t}\n};\nvar WorleyNoise_default = componentDefinition;\nexport { componentDefinition as n, WorleyNoise_default as t };\n","import { l as transformPosition } from \"./transformations-CJcUeZIC.js\";\nimport { t as unpremultiplyAlpha } from \"./alpha-C4ptedXe.js\";\nimport { Fn, convertToTexture, float, screenUV, vec2, vec4, viewportSize } from \"three/tsl\";\nvar rawWeights = Array.from({ length: 32 }, (_, i) => {\n\tconst t = (i / 31 - .5) * 2;\n\treturn Math.exp(-.5 * t * t / .64);\n});\nvar wSum = rawWeights.reduce((a, b) => a + b);\nvar blurWeights = rawWeights.map((w) => w / wSum);\nconst componentDefinition = {\n\tname: \"ZoomBlur\",\n\tcategory: \"Blurs\",\n\tdescription: \"Radial zoom blur expanding from a center point\",\n\trequiresRTT: true,\n\trequiresChild: true,\n\tprops: {\n\t\tintensity: {\n\t\t\tdefault: 30,\n\t\t\tdescription: \"Intensity of the zoom blur effect\",\n\t\t\tui: {\n\t\t\t\ttype: [\"range\", \"map\"],\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 100,\n\t\t\t\tstep: 1,\n\t\t\t\tlabel: \"Intensity\",\n\t\t\t\tgroup: \"Effect\"\n\t\t\t}\n\t\t},\n\t\tcenter: {\n\t\t\tdefault: {\n\t\t\t\tx: .5,\n\t\t\t\ty: .5\n\t\t\t},\n\t\t\ttransform: transformPosition,\n\t\t\tdescription: \"Center point of the zoom blur\",\n\t\t\tui: {\n\t\t\t\ttype: \"position\",\n\t\t\t\tlabel: \"Center\",\n\t\t\t\tgroup: \"Position\"\n\t\t\t}\n\t\t}\n\t},\n\tfragmentNode: ({ uniforms, childNode, onCleanup }) => {\n\t\tif (!childNode) return vec4(0, 0, 0, 0);\n\t\tconst childTexture = convertToTexture(childNode);\n\t\tonCleanup(() => {\n\t\t\tif (childTexture?.renderTarget?.dispose) childTexture.renderTarget.dispose();\n\t\t});\n\t\tconst center = vec2(uniforms.center.uniform.x, uniforms.center.uniform.y.oneMinus());\n\t\tconst radius = uniforms.intensity.uniform.mul(.01);\n\t\tconst aspect = viewportSize.x.div(viewportSize.y);\n\t\treturn Fn(() => {\n\t\t\tconst uv$1 = screenUV;\n\t\t\tconst total = vec4(0).toVar();\n\t\t\tconst delta = uv$1.sub(center);\n\t\t\tconst aspectCorrectedDelta = vec2(delta.x.mul(aspect), delta.y);\n\t\t\tfor (let i = 0; i < 32; i++) {\n\t\t\t\tconst scale = float(1).add(radius.mul(i / 31));\n\t\t\t\tconst scaledDelta = aspectCorrectedDelta.div(scale);\n\t\t\t\tconst scaledCoord = vec2(scaledDelta.x.div(aspect), scaledDelta.y).add(center);\n\t\t\t\ttotal.assign(total.add(childTexture.sample(scaledCoord).mul(float(blurWeights[i]))));\n\t\t\t}\n\t\t\treturn unpremultiplyAlpha(total);\n\t\t})();\n\t}\n};\nvar ZoomBlur_default = componentDefinition;\nexport { componentDefinition as n, ZoomBlur_default as t };\n","import { n as componentDefinition } from \"./AngularBlur-C1oRJ8Y9.js\";\nimport { n as componentDefinition$1 } from \"./Ascii-BwSMmD6Z.js\";\nimport { n as componentDefinition$2 } from \"./Aurora-D5Pjk4ve.js\";\nimport { n as componentDefinition$3 } from \"./BarShift-2XBhva1A.js\";\nimport { n as componentDefinition$4 } from \"./Beam-B3BX08lR.js\";\nimport { n as componentDefinition$5 } from \"./Blob-BT50tDXE.js\";\nimport { n as componentDefinition$6 } from \"./Blur-1GcG1L1y.js\";\nimport { n as componentDefinition$7 } from \"./BrickPattern-BfTsjp4I.js\";\nimport { n as componentDefinition$8 } from \"./BrightnessContrast-GppIqtkO.js\";\nimport { n as componentDefinition$9 } from \"./Bulge-DMOATSEs.js\";\nimport { n as componentDefinition$10 } from \"./ChannelBlur-CxlVaYGM.js\";\nimport { n as componentDefinition$11 } from \"./Checkerboard-BVBGTvd-.js\";\nimport { n as componentDefinition$12 } from \"./Chevron-BKZjAXR_.js\";\nimport { n as componentDefinition$13 } from \"./ChromaFlow-C0guw_LP.js\";\nimport { n as componentDefinition$14 } from \"./ChromaticAberration-DZOcs-bZ.js\";\nimport { n as componentDefinition$15 } from \"./Circle-BycqVCMt.js\";\nimport { n as componentDefinition$16 } from \"./ColorWheel-BQUKQPM-.js\";\nimport { n as componentDefinition$17 } from \"./ConcentricSpin-CO3Kx1I1.js\";\nimport { n as componentDefinition$18 } from \"./ConicGradient-DRvVwiSj.js\";\nimport { n as componentDefinition$19 } from \"./ContourLines-s4waN3uU.js\";\nimport { n as componentDefinition$20 } from \"./Crescent-ppz7W7eM.js\";\nimport { n as componentDefinition$21 } from \"./Cross-BfNOtQ6s.js\";\nimport { n as componentDefinition$22 } from \"./CRTScreen-corekL_R.js\";\nimport { n as componentDefinition$23 } from \"./Crystal-QsQoy8fZ.js\";\nimport { n as componentDefinition$24 } from \"./CursorRipples-CLP7Sinv.js\";\nimport { n as componentDefinition$25 } from \"./CursorTrail-CshoSM5Y.js\";\nimport { n as componentDefinition$26 } from \"./DiamondGradient-D6eyjZOn.js\";\nimport { n as componentDefinition$27 } from \"./DiffuseBlur-BjvXHmJx.js\";\nimport { n as componentDefinition$28 } from \"./Dither-z6s-TFg7.js\";\nimport { n as componentDefinition$29 } from \"./DOMTexture-Ec0k6AnK.js\";\nimport { n as componentDefinition$30 } from \"./DotGrid-BxAAGO4F.js\";\nimport { n as componentDefinition$31 } from \"./DropShadow-CR3cecIQ.js\";\nimport { n as componentDefinition$32 } from \"./Duotone-PwTfBBtM.js\";\nimport { n as componentDefinition$33 } from \"./Ellipse-sWhNvW9-.js\";\nimport { n as componentDefinition$34 } from \"./Emboss-DGaubb9x.js\";\nimport { n as componentDefinition$35 } from \"./Exposure-CFn2J_t3.js\";\nimport { n as componentDefinition$36 } from \"./FallingLines-9elMmSlj.js\";\nimport { n as componentDefinition$37 } from \"./FilmGrain-DIydVgOW.js\";\nimport { n as componentDefinition$38 } from \"./FloatingParticles-B068TLIi.js\";\nimport { n as componentDefinition$39 } from \"./Flower-DSr0JWa2.js\";\nimport { n as componentDefinition$40 } from \"./FlowField-CeZjhyEo.js\";\nimport { n as componentDefinition$41 } from \"./FlowingGradient-Bd8KBK5P.js\";\nimport { n as componentDefinition$42 } from \"./FlutedGlass-BJtMfV2c.js\";\nimport { n as componentDefinition$43 } from \"./Fog-BQuVDReH.js\";\nimport { n as componentDefinition$44 } from \"./Form3D-DOek31CJ.js\";\nimport { n as componentDefinition$45 } from \"./FractalNoise-Dyhbvx9a.js\";\nimport { n as componentDefinition$46 } from \"./Glass-D8DayF1P.js\";\nimport { n as componentDefinition$47 } from \"./GlassTiles-Bb3cuOkr.js\";\nimport { n as componentDefinition$48 } from \"./Glitch-zqdbCc2E.js\";\nimport { n as componentDefinition$49 } from \"./Glow-chsUpCyj.js\";\nimport { n as componentDefinition$50 } from \"./Godrays-DdSLZtBs.js\";\nimport { n as componentDefinition$51 } from \"./Grayscale-BC40hfXH.js\";\nimport { n as componentDefinition$52 } from \"./Grid-Lc4S0Hmp.js\";\nimport { n as componentDefinition$53 } from \"./GridDistortion-DQcPYbXS.js\";\nimport { n as componentDefinition$54 } from \"./Group-BeZhHbOT.js\";\nimport { n as componentDefinition$55 } from \"./Halftone-CsblgxnY.js\";\nimport { n as componentDefinition$56 } from \"./HexGrid-DWRNPMET.js\";\nimport { n as componentDefinition$57 } from \"./HueShift-C-p9W5sr.js\";\nimport { n as componentDefinition$58 } from \"./ImageTexture-bqgQxAt9.js\";\nimport { n as componentDefinition$59 } from \"./Invert-D-RVP34v.js\";\nimport { n as componentDefinition$60 } from \"./Kaleidoscope-HQNQrRP_.js\";\nimport { n as componentDefinition$61 } from \"./LensFlare-DtES749p.js\";\nimport { n as componentDefinition$62 } from \"./LinearBlur-6mCJ9fY5.js\";\nimport { n as componentDefinition$63 } from \"./LinearGradient-DIbCAHc7.js\";\nimport { n as componentDefinition$64 } from \"./Liquify-8dcdv2Sl.js\";\nimport { n as componentDefinition$65 } from \"./Marble-DX29RG-p.js\";\nimport { n as componentDefinition$66 } from \"./Mirror-BM2xf3Nr.js\";\nimport { n as componentDefinition$67 } from \"./MultiPointGradient-BzM24vnR.js\";\nimport { n as componentDefinition$68 } from \"./Neon-nPiMi3wt.js\";\nimport { n as componentDefinition$69 } from \"./Paper-Ddpe8-EI.js\";\nimport { n as componentDefinition$70 } from \"./Perspective-BIKpqd4H.js\";\nimport { n as componentDefinition$71 } from \"./Pixelate-Cp0-lwkG.js\";\nimport { n as componentDefinition$72 } from \"./Plasma-M--gLd1Q.js\";\nimport { n as componentDefinition$73 } from \"./PolarCoordinates-C42rlD2q.js\";\nimport { n as componentDefinition$74 } from \"./Polygon-CKqH0ApY.js\";\nimport { n as componentDefinition$75 } from \"./Posterize-B6ZhRkH2.js\";\nimport { n as componentDefinition$76 } from \"./ProgressiveBlur-By_PgPtK.js\";\nimport { n as componentDefinition$77 } from \"./RadialGradient-SHxJ9ZNF.js\";\nimport { n as componentDefinition$78 } from \"./RectangularCoordinates-Dw6Xr9uV.js\";\nimport { n as componentDefinition$79 } from \"./ReflectivePlane-VjZ1E5B0.js\";\nimport { n as componentDefinition$80 } from \"./Ring-V4sEHwwm.js\";\nimport { n as componentDefinition$81 } from \"./Ripples-DC1y3YuP.js\";\nimport { n as componentDefinition$82 } from \"./RoundedRect-JY2z6YEH.js\";\nimport { n as componentDefinition$83 } from \"./Saturation-ChJ9IWnl.js\";\nimport { n as componentDefinition$84 } from \"./Sharpness-C1ufX8S-.js\";\nimport { n as componentDefinition$85 } from \"./Shatter-Du5THcwZ.js\";\nimport { n as componentDefinition$86 } from \"./SimplexNoise--vwIZVu0.js\";\nimport { n as componentDefinition$87 } from \"./SineWave-BIVPG3oc.js\";\nimport { n as componentDefinition$88 } from \"./Smoke-DSBQreo0.js\";\nimport { n as componentDefinition$89 } from \"./SmokeFill-Dy-0kjsX.js\";\nimport { n as componentDefinition$90 } from \"./Solarize-BymZlSu0.js\";\nimport { n as componentDefinition$91 } from \"./SolidColor-D8XC4aoJ.js\";\nimport { n as componentDefinition$92 } from \"./Spherize-tRTB4WdO.js\";\nimport { n as componentDefinition$93 } from \"./Spiral-CiDp2Tg2.js\";\nimport { n as componentDefinition$94 } from \"./Star-Cp4dt6Fl.js\";\nimport { n as componentDefinition$95 } from \"./Strands-V3q8N-y1.js\";\nimport { n as componentDefinition$96 } from \"./Stretch-CTgtc3nG.js\";\nimport { n as componentDefinition$97 } from \"./Stripes-CZV6oGMy.js\";\nimport { n as componentDefinition$98 } from \"./StudioBackground-CWSHq6vE.js\";\nimport { n as componentDefinition$99 } from \"./SunBurst-CskZwXc3.js\";\nimport { n as componentDefinition$100 } from \"./Swirl-CyGfVZ8n.js\";\nimport { n as componentDefinition$101 } from \"./ThinFilm-CUsi8eSg.js\";\nimport { n as componentDefinition$102 } from \"./TiltShift-vG90NlLr.js\";\nimport { n as componentDefinition$103 } from \"./Tint-R7y5CJ4U.js\";\nimport { n as componentDefinition$104 } from \"./Trapezoid-BXzH--z9.js\";\nimport { n as componentDefinition$105 } from \"./Tritone-CF4Oj1sl.js\";\nimport { n as componentDefinition$106 } from \"./Truchet-BL4jzZDX.js\";\nimport { n as componentDefinition$107 } from \"./Twirl-BVLPHKJD.js\";\nimport { n as componentDefinition$108 } from \"./Vesica-DzIEa3aJ.js\";\nimport { n as componentDefinition$109 } from \"./VHS-B2IBdQgX.js\";\nimport { n as componentDefinition$110 } from \"./Vibrance-jrvT49Du.js\";\nimport { n as componentDefinition$111 } from \"./VideoTexture-FmV1l91c.js\";\nimport { n as componentDefinition$112 } from \"./Vignette-ng_5gjXc.js\";\nimport { n as componentDefinition$113 } from \"./Voronoi-C8iIU7AT.js\";\nimport { n as componentDefinition$114 } from \"./WaveDistortion-Crt9JSXN.js\";\nimport { n as componentDefinition$115 } from \"./Weave-CFmLkEaq.js\";\nimport { n as componentDefinition$116 } from \"./WebcamTexture-DlS4MCDm.js\";\nimport { n as componentDefinition$117 } from \"./WorleyNoise-CEZiaVAN.js\";\nimport { n as componentDefinition$118 } from \"./ZoomBlur-DTVSwIvc.js\";\nvar createShaderRegistry = () => {\n\tconst registry = {};\n\tconst shaderDefinitions = {\n\t\tAngularBlur: componentDefinition,\n\t\tAscii: componentDefinition$1,\n\t\tAurora: componentDefinition$2,\n\t\tBarShift: componentDefinition$3,\n\t\tBeam: componentDefinition$4,\n\t\tBlob: componentDefinition$5,\n\t\tBlur: componentDefinition$6,\n\t\tBrickPattern: componentDefinition$7,\n\t\tBrightnessContrast: componentDefinition$8,\n\t\tBulge: componentDefinition$9,\n\t\tChannelBlur: componentDefinition$10,\n\t\tCheckerboard: componentDefinition$11,\n\t\tChevron: componentDefinition$12,\n\t\tChromaFlow: componentDefinition$13,\n\t\tChromaticAberration: componentDefinition$14,\n\t\tCircle: componentDefinition$15,\n\t\tColorWheel: componentDefinition$16,\n\t\tConcentricSpin: componentDefinition$17,\n\t\tConicGradient: componentDefinition$18,\n\t\tContourLines: componentDefinition$19,\n\t\tCrescent: componentDefinition$20,\n\t\tCross: componentDefinition$21,\n\t\tCRTScreen: componentDefinition$22,\n\t\tCrystal: componentDefinition$23,\n\t\tCursorRipples: componentDefinition$24,\n\t\tCursorTrail: componentDefinition$25,\n\t\tDiamondGradient: componentDefinition$26,\n\t\tDiffuseBlur: componentDefinition$27,\n\t\tDither: componentDefinition$28,\n\t\tDOMTexture: componentDefinition$29,\n\t\tDotGrid: componentDefinition$30,\n\t\tDropShadow: componentDefinition$31,\n\t\tDuotone: componentDefinition$32,\n\t\tEllipse: componentDefinition$33,\n\t\tEmboss: componentDefinition$34,\n\t\tExposure: componentDefinition$35,\n\t\tFallingLines: componentDefinition$36,\n\t\tFilmGrain: componentDefinition$37,\n\t\tFloatingParticles: componentDefinition$38,\n\t\tFlower: componentDefinition$39,\n\t\tFlowField: componentDefinition$40,\n\t\tFlowingGradient: componentDefinition$41,\n\t\tFlutedGlass: componentDefinition$42,\n\t\tFog: componentDefinition$43,\n\t\tForm3D: componentDefinition$44,\n\t\tFractalNoise: componentDefinition$45,\n\t\tGlass: componentDefinition$46,\n\t\tGlassTiles: componentDefinition$47,\n\t\tGlitch: componentDefinition$48,\n\t\tGlow: componentDefinition$49,\n\t\tGodrays: componentDefinition$50,\n\t\tGrayscale: componentDefinition$51,\n\t\tGrid: componentDefinition$52,\n\t\tGridDistortion: componentDefinition$53,\n\t\tGroup: componentDefinition$54,\n\t\tHalftone: componentDefinition$55,\n\t\tHexGrid: componentDefinition$56,\n\t\tHueShift: componentDefinition$57,\n\t\tImageTexture: componentDefinition$58,\n\t\tInvert: componentDefinition$59,\n\t\tKaleidoscope: componentDefinition$60,\n\t\tLensFlare: componentDefinition$61,\n\t\tLinearBlur: componentDefinition$62,\n\t\tLinearGradient: componentDefinition$63,\n\t\tLiquify: componentDefinition$64,\n\t\tMarble: componentDefinition$65,\n\t\tMirror: componentDefinition$66,\n\t\tMultiPointGradient: componentDefinition$67,\n\t\tNeon: componentDefinition$68,\n\t\tPaper: componentDefinition$69,\n\t\tPerspective: componentDefinition$70,\n\t\tPixelate: componentDefinition$71,\n\t\tPlasma: componentDefinition$72,\n\t\tPolarCoordinates: componentDefinition$73,\n\t\tPolygon: componentDefinition$74,\n\t\tPosterize: componentDefinition$75,\n\t\tProgressiveBlur: componentDefinition$76,\n\t\tRadialGradient: componentDefinition$77,\n\t\tRectangularCoordinates: componentDefinition$78,\n\t\tReflectivePlane: componentDefinition$79,\n\t\tRing: componentDefinition$80,\n\t\tRipples: componentDefinition$81,\n\t\tRoundedRect: componentDefinition$82,\n\t\tSaturation: componentDefinition$83,\n\t\tSharpness: componentDefinition$84,\n\t\tShatter: componentDefinition$85,\n\t\tSimplexNoise: componentDefinition$86,\n\t\tSineWave: componentDefinition$87,\n\t\tSmoke: componentDefinition$88,\n\t\tSmokeFill: componentDefinition$89,\n\t\tSolarize: componentDefinition$90,\n\t\tSolidColor: componentDefinition$91,\n\t\tSpherize: componentDefinition$92,\n\t\tSpiral: componentDefinition$93,\n\t\tStar: componentDefinition$94,\n\t\tStrands: componentDefinition$95,\n\t\tStretch: componentDefinition$96,\n\t\tStripes: componentDefinition$97,\n\t\tStudioBackground: componentDefinition$98,\n\t\tSunBurst: componentDefinition$99,\n\t\tSwirl: componentDefinition$100,\n\t\tThinFilm: componentDefinition$101,\n\t\tTiltShift: componentDefinition$102,\n\t\tTint: componentDefinition$103,\n\t\tTrapezoid: componentDefinition$104,\n\t\tTritone: componentDefinition$105,\n\t\tTruchet: componentDefinition$106,\n\t\tTwirl: componentDefinition$107,\n\t\tVesica: componentDefinition$108,\n\t\tVHS: componentDefinition$109,\n\t\tVibrance: componentDefinition$110,\n\t\tVideoTexture: componentDefinition$111,\n\t\tVignette: componentDefinition$112,\n\t\tVoronoi: componentDefinition$113,\n\t\tWaveDistortion: componentDefinition$114,\n\t\tWeave: componentDefinition$115,\n\t\tWebcamTexture: componentDefinition$116,\n\t\tWorleyNoise: componentDefinition$117,\n\t\tZoomBlur: componentDefinition$118\n\t};\n\tObject.entries(shaderDefinitions).forEach(([fileName, def]) => {\n\t\tconst propsMetadata = {};\n\t\tif (def.props) Object.entries(def.props).forEach(([propName, propConfig]) => {\n\t\t\tif (propConfig.ui) propsMetadata[propName] = {\n\t\t\t\tui: propConfig.ui,\n\t\t\t\tdefault: propConfig.default,\n\t\t\t\tdescription: propConfig.description\n\t\t\t};\n\t\t});\n\t\tregistry[def.name] = {\n\t\t\tname: def.name,\n\t\t\tfileName,\n\t\t\tcategory: def.category || \"Uncategorized\",\n\t\t\tdefinition: def,\n\t\t\tpropsMetadata\n\t\t};\n\t});\n\treturn registry;\n};\nconst shaderRegistry = createShaderRegistry();\nfunction getAllShaders() {\n\treturn Object.values(shaderRegistry);\n}\nfunction getShaderByName(name) {\n\treturn shaderRegistry[name];\n}\nfunction getShadersByCategory(category) {\n\treturn Object.values(shaderRegistry).filter((shader) => shader.category === category);\n}\nfunction getShaderCategories() {\n\tconst categories = new Set(Object.values(shaderRegistry).map((shader) => shader.category));\n\treturn Array.from(categories).sort();\n}\nexport { shaderRegistry as a, getShadersByCategory as i, getShaderByName as n, getShaderCategories as r, getAllShaders as t };\n","import { t as applyEdgeHandling } from \"./edges-CX_lJB9R.js\";\nimport { a as transformColor, l as transformPosition, n as setColorSpaceMode, s as transformColorUpdate, u as transformPositionUpdate } from \"./transformations-CJcUeZIC.js\";\nimport \"./alpha-C4ptedXe.js\";\nimport \"./AngularBlur-C1oRJ8Y9.js\";\nimport \"./Ascii-BwSMmD6Z.js\";\nimport \"./colorMixing-BPpDnR5I.js\";\nimport { t as createAnimatedTime } from \"./time-DUqSFWvT.js\";\nimport \"./Aurora-D5Pjk4ve.js\";\nimport \"./BarShift-2XBhva1A.js\";\nimport \"./Beam-B3BX08lR.js\";\nimport \"./Blob-BT50tDXE.js\";\nimport \"./computeBlur-oxyhoztH.js\";\nimport \"./Blur-1GcG1L1y.js\";\nimport \"./BrickPattern-BfTsjp4I.js\";\nimport \"./BrightnessContrast-GppIqtkO.js\";\nimport \"./Bulge-DMOATSEs.js\";\nimport \"./ChannelBlur-CxlVaYGM.js\";\nimport \"./Checkerboard-BVBGTvd-.js\";\nimport \"./Chevron-BKZjAXR_.js\";\nimport \"./ChromaFlow-C0guw_LP.js\";\nimport \"./ChromaticAberration-DZOcs-bZ.js\";\nimport \"./Circle-BycqVCMt.js\";\nimport \"./ColorWheel-BQUKQPM-.js\";\nimport \"./ConcentricSpin-CO3Kx1I1.js\";\nimport \"./ConicGradient-DRvVwiSj.js\";\nimport \"./ContourLines-s4waN3uU.js\";\nimport \"./sdf-D_EAGXhN.js\";\nimport \"./Crescent-ppz7W7eM.js\";\nimport \"./Cross-BfNOtQ6s.js\";\nimport \"./CRTScreen-corekL_R.js\";\nimport \"./Crystal-QsQoy8fZ.js\";\nimport \"./CursorRipples-CLP7Sinv.js\";\nimport \"./CursorTrail-CshoSM5Y.js\";\nimport \"./DiamondGradient-D6eyjZOn.js\";\nimport \"./DiffuseBlur-BjvXHmJx.js\";\nimport \"./Dither-z6s-TFg7.js\";\nimport \"./DOMTexture-Ec0k6AnK.js\";\nimport \"./DotGrid-BxAAGO4F.js\";\nimport \"./DropShadow-CR3cecIQ.js\";\nimport \"./Duotone-PwTfBBtM.js\";\nimport \"./Ellipse-sWhNvW9-.js\";\nimport \"./Emboss-DGaubb9x.js\";\nimport \"./Exposure-CFn2J_t3.js\";\nimport \"./FallingLines-9elMmSlj.js\";\nimport \"./FilmGrain-DIydVgOW.js\";\nimport \"./FloatingParticles-B068TLIi.js\";\nimport \"./Flower-DSr0JWa2.js\";\nimport \"./FlowField-CeZjhyEo.js\";\nimport \"./FlowingGradient-Bd8KBK5P.js\";\nimport \"./FlutedGlass-BJtMfV2c.js\";\nimport \"./Fog-BQuVDReH.js\";\nimport \"./Form3D-DOek31CJ.js\";\nimport \"./FractalNoise-Dyhbvx9a.js\";\nimport \"./Glass-D8DayF1P.js\";\nimport \"./GlassTiles-Bb3cuOkr.js\";\nimport \"./Glitch-zqdbCc2E.js\";\nimport \"./Glow-chsUpCyj.js\";\nimport \"./Godrays-DdSLZtBs.js\";\nimport \"./Grayscale-BC40hfXH.js\";\nimport \"./Grid-Lc4S0Hmp.js\";\nimport \"./GridDistortion-DQcPYbXS.js\";\nimport \"./Group-BeZhHbOT.js\";\nimport \"./Halftone-CsblgxnY.js\";\nimport \"./HexGrid-DWRNPMET.js\";\nimport \"./HueShift-C-p9W5sr.js\";\nimport \"./ImageTexture-bqgQxAt9.js\";\nimport \"./Invert-D-RVP34v.js\";\nimport \"./Kaleidoscope-HQNQrRP_.js\";\nimport \"./LensFlare-DtES749p.js\";\nimport \"./LinearBlur-6mCJ9fY5.js\";\nimport \"./LinearGradient-DIbCAHc7.js\";\nimport \"./Liquify-8dcdv2Sl.js\";\nimport \"./Marble-DX29RG-p.js\";\nimport \"./Mirror-BM2xf3Nr.js\";\nimport \"./MultiPointGradient-BzM24vnR.js\";\nimport \"./Neon-nPiMi3wt.js\";\nimport \"./Paper-Ddpe8-EI.js\";\nimport \"./Perspective-BIKpqd4H.js\";\nimport \"./Pixelate-Cp0-lwkG.js\";\nimport \"./Plasma-M--gLd1Q.js\";\nimport \"./PolarCoordinates-C42rlD2q.js\";\nimport \"./Polygon-CKqH0ApY.js\";\nimport \"./Posterize-B6ZhRkH2.js\";\nimport \"./ProgressiveBlur-By_PgPtK.js\";\nimport \"./RadialGradient-SHxJ9ZNF.js\";\nimport \"./RectangularCoordinates-Dw6Xr9uV.js\";\nimport \"./ReflectivePlane-VjZ1E5B0.js\";\nimport \"./Ring-V4sEHwwm.js\";\nimport \"./Ripples-DC1y3YuP.js\";\nimport \"./RoundedRect-JY2z6YEH.js\";\nimport \"./Saturation-ChJ9IWnl.js\";\nimport \"./Sharpness-C1ufX8S-.js\";\nimport \"./Shatter-Du5THcwZ.js\";\nimport \"./SimplexNoise--vwIZVu0.js\";\nimport \"./SineWave-BIVPG3oc.js\";\nimport \"./Smoke-DSBQreo0.js\";\nimport \"./SmokeFill-Dy-0kjsX.js\";\nimport \"./Solarize-BymZlSu0.js\";\nimport \"./SolidColor-D8XC4aoJ.js\";\nimport \"./Spherize-tRTB4WdO.js\";\nimport \"./Spiral-CiDp2Tg2.js\";\nimport \"./Star-Cp4dt6Fl.js\";\nimport \"./Strands-V3q8N-y1.js\";\nimport \"./Stretch-CTgtc3nG.js\";\nimport \"./Stripes-CZV6oGMy.js\";\nimport \"./StudioBackground-CWSHq6vE.js\";\nimport \"./SunBurst-CskZwXc3.js\";\nimport \"./Swirl-CyGfVZ8n.js\";\nimport \"./ThinFilm-CUsi8eSg.js\";\nimport \"./TiltShift-vG90NlLr.js\";\nimport \"./Tint-R7y5CJ4U.js\";\nimport \"./Trapezoid-BXzH--z9.js\";\nimport \"./Tritone-CF4Oj1sl.js\";\nimport \"./Truchet-BL4jzZDX.js\";\nimport \"./Twirl-BVLPHKJD.js\";\nimport \"./Vesica-DzIEa3aJ.js\";\nimport \"./VHS-B2IBdQgX.js\";\nimport \"./Vibrance-jrvT49Du.js\";\nimport \"./browser-CDogs09U.js\";\nimport \"./VideoTexture-FmV1l91c.js\";\nimport \"./Vignette-ng_5gjXc.js\";\nimport \"./Voronoi-C8iIU7AT.js\";\nimport \"./WaveDistortion-Crt9JSXN.js\";\nimport \"./Weave-CFmLkEaq.js\";\nimport \"./WebcamTexture-DlS4MCDm.js\";\nimport \"./WorleyNoise-CEZiaVAN.js\";\nimport \"./ZoomBlur-DTVSwIvc.js\";\nimport { t as getAllShaders } from \"./shaderRegistry-BVFBmRN3.js\";\nimport { ACESFilmicToneMapping, AgXToneMapping, CineonToneMapping, Material, Mesh, MeshBasicNodeMaterial, NeutralToneMapping, NoToneMapping, OrthographicCamera, PlaneGeometry, ReinhardToneMapping, SRGBColorSpace, Scene, Vector2, WebGPURenderer } from \"three/webgpu\";\nimport { WebGLRenderer } from \"three\";\nimport { PI, abs, add, atan, clamp, convertToTexture, cos, div, dot, float, fract, max, min, mix, mul, pow, screenUV, sign, sin, smoothstep, sqrt, step, sub, time, uniform, uv, vec2, vec3, vec4 } from \"three/tsl\";\nfunction normal_default(base, overlay, opacity = 1) {\n\tconst overlayAlpha = mul(overlay.a, opacity);\n\tconst finalAlpha = add(overlayAlpha, mul(base.a, sub(1, overlayAlpha)));\n\treturn vec4(add(mul(overlay.rgb, overlayAlpha), mul(base.rgb, mul(base.a, sub(1, overlayAlpha)))), finalAlpha);\n}\nvar p3ToSRGB$1 = (p3) => {\n\treturn vec3(p3.x.mul(1.2249401).sub(p3.y.mul(.2249404)).sub(p3.z.mul(0)), p3.x.mul(-.0420569).add(p3.y.mul(1.0420571)).add(p3.z.mul(0)), p3.x.mul(-.0196376).sub(p3.y.mul(.0786361)).add(p3.z.mul(1.0982735)));\n};\nvar sRGBToP3$1 = (srgb) => {\n\treturn vec3(srgb.x.mul(.8224621).add(srgb.y.mul(.177538)).add(srgb.z.mul(0)), srgb.x.mul(.0331941).add(srgb.y.mul(.9668058)).add(srgb.z.mul(0)), srgb.x.mul(.0170826).add(srgb.y.mul(.0723974)).add(srgb.z.mul(.9105199)));\n};\nvar rgbToOklab$1 = (rgb) => {\n\tconst r = rgb.x;\n\tconst g = rgb.y;\n\tconst b = rgb.z;\n\tconst l = r.mul(.4122214708).add(g.mul(.5363325363)).add(b.mul(.0514459929));\n\tconst m = r.mul(.2119034982).add(g.mul(.6806995451).add(b.mul(.1073969566)));\n\tconst s = r.mul(.0883024619).add(g.mul(.2817188376)).add(b.mul(.6299787005));\n\tconst l_ = sign(l).mul(pow(abs(l), float(1 / 3)));\n\tconst m_ = sign(m).mul(pow(abs(m), float(1 / 3)));\n\tconst s_ = sign(s).mul(pow(abs(s), float(1 / 3)));\n\treturn vec3(l_.mul(.2104542553).add(m_.mul(.793617785)).sub(s_.mul(.0040720468)), l_.mul(1.9779984951).sub(m_.mul(2.428592205)).add(s_.mul(.4505937099)), l_.mul(.0259040371).add(m_.mul(.7827717662)).sub(s_.mul(.808675766)));\n};\nvar oklabToRgb$1 = (lab) => {\n\tconst L = lab.x;\n\tconst a = lab.y;\n\tconst b = lab.z;\n\tconst l_ = L.add(a.mul(.3963377774)).add(b.mul(.2158037573));\n\tconst m_ = L.sub(a.mul(.1055613458)).sub(b.mul(.0638541728));\n\tconst s_ = L.sub(a.mul(.0894841775)).sub(b.mul(1.291485548));\n\tconst l = pow(l_, float(3));\n\tconst m = pow(m_, float(3));\n\tconst s = pow(s_, float(3));\n\treturn vec3(l.mul(4.0767416621).sub(m.mul(3.3077115913)).add(s.mul(.2309699292)), l.mul(-1.2684380046).add(m.mul(2.6097574011)).sub(s.mul(.3413193965)), l.mul(-.0041960863).sub(m.mul(.7034186147)).add(s.mul(1.707614701)));\n};\nvar oklabToOklch = (lab) => {\n\tconst L = lab.x;\n\tconst a = lab.y;\n\tconst b = lab.z;\n\treturn vec3(L, sqrt(a.mul(a).add(b.mul(b))), atan(b, a));\n};\nvar oklchToOklab = (lch) => {\n\tconst L = lch.x;\n\tconst C = lch.y;\n\tconst h = lch.z;\n\treturn vec3(L, C.mul(cos(h)), C.mul(sin(h)));\n};\nfunction normal_oklch_default(base, overlay, opacity = 1) {\n\tconst overlayAlpha = mul(overlay.a, opacity);\n\tconst finalAlpha = add(overlayAlpha, mul(base.a, sub(1, overlayAlpha)));\n\tconst baseSRGB = p3ToSRGB$1(vec3(base.r, base.g, base.b));\n\tconst overlaySRGB = p3ToSRGB$1(vec3(overlay.r, overlay.g, overlay.b));\n\tconst baseOklab = rgbToOklab$1(baseSRGB);\n\tconst overlayOklab = rgbToOklab$1(overlaySRGB);\n\tconst baseOklch = oklabToOklch(baseOklab);\n\treturn vec4(sRGBToP3$1(oklabToRgb$1(oklchToOklab(add(mul(oklabToOklch(overlayOklab), overlayAlpha), mul(baseOklch, mul(base.a, sub(1, overlayAlpha))))))), finalAlpha);\n}\nvar p3ToSRGB = (p3) => {\n\treturn vec3(p3.x.mul(1.2249401).sub(p3.y.mul(.2249404)).sub(p3.z.mul(0)), p3.x.mul(-.0420569).add(p3.y.mul(1.0420571)).add(p3.z.mul(0)), p3.x.mul(-.0196376).sub(p3.y.mul(.0786361)).add(p3.z.mul(1.0982735)));\n};\nvar sRGBToP3 = (srgb) => {\n\treturn vec3(srgb.x.mul(.8224621).add(srgb.y.mul(.177538)).add(srgb.z.mul(0)), srgb.x.mul(.0331941).add(srgb.y.mul(.9668058)).add(srgb.z.mul(0)), srgb.x.mul(.0170826).add(srgb.y.mul(.0723974)).add(srgb.z.mul(.9105199)));\n};\nvar rgbToOklab = (rgb) => {\n\tconst r = rgb.x;\n\tconst g = rgb.y;\n\tconst b = rgb.z;\n\tconst l = r.mul(.4122214708).add(g.mul(.5363325363)).add(b.mul(.0514459929));\n\tconst m = r.mul(.2119034982).add(g.mul(.6806995451).add(b.mul(.1073969566)));\n\tconst s = r.mul(.0883024619).add(g.mul(.2817188376)).add(b.mul(.6299787005));\n\tconst l_ = sign(l).mul(pow(abs(l), float(1 / 3)));\n\tconst m_ = sign(m).mul(pow(abs(m), float(1 / 3)));\n\tconst s_ = sign(s).mul(pow(abs(s), float(1 / 3)));\n\treturn vec3(l_.mul(.2104542553).add(m_.mul(.793617785)).sub(s_.mul(.0040720468)), l_.mul(1.9779984951).sub(m_.mul(2.428592205)).add(s_.mul(.4505937099)), l_.mul(.0259040371).add(m_.mul(.7827717662)).sub(s_.mul(.808675766)));\n};\nvar oklabToRgb = (lab) => {\n\tconst L = lab.x;\n\tconst a = lab.y;\n\tconst b = lab.z;\n\tconst l_ = L.add(a.mul(.3963377774)).add(b.mul(.2158037573));\n\tconst m_ = L.sub(a.mul(.1055613458)).sub(b.mul(.0638541728));\n\tconst s_ = L.sub(a.mul(.0894841775)).sub(b.mul(1.291485548));\n\tconst l = pow(l_, float(3));\n\tconst m = pow(m_, float(3));\n\tconst s = pow(s_, float(3));\n\treturn vec3(l.mul(4.0767416621).sub(m.mul(3.3077115913)).add(s.mul(.2309699292)), l.mul(-1.2684380046).add(m.mul(2.6097574011)).sub(s.mul(.3413193965)), l.mul(-.0041960863).sub(m.mul(.7034186147)).add(s.mul(1.707614701)));\n};\nfunction normal_oklab_default(base, overlay, opacity = 1) {\n\tconst overlayAlpha = mul(overlay.a, opacity);\n\tconst finalAlpha = add(overlayAlpha, mul(base.a, sub(1, overlayAlpha)));\n\tconst baseSRGB = p3ToSRGB(vec3(base.r, base.g, base.b));\n\tconst overlaySRGB = p3ToSRGB(vec3(overlay.r, overlay.g, overlay.b));\n\tconst baseOklab = rgbToOklab(baseSRGB);\n\treturn vec4(sRGBToP3(oklabToRgb(add(mul(rgbToOklab(overlaySRGB), overlayAlpha), mul(baseOklab, mul(base.a, sub(1, overlayAlpha)))))), finalAlpha);\n}\nfunction multiply_default(base, overlay, opacity = 1) {\n\tconst overlayAlpha = mul(overlay.a, opacity);\n\tconst finalAlpha = add(overlayAlpha, mul(base.a, sub(1, overlayAlpha)));\n\treturn vec4(add(mul(mul(base.rgb, overlay.rgb), overlayAlpha), mul(base.rgb, mul(base.a, sub(1, overlayAlpha)))), finalAlpha);\n}\nfunction screen_default(base, overlay, opacity = 1) {\n\tconst overlayAlpha = mul(overlay.a, opacity);\n\tconst finalAlpha = add(overlayAlpha, mul(base.a, sub(1, overlayAlpha)));\n\treturn vec4(add(mul(sub(1, mul(sub(1, base.rgb), sub(1, overlay.rgb))), overlayAlpha), mul(base.rgb, mul(base.a, sub(1, overlayAlpha)))), finalAlpha);\n}\nfunction linearDodge_default(base, overlay, opacity = 1) {\n\tconst overlayAlpha = mul(overlay.a, opacity);\n\tconst finalAlpha = add(overlayAlpha, mul(base.a, sub(1, overlayAlpha)));\n\treturn vec4(add(mul(add(base.rgb, overlay.rgb), overlayAlpha), mul(base.rgb, mul(base.a, sub(1, overlayAlpha)))), finalAlpha);\n}\nfunction overlay_default(base, overlay, opacity = 1) {\n\tconst overlayAlpha = mul(overlay.a, opacity);\n\tconst finalAlpha = add(overlayAlpha, mul(base.a, sub(1, overlayAlpha)));\n\treturn vec4(add(mul(mix(mul(2, mul(base.rgb, overlay.rgb)), sub(1, mul(2, mul(sub(1, base.rgb), sub(1, overlay.rgb)))), step(.5, base.rgb)), overlayAlpha), mul(base.rgb, mul(base.a, sub(1, overlayAlpha)))), finalAlpha);\n}\nfunction difference_default(base, overlay, opacity = 1) {\n\tconst overlayAlpha = mul(overlay.a, opacity);\n\tconst finalAlpha = add(overlayAlpha, mul(base.a, sub(1, overlayAlpha)));\n\treturn vec4(add(mul(abs(sub(base.rgb, overlay.rgb)), overlayAlpha), mul(base.rgb, mul(base.a, sub(1, overlayAlpha)))), finalAlpha);\n}\nfunction colorDodge_default(base, overlay, opacity = 1) {\n\tconst overlayAlpha = mul(overlay.a, opacity);\n\tconst finalAlpha = add(overlayAlpha, mul(base.a, sub(1, overlayAlpha)));\n\treturn vec4(add(mul(mix(base.rgb, min(div(base.rgb, sub(1, overlay.rgb)), 1), step(.001, sub(1, overlay.rgb))), overlayAlpha), mul(base.rgb, mul(base.a, sub(1, overlayAlpha)))), finalAlpha);\n}\nfunction exclusion_default(base, overlay, opacity = 1) {\n\tconst overlayAlpha = mul(overlay.a, opacity);\n\tconst finalAlpha = add(overlayAlpha, mul(base.a, sub(1, overlayAlpha)));\n\treturn vec4(add(mul(sub(add(base.rgb, overlay.rgb), mul(2, mul(base.rgb, overlay.rgb))), overlayAlpha), mul(base.rgb, mul(base.a, sub(1, overlayAlpha)))), finalAlpha);\n}\nfunction getLuminance(rgb) {\n\treturn add(add(mul(rgb.r, .2126), mul(rgb.g, .7152)), mul(rgb.b, .0722));\n}\nfunction color_default(base, overlay, opacity = 1) {\n\tconst overlayAlpha = mul(overlay.a, opacity);\n\tconst finalAlpha = add(overlayAlpha, mul(base.a, sub(1, overlayAlpha)));\n\tconst lumDiff = sub(getLuminance(base.rgb), getLuminance(overlay.rgb));\n\treturn vec4(add(mul(add(overlay.rgb, lumDiff), overlayAlpha), mul(base.rgb, mul(base.a, sub(1, overlayAlpha)))), finalAlpha);\n}\nfunction luminosity_default(base, overlay, opacity = 1) {\n\tconst overlayAlpha = mul(overlay.a, opacity);\n\tconst finalAlpha = add(overlayAlpha, mul(base.a, sub(1, overlayAlpha)));\n\tconst baseLum = getLuminance(base.rgb);\n\tconst lumRatio = getLuminance(overlay.rgb).div(add(baseLum, 1e-4));\n\treturn vec4(add(mul(mul(base.rgb, lumRatio), overlayAlpha), mul(base.rgb, mul(base.a, sub(1, overlayAlpha)))), finalAlpha);\n}\nfunction darken_default(base, overlay, opacity = 1) {\n\tconst overlayAlpha = mul(overlay.a, opacity);\n\tconst finalAlpha = add(overlayAlpha, mul(base.a, sub(1, overlayAlpha)));\n\treturn vec4(add(mul(min(base.rgb, overlay.rgb), overlayAlpha), mul(base.rgb, mul(base.a, sub(1, overlayAlpha)))), finalAlpha);\n}\nfunction lighten_default(base, overlay, opacity = 1) {\n\tconst overlayAlpha = mul(overlay.a, opacity);\n\tconst finalAlpha = add(overlayAlpha, mul(base.a, sub(1, overlayAlpha)));\n\treturn vec4(add(mul(max(base.rgb, overlay.rgb), overlayAlpha), mul(base.rgb, mul(base.a, sub(1, overlayAlpha)))), finalAlpha);\n}\nfunction colorBurn_default(base, overlay, opacity = 1) {\n\tconst overlayAlpha = mul(overlay.a, opacity);\n\tconst finalAlpha = add(overlayAlpha, mul(base.a, sub(1, overlayAlpha)));\n\treturn vec4(add(mul(mix(vec4(0, 0, 0, 1).rgb, max(sub(1, sub(1, base.rgb).div(add(overlay.rgb, 1e-4))), 0), step(1e-4, overlay.rgb)), overlayAlpha), mul(base.rgb, mul(base.a, sub(1, overlayAlpha)))), finalAlpha);\n}\nfunction linearBurn_default(base, overlay, opacity = 1) {\n\tconst overlayAlpha = mul(overlay.a, opacity);\n\tconst finalAlpha = add(overlayAlpha, mul(base.a, sub(1, overlayAlpha)));\n\treturn vec4(add(mul(max(add(add(base.rgb, overlay.rgb), -1), 0), overlayAlpha), mul(base.rgb, mul(base.a, sub(1, overlayAlpha)))), finalAlpha);\n}\nfunction softLight_default(base, overlay, opacity = 1) {\n\tconst overlayAlpha = mul(overlay.a, opacity);\n\tconst finalAlpha = add(overlayAlpha, mul(base.a, sub(1, overlayAlpha)));\n\tconst softLightDark = add(mul(2, mul(base.rgb, overlay.rgb)), mul(mul(base.rgb, base.rgb), sub(1, mul(2, overlay.rgb))));\n\tconst baseSqrt = sqrt(base.rgb);\n\treturn vec4(add(mul(mix(softLightDark, add(mul(2, mul(base.rgb, sub(1, overlay.rgb))), mul(baseSqrt, sub(mul(2, overlay.rgb), 1))), step(.5, overlay.rgb)), overlayAlpha), mul(base.rgb, mul(base.a, sub(1, overlayAlpha)))), finalAlpha);\n}\nfunction hardLight_default(base, overlay, opacity = 1) {\n\tconst overlayAlpha = mul(overlay.a, opacity);\n\tconst finalAlpha = add(overlayAlpha, mul(base.a, sub(1, overlayAlpha)));\n\treturn vec4(add(mul(mix(mul(2, mul(base.rgb, overlay.rgb)), sub(1, mul(2, mul(sub(1, base.rgb), sub(1, overlay.rgb)))), step(.5, overlay.rgb)), overlayAlpha), mul(base.rgb, mul(base.a, sub(1, overlayAlpha)))), finalAlpha);\n}\nfunction hue_default(base, overlay, opacity = 1) {\n\tconst overlayAlpha = mul(overlay.a, opacity);\n\tconst finalAlpha = add(overlayAlpha, mul(base.a, sub(1, overlayAlpha)));\n\tconst baseLum = getLuminance(base.rgb);\n\tconst overlayLum = getLuminance(overlay.rgb);\n\tconst baseChromaticity = base.rgb.sub(baseLum);\n\tconst overlayChromaticity = overlay.rgb.sub(overlayLum);\n\tconst baseChromaLength = baseChromaticity.length();\n\treturn vec4(add(mul(add(mul(overlayChromaticity.normalize(), baseChromaLength), baseLum), overlayAlpha), mul(base.rgb, mul(base.a, sub(1, overlayAlpha)))), finalAlpha);\n}\nfunction saturation_default(base, overlay, opacity = 1) {\n\tconst overlayAlpha = mul(overlay.a, opacity);\n\tconst finalAlpha = add(overlayAlpha, mul(base.a, sub(1, overlayAlpha)));\n\tconst baseLum = getLuminance(base.rgb);\n\tconst overlayLum = getLuminance(overlay.rgb);\n\tconst baseChromaticity = base.rgb.sub(baseLum);\n\tconst overlayChromaticity = overlay.rgb.sub(overlayLum);\n\treturn vec4(add(mul(add(mul(baseChromaticity.normalize(), overlayChromaticity.length()), baseLum), overlayAlpha), mul(base.rgb, mul(base.a, sub(1, overlayAlpha)))), finalAlpha);\n}\nvar blendModes = {\n\tnormal: normal_default,\n\t\"normal-oklch\": normal_oklch_default,\n\t\"normal-oklab\": normal_oklab_default,\n\tmultiply: multiply_default,\n\tscreen: screen_default,\n\tlinearDodge: linearDodge_default,\n\toverlay: overlay_default,\n\tdifference: difference_default,\n\tcolorDodge: colorDodge_default,\n\texclusion: exclusion_default,\n\tcolor: color_default,\n\tluminosity: luminosity_default,\n\tdarken: darken_default,\n\tlighten: lighten_default,\n\tcolorBurn: colorBurn_default,\n\tlinearBurn: linearBurn_default,\n\tsoftLight: softLight_default,\n\thardLight: hardLight_default,\n\thue: hue_default,\n\tsaturation: saturation_default\n};\nfunction applyBlendMode(baseNode, overlayNode, blendMode = \"normal\", opacity = 1) {\n\treturn (blendModes[blendMode] || blendModes.normal)(baseNode, overlayNode, opacity);\n}\nfunction alpha_default(target, mask) {\n\tconst maskedAlpha = mul(target.a, mask.a);\n\treturn vec4(target.rgb, maskedAlpha);\n}\nfunction alphaInverted_default(target, mask) {\n\tconst invertedMaskAlpha = sub(1, mask.a);\n\tconst maskedAlpha = mul(target.a, invertedMaskAlpha);\n\treturn vec4(target.rgb, maskedAlpha);\n}\nfunction luminance_default(target, mask) {\n\tconst luminanceWeights = vec3(.2126, .7152, .0722);\n\tconst luminance = dot(mask.rgb, luminanceWeights);\n\tconst maskedAlpha = mul(target.a, luminance);\n\treturn vec4(target.rgb, maskedAlpha);\n}\nfunction luminanceInverted_default(target, mask) {\n\tconst luminanceWeights = vec3(.2126, .7152, .0722);\n\tconst invertedLuminance = sub(1, dot(mask.rgb, luminanceWeights));\n\tconst maskedAlpha = mul(target.a, invertedLuminance);\n\treturn vec4(target.rgb, maskedAlpha);\n}\nvar maskFunctions = {\n\t\"alpha\": alpha_default,\n\t\"alphaInverted\": alphaInverted_default,\n\t\"luminance\": luminance_default,\n\t\"luminanceInverted\": luminanceInverted_default\n};\nfunction applyMask(target, mask, maskType = \"alpha\") {\n\treturn (maskFunctions[maskType] || maskFunctions[\"alpha\"])(target, mask);\n}\nvar PerformanceTracker = class {\n\tframeTimesMs = [];\n\tframeTimesIndex = 0;\n\tframeTimesCount = 0;\n\tmaxSamples = 60;\n\ttargetFrameTime = 16.67;\n\tjankFrameCount = 0;\n\ttotalFrameCount = 0;\n\tmemorySnapshots = [];\n\tmemorySnapshotIndex = 0;\n\tmaxMemorySnapshots = 300;\n\tnodeCount = 0;\n\trttNodeCount = 0;\n\tlastCpuTime = null;\n\tlastGpuTime = null;\n\tisRendering = false;\n\tlastFrameTimestamp = 0;\n\tframeIntervals = [];\n\tframeIntervalsIndex = 0;\n\tframeIntervalsCount = 0;\n\tpushToCircularBuffer(buffer, value, index, _count, maxSize) {\n\t\tif (buffer.length < maxSize) {\n\t\t\tbuffer.push(value);\n\t\t\treturn {\n\t\t\t\tindex: buffer.length,\n\t\t\t\tcount: buffer.length\n\t\t\t};\n\t\t}\n\t\tbuffer[index % maxSize] = value;\n\t\treturn {\n\t\t\tindex: index + 1,\n\t\t\tcount: maxSize\n\t\t};\n\t}\n\tgetBufferValues(buffer, count) {\n\t\treturn count <= buffer.length ? buffer.slice(0, count) : buffer;\n\t}\n\trecordFrame(frameTimeMs) {\n\t\tconst result = this.pushToCircularBuffer(this.frameTimesMs, frameTimeMs, this.frameTimesIndex, this.frameTimesCount, this.maxSamples);\n\t\tthis.frameTimesIndex = result.index;\n\t\tthis.frameTimesCount = result.count;\n\t\tthis.totalFrameCount++;\n\t\tif (frameTimeMs > this.targetFrameTime) this.jankFrameCount++;\n\t\tconst now = performance.now();\n\t\tif (this.lastFrameTimestamp > 0) {\n\t\t\tconst interval = now - this.lastFrameTimestamp;\n\t\t\tconst intervalResult = this.pushToCircularBuffer(this.frameIntervals, interval, this.frameIntervalsIndex, this.frameIntervalsCount, this.maxSamples);\n\t\t\tthis.frameIntervalsIndex = intervalResult.index;\n\t\t\tthis.frameIntervalsCount = intervalResult.count;\n\t\t}\n\t\tthis.lastFrameTimestamp = now;\n\t\tthis.recordMemorySnapshot();\n\t}\n\trecordCpuTime(timeMs) {\n\t\tthis.lastCpuTime = timeMs;\n\t}\n\trecordGpuTime(timeMs) {\n\t\tthis.lastGpuTime = timeMs;\n\t}\n\tupdateNodeCounts(nodeCount, rttNodeCount) {\n\t\tthis.nodeCount = nodeCount;\n\t\tthis.rttNodeCount = rttNodeCount;\n\t}\n\tsetRendering(rendering) {\n\t\tthis.isRendering = rendering;\n\t}\n\trecordMemorySnapshot() {\n\t\tif (!performance.memory) return;\n\t\tconst now = performance.now();\n\t\tconst bytes = performance.memory.usedJSHeapSize;\n\t\tif (this.memorySnapshots.length < this.maxMemorySnapshots) this.memorySnapshots.push({\n\t\t\ttime: now,\n\t\t\tbytes\n\t\t});\n\t\telse {\n\t\t\tconst entry = this.memorySnapshots[this.memorySnapshotIndex];\n\t\t\tentry.time = now;\n\t\t\tentry.bytes = bytes;\n\t\t\tthis.memorySnapshotIndex = (this.memorySnapshotIndex + 1) % this.maxMemorySnapshots;\n\t\t}\n\t}\n\tcalculateMemoryGrowthRate() {\n\t\tif (this.memorySnapshots.length < 2) return null;\n\t\tconst len = this.memorySnapshots.length;\n\t\tconst oldestIdx = len < this.maxMemorySnapshots ? 0 : this.memorySnapshotIndex;\n\t\tconst newestIdx = len < this.maxMemorySnapshots ? len - 1 : (this.memorySnapshotIndex - 1 + len) % len;\n\t\tconst oldest = this.memorySnapshots[oldestIdx];\n\t\tconst newest = this.memorySnapshots[newestIdx];\n\t\tconst timeDeltaSeconds = (newest.time - oldest.time) / 1e3;\n\t\tif (timeDeltaSeconds <= 0) return null;\n\t\treturn (newest.bytes - oldest.bytes) / (1024 * 1024) / timeDeltaSeconds;\n\t}\n\tcalculateStdDev(values) {\n\t\tif (values.length === 0) return 0;\n\t\tconst mean = values.reduce((a, b) => a + b, 0) / values.length;\n\t\tlet sumSquaredDiff = 0;\n\t\tfor (let i = 0; i < values.length; i++) {\n\t\t\tconst diff = values[i] - mean;\n\t\t\tsumSquaredDiff += diff * diff;\n\t\t}\n\t\treturn Math.sqrt(sumSquaredDiff / values.length);\n\t}\n\tsortBuffer = [];\n\tcalculateP99(values) {\n\t\tconst len = values.length;\n\t\tif (len === 0) return 0;\n\t\twhile (this.sortBuffer.length < len) this.sortBuffer.push(0);\n\t\tfor (let i = 0; i < len; i++) this.sortBuffer[i] = values[i];\n\t\tfor (let i = 1; i < len; i++) {\n\t\t\tconst current = this.sortBuffer[i];\n\t\t\tlet j = i - 1;\n\t\t\twhile (j >= 0 && this.sortBuffer[j] > current) {\n\t\t\t\tthis.sortBuffer[j + 1] = this.sortBuffer[j];\n\t\t\t\tj--;\n\t\t\t}\n\t\t\tthis.sortBuffer[j + 1] = current;\n\t\t}\n\t\tconst index = Math.floor(len * .99);\n\t\treturn this.sortBuffer[Math.min(index, len - 1)];\n\t}\n\tcalculateComplexityScore() {\n\t\treturn this.nodeCount + this.rttNodeCount * 10;\n\t}\n\tcalculateIntensityScore() {\n\t\tconst frameTimes = this.getBufferValues(this.frameTimesMs, this.frameTimesCount);\n\t\tconst frameCount = frameTimes.length;\n\t\tif (frameCount === 0) return {\n\t\t\tscore: 0,\n\t\t\tlabel: \"N/A\"\n\t\t};\n\t\tconst avgFrameTime = frameTimes.reduce((a, b) => a + b, 0) / frameCount;\n\t\tconst frameTimeScore = Math.min(avgFrameTime / 16.67 * 100, 100);\n\t\tconst complexity = this.calculateComplexityScore();\n\t\tconst complexityScore = Math.min(complexity / 100 * 100, 100);\n\t\tlet gpuTimeScore = 0;\n\t\tif (this.lastGpuTime !== null) gpuTimeScore = Math.min(this.lastGpuTime / 16.67 * 100, 100);\n\t\tconst weights = this.lastGpuTime !== null ? {\n\t\t\tframe: .4,\n\t\t\tgpu: .4,\n\t\t\tcomplexity: .2\n\t\t} : {\n\t\t\tframe: .7,\n\t\t\tgpu: 0,\n\t\t\tcomplexity: .3\n\t\t};\n\t\tconst finalScore = Math.round(frameTimeScore * weights.frame + gpuTimeScore * weights.gpu + complexityScore * weights.complexity);\n\t\tlet label;\n\t\tif (finalScore <= 20) label = \"Very Light\";\n\t\telse if (finalScore <= 40) label = \"Light\";\n\t\telse if (finalScore <= 60) label = \"Medium\";\n\t\telse if (finalScore <= 80) label = \"Heavy\";\n\t\telse label = \"Very Heavy\";\n\t\treturn {\n\t\t\tscore: Math.min(finalScore, 100),\n\t\t\tlabel\n\t\t};\n\t}\n\tgetStats(rendererInfo) {\n\t\tconst frameTimes = this.getBufferValues(this.frameTimesMs, this.frameTimesCount);\n\t\tconst intervals = this.getBufferValues(this.frameIntervals, this.frameIntervalsCount);\n\t\tconst frameCount = frameTimes.length;\n\t\tconst fps = intervals.length > 0 ? 1e3 / (intervals.reduce((a, b) => a + b, 0) / intervals.length) : 0;\n\t\tconst avgFrameTime = frameCount > 0 ? frameTimes.reduce((a, b) => a + b, 0) / frameCount : 0;\n\t\tconst minFrameTime = frameCount > 0 ? Math.min(...frameTimes) : 0;\n\t\tconst maxFrameTime = frameCount > 0 ? Math.max(...frameTimes) : 0;\n\t\tconst p99FrameTime = this.calculateP99(frameTimes);\n\t\tconst stdDevFrameTime = this.calculateStdDev(frameTimes);\n\t\tconst jankPercent = this.totalFrameCount > 0 ? this.jankFrameCount / this.totalFrameCount * 100 : 0;\n\t\tconst memory = performance.memory;\n\t\tconst memoryUsedMB = memory ? memory.usedJSHeapSize / (1024 * 1024) : null;\n\t\tconst memoryGrowthRate = this.calculateMemoryGrowthRate();\n\t\tconst budgetUsed = avgFrameTime > 0 ? avgFrameTime / this.targetFrameTime * 100 : 0;\n\t\tconst drawCalls = rendererInfo?.render?.calls ?? null;\n\t\tconst shaderPrograms = rendererInfo?.programs?.length ?? null;\n\t\tconst textureCount = rendererInfo?.memory?.textures ?? null;\n\t\tconst intensity = this.calculateIntensityScore();\n\t\treturn {\n\t\t\tfps: Math.round(fps),\n\t\t\tavgFrameTime: Math.round(avgFrameTime * 100) / 100,\n\t\t\tminFrameTime: Math.round(minFrameTime * 100) / 100,\n\t\t\tmaxFrameTime: Math.round(maxFrameTime * 100) / 100,\n\t\t\tp99FrameTime: Math.round(p99FrameTime * 100) / 100,\n\t\t\tstdDevFrameTime: Math.round(stdDevFrameTime * 100) / 100,\n\t\t\tjankCount: this.jankFrameCount,\n\t\t\tjankPercent: Math.round(jankPercent * 10) / 10,\n\t\t\tnodeCount: this.nodeCount,\n\t\t\trttNodeCount: this.rttNodeCount,\n\t\t\tcomplexityScore: this.calculateComplexityScore(),\n\t\t\tmemoryUsedMB: memoryUsedMB !== null ? Math.round(memoryUsedMB * 100) / 100 : null,\n\t\t\tmemoryGrowthRate: memoryGrowthRate !== null ? Math.round(memoryGrowthRate * 1e3) / 1e3 : null,\n\t\t\tcpuTime: this.lastCpuTime !== null ? Math.round(this.lastCpuTime * 100) / 100 : null,\n\t\t\tgpuTime: this.lastGpuTime !== null ? Math.round(this.lastGpuTime * 100) / 100 : null,\n\t\t\tbudgetUsed: Math.round(budgetUsed * 10) / 10,\n\t\t\tdrawCalls,\n\t\t\tshaderPrograms,\n\t\t\ttextureCount,\n\t\t\tintensityScore: intensity.score,\n\t\t\tintensityLabel: intensity.label,\n\t\t\tisRendering: this.isRendering\n\t\t};\n\t}\n\treset() {\n\t\tthis.frameTimesMs.length = 0;\n\t\tthis.frameTimesIndex = 0;\n\t\tthis.frameTimesCount = 0;\n\t\tthis.frameIntervals.length = 0;\n\t\tthis.frameIntervalsIndex = 0;\n\t\tthis.frameIntervalsCount = 0;\n\t\tthis.lastFrameTimestamp = 0;\n\t\tthis.jankFrameCount = 0;\n\t\tthis.totalFrameCount = 0;\n\t\tthis.memorySnapshots.length = 0;\n\t\tthis.memorySnapshotIndex = 0;\n\t\tthis.sortBuffer.length = 0;\n\t\tthis.lastCpuTime = null;\n\t\tthis.lastGpuTime = null;\n\t}\n};\nconst needsTransformation = (transform) => {\n\tif (!transform) return false;\n\treturn transform.offsetX !== 0 || transform.offsetY !== 0 || transform.rotation !== 0 || transform.scale !== 1 || transform.anchorX !== .5 || transform.anchorY !== .5;\n};\nconst applyUVTransform = (uv$1, offsetXUniform, offsetYUniform, rotationUniform, scaleUniform, anchorXUniform, anchorYUniform, aspectRatioUniform) => {\n\tconst rotationRad = rotationUniform.mul(PI).div(float(180));\n\tconst cosAngle = cos(rotationRad);\n\tconst sinAngle = sin(rotationRad);\n\tconst anchor = vec2(anchorXUniform, anchorYUniform);\n\tconst scaledUV = uv$1.sub(anchor).div(scaleUniform);\n\tconst squareUV = vec2(scaledUV.x.mul(aspectRatioUniform), scaledUV.y);\n\tconst rotatedSquareUV = vec2(squareUV.x.mul(cosAngle).sub(squareUV.y.mul(sinAngle)), squareUV.x.mul(sinAngle).add(squareUV.y.mul(cosAngle)));\n\treturn vec2(rotatedSquareUV.x.div(aspectRatioUniform), rotatedSquareUV.y).sub(vec2(offsetXUniform, offsetYUniform)).add(anchor);\n};\nvar updateTransformMap = new Map([[transformColor, transformColorUpdate], [transformPosition, transformPositionUpdate]]);\nfunction createUniformsMap(component, reactiveProps, instanceId) {\n\tconst uniformsMap = {};\n\tObject.entries(component.props).forEach(([propName, propConfig]) => {\n\t\tconst initialValue = reactiveProps[propName];\n\t\tlet uniformValue = initialValue;\n\t\tif (propConfig.transform) {\n\t\t\tconst transformed = propConfig.transform(initialValue);\n\t\t\tuniformValue = transformed?.node ?? transformed;\n\t\t}\n\t\tif (uniformValue === null || uniformValue === void 0) {\n\t\t\tuniformValue = propConfig.default;\n\t\t\tif (propConfig.transform && uniformValue !== null && uniformValue !== void 0) {\n\t\t\t\tconst transformed = propConfig.transform(uniformValue);\n\t\t\t\tuniformValue = transformed?.node ?? transformed;\n\t\t\t}\n\t\t}\n\t\tif (uniformValue === null || uniformValue === void 0) {\n\t\t\tconsole.error(`[Shaders] Uniform \"${propName}\" is null/undefined after fallback. PropConfig:`, {\n\t\t\t\tpropName,\n\t\t\t\tinitialValue,\n\t\t\t\tdefault: propConfig.default,\n\t\t\t\thasTransform: !!propConfig.transform\n\t\t\t});\n\t\t\tuniformValue = 0;\n\t\t}\n\t\tconst uniformNode = uniform(uniformValue).setName(`${propName}_${instanceId}`.replace(/[^a-zA-Z0-9_]/g, \"_\"));\n\t\tif (typeof uniformValue === \"string\" && uniformNode.value === null) uniformNode.value = uniformValue;\n\t\tuniformsMap[propName] = {\n\t\t\tuniform: uniformNode,\n\t\t\ttransform: propConfig.transform || void 0,\n\t\t\tcompileTime: propConfig.compileTime || false,\n\t\t\t...propConfig.compileTimeWhen ? {\n\t\t\t\tcompileTimeWhen: propConfig.compileTimeWhen,\n\t\t\t\t_lastCompiledValue: initialValue ?? propConfig.default\n\t\t\t} : {}\n\t\t};\n\t});\n\treturn uniformsMap;\n}\nfunction updateUniformValue(uniform$1, newValue) {\n\tif (uniform$1?.transform) {\n\t\tconst updateTransform = updateTransformMap.get(uniform$1.transform);\n\t\tif (updateTransform) {\n\t\t\tconst newData = updateTransform(newValue);\n\t\t\tif (uniform$1.uniform.value && typeof uniform$1.uniform.value.copy === \"function\") uniform$1.uniform.value.copy(newData);\n\t\t\telse uniform$1.uniform.value = newData;\n\t\t} else {\n\t\t\tconst transformed = uniform$1.transform(newValue);\n\t\t\tconst dataValue = transformed?.data ?? transformed;\n\t\t\tif (uniform$1.uniform.value && typeof uniform$1.uniform.value.copy === \"function\" && dataValue && typeof dataValue.copy === \"function\") uniform$1.uniform.value.copy(dataValue);\n\t\t\telse uniform$1.uniform.value = dataValue;\n\t\t}\n\t} else uniform$1.uniform.value = newValue;\n}\nvar globalEventManager = (() => {\n\tlet instanceCount = 0;\n\tconst callbacks = /* @__PURE__ */ new Set();\n\tconst globalMouseMoveHandler = (e) => {\n\t\tcallbacks.forEach((cb) => {\n\t\t\ttry {\n\t\t\t\tcb.onMouseMove(e);\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error(\"[Shaders] Error in mouse move handler:\", error);\n\t\t\t}\n\t\t});\n\t};\n\tconst globalTouchMoveHandler = (e) => {\n\t\tcallbacks.forEach((cb) => {\n\t\t\ttry {\n\t\t\t\tcb.onTouchMove(e);\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error(\"[Shaders] Error in touch move handler:\", error);\n\t\t\t}\n\t\t});\n\t};\n\tconst globalMouseUpHandler = () => {\n\t\tcallbacks.forEach((cb) => {\n\t\t\ttry {\n\t\t\t\tcb.onMouseUp();\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error(\"[Shaders] Error in mouse up handler:\", error);\n\t\t\t}\n\t\t});\n\t};\n\tconst globalTouchEndHandler = () => {\n\t\tcallbacks.forEach((cb) => {\n\t\t\ttry {\n\t\t\t\tcb.onTouchEnd();\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error(\"[Shaders] Error in touch end handler:\", error);\n\t\t\t}\n\t\t});\n\t};\n\treturn { register(handlers) {\n\t\tcallbacks.add(handlers);\n\t\tinstanceCount++;\n\t\tif (instanceCount === 1) {\n\t\t\twindow.addEventListener(\"mousemove\", globalMouseMoveHandler);\n\t\t\twindow.addEventListener(\"touchmove\", globalTouchMoveHandler);\n\t\t\twindow.addEventListener(\"mouseup\", globalMouseUpHandler);\n\t\t\twindow.addEventListener(\"touchend\", globalTouchEndHandler);\n\t\t}\n\t\treturn () => {\n\t\t\tcallbacks.delete(handlers);\n\t\t\tinstanceCount--;\n\t\t\tif (instanceCount === 0) {\n\t\t\t\twindow.removeEventListener(\"mousemove\", globalMouseMoveHandler);\n\t\t\t\twindow.removeEventListener(\"touchmove\", globalTouchMoveHandler);\n\t\t\t\twindow.removeEventListener(\"mouseup\", globalMouseUpHandler);\n\t\t\t\twindow.removeEventListener(\"touchend\", globalTouchEndHandler);\n\t\t\t}\n\t\t};\n\t} };\n})();\nvar applySpring = (current, velocity, target, smoothing, momentum, dt) => {\n\tif (smoothing === 0 && momentum === 0) return [target, 0];\n\tconst stiffness = 200 * Math.pow(.01, smoothing);\n\tconst damping = 2 * Math.sqrt(stiffness) * (1 - momentum * .85);\n\tconst newVelocity = velocity + (stiffness * (target - current) - damping * velocity) * dt;\n\treturn [current + newVelocity * dt, newVelocity];\n};\nfunction shaderRenderer() {\n\tlet canvasElement = null;\n\tlet renderer;\n\tlet rendererInitPromise = null;\n\tlet rendererInitSettled = false;\n\tlet camera;\n\tlet scene;\n\tlet mesh;\n\tlet material;\n\tconst nodeRegistry = {\n\t\tnodes: /* @__PURE__ */ new Map(),\n\t\trootId: null,\n\t\tidToNodeId: /* @__PURE__ */ new Map()\n\t};\n\tconst parentToChildren = /* @__PURE__ */ new Map();\n\tlet animationFrameId = null;\n\tlet resizeObserver = null;\n\tlet intersectionObserver = null;\n\tlet isInitialized = false;\n\tlet isInitializing = false;\n\tlet rendererColorSpace = \"p3-linear\";\n\tlet rendererToneMapping = \"linear\";\n\tlet hasInitialDimensions = false;\n\tlet initializationAbortController = null;\n\tlet isVisible = false;\n\tlet shouldAnimate = true;\n\tlet forceFullFrameRate = false;\n\tlet currentWidth = 0;\n\tlet currentHeight = 0;\n\tlet lastRenderTime = 0;\n\tlet globalElapsedTime = 0;\n\tlet needsMaterialRefresh = false;\n\tlet pointerX = .5;\n\tlet pointerY = .5;\n\tlet pointerActive = false;\n\tlet cachedCanvasRect = null;\n\tlet isUpdatingMaterial = false;\n\tlet pendingNodeRemoval = false;\n\tlet globalEventUnregister = null;\n\tlet canvasContextLossUnregister = null;\n\tlet unloadHandler = null;\n\tlet windowResizeHandler = null;\n\tlet cachedMaxTextureDim = 8192;\n\tlet lastRequestedWidth = 0;\n\tlet lastRequestedHeight = 0;\n\tlet enablePerformanceTracking = true;\n\tconst performanceTracker = new PerformanceTracker();\n\tlet pendingRegistrationQueue = [];\n\tlet isRendererReady = false;\n\tlet onReadyCallback = null;\n\tlet hasEmittedReady = false;\n\tlet firstRenderPending = false;\n\tlet onDeviceLostCallback = null;\n\tlet deviceLostFired = false;\n\tconst fireDeviceLost = (reason) => {\n\t\tif (deviceLostFired) return;\n\t\tdeviceLostFired = true;\n\t\ttry {\n\t\t\tstopAnimation();\n\t\t} catch {}\n\t\tif (onDeviceLostCallback) queueMicrotask(() => {\n\t\t\ttry {\n\t\t\t\tonDeviceLostCallback?.(reason);\n\t\t\t} catch (e) {\n\t\t\t\tconsole.error(\"[Shaders] onDeviceLost callback threw:\", e);\n\t\t\t}\n\t\t});\n\t};\n\tlet materialUpdateBatchRAF = null;\n\tlet lastComposedNodes = /* @__PURE__ */ new Set();\n\tlet activeRTTNodes = /* @__PURE__ */ new Set();\n\tlet actualRTTOperations = 0;\n\tlet currentTextures = /* @__PURE__ */ new Set();\n\tlet previousTextures = /* @__PURE__ */ new Set();\n\tconst activeBeforeRender = /* @__PURE__ */ new Set();\n\tconst activeAfterRender = /* @__PURE__ */ new Set();\n\tconst activeCompute = /* @__PURE__ */ new Set();\n\tconst activeDrivers = /* @__PURE__ */ new Set();\n\tconst frameParams = {\n\t\tdeltaTime: 0,\n\t\tpointer: {\n\t\t\tx: .5,\n\t\t\ty: .5\n\t\t},\n\t\tpointerActive: false,\n\t\tdimensions: {\n\t\t\twidth: 0,\n\t\t\theight: 0\n\t\t}\n\t};\n\tlet pendingResize = null;\n\tlet isResizeScheduled = false;\n\tconst clampToTextureCap = (w, h) => {\n\t\tconst pr = renderer?.getPixelRatio?.() ?? 1;\n\t\tconst gpuCssCap = Math.max(1, Math.floor(cachedMaxTextureDim / pr) - 1);\n\t\tconst capW = Math.min(w, window.innerWidth, gpuCssCap);\n\t\tconst capH = Math.min(h, window.innerHeight, gpuCssCap);\n\t\tconst scale = Math.min(capW / w, capH / h, 1);\n\t\treturn {\n\t\t\twidth: Math.max(1, Math.round(w * scale)),\n\t\t\theight: Math.max(1, Math.round(h * scale))\n\t\t};\n\t};\n\tconst updateRendererDimensions = (width, height) => {\n\t\tif (width <= 0 || height <= 0) return;\n\t\tif (width === lastRequestedWidth && height === lastRequestedHeight) return;\n\t\tlastRequestedWidth = width;\n\t\tlastRequestedHeight = height;\n\t\tpendingResize = {\n\t\t\twidth,\n\t\t\theight\n\t\t};\n\t\tif (!isResizeScheduled) {\n\t\t\tisResizeScheduled = true;\n\t\t\trequestAnimationFrame(() => {\n\t\t\t\tisResizeScheduled = false;\n\t\t\t\tif (!pendingResize) return;\n\t\t\t\tconst raw = pendingResize;\n\t\t\t\tpendingResize = null;\n\t\t\t\tconst { width: width$1, height: height$1 } = clampToTextureCap(raw.width, raw.height);\n\t\t\t\tcurrentWidth = width$1;\n\t\t\t\tcurrentHeight = height$1;\n\t\t\t\tif (!hasInitialDimensions) {\n\t\t\t\t\thasInitialDimensions = true;\n\t\t\t\t\tif (nodeRegistry.nodes.size > 0 && materialUpdateBatchRAF === null) materialUpdateBatchRAF = requestAnimationFrame(() => {\n\t\t\t\t\t\tmaterialUpdateBatchRAF = null;\n\t\t\t\t\t\tupdateMaterial();\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\trenderer.setSize(width$1, height$1, false);\n\t\t\t\tconst aspectRatio = width$1 / height$1;\n\t\t\t\tconst frustumHeight = 2;\n\t\t\t\tconst frustumWidth = frustumHeight * aspectRatio;\n\t\t\t\tcamera.left = -frustumWidth / 2;\n\t\t\t\tcamera.right = frustumWidth / 2;\n\t\t\t\tcamera.top = frustumHeight / 2;\n\t\t\t\tcamera.bottom = -frustumHeight / 2;\n\t\t\t\tcamera.updateProjectionMatrix();\n\t\t\t\tmesh.scale.set(frustumWidth, frustumHeight, 1);\n\t\t\t\tnodeRegistry.nodes.forEach((nodeInfo) => {\n\t\t\t\t\tif (nodeInfo.transformUniforms?.aspectRatio) nodeInfo.transformUniforms.aspectRatio.value = aspectRatio;\n\t\t\t\t\tnodeInfo.resizeCallbacks.forEach((callback) => {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tcallback({\n\t\t\t\t\t\t\t\twidth: width$1,\n\t\t\t\t\t\t\t\theight: height$1\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\t\tconsole.error(\"Error in resize callback:\", error);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t\tlastRenderTime = 0;\n\t\t\t\trenderFrame();\n\t\t\t});\n\t\t}\n\t};\n\tconst canRender = () => {\n\t\treturn isInitialized && !!renderer && !!scene && !!camera && !!material && currentWidth > 0 && currentHeight > 0;\n\t};\n\tconst handleResize = (entries) => {\n\t\tif (!renderer || !camera || !mesh) return;\n\t\tconst entry = entries[0];\n\t\tif (!entry) return;\n\t\tlet width, height;\n\t\tif (entry.contentBoxSize) {\n\t\t\tconst boxSize = Array.isArray(entry.contentBoxSize) ? entry.contentBoxSize[0] : entry.contentBoxSize;\n\t\t\tif (boxSize) {\n\t\t\t\twidth = Math.round(boxSize.inlineSize);\n\t\t\t\theight = Math.round(boxSize.blockSize);\n\t\t\t} else {\n\t\t\t\twidth = Math.round(entry.contentRect.width);\n\t\t\t\theight = Math.round(entry.contentRect.height);\n\t\t\t}\n\t\t} else {\n\t\t\twidth = Math.round(entry.contentRect.width);\n\t\t\theight = Math.round(entry.contentRect.height);\n\t\t}\n\t\tif (width === 0 || height === 0) return;\n\t\tupdateRendererDimensions(width, height);\n\t};\n\tconst handleVisibilityChange = (entries) => {\n\t\tconst entry = entries[0];\n\t\tif (!entry) return;\n\t\tisVisible = entry.isIntersecting;\n\t};\n\tconst setsAreEqual = (set1, set2) => {\n\t\tif (set1.size !== set2.size) return false;\n\t\tfor (const item of set1) if (!set2.has(item)) return false;\n\t\treturn true;\n\t};\n\tconst rebuildActiveSets = () => {\n\t\tactiveBeforeRender.clear();\n\t\tactiveAfterRender.clear();\n\t\tactiveCompute.clear();\n\t\tactiveDrivers.clear();\n\t\tfor (const [id, info] of nodeRegistry.nodes) {\n\t\t\tif (info.beforeRenderCallbacks.length > 0) activeBeforeRender.add(id);\n\t\t\tif (info.afterRenderCallbacks.length > 0) activeAfterRender.add(id);\n\t\t\tif (info.computeGetNodes) activeCompute.add(id);\n\t\t\tconst ms = info.mouseDriverState;\n\t\t\tconst as = info.autoAnimateState;\n\t\t\tconst hasMouse = !!ms && Object.keys(ms).length > 0;\n\t\t\tconst hasAnim = !!as && Object.keys(as).length > 0;\n\t\t\tif (hasMouse || hasAnim) activeDrivers.add(id);\n\t\t}\n\t};\n\tconst trackConvertToTexture = (node) => {\n\t\tactualRTTOperations++;\n\t\tconst texture$1 = convertToTexture(node);\n\t\tcurrentTextures.add(texture$1);\n\t\treturn texture$1;\n\t};\n\tconst disposePreviousTextures = () => {\n\t\tpreviousTextures.forEach((texture$1) => {\n\t\t\ttry {\n\t\t\t\tif (texture$1?.renderTarget?.dispose) texture$1.renderTarget.dispose();\n\t\t\t} catch (e) {}\n\t\t});\n\t\tpreviousTextures.clear();\n\t};\n\tconst applyHableTonemap = (node) => {\n\t\tconst rgb = vec3(node.x, node.y, node.z);\n\t\tconst alpha = node.w;\n\t\tconst x = rgb.mul(16);\n\t\tconst num = x.mul(x.mul(.15).add(.05)).add(.004);\n\t\tconst den = x.mul(x.mul(.15).add(.5)).add(.06);\n\t\tconst tonemapped = num.div(den).sub(.02 / .3);\n\t\treturn vec4(tonemapped.x, tonemapped.y, tonemapped.z, alpha);\n\t};\n\tconst applyUnrealTonemap = (node) => {\n\t\tconst rgb = vec3(node.x, node.y, node.z);\n\t\tconst alpha = node.w;\n\t\tconst tonemapped = rgb.div(rgb.add(.155)).mul(1.019);\n\t\treturn vec4(tonemapped.x, tonemapped.y, tonemapped.z, alpha);\n\t};\n\tconst setToneMapping = (mode) => {\n\t\trendererToneMapping = mode;\n\t\tif (!renderer) return;\n\t\trenderer.toneMapping = {\n\t\t\tlinear: NoToneMapping,\n\t\t\treinhard: ReinhardToneMapping,\n\t\t\tcineon: CineonToneMapping,\n\t\t\taces: ACESFilmicToneMapping,\n\t\t\tagx: AgXToneMapping,\n\t\t\tneutral: NeutralToneMapping\n\t\t}[mode] ?? NoToneMapping;\n\t};\n\tlet materialUpdatePending = false;\n\tconst updateMaterial = () => {\n\t\tif (!nodeRegistry.rootId || !material || isUpdatingMaterial) return;\n\t\tif (!nodeRegistry.nodes.get(nodeRegistry.rootId)) return;\n\t\tif (currentWidth === 0 || currentHeight === 0) {\n\t\t\tif (!materialUpdatePending) {\n\t\t\t\tmaterialUpdatePending = true;\n\t\t\t\trequestAnimationFrame(() => {\n\t\t\t\t\tmaterialUpdatePending = false;\n\t\t\t\t\tif (currentWidth > 0 && currentHeight > 0) updateMaterial();\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\tisUpdatingMaterial = true;\n\t\ttry {\n\t\t\tpreviousTextures = new Set(currentTextures);\n\t\t\tcurrentTextures.clear();\n\t\t\tconst currentComposedNodes = /* @__PURE__ */ new Set();\n\t\t\tactiveRTTNodes.clear();\n\t\t\tnodeRegistry.nodes.forEach((nodeInfo, nodeId) => {\n\t\t\t\tif (nodeInfo.requiresRTT || nodeInfo.transformRTTActive) activeRTTNodes.add(nodeId);\n\t\t\t});\n\t\t\tactualRTTOperations = 0;\n\t\t\tconst composedNode = composeNodeTree(nodeRegistry.rootId, /* @__PURE__ */ new Set(), currentComposedNodes);\n\t\t\tif (composedNode && material) {\n\t\t\t\tconst compositionChanged = !setsAreEqual(lastComposedNodes, currentComposedNodes);\n\t\t\t\tlet finalNode = composedNode;\n\t\t\t\tif (rendererToneMapping === \"hable\") finalNode = applyHableTonemap(composedNode);\n\t\t\t\telse if (rendererToneMapping === \"unreal\") finalNode = applyUnrealTonemap(composedNode);\n\t\t\t\tconst nodeChanged = material.fragmentNode !== finalNode;\n\t\t\t\tif (compositionChanged || needsMaterialRefresh || nodeChanged) {\n\t\t\t\t\tdisposePreviousTextures();\n\t\t\t\t\ttry {\n\t\t\t\t\t\tmaterial.dispose();\n\t\t\t\t\t\tif (renderer.renderTarget) renderer.renderTarget.dispose();\n\t\t\t\t\t} catch (e) {}\n\t\t\t\t\tconst newMaterial = new MeshBasicNodeMaterial({ transparent: true });\n\t\t\t\t\tnewMaterial.fragmentNode = finalNode;\n\t\t\t\t\tnewMaterial.needsUpdate = true;\n\t\t\t\t\tmesh.material = newMaterial;\n\t\t\t\t\tmaterial = newMaterial;\n\t\t\t\t\tneedsMaterialRefresh = false;\n\t\t\t\t\tlastComposedNodes = currentComposedNodes;\n\t\t\t\t\tif (!hasEmittedReady && currentComposedNodes.size > 0) firstRenderPending = true;\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tconsole.error(\"Error composing shader tree:\", error);\n\t\t} finally {\n\t\t\tisUpdatingMaterial = false;\n\t\t\tpendingNodeRemoval = false;\n\t\t}\n\t\trebuildActiveSets();\n\t\tif (!animationFrameId) renderFrame();\n\t};\n\tconst findChildNodes = (parentId) => {\n\t\tconst childIds = parentToChildren.get(parentId);\n\t\tif (!childIds) return [];\n\t\tconst children = [];\n\t\tfor (const childId of childIds) {\n\t\t\tconst nodeInfo = nodeRegistry.nodes.get(childId);\n\t\t\tif (nodeInfo) children.push(nodeInfo);\n\t\t}\n\t\treturn children;\n\t};\n\tconst sanitizeId = (id) => id.replace(/[^a-zA-Z0-9_]/g, \"_\");\n\tconst findNodeByCustomId = (customId) => {\n\t\tconst sanitized = sanitizeId(customId);\n\t\tfor (const [nodeId, info] of nodeRegistry.nodes.entries()) if (info.metadata.id === sanitized) return nodeId;\n\t\treturn null;\n\t};\n\tconst applyMaskIfNeeded = (result, nodeInfo, nodeId, processedMasks, distortedUV) => {\n\t\tif (!nodeInfo.metadata.mask?.source) return result;\n\t\tconst maskSourceId = nodeInfo.metadata.mask.source;\n\t\tconst maskNodeId = findNodeByCustomId(maskSourceId);\n\t\tif (!maskNodeId) return result;\n\t\tif (processedMasks.has(maskNodeId)) {\n\t\t\tconsole.error(`Uh oh, looks like you've got a circular dependency in your shader masks.`);\n\t\t\treturn result;\n\t\t}\n\t\tconst newProcessedMasks = new Set(processedMasks);\n\t\tnewProcessedMasks.add(nodeId);\n\t\tconst maskNode = composeNodeTree(maskNodeId, newProcessedMasks);\n\t\tlet finalMaskNode = maskNode;\n\t\tif (distortedUV) finalMaskNode = trackConvertToTexture(maskNode).sample(distortedUV);\n\t\tconst maskType = nodeInfo.metadata.mask.type || \"alpha\";\n\t\treturn applyMask(result, finalMaskNode, maskType);\n\t};\n\tconst resolveMapForProp = (mapConfig, processedMasks, currentNodeId, propName, sampleUV) => {\n\t\tconst sourceNodeId = findNodeByCustomId(mapConfig.source);\n\t\tif (!sourceNodeId) return null;\n\t\tif (processedMasks.has(sourceNodeId)) {\n\t\t\tconsole.error(`[Shaders] Circular dependency detected in prop maps: node \"${mapConfig.source}\" is already being processed.`);\n\t\t\treturn null;\n\t\t}\n\t\tconst newProcessedMasks = new Set(processedMasks);\n\t\tnewProcessedMasks.add(currentNodeId);\n\t\tconst mapTexture = trackConvertToTexture(composeNodeTree(sourceNodeId, newProcessedMasks));\n\t\tconst sampled = mapTexture.sample(sampleUV ?? screenUV);\n\t\tlet raw;\n\t\tswitch (mapConfig.channel) {\n\t\t\tcase \"alpha\":\n\t\t\t\traw = sampled.a;\n\t\t\t\tbreak;\n\t\t\tcase \"alphaInverted\":\n\t\t\t\traw = sampled.a.oneMinus();\n\t\t\t\tbreak;\n\t\t\tcase \"luminanceInverted\":\n\t\t\t\traw = dot(sampled.rgb, vec3(.2126, .7152, .0722)).oneMinus();\n\t\t\t\tbreak;\n\t\t\tcase \"luminance\":\n\t\t\tdefault:\n\t\t\t\traw = dot(sampled.rgb, vec3(.2126, .7152, .0722));\n\t\t\t\tbreak;\n\t\t}\n\t\tconst nodeInfo = nodeRegistry.nodes.get(currentNodeId);\n\t\tif (!nodeInfo) return null;\n\t\tif (!nodeInfo.mapUniforms) nodeInfo.mapUniforms = {};\n\t\tif (!nodeInfo.mapUniforms[propName]) nodeInfo.mapUniforms[propName] = {\n\t\t\tinputMin: uniform(mapConfig.inputMin),\n\t\t\tinputMax: uniform(mapConfig.inputMax),\n\t\t\toutputMin: uniform(mapConfig.outputMin),\n\t\t\toutputMax: uniform(mapConfig.outputMax),\n\t\t\tcurve: uniform(mapConfig.curve ?? 0),\n\t\t\tsourceTexture: mapTexture,\n\t\t\tchannel: mapConfig.channel\n\t\t};\n\t\telse {\n\t\t\tnodeInfo.mapUniforms[propName].inputMin.value = mapConfig.inputMin;\n\t\t\tnodeInfo.mapUniforms[propName].inputMax.value = mapConfig.inputMax;\n\t\t\tnodeInfo.mapUniforms[propName].outputMin.value = mapConfig.outputMin;\n\t\t\tnodeInfo.mapUniforms[propName].outputMax.value = mapConfig.outputMax;\n\t\t\tnodeInfo.mapUniforms[propName].curve.value = mapConfig.curve ?? 0;\n\t\t\tnodeInfo.mapUniforms[propName].sourceTexture = mapTexture;\n\t\t\tnodeInfo.mapUniforms[propName].channel = mapConfig.channel;\n\t\t}\n\t\tconst { inputMin: inputMinU, inputMax: inputMaxU, outputMin: outputMinU, outputMax: outputMaxU, curve: curveU } = nodeInfo.mapUniforms[propName];\n\t\tconst inputRange = max(inputMaxU.sub(inputMinU), 1e-4);\n\t\treturn mix(outputMinU, outputMaxU, pow(clamp(raw.sub(inputMinU).div(inputRange), 0, 1), pow(float(2), curveU.negate().mul(2))));\n\t};\n\tconst resolveMousePositionForProp = (_config, nodeId, propName) => {\n\t\tconst nodeInfo = nodeRegistry.nodes.get(nodeId);\n\t\tif (!nodeInfo) return null;\n\t\tif (!nodeInfo.mouseDriverState) nodeInfo.mouseDriverState = {};\n\t\tif (!nodeInfo.mouseDriverState[propName]) {\n\t\t\tconst trackX = _config.x === void 0 || _config.x === \"mouse\";\n\t\t\tconst trackY = _config.y === void 0 || _config.y === \"mouse\";\n\t\t\tconst initX = trackX ? pointerX : _config.x;\n\t\t\tconst initY = trackY ? pointerY : _config.y;\n\t\t\tconst smoothedUniform = uniform(new Vector2(initX, 1 - initY));\n\t\t\tnodeInfo.mouseDriverState[propName] = {\n\t\t\t\tcurrentX: initX,\n\t\t\t\tcurrentY: initY,\n\t\t\t\tvelocityX: 0,\n\t\t\t\tvelocityY: 0,\n\t\t\t\tsmoothedUniform\n\t\t\t};\n\t\t}\n\t\treturn nodeInfo.mouseDriverState[propName].smoothedUniform;\n\t};\n\tconst resolveMouseMapForProp = (config, nodeId, propName) => {\n\t\tconst nodeInfo = nodeRegistry.nodes.get(nodeId);\n\t\tif (!nodeInfo) return null;\n\t\tif (!nodeInfo.mouseDriverState) nodeInfo.mouseDriverState = {};\n\t\tif (!nodeInfo.mouseDriverState[propName]) {\n\t\t\tconst initial = Math.max(.001, config.axis === \"x\" ? pointerX : pointerY);\n\t\t\tconst smoothedUniform = uniform(initial);\n\t\t\tnodeInfo.mouseDriverState[propName] = {\n\t\t\t\tcurrentX: initial,\n\t\t\t\tcurrentY: 0,\n\t\t\t\tvelocityX: 0,\n\t\t\t\tvelocityY: 0,\n\t\t\t\tsmoothedUniform\n\t\t\t};\n\t\t}\n\t\tif (!nodeInfo.mapUniforms) nodeInfo.mapUniforms = {};\n\t\tif (!nodeInfo.mapUniforms[propName]) nodeInfo.mapUniforms[propName] = {\n\t\t\tinputMin: uniform(0, \"float\"),\n\t\t\tinputMax: uniform(1, \"float\"),\n\t\t\toutputMin: uniform(config.outputMin, \"float\"),\n\t\t\toutputMax: uniform(config.outputMax, \"float\"),\n\t\t\tcurve: uniform(config.curve ?? 0, \"float\")\n\t\t};\n\t\telse {\n\t\t\tnodeInfo.mapUniforms[propName].outputMin.value = config.outputMin;\n\t\t\tnodeInfo.mapUniforms[propName].outputMax.value = config.outputMax;\n\t\t\tnodeInfo.mapUniforms[propName].curve.value = config.curve ?? 0;\n\t\t}\n\t\tconst { outputMin: outputMinU, outputMax: outputMaxU, curve: curveU } = nodeInfo.mapUniforms[propName];\n\t\tconst smoothedU = nodeInfo.mouseDriverState[propName].smoothedUniform;\n\t\treturn mix(outputMinU, outputMaxU, pow(smoothedU, pow(float(2), curveU.negate().mul(2))));\n\t};\n\tconst resolveAutoAnimateForProp = (config, nodeId, propName) => {\n\t\tconst nodeInfo = nodeRegistry.nodes.get(nodeId);\n\t\tif (!nodeInfo) return null;\n\t\tif (!nodeInfo.autoAnimateState) nodeInfo.autoAnimateState = {};\n\t\tif (!nodeInfo.autoAnimateState[propName]) nodeInfo.autoAnimateState[propName] = { smoothedUniform: uniform(config.outputMin, \"float\") };\n\t\treturn nodeInfo.autoAnimateState[propName].smoothedUniform;\n\t};\n\tconst buildEffectiveUniforms = (baseUniforms, maps, nodeId, processedMasks) => {\n\t\tif (!maps || Object.keys(maps).length === 0) return baseUniforms;\n\t\tconst effectiveUniforms = { ...baseUniforms };\n\t\tconst nodeInfo = nodeRegistry.nodes.get(nodeId);\n\t\tconst customSampleUVs = nodeInfo?.mapSampleUVsFunc?.(baseUniforms) ?? {};\n\t\tfor (const [propName, driverConfig] of Object.entries(maps)) {\n\t\t\tlet resolvedNode = null;\n\t\t\tif (driverConfig.type === \"map\") {\n\t\t\t\tif (!(propName in effectiveUniforms)) continue;\n\t\t\t\tresolvedNode = resolveMapForProp(driverConfig, processedMasks, nodeId, propName, customSampleUVs[propName]);\n\t\t\t} else if (driverConfig.type === \"mouse-position\") {\n\t\t\t\tresolvedNode = resolveMousePositionForProp(driverConfig, nodeId, propName);\n\t\t\t\tif (resolvedNode !== null && propName in effectiveUniforms) effectiveUniforms[propName] = {\n\t\t\t\t\t...effectiveUniforms[propName],\n\t\t\t\t\tuniform: resolvedNode\n\t\t\t\t};\n\t\t\t\tcontinue;\n\t\t\t} else if (driverConfig.type === \"mouse\") {\n\t\t\t\tif (!(propName in effectiveUniforms)) continue;\n\t\t\t\tresolvedNode = resolveMouseMapForProp(driverConfig, nodeId, propName);\n\t\t\t} else if (driverConfig.type === \"auto-animate\") {\n\t\t\t\tif (!(propName in effectiveUniforms)) continue;\n\t\t\t\tresolvedNode = resolveAutoAnimateForProp(driverConfig, nodeId, propName);\n\t\t\t}\n\t\t\tif (resolvedNode !== null && propName in effectiveUniforms) {\n\t\t\t\tlet mapComputeInfo = void 0;\n\t\t\t\tif (driverConfig.type === \"map\") {\n\t\t\t\t\tconst mu = nodeInfo?.mapUniforms?.[propName];\n\t\t\t\t\tif (mu?.sourceTexture && mu?.channel) mapComputeInfo = {\n\t\t\t\t\t\tsourceTexture: mu.sourceTexture,\n\t\t\t\t\t\tchannel: mu.channel,\n\t\t\t\t\t\tinputMin: mu.inputMin,\n\t\t\t\t\t\tinputMax: mu.inputMax,\n\t\t\t\t\t\toutputMin: mu.outputMin,\n\t\t\t\t\t\toutputMax: mu.outputMax,\n\t\t\t\t\t\tcurve: mu.curve\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\tlet getCpuValue = void 0;\n\t\t\t\tif (driverConfig.type === \"mouse\") getCpuValue = () => {\n\t\t\t\t\tconst state = nodeInfo?.mouseDriverState?.[propName];\n\t\t\t\t\tconst mu = nodeInfo?.mapUniforms?.[propName];\n\t\t\t\t\tif (!state || !mu) return 0;\n\t\t\t\t\tconst smooth = state.smoothedUniform.value;\n\t\t\t\t\tconst oMin = mu.outputMin.value;\n\t\t\t\t\tconst oMax = mu.outputMax.value;\n\t\t\t\t\tconst exp$1 = Math.pow(2, -(mu.curve.value * 2));\n\t\t\t\t\treturn oMin + (oMax - oMin) * Math.pow(smooth, exp$1);\n\t\t\t\t};\n\t\t\t\teffectiveUniforms[propName] = {\n\t\t\t\t\t...effectiveUniforms[propName],\n\t\t\t\t\tuniform: resolvedNode,\n\t\t\t\t\t...mapComputeInfo ? { mapComputeInfo } : {},\n\t\t\t\t\t...getCpuValue ? { getCpuValue } : {}\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t\treturn effectiveUniforms;\n\t};\n\tconst applyNodeTransformation = (result, nodeInfo) => {\n\t\tif (!nodeInfo.metadata.transform || !nodeInfo.transformUniforms || !needsTransformation(nodeInfo.metadata.transform) && !nodeInfo.transformRTTActive) return result;\n\t\tconst texture$1 = trackConvertToTexture(result);\n\t\tconst transformedUV = applyUVTransform(screenUV, nodeInfo.transformUniforms.offsetX, nodeInfo.transformUniforms.offsetY, nodeInfo.transformUniforms.rotation, nodeInfo.transformUniforms.scale, nodeInfo.transformUniforms.anchorX, nodeInfo.transformUniforms.anchorY, nodeInfo.transformUniforms.aspectRatio);\n\t\treturn applyEdgeHandling(transformedUV, texture$1.sample(transformedUV), texture$1, nodeInfo.transformUniforms.edges.value);\n\t};\n\tconst initNodeCompute = (nodeInfo, params) => {\n\t\tnodeInfo.computeOutputs = void 0;\n\t\tnodeInfo.computeGetNodes = void 0;\n\t\tif (!(typeof window !== \"undefined\" && window.sessionStorage?.getItem(\"__shadersForceWebGL\") === \"1\") && nodeInfo.computeNodeFunc && renderer.backend?.isWebGPUBackend === true) try {\n\t\t\tconst result = nodeInfo.computeNodeFunc(params);\n\t\t\tif (result) {\n\t\t\t\tnodeInfo.computeOutputs = result.outputs;\n\t\t\t\tnodeInfo.computeGetNodes = result.getComputeNodes;\n\t\t\t\treturn result.outputs;\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tconsole.error(`Error initializing compute for node ${nodeInfo.id}:`, e);\n\t\t}\n\t};\n\tconst composeNodeTree = (nodeId, processedMasks = /* @__PURE__ */ new Set(), currentlyComposedNodes) => {\n\t\tif (currentWidth === 0 || currentHeight === 0) return vec4(0, 0, 0, 0);\n\t\tconst nodeInfo = nodeRegistry.nodes.get(nodeId);\n\t\tif (!nodeInfo) return vec4(0, 0, 0, 0);\n\t\tconst nodeSpecificOnCleanup = (callback) => {\n\t\t\tnodeInfo.cleanupCallbacks.push(callback);\n\t\t};\n\t\tconst nodeSpecificOnBeforeRender = (callback) => {\n\t\t\tnodeInfo.beforeRenderCallbacks.push(callback);\n\t\t};\n\t\tconst nodeSpecificOnAfterRender = (callback) => {\n\t\t\tnodeInfo.afterRenderCallbacks.push(callback);\n\t\t};\n\t\tconst nodeSpecificOnResize = (callback) => {\n\t\t\tnodeInfo.resizeCallbacks.push(callback);\n\t\t};\n\t\tconst childNodes = findChildNodes(nodeId);\n\t\tif (childNodes.length === 0) {\n\t\t\tnodeInfo.cleanupCallbacks.forEach((callback) => {\n\t\t\t\ttry {\n\t\t\t\t\tcallback();\n\t\t\t\t} catch (e) {\n\t\t\t\t\tconsole.error(\"Error in cleanup callback:\", e);\n\t\t\t\t}\n\t\t\t});\n\t\t\tnodeInfo.cleanupCallbacks = [];\n\t\t\tnodeInfo.beforeRenderCallbacks = [];\n\t\t\tnodeInfo.afterRenderCallbacks = [];\n\t\t\tnodeInfo.resizeCallbacks = [];\n\t\t\tconst baseParams0 = {\n\t\t\t\tuniforms: buildEffectiveUniforms(nodeInfo.uniforms ?? {}, nodeInfo.metadata.maps, nodeId, processedMasks),\n\t\t\t\tchildNode: void 0,\n\t\t\t\tonCleanup: nodeSpecificOnCleanup,\n\t\t\t\tonBeforeRender: nodeSpecificOnBeforeRender,\n\t\t\t\tonAfterRender: nodeSpecificOnAfterRender,\n\t\t\t\tonResize: nodeSpecificOnResize,\n\t\t\t\tcanvas: canvasElement,\n\t\t\t\tdimensions: {\n\t\t\t\t\twidth: currentWidth,\n\t\t\t\t\theight: currentHeight\n\t\t\t\t},\n\t\t\t\trenderer,\n\t\t\t\tdomCanvas: nodeInfo.domCanvas\n\t\t\t};\n\t\t\tbaseParams0.computeOutputs = initNodeCompute(nodeInfo, baseParams0);\n\t\t\treturn applyMaskIfNeeded(applyNodeTransformation(nodeInfo.fragmentNodeFunc(baseParams0), nodeInfo), nodeInfo, nodeId, processedMasks);\n\t\t} else {\n\t\t\tconst sortedChildren = [...childNodes].sort((a, b) => a.metadata.renderOrder - b.metadata.renderOrder);\n\t\t\tif (nodeInfo.parentId === null) {\n\t\t\t\tlet composedChildren = void 0;\n\t\t\t\tfor (let i = 0; i < sortedChildren.length; i++) {\n\t\t\t\t\tconst childInfo = sortedChildren[i];\n\t\t\t\t\tlet effectiveOpacity;\n\t\t\t\t\tif (childInfo.metadata.opacity === void 0) {\n\t\t\t\t\t\teffectiveOpacity = 1;\n\t\t\t\t\t\tchildInfo.opacityUniform.value = effectiveOpacity;\n\t\t\t\t\t} else {\n\t\t\t\t\t\teffectiveOpacity = childInfo.metadata.opacity;\n\t\t\t\t\t\tchildInfo.opacityUniform.value = effectiveOpacity;\n\t\t\t\t\t}\n\t\t\t\t\tif (childInfo.metadata.visible === false) continue;\n\t\t\t\t\tif (currentlyComposedNodes) currentlyComposedNodes.add(childInfo.id);\n\t\t\t\t\tconst childHasChildren = findChildNodes(childInfo.id).length > 0;\n\t\t\t\t\tlet childResult;\n\t\t\t\t\tif (childHasChildren) childResult = composeNodeTree(childInfo.id, processedMasks, currentlyComposedNodes);\n\t\t\t\t\telse {\n\t\t\t\t\t\tconst childSpecificOnCleanup = (callback) => {\n\t\t\t\t\t\t\tchildInfo.cleanupCallbacks.push(callback);\n\t\t\t\t\t\t};\n\t\t\t\t\t\tconst childSpecificOnBeforeRender = (callback) => {\n\t\t\t\t\t\t\tchildInfo.beforeRenderCallbacks.push(callback);\n\t\t\t\t\t\t};\n\t\t\t\t\t\tconst childSpecificOnAfterRender = (callback) => {\n\t\t\t\t\t\t\tchildInfo.afterRenderCallbacks.push(callback);\n\t\t\t\t\t\t};\n\t\t\t\t\t\tconst childSpecificOnResize = (callback) => {\n\t\t\t\t\t\t\tchildInfo.resizeCallbacks.push(callback);\n\t\t\t\t\t\t};\n\t\t\t\t\t\tlet effectiveChildNode = composedChildren;\n\t\t\t\t\t\tif (childInfo.requiresRTT && composedChildren !== void 0) effectiveChildNode = applyBlendMode(vec4(0, 0, 0, 0), composedChildren, \"normal\", 1);\n\t\t\t\t\t\tchildInfo.cleanupCallbacks.forEach((callback) => {\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tcallback();\n\t\t\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\t\t\tconsole.error(\"Error in cleanup callback:\", e);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t\tchildInfo.cleanupCallbacks = [];\n\t\t\t\t\t\tchildInfo.beforeRenderCallbacks = [];\n\t\t\t\t\t\tchildInfo.afterRenderCallbacks = [];\n\t\t\t\t\t\tchildInfo.resizeCallbacks = [];\n\t\t\t\t\t\tconst baseParams1 = {\n\t\t\t\t\t\t\tuniforms: buildEffectiveUniforms(childInfo.uniforms ?? {}, childInfo.metadata.maps, childInfo.id, processedMasks),\n\t\t\t\t\t\t\tchildNode: effectiveChildNode,\n\t\t\t\t\t\t\tonCleanup: childSpecificOnCleanup,\n\t\t\t\t\t\t\tonBeforeRender: childSpecificOnBeforeRender,\n\t\t\t\t\t\t\tonAfterRender: childSpecificOnAfterRender,\n\t\t\t\t\t\t\tonResize: childSpecificOnResize,\n\t\t\t\t\t\t\tcanvas: canvasElement,\n\t\t\t\t\t\t\tdimensions: {\n\t\t\t\t\t\t\t\twidth: currentWidth,\n\t\t\t\t\t\t\t\theight: currentHeight\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\trenderer,\n\t\t\t\t\t\t\tdomCanvas: childInfo.domCanvas\n\t\t\t\t\t\t};\n\t\t\t\t\t\tbaseParams1.computeOutputs = initNodeCompute(childInfo, baseParams1);\n\t\t\t\t\t\tchildResult = applyMaskIfNeeded(applyNodeTransformation(childInfo.fragmentNodeFunc(baseParams1), childInfo), childInfo, childInfo.id, processedMasks);\n\t\t\t\t\t}\n\t\t\t\t\tif (childInfo.requiresChild && childInfo.metadata.blendMode === \"normal\" && !childHasChildren) composedChildren = mix(composedChildren || vec4(0, 0, 0, 0), childResult, childInfo.opacityUniform);\n\t\t\t\t\telse if (composedChildren === void 0) if (nodeInfo.requiresRTT || effectiveOpacity !== 1) composedChildren = applyBlendMode(vec4(1, 1, 1, 0), childResult, childInfo.metadata.blendMode, childInfo.opacityUniform);\n\t\t\t\t\telse composedChildren = childResult;\n\t\t\t\t\telse composedChildren = applyBlendMode(composedChildren, childResult, childInfo.metadata.blendMode, childInfo.opacityUniform);\n\t\t\t\t}\n\t\t\t\tnodeInfo.cleanupCallbacks.forEach((callback) => {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tcallback();\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\tconsole.error(\"Error in cleanup callback:\", e);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tnodeInfo.cleanupCallbacks = [];\n\t\t\t\tnodeInfo.beforeRenderCallbacks = [];\n\t\t\t\tnodeInfo.afterRenderCallbacks = [];\n\t\t\t\tnodeInfo.resizeCallbacks = [];\n\t\t\t\tconst baseParams2 = {\n\t\t\t\t\tuniforms: buildEffectiveUniforms(nodeInfo.uniforms ?? {}, nodeInfo.metadata.maps, nodeId, processedMasks),\n\t\t\t\t\tchildNode: composedChildren,\n\t\t\t\t\tonCleanup: nodeSpecificOnCleanup,\n\t\t\t\t\tonBeforeRender: nodeSpecificOnBeforeRender,\n\t\t\t\t\tonAfterRender: nodeSpecificOnAfterRender,\n\t\t\t\t\tonResize: nodeSpecificOnResize,\n\t\t\t\t\tcanvas: canvasElement,\n\t\t\t\t\tdimensions: {\n\t\t\t\t\t\twidth: currentWidth,\n\t\t\t\t\t\theight: currentHeight\n\t\t\t\t\t},\n\t\t\t\t\trenderer,\n\t\t\t\t\tdomCanvas: nodeInfo.domCanvas\n\t\t\t\t};\n\t\t\t\tbaseParams2.computeOutputs = initNodeCompute(nodeInfo, baseParams2);\n\t\t\t\treturn applyMaskIfNeeded(applyNodeTransformation(nodeInfo.fragmentNodeFunc(baseParams2), nodeInfo), nodeInfo, nodeId, processedMasks);\n\t\t\t} else {\n\t\t\t\tlet composedChildrenResult = void 0;\n\t\t\t\tfor (let i = 0; i < sortedChildren.length; i++) {\n\t\t\t\t\tconst childInfo = sortedChildren[i];\n\t\t\t\t\tlet effectiveOpacity;\n\t\t\t\t\tif (childInfo.metadata.opacity === void 0) {\n\t\t\t\t\t\teffectiveOpacity = 1;\n\t\t\t\t\t\tchildInfo.opacityUniform.value = effectiveOpacity;\n\t\t\t\t\t} else {\n\t\t\t\t\t\teffectiveOpacity = childInfo.metadata.opacity;\n\t\t\t\t\t\tchildInfo.opacityUniform.value = effectiveOpacity;\n\t\t\t\t\t}\n\t\t\t\t\tif (childInfo.metadata.visible === false) continue;\n\t\t\t\t\tif (currentlyComposedNodes) currentlyComposedNodes.add(childInfo.id);\n\t\t\t\t\tconst childHasChildren = findChildNodes(childInfo.id).length > 0;\n\t\t\t\t\tlet childResult;\n\t\t\t\t\tif (childHasChildren) childResult = composeNodeTree(childInfo.id, processedMasks, currentlyComposedNodes);\n\t\t\t\t\telse {\n\t\t\t\t\t\tconst childSpecificOnCleanup = (callback) => {\n\t\t\t\t\t\t\tchildInfo.cleanupCallbacks.push(callback);\n\t\t\t\t\t\t};\n\t\t\t\t\t\tconst childSpecificOnBeforeRender = (callback) => {\n\t\t\t\t\t\t\tchildInfo.beforeRenderCallbacks.push(callback);\n\t\t\t\t\t\t};\n\t\t\t\t\t\tconst childSpecificOnAfterRender = (callback) => {\n\t\t\t\t\t\t\tchildInfo.afterRenderCallbacks.push(callback);\n\t\t\t\t\t\t};\n\t\t\t\t\t\tconst childSpecificOnResize = (callback) => {\n\t\t\t\t\t\t\tchildInfo.resizeCallbacks.push(callback);\n\t\t\t\t\t\t};\n\t\t\t\t\t\tlet effectiveChildNode = composedChildrenResult;\n\t\t\t\t\t\tif (childInfo.requiresRTT && composedChildrenResult !== void 0) effectiveChildNode = applyBlendMode(vec4(0, 0, 0, 0), composedChildrenResult, \"normal\", 1);\n\t\t\t\t\t\tchildInfo.cleanupCallbacks = [];\n\t\t\t\t\t\tchildInfo.beforeRenderCallbacks = [];\n\t\t\t\t\t\tchildInfo.afterRenderCallbacks = [];\n\t\t\t\t\t\tchildInfo.resizeCallbacks = [];\n\t\t\t\t\t\tconst baseParams3 = {\n\t\t\t\t\t\t\tuniforms: buildEffectiveUniforms(childInfo.uniforms ?? {}, childInfo.metadata.maps, childInfo.id, processedMasks),\n\t\t\t\t\t\t\tchildNode: effectiveChildNode,\n\t\t\t\t\t\t\tonCleanup: childSpecificOnCleanup,\n\t\t\t\t\t\t\tonBeforeRender: childSpecificOnBeforeRender,\n\t\t\t\t\t\t\tonAfterRender: childSpecificOnAfterRender,\n\t\t\t\t\t\t\tonResize: childSpecificOnResize,\n\t\t\t\t\t\t\tcanvas: canvasElement,\n\t\t\t\t\t\t\tdimensions: {\n\t\t\t\t\t\t\t\twidth: currentWidth,\n\t\t\t\t\t\t\t\theight: currentHeight\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\trenderer,\n\t\t\t\t\t\t\tdomCanvas: childInfo.domCanvas\n\t\t\t\t\t\t};\n\t\t\t\t\t\tbaseParams3.computeOutputs = initNodeCompute(childInfo, baseParams3);\n\t\t\t\t\t\tchildResult = applyMaskIfNeeded(applyNodeTransformation(childInfo.fragmentNodeFunc(baseParams3), childInfo), childInfo, childInfo.id, processedMasks);\n\t\t\t\t\t}\n\t\t\t\t\tif (childInfo.requiresChild && childInfo.metadata.blendMode === \"normal\" && !childHasChildren) composedChildrenResult = mix(composedChildrenResult || vec4(0, 0, 0, 0), childResult, childInfo.opacityUniform);\n\t\t\t\t\telse if (composedChildrenResult === void 0) if (nodeInfo.requiresRTT || effectiveOpacity !== 1) composedChildrenResult = applyBlendMode(vec4(1, 1, 1, 0), childResult, childInfo.metadata.blendMode, childInfo.opacityUniform);\n\t\t\t\t\telse composedChildrenResult = childResult;\n\t\t\t\t\telse composedChildrenResult = applyBlendMode(composedChildrenResult, childResult, childInfo.metadata.blendMode, childInfo.opacityUniform);\n\t\t\t\t}\n\t\t\t\tnodeInfo.cleanupCallbacks.forEach((callback) => {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tcallback();\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\tconsole.error(\"Error in cleanup callback:\", e);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tnodeInfo.cleanupCallbacks = [];\n\t\t\t\tnodeInfo.beforeRenderCallbacks = [];\n\t\t\t\tnodeInfo.afterRenderCallbacks = [];\n\t\t\t\tnodeInfo.resizeCallbacks = [];\n\t\t\t\tconst baseParams4 = {\n\t\t\t\t\tuniforms: buildEffectiveUniforms(nodeInfo.uniforms ?? {}, nodeInfo.metadata.maps, nodeId, processedMasks),\n\t\t\t\t\tchildNode: composedChildrenResult,\n\t\t\t\t\tonCleanup: nodeSpecificOnCleanup,\n\t\t\t\t\tonBeforeRender: nodeSpecificOnBeforeRender,\n\t\t\t\t\tonAfterRender: nodeSpecificOnAfterRender,\n\t\t\t\t\tonResize: nodeSpecificOnResize,\n\t\t\t\t\tcanvas: canvasElement,\n\t\t\t\t\tdimensions: {\n\t\t\t\t\t\twidth: currentWidth,\n\t\t\t\t\t\theight: currentHeight\n\t\t\t\t\t},\n\t\t\t\t\trenderer,\n\t\t\t\t\tdomCanvas: nodeInfo.domCanvas\n\t\t\t\t};\n\t\t\t\tbaseParams4.computeOutputs = initNodeCompute(nodeInfo, baseParams4);\n\t\t\t\treturn applyMaskIfNeeded(applyNodeTransformation(nodeInfo.fragmentNodeFunc(baseParams4), nodeInfo), nodeInfo, nodeId, processedMasks);\n\t\t\t}\n\t\t}\n\t};\n\tconst registerNode = (id, fragmentNodeFunc, parentId, metadata, uniforms = {}, componentDefinition, domCanvas) => {\n\t\tif (fragmentNodeFunc === null) {\n\t\t\tconst queueIndex = pendingRegistrationQueue.findIndex((item) => item.id === id);\n\t\t\tif (queueIndex !== -1) {\n\t\t\t\tpendingRegistrationQueue.splice(queueIndex, 1);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tremoveNode(id);\n\t\t\treturn;\n\t\t}\n\t\tif (!isRendererReady) {\n\t\t\tconst existing = pendingRegistrationQueue.findIndex((item) => item.id === id);\n\t\t\tif (existing !== -1) pendingRegistrationQueue[existing] = {\n\t\t\t\tid,\n\t\t\t\tfragmentNodeFunc,\n\t\t\t\tparentId,\n\t\t\t\tmetadata,\n\t\t\t\tuniforms,\n\t\t\t\tcomponentDefinition,\n\t\t\t\tdomCanvas\n\t\t\t};\n\t\t\telse pendingRegistrationQueue.push({\n\t\t\t\tid,\n\t\t\t\tfragmentNodeFunc,\n\t\t\t\tparentId,\n\t\t\t\tmetadata,\n\t\t\t\tuniforms,\n\t\t\t\tcomponentDefinition,\n\t\t\t\tdomCanvas\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\tlet defaultRenderOrder = 0;\n\t\tif (parentId !== null) {\n\t\t\tconst siblings = parentToChildren.get(parentId);\n\t\t\tif (siblings && siblings.size > 0) {\n\t\t\t\tlet maxOrder = 0;\n\t\t\t\tfor (const siblingId of siblings) {\n\t\t\t\t\tconst sibling = nodeRegistry.nodes.get(siblingId);\n\t\t\t\t\tif (sibling && sibling.metadata.renderOrder > maxOrder) maxOrder = sibling.metadata.renderOrder;\n\t\t\t\t}\n\t\t\t\tdefaultRenderOrder = maxOrder + 1;\n\t\t\t}\n\t\t}\n\t\tconst opacityUniform = uniform(metadata?.opacity !== void 0 ? metadata.opacity : 1);\n\t\tlet transformUniforms = void 0;\n\t\tif (metadata?.transform) {\n\t\t\tconst aspectRatio = currentWidth / Math.max(1, currentHeight);\n\t\t\tconst t = metadata.transform;\n\t\t\ttransformUniforms = {\n\t\t\t\toffsetX: uniform(t.offsetX ?? 0),\n\t\t\t\toffsetY: uniform(t.offsetY ?? 0),\n\t\t\t\trotation: uniform(t.rotation ?? 0),\n\t\t\t\tscale: uniform(t.scale ?? 1),\n\t\t\t\tanchorX: uniform(t.anchorX ?? .5),\n\t\t\t\tanchorY: uniform(t.anchorY ?? .5),\n\t\t\t\tedges: uniform(t.edges === \"stretch\" ? 0 : t.edges === \"transparent\" ? 1 : t.edges === \"mirror\" ? 2 : t.edges === \"wrap\" ? 3 : 1),\n\t\t\t\taspectRatio: uniform(aspectRatio)\n\t\t\t};\n\t\t}\n\t\tconst nodeInfo = {\n\t\t\tid,\n\t\t\tcomponentName: componentDefinition?.name || \"Unknown\",\n\t\t\tfragmentNodeFunc,\n\t\t\tparentId,\n\t\t\trequiresRTT: componentDefinition?.requiresRTT || false,\n\t\t\trequiresChild: componentDefinition?.requiresChild || false,\n\t\t\topacityUniform,\n\t\t\tmetadata: {\n\t\t\t\tblendMode: metadata?.blendMode || \"normal\",\n\t\t\t\topacity: metadata?.opacity,\n\t\t\t\tvisible: metadata?.visible === false ? false : true,\n\t\t\t\tid: metadata?.id ? sanitizeId(metadata.id) : metadata?.id,\n\t\t\t\tmask: metadata?.mask,\n\t\t\t\tmaps: metadata?.maps,\n\t\t\t\trenderOrder: metadata?.renderOrder !== void 0 ? metadata?.renderOrder : defaultRenderOrder,\n\t\t\t\ttransform: metadata?.transform\n\t\t\t},\n\t\t\tuniforms,\n\t\t\tcleanupCallbacks: [],\n\t\t\tbeforeRenderCallbacks: [],\n\t\t\tafterRenderCallbacks: [],\n\t\t\tresizeCallbacks: [],\n\t\t\ttransformUniforms,\n\t\t\ttransformRTTActive: false,\n\t\t\tmapSampleUVsFunc: componentDefinition?.mapSampleUVs,\n\t\t\tcomputeNodeFunc: componentDefinition?.computeNode,\n\t\t\tusesPointer: componentDefinition?.usesPointer,\n\t\t\tdomCanvas\n\t\t};\n\t\tnodeRegistry.nodes.set(id, nodeInfo);\n\t\tif (parentId === null) nodeRegistry.rootId = id;\n\t\tupdateMouseListenerRegistration();\n\t\tconst childrenSet = parentToChildren.get(parentId) || /* @__PURE__ */ new Set();\n\t\tchildrenSet.add(id);\n\t\tparentToChildren.set(parentId, childrenSet);\n\t\tif (material && isInitialized && currentWidth > 0 && currentHeight > 0) {\n\t\t\tif (materialUpdateBatchRAF === null) materialUpdateBatchRAF = requestAnimationFrame(() => {\n\t\t\t\tmaterialUpdateBatchRAF = null;\n\t\t\t\tupdateMaterial();\n\t\t\t});\n\t\t} else if (material && isInitialized) {\n\t\t\tif (!materialUpdatePending) {\n\t\t\t\tmaterialUpdatePending = true;\n\t\t\t\trequestAnimationFrame(() => {\n\t\t\t\t\tmaterialUpdatePending = false;\n\t\t\t\t\tif (currentWidth > 0 && currentHeight > 0) updateMaterial();\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t};\n\tconst updateUniformValue$1 = (nodeId, uniformName, value) => {\n\t\tconst nodeInfo = nodeRegistry.nodes.get(nodeId);\n\t\tif (!nodeInfo || !nodeInfo.uniforms) return;\n\t\tconst uniformDefinition = nodeInfo.uniforms[uniformName];\n\t\tif (!uniformDefinition || !uniformDefinition.uniform) return;\n\t\tif (uniformDefinition.transform) {\n\t\t\tsetColorSpaceMode(rendererColorSpace);\n\t\t\tupdateUniformValue(uniformDefinition, value);\n\t\t} else uniformDefinition.uniform.value = value;\n\t\tif (uniformDefinition.compileTime && material && isInitialized && currentWidth > 0 && currentHeight > 0) {\n\t\t\tif (materialUpdateBatchRAF === null) materialUpdateBatchRAF = requestAnimationFrame(() => {\n\t\t\t\tmaterialUpdateBatchRAF = null;\n\t\t\t\tupdateMaterial();\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\tif (uniformDefinition.compileTimeWhen && material && isInitialized && currentWidth > 0 && currentHeight > 0) {\n\t\t\tconst prev = uniformDefinition._lastCompiledValue;\n\t\t\tif (uniformDefinition.compileTimeWhen(prev, value)) {\n\t\t\t\tuniformDefinition._lastCompiledValue = value;\n\t\t\t\tif (materialUpdateBatchRAF === null) materialUpdateBatchRAF = requestAnimationFrame(() => {\n\t\t\t\t\tmaterialUpdateBatchRAF = null;\n\t\t\t\t\tupdateMaterial();\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\tif (!animationFrameId) renderFrame();\n\t};\n\tconst updateNodeMetadata = (nodeId, metadata) => {\n\t\tconst existingNode = nodeRegistry.nodes.get(nodeId);\n\t\tif (!existingNode) return;\n\t\tlet needsRecompose = false;\n\t\tif (metadata.blendMode !== void 0 && existingNode.metadata.blendMode !== metadata.blendMode) {\n\t\t\texistingNode.metadata.blendMode = metadata.blendMode;\n\t\t\tneedsRecompose = true;\n\t\t}\n\t\tif (metadata.opacity !== void 0 && existingNode.metadata.opacity !== metadata.opacity) {\n\t\t\texistingNode.metadata.opacity = metadata.opacity;\n\t\t\texistingNode.opacityUniform.value = metadata.opacity;\n\t\t}\n\t\tif (metadata.renderOrder !== void 0 && existingNode.metadata.renderOrder !== metadata.renderOrder) {\n\t\t\texistingNode.metadata.renderOrder = metadata.renderOrder;\n\t\t\tneedsRecompose = true;\n\t\t}\n\t\tconst newVisible = metadata.visible === false ? false : true;\n\t\tif (existingNode.metadata.visible !== newVisible) {\n\t\t\texistingNode.metadata.visible = newVisible;\n\t\t\tneedsRecompose = true;\n\t\t}\n\t\tif (metadata.id !== void 0) {\n\t\t\tconst sanitizedId = sanitizeId(metadata.id);\n\t\t\tif (existingNode.metadata.id !== sanitizedId) {\n\t\t\t\texistingNode.metadata.id = sanitizedId;\n\t\t\t\tneedsRecompose = true;\n\t\t\t}\n\t\t}\n\t\tif (\"mask\" in metadata && (existingNode.metadata.mask?.source !== metadata.mask?.source || existingNode.metadata.mask?.type !== metadata.mask?.type)) {\n\t\t\texistingNode.metadata.mask = metadata.mask;\n\t\t\tneedsRecompose = true;\n\t\t}\n\t\tif (\"maps\" in metadata && JSON.stringify(existingNode.metadata.maps) !== JSON.stringify(metadata.maps)) {\n\t\t\tconst oldMaps = existingNode.metadata.maps;\n\t\t\tconst newMaps = metadata.maps;\n\t\t\texistingNode.metadata.maps = newMaps;\n\t\t\tupdateMouseListenerRegistration();\n\t\t\tif ((() => {\n\t\t\t\tif (!oldMaps || !newMaps) return true;\n\t\t\t\tconst oldKeys = Object.keys(oldMaps);\n\t\t\t\tconst newKeys = Object.keys(newMaps);\n\t\t\t\tif (oldKeys.length !== newKeys.length || !oldKeys.every((k) => k in newMaps)) return true;\n\t\t\t\tfor (const key of newKeys) {\n\t\t\t\t\tconst oldCfg = oldMaps[key];\n\t\t\t\t\tconst newCfg = newMaps[key];\n\t\t\t\t\tif (oldCfg.type !== newCfg.type) return true;\n\t\t\t\t\tif (newCfg.type === \"map\") {\n\t\t\t\t\t\tconst nc = newCfg;\n\t\t\t\t\t\tconst oc = oldCfg;\n\t\t\t\t\t\tif (oc.source !== nc.source) return true;\n\t\t\t\t\t\tif (oc.channel !== nc.channel) return true;\n\t\t\t\t\t\tif (!existingNode.mapUniforms?.[key]) return true;\n\t\t\t\t\t} else if (newCfg.type === \"mouse\") {\n\t\t\t\t\t\tconst nc = newCfg;\n\t\t\t\t\t\tif (oldCfg.axis !== nc.axis) return true;\n\t\t\t\t\t\tif (!existingNode.mouseDriverState?.[key]) return true;\n\t\t\t\t\t} else if (newCfg.type === \"mouse-position\") {\n\t\t\t\t\t\tif (!existingNode.mouseDriverState?.[key]) return true;\n\t\t\t\t\t} else if (newCfg.type === \"auto-animate\") {\n\t\t\t\t\t\tif (!existingNode.autoAnimateState?.[key]) return true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t})()) {\n\t\t\t\tif (oldMaps && newMaps) {\n\t\t\t\t\tfor (const key of Object.keys(oldMaps)) if (key in newMaps && oldMaps[key].type !== newMaps[key].type) {\n\t\t\t\t\t\tif (existingNode.autoAnimateState) delete existingNode.autoAnimateState[key];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (oldMaps && newMaps && existingNode.mouseDriverState) {\n\t\t\t\t\tfor (const key of Object.keys(oldMaps)) if (key in newMaps && oldMaps[key].type !== newMaps[key].type) delete existingNode.mouseDriverState[key];\n\t\t\t\t}\n\t\t\t\tneedsRecompose = true;\n\t\t\t} else for (const [key, driverCfg] of Object.entries(newMaps)) if (driverCfg.type === \"map\") {\n\t\t\t\tconst mapCfg = driverCfg;\n\t\t\t\tconst cached = existingNode.mapUniforms[key];\n\t\t\t\tif (cached) {\n\t\t\t\t\tcached.inputMin.value = mapCfg.inputMin;\n\t\t\t\t\tcached.inputMax.value = mapCfg.inputMax;\n\t\t\t\t\tcached.outputMin.value = mapCfg.outputMin;\n\t\t\t\t\tcached.outputMax.value = mapCfg.outputMax;\n\t\t\t\t\tcached.curve.value = mapCfg.curve ?? 0;\n\t\t\t\t}\n\t\t\t} else if (driverCfg.type === \"mouse\") {\n\t\t\t\tconst mouseCfg = driverCfg;\n\t\t\t\tconst cached = existingNode.mapUniforms?.[key];\n\t\t\t\tif (cached) {\n\t\t\t\t\tcached.outputMin.value = mouseCfg.outputMin;\n\t\t\t\t\tcached.outputMax.value = mouseCfg.outputMax;\n\t\t\t\t\tcached.curve.value = mouseCfg.curve ?? 0;\n\t\t\t\t}\n\t\t\t} else if (driverCfg.type === \"auto-animate\") {\n\t\t\t\tconst animCfg = driverCfg;\n\t\t\t\tconst cached = existingNode.mapUniforms?.[key];\n\t\t\t\tif (cached) {\n\t\t\t\t\tcached.outputMin.value = animCfg.outputMin;\n\t\t\t\t\tcached.outputMax.value = animCfg.outputMax;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (metadata.transform !== void 0) {\n\t\t\tconst mergedTransform = {\n\t\t\t\toffsetX: metadata.transform.offsetX ?? existingNode.metadata.transform?.offsetX ?? 0,\n\t\t\t\toffsetY: metadata.transform.offsetY ?? existingNode.metadata.transform?.offsetY ?? 0,\n\t\t\t\trotation: metadata.transform.rotation ?? existingNode.metadata.transform?.rotation ?? 0,\n\t\t\t\tscale: metadata.transform.scale ?? existingNode.metadata.transform?.scale ?? 1,\n\t\t\t\tanchorX: metadata.transform.anchorX ?? existingNode.metadata.transform?.anchorX ?? .5,\n\t\t\t\tanchorY: metadata.transform.anchorY ?? existingNode.metadata.transform?.anchorY ?? .5,\n\t\t\t\tedges: metadata.transform.edges ?? existingNode.metadata.transform?.edges ?? \"transparent\"\n\t\t\t};\n\t\t\tconst newTransformState = needsTransformation(mergedTransform);\n\t\t\texistingNode.metadata.transform = mergedTransform;\n\t\t\tif (!existingNode.transformUniforms && mergedTransform) {\n\t\t\t\tconst aspectRatio = currentWidth / Math.max(1, currentHeight);\n\t\t\t\texistingNode.transformUniforms = {\n\t\t\t\t\toffsetX: uniform(mergedTransform.offsetX),\n\t\t\t\t\toffsetY: uniform(mergedTransform.offsetY),\n\t\t\t\t\trotation: uniform(mergedTransform.rotation),\n\t\t\t\t\tscale: uniform(mergedTransform.scale),\n\t\t\t\t\tanchorX: uniform(mergedTransform.anchorX),\n\t\t\t\t\tanchorY: uniform(mergedTransform.anchorY),\n\t\t\t\t\tedges: uniform(mergedTransform.edges === \"stretch\" ? 0 : mergedTransform.edges === \"transparent\" ? 1 : mergedTransform.edges === \"mirror\" ? 2 : 3),\n\t\t\t\t\taspectRatio: uniform(aspectRatio)\n\t\t\t\t};\n\t\t\t} else if (existingNode.transformUniforms) {\n\t\t\t\texistingNode.transformUniforms.offsetX.value = mergedTransform.offsetX;\n\t\t\t\texistingNode.transformUniforms.offsetY.value = mergedTransform.offsetY;\n\t\t\t\texistingNode.transformUniforms.rotation.value = mergedTransform.rotation;\n\t\t\t\texistingNode.transformUniforms.scale.value = mergedTransform.scale;\n\t\t\t\texistingNode.transformUniforms.anchorX.value = mergedTransform.anchorX;\n\t\t\t\texistingNode.transformUniforms.anchorY.value = mergedTransform.anchorY;\n\t\t\t\tconst oldEdgesValue = existingNode.transformUniforms.edges.value;\n\t\t\t\texistingNode.transformUniforms.edges.value = mergedTransform.edges === \"stretch\" ? 0 : mergedTransform.edges === \"transparent\" ? 1 : mergedTransform.edges === \"mirror\" ? 2 : 3;\n\t\t\t\tif (existingNode.transformUniforms.edges.value !== oldEdgesValue) needsRecompose = true;\n\t\t\t}\n\t\t\tif (newTransformState && !existingNode.transformRTTActive) {\n\t\t\t\texistingNode.transformRTTActive = true;\n\t\t\t\tneedsRecompose = true;\n\t\t\t}\n\t\t}\n\t\tif (needsRecompose && material && isInitialized) {\n\t\t\tif (materialUpdateBatchRAF === null) materialUpdateBatchRAF = requestAnimationFrame(() => {\n\t\t\t\tmaterialUpdateBatchRAF = null;\n\t\t\t\tupdateMaterial();\n\t\t\t});\n\t\t} else if (!animationFrameId) renderFrame();\n\t};\n\tconst removeNode = (id) => {\n\t\tif (!nodeRegistry.nodes.has(id)) return;\n\t\tconst nodeInfo = nodeRegistry.nodes.get(id);\n\t\tif (nodeInfo && nodeInfo.cleanupCallbacks.length > 0) for (const callback of nodeInfo.cleanupCallbacks) try {\n\t\t\tcallback();\n\t\t} catch (e) {\n\t\t\tconsole.error(`Error executing cleanup callback for node ${id}:`, e);\n\t\t}\n\t\tconst childNodes = findChildNodes(id);\n\t\tfor (const child of childNodes) removeNode(child.id);\n\t\tif (nodeRegistry.rootId === id) nodeRegistry.rootId = null;\n\t\tif (nodeInfo) {\n\t\t\tconst childrenSet = parentToChildren.get(nodeInfo.parentId);\n\t\t\tif (childrenSet) {\n\t\t\t\tchildrenSet.delete(id);\n\t\t\t\tif (childrenSet.size === 0) parentToChildren.delete(nodeInfo.parentId);\n\t\t\t}\n\t\t}\n\t\tnodeRegistry.nodes.delete(id);\n\t\tactiveBeforeRender.delete(id);\n\t\tactiveAfterRender.delete(id);\n\t\tactiveCompute.delete(id);\n\t\tactiveDrivers.delete(id);\n\t\tupdateMouseListenerRegistration();\n\t\tpendingNodeRemoval = true;\n\t\tif (material && isInitialized) {\n\t\t\tif (materialUpdateBatchRAF === null) materialUpdateBatchRAF = requestAnimationFrame(() => {\n\t\t\t\tmaterialUpdateBatchRAF = null;\n\t\t\t\tupdateMaterial();\n\t\t\t});\n\t\t}\n\t};\n\tconst applyBounceEase = (t) => {\n\t\tconst n1 = 7.5625, d1 = 2.75;\n\t\tif (t < 1 / d1) return n1 * t * t;\n\t\tif (t < 2 / d1) {\n\t\t\tt -= 1.5 / d1;\n\t\t\treturn n1 * t * t + .75;\n\t\t}\n\t\tif (t < 2.5 / d1) {\n\t\t\tt -= 2.25 / d1;\n\t\t\treturn n1 * t * t + .9375;\n\t\t}\n\t\tt -= 2.625 / d1;\n\t\treturn n1 * t * t + .984375;\n\t};\n\tconst applyEasing = (t, easing) => {\n\t\tswitch (easing) {\n\t\t\tcase \"linear\": return t;\n\t\t\tcase \"quad\": return t < .5 ? 2 * t * t : 1 - Math.pow(-2 * t + 2, 2) / 2;\n\t\t\tcase \"expo\":\n\t\t\t\tif (t === 0) return 0;\n\t\t\t\tif (t === 1) return 1;\n\t\t\t\treturn t < .5 ? Math.pow(2, 20 * t - 10) / 2 : (2 - Math.pow(2, -20 * t + 10)) / 2;\n\t\t\tcase \"bounce\": return applyBounceEase(t);\n\t\t\tcase \"sine\":\n\t\t\tdefault: return (1 - Math.cos(Math.PI * t)) / 2;\n\t\t}\n\t};\n\tconst updateMouseDrivers = () => {\n\t\tconst deltaTime = frameParams.deltaTime;\n\t\tglobalElapsedTime += deltaTime;\n\t\tfor (const id of activeDrivers) {\n\t\t\tconst nodeInfo = nodeRegistry.nodes.get(id);\n\t\t\tif (!nodeInfo) continue;\n\t\t\tconst maps = nodeInfo.metadata.maps;\n\t\t\tif (!maps) continue;\n\t\t\tconst mouseState = nodeInfo.mouseDriverState;\n\t\t\tfor (const propName in mouseState) {\n\t\t\t\tconst state = mouseState[propName];\n\t\t\t\tconst driverConfig = maps[propName];\n\t\t\t\tif (!driverConfig) continue;\n\t\t\t\tif (driverConfig.type === \"mouse-position\") {\n\t\t\t\t\tconst smoothing = driverConfig.smoothing ?? 0;\n\t\t\t\t\tconst momentum = driverConfig.momentum ?? 0;\n\t\t\t\t\tconst trackX = driverConfig.x === void 0 || driverConfig.x === \"mouse\";\n\t\t\t\t\tconst trackY = driverConfig.y === void 0 || driverConfig.y === \"mouse\";\n\t\t\t\t\tlet finalX;\n\t\t\t\t\tlet finalY;\n\t\t\t\t\tif (trackX) {\n\t\t\t\t\t\tconst [nx, vx] = applySpring(state.currentX, state.velocityX, pointerX, smoothing, momentum, deltaTime);\n\t\t\t\t\t\tstate.currentX = nx;\n\t\t\t\t\t\tstate.velocityX = vx;\n\t\t\t\t\t\tfinalX = nx;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tfinalX = driverConfig.x;\n\t\t\t\t\t\tstate.velocityX = 0;\n\t\t\t\t\t}\n\t\t\t\t\tif (trackY) {\n\t\t\t\t\t\tconst [ny, vy] = applySpring(state.currentY, state.velocityY, pointerY, smoothing, momentum, deltaTime);\n\t\t\t\t\t\tstate.currentY = ny;\n\t\t\t\t\t\tstate.velocityY = vy;\n\t\t\t\t\t\tfinalY = ny;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tfinalY = driverConfig.y;\n\t\t\t\t\t\tstate.velocityY = 0;\n\t\t\t\t\t}\n\t\t\t\t\tconst reach = driverConfig.reach ?? 1;\n\t\t\t\t\tconst originX = driverConfig.originX ?? .5;\n\t\t\t\t\tconst originY = driverConfig.originY ?? .5;\n\t\t\t\t\tconst xSign = driverConfig.invertX ? -1 : 1;\n\t\t\t\t\tconst ySign = driverConfig.invertY ? -1 : 1;\n\t\t\t\t\tconst scaledX = originX + xSign * (finalX - originX) * reach;\n\t\t\t\t\tconst scaledY = originY + ySign * (finalY - originY) * reach;\n\t\t\t\t\tconst gpuX = scaledX;\n\t\t\t\t\tconst gpuY = 1 - scaledY;\n\t\t\t\t\tstate.smoothedUniform.value.set(gpuX, gpuY);\n\t\t\t\t} else if (driverConfig.type === \"mouse\") {\n\t\t\t\t\tconst smoothing = driverConfig.smoothing ?? 0;\n\t\t\t\t\tconst momentum = driverConfig.momentum ?? 0;\n\t\t\t\t\tconst target = driverConfig.axis === \"x\" ? pointerX : pointerY;\n\t\t\t\t\tconst [nx, vx] = applySpring(state.currentX, state.velocityX, target, smoothing, momentum, deltaTime);\n\t\t\t\t\tstate.currentX = nx;\n\t\t\t\t\tstate.velocityX = vx;\n\t\t\t\t\tstate.smoothedUniform.value = Math.max(.001, nx);\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst animState = nodeInfo.autoAnimateState;\n\t\t\tif (!animState) continue;\n\t\t\tfor (const propName in animState) {\n\t\t\t\tconst state = animState[propName];\n\t\t\t\tconst driverConfig = maps[propName];\n\t\t\t\tif (!driverConfig || driverConfig.type !== \"auto-animate\") continue;\n\t\t\t\tconst globalT = globalElapsedTime * (driverConfig.speed ?? 1) * .2;\n\t\t\t\tlet phase;\n\t\t\t\tif (driverConfig.mode === \"loop\") phase = applyEasing((globalT % 1 + 1) % 1, driverConfig.easing ?? driverConfig.waveform ?? \"sine\");\n\t\t\t\telse {\n\t\t\t\t\tconst t01 = (globalT % 1 + 1) % 1;\n\t\t\t\t\tphase = applyEasing(t01 < .5 ? t01 * 2 : (1 - t01) * 2, driverConfig.easing ?? driverConfig.waveform ?? \"sine\");\n\t\t\t\t}\n\t\t\t\tconst { outputMin, outputMax } = driverConfig;\n\t\t\t\tconst newValue = outputMin + phase * (outputMax - outputMin);\n\t\t\t\tconst uniformDefinition = nodeInfo.uniforms?.[propName];\n\t\t\t\tif (uniformDefinition?.compileTimeWhen && material && isInitialized && currentWidth > 0 && currentHeight > 0) {\n\t\t\t\t\tconst prev = uniformDefinition._lastCompiledValue;\n\t\t\t\t\tif (uniformDefinition.compileTimeWhen(prev, newValue)) {\n\t\t\t\t\t\tuniformDefinition._lastCompiledValue = newValue;\n\t\t\t\t\t\tif (materialUpdateBatchRAF === null) materialUpdateBatchRAF = requestAnimationFrame(() => {\n\t\t\t\t\t\t\tmaterialUpdateBatchRAF = null;\n\t\t\t\t\t\t\tupdateMaterial();\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tstate.smoothedUniform.value = newValue;\n\t\t\t}\n\t\t}\n\t};\n\tconst executeComputeDispatches = () => {\n\t\tfor (const id of activeCompute) {\n\t\t\tconst nodeInfo = nodeRegistry.nodes.get(id);\n\t\t\tif (!nodeInfo || !nodeInfo.computeGetNodes) continue;\n\t\t\ttry {\n\t\t\t\tconst nodes = nodeInfo.computeGetNodes(frameParams);\n\t\t\t\tif (nodes) for (const node of nodes) renderer.compute(node);\n\t\t\t} catch (e) {\n\t\t\t\tconsole.error(`Error dispatching compute for node ${nodeInfo.id}:`, e);\n\t\t\t}\n\t\t}\n\t};\n\tconst executeBeforeRenderCallbacks = () => {\n\t\tfor (const id of activeBeforeRender) {\n\t\t\tconst nodeInfo = nodeRegistry.nodes.get(id);\n\t\t\tif (!nodeInfo) continue;\n\t\t\tfor (const callback of nodeInfo.beforeRenderCallbacks) try {\n\t\t\t\tcallback(frameParams);\n\t\t\t} catch (e) {\n\t\t\t\tconsole.error(`Error executing before render callback for node ${nodeInfo.id}:`, e);\n\t\t\t}\n\t\t}\n\t};\n\tconst executeAfterRenderCallbacks = () => {\n\t\tfor (const id of activeAfterRender) {\n\t\t\tconst nodeInfo = nodeRegistry.nodes.get(id);\n\t\t\tif (!nodeInfo) continue;\n\t\t\tfor (const callback of nodeInfo.afterRenderCallbacks) try {\n\t\t\t\tcallback(frameParams);\n\t\t\t} catch (e) {\n\t\t\t\tconsole.error(`Error executing after render callback for node ${nodeInfo.id}:`, e);\n\t\t\t}\n\t\t}\n\t};\n\tconst renderAndWait = async () => {\n\t\tif (!canRender()) throw new Error(\"Renderer is not ready\");\n\t\tconst wasAnimating = animationFrameId !== null;\n\t\tif (wasAnimating) stopAnimation();\n\t\tlastRenderTime = 0;\n\t\trenderFrame();\n\t\tif (renderer instanceof WebGPURenderer) try {\n\t\t\tconst backend = renderer.backend;\n\t\t\tif (backend?.device) await backend.device.queue.onSubmittedWorkDone();\n\t\t} catch (e) {\n\t\t\tawait new Promise((resolve) => setTimeout(resolve, 16));\n\t\t}\n\t\tif (wasAnimating) startAnimation();\n\t};\n\tconst renderFrameInternal = (overrideDeltaTime) => {\n\t\tif (pendingNodeRemoval) return;\n\t\tif (!canRender()) return;\n\t\tconst frameStartTime = enablePerformanceTracking ? performance.now() : 0;\n\t\tconst currentTime = frameStartTime || performance.now();\n\t\tlet cappedDeltaTime;\n\t\tif (overrideDeltaTime !== void 0) cappedDeltaTime = overrideDeltaTime;\n\t\telse {\n\t\t\tconst deltaTime = lastRenderTime > 0 ? (currentTime - lastRenderTime) / 1e3 : .016;\n\t\t\tconst OFF_SCREEN_FPS_INTERVAL = 1e3;\n\t\t\tconst MIN_FRAME_INTERVAL = 1e3 / 60 - 1;\n\t\t\tif (lastRenderTime > 0) {\n\t\t\t\tconst timeSinceLastRender = currentTime - lastRenderTime;\n\t\t\t\tif (!isVisible && !forceFullFrameRate && timeSinceLastRender < OFF_SCREEN_FPS_INTERVAL) return;\n\t\t\t\tif ((isVisible || forceFullFrameRate) && timeSinceLastRender < MIN_FRAME_INTERVAL) return;\n\t\t\t}\n\t\t\tcappedDeltaTime = Math.min(deltaTime, .1);\n\t\t}\n\t\tlastRenderTime = currentTime;\n\t\tif (enablePerformanceTracking) performance.mark(\"shader-cpu-start\");\n\t\tframeParams.deltaTime = cappedDeltaTime;\n\t\tframeParams.pointer.x = pointerX;\n\t\tframeParams.pointer.y = pointerY;\n\t\tframeParams.pointerActive = pointerActive;\n\t\tframeParams.dimensions.width = currentWidth;\n\t\tframeParams.dimensions.height = currentHeight;\n\t\tupdateMouseDrivers();\n\t\texecuteComputeDispatches();\n\t\texecuteBeforeRenderCallbacks();\n\t\ttry {\n\t\t\tif (isUpdatingMaterial) return;\n\t\t\tif (enablePerformanceTracking) performance.mark(\"shader-gpu-start\");\n\t\t\trenderer.render(scene, camera);\n\t\t\tif (firstRenderPending && !hasEmittedReady) {\n\t\t\t\thasEmittedReady = true;\n\t\t\t\tfirstRenderPending = false;\n\t\t\t\tif (onReadyCallback) queueMicrotask(onReadyCallback);\n\t\t\t}\n\t\t\texecuteAfterRenderCallbacks();\n\t\t\tif (enablePerformanceTracking) {\n\t\t\t\tperformance.mark(\"shader-gpu-end\");\n\t\t\t\tlet recordedTrueGpuTime = false;\n\t\t\t\tif (renderer instanceof WebGPURenderer) try {\n\t\t\t\t\tconst backend = renderer.backend;\n\t\t\t\t\tif (backend && backend.get && backend.get(renderer)) {\n\t\t\t\t\t\tconst renderContext = backend.get(renderer);\n\t\t\t\t\t\tif (renderContext?.timestampQuery) {\n\t\t\t\t\t\t\tconst gpuTime = renderContext.timestampQuery.getResult();\n\t\t\t\t\t\t\tif (gpuTime !== null && gpuTime !== void 0) {\n\t\t\t\t\t\t\t\tperformanceTracker.recordGpuTime(gpuTime / 1e6);\n\t\t\t\t\t\t\t\trecordedTrueGpuTime = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {}\n\t\t\t\ttry {\n\t\t\t\t\tif (!recordedTrueGpuTime) {\n\t\t\t\t\t\tperformance.measure(\"shader-gpu-time\", \"shader-gpu-start\", \"shader-gpu-end\");\n\t\t\t\t\t\tconst gpuMeasure = performance.getEntriesByName(\"shader-gpu-time\")[0];\n\t\t\t\t\t\tif (gpuMeasure) performanceTracker.recordGpuTime(gpuMeasure.duration);\n\t\t\t\t\t\tperformance.clearMeasures(\"shader-gpu-time\");\n\t\t\t\t\t}\n\t\t\t\t\tperformance.clearMarks(\"shader-gpu-start\");\n\t\t\t\t\tperformance.clearMarks(\"shader-gpu-end\");\n\t\t\t\t} catch (e) {}\n\t\t\t}\n\t\t\tif (enablePerformanceTracking) {\n\t\t\t\tperformance.mark(\"shader-cpu-end\");\n\t\t\t\ttry {\n\t\t\t\t\tperformance.measure(\"shader-cpu-time\", \"shader-cpu-start\", \"shader-cpu-end\");\n\t\t\t\t\tconst cpuMeasure = performance.getEntriesByName(\"shader-cpu-time\")[0];\n\t\t\t\t\tif (cpuMeasure) performanceTracker.recordCpuTime(cpuMeasure.duration);\n\t\t\t\t\tperformance.clearMarks(\"shader-cpu-start\");\n\t\t\t\t\tperformance.clearMarks(\"shader-cpu-end\");\n\t\t\t\t\tperformance.clearMeasures(\"shader-cpu-time\");\n\t\t\t\t} catch (e) {}\n\t\t\t\tconst frameTime = performance.now() - frameStartTime;\n\t\t\t\tperformanceTracker.recordFrame(frameTime);\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tconsole.error(\"Render frame error:\", error);\n\t\t}\n\t};\n\tconst renderFrame = () => renderFrameInternal(void 0);\n\tconst renderSyntheticFrame = async (deltaSeconds) => {\n\t\trenderFrameInternal(deltaSeconds);\n\t\tif (renderer instanceof WebGPURenderer) {\n\t\t\tconst backend = renderer.backend;\n\t\t\tif (backend?.device) await backend.device.queue.onSubmittedWorkDone();\n\t\t}\n\t};\n\tconst updatePerformanceNodeCounts = () => {\n\t\tconst nodeCount = Math.max(0, nodeRegistry.nodes.size - 1);\n\t\tconst rttNodeCount = actualRTTOperations;\n\t\tperformanceTracker.updateNodeCounts(nodeCount, rttNodeCount);\n\t};\n\tconst getPerformanceStats = () => {\n\t\tupdatePerformanceNodeCounts();\n\t\tconst rendererInfo = renderer?.info;\n\t\treturn performanceTracker.getStats(rendererInfo);\n\t};\n\tconst startAnimation = () => {\n\t\tif (animationFrameId || !shouldAnimate) return;\n\t\tperformanceTracker.setRendering(true);\n\t\tif (renderer && \"setAnimationLoop\" in renderer && typeof renderer.setAnimationLoop === \"function\") {\n\t\t\trenderer.setAnimationLoop(() => {\n\t\t\t\trenderFrame();\n\t\t\t});\n\t\t\tanimationFrameId = 1;\n\t\t} else {\n\t\t\tconst animate = () => {\n\t\t\t\trenderFrame();\n\t\t\t\tanimationFrameId = requestAnimationFrame(animate);\n\t\t\t};\n\t\t\tanimate();\n\t\t}\n\t};\n\tconst stopAnimation = () => {\n\t\tif (animationFrameId) {\n\t\t\tif (renderer && \"setAnimationLoop\" in renderer && typeof renderer.setAnimationLoop === \"function\") renderer.setAnimationLoop(null);\n\t\t\telse cancelAnimationFrame(animationFrameId);\n\t\t\tanimationFrameId = null;\n\t\t}\n\t\tperformanceTracker.setRendering(false);\n\t};\n\tlet mouseListenersNeeded = false;\n\tconst updateMouseListenerRegistration = () => {\n\t\tlet needsMouse = false;\n\t\tfor (const nodeInfo of nodeRegistry.nodes.values()) {\n\t\t\tif (nodeInfo.usesPointer) {\n\t\t\t\tneedsMouse = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (!nodeInfo.metadata.maps) continue;\n\t\t\tfor (const driver of Object.values(nodeInfo.metadata.maps)) if (driver && typeof driver === \"object\" && \"type\" in driver) {\n\t\t\t\tconst t = driver.type;\n\t\t\t\tif (t === \"mouse\" || t === \"mouse-position\") {\n\t\t\t\t\tneedsMouse = true;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (needsMouse) break;\n\t\t}\n\t\tif (needsMouse && !mouseListenersNeeded) {\n\t\t\tmouseListenersNeeded = true;\n\t\t\tif (!globalEventUnregister && canvasElement) {\n\t\t\t\tglobalEventUnregister = globalEventManager.register({\n\t\t\t\t\tonMouseMove: globalMouseMoveHandler,\n\t\t\t\t\tonTouchMove: globalTouchMoveHandler,\n\t\t\t\t\tonMouseUp: globalMouseUpHandler,\n\t\t\t\t\tonTouchEnd: globalTouchEndHandler\n\t\t\t\t});\n\t\t\t\tcanvasElement.addEventListener(\"mousedown\", canvasMouseDownHandler);\n\t\t\t\tcanvasElement.addEventListener(\"touchstart\", canvasTouchStartHandler);\n\t\t\t}\n\t\t} else if (!needsMouse && mouseListenersNeeded) {\n\t\t\tmouseListenersNeeded = false;\n\t\t\tif (globalEventUnregister) {\n\t\t\t\tglobalEventUnregister();\n\t\t\t\tglobalEventUnregister = null;\n\t\t\t}\n\t\t\tif (canvasElement) {\n\t\t\t\tcanvasElement.removeEventListener(\"mousedown\", canvasMouseDownHandler);\n\t\t\t\tcanvasElement.removeEventListener(\"touchstart\", canvasTouchStartHandler);\n\t\t\t}\n\t\t}\n\t};\n\tconst updatePointerCoords = (event) => {\n\t\tif (!canvasElement) return;\n\t\tcachedCanvasRect = canvasElement.getBoundingClientRect();\n\t\tlet clientX;\n\t\tlet clientY;\n\t\tif (\"touches\" in event) {\n\t\t\tif (event.touches.length === 0) return;\n\t\t\tclientX = event.touches[0].clientX;\n\t\t\tclientY = event.touches[0].clientY;\n\t\t} else {\n\t\t\tclientX = event.clientX;\n\t\t\tclientY = event.clientY;\n\t\t}\n\t\tconst x = (clientX - cachedCanvasRect.left) / cachedCanvasRect.width;\n\t\tconst y = (clientY - cachedCanvasRect.top) / cachedCanvasRect.height;\n\t\tpointerX = x;\n\t\tpointerY = y;\n\t};\n\tconst globalMouseMoveHandler = (event) => {\n\t\tif (!isInitialized || !canvasElement) return;\n\t\tupdatePointerCoords(event);\n\t};\n\tconst globalTouchMoveHandler = (event) => {\n\t\tif (!isInitialized || !canvasElement) return;\n\t\tupdatePointerCoords(event);\n\t};\n\tconst globalMouseUpHandler = () => {\n\t\tif (!isInitialized) return;\n\t\tpointerActive = false;\n\t\tif (!animationFrameId) renderFrame();\n\t};\n\tconst globalTouchEndHandler = () => {\n\t\tif (!isInitialized) return;\n\t\tpointerActive = false;\n\t\tif (!animationFrameId) renderFrame();\n\t};\n\tconst canvasMouseDownHandler = () => {\n\t\tpointerActive = true;\n\t\tif (!animationFrameId) renderFrame();\n\t};\n\tconst canvasTouchStartHandler = () => {\n\t\tpointerActive = true;\n\t\tif (!animationFrameId) renderFrame();\n\t};\n\tconst processQueuedRegistrations = () => {\n\t\tif (pendingRegistrationQueue.length === 0) return;\n\t\tconst queue = [...pendingRegistrationQueue];\n\t\tpendingRegistrationQueue = [];\n\t\tfor (const { id, fragmentNodeFunc, parentId, metadata, uniforms, componentDefinition, domCanvas } of queue) if (fragmentNodeFunc) registerNode(id, fragmentNodeFunc, parentId, metadata, uniforms, componentDefinition, domCanvas);\n\t};\n\tconst initialize = async ({ canvas, resizeTarget, enablePerformanceTracking: enableTracking = true, colorSpace = \"p3-linear\", toneMapping = \"linear\", context, gpu, forceFullFrameRate: forceFullFps = false, observeElement: shouldObserveElement = true }) => {\n\t\tif (isInitialized || isInitializing) return;\n\t\tenablePerformanceTracking = enableTracking;\n\t\tforceFullFrameRate = forceFullFps;\n\t\trendererColorSpace = colorSpace;\n\t\tsetColorSpaceMode(colorSpace);\n\t\tisInitializing = true;\n\t\tinitializationAbortController = new AbortController();\n\t\tconst localAbortController = initializationAbortController;\n\t\ttry {\n\t\t\tcanvasElement = canvas;\n\t\t\tscene = new Scene();\n\t\t\tscene.background = null;\n\t\t\tcamera = new OrthographicCamera(-1, 1, 1, -1, .1, 10);\n\t\t\tcamera.position.z = 1;\n\t\t\tcamera.lookAt(0, 0, 0);\n\t\t\tunloadHandler = () => {\n\t\t\t\tcleanup();\n\t\t\t};\n\t\t\twindow.addEventListener(\"beforeunload\", unloadHandler);\n\t\t\twindowResizeHandler = () => {\n\t\t\t\tif (lastRequestedWidth > 0 && lastRequestedHeight > 0) {\n\t\t\t\t\tconst rawW = lastRequestedWidth;\n\t\t\t\t\tconst rawH = lastRequestedHeight;\n\t\t\t\t\tlastRequestedWidth = 0;\n\t\t\t\t\tlastRequestedHeight = 0;\n\t\t\t\t\tupdateRendererDimensions(rawW, rawH);\n\t\t\t\t}\n\t\t\t};\n\t\t\twindow.addEventListener(\"resize\", windowResizeHandler, { passive: true });\n\t\t\tif (localAbortController.signal.aborted) return;\n\t\t\tif (context) {\n\t\t\t\tconsole.log(\"[Shaders] Using provided WebGL context\");\n\t\t\t\trenderer = new WebGLRenderer({\n\t\t\t\t\tcanvas,\n\t\t\t\t\tcontext,\n\t\t\t\t\tantialias: true,\n\t\t\t\t\talpha: true,\n\t\t\t\t\tdepth: false,\n\t\t\t\t\tstencil: true,\n\t\t\t\t\tpowerPreference: \"high-performance\"\n\t\t\t\t});\n\t\t\t\tconst wglLost = (e) => {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\tfireDeviceLost(\"webglcontextlost\");\n\t\t\t\t};\n\t\t\t\tcanvas.addEventListener(\"webglcontextlost\", wglLost, false);\n\t\t\t\tcanvasContextLossUnregister = () => {\n\t\t\t\t\tcanvas.removeEventListener(\"webglcontextlost\", wglLost, false);\n\t\t\t\t};\n\t\t\t} else try {\n\t\t\t\tconst rendererOptions = {\n\t\t\t\t\tcanvas,\n\t\t\t\t\tantialias: true,\n\t\t\t\t\talpha: true,\n\t\t\t\t\tdepth: false,\n\t\t\t\t\tpowerPreference: \"high-performance\"\n\t\t\t\t};\n\t\t\t\tif (gpu?.device) rendererOptions.device = gpu.device;\n\t\t\t\trenderer = new WebGPURenderer(rendererOptions);\n\t\t\t\trendererInitSettled = false;\n\t\t\t\trendererInitPromise = renderer.init();\n\t\t\t\trendererInitPromise.finally(() => {\n\t\t\t\t\trendererInitSettled = true;\n\t\t\t\t}).catch(() => {});\n\t\t\t\tawait rendererInitPromise;\n\t\t\t\tif (localAbortController.signal.aborted) return;\n\t\t\t\ttry {\n\t\t\t\t\tconst device = renderer.backend?.device;\n\t\t\t\t\tif (device?.lost && typeof device.lost.then === \"function\") device.lost.then((info) => {\n\t\t\t\t\t\tif (info?.reason === \"destroyed\") return;\n\t\t\t\t\t\tfireDeviceLost(info?.message || info?.reason || \"unknown\");\n\t\t\t\t\t}).catch(() => {});\n\t\t\t\t} catch (hookErr) {\n\t\t\t\t\tconsole.warn(\"[Shaders] could not attach WebGPU device.lost handler\", hookErr);\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\tif (localAbortController.signal.aborted) return;\n\t\t\t\tconsole.warn(\"[Shaders] WebGPU initialization failed, falling back to WebGL:\", e);\n\t\t\t\ttry {\n\t\t\t\t\tconst webglOptions = {\n\t\t\t\t\t\tcanvas,\n\t\t\t\t\t\tantialias: true,\n\t\t\t\t\t\talpha: true,\n\t\t\t\t\t\tdepth: false,\n\t\t\t\t\t\tstencil: true,\n\t\t\t\t\t\tpowerPreference: \"high-performance\"\n\t\t\t\t\t};\n\t\t\t\t\tif (context) webglOptions.context = context;\n\t\t\t\t\trenderer = new WebGLRenderer(webglOptions);\n\t\t\t\t\tif (localAbortController.signal.aborted) return;\n\t\t\t\t\tconst wglLost = (e$1) => {\n\t\t\t\t\t\te$1.preventDefault();\n\t\t\t\t\t\tfireDeviceLost(\"webglcontextlost\");\n\t\t\t\t\t};\n\t\t\t\t\tcanvas.addEventListener(\"webglcontextlost\", wglLost, false);\n\t\t\t\t\tcanvasContextLossUnregister = () => {\n\t\t\t\t\t\tcanvas.removeEventListener(\"webglcontextlost\", wglLost, false);\n\t\t\t\t\t};\n\t\t\t\t} catch (webglError) {\n\t\t\t\t\tif (localAbortController.signal.aborted) return;\n\t\t\t\t\tconsole.error(\"[Shaders] Both WebGPU and WebGL initialization failed:\", webglError);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (localAbortController.signal.aborted) return;\n\t\t\trenderer.setPixelRatio(Math.min(window.devicePixelRatio, 2));\n\t\t\trenderer.outputColorSpace = SRGBColorSpace;\n\t\t\tsetToneMapping(toneMapping);\n\t\t\tmaterial = new MeshBasicNodeMaterial({ transparent: true });\n\t\t\tmaterial.fragmentNode = vec4(0, 0, 0, 0);\n\t\t\tmesh = new Mesh(new PlaneGeometry(2, 2), material);\n\t\t\tscene.add(mesh);\n\t\t\tif (shouldObserveElement) {\n\t\t\t\tconst elementToObserve = resizeTarget ?? canvas.parentElement;\n\t\t\t\tif (elementToObserve) {\n\t\t\t\t\tresizeObserver = new ResizeObserver(handleResize);\n\t\t\t\t\tresizeObserver.observe(elementToObserve);\n\t\t\t\t} else console.warn(\"[Shaders] No element available for resize observation — use resize() manually\");\n\t\t\t\tintersectionObserver = new IntersectionObserver(handleVisibilityChange, { threshold: 0 });\n\t\t\t\tintersectionObserver.observe(canvas);\n\t\t\t}\n\t\t\tconst rect = canvas.getBoundingClientRect();\n\t\t\tcachedCanvasRect = rect;\n\t\t\tisVisible = !shouldObserveElement || rect.width > 0 && rect.height > 0 && rect.top < window.innerHeight && rect.bottom > 0 && rect.left < window.innerWidth && rect.right > 0;\n\t\t\tshouldAnimate = true;\n\t\t\tconst rawWidth = rect.width > 0 ? rect.width : canvas.width;\n\t\t\tconst rawHeight = rect.height > 0 ? rect.height : canvas.height;\n\t\t\tconst roundedRawWidth = Math.round(rawWidth);\n\t\t\tconst roundedRawHeight = Math.round(rawHeight);\n\t\t\tif (roundedRawWidth > 0 && roundedRawHeight > 0) {\n\t\t\t\tlastRequestedWidth = roundedRawWidth;\n\t\t\t\tlastRequestedHeight = roundedRawHeight;\n\t\t\t\tconst { width: clampedWidth, height: clampedHeight } = clampToTextureCap(roundedRawWidth, roundedRawHeight);\n\t\t\t\tcurrentWidth = clampedWidth;\n\t\t\t\tcurrentHeight = clampedHeight;\n\t\t\t\thasInitialDimensions = true;\n\t\t\t\trenderer.setSize(clampedWidth, clampedHeight, false);\n\t\t\t\tconst aspectRatio = clampedWidth / clampedHeight;\n\t\t\t\tconst frustumHeight = 2;\n\t\t\t\tconst frustumWidth = frustumHeight * aspectRatio;\n\t\t\t\tcamera.left = -frustumWidth / 2;\n\t\t\t\tcamera.right = frustumWidth / 2;\n\t\t\t\tcamera.top = frustumHeight / 2;\n\t\t\t\tcamera.bottom = -frustumHeight / 2;\n\t\t\t\tcamera.updateProjectionMatrix();\n\t\t\t\tmesh.scale.set(frustumWidth, frustumHeight, 1);\n\t\t\t\trenderFrame();\n\t\t\t} else hasInitialDimensions = false;\n\t\t\tif (shouldAnimate) startAnimation();\n\t\t\tif (!localAbortController.signal.aborted) {\n\t\t\t\ttry {\n\t\t\t\t\tif (renderer.backend?.isWebGPUBackend === true) {\n\t\t\t\t\t\tconst lim = (renderer.backend?.device)?.limits?.maxTextureDimension2D;\n\t\t\t\t\t\tif (typeof lim === \"number\" && lim > 0) cachedMaxTextureDim = lim;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconst lim = renderer.capabilities?.maxTextureSize;\n\t\t\t\t\t\tif (typeof lim === \"number\" && lim > 0) cachedMaxTextureDim = lim;\n\t\t\t\t\t}\n\t\t\t\t} catch {}\n\t\t\t\tif (lastRequestedWidth > 0 && lastRequestedHeight > 0) {\n\t\t\t\t\tconst rawW = lastRequestedWidth;\n\t\t\t\t\tconst rawH = lastRequestedHeight;\n\t\t\t\t\tlastRequestedWidth = 0;\n\t\t\t\t\tlastRequestedHeight = 0;\n\t\t\t\t\tupdateRendererDimensions(rawW, rawH);\n\t\t\t\t}\n\t\t\t\tisInitialized = true;\n\t\t\t\tisRendererReady = true;\n\t\t\t\tprocessQueuedRegistrations();\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tconsole.error(\"[Shaders] Initialization error:\", error);\n\t\t} finally {\n\t\t\tisInitializing = false;\n\t\t\tif (initializationAbortController === localAbortController) initializationAbortController = null;\n\t\t}\n\t};\n\tconst cleanup = () => {\n\t\tif (initializationAbortController) initializationAbortController.abort();\n\t\tif (resizeObserver) {\n\t\t\tresizeObserver.disconnect();\n\t\t\tresizeObserver = null;\n\t\t}\n\t\tif (intersectionObserver) {\n\t\t\tintersectionObserver.disconnect();\n\t\t\tintersectionObserver = null;\n\t\t}\n\t\tif (globalEventUnregister) {\n\t\t\tglobalEventUnregister();\n\t\t\tglobalEventUnregister = null;\n\t\t}\n\t\tif (canvasContextLossUnregister) {\n\t\t\tcanvasContextLossUnregister();\n\t\t\tcanvasContextLossUnregister = null;\n\t\t}\n\t\tif (canvasElement) {\n\t\t\tcanvasElement.removeEventListener(\"mousedown\", canvasMouseDownHandler);\n\t\t\tcanvasElement.removeEventListener(\"touchstart\", canvasTouchStartHandler);\n\t\t}\n\t\tif (unloadHandler) {\n\t\t\twindow.removeEventListener(\"beforeunload\", unloadHandler);\n\t\t\tunloadHandler = null;\n\t\t}\n\t\tif (windowResizeHandler) {\n\t\t\twindow.removeEventListener(\"resize\", windowResizeHandler);\n\t\t\twindowResizeHandler = null;\n\t\t}\n\t\tstopAnimation();\n\t\tdisposePreviousTextures();\n\t\tcurrentTextures.forEach((texture$1) => {\n\t\t\ttry {\n\t\t\t\tif (texture$1?.renderTarget?.dispose) texture$1.renderTarget.dispose();\n\t\t\t} catch (e) {}\n\t\t});\n\t\tcurrentTextures.clear();\n\t\tnodeRegistry.nodes.clear();\n\t\tnodeRegistry.rootId = null;\n\t\tnodeRegistry.idToNodeId.clear();\n\t\tparentToChildren.clear();\n\t\tactiveBeforeRender.clear();\n\t\tactiveAfterRender.clear();\n\t\tactiveCompute.clear();\n\t\tactiveDrivers.clear();\n\t\tpendingRegistrationQueue = [];\n\t\tisRendererReady = false;\n\t\tif (materialUpdateBatchRAF !== null) {\n\t\t\tcancelAnimationFrame(materialUpdateBatchRAF);\n\t\t\tmaterialUpdateBatchRAF = null;\n\t\t}\n\t\tpendingResize = null;\n\t\tisResizeScheduled = false;\n\t\tif (mesh) {\n\t\t\tif (scene) scene.remove(mesh);\n\t\t\ttry {\n\t\t\t\tif (mesh.geometry && typeof mesh.geometry.dispose === \"function\") mesh.geometry.dispose();\n\t\t\t} catch (e) {}\n\t\t\ttry {\n\t\t\t\tif (mesh.material instanceof Material && typeof mesh.material.dispose === \"function\") mesh.material.dispose();\n\t\t\t} catch (e) {}\n\t\t}\n\t\tconst disposeRenderer = (r) => {\n\t\t\ttry {\n\t\t\t\tif (typeof r.forceContextLoss === \"function\") r.forceContextLoss();\n\t\t\t} catch (e) {}\n\t\t\tif (typeof r.dispose === \"function\") try {\n\t\t\t\tr.dispose();\n\t\t\t} catch (e) {}\n\t\t};\n\t\tif (renderer) {\n\t\t\tconst rendererToDispose = renderer;\n\t\t\tconst pendingInit = rendererInitPromise;\n\t\t\tif (pendingInit && !rendererInitSettled) pendingInit.finally(() => disposeRenderer(rendererToDispose)).catch(() => {});\n\t\t\telse disposeRenderer(rendererToDispose);\n\t\t}\n\t\trendererInitPromise = null;\n\t\trendererInitSettled = false;\n\t\tcanvasElement = null;\n\t\trenderer = null;\n\t\tcamera = null;\n\t\tscene = null;\n\t\tmesh = null;\n\t\tmaterial = null;\n\t\tisInitialized = false;\n\t\tisInitializing = false;\n\t\thasInitialDimensions = false;\n\t\tinitializationAbortController = null;\n\t\tcurrentWidth = 0;\n\t\tcurrentHeight = 0;\n\t\tisVisible = false;\n\t\tshouldAnimate = true;\n\t\tpointerX = .5;\n\t\tpointerY = .5;\n\t\tpointerActive = false;\n\t\tpendingNodeRemoval = false;\n\t\tonReadyCallback = null;\n\t\thasEmittedReady = false;\n\t\tfirstRenderPending = false;\n\t\tonDeviceLostCallback = null;\n\t\tdeviceLostFired = false;\n\t};\n\tconst getRendererType = () => {\n\t\tif (!renderer) return null;\n\t\treturn renderer instanceof WebGPURenderer ? \"webgpu\" : \"webgl\";\n\t};\n\treturn {\n\t\tinitialize,\n\t\tcleanup,\n\t\tregisterNode,\n\t\tremoveNode,\n\t\tupdateUniformValue: updateUniformValue$1,\n\t\tupdateNodeMetadata,\n\t\tisInitialized: () => isInitialized,\n\t\tresize: (width, height) => {\n\t\t\tif (!renderer || !camera || !mesh) return;\n\t\t\tupdateRendererDimensions(width, height);\n\t\t},\n\t\tstartAnimation,\n\t\tstopAnimation,\n\t\trenderAndWait,\n\t\trenderSyntheticFrame,\n\t\tgetPerformanceStats,\n\t\tgetNodeRegistry: () => ({ nodes: new Map(nodeRegistry.nodes) }),\n\t\tgetRendererType,\n\t\tgetInternalRenderer: () => renderer ?? null,\n\t\tsetForceFullFrameRate: (enabled) => {\n\t\t\tconst previous = forceFullFrameRate;\n\t\t\tforceFullFrameRate = enabled;\n\t\t\treturn previous;\n\t\t},\n\t\tsetOnReady: (callback) => {\n\t\t\tonReadyCallback = callback;\n\t\t},\n\t\tsetOnDeviceLost: (callback) => {\n\t\t\tonDeviceLostCallback = callback;\n\t\t},\n\t\t__testing: {\n\t\t\tneedsTransformation,\n\t\t\tfindChildNodes,\n\t\t\tapplyMaskIfNeeded,\n\t\t\tapplyNodeTransformation,\n\t\t\tgetNodeRegistry: () => nodeRegistry,\n\t\t\tgetParentToChildren: () => parentToChildren\n\t\t}\n\t};\n}\nfunction createRendererFromJSON(preset, options) {\n\tconst coreRenderer = shaderRenderer();\n\tconst componentRegistry = /* @__PURE__ */ new Map();\n\tconst nodeIdMap = /* @__PURE__ */ new Map();\n\tgetAllShaders().forEach((shader) => {\n\t\tcomponentRegistry.set(shader.definition.name, shader.definition);\n\t});\n\tasync function initialize(canvas) {\n\t\tawait coreRenderer.initialize({\n\t\t\tcanvas,\n\t\t\tenablePerformanceTracking: options?.enablePerformanceTracking || false,\n\t\t\tcontext: options?.context,\n\t\t\tgpu: options?.gpu,\n\t\t\tforceFullFrameRate: options?.forceFullFrameRate || false\n\t\t});\n\t\tregisterPresetNodes();\n\t\tcoreRenderer.stopAnimation();\n\t}\n\tasync function renderFrame() {\n\t\tif (!coreRenderer.isInitialized()) {\n\t\t\tconsole.warn(\"[presetRenderer] Renderer not yet initialized, skipping frame\");\n\t\t\treturn;\n\t\t}\n\t\tawait coreRenderer.renderAndWait();\n\t}\n\tfunction updatePreset(newPreset) {\n\t\tnodeIdMap.forEach((_, nodeId) => {\n\t\t\tcoreRenderer.removeNode(nodeId);\n\t\t});\n\t\tnodeIdMap.clear();\n\t\tpreset = newPreset;\n\t\tregisterPresetNodes();\n\t}\n\tfunction getGPUContext() {\n\t\tconst rendererType = coreRenderer.getRendererType();\n\t\tconst internalRenderer = coreRenderer.getInternalRenderer();\n\t\tif (rendererType === \"webgpu\") return {\n\t\t\ttype: \"webgpu\",\n\t\t\tdevice: internalRenderer.backend?.device,\n\t\t\tadapter: internalRenderer.backend?.adapter,\n\t\t\tcanvas: internalRenderer.domElement\n\t\t};\n\t\telse return {\n\t\t\ttype: \"webgl\",\n\t\t\tcontext: internalRenderer.getContext?.(),\n\t\t\tcanvas: internalRenderer.domElement\n\t\t};\n\t}\n\tfunction dispose() {\n\t\tcoreRenderer.cleanup();\n\t}\n\tfunction registerPresetNodes() {\n\t\tconst rootId = \"preset-root\";\n\t\tcoreRenderer.registerNode(rootId, ({ childNode }) => childNode || vec4(0, 0, 0, 0), null, null, {});\n\t\tpreset.components.forEach((component, index) => {\n\t\t\tregisterComponent(component, rootId, index);\n\t\t});\n\t}\n\tfunction registerComponent(component, parentId, renderOrder) {\n\t\tconst componentDef = componentRegistry.get(component.type);\n\t\tif (!componentDef) {\n\t\t\tconsole.warn(`[createRendererFromJSON] Unknown component type: ${component.type}`);\n\t\t\treturn;\n\t\t}\n\t\tconst nodeId = component.id || `${component.type}_${Date.now()}_${Math.random().toString(36).slice(2, 9)}`;\n\t\tnodeIdMap.set(nodeId, component.type);\n\t\tconst uniforms = createUniformsMap(componentDef, Object.fromEntries(Object.entries(componentDef.props).map(([key, propConfig]) => [key, component.props?.[key] !== void 0 ? component.props[key] : propConfig.default])), nodeId);\n\t\tconst metadata = {\n\t\t\tblendMode: component.props?.blendMode || \"normal\",\n\t\t\topacity: component.props?.opacity,\n\t\t\tvisible: component.props?.visible,\n\t\t\trenderOrder,\n\t\t\tid: component.id,\n\t\t\tmask: component.props?.maskSource ? {\n\t\t\t\tsource: component.props.maskSource,\n\t\t\t\ttype: component.props.maskType || \"alpha\"\n\t\t\t} : void 0,\n\t\t\ttransform: component.props?.transform ? {\n\t\t\t\toffsetX: 0,\n\t\t\t\toffsetY: 0,\n\t\t\t\trotation: 0,\n\t\t\t\tscale: 1,\n\t\t\t\tanchorX: .5,\n\t\t\t\tanchorY: .5,\n\t\t\t\tedges: \"transparent\",\n\t\t\t\t...component.props.transform\n\t\t\t} : void 0\n\t\t};\n\t\tcoreRenderer.registerNode(nodeId, componentDef.fragmentNode, parentId, metadata, uniforms, componentDef);\n\t\tcomponent.children?.forEach((child, index) => {\n\t\t\tregisterComponent(child, nodeId, index);\n\t\t});\n\t}\n\treturn {\n\t\tinitialize,\n\t\trenderFrame,\n\t\tupdatePreset,\n\t\tgetGPUContext,\n\t\tdispose\n\t};\n}\nfunction resolveMaskDependencies(nodes) {\n\tconst elementIdToNodeId = /* @__PURE__ */ new Map();\n\tconst maskDependencies = /* @__PURE__ */ new Map();\n\tconst result = {\n\t\tprocessingOrder: [],\n\t\tmaskSources: /* @__PURE__ */ new Map(),\n\t\tcircularDependencies: []\n\t};\n\tnodes.forEach((node) => {\n\t\tif (node.elementId) elementIdToNodeId.set(node.elementId, node.id);\n\t});\n\tnodes.forEach((node) => {\n\t\tif (node.mask?.source) {\n\t\t\tconst sourceElementId = node.mask.source.startsWith(\"#\") ? node.mask.source.substring(1) : node.mask.source;\n\t\t\tconst sourceNodeId = elementIdToNodeId.get(sourceElementId);\n\t\t\tif (sourceNodeId) {\n\t\t\t\tif (!maskDependencies.has(node.id)) maskDependencies.set(node.id, []);\n\t\t\t\tmaskDependencies.get(node.id)?.push(sourceNodeId);\n\t\t\t\tresult.maskSources.set(node.id, sourceNodeId);\n\t\t\t} else console.warn(`Mask source \"${sourceElementId}\" not found for node \"${node.id}\"`);\n\t\t}\n\t});\n\tresult.processingOrder = topologicalSort(maskDependencies, result.circularDependencies);\n\treturn result;\n}\nfunction topologicalSort(dependencies, circularDependencies) {\n\tconst result = [];\n\tconst visited = /* @__PURE__ */ new Set();\n\tconst tempVisited = /* @__PURE__ */ new Set();\n\tfunction visit(nodeId, path = []) {\n\t\tif (visited.has(nodeId)) return;\n\t\tif (tempVisited.has(nodeId)) {\n\t\t\tconst cycle = [...path.slice(path.indexOf(nodeId)), nodeId];\n\t\t\tcircularDependencies.push(cycle);\n\t\t\treturn;\n\t\t}\n\t\ttempVisited.add(nodeId);\n\t\tpath.push(nodeId);\n\t\tconst deps = dependencies.get(nodeId) || [];\n\t\tfor (const depId of deps) visit(depId, [...path]);\n\t\ttempVisited.delete(nodeId);\n\t\tvisited.add(nodeId);\n\t\tresult.push(nodeId);\n\t}\n\tfor (const nodeId of dependencies.keys()) if (!visited.has(nodeId)) visit(nodeId);\n\tconst allSourceNodeIds = new Set([...dependencies.values()].flat());\n\tfor (const sourceId of allSourceNodeIds) if (!visited.has(sourceId) && !dependencies.has(sourceId)) result.push(sourceId);\n\treturn result.reverse();\n}\nconst noise = (st) => fract(sin(dot(st, vec2(12.12345, 78.12345))).mul(40000.12345));\nconst grain = (intensity = .03) => (st) => noise(st).mul(intensity).mul(.10012345);\nconst distort = (uv$1 = vec2(0), intensity = .02, frequency = 1, seed = 1) => {\n\tconst phaseX = seed * 1.618033988749895;\n\tconst phaseY = seed * 2.718281828459045;\n\tconst freqMod1 = (Math.sin(seed) + 2) * 5;\n\tconst freqMod2 = (Math.cos(seed) + 2) * 5;\n\tconst flow1 = vec2(sin(uv$1.x.mul(frequency).mul(freqMod1).add(time.mul(.1)).add(phaseX)), cos(uv$1.y.mul(frequency).mul(freqMod1).add(time.mul(.1)).add(phaseY)));\n\tconst flow2 = vec2(sin(uv$1.y.mul(frequency).mul(freqMod2).add(time.mul(.05)).add(phaseY)), cos(uv$1.x.mul(frequency).mul(freqMod2).add(time.mul(.05)).add(phaseX)));\n\tconst offset = flow1.add(flow2).mul(intensity);\n\treturn uv$1.add(offset);\n};\nconst glow = (color, glowColor, threshold = .6, softness = .3, intensity = 1) => {\n\tconst brightness = max(max(color.r, color.g), color.b);\n\tconst glowAmount = smoothstep(threshold, threshold + softness, brightness).mul(intensity).mul(1);\n\treturn vec4(color.rgb.add(glowColor.rgb.mul(glowAmount)), color.a);\n};\nconst edgeMask = (options = {}) => {\n\tconst { inset = .4, softness = .5, offsetX = 0, offsetY = 0 } = options;\n\tconst rawUV = uv();\n\tconst ovalX = rawUV.x.sub(.5).sub(float(offsetX)).mul(2);\n\tconst ovalY = rawUV.y.sub(.5).add(float(offsetY)).mul(2);\n\tconst ovalDistance = ovalX.mul(ovalX).add(ovalY.mul(ovalY)).sqrt();\n\treturn float(1).sub(smoothstep(float(1).sub(float(inset)), float(1).sub(float(inset)).add(float(softness)), ovalDistance.mul(float(1).add(float(softness)))));\n};\nexport { createAnimatedTime, createRendererFromJSON, createUniformsMap, distort, edgeMask, glow, grain, resolveMaskDependencies, shaderRenderer, updateUniformValue };\n","const TELEMETRY_CONFIG = {\n\tsamplingRate: .05,\n\tcollectionDuration: 5e3,\n\twarmupDuration: 500,\n\tsampleInterval: 500,\n\tapiEndpoint: \"https://shaders.com/api/telemetry\"\n};\nfunction detectBrowserFamily(userAgent) {\n\tif (userAgent.includes(\"Edg/\") || userAgent.includes(\"EdgiOS\")) return \"Edge\";\n\tif (userAgent.includes(\"OPR/\") || userAgent.includes(\"Opera/\")) return \"Opera\";\n\tif (userAgent.includes(\"Chrome/\") || userAgent.includes(\"CriOS\")) return \"Chrome\";\n\tif (userAgent.includes(\"Firefox/\") || userAgent.includes(\"FxiOS\")) return \"Firefox\";\n\tif (userAgent.includes(\"Safari/\") && !userAgent.includes(\"Chrome\")) return \"Safari\";\n\treturn \"Other\";\n}\nfunction detectDeviceType(userAgent) {\n\tif (/iPad|Tablet|PlayBook/i.test(userAgent)) return \"tablet\";\n\tif (/Android/i.test(userAgent) && !/Mobile/i.test(userAgent)) return \"tablet\";\n\tif (/Mobile|Android|webOS|iPhone|iPod|BlackBerry|IEMobile|Opera Mini/i.test(userAgent)) return \"mobile\";\n\treturn \"desktop\";\n}\nfunction collectEnvironment() {\n\tif (typeof window === \"undefined\" || typeof navigator === \"undefined\") return {\n\t\tdomain: \"unknown\",\n\t\tbrowserFamily: \"unknown\",\n\t\tdeviceType: \"unknown\"\n\t};\n\tconst userAgent = navigator.userAgent;\n\treturn {\n\t\tdomain: window.location.hostname,\n\t\tbrowserFamily: detectBrowserFamily(userAgent),\n\t\tdeviceType: detectDeviceType(userAgent)\n\t};\n}\nvar TelemetryCollector = class {\n\trenderer;\n\tversion;\n\tsourceType;\n\tsessionId;\n\tframeSamples = [];\n\tsampleInterval = null;\n\tstopped = false;\n\tconstructor(renderer, version, sourceType) {\n\t\tthis.renderer = renderer;\n\t\tthis.version = version;\n\t\tthis.sourceType = sourceType;\n\t\tthis.sessionId = `tel_${Date.now()}_${Math.random().toString(36).substring(2, 9)}`;\n\t}\n\tstop() {\n\t\tthis.stopped = true;\n\t\tif (this.sampleInterval) {\n\t\t\tclearInterval(this.sampleInterval);\n\t\t\tthis.sampleInterval = null;\n\t\t}\n\t}\n\tasync start() {\n\t\ttry {\n\t\t\tawait this.sleep(TELEMETRY_CONFIG.warmupDuration);\n\t\t\tif (this.stopped) return;\n\t\t\tthis.sampleInterval = setInterval(() => {\n\t\t\t\tif (this.stopped) return;\n\t\t\t\ttry {\n\t\t\t\t\tconst stats = this.renderer.getPerformanceStats();\n\t\t\t\t\tthis.frameSamples.push(stats);\n\t\t\t\t} catch (error) {\n\t\t\t\t\tconsole.error(\"Telemetry sampling error:\", error);\n\t\t\t\t}\n\t\t\t}, TELEMETRY_CONFIG.sampleInterval);\n\t\t\tawait this.sleep(TELEMETRY_CONFIG.collectionDuration - TELEMETRY_CONFIG.warmupDuration);\n\t\t\tif (this.stopped) return;\n\t\t\tif (this.sampleInterval) {\n\t\t\t\tclearInterval(this.sampleInterval);\n\t\t\t\tthis.sampleInterval = null;\n\t\t\t}\n\t\t\tif (!this.stopped && this.frameSamples.length >= 5) {\n\t\t\t\tconst payload = this.aggregateData();\n\t\t\t\tawait this.sendTelemetry(payload);\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tconsole.error(\"Telemetry collection error:\", error);\n\t\t}\n\t}\n\tsleep(ms) {\n\t\treturn new Promise((resolve) => setTimeout(resolve, ms));\n\t}\n\taggregateData() {\n\t\tconst performance = this.aggregatePerformance();\n\t\tconst renderer = this.detectRendererType();\n\t\tconst components = this.extractComponents();\n\t\tconst environment = collectEnvironment();\n\t\treturn {\n\t\t\tsessionId: this.sessionId,\n\t\t\ttimestamp: Date.now(),\n\t\t\tcollectionDuration: TELEMETRY_CONFIG.collectionDuration,\n\t\t\tversion: this.version,\n\t\t\tsourceType: this.sourceType,\n\t\t\tperformance,\n\t\t\trenderer,\n\t\t\tcomponents,\n\t\t\tenvironment\n\t\t};\n\t}\n\taggregatePerformance() {\n\t\tif (this.frameSamples.length === 0) return {\n\t\t\tfps: 0,\n\t\t\tframeTime: {\n\t\t\t\tavg: 0,\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 0,\n\t\t\t\tp99: 0\n\t\t\t},\n\t\t\tjankPercent: 0,\n\t\t\tbudgetUsed: 0\n\t\t};\n\t\tconst frameTimes = this.frameSamples.map((s) => s.avgFrameTime);\n\t\tconst jankPercents = this.frameSamples.map((s) => s.jankPercent);\n\t\tconst budgetUseds = this.frameSamples.map((s) => s.budgetUsed);\n\t\tconst fpsValues = this.frameSamples.map((s) => s.fps);\n\t\tconst fps = this.calculateMedian(fpsValues);\n\t\tconst avgFrameTime = this.calculateMean(frameTimes);\n\t\tconst minFrameTime = Math.min(...frameTimes);\n\t\tconst maxFrameTime = Math.max(...frameTimes);\n\t\tconst p99FrameTime = this.calculatePercentile(frameTimes, 99);\n\t\tconst jankPercent = this.calculateMean(jankPercents);\n\t\tconst budgetUsed = this.calculateMean(budgetUseds);\n\t\treturn {\n\t\t\tfps: Math.round(fps * 10) / 10,\n\t\t\tframeTime: {\n\t\t\t\tavg: Math.round(avgFrameTime * 10) / 10,\n\t\t\t\tmin: Math.round(minFrameTime * 10) / 10,\n\t\t\t\tmax: Math.round(maxFrameTime * 10) / 10,\n\t\t\t\tp99: Math.round(p99FrameTime * 10) / 10\n\t\t\t},\n\t\t\tjankPercent: Math.round(jankPercent * 10) / 10,\n\t\t\tbudgetUsed: Math.round(budgetUsed * 10) / 10\n\t\t};\n\t}\n\tdetectRendererType() {\n\t\tconst latestSample = this.frameSamples[this.frameSamples.length - 1];\n\t\treturn {\n\t\t\ttype: this.renderer.getRendererType?.() || \"webgl\",\n\t\t\tdrawCalls: latestSample?.drawCalls ?? null,\n\t\t\ttextureCount: latestSample?.textureCount ?? null\n\t\t};\n\t}\n\textractComponents() {\n\t\ttry {\n\t\t\tconst nodeRegistry = this.renderer.getNodeRegistry();\n\t\t\tconst components = [];\n\t\t\tfor (const [_, nodeInfo] of nodeRegistry.nodes) {\n\t\t\t\tif (nodeInfo.parentId === null) continue;\n\t\t\t\tcomponents.push({\n\t\t\t\t\tname: nodeInfo.componentName,\n\t\t\t\t\trequiresRTT: nodeInfo.requiresRTT,\n\t\t\t\t\trenderOrder: nodeInfo.metadata.renderOrder\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn components.sort((a, b) => a.renderOrder - b.renderOrder);\n\t\t} catch (error) {\n\t\t\tconsole.error(\"Failed to extract components:\", error);\n\t\t\treturn [];\n\t\t}\n\t}\n\tasync sendTelemetry(payload) {\n\t\ttry {\n\t\t\tconst response = await fetch(TELEMETRY_CONFIG.apiEndpoint, {\n\t\t\t\tmethod: \"POST\",\n\t\t\t\theaders: { \"Content-Type\": \"application/json\" },\n\t\t\t\tbody: JSON.stringify(payload)\n\t\t\t});\n\t\t\tif (!response.ok) console.warn(\"Telemetry send failed:\", response.status, response.statusText);\n\t\t} catch (error) {\n\t\t\tconsole.error(\"Telemetry send error:\", error);\n\t\t}\n\t}\n\tcalculateMean(values) {\n\t\tif (values.length === 0) return 0;\n\t\treturn values.reduce((a, b) => a + b, 0) / values.length;\n\t}\n\tcalculateMedian(values) {\n\t\tif (values.length === 0) return 0;\n\t\tconst sorted = [...values].sort((a, b) => a - b);\n\t\tconst mid = Math.floor(sorted.length / 2);\n\t\tif (sorted.length % 2 === 0) return (sorted[mid - 1] + sorted[mid]) / 2;\n\t\telse return sorted[mid];\n\t}\n\tcalculatePercentile(values, percentile) {\n\t\tif (values.length === 0) return 0;\n\t\tconst sorted = [...values].sort((a, b) => a - b);\n\t\tconst index = Math.ceil(percentile / 100 * sorted.length) - 1;\n\t\treturn sorted[Math.max(0, index)];\n\t}\n};\nfunction shouldCollectTelemetry(disableTelemetry = false, isPreview = false) {\n\tif (disableTelemetry) return false;\n\tif (typeof navigator !== \"undefined\" && navigator.doNotTrack === \"1\") return false;\n\tif (isPreview) return true;\n\treturn Math.random() < TELEMETRY_CONFIG.samplingRate;\n}\nfunction startTelemetry(renderer, version, disableTelemetry = false, isPreview = false) {\n\tif (!shouldCollectTelemetry(disableTelemetry, isPreview)) return null;\n\treturn new TelemetryCollector(renderer, version, isPreview ? \"preview\" : \"shader\");\n}\nfunction isExternalUser() {\n\tif (typeof window === \"undefined\" || !window.location) return false;\n\tconst hostname = window.location.hostname;\n\treturn !hostname.includes(\"shaders.com\") && hostname !== \"localhost\" && hostname !== \"127.0.0.1\";\n}\nexport { TelemetryCollector, isExternalUser, shouldCollectTelemetry, startTelemetry };\n","import { createUniformsMap, shaderRenderer } from \"../core/index.js\";\nimport { getAllShaders } from \"../core/registry.js\";\nimport { isExternalUser, startTelemetry } from \"../core/telemetry/index.js\";\nimport { vec4 } from \"three/tsl\";\nfunction isPropDriver(value) {\n\tif (typeof value !== \"object\" || value === null || !(\"type\" in value)) return false;\n\tconst maybe = value;\n\treturn maybe.type === \"map\" || maybe.type === \"mouse\" || maybe.type === \"mouse-position\" || maybe.type === \"auto-animate\";\n}\nvar METADATA_PROPS = new Set([\n\t\"opacity\",\n\t\"blendMode\",\n\t\"visible\",\n\t\"transform\",\n\t\"maskSource\",\n\t\"maskType\"\n]);\nasync function createShader(canvas, preset, options) {\n\tconst componentRegistry = /* @__PURE__ */ new Map();\n\tgetAllShaders().forEach((shader) => {\n\t\tcomponentRegistry.set(shader.definition.name, shader.definition);\n\t});\n\tif (!canvas.style.width || !canvas.style.height) {\n\t\tconst rect = canvas.getBoundingClientRect();\n\t\tconst w = rect.width > 0 ? rect.width : canvas.width;\n\t\tconst h = rect.height > 0 ? rect.height : canvas.height;\n\t\tif (w > 0 && !canvas.style.width) canvas.style.width = `${w}px`;\n\t\tif (h > 0 && !canvas.style.height) canvas.style.height = `${h}px`;\n\t}\n\tfunction cloneComponent(c) {\n\t\treturn {\n\t\t\t...c,\n\t\t\tprops: c.props ? { ...c.props } : void 0,\n\t\t\tchildren: c.children?.map(cloneComponent)\n\t\t};\n\t}\n\tconst livePreset = {\n\t\t...preset,\n\t\tcomponents: preset.components.map(cloneComponent)\n\t};\n\tlet current = null;\n\tlet destroyed = false;\n\tlet rebuilding = false;\n\tfunction registerComponent(renderer, nodeEntryMap, component, parentId, renderOrder) {\n\t\tconst componentDef = componentRegistry.get(component.type);\n\t\tif (!componentDef) {\n\t\t\tconsole.warn(`[createShader] Unknown component type: ${component.type}`);\n\t\t\treturn;\n\t\t}\n\t\tconst nodeId = component.id || `${component.type}_${Date.now()}_${Math.random().toString(36).slice(2, 9)}`;\n\t\tconst mapsFromProps = {};\n\t\tfor (const [key, val] of Object.entries(component.props || {})) if (!METADATA_PROPS.has(key) && Object.prototype.hasOwnProperty.call(componentDef.props, key) && isPropDriver(val)) mapsFromProps[key] = val;\n\t\tconst uniforms = createUniformsMap(componentDef, Object.fromEntries(Object.entries(componentDef.props).map(([key, propConfig]) => {\n\t\t\tconst val = component.props?.[key] !== void 0 ? component.props[key] : propConfig.default;\n\t\t\treturn [key, isPropDriver(val) ? propConfig.default : val];\n\t\t})), nodeId);\n\t\tconst metadata = {\n\t\t\tblendMode: component.props?.blendMode || \"normal\",\n\t\t\topacity: component.props?.opacity,\n\t\t\tvisible: component.props?.visible,\n\t\t\trenderOrder,\n\t\t\tid: component.id,\n\t\t\tmaps: Object.keys(mapsFromProps).length > 0 ? { ...mapsFromProps } : void 0,\n\t\t\tmask: component.props?.maskSource ? {\n\t\t\t\tsource: component.props.maskSource,\n\t\t\t\ttype: component.props.maskType || \"alpha\"\n\t\t\t} : void 0,\n\t\t\ttransform: component.props?.transform ? {\n\t\t\t\toffsetX: 0,\n\t\t\t\toffsetY: 0,\n\t\t\t\trotation: 0,\n\t\t\t\tscale: 1,\n\t\t\t\tanchorX: .5,\n\t\t\t\tanchorY: .5,\n\t\t\t\tedges: \"transparent\",\n\t\t\t\t...component.props.transform\n\t\t\t} : void 0\n\t\t};\n\t\trenderer.registerNode(nodeId, componentDef.fragmentNode, parentId, metadata, uniforms, componentDef);\n\t\tnodeEntryMap.set(nodeId, {\n\t\t\tcomponentDef,\n\t\t\tuniforms,\n\t\t\tnodeId,\n\t\t\tcomponent,\n\t\t\tcurrentMaps: { ...mapsFromProps }\n\t\t});\n\t\tcomponent.children?.forEach((child, index) => {\n\t\t\tregisterComponent(renderer, nodeEntryMap, child, nodeId, index);\n\t\t});\n\t}\n\tasync function build() {\n\t\tconst renderer = shaderRenderer();\n\t\tconst nodeEntryMap = /* @__PURE__ */ new Map();\n\t\tif (options?.onReady) renderer.setOnReady(options.onReady);\n\t\tawait renderer.initialize({\n\t\t\tcanvas,\n\t\t\tresizeTarget: canvas,\n\t\t\tenablePerformanceTracking: options?.enablePerformanceTracking || false,\n\t\t\tcolorSpace: options?.colorSpace,\n\t\t\ttoneMapping: options?.toneMapping,\n\t\t\tobserveElement: options?.observeElement,\n\t\t\tgpu: options?.gpu\n\t\t});\n\t\tconst state = {\n\t\t\trenderer,\n\t\t\tnodeEntryMap,\n\t\t\ttelemetryCollector: null,\n\t\t\ttelemetryStartTimeout: null\n\t\t};\n\t\trenderer.setOnDeviceLost((reason) => {\n\t\t\tif (destroyed || rebuilding) return;\n\t\t\tif (current !== null && current !== state) return;\n\t\t\trebuilding = true;\n\t\t\ttry {\n\t\t\t\toptions?.onError?.(reason);\n\t\t\t} catch (e) {\n\t\t\t\tconsole.error(\"[createShader] onError callback threw:\", e);\n\t\t\t}\n\t\t\t(async () => {\n\t\t\t\ttry {\n\t\t\t\t\tteardownState(state);\n\t\t\t\t\tcurrent = null;\n\t\t\t\t\tif (destroyed) return;\n\t\t\t\t\tconst next = await build();\n\t\t\t\t\tif (destroyed) {\n\t\t\t\t\t\tteardownState(next);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tcurrent = next;\n\t\t\t\t} catch (rebuildErr) {\n\t\t\t\t\tconsole.error(\"[createShader] rebuild after device loss failed:\", rebuildErr);\n\t\t\t\t\ttry {\n\t\t\t\t\t\toptions?.onError?.(\"rebuild_failed\");\n\t\t\t\t\t} catch {}\n\t\t\t\t} finally {\n\t\t\t\t\trebuilding = false;\n\t\t\t\t}\n\t\t\t})();\n\t\t});\n\t\tconst rootId = \"shader-root\";\n\t\trenderer.registerNode(rootId, ({ childNode }) => childNode || vec4(0, 0, 0, 0), null, null, {}, void 0);\n\t\tlivePreset.components.forEach((component, index) => {\n\t\t\tregisterComponent(renderer, nodeEntryMap, component, rootId, index);\n\t\t});\n\t\tif (isExternalUser()) {\n\t\t\tconst checkRendering = () => {\n\t\t\t\tif (destroyed || current !== state) {\n\t\t\t\t\tstate.telemetryStartTimeout = null;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (renderer.getPerformanceStats().fps > 0) {\n\t\t\t\t\tstate.telemetryCollector = startTelemetry(renderer, \"2.5.135\", options?.disableTelemetry || false, false);\n\t\t\t\t\tif (state.telemetryCollector) state.telemetryCollector.start();\n\t\t\t\t\tstate.telemetryStartTimeout = null;\n\t\t\t\t} else state.telemetryStartTimeout = setTimeout(checkRendering, 500);\n\t\t\t};\n\t\t\tstate.telemetryStartTimeout = setTimeout(checkRendering, 500);\n\t\t}\n\t\treturn state;\n\t}\n\tfunction teardownState(state) {\n\t\tif (state.telemetryCollector) {\n\t\t\ttry {\n\t\t\t\tstate.telemetryCollector.stop();\n\t\t\t} catch {}\n\t\t\tstate.telemetryCollector = null;\n\t\t}\n\t\tif (state.telemetryStartTimeout !== null) {\n\t\t\tclearTimeout(state.telemetryStartTimeout);\n\t\t\tstate.telemetryStartTimeout = null;\n\t\t}\n\t\ttry {\n\t\t\tstate.renderer.cleanup();\n\t\t} catch {}\n\t}\n\tcurrent = await build();\n\tfunction update(componentId, props) {\n\t\tif (!current) return;\n\t\tconst { renderer, nodeEntryMap } = current;\n\t\tconst entry = nodeEntryMap.get(componentId);\n\t\tif (!entry) {\n\t\t\tconsole.warn(`[createShader] Component ID not found: ${componentId}`);\n\t\t\treturn;\n\t\t}\n\t\tif (!entry.component.props) entry.component.props = {};\n\t\tconst live = entry.component.props;\n\t\tfor (const [key, value] of Object.entries(props)) if (METADATA_PROPS.has(key)) if (key === \"maskSource\") {\n\t\t\trenderer.updateNodeMetadata(entry.nodeId, { mask: value ? {\n\t\t\t\tsource: value,\n\t\t\t\ttype: props.maskType || live.maskType || \"alpha\"\n\t\t\t} : void 0 });\n\t\t\tlive.maskSource = value;\n\t\t\tif (\"maskType\" in props) live.maskType = props.maskType;\n\t\t} else if (key === \"maskType\") continue;\n\t\telse if (key === \"transform\") {\n\t\t\trenderer.updateNodeMetadata(entry.nodeId, { transform: value });\n\t\t\tlive.transform = value;\n\t\t} else {\n\t\t\trenderer.updateNodeMetadata(entry.nodeId, { [key]: value });\n\t\t\tlive[key] = value;\n\t\t}\n\t\telse if (isPropDriver(value)) if (!Object.prototype.hasOwnProperty.call(entry.componentDef.props, key)) console.warn(`[createShader] Ignoring PropDriver for unknown prop \"${key}\" on ${entry.component.type}`);\n\t\telse {\n\t\t\tentry.currentMaps[key] = value;\n\t\t\trenderer.updateNodeMetadata(entry.nodeId, { maps: { ...entry.currentMaps } });\n\t\t\tlive[key] = value;\n\t\t}\n\t\telse {\n\t\t\tif (key in entry.currentMaps) {\n\t\t\t\tdelete entry.currentMaps[key];\n\t\t\t\trenderer.updateNodeMetadata(entry.nodeId, { maps: Object.keys(entry.currentMaps).length > 0 ? { ...entry.currentMaps } : void 0 });\n\t\t\t}\n\t\t\tif (Object.prototype.hasOwnProperty.call(entry.componentDef.props, key)) {\n\t\t\t\trenderer.updateUniformValue(entry.nodeId, key, value);\n\t\t\t\tlive[key] = value;\n\t\t\t}\n\t\t}\n\t}\n\tfunction resize(width, height) {\n\t\tconst rect = canvas.getBoundingClientRect();\n\t\tconst w = width ?? (rect.width > 0 ? rect.width : canvas.width);\n\t\tconst h = height ?? (rect.height > 0 ? rect.height : canvas.height);\n\t\tif (w > 0 && h > 0) {\n\t\t\tcanvas.style.width = `${w}px`;\n\t\t\tcanvas.style.height = `${h}px`;\n\t\t\tif (current) current.renderer.resize(w, h);\n\t\t}\n\t}\n\tfunction destroy() {\n\t\tdestroyed = true;\n\t\tif (current) {\n\t\t\tteardownState(current);\n\t\t\tcurrent = null;\n\t\t}\n\t}\n\tfunction pause() {\n\t\tif (current) current.renderer.stopAnimation();\n\t}\n\tfunction resume() {\n\t\tif (current) current.renderer.startAnimation();\n\t}\n\treturn {\n\t\tupdate,\n\t\tresize,\n\t\tpause,\n\t\tresume,\n\t\tdestroy\n\t};\n}\nexport { createShader };\n","var PREVIEW_KEY = \"shaders-preview-key\";\nfunction xorCrypt(data, key) {\n\tconst keyBytes = new TextEncoder().encode(key);\n\tconst result = new Uint8Array(data.length);\n\tfor (let i = 0; i < data.length; i++) result[i] = data[i] ^ keyBytes[i % keyBytes.length];\n\treturn result;\n}\nfunction decodePreviewDefinition(encoded) {\n\ttry {\n\t\tconst binaryString = atob(encoded);\n\t\tconst encrypted = new Uint8Array(binaryString.length);\n\t\tfor (let i = 0; i < binaryString.length; i++) encrypted[i] = binaryString.charCodeAt(i);\n\t\tconst decrypted = xorCrypt(encrypted, PREVIEW_KEY);\n\t\tconst json = new TextDecoder().decode(decrypted);\n\t\tconst result = JSON.parse(json);\n\t\tif (typeof result !== \"object\" || result === null || Array.isArray(result)) throw new Error(\"unexpected shape\");\n\t\treturn result;\n\t} catch {\n\t\tthrow new Error(\"Failed to decode preview definition: invalid data\");\n\t}\n}\nexport { decodePreviewDefinition };\n","import { createShader } from \"./createShader.js\";\nimport { decodePreviewDefinition } from \"./decode.js\";\nvar DEFAULT_API_BASE = \"https://shaders.com\";\nvar WATERMARK_TEXT = \"Unlock your Shaders Pro license\";\nvar WATERMARK_LINK = \"https://shaders.com/dashboard?pricing=true\";\nvar RESERVED_IDENTIFIERS = new Set([\n\t\"break\",\n\t\"case\",\n\t\"catch\",\n\t\"class\",\n\t\"const\",\n\t\"continue\",\n\t\"default\",\n\t\"delete\",\n\t\"do\",\n\t\"else\",\n\t\"export\",\n\t\"extends\",\n\t\"finally\",\n\t\"for\",\n\t\"function\",\n\t\"if\",\n\t\"import\",\n\t\"in\",\n\t\"instanceof\",\n\t\"new\",\n\t\"return\",\n\t\"super\",\n\t\"switch\",\n\t\"this\",\n\t\"throw\",\n\t\"try\",\n\t\"typeof\",\n\t\"var\",\n\t\"void\",\n\t\"while\",\n\t\"with\",\n\t\"yield\"\n]);\nfunction slugifyIdentifier(label, fallback) {\n\tconst cleaned = label.replace(/[^A-Za-z0-9]+/g, \" \").trim();\n\tif (!cleaned) return fallback;\n\tconst camel = cleaned.split(/\\s+/).map((part, i) => i === 0 ? part.charAt(0).toLowerCase() + part.slice(1) : part.charAt(0).toUpperCase() + part.slice(1)).join(\"\");\n\tconst safe = /^[A-Za-z_$]/.test(camel) ? camel : `_${camel}`;\n\treturn RESERVED_IDENTIFIERS.has(safe) ? `_${safe}` : safe;\n}\nfunction buildKeyPropIdentifierMap(keyProps) {\n\tconst used = new Set([\"style\"]);\n\tconst map = /* @__PURE__ */ new Map();\n\tif (!keyProps?.length) return map;\n\tkeyProps.forEach((kp, i) => {\n\t\tif (!kp.targets?.length) return;\n\t\tconst base = slugifyIdentifier(kp.label, `keyProp${i}`);\n\t\tlet ident = base;\n\t\tlet suffix = 1;\n\t\twhile (used.has(ident)) {\n\t\t\tsuffix++;\n\t\t\tident = `${base}${suffix}`;\n\t\t}\n\t\tused.add(ident);\n\t\tmap.set(ident, kp);\n\t});\n\treturn map;\n}\nfunction findInTree(id, list) {\n\tfor (const c of list) {\n\t\tif (c.id === id) return c;\n\t\tconst children = c.children;\n\t\tif (children?.length) {\n\t\t\tconst hit = findInTree(id, children);\n\t\t\tif (hit) return hit;\n\t\t}\n\t}\n\treturn null;\n}\nfunction applyConfigurationInPlace(components, configuration, identMap) {\n\tif (!configuration) return;\n\tfor (const [ident, value] of Object.entries(configuration)) {\n\t\tconst kp = identMap.get(ident);\n\t\tif (!kp) continue;\n\t\tfor (const t of kp.targets ?? []) {\n\t\t\tconst comp = findInTree(t.component_id, components);\n\t\t\tif (comp?.props && t.prop in comp.props) comp.props[t.prop] = value;\n\t\t}\n\t}\n}\nasync function createPreview(canvas, options) {\n\tif (!options.shader && !options.presetId || options.shader && options.presetId) throw new Error(\"Exactly one of shader (preview token) or presetId must be provided\");\n\tconst apiBase = options.apiBaseUrl || DEFAULT_API_BASE;\n\tconst versionParam = options.presetId && options.version ? `?version=${encodeURIComponent(options.version)}` : \"\";\n\tconst url = options.shader ? `${apiBase}/api/preview/shader/${encodeURIComponent(options.shader)}` : `${apiBase}/api/preview/preset/${encodeURIComponent(options.presetId)}${versionParam}`;\n\tconst response = await fetch(url);\n\tif (!response.ok) throw new Error(`Failed to fetch preview: ${response.status} ${response.statusText}`);\n\tconst payload = await response.json();\n\tconst item = payload.preset ?? payload.shader;\n\tif (!item?.definition || typeof item.definition !== \"string\") throw new Error(\"Preview response missing encoded definition\");\n\tconst definition = decodePreviewDefinition(item.definition);\n\tconst keyProps = Array.isArray(item.key_props) ? item.key_props : null;\n\tconst identMap = buildKeyPropIdentifierMap(keyProps);\n\tconst baselineMap = /* @__PURE__ */ new Map();\n\tfor (const kp of identMap.values()) for (const t of kp.targets ?? []) {\n\t\tconst comp = findInTree(t.component_id, definition.components);\n\t\tif (comp?.props && t.prop in comp.props) baselineMap.set(`${t.component_id}:${t.prop}`, comp.props[t.prop]);\n\t}\n\tapplyConfigurationInPlace(definition.components, options.configuration, identMap);\n\tconst instance = await createShader(canvas, definition, {\n\t\tisPreview: true,\n\t\tenablePerformanceTracking: true\n\t});\n\tconst { overlay, savedPosition, parentEl } = createWatermarkOverlay(canvas);\n\tconst originalDestroy = instance.destroy.bind(instance);\n\tconst previewInstance = instance;\n\tpreviewInstance.destroy = () => {\n\t\tif (parentEl && savedPosition !== void 0) parentEl.style.position = savedPosition;\n\t\toverlay.remove();\n\t\toriginalDestroy();\n\t};\n\tpreviewInstance.setConfiguration = (configuration) => {\n\t\tif (!keyProps?.length) return;\n\t\tfor (const [ident, kp] of identMap) {\n\t\t\tconst hasNewValue = Object.prototype.hasOwnProperty.call(configuration, ident) && configuration[ident] !== void 0;\n\t\t\tfor (const t of kp.targets ?? []) {\n\t\t\t\tconst value = hasNewValue ? configuration[ident] : baselineMap.get(`${t.component_id}:${t.prop}`);\n\t\t\t\tif (value === void 0) continue;\n\t\t\t\tinstance.update(t.component_id, { [t.prop]: value });\n\t\t\t}\n\t\t}\n\t};\n\treturn previewInstance;\n}\nfunction createWatermarkOverlay(canvas) {\n\tconst parent = canvas.parentElement;\n\tlet savedPosition;\n\tif (parent) {\n\t\tif (getComputedStyle(parent).position === \"static\") {\n\t\t\tsavedPosition = parent.style.position;\n\t\t\tparent.style.position = \"relative\";\n\t\t}\n\t}\n\tconst link = document.createElement(\"a\");\n\tlink.href = WATERMARK_LINK;\n\tlink.target = \"_blank\";\n\tlink.rel = \"noopener noreferrer\";\n\tlink.textContent = WATERMARK_TEXT;\n\tObject.assign(link.style, {\n\t\tposition: \"absolute\",\n\t\tbottom: \"8px\",\n\t\tright: \"12px\",\n\t\tfontSize: \"11px\",\n\t\tfontFamily: \"system-ui, -apple-system, sans-serif\",\n\t\tcolor: \"rgba(255, 255, 255, 0.5)\",\n\t\ttextDecoration: \"none\",\n\t\tzIndex: \"10\",\n\t\tpointerEvents: \"auto\",\n\t\ttransition: \"color 0.2s ease\"\n\t});\n\tlink.addEventListener(\"mouseenter\", () => {\n\t\tlink.style.color = \"rgba(255, 255, 255, 0.8)\";\n\t});\n\tlink.addEventListener(\"mouseleave\", () => {\n\t\tlink.style.color = \"rgba(255, 255, 255, 0.5)\";\n\t});\n\tif (parent) parent.appendChild(link);\n\treturn {\n\t\toverlay: link,\n\t\tsavedPosition,\n\t\tparentEl: parent\n\t};\n}\nexport { createPreview };\n","async function createSharedDevice(options) {\n\tif (typeof navigator === \"undefined\" || !navigator.gpu) return null;\n\ttry {\n\t\tconst adapter = await navigator.gpu.requestAdapter({ powerPreference: options?.powerPreference ?? \"high-performance\" });\n\t\tif (!adapter) return null;\n\t\treturn {\n\t\t\tdevice: await adapter.requestDevice({ requiredFeatures: [...adapter.features] }),\n\t\t\tadapter\n\t\t};\n\t} catch (err) {\n\t\tconsole.warn(\"[shaders] createSharedDevice failed; callers should fall back to per-instance device:\", err);\n\t\treturn null;\n\t}\n}\nexport { createSharedDevice };\n"]}