1;!function(){try { var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof global?global:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&((e._debugIds|| (e._debugIds={}))[n]="2a85cced-22c9-7a2c-fb41-7ff4c32dd462")}catch(e){}}(); 2(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,4993,270562,274259,178625,19355,980222,664408,277617,e=>{"use strict";e.s(["PASSAGE_ROOT_CLASS",()=>tU,"Passage",()=>t7,"autofocusAtom",()=>t2,"currentVerseAtom",()=>t0,"hoveredVerseKeyAtom",()=>t1,"isPassageActiveAtom",()=>tY,"isPassageFocusedAtom",()=>tJ,"keystrokesAtom",()=>tZ,"passageIdAtom",()=>t3,"positionAtom",()=>tX],4993);var t=e.i(357874),r=e.i(915041),n=e.i(533101),s=e.i(403701),a=e.i(421235),l=e.i(899053),i=e.i(530079),o=e.i(181490);e.s(["Cursor",()=>eu,"TypingCursor",()=>eo],274259);var u=e.i(945060);let d=()=>{},c=e=>e,p=.3,m="ease",h=e=>"object"==typeof e&&!!e.createAnimation,f=e=>Array.isArray(e)&&"number"!=typeof e[0],y=(e,t,r)=>-r*e+r*t+e,g=(e,t,r)=>t-e==0?1:(r-e)/(t-e);function v(e,t){let r=e[e.length-1];for(let n=1;n<=t;n++){let s=g(0,t,n);e.push(y(r,1,s))}}let x=(e,t,r)=>Math.min(Math.max(r,e),t),w=(e,t,r)=>(((1-3*r+3*t)*e+(3*r-6*t))*e+3*t)*e;function k(e,t,r,n){return e===t&&r===n?c:s=>0===s||1===s?s:w(function(e,t,r,n,s){let a,l,i=0;do(a=w(l=t+(r-t)/2,n,s)-e)>0?r=l:t=l;while(Math.abs(a)>1e-7&&++i<12)return l}(s,0,1,e,r),t,n)}let b=e=>"function"==typeof e,C=e=>Array.isArray(e)&&"number"==typeof e[0],I={ease:k(.25,.1,.25,1),"ease-in":k(.42,0,1,1),"ease-in-out":k(.42,0,.58,1),"ease-out":k(0,0,.58,1)},A=/\((.*?)\)/;function M(e){if(b(e))return e;if(C(e))return k(...e);let t=I[e];if(t)return t;if(e.startsWith("steps")){let t=A.exec(e);if(t){let e=t[1].split(",");return((e,t="end")=>r=>{let n=(r="end"===t?Math.min(r,.999):Math.max(r,.001))*e;return x(0,1,("end"===t?Math.floor(n):Math.ceil(n))/e)})(parseFloat(e[0]),e[1].trim())}}return c}class T{constructor(e,t=[0,1],{easing:r,duration:n=p,delay:s=0,endDelay:a=0,repeat:l=0,offset:i,direction:o="normal",autoplay:u=!0}={}){if(this.startTime=null,this.rate=1,this.t=0,this.cancelTimestamp=null,this.easing=c,this.duration=0,this.totalDuration=0,this.repeat=0,this.playState="idle",this.finished=new Promise((e,t)=>{this.resolve=e,this.reject=t}),h(r=r||m)){const e=r.createAnimation(t);r=e.easing,t=e.keyframes||t,n=e.duration||n}this.repeat=l,this.easing=f(r)?c:M(r),this.updateDuration(n);const d=function(e,t=function(e){let t=[0];return v(t,e-1),t}(e.length),r=c){let n=e.length,s=n-t.length;return s>0&&v(t,s),s=>{var a,l;let i,o=0;for(;o<n-2&&!(s<t[o+1]);o++);let u=x(0,1,g(t[o],t[o+1],s));return u=(a=o,f(r)?r[l=r.length,((a-0)%(i=l-0)+i)%i+0]:r)(u),y(e[o],e[o+1],u)}}(t,i,f(r)?r.map(M):c);this.tick=t=>{var r;let n=0;n=void 0!==this.pauseTime?this.pauseTime:(t-this.startTime)*this.rate,this.t=n,n/=1e3,n=Math.max(n-s,0),"finished"===this.playState&&void 0===this.pauseTime&&(n=this.totalDuration);let l=n/this.duration,i=Math.floor(l),u=l%1;!u&&l>=1&&(u=1),1===u&&i--;let c=i%2;("reverse"===o||"alternate"===o&&c||"alternate-reverse"===o&&!c)&&(u=1-u);let p=n>=this.totalDuration?1:Math.min(u,1),m=d(this.easing(p));e(m),void 0===this.pauseTime&&("finished"===this.playState||n>=this.totalDuration+a)?(this.playState="finished",null==(r=this.resolve)||r.call(this,m)):"idle"!==this.playState&&(this.frameRequestId=requestAnimationFrame(this.tick))},u&&this.play()}play(){let e=performance.now();this.playState="running",void 0!==this.pauseTime?this.startTime=e-this.pauseTime:this.startTime||(this.startTime=e),this.cancelTimestamp=this.startTime,this.pauseTime=void 0,this.frameRequestId=requestAnimationFrame(this.tick)}pause(){this.playState="paused",this.pauseTime=this.t}finish(){this.playState="finished",this.tick(0)}stop(){var e;this.playState="idle",void 0!==this.frameRequestId&&cancelAnimationFrame(this.frameRequestId),null==(e=this.reject)||e.call(this,!1)}cancel(){this.stop(),this.tick(this.cancelTimestamp)}reverse(){this.rate*=-1}commitStyles(){}updateDuration(e){this.duration=e,this.totalDuration=e*(this.repeat+1)}get currentTime(){return this.t}set currentTime(e){void 0!==this.pauseTime||0===this.rate?this.pauseTime=e:this.startTime=performance.now()-e/this.rate}get playbackRate(){return this.rate}set playbackRate(e){this.rate=e}}var S=function(){};class j{setAnimation(e){this.animation=e,null==e||e.finished.then(()=>this.clearAnimation()).catch(()=>{})}clearAnimation(){this.animation=this.generator=void 0}}let R=new WeakMap;function V(e){return R.has(e)||R.set(e,{transforms:[],values:new Map}),R.get(e)}let E=["","X","Y","Z"],P={x:"translateX",y:"translateY",z:"translateZ"},L={syntax:"<angle>",initialValue:"0deg",toDefaultUnit:e=>e+"deg"},N={translate:{syntax:"<length-percentage>",initialValue:"0px",toDefaultUnit:e=>e+"px"},rotate:L,scale:{syntax:"<number>",initialValue:1,toDefaultUnit:c},skew:L},W=new Map,$=e=>`--motion-${e}`,D=["x","y","z"];
2["translate","scale","rotate","skew"].forEach(e=>{E.forEach(t=>{D.push(e+t),W.set($(e+t),N[e])})});let O=(e,t)=>D.indexOf(e)-D.indexOf(t),K=new Set(D),q=e=>e.sort(O).reduce(_,"").trim(),_=(e,t)=>`${e} ${t}(var(${$(t)}))`,z=new Set,F=e=>1e3*e,B=(e,t)=>document.createElement("div").animate(e,t),H={cssRegisterProperty:()=>"u">typeof CSS&&Object.hasOwnProperty.call(CSS,"registerProperty"),waapi:()=>Object.hasOwnProperty.call(Element.prototype,"animate"),partialKeyframes:()=>{try{B({opacity:[1]})}catch(e){return!1}return!0},finished:()=>!!B({opacity:[0,1]},{duration:.001}).finished,linearEasing:()=>{try{B({opacity:0},{easing:"linear(0, 1)"})}catch(e){return!1}return!0}},G={},Q={};for(let e in H)Q[e]=()=>(void 0===G[e]&&(G[e]=H[e]()),G[e]);let U=(e,t)=>b(e)?Q.linearEasing()?`linear(${((e,t)=>{let r="",n=Math.round(t/.015);for(let t=0;t<n;t++)r+=e(g(0,n-1,t))+", ";return r.substring(0,r.length-2)})(e,t)})`:m:C(e)?X(e):e,X=([e,t,r,n])=>`cubic-bezier(${e}, ${t}, ${r}, ${n})`;function Z(e){let t;return P[e]&&(e=P[e]),(t=e,K.has(t))?$(e):e}let Y=(e,t)=>{let r=(t=Z(t)).startsWith("--")?e.style.getPropertyValue(t):getComputedStyle(e)[t];if(!r&&0!==r){let e=W.get(t);e&&(r=e.initialValue)}return r},J=(e,t,r)=>{(t=Z(t)).startsWith("--")?e.style.setProperty(t,r):e.style[t]=r};function ee(e,t=!0){if(e&&"finished"!==e.playState)try{e.stop?e.stop():(t&&e.commitStyles(),e.cancel())}catch(e){}}let et=(e,t)=>e[t]?Object.assign(Object.assign({},e),e[t]):Object.assign({},e),er=e=>e(),en=(e,t,r=p)=>
2new Proxy({animations:e.map(er).filter(Boolean),duration:r,options:t},es),es={get:(e,t)=>{let r=e.animations[0];switch(t){case"duration":return e.duration;case"currentTime":return((null==r?void 0:r[t])||0)/1e3;case"playbackRate":case"playState":return null==r?void 0:r[t];case"finished":return e.finished||(e.finished=Promise.all(e.animations.map(ea)).catch(d)),e.finished;case"stop":return()=>{e.animations.forEach(e=>ee(e))};case"forEachNative":return t=>{e.animations.forEach(r=>t(r,e))};default:return void 0===(null==r?void 0:r[t])?void 0:()=>e.animations.forEach(e=>e[t]())}},set:(e,t,r)=>{switch(t){case"currentTime":r=F(r);case"playbackRate":for(let n=0;n<e.animations.length;n++)e.animations[n][t]=r;return!0}return!1}},ea=e=>e.finished,el=function(e,t,r={}){var n,s,a;"string"==typeof(n=e)?n=document.querySelectorAll(n):n instanceof Element&&(n=[n]);let l=(e=Array.from(n||[])).length;S(),S();let i=[];for(let n=0;n<l;n++){let o=e[n];for(let e in t){let u=et(r,e);s=u.delay,a=n,u.delay=b(s)?s(a,l):s;let y=function(e,t,r,n={},s){var a;let l,i=window.__MOTION_DEV_TOOLS_RECORD,o=!1!==n.record&&i,{duration:u=p,delay:y=0,endDelay:g=0,repeat:v=0,easing:x=m,persist:w=!1,direction:k,offset:C,allowWebkitAcceleration:I=!1,autoplay:A=!0}=n,M=V(e),T=K.has(t),S=Q.waapi();T&&((e,t)=>{var r;P[t]&&(t=P[t]);let{transforms:n}=V(e);r=t,-1===n.indexOf(r)&&n.push(r),e.style.transform=q(n)})(e,t);let R=Z(t),E=(a=M.values,a.has(R)||a.set(R,new j),a.get(R)),L=W.get(R);return ee(E.animation,!(h(x)&&E.generator)&&!1!==n.record),()=>{let a=()=>{var t,r;return null!=(r=null!=(t=Y(e,R))?t:null==L?void 0:L.initialValue)?r:0},p=function(e,t){for(let r=0;r<e.length;r++)null===e[r]&&(e[r]=r?e[r-1]:t());return e}(Array.isArray(r)?r:[r],a),m=function(e,t){var r;let n=(null==t?void 0:t.toDefaultUnit)||c,s=e[e.length-1];if("string"==typeof s){let e=(null==(r=s.match(/(-?[\d.]+)([a-z%]*)/))?void 0:r[2])||"";e&&(n=t=>t+e)}return n}(p,L);if(h(x)){let e=x.createAnimation(p,"opacity"!==t,a,R,E);x=e.easing,p=e.keyframes||p,u=e.duration||u}if(R.startsWith("--"))if(Q.cssRegisterProperty()){if(!z.has(R)){z.add(R);try{let{syntax:e,initialValue:t}=W.has(R)?W.get(R):{};CSS.registerProperty({name:R,inherits:!1,syntax:e,initialValue:t})}catch(e){}}}else S=!1;if(T&&!Q.linearEasing()&&(b(x)||f(x)&&x.some(b))&&(S=!1),S){L&&(p=p.map(e=>"number"==typeof e?L.toDefaultUnit(e):e)),1===p.length&&(!Q.partialKeyframes()||o)&&p.unshift(a());let t={delay:F(y),duration:F(u),endDelay:F(g),easing:f(x)?void 0:U(x,u),direction:k,iterations:v+1,fill:"both"};(l=e.animate({[R]:p,offset:C,easing:f(x)?x.map(e=>U(e,u)):void 0},t)).finished||(l.finished=new Promise((e,t)=>{l.onfinish=e,l.oncancel=t}));let r=p[p.length-1];l.finished.then(()=>{w||(J(e,R,r),l.cancel())}).catch(d),I||(l.playbackRate=1.000001)}else if(s&&T)1===(p=p.map(e=>"string"==typeof e?parseFloat(e):e)).length&&p.unshift(parseFloat(a())),l=new s(t=>{J(e,R,m?m(t):t)},p,Object.assign(Object.assign({},n),{duration:u,easing:x}));else{let t=p[p.length-1];J(e,R,L&&"number"==typeof t?L.toDefaultUnit(t):t)}return o&&i(e,t,p,{duration:u,delay:y,easing:x,repeat:v,offset:C},"motion-one"),E.setAnimation(l),l&&!A&&l.pause(),l}}(o,e,t[e],u,T);i.push(y)}}return en(i,r,r.duration)};function ei(e,t,r){return(b(e)?function(e,t={}){return en([()=>{let r=new T(e,[0,1],t);return r.finished.catch(()=>{}),r}],t,t.duration)}:el)(e,t,r)}e.s(["animate",0,ei],270562);let eo=(0,o.forwardRef)(function({className:e,isActive:r,isFocused:n,...s},a){return(0,t.jsx)("span",{...s,ref:a,className:(0,u.cn)(e,!r&&"typing-cursor-blink",n?"opacity-100":"opacity-0")})});function eu({passageId:e,forceVisible:r=!1,height:n}){let[a]=(0,s.useAtom)(tY),[l]=(0,s.useAtom)(tJ);return!function(e,t=22){let r=(0,o.useRef)({top:0,left:0});(0,o.useEffect)(()=>{let n=requestAnimationFrame(function s(){n=requestAnimationFrame(s),function(){let n=document.querySelector(`#${CSS.escape(e)}`),s=n?.getBoundingClientRect();if(null==s)return;let a=document.querySelector(`#${CSS.escape(e)} .active-verse .active-word:not(.error) .letter:not(.correct):not(.incorrect):not(.extra)`),l=a?.getBoundingClientRect();if(l){var i;if(0===l.width){let e=a?.querySelector(".indicator");e&&(a=e,l=a?.getBoundingClientRect()??l)}let n=a?.classList.contains("divine-name")||a?.classList.contains("old-testament-reference")?-3:0,o=l.top-s.top+n,u=l.left-s.left-1;if(o===r.current.top&&u===r.current.left)return;let d=(i=r.current.left??0,Math.sqrt(Math.pow(Math.abs(u-i),2)+Math.pow(Math.abs(o-(r.current.top??0)),2)));r.current={top:o,left:u},ei(`#${CSS.escape(e)}-cursor`,{top:0,left:0,x:`${u}px`,y:`${o}px`,width:"2px",height:`${t}px`},{easing:[.25,.46,.45,.94],duration:d>80||Math.abs(o-r.current.top)>2?0:.085})}}()});return()=>{cancelAnimationFrame(n)}},[t,e])}(e,n),(0,t.jsx)(eo,{id:`${e}-cursor`,className:"bg-ink-800 dark:bg-ink-100 absolute rounded-full",isActive:a,isFocused:l||r})}var ed=e.i(521334),ec=e.i(601846),ep=e.i(565538);function em(e){return e.isInMemoryGrid?{width:e.verseRect.width,height:e.verseRect.height,left:e.verseRect.left-e.passageRect.left,top:e.verseRect.top-e.passageRect.top}:{width:e.passageRect.width+16,height:e.verseRect.height+16,left:-8,top:e.verseRect.top-e.passageRect.top-8}}let eh=(0,o.createContext)({rect:null,overlayContainerRef:{current:null},firstLetterCurrentWordRect:null,verseRects:{},updateFirstLetterCurrentWordRect:()=>{},updateVerseRect:()=>{console.info("Whoops! Looks like you used this outside of a passage context")}});function ef(e,t){return e===t||null!=e&&null!=t&&e.top===t.top&&e.left===t.left&&e.width===t.width&&e.height===t.height}function ey(){let{rect:e}=(0,o.useContext)(eh);return e}function eg(){let{overlayContainerRef:e}=(0,o.useContext)(eh);return e}function ev(e){let[t,r]=(0,o.useState)(null);return(0,o.useEffect)(()=>{let n=e.current;function s(){let n=e.current?.getBoundingClientRect()??null;n&&(n.top!==t?.top||n.height!==t?.height||n.width!==t?.width||n.left!==t?.left)&&r(n)}window.addEventListener("resize",s),window.addEventListener("scroll",s);let a="u"<typeof ResizeObserver||null==n?null:new ResizeObserver(s);return null!=n&&a?.observe(n),s(),()=>{window.removeEventListener("scroll",s),window.removeEventListener("resize",s),a?.disconnect()}},[t?.height,t?.left,t?.top,t?.width,e]),t}function ex(e,t){let{rect:r,verseRects:n,updateVerseRect:s}=(0,o.useContext)(eh);return(0,o.useEffect)(()=>{function r(){var r,a;let l={bounds:e.current?.getBoundingClientRect()??null,lineRects:Array.from(e.current?.getClientRects()??[]).map(e=>new DOMRect(e.left,e.top,e.width,e.height))},i=n[t];ef(i?.bounds??null,l.bounds)&&(r=i?.lineRects??[],a=l.lineRects,r.length===a.length&&r.every((e,t)=>ef(e,a[t]??null)))||s(t,l)}return window.addEventListener("resize",r),window.addEventListener("scroll",r),r(),()=>{window.removeEventListener("scroll",r),window.removeEventListener("resize",r)}},[r,e,s,t,n]),n[t]?.bounds??null}var ew=e.i(206944),ek=e.i(397256),eb=e.i(738406);let eC=(0,n.atom)(0),eI=(0,n.atom)(e=>e(eC)>0),eA=(0,n.atom)(null,(e,t)=>{t(eC,e=>e+1)}),eM=(0,n.atom)(null,(e,t)=>{t(eC,e=>Math.max(0,e-1))});function eT({children:e}
2){let r=(0,o.useRef)(null),n=ev(r),a=(0,s.useSetAtom)(tJ),{updateFirstLetterCurrentWordRect:l}=(0,o.useContext)(eh);return(0,o.useEffect)(()=>{l(n)},[n,l]),(0,o.useEffect)(()=>()=>{l(null)},[l]),(0,t.jsx)("div",{ref:r,className:"not-prose mt-4 flex min-h-9 cursor-text items-center justify-center py-8 text-lg leading-7","data-testid":"first-letter-current-word",onClick:()=>{a(!0)},children:e})}function eS({targetWord:e,typedWord:r,isRevealed:n=!1}){let a=(0,s.useAtomValue)(tY),l=(0,s.useAtomValue)(tJ),i=e.letters.slice(0,-1),d=(0,ek.isAtomComplete)(r)?r?.letters.slice(0,-1)??[]:r?.letters??[],c=i.map((e,t)=>d.at(t)),p=d.slice(i.length),m=i.join(""),h=d.join(""),f=(0,ec.getWordStyleClass)(e),y=(0,o.useRef)(null),g=(0,o.useRef)(null),v=(0,o.useRef)(e);(0,o.useLayoutEffect)(()=>{let t=y.current,r=g.current;if(null==t||null==r)return;let n=t.querySelectorAll("[data-first-letter-current-word-slot]"),s=n.item(d.length),a=n.item(n.length-1),l=null!=s?s.offsetLeft:null==a?0:a.offsetLeft+a.offsetWidth,i=v.current!==e;r.style.transitionDuration=i?"0s":"",r.style.transform=`translateX(${l}px)`,v.current=e},[n,m,e,d.length,h]);let x=(0,t.jsx)("span",{ref:g,"data-testid":"first-letter-current-word-cursor",className:(0,u.cn)("bg-ink-800 dark:bg-ink-100 pointer-events-none absolute top-0 -left-px z-10 h-[1em] w-0.5 transition-transform duration-100 ease-out",!a&&"typing-cursor-blink",l?"opacity-100":"opacity-0")});return(0,t.jsxs)(eT,{children:[(0,t.jsxs)("span",{ref:y,"aria-hidden":"true",className:"first-letter-current-word-row relative inline-grid grid-flow-col whitespace-nowrap",children:[x,i.map((e,r)=>{let s=c[r],a=(0,ew.isLetterEqual)(e,s),l=!(0,ep.isWordCharacter)(e),i=l?e:s??(n?e:void 0),o=f&&r>0?f:"";return null==i?(0,t.jsx)(ec.MaskedLetterSlot,{letter:e,styleClass:o,isIncorrect:!1,style:{gridColumn:r+1,gridRow:1},"data-first-letter-current-word-slot":"","data-testid":"first-letter-current-word-slot"},r):(0,t.jsx)(ec.MaskedLetterGlyph,{letter:i,underline:l?void 0:"slot",isCorrect:null!=s&&a,isIncorrect:null!=s&&!a,className:(0,u.cn)("first-letter-current-word-letter",o),style:{gridColumn:r+1,gridRow:1},"data-first-letter-current-word-slot":"","data-testid":"first-letter-current-word-slot"},r)}),p.map((e,r)=>(0,t.jsx)(ec.MaskedLetterGlyph,{letter:e,underline:"extra",isIncorrect:!0,className:"extra first-letter-current-word-letter",style:{gridColumn:i.length+r+1,gridRow:1},"data-first-letter-current-word-slot":"","data-testid":"first-letter-current-word-extra-slot"},`extra-${r}`)),i.map((e,r)=>{if(!(0,ep.isWordCharacter)(e))return null;let n=c[r],s=(0,ew.isLetterEqual)(e,n);return(0,t.jsx)("span",{className:(0,u.cn)("first-letter-current-word-underline pointer-events-none mx-px mb-0.5 h-0.5 self-end bg-current",null!=n&&(s?"text-[var(--typing-correct-color)]":"text-[var(--typing-error-color)]")),style:{gridColumn:r+1,gridRow:1}},`underline-${r}`)}),p.map((e,r)=>(0,t.jsx)("span",{className:"first-letter-current-word-underline pointer-events-none mx-px mb-0.5 h-0.5 self-end bg-[var(--typing-error-color)]",style:{gridColumn:i.length+r+1,gridRow:1}},`extra-underline-${r}`))]}),(0,t.jsx)("span",{className:"sr-only","aria-live":"polite","data-testid":"first-letter-typed-word",children:n?`Revealed word: ${m}`:d.length>0?`Typed word: ${h}`:"Start typing the word"})]})}function ej({passage:e}){let r=(0,s.useAtomValue)(t0),n=(0,s.useAtomValue)(eI),a=(0,s.useAtomValue)(tX),l=(0,s.useAtomValue)(tZ),i=function e(t,r){return r.flatMap(r=>{switch(r.type){case"paragraph":return e(t,r.nodes);case"verse":if(r.verse.value!==t)return[];let n=0;return r.nodes.flatMap(s=>{if("paragraph"===s.type)return e(t,s.nodes);if(!(0,ew.isAtomTyped)(s))return[];let a={sectionOffset:r.metadata.offset,word:s,wordIndex:n};return n+=1,[a]});default:return[]}})}(r,e.nodes),o=a.filter(ew.isAtomTyped),u=o.at(-1),d=(0,ek.isAtomComplete)(u),c=i[d?o.length:Math.max(o.length-1,0)];if(null!=c){let e=(0,eb.getTypingActionsAfterReset)(l).some(e=>(0,eb.isRevealWordTypingAction)(e)&&e.sectionOffset===c.sectionOffset&&e.wordIndex===c.wordIndex);return(0,t.jsx)(eS,{targetWord:c.word,typedWord:d?void 0:u,isRevealed:e})}return n?(0,t.jsx)(eT,{children:(0,t.jsx)(ed.Loading,{className:"text-lg leading-7",label:"Saving verse"})}):null}function eR(e){return`${e.book}:${e.chapter}:${e.verse}:${e.wordIndex}`}function eV(e,t){return e.verse-t.verse||e.wordIndex-t.wordIndex}function eE(e,t,r){let n=new Map(eP(e).map((e,t)=>[eR(e.anchor),t])),s=t.start,a=t.end,l=[],i=!0;for(;i;
2)for(let e of(i=!1,r)){if(l.includes(e)||e.start.book!==s.book||e.start.chapter!==s.chapter)continue;let t=0>=eV(e.start,a)&&eV(e.end,s)>=0,r=n.get(eR(s)),o=n.get(eR(a)),u=n.get(eR(e.start)),d=n.get(eR(e.end)),c=void 0!==r&&void 0!==d&&d+1===r||void 0!==o&&void 0!==u&&o+1===u;(t||c)&&(l.push(e),0>eV(e.start,s)&&(s=e.start),eV(e.end,a)>0&&(a=e.end),i=!0)}return{range:{start:s,end:a},connected:l}}function eP(e){let t=new Map,r=[];return e.nodes.flatMap(e=>"paragraph"===e.type?e.nodes:"verse"===e.type?[e]:[]).forEach(e=>{let n=`${e.verse.book}:${e.verse.chapter}:${e.verse.verse}`,s=t.get(n)??0;e.nodes.forEach(t=>{"word"===t.type&&(r.push({anchor:{book:e.verse.book,chapter:e.verse.chapter,verse:e.verse.verse,wordIndex:s,characterIndex:0},characterCount:Math.max(0,t.letters.length-1)}),s+=1)}),t.set(n,s)}),r}function eL(e){let t=0x811c9dc5;for(let r=0;r<e.length;r+=1)t^=e.charCodeAt(r),t=Math.imul(t,0x1000193);return t>>>0}function eN(e){let t=43758.5453*Math.sin(12.9898*e);return t-Math.floor(t)}function eW(e,t,r){let n=110+90*eN(t+19),s=eN(t+23)*Math.PI*2,a=eN(t+29)*Math.PI*2,l=eN(t+31)*Math.PI*2,i=Math.sin(e/n*Math.PI*2+s),o=Math.sin(e/(2.3*n)*Math.PI*2+a),u=Math.sin(e/(1.6*n)*Math.PI*2+l);return{center:i*r*(.025+.025*eN(t+37))+o*r*.015,thickness:u*r*(.012+.018*eN(t+41))}}function e$(e){let t=e instanceof HTMLElement?e:e?.parentElement??null;return t?.closest(".word")??null}function eD(e,t,r,n){return("start"===n?e:e.toReversed()).find(e=>{let s=document.createRange();s.selectNodeContents(e);try{let e=s.comparePoint(t,r);return"start"===n?e<=0:e>=0}catch{return!1}})??null}function eO(e,t){let r=document.createTreeWalker(e,NodeFilter.SHOW_TEXT),n=t,s=r.nextNode();for(;null!=s;){let e=s.textContent??"";if(n<=e.length&&s instanceof Text)return{node:s,offset:n};n-=e.length,s=r.nextNode()}return null}function eK(e,t,r,n){let s=document.createRange();s.selectNodeContents(e);try{s.setEnd(t,r)}catch{return 0}return Math.min(n,s.toString().length)}function eq(e,t,r){var n,s;let a=window.getSelection();if(null==a||a.isCollapsed||0===a.rangeCount)return null;let l=a.getRangeAt(0),i=Array.from(e.querySelectorAll(".word")),o=e$(l.startContainer),u=e$(l.endContainer),d=o??eD(i,l.startContainer,l.startOffset,"start"),c=u??eD(i,l.endContainer,l.endOffset,"end");if(null==d||null==c||!e.contains(d)||!e.contains(c))return null;let p=i.indexOf(d),m=i.indexOf(c);if(p<0||m<0)return null;let h=p,f=m,y=t[h],g=t[f];if(null==y||null==g)return null;let v=null==o?0:eK(d,l.startContainer,l.startOffset,y.characterCount),x=null==u?g.characterCount:eK(c,l.endContainer,l.endOffset,g.characterCount);v>=y.characterCount&&(h+=1,v=0),0===x&&(f-=1,x=t[f]?.characterCount??0);let w=null==r?null:Math.max(1,Math.floor(r)),k=a.focusNode===l.startContainer&&a.focusOffset===l.startOffset;null!=w&&f-h+1>w&&(k?(h=f-w+1,v=0):(f=h+w-1,x=t[f]?.characterCount??0));let b=t[h],C=t[f];return null==b||null==C||(n=b.anchor,s=C.anchor,n.book!==s.book||n.chapter!==s.chapter)||h>f||h===f&&v>=x?null:{start:{...b.anchor,characterIndex:v},end:{...C.anchor,characterIndex:x},wordCount:f-h+1}}function e_({passage:e,passageRef:r,highlights:n,selectionOptions:s,onSelect:a,onActivate:l,activatableRenderKeys:i}){let d=(0,o.useMemo)(()=>eP(e),[e]),[c,p]=(0,o.useState)(0),[m,h]=(0,o.useState)(null),[f,y]=(0,o.useState)(null),[g,v]=(0,o.useState)({isPressed:!1,isVisible:!1}),x=(0,o.useRef)(null),w=(0,o.useRef)(null),k=(0,o.useRef)(null),b=(0,o.useRef)({x:0,y:0}),C=(0,o.useRef)(!1),I=(0,o.useRef)(null),A=null!=s,M=s?.maxWordCount==null?void 0:Math.max(1,Math.floor(s.maxWordCount)),T=s?.previewReplacesRenderKey,S=s?.previewRenderKey??T??"highlight-preview";(0,o.useEffect)(()=>{let e=r.current;if(null==e||null==l)return;let t=Array.from(e.querySelectorAll(".word"));function s(t){if(window.getSelection()?.isCollapsed===!1||C.current)return;let r=e$(t.target instanceof Node?t.target:null),s=null==r?-1:Array.from(e?.querySelectorAll(".word")??[]).indexOf(r),a=d[s]?.anchor;if(!a)return;let o=n.filter(e=>(null==i||i.includes(e.renderKey))&&a.book===e.start.book&&a.chapter===e.start.chapter&&(a.verse>e.start.verse||a.verse===e.start.verse&&a.wordIndex>=e.start.wordIndex)&&(a.verse<e.end.verse||a.verse===e.end.verse&&a.wordIndex<=e.end.wordIndex));if(0===o.length)return;let u=o.findIndex(e=>e.renderKey===I.current),c=o[(u+1)%o.length];c&&(I.current=c.renderKey,l(c.renderKey,r??void 0))}return t.forEach((e,t)=>{let r=d[t]?.anchor;e.toggleAttribute("data-highlight-selectable",A&&void 0!==r&&n.some(e=>(null==i||i.includes(e.renderKey))&&e.start.book===r.book&&e.start.chapter===r.chapter&&0>=eV(e.start,r)&&eV(e.end,r)>=0))}
2),e.addEventListener("click",s),()=>{for(let r of(e.removeEventListener("click",s),t))r.removeAttribute("data-highlight-selectable")}},[i,A,d,n,l,r]),(0,o.useEffect)(()=>{let e=r.current;if(null==e)return;let t=()=>p(e=>e+1),n="u"<typeof ResizeObserver?null:new ResizeObserver(t);return n?.observe(e),window.addEventListener("resize",t),t(),()=>{n?.disconnect(),window.removeEventListener("resize",t)}},[r]),(0,o.useEffect)(()=>{let e=r.current;if(!A||null==e||null==a)return;let t=null,s=null;function o(e){null!=t&&(window.clearTimeout(t),t=null),s=e,y(e)}function u(){let r=eq(e,d,M);null==r&&C.current||(h(r),s=r,null==t&&(t=window.setTimeout(()=>{t=null,y(s)},45)))}function c(){let t=window.getSelection(),r=eq(e,d,M);null!=t&&null!=r&&(x.current??=S,C.current=!0,h(r),o(r),a(r.start,r.end),t.removeAllRanges(),requestAnimationFrame(()=>{C.current=!1,h(null),o(null)}))}function p(t){let r=e.getBoundingClientRect(),s=t.clientX-r.left,a=t.clientY-r.top;if(b.current={x:s,y:a},null!=w.current&&(w.current.style.left=`${s-5}px`,w.current.style.top=`${a-12}px`),null!=k.current){let e=Math.max(4,Math.min(s+12,r.width-48)),t=Math.max(22,a-12);k.current.style.transform=`translate3d(${e}px, ${t}px, 0)`}let o=e$(t.target instanceof Node?t.target:null),u=null==o?-1:Array.from(e.querySelectorAll(".word")).indexOf(o),c=d[u]?.anchor,p=null!=l&&void 0!==c&&n.some(e=>(null==i||i.includes(e.renderKey))&&e.start.book===c.book&&e.start.chapter===c.chapter&&0>=eV(e.start,c)&&eV(e.end,c)>=0),m="touch"!==t.pointerType&&(!p||0!==t.buttons);v(e=>e.isVisible===m?e:{...e,isVisible:m})}function m(e){x.current=S,C.current=!1,h(null),o(null),p(e),v(e=>({...e,isPressed:!0}))}function f(){v(e=>({...e,isVisible:!1}))}function g(){v(e=>({...e,isPressed:!1}))}return document.addEventListener("selectionchange",u),document.addEventListener("pointerup",g),document.addEventListener("pointercancel",g),e.addEventListener("pointerenter",p),e.addEventListener("pointerleave",f),e.addEventListener("pointerdown",m),e.addEventListener("pointermove",p),e.addEventListener("pointerup",c),()=>{null!=t&&window.clearTimeout(t),document.removeEventListener("selectionchange",u),document.removeEventListener("pointerup",g),document.removeEventListener("pointercancel",g),e.removeEventListener("pointerenter",p),e.removeEventListener("pointerleave",f),e.removeEventListener("pointerdown",m),e.removeEventListener("pointermove",p),e.removeEventListener("pointerup",c)}},[i,A,d,n,M,l,a,r,S]);let j=r.current;if(null==j)return null;let R=j.getBoundingClientRect(),V=Array.from(j.querySelectorAll(".word")),E=new Map(d.map((e,t)=>[eR(e.anchor),t])),P=null!=f&&s?.mergeConnectedHighlights?eE(e,f,n):null,L=P?.connected[0]?.renderKey??x.current??S,N=(null!=f&&A?[...n.filter(e=>e.renderKey!==T&&e.renderKey!==L&&!P?.connected.includes(e)),{renderKey:L,...P?.range??f}]:n).flatMap(e=>{var t;let r,n,s=d.flatMap((t,r)=>{let n=t.anchor;if(n.book!==e.start.book||n.chapter!==e.start.chapter)return[];let s=n.verse>e.start.verse||n.verse===e.start.verse&&n.wordIndex>=e.start.wordIndex,a=n.verse<e.end.verse||n.verse===e.end.verse&&n.wordIndex<=e.end.wordIndex;return s&&a?[r]:[]}),a=s[0],l=s.at(-1);return null==a||null==l||a>l?[]:(t=V.slice(a,l+1).flatMap((t,r)=>{let n=a+r,s=d[n]?.characterCount??0;return function(e,t,r){let n=eO(e,t),s=eO(e,r);if(null==n||null==s)return[];let a=document.createRange();return a.setStart(n.node,n.offset),a.setEnd(s.node,s.offset),Array.from(a.getClientRects())}(t,n===E.get(eR(e.start))?e.start.characterIndex:0,n===E.get(eR(e.end))?e.end.characterIndex:s)}),r=t.filter(e=>e.width>0&&e.height>0).map(e=>({left:e.left-R.left,right:e.right-R.left,top:e.top-R.top,bottom:e.bottom-R.top})),n=[],r.forEach(e=>{let t=n.find(t=>3>Math.abs(t.top-e.top));null==t?n.push({...e}):(t.left=Math.min(t.left,e.left),t.right=Math.max(t.right,e.right),t.top=Math.min(t.top,e.top),t.bottom=Math.max(t.bottom,e.bottom))}),n.toSorted((e,t)=>e.top-t.top)).map((t,r)=>{var n;let s,a,l,i,o,u,d,c,p,m;return{key:`${e.renderKey}:${r}`,path:(n=e.renderKey,s=eL(`${n}:${r}`),a=eL(n),i=(l=Math.max(4,t.bottom-t.top))*(.66+.22*eN(s)),o=(a%2==0?-1:1)*l*(.06+.1*eN(s+1)),d=(u=t.top+l/2+o)-i/2,c=u+i/2,p=t.left-1-5*eN(s+2),[...(m=function(e,t,r){let n=[e],s=(Math.floor(e/r)+1)*r;for(;s<t;)n.push(s),s+=r;return n.push(t),n}(p,t.right+1+6*eN(s+3),22+12*eN(a+17))).map((e,t)=>{let r=eW(e,a,l),n=d+r.center-r.thickness;return`${0===t?"M":"L"} ${e.toFixed(2)} ${n.toFixed(2)}`}),...m.toReversed().map(e=>{let t=eW(e,a,l),r=c+t.center+t.thickness;return`L ${e.toFixed(2)} ${r.toFixed(2)}`}),"Z"].join(" ")),renderKey:e.renderKey,line:t}})}),W=null!=m&&null!=M&&g.isVisible?{x:Math.max(4,Math.min(b.current.x+12,R.width-48)),y:Math.max(22,b.current.y-12)}:null;return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("svg",{"data-testid":"highlight-overlay","aria-hidden":"true",className:"pointer-events-none absolute inset-0 -z-10 size-full overflow-visible",viewBox:`0 0 ${R.width} ${R.height}`,preserveAspectRatio:"none",children:N.map(e=>(0,t.jsx)("path",{d:e.path,"data-highlight-render-key":e.renderKey,className:"fill-passage-highlight-light dark:fill-passage-highlight-dark"},e.key))}),null==l?null:N.filter((e,t)=>
2(null==i||i.includes(e.renderKey))&&N.findIndex(t=>t.renderKey===e.renderKey)===t&&n.some(t=>t.renderKey===e.renderKey)).map(e=>(0,t.jsxs)("button",{type:"button","aria-label":`Select highlight ${n.findIndex(t=>t.renderKey===e.renderKey)+1}`,className:"focus:bg-paper-100 dark:focus:bg-ink-900 sr-only focus:not-sr-only focus:absolute focus:z-10 focus:cursor-pointer focus:p-2",onPointerDown:e=>e.stopPropagation(),onPointerUp:e=>e.stopPropagation(),onClick:t=>{t.stopPropagation(),l(e.renderKey,t.currentTarget)},children:["Select highlight"," ",n.findIndex(t=>t.renderKey===e.renderKey)+1]},`select:${e.key}`)),A&&g.isVisible?(0,t.jsx)("span",{ref:w,"data-testid":"highlight-tool-cursor","aria-hidden":"true",className:(0,u.cn)("pointer-events-none absolute z-20 size-8 transition-transform duration-100 ease-out motion-reduce:transition-none",g.isPressed?"scale-[0.88] -rotate-3":"scale-100 rotate-0"),style:{left:b.current.x-5,top:b.current.y-12,transformOrigin:"5px 12px"},children:(0,t.jsx)("svg",{className:"size-full",viewBox:"0 0 256 256",xmlns:"http://www.w3.org/2000/svg",children:(0,t.jsxs)("g",{transform:"translate(172 -8) scale(.8) rotate(71)",children:[(0,t.jsx)("path",{d:"M253.66 106.34a8 8 0 0 0-11.32 0L192 156.69 107.31 72l50.35-50.34a8 8 0 1 0-11.32-11.32L96 60.69a16 16 0 0 0-2.82 18.81L72 100.69a16 16 0 0 0 0 22.62l4.69 4.69-58.35 58.34a8 8 0 0 0 3.13 13.25l72 24A7.88 7.88 0 0 0 96 224a8 8 0 0 0 5.66-2.34L136 187.31l4.69 4.69a16 16 0 0 0 22.62 0l21.19-21.18A16 16 0 0 0 203.31 168l50.35-50.34a8 8 0 0 0 0-11.32Z",fill:"light-dark(var(--color-paper-100), var(--color-ink-900))"}),(0,t.jsx)("path",{d:"M101.66 66.34 152 16 248 112 197.66 162.34Z",fill:"light-dark(var(--color-paper-100), var(--color-ink-900))"}),(0,t.jsx)("path",{d:"M253.66 106.34a8 8 0 0 0-11.32 0L192 156.69 107.31 72l50.35-50.34a8 8 0 1 0-11.32-11.32L96 60.69a16 16 0 0 0-2.82 18.81L72 100.69a16 16 0 0 0 0 22.62l4.69 4.69-58.35 58.34a8 8 0 0 0 3.13 13.25l72 24A7.88 7.88 0 0 0 96 224a8 8 0 0 0 5.66-2.34L136 187.31l4.69 4.69a16 16 0 0 0 22.62 0l21.19-21.18A16 16 0 0 0 203.31 168l50.35-50.34a8 8 0 0 0 0-11.32ZM93.84 206.85l-55-18.35L88 139.31 124.69 176ZM152 180.69 83.31 112 104 91.31 172.69 160Z",fill:"light-dark(var(--color-ink-800), var(--color-ink-100))"}),(0,t.jsx)("path",{d:"M93.84 206.85 38.84 188.5 88 139.31 124.69 176Z",className:"fill-passage-highlight-light dark:fill-passage-highlight-dark"})]})})}):null,null==W||null==m?null:(0,t.jsx)("span",{ref:k,"data-testid":"highlight-word-counter","aria-hidden":"true",className:"pointer-events-none absolute top-0 left-0 z-10 transition-transform duration-75 ease-out will-change-transform motion-reduce:transition-none",style:{transform:`translate3d(${W.x}px, ${W.y}px, 0)`},children:(0,t.jsxs)("span",{className:"bg-paper-100/90 dark:bg-ink-900/90 text-ink-800 dark:text-ink-100 block -translate-y-full rounded-full px-2 text-xs leading-5 font-semibold",children:[m.wordCount,"/",M]})})]})}function ez({classroomAssignmentId:e,actionId:t,assessmentProgressId:r,dailyChallengeId:n,lessonStepId:s}){return null!=r?["typing-session","assessment",r]:null!=n?["typing-session","daily",n]:null!=s?["typing-session","lesson",s]:null!=e?["typing-session","assignment",e]:null!=t?["typing-session","action",t]:["typing-session"]}e.s(["HighlightOverlay",0,e_,"connectHighlightRange",0,eE],178625),e.s(["getTypingSessionQueryKey",0,ez],19355);let eF=(0,o.createContext)(null);function eB(){return(0,o.useContext)(eF)}var eH=e.i(937428),eG=e.i(788543),eQ=e.i(39759);function eU(e){let t=Math.max(0,Math.trunc(e.totalWordCount)),r=Math.round(t*Math.min(Math.max(Math.trunc(e.percentage),0),100)/100);if(0===t||r<=0)return new Set;if(r>=t)return new Set(Array.from({length:t},(e,t)=>t));let n=function(e){let t=0x811c9dc5;for(let r=0;r<e.length;r+=1)t^=e.charCodeAt(r),t=Math.imul(t,0x1000193);return t>>>0}([e.actionId,e.repetitionIndex].join(":"))%t;return new Set(Array.from({length:r},(e,s)=>(Math.floor(s*t/r)+n)%t))}function eX(e){return[e.verse.book,e.verse.chapter,e.verse.verse,e.metadata.offset].join(":")}let eZ=eG.z.record(eG.z.string(),eG.z.array(eG.z.boolean()));function eY(e){if(null==e.action)return;let{action:t}=e,r=(0,eH.normalizeActionModeConfig)({requiredCompletions:t.requiredCompletions,modeType:t.modeType,modeMetadata:t.modeMetadata}),n=(0,eH.getActiveRepetitionStep)({requiredCompletions:t.requiredCompletions,modeType:r.modeType,modeMetadata:r.modeMetadata,history:e.history}),s=function(e){let{orderedPassageWords:t,maskedWordIndexesByVerse:r}=function(e){let t=[],r={};for(let n of e.nodes.flatMap(e=>"paragraph"===e.type?e.nodes:"verse"===e.type?[e]:[])){let e=eX(n),s=0;for(let r of n.nodes)"word"===r.type&&(t.push({verseKey:e,verseLocationKey:`${n.verse.chapter}:${n.verse.verse}`,wordIndexInVerse:s}),s+=1);r[e]=Array.from({length:s},()=>!1)}return{orderedPassageWords:t,maskedWordIndexesByVerse:r}}(e.passage),n=(0,eH.getActiveRepetitionStep)({requiredCompletions:e.requiredCompletions,modeType:e.modeType,modeMetadata:e.modeMetadata,history:e.history});if(null==e.actionId||null==e.requiredCompletions||!(0,eH.usesMaskedWordPercentages)(n.modeType)||null==e.modeMetadata||0===t.length)return r;let s=(0,eH.getMaskRepetitionIndex)({plan:(0,eH.resolveRepetitionPlan)(e),history:e.history,requiredCompletions:e.requiredCompletions}),a="TARGETED"===n.maskSelection&&null!=e.wordDifficulty?function(e){let t=Math.max(0,Math.trunc(e.totalWordCount)),r=Math.round(t*Math.min(Math.max(Math.trunc(e.percentage),0),100)/100);if(0===t||r<=0)return new Set;if(r>=t)return new Set(Array.from({length:t},(e,t)=>t));let n=Array.from({length:t},(t,r)=>{var n;let s=null!=(n={personal:e.personalCountsByWordIndex.get(r),population:e.populationCountsByWordIndex.get(r)}).personal&&n.personal.attempts>=2?n.personal:null!=n.population&&n.population.userCount>=5?{attempts:n.population.attempts,errors:n.population.errors,reveals:n.population.reveals}:null;return{wordIndex:r,score:null===s?0:(2*Math.max(s.reveals,0)+Math.max(s.errors,0))/Math.max(s.attempts,1)}}).filter(e=>e.score>0).sort((e,t)=>
2e.score===t.score?e.wordIndex-t.wordIndex:t.score-e.score),s=new Set;for(let e of n){if(s.size>=r)break;s.add(e.wordIndex)}if(s.size>=r)return s;let a=r-s.size;for(let n of[...eU({actionId:e.actionId,repetitionIndex:e.repetitionIndex,percentage:Math.round(a/t*100),totalWordCount:t})].sort((e,t)=>e-t)){if(s.size>=r)break;s.add(n)}for(let e=0;e<t&&!(s.size>=r);e+=1)s.add(e);return s}({actionId:e.actionId,repetitionIndex:s,percentage:n.maskPercentage,totalWordCount:t.length,...function({orderedPassageWords:e,wordDifficulty:t}){let r=new Map,n=new Map;return e.forEach((e,s)=>{let a=t.personal[e.verseLocationKey]?.[e.wordIndexInVerse],l=t.population[e.verseLocationKey]?.[e.wordIndexInVerse];void 0!==a&&r.set(s,a),void 0!==l&&n.set(s,l)}),{personalCountsByWordIndex:r,populationCountsByWordIndex:n}}({orderedPassageWords:t,wordDifficulty:e.wordDifficulty})}):eU({actionId:e.actionId,repetitionIndex:s,percentage:n.maskPercentage,totalWordCount:t.length});return t.forEach((e,t)=>{a.has(t)&&r[e.verseKey]?.splice(e.wordIndexInVerse,1,!0)}),r}({actionId:t.id,requiredCompletions:t.requiredCompletions,modeType:r.modeType,modeMetadata:r.modeMetadata,history:e.history,passage:e.passage,wordDifficulty:e.wordDifficulty});return{actionId:t.id,goalId:t.goalId,modeType:n.modeType,requiredCompletions:t.requiredCompletions,recordsAssistedAttempts:r.modeMetadata?.repetitionPlan?.adaptive===!0,maskedWordIndexesByVerse:s}}eG.z.object({actionId:eG.z.string(),goalId:eG.z.string().nullable().optional(),modeType:eQ.actionModeTypeSchema,requiredCompletions:eG.z.number(),recordsAssistedAttempts:eG.z.boolean().optional(),maskedWordIndexesByVerse:eZ});var eJ=e.i(209165);function e0(e,t){if(!t)return e.firstVerse.value;let r=[];for(let t of e.nodes)if("paragraph"===t.type){for(let e of t.nodes)if(!e.metadata.hangingVerse){let t=e.verse.verse;r.some(e=>e.number===t)||r.push({number:t,value:e.verse.value})}}if(0===r.length)return e.firstVerse.value;let n=Object.keys(t.verses).map(t=>{if(t.includes(":")){let[r,n]=t.split(":"),s=Number.parseInt(r??"",10),a=Number.parseInt(n??"",10);return Number.isNaN(s)||Number.isNaN(a)||s!==e.firstVerse.chapter?null:a}let r=Number.parseInt(t,10);return Number.isNaN(r)?null:r}).filter(e=>null!=e).filter(e=>r.some(t=>t.number===e));if(0===n.length)return e.firstVerse.value;let s=new Set(n),a=r.find(e=>!s.has(e.number)),l=r.findIndex(r=>t.lastTypedVerse?.chapter===e.firstVerse.chapter&&r.number===t.lastTypedVerse.verse);if(-1!==l){let t=r.slice(l+1).find(e=>!s.has(e.number));return null!=t?t.value:null!=a?a.value:e.firstVerse.value}if(null!=t.lastTypedVerse&&t.lastTypedVerse.chapter!==e.firstVerse.chapter)return a?.value??e.firstVerse.value;let i=Math.max(...n),o=r.find(e=>e.number>i);return null!=o?o.value:e.firstVerse.value}function e1(e){return e.nodes.flatMap(e=>"paragraph"===e.type?e.nodes:"verse"===e.type?[e]:[])}function e2(e){return e.reduce((e,t)=>"word"===t.type?e+t.letters.length:"paragraph"===t.type?e+t.nodes.reduce((e,t)=>e+e2(t.nodes),0):e,0)}function e3({passage:e,typedVerses:t}){let r=new Set(t?.map(e=>`${e.translation}:${e.book}:${e.chapter}:${e.verse}`));return new Set(e1(e).filter(e=>r.has(`${e.verse.translation}:${e.verse.book}:${e.verse.chapter}:${e.verse.verse}`)).map(e=>e.verse.value))}function e8({passage:e,typedVerses:t}){let r=e3({passage:e,typedVerses:t}),n=e1(e).find(e=>!r.has(e.verse.value));return n?.verse.value??""}function e6({currentVerse:e,passage:t,position:r,typedVerses:n}){let s=e1(t),a=s.reduce((e,t)=>e+e2(t.nodes),0),l=e3({passage:t,typedVerses:n});return{typedCount:Math.min(s.reduce((t,n)=>l.has(n.verse.value)?t+e2(n.nodes):n.verse.value!==e?t:t+Math.min(e2(n.metadata.hangingVerse?r.slice(n.metadata.offset,n.metadata.offset+n.metadata.length):r),e2(n.nodes)),0),a),totalCount:a}}e.s(["countPassageTypeableLetters",0,function(e){return e1(e).reduce((e,t)=>e+e2(t.nodes),0)},"getNextPassageVerseToFocus",0,e8,"getPassageTypingProgress",0,e6],980222);var e5=e.i(648082),e4=e.i(115677),e9=e.i(648889),e7=e.i(812950),te=e.i(410638),tt=e.i(387224),tr=e.i(776639);function tn({warning:e,setWarning:r,onTryAgain:n}){return(0,t.jsx)(tr.Dialog,{open:null!=e,onOpenChange:e=>{e||(r(null),n())},children:(0,t.jsxs)(tr.DialogContent,{className:"w-[min(95vw,32rem)]",initialFocus:!1,children:[(0,t.jsx)(tr.DialogCloseButton,{"aria-label":"Close accuracy warning"}),(0,t.jsx)(tr.DialogTitle,{children:e?.title}),(0,t.jsx)(tr.DialogDescription,{children:e?.description}),(0,t.jsx)("div",{className:"mt-5 flex justify-end",children:(0,t.jsx)(tr.DialogClose,{className:"border-ink-800 dark:border-ink-400 bg-paper-100 dar
2k:bg-ink-900 px-3 py-1 font-semibold",children:"Try again"})})]})})}var ts=e.i(7284);function ta({letter:e,styleClass:r}){return(0,t.jsxs)("span",{className:(0,ts.default)("letter first-letter-only-dash",r),children:[(0,t.jsx)("span",{className:"invisible",children:e}),(0,t.jsx)("span",{"aria-hidden":"true",className:"first-letter-only-dash-mark"})]})}function tl({word:e,typedWord:r,isWordTyped:n,active:s}){let a=e.letters.slice(0,-1),l=e.letters.at(-1),i=r?.letters??[],o=n&&null!=l&&(0,ew.isLetterEqual)(l,i.at(-1))?i.slice(0,-1):i,u=o.at(0),d=(0,ep.getFirstVisibleLetterIndex)(a),c=d>=0?a[d]:void 0,p=null!=u,m=null!=c&&(0,ew.isLetterEqual)(c,u),h=null!=c&&null!=u&&!m,f=(0,ec.getWordStyleClass)(e);return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("span",{className:(0,ts.default)("word inline-block whitespace-nowrap",s&&"active-word"),children:[a.map((e,r)=>{let n=r===d,s=f&&r>0?f:"";return p?(0,t.jsx)("span",{className:(0,ts.default)("letter",m&&"correct",h&&"incorrect error",s),children:e},r):n?(0,t.jsx)("span",{className:(0,ts.default)("letter",s),children:e},r):(0,t.jsx)(ta,{letter:e,styleClass:s},r)}),o.slice(1).map((e,r)=>(0,t.jsx)("span",{className:"letter extra incorrect error",children:e},r)),p?(0,t.jsx)(ec.WordEnder,{ender:l,isActive:s,styleClass:f}):(0,t.jsx)("span",{className:"opacity-0",children:(0,t.jsx)(ec.WordEnder,{ender:l,isActive:s,styleClass:f})})]}),(0,t.jsx)("span",{className:"text-[0px]",children:" "})]})}function ti({word:e,typedWord:r,isWordTyped:n,active:s}){let a=e.letters.slice(0,-1),l=e.letters.at(-1),i=r?.letters??[],o=n&&null!=l&&(0,ew.isLetterEqual)(l,i.at(-1))?i.slice(0,-1):i,d=(0,ep.getTrailingPunctuationStartIndex)(a),c=(0,ep.getFirstVisibleLetterIndex)(a),p=(0,ec.getWordStyleClass)(e),m=r&&n&&!(0,ew.isAtomEqual)(e,r),h=a.map((e,t)=>t).filter(e=>-1===c||!(e>c)||!(e<d));return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("span",{className:(0,u.cn)("word first-letter-word inline-block whitespace-nowrap",s&&"active-word"),children:[(0,t.jsx)("span",{className:(0,u.cn)(m&&!s&&"word-error"),children:h.map(e=>{let r=a[e],n=o.at(e),s=(0,ew.isLetterEqual)(r,n);return(0,t.jsx)("span",{className:(0,u.cn)("letter",s&&"correct",null!=n&&!s&&"incorrect error",m&&"error",p&&e>0?p:""),children:r},e)})}),(0,t.jsx)(ec.WordEnder,{ender:l,isActive:s,styleClass:p})]}),(0,t.jsx)("span",{className:"text-[0px]",children:" "})]})}function to({word:e,typedWord:r,isWordTyped:n,active:s,wordMaskType:a}){let l=e.letters.slice(0,-1),i=e.letters.at(-1),o=r?.letters??[],u=n&&null!=i&&(0,ew.isLetterEqual)(i,o.at(-1)),d=u?o.slice(0,-1):o,c=(0,ep.getTrailingPunctuationStartIndex)(l),p=(0,ep.getFirstVisibleLetterIndex)(l),m=l.map((e,t)=>d.at(t)),h=d.slice(l.length),f=(0,ec.getWordStyleClass)(e),y=u&&d.length<l.length?d.length:null;return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("span",{className:(0,ts.default)("word inline-block whitespace-nowrap",s&&"active-word"),children:[l.map((e,r)=>{let n=m[r],s=(0,ew.isLetterEqual)(e,n),l=r>=c,i=!(0,ep.isWordCharacter)(e),o=(0,ec.isMaskedLetterSlot)({wordMaskType:a,letterIndex:r,firstVisibleLetterIndex:p,isTrailingVisiblePunctuation:l,isMaskVisiblePunctuation:i}),u=y===r,d=o&&(null==n||!s||u),h=o&&null!=n?n:e;return d?(0,t.jsx)(ec.MaskedLetterSlot,{letter:e,styleClass:f&&r>0?f:"",isIncorrect:null!=n&&!s||u},r):(0,t.jsx)(ec.MaskedLetterGlyph,{letter:h,isCorrect:s,isIncorrect:null!=n&&!s||u,className:f&&r>0?f:""},r)}),h.map((e,r)=>(0,t.jsx)(ec.MaskedLetterGlyph,{letter:e,underline:"extra",isIncorrect:!0,className:"extra"},r)),(0,t.jsx)(ec.WordEnder,{ender:i,isActive:s,styleClass:f})]}),(0,t.jsx)("span",{className:"text-[0px]",children:" "})]})}var tu=e.i(98162),td=e.i(519455);function tc({open:e,onRevealWord:r,position:n}){return e&&null!=n?(0,t.jsx)(tr.Dialog,{open:e,modal:!1,children:(0,t.jsxs)(tr.DialogContent,{backdrop:!1,width:"small",initialFocus:!1,finalFocus:!1,style:{top:n.top,left:n.left},className:"z-10 w-56 max-w-[calc(100vw-2rem)] translate-y-0 p-2",children:[(0,t.jsxs)("div",{className:"flex w-full items-center justify-between gap-2",children:[(0,t.jsx)(tr.DialogTitle,{className:"m-0 text-xs font-semibold",children:"Need a hint?"}),(0,t.jsx)(tu.KeyboardShortcut,{className:"text-xs",mac:"â¥+R",nonMac:"Alt+R",mobile:"Alt+R"})]}),(0,t.jsx)(tr.DialogDescription,{className:"text-ink-700 dark:text-ink-300 mt-2 text-xs",children:"Reveal this word. This attempt will not count toward your progress."}),(0,t.jsx)("div",{className:"mt-2 flex justify-end",children:(0,t.jsx)(td.Button,{type:"button",color:"secondary",onPointerDown:e=>{e.preventDefault()},onClick:r,children:"Reveal word"})})]})}):null}var tp=e.i(30041);function tm({children:e,className:r,container:n,...s}){let a=(0,t.jsx)("button",{type:"button","data-verse-selection-overlay":!0,className:(0,u.cn)("border-boundary bg-paper-100 dar
2k:bg-ink-900 text-ink-800 dark:text-ink-100 shadow-floating rounded-overlay-compact absolute z-10 flex items-center justify-center border px-3 text-center text-sm leading-tight font-semibold outline-hidden transition-none focus-visible:outline-2 focus-visible:outline-offset-1 focus-visible:outline-solid",r),...s,children:e});return null==n?a:(0,tp.createPortal)(a,n)}function th({word:e,typedWord:r,isWordTyped:n,active:s}){let a=e.letters.slice(0,-1),l=e.letters.at(-1),i=r?.letters.slice(a.length).filter(e=>!(0,ew.isLetterEqual)(e,l)),o=r&&n&&!(0,ew.isAtomEqual)(e,r),u=!!(o&&!s),d=e.divineName?"divine-name":e.oldTestamentReference?"old-testament-reference":"";return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("span",{className:(0,ts.default)("word inline-block whitespace-nowrap",s&&"active-word"),children:[(0,t.jsxs)("span",{className:(0,ts.default)(u&&"word-error"),children:[a.map((e,n)=>{let s=r?.letters.at(n),a=(0,ew.isLetterEqual)(e,s);return(0,t.jsx)("span",{className:(0,ts.default)("letter",a&&"correct",s&&!a&&"incorrect",o&&"error",d&&(n>0?d:"")),children:e},n)}),i?.map((e,r)=>(0,t.jsx)("span",{className:(0,ts.default)("letter extra",o&&"error"),children:e},r))]}),(0,t.jsx)(ec.WordEnder,{ender:l,isActive:s,styleClass:d})]}),(0,t.jsx)("span",{className:"text-[0px]",children:" "})]})}function tf(e){let t=function(e){let t=e.letters.slice(0,-1),r=(0,ep.getFirstVisibleLetterIndex)(t),n=t[r];if(null==n)throw Error("First letter null");return n}(e),r=e.letters.at(-1)??" ";return{...e,letters:[t,r]}}var ty=e.i(581122),tg=e.i(673635);let tv="ttw:guest-progress-reminder:v1",tx=!1;var tw=e.i(982140);function tk(e,t,r){if(!e)return!1;let n=`${t}:${r}`;if(Object.prototype.hasOwnProperty.call(e.verses,n))return!0;let s=`${r}`;return Object.prototype.hasOwnProperty.call(e.verses,s)}function tb(e,t){return e?.some(e=>e.book===t.book&&e.chapter===t.chapter&&e.verse===t.verse&&e.translation===t.translation)??!1}var tC=e.i(610915),tI=e.i(136681);let tA=eG.z.discriminatedUnion("inputType",[eG.z.object({data:eG.z.string(),inputType:eG.z.literal("insertText")}),eG.z.object({data:eG.z.null(),inputType:eG.z.literal("deleteContentBackward")}),eG.z.object({data:eG.z.null(),inputType:eG.z.literal("deleteWordBackward")}),eG.z.object({data:eG.z.null(),inputType:eG.z.literal("deleteSoftLineBackward")})]);function tM(e){return e.flatMap(e=>{switch(e.type){case"paragraph":return tM(e.nodes);case"verse":return[e];default:return[]}})}function tT(e,t){let r=tM(t),n=r.findIndex(t=>t.verse.value===e);return r.slice(n).find(t=>t.verse.value!==e)??null}function tS(e,t,r){return e.verse.value!==t&&!tb(r,e.verse)}function tj({blocks:e,completedVerseValue:t,typedVerses:r}){let n=tM(e),s=n.findIndex(e=>e.verse.value===t),a=(-1===s?[]:n.slice(s+1)).find(e=>tS(e,t,r));return null!=a?a:(-1===s?n:n.slice(0,s)).find(e=>tS(e,t,r))??null}function tR(e){let t=new Set(e.revealedWordIndexes),r=0,n=0;return e.verseNodes.map((s,a)=>{let l={atom:s,atomIndex:a,typedIndex:r,wordIndex:"word"===s.type?n:null,wordMaskType:"word"===s.type&&e.maskedWordIndexes?.[n]&&!t.has(n)?e.wordMaskType:"none"};return"word"===s.type&&(n+=1),(0,ew.isAtomTyped)(s)&&(r+=1),l})}function tV(e){return null!=e&&"summary"in e&&null!=e.summary&&"totalVerses"in e.summary&&"requiredCompletions"in e.summary&&"isCompleted"in e.summary}function tE({atom:e,typedIndex:r,versePosition:n,isIndented:s,isInMemoryGrid:a,wordMaskType:l}){let i=n.at(r-1),o=n.at(r),d=n.at(r+1);if("newLine"===e.type)return(0,t.jsx)("br",{});if("verseNumber"===e.type)return(0,t.jsx)("b",{className:(0,u.cn)(a?"mr-2 inline-block min-w-[2ch] text-right align-top leading-7":s&&"absolute left-0"),children:e.text.split(":").at(-1)});if("space"===e.type)return(0,t.jsx)("span",{className:(0,u.cn)("space inline-flex h-[19px] w-[1ch] translate-y-[3px] select-none",null!=i&&null==o&&"active-space"),children:"Â "});if("decoration"===e.type||"tableColumnBreak"===e.type)return null;if("word"===e.type&&(null==o||"word"===o.type)){let n=!!((0===r||(0,ek.isAtomComplete)(i))&&!(0,ek.isAtomComplete)(o)&&null==d);return"none"===l?(0,t.jsx)(th,{word:e,active:n,typedWord:o,isWordTyped:(0,ek.isAtomComplete)(o)}):"first-letter-only"===l?(0,t.jsx)(tl,{word:e,active:n,typedWord:o,isWordTyped:(0,ek.isAtomComplete)(o)}):"first-letter"===l&&a?(0,t.jsx)(ti,{word:e,active:n,typedWord:o,isWordTyped:(0,ek.isAtomComplete)(o)}):(0,t.jsx)(to,{word:e,active:n,typedWord:o,isWordTyped:(0,ek.isAtomComplete)(o),wordMaskType:l})}return null}function tP({verse:e,isCurrentVerse:r,isIndented:n,passage:a,typingSession:i,typedVerses:d,history:c,classroomAssignmentId:p,classroomCourseId:m,assessmentProgressId:h,lessonStepId:f,dailyChallengeId:y,disableAutoScroll:g=!1,onAssessmentPassageComplete:v,onAssessmentComplete:x,onDailyVerseComplete:w,onLessonPassageComplete:k,actionPassageData:b,historyType:C,historyQueryKey:I,typingSessionQueryKey:A=["typing-session"],isInMemoryGrid:M=!1,isPaused:T=!1,onTypingInput:S,onVerseProgress:j,onPassageComplete:R}){var V;let E,P,L,N=(0,o.useRef)(null),W=eB(),[$,D]=(0,s.useAtom)(tX),[O,K]=(0,s.useAtom)(tZ),[q]=(0,s.useAtom)(t3),[_]=(0,s.useAtom)(t2),{data:z,status:F}=(0,l.useSession)(),B=function(){let{showToast:e}=(0,tg.useToast)();return()=>{let t=tx;try{t=t||"1"===window.sessionStorage.getItem(tv)}catch{}if(t)return;let r=window.location.pathname+window.location.search;e({title:"Save your progress",message:"Log in to save your progress as you keep typing.",action:{label:"Log in",href:`/auth/login?callbackUrl=${encodeURIComponent(r)}`},timeout:1e4}),tx=!0;try{window.sessionStorage.setItem(tv,"1")}catch{}}}(),H=(0,te.useRouter)(),G=ey(),Q=function(){let{firstLetterCurrentWordRect:e}=(0,o.useContext)(eh);return e}(),[U,X]=(0,s.useAtom)(tY),[Z,Y]=(0,s.useAtom)(tJ),[J,ee]=(0,s.useAtom)(t0),et=(0,s.use
2SetAtom)(eA),er=(0,s.useSetAtom)(eM),en=(0,e9.useQueryClient)(),[es,ea]=(0,o.useState)(null),{accuracyThreshold:el,regularAccuracyThreshold:ei}=(0,tt.useSettings)(),eo=(0,o.useMemo)(()=>{var t;return(t={position:$,verse:e}).verse.metadata.hangingVerse?t.position.slice(t.verse.metadata.offset,t.verse.metadata.offset+t.verse.metadata.length):t.position},[$,e]),eu=function(e){let{offset:t,length:r}=e.verse.metadata;return e.position.length>=t&&e.position.length<t+r}({position:$,verse:e});(0,o.useEffect)(()=>{let e=N.current;if(null!=e&&null==W&&r&&eu)return e.dataset.typingReady="true",()=>{delete e.dataset.typingReady}},[W,r,eu]);let ed=null==h?b?.actionId:void 0,ef=b?.modeType,ev="assessment"===C,eC="daily"===C,eI="lesson"===C,eT=ev||eC||eI,eS=(0,o.useMemo)(()=>b?.maskedWordIndexesByVerse[eX(e)]??[],[b,e]),ej=(0,eH.getActionWordMaskType)(ef),eR=function(e){let[t,r]=(0,o.useState)([]),n=(0,o.useCallback)(e=>{null!=e&&r(t=>t.includes(e)?t:[...t,e])},[]),s=(0,o.useCallback)(()=>{r([])},[]);if((0,eH.isMaskingActionModeType)(e))return{actionModeType:e,revealCurrentWord:n,revealedWordIndexes:t,resetRevealAssist:s}}(ef),eV=(0,eH.supportsRevealAssist)(ef),eE="first-letter-only"===ej,eP=(0,o.useMemo)(()=>(function e(t,r){return r.flatMap(r=>{switch(r.type){case"paragraph":return e(t,r.nodes);case"verse":if(t!==r.verse.value)return[];return r.nodes.flatMap(r=>"paragraph"===r.type?[...e(t,r.nodes)]:"word"===r.type?[r]:[]);default:return[]}})})(J,a.nodes).filter(ew.isAtomTyped),[J,a.nodes]),eL=(0,o.useMemo)(()=>eE?eP.map(tf):eP,[eP,eE]),eN=function(e){let t=e.position.filter(ew.isAtomTyped),r=t.at(-1),n=(0,ek.isAtomComplete)(r),s=n?t.length:Math.max(t.length-1,0),a=e.targetWords[s];if(null==a)return;let l=null==r||n?0:r.letters.length;return a.letters[l]??a.letters.at(-1)}({targetWords:eL,position:$}),{isMobile:eW}=(0,ty.getOS)(),e$=(0,o.useMemo)(()=>(function(e){if(e.verseMetadata?.hangingVerse&&null!=e.fullVersePosition&&e.fullVersePosition.length<e.verseMetadata.offset)return null;let t=0;for(let r of e.verseNodes){if("word"!==r.type)continue;let n=e.versePosition.at(t-1),s=e.versePosition.at(t),a=e.versePosition.at(t+1);if((0===t||(0,ek.isAtomComplete)(n))&&!(0,ek.isAtomComplete)(s)&&null==a)return t;t+=1}return null})({fullVersePosition:$,verseMetadata:e.metadata,verseNodes:e.nodes,versePosition:eo}),[$,e.metadata,e.nodes,eo]),eD=function(e){if(null==e.wordIndex)return!1;let t=e.versePosition.at(e.wordIndex);return t?.type==="word"&&t.letters.length>0}({versePosition:eo,wordIndex:e$}),eO=null!=e$&&(eS[e$]??!1),eK=null!=e$&&(eR?.revealedWordIndexes.includes(e$)??!1),eq=null==e$?void 0:e.nodes.filter(ew.isAtomTyped)[e$],e_=null==e$?void 0:eo.filter(ew.isAtomTyped)[e$],ez=null!=eq&&(E=(V={targetWord:eq,typedWord:e_,wordMaskType:ej}).targetWord.letters.slice(0,-1),P=(0,ep.getTrailingPunctuationStartIndex)(E),L=(0,ep.getFirstVisibleLetterIndex)(E),E.some((e,t)=>(0,ec.isMaskedLetterSlot)({wordMaskType:V.wordMaskType,letterIndex:t,firstVisibleLetterIndex:L,isTrailingVisiblePunctuation:t>=P,isMaskVisiblePunctuation:!(0,ep.isWordCharacter)(e)})&&!(0,ew.isLetterEqual)(e,V.typedWord?.letters[t]))),eF=eV&&eO&&!eK&&ez,eG=eF&&eD,eQ=(null==W||W.active&&W.allowRevealAssist)&&eF&&function(e){if(e.isPassageActive||e.isMobile||!(0,eH.supportsRevealAssist)(e.modeType)||null==e.activeWordIndex)return!1;let t=e.maskedWordIndexes[e.activeWordIndex]??!1,r=e.revealedWordIndexes.includes(e.activeWordIndex),n=e.activeWordIndex>0||e.hasStartedActiveWord;return t&&!r&&n}({isPassageActive:U,isMobile:null==W&&eW,modeType:ef,hasStartedActiveWord:eD,activeWordIndex:e$,maskedWordIndexes:eS,revealedWordIndexes:eR?.revealedWordIndexes??[]}),eU=(0,e4.useMutation)({scope:ev&&null!=h?{id:`assessment-progress-${h}`}:eC&&null!=y?{id:`daily-challenge-${y}`}:void 0,mutationFn:e=>(0,eJ.fetchAddVerseToTypingSession)(e.typingSessionId,e),onMutate:async e=>{await en.cancelQueries({queryKey:A});let t=en.getQueryData(A),r=I?en.getQueryData(I):void 0,n=!!("action"===C&&tV(c))&&c.summary.isCompleted;en.setQueryData(A,t=>{if(null!=t)return{...t,typedVerses:[...t.typedVerses,{...e,classroomAssignmentId:e.classroomAssignmentId??null,actionId:e.actionId??null,assessmentProgressId:e.assessmentProgressId??null,dailyChallengeId:e.dailyChallengeId??null,lessonStepId:e.lessonStepId??null,id:crypto.randomUUID(),userId:crypto.randomUUID(),createdAt:new Date,typingData:e.typingData??null}]}}),I&&en.setQueryData(I,t=>
2{if(null!=t){if("chapter"===C)return{...t,verses:{...t.verses,[e.verse]:!0},lastTypedVerse:{chapter:e.chapter,verse:e.verse}};{let r=e.typingData?(0,tI.calculateStatsForVerse)({typingData:e.typingData}):null,n={wpm:r?.wpm??null,accuracy:r?.accuracy??null},s="action"===C?`${e.chapter}:${e.verse}`:`${e.verse}`;return{...t,verses:{...t.verses,[s]:n},lastTypedVerse:{chapter:e.chapter,verse:e.verse}}}}});let s=null!=(eT?tj({blocks:a.nodes,completedVerseValue:J,typedVerses:d}):null);return(!eT||s)&&setTimeout(()=>{e5()}),{previousTypingSession:t,previousHistory:r,completedVerse:J,advancedWithinServerValidatedPassage:s,wasActionCompleted:n,didFetchActionCompletion:!1}},onError:(e,t,r)=>{en.setQueryData(A,r?.previousTypingSession),I&&en.setQueryData(I,r?.previousHistory),r?.advancedWithinServerValidatedPassage&&(ee(r.completedVerse),e6()),eT&&ea({title:"Verse wasn't saved",description:e instanceof Error?e.message:"We couldn't save this verse. Refresh and try again."})},onSuccess:async(e,t,r)=>{if(eC&&w?.({book:t.book,chapter:t.chapter,verse:t.verse}),eT&&!r.advancedWithinServerValidatedPassage)return void e5();if("action"===C&&null!=ed&&!r.wasActionCompleted){let e=await en.fetchQuery({queryKey:(0,eJ.getActionCompletionStateQueryKey)(ed),queryFn:()=>(0,eJ.fetchActionCompletionState)(ed),staleTime:0});r.didFetchActionCompletion=!0,en.setQueryData(["action-history",ed],e.history),b?.re
2cordsAssistedAttempts===!0&&null!=t.typingData&&(0,eb.hasRevealWordTypingActionSinceLastReset)(t.typingData.userActions)&&H.refresh()}},onSettled:async(e,t,r,n)=>{try{await en.invalidateQueries({queryKey:A}),I&&!n?.didFetchActionCompletion&&await en.invalidateQueries({queryKey:I}),p&&await en.invalidateQueries({queryKey:["assignment-history",p]}),ed&&!n?.didFetchActionCompletion&&await en.invalidateQueries({queryKey:["action-history",ed]}),y&&await en.invalidateQueries({queryKey:["daily-challenge-stats",y]}),await en.invalidateQueries({queryKey:["last-verse"]})}finally{er()}},retry:3}),eZ=(0,o.useRef)(null),eY=eg(),e0=e.verse.text+e.metadata.offset,e1=ex(eZ,e0),e2=function(e){if(null==e.passageRect)return null;let t="first-letter"===e.wordMaskType?e.firstLetterCurrentWordRect??e.verseRect:e.verseRect;return null==t?null:{top:t.top+t.height+8,left:e.passageRect.left+e.passageRect.width/2}}({passageRect:G,verseRect:e1,firstLetterCurrentWordRect:Q,wordMaskType:ej}),e3=(0,s.useAtomValue)(t1)===e0;(0,o.useEffect)(()=>{_&&(null==W||!0===W.focusInputOnMount)&&(Y(!0),N.current?.focus({preventScroll:g}),g||document.getElementById(`${q}-scroll-anchor`)?.scrollIntoView({block:"start",behavior:"smooth"}))},[]),(0,o.useEffect)(()=>{Z&&eu&&N.current?.focus({preventScroll:g})},[g,eu,Z]);let e8=(0,o.useRef)(void 0);function e6(){D([]),K([]),eR?.resetRevealAssist()}function e5(){if(eT){let e=tj({blocks:a.nodes,completedVerseValue:J,typedVerses:d});if(null!=e){ee(e.verse.value),e6();return}if(ev&&null!=h){null!=v||null!=x?(ee(""),e6(),N.current?.blur()):e6(),tr(h);return}if(eI&&null!=k){ee(""),e6(),N.current?.blur(),k();return}if(eC){ee(""),e6(),N.current?.blur();return}}let t="action"===C&&null!=c,r=t?function({blocks:e,completedVerseValue:t,history:r}){let n=new Set,s=tM(e).filter(e=>!n.has(e.verse.value)&&(n.add(e.verse.value),!0)),a=s.findIndex(e=>e.verse.value===t);return -1===a?null:[...s.slice(a+1),...s.slice(0,a)].find(e=>!tk(r,e.verse.chapter,e.verse.verse))??null}({blocks:a.nodes,completedVerseValue:J,history:c}):null;if(null!=r){ee(r.verse.value),e6();return}let n=t?null:tT(J,a.nodes);if(n?.verse.verse){j?.({book:n.verse.book,chapter:n.verse.chapter,verse:n.verse.verse,actions:[]}),ee(n.verse.value),e6();return}if(e6(),R){ee(""),R();return}if(("chapter"===C||"action"===C&&null!=ed)&&null!=a.nextChapter){let t=new URLSearchParams({translation:e.verse.translation});"action"===C&&null!=ed&&t.set("actionId",ed),H.push(`/passage/${a.nextChapter.url}?${t}`);return}ee(""),N.current?.blur()}async function tr(e){try{let t=await en.fetchQuery({queryKey:["assessment-progress",e],queryFn:()=>(0,eJ.fetchAssessmentProgress)(e),retry:3});if(null!=t.nextHref)return void(null!=v?v(t.nextHref):H.push(t.nextHref));let r=`/assessment/${t.result.assessmentId}`;if(null!=x)return void x(r);H.push(r)}catch(e){ea({title:"Your verse is saved",description:"We could not load the next assessment passage. Refresh this page to continue."})}}function ts(t){if(T)return;X(!0);let r="insertText"===t.inputType?Array.from(t.data.normalize("NFC"),e=>({data:e,inputType:"insertText"})):[t],n=O,s=!1;for(let e of r){let t=eE?(0,ek.getValidFirstLetterOnlyKeystrokes)(e,n,eL):(0,ek.getValidFullWordKeystrokes)(e,n);if(S){let r=(0,ek.getPosition)(n).filter(ew.isAtomTyped).reduce((e,t)=>e+t.letters.length,0),s=null==t?r:(0,ek.getPosition)(t).filter(ew.isAtomTyped).reduce((e,t)=>e+t.letters.length,0),a=null!=t&&("insertText"===e.inputType||s<r);if("deleteSoftLineBackward"===e.inputType){for(let e=0;e<r;e++)if(!S({type:"backspace",key:""},a))return}else if(!S({type:"insertText"===e.inputType?"insert":"deleteWordBackward"===e.inputType?"deleteWord":"backspace",key:e.data??""},a))return}null!=t&&(n=t,s=!0)}if(!s)return;j?.({book:e.verse.book,chapter:e.verse.chapter,verse:e.verse.verse,actions:n});let l=(0,ek.getPosition)(n);if((0,ew.isVerseSameShape)(eL,l)){if(null!=W){let e=l.filter(ew.isAtomTyped),t=W.onVerseComplete?.((0,tC.summarizeMemoryAssessmentWords)((0,tC.createMemoryAssessmentWordResults)({targetWords:eL,typedWords:e,revealedWordIndexes:eR?.revealedWordIndexes??[],keystrokes:n,includeFirstLetterMisse
2s:"missing-word"===ej||eE})));if(void 0!==t)if(null!=t){let e=tM(a.nodes).find(e=>e.verse.verse===t);if(null!=e){ee(e.verse.value),e6();return}}else{D(l),K(n),X(!1),W.onComplete();return}let r=tT(J,a.nodes);if(r?.verse.verse){ee(r.verse.value),e6();return}D(l),K(n),X(!1),W.onComplete();return}let e=function(e,t){let r=tM(t),n=r.findIndex(t=>t.verse.value===e),s=r.at(n);if(null==s)throw Error("ReadonlyVerse not found");return s}(J,a.nodes),t={userActions:n,userNodes:l.filter(ew.isAtomTyped),correctNodes:eL};if(!ev&&b?.recordsAssistedAttempts!==!0&&(0,eb.hasRevealWordTypingActionSinceLastReset)(t.userActions)){var o;return void(o=n,D([]),K([...o,{type:"restartVerse",source:"system",datetime:new Date().toISOString()}]),eR?.resetRevealAssist())}let r=(0,tI.calculateCorrectedAccuracy)(t),s=(0,tI.calculateAccuracy)(t);if(null!=p){let e=s<ei;if(e||r<el){e6(),e?ea({title:"Let us slow down and try again",description:`This verse needs at least ${ei}% regular accuracy to count. Regular accuracy includes mistakes even if you fix them later. Type a little slower and aim for every letter.`}):ea({title:"Close! Try this verse one more time",description:`This verse needs at least ${el}% corrected accuracy to count. Corrected accuracy checks your final typed verse. Slow down and make sure each word is right.`});return}}if(ev&&null!=h){let e=s<ei,n=r<el,a=null==(0,tI.calculateStatsForTypingData)(t);if(a||e||n){e6(),!n||e||a?ea({title:"Let us slow down and try again",description:`This verse needs at least ${ei}% regular accuracy to count. Regular accuracy includes mistakes even if you fix them later. Type a little slower and aim for every letter.`}):ea({title:"Close! Try this verse one more time",description:`This verse needs at least ${el}% corrected accuracy to count. Corrected accuracy checks your final typed verse. Slow down and make sure each word is right.`});return}}let u=Object.keys(c?.verses??{}).length,d="action"===C&&tV(c)?c:void 0,g=d?.summary;if(null!=p&&0===u&&(0,tw.trackAssignmentStarted)({assignmentId:p,book:e.verse.book,chapter:e.verse.chapter,verse:e.verse.verse,translation:e.verse.translation}),null!=ed&&null!=b&&null!=g&&0===g.completedVerses&&0===g.completedCompletions&&(0,tw.trackActionStarted)({actionId:ed,goalId:b.goalId,book:e.verse.book,chapter:e.verse.chapter,verse:e.verse.verse,translation:e.verse.translation,modeType:b.modeType}),null!=ed&&null!=b&&null!=g&&!g.isCompleted){let e=g.totalVerses>0&&g.completedVerses+1>=g.totalVerses;g.completedCompletions+ +!!e>=g.requiredCompletions&&(0,tw.trackActionCompleted)({actionId:ed,goalId:b.goalId,totalVerses:g.totalVerses,completedVerses:g.totalVerses,requiredCompletions:g.requiredCompletions,completedCompletions:g.requiredCompletions,averageWpm:g.averageWpm,averageAccuracy:g.averageAccuracy,modeType:b.modeType})}(0,e7.trackEvent)("typed-verse"),(0,tw.trackVerseCompleted)({book:e.verse.book,chapter:e.verse.chapter,verse:e.verse.verse,translation:e.verse.translation,courseId:m,assignmentId:p,actionId:ed}),"unauthenticated"===F&&B(),i?.id!=null&&(z?.user?.id!=null||null!=h)?(et(),eU.mutate({book:e.verse.book,chapter:e.verse.chapter,verse:e.verse.verse,translation:e.verse.translation,typingSessionId:i.id,classroomAssignmentId:p,actionId:ed,assessmentProgressId:h,dailyChallengeId:y,lessonStepId:f,typingData:t})):e5()}else"deleteSoftLineBackward"===t.inputType&&eR?.resetRevealAssist(),D(l),K(n)}function ta(){null!=eR&&null!=e$&&eF&&(K(t=>[...t,{type:"revealWord",wordIndex:e$,sectionOffset:e.metadata.offset,datetime:new Date().toISOString()}]),eR.revealCurrentWord(e$))}(0,o.useEffect)(()=>(e8.current&&clearTimeout(e8.current),e8.current=setTimeout(()=>{X(!1)},3e3),()=>{e8.current&&clearTimeout(e8.current)}),[O.length,X]);let tl=e.nodes.some(e=>"tableColumnBreak"===e.type),ti=(0,o.useMemo)(()=>tR({verseNodes:e.nodes,maskedWordIndexes:eS,wordMaskType:ej,revealedWordIndexes:"first-letter"===ej?void 0:eR?.revealedWordIndexes}),[eS,eR?.revealedWordIndexes,ej,e.nodes]),to=(0,o.useMemo)(()=>{let e=[];
2if(!tl)return[ti];let t=[];return ti.forEach(r=>{if("tableColumnBreak"===r.atom.type){t.length>0&&e.push(t),t=[];return}t.push(r)}),t.length>0&&e.push(t),e},[ti,tl]),tu=tk(c,e.verse.chapter,e.verse.verse),td=tb(d,e.verse),tp=(0,o.useMemo)(()=>{if(null==W||""===J)return!1;let t=tM(a.nodes),r=t.findIndex(e=>e.verse.value===J),n=t.findIndex(t=>t.verse.value===e.verse.value&&t.metadata.offset===e.metadata.offset);return r>=0&&n>=0&&n<r},[J,W,a.nodes,e.metadata.offset,e.verse.value]);return(0,t.jsxs)("span",{"data-testid":`current-verse-${e.verse.verse}`,"data-typed-in-history":tu?"true":"false",className:(0,u.cn)("verse group break-spaces hover:cursor-pointer",M?"block min-w-0 text-balance":tl?"block w-full":"inline h-3 text-balance",r&&"active-verse",tu||td||tp?W?.completedVerseClassName??"text-ink-500 dark:text-ink-300":"text-ink-800 dark:text-ink-100"),ref:eZ,onClick:()=>{N.current?.focus({preventScroll:g})},children:[(0,t.jsx)("span",{id:`${q}-scroll-anchor`,className:"inline-block -translate-y-36 lg:-translate-y-[340px]"}),tl?(0,t.jsx)("span",{className:"inline-grid w-full gap-x-6",style:{gridTemplateColumns:`repeat(${to.length||1}, minmax(0, 1fr))`},children:to.map((e,r)=>(0,t.jsx)("span",{className:"min-w-0",children:e.map(e=>(0,t.jsx)(tE,{atom:e.atom,typedIndex:e.typedIndex,versePosition:eo,isIndented:n,isInMemoryGrid:M,wordMaskType:e.wordMaskType},e.atomIndex))},r))}):ti.map(e=>(0,t.jsx)(tE,{atom:e.atom,typedIndex:e.typedIndex,versePosition:eo,isIndented:n,isInMemoryGrid:M,wordMaskType:e.wordMaskType},e.atomIndex)),e1&&G&&!Z?(0,t.jsx)(tm,{container:eY.current,"data-testid":`focus-verse-button-${e.verse.verse}`,className:(0,u.cn)("focus:opacity-100",M&&"min-w-0 overflow-hidden px-3 text-center leading-tight text-balance break-words whitespace-normal",!U&&e3?"pointer-events-auto opacity-100":"pointer-events-none opacity-0"),style:em({passageRect:G,verseRect:e1,isInMemoryGrid:M}),onClick:()=>{Y(!0)},children:(0,t.jsxs)("span",{children:["Continue typing verse ",e.verse.value]})}):null,(0,t.jsx)("input",{type:"text","data-testid":"typing-input","aria-label":`Type verse ${e.verse.value}`,"data-typing-input":null==W?void 0:"","data-next-character":null==W?void 0:eN,"data-reveal-eligible":null==W?void 0:eG.toString(),"data-current-word-final":null==W?void 0:(e$===eL.length-1).toString(),className:"peer fixed h-0 max-h-0 opacity-0",onCompositionEnd:function(e){let t=e.data.normalize("NFC");""!==t&&ts({data:t,inputType:"insertText"})},onInput:function(e){if(e.nativeEvent instanceof InputEvent&&e.nativeEvent.isComposing)return;let t=tA.safeParse(e.nativeEvent);t.success&&("insertText"===t.data.inputType&&" "===t.data.data&&e.preventDefault(),ts(t.data))},onKeyDown:function(e){if(T){"Backspace"!==e.key&&(1!==e.key.length||e.metaKey||e.ctrlKey||e.altKey)||e.preventDefault();return}if(e.nativeEvent.isComposing)return;let{os:t}=(0,ty.getOS)();eR&&eF&&(0,eH.getRevealAssistActionModeKeybinding)(ta)(e).defaultPrevented||(("Windows"===t||"Linux"===t)&&(e.shiftKey&&e.ctrlKey&&"Backspace"===e.key?(e.preventDefault(),ts({data:null,inputType:"deleteSoftLineBackward"})):e.ctrlKey&&"Backspace"===e.key?(e.preventDefault(),ts({data:null,inputType:"deleteWordBackward"})):"Backspace"===e.key&&(e.preventDefault(),ts({data:null,inputType:"deleteContentBackward"}))),"MacOS"===t&&(e.metaKey&&"Backspace"===e.key?(e.preventDefault(),ts({data:null,inputType:"deleteSoftLineBackward"})):e.altKey&&"Backspace"===e.key?(e.preventDefault(),ts({data:null,inputType:"deleteWordBackward"})):"Backspace"===e.key&&(e.preventDefault(),ts({data:null,inputType:"deleteContentBackward"}))))},tabIndex:-1,autoCorrect:"off",spellCheck:!1,autoComplete:"off",autoCapitalize:"off",onFocus:()=>{null!=W||g||document.getElementById(`${q}-scroll-anchor`)?.scrollIntoView({block:"start",behavior:"smooth"}),Y(!0)},onBlur:()=>{Y(!1)},ref:N,autoFocus:!g&&(null==W||!0===W.focusInputOnMount)&&eu}),eR&&eV?(0,t.jsx)(tc,{open:eQ,position:e2,onRevealWord:ta}):null,(0,t.jsx)(tn,{warning:es,setWarning:ea,onTryAgain:()=>{N.current?.focus({preventScroll:g})}})]})}function tL({word:e,wordMaskType:r="none",isInMemoryGrid:n=!1}){if("first-letter"===r&&n)return(0,t.jsx)(ti,{word:e,isWordTyped:!1,active:!1});let s=e.letters.slice(0,-1),a=e.letters.at(-1),l=(0,ep.getTrailingPunctuationStartIndex)(s),i=(0,ep.getFirstVisibleLetterIndex)(s),o=(0,ec.getWordStyleClass)(e),d="first-letter-only"===r;return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("span",{className:"word inline-block whitespace-nowrap",children:[s.map((e,n)=>{let s=d&&n===i,a=n>=l,c=!(0,ep.isWordCharacter)(e),p=(0,ec.isMaskedLetterSlot)({wordMaskType:r,letterIndex:n,firstVisibleLetterIndex:i,isTrailingVisiblePunctuation:a,isMaskVisiblePunctuation:c}),m=o&&n>0?o:"";return d&&!s?(0,t.jsx)(ta,{letter:e,styleClass:m},n):p?(0,t.jsx)(ec.MaskedLetterSlot,{letter:e,styleClass:m,isIncorrect:!1},n):(0,t.jsx)("span",{className:(0,u.cn)("letter",m),children:e},n)}),d?(0,t.jsx)("span",{className:"opacity-0",children:(0,t.jsx)(ec.WordEnder,{ender:a,isActive:!1,styleClass:o})}):(0,t.jsx)(ec.WordEnder,{ender:a,isActive:!1,styleClass:o})]}),(0,t.jsx)("span",{className:"text-[0px]",children:" "})]})}function tN({atom:e,isIndented:r,isInMemoryGrid:n,wordMaskType:s}){return"newLine"===e.type?(0,t.jsx)("br",{}):"verseNumber"===e.type?(0,t.jsx)("b",{className:(0,u.cn)(n?"mr-2 inline-block min-w-[2ch] text-right al
2ign-top leading-7":r&&"absolute left-0"),children:e.text.split(":").at(-1)}):"space"===e.type?(0,t.jsx)("span",{className:(0,u.cn)("space inline-flex h-[19px] w-[1ch] translate-y-[3px] select-none"),children:"Â "}):"decoration"===e.type||"tableColumnBreak"===e.type?null:"word"===e.type?(0,t.jsx)(tL,{word:e,wordMaskType:s,isInMemoryGrid:n}):null}function tW({isCurrentVerse:e,isIndented:r,verse:n,history:a,typedVerses:l,actionPassageData:i,isVerseSelectionDisabled:d=!1,isInMemoryGrid:c=!1}){let p=eB(),m=ey(),h=eg(),f=(0,s.useAtomValue)(t1),y=(0,s.useAtomValue)(tY),g=(0,o.useRef)(null),v=n.verse.text+n.metadata.offset,x=ex(g,v),w=f===v,k=tk(a,n.verse.chapter,n.verse.verse)||tb(l,n.verse),[b,C]=(0,s.useAtom)(t0),I=(0,s.useSetAtom)(tX),A=(0,s.useSetAtom)(tZ),M=(0,o.useMemo)(()=>i?.maskedWordIndexesByVerse[eX(n)]??[],[i,n]),T=(0,eH.getActionWordMaskType)(i?.modeType),S="first-letter"===T?"first-letter":null!=i&&k?"none":T,j=(0,o.useMemo)(()=>tR({verseNodes:n.nodes,maskedWordIndexes:M,wordMaskType:S}),[S,M,n.nodes]),R=n.nodes.some(e=>"tableColumnBreak"===e.type),V=[];if(R){let e=[];j.forEach(t=>{"tableColumnBreak"===t.atom.type?(e.length>0&&V.push(e),e=[]):e.push(t)}),e.length>0&&V.push(e)}return(0,t.jsxs)("span",{"data-testid":`readonly-verse-${n.verse.verse}`,"data-typed-in-history":k?"true":"false",className:(0,u.cn)("verse break-spaces group",d?"cursor-default":"hover:cursor-pointer",c?"block min-w-0 text-balance":R?"block w-full":"inline h-3 text-balance",e&&"active-verse",k?p?.completedVerseClassName??"text-ink-500 dark:text-ink-300":"text-ink-800 dark:text-ink-100"),ref:g,onClick:d?void 0:()=>{C(n.verse.value),I([]),A([])},children:[R?(0,t.jsx)("span",{className:"inline-grid w-full gap-x-6",style:{gridTemplateColumns:`repeat(${V.length||1}, minmax(0, 1fr))`},children:V.map((e,n)=>(0,t.jsx)("span",{className:"min-w-0",children:e.map(e=>(0,t.jsx)(tN,{atom:e.atom,isIndented:r,isInMemoryGrid:c,wordMaskType:e.wordMaskType},e.atomIndex))},n))}):j.map(e=>(0,t.jsx)(tN,{atom:e.atom,isIndented:r,isInMemoryGrid:c,wordMaskType:e.wordMaskType},e.atomIndex)),x&&m&&!d?(0,t.jsx)(tm,{container:h.current,"data-testid":`focus-verse-button-${n.verse.verse}`,className:(0,u.cn)("focus:opacity-100",c&&"min-w-0 overflow-hidden px-3 text-center leading-tight text-balance break-words whitespace-normal",!y&&w?"pointer-events-auto opacity-100":"pointer-events-none opacity-0"),style:em({passageRect:m,verseRect:x,isInMemoryGrid:c}),children:b?(0,t.jsxs)("span",{children:["Switch to verse ",n.verse.value]}):(0,t.jsxs)("span",{children:["Start typing at verse ",n.verse.value]})}):null]})}function t$({children:e,indented:r=!1,first:n=!1,className:s,"data-testid":a}){return(0,t.jsx)("p",{"data-testid":a,className:(0,u.cn)("text-lg leading-7",n&&"mt-0",r&&"ml-3",s),children:e})}function tD({node:e,passage:r,typingSession:n,typedVerses:a,history:l,classroomAssignmentId:i,classroomCourseId:o,assessmentProgressId:u,lessonStepId:d,dailyChallengeId:c,disableAutoScroll:p,onAssessmentPassageComplete:m,onAssessmentComplete:h,onDailyVerseComplete:f,onLessonPassageComplete:y,actionPassageData:g,historyType:v,historyQueryKey:x,typingSessionQueryKey:w,isTypingDisabled:k=!1,isPaused:b=!1,isVerseSelectionDisabled:C=!1,onTypingInput:I,onVerseProgress:A,onPassageComplete:M,isFirstLetterRecallGrid:T,isFirstRenderedPassageBlock:S}){let[j]=(0,s.useAtom)(t0),R="first-letter"===(0,eH.getActionWordMaskType)(g?.modeType),V=e.nodes.map((s,S)=>{let R=s.verse.value===j;return 0===s.nodes.length?null:R&&!k?(0,t.jsx)(tP,{verse:s,isPaused:b,onTypingInput:I,onVerseProgress:A,onPassageComplete:M,isCurrentVerse:R,isIndented:e.metadata.blockIndent,passage:r,typingSession:n,typedVerses:a,history:l,classroomAssignmentId:i,classroomCourseId:o,assessmentProgressId:u,lessonStepId:d,dailyChallengeId:c,disableAutoScroll:p,onAssessmentPassageComplete:m,onAssessmentComplete:h,onDailyVerseComplete:f,onLessonPassageComplete:y,actionPassageData:g,historyType:v,historyQueryKey:x,typingSessionQueryKey:w,isInMemoryGrid:T},S):(0,t.jsx)(tW,{verse:s,isCurrentVerse:R,isIndented:e.metadata.blockIndent,history:l,typedVerses:a,actionPassageData:g,isVerseSelectionDisabled:k||C,isInMemoryGrid:T},S)});return T?(0,t.jsx)("div",{"data-testid":`first-letter-recall-grid-verse-${e.nodes.at(0)?.verse.value}`,className:"min-w-0",children:V}):(0,t.jsx)(t$,{"data-testid":R?"first-letter-recall-passage":void 0,first:S,indented:e.metadata.blockIndent,children:V})}function tO(e){return[e.book,e.chapter,e.verse,e.translation].join(":")}function tK(e,t){e.push({top:t.top,bottom:t.bottom,completionLevel:t.completionLevel})}function tq({orderedVerses:e,passageRect:r,typedVerses:n,verseRects:s,padding:a=0}){let l=(0,o.useMemo)(()=>
2{if(!r)return[];let t=new Map;n?.forEach(e=>{let r=tO(e);t.set(r,(t.get(r)??0)+1)});let a=[],l=Math.min(Math.max(0,...t.values()),3);for(let n=1;n<=l;n+=1){let l=null;e.forEach((e,i)=>{let o=e.verse.text+e.metadata.offset,u=s[o]?.bounds,d=t.get(tO(e.verse))??0;if(u&&d>=n){let e=u.top-r.top,t=u.bottom-r.top;l&&l.lastIndex===i-1?(l.top=Math.min(l.top,e),l.bottom=Math.max(l.bottom,t),l.lastIndex=i):(null!=l&&tK(a,l),l={top:e,bottom:t,lastIndex:i,completionLevel:n})}else null!=l&&(tK(a,l),l=null)}),null!=l&&tK(a,l)}return a},[e,r,n,s]);return(0,t.jsx)(t.Fragment,{children:l.map((e,r)=>{let n=e.bottom-e.top+2*a,s=2*e.completionLevel,l=4+s/2;return(0,t.jsx)("svg",{"data-testid":"typed-verse-line","data-line-height":n,"data-session-completion-level":e.completionLevel,"data-stroke-width":s,"data-stroke-x":l,className:"pointer-events-none absolute right-full -left-3 z-0 w-4 overflow-visible transition-[height] duration-200 ease-in-out md:-left-6",style:{height:n,top:e.top-a},xmlns:"http://www.w3.org/2000/svg",children:(0,t.jsx)("line",{className:"stroke-ink-800 dark:stroke-ink-100",strokeWidth:s,strokeLinejoin:"round",strokeLinecap:"round",x1:l,y1:"0%",x2:l,y2:"100%"})},r)})})}var t_=e.i(38756);let tz={name:"mouse-pointer-click",size:24,node:[["path",{d:"M14 4.1 12 6",key:"ita8i4"}],["path",{d:"m5.1 8-2.9-.8",key:"1go3kf"}],["path",{d:"m6 12-1.9 2",key:"mnht97"}],["path",{d:"M7.2 2.2 8 5.1",key:"1cfko1"}],["path",{d:"M9.037 9.69a.498.498 0 0 1 .653-.653l11 4.5a.5.5 0 0 1-.074.949l-4.349 1.041a1 1 0 0 0-.74.739l-1.04 4.35a.5.5 0 0 1-.95.074z",key:"s0h3yz"}]]};tz.node;let tF=(0,t_.default)(tz);e.s(["MousePointerClick",0,tF],664408);let tB="ttw-inactivity-cue-seen";function tH(e){return e.split(";").map(e=>e.trim()).some(e=>e===`${tB}=1`)}var tG=e.i(747422);function tQ({active:e,label:r,labelPlacement:n="below",placementSeed:s,containerRef:a,targetRef
2:l,targetPosition:i,anchor:d="target",onArrival:c,onVisibilityChange:p,animate:m=!0,persistSeen:h=!1,singletonSelector:f,delayMs:y=3e3,className:g}){let v,x,[w,k]=(0,o.useState)(!1),[b,C]=(0,o.useState)(!1),[I,A]=(0,o.useState)(!1),[M,T]=(0,o.useState)(null),S=(0,o.useRef)(null);(0,o.useEffect)(()=>{A(h&&tH(document.cookie))},[h]),(0,o.useEffect)(()=>(p?.(w),()=>{w&&p?.(!1)}),[w,p]),(0,o.useEffect)(()=>{let e=a.current;if(null!=e)return e.addEventListener("pointermove",t),()=>{e.removeEventListener("pointermove",t)};function t(e){S.current={x:e.clientX,y:e.clientY}}},[a]),(0,o.useEffect)(()=>{let e=a.current;if(null==e)return;if("u"<typeof IntersectionObserver){let t=e.getBoundingClientRect();C(t.bottom>0&&t.top<window.innerHeight);return}let t=new IntersectionObserver(e=>{C(e[0]?.isIntersecting===!0)},{threshold:.1});return t.observe(e),()=>{t.disconnect()}},[a]),(0,o.useEffect)(()=>{let t;if(!e||!b||I)return void k(!1);let r=window.setTimeout(()=>{if(null!=a.current&&(null==f||1===document.querySelectorAll(f).length)&&!(h&&tH(document.cookie))){let e;k(!0),h&&(e="https:"===window.location.protocol?"; Secure":"",document.cookie=`${tB}=1; Path=/; Max-Age=259200; SameSite=Lax${e}`),t=window.setTimeout(()=>{c?.()},480*!!m)}},y);return()=>{window.clearTimeout(r),null!=t&&window.clearTimeout(t)}},[e,m,a,y,b,I,c,h,f]);let j=null!=i,R="container"===d,V="pane-top-right"===d;(0,o.useEffect)(()=>{if(w&&!V&&(!j||R))return e(),window.addEventListener("scroll",e,{capture:!0,passive:!0}),window.addEventListener("resize",e),()=>{window.removeEventListener("scroll",e,!0),window.removeEventListener("resize",e)};function e(){let e=a.current;if(null==e)return;let t=e.getBoundingClientRect();if(R)return void T({x:t.left+t.width/2,y:t.top+t.height/2});let r=l?.current?.getBoundingClientRect(),n=S.current;
2T({x:(null==r?void 0:r.left+r.width/2)??n?.x??t.left+t.width/2,y:(null==r?void 0:r.top+r.height/2)??n?.y??t.top+t.height/2})}},[a,j,w,l,R,V]);let E=R?M:i??M;if(!w||!V&&null==E)return null;let P=(v=[...s].reduce((e,t)=>e+t.charCodeAt(0),0),(x=["upper","middle","lower"])[v%x.length]??"middle"),L=(0,t.jsxs)("div",{className:(0,u.cn)(tG.default.cue,V?tG.default.paneTopRight:tG.default[P],V&&"top-6 right-6 sm:top-8 sm:right-8",!V&&"right"===n&&tG.default.labelRight,!m&&tG.default.static,g),"data-testid":"inactivity-cue","data-anchor":V?"pane-top-right":void 0,role:"status",style:V?void 0:{left:E?.x,top:E?.y},children:[(0,t.jsx)("span",{className:tG.default.hand,"aria-hidden":"true",children:(0,t.jsx)("span",{className:tG.default.cursorIcon,children:(0,t.jsx)(tF,{className:tG.default.handGlyph,size:18})})}),(0,t.jsx)("span",{className:tG.default.label,children:r})]});return V?L:(0,tp.createPortal)(L,document.body)}e.s(["InactivityCue",0,tQ],277617);let tU="passage typo:prose text-ink-800 dark:text-ink-100 dark:typo:prose-invert typo:prose-headings:text-ink-800 dark:typo:prose-headings:text-ink-100 typo:prose-p:text-ink-800 dark:typo:prose-p:text-ink-100 relative z-0 w-full",tX=(0,n.atom)([]),tZ=(0,n.atom)([]),tY=(0,n.atom)(!1),tJ=(0,n.atom)(!1),t0=(0,n.atom)(""),t1=(0,n.atom)(null),t2=(0,n.atom)(!1),t3=(0,n.atom)("");function t8({initialValues:e,children:t}){return(0,a.useHydrateAtoms)(e),t}function t6({disablePassReset:e=!1,passage:t,history:r}){let[n,a]=(0,s.useAtom)(t0),[l]=(0,s.useAtom)(t2);return(0,o.useEffect)(()=>{e||!l||""!==n||null==r||0===Object.keys(r.verses).length&&a(e0(t,r))},[l,n,e,r,t,a]),null}function t5({passage:e,typedVerses:t}){let[r,n]=(0,s.useAtom)(t0),a=(0,o.useRef)(null);return(0,o.useEffect)(()=>{if(null==t)return;let s=t.map(e=>`${e.translation}:${e.book}:${e.chapter}:${e.verse}`).sort().join("|");if(a.current===s)return;a.current=s;let l=e8({passage:e,typedVerses:t});l!==r&&n(l)},[r,e,n,t]),null}function t4({onTypingProgress:e,passage:t,typedVerses:r}){let[n]=(0,s.useAtom)(t0),[a]=(0,s.useAtom)(tX);return(0,o.useEffect)(()=>{null!=e&&e(e6({currentVerse:n,passage:t,position:a,typedVerses:r}))},[n,e,t,a,r]),null}function t9({isPaused:e=!1,pauseWhileSubmittingVerse:r=!1,...n}){let a=(0,s.useAtomValue)(eI);return(0,t.jsx)(tD,{...n,isPaused:e||r&&a})}function t7({passage:e,translation:a="esv",...d}){let c=(0,o.useId)(),p=(0,o.useMemo)(()=>(0,n.createStore)(),[]),m=function(e){let[t]=(0,o.useState)(e);return t}(d.initialKeystrokes??[]),[h,f]=(0,o.useState)(!1),[y,g]=(0,o.useState)("paragraph"),v=d.onCompletedVerseCountChange,x=e.nodes.findIndex(e=>(function(e,t){switch(e.type){case"paragraph":case"h2":case"h3":case"h4":return!0;case"passageReference":return!t;default:return!1}})(e,!0===d.hidePassageReferenceHeading)),w=(0,o.useRef)(null),k=ev(w),[b,C]=(0,o.useState)({}),[I,A]=(0,o.useState)(null),M=(0,o.useCallback)((e,t)=>C(r=>({...r,[e]:t})),[]),{data:T}=(0,l.useSession)(),S=d.passageSegmentOverride??(0,e5.toPassageSegment)(e.firstVerse.book,e.firstVerse.chapter),j=ez({classroomAssignmentId:d.classroomAssignmentId,actionId:d.action?.id,assessmentProgressId:d.assessmentProgressId,dailyChallengeId:d.dailyChallengeId,lessonStepId:d.lessonStepId}),R=d.historyType??"chapter",V=(0,r.useQuery)({queryKey:j,queryFn:()=>(0,eJ.fetchTypingSessionUpsert)(d.classroomAssignmentId,d.action?.id,d.assessmentProgressId,d.lessonStepId),enabled:null==d.demoOptions&&(T?.user?.id!=null||null!=d.assessmentProgressId),initialData:d.typingSession,placeholderData:d.typingSession}),E=(0,o.useMemo)(()=>{if(d.demoOptions?.typedVerses!=null)return d.demoOptions.typedVerses;if("daily"!==R)return V.data?.typedVerses;let e=[...d.dailyTypedVerses??[],...V.data?.typedVerses.filter(e=>e.dailyChallengeId===d.dailyChallengeId)??[]];return e.filter((t,r)=>e.findIndex(e=>e.id===t.id)===r)},[R,d.dailyChallengeId,d.dailyTypedVerses,d.demoOptions?.typedVerses,V.data?.typedVerses]),P="assessment"===R||"daily"===R||"lesson"===R||null!=d.demoOptions?E:void 0,L="chapter"===R,N=(0,r.useQuery)({queryKey:["chapter-history",S,a],queryFn:()=>(0,eJ.fetchChapterHistory)(S,a),enabled:null==d.demoOptions&&T?.user?.id!=null&&L,placeholderData:d.chapterHistory}),W="assignment"===R,$=e.firstVerse.chapter,D=(0,r.useQuery)({queryKey:["assignment-history",d.classroomAssignmentId,$],queryFn:()=>(0,eJ.fetchAssignmentHistory)(d.classroomAssignmentId??"",$),enabled:null==d.demoOptions&&T?.user?.id!=null&&W&&null!=d.classroomAssignmentId,placeholderData:d.assignmentHistory}),O="action"===R,K=(0,r.useQuery)({queryKey:["action-history",d.action?.id],queryFn:()=>(0,eJ.fetchActionHistory)(d.action?.id??""),enabled:null==d.demoOptions&&T?.user?.id!=null&&O&&d.action?.id!=null,placeholderData:d.actionHistory}),q="assignment"===R?D.data??d.assignmentHistory:"action"===R?K.data??d.actionHistory:"chapter"
2===R?N.data??d.chapterHistory:void 0,_=(0,o.useMemo)(()=>{if(null!=d.assessmentProgressId&&null!=d.assessmentMode)return eY({passage:e,action:{id:d.assessmentProgressId,goalId:null,requiredCompletions:1,...d.assessmentMode}});if(null!=d.action){if("action"===R)return eY({passage:e,action:d.action,history:K.data??d.actionHistory,wordDifficulty:d.wordDifficulty});if("assignment"===R)return eY({passage:e,action:d.action,history:D.data??d.assignmentHistory,wordDifficulty:d.wordDifficulty})}},[K.data,D.data,R,e,d.actionHistory,d.assessmentMode,d.assessmentProgressId,d.action,d.assignmentHistory,d.wordDifficulty]),z="first-letter"===(0,eH.getActionWordMaskType)(_?.modeType),F=null!=d.demoOptions?void 0:"assignment"===R?d.classroomAssignmentId?["assignment-history",d.classroomAssignmentId,$]:void 0:"action"===R?d.action?.id?["action-history",d.action.id]:void 0:"chapter"===R?["chapter-history",S,a]:void 0,B=d.passageReferenceHeadingLevel??"h1",H=(0,o.useMemo)(()=>e.nodes.flatMap(e=>"paragraph"===e.type?e.nodes:"verse"===e.type?[e]:[]),[e.nodes]),G=new Set(H.map(e=>e.verse.value)).size>1,Q=z&&G&&"grid"===y;(0,o.useEffect)(()=>{function e(e){!z||!G||!e.altKey||e.ctrlKey||e.metaKey||"KeyG"!==e.code||e.repeat||e.isComposing||e.target instanceof HTMLElement&&null!=e.target.closest("input, textarea, select, [role='textbox'], [contenteditable]")&&!(e.target instanceof HTMLInputElement&&"typing-input"===e.target.dataset.testid)||(e.preventDefault(),e.stopPropagation(),g(e=>"grid"===e?"paragraph":"grid"))}return window.addEventListener("keydown",e,!0),()=>{window.removeEventListener("keydown",e,!0)}},[G,z]);let U=(0,o.useMemo)(()=>{var t;let r;return Q?(t=e.nodes,r=[],t.forEach(e=>{"paragraph"!==e.type?r.push(e):e.nodes.forEach(t=>{let n=r.at(-1);if(n?.type==="paragraph"&&n.nodes.at(-1)?.verse.value===t.verse.value){n.nodes.push(t),n.text+=t.text;return}let s={...e,text:t.text,nodes:[t]};r.push(s)})}),r):e.nodes},[Q,e.nodes]),X=(0,o.useMemo)(()=>{if(null!=d.focusVerse)return H.find(e=>e.verse.verse.toString()===d.focusVerse)?.verse.value},[H,d.focusVerse]),Z="lesson"===R?e8({passage:e,typedVerses:d.typingSession?.typedVerses}):X??(d.isTypingDisabled?"":d.autofocus?e0(e,q):""),Y=(0,o.useMemo)(()=>{for(let e of[...H.filter(e=>e.verse.value===Z),...H.filter(e=>e.verse.value!==Z)]){let t=b[e.verse.text+e.metadata.offset],r=null==t?null:function(e){let t=e.lineRects.filter(e=>e.width>1&&e.height>1);if(0===t.length)return e.bounds;let r=Math.min(...t.map(e=>e.left)),n=Math.min(...t.map(e=>e.top));return new DOMRect(r,n,Math.max(...t.map(e=>e.right))-r,Math.max(...t.map(e=>e.bottom))-n)}(t);if(null!=r&&!(r.bottom<=0)&&!(r.top>=window.innerHeight))return{x:r.left+r.width/2,y:r.top+r.height/2,right:r.right}}return null},[Z,H,b]),J=d.demoOptions?.inactivityCue,ee=null==Y?void 0:{x:(J?.targetAnchor==="right-edge"?Y.right:Y.x)+(J?.targetOffset?.x??0),y:Y.y+(J?.targetOffset?.y??0)},et=(0,o.useMemo)(()=>{if("assessment"!==R||null==E)return;let e=new Set(E.map(e=>`${e.translation}:${e.book}:${e.chapter}:${e.verse}`));return H.filter(t=>e.has(`${t.verse.translation}:${t.verse.book}:${t.verse.chapter}:${t.verse.verse}`)).length},[R,H,E]);(0,o.useEffect)(()=>{null!=et&&v?.(et)},[et,v]);let er=(0,o.useCallback)(e=>{var t;let r,n;if(null!=I&&e.clientX>=I.left&&e.clientX<=I.right&&e.clientY>=I.top&&e.clientY<=I.bottom){let e=p.get(t0),t=H.find(t=>t.verse.value===e);p.set(t1,null==t?null:t.verse.text+t.metadata.offset);return}p.set(t1,(t={x:e.clientX,y:e.clientY},r=null,n=1/0,Object.entries(b).forEach(([e,s])=>{let a=s.lineRects.length>0?s.lineRects:s.bounds?[s.bounds]:[];if(0===a.length)return;let l=Math.min(...a.map(e=>(function(e,t){if(e.x>=t.left&&e.x<=t.right&&e.y>=t.top&&e.y<=t.bottom)return 0;let r=e.x<t.left?t.left-e.x:e.x>t.right?e.x-t.right:0,n=e.y<t.top?t.top-e.y:e.y>t.bottom?e.y-t.bottom:0;return Math.sqrt(r*r+n*n)})(t,e)));l<n&&(n=l,r=e)}),r))},[I,H,p,b]),en=(0,o.useCallback)(()=>{p.set(t1,null)},[p]);return(0,t.jsx)(s.Provider,{store:p,children:(0,t.jsx)(eF.Provider,{value:d.demoOptions??null,children:(0,t.jsxs)(t8,{initialValues:[[t0,Z],[tZ,m],[tX,(0,ek.getPosition)(m)],[t2,d.autofocus],[t3,c]],children:[(0,t.jsx)(t6,{disablePassReset:null!=d.onLessonPassageComplete,passage:e,history:q}),"lesson"===R?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(t5,{passage:e,typedVerses:E}
2),(0,t.jsx)(t4,{onTypingProgress:d.onTypingProgress,passage:e,typedVerses:E})]}):null,d.beforePassage,(0,t.jsxs)("div",{ref:w,id:c,"data-testid":"passage-root","data-inactivity-cue-passage":!0,className:(0,u.cn)(tU,Q&&"left-1/2 w-[calc(100vw-2rem)] max-w-6xl -translate-x-1/2",null!=d.highlightSelection&&"highlight-selection-enabled"),onPaste:e=>e.preventDefault(),onBlur:e=>{if(!d.onFocusLeave)return;let t=e.currentTarget;queueMicrotask(()=>{t.isConnected&&!t.contains(document.activeElement)&&d.onFocusLeave?.()})},onPointerMove:er,onPointerLeave:en,onPointerDownCapture:e=>{f(!0),e.target instanceof Element&&null!=e.target.closest("[data-verse-selection-overlay]")||p.set(t1,null)},onKeyDownCapture:()=>{f(!0)},children:[(0,t.jsxs)(eh.Provider,{value:{verseRects:b,rect:k,overlayContainerRef:w,firstLetterCurrentWordRect:I,updateFirstLetterCurrentWordRect:A,updateVerseRect:M},children:[(0,t.jsx)(e_,{passage:e,passageRef:w,highlights:d.highlights??[],selectionOptions:d.highlightSelection,onSelect:d.onHighlightSelect,onActivate:d.onHighlightActivate,activatableRenderKeys:d.activatableHighlightKeys}),(0,t.jsx)("div",{"data-testid":Q?"first-letter-recall-grid":void 0,className:(0,u.cn)(Q?"not-prose grid grid-cols-1 items-start gap-x-8 gap-y-6 text-lg leading-7 sm:grid-cols-2 lg:grid-cols-5":"contents"),children:U.map((r,n)=>{switch(r.type){case"paragraph":return(0,t.jsx)(t9,{node:r,passage:e,typingSession:V.data,typedVerses:P,history:q,classroomAssignmentId:d.classroomAssignmentId,classroomCourseId:d.classroomCourseId,assessmentProgressId:d.assessmentProgressId,lessonStepId:d.lessonStepId,dailyChallengeId:d.dailyChallengeId,disableAutoScroll:d.disableAutoScroll,onAssessmentPassageComplete:d.onAssessmentPassageComplete,onAssessmentComplete:d.onAssessmentComplete,onDailyVerseComplete:d.onDailyVerseComplete,onLessonPassageComplete:d.onLessonPassageComplete,onTypingInput:d.onTypingInput,onVerseProgress:d.onVerseProgress,onPassageComplete:d.onPassageComplete,actionPassageData:_,historyType:R,historyQueryKey:F,typingSessionQueryKey:j,isTypingDisabled:d.isTypingDisabled,isPaused:d.isPaused,pauseWhileSubmittingVerse:d.pauseWhileSubmittingVerse,isVerseSelectionDisabled:d.isVerseSelectionDisabled,isFirstLetterRecallGrid:Q,isFirstRenderedPassageBlock:n===x},n);case"passageReference":if(d.hidePassageReferenceHeading)return null;return(0,t.jsx)(B,{className:(0,u.cn)("typo:prose-h2 text-ink-800 dark:text-ink-100 mt-2 mb-4 text-2xl",Q&&"col-span-full"),children:null==d.passageHeadingHref?r.text:(0,t.jsx)(i.default,{href:d.passageHeadingHref,className:"text-ink-800 dark:text-ink-100 relative hover:underline",children:r.text})},n);case"h2":return(0,t.jsx)("h2",{className:(0,u.cn)("typo:prose-h2 text-ink-800 dark:text-ink-100 mt-2 mb-4 text-2xl",Q&&"col-span-full"),children:r.text},n);case"h3":return(0,t.jsx)("h3",{className:(0,u.cn)("typo:prose-h3 text-ink-800 dark:text-ink-100 mt-0 text-xl font-semibold tracking-wide",Q&&"col-span-full"),children:r.text},n);case"h4":return(0,t.jsx)("h4",{className:(0,u.cn)("typo:prose-h4 text-ink-800 dark:text-ink-100 text-lg font-medium tracking-wide",Q&&"col-span-full"),children:r.text},n)}})}),Q?(0,t.jsx)(ej,{passage:e}):null,(0,t.jsx)(tq,{orderedVerses:H,passageRect:k,typedVerses:E,verseRects:b})]}),d.isTypingDisabled?null:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(eu,{passageId:c,height:d.demoOptions?.cursorHeight,forceVisible:d.demoOptions?.active===!0&&!0!==d.demoOptions.focusInputOnMount}),(null==d.demoOptions||null!=J)&&!1!==d.showInactivityCue?(0,t.jsx)(tQ,{active:null!=Y&&(J?.active??!h),label:J?.label??"Click a verse and start typing.",labelPlacement:J?.labelPlacement,placementSeed:c,containerRef:w,anchor:J?.targetAnchor==="container"?"container":"target",targetPosition:J?.targetAnchor==="container"?void 0:ee,delayMs:null==J?void 0:0,animate:J?.animate??null==J,persistSeen:null==J,singletonSelector:null==J?"[data-inactivity-cue-passage]":void 0}):null]})]}),d.children]})})})}},747422,e=>{e.v({cue:"inactivity-cue-module__gACGsW__cue","cue-icon-wiggle":"inactivity-cue-module__gACGsW__cue-icon-wiggle","cue-label-enter":"inactivity-cue-module__gACGsW__cue-label-enter","cue-pane-enter"
2:"inactivity-cue-module__gACGsW__cue-pane-enter",cursorIcon:"inactivity-cue-module__gACGsW__cursorIcon",hand:"inactivity-cue-module__gACGsW__hand","hand-enter-and-tap":"inactivity-cue-module__gACGsW__hand-enter-and-tap",handGlyph:"inactivity-cue-module__gACGsW__handGlyph",label:"inactivity-cue-module__gACGsW__label",labelRight:"inactivity-cue-module__gACGsW__labelRight",lower:"inactivity-cue-module__gACGsW__lower",middle:"inactivity-cue-module__gACGsW__middle",paneTopRight:"inactivity-cue-module__gACGsW__paneTopRight",static:"inactivity-cue-module__gACGsW__static",upper:"inactivity-cue-module__gACGsW__upper"})}]); 3 4//# debugId=2a85cced-22c9-7a2c-fb41-7ff4c32dd462
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.