import{r as e}from"./rolldown-runtime-QTnfLwEv.js";import{ki as t}from"./lucide-icons-BjbcRgLk.js";import{t as n}from"./jsx-runtime-By8HlURe.js";import{t as r}from"./utils-BFSTDHdM.js";import{n as i}from"./dist-DvXXZeEa.js";import{r as a,t as o}from"./dist-D7Bu0-nC.js";import{t as s}from"./dist-CPSwqoBy.js";import{t as c}from"./dist-CxcvWxxD2.js";import{t as l}from"./dist-CDe9cWnA.js";import{t as u}from"./dist-VfIIxYhK.js";import{t as d}from"./dist-l851fJFf.js";import{t as f}from"./dist-C2J943E6.js";var p=e(t(),1),m=n();function h(e,t){return p.useReducer((e,n)=>t[e][n]??e,e)}var g=`ScrollArea`,[_,v]=a(g),[y,b]=_(g),x=p.forwardRef((e,t)=>{let{__scopeScrollArea:n,type:r=`hover`,dir:a,scrollHideDelay:o=600,...s}=e,[c,u]=p.useState(null),[f,h]=p.useState(null),[g,_]=p.useState(null),[v,b]=p.useState(null),[x,S]=p.useState(null),[C,w]=p.useState(0),[T,E]=p.useState(0),[D,O]=p.useState(!1),[k,A]=p.useState(!1),j=i(t,e=>u(e)),M=d(a);return(0,m.jsx)(y,{scope:n,type:r,dir:M,scrollHideDelay:o,scrollArea:c,viewport:f,onViewportChange:h,content:g,onContentChange:_,scrollbarX:v,onScrollbarXChange:b,scrollbarXEnabled:D,onScrollbarXEnabledChange:O,scrollbarY:x,onScrollbarYChange:S,scrollbarYEnabled:k,onScrollbarYEnabledChange:A,onCornerWidthChange:w,onCornerHeightChange:E,children:(0,m.jsx)(l.div,{dir:M,...s,ref:j,style:{position:`relative`,"--radix-scroll-area-corner-width":C+`px`,"--radix-scroll-area-corner-height":T+`px`,...e.style}})})});x.displayName=g;var S=`ScrollAreaViewport`,C=p.forwardRef((e,t)=>{let{__scopeScrollArea:n,children:r,nonce:a,...o}=e,s=b(S,n),c=i(t,p.useRef(null),s.onViewportChange);return(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)(`style`,{dangerouslySetInnerHTML:{__html:`[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}`},nonce:a}),(0,m.jsx)(l.div,{"data-radix-scroll-area-viewport":``,...o,ref:c,style:{overflowX:s.scrollbarXEnabled?`scroll`:`hidden`,overflowY:s.scrollbarYEnabled?`scroll`:`hidden`,...e.style},children:(0,m.jsx)(`div`,{ref:s.onContentChange,style:{minWidth:`100%`,display:`table`},children:r})})]})});C.displayName=S;var w=`ScrollAreaScrollbar`,T=p.forwardRef((e,t)=>{let{forceMount:n,...r}=e,i=b(w,e.__scopeScrollArea),{onScrollbarXEnabledChange:a,onScrollbarYEnabledChange:o}=i,s=e.orientation===`horizontal`;return p.useEffect(()=>(s?a(!0):o(!0),()=>{s?a(!1):o(!1)}),[s,a,o]),i.type===`hover`?(0,m.jsx)(E,{...r,ref:t,forceMount:n}):i.type===`scroll`?(0,m.jsx)(D,{...r,ref:t,forceMount:n}):i.type===`auto`?(0,m.jsx)(O,{...r,ref:t,forceMount:n}):i.type===`always`?(0,m.jsx)(k,{...r,ref:t}):null});T.displayName=w;var E=p.forwardRef((e,t)=>{let{forceMount:n,...r}=e,i=b(w,e.__scopeScrollArea),[a,o]=p.useState(!1);return p.useEffect(()=>{let e=i.scrollArea,t=0;if(e){let n=()=>{window.clearTimeout(t),o(!0)},r=()=>{t=window.setTimeout(()=>o(!1),i.scrollHideDelay)};return e.addEventListener(`pointerenter`,n),e.addEventListener(`pointerleave`,r),()=>{window.clearTimeout(t),e.removeEventListener(`pointerenter`,n),e.removeEventListener(`pointerleave`,r)}}},[i.scrollArea,i.scrollHideDelay]),(0,m.jsx)(u,{present:n||a,children:(0,m.jsx)(O,{"data-state":a?`visible`:`hidden`,...r,ref:t})})}),D=p.forwardRef((e,t)=>{let{forceMount:n,...r}=e,i=b(w,e.__scopeScrollArea),a=e.orientation===`horizontal`,o=Y(()=>l(`SCROLL_END`),100),[s,l]=h(`hidden`,{hidden:{SCROLL:`scrolling`},scrolling:{SCROLL_END:`idle`,POINTER_ENTER:`interacting`},interacting:{SCROLL:`interacting`,POINTER_LEAVE:`idle`},idle:{HIDE:`hidden`,SCROLL:`scrolling`,POINTER_ENTER:`interacting`}});return p.useEffect(()=>{if(s===`idle`){let e=window.setTimeout(()=>l(`HIDE`),i.scrollHideDelay);return()=>window.clearTimeout(e)}},[s,i.scrollHideDelay,l]),p.useEffect(()=>{let e=i.viewport,t=a?`scrollLeft`:`scrollTop`;if(e){let n=e[t],r=()=>{let r=e[t];n!==r&&(l(`SCROLL`),o()),n=r};return e.addEventListener(`scroll`,r),()=>e.removeEventListener(`scroll`,r)}},[i.viewport,a,l,o]),(0,m.jsx)(u,{present:n||s!==`hidden`,children:(0,m.jsx)(k,{"data-state":s===`hidden`?`hidden`:`visible`,...r,ref:t,onPointerEnter:c(e.onPointerEnter,()=>l(`POINTER_ENTER`)),onPointerLeave:c(e.onPointerLeave,()=>l(`POINTER_LEAVE`))})})}),O=p.forwardRef((e,t)=>{let n=b(w,e.__scopeScrollArea),{forceMount:r,...i}=e,[a,o]=p.useState(!1),s=e.orientation===`horizontal`,c=Y(()=>{if(n.viewport){let e=n.viewport.offsetWidth{let{orientation:n=`vertical`,...r}=e,i=b(w,e.__scopeScrollArea),a=p.useRef(null),o=p.useRef(0),[s,c]=p.useState({content:0,viewport:0,scrollbar:{size:0,paddingStart:0,paddingEnd:0}}),l=H(s.viewport,s.content),u={...r,sizes:s,onSizesChange:c,hasThumb:l>0&&l<1,onThumbChange:e=>a.current=e,onThumbPointerUp:()=>o.current=0,onThumbPointerDown:e=>o.current=e};function d(e,t){return W(e,o.current,s,t)}return n===`horizontal`?(0,m.jsx)(A,{...u,ref:t,onThumbPositionChange:()=>{if(i.viewport&&a.current){let e=i.viewport.scrollLeft,t=G(e,s,i.dir);a.current.style.transform=`translate3d(${t}px, 0, 0)`}},onWheelScroll:e=>{i.viewport&&(i.viewport.scrollLeft=e)},onDragScroll:e=>{i.viewport&&(i.viewport.scrollLeft=d(e,i.dir))}}):n===`vertical`?(0,m.jsx)(j,{...u,ref:t,onThumbPositionChange:()=>{if(i.viewport&&a.current){let e=i.viewport.scrollTop,t=G(e,s);a.current.style.transform=`translate3d(0, ${t}px, 0)`}},onWheelScroll:e=>{i.viewport&&(i.viewport.scrollTop=e)},onDragScroll:e=>{i.viewport&&(i.viewport.scrollTop=d(e))}}):null}),A=p.forwardRef((e,t)=>{let{sizes:n,onSizesChange:r,...a}=e,o=b(w,e.__scopeScrollArea),[s,c]=p.useState(),l=p.useRef(null),u=i(t,l,o.onScrollbarXChange);return p.useEffect(()=>{l.current&&c(getComputedStyle(l.current))},[l]),(0,m.jsx)(P,{"data-orientation":`horizontal`,...a,ref:u,sizes:n,style:{bottom:0,left:o.dir===`rtl`?`var(--radix-scroll-area-corner-width)`:0,right:o.dir===`ltr`?`var(--radix-scroll-area-corner-width)`:0,"--radix-scroll-area-thumb-width":U(n)+`px`,...e.style},onThumbPointerDown:t=>e.onThumbPointerDown(t.x),onDragScroll:t=>e.onDragScroll(t.x),onWheelScroll:(t,n)=>{if(o.viewport){let r=o.viewport.scrollLeft+t.deltaX;e.onWheelScroll(r),q(r,n)&&t.preventDefault()}},onResize:()=>{l.current&&o.viewport&&s&&r({content:o.viewport.scrollWidth,viewport:o.viewport.offsetWidth,scrollbar:{size:l.current.clientWidth,paddingStart:V(s.paddingLeft),paddingEnd:V(s.paddingRight)}})}})}),j=p.forwardRef((e,t)=>{let{sizes:n,onSizesChange:r,...a}=e,o=b(w,e.__scopeScrollArea),[s,c]=p.useState(),l=p.useRef(null),u=i(t,l,o.onScrollbarYChange);return p.useEffect(()=>{l.current&&c(getComputedStyle(l.current))},[l]),(0,m.jsx)(P,{"data-orientation":`vertical`,...a,ref:u,sizes:n,style:{top:0,right:o.dir===`ltr`?0:void 0,left:o.dir===`rtl`?0:void 0,bottom:`var(--radix-scroll-area-corner-height)`,"--radix-scroll-area-thumb-height":U(n)+`px`,...e.style},onThumbPointerDown:t=>e.onThumbPointerDown(t.y),onDragScroll:t=>e.onDragScroll(t.y),onWheelScroll:(t,n)=>{if(o.viewport){let r=o.viewport.scrollTop+t.deltaY;e.onWheelScroll(r),q(r,n)&&t.preventDefault()}},onResize:()=>{l.current&&o.viewport&&s&&r({content:o.viewport.scrollHeight,viewport:o.viewport.offsetHeight,scrollbar:{size:l.current.clientHeight,paddingStart:V(s.paddingTop),paddingEnd:V(s.paddingBottom)}})}})}),[M,N]=_(w),P=p.forwardRef((e,t)=>{let{__scopeScrollArea:n,sizes:r,hasThumb:a,onThumbChange:o,onThumbPointerUp:u,onThumbPointerDown:d,onThumbPositionChange:f,onDragScroll:h,onWheelScroll:g,onResize:_,...v}=e,y=b(w,n),[x,S]=p.useState(null),C=i(t,e=>S(e)),T=p.useRef(null),E=p.useRef(``),D=y.viewport,O=r.content-r.viewport,k=s(g),A=s(f),j=Y(_,10);function N(e){if(T.current){let t=e.clientX-T.current.left,n=e.clientY-T.current.top;h({x:t,y:n})}}return p.useEffect(()=>{let e=e=>{let t=e.target;x?.contains(t)&&k(e,O)};return document.addEventListener(`wheel`,e,{passive:!1}),()=>document.removeEventListener(`wheel`,e,{passive:!1})},[D,x,O,k]),p.useEffect(A,[r,A]),X(x,j),X(y.content,j),(0,m.jsx)(M,{scope:n,scrollbar:x,hasThumb:a,onThumbChange:s(o),onThumbPointerUp:s(u),onThumbPositionChange:A,onThumbPointerDown:s(d),children:(0,m.jsx)(l.div,{...v,ref:C,style:{position:`absolute`,...v.style},onPointerDown:c(e.onPointerDown,e=>{e.button===0&&(e.target.setPointerCapture(e.pointerId),T.current=x.getBoundingClientRect(),E.current=document.body.style.webkitUserSelect,document.body.style.webkitUserSelect=`none`,y.viewport&&(y.viewport.style.scrollBehavior=`auto`),N(e))}),onPointerMove:c(e.onPointerMove,N),onPointerUp:c(e.onPointerUp,e=>{let t=e.target;t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId),document.body.style.webkitUserSelect=E.current,y.viewport&&(y.viewport.style.scrollBehavior=``),T.current=null})})})}),F=`ScrollAreaThumb`,I=p.forwardRef((e,t)=>{let{forceMount:n,...r}=e,i=N(F,e.__scopeScrollArea);return(0,m.jsx)(u,{present:n||i.hasThumb,children:(0,m.jsx)(L,{ref:t,...r})})}),L=p.forwardRef((e,t)=>{let{__scopeScrollArea:n,style:r,...a}=e,o=b(F,n),s=N(F,n),{onThumbPositionChange:u}=s,d=i(t,e=>s.onThumbChange(e)),f=p.useRef(void 0),h=Y(()=>{f.current&&=(f.current(),void 0)},100);return p.useEffect(()=>{let e=o.viewport;if(e){let t=()=>{if(h(),!f.current){let t=J(e,u);f.current=t,u()}};return u(),e.addEventListener(`scroll`,t),()=>e.removeEventListener(`scroll`,t)}},[o.viewport,h,u]),(0,m.jsx)(l.div,{"data-state":s.hasThumb?`visible`:`hidden`,...a,ref:d,style:{width:`var(--radix-scroll-area-thumb-width)`,height:`var(--radix-scroll-area-thumb-height)`,...r},onPointerDownCapture:c(e.onPointerDownCapture,e=>{let t=e.target.getBoundingClientRect(),n=e.clientX-t.left,r=e.clientY-t.top;s.onThumbPointerDown({x:n,y:r})}),onPointerUp:c(e.onPointerUp,s.onThumbPointerUp)})});I.displayName=F;var R=`ScrollAreaCorner`,z=p.forwardRef((e,t)=>{let n=b(R,e.__scopeScrollArea),r=!!(n.scrollbarX&&n.scrollbarY);return n.type!==`scroll`&&r?(0,m.jsx)(B,{...e,ref:t}):null});z.displayName=R;var B=p.forwardRef((e,t)=>{let{__scopeScrollArea:n,...r}=e,i=b(R,n),[a,o]=p.useState(0),[s,c]=p.useState(0),u=!!(a&&s);return X(i.scrollbarX,()=>{let e=i.scrollbarX?.offsetHeight||0;i.onCornerHeightChange(e),c(e)}),X(i.scrollbarY,()=>{let e=i.scrollbarY?.offsetWidth||0;i.onCornerWidthChange(e),o(e)}),u?(0,m.jsx)(l.div,{...r,ref:t,style:{width:a,height:s,position:`absolute`,right:i.dir===`ltr`?0:void 0,left:i.dir===`rtl`?0:void 0,bottom:0,...e.style}}):null});function V(e){return e?parseInt(e,10):0}function H(e,t){let n=e/t;return isNaN(n)?0:n}function U(e){let t=H(e.viewport,e.content),n=e.scrollbar.paddingStart+e.scrollbar.paddingEnd,r=(e.scrollbar.size-n)*t;return Math.max(r,18)}function W(e,t,n,r=`ltr`){let i=U(n),a=i/2,o=t||a,s=i-o,c=n.scrollbar.paddingStart+o,l=n.scrollbar.size-n.scrollbar.paddingEnd-s,u=n.content-n.viewport,d=r===`ltr`?[0,u]:[u*-1,0];return K([c,l],d)(e)}function G(e,t,n=`ltr`){let r=U(t),i=t.scrollbar.paddingStart+t.scrollbar.paddingEnd,a=t.scrollbar.size-i,o=t.content-t.viewport,s=a-r,c=f(e,n===`ltr`?[0,o]:[o*-1,0]);return K([0,o],[0,s])(c)}function K(e,t){return n=>{if(e[0]===e[1]||t[0]===t[1])return t[0];let r=(t[1]-t[0])/(e[1]-e[0]);return t[0]+r*(n-e[0])}}function q(e,t){return e>0&&e{})=>{let n={left:e.scrollLeft,top:e.scrollTop},r=0;return(function i(){let a={left:e.scrollLeft,top:e.scrollTop},o=n.left!==a.left,s=n.top!==a.top;(o||s)&&t(),n=a,r=window.requestAnimationFrame(i)})(),()=>window.cancelAnimationFrame(r)};function Y(e,t){let n=s(e),r=p.useRef(0);return p.useEffect(()=>()=>window.clearTimeout(r.current),[]),p.useCallback(()=>{window.clearTimeout(r.current),r.current=window.setTimeout(n,t)},[n,t])}function X(e,t){let n=s(t);o(()=>{let t=0;if(e){let r=new ResizeObserver(()=>{cancelAnimationFrame(t),t=window.requestAnimationFrame(n)});return r.observe(e),()=>{window.cancelAnimationFrame(t),r.unobserve(e)}}},[e,n])}var Z=x,ee=C,te=z,Q=p.forwardRef(({className:e,children:t,...n},i)=>(0,m.jsxs)(Z,{ref:i,className:r(`relative overflow-hidden`,e),...n,children:[(0,m.jsx)(ee,{className:`h-full w-full rounded-[inherit] [&>div]:!block [&>div]:!w-full`,children:t}),(0,m.jsx)($,{}),(0,m.jsx)(te,{})]}));Q.displayName=Z.displayName;var $=p.forwardRef(({className:e,orientation:t=`vertical`,...n},i)=>(0,m.jsx)(T,{ref:i,orientation:t,className:r(`flex touch-none select-none transition-colors`,t===`vertical`&&`h-full w-2.5 border-l border-l-transparent p-[1px]`,t===`horizontal`&&`h-2.5 flex-col border-t border-t-transparent p-[1px]`,e),...n,children:(0,m.jsx)(I,{className:`relative flex-1 rounded-full bg-border`})}));$.displayName=T.displayName;export{Q as t};