markdown-flow-ui 0.2.24 → 0.2.25-dev.1

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