1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[5148,13919,17273,29009,38005,82767],{10855:(t,e,i)=>{i.d(e,{Y:()=>s});var n={success:{pattern:[{duration:30,intensity:.5},{delay:60,duration:40,intensity:1}]},warning:{pattern:[{duration:40,intensity:.8},{delay:100,duration:40,intensity:.6}]},error:{pattern:[{duration:40,intensity:.9},{delay:40,duration:40,intensity:.9},{delay:40,duration:40,intensity:.9}]},light:{pattern:[{duration:15,intensity:.4}]},medium:{pattern:[{duration:25,intensity:.7}]},heavy:{pattern:[{duration:35,intensity:1}]},soft:{pattern:[{duration:40,intensity:.5}]},rigid:{pattern:[{duration:10,intensity:1}]},selection:{pattern:[{duration:8,intensity:.3}]},nudge:{pattern:[{duration:80,intensity:.8},{delay:80,duration:50,intensity:.3}]},buzz:{pattern:[{duration:1e3,intensity:1}]}},r=0,a=class t{constructor(t){this.hapticLabel=null,this.domInitialized=!1,this.rafId=null,this.patternResolve=null,this.audioCtx=null,this.audioFilter=null,this.audioGain=null,this.audioBuffer=null,this.instanceId=++r,this.debug=t?.debug??!1,this.showSwitch=t?.showSwitch??!1}static{this.isSupported="u">typeof navigator&&"function"==typeof navigator.vibrate}async trigger(e=[{duration:25,intensity:.7}],i){let r=function(t){if("number"==typeof t)return{vibrations:[{duration:t}]};if("string"==typeof t){let e=n[t];return e?{vibrations:e.pattern.map(t=>({...t}))}:(console.warn(`[web-haptics] Unknown preset: "${t}"`),null)}if(Array.isArray(t)){if(0===t.length)return{vibrations:[]};if("number"==typeof t[0]){let e=[];for(let i=0;i<t.length;i+=2){let n=i>0?t[i-1]:0;e.push({...n>0&&{delay:n},duration:t[i]})}return{vibrations:e}}return{vibrations:t.map(t=>({...t}))}}return{vibrations:t.pattern.map(t=>({...t}))}}(e);if(!r)return;let{vibrations:a}=r;if(0===a.length)return;let o=Math.max(0,Math.min(1,i?.intensity??.5));for(let t of a)if(t.duration>1e3&&(t.duration=1e3),!Number.isFinite(t.duration)||t.duration<0||void 0!==t.delay&&(!Number.isFinite(t.delay)||t.delay<0))return void console.warn("[web-haptics] Invalid vibration values. Durations and delays must be finite non-negative numbers.");if(t.isSupported&&navigator.vibrate(function(t,e){let i=[];for(let n=0;n<t.length;n++){let r=t[n],a=Math.max(0,Math.min(1,r.intensity??e)),o=r.delay??0;o>0&&(i.length>0&&i.length%2==0?i[i.length-1]+=o:(0===i.length&&i.push(0),i.push(o)));let s=function(t,e){if(e>=1)return[t];if(e<=0)return[];let i=Math.max(1,Math.round(20*e)),n=20-i,r=[],a=t;for(;a>=20;)r.push(i),r.push(n),a-=20;if(a>0){let t=Math.max(1,Math.round(a*e));r.push(t);let i=a-t;i>0&&r.push(i)}return r}(r.duration,a);if(0===s.length){i.length>0&&i.length%2==0?i[i.length-1]+=r.duration:r.duration>0&&(i.push(0),i.push(r.duration));continue}for(let t of s)i.push(t)}return i}(a,o)),!t.isSupported||this.debug){if(this.ensureDOM(),!this.hapticLabel)return;this.debug&&await this.ensureAudio(),this.stopPattern();let t=(a[0]?.delay??0)===0;if(t&&(this.hapticLabel.click(),this.debug&&this.audioCtx)){let t=Math.max(0,Math.min(1,a[0].intensity??o));this.playClick(t)}await this.runPattern(a,o,t)}}cancel(){this.stopPattern(),t.isSupported&&navigator.vibrate(0)}destroy(){this.stopPattern(),this.hapticLabel&&(this.hapticLabel.remove(),this.hapticLabel=null,this.domInitialized=!1),this.audioCtx&&(this.audioCtx.close(),this.audioCtx=null,this.audioFilter=null,this.audioGain=null,this.audioBuffer=null)}setDebug(t){this.debug=t,!t&&this.audioCtx&&(this.audioCtx.close(),this.audioCtx=null,this.audioFilter=null,this.audioGain=null,this.audioBuffer=null)}setShowSwitch(t){if(this.showSwitch=t,this.hapticLabel){let e=this.hapticLabel.querySelector("input");this.hapticLabel.style.display=t?"":"none",e&&(e.style.display=t?"":"none")}}stopPattern(){null!==this.rafId&&(cancelAnimationFrame(this.rafId),this.rafId=null),this.patternResolve?.(),this.patternResolve=null}runPattern(t,e,i){return new Promise(n=>{this.patternResolve=n;let r=[],a=0;for(let i of t){let t=Math.max(0,Math.min(1,i.intensity??e)),n=i.delay??0;n>0&&(a+=n,r.push({end:a,isOn:!1,intensity:0})),a+=i.duration,r.push({end:a,isOn:!0,intensity:t})}let o=a,s=0,l=-1,u=t=>{0===s&&(s=t);let e=t-s;if(e>=o){this.rafId=null,this.patternResolve=null,n();return}let a=r[0];for(let t of r)if(e<t.end){a=t;break}if(a.isOn){let e=16+(1-a.intensity)*184;-1===l?(l=t,i||(this.hapticLabel?.click(),this.debug&&this.audioCtx&&this.playClick(a.intensity),i=!0)):t-l>=e&&(this.hapticLabel?.click(),this.debug&&this.audioCtx&&this.playClick(a.intensity),l=t)}this.rafId=requestAnimationFrame(u)};this.rafId=requestAnimationFrame(u)})}playClick(t){if(!this.audioCtx||!this.audioFilter||!this.audioGain||!this.audioBuffer)return;let e=this.audioBuffer.getChannelData(0);for(let t=0;t<e.length;t++)e[t]=(2*Math.random()-1)*Math.exp(-t/25);this.audioGain.gain.value=.5*t;let i=1+(Math.random()-.5)*.3;this.audioFilter.frequency.value=(2e3+2e3*t)*i;let n=this.audioCtx.createBufferSource();n.buffer=this.audioBuffer,n.connect(this.audioFilter),n.onended=()=>n.disconnect(),n.start()}async ensureAudio(){if(!this.audioCtx&&"u">typeof AudioContext){this.audioCtx=new AudioContext,this.audioFilter=this.audioCtx.createBiquadFilter(),this.audioFilter.type="bandpass",this.audioFilter.frequency.value=4e3,this.audioFilter.Q.value=8,this.audioGain=this.audioCtx.createGain(),this.audioFilter.connect(this.audioGain),this.audioGain.connect(this.audioCtx.destination),this.audioBuffer=this.audioCtx.createBuffer(1,.004*this.audioCtx.sampleRate,this.audioCtx.sampleRate);let t=this.audioBuffer.getChannelData(0);for(let e=0;e<t.length;e++)t[e]=(2*Math.random()-1)*Math.exp(-e/25)}this.audioCtx?.state==="suspended"&&await this.audioCtx.resume()}ensureDOM(){if(this.domInitialized||typeof document>"u")return;let t=`web-haptics-${this.instanceId}`,e=document.createElement("label");e.setAttribute("for",t),e.textContent="Haptic feedback",e.style.position="fixed",e.style.bottom="10px",e.style.left="10px",e.style.padding="5px 10px",e.style.backgroundColor="rgba(0, 0, 0, 0.7)",e.style.color="white",e.style.fontFamily="sans-serif",e.style.fontSize="14px",e.style.borderRadius="4px",e.style.zIndex="9999",e.style.userSelect="none",this.hapticLabel=e;let i=document.createElement("input");i.type="checkbox",i.setAttribute("switch",""),i.id=t,i.style.all="initial",i.style.appearance="auto",this.showSwitch||(e.style.display="none",i.style.display="none"),e.appendChild(i),document.body.appendChild(e),this.domInitialized=!0}},o=i(81327);function s(t){let e=(0,o.useRef)(null);return(0,o.useEffect)(()=>
1(e.current=new a(t),()=>{e.current?.destroy(),e.current=null}),[]),(0,o.useEffect)(()=>{e.current?.setDebug(t?.debug??!1)},[t?.debug]),(0,o.useEffect)(()=>{e.current?.setShowSwitch(t?.showSwitch??!1)},[t?.showSwitch]),{trigger:(0,o.useCallback)((t,i)=>e.current?.trigger(t,i),[]),cancel:(0,o.useCallback)(()=>e.current?.cancel(),[]),isSupported:a.isSupported}}},53049:(t,e,i)=>{i.d(e,{Hs:()=>I,UC:()=>B,VY:()=>K,ZL:()=>P,bL:()=>O,bm:()=>U,hE:()=>z,hJ:()=>M,l9:()=>F});var n=i(81327),r=i(26146),a=i(52431),o=i(52905),s=i(59802),l=i(83569),u=i(99820),d=i(93171),c=i(75660),h=i(79895),f=i(11470),p=i(34064),g=i(30002),y=i(4411),b=i(47218),v=i(45605),m=i(1223),x=Object.defineProperty,C=(t,e)=>x(t,"name",{value:e,configurable:!0}),w="Dialog",[D,I]=(0,o.A)(w),[R,S]=D(w),O=C(t=>{let{__scopeDialog:e,children:i,open:r,defaultOpen:a,onOpenChange:o,modal:u=!0}=t,d=n.useRef(null),c=n.useRef(null),[h,f]=(0,l.i)({prop:r,defaultProp:a??!1,onChange:o,caller:w}),[p,g]=n.useState(0),[y,b]=n.useState(0);return(0,m.jsx)(R,{scope:e,triggerRef:d,contentRef:c,contentId:(0,s.B)(),titleId:(0,s.B)(),descriptionId:(0,s.B)(),titlePresent:p>0,descriptionPresent:y>0,setTitleCount:g,setDescriptionCount:b,open:h,onOpenChange:f,onOpenToggle:n.useCallback(()=>f(t=>!t),[f]),modal:u,children:i})},"Dialog"),F=n.forwardRef(C(function(t,e){let{__scopeDialog:i,...n}=t,o=S("DialogTrigger",i),s=(0,a.s)(e,o.triggerRef);return(0,m.jsx)(f.sG.button,{type:"button","aria-haspopup":"dialog","aria-expanded":o.open,"aria-controls":o.open?o.contentId:void 0,"data-state":$(o.open),...n,ref:s,onClick:(0,r.mK)(t.onClick,o.onOpenToggle)})},"DialogTrigger")),A="DialogPortal",[j,L]=D(A,{forceMount:void 0}),P=C(t=>{let{__scopeDialog:e,forceMount:i,children:r,container:a}=t,o=S(A,e);return(0,m.jsx)(j,{scope:e,forceMount:i,children:n.Children.map(r,t=>(0,m.jsx)(h.C,{present:i||o.open,children:(0,m.jsx)(c.Z,{asChild:!0,container:a,children:t})}))})},"DialogPortal"),k="DialogOverlay",M=n.forwardRef(C(function(t,e){let i=L(k,t.__scopeDialog),{forceMount:n=i.forceMount,...r}=t,a=S(k,t.__scopeDialog);return a.modal?(0,m.jsx)(h.C,{present:n||a.open,children:(0,m.jsx)(G,{...r,ref:e})}):null},"DialogOverlay")),E=(0,v.TL)("DialogOverlay.RemoveScroll"),G=n.forwardRef(C(function(t,e){let{__scopeDialog:i,...n}=t,r=S(k,i),o=(0,u.e0)(),s=(0,a.s)(e,o);return(0,m.jsx)(y.A,{as:E,allowPinchZoom:!0,shards:[r.contentRef],children:(0,m.jsx)(f.sG.div,{"data-state":$(r.open),...n,ref:s,style:{pointerEvents:"auto",...n.style}})})},"DialogOverlayImpl")),_="DialogContent",B=n.forwardRef(C(function(t,e){let i=L(_,t.__scopeDialog),{forceMount:n=i.forceMount,...r}=t,a=S(_,t.__scopeDialog);return(0,m.jsx)(h.C,{present:n||a.open,children:a.modal?(0,m.jsx)(N,{...r,ref:e}):(0,m.jsx)(T,{...r,ref:e})})},"DialogContent")),N=n.forwardRef(C(function(t,e){let i=S(_,t.__scopeDialog),o=n.useRef(null),s=(0,a.s)(e,i.contentRef,o);return n.useEffect(()=>{let t=o.current;if(t)return(0,b.Eq)(t)},[]),(0,m.jsx)(q,{...t,ref:s,trapFocus:i.open,disableOutsidePointerEvents:i.open,onCloseAutoFocus:(0,r.mK)(t.onCloseAutoFocus,t=>{t.preventDefault(),i.triggerRef.current?.focus()}),onPointerDownOutside:(0,r.mK)(t.onPointerDownOutside,t=>{let e=t.detail.originalEvent,i=0===e.button&&!0===e.ctrlKey;(2===e.button||i)&&t.preventDefault()}),onFocusOutside:(0,r.mK)(t.onFocusOutside,t=>t.preventDefault())})},"DialogContentModal")),T=n.forwardRef(C(function(t,e){let i=S(_,t.__scopeDialog),r=n.useRef(!1),a=n.useRef(!1);return(0,m.jsx)(q,{...t,ref:e,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:e=>{t.onCloseAutoFocus?.(e),e.defaultPrevented||(r.current||i.triggerRef.current?.focus(),e.preventDefault()),r.current=!1,a.current=!1},onInteractOutside:e=>{t.onInteractOutside?.(e),e.defaultPrevented||(r.current=!0,"pointerdown"===e.detail.originalEvent.type&&(a.current=!0));let n=e.target;i.triggerRef.current?.contains(n)&&e.preventDefault(),"focusin"===e.detail.originalEvent.type&&a.current&&e.preventDefault()}})},"DialogContentNonModal")),q=n.forwardRef(C(function(t,e){let{__scopeDialog:i,trapFocus:n,onOpenAutoFocus:r,onCloseAutoFocus:a,...o}=t,s=S(_,i);return(0,p.Oh)(),(0,m.jsx)(m.Fragment,{children:(0,m.jsx)(d.n,{asChild:!0,loop:!0,trapped:n,onMountAutoFocus:r,onUnmountAutoFocus:a,children:(0,m.jsx)(u.qW,{role:"dialog",id:s.contentId,"aria-describedby":s.descriptionPresent?s.descriptionId:void 0,"aria-labelledby":s.titlePresent?s.titleId:void 0,"data-state":$(s.open),...o,ref:e,deferPointerDownOutside:!0,onDismiss:()=>s.onOpenChange(!1)})})})},"DialogContentImpl")),z=n.forwardRef(C(function(t,e){let{__scopeDialog:i,...n}
1=t,r=S("DialogTitle",i),{setTitleCount:a}=r;return(0,g.N)(()=>(a(t=>t+1),()=>a(t=>t-1)),[a]),(0,m.jsx)(f.sG.h2,{id:r.titleId,...n,ref:e})},"DialogTitle")),K=n.forwardRef(C(function(t,e){let{__scopeDialog:i,...n}=t,r=S("DialogDescription",i),{setDescriptionCount:a}=r;return(0,g.N)(()=>(a(t=>t+1),()=>a(t=>t-1)),[a]),(0,m.jsx)(f.sG.p,{id:r.descriptionId,...n,ref:e})},"DialogDescription")),U=n.forwardRef(C(function(t,e){let{__scopeDialog:i,...n}=t,a=S("DialogClose",i);return(0,m.jsx)(f.sG.button,{type:"button",...n,ref:e,onClick:(0,r.mK)(t.onClick,()=>a.onOpenChange(!1))})},"DialogClose"));function $(t){return t?"open":"closed"}C($,"getState")},73287:(t,e,i)=>{i.d(e,{H4:()=>x,_V:()=>m,bL:()=>v});var n=i(81327),r=i(47555),a=i(52905),o=i(19822),s=i(30002),l=i(11470),u=i(1223),d=Object.defineProperty,c=(t,e)=>d(t,"name",{value:e,configurable:!0}),h="Avatar",[f,p]=(0,a.A)(h),g=[0,()=>void 0],[y,b]=f(h),v=n.forwardRef(c(function(t,e){let{__scopeAvatar:i,...r}=t,[a,o]=n.useState("idle"),[s,d]=D();return(0,u.jsx)(y,{scope:i,imageLoadingStatus:a,setImageLoadingStatus:o,imageCount:s,setImageCount:d,children:(0,u.jsx)(l.sG.span,{...r,ref:e})})},"Avatar")),m=n.forwardRef(c(function(t,e){let{__scopeAvatar:i,src:r,onLoadingStatusChange:a,...d}=t,c=b("AvatarImage",i);I(c.setImageCount);let h=C(r,{referrerPolicy:d.referrerPolicy,crossOrigin:d.crossOrigin,loadingStatus:c.imageLoadingStatus,setLoadingStatus:c.setImageLoadingStatus}),f=(0,o.c)(t=>{a?.(t)}),p=n.useRef(h);return(0,s.N)(()=>{let t=p.current;p.current=h,h!==t&&f(h)},[h,f]),"loaded"===h?(0,u.jsx)(l.sG.img,{...d,ref:e,src:r}):null},"AvatarImage")),x=n.forwardRef(c(function(t,e){let{__scopeAvatar:i,delayMs:r,...a}=t,o=b("AvatarFallback",i),[s,d]=n.useState(void 0===r);return n.useEffect(()=>{if(void 0!==r){let t=window.setTimeout(()=>d(!0),r);return()=>window.clearTimeout(t)}},[r]),s&&"loaded"!==o.imageLoadingStatus?(0,u.jsx)(l.sG.span,{...a,ref:e}):null},"AvatarFallback"));function C(t,{loadingStatus:e,setLoadingStatus:i,referrerPolicy:n,crossOrigin:r}){return(0,s.N)(()=>{if(!t)return void i("error");let e=new window.Image,a=c(t=>{i(w(t.currentTarget))},"handleLoad"),o=c(()=>i("error"),"handleError");return e.addEventListener("load",a),e.addEventListener("error",o),n&&(e.referrerPolicy=n),e.crossOrigin=r??null,e.src=t,i(w(e)),()=>{e.removeEventListener("load",a),e.removeEventListener("error",o),i("idle")}},[t,r,n,i]),e}function w(t){return t.complete?t.naturalWidth>0?"loaded":"error":"loading"}function D(){let t=g;if(r.D){let[e]=t=n.useState(0),i=n.useRef(!1);n.useEffect(()=>{e>1&&!i.current&&(i.current=!0,console.warn("Avatar: Only one `Avatar.Image` component should be rendered per `Avatar.Root`, but multiple were detected. This will lead to unexpected behavior."))},[e])}return t}function I(t){r.D&&n.useEffect(()=>(t(t=>t+1),()=>{t(t=>t-1)}),[t])}c(C,"useImageLoadingStatus"),c(w,"getImageLoadingStatus"),c(D,"useImageCount"),c(I,"useUpdateImageCount")},94417:(t,e,i)=>{i.d(e,{F:()=>o});var n=i(63225);let r=t=>"boolean"==typeof t?`${t}`:0===t?"0":t,a=n.$,o=(t,e)=>i=>{var n;if((null==e?void 0:e.variants)==null)return a(t,null==i?void 0:i.class,null==i?void 0:i.className);let{variants:o,defaultVariants:s}=e,l=Object.keys(o).map(t=>{let e=null==i?void 0:i[t],n=null==s?void 0:s[t];if(null===e)return null;let a=r(e)||r(n);return o[t][a]}),u=i&&Object.entries(i).reduce((t,e)=>{let[i,n]=e;return void 0===n||(t[i]=n),t},{});return a(t,l,null==e||null==(n=e.compoundVariants)?void 0:n.reduce((t,e)=>{let{class:i,className:n,...r}=e;return Object.entries(r).every(t=>{let[e,i]=t;return Array.isArray(i)?i.includes({...s,...u}[e]):({...s,...u})[e]===i})?[...t,i,n]:t},[]),null==i?void 0:i.class,null==i?void 0:i.className)}}}]);
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.