tavi-video-tutor 0.1.0

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.
@@ -0,0 +1,8 @@
1
+ (function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require("react")):typeof define==`function`&&define.amd?define([`exports`,`react`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.AITutor={},e.React))})(this,function(e,t){Object.defineProperties(e,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});var n=Object.create,r=Object.defineProperty,i=Object.getOwnPropertyDescriptor,a=Object.getOwnPropertyNames,o=Object.getPrototypeOf,s=Object.prototype.hasOwnProperty,c=(e,t)=>()=>(e&&(t=e(e=0)),t),l=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),u=(e,t)=>{let n={};for(var i in e)r(n,i,{get:e[i],enumerable:!0});return t||r(n,Symbol.toStringTag,{value:`Module`}),n},d=(e,t,n,o)=>{if(t&&typeof t==`object`||typeof t==`function`)for(var c=a(t),l=0,u=c.length,d;l<u;l++)d=c[l],!s.call(e,d)&&d!==n&&r(e,d,{get:(e=>t[e]).bind(null,d),enumerable:!(o=i(t,d))||o.enumerable});return e},f=(e,t,i)=>(i=e==null?{}:n(o(e)),d(t||!e||!e.__esModule?r(i,`default`,{value:e,enumerable:!0}):i,e));t=f(t,1);var p=l(((e,t)=>{t.exports=function(e,t,a){var o=document.head||document.getElementsByTagName(`head`)[0],s=document.createElement(`script`);typeof t==`function`&&(a=t,t={}),t||={},a||=function(){},s.type=t.type||`text/javascript`,s.charset=t.charset||`utf8`,s.async=`async`in t?!!t.async:!0,s.src=e,t.attrs&&n(s,t.attrs),t.text&&(s.text=``+t.text),(`onload`in s?r:i)(s,a),s.onload||r(s,a),o.appendChild(s)};function n(e,t){for(var n in t)e.setAttribute(n,t[n])}function r(e,t){e.onload=function(){this.onerror=this.onload=null,t(null,e)},e.onerror=function(){this.onerror=this.onload=null,t(Error(`Failed to load `+this.src),e)}}function i(e,t){e.onreadystatechange=function(){this.readyState!=`complete`&&this.readyState!=`loaded`||(this.onreadystatechange=null,t(null,e))}}})),m=l(((e,t)=>{var n=function(e){return r(e)&&!i(e)};function r(e){return!!e&&typeof e==`object`}function i(e){var t=Object.prototype.toString.call(e);return t===`[object RegExp]`||t===`[object Date]`||o(e)}var a=typeof Symbol==`function`&&Symbol.for?Symbol.for(`react.element`):60103;function o(e){return e.$$typeof===a}function s(e){return Array.isArray(e)?[]:{}}function c(e,t){return t.clone!==!1&&t.isMergeableObject(e)?g(s(e),e,t):e}function l(e,t,n){return e.concat(t).map(function(e){return c(e,n)})}function u(e,t){if(!t.customMerge)return g;var n=t.customMerge(e);return typeof n==`function`?n:g}function d(e){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(e).filter(function(t){return Object.propertyIsEnumerable.call(e,t)}):[]}function f(e){return Object.keys(e).concat(d(e))}function p(e,t){try{return t in e}catch{return!1}}function m(e,t){return p(e,t)&&!(Object.hasOwnProperty.call(e,t)&&Object.propertyIsEnumerable.call(e,t))}function h(e,t,n){var r={};return n.isMergeableObject(e)&&f(e).forEach(function(t){r[t]=c(e[t],n)}),f(t).forEach(function(i){m(e,i)||(p(e,i)&&n.isMergeableObject(t[i])?r[i]=u(i,n)(e[i],t[i],n):r[i]=c(t[i],n))}),r}function g(e,t,r){r||={},r.arrayMerge=r.arrayMerge||l,r.isMergeableObject=r.isMergeableObject||n,r.cloneUnlessOtherwiseSpecified=c;var i=Array.isArray(t);return i===Array.isArray(e)?i?r.arrayMerge(e,t,r):h(e,t,r):c(t,r)}g.all=function(e,t){if(!Array.isArray(e))throw Error(`first argument should be an array`);return e.reduce(function(e,n){return g(e,n,t)},{})},t.exports=g})),h=l(((e,t)=>{var n=Object.create,r=Object.defineProperty,i=Object.getOwnPropertyDescriptor,a=Object.getOwnPropertyNames,o=Object.getPrototypeOf,s=Object.prototype.hasOwnProperty,c=(e,t)=>{for(var n in t)r(e,n,{get:t[n],enumerable:!0})},l=(e,t,n,o)=>{if(t&&typeof t==`object`||typeof t==`function`)for(let c of a(t))!s.call(e,c)&&c!==n&&r(e,c,{get:()=>t[c],enumerable:!(o=i(t,c))||o.enumerable});return e},u=(e,t,i)=>(i=e==null?{}:n(o(e)),l(t||!e||!e.__esModule?r(i,`default`,{value:e,enumerable:!0}):i,e)),d=e=>l(r({},`__esModule`,{value:!0}),e),f={};c(f,{callPlayer:()=>P,getConfig:()=>M,getSDK:()=>j,isBlobUrl:()=>I,isMediaStream:()=>F,lazy:()=>v,omit:()=>N,parseEndTime:()=>E,parseStartTime:()=>T,queryString:()=>O,randomString:()=>D,supportsWebKitPresentationMode:()=>L}),t.exports=d(f);var h=u(require("react")),g=u(p()),_=u(m()),v=e=>h.default.lazy(async()=>{let t=await e();return typeof t.default==`function`?t:t.default}),y=/[?&#](?:start|t)=([0-9hms]+)/,b=/[?&#]end=([0-9hms]+)/,x=/(\d+)(h|m|s)/g,S=/^\d+$/;function C(e,t){if(e instanceof Array)return;let n=e.match(t);if(n){let e=n[1];if(e.match(x))return w(e);if(S.test(e))return parseInt(e)}}function w(e){let t=0,n=x.exec(e);for(;n!==null;){let[,r,i]=n;i===`h`&&(t+=parseInt(r,10)*60*60),i===`m`&&(t+=parseInt(r,10)*60),i===`s`&&(t+=parseInt(r,10)),n=x.exec(e)}return t}function T(e){return C(e,y)}function E(e){return C(e,b)}function D(){return Math.random().toString(36).substr(2,5)}function O(e){return Object.keys(e).map(t=>`${t}=${e[t]}`).join(`&`)}function k(e){return window[e]?window[e]:window.exports&&window.exports[e]?window.exports[e]:window.module&&window.module.exports&&window.module.exports[e]?window.module.exports[e]:null}var A={},j=R(function(e,t,n=null,r=()=>!0,i=g.default){let a=k(t);return a&&r(a)?Promise.resolve(a):new Promise((r,a)=>{if(A[e]){A[e].push({resolve:r,reject:a});return}A[e]=[{resolve:r,reject:a}];let o=t=>{A[e].forEach(e=>e.resolve(t))};if(n){let e=window[n];window[n]=function(){e&&e(),o(k(t))}}i(e,r=>{r?(A[e].forEach(e=>e.reject(r)),A[e]=null):n||o(k(t))})})});function M(e,t){return(0,_.default)(t.config,e.config)}function N(e,...t){let n=[].concat(...t),r={},i=Object.keys(e);for(let t of i)n.indexOf(t)===-1&&(r[t]=e[t]);return r}function P(e,...t){if(!this.player||!this.player[e]){let t=`ReactPlayer: ${this.constructor.displayName} player could not call %c${e}%c \u2013 `;return this.player?this.player[e]||(t+=`The method was not available`):t+=`The player was not available`,console.warn(t,`font-weight: bold`,``),null}return this.player[e](...t)}function F(e){return typeof window<`u`&&window.MediaStream!==void 0&&e instanceof window.MediaStream}function I(e){return/^blob:/.test(e)}function L(e=document.createElement(`video`)){let t=/iPhone|iPod/.test(navigator.userAgent)===!1;return e.webkitSupportsPresentationMode&&typeof e.webkitSetPresentationMode==`function`&&t}function R(e){return e}})),g=l(((e,t)=>{var n=Object.defineProperty,r=Object.getOwnPropertyDescriptor,i=Object.getOwnPropertyNames,a=Object.prototype.hasOwnProperty,o=(e,t)=>{for(var r in t)n(e,r,{get:t[r],enumerable:!0})},s=(e,t,o,s)=>{if(t&&typeof t==`object`||typeof t==`function`)for(let c of i(t))!a.call(e,c)&&c!==o&&n(e,c,{get:()=>t[c],enumerable:!(s=r(t,c))||s.enumerable});return e},c=e=>s(n({},`__esModule`,{value:!0}),e),l={};o(l,{AUDIO_EXTENSIONS:()=>E,DASH_EXTENSIONS:()=>k,FLV_EXTENSIONS:()=>A,HLS_EXTENSIONS:()=>O,MATCH_URL_DAILYMOTION:()=>S,MATCH_URL_FACEBOOK:()=>g,MATCH_URL_FACEBOOK_WATCH:()=>_,MATCH_URL_KALTURA:()=>T,MATCH_URL_MIXCLOUD:()=>C,MATCH_URL_MUX:()=>m,MATCH_URL_SOUNDCLOUD:()=>f,MATCH_URL_STREAMABLE:()=>v,MATCH_URL_TWITCH_CHANNEL:()=>x,MATCH_URL_TWITCH_VIDEO:()=>b,MATCH_URL_VIDYARD:()=>w,MATCH_URL_VIMEO:()=>p,MATCH_URL_WISTIA:()=>y,MATCH_URL_YOUTUBE:()=>d,VIDEO_EXTENSIONS:()=>D,canPlay:()=>M}),t.exports=c(l);var u=h(),d=/(?:youtu\.be\/|youtube(?:-nocookie|education)?\.com\/(?:embed\/|v\/|watch\/|watch\?v=|watch\?.+&v=|shorts\/|live\/))((\w|-){11})|youtube\.com\/playlist\?list=|youtube\.com\/user\//,f=/(?:soundcloud\.com|snd\.sc)\/[^.]+$/,p=/vimeo\.com\/(?!progressive_redirect).+/,m=/stream\.mux\.com\/(?!\w+\.m3u8)(\w+)/,g=/^https?:\/\/(www\.)?facebook\.com.*\/(video(s)?|watch|story)(\.php?|\/).+$/,_=/^https?:\/\/fb\.watch\/.+$/,v=/streamable\.com\/([a-z0-9]+)$/,y=/(?:wistia\.(?:com|net)|wi\.st)\/(?:medias|embed)\/(?:iframe\/)?([^?]+)/,b=/(?:www\.|go\.)?twitch\.tv\/videos\/(\d+)($|\?)/,x=/(?:www\.|go\.)?twitch\.tv\/([a-zA-Z0-9_]+)($|\?)/,S=/^(?:(?:https?):)?(?:\/\/)?(?:www\.)?(?:(?:dailymotion\.com(?:\/embed)?\/video)|dai\.ly)\/([a-zA-Z0-9]+)(?:_[\w_-]+)?(?:[\w.#_-]+)?/,C=/mixcloud\.com\/([^/]+\/[^/]+)/,w=/vidyard.com\/(?:watch\/)?([a-zA-Z0-9-_]+)/,T=/^https?:\/\/[a-zA-Z]+\.kaltura.(com|org)\/p\/([0-9]+)\/sp\/([0-9]+)00\/embedIframeJs\/uiconf_id\/([0-9]+)\/partner_id\/([0-9]+)(.*)entry_id.([a-zA-Z0-9-_].*)$/,E=/\.(m4a|m4b|mp4a|mpga|mp2|mp2a|mp3|m2a|m3a|wav|weba|aac|oga|spx)($|\?)/i,D=/\.(mp4|og[gv]|webm|mov|m4v)(#t=[,\d+]+)?($|\?)/i,O=/\.(m3u8)($|\?)/i,k=/\.(mpd)($|\?)/i,A=/\.(flv)($|\?)/i,j=e=>{if(e instanceof Array){for(let t of e)if(typeof t==`string`&&j(t)||j(t.src))return!0;return!1}return(0,u.isMediaStream)(e)||(0,u.isBlobUrl)(e)?!0:E.test(e)||D.test(e)||O.test(e)||k.test(e)||A.test(e)},M={youtube:e=>e instanceof Array?e.every(e=>d.test(e)):d.test(e),soundcloud:e=>f.test(e)&&!E.test(e),vimeo:e=>p.test(e)&&!D.test(e)&&!O.test(e),mux:e=>m.test(e),facebook:e=>g.test(e)||_.test(e),streamable:e=>v.test(e),wistia:e=>y.test(e),twitch:e=>b.test(e)||x.test(e),dailymotion:e=>S.test(e),mixcloud:e=>C.test(e),vidyard:e=>w.test(e),kaltura:e=>T.test(e),file:j}})),_=l(((e,t)=>{var n=Object.create,r=Object.defineProperty,i=Object.getOwnPropertyDescriptor,a=Object.getOwnPropertyNames,o=Object.getPrototypeOf,s=Object.prototype.hasOwnProperty,c=(e,t,n)=>t in e?r(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,l=(e,t)=>{for(var n in t)r(e,n,{get:t[n],enumerable:!0})},u=(e,t,n,o)=>{if(t&&typeof t==`object`||typeof t==`function`)for(let c of a(t))!s.call(e,c)&&c!==n&&r(e,c,{get:()=>t[c],enumerable:!(o=i(t,c))||o.enumerable});return e},d=(e,t,i)=>(i=e==null?{}:n(o(e)),u(t||!e||!e.__esModule?r(i,`default`,{value:e,enumerable:!0}):i,e)),f=e=>u(r({},`__esModule`,{value:!0}),e),p=(e,t,n)=>(c(e,typeof t==`symbol`?t:t+``,n),n),m={};l(m,{default:()=>D}),t.exports=f(m);var _=d(require("react")),v=h(),y=g(),b=`https://www.youtube.com/iframe_api`,x=`YT`,S=`onYouTubeIframeAPIReady`,C=/[?&](?:list|channel)=([a-zA-Z0-9_-]+)/,w=/user\/([a-zA-Z0-9_-]+)\/?/,T=/youtube-nocookie\.com/,E=`https://www.youtube-nocookie.com`,D=class extends _.Component{constructor(){super(...arguments),p(this,`callPlayer`,v.callPlayer),p(this,`parsePlaylist`,e=>{if(e instanceof Array)return{listType:`playlist`,playlist:e.map(this.getID).join(`,`)};if(C.test(e)){let[,t]=e.match(C);return{listType:`playlist`,list:t.replace(/^UC/,`UU`)}}if(w.test(e)){let[,t]=e.match(w);return{listType:`user_uploads`,list:t}}return{}}),p(this,`onStateChange`,e=>{let{data:t}=e,{onPlay:n,onPause:r,onBuffer:i,onBufferEnd:a,onEnded:o,onReady:s,loop:c,config:{playerVars:l,onUnstarted:u}}=this.props,{UNSTARTED:d,PLAYING:f,PAUSED:p,BUFFERING:m,ENDED:h,CUED:g}=window[x].PlayerState;if(t===d&&u(),t===f&&(n(),a()),t===p&&r(),t===m&&i(),t===h){let e=!!this.callPlayer(`getPlaylist`);c&&!e&&(l.start?this.seekTo(l.start):this.play()),o()}t===g&&s()}),p(this,`mute`,()=>{this.callPlayer(`mute`)}),p(this,`unmute`,()=>{this.callPlayer(`unMute`)}),p(this,`ref`,e=>{this.container=e})}componentDidMount(){this.props.onMount&&this.props.onMount(this)}getID(e){return!e||e instanceof Array||C.test(e)?null:e.match(y.MATCH_URL_YOUTUBE)[1]}load(e,t){let{playing:n,muted:r,playsinline:i,controls:a,loop:o,config:s,onError:c}=this.props,{playerVars:l,embedOptions:u}=s,d=this.getID(e);if(t){if(C.test(e)||w.test(e)||e instanceof Array){this.player.loadPlaylist(this.parsePlaylist(e));return}this.player.cueVideoById({videoId:d,startSeconds:(0,v.parseStartTime)(e)||l.start,endSeconds:(0,v.parseEndTime)(e)||l.end});return}(0,v.getSDK)(b,x,S,e=>e.loaded).then(t=>{this.container&&(this.player=new t.Player(this.container,{width:`100%`,height:`100%`,videoId:d,playerVars:{autoplay:+!!n,mute:+!!r,controls:+!!a,start:(0,v.parseStartTime)(e),end:(0,v.parseEndTime)(e),origin:window.location.origin,playsinline:+!!i,...this.parsePlaylist(e),...l},events:{onReady:()=>{o&&this.player.setLoop(!0),this.props.onReady()},onPlaybackRateChange:e=>this.props.onPlaybackRateChange(e.data),onPlaybackQualityChange:e=>this.props.onPlaybackQualityChange(e),onStateChange:this.onStateChange,onError:e=>c(e.data)},host:T.test(e)?E:void 0,...u}))},c),u.events&&console.warn("Using `embedOptions.events` will likely break things. Use ReactPlayer’s callback props instead, eg onReady, onPlay, onPause")}play(){this.callPlayer(`playVideo`)}pause(){this.callPlayer(`pauseVideo`)}stop(){document.body.contains(this.callPlayer(`getIframe`))&&this.callPlayer(`stopVideo`)}seekTo(e,t=!1){this.callPlayer(`seekTo`,e),!t&&!this.props.playing&&this.pause()}setVolume(e){this.callPlayer(`setVolume`,e*100)}setPlaybackRate(e){this.callPlayer(`setPlaybackRate`,e)}setLoop(e){this.callPlayer(`setLoop`,e)}getDuration(){return this.callPlayer(`getDuration`)}getCurrentTime(){return this.callPlayer(`getCurrentTime`)}getSecondsLoaded(){return this.callPlayer(`getVideoLoadedFraction`)*this.getDuration()}render(){let{display:e}=this.props,t={width:`100%`,height:`100%`,display:e};return _.default.createElement(`div`,{style:t},_.default.createElement(`div`,{ref:this.ref}))}};p(D,`displayName`,`YouTube`),p(D,`canPlay`,y.canPlay.youtube)})),v=l(((e,t)=>{var n=Object.create,r=Object.defineProperty,i=Object.getOwnPropertyDescriptor,a=Object.getOwnPropertyNames,o=Object.getPrototypeOf,s=Object.prototype.hasOwnProperty,c=(e,t,n)=>t in e?r(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,l=(e,t)=>{for(var n in t)r(e,n,{get:t[n],enumerable:!0})},u=(e,t,n,o)=>{if(t&&typeof t==`object`||typeof t==`function`)for(let c of a(t))!s.call(e,c)&&c!==n&&r(e,c,{get:()=>t[c],enumerable:!(o=i(t,c))||o.enumerable});return e},d=(e,t,i)=>(i=e==null?{}:n(o(e)),u(t||!e||!e.__esModule?r(i,`default`,{value:e,enumerable:!0}):i,e)),f=e=>u(r({},`__esModule`,{value:!0}),e),p=(e,t,n)=>(c(e,typeof t==`symbol`?t:t+``,n),n),m={};l(m,{default:()=>S}),t.exports=f(m);var _=d(require("react")),v=h(),y=g(),b=`https://w.soundcloud.com/player/api.js`,x=`SC`,S=class extends _.Component{constructor(){super(...arguments),p(this,`callPlayer`,v.callPlayer),p(this,`duration`,null),p(this,`currentTime`,null),p(this,`fractionLoaded`,null),p(this,`mute`,()=>{this.setVolume(0)}),p(this,`unmute`,()=>{this.props.volume!==null&&this.setVolume(this.props.volume)}),p(this,`ref`,e=>{this.iframe=e})}componentDidMount(){this.props.onMount&&this.props.onMount(this)}load(e,t){(0,v.getSDK)(b,x).then(n=>{if(!this.iframe)return;let{PLAY:r,PLAY_PROGRESS:i,PAUSE:a,FINISH:o,ERROR:s}=n.Widget.Events;t||(this.player=n.Widget(this.iframe),this.player.bind(r,this.props.onPlay),this.player.bind(a,()=>{this.duration-this.currentTime<.05||this.props.onPause()}),this.player.bind(i,e=>{this.currentTime=e.currentPosition/1e3,this.fractionLoaded=e.loadedProgress}),this.player.bind(o,()=>this.props.onEnded()),this.player.bind(s,e=>this.props.onError(e))),this.player.load(e,{...this.props.config.options,callback:()=>{this.player.getDuration(e=>{this.duration=e/1e3,this.props.onReady()})}})})}play(){this.callPlayer(`play`)}pause(){this.callPlayer(`pause`)}stop(){}seekTo(e,t=!0){this.callPlayer(`seekTo`,e*1e3),t||this.pause()}setVolume(e){this.callPlayer(`setVolume`,e*100)}getDuration(){return this.duration}getCurrentTime(){return this.currentTime}getSecondsLoaded(){return this.fractionLoaded*this.duration}render(){let{display:e}=this.props,t={width:`100%`,height:`100%`,display:e};return _.default.createElement(`iframe`,{ref:this.ref,src:`https://w.soundcloud.com/player/?url=${encodeURIComponent(this.props.url)}`,style:t,frameBorder:0,allow:`autoplay`})}};p(S,`displayName`,`SoundCloud`),p(S,`canPlay`,y.canPlay.soundcloud),p(S,`loopOnEnded`,!0)})),y=l(((e,t)=>{var n=Object.create,r=Object.defineProperty,i=Object.getOwnPropertyDescriptor,a=Object.getOwnPropertyNames,o=Object.getPrototypeOf,s=Object.prototype.hasOwnProperty,c=(e,t,n)=>t in e?r(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,l=(e,t)=>{for(var n in t)r(e,n,{get:t[n],enumerable:!0})},u=(e,t,n,o)=>{if(t&&typeof t==`object`||typeof t==`function`)for(let c of a(t))!s.call(e,c)&&c!==n&&r(e,c,{get:()=>t[c],enumerable:!(o=i(t,c))||o.enumerable});return e},d=(e,t,i)=>(i=e==null?{}:n(o(e)),u(t||!e||!e.__esModule?r(i,`default`,{value:e,enumerable:!0}):i,e)),f=e=>u(r({},`__esModule`,{value:!0}),e),p=(e,t,n)=>(c(e,typeof t==`symbol`?t:t+``,n),n),m={};l(m,{default:()=>C}),t.exports=f(m);var _=d(require("react")),v=h(),y=g(),b=`https://player.vimeo.com/api/player.js`,x=`Vimeo`,S=e=>e.replace(`/manage/videos`,``),C=class extends _.Component{constructor(){super(...arguments),p(this,`callPlayer`,v.callPlayer),p(this,`duration`,null),p(this,`currentTime`,null),p(this,`secondsLoaded`,null),p(this,`mute`,()=>{this.setMuted(!0)}),p(this,`unmute`,()=>{this.setMuted(!1)}),p(this,`ref`,e=>{this.container=e})}componentDidMount(){this.props.onMount&&this.props.onMount(this)}load(e){this.duration=null,(0,v.getSDK)(b,x).then(t=>{if(!this.container)return;let{playerOptions:n,title:r}=this.props.config;this.player=new t.Player(this.container,{url:S(e),autoplay:this.props.playing,muted:this.props.muted,loop:this.props.loop,playsinline:this.props.playsinline,controls:this.props.controls,...n}),this.player.ready().then(()=>{let e=this.container.querySelector(`iframe`);e.style.width=`100%`,e.style.height=`100%`,r&&(e.title=r)}).catch(this.props.onError),this.player.on(`loaded`,()=>{this.props.onReady(),this.refreshDuration()}),this.player.on(`play`,()=>{this.props.onPlay(),this.refreshDuration()}),this.player.on(`pause`,this.props.onPause),this.player.on(`seeked`,e=>this.props.onSeek(e.seconds)),this.player.on(`ended`,this.props.onEnded),this.player.on(`error`,this.props.onError),this.player.on(`timeupdate`,({seconds:e})=>{this.currentTime=e}),this.player.on(`progress`,({seconds:e})=>{this.secondsLoaded=e}),this.player.on(`bufferstart`,this.props.onBuffer),this.player.on(`bufferend`,this.props.onBufferEnd),this.player.on(`playbackratechange`,e=>this.props.onPlaybackRateChange(e.playbackRate))},this.props.onError)}refreshDuration(){this.player.getDuration().then(e=>{this.duration=e})}play(){let e=this.callPlayer(`play`);e&&e.catch(this.props.onError)}pause(){this.callPlayer(`pause`)}stop(){this.callPlayer(`unload`)}seekTo(e,t=!0){this.callPlayer(`setCurrentTime`,e),t||this.pause()}setVolume(e){this.callPlayer(`setVolume`,e)}setMuted(e){this.callPlayer(`setMuted`,e)}setLoop(e){this.callPlayer(`setLoop`,e)}setPlaybackRate(e){this.callPlayer(`setPlaybackRate`,e)}getDuration(){return this.duration}getCurrentTime(){return this.currentTime}getSecondsLoaded(){return this.secondsLoaded}render(){let{display:e}=this.props,t={width:`100%`,height:`100%`,overflow:`hidden`,display:e};return _.default.createElement(`div`,{key:this.props.url,ref:this.ref,style:t})}};p(C,`displayName`,`Vimeo`),p(C,`canPlay`,y.canPlay.vimeo),p(C,`forceLoad`,!0)})),b=l(((e,t)=>{var n=Object.create,r=Object.defineProperty,i=Object.getOwnPropertyDescriptor,a=Object.getOwnPropertyNames,o=Object.getPrototypeOf,s=Object.prototype.hasOwnProperty,c=(e,t,n)=>t in e?r(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,l=(e,t)=>{for(var n in t)r(e,n,{get:t[n],enumerable:!0})},u=(e,t,n,o)=>{if(t&&typeof t==`object`||typeof t==`function`)for(let c of a(t))!s.call(e,c)&&c!==n&&r(e,c,{get:()=>t[c],enumerable:!(o=i(t,c))||o.enumerable});return e},d=(e,t,i)=>(i=e==null?{}:n(o(e)),u(t||!e||!e.__esModule?r(i,`default`,{value:e,enumerable:!0}):i,e)),f=e=>u(r({},`__esModule`,{value:!0}),e),p=(e,t,n)=>(c(e,typeof t==`symbol`?t:t+``,n),n),m={};l(m,{default:()=>y}),t.exports=f(m);var h=d(require("react")),_=g(),v=`https://cdn.jsdelivr.net/npm/@mux/mux-player@VERSION/dist/mux-player.mjs`,y=class extends h.Component{constructor(){super(...arguments),p(this,`onReady`,(...e)=>this.props.onReady(...e)),p(this,`onPlay`,(...e)=>this.props.onPlay(...e)),p(this,`onBuffer`,(...e)=>this.props.onBuffer(...e)),p(this,`onBufferEnd`,(...e)=>this.props.onBufferEnd(...e)),p(this,`onPause`,(...e)=>this.props.onPause(...e)),p(this,`onEnded`,(...e)=>this.props.onEnded(...e)),p(this,`onError`,(...e)=>this.props.onError(...e)),p(this,`onPlayBackRateChange`,e=>this.props.onPlaybackRateChange(e.target.playbackRate)),p(this,`onEnablePIP`,(...e)=>this.props.onEnablePIP(...e)),p(this,`onSeek`,e=>{this.props.onSeek(e.target.currentTime)}),p(this,`onDurationChange`,()=>{let e=this.getDuration();this.props.onDuration(e)}),p(this,`mute`,()=>{this.player.muted=!0}),p(this,`unmute`,()=>{this.player.muted=!1}),p(this,`ref`,e=>{this.player=e})}componentDidMount(){this.props.onMount&&this.props.onMount(this),this.addListeners(this.player);let e=this.getPlaybackId(this.props.url);e&&(this.player.playbackId=e)}componentWillUnmount(){this.player.playbackId=null,this.removeListeners(this.player)}addListeners(e){let{playsinline:t}=this.props;e.addEventListener(`play`,this.onPlay),e.addEventListener(`waiting`,this.onBuffer),e.addEventListener(`playing`,this.onBufferEnd),e.addEventListener(`pause`,this.onPause),e.addEventListener(`seeked`,this.onSeek),e.addEventListener(`ended`,this.onEnded),e.addEventListener(`error`,this.onError),e.addEventListener(`ratechange`,this.onPlayBackRateChange),e.addEventListener(`enterpictureinpicture`,this.onEnablePIP),e.addEventListener(`leavepictureinpicture`,this.onDisablePIP),e.addEventListener(`webkitpresentationmodechanged`,this.onPresentationModeChange),e.addEventListener(`canplay`,this.onReady),t&&e.setAttribute(`playsinline`,``)}removeListeners(e){e.removeEventListener(`canplay`,this.onReady),e.removeEventListener(`play`,this.onPlay),e.removeEventListener(`waiting`,this.onBuffer),e.removeEventListener(`playing`,this.onBufferEnd),e.removeEventListener(`pause`,this.onPause),e.removeEventListener(`seeked`,this.onSeek),e.removeEventListener(`ended`,this.onEnded),e.removeEventListener(`error`,this.onError),e.removeEventListener(`ratechange`,this.onPlayBackRateChange),e.removeEventListener(`enterpictureinpicture`,this.onEnablePIP),e.removeEventListener(`leavepictureinpicture`,this.onDisablePIP),e.removeEventListener(`canplay`,this.onReady)}async load(e){let{onError:t,config:n}=this.props;if(!globalThis.customElements?.get(`mux-player`))try{await import(`${v.replace(`VERSION`,n.version)}`),this.props.onLoaded()}catch(e){t(e)}let[,r]=e.match(_.MATCH_URL_MUX);this.player.playbackId=r}play(){let e=this.player.play();e&&e.catch(this.props.onError)}pause(){this.player.pause()}stop(){this.player.playbackId=null}seekTo(e,t=!0){this.player.currentTime=e,t||this.pause()}setVolume(e){this.player.volume=e}enablePIP(){this.player.requestPictureInPicture&&document.pictureInPictureElement!==this.player&&this.player.requestPictureInPicture()}disablePIP(){document.exitPictureInPicture&&document.pictureInPictureElement===this.player&&document.exitPictureInPicture()}setPlaybackRate(e){try{this.player.playbackRate=e}catch(e){this.props.onError(e)}}getDuration(){if(!this.player)return null;let{duration:e,seekable:t}=this.player;return e===1/0&&t.length>0?t.end(t.length-1):e}getCurrentTime(){return this.player?this.player.currentTime:null}getSecondsLoaded(){if(!this.player)return null;let{buffered:e}=this.player;if(e.length===0)return 0;let t=e.end(e.length-1),n=this.getDuration();return t>n?n:t}getPlaybackId(e){let[,t]=e.match(_.MATCH_URL_MUX);return t}render(){let{url:e,playing:t,loop:n,controls:r,muted:i,config:a,width:o,height:s}=this.props,c={width:o===`auto`?o:`100%`,height:s===`auto`?s:`100%`};return r===!1&&(c[`--controls`]=`none`),h.default.createElement(`mux-player`,{ref:this.ref,"playback-id":this.getPlaybackId(e),style:c,preload:`auto`,autoPlay:t||void 0,muted:i?``:void 0,loop:n?``:void 0,...a.attributes})}};p(y,`displayName`,`Mux`),p(y,`canPlay`,_.canPlay.mux)})),x=l(((e,t)=>{var n=Object.create,r=Object.defineProperty,i=Object.getOwnPropertyDescriptor,a=Object.getOwnPropertyNames,o=Object.getPrototypeOf,s=Object.prototype.hasOwnProperty,c=(e,t,n)=>t in e?r(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,l=(e,t)=>{for(var n in t)r(e,n,{get:t[n],enumerable:!0})},u=(e,t,n,o)=>{if(t&&typeof t==`object`||typeof t==`function`)for(let c of a(t))!s.call(e,c)&&c!==n&&r(e,c,{get:()=>t[c],enumerable:!(o=i(t,c))||o.enumerable});return e},d=(e,t,i)=>(i=e==null?{}:n(o(e)),u(t||!e||!e.__esModule?r(i,`default`,{value:e,enumerable:!0}):i,e)),f=e=>u(r({},`__esModule`,{value:!0}),e),p=(e,t,n)=>(c(e,typeof t==`symbol`?t:t+``,n),n),m={};l(m,{default:()=>w}),t.exports=f(m);var _=d(require("react")),v=h(),y=g(),b=`https://connect.facebook.net/en_US/sdk.js`,x=`FB`,S=`fbAsyncInit`,C=`facebook-player-`,w=class extends _.Component{constructor(){super(...arguments),p(this,`callPlayer`,v.callPlayer),p(this,`playerID`,this.props.config.playerId||`${C}${(0,v.randomString)()}`),p(this,`mute`,()=>{this.callPlayer(`mute`)}),p(this,`unmute`,()=>{this.callPlayer(`unmute`)})}componentDidMount(){this.props.onMount&&this.props.onMount(this)}load(e,t){if(t){(0,v.getSDK)(b,x,S).then(e=>e.XFBML.parse());return}(0,v.getSDK)(b,x,S).then(e=>{e.init({appId:this.props.config.appId,xfbml:!0,version:this.props.config.version}),e.Event.subscribe(`xfbml.render`,e=>{this.props.onLoaded()}),e.Event.subscribe(`xfbml.ready`,e=>{e.type===`video`&&e.id===this.playerID&&(this.player=e.instance,this.player.subscribe(`startedPlaying`,this.props.onPlay),this.player.subscribe(`paused`,this.props.onPause),this.player.subscribe(`finishedPlaying`,this.props.onEnded),this.player.subscribe(`startedBuffering`,this.props.onBuffer),this.player.subscribe(`finishedBuffering`,this.props.onBufferEnd),this.player.subscribe(`error`,this.props.onError),this.props.muted?this.callPlayer(`mute`):this.callPlayer(`unmute`),this.props.onReady(),document.getElementById(this.playerID).querySelector(`iframe`).style.visibility=`visible`)})})}play(){this.callPlayer(`play`)}pause(){this.callPlayer(`pause`)}stop(){}seekTo(e,t=!0){this.callPlayer(`seek`,e),t||this.pause()}setVolume(e){this.callPlayer(`setVolume`,e)}getDuration(){return this.callPlayer(`getDuration`)}getCurrentTime(){return this.callPlayer(`getCurrentPosition`)}getSecondsLoaded(){return null}render(){let{attributes:e}=this.props.config;return _.default.createElement(`div`,{style:{width:`100%`,height:`100%`},id:this.playerID,className:`fb-video`,"data-href":this.props.url,"data-autoplay":this.props.playing?`true`:`false`,"data-allowfullscreen":`true`,"data-controls":this.props.controls?`true`:`false`,...e})}};p(w,`displayName`,`Facebook`),p(w,`canPlay`,y.canPlay.facebook),p(w,`loopOnEnded`,!0)})),S=l(((e,t)=>{var n=Object.create,r=Object.defineProperty,i=Object.getOwnPropertyDescriptor,a=Object.getOwnPropertyNames,o=Object.getPrototypeOf,s=Object.prototype.hasOwnProperty,c=(e,t,n)=>t in e?r(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,l=(e,t)=>{for(var n in t)r(e,n,{get:t[n],enumerable:!0})},u=(e,t,n,o)=>{if(t&&typeof t==`object`||typeof t==`function`)for(let c of a(t))!s.call(e,c)&&c!==n&&r(e,c,{get:()=>t[c],enumerable:!(o=i(t,c))||o.enumerable});return e},d=(e,t,i)=>(i=e==null?{}:n(o(e)),u(t||!e||!e.__esModule?r(i,`default`,{value:e,enumerable:!0}):i,e)),f=e=>u(r({},`__esModule`,{value:!0}),e),p=(e,t,n)=>(c(e,typeof t==`symbol`?t:t+``,n),n),m={};l(m,{default:()=>S}),t.exports=f(m);var _=d(require("react")),v=h(),y=g(),b=`https://cdn.embed.ly/player-0.1.0.min.js`,x=`playerjs`,S=class extends _.Component{constructor(){super(...arguments),p(this,`callPlayer`,v.callPlayer),p(this,`duration`,null),p(this,`currentTime`,null),p(this,`secondsLoaded`,null),p(this,`mute`,()=>{this.callPlayer(`mute`)}),p(this,`unmute`,()=>{this.callPlayer(`unmute`)}),p(this,`ref`,e=>{this.iframe=e})}componentDidMount(){this.props.onMount&&this.props.onMount(this)}load(e){(0,v.getSDK)(b,x).then(e=>{this.iframe&&(this.player=new e.Player(this.iframe),this.player.setLoop(this.props.loop),this.player.on(`ready`,this.props.onReady),this.player.on(`play`,this.props.onPlay),this.player.on(`pause`,this.props.onPause),this.player.on(`seeked`,this.props.onSeek),this.player.on(`ended`,this.props.onEnded),this.player.on(`error`,this.props.onError),this.player.on(`timeupdate`,({duration:e,seconds:t})=>{this.duration=e,this.currentTime=t}),this.player.on(`buffered`,({percent:e})=>{this.duration&&(this.secondsLoaded=this.duration*e)}),this.props.muted&&this.player.mute())},this.props.onError)}play(){this.callPlayer(`play`)}pause(){this.callPlayer(`pause`)}stop(){}seekTo(e,t=!0){this.callPlayer(`setCurrentTime`,e),t||this.pause()}setVolume(e){this.callPlayer(`setVolume`,e*100)}setLoop(e){this.callPlayer(`setLoop`,e)}getDuration(){return this.duration}getCurrentTime(){return this.currentTime}getSecondsLoaded(){return this.secondsLoaded}render(){let e=this.props.url.match(y.MATCH_URL_STREAMABLE)[1];return _.default.createElement(`iframe`,{ref:this.ref,src:`https://streamable.com/o/${e}`,frameBorder:`0`,scrolling:`no`,style:{width:`100%`,height:`100%`},allow:`encrypted-media; autoplay; fullscreen;`})}};p(S,`displayName`,`Streamable`),p(S,`canPlay`,y.canPlay.streamable)})),C=l(((e,t)=>{var n=Object.create,r=Object.defineProperty,i=Object.getOwnPropertyDescriptor,a=Object.getOwnPropertyNames,o=Object.getPrototypeOf,s=Object.prototype.hasOwnProperty,c=(e,t,n)=>t in e?r(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,l=(e,t)=>{for(var n in t)r(e,n,{get:t[n],enumerable:!0})},u=(e,t,n,o)=>{if(t&&typeof t==`object`||typeof t==`function`)for(let c of a(t))!s.call(e,c)&&c!==n&&r(e,c,{get:()=>t[c],enumerable:!(o=i(t,c))||o.enumerable});return e},d=(e,t,i)=>(i=e==null?{}:n(o(e)),u(t||!e||!e.__esModule?r(i,`default`,{value:e,enumerable:!0}):i,e)),f=e=>u(r({},`__esModule`,{value:!0}),e),p=(e,t,n)=>(c(e,typeof t==`symbol`?t:t+``,n),n),m={};l(m,{default:()=>C}),t.exports=f(m);var _=d(require("react")),v=h(),y=g(),b=`https://fast.wistia.com/assets/external/E-v1.js`,x=`Wistia`,S=`wistia-player-`,C=class extends _.Component{constructor(){super(...arguments),p(this,`callPlayer`,v.callPlayer),p(this,`playerID`,this.props.config.playerId||`${S}${(0,v.randomString)()}`),p(this,`onPlay`,(...e)=>this.props.onPlay(...e)),p(this,`onPause`,(...e)=>this.props.onPause(...e)),p(this,`onSeek`,(...e)=>this.props.onSeek(...e)),p(this,`onEnded`,(...e)=>this.props.onEnded(...e)),p(this,`onPlaybackRateChange`,(...e)=>this.props.onPlaybackRateChange(...e)),p(this,`mute`,()=>{this.callPlayer(`mute`)}),p(this,`unmute`,()=>{this.callPlayer(`unmute`)})}componentDidMount(){this.props.onMount&&this.props.onMount(this)}load(e){let{playing:t,muted:n,controls:r,onReady:i,config:a,onError:o}=this.props;(0,v.getSDK)(b,x).then(e=>{a.customControls&&a.customControls.forEach(t=>e.defineControl(t)),window._wq=window._wq||[],window._wq.push({id:this.playerID,options:{autoPlay:t,silentAutoPlay:`allow`,muted:n,controlsVisibleOnLoad:r,fullscreenButton:r,playbar:r,playbackRateControl:r,qualityControl:r,volumeControl:r,settingsControl:r,smallPlayButton:r,...a.options},onReady:e=>{this.player=e,this.unbind(),this.player.bind(`play`,this.onPlay),this.player.bind(`pause`,this.onPause),this.player.bind(`seek`,this.onSeek),this.player.bind(`end`,this.onEnded),this.player.bind(`playbackratechange`,this.onPlaybackRateChange),i()}})},o)}unbind(){this.player.unbind(`play`,this.onPlay),this.player.unbind(`pause`,this.onPause),this.player.unbind(`seek`,this.onSeek),this.player.unbind(`end`,this.onEnded),this.player.unbind(`playbackratechange`,this.onPlaybackRateChange)}play(){this.callPlayer(`play`)}pause(){this.callPlayer(`pause`)}stop(){this.unbind(),this.callPlayer(`remove`)}seekTo(e,t=!0){this.callPlayer(`time`,e),t||this.pause()}setVolume(e){this.callPlayer(`volume`,e)}setPlaybackRate(e){this.callPlayer(`playbackRate`,e)}getDuration(){return this.callPlayer(`duration`)}getCurrentTime(){return this.callPlayer(`time`)}getSecondsLoaded(){return null}render(){let{url:e}=this.props,t=e&&e.match(y.MATCH_URL_WISTIA)[1],n=`wistia_embed wistia_async_${t}`;return _.default.createElement(`div`,{id:this.playerID,key:t,className:n,style:{width:`100%`,height:`100%`}})}};p(C,`displayName`,`Wistia`),p(C,`canPlay`,y.canPlay.wistia),p(C,`loopOnEnded`,!0)})),w=l(((e,t)=>{var n=Object.create,r=Object.defineProperty,i=Object.getOwnPropertyDescriptor,a=Object.getOwnPropertyNames,o=Object.getPrototypeOf,s=Object.prototype.hasOwnProperty,c=(e,t,n)=>t in e?r(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,l=(e,t)=>{for(var n in t)r(e,n,{get:t[n],enumerable:!0})},u=(e,t,n,o)=>{if(t&&typeof t==`object`||typeof t==`function`)for(let c of a(t))!s.call(e,c)&&c!==n&&r(e,c,{get:()=>t[c],enumerable:!(o=i(t,c))||o.enumerable});return e},d=(e,t,i)=>(i=e==null?{}:n(o(e)),u(t||!e||!e.__esModule?r(i,`default`,{value:e,enumerable:!0}):i,e)),f=e=>u(r({},`__esModule`,{value:!0}),e),p=(e,t,n)=>(c(e,typeof t==`symbol`?t:t+``,n),n),m={};l(m,{default:()=>C}),t.exports=f(m);var _=d(require("react")),v=h(),y=g(),b=`https://player.twitch.tv/js/embed/v1.js`,x=`Twitch`,S=`twitch-player-`,C=class extends _.Component{constructor(){super(...arguments),p(this,`callPlayer`,v.callPlayer),p(this,`playerID`,this.props.config.playerId||`${S}${(0,v.randomString)()}`),p(this,`mute`,()=>{this.callPlayer(`setMuted`,!0)}),p(this,`unmute`,()=>{this.callPlayer(`setMuted`,!1)})}componentDidMount(){this.props.onMount&&this.props.onMount(this)}load(e,t){let{playsinline:n,onError:r,config:i,controls:a}=this.props,o=y.MATCH_URL_TWITCH_CHANNEL.test(e),s=o?e.match(y.MATCH_URL_TWITCH_CHANNEL)[1]:e.match(y.MATCH_URL_TWITCH_VIDEO)[1];if(t){o?this.player.setChannel(s):this.player.setVideo(`v`+s);return}(0,v.getSDK)(b,x).then(t=>{this.player=new t.Player(this.playerID,{video:o?``:s,channel:o?s:``,height:`100%`,width:`100%`,playsinline:n,autoplay:this.props.playing,muted:this.props.muted,controls:o?!0:a,time:(0,v.parseStartTime)(e),...i.options});let{READY:r,PLAYING:c,PAUSE:l,ENDED:u,ONLINE:d,OFFLINE:f,SEEK:p}=t.Player;this.player.addEventListener(r,this.props.onReady),this.player.addEventListener(c,this.props.onPlay),this.player.addEventListener(l,this.props.onPause),this.player.addEventListener(u,this.props.onEnded),this.player.addEventListener(p,this.props.onSeek),this.player.addEventListener(d,this.props.onLoaded),this.player.addEventListener(f,this.props.onLoaded)},r)}play(){this.callPlayer(`play`)}pause(){this.callPlayer(`pause`)}stop(){this.callPlayer(`pause`)}seekTo(e,t=!0){this.callPlayer(`seek`,e),t||this.pause()}setVolume(e){this.callPlayer(`setVolume`,e)}getDuration(){return this.callPlayer(`getDuration`)}getCurrentTime(){return this.callPlayer(`getCurrentTime`)}getSecondsLoaded(){return null}render(){return _.default.createElement(`div`,{style:{width:`100%`,height:`100%`},id:this.playerID})}};p(C,`displayName`,`Twitch`),p(C,`canPlay`,y.canPlay.twitch),p(C,`loopOnEnded`,!0)})),T=l(((e,t)=>{var n=Object.create,r=Object.defineProperty,i=Object.getOwnPropertyDescriptor,a=Object.getOwnPropertyNames,o=Object.getPrototypeOf,s=Object.prototype.hasOwnProperty,c=(e,t,n)=>t in e?r(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,l=(e,t)=>{for(var n in t)r(e,n,{get:t[n],enumerable:!0})},u=(e,t,n,o)=>{if(t&&typeof t==`object`||typeof t==`function`)for(let c of a(t))!s.call(e,c)&&c!==n&&r(e,c,{get:()=>t[c],enumerable:!(o=i(t,c))||o.enumerable});return e},d=(e,t,i)=>(i=e==null?{}:n(o(e)),u(t||!e||!e.__esModule?r(i,`default`,{value:e,enumerable:!0}):i,e)),f=e=>u(r({},`__esModule`,{value:!0}),e),p=(e,t,n)=>(c(e,typeof t==`symbol`?t:t+``,n),n),m={};l(m,{default:()=>C}),t.exports=f(m);var _=d(require("react")),v=h(),y=g(),b=`https://api.dmcdn.net/all.js`,x=`DM`,S=`dmAsyncInit`,C=class extends _.Component{constructor(){super(...arguments),p(this,`callPlayer`,v.callPlayer),p(this,`onDurationChange`,()=>{let e=this.getDuration();this.props.onDuration(e)}),p(this,`mute`,()=>{this.callPlayer(`setMuted`,!0)}),p(this,`unmute`,()=>{this.callPlayer(`setMuted`,!1)}),p(this,`ref`,e=>{this.container=e})}componentDidMount(){this.props.onMount&&this.props.onMount(this)}load(e){let{controls:t,config:n,onError:r,playing:i}=this.props,[,a]=e.match(y.MATCH_URL_DAILYMOTION);if(this.player){this.player.load(a,{start:(0,v.parseStartTime)(e),autoplay:i});return}(0,v.getSDK)(b,x,S,e=>e.player).then(i=>{if(!this.container)return;let o=i.player;this.player=new o(this.container,{width:`100%`,height:`100%`,video:a,params:{controls:t,autoplay:this.props.playing,mute:this.props.muted,start:(0,v.parseStartTime)(e),origin:window.location.origin,...n.params},events:{apiready:this.props.onReady,seeked:()=>this.props.onSeek(this.player.currentTime),video_end:this.props.onEnded,durationchange:this.onDurationChange,pause:this.props.onPause,playing:this.props.onPlay,waiting:this.props.onBuffer,error:e=>r(e)}})},r)}play(){this.callPlayer(`play`)}pause(){this.callPlayer(`pause`)}stop(){}seekTo(e,t=!0){this.callPlayer(`seek`,e),t||this.pause()}setVolume(e){this.callPlayer(`setVolume`,e)}getDuration(){return this.player.duration||null}getCurrentTime(){return this.player.currentTime}getSecondsLoaded(){return this.player.bufferedTime}render(){let{display:e}=this.props,t={width:`100%`,height:`100%`,display:e};return _.default.createElement(`div`,{style:t},_.default.createElement(`div`,{ref:this.ref}))}};p(C,`displayName`,`DailyMotion`),p(C,`canPlay`,y.canPlay.dailymotion),p(C,`loopOnEnded`,!0)})),E=l(((e,t)=>{var n=Object.create,r=Object.defineProperty,i=Object.getOwnPropertyDescriptor,a=Object.getOwnPropertyNames,o=Object.getPrototypeOf,s=Object.prototype.hasOwnProperty,c=(e,t,n)=>t in e?r(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,l=(e,t)=>{for(var n in t)r(e,n,{get:t[n],enumerable:!0})},u=(e,t,n,o)=>{if(t&&typeof t==`object`||typeof t==`function`)for(let c of a(t))!s.call(e,c)&&c!==n&&r(e,c,{get:()=>t[c],enumerable:!(o=i(t,c))||o.enumerable});return e},d=(e,t,i)=>(i=e==null?{}:n(o(e)),u(t||!e||!e.__esModule?r(i,`default`,{value:e,enumerable:!0}):i,e)),f=e=>u(r({},`__esModule`,{value:!0}),e),p=(e,t,n)=>(c(e,typeof t==`symbol`?t:t+``,n),n),m={};l(m,{default:()=>S}),t.exports=f(m);var _=d(require("react")),v=h(),y=g(),b=`https://widget.mixcloud.com/media/js/widgetApi.js`,x=`Mixcloud`,S=class extends _.Component{constructor(){super(...arguments),p(this,`callPlayer`,v.callPlayer),p(this,`duration`,null),p(this,`currentTime`,null),p(this,`secondsLoaded`,null),p(this,`mute`,()=>{}),p(this,`unmute`,()=>{}),p(this,`ref`,e=>{this.iframe=e})}componentDidMount(){this.props.onMount&&this.props.onMount(this)}load(e){(0,v.getSDK)(b,x).then(e=>{this.player=e.PlayerWidget(this.iframe),this.player.ready.then(()=>{this.player.events.play.on(this.props.onPlay),this.player.events.pause.on(this.props.onPause),this.player.events.ended.on(this.props.onEnded),this.player.events.error.on(this.props.error),this.player.events.progress.on((e,t)=>{this.currentTime=e,this.duration=t}),this.props.onReady()})},this.props.onError)}play(){this.callPlayer(`play`)}pause(){this.callPlayer(`pause`)}stop(){}seekTo(e,t=!0){this.callPlayer(`seek`,e),t||this.pause()}setVolume(e){}getDuration(){return this.duration}getCurrentTime(){return this.currentTime}getSecondsLoaded(){return null}render(){let{url:e,config:t}=this.props,n=e.match(y.MATCH_URL_MIXCLOUD)[1],r={width:`100%`,height:`100%`},i=(0,v.queryString)({...t.options,feed:`/${n}/`});return _.default.createElement(`iframe`,{key:n,ref:this.ref,style:r,src:`https://player-widget.mixcloud.com/widget/iframe/?${i}`,frameBorder:`0`,allow:`autoplay`})}};p(S,`displayName`,`Mixcloud`),p(S,`canPlay`,y.canPlay.mixcloud),p(S,`loopOnEnded`,!0)})),D=l(((e,t)=>{var n=Object.create,r=Object.defineProperty,i=Object.getOwnPropertyDescriptor,a=Object.getOwnPropertyNames,o=Object.getPrototypeOf,s=Object.prototype.hasOwnProperty,c=(e,t,n)=>t in e?r(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,l=(e,t)=>{for(var n in t)r(e,n,{get:t[n],enumerable:!0})},u=(e,t,n,o)=>{if(t&&typeof t==`object`||typeof t==`function`)for(let c of a(t))!s.call(e,c)&&c!==n&&r(e,c,{get:()=>t[c],enumerable:!(o=i(t,c))||o.enumerable});return e},d=(e,t,i)=>(i=e==null?{}:n(o(e)),u(t||!e||!e.__esModule?r(i,`default`,{value:e,enumerable:!0}):i,e)),f=e=>u(r({},`__esModule`,{value:!0}),e),p=(e,t,n)=>(c(e,typeof t==`symbol`?t:t+``,n),n),m={};l(m,{default:()=>C}),t.exports=f(m);var _=d(require("react")),v=h(),y=g(),b=`https://play.vidyard.com/embed/v4.js`,x=`VidyardV4`,S=`onVidyardAPI`,C=class extends _.Component{constructor(){super(...arguments),p(this,`callPlayer`,v.callPlayer),p(this,`mute`,()=>{this.setVolume(0)}),p(this,`unmute`,()=>{this.props.volume!==null&&this.setVolume(this.props.volume)}),p(this,`ref`,e=>{this.container=e})}componentDidMount(){this.props.onMount&&this.props.onMount(this)}load(e){let{playing:t,config:n,onError:r,onDuration:i}=this.props,a=e&&e.match(y.MATCH_URL_VIDYARD)[1];this.player&&this.stop(),(0,v.getSDK)(b,x,S).then(e=>{this.container&&(e.api.addReadyListener((e,t)=>{this.player||(this.player=t,this.player.on(`ready`,this.props.onReady),this.player.on(`play`,this.props.onPlay),this.player.on(`pause`,this.props.onPause),this.player.on(`seek`,this.props.onSeek),this.player.on(`playerComplete`,this.props.onEnded))},a),e.api.renderPlayer({uuid:a,container:this.container,autoplay:+!!t,...n.options}),e.api.getPlayerMetadata(a).then(e=>{this.duration=e.length_in_seconds,i(e.length_in_seconds)}))},r)}play(){this.callPlayer(`play`)}pause(){this.callPlayer(`pause`)}stop(){window.VidyardV4.api.destroyPlayer(this.player)}seekTo(e,t=!0){this.callPlayer(`seek`,e),t||this.pause()}setVolume(e){this.callPlayer(`setVolume`,e)}setPlaybackRate(e){this.callPlayer(`setPlaybackSpeed`,e)}getDuration(){return this.duration}getCurrentTime(){return this.callPlayer(`currentTime`)}getSecondsLoaded(){return null}render(){let{display:e}=this.props,t={width:`100%`,height:`100%`,display:e};return _.default.createElement(`div`,{style:t},_.default.createElement(`div`,{ref:this.ref}))}};p(C,`displayName`,`Vidyard`),p(C,`canPlay`,y.canPlay.vidyard)})),O=l(((e,t)=>{var n=Object.create,r=Object.defineProperty,i=Object.getOwnPropertyDescriptor,a=Object.getOwnPropertyNames,o=Object.getPrototypeOf,s=Object.prototype.hasOwnProperty,c=(e,t,n)=>t in e?r(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,l=(e,t)=>{for(var n in t)r(e,n,{get:t[n],enumerable:!0})},u=(e,t,n,o)=>{if(t&&typeof t==`object`||typeof t==`function`)for(let c of a(t))!s.call(e,c)&&c!==n&&r(e,c,{get:()=>t[c],enumerable:!(o=i(t,c))||o.enumerable});return e},d=(e,t,i)=>(i=e==null?{}:n(o(e)),u(t||!e||!e.__esModule?r(i,`default`,{value:e,enumerable:!0}):i,e)),f=e=>u(r({},`__esModule`,{value:!0}),e),p=(e,t,n)=>(c(e,typeof t==`symbol`?t:t+``,n),n),m={};l(m,{default:()=>S}),t.exports=f(m);var _=d(require("react")),v=h(),y=g(),b=`https://cdn.embed.ly/player-0.1.0.min.js`,x=`playerjs`,S=class extends _.Component{constructor(){super(...arguments),p(this,`callPlayer`,v.callPlayer),p(this,`duration`,null),p(this,`currentTime`,null),p(this,`secondsLoaded`,null),p(this,`mute`,()=>{this.callPlayer(`mute`)}),p(this,`unmute`,()=>{this.callPlayer(`unmute`)}),p(this,`ref`,e=>{this.iframe=e})}componentDidMount(){this.props.onMount&&this.props.onMount(this)}load(e){(0,v.getSDK)(b,x).then(e=>{this.iframe&&(this.player=new e.Player(this.iframe),this.player.on(`ready`,()=>{setTimeout(()=>{this.player.isReady=!0,this.player.setLoop(this.props.loop),this.props.muted&&this.player.mute(),this.addListeners(this.player,this.props),this.props.onReady()},500)}))},this.props.onError)}addListeners(e,t){e.on(`play`,t.onPlay),e.on(`pause`,t.onPause),e.on(`ended`,t.onEnded),e.on(`error`,t.onError),e.on(`timeupdate`,({duration:e,seconds:t})=>{this.duration=e,this.currentTime=t})}play(){this.callPlayer(`play`)}pause(){this.callPlayer(`pause`)}stop(){}seekTo(e,t=!0){this.callPlayer(`setCurrentTime`,e),t||this.pause()}setVolume(e){this.callPlayer(`setVolume`,e)}setLoop(e){this.callPlayer(`setLoop`,e)}getDuration(){return this.duration}getCurrentTime(){return this.currentTime}getSecondsLoaded(){return this.secondsLoaded}render(){return _.default.createElement(`iframe`,{ref:this.ref,src:this.props.url,frameBorder:`0`,scrolling:`no`,style:{width:`100%`,height:`100%`},allow:`encrypted-media; autoplay; fullscreen;`,referrerPolicy:`no-referrer-when-downgrade`})}};p(S,`displayName`,`Kaltura`),p(S,`canPlay`,y.canPlay.kaltura)})),k=l(((e,t)=>{var n=Object.create,r=Object.defineProperty,i=Object.getOwnPropertyDescriptor,a=Object.getOwnPropertyNames,o=Object.getPrototypeOf,s=Object.prototype.hasOwnProperty,c=(e,t,n)=>t in e?r(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,l=(e,t)=>{for(var n in t)r(e,n,{get:t[n],enumerable:!0})},u=(e,t,n,o)=>{if(t&&typeof t==`object`||typeof t==`function`)for(let c of a(t))!s.call(e,c)&&c!==n&&r(e,c,{get:()=>t[c],enumerable:!(o=i(t,c))||o.enumerable});return e},d=(e,t,i)=>(i=e==null?{}:n(o(e)),u(t||!e||!e.__esModule?r(i,`default`,{value:e,enumerable:!0}):i,e)),f=e=>u(r({},`__esModule`,{value:!0}),e),p=(e,t,n)=>(c(e,typeof t==`symbol`?t:t+``,n),n),m={};l(m,{default:()=>N}),t.exports=f(m);var _=d(require("react")),v=h(),y=g(),b=typeof navigator<`u`,x=b&&navigator.platform===`MacIntel`&&navigator.maxTouchPoints>1,S=b&&(/iPad|iPhone|iPod/.test(navigator.userAgent)||x)&&!window.MSStream,C=b&&/^((?!chrome|android).)*safari/i.test(navigator.userAgent)&&!window.MSStream,w=`https://cdn.jsdelivr.net/npm/hls.js@VERSION/dist/hls.min.js`,T=`Hls`,E=`https://cdnjs.cloudflare.com/ajax/libs/dashjs/VERSION/dash.all.min.js`,D=`dashjs`,O=`https://cdn.jsdelivr.net/npm/flv.js@VERSION/dist/flv.min.js`,k=`flvjs`,A=/www\.dropbox\.com\/.+/,j=/https:\/\/watch\.cloudflarestream\.com\/([a-z0-9]+)/,M=`https://videodelivery.net/{id}/manifest/video.m3u8`,N=class extends _.Component{constructor(){super(...arguments),p(this,`onReady`,(...e)=>this.props.onReady(...e)),p(this,`onPlay`,(...e)=>this.props.onPlay(...e)),p(this,`onBuffer`,(...e)=>this.props.onBuffer(...e)),p(this,`onBufferEnd`,(...e)=>this.props.onBufferEnd(...e)),p(this,`onPause`,(...e)=>this.props.onPause(...e)),p(this,`onEnded`,(...e)=>this.props.onEnded(...e)),p(this,`onError`,(...e)=>this.props.onError(...e)),p(this,`onPlayBackRateChange`,e=>this.props.onPlaybackRateChange(e.target.playbackRate)),p(this,`onEnablePIP`,(...e)=>this.props.onEnablePIP(...e)),p(this,`onDisablePIP`,e=>{let{onDisablePIP:t,playing:n}=this.props;t(e),n&&this.play()}),p(this,`onPresentationModeChange`,e=>{if(this.player&&(0,v.supportsWebKitPresentationMode)(this.player)){let{webkitPresentationMode:t}=this.player;t===`picture-in-picture`?this.onEnablePIP(e):t===`inline`&&this.onDisablePIP(e)}}),p(this,`onSeek`,e=>{this.props.onSeek(e.target.currentTime)}),p(this,`mute`,()=>{this.player.muted=!0}),p(this,`unmute`,()=>{this.player.muted=!1}),p(this,`renderSourceElement`,(e,t)=>typeof e==`string`?_.default.createElement(`source`,{key:t,src:e}):_.default.createElement(`source`,{key:t,...e})),p(this,`renderTrack`,(e,t)=>_.default.createElement(`track`,{key:t,...e})),p(this,`ref`,e=>{this.player&&(this.prevPlayer=this.player),this.player=e})}componentDidMount(){this.props.onMount&&this.props.onMount(this),this.addListeners(this.player);let e=this.getSource(this.props.url);e&&(this.player.src=e),(S||this.props.config.forceDisableHls)&&this.player.load()}componentDidUpdate(e){this.shouldUseAudio(this.props)!==this.shouldUseAudio(e)&&(this.removeListeners(this.prevPlayer,e.url),this.addListeners(this.player)),this.props.url!==e.url&&!(0,v.isMediaStream)(this.props.url)&&!(this.props.url instanceof Array)&&(this.player.srcObject=null)}componentWillUnmount(){this.player.removeAttribute(`src`),this.removeListeners(this.player),this.hls&&this.hls.destroy()}addListeners(e){let{url:t,playsinline:n}=this.props;e.addEventListener(`play`,this.onPlay),e.addEventListener(`waiting`,this.onBuffer),e.addEventListener(`playing`,this.onBufferEnd),e.addEventListener(`pause`,this.onPause),e.addEventListener(`seeked`,this.onSeek),e.addEventListener(`ended`,this.onEnded),e.addEventListener(`error`,this.onError),e.addEventListener(`ratechange`,this.onPlayBackRateChange),e.addEventListener(`enterpictureinpicture`,this.onEnablePIP),e.addEventListener(`leavepictureinpicture`,this.onDisablePIP),e.addEventListener(`webkitpresentationmodechanged`,this.onPresentationModeChange),this.shouldUseHLS(t)||e.addEventListener(`canplay`,this.onReady),n&&(e.setAttribute(`playsinline`,``),e.setAttribute(`webkit-playsinline`,``),e.setAttribute(`x5-playsinline`,``))}removeListeners(e,t){e.removeEventListener(`canplay`,this.onReady),e.removeEventListener(`play`,this.onPlay),e.removeEventListener(`waiting`,this.onBuffer),e.removeEventListener(`playing`,this.onBufferEnd),e.removeEventListener(`pause`,this.onPause),e.removeEventListener(`seeked`,this.onSeek),e.removeEventListener(`ended`,this.onEnded),e.removeEventListener(`error`,this.onError),e.removeEventListener(`ratechange`,this.onPlayBackRateChange),e.removeEventListener(`enterpictureinpicture`,this.onEnablePIP),e.removeEventListener(`leavepictureinpicture`,this.onDisablePIP),e.removeEventListener(`webkitpresentationmodechanged`,this.onPresentationModeChange),this.shouldUseHLS(t)||e.removeEventListener(`canplay`,this.onReady)}shouldUseAudio(e){return e.config.forceVideo||e.config.attributes.poster?!1:y.AUDIO_EXTENSIONS.test(e.url)||e.config.forceAudio}shouldUseHLS(e){return C&&this.props.config.forceSafariHLS||this.props.config.forceHLS?!0:S||this.props.config.forceDisableHls?!1:y.HLS_EXTENSIONS.test(e)||j.test(e)}shouldUseDASH(e){return y.DASH_EXTENSIONS.test(e)||this.props.config.forceDASH}shouldUseFLV(e){return y.FLV_EXTENSIONS.test(e)||this.props.config.forceFLV}load(e){let{hlsVersion:t,hlsOptions:n,dashVersion:r,flvVersion:i}=this.props.config;if(this.hls&&this.hls.destroy(),this.dash&&this.dash.reset(),this.shouldUseHLS(e)&&(0,v.getSDK)(w.replace(`VERSION`,t),T).then(t=>{if(this.hls=new t(n),this.hls.on(t.Events.MANIFEST_PARSED,()=>{this.props.onReady()}),this.hls.on(t.Events.ERROR,(e,n)=>{this.props.onError(e,n,this.hls,t)}),j.test(e)){let t=e.match(j)[1];this.hls.loadSource(M.replace(`{id}`,t))}else this.hls.loadSource(e);this.hls.attachMedia(this.player),this.props.onLoaded()}),this.shouldUseDASH(e)&&(0,v.getSDK)(E.replace(`VERSION`,r),D).then(t=>{this.dash=t.MediaPlayer().create(),this.dash.initialize(this.player,e,this.props.playing),this.dash.on(`error`,this.props.onError),parseInt(r)<3?this.dash.getDebug().setLogToBrowserConsole(!1):this.dash.updateSettings({debug:{logLevel:t.Debug.LOG_LEVEL_NONE}}),this.props.onLoaded()}),this.shouldUseFLV(e)&&(0,v.getSDK)(O.replace(`VERSION`,i),k).then(t=>{this.flv=t.createPlayer({type:`flv`,url:e}),this.flv.attachMediaElement(this.player),this.flv.on(t.Events.ERROR,(e,n)=>{this.props.onError(e,n,this.flv,t)}),this.flv.load(),this.props.onLoaded()}),e instanceof Array)this.player.load();else if((0,v.isMediaStream)(e))try{this.player.srcObject=e}catch{this.player.src=window.URL.createObjectURL(e)}}play(){let e=this.player.play();e&&e.catch(this.props.onError)}pause(){this.player.pause()}stop(){this.player.removeAttribute(`src`),this.dash&&this.dash.reset()}seekTo(e,t=!0){this.player.currentTime=e,t||this.pause()}setVolume(e){this.player.volume=e}enablePIP(){this.player.requestPictureInPicture&&document.pictureInPictureElement!==this.player?this.player.requestPictureInPicture():(0,v.supportsWebKitPresentationMode)(this.player)&&this.player.webkitPresentationMode!==`picture-in-picture`&&this.player.webkitSetPresentationMode(`picture-in-picture`)}disablePIP(){document.exitPictureInPicture&&document.pictureInPictureElement===this.player?document.exitPictureInPicture():(0,v.supportsWebKitPresentationMode)(this.player)&&this.player.webkitPresentationMode!==`inline`&&this.player.webkitSetPresentationMode(`inline`)}setPlaybackRate(e){try{this.player.playbackRate=e}catch(e){this.props.onError(e)}}getDuration(){if(!this.player)return null;let{duration:e,seekable:t}=this.player;return e===1/0&&t.length>0?t.end(t.length-1):e}getCurrentTime(){return this.player?this.player.currentTime:null}getSecondsLoaded(){if(!this.player)return null;let{buffered:e}=this.player;if(e.length===0)return 0;let t=e.end(e.length-1),n=this.getDuration();return t>n?n:t}getSource(e){let t=this.shouldUseHLS(e),n=this.shouldUseDASH(e),r=this.shouldUseFLV(e);if(!(e instanceof Array||(0,v.isMediaStream)(e)||t||n||r))return A.test(e)?e.replace(`www.dropbox.com`,`dl.dropboxusercontent.com`):e}render(){let{url:e,playing:t,loop:n,controls:r,muted:i,config:a,width:o,height:s}=this.props,c=this.shouldUseAudio(this.props)?`audio`:`video`,l={width:o===`auto`?o:`100%`,height:s===`auto`?s:`100%`};return _.default.createElement(c,{ref:this.ref,src:this.getSource(e),style:l,preload:`auto`,autoPlay:t||void 0,controls:r,muted:i,loop:n,...a.attributes},e instanceof Array&&e.map(this.renderSourceElement),a.tracks.map(this.renderTrack))}};p(N,`displayName`,`FilePlayer`),p(N,`canPlay`,y.canPlay.file)})),A=l(((e,t)=>{var n=Object.defineProperty,r=Object.getOwnPropertyDescriptor,i=Object.getOwnPropertyNames,a=Object.prototype.hasOwnProperty,o=(e,t)=>{for(var r in t)n(e,r,{get:t[r],enumerable:!0})},s=(e,t,o,s)=>{if(t&&typeof t==`object`||typeof t==`function`)for(let c of i(t))!a.call(e,c)&&c!==o&&n(e,c,{get:()=>t[c],enumerable:!(s=r(t,c))||s.enumerable});return e},c=e=>s(n({},`__esModule`,{value:!0}),e),l={};o(l,{default:()=>p}),t.exports=c(l);var u=h(),d=g(),p=[{key:`youtube`,name:`YouTube`,canPlay:d.canPlay.youtube,lazyPlayer:(0,u.lazy)(()=>Promise.resolve().then(()=>f(_())))},{key:`soundcloud`,name:`SoundCloud`,canPlay:d.canPlay.soundcloud,lazyPlayer:(0,u.lazy)(()=>Promise.resolve().then(()=>f(v())))},{key:`vimeo`,name:`Vimeo`,canPlay:d.canPlay.vimeo,lazyPlayer:(0,u.lazy)(()=>Promise.resolve().then(()=>f(y())))},{key:`mux`,name:`Mux`,canPlay:d.canPlay.mux,lazyPlayer:(0,u.lazy)(()=>Promise.resolve().then(()=>f(b())))},{key:`facebook`,name:`Facebook`,canPlay:d.canPlay.facebook,lazyPlayer:(0,u.lazy)(()=>Promise.resolve().then(()=>f(x())))},{key:`streamable`,name:`Streamable`,canPlay:d.canPlay.streamable,lazyPlayer:(0,u.lazy)(()=>Promise.resolve().then(()=>f(S())))},{key:`wistia`,name:`Wistia`,canPlay:d.canPlay.wistia,lazyPlayer:(0,u.lazy)(()=>Promise.resolve().then(()=>f(C())))},{key:`twitch`,name:`Twitch`,canPlay:d.canPlay.twitch,lazyPlayer:(0,u.lazy)(()=>Promise.resolve().then(()=>f(w())))},{key:`dailymotion`,name:`DailyMotion`,canPlay:d.canPlay.dailymotion,lazyPlayer:(0,u.lazy)(()=>Promise.resolve().then(()=>f(T())))},{key:`mixcloud`,name:`Mixcloud`,canPlay:d.canPlay.mixcloud,lazyPlayer:(0,u.lazy)(()=>Promise.resolve().then(()=>f(E())))},{key:`vidyard`,name:`Vidyard`,canPlay:d.canPlay.vidyard,lazyPlayer:(0,u.lazy)(()=>Promise.resolve().then(()=>f(D())))},{key:`kaltura`,name:`Kaltura`,canPlay:d.canPlay.kaltura,lazyPlayer:(0,u.lazy)(()=>Promise.resolve().then(()=>f(O())))},{key:`file`,name:`FilePlayer`,canPlay:d.canPlay.file,canEnablePIP:e=>d.canPlay.file(e)&&(document.pictureInPictureEnabled||(0,u.supportsWebKitPresentationMode)())&&!d.AUDIO_EXTENSIONS.test(e),lazyPlayer:(0,u.lazy)(()=>Promise.resolve().then(()=>f(k())))}]})),j=u({default:()=>P});function M(e,t){return!!(e===t||F(e)&&F(t))}function N(e,t){if(e.length!==t.length)return!1;for(var n=0;n<e.length;n++)if(!M(e[n],t[n]))return!1;return!0}function P(e,t){t===void 0&&(t=N);var n,r=[],i,a=!1;function o(){for(var o=[],s=0;s<arguments.length;s++)o[s]=arguments[s];return a&&n===this&&t(o,r)?i:(i=e.apply(this,o),a=!0,n=this,r=o,i)}return o}var F,I=c((()=>{F=Number.isNaN||function(e){return typeof e==`number`&&e!==e}})),L=l(((e,t)=>{var n=typeof Element<`u`,r=typeof Map==`function`,i=typeof Set==`function`,a=typeof ArrayBuffer==`function`&&!!ArrayBuffer.isView;function o(e,t){if(e===t)return!0;if(e&&t&&typeof e==`object`&&typeof t==`object`){if(e.constructor!==t.constructor)return!1;var s,c,l;if(Array.isArray(e)){if(s=e.length,s!=t.length)return!1;for(c=s;c--!==0;)if(!o(e[c],t[c]))return!1;return!0}var u;if(r&&e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(u=e.entries();!(c=u.next()).done;)if(!t.has(c.value[0]))return!1;for(u=e.entries();!(c=u.next()).done;)if(!o(c.value[1],t.get(c.value[0])))return!1;return!0}if(i&&e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(u=e.entries();!(c=u.next()).done;)if(!t.has(c.value[0]))return!1;return!0}if(a&&ArrayBuffer.isView(e)&&ArrayBuffer.isView(t)){if(s=e.length,s!=t.length)return!1;for(c=s;c--!==0;)if(e[c]!==t[c])return!1;return!0}if(e.constructor===RegExp)return e.source===t.source&&e.flags===t.flags;if(e.valueOf!==Object.prototype.valueOf&&typeof e.valueOf==`function`&&typeof t.valueOf==`function`)return e.valueOf()===t.valueOf();if(e.toString!==Object.prototype.toString&&typeof e.toString==`function`&&typeof t.toString==`function`)return e.toString()===t.toString();if(l=Object.keys(e),s=l.length,s!==Object.keys(t).length)return!1;for(c=s;c--!==0;)if(!Object.prototype.hasOwnProperty.call(t,l[c]))return!1;if(n&&e instanceof Element)return!1;for(c=s;c--!==0;)if(!((l[c]===`_owner`||l[c]===`__v`||l[c]===`__o`)&&e.$$typeof)&&!o(e[l[c]],t[l[c]]))return!1;return!0}return e!==e&&t!==t}t.exports=function(e,t){try{return o(e,t)}catch(e){if((e.message||``).match(/stack|recursion/i))return console.warn(`react-fast-compare cannot handle circular refs`),!1;throw e}}})),R=l((e=>{var t=typeof Symbol==`function`&&Symbol.for,n=t?Symbol.for(`react.element`):60103,r=t?Symbol.for(`react.portal`):60106,i=t?Symbol.for(`react.fragment`):60107,a=t?Symbol.for(`react.strict_mode`):60108,o=t?Symbol.for(`react.profiler`):60114,s=t?Symbol.for(`react.provider`):60109,c=t?Symbol.for(`react.context`):60110,l=t?Symbol.for(`react.async_mode`):60111,u=t?Symbol.for(`react.concurrent_mode`):60111,d=t?Symbol.for(`react.forward_ref`):60112,f=t?Symbol.for(`react.suspense`):60113,p=t?Symbol.for(`react.suspense_list`):60120,m=t?Symbol.for(`react.memo`):60115,h=t?Symbol.for(`react.lazy`):60116,g=t?Symbol.for(`react.block`):60121,_=t?Symbol.for(`react.fundamental`):60117,v=t?Symbol.for(`react.responder`):60118,y=t?Symbol.for(`react.scope`):60119;function b(e){if(typeof e==`object`&&e){var t=e.$$typeof;switch(t){case n:switch(e=e.type,e){case l:case u:case i:case o:case a:case f:return e;default:switch(e&&=e.$$typeof,e){case c:case d:case h:case m:case s:return e;default:return t}}case r:return t}}}function x(e){return b(e)===u}e.AsyncMode=l,e.ConcurrentMode=u,e.ContextConsumer=c,e.ContextProvider=s,e.Element=n,e.ForwardRef=d,e.Fragment=i,e.Lazy=h,e.Memo=m,e.Portal=r,e.Profiler=o,e.StrictMode=a,e.Suspense=f,e.isAsyncMode=function(e){return x(e)||b(e)===l},e.isConcurrentMode=x,e.isContextConsumer=function(e){return b(e)===c},e.isContextProvider=function(e){return b(e)===s},e.isElement=function(e){return typeof e==`object`&&!!e&&e.$$typeof===n},e.isForwardRef=function(e){return b(e)===d},e.isFragment=function(e){return b(e)===i},e.isLazy=function(e){return b(e)===h},e.isMemo=function(e){return b(e)===m},e.isPortal=function(e){return b(e)===r},e.isProfiler=function(e){return b(e)===o},e.isStrictMode=function(e){return b(e)===a},e.isSuspense=function(e){return b(e)===f},e.isValidElementType=function(e){return typeof e==`string`||typeof e==`function`||e===i||e===u||e===o||e===a||e===f||e===p||typeof e==`object`&&!!e&&(e.$$typeof===h||e.$$typeof===m||e.$$typeof===s||e.$$typeof===c||e.$$typeof===d||e.$$typeof===_||e.$$typeof===v||e.$$typeof===y||e.$$typeof===g)},e.typeOf=b})),z=l((e=>{process.env.NODE_ENV!==`production`&&(function(){"use strict";var t=typeof Symbol==`function`&&Symbol.for,n=t?Symbol.for(`react.element`):60103,r=t?Symbol.for(`react.portal`):60106,i=t?Symbol.for(`react.fragment`):60107,a=t?Symbol.for(`react.strict_mode`):60108,o=t?Symbol.for(`react.profiler`):60114,s=t?Symbol.for(`react.provider`):60109,c=t?Symbol.for(`react.context`):60110,l=t?Symbol.for(`react.async_mode`):60111,u=t?Symbol.for(`react.concurrent_mode`):60111,d=t?Symbol.for(`react.forward_ref`):60112,f=t?Symbol.for(`react.suspense`):60113,p=t?Symbol.for(`react.suspense_list`):60120,m=t?Symbol.for(`react.memo`):60115,h=t?Symbol.for(`react.lazy`):60116,g=t?Symbol.for(`react.block`):60121,_=t?Symbol.for(`react.fundamental`):60117,v=t?Symbol.for(`react.responder`):60118,y=t?Symbol.for(`react.scope`):60119;function b(e){return typeof e==`string`||typeof e==`function`||e===i||e===u||e===o||e===a||e===f||e===p||typeof e==`object`&&!!e&&(e.$$typeof===h||e.$$typeof===m||e.$$typeof===s||e.$$typeof===c||e.$$typeof===d||e.$$typeof===_||e.$$typeof===v||e.$$typeof===y||e.$$typeof===g)}function x(e){if(typeof e==`object`&&e){var t=e.$$typeof;switch(t){case n:var p=e.type;switch(p){case l:case u:case i:case o:case a:case f:return p;default:var g=p&&p.$$typeof;switch(g){case c:case d:case h:case m:case s:return g;default:return t}}case r:return t}}}var S=l,C=u,w=c,T=s,E=n,D=d,O=i,k=h,A=m,j=r,M=o,N=a,P=f,F=!1;function I(e){return F||(F=!0,console.warn(`The ReactIs.isAsyncMode() alias has been deprecated, and will be removed in React 17+. Update your code to use ReactIs.isConcurrentMode() instead. It has the exact same API.`)),L(e)||x(e)===l}function L(e){return x(e)===u}function R(e){return x(e)===c}function z(e){return x(e)===s}function B(e){return typeof e==`object`&&!!e&&e.$$typeof===n}function V(e){return x(e)===d}function H(e){return x(e)===i}function U(e){return x(e)===h}function W(e){return x(e)===m}function G(e){return x(e)===r}function K(e){return x(e)===o}function q(e){return x(e)===a}function J(e){return x(e)===f}e.AsyncMode=S,e.ConcurrentMode=C,e.ContextConsumer=w,e.ContextProvider=T,e.Element=E,e.ForwardRef=D,e.Fragment=O,e.Lazy=k,e.Memo=A,e.Portal=j,e.Profiler=M,e.StrictMode=N,e.Suspense=P,e.isAsyncMode=I,e.isConcurrentMode=L,e.isContextConsumer=R,e.isContextProvider=z,e.isElement=B,e.isForwardRef=V,e.isFragment=H,e.isLazy=U,e.isMemo=W,e.isPortal=G,e.isProfiler=K,e.isStrictMode=q,e.isSuspense=J,e.isValidElementType=b,e.typeOf=x})()})),B=l(((e,t)=>{process.env.NODE_ENV===`production`?t.exports=R():t.exports=z()})),V=l(((e,t)=>{var n=Object.getOwnPropertySymbols,r=Object.prototype.hasOwnProperty,i=Object.prototype.propertyIsEnumerable;function a(e){if(e==null)throw TypeError(`Object.assign cannot be called with null or undefined`);return Object(e)}function o(){try{if(!Object.assign)return!1;var e=new String(`abc`);if(e[5]=`de`,Object.getOwnPropertyNames(e)[0]===`5`)return!1;for(var t={},n=0;n<10;n++)t[`_`+String.fromCharCode(n)]=n;if(Object.getOwnPropertyNames(t).map(function(e){return t[e]}).join(``)!==`0123456789`)return!1;var r={};return`abcdefghijklmnopqrst`.split(``).forEach(function(e){r[e]=e}),Object.keys(Object.assign({},r)).join(``)===`abcdefghijklmnopqrst`}catch{return!1}}t.exports=o()?Object.assign:function(e,t){for(var o,s=a(e),c,l=1;l<arguments.length;l++){for(var u in o=Object(arguments[l]),o)r.call(o,u)&&(s[u]=o[u]);if(n){c=n(o);for(var d=0;d<c.length;d++)i.call(o,c[d])&&(s[c[d]]=o[c[d]])}}return s}})),H=l(((e,t)=>{t.exports=`SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED`})),U=l(((e,t)=>{t.exports=Function.call.bind(Object.prototype.hasOwnProperty)})),W=l(((e,t)=>{var n=function(){};if(process.env.NODE_ENV!==`production`){var r=H(),i={},a=U();n=function(e){var t=`Warning: `+e;typeof console<`u`&&console.error(t);try{throw Error(t)}catch{}}}function o(e,t,o,s,c){if(process.env.NODE_ENV!==`production`){for(var l in e)if(a(e,l)){var u;try{if(typeof e[l]!=`function`){var d=Error((s||`React class`)+`: `+o+" type `"+l+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+typeof e[l]+"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");throw d.name=`Invariant Violation`,d}u=e[l](t,l,s,o,null,r)}catch(e){u=e}if(u&&!(u instanceof Error)&&n((s||`React class`)+`: type specification of `+o+" `"+l+"` is invalid; the type checker function must return `null` or an `Error` but returned a "+typeof u+`. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).`),u instanceof Error&&!(u.message in i)){i[u.message]=!0;var f=c?c():``;n(`Failed `+o+` type: `+u.message+(f??``))}}}}o.resetWarningCache=function(){process.env.NODE_ENV!==`production`&&(i={})},t.exports=o})),G=l(((e,t)=>{var n=B(),r=V(),i=H(),a=U(),o=W(),s=function(){};process.env.NODE_ENV!==`production`&&(s=function(e){var t=`Warning: `+e;typeof console<`u`&&console.error(t);try{throw Error(t)}catch{}});function c(){return null}t.exports=function(e,t){var l=typeof Symbol==`function`&&Symbol.iterator,u=`@@iterator`;function d(e){var t=e&&(l&&e[l]||e[u]);if(typeof t==`function`)return t}var f=`<<anonymous>>`,p={array:_(`array`),bigint:_(`bigint`),bool:_(`boolean`),func:_(`function`),number:_(`number`),object:_(`object`),string:_(`string`),symbol:_(`symbol`),any:v(),arrayOf:y,element:b(),elementType:x(),instanceOf:S,node:E(),objectOf:w,oneOf:C,oneOfType:T,shape:O,exact:k};function m(e,t){return e===t?e!==0||1/e==1/t:e!==e&&t!==t}function h(e,t){this.message=e,this.data=t&&typeof t==`object`?t:{},this.stack=``}h.prototype=Error.prototype;function g(e){if(process.env.NODE_ENV!==`production`)var n={},r=0;function a(a,o,c,l,u,d,p){if(l||=f,d||=c,p!==i){if(t){var m=Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use `PropTypes.checkPropTypes()` to call them. Read more at http://fb.me/use-check-prop-types");throw m.name=`Invariant Violation`,m}else if(process.env.NODE_ENV!==`production`&&typeof console<`u`){var g=l+`:`+c;!n[g]&&r<3&&(s("You are manually calling a React.PropTypes validation function for the `"+d+"` prop on `"+l+"`. This is deprecated and will throw in the standalone `prop-types` package. You may be seeing this warning due to a third-party PropTypes library. See https://fb.me/react-warning-dont-call-proptypes for details."),n[g]=!0,r++)}}return o[c]==null?a?o[c]===null?new h(`The `+u+" `"+d+"` is marked as required "+("in `"+l+"`, but its value is `null`.")):new h(`The `+u+" `"+d+"` is marked as required in "+("`"+l+"`, but its value is `undefined`.")):null:e(o,c,l,u,d)}var o=a.bind(null,!1);return o.isRequired=a.bind(null,!0),o}function _(e){function t(t,n,r,i,a,o){var s=t[n];if(M(s)!==e){var c=N(s);return new h(`Invalid `+i+" `"+a+"` of type "+("`"+c+"` supplied to `"+r+"`, expected ")+("`"+e+"`."),{expectedType:e})}return null}return g(t)}function v(){return g(c)}function y(e){function t(t,n,r,a,o){if(typeof e!=`function`)return new h("Property `"+o+"` of component `"+r+"` has invalid PropType notation inside arrayOf.");var s=t[n];if(!Array.isArray(s)){var c=M(s);return new h(`Invalid `+a+" `"+o+"` of type "+("`"+c+"` supplied to `"+r+"`, expected an array."))}for(var l=0;l<s.length;l++){var u=e(s,l,r,a,o+`[`+l+`]`,i);if(u instanceof Error)return u}return null}return g(t)}function b(){function t(t,n,r,i,a){var o=t[n];if(!e(o)){var s=M(o);return new h(`Invalid `+i+" `"+a+"` of type "+("`"+s+"` supplied to `"+r+"`, expected a single ReactElement."))}return null}return g(t)}function x(){function e(e,t,r,i,a){var o=e[t];if(!n.isValidElementType(o)){var s=M(o);return new h(`Invalid `+i+" `"+a+"` of type "+("`"+s+"` supplied to `"+r+"`, expected a single ReactElement type."))}return null}return g(e)}function S(e){function t(t,n,r,i,a){if(!(t[n]instanceof e)){var o=e.name||f,s=F(t[n]);return new h(`Invalid `+i+" `"+a+"` of type "+("`"+s+"` supplied to `"+r+"`, expected ")+("instance of `"+o+"`."))}return null}return g(t)}function C(e){if(!Array.isArray(e))return process.env.NODE_ENV!==`production`&&(arguments.length>1?s(`Invalid arguments supplied to oneOf, expected an array, got `+arguments.length+` arguments. A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).`):s(`Invalid argument supplied to oneOf, expected an array.`)),c;function t(t,n,r,i,a){for(var o=t[n],s=0;s<e.length;s++)if(m(o,e[s]))return null;var c=JSON.stringify(e,function(e,t){return N(t)===`symbol`?String(t):t});return new h(`Invalid `+i+" `"+a+"` of value `"+String(o)+"` "+("supplied to `"+r+"`, expected one of "+c+`.`))}return g(t)}function w(e){function t(t,n,r,o,s){if(typeof e!=`function`)return new h("Property `"+s+"` of component `"+r+"` has invalid PropType notation inside objectOf.");var c=t[n],l=M(c);if(l!==`object`)return new h(`Invalid `+o+" `"+s+"` of type "+("`"+l+"` supplied to `"+r+"`, expected an object."));for(var u in c)if(a(c,u)){var d=e(c,u,r,o,s+`.`+u,i);if(d instanceof Error)return d}return null}return g(t)}function T(e){if(!Array.isArray(e))return process.env.NODE_ENV!==`production`&&s(`Invalid argument supplied to oneOfType, expected an instance of array.`),c;for(var t=0;t<e.length;t++){var n=e[t];if(typeof n!=`function`)return s(`Invalid argument supplied to oneOfType. Expected an array of check functions, but received `+P(n)+` at index `+t+`.`),c}function r(t,n,r,o,s){for(var c=[],l=0;l<e.length;l++){var u=e[l],d=u(t,n,r,o,s,i);if(d==null)return null;d.data&&a(d.data,`expectedType`)&&c.push(d.data.expectedType)}var f=c.length>0?`, expected one of type [`+c.join(`, `)+`]`:``;return new h(`Invalid `+o+" `"+s+"` supplied to "+("`"+r+"`"+f+`.`))}return g(r)}function E(){function e(e,t,n,r,i){return A(e[t])?null:new h(`Invalid `+r+" `"+i+"` supplied to "+("`"+n+"`, expected a ReactNode."))}return g(e)}function D(e,t,n,r,i){return new h((e||`React class`)+`: `+t+" type `"+n+`.`+r+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+i+"`.")}function O(e){function t(t,n,r,a,o){var s=t[n],c=M(s);if(c!==`object`)return new h(`Invalid `+a+" `"+o+"` of type `"+c+"` "+("supplied to `"+r+"`, expected `object`."));for(var l in e){var u=e[l];if(typeof u!=`function`)return D(r,a,o,l,N(u));var d=u(s,l,r,a,o+`.`+l,i);if(d)return d}return null}return g(t)}function k(e){function t(t,n,o,s,c){var l=t[n],u=M(l);if(u!==`object`)return new h(`Invalid `+s+" `"+c+"` of type `"+u+"` "+("supplied to `"+o+"`, expected `object`."));for(var d in r({},t[n],e)){var f=e[d];if(a(e,d)&&typeof f!=`function`)return D(o,s,c,d,N(f));if(!f)return new h(`Invalid `+s+" `"+c+"` key `"+d+"` supplied to `"+o+`\`.
2
+ Bad object: `+JSON.stringify(t[n],null,` `)+`
3
+ Valid keys: `+JSON.stringify(Object.keys(e),null,` `));var p=f(l,d,o,s,c+`.`+d,i);if(p)return p}return null}return g(t)}function A(t){switch(typeof t){case`number`:case`string`:case`undefined`:return!0;case`boolean`:return!t;case`object`:if(Array.isArray(t))return t.every(A);if(t===null||e(t))return!0;var n=d(t);if(n){var r=n.call(t),i;if(n!==t.entries){for(;!(i=r.next()).done;)if(!A(i.value))return!1}else for(;!(i=r.next()).done;){var a=i.value;if(a&&!A(a[1]))return!1}}else return!1;return!0;default:return!1}}function j(e,t){return e===`symbol`?!0:t?t[`@@toStringTag`]===`Symbol`||typeof Symbol==`function`&&t instanceof Symbol:!1}function M(e){var t=typeof e;return Array.isArray(e)?`array`:e instanceof RegExp?`object`:j(t,e)?`symbol`:t}function N(e){if(e==null)return``+e;var t=M(e);if(t===`object`){if(e instanceof Date)return`date`;if(e instanceof RegExp)return`regexp`}return t}function P(e){var t=N(e);switch(t){case`array`:case`object`:return`an `+t;case`boolean`:case`date`:case`regexp`:return`a `+t;default:return t}}function F(e){return!e.constructor||!e.constructor.name?f:e.constructor.name}return p.checkPropTypes=o,p.resetWarningCache=o.resetWarningCache,p.PropTypes=p,p}})),K=l(((e,t)=>{var n=H();function r(){}function i(){}i.resetWarningCache=r,t.exports=function(){function e(e,t,r,i,a,o){if(o!==n){var s=Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw s.name=`Invariant Violation`,s}}e.isRequired=e;function t(){return e}var a={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:i,resetWarningCache:r};return a.PropTypes=a,a}})),q=l(((e,t)=>{if(process.env.NODE_ENV!==`production`){var n=B();t.exports=G()(n.isElement,!0)}else t.exports=K()()})),J=l(((e,t)=>{var n=Object.create,r=Object.defineProperty,i=Object.getOwnPropertyDescriptor,a=Object.getOwnPropertyNames,o=Object.getPrototypeOf,s=Object.prototype.hasOwnProperty,c=(e,t)=>{for(var n in t)r(e,n,{get:t[n],enumerable:!0})},l=(e,t,n,o)=>{if(t&&typeof t==`object`||typeof t==`function`)for(let c of a(t))!s.call(e,c)&&c!==n&&r(e,c,{get:()=>t[c],enumerable:!(o=i(t,c))||o.enumerable});return e},u=(e,t,i)=>(i=e==null?{}:n(o(e)),l(t||!e||!e.__esModule?r(i,`default`,{value:e,enumerable:!0}):i,e)),d=e=>l(r({},`__esModule`,{value:!0}),e),f={};c(f,{defaultProps:()=>w,propTypes:()=>S}),t.exports=d(f);var{string:p,bool:m,number:h,array:g,oneOfType:_,shape:v,object:y,func:b,node:x}=u(q()).default,S={url:_([p,g,y]),playing:m,loop:m,controls:m,volume:h,muted:m,playbackRate:h,width:_([p,h]),height:_([p,h]),style:y,progressInterval:h,playsinline:m,pip:m,stopOnUnmount:m,light:_([m,p,y]),playIcon:x,previewTabIndex:h,previewAriaLabel:p,fallback:x,oEmbedUrl:p,wrapper:_([p,b,v({render:b.isRequired})]),config:v({soundcloud:v({options:y}),youtube:v({playerVars:y,embedOptions:y,onUnstarted:b}),facebook:v({appId:p,version:p,playerId:p,attributes:y}),dailymotion:v({params:y}),vimeo:v({playerOptions:y,title:p}),mux:v({attributes:y,version:p}),file:v({attributes:y,tracks:g,forceVideo:m,forceAudio:m,forceHLS:m,forceSafariHLS:m,forceDisableHls:m,forceDASH:m,forceFLV:m,hlsOptions:y,hlsVersion:p,dashVersion:p,flvVersion:p}),wistia:v({options:y,playerId:p,customControls:g}),mixcloud:v({options:y}),twitch:v({options:y,playerId:p}),vidyard:v({options:y})}),onReady:b,onStart:b,onPlay:b,onPause:b,onBuffer:b,onBufferEnd:b,onEnded:b,onError:b,onDuration:b,onSeek:b,onPlaybackRateChange:b,onPlaybackQualityChange:b,onProgress:b,onClickPreview:b,onEnablePIP:b,onDisablePIP:b},C=()=>{},w={playing:!1,loop:!1,controls:!1,volume:null,muted:!1,playbackRate:1,width:`640px`,height:`360px`,style:{},progressInterval:1e3,playsinline:!1,pip:!1,stopOnUnmount:!0,light:!1,fallback:null,wrapper:`div`,previewTabIndex:0,previewAriaLabel:``,oEmbedUrl:`https://noembed.com/embed?url={url}`,config:{soundcloud:{options:{visual:!0,buying:!1,liking:!1,download:!1,sharing:!1,show_comments:!1,show_playcount:!1}},youtube:{playerVars:{playsinline:1,showinfo:0,rel:0,iv_load_policy:3,modestbranding:1},embedOptions:{},onUnstarted:C},facebook:{appId:`1309697205772819`,version:`v3.3`,playerId:null,attributes:{}},dailymotion:{params:{api:1,"endscreen-enable":!1}},vimeo:{playerOptions:{autopause:!1,byline:!1,portrait:!1,title:!1},title:null},mux:{attributes:{},version:`2`},file:{attributes:{},tracks:[],forceVideo:!1,forceAudio:!1,forceHLS:!1,forceDASH:!1,forceFLV:!1,hlsOptions:{},hlsVersion:`1.1.4`,dashVersion:`3.1.3`,flvVersion:`1.5.0`,forceDisableHls:!1},wistia:{options:{},playerId:null,customControls:null},mixcloud:{options:{hide_cover:1}},twitch:{options:{},playerId:null},vidyard:{options:{}}},onReady:C,onStart:C,onPlay:C,onPause:C,onBuffer:C,onBufferEnd:C,onEnded:C,onError:C,onDuration:C,onSeek:C,onPlaybackRateChange:C,onPlaybackQualityChange:C,onProgress:C,onClickPreview:C,onEnablePIP:C,onDisablePIP:C}})),ee=l(((e,t)=>{var n=Object.create,r=Object.defineProperty,i=Object.getOwnPropertyDescriptor,a=Object.getOwnPropertyNames,o=Object.getPrototypeOf,s=Object.prototype.hasOwnProperty,c=(e,t,n)=>t in e?r(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,l=(e,t)=>{for(var n in t)r(e,n,{get:t[n],enumerable:!0})},u=(e,t,n,o)=>{if(t&&typeof t==`object`||typeof t==`function`)for(let c of a(t))!s.call(e,c)&&c!==n&&r(e,c,{get:()=>t[c],enumerable:!(o=i(t,c))||o.enumerable});return e},d=(e,t,i)=>(i=e==null?{}:n(o(e)),u(t||!e||!e.__esModule?r(i,`default`,{value:e,enumerable:!0}):i,e)),f=e=>u(r({},`__esModule`,{value:!0}),e),p=(e,t,n)=>(c(e,typeof t==`symbol`?t:t+``,n),n),m={};l(m,{default:()=>x}),t.exports=f(m);var g=d(require("react")),_=d(L()),v=J(),y=h(),b=5e3,x=class extends g.Component{constructor(){super(...arguments),p(this,`mounted`,!1),p(this,`isReady`,!1),p(this,`isPlaying`,!1),p(this,`isLoading`,!0),p(this,`loadOnReady`,null),p(this,`startOnPlay`,!0),p(this,`seekOnPlay`,null),p(this,`onDurationCalled`,!1),p(this,`handlePlayerMount`,e=>{if(this.player){this.progress();return}this.player=e,this.player.load(this.props.url),this.progress()}),p(this,`getInternalPlayer`,e=>this.player?this.player[e]:null),p(this,`progress`,()=>{if(this.props.url&&this.player&&this.isReady){let e=this.getCurrentTime()||0,t=this.getSecondsLoaded(),n=this.getDuration();if(n){let r={playedSeconds:e,played:e/n};t!==null&&(r.loadedSeconds=t,r.loaded=t/n),(r.playedSeconds!==this.prevPlayed||r.loadedSeconds!==this.prevLoaded)&&this.props.onProgress(r),this.prevPlayed=r.playedSeconds,this.prevLoaded=r.loadedSeconds}}this.progressTimeout=setTimeout(this.progress,this.props.progressFrequency||this.props.progressInterval)}),p(this,`handleReady`,()=>{if(!this.mounted)return;this.isReady=!0,this.isLoading=!1;let{onReady:e,playing:t,volume:n,muted:r}=this.props;e(),!r&&n!==null&&this.player.setVolume(n),this.loadOnReady?(this.player.load(this.loadOnReady,!0),this.loadOnReady=null):t&&this.player.play(),this.handleDurationCheck()}),p(this,`handlePlay`,()=>{this.isPlaying=!0,this.isLoading=!1;let{onStart:e,onPlay:t,playbackRate:n}=this.props;this.startOnPlay&&=(this.player.setPlaybackRate&&n!==1&&this.player.setPlaybackRate(n),e(),!1),t(),this.seekOnPlay&&=(this.seekTo(this.seekOnPlay),null),this.handleDurationCheck()}),p(this,`handlePause`,e=>{this.isPlaying=!1,this.isLoading||this.props.onPause(e)}),p(this,`handleEnded`,()=>{let{activePlayer:e,loop:t,onEnded:n}=this.props;e.loopOnEnded&&t&&this.seekTo(0),t||(this.isPlaying=!1,n())}),p(this,`handleError`,(...e)=>{this.isLoading=!1,this.props.onError(...e)}),p(this,`handleDurationCheck`,()=>{clearTimeout(this.durationCheckTimeout);let e=this.getDuration();e?this.onDurationCalled||=(this.props.onDuration(e),!0):this.durationCheckTimeout=setTimeout(this.handleDurationCheck,100)}),p(this,`handleLoaded`,()=>{this.isLoading=!1})}componentDidMount(){this.mounted=!0}componentWillUnmount(){clearTimeout(this.progressTimeout),clearTimeout(this.durationCheckTimeout),this.isReady&&this.props.stopOnUnmount&&(this.player.stop(),this.player.disablePIP&&this.player.disablePIP()),this.mounted=!1}componentDidUpdate(e){if(!this.player)return;let{url:t,playing:n,volume:r,muted:i,playbackRate:a,pip:o,loop:s,activePlayer:c,disableDeferredLoading:l}=this.props;if(!(0,_.default)(e.url,t)){if(this.isLoading&&!c.forceLoad&&!l&&!(0,y.isMediaStream)(t)){console.warn(`ReactPlayer: the attempt to load ${t} is being deferred until the player has loaded`),this.loadOnReady=t;return}this.isLoading=!0,this.startOnPlay=!0,this.onDurationCalled=!1,this.player.load(t,this.isReady)}!e.playing&&n&&!this.isPlaying&&this.player.play(),e.playing&&!n&&this.isPlaying&&this.player.pause(),!e.pip&&o&&this.player.enablePIP&&this.player.enablePIP(),e.pip&&!o&&this.player.disablePIP&&this.player.disablePIP(),e.volume!==r&&r!==null&&this.player.setVolume(r),e.muted!==i&&(i?this.player.mute():(this.player.unmute(),r!==null&&setTimeout(()=>this.player.setVolume(r)))),e.playbackRate!==a&&this.player.setPlaybackRate&&this.player.setPlaybackRate(a),e.loop!==s&&this.player.setLoop&&this.player.setLoop(s)}getDuration(){return this.isReady?this.player.getDuration():null}getCurrentTime(){return this.isReady?this.player.getCurrentTime():null}getSecondsLoaded(){return this.isReady?this.player.getSecondsLoaded():null}seekTo(e,t,n){if(!this.isReady){e!==0&&(this.seekOnPlay=e,setTimeout(()=>{this.seekOnPlay=null},b));return}if(t?t===`fraction`:e>0&&e<1){let t=this.player.getDuration();if(!t){console.warn(`ReactPlayer: could not seek using fraction –\xA0duration not yet available`);return}this.player.seekTo(t*e,n);return}this.player.seekTo(e,n)}render(){let e=this.props.activePlayer;return e?g.default.createElement(e,{...this.props,onMount:this.handlePlayerMount,onReady:this.handleReady,onPlay:this.handlePlay,onPause:this.handlePause,onEnded:this.handleEnded,onLoaded:this.handleLoaded,onError:this.handleError}):null}};p(x,`displayName`,`Player`),p(x,`propTypes`,v.propTypes),p(x,`defaultProps`,v.defaultProps)})),te=l(((e,t)=>{var n=Object.create,r=Object.defineProperty,i=Object.getOwnPropertyDescriptor,a=Object.getOwnPropertyNames,o=Object.getPrototypeOf,s=Object.prototype.hasOwnProperty,c=(e,t,n)=>t in e?r(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,l=(e,t)=>{for(var n in t)r(e,n,{get:t[n],enumerable:!0})},u=(e,t,n,o)=>{if(t&&typeof t==`object`||typeof t==`function`)for(let c of a(t))!s.call(e,c)&&c!==n&&r(e,c,{get:()=>t[c],enumerable:!(o=i(t,c))||o.enumerable});return e},d=(e,t,i)=>(i=e==null?{}:n(o(e)),u(t||!e||!e.__esModule?r(i,`default`,{value:e,enumerable:!0}):i,e)),f=e=>u(r({},`__esModule`,{value:!0}),e),p=(e,t,n)=>(c(e,typeof t==`symbol`?t:t+``,n),n),m={};l(m,{default:()=>v}),t.exports=f(m);var h=d(require("react")),g=`64px`,_={},v=class extends h.Component{constructor(){super(...arguments),p(this,`mounted`,!1),p(this,`state`,{image:null}),p(this,`handleKeyPress`,e=>{(e.key===`Enter`||e.key===` `)&&this.props.onClick()})}componentDidMount(){this.mounted=!0,this.fetchImage(this.props)}componentDidUpdate(e){let{url:t,light:n}=this.props;(e.url!==t||e.light!==n)&&this.fetchImage(this.props)}componentWillUnmount(){this.mounted=!1}fetchImage({url:e,light:t,oEmbedUrl:n}){if(!h.default.isValidElement(t)){if(typeof t==`string`){this.setState({image:t});return}if(_[e]){this.setState({image:_[e]});return}return this.setState({image:null}),window.fetch(n.replace(`{url}`,e)).then(e=>e.json()).then(t=>{if(t.thumbnail_url&&this.mounted){let n=t.thumbnail_url.replace(`height=100`,`height=480`).replace(`-d_295x166`,`-d_640`);this.setState({image:n}),_[e]=n}})}}render(){let{light:e,onClick:t,playIcon:n,previewTabIndex:r,previewAriaLabel:i}=this.props,{image:a}=this.state,o=h.default.isValidElement(e),s={display:`flex`,alignItems:`center`,justifyContent:`center`},c={preview:{width:`100%`,height:`100%`,backgroundImage:a&&!o?`url(${a})`:void 0,backgroundSize:`cover`,backgroundPosition:`center`,cursor:`pointer`,...s},shadow:{background:`radial-gradient(rgb(0, 0, 0, 0.3), rgba(0, 0, 0, 0) 60%)`,borderRadius:g,width:g,height:g,position:o?`absolute`:void 0,...s},playIcon:{borderStyle:`solid`,borderWidth:`16px 0 16px 26px`,borderColor:`transparent transparent transparent white`,marginLeft:`7px`}},l=h.default.createElement(`div`,{style:c.shadow,className:`react-player__shadow`},h.default.createElement(`div`,{style:c.playIcon,className:`react-player__play-icon`}));return h.default.createElement(`div`,{style:c.preview,className:`react-player__preview`,onClick:t,tabIndex:r,onKeyPress:this.handleKeyPress,...i?{"aria-label":i}:{}},o?e:null,n||l)}}})),ne=l(((e,t)=>{var n=Object.create,r=Object.defineProperty,i=Object.getOwnPropertyDescriptor,a=Object.getOwnPropertyNames,o=Object.getPrototypeOf,s=Object.prototype.hasOwnProperty,c=(e,t,n)=>t in e?r(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,l=(e,t)=>{for(var n in t)r(e,n,{get:t[n],enumerable:!0})},u=(e,t,n,o)=>{if(t&&typeof t==`object`||typeof t==`function`)for(let c of a(t))!s.call(e,c)&&c!==n&&r(e,c,{get:()=>t[c],enumerable:!(o=i(t,c))||o.enumerable});return e},d=(e,t,i)=>(i=e==null?{}:n(o(e)),u(t||!e||!e.__esModule?r(i,`default`,{value:e,enumerable:!0}):i,e)),f=e=>u(r({},`__esModule`,{value:!0}),e),p=(e,t,n)=>(c(e,typeof t==`symbol`?t:t+``,n),n),g={};l(g,{createReactPlayer:()=>A}),t.exports=f(g);var _=d(require("react")),v=d(m()),y=d((I(),f(j))),b=d(L()),x=J(),S=h(),C=d(ee()),w=(0,S.lazy)(()=>Promise.resolve().then(()=>d(te()))),T=typeof window<`u`&&window.document&&typeof document<`u`,E=typeof global<`u`&&global.window&&global.window.document,D=Object.keys(x.propTypes),O=T||E?_.Suspense:()=>null,k=[],A=(e,t)=>{var n;return n=class extends _.Component{constructor(){super(...arguments),p(this,`state`,{showPreview:!!this.props.light}),p(this,`references`,{wrapper:e=>{this.wrapper=e},player:e=>{this.player=e}}),p(this,`handleClickPreview`,e=>{this.setState({showPreview:!1}),this.props.onClickPreview(e)}),p(this,`showPreview`,()=>{this.setState({showPreview:!0})}),p(this,`getDuration`,()=>this.player?this.player.getDuration():null),p(this,`getCurrentTime`,()=>this.player?this.player.getCurrentTime():null),p(this,`getSecondsLoaded`,()=>this.player?this.player.getSecondsLoaded():null),p(this,`getInternalPlayer`,(e=`player`)=>this.player?this.player.getInternalPlayer(e):null),p(this,`seekTo`,(e,t,n)=>{if(!this.player)return null;this.player.seekTo(e,t,n)}),p(this,`handleReady`,()=>{this.props.onReady(this)}),p(this,`getActivePlayer`,(0,y.default)(n=>{for(let t of[...k,...e])if(t.canPlay(n))return t;return t||null})),p(this,`getConfig`,(0,y.default)((e,t)=>{let{config:n}=this.props;return v.default.all([x.defaultProps.config,x.defaultProps.config[t]||{},n,n[t]||{}])})),p(this,`getAttributes`,(0,y.default)(e=>(0,S.omit)(this.props,D))),p(this,`renderActivePlayer`,e=>{if(!e)return null;let t=this.getActivePlayer(e);if(!t)return null;let n=this.getConfig(e,t.key);return _.default.createElement(C.default,{...this.props,key:t.key,ref:this.references.player,config:n,activePlayer:t.lazyPlayer||t,onReady:this.handleReady})})}shouldComponentUpdate(e,t){return!(0,b.default)(this.props,e)||!(0,b.default)(this.state,t)}componentDidUpdate(e){let{light:t}=this.props;!e.light&&t&&this.setState({showPreview:!0}),e.light&&!t&&this.setState({showPreview:!1})}renderPreview(e){if(!e)return null;let{light:t,playIcon:n,previewTabIndex:r,oEmbedUrl:i,previewAriaLabel:a}=this.props;return _.default.createElement(w,{url:e,light:t,playIcon:n,previewTabIndex:r,previewAriaLabel:a,oEmbedUrl:i,onClick:this.handleClickPreview})}render(){let{url:e,style:t,width:n,height:r,fallback:i,wrapper:a}=this.props,{showPreview:o}=this.state,s=this.getAttributes(e),c=typeof a==`string`?this.references.wrapper:void 0;return _.default.createElement(a,{ref:c,style:{...t,width:n,height:r},...s},_.default.createElement(O,{fallback:i},o?this.renderPreview(e):this.renderActivePlayer(e)))}},p(n,`displayName`,`ReactPlayer`),p(n,`propTypes`,x.propTypes),p(n,`defaultProps`,x.defaultProps),p(n,`addCustomPlayer`,e=>{k.push(e)}),p(n,`removeCustomPlayers`,()=>{k.length=0}),p(n,`canPlay`,t=>{for(let n of[...k,...e])if(n.canPlay(t))return!0;return!1}),p(n,`canEnablePIP`,t=>{for(let n of[...k,...e])if(n.canEnablePIP&&n.canEnablePIP(t))return!0;return!1}),n}})),re=l(((e,t)=>{var n=Object.create,r=Object.defineProperty,i=Object.getOwnPropertyDescriptor,a=Object.getOwnPropertyNames,o=Object.getPrototypeOf,s=Object.prototype.hasOwnProperty,c=(e,t)=>{for(var n in t)r(e,n,{get:t[n],enumerable:!0})},l=(e,t,n,o)=>{if(t&&typeof t==`object`||typeof t==`function`)for(let c of a(t))!s.call(e,c)&&c!==n&&r(e,c,{get:()=>t[c],enumerable:!(o=i(t,c))||o.enumerable});return e},u=(e,t,i)=>(i=e==null?{}:n(o(e)),l(t||!e||!e.__esModule?r(i,`default`,{value:e,enumerable:!0}):i,e)),d=e=>l(r({},`__esModule`,{value:!0}),e),f={};c(f,{default:()=>g}),t.exports=d(f);var p=u(A()),m=ne(),h=p.default[p.default.length-1],g=(0,m.createReactPlayer)(p.default,h)})),ie=e=>e.replace(/([a-z0-9])([A-Z])/g,`$1-$2`).toLowerCase(),Y=(...e)=>e.filter((e,t,n)=>!!e&&n.indexOf(e)===t).join(` `),ae={xmlns:`http://www.w3.org/2000/svg`,width:24,height:24,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:2,strokeLinecap:`round`,strokeLinejoin:`round`},oe=(0,t.forwardRef)(({color:e=`currentColor`,size:n=24,strokeWidth:r=2,absoluteStrokeWidth:i,className:a=``,children:o,iconNode:s,...c},l)=>(0,t.createElement)(`svg`,{ref:l,...ae,width:n,height:n,stroke:e,strokeWidth:i?Number(r)*24/Number(n):r,className:Y(`lucide`,a),...c},[...s.map(([e,n])=>(0,t.createElement)(e,n)),...Array.isArray(o)?o:[o]])),X=(e,n)=>{let r=(0,t.forwardRef)(({className:r,...i},a)=>(0,t.createElement)(oe,{ref:a,iconNode:n,className:Y(`lucide-${ie(e)}`,r),...i}));return r.displayName=`${e}`,r},se=X(`FileJson`,[[`path`,{d:`M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z`,key:`1rqfz7`}],[`path`,{d:`M14 2v4a2 2 0 0 0 2 2h4`,key:`tnqrlb`}],[`path`,{d:`M10 12a1 1 0 0 0-1 1v1a1 1 0 0 1-1 1 1 1 0 0 1 1 1v1a1 1 0 0 0 1 1`,key:`1oajmo`}],[`path`,{d:`M14 18a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1 1 1 0 0 1-1-1v-1a1 1 0 0 0-1-1`,key:`mpwhp6`}]]),ce=X(`Mic`,[[`path`,{d:`M12 2a3 3 0 0 0-3 3v7a3 3 0 0 0 6 0V5a3 3 0 0 0-3-3Z`,key:`131961`}],[`path`,{d:`M19 10v2a7 7 0 0 1-14 0v-2`,key:`1vc78b`}],[`line`,{x1:`12`,x2:`12`,y1:`19`,y2:`22`,key:`x3vr5v`}]]),le=X(`Pause`,[[`rect`,{x:`14`,y:`4`,width:`4`,height:`16`,rx:`1`,key:`zuxfzm`}],[`rect`,{x:`6`,y:`4`,width:`4`,height:`16`,rx:`1`,key:`1okwgv`}]]),Z=X(`Play`,[[`polygon`,{points:`6 3 20 12 6 21 6 3`,key:`1oa8hb`}]]),ue=X(`RefreshCw`,[[`path`,{d:`M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8`,key:`v9h5vc`}],[`path`,{d:`M21 3v5h-5`,key:`1q7to0`}],[`path`,{d:`M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16`,key:`3uifl3`}],[`path`,{d:`M8 16H3v5`,key:`1cv678`}]]),de=X(`RotateCcw`,[[`path`,{d:`M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8`,key:`1357e3`}],[`path`,{d:`M3 3v5h5`,key:`1xhq8a`}]]),fe=X(`RotateCw`,[[`path`,{d:`M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8`,key:`1p45f6`}],[`path`,{d:`M21 3v5h-5`,key:`1q7to0`}]]),pe=X(`Send`,[[`path`,{d:`m22 2-7 20-4-9-9-4Z`,key:`1q3vgg`}],[`path`,{d:`M22 2 11 13`,key:`nzbqef`}]]),me=X(`Settings`,[[`path`,{d:`M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z`,key:`1qme2f`}],[`circle`,{cx:`12`,cy:`12`,r:`3`,key:`1v7zrd`}]]),he=X(`Sparkles`,[[`path`,{d:`M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.936A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .963 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.581a.5.5 0 0 1 0 .964L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.963 0z`,key:`4pj2yx`}],[`path`,{d:`M20 3v4`,key:`1olli1`}],[`path`,{d:`M22 5h-4`,key:`1gvqau`}],[`path`,{d:`M4 17v2`,key:`vumght`}],[`path`,{d:`M5 18H3`,key:`zchphs`}]]),ge=X(`User`,[[`path`,{d:`M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2`,key:`975kel`}],[`circle`,{cx:`12`,cy:`7`,r:`4`,key:`17ys0d`}]]),_e=X(`Volume2`,[[`polygon`,{points:`11 5 6 9 2 9 2 15 6 15 11 19 11 5`,key:`16drj5`}],[`path`,{d:`M15.54 8.46a5 5 0 0 1 0 7.07`,key:`ltjumu`}],[`path`,{d:`M19.07 4.93a10 10 0 0 1 0 14.14`,key:`1kegas`}]]),ve=X(`VolumeX`,[[`polygon`,{points:`11 5 6 9 2 9 2 15 6 15 11 19 11 5`,key:`16drj5`}],[`line`,{x1:`22`,x2:`16`,y1:`9`,y2:`15`,key:`1ewh16`}],[`line`,{x1:`16`,x2:`22`,y1:`9`,y2:`15`,key:`5ykzw1`}]]),ye=l((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.fragment`);function r(e,n,r){var i=null;if(r!==void 0&&(i=``+r),n.key!==void 0&&(i=``+n.key),`key`in n)for(var a in r={},n)a!==`key`&&(r[a]=n[a]);else r=n;return n=r.ref,{$$typeof:t,type:e,key:i,ref:n===void 0?null:n,props:r}}e.Fragment=n,e.jsx=r,e.jsxs=r})),Q=l((e=>{process.env.NODE_ENV!==`production`&&(function(){function t(e){if(e==null)return null;if(typeof e==`function`)return e.$$typeof===O?null:e.displayName||e.name||null;if(typeof e==`string`)return e;switch(e){case _:return`Fragment`;case y:return`Profiler`;case v:return`StrictMode`;case C:return`Suspense`;case w:return`SuspenseList`;case D:return`Activity`}if(typeof e==`object`)switch(typeof e.tag==`number`&&console.error(`Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.`),e.$$typeof){case g:return`Portal`;case x:return e.displayName||`Context`;case b:return(e._context.displayName||`Context`)+`.Consumer`;case S:var n=e.render;return e=e.displayName,e||=(e=n.displayName||n.name||``,e===``?`ForwardRef`:`ForwardRef(`+e+`)`),e;case T:return n=e.displayName||null,n===null?t(e.type)||`Memo`:n;case E:n=e._payload,e=e._init;try{return t(e(n))}catch{}}return null}function n(e){return``+e}function r(e){try{n(e);var t=!1}catch{t=!0}if(t){t=console;var r=t.error,i=typeof Symbol==`function`&&Symbol.toStringTag&&e[Symbol.toStringTag]||e.constructor.name||`Object`;return r.call(t,`The provided key is an unsupported type %s. This value must be coerced to a string before using it here.`,i),n(e)}}function i(e){if(e===_)return`<>`;if(typeof e==`object`&&e&&e.$$typeof===E)return`<...>`;try{var n=t(e);return n?`<`+n+`>`:`<...>`}catch{return`<...>`}}function a(){var e=k.A;return e===null?null:e.getOwner()}function o(){return Error(`react-stack-top-frame`)}function s(e){if(A.call(e,`key`)){var t=Object.getOwnPropertyDescriptor(e,`key`).get;if(t&&t.isReactWarning)return!1}return e.key!==void 0}function c(e,t){function n(){N||(N=!0,console.error("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",t))}n.isReactWarning=!0,Object.defineProperty(e,"key",{get:n,configurable:!0})}function l(){var e=t(this.type);return P[e]||(P[e]=!0,console.error(`Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.`)),e=this.props.ref,e===void 0?null:e}function u(e,t,n,r,i,a){var o=n.ref;return e={$$typeof:h,type:e,key:t,props:n,_owner:r},(o===void 0?null:o)===null?Object.defineProperty(e,"ref",{enumerable:!1,value:null}):Object.defineProperty(e,"ref",{enumerable:!1,get:l}),e._store={},Object.defineProperty(e._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(e,"_debugInfo",{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(e,"_debugStack",{configurable:!1,enumerable:!1,writable:!0,value:i}),Object.defineProperty(e,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:a}),Object.freeze&&(Object.freeze(e.props),Object.freeze(e)),e}function d(e,n,i,o,l,d){var p=n.children;if(p!==void 0)if(o)if(j(p)){for(o=0;o<p.length;o++)f(p[o]);Object.freeze&&Object.freeze(p)}else console.error(`React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.`);else f(p);if(A.call(n,`key`)){p=t(e);var m=Object.keys(n).filter(function(e){return e!==`key`});o=0<m.length?`{key: someKey, `+m.join(`: ..., `)+`: ...}`:`{key: someKey}`,L[p+o]||(m=0<m.length?`{`+m.join(`: ..., `)+`: ...}`:`{}`,console.error(`A props object containing a "key" prop is being spread into JSX:
4
+ let props = %s;
5
+ <%s {...props} />
6
+ React keys must be passed directly to JSX without using spread:
7
+ let props = %s;
8
+ <%s key={someKey} {...props} />`,o,p,m,p),L[p+o]=!0)}if(p=null,i!==void 0&&(r(i),p=``+i),s(n)&&(r(n.key),p=``+n.key),`key`in n)for(var h in i={},n)h!==`key`&&(i[h]=n[h]);else i=n;return p&&c(i,typeof e==`function`?e.displayName||e.name||`Unknown`:e),u(e,p,i,a(),l,d)}function f(e){p(e)?e._store&&(e._store.validated=1):typeof e==`object`&&e&&e.$$typeof===E&&(e._payload.status===`fulfilled`?p(e._payload.value)&&e._payload.value._store&&(e._payload.value._store.validated=1):e._store&&(e._store.validated=1))}function p(e){return typeof e==`object`&&!!e&&e.$$typeof===h}var m=require("react"),h=Symbol.for(`react.transitional.element`),g=Symbol.for(`react.portal`),_=Symbol.for(`react.fragment`),v=Symbol.for(`react.strict_mode`),y=Symbol.for(`react.profiler`),b=Symbol.for(`react.consumer`),x=Symbol.for(`react.context`),S=Symbol.for(`react.forward_ref`),C=Symbol.for(`react.suspense`),w=Symbol.for(`react.suspense_list`),T=Symbol.for(`react.memo`),E=Symbol.for(`react.lazy`),D=Symbol.for(`react.activity`),O=Symbol.for(`react.client.reference`),k=m.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,A=Object.prototype.hasOwnProperty,j=Array.isArray,M=console.createTask?console.createTask:function(){return null};m={react_stack_bottom_frame:function(e){return e()}};var N,P={},F=m.react_stack_bottom_frame.bind(m,o)(),I=M(i(o)),L={};e.Fragment=_,e.jsx=function(e,t,n){var r=1e4>k.recentlyCreatedOwnerStacks++;return d(e,t,n,!1,r?Error(`react-stack-top-frame`):F,r?M(i(e)):I)},e.jsxs=function(e,t,n){var r=1e4>k.recentlyCreatedOwnerStacks++;return d(e,t,n,!0,r?Error(`react-stack-top-frame`):F,r?M(i(e)):I)}})()})),be=l(((e,t)=>{process.env.NODE_ENV===`production`?t.exports=ye():t.exports=Q()})),xe=f(re(),1),$=be(),Se=({animationData:e})=>{let n=(0,t.useRef)(null);return(0,t.useEffect)(()=>{let t=n.current;if(!t)return;let r=t.getContext(`2d`),i,a=0,o=0,s=()=>{let e=t.getBoundingClientRect();t.width=e.width,t.height=e.height,a=e.width,o=e.height};s(),window.addEventListener(`resize`,s);let c=0,l=[],u=[{name:`main()`,value:`?`},{name:`factorial(3)`,value:`3 * factorial(2)`},{name:`factorial(2)`,value:`2 * factorial(1)`},{name:`factorial(1)`,value:`1 (Base Case)`}],d=0,f=0;class p{constructor(e,t,n,r,i,a,o){this.x=e,this.y=t,this.tx=n,this.ty=r,this.speed=i,this.color=a,this.size=o,this.alpha=1}update(){let e=this.tx-this.x,t=this.ty-this.y,n=Math.sqrt(e*e+t*t);return n<2?(this.alpha-=.05,!1):(this.x+=e/n*this.speed,this.y+=t/n*this.speed,!0)}draw(e){e.save(),e.globalAlpha=Math.max(0,this.alpha),e.beginPath(),e.arc(this.x,this.y,this.size,0,Math.PI*2),e.fillStyle=this.color,e.shadowBlur=10,e.shadowColor=this.color,e.fill(),e.restore()}}let m=()=>{c++,r.clearRect(0,0,a,o);let t=e?.state||`explaining`,n=e?.topic||`recursion`;if(r.save(),r.fillStyle=`rgba(13, 14, 18, 0.4)`,r.fillRect(0,0,a,o),r.strokeStyle=`rgba(99, 102, 241, 0.4)`,r.lineWidth=2,r.beginPath(),r.moveTo(15,o-15-10),r.lineTo(15,o-15),r.lineTo(25,o-15),r.stroke(),r.beginPath(),r.moveTo(a-15,o-15-10),r.lineTo(a-15,o-15),r.lineTo(a-15-10,o-15),r.stroke(),r.font=`10px monospace`,r.fillStyle=`rgba(255, 255, 255, 0.5)`,r.fillText(`HUD // CONCEPT: ${n.toUpperCase()} // STATE: ${t.toUpperCase()}`,30,o-15-8),r.restore(),n===`recursion`){f++,f%90==0&&(d=(d+1)%(u.length+3));let e=a*.45,t=a/2-e/2,n=o*.7;r.fillStyle=`rgba(255, 255, 255, 0.3)`,r.font=`10px monospace`,r.fillText(`CALL STACK MEMORY`,t,n+36),r.strokeStyle=`rgba(255,255,255,0.08)`,r.strokeRect(t-10,n-120,e+20,140);for(let i=0;i<u.length;i++){let a=n-i*30,o=u[i],s=!1,c=!1;if(d<u.length)s=i<=d;else{let e=d-u.length;s=i<u.length-e,c=i===u.length-e}s&&(r.save(),r.fillStyle=c?`rgba(16, 185, 129, 0.25)`:`rgba(99, 102, 241, 0.15)`,r.strokeStyle=c?`#10b981`:`rgba(99, 102, 241, 0.6)`,r.lineWidth=1.5,r.shadowBlur=c?15:6,r.shadowColor=c?`#10b981`:`#6366f1`,r.fillRect(t,a,e,22),r.strokeRect(t,a,e,22),r.font=`bold 10px monospace`,r.fillStyle=`#ffffff`,r.fillText(o.name,t+10,a+15),r.font=`9px monospace`,r.fillStyle=c?`#34d399`:`rgba(255, 255, 255, 0.7)`,r.fillText(c?`returns value ✓`:o.value,t+e-130,a+15),r.restore())}}else if(n===`conditionals`){let e=a/2,t=o/2-10;if(r.save(),r.strokeStyle=`rgba(255, 255, 255, 0.1)`,r.lineWidth=3,r.beginPath(),r.moveTo(e-120,t),r.lineTo(e-35,t),r.stroke(),r.strokeStyle=`rgba(139, 92, 246, 0.6)`,r.fillStyle=`rgba(139, 92, 246, 0.08)`,r.beginPath(),r.moveTo(e,t-25),r.lineTo(e+35,t),r.lineTo(e,t+25),r.lineTo(e-35,t),r.closePath(),r.fill(),r.stroke(),r.font=`bold 9px monospace`,r.fillStyle=`#ffffff`,r.textAlign=`center`,r.fillText(`IF CONDITION`,e,t+3),r.strokeStyle=`rgba(255, 255, 255, 0.1)`,r.beginPath(),r.moveTo(e+35,t),r.lineTo(e+65,t-40),r.lineTo(e+140,t-40),r.stroke(),r.beginPath(),r.moveTo(e+35,t),r.lineTo(e+65,t+40),r.lineTo(e+140,t+40),r.stroke(),r.font=`10px sans-serif`,r.fillStyle=`#10b981`,r.fillText(`TRUE`,e+90,t-46),r.fillStyle=`#ef4444`,r.fillText(`FALSE`,e+90,t+34),c%30==0){let n=Math.random()>.5,r=[{x:e-120,y:t},{x:e-35,y:t},{x:e,y:t},{x:e+65,y:n?t-40:t+40},{x:e+140,y:n?t-40:t+40}],i=0,a=()=>{if(i>=r.length-1)return;let e=r[i],t=r[i+1];l.push(new p(e.x,e.y,t.x,t.y,3,n?`#10b981`:`#ef4444`,3)),i++,setTimeout(()=>a(),300)};a()}r.restore()}else if(n===`base_case`){let e=a*.15,t=a*.75,n=o/2;r.save(),r.strokeStyle=`rgba(255, 255, 255, 0.05)`,r.lineWidth=30,r.beginPath(),r.moveTo(e,n),r.lineTo(t,n),r.stroke(),r.font=`10px monospace`,r.fillStyle=`rgba(255, 255, 255, 0.4)`,r.fillText(`Recursive Call Steps...`,e+20,n-25),r.fillStyle=`rgba(239, 68, 68, 0.15)`,r.strokeStyle=`#ef4444`,r.lineWidth=3,r.shadowBlur=15,r.shadowColor=`#ef4444`,r.fillRect(t,n-30,15,60),r.strokeRect(t,n-30,15,60),r.font=`bold 9px monospace`,r.fillStyle=`#ffffff`,r.textAlign=`center`,r.fillText(`B`,t+7,n-15),r.fillText(`A`,t+7,n-5),r.fillText(`S`,t+7,n+5),r.fillText(`E`,t+7,n+15),c%20==0&&l.push(new p(e,n+(Math.random()*12-6),t,n,3.5,`#a78bfa`,3)),r.restore()}else if(n===`functions`){let e=a/2,t=o/2;r.save(),r.fillStyle=`rgba(99, 102, 241, 0.08)`,r.strokeStyle=`#6366f1`,r.lineWidth=2,r.shadowBlur=10,r.shadowColor=`#6366f1`,r.fillRect(e-70/2,t-70/2,70,70),r.strokeRect(e-70/2,t-70/2,70,70),r.font=`bold 10px monospace`,r.fillStyle=`#ffffff`,r.textAlign=`center`,r.fillText(`def func()`,e,t+4),r.strokeStyle=`rgba(255, 255, 255, 0.07)`,r.lineWidth=6,r.beginPath(),r.moveTo(e-130,t),r.lineTo(e-70/2,t),r.stroke(),r.beginPath(),r.moveTo(e+70/2,t),r.lineTo(e+130,t),r.stroke(),r.font=`9px monospace`,r.fillStyle=`rgba(255, 255, 255, 0.5)`,r.fillText(`INPUT`,e-100,t-10),r.fillText(`RETURN`,e+100,t-10),c%45==0&&(l.push(new p(e-130,t,e-70/2,t,2,`#60a5fa`,4)),setTimeout(()=>{l.push(new p(e+70/2,t,e+130,t,3,`#34d399`,4))},800)),r.restore()}for(let e=l.length-1;e>=0;e--){let t=l[e];!t.update()||t.alpha<=0?l.splice(e,1):t.draw(r)}i=requestAnimationFrame(m)};return m(),()=>{window.removeEventListener(`resize`,s),cancelAnimationFrame(i)}},[e]),(0,$.jsx)(`canvas`,{ref:n,className:`tutor-whiteboard-overlay`,style:{position:`absolute`,top:0,left:0,width:`100%`,height:`100%`,pointerEvents:`none`,zIndex:10}})},Ce=({src:e,backendUrl:n=`ws://localhost:8000/ws`,resourcesUrl:r=``})=>{let i=(0,t.useRef)(null),a=(0,t.useRef)(null),[o,s]=(0,t.useState)(null),[c,l]=(0,t.useState)([{role:`assistant`,text:`Welcome! Play the lesson video below. When you have any doubt, click 'Interrupt Tutor' or type below, and we will pause the video to explain step-by-step!`}]),[u,d]=(0,t.useState)(!1),[f,p]=(0,t.useState)(``),[m,h]=(0,t.useState)(`recursion`),[g,_]=(0,t.useState)(`explaining`),[v,y]=(0,t.useState)(r),[b,x]=(0,t.useState)(``),[S,C]=(0,t.useState)(!1),[w,T]=(0,t.useState)(null),[E,D]=(0,t.useState)(!1),[O,k]=(0,t.useState)(0),[A,j]=(0,t.useState)(0),[M,N]=(0,t.useState)(1),[P,F]=(0,t.useState)(!1),[I,L]=(0,t.useState)(`Auto`),[R,z]=(0,t.useState)(1),[B,V]=(0,t.useState)(!1),[H,U]=(0,t.useState)(!1),[W,G]=(0,t.useState)(`main`),[K,q]=(0,t.useState)(!1);(0,t.useEffect)(()=>{let e=localStorage.getItem(`ai_tutor_student_id`);e||(e=`student_`+Math.random().toString(36).substring(2,11),localStorage.setItem(`ai_tutor_student_id`,e)),x(e)},[]),(0,t.useEffect)(()=>{if(!b)return;console.log(`AITutor: Connecting to WebSocket:`,n);let e=new WebSocket(n);return e.onopen=()=>{console.log(`AITutor: WebSocket connection established.`),C(!0)},e.onmessage=e=>{try{let t=JSON.parse(e.data);if(console.log(`AITutor: Received message:`,t),t.type===`TOKEN_STREAM`||t.type===`STATE_CHANGE`){let e=t.payload||{},n=e.text||``,r=e.state||`explaining`,i=e.concept||`recursion`;_(r),e.concept&&h(e.concept),l(e=>[...e,{role:`assistant`,text:n}]),T({state:r,topic:i,timestamp:Date.now()})}}catch(e){console.error(`AITutor: Error parsing WebSocket message:`,e)}},e.onerror=e=>{console.error(`AITutor: WebSocket error:`,e),C(!1)},e.onclose=()=>{console.log(`AITutor: WebSocket connection closed.`),C(!1)},s(e),()=>{e.close()}},[n,b]),(0,t.useEffect)(()=>{a.current?.scrollIntoView({behavior:`smooth`})},[c]);let J=()=>{E?D(!1):(K&&q(!1),D(!0))},ee=e=>{if(K||!i.current)return;let t=parseFloat(e.target.value);i.current.seekTo(t,`seconds`),k(t)},te=()=>{if(K||!i.current)return;let e=Math.min(A,O+10);i.current.seekTo(e,`seconds`),k(e)},ne=()=>{if(K||!i.current)return;let e=Math.max(0,O-10);i.current.seekTo(e,`seconds`),k(e)},re=e=>{let t=parseFloat(e.target.value);N(t),F(t===0)},ie=()=>{let e=!P;F(e),!e&&M===0&&N(.5)},Y=e=>{L(e),U(!1)},ae=e=>{z(e),U(!1)},oe=e=>{V(e),U(!1)},X=e=>{if(isNaN(e))return`0:00`;let t=Math.floor(e/60),n=Math.floor(e%60);return`${t}:${n<10?`0`:``}${n}`},ye=()=>B?O<25?`[Tutor] In this section, we will learn about functions, which are reusable blocks of code designed to perform a specific task.`:O<55?`[Tutor] Next, we have conditionals, which allow our code to make decisions using if-else statements.`:O<85?`[Tutor] Now let's explore the base case, which is the crucial stopping condition in any recursive process.`:`[Tutor] Finally, recursion is when a function calls itself to break down a larger problem into smaller pieces.`:``,Q=(e=f)=>{!e.trim()||!o||o.readyState!==WebSocket.OPEN||(K||(q(!0),D(!1)),l(t=>[...t,{role:`user`,text:e}]),o.send(JSON.stringify({type:`QUERY`,student_id:b,topic:m,domain:`coding`,query:e,timestamp:O,resources_url:v.trim()||null})),p(``))};return(0,$.jsxs)(`div`,{className:`tutor-workspace-root ${K?`doubt-active`:``}`,children:[(0,$.jsxs)(`div`,{className:`tutor-video-container`,children:[(0,$.jsx)(xe.default,{ref:i,url:e,playing:E,volume:P?0:M,playbackRate:R,width:`100%`,height:`100%`,progressInterval:250,onProgress:e=>k(e.playedSeconds),onDuration:e=>j(e),onPlay:()=>D(!0),onPause:()=>D(!1),className:`tutor-video-element`}),B&&!K&&(0,$.jsx)(`div`,{className:`tutor-subtitle-overlay`,children:(0,$.jsx)(`span`,{className:`tutor-subtitle-text`,children:ye()})}),!E&&!K&&(0,$.jsx)(`div`,{className:`tutor-play-overlay`,onClick:J,children:(0,$.jsx)(`div`,{className:`tutor-play-overlay-icon`,children:(0,$.jsx)(Z,{size:36,fill:`white`})})}),(0,$.jsxs)(`div`,{className:`tutor-player-controls`,children:[(0,$.jsx)(`input`,{type:`range`,min:`0`,max:A||100,value:O,onChange:ee,disabled:K,className:`tutor-progress-bar`}),(0,$.jsxs)(`div`,{className:`tutor-controls-row`,children:[(0,$.jsx)(`button`,{className:`tutor-control-btn`,onClick:J,children:E?(0,$.jsx)(le,{size:18,fill:`white`}):(0,$.jsx)(Z,{size:18,fill:`white`})}),(0,$.jsx)(`button`,{className:`tutor-control-btn`,onClick:ne,disabled:K,title:`Rewind 10s`,children:(0,$.jsx)(de,{size:16})}),(0,$.jsx)(`button`,{className:`tutor-control-btn`,onClick:te,disabled:K,title:`Fast Forward 10s`,children:(0,$.jsx)(fe,{size:16})}),(0,$.jsxs)(`div`,{className:`tutor-volume-container`,children:[(0,$.jsx)(`button`,{className:`tutor-control-btn`,onClick:ie,children:P||M===0?(0,$.jsx)(ve,{size:18}):(0,$.jsx)(_e,{size:18})}),(0,$.jsx)(`input`,{type:`range`,min:`0`,max:`1`,step:`0.05`,value:P?0:M,onChange:re,className:`tutor-volume-slider`})]}),(0,$.jsxs)(`div`,{className:`tutor-time-display`,children:[X(O),` / `,X(A)]}),(0,$.jsx)(`div`,{style:{flexGrow:1}}),(0,$.jsxs)(`div`,{className:`tutor-settings-container`,children:[(0,$.jsx)(`button`,{className:`tutor-control-btn`,onClick:()=>{U(!H),G(`main`)},children:(0,$.jsx)(me,{size:18})}),H&&(0,$.jsxs)(`div`,{className:`tutor-quality-menu`,children:[W===`main`&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(`div`,{className:`tutor-quality-item`,onClick:()=>G(`quality`),children:[(0,$.jsx)(`span`,{children:`Quality`}),(0,$.jsxs)(`span`,{style:{color:`rgba(255,255,255,0.4)`},children:[I,` >`]})]}),(0,$.jsxs)(`div`,{className:`tutor-quality-item`,onClick:()=>G(`speed`),children:[(0,$.jsx)(`span`,{children:`Speed`}),(0,$.jsxs)(`span`,{style:{color:`rgba(255,255,255,0.4)`},children:[R,`x >`]})]}),(0,$.jsxs)(`div`,{className:`tutor-quality-item`,onClick:()=>G(`subtitles`),children:[(0,$.jsx)(`span`,{children:`Subtitles`}),(0,$.jsxs)(`span`,{style:{color:`rgba(255,255,255,0.4)`},children:[B?`On`:`Off`,` >`]})]})]}),W===`quality`&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`div`,{className:`tutor-quality-item header`,onClick:()=>G(`main`),children:(0,$.jsx)(`span`,{style:{fontWeight:`bold`},children:`< Back`})}),[`1080p`,`720p`,`480p`,`Auto`].map(e=>(0,$.jsxs)(`div`,{className:`tutor-quality-item ${I===e?`active`:``}`,onClick:()=>Y(e),children:[e,I===e&&(0,$.jsx)(`span`,{style:{fontSize:`10px`},children:`●`})]},e))]}),W===`speed`&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`div`,{className:`tutor-quality-item header`,onClick:()=>G(`main`),children:(0,$.jsx)(`span`,{style:{fontWeight:`bold`},children:`< Back`})}),[.5,1,1.5,2].map(e=>(0,$.jsxs)(`div`,{className:`tutor-quality-item ${R===e?`active`:``}`,onClick:()=>ae(e),children:[e,`x`,R===e&&(0,$.jsx)(`span`,{style:{fontSize:`10px`},children:`●`})]},e))]}),W===`subtitles`&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`div`,{className:`tutor-quality-item header`,onClick:()=>G(`main`),children:(0,$.jsx)(`span`,{style:{fontWeight:`bold`},children:`< Back`})}),[!0,!1].map(e=>(0,$.jsxs)(`div`,{className:`tutor-quality-item ${B===e?`active`:``}`,onClick:()=>oe(e),children:[e?`On`:`Off`,B===e&&(0,$.jsx)(`span`,{style:{fontSize:`10px`},children:`●`})]},e?`on`:`off`))]})]})]})]})]})]}),(0,$.jsxs)(`div`,{className:`tutor-whiteboard-container`,children:[(0,$.jsx)(Se,{animationData:w}),K&&(0,$.jsxs)(`div`,{style:{position:`absolute`,top:`16px`,right:`16px`,zIndex:12,display:`flex`,gap:`8px`},children:[(0,$.jsxs)(`button`,{className:`tutor-btn`,onClick:()=>{q(!1),D(!0)},style:{background:`linear-gradient(135deg, #10b981 0%, #059669 100%)`,boxShadow:`0 0 10px rgba(16, 185, 129, 0.4)`},children:[(0,$.jsx)(Z,{size:14,fill:`white`}),`Resume Video`]}),(0,$.jsx)(`button`,{className:`tutor-btn`,onClick:()=>q(!1),style:{background:`rgba(255,255,255,0.1)`,color:`#fff`,border:`1px solid rgba(255,255,255,0.15)`},children:`Close Board`})]})]}),(0,$.jsxs)(`div`,{className:`tutor-sidebar`,children:[(0,$.jsxs)(`div`,{className:`tutor-header`,children:[(0,$.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:`6px`},children:[(0,$.jsx)(he,{size:16,style:{color:`#a78bfa`}}),(0,$.jsx)(`span`,{style:{fontWeight:600,fontSize:`13px`},children:`Tutor Console`})]}),(0,$.jsxs)(`div`,{className:`tutor-status-badge`,children:[(0,$.jsx)(`span`,{className:`tutor-status-indicator indicator-${g}`}),g]})]}),(0,$.jsxs)(`div`,{className:`tutor-chat-history`,children:[c.map((e,t)=>(0,$.jsx)(`div`,{className:`tutor-message message-${e.role}`,children:e.text},t)),(0,$.jsx)(`div`,{ref:a})]}),(0,$.jsxs)(`div`,{className:`tutor-footer`,children:[(0,$.jsxs)(`div`,{className:`tutor-input-row`,children:[(0,$.jsx)(`input`,{type:`text`,placeholder:K?`Answer the tutor or ask details...`:`Type doubt or click Interrupt...`,value:f,onChange:e=>p(e.target.value),onKeyDown:e=>e.key===`Enter`&&Q(),className:`tutor-text-input`}),(0,$.jsx)(`button`,{className:`tutor-btn`,onClick:()=>Q(),style:{padding:`10px 12px`},children:(0,$.jsx)(pe,{size:16})})]}),(0,$.jsxs)(`div`,{style:{display:`flex`,justifyContent:`space-between`,fontSize:`11px`,color:`rgba(255,255,255,0.4)`,marginTop:`4px`},children:[(0,$.jsxs)(`span`,{style:{display:`flex`,alignItems:`center`,gap:`4px`},children:[(0,$.jsx)(ge,{size:10}),`ID: `,b?b.substring(0,12):`Loading...`]}),(0,$.jsx)(`span`,{style:{marginLeft:`auto`,color:S?`#10b981`:`#ef4444`},children:S?`Connected`:`Disconnected`})]})]}),(0,$.jsxs)(`div`,{style:{padding:`8px 16px`,display:`flex`,gap:`8px`,borderTop:`1px solid rgba(255,255,255,0.05)`},children:[(0,$.jsxs)(`button`,{className:`tutor-btn`,onClick:()=>{!o||o.readyState!==WebSocket.OPEN||(D(!1),q(!0),o.send(JSON.stringify({type:`INTERRUPT`,student_id:b,timestamp:O})),d(!0),setTimeout(()=>{d(!1),Q(`wait, I don't understand this part`)},1500))},style:{flexGrow:1,background:`linear-gradient(135deg, #ef4444 0%, #dc2626 100%)`,height:`36px`},children:[(0,$.jsx)(ce,{size:14}),u?`Listening...`:`Interrupt / Ask Doubt`]}),(0,$.jsx)(`button`,{className:`tutor-btn`,onClick:()=>{localStorage.removeItem(`ai_tutor_student_id`);let e=`student_`+Math.random().toString(36).substring(2,11);localStorage.setItem(`ai_tutor_student_id`,e),x(e),l([{role:`assistant`,text:`Session has been reset. New Student ID generated. How can I help you?`}]),_(`explaining`),q(!1),T(null)},style:{background:`#27272a`,padding:`0 10px`,height:`36px`},title:`Reset Session`,children:(0,$.jsx)(ue,{size:14})})]})]}),(0,$.jsxs)(`div`,{className:`tutor-resources-drawer`,children:[(0,$.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:`8px`},children:[(0,$.jsx)(se,{size:16,style:{color:`#818cf8`}}),(0,$.jsx)(`span`,{style:{fontSize:`13px`,fontWeight:600},children:`Custom Course Syllabus (Optional)`})]}),(0,$.jsx)(`p`,{style:{margin:0,fontSize:`12px`,color:`rgba(255,255,255,0.5)`},children:`Paste a JSON URL containing concept templates to train the Tutor on your slides or lecture materials.`}),(0,$.jsxs)(`div`,{className:`tutor-resources-input-group`,children:[(0,$.jsx)(`input`,{type:`text`,placeholder:`https://example.com/course_material.json`,value:v,onChange:e=>y(e.target.value),style:{flexGrow:1},className:`tutor-text-input`}),(0,$.jsx)(`button`,{className:`tutor-btn`,onClick:()=>Q(`Load these resources please`),style:{background:`#4f46e5`},children:`Load`})]})]})]})},we=Ce;e.AITutor=Ce,e.Whiteboard=Se,e.default=we});
@@ -0,0 +1,23 @@
1
+ //#region \0rolldown/runtime.js
2
+ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescriptor, r = Object.getOwnPropertyNames, i = Object.getPrototypeOf, a = Object.prototype.hasOwnProperty, o = (e, t) => () => (e && (t = e(e = 0)), t), s = (e, t) => () => (t || (e((t = { exports: {} }).exports, t), e = null), t.exports), c = (e, n) => {
3
+ let r = {};
4
+ for (var i in e) t(r, i, {
5
+ get: e[i],
6
+ enumerable: !0
7
+ });
8
+ return n || t(r, Symbol.toStringTag, { value: "Module" }), r;
9
+ }, l = (e, i, o, s) => {
10
+ if (i && typeof i == "object" || typeof i == "function") for (var c = r(i), l = 0, u = c.length, d; l < u; l++) d = c[l], !a.call(e, d) && d !== o && t(e, d, {
11
+ get: ((e) => i[e]).bind(null, d),
12
+ enumerable: !(s = n(i, d)) || s.enumerable
13
+ });
14
+ return e;
15
+ }, u = (n, r, a) => (a = n == null ? {} : e(i(n)), l(r || !n || !n.__esModule ? t(a, "default", {
16
+ value: n,
17
+ enumerable: !0
18
+ }) : a, n)), d = (e) => a.call(e, "module.exports") ? e["module.exports"] : l(t({}, "__esModule", { value: !0 }), e), f = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy < "u" ? new Proxy(e, { get: (e, t) => (typeof require < "u" ? require : e)[t] }) : e)(function(e) {
19
+ if (typeof require < "u") return require.apply(this, arguments);
20
+ throw Error("Calling `require` for \"" + e + "\" in an environment that doesn't expose the `require` function. See https://rolldown.rs/in-depth/bundling-cjs#require-external-modules for more details.");
21
+ });
22
+ //#endregion
23
+ export { d as a, f as i, o as n, u as o, c as r, s as t };
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="48" height="46" fill="none" viewBox="0 0 48 46"><path fill="#863bff" d="M25.946 44.938c-.664.845-2.021.375-2.021-.698V33.937a2.26 2.26 0 0 0-2.262-2.262H10.287c-.92 0-1.456-1.04-.92-1.788l7.48-10.471c1.07-1.497 0-3.578-1.842-3.578H1.237c-.92 0-1.456-1.04-.92-1.788L10.013.474c.214-.297.556-.474.92-.474h28.894c.92 0 1.456 1.04.92 1.788l-7.48 10.471c-1.07 1.498 0 3.579 1.842 3.579h11.377c.943 0 1.473 1.088.89 1.83L25.947 44.94z" style="fill:#863bff;fill:color(display-p3 .5252 .23 1);fill-opacity:1"/><mask id="a" width="48" height="46" x="0" y="0" maskUnits="userSpaceOnUse" style="mask-type:alpha"><path fill="#000" d="M25.842 44.938c-.664.844-2.021.375-2.021-.698V33.937a2.26 2.26 0 0 0-2.262-2.262H10.183c-.92 0-1.456-1.04-.92-1.788l7.48-10.471c1.07-1.498 0-3.579-1.842-3.579H1.133c-.92 0-1.456-1.04-.92-1.787L9.91.473c.214-.297.556-.474.92-.474h28.894c.92 0 1.456 1.04.92 1.788l-7.48 10.471c-1.07 1.498 0 3.578 1.842 3.578h11.377c.943 0 1.473 1.088.89 1.832L25.843 44.94z" style="fill:#000;fill-opacity:1"/></mask><g mask="url(#a)"><g filter="url(#b)"><ellipse cx="5.508" cy="14.704" fill="#ede6ff" rx="5.508" ry="14.704" style="fill:#ede6ff;fill:color(display-p3 .9275 .9033 1);fill-opacity:1" transform="matrix(.00324 1 1 -.00324 -4.47 31.516)"/></g><g filter="url(#c)"><ellipse cx="10.399" cy="29.851" fill="#ede6ff" rx="10.399" ry="29.851" style="fill:#ede6ff;fill:color(display-p3 .9275 .9033 1);fill-opacity:1" transform="matrix(.00324 1 1 -.00324 -39.328 7.883)"/></g><g filter="url(#d)"><ellipse cx="5.508" cy="30.487" fill="#7e14ff" rx="5.508" ry="30.487" style="fill:#7e14ff;fill:color(display-p3 .4922 .0767 1);fill-opacity:1" transform="rotate(89.814 -25.913 -14.639)scale(1 -1)"/></g><g filter="url(#e)"><ellipse cx="5.508" cy="30.599" fill="#7e14ff" rx="5.508" ry="30.599" style="fill:#7e14ff;fill:color(display-p3 .4922 .0767 1);fill-opacity:1" transform="rotate(89.814 -32.644 -3.334)scale(1 -1)"/></g><g filter="url(#f)"><ellipse cx="5.508" cy="30.599" fill="#7e14ff" rx="5.508" ry="30.599" style="fill:#7e14ff;fill:color(display-p3 .4922 .0767 1);fill-opacity:1" transform="matrix(.00324 1 1 -.00324 -34.34 30.47)"/></g><g filter="url(#g)"><ellipse cx="14.072" cy="22.078" fill="#ede6ff" rx="14.072" ry="22.078" style="fill:#ede6ff;fill:color(display-p3 .9275 .9033 1);fill-opacity:1" transform="rotate(93.35 24.506 48.493)scale(-1 1)"/></g><g filter="url(#h)"><ellipse cx="3.47" cy="21.501" fill="#7e14ff" rx="3.47" ry="21.501" style="fill:#7e14ff;fill:color(display-p3 .4922 .0767 1);fill-opacity:1" transform="rotate(89.009 28.708 47.59)scale(-1 1)"/></g><g filter="url(#i)"><ellipse cx="3.47" cy="21.501" fill="#7e14ff" rx="3.47" ry="21.501" style="fill:#7e14ff;fill:color(display-p3 .4922 .0767 1);fill-opacity:1" transform="rotate(89.009 28.708 47.59)scale(-1 1)"/></g><g filter="url(#j)"><ellipse cx=".387" cy="8.972" fill="#7e14ff" rx="4.407" ry="29.108" style="fill:#7e14ff;fill:color(display-p3 .4922 .0767 1);fill-opacity:1" transform="rotate(39.51 .387 8.972)"/></g><g filter="url(#k)"><ellipse cx="47.523" cy="-6.092" fill="#7e14ff" rx="4.407" ry="29.108" style="fill:#7e14ff;fill:color(display-p3 .4922 .0767 1);fill-opacity:1" transform="rotate(37.892 47.523 -6.092)"/></g><g filter="url(#l)"><ellipse cx="41.412" cy="6.333" fill="#47bfff" rx="5.971" ry="9.665" style="fill:#47bfff;fill:color(display-p3 .2799 .748 1);fill-opacity:1" transform="rotate(37.892 41.412 6.333)"/></g><g filter="url(#m)"><ellipse cx="-1.879" cy="38.332" fill="#7e14ff" rx="4.407" ry="29.108" style="fill:#7e14ff;fill:color(display-p3 .4922 .0767 1);fill-opacity:1" transform="rotate(37.892 -1.88 38.332)"/></g><g filter="url(#n)"><ellipse cx="-1.879" cy="38.332" fill="#7e14ff" rx="4.407" ry="29.108" style="fill:#7e14ff;fill:color(display-p3 .4922 .0767 1);fill-opacity:1" transform="rotate(37.892 -1.88 38.332)"/></g><g filter="url(#o)"><ellipse cx="35.651" cy="29.907" fill="#7e14ff" rx="4.407" ry="29.108" style="fill:#7e14ff;fill:color(display-p3 .4922 .0767 1);fill-opacity:1" transform="rotate(37.892 35.651 29.907)"/></g><g filter="url(#p)"><ellipse cx="38.418" cy="32.4" fill="#47bfff" rx="5.971" ry="15.297" style="fill:#47bfff;fill:color(display-p3 .2799 .748 1);fill-opacity:1" transform="rotate(37.892 38.418 32.4)"/></g></g><defs><filter id="b" width="60.045" height="41.654" x="-19.77" y="16.149" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="7.659"/></filter><filter id="c" width="90.34" height="51.437" x="-54.613" y="-7.533" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="7.659"/></filter><filter id="d" width="79.355" height="29.4" x="-49.64" y="2.03" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter><filter id="e" width="79.579" height="29.4" x="-45.045" y="20.029" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter><filter id="f" width="79.579" height="29.4" x="-43.513" y="21.178" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter><filter id="g" width="74.749" height="58.852" x="15.756" y="-17.901" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="7.659"/></filter><filter id="h" width="61.377" height="25.362" x="23.548" y="2.284" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter><filter id="i" width="61.377" height="25.362" x="23.548" y="2.284" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter><filter id="j" width="56.045" height="63.649" x="-27.636" y="-22.853" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter><filter id="k" width="54.814" height="64.646" x="20.116" y="-38.415" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter><filter id="l" width="33.541" height="35.313" x="24.641" y="-11.323" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter><filter id="m" width="54.814" height="64.646" x="-29.286" y="6.009" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter><filter id="n" width="54.814" height="64.646" x="-29.286" y="6.009" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter><filter id="o" width="54.814" height="64.646" x="8.244" y="-2.416" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter><filter id="p" width="39.409" height="43.623" x="18.713" y="10.588" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter></defs></svg>
package/dist/icons.svg ADDED
@@ -0,0 +1,24 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg">
2
+ <symbol id="bluesky-icon" viewBox="0 0 16 17">
3
+ <g clip-path="url(#bluesky-clip)"><path fill="#08060d" d="M7.75 7.735c-.693-1.348-2.58-3.86-4.334-5.097-1.68-1.187-2.32-.981-2.74-.79C.188 2.065.1 2.812.1 3.251s.241 3.602.398 4.13c.52 1.744 2.367 2.333 4.07 2.145-2.495.37-4.71 1.278-1.805 4.512 3.196 3.309 4.38-.71 4.987-2.746.608 2.036 1.307 5.91 4.93 2.746 2.72-2.746.747-4.143-1.747-4.512 1.702.189 3.55-.4 4.07-2.145.156-.528.397-3.691.397-4.13s-.088-1.186-.575-1.406c-.42-.19-1.06-.395-2.741.79-1.755 1.24-3.64 3.752-4.334 5.099"/></g>
4
+ <defs><clipPath id="bluesky-clip"><path fill="#fff" d="M.1.85h15.3v15.3H.1z"/></clipPath></defs>
5
+ </symbol>
6
+ <symbol id="discord-icon" viewBox="0 0 20 19">
7
+ <path fill="#08060d" d="M16.224 3.768a14.5 14.5 0 0 0-3.67-1.153c-.158.286-.343.67-.47.976a13.5 13.5 0 0 0-4.067 0c-.128-.306-.317-.69-.476-.976A14.4 14.4 0 0 0 3.868 3.77C1.546 7.28.916 10.703 1.231 14.077a14.7 14.7 0 0 0 4.5 2.306q.545-.748.965-1.587a9.5 9.5 0 0 1-1.518-.74q.191-.14.372-.293c2.927 1.369 6.107 1.369 8.999 0q.183.152.372.294-.723.437-1.52.74.418.838.963 1.588a14.6 14.6 0 0 0 4.504-2.308c.37-3.911-.63-7.302-2.644-10.309m-9.13 8.234c-.878 0-1.599-.82-1.599-1.82 0-.998.705-1.82 1.6-1.82.894 0 1.614.82 1.599 1.82.001 1-.705 1.82-1.6 1.82m5.91 0c-.878 0-1.599-.82-1.599-1.82 0-.998.705-1.82 1.6-1.82.893 0 1.614.82 1.599 1.82 0 1-.706 1.82-1.6 1.82"/>
8
+ </symbol>
9
+ <symbol id="documentation-icon" viewBox="0 0 21 20">
10
+ <path fill="none" stroke="#aa3bff" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.35" d="m15.5 13.333 1.533 1.322c.645.555.967.833.967 1.178s-.322.623-.967 1.179L15.5 18.333m-3.333-5-1.534 1.322c-.644.555-.966.833-.966 1.178s.322.623.966 1.179l1.534 1.321"/>
11
+ <path fill="none" stroke="#aa3bff" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.35" d="M17.167 10.836v-4.32c0-1.41 0-2.117-.224-2.68-.359-.906-1.118-1.621-2.08-1.96-.599-.21-1.349-.21-2.848-.21-2.623 0-3.935 0-4.983.369-1.684.591-3.013 1.842-3.641 3.428C3 6.449 3 7.684 3 10.154v2.122c0 2.558 0 3.838.706 4.726q.306.383.713.671c.76.536 1.79.64 3.581.66"/>
12
+ <path fill="none" stroke="#aa3bff" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.35" d="M3 10a2.78 2.78 0 0 1 2.778-2.778c.555 0 1.209.097 1.748-.047.48-.129.854-.503.982-.982.145-.54.048-1.194.048-1.749a2.78 2.78 0 0 1 2.777-2.777"/>
13
+ </symbol>
14
+ <symbol id="github-icon" viewBox="0 0 19 19">
15
+ <path fill="#08060d" fill-rule="evenodd" d="M9.356 1.85C5.05 1.85 1.57 5.356 1.57 9.694a7.84 7.84 0 0 0 5.324 7.44c.387.079.528-.168.528-.376 0-.182-.013-.805-.013-1.454-2.165.467-2.616-.935-2.616-.935-.349-.91-.864-1.143-.864-1.143-.71-.48.051-.48.051-.48.787.051 1.2.805 1.2.805.695 1.194 1.817.857 2.268.649.064-.507.27-.857.49-1.052-1.728-.182-3.545-.857-3.545-3.87 0-.857.31-1.558.8-2.104-.078-.195-.349-1 .077-2.078 0 0 .657-.208 2.14.805a7.5 7.5 0 0 1 1.946-.26c.657 0 1.328.092 1.946.26 1.483-1.013 2.14-.805 2.14-.805.426 1.078.155 1.883.078 2.078.502.546.799 1.247.799 2.104 0 3.013-1.818 3.675-3.558 3.87.284.247.528.714.528 1.454 0 1.052-.012 1.896-.012 2.156 0 .208.142.455.528.377a7.84 7.84 0 0 0 5.324-7.441c.013-4.338-3.48-7.844-7.773-7.844" clip-rule="evenodd"/>
16
+ </symbol>
17
+ <symbol id="social-icon" viewBox="0 0 20 20">
18
+ <path fill="none" stroke="#aa3bff" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.35" d="M12.5 6.667a4.167 4.167 0 1 0-8.334 0 4.167 4.167 0 0 0 8.334 0"/>
19
+ <path fill="none" stroke="#aa3bff" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.35" d="M2.5 16.667a5.833 5.833 0 0 1 8.75-5.053m3.837.474.513 1.035c.07.144.257.282.414.309l.93.155c.596.1.736.536.307.965l-.723.73a.64.64 0 0 0-.152.531l.207.903c.164.715-.213.991-.84.618l-.872-.52a.63.63 0 0 0-.577 0l-.872.52c-.624.373-1.003.094-.84-.618l.207-.903a.64.64 0 0 0-.152-.532l-.723-.729c-.426-.43-.289-.864.306-.964l.93-.156a.64.64 0 0 0 .412-.31l.513-1.034c.28-.562.735-.562 1.012 0"/>
20
+ </symbol>
21
+ <symbol id="x-icon" viewBox="0 0 19 19">
22
+ <path fill="#08060d" fill-rule="evenodd" d="M1.893 1.98c.052.072 1.245 1.769 2.653 3.77l2.892 4.114c.183.261.333.48.333.486s-.068.089-.152.183l-.522.593-.765.867-3.597 4.087c-.375.426-.734.834-.798.905a1 1 0 0 0-.118.148c0 .01.236.017.664.017h.663l.729-.83c.4-.457.796-.906.879-.999a692 692 0 0 0 1.794-2.038c.034-.037.301-.34.594-.675l.551-.624.345-.392a7 7 0 0 1 .34-.374c.006 0 .93 1.306 2.052 2.903l2.084 2.965.045.063h2.275c1.87 0 2.273-.003 2.266-.021-.008-.02-1.098-1.572-3.894-5.547-2.013-2.862-2.28-3.246-2.273-3.266.008-.019.282-.332 2.085-2.38l2-2.274 1.567-1.782c.022-.028-.016-.03-.65-.03h-.674l-.3.342a871 871 0 0 1-1.782 2.025c-.067.075-.405.458-.75.852a100 100 0 0 1-.803.91c-.148.172-.299.344-.99 1.127-.304.343-.32.358-.345.327-.015-.019-.904-1.282-1.976-2.808L6.365 1.85H1.8zm1.782.91 8.078 11.294c.772 1.08 1.413 1.973 1.425 1.984.016.017.241.02 1.05.017l1.03-.004-2.694-3.766L7.796 5.75 5.722 2.852l-1.039-.004-1.039-.004z" clip-rule="evenodd"/>
23
+ </symbol>
24
+ </svg>
@@ -0,0 +1,2 @@
1
+ :root{--bg-base:#0a0b0e;--bg-surface:#12141aa6;--bg-bubble-tutor:#ffffff0d;--bg-bubble-user:linear-gradient(135deg, #6366f1 0%, #4f46e5 100%);--border-glow:#6366f14d;--border-translucent:#ffffff14;--primary-glow:#818cf8;--text-primary:#f3f4f6;--text-secondary:#9ca3af;--state-explaining:#10b981;--state-verifying:#f59e0b;--state-simplifying:#ef4444;--state-analogy:#8b5cf6}.tutor-workspace-root{background-color:var(--bg-base);border:1px solid var(--border-translucent);color:var(--text-primary);border-radius:16px;grid-template-columns:2.2fr 1fr;grid-template-areas:"media sidebar""drawer drawer";align-items:start;gap:24px;padding:24px;display:grid;box-shadow:0 20px 40px #00000080}@media (width<=1024px){.tutor-workspace-root{grid-template-columns:1fr;grid-template-areas:"media""sidebar""drawer"}.tutor-workspace-root.doubt-active{grid-template-columns:1fr!important;grid-template-areas:"miniplayer""whiteboard""sidebar""drawer"!important}}.tutor-video-container{border:1px solid var(--border-translucent);aspect-ratio:16/9;background-color:#000;border-radius:12px;grid-area:media;transition:all .4s cubic-bezier(.25,1,.5,1);position:relative;overflow:hidden;box-shadow:0 10px 25px #0000004d}.tutor-video-element{object-fit:cover;width:100%;height:100%}.tutor-whiteboard-container{aspect-ratio:16/9;background:radial-gradient(circle,#161722 0%,#0d0e12 100%);border:1px solid #ffffff1a;border-radius:12px;grid-area:whiteboard;transition:all .4s cubic-bezier(.25,1,.5,1);display:none;position:relative;overflow:hidden;box-shadow:inset 0 0 30px #6366f126}.tutor-workspace-root.doubt-active{grid-template:"whiteboard miniplayer""whiteboard sidebar"1fr"drawer drawer"/2.2fr 1fr}.tutor-workspace-root.doubt-active .tutor-video-container{aspect-ratio:16/9;border-color:#ef444440;grid-area:miniplayer;box-shadow:0 4px 20px #ef444426}.tutor-workspace-root.doubt-active .tutor-whiteboard-container{display:block}.tutor-player-controls{opacity:0;z-index:5;background:linear-gradient(#0000 0%,#0a0b0e66 20%,#0a0b0ef2 100%);flex-direction:column;gap:12px;padding:16px;transition:opacity .3s;display:flex;position:absolute;bottom:0;left:0;right:0}.tutor-video-container:hover .tutor-player-controls{opacity:1}.tutor-controls-row{color:#fff;align-items:center;gap:16px;display:flex}.tutor-progress-bar{appearance:none;cursor:pointer;background:#fff3;border-radius:2px;outline:none;flex-grow:1;height:4px;position:relative}.tutor-progress-bar::-webkit-slider-runnable-track{cursor:pointer;width:100%;height:4px}.tutor-progress-bar::-webkit-slider-thumb{cursor:pointer;-webkit-appearance:none;background:#818cf8;border-radius:50%;width:12px;height:12px;margin-top:-4px;box-shadow:0 0 8px #818cf8cc}.tutor-control-btn{color:#fff;cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:4px;transition:transform .1s,color .2s;display:flex}.tutor-control-btn:hover{color:#818cf8;transform:scale(1.1)}.tutor-time-display{color:#d1d5db;font-family:monospace;font-size:12px}.tutor-volume-container{align-items:center;gap:8px;display:flex}.tutor-volume-slider{accent-color:#818cf8;cursor:pointer;width:60px;height:4px}.tutor-settings-container{position:relative}.tutor-quality-menu{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--border-translucent);z-index:20;background:#12141af2;border-radius:8px;min-width:120px;padding:6px 0;position:absolute;bottom:35px;right:0;box-shadow:0 10px 20px #00000080}.tutor-quality-item{color:#d1d5db;cursor:pointer;justify-content:space-between;align-items:center;padding:8px 12px;font-size:12px;transition:background .2s,color .2s;display:flex}.tutor-quality-item:hover{color:#fff;background:#6366f133}.tutor-quality-item.active{color:#818cf8;font-weight:600}.tutor-sidebar{background:var(--bg-surface);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid var(--border-translucent);border-radius:12px;flex-direction:column;grid-area:sidebar;height:420px;transition:all .4s ease-in-out;display:flex;overflow:hidden}.tutor-header{border-bottom:1px solid var(--border-translucent);background:#ffffff05;justify-content:space-between;align-items:center;padding:14px 16px;display:flex}.tutor-status-badge{text-transform:uppercase;letter-spacing:.5px;background:#ffffff0d;border-radius:20px;align-items:center;gap:8px;padding:4px 8px;font-size:12px;font-weight:600;display:flex}.tutor-status-indicator{border-radius:50%;width:6px;height:6px}.indicator-explaining{background-color:var(--state-explaining);box-shadow:0 0 8px var(--state-explaining)}.indicator-analogy,.indicator-visualizing{background-color:var(--state-analogy);box-shadow:0 0 8px var(--state-analogy)}.indicator-simplifying{background-color:var(--state-simplifying);box-shadow:0 0 8px var(--state-simplifying)}.indicator-verifying{background-color:var(--state-verifying);box-shadow:0 0 8px var(--state-verifying)}.tutor-chat-history{flex-direction:column;flex-grow:1;gap:12px;padding:16px;display:flex;overflow-y:auto}.tutor-chat-history::-webkit-scrollbar{width:4px}.tutor-chat-history::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:2px}.tutor-message{word-wrap:break-word;white-space:pre-wrap;border-radius:10px;max-width:85%;padding:10px 14px;font-size:13.5px;line-height:1.5}.message-assistant{background:var(--bg-bubble-tutor);border:1px solid var(--border-translucent);border-bottom-left-radius:2px;align-self:flex-start}.message-user{background:var(--bg-bubble-user);border-bottom-right-radius:2px;align-self:flex-end}.tutor-footer{border-top:1px solid var(--border-translucent);background:#0000001a;flex-direction:column;gap:10px;padding:12px 16px;display:flex}.tutor-input-row{align-items:center;gap:8px;display:flex}.tutor-text-input{border:1px solid var(--border-translucent);color:var(--text-primary);background:#ffffff0d;border-radius:8px;outline:none;flex-grow:1;padding:10px 12px;font-size:13px;transition:border-color .2s,box-shadow .2s}.tutor-text-input:focus{border-color:var(--primary-glow);box-shadow:0 0 8px var(--border-glow)}.tutor-btn{background:var(--bg-bubble-user);color:#fff;cursor:pointer;border:none;border-radius:8px;justify-content:center;align-items:center;gap:6px;padding:10px 16px;font-size:13px;font-weight:600;transition:opacity .2s,transform .1s;display:flex}.tutor-btn:hover{opacity:.95}.tutor-btn:active{transform:scale(.98)}.tutor-resources-drawer{background:var(--bg-surface);border:1px solid var(--border-translucent);border-radius:12px;flex-direction:column;grid-area:drawer;gap:12px;margin-top:8px;padding:16px;display:flex}.tutor-resources-input-group{gap:10px;display:flex}.tutor-play-overlay{z-index:4;cursor:pointer;background:#00000080;justify-content:center;align-items:center;transition:opacity .3s;display:flex;position:absolute;inset:0}.tutor-play-overlay-icon{color:#fff;background:#6366f1e6;border-radius:50%;justify-content:center;align-items:center;padding:20px;transition:transform .2s;display:flex;box-shadow:0 0 20px #6366f199}.tutor-play-overlay:hover .tutor-play-overlay-icon{transform:scale(1.1)}.tutor-subtitle-overlay{pointer-events:none;z-index:8;justify-content:center;display:flex;position:absolute;bottom:60px;left:5%;right:5%}.tutor-subtitle-text{color:#fff;text-align:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#000000bf;border:1px solid #ffffff0d;border-radius:4px;max-width:90%;padding:6px 12px;font-family:sans-serif;font-size:14px;line-height:1.4;box-shadow:0 4px 10px #00000080}
2
+ /*$vite$:1*/
package/package.json ADDED
@@ -0,0 +1,38 @@
1
+ {
2
+ "name": "tavi-video-tutor",
3
+ "version": "0.1.0",
4
+ "type": "module",
5
+ "files": [
6
+ "dist"
7
+ ],
8
+ "main": "./dist/ai-tutor.umd.cjs",
9
+ "module": "./dist/ai-tutor.js",
10
+ "exports": {
11
+ ".": {
12
+ "import": "./dist/ai-tutor.js",
13
+ "require": "./dist/ai-tutor.umd.cjs"
14
+ },
15
+ "./style.css": "./dist/tavi-video-tutor.css"
16
+ },
17
+ "scripts": {
18
+ "dev": "vite --host 0.0.0.0",
19
+ "build": "vite build",
20
+ "preview": "vite preview"
21
+ },
22
+ "dependencies": {
23
+ "lucide-react": "^0.400.0",
24
+ "react-player": "^2.16.0"
25
+ },
26
+ "peerDependencies": {
27
+ "react": "^18.0.0 || ^19.0.0",
28
+ "react-dom": "^18.0.0 || ^19.0.0"
29
+ },
30
+ "devDependencies": {
31
+ "@types/react": "^19.2.14",
32
+ "@types/react-dom": "^19.2.3",
33
+ "@vitejs/plugin-react": "^6.0.1",
34
+ "react": "^19.2.6",
35
+ "react-dom": "^19.2.6",
36
+ "vite": "^8.0.12"
37
+ }
38
+ }