1 line
14 KiB
JavaScript
1 line
14 KiB
JavaScript
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,61336,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"warnOnce",{enumerable:!0,get:function(){return o}});let o=e=>{}},85862,e=>{"use strict";var r=e.i(60731);e.i(61144);var t=r.createContext(void 0);function o(e){let o=r.useContext(t);return e||o||"ltr"}e.s(["useDirection",()=>o])},56006,e=>{"use strict";var r=e.i(61144),t=e.i(60731),o=e.i(72895),l=e.i(21333),n=e.i(91175),i=e.i(60815),a=e.i(74375),s=e.i(85862),c=e.i(51456),d=e.i(48296),u="ScrollArea",[p,f]=(0,n.createContextScope)(u),[v,h]=p(u),w=t.forwardRef((e,l)=>{let{__scopeScrollArea:n,type:a="hover",dir:c,scrollHideDelay:d=600,...u}=e,[p,f]=t.useState(null),[h,w]=t.useState(null),[b,m]=t.useState(null),[g,S]=t.useState(null),[x,C]=t.useState(null),[R,E]=t.useState(0),[y,T]=t.useState(0),[P,j]=t.useState(!1),[L,A]=t.useState(!1),D=(0,i.useComposedRefs)(l,e=>f(e)),_=(0,s.useDirection)(c);return(0,r.jsx)(v,{scope:n,type:a,dir:_,scrollHideDelay:d,scrollArea:p,viewport:h,onViewportChange:w,content:b,onContentChange:m,scrollbarX:g,onScrollbarXChange:S,scrollbarXEnabled:P,onScrollbarXEnabledChange:j,scrollbarY:x,onScrollbarYChange:C,scrollbarYEnabled:L,onScrollbarYEnabledChange:A,onCornerWidthChange:E,onCornerHeightChange:T,children:(0,r.jsx)(o.Primitive.div,{dir:_,...u,ref:D,style:{position:"relative","--radix-scroll-area-corner-width":R+"px","--radix-scroll-area-corner-height":y+"px",...e.style}})})});w.displayName=u;var b="ScrollAreaViewport",m=t.forwardRef((e,l)=>{let{__scopeScrollArea:n,children:a,nonce:s,...c}=e,d=h(b,n),u=t.useRef(null),p=(0,i.useComposedRefs)(l,u,d.onViewportChange);return(0,r.jsxs)(r.Fragment,{children:[(0,r.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:s}),(0,r.jsx)(o.Primitive.div,{"data-radix-scroll-area-viewport":"",...c,ref:p,style:{overflowX:d.scrollbarXEnabled?"scroll":"hidden",overflowY:d.scrollbarYEnabled?"scroll":"hidden",...e.style},children:(0,r.jsx)("div",{ref:d.onContentChange,style:{minWidth:"100%",display:"table"},children:a})})]})});m.displayName=b;var g="ScrollAreaScrollbar",S=t.forwardRef((e,o)=>{let{forceMount:l,...n}=e,i=h(g,e.__scopeScrollArea),{onScrollbarXEnabledChange:a,onScrollbarYEnabledChange:s}=i,c="horizontal"===e.orientation;return t.useEffect(()=>(c?a(!0):s(!0),()=>{c?a(!1):s(!1)}),[c,a,s]),"hover"===i.type?(0,r.jsx)(x,{...n,ref:o,forceMount:l}):"scroll"===i.type?(0,r.jsx)(C,{...n,ref:o,forceMount:l}):"auto"===i.type?(0,r.jsx)(R,{...n,ref:o,forceMount:l}):"always"===i.type?(0,r.jsx)(E,{...n,ref:o}):null});S.displayName=g;var x=t.forwardRef((e,o)=>{let{forceMount:n,...i}=e,a=h(g,e.__scopeScrollArea),[s,c]=t.useState(!1);return t.useEffect(()=>{let e=a.scrollArea,r=0;if(e){let t=()=>{window.clearTimeout(r),c(!0)},o=()=>{r=window.setTimeout(()=>c(!1),a.scrollHideDelay)};return e.addEventListener("pointerenter",t),e.addEventListener("pointerleave",o),()=>{window.clearTimeout(r),e.removeEventListener("pointerenter",t),e.removeEventListener("pointerleave",o)}}},[a.scrollArea,a.scrollHideDelay]),(0,r.jsx)(l.Presence,{present:n||s,children:(0,r.jsx)(R,{"data-state":s?"visible":"hidden",...i,ref:o})})}),C=t.forwardRef((e,o)=>{var n;let{forceMount:i,...a}=e,s=h(g,e.__scopeScrollArea),c="horizontal"===e.orientation,u=Y(()=>f("SCROLL_END"),100),[p,f]=(n={hidden:{SCROLL:"scrolling"},scrolling:{SCROLL_END:"idle",POINTER_ENTER:"interacting"},interacting:{SCROLL:"interacting",POINTER_LEAVE:"idle"},idle:{HIDE:"hidden",SCROLL:"scrolling",POINTER_ENTER:"interacting"}},t.useReducer((e,r)=>n[e][r]??e,"hidden"));return t.useEffect(()=>{if("idle"===p){let e=window.setTimeout(()=>f("HIDE"),s.scrollHideDelay);return()=>window.clearTimeout(e)}},[p,s.scrollHideDelay,f]),t.useEffect(()=>{let e=s.viewport,r=c?"scrollLeft":"scrollTop";if(e){let t=e[r],o=()=>{let o=e[r];t!==o&&(f("SCROLL"),u()),t=o};return e.addEventListener("scroll",o),()=>e.removeEventListener("scroll",o)}},[s.viewport,c,f,u]),(0,r.jsx)(l.Presence,{present:i||"hidden"!==p,children:(0,r.jsx)(E,{"data-state":"hidden"===p?"hidden":"visible",...a,ref:o,onPointerEnter:(0,d.composeEventHandlers)(e.onPointerEnter,()=>f("POINTER_ENTER")),onPointerLeave:(0,d.composeEventHandlers)(e.onPointerLeave,()=>f("POINTER_LEAVE"))})})}),R=t.forwardRef((e,o)=>{let n=h(g,e.__scopeScrollArea),{forceMount:i,...a}=e,[s,c]=t.useState(!1),d="horizontal"===e.orientation,u=Y(()=>{if(n.viewport){let e=n.viewport.offsetWidth<n.viewport.scrollWidth,r=n.viewport.offsetHeight<n.viewport.scrollHeight;c(d?e:r)}},10);return B(n.viewport,u),B(n.content,u),(0,r.jsx)(l.Presence,{present:i||s,children:(0,r.jsx)(E,{"data-state":s?"visible":"hidden",...a,ref:o})})}),E=t.forwardRef((e,o)=>{let{orientation:l="vertical",...n}=e,i=h(g,e.__scopeScrollArea),a=t.useRef(null),s=t.useRef(0),[c,d]=t.useState({content:0,viewport:0,scrollbar:{size:0,paddingStart:0,paddingEnd:0}}),u=W(c.viewport,c.content),p={...n,sizes:c,onSizesChange:d,hasThumb:!!(u>0&&u<1),onThumbChange:e=>a.current=e,onThumbPointerUp:()=>s.current=0,onThumbPointerDown:e=>s.current=e};function f(e,r){return function(e,r,t,o="ltr"){let l=k(t),n=r||l/2,i=t.scrollbar.paddingStart+n,a=t.scrollbar.size-t.scrollbar.paddingEnd-(l-n),s=t.content-t.viewport;return U([i,a],"ltr"===o?[0,s]:[-1*s,0])(e)}(e,s.current,c,r)}return"horizontal"===l?(0,r.jsx)(y,{...p,ref:o,onThumbPositionChange:()=>{if(i.viewport&&a.current){let e=I(i.viewport.scrollLeft,c,i.dir);a.current.style.transform=`translate3d(${e}px, 0, 0)`}},onWheelScroll:e=>{i.viewport&&(i.viewport.scrollLeft=e)},onDragScroll:e=>{i.viewport&&(i.viewport.scrollLeft=f(e,i.dir))}}):"vertical"===l?(0,r.jsx)(T,{...p,ref:o,onThumbPositionChange:()=>{if(i.viewport&&a.current){let e=I(i.viewport.scrollTop,c);a.current.style.transform=`translate3d(0, ${e}px, 0)`}},onWheelScroll:e=>{i.viewport&&(i.viewport.scrollTop=e)},onDragScroll:e=>{i.viewport&&(i.viewport.scrollTop=f(e))}}):null}),y=t.forwardRef((e,o)=>{let{sizes:l,onSizesChange:n,...a}=e,s=h(g,e.__scopeScrollArea),[c,d]=t.useState(),u=t.useRef(null),p=(0,i.useComposedRefs)(o,u,s.onScrollbarXChange);return t.useEffect(()=>{u.current&&d(getComputedStyle(u.current))},[u]),(0,r.jsx)(L,{"data-orientation":"horizontal",...a,ref:p,sizes:l,style:{bottom:0,left:"rtl"===s.dir?"var(--radix-scroll-area-corner-width)":0,right:"ltr"===s.dir?"var(--radix-scroll-area-corner-width)":0,"--radix-scroll-area-thumb-width":k(l)+"px",...e.style},onThumbPointerDown:r=>e.onThumbPointerDown(r.x),onDragScroll:r=>e.onDragScroll(r.x),onWheelScroll:(r,t)=>{if(s.viewport){var o,l;let n=s.viewport.scrollLeft+r.deltaX;e.onWheelScroll(n),o=n,l=t,o>0&&o<l&&r.preventDefault()}},onResize:()=>{u.current&&s.viewport&&c&&n({content:s.viewport.scrollWidth,viewport:s.viewport.offsetWidth,scrollbar:{size:u.current.clientWidth,paddingStart:O(c.paddingLeft),paddingEnd:O(c.paddingRight)}})}})}),T=t.forwardRef((e,o)=>{let{sizes:l,onSizesChange:n,...a}=e,s=h(g,e.__scopeScrollArea),[c,d]=t.useState(),u=t.useRef(null),p=(0,i.useComposedRefs)(o,u,s.onScrollbarYChange);return t.useEffect(()=>{u.current&&d(getComputedStyle(u.current))},[u]),(0,r.jsx)(L,{"data-orientation":"vertical",...a,ref:p,sizes:l,style:{top:0,right:"ltr"===s.dir?0:void 0,left:"rtl"===s.dir?0:void 0,bottom:"var(--radix-scroll-area-corner-height)","--radix-scroll-area-thumb-height":k(l)+"px",...e.style},onThumbPointerDown:r=>e.onThumbPointerDown(r.y),onDragScroll:r=>e.onDragScroll(r.y),onWheelScroll:(r,t)=>{if(s.viewport){var o,l;let n=s.viewport.scrollTop+r.deltaY;e.onWheelScroll(n),o=n,l=t,o>0&&o<l&&r.preventDefault()}},onResize:()=>{u.current&&s.viewport&&c&&n({content:s.viewport.scrollHeight,viewport:s.viewport.offsetHeight,scrollbar:{size:u.current.clientHeight,paddingStart:O(c.paddingTop),paddingEnd:O(c.paddingBottom)}})}})}),[P,j]=p(g),L=t.forwardRef((e,l)=>{let{__scopeScrollArea:n,sizes:s,hasThumb:c,onThumbChange:u,onThumbPointerUp:p,onThumbPointerDown:f,onThumbPositionChange:v,onDragScroll:w,onWheelScroll:b,onResize:m,...S}=e,x=h(g,n),[C,R]=t.useState(null),E=(0,i.useComposedRefs)(l,e=>R(e)),y=t.useRef(null),T=t.useRef(""),j=x.viewport,L=s.content-s.viewport,A=(0,a.useCallbackRef)(b),D=(0,a.useCallbackRef)(v),_=Y(m,10);function H(e){y.current&&w({x:e.clientX-y.current.left,y:e.clientY-y.current.top})}return t.useEffect(()=>{let e=e=>{let r=e.target;C?.contains(r)&&A(e,L)};return document.addEventListener("wheel",e,{passive:!1}),()=>document.removeEventListener("wheel",e,{passive:!1})},[j,C,L,A]),t.useEffect(D,[s,D]),B(C,_),B(x.content,_),(0,r.jsx)(P,{scope:n,scrollbar:C,hasThumb:c,onThumbChange:(0,a.useCallbackRef)(u),onThumbPointerUp:(0,a.useCallbackRef)(p),onThumbPositionChange:D,onThumbPointerDown:(0,a.useCallbackRef)(f),children:(0,r.jsx)(o.Primitive.div,{...S,ref:E,style:{position:"absolute",...S.style},onPointerDown:(0,d.composeEventHandlers)(e.onPointerDown,e=>{0===e.button&&(e.target.setPointerCapture(e.pointerId),y.current=C.getBoundingClientRect(),T.current=document.body.style.webkitUserSelect,document.body.style.webkitUserSelect="none",x.viewport&&(x.viewport.style.scrollBehavior="auto"),H(e))}),onPointerMove:(0,d.composeEventHandlers)(e.onPointerMove,H),onPointerUp:(0,d.composeEventHandlers)(e.onPointerUp,e=>{let r=e.target;r.hasPointerCapture(e.pointerId)&&r.releasePointerCapture(e.pointerId),document.body.style.webkitUserSelect=T.current,x.viewport&&(x.viewport.style.scrollBehavior=""),y.current=null})})})}),A="ScrollAreaThumb",D=t.forwardRef((e,t)=>{let{forceMount:o,...n}=e,i=j(A,e.__scopeScrollArea);return(0,r.jsx)(l.Presence,{present:o||i.hasThumb,children:(0,r.jsx)(_,{ref:t,...n})})}),_=t.forwardRef((e,l)=>{let{__scopeScrollArea:n,style:a,...s}=e,c=h(A,n),u=j(A,n),{onThumbPositionChange:p}=u,f=(0,i.useComposedRefs)(l,e=>u.onThumbChange(e)),v=t.useRef(void 0),w=Y(()=>{v.current&&(v.current(),v.current=void 0)},100);return t.useEffect(()=>{let e=c.viewport;if(e){let r=()=>{w(),v.current||(v.current=X(e,p),p())};return p(),e.addEventListener("scroll",r),()=>e.removeEventListener("scroll",r)}},[c.viewport,w,p]),(0,r.jsx)(o.Primitive.div,{"data-state":u.hasThumb?"visible":"hidden",...s,ref:f,style:{width:"var(--radix-scroll-area-thumb-width)",height:"var(--radix-scroll-area-thumb-height)",...a},onPointerDownCapture:(0,d.composeEventHandlers)(e.onPointerDownCapture,e=>{let r=e.target.getBoundingClientRect(),t=e.clientX-r.left,o=e.clientY-r.top;u.onThumbPointerDown({x:t,y:o})}),onPointerUp:(0,d.composeEventHandlers)(e.onPointerUp,u.onThumbPointerUp)})});D.displayName=A;var H="ScrollAreaCorner",N=t.forwardRef((e,t)=>{let o=h(H,e.__scopeScrollArea),l=!!(o.scrollbarX&&o.scrollbarY);return"scroll"!==o.type&&l?(0,r.jsx)(z,{...e,ref:t}):null});N.displayName=H;var z=t.forwardRef((e,l)=>{let{__scopeScrollArea:n,...i}=e,a=h(H,n),[s,c]=t.useState(0),[d,u]=t.useState(0),p=!!(s&&d);return B(a.scrollbarX,()=>{let e=a.scrollbarX?.offsetHeight||0;a.onCornerHeightChange(e),u(e)}),B(a.scrollbarY,()=>{let e=a.scrollbarY?.offsetWidth||0;a.onCornerWidthChange(e),c(e)}),p?(0,r.jsx)(o.Primitive.div,{...i,ref:l,style:{width:s,height:d,position:"absolute",right:"ltr"===a.dir?0:void 0,left:"rtl"===a.dir?0:void 0,bottom:0,...e.style}}):null});function O(e){return e?parseInt(e,10):0}function W(e,r){let t=e/r;return isNaN(t)?0:t}function k(e){let r=W(e.viewport,e.content),t=e.scrollbar.paddingStart+e.scrollbar.paddingEnd;return Math.max((e.scrollbar.size-t)*r,18)}function I(e,r,t="ltr"){let o=k(r),l=r.scrollbar.paddingStart+r.scrollbar.paddingEnd,n=r.scrollbar.size-l,i=r.content-r.viewport,a=function(e,[r,t]){return Math.min(t,Math.max(r,e))}(e,"ltr"===t?[0,i]:[-1*i,0]);return U([0,i],[0,n-o])(a)}function U(e,r){return t=>{if(e[0]===e[1]||r[0]===r[1])return r[0];let o=(r[1]-r[0])/(e[1]-e[0]);return r[0]+o*(t-e[0])}}var X=(e,r=()=>{})=>{let t={left:e.scrollLeft,top:e.scrollTop},o=0;return!function l(){let n={left:e.scrollLeft,top:e.scrollTop},i=t.left!==n.left,a=t.top!==n.top;(i||a)&&r(),t=n,o=window.requestAnimationFrame(l)}(),()=>window.cancelAnimationFrame(o)};function Y(e,r){let o=(0,a.useCallbackRef)(e),l=t.useRef(0);return t.useEffect(()=>()=>window.clearTimeout(l.current),[]),t.useCallback(()=>{window.clearTimeout(l.current),l.current=window.setTimeout(o,r)},[o,r])}function B(e,r){let t=(0,a.useCallbackRef)(r);(0,c.useLayoutEffect)(()=>{let r=0;if(e){let o=new ResizeObserver(()=>{cancelAnimationFrame(r),r=window.requestAnimationFrame(t)});return o.observe(e),()=>{window.cancelAnimationFrame(r),o.unobserve(e)}}},[e,t])}e.s(["Corner",()=>N,"Root",()=>w,"ScrollArea",()=>w,"ScrollAreaCorner",()=>N,"ScrollAreaScrollbar",()=>S,"ScrollAreaThumb",()=>D,"ScrollAreaViewport",()=>m,"Scrollbar",()=>S,"Thumb",()=>D,"Viewport",()=>m,"createScrollAreaScope",()=>f],36295);var V=e.i(36295),V=V,M=e.i(11801);function F({className:e,children:t,...o}){return(0,r.jsxs)(V.Root,{"data-slot":"scroll-area",className:(0,M.cn)("relative",e),...o,children:[(0,r.jsx)(V.Viewport,{"data-slot":"scroll-area-viewport",className:"focus-visible:ring-ring/50 size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:outline-1",children:t}),(0,r.jsx)(q,{}),(0,r.jsx)(V.Corner,{})]})}function q({className:e,orientation:t="vertical",...o}){return(0,r.jsx)(V.ScrollAreaScrollbar,{"data-slot":"scroll-area-scrollbar",orientation:t,className:(0,M.cn)("flex touch-none p-px transition-colors select-none","vertical"===t&&"h-full w-2.5 border-l border-l-transparent","horizontal"===t&&"h-2.5 flex-col border-t border-t-transparent",e),...o,children:(0,r.jsx)(V.ScrollAreaThumb,{"data-slot":"scroll-area-thumb",className:"bg-border relative flex-1 rounded-full"})})}e.s(["ScrollArea",()=>F,"ScrollBar",()=>q],56006)}]); |