1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[5410,5023],{18943:function(t,e,n){n.d(e,{R:function(){return BottomSheet}});var r=n(85893),o=n(67294),a=n(73935),l=n(49610),c=n(69280),i=n(23345),s=n(62854);function DragHandle(t){let{onPointerDown:e,onPointerMove:n,onPointerUp:o,onPointerCancel:a}=t;return(0,r.jsx)("div",{onPointerDown:e,onPointerMove:n,onPointerUp:o,onPointerCancel:a,className:"tw-absolute tw-left-1/2 tw-top-0 tw-z-10 tw-flex tw-w-24 -tw-translate-x-1/2 tw-cursor-grab tw-touch-none tw-justify-center tw-px-6 tw-py-4",children:(0,r.jsx)("span",{className:(0,s.C$)({_common:"tw-h-1 tw-w-16 tw-rounded-full tw-bg-porcelain"})})})}var u=n(57207);function CloseButton(t){let{onClick:e}=t;return(0,r.jsx)("button",{onClick:e,className:(0,s.C$)({_common:"tw-absolute tw-right-5 tw-top-5 tw-z-10 tw-pt-0.5",vans:"tw-top-6 tw-size-4"}),children:(0,r.jsx)(u.X,{name:"close",size:14})})}function BottomSheet(t){let{children:e,contentClassName:n="",customContentStyle:u={},isDraggable:w=!1,isOpen:f,shouldRenderCloseButton:m=!0,onClose:p}=t,[d,C]=(0,o.useState)(!1),b=(0,o.useRef)(null),v=(0,o.useRef)(null),{isServer:x}=(0,c.w)(),{lockScroll:h,unlockScroll:k}=(0,i.F)(),{sheetRef:g,dragHandlers:I}=function(t){let{animationDurationInMs:e,onClose:n}=t,r=(0,o.useRef)(null),a=(0,o.useRef)(null),l=(0,o.useRef)({startY:0,pointerId:-1,isActive:!1}),c=(0,o.useCallback)(()=>{null!==a.current&&(clearTimeout(a.current),a.current=null)},[]);(0,o.useEffect)(()=>c,[c]);let i=(0,o.useCallback)((t,e)=>{let n=r.current;null!==n&&(n.style.transition=e,n.style.transform=t)},[]),s=(0,o.useCallback)(t=>{l.current.isActive||(c(),t.currentTarget.setPointerCapture(t.pointerId),l.current={startY:t.clientY,pointerId:t.pointerId,isActive:!0},i("translateY(0)","none"))},[c,i]),u=(0,o.useCallback)(t=>{let e=l.current;if(!e.isActive||t.pointerId!==e.pointerId)return;let n=Math.max(0,t.clientY-e.startY);i("translateY(".concat(n,"px)"),"none")},[i]),w=(0,o.useCallback)(t=>{let r=l.current;if(!r.isActive||t.pointerId!==r.pointerId)return;t.currentTarget.hasPointerCapture(t.pointerId)&&t.currentTarget.releasePointerCapture(t.pointerId);let o=Math.max(0,t.clientY-r.startY);l.current={...r,pointerId:-1,isActive:!1};let c="transform ".concat(e,"ms");if(o>100){i("translateY(100%)",c),a.current=setTimeout(()=>null==n?void 0:n(),e);return}i("translateY(0)",c)},[e,n,i]);return{sheetRef:r,dragHandlers:{onPointerDown:s,onPointerMove:u,onPointerUp:w,onPointerCancel:w}}}({animationDurationInMs:300,onClose:p});(0,o.useEffect)(()=>(b.current=document.querySelector("#".concat(l.r)),()=>{null!==v.current&&clearTimeout(v.current)}),[]),(0,o.useEffect)(()=>{let t;return f?(C(!0),h()):(C(!1),t=setTimeout(()=>null==p?void 0:p(),300),k()),()=>clearTimeout(t)},[f,p,h,k]);let P=(0,o.useCallback)(()=>{C(!1),v.current=setTimeout(()=>{null==p||p()},300)},[p]);return!b.current||x?null:(0,a.createPortal)((0,r.jsxs)("div",{className:(0,s.C$)({_common:"tw-fixed tw-inset-0 tw-z-[100] tw-flex tw-flex-col\n tw-items-center tw-justify-end tw-transition-opacity tw-duration-300\n ".concat(d?"tw-opacity-100":"tw-pointer-events-none tw-opacity-0")}),children:[(0,r.jsx)("button",{onClick:P,className:(0,s.C$)({_common:"tw-absolute tw-inset-0 tw-bg-black tw-bg-opacity-50",anacapri:"tw-backdrop-blur-sm"})}),(0,r.jsxs)("div",{ref:g,className:(0,s.C$)({_common:"tw-relative tw-w-full tw-overflow-hidden tw-bg-white\n tw-transition-transform tw-duration-300",vans:n,vicenza:n,zzmall:n,anacapri:n}),style:{transform:"translateY(".concat(d?"0":"100%",")"),...u},children:[w&&(0,r.jsx)(DragHandle,{...I}),m&&(0,r.jsx)(CloseButton,{onClick:P}),e]})]}),b.current)}}}]);
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.