@bazza-ui/react 0.1.0-canary.15 → 0.1.0-canary.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunk-3HMQLMSF.js +2 -0
- package/dist/chunk-3HMQLMSF.js.map +1 -0
- package/dist/chunk-MPPIEWSL.js +2 -0
- package/dist/chunk-MPPIEWSL.js.map +1 -0
- package/dist/chunk-PCNHYMD6.cjs +2 -0
- package/dist/chunk-PCNHYMD6.cjs.map +1 -0
- package/dist/chunk-RTG6U56O.cjs +2 -0
- package/dist/chunk-RTG6U56O.cjs.map +1 -0
- package/dist/combobox/index.cjs +1 -1
- package/dist/combobox/index.cjs.map +1 -1
- package/dist/combobox/index.js +1 -1
- package/dist/combobox/index.js.map +1 -1
- package/dist/command-menu/index.cjs +1 -1
- package/dist/command-menu/index.cjs.map +1 -1
- package/dist/command-menu/index.js +1 -1
- package/dist/command-menu/index.js.map +1 -1
- package/dist/context-menu/index.cjs +1 -1
- package/dist/context-menu/index.cjs.map +1 -1
- package/dist/context-menu/index.js +1 -1
- package/dist/context-menu/index.js.map +1 -1
- package/dist/dropdown-menu/index.cjs +1 -1
- package/dist/dropdown-menu/index.cjs.map +1 -1
- package/dist/dropdown-menu/index.js +1 -1
- package/dist/dropdown-menu/index.js.map +1 -1
- package/dist/internal/popup-menu/index.cjs +1 -1
- package/dist/internal/popup-menu/index.cjs.map +1 -1
- package/dist/internal/popup-menu/index.js +1 -1
- package/dist/kbd/index.cjs +1 -1
- package/dist/kbd/index.cjs.map +1 -1
- package/dist/kbd/index.js +1 -1
- package/dist/kbd/index.js.map +1 -1
- package/dist/select/index.cjs +1 -1
- package/dist/select/index.cjs.map +1 -1
- package/dist/select/index.js +1 -1
- package/dist/select/index.js.map +1 -1
- package/dist/video-player/index.cjs +2 -2
- package/dist/video-player/index.cjs.map +1 -1
- package/dist/video-player/index.js +2 -2
- package/dist/video-player/index.js.map +1 -1
- package/package.json +1 -1
- package/dist/chunk-BEWVWSAW.cjs +0 -2
- package/dist/chunk-BEWVWSAW.cjs.map +0 -1
- package/dist/chunk-EDZTZHQ4.js +0 -2
- package/dist/chunk-EDZTZHQ4.js.map +0 -1
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var _chunkSCDHQZFIcjs = require('../chunk-SCDHQZFI.cjs');var _chunkM4G6J7DPcjs = require('../chunk-M4G6J7DP.cjs');var _react = require('react'); var
|
|
2
|
-
`),s=a.length>0,p={active:s,cueText:t,cues:a},i={ref:r,"aria-live":"polite","aria-atomic":!0,role:"status",style:{pointerEvents:"none"},"data-active":s||void 0};return l?l(i,p):u?_jsxruntime.jsx.call(void 0, "div",{...i,...n,children:u}):_jsxruntime.jsx.call(void 0, "div",{...i,...n,children:t})});var lr=sr.forwardRef(function(e,r){let{render:l,...u}=e,n=P("CaptionsButton"),o=n.registeredTracks.length>0,a=n.activeTextTrack!==null,t={active:a,available:o,trackCount:n.registeredTracks.length},s=_chunkSCDHQZFIcjs.a.call(void 0, {ref:r,type:"button","aria-label":a?"Disable captions":"Enable captions","aria-pressed":a,disabled:!o,"data-active":a||void 0,"data-available":o||void 0,onClick(){if(a)n.setTextTrack(null);else if(n.registeredTracks.length>0){let p=n.registeredTracks[0];_optionalChain([p, 'optionalAccess', _2 => _2.textTrack])&&n.setTextTrack(p.textTrack)}}},u);return l?l(s,t):_jsxruntime.jsx.call(void 0, "button",{...s})});var ur=it.forwardRef(function(e,r){let{render:l,children:u,...n}=e,o=P("CaptionsMenu"),a={registeredTracks:o.registeredTracks,activeTextTrack:o.activeTextTrack},t={ref:r,role:"menu","aria-label":"Captions","data-active":o.activeTextTrack!==null||void 0};return l?l(t,a):_jsxruntime.jsx.call(void 0, "div",{...t,...n,children:_nullishCoalesce(u, () => (_jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment,{children:[_jsxruntime.jsx.call(void 0, Ae,{track:null,children:"Off"}),o.registeredTracks.map(s=>_jsxruntime.jsx.call(void 0, Ae,{track:s.textTrack,children:s.label},s.id))]})))})}),Ae=it.forwardRef(function(e,r){let{track:l,children:u,...n}=e,o=P("CaptionsMenuItem"),a=o.activeTextTrack===l,t=_chunkSCDHQZFIcjs.a.call(void 0, {ref:r,type:"button",role:"menuitemradio","aria-checked":a,"data-active":a||void 0,onClick(){o.setTextTrack(l)}},n);return _jsxruntime.jsx.call(void 0, "button",{...t,children:u})});var We=(t=>(t.open="data-open",t.closed="data-closed",t.idle="data-idle",t.playing="data-playing",t.paused="data-paused",t.ended="data-ended",t.startingStyle="data-starting-style",t.endingStyle="data-ending-style",t))(We||{});function an(c){let e=[...c.getAnimations(),...Array.from(c.querySelectorAll("*")).flatMap(r=>r.getAnimations())];return e.length===0?Promise.resolve():Promise.all(e.map(r=>r.finished)).then(()=>{}).catch(()=>{})}function Y(c){let{open:e,keepMounted:r=!1}=c,[l,u]=X.useState(e||r),[n,o]=X.useState(e?"starting":void 0),a=X.useRef(null),t=X.useRef(!1);return X.useEffect(()=>{if(e){t.current=!1,u(!0),o("starting");let s=requestAnimationFrame(()=>{requestAnimationFrame(()=>{o(void 0)})});return()=>cancelAnimationFrame(s)}},[e]),X.useEffect(()=>{if(!e&&l&&!t.current){o("ending");let s=a.current;if(!s){o(void 0),r||u(!1);return}t.current=!0;let p=requestAnimationFrame(()=>{requestAnimationFrame(()=>{an(s).then(()=>{t.current&&(t.current=!1,o(void 0),r||u(!1))})})});return()=>{cancelAnimationFrame(p)}}},[e,l,r]),X.useEffect(()=>{r&&!l&&!e&&u(!0)},[r,l,e]),{mounted:l||r,transitionStatus:n,elementRef:a}}var cr=fe.forwardRef(function(e,r){let{idleTimeout:l,keepMounted:u=!1,render:n,children:o,...a}=e,t=P("Controls"),p=(_nullishCoalesce(l, () => (t.idleTimeout)))===0||!t.idle,{mounted:i,transitionStatus:f,elementRef:b}=Y({open:p,keepMounted:u}),S=fe.useCallback(L=>{b.current=L,typeof r=="function"?r(L):r&&(r.current=L)},[r,b]),{onClick:T,...y}=a,x=fe.useCallback(L=>{L.stopPropagation(),_optionalChain([T, 'optionalCall', _3 => _3(L)])},[T]),v={open:p,idle:t.idle,playing:t.playing,paused:t.paused,ended:t.ended},k={ref:S,onClick:x,"data-open":p||void 0,"data-closed":!p||void 0,"data-idle":t.idle||void 0,"data-playing":t.playing||void 0,"data-paused":t.paused||void 0,"data-ended":t.ended||void 0,"data-starting-style":f==="starting"||void 0,"data-ending-style":f==="ending"||void 0};return i?n?n(k,v):_jsxruntime.jsx.call(void 0, "div",{...k,...y,children:o}):null});var dr=ue.forwardRef(function(e,r){let{render:l,children:u,...n}=e,o=P("FullscreenButton"),[a,t]=ue.useState(!1);ue.useEffect(()=>{t("fullscreenEnabled"in document&&document.fullscreenEnabled)},[]);let s={fullscreen:o.fullscreen,supported:a},p=_chunkSCDHQZFIcjs.a.call(void 0, {ref:r,type:"button","aria-label":o.fullscreen?"Exit fullscreen":"Enter fullscreen","aria-pressed":o.fullscreen,disabled:!a,"data-fullscreen":o.fullscreen||void 0,"data-supported":a||void 0,onClick(){o.toggleFullscreen()}},n);return l?l(p,s):_jsxruntime.jsx.call(void 0, "button",{...p,children:u})});var fr=pr.forwardRef(function(e,r){let{render:l,...u}=e,n=P("MuteButton"),o={muted:n.muted,volume:n.volume},a=n.volume,t=n.muted,s=a===0||t,p=a>0&&!t,i=!t&&a>0&&a<.5,f=!t&&a>=.5,b=_chunkSCDHQZFIcjs.a.call(void 0, {ref:r,type:"button","aria-label":n.muted?"Unmute":"Mute","aria-pressed":n.muted,"data-muted":t||void 0,"data-volume-off":s||void 0,"data-volume-on":p||void 0,"data-volume-low":i||void 0,"data-volume-high":f||void 0,onClick(){n.toggleMute()}},u);return l?l(b,o):_jsxruntime.jsx.call(void 0, "button",{...b})});var Fe=(i=>(i.open="data-open",i.closed="data-closed",i.playing="data-playing",i.paused="data-paused",i.ended="data-ended",i.waiting="data-waiting",i.seeking="data-seeking",i.fullscreen="data-fullscreen",i.pip="data-pip",i.startingStyle="data-starting-style",i.endingStyle="data-ending-style",i))(Fe||{});var mr=Qe.forwardRef(function(e,r){let{idleTimeout:l,keepMounted:u=!1,render:n,children:o,...a}=e,t=P("Overlay"),p=(_nullishCoalesce(l, () => (t.idleTimeout)))===0||!t.idle,{mounted:i,transitionStatus:f,elementRef:b}=Y({open:p,keepMounted:u}),S=Qe.useCallback(x=>{b.current=x,typeof r=="function"?r(x):r&&(r.current=x)},[r,b]),T={playing:t.playing,paused:t.paused,ended:t.ended,waiting:t.waiting,seeking:t.seeking,fullscreen:t.fullscreen,pictureInPicture:t.pictureInPicture,open:p},y=_chunkSCDHQZFIcjs.a.call(void 0, {ref:S,onClick(){t.toggle()},"data-playing":t.playing||void 0,"data-paused":t.paused||void 0,"data-ended":t.ended||void 0,"data-waiting":t.waiting||void 0,"data-seeking":t.seeking||void 0,"data-fullscreen":t.fullscreen||void 0,"data-pip":t.pictureInPicture||void 0,"data-open":p||void 0,"data-closed":!p||void 0,"data-starting-style":f==="starting"||void 0,"data-ending-style":f==="ending"||void 0},a);return i?n?n(y,T):_jsxruntime.jsx.call(void 0, "div",{...y,...a,children:o}):null});var Pr=ce.forwardRef(function(e,r){let{render:l,...u}=e,n=P("PictureInPictureButton"),[o,a]=ce.useState(!1);ce.useEffect(()=>{a("pictureInPictureEnabled"in document&&document.pictureInPictureEnabled)},[]);let t={pictureInPicture:n.pictureInPicture,supported:o},s=_chunkSCDHQZFIcjs.a.call(void 0, {ref:r,type:"button","aria-label":n.pictureInPicture?"Exit picture-in-picture":"Enter picture-in-picture","aria-pressed":n.pictureInPicture,disabled:!o,"data-pip":n.pictureInPicture||void 0,"data-supported":o||void 0,onClick(){n.togglePictureInPicture()}},u);return l?l(s,t):_jsxruntime.jsx.call(void 0, "button",{...s})});var Rr=yr.forwardRef(function(e,r){let{render:l,children:u,...n}=e,o=P("PlayButton"),a={playing:o.playing,paused:o.paused,ended:o.ended,waiting:o.waiting},t=_chunkSCDHQZFIcjs.a.call(void 0, {ref:r,type:"button","aria-label":o.playing?"Pause":"Play","data-playing":o.playing||void 0,"data-paused":o.paused||void 0,"data-ended":o.ended||void 0,"data-waiting":o.waiting||void 0,onClick(){o.toggle()}},n);return l?l(t,a):_jsxruntime.jsx.call(void 0, "button",{...t,children:u})});var fn=[.25,.5,.75,1,1.25,1.5,1.75,2],br=Sr.forwardRef(function(e,r){let{rates:l=fn,render:u,children:n,...o}=e,a=P("PlaybackRateButton"),t={playbackRate:a.playbackRate,rates:l},s=_chunkSCDHQZFIcjs.a.call(void 0, {ref:r,type:"button","aria-label":`Playback speed: ${a.playbackRate}x`,"data-rate":a.playbackRate,onClick(){let p=l.indexOf(a.playbackRate),i=_nullishCoalesce(_nullishCoalesce(l[(p+1)%l.length], () => (l[0])), () => (a.playbackRate));a.setPlaybackRate(i)}},o);return u?u(s,t):_jsxruntime.jsx.call(void 0, "button",{...s,children:_nullishCoalesce(n, () => (`${a.playbackRate}x`))})});var Pn=[.25,.5,.75,1,1.25,1.5,1.75,2],kr=lt.forwardRef(function(e,r){let{rates:l=Pn,render:u,children:n,...o}=e,a=P("PlaybackRateMenu"),t={playbackRate:a.playbackRate,rates:l},s={ref:r,role:"menu","aria-label":"Playback speed","data-rate":a.playbackRate};return u?u(s,t):_jsxruntime.jsx.call(void 0, "div",{...s,...o,children:_nullishCoalesce(n, () => (l.map(p=>_jsxruntime.jsx.call(void 0, ut,{rate:p},p))))})}),ut=lt.forwardRef(function(e,r){let{rate:l,children:u,...n}=e,o=P("PlaybackRateMenuItem"),a=o.playbackRate===l,t=_chunkSCDHQZFIcjs.a.call(void 0, {ref:r,type:"button",role:"menuitemradio","aria-checked":a,"data-active":a||void 0,onClick(){o.setPlaybackRate(l)}},n);return _jsxruntime.jsx.call(void 0, "button",{...t,children:_nullishCoalesce(u, () => (`${l}x`))})});var _reactdom = require('react-dom'); var Mr = _interopRequireWildcard(_reactdom);function gr(c){let{children:e,container:r}=c,[l,u]=$e.useState(!1);if($e.useEffect(()=>(u(!0),()=>u(!1)),[]),!l)return null;let n=_nullishCoalesce(r, () => ((typeof document<"u"?document.body:null)));return n?_reactdom.createPortal.call(void 0, e,n):null}var vr=Ne.forwardRef(function(e,r){let{keepMounted:l=!1,render:u,children:n,...o}=e,a=P("Poster"),t=!a.canPlay,s=a.canPlay,{mounted:p,transitionStatus:i,elementRef:f}=Y({open:t,keepMounted:l}),b=Rn(r,f),S={loading:t,loaded:s,transitionStatus:i},T={ref:b,"aria-hidden":!0,"data-loading":t||void 0,"data-loaded":s||void 0,"data-starting-style":i==="starting"||void 0,"data-ending-style":i==="ending"||void 0};return p?u?u(T,S):_jsxruntime.jsx.call(void 0, "div",{...T,...o,children:n}):null});function Rn(...c){return Ne.useCallback(e=>{for(let r of c)typeof r=="function"?r(e):r!=null&&(r.current=e)},c)}var Tr=dt.forwardRef(function(e,r){let{render:l,children:u,...n}=e,o=P("QualityMenu"),a={qualities:o.qualities,activeQuality:o.activeQuality},t={ref:r,role:"menu","aria-label":"Video quality","data-quality":_nullishCoalesce(_optionalChain([o, 'access', _4 => _4.activeQuality, 'optionalAccess', _5 => _5.label]), () => (void 0))};return l?l(t,a):_jsxruntime.jsx.call(void 0, "div",{...t,...n,children:_nullishCoalesce(u, () => (o.qualities.map(s=>_jsxruntime.jsx.call(void 0, pt,{quality:s,children:s.label},s.label))))})}),pt=dt.forwardRef(function(e,r){let{quality:l,children:u,...n}=e,o=P("QualityMenuItem"),a=_optionalChain([o, 'access', _6 => _6.activeQuality, 'optionalAccess', _7 => _7.label])===l.label,t=_chunkSCDHQZFIcjs.a.call(void 0, {ref:r,type:"button",role:"menuitemradio","aria-checked":a,"data-active":a||void 0,onClick(){o.setQuality(l)}},n);return _jsxruntime.jsx.call(void 0, "button",{...t,children:u})});var je=(s=>(s.playing="data-playing",s.paused="data-paused",s.ended="data-ended",s.waiting="data-waiting",s.seeking="data-seeking",s.fullscreen="data-fullscreen",s.pip="data-pip",s.muted="data-muted",s.idle="data-idle",s))(je||{});function bn(c,e){return!(c instanceof HTMLElement)||c instanceof HTMLInputElement&&c.type==="range"&&e===" "?!1:c.tagName==="INPUT"||c.tagName==="TEXTAREA"||c.isContentEditable}function kn(c){return c==="ArrowRight"||c==="ArrowLeft"}function hr(c,e){let r=ie(),l=Ue.useRef(r);l.current=r,Ue.useEffect(()=>{if(e==="none")return;let u=a=>{if(bn(a.target,a.key))return;let t=l.current;switch(a.key){case" ":a.preventDefault(),t.toggle();break;case"f":case"F":a.preventDefault(),t.toggleFullscreen();break;case"ArrowUp":a.preventDefault(),t.setVolume(Math.min(t.volume+.1,1));break;case"ArrowDown":a.preventDefault(),t.setVolume(Math.max(t.volume-.1,0));break;case"ArrowRight":a.preventDefault(),t.beginSeekInteraction(),t.seek(Math.min(t.currentTime+5,t.duration));break;case"ArrowLeft":a.preventDefault(),t.beginSeekInteraction(),t.seek(Math.max(t.currentTime-5,0));break;default:return}t.resetIdle()},n=a=>{kn(a.key)&&l.current.endSeekInteraction()};if(e==="global")return window.addEventListener("keydown",u),window.addEventListener("keyup",n),()=>{window.removeEventListener("keydown",u),window.removeEventListener("keyup",n)};let o=c.current;if(o)return o.addEventListener("keydown",u),o.addEventListener("keyup",n),()=>{o.removeEventListener("keydown",u),o.removeEventListener("keyup",n)}},[e,c])}function _e(c,e,r){let[l,u]=d.useState(e),n=c!==void 0,o=n?c:l,a=d.useCallback(t=>{let s=typeof t=="function"?t(o):t;n||u(s),_optionalChain([r, 'optionalCall', _8 => _8(s)])},[n,o,r]);return[o,a]}function gn({rootRef:c,videoRef:e,actionsRef:r,defaultPlaying:l=!1,autoPlay:u=!1,defaultVolume:n=1,defaultMuted:o=!1,defaultPlaybackRate:a=1,playing:t,onPlayingChange:s,volume:p,onVolumeChange:i,muted:f,onMutedChange:b,playbackRate:S,onPlaybackRateChange:T,currentTime:y,onCurrentTimeChange:x,idleTimeout:v=3e3,preventIdleWhenPaused:k=!1,idle:L,onIdleChange:M,onEnded:w,onWaiting:H,onSeeking:Q,onSeeked:D,onFullscreenChange:h,onPictureInPictureChange:$,children:U}){let q=d.useRef(1),_=d.useRef(!1),z=d.useRef(!1),Z=d.useRef(!1),[B,I]=d.useState("paused"),[g,A]=d.useState(l?"play":"pause");d.useEffect(()=>{t!==void 0&&(A(t?"play":"pause"),B!=="waiting"&&I(t?"playing":"paused"))},[t,B]);let[W,te]=_e(p,n,i),[J,pe]=_e(f,o,b),[Pt,yt]=_e(S,a,T),[qr,re]=_e(L,!0,M),ne=d.useRef(null),ye=d.useCallback(()=>{ne.current&&(clearTimeout(ne.current),ne.current=null)},[]),Rt=d.useCallback(()=>{v!==0&&(ye(),ne.current=setTimeout(()=>{re(!0)},v))},[v,ye,re]),St=d.useCallback(()=>{re(!1),Rt()},[re,Rt]),bt=d.useCallback(()=>{ye(),re(!0)},[ye,re]);d.useEffect(()=>(v>0&&(ne.current=setTimeout(()=>{re(!0)},v)),()=>{ne.current&&clearTimeout(ne.current)}),[]);let kt=k&&B!=="playing"?!1:qr,se=d.useCallback(()=>{let m=e.current;m&&(m.muted!==J&&(m.muted=J),m.volume!==W&&(m.volume=W))},[J,e,W]),Re=d.useCallback(async()=>{let m=e.current;if(!(!u||!m||Z.current)){Z.current=!0,A("play"),se();try{await m.play(),I("playing"),_optionalChain([s, 'optionalCall', _9 => _9(!0)])}catch (e2){A("pause"),I("paused")}}},[u,s,se,e]);d.useEffect(()=>{if(!u){Z.current=!1;return}Re()},[u,Re]);let[gt,vt]=d.useState(0),[Se,Tt]=d.useState(0),[ht,Xr]=d.useState(null),[be,Yr]=d.useState(null),[xt,Ct]=d.useState(!1),[Mt,le]=d.useState(!1),[ke,Gr]=d.useState(!1),[ge,Et]=d.useState(!1),[Bt,ot]=d.useState([]),[oe,zr]=d.useState(null),[Vt,ve]=d.useState([]),[wt,Wn]=d.useState([]),[Lt,Jr]=d.useState(null);d.useEffect(()=>{y!==void 0&&e.current&&(e.current.currentTime=y)},[y,e]),d.useEffect(()=>{f===void 0&&p===void 0||se()},[f,p,se]),d.useEffect(()=>{let m=()=>{let C=document.fullscreenElement===c.current;Gr(C),_optionalChain([h, 'optionalCall', _10 => _10(C)])};return document.addEventListener("fullscreenchange",m),()=>document.removeEventListener("fullscreenchange",m)},[h,c]),d.useEffect(()=>{let m=e.current;if(!m)return;let C=()=>{Et(!0),_optionalChain([$, 'optionalCall', _11 => _11(!0)])},N=()=>{Et(!1),_optionalChain([$, 'optionalCall', _12 => _12(!1)])};return m.addEventListener("enterpictureinpicture",C),m.addEventListener("leavepictureinpicture",N),()=>{m.removeEventListener("enterpictureinpicture",C),m.removeEventListener("leavepictureinpicture",N)}},[$,e]);let Te=d.useCallback(async()=>{e.current&&(A("play"),await e.current.play(),I("playing"),_optionalChain([s, 'optionalCall', _13 => _13(!0)]))},[e,s]),he=d.useCallback(()=>{e.current&&(A("pause"),e.current.pause(),I("paused"),_optionalChain([s, 'optionalCall', _14 => _14(!1)]))},[e,s]),xe=d.useCallback(async()=>{B==="playing"?he():await Te()},[B,Te,he]),Ce=d.useCallback(m=>{e.current&&(e.current.currentTime=m,vt(m),_optionalChain([x, 'optionalCall', _15 => _15(m)]))},[x,e]),Ht=d.useCallback(()=>{let m=e.current;!m||_.current||(_.current=!0,z.current=g==="play",le(!0),z.current&&!m.paused&&m.pause())},[g,e]),It=d.useCallback(()=>{let m=e.current;if(!m||!_.current)return;let C=z.current&&g==="play";if(_.current=!1,z.current=!1,!C){le(!1);return}m.play().then(()=>{I("playing"),le(!1)}).catch(()=>{I("waiting"),le(!1)})},[g,e]),Me=d.useCallback(m=>{let C=Math.max(0,Math.min(1,m));e.current&&(e.current.volume=C),te(C)},[te,e]),Dt=d.useCallback(()=>{if(!(J||W===0))q.current=W,e.current&&(e.current.muted=!0),pe(!0);else{let C=q.current>0?q.current:1;e.current&&(e.current.volume=C,e.current.muted=!1),te(C),pe(!1)}},[J,W,pe,te,e]),Ee=d.useCallback(async()=>{_optionalChain([c, 'access', _16 => _16.current, 'optionalAccess', _17 => _17.requestFullscreen])&&await c.current.requestFullscreen()},[c]),Be=d.useCallback(async()=>{document.exitFullscreen&&await document.exitFullscreen()},[]),Ve=d.useCallback(async()=>{ke?await Be():await Ee()},[ke,Ee,Be]),we=d.useCallback(async()=>{_optionalChain([e, 'access', _18 => _18.current, 'optionalAccess', _19 => _19.requestPictureInPicture])&&await e.current.requestPictureInPicture()},[e]),Le=d.useCallback(async()=>{document.pictureInPictureElement&&await document.exitPictureInPicture()},[]),Ot=d.useCallback(async()=>{ge?await Le():await we()},[ge,we,Le]),At=d.useCallback(m=>{e.current&&(e.current.playbackRate=m),yt(m)},[yt,e]),Wt=d.useCallback(m=>{if(e.current){for(let C=0;C<e.current.textTracks.length;C++){let N=e.current.textTracks[C];N&&(N.mode="disabled")}m&&(m.mode="hidden")}zr(m),ve([])},[e]),Ft=d.useCallback(m=>{Jr(m)},[]),Qt=d.useCallback(m=>{ot(C=>C.some(N=>N.id===m.id)?C:[...C,m])},[]),$t=d.useCallback(m=>{ot(C=>C.filter(N=>N.id!==m))},[]),Nt=d.useCallback((m,C)=>{ot(N=>N.map(ae=>ae.id===m?{...ae,textTrack:C}:ae))},[]);d.useEffect(()=>{if(!oe){ve([]);return}let m=()=>{let C=oe.activeCues;if(!C){ve([]);return}let N=[];for(let ae=0;ae<C.length;ae++){let rr=C[ae];rr instanceof VTTCue&&N.push(rr)}ve(N)};return m(),oe.addEventListener("cuechange",m),()=>{oe.removeEventListener("cuechange",m)}},[oe]),d.useImperativeHandle(r,()=>({toggle:xe,seek:Ce,setVolume:Me,toggleFullscreen:Ve}),[xe,Ce,Me,Ve]);let jt=d.useCallback(()=>{if(e.current){let m=e.current.currentTime;vt(m),_optionalChain([x, 'optionalCall', _20 => _20(m)])}},[x,e]),Ut=d.useCallback(()=>{e.current&&Tt(e.current.duration)},[e]),_t=d.useCallback(()=>{e.current&&Xr(e.current.buffered)},[e]),Kt=d.useCallback(()=>{A("play"),I("playing"),_optionalChain([s, 'optionalCall', _21 => _21(!0)])},[s]),qt=d.useCallback(()=>{_.current||B!=="ended"&&(I("paused"),_optionalChain([s, 'optionalCall', _22 => _22(!1)]))},[B,s]),Xt=d.useCallback(()=>{A("pause"),I("ended"),_optionalChain([s, 'optionalCall', _23 => _23(!1)]),_optionalChain([w, 'optionalCall', _24 => _24()])},[s,w]),Yt=d.useCallback(()=>{_.current||(I("waiting"),_optionalChain([H, 'optionalCall', _25 => _25()]))},[H]),Gt=d.useCallback(()=>{if(_.current){Ct(!0);return}if(B==="waiting"){let m=g==="play"?"playing":"paused";I(m),_optionalChain([s, 'optionalCall', _26 => _26(m==="playing")])}Ct(!0)},[B,g,s]),zt=d.useCallback(()=>{le(!0),B==="ended"&&I("paused"),_optionalChain([Q, 'optionalCall', _27 => _27()])},[B,Q]),Jt=d.useCallback(()=>{if(le(!1),e.current){let{currentTime:m,duration:C}=e.current;C>0&&C-m<.01&&I("ended")}_optionalChain([D, 'optionalCall', _28 => _28()])},[D,e]),Zt=d.useCallback(()=>{e.current&&(te(e.current.volume),pe(e.current.muted))},[te,pe,e]),er=d.useCallback(()=>{e.current&&Tt(e.current.duration)},[e]),tr=d.useCallback(()=>{se(),Re()},[Re,se]),Zr=d.useMemo(()=>({playbackStatus:B,playbackIntent:g,playing:B==="playing",paused:B==="paused",ended:B==="ended",waiting:B==="waiting",seeking:Mt,canPlay:xt,currentTime:gt,duration:Se,buffered:ht,hoverTime:be,hoverProgress:be!==null&&Se>0?be/Se*100:null,volume:W,muted:J,fullscreen:ke,pictureInPicture:ge,idle:kt,idleTimeout:v,preventIdleWhenPaused:k,registeredTracks:Bt,activeTextTrack:oe,activeCues:Vt,playbackRate:Pt,qualities:wt,activeQuality:Lt,videoRef:e,rootRef:c,play:Te,pause:he,toggle:xe,seek:Ce,setVolume:Me,toggleMute:Dt,enterFullscreen:Ee,exitFullscreen:Be,toggleFullscreen:Ve,enterPictureInPicture:we,exitPictureInPicture:Le,togglePictureInPicture:Ot,setPlaybackRate:At,setTextTrack:Wt,setQuality:Ft,registerTrack:Qt,unregisterTrack:$t,updateTrackRef:Nt,resetIdle:St,setHoverTime:Yr,beginSeekInteraction:Ht,endSeekInteraction:It,_handlers:{onTimeUpdate:jt,onDurationChange:Ut,onProgress:_t,onPlay:Kt,onPause:qt,onEnded:Xt,onWaiting:Yt,onCanPlay:Gt,onSeeking:zt,onSeeked:Jt,onVolumeChange:Zt,onLoadedMetadata:er,onVideoMount:tr,onRootMouseLeave:bt}}),[B,g,Mt,xt,gt,Se,ht,be,W,J,ke,ge,kt,v,k,Bt,oe,Vt,Pt,wt,Lt,e,c,Te,he,xe,Ce,Me,Dt,Ee,Be,Ve,we,Le,Ot,At,Wt,Ft,Qt,$t,Nt,St,Ht,It,jt,Ut,_t,Kt,qt,Xt,Yt,Gt,zt,Jt,Zt,er,tr,bt]);return _jsxruntime.jsx.call(void 0, at.Provider,{value:Zr,children:U})}var xr=d.forwardRef(function(e,r){let{actionsRef:l,keyboardShortcuts:u="focused",defaultPlaying:n,autoPlay:o,defaultVolume:a,defaultMuted:t,defaultPlaybackRate:s,playing:p,onPlayingChange:i,volume:f,onVolumeChange:b,muted:S,onMutedChange:T,playbackRate:y,onPlaybackRateChange:x,currentTime:v,onCurrentTimeChange:k,idleTimeout:L,preventIdleWhenPaused:M,hideCursorWhenIdle:w="fullscreen",idle:H,onIdleChange:Q,onEnded:D,onWaiting:h,onSeeking:$,onSeeked:U,onFullscreenChange:q,onPictureInPictureChange:_,children:z,...Z}=e,B=d.useRef(null),I=d.useRef(null);return _jsxruntime.jsx.call(void 0, gn,{actionsRef:l,defaultPlaying:n,autoPlay:o,defaultVolume:a,defaultMuted:t,defaultPlaybackRate:s,playing:p,onPlayingChange:i,volume:f,onVolumeChange:b,muted:S,onMutedChange:T,playbackRate:y,onPlaybackRateChange:x,currentTime:v,onCurrentTimeChange:k,idleTimeout:L,preventIdleWhenPaused:M,idle:H,onIdleChange:Q,onEnded:D,onWaiting:h,onSeeking:$,onSeeked:U,onFullscreenChange:q,onPictureInPictureChange:_,rootRef:B,videoRef:I,children:_jsxruntime.jsx.call(void 0, vn,{ref:r,rootRef:B,keyboardShortcuts:u,hideCursorWhenIdle:w,...Z,children:z})})}),vn=d.forwardRef(function({rootRef:e,keyboardShortcuts:r,hideCursorWhenIdle:l,children:u,className:n,style:o,...a},t){let s=ie(),p=Tn(t,e),i=d.useRef(null);hr(e,r);let f=d.useCallback(w=>{let{clientX:H,clientY:Q}=w,D=i.current;D&&D.x===H&&D.y===Q||(i.current={x:H,y:Q},s.resetIdle())},[s]),b=d.useCallback(w=>{let{clientX:H,clientY:Q}=w,D=i.current;D&&D.x===H&&D.y===Q||(i.current={x:H,y:Q},s.resetIdle())},[s]),S=d.useCallback(()=>{s._handlers.onRootMouseLeave()},[s._handlers]),T=d.useCallback(()=>{s.resetIdle()},[s]),y=d.useCallback(()=>{s.resetIdle()},[s]),x=d.useCallback(w=>{w.key==="Tab"&&s.resetIdle()},[s]),v=_chunkSCDHQZFIcjs.a.call(void 0, {onMouseMove:f,onMouseEnter:b,onMouseLeave:S,onClick:T,onFocus:y,onKeyDown:x},a),k={"data-playing":s.playing||void 0,"data-paused":s.paused||void 0,"data-ended":s.ended||void 0,"data-waiting":s.waiting||void 0,"data-seeking":s.seeking||void 0,"data-fullscreen":s.fullscreen||void 0,"data-pip":s.pictureInPicture||void 0,"data-muted":s.muted||void 0,"data-idle":s.idle||void 0},L=l!==!1&&s.idle&&(l==="always"||l==="fullscreen"&&s.fullscreen),M=d.useId();return _jsxruntime.jsxs.call(void 0, "div",{...v,ref:p,tabIndex:r==="focused"?0:void 0,className:n,style:o,"data-video-player-scope":M,...k,children:[L&&_jsxruntime.jsx.call(void 0, "style",{children:`[data-video-player-scope="${M}"], [data-video-player-scope="${M}"] * { cursor: none !important; }`}),u]})});function Tn(...c){return d.useCallback(e=>{for(let r of c)typeof r=="function"?r(e):r!=null&&(r.current=e)},c)}var qe=(o=>(o.progress="--seek-progress",o.buffered="--seek-buffered",o.currentTime="--seek-current-time",o.duration="--seek-duration",o.hoverProgress="--seek-hover-progress",o.hoverTime="--seek-hover-time",o))(qe||{});var Xe=(u=>(u.seeking="data-seeking",u.hovering="data-hovering",u.pressing="data-pressing",u.dragging="data-dragging",u))(Xe||{});var _slider = require('@base-ui/react/slider');var _react2 = require('@floating-ui/react');var Ye=(u=>(u.open="data-open",u.closed="data-closed",u.startingStyle="data-starting-style",u.endingStyle="data-ending-style",u))(Ye||{});var ft=R.createContext(null);function Er(c){let e=R.useContext(ft);if(!e)throw new Error(`${c} must be used within SeekSlider`);return e}function Cr(c){return c==="ArrowRight"||c==="ArrowLeft"}var Br=R.forwardRef(function(e,r){let{render:l,children:u,onPointerMove:n,onPointerLeave:o,onPointerDown:a,onKeyUp:t,onValueCommitted:s,...p}=e,i=P("SeekSlider"),f=R.useRef(null),[b,S]=R.useState(null),[T,y]=R.useState(!1),[x,v]=R.useState(!1),k=R.useRef(!1);R.useEffect(()=>{if(!T)return;let g=()=>{y(!1),v(!1),k.current=!1,i.endSeekInteraction()};return window.addEventListener("pointerup",g),()=>window.removeEventListener("pointerup",g)},[T,i]);let L=i.duration>0?i.currentTime/i.duration*100:0,M=R.useCallback((g,A)=>{let W=typeof g=="number"?g:g[0];W!==void 0&&(A.reason==="keyboard"&&i.beginSeekInteraction(),i.seek(W),i.resetIdle(),k.current&&v(!0))},[i]),w=R.useCallback(g=>{if(_optionalChain([n, 'optionalCall', _29 => _29(g)]),!f.current||i.duration===0)return;let A=f.current.getBoundingClientRect(),W=g.clientX-A.left,J=Math.max(0,Math.min(1,W/A.width))*i.duration;i.setHoverTime(J)},[n,i]),H=R.useCallback(g=>{_optionalChain([o, 'optionalCall', _30 => _30(g)]),i.setHoverTime(null)},[o,i]),Q=R.useCallback(g=>{_optionalChain([a, 'optionalCall', _31 => _31(g)]),y(!0),k.current=!0,i.beginSeekInteraction()},[a,i]),D=R.useCallback(g=>{_optionalChain([t, 'optionalCall', _32 => _32(g)]),Cr(g.key)&&i.endSeekInteraction()},[t,i]),h=R.useCallback((g,A)=>{let W=typeof g=="number"?g:g[0];W!==void 0&&(_optionalChain([s, 'optionalCall', _33 => _33(W,A)]),y(!1),v(!1),k.current=!1,!(A.reason==="keyboard"&&Cr(A.event.key))&&i.endSeekInteraction())},[s,i]),$=R.useMemo(()=>{if(!i.buffered||i.buffered.length===0)return 0;for(let g=0;g<i.buffered.length;g++)if(i.buffered.start(g)<=i.currentTime&&i.currentTime<=i.buffered.end(g))return i.buffered.end(g);return i.buffered.end(0)},[i.buffered,i.currentTime]),U=i.duration>0?$/i.duration*100:0;R.useLayoutEffect(()=>{typeof r=="function"?r(f.current):r&&(r.current=f.current)});let q={currentTime:i.currentTime,duration:i.duration,progress:L,seeking:i.seeking,pressing:T,dragging:x,hoverTime:i.hoverTime,hoverProgress:i.hoverProgress},_=i.hoverProgress!==null,z=_nullishCoalesce(i.hoverProgress, () => (0)),Z=R.useMemo(()=>({sliderRef:f,previewThumbElement:b,setPreviewThumbElement:S,hoverProgress:z,open:_}),[f,b,S,z,_]),B={position:"relative","--seek-progress":`${L}%`,"--seek-buffered":`${U}%`,"--seek-current-time":i.currentTime,"--seek-duration":i.duration,"--seek-hover-progress":i.hoverProgress!==null?`${i.hoverProgress}%`:void 0,"--seek-hover-time":_nullishCoalesce(i.hoverTime, () => (void 0)),...p.style},I={"data-seeking":i.seeking||void 0,"data-hovering":i.hoverTime!==null||void 0,"data-pressing":T||void 0,"data-dragging":x||void 0,style:B};return l?_jsxruntime.jsx.call(void 0, ft.Provider,{value:Z,children:_jsxruntime.jsx.call(void 0, _slider.Slider.Root,{ref:f,min:0,max:i.duration||100,step:.1,value:i.currentTime,onValueChange:M,onValueCommitted:h,onPointerMove:w,onPointerLeave:H,onPointerDown:Q,onKeyUp:D,"aria-label":"Seek",render:g=>l({...g,...I,style:{...g.style,...I.style}},q)})}):_jsxruntime.jsx.call(void 0, ft.Provider,{value:Z,children:_jsxruntime.jsx.call(void 0, _slider.Slider.Root,{ref:f,min:0,max:i.duration||100,step:.1,value:i.currentTime,onValueChange:M,onValueCommitted:h,onPointerMove:w,onPointerLeave:H,onPointerDown:Q,onKeyUp:D,"aria-label":"Seek",...I,...p,children:_nullishCoalesce(u, () => (_jsxruntime.jsx.call(void 0, _slider.Slider.Control,{children:_jsxruntime.jsxs.call(void 0, _slider.Slider.Track,{style:{position:"relative"},children:[_jsxruntime.jsx.call(void 0, "div",{style:{position:"absolute",left:0,top:0,height:"100%",width:`${U}%`}}),_jsxruntime.jsx.call(void 0, _slider.Slider.Indicator,{}),_jsxruntime.jsx.call(void 0, _slider.Slider.Thumb,{})]})})))})})}),Vr=_slider.Slider.Control,wr=R.forwardRef(function(e,r){let{render:l,children:u,style:n,...o}=e,a={},t={position:"relative",...n},s={ref:r,style:t};return l?_jsxruntime.jsx.call(void 0, _slider.Slider.Track,{render:p=>l({...p,...s},a)}):_jsxruntime.jsx.call(void 0, _slider.Slider.Track,{ref:r,style:t,...o,children:u})}),Lr=R.forwardRef(function(e,r){let{render:l,children:u,style:n,...o}=e,a=P("SeekSliderProgress"),s={progress:a.duration>0?a.currentTime/a.duration*100:0},p={height:"100%",...n},i={ref:r,style:p};return l?_jsxruntime.jsx.call(void 0, _slider.Slider.Indicator,{render:f=>l({...f,...i,style:{...f.style,...p}},s)}):_jsxruntime.jsx.call(void 0, _slider.Slider.Indicator,{ref:r,style:p,...o,children:u})}),Hr=R.forwardRef(function(e,r){let{render:l,children:u,style:n,...o}=e,a={},t={ref:r,style:_nullishCoalesce(n, () => ({}))};return l?_jsxruntime.jsx.call(void 0, _slider.Slider.Thumb,{render:s=>l({...s,...t,style:{...s.style,...n}},a)}):_jsxruntime.jsx.call(void 0, _slider.Slider.Thumb,{ref:r,style:n,...o,children:u})}),Ir=R.forwardRef(function(e,r){let{render:l,children:u,...n}=e,o=P("SeekSliderBuffered"),a=R.useMemo(()=>{if(!o.buffered||o.buffered.length===0)return 0;for(let f=0;f<o.buffered.length;f++)if(o.buffered.start(f)<=o.currentTime&&o.currentTime<=o.buffered.end(f))return o.buffered.end(f);return o.buffered.end(0)},[o.buffered,o.currentTime]),t=o.duration>0?a/o.duration*100:0,s={bufferedPercentage:t},p={position:"absolute",left:0,top:0,height:"100%",width:`${t}%`,...n.style},i={ref:r,style:p};return l?l(i,s):_jsxruntime.jsx.call(void 0, "div",{...i,...n,children:u})}),Dr=R.forwardRef(function(e,r){let{keepMounted:l=!1,render:u,children:n,...o}=e,a=P("SeekSliderPreviewThumb"),t=Er("SeekSliderPreviewThumb"),s=a.hoverProgress!==null,p=R.useRef(0);a.hoverProgress!==null&&(p.current=a.hoverProgress);let i=_nullishCoalesce(a.hoverProgress, () => (p.current)),{mounted:f,transitionStatus:b,elementRef:S}=Y({open:s,keepMounted:l}),T=R.useCallback(k=>{S.current=k,t.setPreviewThumbElement(k),typeof r=="function"?r(k):r&&(r.current=k)},[r,S,t]),y={open:s,transitionStatus:b,hoverProgress:i},x={position:"absolute",left:`${i}%`,transform:"translateX(-50%)",pointerEvents:"none",...o.style},v={ref:T,style:x,"data-open":s||void 0,"data-closed":!s||void 0,"data-starting-style":b==="starting"||void 0,"data-ending-style":b==="ending"||void 0};return f?u?u(v,y):_jsxruntime.jsx.call(void 0, "span",{...v,...o,children:n}):null}),Or=R.forwardRef(function(e,r){let{render:l,children:u,style:n,...o}=e,a=P("SeekSliderHover"),t=a.hoverProgress!==null,s=_nullishCoalesce(a.hoverProgress, () => (0)),p={hovering:t,hoverProgress:a.hoverProgress,hoverTime:a.hoverTime},i={position:"absolute",left:0,top:0,height:"100%",width:`${s}%`,pointerEvents:"none",...n},f={ref:r,style:i,"data-hovering":t||void 0};return l?l(f,p):_jsxruntime.jsx.call(void 0, "div",{...f,...o,children:u})});function Ge({children:c,container:e}){let r=P("SeekSliderPreviewTooltipPortal"),[l,u]=R.useState(!1);if(R.useEffect(()=>{u(!0)},[]),!l)return null;let n=_nullishCoalesce(_nullishCoalesce(e, () => (r.rootRef.current)), () => (document.body));return Mr.createPortal(c,n)}var ze=R.forwardRef(function(e,r){let{sideOffset:l=8,collisionPadding:u=0,collisionBoundary:n,keepMounted:o=!1,children:a,style:t,...s}=e,p=Er("SeekSliderPreviewTooltipPositioner"),{previewThumbElement:i,open:f,hoverProgress:b}=p,[S,T]=R.useState(null),{refs:y,floatingStyles:x,update:v}=_react2.useFloating.call(void 0, {placement:"top",middleware:[_react2.offset.call(void 0, l),_react2.shift.call(void 0, {boundary:n,padding:u})]});R.useLayoutEffect(()=>{i&&y.setReference(i)},[i,y]),R.useEffect(()=>{if(f&&i&&S)return _react2.autoUpdate.call(void 0, i,S,v)},[f,i,S,v]),R.useLayoutEffect(()=>{f&&i&&S&&v()},[b,f,i,S,v]);let k=R.useCallback(M=>{y.setFloating(M),T(M),typeof r=="function"?r(M):r&&(r.current=M)},[y,r]);return(o||f)&&!!i?_jsxruntime.jsx.call(void 0, "div",{ref:k,style:{...x,...t},"data-seek-slider-preview-tooltip-positioner":!0,"data-open":f||void 0,"data-closed":!f||void 0,...s,children:a}):null}),Je=R.forwardRef(function(e,r){let{children:l,...u}=e;return _jsxruntime.jsx.call(void 0, "div",{ref:r,"data-seek-slider-preview-tooltip-popup":!0,...u,children:l})});function me({sideOffset:c,collisionPadding:e,collisionBoundary:r,keepMounted:l,container:u,children:n,...o}){return _jsxruntime.jsx.call(void 0, Ge,{container:u,children:_jsxruntime.jsx.call(void 0, ze,{sideOffset:c,collisionPadding:e,collisionBoundary:r,keepMounted:l,children:_jsxruntime.jsx.call(void 0, Je,{...o,children:n})})})}me.Portal=Ge;me.Positioner=ze;me.Popup=Je;var Ze=(l=>(l.loading="data-loading",l.ready="data-ready",l.error="data-error",l))(Ze||{});var Ar=F.forwardRef(function(e,r){let{time:l,crossOrigin:u="anonymous",render:n,children:o,width:a,height:t,...s}=e,p=P("Thumbnail"),i=F.useRef(null),f=F.useRef(null),b=F.useRef(null),[S,T]=F.useState("idle"),[y,x]=F.useState({width:160,height:90}),v=l!==void 0?l:p.hoverTime,k=F.useMemo(()=>{let h=p.videoRef.current;return h?h.currentSrc||h.src:null},[p.videoRef]);F.useEffect(()=>{if(!k)return;let h=document.createElement("video");h.src=k,h.crossOrigin=u,h.preload="metadata",h.muted=!0,h.playsInline=!0;let $=()=>{x({width:h.videoWidth,height:h.videoHeight})},U=()=>{T("error")};return h.addEventListener("loadedmetadata",$),h.addEventListener("error",U),f.current=h,()=>{h.removeEventListener("loadedmetadata",$),h.removeEventListener("error",U),h.src="",f.current=null}},[k,u]),F.useEffect(()=>{let h=f.current,$=i.current;if(!h||!$||v===null||v===void 0||b.current!==null&&Math.abs(b.current-v)<.1)return;T("loading");let U=()=>{let q=$.getContext("2d");if(q)try{q.drawImage(h,0,0,$.width,$.height),b.current=v,T("ready")}catch (e3){T("error")}};return h.addEventListener("seeked",U,{once:!0}),h.currentTime=v,()=>{h.removeEventListener("seeked",U)}},[v]);let L=F.useCallback(h=>{i.current=h,typeof r=="function"?r(h):r&&(r.current=h)},[r]),M=y.width/y.height,w=_nullishCoalesce(a, () => (160)),H=_nullishCoalesce(t, () => (Math.round(w/M)));typeof w=="string"&&(w=160),typeof H=="string"&&(H=90);let Q={loading:S==="loading",ready:S==="ready",error:S==="error",time:v,videoWidth:y.width,videoHeight:y.height},D={ref:L,width:w,height:H,"data-loading":S==="loading"||void 0,"data-ready":S==="ready"||void 0,"data-error":S==="error"||void 0};return n?n(D,Q):_jsxruntime.jsx.call(void 0, "canvas",{...D,...s,children:o})});var et=(e=>(e.hovering="data-hovering",e))(et||{});var Wr=tt.forwardRef(function(e,r){let{format:l="current / duration",fixedWidth:u=!0,align:n="left",render:o,...a}=e,t=P("TimeDisplay"),s=tt.useRef(0);t.hoverTime!==null&&(s.current=t.hoverTime);let p=t.duration-t.currentTime,i=Pe(t.currentTime),f=Pe(t.duration),b=Pe(p),S=t.hoverTime!==null?Pe(t.hoverTime):Pe(s.current),T={currentTime:t.currentTime,duration:t.duration,remaining:p,hoverTime:t.hoverTime,hovering:t.hoverTime!==null,formattedCurrent:i,formattedDuration:f,formattedRemaining:b,formattedHover:S},y=()=>{switch(l){case"current":return i;case"duration":return f;case"remaining":return`-${b}`;case"current / duration":return`${i} / ${f}`;case"current / remaining":return`${i} / -${b}`;case"hover":return S;default:return`${i} / ${f}`}},x=()=>{let k=Ln(t.duration);switch(l){case"current":case"duration":case"hover":return k;case"remaining":return`-${k}`;case"current / duration":return`${k} / ${k}`;case"current / remaining":return`${k} / -${k}`;default:return`${k} / ${k}`}},v={ref:r,style:{position:u?"relative":void 0,userSelect:"none",fontVariantNumeric:"tabular-nums",...a.style},"data-hovering":T.hovering||void 0};return o?o(v,T):_jsxruntime.jsx.call(void 0, "span",{ref:r,"data-hovering":T.hovering||void 0,...a,style:{position:u?"relative":void 0,userSelect:"none",fontVariantNumeric:"tabular-nums",...a.style},children:u?_jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment,{children:[_jsxruntime.jsx.call(void 0, "span",{"aria-hidden":!0,style:{visibility:"hidden"},children:x()}),_jsxruntime.jsx.call(void 0, "span",{style:wn(n),children:y()})]}):y()})});function wn(c){let e={position:"absolute"};switch(c){case"left":return{...e,left:0};case"right":return{...e,right:0};case"center":return{...e,left:"50%",transform:"translateX(-50%)"}}}function Pe(c){if(!Number.isFinite(c)||Number.isNaN(c))return"0:00";let e=Math.floor(c/3600),r=Math.floor(c%3600/60),l=Math.floor(c%60);return e>0?`${e}:${r.toString().padStart(2,"0")}:${l.toString().padStart(2,"0")}`:`${r}:${l.toString().padStart(2,"0")}`}function Ln(c){if(!Number.isFinite(c)||Number.isNaN(c)||c<=0)return"0:00";let e=Math.floor(c/3600),r=Math.floor(c%3600/60);if(e>0){let u=String(e).length;return`${"0".repeat(u)}:00:00`}let l=String(r).length;return`${"0".repeat(l)}:00`}var Fr=K.forwardRef(function(e,r){let{kind:l="captions",src:u,label:n,srcLang:o,default:a,...t}=e,{registerTrack:s,unregisterTrack:p,updateTrackRef:i,setTextTrack:f}=P("Track"),b=K.useRef(null),S=K.useId(),T=K.useCallback(y=>{typeof r=="function"?r(y):r&&(r.current=y),b.current=y},[r]);return K.useEffect(()=>(s({id:S,kind:l,label:n,srcLang:o,src:u,textTrack:null}),()=>{p(S)}),[S,l,n,o,u,s,p]),K.useEffect(()=>{let y=b.current;if(!y)return;let x=()=>{y.track&&(y.track.mode="disabled",i(S,y.track),a&&f(y.track))};return y.track&&x(),y.addEventListener("load",x),()=>{y.removeEventListener("load",x)}},[S,a,i,f]),_jsxruntime.jsx.call(void 0, "track",{ref:T,kind:l,src:u,label:n,srcLang:o,default:a,...t})});var Qr=de.forwardRef(function(e,r){let{toggleOnClick:l=!0,...u}=e,n=P("Video"),o=de.useRef(!1),a=de.useCallback(p=>{typeof r=="function"?r(p):r&&(r.current=p),n.videoRef.current=p,p&&!o.current&&(o.current=!0,n._handlers.onVideoMount(),p.readyState>=1&&p.duration&&(n._handlers.onLoadedMetadata(),n._handlers.onDurationChange()),p.readyState>=3&&n._handlers.onCanPlay())},[r,n.videoRef,n._handlers]),t={"data-playing":n.playing||void 0,"data-paused":n.paused||void 0,"data-ended":n.ended||void 0,"data-waiting":n.waiting||void 0,"data-seeking":n.seeking||void 0},s=_chunkSCDHQZFIcjs.a.call(void 0, {ref:a,preload:"metadata",...t,onClick(){l&&n.toggle()},onTimeUpdate:n._handlers.onTimeUpdate,onDurationChange:n._handlers.onDurationChange,onProgress:n._handlers.onProgress,onPlay:n._handlers.onPlay,onPause:n._handlers.onPause,onEnded:n._handlers.onEnded,onWaiting:n._handlers.onWaiting,onCanPlay:n._handlers.onCanPlay,onSeeking:n._handlers.onSeeking,onSeeked:n._handlers.onSeeked,onVolumeChange:n._handlers.onVolumeChange,onLoadedMetadata:n._handlers.onLoadedMetadata},u);return _jsxruntime.jsx.call(void 0, "video",{...s})});var rt=(r=>(r.volume="--volume",r.volumePercentage="--volume-percentage",r))(rt||{});var nt=(u=>(u.muted="data-muted",u.volume="data-volume",u.pressing="data-pressing",u.dragging="data-dragging",u))(nt||{});var $r=O.forwardRef(function(e,r){let{render:l,children:u,onPointerDown:n,...o}=e,a=P("VolumeSlider"),t=O.useRef(null),[s,p]=O.useState(!1),[i,f]=O.useState(!1),b=O.useRef(!1);O.useEffect(()=>{if(!s)return;let M=()=>{p(!1),f(!1),b.current=!1};return window.addEventListener("pointerup",M),()=>window.removeEventListener("pointerup",M)},[s]),O.useLayoutEffect(()=>{typeof r=="function"?r(t.current):r&&(r.current=t.current)});let S=a.volume*100,T={volume:a.volume,muted:a.muted,percentage:S,pressing:s,dragging:i},y=O.useCallback(M=>{let w=typeof M=="number"?M:M[0];if(w!==void 0){if(a.muted){let H=a.videoRef.current;H&&(H.muted=!1)}a.setVolume(w),a.resetIdle(),b.current&&f(!0)}},[a]),x=O.useCallback(M=>{_optionalChain([n, 'optionalCall', _34 => _34(M)]),p(!0),b.current=!0},[n]),v={"data-muted":a.muted||void 0,"data-volume":a.volume,"data-pressing":s||void 0,"data-dragging":i||void 0},k={position:"relative","--volume":a.volume,"--volume-percentage":`${S}%`,...o.style},L={"data-muted":a.muted||void 0,"data-volume":a.volume,"data-pressing":s||void 0,"data-dragging":i||void 0,style:k};return l?_jsxruntime.jsx.call(void 0, _slider.Slider.Root,{ref:t,min:0,max:1,step:.01,value:a.muted?0:a.volume,onValueChange:y,onPointerDown:x,"aria-label":"Volume",render:M=>l({...M,...L},T)}):_jsxruntime.jsx.call(void 0, _slider.Slider.Root,{ref:t,min:0,max:1,step:.01,value:a.muted?0:a.volume,onValueChange:y,onPointerDown:x,"aria-label":"Volume",...v,...o,style:k,children:_nullishCoalesce(u, () => (_jsxruntime.jsx.call(void 0, _slider.Slider.Control,{children:_jsxruntime.jsxs.call(void 0, _slider.Slider.Track,{children:[_jsxruntime.jsx.call(void 0, _slider.Slider.Indicator,{}),_jsxruntime.jsx.call(void 0, _slider.Slider.Thumb,{})]})})))})}),Nr=_slider.Slider.Control,jr=O.forwardRef(function(e,r){let{style:l,...u}=e,n={position:"relative",...l};return _jsxruntime.jsx.call(void 0, _slider.Slider.Track,{ref:r,style:n,...u})}),Ur=O.forwardRef(function(e,r){return _jsxruntime.jsx.call(void 0, _slider.Slider.Indicator,{ref:r,...e})}),_r=O.forwardRef(function(e,r){return _jsxruntime.jsx.call(void 0, _slider.Slider.Thumb,{ref:r,...e})});exports.VideoPlayer = Kr; exports.useVideoPlayer = ie;
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var _chunkSCDHQZFIcjs = require('../chunk-SCDHQZFI.cjs');var _chunkPCNHYMD6cjs = require('../chunk-PCNHYMD6.cjs');var _chunkM4G6J7DPcjs = require('../chunk-M4G6J7DP.cjs');var _react = require('react'); var De = _interopRequireWildcard(_react); var Oe = _interopRequireWildcard(_react); var sr = _interopRequireWildcard(_react); var ur = _interopRequireWildcard(_react); var lt = _interopRequireWildcard(_react); var Pe = _interopRequireWildcard(_react); var X = _interopRequireWildcard(_react); var de = _interopRequireWildcard(_react); var mr = _interopRequireWildcard(_react); var Ne = _interopRequireWildcard(_react); var pe = _interopRequireWildcard(_react); var Sr = _interopRequireWildcard(_react); var kr = _interopRequireWildcard(_react); var ct = _interopRequireWildcard(_react); var je = _interopRequireWildcard(_react); var Ue = _interopRequireWildcard(_react); var ft = _interopRequireWildcard(_react); var d = _interopRequireWildcard(_react); var Ke = _interopRequireWildcard(_react); var R = _interopRequireWildcard(_react); var F = _interopRequireWildcard(_react); var nt = _interopRequireWildcard(_react); var K = _interopRequireWildcard(_react); var fe = _interopRequireWildcard(_react); var A = _interopRequireWildcard(_react);var st=De.createContext(null);function P(c){let e=De.useContext(st);if(!e)throw new Error(`<VideoPlayer.${c}> must be used within <VideoPlayer.Root>`);return e}function se(){return P("useVideoPlayer")}var Xr={};_chunkM4G6J7DPcjs.a.call(void 0, Xr,{BufferedIndicator:()=>ar,Captions:()=>lr,CaptionsButton:()=>cr,CaptionsDataAttributes:()=>Ae,CaptionsMenu:()=>dr,CaptionsMenuItem:()=>Fe,Controls:()=>pr,ControlsDataAttributes:()=>Qe,FullscreenButton:()=>fr,MuteButton:()=>Pr,Overlay:()=>yr,OverlayDataAttributes:()=>$e,PictureInPictureButton:()=>Rr,PlayButton:()=>br,PlaybackRateButton:()=>gr,PlaybackRateMenu:()=>vr,PlaybackRateMenuItem:()=>dt,Portal:()=>Tr,Poster:()=>hr,QualityMenu:()=>xr,QualityMenuItem:()=>mt,Root:()=>Mr,RootDataAttributes:()=>_e,SeekSlider:()=>wr,SeekSliderBuffered:()=>Or,SeekSliderControl:()=>Lr,SeekSliderCssVars:()=>Ye,SeekSliderDataAttributes:()=>Ge,SeekSliderHover:()=>Wr,SeekSliderPreviewThumb:()=>Ar,SeekSliderPreviewThumbDataAttributes:()=>ze,SeekSliderPreviewTooltip:()=>ye,SeekSliderPreviewTooltipPopup:()=>et,SeekSliderPreviewTooltipPortal:()=>Je,SeekSliderPreviewTooltipPositioner:()=>Ze,SeekSliderProgress:()=>Ir,SeekSliderThumb:()=>Dr,SeekSliderTrack:()=>Hr,Thumbnail:()=>Fr,ThumbnailDataAttributes:()=>tt,TimeDisplay:()=>Qr,TimeDisplayDataAttributes:()=>rt,Track:()=>$r,Video:()=>Nr,VolumeSlider:()=>jr,VolumeSliderControl:()=>Ur,VolumeSliderCssVars:()=>ot,VolumeSliderDataAttributes:()=>at,VolumeSliderRange:()=>Kr,VolumeSliderThumb:()=>qr,VolumeSliderTrack:()=>_r,useTransitionStatus:()=>Y,useVideoPlayer:()=>se});var _jsxruntime = require('react/jsx-runtime');var ar=Oe.forwardRef(function(e,r){let{render:l,...u}=e,n=P("BufferedIndicator"),o=Oe.useMemo(()=>{if(!n.buffered||n.buffered.length===0)return 0;for(let a=0;a<n.buffered.length;a++)if(n.buffered.start(a)<=n.currentTime&&n.currentTime<=n.buffered.end(a))return n.buffered.end(a);return n.buffered.end(0)},[n.buffered,n.currentTime]),i=n.duration>0?o/n.duration*100:0,t={buffered:n.buffered,duration:n.duration,bufferedPercentage:i,bufferedEnd:o},s={"--buffered-percentage":`${i}%`,"--buffered-end":o,...u.style},p={ref:r,style:s,"aria-hidden":!0};return l?l(p,t):_jsxruntime.jsx.call(void 0, "div",{ref:r,"aria-hidden":"true",...u,style:s})});var Ae=(e=>(e.active="data-active",e))(Ae||{});var lr=sr.forwardRef(function(e,r){let{render:l,children:u,...n}=e,i=P("Captions").activeCues,t=i.map(f=>f.text).join(`
|
|
2
|
+
`),s=i.length>0,p={active:s,cueText:t,cues:i},a={ref:r,"aria-live":"polite","aria-atomic":!0,role:"status",style:{pointerEvents:"none"},"data-active":s||void 0};return l?l(a,p):u?_jsxruntime.jsx.call(void 0, "div",{...a,...n,children:u}):_jsxruntime.jsx.call(void 0, "div",{...a,...n,children:t})});var cr=ur.forwardRef(function(e,r){let{render:l,...u}=e,n=P("CaptionsButton"),o=n.registeredTracks.length>0,i=n.activeTextTrack!==null,t={active:i,available:o,trackCount:n.registeredTracks.length},s=_chunkSCDHQZFIcjs.a.call(void 0, {ref:r,type:"button","aria-label":i?"Disable captions":"Enable captions","aria-pressed":i,disabled:!o,"data-active":i||void 0,"data-available":o||void 0,onClick(){if(i)n.setTextTrack(null);else if(n.registeredTracks.length>0){let p=n.registeredTracks[0];_optionalChain([p, 'optionalAccess', _2 => _2.textTrack])&&n.setTextTrack(p.textTrack)}}},u);return l?l(s,t):_jsxruntime.jsx.call(void 0, "button",{...s})});var dr=lt.forwardRef(function(e,r){let{render:l,children:u,...n}=e,o=P("CaptionsMenu"),i={registeredTracks:o.registeredTracks,activeTextTrack:o.activeTextTrack},t={ref:r,role:"menu","aria-label":"Captions","data-active":o.activeTextTrack!==null||void 0};return l?l(t,i):_jsxruntime.jsx.call(void 0, "div",{...t,...n,children:_nullishCoalesce(u, () => (_jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment,{children:[_jsxruntime.jsx.call(void 0, Fe,{track:null,children:"Off"}),o.registeredTracks.map(s=>_jsxruntime.jsx.call(void 0, Fe,{track:s.textTrack,children:s.label},s.id))]})))})}),Fe=lt.forwardRef(function(e,r){let{track:l,children:u,...n}=e,o=P("CaptionsMenuItem"),i=o.activeTextTrack===l,t=_chunkSCDHQZFIcjs.a.call(void 0, {ref:r,type:"button",role:"menuitemradio","aria-checked":i,"data-active":i||void 0,onClick(){o.setTextTrack(l)}},n);return _jsxruntime.jsx.call(void 0, "button",{...t,children:u})});var Qe=(t=>(t.open="data-open",t.closed="data-closed",t.idle="data-idle",t.playing="data-playing",t.paused="data-paused",t.ended="data-ended",t.startingStyle="data-starting-style",t.endingStyle="data-ending-style",t))(Qe||{});function ln(c){let e=[...c.getAnimations(),...Array.from(c.querySelectorAll("*")).flatMap(r=>r.getAnimations())];return e.length===0?Promise.resolve():Promise.all(e.map(r=>r.finished)).then(()=>{}).catch(()=>{})}function Y(c){let{open:e,keepMounted:r=!1}=c,[l,u]=X.useState(e||r),[n,o]=X.useState(e?"starting":void 0),i=X.useRef(null),t=X.useRef(!1);return X.useEffect(()=>{if(e){t.current=!1,u(!0),o("starting");let s=requestAnimationFrame(()=>{requestAnimationFrame(()=>{o(void 0)})});return()=>cancelAnimationFrame(s)}},[e]),X.useEffect(()=>{if(!e&&l&&!t.current){o("ending");let s=i.current;if(!s){o(void 0),r||u(!1);return}t.current=!0;let p=requestAnimationFrame(()=>{requestAnimationFrame(()=>{ln(s).then(()=>{t.current&&(t.current=!1,o(void 0),r||u(!1))})})});return()=>{cancelAnimationFrame(p)}}},[e,l,r]),X.useEffect(()=>{r&&!l&&!e&&u(!0)},[r,l,e]),{mounted:l||r,transitionStatus:n,elementRef:i}}var pr=Pe.forwardRef(function(e,r){let{idleTimeout:l,keepMounted:u=!1,render:n,children:o,...i}=e,t=P("Controls"),p=(_nullishCoalesce(l, () => (t.idleTimeout)))===0||!t.idle,{mounted:a,transitionStatus:f,elementRef:S}=Y({open:p,keepMounted:u}),b=Pe.useCallback(M=>{S.current=M,typeof r=="function"?r(M):r&&(r.current=M)},[r,S]),{onClick:T,...y}=i,x=Pe.useCallback(M=>{M.stopPropagation(),_optionalChain([T, 'optionalCall', _3 => _3(M)])},[T]),g={open:p,idle:t.idle,playing:t.playing,paused:t.paused,ended:t.ended},v={ref:b,onClick:x,"data-open":p||void 0,"data-closed":!p||void 0,"data-idle":t.idle||void 0,"data-playing":t.playing||void 0,"data-paused":t.paused||void 0,"data-ended":t.ended||void 0,"data-starting-style":f==="starting"||void 0,"data-ending-style":f==="ending"||void 0};return a?n?n(v,g):_jsxruntime.jsx.call(void 0, "div",{...v,...y,children:o}):null});var fr=de.forwardRef(function(e,r){let{render:l,children:u,...n}=e,o=P("FullscreenButton"),[i,t]=de.useState(!1);de.useEffect(()=>{t("fullscreenEnabled"in document&&document.fullscreenEnabled)},[]);let s={fullscreen:o.fullscreen,supported:i},p=_chunkSCDHQZFIcjs.a.call(void 0, {ref:r,type:"button","aria-label":o.fullscreen?"Exit fullscreen":"Enter fullscreen","aria-pressed":o.fullscreen,disabled:!i,"data-fullscreen":o.fullscreen||void 0,"data-supported":i||void 0,onClick(){o.toggleFullscreen()}},n);return l?l(p,s):_jsxruntime.jsx.call(void 0, "button",{...p,children:u})});var Pr=mr.forwardRef(function(e,r){let{render:l,...u}=e,n=P("MuteButton"),o={muted:n.muted,volume:n.volume},i=n.volume,t=n.muted,s=i===0||t,p=i>0&&!t,a=!t&&i>0&&i<.5,f=!t&&i>=.5,S=_chunkSCDHQZFIcjs.a.call(void 0, {ref:r,type:"button","aria-label":n.muted?"Unmute":"Mute","aria-pressed":n.muted,"data-muted":t||void 0,"data-volume-off":s||void 0,"data-volume-on":p||void 0,"data-volume-low":a||void 0,"data-volume-high":f||void 0,onClick(){n.toggleMute()}},u);return l?l(S,o):_jsxruntime.jsx.call(void 0, "button",{...S})});var $e=(a=>(a.open="data-open",a.closed="data-closed",a.playing="data-playing",a.paused="data-paused",a.ended="data-ended",a.waiting="data-waiting",a.seeking="data-seeking",a.fullscreen="data-fullscreen",a.pip="data-pip",a.startingStyle="data-starting-style",a.endingStyle="data-ending-style",a))($e||{});var yr=Ne.forwardRef(function(e,r){let{idleTimeout:l,keepMounted:u=!1,render:n,children:o,...i}=e,t=P("Overlay"),p=(_nullishCoalesce(l, () => (t.idleTimeout)))===0||!t.idle,{mounted:a,transitionStatus:f,elementRef:S}=Y({open:p,keepMounted:u}),b=Ne.useCallback(x=>{S.current=x,typeof r=="function"?r(x):r&&(r.current=x)},[r,S]),T={playing:t.playing,paused:t.paused,ended:t.ended,waiting:t.waiting,seeking:t.seeking,fullscreen:t.fullscreen,pictureInPicture:t.pictureInPicture,open:p},y=_chunkSCDHQZFIcjs.a.call(void 0, {ref:b,onClick(){t.toggle()},"data-playing":t.playing||void 0,"data-paused":t.paused||void 0,"data-ended":t.ended||void 0,"data-waiting":t.waiting||void 0,"data-seeking":t.seeking||void 0,"data-fullscreen":t.fullscreen||void 0,"data-pip":t.pictureInPicture||void 0,"data-open":p||void 0,"data-closed":!p||void 0,"data-starting-style":f==="starting"||void 0,"data-ending-style":f==="ending"||void 0},i);return a?n?n(y,T):_jsxruntime.jsx.call(void 0, "div",{...y,...i,children:o}):null});var Rr=pe.forwardRef(function(e,r){let{render:l,...u}=e,n=P("PictureInPictureButton"),[o,i]=pe.useState(!1);pe.useEffect(()=>{i("pictureInPictureEnabled"in document&&document.pictureInPictureEnabled)},[]);let t={pictureInPicture:n.pictureInPicture,supported:o},s=_chunkSCDHQZFIcjs.a.call(void 0, {ref:r,type:"button","aria-label":n.pictureInPicture?"Exit picture-in-picture":"Enter picture-in-picture","aria-pressed":n.pictureInPicture,disabled:!o,"data-pip":n.pictureInPicture||void 0,"data-supported":o||void 0,onClick(){n.togglePictureInPicture()}},u);return l?l(s,t):_jsxruntime.jsx.call(void 0, "button",{...s})});var br=Sr.forwardRef(function(e,r){let{render:l,children:u,...n}=e,o=P("PlayButton"),i={playing:o.playing,paused:o.paused,ended:o.ended,waiting:o.waiting},t=_chunkSCDHQZFIcjs.a.call(void 0, {ref:r,type:"button","aria-label":o.playing?"Pause":"Play","data-playing":o.playing||void 0,"data-paused":o.paused||void 0,"data-ended":o.ended||void 0,"data-waiting":o.waiting||void 0,onClick(){o.toggle()}},n);return l?l(t,i):_jsxruntime.jsx.call(void 0, "button",{...t,children:u})});var Pn=[.25,.5,.75,1,1.25,1.5,1.75,2],gr=kr.forwardRef(function(e,r){let{rates:l=Pn,render:u,children:n,...o}=e,i=P("PlaybackRateButton"),t={playbackRate:i.playbackRate,rates:l},s=_chunkSCDHQZFIcjs.a.call(void 0, {ref:r,type:"button","aria-label":`Playback speed: ${i.playbackRate}x`,"data-rate":i.playbackRate,onClick(){let p=l.indexOf(i.playbackRate),a=_nullishCoalesce(_nullishCoalesce(l[(p+1)%l.length], () => (l[0])), () => (i.playbackRate));i.setPlaybackRate(a)}},o);return u?u(s,t):_jsxruntime.jsx.call(void 0, "button",{...s,children:_nullishCoalesce(n, () => (`${i.playbackRate}x`))})});var Rn=[.25,.5,.75,1,1.25,1.5,1.75,2],vr=ct.forwardRef(function(e,r){let{rates:l=Rn,render:u,children:n,...o}=e,i=P("PlaybackRateMenu"),t={playbackRate:i.playbackRate,rates:l},s={ref:r,role:"menu","aria-label":"Playback speed","data-rate":i.playbackRate};return u?u(s,t):_jsxruntime.jsx.call(void 0, "div",{...s,...o,children:_nullishCoalesce(n, () => (l.map(p=>_jsxruntime.jsx.call(void 0, dt,{rate:p},p))))})}),dt=ct.forwardRef(function(e,r){let{rate:l,children:u,...n}=e,o=P("PlaybackRateMenuItem"),i=o.playbackRate===l,t=_chunkSCDHQZFIcjs.a.call(void 0, {ref:r,type:"button",role:"menuitemradio","aria-checked":i,"data-active":i||void 0,onClick(){o.setPlaybackRate(l)}},n);return _jsxruntime.jsx.call(void 0, "button",{...t,children:_nullishCoalesce(u, () => (`${l}x`))})});var _reactdom = require('react-dom'); var Br = _interopRequireWildcard(_reactdom);function Tr(c){let{children:e,container:r}=c,[l,u]=je.useState(!1);if(je.useEffect(()=>(u(!0),()=>u(!1)),[]),!l)return null;let n=_nullishCoalesce(r, () => ((typeof document<"u"?document.body:null)));return n?_reactdom.createPortal.call(void 0, e,n):null}var hr=Ue.forwardRef(function(e,r){let{keepMounted:l=!1,render:u,children:n,...o}=e,i=P("Poster"),t=!i.canPlay,s=i.canPlay,{mounted:p,transitionStatus:a,elementRef:f}=Y({open:t,keepMounted:l}),S=bn(r,f),b={loading:t,loaded:s,transitionStatus:a},T={ref:S,"aria-hidden":!0,"data-loading":t||void 0,"data-loaded":s||void 0,"data-starting-style":a==="starting"||void 0,"data-ending-style":a==="ending"||void 0};return p?u?u(T,b):_jsxruntime.jsx.call(void 0, "div",{...T,...o,children:n}):null});function bn(...c){return Ue.useCallback(e=>{for(let r of c)typeof r=="function"?r(e):r!=null&&(r.current=e)},c)}var xr=ft.forwardRef(function(e,r){let{render:l,children:u,...n}=e,o=P("QualityMenu"),i={qualities:o.qualities,activeQuality:o.activeQuality},t={ref:r,role:"menu","aria-label":"Video quality","data-quality":_nullishCoalesce(_optionalChain([o, 'access', _4 => _4.activeQuality, 'optionalAccess', _5 => _5.label]), () => (void 0))};return l?l(t,i):_jsxruntime.jsx.call(void 0, "div",{...t,...n,children:_nullishCoalesce(u, () => (o.qualities.map(s=>_jsxruntime.jsx.call(void 0, mt,{quality:s,children:s.label},s.label))))})}),mt=ft.forwardRef(function(e,r){let{quality:l,children:u,...n}=e,o=P("QualityMenuItem"),i=_optionalChain([o, 'access', _6 => _6.activeQuality, 'optionalAccess', _7 => _7.label])===l.label,t=_chunkSCDHQZFIcjs.a.call(void 0, {ref:r,type:"button",role:"menuitemradio","aria-checked":i,"data-active":i||void 0,onClick(){o.setQuality(l)}},n);return _jsxruntime.jsx.call(void 0, "button",{...t,children:u})});var _e=(s=>(s.playing="data-playing",s.paused="data-paused",s.ended="data-ended",s.waiting="data-waiting",s.seeking="data-seeking",s.fullscreen="data-fullscreen",s.pip="data-pip",s.muted="data-muted",s.idle="data-idle",s))(_e||{});function gn(c,e){return!(c instanceof HTMLElement)||c instanceof HTMLInputElement&&c.type==="range"&&e===" "?!1:c.tagName==="INPUT"||c.tagName==="TEXTAREA"||c.isContentEditable}function vn(c){return c==="ArrowRight"||c==="ArrowLeft"}function Cr(c,e){let r=se(),l=Ke.useRef(r);l.current=r,Ke.useEffect(()=>{if(e==="none")return;let u=i=>{if(gn(i.target,i.key))return;let t=l.current;switch(i.key){case" ":i.preventDefault(),t.toggle();break;case"f":case"F":i.preventDefault(),t.toggleFullscreen();break;case"ArrowUp":i.preventDefault(),t.setVolume(Math.min(t.volume+.1,1));break;case"ArrowDown":i.preventDefault(),t.setVolume(Math.max(t.volume-.1,0));break;case"ArrowRight":i.preventDefault(),t.beginSeekInteraction(),t.seek(Math.min(t.currentTime+5,t.duration));break;case"ArrowLeft":i.preventDefault(),t.beginSeekInteraction(),t.seek(Math.max(t.currentTime-5,0));break;default:return}t.resetIdle()},n=i=>{vn(i.key)&&l.current.endSeekInteraction()};if(e==="global")return window.addEventListener("keydown",u),window.addEventListener("keyup",n),()=>{window.removeEventListener("keydown",u),window.removeEventListener("keyup",n)};let o=c.current;if(o)return o.addEventListener("keydown",u),o.addEventListener("keyup",n),()=>{o.removeEventListener("keydown",u),o.removeEventListener("keyup",n)}},[e,c])}function qe(c,e,r){let[l,u]=d.useState(e),n=c!==void 0,o=n?c:l,i=d.useCallback(t=>{let s=typeof t=="function"?t(o):t;n||u(s),_optionalChain([r, 'optionalCall', _8 => _8(s)])},[n,o,r]);return[o,i]}function Tn({rootRef:c,videoRef:e,actionsRef:r,defaultPlaying:l=!1,autoPlay:u=!1,defaultVolume:n=1,defaultMuted:o=!1,defaultPlaybackRate:i=1,playing:t,onPlayingChange:s,volume:p,onVolumeChange:a,muted:f,onMutedChange:S,playbackRate:b,onPlaybackRateChange:T,currentTime:y,onCurrentTimeChange:x,idleTimeout:g=3e3,preventIdleWhenPaused:v=!1,idle:M,onIdleChange:w,onEnded:B,onWaiting:W,onSeeking:Q,onSeeked:I,onFullscreenChange:h,onPictureInPictureChange:$,children:U}){let q=d.useRef(1),_=d.useRef(!1),z=d.useRef(!1),Z=d.useRef(!1),[V,H]=d.useState("paused"),[k,D]=d.useState(l?"play":"pause");d.useEffect(()=>{t!==void 0&&(D(t?"play":"pause"),V!=="waiting"&&H(t?"playing":"paused"))},[t,V]);let[O,te]=qe(p,n,a),[J,me]=qe(f,o,S),[Rt,St]=qe(b,i,T),[Yr,re]=qe(M,!0,w),ne=d.useRef(null),Se=d.useCallback(()=>{ne.current&&(clearTimeout(ne.current),ne.current=null)},[]),bt=d.useCallback(()=>{g!==0&&(Se(),ne.current=setTimeout(()=>{re(!0)},g))},[g,Se,re]),kt=d.useCallback(()=>{re(!1),bt()},[re,bt]),gt=d.useCallback(()=>{Se(),re(!0)},[Se,re]);d.useEffect(()=>(g>0&&(ne.current=setTimeout(()=>{re(!0)},g)),()=>{ne.current&&clearTimeout(ne.current)}),[]);let vt=v&&V!=="playing"?!1:Yr,le=d.useCallback(()=>{let m=e.current;m&&(m.muted!==J&&(m.muted=J),m.volume!==O&&(m.volume=O))},[J,e,O]),be=d.useCallback(async()=>{let m=e.current;if(!(!u||!m||Z.current)){Z.current=!0,D("play"),le();try{await m.play(),H("playing"),_optionalChain([s, 'optionalCall', _9 => _9(!0)])}catch (e2){D("pause"),H("paused")}}},[u,s,le,e]);d.useEffect(()=>{if(!u){Z.current=!1;return}be()},[u,be]);let[Tt,ht]=d.useState(0),[ke,xt]=d.useState(0),[Ct,Gr]=d.useState(null),[ge,zr]=d.useState(null),[Mt,Et]=d.useState(!1),[Bt,ue]=d.useState(!1),[ve,Jr]=d.useState(!1),[Te,Vt]=d.useState(!1),[wt,it]=d.useState([]),[oe,Zr]=d.useState(null),[Lt,he]=d.useState([]),[Ht,Qn]=d.useState([]),[It,en]=d.useState(null);d.useEffect(()=>{y!==void 0&&e.current&&(e.current.currentTime=y)},[y,e]),d.useEffect(()=>{f===void 0&&p===void 0||le()},[f,p,le]),d.useEffect(()=>{let m=()=>{let C=document.fullscreenElement===c.current;Jr(C),_optionalChain([h, 'optionalCall', _10 => _10(C)])};return document.addEventListener("fullscreenchange",m),()=>document.removeEventListener("fullscreenchange",m)},[h,c]),d.useEffect(()=>{let m=e.current;if(!m)return;let C=()=>{Vt(!0),_optionalChain([$, 'optionalCall', _11 => _11(!0)])},N=()=>{Vt(!1),_optionalChain([$, 'optionalCall', _12 => _12(!1)])};return m.addEventListener("enterpictureinpicture",C),m.addEventListener("leavepictureinpicture",N),()=>{m.removeEventListener("enterpictureinpicture",C),m.removeEventListener("leavepictureinpicture",N)}},[$,e]);let xe=d.useCallback(async()=>{e.current&&(D("play"),await e.current.play(),H("playing"),_optionalChain([s, 'optionalCall', _13 => _13(!0)]))},[e,s]),Ce=d.useCallback(()=>{e.current&&(D("pause"),e.current.pause(),H("paused"),_optionalChain([s, 'optionalCall', _14 => _14(!1)]))},[e,s]),Me=d.useCallback(async()=>{V==="playing"?Ce():await xe()},[V,xe,Ce]),Ee=d.useCallback(m=>{e.current&&(e.current.currentTime=m,ht(m),_optionalChain([x, 'optionalCall', _15 => _15(m)]))},[x,e]),Dt=d.useCallback(()=>{let m=e.current;!m||_.current||(_.current=!0,z.current=k==="play",ue(!0),z.current&&!m.paused&&m.pause())},[k,e]),Ot=d.useCallback(()=>{let m=e.current;if(!m||!_.current)return;let C=z.current&&k==="play";if(_.current=!1,z.current=!1,!C){ue(!1);return}m.play().then(()=>{H("playing"),ue(!1)}).catch(()=>{H("waiting"),ue(!1)})},[k,e]),Be=d.useCallback(m=>{let C=Math.max(0,Math.min(1,m));e.current&&(e.current.volume=C),te(C)},[te,e]),At=d.useCallback(()=>{if(!(J||O===0))q.current=O,e.current&&(e.current.muted=!0),me(!0);else{let C=q.current>0?q.current:1;e.current&&(e.current.volume=C,e.current.muted=!1),te(C),me(!1)}},[J,O,me,te,e]),Ve=d.useCallback(async()=>{_optionalChain([c, 'access', _16 => _16.current, 'optionalAccess', _17 => _17.requestFullscreen])&&await c.current.requestFullscreen()},[c]),we=d.useCallback(async()=>{document.exitFullscreen&&await document.exitFullscreen()},[]),Le=d.useCallback(async()=>{ve?await we():await Ve()},[ve,Ve,we]),He=d.useCallback(async()=>{_optionalChain([e, 'access', _18 => _18.current, 'optionalAccess', _19 => _19.requestPictureInPicture])&&await e.current.requestPictureInPicture()},[e]),Ie=d.useCallback(async()=>{document.pictureInPictureElement&&await document.exitPictureInPicture()},[]),Wt=d.useCallback(async()=>{Te?await Ie():await He()},[Te,He,Ie]),Ft=d.useCallback(m=>{e.current&&(e.current.playbackRate=m),St(m)},[St,e]),Qt=d.useCallback(m=>{if(e.current){for(let C=0;C<e.current.textTracks.length;C++){let N=e.current.textTracks[C];N&&(N.mode="disabled")}m&&(m.mode="hidden")}Zr(m),he([])},[e]),$t=d.useCallback(m=>{en(m)},[]),Nt=d.useCallback(m=>{it(C=>C.some(N=>N.id===m.id)?C:[...C,m])},[]),jt=d.useCallback(m=>{it(C=>C.filter(N=>N.id!==m))},[]),Ut=d.useCallback((m,C)=>{it(N=>N.map(ae=>ae.id===m?{...ae,textTrack:C}:ae))},[]);d.useEffect(()=>{if(!oe){he([]);return}let m=()=>{let C=oe.activeCues;if(!C){he([]);return}let N=[];for(let ae=0;ae<C.length;ae++){let or=C[ae];or instanceof VTTCue&&N.push(or)}he(N)};return m(),oe.addEventListener("cuechange",m),()=>{oe.removeEventListener("cuechange",m)}},[oe]),d.useImperativeHandle(r,()=>({toggle:Me,seek:Ee,setVolume:Be,toggleFullscreen:Le}),[Me,Ee,Be,Le]);let _t=d.useCallback(()=>{if(e.current){let m=e.current.currentTime;ht(m),_optionalChain([x, 'optionalCall', _20 => _20(m)])}},[x,e]),Kt=d.useCallback(()=>{e.current&&xt(e.current.duration)},[e]),qt=d.useCallback(()=>{e.current&&Gr(e.current.buffered)},[e]),Xt=d.useCallback(()=>{D("play"),H("playing"),_optionalChain([s, 'optionalCall', _21 => _21(!0)])},[s]),Yt=d.useCallback(()=>{_.current||V!=="ended"&&(H("paused"),_optionalChain([s, 'optionalCall', _22 => _22(!1)]))},[V,s]),Gt=d.useCallback(()=>{D("pause"),H("ended"),_optionalChain([s, 'optionalCall', _23 => _23(!1)]),_optionalChain([B, 'optionalCall', _24 => _24()])},[s,B]),zt=d.useCallback(()=>{_.current||(H("waiting"),_optionalChain([W, 'optionalCall', _25 => _25()]))},[W]),Jt=d.useCallback(()=>{if(_.current){Et(!0);return}if(V==="waiting"){let m=k==="play"?"playing":"paused";H(m),_optionalChain([s, 'optionalCall', _26 => _26(m==="playing")])}Et(!0)},[V,k,s]),Zt=d.useCallback(()=>{ue(!0),V==="ended"&&H("paused"),_optionalChain([Q, 'optionalCall', _27 => _27()])},[V,Q]),er=d.useCallback(()=>{if(ue(!1),e.current){let{currentTime:m,duration:C}=e.current;C>0&&C-m<.01&&H("ended")}_optionalChain([I, 'optionalCall', _28 => _28()])},[I,e]),tr=d.useCallback(()=>{e.current&&(te(e.current.volume),me(e.current.muted))},[te,me,e]),rr=d.useCallback(()=>{e.current&&xt(e.current.duration)},[e]),nr=d.useCallback(()=>{le(),be()},[be,le]),tn=d.useMemo(()=>({playbackStatus:V,playbackIntent:k,playing:V==="playing",paused:V==="paused",ended:V==="ended",waiting:V==="waiting",seeking:Bt,canPlay:Mt,currentTime:Tt,duration:ke,buffered:Ct,hoverTime:ge,hoverProgress:ge!==null&&ke>0?ge/ke*100:null,volume:O,muted:J,fullscreen:ve,pictureInPicture:Te,idle:vt,idleTimeout:g,preventIdleWhenPaused:v,registeredTracks:wt,activeTextTrack:oe,activeCues:Lt,playbackRate:Rt,qualities:Ht,activeQuality:It,videoRef:e,rootRef:c,play:xe,pause:Ce,toggle:Me,seek:Ee,setVolume:Be,toggleMute:At,enterFullscreen:Ve,exitFullscreen:we,toggleFullscreen:Le,enterPictureInPicture:He,exitPictureInPicture:Ie,togglePictureInPicture:Wt,setPlaybackRate:Ft,setTextTrack:Qt,setQuality:$t,registerTrack:Nt,unregisterTrack:jt,updateTrackRef:Ut,resetIdle:kt,setHoverTime:zr,beginSeekInteraction:Dt,endSeekInteraction:Ot,_handlers:{onTimeUpdate:_t,onDurationChange:Kt,onProgress:qt,onPlay:Xt,onPause:Yt,onEnded:Gt,onWaiting:zt,onCanPlay:Jt,onSeeking:Zt,onSeeked:er,onVolumeChange:tr,onLoadedMetadata:rr,onVideoMount:nr,onRootMouseLeave:gt}}),[V,k,Bt,Mt,Tt,ke,Ct,ge,O,J,ve,Te,vt,g,v,wt,oe,Lt,Rt,Ht,It,e,c,xe,Ce,Me,Ee,Be,At,Ve,we,Le,He,Ie,Wt,Ft,Qt,$t,Nt,jt,Ut,kt,Dt,Ot,_t,Kt,qt,Xt,Yt,Gt,zt,Jt,Zt,er,tr,rr,nr,gt]);return _jsxruntime.jsx.call(void 0, st.Provider,{value:tn,children:U})}var Mr=d.forwardRef(function(e,r){let{actionsRef:l,keyboardShortcuts:u="focused",defaultPlaying:n,autoPlay:o,defaultVolume:i,defaultMuted:t,defaultPlaybackRate:s,playing:p,onPlayingChange:a,volume:f,onVolumeChange:S,muted:b,onMutedChange:T,playbackRate:y,onPlaybackRateChange:x,currentTime:g,onCurrentTimeChange:v,idleTimeout:M,preventIdleWhenPaused:w,hideCursorWhenIdle:B="fullscreen",idle:W,onIdleChange:Q,onEnded:I,onWaiting:h,onSeeking:$,onSeeked:U,onFullscreenChange:q,onPictureInPictureChange:_,children:z,...Z}=e,V=d.useRef(null),H=d.useRef(null);return _jsxruntime.jsx.call(void 0, Tn,{actionsRef:l,defaultPlaying:n,autoPlay:o,defaultVolume:i,defaultMuted:t,defaultPlaybackRate:s,playing:p,onPlayingChange:a,volume:f,onVolumeChange:S,muted:b,onMutedChange:T,playbackRate:y,onPlaybackRateChange:x,currentTime:g,onCurrentTimeChange:v,idleTimeout:M,preventIdleWhenPaused:w,idle:W,onIdleChange:Q,onEnded:I,onWaiting:h,onSeeking:$,onSeeked:U,onFullscreenChange:q,onPictureInPictureChange:_,rootRef:V,videoRef:H,children:_jsxruntime.jsx.call(void 0, hn,{ref:r,rootRef:V,keyboardShortcuts:u,hideCursorWhenIdle:B,...Z,children:z})})}),hn=d.forwardRef(function({rootRef:e,keyboardShortcuts:r,hideCursorWhenIdle:l,children:u,className:n,style:o,...i},t){let s=se(),p=xn(t,e),a=d.useRef(null);Cr(e,r);let f=d.useCallback(B=>{let{clientX:W,clientY:Q}=B,I=a.current;I&&I.x===W&&I.y===Q||(a.current={x:W,y:Q},s.resetIdle())},[s]),S=d.useCallback(B=>{let{clientX:W,clientY:Q}=B,I=a.current;I&&I.x===W&&I.y===Q||(a.current={x:W,y:Q},s.resetIdle())},[s]),b=d.useCallback(()=>{s._handlers.onRootMouseLeave()},[s._handlers]),T=d.useCallback(()=>{s.resetIdle()},[s]),y=d.useCallback(()=>{s.resetIdle()},[s]),x=d.useCallback(B=>{B.key==="Tab"&&s.resetIdle()},[s]),g=_chunkSCDHQZFIcjs.a.call(void 0, {onMouseMove:f,onMouseEnter:S,onMouseLeave:b,onClick:T,onFocus:y,onKeyDown:x},i),v={"data-playing":s.playing||void 0,"data-paused":s.paused||void 0,"data-ended":s.ended||void 0,"data-waiting":s.waiting||void 0,"data-seeking":s.seeking||void 0,"data-fullscreen":s.fullscreen||void 0,"data-pip":s.pictureInPicture||void 0,"data-muted":s.muted||void 0,"data-idle":s.idle||void 0},M=l!==!1&&s.idle&&(l==="always"||l==="fullscreen"&&s.fullscreen),w=d.useId();return _jsxruntime.jsxs.call(void 0, "div",{...g,ref:p,tabIndex:r==="focused"?0:void 0,className:n,style:o,"data-video-player-scope":w,...v,children:[M&&_jsxruntime.jsx.call(void 0, "style",{children:`[data-video-player-scope="${w}"], [data-video-player-scope="${w}"] * { cursor: none !important; }`}),u]})});function xn(...c){return d.useCallback(e=>{for(let r of c)typeof r=="function"?r(e):r!=null&&(r.current=e)},c)}var Ye=(o=>(o.progress="--seek-progress",o.buffered="--seek-buffered",o.currentTime="--seek-current-time",o.duration="--seek-duration",o.hoverProgress="--seek-hover-progress",o.hoverTime="--seek-hover-time",o))(Ye||{});var Ge=(u=>(u.seeking="data-seeking",u.hovering="data-hovering",u.pressing="data-pressing",u.dragging="data-dragging",u))(Ge||{});var _slider = require('@base-ui/react/slider');var _react2 = require('@floating-ui/react');var ze=(u=>(u.open="data-open",u.closed="data-closed",u.startingStyle="data-starting-style",u.endingStyle="data-ending-style",u))(ze||{});var Pt=R.createContext(null);function Vr(c){let e=R.useContext(Pt);if(!e)throw new Error(`${c} must be used within SeekSlider`);return e}function Er(c){return c==="ArrowRight"||c==="ArrowLeft"}var wr=R.forwardRef(function(e,r){let{render:l,children:u,onPointerMove:n,onPointerLeave:o,onPointerDown:i,onKeyUp:t,onValueCommitted:s,...p}=e,a=P("SeekSlider"),f=R.useRef(null),[S,b]=R.useState(null),[T,y]=R.useState(!1),[x,g]=R.useState(!1),v=R.useRef(!1);R.useEffect(()=>{if(!T)return;let k=()=>{y(!1),g(!1),v.current=!1,a.endSeekInteraction()};return window.addEventListener("pointerup",k),()=>window.removeEventListener("pointerup",k)},[T,a]);let M=a.duration>0?a.currentTime/a.duration*100:0,w=R.useCallback((k,D)=>{let O=typeof k=="number"?k:k[0];O!==void 0&&(D.reason==="keyboard"&&a.beginSeekInteraction(),a.seek(O),a.resetIdle(),v.current&&g(!0))},[a]),B=R.useCallback(k=>{if(_optionalChain([n, 'optionalCall', _29 => _29(k)]),!f.current||a.duration===0)return;let D=f.current.getBoundingClientRect(),O=k.clientX-D.left,J=Math.max(0,Math.min(1,O/D.width))*a.duration;a.setHoverTime(J)},[n,a]),W=R.useCallback(k=>{_optionalChain([o, 'optionalCall', _30 => _30(k)]),a.setHoverTime(null)},[o,a]),Q=R.useCallback(k=>{_optionalChain([i, 'optionalCall', _31 => _31(k)]),y(!0),v.current=!0,a.beginSeekInteraction()},[i,a]),I=R.useCallback(k=>{_optionalChain([t, 'optionalCall', _32 => _32(k)]),Er(k.key)&&a.endSeekInteraction()},[t,a]),h=R.useCallback((k,D)=>{let O=typeof k=="number"?k:k[0];O!==void 0&&(_optionalChain([s, 'optionalCall', _33 => _33(O,D)]),y(!1),g(!1),v.current=!1,!(D.reason==="keyboard"&&Er(D.event.key))&&a.endSeekInteraction())},[s,a]),$=R.useMemo(()=>{if(!a.buffered||a.buffered.length===0)return 0;for(let k=0;k<a.buffered.length;k++)if(a.buffered.start(k)<=a.currentTime&&a.currentTime<=a.buffered.end(k))return a.buffered.end(k);return a.buffered.end(0)},[a.buffered,a.currentTime]),U=a.duration>0?$/a.duration*100:0;R.useLayoutEffect(()=>{typeof r=="function"?r(f.current):r&&(r.current=f.current)});let q={currentTime:a.currentTime,duration:a.duration,progress:M,seeking:a.seeking,pressing:T,dragging:x,hoverTime:a.hoverTime,hoverProgress:a.hoverProgress},_=a.hoverProgress!==null,z=_nullishCoalesce(a.hoverProgress, () => (0)),Z=R.useMemo(()=>({sliderRef:f,previewThumbElement:S,setPreviewThumbElement:b,hoverProgress:z,open:_}),[f,S,b,z,_]),V=_chunkPCNHYMD6cjs.c.call(void 0, p.style,k=>({position:"relative","--seek-progress":`${M}%`,"--seek-buffered":`${U}%`,"--seek-current-time":a.currentTime,"--seek-duration":a.duration,"--seek-hover-progress":a.hoverProgress!==null?`${a.hoverProgress}%`:void 0,"--seek-hover-time":_nullishCoalesce(a.hoverTime, () => (void 0)),...k})),H={"data-seeking":a.seeking||void 0,"data-hovering":a.hoverTime!==null||void 0,"data-pressing":T||void 0,"data-dragging":x||void 0};return l?_jsxruntime.jsx.call(void 0, Pt.Provider,{value:Z,children:_jsxruntime.jsx.call(void 0, _slider.Slider.Root,{ref:f,min:0,max:a.duration||100,step:.1,value:a.currentTime,onValueChange:w,onValueCommitted:h,onPointerMove:B,onPointerLeave:W,onPointerDown:Q,onKeyUp:I,"aria-label":"Seek",render:(k,D)=>{let O={...H,style:{...k.style,..._chunkPCNHYMD6cjs.b.call(void 0, V,D)}};return l({...k,...O},q)}})}):_jsxruntime.jsx.call(void 0, Pt.Provider,{value:Z,children:_jsxruntime.jsx.call(void 0, _slider.Slider.Root,{ref:f,min:0,max:a.duration||100,step:.1,value:a.currentTime,onValueChange:w,onValueCommitted:h,onPointerMove:B,onPointerLeave:W,onPointerDown:Q,onKeyUp:I,"aria-label":"Seek",...H,...p,style:V,children:_nullishCoalesce(u, () => (_jsxruntime.jsx.call(void 0, _slider.Slider.Control,{children:_jsxruntime.jsxs.call(void 0, _slider.Slider.Track,{style:{position:"relative"},children:[_jsxruntime.jsx.call(void 0, "div",{style:{position:"absolute",left:0,top:0,height:"100%",width:`${U}%`}}),_jsxruntime.jsx.call(void 0, _slider.Slider.Indicator,{}),_jsxruntime.jsx.call(void 0, _slider.Slider.Thumb,{})]})})))})})}),Lr=_slider.Slider.Control,Hr=R.forwardRef(function(e,r){let{render:l,children:u,style:n,...o}=e,i={},t=_chunkPCNHYMD6cjs.c.call(void 0, n,s=>({position:"relative",...s}));return l?_jsxruntime.jsx.call(void 0, _slider.Slider.Track,{render:(s,p)=>{let a={ref:r,style:_nullishCoalesce(_chunkPCNHYMD6cjs.b.call(void 0, t,p), () => ({}))};return l({...s,...a},i)}}):_jsxruntime.jsx.call(void 0, _slider.Slider.Track,{ref:r,style:t,...o,children:u})}),Ir=R.forwardRef(function(e,r){let{render:l,children:u,style:n,...o}=e,i=P("SeekSliderProgress"),s={progress:i.duration>0?i.currentTime/i.duration*100:0},p=_chunkPCNHYMD6cjs.c.call(void 0, n,a=>({height:"100%",...a}));return l?_jsxruntime.jsx.call(void 0, _slider.Slider.Indicator,{render:(a,f)=>{let S={ref:r,style:{...a.style,..._chunkPCNHYMD6cjs.b.call(void 0, p,f)}};return l({...a,...S},s)}}):_jsxruntime.jsx.call(void 0, _slider.Slider.Indicator,{ref:r,style:p,...o,children:u})}),Dr=R.forwardRef(function(e,r){let{render:l,children:u,style:n,...o}=e,i={},t={ref:r,style:_nullishCoalesce(n, () => ({}))};return l?_jsxruntime.jsx.call(void 0, _slider.Slider.Thumb,{render:s=>l({...s,...t,style:{...s.style,...n}},i)}):_jsxruntime.jsx.call(void 0, _slider.Slider.Thumb,{ref:r,style:n,...o,children:u})}),Or=R.forwardRef(function(e,r){let{render:l,children:u,...n}=e,o=P("SeekSliderBuffered"),i=R.useMemo(()=>{if(!o.buffered||o.buffered.length===0)return 0;for(let f=0;f<o.buffered.length;f++)if(o.buffered.start(f)<=o.currentTime&&o.currentTime<=o.buffered.end(f))return o.buffered.end(f);return o.buffered.end(0)},[o.buffered,o.currentTime]),t=o.duration>0?i/o.duration*100:0,s={bufferedPercentage:t},p={position:"absolute",left:0,top:0,height:"100%",width:`${t}%`,...n.style},a={ref:r,style:p};return l?l(a,s):_jsxruntime.jsx.call(void 0, "div",{...a,...n,children:u})}),Ar=R.forwardRef(function(e,r){let{keepMounted:l=!1,render:u,children:n,...o}=e,i=P("SeekSliderPreviewThumb"),t=Vr("SeekSliderPreviewThumb"),s=i.hoverProgress!==null,p=R.useRef(0);i.hoverProgress!==null&&(p.current=i.hoverProgress);let a=_nullishCoalesce(i.hoverProgress, () => (p.current)),{mounted:f,transitionStatus:S,elementRef:b}=Y({open:s,keepMounted:l}),T=R.useCallback(v=>{b.current=v,t.setPreviewThumbElement(v),typeof r=="function"?r(v):r&&(r.current=v)},[r,b,t]),y={open:s,transitionStatus:S,hoverProgress:a},x={position:"absolute",left:`${a}%`,transform:"translateX(-50%)",pointerEvents:"none",...o.style},g={ref:T,style:x,"data-open":s||void 0,"data-closed":!s||void 0,"data-starting-style":S==="starting"||void 0,"data-ending-style":S==="ending"||void 0};return f?u?u(g,y):_jsxruntime.jsx.call(void 0, "span",{...g,...o,children:n}):null}),Wr=R.forwardRef(function(e,r){let{render:l,children:u,style:n,...o}=e,i=P("SeekSliderHover"),t=i.hoverProgress!==null,s=_nullishCoalesce(i.hoverProgress, () => (0)),p={hovering:t,hoverProgress:i.hoverProgress,hoverTime:i.hoverTime},a={position:"absolute",left:0,top:0,height:"100%",width:`${s}%`,pointerEvents:"none",...n},f={ref:r,style:a,"data-hovering":t||void 0};return l?l(f,p):_jsxruntime.jsx.call(void 0, "div",{...f,...o,children:u})});function Je({children:c,container:e}){let r=P("SeekSliderPreviewTooltipPortal"),[l,u]=R.useState(!1);if(R.useEffect(()=>{u(!0)},[]),!l)return null;let n=_nullishCoalesce(_nullishCoalesce(e, () => (r.rootRef.current)), () => (document.body));return Br.createPortal(c,n)}var Ze=R.forwardRef(function(e,r){let{sideOffset:l=8,collisionPadding:u=0,collisionBoundary:n,keepMounted:o=!1,children:i,style:t,...s}=e,p=Vr("SeekSliderPreviewTooltipPositioner"),{previewThumbElement:a,open:f,hoverProgress:S}=p,[b,T]=R.useState(null),{refs:y,floatingStyles:x,update:g}=_react2.useFloating.call(void 0, {placement:"top",middleware:[_react2.offset.call(void 0, l),_react2.shift.call(void 0, {boundary:n,padding:u})]});R.useLayoutEffect(()=>{a&&y.setReference(a)},[a,y]),R.useEffect(()=>{if(f&&a&&b)return _react2.autoUpdate.call(void 0, a,b,g)},[f,a,b,g]),R.useLayoutEffect(()=>{f&&a&&b&&g()},[S,f,a,b,g]);let v=R.useCallback(w=>{y.setFloating(w),T(w),typeof r=="function"?r(w):r&&(r.current=w)},[y,r]);return(o||f)&&!!a?_jsxruntime.jsx.call(void 0, "div",{ref:v,style:{...x,...t},"data-seek-slider-preview-tooltip-positioner":!0,"data-open":f||void 0,"data-closed":!f||void 0,...s,children:i}):null}),et=R.forwardRef(function(e,r){let{children:l,...u}=e;return _jsxruntime.jsx.call(void 0, "div",{ref:r,"data-seek-slider-preview-tooltip-popup":!0,...u,children:l})});function ye({sideOffset:c,collisionPadding:e,collisionBoundary:r,keepMounted:l,container:u,children:n,...o}){return _jsxruntime.jsx.call(void 0, Je,{container:u,children:_jsxruntime.jsx.call(void 0, Ze,{sideOffset:c,collisionPadding:e,collisionBoundary:r,keepMounted:l,children:_jsxruntime.jsx.call(void 0, et,{...o,children:n})})})}ye.Portal=Je;ye.Positioner=Ze;ye.Popup=et;var tt=(l=>(l.loading="data-loading",l.ready="data-ready",l.error="data-error",l))(tt||{});var Fr=F.forwardRef(function(e,r){let{time:l,crossOrigin:u="anonymous",render:n,children:o,width:i,height:t,...s}=e,p=P("Thumbnail"),a=F.useRef(null),f=F.useRef(null),S=F.useRef(null),[b,T]=F.useState("idle"),[y,x]=F.useState({width:160,height:90}),g=l!==void 0?l:p.hoverTime,v=F.useMemo(()=>{let h=p.videoRef.current;return h?h.currentSrc||h.src:null},[p.videoRef]);F.useEffect(()=>{if(!v)return;let h=document.createElement("video");h.src=v,h.crossOrigin=u,h.preload="metadata",h.muted=!0,h.playsInline=!0;let $=()=>{x({width:h.videoWidth,height:h.videoHeight})},U=()=>{T("error")};return h.addEventListener("loadedmetadata",$),h.addEventListener("error",U),f.current=h,()=>{h.removeEventListener("loadedmetadata",$),h.removeEventListener("error",U),h.src="",f.current=null}},[v,u]),F.useEffect(()=>{let h=f.current,$=a.current;if(!h||!$||g===null||g===void 0||S.current!==null&&Math.abs(S.current-g)<.1)return;T("loading");let U=()=>{let q=$.getContext("2d");if(q)try{q.drawImage(h,0,0,$.width,$.height),S.current=g,T("ready")}catch (e3){T("error")}};return h.addEventListener("seeked",U,{once:!0}),h.currentTime=g,()=>{h.removeEventListener("seeked",U)}},[g]);let M=F.useCallback(h=>{a.current=h,typeof r=="function"?r(h):r&&(r.current=h)},[r]),w=y.width/y.height,B=_nullishCoalesce(i, () => (160)),W=_nullishCoalesce(t, () => (Math.round(B/w)));typeof B=="string"&&(B=160),typeof W=="string"&&(W=90);let Q={loading:b==="loading",ready:b==="ready",error:b==="error",time:g,videoWidth:y.width,videoHeight:y.height},I={ref:M,width:B,height:W,"data-loading":b==="loading"||void 0,"data-ready":b==="ready"||void 0,"data-error":b==="error"||void 0};return n?n(I,Q):_jsxruntime.jsx.call(void 0, "canvas",{...I,...s,children:o})});var rt=(e=>(e.hovering="data-hovering",e))(rt||{});var Qr=nt.forwardRef(function(e,r){let{format:l="current / duration",fixedWidth:u=!0,align:n="left",render:o,...i}=e,t=P("TimeDisplay"),s=nt.useRef(0);t.hoverTime!==null&&(s.current=t.hoverTime);let p=t.duration-t.currentTime,a=Re(t.currentTime),f=Re(t.duration),S=Re(p),b=t.hoverTime!==null?Re(t.hoverTime):Re(s.current),T={currentTime:t.currentTime,duration:t.duration,remaining:p,hoverTime:t.hoverTime,hovering:t.hoverTime!==null,formattedCurrent:a,formattedDuration:f,formattedRemaining:S,formattedHover:b},y=()=>{switch(l){case"current":return a;case"duration":return f;case"remaining":return`-${S}`;case"current / duration":return`${a} / ${f}`;case"current / remaining":return`${a} / -${S}`;case"hover":return b;default:return`${a} / ${f}`}},x=()=>{let v=In(t.duration);switch(l){case"current":case"duration":case"hover":return v;case"remaining":return`-${v}`;case"current / duration":return`${v} / ${v}`;case"current / remaining":return`${v} / -${v}`;default:return`${v} / ${v}`}},g={ref:r,style:{position:u?"relative":void 0,userSelect:"none",fontVariantNumeric:"tabular-nums",...i.style},"data-hovering":T.hovering||void 0};return o?o(g,T):_jsxruntime.jsx.call(void 0, "span",{ref:r,"data-hovering":T.hovering||void 0,...i,style:{position:u?"relative":void 0,userSelect:"none",fontVariantNumeric:"tabular-nums",...i.style},children:u?_jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment,{children:[_jsxruntime.jsx.call(void 0, "span",{"aria-hidden":!0,style:{visibility:"hidden"},children:x()}),_jsxruntime.jsx.call(void 0, "span",{style:Hn(n),children:y()})]}):y()})});function Hn(c){let e={position:"absolute"};switch(c){case"left":return{...e,left:0};case"right":return{...e,right:0};case"center":return{...e,left:"50%",transform:"translateX(-50%)"}}}function Re(c){if(!Number.isFinite(c)||Number.isNaN(c))return"0:00";let e=Math.floor(c/3600),r=Math.floor(c%3600/60),l=Math.floor(c%60);return e>0?`${e}:${r.toString().padStart(2,"0")}:${l.toString().padStart(2,"0")}`:`${r}:${l.toString().padStart(2,"0")}`}function In(c){if(!Number.isFinite(c)||Number.isNaN(c)||c<=0)return"0:00";let e=Math.floor(c/3600),r=Math.floor(c%3600/60);if(e>0){let u=String(e).length;return`${"0".repeat(u)}:00:00`}let l=String(r).length;return`${"0".repeat(l)}:00`}var $r=K.forwardRef(function(e,r){let{kind:l="captions",src:u,label:n,srcLang:o,default:i,...t}=e,{registerTrack:s,unregisterTrack:p,updateTrackRef:a,setTextTrack:f}=P("Track"),S=K.useRef(null),b=K.useId(),T=K.useCallback(y=>{typeof r=="function"?r(y):r&&(r.current=y),S.current=y},[r]);return K.useEffect(()=>(s({id:b,kind:l,label:n,srcLang:o,src:u,textTrack:null}),()=>{p(b)}),[b,l,n,o,u,s,p]),K.useEffect(()=>{let y=S.current;if(!y)return;let x=()=>{y.track&&(y.track.mode="disabled",a(b,y.track),i&&f(y.track))};return y.track&&x(),y.addEventListener("load",x),()=>{y.removeEventListener("load",x)}},[b,i,a,f]),_jsxruntime.jsx.call(void 0, "track",{ref:T,kind:l,src:u,label:n,srcLang:o,default:i,...t})});var Nr=fe.forwardRef(function(e,r){let{toggleOnClick:l=!0,...u}=e,n=P("Video"),o=fe.useRef(!1),i=fe.useCallback(p=>{typeof r=="function"?r(p):r&&(r.current=p),n.videoRef.current=p,p&&!o.current&&(o.current=!0,n._handlers.onVideoMount(),p.readyState>=1&&p.duration&&(n._handlers.onLoadedMetadata(),n._handlers.onDurationChange()),p.readyState>=3&&n._handlers.onCanPlay())},[r,n.videoRef,n._handlers]),t={"data-playing":n.playing||void 0,"data-paused":n.paused||void 0,"data-ended":n.ended||void 0,"data-waiting":n.waiting||void 0,"data-seeking":n.seeking||void 0},s=_chunkSCDHQZFIcjs.a.call(void 0, {ref:i,preload:"metadata",...t,onClick(){l&&n.toggle()},onTimeUpdate:n._handlers.onTimeUpdate,onDurationChange:n._handlers.onDurationChange,onProgress:n._handlers.onProgress,onPlay:n._handlers.onPlay,onPause:n._handlers.onPause,onEnded:n._handlers.onEnded,onWaiting:n._handlers.onWaiting,onCanPlay:n._handlers.onCanPlay,onSeeking:n._handlers.onSeeking,onSeeked:n._handlers.onSeeked,onVolumeChange:n._handlers.onVolumeChange,onLoadedMetadata:n._handlers.onLoadedMetadata},u);return _jsxruntime.jsx.call(void 0, "video",{...s})});var ot=(r=>(r.volume="--volume",r.volumePercentage="--volume-percentage",r))(ot||{});var at=(u=>(u.muted="data-muted",u.volume="data-volume",u.pressing="data-pressing",u.dragging="data-dragging",u))(at||{});var jr=A.forwardRef(function(e,r){let{render:l,children:u,onPointerDown:n,...o}=e,i=P("VolumeSlider"),t=A.useRef(null),[s,p]=A.useState(!1),[a,f]=A.useState(!1),S=A.useRef(!1);A.useEffect(()=>{if(!s)return;let M=()=>{p(!1),f(!1),S.current=!1};return window.addEventListener("pointerup",M),()=>window.removeEventListener("pointerup",M)},[s]),A.useLayoutEffect(()=>{typeof r=="function"?r(t.current):r&&(r.current=t.current)});let b=i.volume*100,T={volume:i.volume,muted:i.muted,percentage:b,pressing:s,dragging:a},y=A.useCallback(M=>{let w=typeof M=="number"?M:M[0];if(w!==void 0){if(i.muted){let B=i.videoRef.current;B&&(B.muted=!1)}i.setVolume(w),i.resetIdle(),S.current&&f(!0)}},[i]),x=A.useCallback(M=>{_optionalChain([n, 'optionalCall', _34 => _34(M)]),p(!0),S.current=!0},[n]),g={"data-muted":i.muted||void 0,"data-volume":i.volume,"data-pressing":s||void 0,"data-dragging":a||void 0},v=_chunkPCNHYMD6cjs.c.call(void 0, o.style,M=>({position:"relative","--volume":i.volume,"--volume-percentage":`${b}%`,...M}));return l?_jsxruntime.jsx.call(void 0, _slider.Slider.Root,{ref:t,min:0,max:1,step:.01,value:i.muted?0:i.volume,onValueChange:y,onPointerDown:x,"aria-label":"Volume",render:(M,w)=>{let B={...g,style:_nullishCoalesce(_chunkPCNHYMD6cjs.b.call(void 0, v,w), () => ({}))};return l({...M,...B},T)}}):_jsxruntime.jsx.call(void 0, _slider.Slider.Root,{ref:t,min:0,max:1,step:.01,value:i.muted?0:i.volume,onValueChange:y,onPointerDown:x,"aria-label":"Volume",...g,...o,style:v,children:_nullishCoalesce(u, () => (_jsxruntime.jsx.call(void 0, _slider.Slider.Control,{children:_jsxruntime.jsxs.call(void 0, _slider.Slider.Track,{children:[_jsxruntime.jsx.call(void 0, _slider.Slider.Indicator,{}),_jsxruntime.jsx.call(void 0, _slider.Slider.Thumb,{})]})})))})}),Ur=_slider.Slider.Control,_r=A.forwardRef(function(e,r){let{style:l,...u}=e,n=_chunkPCNHYMD6cjs.c.call(void 0, l,o=>({position:"relative",...o}));return _jsxruntime.jsx.call(void 0, _slider.Slider.Track,{ref:r,style:n,...u})}),Kr=A.forwardRef(function(e,r){return _jsxruntime.jsx.call(void 0, _slider.Slider.Indicator,{ref:r,...e})}),qr=A.forwardRef(function(e,r){return _jsxruntime.jsx.call(void 0, _slider.Slider.Thumb,{ref:r,...e})});exports.VideoPlayer = Xr; exports.useVideoPlayer = se;
|
|
3
3
|
//# sourceMappingURL=index.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/runner/work/ui/ui/packages/react/dist/video-player/index.cjs","../../src/video-player/contexts/video-player-context.ts","../../src/video-player/hooks/use-video-player.ts","../../src/video-player/index.parts.ts","../../src/video-player/components/buffered-indicator/buffered-indicator.tsx","../../src/video-player/hooks/use-transition-status.ts"],"names":["VideoPlayerContext","useVideoPlayerContext","component","context","useVideoPlayer","index_parts_exports","__export","BufferedIndicator","Captions","CaptionsButton","CaptionsDataAttributes","CaptionsMenu","CaptionsMenuItem","Controls","ControlsDataAttributes","FullscreenButton","MuteButton","Overlay","OverlayDataAttributes","PictureInPictureButton","PlayButton","PlaybackRateButton","PlaybackRateMenu","PlaybackRateMenuItem","Portal","Poster","QualityMenu","QualityMenuItem","VideoPlayerRoot","RootDataAttributes","SeekSlider","SeekSliderBuffered","SeekSliderControl","SeekSliderCssVars","SeekSliderDataAttributes","SeekSliderHover","SeekSliderPreviewThumb","SeekSliderPreviewThumbDataAttributes","SeekSliderPreviewTooltip","SeekSliderPreviewTooltipPopup","SeekSliderPreviewTooltipPortal","SeekSliderPreviewTooltipPositioner","SeekSliderProgress","SeekSliderThumb","SeekSliderTrack","Thumbnail","ThumbnailDataAttributes","TimeDisplay","TimeDisplayDataAttributes","Track","Video","VolumeSlider","VolumeSliderControl","VolumeSliderCssVars","VolumeSliderDataAttributes","VolumeSliderRange","VolumeSliderThumb","VolumeSliderTrack","useTransitionStatus","props","forwardedRef","render","divProps","bufferedEnd","bufferedPercentage","state","style"],"mappings":"AAAA,4/BAAyC,yDAA2C,kjCCE7D,IAGVA,EAAAA,CACL,EAAA,CAAA,aAAA,CAA8C,IAAI,CAAA,CAEnD,SAASC,CAAAA,CACdC,CAAAA,CACyB,CACzB,IAAMC,CAAAA,CAAgB,EAAA,CAAA,UAAA,CAAWH,EAAkB,CAAA,CACnD,EAAA,CAAI,CAACG,CAAAA,CACH,MAAM,IAAI,KAAA,CACR,CAAA,aAAA,EAAgBD,CAAS,CAAA,wCAAA,CAC3B,CAAA,CAEF,OAAOC,CACT,CCIO,SAASC,EAAAA,CAAAA,CAA0C,CACxD,OAAOH,CAAAA,CAAsB,gBAAgB,CAC/C,CCxBA,IAAAI,EAAAA,CAAA,CAAA,CAAA,CAAAC,iCAAAA,EAAAD,CAAA,CAAA,iBAAA,CAAA,CAAA,CAAA,EAAAE,EAAAA,CAAA,QAAA,CAAA,CAAA,CAAA,EAAAC,EAAAA,CAAA,cAAA,CAAA,CAAA,CAAA,EAAAC,EAAAA,CAAA,sBAAA,CAAA,CAAA,CAAA,EAAAC,EAAAA,CAAA,YAAA,CAAA,CAAA,CAAA,EAAAC,EAAAA,CAAA,gBAAA,CAAA,CAAA,CAAA,EAAAC,EAAAA,CAAA,QAAA,CAAA,CAAA,CAAA,EAAAC,EAAAA,CAAA,sBAAA,CAAA,CAAA,CAAA,EAAAC,EAAAA,CAAA,gBAAA,CAAA,CAAA,CAAA,EAAAC,EAAAA,CAAA,UAAA,CAAA,CAAA,CAAA,EAAAC,EAAAA,CAAA,OAAA,CAAA,CAAA,CAAA,EAAAC,EAAAA,CAAA,qBAAA,CAAA,CAAA,CAAA,EAAAC,EAAAA,CAAA,sBAAA,CAAA,CAAA,CAAA,EAAAC,EAAAA,CAAA,UAAA,CAAA,CAAA,CAAA,EAAAC,EAAAA,CAAA,kBAAA,CAAA,CAAA,CAAA,EAAAC,EAAAA,CAAA,gBAAA,CAAA,CAAA,CAAA,EAAAC,EAAAA,CAAA,oBAAA,CAAA,CAAA,CAAA,EAAAC,EAAAA,CAAA,MAAA,CAAA,CAAA,CAAA,EAAAC,EAAAA,CAAA,MAAA,CAAA,CAAA,CAAA,EAAAC,EAAAA,CAAA,WAAA,CAAA,CAAA,CAAA,EAAAC,EAAAA,CAAA,eAAA,CAAA,CAAA,CAAA,EAAAC,EAAAA,CAAA,IAAA,CAAA,CAAA,CAAA,EAAAC,EAAAA,CAAA,kBAAA,CAAA,CAAA,CAAA,EAAAC,EAAAA,CAAA,UAAA,CAAA,CAAA,CAAA,EAAAC,EAAAA,CAAA,kBAAA,CAAA,CAAA,CAAA,EAAAC,EAAAA,CAAA,iBAAA,CAAA,CAAA,CAAA,EAAAC,EAAAA,CAAA,iBAAA,CAAA,CAAA,CAAA,EAAAC,EAAAA,CAAA,wBAAA,CAAA,CAAA,CAAA,EAAAC,EAAAA,CAAA,eAAA,CAAA,CAAA,CAAA,EAAAC,EAAAA,CAAA,sBAAA,CAAA,CAAA,CAAA,EAAAC,EAAAA,CAAA,oCAAA,CAAA,CAAA,CAAA,EAAAC,EAAAA,CAAA,wBAAA,CAAA,CAAA,CAAA,EAAAC,EAAAA,CAAA,6BAAA,CAAA,CAAA,CAAA,EAAAC,EAAAA,CAAA,8BAAA,CAAA,CAAA,CAAA,EAAAC,EAAAA,CAAA,kCAAA,CAAA,CAAA,CAAA,EAAAC,EAAAA,CAAA,kBAAA,CAAA,CAAA,CAAA,EAAAC,EAAAA,CAAA,eAAA,CAAA,CAAA,CAAA,EAAAC,EAAAA,CAAA,eAAA,CAAA,CAAA,CAAA,EAAAC,EAAAA,CAAA,SAAA,CAAA,CAAA,CAAA,EAAAC,EAAAA,CAAA,uBAAA,CAAA,CAAA,CAAA,EAAAC,EAAAA,CAAA,WAAA,CAAA,CAAA,CAAA,EAAAC,EAAAA,CAAA,yBAAA,CAAA,CAAA,CAAA,EAAAC,EAAAA,CAAA,KAAA,CAAA,CAAA,CAAA,EAAAC,EAAAA,CAAA,KAAA,CAAA,CAAA,CAAA,EAAAC,EAAAA,CAAA,YAAA,CAAA,CAAA,CAAA,EAAAC,EAAAA,CAAA,mBAAA,CAAA,CAAA,CAAA,EAAAC,EAAAA,CAAA,mBAAA,CAAA,CAAA,CAAA,EAAAC,EAAAA,CAAA,0BAAA,CAAA,CAAA,CAAA,EAAAC,EAAAA,CAAA,iBAAA,CAAA,CAAA,CAAA,EAAAC,EAAAA,CAAA,iBAAA,CAAA,CAAA,CAAA,EAAAC,EAAAA,CAAA,iBAAA,CAAA,CAAA,CAAA,EAAAC,EAAAA,CAAA,mBAAA,CAAA,CAAA,CAAA,EAAAC,CAAAA,CAAA,cAAA,CAAA,CAAA,CAAA,EAAAtD,EAAAA,CAAAA,CAAAA,CCEA,+CAmFI,IArDSG,EAAAA,CAA0B,EAAA,CAAA,UAAA,CAGrC,QAAA,CAA2BoD,CAAAA,CAAOC,CAAAA,CAAc,CAChD,GAAM,CAAE,MAAA,CAAAC,CAAAA,CAAQ,GAAGC,CAAS,CAAA,CAAIH,CAAAA,CAC1BxD,CAAAA,CAAUF,CAAAA,CAAsB,mBAAmB,CAAA,CAGnD8D,CAAAA,CAAoB,EAAA,CAAA,OAAA,CAAQ,CAAA,CAAA,EAAM,CACtC,EAAA,CAAI,CAAC5D,CAAAA,CAAQ,QAAA,EAAYA,CAAAA,CAAQ,QAAA,CAAS,MAAA,GAAW,CAAA,CAAG,OAAO,CAAA,CAG/D,GAAA,CAAA,IAAS,CAAA,CAAI,CAAA,CAAG,CAAA,CAAIA,CAAAA,CAAQ,QAAA,CAAS,MAAA,CAAQ,CAAA,EAAA,CAC3C,EAAA,CACEA,CAAAA,CAAQ,QAAA,CAAS,KAAA,CAAM,CAAC,CAAA,EAAKA,CAAAA,CAAQ,WAAA,EACrCA,CAAAA,CAAQ,WAAA,EAAeA,CAAAA,CAAQ,QAAA,CAAS,GAAA,CAAI,CAAC,CAAA,CAE7C,OAAOA,CAAAA,CAAQ,QAAA,CAAS,GAAA,CAAI,CAAC,CAAA,CAKjC,OAAOA,CAAAA,CAAQ,QAAA,CAAS,GAAA,CAAI,CAAC,CAC/B,CAAA,CAAG,CAACA,CAAAA,CAAQ,QAAA,CAAUA,CAAAA,CAAQ,WAAW,CAAC,CAAA,CAEpC6D,CAAAA,CACJ7D,CAAAA,CAAQ,QAAA,CAAW,CAAA,CAAK4D,CAAAA,CAAc5D,CAAAA,CAAQ,QAAA,CAAY,GAAA,CAAM,CAAA,CAE5D8D,CAAAA,CAAgC,CACpC,QAAA,CAAU9D,CAAAA,CAAQ,QAAA,CAClB,QAAA,CAAUA,CAAAA,CAAQ,QAAA,CAClB,kBAAA,CAAA6D,CAAAA,CACA,WAAA,CAAAD,CACF,CAAA,CAGMG,CAAAA,CAAQ,CACZ,uBAAA,CAAyB,CAAA,EAAA;ACSb","file":"/home/runner/work/ui/ui/packages/react/dist/video-player/index.cjs","sourcesContent":[null,"'use client'\n\nimport * as React from 'react'\nimport type { VideoPlayerContextValue } from '../types.js'\n\nexport const VideoPlayerContext =\n React.createContext<VideoPlayerContextValue | null>(null)\n\nexport function useVideoPlayerContext(\n component: string,\n): VideoPlayerContextValue {\n const context = React.useContext(VideoPlayerContext)\n if (!context) {\n throw new Error(\n `<VideoPlayer.${component}> must be used within <VideoPlayer.Root>`,\n )\n }\n return context\n}\n","'use client'\n\nimport { useVideoPlayerContext } from '../contexts/video-player-context.js'\nimport type { VideoPlayerContextValue } from '../types.js'\n\n/**\n * Hook to access the VideoPlayer context from custom components.\n *\n * @example\n * ```tsx\n * function CustomControl() {\n * const { playing, toggle, currentTime, duration } = useVideoPlayer()\n *\n * return (\n * <div>\n * {playing ? 'Playing' : 'Paused'} - {currentTime}s / {duration}s\n * <button onClick={toggle}>Toggle</button>\n * </div>\n * )\n * }\n * ```\n */\nexport function useVideoPlayer(): VideoPlayerContextValue {\n return useVideoPlayerContext('useVideoPlayer')\n}\n","// ============================================================================\n// VideoPlayer Composable Parts\n// ============================================================================\n//\n// Import like: import * as VideoPlayer from './video-player/index.parts.js'\n//\n// Usage:\n// <VideoPlayer.Root>\n// <VideoPlayer.Video src=\"...\" />\n// <VideoPlayer.Controls>\n// <VideoPlayer.PlayButton />\n// <VideoPlayer.SeekSlider />\n// <VideoPlayer.TimeDisplay />\n// </VideoPlayer.Controls>\n// </VideoPlayer.Root>\n//\n\nexport { BufferedIndicator } from './components/buffered-indicator/buffered-indicator.js'\nexport { CaptionsDataAttributes } from './components/captions/captions.data-attributes.js'\nexport { Captions } from './components/captions/captions.js'\n// Captions\nexport { CaptionsButton } from './components/captions-button/captions-button.js'\nexport {\n CaptionsMenu,\n CaptionsMenuItem,\n} from './components/captions-menu/captions-menu.js'\nexport { ControlsDataAttributes } from './components/controls/controls.data-attributes.js'\nexport { Controls } from './components/controls/controls.js'\n// Display Controls\nexport { FullscreenButton } from './components/fullscreen-button/fullscreen-button.js'\nexport { MuteButton } from './components/mute-button/mute-button.js'\nexport { OverlayDataAttributes } from './components/overlay/overlay.data-attributes.js'\nexport { Overlay } from './components/overlay/overlay.js'\nexport { PictureInPictureButton } from './components/picture-in-picture-button/picture-in-picture-button.js'\n// Playback Controls\nexport { PlayButton } from './components/play-button/play-button.js'\n// Playback Rate\nexport { PlaybackRateButton } from './components/playback-rate-button/playback-rate-button.js'\nexport {\n PlaybackRateMenu,\n PlaybackRateMenuItem,\n} from './components/playback-rate-menu/playback-rate-menu.js'\n// Layout\nexport { Portal } from './components/portal/portal.js'\nexport { Poster } from './components/poster/poster.js'\n// Quality\nexport {\n QualityMenu,\n QualityMenuItem,\n} from './components/quality-menu/quality-menu.js'\n// Data Attributes & CSS Variables\nexport { RootDataAttributes } from './components/root/root.data-attributes.js'\n// Core\nexport { VideoPlayerRoot as Root } from './components/root/root.js'\nexport { SeekSliderCssVars } from './components/seek-slider/seek-slider.css-vars.js'\nexport { SeekSliderDataAttributes } from './components/seek-slider/seek-slider.data-attributes.js'\nexport {\n SeekSlider,\n SeekSliderBuffered,\n SeekSliderControl,\n SeekSliderHover,\n SeekSliderPreviewThumb,\n SeekSliderPreviewTooltip,\n SeekSliderPreviewTooltipPopup,\n SeekSliderPreviewTooltipPortal,\n SeekSliderPreviewTooltipPositioner,\n SeekSliderProgress,\n SeekSliderThumb,\n SeekSliderTrack,\n} from './components/seek-slider/seek-slider.js'\nexport { SeekSliderPreviewThumbDataAttributes } from './components/seek-slider/seek-slider-preview-thumb.data-attributes.js'\nexport { ThumbnailDataAttributes } from './components/thumbnail/thumbnail.data-attributes.js'\nexport { Thumbnail } from './components/thumbnail/thumbnail.js'\nexport { TimeDisplayDataAttributes } from './components/time-display/time-display.data-attributes.js'\nexport { TimeDisplay } from './components/time-display/time-display.js'\nexport { Track } from './components/track/track.js'\nexport { Video } from './components/video/video.js'\nexport { VolumeSliderCssVars } from './components/volume-slider/volume-slider.css-vars.js'\nexport { VolumeSliderDataAttributes } from './components/volume-slider/volume-slider.data-attributes.js'\n// Audio Controls\nexport {\n VolumeSlider,\n VolumeSliderControl,\n VolumeSliderRange,\n VolumeSliderThumb,\n VolumeSliderTrack,\n} from './components/volume-slider/volume-slider.js'\nexport {\n type TransitionStatus,\n type UseTransitionStatusOptions,\n type UseTransitionStatusReturn,\n useTransitionStatus,\n} from './hooks/use-transition-status.js'\n// Hooks\nexport { useVideoPlayer } from './hooks/use-video-player.js'\n// Types\nexport type {\n PlaybackIntent,\n PlaybackStatus,\n RenderProp,\n TrackInfo,\n VideoPlayerActions,\n VideoPlayerContextValue,\n VideoPlayerRootProps,\n VideoPlayerState,\n VideoQuality,\n VideoTextTrack,\n} from './types.js'\n","'use client'\n\nimport * as React from 'react'\nimport { useVideoPlayerContext } from '../../contexts/video-player-context.js'\nimport type { RenderProp } from '../../types.js'\n\n// ============================================================================\n// BufferedIndicator Props\n// ============================================================================\n\nexport interface BufferedIndicatorProps\n extends React.ComponentPropsWithRef<'div'> {\n render?: RenderProp<BufferedIndicatorRenderProps, BufferedIndicatorState>\n}\n\nexport interface BufferedIndicatorRenderProps {\n ref: React.Ref<HTMLElement>\n style: React.CSSProperties\n 'aria-hidden': true\n}\n\nexport interface BufferedIndicatorState {\n buffered: TimeRanges | null\n duration: number\n bufferedPercentage: number\n bufferedEnd: number\n}\n\n// ============================================================================\n// BufferedIndicator Component\n// ============================================================================\n\nexport const BufferedIndicator = React.forwardRef<\n HTMLDivElement,\n BufferedIndicatorProps\n>(function BufferedIndicator(props, forwardedRef) {\n const { render, ...divProps } = props\n const context = useVideoPlayerContext('BufferedIndicator')\n\n // Calculate buffered end position (for progress bar display)\n const bufferedEnd = React.useMemo(() => {\n if (!context.buffered || context.buffered.length === 0) return 0\n\n // Find the buffer range that contains current playback position\n for (let i = 0; i < context.buffered.length; i++) {\n if (\n context.buffered.start(i) <= context.currentTime &&\n context.currentTime <= context.buffered.end(i)\n ) {\n return context.buffered.end(i)\n }\n }\n\n // Fallback to end of first range\n return context.buffered.end(0)\n }, [context.buffered, context.currentTime])\n\n const bufferedPercentage =\n context.duration > 0 ? (bufferedEnd / context.duration) * 100 : 0\n\n const state: BufferedIndicatorState = {\n buffered: context.buffered,\n duration: context.duration,\n bufferedPercentage,\n bufferedEnd,\n }\n\n // CSS custom properties for styling\n const style = {\n '--buffered-percentage': `${bufferedPercentage}%`,\n '--buffered-end': bufferedEnd,\n ...divProps.style,\n } as React.CSSProperties\n\n const renderProps: BufferedIndicatorRenderProps = {\n ref: forwardedRef,\n style,\n 'aria-hidden': true,\n }\n\n if (render) {\n return render(renderProps, state)\n }\n\n return (\n <div ref={forwardedRef} aria-hidden=\"true\" {...divProps} style={style} />\n )\n})\n\n// ============================================================================\n// Namespace\n// ============================================================================\n\nexport namespace BufferedIndicator {\n export type Props = BufferedIndicatorProps\n export type State = BufferedIndicatorState\n}\n","'use client'\n\nimport * as React from 'react'\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport type TransitionStatus = 'starting' | 'ending' | undefined\n\nexport interface UseTransitionStatusOptions {\n /**\n * Whether the element should be visible/open.\n */\n open: boolean\n /**\n * Keep the element always mounted in the DOM, even when closed.\n * Only needed for JavaScript animation libraries (e.g., Framer Motion).\n * CSS transitions and animations work automatically without this.\n * @default false\n */\n keepMounted?: boolean\n}\n\nexport interface UseTransitionStatusReturn {\n /**\n * Whether the element should be rendered in the DOM.\n * Stays true during exit animations.\n */\n mounted: boolean\n /**\n * Current transition status:\n * - 'starting': First frame of enter animation\n * - 'ending': Exit animation in progress\n * - undefined: Idle state\n */\n transitionStatus: TransitionStatus\n /**\n * Ref to attach to the animated element.\n * Used to detect when CSS animations/transitions complete.\n */\n elementRef: React.RefObject<HTMLElement | null>\n}\n\n// ============================================================================\n// Utility: Wait for Animations\n// ============================================================================\n\n/**\n * Returns a promise that resolves when all CSS animations and transitions\n * on the element and its descendants have completed.\n */\nfunction waitForAnimations(element: HTMLElement): Promise<void> {\n // Collect animations from the element and all descendants\n const animations = [\n ...element.getAnimations(),\n ...Array.from(element.querySelectorAll('*')).flatMap((el) =>\n (el as HTMLElement).getAnimations(),\n ),\n ]\n\n if (animations.length === 0) {\n return Promise.resolve()\n }\n return Promise.all(animations.map((a) => a.finished))\n .then(() => {})\n .catch(() => {\n // Animation was cancelled (e.g., element removed or animation interrupted)\n })\n}\n\n// ============================================================================\n// Hook: useTransitionStatus\n// ============================================================================\n\nexport function useTransitionStatus(\n options: UseTransitionStatusOptions,\n): UseTransitionStatusReturn {\n const { open, keepMounted = false } = options\n\n const [mounted, setMounted] = React.useState(open || keepMounted)\n const [transitionStatus, setTransitionStatus] =\n React.useState<TransitionStatus>(open ? 'starting' : undefined)\n\n const elementRef = React.useRef<HTMLElement | null>(null)\n\n // Track if we're currently waiting for animations\n const waitingForAnimationsRef = React.useRef(false)\n\n // Handle open → true (enter)\n React.useEffect(() => {\n if (open) {\n // Cancel any pending exit\n waitingForAnimationsRef.current = false\n\n setMounted(true)\n setTransitionStatus('starting')\n\n // Clear starting style after first paint (double RAF for reliability)\n const raf = requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n setTransitionStatus(undefined)\n })\n })\n\n return () => cancelAnimationFrame(raf)\n }\n }, [open])\n\n // Handle open → false (exit)\n React.useEffect(() => {\n if (!open && mounted && !waitingForAnimationsRef.current) {\n setTransitionStatus('ending')\n\n const element = elementRef.current\n\n if (!element) {\n // No element ref, unmount immediately\n setTransitionStatus(undefined)\n if (!keepMounted) {\n setMounted(false)\n }\n return\n }\n\n waitingForAnimationsRef.current = true\n\n // Wait a frame for the browser to process style changes and start animations\n const raf = requestAnimationFrame(() => {\n // Double RAF for reliability (like enter animation)\n requestAnimationFrame(() => {\n waitForAnimations(element).then(() => {\n // Check if we're still supposed to be unmounting\n // (user might have re-opened during animation)\n if (!waitingForAnimationsRef.current) return\n\n waitingForAnimationsRef.current = false\n setTransitionStatus(undefined)\n\n if (!keepMounted) {\n setMounted(false)\n }\n })\n })\n })\n\n return () => {\n cancelAnimationFrame(raf)\n }\n }\n }, [open, mounted, keepMounted])\n\n // Handle keepMounted change\n React.useEffect(() => {\n if (keepMounted && !mounted && !open) {\n setMounted(true)\n }\n }, [keepMounted, mounted, open])\n\n return {\n mounted: mounted || keepMounted,\n transitionStatus,\n elementRef,\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/ui/ui/packages/react/dist/video-player/index.cjs","../../src/video-player/contexts/video-player-context.ts","../../src/video-player/hooks/use-video-player.ts","../../src/video-player/index.parts.ts","../../src/video-player/components/buffered-indicator/buffered-indicator.tsx","../../src/video-player/hooks/use-transition-status.ts"],"names":["VideoPlayerContext","useVideoPlayerContext","component","context","useVideoPlayer","index_parts_exports","__export","BufferedIndicator","Captions","CaptionsButton","CaptionsDataAttributes","CaptionsMenu","CaptionsMenuItem","Controls","ControlsDataAttributes","FullscreenButton","MuteButton","Overlay","OverlayDataAttributes","PictureInPictureButton","PlayButton","PlaybackRateButton","PlaybackRateMenu","PlaybackRateMenuItem","Portal","Poster","QualityMenu","QualityMenuItem","VideoPlayerRoot","RootDataAttributes","SeekSlider","SeekSliderBuffered","SeekSliderControl","SeekSliderCssVars","SeekSliderDataAttributes","SeekSliderHover","SeekSliderPreviewThumb","SeekSliderPreviewThumbDataAttributes","SeekSliderPreviewTooltip","SeekSliderPreviewTooltipPopup","SeekSliderPreviewTooltipPortal","SeekSliderPreviewTooltipPositioner","SeekSliderProgress","SeekSliderThumb","SeekSliderTrack","Thumbnail","ThumbnailDataAttributes","TimeDisplay","TimeDisplayDataAttributes","Track","Video","VolumeSlider","VolumeSliderControl","VolumeSliderCssVars","VolumeSliderDataAttributes","VolumeSliderRange","VolumeSliderThumb","VolumeSliderTrack","useTransitionStatus","props","forwardedRef","render","divProps","bufferedEnd","i","bufferedPercentage","state","style","open"],"mappings":"AAAA,4/BAAyC,yDAAmD,yDAA2C,kjCCEhH,IAGVA,EAAAA,CACL,EAAA,CAAA,aAAA,CAA8C,IAAI,CAAA,CAEnD,SAASC,CAAAA,CACdC,CAAAA,CACyB,CACzB,IAAMC,CAAAA,CAAgB,EAAA,CAAA,UAAA,CAAWH,EAAkB,CAAA,CACnD,EAAA,CAAI,CAACG,CAAAA,CACH,MAAM,IAAI,KAAA,CACR,CAAA,aAAA,EAAgBD,CAAS,CAAA,wCAAA,CAC3B,CAAA,CAEF,OAAOC,CACT,CCIO,SAASC,EAAAA,CAAAA,CAA0C,CACxD,OAAOH,CAAAA,CAAsB,gBAAgB,CAC/C,CCxBA,IAAAI,EAAAA,CAAA,CAAA,CAAA,CAAAC,iCAAAA,EAAAD,CAAA,CAAA,iBAAA,CAAA,CAAA,CAAA,EAAAE,EAAAA,CAAA,QAAA,CAAA,CAAA,CAAA,EAAAC,EAAAA,CAAA,cAAA,CAAA,CAAA,CAAA,EAAAC,EAAAA,CAAA,sBAAA,CAAA,CAAA,CAAA,EAAAC,EAAAA,CAAA,YAAA,CAAA,CAAA,CAAA,EAAAC,EAAAA,CAAA,gBAAA,CAAA,CAAA,CAAA,EAAAC,EAAAA,CAAA,QAAA,CAAA,CAAA,CAAA,EAAAC,EAAAA,CAAA,sBAAA,CAAA,CAAA,CAAA,EAAAC,EAAAA,CAAA,gBAAA,CAAA,CAAA,CAAA,EAAAC,EAAAA,CAAA,UAAA,CAAA,CAAA,CAAA,EAAAC,EAAAA,CAAA,OAAA,CAAA,CAAA,CAAA,EAAAC,EAAAA,CAAA,qBAAA,CAAA,CAAA,CAAA,EAAAC,EAAAA,CAAA,sBAAA,CAAA,CAAA,CAAA,EAAAC,EAAAA,CAAA,UAAA,CAAA,CAAA,CAAA,EAAAC,EAAAA,CAAA,kBAAA,CAAA,CAAA,CAAA,EAAAC,EAAAA,CAAA,gBAAA,CAAA,CAAA,CAAA,EAAAC,EAAAA,CAAA,oBAAA,CAAA,CAAA,CAAA,EAAAC,EAAAA,CAAA,MAAA,CAAA,CAAA,CAAA,EAAAC,EAAAA,CAAA,MAAA,CAAA,CAAA,CAAA,EAAAC,EAAAA,CAAA,WAAA,CAAA,CAAA,CAAA,EAAAC,EAAAA,CAAA,eAAA,CAAA,CAAA,CAAA,EAAAC,EAAAA,CAAA,IAAA,CAAA,CAAA,CAAA,EAAAC,EAAAA,CAAA,kBAAA,CAAA,CAAA,CAAA,EAAAC,EAAAA,CAAA,UAAA,CAAA,CAAA,CAAA,EAAAC,EAAAA,CAAA,kBAAA,CAAA,CAAA,CAAA,EAAAC,EAAAA,CAAA,iBAAA,CAAA,CAAA,CAAA,EAAAC,EAAAA,CAAA,iBAAA,CAAA,CAAA,CAAA,EAAAC,EAAAA,CAAA,wBAAA,CAAA,CAAA,CAAA,EAAAC,EAAAA,CAAA,eAAA,CAAA,CAAA,CAAA,EAAAC,EAAAA,CAAA,sBAAA,CAAA,CAAA,CAAA,EAAAC,EAAAA,CAAA,oCAAA,CAAA,CAAA,CAAA,EAAAC,EAAAA,CAAA,wBAAA,CAAA,CAAA,CAAA,EAAAC,EAAAA,CAAA,6BAAA,CAAA,CAAA,CAAA,EAAAC,EAAAA,CAAA,8BAAA,CAAA,CAAA,CAAA,EAAAC,EAAAA,CAAA,kCAAA,CAAA,CAAA,CAAA,EAAAC,EAAAA,CAAA,kBAAA,CAAA,CAAA,CAAA,EAAAC,EAAAA,CAAA,eAAA,CAAA,CAAA,CAAA,EAAAC,EAAAA,CAAA,eAAA,CAAA,CAAA,CAAA,EAAAC,EAAAA,CAAA,SAAA,CAAA,CAAA,CAAA,EAAAC,EAAAA,CAAA,uBAAA,CAAA,CAAA,CAAA,EAAAC,EAAAA,CAAA,WAAA,CAAA,CAAA,CAAA,EAAAC,EAAAA,CAAA,yBAAA,CAAA,CAAA,CAAA,EAAAC,EAAAA,CAAA,KAAA,CAAA,CAAA,CAAA,EAAAC,EAAAA,CAAA,KAAA,CAAA,CAAA,CAAA,EAAAC,EAAAA,CAAA,YAAA,CAAA,CAAA,CAAA,EAAAC,EAAAA,CAAA,mBAAA,CAAA,CAAA,CAAA,EAAAC,EAAAA,CAAA,mBAAA,CAAA,CAAA,CAAA,EAAAC,EAAAA,CAAA,0BAAA,CAAA,CAAA,CAAA,EAAAC,EAAAA,CAAA,iBAAA,CAAA,CAAA,CAAA,EAAAC,EAAAA,CAAA,iBAAA,CAAA,CAAA,CAAA,EAAAC,EAAAA,CAAA,iBAAA,CAAA,CAAA,CAAA,EAAAC,EAAAA,CAAA,mBAAA,CAAA,CAAA,CAAA,EAAAC,CAAAA,CAAA,cAAA,CAAA,CAAA,CAAA,EAAAtD,EAAAA,CAAAA,CAAAA,CCEA,+CAmFI,IArDSG,EAAAA,CAA0B,EAAA,CAAA,UAAA,CAGrC,QAAA,CAA2BoD,CAAAA,CAAOC,CAAAA,CAAc,CAChD,GAAM,CAAE,MAAA,CAAAC,CAAAA,CAAQ,GAAGC,CAAS,CAAA,CAAIH,CAAAA,CAC1BxD,CAAAA,CAAUF,CAAAA,CAAsB,mBAAmB,CAAA,CAGnD8D,CAAAA,CAAoB,EAAA,CAAA,OAAA,CAAQ,CAAA,CAAA,EAAM,CACtC,EAAA,CAAI,CAAC5D,CAAAA,CAAQ,QAAA,EAAYA,CAAAA,CAAQ,QAAA,CAAS,MAAA,GAAW,CAAA,CAAG,OAAO,CAAA,CAG/D,GAAA,CAAA,IAAS6D,CAAAA,CAAI,CAAA,CAAGA,CAAAA,CAAI7D,CAAAA,CAAQ,QAAA,CAAS,MAAA,CAAQ6D,CAAAA,EAAAA,CAC3C,EAAA,CACE7D,CAAAA,CAAQ,QAAA,CAAS,KAAA,CAAM6D,CAAC,CAAA,EAAK7D,CAAAA,CAAQ,WAAA,EACrCA,CAAAA,CAAQ,WAAA,EAAeA,CAAAA,CAAQ,QAAA,CAAS,GAAA,CAAI6D,CAAC,CAAA,CAE7C,OAAO7D,CAAAA,CAAQ,QAAA,CAAS,GAAA,CAAI6D,CAAC,CAAA,CAKjC,OAAO7D,CAAAA,CAAQ,QAAA,CAAS,GAAA,CAAI,CAAC,CAC/B,CAAA,CAAG,CAACA,CAAAA,CAAQ,QAAA,CAAUA,CAAAA,CAAQ,WAAW,CAAC,CAAA,CAEpC8D,CAAAA,CACJ9D,CAAAA,CAAQ,QAAA,CAAW,CAAA,CAAK4D,CAAAA,CAAc5D,CAAAA,CAAQ,QAAA,CAAY,GAAA,CAAM,CAAA,CAE5D+D,CAAAA,CAAgC,CACpC,QAAA,CAAU/D,CAAAA,CAAQ,QAAA,CAClB,QAAA,CAAUA,CAAAA,CAAQ,QAAA,CAClB,kBAAA,CAAA8D,CAAAA,CACA,WAAA,CAAAF,CACF,CAAA,CAGMI,CAAAA,CAAQ,CACZ,uBAAA,CAAyB,CAAA,EAAA;ACaQC","file":"/home/runner/work/ui/ui/packages/react/dist/video-player/index.cjs","sourcesContent":[null,"'use client'\n\nimport * as React from 'react'\nimport type { VideoPlayerContextValue } from '../types.js'\n\nexport const VideoPlayerContext =\n React.createContext<VideoPlayerContextValue | null>(null)\n\nexport function useVideoPlayerContext(\n component: string,\n): VideoPlayerContextValue {\n const context = React.useContext(VideoPlayerContext)\n if (!context) {\n throw new Error(\n `<VideoPlayer.${component}> must be used within <VideoPlayer.Root>`,\n )\n }\n return context\n}\n","'use client'\n\nimport { useVideoPlayerContext } from '../contexts/video-player-context.js'\nimport type { VideoPlayerContextValue } from '../types.js'\n\n/**\n * Hook to access the VideoPlayer context from custom components.\n *\n * @example\n * ```tsx\n * function CustomControl() {\n * const { playing, toggle, currentTime, duration } = useVideoPlayer()\n *\n * return (\n * <div>\n * {playing ? 'Playing' : 'Paused'} - {currentTime}s / {duration}s\n * <button onClick={toggle}>Toggle</button>\n * </div>\n * )\n * }\n * ```\n */\nexport function useVideoPlayer(): VideoPlayerContextValue {\n return useVideoPlayerContext('useVideoPlayer')\n}\n","// ============================================================================\n// VideoPlayer Composable Parts\n// ============================================================================\n//\n// Import like: import * as VideoPlayer from './video-player/index.parts.js'\n//\n// Usage:\n// <VideoPlayer.Root>\n// <VideoPlayer.Video src=\"...\" />\n// <VideoPlayer.Controls>\n// <VideoPlayer.PlayButton />\n// <VideoPlayer.SeekSlider />\n// <VideoPlayer.TimeDisplay />\n// </VideoPlayer.Controls>\n// </VideoPlayer.Root>\n//\n\nexport { BufferedIndicator } from './components/buffered-indicator/buffered-indicator.js'\nexport { CaptionsDataAttributes } from './components/captions/captions.data-attributes.js'\nexport { Captions } from './components/captions/captions.js'\n// Captions\nexport { CaptionsButton } from './components/captions-button/captions-button.js'\nexport {\n CaptionsMenu,\n CaptionsMenuItem,\n} from './components/captions-menu/captions-menu.js'\nexport { ControlsDataAttributes } from './components/controls/controls.data-attributes.js'\nexport { Controls } from './components/controls/controls.js'\n// Display Controls\nexport { FullscreenButton } from './components/fullscreen-button/fullscreen-button.js'\nexport { MuteButton } from './components/mute-button/mute-button.js'\nexport { OverlayDataAttributes } from './components/overlay/overlay.data-attributes.js'\nexport { Overlay } from './components/overlay/overlay.js'\nexport { PictureInPictureButton } from './components/picture-in-picture-button/picture-in-picture-button.js'\n// Playback Controls\nexport { PlayButton } from './components/play-button/play-button.js'\n// Playback Rate\nexport { PlaybackRateButton } from './components/playback-rate-button/playback-rate-button.js'\nexport {\n PlaybackRateMenu,\n PlaybackRateMenuItem,\n} from './components/playback-rate-menu/playback-rate-menu.js'\n// Layout\nexport { Portal } from './components/portal/portal.js'\nexport { Poster } from './components/poster/poster.js'\n// Quality\nexport {\n QualityMenu,\n QualityMenuItem,\n} from './components/quality-menu/quality-menu.js'\n// Data Attributes & CSS Variables\nexport { RootDataAttributes } from './components/root/root.data-attributes.js'\n// Core\nexport { VideoPlayerRoot as Root } from './components/root/root.js'\nexport { SeekSliderCssVars } from './components/seek-slider/seek-slider.css-vars.js'\nexport { SeekSliderDataAttributes } from './components/seek-slider/seek-slider.data-attributes.js'\nexport {\n SeekSlider,\n SeekSliderBuffered,\n SeekSliderControl,\n SeekSliderHover,\n SeekSliderPreviewThumb,\n SeekSliderPreviewTooltip,\n SeekSliderPreviewTooltipPopup,\n SeekSliderPreviewTooltipPortal,\n SeekSliderPreviewTooltipPositioner,\n SeekSliderProgress,\n SeekSliderThumb,\n SeekSliderTrack,\n} from './components/seek-slider/seek-slider.js'\nexport { SeekSliderPreviewThumbDataAttributes } from './components/seek-slider/seek-slider-preview-thumb.data-attributes.js'\nexport { ThumbnailDataAttributes } from './components/thumbnail/thumbnail.data-attributes.js'\nexport { Thumbnail } from './components/thumbnail/thumbnail.js'\nexport { TimeDisplayDataAttributes } from './components/time-display/time-display.data-attributes.js'\nexport { TimeDisplay } from './components/time-display/time-display.js'\nexport { Track } from './components/track/track.js'\nexport { Video } from './components/video/video.js'\nexport { VolumeSliderCssVars } from './components/volume-slider/volume-slider.css-vars.js'\nexport { VolumeSliderDataAttributes } from './components/volume-slider/volume-slider.data-attributes.js'\n// Audio Controls\nexport {\n VolumeSlider,\n VolumeSliderControl,\n VolumeSliderRange,\n VolumeSliderThumb,\n VolumeSliderTrack,\n} from './components/volume-slider/volume-slider.js'\nexport {\n type TransitionStatus,\n type UseTransitionStatusOptions,\n type UseTransitionStatusReturn,\n useTransitionStatus,\n} from './hooks/use-transition-status.js'\n// Hooks\nexport { useVideoPlayer } from './hooks/use-video-player.js'\n// Types\nexport type {\n PlaybackIntent,\n PlaybackStatus,\n RenderProp,\n TrackInfo,\n VideoPlayerActions,\n VideoPlayerContextValue,\n VideoPlayerRootProps,\n VideoPlayerState,\n VideoQuality,\n VideoTextTrack,\n} from './types.js'\n","'use client'\n\nimport * as React from 'react'\nimport { useVideoPlayerContext } from '../../contexts/video-player-context.js'\nimport type { RenderProp } from '../../types.js'\n\n// ============================================================================\n// BufferedIndicator Props\n// ============================================================================\n\nexport interface BufferedIndicatorProps\n extends React.ComponentPropsWithRef<'div'> {\n render?: RenderProp<BufferedIndicatorRenderProps, BufferedIndicatorState>\n}\n\nexport interface BufferedIndicatorRenderProps {\n ref: React.Ref<HTMLElement>\n style: React.CSSProperties\n 'aria-hidden': true\n}\n\nexport interface BufferedIndicatorState {\n buffered: TimeRanges | null\n duration: number\n bufferedPercentage: number\n bufferedEnd: number\n}\n\n// ============================================================================\n// BufferedIndicator Component\n// ============================================================================\n\nexport const BufferedIndicator = React.forwardRef<\n HTMLDivElement,\n BufferedIndicatorProps\n>(function BufferedIndicator(props, forwardedRef) {\n const { render, ...divProps } = props\n const context = useVideoPlayerContext('BufferedIndicator')\n\n // Calculate buffered end position (for progress bar display)\n const bufferedEnd = React.useMemo(() => {\n if (!context.buffered || context.buffered.length === 0) return 0\n\n // Find the buffer range that contains current playback position\n for (let i = 0; i < context.buffered.length; i++) {\n if (\n context.buffered.start(i) <= context.currentTime &&\n context.currentTime <= context.buffered.end(i)\n ) {\n return context.buffered.end(i)\n }\n }\n\n // Fallback to end of first range\n return context.buffered.end(0)\n }, [context.buffered, context.currentTime])\n\n const bufferedPercentage =\n context.duration > 0 ? (bufferedEnd / context.duration) * 100 : 0\n\n const state: BufferedIndicatorState = {\n buffered: context.buffered,\n duration: context.duration,\n bufferedPercentage,\n bufferedEnd,\n }\n\n // CSS custom properties for styling\n const style = {\n '--buffered-percentage': `${bufferedPercentage}%`,\n '--buffered-end': bufferedEnd,\n ...divProps.style,\n } as React.CSSProperties\n\n const renderProps: BufferedIndicatorRenderProps = {\n ref: forwardedRef,\n style,\n 'aria-hidden': true,\n }\n\n if (render) {\n return render(renderProps, state)\n }\n\n return (\n <div ref={forwardedRef} aria-hidden=\"true\" {...divProps} style={style} />\n )\n})\n\n// ============================================================================\n// Namespace\n// ============================================================================\n\nexport namespace BufferedIndicator {\n export type Props = BufferedIndicatorProps\n export type State = BufferedIndicatorState\n}\n","'use client'\n\nimport * as React from 'react'\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport type TransitionStatus = 'starting' | 'ending' | undefined\n\nexport interface UseTransitionStatusOptions {\n /**\n * Whether the element should be visible/open.\n */\n open: boolean\n /**\n * Keep the element always mounted in the DOM, even when closed.\n * Only needed for JavaScript animation libraries (e.g., Framer Motion).\n * CSS transitions and animations work automatically without this.\n * @default false\n */\n keepMounted?: boolean\n}\n\nexport interface UseTransitionStatusReturn {\n /**\n * Whether the element should be rendered in the DOM.\n * Stays true during exit animations.\n */\n mounted: boolean\n /**\n * Current transition status:\n * - 'starting': First frame of enter animation\n * - 'ending': Exit animation in progress\n * - undefined: Idle state\n */\n transitionStatus: TransitionStatus\n /**\n * Ref to attach to the animated element.\n * Used to detect when CSS animations/transitions complete.\n */\n elementRef: React.RefObject<HTMLElement | null>\n}\n\n// ============================================================================\n// Utility: Wait for Animations\n// ============================================================================\n\n/**\n * Returns a promise that resolves when all CSS animations and transitions\n * on the element and its descendants have completed.\n */\nfunction waitForAnimations(element: HTMLElement): Promise<void> {\n // Collect animations from the element and all descendants\n const animations = [\n ...element.getAnimations(),\n ...Array.from(element.querySelectorAll('*')).flatMap((el) =>\n (el as HTMLElement).getAnimations(),\n ),\n ]\n\n if (animations.length === 0) {\n return Promise.resolve()\n }\n return Promise.all(animations.map((a) => a.finished))\n .then(() => {})\n .catch(() => {\n // Animation was cancelled (e.g., element removed or animation interrupted)\n })\n}\n\n// ============================================================================\n// Hook: useTransitionStatus\n// ============================================================================\n\nexport function useTransitionStatus(\n options: UseTransitionStatusOptions,\n): UseTransitionStatusReturn {\n const { open, keepMounted = false } = options\n\n const [mounted, setMounted] = React.useState(open || keepMounted)\n const [transitionStatus, setTransitionStatus] =\n React.useState<TransitionStatus>(open ? 'starting' : undefined)\n\n const elementRef = React.useRef<HTMLElement | null>(null)\n\n // Track if we're currently waiting for animations\n const waitingForAnimationsRef = React.useRef(false)\n\n // Handle open → true (enter)\n React.useEffect(() => {\n if (open) {\n // Cancel any pending exit\n waitingForAnimationsRef.current = false\n\n setMounted(true)\n setTransitionStatus('starting')\n\n // Clear starting style after first paint (double RAF for reliability)\n const raf = requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n setTransitionStatus(undefined)\n })\n })\n\n return () => cancelAnimationFrame(raf)\n }\n }, [open])\n\n // Handle open → false (exit)\n React.useEffect(() => {\n if (!open && mounted && !waitingForAnimationsRef.current) {\n setTransitionStatus('ending')\n\n const element = elementRef.current\n\n if (!element) {\n // No element ref, unmount immediately\n setTransitionStatus(undefined)\n if (!keepMounted) {\n setMounted(false)\n }\n return\n }\n\n waitingForAnimationsRef.current = true\n\n // Wait a frame for the browser to process style changes and start animations\n const raf = requestAnimationFrame(() => {\n // Double RAF for reliability (like enter animation)\n requestAnimationFrame(() => {\n waitForAnimations(element).then(() => {\n // Check if we're still supposed to be unmounting\n // (user might have re-opened during animation)\n if (!waitingForAnimationsRef.current) return\n\n waitingForAnimationsRef.current = false\n setTransitionStatus(undefined)\n\n if (!keepMounted) {\n setMounted(false)\n }\n })\n })\n })\n\n return () => {\n cancelAnimationFrame(raf)\n }\n }\n }, [open, mounted, keepMounted])\n\n // Handle keepMounted change\n React.useEffect(() => {\n if (keepMounted && !mounted && !open) {\n setMounted(true)\n }\n }, [keepMounted, mounted, open])\n\n return {\n mounted: mounted || keepMounted,\n transitionStatus,\n elementRef,\n }\n}\n"]}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{a as E}from"../chunk-IT372NHF.js";import{a as
|
|
2
|
-
`),s=a.length>0,p={active:s,cueText:t,cues:a},i={ref:r,"aria-live":"polite","aria-atomic":!0,role:"status",style:{pointerEvents:"none"},"data-active":s||void 0};return l?l(i,p):u?or("div",{...i,...n,children:u}):or("div",{...i,...n,children:t})});import*as sr from"react";import{jsx as rn}from"react/jsx-runtime";var lr=sr.forwardRef(function(e,r){let{render:l,...u}=e,n=P("CaptionsButton"),o=n.registeredTracks.length>0,a=n.activeTextTrack!==null,t={active:a,available:o,trackCount:n.registeredTracks.length},s=E({ref:r,type:"button","aria-label":a?"Disable captions":"Enable captions","aria-pressed":a,disabled:!o,"data-active":a||void 0,"data-available":o||void 0,onClick(){if(a)n.setTextTrack(null);else if(n.registeredTracks.length>0){let p=n.registeredTracks[0];p?.textTrack&&n.setTextTrack(p.textTrack)}}},u);return l?l(s,t):rn("button",{...s})});import*as it from"react";import{Fragment as nn,jsx as Oe,jsxs as on}from"react/jsx-runtime";var ur=it.forwardRef(function(e,r){let{render:l,children:u,...n}=e,o=P("CaptionsMenu"),a={registeredTracks:o.registeredTracks,activeTextTrack:o.activeTextTrack},t={ref:r,role:"menu","aria-label":"Captions","data-active":o.activeTextTrack!==null||void 0};return l?l(t,a):Oe("div",{...t,...n,children:u??on(nn,{children:[Oe(Ae,{track:null,children:"Off"}),o.registeredTracks.map(s=>Oe(Ae,{track:s.textTrack,children:s.label},s.id))]})})}),Ae=it.forwardRef(function(e,r){let{track:l,children:u,...n}=e,o=P("CaptionsMenuItem"),a=o.activeTextTrack===l,t=E({ref:r,type:"button",role:"menuitemradio","aria-checked":a,"data-active":a||void 0,onClick(){o.setTextTrack(l)}},n);return Oe("button",{...t,children:u})});var We=(t=>(t.open="data-open",t.closed="data-closed",t.idle="data-idle",t.playing="data-playing",t.paused="data-paused",t.ended="data-ended",t.startingStyle="data-starting-style",t.endingStyle="data-ending-style",t))(We||{});import*as fe from"react";import*as X from"react";function an(c){let e=[...c.getAnimations(),...Array.from(c.querySelectorAll("*")).flatMap(r=>r.getAnimations())];return e.length===0?Promise.resolve():Promise.all(e.map(r=>r.finished)).then(()=>{}).catch(()=>{})}function Y(c){let{open:e,keepMounted:r=!1}=c,[l,u]=X.useState(e||r),[n,o]=X.useState(e?"starting":void 0),a=X.useRef(null),t=X.useRef(!1);return X.useEffect(()=>{if(e){t.current=!1,u(!0),o("starting");let s=requestAnimationFrame(()=>{requestAnimationFrame(()=>{o(void 0)})});return()=>cancelAnimationFrame(s)}},[e]),X.useEffect(()=>{if(!e&&l&&!t.current){o("ending");let s=a.current;if(!s){o(void 0),r||u(!1);return}t.current=!0;let p=requestAnimationFrame(()=>{requestAnimationFrame(()=>{an(s).then(()=>{t.current&&(t.current=!1,o(void 0),r||u(!1))})})});return()=>{cancelAnimationFrame(p)}}},[e,l,r]),X.useEffect(()=>{r&&!l&&!e&&u(!0)},[r,l,e]),{mounted:l||r,transitionStatus:n,elementRef:a}}import{jsx as sn}from"react/jsx-runtime";var cr=fe.forwardRef(function(e,r){let{idleTimeout:l,keepMounted:u=!1,render:n,children:o,...a}=e,t=P("Controls"),p=(l??t.idleTimeout)===0||!t.idle,{mounted:i,transitionStatus:f,elementRef:b}=Y({open:p,keepMounted:u}),S=fe.useCallback(L=>{b.current=L,typeof r=="function"?r(L):r&&(r.current=L)},[r,b]),{onClick:T,...y}=a,x=fe.useCallback(L=>{L.stopPropagation(),T?.(L)},[T]),v={open:p,idle:t.idle,playing:t.playing,paused:t.paused,ended:t.ended},k={ref:S,onClick:x,"data-open":p||void 0,"data-closed":!p||void 0,"data-idle":t.idle||void 0,"data-playing":t.playing||void 0,"data-paused":t.paused||void 0,"data-ended":t.ended||void 0,"data-starting-style":f==="starting"||void 0,"data-ending-style":f==="ending"||void 0};return i?n?n(k,v):sn("div",{...k,...y,children:o}):null});import*as ue from"react";import{jsx as ln}from"react/jsx-runtime";var dr=ue.forwardRef(function(e,r){let{render:l,children:u,...n}=e,o=P("FullscreenButton"),[a,t]=ue.useState(!1);ue.useEffect(()=>{t("fullscreenEnabled"in document&&document.fullscreenEnabled)},[]);let s={fullscreen:o.fullscreen,supported:a},p=E({ref:r,type:"button","aria-label":o.fullscreen?"Exit fullscreen":"Enter fullscreen","aria-pressed":o.fullscreen,disabled:!a,"data-fullscreen":o.fullscreen||void 0,"data-supported":a||void 0,onClick(){o.toggleFullscreen()}},n);return l?l(p,s):ln("button",{...p,children:u})});import*as pr from"react";import{jsx as un}from"react/jsx-runtime";var fr=pr.forwardRef(function(e,r){let{render:l,...u}=e,n=P("MuteButton"),o={muted:n.muted,volume:n.volume},a=n.volume,t=n.muted,s=a===0||t,p=a>0&&!t,i=!t&&a>0&&a<.5,f=!t&&a>=.5,b=E({ref:r,type:"button","aria-label":n.muted?"Unmute":"Mute","aria-pressed":n.muted,"data-muted":t||void 0,"data-volume-off":s||void 0,"data-volume-on":p||void 0,"data-volume-low":i||void 0,"data-volume-high":f||void 0,onClick(){n.toggleMute()}},u);return l?l(b,o):un("button",{...b})});var Fe=(i=>(i.open="data-open",i.closed="data-closed",i.playing="data-playing",i.paused="data-paused",i.ended="data-ended",i.waiting="data-waiting",i.seeking="data-seeking",i.fullscreen="data-fullscreen",i.pip="data-pip",i.startingStyle="data-starting-style",i.endingStyle="data-ending-style",i))(Fe||{});import*as Qe from"react";import{jsx as cn}from"react/jsx-runtime";var mr=Qe.forwardRef(function(e,r){let{idleTimeout:l,keepMounted:u=!1,render:n,children:o,...a}=e,t=P("Overlay"),p=(l??t.idleTimeout)===0||!t.idle,{mounted:i,transitionStatus:f,elementRef:b}=Y({open:p,keepMounted:u}),S=Qe.useCallback(x=>{b.current=x,typeof r=="function"?r(x):r&&(r.current=x)},[r,b]),T={playing:t.playing,paused:t.paused,ended:t.ended,waiting:t.waiting,seeking:t.seeking,fullscreen:t.fullscreen,pictureInPicture:t.pictureInPicture,open:p},y=E({ref:S,onClick(){t.toggle()},"data-playing":t.playing||void 0,"data-paused":t.paused||void 0,"data-ended":t.ended||void 0,"data-waiting":t.waiting||void 0,"data-seeking":t.seeking||void 0,"data-fullscreen":t.fullscreen||void 0,"data-pip":t.pictureInPicture||void 0,"data-open":p||void 0,"data-closed":!p||void 0,"data-starting-style":f==="starting"||void 0,"data-ending-style":f==="ending"||void 0},a);return i?n?n(y,T):cn("div",{...y,...a,children:o}):null});import*as ce from"react";import{jsx as dn}from"react/jsx-runtime";var Pr=ce.forwardRef(function(e,r){let{render:l,...u}=e,n=P("PictureInPictureButton"),[o,a]=ce.useState(!1);ce.useEffect(()=>{a("pictureInPictureEnabled"in document&&document.pictureInPictureEnabled)},[]);let t={pictureInPicture:n.pictureInPicture,supported:o},s=E({ref:r,type:"button","aria-label":n.pictureInPicture?"Exit picture-in-picture":"Enter picture-in-picture","aria-pressed":n.pictureInPicture,disabled:!o,"data-pip":n.pictureInPicture||void 0,"data-supported":o||void 0,onClick(){n.togglePictureInPicture()}},u);return l?l(s,t):dn("button",{...s})});import*as yr from"react";import{jsx as pn}from"react/jsx-runtime";var Rr=yr.forwardRef(function(e,r){let{render:l,children:u,...n}=e,o=P("PlayButton"),a={playing:o.playing,paused:o.paused,ended:o.ended,waiting:o.waiting},t=E({ref:r,type:"button","aria-label":o.playing?"Pause":"Play","data-playing":o.playing||void 0,"data-paused":o.paused||void 0,"data-ended":o.ended||void 0,"data-waiting":o.waiting||void 0,onClick(){o.toggle()}},n);return l?l(t,a):pn("button",{...t,children:u})});import*as Sr from"react";import{jsx as mn}from"react/jsx-runtime";var fn=[.25,.5,.75,1,1.25,1.5,1.75,2],br=Sr.forwardRef(function(e,r){let{rates:l=fn,render:u,children:n,...o}=e,a=P("PlaybackRateButton"),t={playbackRate:a.playbackRate,rates:l},s=E({ref:r,type:"button","aria-label":`Playback speed: ${a.playbackRate}x`,"data-rate":a.playbackRate,onClick(){let p=l.indexOf(a.playbackRate),i=l[(p+1)%l.length]??l[0]??a.playbackRate;a.setPlaybackRate(i)}},o);return u?u(s,t):mn("button",{...s,children:n??`${a.playbackRate}x`})});import*as lt from"react";import{jsx as st}from"react/jsx-runtime";var Pn=[.25,.5,.75,1,1.25,1.5,1.75,2],kr=lt.forwardRef(function(e,r){let{rates:l=Pn,render:u,children:n,...o}=e,a=P("PlaybackRateMenu"),t={playbackRate:a.playbackRate,rates:l},s={ref:r,role:"menu","aria-label":"Playback speed","data-rate":a.playbackRate};return u?u(s,t):st("div",{...s,...o,children:n??l.map(p=>st(ut,{rate:p},p))})}),ut=lt.forwardRef(function(e,r){let{rate:l,children:u,...n}=e,o=P("PlaybackRateMenuItem"),a=o.playbackRate===l,t=E({ref:r,type:"button",role:"menuitemradio","aria-checked":a,"data-active":a||void 0,onClick(){o.setPlaybackRate(l)}},n);return st("button",{...t,children:u??`${l}x`})});import*as $e from"react";import{createPortal as yn}from"react-dom";function gr(c){let{children:e,container:r}=c,[l,u]=$e.useState(!1);if($e.useEffect(()=>(u(!0),()=>u(!1)),[]),!l)return null;let n=r??(typeof document<"u"?document.body:null);return n?yn(e,n):null}import*as Ne from"react";import{jsx as Sn}from"react/jsx-runtime";var vr=Ne.forwardRef(function(e,r){let{keepMounted:l=!1,render:u,children:n,...o}=e,a=P("Poster"),t=!a.canPlay,s=a.canPlay,{mounted:p,transitionStatus:i,elementRef:f}=Y({open:t,keepMounted:l}),b=Rn(r,f),S={loading:t,loaded:s,transitionStatus:i},T={ref:b,"aria-hidden":!0,"data-loading":t||void 0,"data-loaded":s||void 0,"data-starting-style":i==="starting"||void 0,"data-ending-style":i==="ending"||void 0};return p?u?u(T,S):Sn("div",{...T,...o,children:n}):null});function Rn(...c){return Ne.useCallback(e=>{for(let r of c)typeof r=="function"?r(e):r!=null&&(r.current=e)},c)}import*as dt from"react";import{jsx as ct}from"react/jsx-runtime";var Tr=dt.forwardRef(function(e,r){let{render:l,children:u,...n}=e,o=P("QualityMenu"),a={qualities:o.qualities,activeQuality:o.activeQuality},t={ref:r,role:"menu","aria-label":"Video quality","data-quality":o.activeQuality?.label??void 0};return l?l(t,a):ct("div",{...t,...n,children:u??o.qualities.map(s=>ct(pt,{quality:s,children:s.label},s.label))})}),pt=dt.forwardRef(function(e,r){let{quality:l,children:u,...n}=e,o=P("QualityMenuItem"),a=o.activeQuality?.label===l.label,t=E({ref:r,type:"button",role:"menuitemradio","aria-checked":a,"data-active":a||void 0,onClick(){o.setQuality(l)}},n);return ct("button",{...t,children:u})});var je=(s=>(s.playing="data-playing",s.paused="data-paused",s.ended="data-ended",s.waiting="data-waiting",s.seeking="data-seeking",s.fullscreen="data-fullscreen",s.pip="data-pip",s.muted="data-muted",s.idle="data-idle",s))(je||{});import*as d from"react";import*as Ue from"react";function bn(c,e){return!(c instanceof HTMLElement)||c instanceof HTMLInputElement&&c.type==="range"&&e===" "?!1:c.tagName==="INPUT"||c.tagName==="TEXTAREA"||c.isContentEditable}function kn(c){return c==="ArrowRight"||c==="ArrowLeft"}function hr(c,e){let r=ie(),l=Ue.useRef(r);l.current=r,Ue.useEffect(()=>{if(e==="none")return;let u=a=>{if(bn(a.target,a.key))return;let t=l.current;switch(a.key){case" ":a.preventDefault(),t.toggle();break;case"f":case"F":a.preventDefault(),t.toggleFullscreen();break;case"ArrowUp":a.preventDefault(),t.setVolume(Math.min(t.volume+.1,1));break;case"ArrowDown":a.preventDefault(),t.setVolume(Math.max(t.volume-.1,0));break;case"ArrowRight":a.preventDefault(),t.beginSeekInteraction(),t.seek(Math.min(t.currentTime+5,t.duration));break;case"ArrowLeft":a.preventDefault(),t.beginSeekInteraction(),t.seek(Math.max(t.currentTime-5,0));break;default:return}t.resetIdle()},n=a=>{kn(a.key)&&l.current.endSeekInteraction()};if(e==="global")return window.addEventListener("keydown",u),window.addEventListener("keyup",n),()=>{window.removeEventListener("keydown",u),window.removeEventListener("keyup",n)};let o=c.current;if(o)return o.addEventListener("keydown",u),o.addEventListener("keyup",n),()=>{o.removeEventListener("keydown",u),o.removeEventListener("keyup",n)}},[e,c])}import{jsx as Ke,jsxs as hn}from"react/jsx-runtime";function _e(c,e,r){let[l,u]=d.useState(e),n=c!==void 0,o=n?c:l,a=d.useCallback(t=>{let s=typeof t=="function"?t(o):t;n||u(s),r?.(s)},[n,o,r]);return[o,a]}function gn({rootRef:c,videoRef:e,actionsRef:r,defaultPlaying:l=!1,autoPlay:u=!1,defaultVolume:n=1,defaultMuted:o=!1,defaultPlaybackRate:a=1,playing:t,onPlayingChange:s,volume:p,onVolumeChange:i,muted:f,onMutedChange:b,playbackRate:S,onPlaybackRateChange:T,currentTime:y,onCurrentTimeChange:x,idleTimeout:v=3e3,preventIdleWhenPaused:k=!1,idle:L,onIdleChange:M,onEnded:w,onWaiting:H,onSeeking:Q,onSeeked:D,onFullscreenChange:h,onPictureInPictureChange:$,children:U}){let q=d.useRef(1),_=d.useRef(!1),z=d.useRef(!1),Z=d.useRef(!1),[B,I]=d.useState("paused"),[g,A]=d.useState(l?"play":"pause");d.useEffect(()=>{t!==void 0&&(A(t?"play":"pause"),B!=="waiting"&&I(t?"playing":"paused"))},[t,B]);let[W,te]=_e(p,n,i),[J,pe]=_e(f,o,b),[Pt,yt]=_e(S,a,T),[qr,re]=_e(L,!0,M),ne=d.useRef(null),ye=d.useCallback(()=>{ne.current&&(clearTimeout(ne.current),ne.current=null)},[]),Rt=d.useCallback(()=>{v!==0&&(ye(),ne.current=setTimeout(()=>{re(!0)},v))},[v,ye,re]),St=d.useCallback(()=>{re(!1),Rt()},[re,Rt]),bt=d.useCallback(()=>{ye(),re(!0)},[ye,re]);d.useEffect(()=>(v>0&&(ne.current=setTimeout(()=>{re(!0)},v)),()=>{ne.current&&clearTimeout(ne.current)}),[]);let kt=k&&B!=="playing"?!1:qr,se=d.useCallback(()=>{let m=e.current;m&&(m.muted!==J&&(m.muted=J),m.volume!==W&&(m.volume=W))},[J,e,W]),Re=d.useCallback(async()=>{let m=e.current;if(!(!u||!m||Z.current)){Z.current=!0,A("play"),se();try{await m.play(),I("playing"),s?.(!0)}catch{A("pause"),I("paused")}}},[u,s,se,e]);d.useEffect(()=>{if(!u){Z.current=!1;return}Re()},[u,Re]);let[gt,vt]=d.useState(0),[Se,Tt]=d.useState(0),[ht,Xr]=d.useState(null),[be,Yr]=d.useState(null),[xt,Ct]=d.useState(!1),[Mt,le]=d.useState(!1),[ke,Gr]=d.useState(!1),[ge,Et]=d.useState(!1),[Bt,ot]=d.useState([]),[oe,zr]=d.useState(null),[Vt,ve]=d.useState([]),[wt,Wn]=d.useState([]),[Lt,Jr]=d.useState(null);d.useEffect(()=>{y!==void 0&&e.current&&(e.current.currentTime=y)},[y,e]),d.useEffect(()=>{f===void 0&&p===void 0||se()},[f,p,se]),d.useEffect(()=>{let m=()=>{let C=document.fullscreenElement===c.current;Gr(C),h?.(C)};return document.addEventListener("fullscreenchange",m),()=>document.removeEventListener("fullscreenchange",m)},[h,c]),d.useEffect(()=>{let m=e.current;if(!m)return;let C=()=>{Et(!0),$?.(!0)},N=()=>{Et(!1),$?.(!1)};return m.addEventListener("enterpictureinpicture",C),m.addEventListener("leavepictureinpicture",N),()=>{m.removeEventListener("enterpictureinpicture",C),m.removeEventListener("leavepictureinpicture",N)}},[$,e]);let Te=d.useCallback(async()=>{e.current&&(A("play"),await e.current.play(),I("playing"),s?.(!0))},[e,s]),he=d.useCallback(()=>{e.current&&(A("pause"),e.current.pause(),I("paused"),s?.(!1))},[e,s]),xe=d.useCallback(async()=>{B==="playing"?he():await Te()},[B,Te,he]),Ce=d.useCallback(m=>{e.current&&(e.current.currentTime=m,vt(m),x?.(m))},[x,e]),Ht=d.useCallback(()=>{let m=e.current;!m||_.current||(_.current=!0,z.current=g==="play",le(!0),z.current&&!m.paused&&m.pause())},[g,e]),It=d.useCallback(()=>{let m=e.current;if(!m||!_.current)return;let C=z.current&&g==="play";if(_.current=!1,z.current=!1,!C){le(!1);return}m.play().then(()=>{I("playing"),le(!1)}).catch(()=>{I("waiting"),le(!1)})},[g,e]),Me=d.useCallback(m=>{let C=Math.max(0,Math.min(1,m));e.current&&(e.current.volume=C),te(C)},[te,e]),Dt=d.useCallback(()=>{if(!(J||W===0))q.current=W,e.current&&(e.current.muted=!0),pe(!0);else{let C=q.current>0?q.current:1;e.current&&(e.current.volume=C,e.current.muted=!1),te(C),pe(!1)}},[J,W,pe,te,e]),Ee=d.useCallback(async()=>{c.current?.requestFullscreen&&await c.current.requestFullscreen()},[c]),Be=d.useCallback(async()=>{document.exitFullscreen&&await document.exitFullscreen()},[]),Ve=d.useCallback(async()=>{ke?await Be():await Ee()},[ke,Ee,Be]),we=d.useCallback(async()=>{e.current?.requestPictureInPicture&&await e.current.requestPictureInPicture()},[e]),Le=d.useCallback(async()=>{document.pictureInPictureElement&&await document.exitPictureInPicture()},[]),Ot=d.useCallback(async()=>{ge?await Le():await we()},[ge,we,Le]),At=d.useCallback(m=>{e.current&&(e.current.playbackRate=m),yt(m)},[yt,e]),Wt=d.useCallback(m=>{if(e.current){for(let C=0;C<e.current.textTracks.length;C++){let N=e.current.textTracks[C];N&&(N.mode="disabled")}m&&(m.mode="hidden")}zr(m),ve([])},[e]),Ft=d.useCallback(m=>{Jr(m)},[]),Qt=d.useCallback(m=>{ot(C=>C.some(N=>N.id===m.id)?C:[...C,m])},[]),$t=d.useCallback(m=>{ot(C=>C.filter(N=>N.id!==m))},[]),Nt=d.useCallback((m,C)=>{ot(N=>N.map(ae=>ae.id===m?{...ae,textTrack:C}:ae))},[]);d.useEffect(()=>{if(!oe){ve([]);return}let m=()=>{let C=oe.activeCues;if(!C){ve([]);return}let N=[];for(let ae=0;ae<C.length;ae++){let rr=C[ae];rr instanceof VTTCue&&N.push(rr)}ve(N)};return m(),oe.addEventListener("cuechange",m),()=>{oe.removeEventListener("cuechange",m)}},[oe]),d.useImperativeHandle(r,()=>({toggle:xe,seek:Ce,setVolume:Me,toggleFullscreen:Ve}),[xe,Ce,Me,Ve]);let jt=d.useCallback(()=>{if(e.current){let m=e.current.currentTime;vt(m),x?.(m)}},[x,e]),Ut=d.useCallback(()=>{e.current&&Tt(e.current.duration)},[e]),_t=d.useCallback(()=>{e.current&&Xr(e.current.buffered)},[e]),Kt=d.useCallback(()=>{A("play"),I("playing"),s?.(!0)},[s]),qt=d.useCallback(()=>{_.current||B!=="ended"&&(I("paused"),s?.(!1))},[B,s]),Xt=d.useCallback(()=>{A("pause"),I("ended"),s?.(!1),w?.()},[s,w]),Yt=d.useCallback(()=>{_.current||(I("waiting"),H?.())},[H]),Gt=d.useCallback(()=>{if(_.current){Ct(!0);return}if(B==="waiting"){let m=g==="play"?"playing":"paused";I(m),s?.(m==="playing")}Ct(!0)},[B,g,s]),zt=d.useCallback(()=>{le(!0),B==="ended"&&I("paused"),Q?.()},[B,Q]),Jt=d.useCallback(()=>{if(le(!1),e.current){let{currentTime:m,duration:C}=e.current;C>0&&C-m<.01&&I("ended")}D?.()},[D,e]),Zt=d.useCallback(()=>{e.current&&(te(e.current.volume),pe(e.current.muted))},[te,pe,e]),er=d.useCallback(()=>{e.current&&Tt(e.current.duration)},[e]),tr=d.useCallback(()=>{se(),Re()},[Re,se]),Zr=d.useMemo(()=>({playbackStatus:B,playbackIntent:g,playing:B==="playing",paused:B==="paused",ended:B==="ended",waiting:B==="waiting",seeking:Mt,canPlay:xt,currentTime:gt,duration:Se,buffered:ht,hoverTime:be,hoverProgress:be!==null&&Se>0?be/Se*100:null,volume:W,muted:J,fullscreen:ke,pictureInPicture:ge,idle:kt,idleTimeout:v,preventIdleWhenPaused:k,registeredTracks:Bt,activeTextTrack:oe,activeCues:Vt,playbackRate:Pt,qualities:wt,activeQuality:Lt,videoRef:e,rootRef:c,play:Te,pause:he,toggle:xe,seek:Ce,setVolume:Me,toggleMute:Dt,enterFullscreen:Ee,exitFullscreen:Be,toggleFullscreen:Ve,enterPictureInPicture:we,exitPictureInPicture:Le,togglePictureInPicture:Ot,setPlaybackRate:At,setTextTrack:Wt,setQuality:Ft,registerTrack:Qt,unregisterTrack:$t,updateTrackRef:Nt,resetIdle:St,setHoverTime:Yr,beginSeekInteraction:Ht,endSeekInteraction:It,_handlers:{onTimeUpdate:jt,onDurationChange:Ut,onProgress:_t,onPlay:Kt,onPause:qt,onEnded:Xt,onWaiting:Yt,onCanPlay:Gt,onSeeking:zt,onSeeked:Jt,onVolumeChange:Zt,onLoadedMetadata:er,onVideoMount:tr,onRootMouseLeave:bt}}),[B,g,Mt,xt,gt,Se,ht,be,W,J,ke,ge,kt,v,k,Bt,oe,Vt,Pt,wt,Lt,e,c,Te,he,xe,Ce,Me,Dt,Ee,Be,Ve,we,Le,Ot,At,Wt,Ft,Qt,$t,Nt,St,Ht,It,jt,Ut,_t,Kt,qt,Xt,Yt,Gt,zt,Jt,Zt,er,tr,bt]);return Ke(at.Provider,{value:Zr,children:U})}var xr=d.forwardRef(function(e,r){let{actionsRef:l,keyboardShortcuts:u="focused",defaultPlaying:n,autoPlay:o,defaultVolume:a,defaultMuted:t,defaultPlaybackRate:s,playing:p,onPlayingChange:i,volume:f,onVolumeChange:b,muted:S,onMutedChange:T,playbackRate:y,onPlaybackRateChange:x,currentTime:v,onCurrentTimeChange:k,idleTimeout:L,preventIdleWhenPaused:M,hideCursorWhenIdle:w="fullscreen",idle:H,onIdleChange:Q,onEnded:D,onWaiting:h,onSeeking:$,onSeeked:U,onFullscreenChange:q,onPictureInPictureChange:_,children:z,...Z}=e,B=d.useRef(null),I=d.useRef(null);return Ke(gn,{actionsRef:l,defaultPlaying:n,autoPlay:o,defaultVolume:a,defaultMuted:t,defaultPlaybackRate:s,playing:p,onPlayingChange:i,volume:f,onVolumeChange:b,muted:S,onMutedChange:T,playbackRate:y,onPlaybackRateChange:x,currentTime:v,onCurrentTimeChange:k,idleTimeout:L,preventIdleWhenPaused:M,idle:H,onIdleChange:Q,onEnded:D,onWaiting:h,onSeeking:$,onSeeked:U,onFullscreenChange:q,onPictureInPictureChange:_,rootRef:B,videoRef:I,children:Ke(vn,{ref:r,rootRef:B,keyboardShortcuts:u,hideCursorWhenIdle:w,...Z,children:z})})}),vn=d.forwardRef(function({rootRef:e,keyboardShortcuts:r,hideCursorWhenIdle:l,children:u,className:n,style:o,...a},t){let s=ie(),p=Tn(t,e),i=d.useRef(null);hr(e,r);let f=d.useCallback(w=>{let{clientX:H,clientY:Q}=w,D=i.current;D&&D.x===H&&D.y===Q||(i.current={x:H,y:Q},s.resetIdle())},[s]),b=d.useCallback(w=>{let{clientX:H,clientY:Q}=w,D=i.current;D&&D.x===H&&D.y===Q||(i.current={x:H,y:Q},s.resetIdle())},[s]),S=d.useCallback(()=>{s._handlers.onRootMouseLeave()},[s._handlers]),T=d.useCallback(()=>{s.resetIdle()},[s]),y=d.useCallback(()=>{s.resetIdle()},[s]),x=d.useCallback(w=>{w.key==="Tab"&&s.resetIdle()},[s]),v=E({onMouseMove:f,onMouseEnter:b,onMouseLeave:S,onClick:T,onFocus:y,onKeyDown:x},a),k={"data-playing":s.playing||void 0,"data-paused":s.paused||void 0,"data-ended":s.ended||void 0,"data-waiting":s.waiting||void 0,"data-seeking":s.seeking||void 0,"data-fullscreen":s.fullscreen||void 0,"data-pip":s.pictureInPicture||void 0,"data-muted":s.muted||void 0,"data-idle":s.idle||void 0},L=l!==!1&&s.idle&&(l==="always"||l==="fullscreen"&&s.fullscreen),M=d.useId();return hn("div",{...v,ref:p,tabIndex:r==="focused"?0:void 0,className:n,style:o,"data-video-player-scope":M,...k,children:[L&&Ke("style",{children:`[data-video-player-scope="${M}"], [data-video-player-scope="${M}"] * { cursor: none !important; }`}),u]})});function Tn(...c){return d.useCallback(e=>{for(let r of c)typeof r=="function"?r(e):r!=null&&(r.current=e)},c)}var qe=(o=>(o.progress="--seek-progress",o.buffered="--seek-buffered",o.currentTime="--seek-current-time",o.duration="--seek-duration",o.hoverProgress="--seek-hover-progress",o.hoverTime="--seek-hover-time",o))(qe||{});var Xe=(u=>(u.seeking="data-seeking",u.hovering="data-hovering",u.pressing="data-pressing",u.dragging="data-dragging",u))(Xe||{});import{Slider as j}from"@base-ui/react/slider";import{autoUpdate as xn,offset as Cn,shift as Mn,useFloating as En}from"@floating-ui/react";import*as R from"react";import*as Mr from"react-dom";var Ye=(u=>(u.open="data-open",u.closed="data-closed",u.startingStyle="data-starting-style",u.endingStyle="data-ending-style",u))(Ye||{});import{jsx as V,jsxs as Bn}from"react/jsx-runtime";var ft=R.createContext(null);function Er(c){let e=R.useContext(ft);if(!e)throw new Error(`${c} must be used within SeekSlider`);return e}function Cr(c){return c==="ArrowRight"||c==="ArrowLeft"}var Br=R.forwardRef(function(e,r){let{render:l,children:u,onPointerMove:n,onPointerLeave:o,onPointerDown:a,onKeyUp:t,onValueCommitted:s,...p}=e,i=P("SeekSlider"),f=R.useRef(null),[b,S]=R.useState(null),[T,y]=R.useState(!1),[x,v]=R.useState(!1),k=R.useRef(!1);R.useEffect(()=>{if(!T)return;let g=()=>{y(!1),v(!1),k.current=!1,i.endSeekInteraction()};return window.addEventListener("pointerup",g),()=>window.removeEventListener("pointerup",g)},[T,i]);let L=i.duration>0?i.currentTime/i.duration*100:0,M=R.useCallback((g,A)=>{let W=typeof g=="number"?g:g[0];W!==void 0&&(A.reason==="keyboard"&&i.beginSeekInteraction(),i.seek(W),i.resetIdle(),k.current&&v(!0))},[i]),w=R.useCallback(g=>{if(n?.(g),!f.current||i.duration===0)return;let A=f.current.getBoundingClientRect(),W=g.clientX-A.left,J=Math.max(0,Math.min(1,W/A.width))*i.duration;i.setHoverTime(J)},[n,i]),H=R.useCallback(g=>{o?.(g),i.setHoverTime(null)},[o,i]),Q=R.useCallback(g=>{a?.(g),y(!0),k.current=!0,i.beginSeekInteraction()},[a,i]),D=R.useCallback(g=>{t?.(g),Cr(g.key)&&i.endSeekInteraction()},[t,i]),h=R.useCallback((g,A)=>{let W=typeof g=="number"?g:g[0];W!==void 0&&(s?.(W,A),y(!1),v(!1),k.current=!1,!(A.reason==="keyboard"&&Cr(A.event.key))&&i.endSeekInteraction())},[s,i]),$=R.useMemo(()=>{if(!i.buffered||i.buffered.length===0)return 0;for(let g=0;g<i.buffered.length;g++)if(i.buffered.start(g)<=i.currentTime&&i.currentTime<=i.buffered.end(g))return i.buffered.end(g);return i.buffered.end(0)},[i.buffered,i.currentTime]),U=i.duration>0?$/i.duration*100:0;R.useLayoutEffect(()=>{typeof r=="function"?r(f.current):r&&(r.current=f.current)});let q={currentTime:i.currentTime,duration:i.duration,progress:L,seeking:i.seeking,pressing:T,dragging:x,hoverTime:i.hoverTime,hoverProgress:i.hoverProgress},_=i.hoverProgress!==null,z=i.hoverProgress??0,Z=R.useMemo(()=>({sliderRef:f,previewThumbElement:b,setPreviewThumbElement:S,hoverProgress:z,open:_}),[f,b,S,z,_]),B={position:"relative","--seek-progress":`${L}%`,"--seek-buffered":`${U}%`,"--seek-current-time":i.currentTime,"--seek-duration":i.duration,"--seek-hover-progress":i.hoverProgress!==null?`${i.hoverProgress}%`:void 0,"--seek-hover-time":i.hoverTime??void 0,...p.style},I={"data-seeking":i.seeking||void 0,"data-hovering":i.hoverTime!==null||void 0,"data-pressing":T||void 0,"data-dragging":x||void 0,style:B};return l?V(ft.Provider,{value:Z,children:V(j.Root,{ref:f,min:0,max:i.duration||100,step:.1,value:i.currentTime,onValueChange:M,onValueCommitted:h,onPointerMove:w,onPointerLeave:H,onPointerDown:Q,onKeyUp:D,"aria-label":"Seek",render:g=>l({...g,...I,style:{...g.style,...I.style}},q)})}):V(ft.Provider,{value:Z,children:V(j.Root,{ref:f,min:0,max:i.duration||100,step:.1,value:i.currentTime,onValueChange:M,onValueCommitted:h,onPointerMove:w,onPointerLeave:H,onPointerDown:Q,onKeyUp:D,"aria-label":"Seek",...I,...p,children:u??V(j.Control,{children:Bn(j.Track,{style:{position:"relative"},children:[V("div",{style:{position:"absolute",left:0,top:0,height:"100%",width:`${U}%`}}),V(j.Indicator,{}),V(j.Thumb,{})]})})})})}),Vr=j.Control,wr=R.forwardRef(function(e,r){let{render:l,children:u,style:n,...o}=e,a={},t={position:"relative",...n},s={ref:r,style:t};return l?V(j.Track,{render:p=>l({...p,...s},a)}):V(j.Track,{ref:r,style:t,...o,children:u})}),Lr=R.forwardRef(function(e,r){let{render:l,children:u,style:n,...o}=e,a=P("SeekSliderProgress"),s={progress:a.duration>0?a.currentTime/a.duration*100:0},p={height:"100%",...n},i={ref:r,style:p};return l?V(j.Indicator,{render:f=>l({...f,...i,style:{...f.style,...p}},s)}):V(j.Indicator,{ref:r,style:p,...o,children:u})}),Hr=R.forwardRef(function(e,r){let{render:l,children:u,style:n,...o}=e,a={},t={ref:r,style:n??{}};return l?V(j.Thumb,{render:s=>l({...s,...t,style:{...s.style,...n}},a)}):V(j.Thumb,{ref:r,style:n,...o,children:u})}),Ir=R.forwardRef(function(e,r){let{render:l,children:u,...n}=e,o=P("SeekSliderBuffered"),a=R.useMemo(()=>{if(!o.buffered||o.buffered.length===0)return 0;for(let f=0;f<o.buffered.length;f++)if(o.buffered.start(f)<=o.currentTime&&o.currentTime<=o.buffered.end(f))return o.buffered.end(f);return o.buffered.end(0)},[o.buffered,o.currentTime]),t=o.duration>0?a/o.duration*100:0,s={bufferedPercentage:t},p={position:"absolute",left:0,top:0,height:"100%",width:`${t}%`,...n.style},i={ref:r,style:p};return l?l(i,s):V("div",{...i,...n,children:u})}),Dr=R.forwardRef(function(e,r){let{keepMounted:l=!1,render:u,children:n,...o}=e,a=P("SeekSliderPreviewThumb"),t=Er("SeekSliderPreviewThumb"),s=a.hoverProgress!==null,p=R.useRef(0);a.hoverProgress!==null&&(p.current=a.hoverProgress);let i=a.hoverProgress??p.current,{mounted:f,transitionStatus:b,elementRef:S}=Y({open:s,keepMounted:l}),T=R.useCallback(k=>{S.current=k,t.setPreviewThumbElement(k),typeof r=="function"?r(k):r&&(r.current=k)},[r,S,t]),y={open:s,transitionStatus:b,hoverProgress:i},x={position:"absolute",left:`${i}%`,transform:"translateX(-50%)",pointerEvents:"none",...o.style},v={ref:T,style:x,"data-open":s||void 0,"data-closed":!s||void 0,"data-starting-style":b==="starting"||void 0,"data-ending-style":b==="ending"||void 0};return f?u?u(v,y):V("span",{...v,...o,children:n}):null}),Or=R.forwardRef(function(e,r){let{render:l,children:u,style:n,...o}=e,a=P("SeekSliderHover"),t=a.hoverProgress!==null,s=a.hoverProgress??0,p={hovering:t,hoverProgress:a.hoverProgress,hoverTime:a.hoverTime},i={position:"absolute",left:0,top:0,height:"100%",width:`${s}%`,pointerEvents:"none",...n},f={ref:r,style:i,"data-hovering":t||void 0};return l?l(f,p):V("div",{...f,...o,children:u})});function Ge({children:c,container:e}){let r=P("SeekSliderPreviewTooltipPortal"),[l,u]=R.useState(!1);if(R.useEffect(()=>{u(!0)},[]),!l)return null;let n=e??r.rootRef.current??document.body;return Mr.createPortal(c,n)}var ze=R.forwardRef(function(e,r){let{sideOffset:l=8,collisionPadding:u=0,collisionBoundary:n,keepMounted:o=!1,children:a,style:t,...s}=e,p=Er("SeekSliderPreviewTooltipPositioner"),{previewThumbElement:i,open:f,hoverProgress:b}=p,[S,T]=R.useState(null),{refs:y,floatingStyles:x,update:v}=En({placement:"top",middleware:[Cn(l),Mn({boundary:n,padding:u})]});R.useLayoutEffect(()=>{i&&y.setReference(i)},[i,y]),R.useEffect(()=>{if(f&&i&&S)return xn(i,S,v)},[f,i,S,v]),R.useLayoutEffect(()=>{f&&i&&S&&v()},[b,f,i,S,v]);let k=R.useCallback(M=>{y.setFloating(M),T(M),typeof r=="function"?r(M):r&&(r.current=M)},[y,r]);return(o||f)&&!!i?V("div",{ref:k,style:{...x,...t},"data-seek-slider-preview-tooltip-positioner":!0,"data-open":f||void 0,"data-closed":!f||void 0,...s,children:a}):null}),Je=R.forwardRef(function(e,r){let{children:l,...u}=e;return V("div",{ref:r,"data-seek-slider-preview-tooltip-popup":!0,...u,children:l})});function me({sideOffset:c,collisionPadding:e,collisionBoundary:r,keepMounted:l,container:u,children:n,...o}){return V(Ge,{container:u,children:V(ze,{sideOffset:c,collisionPadding:e,collisionBoundary:r,keepMounted:l,children:V(Je,{...o,children:n})})})}me.Portal=Ge;me.Positioner=ze;me.Popup=Je;var Ze=(l=>(l.loading="data-loading",l.ready="data-ready",l.error="data-error",l))(Ze||{});import*as F from"react";import{jsx as Vn}from"react/jsx-runtime";var Ar=F.forwardRef(function(e,r){let{time:l,crossOrigin:u="anonymous",render:n,children:o,width:a,height:t,...s}=e,p=P("Thumbnail"),i=F.useRef(null),f=F.useRef(null),b=F.useRef(null),[S,T]=F.useState("idle"),[y,x]=F.useState({width:160,height:90}),v=l!==void 0?l:p.hoverTime,k=F.useMemo(()=>{let h=p.videoRef.current;return h?h.currentSrc||h.src:null},[p.videoRef]);F.useEffect(()=>{if(!k)return;let h=document.createElement("video");h.src=k,h.crossOrigin=u,h.preload="metadata",h.muted=!0,h.playsInline=!0;let $=()=>{x({width:h.videoWidth,height:h.videoHeight})},U=()=>{T("error")};return h.addEventListener("loadedmetadata",$),h.addEventListener("error",U),f.current=h,()=>{h.removeEventListener("loadedmetadata",$),h.removeEventListener("error",U),h.src="",f.current=null}},[k,u]),F.useEffect(()=>{let h=f.current,$=i.current;if(!h||!$||v===null||v===void 0||b.current!==null&&Math.abs(b.current-v)<.1)return;T("loading");let U=()=>{let q=$.getContext("2d");if(q)try{q.drawImage(h,0,0,$.width,$.height),b.current=v,T("ready")}catch{T("error")}};return h.addEventListener("seeked",U,{once:!0}),h.currentTime=v,()=>{h.removeEventListener("seeked",U)}},[v]);let L=F.useCallback(h=>{i.current=h,typeof r=="function"?r(h):r&&(r.current=h)},[r]),M=y.width/y.height,w=a??160,H=t??Math.round(w/M);typeof w=="string"&&(w=160),typeof H=="string"&&(H=90);let Q={loading:S==="loading",ready:S==="ready",error:S==="error",time:v,videoWidth:y.width,videoHeight:y.height},D={ref:L,width:w,height:H,"data-loading":S==="loading"||void 0,"data-ready":S==="ready"||void 0,"data-error":S==="error"||void 0};return n?n(D,Q):Vn("canvas",{...D,...s,children:o})});var et=(e=>(e.hovering="data-hovering",e))(et||{});import*as tt from"react";import{Fragment as Hn,jsx as mt,jsxs as In}from"react/jsx-runtime";var Wr=tt.forwardRef(function(e,r){let{format:l="current / duration",fixedWidth:u=!0,align:n="left",render:o,...a}=e,t=P("TimeDisplay"),s=tt.useRef(0);t.hoverTime!==null&&(s.current=t.hoverTime);let p=t.duration-t.currentTime,i=Pe(t.currentTime),f=Pe(t.duration),b=Pe(p),S=t.hoverTime!==null?Pe(t.hoverTime):Pe(s.current),T={currentTime:t.currentTime,duration:t.duration,remaining:p,hoverTime:t.hoverTime,hovering:t.hoverTime!==null,formattedCurrent:i,formattedDuration:f,formattedRemaining:b,formattedHover:S},y=()=>{switch(l){case"current":return i;case"duration":return f;case"remaining":return`-${b}`;case"current / duration":return`${i} / ${f}`;case"current / remaining":return`${i} / -${b}`;case"hover":return S;default:return`${i} / ${f}`}},x=()=>{let k=Ln(t.duration);switch(l){case"current":case"duration":case"hover":return k;case"remaining":return`-${k}`;case"current / duration":return`${k} / ${k}`;case"current / remaining":return`${k} / -${k}`;default:return`${k} / ${k}`}},v={ref:r,style:{position:u?"relative":void 0,userSelect:"none",fontVariantNumeric:"tabular-nums",...a.style},"data-hovering":T.hovering||void 0};return o?o(v,T):mt("span",{ref:r,"data-hovering":T.hovering||void 0,...a,style:{position:u?"relative":void 0,userSelect:"none",fontVariantNumeric:"tabular-nums",...a.style},children:u?In(Hn,{children:[mt("span",{"aria-hidden":!0,style:{visibility:"hidden"},children:x()}),mt("span",{style:wn(n),children:y()})]}):y()})});function wn(c){let e={position:"absolute"};switch(c){case"left":return{...e,left:0};case"right":return{...e,right:0};case"center":return{...e,left:"50%",transform:"translateX(-50%)"}}}function Pe(c){if(!Number.isFinite(c)||Number.isNaN(c))return"0:00";let e=Math.floor(c/3600),r=Math.floor(c%3600/60),l=Math.floor(c%60);return e>0?`${e}:${r.toString().padStart(2,"0")}:${l.toString().padStart(2,"0")}`:`${r}:${l.toString().padStart(2,"0")}`}function Ln(c){if(!Number.isFinite(c)||Number.isNaN(c)||c<=0)return"0:00";let e=Math.floor(c/3600),r=Math.floor(c%3600/60);if(e>0){let u=String(e).length;return`${"0".repeat(u)}:00:00`}let l=String(r).length;return`${"0".repeat(l)}:00`}import*as K from"react";import{jsx as Dn}from"react/jsx-runtime";var Fr=K.forwardRef(function(e,r){let{kind:l="captions",src:u,label:n,srcLang:o,default:a,...t}=e,{registerTrack:s,unregisterTrack:p,updateTrackRef:i,setTextTrack:f}=P("Track"),b=K.useRef(null),S=K.useId(),T=K.useCallback(y=>{typeof r=="function"?r(y):r&&(r.current=y),b.current=y},[r]);return K.useEffect(()=>(s({id:S,kind:l,label:n,srcLang:o,src:u,textTrack:null}),()=>{p(S)}),[S,l,n,o,u,s,p]),K.useEffect(()=>{let y=b.current;if(!y)return;let x=()=>{y.track&&(y.track.mode="disabled",i(S,y.track),a&&f(y.track))};return y.track&&x(),y.addEventListener("load",x),()=>{y.removeEventListener("load",x)}},[S,a,i,f]),Dn("track",{ref:T,kind:l,src:u,label:n,srcLang:o,default:a,...t})});import*as de from"react";import{jsx as On}from"react/jsx-runtime";var Qr=de.forwardRef(function(e,r){let{toggleOnClick:l=!0,...u}=e,n=P("Video"),o=de.useRef(!1),a=de.useCallback(p=>{typeof r=="function"?r(p):r&&(r.current=p),n.videoRef.current=p,p&&!o.current&&(o.current=!0,n._handlers.onVideoMount(),p.readyState>=1&&p.duration&&(n._handlers.onLoadedMetadata(),n._handlers.onDurationChange()),p.readyState>=3&&n._handlers.onCanPlay())},[r,n.videoRef,n._handlers]),t={"data-playing":n.playing||void 0,"data-paused":n.paused||void 0,"data-ended":n.ended||void 0,"data-waiting":n.waiting||void 0,"data-seeking":n.seeking||void 0},s=E({ref:a,preload:"metadata",...t,onClick(){l&&n.toggle()},onTimeUpdate:n._handlers.onTimeUpdate,onDurationChange:n._handlers.onDurationChange,onProgress:n._handlers.onProgress,onPlay:n._handlers.onPlay,onPause:n._handlers.onPause,onEnded:n._handlers.onEnded,onWaiting:n._handlers.onWaiting,onCanPlay:n._handlers.onCanPlay,onSeeking:n._handlers.onSeeking,onSeeked:n._handlers.onSeeked,onVolumeChange:n._handlers.onVolumeChange,onLoadedMetadata:n._handlers.onLoadedMetadata},u);return On("video",{...s})});var rt=(r=>(r.volume="--volume",r.volumePercentage="--volume-percentage",r))(rt||{});var nt=(u=>(u.muted="data-muted",u.volume="data-volume",u.pressing="data-pressing",u.dragging="data-dragging",u))(nt||{});import{Slider as G}from"@base-ui/react/slider";import*as O from"react";import{jsx as ee,jsxs as An}from"react/jsx-runtime";var $r=O.forwardRef(function(e,r){let{render:l,children:u,onPointerDown:n,...o}=e,a=P("VolumeSlider"),t=O.useRef(null),[s,p]=O.useState(!1),[i,f]=O.useState(!1),b=O.useRef(!1);O.useEffect(()=>{if(!s)return;let M=()=>{p(!1),f(!1),b.current=!1};return window.addEventListener("pointerup",M),()=>window.removeEventListener("pointerup",M)},[s]),O.useLayoutEffect(()=>{typeof r=="function"?r(t.current):r&&(r.current=t.current)});let S=a.volume*100,T={volume:a.volume,muted:a.muted,percentage:S,pressing:s,dragging:i},y=O.useCallback(M=>{let w=typeof M=="number"?M:M[0];if(w!==void 0){if(a.muted){let H=a.videoRef.current;H&&(H.muted=!1)}a.setVolume(w),a.resetIdle(),b.current&&f(!0)}},[a]),x=O.useCallback(M=>{n?.(M),p(!0),b.current=!0},[n]),v={"data-muted":a.muted||void 0,"data-volume":a.volume,"data-pressing":s||void 0,"data-dragging":i||void 0},k={position:"relative","--volume":a.volume,"--volume-percentage":`${S}%`,...o.style},L={"data-muted":a.muted||void 0,"data-volume":a.volume,"data-pressing":s||void 0,"data-dragging":i||void 0,style:k};return l?ee(G.Root,{ref:t,min:0,max:1,step:.01,value:a.muted?0:a.volume,onValueChange:y,onPointerDown:x,"aria-label":"Volume",render:M=>l({...M,...L},T)}):ee(G.Root,{ref:t,min:0,max:1,step:.01,value:a.muted?0:a.volume,onValueChange:y,onPointerDown:x,"aria-label":"Volume",...v,...o,style:k,children:u??ee(G.Control,{children:An(G.Track,{children:[ee(G.Indicator,{}),ee(G.Thumb,{})]})})})}),Nr=G.Control,jr=O.forwardRef(function(e,r){let{style:l,...u}=e,n={position:"relative",...l};return ee(G.Track,{ref:r,style:n,...u})}),Ur=O.forwardRef(function(e,r){return ee(G.Indicator,{ref:r,...e})}),_r=O.forwardRef(function(e,r){return ee(G.Thumb,{ref:r,...e})});export{Kr as VideoPlayer,ie as useVideoPlayer};
|
|
1
|
+
import{a as E}from"../chunk-IT372NHF.js";import{b as ce,c as ie}from"../chunk-MPPIEWSL.js";import{a as rn}from"../chunk-4C666HHU.js";import*as De from"react";var st=De.createContext(null);function P(c){let e=De.useContext(st);if(!e)throw new Error(`<VideoPlayer.${c}> must be used within <VideoPlayer.Root>`);return e}function se(){return P("useVideoPlayer")}var Xr={};rn(Xr,{BufferedIndicator:()=>ar,Captions:()=>lr,CaptionsButton:()=>cr,CaptionsDataAttributes:()=>Ae,CaptionsMenu:()=>dr,CaptionsMenuItem:()=>Fe,Controls:()=>pr,ControlsDataAttributes:()=>Qe,FullscreenButton:()=>fr,MuteButton:()=>Pr,Overlay:()=>yr,OverlayDataAttributes:()=>$e,PictureInPictureButton:()=>Rr,PlayButton:()=>br,PlaybackRateButton:()=>gr,PlaybackRateMenu:()=>vr,PlaybackRateMenuItem:()=>dt,Portal:()=>Tr,Poster:()=>hr,QualityMenu:()=>xr,QualityMenuItem:()=>mt,Root:()=>Mr,RootDataAttributes:()=>_e,SeekSlider:()=>wr,SeekSliderBuffered:()=>Or,SeekSliderControl:()=>Lr,SeekSliderCssVars:()=>Ye,SeekSliderDataAttributes:()=>Ge,SeekSliderHover:()=>Wr,SeekSliderPreviewThumb:()=>Ar,SeekSliderPreviewThumbDataAttributes:()=>ze,SeekSliderPreviewTooltip:()=>ye,SeekSliderPreviewTooltipPopup:()=>et,SeekSliderPreviewTooltipPortal:()=>Je,SeekSliderPreviewTooltipPositioner:()=>Ze,SeekSliderProgress:()=>Ir,SeekSliderThumb:()=>Dr,SeekSliderTrack:()=>Hr,Thumbnail:()=>Fr,ThumbnailDataAttributes:()=>tt,TimeDisplay:()=>Qr,TimeDisplayDataAttributes:()=>rt,Track:()=>$r,Video:()=>Nr,VolumeSlider:()=>jr,VolumeSliderControl:()=>Ur,VolumeSliderCssVars:()=>ot,VolumeSliderDataAttributes:()=>at,VolumeSliderRange:()=>Kr,VolumeSliderThumb:()=>qr,VolumeSliderTrack:()=>_r,useTransitionStatus:()=>Y,useVideoPlayer:()=>se});import*as Oe from"react";import{jsx as nn}from"react/jsx-runtime";var ar=Oe.forwardRef(function(e,r){let{render:l,...u}=e,n=P("BufferedIndicator"),o=Oe.useMemo(()=>{if(!n.buffered||n.buffered.length===0)return 0;for(let a=0;a<n.buffered.length;a++)if(n.buffered.start(a)<=n.currentTime&&n.currentTime<=n.buffered.end(a))return n.buffered.end(a);return n.buffered.end(0)},[n.buffered,n.currentTime]),i=n.duration>0?o/n.duration*100:0,t={buffered:n.buffered,duration:n.duration,bufferedPercentage:i,bufferedEnd:o},s={"--buffered-percentage":`${i}%`,"--buffered-end":o,...u.style},p={ref:r,style:s,"aria-hidden":!0};return l?l(p,t):nn("div",{ref:r,"aria-hidden":"true",...u,style:s})});var Ae=(e=>(e.active="data-active",e))(Ae||{});import*as sr from"react";import{jsx as ir}from"react/jsx-runtime";var lr=sr.forwardRef(function(e,r){let{render:l,children:u,...n}=e,i=P("Captions").activeCues,t=i.map(f=>f.text).join(`
|
|
2
|
+
`),s=i.length>0,p={active:s,cueText:t,cues:i},a={ref:r,"aria-live":"polite","aria-atomic":!0,role:"status",style:{pointerEvents:"none"},"data-active":s||void 0};return l?l(a,p):u?ir("div",{...a,...n,children:u}):ir("div",{...a,...n,children:t})});import*as ur from"react";import{jsx as on}from"react/jsx-runtime";var cr=ur.forwardRef(function(e,r){let{render:l,...u}=e,n=P("CaptionsButton"),o=n.registeredTracks.length>0,i=n.activeTextTrack!==null,t={active:i,available:o,trackCount:n.registeredTracks.length},s=E({ref:r,type:"button","aria-label":i?"Disable captions":"Enable captions","aria-pressed":i,disabled:!o,"data-active":i||void 0,"data-available":o||void 0,onClick(){if(i)n.setTextTrack(null);else if(n.registeredTracks.length>0){let p=n.registeredTracks[0];p?.textTrack&&n.setTextTrack(p.textTrack)}}},u);return l?l(s,t):on("button",{...s})});import*as lt from"react";import{Fragment as an,jsx as We,jsxs as sn}from"react/jsx-runtime";var dr=lt.forwardRef(function(e,r){let{render:l,children:u,...n}=e,o=P("CaptionsMenu"),i={registeredTracks:o.registeredTracks,activeTextTrack:o.activeTextTrack},t={ref:r,role:"menu","aria-label":"Captions","data-active":o.activeTextTrack!==null||void 0};return l?l(t,i):We("div",{...t,...n,children:u??sn(an,{children:[We(Fe,{track:null,children:"Off"}),o.registeredTracks.map(s=>We(Fe,{track:s.textTrack,children:s.label},s.id))]})})}),Fe=lt.forwardRef(function(e,r){let{track:l,children:u,...n}=e,o=P("CaptionsMenuItem"),i=o.activeTextTrack===l,t=E({ref:r,type:"button",role:"menuitemradio","aria-checked":i,"data-active":i||void 0,onClick(){o.setTextTrack(l)}},n);return We("button",{...t,children:u})});var Qe=(t=>(t.open="data-open",t.closed="data-closed",t.idle="data-idle",t.playing="data-playing",t.paused="data-paused",t.ended="data-ended",t.startingStyle="data-starting-style",t.endingStyle="data-ending-style",t))(Qe||{});import*as Pe from"react";import*as X from"react";function ln(c){let e=[...c.getAnimations(),...Array.from(c.querySelectorAll("*")).flatMap(r=>r.getAnimations())];return e.length===0?Promise.resolve():Promise.all(e.map(r=>r.finished)).then(()=>{}).catch(()=>{})}function Y(c){let{open:e,keepMounted:r=!1}=c,[l,u]=X.useState(e||r),[n,o]=X.useState(e?"starting":void 0),i=X.useRef(null),t=X.useRef(!1);return X.useEffect(()=>{if(e){t.current=!1,u(!0),o("starting");let s=requestAnimationFrame(()=>{requestAnimationFrame(()=>{o(void 0)})});return()=>cancelAnimationFrame(s)}},[e]),X.useEffect(()=>{if(!e&&l&&!t.current){o("ending");let s=i.current;if(!s){o(void 0),r||u(!1);return}t.current=!0;let p=requestAnimationFrame(()=>{requestAnimationFrame(()=>{ln(s).then(()=>{t.current&&(t.current=!1,o(void 0),r||u(!1))})})});return()=>{cancelAnimationFrame(p)}}},[e,l,r]),X.useEffect(()=>{r&&!l&&!e&&u(!0)},[r,l,e]),{mounted:l||r,transitionStatus:n,elementRef:i}}import{jsx as un}from"react/jsx-runtime";var pr=Pe.forwardRef(function(e,r){let{idleTimeout:l,keepMounted:u=!1,render:n,children:o,...i}=e,t=P("Controls"),p=(l??t.idleTimeout)===0||!t.idle,{mounted:a,transitionStatus:f,elementRef:S}=Y({open:p,keepMounted:u}),b=Pe.useCallback(M=>{S.current=M,typeof r=="function"?r(M):r&&(r.current=M)},[r,S]),{onClick:T,...y}=i,x=Pe.useCallback(M=>{M.stopPropagation(),T?.(M)},[T]),g={open:p,idle:t.idle,playing:t.playing,paused:t.paused,ended:t.ended},v={ref:b,onClick:x,"data-open":p||void 0,"data-closed":!p||void 0,"data-idle":t.idle||void 0,"data-playing":t.playing||void 0,"data-paused":t.paused||void 0,"data-ended":t.ended||void 0,"data-starting-style":f==="starting"||void 0,"data-ending-style":f==="ending"||void 0};return a?n?n(v,g):un("div",{...v,...y,children:o}):null});import*as de from"react";import{jsx as cn}from"react/jsx-runtime";var fr=de.forwardRef(function(e,r){let{render:l,children:u,...n}=e,o=P("FullscreenButton"),[i,t]=de.useState(!1);de.useEffect(()=>{t("fullscreenEnabled"in document&&document.fullscreenEnabled)},[]);let s={fullscreen:o.fullscreen,supported:i},p=E({ref:r,type:"button","aria-label":o.fullscreen?"Exit fullscreen":"Enter fullscreen","aria-pressed":o.fullscreen,disabled:!i,"data-fullscreen":o.fullscreen||void 0,"data-supported":i||void 0,onClick(){o.toggleFullscreen()}},n);return l?l(p,s):cn("button",{...p,children:u})});import*as mr from"react";import{jsx as dn}from"react/jsx-runtime";var Pr=mr.forwardRef(function(e,r){let{render:l,...u}=e,n=P("MuteButton"),o={muted:n.muted,volume:n.volume},i=n.volume,t=n.muted,s=i===0||t,p=i>0&&!t,a=!t&&i>0&&i<.5,f=!t&&i>=.5,S=E({ref:r,type:"button","aria-label":n.muted?"Unmute":"Mute","aria-pressed":n.muted,"data-muted":t||void 0,"data-volume-off":s||void 0,"data-volume-on":p||void 0,"data-volume-low":a||void 0,"data-volume-high":f||void 0,onClick(){n.toggleMute()}},u);return l?l(S,o):dn("button",{...S})});var $e=(a=>(a.open="data-open",a.closed="data-closed",a.playing="data-playing",a.paused="data-paused",a.ended="data-ended",a.waiting="data-waiting",a.seeking="data-seeking",a.fullscreen="data-fullscreen",a.pip="data-pip",a.startingStyle="data-starting-style",a.endingStyle="data-ending-style",a))($e||{});import*as Ne from"react";import{jsx as pn}from"react/jsx-runtime";var yr=Ne.forwardRef(function(e,r){let{idleTimeout:l,keepMounted:u=!1,render:n,children:o,...i}=e,t=P("Overlay"),p=(l??t.idleTimeout)===0||!t.idle,{mounted:a,transitionStatus:f,elementRef:S}=Y({open:p,keepMounted:u}),b=Ne.useCallback(x=>{S.current=x,typeof r=="function"?r(x):r&&(r.current=x)},[r,S]),T={playing:t.playing,paused:t.paused,ended:t.ended,waiting:t.waiting,seeking:t.seeking,fullscreen:t.fullscreen,pictureInPicture:t.pictureInPicture,open:p},y=E({ref:b,onClick(){t.toggle()},"data-playing":t.playing||void 0,"data-paused":t.paused||void 0,"data-ended":t.ended||void 0,"data-waiting":t.waiting||void 0,"data-seeking":t.seeking||void 0,"data-fullscreen":t.fullscreen||void 0,"data-pip":t.pictureInPicture||void 0,"data-open":p||void 0,"data-closed":!p||void 0,"data-starting-style":f==="starting"||void 0,"data-ending-style":f==="ending"||void 0},i);return a?n?n(y,T):pn("div",{...y,...i,children:o}):null});import*as pe from"react";import{jsx as fn}from"react/jsx-runtime";var Rr=pe.forwardRef(function(e,r){let{render:l,...u}=e,n=P("PictureInPictureButton"),[o,i]=pe.useState(!1);pe.useEffect(()=>{i("pictureInPictureEnabled"in document&&document.pictureInPictureEnabled)},[]);let t={pictureInPicture:n.pictureInPicture,supported:o},s=E({ref:r,type:"button","aria-label":n.pictureInPicture?"Exit picture-in-picture":"Enter picture-in-picture","aria-pressed":n.pictureInPicture,disabled:!o,"data-pip":n.pictureInPicture||void 0,"data-supported":o||void 0,onClick(){n.togglePictureInPicture()}},u);return l?l(s,t):fn("button",{...s})});import*as Sr from"react";import{jsx as mn}from"react/jsx-runtime";var br=Sr.forwardRef(function(e,r){let{render:l,children:u,...n}=e,o=P("PlayButton"),i={playing:o.playing,paused:o.paused,ended:o.ended,waiting:o.waiting},t=E({ref:r,type:"button","aria-label":o.playing?"Pause":"Play","data-playing":o.playing||void 0,"data-paused":o.paused||void 0,"data-ended":o.ended||void 0,"data-waiting":o.waiting||void 0,onClick(){o.toggle()}},n);return l?l(t,i):mn("button",{...t,children:u})});import*as kr from"react";import{jsx as yn}from"react/jsx-runtime";var Pn=[.25,.5,.75,1,1.25,1.5,1.75,2],gr=kr.forwardRef(function(e,r){let{rates:l=Pn,render:u,children:n,...o}=e,i=P("PlaybackRateButton"),t={playbackRate:i.playbackRate,rates:l},s=E({ref:r,type:"button","aria-label":`Playback speed: ${i.playbackRate}x`,"data-rate":i.playbackRate,onClick(){let p=l.indexOf(i.playbackRate),a=l[(p+1)%l.length]??l[0]??i.playbackRate;i.setPlaybackRate(a)}},o);return u?u(s,t):yn("button",{...s,children:n??`${i.playbackRate}x`})});import*as ct from"react";import{jsx as ut}from"react/jsx-runtime";var Rn=[.25,.5,.75,1,1.25,1.5,1.75,2],vr=ct.forwardRef(function(e,r){let{rates:l=Rn,render:u,children:n,...o}=e,i=P("PlaybackRateMenu"),t={playbackRate:i.playbackRate,rates:l},s={ref:r,role:"menu","aria-label":"Playback speed","data-rate":i.playbackRate};return u?u(s,t):ut("div",{...s,...o,children:n??l.map(p=>ut(dt,{rate:p},p))})}),dt=ct.forwardRef(function(e,r){let{rate:l,children:u,...n}=e,o=P("PlaybackRateMenuItem"),i=o.playbackRate===l,t=E({ref:r,type:"button",role:"menuitemradio","aria-checked":i,"data-active":i||void 0,onClick(){o.setPlaybackRate(l)}},n);return ut("button",{...t,children:u??`${l}x`})});import*as je from"react";import{createPortal as Sn}from"react-dom";function Tr(c){let{children:e,container:r}=c,[l,u]=je.useState(!1);if(je.useEffect(()=>(u(!0),()=>u(!1)),[]),!l)return null;let n=r??(typeof document<"u"?document.body:null);return n?Sn(e,n):null}import*as Ue from"react";import{jsx as kn}from"react/jsx-runtime";var hr=Ue.forwardRef(function(e,r){let{keepMounted:l=!1,render:u,children:n,...o}=e,i=P("Poster"),t=!i.canPlay,s=i.canPlay,{mounted:p,transitionStatus:a,elementRef:f}=Y({open:t,keepMounted:l}),S=bn(r,f),b={loading:t,loaded:s,transitionStatus:a},T={ref:S,"aria-hidden":!0,"data-loading":t||void 0,"data-loaded":s||void 0,"data-starting-style":a==="starting"||void 0,"data-ending-style":a==="ending"||void 0};return p?u?u(T,b):kn("div",{...T,...o,children:n}):null});function bn(...c){return Ue.useCallback(e=>{for(let r of c)typeof r=="function"?r(e):r!=null&&(r.current=e)},c)}import*as ft from"react";import{jsx as pt}from"react/jsx-runtime";var xr=ft.forwardRef(function(e,r){let{render:l,children:u,...n}=e,o=P("QualityMenu"),i={qualities:o.qualities,activeQuality:o.activeQuality},t={ref:r,role:"menu","aria-label":"Video quality","data-quality":o.activeQuality?.label??void 0};return l?l(t,i):pt("div",{...t,...n,children:u??o.qualities.map(s=>pt(mt,{quality:s,children:s.label},s.label))})}),mt=ft.forwardRef(function(e,r){let{quality:l,children:u,...n}=e,o=P("QualityMenuItem"),i=o.activeQuality?.label===l.label,t=E({ref:r,type:"button",role:"menuitemradio","aria-checked":i,"data-active":i||void 0,onClick(){o.setQuality(l)}},n);return pt("button",{...t,children:u})});var _e=(s=>(s.playing="data-playing",s.paused="data-paused",s.ended="data-ended",s.waiting="data-waiting",s.seeking="data-seeking",s.fullscreen="data-fullscreen",s.pip="data-pip",s.muted="data-muted",s.idle="data-idle",s))(_e||{});import*as d from"react";import*as Ke from"react";function gn(c,e){return!(c instanceof HTMLElement)||c instanceof HTMLInputElement&&c.type==="range"&&e===" "?!1:c.tagName==="INPUT"||c.tagName==="TEXTAREA"||c.isContentEditable}function vn(c){return c==="ArrowRight"||c==="ArrowLeft"}function Cr(c,e){let r=se(),l=Ke.useRef(r);l.current=r,Ke.useEffect(()=>{if(e==="none")return;let u=i=>{if(gn(i.target,i.key))return;let t=l.current;switch(i.key){case" ":i.preventDefault(),t.toggle();break;case"f":case"F":i.preventDefault(),t.toggleFullscreen();break;case"ArrowUp":i.preventDefault(),t.setVolume(Math.min(t.volume+.1,1));break;case"ArrowDown":i.preventDefault(),t.setVolume(Math.max(t.volume-.1,0));break;case"ArrowRight":i.preventDefault(),t.beginSeekInteraction(),t.seek(Math.min(t.currentTime+5,t.duration));break;case"ArrowLeft":i.preventDefault(),t.beginSeekInteraction(),t.seek(Math.max(t.currentTime-5,0));break;default:return}t.resetIdle()},n=i=>{vn(i.key)&&l.current.endSeekInteraction()};if(e==="global")return window.addEventListener("keydown",u),window.addEventListener("keyup",n),()=>{window.removeEventListener("keydown",u),window.removeEventListener("keyup",n)};let o=c.current;if(o)return o.addEventListener("keydown",u),o.addEventListener("keyup",n),()=>{o.removeEventListener("keydown",u),o.removeEventListener("keyup",n)}},[e,c])}import{jsx as Xe,jsxs as Cn}from"react/jsx-runtime";function qe(c,e,r){let[l,u]=d.useState(e),n=c!==void 0,o=n?c:l,i=d.useCallback(t=>{let s=typeof t=="function"?t(o):t;n||u(s),r?.(s)},[n,o,r]);return[o,i]}function Tn({rootRef:c,videoRef:e,actionsRef:r,defaultPlaying:l=!1,autoPlay:u=!1,defaultVolume:n=1,defaultMuted:o=!1,defaultPlaybackRate:i=1,playing:t,onPlayingChange:s,volume:p,onVolumeChange:a,muted:f,onMutedChange:S,playbackRate:b,onPlaybackRateChange:T,currentTime:y,onCurrentTimeChange:x,idleTimeout:g=3e3,preventIdleWhenPaused:v=!1,idle:M,onIdleChange:w,onEnded:B,onWaiting:W,onSeeking:Q,onSeeked:I,onFullscreenChange:h,onPictureInPictureChange:$,children:U}){let q=d.useRef(1),_=d.useRef(!1),z=d.useRef(!1),Z=d.useRef(!1),[V,H]=d.useState("paused"),[k,D]=d.useState(l?"play":"pause");d.useEffect(()=>{t!==void 0&&(D(t?"play":"pause"),V!=="waiting"&&H(t?"playing":"paused"))},[t,V]);let[O,te]=qe(p,n,a),[J,me]=qe(f,o,S),[Rt,St]=qe(b,i,T),[Yr,re]=qe(M,!0,w),ne=d.useRef(null),Se=d.useCallback(()=>{ne.current&&(clearTimeout(ne.current),ne.current=null)},[]),bt=d.useCallback(()=>{g!==0&&(Se(),ne.current=setTimeout(()=>{re(!0)},g))},[g,Se,re]),kt=d.useCallback(()=>{re(!1),bt()},[re,bt]),gt=d.useCallback(()=>{Se(),re(!0)},[Se,re]);d.useEffect(()=>(g>0&&(ne.current=setTimeout(()=>{re(!0)},g)),()=>{ne.current&&clearTimeout(ne.current)}),[]);let vt=v&&V!=="playing"?!1:Yr,le=d.useCallback(()=>{let m=e.current;m&&(m.muted!==J&&(m.muted=J),m.volume!==O&&(m.volume=O))},[J,e,O]),be=d.useCallback(async()=>{let m=e.current;if(!(!u||!m||Z.current)){Z.current=!0,D("play"),le();try{await m.play(),H("playing"),s?.(!0)}catch{D("pause"),H("paused")}}},[u,s,le,e]);d.useEffect(()=>{if(!u){Z.current=!1;return}be()},[u,be]);let[Tt,ht]=d.useState(0),[ke,xt]=d.useState(0),[Ct,Gr]=d.useState(null),[ge,zr]=d.useState(null),[Mt,Et]=d.useState(!1),[Bt,ue]=d.useState(!1),[ve,Jr]=d.useState(!1),[Te,Vt]=d.useState(!1),[wt,it]=d.useState([]),[oe,Zr]=d.useState(null),[Lt,he]=d.useState([]),[Ht,Qn]=d.useState([]),[It,en]=d.useState(null);d.useEffect(()=>{y!==void 0&&e.current&&(e.current.currentTime=y)},[y,e]),d.useEffect(()=>{f===void 0&&p===void 0||le()},[f,p,le]),d.useEffect(()=>{let m=()=>{let C=document.fullscreenElement===c.current;Jr(C),h?.(C)};return document.addEventListener("fullscreenchange",m),()=>document.removeEventListener("fullscreenchange",m)},[h,c]),d.useEffect(()=>{let m=e.current;if(!m)return;let C=()=>{Vt(!0),$?.(!0)},N=()=>{Vt(!1),$?.(!1)};return m.addEventListener("enterpictureinpicture",C),m.addEventListener("leavepictureinpicture",N),()=>{m.removeEventListener("enterpictureinpicture",C),m.removeEventListener("leavepictureinpicture",N)}},[$,e]);let xe=d.useCallback(async()=>{e.current&&(D("play"),await e.current.play(),H("playing"),s?.(!0))},[e,s]),Ce=d.useCallback(()=>{e.current&&(D("pause"),e.current.pause(),H("paused"),s?.(!1))},[e,s]),Me=d.useCallback(async()=>{V==="playing"?Ce():await xe()},[V,xe,Ce]),Ee=d.useCallback(m=>{e.current&&(e.current.currentTime=m,ht(m),x?.(m))},[x,e]),Dt=d.useCallback(()=>{let m=e.current;!m||_.current||(_.current=!0,z.current=k==="play",ue(!0),z.current&&!m.paused&&m.pause())},[k,e]),Ot=d.useCallback(()=>{let m=e.current;if(!m||!_.current)return;let C=z.current&&k==="play";if(_.current=!1,z.current=!1,!C){ue(!1);return}m.play().then(()=>{H("playing"),ue(!1)}).catch(()=>{H("waiting"),ue(!1)})},[k,e]),Be=d.useCallback(m=>{let C=Math.max(0,Math.min(1,m));e.current&&(e.current.volume=C),te(C)},[te,e]),At=d.useCallback(()=>{if(!(J||O===0))q.current=O,e.current&&(e.current.muted=!0),me(!0);else{let C=q.current>0?q.current:1;e.current&&(e.current.volume=C,e.current.muted=!1),te(C),me(!1)}},[J,O,me,te,e]),Ve=d.useCallback(async()=>{c.current?.requestFullscreen&&await c.current.requestFullscreen()},[c]),we=d.useCallback(async()=>{document.exitFullscreen&&await document.exitFullscreen()},[]),Le=d.useCallback(async()=>{ve?await we():await Ve()},[ve,Ve,we]),He=d.useCallback(async()=>{e.current?.requestPictureInPicture&&await e.current.requestPictureInPicture()},[e]),Ie=d.useCallback(async()=>{document.pictureInPictureElement&&await document.exitPictureInPicture()},[]),Wt=d.useCallback(async()=>{Te?await Ie():await He()},[Te,He,Ie]),Ft=d.useCallback(m=>{e.current&&(e.current.playbackRate=m),St(m)},[St,e]),Qt=d.useCallback(m=>{if(e.current){for(let C=0;C<e.current.textTracks.length;C++){let N=e.current.textTracks[C];N&&(N.mode="disabled")}m&&(m.mode="hidden")}Zr(m),he([])},[e]),$t=d.useCallback(m=>{en(m)},[]),Nt=d.useCallback(m=>{it(C=>C.some(N=>N.id===m.id)?C:[...C,m])},[]),jt=d.useCallback(m=>{it(C=>C.filter(N=>N.id!==m))},[]),Ut=d.useCallback((m,C)=>{it(N=>N.map(ae=>ae.id===m?{...ae,textTrack:C}:ae))},[]);d.useEffect(()=>{if(!oe){he([]);return}let m=()=>{let C=oe.activeCues;if(!C){he([]);return}let N=[];for(let ae=0;ae<C.length;ae++){let or=C[ae];or instanceof VTTCue&&N.push(or)}he(N)};return m(),oe.addEventListener("cuechange",m),()=>{oe.removeEventListener("cuechange",m)}},[oe]),d.useImperativeHandle(r,()=>({toggle:Me,seek:Ee,setVolume:Be,toggleFullscreen:Le}),[Me,Ee,Be,Le]);let _t=d.useCallback(()=>{if(e.current){let m=e.current.currentTime;ht(m),x?.(m)}},[x,e]),Kt=d.useCallback(()=>{e.current&&xt(e.current.duration)},[e]),qt=d.useCallback(()=>{e.current&&Gr(e.current.buffered)},[e]),Xt=d.useCallback(()=>{D("play"),H("playing"),s?.(!0)},[s]),Yt=d.useCallback(()=>{_.current||V!=="ended"&&(H("paused"),s?.(!1))},[V,s]),Gt=d.useCallback(()=>{D("pause"),H("ended"),s?.(!1),B?.()},[s,B]),zt=d.useCallback(()=>{_.current||(H("waiting"),W?.())},[W]),Jt=d.useCallback(()=>{if(_.current){Et(!0);return}if(V==="waiting"){let m=k==="play"?"playing":"paused";H(m),s?.(m==="playing")}Et(!0)},[V,k,s]),Zt=d.useCallback(()=>{ue(!0),V==="ended"&&H("paused"),Q?.()},[V,Q]),er=d.useCallback(()=>{if(ue(!1),e.current){let{currentTime:m,duration:C}=e.current;C>0&&C-m<.01&&H("ended")}I?.()},[I,e]),tr=d.useCallback(()=>{e.current&&(te(e.current.volume),me(e.current.muted))},[te,me,e]),rr=d.useCallback(()=>{e.current&&xt(e.current.duration)},[e]),nr=d.useCallback(()=>{le(),be()},[be,le]),tn=d.useMemo(()=>({playbackStatus:V,playbackIntent:k,playing:V==="playing",paused:V==="paused",ended:V==="ended",waiting:V==="waiting",seeking:Bt,canPlay:Mt,currentTime:Tt,duration:ke,buffered:Ct,hoverTime:ge,hoverProgress:ge!==null&&ke>0?ge/ke*100:null,volume:O,muted:J,fullscreen:ve,pictureInPicture:Te,idle:vt,idleTimeout:g,preventIdleWhenPaused:v,registeredTracks:wt,activeTextTrack:oe,activeCues:Lt,playbackRate:Rt,qualities:Ht,activeQuality:It,videoRef:e,rootRef:c,play:xe,pause:Ce,toggle:Me,seek:Ee,setVolume:Be,toggleMute:At,enterFullscreen:Ve,exitFullscreen:we,toggleFullscreen:Le,enterPictureInPicture:He,exitPictureInPicture:Ie,togglePictureInPicture:Wt,setPlaybackRate:Ft,setTextTrack:Qt,setQuality:$t,registerTrack:Nt,unregisterTrack:jt,updateTrackRef:Ut,resetIdle:kt,setHoverTime:zr,beginSeekInteraction:Dt,endSeekInteraction:Ot,_handlers:{onTimeUpdate:_t,onDurationChange:Kt,onProgress:qt,onPlay:Xt,onPause:Yt,onEnded:Gt,onWaiting:zt,onCanPlay:Jt,onSeeking:Zt,onSeeked:er,onVolumeChange:tr,onLoadedMetadata:rr,onVideoMount:nr,onRootMouseLeave:gt}}),[V,k,Bt,Mt,Tt,ke,Ct,ge,O,J,ve,Te,vt,g,v,wt,oe,Lt,Rt,Ht,It,e,c,xe,Ce,Me,Ee,Be,At,Ve,we,Le,He,Ie,Wt,Ft,Qt,$t,Nt,jt,Ut,kt,Dt,Ot,_t,Kt,qt,Xt,Yt,Gt,zt,Jt,Zt,er,tr,rr,nr,gt]);return Xe(st.Provider,{value:tn,children:U})}var Mr=d.forwardRef(function(e,r){let{actionsRef:l,keyboardShortcuts:u="focused",defaultPlaying:n,autoPlay:o,defaultVolume:i,defaultMuted:t,defaultPlaybackRate:s,playing:p,onPlayingChange:a,volume:f,onVolumeChange:S,muted:b,onMutedChange:T,playbackRate:y,onPlaybackRateChange:x,currentTime:g,onCurrentTimeChange:v,idleTimeout:M,preventIdleWhenPaused:w,hideCursorWhenIdle:B="fullscreen",idle:W,onIdleChange:Q,onEnded:I,onWaiting:h,onSeeking:$,onSeeked:U,onFullscreenChange:q,onPictureInPictureChange:_,children:z,...Z}=e,V=d.useRef(null),H=d.useRef(null);return Xe(Tn,{actionsRef:l,defaultPlaying:n,autoPlay:o,defaultVolume:i,defaultMuted:t,defaultPlaybackRate:s,playing:p,onPlayingChange:a,volume:f,onVolumeChange:S,muted:b,onMutedChange:T,playbackRate:y,onPlaybackRateChange:x,currentTime:g,onCurrentTimeChange:v,idleTimeout:M,preventIdleWhenPaused:w,idle:W,onIdleChange:Q,onEnded:I,onWaiting:h,onSeeking:$,onSeeked:U,onFullscreenChange:q,onPictureInPictureChange:_,rootRef:V,videoRef:H,children:Xe(hn,{ref:r,rootRef:V,keyboardShortcuts:u,hideCursorWhenIdle:B,...Z,children:z})})}),hn=d.forwardRef(function({rootRef:e,keyboardShortcuts:r,hideCursorWhenIdle:l,children:u,className:n,style:o,...i},t){let s=se(),p=xn(t,e),a=d.useRef(null);Cr(e,r);let f=d.useCallback(B=>{let{clientX:W,clientY:Q}=B,I=a.current;I&&I.x===W&&I.y===Q||(a.current={x:W,y:Q},s.resetIdle())},[s]),S=d.useCallback(B=>{let{clientX:W,clientY:Q}=B,I=a.current;I&&I.x===W&&I.y===Q||(a.current={x:W,y:Q},s.resetIdle())},[s]),b=d.useCallback(()=>{s._handlers.onRootMouseLeave()},[s._handlers]),T=d.useCallback(()=>{s.resetIdle()},[s]),y=d.useCallback(()=>{s.resetIdle()},[s]),x=d.useCallback(B=>{B.key==="Tab"&&s.resetIdle()},[s]),g=E({onMouseMove:f,onMouseEnter:S,onMouseLeave:b,onClick:T,onFocus:y,onKeyDown:x},i),v={"data-playing":s.playing||void 0,"data-paused":s.paused||void 0,"data-ended":s.ended||void 0,"data-waiting":s.waiting||void 0,"data-seeking":s.seeking||void 0,"data-fullscreen":s.fullscreen||void 0,"data-pip":s.pictureInPicture||void 0,"data-muted":s.muted||void 0,"data-idle":s.idle||void 0},M=l!==!1&&s.idle&&(l==="always"||l==="fullscreen"&&s.fullscreen),w=d.useId();return Cn("div",{...g,ref:p,tabIndex:r==="focused"?0:void 0,className:n,style:o,"data-video-player-scope":w,...v,children:[M&&Xe("style",{children:`[data-video-player-scope="${w}"], [data-video-player-scope="${w}"] * { cursor: none !important; }`}),u]})});function xn(...c){return d.useCallback(e=>{for(let r of c)typeof r=="function"?r(e):r!=null&&(r.current=e)},c)}var Ye=(o=>(o.progress="--seek-progress",o.buffered="--seek-buffered",o.currentTime="--seek-current-time",o.duration="--seek-duration",o.hoverProgress="--seek-hover-progress",o.hoverTime="--seek-hover-time",o))(Ye||{});var Ge=(u=>(u.seeking="data-seeking",u.hovering="data-hovering",u.pressing="data-pressing",u.dragging="data-dragging",u))(Ge||{});import{Slider as j}from"@base-ui/react/slider";import{autoUpdate as Mn,offset as En,shift as Bn,useFloating as Vn}from"@floating-ui/react";import*as R from"react";import*as Br from"react-dom";var ze=(u=>(u.open="data-open",u.closed="data-closed",u.startingStyle="data-starting-style",u.endingStyle="data-ending-style",u))(ze||{});import{jsx as L,jsxs as wn}from"react/jsx-runtime";var Pt=R.createContext(null);function Vr(c){let e=R.useContext(Pt);if(!e)throw new Error(`${c} must be used within SeekSlider`);return e}function Er(c){return c==="ArrowRight"||c==="ArrowLeft"}var wr=R.forwardRef(function(e,r){let{render:l,children:u,onPointerMove:n,onPointerLeave:o,onPointerDown:i,onKeyUp:t,onValueCommitted:s,...p}=e,a=P("SeekSlider"),f=R.useRef(null),[S,b]=R.useState(null),[T,y]=R.useState(!1),[x,g]=R.useState(!1),v=R.useRef(!1);R.useEffect(()=>{if(!T)return;let k=()=>{y(!1),g(!1),v.current=!1,a.endSeekInteraction()};return window.addEventListener("pointerup",k),()=>window.removeEventListener("pointerup",k)},[T,a]);let M=a.duration>0?a.currentTime/a.duration*100:0,w=R.useCallback((k,D)=>{let O=typeof k=="number"?k:k[0];O!==void 0&&(D.reason==="keyboard"&&a.beginSeekInteraction(),a.seek(O),a.resetIdle(),v.current&&g(!0))},[a]),B=R.useCallback(k=>{if(n?.(k),!f.current||a.duration===0)return;let D=f.current.getBoundingClientRect(),O=k.clientX-D.left,J=Math.max(0,Math.min(1,O/D.width))*a.duration;a.setHoverTime(J)},[n,a]),W=R.useCallback(k=>{o?.(k),a.setHoverTime(null)},[o,a]),Q=R.useCallback(k=>{i?.(k),y(!0),v.current=!0,a.beginSeekInteraction()},[i,a]),I=R.useCallback(k=>{t?.(k),Er(k.key)&&a.endSeekInteraction()},[t,a]),h=R.useCallback((k,D)=>{let O=typeof k=="number"?k:k[0];O!==void 0&&(s?.(O,D),y(!1),g(!1),v.current=!1,!(D.reason==="keyboard"&&Er(D.event.key))&&a.endSeekInteraction())},[s,a]),$=R.useMemo(()=>{if(!a.buffered||a.buffered.length===0)return 0;for(let k=0;k<a.buffered.length;k++)if(a.buffered.start(k)<=a.currentTime&&a.currentTime<=a.buffered.end(k))return a.buffered.end(k);return a.buffered.end(0)},[a.buffered,a.currentTime]),U=a.duration>0?$/a.duration*100:0;R.useLayoutEffect(()=>{typeof r=="function"?r(f.current):r&&(r.current=f.current)});let q={currentTime:a.currentTime,duration:a.duration,progress:M,seeking:a.seeking,pressing:T,dragging:x,hoverTime:a.hoverTime,hoverProgress:a.hoverProgress},_=a.hoverProgress!==null,z=a.hoverProgress??0,Z=R.useMemo(()=>({sliderRef:f,previewThumbElement:S,setPreviewThumbElement:b,hoverProgress:z,open:_}),[f,S,b,z,_]),V=ie(p.style,k=>({position:"relative","--seek-progress":`${M}%`,"--seek-buffered":`${U}%`,"--seek-current-time":a.currentTime,"--seek-duration":a.duration,"--seek-hover-progress":a.hoverProgress!==null?`${a.hoverProgress}%`:void 0,"--seek-hover-time":a.hoverTime??void 0,...k})),H={"data-seeking":a.seeking||void 0,"data-hovering":a.hoverTime!==null||void 0,"data-pressing":T||void 0,"data-dragging":x||void 0};return l?L(Pt.Provider,{value:Z,children:L(j.Root,{ref:f,min:0,max:a.duration||100,step:.1,value:a.currentTime,onValueChange:w,onValueCommitted:h,onPointerMove:B,onPointerLeave:W,onPointerDown:Q,onKeyUp:I,"aria-label":"Seek",render:(k,D)=>{let O={...H,style:{...k.style,...ce(V,D)}};return l({...k,...O},q)}})}):L(Pt.Provider,{value:Z,children:L(j.Root,{ref:f,min:0,max:a.duration||100,step:.1,value:a.currentTime,onValueChange:w,onValueCommitted:h,onPointerMove:B,onPointerLeave:W,onPointerDown:Q,onKeyUp:I,"aria-label":"Seek",...H,...p,style:V,children:u??L(j.Control,{children:wn(j.Track,{style:{position:"relative"},children:[L("div",{style:{position:"absolute",left:0,top:0,height:"100%",width:`${U}%`}}),L(j.Indicator,{}),L(j.Thumb,{})]})})})})}),Lr=j.Control,Hr=R.forwardRef(function(e,r){let{render:l,children:u,style:n,...o}=e,i={},t=ie(n,s=>({position:"relative",...s}));return l?L(j.Track,{render:(s,p)=>{let a={ref:r,style:ce(t,p)??{}};return l({...s,...a},i)}}):L(j.Track,{ref:r,style:t,...o,children:u})}),Ir=R.forwardRef(function(e,r){let{render:l,children:u,style:n,...o}=e,i=P("SeekSliderProgress"),s={progress:i.duration>0?i.currentTime/i.duration*100:0},p=ie(n,a=>({height:"100%",...a}));return l?L(j.Indicator,{render:(a,f)=>{let S={ref:r,style:{...a.style,...ce(p,f)}};return l({...a,...S},s)}}):L(j.Indicator,{ref:r,style:p,...o,children:u})}),Dr=R.forwardRef(function(e,r){let{render:l,children:u,style:n,...o}=e,i={},t={ref:r,style:n??{}};return l?L(j.Thumb,{render:s=>l({...s,...t,style:{...s.style,...n}},i)}):L(j.Thumb,{ref:r,style:n,...o,children:u})}),Or=R.forwardRef(function(e,r){let{render:l,children:u,...n}=e,o=P("SeekSliderBuffered"),i=R.useMemo(()=>{if(!o.buffered||o.buffered.length===0)return 0;for(let f=0;f<o.buffered.length;f++)if(o.buffered.start(f)<=o.currentTime&&o.currentTime<=o.buffered.end(f))return o.buffered.end(f);return o.buffered.end(0)},[o.buffered,o.currentTime]),t=o.duration>0?i/o.duration*100:0,s={bufferedPercentage:t},p={position:"absolute",left:0,top:0,height:"100%",width:`${t}%`,...n.style},a={ref:r,style:p};return l?l(a,s):L("div",{...a,...n,children:u})}),Ar=R.forwardRef(function(e,r){let{keepMounted:l=!1,render:u,children:n,...o}=e,i=P("SeekSliderPreviewThumb"),t=Vr("SeekSliderPreviewThumb"),s=i.hoverProgress!==null,p=R.useRef(0);i.hoverProgress!==null&&(p.current=i.hoverProgress);let a=i.hoverProgress??p.current,{mounted:f,transitionStatus:S,elementRef:b}=Y({open:s,keepMounted:l}),T=R.useCallback(v=>{b.current=v,t.setPreviewThumbElement(v),typeof r=="function"?r(v):r&&(r.current=v)},[r,b,t]),y={open:s,transitionStatus:S,hoverProgress:a},x={position:"absolute",left:`${a}%`,transform:"translateX(-50%)",pointerEvents:"none",...o.style},g={ref:T,style:x,"data-open":s||void 0,"data-closed":!s||void 0,"data-starting-style":S==="starting"||void 0,"data-ending-style":S==="ending"||void 0};return f?u?u(g,y):L("span",{...g,...o,children:n}):null}),Wr=R.forwardRef(function(e,r){let{render:l,children:u,style:n,...o}=e,i=P("SeekSliderHover"),t=i.hoverProgress!==null,s=i.hoverProgress??0,p={hovering:t,hoverProgress:i.hoverProgress,hoverTime:i.hoverTime},a={position:"absolute",left:0,top:0,height:"100%",width:`${s}%`,pointerEvents:"none",...n},f={ref:r,style:a,"data-hovering":t||void 0};return l?l(f,p):L("div",{...f,...o,children:u})});function Je({children:c,container:e}){let r=P("SeekSliderPreviewTooltipPortal"),[l,u]=R.useState(!1);if(R.useEffect(()=>{u(!0)},[]),!l)return null;let n=e??r.rootRef.current??document.body;return Br.createPortal(c,n)}var Ze=R.forwardRef(function(e,r){let{sideOffset:l=8,collisionPadding:u=0,collisionBoundary:n,keepMounted:o=!1,children:i,style:t,...s}=e,p=Vr("SeekSliderPreviewTooltipPositioner"),{previewThumbElement:a,open:f,hoverProgress:S}=p,[b,T]=R.useState(null),{refs:y,floatingStyles:x,update:g}=Vn({placement:"top",middleware:[En(l),Bn({boundary:n,padding:u})]});R.useLayoutEffect(()=>{a&&y.setReference(a)},[a,y]),R.useEffect(()=>{if(f&&a&&b)return Mn(a,b,g)},[f,a,b,g]),R.useLayoutEffect(()=>{f&&a&&b&&g()},[S,f,a,b,g]);let v=R.useCallback(w=>{y.setFloating(w),T(w),typeof r=="function"?r(w):r&&(r.current=w)},[y,r]);return(o||f)&&!!a?L("div",{ref:v,style:{...x,...t},"data-seek-slider-preview-tooltip-positioner":!0,"data-open":f||void 0,"data-closed":!f||void 0,...s,children:i}):null}),et=R.forwardRef(function(e,r){let{children:l,...u}=e;return L("div",{ref:r,"data-seek-slider-preview-tooltip-popup":!0,...u,children:l})});function ye({sideOffset:c,collisionPadding:e,collisionBoundary:r,keepMounted:l,container:u,children:n,...o}){return L(Je,{container:u,children:L(Ze,{sideOffset:c,collisionPadding:e,collisionBoundary:r,keepMounted:l,children:L(et,{...o,children:n})})})}ye.Portal=Je;ye.Positioner=Ze;ye.Popup=et;var tt=(l=>(l.loading="data-loading",l.ready="data-ready",l.error="data-error",l))(tt||{});import*as F from"react";import{jsx as Ln}from"react/jsx-runtime";var Fr=F.forwardRef(function(e,r){let{time:l,crossOrigin:u="anonymous",render:n,children:o,width:i,height:t,...s}=e,p=P("Thumbnail"),a=F.useRef(null),f=F.useRef(null),S=F.useRef(null),[b,T]=F.useState("idle"),[y,x]=F.useState({width:160,height:90}),g=l!==void 0?l:p.hoverTime,v=F.useMemo(()=>{let h=p.videoRef.current;return h?h.currentSrc||h.src:null},[p.videoRef]);F.useEffect(()=>{if(!v)return;let h=document.createElement("video");h.src=v,h.crossOrigin=u,h.preload="metadata",h.muted=!0,h.playsInline=!0;let $=()=>{x({width:h.videoWidth,height:h.videoHeight})},U=()=>{T("error")};return h.addEventListener("loadedmetadata",$),h.addEventListener("error",U),f.current=h,()=>{h.removeEventListener("loadedmetadata",$),h.removeEventListener("error",U),h.src="",f.current=null}},[v,u]),F.useEffect(()=>{let h=f.current,$=a.current;if(!h||!$||g===null||g===void 0||S.current!==null&&Math.abs(S.current-g)<.1)return;T("loading");let U=()=>{let q=$.getContext("2d");if(q)try{q.drawImage(h,0,0,$.width,$.height),S.current=g,T("ready")}catch{T("error")}};return h.addEventListener("seeked",U,{once:!0}),h.currentTime=g,()=>{h.removeEventListener("seeked",U)}},[g]);let M=F.useCallback(h=>{a.current=h,typeof r=="function"?r(h):r&&(r.current=h)},[r]),w=y.width/y.height,B=i??160,W=t??Math.round(B/w);typeof B=="string"&&(B=160),typeof W=="string"&&(W=90);let Q={loading:b==="loading",ready:b==="ready",error:b==="error",time:g,videoWidth:y.width,videoHeight:y.height},I={ref:M,width:B,height:W,"data-loading":b==="loading"||void 0,"data-ready":b==="ready"||void 0,"data-error":b==="error"||void 0};return n?n(I,Q):Ln("canvas",{...I,...s,children:o})});var rt=(e=>(e.hovering="data-hovering",e))(rt||{});import*as nt from"react";import{Fragment as Dn,jsx as yt,jsxs as On}from"react/jsx-runtime";var Qr=nt.forwardRef(function(e,r){let{format:l="current / duration",fixedWidth:u=!0,align:n="left",render:o,...i}=e,t=P("TimeDisplay"),s=nt.useRef(0);t.hoverTime!==null&&(s.current=t.hoverTime);let p=t.duration-t.currentTime,a=Re(t.currentTime),f=Re(t.duration),S=Re(p),b=t.hoverTime!==null?Re(t.hoverTime):Re(s.current),T={currentTime:t.currentTime,duration:t.duration,remaining:p,hoverTime:t.hoverTime,hovering:t.hoverTime!==null,formattedCurrent:a,formattedDuration:f,formattedRemaining:S,formattedHover:b},y=()=>{switch(l){case"current":return a;case"duration":return f;case"remaining":return`-${S}`;case"current / duration":return`${a} / ${f}`;case"current / remaining":return`${a} / -${S}`;case"hover":return b;default:return`${a} / ${f}`}},x=()=>{let v=In(t.duration);switch(l){case"current":case"duration":case"hover":return v;case"remaining":return`-${v}`;case"current / duration":return`${v} / ${v}`;case"current / remaining":return`${v} / -${v}`;default:return`${v} / ${v}`}},g={ref:r,style:{position:u?"relative":void 0,userSelect:"none",fontVariantNumeric:"tabular-nums",...i.style},"data-hovering":T.hovering||void 0};return o?o(g,T):yt("span",{ref:r,"data-hovering":T.hovering||void 0,...i,style:{position:u?"relative":void 0,userSelect:"none",fontVariantNumeric:"tabular-nums",...i.style},children:u?On(Dn,{children:[yt("span",{"aria-hidden":!0,style:{visibility:"hidden"},children:x()}),yt("span",{style:Hn(n),children:y()})]}):y()})});function Hn(c){let e={position:"absolute"};switch(c){case"left":return{...e,left:0};case"right":return{...e,right:0};case"center":return{...e,left:"50%",transform:"translateX(-50%)"}}}function Re(c){if(!Number.isFinite(c)||Number.isNaN(c))return"0:00";let e=Math.floor(c/3600),r=Math.floor(c%3600/60),l=Math.floor(c%60);return e>0?`${e}:${r.toString().padStart(2,"0")}:${l.toString().padStart(2,"0")}`:`${r}:${l.toString().padStart(2,"0")}`}function In(c){if(!Number.isFinite(c)||Number.isNaN(c)||c<=0)return"0:00";let e=Math.floor(c/3600),r=Math.floor(c%3600/60);if(e>0){let u=String(e).length;return`${"0".repeat(u)}:00:00`}let l=String(r).length;return`${"0".repeat(l)}:00`}import*as K from"react";import{jsx as An}from"react/jsx-runtime";var $r=K.forwardRef(function(e,r){let{kind:l="captions",src:u,label:n,srcLang:o,default:i,...t}=e,{registerTrack:s,unregisterTrack:p,updateTrackRef:a,setTextTrack:f}=P("Track"),S=K.useRef(null),b=K.useId(),T=K.useCallback(y=>{typeof r=="function"?r(y):r&&(r.current=y),S.current=y},[r]);return K.useEffect(()=>(s({id:b,kind:l,label:n,srcLang:o,src:u,textTrack:null}),()=>{p(b)}),[b,l,n,o,u,s,p]),K.useEffect(()=>{let y=S.current;if(!y)return;let x=()=>{y.track&&(y.track.mode="disabled",a(b,y.track),i&&f(y.track))};return y.track&&x(),y.addEventListener("load",x),()=>{y.removeEventListener("load",x)}},[b,i,a,f]),An("track",{ref:T,kind:l,src:u,label:n,srcLang:o,default:i,...t})});import*as fe from"react";import{jsx as Wn}from"react/jsx-runtime";var Nr=fe.forwardRef(function(e,r){let{toggleOnClick:l=!0,...u}=e,n=P("Video"),o=fe.useRef(!1),i=fe.useCallback(p=>{typeof r=="function"?r(p):r&&(r.current=p),n.videoRef.current=p,p&&!o.current&&(o.current=!0,n._handlers.onVideoMount(),p.readyState>=1&&p.duration&&(n._handlers.onLoadedMetadata(),n._handlers.onDurationChange()),p.readyState>=3&&n._handlers.onCanPlay())},[r,n.videoRef,n._handlers]),t={"data-playing":n.playing||void 0,"data-paused":n.paused||void 0,"data-ended":n.ended||void 0,"data-waiting":n.waiting||void 0,"data-seeking":n.seeking||void 0},s=E({ref:i,preload:"metadata",...t,onClick(){l&&n.toggle()},onTimeUpdate:n._handlers.onTimeUpdate,onDurationChange:n._handlers.onDurationChange,onProgress:n._handlers.onProgress,onPlay:n._handlers.onPlay,onPause:n._handlers.onPause,onEnded:n._handlers.onEnded,onWaiting:n._handlers.onWaiting,onCanPlay:n._handlers.onCanPlay,onSeeking:n._handlers.onSeeking,onSeeked:n._handlers.onSeeked,onVolumeChange:n._handlers.onVolumeChange,onLoadedMetadata:n._handlers.onLoadedMetadata},u);return Wn("video",{...s})});var ot=(r=>(r.volume="--volume",r.volumePercentage="--volume-percentage",r))(ot||{});var at=(u=>(u.muted="data-muted",u.volume="data-volume",u.pressing="data-pressing",u.dragging="data-dragging",u))(at||{});import{Slider as G}from"@base-ui/react/slider";import*as A from"react";import{jsx as ee,jsxs as Fn}from"react/jsx-runtime";var jr=A.forwardRef(function(e,r){let{render:l,children:u,onPointerDown:n,...o}=e,i=P("VolumeSlider"),t=A.useRef(null),[s,p]=A.useState(!1),[a,f]=A.useState(!1),S=A.useRef(!1);A.useEffect(()=>{if(!s)return;let M=()=>{p(!1),f(!1),S.current=!1};return window.addEventListener("pointerup",M),()=>window.removeEventListener("pointerup",M)},[s]),A.useLayoutEffect(()=>{typeof r=="function"?r(t.current):r&&(r.current=t.current)});let b=i.volume*100,T={volume:i.volume,muted:i.muted,percentage:b,pressing:s,dragging:a},y=A.useCallback(M=>{let w=typeof M=="number"?M:M[0];if(w!==void 0){if(i.muted){let B=i.videoRef.current;B&&(B.muted=!1)}i.setVolume(w),i.resetIdle(),S.current&&f(!0)}},[i]),x=A.useCallback(M=>{n?.(M),p(!0),S.current=!0},[n]),g={"data-muted":i.muted||void 0,"data-volume":i.volume,"data-pressing":s||void 0,"data-dragging":a||void 0},v=ie(o.style,M=>({position:"relative","--volume":i.volume,"--volume-percentage":`${b}%`,...M}));return l?ee(G.Root,{ref:t,min:0,max:1,step:.01,value:i.muted?0:i.volume,onValueChange:y,onPointerDown:x,"aria-label":"Volume",render:(M,w)=>{let B={...g,style:ce(v,w)??{}};return l({...M,...B},T)}}):ee(G.Root,{ref:t,min:0,max:1,step:.01,value:i.muted?0:i.volume,onValueChange:y,onPointerDown:x,"aria-label":"Volume",...g,...o,style:v,children:u??ee(G.Control,{children:Fn(G.Track,{children:[ee(G.Indicator,{}),ee(G.Thumb,{})]})})})}),Ur=G.Control,_r=A.forwardRef(function(e,r){let{style:l,...u}=e,n=ie(l,o=>({position:"relative",...o}));return ee(G.Track,{ref:r,style:n,...u})}),Kr=A.forwardRef(function(e,r){return ee(G.Indicator,{ref:r,...e})}),qr=A.forwardRef(function(e,r){return ee(G.Thumb,{ref:r,...e})});export{Xr as VideoPlayer,se as useVideoPlayer};
|
|
3
3
|
//# sourceMappingURL=index.js.map
|