@hoosei/voxweave-react
Version:
A customizable and interactive voice UI component for React applications
3 lines (2 loc) • 13 kB
JavaScript
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const le=require("react"),_=require("./index35.js"),N=require("./index34.js"),ce=require("./index28.js"),A=require("./index24.js"),C=require("./index40.js"),se=require("./index77.js"),ie=require("./index39.js"),ae=require("./index75.js"),x=require("./index27.js"),h=require("react/jsx-runtime");function de(e){if(e&&e.__esModule)return e;const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const r in e)if(r!=="default"){const n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:()=>e[r]})}}return t.default=e,Object.freeze(t)}const c=de(le);function ue(e,t){return c.useReducer((r,n)=>t[r][n]??r,e)}var Y="ScrollArea",[J,fe]=ce.createContextScope(Y),[he,v]=J(Y),V=c.forwardRef((e,t)=>{const{__scopeScrollArea:r,type:n="hover",dir:o,scrollHideDelay:l=600,...s}=e,[i,a]=c.useState(null),[f,d]=c.useState(null),[b,u]=c.useState(null),[S,w]=c.useState(null),[T,I]=c.useState(null),[P,L]=c.useState(0),[X,D]=c.useState(0),[j,y]=c.useState(!1),[H,O]=c.useState(!1),m=A.useComposedRefs(t,R=>a(R)),p=se.useDirection(o);return h.jsx(he,{scope:r,type:n,dir:p,scrollHideDelay:l,scrollArea:i,viewport:f,onViewportChange:d,content:b,onContentChange:u,scrollbarX:S,onScrollbarXChange:w,scrollbarXEnabled:j,onScrollbarXEnabledChange:y,scrollbarY:T,onScrollbarYChange:I,scrollbarYEnabled:H,onScrollbarYEnabledChange:O,onCornerWidthChange:L,onCornerHeightChange:D,children:h.jsx(_.Primitive.div,{dir:p,...s,ref:m,style:{position:"relative","--radix-scroll-area-corner-width":P+"px","--radix-scroll-area-corner-height":X+"px",...e.style}})})});V.displayName=Y;var K="ScrollAreaViewport",U=c.forwardRef((e,t)=>{const{__scopeScrollArea:r,children:n,nonce:o,...l}=e,s=v(K,r),i=c.useRef(null),a=A.useComposedRefs(t,i,s.onViewportChange);return h.jsxs(h.Fragment,{children:[h.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:o}),h.jsx(_.Primitive.div,{"data-radix-scroll-area-viewport":"",...l,ref:a,style:{overflowX:s.scrollbarXEnabled?"scroll":"hidden",overflowY:s.scrollbarYEnabled?"scroll":"hidden",...e.style},children:h.jsx("div",{ref:s.onContentChange,style:{minWidth:"100%",display:"table"},children:n})})]})});U.displayName=K;var g="ScrollAreaScrollbar",q=c.forwardRef((e,t)=>{const{forceMount:r,...n}=e,o=v(g,e.__scopeScrollArea),{onScrollbarXEnabledChange:l,onScrollbarYEnabledChange:s}=o,i=e.orientation==="horizontal";return c.useEffect(()=>(i?l(!0):s(!0),()=>{i?l(!1):s(!1)}),[i,l,s]),o.type==="hover"?h.jsx(be,{...n,ref:t,forceMount:r}):o.type==="scroll"?h.jsx(Se,{...n,ref:t,forceMount:r}):o.type==="auto"?h.jsx(Q,{...n,ref:t,forceMount:r}):o.type==="always"?h.jsx(B,{...n,ref:t}):null});q.displayName=g;var be=c.forwardRef((e,t)=>{const{forceMount:r,...n}=e,o=v(g,e.__scopeScrollArea),[l,s]=c.useState(!1);return c.useEffect(()=>{const i=o.scrollArea;let a=0;if(i){const f=()=>{window.clearTimeout(a),s(!0)},d=()=>{a=window.setTimeout(()=>s(!1),o.scrollHideDelay)};return i.addEventListener("pointerenter",f),i.addEventListener("pointerleave",d),()=>{window.clearTimeout(a),i.removeEventListener("pointerenter",f),i.removeEventListener("pointerleave",d)}}},[o.scrollArea,o.scrollHideDelay]),h.jsx(N.Presence,{present:r||l,children:h.jsx(Q,{"data-state":l?"visible":"hidden",...n,ref:t})})}),Se=c.forwardRef((e,t)=>{const{forceMount:r,...n}=e,o=v(g,e.__scopeScrollArea),l=e.orientation==="horizontal",s=k(()=>a("SCROLL_END"),100),[i,a]=ue("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 c.useEffect(()=>{if(i==="idle"){const f=window.setTimeout(()=>a("HIDE"),o.scrollHideDelay);return()=>window.clearTimeout(f)}},[i,o.scrollHideDelay,a]),c.useEffect(()=>{const f=o.viewport,d=l?"scrollLeft":"scrollTop";if(f){let b=f[d];const u=()=>{const S=f[d];b!==S&&(a("SCROLL"),s()),b=S};return f.addEventListener("scroll",u),()=>f.removeEventListener("scroll",u)}},[o.viewport,l,a,s]),h.jsx(N.Presence,{present:r||i!=="hidden",children:h.jsx(B,{"data-state":i==="hidden"?"hidden":"visible",...n,ref:t,onPointerEnter:x.composeEventHandlers(e.onPointerEnter,()=>a("POINTER_ENTER")),onPointerLeave:x.composeEventHandlers(e.onPointerLeave,()=>a("POINTER_LEAVE"))})})}),Q=c.forwardRef((e,t)=>{const r=v(g,e.__scopeScrollArea),{forceMount:n,...o}=e,[l,s]=c.useState(!1),i=e.orientation==="horizontal",a=k(()=>{if(r.viewport){const f=r.viewport.offsetWidth<r.viewport.scrollWidth,d=r.viewport.offsetHeight<r.viewport.scrollHeight;s(i?f:d)}},10);return E(r.viewport,a),E(r.content,a),h.jsx(N.Presence,{present:n||l,children:h.jsx(B,{"data-state":l?"visible":"hidden",...o,ref:t})})}),B=c.forwardRef((e,t)=>{const{orientation:r="vertical",...n}=e,o=v(g,e.__scopeScrollArea),l=c.useRef(null),s=c.useRef(0),[i,a]=c.useState({content:0,viewport:0,scrollbar:{size:0,paddingStart:0,paddingEnd:0}}),f=oe(i.viewport,i.content),d={...n,sizes:i,onSizesChange:a,hasThumb:f>0&&f<1,onThumbChange:u=>l.current=u,onThumbPointerUp:()=>s.current=0,onThumbPointerDown:u=>s.current=u};function b(u,S){return Pe(u,s.current,i,S)}return r==="horizontal"?h.jsx(me,{...d,ref:t,onThumbPositionChange:()=>{if(o.viewport&&l.current){const u=o.viewport.scrollLeft,S=G(u,i,o.dir);l.current.style.transform=`translate3d(${S}px, 0, 0)`}},onWheelScroll:u=>{o.viewport&&(o.viewport.scrollLeft=u)},onDragScroll:u=>{o.viewport&&(o.viewport.scrollLeft=b(u,o.dir))}}):r==="vertical"?h.jsx(ve,{...d,ref:t,onThumbPositionChange:()=>{if(o.viewport&&l.current){const u=o.viewport.scrollTop,S=G(u,i);l.current.style.transform=`translate3d(0, ${S}px, 0)`}},onWheelScroll:u=>{o.viewport&&(o.viewport.scrollTop=u)},onDragScroll:u=>{o.viewport&&(o.viewport.scrollTop=b(u))}}):null}),me=c.forwardRef((e,t)=>{const{sizes:r,onSizesChange:n,...o}=e,l=v(g,e.__scopeScrollArea),[s,i]=c.useState(),a=c.useRef(null),f=A.useComposedRefs(t,a,l.onScrollbarXChange);return c.useEffect(()=>{a.current&&i(getComputedStyle(a.current))},[a]),h.jsx(ee,{"data-orientation":"horizontal",...o,ref:f,sizes:r,style:{bottom:0,left:l.dir==="rtl"?"var(--radix-scroll-area-corner-width)":0,right:l.dir==="ltr"?"var(--radix-scroll-area-corner-width)":0,"--radix-scroll-area-thumb-width":M(r)+"px",...e.style},onThumbPointerDown:d=>e.onThumbPointerDown(d.x),onDragScroll:d=>e.onDragScroll(d.x),onWheelScroll:(d,b)=>{if(l.viewport){const u=l.viewport.scrollLeft+d.deltaX;e.onWheelScroll(u),ne(u,b)&&d.preventDefault()}},onResize:()=>{a.current&&l.viewport&&s&&n({content:l.viewport.scrollWidth,viewport:l.viewport.offsetWidth,scrollbar:{size:a.current.clientWidth,paddingStart:z(s.paddingLeft),paddingEnd:z(s.paddingRight)}})}})}),ve=c.forwardRef((e,t)=>{const{sizes:r,onSizesChange:n,...o}=e,l=v(g,e.__scopeScrollArea),[s,i]=c.useState(),a=c.useRef(null),f=A.useComposedRefs(t,a,l.onScrollbarYChange);return c.useEffect(()=>{a.current&&i(getComputedStyle(a.current))},[a]),h.jsx(ee,{"data-orientation":"vertical",...o,ref:f,sizes:r,style:{top:0,right:l.dir==="ltr"?0:void 0,left:l.dir==="rtl"?0:void 0,bottom:"var(--radix-scroll-area-corner-height)","--radix-scroll-area-thumb-height":M(r)+"px",...e.style},onThumbPointerDown:d=>e.onThumbPointerDown(d.y),onDragScroll:d=>e.onDragScroll(d.y),onWheelScroll:(d,b)=>{if(l.viewport){const u=l.viewport.scrollTop+d.deltaY;e.onWheelScroll(u),ne(u,b)&&d.preventDefault()}},onResize:()=>{a.current&&l.viewport&&s&&n({content:l.viewport.scrollHeight,viewport:l.viewport.offsetHeight,scrollbar:{size:a.current.clientHeight,paddingStart:z(s.paddingTop),paddingEnd:z(s.paddingBottom)}})}})}),[pe,Z]=J(g),ee=c.forwardRef((e,t)=>{const{__scopeScrollArea:r,sizes:n,hasThumb:o,onThumbChange:l,onThumbPointerUp:s,onThumbPointerDown:i,onThumbPositionChange:a,onDragScroll:f,onWheelScroll:d,onResize:b,...u}=e,S=v(g,r),[w,T]=c.useState(null),I=A.useComposedRefs(t,m=>T(m)),P=c.useRef(null),L=c.useRef(""),X=S.viewport,D=n.content-n.viewport,j=C.useCallbackRef(d),y=C.useCallbackRef(a),H=k(b,10);function O(m){if(P.current){const p=m.clientX-P.current.left,R=m.clientY-P.current.top;f({x:p,y:R})}}return c.useEffect(()=>{const m=p=>{const R=p.target;w?.contains(R)&&j(p,D)};return document.addEventListener("wheel",m,{passive:!1}),()=>document.removeEventListener("wheel",m,{passive:!1})},[X,w,D,j]),c.useEffect(y,[n,y]),E(w,H),E(S.content,H),h.jsx(pe,{scope:r,scrollbar:w,hasThumb:o,onThumbChange:C.useCallbackRef(l),onThumbPointerUp:C.useCallbackRef(s),onThumbPositionChange:y,onThumbPointerDown:C.useCallbackRef(i),children:h.jsx(_.Primitive.div,{...u,ref:I,style:{position:"absolute",...u.style},onPointerDown:x.composeEventHandlers(e.onPointerDown,m=>{m.button===0&&(m.target.setPointerCapture(m.pointerId),P.current=w.getBoundingClientRect(),L.current=document.body.style.webkitUserSelect,document.body.style.webkitUserSelect="none",S.viewport&&(S.viewport.style.scrollBehavior="auto"),O(m))}),onPointerMove:x.composeEventHandlers(e.onPointerMove,O),onPointerUp:x.composeEventHandlers(e.onPointerUp,m=>{const p=m.target;p.hasPointerCapture(m.pointerId)&&p.releasePointerCapture(m.pointerId),document.body.style.webkitUserSelect=L.current,S.viewport&&(S.viewport.style.scrollBehavior=""),P.current=null})})})}),W="ScrollAreaThumb",F=c.forwardRef((e,t)=>{const{forceMount:r,...n}=e,o=Z(W,e.__scopeScrollArea);return h.jsx(N.Presence,{present:r||o.hasThumb,children:h.jsx(we,{ref:t,...n})})}),we=c.forwardRef((e,t)=>{const{__scopeScrollArea:r,style:n,...o}=e,l=v(W,r),s=Z(W,r),{onThumbPositionChange:i}=s,a=A.useComposedRefs(t,b=>s.onThumbChange(b)),f=c.useRef(void 0),d=k(()=>{f.current&&(f.current(),f.current=void 0)},100);return c.useEffect(()=>{const b=l.viewport;if(b){const u=()=>{if(d(),!f.current){const S=Ce(b,i);f.current=S,i()}};return i(),b.addEventListener("scroll",u),()=>b.removeEventListener("scroll",u)}},[l.viewport,d,i]),h.jsx(_.Primitive.div,{"data-state":s.hasThumb?"visible":"hidden",...o,ref:a,style:{width:"var(--radix-scroll-area-thumb-width)",height:"var(--radix-scroll-area-thumb-height)",...n},onPointerDownCapture:x.composeEventHandlers(e.onPointerDownCapture,b=>{const S=b.target.getBoundingClientRect(),w=b.clientX-S.left,T=b.clientY-S.top;s.onThumbPointerDown({x:w,y:T})}),onPointerUp:x.composeEventHandlers(e.onPointerUp,s.onThumbPointerUp)})});F.displayName=W;var $="ScrollAreaCorner",re=c.forwardRef((e,t)=>{const r=v($,e.__scopeScrollArea),n=!!(r.scrollbarX&&r.scrollbarY);return r.type!=="scroll"&&n?h.jsx(ge,{...e,ref:t}):null});re.displayName=$;var ge=c.forwardRef((e,t)=>{const{__scopeScrollArea:r,...n}=e,o=v($,r),[l,s]=c.useState(0),[i,a]=c.useState(0),f=!!(l&&i);return E(o.scrollbarX,()=>{const d=o.scrollbarX?.offsetHeight||0;o.onCornerHeightChange(d),a(d)}),E(o.scrollbarY,()=>{const d=o.scrollbarY?.offsetWidth||0;o.onCornerWidthChange(d),s(d)}),f?h.jsx(_.Primitive.div,{...n,ref:t,style:{width:l,height:i,position:"absolute",right:o.dir==="ltr"?0:void 0,left:o.dir==="rtl"?0:void 0,bottom:0,...e.style}}):null});function z(e){return e?parseInt(e,10):0}function oe(e,t){const r=e/t;return isNaN(r)?0:r}function M(e){const t=oe(e.viewport,e.content),r=e.scrollbar.paddingStart+e.scrollbar.paddingEnd,n=(e.scrollbar.size-r)*t;return Math.max(n,18)}function Pe(e,t,r,n="ltr"){const o=M(r),l=o/2,s=t||l,i=o-s,a=r.scrollbar.paddingStart+s,f=r.scrollbar.size-r.scrollbar.paddingEnd-i,d=r.content-r.viewport,b=n==="ltr"?[0,d]:[d*-1,0];return te([a,f],b)(e)}function G(e,t,r="ltr"){const n=M(t),o=t.scrollbar.paddingStart+t.scrollbar.paddingEnd,l=t.scrollbar.size-o,s=t.content-t.viewport,i=l-n,a=r==="ltr"?[0,s]:[s*-1,0],f=ae.clamp(e,a);return te([0,s],[0,i])(f)}function te(e,t){return r=>{if(e[0]===e[1]||t[0]===t[1])return t[0];const n=(t[1]-t[0])/(e[1]-e[0]);return t[0]+n*(r-e[0])}}function ne(e,t){return e>0&&e<t}var Ce=(e,t=()=>{})=>{let r={left:e.scrollLeft,top:e.scrollTop},n=0;return function o(){const l={left:e.scrollLeft,top:e.scrollTop},s=r.left!==l.left,i=r.top!==l.top;(s||i)&&t(),r=l,n=window.requestAnimationFrame(o)}(),()=>window.cancelAnimationFrame(n)};function k(e,t){const r=C.useCallbackRef(e),n=c.useRef(0);return c.useEffect(()=>()=>window.clearTimeout(n.current),[]),c.useCallback(()=>{window.clearTimeout(n.current),n.current=window.setTimeout(r,t)},[r,t])}function E(e,t){const r=C.useCallbackRef(t);ie.useLayoutEffect(()=>{let n=0;if(e){const o=new ResizeObserver(()=>{cancelAnimationFrame(n),n=window.requestAnimationFrame(r)});return o.observe(e),()=>{window.cancelAnimationFrame(n),o.unobserve(e)}}},[e,r])}var xe=V,Re=U,Ee=q,Ae=F;exports.Root=xe;exports.ScrollArea=V;exports.ScrollAreaCorner=re;exports.ScrollAreaScrollbar=q;exports.ScrollAreaThumb=F;exports.ScrollAreaViewport=U;exports.Scrollbar=Ee;exports.Thumb=Ae;exports.Viewport=Re;exports.createScrollAreaScope=fe;
//# sourceMappingURL=index54.js.map