PageSourceSearch

https://norwegian.app/_next/static/chunks/ccb6fd7cfb4bc922.js?dpl=dpl_3B3aWEsJmJhFhkNobzfs6DToPDbK

js norwegian.app collected 2026-09-24 13:54:55 UTC 155,111 bytes, 1 lines download raw bytes

1(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,184784,e=>{e.v({artwork:"word-collection-module__9CegQa__artwork",filterTabs:"word-collection-module__9CegQa__filterTabs",filters:"word-collection-module__9CegQa__filters",hiddenArtwork:"word-collection-module__9CegQa__hiddenArtwork",hiddenLabel:"word-collection-module__9CegQa__hiddenLabel",lockedWord:"word-collection-module__9CegQa__lockedWord",lockedWords:"word-collection-module__9CegQa__lockedWords",packBadge:"word-collection-module__9CegQa__packBadge",packLock:"word-collection-module__9CegQa__packLock",packTeaser:"word-collection-module__9CegQa__packTeaser",panel:"word-collection-module__9CegQa__panel",search:"word-collection-module__9CegQa__search",word:"word-collection-module__9CegQa__word",words:"word-collection-module__9CegQa__words"})},901297,e=>{e.v({card:"purchase-artwork-module__Nla0Kq__card",magnifier:"purchase-artwork-module__Nla0Kq__magnifier",scene:"purchase-artwork-module__Nla0Kq__scene",sun:"purchase-artwork-module__Nla0Kq__sun",tree:"purchase-artwork-module__Nla0Kq__tree"})},444445,e=>{e.v({achievementDetails:"achievements-module__YvlbLG__achievementDetails",actions:"achievements-module__YvlbLG__actions",artworkButton:"achievements-module__YvlbLG__artworkButton",artworkStatus:"achievements-module__YvlbLG__artworkStatus",challengeHeader:"achievements-module__YvlbLG__challengeHeader",close:"achievements-module__YvlbLG__close",content:"achievements-module__YvlbLG__content",count:"achievements-module__YvlbLG__count",description:"achievements-module__YvlbLG__description",dialog:"achievements-module__YvlbLG__dialog",english:"achievements-module__YvlbLG__english",expandIcon:"achievements-module__YvlbLG__expandIcon",expandedContent:"achievements-module__YvlbLG__expandedContent",foundMark:"achievements-module__YvlbLG__foundMark",header:"achievements-module__YvlbLG__header",headerTrophy:"achievements-module__YvlbLG__headerTrophy",headingRow:"achievements-module__YvlbLG__headingRow",introduction:"achievements-module__YvlbLG__introduction",lockedPicture:"achievements-module__YvlbLG__lockedPicture",ok:"achievements-module__YvlbLG__ok",picture:"achievements-module__YvlbLG__picture",progress:"achievements-module__YvlbLG__progress",srOnly:"achievements-module__YvlbLG__srOnly",summary:"achievements-module__YvlbLG__summary",target:"achievements-module__YvlbLG__target",targetContent:"achievements-module__YvlbLG__targetContent",targets:"achievements-module__YvlbLG__targets",translation:"achievements-module__YvlbLG__translation",translationLabel:"achievements-module__YvlbLG__translationLabel",wordHeading:"achievements-module__YvlbLG__wordHeading"})},265934,e=>{e.v({account:"progress-module__ZnX1QG__account",benefit:"progress-module__ZnX1QG__benefit",close:"progress-module__ZnX1QG__close",demoAllowance:"progress-module__ZnX1QG__demoAllowance",details:"progress-module__ZnX1QG__details",dialog:"progress-module__ZnX1QG__dialog",identity:"progress-module__ZnX1QG__identity",noSubscription:"progress-module__ZnX1QG__noSubscription",primary:"progress-module__ZnX1QG__primary","purchase-spin":"progress-module__ZnX1QG__purchase-spin",secondary:"progress-module__ZnX1QG__secondary",signIn:"progress-module__ZnX1QG__signIn",signInHint:"progress-module__ZnX1QG__signInHint",spinner:"progress-module__ZnX1QG__spinner",status:"progress-module__ZnX1QG__status",upgradePrice:"progress-module__ZnX1QG__upgradePrice"})},868278,e=>{e.v({area:"collection-scroll-module__m4UeTG__area",rail:"collection-scroll-module__m4UeTG__rail",thumb:"collection-scroll-module__m4UeTG__thumb",track:"collection-scroll-module__m4UeTG__track",viewport:"collection-scroll-module__m4UeTG__viewport"})},163901,e=>{e.v({artwork:"word-detail-module__eDs_4W__artwork",artworkAction:"word-detail-module__eDs_4W__artworkAction",close:"word-detail-module__eDs_4W__close",content:"word-detail-module__eDs_4W__content",examples:"word-detail-module__eDs_4W__examples",favorite:"word-detail-module__eDs_4W__favorite",footer:"word-detail-module__eDs_4W__footer",form:"word-detail-module__eDs_4W__form",formLabel:"word-detail-module__eDs_4W__formLabel",grammar:"word-detail-module__eDs_4W__grammar",hero:"word-detail-module__eDs_4W__hero",identity:"word-detail-module__eDs_4W__identity",meaning:"word-detail-module__eDs_4W__meaning",panel:"word-detail-module__eDs_4W__panel",recipe:"word-detail-module__eDs_4W__recipe",sentence:"word-detail-module__eDs_4W__sentence",sentenceCopy:"word-detail-module__eDs_4W__sentenceCopy",sentences:"word-detail-module__eDs_4W__sentences",speak:"word-detail-module__eDs_4W__speak",status:"word-detail-module__eDs_4W__status",to:"word-detail-module__eDs_4W__to",translation:"word-detail-module__eDs_4W__translation"})},655041,e=>{e.v({actions:"player-feedback-module__p8N27q__actions",categories:"player-feedback-module__p8N27q__categories",category:"player-feedback-module__p8N27q__category",categoryIcon:"player-feedback-module__p8N27q__categoryIcon",close:"player-feedback-module__p8N27q__close",combination:"player-feedback-module__p8N27q__combination",dialog:"player-feedback-module__p8N27q__dialog",doneActions:"player-feedback-module__p8N27q__doneActions",error:"player-feedback-module__p8N27q__error",feedbackArtwork:"player-feedback-module__p8N27q__feedbackArtwork",fields:"player-feedback-module__p8N27q__fields",fixContent:"player-feedback-module__p8N27q__fixContent",footer:"player-feedback-module__p8N27q__footer",generalHeader:"player-feedback-module__p8N27q__generalHeader",header:"player-feedback-module__p8N27q__header",headerIcon:"player-feedback-module__p8N27q__headerIcon",helpFix:"player-feedback-module__p8N27q__helpFix",hint:"player-feedback-module__p8N27q__hint",optional:"player-feedback-module__p8N27q__optional",playerFeedbackSpin:"player-feedback-module__p8N27q__playerFeedbackSpin",preferenceS
1aved:"player-feedback-module__p8N27q__preferenceSaved",primary:"player-feedback-module__p8N27q__primary",reportFields:"player-feedback-module__p8N27q__reportFields",reportTrigger:"player-feedback-module__p8N27q__reportTrigger",saved:"player-feedback-module__p8N27q__saved",secondary:"player-feedback-module__p8N27q__secondary",selectWrap:"player-feedback-module__p8N27q__selectWrap",selectedMark:"player-feedback-module__p8N27q__selectedMark",spin:"player-feedback-module__p8N27q__spin",successIcon:"player-feedback-module__p8N27q__successIcon",wordArtwork:"player-feedback-module__p8N27q__wordArtwork",wordContext:"player-feedback-module__p8N27q__wordContext"})},658514,e=>{e.v({actions:"collection-dialog-module__vPC1Wq__actions",combinations:"collection-dialog-module__vPC1Wq__combinations",content:"collection-dialog-module__vPC1Wq__content",dialog:"collection-dialog-module__vPC1Wq__dialog",empty:"collection-dialog-module__vPC1Wq__empty",errorSymbol:"collection-dialog-module__vPC1Wq__errorSymbol",header:"collection-dialog-module__vPC1Wq__header",ingredients:"collection-dialog-module__vPC1Wq__ingredients",noResultSymbol:"collection-dialog-module__vPC1Wq__noResultSymbol",ok:"collection-dialog-module__vPC1Wq__ok",outcome:"collection-dialog-module__vPC1Wq__outcome",report:"collection-dialog-module__vPC1Wq__report",result:"collection-dialog-module__vPC1Wq__result",successSymbol:"collection-dialog-module__vPC1Wq__successSymbol"})},979617,e=>{e.v({actions:"settings-module__rWaOBG__actions",articleTiles:"settings-module__rWaOBG__articleTiles",articles:"settings-module__rWaOBG__articles",card:"settings-module__rWaOBG__card",content:"settings-module__rWaOBG__content",copy:"settings-module__rWaOBG__copy",dialog:"settings-module__rWaOBG__dialog",feedbackArtwork:"settings-module__rWaOBG__feedbackArtwork",guide:"settings-module__rWaOBG__guide",guideScene:"settings-module__rWaOBG__guideScene",language:"settings-module__rWaOBG__language",nounScene:"settings-module__rWaOBG__nounScene",ok:"settings-module__rWaOBG__ok",settingArtwork:"settings-module__rWaOBG__settingArtwork",sound:"settings-module__rWaOBG__sound",speech:"settings-module__rWaOBG__speech",toggle:"settings-module__rWaOBG__toggle",visual:"settings-module__rWaOBG__visual"})},83956,e=>{e.v({card:"menu-scene-module__dxeGlW__card",discover:"menu-scene-module__dxeGlW__discover",float:"menu-scene-module__dxeGlW__float",gather:"menu-scene-module__dxeGlW__gather",hand:"menu-scene-module__dxeGlW__hand",idle:"menu-scene-module__dxeGlW__idle",landscape:"menu-scene-module__dxeGlW__landscape",poof:"menu-scene-module__dxeGlW__poof",receive:"menu-scene-module__dxeGlW__receive",recipe:"menu-scene-module__dxeGlW__recipe",result:"menu-scene-module__dxeGlW__result",scene:"menu-scene-module__dxeGlW__scene",slot:"menu-scene-module__dxeGlW__slot",source:"menu-scene-module__dxeGlW__source",target:"menu-scene-module__dxeGlW__target"})},493638,e=>{e.v({background:"menu-background-module__ENDR2W__background",desktop:"menu-background-module__ENDR2W__desktop",mobile:"menu-background-module__ENDR2W__mobile"})},585030,e=>{e.v({colophon:"game-credits-module__LaVzdq__colophon",copy:"game-credits-module__LaVzdq__copy",credits:"game-credits-module__LaVzdq__credits",frame:"game-credits-module__LaVzdq__frame",frameArt:"game-credits-module__LaVzdq__frameArt",insert:"game-credits-module__LaVzdq__insert",introduction:"game-credits-module__LaVzdq__introduction",keepsake:"game-credits-module__LaVzdq__keepsake",opening:"game-credits-module__LaVzdq__opening",portrait:"game-credits-module__LaVzdq__portrait"})},329788,e=>{e.v({count:"board-progress-module__ZA_ldW__count",panel:"board-progress-module__ZA_ldW__panel",root:"board-progress-module__ZA_ldW__root",track:"board-progress-module__ZA_ldW__track",trigger:"board-progress-module__ZA_ldW__trigger",unlock:"board-progress-module__ZA_ldW__unlock"})},814389,e=>{"use strict";var t=e.i(843476),a=e.i(418723),r=e.i(271645),n=e.i(215531),l=e.i(319542),s=e.i(902663);e.i(250711);var i=e.i(781958),o=e.i(982045),d=e.i(883394),c=e.i(416908),u=e.i(882727),h=e.i(485578);let f="ordlek";function m({leaving:e=!1,label:a,language:r="en"}){return(0,t.jsxs)("div",{className:h.default.opening,"data-leaving":e,"data-game-opening":!0,role:"status","aria-label":a??f,lang:r,children:[(0,t.jsxs)("div",{className:h.default.scene,"aria-hidden":"true",children:[(0,t.jsxs)("div",{className:h.default.tiles,children:[(0,t.jsx)("span",{className:h.default.word,children:f.slice(0,3)}),(0,t.jsxs)("span",{className:h.default.play,children:[f.slice(3),(0,t.jsxs)("svg",{className:h.default.sparkle,viewBox:"0 0 32 32",fill:"none",children:[(0,t.jsx)("path",{d:"m18 3 3.2 9.8L31 16l-9.8 3.2L18 29l-3.2-9.8L5 16l9.8-3.2Z"}),(0,t.jsx)("path",{d:"M5 2v6M2 5h6"})]})]})]}),(0,t.jsxs)("div",{className:h.default.ripples,children:[(0,t.jsx)("i",{}),(0,t.jsx)("i",{}),(0,t.jsx)("i",{})]})]}),(0,t.jsxs)("svg",{className:h.default.fjord,viewBox:"0 0 1440 320",preserveAspectRatio:"none","aria-hidden":"true",children:[(0,t.jsx)("path",{fill:"#dfe9df",d:"M0 185 190 45 360 195 510 120 680 255H0Z"}),(0,t.jsx)("path",{fill:"#d9e6df",d:"m1440 120-150-95-210 200-120-80-180 130h660Z"}),(0,t.jsx)("path",{fill:"#e5eee8",d:"M0 233q350-30 710 18t730-24v93H0Z"})]})]})}var p=e.i(446975),g=e.i(885096),_=e.i(53182),x=e.i(803318),y=e.i(25379),k=e.i(252147),b=e.i(642115);let w={uk:x.default,ja:y.default,pl:k.default,ru:b.default};function v(e){return"string"==typeof e&&!!e.trim()&&!/[{}<>`\p{Cc}]/u.test(e)&&!/(.{2,30})\1{4,}/u.test(e)&&!/(?:自然な(?:標準)?日本語で|簡潔に答えて|翻訳のみを(?:返|出力)|(?:return|output) (?:only )?(?:the )?(?:translation|json)|as an ai)/iu.test(e)}function j(e){return[...new Set([e.example,...e.examples.map(e=>
1e.text)].filter(Boolean))].sort()}function N(e,t){let a=S(e),r={sourceVersion:a,gloss:"",examples:{}};for(let n of[e.translations?.[t],w[t]?.[e.id]])if(n?.sourceVersion===a)for(let t of(v(n.gloss)&&(r.gloss=n.gloss),v(n.definition)&&(r.definition=n.definition),j(e))){let e=n.examples?.[t];v(e)&&(r.examples[t]=e)}return r}function S(e){return JSON.stringify([e.id,e.label.normalize("NFC").toLocaleLowerCase("nb"),e.partOfSpeech,e.definition,j(e)])}function C(e,t,a){if("nb"===t)return null;if("en"!==t){let r=N(e,t),n=void 0===a?r.gloss:r.examples[a];return n?{text:n,locale:t,fallback:!1}:null}let r=void 0===a?e.english:e.examples.find(e=>e.text===a)?.translation||(e.example===a?e.translation:"");return r?.trim()?{text:r,locale:"en",fallback:"en"!==t}:null}async function A(e,t,a,r,n=fetch){let l="/wordgame/api",s=()=>n(l,{method:"POST",headers:(0,g.wordgameHeaders)(),body:JSON.stringify({action:"translate",id:e,locale:t,retry:a}),signal:r}),i=await s(),o=Date.now()+21e4;for(;;){if(!i.ok)throw Error("Translation unavailable");let a=await i.json();if("ready"===a.status)return a;if(["error","unsupported"].includes(a.status)||Date.now()>o)throw Error("Translation unavailable");await new Promise((e,t)=>{if(r.aborted)return void t(r.reason);let a=()=>{clearTimeout(n),t(r.reason)},n=setTimeout(()=>{r.removeEventListener("abort",a),e()},1500);r.addEventListener("abort",a,{once:!0})}),i="missing"===a.status?await s():await n(`${l}?${new URLSearchParams({id:e,translation:t})}`,{cache:"no-store",signal:r})}}var M=e.i(657688),L=e.i(475254);let $=(0,L.default)("gift",[["path",{d:"M12 7v14",key:"1akyts"}],["path",{d:"M20 11v8a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2v-8",key:"1sqzm4"}],["path",{d:"M7.5 7a1 1 0 0 1 0-5A4.8 8 0 0 1 12 7a4.8 8 0 0 1 4.5-5 1 1 0 0 1 0 5",key:"kc0143"}],["rect",{x:"3",y:"7",width:"18",height:"4",rx:"1",key:"1hberx"}]]),O=(0,L.default)("info",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]]);var R=e.i(227516),D=e.i(204997),E=e.i(292270),T=e.i(107233);let I=(0,L.default)("rotate-cw",[["path",{d:"M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8",key:"1p45f6"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}]]);var G=e.i(555436);let q=(0,L.default)("lock-keyhole-open",[["circle",{cx:"12",cy:"16",r:"1",key:"1au0dj"}],["rect",{width:"18",height:"12",x:"3",y:"10",rx:"2",key:"l0tzu3"}],["path",{d:"M7 10V7a5 5 0 0 1 9.33-2.5",key:"car5b7"}]]);var P=e.i(870273),W=e.i(37727),z=e.i(742891),B=e.i(149849),H=e.i(978072);let Y=[{id:"fisk",label:"Fisk",partOfSpeech:"noun",definition:"En fisk: et levende dyr som lever i vann og puster med gjeller."},{id:"fro",label:"Frø",partOfSpeech:"noun",definition:"Et plantefrø som kan spire og utvikle seg til en ny plante."},{id:"hav",label:"Hav",partOfSpeech:"noun",definition:"Hav: et stort sammenhengende område med saltvann."},{id:"hus",label:"Hus",partOfSpeech:"noun",definition:"Et hus: en bygning som mennesker kan bo i."},{id:"ild",label:"Ild",partOfSpeech:"noun",definition:"Ild som brenner med flammer og avgir varme og lys."},{id:"jord",label:"Jord",partOfSpeech:"noun",definition:"Jord som jordsmonn eller løsmateriale der planter kan vokse; ikke planeten Jorden."},{id:"luft",label:"Luft",partOfSpeech:"noun",definition:"Den gassblandingen som omgir oss og som mennesker puster inn."},{id:"menneske",label:"Menneske",partOfSpeech:"noun",definition:"Et menneske: en person, et individ av menneskearten."},{id:"natt",label:"Natt",partOfSpeech:"noun",definition:"Natt: delen av døgnet mellom kveld og morgen, når sola er under horisonten."},{id:"regn",label:"Regn",partOfSpeech:"noun",definition:"Regn: vanndråper som faller fra skyene ned mot bakken."},{id:"sand",label:"Sand",partOfSpeech:"noun",definition:"Sand: løst materiale av svært små steinkorn, slik man finner på en sandstrand."},{id:"sno",label:"Snø",partOfSpeech:"noun",definition:"Snø: nedbør av små iskrystaller og snøflak, også når den ligger på bakken."},{id:"sol",label:"Sol",partOfSpeech:"noun",definition:"Sola: stjernen som gir jorda dagslys og varme."},{id:"stein",label:"Stein",partOfSpeech:"noun",definition:"En stein: et naturlig, hardt stykke bergmateriale."},{id:"tre",label:"Tre",partOfSpeech:"noun",definition:"Et levende tre: en plante med vedaktig stamme, røtter og greiner; ikke treverk som materiale og ikke tallet tre."},{id:"vann",label:"Vann",partOfSpeech:"noun",definition:"Vann som stoff: den vanlige væsken vi drikker, og som finnes i naturen."}];var F=e.i(662827),V=e.i(415302);let X={damp:"Vann i gassform, ofte synlig som en sky av små vanndråper over varmt vann.",sky:"En synlig samling av små vanndråper eller iskrystaller i lufta.",vind:"Luft som beveger seg utendørs.",is:"Vann som har frosset til et fast stoff.",fjell:"Et høyt område av landskapet med berggrunn.",strand:"Området langs kanten av hav, innsjø eller elv.",blad:"En flat plantedel som vanligvis er grønn.",skog:"Et område med mange trær.",blomst:"Den delen av en plante som danner frø, ofte med fargede kronblad.",gress:"Lave planter med smale, grønne blader som ofte dekker bakken.",hage:"Et område ved et hus der man dyrker planter eller oppholder seg ute.",regnbue:"En bue av farger på himmelen når sollys treffer vanndråper.",gjorme:"En bløt blanding av jord og vann.",leire:"Finkornet jordmateriale som er formbart når det er vått.",glass:"Et hardt, vanligvis gjennomsiktig materiale brukt blant annet i vinduer; ikke et drikkekar.",vindu:"En åpning med glass i en vegg som slipper inn lys.",dor:"En bevegelig plate som åpner og lukker inngangen til et rom eller en bygning.",bat:"Et mindre fartøy som flyter og brukes til ferdsel på vann.",snomann:"En menneskelignende figur laget av snø.",bal:"Ild som brenner i en samlet haug med brensel utendørs.",aske:"Pulveret som blir igjen etter at noe har brent.",royk:"Gasser og små partikler som stiger opp når noe brenner.",elv:"Et større naturlig vannløp som renner gjennom landskapet.",innsjo:"En større samling av vann omgitt av land.",oy:"Et landområde omgitt av vann på alle sider.",fjord:"En lang, smal havarm som går inn i landet.",eple:"En rund frukt som vokser på epletrær.",juice:"Drikke laget av saft fra frukt eller grønnsaker.",mat:"Det mennesker eller dyr spiser for å få næring.",fisker:"En person som fanger fisk.",landsby:"Et lite tettsted med hus der mennesker bor.",by:"Et større tettsted med mange bygninger og innbyggere.",stjerne:"Et himmellegeme som sender ut sitt eget lys.",nordlys:"Fargede lys som kan sees på himmelen i nordlige områder."},Z=Object.fromEntries(z.WORDS.map(e=>
1{let t=Y.find(t=>t.id===e.id);return[e.id,{...e,definition:t?.definition??X[e.id],partOfSpeech:"noun",learningStatus:"ready",noun:B.NOUN_DETAILS[e.id],examples:H.WORD_EXAMPLES[e.id]}]})),U={};for(let e of F.default){let t=e.result,a=null;if(t){let e=Object.values(Z).find(e=>(0,V.normalize)(e.label)===(0,V.normalize)(t.label)&&e.partOfSpeech===t.partOfSpeech);a=e?.id??`seed-${(0,V.normalize)(t.label).replaceAll(" ","-")}-${t.partOfSpeech}`,e||(Z[a]={id:a,label:t.label,definition:t.definition,partOfSpeech:t.partOfSpeech,emoji:"",english:"",example:"",translation:"",examples:[],noun:null,learningStatus:"pending"})}U[(0,V.pairKey)(...e.ingredients)]={status:e.decision,resultId:a}}Object.entries(U).flatMap(([e,t])=>t.resultId?[[...JSON.parse(e),t.resultId]]:[]);var K=e.i(41361);class Q{context=null;muted=!1;unlock(){try{this.context??=new AudioContext,"suspended"===this.context.state&&this.context.resume().catch(()=>{})}catch{}}async click(){if(!this.muted){this.unlock();try{this.context?.state==="suspended"&&await this.context.resume(),this.play("click")}catch{}}}tone(e,t,a,r,n){if(this.muted||!this.context||"running"!==this.context.state)return;let l=this.context,s=l.currentTime+t,i=l.createOscillator(),o=l.createGain();i.type="sine",i.frequency.setValueAtTime(e,s),n&&i.frequency.exponentialRampToValueAtTime(n,s+a),o.gain.setValueAtTime(0,s),o.gain.linearRampToValueAtTime(r,s+.008),o.gain.exponentialRampToValueAtTime(.001,s+a),i.connect(o),o.connect(l.destination),i.start(s),i.stop(s+a+.02),i.onended=()=>{i.disconnect(),o.disconnect()}}play(e){switch(e){case"click":this.tone(680,0,.045,.035,420);break;case"lift":this.tone(460,0,.085,.035,740);break;case"target":this.tone(880,0,.065,.018);break;case"drop":this.tone(260,0,.12,.045,150);break;case"merge":this.tone(240,0,.38,.05,720),this.tone(360,.06,.32,.025,1080);break;case"discover":[523.25,659.25,783.99,1046.5].forEach((e,t)=>this.tone(e,.065*t,.48,.04));break;case"known":this.tone(659,0,.18,.035),this.tone(784,.07,.25,.025);break;case"miss":this.tone(330,0,.12,.028,280),this.tone(260,.09,.15,.02)}}dispose(){this.context?.close().catch(()=>{}),this.context=null}}var J=e.i(65285),ee=e.i(795883);function et(e){return(0,J.isCorrectionUrl)(e)||/^\/audio\/ordlek\/[a-f0-9]{24}\.mp3$/.test(e)||/^\/wordgame\/api\?audio=[a-f0-9]{24}-[a-f0-9-]{36}\.wav$/.test(e)}class ea{corrections=[];setCorrections(e){this.corrections=e}current=null;sequence=0;request=null;dynamicClips=new Map;disposed=!1;manifest=null;loading=null;onState;constructor(){this.loadManifest()}loadManifest(){return this.loading||(this.loading=fetch(ee.ORDLEK_SPEECH_MANIFEST,{cache:"no-cache"}).then(async e=>{if(!e.ok)return null;let t=await e.json();return t.model===ee.ORDLEK_TTS_MODEL&&t.voice===ee.ORDLEK_TTS_VOICE&&t.version===ee.ORDLEK_TTS_VERSION&&t.clips&&"object"==typeof t.clips?(this.manifest=t,t):null}).catch(()=>null).finally(()=>{this.loading=null})),this.loading}stop(){this.sequence++;let e=this.onState;this.onState=void 0,e?.("idle"),this.request?.abort(),this.request=null,this.current&&(this.current.pause(),this.current.removeAttribute("src"),this.current.load(),this.current=null)}async play(e,t,r){this.stop();let n=crypto.randomUUID();if((0,a.trackOrdlek)(r?.automatic?"audio_requested_automatically":"pronunciation_clicked",{playbackId:n,wordId:t??"",automatic:r?.automatic??!1}),this.disposed)return"cancelled";let l=this.sequence;this.onState=r?.onState;let s=e=>{l!==this.sequence||this.disposed||this.onState?.(e)},i=!1,o=()=>(i||(i=!0,(0,a.trackOrdlek)("audio_failed",{playbackId:n,wordId:t??"",automatic:r?.automatic??!1})),s("error"),"unavailable");s("loading");let d=this.manifest?.clips[e];d||this.manifest||(d=(await this.loadManifest())?.clips[e]);let c=(0,J.audioCorrectionFor)(this.corrections,t,e),u=c?.replacement.url??d?.url??this.dynamicClips.get(e)?.url;if(!u&&t&&l===this.sequence&&!this.disposed){r?.onLoading?.(),s("generating");let a=new AbortController;this.request=a;try{for(let n=0;n<80;n++){if(l!==this.sequence||this.disposed)return"cancelled";let s=await fetch("/wordgame/api",{method:"POST",headers:(0,g.wordgameHeaders)(),signal:a.signal,body:JSON.stringify({action:"speech",id:t,text:e,retry:0===n&&!r?.automatic})});if(!s.ok)return o();let i=(await s.json()).clip;if(i?.status==="ready"&&"string"==typeof i.url){u=i.url,et(u)&&this.dynamicClips.set(e,{url:u});break}if(i?.status!=="pending")return o();await new Promise(e=>setTimeout(e,1e3))}}catch{return l!==this.sequence||this.disposed?"cancelled":o()}}if(l!==this.sequence||this.disposed)return"cancelled";if(!u||!et(u))return o();let h=new Audio(u);this.current=h,h.onwaiting=()=>s("loading");let f=!1;h.onplaying=()=>{f||(f=!0,(0,a.trackOrdlek)("audio_started",{playbackId:n,wordId:t??"",automatic:r?.automatic??!1,assetVersion:u,source:c?"correction":d?"catalog":"shared_generated"})),s("playing")},h.onended=()=>{(0,a.trackOrdlek)("audio_completed",{playbackId:n,wordId:t??"",automatic:r?.automatic??!1}),s("idle")},h.onerror=()=>{l!==this.sequence||this.disposed||o()};try{if(await h.play(),l!==this.sequence||this.disposed)return h.pause(),"cancelled";return s("playing"),"playing"}catch{return l!==this.sequence||this.disposed?"cancelled":o()}}dispose(){this.disposed=!0,this.stop()}}var er=e.i(576640),en=e.i(184784);function el(e,t){return e.map(e=>({...e,ingredients:e.ingredients.map(t),result:e.result?t(e.result):void 0}))}let es=(e,t,a)=>Math.min(Math.max(e,t),Math.max(t,a));function ei(e){try{var t;let a;if(!e||"object"!=typeof e||!e||!Array.isArray(e.discovered)||!Array.isArray(e.favorites)||!Array.isArray(e.tiles))return null;let r={...Z,...K.CATALOG_WORDS};for(let[t,a]of Object.entries(e.words??{}))!K.CATALOG_WORDS[t]&&a&&a.id===t&&"string"==typeof a.label&&"string"==typeof a.definition&&Array.isArray(a.examples)&&(r[t]=a),K.CATALOG_WORDS[t]&&a?.id===t&&a.artwork&&["ready","pending","error"].includes(a.artwork.status)&&(r[t]={...r[t],artwork:a.artwork}),K.CATALOG_WORDS[t]&&a?.id===t&&a.translations&&(r[t]={...r[t],translations:a.translations});let n=[...new Set([...z.STARTER_IDS,...e.discovered.filter(e=>"string"==typeof e&&r[e])])],l=new Set,i=e.tiles.filter(e=>!(!e||"string"!=typeof e.key||l.has(e.key))&&!!n.includes(e.word)&&!!Number.isFinite(e.x)&&!!Number.isFinite(e.y)&&!!Number.isFinite(e.angle)&&(l.add(e.key),!0)).slice(0,80).map(e=>({...e,x:es(e.x,0,.95),y:es(e.y,0,.95),angle:es(e.angle,-4,4)})),o=Object.fromEntries(Object.entries(e.routes??{}).filter(([e,t])=>r[e]&&Array.isArray(t)&&2===t.length&&t.every(e=>"string"==typeof e&&r[e]))),d=(0,K.restoreSuccessfulPairs)(e.successfulPairs,o,r),c=(0,K.earnedPacks)(d,Array.isArray(e.unlockedPacks)?e.unlockedPacks:[]);return{unread:Array.isArray(e.unread)?[...new Set(e.unread.filter(e=>n.includes(e)))]:[],outdated:Array.isArray(e.outdated)?e.outdated.filter(e=>n.includes(e)):[],retiredPairs:Array.isArray(e.retiredPairs)?e.retiredPairs.filter(e=>"string"==typeof e):[],language:(0,s.restoreGameLocale)(e.language),norwegianOnly:!0===e.norweg
1ianOnly,guideDismissed:!0===e.guideDismissed,guideCompleted:!0===e.guideCompleted,history:(t=e.history,a={...K.CATALOG_RECIPES,...Object.fromEntries(Object.entries(o).map(([e,t])=>[(0,V.pairKey)(...t),e]))},(Array.isArray(t)&&t.length?t:d.map(e=>({ingredients:JSON.parse(e),result:a[e]}))).filter(e=>e&&Array.isArray(e.ingredients)&&2===e.ingredients.length&&e.ingredients.every(e=>"string"==typeof e&&r[e])&&(void 0===e.result||"string"==typeof e.result&&r[e.result])).slice(-50).map((e,t)=>({...e,id:e.id??`legacy-${t}-${(0,V.pairKey)(...e.ingredients)}-${e.result??"unknown"}`,at:e.at??t,ingredients:e.ingredients,result:e.result}))),words:r,routes:o,discovered:(0,K.addPackWords)(n,c),successfulPairs:d,unlockedPacks:c,favorites:e.favorites.filter(e=>n.includes(e)),tiles:i,sound:!1!==e.sound,speech:!1!==e.speech,showArticles:!1!==e.showArticles}}catch{return null}}function eo(e,t){let a=[],r=(e,r,n,l=t)=>a.push({kind:e,key:r,data:JSON.stringify(n),updatedAt:l});for(let[a,n]of e.discovered.entries())e.words[n]&&r("word",n,e.words[n],t+a/1e3);for(let t of e.successfulPairs)r("pair",t,!0);for(let[t,a]of Object.entries(e.routes))r("route",t,a);for(let t of e.unlockedPacks)r("pack",String(t),!0);for(let t of e.discovered)r("favorite",t,e.favorites.includes(t)),r("unread",t,e.unread?.includes(t)??!1);for(let t of e.history)t.id&&r("history",t.id,t,t.at??0);for(let t of["sound","speech","showArticles","language","norwegianOnly","guideDismissed","guideCompleted"])void 0!==e[t]&&r("setting",t,e[t]);return r("board","tiles",e.tiles),a}let ed=e=>`${e.kind}:${e.key}`;var ec=e.i(901297);function eu(){return(0,t.jsxs)("div",{className:ec.default.scene,"aria-hidden":"true",children:[(0,t.jsx)("span",{className:`${ec.default.card} ${ec.default.tree}`,children:(0,t.jsx)(M.default,{src:"/images/ordlek/purchase/tree.png",alt:"",width:72,height:72,sizes:"72px",draggable:!1})}),(0,t.jsx)("span",{className:`${ec.default.card} ${ec.default.sun}`,children:(0,t.jsx)(M.default,{src:"/images/ordlek/purchase/sun.png",alt:"",width:72,height:72,sizes:"72px",draggable:!1})}),(0,t.jsx)(M.default,{className:ec.default.magnifier,src:"/images/ordlek/purchase/magnifier.png",alt:"",width:112,height:112,sizes:"112px",draggable:!1})]})}var eh=e.i(972520),ef=e.i(643531),em=e.i(164668),ep=e.i(444445),eg=e.i(265934),e_=e.i(993042);function ex({limit:e,count:n,account:s,accountLabel:i,accountReady:o=!0,accountError:d=!1,continuation:c=null,onConsumeContinuation:f,language:m,onClose:p,onSignIn:g,onSync:_,staged:x=!1,onOpeningReady:y}){let k=(0,r.useRef)(null),b=(0,r.useRef)(!1);(0,r.useEffect)(()=>{x||b.current||(b.current=!0,(0,a.trackOrdlek)("purchase_dialog_viewed",{reason:c??(n>=e?"limit":"upgrade"),successful_pairs:n}))},[x,c,n,e]);let w=(0,l.useGameTranslations)(m),[v,j]=(0,r.useState)(null),[N,S]=(0,r.useState)(null),[C,A]=(0,r.useState)(null),M=(0,r.useRef)({onSync:_,onConsumeContinuation:f}),L=(0,r.useRef)(null);async function $(e){if(!s)return void g(e);L.current?.abort();let t=new AbortController;L.current=t,S(e),A(null);try{let a=await (0,u.resumePurchase)({account:s,continuation:e,signal:AbortSignal.any([t.signal,AbortSignal.timeout(3e4)]),sync:_,consume:()=>f?.()});if(t.signal.aborted)return;if(j(a),a.fullGame)A("purchase_unlocked"),await _?.();else{if(a.url)return void window.location.assign(a.url);A("checkout"===e?"purchase_checkout_error":"purchase_not_found")}}catch{if(t.signal.aborted)return;A("checkout"===e?"purchase_checkout_error":"purchase_error")}S(null)}(0,r.useEffect)(()=>{M.current={onSync:_,onConsumeContinuation:f}},[_,f]),(0,r.useEffect)(()=>{let e;if(s&&!o)return;let t=new AbortController,a=0;async function r(){try{let n=await (0,u.resumePurchase)({account:s,continuation:c,signal:AbortSignal.any([t.signal,AbortSignal.timeout(3e4)]),sync:()=>M.current.onSync?.()??Promise.resolve(),consume:()=>M.current.onConsumeContinuation?.()});if(t.signal.aborted)return;if(j(n),n.fullGame)A("purchase_unlocked"),M.current.onConsumeContinuation?.(),await M.current.onSync?.();else{if(n.url)return void window.location.assign(n.url);"success"===c&&s?(A(a<12?"purchase_waiting":"purchase_delayed"),a++<12&&(e=setTimeout(()=>void r(),5e3))):"restore"===c&&s?A("purchase_not_found"):"checkout"===c&&s&&n.enabled&&A("purchase_checkout_error")}S(null)}catch{t.signal.aborted||(A("checkout"===c?"purchase_checkout_error":"purchase_error"),S(null))}}return S("checkout"===c&&s?"checkout":null),"cancelled"===c&&(A("purchase_cancelled"),M.current.onConsumeContinuation?.()),r(),()=>{t.abort(),clearTimeout(e)}},[s,o,c]);let O=Math.max(0,e-n),R=s&&!o||!v&&!C,D=s&&d&&!o,E="success"===c&&!v?.fullGame;return(0,e_.useOpeningAssets)(k,x,y),(0,r.useLayoutEffect)(()=>
1{if(x)return;let e=k.current,t=document.activeElement;return e.close(),e.showModal(),e.focus({preventScroll:!0}),()=>{L.current?.abort(),e.close(),t instanceof HTMLElement&&t.isConnected&&t.focus({preventScroll:!0})}},[x]),(0,t.jsxs)(t.Fragment,{children:[x&&(0,t.jsx)("div",{className:`${h.default.stagedBackdrop} ${h.default.purchaseBackdrop}`,"aria-hidden":"true"}),(0,t.jsxs)("dialog",{open:x||void 0,ref:k,tabIndex:-1,className:`${ep.default.dialog} ${eg.default.dialog} ${x?h.default.stagedDialog:""}`,"aria-labelledby":"demo-title",lang:m,onCancel:e=>{e.preventDefault(),p()},children:[(0,t.jsx)("button",{type:"button",className:eg.default.close,onClick:p,"aria-label":w("demoDialog_back_to_my_collection"),children:(0,t.jsx)(W.X,{size:20})}),(0,t.jsx)(eu,{}),(0,t.jsx)("h2",{id:"demo-title",children:w(v?.fullGame?"purchase_unlocked_title":s?"purchase_ready_title":"demoDialog_discover_the_full_game")}),s&&(0,t.jsxs)("p",{className:eg.default.identity,children:[(0,t.jsx)(ef.Check,{size:14,"aria-hidden":"true"}),(0,t.jsxs)("span",{children:[w("purchase_signed_in"),i&&(0,t.jsx)("strong",{children:i})]})]}),v?.fullGame?(0,t.jsx)("p",{children:w("purchase_unlocked")}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("p",{className:eg.default.demoAllowance,children:[O>0?w("demo_remaining",{count:O}):w("demoDialog_you_ve_reached_the_end_of_the_demo"),(0,t.jsxs)("span",{children:[Math.min(n,e)," / ",e]})]}),(0,t.jsxs)("div",{className:eg.default.upgradePrice,children:[(0,t.jsx)("strong",{children:new Intl.NumberFormat(m,{style:"currency",currency:"NOK",maximumFractionDigits:0}).format(129)}),(0,t.jsx)("span",{children:w("purchase_once")}),(0,t.jsx)("strong",{className:eg.default.noSubscription,children:w("purchase_no_subscription")})]}),(0,t.jsx)("p",{className:eg.default.benefit,children:w("purchase_short_description")}),R&&!D||N?(0,t.jsxs)("p",{className:eg.default.status,role:"status",children:[(0,t.jsx)(em.LoaderCircle,{size:18,className:eg.default.spinner,"aria-hidden":"true"}),w("checkout"===N||R&&"checkout"===c?"purchase_preparing":N||!s?"purchase_working":"purchase_checking_account")]}):null,D&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("p",{className:eg.default.status,role:"alert",children:w("purchase_account_error")}),(0,t.jsx)("button",{className:eg.default.primary,onClick:()=>void _?.().catch(()=>{}),children:w("ordlek_retry_sync")})]}),C&&(0,t.jsx)("p",{className:eg.default.status,role:"status","aria-live":"polite",children:w(C)}),!E&&(v?.enabled||!v&&C)&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("button",{className:eg.default.primary,disabled:!!N||R,onClick:()=>void $("checkout"),children:[w("checkout"===N?"purchase_preparing":N?"purchase_working":"purchase_buy"),(0,t.jsx)(eh.ArrowRight,{size:18,"aria-hidden":"true"})]}),!s&&(0,t.jsx)("p",{className:eg.default.signInHint,children:w("purchase_sign_in_hint")})]}),!R&&v&&!v.enabled&&(0,t.jsx)("p",{className:eg.default.secondary,children:w("demoDialog_purchases_aren_t_available_yet_you_can_keep_playing")}),v?.sandbox&&v.enabled&&(0,t.jsx)("p",{className:eg.default.secondary,children:w("purchase_sandbox")}),(0,t.jsxs)("details",{className:eg.default.details,children:[(0,t.jsx)("summary",{children:w("purchase_details")}),(0,t.jsx)("p",{children:w("purchase_includes")}),(0,t.jsx)("p",{children:w("purchase_limits")}),(0,t.jsx)("p",{children:w("purchase_refunds")}),(0,t.jsx)("a",{href:"/ordlek/refunds",target:"_blank",rel:"noopener noreferrer",children:w("purchase_refund_policy")})]}),(0,t.jsx)("button",{className:eg.default.signIn,disabled:!!N||R,onClick:()=>void $("restore"),children:w("purchase_restore")})]}),v?.fullGame&&(0,t.jsxs)("button",{className:eg.default.primary,onClick:p,children:[w("purchase_start_playing"),(0,t.jsx)(eh.ArrowRight,{size:18,"aria-hidden":"true"})]})]})]})}var ey=e.i(71287),ek=e.i(405799),eb=e.i(298112);function ew({collection:e,detail:a}){let r=(0,l.useGameTranslations)();return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("aside",{className:`${er.default.sidebar} ${a?er.default.collectionHidden:""}`,"data-guide":"sidebar","aria-label":r("collection_sidebar"),children:e}),a&&(0,t.jsx)("aside",{className:er.default.detailSidebar,"data-guide":"details",children:a})]})}var ev=e.i(868278);function ej({children:e,className:a,labelledBy:n}){let s=(0,l.useGameTranslations)(),i=(0,r.useRef)(null),o=(0,r.useRef)(null),[d,c]=(0,r.useState)({height:0,content:0,top:0}),[u,h]=(0,r.useState)(!1),f=(0,r.useCallback)(()=>{let e=i.current;if(!e)return;let t={height:e.clientHeight,content:e.scrollHeight,top:e.scrollTop};c(e=>e.height===t.height&&e.content===t.content&&e.top===t.top?e:t)},[]);(0,r.useLayoutEffect)(f,[f,e]),(0,r.useLayoutEffect)(()=>{let e=i.current;if(!e)return;let t=new ResizeObserver(f);return t.observe(e),()=>t.disconnect()},[f]);let m=Math.max(0,d.content-d.height),p=m>1,g=Math.min(d.height,Math.max(48,d.height*d.height/Math.max(1,d.content))),_=d.height-g,x=m?Math.min(_,d.top/m*_):0;function y(e,t){let a=e.clientY-e.currentTarget.getBoundingClientRect().top-t;i.current&&(i.current.scrollTop=Math.max(0,Math.min(1,a/Math.max(1,_)))*m),f()}function k(){o.current=null,h(!1)}return(0,t.jsxs)("div",{className:ev.default.area,"data-overflow":p,children:[(0,t.jsx)("div",{ref:i,className:`${a} ${ev.default.viewport}`,id:"ordlek-word-list",role:"tabpanel","aria-labelledby":n,onScroll:f,children:e}),p&&(0,t.jsxs)("div",{className:ev.default.rail,role:"scrollbar",tabIndex:0,"aria-label":s("collection_scroll"),"aria-controls":"ordlek-word-list","aria-orientation":"vertical","aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":Math.round(100*Math.min(1,d.top/m)),"data-dragging":u,onPointerDown:function(e){if(0!==e.button)return;e.preventDefault();let t=e.clientY-e.currentTarget.getBoundingClientRect().top,a=t>=x&&t<=x+g?t-x:g/2;o.current={pointer:e.pointerId,offset:a},e.currentTarget.setPointerCapture(e.pointerId),e.currentTarget.focu
1s({preventScroll:!0}),h(!0),y(e,a)},onPointerMove:e=>{o.current?.pointer===e.pointerId&&y(e,o.current.offset)},onPointerUp:k,onPointerCancel:k,onLostPointerCapture:k,onKeyDown:function(e){let t=i.current;if(!t)return;let a={ArrowDown:t.scrollTop+48,ArrowUp:t.scrollTop-48,PageDown:t.scrollTop+.85*d.height,PageUp:t.scrollTop-.85*d.height,Home:0,End:m};e.key in a&&(e.preventDefault(),t.scrollTop=a[e.key],f())},children:[(0,t.jsx)("span",{className:ev.default.track,"aria-hidden":"true"}),(0,t.jsx)("span",{className:ev.default.thumb,style:{height:g,transform:`translateY(${x}px)`},"aria-hidden":"true",children:(0,t.jsx)("span",{})})]})]})}var eN=e.i(367240),eS=e.i(382373);function eC({text:e,control:a,feedback:n,onSpeak:s,language:i,title:o=!1,quiet:d=!1,children:c,buttonProps:u}){let h=(0,r.useId)(),f=n?.control===a&&n.text===e?n.state:"idle",m="loading"===f||"generating"===f,p="playing"===f,g="error"===f,_=(0,l.useGameTranslations)(i),x="generating"===f?_("studySpeechButton_making_audio"):"loading"===f?_("studySpeechButton_loading_audio"):g?_("studySpeechButton_couldn_t_play_tap_to_retry"):"",y=_(p?"speech_stop_text":g?"speech_retry_text":"word_listen",{text:e}),k=m?em.LoaderCircle:g?eN.RotateCcw:eS.Volume2;return(0,t.jsxs)("span",{className:er.default.studySpeechControl,"data-state":f,"data-quiet":d||void 0,children:[(0,t.jsxs)("button",{...u,type:"button",className:o?`${er.default.titleWord} ${er.default.studyTitle}`:er.default.studyAudio,onClick:()=>{m||s(e,a)},"aria-disabled":m,"aria-label":y,title:y,"aria-describedby":x?h:void 0,children:[c??(0,t.jsx)("span",{lang:"nb",children:e}),(0,t.jsx)(k,{size:o?20:16,className:m?er.default.speechSpinner:void 0,"aria-hidden":"true"})]}),(0,t.jsx)("span",{id:h,className:er.default.studySpeechStatus,role:"status","aria-live":"polite",children:x})]})}function eA({translation:e}){let a=(0,l.useGameTranslations)();return e?.status?(0,t.jsxs)("div",{"data-word-translation":!0,role:"status",children:[(0,t.jsx)("p",{className:er.default.learningStatus,children:a("pending"===e.status?"translation_pending":"translation_error")}),"error"===e.status&&(0,t.jsx)("button",{className:er.default.learningRetry,onClick:e.retry,children:a("translation_retry")})]}):null}function eM({word:e,example:a,definition:r=!1,className:n,inline:s=!1}){let i=(0,l.useGameLocale)(),o=r&&"nb"!==i&&"en"!==i?N(e,i).definition:void 0,d=r?o?{text:o,locale:i}:null:C(e,i,a);return d?(0,t.jsx)(s?"span":"p",{className:n,"data-word-translation":!0,children:(0,t.jsx)("span",{lang:d.locale,children:d.text})}):null}let eL=(0,L.default)("image-plus",[["path",{d:"M16 5h6",key:"1vod17"}],["path",{d:"M19 2v6",key:"4bpg5p"}],["path",{d:"M21 11.5V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h7.5",key:"1ue2ih"}],["path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21",key:"1xmnt7"}],["circle",{cx:"9",cy:"9",r:"2",key:"af1f0g"}]]);var e$=e.i(206904);function eO({word:e,onRetry:a}){let n=(0,l.useGameTranslations)(),[s,i]=(0,r.useState)(null);return((0,r.useEffect)(()=>{if("pending"!==e.learningStatus)return;let t=setTimeout(()=>i(e.id),15e3);return()=>{clearTimeout(t),i(null)}},[e.id,e.learningStatus]),"pending"===e.learningStatus)?(0,t.jsx)("p",{className:er.default.learningStatus,role:"status",children:n(s===e.id?"learning_slow":"learning_pending")}):"error"===e.learningStatus?(0,t.jsxs)("div",{role:"status",children:[(0,t.jsx)("p",{className:er.default.learningStatus,children:n("learning_error")}),(0,t.jsx)("button",{className:er.default.learningRetry,onClick:a,children:n("learning_retry")})]}):e.examples.length?null:(0,t.jsx)("p",{className:er.default.learningStatus,children:n("learning_missing")})}var eR=e.i(163901),eD=e.i(655041);function eE({word:e,example:a,language:r,onReport:n}){let s=(0,l.useGameTranslations)(r)("wordFeedback_report_an_issue");return(0,t.jsxs)("button",{type:"button",className:eD.default.reportTrigger,"aria-label":s,"aria-haspopup":"dialog",onClick:()=>n({word:e,exampleText:a,chooseTarget:!0,context:{target:"image",wordId:e.id}}),children:[(0,t.jsx)(M.default,{src:"/images/ordlek/ui/report-issue-triangle.png",alt:"",width:24,height:24,sizes:"24px",draggable:!1}),(0,t.jsx)("span",{children:s})]})}function eT({onClose:e,speechFeedback:a=null,outdated:n,word:s,translation:i,onReport:o,language:d,title:c,ingredients:u,favorite:h,onFavorite:f,onSpeak:m,onRetry:p,onRetryArtwork:g}){let x=(0,l.useGameTranslations)(),y=[...s.example?[{text:s.example,translation:s.translation}]:[],...s.examples].filter((e,t,a)=>e.text.trim()&&a.findIndex(t=>t.text.trim()===e.text.trim())===t).slice(0,3),k=s.noun,b=(e,r)=>(0,t.jsx)(eC,{text:e,control:r,feedback:a,onSpeak:m,language:d,quiet
1:!0}),w=(0,r.useRef)(null);(0,r.useEffect)(()=>{w.current?.focus({preventScroll:!0})},[]);let v=!z.WORD_BY_ID[s.id]&&(!s.artwork||"error"===s.artwork.status),j=s.artwork?.status==="error"?eN.RotateCcw:eL;return(0,t.jsx)("section",{className:eR.default.panel,onKeyDown:t=>{"Escape"===t.key&&(t.stopPropagation(),e())},id:"ordlek-details","aria-label":x("word_details",{word:(0,_.wordDisplayLabel)(s)}),children:(0,t.jsxs)("div",{className:eR.default.content,children:[(0,t.jsxs)("header",{className:eR.default.hero,children:[(0,t.jsx)("div",{className:eR.default.artwork,children:v?(0,t.jsxs)("button",{type:"button",className:eR.default.artworkAction,onClick:g,children:[(0,t.jsx)(j,{size:24,"aria-hidden":"true"}),(0,t.jsx)("span",{children:x(s.artwork?.status==="error"?"artwork_retry":"artwork_get")})]}):(0,t.jsx)(e$.default,{wordId:s.id,artwork:s.artwork})}),(0,t.jsxs)("div",{className:eR.default.identity,children:[(0,t.jsx)("h2",{children:c}),(0,t.jsx)(eM,{word:s,className:eR.default.translation})]}),(0,t.jsx)("button",{ref:w,type:"button",className:eR.default.close,"aria-label":x("word_close_details"),title:x("word_close_details"),onClick:e,children:(0,t.jsx)(W.X,{size:21,"aria-hidden":"true"})})]}),n&&(0,t.jsxs)("p",{role:"status",children:[(0,t.jsx)("strong",{children:x("recipe_changed")})," — ",x("recipe_changed_help")]}),(0,t.jsxs)("div",{className:eR.default.meaning,children:[(0,t.jsx)("p",{lang:"nb",children:s.definition}),(0,t.jsx)(eM,{word:s,definition:!0}),(0,t.jsx)(eO,{word:s,onRetry:p}),(0,t.jsx)(eA,{translation:i})]}),y.length>0&&(0,t.jsxs)("section",{className:eR.default.examples,"aria-label":x("word_examples"),children:[(0,t.jsx)("h3",{className:eR.default.formLabel,children:x("word_examples")}),(0,t.jsx)("ul",{className:eR.default.sentences,children:y.map((e,r)=>(0,t.jsx)("li",{className:eR.default.sentence,children:(0,t.jsx)(eC,{text:e.text,control:`example-${r}`,feedback:a,onSpeak:m,language:d,quiet:!0,children:(0,t.jsxs)("span",{className:eR.default.sentenceCopy,children:[(0,t.jsx)("span",{lang:"nb",children:e.text}),(0,t.jsx)(eM,{word:s,example:e.text,inline:!0})]})})},e.text))})]}),k&&(0,t.jsxs)("section",{className:eR.default.grammar,"aria-label":x("word_inflection"),children:[(0,t.jsxs)("div",{className:eR.default.form,children:[(0,t.jsx)("span",{className:eR.default.formLabel,children:x("word_singular")}),(0,t.jsxs)("div",{children:[b((0,B.nounPronunciation)(s.label,k),"singular"),(0,t.jsx)("span",{className:eR.default.to,"aria-label":x("word_definite"),children:"→"}),b(k.definite,"definite")]})]}),k.plural&&(0,t.jsxs)("div",{className:eR.default.form,children:[(0,t.jsx)("span",{className:eR.default.formLabel,children:x("word_plural")}),(0,t.jsxs)("div",{children:[b(k.plural[0],"plural"),(0,t.jsx)("span",{className:eR.default.to,"aria-label":x("word_definite"),children:"→"}),b(k.plural[1],"plural-definite")]})]})]}),s.artwork?.status==="pending"&&(0,t.jsx)("p",{className:eR.default.status,role:"status",children:x("artwork_pending")}),(0,t.jsxs)("footer",{className:eR.default.footer,children:[u&&(0,t.jsxs)("section",{className:eR.default.recipe,"aria-label":x("word_recipe"),children:[(0,t.jsx)("span",{className:eR.default.formLabel,children:x("word_recipe")}),(0,t.jsx)("div",{children:u})]}),(0,t.jsxs)("button",{type:"button",className:eR.default.favorite,"aria-label":x(h?"word_favorite_remove":"word_favorite_add",{word:(0,_.wordDisplayLabel)(s)}),title:x(h?"word_favorite_remove":"word_favorite_add",{word:(0,_.wordDisplayLabel)(s)}),"aria-pressed":h,onClick:f,children:[(0,t.jsx)(M.default,{src:`/images/ordlek/ui/favorite-star-${h?"filled":"outline"}.png`,alt:"",width:28,height:28,sizes:"28px",draggable:!1}),(0,t.jsx)("span",{children:x(h?"word_favorite_button_remove":"word_favorite_button_add")})]}),(0,t.jsx)(eE,{word:s,example:y[0]?.text,language:d,onReport:o})]})]})})}var eI=e.i(115057),eG=e.i(283086);function eq({milestone:e,words:a,showArticles:n=!0,onDone:s}){let i=(0,l.useGameTranslations)(),o=(0,r.useRef)(null),d=(0,r.useRef)(null),c=(0,r.useRef)(!1),u=(0,r.useRef)(null),h=(0,r.useRef)(!0);async function f(){if(!c.current){if(c.current=!0,u.current?.cancel(),!matchMedia("(prefers-reduced-motion: reduce)").matches){u.current=o.current.animate([{opacity:1,transform:"none"},{opacity:0,transform:"translateY(-16px) scale(.98)"}],{duration:200,easing:"ease-in",fill:"forwards"});try{await u.current.finished}catch{return}}h.current&&s()}}return(0,r.useLayoutEffect)(()=>{h.current=!0;let e=o.current;return e.showModal(),d.current?.focus({preventScroll:!0}),matchMedia("(prefers-reduced-motion: reduce)").matches||(u.current=e.animate([{opacity:0,transform:"translateY(36px) scale(.96)"},{opacity:1,transform:"none"}],{duration:450,easing:"cubic-bezier(.22,.8,.2,1)"})),()=>{h.current=!1,u.current?.cancel(),e.close()}},[]),(0,t.jsxs)("dialog",{ref:o,className:`${er.default.studyCard} ${er.default.packCard}`,"aria-labelledby":"pack-title","aria-describedby":"pack-description",onCancel:e=>{e.preventDefault(),f()},children:[(0,t.jsxs)("div",{className:`${er.default.studyBody} ${er.default.packBody}`,children:[(0,t.jsxs)("div",{className:er.default.packMedal,"aria-hidden":"true",children:[(0,t.jsx)(eG.Sparkles,{size:24}),(0,t.jsx)("strong",{children:e})]}),(0,t.jsx)("p",{className:er.default.packEyebrow,children:i("pack_title")}),(0,t.jsx)("h2",{id:"pack-title",children:i("pack_milestone",{count:e})}),(0,t.jsx)("p",{id:"pack-description",className:er.default.packDescription,children:i("pack_description",{count:a.length})}),(0,t.jsx)("div",{className:er.default.packWords,children:a.map((e,a)=>(0,t.jsxs)("div",{className:er.default.packWord,style:{animationDelay:`${180+65*a}ms`},children:[(0,t.jsx)(e$.default,{wordId:e.id,artwork:e.artwork}),(0,t.jsx)("strong",{lang:"nb",children:(0,_.wordDisplayLabel)(e,n)}),(0,t.jsx)(eM,{word:e,inline:!0})]},e.id))}),(0,t.jsx)("p",{className:er.default.packPrompt,children:i("pack_prompt")})]}),(0,t.jsx)("footer",{className:`${er.default.studyFooter} ${er.default.packFooter}`,children:(0,t.jsxs)("button",{ref:d,className:er.default.studyOk,onClick:()=>void f(),children:[i("pack_play"),(0,t.jsx)(eI.ArrowUpRight,{size:18,"aria-hidden":"true"})]})})]})}var eP=e.i(664659),eW=e.i(944161),ez=e.i(811144),eB=e.i(351729),eH=e.i(83604);let eY={uk:eW.default,ja:ez.default,pl:eB.default,ru:eH.default};function eF({targets:e,onClose:a,onRequestArtwork:n}){let i=(0,l.useGameLocale)(),o=(0,l.useGameTranslations)(),d=(0,r.useRef)(null),c=(0,r.useRef)(null),u=(0,r.useRef)(!1),h=(0,r.useId)(),f=(0,r.useId)(),m=e.filter(e=>e.found).length,p=e.length;function g(e){if(e.target!==e.currentTarget)return!1;let t=e.currentTarget.getBoundingClientRect();return e.clientX<t.left||e.clientX>
1t.right||e.clientY<t.top||e.clientY>t.bottom}return(0,r.useLayoutEffect)(()=>{let e=d.current,t=document.activeElement instanceof HTMLElement?document.activeElement:null;return e.showModal(),c.current?.focus({preventScroll:!0}),()=>{e.close(),t?.isConnected&&t.focus({preventScroll:!0})}},[]),(0,t.jsxs)("dialog",{ref:d,className:ep.default.dialog,"aria-labelledby":h,"aria-describedby":f,onCancel:e=>{e.preventDefault(),a()},onKeyDown:function(e){if("Tab"!==e.key||e.altKey||e.ctrlKey||e.metaKey)return;let t=Array.from(e.currentTarget.querySelectorAll("button:not(:disabled), summary, a[href]")).filter(e=>e.tabIndex>=0&&e.getClientRects().length>0&&("SUMMARY"===e.tagName||!e.closest("details:not([open])"))),a=t[0],r=t[t.length-1];if(!a||!r)return;let n=document.activeElement;(e.shiftKey&&n===a||!e.shiftKey&&n===r||n===e.currentTarget)&&(e.preventDefault(),(e.shiftKey?r:a).focus())},onPointerDown:e=>{u.current=g(e)},onClick:e=>{u.current&&g(e)&&a(),u.current=!1},children:[(0,t.jsxs)("header",{className:`${ep.default.header} ${ep.default.challengeHeader}`,children:[(0,t.jsxs)("div",{className:ep.default.headingRow,children:[(0,t.jsx)(M.default,{className:ep.default.headerTrophy,src:"/images/ordlek/ui/trophy.png",alt:"",width:36,height:36,sizes:"36px",draggable:!1}),(0,t.jsx)("h2",{id:h,children:o("achievements_title")})]}),(0,t.jsx)("p",{id:f,className:ep.default.introduction,children:o("achievements_intro")}),(0,t.jsx)("progress",{className:ep.default.progress,value:m,max:p||1,"aria-label":o("achievements_progress",{found:m,total:p})})]}),(0,t.jsx)("div",{className:ep.default.content,children:(0,t.jsx)("ul",{className:ep.default.targets,children:e.map(e=>{let a=function(e,t){if("nb"===t)return null;let a=eY[t]?.[e.wordId];return a?.source===e.description?{text:a.text,locale:t,fallback:!1}:{text:e.translation,locale:"en",fallback:"en"!==t}}(e,i),r=!!z.WORD_BY_ID[e.artworkWordId],l=e.artwork?.status==="pending",d=!r&&(!e.artwork?.url||"error"===e.artwork.status);return(0,t.jsx)("li",{className:ep.default.target,"data-achievement-word":e.wordId,"data-found":e.found,children:(0,t.jsxs)("details",{className:ep.default.achievementDetails,children:[(0,t.jsxs)("summary",{className:ep.default.summary,"aria-label":o("word_details",{word:e.label}),children:[e.found?(0,t.jsxs)("div",{className:ep.default.picture,role:"img","aria-label":o("achievements_picture",{word:e.label}),children:[(0,t.jsx)(e$.default,{wordId:e.artworkWordId,artwork:e.artwork}),(0,t.jsx)("span",{className:ep.default.foundMark,"aria-hidden":"true",children:(0,t.jsx)(ef.Check,{size:14,strokeWidth:3})})]}):(0,t.jsx)("div",{className:`${ep.default.picture} ${ep.default.lockedPicture}`,role:"img","aria-label":o("achievements_locked_picture",{word:e.label}),children:(0,t.jsx)("span",{"aria-hidden":"true",children:"?"})}),(0,t.jsxs)("div",{className:ep.default.targetContent,children:[(0,t.jsxs)("div",{className:ep.default.wordHeading,children:[(0,t.jsx)("h3",{lang:"nb",children:e.label}),(0,t.jsx)(eM,{word:K.CATALOG_WORDS[e.wordId],className:ep.default.english}),e.found&&(0,t.jsx)("span",{className:ep.default.srOnly,children:o("achievements_found")})]}),(0,t.jsx)("p",{className:ep.default.description,lang:"nb",children:e.description})]}),(0,t.jsx)(eP.ChevronDown,{className:ep.default.expandIcon,size:17,"aria-hidden":"true"})]}),(0,t.jsxs)("div",{className:ep.default.expandedContent,children:[a&&(0,t.jsxs)("div",{className:ep.default.translation,"data-word-translation":!0,children:[(0,t.jsx)("span",{className:ep.default.translationLabel,lang:a.locale,children:s.gameLanguages.find(e=>e.code===a.locale)?.name}),a.fallback&&(0,t.jsx)("small",{children:o("translation_english_fallback")}),(0,t.jsx)("p",{lang:a.locale,children:a.text})]}),e.found&&!r&&(l?(0,t.jsx)("p",{className:ep.default.artworkStatus,role:"status",children:o("artwork_loading")}):d&&(0,t.jsx)("button",{type:"button",className:ep.default.artworkButton,onClick:()=>n(e.artworkWordId),children:e.artwork?.status==="error"?o("artwork_retry"):o("artwork_get")}))]})]})},e.wordId)})})}),(0,t.jsx)("footer",{className:ep.default.actions,children:(0,t.jsxs)("button",{ref:c,type:"button",className:ep.default.ok,onClick:a,children:[o("common_ok"),(0,t.jsx)(ef.Check,{size:22,"aria-hidden":"true"})]})})]})}let eV=(0,L.default)("equal",[["line",{x1:"5",x2:"19",y1:"9",y2:"9",key:"1nwqeh"}],["line",{x1:"5",x2:"19",y1:"15",y2:"15",key:"g8yjpy"}]]);var eX=e.i(582458),eX=eX,eZ=e.i(658514);function eU({retiredPairs:e=[],words:a,onReport:n,history:s,showArticles:i,onClose:o}){let d=(0,l.useGameTranslations)(),c=(0,r.useRef)(null),u=(0,r.useRef)(null),h=(0,r.useId)(),f=s.toReversed();function m(e){let r=a[e],{prefix:n,label:l}=(0,_.wordLabelParts)(r,i);return(0,t.jsxs)("span",{lang:"nb",children:[n&&(0,t.jsxs)("small",{children:[n," "]}),l]})}return(0,r.useLayoutEffect)(()=>
1{let e=c.current,t=document.activeElement instanceof HTMLElement?document.activeElement:null;return e.showModal(),u.current?.focus({preventScroll:!0}),()=>{e.close(),t?.isConnected&&t.focus({preventScroll:!0})}},[]),(0,t.jsxs)("dialog",{ref:c,className:`${ep.default.dialog} ${eZ.default.dialog}`,"aria-labelledby":h,onCancel:e=>{e.preventDefault(),o()},children:[(0,t.jsx)("header",{className:`${ep.default.header} ${eZ.default.header}`,children:(0,t.jsx)("h2",{id:h,children:d("history_title")})}),(0,t.jsxs)("div",{className:`${ep.default.content} ${eZ.default.content}`,children:[(0,t.jsx)("ol",{className:eZ.default.combinations,children:f.map(({ingredients:r,result:l,outcome:s,id:i,recipeVersion:o},c)=>(0,t.jsxs)("li",{children:[(0,t.jsxs)("span",{className:eZ.default.ingredients,children:[(0,t.jsx)("span",{children:m(r[0])}),(0,t.jsx)("b",{"aria-label":d("history_plus"),children:"+"}),(0,t.jsx)("span",{children:m(r[1])})]}),"error"===s?(0,t.jsx)(eX.default,{className:eZ.default.errorSymbol,size:15,"aria-hidden":"true"}):l?(0,t.jsx)(eV,{className:eZ.default.successSymbol,size:15,"aria-label":d("history_becomes")}):(0,t.jsx)(W.X,{className:eZ.default.noResultSymbol,size:15,"aria-hidden":"true"}),l&&a[l]?(0,t.jsxs)("strong",{className:eZ.default.result,children:[(0,t.jsx)(e$.default,{wordId:l,artwork:a[l].artwork}),(0,t.jsxs)("span",{children:[m(l),e.includes(o?`${(0,V.pairKey)(...r)}:${o}`:(0,V.pairKey)(...r))&&(0,t.jsxs)("span",{children:[(0,t.jsx)("strong",{children:d("recipe_changed")}),(0,t.jsx)("small",{children:d("recipe_route_changed_help")})]})]})]}):(0,t.jsxs)("div",{className:eZ.default.outcome,children:[(0,t.jsx)("span",{className:"no_result"===s?ep.default.srOnly:void 0,children:"error"===s?d("history_error"):"needs_review"===s?d("history_review"):"pack_locked"===s?d("history_locked"):"no_result"===s?d("history_no_recipe"):d("history_legacy")}),("no_result"===s||"needs_review"===s)&&(0,t.jsx)("button",{type:"button",className:eZ.default.report,"aria-haspopup":"dialog",onClick:()=>n(r),children:(0,t.jsx)("span",{children:d("history_report")})})]})]},i??c))}),!f.length&&(0,t.jsx)("p",{className:eZ.default.empty,children:d("history_empty")})]}),(0,t.jsx)("div",{className:eZ.default.actions,children:(0,t.jsxs)("button",{ref:u,className:eZ.default.ok,onClick:o,children:[d("common_ok"),(0,t.jsx)(ef.Check,{size:20,"aria-hidden":"true"})]})})]})}var eK=e.i(463059),eQ=e.i(571608),eJ=e.i(348795),e0=e.i(979617);function e1({visual:e,className:a,label:n,description:l,checked:s,onChange:i}){let o=(0,r.useId)();return(0,t.jsxs)("button",{className:`${e0.default.card} ${a}`,role:"switch","aria-checked":s,"aria-labelledby":`${o}-label`,"aria-describedby":`${o}-description`,onClick:()=>i(!s),children:[(0,t.jsx)("span",{className:e0.default.visual,"aria-hidden":"true",children:e}),(0,t.jsxs)("span",{className:e0.default.copy,children:[(0,t.jsx)("strong",{id:`${o}-label`,children:n}),(0,t.jsx)("span",{id:`${o}-description`,children:l})]}),(0,t.jsx)("span",{className:e0.default.toggle,"aria-hidden":"true",children:(0,t.jsx)("span",{})})]})}function e2({language:e,onLanguage:a,norwegianOnly:n,onNorwegianOnlyChange:i,sound:o,speech:d,showArticles:c,onSoundChange:u,onSpeechChange:h,onArticlesChange:f,onTutorial:m,onFeedback:p,onClose:g}){let _=(0,l.useGameTranslations)(e),[x,y]=(0,r.useState)(!1),k=s.gameLanguages.find(t=>t.code===e),b=(0,r.useId)(),w=(0,r.useRef)(null),v=(0,r.useRef)(null);return(0,r.useLayoutEffect)(()=>{let e=w.current,t=document.activeElement instanceof HTMLElement?document.activeElement:null;return e.showModal(),v.current?.focus({preventScroll:!0}),()=>{e.close(),t?.isConnected&&t.focus({preventScroll:!0})}},[]),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("dialog",{ref:w,className:`${ep.default.dialog} ${e0.default.dialog}`,"aria-label":_("settings_title"),onCancel:e=>{e.preventDefault(),g()},children:[(0,t.jsxs)("div",{className:`${ep.default.content} ${e0.default.content}`,children:[(0,t.jsxs)("button",{type:"button",className:e0.default.language,"aria-label":`${_("gameMenu_language")}: ${k.name}`,"aria-haspopup":"dialog","aria-expanded":x,onClick:()=>y(!0),children:[(0,t.jsx)("span",{className:e0.default.visual,children:(0,t.jsx)(eJ.default,{language:e})}),(0,t.jsxs)("span",{className:e0.default.copy,children:[(0,t.jsx)("strong",{children:_("gameMenu_language")}),(0,t.jsxs)("span",{children:[(0,t.jsx)("span",{lang:e,children:k.name})," · ",_("language_settings_help")]})]}),(0,t.jsx)(eK.ChevronRight,{size:20,"aria-hidden":"true"})]}),(0,t.jsx)(e1,{className:e0.default.sound,visual:(0,t.jsx)(M.default,{className:e0.default.settingArtwork,src:"/images/ordlek/ui/sound-effects.png",alt:"",width:52,height:52,sizes:"52px",draggable:!1}),label:_("settings_sound"),description:_("settings_sound_help"),checked:o,onChange:u}),(0,t.jsx)(e1,{className:e0.default.speech,visual:(0,t.jsx)(M.default,{className:e0.default.settingArtwork,src:"/images/ordlek/ui/automatic-speech.png",alt:"",width:52,height:52,sizes:"52px",draggable:!1}),label:_("settings_speech"),description:_("settings_speech_help"),checked:d,onChange:h}),(0,t.jsx)(e1,{className:e0.default.articles,visual:(0,t.jsx)("span",{className:e0.default.nounScene,lang:"nb",children:(0,t.jsxs)("span",{className:e0.default.articleTiles,children:[(0,t.jsx)("span",{children:"en"}),(0,t.jsx)("span",{children:"ei"}),(0,t.jsx)("span",{children:"et"}),(0,t.jsx)("span",{children:"å"})]})}),label:_("settings_articles"),description:_("settings_articles_help"),checked:c,onChange:f}),(0,t.jsx)(e1,{className:e0.default.articles,visual:(0,t.jsx)(M.default,{className:e0.default.settingArtwork,src:"/images/ordlek/ui/norwegian-only.webp",alt:"",width:52,height:52,sizes:"52px",draggable:!1}
1),label:_("settings_norwegian_only"),description:_("settings_norwegian_only_help"),checked:n,onChange:i}),(0,t.jsxs)("button",{className:e0.default.guide,onClick:m,"aria-haspopup":"dialog",children:[(0,t.jsxs)("span",{className:e0.default.guideScene,"aria-hidden":"true",children:[(0,t.jsx)("span",{children:(0,t.jsx)(e$.default,{wordId:"tre"})}),(0,t.jsx)("span",{children:(0,t.jsx)(e$.default,{wordId:"sol"})}),(0,t.jsx)(eG.Sparkles,{size:15})]}),(0,t.jsxs)("span",{className:e0.default.copy,children:[(0,t.jsx)("strong",{children:_("settings_guide")}),(0,t.jsx)("span",{children:_("settings_guide_help")})]}),(0,t.jsx)(eK.ChevronRight,{size:20,"aria-hidden":"true"})]}),(0,t.jsxs)("button",{type:"button",className:e0.default.guide,onClick:p,"aria-label":_("ordlek_feedback"),"aria-describedby":b,"aria-haspopup":"dialog",children:[(0,t.jsx)(M.default,{className:e0.default.feedbackArtwork,src:"/images/ordlek/ui/feedback.png",alt:"",width:48,height:48,sizes:"48px",draggable:!1}),(0,t.jsxs)("span",{className:e0.default.copy,children:[(0,t.jsx)("strong",{children:_("ordlek_feedback")}),(0,t.jsx)("span",{id:b,children:_("settings_feedback_help")})]}),(0,t.jsx)(eK.ChevronRight,{size:20,"aria-hidden":"true"})]})]}),(0,t.jsx)("div",{className:e0.default.actions,children:(0,t.jsxs)("button",{ref:v,className:e0.default.ok,onClick:g,children:[_("common_ok"),(0,t.jsx)(ef.Check,{size:22,"aria-hidden":"true"})]})})]}),x&&(0,t.jsx)(eQ.LanguageDialog,{language:e,onChange:a,onClose:()=>y(!1)})]})}let e4=[{wordId:"local-hytte",description:"En helg på hytta er en klassiker i Norge. I 2026 fantes det over 450 000 hytter og andre fritidsbygg.",translation:"A weekend at the cabin is a Norwegian classic. In 2026, Norway had over 450,000 cabins and other holiday buildings.",source:{name:"SSB",url:"https://www.ssb.no/bygg-bolig-og-eiendom/faktaside/hytter-og-ferieboliger"}},{wordId:"nordlys",description:"Mange reiser til Nord-Norge midt på vinteren for å se nordlyset med egne øyne.",translation:"Plenty of people head to Northern Norway in the middle of winter to see the northern lights for themselves.",source:{name:"Visit Norway",url:"https://www.visitnorway.no/reisemal/nord-norge/tromso/vinter/"}},{wordId:"local-midnattssol",description:"Det er lett å glemme klokka når sola ikke går ned. Nord for polarsirkelen kan sommerdagene vare hele døgnet.",translation:"It’s easy to lose track of time when the sun never sets. North of the Arctic Circle, summer daylight can last all night.",source:{name:"Visit Norway",url:"https://www.visitnorway.no/aktiviteter-og-attraksjoner/naturlige-hoydepunkter/midnattssol/"},previousIds:["seed-midnattssol-noun"]},{wordId:"fjord",description:"Sognefjorden er hele 205 kilometer lang og Norges lengste fjord. Det er mye fjord å få med seg på én ferie.",translation:"Sognefjorden, Norway’s longest fjord, stretches for 205 kilometres. That’s a lot of fjord to fit into one holiday.",source:{name:"Visit Norway",url:"https://www.visitnorway.no/aktiviteter-og-attraksjoner/naturlige-hoydepunkter/fjorder/fakta/"}},{wordId:"local-brunost",description:"Søt og litt karamellaktig, så den kan overraske første gang du smaker den. I Norge havner brunosten på både brødskiver og vafler.",translation:"Sweet and a little caramel-like, it can surprise you the first time you try it. In Norway, brown cheese goes on both bread and waffles.",source:{name:"TINE",url:"https://www.tine.no/merkevarer/tine-brunost/produkter/tine-fl%C3%B8temysost"}},{wordId:"local-vaffel",description:"En norsk vaffel deles gjerne i hjerter. Rømme og syltetøy er godt på, og brunost er heller ikke dumt.",translation:"Norwegian waffles are often shared in heart-shaped pieces. Sour cream and jam go well on top, and brown cheese is a good choice too.",source:{name:"Visit Norway",url:"https://www.visitnorway.com/things-to-do/food-and-drink/wafflecation/"}},{wordId:"local-niste",description:"Noen brødskiver hjemmefra, og lunsjen er ordnet. Nista blir med på skolen, på jobb og ut på tur.",translation:"Pack a few sandwiches, and lunch is sorted. They come along to school, to work and out on a hike.",source:{name:"Visit Norway",url:"https://www.visitnorway.com/things-to-do/food-and-drink/the-norwegian-cookbook/matpakke-norwegian-lunch-box/"}},{wordId:"local-kaffe",description:"Vi tar gjerne en kopp til. I en undersøkelse fra 2026 sa 69 prosent av voksne i Norge at de drakk kaffe hver dag.",translation:"We’re usually up for another cup. In a 202
16 survey, 69 percent of adults in Norway said they drank coffee every day.",source:{name:"Norsk Kaffeinformasjon",url:"https://kaffe.no/kaffeundersokelsen-2026/"}},{wordId:"local-viking",description:"Vikinger får ofte horn på hjelmen i filmer og tegninger. Hjelmen fra Gjermundbu er fra 900-tallet og har ingen.",translation:"Vikings often get horned helmets in films and drawings. The helmet from Gjermundbu dates from the 900s and has none.",source:{name:"Kulturhistorisk museum",url:"https://blogg.forskning.no/gjenstandsbloggen/vikinger-med-horn-pa-hjelmen--fleip-eller-fakta/1093081"}},{wordId:"local-skip",description:"Noen tar bussen, andre tar båten. Skip har knyttet små og store steder langs norskekysten sammen i generasjoner.",translation:"Some people take the bus; others take a boat. Ships have connected communities along Norway’s coast for generations.",source:{name:"Norsk Maritimt Museum",url:"https://marmuseum.no/en/on-schedule"}},{wordId:"local-tørrfisk",description:"I Lofoten kan du se fisk henge til tørk på store trestativer. Tørrfisk har reist ut fra Norge i rundt tusen år.",translation:"In Lofoten, you can see fish hanging out to dry on large wooden racks. Stockfish has been shipped from Norway for around a thousand years.",source:{name:"Visit Norway",url:"https://www.visitnorway.com/things-to-do/food-and-drink/stockfish/"}},{wordId:"local-eventyr",description:"Asbjørnsen og Moe samlet norske folkeeventyr på 1800-tallet. Takket være dem har vi mange gode historier å fortelle videre.",translation:"Asbjørnsen and Moe collected Norwegian folk tales in the 1800s. Thanks to them, we still have plenty of good stories to pass on.",source:{name:"Nasjonalbiblioteket",url:"https://www.nb.no/historier-fra-samlingen/eventyras-eventyrlege-suksess/"}}];function e5({word:e,articles:a=!0}){let{prefix:r,label:n}=(0,_.wordLabelParts)(e,a);return(0,t.jsxs)("span",{className:er.default.combinationWord,children:[(0,t.jsx)(e$.default,{wordId:e.id,artwork:e.artwork}),(0,t.jsxs)("span",{lang:"nb",children:[r&&(0,t.jsxs)("small",{children:[r," "]}),n]})]})}function e8({attempt:e,position:a,words:n,articles:s}){let i=(0,l.useGameTranslations)(),o=(0,r.useRef)(null);return(0,r.useLayoutEffect)(()=>{if(matchMedia("(prefers-reduced-motion: reduce)").matches)return;let t=Array.from(o.current?.querySelectorAll("[data-combining-card]")??[]).map((t,a)=>{var r,n;return t.animate([{transform:(r=e.origins[a],n=t.getBoundingClientRect(),`translate(${r.left+r.width/2-n.left-n.width/2}px, ${r.top+r.height/2-n.top-n.height/2}px) scale(${r.width/n.width}, ${r.height/n.height})`),opacity:.7},{transform:"none",opacity:1}],{duration:450,easing:"cubic-bezier(.22,.8,.2,1)"})});return()=>t.forEach(e=>e.cancel())},[e]),(0,t.jsxs)("div",{ref:o,className:er.default.boardCombination,"data-pending-combination":e.id,style:{left:`clamp(12px, ${100*a.x}%, calc(100% - var(--tile-width) - 28px))`,top:`clamp(20px, ${100*a.y}%, calc(100% - var(--tile-height) - 75px))`},role:"status","aria-label":`${n.map(e=>e.label).join(" + ")}: ${i("board_combining")}`,children:[(0,t.jsx)("div",{className:er.default.combiningCards,"aria-hidden":"true",children:n.map((e,a)=>(0,t.jsx)("div",{"data-combining-card":!0,children:(0,t.jsx)(e5,{word:e,articles:s})},a))}),(0,t.jsxs)("span",{className:er.default.combiningDots,"aria-hidden":"true",children:[(0,t.jsx)("i",{}),(0,t.jsx)("i",{}),(0,t.jsx)("i",{})]})]})}var e3=e.i(522016);let e7=(0,L.default)("layout-dashboard",[["rect",{width:"7",height:"9",x:"3",y:"3",rx:"1",key:"10lvy0"}],["rect",{width:"7",height:"5",x:"14",y:"3",rx:"1",key:"16une8"}],["rect",{width:"7",height:"9",x:"14",y:"12",rx:"1",key:"1hutg5"}],["rect",{width:"7",height:"5",x:"3",y:"16",rx:"1",key:"ldoo1y"}]]);var e6=e.i(539901),e9=e.i(686311),te=e.i(83956);let tt=[{first:"vann",second:"ild",result:"damp",from:[12,28],to:[39,35],delay:0},{first:"sol",second:"regn",result:"regnbue",from:[69,9],to:[75,43],delay:-16},{first:"tre",second:"tre",result:"skog",from:[23,71],to:[51,76],delay:-8}],ta=[{id:"sky",mobileX:24,mobileY:0,x:31,y:6,angle:-8},{id:"fisk",mobileX:94,mobileY:10,x:87,y:22,angle:9},{id:"hus",mobileX:50,mobileY:5,x:55,y:18,angle:7},{id:"fjell",mobileX:-7,mobileY:38,x:7,y:53,angle:-6},{id:"blomst",mobileX:49,mobileY:43,x:57,y:50,angle:-7},{id:"stein",mobileX:17,mobileY:76,x:30,y:52,angle:5},{id:"bat",mobileX:92,mobileY:70,x:82,y:75,angle:-9},{id:"jord",mobileX:-6,mobileY:78,x:3,y:84,angle:7}];function tr({id:e,sage:a=!1}){return(0,t.jsxs)("div",{className:te.default.card,"data-sage":a,children:[(0,t.jsx)(e$.default,{wordId:e}),(0,t.jsxs)("span",{children:[(0,t.jsxs)("small",{children:[B.NOUN_DETAILS[e]?.article," "]}),z.WORD_BY_ID[e].label.toLocaleLowerCase("nb")]})]})}function tn(){return(0,t.jsxs)("div",{className:te.default.scene,"aria-hidden":"true",children:[ta.map(({id:e,x:a,y:r,mobileX:n,mobileY:l,angle:s},i)=>(0,t.jsx)("div",{className:`${te.default.slot} ${te.default.idle}`,style:{"--desktop-x":`${a}%`,"--desktop-y":`${r}%`,"--mobile-x":`${n}%`,"--mobile-y":`${l}%`,"--angle":`${s}deg`,"--float-delay":`${-(1.7*i)}s`},children:(0,t.jsx)(tr,{id:e,sage:i%3==0})},e)),tt.map(({first:e,second:a,result:r,from:n,to:l,delay:s},i)=>(0,t.jsxs)("div",{className:te.default.recipe,"data-recipe":i,style:{"--delay":`${s}s`,"--desktop-from-x":`${n[0]}%`,"--desktop-from-y":`${n[1]}%`,"--desktop-to-x":`${l[0]}%`,"--desktop-to-y":`${l[1]}%`,"--desktop-dx":`${l[0]-n[0]}cqw`,"--desktop-dy":`${l[1]-n[1]}cqh`},children:[(0,t.jsx)("div",{className:`${te.default.slot} ${te.default.source}`,style:{left:"var(--from-x)",top:"var(--from-y)"},children:(0,t.jsx)(tr,{id:e})}),(0,t.jsx)("div",{className:`${te.default.slot} ${te.default.target}`,style:{left:"var(--to-x)",top:"var(--to-y)"},children:(0,t.jsx)(tr,{id:a,sage:!0})}),(0,t.jsx)("div",{className:`${te.default.slot} ${te.default.result}`,style:{left:"var(--to-x)",top:"var(--to-y)"},children:(0,t.jsx)(tr,{id:r,sage:2===i})}),(0,t.jsx)("div",{className:`${te.default.slot} ${te.default.poof}`,style:{left:"var(--to-x)",top:"var(--to-y)"},children:Array.from({length:7},(e,a)=>(0,t.jsx)("i",{style:{"--particle-angle":`${360*a/7}deg`}},a))}),(0,t.jsx)("div",{className:`${te.default.slot} ${te.default.hand}`,style:{left:"var(--from-x)",top:"var(--from-y)"}
1,children:(0,t.jsx)(M.default,{src:"/images/ordlek/ui/drag-hand.png",alt:"",width:48,height:48,sizes:"48px",draggable:!1})})]},r))]})}var tl=e.i(900290);function ts(){let e=(0,r.useId)(),a=t=>`url(#${e}-${t})`;return(0,t.jsxs)("svg",{viewBox:"0 0 440 520",preserveAspectRatio:"xMidYMid slice",focusable:"false","data-fjord-style":"mobile-clay",children:[(0,t.jsxs)("defs",{children:[(0,t.jsxs)("linearGradient",{id:`${e}-sky`,x2:"0",y2:"1",children:[(0,t.jsx)("stop",{stopColor:"#e6f1f5"}),(0,t.jsx)("stop",{offset:"1",stopColor:"#fafbf2"})]}),(0,t.jsxs)("linearGradient",{id:`${e}-mountain`,x2:"1",y2:".4",children:[(0,t.jsx)("stop",{stopColor:"#dbe9ed"}),(0,t.jsx)("stop",{offset:".6",stopColor:"#bdd4dc"}),(0,t.jsx)("stop",{offset:"1",stopColor:"#8eafbd"})]}),(0,t.jsxs)("linearGradient",{id:`${e}-cliff`,x2:"1",y2:".5",children:[(0,t.jsx)("stop",{stopColor:"#accbd0"}),(0,t.jsx)("stop",{offset:"1",stopColor:"#6b99a4"})]}),(0,t.jsxs)("linearGradient",{id:`${e}-water`,x2:"0",y2:"1",children:[(0,t.jsx)("stop",{stopColor:"#a8d1d4"}),(0,t.jsx)("stop",{offset:"1",stopColor:"#e4eddf"})]}),(0,t.jsxs)("linearGradient",{id:`${e}-shore`,x2:".6",y2:"1",children:[(0,t.jsx)("stop",{stopColor:"#b3c7a3"}),(0,t.jsx)("stop",{offset:".5",stopColor:"#87a98f"}),(0,t.jsx)("stop",{offset:"1",stopColor:"#5b897e"})]}),(0,t.jsxs)("linearGradient",{id:`${e}-meadow`,x2:".7",y2:"1",children:[(0,t.jsx)("stop",{stopColor:"#d4dfbd"}),(0,t.jsx)("stop",{offset:"1",stopColor:"#97b28d"})]}),(0,t.jsxs)("linearGradient",{id:`${e}-tree`,x2:"1",y2:".2",children:[(0,t.jsx)("stop",{stopColor:"#a7c4a4"}),(0,t.jsx)("stop",{offset:".45",stopColor:"#719980"}),(0,t.jsx)("stop",{offset:"1",stopColor:"#427669"})]}),(0,t.jsxs)("linearGradient",{id:`${e}-house`,x2:"1",y2:".2",children:[(0,t.jsx)("stop",{stopColor:"#eabc95"}),(0,t.jsx)("stop",{offset:"1",stopColor:"#bc8065"})]}),(0,t.jsxs)("radialGradient",{id:`${e}-sun`,cx:".3",cy:".25",r:".8",children:[(0,t.jsx)("stop",{stopColor:"#fffef0"}),(0,t.jsx)("stop",{offset:".6",stopColor:"#fff1c1"}),(0,t.jsx)("stop",{offset:"1",stopColor:"#e9d69b"})]}),(0,t.jsx)("filter",{id:`${e}-depth`,x:"-25%",y:"-25%",width:"160%",height:"170%",children:(0,t.jsx)("feDropShadow",{dx:"3",dy:"5",stdDeviation:"5",floodColor:"#4c716b",floodOpacity:".12"})}),(0,t.jsxs)("mask",{id:`${e}-water-only`,children:[(0,t.jsx)("path",{fill:"white",d:"M0 298h440v222H0Z"}),(0,t.jsx)("path",{fill:"black",d:"M440 270q-34 14-60 49t-51 25h-28q-18 0-32 16l-44 20q69 11 118-5t97-4Z"}),(0,t.jsx)("path",{fill:"black",d:"M0 325q42-8 76 30t80 48l-31 19L0 442Z"})]})]}),(0,t.jsx)("path",{fill:a("sky"),d:"M0 0h440v520H0Z"}),(0,t.jsx)("circle",{cx:"347",cy:"103",r:"27",fill:a("sun"),filter:a("depth")}),(0,t.jsxs)("g",{fill:"#fffef9",opacity:".85",filter:a("depth"),children:[(0,t.jsx)("path",{d:"M18 116q12-14 24-8 11-25 29-18 11 3 15 17 17-5 27 10-47 8-95-1Z"}),(0,t.jsx)("path",{d:"M232 155q9-13 20-7 8-19 23-13 8 3 11 13 14-4 23 7-40 6-77 0Z"})]}),(0,t.jsx)("path",{fill:a("mountain"),d:"M-20 295 49 232 75 253 140 153q9-14 20 1l77 116 42-51q9-12 18 0l94 115H-20Z",filter:a("depth")}),(0,t.jsx)("path",{fill:"#fcfcf5",d:"m119 186 21-33q9-14 20 1l25 38q-10-9-17-2t-15-3q-7-11-14-5Z"}),(0,t.jsx)("path",{fill:"#f8faf4",d:"m264 237 15-18q9-12 18 0l19 23-15-5-11 5-10-8Z"}),(0,t.jsx)("path",{fill:a("cliff"),d:"m440 197-39 33-36 66-24-18-44 54 143 48Z"}),(0,t.jsx)("path",{fill:"#9ebbb8",d:"M0 251q35 5 70 51l48 23L0 361Z"}),(0,t.jsx)("path",{fill:a("water"),d:"M0 304q111-14 220 2t220-6v220H0Z"}),(0,t.jsx)("g",{fill:"none",stroke:"#f4fbef",strokeWidth:"1.8",strokeLinecap:"round",opacity:".85",mask:a("water-only"),children:(0,t.jsx)("path",{d:"M169 326h34m25 18h27m-113 16h33m22 33h47m-85 28h33m66 18h39m-159 25h33m58 27h50"})}),(0,t.jsx)("path",{fill:a("shore"),d:"M440 270q-34 14-60 49t-51 25h-28q-18 0-32 16l-44 20q69 11 118-5t97-4Z",filter:a("depth")}),(0,t.jsx)("path",{fill:"#acbd9e",d:"M279 352q11-11 28-8h25q15 0 26-8l-9 15-25 7h-50Z"}),(0,t.jsxs)("g",{transform:"translate(304 350)",filter:a("depth"),children:[(0,t.jsx)("ellipse",{cx:"13",cy:"3",rx:"22",ry:"4",fill:"#456557",opacity:".16"}),(0,t.jsx)("path",{fill:"#b8bea4",d:"M-4 0h36l4 4H-7Z"}),(0,t.jsx)("path",{fill:a("house"),d:"M0 0v-22l14-12 15 12V0Z"}),(0,t.jsx)("path",{fill:"#ae7862",d:"M29-22h6V0h-6Z"}),(0,t.jsx)("path",{fill:"#52776c",d:"m-4-21 18-17 25 16-4 4-21-13L0-18Z"}),(0,t.jsx)("path",{fill:"none",stroke:"#99b49f",strokeWidth:"2",strokeLinecap:"round",d:"m-2-21 16-14 22 14"}),(0,t.jsx)("path",{fill:"#fff0cc",d:"M5-19h6v7H5zm15 0h6v7h-6Z"}),(0,t.jsx)("path",{fill:"#77866d",d:"M13-10h6V0h-6Z"})]}),(0,t.jsxs)("g",{fill:a("tree"),filter:a("depth"),children:[(0,t.jsx)("path",{d:"m394 300-12 31q-3 6 13 6t12-6l-10-31q-1-4-3 0Z"}),(0,t.jsx)("path",{d:"m417 280-15 41q-3 7 17 7t15-7l-13-41q-2-5-4 0Z"})]}),(0,t.jsx)("path",{fill:a("meadow"),d:"M0 325q42-8 76 30t80 48l-31 19L0 442Z"}),(0,t.jsx)("path",{fill:"#cbd9b5",d:"M0 378q36-8 68 12t59 20L0 442Z"}),(0,t.jsx)("g",{fill:"none",stroke:"#89a7a8",strokeWidth:"1.5",strokeLinecap:"round",children:(0,t.jsx)("path",{d:"M265 103q4-4 8 0 4-4 8 0m-32 15q3-3 6 0 3-3 6 0"})})]})}var ti=e.i(493638);function to(){return(0,t.jsxs)("div",{className:ti.default.background,"aria-hidden":"true",children:[(0,t.jsx)("div",{className:ti.default.desktop,children:(0,t.jsx)(tl.default,{artStyle:"clay"})}),(0,t.jsx)("div",{className:ti.default.mobile,children:(0,t.jsx)(ts,{})})]})}var td=e.i(585030);let tc={src:"/images/ordlek/credits-family.webp",position:"center"};function tu({language:e}){let a=(0,l.useGameTranslations)(e);return(0,t.jsx)("div",{className:td.default.credits,children:(0,t.jsxs)("div",{className:td.default.introduction,children:[(0,t.jsx)("figure",{className:td.default.portrait,children:(0,t.jsxs)("div",{className:td.default.frame,children:[(0,t.jsx)("div",{className:td.default.insert,children:tc?(0,t.jsx)(M.default,{src:tc.src,alt:a("gameCredits_martin_and_his_son"),fill:!0,unoptimized:!0,sizes:"(max-width: 760px) 138px, 194px",style:{objectFit:"cover",objectPosition:tc.position??"center"}}):(0,t.jsxs)("div",{className:td.default.keepsake,children:[(0,t.jsx)(M.default,{src:"/images/ordlek/ui/menu-heart.png",alt:"",width:88,height:88,sizes:"88px"}),(0,t.jsx)("span",{children:a("gameCredits_a_little_game_a_lot_of_love")})]})}),(0,t.jsx)(M.default,{className:td.default.frameArt,src:"/images/ordlek/ui/credits-frame.png",alt:"",width:1024,height:1024,sizes:"(max-width: 760px) 300px, 420px"})]})}),(0,t.jsxs)("div",{className:td.default.copy,children:[(0,t.jsx)("h2",{className:td.default.opening,children:a("gameCredits_greeting")}),(0,t.jsx)("p",{children:a("gameCredits_history")}),(0,t.jsx)("p",{children:a("gameCredits_inspiration")}),(0,t.jsx)("p",{children:a("gameCredits_community")}),(0,t.jsx)("p",{children:a("gameCredits_support")}),(0,t.jsx)("p",{children:a("gameCredits_thank_you_for_playing")}),(0,t.jsx)("div",{className:td.default.colophon,children:(0,t.jsx)("p",{children:a("gameCredits_attribution")})})]})]})})}var th=e.i(599731);let tf="ordlek",tm={play:"menu-play",stats:"menu-stats",settings:"settings",credits:"menu-heart",arrow:"menu-arrow"};function tp({name:e,className:a=""}){return(0,t.jsx)(M.default,{className:`${th.default.menuIcon} ${a}`,src:`/images/ordlek/ui/${tm[e]}.png`,alt:"","aria-hidden":"true",width:24,height:24,sizes:"24px",draggable:!1})}function tg({staged:e=!1,onOpeningReady:a,accountContent:n,onFeedback:s,showPlanningBoard:i,language:o,returning:d,words:c,pairs:u,favorites:h,achievements:f,achievementTotal:m,packs:p,onPlay:g,onSettings:_}){let x=(0,r.useRef)(null),[y,k]=(0,r.useState)("home"),b=(0,r.useRef)(null),w=(0,l.useGameTranslations)(o);return(0,r.useLayoutEffect)(()=>
1{if(e)return;let t=x.current;return t.close(),t.showModal(),()=>t.close()},[e]),(0,e_.useOpeningAssets)(x,e,a),(0,r.useLayoutEffect)(()=>{e||b.current?.focus({preventScroll:!0})},[y,e]),(0,t.jsx)("dialog",{open:e||void 0,"data-opening-staged":e||void 0,ref:x,className:th.default.menu,lang:o,"aria-labelledby":"menu-title",onCancel:e=>{e.preventDefault(),"home"!==y?k("home"):g()},children:(0,t.jsxs)("div",{className:th.default.menuShell,"data-page":y,children:[(0,t.jsx)(to,{}),"stats"===y&&(0,t.jsx)("div",{className:th.default.statsScene,children:(0,t.jsx)(tn,{})}),(0,t.jsx)("header",{className:th.default.menuHeader,children:(0,t.jsxs)("span",{children:["norwegian.app ",(0,t.jsx)("span",{children:"/"})," ordlek"]})}),(0,t.jsx)("div",{className:th.default.menuLayout,children:(0,t.jsx)("section",{className:th.default.menuContent,children:"home"===y?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("h1",{id:"menu-title",ref:b,tabIndex:-1,className:th.default.logo,"aria-label":"ordlek",children:[(0,t.jsx)("span",{className:th.default.logoWord,"aria-hidden":"true",children:tf.slice(0,3)}),(0,t.jsxs)("span",{className:th.default.logoPlay,"aria-hidden":"true",children:[tf.slice(3),(0,t.jsx)(eG.Sparkles,{className:th.default.logoSparkle,"aria-hidden":"true"})]})]}),(0,t.jsx)("p",{className:th.default.tagline,children:w("gameMenu_learn_norwegian_through_play")}),(0,t.jsx)(tn,{}),(0,t.jsxs)("nav",{className:th.default.menuNav,"aria-label":w("gameMenu_main_menu"),children:[(0,t.jsxs)("button",{className:th.default.primary,onClick:g,children:[(0,t.jsx)(tp,{name:"play"}),w(d?"gameMenu_continue_playing":"gameMenu_start_game")]}),(0,t.jsxs)("div",{className:th.default.menuUtilities,children:[(0,t.jsxs)("button",{title:w("gameMenu_your_stats"),onClick:()=>k("stats"),children:[(0,t.jsx)(tp,{name:"stats"}),(0,t.jsx)("span",{className:th.default.utilityLabel,children:w("gameMenu_your_stats")})]}),(0,t.jsxs)("button",{title:w("gameMenu_settings"),onClick:_,children:[(0,t.jsx)(tp,{name:"settings"}),(0,t.jsx)("span",{className:th.default.utilityLabel,children:w("gameMenu_settings")})]}),(0,t.jsxs)("button",{title:w("gameMenu_credits"),onClick:()=>k("credits"),children:[(0,t.jsx)(tp,{name:"credits"}),(0,t.jsx)("span",{className:th.default.utilityLabel,children:w("gameMenu_credits")})]})]})]}),n]}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("button",{className:th.default.back,onClick:()=>k("home"),children:[(0,t.jsx)(tp,{name:"arrow",className:th.default.backArrow}),w("gameMenu_main_menu")]}),(0,t.jsx)("h1",{id:"menu-title",ref:b,tabIndex:-1,className:"stats"===y?th.default.pageTitle:"sr-only",children:w("stats"===y?"gameMenu_your_discoveries":"gameMenu_credits")}),"stats"===y?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("p",{className:th.default.intro,children:w("gameMenu_every_new_connection_is_a_little_more_norwegian")}),(0,t.jsx)("dl",{className:th.default.stats,children:[[c,w("gameMenu_words_collected")],[u,w("gameMenu_unique_combinations")],[h,w("gameMenu_favourites")],[`${f}/${m}`,w("gameMenu_culture_discoveries")],[`${p}/3`,w("gameMenu_bonus_packs_unlocked")]].map(([e,a])=>(0,t.jsxs)("div",{children:[(0,t.jsx)("dd",{children:e}),(0,t.jsx)("dt",{children:a})]},a))}),(0,t.jsx)("p",{className:th.default.saveNote,children:w("gameMenu_includes_your_starting_words")})]}):(0,t.jsx)(tu,{language:o})]})})}),(0,t.jsxs)("footer",{className:th.default.menuFooter,children:[(0,t.jsxs)("button",{className:th.default.feedbackButton,onClick:s,children:[(0,t.jsx)(e9.MessageSquare,{size:16}),w("gameMenu_feedback")]}),i&&(0,t.jsxs)(e3.default,{href:"/wordgame/board",className:th.default.planningLink,children:[(0,t.jsx)(e7,{size:15})," ",w("menu_idea_board"),(0,t.jsx)(e6.LockKeyhole,{size:11})]})]})]})})}function t_(e,t,a){return!e||("click-water"===e?"vann"===t&&"click"===a:"drag-fire"===e?"ild"===t&&"drag"===a:"add-stone"===e?"stein"===t:"add-tree"===e&&"tre"===t)}let tx=(0,L.default)("flag",[["path",{d:"M4 22V4a1 1 0 0 1 .4-.8A6 6 0 0 1 8 2c3 0 5 2 7.333 2q2 0 3.067-.8A1 1 0 0 1 20 4v10a1 1 0 0 1-.4.8A6 6 0 0 1 16 16c-3 0-5-2-8-2a6 6 0 0 0-4 1.528",key:"1jaruq"}]]);var ty=e.i(735501),tk=e.i(514764);let tb=(0,L.default)("text-quote",[["path",{d:"M17 5H3",key:"1cn7zz"}],["path",{d:"M21 12H8",key:"scolzb"}],["path",{d:"M21 19H8",key:"13qgcb"}],["path",{d:"M3 12v7",key:"1ri8j3"}]]);var tw=e.i(646708);let tv="/wordgame/feedback/api";function tj({draft:e,language:a,onClose:n}){let s=(0,l.useGameTranslations)(a),i=(0,r.useId)(),o=(0,r.useRef)(null),d=(0,r.useRef)(null),c=(0,r.useRef)(""),u=e.word,h=u?(0,_.wordLabelParts)(u):void 0,f=u?[...new Set([u.example,...u.examples.map(e=>
1e.text)].filter(Boolean))]:[],m=u?[...new Set([(0,_.wordPronunciation)(u),...u.noun?[u.noun.definite,...u.noun.plural??[]]:[],...f])]:[],[g,x]=(0,r.useState)(e.chooseTarget?null:e.context.target),[y,k]=(0,r.useState)("audio"===e.context.target?e.context.text??m[0]:m[0]),[b,w]=(0,r.useState)(e.exampleText??("example"===e.context.target?e.context.text:void 0)??f[0]),[v,j]=(0,r.useState)(""),[N,S]=(0,r.useState)(""),[C,A]=(0,r.useState)(null),[L,$]=(0,r.useState)(),[O,R]=(0,r.useState)(""),[D,E]=(0,r.useState)(!1),[T,I]=(0,r.useState)(null),[G,q]=(0,r.useState)(!1),P=C?.id,z=C?.batch?.status==="generating",B={general:s("feedback_general"),combination:s("feedback_combination"),image:s("feedback_image"),audio:s("feedback_audio"),example:s("feedback_example")},H=[{value:"image",Icon:ty.ImageIcon,hint:s("feedbackDialog_picture_or_meaning")},{value:"audio",Icon:eS.Volume2,hint:s("feedbackDialog_voice_or_pronunciation")},{value:"example",Icon:tb,hint:s("feedbackDialog_sentence_or_translation")}];async function Y(t){if(!D&&("submit"!==t||g)){if("submit"===t&&"general"===g&&!v.trim())return void I("feedback_required");E(!0),I(null);try{let a=u?{target:g,wordId:u.id,..."audio"===g?{text:y}:"example"===g?{text:b}:{}}:e.context,r=await fetch(tv,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify("submit"===t?{action:t,requestId:c.current,context:a,message:v,expected:N}:{action:t,id:C.id,choice:L,comments:O})}),n=await r.json();if(!r.ok)throw Error(n.error);A(n.report),"prefer"===t&&q(!0)}catch{I("error_feedback")}finally{E(!1)}}}return(0,r.useLayoutEffect)(()=>{c.current=crypto.randomUUID();let e=o.current,t=document.activeElement;return e.showModal(),e.querySelector("[data-initial-focus]")?.focus({preventScroll:!0}),()=>{e.close(),t instanceof HTMLElement&&t.isConnected&&t.focus({preventScroll:!0})}},[]),(0,r.useEffect)(()=>{P&&d.current?.focus({preventScroll:!0})},[P]),(0,r.useEffect)(()=>{if(!P||!z)return;let e=!1,t=(0,p.startVisibleRefresh)(async()=>{let t=await fetch(`${tv}?id=${P}`,{cache:"no-store",signal:AbortSignal.timeout(15e3)});if(!t.ok)return!1;let a=await t.json();!e&&a.report&&A(a.report)},2e3);return()=>{e=!0,t.stop()}},[P,z]),(0,t.jsxs)("dialog",{ref:o,className:eD.default.dialog,lang:a,"aria-labelledby":i,onCancel:e=>{e.preventDefault(),n()},children:[(0,t.jsx)("button",{type:"button",className:eD.default.close,onClick:n,"aria-label":s("feedbackDialog_close_feedback"),children:(0,t.jsx)(W.X,{size:18,"aria-hidden":"true"})}),(0,t.jsxs)("header",{className:`${eD.default.header} ${!C&&"general"===g?eD.default.generalHeader:""}`,children:[(0,t.jsx)("span",{className:C||u?`${eD.default.headerIcon} ${C?eD.default.successIcon:""}`:eD.default.feedbackArtwork,"aria-hidden":"true",children:C?(0,t.jsx)(ef.Check,{size:23}):u?(0,t.jsx)(tx,{size:21}):(0,t.jsx)(M.default,{src:"/images/ordlek/ui/feedback.png",alt:"",width:48,height:48,sizes:"48px",draggable:!1})}),(0,t.jsx)("h2",{ref:d,tabIndex:-1,id:i,children:C?s("feedbackDialog_thanks_for_helping"):u?s("feedbackDialog_something_not_quite_right"):"general"===g?s("feedbackDialog_what_could_be_better"):B[e.context.target]}),(C||"general"!==g)&&(0,t.jsx)("p",{children:s(C?"feedbackDialog_your_report_is_saved_martin_will_take_a_look":u?"feedbackDialog_tell_us_what_needs_a_little_attention":"feedbackDialog_a_small_note_can_make_the_game_better")})]}),C?(0,t.jsxs)("div",{className:eD.default.saved,children:[C.imageLocked?(0,t.jsx)("p",{className:eD.default.hint,children:s("feedbackDialog_martin_will_review_this_approved_image_before_making_any")}):["image","audio","example"].includes(C.context.target)&&!G&&(0,t.jsxs)("details",{className:eD.default.helpFix,children:[(0,t.jsxs)("summary",{children:[(0,t.jsx)(eG.Sparkles,{size:17,"aria-hidden":"true"}),(0,t.jsxs)("span",{children:[s("feedbackDialog_want_to_help_choose_a_fix"),(0,t.jsx)("small",{children:s("feedbackDialog_optional_compare_three_alternatives")})]}),(0,t.jsx)(eP.ChevronDown,{size:16,"aria-hidden":"true"})]}),(0,t.jsx)("div",{className:eD.default.fixContent,children:C.batch?.status==="ready"?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(tw.default,{alternatives:C.batch.alternatives,target:C.context.target,choice:L,onChoose:$,disabled:D}),(0,t.jsxs)("label",{children:[s("feedbackDialog_comment"),(0,t.jsx)("span",{className:eD.default.optional,children:s("feedbackDialog_optional")}),(0,t.jsx)("textarea",{maxLength:2e3,value:O,onChange:e=>R(e.target.value)})]}),(0,t.jsxs)("button",{className:eD.default.secondary,disabled:D||!L,onClick:()=>void Y("prefer"),children:[D&&(0,t.jsx)(em.LoaderCircle,{size:15,className:eD.default.spin,"aria-hidden":"true"}),s("feedbackDialog_send_preference")]}),(0,t.jsx)("p",{className:eD.default.hint,children:s("feedbackDialog_martin_approves_the_final_change")})]}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("p",{className:eD.default.hint,children:s("feedbackDialog_compare_three_new_suggestions_and_pick_your_favourite_or")}),(0,t.jsx)("button",{className:eD.default.secondary,disabled:D||C.batch?.status==="generating",onClick:()=>void Y("alternatives"),children:D||C.batch?.status==="generating"?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(em.LoaderCircle,{size:16,className:eD.default.spin,"aria-hidden":"true"}),s("feedbackDialog_preparing_alternatives")]}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(eG.Sparkles,{size:16,"aria-hidden":"true"}),s("feedbackDialog_show_3_alternatives")]})}),C.batch?.status==="generating"&&(0,t.jsx)("p",{className:eD.default.hint,role:"status",children:s("feedbackDialog_you_can_go_back_to_the_game_while_you")})]})})]}
1),G&&(0,t.jsxs)("p",{className:eD.default.preferenceSaved,role:"status",children:[(0,t.jsx)(ef.Check,{size:17,"aria-hidden":"true"}),s("feedbackDialog_your_preference_is_saved_for_martin")]}),T&&(0,t.jsx)("p",{role:"alert",className:eD.default.error,children:s(T)}),(0,t.jsx)("div",{className:eD.default.doneActions,children:(0,t.jsxs)("button",{className:eD.default.primary,onClick:n,children:[s("feedbackDialog_back_to_game"),(0,t.jsx)(ef.Check,{size:18,"aria-hidden":"true"})]})})]}):(0,t.jsxs)("form",{noValidate:!0,onSubmit:e=>{e.preventDefault(),Y("submit")},children:[u&&(0,t.jsxs)("div",{className:eD.default.wordContext,children:[(0,t.jsx)("span",{className:eD.default.wordArtwork,children:(0,t.jsx)(e$.default,{wordId:u.id,artwork:u.artwork})}),(0,t.jsxs)("div",{children:[(0,t.jsxs)("strong",{lang:"nb",children:[h?.prefix&&(0,t.jsxs)("small",{children:[h.prefix," "]}),h?.label]}),(0,t.jsx)(eM,{word:u,inline:!0})]})]}),e.ingredientsLabel&&(0,t.jsx)("p",{lang:"nb",className:eD.default.combination,children:e.ingredientsLabel}),(0,t.jsxs)("fieldset",{className:eD.default.fields,disabled:D,children:[u&&(0,t.jsxs)("fieldset",{className:eD.default.categories,children:[(0,t.jsx)("legend",{children:s("feedbackDialog_what_s_the_issue_with")}),(0,t.jsx)("div",{children:H.map(({value:e,Icon:a,hint:r},n)=>(0,t.jsxs)("button",{type:"button",className:eD.default.category,"data-initial-focus":0===n?"":void 0,"aria-pressed":g===e,disabled:"example"===e&&!f.length,onClick:()=>{x(e),I(null)},children:[(0,t.jsxs)("span",{className:eD.default.categoryIcon,children:[(0,t.jsx)(a,{size:21,"aria-hidden":"true"}),g===e&&(0,t.jsx)(ef.Check,{className:eD.default.selectedMark,size:12,"aria-hidden":"true"})]}),(0,t.jsx)("strong",{children:B[e]}),(0,t.jsx)("span",{children:r})]},e))})]}),g&&(0,t.jsxs)("div",{className:eD.default.reportFields,children:[u&&("audio"===g||"example"===g)&&(0,t.jsxs)("label",{children:[s("audio"===g?"feedbackDialog_which_recording":"feedbackDialog_which_example"),(0,t.jsxs)("span",{className:eD.default.selectWrap,children:[(0,t.jsx)("select",{lang:"nb",value:"audio"===g?y:b,onChange:e=>"audio"===g?k(e.target.value):w(e.target.value),children:("audio"===g?m:f).map(e=>(0,t.jsx)("option",{children:e},e))}),(0,t.jsx)(eP.ChevronDown,{size:16,"aria-hidden":"true"})]})]}),"combination"===g&&(0,t.jsxs)("label",{children:[s("feedbackDialog_what_word_did_you_expect"),(0,t.jsx)("span",{className:eD.default.optional,children:s("feedbackDialog_optional")}),(0,t.jsx)("input",{value:N,maxLength:100,onChange:e=>S(e.target.value),placeholder:s("feedbackDialog_your_suggested_word")})]}),(0,t.jsxs)("label",{children:["general"!==g&&(0,t.jsxs)(t.Fragment,{children:[s("feedbackDialog_anything_to_add"),(0,t.jsx)("span",{className:eD.default.optional,children:s("feedbackDialog_optional")})]}),(0,t.jsx)("textarea",{"aria-labelledby":"general"===g?i:void 0,"data-initial-focus":u?void 0:"",value:v,maxLength:2e3,required:"general"===g,onChange:e=>j(e.target.value),placeholder:s("audio"===g?"feedbackDialog_for_example_the_voice_sounds_unnatural":"image"===g?"feedbackDialog_for_example_the_picture_shows_something_else":"example"===g?"feedbackDialog_for_example_the_translation_seems_wrong":"feedbackDialog_an_idea_something_wrong_or_something_you_liked")})]})]})]}),T&&(0,t.jsx)("p",{role:"alert",className:eD.default.error,children:s(T)}),(0,t.jsxs)("footer",{className:eD.default.footer,children:[(0,t.jsx)("p",{children:s("feedbackDialog_sent_to_martin_no_account_needed")}),(0,t.jsxs)("div",{className:eD.default.actions,children:[(0,t.jsx)("button",{type:"button",className:eD.default.secondary,onClick:n,children:s("feedbackDialog_cancel")}),(0,t.jsxs)("button",{className:eD.default.primary,disabled:D||!g||"general"===g&&!v.trim(),children:[D?(0,t.jsx)(em.LoaderCircle,{size:16,className:eD.default.spin,"aria-hidden":"true"}):(0,t.jsx)(tk.Send,{size:15,"aria-hidden":"true"}),s(D?"feedbackDialog_sending":"feedbackDialog_send_report")]})]})]})]})]})}let tN={recipe_changed:"recipe_changed_help",demo_limit:"demoDialog_you_ve_reached_the_end_of_the_demo",rate_limited:"error_rate_limited",pending:"error_pending",unavailable:"error_combination"};
1class tS extends Error{code;constructor(e){super(e),this.code=e}}var tC=e.i(329788);function tA({count:e,limit:a,onUnlock:n,pack:s,onShowPacks:i,onPacksOpenChange:o}){let d=(0,l.useGameTranslations)(),[c,u]=(0,r.useState)(!1),h=(0,r.useRef)(null),f=(0,r.useRef)(null),m=(0,r.useId)(),p=s?.at??a,g=s?.complete?p:Math.min(Math.max(0,e),p),_=Math.max(0,p-g),x=!!s,y=d(s?s.complete?"pack_progress_complete":"collection_next_pack":"common_demo");return(0,r.useEffect)(()=>(o(c&&x),()=>o(!1)),[c,x,o]),(0,r.useEffect)(()=>{if(c)return document.addEventListener("pointerdown",e),document.addEventListener("keydown",t),()=>{document.removeEventListener("pointerdown",e),document.removeEventListener("keydown",t)};function e(e){h.current?.contains(e.target)||u(!1)}function t(e){"Escape"===e.key&&(e.preventDefault(),u(!1),f.current?.focus({preventScroll:!0}))}},[c]),(0,t.jsxs)("div",{className:tC.default.root,"data-pack":x||void 0,ref:h,onBlur:e=>{e.currentTarget.contains(e.relatedTarget)||u(!1)},children:[(0,t.jsxs)("button",{ref:f,type:"button",className:tC.default.trigger,"aria-expanded":c,"aria-controls":m,"aria-label":s?`${y}: ${g}/${p}`:`${y}: ${d("demo_remaining",{count:_})}`,onClick:()=>{!c&&s&&i(),u(e=>!e)},children:[(0,t.jsx)("span",{className:tC.default.track,"aria-hidden":"true",children:(0,t.jsx)("span",{style:{width:`${p>0?g/p*100:100}%`}})}),(0,t.jsxs)("span",{className:tC.default.count,"aria-hidden":"true",children:[g,"/",p]})]}),c&&(0,t.jsx)("section",{className:tC.default.panel,id:m,"aria-label":y,children:s?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("strong",{children:y}),(0,t.jsx)("p",{children:s.complete?d("pack_progress_complete_help"):d("pack_progress_help",{count:_,words:s.wordCount})})]}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("strong",{children:_?d("demo_remaining",{count:_}):d("demoDialog_you_ve_reached_the_end_of_the_demo")}),(0,t.jsx)("p",{children:d("demo_progress_explanation",{limit:a})}),(0,t.jsx)("p",{children:d("demo_progress_keep_playing")}),(0,t.jsx)("button",{type:"button",className:tC.default.unlock,onClick:()=>{u(!1),f.current?.focus({preventScroll:!0}),n()},children:d("purchase_buy")}),(0,t.jsxs)("small",{children:[d("purchase_once")," ",d("purchase_no_subscription")]})]})})]})}function tM(e,t,a,r){let n=Math.max(t.x,t.x+t.width-e.width),l=Math.max(t.y,t.y+t.height-e.height),s=e=>Math.max(t.x,Math.min(n,e)),i=e=>Math.max(t.y,Math.min(l,e)),o={x:s(r.x),y:i(r.y)},d=new Set([o.x,t.x,n]),c=new Set([o.y,t.y,l]);for(let t of a)d.add(s(t.x-e.width-12)),d.add(s(t.x+t.width+12)),c.add(i(t.y-e.height-12)),c.add(i(t.y+t.height+12));let u=o,h=1/0,f=1/0;for(let t of d)for(let r of c){let n=0;for(let l of a)n+=Math.max(0,Math.min(t+e.width+12,l.x+l.width)-Math.max(t-12,l.x))*Math.max(0,Math.min(r+e.height+12,l.y+l.height)-Math.max(r-12,l.y));let l=(t-o.x)**2+(r-o.y)**2;(n<h||n===h&&l<f)&&(u={x:t,y:r},h=n,f=l)}return u}function tL(e,t){let a=t*Math.PI/180;return{width:Math.abs(Math.cos(a))*e.width+Math.abs(Math.sin(a))*e.height,height:Math.abs(Math.sin(a))*e.width+Math.abs(Math.cos(a))*e.height}}class t${animations=[];cancel(){this.animations.forEach(e=>e.cancel()),this.animations=[]}animate(e,t,a){let r=e.animate(t,{fill:"both",...a});return this.animations.push(r),r.finished.catch(()=>void 0)}reduced(){return window.matchMedia("(prefers-reduced-motion: reduce)").matches}cards(e){return Array.from(e.querySelectorAll("[data-tile]"))}center(e,t){let a=e.querySelector("footer")?.offsetTop??e.clientHeight;return{x:(e.clientWidth-t.offsetWidth)/2-t.offsetLeft,y:(a-t.offsetHeight)/2-t.offsetTop}}async gather(e){this.cancel(),this.reduced()||await Promise.all(this.cards(e).map((t,a)=>{let{x:r,y:n}=this.center(e,t);return this.animate(t,[{transform:getComputedStyle(t).transform,opacity:1},{transform:`translate(${r}px, ${n}px) rotate(${a%5*3-6}deg) scale(.82)`,opacity:1}],{duration:400,easing:"cubic-bezier(.5, 0, .8, .5)"})}))}async deal(e){this.cancel(),this.reduced()||(await Promise.all(this.cards(e).map((t,a)=>{let{x:r,y:n}=this.center(e,t),l=parseFloat(t.style.getPropertyValue("--angle"))||0;return this.animate(t,[{transform:`translate(${r}px, ${n}px) rotate(${a%5*4-8}deg) scale(.82)`,opacity:0}
1,{opacity:1,offset:.12},{transform:`translate(${-(.025*r)}px, ${-(.025*n)-3}px) rotate(${l+1.5}deg) scale(1.025)`,opacity:1,offset:.8},{transform:`rotate(${l}deg)`,opacity:1}],{duration:840,delay:72*a,easing:"cubic-bezier(.18, .7, .25, 1)"})})),this.cancel())}async sweep(e){if(this.cancel(),this.reduced())return;let t=e.clientWidth,a=(e.querySelector("footer")?.offsetTop??e.clientHeight)-12,r=Math.min(40,.08*Math.max(1,a-12)),n=Math.max(25,t-24),l=e.querySelector("[data-board-broom]"),s=[],i=(e,t,a)=>`translate(${e-60}px, ${t-60}px) rotate(${a}deg)`,o=[{transform:i(-60,12,-24),opacity:0,offset:0}],d=Array.from({length:97},(e,t)=>{let l=t/96,s=4*l*Math.PI;return{x:24+(n-24)*(1-Math.cos(s))/2,y:12+r+Math.max(1,a-12-2*r)*l,tilt:-24*Math.sin(s),direction:Math.sin(s)>=0?1:-1,time:100+2160*l}});for(let e of d)o.push({transform:i(e.x,e.y,e.tilt),opacity:1,offset:e.time/2440});for(let r of(o.push({transform:i(-90,a+40,24),opacity:0,offset:1}),l&&s.push(this.animate(l,o,{duration:2440,easing:"linear"})),this.cards(e))){let e=parseFloat(r.style.getPropertyValue("--angle"))||0,a=r.offsetLeft+r.offsetWidth/2,n=r.offsetTop+r.offsetHeight/2,l=e=>(e.x-a)**2+(e.y-n)**2,i=d.reduce((e,t)=>l(t)<l(e)?t:e),o=i.direction,c=1===o?t-r.offsetLeft+100:r.offsetLeft+r.offsetWidth+100;s.push(this.animate(r,[{transform:`rotate(${e}deg)`,opacity:1},{transform:`translate(${24*o}px, 8px) rotate(${e+9*o}deg)`,opacity:1,offset:.25},{transform:`translate(${Math.min(c,240)*o}px, 28px) rotate(${e+24*o}deg) scale(.7)`,opacity:0}],{duration:300,delay:i.time,easing:"cubic-bezier(.4, 0, .8, .5)"}))}await Promise.all(s)}}let tO="ordlek-playground-v1",tR=[[.15,.11],[.51,.34],[.07,.3],[.52,.76],[.42,.1],[.73,.13],[.81,.29],[.25,.66],[.13,.47],[.14,.81],[.05,.61],[.4,.55],[.77,.75],[.66,.58],[.47,.89],[.77,.91]],tD=()=>z.STARTER_IDS.map((e,t)=>({key:`initial-${e}`,word:e,x:tR[t][0],y:tR[t][1],angle:[-3,2,-1,3,2,-3,1][t%7]})),tE=(e,t,a)=>Math.min(Math.max(e,t),Math.max(t,a));function tT({showPlanningBoard:e=!1,storageKey:i=tO,signedIn:o=!1,opening:d=!1,onOpeningReady:c}){let{signOut:h}=(0,eb.useAuthActions)(),[f,m]=(0,r.useState)(!1),[x,y]=(0,r.useState)(!1),[k,b]=(0,r.useState)(!1),[w,v]=(0,r.useState)(null),[L,B]=(0,r.useState)(!1),[H,Y]=(0,r.useState)(!1),[F,X]=(0,r.useState)(null),[U,et]=(0,r.useState)([]),[es,ec]=(0,r.useState)(()=>({...Z,...K.CATALOG_WORDS})),eh=(0,r.useMemo)(()=>Object.fromEntries(Object.entries(es).map(([e,t])=>[e,{...(0,J.applyCorrections)((0,K.withPackArtwork)(t),U),label:t.label.toLocaleLowerCase("nb")}])),[es,U]),[ef,em]=(0,r.useState)([]),[ep,e_]=(0,r.useState)([]),[ev,eN]=(0,r.useState)({}),[eS,eA]=(0,r.useState)([]),eM=(0,r.useRef)(new Map),eL=eS.length>0,eO=new Set(eS.flatMap(e=>e.keys)),[eR,eD]=(0,r.useState)([]),[eE,eI]=(0,r.useState)([]),[eG,eP]=(0,r.useState)(0),[eW,ez]=(0,r.useState)(null),eB=(0,r.useRef)(0),eH=(0,r.useRef)(!1),eY=(0,r.useRef)(!0),[eV,eX]=(0,r.useState)(tD),[eZ,eK]=(0,r.useState)(z.STARTER_IDS),[eJ,e0]=(0,r.useState)([]),[e1,e5]=(0,r.useState)([]),[e3,e7]=(0,r.useState)([]),[e6,e9]=(0,r.useState)([]),te=e6[0]??null,[tt,ta]=(0,r.useState)(!1),[tr,tn]=(0,r.useState)(!1),[tl,ts]=(0,r.useState)(!0),[ti,to]=(0,r.useState)(!1),[td,tc]=(0,r.useState)(!1),[tu,tf]=(0,r.useState)(!1),[tm,tp]=(0,r.useState)("en");(0,r.useEffect)(()=>{(0,a.analyticsContext)({locale:tm,norwegianOnly:L,signed_in:o})},[tm,L,o]);let tx=(0,r.useRef)(null),[ty,tk]=(0,r.useState)(null);(0,r.useEffect)(()=>{let e=tx.current;!ty||!e||e.steps.has(ty)||(e.steps.add(ty),(0,a.trackOrdlek)("tutorial_step",{tutorialRunId:e.id,step:ty,firstRun:e.first,guideVersion:"2026-09-21-v1"}))},[ty]);let[tb,tw]=(0,r.useState)(!1),[tv,tC]=(0,r.useState)(null),tR=(0,r.useRef)(null),tT=(0,r.useRef)(null),tI=(0,r.useRef)(null),[tG,tq]=(0,r.useState)(!1),[tP,tW]=(0,r.useState)([]),[tz,tB]=(0,r.useState)(null),tH=(0,r.useRef)(0),[tY,tF]=(0,r.useState)("recent"),[tV,tX]=(0,r.useState)(""),[tZ,tU]=(0,r.useState)(!1),tK=(0,r.useRef)(null),tQ=(0,r.useRef)(null),tJ=(0,r.useRef)(null);function t0(){tU(!1),tX(""),tJ.current?.focus({preventScroll:!0})}(0,r.useLayoutEffect)(()=>{if(tZ&&tK.current)return function(e,t){if(!t)return;let a=()=>{Math.abs(t.scale-1)>.01||(e.style.setProperty("--search-viewport-height",`${t.height}px`),e.style.setProperty("--search-viewport-top",`${t.offsetTop}px`))};return a(),t.addEventListener("resize",a),t.addEventListener("scroll",a),()=>{t.removeEventListener("resize",a),t.removeEventListener("scroll",a),e.style.removeProperty("--search-viewport-height"),e.style.removeProperty("--search-viewport-top")}}
1(tK.current,window.visualViewport)},[tZ]),(0,r.useEffect)(()=>{tZ&&tQ.current?.focus({preventScroll:!0})},[tZ]);let[t1,t2]=(0,r.useState)(!0),[t4,t5]=(0,r.useState)(!0),[t8,t3]=(0,r.useState)(!0),[t7,t6]=(0,r.useState)(null),[t9,ae]=(0,r.useState)(null),at=(0,r.useRef)(null),[aa,ar]=(0,r.useState)(null),[an,al]=(0,r.useState)(null),[as,ai]=(0,r.useState)([]),[ao,ad]=(0,r.useState)(null),[ac,au]=(0,r.useState)(!0),[ah,af]=(0,r.useState)(!1),am=(0,r.useRef)(null),ap=(0,r.useRef)(null),ag=(0,r.useRef)(!1),a_=(0,r.useRef)(!1),ax=(0,r.useRef)(new t$),[ay,ak]=(0,r.useState)(!1),ab=(0,r.useRef)(null),aw=(0,r.useRef)(null),av=(0,r.useRef)(!1),aj=(0,r.useRef)(null),aN=(0,r.useRef)(null),aS=(0,r.useRef)(null),aC=(0,r.useRef)([]),aA=(0,r.useRef)(null),aM=(0,r.useRef)(!1),aL=(0,r.useRef)(t4),a$=tz?eh[tz]:null;(0,r.useEffect)(()=>{let e=!1,t="",a=(0,p.startVisibleRefresh)(async()=>{let a=await fetch("/wordgame/feedback/api?corrections=1",{cache:"no-store",signal:AbortSignal.timeout(15e3)});if(!a.ok)return!1;let r=await a.json();if(!e&&r?.corrections){let e=JSON.stringify(r.corrections);e!==t&&(t=e,et(r.corrections),aN.current?.setCorrections(r.corrections))}},6e4);return()=>{e=!0,a.stop()}},[]),(0,r.useEffect)(()=>{eY.current=!0;let e=ax.current,t=eM.current;aj.current=new Q,aN.current=new ea;let a=setTimeout(()=>{let e=(0,u.readPurchaseContinuation)(window.location.href);e&&(v(e),ts(!1),y(!0));let t=function(e){try{let t=localStorage.getItem(e),a=t||localStorage.getItem("ordlek-legacy-imported")?null:localStorage.getItem(tO),r=JSON.parse(t||a||"null");if(r&&a){let e=(0,n.readGuideSave)();r.language??=e.language,r.guideDismissed??=e.dismissed,r.guideCompleted??=e.completed}return ei(r)}catch{return null}}(i),a=(0,n.readGuideSave)(),r=null;try{r=localStorage.getItem(eQ.LANGUAGE_PREFERENCE_STORAGE)}catch{}let l=!!(t?.guideDismissed||t?.guideCompleted||t?.successfulPairs.length||a.dismissed);tp((0,s.isGameLocale)(r)?r:t?.language??a.language),tc(!e&&!(0,s.isGameLocale)(r)&&!l),tf(t?.guideDismissed??a.dismissed),Y(t?.guideCompleted??a.completed),B(t?.norwegianOnly===!0),to(l),t?(eD(t.unread??[]),e0(t.history),ec(t.words),em(t.outdated??[]),e_(t.retiredPairs??[]),eN(t.routes),eX(t.tiles),eK(t.discovered),e5(t.successfulPairs),e7(t.unlockedPacks),tW(t.favorites),t2(t.sound),t5(t.speech),t3(t.showArticles)):(ag.current=!0,eX(tD())),af(!0)},0);return()=>{eY.current=!1,e.cancel(),t.forEach(e=>e.controller.abort()),t.clear(),clearTimeout(a),aC.current.forEach(clearTimeout),aA.current&&clearTimeout(aA.current),aj.current?.dispose(),aN.current?.dispose()}},[i]);let aO=(0,r.useMemo)(()=>({unread:eR,outdated:ef,retiredPairs:ep,history:eJ,words:Object.fromEntries(eZ.map(e=>[e,eh[e]])),routes:ev,discovered:eZ,successfulPairs:e1,unlockedPacks:e3,favorites:tP,tiles:tT.current??eV,sound:t1,speech:t4,showArticles:t8,language:tm,norwegianOnly:L,guideDismissed:tu,guideCompleted:H}),[eR,ef,ep,eJ,eh,ev,eZ,e1,e3,tP,eV,t1,t4,t8,tm,L,tu,H]),aR=function(e,t,a,n,l){let[i,o]=(0,r.useState)(null),[d,c]=(0,r.useState)("loading"),u=(0,r.useRef)({save:e,ready:t,busy:a,onRestore:l}),h=(0,r.useRef)(new Map),f=(0,r.useRef)(new Map),m=(0,r.useRef)(!1),g=(0,r.useRef)(null),_=(0,r.useRef)(!0),x=(0,r.useRef)(!1),y=(0,r.useRef)(0),k=(0,r.useRef)(!1),b=(0,r.useRef)(0),w=(0,r.useRef)(null);(0,r.useEffect)(()=>{u.current={save:e,ready:t,busy:a,onRestore:l}});let v=(0,r.useCallback)(()=>{try{localStorage.setItem(`${n}:pending`,JSON.stringify([...h.current.values()]))}catch{}},[n]);(0,r.useEffect)(()=>{if(t){if(!m.current){m.current=!0;try{y.current=Number(localStorage.getItem(`${n}:resetAt`))||0}catch{}try{var a;for(let e of(a=JSON.parse(localStorage.getItem(`${n}:pending`)??"[]"),Array.isArray(a)?a.flatMap(e=>{try{return[function(e,t=Date.now()){if(!e||"object"!=typeof e||!["setting","favorite","board","unread"].includes(e.kind)||"string"!=typeof e.key||"string"!=typeof e.data||e.data.length>3e4||!Number.isFinite(e.updatedAt))throw Error("Invalid save");let a=JSON.parse(e.data);if("setting"===e.kind&&(!["sound","speech","showArticles","language","norwegianOnly","guideDismissed","guideCompleted"].includes(e.ke
1y)||("language"===e.key?!(0,s.isGameLocale)(a):"boolean"!=typeof a)))throw Error("Invalid setting");if(("favorite"===e.kind||"unread"===e.kind)&&"boolean"!=typeof a)throw Error("Invalid favorite");if("board"===e.kind&&("tiles"!==e.key||!Array.isArray(a)||a.length>80||a.some(e=>!e||"string"!=typeof e.key||"string"!=typeof e.word||![e.x,e.y,e.angle].every(Number.isFinite))))throw Error("Invalid board");return{kind:e.kind,key:e.key,data:e.data,updatedAt:Math.min(e.updatedAt,t)}}(e)]}catch{return[]}}):[]))h.current.set(ed(e),e)}catch{}}for(let t of eo(e,Date.now()).filter(e=>["setting","favorite","board","unread"].includes(e.kind))){let e=ed(t);(x.current||f.current.has(e))&&f.current.get(e)!==t.data&&h.current.set(e,t),f.current.set(e,t.data)}v()}},[e,t,n,v]);let j=(0,r.useCallback)(async function e(t){if(!u.current.ready)return!1;if(g.current){let a=await g.current;return"manual"===t?e("manual"):a}if("change"===t&&x.current&&0===h.current.size)return!0;let a=(async()=>{c("saving");let e=[...h.current.values()].slice(0,100),a=u.current.save,r="manual"===t||!x.current||Date.now()-b.current>=6e4||"resume"===t,l=k.current?void 0:{...a,words:Object.fromEntries(a.discovered.flatMap(e=>a.words[e]?[[e,a.words[e]]]:[]))};try{let t=await fetch("/wordgame/player/api",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...l?{legacy:l}:{},entries:e,resetAt:y.current,mode:r?"refresh":"save"}),signal:AbortSignal.timeout(3e4)}),s=await t.json();if(!t.ok)throw Error(s.error);if(!_.current)return!1;if(s.needsLegacy)return k.current=!1,!1;k.current=!0;let i=(s.resetAt??0)!==y.current;if(i){h.current.clear(),f.current.clear(),y.current=s.resetAt??0;try{localStorage.setItem(`${n}:resetAt`,String(y.current)),localStorage.removeItem(n)}catch{}}for(let t of e)h.current.get(ed(t))?.updatedAt===t.updatedAt&&h.current.delete(ed(t));if(v(),o(s),s.saved)return c(h.current.size?"saving":"saved"),h.current.size&&w.current?.changed(),!0;b.current=Date.now();let d=!x.current&&u.current.busy;if(i||!x.current||!u.current.busy&&u.current.save===a){let e=new Map(s.entries.map(e=>[ed(e),e]));for(let t of h.current.values())e.set(ed(t),t);let t=function(e){let t={words:{},discovered:[],routes:{},successfulPairs:[],unlockedPacks:[],favorites:[],unread:[],history:[]};for(let a of[...e].sort((e,t)=>e.updatedAt-t.updatedAt)){let e=JSON.parse(a.data);switch(a.kind){case"word":t.words[a.key]=e,t.discovered.push(a.key);break;case"route":t.routes[a.key]=e;break;case"pair":t.successfulPairs.push(a.key);break;case"pack":t.unlockedPacks.push(Number(a.key));break;case"unread":e&&t.unread.push(a.key);break;case"favorite":e&&t.favorites.push(a.key);break;case"history":t.history.push(e);break;case"board":t.tiles=e;break;case"setting":Object.assign(t,{[a.key]:e})}}return t.history.sort((e,t)=>(e.at??0)-(t.at??0)||(e.id??"").localeCompare(t.id??"")),t.history=t.history.slice(-50),t}([...e.values()]),r=ei({...a,...t,routes:{...t.routes,...s.activeRoutes},outdated:s.outdated??[],retiredPairs:s.retiredPairs??[],words:{...i?{}:a.words,...t.words},tiles:i?[]:d?u.current.save.tiles:t.tiles?.length||e.has("board:tiles")?t.tiles:a.tiles});if(r){for(let e of eo(r,0))f.current.set(ed(e),e.data);u.current.onRestore(r,i),x.current=!0;try{localStorage.setItem("ordlek-legacy-imported","true")}catch{}}}return c(h.current.size?"saving":"saved"),h.current.size&&w.current?.changed(),!0}catch{return _.current&&c("error"),!1}})();g.current=a;try{return await a}finally{g.current=null}},[v,n]),N=(0,r.useCallback)(async()=>{if(!await j("manual"))throw Error("Progress synchronization failed")},[j]);return(0,r.useEffect)(()=>{if(_.current=!0,!t)return;let e=(0,p.startVisibleRefresh)(e=>u.current.busy&&x.current?Promise.resolve(!1):j(e),6e4);return w.current=e,()=>{_.current=!1,e.stop(),w.current=null}},[t,j]),(0,r.useEffect)(()=>{t&&!a&&h.current.size&&w.current?.changed()},[e,t,a]),{player:i,setPlayer:o,syncState:d,sync:N,cloudReady:null!==i&&x.current}}(aO,ah,eL||ay||!!t7||!!ty||null!==te,i,(0,r.useCallback)((e,t)=>{t&&(eM.current.forEach(e=>e.controller.abort()),eM.current.clear(),eA([]),e9([]),tB(null),ae(null),tT.current=null,tk(null)),eD(e.unread??[]),e0(e.history),ec(e.words),to(a=>!t&&(a||!0===e.guideDismissed||!0===e.guideCompleted||e.successfulPairs.length>0||e.discovered.length>z.STARTER_IDS.length)),em(e.outdated??[]),e_(e.retiredPairs??[]),eN(e.routes),eK(e.discovered),e5(e.successfulPairs),e7(e.unlockedPacks),tW(e.favorites),tT.current?tT.current=e.tiles:eX(e.tiles),t2(e.sound),t5(e.speech),t3(e.showArticles),tp(e.language??"en"),B(!0===e.norweg
1ianOnly),tf(!0===e.guideDismissed),Y(!0===e.guideCompleted),(e.guideDismissed||e.guideCompleted||e.successfulPairs.length>0)&&tc(!1)},[])),aD=(0,r.useRef)(!1);(0,r.useEffect)(()=>{aR.cloudReady&&((0,a.analyticsContext)({access_tier:aR.player?.fullGame?"paid":"demo"}),aD.current||(aD.current=!0,(0,a.analyticsContext)({existing_progress:e1.length>0||eZ.length>z.STARTER_IDS.length})))},[aR.cloudReady,aR.player?.fullGame,e1.length,eZ.length]);let aE=(0,r.useRef)({discovered:eZ,successfulPairs:e1,unlockedPacks:e3});(0,r.useLayoutEffect)(()=>{aE.current={discovered:eZ,successfulPairs:e1,unlockedPacks:e3}},[eZ,e1,e3]);let aT=aR.player?.limit??25,aI=Math.max(aR.player?.successes??0,e1.length),aG=!aR.player?.fullGame&&aI>=aT,aq=(0,l.useGameTranslations)(tm);function aP(){window.history.replaceState(window.history.state,"",(0,u.purchaseContinuationPath)(window.location.href,null))}(0,r.useEffect)(()=>{if(aj.current&&(aj.current.muted=!t1),aL.current=t4,ah)try{localStorage.setItem(i,JSON.stringify(aO))}catch{}},[aO,ah,t1,t4,i]),(0,r.useEffect)(()=>{t4||aN.current?.stop()},[t4]),(0,r.useEffect)(()=>{let e=e=>{"Escape"===e.key&&(aw.current?.moved&&(aM.current=!0),aw.current=null,t6(null))},t=()=>{aw.current=null,t6(null)};return window.addEventListener("keydown",e),window.addEventListener("blur",t),()=>{window.removeEventListener("keydown",e),window.removeEventListener("blur",t)}},[]),(0,r.useEffect)(()=>{if(!ah||!am.current)return;let e=0,t=0,a=new ResizeObserver(([a])=>{let{width:r,height:n}=a.contentRect;if(r<=0||n<=0||r===e&&n===t||tK.current?.dataset.searchOpen==="true"&&window.innerWidth<=600&&r===e)return;e=r,t=n;let l=Array.from(am.current?.querySelectorAll("[data-tile]")??[]),s=(am.current?.querySelector("footer")?.offsetTop??n)-10;eX(e=>{let t=[];return e.map(e=>{let a=l.find(t=>t.dataset.tile===e.key),i={width:a?.offsetWidth??104,height:a?.offsetHeight??132},o=tL(i,e.angle),d={x:(o.width-i.width)/2,y:(o.height-i.height)/2},c={x:10,y:72,width:r-20,height:Math.max(o.height,s-72)},u=tT.current&&e.key.startsWith("guide-")?Math.min(.6*n,285):e.y*n,h={x:tE(e.x*r-d.x,10,r-10-o.width),y:tE(u-d.y,72,s-o.height)},f=t.some(e=>h.x<e.x+e.width&&h.x+o.width>e.x&&h.y<e.y+e.height&&h.y+o.height>e.y)?tM(o,c,t,h):h;return t.push({...f,...o}),{...e,x:(f.x+d.x)/r,y:(f.y+d.y)/n}})})});return a.observe(am.current),()=>a.disconnect()},[ah]),(0,r.useLayoutEffect)(()=>{eV.length||a_.current||ax.current.cancel(),a_.current&&!ag.current&&am.current&&(a_.current=!1,ax.current.deal(am.current).finally(()=>{eY.current&&(av.current=!1,ak(!1),tk(e=>"shuffle"===e?"packs":e))}))},[eV]),(0,r.useLayoutEffect)(()=>{if(!ag.current||!am.current)return;ag.current=!1;let e=am.current,{width:t,height:a}=e.getBoundingClientRect(),r=e.querySelector("footer")?.getBoundingClientRect().height??0,n=Array.from(e.querySelectorAll("[data-tile]")),l=eV.flatMap(e=>{let t=n.find(t=>t.dataset.tile===e.key);if(!t)return[];let a=(.5>Math.random()?-1:1)*(1.3+2.5*Math.random()),r={width:t.offsetWidth,height:t.offsetHeight};return[{tile:e,angle:a,rawSize:r,size:tL(r,a)}]}),s=(function(e,t,a=Math.random){if(!e.length)return[];let r=Math.max(...e.map(e=>e.width)),n=Math.max(...e.map(e=>e.height)),l=Math.max(0,Math.floor((t.width+6)/(r+6))),s=Math.max(0,Math.floor((t.height+6)/(n+6)));if(!l||!s)return[];let i=Math.min(e.length,l*s),o=Math.max(Math.ceil(i/s),Math.min(l,Math.round(Math.sqrt(i*t.width/t.height*n/r)))),d=Math.ceil(i/o),c=Array.from({length:d},(e,t)=>Math.floor(i/d)+ +(t<i%d));for(let e=d-1;e>0;e--){let t=Math.floor(a()*(e+1));[c[e],c[t]]=[c[t],c[e]]}let u=[],h=t.height/d;for(let r=0;r<d;r++){let n=t.width/c[r];for(let l=0;l<c[r];l++){let s=e[u.length];u.push({x:t.x+l*n+Math.min(3,(n-s.width)/2)+a()*Math.max(0,n-s.width-6),y:t.y+r*h+Math.min(3,(h-s.height)/2)+a()*Math.max(0,h-s.height-6)})}}for(let l=0;l<30;l++)for(let l=0;l<u.length;l++){let s=e[l],i={x:Math.max(t.x,Math.min(t.x+t.width-s.width,u[l].x+(a()-.5)*r)),y:Math.max(t.y,Math.min(t.y+t.height-s.height,u[l].y+(a()-.5)*n))};u.some((t,a)=>a!==l&&i.x<t.x+e[a].width+6&&i.x+s.width+6>t.x&&i.y<t.y+e[a].height+6&&i.y+s.height+6>t.y)||(u[l]=i)}return u})(l.map(e=>e.size),{x:10,y:72,width:t-20,height:a-r-72-32}).map((e,r)=>{let{tile:n,angle:s,rawSize:i,size:o}=l[r];return{...n,angle:s,x:(e.x+(o.width-i.width)/2)/t,y:(e.y+(o.height-i.height)/2)/a}});eX(s),aF("board_shuffled",{count:s.length},!1)},[eV]),(0,r.useLayoutEffect)(()=>
1{if(null!==te||!ab.current)return;let e=ab.current;ab.current=null,Array.from(am.current?.querySelectorAll("[data-tile]")??[]).find(t=>t.dataset.tile===e)?.focus({preventScroll:!0})},[te,eV]),(0,r.useLayoutEffect)(()=>{let e=new ResizeObserver(e=>{for(let{target:t}of e)t.style.setProperty("--measured-width",`${t.offsetWidth}px`),t.style.setProperty("--measured-height",`${t.offsetHeight}px`)});return am.current?.querySelectorAll("[data-tile]").forEach(t=>{t.style.setProperty("--measured-width",`${t.offsetWidth}px`),t.style.setProperty("--measured-height",`${t.offsetHeight}px`),e.observe(t)}),()=>e.disconnect()},[eV,t8]);let aW=eZ.join("|"),az=eZ.filter(e=>K.CATALOG_WORDS[e]&&eh[e]?.artwork?.status==="pending").join("|");async function aB(e){try{if(!(await fetch("/wordgame/api",{method:"POST",headers:(0,g.wordgameHeaders)(),body:JSON.stringify({action:"artwork",id:e,retry:!0})})).ok)throw Error("Artwork request failed");ec(t=>({...t,[e]:{...t[e],artwork:{status:"pending"}}})),eP(e=>e+1)}catch{ec(t=>({...t,[e]:{...t[e],artwork:{status:"error"}}})),aF("artwork_error")}}async function aH(e){ec(t=>({...t,[e]:{...t[e],learningStatus:"pending"}}));try{if(!(await fetch("/wordgame/api",{method:"POST",headers:(0,g.wordgameHeaders)(),body:JSON.stringify({action:"learn",id:e,retry:!0}),signal:AbortSignal.timeout(15e3)})).ok)throw Error("Learning request failed");eP(e=>e+1);for(let t=0;t<65&&eY.current;t++){await new Promise(e=>setTimeout(e,2e3));let t=await fetch(`/wordgame/api?${new URLSearchParams({id:e})}`,{cache:"no-store",signal:AbortSignal.timeout(15e3)});if(!t.ok)break;let a=(await t.json()).words[e];if(a&&eY.current){if(ec(t=>({...t,[e]:{...a,id:e},[a.id]:a})),a.id!==e){let t=t=>t===e?a.id:t;eK(e=>[...new Set(e.map(t))]),tW(e=>[...new Set(e.map(t))]),eX(e=>e.map(e=>({...e,word:t(e.word)}))),tB(e=>e?t(e):null),eD(e=>[...new Set(e.map(t))]),ae(e=>e?t(e):null),eN(e=>Object.fromEntries(Object.entries(e).map(([e,a])=>[t(e),a.map(t)]))),e5(e=>(0,K.canonicalSuccessfulPairs)(e,t)),e0(e=>el(e,t))}if("pending"!==a.learningStatus)return}}}catch{}eY.current&&ec(t=>({...t,[e]:{...t[e],learningStatus:"error"}}))}function aY(e,t){let a=setTimeout(()=>{aC.current=aC.current.filter(e=>e!==a),e()},t);aC.current.push(a)}function aF(e,t={},a=!0){ad({key:e,values:t}),au(a),aA.current&&clearTimeout(aA.current),aA.current=setTimeout(()=>ad(null),4200)}function aV(e,t=tz,a=!1,r){if(a&&eH.current)return;aS.current=null;let n=aN.current;if(!n)return;if(r&&eW?.control===r&&eW.word===t&&eW.text===e&&"playing"===eW.state)return void n.stop();let l=++eB.current;eH.current=!a,ez(null);let s=!!t&&!!K.CATALOG_WORDS[t];n.play(e,s&&a?void 0:t??void 0,{automatic:a,onLoading:()=>{a||r||l!==eB.current||aF("speech_generating")},onState:n=>{eY.current&&l===eB.current&&(("idle"===n||"error"===n)&&(eH.current=!1),!a&&(ez("idle"===n?null:{word:t,text:e,control:r,state:n}),"playing"===n&&ad(null),"error"!==n||r||aF("speech_error")))}})}function aX(e){(0,a.trackOrdlek)("word_opened",{wordId:e}),eB.current++,eH.current=!1,ez(null),at.current=document.activeElement instanceof HTMLElement?document.activeElement:null,tB(e),eD(t=>t.filter(t=>t!==e)),aN.current?.stop(),aS.current=null,t4&&("pending"===eh[e].learningStatus?aS.current=e:aV((0,_.wordPronunciation)(eh[e]),e,!0))}function aZ(e){let t=Array.from(am.current?.querySelectorAll("[data-tile]")??[]).find(t=>t.dataset.word===e);return t?{width:t.offsetWidth,height:t.offsetHeight}:aU(eh[e])}function aU(e){let t=am.current,a=document.createElement("button");a.className=er.default.tile,a.style.cssText="visibility:hidden;pointer-events:none;left:0;top:0",a.setAttribute("aria-hidden","true");let r=document.createElement("span");r.className=er.default.emoji;let n=document.createElement("span");n.className=er.default.wordArtwork,r.append(n);let l=document.createElement("span");l.className=er.default.wordLabel;let s=(0,_.wordLabelParts)(e,t8);if(s.prefix){let e=document.createElement("small");e.className=er.default.article,e.textContent=s.prefix,l.append(e)}let i=document.createElement("span");i.textContent=s.label.toLocaleLowerCase("nb"),l.append(i),a.append(r,l),t.append(a);let o={width:a.offsetWidth,height:a.offsetHeight};return a.remove(),o}function aK(e,t,a){let r=am.current,n=r.getBoundingClientRect(),l=aU(e),s=Array.from(r.querySelectorAll("[data-tile]")).filter(e=>!t.includes(e.dataset.tile)).map(e=>{let t=Number.parseFloat(e.style.getPropertyValue("--angle"))*Math.PI/180||0,a=Math.abs(Math.cos(t))*e.offsetWidth+Math.abs(Math.sin(t))*e.offsetHeight,r=Math.abs(Math.sin(t))*e.offsetWidth+Math.abs(Math.cos(t))*e.offsetHeight;return{x:e.offsetLeft-(a-e.offsetWidth)/2,y:e.offsetTop-(r-e.offsetHeight)/2,width:a,height:r}}),i=r.querySelector("footer")?.getBoundingClientRect().height??0,o=n.height-i-32,d=tM(l,{x:10,y:72,width:n.width-20,height:Math.max(l.height,o-72)},s,{x:a?a.x*n.width:(n.width-l.width)/2+(Math.random()-.5)*64,y:a?a.y*n.height:.44*n.height-l.height/2+(Math.random()-.5)*48});return{position:{x:d.x/n.width,y:d.y/n.height},destination:{left:n.left+d.x,top:n.top+d.y,...l}}}function aQ(e,t,a=t?"drag":"click"){if(av.current)return;if(!t_(ty,e,a)){"drag-fire"===ty&&aF("guide_drag_fire_description");return}if(!eZ.includes(e))return;if(ef.includes(e)){aX(e),aF("recipe_changed_help");return}if(eV.length>=80)return void aF("board_full");let r="click-water"===ty||"drag-fire"===ty||"add-stone"===ty||"add-tree"===ty,n=am.current?.getBoundingClientRect(),l="add-stone"===ty||"add-tree"===ty,s=r?aU(eh[e]):null,i=n?{x:l?("stein"===e?12:n.width-(s?.width??80)-12)/n.width:"vann"===e?.16:.59,y:Math.min(.6,285/n.height)}:{x:.16,y:.5}
1,o=r?i:t??aK(eh[e],[]).position,d=r?`guide-${e}`:crypto.randomUUID(),c=r?(document.querySelector(`[data-detail-word="${e}"]`)??document.querySelector(`[data-library-word="${e}"]`))?.getBoundingClientRect().toJSON():void 0;eX(t=>[...t,{key:d,word:e,...o,angle:eV.length%5-2}]),ar(d),r&&(tB(null),tw(!1),tk("click-water"===ty?"drag-fire":"drag-fire"===ty?"combine":"add-stone"===ty?"add-tree":"try-pair"),c&&!t&&(av.current=!0,tC({key:d,word:e,origin:c}))),aj.current?.unlock(),aj.current?.play("drop"),aY(()=>ar(e=>e===d?null:e),900)}async function aJ(e,t,r){var n,l;if(av.current||r===t.key||ty&&"combine"!==ty&&"try-pair"!==ty)return;let s=[...eM.current.values()];if(s.some(({attempt:e})=>e.keys.includes(t.key)||r&&e.keys.includes(r)))return;if(s.length>=3)return void aF("board_pending_limit");if(s.some(({attempt:a})=>(0,V.pairKey)(...a.words)===(0,V.pairKey)(e,t.word)))return void aF("board_pair_pending");if([e,t.word].some(e=>ef.includes(e)))return void aF("recipe_changed_help");if(!aR.cloudReady)return void aF("ordlek_connect_to_save_your_game_before_combining_use_retry");if(aG&&!e1.includes((0,V.pairKey)(e,t.word)))return void y(!0);if(!eZ.includes(e)||!eZ.includes(t.word))return;if("combine"===ty&&!([e,t.word].includes("vann")&&[e,t.word].includes("ild")))return void aF("ordlek_try_vann_ild_for_this_first_discovery");if("try-pair"===ty&&!([e,t.word].includes("stein")&&[e,t.word].includes("tre")))return;let i=Array.from(am.current?.querySelectorAll("[data-tile]")??[]).find(e=>e.dataset.tile===t.key);if(!i)return;let o=Array.from(document.querySelectorAll("[data-tile], [data-library-word], [data-detail-word]")),d=document.querySelector("[data-drag-ghost]")??o.find(t=>r?t.dataset.tile===r:t.dataset.libraryWord===e||t.dataset.detailWord===e)??i,c={id:crypto.randomUUID(),words:[e,t.word],keys:[t.key,...r?[r]:[]],x:t.x,y:t.y,origins:[d.getBoundingClientRect().toJSON(),i.getBoundingClientRect().toJSON()]};(0,a.trackOrdlek)("combination_requested",{attemptId:c.id,tutorial:!!ty,tutorialRunId:tx.current?.id??""});let u=new AbortController;eM.current.set(c.id,{attempt:c,controller:u}),eA(e=>[...e,c]),aj.current?.unlock(),ad(null);let h=setTimeout(()=>(0,a.trackOrdlek)("stall_candidate",{reason:"request_wait_30s",attemptId:c.id}),3e4),f=Date.now(),m=0,p=0,x="",k,b=!1;try{let r,s=Date.now()+95e3;do{let a=performance.now();p++;let s=await fetch("/wordgame/api",{method:"POST",headers:(0,g.wordgameHeaders)(),body:JSON.stringify({action:"combine",locale:L?"nb":tm,first:e,second:t.word,attemptId:c.id}),signal:AbortSignal.any([u.signal,AbortSignal.timeout(7e4)])}),i=await s.json();if(m+=performance.now()-a,x=s.headers.get("X-Wordgame-Trace-Id")??"",!eY.current||u.signal.aborted)return;if(i.history&&e0(e=>(function(e,t){return[...e.filter(e=>!t.id||e.id!==t.id),t].slice(-50)})(e,i.history)),i.player&&aR.setPlayer(e=>({...i.player,successes:Math.max(e?.successes??0,i.player.successes)})),"recipe_changed"===i.code&&(em(i.outdated??[]),e_(i.retiredPairs??[])),"demo_limit"===i.code&&y(!0),!s.ok)throw new tS((n=i.co
1de,l=s.status,"string"==typeof n&&Object.hasOwn(tN,n)?n:429===l?"rate_limited":"unavailable"));if(r=i,"pending"!==r.status)break;await new Promise(e=>setTimeout(e,1200))}while(Date.now()<s&&!u.signal.aborted)if("pending"===r.status)throw new tS("pending");if(matchMedia("(prefers-reduced-motion: reduce)").matches||await new Promise(e=>setTimeout(e,Math.max(0,500-(Date.now()-f)))),!eY.current||u.signal.aborted)return;k=r.status,b=r.cached;let i=r.word,o=i?(0,K.rewardPack)(i):void 0;if(o&&!aE.current.unlockedPacks.includes(o.at))return void aF("board_pack_locked",{count:o.at});let d=o&&i?o.words.find(e=>(0,V.normalize)(K.CATALOG_WORDS[e].label)===(0,V.normalize)(i.label)):void 0,h=d?K.CATALOG_WORDS[d]:i;if(!h){"no_result"===r.status&&5==++tH.current&&(0,a.trackOrdlek)("stall_candidate",{reason:"five_misses"}),aj.current?.play("miss"),ai(e=>[...e,...c.keys]),aF("needs_review"===r.status?"board_review":"board_no_recipe",{first:(0,_.wordDisplayLabel)(eh[e],t8),second:(0,_.wordDisplayLabel)(eh[t.word],t8)}),"try-pair"===ty&&"no_result"===r.status&&tk("no-match-result"),aY(()=>ai(e=>e.filter(e=>!c.keys.includes(e))),550);return}let w=K.CATALOG_WORDS[h.id]&&!z.WORD_BY_ID[h.id]?{...h,artwork:eh[h.id]?.artwork??h.artwork??{status:"pending"}}:h,v=aE.current,j=(0,K.addSuccessfulPair)(v.successfulPairs,...r.ingredients),N=(0,K.earnedPacks)(j,v.unlockedPacks),S=N.filter(e=>!v.unlockedPacks.includes(e)),C=!v.discovered.includes(w.id),A=(0,K.addPackWords)(C?[...v.discovered,w.id]:v.discovered,N);aE.current={discovered:A,successfulPairs:j,unlockedPacks:N},C&&(tH.current=0);let M=crypto.randomUUID(),$=Array.from(am.current?.querySelectorAll("[data-tile]")??[]).find(e=>e.dataset.tile===t.key),O=$&&am.current?{x:$.offsetLeft/am.current.clientWidth,y:$.offsetTop/am.current.clientHeight}:c,{position:R}=aK(w,c.keys,O);em(e=>e.filter(e=>e!==w.id)),ec(e=>({...e,[w.id]:w})),eN(a=>({...a,[w.id]:[e,t.word]})),eX(e=>[...e.filter(e=>!c.keys.includes(e.key)),{key:M,word:w.id,...R,angle:0}]),eI(e=>[...e,M]),e5(j),e7(N),eK(A),eD(e=>[...new Set([...e,...A.filter(e=>!v.discovered.includes(e))])]),S.length&&e9(e=>[...e,...S]),"combine"===ty&&(ae(w.id),tk("study")),"try-pair"===ty&&tk("match-result"),aj.current?.play(C?"discover":"known"),aF(C?"board_discovered":"board_word",{word:(0,_.wordDisplayLabel)(w,t8)},!1),aY(()=>eI(e=>e.filter(e=>e!==M)),1e3)}catch(e){(0,a.trackOrdlek)("combination_failed",{attemptId:c.id,durationMs:Date.now()-f,failure_class:u.signal.aborted?"cancelled":e instanceof tS?e.code:e instanceof DOMException&&"TimeoutError"===e.name?"timeout":"network"}),eY.current&&!u.signal.aborted&&aF(e instanceof tS?tN[e.code]:e instanceof Error&&"TimeoutError"===e.name?"board_timeout":"error_combination")}finally{clearTimeout(h),eM.current.delete(c.id),eY.current&&eA(e=>e.filter(e=>e.id!==c.id)),k&&requestAnimationFrame(()=>requestAnimationFrame(()=>{eY.current&&"visible"===document.visibilityState&&(0,a.trackOrdlek)("combination_visible",{attemptId:c.id,traceId:x,outcome:k,cached:b,durationMs:Date.now()-f,networkMs:Math.round(m),requestCount:p})}))}}function a0(e,t,a){let r=ap.current?.getBoundingClientRect();if(!r||ty)return!1;let n=(e,t)=>e>=r.left&&e<=r.right&&t>=r.top&&t<=r.bottom;return n(e,t)||n(e-a.offsetX,t-a.offsetY)}function a1(e){let t,a=aw.current;if(!a||a.pointer!==e.pointerId||!a.moved&&6>Math.hypot(e.clientX-a.startX,e.clientY-a.startY))return;a.moved||aj.current?.play("lift"),ty&&tw(!0);let r=e.clientX-a.offsetX,n=e.clientY-a.offsetY,l=a0(e.clientX,e.clientY,a),s=l?[]:Array.from(am.current?.querySelectorAll("[data-tile]")??[]),i=1/0;for(let e of s){if(e.dataset.tile===a.key||eO.has(e.dataset.tile))continue;let l=e.getBoundingClientRect(),s=Math.hypot((r-l.left-l.width/2)/l.width,(n-l.top-l.height/2)/l.height);s<.8&&s<i&&(t=e.dataset.tile,i=s)}t&&t!==a.target&&aj.current?.play("target");let o={...a,moved:!0,x:e.clientX,y:e.clientY,target:t,overTrash:l};aw.current=o,t6(o)}function a2(e,t=!1){let a=aw.current;if(!a||a.pointer!==e.pointerId||(aw.current=null,t6(null),t||!a.moved))return;if(aM.current=!0,aY(()=>{aM.current=!1},0),a0(e.clientX,e.clientY,a)){a.key&&!eO.has(a.key)&&(eX(e=>e.filter(e=>e.key!==a.key)),aj.current?.play("drop"),aF("board_word_removed",{word:eh[a.word].label},!1));return}let r=a.overTrash?void 0:eV.find(e=>e.key===a.target);if(r&&"drag-fire"!==ty&&"add-stone"!==ty&&"add-tree"!==ty)return void aJ(a.word,r,a.key);let n=am.current.getBoundingClientRect();if(e.clientX<n.left||e.clientX>
1n.right||e.clientY<n.top||e.clientY>n.bottom){a.key&&!ty&&(eX(e=>e.filter(e=>e.key!==a.key)),aj.current?.play("drop"));return}let l=function(e,t,a){let r=am.current.getBoundingClientRect(),{width:n,height:l}=aZ(a);return{x:tE(e-r.left-n/2,10,r.width-n-10)/r.width,y:tE(t-r.top-l/2,12,r.height-l-12)/r.height}}(e.clientX-a.offsetX,e.clientY-a.offsetY,a.word);a.key?(eX(e=>e.map(e=>e.key===a.key?{...e,...l,angle:tE((a.x-a.startX)/80,-3,3)}:e)),al(a.key),aY(()=>al(e=>e===a.key?null:e),380),aj.current?.play("drop")):aQ(a.word,l)}function a4(e,t,a=!1){return{"data-outdated":ef.includes(e),"aria-describedby":ef.includes(e)?"ordlek-outdated-help":void 0,onPointerDown:a=>(function(e,t,a){if(ef.includes(t)||ty&&"combine"!==ty&&"try-pair"!==ty&&!t_(ty,t,"drag")||0!==e.button||av.current||aw.current||!ah||a&&eO.has(a))return;aM.current=!1,aj.current?.unlock();let r=e.currentTarget.getBoundingClientRect();aw.current={pointer:e.pointerId,word:t,key:a,size:aZ(t),startX:e.clientX,startY:e.clientY,x:e.clientX,y:e.clientY,offsetX:a?e.clientX-r.left-r.width/2:0,offsetY:a?e.clientY-r.top-r.height/2:0,moved:!1},e.currentTarget.setPointerCapture(e.pointerId)})(a,e,t),onPointerMove:a1,onPointerUp:e=>a2(e),onPointerCancel:e=>a2(e,!0),onLostPointerCapture:()=>{aw.current&&(aw.current=null,t6(null))},onClick:r=>{if((!aM.current||0===r.detail)&&!av.current){if(ef.includes(e)){aX(e),aF("recipe_changed_help");return}t&&eO.has(t)||(a?aQ(e):ty&&("study"!==ty||e!==t9)||aX(e))}},onDoubleClick:()=>{t||a||aQ(e)}}}function a5(){av.current=!0,ak(!0),aw.current=null,t6(null),ar(null),al(null),ai([]),aj.current?.unlock(),aj.current?.play("drop")}async function a8(){if(!ah||av.current||!am.current||ty&&"shuffle"!==ty)return;let e=[...new Set(eZ)].filter(e=>eh[e]&&!ef.includes(e));for(let t=e.length-1;t>0;t--){let a=Math.floor(Math.random()*(t+1));[e[t],e[a]]=[e[a],e[t]]}if(eM.current.size){let t=new Set([...eM.current.values()].flatMap(({attempt:e})=>e.keys)),a=am.current,r=Array.from(a.querySelectorAll("[data-tile]")).filter(e=>t.has(e.dataset.tile)).map(e=>({x:e.offsetLeft,y:e.offsetTop,width:e.offsetWidth,height:e.offsetHeight})),n={x:10,y:72,width:a.clientWidth-20,height:Math.max(120,(a.querySelector("footer")?.offsetTop??a.clientHeight)-72-20)},l=e.slice(0,8).map(e=>{let t=aU(eh[e]),l=tM(t,n,r,{x:Math.random()*n.width,y:72+Math.random()*n.height});return r.push({...l,...t}),{key:crypto.randomUUID(),word:e,x:l.x/a.clientWidth,y:l.y/a.clientHeight,angle:0}});eX(e=>[...e.filter(e=>t.has(e.key)),...l]),aF("board_shuffled",{count:l.length},!1);return}a5(),await ax.current.gather(am.current),eY.current&&(a_.current=!0,ag.current=!0,eX(e.slice(0,10).map(e=>({key:crypto.randomUUID(),word:e,x:.05,y:.1,angle:0}))))}async function a3(){if(ah&&!av.current&&eV.length&&am.current&&(!ty||"clear"===ty)){if(eM.current.size){let e=new Set([...eM.current.values()].flatMap(({attempt:e})=>e.keys));eX(t=>t.filter(t=>e.has(t.key))),aF("board_cleared",{},!1);return}a5(),await ax.current.sweep(am.current),eY.current&&(eX([]),ak(!1),av.current=!1,aF("board_cleared",{},!1),"clear"===ty&&tk("shuffle"))}}(0,r.useEffect)(()=>{let e;if(!ah)return;let t=!1,a=new Set(az.split("|").filter(Boolean)),r=aW.split("|").filter(e=>!K.CATALOG_WORDS[e]||a.has(e));if(!r.length)return;let n=new Set;async function l(){try{let s={};for(let e=0;e<r.length;
1e+=100){let t=new URLSearchParams(r.slice(e,e+100).map(e=>["id",e])),a=await fetch(`/wordgame/api?${t}`,{cache:"no-store",signal:AbortSignal.timeout(15e3)});if(!a.ok)throw Error("Could not refresh word details");Object.assign(s,(await a.json()).words)}if(t)return;for(let e of a)s[e]&&!s[e].artwork&&(s[e]={...s[e],artwork:{status:"pending"}});ec(e=>({...e,...Object.fromEntries(Object.values(s).map(e=>[e.id,e]))}));let i=e=>s[e]?.id??e;Object.entries(s).some(([e,t])=>e!==t.id)&&(eK(e=>[...new Set(e.map(i))]),tW(e=>[...new Set(e.map(i))]),eX(e=>e.map(e=>({...e,word:i(e.word)}))),tB(e=>e?i(e):null),eD(e=>[...new Set(e.map(i))]),ae(e=>e?i(e):null),eN(e=>Object.fromEntries(Object.entries(e).map(([e,t])=>[i(e),t.map(i)]))),e5(e=>(0,K.canonicalSuccessfulPairs)(e,i)),e0(e=>el(e,i)));let o=Object.values(s).filter(e=>!K.CATALOG_WORDS[e.id]&&"pending"===e.learningStatus);for(let e of o)n.has(e.id)||(n.add(e.id),fetch("/wordgame/api",{method:"POST",headers:(0,g.wordgameHeaders)(),body:JSON.stringify({action:"learn",id:e.id}),signal:AbortSignal.timeout(15e3)}).then(e=>{if(!e.ok)throw Error("Learning request failed")}).catch(()=>{n.delete(e.id)}));let d=Object.values(s).filter(e=>e.artwork?.status==="pending");for(let e of d)fetch("/wordgame/api",{method:"POST",headers:(0,g.wordgameHeaders)(),body:JSON.stringify({action:"artwork",id:e.id})}).then(e=>{if(!e.ok)throw Error("Artwork request failed")}).catch(()=>{t||ec(t=>({...t,[e.id]:{...t[e.id],artwork:{status:"error"}}}))});let c=Object.values(s).filter(e=>!K.CATALOG_WORDS[e.id]&&e.speech?.status==="pending");for(let e of c)"pending"!==e.learningStatus&&fetch("/wordgame/api",{method:"POST",headers:(0,g.wordgameHeaders)(),body:JSON.stringify({action:"speech",id:e.id})}).catch(()=>{});(o.length||d.length||c.length)&&(e=setTimeout(l,1600))}catch{t||(e=setTimeout(l,5e3))}}return l(),()=>{t=!0,clearTimeout(e)}},[ah,aW,az,eG]),(0,r.useEffect)(()=>{let e=aS.current;if(!t4||!e||tz!==e){aS.current=null;return}let t=eh[e];t?.learningStatus!=="ready"||eH.current||(aS.current=null,aN.current?.play((0,_.wordPronunciation)(t),e,{automatic:!0}))},[eh,tz,t4]),(0,r.useLayoutEffect)(()=>{if(!tv)return;let e=tR.current,t=am.current?.querySelector(`[data-tile="${tv.key}"]`);if(!e||!t)return;let a=t.getBoundingClientRect();e.style.width=`${a.width}px`,e.style.height=`${a.height}px`;let{origin:r}=tv,n=e.animate([{transform:`translate(${r.left+r.width/2-a.width/2}px, ${r.top+r.height/2-a.height/2}px) scale(.65)`,opacity:.65},{transform:`translate(${a.left}px, ${a.top}px) scale(1)`,opacity:1}],{duration:850*!matchMedia("(prefers-reduced-motion: reduce)").matches,easing:"cubic-bezier(.22,.7,.2,1)",fill:"forwards"}),l=!1;return n.finished.then(()=>{l||(tC(null),ar(null),av.current=!1)}).catch(()=>{}),()=>{l=!0,n.cancel()}},[tv]);let a7=eZ.filter(e=>"favorites"!==tY||tP.includes(e)).filter(e=>"packs"!==tY||K.WORD_PACKS.some(t=>e3.includes(t.at)&&t.words.includes(e))).map(e=>eh[e]).filter(e=>[e.label,(0,_.wordDisplayLabel)(e),e.english,C(e,tm)?.text??""].join(" ").normalize("NFC").toLocaleLowerCase(tm).includes(tV.normalize("NFC").toLocaleLowerCase(tm))).sort((e,t)=>"recent"===tY?eZ.indexOf(t.id)-eZ.indexOf(e.id):e.label.localeCompare(t.label,"nb")),a6=K.WORD_PACKS.find(e=>!e3.includes(e.at)),a9=a6?Math.max(0,a6.at-e1.length):0,re="packs"===tY&&!tV.trim()&&!!a6,rt=a$?(0,_.wordLabelParts)(a$,t8):void 0;function ra(e,a=t8){let{prefix:r,label:n}=(0,_.wordLabelParts)(eh[e],a);return(0,t.jsxs)("span",{className:er.default.wordLabel,lang:"nb",children:[r&&(0,t.jsxs)("small",{className:er.default.article,children:[r," "]}),(0,t.jsx)("span",{children:n})]})}let rr=a$&&!z.STARTER_IDS.includes(a$.id)?ev[a$.id]:void 0,rn=K.WORD_PACKS.find(e=>e.at===te),rl=(0,r.useMemo)(()=>(function(e,t=K.CATALOG_WORDS){let a=new Set(e);return e4.map(e=>{let r=[e.wordId,...e.previousIds??[]].filter(e=>a.has(e)),n=r.find(e=>t[e]?.artwork?.url)??r[0]??e.wordId;return{wordId:e.wordId,label:K.CATALOG_WORDS[e.wordId].label.toLocaleLowerCase("nb"),english:K.CATALOG_WORDS[e.wordId].english,description:e.description,translation:e.translation,source:e.source,found:r.length>0,artworkWordId:n,artwork:r.length?t[n]?.artwork:void 0}})})(eZ,eh),[eZ,eh]),rs=rl.filter(e=>e.found).length,ri=t7?{left:t7.x-t7.offsetX,top:t7.y-t7.offsetY,"--tilt":`${tE((t7.x-t7.startX)/35,-7,7)}deg`}:void 0;function ro(e){tp(e);try{localStorage.setItem(eQ.LANGUAGE_PREFERENCE_STORAGE,e)}catch{}let t=(0,n.readGuideSave)();(0,n.saveGuide)(e,t.dismissed,t.completed)}function rd(){if(av.current||eM.current.size||!ah)return;
1let e={id:crypto.randomUUID(),first:!tu&&!H,steps:new Set};tx.current=e,(0,a.analyticsContext)({tutorial:!0,tutorialRunId:e.id}),(0,a.trackOrdlek)("play_started",{start_kind:ti?"resume":"initial"}),(0,a.trackOrdlek)("tutorial_started",{tutorialRunId:e.id,firstRun:e.first,guideVersion:"2026-09-21-v1"}),aN.current?.stop(),tT.current??=[...eV],ts(!1),tq(!1),to(!0),tX(""),tU(!1),tF("recent"),tB(null),ad(null),eX([]),tw(!1),tk("welcome")}function rc(e){if(av.current||eM.current.size)return;let t=tx.current;t&&(0,a.trackOrdlek)(e?"tutorial_completed":"tutorial_skipped",{tutorialRunId:t.id,firstRun:t.first,step:ty??"unknown",guideVersion:"2026-09-21-v1"}),tx.current=null,(0,a.analyticsContext)({tutorial:!1,tutorialRunId:null}),tB(null),ae(null),tT.current&&(eX(tT.current),tT.current=null),tk(null),tf(!0),tX(""),tF("recent"),aw.current=null,t6(null),(0,n.saveGuide)(tm,!0,e||(0,n.readGuideSave)().completed),Y(t=>t||e),requestAnimationFrame(()=>tI.current?.focus({preventScroll:!0}))}let ru=function(e,t,a,n){let l=e?.id,s=e?S(e):"",i=JSON.stringify([l,t,s]),o=!!e&&"ready"===e.learningStatus&&function(e,t){let a;if("en"===t||"nb"===t)return!1;let r={gloss:!(a=N(e,t)).gloss,definition:!!e.definition.trim()&&!a.definition,examples:j(e).filter(e=>!a.examples[e])};return r.gloss||r.definition||r.examples.length>0}(e,t),[d,c]=(0,r.useState)({key:"",number:0}),u=d.key===i?d.number:0,[h,f]=(0,r.useState)(null),m=(0,r.useRef)(n);return(0,r.useEffect)(()=>{m.current=n},[n]),(0,r.useEffect)(()=>{if(!a||!o||!l)return;let e=new AbortController,r=AbortSignal.any([e.signal,AbortSignal.timeout(215e3)]);return A(l,t,u>0,r).then(e=>{if(!r.aborted){if(e.wordId!==l||e.sourceVersion!==s||!e.translation)throw Error("Translation source changed");m.current(l,t,e.translation)}}).catch(()=>{e.signal.aborted||f(`${i}:${u}`)}),()=>e.abort()},[l,t,s,i,u,a,o]),{status:a&&o?h===`${i}:${u}`?"error":"pending":null,retry:()=>c({key:i,number:u+1})}}(a$??void 0,tm,ah&&aR.cloudReady&&!tl&&!L,(e,t,a)=>{ec(r=>r[e]?{...r,[e]:{...r[e],translations:{...r[e].translations,[t]:a}}}:r)});return(0,t.jsx)(l.GameI18nProvider,{locale:tm,children:(0,t.jsxs)("main",{ref:tK,lang:tm,className:`${er.default.game} ${t8?er.default.withArticles:""}`,"aria-label":aq("board_title"),"data-search-open":tZ,"data-norwegian-only":L,"data-detail-open":!!a$,"data-ready":ah,"data-guide-active":!!ty,"data-guide-step":ty??void 0,children:[(0,t.jsx)("span",{id:"ordlek-outdated-help",className:er.default.announcementOnly,children:aq("recipe_changed_help")}),(0,t.jsxs)("section",{className:`${er.default.board} ${ay?er.default.boardAnimating:""}`,"aria-busy":ay,ref:am,"data-guide":"board","aria-label":aq("board_label"),onContextMenu:e=>e.preventDefault(),children:[!ty&&(0,t.jsx)(tA,{count:aI,limit:aT,onUnlock:()=>y(!0),pack:o&&aR.player?.fullGame?a6?{at:a6.at,wordCount:a6.words.length}:{at:K.WORD_PACKS.at(-1)?.at??0,complete:!0}:void 0,onShowPacks:()=>{tB(null),tX(""),tU(!1),tF("packs")},onPacksOpenChange:b}),!ty&&(0,t.jsxs)("div",{ref:ap,className:er.default.boardTrash,"data-board-trash":!0,"data-dragging":!!t7?.moved,"data-active":!!t7?.overTrash,style:t7?{"--trash-width":`${t7.size.width}px`,"--trash-height":`${t7.size.height}px`}:void 0,role:"img","aria-label":aq("board_trash_help"),title:aq("board_trash_help"),children:[(0,t.jsx)("svg",{className:er.default.trashOutline,"aria-hidden":"true",children:(0,t.jsx)("rect",{x:"1",y:"1",rx:"16"})}),(0,t.jsx)(M.default,{className:`${er.default.trashArtwork} ${er.default.trashClosed}`,src:"/images/ordlek/ui/trash.png",alt:"",width:28,height:28,sizes:"28px",draggable:!1}),(0,t.jsx)(M.default,{className:`${er.default.trashArtwork} ${er.default.trashOpen}`,src:"/images/ordlek/ui/trash-open.png",alt:"",width:28,height:28,sizes:"28px",loading:"eager",draggable:!1}),t7?.moved&&(0,t.jsx)("span",{className:er.default.trashHint,"aria-hidden":"true",children:aq("board_trash_prompt")})]}),(0,t.jsx)("div",{className:er.default.fjord,"aria-hidden":"true"}),(0,t.jsx)("div",{className:er.default.boardBroom,"data-board-broom":!0,"aria-hidden":"true",children:(0,t.jsx)(M.default,{src:"/images/ordlek/ui/broom.png",alt:"",width:120,height:120,sizes:"120px",draggable:!1})}),eV.map(e=>{let a=eh[e.word],r=t7?.target===e.key,n=eR.includes(a.id)||"study"===ty&&t9===a.id&&tz!==a.id;return(0,t.jsxs)("button",{"data-tile":e.key,"data-word":a.id,"data-guide-discovery":t9===a.id||void 0,disabled:eO.has(e.key),className:`${er.default.tile} ${r?er.default.target:""} ${t7?.key===e.key?er.default.dragOrigin:""}
1 ${aa===e.key||eE.includes(e.key)?er.default.revealed:""} ${n?er.default.unreadTile:""} ${tv?.key===e.key||eO.has(e.key)?er.default.studyingTile:""} ${an===e.key?er.default.settling:""} ${as.includes(e.key)?er.default.missed:""}`,style:{left:`clamp(8px, ${100*e.x}%, calc(100% - var(--measured-width, var(--tile-width)) - 8px))`,top:`clamp(12px, ${100*e.y}%, calc(100% - var(--measured-height, var(--tile-height)) - 12px))`,"--angle":`${e.angle}deg`},"aria-label":`${aq("board_details",{word:(0,_.wordDisplayLabel)(a,t8)})}${n?` \xb7 ${aq("word_unread")}`:""}`,title:ty?void 0:(0,_.wordDisplayLabel)(a,t8),...a4(a.id,e.key),children:[(0,t.jsx)("span",{className:er.default.emoji,"aria-hidden":"true",children:(0,t.jsx)(e$.default,{wordId:a.id,artwork:a.artwork})}),ra(a.id),n&&(0,t.jsx)("span",{className:er.default.unreadBadge,"aria-label":aq("word_unread"),children:(0,t.jsx)(O,{size:15})}),r&&(0,t.jsx)("span",{className:er.default.targetPlus,children:(0,t.jsx)(T.Plus,{size:12})})]},e.key)}),eS.map(e=>(0,t.jsx)(e8,{attempt:e,position:eV.find(t=>t.key===e.keys[0])??e,words:e.words.map(e=>eh[e]),articles:t8},e.id)),0===eV.length&&!eL&&!ty&&(0,t.jsxs)("div",{className:er.default.emptyBoard,children:[(0,t.jsx)(M.default,{className:er.default.emptyArtwork,src:"/images/ordlek/ui/hammer-and-saw.png",alt:"",width:102,height:102,sizes:"102px",draggable:!1}),(0,t.jsx)("p",{children:aq("board_empty_title")}),(0,t.jsx)("span",{children:aq("board_empty_description")}),(0,t.jsxs)("button",{onClick:a8,disabled:!ah||ay,children:[aq("board_shuffle"),(0,t.jsx)(M.default,{className:er.default.toolbarArtwork,src:"/images/ordlek/ui/shuffle.png",alt:"",width:24,height:24,sizes:"24px",draggable:!1})]})]}),(0,t.jsx)("div",{className:ac?`${er.default.toast} ${ao?er.default.toastVisible:""}`:er.default.announcementOnly,role:"status","aria-live":"polite",children:ao&&aq(ao.key,ao.values)}),(0,t.jsxs)("footer",{className:er.default.boardFooter,"aria-label":aq("board_tools"),children:[(0,t.jsx)("button",{ref:tI,className:er.default.boardAction,"aria-label":aq("ordlek_main_menu"),title:aq("ordlek_main_menu"),"aria-haspopup":"dialog",disabled:!ah||ay||!!tv||null!==te,onClick:()=>{ty&&rc(!1),aN.current?.stop(),ts(!0)},children:(0,t.jsx)(M.default,{className:er.default.toolbarArtwork,src:"/images/ordlek/ui/home.png",alt:"",width:24,height:24,sizes:"24px",draggable:!1})}),(0,t.jsx)("button",{className:er.default.boardAction,"aria-label":aq("history_title"),title:aq("history_title"),"aria-haspopup":"dialog",disabled:!ah||ay||!!tv||null!==te,onClick:()=>{tn(!0)},children:(0,t.jsx)(M.default,{className:er.default.toolbarArtwork,src:"/images/ordlek/ui/recent-combinations.png",alt:"",width:24,height:24,sizes:"24px",draggable:!1})}),(0,t.jsxs)("button",{"data-guide":"goals",className:er.default.boardAction,"aria-label":aq("achievements_progress",{found:rs,total:rl.length}),disabled:!ah||ay||!!tv||null!==te,"aria-haspopup":"dialog",onClick:()=>{av.current||ta(!0)},title:aq("achievements_help"),children:[(0,t.jsx)(M.default,{className:er.default.toolbarArtwork,src:"/images/ordlek/ui/trophy.png",alt:"",width:24,height:24,sizes:"24px",draggable:!1}),(0,t.jsx)("span",{children:aq("achievements_title")}),(0,t.jsxs)("span",{className:er.default.achievementCount,children:[rs,"/",rl.length]})]}),(0,t.jsxs)("button",{"data-guide":"shuffle",className:er.default.boardAction,"aria-label":aq("board_shuffle"),onClick:a8,disabled:!ah||ay||!!tv||!!ty&&"shuffle"!==ty,title:aq("board_shuffle_help"),children:[(0,t.jsx)(M.default,{className:er.default.toolbarArtwork,src:"/images/ordlek/ui/shuffle.png",alt:"",width:24,height:24,sizes:"24px",draggable:!1}),(0,t.jsx)("span",{children:aq("board_shuffle")})]}),(0,t.jsxs)("button",{"data-guide":"clear",className:er.default.boardAction,"aria-label":aq("board_clear"),title:aq("board_clear"),disabled:!ah||ay||0===eV.length||!!ty&&"clear"!==ty,onClick:a3,children:[(0,t.jsx)(M.default,{className:er.default.toolbarArtwork,src:"/images/ordlek/ui/broom.png",alt:"",width:24,height:24,sizes:"24px",draggable:!1}),(0,t.jsx)("span",{children:aq("board_clear")})]}),(0,t.jsxs)("button",{className:er.default.boardAction,"aria-label":aq("settings_title"),title:aq("settings_title"),"aria-haspopup":"dialog",disabled:!ah||ay||!!tv||null!==te,onClick:()=>{tq(!0)},children:[(0,t.jsx)(M.default,{className:er.default.toolbarArtwork,src:"/images/ordlek/ui/settings.png",alt:"",width:24,height:24,sizes:"24px",draggable:!1}),(0,t.jsx)("span",{children:aq("settings_title")})]})]})]}),(0,t.jsx)(ew,{collection:(0,t.jsx)(t.Fragment,{children:(0,t.jsxs)("section",{className:`${er.default.collection} ${en.default.panel}`,"data-guide":"collection","aria-label":aq("collection_title"),children:[(0,t.jsxs)("div",{className:`${er.default.tabs} ${en.default.filters}`,children:[(0,t.jsx)("div",{className:en.default.filterTabs,role:"tablist","aria-label":aq("collection_filter"),children:["recent","favorites","packs","all"].map(e=>(0,t.jsx)("button",{role:"tab",disabled:!!ty&&("packs"!==e||"packs"!==ty&&"packs-result"!==ty),id:`ordlek-tab-${e}`,"aria-controls":"ordlek-word-list","aria-selected":tY===e,"data-progress-highlight":"packs"===e&&k||void 0,"aria-label":aq(`collection_${e}`),title:aq(`collection_${e}`),onClick:()=>{tF(e),"packs"===ty&&"packs"===e&&tk("packs-result")},children:"recent"===e?(0,t.jsx)(R.History,{size:17,"aria-hidden":"true"}):"favorites"===e?(0,t.jsx)(P.Star,{size:17,"aria-hidden":"true"}):"packs"===e?(0,t.jsx)($,{size:17,"aria-hidden":"true"}):aq(`collection_${e}`)},e))}),(0,t.jsx)("button",{ref:tJ,disabled:!!ty,"aria-label":aq("collection_search"),title:aq("collection_search"),"aria-expanded":tZ,"aria-controls":tZ?"ordlek-collection-search":void 0,onClick:()=>{tZ?t0():tU(!0)},children:(0,t.jsx)(G.Search,{size:17,"aria-hidden":"true"})})]}),tZ&&!ty&&(0,t.jsxs)("div",{id:"ordlek-collection-search",className:`${er.default.search} ${en.default.search}`,role:"search","aria-label":aq("collection_search"),children:[(0,t.jsx)(G.Search,{size:18,"aria-hidden":"true"}),(0,t.jsx)("input",{ref:tQ,value:tV,onChange:e=>tX(e.target.value),onKeyDown:e=>{"Escape"===e.key&&(e.preventDefault(),e.stopPropagation(),t0())},placeholder:aq("collection_search_placeholder"),"aria-label":aq("collection_search")}),(0,t.jsx)("button",{onClick:t0,"aria-label":aq("collection_close_search"),title:aq("collection_close_search"),children:(0,t.jsx)(W.X,{size:15,"aria-hidden":"true"})})]}),(0,t.jsxs)(ej,{className:`${er.default.wordList} ${en.default.words}`,labelledBy:`ordlek-tab-${tY}`,children:[a7.map(e=>(0,t.jsxs)("button",{className:`${er.default.libraryWord} ${en.default.word} ${eR.includes(e.id)?er.default.unreadWord:""} ${tz===e.id?er.default.selectedWord:""}`,"data-selected":tz===e.id,"data-library-word":e.id,...a4(e.id,void 0,!0),title:ef.includes(e.id)?aq("recipe_changed_help"):aq("collection_add_help",{word:(0,_.wordDisplayLabel)(e,t8)}),children:[ra(e.id),eR.includes(e.id)&&(0,t.jsx)(O,{size:14,"aria-label":aq("word_unread")}),ef.includes(e.id)&&(0,t.jsx)("small",{children:aq("recipe_changed")}),tP.includes(e.id)&&(0,t.jsx)(P.Star,{size:10,fill:"currentColor"}),(0,t.jsx)("span",{className:en.default.artwork,children:(0,t.jsx)(e$.default,{wordId:e.id,artwork:e.artwork})})]},e.id)),re&&a6&&(0,t.jsxs)("section",{className:en.default.packTeaser,"data-guide":"next-pack","aria-label":aq("collection_next_pack"),children:[(0,t.jsxs)("p",{className:en.default.packBadge,children:[(0,t.jsx)(M.default,{className:en.default.packLock,src:"/images/ordlek/ui/padlock.png",alt:"",width:24,height:24,sizes:"24px",draggable:!1}),(0,t.jsx)("span",{children:aq("collection_unlock",{count:a9})})]}),(0,t.jsx)("div",{className:en.default.lockedWords,role:"img","aria-label":aq("collection_hidden_words",{count:a6.words.length}),children:Array.from({length:a6.words.length},(e,a)=>(0,t.jsxs)("div",{className:en.default.lockedWord,"aria-hidden":"true",children:[(0,t.jsx)("span",{className:en.default.hiddenLabel}),(0,t.jsx)("span",{className:en.default.hiddenArtwork,children:"?"})]},a))})]}),0===a7.length&&!re&&(0,t.jsx)("div",{className:er.default.emptyList,children:"favorites"!==tY||tV?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(G.Search,{size:22}),(0,t.jsx)("p",{children:aq("collection_empty")}),(0,t.jsx)("span",{children:aq("collection_search_help")})]}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(P.Star,{size:22}),(0,t.jsx)("p",{children:aq("collection_empty_favorites")}),(0,t.jsx)("span",{children:aq("collection_favorite_help")})]})})]})]})}),detail:a$?(0,t.jsx)(eT,{onClose:function(){tB(null),aN.current?.stop(),aS.current=null,"study"===ty&&tz===t9&&(ae(null),tk("add-stone"),tw(!1),tF("recent"),tX("")),requestAnimationFrame(()=>{let e=at.current;e?.isConnected?e.focus({preventScroll:!0}):tI.current?.focus({preventScroll:!0})})},speechFeedback:eW?.word===a$.id?eW:null,outdated:ef.includes(a$.id),translation:ru,word:a$,language:tm,onReport:X,title:(0,t.jsx)(eC,{text:(0,_.wordPronunciation)(a$),control:"title",feedback:eW?.word===a$.id?eW:null,language:tm,title:!0,onSpeak:(e,t)=>{aM.current||av.current||aV(e,a$.id,!1,t)},buttonProps:{...a4(a$.id),"data-detail-word":a$.id},children:(0,t.jsxs)("span",{children:[rt?.prefix&&(0,t.jsxs)("small",{className:`${er.default.detailArticle} ${er.default.inlineArrival}`,children:[rt.prefix," "]}),(0,t.jsx)("span",{lang:"nb",children:rt?.label})]})}),ingredients:rr?rr.map((e,a)=>(0,t.jsxs)("span",{className:er.default.ingredientWrap,children:[a>0&&(0,t.jsx)("span",{className:er.default.plus,children:"+"}),(0,t.jsxs)("button",{className:er.default.ingredient,...a4(e),onClick:()=>{aM.current||aQ(e)},title:aq("collection_add"),children:[(0,t.jsx)(e$.default,{wordId:e,artwork:eh[e]?.artwork}),ra(e,!1)]})]},`${e}-${a}
1`)):null,favorite:tP.includes(a$.id),onFavorite:()=>tW(e=>e.includes(a$.id)?e.filter(e=>e!==a$.id):[...e,a$.id]),onSpeak:(e,t)=>aV(e,a$.id,!1,t),onRetry:()=>void aH(a$.id),onRetryArtwork:()=>void aB(a$.id)},a$.id):null}),!t7&&!ay&&!tl&&!tG&&!tr&&!tt&&!F&&!x&&!f&&rn&&(0,t.jsx)(eq,{showArticles:t8,milestone:rn.at,words:rn.words.map(e=>eh[e]),onDone:()=>{e9(e=>e.slice(1)),tB(null),tF(ty?"recent":"packs")}}),tr&&(0,t.jsx)(eU,{retiredPairs:ep,onReport:e=>X({context:{target:"combination",ingredients:e},ingredientsLabel:e.map(e=>eh[e]?(0,_.wordDisplayLabel)(eh[e],t8):e).join(" + ")}),words:eh,history:eJ,showArticles:t8,onClose:()=>tn(!1)}),tt&&(0,t.jsx)(eF,{targets:rl,onClose:()=>{ta(!1),"goals"===ty&&tk("done")},onRequestArtwork:e=>void aB(e)}),tG&&(0,t.jsx)(e2,{onFeedback:()=>{aN.current?.stop(),X({context:{target:"general"}})},language:tm,onLanguage:ro,norwegianOnly:L,onNorwegianOnlyChange:B,sound:t1,speech:t4,showArticles:t8,onSoundChange:e=>{aj.current&&(aj.current.muted=!e),t2(e),e&&aj.current?.click()},onSpeechChange:e=>{t5(e),e?aN.current?.play(ee.ORDLEK_UI_SPEECH.greeting):(aN.current?.stop(),aj.current?.click())},onArticlesChange:e=>{t3(e),aj.current?.click()},onClose:()=>{aN.current?.stop(),aj.current?.click(),tq(!1)},onTutorial:()=>{aj.current?.click(),rd()}}),tl&&ah&&(0,t.jsx)(tg,{staged:d,onOpeningReady:td?void 0:c,onFeedback:()=>X({context:{target:"general"}}),accountContent:(0,t.jsxs)("div",{className:eg.default.account,children:[ao?.key==="account_sign_out_error"&&(0,t.jsx)("p",{role:"alert",children:aq(ao.key)}),(0,t.jsx)("p",{children:aR.player?.account?`${aR.player.account} \xb7 ${"saved"===aR.syncState?aq("ordlek_saved_to_your_account"):"error"===aR.syncState?aq("ordlek_sync_paused_browser_copy_kept"):aq("ordlek_saving")}`:o?aq("error"===aR.syncState?"purchase_account_error":"purchase_checking_account"):aq("ordlek_play_as_a_guest_or_sign_in_to_save")}),aR.player?.fullGame&&(0,t.jsx)("p",{children:aq("ordlek_full_game")}),!o&&(0,t.jsxs)("button",{onClick:function(){v(null),ts(!1),y(!1),m(!0)},children:[(0,t.jsx)(D.LogIn,{size:17,"aria-hidden":"true"}),aq("ordlek_sign_in_save")]}),"error"===aR.syncState&&(0,t.jsxs)(t.Fragment,{children:[!o&&(0,t.jsx)("p",{role:"status",children:aq("guest_connection_error")}),(0,t.jsxs)("button",{onClick:()=>void aR.sync().catch(()=>{}),children:[(0,t.jsx)(I,{size:17,"aria-hidden":"true"}),aq(o?"ordlek_retry_sync":"guest_reconnect")]})]}),!aR.player?.fullGame&&(0,t.jsxs)("button",{onClick:()=>y(!0),children:[(0,t.jsx)(q,{size:17,"aria-hidden":"true"}),aq("ordlek_unlock_the_full_game")]}),o&&(0,t.jsxs)("button",{onClick:async()=>{try{await aR.sync(),await h(),window.location.reload()}catch{aF("account_sign_out_error")}},children:[(0,t.jsx)(E.LogOut,{size:17,"aria-hidden":"true"}),aq("ordlek_sign_out")]})]}),showPlanningBoard:e,language:tm,returning:ti,words:eZ.length,pairs:e1.length,favorites:tP.length,achievements:rs,achievementTotal:rl.length,packs:e3.length,onPlay:function(){ah&&(ts(!1),ti||tu||ty||av.current||eM.current.size?(0,a.trackOrdlek)("play_started",{start_kind:ti?"resume":"initial"}):rd(),to(!0),requestAnimationFrame(()=>tI.current?.focus({preventScroll:!0})))},onSettings:()=>tq(!0)}),tl&&ah&&td&&(0,t.jsx)(eQ.LanguageDialog,{staged:d,onOpeningReady:c,language:tm,onChange:ro,onClose:()=>tc(!1),welcome:!0}),F&&(0,t.jsx)(tj,{draft:F,language:tm,onClose:()=>X(null)}),x&&(0,t.jsx)(ex,{staged:d,onOpeningReady:c,limit:aT,count:aI,account:o,accountLabel:aR.player?.account??void 0,accountReady:aR.cloudReady,accountError:"error"===aR.syncState,continuation:w,onConsumeContinuation:aP,language:tm,onClose:()=>{aP(),v(null),y(!1),ts(!1)},onSignIn:function(e){v(e),ts(!1),y(!1),m(!0)},onSync:aR.sync}),(0,t.jsx)(ey.default,{artwork:w?(0,t.jsx)(eu,{}):void 0,redirectTo:f&&w?(0,u.purchaseContinuationPath)(window.location.href,w):void 0,lang:tm,copy:{...(0,ek.gameSignInCopy)(aq),checkInbox:aq("checkout"===w?"purchase_auth_inbox":"auth_checkInbox"),done:aq(w?"purchase_back_to_offer":"auth_done")},open:f,onClose:()=>{m(!1),w?(aP(),v(null),y(!0)):ts(!0)},title:"checkout"===w?aq("purchase_auth_title"):void 0,description:aq("checkout"===w?"purchase_auth_description":"ordlek_keep_your_discoveries_and_continue_on_another_device")}),ty&&!tt&&!tG&&!tr&&!rn&&(0,t.jsx)(n.default,{step:ty,studyingDetails:"study"===ty&&tz===t9,language:tm,busy:eL||ay||!!tv,demonstrate:!tb,onContinue:()=>{av.current||tk(e=>({welcome:"click-water","no-match-result":"clear","match-result":"clear","packs-result":"goals"})[e]??e)},onDone:()=>rc(!0)}),tv&&(0,t.jsxs)("div",{ref:tR,className:`${er.default.tile} ${th.default.collectionFlight}`,"aria-hidden":"true",children:[(0,t.jsx)("span",{className:er.default.emoji,children:(0,t.jsx)(e$.default,{wordId:tv.word,artwork:eh[tv.word]?.artwork})}),ra(tv.word)]}),t7?.moved&&(0,t.jsxs)("div",{"data-drag-ghost":t7.word,className:`${er.default.dragGhost} ${t7.overTrash?er.default.ghostTrash:t7.target?er.default.ghostTarget:""}`,style:ri,"aria-hidden":"true",children:[(0,t.jsx)("span",{className:er.default.emoji,children:(0,t.jsx)(e$.default,{wordId:t7.word,artwork:eh[t7.word]?.artwork})}),ra(t7.word)]})]})})}function tI({showPlanningBoard:e}){(0,r.useEffect)(()=>{let e=()=>{"hidden"===document.visibilityState&&(0,a.flushOrdlek)()};return document.addEventListener("visibilitychange",e),()=>document.removeEventListener("visibilitychange",e)},[]);let{isLoading:f,isAuthenticated:p}=(0,i.useConvexAuth)(),g=(0,o.useQuery)(d.api.users.getCurrentUser,p?{}:"skip"),_=(0,o.useQuery)(d.api.wordgameOperations.access,p?{}:"skip"),x=f||p&&void 0===g?null:g?._id??"guest",[y,k]=(0,r.useState)(null),[b,w]=(0,r.useState)(null),v=(0,r.useRef)(0),j=x&&b?.scope===x?b.phase:"loading",N=(0,r.useCallback)(()=>k(x),[x]),S=(0,r.useSyncExternalStore)(tG,()=>(0,n.readGuideSave)().language,()=>s.DEFAULT_GAME_LOCALE),C=(0,l.useGameTranslations)(S),A=(0,r.useRef)(!1),M=(0,r.useRef)(!1);return(0,r.useEffect)(()=>
1{x&&(!p||void 0!==_)&&((0,a.analyticsContext)({locale:S,signed_in:p,is_internal:!0===_}),A.current||(A.current=!0,(0,a.trackOrdlek)("viewed",{navigation_id:crypto.randomUUID()})),"complete"!==j||M.current||(M.current=!0,(0,a.trackOrdlek)("ready")))},[x,S,j,p,_]),(0,r.useEffect)(()=>{v.current=performance.now()},[]),(0,r.useEffect)(()=>{let e;if(!x||y!==x)return;let t=window.matchMedia("(prefers-reduced-motion: reduce)").matches,a=setTimeout(()=>{w({scope:x,phase:"revealing"}),e=setTimeout(()=>w({scope:x,phase:"complete"}),t?120:360)},t?0:Math.max(0,900-(performance.now()-v.current)));return()=>{clearTimeout(a),clearTimeout(e)}},[x,y]),(0,r.useEffect)(()=>{if(!g?._id||(0,u.readPurchaseContinuation)(window.location.href))return;let e=new AbortController;return(0,c.purchaseRequest)("restore",e.signal).catch(()=>{}),()=>e.abort()},[g?._id]),(0,t.jsxs)("div",{className:h.default.host,"data-game-entrance":j,children:[(0,t.jsx)("div",{className:h.default.stage,"data-opening-phase":j,inert:"complete"!==j,"aria-hidden":"complete"!==j||void 0,children:x&&(0,t.jsx)(tT,{signedIn:p,storageKey:`ordlek-player-v2:${x}`,showPlanningBoard:e,opening:"complete"!==j,onOpeningReady:N},x)}),"complete"!==j&&(0,t.jsx)(m,{leaving:"revealing"===j,label:C("loading_game"),language:S})]})}function tG(e){return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)}e.s(["default",()=>tI],814389)}]);

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.