markdown-flow-ui 0.2.4 → 0.2.5

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.
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const i=require("../../_virtual/jsx-runtime.cjs.js"),t=require("react"),Er=require("../../lib/sandboxInteraction.cjs.js"),fe=require("../../lib/utils.cjs.js"),Ir=require("../ui/loading-overlay-card.cjs.js"),Rr=require("../ContentRender/ContentRender.cjs.js"),hn=require("../ContentRender/IframeSandbox.cjs.js");require("../ui/inputGroup/input-group.cjs.js");require("../ContentRender/contentRenderI18n.cjs.js");const et=require("../../lib/mobileDevice.cjs.js"),Cr=require("./Player.cjs.js"),Ar=require("./MarkdownSlideScaling.cjs.js"),wr=require("./SubtitleOverlay.cjs.js"),kr=require("./useSlide.cjs.js"),Tr=require("./useWakePlayerFromIframe.cjs.js"),Pr=require("./utils/playerKeyboardShortcutContext.cjs.js"),Mr=require("./utils/playerKeyboardShortcuts.cjs.js"),qe=require("./utils/mobileScreenMode.cjs.js"),tt=require("./utils/interactionPlayback.cjs.js"),_r=require("./utils/markdownScaling.cjs.js"),wt=require("./utils/playerNavigationContext.cjs.js"),Or=require("./utils/appendedMarkerAdvance.cjs.js"),Sn=require("./utils/playbackSequence.cjs.js"),kt=require("./utils/subtitleJumpNavigation.cjs.js"),xn=require("./utils/playerCustomActions.cjs.js"),qr=require("./utils/playbackTimeStore.cjs.js"),jr=require("./utils/interactionResolution.cjs.js"),Fr=require("./utils/playerToggleMode.cjs.js"),bn=require("./utils/imageOnlyStepVisualReady.cjs.js"),Dr=require("./utils/silentStepAutoAdvance.cjs.js"),Br=require("./utils/playerVisibility.cjs.js"),En=require("./slideI18n.cjs.js");;/* empty css */const Lr=require("../../node_modules/lucide-react/dist/esm/icons/grip-horizontal.cjs.js"),Nr=require("../../node_modules/lucide-react/dist/esm/icons/chevron-left.cjs.js"),Vr=2e3,Kr=300,Ur=160,Hr=16,gn=3e3,vn={x:0,y:0},Yr=typeof window>"u"?t.useEffect:t.useLayoutEffect,Wr=["button","input","textarea",'[contenteditable=""]','[contenteditable="true"]','[contenteditable="plaintext-only"]'].join(", "),Tt="waitingForAudio",Gr=(u,f)=>typeof u=="string"?u:u[f]??u[Tt]??En.DEFAULT_SLIDE_BUFFERING_TEXTS[f],Jr=(u,f)=>typeof u=="string"?u:{...f,...u},$r=(u,f)=>f?u!=="loadingAudio":!1,In=t.memo(({content:u,title:f,locale:N,defaultButtonText:me,defaultInputText:V,defaultSelectedValues:K,confirmButtonText:$,copyButtonText:z,copiedButtonText:je,onSend:rt,onDragHandlePointerCancel:X,onDragHandlePointerDown:ot,onDragHandlePointerMove:pe,onDragHandlePointerUp:Fe,readonly:De=!1})=>i.jsxRuntimeExports.jsxs("div",{className:"slide-player__interaction-card",children:[i.jsxRuntimeExports.jsx("button",{type:"button",className:"slide-player__interaction-drag-handle","aria-label":"Move interaction",onPointerCancel:X,onPointerDown:ot,onPointerMove:pe,onPointerUp:Fe,children:i.jsxRuntimeExports.jsx(Lr.default,{"aria-hidden":"true"})}),i.jsxRuntimeExports.jsx("div",{className:"slide-player__interaction-header",children:i.jsxRuntimeExports.jsx("p",{className:"slide-player__interaction-title",children:f})}),i.jsxRuntimeExports.jsx("div",{className:"slide-player__interaction-body",children:i.jsxRuntimeExports.jsx(Rr.default,{content:u,locale:N,defaultButtonText:me,defaultInputText:V,defaultSelectedValues:K,confirmButtonText:$,copyButtonText:z,copiedButtonText:je,onSend:rt,readonly:De,sandboxMode:"content"})})]}));In.displayName="InteractionOverlayCard";const zr=(u,f)=>u.length===f.length&&u.every((N,me)=>{const V=f[me];return N.sequence_number===V?.sequence_number&&N.type===V?.type&&N.content===V?.content}),nt=u=>u instanceof HTMLElement&&!!u.closest(Wr),Xr=({elementList:u=[],locale:f,playerEnabled:N,playerControlsVisibility:me,playerClassName:V,fullscreenHeader:K,playerCustomActions:$,playerCustomActionPauseOnActive:z=!0,bufferingText:je,interactionTitle:rt,interactionTexts:X,playerTexts:ot,playerAutoHideDelay:pe=3e3,markerAutoAdvanceDelay:Fe=Vr,interactionDefaultValueOptions:De,onSend:Pt,onPlayerVisibilityChange:st,onMobileViewModeChange:Mt,onStepChange:_t,enableKeyboardShortcuts:Q=!0,enableIframeScaling:Rn=!0,enableMarkdownScaling:Cn=!0,disableLoadingOverlay:w=!1,className:An,onPointerDown:Ot,onFocusCapture:qt,...wn})=>{const U=t.useMemo(()=>En.getSlideLocaleTexts(f),[f]),kn=t.useMemo(()=>Jr(je,U.bufferingText),[je,U.bufferingText]),{playerEnabled:Tn,playerControlsVisibility:F}=Br.resolveSlidePlayerVisibility({playerEnabled:N,playerControlsVisibility:me}),Be=t.useId(),ye=t.useRef(null),lt=t.useRef(null),Le=t.useRef(null),jt=t.useRef(null),Z=t.useRef(null),Ne=t.useRef(!1),he=t.useRef(null),Ve=t.useRef(null),H=t.useRef(null),Se=t.useRef(null),xe=t.useRef(null),be=t.useRef(null),ge=t.useRef(null),Ft=t.useRef([]),ve=t.useRef(!1),Y=t.useRef(null),Ee=t.useRef(null),Dt=t.useRef(0),Bt=t.useRef(null),Lt=t.useRef({markerCount:0,currentIndex:-1,canGoNext:!1}),at=t.useRef(!1),{currentElementList:R,stepElementLists:Nt,slideElementList:I,currentIndex:a,audioList:y,audioSlideIndexes:Ke,currentAudioSequenceIndexes:Ue,currentStepHasSpeakableElement:h,currentInteractionElement:c,canGoPrev:Pn,canGoNext:C,handlePrev:Vt,handleNext:k,handleGoTo:Kt}=kr.default(u),Ie=t.useMemo(()=>{if(!(a<0))return I[a]},[a,I]),ee=t.useMemo(()=>R.map((e,n)=>`${e.sequence_number??`${e.type}-${n}`}:${String(e.is_new??"")}`),[R]),Mn=I.filter(e=>e.is_renderable!==!1).length===1,m=Tn&&(I.length>0||y.length>0||!!c),_n=t.useMemo(()=>({enabled:Q,ownerId:Be}),[Q,Be]),D=t.useCallback(()=>{!Q||!m||Mr.activatePlayerKeyboardShortcutOwner(Be)},[Q,Be,m]),T=t.useMemo(()=>Ue.map(e=>y[e]?.audioKey).filter(e=>!!e),[y,Ue]),[On,Re]=t.useState(!0),[He,te]=t.useState(!1),[it,Ut]=t.useState(!0),[Ce,Ht]=t.useState(!0),[b,B]=t.useState(null),[qn,Yt]=t.useState(null),[jn,S]=t.useState(!1),[Fn,ut]=t.useState(Tt),[P,ct]=t.useState(!1),[Dn,Ye]=t.useState(!1),[Wt,Bn]=t.useState(!0),[dt,ft]=t.useState(!1),[d,mt]=t.useState(),[ne,We]=t.useState(!1),[Gt,Ge]=t.useState(!1),[x,pt]=t.useState(vn),[yt,ht]=t.useState(!1),[Ln,Ae]=t.useState(0),[Jt,Nn]=t.useState(!1),A=t.useMemo(()=>et.isMobileDevice(),[]),[Je,St]=t.useState(qe.DEFAULT_MOBILE_VIEW_MODE),[$t,xt]=t.useState(!1),[Vn,zt]=t.useState(()=>A?et.isLandscapeViewport():!1),re=t.useMemo(()=>qr.createPlaybackTimeStore(),[]),{effectiveMobileViewMode:oe,isImmersiveMobileFullscreen:se,isNativeMobileFullscreen:Xt,shouldRotateFullscreenViewport:Kn}=t.useMemo(()=>qe.resolveMobileViewModeState({hasManualMobileViewMode:$t,isMobileDevice:A,mobileViewMode:Je}),[$t,A,Vn,Je]),Un=t.useRef(oe),g=m&&F!=="hidden"&&(F==="visible"||On),Hn=se&&g,Yn=se&&g,Wn=se||Xt,Qt=Jt&&!A,Gn=t.useCallback(e=>{xt(!0),St(e)},[]),Zt=t.useCallback(()=>{xt(!1),St(qe.DEFAULT_MOBILE_VIEW_MODE)},[]),Jn=t.useCallback(()=>{Zt(),K?.onBack?.()},[K,Zt]),en=t.useCallback(e=>{ft(e)},[]),tn=t.useCallback(()=>{ft(e=>!e)},[]),{mountedStepStates:$n,currentMountedStateIndex:zn}=t.useMemo(()=>{const e=[],n=new Map;return Nt.forEach((o,s)=>{const l=e.findIndex(r=>zr(r.elementList,o));if(l>=0){e[l]?.sourceStepIndexes.push(s),n.set(s,l);return}e.push({elementList:o,sourceStepIndexes:[s]}),n.set(s,e.length-1)}),{mountedStepStates:e,currentMountedStateIndex:a>=0?n.get(a)??-1:-1}},[a,Nt]),nn=t.useMemo(()=>String(a),[a]),v=t.useMemo(()=>b?y.findIndex(e=>(e.audioKey??"")===b):-1,[y,b]),bt=t.useMemo(()=>v>=0?y[v]:void 0,[y,v]),Xn=bt?.element?.subtitle_cues??[],$e=t.useMemo(()=>T[0]??"none",[T]),gt=t.useMemo(()=>({currentElement:xn.resolvePlayerCustomActionElement({currentAudioIndex:v,currentAudioSequenceIndexes:Ue,audioList:y,currentInteractionElement:d,currentStepElement:Ie}),currentIndex:a,currentStepElement:Ie,isActive:dt,setActive:en,toggleActive:tn}),[d,y,v,Ue,a,Ie,dt,en,tn]),vt=t.useMemo(()=>xn.getPlayerCustomActionCount($,gt),[gt,$]),Qn=t.useMemo(()=>({"--slide-player-custom-action-count":String(vt),"--slide-player-mobile-control-count":String(vt+4),"--slide-interaction-drag-x":`${x.x}px`,"--slide-interaction-drag-y":`${x.y}px`}),[x.x,x.y,vt]),rn=T.length>0,on=t.useMemo(()=>c?`${c.sequence_number??"none"}:${String(c.content??"")}`:"none",[c]),we=t.useMemo(()=>[nn,on].join("|"),[on,nn]),Zn=t.useMemo(()=>[we,bt?.audioKey??"none",String(v)].join("|"),[v,bt?.audioKey,we]),sn=!!t.useMemo(()=>!$e||$e==="none"?"":y.find(n=>n.audioKey===$e)?.audioUrl?.trim()??"",[y,$e]),W=z&&!!$&&dt,ke=t.useMemo(()=>Fr.shouldUseAutoAdvanceToggle({canGoNext:C,currentAudioIndex:v,currentStepHasSpeakableElement:h,hasInteraction:!!c}),[C,v,c,h]),ln=t.useMemo(()=>Dr.resolveSilentStepAutoAdvanceBehavior({currentElementList:R,currentStepHasSpeakableElement:h,currentInteractionElement:c,markerAutoAdvanceDelay:Fe}),[R,c,h,Fe]),an=ln.delayMs,Te=ln.usesImageOnlyDelay,Et=t.useMemo(()=>`${a}:${ee.join("|")}`,[a,ee]),[er,tr]=t.useState(null),un=!Te||er===Et,j=t.useCallback(()=>{Z.current!==null&&(window.clearTimeout(Z.current),Z.current=null)},[]),M=t.useCallback(()=>{H.current!==null&&(window.clearTimeout(H.current),H.current=null)},[]),_=t.useCallback(()=>{Se.current!==null&&(window.clearTimeout(Se.current),Se.current=null)},[]),le=t.useCallback(()=>{he.current!==null&&(window.clearTimeout(he.current),he.current=null)},[]),L=t.useCallback(()=>{Ve.current!==null&&(window.clearTimeout(Ve.current),Ve.current=null)},[]),O=t.useCallback((e={})=>{le(),M(),_(),L(),B(null),re.reset(),S(!1),ut(Tt),ct(!1),Ye(!1),Yt(null),e.preservePendingSubtitleJump||(Ee.current=null),mt(void 0),We(!1),Ae(0)},[le,L,M,_,re]),ze=t.useCallback(e=>{Dt.current+=1,Yt({...e,id:Dt.current})},[]),ae=t.useCallback(()=>{const e=T[0];return e?(B(e),!0):!1},[T]),Pe=t.useCallback(()=>{M(),_(),We(!1),Ae(0),!ae()&&C&&k()},[C,M,_,k,ae]),cn=t.useCallback(e=>{if(_(),!e)return;const n=()=>{Se.current=null,Ae(Ur),We(!0),Y.current=null};Se.current=window.setTimeout(n,Kr)},[_]),It=t.useCallback(()=>Ne.current||!!ye.current?.querySelector(".slide-player__controls:hover"),[]),p=t.useCallback((e=He)=>{!m||F==="hidden"||(Re(!0),j(),!(F==="visible"||!e||pe<=0||It())&&(Z.current=window.setTimeout(()=>{if(It()){Z.current=null;return}Re(!1),Z.current=null},pe)))},[j,He,It,pe,F,m]),Me=!!kt.hasResolvedInteractionElement(c),ie=!!c&&!Me,nr=t.useCallback(e=>{Ut(e)},[]),ue=t.useCallback(e=>{e&&Ut(e.shouldContinuePlayback)},[]);t.useEffect(()=>{Ht(it)},[a,it,z]),t.useEffect(()=>{z&&ft(!1)},[a,z]),t.useEffect(()=>()=>{le(),L(),j(),M(),_()},[le,L,M,_,j]),t.useEffect(()=>{if(!Te){L();return}let e=!1,n=null,o=null;const s=()=>{o?.(),o=null},l=()=>{e||(s(),L(),tr(Et))},r=()=>{if(e)return;s();const E=Le.current?.querySelector('[data-active-step="true"]');if(!E)return;const q=Array.from(E.querySelectorAll("iframe"));if(q.length===0||bn.areImageOnlyStepIframeVisualsReady(q)){l();return}const Ze=[],Oe=()=>{e||(n!==null&&window.cancelAnimationFrame(n),n=window.requestAnimationFrame(()=>{n=null,r()}))},At=(G,de,J)=>{G.addEventListener(de,J,{once:!0}),Ze.push(()=>G.removeEventListener(de,J))};q.forEach(G=>{const de=G.contentDocument;if(!de||de.readyState!=="complete"){At(G,"load",Oe);return}Array.from(de.images).filter(J=>!J.complete).forEach(J=>{At(J,"load",Oe),At(J,"error",Oe)})}),o=()=>{Ze.forEach(G=>G())}};return n=window.requestAnimationFrame(()=>{n=null,r()}),Ve.current=window.setTimeout(()=>{l()},bn.DEFAULT_IMAGE_ONLY_VISUAL_READY_TIMEOUT_MS),()=>{e=!0,s(),L(),n!==null&&window.cancelAnimationFrame(n)}},[L,R,a,Et,Te]),t.useEffect(()=>(st?.(g),()=>{st?.(!1)}),[st,g]),t.useEffect(()=>{g||(Ne.current=!1)},[g]),t.useEffect(()=>{A||Je===qe.DEFAULT_MOBILE_VIEW_MODE||(xt(!1),St(qe.DEFAULT_MOBILE_VIEW_MODE))},[A,Je]),t.useEffect(()=>{if(!A){zt(!1);return}const e=()=>{zt(et.isLandscapeViewport())};return e(),et.subscribeMobileDeviceChange(e)},[A]),t.useEffect(()=>{Mt?.(oe)},[oe,Mt]),t.useEffect(()=>{Un.current=oe},[oe]),t.useEffect(()=>{_t?.(Ie,a)},[a,Ie,_t]),t.useEffect(()=>{const e=Lt.current,n=Or.shouldAutoAdvanceIntoAppendedMarker({previousMarkerCount:e.markerCount,nextMarkerCount:I.length,previousIndex:e.currentIndex,previousCanGoNext:e.canGoNext,nextCanGoNext:C,currentAudioKey:b,hasCompletedCurrentStepAudio:P,hasResolvedCurrentInteraction:Me,currentStepHasSpeakableElement:h,currentInteractionElement:c,isAutoAdvanceEnabled:Ce,shouldUseSilentStepAutoAdvanceToggle:ke});Lt.current={markerCount:I.length,currentIndex:a,canGoNext:C},n&&k()},[C,b,a,c,h,k,P,Me,Ce,ke,I.length]),t.useEffect(()=>{if(!m||F==="hidden"){j(),Re(!1);return}if(F==="visible"){j(),Re(!0);return}He||p(!0)},[j,He,F,m,p]),t.useEffect(()=>{if(typeof window>"u")return;const e=n=>{n.origin===window.location.origin&&Er.isSandboxInteractionMessage(n.data)&&n.data.eventType==="click"&&m&&(D(),te(!0),p(!0))};return window.addEventListener("message",e),()=>{window.removeEventListener("message",e)}},[D,m,p]),Tr.default({sectionRef:ye,enabled:m,keyboardShortcutsEnabled:Q,onKeyboardShortcut:D,onWake:()=>{D(),te(!0),p(!0)}}),t.useEffect(()=>{if(!m){O();return}const{hasPlaybackContextChanged:e,shouldInitializeAudioSequence:n}=Sn.getPlaybackSequenceTransition({previousResetKey:Bt.current,nextResetKey:we,currentAudioKey:b,hasCompletedCurrentStepAudio:P});Bt.current=we;const o=Y.current===a&&!!c,s=tt.shouldPresentInteractionOverlay({hasInteraction:!!c,shouldBlockPlaybackForInteraction:ie,shouldOpenInteractionOverlayAfterAudio:o,hasPlaybackContextChanged:e,hasResolvedCurrentInteraction:Me,currentStepHasSpeakableElement:h}),l=Ee.current,r=l?.slideIndex===a;if(e&&O({preservePendingSubtitleJump:r}),!(R.length===0&&!c)&&!W){if(l?.slideIndex===a&&kt.canReachSubtitleJumpTarget({currentIndex:a,resolvedCurrentInteractionElement:d,slideElementList:I,targetSlideIndex:l.slideIndex})){Ee.current=null,at.current=!0,B(l.audioKey),ze({audioIndex:l.audioIndex,timeMs:l.timeMs});return}if(c&&mt(c),s){cn(c);return}if(_(),Y.current=null,!!n&&!ae()){if(h){if(w){S(!1);return}S(!0);return}if(C&&!(ke&&!Ce)&&!(Te&&!un))return he.current=window.setTimeout(()=>{he.current=null,k()},an),()=>{le()}}}},[d,C,le,R.length,a,c,b,we,h,Te,un,an,k,P,w,Ce,Me,ie,_,O,ze,cn,m,I,ae,W,ke]),t.useEffect(()=>{if(w||W||!h||ie){S(!1);return}if(P){S(!1);return}if(rn){S(!1);return}ut("waitingForAudio"),S(!0)},[rn,h,P,w,W,ie]),t.useEffect(()=>{const e=at.current;at.current=!1,Sn.shouldStartDefaultAudioSequence({currentAudioKey:b,currentAudioSequenceLength:T.length,currentStepHasSpeakableElement:h,hasCompletedCurrentStepAudio:P,shouldBlockPlaybackForInteraction:ie,shouldPausePlaybackForCustomAction:W,shouldSkipDefaultAudioStart:e})&&ae()},[b,T,h,P,W,ie,ae]),t.useEffect(()=>{!b||v>=0||B(null)},[v,b]),t.useEffect(()=>{v>=0||re.reset()},[v,re]),t.useEffect(()=>{Ye(!1)},[Zn]);const{interactionDefaults:dn,interactionDefaultSelectedValues:rr,hasResolvedInteractionInput:fn,isInteractionReadonly:or,shouldAutoContinueInteraction:mn}=t.useMemo(()=>jr.resolveSlideInteractionState(d,{interactionDefaultValueOptions:De}),[d,De]),sr=!!d?.readonly||or,_e=tt.shouldRenderInteractionOverlay({hasActiveInteraction:!!d,isInteractionOverlayOpen:ne}),lr=t.useCallback(e=>{const o=[...e.selectedValues??[],e.inputText?.trim()??"",e.buttonText?.trim()??""].filter(Boolean).join(", ");mt(s=>!s||!o?s:{...s,user_input:o}),Pt?.(e,d),Pe()},[d,Pe,Pt]);t.useEffect(()=>{const e=()=>{Nn(document.fullscreenElement===ye.current)};return e(),document.addEventListener("fullscreenchange",e),()=>{document.removeEventListener("fullscreenchange",e)}},[]),t.useEffect(()=>{d&&ne||Ge(!1)},[d,ne]),t.useEffect(()=>{pt(vn),ht(!1),ge.current=null,be.current=null},[d]),t.useEffect(()=>{if(!_e){Ae(0);return}const e=xe.current;if(!e)return;const n=()=>{const s=Math.ceil(e.getBoundingClientRect().height);Ae(s+Hr)};if(n(),typeof ResizeObserver>"u")return;const o=new ResizeObserver(()=>{n()});return o.observe(e),()=>{o.disconnect()}},[_e]),t.useEffect(()=>{if(M(),!!ne){if(mn)return H.current=window.setTimeout(()=>{H.current=null,Pe()},gn),()=>{M()};if(!(Gt||!fn))return H.current=window.setTimeout(()=>{H.current=null,Pe()},gn),()=>{M()}}},[M,Pe,Gt,fn,ne,mn]);const ar=(e,n={})=>e?e.type==="slot"?i.jsxRuntimeExports.jsx(i.jsxRuntimeExports.Fragment,{children:e.content}):e.type==="html"?i.jsxRuntimeExports.jsx(hn.default,{className:"content-render-iframe",disableLoadingOverlay:w,hideFullScreen:!0,locale:f,mode:"blackboard",replaceRootScreenHeightWithFull:n.replaceRootScreenHeightWithFull,type:"sandbox",content:e.content,enableScaling:Rn}):i.jsxRuntimeExports.jsx(hn.default,{className:"content-render-iframe",disableLoadingOverlay:w,hideFullScreen:!0,locale:f,mode:"blackboard",type:"markdown",content:e.content}):null,ir=(e=[],n=!1)=>{if(e.length===0)return null;const o=e.filter(r=>r.is_renderable!==!1).length,s=n&&Cn?_r.resolveMarkdownScalingMode(e):"disabled",l=e.reduce((r,E,q)=>E.is_renderable!==!1?q:r,-1);return i.jsxRuntimeExports.jsx(Ar.default,{className:"slide-stage__content flex w-full flex-col gap-4",mode:s,children:e.map((r,E)=>{const q=r.type==="html"&&r.is_renderable===!1;return i.jsxRuntimeExports.jsx("div",{ref:n&&E===l?jt:null,"aria-hidden":q||void 0,className:fe.cn("w-full shrink-0",o===1&&r.is_renderable!==!1&&"slide-element--single",q?"pointer-events-none fixed left-[-200vw] top-0 -z-10 h-[100dvh] w-[100vw] overflow-hidden opacity-0":r.is_renderable===!1&&"hidden"),children:ar(r,{replaceRootScreenHeightWithFull:o===1&&r.type==="html"&&r.is_renderable!==!1})},r.sequence_number??`${r.type}-${E}`)})})},ur=t.useCallback(()=>{const e=ye.current;if(e){if(document.fullscreenElement===e){document.exitFullscreen().catch(()=>{});return}e.requestFullscreen?.().catch(()=>{})}},[]),pn=t.useCallback(()=>{const e=Le.current;e&&e.scrollTo({top:e.scrollHeight,behavior:"smooth"})},[]),Rt=t.useCallback(e=>kt.canReachSubtitleJumpTarget({currentIndex:a,resolvedCurrentInteractionElement:d,slideElementList:I,targetSlideIndex:Ke[e.audioIndex]}),[d,Ke,a,I]),cr=t.useCallback((e,n)=>{const s=y[e.audioIndex]?.audioKey,l=Ke[e.audioIndex];return!s||l==null||!Rt(e)?!1:(ue(n),Y.current=null,S(!1),ct(!1),Ye(!1),wt.shouldWakePlayerControlsAfterNavigation(n)&&(te(!0),p(!0)),l===a?(Ee.current=null,O(),B(s),ze(e),!0):(ve.current=!0,O(),Ee.current={audioIndex:e.audioIndex,audioKey:s,slideIndex:l,timeMs:e.timeMs},Kt(l),!0))},[y,Ke,Rt,a,Kt,ze,O,p,ue]),dr=t.useCallback(e=>{ue(e),ve.current=!0,Y.current=null,S(!1),wt.shouldWakePlayerControlsAfterNavigation(e)&&(te(!0),p(!0)),O(),Vt()},[Vt,O,p,ue]),fr=t.useCallback(e=>{ue(e),ve.current=!0,Y.current=null,S(!1),wt.shouldWakePlayerControlsAfterNavigation(e)&&(te(!0),p(!0)),O(),k()},[k,O,p,ue]),mr=t.useCallback(({loading:e,reason:n})=>{if(w){S(!1);return}if(!h||P){S(!1);return}e&&n&&ut(n),S($r(n,e))},[h,P,w]);t.useEffect(()=>{w&&S(!1)},[w]);const pr=t.useCallback(e=>{const n=y[e]?.audioKey;if(!n||!b||n!==b)return;const o=T.findIndex(r=>r===n);if(o<0){B(null);return}const s=o+1,l=T[s];if(l){B(l);return}if(B(null),ct(!0),S(!1),C){const r=a+1,E=I[r];sn&&E?.type==="interaction"&&(Y.current=r),k();return}},[y,C,a,b,T,k,sn,I]),yr=t.useCallback(()=>{d&&We(e=>!e)},[d]),hr=t.useCallback(()=>{Ne.current=!0,j(),m&&Re(!0)},[j,m]),Sr=t.useCallback(()=>{Ne.current=!1,p(!0)},[p]),ce=t.useCallback(e=>{e.stopPropagation(),g&&p(!0)},[g,p]),Xe=t.useCallback((e,n)=>{const o=lt.current;if(!o)return null;const s=e.getBoundingClientRect(),l=o.getBoundingClientRect();return{minX:n.x+l.left-s.left,maxX:n.x+l.right-s.right,minY:n.y+l.top-s.top,maxY:n.y+l.bottom-s.bottom}},[]);Yr(()=>{const e=xe.current;if(!_e||!e){be.current=null;return}const n=be.current,o=e.getBoundingClientRect();if(!n||yt){be.current=o;return}const s={x:x.x+n.left-o.left,y:x.y+n.top-o.top},l=Xe(e,x),r=l?tt.clampInteractionOverlayDragOffset(s,l):s;be.current={left:o.left+r.x-x.x,top:o.top+r.y-x.y},(r.x!==x.x||r.y!==x.y)&&pt(r)},[Xe,x,yt,g,m,_e]);const Ct=t.useCallback(e=>{if(ce(e),e.button!==0||!e.currentTarget.isConnected||!xe.current)return;const n=Xe(xe.current,x);n&&(e.preventDefault(),e.currentTarget.setPointerCapture(e.pointerId),ge.current={pointerId:e.pointerId,startClientX:e.clientX,startClientY:e.clientY,startOffset:x,bounds:n},ht(!0))},[Xe,x,ce]),xr=t.useCallback(e=>{if(A){ce(e);return}if(nt(e.target)){ce(e);return}Ct(e)},[Ct,A,ce]),yn=t.useCallback(e=>{const n=ge.current;!n||n.pointerId!==e.pointerId||(e.preventDefault(),e.stopPropagation(),pt(tt.clampInteractionOverlayDragOffset({x:n.startOffset.x+e.clientX-n.startClientX,y:n.startOffset.y+e.clientY-n.startClientY},n.bounds)))},[]),Qe=t.useCallback(e=>{const n=ge.current;!n||n.pointerId!==e.pointerId||(e.stopPropagation(),e.currentTarget.hasPointerCapture(e.pointerId)&&e.currentTarget.releasePointerCapture(e.pointerId),ge.current=null,ht(!1))},[]),br=t.useCallback(e=>{D(),Ot?.(e)},[D,Ot]),gr=t.useCallback(e=>{D(),qt?.(e)},[D,qt]),vr=t.useCallback(()=>{te(!0),p(!0)},[p]);return t.useEffect(()=>{const e=Ft.current,s=(e.length>0&&e.length<ee.length&&e.every((r,E)=>r===ee[E])?R.slice(e.length):[]).some(r=>r.is_new===!1);if(Ft.current=ee,!s)return;const l=window.requestAnimationFrame(()=>{const r=Le.current,E=jt.current;if(!r||!E)return;const q=r.getBoundingClientRect(),Ze=E.getBoundingClientRect(),Oe=r.scrollTop+(Ze.top-q.top);r.scrollTo({top:Math.max(Oe,0),behavior:"smooth"})});return()=>{window.cancelAnimationFrame(l)}},[R,ee]),t.useEffect(()=>{if(!ve.current||(ve.current=!1,R.length===0))return;const e=window.requestAnimationFrame(()=>{pn()});return()=>{window.cancelAnimationFrame(e)}},[R,pn]),i.jsxRuntimeExports.jsxs("section",{ref:ye,className:fe.cn("relative h-full w-full",A&&"slide--mobile-device",Qt&&"slide--browser-fullscreen",se&&"slide--mobile-landscape",Xt&&"slide--mobile-landscape-native",An),onClick:vr,onFocusCapture:gr,onPointerDown:br,...wn,children:[Wn?i.jsxRuntimeExports.jsx("div",{"aria-hidden":"true",className:"pointer-events-none fixed left-0 top-0 z-[9999] h-[100vh] max-h-[100vh] w-[100vw]"}):null,i.jsxRuntimeExports.jsxs("div",{ref:lt,className:fe.cn("slide__viewport relative h-full min-h-0 w-full",se&&"slide__viewport--mobile-landscape",se&&!Kn&&"slide__viewport--mobile-landscape-native"),children:[Hn?i.jsxRuntimeExports.jsxs("div",{className:"slide-landscape-header",children:[i.jsxRuntimeExports.jsx("button",{"aria-label":K?.backAriaLabel??U.fullscreenBackAriaLabel,className:"slide-landscape-header__back",onClick:Jn,type:"button",children:i.jsxRuntimeExports.jsx(Nr.default,{className:"slide-landscape-header__icon h-6 w-6",strokeWidth:2.25})}),K?.content?i.jsxRuntimeExports.jsx("div",{className:"min-w-0 flex-1 overflow-hidden",children:K.content}):null]}):null,i.jsxRuntimeExports.jsx("div",{className:fe.cn("h-full min-h-0 w-full",Yn&&"slide__viewport-content--with-header",Mn?"slide-content--single":"grid gap-4"),children:R.length>0?i.jsxRuntimeExports.jsx("div",{className:"slide-stage",children:i.jsxRuntimeExports.jsx("div",{ref:Le,className:"slide-stage__layer w-full",children:$n.map((e,n)=>{const o=n===zn;return i.jsxRuntimeExports.jsx("div",{"data-active-step":o?"true":void 0,"aria-hidden":!o||void 0,className:"w-full h-full",style:{display:o?void 0:"none"},children:ir(e.elementList,o)},e.sourceStepIndexes[0]??n)})})}):null}),jn?i.jsxRuntimeExports.jsx(Ir.default,{message:Gr(kn,Fn),className:"absolute left-1/2 top-1/2 z-[3] -translate-x-1/2 -translate-y-1/2"}):null,i.jsxRuntimeExports.jsx(wr.default,{extraBottomOffset:Ln,hasPlayerGap:g,isEnabled:Wt&&Dn,isPlayerHidden:m&&!g,playbackTimeStore:re,subtitleCues:Xn}),_e?i.jsxRuntimeExports.jsx("div",{ref:xe,"data-player-keyboard-shortcuts-ignore":"true",className:fe.cn("slide-interaction-overlay",g&&m?"slide-interaction-overlay--with-player":"slide-interaction-overlay--standalone",!A&&"slide-interaction-overlay--draggable",yt&&"slide-interaction-overlay--dragging"),onClick:ce,onPointerDown:xr,onPointerDownCapture:e=>{nt(e.target)&&Ge(!0)},onPointerMove:yn,onPointerUp:Qe,onPointerCancel:Qe,onFocusCapture:e=>{nt(e.target)&&Ge(!0)},onInputCapture:e=>{nt(e.target)&&Ge(!0)},style:Qn,children:i.jsxRuntimeExports.jsx(In,{content:String(d?.content??""),locale:f,defaultButtonText:dn.buttonText??"",defaultInputText:dn.inputText??"",defaultSelectedValues:rr,confirmButtonText:X?.confirmButtonText??U.interactionTexts.confirmButtonText,copyButtonText:X?.copyButtonText??U.interactionTexts.copyButtonText,copiedButtonText:X?.copiedButtonText??U.interactionTexts.copiedButtonText,onSend:lr,onDragHandlePointerCancel:Qe,onDragHandlePointerDown:Ct,onDragHandlePointerMove:yn,onDragHandlePointerUp:Qe,readonly:sr,title:X?.title??rt??U.interactionTexts.title})}):null,m?i.jsxRuntimeExports.jsx(Pr.PlayerKeyboardShortcutContext.Provider,{value:_n,children:i.jsxRuntimeExports.jsx(Cr.default,{audioList:y,className:fe.cn("absolute left-1/2 z-[2] -translate-x-1/2",Qt?"bottom-3":"-bottom-3",V,!g&&"pointer-events-none opacity-0"),currentAudioIndex:v,defaultPlaying:it,enableKeyboardShortcuts:Q,isPlaybackPaused:W,isAutoAdvanceEnabled:Ce,locale:f,hasInteraction:!!d,isInteractionOpen:ne,isSubtitleEnabled:Wt,onAutoAdvanceToggle:Ht,onLoadingChange:mr,onPlaybackStarted:()=>{Ye(!0)},onPlaybackPreferenceChange:nr,onPlaybackTimeChange:re.setTime,onSubtitleToggle:()=>{Bn(e=>!e)},nextDisabled:!C,onEnded:pr,onFullscreen:ur,isFullscreen:Jt,mobileViewMode:oe,settingsPortalContainer:lt.current,onMobileViewModeChange:Gn,onControlsPointerEnter:hr,onControlsPointerLeave:Sr,onInteractionToggle:yr,onNext:fr,onPrev:dr,onSubtitleJump:cr,canJumpToSubtitleTarget:Rt,prevDisabled:!Pn,showControls:g,subtitleSeekRequest:qn,texts:ot,customActionContext:gt,customActions:$,useAutoAdvanceToggle:ke})}):null]})]})};exports.default=Xr;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const a=require("../../_virtual/jsx-runtime.cjs.js"),t=require("react"),vr=require("../../lib/sandboxInteraction.cjs.js"),de=require("../../lib/utils.cjs.js"),Er=require("../ui/loading-overlay-card.cjs.js"),Ir=require("../ContentRender/ContentRender.cjs.js"),pn=require("../ContentRender/IframeSandbox.cjs.js");require("../ui/inputGroup/input-group.cjs.js");require("../ContentRender/contentRenderI18n.cjs.js");const Qe=require("../../lib/mobileDevice.cjs.js"),Rr=require("./Player.cjs.js"),Ar=require("./MarkdownSlideScaling.cjs.js"),Cr=require("./SubtitleOverlay.cjs.js"),wr=require("./useSlide.cjs.js"),kr=require("./useWakePlayerFromIframe.cjs.js"),Tr=require("./utils/playerKeyboardShortcutContext.cjs.js"),Mr=require("./utils/playerKeyboardShortcuts.cjs.js"),Oe=require("./utils/mobileScreenMode.cjs.js"),Ze=require("./utils/interactionPlayback.cjs.js"),Pr=require("./utils/markdownScaling.cjs.js"),Rt=require("./utils/playerNavigationContext.cjs.js"),_r=require("./utils/appendedMarkerAdvance.cjs.js"),yn=require("./utils/playbackSequence.cjs.js"),At=require("./utils/subtitleJumpNavigation.cjs.js"),hn=require("./utils/playerCustomActions.cjs.js"),Or=require("./utils/playbackTimeStore.cjs.js"),jr=require("./utils/interactionResolution.cjs.js"),qr=require("./utils/playerToggleMode.cjs.js"),xn=require("./utils/imageOnlyStepVisualReady.cjs.js"),Fr=require("./utils/silentStepAutoAdvance.cjs.js"),Br=require("./utils/playerVisibility.cjs.js"),gn=require("./slideI18n.cjs.js");;/* empty css */const Dr=require("../../node_modules/lucide-react/dist/esm/icons/grip-horizontal.cjs.js"),Nr=require("../../node_modules/lucide-react/dist/esm/icons/chevron-left.cjs.js"),Lr=2e3,Vr=300,Kr=160,Ur=16,Sn=3e3,bn={x:0,y:0},Hr=typeof window>"u"?t.useEffect:t.useLayoutEffect,Yr=["button","input","textarea",'[contenteditable=""]','[contenteditable="true"]','[contenteditable="plaintext-only"]'].join(", "),wt="waitingForAudio",Wr=(i,f)=>typeof i=="string"?i:i[f]??i[wt]??gn.DEFAULT_SLIDE_BUFFERING_TEXTS[f],Gr=(i,f)=>typeof i=="string"?i:{...f,...i},Jr=(i,f)=>f?i!=="loadingAudio":!1,vn=t.memo(({content:i,title:f,locale:L,defaultButtonText:fe,defaultInputText:V,defaultSelectedValues:K,confirmButtonText:$,copyButtonText:z,copiedButtonText:je,onSend:et,onDragHandlePointerCancel:X,onDragHandlePointerDown:tt,onDragHandlePointerMove:me,onDragHandlePointerUp:qe,readonly:Fe=!1})=>a.jsxRuntimeExports.jsxs("div",{className:"slide-player__interaction-card",children:[a.jsxRuntimeExports.jsx("button",{type:"button",className:"slide-player__interaction-drag-handle","aria-label":"Move interaction",onPointerCancel:X,onPointerDown:tt,onPointerMove:me,onPointerUp:qe,children:a.jsxRuntimeExports.jsx("span",{className:"slide-player__interaction-drag-handle-icon",children:a.jsxRuntimeExports.jsx(Dr.default,{"aria-hidden":"true"})})}),a.jsxRuntimeExports.jsx("div",{className:"slide-player__interaction-header",children:a.jsxRuntimeExports.jsx("p",{className:"slide-player__interaction-title",children:f})}),a.jsxRuntimeExports.jsx("div",{className:"slide-player__interaction-body",children:a.jsxRuntimeExports.jsx(Ir.default,{content:i,locale:L,defaultButtonText:fe,defaultInputText:V,defaultSelectedValues:K,confirmButtonText:$,copyButtonText:z,copiedButtonText:je,onSend:et,readonly:Fe,sandboxMode:"content"})})]}));vn.displayName="InteractionOverlayCard";const $r=(i,f)=>i.length===f.length&&i.every((L,fe)=>{const V=f[fe];return L.sequence_number===V?.sequence_number&&L.type===V?.type&&L.content===V?.content}),Ct=i=>i instanceof HTMLElement&&!!i.closest(Yr),zr=({elementList:i=[],locale:f,playerEnabled:L,playerControlsVisibility:fe,playerClassName:V,fullscreenHeader:K,playerCustomActions:$,playerCustomActionPauseOnActive:z=!0,bufferingText:je,interactionTitle:et,interactionTexts:X,playerTexts:tt,playerAutoHideDelay:me=3e3,markerAutoAdvanceDelay:qe=Lr,interactionDefaultValueOptions:Fe,onSend:kt,onPlayerVisibilityChange:nt,onMobileViewModeChange:Tt,onStepChange:Mt,enableKeyboardShortcuts:Q=!0,enableIframeScaling:En=!0,enableMarkdownScaling:In=!0,disableLoadingOverlay:C=!1,className:Rn,onPointerDown:Pt,onFocusCapture:_t,...An})=>{const U=t.useMemo(()=>gn.getSlideLocaleTexts(f),[f]),Cn=t.useMemo(()=>Gr(je,U.bufferingText),[je,U.bufferingText]),{playerEnabled:wn,playerControlsVisibility:F}=Br.resolveSlidePlayerVisibility({playerEnabled:L,playerControlsVisibility:fe}),Be=t.useId(),pe=t.useRef(null),rt=t.useRef(null),De=t.useRef(null),Ot=t.useRef(null),Z=t.useRef(null),Ne=t.useRef(!1),ye=t.useRef(null),Le=t.useRef(null),H=t.useRef(null),he=t.useRef(null),xe=t.useRef(null),Se=t.useRef(null),be=t.useRef(null),jt=t.useRef([]),ge=t.useRef(!1),Y=t.useRef(null),ve=t.useRef(null),qt=t.useRef(0),Ft=t.useRef(null),Bt=t.useRef({markerCount:0,currentIndex:-1,canGoNext:!1}),ot=t.useRef(!1),{currentElementList:R,stepElementLists:Dt,slideElementList:I,currentIndex:u,audioList:y,audioSlideIndexes:Ve,currentAudioSequenceIndexes:Ke,currentStepHasSpeakableElement:h,currentInteractionElement:c,canGoPrev:kn,canGoNext:A,handlePrev:Nt,handleNext:w,handleGoTo:Lt}=wr.default(i),Ee=t.useMemo(()=>{if(!(u<0))return I[u]},[u,I]),ee=t.useMemo(()=>R.map((e,n)=>`${e.sequence_number??`${e.type}-${n}`}:${String(e.is_new??"")}`),[R]),Tn=I.filter(e=>e.is_renderable!==!1).length===1,m=wn&&(I.length>0||y.length>0||!!c),Mn=t.useMemo(()=>({enabled:Q,ownerId:Be}),[Q,Be]),B=t.useCallback(()=>{!Q||!m||Mr.activatePlayerKeyboardShortcutOwner(Be)},[Q,Be,m]),k=t.useMemo(()=>Ke.map(e=>y[e]?.audioKey).filter(e=>!!e),[y,Ke]),[Pn,Ie]=t.useState(!0),[Ue,te]=t.useState(!1),[st,Vt]=t.useState(!0),[Re,Kt]=t.useState(!0),[b,D]=t.useState(null),[_n,Ut]=t.useState(null),[On,x]=t.useState(!1),[jn,lt]=t.useState(wt),[T,at]=t.useState(!1),[qn,He]=t.useState(!1),[Ht,Fn]=t.useState(!0),[ut,it]=t.useState(!1),[d,ct]=t.useState(),[ne,Ye]=t.useState(!1),[Yt,We]=t.useState(!1),[S,dt]=t.useState(bn),[ft,mt]=t.useState(!1),[Bn,Ae]=t.useState(0),[Wt,Dn]=t.useState(!1),j=t.useMemo(()=>Qe.isMobileDevice(),[]),[Ge,pt]=t.useState(Oe.DEFAULT_MOBILE_VIEW_MODE),[Gt,yt]=t.useState(!1),[Nn,Jt]=t.useState(()=>j?Qe.isLandscapeViewport():!1),re=t.useMemo(()=>Or.createPlaybackTimeStore(),[]),{effectiveMobileViewMode:oe,isImmersiveMobileFullscreen:se,isNativeMobileFullscreen:$t,shouldRotateFullscreenViewport:Ln}=t.useMemo(()=>Oe.resolveMobileViewModeState({hasManualMobileViewMode:Gt,isMobileDevice:j,mobileViewMode:Ge}),[Gt,j,Nn,Ge]),Vn=t.useRef(oe),g=m&&F!=="hidden"&&(F==="visible"||Pn),Kn=se&&g,Un=se&&g,Hn=se||$t,zt=Wt&&!j,Yn=t.useCallback(e=>{yt(!0),pt(e)},[]),Xt=t.useCallback(()=>{yt(!1),pt(Oe.DEFAULT_MOBILE_VIEW_MODE)},[]),Wn=t.useCallback(()=>{Xt(),K?.onBack?.()},[K,Xt]),Qt=t.useCallback(e=>{it(e)},[]),Zt=t.useCallback(()=>{it(e=>!e)},[]),{mountedStepStates:Gn,currentMountedStateIndex:Jn}=t.useMemo(()=>{const e=[],n=new Map;return Dt.forEach((o,s)=>{const l=e.findIndex(r=>$r(r.elementList,o));if(l>=0){e[l]?.sourceStepIndexes.push(s),n.set(s,l);return}e.push({elementList:o,sourceStepIndexes:[s]}),n.set(s,e.length-1)}),{mountedStepStates:e,currentMountedStateIndex:u>=0?n.get(u)??-1:-1}},[u,Dt]),en=t.useMemo(()=>String(u),[u]),v=t.useMemo(()=>b?y.findIndex(e=>(e.audioKey??"")===b):-1,[y,b]),ht=t.useMemo(()=>v>=0?y[v]:void 0,[y,v]),$n=ht?.element?.subtitle_cues??[],Je=t.useMemo(()=>k[0]??"none",[k]),xt=t.useMemo(()=>({currentElement:hn.resolvePlayerCustomActionElement({currentAudioIndex:v,currentAudioSequenceIndexes:Ke,audioList:y,currentInteractionElement:d,currentStepElement:Ee}),currentIndex:u,currentStepElement:Ee,isActive:ut,setActive:Qt,toggleActive:Zt}),[d,y,v,Ke,u,Ee,ut,Qt,Zt]),St=t.useMemo(()=>hn.getPlayerCustomActionCount($,xt),[xt,$]),zn=t.useMemo(()=>({"--slide-player-custom-action-count":String(St),"--slide-player-mobile-control-count":String(St+4),"--slide-interaction-drag-x":`${S.x}px`,"--slide-interaction-drag-y":`${S.y}px`}),[S.x,S.y,St]),tn=k.length>0,nn=t.useMemo(()=>c?`${c.sequence_number??"none"}:${String(c.content??"")}`:"none",[c]),Ce=t.useMemo(()=>[en,nn].join("|"),[nn,en]),Xn=t.useMemo(()=>[Ce,ht?.audioKey??"none",String(v)].join("|"),[v,ht?.audioKey,Ce]),rn=!!t.useMemo(()=>!Je||Je==="none"?"":y.find(n=>n.audioKey===Je)?.audioUrl?.trim()??"",[y,Je]),W=z&&!!$&&ut,we=t.useMemo(()=>qr.shouldUseAutoAdvanceToggle({canGoNext:A,currentAudioIndex:v,currentStepHasSpeakableElement:h,hasInteraction:!!c}),[A,v,c,h]),on=t.useMemo(()=>Fr.resolveSilentStepAutoAdvanceBehavior({currentElementList:R,currentStepHasSpeakableElement:h,currentInteractionElement:c,markerAutoAdvanceDelay:qe}),[R,c,h,qe]),sn=on.delayMs,ke=on.usesImageOnlyDelay,bt=t.useMemo(()=>`${u}:${ee.join("|")}`,[u,ee]),[Qn,Zn]=t.useState(null),ln=!ke||Qn===bt,q=t.useCallback(()=>{Z.current!==null&&(window.clearTimeout(Z.current),Z.current=null)},[]),M=t.useCallback(()=>{H.current!==null&&(window.clearTimeout(H.current),H.current=null)},[]),P=t.useCallback(()=>{he.current!==null&&(window.clearTimeout(he.current),he.current=null)},[]),le=t.useCallback(()=>{ye.current!==null&&(window.clearTimeout(ye.current),ye.current=null)},[]),N=t.useCallback(()=>{Le.current!==null&&(window.clearTimeout(Le.current),Le.current=null)},[]),_=t.useCallback((e={})=>{le(),M(),P(),N(),D(null),re.reset(),x(!1),lt(wt),at(!1),He(!1),Ut(null),e.preservePendingSubtitleJump||(ve.current=null),ct(void 0),Ye(!1),Ae(0)},[le,N,M,P,re]),$e=t.useCallback(e=>{qt.current+=1,Ut({...e,id:qt.current})},[]),ae=t.useCallback(()=>{const e=k[0];return e?(D(e),!0):!1},[k]),Te=t.useCallback(()=>{M(),P(),Ye(!1),Ae(0),!ae()&&A&&w()},[A,M,P,w,ae]),an=t.useCallback(e=>{if(P(),!e)return;const n=()=>{he.current=null,Ae(Kr),Ye(!0),Y.current=null};he.current=window.setTimeout(n,Vr)},[P]),gt=t.useCallback(()=>Ne.current||!!pe.current?.querySelector(".slide-player__controls:hover"),[]),p=t.useCallback((e=Ue)=>{!m||F==="hidden"||(Ie(!0),q(),!(F==="visible"||!e||me<=0||gt())&&(Z.current=window.setTimeout(()=>{if(gt()){Z.current=null;return}Ie(!1),Z.current=null},me)))},[q,Ue,gt,me,F,m]),Me=!!At.hasResolvedInteractionElement(c),ue=!!c&&!Me,er=t.useCallback(e=>{Vt(e)},[]),ie=t.useCallback(e=>{e&&Vt(e.shouldContinuePlayback)},[]);t.useEffect(()=>{Kt(st)},[u,st,z]),t.useEffect(()=>{z&&it(!1)},[u,z]),t.useEffect(()=>()=>{le(),N(),q(),M(),P()},[le,N,M,P,q]),t.useEffect(()=>{if(!ke){N();return}let e=!1,n=null,o=null;const s=()=>{o?.(),o=null},l=()=>{e||(s(),N(),Zn(bt))},r=()=>{if(e)return;s();const E=De.current?.querySelector('[data-active-step="true"]');if(!E)return;const O=Array.from(E.querySelectorAll("iframe"));if(O.length===0||xn.areImageOnlyStepIframeVisualsReady(O)){l();return}const Xe=[],_e=()=>{e||(n!==null&&window.cancelAnimationFrame(n),n=window.requestAnimationFrame(()=>{n=null,r()}))},It=(G,ce,J)=>{G.addEventListener(ce,J,{once:!0}),Xe.push(()=>G.removeEventListener(ce,J))};O.forEach(G=>{const ce=G.contentDocument;if(!ce||ce.readyState!=="complete"){It(G,"load",_e);return}Array.from(ce.images).filter(J=>!J.complete).forEach(J=>{It(J,"load",_e),It(J,"error",_e)})}),o=()=>{Xe.forEach(G=>G())}};return n=window.requestAnimationFrame(()=>{n=null,r()}),Le.current=window.setTimeout(()=>{l()},xn.DEFAULT_IMAGE_ONLY_VISUAL_READY_TIMEOUT_MS),()=>{e=!0,s(),N(),n!==null&&window.cancelAnimationFrame(n)}},[N,R,u,bt,ke]),t.useEffect(()=>(nt?.(g),()=>{nt?.(!1)}),[nt,g]),t.useEffect(()=>{g||(Ne.current=!1)},[g]),t.useEffect(()=>{j||Ge===Oe.DEFAULT_MOBILE_VIEW_MODE||(yt(!1),pt(Oe.DEFAULT_MOBILE_VIEW_MODE))},[j,Ge]),t.useEffect(()=>{if(!j){Jt(!1);return}const e=()=>{Jt(Qe.isLandscapeViewport())};return e(),Qe.subscribeMobileDeviceChange(e)},[j]),t.useEffect(()=>{Tt?.(oe)},[oe,Tt]),t.useEffect(()=>{Vn.current=oe},[oe]),t.useEffect(()=>{Mt?.(Ee,u)},[u,Ee,Mt]),t.useEffect(()=>{const e=Bt.current,n=_r.shouldAutoAdvanceIntoAppendedMarker({previousMarkerCount:e.markerCount,nextMarkerCount:I.length,previousIndex:e.currentIndex,previousCanGoNext:e.canGoNext,nextCanGoNext:A,currentAudioKey:b,hasCompletedCurrentStepAudio:T,hasResolvedCurrentInteraction:Me,currentStepHasSpeakableElement:h,currentInteractionElement:c,isAutoAdvanceEnabled:Re,shouldUseSilentStepAutoAdvanceToggle:we});Bt.current={markerCount:I.length,currentIndex:u,canGoNext:A},n&&w()},[A,b,u,c,h,w,T,Me,Re,we,I.length]),t.useEffect(()=>{if(!m||F==="hidden"){q(),Ie(!1);return}if(F==="visible"){q(),Ie(!0);return}Ue||p(!0)},[q,Ue,F,m,p]),t.useEffect(()=>{if(typeof window>"u")return;const e=n=>{n.origin===window.location.origin&&vr.isSandboxInteractionMessage(n.data)&&n.data.eventType==="click"&&m&&(B(),te(!0),p(!0))};return window.addEventListener("message",e),()=>{window.removeEventListener("message",e)}},[B,m,p]),kr.default({sectionRef:pe,enabled:m,keyboardShortcutsEnabled:Q,onKeyboardShortcut:B,onWake:()=>{B(),te(!0),p(!0)}}),t.useEffect(()=>{if(!m){_();return}const{hasPlaybackContextChanged:e,shouldInitializeAudioSequence:n}=yn.getPlaybackSequenceTransition({previousResetKey:Ft.current,nextResetKey:Ce,currentAudioKey:b,hasCompletedCurrentStepAudio:T});Ft.current=Ce;const o=Y.current===u&&!!c,s=Ze.shouldPresentInteractionOverlay({hasInteraction:!!c,shouldBlockPlaybackForInteraction:ue,shouldOpenInteractionOverlayAfterAudio:o,hasPlaybackContextChanged:e,hasResolvedCurrentInteraction:Me,currentStepHasSpeakableElement:h}),l=ve.current,r=l?.slideIndex===u;if(e&&_({preservePendingSubtitleJump:r}),!(R.length===0&&!c)&&!W){if(l?.slideIndex===u&&At.canReachSubtitleJumpTarget({currentIndex:u,resolvedCurrentInteractionElement:d,slideElementList:I,targetSlideIndex:l.slideIndex})){ve.current=null,ot.current=!0,D(l.audioKey),$e({audioIndex:l.audioIndex,timeMs:l.timeMs});return}if(c&&ct(c),s){an(c);return}if(P(),Y.current=null,!!n&&!ae()){if(h){if(C){x(!1);return}x(!0);return}if(A&&!(we&&!Re)&&!(ke&&!ln))return ye.current=window.setTimeout(()=>{ye.current=null,w()},sn),()=>{le()}}}},[d,A,le,R.length,u,c,b,Ce,h,ke,ln,sn,w,T,C,Re,Me,ue,P,_,$e,an,m,I,ae,W,we]),t.useEffect(()=>{if(C||W||!h||ue){x(!1);return}if(T){x(!1);return}if(tn){x(!1);return}lt("waitingForAudio"),x(!0)},[tn,h,T,C,W,ue]),t.useEffect(()=>{const e=ot.current;ot.current=!1,yn.shouldStartDefaultAudioSequence({currentAudioKey:b,currentAudioSequenceLength:k.length,currentStepHasSpeakableElement:h,hasCompletedCurrentStepAudio:T,shouldBlockPlaybackForInteraction:ue,shouldPausePlaybackForCustomAction:W,shouldSkipDefaultAudioStart:e})&&ae()},[b,k,h,T,W,ue,ae]),t.useEffect(()=>{!b||v>=0||D(null)},[v,b]),t.useEffect(()=>{v>=0||re.reset()},[v,re]),t.useEffect(()=>{He(!1)},[Xn]);const{interactionDefaults:un,interactionDefaultSelectedValues:tr,hasResolvedInteractionInput:cn,isInteractionReadonly:nr,shouldAutoContinueInteraction:dn}=t.useMemo(()=>jr.resolveSlideInteractionState(d,{interactionDefaultValueOptions:Fe}),[d,Fe]),rr=!!d?.readonly||nr,Pe=Ze.shouldRenderInteractionOverlay({hasActiveInteraction:!!d,isInteractionOverlayOpen:ne}),or=t.useCallback(e=>{const o=[...e.selectedValues??[],e.inputText?.trim()??"",e.buttonText?.trim()??""].filter(Boolean).join(", ");ct(s=>!s||!o?s:{...s,user_input:o}),kt?.(e,d),Te()},[d,Te,kt]);t.useEffect(()=>{const e=()=>{Dn(document.fullscreenElement===pe.current)};return e(),document.addEventListener("fullscreenchange",e),()=>{document.removeEventListener("fullscreenchange",e)}},[]),t.useEffect(()=>{d&&ne||We(!1)},[d,ne]),t.useEffect(()=>{dt(bn),mt(!1),be.current=null,Se.current=null},[d]),t.useEffect(()=>{if(!Pe){Ae(0);return}const e=xe.current;if(!e)return;const n=()=>{const s=Math.ceil(e.getBoundingClientRect().height);Ae(s+Ur)};if(n(),typeof ResizeObserver>"u")return;const o=new ResizeObserver(()=>{n()});return o.observe(e),()=>{o.disconnect()}},[Pe]),t.useEffect(()=>{if(M(),!!ne){if(dn)return H.current=window.setTimeout(()=>{H.current=null,Te()},Sn),()=>{M()};if(!(Yt||!cn))return H.current=window.setTimeout(()=>{H.current=null,Te()},Sn),()=>{M()}}},[M,Te,Yt,cn,ne,dn]);const sr=(e,n={})=>e?e.type==="slot"?a.jsxRuntimeExports.jsx(a.jsxRuntimeExports.Fragment,{children:e.content}):e.type==="html"?a.jsxRuntimeExports.jsx(pn.default,{className:"content-render-iframe",disableLoadingOverlay:C,hideFullScreen:!0,locale:f,mode:"blackboard",replaceRootScreenHeightWithFull:n.replaceRootScreenHeightWithFull,type:"sandbox",content:e.content,enableScaling:En}):a.jsxRuntimeExports.jsx(pn.default,{className:"content-render-iframe",disableLoadingOverlay:C,hideFullScreen:!0,locale:f,mode:"blackboard",type:"markdown",content:e.content}):null,lr=(e=[],n=!1)=>{if(e.length===0)return null;const o=e.filter(r=>r.is_renderable!==!1).length,s=n&&In?Pr.resolveMarkdownScalingMode(e):"disabled",l=e.reduce((r,E,O)=>E.is_renderable!==!1?O:r,-1);return a.jsxRuntimeExports.jsx(Ar.default,{className:"slide-stage__content flex w-full flex-col gap-4",mode:s,children:e.map((r,E)=>{const O=r.type==="html"&&r.is_renderable===!1;return a.jsxRuntimeExports.jsx("div",{ref:n&&E===l?Ot:null,"aria-hidden":O||void 0,className:de.cn("w-full shrink-0",o===1&&r.is_renderable!==!1&&"slide-element--single",O?"pointer-events-none fixed left-[-200vw] top-0 -z-10 h-[100dvh] w-[100vw] overflow-hidden opacity-0":r.is_renderable===!1&&"hidden"),children:sr(r,{replaceRootScreenHeightWithFull:o===1&&r.type==="html"&&r.is_renderable!==!1})},r.sequence_number??`${r.type}-${E}`)})})},ar=t.useCallback(()=>{const e=pe.current;if(e){if(document.fullscreenElement===e){document.exitFullscreen().catch(()=>{});return}e.requestFullscreen?.().catch(()=>{})}},[]),fn=t.useCallback(()=>{const e=De.current;e&&e.scrollTo({top:e.scrollHeight,behavior:"smooth"})},[]),vt=t.useCallback(e=>At.canReachSubtitleJumpTarget({currentIndex:u,resolvedCurrentInteractionElement:d,slideElementList:I,targetSlideIndex:Ve[e.audioIndex]}),[d,Ve,u,I]),ur=t.useCallback((e,n)=>{const s=y[e.audioIndex]?.audioKey,l=Ve[e.audioIndex];return!s||l==null||!vt(e)?!1:(ie(n),Y.current=null,x(!1),at(!1),He(!1),Rt.shouldWakePlayerControlsAfterNavigation(n)&&(te(!0),p(!0)),l===u?(ve.current=null,_(),D(s),$e(e),!0):(ge.current=!0,_(),ve.current={audioIndex:e.audioIndex,audioKey:s,slideIndex:l,timeMs:e.timeMs},Lt(l),!0))},[y,Ve,vt,u,Lt,$e,_,p,ie]),ir=t.useCallback(e=>{ie(e),ge.current=!0,Y.current=null,x(!1),Rt.shouldWakePlayerControlsAfterNavigation(e)&&(te(!0),p(!0)),_(),Nt()},[Nt,_,p,ie]),cr=t.useCallback(e=>{ie(e),ge.current=!0,Y.current=null,x(!1),Rt.shouldWakePlayerControlsAfterNavigation(e)&&(te(!0),p(!0)),_(),w()},[w,_,p,ie]),dr=t.useCallback(({loading:e,reason:n})=>{if(C){x(!1);return}if(!h||T){x(!1);return}e&&n&&lt(n),x(Jr(n,e))},[h,T,C]);t.useEffect(()=>{C&&x(!1)},[C]);const fr=t.useCallback(e=>{const n=y[e]?.audioKey;if(!n||!b||n!==b)return;const o=k.findIndex(r=>r===n);if(o<0){D(null);return}const s=o+1,l=k[s];if(l){D(l);return}if(D(null),at(!0),x(!1),A){const r=u+1,E=I[r];rn&&E?.type==="interaction"&&(Y.current=r),w();return}},[y,A,u,b,k,w,rn,I]),mr=t.useCallback(()=>{d&&Ye(e=>!e)},[d]),pr=t.useCallback(()=>{Ne.current=!0,q(),m&&Ie(!0)},[q,m]),yr=t.useCallback(()=>{Ne.current=!1,p(!0)},[p]),Et=t.useCallback(e=>{e.stopPropagation(),g&&p(!0)},[g,p]),ze=t.useCallback((e,n)=>{const o=rt.current;if(!o)return null;const s=e.getBoundingClientRect(),l=o.getBoundingClientRect();return{minX:n.x+l.left-s.left,maxX:n.x+l.right-s.right,minY:n.y+l.top-s.top,maxY:n.y+l.bottom-s.bottom}},[]);Hr(()=>{const e=xe.current;if(!Pe||!e){Se.current=null;return}const n=Se.current,o=e.getBoundingClientRect();if(!n||ft){Se.current=o;return}const s={x:S.x+n.left-o.left,y:S.y+n.top-o.top},l=ze(e,S),r=l?Ze.clampInteractionOverlayDragOffset(s,l):s;Se.current={left:o.left+r.x-S.x,top:o.top+r.y-S.y},(r.x!==S.x||r.y!==S.y)&&dt(r)},[ze,S,ft,g,m,Pe]);const hr=t.useCallback(e=>{if(Et(e),e.button!==0||!e.currentTarget.isConnected||!xe.current)return;const n=ze(xe.current,S);n&&(e.preventDefault(),e.currentTarget.setPointerCapture(e.pointerId),be.current={pointerId:e.pointerId,startClientX:e.clientX,startClientY:e.clientY,startOffset:S,bounds:n},mt(!0))},[ze,S,Et]),xr=t.useCallback(e=>{const n=be.current;!n||n.pointerId!==e.pointerId||(e.preventDefault(),e.stopPropagation(),dt(Ze.clampInteractionOverlayDragOffset({x:n.startOffset.x+e.clientX-n.startClientX,y:n.startOffset.y+e.clientY-n.startClientY},n.bounds)))},[]),mn=t.useCallback(e=>{const n=be.current;!n||n.pointerId!==e.pointerId||(e.stopPropagation(),e.currentTarget.hasPointerCapture(e.pointerId)&&e.currentTarget.releasePointerCapture(e.pointerId),be.current=null,mt(!1))},[]),Sr=t.useCallback(e=>{B(),Pt?.(e)},[B,Pt]),br=t.useCallback(e=>{B(),_t?.(e)},[B,_t]),gr=t.useCallback(()=>{te(!0),p(!0)},[p]);return t.useEffect(()=>{const e=jt.current,s=(e.length>0&&e.length<ee.length&&e.every((r,E)=>r===ee[E])?R.slice(e.length):[]).some(r=>r.is_new===!1);if(jt.current=ee,!s)return;const l=window.requestAnimationFrame(()=>{const r=De.current,E=Ot.current;if(!r||!E)return;const O=r.getBoundingClientRect(),Xe=E.getBoundingClientRect(),_e=r.scrollTop+(Xe.top-O.top);r.scrollTo({top:Math.max(_e,0),behavior:"smooth"})});return()=>{window.cancelAnimationFrame(l)}},[R,ee]),t.useEffect(()=>{if(!ge.current||(ge.current=!1,R.length===0))return;const e=window.requestAnimationFrame(()=>{fn()});return()=>{window.cancelAnimationFrame(e)}},[R,fn]),a.jsxRuntimeExports.jsxs("section",{ref:pe,className:de.cn("relative h-full w-full",j&&"slide--mobile-device",zt&&"slide--browser-fullscreen",se&&"slide--mobile-landscape",$t&&"slide--mobile-landscape-native",Rn),onClick:gr,onFocusCapture:br,onPointerDown:Sr,...An,children:[Hn?a.jsxRuntimeExports.jsx("div",{"aria-hidden":"true",className:"pointer-events-none fixed left-0 top-0 z-[9999] h-[100vh] max-h-[100vh] w-[100vw]"}):null,a.jsxRuntimeExports.jsxs("div",{ref:rt,className:de.cn("slide__viewport relative h-full min-h-0 w-full",se&&"slide__viewport--mobile-landscape",se&&!Ln&&"slide__viewport--mobile-landscape-native"),children:[Kn?a.jsxRuntimeExports.jsxs("div",{className:"slide-landscape-header",children:[a.jsxRuntimeExports.jsx("button",{"aria-label":K?.backAriaLabel??U.fullscreenBackAriaLabel,className:"slide-landscape-header__back",onClick:Wn,type:"button",children:a.jsxRuntimeExports.jsx(Nr.default,{className:"slide-landscape-header__icon h-6 w-6",strokeWidth:2.25})}),K?.content?a.jsxRuntimeExports.jsx("div",{className:"min-w-0 flex-1 overflow-hidden",children:K.content}):null]}):null,a.jsxRuntimeExports.jsx("div",{className:de.cn("h-full min-h-0 w-full",Un&&"slide__viewport-content--with-header",Tn?"slide-content--single":"grid gap-4"),children:R.length>0?a.jsxRuntimeExports.jsx("div",{className:"slide-stage",children:a.jsxRuntimeExports.jsx("div",{ref:De,className:"slide-stage__layer w-full",children:Gn.map((e,n)=>{const o=n===Jn;return a.jsxRuntimeExports.jsx("div",{"data-active-step":o?"true":void 0,"aria-hidden":!o||void 0,className:"w-full h-full",style:{display:o?void 0:"none"},children:lr(e.elementList,o)},e.sourceStepIndexes[0]??n)})})}):null}),On?a.jsxRuntimeExports.jsx(Er.default,{message:Wr(Cn,jn),className:"absolute left-1/2 top-1/2 z-[3] -translate-x-1/2 -translate-y-1/2"}):null,a.jsxRuntimeExports.jsx(Cr.default,{extraBottomOffset:Bn,hasPlayerGap:g,isEnabled:Ht&&qn,isPlayerHidden:m&&!g,playbackTimeStore:re,subtitleCues:$n}),Pe?a.jsxRuntimeExports.jsx("div",{ref:xe,"data-player-keyboard-shortcuts-ignore":"true",className:de.cn("slide-interaction-overlay",g&&m?"slide-interaction-overlay--with-player":"slide-interaction-overlay--standalone",ft&&"slide-interaction-overlay--dragging"),onClick:Et,onPointerDownCapture:e=>{Ct(e.target)&&We(!0)},onFocusCapture:e=>{Ct(e.target)&&We(!0)},onInputCapture:e=>{Ct(e.target)&&We(!0)},style:zn,children:a.jsxRuntimeExports.jsx(vn,{content:String(d?.content??""),locale:f,defaultButtonText:un.buttonText??"",defaultInputText:un.inputText??"",defaultSelectedValues:tr,confirmButtonText:X?.confirmButtonText??U.interactionTexts.confirmButtonText,copyButtonText:X?.copyButtonText??U.interactionTexts.copyButtonText,copiedButtonText:X?.copiedButtonText??U.interactionTexts.copiedButtonText,onSend:or,onDragHandlePointerCancel:mn,onDragHandlePointerDown:hr,onDragHandlePointerMove:xr,onDragHandlePointerUp:mn,readonly:rr,title:X?.title??et??U.interactionTexts.title})}):null,m?a.jsxRuntimeExports.jsx(Tr.PlayerKeyboardShortcutContext.Provider,{value:Mn,children:a.jsxRuntimeExports.jsx(Rr.default,{audioList:y,className:de.cn("absolute left-1/2 z-[2] -translate-x-1/2",zt?"bottom-3":"-bottom-3",V,!g&&"pointer-events-none opacity-0"),currentAudioIndex:v,defaultPlaying:st,enableKeyboardShortcuts:Q,isPlaybackPaused:W,isAutoAdvanceEnabled:Re,locale:f,hasInteraction:!!d,isInteractionOpen:ne,isSubtitleEnabled:Ht,onAutoAdvanceToggle:Kt,onLoadingChange:dr,onPlaybackStarted:()=>{He(!0)},onPlaybackPreferenceChange:er,onPlaybackTimeChange:re.setTime,onSubtitleToggle:()=>{Fn(e=>!e)},nextDisabled:!A,onEnded:fr,onFullscreen:ar,isFullscreen:Wt,mobileViewMode:oe,settingsPortalContainer:rt.current,onMobileViewModeChange:Yn,onControlsPointerEnter:pr,onControlsPointerLeave:yr,onInteractionToggle:mr,onNext:cr,onPrev:ir,onSubtitleJump:ur,canJumpToSubtitleTarget:vt,prevDisabled:!kn,showControls:g,subtitleSeekRequest:_n,texts:tt,customActionContext:xt,customActions:$,useAutoAdvanceToggle:we})}):null]})]})};exports.default=zr;
2
2
  //# sourceMappingURL=Slide.cjs.js.map