PageSourceSearch

https://readme.com/_next/static/immutable/chunks/1l1nmvevgc-wu.js

js readme.com collected 2026-09-24 17:12:48 UTC 45,303 bytes, 94 lines download raw bytes

1(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,647557,e=>{"use strict";var t=e.i(213429),i=e.i(161871),r=e.i(97776),a=e.i(913140),n=e.i(420851);e.s(["default",0,function(e){let o,s,l,c,d,u=(0,i.c)(10),{children:f,innerClassName:m,...h}=e,p=(0,a.useRef)(null),[g,v]=(0,a.useState)("auto");u[0]===Symbol.for("react.memo_cache_sentinel")?(o=()=>{let e=p.current?.children[0]??null;if(!e)return;let t=()=>{e&&v(e.clientHeight)};t();let i=new ResizeObserver(t);return i.observe(e),()=>i.disconnect()},s=[],u[0]=o,u[1]=s):(o=u[0],s=u[1]),(0,a.useEffect)(o,s);let y=(0,n.cn)(h.className);return u[2]!==h.initial||u[3]!==g?(l={height:g,...h.initial},u[2]=h.initial,u[3]=g,u[4]=l):l=u[4],u[5]!==m?(c=(0,n.cn)("h-max",m),u[5]=m,u[6]=c):c=u[6],u[7]!==f||u[8]!==c?(d=(0,t.jsx)("div",{className:c,children:f}),u[7]=f,u[8]=c,u[9]=d):d=u[9],(0,t.jsx)(r.motion.div,{...h,animate:{height:g,...h.animate},className:y,initial:l,ref:p,children:d})}])},561180,e=>{e.q("/_next/static/immutable/media/black-curve.3j-1_53ncbcys.svg")},36032,e=>{e.q("/_next/static/immutable/media/white-curve.3o0_5enqtxm8h.svg")},824675,e=>{e.q("/_next/static/immutable/media/connector.3api6cfbg3pgr.svg")},192706,e=>{e.q("/_next/static/immutable/media/readme-icon.0um0wuka8kna2.svg")},225145,e=>{e.q("/_next/static/immutable/media/star_4x4.0ad2jf0cr3o22.png")},918382,e=>{e.q("/_next/static/immutable/media/star_6x6.3i_ns7e38zsm9.png")},10499,e=>{e.q("/_next/static/immutable/media/star_8x8.0itep5uq1z0jl.png")},154112,e=>{e.q("/_next/static/immutable/media/accordion.0a95hbfdhd936.svg")},896148,e=>{e.q("/_next/static/immutable/media/cards.100v7sty0za6l.svg")},866269,e=>{e.q("/_next/static/immutable/media/checklist.2l3kes-v3e6kx.svg")},83840,e=>{e.q("/_next/static/immutable/media/code.3wiirv3xy79pe.svg")},160074,e=>{e.q("/_next/static/immutable/media/reusable.2hogsskpwdstm.svg")},418908,e=>{e.q("/_next/static/immutable/media/tabs.3p2etcvuplf8z.svg")},148322,e=>{e.q("/_next/static/immutable/media/chevron-down.24n7hyu-6-g5l.svg")},861994,e=>{e.q("/_next/static/immutable/media/icon.3til-55justp5.svg")},184657,e=>{e.q("/_next/static/immutable/media/code-piece.05rbw7hw4c8-q.png")},329078,e=>{e.q("/_next/static/immutable/media/content.2sducava4w70s.png")},532811,e=>{e.q("/_next/static/immutable/media/tooltip.1sfco9u-wqloi.svg")},647679,e=>{e.q("/_next/static/immutable/media/checkmark.3gqe3jd8kui2e.svg")},11953,e=>{e.q("/_next/static/immutable/media/error.40ps48e34z7f4.svg")},384247,e=>{e.q("/_next/static/immutable/media/warning.1mo14br0-6mxi.svg")},560484,e=>{e.q("/_next/static/immutable/media/background-mobile.2wmnqdbni8yh5.svg")},166839,e=>{e.q("/_next/static/immutable/media/background.1v8xbus8vwb6n.svg")},444791,e=>{e.q("/_next/static/immutable/media/connector-gray.2gg8uv5zs4dkt.svg")},92937,e=>{e.q("/_next/static/immutable/media/connector.3bix7g4o7v0g1.svg")},654902,e=>{e.q("/_next/static/immutable/media/checkmark.1of1v4l_dr4m4.svg")},972110,e=>{e.q("/_next/static/immutable/media/app-mobile.1tq2w56mlzvng.png")},89632,e=>{e.q("/_next/static/immutable/media/connector.1o204bdmf9q1m.svg")},111567,e=>{e.q("/_next/static/immutable/media/star.35ev1hoxwgbkq.png")},261345,e=>{"use strict";var t=e.i(213429),i=e.i(161871),r=e.i(723663),a=e.i(764350),n=e.i(97776),o=e.i(539914),s=e.i(190600),l=e.i(913140);let c=[{id:"nvidia",name:"NVIDIA"},{id:"voyage-ai",name:"Voyage AI"},{id:"asana",name:"Asana"},{id:"visa",name:"Visa"},{id:"mongodb",name:"MongoDB"},{id:"voiceflow",name:"Voiceflow"},{id:"amazon",name:"Amazon"},{id:"starlink",name:"Starlink"},{id:"priceline",name:"Priceline"},{id:"airbnb",name:"Airbnb"},{id:"nasdaq",name:"Nasdaq"},{id:"samsara",name:"Samsara"},{id:"aircall",name:"Aircall"},{id:"clover",name:"Clover"},{id:"galileo",name:"Galileo"},{id:"miro",name:"Miro"},{id:"atelio-by-fis",name:"Atelio by FIS"},{id:"akamai",name:"Akamai"},{id:"deel",name:"Deel"},{id:"affirm",name:"Affirm"},{id:"gusto",name:"Gusto"},{id:"zoominfo",name:"ZoomInfo"},{id:"monday-com",name:"Monday.com"},{id:"opensea",name:"OpenSea"},{id:"onetrust",name:"OneTrust"},{id:"socure",name:"Socure"},{id:"drivewealth",name:"DriveWealth"},{id:"beyondtrust",name:"BeyondTrust"},{id:"dialpad",name:"Dialpad"},{id:"personio",name:"Personio"},{id:"pagerduty",name:"PagerDuty"},{id:"liveramp",name:"LiveRamp"},{id:"clever",name:"Clever"},{id:"modern-treasury",name:"Modern Treasury"},{id:"addepar",name:"Addepar"},{id:"appsflyer",name:"AppsFlyer"},{id:"criteo",name:"Criteo"},{id:"vanta",name:"Vanta"},{id:"sigma-computing",name:"Sigma Computing"},{id:"yelp",name:"Yelp"},{id:"nextdoor",name:"Nextdoor"},{id:"bloomreach",name:"Bloomreach"},{id:"mixpanel",name:"Mixpanel"},{id:"optimizely",name:"Optimizely"},{id:"heap",name:"Heap"},{id:"front",name:"Front"},{id:"podium",name:"Podium"},{id:"gorgias",name:"Gorgias"},{id:"render",name:"Render"},{id:"human-api",name:"Human API"},{id:"blend",name:"Blend"},{id:"doppler",name:"Doppler"},{id:"ashby",name:"Ashby"},{id:"recurly",name:"Recurly"},{id:"gamesight",name:"Gamesight"},{id:"enigma",name:"Enigma"},{id:"safegraph",name:"SafeGraph"},{id:"pley",name:"Pley"},{id:"baremetrics",name:"Baremetrics"},{id:"perk",name:"Perk"},{id:"luma",name:"Luma"},{id:"guru",name:"Guru"},{id:"axonius",name:"Axonius"},{id:"sigma",name:"Sigma"},{id:"boost-mobile",name:"Boost Mobile"},{id:"cisco",name:"Cisco"},{id:"paylocity",name:"Paylocity"},{id:"roku",name:"Roku"},{id:"scale",name:"Scale"},{id:"spendesk",name:"Spendesk"},{id:"zerohash",name:"Zero Hash"},{id:"xfx",name:"XFX"}];var d=e.i(778806);let u=[{attribution:{name:"Harish",title:"Head of Developer Experience"},body:"Socure partnered with ReadMe to drive higher API engagement, lower support costs, and get developers to production faster.",company:"Socure",companyType:"B2B",externalHref:"http://help.socure.com/riskos/docs",industry:"Risk Management",logoBrand:"socure",quote:"Our goal was a best-in-class developer experience, and ReadMe was the clear winner. Out-of-the-box features with real customer impact, collaborative editing across product teams, and bi-directional sync from the UI meant no other solution checked all the boxes the way ReadMe did.",slug:"socure"},{attribution:{name:"Josue",title:"Senior Principal Product Solutions Architect"},body:"With over 14,000 customers and tens of thousands of customer developers, OneTrust needed a 
1scalable, secure solution for their API docs.",company:"OneTrust",companyType:"B2B",externalHref:"https://developer.onetrust.com",industry:"Data Security & Compliance",logoBrand:"onetrust",quote:"Switching from our previous vendor to ReadMe has been night and day difference from a customer satisfaction standpoint, it's a lot easier to navigate the documentation and find what you need.",slug:"onetrust"},{attribution:{name:"Julie",title:"Head of Developer Experience"},body:"With ambitious goals and an aggressive timeline, Atelio by FIS harnessed ReadMe's professional services to help launch their comprehensive developer hub.",company:"Atelio",companyType:"B2B",externalHref:"https://docs.atelio.com/embedded/docs/guides/",industry:"Financial Services",logoBrand:"atelio-by-fis",quote:"The fact that ReadMe did what they did is like witchcraft.",slug:"atelio"},{attribution:{name:"Justin",title:"Sr. Product Manager"},body:"As the company grew, the DriveWealth team knew that their documentation process needed to be more scalable, and ReadMe helped them achieve that.",company:"DriveWealth",companyType:"B2B",externalHref:"https://developer.drivewealth.com",industry:"Financial Technology",logoBrand:"drivewealth",quote:"We decided to stick with ReadMe not just because of that, but also because you offer more than the baseline documentation and introduce new products and services at a faster rate than the competition.",slug:"drivewealth"},{attribution:{name:"Beth",title:"Sr Director of UX Technical Writing and Learning"},body:"The Akamai team was struggling to maintain the sheer volume of documentation across their product suite and APIs. With ReadMe, they can do all that and more.",company:"Akamai",companyType:"B2B",externalHref:"https://techdocs.akamai.com/home",industry:"Network Services",logoBrand:"akamai",quote:"I spun up a site fairly quickly and thought, 'this is awesome,' and reached out to your sales team the same day.",slug:"akamai"},{attribution:{name:"Avery",title:"Head of Solutions Architect"},body:"With two APIs that share multiple endpoints, the Gusto team needed a scalable solution for documentation and resources for both APIs, combined into one seamless hub.",company:"Gusto",companyType:"B2B",externalHref:"https://docs.gusto.com/",industry:"Payroll Software",logoBrand:"gusto",quote:'We have code samples everywhere so users can ask, "How do I create a company compliantly?" And we can say, "Here are the steps. Here’s the exact code that does it.',slug:"gusto"},{attribution:{name:"Kaegan",title:"Head of Customer Success"},body:"As Baremetrics expanded to support multiple payments platforms, they needed an out-of-the-box developer hub solution to help users get started with their new API.",company:"Baremetrics",companyType:"B2B",externalHref:"https://developers.baremetrics.com/reference",industry:"Subscription Analytics",logoBrand:"baremetrics",quote:"We built our API with ReadMe.",slug:"baremetrics"},{attribution:{name:"Matt",title:"Head of Customer Success"},body:'"15 minutes and I knew it would solve all our problems." That\'s how the Heap team described finding ReadMe while on the hunt for a documentation tool.',company:"Heap",companyType:"B2B",externalHref:"https://developers.heap.io",industry:"Analytics",logoBrand:"heap",quote:"I spent 15 minutes in the the tool and realized it would solve all of our problems.",slug:"heap"},{attribution:{name:"Amelie",title:"Partner Engineer"},body:"Clever needed to scale their API onboarding fast as they expanded to 95,000 US K-12 schools without sacrificing ease of use for their team.",company:"Clever",companyType:"B2B",externalHref:"https://dev.clever.com/",industry:"Education",logoBrand:"clever",quote:"It was like magic.",slug:"clever"},{attribution:{name:"Brian",title:"Founder & CEO"},body:"Once Doppler outgrew their in-house solution, CEO Brian Vallelunga turned to ReadMe to create a scalable developer hub that made customer onboarding easy.",company:"Doppler",companyType:"B2B",externalHref:"https://docs.doppler.com/",industry:"Dev Tools",logoBrand:"doppler",quote:"Before ReadMe, we had 2 separate documentation hubs in our product that were built in-house. They were a nightmare to maintain, keep in sync, and style. Thankfully, those days are behind us!",slug:"doppler"}].reduce((e,t)=>
1(t.logoBrand&&(e[t.logoBrand]=`/customers/${t.slug}`),e),{});var f=e.i(821941),m=e.i(672122),h=e.i(457362),p=e.i(394325),g=e.i(420851),v=e.i(402666);function y(e){let t=Math.random()*e.reduce((e,t)=>e+t,0);for(let i=0;i<e.length;i++)if(!(e[i]<=0)&&(t-=e[i])<=0)return i;return e.length-1}let x=n.motion.create(s.default);function b(e){return Array.from({length:e},(e,t)=>c[t])}function w(e){return e.id}let C=e=>{let a,s,l,c,f,m,v,y,b,w,C=(0,i.c)(38),{logo:B,onHoverEnd:S,onHoverStart:T}=e,A=u[B.id],M=A?x:n.motion.div,k=(0,p.useIsMobile)(),R=(0,h.useSectionTheme)(),V=k?160:224,U=k?96:112;C[0]!==U||C[1]!==V?(a={width:V,height:U},C[0]=U,C[1]=V,C[2]=a):a=C[2];let E=V+1,q=U+1;C[3]!==E||C[4]!==q?(s={width:E,x:0,height:q,y:0,zIndex:0},C[3]=E,C[4]=q,C[5]=s):s=C[5];let I=A&&"group";C[6]!==I?(l=(0,g.cn)("before:inside-border absolute -top-0.5 -left-0.5 flex-center overflow-clip bg-section-background p-0.5 before:z-10 before:border-section-border",I),C[6]=I,C[7]=l):l=C[7],C[8]!==U?(c={height:0,y:U,transition:_,zIndex:1},C[8]=U,C[9]=c):c=C[9];let z=U+1;C[10]!==z||C[11]!==V?(f={width:0,height:z,x:V,y:0},C[10]=z,C[11]=V,C[12]=f):f=C[12];let H=B.id,W=B.name;return C[13]!==B.id||C[14]!==R?(m=(0,d.getShowcaseClientLogoUrl)(B.id,R,"active"),C[13]=B.id,C[14]=R,C[15]=m):m=C[15],C[16]!==B.name||C[17]!==m?(v=(0,t.jsx)(o.default,{alt:W,className:"max-w-[unset] max-xl:scale-75",height:112,src:m,unoptimized:!0,width:224}),C[16]=B.name,C[17]=m,C[18]=v):v=C[18],C[19]!==A||C[20]!==B.id||C[21]!==R?(y=A&&(0,t.jsx)(n.motion.div,{animate:{opacity:1,y:0},className:"centering-h-113 centering-w-225 pointer-events-none absolute",exit:{opacity:0,y:6,transition:{type:"spring",stiffness:300,damping:24}},initial:{opacity:0,y:6},transition:{type:"spring",stiffness:300,damping:24,delay:P.duration-.2},children:(0,t.jsx)("div",{className:(0,g.cn)("absolute inset-0 transition-[clip-path] duration-300","[clip-path:circle(2px_at_50%_90px)]","group-hover:[clip-path:circle(138px_at_50%_90px)]"),children:(0,t.jsx)(o.default,{alt:"","aria-hidden":!0,className:"overlay",height:113,src:(0,d.getThemedClientLogoUrl)(B.id,R,{filled:!0}),unoptimized:!0,width:225})})}),C[19]=A,C[20]=B.id,C[21]=R,C[22]=y):y=C[22],C[23]!==M||C[24]!==A||C[25]!==B.id||C[26]!==S||C[27]!==T||C[28]!==v||C[29]!==y||C[30]!==s||C[31]!==l||C[32]!==c||C[33]!==f?(b=(0,t.jsx)(r.AnimatePresence,{initial:!1,children:(0,t.jsxs)(M,{animate:s,className:l,exit:c,href:A,initial:f,onHoverEnd:S,onHoverStart:T,transition:P,children:[v,y]},H)}),C[23]=M,C[24]=A,C[25]=B.id,C[26]=S,C[27]=T,C[28]=v,C[29]=y,C[30]=s,C[31]=l,C[32]=c,C[33]=f,C[34]=b):b=C[34],C[35]!==a||C[36]!==b?(w=(0,t.jsx)("div",{className:"grid-overlay relative max-xl:nth-[n+5]:hidden",style:a,children:b}),C[35]=a,C[36]=b,C[37]=w):w=C[37],w},P={duration:1,ease:(0,a.cubicBezier)(.6,.6,0,1),delay:.4},_={duration:P.duration,ease:P.ease};e.s(["default",0,function(){let e,r,a,n,o,s,d,u,h=(0,i.c)(14),g=(0,m.useDecoratives)(),x=(0,l.useRef)(null),P=(0,l.useRef)(null);h[0]===Symbol.for("react.memo_cache_sentinel")?(e=()=>b(8),h[0]=e):e=h[0];let[_,B]=(0,l.useState)(e);h[1]===Symbol.for("react.memo_cache_sentinel")?(r={initializeWithValue:!1,defaultValue:null},h[1]=r):r=h[1];let S=(0,p.useIsMobile)(r);return h[2]!==S?(a=()=>{let e,t,i,r;B(b(8));let a=document.querySelector(".logocloud-showcase"),n=S?4:8,o=(e=Array.from({length:n},(e,t)=>t+1),t=[],{next:i=>{let r=i??new Set;for(let i=0;i<2;i++){0===t.length&&(t=function(e){let t=e.map((e,t)=>t),i=[];for(;t.length>0;){let r=y(t.map(t=>e[t])),[a]=t.splice(r,1);i.push(a)}return i}(e));let i=t.findIndex(e=>!r.has(e));if(-1!==i){let[e]=t.splice(i,1);return e}t=[]}return null}}),s=c.length>n?c.slice(n):c,l=c.length>n?n:0,d=(i=l+s.length,r=s.map((e,t)=>{let r=l+t;return Math.max(1,i-r+10*(r<l+10))}),{next:e=>{if(!e?.size)return s[y(r)];let t=r.map((t,i)=>e.has(s[i].id)?0:t);return 0===t.reduce((e,t)=>e+t,0)?null:s[y(t)]}}),u=(0,v.setIntervalOnVisible)({element:a,callback:()=>{B(e=>{let t=P.current,i=null===t?void 0:new Set([t]),r=o.next(i);if(null===r)return e;let a=new Set(e.map(w)),n=d.next(a);if(!n)return e;let s=[...e];return s[r]=n,s})},interval:2e3});return()=>{u?.cleanup()}},n=[S,8],h[2]=S,h[3]=a,h[4]=n):(a=h[3],n=h[4]),(0,l.useEffect)(a,n),h[5]===Symbol.for("react.memo_cache_sentinel")?(o=Array.from({length:8}),h[5]=o):o=h[5],h[6]!==S||h[7]!==_?(s=o.map((e,i)=>null===S?(0,t.jsx)("div",{className:"grid-overlay relative h-96 w-160 max-xl:nth-[n+5]:hidden xl:h-112 xl:w-224"},i):(0,t.jsx)(C,{logo:_[i],onHoverEnd:()=>{P.current===i&&(P.current=null)},onHoverStart:()=>{P.current=i}},i)),h[6]=S,h[7]=_,h[8]=s):s=h[8],h[9]!==g?(d=(0,t.jsx)(f.default,{className:"z-1",desktop:Array.from({length:5},(e,t)=>Array.from({length:3},(e,i)=>g.corner.large(`calc(${25*t}%)`,`calc(${50*i}%)`))),mobile:Array.from({length:3},(e,t)=>Array.from({length:3},(e,i)=>0===i&&1===t?null:g.corner.small(`${50*t}%`,`${50*i}%`)))}),h[9]=g,h[10]=d):d=h[10],h[11]!==s||h[12]!==d?(u=(0,t.jsxs)("div",{className:"logocloud-showcase relative grid grid-cols-2 xl:grid-cols-4",ref:x,children:[s,d]}),h[11]=s,h[12]=d,h[13]=u):u=h[13],u}
1],261345)},57426,e=>{"use strict";var t=e.i(213429),i=e.i(161871),r=e.i(97776),a=e.i(604950),n=e.i(366313),o=e.i(913140),s=e.i(427489);let l={[s.SectionTheme.White]:"--color-text-opaque-faint",[s.SectionTheme.Navy]:"--color-hero-text-faint",[s.SectionTheme.Black]:"--color-neutral-2"},c={[s.SectionTheme.White]:"--color-text-opaque-loud",[s.SectionTheme.Navy]:"--color-text-opaque-inverse",[s.SectionTheme.Black]:"--color-text-opaque-inverse"};function d(e,t,i){return i<=0?1:Math.min(Math.max(e*i-t,0),1)}function u({words:e,scrollYProgress:i,sectionTheme:r,progressRange:a=[0,1]}){return e.map((n,s)=>(0,t.jsxs)(o.Fragment,{children:[(0,t.jsx)(f,{index:s,progressRange:a,scrollYProgress:i,sectionTheme:r,text:n.text,totalWords:e.length,wordColor:n.color,wordItalic:n.italic}),s!==e.length-1&&" "]},s))}function f(e){let a,o,s,u,f,m=(0,i.c)(20),{index:h,progressRange:p,scrollYProgress:g,sectionTheme:v,text:y,totalWords:x,wordColor:b,wordItalic:w}=e,C=l[v];if(m[0]!==v||m[1]!==b)a=b?`--color-${b}`:c[v],m[0]=v,m[1]=b,m[2]=a;else a=m[2];let P=a;m[3]!==P||m[4]!==h||m[5]!==C||m[6]!==p||m[7]!==x?(o=e=>{let[t,i]=p,r=d(Math.min(Math.max((e-t)/(i-t),0),1),h,x);return`color-mix(in srgb, var(${C}) ${(1-r)*100}%, var(${P}) ${100*r}%)`},m[3]=P,m[4]=h,m[5]=C,m[6]=p,m[7]=x,m[8]=o):o=m[8];let _=(0,n.useTransform)(g,o);m[9]!==h||m[10]!==p||m[11]!==x||m[12]!==w?(s=e=>{let[t,i]=p,r=d(Math.min(Math.max((e-t)/(i-t),0),1),h,x);return w?`skewX(${-8*r}deg)`:"none"},m[9]=h,m[10]=p,m[11]=x,m[12]=w,m[13]=s):s=m[13];let B=(0,n.useTransform)(g,s);return m[14]!==_||m[15]!==B?(u={color:_,transform:B},m[14]=_,m[15]=B,m[16]=u):u=m[16],m[17]!==u||m[18]!==y?(f=(0,t.jsx)(r.motion.span,{className:"inline-block",style:u,children:y}),m[17]=u,m[18]=y,m[19]=f):f=m[19],f}e.s(["QuoteBodyWords",0,u,"default",0,function(e){let r,n,s=(0,i.c)(5),{words:l,sectionTheme:c}=e,d=(0,o.useRef)(null);s[0]===Symbol.for("react.memo_cache_sentinel")?(r={target:d,offset:["center end","center center"]},s[0]=r):r=s[0];let{scrollYProgress:f}=(0,a.useScroll)(r);return s[1]!==f||s[2]!==c||s[3]!==l?(n=(0,t.jsx)("div",{ref:d,children:(0,t.jsx)(u,{scrollYProgress:f,sectionTheme:c,words:l})}),s[1]=f,s[2]=c,s[3]=l,s[4]=n):n=s[4],n}])},347621,e=>{"use strict";var t=e.i(213429),i=e.i(161871),r=e.i(97776);e.s(["default",0,function(e){let a,n,o,s=(0,i.c)(4);return s[0]===Symbol.for("react.memo_cache_sentinel")?(a={rotate:[0,360],scale:[1,.9,1],transition:{duration:1,ease:"easeInOut",repeat:1/0,repeatType:"loop"}},n=(0,t.jsx)("path",{d:"M10 5.20001C10 6.88017 9.99998 7.72025 10.327 8.36198C10.6146 8.92647 11.0735 9.38542 11.638 9.67304C12.2798 10 13.1198 10 14.8 10M10 5.20001C10 6.88017 10 7.72025 9.67303 8.36198C9.38541 8.92647 8.92646 9.38542 8.36197 9.67304C7.72023 10 6.88017 10 5.20001 10M10 5.20001L10 5M14.8 10C13.1198 10 12.2798 10 11.638 10.327C11.0735 10.6146 10.6146 11.0736 10.327 11.638C9.99999 12.2798 10 13.1199 10 14.8M14.8 10L15 10M10 14.8C10 13.1199 10 12.2798 9.67304 11.638C9.38542 11.0736 8.92646 10.6146 8.36197 10.327C7.72023 10 6.88017 10 5.20001 10M10 14.8L10 15M5.20001 10L5 10",stroke:"currentColor"}),s[0]=a,s[1]=n):(a=s[0],n=s[1]),s[2]!==e?(o=(0,t.jsx)(r.motion.svg,{fill:"none",height:"20",viewBox:"0 0 20 20",width:"20",xmlns:"http://www.w3.org/2000/svg",...e,animate:a,children:n}),s[2]=e,s[3]=o):o=s[3],o}])},604950,e=>{"use strict";var t=e.i(554083),i=e.i(834139),r=e.i(738196),a=e.i(725542),n=e.i(913140),o=e.i(120194),s=e.i(270066);function l(e,t){let i,r=()=>{let{currentTime:r}=t,a=(null===r?0:r.value)/100;i!==a&&e(a),i=a};return s.frame.preUpdate(r,!0),()=>(0,s.cancelFrame)(r)}function c(e){return!("u"<typeof window)&&(e?(0,i.supportsViewTimeline)():(0,i.supportsScrollTimeline)())}var d=e.i(562207),u=e.i(470934),f=e.i(398361);let m=()=>({current:0,offset:[],progress:0,scrollLength:0,targetOffset:0,targetLength:0,containerLength:0,velocity:0}),h={x:{length:"Width",position:"Left"},y:{length:"Height",position:"Top"}};function p(e,t,i,r){let a=i[t],{length:n,position:o}=h[t],s=a.current,l=i.time;a.current=Math.abs(e[`scroll${o}`]),a.scrollLength=e[`scroll${n}`]-e[`client${n}`],a.offset.length=0,a.offset[0]=0,a.offset[1]=a.scrollLength,a.progress=(0,u.progress)(0,a.scrollLength,a.current);let c=r-l;a.velocity=c>50?0:(0,f.velocityPerSecond)(a.current-s,c)}var g=e.i(361002),v=e.i(690832),y=e.i(508983),x=e.i(920479);let b={start:0,center:.5,end:1};function w(e,t,i=0){let r=0;if(e in b&&(e=b[e]),"string"==typeof e){let t=parseFloat(e);e.endsWith("px")?r=t:e.endsWith("%")?e=t/100:e.endsWith("vw")?r=t/100*document.documentElement.clientWidth:e.endsWith("vh")?r=t/100*document.documentElement.clientHeight:e=t}return"number"==typeof e&&(r=t*e),i+r}let C=[0,0],P=[[0,0],[1,1]],_={x:0,y:0},B=new WeakMap,S=new WeakMap,T=new WeakMap,A=new WeakMap,M=new WeakMap,k=e=>e===document.scrollingElement?window:e;function R(e,{container:t=document.scrollingElement,trackContentSize:i=!1,...r}={}
1){if(!t)return o.noop;let a=T.get(t);a||(a=new Set,T.set(t,a));let n=function(e,t,i,r={}){return{measure:t=>{!function(e,t=e,i){if(i.x.targetOffset=0,i.y.targetOffset=0,t!==e){let r=t;for(;r&&r!==e;)i.x.targetOffset+=r.offsetLeft,i.y.targetOffset+=r.offsetTop,r=r.offsetParent}i.x.targetLength=t===e?t.scrollWidth:t.clientWidth,i.y.targetLength=t===e?t.scrollHeight:t.clientHeight,i.x.containerLength=e.clientWidth,i.y.containerLength=e.clientHeight}(e,r.target,i),p(e,"x",i,t),p(e,"y",i,t),i.time=t,(r.offset||r.target)&&function(e,t,i){let{offset:r=P}=i,{target:a=e,axis:n="y"}=i,o="y"===n?"height":"width",s=a!==e?function(e,t){let i={x:0,y:0},r=e;for(;r&&r!==t;)if((0,x.isHTMLElement)(r))i.x+=r.offsetLeft,i.y+=r.offsetTop,r=r.offsetParent;else if("svg"===r.tagName){let e=r.getBoundingClientRect(),t=(r=r.parentElement).getBoundingClientRect();i.x+=e.left-t.left,i.y+=e.top-t.top}else if(r instanceof SVGGraphicsElement){let{x:e,y:t}=r.getBBox();i.x+=e,i.y+=t;let a=null,n=r.parentNode;for(;!a;)"svg"===n.tagName&&(a=n),n=r.parentNode;r=a}else break;return i}(a,e):_,l=a===e?{width:e.scrollWidth,height:e.scrollHeight}:"getBBox"in a&&"svg"!==a.tagName?a.getBBox():{width:a.clientWidth,height:a.clientHeight},c={width:e.clientWidth,height:e.clientHeight};t[n].offset.length=0;let d=!t[n].interpolate,u=r.length;for(let e=0;e<u;e++){let i=function(e,t,i,r){let a=Array.isArray(e)?e:C,n=0;return"number"==typeof e?a=[e,e]:"string"==typeof e&&(a=(e=e.trim()).includes(" ")?e.split(" "):[e,b[e]?e:"0"]),(n=w(a[0],i,r))-w(a[1],t)}(r[e],c[o],l[o],s[n]);d||i===t[n].interpolatorOffsets[e]||(d=!0),t[n].offset[e]=i}d&&(t[n].interpolate=(0,g.interpolate)(t[n].offset,(0,v.defaultOffset)(r),{clamp:!1}),t[n].interpolatorOffsets=[...t[n].offset]),t[n].progress=(0,y.clamp)(0,1,t[n].interpolate(t[n].current))}(e,i,r)},notify:()=>t(i)}}(t,e,{time:0,x:m(),y:m()},r);if(a.add(n),!B.has(t)){let e=()=>{for(let e of a)e.measure(s.frameData.timestamp);s.frame.preUpdate(i)},i=()=>{for(let e of a)e.notify()},r=()=>s.frame.read(e);B.set(t,r);let n=k(t);window.addEventListener("resize",r),t!==document.documentElement&&S.set(t,(0,d.resize)(t,r)),n.addEventListener("scroll",r),r()}if(i&&!M.has(t)){let e=B.get(t),i={width:t.scrollWidth,height:t.scrollHeight};A.set(t,i);let r=s.frame.read(()=>{let r=t.scrollWidth,a=t.scrollHeight;(i.width!==r||i.height!==a)&&(e(),i.width=r,i.height=a)},!0);M.set(t,r)}let l=B.get(t);return s.frame.read(l,!1,!0),()=>{(0,s.cancelFrame)(l);let e=T.get(t);if(!e||(e.delete(n),e.size))return;let i=B.get(t);B.delete(t),i&&(k(t).removeEventListener("scroll",i),S.get(t)?.(),window.removeEventListener("resize",i));let r=M.get(t);r&&((0,s.cancelFrame)(r),M.delete(t)),A.delete(t)}}let V=[[[[0,1],[1,1]],"entry"],[[[0,0],[1,0]],"exit"],[[[1,0],[0,1]],"cover"],[P,"contain"]],U={start:0,end:1};function E(e){if(!e)return{rangeStart:"contain 0%",rangeEnd:"contain 100%"};for(let[t,i]of V)if(function(e,t){let i=function(e){if(2!==e.length)return;let t=[];for(let i of e)if(Array.isArray(i))t.push(i);else{if("string"!=typeof i)return;let e=function(e){let t=e.trim().split(/\s+/);if(2!==t.length)return;let i=U[t[0]],r=U[t[1]];if(void 0!==i&&void 0!==r)return[i,r]}(i);if(!e)return;t.push(e)}return t}(e);if(!i)return!1;for(let e=0;e<2;e++){let r=i[e],a=t[e];if(r[0]!==a[0]||r[1]!==a[1])return!1}return!0}(e,t))return{rangeStart:`${i} 0%`,rangeEnd:`${i} 100%`}}let q=new Map;function I(e){let t={value:0},i=R(i=>{t.value=100*i[e.axis].progress},e);return{currentTime:t,cancel:i}}function z({source:e,container:t,...i}){let{axis:r}=i;e&&(t=e);let a=q.get(t);a||(a=new Map,q.set(t,a));let n=i.target??"self",o=a.get(n);o||(o={},a.set(n,o));let s=r+(i.offset??[]).join(",");return o[s]||(i.target&&c(i.target)?E(i.offset)?o[s]=new ViewTimeline({subject:i.target,axis:r}):o[s]=I({container:t,...i}):c()?o[s]=new ScrollTimeline({source:t,axis:r}):o[s]=I({container:t,...i})),o[s]}function H(e,{axis:t="y",container:i=document.scrollingElement,...r}={}){let a,n,s;
1if(!i)return o.noop;let d={axis:t,container:i,...r};return"function"==typeof e?function(e,t){return 2===e.length||t&&(t.target||t.offset)?R(i=>{e(i[t.axis].progress,i)},t):l(e,z(t))}(e,d):(a=z(d),n=d.target?E(d.offset):void 0,s=d.target?c(d.target)&&!!n:c(),e.attachTimeline({timeline:s?a:void 0,...n&&s&&{rangeStart:n.rangeStart,rangeEnd:n.rangeEnd},observe:e=>(e.pause(),l(t=>{e.time=e.iterationDuration*t},a))}))}var W=e.i(322135),D=e.i(590602);let N=()=>({scrollX:(0,r.motionValue)(0),scrollY:(0,r.motionValue)(0),scrollXProgress:(0,r.motionValue)(0),scrollYProgress:(0,r.motionValue)(0)}),O=e=>!!e&&!e.current;function j(e,i,r,a){return{factory:n=>{let o,s=()=>{O(r)||O(a)?t.microtask.read(s):o=H(n,{...i,axis:e,container:r?.current||void 0,target:a?.current||void 0})};return t.microtask.read(s),()=>{(0,t.cancelMicrotask)(s),o?.()}},times:[0,1],keyframes:[0,1],ease:e=>e,duration:1}}e.s(["useScroll",0,function({container:e,target:r,...o}={}){var s;let l=(0,W.useConstant)(N);s=o.offset,!("u"<typeof window)&&(r?(0,i.supportsViewTimeline)()&&!!E(s):(0,i.supportsScrollTimeline)())&&(l.scrollXProgress.accelerate=j("x",o,e,r),l.scrollYProgress.accelerate=j("y",o,e,r));let c=(0,n.useRef)(null),d=(0,n.useRef)(!1),u=(0,n.useCallback)(()=>(c.current=H((e,{x:t,y:i})=>{l.scrollX.set(t.current),l.scrollXProgress.set(t.progress),l.scrollY.set(i.current),l.scrollYProgress.set(i.progress)},{...o,container:e?.current||void 0,target:r?.current||void 0}),()=>{c.current?.()}),[e,r,JSON.stringify(o.offset)]);return(0,D.useIsomorphicLayoutEffect)(()=>{if(d.current=!1,!(O(e)||O(r)))return u();d.current=!0},[u]),(0,n.useEffect)(()=>{let i;if(!d.current)return;let n=()=>{let t=O(e),n=O(r);(0,a.invariant)(!t,"Container ref is defined but not hydrated","use-scroll-ref"),(0,a.invariant)(!n,"Target ref is defined but not hydrated","use-scroll-ref"),t||n||(i=u())};return t.microtask.read(n),()=>{(0,t.cancelMicrotask)(n),i?.()}},[u]),l}],604950)},508305,e=>{"use strict";var t=e.i(819834);e.s(["CanvasParticleContainerAdaptor",0,class{execute(e,i){let r=e.renderer,a=r.canvasContext.activeContext,n=i.particleChildren,o=i.texture;a.save(),r.canvasContext.setContextTransform(i.worldTransform,i.roundPixels),r.canvasContext.setBlendMode(i.groupBlendMode);let s=(i.groupColorAlpha>>>24&255)/255*(r.filter?.alphaMultiplier??1);for(let e=0;e<n.length;e++){let i=n[e],r=i.texture||o;if(!r?.source?.resource)continue;let l=i.color,c=(l>>>24&255)/255*s;if(c<=0)continue;let d=0xffffff&l,u=((255&d)<<16)+(65280&d)+(d>>16&255),f=r.source.resource;0xffffff!==u&&(f=t.canvasUtils.getTintedCanvas({texture:r},u));let m=r.frame,h=r.source.resolution,p=m.x*h,g=m.y*h,v=m.width*h,y=m.height*h;a.globalAlpha=c;let x=-i.anchorX*m.width,b=-i.anchorY*m.height;0!==i.rotation||1!==i.scaleX||1!==i.scaleY?(a.save(),a.translate(i.x,i.y),a.rotate(i.rotation),a.scale(i.scaleX,i.scaleY),a.drawImage(f,p,g,v,y,x,b,m.width,m.height),a.restore()):a.drawImage(f,p,g,v,y,i.x+x,i.y+b,m.width,m.height)}a.restore()}}])},416666,813974,301675,250375,810196,e=>{"use strict";var t=e.i(116447),i=e.i(453779),r=e.i(508305);class a extends i.ParticleContainerPipe{constructor(e){super(e,new r.CanvasParticleContainerAdaptor)}}a.extension={type:[t.ExtensionType.CanvasPipes],name:"particle"},e.s(["CanvasParticleContainerPipe",0,a],416666);class n{execute(e,t){let i=e.state,r=e.renderer,a=t.shader||e.defaultShader;a.resources.uTexture=t.texture._source,a.resources.uniforms=e.localUniforms;let n=r.gl,o=e.getBuffers(t);r.shader.bind(a),r.state.set(i),r.geometry.bind(o.geometry,a.glProgram);let s=2===o.geometry.indexBuffer.data.BYTES_PER_ELEMENT?n.UNSIGNED_SHORT:n.UNSIGNED_INT;n.drawElements(n.TRIANGLES,6*t.particleChildren.length,s,0)}}e.s(["GlParticleContainerAdaptor",0,n],813974);var o=i;class s extends o.ParticleContainerPipe{constructor(e){super(e,new n)}}s.extension={type:[t.ExtensionType.WebGLPipes],name:"particle"},e.s(["GlParticleContainerPipe",0,s],301675);class l{execute(e,t){let i=e.renderer,r=t.shader||e.defaultShader;r.groups[0]=i.renderPipes.uniformBatch.getUniformBindGroup(e.localUniforms,!0),r.groups[1]=i.texture.getTextureBindGroup(t.texture);let a=e.state,n=e.getBuffers(t);i.encoder.draw({geometry:n.geometry,shader:t.shader||e.defaultShader,state:a,size:6*t.particleChildren.length})}}e.s(["GpuParticleContainerAdaptor",0,l],250375);var c=i;class d extends c.ParticleContainerPipe{constructor(e){super(e,new l)}}d.extension={type:[t.ExtensionType.WebGPUPipes],name:"particle"},e.s(["GpuParticleContainerPipe",0,d],810196)},979408,16170,e=>{"use strict";var t=e.i(453042),i=e.i(382827),r=e.i(293817),a=e.i(856664);let n=class e{constructor(t){if(t instanceof i.Texture)this.texture=t,(0,a.assignWithIgnore)(this,e.defaultOptions,{});else{const i={...e.defaultOptions,...t};(0,a.assignWithIgnore)(this,i,{})}}get alpha(){return this._alpha}set alpha(e){this._alpha=Math.min(Math.max(e,0),1),this._updateColor()}get tint(){return(0,r.bgr2rgb)(this._tint)}set tint(e){this._tint=t.Color.shared.setValue(e??0xffffff).toBgrNumber(),this._updateColor()}_updateColor(){this.color=this._tint+(255*this._alpha<<24)}};n.defaultOptions={anchorX:0,anchorY:0,x:0,y:0,scaleX:1,scaleY:1,rotation:0,tint:0xffffff,alpha:1},e.s(["Particle",0,n],979408);let o={vertex:{attributeName:"aVertex",format:"float32x2",code:`
2            const texture = p.texture;
3            const sx = p.scaleX;
4            const sy = p.scaleY;
5            const ax = p.anchorX;
6            const ay = p.anchorY;
7            const trim = texture.trim;
8            const orig = texture.orig;
9
10            if (trim)
11            {
12                w1 = trim.x - (ax * orig.width);
13                w0 = w1 + trim.width;
14
15                h1 = trim.y - (ay * orig.height);
16                h0 = h1 + trim.height;
17            }
18            else
19            {
20                w1 = -ax * (orig.width);
21                w0 = w1 + orig.width;
22
23                h1 = -ay * (orig.height);
24                h0 = h1 + orig.height;
25            }
26
27            f32v[offset] = w1 * sx;
28            f32v[offset + 1] = h1 * sy;
29
30            f32v[offset + stride] = w0 * sx;
31            f32v[offset + stride + 1] = h1 * sy;
32
33            f32v[offset + (stride * 2)] = w0 * sx;
34            f32v[offset + (stride * 2) + 1] = h0 * sy;
35
36            f32v[offset + (stride * 3)] = w1 * sx;
37            f32v[offset + (stride * 3) + 1] = h0 * sy;
38        `,dynamic:!1},position:{attributeName:"aPosition",format:"float32x2",code:`
39            var x = p.x;
40            var y = p.y;
41
42            f32v[offset] = x;
43            f32v[offset + 1] = y;
44
45            f32v[offset + stride] = x;
46            f32v[offset + stride + 1] = y;
47
48            f32v[offset + (stride * 2)] = x;
49            f32v[offset + (stride * 2) + 1] = y;
50
51            f32v[offset + (stride * 3)] = x;
52            f32v[offset + (stride * 3) + 1] = y;
53        `,dynamic:!0},rotation:{attributeName:"aRotation",format:"float32",code:`
54            var rotation = p.rotation;
55
56            f32v[offset] = rotation;
57            f32v[offset + stride] = rotation;
58            f32v[offset + (stride * 2)] = rotation;
59            f32v[offset + (stride * 3)] = rotation;
60        `,dynamic:!1},uvs:{attributeName:"aUV",format:"float32x2",code:`
61            var uvs = p.texture.uvs;
62
63            f32v[offset] = uvs.x0;
64            f32v[offset + 1] = uvs.y0;
65
66            f32v[offset + stride] = uvs.x1;
67            f32v[offset + stride + 1] = uvs.y1;
68
69            f32v[offset + (stride * 2)] = uvs.x2;
70            f32v[offset + (stride * 2) + 1] = uvs.y2;
71
72            f32v[offset + (stride * 3)] = uvs.x3;
73            f32v[offset + (stride * 3) + 1] = uvs.y3;
74        `,dynamic:!1},color:{attributeName:"aColor",format:"unorm8x4",code:`
75            const c = p.color;
76
77            u32v[offset] = c;
78            u32v[offset + stride] = c;
79            u32v[offset + (stride * 2)] = c;
80            u32v[offset + (stride * 3)] = c;
81        `,dynamic:!1}};e.s(["particleData",0,o],16170)},291647,30248,312383,e=>{"use strict";var t=e.i(785484),i=e.i(486704),r=e.i(813004),a=e.i(354402),n=e.i(762056);function o(e,t=null){let i=6*e;if(i>65535?t||(t=new Uint32Array(i)):t||(t=new Uint16Array(i)),t.length!==i)throw Error(`Out buffer length is incorrect, got ${t.length} and expected ${i}`);for(let e=0,r=0;e<i;e+=6,r+=4)t[e+0]=r+0,t[e+1]=r+1,t[e+2]=r+2,t[e+3]=r+0,t[e+4]=r+2,t[e+5]=r+3;return t}function s(e){return{dynamicUpdate:l(e,!0),staticUpdate:l(e,!1)}}function l(e,t){let i=[];i.push(`
82
83        var index = 0;
84
85        for (let i = 0; i < ps.length; ++i)
86        {
87            const p = ps[i];
88
89            `);let r=0;for(let n in e){let o=e[n];t===o.dynamic&&(i.push(`offset = index + ${r}`),i.push(o.code),r+=(0,a.getAttributeInfoFromFormat)(o.format).stride/4)}return i.push(`
90            index += stride * 4;
91        }
92    `),i.unshift(`
93        var stride = ${r};
94    `),Function("ps","f32v","u32v",i.join("\n"))}e.s(["createIndicesForQuads",0,o],30248),e.s(["generateParticleUpdateFunction",0,s],312383),e.s(["ParticleBuffer",0,class{constructor(e){this._size=0,this._generateParticleUpdateCache={};const s=this._size=e.size??1e3,l=e.properties;let c=0,d=0;for(const e in l){const t=l[e],i=(0,a.getAttributeInfoFromFormat)(t.format);t.dynamic?d+=i.stride:c+=i.stride}this._dynamicStride=d/4,this._staticStride=c/4,this.staticAttributeBuffer=new n.ViewableBuffer(4*s*c),this.dynamicAttributeBuffer=new n.ViewableBuffer(4*s*d),this.indexBuffer=o(s);const u=new r.Geometry;let f=0,m=0;for(const e in this._staticBuffer=new t.Buffer({data:new Float32Array(1),label:"static-particle-buffer",shrinkToFit:!1,usage:i.BufferUsage.VERTEX|i.BufferUsage.COPY_DST}),this._dynamicBuffer=new t.Buffer({data:new Float32Array(1),label:"dynamic-particle-buffer",shrinkToFit:!1,usage:i.BufferUsage.VERTEX|i.BufferUsage.COPY_DST}),l){const t=l[e],i=(0,a.getAttributeInfoFromFormat)(t.format);t.dynamic?(u.addAttribute(t.attributeName,{buffer:this._dynamicBuffer,stride:4*this._dynamicStride,offset:4*f,format:t.format}),f+=i.size):(u.addAttribute(t.attributeName,{buffer:this._staticBuffer,stride:4*this._staticStri
94de,offset:4*m,format:t.format}),m+=i.size)}u.addIndex(this.indexBuffer);const h=this.getParticleUpdate(l);this._dynamicUpload=h.dynamicUpdate,this._staticUpload=h.staticUpdate,this.geometry=u}getParticleUpdate(e){let t=function(e){let t=[];for(let i in e){let r=e[i];t.push(i,r.code,r.dynamic?"d":"s")}return t.join("_")}(e);return this._generateParticleUpdateCache[t]||(this._generateParticleUpdateCache[t]=this.generateParticleUpdate(e)),this._generateParticleUpdateCache[t]}generateParticleUpdate(e){return s(e)}update(e,t){e.length>this._size&&(t=!0,this._size=Math.max(e.length,1.5*this._size|0),this.staticAttributeBuffer=new n.ViewableBuffer(this._size*this._staticStride*16),this.dynamicAttributeBuffer=new n.ViewableBuffer(this._size*this._dynamicStride*16),this.indexBuffer=o(this._size),this.geometry.indexBuffer.setDataWithSize(this.indexBuffer,this.indexBuffer.byteLength,!0));let i=this.dynamicAttributeBuffer;if(this._dynamicUpload(e,i.float32View,i.uint32View),this._dynamicBuffer.setDataWithSize(this.dynamicAttributeBuffer.float32View,e.length*this._dynamicStride*4,!0),t){let t=this.staticAttributeBuffer;this._staticUpload(e,t.float32View,t.uint32View),this._staticBuffer.setDataWithSize(t.float32View,e.length*this._staticStride*4,!0)}}destroy(){this._staticBuffer.destroy(),this._dynamicBuffer.destroy(),this.geometry.destroy()}}],291647)},352115,e=>{"use strict";var t=e.i(63038),i=e.i(764472),r=e.i(16170),a=e.i(116447),n=e.i(416666),o=e.i(301675),s=e.i(810196);a.extensions.add(o.GlParticleContainerPipe),a.extensions.add(s.GpuParticleContainerPipe),a.extensions.add(n.CanvasParticleContainerPipe);let l=new t.Bounds(0,0,0,0),c=class e extends i.ViewContainer{constructor(t={}){const{dynamicProperties:i,shader:a,roundPixels:n,texture:o,particles:s,...l}=t={...e.defaultOptions,...t,dynamicProperties:{...e.defaultOptions.dynamicProperties,...t?.dynamicProperties}};for(const e in super({label:"ParticleContainer",...l}),this.renderPipeId="particle",this.batched=!1,this._childrenDirty=!1,this.texture=o||null,this.shader=a,this._properties={},r.particleData){const t=r.particleData[e],a=i[e];this._properties[e]={...t,dynamic:a}}this.allowChildren=!0,this.roundPixels=n??!1,this.particleChildren=s??[]}addParticle(...e){for(let t=0;t<e.length;t++)this.particleChildren.push(e[t]);return this.onViewUpdate(),e[0]}removeParticle(...e){let t=!1;for(let i=0;i<e.length;i++){let r=this.particleChildren.indexOf(e[i]);r>-1&&(this.particleChildren.splice(r,1),t=!0)}return t&&this.onViewUpdate(),e[0]}update(){this._childrenDirty=!0}onViewUpdate(){this._childrenDirty=!0,super.onViewUpdate()}get bounds(){return l}updateBounds(){}destroy(e=!1){if(super.destroy(e),"boolean"==typeof e?e:e?.texture){let t="boolean"==typeof e?e:e?.textureSource,i=this.texture??this.particleChildren[0]?.texture;i&&i.destroy(t)}this.texture=null,this.shader?.destroy()}removeParticles(e,t){e??(e=0),t??(t=this.particleChildren.length);let i=this.particleChildren.splice(e,t-e);return this.onViewUpdate(),i}removeParticleAt(e){let t=this.particleChildren.splice(e,1);return this.onViewUpdate(),t[0]}addParticleAt(e,t){return this.particleChildren.splice(t,0,e),this.onViewUpdate(),e}addChild(){throw Error("ParticleContainer.addChild() is not available. Please use ParticleContainer.addParticle()")}removeChild(){throw Error("ParticleContainer.removeChild() is not available. Please use ParticleContainer.removeParticle()")}removeChildren(e,t){throw Error("ParticleContainer.removeChildren() is not available. Please use ParticleContainer.removeParticles()")}removeChildAt(e){throw Error("ParticleContainer.removeChildAt() is not available. Please use ParticleContainer.removeParticleAt()")}getChildAt(e){throw Error("ParticleContainer.getChildAt() is not available. Please use ParticleContainer.getParticleAt()")}setChildIndex(e,t){throw Error("ParticleContainer.setChildIndex() is not available. Please use ParticleContainer.setParticleIndex()")}getChildIndex(e){throw Error("ParticleContainer.getChildIndex() is not available. Please use ParticleContainer.getParticleIndex()")}addChildAt(e,t){throw Error("ParticleContainer.addChildAt() is not available. Please use ParticleContainer.addParticleAt()")}swapChildren(e,t){throw Error("ParticleContainer.swapChildren() is not available. Please use ParticleContainer.swapParticles()")}reparentChild(){throw Error("ParticleContainer.reparentChild() is not available with the particle container")}reparentChildAt(e,t){throw Error("ParticleContainer.reparentChildAt() is not available with the particle container")}};c.defaultOptions={dynamicProperties:{vertex:!1,position:!0,rotation:!1,uvs:!1,color:!1},roundPixels:!1},e.s(["ParticleContainer",0,c],352115)},453779,202914,e=>{"use strict";var t=e.i(116447),i=e.i(440477),r=e.i(543890),a=e.i(986486),n=e.i(964850),o=e.i(530697),s=e.i(6
9458960),l=e.i(697788),c=e.i(291647),d=e.i(453042),u=e.i(868466),f=e.i(977363),m=e.i(639373),h=e.i(382827),p=e.i(984058),g=e.i(639531),v=e.i(228052),y=e.i(634803);class x extends m.Shader{constructor(){super({glProgram:u.GlProgram.from({vertex:v.default,fragment:g.default}),gpuProgram:f.GpuProgram.from({fragment:{source:y.default,entryPoint:"mainFragment"},vertex:{source:y.default,entryPoint:"mainVertex"}}),resources:{uTexture:h.Texture.WHITE.source,uSampler:new p.TextureStyle({}),uniforms:{uTranslationMatrix:{value:new i.Matrix,type:"mat3x3<f32>"},uColor:{value:new d.Color(0xffffff),type:"vec4<f32>"},uRound:{value:1,type:"f32"},uResolution:{value:[0,0],type:"vec2<f32>"}}}})}}e.s(["ParticleShader",0,x],202914);class b{constructor(e,t){this.state=n.State.for2d(),this.localUniforms=new r.UniformGroup({uTranslationMatrix:{value:new i.Matrix,type:"mat3x3<f32>"},uColor:{value:new Float32Array(4),type:"vec4<f32>"},uRound:{value:1,type:"f32"},uResolution:{value:[0,0],type:"vec2<f32>"}}),this.renderer=e,this.adaptor=t,this.defaultShader=new x,this.state=n.State.for2d(),this._managedContainers=new o.GCManagedHash({renderer:e,type:"renderable",name:"particleContainer"})}validateRenderable(e){return!1}addRenderable(e,t){this.renderer.renderPipes.batch.break(t),t.add(e)}getBuffers(e){return e._gpuData[this.renderer.uid]||this._initBuffer(e)}_initBuffer(e){return e._gpuData[this.renderer.uid]=new c.ParticleBuffer({size:e.particleChildren.length,properties:e._properties}),this._managedContainers.add(e),e._gpuData[this.renderer.uid]}updateRenderable(e){}execute(e){let t=e.particleChildren;if(0===t.length)return;let i=this.renderer,r=this.getBuffers(e);e.texture||(e.texture=t[0].texture);let n=this.state;r.update(t,e._childrenDirty),e._childrenDirty=!1,n.blendMode=(0,a.getAdjustedBlendModeBlend)(e.groupBlendMode,e.texture._source);let o=this.localUniforms.uniforms,c=o.uTranslationMatrix;e.worldTransform.copyTo(c);let d=i.globalUniforms.globalUniformData;c.tx-=d.offset.x,c.ty-=d.offset.y,c.prepend(d.projectionMatrix),o.uResolution=d.resolution,o.uRound=i._roundPixels|e._roundPixels;let u=e.groupColorAlpha,f=d.worldColor,m=(0,s.multiplyHexColors)(0xffffff&u,0xffffff&f);(0,l.color32BitToUniform)(((u>>>24)*(f>>>24)/255<<24|m)>>>0,o.uColor,0),this.adaptor.execute(this,e)}destroy(){this._managedContainers.destroy(),this.renderer=null,this.defaultShader&&(this.defaultShader.destroy(),this.defaultShader=null)}}b.extension={type:[t.ExtensionType.CanvasPipes],name:"particle"},e.s(["ParticleContainerPipe",0,b],453779)},639531,228052,634803,e=>{"use strict";e.s(["default",0,"varying vec2 vUV;\nvarying vec4 vColor;\n\nuniform sampler2D uTexture;\n\nvoid main(void){\n    vec4 color = texture2D(uTexture, vUV) * vColor;\n    gl_FragColor = color;\n}"],639531),e.s(["default",0,"attribute vec2 aVertex;\nattribute vec2 aUV;\nattribute vec4 aColor;\n\nattribute vec2 aPosition;\nattribute float aRotation;\n\nuniform mat3 uTranslationMatrix;\nuniform float uRound;\nuniform vec2 uResolution;\nuniform vec4 uColor;\n\nvarying vec2 vUV;\nvarying vec4 vColor;\n\nvec2 roundPixels(vec2 position, vec2 targetSize)\n{       \n    return (floor(((position * 0.5 + 0.5) * targetSize) + 0.5) / targetSize) * 2.0 - 1.0;\n}\n\nvoid main(void){\n    float cosRotation = cos(aRotation);\n    float sinRotation = sin(aRotation);\n    float x = aVertex.x * cosRotation - aVertex.y * sinRotation;\n    float y = aVertex.x * sinRotation + aVertex.y * cosRotation;\n\n    vec2 v = vec2(x, y);\n    v = v + aPosition;\n\n    gl_Position = vec4((uTranslationMatrix * vec3(v, 1.0)).xy, 0.0, 1.0);\n\n    if(uRound == 1.0)\n    {\n        gl_Position.xy = roundPixels(gl_Position.xy, uResolution);\n    }\n\n    vUV = aUV;\n    vColor = vec4(aColor.rgb * aColor.a, aColor.a) * uColor;\n}\n"],228052),e.s(["default",0,"\nstruct ParticleUniforms {\n  uTranslationMatrix:mat3x3<f32>,\n  uColor:vec4<f32>,\n  uRound:f32,\n  uResolution:vec2<f32>,\n};\n\nfn roundPixels(position: vec2<f32>, targetSize: vec2<f32>) -> vec2<f32>\n{\n  return (floor(((position * 0.5 + 0.5) * targetSize) + 0.5) / targetSize) * 2.0 - 1.0;\n}\n\n@group(0) @binding(0) var<uniform> uniforms: ParticleUniforms;\n\n@group(1) @binding(0) var uTexture: texture_2d<f32>;\n@group(1) @binding(1) var uSampler : sampler;\n\nstruct VSOutput {\n    @builtin(position) position: vec4<f32>,\n    @location(0) uv : vec2<f32>,\n    @location(1) color : vec4<f32>,\n  };\n@vertex\nfn mainVertex(\n  @location(0) aVertex: vec2<f32>,\n  @location(1) aPosition: vec2<f32>,\n  @location(2) aUV: vec2<f32>,\n  @location(3) aColor: vec4<f32>,\n  @location(4) aRotation: f32,\n) -> VSOutput {\n  \n   let v = vec2(\n       aVertex.x * cos(aRotation) - aVertex.y * sin(aRotation),\n       aVertex.x * sin(aRotation) + aVertex.y * cos(aRotation)\n   ) + aPosition;\n\n   var position = vec4((uniforms.uTranslationMatrix * vec3(v, 1.0)).xy, 0.0, 1.0);\n\n   if(uniforms.uRound == 1.0) {\n       position = vec4(roundPixels(position.xy, uniforms.uResolution), position.zw);\n   }\n\n    let vColor = vec4(aColor.rgb * aColor.a, aColor.a) * uniforms.uColor;\n\n  return VSOutput(\n   position,\n   aUV,\n   vColor,\n  );\n}\n\n@fragment\nfn mainFragment(\n  @location(0) uv: vec2<f32>,\n  @location(1) color: vec4<f32>,\n  @builtin(position) position: vec4<f32>,\n) -> @location(0) vec4<f32> {\n\n    var sample = textureSample(uTexture, uSampler, uv) * color;
94\n   \n    return sample;\n}"],634803)},924206,e=>{"use strict";let t=async(e,t,i=.01)=>new Promise(r=>{if(!t)return void r();let a=null,n=new IntersectionObserver(t=>{t[0].isIntersecting?a||(a=setTimeout(()=>{n.disconnect(),r()},e)):a&&(clearTimeout(a),a=null)},{threshold:i});n.observe(t)});e.s(["sleep",0,e=>new Promise(t=>setTimeout(t,e)),"sleepVisible",0,t])}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.