@ihabdevteam/core 0.192.0 → 0.193.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +23 -0
- package/dist/components.cjs.js +2 -2
- package/dist/components.esm.css +1 -1
- package/dist/hooks.cjs.js +1 -1
- package/dist/i18n.cjs.js +1 -1
- package/dist/ihabdevteam-core.cjs.js +3 -3
- package/dist/ihabdevteam-core.d.ts +11 -2
- package/dist/packages/core/src/components/Popup/ConfirmPopup.d.ts +10 -1
- package/dist/packages/core/src/components/Popup/ConfirmPopup.js +3 -1
- package/dist/packages/core/src/components/Popup/Popup.css +20 -2
- package/dist/packages/core/src/version.d.ts +1 -1
- package/dist/packages/core/src/version.js +1 -1
- package/dist/utils.cjs.js +1 -1
- package/package.json +1 -1
package/dist/components.cjs.js
CHANGED
|
@@ -844,7 +844,7 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
|
|
|
844
844
|
\uC124\uCE58 \uBA85\uB839\uC5B4 (\uC2A4\uD1A0\uB9AC\uC9C0 SDK \uBBF8\uC124\uCE58 \uC2DC):
|
|
845
845
|
npm install @supabase/supabase-js
|
|
846
846
|
pnpm add @supabase/supabase-js
|
|
847
|
-
`),this.name="StorageNotConfiguredError"}};function Y0(e){K0(e)}function zs(e,t){if(!e)return null;const a=pa();return a?.resolvePath?a.resolvePath(e,t):t?`${t}/${e}.mp3`:null}async function Vs(e){if(!e)return null;const t=pa();if(!t)throw new Hs("getSignedOrPublicUrl");try{return await t.resolveUrl(e)}catch{return null}}async function Ws(e){const t=pa();if(!t)throw new Hs("downloadSound");return t.download(e)}function Z0(){return pa()?.noiseBaseUrl??"/sounds/noise"}function qs(){const e=Number(pa()?.noiseFileGain);return Number.isFinite(e)&&e>0?e:1}function X0(e){const t=AbortSignal.timeout;if(typeof t=="function")return t.call(AbortSignal,e);const a=new AbortController;return setTimeout(()=>a.abort(),e),a.signal}const Us="__ihab_core_tts_config__";function Br(){return globalThis[Us]?.urlResolver??null}function J0(){return globalThis[Us]?.fallbackUrlResolver??null}const Q0="__ihab_core_pronunciation_resolver__";function e2(){return globalThis[Q0]??null}let Sn=null;const ma=new WeakMap,Nr=new WeakMap,Sr=new WeakMap;let Gs=!1;const Ks=e=>Math.max(0,Math.min(1,Number.isFinite(e)?e:0));function t2(){if(Gs||typeof document>"u")return;Gs=!0;const e=()=>{try{Sn&&Sn.state!=="running"&&Sn.resume()}catch{}};for(const t of["pointerdown","touchend","keydown"])document.addEventListener(t,e,{capture:!0,passive:!0})}function Ys(){if(Sn)return Sn;try{const e=window.AudioContext||window.webkitAudioContext;return e?(Sn=new e,t2(),Sn):null}catch{return null}}function Dr(){try{Sn?.resume()}catch{}}function Er(e,t){const a=ma.get(t);if(a)return a;try{const r=e.createMediaElementSource(t),s=e.createGain(),i=e.createAnalyser();i.fftSize=1024,i.smoothingTimeConstant=.6,s.gain.value=Ks(Nr.get(t)??t.volume),r.connect(s),s.connect(i),s.connect(e.destination);try{t.volume=1}catch{}const l={gain:s,analyser:i};return ma.set(t,l),l}catch{return null}}function Pa(e){if(!e)return Promise.resolve(null);const t=ma.get(e);if(t)return Promise.resolve(t.analyser);const a=Ys();if(!a)return Promise.resolve(null);if(a.state==="running")return Promise.resolve(Er(a,e)?.analyser??null);const r=Sr.get(e);if(r)return r;const s=Promise.resolve().then(()=>a.resume()).then(()=>a.state==="running"?Er(a,e)?.analyser??null:null).catch(()=>null).finally(()=>{Sr.delete(e)});return Sr.set(e,s),s}function n2(e){if(!e)return null;const t=ma.get(e);if(t)return t.analyser;const a=Ys();return a?a.state==="running"?Er(a,e)?.analyser??null:(Pa(e),null):null}function Dn(e,t){const a=Ks(t);Nr.set(e,a);const r=ma.get(e);if(r){try{e.volume!==1&&(e.volume=1)}catch{}const s=r.gain.gain;try{const i=r.gain.context.currentTime;s.cancelScheduledValues(i),s.setTargetAtTime(a,i,.01)}catch{try{s.value=a}catch{}}return"gain"}try{e.volume=a}catch{}return"element"}function Ia(e){return Nr.get(e)??e.volume}function a2(e,t){e.getFloatTimeDomainData(t);let a=0;for(let r=0;r<t.length;r++){const s=t[r];a+=s*s}return Math.sqrt(a/t.length)}const r2="__ihab_core_image_config__";function Gn(){return globalThis[r2]??null}const Zs="word_image_existence_map_v1";let Pn=null;const Fa=new Map;function o2(){if(Pn)return Pn;try{const e=typeof localStorage<"u"?localStorage.getItem(Zs):null,t=e?JSON.parse(e):null;Pn=t&&typeof t=="object"&&!Array.isArray(t)?t:{}}catch{Pn={}}return Pn}let jr=null;function s2(){jr||(jr=setTimeout(()=>{jr=null;try{typeof localStorage<"u"&&Pn&&localStorage.setItem(Zs,JSON.stringify(Pn))}catch{}},200))}function i2(e,t){return`${e}_${t??1}`}async function Xs(e,t){const a=o2(),r=i2(e,t);if(r in a)return a[r];if(Fa.has(r))return Fa.get(r);const s=Gn();if(!s)return!1;const i=s(e,t);if(!i)return!1;const l=fetch(i,{method:"HEAD",signal:X0(8e3)}).then(c=>c.status>=500?null:c.ok,()=>null).then(c=>(Fa.delete(r),c===null?!1:(a[r]=c,s2(),c)));return Fa.set(r,l),l}const l2={\u314F:{nucleus:"\u314F"},\u3151:{glide:"j",nucleus:"\u314F"},\u3153:{nucleus:"\u3153"},\u3155:{glide:"j",nucleus:"\u3153"},\u3157:{nucleus:"\u3157"},\u315B:{glide:"j",nucleus:"\u3157"},\u315C:{nucleus:"\u315C"},\u3160:{glide:"j",nucleus:"\u315C"},\u3161:{nucleus:"\u3161"},\u3163:{nucleus:"\u3163"},\u3150:{nucleus:"\u3154/\u3150"},\u3152:{glide:"j",nucleus:"\u3154/\u3150"},\u3154:{nucleus:"\u3154/\u3150"},\u3156:{glide:"j",nucleus:"\u3154/\u3150"},\u3158:{glide:"w",nucleus:"\u314F"},\u3159:{glide:"w",nucleus:"\u3154/\u3150"},\u315A:{glide:"w",nucleus:"\u3154/\u3150"},\u315D:{glide:"w",nucleus:"\u3153"},\u315E:{glide:"w",nucleus:"\u3154/\u3150"},\u315F:{glide:"w",nucleus:"\u3163"},\u3162:{glide:"\u0270",nucleus:"\u3163"}},Js=["\u3131","\u3132","\u3134","\u3137","\u3138","\u3139","\u3141","\u3142","\u3143","\u3145","\u3146","\u3147","\u3148","\u3149","\u314A","\u314B","\u314C","\u314D","\u314E"],Qs=["\u314F","\u3150","\u3151","\u3152","\u3153","\u3154","\u3155","\u3156","\u3157","\u3158","\u3159","\u315A","\u315B","\u315C","\u315D","\u315E","\u315F","\u3160","\u3161","\u3162","\u3163"],c2=["","\u3131","\u3132","\u3133","\u3134","\u3135","\u3136","\u3137","\u3139","\u313A","\u313B","\u313C","\u313D","\u313E","\u313F","\u3140","\u3141","\u3142","\u3144","\u3145","\u3146","\u3147","\u3148","\u314A","\u314B","\u314C","\u314D","\u314E"];function ha(e){if(!e)return null;const t=e.charCodeAt(0)-44032;return t<0||t>=11172?null:{cho:Math.floor(t/588),jung:Math.floor(t%588/28),jong:t%28}}function u2(e){const t=ha(e[0]||"");return t?Js[t.cho]:""}function d2(e){if(!e)return()=>!0;e=e.normalize("NFC");const t=[...e],a=l=>Js.includes(l),r=l=>Qs.includes(l),s=t.map(l=>a(l)?"cho":r(l)?"jung":ha(l)?"syl":"other"),i=t.map(l=>ha(l));if(s.includes("other")){const l=e.toLowerCase();return c=>c.normalize("NFC").toLowerCase().includes(l)}return l=>{const c=[...l.normalize("NFC")];for(let d=0;d+t.length<=c.length;d++){let u=!0;for(let p=0;p<t.length;p++){const m=c[d+p],h=s[p];if(h==="cho"){if(u2(m)!==t[p]){u=!1;break}}else if(h==="jung"){const b=ha(m);if(!b||Qs[b.jung]!==t[p]){u=!1;break}}else{const b=i[p];if(b&&b.jong===0){const v=ha(m);if(!v||v.cho!==b.cho||v.jung!==b.jung){u=!1;break}}else if(m!==t[p]){u=!1;break}}}if(u)return!0}return!1}}const p2={3:["\u3131","\u3145"],5:["\u3134","\u3148"],6:["\u3134","\u314E"],9:["\u3139","\u3131"],10:["\u3139","\u3141"],11:["\u3139","\u3142"],12:["\u3139","\u3145"],13:["\u3139","\u314C"],14:["\u3139","\u314D"],15:["\u3139","\u314E"],18:["\u3142","\u3145"]};Object.fromEntries(Object.entries(p2).map(([e,t])=>[t.join(""),c2[Number(e)]]));const m2="word_pair_index_v2",h2="word_pair_index_sig_v2";let Oa=null;function f2(){try{if(typeof localStorage>"u")return null;const e=localStorage.getItem(m2),t=localStorage.getItem(h2);return!e||!t?null:{index:JSON.parse(e),sig:t}}catch{return null}}function C2(){if(Oa)return Oa;const e=f2();return e?(Oa=e.index,e.sig,Oa):null}const Tr=/[ㄱ-ㅎ]/,g2=/[ㅏ-ㅣ]/;function ei(e){e=e.normalize("NFC");for(let t=e.length-1;t>=0;t--){const a=e[t],r=a.charCodeAt(0);if(r>=44032&&r<=55203||Tr.test(a)||g2.test(a))return a}return null}function b2(e){const t=ei(e);if(!t)return"\uAC00";const a=t.charCodeAt(0);return a>=44032&&a<=55203?(a-44032)%28!==0?"\uC774":"\uAC00":Tr.test(t)?"\uC774":"\uAC00"}function y2(e){return`${e}${b2(e)}`}function v2(e){const t=ei(e);if(!t)return"\uB97C";const a=t.charCodeAt(0);return a>=44032&&a<=55203?(a-44032)%28!==0?"\uC744":"\uB97C":Tr.test(t)?"\uC744":"\uB97C"}function x2(e){return`${e}${v2(e)}`}function _2(e,t,a){const r=e.slice(),[s]=r.splice(t,1);return r.splice(a,0,s),r}function fa(e,t=Math.random){const a=e.slice();for(let r=a.length-1;r>0;r--){const s=Math.floor(t()*(r+1));[a[r],a[s]]=[a[s],a[r]]}return a}const w2=()=>{const e="\uC54C \uC218 \uC5C6\uB294 \uC624\uB958",t=typeof St?.t=="function"?St.t("common.unknownError",{defaultValue:e}):void 0;return typeof t=="string"&&t?t:e};function ti(e,t){if(t===void 0&&(t=w2()),e instanceof Error)return e.message||t;if(typeof e=="string")return e||t;if(e&&typeof e=="object"){const a=e;for(const r of[a.message,a.error_description,a.error])if(typeof r=="string"&&r)return r}return t}const k2="__ihab_core_word_pool__";function ni(){return globalThis[k2]??null}const ai=globalThis;function ri(e,t){const a=r=>{};try{const r=t();r&&typeof r.catch=="function"&&r.catch(a)}catch(r){a(r)}}function A2(e){ri("time",()=>ai.__ihabTrainingTimeLogger?.(e))}function B2(e){ri("completion",()=>ai.__ihabTrainingCompletionLogger?.(e))}function Ot(e){return typeof e=="string"?e.trim()||null:typeof e=="number"?String(e):null}function N2(e){for(const t of["correct","isCorrect","heard","judgement"])if(typeof e[t]=="boolean")return e[t];return e.score===1?!0:e.score===0?!1:null}function S2(e){return Array.isArray(e)?e.map((t,a)=>{const r=t??{};return{index:a,itemId:Ot(r.contextCode)??Ot(r.itemId)??Ot(r.itemCode)??Ot(r.id),question:Ot(r.question)??Ot(r.q)??Ot(r.sentence)??Ot(r.text)??Ot(r.prompt)??Ot(r.word)??Ot(r.targetSyllable),answer:Ot(r.answer),selected:Ot(r.selectedText)??Ot(r.selected),correct:N2(r)}}):[]}const Mr=globalThis;async function D2(){try{return await Mr.__ihabNoiseSettingsStore?.load()??null}catch{return null}}function oi(e){const t=a=>{};try{const a=Mr.__ihabNoiseSettingsStore?.save(e);a&&typeof a.catch=="function"&&a.catch(t)}catch(a){t(a)}}function Ha(e){try{Mr.__ihabNoiseSettingsStore?.applied?.(e)}catch{}}async function E2(e){if(typeof document<"u"){const t=document.activeElement;let a=null;try{if(a=document.createElement("textarea"),a.value=e,a.setAttribute("readonly",""),a.style.position="fixed",a.style.top="0",a.style.left="0",a.style.opacity="0",a.style.pointerEvents="none",document.body.appendChild(a),a.focus(),a.select(),a.setSelectionRange(0,e.length),document.execCommand("copy"))return!0}catch{}finally{if(a?.parentNode&&a.parentNode.removeChild(a),t&&t!==document.activeElement&&typeof t.focus=="function"&&t.isConnected)try{t.focus({preventScroll:!0})}catch{}}}try{if(typeof navigator<"u"&&navigator.clipboard&&typeof navigator.clipboard.writeText=="function")return await navigator.clipboard.writeText(e),!0}catch{}return!1}const j2=/^(\d{4}-\d{2}-\d{2})[T ](\d{2}:\d{2})(?::(\d{2})(?:\.(\d+))?)?$/;function si(e){let t;if(e instanceof Date)t=e;else if(typeof e=="string"){const a=e.trim(),r=j2.exec(a);t=new Date(r?`${r[1]}T${r[2]}:${r[3]??"00"}${r[4]?`.${r[4].slice(0,3).padEnd(3,"0")}`:""}+09:00`:a)}else t=new Date(e);return Number.isNaN(t.getTime())?null:t}function Ca(){return $r(new Date)}function Lr(e){return e&&/^\d{4}-\d{2}-\d{2}$/.test(e)?e:Ca()}function Kn(){return M2(Ca())}const T2=540*60*1e3;function ii(e,t,a){return new Date(Date.UTC(e,t,a)-T2)}function M2(e){const[t,a,r]=e.split("-").map(Number);return new Date(t,(a||1)-1,r||1)}function $r(e){if(e==null||e==="")return"";const t=si(e);return t?new Intl.DateTimeFormat("fr-CA",{timeZone:"Asia/Seoul"}).format(t):""}function li(e,t){if(!e)return"";const a=si(e);if(!a)return"";const r=a.getTime(),s=Math.max(0,Math.floor((Date.now()-r)/1e3)),i=Math.floor(s/60),l=Math.floor(i/60),c=Math.floor(l/24),d=Math.floor(c/7),u=Math.floor(c/30),p=Math.floor(c/365);return i<1?t("store.time.justNow","\uBC29\uAE08 \uC804"):i<60?t("store.time.minutesAgo",{n:i}):l<24?t("store.time.hoursAgo",{n:l}):c<7?t("store.time.daysAgo",{n:c}):d<5?t("store.time.weeksAgo",{n:d}):c<365?t("store.time.monthsAgo",{n:Math.min(u,11)}):t("store.time.yearsAgo",{n:p})}function ci(e,t={}){const{sep:a=".",pad:r=!0,trailingDot:s=!1,fallback:i="\u2014"}=t;if(!e)return i;const l=$r(e instanceof Date?e:String(e));if(!l)return i;const[c,d,u]=l.split("-"),p=r?d:String(Number(d)),m=r?u:String(Number(u));return`${c}${a}${p}${a}${m}${s?".":""}`}function Yn(e){if(!e)return e;const t=e.trim();return/^[₩$]/.test(t)?t:/원\s*$/.test(t)?"\u20A9"+t.replace(/\s*원\s*$/,"").trim():t}function ui(e,t){if(!e)return"-";const a=/^(\d{1,2}):(\d{2})$/.exec(e.trim());if(!a)return e;const r=Number(a[1]),s=Number(a[2]),i=a[1].padStart(2,"0");return s===0?t("date.timeH",{h:r,hh:i,mm:a[2]}):t("date.timeHM",{h:r,hh:i,m:s,mm:a[2]})}function Rr(e){return(e??0).toLocaleString("ko-KR")}const L2=[{key:"FOOD",label:"\uC74C\uC2DD",icon:"salad",color:"#FF8A65",subs:[{key:"TRKRFD",label:"\uD55C\uAD6D \uC804\uD1B5\uC74C\uC2DD"},{key:"MDKRFD",label:"\uD55C\uAD6D \uD604\uB300\uC74C\uC2DD"},{key:"WRLDFD",label:"\uC138\uACC4\uC758 \uC74C\uC2DD"},{key:"MTRFRT",label:"\uC2DD\uC7AC\uB8CC\uC640 \uACFC\uC77C"},{key:"GEFDKL",label:"\uC74C\uC2DD \uC0C1\uC2DD"}]},{key:"HLTH",label:"\uAC74\uAC15",icon:"heart",color:"#66BB6A",subs:[{key:"HTETHB",label:"\uAC74\uAC15\uD55C \uC2DD\uC2B5\uAD00"},{key:"DISILL",label:"\uBCD1\uACFC \uC9C8\uD658"},{key:"EXCISE",label:"\uC6B4\uB3D9"},{key:"GEHTKL",label:"\uAC74\uAC15\uC0C1\uC2DD"}]},{key:"WETH",label:"\uB0A0\uC528",icon:"sun-medium",color:"#42A5F5",subs:[{key:"GESSKL",label:"\uACC4\uC808\uC0C1\uC2DD"},{key:"SNWRAN",label:"\uB208\uACFC \uBE44"},{key:"WTHFCT",label:"\uC77C\uAE30\uC608\uBCF4"},{key:"GEWTKL",label:"\uB0A0\uC528\uC0C1\uC2DD"}]},{key:"PRSN",label:"\uC778\uBB3C",icon:"user-round",color:"#AB47BC",subs:[{key:"JODYPS",label:"\uC870\uC120\uC2DC\uB300"},{key:"MDKRPS",label:"\uD55C\uAD6D \uADFC\uD604\uB300"},{key:"THKDPS",label:"\uC0BC\uAD6D\uC2DC\uB300"},{key:"WRLART",label:"\uC138\uACC4\uC758 \uC608\uC220\uAC00"},{key:"WRLPSN",label:"\uC138\uACC4\uC758 \uC778\uBB3C"}]},{key:"KRCT",label:"\uD55C\uAD6D\uBB38\uD654",icon:"bow-arrow",color:"#EC407A",subs:[{key:"KRLANG",label:"\uC6B0\uB9AC\uB9D0"},{key:"TRPLCT",label:"\uC804\uD1B5\uB180\uC774"},{key:"HERITG",label:"\uBB38\uD654\uC7AC"},{key:"EVTFES",label:"\uD589\uC0AC\uC640 \uCD95\uC81C"},{key:"GECTKL",label:"\uC0C1\uC2DD"}]},{key:"STRY",label:"\uC774\uC57C\uAE30",icon:"message-circle",color:"#8D6E63",subs:[{key:"FRYTAL",label:"\uB3D9\uD654"},{key:"AMZING",label:"\uC2E0\uAE30\uD55C \uC774\uC57C\uAE30"},{key:"DAYSTR",label:"\uC77C\uC0C1 \uC18D \uC774\uC57C\uAE30"}]},{key:"LOCA",label:"\uC9C0\uC5ED",icon:"map-pin",color:"#26A69A",subs:[{key:"KRLDMK",label:"\uD55C\uAD6D\uC758 \uBA85\uC18C"},{key:"SELNMK",label:"\uC11C\uC6B8\uC758 \uBA85\uC18C"},{key:"WRDTRB",label:"\uC138\uACC4\uC5EC\uD589"},{key:"NAVIGT",label:"\uAE38 \uCC3E\uAE30"}]},{key:"SOAR",label:"\uC0AC\uD68C\uC640 \uC608\uC220",icon:"landmark",color:"#5C6BC0",subs:[{key:"KRSOCI",label:"\uD55C\uAD6D"},{key:"ECONEW",label:"\uACBD\uC81C\uC640 \uB274\uC2A4"},{key:"GENART",label:"\uC608\uC220"},{key:"GELFKL",label:"\uC0DD\uD65C \uC0C1\uC2DD"}]},{key:"NTSC",label:"\uC790\uC5F0\uACFC \uACFC\uD559",icon:"leaf",color:"#9CCC65",subs:[{key:"ANIMAL",label:"\uB3D9\uBB3C"},{key:"PLANTS",label:"\uC2DD\uBB3C"},{key:"ETHPLT",label:"\uC9C0\uAD6C"},{key:"TOLELC",label:"\uB3C4\uAD6C\uC640 \uC804\uC790\uC81C\uD488"},{key:"GESCKL",label:"\uACFC\uD559\uC0C1\uC2DD"}]},{key:"SPRT",label:"\uC2A4\uD3EC\uCE20",icon:"trophy",color:"#FFCA28",subs:[{key:"INVDSP",label:"\uAC1C\uC778\uACBD\uAE30"},{key:"MARART",label:"\uACA9\uD22C\uAE30"},{key:"TEAMSP",label:"\uB2E8\uCCB4\uACBD\uAE30"},{key:"FOOTBL",label:"\uCD95\uAD6C"},{key:"GESPKL",label:"\uC2A4\uD3EC\uCE20 \uC0C1\uC2DD"}]}],$2=[{key:"LISTEN_IN_NOISE",label:"\uC18C\uC74C \uD558 \uBB38\uC7A5 \uB4E3\uAE30",icon:"party-popper",desc:"\uC18C\uC74C \uD658\uACBD \uC18D \uBB38\uC7A5 \uC774\uD574 \uD6C8\uB828"},{key:"SHORT_STORY",label:"\uC9E7\uC740 \uC774\uC57C\uAE30 \uB4E3\uAE30",icon:"message-square",desc:"\uC9E7\uC740 \uC774\uC57C\uAE30 + 4\uBB38\uC81C"},{key:"LONG_STORY",label:"\uAE34 \uC774\uC57C\uAE30 \uB4E3\uAE30",icon:"message-square-text",desc:"\uAE34 \uC774\uC57C\uAE30 \uC2EC\uD654 \uD6C8\uB828"},{key:"ORDERING_SENTENCE",label:"\uBB38\uC7A5 \uC21C\uC11C\uD654 \uD558\uAE30",icon:"align-start-vertical",desc:"\uC21C\uC11C \uBC30\uC5F4 \uD6C8\uB828"}];function di(){return L2}function R2(){return $2}const P2=[],I2=[],F2=[],O2=[];function H2(){return{LISTEN_IN_NOISE:P2,SHORT_STORY:I2,LONG_STORY:F2,ORDERING_SENTENCE:O2}}const z2=[{key:"LISTEN_IN_NOISE",label:"\uC18C\uC74C \uD558 \uBB38\uC7A5 \uB4E3\uAE30",icon:"party-popper",desc:"\uB2E4\uC591\uD55C \uC18C\uC74C \uD658\uACBD\uC5D0\uC11C \uBB38\uC7A5 \uCCAD\uB825\uC744 \uD6C8\uB828\uD569\uB2C8\uB2E4."},{key:"SHORT_STORY",label:"\uC9E7\uC740 \uC774\uC57C\uAE30 \uB4E3\uAE30",icon:"message-square",desc:"\uC9E7\uC740 \uC774\uC57C\uAE30\uB97C \uB4E3\uACE0 \uAE30\uC5B5\uD558\uC5EC \uBB38\uC81C\uB97C \uD480\uC5B4\uBD05\uB2C8\uB2E4."},{key:"LONG_STORY",label:"\uAE34 \uC774\uC57C\uAE30 \uB4E3\uAE30",icon:"message-square-text",desc:"\uAE34 \uC774\uC57C\uAE30\uB97C \uB4E3\uACE0 \uAE30\uC5B5\uD558\uC5EC \uB2E4\uC218\uC758 \uBB38\uC81C\uB97C \uD480\uC5B4\uBD05\uB2C8\uB2E4."},{key:"ORDERING_SENTENCE",label:"\uBB38\uC7A5 \uC21C\uC11C\uD654 \uD558\uAE30",icon:"align-start-vertical",desc:"\uC5EC\uB7EC\uAC1C\uC758 \uC9E7\uC740 \uBB38\uC7A5\uC744 \uB4E3\uACE0 \uAE30\uC5B5\uD558\uC5EC \uADF8 \uC21C\uC11C\uC5D0 \uB9DE\uAC8C \uBC30\uC5F4\uD569\uB2C8\uB2E4."}],pi={LISTEN_IN_NOISE:"listenInNoise",SHORT_STORY:"shortStory",LONG_STORY:"longStory",ORDERING_SENTENCE:"orderingSentence"};function V2(e){return z2.map(t=>{const a=pi[t.key];return a?{...t,label:e(`trainingType.${a}.title`),desc:e(`trainingType.${a}.desc`)}:t})}let za=null,mi=null,hi=null;function W2(){const e=ni();if(e&&e.entries.length>0){const t=C2();if(za&&mi===e&&hi===t)return za;const a=new Set,r=[];for(const s of e.entries)!s.word||a.has(s.word)||(a.add(s.word),r.push({w:s.word,s:s.syllables,p:t?.[s.word]?[...t[s.word].cho??[],...t[s.word].jung??[],...t[s.word].jong??[]]:[],pron:s.pronunciation||s.word,grade:s.grade}));return za=r,mi=e,hi=t,za}return[]}new Proxy([],{get(e,t){const a=W2(),r=a[t];return typeof r=="function"?r.bind(a):r}});const q2="0.192.0";function U2(e){if(e.includes("\\")&&e.includes("("))return!0;if(!/url\s*\(/i.test(e))return!1;const t=e.replace(/url\(\s*(['"]?)#[^)'"]*\1\s*\)/gi,"");return/url\s*\(/i.test(t)}function G2(e){if(typeof window>"u")return"";const t=(a,r)=>{typeof r.attrValue=="string"&&U2(r.attrValue)&&(r.keepAttr=!1)};kr.addHook("uponSanitizeAttribute",t);try{return kr.sanitize(e,{USE_PROFILES:{svg:!0,svgFilters:!0},FORBID_TAGS:["script","use","style"],FORBID_ATTR:["xlink:href","href"]})}finally{kr.removeHook("uponSanitizeAttribute",t)}}function K2(e){const[t,a]=o.useState(null),[r,s]=o.useState(null),[i,l]=o.useState(null),[c,d]=o.useState(null);return o.useEffect(()=>{if(!e||typeof e!="string"||!e.endsWith(".svg")){a(null),s(null),l(null);return}const u=e.split("/").pop();let p=e;u&&(e.startsWith("/")?p=Ar(e):/^(Logo|Symbol)/i.test(u)?p=Ar(`logo/${u}`):(/^https?:\/\//i.test(e)||e.startsWith("data:"),p=e)),s(null),l(null),a(p)},[e]),o.useEffect(()=>{if(!t)return;let u=!1;async function p(){try{let m=await fetch(t);m.ok||(m=await fetch(t));const h=m.headers.get("content-type")||"";if(u)return;if(h.includes("svg")){s("mask");return}if(h.startsWith("image/")){s("img");return}const b=await fetch(t);if(!b.ok)throw new Error("not ok");const v=await b.text();if(u)return;if(/^\s*<svg[\s>]/i.test(v)){const C=G2(v);if(!C){s("none");return}l(C),s("inline");return}s("none")}catch{u||s("none")}}return p(),()=>{u=!0}},[t]),o.useEffect(()=>{let u=!1,p=null;return r==="mask"&&t&&fetch(t).then(m=>{if(!m.ok)throw new Error("fetch failed");return m.blob()}).then(m=>{u||(p=URL.createObjectURL(m),d(p))}).catch(()=>{u||s("img")}),()=>{u=!0,p&&URL.revokeObjectURL(p),d(null)}},[r,t]),{iconToUse:t,mode:r,svgText:i,blobUrl:c}}function Ke(e){const{icon:t,label:a,className:r,imgClassName:s,maskClassName:i,svgClassName:l,wrapperStyle:c,size:d}=e||{},u=r??"iconRenderer-icon",p=s??"iconRenderer-icon-image",m=i??"iconRenderer-icon-mask",h=l??"iconRenderer-icon-svg",b=typeof t=="string"?t:null,v=u0(b),{iconToUse:C,mode:w,svgText:f,blobUrl:y}=K2(b),x=(N,A={})=>n.jsx("span",{className:u,style:c,...A,children:N}),g=typeof d=="number"?{width:d,height:d,objectFit:"contain"}:null,k=(N,A={})=>n.jsx("img",{src:N,alt:typeof a=="string"?a:typeof a=="number"?String(a):"",className:p,...A,style:g?{...A.style,...g}:A.style});if(!t)return null;if(typeof t!="string")return x(t);if(t==="none")return x(n.jsx("span",{className:h,dangerouslySetInnerHTML:{__html:'<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" aria-hidden="true"></svg>'}}),{"aria-hidden":"true"});if(v)try{return x(o.createElement(v,{className:h,size:typeof d=="number"?d:20}),{"aria-hidden":"true"})}catch{}if(C&&C.endsWith(".svg")){if(w==="mask"){const N={"--icon-url":y?`url(${y})`:`url(${C})`,...typeof d=="number"?{"--icon-size":`${d}px`}:null};return x(n.jsx("span",{className:m,style:N}),{"aria-hidden":"true"})}return w==="img"?x(k(C,{onError:N=>{N.currentTarget.onerror=null,N.currentTarget.style.display="none"}}),{"aria-hidden":"true"}):w==="inline"?x(n.jsx("span",{className:h,dangerouslySetInnerHTML:f?{__html:f}:void 0}),{"aria-hidden":"true"}):x(null,{"aria-hidden":"true"})}if(t.startsWith("/")||t.includes("/assets/")||t.match(/\.(png|jpg|jpeg|webp|gif)$/i))return k(Ar(t),{style:c,onError:N=>{N.currentTarget.onerror=null,N.currentTarget.style.display="none"}});const _=typeof d=="number"?d:20,B=`<svg width="${_}" height="${_}" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><rect x="3" y="3" width="18" height="18" rx="2" ry="2" style="fill:none;stroke:currentColor;stroke-width:2"/></svg>`;return x(n.jsx("span",{className:h,dangerouslySetInnerHTML:{__html:B}}),{"aria-hidden":"true"})}function fi(e){const[t,a]=o.useState(!1),r=o.useRef(!1),s=o.useRef(!0);o.useEffect(()=>(s.current=!0,()=>{s.current=!1}),[]);const i=o.useCallback(()=>{if(!e||r.current)return;const l=e();if(l&&typeof l.then=="function"){r.current=!0,a(!0);const c=()=>{r.current=!1,s.current&&a(!1)};l.then(c,c)}},[e]);return{pending:t,press:i}}function Y2({icon:e,title:t,message:a,action:r,className:s}){const{pending:i,press:l}=fi(r?.onClick);return n.jsxs("div",{className:Se("empty-state",s),children:[e&&n.jsx(Ke,{icon:e,size:48,className:"empty-state__icon"}),t&&n.jsx("p",{className:"empty-state__title h4",children:t}),a&&n.jsx("p",{className:"empty-state__message body-3",children:a}),r&&n.jsxs("button",{type:"button",className:"empty-state__action button button40 button40--bar button--variant-main button--align-center button--shape-rounded",onClick:l,disabled:i,"aria-busy":i||void 0,children:[r.icon&&n.jsx(Ke,{icon:r.icon,className:"button__icon"}),n.jsx("span",{className:"button__label button-1",children:r.label})]})]})}function Z2({message:e,hint:t,icon:a="triangle-alert",onRetry:r,retryLabel:s,className:i}){const{t:l}=ve.useTranslation(),{pending:c,press:d}=fi(r);return n.jsxs("div",{className:Se("empty-state","error-state",i),role:"alert",children:[n.jsx(Ke,{icon:a,size:48,className:"empty-state__icon error-state__icon"}),n.jsx("p",{className:"empty-state__message body-3",children:e??l("common.errorState.message",{defaultValue:"\uBD88\uB7EC\uC624\uC9C0 \uBABB\uD588\uC2B5\uB2C8\uB2E4."})}),t&&n.jsx("p",{className:"error-state__hint caption-1",children:t}),r&&n.jsxs("button",{type:"button",className:"empty-state__action button button40 button40--bar button--variant-main button--align-center button--shape-rounded",onClick:d,disabled:c,"aria-busy":c||void 0,children:[n.jsx(Ke,{icon:"rotate-cw",className:"button__icon"}),n.jsx("span",{className:"button__label button-1",children:s??l("common.errorState.retry",{defaultValue:"\uB2E4\uC2DC \uC2DC\uB3C4"})})]})]})}function X2({icon:e,title:t,description:a,cta:r,tone:s="main",disabled:i=!1,onClick:l,className:c=""}){const d=o.useId(),u=`${d}-title`,p=`${d}-desc`,m=`${d}-cta`,h=()=>{i||l?.()};return n.jsx("section",{role:"button",tabIndex:i?-1:0,"aria-disabled":i||void 0,"aria-labelledby":u,"aria-describedby":`${p} ${m}`,onClick:h,onKeyDown:b=>{(b.key==="Enter"||b.key===" ")&&(b.preventDefault(),h())},className:Se("action-card",`action-card--${s}`,i&&"action-card--disabled",c),children:n.jsxs("div",{className:"action-card__body",children:[n.jsx("span",{"aria-hidden":!0,className:"action-card__chip",children:n.jsx(Ke,{icon:e,size:34})}),n.jsxs("div",{className:"action-card__text",children:[n.jsx("h2",{id:u,className:"action-card__title",children:t}),n.jsx("p",{id:p,className:"action-card__desc",children:a})]}),n.jsxs("div",{className:"action-card__cta",children:[n.jsx("span",{id:m,children:r}),n.jsx("span",{"aria-hidden":!0,className:"action-card__arrow",children:n.jsx(Ke,{icon:"arrow-right",size:18})})]})]})})}function J2({as:e="div",className:t="",children:a,storage:r,...s}){r&&Y0({resolveUrl:r.resolveUrl,download:r.download??(()=>Promise.reject(new Error("[ihabdevteam-core] CoreScope: download resolver\uAC00 \uC124\uC815\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4."))),exists:r.exists,resolvePath:r.resolvePath,noiseBaseUrl:r.noiseBaseUrl,noiseFileGain:r.noiseFileGain});const i=Se("ihabdevteam-core-scope",t);return n.jsx(e,{className:i,...s,children:a})}function Pr(e,t=!0){o.useEffect(()=>{if(!t)return;const a=e.current;if(!a)return;const r=s=>{if(s.key!=="Tab")return;const i=Array.from(a.querySelectorAll(gn)).filter(p=>!p.closest('[aria-hidden="true"]'));if(!i.length){s.preventDefault();return}const l=i[0],c=i[i.length-1],d=document.activeElement,u=d===a;s.shiftKey&&(d===l||u)?(s.preventDefault(),c.focus()):!s.shiftKey&&d===c&&(s.preventDefault(),l.focus())};return a.addEventListener("keydown",r),()=>a.removeEventListener("keydown",r)},[e,t])}const gn='a[href], button:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex="-1"])',Ir=new WeakMap;function Fr(e,t){e&&Ir.set(e,t)}function Or(e){let t=e;for(let a=0;t&&!t.isConnected&&a<10;a++){let r=t;for(;r&&!Ir.has(r);)r=r.parentElement;if(!r)return t;t=Ir.get(r)??null}return t}function Ci(e){return!(!e||!e.isConnected||e===document.body||typeof e.focus!="function"||e.disabled||e instanceof HTMLInputElement&&e.type==="hidden"||e.closest('[inert],[aria-hidden="true"],[hidden]'))}function Va(e,t,a){const r=e?.isConnected?e:a?.isConnected?a:null;if(Ci(t)&&!(e&&e.contains(t)))return t.focus(),t;if(!r)return null;const s=Array.from(document.querySelectorAll(gn)).filter(d=>!(e&&e.contains(d))&&Ci(d));let i=null,l=null;for(const d of s)r.compareDocumentPosition(d)&Node.DOCUMENT_POSITION_PRECEDING?i=d:l||(l=d);const c=i??l;return c?.focus(),c}function Q2({title:e="",lines:t=[],notices:a=null,children:r,variant:s="default",dismissible:i=!1,className:l=""}){const{t:c}=ve.useTranslation(),[d,u]=o.useState(!1),p=o.useRef(null),m=o.useCallback(()=>{const C=p.current;C&&C.contains(document.activeElement)&&Va(C),u(!0)},[]);if(d)return null;const h=`notice-box notice-box--${s} body-2 ${l}`.trim(),b=i&&n.jsx("button",{type:"button",className:"notice-box__dismiss",onClick:m,"aria-label":c("common.close","\uB2EB\uAE30"),children:"\xD7"});if(a&&Array.isArray(a)&&a.length)return n.jsxs("div",{className:h,role:"note",children:[a.map((C,w)=>n.jsxs("div",{className:"notice-box__inner",children:[C.title?n.jsx("span",{className:"notice-box__title body-3",children:C.title}):null,n.jsx("div",{className:"notice-box__body",children:C.lines&&C.lines.length?n.jsx("div",{children:C.lines.map((f,y)=>n.jsx("span",{className:"notice-box__line body-3",children:f},y))}):C.children??null})]},w)),b]});const v=e||t.length?n.jsxs("div",{className:"notice-box__inner",children:[e?n.jsx("span",{className:"notice-box__title body-1",children:e}):null,n.jsx("div",{className:"notice-box__body",children:t.length?n.jsx("ul",{children:t.map((C,w)=>n.jsx("li",{className:"notice-box__line",children:C},w))}):r})]}):n.jsx("div",{className:"notice-box__inner",children:r});return n.jsxs("div",{ref:p,className:h,role:"note",children:[v,b]})}const Zn=[];let Wa=!1;function gi(e){if(e.key!=="Escape"||e.defaultPrevented||e.isComposing||e.keyCode===229)return;const t=Zn[Zn.length-1];t&&(e.stopPropagation(),t())}function In(e){return Zn.push(e),!Wa&&typeof document<"u"&&(document.addEventListener("keydown",gi),Wa=!0),()=>{const t=Zn.lastIndexOf(e);t>=0&&Zn.splice(t,1),Zn.length===0&&Wa&&typeof document<"u"&&(document.removeEventListener("keydown",gi),Wa=!1)}}const bi=o.createContext(null);function ef(e){return/max-width:\s*7[0-9][0-9]px/.test(e)}const yi=e=>typeof window>"u"||!window.matchMedia?!1:window.matchMedia(e).matches;function tf(e){const t=o.useCallback(a=>{if(typeof window>"u"||!window.matchMedia)return()=>{};const r=window.matchMedia(e);return r.addEventListener?r.addEventListener("change",a):r.addListener&&r.addListener(a),()=>{r.removeEventListener?r.removeEventListener("change",a):r.removeListener&&r.removeListener(a)}},[e]);return Jo.useSyncExternalStore(t,()=>yi(e),()=>!1)}function nf(e){const[t,a]=o.useState(yi(e));return o.useEffect(()=>{if(typeof window>"u"||!window.matchMedia)return;const r=window.matchMedia(e),s=l=>a(l.matches),i=r;return i.addEventListener?i.addEventListener("change",s):i.addListener&&i.addListener(s),a(r.matches),()=>{i.removeEventListener?i.removeEventListener("change",s):i.removeListener&&i.removeListener(s)}},[e]),t}const af=typeof Jo.useSyncExternalStore=="function"?tf:nf;function Yt(e){const t=o.useContext(bi),a=af(e);return t&&typeof t.mobile=="boolean"&&ef(e)?t.mobile:a}const rf="(prefers-reduced-motion: reduce)";function Hr(){return Yt(rf)}function an(e){const{anchorRect:t,anchorEl:a,offset:r=20,edgeMargin:s=20,onClose:i,closeOnOutsideClick:l=!0,className:c="",role:d="dialog",ariaLabel:u="",children:p,backdrop:m=!1,isMobilePopup:h=!1,useBorder:b=!0,header:v}=e||{},C=o.useRef(null),[w,f]=o.useState({position:"fixed",left:0,top:-9999}),[y,x]=o.useState(!1),[g,k]=o.useState("bottom"),[_,B]=o.useState(!1),[N,A]=o.useState(!1),S=!t&&!a,O=o.useCallback((X=!1)=>{if(N&&h)return;const U=a?a.getBoundingClientRect():t;if(!U||!C.current)return;const W=C.current,{offsetWidth:Y,offsetHeight:L}=W,D=window.innerWidth,P=window.innerHeight,I=D-U.right,F=U.left,$=U.top,J=P-U.bottom;let Z=0,K=0,ae="top";if($>=L+r)ae="top",K=U.top-r-L,Z=U.left+U.width/2-Y/2;else if(J>=L+r)ae="bottom",K=U.bottom+r,Z=U.left+U.width/2-Y/2;else if(I>=Y+r)ae="right",Z=U.right+r,K=U.top+U.height/2-L/2;else if(F>=Y+r)ae="left",Z=U.left-r-Y,K=U.top+U.height/2-L/2;else{const z=Math.max($,J,I,F);z===$?(ae="top",K=U.top-r-L,Z=U.left+U.width/2-Y/2):z===J?(ae="bottom",K=U.bottom+r,Z=U.left+U.width/2-Y/2):z===I?(ae="right",Z=U.right+r,K=U.top+U.height/2-L/2):(ae="left",Z=U.left-r-Y,K=U.top+U.height/2-L/2)}const ye=Number.isFinite(Number(s))?Number(s):8;Z=Math.min(Math.max(Z,ye),D-Y-ye),K=Math.min(Math.max(K,ye),P-L-ye);const oe=Math.round(Z),le=Math.round(K);X&&C.current?(C.current.style.left=`${oe}px`,C.current.style.top=`${le}px`,C.current.dataset.placement=ae):(k(ae||g),f({position:"fixed",left:oe,top:le}),B(!0))},[N,h,a,t,r,s,g]);o.useLayoutEffect(()=>{if(S)return;if(N&&h){f({position:"fixed",left:"50%",top:"50%",transform:"translate(-50%, -50%)",width:"calc(100% - 40px)",maxWidth:"calc(100% - 40px)"}),B(!0);return}O();const X=requestAnimationFrame(()=>O());return()=>cancelAnimationFrame(X)},[t,a,r,p,s,S,N,h,O]),o.useEffect(()=>{if(S||N&&h||!C.current||typeof ResizeObserver>"u")return;const X=new ResizeObserver(()=>{t&&O()});return X.observe(C.current),()=>X.disconnect()},[t,p,s,S,N,h,O]),o.useEffect(()=>{if(S||N&&h)return;const X=()=>O(!0),U=W=>{if(!a&&i){const Y=W.target;if(Y&&C.current&&C.current.contains(Y))return;try{if(Y&&Y.closest&&Y.closest("[data-tooltip-ignore]"))return}catch{}M.current(!0);return}X()};return window.addEventListener("resize",X),document.addEventListener("scroll",U,{passive:!0,capture:!0}),()=>{window.removeEventListener("resize",X),document.removeEventListener("scroll",U,{capture:!0})}},[t,a,i,r,p,s,S,N,h,O]),o.useEffect(()=>{if(typeof window>"u"||!window.matchMedia)return;const X=window.matchMedia("(max-width: 768px)"),U=()=>A(!!X.matches);U();try{X.addEventListener?X.addEventListener("change",U):X.addListener(U)}catch{try{X.addListener(U)}catch{}}return()=>{try{X.removeEventListener?X.removeEventListener("change",U):X.removeListener(U)}catch{}}},[]);const H=o.useRef(!1),j=o.useRef(null),q=Hr(),E=o.useCallback((X=!1)=>{if(i&&!(y||H.current)){if(H.current=!0,X){x(!0);try{i&&i()}catch{H.current=!1,x(!1)}return}x(!0),j.current=setTimeout(()=>{j.current=null;try{i&&i()}catch{H.current=!1,x(!1)}},q?0:200)}},[y,i,x,q]);o.useEffect(()=>()=>{j.current&&clearTimeout(j.current)},[]),o.useEffect(()=>{if(S)return;const X=Y=>{const L=C.current;if(!L)return;const D=Y.target;if(D&&!L.contains(D)){try{if(D.closest&&D.closest("[data-tooltip-ignore]"))return}catch{}l&&E(!0)}},U=Y=>{const L=C.current;if(!L)return;const D=Y.target;if(D&&!L.contains(D)){try{if(D.closest&&D.closest("[data-tooltip-ignore]"))return}catch{}l&&E(!0)}},W=Y=>{if(Y.key==="Tab"){const L=C.current;if(!L)return;const D=L.querySelectorAll(gn);if(!D||D.length===0)return;const P=D[0],I=D[D.length-1],F=document.activeElement;Y.shiftKey?F===P&&(Y.preventDefault(),I.focus()):F===I&&(Y.preventDefault(),P.focus())}};return document.addEventListener("pointerdown",X,!0),document.addEventListener("click",U,!0),document.addEventListener("keydown",W),()=>{document.removeEventListener("pointerdown",X,!0),document.removeEventListener("click",U,!0),document.removeEventListener("keydown",W)}},[i,l,E,S]);const M=o.useRef(E);o.useEffect(()=>{M.current=E});const R=!!i;o.useEffect(()=>{if(!(S||!R))return In(()=>M.current())},[S,R]),o.useEffect(()=>{const X=()=>{E(!0)};return typeof document<"u"&&document.addEventListener("speechear-close-tooltips",X),()=>{typeof document<"u"&&document.removeEventListener("speechear-close-tooltips",X)}},[E]);const G=n.jsxs("div",{ref:C,className:`tooltip-content ${S?"tooltip-content--inline":""} ${b?"tooltip-content--bordered":""} ${y?"is-closing":""} ${c} ${N&&h?"is-mobile":""}`,role:d,"aria-label":u||void 0,style:S?{}:{...w,visibility:_?"visible":"hidden"},tabIndex:-1,"data-placement":g,"data-left":S?"":w.left,"data-top":S?"":w.top,"data-anchor-left":t?Math.round(t.left):"","data-anchor-top":t?Math.round(t.top):"","data-anchor-width":t?Math.round(t.width):"","data-anchor-height":t?Math.round(t.height):"",children:[v!=null&&n.jsx("div",{className:"tooltip-content__header h5",children:v}),p]});if(S||typeof document>"u")return G;if(m||N&&h){const X=n.jsxs("div",{className:"tooltip-portal",children:[n.jsx("div",{className:"tooltip-backdrop",onClick:()=>{l&&E(!0)}}),G]});return Ut.createPortal(X,document.body)}return Ut.createPortal(G,document.body)}function bn(e){const{anchorRect:t,text:a,offset:r=8,onClose:s,className:i="",ariaLabel:l}=e||{};return a?n.jsx(an,{anchorRect:t,offset:r,onClose:s,closeOnOutsideClick:!1,className:`tooltip-info ${i}`,ariaLabel:l||a,children:n.jsx("div",{className:"tooltip-info__content body-3",children:a})}):null}function Fn(e){const{t}=ve.useTranslation(),{anchorRect:a,title:r,items:s,activeIndex:i=-1,showIndex:l=!0,onClose:c,offset:d=12,closeOnOutsideClick:u=!0}=e||{},p=(Array.isArray(s)?s:s?[s]:[]).map(m=>typeof m=="string"?{text:m}:m);return!p.length&&!r?null:n.jsx(an,{anchorRect:a,offset:d,onClose:c,closeOnOutsideClick:u,useBorder:!1,className:"tooltip-description",ariaLabel:r||t("tooltip.description","\uC124\uBA85"),children:n.jsxs("div",{className:"tooltip-description__box",children:[r&&n.jsx("span",{className:"tooltip-description__title body-2",children:r}),n.jsx("ol",{className:"tooltip-description__items",children:p.map((m,h)=>n.jsxs("li",{className:`tooltip-description__item body-3${h===i?" tooltip-description__item--active":""}`,children:[l&&p.length>1&&n.jsxs("span",{className:"tooltip-description__index button-1",children:[h+1,"."]}),m.color&&n.jsx("span",{className:"tooltip-description__dot",style:{background:m.color},"aria-hidden":"true"}),n.jsx("span",{children:m.text})]},h))})]})})}function ga(e){const t=o.useRef(e);return o.useEffect(()=>{t.current=e}),t}let zr=0,vi=!1;function xi(){vi||typeof document>"u"||(vi=!0,document.addEventListener("pointerdown",e=>{e.pointerType==="touch"&&(zr=Date.now())},!0),document.addEventListener("touchstart",()=>{zr=Date.now()},{capture:!0,passive:!0}))}xi();function Xn(e){return!!e&&e.pointerType==="touch"}function Jn(e=1e3){return xi(),Date.now()-zr<e}function Vr(e,t,a,{enabled:r=!0,fallbackOnParent:s=!1}={}){const i=ga(e),l=ga(t),c=o.useRef(null),d=o.useRef(0);o.useEffect(()=>{if(!r||typeof document>"u")return;const p=m=>{const h=m,b=m.target,v=a.current,C=!!(b&&v&&v.contains(b));if(h.pointerType!=="touch"){C&&(c.current=null);return}if(C){c.current=i.current;return}c.current=null,i.current&&!(b&&b.closest?.(".tooltip-content"))&&l.current(!1,v)};return document.addEventListener("pointerdown",p,!0),()=>document.removeEventListener("pointerdown",p,!0)},[r,a,i,l]);const u=o.useCallback(p=>{const m=c.current;return m===null?!1:(c.current=null,d.current=Date.now(),l.current(!m,p??a.current),!0)},[a,l]);return o.useEffect(()=>{if(!r||!s)return;const p=a.current,m=p?.parentElement;if(!p||!m)return;let h=null;const b=w=>{const f=w.changedTouches?.[0];if(!f)return!1;const y=p.getBoundingClientRect();return f.clientX>=y.left&&f.clientX<=y.right&&f.clientY>=y.top&&f.clientY<=y.bottom},v=w=>{h=b(w)?i.current:null},C=w=>{const f=h;h=null,!(f===null||Date.now()-d.current<700||!b(w))&&(c.current=null,d.current=Date.now(),l.current(!f,p))};return m.addEventListener("touchstart",v,{passive:!0}),m.addEventListener("touchend",C),()=>{m.removeEventListener("touchstart",v),m.removeEventListener("touchend",C)}},[r,s,a,i,l]),{touchPress:u}}function of(e,t){const{size:a=48,type:r,htmlType:s,href:i,target:l,rel:c,icon:d,rightIcon:u,label:p,count:m,subLabel:h,children:b,ariaLabel:v,variant:C="default",align:w="center",nowrap:f=!1,selected:y,toggleable:x=!1,ariaExpanded:g,ariaControls:k,disabled:_=!1,useLabel:B=!0,useBorder:N=!0,useBG:A=!0,useDisabledCovered:S=!1,useDisabledInvisible:O=!1,width:H,minWidth:j,onClick:q,onDisabledClick:E,showTooltipInfo:M=!1,tooltipInfoText:R=null,tooltipDescription:G=null,tooltipOnly:X=!1,iconSize:U="medium",iconColor:W,shape:Y="rounded",color:L,className:D,...P}=e,I=typeof a=="string"&&isNaN(Number(a))?a.toLowerCase():String(Number(a)||48),F=I.match(/^\d+$/)?`button${I}`:`button-${I}`,$=Number(a),J=!isNaN($)&&$<40?"button-2":"button-1",Z=p??b,K=_||!!P.disabled,ae=K?S?"disabled-covered":O?"disabled-invisibled":"disabled":C,ye=ae?`button--variant-${ae}`:"",oe=w?`button--align-${w}`:"",le=f?"button--nowrap":"",z=Y?`button--shape-${Y}`:"",re=typeof W=="string"&&W.startsWith("--")?`var(${W})`:W,pe={...H?{width:typeof H=="number"?`${H}px`:H}:{},...j?{minWidth:typeof j=="number"?`${j}px`:j}:{},...N?{}:{"--button-border":K?"0":"1px solid transparent"},...re?{"--button-icon-color":re}:{},...L?{"--color-main":L}:{}},_e=B===!1?"":Z,be=Array.isArray(_e)?_e.length>0:!!_e,Ne=!!u,fe=r??(be||d||Ne?"bar":"dot"),xe=`${F}--${fe}`,Ee=o.useRef(null),Oe=o.useRef(t);Oe.current=t;const $e=o.useCallback(Ie=>{Ee.current=Ie;const rt=Oe.current;typeof rt=="function"?rt(Ie):rt&&(rt.current=Ie)},[]),ue=o.useRef(K),[Ae,Le]=o.useState(!!y),[Te,ne]=o.useState(!1),[ie,ge]=o.useState(null),he=o.useCallback(()=>ne(!1),[]),[Ge,Ue]=o.useState(!1),Ye=o.useId();o.useEffect(()=>{typeof y=="boolean"&&Le(y)},[y]),o.useEffect(()=>{if(ue.current&&!K&&Ee.current){const Ie=Ee.current;let rt=!1;try{rt=Ie.matches(":focus:not(:focus-visible)")}catch{rt=!1}rt&&Ie.blur(),Ie.style.pointerEvents="none";const bt=requestAnimationFrame(()=>{requestAnimationFrame(()=>{Ee.current&&(Ee.current.style.pointerEvents="")})});return()=>cancelAnimationFrame(bt)}ue.current=K},[K]);const Ze=typeof y=="boolean"?!!y:Ae,Xe=typeof g=="boolean"?void 0:x||typeof y=="boolean"?Ze?"true":"false":P["aria-pressed"],ze=Se("button",F,xe,ye,oe,le,z,Ze?"is-selected":null,A?null:"button--no-bg",X?"button--tooltip-only":null,D),Re=`button__icon button__icon--${U}`,Ve=Array.isArray(h)?h:h!==void 0?[h]:[],ot=()=>{if(Array.isArray(_e))return _e.map((rt,bt)=>{const Vt=Ve[bt];return n.jsxs("span",{className:`button__label-text${Vt!==void 0?" button__label-text--has-sub":""}`,children:[rt,Vt!==void 0&&n.jsx("span",{className:"button__sub-label-text caption-1",children:Vt})]},bt)});const Ie=h!==void 0;return n.jsxs("span",{className:`button__label-text${Ie?" button__label-text--has-sub":""}`,children:[_e,m!=null&&n.jsx("span",{className:"button__count",children:m}),Ie&&n.jsx("span",{className:"button__sub-label-text caption-1",children:h})]})},Ct=Ie=>{typeof y!="boolean"&&!x&&Le(!1),Ie.currentTarget.blur()},zt=Ie=>{K||(typeof P.onMouseLeave=="function"&&P.onMouseLeave(Ie),Ct(Ie))},gt=Ie=>{if(X&&et&<.touchPress(Ie.currentTarget),K){et&<.touchPress(Ie.currentTarget),Ie.preventDefault(),E?.(Ie);return}typeof y!="boolean"&&x&&Le(rt=>!rt),q?.(Ie)},nt=o.useCallback(()=>{(M||G)&&(ne(!0),ge(Ee.current?.getBoundingClientRect()??null))},[M,G]),Je=o.useCallback(()=>{(M||G)&&(ne(!1),ge(null))},[M,G]),et=!!(M||G),lt=Vr(Te,Ie=>{Ie?nt():Je()},Ee,{enabled:et&&(K||X),fallbackOnParent:et&&K}),We={...P};delete We.disabled,delete We.className,delete We.faded,delete We.useFaded,delete We.loading,delete We.onMouseLeave,delete We.onPointerEnter,delete We.onPointerLeave,delete We.onPointerUp,delete We.onFocus,delete We.onBlur,K&&(Object.keys(We).forEach(Ie=>{/^on[A-Z]/.test(Ie)&&typeof We[Ie]=="function"&&delete We[Ie]}),We["aria-disabled"]="true");const ft=(typeof M=="string"?M:null)??(typeof R=="string"?R:null)??(typeof v=="string"?v:null)??(typeof Z=="string"?Z:null)??void 0,qe=typeof v=="string"?v:typeof Z=="string"?Z:ft,pt=G?[G.title,...G.items??[]].filter(Boolean).join(". "):M&&ft&&ft!==qe?ft:"",Et=[typeof P["aria-describedby"]=="string"?P["aria-describedby"]:void 0,pt?Ye:null].filter(Boolean).join(" ")||void 0,kt=(Ie,rt)=>n.jsx(Ke,{icon:Ie,label:rt??qe,className:Re,imgClassName:"button__icon-img",maskClassName:"button__icon-mask",svgClassName:"button__icon-svg"}),_t=()=>fe==="dot"?n.jsxs(n.Fragment,{children:[kt(d),be&&n.jsx("span",{className:`button__label ${J}`,children:ot()})]}):w==="center"&&d?n.jsxs(n.Fragment,{children:[n.jsxs("span",{className:"button__center-group",children:[n.jsx("span",{className:"button__left",children:kt(d)}),be&&n.jsx("span",{className:`button__label ${J}`,children:ot()})]}),Ne&&n.jsx("span",{className:"button__right",children:kt(u)})]}):n.jsxs(n.Fragment,{children:[d&&n.jsx("span",{className:"button__left",children:kt(d,v??Z)}),be&&n.jsx("span",{className:`button__label ${J}`,children:ot()}),Ne&&n.jsx("span",{className:"button__right",children:kt(u)})]}),st=!!i&&!K;return n.jsxs(n.Fragment,{children:[n.jsxs(st?"a":"button",{...We,ref:$e,...st?{href:i,target:l,rel:c??(l==="_blank"?"noreferrer":void 0)}:{type:s,disabled:K&&!E&&!Ge},className:ze,"aria-pressed":Xe,"aria-expanded":typeof g=="boolean"?g:P["aria-expanded"],"aria-controls":k??P["aria-controls"],"aria-label":qe,"aria-disabled":K&&(st||E||Ge)?!0:void 0,"aria-describedby":Et,style:pe,onClick:gt,onMouseLeave:zt,onPointerEnter:Ie=>{Xn(Ie)||nt(),!K&&typeof P.onPointerEnter=="function"&&P.onPointerEnter(Ie)},onPointerLeave:Ie=>{Xn(Ie)||Je(),!K&&typeof P.onPointerLeave=="function"&&P.onPointerLeave(Ie)},onPointerUp:Ie=>{K&&et&<.touchPress(Ie.currentTarget),!K&&typeof P.onPointerUp=="function"&&P.onPointerUp(Ie)},onFocus:Ie=>{Ue(!0),Jn()||nt(),!K&&typeof P.onFocus=="function"&&P.onFocus(Ie)},onBlur:Ie=>{Ue(!1),K||Ct(Ie),Je(),!K&&typeof P.onBlur=="function"&&P.onBlur(Ie)},children:[_t(),pt?n.jsx("span",{id:Ye,hidden:!0,"aria-label":pt}):null]}),Te&&G?n.jsx(Fn,{anchorRect:ie,title:G.title,items:G.items,onClose:he}):Te&&ft?n.jsx(bn,{anchorRect:ie,text:ft,onClose:he}):null]})}const ce=o.forwardRef(of);ce.displayName="Button";var sf={statusFilter:"\uC0C1\uD0DC \uD544\uD130",pageSizeSelect:"\uD398\uC774\uC9C0\uB2F9 \uD45C\uC2DC \uAC1C\uC218",selectedCount:"{{count}}\uAC1C \uC120\uD0DD\uB428",cancel:"\uCDE8\uC18C",info:"\uC124\uBA85",errorState:{message:"\uBD88\uB7EC\uC624\uC9C0 \uBABB\uD588\uC2B5\uB2C8\uB2E4.",retry:"\uB2E4\uC2DC \uC2DC\uB3C4"},save:"\uC800\uC7A5",confirm:"\uD655\uC778",close:"\uB2EB\uAE30",back:"\uB4A4\uB85C",emptyTrainingName:"\uD6C8\uB828 \uC774\uB984\uC774 \uBE44\uC5B4 \uC788\uC2B5\uB2C8\uB2E4.",remove:"\uC81C\uAC70",image:"\uC774\uBBF8\uC9C0",delete:"\uC0AD\uC81C",reset:"\uCD08\uAE30\uD654",update:"\uC5C5\uB370\uC774\uD2B8",download:"\uB2E4\uC6B4\uB85C\uB4DC",search:"\uAC80\uC0C9",empty:"\uB370\uC774\uD130\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4.",yes:"\uC608",no:"\uC544\uB2C8\uC624",all:"\uC804\uCCB4",none:"\uC5C6\uC74C",days:"{{count}}\uC77C",loadMore:"\uB354\uBCF4\uAE30",more:"\uB354\uBCF4\uAE30",moreFor:"{{name}} \uB354\uBCF4\uAE30",retry:"\uB2E4\uC2DC \uC2DC\uB3C4",prevPage:"\uC774\uC804 \uD398\uC774\uC9C0",nextPage:"\uB2E4\uC74C \uD398\uC774\uC9C0",play:"\uC7AC\uC0DD",pause:"\uBA48\uCDA4",playPause:"\uC7AC\uC0DD / \uBA48\uCDA4",replay:"\uB2E4\uC2DC\uB4E3\uAE30",subscription:"\uC774\uC6A9\uAD8C",done:"\uC644\uB8CC",failed:"\uC2E4\uD328",continue:"\uACC4\uC18D",notification:"\uC54C\uB9BC",emptyList:"\uD56D\uBAA9\uC774 \uC5C6\uC2B5\uB2C8\uB2E4.",menu:"\uBA54\uB274",resetSelection:"\uC120\uD0DD \uCD08\uAE30\uD654",pageSizeLabel:"{{n}}\uAC1C\uC529 \uBCF4\uAE30",totalCountPrefix:"\uCD1D ",totalCountSuffix:"\uAC1C",expand:"\uD3BC\uCE58\uAE30",collapse:"\uC811\uAE30",popup:"\uD31D\uC5C5",codeBlock:"\uCF54\uB4DC \uBE14\uB85D",totalPrefix:"\uCD1D ",copyCode:"\uCF54\uB4DC \uBCF5\uC0AC",copied:"\uBCF5\uC0AC\uB428",col:{problem:"\uBB38\uC81C"},phonetics:{place:{labial:"\uC591\uC21C\uC74C",alveolar:"\uCE58\uC870\uC74C",palatal:"\uACBD\uAD6C\uAC1C\uC74C",velar:"\uC5F0\uAD6C\uAC1C\uC74C",glottal:"\uC131\uBB38\uC74C"},vowel:{frontHigh:"\uC804\uC124 \uACE0\uBAA8\uC74C",backHighUnrounded:"\uD6C4\uC124 \uACE0\uBAA8\uC74C \uD3C9\uC21C",backHighRounded:"\uD6C4\uC124 \uACE0\uBAA8\uC74C \uC6D0\uC21C",frontMid:"\uC804\uC124 \uC911\uBAA8\uC74C",backMidUnrounded:"\uD6C4\uC124 \uC911\uBAA8\uC74C \uD3C9\uC21C",backMidRounded:"\uD6C4\uC124 \uC911\uBAA8\uC74C \uC6D0\uC21C",low:"\uC800\uBAA8\uC74C"},glide:{j:"j\uD65C\uC74C",w:"w\uD65C\uC74C",velar:"\u0270\uD65C\uC74C"}},unknownError:"\uC54C \uC218 \uC5C6\uB294 \uC624\uB958",networkError:"\uB124\uD2B8\uC6CC\uD06C \uC5F0\uACB0\uC774 \uBD88\uC548\uC815\uD569\uB2C8\uB2E4. \uC5F0\uACB0 \uC0C1\uD0DC\uB97C \uD655\uC778\uD55C \uB4A4 \uB2E4\uC2DC \uC2DC\uB3C4\uD574 \uC8FC\uC138\uC694."},lf={rangeSelect:"\uAE30\uAC04 \uC120\uD0DD",dow:["\uC77C","\uC6D4","\uD654","\uC218","\uBAA9","\uAE08","\uD1A0"],yearMonth:"{{year}}\uB144 {{month}}\uC6D4",prevMonth:"\uC774\uC804 \uB2EC",addOnDate:"{{date}}\uC5D0 \uBC29\uBB38 \uB4F1\uB85D",nextMonth:"\uB2E4\uC74C \uB2EC",prevWeek:"\uC774\uC804 \uC8FC",nextWeek:"\uB2E4\uC74C \uC8FC",legend:{visited:"\uBC29\uBB38",scheduled:"\uC608\uC57D",noVisit:"\uBBF8\uBC29\uBB38"},periodSelect:"\uAE30\uAC04 \uB2E8\uC704",visitCount:"\uBC29\uBB38 {{count}}\uAC74"},cf={planSuffix:"\uC774\uC6A9\uAD8C",labeledPlan:"{{label}} \uC774\uC6A9\uAD8C",couponCode:"\uC774\uC6A9\uAD8C \uCF54\uB4DC",specialLabel:"\uC624\uD508\uD2B9\uAC00",unitDay:"\uC77C",unitYear:"\uB144",remainingDay:"{{n}}\uC77C \uB0A8\uC74C",remainingHour:"{{n}}\uC2DC\uAC04 \uB0A8\uC74C",remainingMinute:"{{n}}\uBD84 \uB0A8\uC74C",remainingSecond:"{{n}}\uCD08 \uB0A8\uC74C",menu:{use:"\uC0AC\uC6A9\uD558\uAE30",refund:"\uD658\uBD88\uD558\uAE30",delete:"\uC0AD\uC81C\uD558\uAE30"}},uf={clearAriaLabel:"\uAC80\uC0C9\uC5B4 \uC9C0\uC6B0\uAE30"},df={starLabel:"{{n}}\uBC88\uC9F8 \uBCC4 \uC120\uD0DD",valueLabel:"{{max}}\uC810 \uB9CC\uC810\uC5D0 {{value}}\uC810",groupLabel:"\uBCC4\uC810"},pf={selected:"\uC120\uD0DD\uB428"},mf={placeholder:"\uC120\uD0DD"},hf={collapse:"\uC811\uAE30",expand:"\uD3BC\uCE58\uAE30"},ff={biArea:"BI \uC601\uC5ED",biSymbol:"BI \uC2EC\uBCFC",logoMalgwi:"\uB9D0\uADC0 \uB85C\uACE0",logoManager:"\uB9D0\uADC0\uB9E4\uB2C8\uC800 \uB85C\uACE0",menuOpen:"\uBA54\uB274 \uC5F4\uAE30",utilMenu:"\uC720\uD2F8\uB9AC\uD2F0 \uBA54\uB274",menuClose:"\uBA54\uB274 \uB2EB\uAE30"},Cf={mainMenu:"\uBA54\uC778 \uBA54\uB274",bottomNav:"\uD558\uB2E8 \uB124\uBE44\uAC8C\uC774\uC158",goToManager:"\uB9D0\uADC0\uB9E4\uB2C8\uC800\uB85C \uC774\uB3D9",goToMalgwi:"\uB9D0\uADC0\uB85C \uC774\uB3D9",modeLabelManager:"\uB9D0\uADC0 \uB9E4\uB2C8\uC800",modeLabelMalgwi:"\uB9D0\uADC0",training:"\uD6C8\uB828",settings:"\uC124\uC815",notifications:"\uC54C\uB9BC",account:"\uACC4\uC815",help:"\uB3C4\uC6C0\uB9D0",feedback:"\uBC84\uADF8\uC2E0\uACE0",debug:"\uB514\uBC84\uADF8",coupons:"\uCFE0\uD3F0",topic:"\uC8FC\uC81C\uBCC4 \uB4E3\uAE30",trainingType:"\uD6C8\uB828\uBCC4 \uB4E3\uAE30",wordPairs:"\uB300\uB9BD\uC30D \uCC3E\uAE30",wordSearch:"\uB2E8\uC5B4 \uCC3E\uAE30",wordTable:"\uB2E8\uC5B4\uD45C \uB9CC\uB4E4\uAE30",company:"\uC5C5\uCCB4\uC815\uBCF4",more:"\uB354\uBCF4\uAE30",moreMenu:"\uB354\uBCF4\uAE30 \uBA54\uB274",badgeLabel:"{{label}}, {{count}}\uAC1C"},gf={language:{training:{label:"\uD6C8\uB828 \uC5B8\uC5B4",sub:"\uD6C8\uB828\uC5D0 \uC0AC\uC6A9\uB418\uB294 \uB2E8\uC5B4\uC640 \uC74C\uC131 \uC5B8\uC5B4"}},notifications:{title:"\uC54C\uB9BC"},display:{fontSize:{small:"\uC791\uAC8C",large:"\uD06C\uAC8C"}},cache:{title:"\uCE90\uC2DC \uAD00\uB9AC",confirmMessage:"\uCE90\uC2DC({{size}})\uB97C \uC0AD\uC81C\uD569\uB2C8\uB2E4. \uACC4\uC18D\uD558\uC2DC\uACA0\uC2B5\uB2C8\uAE4C?",delete:"\uC0AD\uC81C",deleting:"\uC0AD\uC81C \uC911",cleared:"\uCE90\uC2DC\uAC00 \uC0AD\uC81C\uB418\uC5C8\uC2B5\uB2C8\uB2E4.",group:{wordData:{label:"\uB2E8\uC5B4 \uB370\uC774\uD130",sub:"\uB2E8\uC5B4 \uBAA9\uB85D \uBC0F \uBC84\uC804 \uC815\uBCF4"},pairIndex:{label:"\uB2E8\uC5B4\uC30D \uC778\uB371\uC2A4",sub:"\uCD08\uC131\xB7\uC911\uC131\xB7\uC885\uC131 \uB300\uB9BD\uC30D \uBD84\uC11D \uCE90\uC2DC"},imageCache:{label:"\uC774\uBBF8\uC9C0 \uCE90\uC2DC",sub:"\uB2E8\uC5B4\uBCC4 \uC774\uBBF8\uC9C0 \uC874\uC7AC \uC5EC\uBD80 \uD655\uC778 \uACB0\uACFC"},trainingRecord:{label:"\uD6C8\uB828 \uAE30\uB85D",sub:"\uC624\uB298\uC758 \uD6C8\uB828 \uC9C4\uD589\uB960 \uBC0F \uD559\uC2B5 \uC77C\uC218"}}},button:{save:"\uC124\uC815 \uC800\uC7A5"},popup:{clear:{confirm:"\uCD08\uAE30\uD654"},update:{confirm:"\uC5C5\uB370\uC774\uD2B8"},cache:{title:"{{label}} \uC0AD\uC81C",message:"{{label}}({{size}})\uB97C \uC0AD\uC81C\uD569\uB2C8\uB2E4. \uACC4\uC18D\uD558\uC2DC\uACA0\uC2B5\uB2C8\uAE4C?"}},saved:"\u2713 \uC800\uC7A5\uB428",account:{title:"\uACC4\uC815",delete:{sub:"\uD0C8\uD1F4 \uD6C4 30\uC77C \uC774\uB0B4 \uC7AC\uAC00\uC785 \uC2DC \uBCF5\uAD6C \uAC00\uB2A5\uD569\uB2C8\uB2E4."}}},bf={addButton:"\uC774\uC6A9\uAD8C \uCD94\uAC00\uD558\uAE30",couponButton:"\uCFE0\uD3F0 \uC785\uB825",loading:"\uBD88\uB7EC\uC624\uB294 \uC911\u2026",segment:{personal:"\uB9D0\uADC0",org:"\uB9D0\uADC0\uB9E4\uB2C8\uC800"},org:{title:"\uD604\uC7AC \uC774\uC6A9\uAD8C",disc:"\uAE30\uAD00\uC5D0\uC11C \uC0AC\uC6A9 \uC911\uC778 \uC774\uC6A9\uAD8C \uC815\uBCF4\uC785\uB2C8\uB2E4.",empty:"\uB4F1\uB85D\uB41C \uAE30\uAD00 \uC774\uC6A9\uAD8C\uC774 \uC5C6\uC2B5\uB2C8\uB2E4.",fallbackTitle:"\uAE30\uAD00 \uC774\uC6A9\uAD8C",startDate:"\uC2DC\uC791\uC77C",endDate:"\uB9CC\uB8CC\uC77C",remaining:"\uB0A8\uC740 \uAE30\uAC04",duration:"\uC774\uC6A9 \uAE30\uAC04"},active:{infoTitle:"\uC774\uC6A9 \uC815\uBCF4",refund:"\uD658\uBD88 \uC694\uCCAD",startDate:"\uC0AC\uC6A9 \uC2DC\uC791\uC77C",endDate:"\uC885\uB8CC\uC77C",remaining:"\uB0A8\uC740 \uAE30\uAC04"},pending:{title:"\uBCF4\uC720",empty:"\uB300\uAE30 \uC911\uC778 \uC774\uC6A9\uAD8C\uC774 \uC5C6\uC2B5\uB2C8\uB2E4."}},yf={profile:{planSuffix:"\uD50C\uB79C",plan:"\uD50C\uB79C"},basicInfo:{name:{placeholder:"\uD64D\uAE38\uB3D9"}},security:{title:"\uBCF4\uC548",password:{label:"\uBE44\uBC00\uBC88\uD638",currentRequired:"\uD604\uC7AC \uBE44\uBC00\uBC88\uD638\uB97C \uC785\uB825\uD558\uC138\uC694.",newRequired:"\uC0C8 \uBE44\uBC00\uBC88\uD638\uB97C \uC785\uB825\uD558\uC138\uC694.",mismatch:"\uC0C8 \uBE44\uBC00\uBC88\uD638\uAC00 \uC77C\uCE58\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.",changed:"\uBE44\uBC00\uBC88\uD638\uAC00 \uBCC0\uACBD\uB418\uC5C8\uC2B5\uB2C8\uB2E4."},twoFactor:{label:"2\uB2E8\uACC4 \uC778\uC99D",sub:"\uACC4\uC815 \uBCF4\uC548\uC744 \uAC15\uD654\uD558\uC138\uC694"}}},vf={guide:{faq:{title:"\uC790\uC8FC \uBB3B\uB294 \uC9C8\uBB38",desc:"FAQ \uBAA8\uC544\uBCF4\uAE30"}}},xf={settings:"\uC124\uC815",start:{title:"\uB2E8\uC5B4\uD6C8\uB828 \uC2DC\uC791",description:"\uC544\uB798 \uD6C8\uB828 \uC720\uD615\uC744 \uC120\uD0DD\uD574 \uC2DC\uC791\uD558\uC138\uC694"},difficulty:{tooltip:"\uAC00\uC7A5 \uC26C\uC6B4 \uB09C\uC774\uB3C4\uB294 '\uBB34\uC791\uC704', \uAC00\uC7A5 \uC5B4\uB824\uC6B4 \uB09C\uC774\uB3C4\uB294 '\uCD08\uC131\uCC28\uC774' \uC785\uB2C8\uB2E4."},contrast:{label:"\uB300\uB9BD",type:"\uB300\uB9BD \uC885\uB958",count:"\uB300\uB9BD \uAC2F\uC218",n:"{{n}}\uAC1C"},filter:{random:"\uBB34\uC791\uC704",trainOnset:"\uCD08\uC131",trainVowel:"\uBAA8\uC74C",trainCoda:"\uC885\uC131",phonemeGroup:"\uD6C8\uB828 \uC74C\uC808",noLimit:"\uBB34\uAD00",codaExclude:"\uC81C\uC678",gradeLabel:"\uB4F1\uAE09",excludeImageInfo:"\uC774\uBBF8\uC9C0 \uC788\uB294 \uB2E8\uC5B4\uB9CC: \uB2E8\uC5B4 \uC911\uC5D0 \uC774\uBBF8\uC9C0\uAC00 \uC788\uB294 \uB2E8\uC5B4\uB9CC \uACB0\uACFC\uC5D0 \uBCF4\uC5EC\uC90D\uB2C8\uB2E4.",sameStructureInfo:"\uC74C\uC18C \uAD6C\uC870 \uAC19\uC740 \uB2E8\uC5B4\uB9CC: \uC815\uB2F5\uACFC \uC624\uB2F5\uC758 \uC74C\uC808 \uAD6C\uC870(\uAE00\uC790 \uC218\xB7\uBC1B\uCE68 \uC720\uBB34 \uB4F1)\uAC00 \uAC19\uC740 \uACB0\uACFC\uB9CC \uB0A8\uACA8\uC694.",selectSection:"\uC120\uD0DD",excludeImage:"\uC774\uBBF8\uC9C0 \uC788\uB294 \uB2E8\uC5B4\uB9CC",sameStructure:"\uC74C\uC18C \uAD6C\uC870 \uAC19\uC740 \uB2E8\uC5B4\uB9CC"},noQuestions:"\uBB38\uC81C\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4.",countQuestions:"{{n}}\uBB38\uC81C",countSentences:"{{n}}\uBB38\uC7A5",comingSoon:"\uC900\uBE44 \uC911",nextQuestion:"\uB2E4\uC74C \uBB38\uC81C",noiseRatioTitle:"\uC18C\uC74C \uBE44\uC728",noiseRatioValue:"{{ratio}}\uBC30",noiseTypeTitle:"\uC18C\uC74C \uC885\uB958",playVolumeTitle:"\uC804\uCCB4 \uC18C\uB9AC",playSpeedTitle:"\uC7AC\uC0DD \uC18D\uB3C4",meter:{sentence:"\uC7AC\uC0DD",noise:"\uC18C\uC74C",toggle:"\uC624\uB514\uC624 \uBBF8\uD130 \uD45C\uC2DC"},viewResult:"\uACB0\uACFC\uBCF4\uAE30",problemNotice:"{{n}}\uBC88 \uBB38\uC81C \uC785\uB2C8\uB2E4.",trainingSettingsTitle:"\uD6C8\uB828 \uC124\uC815",sentencePreview:"\uBB38\uC7A5 \uBBF8\uB9AC\uBCF4\uAE30",notHeard:"\uC548 \uB4E4\uB838\uC5B4\uC694.",heardWell:"\uC798 \uB4E4\uB838\uC5B4\uC694.",confirmTitle:"\uBB38\uC7A5\uC744 \uD655\uC778\uD558\uACE0 \uC798 \uB4E4\uB838\uB294\uC9C0 \uC120\uD0DD\uD558\uC138\uC694.",noSoundWaveform:"\uC18C\uB9AC \uBE44\uAD50 \uBB38\uC81C\uB294 \uC6E8\uC774\uBE0C\uD3FC\uC744 \uD45C\uD604\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.",noise:{level:{none:"\uC5C6\uC74C",weak:"\uC57D\uD568",medium:"\uBCF4\uD1B5",strong:"\uAC15\uD568",veryStrong:"\uB9E4\uC6B0 \uAC15\uD568"},type:{none:"\uC5C6\uC74C",default:"\uAE30\uBCF8",street:"\uAE38\uAC70\uB9AC",buzz:"\uC640\uAE00\uC640\uAE00",restaurant:"\uC2DD\uB2F9"}},listenTitle:"\uC81C\uC2DC\uD558\uB294 \uBB38\uC7A5\uC744 \uB4E4\uC5B4\uC8FC\uC138\uC694.",listenButton:"\uBB38\uC7A5 \uB4E3\uAE30",playSound:"\uC18C\uB9AC \uB4E3\uAE30",playAll:"\uBAA8\uB450 \uB4E3\uAE30",selectInOrder:"\uB4E4\uC740 \uC21C\uC11C\uB300\uB85C \uCE74\uB4DC\uB97C \uC120\uD0DD\uD558\uC138\uC694.",stop:"\uC815\uC9C0",preview:"\uBBF8\uB9AC \uB4E3\uAE30",next:"\uB2E4\uC74C",completed:"\uD6C8\uB828 \uC644\uB8CC",selected:"\uC120\uD0DD\uB428",nthSelected:"{{n}}\uBC88\uC9F8 \uC120\uD0DD",fontSizeMin:"\uAE00\uC528 \uD06C\uAE30\uAC00 \uCD5C\uC18C\uC785\uB2C8\uB2E4.",fontSizeMax:"\uAE00\uC528 \uD06C\uAE30\uAC00 \uCD5C\uB300\uC785\uB2C8\uB2E4.",fontSizeDecrease:"\uAE00\uC790 \uD06C\uAE30 \uAC10\uC18C",fontSizeIncrease:"\uAE00\uC790 \uD06C\uAE30 \uC99D\uAC00",toggleBackground:"\uBC30\uACBD \uC804\uD658",cardInstructions:"\uB0B1\uB9D0 \uCE74\uB4DC\uB97C \uBCF4\uACE0 \uC18C\uB9AC\uB97C \uB4E3\uACE0 \uD655\uC778\uD558\uC138\uC694.",noCards:"\uCE74\uB4DC\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4.",audioFetchError:"\uC0AC\uC6B4\uB4DC \uC18C\uC2A4\uB97C \uAC00\uC838\uC624\uC9C0 \uBABB\uD588\uC2B5\uB2C8\uB2E4.",ttsUnavailable:"\uC774 \uAE30\uAE30\uC5D0\uC11C\uB294 \uC74C\uC131\uC744 \uB4E4\uB824\uC904 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.",selectConfirm:"\uBB38\uC81C\uB97C \uBCF4\uACE0 \uD574\uB2F9\uD558\uB294 \uB0B4\uC6A9\uC744 \uC120\uD0DD\uD558\uC138\uC694.",orderListDefault:"\uBB38\uC7A5\uC744 \uB4E4\uC740 \uC21C\uC11C\uB300\uB85C \uBC30\uCE58\uD558\uC138\uC694.",result:{pendingDone:"\uACB0\uACFC\uB97C \uACC4\uC0B0\uD558\uB294 \uC911\uC774\uB77C \uC544\uC9C1 \uC644\uB8CC\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.",eyebrow:"\uD6C8\uB828 \uC644\uB8CC",title:"\uD6C8\uB828\uC744 \uBAA8\uB450 \uB9C8\uCCE4\uC2B5\uB2C8\uB2E4.",scoreAria:"{{correct}} / {{total}} \uBB38\uD56D",elapsed:"\uC18C\uC694 \uC2DC\uAC04",summary:"{{correct}}\uAC1C\uC758 \uBB38\uD56D\uC744 \uC798 \uB4E4\uC5C8\uC2B5\uB2C8\uB2E4.",tableAriaLabel:"\uBB38\uD56D\uBCC4 \uD310\uC815",colJudge:"\uD310\uC815",colAnswerSelected:"\uC815\uB2F5 \xB7 \uC120\uD0DD",colAnswer:"\uC815\uB2F5",colSelected:"\uC120\uD0DD",heardWell:"\uC798 \uB4E4\uC5C8\uC5B4\uC694",notHeard:"\uBABB \uB4E4\uC5C8\uC5B4\uC694",notJudged:"\uBBF8\uD310\uC815",replay:"\uB2E4\uC2DC\uD558\uAE30",done:"\uC644\uB8CC",viewResult:"\uACB0\uACFC \uD655\uC778",noContent:"(\uB0B4\uC6A9\uC5C6\uC74C)"},up:"\uC704\uB85C",down:"\uC544\uB798\uB85C",prev:"\uC774\uC804",listenLabel:"\uBB38\uC7A5 \uB4E3\uAE30",sourcePlay:"\uC18C\uC2A4 {{n}} \uC7AC\uC0DD",listen:"\uB4E3\uAE30",audioStatus:{idle:"\uB300\uAE30",resolving:"\uB9AC\uC18C\uC2A4 \uB9E4\uD551 \uC911\u2026",checking_exists:"\uD30C\uC77C \uC874\uC7AC \uD655\uC778\u2026",getting_signed_url:"\uC11C\uBA85 URL \uC870\uD68C\u2026",downloading:"\uB2E4\uC6B4\uB85C\uB4DC \uC911\u2026",measuring_duration:"\uC624\uB514\uC624 \uAE38\uC774 \uCE21\uC815\u2026",ready:"\uC900\uBE44 \uC644\uB8CC",error:"\uC624\uB958 \uBC1C\uC0DD"}},_f={totalCount:"\uAC1C\uC758 \uD6C8\uB828 \uBB36\uC74C",renameGroup:"\uADF8\uB8F9 \uC774\uB984 \uBC14\uAFB8\uAE30",itemCount:"\uD6C8\uB828 \uAC1C\uC218",menu:{edit:"\uD6C8\uB828 \uBB36\uC74C \uC218\uC815",rename:"\uC774\uB984 \uBC14\uAFB8\uAE30",move:"\uADF8\uB8F9 \uC774\uB3D9",duplicate:"\uD6C8\uB828 \uBB36\uC74C \uBCF5\uC0AC",publish:"\uB9D0\uADC0\uC790\uB8CC\uC2E4\uC5D0 \uC62C\uB9AC\uAE30"},sort:{customers:"\uD6C8\uB828 \uACE0\uAC1D"},copyLink:"\uB9C1\uD06C \uBCF5\uC0AC",removeLink:"\uB9C1\uD06C \uC81C\uAC70",linkRemoved:"\uB9C1\uD06C\uAC00 \uC81C\uAC70\uB418\uC5C8\uC2B5\uB2C8\uB2E4.",linkSaveFirst:"\uBA3C\uC800 \uD6C8\uB828 \uBB36\uC74C\uC744 \uC800\uC7A5\uD574\uC8FC\uC138\uC694.",linkSaveFirstHint:"\uC800\uC7A5\uB41C \uD6C8\uB828 \uBB36\uC74C\uC5D0\uC11C\uB9CC \uACF5\uC720 \uB9C1\uD06C\uB97C \uC0DD\uC131\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4.",linkCopySelect:"\uBCF5\uC0AC\uAC00 \uB9C9\uD600 \uB9C1\uD06C\uB97C \uC120\uD0DD\uD588\uC2B5\uB2C8\uB2E4. Ctrl/\u2318+C\uB85C \uBCF5\uC0AC\uD558\uC138\uC694.",nameRequired:"\uD6C8\uB828 \uBB36\uC74C \uC774\uB984\uC744 \uC785\uB825\uD574\uC8FC\uC138\uC694.",itemRequired:"\uD6C8\uB828\uC744 1\uAC1C \uC774\uC0C1 \uB2F4\uC544\uC8FC\uC138\uC694.",randomAdd:"\uBB34\uC791\uC704 \uCD94\uAC00"},wf={totalCount:"\uBA85\uC758 \uACE0\uAC1D",loadError:"\uBAA9\uB85D\uC744 \uBD88\uB7EC\uC624\uC9C0 \uBABB\uD588\uC2B5\uB2C8\uB2E4.",basicInfo:{editTooltip:"\uC218\uC815\uD558\uAE30"},member:{placeholder:"\uC774\uBA54\uC77C \uB610\uB294 \uC804\uD654",link:"\uC5F0\uACB0",linking:"\uC5F0\uACB0 \uC911\u2026"},device:{title:"\uCCAD\uAC01\uC7AC\uD65C\uAE30\uAE30",addTooltip:"\uC0C8\uB85C \uC0DD\uC131",addButton:"\uAE30\uAE30 \uCD94\uAC00",listTooltip:"\uBAA9\uB85D \uBCF4\uAE30",listTitle:"\uCE21 \uAE30\uAE30 \uBAA9\uB85D",historyEmpty:"\uB4F1\uB85D\uB41C \uAE30\uAE30 \uC774\uB825\uC774 \uC5C6\uC2B5\uB2C8\uB2E4.",wearing:"\uCE21 \uCC29\uC6A9\uC911",notRegistered:"\uBBF8\uB4F1\uB85D",unit:"\uAC1C",wearingNow:"\uCC29\uC6A9",wear:"\uCC29\uC6A9",unwear:"\uCC29\uC6A9 \uD574\uC81C",wornSince:"{{date}}\uBD80\uD130",release:"\uD574\uC81C",historyTitle:"\uCCAD\uAC01\uC7AC\uD65C\uAE30\uAE30 \uC774\uB825"},schedule:{title:"\uBC29\uBB38 \uC608\uC815",addTooltip:"\uC608\uC815 \uB4F1\uB85D",listTooltip:"\uC804\uCCB4 \uBCF4\uAE30",empty:"\uC608\uC815\uB41C \uBC29\uBB38\uC774 \uC5C6\uC2B5\uB2C8\uB2E4.",registerTitle:" \uACE0\uAC1D\uB2D8 \uBC29\uBB38 \uC608\uC815 \uB4F1\uB85D",memoPlaceholder:"\uBC29\uBB38 \uC608\uC815 \uAD00\uB828 \uBA54\uBAA8\uB97C \uC785\uB825\uD574 \uC8FC\uC138\uC694."},visitHistory:{title:"\uBC29\uBB38 \uC774\uB825",addTooltip:"\uC2E0\uADDC \uB4F1\uB85D",empty:"\uC544\uC9C1 \uBC29\uBB38 \uAE30\uB85D\uC774 \uC5C6\uC2B5\uB2C8\uB2E4.",popupTitle:" \uACE0\uAC1D\uB2D8 \uBC29\uBB38 \uC774\uB825",registerTitle:" \uACE0\uAC1D\uB2D8 \uC2E0\uADDC \uBC29\uBB38 \uB4F1\uB85D"},homework:{title:"\uC219\uC81C \uC9C4\uD589\uC0C1\uD669",active:"\uD65C\uC131",inactive:"\uBE44\uD65C\uC131",copy:"\uB9C1\uD06C \uBCF5\uC0AC",copied:"\uB9C1\uD06C\uAC00 \uBCF5\uC0AC\uB418\uC5C8\uC2B5\uB2C8\uB2E4."},moreItems:"\uB354 \uC788\uC74C",viewAll:"\uC804\uCCB4 \uBCF4\uAE30",visits:{title:"\uBC29\uBB38"},trainingRecord:{title:"\uACE0\uAC1D \uD6C8\uB828 \uAE30\uB85D"},status:{trainingSubtitle:"\uD6C8\uB828 \uD604\uD669"},detail:{session:{completedFmt:"\uC644\uB8CC {{done}}/{{total}} \xB7 {{duration}}"},visitSuffix:"\uC758 \uBC29\uBB38"},duration:{minSec:"{{m}}\uBD84 {{s}}\uCD08",min:"{{m}}\uBD84",sec:"{{s}}\uCD08"}},kf={plan:{recommendedFor:"\uC774\uB7F0 \uBD84\uAED8 \uCD94\uCC9C\uD569\uB2C8\uB2E4.",features:"\uD575\uC2EC \uAE30\uB2A5",freePrice:"\uBB34\uB8CC",contact:"\uBB38\uC758\uD558\uAE30",tierFallback:"\uC774\uC6A9\uAD8C",openPromo:"\uC624\uD508 \uD2B9\uAC00"},products:{mgrEnterprise:{tier:{price:"\uBB38\uC758"}}}},Af={title:"\uCFE0\uD3F0",subtitle:"\uCFE0\uD3F0 \uCF54\uB4DC\uB97C \uC785\uB825\uD558\uAC70\uB098 \uBCF4\uC720 \uCFE0\uD3F0\uC744 \uD655\uC778\uD558\uC138\uC694.",input:{label:"\uCFE0\uD3F0 \uCF54\uB4DC",placeholder:"\uCFE0\uD3F0 \uCF54\uB4DC \uC785\uB825"},applyButton:"\uC801\uC6A9",error:{invalid:"\uC720\uD6A8\uD558\uC9C0 \uC54A\uC740 \uCFE0\uD3F0 \uCF54\uB4DC\uC785\uB2C8\uB2E4.",alreadyUsed:"\uC774\uBBF8 \uC0AC\uC6A9\uB41C \uCFE0\uD3F0\uC785\uB2C8\uB2E4."},success:{applied:'"{{name}}" \uCFE0\uD3F0\uC774 \uC801\uC6A9\uB418\uC5C8\uC2B5\uB2C8\uB2E4.'},section:{owned:"\uBCF4\uC720 \uCFE0\uD3F0"},status:{used:"\uC0AC\uC6A9 \uC644\uB8CC",available:"\uC0AC\uC6A9 \uAC00\uB2A5"}},Bf={unitVisit:"\uAC74",periodAll:"\uC804\uCCB4",showN:"{{n}}\uAC1C\uC529"},Nf={subtitle:"\uC5C5\uCCB4 \uBC0F \uBC95\uC778 \uC815\uBCF4\uB97C \uAD00\uB9AC\uD558\uC138\uC694.",editButton:"\uC815\uBCF4 \uC218\uC815",basicInfo:{title:"\uAE30\uBCF8 \uC815\uBCF4"},contactInfo:{title:"\uC5F0\uB77D\uCC98 \uC815\uBCF4"}},Sf={title:"\uD6C8\uB828\uBCC4 \uB4E3\uAE30",subtitle:"\uC6D0\uD558\uB294 \uD6C8\uB828 \uC720\uD615\uC744 \uC120\uD0DD\uD558\uC138\uC694.",listenInNoise:{title:"\uC18C\uC74C \uD558 \uBB38\uC7A5 \uB4E3\uAE30",desc:"\uB2E4\uC591\uD55C \uC18C\uC74C \uD658\uACBD\uC5D0\uC11C \uBB38\uC7A5 \uCCAD\uB825\uC744 \uD6C8\uB828\uD569\uB2C8\uB2E4."},shortStory:{title:"\uC9E7\uC740 \uC774\uC57C\uAE30 \uB4E3\uAE30",desc:"\uC9E7\uC740 \uC774\uC57C\uAE30\uB97C \uB4E3\uACE0 \uB0B4\uC6A9\uC744 \uC774\uD574\uD569\uB2C8\uB2E4."},longStory:{title:"\uAE34 \uC774\uC57C\uAE30 \uB4E3\uAE30",desc:"\uAE34 \uC774\uC57C\uAE30\uB97C \uC9D1\uC911\uD574\uC11C \uB4E3\uACE0 \uB0B4\uC6A9\uC744 \uD30C\uC545\uD569\uB2C8\uB2E4."},orderingSentence:{title:"\uBB38\uC7A5 \uC21C\uC11C\uD654",desc:"\uB4E4\uC740 \uBB38\uC7A5\uB4E4\uC744 \uC62C\uBC14\uB978 \uC21C\uC11C\uB85C \uBC30\uC5F4\uD569\uB2C8\uB2E4."},SAME_SOUND_PICK:{label:"\uAC19\uC740 \uC18C\uB9AC \uACE0\uB974\uAE30",sub:"\uB4E4\uC740 \uC18C\uB9AC\uC640 \uAC19\uC740 \uB2E8\uC5B4 \uCE74\uB4DC\uB97C \uACE0\uB974\uC138\uC694."},SAME_OR_DIFF:{label:"\uAC19\uC740\uC9C0 \uB2E4\uB978\uC9C0 \uB9DE\uD788\uAE30",sub:"\uB450 \uC18C\uB9AC\uAC00 \uAC19\uC740\uC9C0, \uB2E4\uB978\uC9C0 \uAD6C\uBD84\uD558\uC138\uC694."},HEAR_AND_PICK_SAME:{label:"\uC77C\uCE58\uD558\uB294 \uB2E8\uC5B4 \uB9DE\uD788\uAE30",sub:"\uB4E4\uC740 \uC18C\uB9AC\uC758 \uB2E8\uC5B4 \uCE74\uB4DC\uB97C \uACE0\uB974\uC138\uC694."},HEAR_AND_PICK_INCLUDED:{label:"\uD55C \uC74C\uC808 \uD3EC\uD568 \uB2E8\uC5B4 \uB9DE\uD788\uAE30",sub:"\uB4E4\uC740 \uC74C\uC808\uC774 \uD3EC\uD568\uB41C \uB2E8\uC5B4 \uCE74\uB4DC\uB97C \uACE0\uB974\uC138\uC694."},STARTS_WITH_SAME_SOUND:{label:"\uCCAB \uC74C\uC808\uC774 \uAC19\uC740 \uB2E8\uC5B4 \uB9DE\uD788\uAE30",sub:"\uB4E4\uC740 \uB2E8\uC5B4\uC640 \uAC19\uC740 \uC18C\uB9AC\uB85C \uC2DC\uC791\uD558\uB294 \uB2E8\uC5B4\uB97C \uACE0\uB974\uC138\uC694."},LISTEN_AND_REMEMBER_ORDER:{label:"\uB4E3\uACE0 \uC21C\uC11C\uB300\uB85C \uAE30\uC5B5\uD558\uAE30",sub:"\uC138 \uB2E8\uC5B4\uB97C \uB4E4\uC740 \uC21C\uC11C\uB300\uB85C \uCE74\uB4DC\uB97C \uC120\uD0DD\uD558\uC138\uC694."},MERGE_2_SYLLABLES:{label:"\uC74C\uC808 2\uAC1C \uD569\uCE58\uAE30",sub:"\uB450 \uC74C\uC808\uC744 \uD569\uCE58\uBA74 \uC5B4\uB5A4 \uB2E8\uC5B4\uAC00 \uB420\uAE4C\uC694?"},MERGE_3_SYLLABLES:{label:"\uC74C\uC808 3\uAC1C \uD569\uCE58\uAE30",sub:"\uC138 \uC74C\uC808\uC744 \uD569\uCE58\uBA74 \uC5B4\uB5A4 \uB2E8\uC5B4\uAC00 \uB420\uAE4C\uC694?"},MERGE_2_PHONEMES:{label:"\uC74C\uC18C 2\uAC1C \uD569\uCE58\uAE30",sub:"\uB450 \uC74C\uC18C\uB97C \uD569\uCE58\uBA74 \uC5B4\uB5A4 \uC18C\uB9AC\uAC00 \uB420\uAE4C\uC694?"},MERGE_3_PHONEMES:{label:"\uC74C\uC18C 3\uAC1C \uD569\uCE58\uAE30",sub:"\uC138 \uC74C\uC18C\uB97C \uD569\uCE58\uBA74 \uC5B4\uB5A4 \uC18C\uB9AC\uAC00 \uB420\uAE4C\uC694?"},DROP_1_FROM_2SYLL:{label:"2\uC74C\uC808\uC5D0\uC11C \uD55C \uC74C\uC808 \uD0C8\uB77D",sub:"2\uC74C\uC808 \uB2E8\uC5B4\uC5D0\uC11C \uD55C \uC74C\uC808\uC744 \uBE7C\uBA74 \uC5B4\uB5A4 \uC18C\uB9AC\uAC00 \uB420\uAE4C\uC694?"},DROP_1_FROM_3SYLL:{label:"3\uC74C\uC808\uC5D0\uC11C \uD55C \uC74C\uC808 \uD0C8\uB77D",sub:"3\uC74C\uC808 \uB2E8\uC5B4\uC5D0\uC11C \uD55C \uC74C\uC808\uC744 \uBE7C\uBA74 \uC5B4\uB5A4 \uC18C\uB9AC\uAC00 \uB420\uAE4C\uC694?"},DROP_PART_FROM_COMPOUND:{label:"\uD569\uC131\uC5B4\uC5D0\uC11C \uBD80\uBD84 \uD0C8\uB77D",sub:"\uD569\uC131\uC5B4\uC758 \uC77C\uBD80\uB97C \uBE7C\uBA74 \uC5B4\uB5A4 \uB2E8\uC5B4\uAC00 \uB420\uAE4C\uC694?"},DROP_FINAL_CONSONANT_FROM_1SYLL:{label:"1\uC74C\uC808\uC5D0\uC11C \uBC1B\uCE68 \uD0C8\uB77D",sub:"\uBC1B\uCE68\uC744 \uBE7C\uBA74 \uC5B4\uB5A4 \uC18C\uB9AC\uAC00 \uB420\uAE4C\uC694?"},REMOVE_CONSONANT_AND_IDENTIFY_PHONEME:{label:"1\uC74C\uC808\uC5D0\uC11C \uC790\uC74C \uD0C8\uB77D",sub:"\uC790\uC74C\uC744 \uBE7C\uBA74 \uC5B4\uB5A4 \uC18C\uB9AC\uAC00 \uB0A8\uC744\uAE4C\uC694?"},CHANGE_1_SYLL_IN_2SYLL:{label:"2\uC74C\uC808\uC5D0\uC11C \uD55C \uC74C\uC808 \uBC14\uAFB8\uAE30",sub:"2\uC74C\uC808 \uB2E8\uC5B4\uC758 \uD55C \uC74C\uC808\uC744 \uBC14\uAFD4 \uC0C8 \uB2E8\uC5B4\uB97C \uB9CC\uB4DC\uC138\uC694."},CHANGE_1_SYLL_IN_3SYLL:{label:"3\uC74C\uC808\uC5D0\uC11C \uD55C \uC74C\uC808 \uBC14\uAFB8\uAE30",sub:"3\uC74C\uC808 \uB2E8\uC5B4\uC758 \uD55C \uC74C\uC808\uC744 \uBC14\uAFD4 \uC0C8 \uB2E8\uC5B4\uB97C \uB9CC\uB4DC\uC138\uC694."},CHANGE_1_PHONEME_IN_1SYLL:{label:"1\uC74C\uC808 \uB2E8\uC5B4 \uC911 1\uAC1C \uC74C\uC18C \uBC14\uAFB8\uAE30",sub:"1\uC74C\uC808 \uB2E8\uC5B4\uC758 \uD55C \uC74C\uC18C\uB97C \uBC14\uAFD4 \uC0C8 \uC18C\uB9AC\uB97C \uB9CC\uB4DC\uC138\uC694."},CHANGE_1_PHONEME_IN_2SYLL:{label:"2\uC74C\uC808 \uB2E8\uC5B4 \uC911 1\uAC1C \uC74C\uC18C \uBC14\uAFB8\uAE30",sub:"2\uC74C\uC808 \uB2E8\uC5B4\uC758 \uD55C \uC74C\uC18C\uB97C \uBC14\uAFD4 \uC0C8 \uB2E8\uC5B4\uB97C \uB9CC\uB4DC\uC138\uC694."}},Df={comingSoon:"\uB2E8\uC5B4\uD6C8\uB828 \uAE30\uB2A5\uC744 \uC900\uBE44 \uC911\uC785\uB2C8\uB2E4."},Ef={colName:"\uB2E8\uC5B4\uD45C \uC774\uB984",open:"\uC5F4\uAE30",countSuffix:"\uAC1C\uC758 \uB2E8\uC5B4\uD45C",tab:{cards:"\uB2E8\uC5B4\uD45C \uCE74\uB4DC",tables:"\uB2E8\uC5B4\uD45C"},cardsEmpty:"\uC544\uC9C1 \uB9CC\uB4E0 \uB2E8\uC5B4\uD45C \uCE74\uB4DC\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4.",addCard:"\uB2E8\uC5B4\uD45C \uCE74\uB4DC \uCD94\uAC00",menu:{publishStore:"\uB9D0\uADC0\uC790\uB8CC\uC2E4\uC5D0 \uC62C\uB9AC\uAE30",unpublishStore:"\uB9D0\uADC0\uC790\uB8CC\uC2E4\uC5D0\uC11C \uB0B4\uB9AC\uAE30"},newBadge:"\uC0C8\uB85C \uB9CC\uB4E0 \uD45C",publishedBadge:"\uBC1C\uD589\uB428",sharedBadge:"\uACF5\uC720 \uC911"},jf={title:"\uC8FC\uC694 \uB2E8\uC5B4",empty:"\uCD94\uCD9C\uB41C \uC8FC\uC694 \uB2E8\uC5B4\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4."},Tf={defaultName:"\uB2E8\uC5B4 \uD45C",title:"\uB2E8\uC5B4 \uD45C \uB9CC\uB4E4\uAE30",subtitle:"\uCE78\uC744 \uC124\uC815\uD558\uACE0 \uB2E8\uC5B4\uB97C \uCD94\uAC00\uD558\uC5EC \uD45C\uB97C \uB9CC\uB4ED\uB2C8\uB2E4.",filterTitle:"\uD45C \uC124\uC815",filter:{composition:"\uAD6C\uC131",image:"\uC774\uBBF8\uC9C0",word:"\uB2E8\uC5B4",standardPron:"\uD45C\uC900 \uBC1C\uC74C",colloquialPron:"\uAD6C\uC5B4\uCCB4 \uBC1C\uC74C",paperOrientation:"\uC6A9\uC9C0 \uBC29\uD5A5",landscape:"\uAC00\uB85C",portrait:"\uC138\uB85C",columns:"\uCE78 \uC218",column:"{{count}}\uCE78",itemsPerPageWord:"\uD398\uC774\uC9C0\uB2F9 \uB2E8\uC5B4 \uC218",itemsPerPagePair:"\uD398\uC774\uC9C0\uB2F9 \uB300\uB9BD\uC30D \uC218",itemsPerPageOption:"{{count}}\uAC1C",pageIndicator:"{{current}} / {{total}}",pageNumber:"\uD398\uC774\uC9C0 \uBC88\uD638",pageNumberLeft:"\uC67C\uCABD",pageNumberCenter:"\uC911\uC559",pageNumberRight:"\uC624\uB978\uCABD",border:"\uC678\uACFD\uC120",cutLine:"\uC808\uCDE8\uC120",show:"\uD45C\uC2DC",hide:"\uBBF8\uD45C\uC2DC",dotted:"\uC810\uC120",corner:"\uCF54\uB108"},addWord:"\uCD94\uAC00\uD558\uAE30",wordInfo:"{{word}} \uB0B1\uB9D0 \uC815\uBCF4",emptyItems:"\uB2E8\uC5B4\uB97C 1\uAC1C \uC774\uC0C1 \uCD94\uAC00\uD574\uC8FC\uC138\uC694.",load:"\uBD88\uB7EC\uC624\uAE30",openNewWindow:"\uC0C8 \uCC3D\uC73C\uB85C \uBCF4\uAE30",saveButton:"\uC800\uC7A5\uD558\uAE30",saveAsNewButton:"\uB2E4\uB978 \uC774\uB984\uC73C\uB85C \uC800\uC7A5",print:"\uC778\uC1C4\uD558\uAE30",popupBlocked:"\uD31D\uC5C5\uC774 \uCC28\uB2E8\uB418\uC5C8\uC2B5\uB2C8\uB2E4. \uBE0C\uB77C\uC6B0\uC800 \uC124\uC815\uC5D0\uC11C \uD31D\uC5C5\uC744 \uD5C8\uC6A9\uD574 \uC8FC\uC138\uC694.",printFileNameSingle:"\uB2E8\uC5B4\uD45C",printFileNamePair:"\uB300\uB9BD\uC30D\uD45C",save:{title:"\uB2E8\uC5B4\uD45C \uC800\uC7A5\uD558\uAE30",nameLabel:"\uC774\uB984",desc:"\uC800\uC7A5\uD560 \uB2E8\uC5B4 \uD45C\uC758 \uC774\uB984\uC744 \uC785\uB825\uD558\uC138\uC694.",placeholder:"\uC774 \uB2E8\uC5B4\uD45C\uC5D0 \uB300\uD55C \uC81C\uBAA9\uC744 \uC785\uB825\uD558\uC138\uC694.",descriptionLabel:"\uC124\uBA85",descriptionPlaceholder:"\uC774 \uB2E8\uC5B4\uD45C\uC5D0 \uB300\uD55C \uC124\uBA85\uC744 \uC785\uB825\uD558\uC138\uC694.",duplicateName:"\uC774\uBBF8 \uC0AC\uC6A9 \uC911\uC778 \uC774\uB984\uC785\uB2C8\uB2E4.",nameRequired:"\uD45C \uC774\uB984\uC744 \uC785\uB825\uD574 \uC8FC\uC138\uC694.",autoFillHint:" (Tab \uB610\uB294 space \uC785\uB825\uC2DC \uC790\uB3D9 \uC785\uB825)",copyName:"{{name}} (\uBCF5\uC0AC)"},loadTable:{title:"\uC800\uC7A5\uB41C \uB2E8\uC5B4 \uD45C \uBD88\uB7EC\uC624\uAE30",empty:"\uC800\uC7A5\uB41C \uB2E8\uC5B4 \uD45C\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4.",loadButton:"\uBD88\uB7EC\uC624\uAE30",itemCount:"{{count}}\uAC1C",deleteAriaLabel:"{{name}} \uC0AD\uC81C",sort:{newest:"\uCD5C\uC2E0\uC21C",oldest:"\uC624\uB798\uB41C\uC21C",name:"\uC774\uB984\uC21C",count:"\uB2E8\uC5B4 \uC218"},view:{grid:"\uD45C\uB85C \uBCF4\uAE30",list:"\uB9AC\uC2A4\uD2B8\uB85C \uBCF4\uAE30"}},groupDeleteMessage:"\uADF8\uB8F9 \uB0B4 \uB2E8\uC5B4\uD45C\uB294 '\uADF8\uB8F9 \uC5C6\uC74C'\uC73C\uB85C \uC774\uB3D9\uD569\uB2C8\uB2E4.",groupNamePlaceholder:"\uADF8\uB8F9 \uC774\uB984",store:{badge:"\uB9D0\uADC0\uC790\uB8CC\uC2E4"},card:{sub:"\uB2E8\uC5B4\uD45C \uCE74\uB4DC",empty:"\uC774 \uCE74\uB4DC\uC5D0 \uB2E8\uC5B4\uD45C\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4."},toast:{renameError:"\uC774\uB984 \uBCC0\uACBD\uC5D0 \uC2E4\uD328\uD588\uC2B5\uB2C8\uB2E4",saveError:"\uC800\uC7A5\uC5D0 \uC2E4\uD328\uD588\uC2B5\uB2C8\uB2E4",deleteError:"\uC0AD\uC81C\uC5D0 \uC2E4\uD328\uD588\uC2B5\uB2C8\uB2E4",duplicateError:"\uBCF5\uC81C\uC5D0 \uC2E4\uD328\uD588\uC2B5\uB2C8\uB2E4",saveSuccess:"\uB2E8\uC5B4\uD45C\uAC00 \uC800\uC7A5\uB418\uC5C8\uC2B5\uB2C8\uB2E4."},scoring:{o:"{{word}} \uB9DE\uC74C",triangle:"{{word}} \uC560\uB9E4",x:"{{word}} \uD2C0\uB9BC",button:"\uCC44\uC810\uD558\uAE30",pickTitle:"\uB204\uAD6C\uB97C \uCC44\uC810\uD560\uAE4C\uC694?",pickSubtitle:"\u2018{{name}}\u2019 \uD45C\uB85C \uD6C8\uB828\uD55C \uACE0\uAC1D\uC744 \uACE0\uB974\uC138\uC694.",pickSearch:"\uC774\uB984 \uB610\uB294 \uC804\uD654\uBC88\uD638\uB85C \uCC3E\uAE30",pickEmpty:"\uB4F1\uB85D\uB41C \uACE0\uAC1D\uC774 \uC5C6\uC2B5\uB2C8\uB2E4.",pickNoMatch:"\uCC3E\uB294 \uACE0\uAC1D\uC774 \uC5C6\uC2B5\uB2C8\uB2E4.",pickAgain:"\uACE0\uAC1D \uB2E4\uC2DC \uACE0\uB974\uAE30",scoringFor:"{{name}} \uB2D8 \uCC44\uC810 \uC911",none:"\uCE78 \uC544\uB798 \u25CB \xB7 \u25B3 \xB7 \u2715 \uB97C \uB20C\uB7EC \uB9E4\uAE30\uC138\uC694. \uB9C8\uC6B0\uC2A4\uB85C\uB294 \uCE78\uC5D0 \uC190\uC744 \uC5B9\uC73C\uBA74 \uB098\uD0C0\uB0A9\uB2C8\uB2E4.",tally:"{{marked}}\uCE78 \uCC44\uC810 \xB7 \u25CB {{o}} \xB7 \u25B3 {{triangle}} \xB7 \u2715 {{x}} \xB7 \uC815\uB2F5\uB960 {{rate}}%",save:"\uCC44\uC810 \uC800\uC7A5",saved:"{{name}} \uB2D8\uC758 \uCC44\uC810 {{count}}\uCE78\uC744 \uC800\uC7A5\uD588\uC2B5\uB2C8\uB2E4.",reviewTitle:"\uBCF5\uC2B5\uD45C\uB97C \uB9CC\uB4E4\uAE4C\uC694?",reviewMessage:"{{name}} \uB2D8\uC774 \uD2C0\uB9AC\uAC70\uB098 \uC560\uB9E4\uD588\uB358 {{count}}\uCE78\uC73C\uB85C \uC0C8 \uD45C\uB97C \uB9CC\uB4ED\uB2C8\uB2E4. \uB9DE\uD78C \uCE78\uC740 \uBE60\uC9D1\uB2C8\uB2E4.",reviewConfirm:"\uBCF5\uC2B5\uD45C \uB9CC\uB4E4\uAE30",reviewDescription:"\u2018{{name}}\u2019 \uCC44\uC810\uC5D0\uC11C \uD2C0\uB9AC\uAC70\uB098 \uC560\uB9E4\uD588\uB358 {{count}}\uCE78\uC744 \uBAA8\uC740 \uD45C\uC785\uB2C8\uB2E4.",reviewCreated:"\u2018{{name}}\u2019\uC744(\uB97C) \uB9CC\uB4E4\uC5C8\uC2B5\uB2C8\uB2E4 \u2014 {{count}}\uCE78.",discardTitle:"\uB9E4\uAE34 \uCC44\uC810\uC744 \uBC84\uB9B4\uAE4C\uC694?",discardMessage:"{{count}}\uCE78\uC744 \uB9E4\uACBC\uC9C0\uB9CC \uC544\uC9C1 \uC800\uC7A5\uD558\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4. \uB098\uAC00\uBA74 \uC0AC\uB77C\uC9D1\uB2C8\uB2E4.",discardConfirm:"\uBC84\uB9AC\uACE0 \uB098\uAC00\uAE30"},info:{grade:"\uB09C\uC774\uB3C4: {{n}}\uB4F1\uAE09",syllables:"\uC74C\uC808 \uC218: {{n}}\uC74C\uC808",pos:"\uD488\uC0AC: {{v}}",wordType:"\uC720\uD615: {{v}}"},pos:{noun:"\uBA85\uC0AC",verb:"\uB3D9\uC0AC",adjective:"\uD615\uC6A9\uC0AC",adverb:"\uBD80\uC0AC",numeral:"\uC218\uC0AC",determiner:"\uAD00\uD615\uC0AC",interjection:"\uAC10\uD0C4\uC0AC",particle:"\uC870\uC0AC",affix:"\uC811\uC0AC",dependentNoun:"\uC758\uC874\uBA85\uC0AC",pronoun:"\uB300\uBA85\uC0AC",auxVerb:"\uBCF4\uC870\uB3D9\uC0AC",auxAdjective:"\uBCF4\uC870\uD615\uC6A9\uC0AC"},reorder:{moved:"{{total}}\uCE78 \uAC00\uC6B4\uB370 {{n}}\uBC88\uC9F8\uB85C \uC62E\uAE40",handle:"{{word}} \uC21C\uC11C \uBC14\uAFB8\uAE30 (Alt + \uD654\uC0B4\uD45C)",hint:"Alt + \u2190 \u2192 \uB85C \uC21C\uC11C \uBC14\uAFB8\uAE30"}},Mf={editBanner:{message:"\uC800\uC7A5\uD558\uBA74 \uC9C0\uAE08 \uC218\uC815 \uC911\uC778 \uB2E8\uC5B4\uD45C\uAC00 \uAC31\uC2E0\uB429\uB2C8\uB2E4."},filterTitle:"\uB2E8\uC5B4 \uAC80\uC0C9 \uC124\uC815",filter:{positionAny:"\uBB34\uAD00",positionHead:"\uC5B4\uB450",positionMid:"\uC5B4\uC911",positionTail:"\uC5B4\uB9D0",difficulty:"\uB4F1\uAE09",grade:"{{n}}\uB4F1\uAE09",syllables:"\uC74C\uC808 \uC218",syllable:"{{n}}\uC74C\uC808",syllable5plus:"5\uC74C\uC808 \uC774\uC0C1",partOfSpeech:"\uD488\uC0AC",pos:{noun:"\uCCB4\uC5B8(\uBA85\uC0AC, \uC218\uC0AC)",verb:"\uC6A9\uC5B8(\uB3D9\uC0AC, \uD615\uC6A9\uC0AC)",modifier:"\uC218\uC2DD\uC5B8(\uBD80\uC0AC, \uAD00\uD615\uC0AC)"},wordType:"\uC720\uD615",type:{native:"\uACE0\uC720\uC5B4",sino:"\uD55C\uC790\uC5B4",foreign:"\uC678\uB798\uC5B4",mixed:"\uD63C\uC885\uC5B4"},exclude:"\uC81C\uC678",excludeNoImage:"\uC774\uBBF8\uC9C0 \uC5C6\uC74C"},searchButton:"\uAC80\uC0C9\uD558\uAE30",resultUnit:"\uB2E8\uC5B4",remaining:"{{count}}\uAC1C \uB0A8\uC74C",resultDisc:"\uC6D0\uD558\uB294 {{unit}} \uC120\uD0DD\uD558\uC138\uC694. {{max}}\uAC1C\uAE4C\uC9C0 \uC120\uD0DD\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4. ({{selected}}/{{max}})",resultTitlePrefix:"\uCD1D ",resultTitleSuffix:"\uAC1C\uC758 {{unit}} \uAC80\uC0C9\uB418\uC5C8\uC2B5\uB2C8\uB2E4.",emptyResult:"\uAC80\uC0C9 \uACB0\uACFC\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4.",groupCount:"{{count}}\uAC1C",sort:{aria:"\uC815\uB82C",match:"\uC2DC\uC791 \uC6B0\uC120",ganada:"\uAC00\uB098\uB2E4\uC21C \u2191",ganadaDesc:"\uAC00\uB098\uB2E4\uC21C \u2193",syllable:"\uC74C\uC808 \uC218 \u2191",syllableDesc:"\uC74C\uC808 \uC218 \u2193",grade:"\uB4F1\uAE09\uC21C \u2191",gradeDesc:"\uB4F1\uAE09\uC21C \u2193",original:"\uBC1B\uC740 \uC21C\uC11C"},pageSize:"{{count}}\uAC1C\uC529 \uBCF4\uAE30",pageSizeAria:"\uD398\uC774\uC9C0 \uD06C\uAE30",popup:{title:"{{n}}\uBC88 \uCE78\uC5D0 \uB123\uC744 \uB2E8\uC5B4\uB97C \uC120\uD0DD\uD558\uC138\uC694"}},Lf={clearAllSelection:"\uBAA8\uB450 \uC120\uD0DD \uD574\uC81C",divLine:"\uB300\uB9BD\uC120",removePair:"\uB300\uB9BD\uC30D \uBE7C\uAE30",removeWord:"\uB2E8\uC5B4 \uBE7C\uAE30"},$f={title:"\uC8FC\uC81C\uBCC4 \uB4E3\uAE30",subtitle:"\uC8FC\uC81C\uB97C \uC120\uD0DD\uD558\uACE0 \uB4E3\uAE30 \uD6C8\uB828\uC744 \uC2DC\uC791\uD558\uC138\uC694.",noiseTitle:"\uC18C\uC74C \uD558 \uBB38\uC7A5\uB4E3\uAE30",shortStoryTitle:"\uC9E7\uC740 \uC774\uC57C\uAE30 \uB4E3\uAE30",FOOD:"\uC74C\uC2DD",HLTH:"\uAC74\uAC15",WETH:"\uB0A0\uC528",PRSN:"\uC778\uBB3C",KRCT:"\uD55C\uAD6D\uBB38\uD654",STRY:"\uC774\uC57C\uAE30",LOCA:"\uC9C0\uC5ED",SOAR:"\uC0AC\uD68C\uC640 \uC608\uC220",NTSC:"\uC790\uC5F0\uACFC \uACFC\uD559",SPRT:"\uC2A4\uD3EC\uCE20",sub:{TRKRFD:"\uD55C\uAD6D \uC804\uD1B5\uC74C\uC2DD",MDKRFD:"\uD55C\uAD6D \uD604\uB300\uC74C\uC2DD",WRLDFD:"\uC138\uACC4\uC758 \uC74C\uC2DD",MTRFRT:"\uC2DD\uC7AC\uB8CC\uC640 \uACFC\uC77C",GEFDKL:"\uC74C\uC2DD \uC0C1\uC2DD",HTETHB:"\uAC74\uAC15\uD55C \uC2DD\uC2B5\uAD00",DISILL:"\uBCD1\uACFC \uC9C8\uD658",EXCISE:"\uC6B4\uB3D9",GEHTKL:"\uAC74\uAC15\uC0C1\uC2DD",GESSKL:"\uACC4\uC808\uC0C1\uC2DD",SNWRAN:"\uB208\uACFC \uBE44",WTHFCT:"\uC77C\uAE30\uC608\uBCF4",GEWTKL:"\uB0A0\uC528\uC0C1\uC2DD",JODYPS:"\uC870\uC120\uC2DC\uB300",MDKRPS:"\uD55C\uAD6D \uADFC\uD604\uB300",THKDPS:"\uC0BC\uAD6D\uC2DC\uB300",WRLART:"\uC138\uACC4\uC758 \uC608\uC220\uAC00",WRLPSN:"\uC138\uACC4\uC758 \uC778\uBB3C",KRLANG:"\uC6B0\uB9AC\uB9D0",TRPLCT:"\uC804\uD1B5\uB180\uC774",HERITG:"\uBB38\uD654\uC7AC",EVTFES:"\uD589\uC0AC\uC640 \uCD95\uC81C",GECTKL:"\uC0C1\uC2DD",FRYTAL:"\uB3D9\uD654",AMZING:"\uC2E0\uAE30\uD55C \uC774\uC57C\uAE30",DAYSTR:"\uC77C\uC0C1 \uC18D \uC774\uC57C\uAE30",KRLDMK:"\uD55C\uAD6D\uC758 \uBA85\uC18C",SELNMK:"\uC11C\uC6B8\uC758 \uBA85\uC18C",WRDTRB:"\uC138\uACC4\uC5EC\uD589",NAVIGT:"\uAE38 \uCC3E\uAE30",KRSOCI:"\uD55C\uAD6D",ECONEW:"\uACBD\uC81C\uC640 \uB274\uC2A4",GENART:"\uC608\uC220",GELFKL:"\uC0DD\uD65C \uC0C1\uC2DD",ANIMAL:"\uB3D9\uBB3C",PLANTS:"\uC2DD\uBB3C",ETHPLT:"\uC9C0\uAD6C",TOLELC:"\uB3C4\uAD6C\uC640 \uC804\uC790\uC81C\uD488",GESCKL:"\uACFC\uD559\uC0C1\uC2DD",INVDSP:"\uAC1C\uC778\uACBD\uAE30",MARART:"\uACA9\uD22C\uAE30",TEAMSP:"\uB2E8\uCCB4\uACBD\uAE30",FOOTBL:"\uCD95\uAD6C",GESPKL:"\uC2A4\uD3EC\uCE20 \uC0C1\uC2DD"}},Rf={maxUses:"\uCD5C\uB300 \uC0AC\uC6A9 \uD69F\uC218 (\uBE44\uC6CC\uB450\uBA74 \uBB34\uC81C\uD55C)",redirect:"\uC774\uB3D9\uD560 \uD398\uC774\uC9C0 URL (\uBE44\uC6CC\uB450\uBA74 \uC571 \uBA54\uC778)",creating:"\uC0DD\uC131 \uC911\u2026",create:"\uB9C1\uD06C \uC0DD\uC131",created:"\u2713 \uB9C1\uD06C\uAC00 \uC0DD\uC131\uB418\uC5C8\uC2B5\uB2C8\uB2E4",copied:"\uBCF5\uC0AC\uB428!",copy:"\uBCF5\uC0AC",loading:"\uBD88\uB7EC\uC624\uB294 \uC911\u2026",empty:"\uC0DD\uC131\uB41C \uB9C1\uD06C\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4.",uses:"{{count}}\uD68C \uC0AC\uC6A9",expiresAt:"\uB9CC\uB8CC: {{date}}",createdAt:"\uC0DD\uC131: {{date}}",confirmDelete:"\uC0AD\uC81C\uD560\uAE4C\uC694?",deactivate:"\uBE44\uD65C\uC131\uD654",delete:"\uC0AD\uC81C",status:{active:"\uC720\uD6A8",expired:"\uB9CC\uB8CC",inactive:"\uBE44\uD65C\uC131"}},Pf={passwordPlaceholder:"\uBE44\uBC00\uBC88\uD638 \uC785\uB825"},If={subtitle:"\uC8FC\uC81C\uB97C \uC120\uD0DD\uD558\uC5EC \uB4E3\uAE30 \uC5F0\uC2B5\uC744 \uC9C4\uD589\uD558\uC138\uC694."},Ff={direction:{left:"\uC88C",right:"\uC6B0",label:"\uBC29\uD5A5"},wornDate:"\uCC29\uC6A9\uC77C",deviceType:"\uC885\uB958",brand:"\uBE0C\uB79C\uB4DC",fitType:"\uCC29\uC6A9\uD615\uD0DC",productName:"\uC81C\uD488\uBA85",validationError:{brandAndProduct:"\uBE0C\uB79C\uB4DC\uC640 \uC81C\uD488\uBA85\uC744 \uC785\uB825\uD574 \uC8FC\uC138\uC694."},addNew:"\uC0C8 \uAE30\uAE30 \uCD94\uAC00",selectFromList:"\uBAA9\uB85D\uC5D0\uC11C \uC120\uD0DD",removeDevice:"\uCC29\uC6A9 \uD574\uC81C",type:{hearingAid:"\uBCF4\uCCAD\uAE30",cochlearImplant:"\uC778\uACF5\uC640\uC6B0"}},Of={stat:{totalCustomers:"\uCD1D \uACE0\uAC1D",monthlyVisits:"\uC774\uB2EC \uCD1D \uBC29\uBB38"},chart:{visitDetail:"\uC0C1\uC138 \uBC29\uBB38 \uD604\uD669",trainingDetail:"\uC0C1\uC138 \uD6C8\uB828 \uD604\uD669",weekly:"\uC8FC\uBCC4",daily:"\uC77C\uBCC4",periodMonth:"\uC6D4",periodWeek:"\uC8FC",weeklyPrefix:"\uC8FC\uAC04",monthlyPrefix:"\uC6D4\uAC04",visit:"\uBC29\uBB38",reservation:"\uC608\uC57D",trainingDone:"\uD6C8\uB828 \uC644\uB8CC",trainingInProgress:"\uD6C8\uB828 \uC911",weekRange:"{{start}}~{{end}}",week:"{{n}}\uC8FC"},subscriptionStatus:{active:"{{pct}}% \uD65C\uC131",expired:"{{pct}}% \uB9CC\uB8CC",unused:"{{pct}}% \uBBF8\uC0AC\uC6A9"}},Hf={editBanner:{message:"\uC800\uC7A5\uD558\uBA74 \uC9C0\uAE08 \uC218\uC815 \uC911\uC778 \uB300\uB9BD\uC30D\uD45C\uAC00 \uAC31\uC2E0\uB429\uB2C8\uB2E4."},phonemeSelect:{title:"\uC74C\uC18C \uC120\uD0DD",vs:"\uB300"},caution:"\uC720\uC758\uC0AC\uD56D",mode:{include:"\uC74C\uC18C \uD3EC\uD568",pick:"\uC74C\uC18C \uB300\uB9BD",contrast:"\uC74C\uC18C \uB300\uB9BD \uC9C0\uC815",infoTitle:"\uB300\uB9BD \uBC29\uC2DD",infoInclude:"\uC74C\uC18C \uD3EC\uD568 \u2014 \uC120\uD0DD\uD55C \uC74C\uC18C\uAC00 \uBAA8\uB450 \uB4E4\uC5B4\uAC04 \uB2E8\uC5B4\uC640 \uADF8 \uB300\uB9BD\uC30D\uC744 \uCC3E\uC544\uC694.",infoPick:"\uC74C\uC18C \uB300\uB9BD \u2014 \uC120\uD0DD\uD55C \uC74C\uC18C\uAC00 \uB300\uB9BD\uC30D \uB450 \uB2E8\uC5B4\uC758 \uC2E4\uC81C \uCC28\uC774\uC810\uC77C \uB54C\uB9CC \uB9E4\uCE6D\uB3FC\uC694.",infoContrast:"\uC74C\uC18C \uB300\uB9BD \uC9C0\uC815 \u2014 \uAE30\uC900 \uB2E8\uC5B4\uC640 \uB300\uB9BD \uB2E8\uC5B4\uC758 \uC74C\uC18C\uB97C \uAC01\uAC01 \uC9C1\uC811 \uC120\uD0DD\uD574 \uB300\uB9BD\uC30D\uC744 \uCC3E\uC544\uC694."},count:"{{n}}\uAC1C",input:{char:"\uAE00\uC790 \uC120\uD0DD",pron:"\uBC1C\uC74C \uC120\uD0DD",infoTitle:"\uC785\uB825 \uBC29\uC2DD",infoChar:"\uAE00\uC790 \uC120\uD0DD \u2014 \uC120\uD0DD\uD55C \uC74C\uC18C\uB85C \uB2E8\uC5B4(\uAE00\uC790 \uAE30\uC900)\uB97C \uCC3E\uC740 \uD6C4, \uB2E8\uC5B4\uC758 \uD45C\uC900 \uBC1C\uC74C \uB300\uB9BD\uC30D\uC744 \uCC3E\uC2B5\uB2C8\uB2E4.",infoPron:"\uBC1C\uC74C \uC120\uD0DD \u2014 \uC120\uD0DD\uD55C \uC74C\uC18C\uB85C \uD45C\uC900 \uBC1C\uC74C \uB300\uB9BD\uC30D\uC744 \uCC3E\uC2B5\uB2C8\uB2E4."},phonemeN:"{{n}}\uBC88 \uC74C\uC808",phonemeSingleLabel:"\uC74C\uC808",phonemeContrastSingleLabel:"\uB300\uB9BD \uC74C\uC808",ordinals:["\uCCAB\uBC88\uC9F8","\uB450\uBC88\uC9F8","\uC138\uBC88\uC9F8","\uB124\uBC88\uC9F8"],phonemeOrdinalLabel:"{{ordinal}} \uC74C\uC808",phonemeContrastOrdinalLabel:"\uB300\uB9BD {{ordinal}} \uC74C\uC808",composition:"\uC815\uB2F5 \uB2E8\uC5B4 \uAD6C\uC131",syllableCount:"\uC74C\uC808 \uC218",syllableN:"{{n}}\uC74C\uC808",syllableNPlus:"{{n}}\uC74C\uC808 \uC774\uC0C1",onset:"\uCD08\uC131",vowel:"\uBAA8\uC74C",coda:"\uC885\uC131",filter:{searchOptionsTitle:"\uB300\uB9BD \uC124\uC815",searchModeLabel:"\uB300\uB9BD \uBC29\uC2DD",countLabel:"\uC785\uB825 \uC74C\uC808 \uAC2F\uC218",inputModeLabel:"\uC785\uB825 \uBC29\uC2DD",phonemeOrder:"\uC785\uB825 \uC74C\uC808 \uC704\uCE58",phonemeOrderInfo:["\uC77C\uCE58: \uB300\uB9BD\uC30D\uC774 \uC815\uD655\uD788 \uAC19\uC740 \uC704\uCE58(\uC74C\uC808)\uC5D0\uC11C\uB9CC \uCC28\uC774 \uB098\uC57C \uB9E4\uCE6D\uB3FC\uC694.","\uBB34\uAD00: \uCC28\uC774 \uB098\uB294 \uC704\uCE58\uB294 \uC0C1\uAD00\uC5C6\uC774 \uB9E4\uCE6D\uB3FC\uC694."],orderAny:"\uBB34\uAD00",orderMatch:"\uC77C\uCE58",difficultyInfo:"\uAD6D\uB9BD\uAD6D\uC5B4\uC6D0\uC758 \uAE30\uCD08 \uC5B4\uD718 \uB4F1\uAE09\uC774 \uACB0\uACFC\uC5D0 \uBC18\uC601\uB429\uB2C8\uB2E4.",selectLabel:"\uC120\uD0DD",onlyHasImage:"\uC774\uBBF8\uC9C0 \uC788\uB294 \uB2E8\uC5B4\uB9CC",onlySameStructure:"\uC74C\uC18C \uAD6C\uC870 \uAC19\uC740 \uB2E8\uC5B4\uB9CC"},searchLabel:{error:"\uB370\uC774\uD130 \uBD88\uB7EC\uC624\uAE30 \uC2E4\uD328",loading:"\uBD88\uB7EC\uC624\uB294 \uC911\u2026"},confirmMessage:"\uC120\uD0DD\uD55C {{unit}} {{count}}\uAC1C\uB97C \uD3EC\uD568\uD55C \uB2E8\uC5B4 \uD45C \uC815\uBCF4\uAC00 \uC0AC\uB77C\uC9D1\uB2C8\uB2E4.",resetOptions:"\uAC80\uC0C9 \uC635\uC158 \uCD08\uAE30\uD654",phonemeContrast:"\uB300\uB9BD {{n}}\uBC88 \uC74C\uC808",infoNotes:["\uBBF8\uB9AC\uBCF4\uAE30 \uAE00\uC790\uB294 \uC120\uD0DD\uD55C \uC74C\uC18C\uC758 \uC870\uD569 \uC608\uC2DC\uC785\uB2C8\uB2E4. \uC2E4\uC81C \uAC80\uC0C9\uC740 \uD574\uB2F9 \uC74C\uC18C\uAC00 \uD3EC\uD568\uB41C \uBAA8\uB4E0 \uB2E8\uC5B4\uB97C \uB300\uC0C1\uC73C\uB85C \uD569\uB2C8\uB2E4.","\uCD08\uC131 '\u3147'\uC740 \uC120\uD0DD\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4. \uB2E8\uC5B4 \uC55E\uC5D0 \uC624\uB294 \u3147\uC740 \uC2E4\uC9C8\uC801\uC73C\uB85C \uBB34\uC74C\uC774\uC5B4\uC11C \uB300\uB9BD\uC30D \uC131\uB9BD\uC5D0 \uC601\uD5A5\uC744 \uC8FC\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.","\uCD08\uC131\uACFC \uC885\uC131\uB9CC \uC120\uD0DD\uD558\uBA74 \uBAA8\uC74C\uC740 '\u314F'\uB85C \uC790\uB3D9 \uD45C\uC2DC\uB429\uB2C8\uB2E4.","\uC74C\uC18C \uAC1C\uC218\uB97C \uB298\uB9AC\uBA74 \uAC01 \uC74C\uC18C \uC0AC\uC774\uC758 \uB300\uB9BD\uC30D\uC744 \uAC80\uC0C9\uD569\uB2C8\uB2E4."]},zf={sentenceTyping:{roundCount:"{{rounds}}\uBB38\uC81C \xB7 \uBB38\uC81C\uB2F9 {{timeLimit}}\uCD08"},wordDefense:{me:"\uB098"},dictation:{title:"\uBC1B\uC544\uC4F0\uAE30",desc:"\uBB38\uC7A5\uC744 \uB4E3\uACE0 \uC815\uD655\uD788 \uBC1B\uC544\uC801\uB294 \uC5F0\uC2B5\uC785\uB2C8\uB2E4.",comingSoon:"\uAD6C\uD604 \uC608\uC815: \uC74C\uC131 \uC7AC\uC0DD, \uC785\uB825 \uD544\uB4DC, \uC815\uB2F5 \uBE44\uAD50"},result:{heading:"{{number}}\uB2E8\uACC4 \uD574\uB2F5",retry:"\uB2E4\uC2DC \uD480\uAE30"},common:{accuracy:"{{pct}}% \uC815\uD655\uB3C4"},soundMatch:{title:"\uC18C\uB9AC \uB9E4\uCE6D",desc:"\uAC19\uC740 \uC18C\uB9AC\uB97C \uAC00\uC9C4 \uB2E8\uC5B4 \uB610\uB294 \uBB38\uC7A5\uC744 \uBE60\uB974\uAC8C \uB9E4\uCE6D\uD558\uB294 \uAC8C\uC784\uC785\uB2C8\uB2E4.",comingSoon:"\uAD6C\uD604 \uC608\uC815: \uD50C\uB808\uC774 \uBC84\uD2BC, \uD0C0\uC774\uBA38, \uC810\uC218 \uC9D1\uACC4"},orderSequence:{title:"\uBB38\uC7A5 \uC21C\uC11C\uD654",desc:"\uD769\uC5B4\uC9C4 \uBB38\uC7A5 \uC870\uAC01\uC744 \uC62C\uBC14\uB978 \uC21C\uC11C\uB85C \uBC30\uC5F4\uD558\uB294 \uD6C8\uB828\uC785\uB2C8\uB2E4.",comingSoon:"\uAD6C\uD604 \uC608\uC815: \uBB38\uC7A5 \uC138\uD2B8, \uC21C\uC11C \uD655\uC778 \uC778\uD130\uD398\uC774\uC2A4"},speedListen:{title:"\uC18D\uB3C4 \uB4E3\uAE30",desc:"\uC2DC\uAC04 \uC81C\uD55C \uB0B4\uC5D0 \uBB38\uC7A5\uC758 \uB2E8\uC5B4 \uC218\uB97C \uB9DE\uCD94\uB294 \uB3C4\uC804\uD615 \uAC8C\uC784\uC785\uB2C8\uB2E4.",comingSoon:"\uAD6C\uD604 \uC608\uC815: \uC81C\uD55C\uC2DC\uAC04, \uC810\uC218\uD310"},noiseChallenge:{title:"\uC18C\uC74C \uCC4C\uB9B0\uC9C0",desc:"\uBC30\uACBD \uC18C\uC74C \uC18D\uC5D0\uC11C \uBB38\uC7A5\uC744 \uBD84\uBCC4\uD558\uB294 \uC5F0\uC2B5\uC785\uB2C8\uB2E4.",comingSoon:"\uAD6C\uD604 \uC608\uC815: \uB2E4\uC591\uD55C \uC18C\uC74C \uB808\uBCA8, \uC810\uC218 \uC9D1\uACC4"},fastListen:{title:"\uBE60\uB978 \uB4E3\uAE30",desc:"\uC9E7\uC740 \uBB38\uC7A5\uC744 \uBE60\uB974\uAC8C \uB4E4\uB824\uC8FC\uACE0 \uD575\uC2EC \uB2E8\uC5B4\uB97C \uC120\uD0DD\uD558\uB294 \uAC8C\uC784\uC785\uB2C8\uB2E4.",comingSoon:"\uAD6C\uD604 \uC608\uC815: \uB09C\uC774\uB3C4\uBCC4 \uC18D\uB3C4, \uD0C0\uC774\uBA38"},shadowing:{title:"\uC250\uB3C4\uC789",desc:"\uBB38\uC7A5\uC744 \uB530\uB77C \uB9D0\uD558\uBA70 \uBC1C\uC74C\uACFC \uC5B5\uC591\uC744 \uC5F0\uC2B5\uD558\uB294 \uBAA8\uB4DC\uC785\uB2C8\uB2E4.",comingSoon:"\uAD6C\uD604 \uC608\uC815: \uC7AC\uC0DD, \uB179\uC74C, \uBE44\uAD50 \uD53C\uB4DC\uBC31"},phonemeHunt:{title:"\uC74C\uC6B4 \uCC3E\uAE30",desc:"\uD2B9\uC815 \uC74C\uC6B4(\uBC1C\uC74C)\uC744 \uD3EC\uD568\uD55C \uB2E8\uC5B4\uB97C \uCC3E\uC544\uB0B4\uB294 \uAC8C\uC784\uC785\uB2C8\uB2E4.",comingSoon:"\uAD6C\uD604 \uC608\uC815: \uC74C\uC6B4 \uD544\uD130, \uD78C\uD2B8 \uAE30\uB2A5"}},Vf={lead:`\uC544\uC774\uD574\uBE0C\uB294 \uC18C\uB9AC\uB97C \uD1B5\uD574
|
|
847
|
+
`),this.name="StorageNotConfiguredError"}};function Y0(e){K0(e)}function zs(e,t){if(!e)return null;const a=pa();return a?.resolvePath?a.resolvePath(e,t):t?`${t}/${e}.mp3`:null}async function Vs(e){if(!e)return null;const t=pa();if(!t)throw new Hs("getSignedOrPublicUrl");try{return await t.resolveUrl(e)}catch{return null}}async function Ws(e){const t=pa();if(!t)throw new Hs("downloadSound");return t.download(e)}function Z0(){return pa()?.noiseBaseUrl??"/sounds/noise"}function qs(){const e=Number(pa()?.noiseFileGain);return Number.isFinite(e)&&e>0?e:1}function X0(e){const t=AbortSignal.timeout;if(typeof t=="function")return t.call(AbortSignal,e);const a=new AbortController;return setTimeout(()=>a.abort(),e),a.signal}const Us="__ihab_core_tts_config__";function Br(){return globalThis[Us]?.urlResolver??null}function J0(){return globalThis[Us]?.fallbackUrlResolver??null}const Q0="__ihab_core_pronunciation_resolver__";function e2(){return globalThis[Q0]??null}let Sn=null;const ma=new WeakMap,Nr=new WeakMap,Sr=new WeakMap;let Gs=!1;const Ks=e=>Math.max(0,Math.min(1,Number.isFinite(e)?e:0));function t2(){if(Gs||typeof document>"u")return;Gs=!0;const e=()=>{try{Sn&&Sn.state!=="running"&&Sn.resume()}catch{}};for(const t of["pointerdown","touchend","keydown"])document.addEventListener(t,e,{capture:!0,passive:!0})}function Ys(){if(Sn)return Sn;try{const e=window.AudioContext||window.webkitAudioContext;return e?(Sn=new e,t2(),Sn):null}catch{return null}}function Dr(){try{Sn?.resume()}catch{}}function Er(e,t){const a=ma.get(t);if(a)return a;try{const r=e.createMediaElementSource(t),s=e.createGain(),i=e.createAnalyser();i.fftSize=1024,i.smoothingTimeConstant=.6,s.gain.value=Ks(Nr.get(t)??t.volume),r.connect(s),s.connect(i),s.connect(e.destination);try{t.volume=1}catch{}const l={gain:s,analyser:i};return ma.set(t,l),l}catch{return null}}function Pa(e){if(!e)return Promise.resolve(null);const t=ma.get(e);if(t)return Promise.resolve(t.analyser);const a=Ys();if(!a)return Promise.resolve(null);if(a.state==="running")return Promise.resolve(Er(a,e)?.analyser??null);const r=Sr.get(e);if(r)return r;const s=Promise.resolve().then(()=>a.resume()).then(()=>a.state==="running"?Er(a,e)?.analyser??null:null).catch(()=>null).finally(()=>{Sr.delete(e)});return Sr.set(e,s),s}function n2(e){if(!e)return null;const t=ma.get(e);if(t)return t.analyser;const a=Ys();return a?a.state==="running"?Er(a,e)?.analyser??null:(Pa(e),null):null}function Dn(e,t){const a=Ks(t);Nr.set(e,a);const r=ma.get(e);if(r){try{e.volume!==1&&(e.volume=1)}catch{}const s=r.gain.gain;try{const i=r.gain.context.currentTime;s.cancelScheduledValues(i),s.setTargetAtTime(a,i,.01)}catch{try{s.value=a}catch{}}return"gain"}try{e.volume=a}catch{}return"element"}function Ia(e){return Nr.get(e)??e.volume}function a2(e,t){e.getFloatTimeDomainData(t);let a=0;for(let r=0;r<t.length;r++){const s=t[r];a+=s*s}return Math.sqrt(a/t.length)}const r2="__ihab_core_image_config__";function Gn(){return globalThis[r2]??null}const Zs="word_image_existence_map_v1";let Pn=null;const Fa=new Map;function o2(){if(Pn)return Pn;try{const e=typeof localStorage<"u"?localStorage.getItem(Zs):null,t=e?JSON.parse(e):null;Pn=t&&typeof t=="object"&&!Array.isArray(t)?t:{}}catch{Pn={}}return Pn}let jr=null;function s2(){jr||(jr=setTimeout(()=>{jr=null;try{typeof localStorage<"u"&&Pn&&localStorage.setItem(Zs,JSON.stringify(Pn))}catch{}},200))}function i2(e,t){return`${e}_${t??1}`}async function Xs(e,t){const a=o2(),r=i2(e,t);if(r in a)return a[r];if(Fa.has(r))return Fa.get(r);const s=Gn();if(!s)return!1;const i=s(e,t);if(!i)return!1;const l=fetch(i,{method:"HEAD",signal:X0(8e3)}).then(c=>c.status>=500?null:c.ok,()=>null).then(c=>(Fa.delete(r),c===null?!1:(a[r]=c,s2(),c)));return Fa.set(r,l),l}const l2={\u314F:{nucleus:"\u314F"},\u3151:{glide:"j",nucleus:"\u314F"},\u3153:{nucleus:"\u3153"},\u3155:{glide:"j",nucleus:"\u3153"},\u3157:{nucleus:"\u3157"},\u315B:{glide:"j",nucleus:"\u3157"},\u315C:{nucleus:"\u315C"},\u3160:{glide:"j",nucleus:"\u315C"},\u3161:{nucleus:"\u3161"},\u3163:{nucleus:"\u3163"},\u3150:{nucleus:"\u3154/\u3150"},\u3152:{glide:"j",nucleus:"\u3154/\u3150"},\u3154:{nucleus:"\u3154/\u3150"},\u3156:{glide:"j",nucleus:"\u3154/\u3150"},\u3158:{glide:"w",nucleus:"\u314F"},\u3159:{glide:"w",nucleus:"\u3154/\u3150"},\u315A:{glide:"w",nucleus:"\u3154/\u3150"},\u315D:{glide:"w",nucleus:"\u3153"},\u315E:{glide:"w",nucleus:"\u3154/\u3150"},\u315F:{glide:"w",nucleus:"\u3163"},\u3162:{glide:"\u0270",nucleus:"\u3163"}},Js=["\u3131","\u3132","\u3134","\u3137","\u3138","\u3139","\u3141","\u3142","\u3143","\u3145","\u3146","\u3147","\u3148","\u3149","\u314A","\u314B","\u314C","\u314D","\u314E"],Qs=["\u314F","\u3150","\u3151","\u3152","\u3153","\u3154","\u3155","\u3156","\u3157","\u3158","\u3159","\u315A","\u315B","\u315C","\u315D","\u315E","\u315F","\u3160","\u3161","\u3162","\u3163"],c2=["","\u3131","\u3132","\u3133","\u3134","\u3135","\u3136","\u3137","\u3139","\u313A","\u313B","\u313C","\u313D","\u313E","\u313F","\u3140","\u3141","\u3142","\u3144","\u3145","\u3146","\u3147","\u3148","\u314A","\u314B","\u314C","\u314D","\u314E"];function ha(e){if(!e)return null;const t=e.charCodeAt(0)-44032;return t<0||t>=11172?null:{cho:Math.floor(t/588),jung:Math.floor(t%588/28),jong:t%28}}function u2(e){const t=ha(e[0]||"");return t?Js[t.cho]:""}function d2(e){if(!e)return()=>!0;e=e.normalize("NFC");const t=[...e],a=l=>Js.includes(l),r=l=>Qs.includes(l),s=t.map(l=>a(l)?"cho":r(l)?"jung":ha(l)?"syl":"other"),i=t.map(l=>ha(l));if(s.includes("other")){const l=e.toLowerCase();return c=>c.normalize("NFC").toLowerCase().includes(l)}return l=>{const c=[...l.normalize("NFC")];for(let d=0;d+t.length<=c.length;d++){let u=!0;for(let p=0;p<t.length;p++){const m=c[d+p],h=s[p];if(h==="cho"){if(u2(m)!==t[p]){u=!1;break}}else if(h==="jung"){const b=ha(m);if(!b||Qs[b.jung]!==t[p]){u=!1;break}}else{const b=i[p];if(b&&b.jong===0){const v=ha(m);if(!v||v.cho!==b.cho||v.jung!==b.jung){u=!1;break}}else if(m!==t[p]){u=!1;break}}}if(u)return!0}return!1}}const p2={3:["\u3131","\u3145"],5:["\u3134","\u3148"],6:["\u3134","\u314E"],9:["\u3139","\u3131"],10:["\u3139","\u3141"],11:["\u3139","\u3142"],12:["\u3139","\u3145"],13:["\u3139","\u314C"],14:["\u3139","\u314D"],15:["\u3139","\u314E"],18:["\u3142","\u3145"]};Object.fromEntries(Object.entries(p2).map(([e,t])=>[t.join(""),c2[Number(e)]]));const m2="word_pair_index_v2",h2="word_pair_index_sig_v2";let Oa=null;function f2(){try{if(typeof localStorage>"u")return null;const e=localStorage.getItem(m2),t=localStorage.getItem(h2);return!e||!t?null:{index:JSON.parse(e),sig:t}}catch{return null}}function C2(){if(Oa)return Oa;const e=f2();return e?(Oa=e.index,e.sig,Oa):null}const Tr=/[ㄱ-ㅎ]/,g2=/[ㅏ-ㅣ]/;function ei(e){e=e.normalize("NFC");for(let t=e.length-1;t>=0;t--){const a=e[t],r=a.charCodeAt(0);if(r>=44032&&r<=55203||Tr.test(a)||g2.test(a))return a}return null}function b2(e){const t=ei(e);if(!t)return"\uAC00";const a=t.charCodeAt(0);return a>=44032&&a<=55203?(a-44032)%28!==0?"\uC774":"\uAC00":Tr.test(t)?"\uC774":"\uAC00"}function y2(e){return`${e}${b2(e)}`}function v2(e){const t=ei(e);if(!t)return"\uB97C";const a=t.charCodeAt(0);return a>=44032&&a<=55203?(a-44032)%28!==0?"\uC744":"\uB97C":Tr.test(t)?"\uC744":"\uB97C"}function x2(e){return`${e}${v2(e)}`}function _2(e,t,a){const r=e.slice(),[s]=r.splice(t,1);return r.splice(a,0,s),r}function fa(e,t=Math.random){const a=e.slice();for(let r=a.length-1;r>0;r--){const s=Math.floor(t()*(r+1));[a[r],a[s]]=[a[s],a[r]]}return a}const w2=()=>{const e="\uC54C \uC218 \uC5C6\uB294 \uC624\uB958",t=typeof St?.t=="function"?St.t("common.unknownError",{defaultValue:e}):void 0;return typeof t=="string"&&t?t:e};function ti(e,t){if(t===void 0&&(t=w2()),e instanceof Error)return e.message||t;if(typeof e=="string")return e||t;if(e&&typeof e=="object"){const a=e;for(const r of[a.message,a.error_description,a.error])if(typeof r=="string"&&r)return r}return t}const k2="__ihab_core_word_pool__";function ni(){return globalThis[k2]??null}const ai=globalThis;function ri(e,t){const a=r=>{};try{const r=t();r&&typeof r.catch=="function"&&r.catch(a)}catch(r){a(r)}}function A2(e){ri("time",()=>ai.__ihabTrainingTimeLogger?.(e))}function B2(e){ri("completion",()=>ai.__ihabTrainingCompletionLogger?.(e))}function Ot(e){return typeof e=="string"?e.trim()||null:typeof e=="number"?String(e):null}function N2(e){for(const t of["correct","isCorrect","heard","judgement"])if(typeof e[t]=="boolean")return e[t];return e.score===1?!0:e.score===0?!1:null}function S2(e){return Array.isArray(e)?e.map((t,a)=>{const r=t??{};return{index:a,itemId:Ot(r.contextCode)??Ot(r.itemId)??Ot(r.itemCode)??Ot(r.id),question:Ot(r.question)??Ot(r.q)??Ot(r.sentence)??Ot(r.text)??Ot(r.prompt)??Ot(r.word)??Ot(r.targetSyllable),answer:Ot(r.answer),selected:Ot(r.selectedText)??Ot(r.selected),correct:N2(r)}}):[]}const Mr=globalThis;async function D2(){try{return await Mr.__ihabNoiseSettingsStore?.load()??null}catch{return null}}function oi(e){const t=a=>{};try{const a=Mr.__ihabNoiseSettingsStore?.save(e);a&&typeof a.catch=="function"&&a.catch(t)}catch(a){t(a)}}function Ha(e){try{Mr.__ihabNoiseSettingsStore?.applied?.(e)}catch{}}async function E2(e){if(typeof document<"u"){const t=document.activeElement;let a=null;try{if(a=document.createElement("textarea"),a.value=e,a.setAttribute("readonly",""),a.style.position="fixed",a.style.top="0",a.style.left="0",a.style.opacity="0",a.style.pointerEvents="none",document.body.appendChild(a),a.focus(),a.select(),a.setSelectionRange(0,e.length),document.execCommand("copy"))return!0}catch{}finally{if(a?.parentNode&&a.parentNode.removeChild(a),t&&t!==document.activeElement&&typeof t.focus=="function"&&t.isConnected)try{t.focus({preventScroll:!0})}catch{}}}try{if(typeof navigator<"u"&&navigator.clipboard&&typeof navigator.clipboard.writeText=="function")return await navigator.clipboard.writeText(e),!0}catch{}return!1}const j2=/^(\d{4}-\d{2}-\d{2})[T ](\d{2}:\d{2})(?::(\d{2})(?:\.(\d+))?)?$/;function si(e){let t;if(e instanceof Date)t=e;else if(typeof e=="string"){const a=e.trim(),r=j2.exec(a);t=new Date(r?`${r[1]}T${r[2]}:${r[3]??"00"}${r[4]?`.${r[4].slice(0,3).padEnd(3,"0")}`:""}+09:00`:a)}else t=new Date(e);return Number.isNaN(t.getTime())?null:t}function Ca(){return $r(new Date)}function Lr(e){return e&&/^\d{4}-\d{2}-\d{2}$/.test(e)?e:Ca()}function Kn(){return M2(Ca())}const T2=540*60*1e3;function ii(e,t,a){return new Date(Date.UTC(e,t,a)-T2)}function M2(e){const[t,a,r]=e.split("-").map(Number);return new Date(t,(a||1)-1,r||1)}function $r(e){if(e==null||e==="")return"";const t=si(e);return t?new Intl.DateTimeFormat("fr-CA",{timeZone:"Asia/Seoul"}).format(t):""}function li(e,t){if(!e)return"";const a=si(e);if(!a)return"";const r=a.getTime(),s=Math.max(0,Math.floor((Date.now()-r)/1e3)),i=Math.floor(s/60),l=Math.floor(i/60),c=Math.floor(l/24),d=Math.floor(c/7),u=Math.floor(c/30),p=Math.floor(c/365);return i<1?t("store.time.justNow","\uBC29\uAE08 \uC804"):i<60?t("store.time.minutesAgo",{n:i}):l<24?t("store.time.hoursAgo",{n:l}):c<7?t("store.time.daysAgo",{n:c}):d<5?t("store.time.weeksAgo",{n:d}):c<365?t("store.time.monthsAgo",{n:Math.min(u,11)}):t("store.time.yearsAgo",{n:p})}function ci(e,t={}){const{sep:a=".",pad:r=!0,trailingDot:s=!1,fallback:i="\u2014"}=t;if(!e)return i;const l=$r(e instanceof Date?e:String(e));if(!l)return i;const[c,d,u]=l.split("-"),p=r?d:String(Number(d)),m=r?u:String(Number(u));return`${c}${a}${p}${a}${m}${s?".":""}`}function Yn(e){if(!e)return e;const t=e.trim();return/^[₩$]/.test(t)?t:/원\s*$/.test(t)?"\u20A9"+t.replace(/\s*원\s*$/,"").trim():t}function ui(e,t){if(!e)return"-";const a=/^(\d{1,2}):(\d{2})$/.exec(e.trim());if(!a)return e;const r=Number(a[1]),s=Number(a[2]),i=a[1].padStart(2,"0");return s===0?t("date.timeH",{h:r,hh:i,mm:a[2]}):t("date.timeHM",{h:r,hh:i,m:s,mm:a[2]})}function Rr(e){return(e??0).toLocaleString("ko-KR")}const L2=[{key:"FOOD",label:"\uC74C\uC2DD",icon:"salad",color:"#FF8A65",subs:[{key:"TRKRFD",label:"\uD55C\uAD6D \uC804\uD1B5\uC74C\uC2DD"},{key:"MDKRFD",label:"\uD55C\uAD6D \uD604\uB300\uC74C\uC2DD"},{key:"WRLDFD",label:"\uC138\uACC4\uC758 \uC74C\uC2DD"},{key:"MTRFRT",label:"\uC2DD\uC7AC\uB8CC\uC640 \uACFC\uC77C"},{key:"GEFDKL",label:"\uC74C\uC2DD \uC0C1\uC2DD"}]},{key:"HLTH",label:"\uAC74\uAC15",icon:"heart",color:"#66BB6A",subs:[{key:"HTETHB",label:"\uAC74\uAC15\uD55C \uC2DD\uC2B5\uAD00"},{key:"DISILL",label:"\uBCD1\uACFC \uC9C8\uD658"},{key:"EXCISE",label:"\uC6B4\uB3D9"},{key:"GEHTKL",label:"\uAC74\uAC15\uC0C1\uC2DD"}]},{key:"WETH",label:"\uB0A0\uC528",icon:"sun-medium",color:"#42A5F5",subs:[{key:"GESSKL",label:"\uACC4\uC808\uC0C1\uC2DD"},{key:"SNWRAN",label:"\uB208\uACFC \uBE44"},{key:"WTHFCT",label:"\uC77C\uAE30\uC608\uBCF4"},{key:"GEWTKL",label:"\uB0A0\uC528\uC0C1\uC2DD"}]},{key:"PRSN",label:"\uC778\uBB3C",icon:"user-round",color:"#AB47BC",subs:[{key:"JODYPS",label:"\uC870\uC120\uC2DC\uB300"},{key:"MDKRPS",label:"\uD55C\uAD6D \uADFC\uD604\uB300"},{key:"THKDPS",label:"\uC0BC\uAD6D\uC2DC\uB300"},{key:"WRLART",label:"\uC138\uACC4\uC758 \uC608\uC220\uAC00"},{key:"WRLPSN",label:"\uC138\uACC4\uC758 \uC778\uBB3C"}]},{key:"KRCT",label:"\uD55C\uAD6D\uBB38\uD654",icon:"bow-arrow",color:"#EC407A",subs:[{key:"KRLANG",label:"\uC6B0\uB9AC\uB9D0"},{key:"TRPLCT",label:"\uC804\uD1B5\uB180\uC774"},{key:"HERITG",label:"\uBB38\uD654\uC7AC"},{key:"EVTFES",label:"\uD589\uC0AC\uC640 \uCD95\uC81C"},{key:"GECTKL",label:"\uC0C1\uC2DD"}]},{key:"STRY",label:"\uC774\uC57C\uAE30",icon:"message-circle",color:"#8D6E63",subs:[{key:"FRYTAL",label:"\uB3D9\uD654"},{key:"AMZING",label:"\uC2E0\uAE30\uD55C \uC774\uC57C\uAE30"},{key:"DAYSTR",label:"\uC77C\uC0C1 \uC18D \uC774\uC57C\uAE30"}]},{key:"LOCA",label:"\uC9C0\uC5ED",icon:"map-pin",color:"#26A69A",subs:[{key:"KRLDMK",label:"\uD55C\uAD6D\uC758 \uBA85\uC18C"},{key:"SELNMK",label:"\uC11C\uC6B8\uC758 \uBA85\uC18C"},{key:"WRDTRB",label:"\uC138\uACC4\uC5EC\uD589"},{key:"NAVIGT",label:"\uAE38 \uCC3E\uAE30"}]},{key:"SOAR",label:"\uC0AC\uD68C\uC640 \uC608\uC220",icon:"landmark",color:"#5C6BC0",subs:[{key:"KRSOCI",label:"\uD55C\uAD6D"},{key:"ECONEW",label:"\uACBD\uC81C\uC640 \uB274\uC2A4"},{key:"GENART",label:"\uC608\uC220"},{key:"GELFKL",label:"\uC0DD\uD65C \uC0C1\uC2DD"}]},{key:"NTSC",label:"\uC790\uC5F0\uACFC \uACFC\uD559",icon:"leaf",color:"#9CCC65",subs:[{key:"ANIMAL",label:"\uB3D9\uBB3C"},{key:"PLANTS",label:"\uC2DD\uBB3C"},{key:"ETHPLT",label:"\uC9C0\uAD6C"},{key:"TOLELC",label:"\uB3C4\uAD6C\uC640 \uC804\uC790\uC81C\uD488"},{key:"GESCKL",label:"\uACFC\uD559\uC0C1\uC2DD"}]},{key:"SPRT",label:"\uC2A4\uD3EC\uCE20",icon:"trophy",color:"#FFCA28",subs:[{key:"INVDSP",label:"\uAC1C\uC778\uACBD\uAE30"},{key:"MARART",label:"\uACA9\uD22C\uAE30"},{key:"TEAMSP",label:"\uB2E8\uCCB4\uACBD\uAE30"},{key:"FOOTBL",label:"\uCD95\uAD6C"},{key:"GESPKL",label:"\uC2A4\uD3EC\uCE20 \uC0C1\uC2DD"}]}],$2=[{key:"LISTEN_IN_NOISE",label:"\uC18C\uC74C \uD558 \uBB38\uC7A5 \uB4E3\uAE30",icon:"party-popper",desc:"\uC18C\uC74C \uD658\uACBD \uC18D \uBB38\uC7A5 \uC774\uD574 \uD6C8\uB828"},{key:"SHORT_STORY",label:"\uC9E7\uC740 \uC774\uC57C\uAE30 \uB4E3\uAE30",icon:"message-square",desc:"\uC9E7\uC740 \uC774\uC57C\uAE30 + 4\uBB38\uC81C"},{key:"LONG_STORY",label:"\uAE34 \uC774\uC57C\uAE30 \uB4E3\uAE30",icon:"message-square-text",desc:"\uAE34 \uC774\uC57C\uAE30 \uC2EC\uD654 \uD6C8\uB828"},{key:"ORDERING_SENTENCE",label:"\uBB38\uC7A5 \uC21C\uC11C\uD654 \uD558\uAE30",icon:"align-start-vertical",desc:"\uC21C\uC11C \uBC30\uC5F4 \uD6C8\uB828"}];function di(){return L2}function R2(){return $2}const P2=[],I2=[],F2=[],O2=[];function H2(){return{LISTEN_IN_NOISE:P2,SHORT_STORY:I2,LONG_STORY:F2,ORDERING_SENTENCE:O2}}const z2=[{key:"LISTEN_IN_NOISE",label:"\uC18C\uC74C \uD558 \uBB38\uC7A5 \uB4E3\uAE30",icon:"party-popper",desc:"\uB2E4\uC591\uD55C \uC18C\uC74C \uD658\uACBD\uC5D0\uC11C \uBB38\uC7A5 \uCCAD\uB825\uC744 \uD6C8\uB828\uD569\uB2C8\uB2E4."},{key:"SHORT_STORY",label:"\uC9E7\uC740 \uC774\uC57C\uAE30 \uB4E3\uAE30",icon:"message-square",desc:"\uC9E7\uC740 \uC774\uC57C\uAE30\uB97C \uB4E3\uACE0 \uAE30\uC5B5\uD558\uC5EC \uBB38\uC81C\uB97C \uD480\uC5B4\uBD05\uB2C8\uB2E4."},{key:"LONG_STORY",label:"\uAE34 \uC774\uC57C\uAE30 \uB4E3\uAE30",icon:"message-square-text",desc:"\uAE34 \uC774\uC57C\uAE30\uB97C \uB4E3\uACE0 \uAE30\uC5B5\uD558\uC5EC \uB2E4\uC218\uC758 \uBB38\uC81C\uB97C \uD480\uC5B4\uBD05\uB2C8\uB2E4."},{key:"ORDERING_SENTENCE",label:"\uBB38\uC7A5 \uC21C\uC11C\uD654 \uD558\uAE30",icon:"align-start-vertical",desc:"\uC5EC\uB7EC\uAC1C\uC758 \uC9E7\uC740 \uBB38\uC7A5\uC744 \uB4E3\uACE0 \uAE30\uC5B5\uD558\uC5EC \uADF8 \uC21C\uC11C\uC5D0 \uB9DE\uAC8C \uBC30\uC5F4\uD569\uB2C8\uB2E4."}],pi={LISTEN_IN_NOISE:"listenInNoise",SHORT_STORY:"shortStory",LONG_STORY:"longStory",ORDERING_SENTENCE:"orderingSentence"};function V2(e){return z2.map(t=>{const a=pi[t.key];return a?{...t,label:e(`trainingType.${a}.title`),desc:e(`trainingType.${a}.desc`)}:t})}let za=null,mi=null,hi=null;function W2(){const e=ni();if(e&&e.entries.length>0){const t=C2();if(za&&mi===e&&hi===t)return za;const a=new Set,r=[];for(const s of e.entries)!s.word||a.has(s.word)||(a.add(s.word),r.push({w:s.word,s:s.syllables,p:t?.[s.word]?[...t[s.word].cho??[],...t[s.word].jung??[],...t[s.word].jong??[]]:[],pron:s.pronunciation||s.word,grade:s.grade}));return za=r,mi=e,hi=t,za}return[]}new Proxy([],{get(e,t){const a=W2(),r=a[t];return typeof r=="function"?r.bind(a):r}});const q2="0.193.0";function U2(e){if(e.includes("\\")&&e.includes("("))return!0;if(!/url\s*\(/i.test(e))return!1;const t=e.replace(/url\(\s*(['"]?)#[^)'"]*\1\s*\)/gi,"");return/url\s*\(/i.test(t)}function G2(e){if(typeof window>"u")return"";const t=(a,r)=>{typeof r.attrValue=="string"&&U2(r.attrValue)&&(r.keepAttr=!1)};kr.addHook("uponSanitizeAttribute",t);try{return kr.sanitize(e,{USE_PROFILES:{svg:!0,svgFilters:!0},FORBID_TAGS:["script","use","style"],FORBID_ATTR:["xlink:href","href"]})}finally{kr.removeHook("uponSanitizeAttribute",t)}}function K2(e){const[t,a]=o.useState(null),[r,s]=o.useState(null),[i,l]=o.useState(null),[c,d]=o.useState(null);return o.useEffect(()=>{if(!e||typeof e!="string"||!e.endsWith(".svg")){a(null),s(null),l(null);return}const u=e.split("/").pop();let p=e;u&&(e.startsWith("/")?p=Ar(e):/^(Logo|Symbol)/i.test(u)?p=Ar(`logo/${u}`):(/^https?:\/\//i.test(e)||e.startsWith("data:"),p=e)),s(null),l(null),a(p)},[e]),o.useEffect(()=>{if(!t)return;let u=!1;async function p(){try{let m=await fetch(t);m.ok||(m=await fetch(t));const h=m.headers.get("content-type")||"";if(u)return;if(h.includes("svg")){s("mask");return}if(h.startsWith("image/")){s("img");return}const b=await fetch(t);if(!b.ok)throw new Error("not ok");const v=await b.text();if(u)return;if(/^\s*<svg[\s>]/i.test(v)){const C=G2(v);if(!C){s("none");return}l(C),s("inline");return}s("none")}catch{u||s("none")}}return p(),()=>{u=!0}},[t]),o.useEffect(()=>{let u=!1,p=null;return r==="mask"&&t&&fetch(t).then(m=>{if(!m.ok)throw new Error("fetch failed");return m.blob()}).then(m=>{u||(p=URL.createObjectURL(m),d(p))}).catch(()=>{u||s("img")}),()=>{u=!0,p&&URL.revokeObjectURL(p),d(null)}},[r,t]),{iconToUse:t,mode:r,svgText:i,blobUrl:c}}function Ke(e){const{icon:t,label:a,className:r,imgClassName:s,maskClassName:i,svgClassName:l,wrapperStyle:c,size:d}=e||{},u=r??"iconRenderer-icon",p=s??"iconRenderer-icon-image",m=i??"iconRenderer-icon-mask",h=l??"iconRenderer-icon-svg",b=typeof t=="string"?t:null,v=u0(b),{iconToUse:C,mode:w,svgText:f,blobUrl:y}=K2(b),x=(N,A={})=>n.jsx("span",{className:u,style:c,...A,children:N}),g=typeof d=="number"?{width:d,height:d,objectFit:"contain"}:null,k=(N,A={})=>n.jsx("img",{src:N,alt:typeof a=="string"?a:typeof a=="number"?String(a):"",className:p,...A,style:g?{...A.style,...g}:A.style});if(!t)return null;if(typeof t!="string")return x(t);if(t==="none")return x(n.jsx("span",{className:h,dangerouslySetInnerHTML:{__html:'<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" aria-hidden="true"></svg>'}}),{"aria-hidden":"true"});if(v)try{return x(o.createElement(v,{className:h,size:typeof d=="number"?d:20}),{"aria-hidden":"true"})}catch{}if(C&&C.endsWith(".svg")){if(w==="mask"){const N={"--icon-url":y?`url(${y})`:`url(${C})`,...typeof d=="number"?{"--icon-size":`${d}px`}:null};return x(n.jsx("span",{className:m,style:N}),{"aria-hidden":"true"})}return w==="img"?x(k(C,{onError:N=>{N.currentTarget.onerror=null,N.currentTarget.style.display="none"}}),{"aria-hidden":"true"}):w==="inline"?x(n.jsx("span",{className:h,dangerouslySetInnerHTML:f?{__html:f}:void 0}),{"aria-hidden":"true"}):x(null,{"aria-hidden":"true"})}if(t.startsWith("/")||t.includes("/assets/")||t.match(/\.(png|jpg|jpeg|webp|gif)$/i))return k(Ar(t),{style:c,onError:N=>{N.currentTarget.onerror=null,N.currentTarget.style.display="none"}});const _=typeof d=="number"?d:20,B=`<svg width="${_}" height="${_}" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><rect x="3" y="3" width="18" height="18" rx="2" ry="2" style="fill:none;stroke:currentColor;stroke-width:2"/></svg>`;return x(n.jsx("span",{className:h,dangerouslySetInnerHTML:{__html:B}}),{"aria-hidden":"true"})}function fi(e){const[t,a]=o.useState(!1),r=o.useRef(!1),s=o.useRef(!0);o.useEffect(()=>(s.current=!0,()=>{s.current=!1}),[]);const i=o.useCallback(()=>{if(!e||r.current)return;const l=e();if(l&&typeof l.then=="function"){r.current=!0,a(!0);const c=()=>{r.current=!1,s.current&&a(!1)};l.then(c,c)}},[e]);return{pending:t,press:i}}function Y2({icon:e,title:t,message:a,action:r,className:s}){const{pending:i,press:l}=fi(r?.onClick);return n.jsxs("div",{className:Se("empty-state",s),children:[e&&n.jsx(Ke,{icon:e,size:48,className:"empty-state__icon"}),t&&n.jsx("p",{className:"empty-state__title h4",children:t}),a&&n.jsx("p",{className:"empty-state__message body-3",children:a}),r&&n.jsxs("button",{type:"button",className:"empty-state__action button button40 button40--bar button--variant-main button--align-center button--shape-rounded",onClick:l,disabled:i,"aria-busy":i||void 0,children:[r.icon&&n.jsx(Ke,{icon:r.icon,className:"button__icon"}),n.jsx("span",{className:"button__label button-1",children:r.label})]})]})}function Z2({message:e,hint:t,icon:a="triangle-alert",onRetry:r,retryLabel:s,className:i}){const{t:l}=ve.useTranslation(),{pending:c,press:d}=fi(r);return n.jsxs("div",{className:Se("empty-state","error-state",i),role:"alert",children:[n.jsx(Ke,{icon:a,size:48,className:"empty-state__icon error-state__icon"}),n.jsx("p",{className:"empty-state__message body-3",children:e??l("common.errorState.message",{defaultValue:"\uBD88\uB7EC\uC624\uC9C0 \uBABB\uD588\uC2B5\uB2C8\uB2E4."})}),t&&n.jsx("p",{className:"error-state__hint caption-1",children:t}),r&&n.jsxs("button",{type:"button",className:"empty-state__action button button40 button40--bar button--variant-main button--align-center button--shape-rounded",onClick:d,disabled:c,"aria-busy":c||void 0,children:[n.jsx(Ke,{icon:"rotate-cw",className:"button__icon"}),n.jsx("span",{className:"button__label button-1",children:s??l("common.errorState.retry",{defaultValue:"\uB2E4\uC2DC \uC2DC\uB3C4"})})]})]})}function X2({icon:e,title:t,description:a,cta:r,tone:s="main",disabled:i=!1,onClick:l,className:c=""}){const d=o.useId(),u=`${d}-title`,p=`${d}-desc`,m=`${d}-cta`,h=()=>{i||l?.()};return n.jsx("section",{role:"button",tabIndex:i?-1:0,"aria-disabled":i||void 0,"aria-labelledby":u,"aria-describedby":`${p} ${m}`,onClick:h,onKeyDown:b=>{(b.key==="Enter"||b.key===" ")&&(b.preventDefault(),h())},className:Se("action-card",`action-card--${s}`,i&&"action-card--disabled",c),children:n.jsxs("div",{className:"action-card__body",children:[n.jsx("span",{"aria-hidden":!0,className:"action-card__chip",children:n.jsx(Ke,{icon:e,size:34})}),n.jsxs("div",{className:"action-card__text",children:[n.jsx("h2",{id:u,className:"action-card__title",children:t}),n.jsx("p",{id:p,className:"action-card__desc",children:a})]}),n.jsxs("div",{className:"action-card__cta",children:[n.jsx("span",{id:m,children:r}),n.jsx("span",{"aria-hidden":!0,className:"action-card__arrow",children:n.jsx(Ke,{icon:"arrow-right",size:18})})]})]})})}function J2({as:e="div",className:t="",children:a,storage:r,...s}){r&&Y0({resolveUrl:r.resolveUrl,download:r.download??(()=>Promise.reject(new Error("[ihabdevteam-core] CoreScope: download resolver\uAC00 \uC124\uC815\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4."))),exists:r.exists,resolvePath:r.resolvePath,noiseBaseUrl:r.noiseBaseUrl,noiseFileGain:r.noiseFileGain});const i=Se("ihabdevteam-core-scope",t);return n.jsx(e,{className:i,...s,children:a})}function Pr(e,t=!0){o.useEffect(()=>{if(!t)return;const a=e.current;if(!a)return;const r=s=>{if(s.key!=="Tab")return;const i=Array.from(a.querySelectorAll(gn)).filter(p=>!p.closest('[aria-hidden="true"]'));if(!i.length){s.preventDefault();return}const l=i[0],c=i[i.length-1],d=document.activeElement,u=d===a;s.shiftKey&&(d===l||u)?(s.preventDefault(),c.focus()):!s.shiftKey&&d===c&&(s.preventDefault(),l.focus())};return a.addEventListener("keydown",r),()=>a.removeEventListener("keydown",r)},[e,t])}const gn='a[href], button:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex="-1"])',Ir=new WeakMap;function Fr(e,t){e&&Ir.set(e,t)}function Or(e){let t=e;for(let a=0;t&&!t.isConnected&&a<10;a++){let r=t;for(;r&&!Ir.has(r);)r=r.parentElement;if(!r)return t;t=Ir.get(r)??null}return t}function Ci(e){return!(!e||!e.isConnected||e===document.body||typeof e.focus!="function"||e.disabled||e instanceof HTMLInputElement&&e.type==="hidden"||e.closest('[inert],[aria-hidden="true"],[hidden]'))}function Va(e,t,a){const r=e?.isConnected?e:a?.isConnected?a:null;if(Ci(t)&&!(e&&e.contains(t)))return t.focus(),t;if(!r)return null;const s=Array.from(document.querySelectorAll(gn)).filter(d=>!(e&&e.contains(d))&&Ci(d));let i=null,l=null;for(const d of s)r.compareDocumentPosition(d)&Node.DOCUMENT_POSITION_PRECEDING?i=d:l||(l=d);const c=i??l;return c?.focus(),c}function Q2({title:e="",lines:t=[],notices:a=null,children:r,variant:s="default",dismissible:i=!1,className:l=""}){const{t:c}=ve.useTranslation(),[d,u]=o.useState(!1),p=o.useRef(null),m=o.useCallback(()=>{const C=p.current;C&&C.contains(document.activeElement)&&Va(C),u(!0)},[]);if(d)return null;const h=`notice-box notice-box--${s} body-2 ${l}`.trim(),b=i&&n.jsx("button",{type:"button",className:"notice-box__dismiss",onClick:m,"aria-label":c("common.close","\uB2EB\uAE30"),children:"\xD7"});if(a&&Array.isArray(a)&&a.length)return n.jsxs("div",{className:h,role:"note",children:[a.map((C,w)=>n.jsxs("div",{className:"notice-box__inner",children:[C.title?n.jsx("span",{className:"notice-box__title body-3",children:C.title}):null,n.jsx("div",{className:"notice-box__body",children:C.lines&&C.lines.length?n.jsx("div",{children:C.lines.map((f,y)=>n.jsx("span",{className:"notice-box__line body-3",children:f},y))}):C.children??null})]},w)),b]});const v=e||t.length?n.jsxs("div",{className:"notice-box__inner",children:[e?n.jsx("span",{className:"notice-box__title body-1",children:e}):null,n.jsx("div",{className:"notice-box__body",children:t.length?n.jsx("ul",{children:t.map((C,w)=>n.jsx("li",{className:"notice-box__line",children:C},w))}):r})]}):n.jsx("div",{className:"notice-box__inner",children:r});return n.jsxs("div",{ref:p,className:h,role:"note",children:[v,b]})}const Zn=[];let Wa=!1;function gi(e){if(e.key!=="Escape"||e.defaultPrevented||e.isComposing||e.keyCode===229)return;const t=Zn[Zn.length-1];t&&(e.stopPropagation(),t())}function In(e){return Zn.push(e),!Wa&&typeof document<"u"&&(document.addEventListener("keydown",gi),Wa=!0),()=>{const t=Zn.lastIndexOf(e);t>=0&&Zn.splice(t,1),Zn.length===0&&Wa&&typeof document<"u"&&(document.removeEventListener("keydown",gi),Wa=!1)}}const bi=o.createContext(null);function ef(e){return/max-width:\s*7[0-9][0-9]px/.test(e)}const yi=e=>typeof window>"u"||!window.matchMedia?!1:window.matchMedia(e).matches;function tf(e){const t=o.useCallback(a=>{if(typeof window>"u"||!window.matchMedia)return()=>{};const r=window.matchMedia(e);return r.addEventListener?r.addEventListener("change",a):r.addListener&&r.addListener(a),()=>{r.removeEventListener?r.removeEventListener("change",a):r.removeListener&&r.removeListener(a)}},[e]);return Jo.useSyncExternalStore(t,()=>yi(e),()=>!1)}function nf(e){const[t,a]=o.useState(yi(e));return o.useEffect(()=>{if(typeof window>"u"||!window.matchMedia)return;const r=window.matchMedia(e),s=l=>a(l.matches),i=r;return i.addEventListener?i.addEventListener("change",s):i.addListener&&i.addListener(s),a(r.matches),()=>{i.removeEventListener?i.removeEventListener("change",s):i.removeListener&&i.removeListener(s)}},[e]),t}const af=typeof Jo.useSyncExternalStore=="function"?tf:nf;function Yt(e){const t=o.useContext(bi),a=af(e);return t&&typeof t.mobile=="boolean"&&ef(e)?t.mobile:a}const rf="(prefers-reduced-motion: reduce)";function Hr(){return Yt(rf)}function an(e){const{anchorRect:t,anchorEl:a,offset:r=20,edgeMargin:s=20,onClose:i,closeOnOutsideClick:l=!0,className:c="",role:d="dialog",ariaLabel:u="",children:p,backdrop:m=!1,isMobilePopup:h=!1,useBorder:b=!0,header:v}=e||{},C=o.useRef(null),[w,f]=o.useState({position:"fixed",left:0,top:-9999}),[y,x]=o.useState(!1),[g,k]=o.useState("bottom"),[_,B]=o.useState(!1),[N,A]=o.useState(!1),S=!t&&!a,O=o.useCallback((X=!1)=>{if(N&&h)return;const U=a?a.getBoundingClientRect():t;if(!U||!C.current)return;const W=C.current,{offsetWidth:Y,offsetHeight:L}=W,D=window.innerWidth,P=window.innerHeight,I=D-U.right,F=U.left,$=U.top,J=P-U.bottom;let Z=0,K=0,ae="top";if($>=L+r)ae="top",K=U.top-r-L,Z=U.left+U.width/2-Y/2;else if(J>=L+r)ae="bottom",K=U.bottom+r,Z=U.left+U.width/2-Y/2;else if(I>=Y+r)ae="right",Z=U.right+r,K=U.top+U.height/2-L/2;else if(F>=Y+r)ae="left",Z=U.left-r-Y,K=U.top+U.height/2-L/2;else{const z=Math.max($,J,I,F);z===$?(ae="top",K=U.top-r-L,Z=U.left+U.width/2-Y/2):z===J?(ae="bottom",K=U.bottom+r,Z=U.left+U.width/2-Y/2):z===I?(ae="right",Z=U.right+r,K=U.top+U.height/2-L/2):(ae="left",Z=U.left-r-Y,K=U.top+U.height/2-L/2)}const ye=Number.isFinite(Number(s))?Number(s):8;Z=Math.min(Math.max(Z,ye),D-Y-ye),K=Math.min(Math.max(K,ye),P-L-ye);const oe=Math.round(Z),le=Math.round(K);X&&C.current?(C.current.style.left=`${oe}px`,C.current.style.top=`${le}px`,C.current.dataset.placement=ae):(k(ae||g),f({position:"fixed",left:oe,top:le}),B(!0))},[N,h,a,t,r,s,g]);o.useLayoutEffect(()=>{if(S)return;if(N&&h){f({position:"fixed",left:"50%",top:"50%",transform:"translate(-50%, -50%)",width:"calc(100% - 40px)",maxWidth:"calc(100% - 40px)"}),B(!0);return}O();const X=requestAnimationFrame(()=>O());return()=>cancelAnimationFrame(X)},[t,a,r,p,s,S,N,h,O]),o.useEffect(()=>{if(S||N&&h||!C.current||typeof ResizeObserver>"u")return;const X=new ResizeObserver(()=>{t&&O()});return X.observe(C.current),()=>X.disconnect()},[t,p,s,S,N,h,O]),o.useEffect(()=>{if(S||N&&h)return;const X=()=>O(!0),U=W=>{if(!a&&i){const Y=W.target;if(Y&&C.current&&C.current.contains(Y))return;try{if(Y&&Y.closest&&Y.closest("[data-tooltip-ignore]"))return}catch{}M.current(!0);return}X()};return window.addEventListener("resize",X),document.addEventListener("scroll",U,{passive:!0,capture:!0}),()=>{window.removeEventListener("resize",X),document.removeEventListener("scroll",U,{capture:!0})}},[t,a,i,r,p,s,S,N,h,O]),o.useEffect(()=>{if(typeof window>"u"||!window.matchMedia)return;const X=window.matchMedia("(max-width: 768px)"),U=()=>A(!!X.matches);U();try{X.addEventListener?X.addEventListener("change",U):X.addListener(U)}catch{try{X.addListener(U)}catch{}}return()=>{try{X.removeEventListener?X.removeEventListener("change",U):X.removeListener(U)}catch{}}},[]);const H=o.useRef(!1),j=o.useRef(null),q=Hr(),E=o.useCallback((X=!1)=>{if(i&&!(y||H.current)){if(H.current=!0,X){x(!0);try{i&&i()}catch{H.current=!1,x(!1)}return}x(!0),j.current=setTimeout(()=>{j.current=null;try{i&&i()}catch{H.current=!1,x(!1)}},q?0:200)}},[y,i,x,q]);o.useEffect(()=>()=>{j.current&&clearTimeout(j.current)},[]),o.useEffect(()=>{if(S)return;const X=Y=>{const L=C.current;if(!L)return;const D=Y.target;if(D&&!L.contains(D)){try{if(D.closest&&D.closest("[data-tooltip-ignore]"))return}catch{}l&&E(!0)}},U=Y=>{const L=C.current;if(!L)return;const D=Y.target;if(D&&!L.contains(D)){try{if(D.closest&&D.closest("[data-tooltip-ignore]"))return}catch{}l&&E(!0)}},W=Y=>{if(Y.key==="Tab"){const L=C.current;if(!L)return;const D=L.querySelectorAll(gn);if(!D||D.length===0)return;const P=D[0],I=D[D.length-1],F=document.activeElement;Y.shiftKey?F===P&&(Y.preventDefault(),I.focus()):F===I&&(Y.preventDefault(),P.focus())}};return document.addEventListener("pointerdown",X,!0),document.addEventListener("click",U,!0),document.addEventListener("keydown",W),()=>{document.removeEventListener("pointerdown",X,!0),document.removeEventListener("click",U,!0),document.removeEventListener("keydown",W)}},[i,l,E,S]);const M=o.useRef(E);o.useEffect(()=>{M.current=E});const R=!!i;o.useEffect(()=>{if(!(S||!R))return In(()=>M.current())},[S,R]),o.useEffect(()=>{const X=()=>{E(!0)};return typeof document<"u"&&document.addEventListener("speechear-close-tooltips",X),()=>{typeof document<"u"&&document.removeEventListener("speechear-close-tooltips",X)}},[E]);const G=n.jsxs("div",{ref:C,className:`tooltip-content ${S?"tooltip-content--inline":""} ${b?"tooltip-content--bordered":""} ${y?"is-closing":""} ${c} ${N&&h?"is-mobile":""}`,role:d,"aria-label":u||void 0,style:S?{}:{...w,visibility:_?"visible":"hidden"},tabIndex:-1,"data-placement":g,"data-left":S?"":w.left,"data-top":S?"":w.top,"data-anchor-left":t?Math.round(t.left):"","data-anchor-top":t?Math.round(t.top):"","data-anchor-width":t?Math.round(t.width):"","data-anchor-height":t?Math.round(t.height):"",children:[v!=null&&n.jsx("div",{className:"tooltip-content__header h5",children:v}),p]});if(S||typeof document>"u")return G;if(m||N&&h){const X=n.jsxs("div",{className:"tooltip-portal",children:[n.jsx("div",{className:"tooltip-backdrop",onClick:()=>{l&&E(!0)}}),G]});return Ut.createPortal(X,document.body)}return Ut.createPortal(G,document.body)}function bn(e){const{anchorRect:t,text:a,offset:r=8,onClose:s,className:i="",ariaLabel:l}=e||{};return a?n.jsx(an,{anchorRect:t,offset:r,onClose:s,closeOnOutsideClick:!1,className:`tooltip-info ${i}`,ariaLabel:l||a,children:n.jsx("div",{className:"tooltip-info__content body-3",children:a})}):null}function Fn(e){const{t}=ve.useTranslation(),{anchorRect:a,title:r,items:s,activeIndex:i=-1,showIndex:l=!0,onClose:c,offset:d=12,closeOnOutsideClick:u=!0}=e||{},p=(Array.isArray(s)?s:s?[s]:[]).map(m=>typeof m=="string"?{text:m}:m);return!p.length&&!r?null:n.jsx(an,{anchorRect:a,offset:d,onClose:c,closeOnOutsideClick:u,useBorder:!1,className:"tooltip-description",ariaLabel:r||t("tooltip.description","\uC124\uBA85"),children:n.jsxs("div",{className:"tooltip-description__box",children:[r&&n.jsx("span",{className:"tooltip-description__title body-2",children:r}),n.jsx("ol",{className:"tooltip-description__items",children:p.map((m,h)=>n.jsxs("li",{className:`tooltip-description__item body-3${h===i?" tooltip-description__item--active":""}`,children:[l&&p.length>1&&n.jsxs("span",{className:"tooltip-description__index button-1",children:[h+1,"."]}),m.color&&n.jsx("span",{className:"tooltip-description__dot",style:{background:m.color},"aria-hidden":"true"}),n.jsx("span",{children:m.text})]},h))})]})})}function ga(e){const t=o.useRef(e);return o.useEffect(()=>{t.current=e}),t}let zr=0,vi=!1;function xi(){vi||typeof document>"u"||(vi=!0,document.addEventListener("pointerdown",e=>{e.pointerType==="touch"&&(zr=Date.now())},!0),document.addEventListener("touchstart",()=>{zr=Date.now()},{capture:!0,passive:!0}))}xi();function Xn(e){return!!e&&e.pointerType==="touch"}function Jn(e=1e3){return xi(),Date.now()-zr<e}function Vr(e,t,a,{enabled:r=!0,fallbackOnParent:s=!1}={}){const i=ga(e),l=ga(t),c=o.useRef(null),d=o.useRef(0);o.useEffect(()=>{if(!r||typeof document>"u")return;const p=m=>{const h=m,b=m.target,v=a.current,C=!!(b&&v&&v.contains(b));if(h.pointerType!=="touch"){C&&(c.current=null);return}if(C){c.current=i.current;return}c.current=null,i.current&&!(b&&b.closest?.(".tooltip-content"))&&l.current(!1,v)};return document.addEventListener("pointerdown",p,!0),()=>document.removeEventListener("pointerdown",p,!0)},[r,a,i,l]);const u=o.useCallback(p=>{const m=c.current;return m===null?!1:(c.current=null,d.current=Date.now(),l.current(!m,p??a.current),!0)},[a,l]);return o.useEffect(()=>{if(!r||!s)return;const p=a.current,m=p?.parentElement;if(!p||!m)return;let h=null;const b=w=>{const f=w.changedTouches?.[0];if(!f)return!1;const y=p.getBoundingClientRect();return f.clientX>=y.left&&f.clientX<=y.right&&f.clientY>=y.top&&f.clientY<=y.bottom},v=w=>{h=b(w)?i.current:null},C=w=>{const f=h;h=null,!(f===null||Date.now()-d.current<700||!b(w))&&(c.current=null,d.current=Date.now(),l.current(!f,p))};return m.addEventListener("touchstart",v,{passive:!0}),m.addEventListener("touchend",C),()=>{m.removeEventListener("touchstart",v),m.removeEventListener("touchend",C)}},[r,s,a,i,l]),{touchPress:u}}function of(e,t){const{size:a=48,type:r,htmlType:s,href:i,target:l,rel:c,icon:d,rightIcon:u,label:p,count:m,subLabel:h,children:b,ariaLabel:v,variant:C="default",align:w="center",nowrap:f=!1,selected:y,toggleable:x=!1,ariaExpanded:g,ariaControls:k,disabled:_=!1,useLabel:B=!0,useBorder:N=!0,useBG:A=!0,useDisabledCovered:S=!1,useDisabledInvisible:O=!1,width:H,minWidth:j,onClick:q,onDisabledClick:E,showTooltipInfo:M=!1,tooltipInfoText:R=null,tooltipDescription:G=null,tooltipOnly:X=!1,iconSize:U="medium",iconColor:W,shape:Y="rounded",color:L,className:D,...P}=e,I=typeof a=="string"&&isNaN(Number(a))?a.toLowerCase():String(Number(a)||48),F=I.match(/^\d+$/)?`button${I}`:`button-${I}`,$=Number(a),J=!isNaN($)&&$<40?"button-2":"button-1",Z=p??b,K=_||!!P.disabled,ae=K?S?"disabled-covered":O?"disabled-invisibled":"disabled":C,ye=ae?`button--variant-${ae}`:"",oe=w?`button--align-${w}`:"",le=f?"button--nowrap":"",z=Y?`button--shape-${Y}`:"",re=typeof W=="string"&&W.startsWith("--")?`var(${W})`:W,pe={...H?{width:typeof H=="number"?`${H}px`:H}:{},...j?{minWidth:typeof j=="number"?`${j}px`:j}:{},...N?{}:{"--button-border":K?"0":"1px solid transparent"},...re?{"--button-icon-color":re}:{},...L?{"--color-main":L}:{}},_e=B===!1?"":Z,be=Array.isArray(_e)?_e.length>0:!!_e,Ne=!!u,fe=r??(be||d||Ne?"bar":"dot"),xe=`${F}--${fe}`,Ee=o.useRef(null),Oe=o.useRef(t);Oe.current=t;const $e=o.useCallback(Ie=>{Ee.current=Ie;const rt=Oe.current;typeof rt=="function"?rt(Ie):rt&&(rt.current=Ie)},[]),ue=o.useRef(K),[Ae,Le]=o.useState(!!y),[Te,ne]=o.useState(!1),[ie,ge]=o.useState(null),he=o.useCallback(()=>ne(!1),[]),[Ge,Ue]=o.useState(!1),Ye=o.useId();o.useEffect(()=>{typeof y=="boolean"&&Le(y)},[y]),o.useEffect(()=>{if(ue.current&&!K&&Ee.current){const Ie=Ee.current;let rt=!1;try{rt=Ie.matches(":focus:not(:focus-visible)")}catch{rt=!1}rt&&Ie.blur(),Ie.style.pointerEvents="none";const bt=requestAnimationFrame(()=>{requestAnimationFrame(()=>{Ee.current&&(Ee.current.style.pointerEvents="")})});return()=>cancelAnimationFrame(bt)}ue.current=K},[K]);const Ze=typeof y=="boolean"?!!y:Ae,Xe=typeof g=="boolean"?void 0:x||typeof y=="boolean"?Ze?"true":"false":P["aria-pressed"],ze=Se("button",F,xe,ye,oe,le,z,Ze?"is-selected":null,A?null:"button--no-bg",X?"button--tooltip-only":null,D),Re=`button__icon button__icon--${U}`,Ve=Array.isArray(h)?h:h!==void 0?[h]:[],ot=()=>{if(Array.isArray(_e))return _e.map((rt,bt)=>{const Vt=Ve[bt];return n.jsxs("span",{className:`button__label-text${Vt!==void 0?" button__label-text--has-sub":""}`,children:[rt,Vt!==void 0&&n.jsx("span",{className:"button__sub-label-text caption-1",children:Vt})]},bt)});const Ie=h!==void 0;return n.jsxs("span",{className:`button__label-text${Ie?" button__label-text--has-sub":""}`,children:[_e,m!=null&&n.jsx("span",{className:"button__count",children:m}),Ie&&n.jsx("span",{className:"button__sub-label-text caption-1",children:h})]})},Ct=Ie=>{typeof y!="boolean"&&!x&&Le(!1),Ie.currentTarget.blur()},zt=Ie=>{K||(typeof P.onMouseLeave=="function"&&P.onMouseLeave(Ie),Ct(Ie))},gt=Ie=>{if(X&&et&<.touchPress(Ie.currentTarget),K){et&<.touchPress(Ie.currentTarget),Ie.preventDefault(),E?.(Ie);return}typeof y!="boolean"&&x&&Le(rt=>!rt),q?.(Ie)},nt=o.useCallback(()=>{(M||G)&&(ne(!0),ge(Ee.current?.getBoundingClientRect()??null))},[M,G]),Je=o.useCallback(()=>{(M||G)&&(ne(!1),ge(null))},[M,G]),et=!!(M||G),lt=Vr(Te,Ie=>{Ie?nt():Je()},Ee,{enabled:et&&(K||X),fallbackOnParent:et&&K}),We={...P};delete We.disabled,delete We.className,delete We.faded,delete We.useFaded,delete We.loading,delete We.onMouseLeave,delete We.onPointerEnter,delete We.onPointerLeave,delete We.onPointerUp,delete We.onFocus,delete We.onBlur,K&&(Object.keys(We).forEach(Ie=>{/^on[A-Z]/.test(Ie)&&typeof We[Ie]=="function"&&delete We[Ie]}),We["aria-disabled"]="true");const ft=(typeof M=="string"?M:null)??(typeof R=="string"?R:null)??(typeof v=="string"?v:null)??(typeof Z=="string"?Z:null)??void 0,qe=typeof v=="string"?v:typeof Z=="string"?Z:ft,pt=G?[G.title,...G.items??[]].filter(Boolean).join(". "):M&&ft&&ft!==qe?ft:"",Et=[typeof P["aria-describedby"]=="string"?P["aria-describedby"]:void 0,pt?Ye:null].filter(Boolean).join(" ")||void 0,kt=(Ie,rt)=>n.jsx(Ke,{icon:Ie,label:rt??qe,className:Re,imgClassName:"button__icon-img",maskClassName:"button__icon-mask",svgClassName:"button__icon-svg"}),_t=()=>fe==="dot"?n.jsxs(n.Fragment,{children:[kt(d),be&&n.jsx("span",{className:`button__label ${J}`,children:ot()})]}):w==="center"&&d?n.jsxs(n.Fragment,{children:[n.jsxs("span",{className:"button__center-group",children:[n.jsx("span",{className:"button__left",children:kt(d)}),be&&n.jsx("span",{className:`button__label ${J}`,children:ot()})]}),Ne&&n.jsx("span",{className:"button__right",children:kt(u)})]}):n.jsxs(n.Fragment,{children:[d&&n.jsx("span",{className:"button__left",children:kt(d,v??Z)}),be&&n.jsx("span",{className:`button__label ${J}`,children:ot()}),Ne&&n.jsx("span",{className:"button__right",children:kt(u)})]}),st=!!i&&!K;return n.jsxs(n.Fragment,{children:[n.jsxs(st?"a":"button",{...We,ref:$e,...st?{href:i,target:l,rel:c??(l==="_blank"?"noreferrer":void 0)}:{type:s,disabled:K&&!E&&!Ge},className:ze,"aria-pressed":Xe,"aria-expanded":typeof g=="boolean"?g:P["aria-expanded"],"aria-controls":k??P["aria-controls"],"aria-label":qe,"aria-disabled":K&&(st||E||Ge)?!0:void 0,"aria-describedby":Et,style:pe,onClick:gt,onMouseLeave:zt,onPointerEnter:Ie=>{Xn(Ie)||nt(),!K&&typeof P.onPointerEnter=="function"&&P.onPointerEnter(Ie)},onPointerLeave:Ie=>{Xn(Ie)||Je(),!K&&typeof P.onPointerLeave=="function"&&P.onPointerLeave(Ie)},onPointerUp:Ie=>{K&&et&<.touchPress(Ie.currentTarget),!K&&typeof P.onPointerUp=="function"&&P.onPointerUp(Ie)},onFocus:Ie=>{Ue(!0),Jn()||nt(),!K&&typeof P.onFocus=="function"&&P.onFocus(Ie)},onBlur:Ie=>{Ue(!1),K||Ct(Ie),Je(),!K&&typeof P.onBlur=="function"&&P.onBlur(Ie)},children:[_t(),pt?n.jsx("span",{id:Ye,hidden:!0,"aria-label":pt}):null]}),Te&&G?n.jsx(Fn,{anchorRect:ie,title:G.title,items:G.items,onClose:he}):Te&&ft?n.jsx(bn,{anchorRect:ie,text:ft,onClose:he}):null]})}const ce=o.forwardRef(of);ce.displayName="Button";var sf={statusFilter:"\uC0C1\uD0DC \uD544\uD130",pageSizeSelect:"\uD398\uC774\uC9C0\uB2F9 \uD45C\uC2DC \uAC1C\uC218",selectedCount:"{{count}}\uAC1C \uC120\uD0DD\uB428",cancel:"\uCDE8\uC18C",info:"\uC124\uBA85",errorState:{message:"\uBD88\uB7EC\uC624\uC9C0 \uBABB\uD588\uC2B5\uB2C8\uB2E4.",retry:"\uB2E4\uC2DC \uC2DC\uB3C4"},save:"\uC800\uC7A5",confirm:"\uD655\uC778",close:"\uB2EB\uAE30",back:"\uB4A4\uB85C",emptyTrainingName:"\uD6C8\uB828 \uC774\uB984\uC774 \uBE44\uC5B4 \uC788\uC2B5\uB2C8\uB2E4.",remove:"\uC81C\uAC70",image:"\uC774\uBBF8\uC9C0",delete:"\uC0AD\uC81C",reset:"\uCD08\uAE30\uD654",update:"\uC5C5\uB370\uC774\uD2B8",download:"\uB2E4\uC6B4\uB85C\uB4DC",search:"\uAC80\uC0C9",empty:"\uB370\uC774\uD130\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4.",yes:"\uC608",no:"\uC544\uB2C8\uC624",all:"\uC804\uCCB4",none:"\uC5C6\uC74C",days:"{{count}}\uC77C",loadMore:"\uB354\uBCF4\uAE30",more:"\uB354\uBCF4\uAE30",moreFor:"{{name}} \uB354\uBCF4\uAE30",retry:"\uB2E4\uC2DC \uC2DC\uB3C4",prevPage:"\uC774\uC804 \uD398\uC774\uC9C0",nextPage:"\uB2E4\uC74C \uD398\uC774\uC9C0",play:"\uC7AC\uC0DD",pause:"\uBA48\uCDA4",playPause:"\uC7AC\uC0DD / \uBA48\uCDA4",replay:"\uB2E4\uC2DC\uB4E3\uAE30",subscription:"\uC774\uC6A9\uAD8C",done:"\uC644\uB8CC",failed:"\uC2E4\uD328",continue:"\uACC4\uC18D",notification:"\uC54C\uB9BC",emptyList:"\uD56D\uBAA9\uC774 \uC5C6\uC2B5\uB2C8\uB2E4.",menu:"\uBA54\uB274",resetSelection:"\uC120\uD0DD \uCD08\uAE30\uD654",pageSizeLabel:"{{n}}\uAC1C\uC529 \uBCF4\uAE30",totalCountPrefix:"\uCD1D ",totalCountSuffix:"\uAC1C",expand:"\uD3BC\uCE58\uAE30",collapse:"\uC811\uAE30",popup:"\uD31D\uC5C5",codeBlock:"\uCF54\uB4DC \uBE14\uB85D",totalPrefix:"\uCD1D ",copyCode:"\uCF54\uB4DC \uBCF5\uC0AC",copied:"\uBCF5\uC0AC\uB428",col:{problem:"\uBB38\uC81C"},phonetics:{place:{labial:"\uC591\uC21C\uC74C",alveolar:"\uCE58\uC870\uC74C",palatal:"\uACBD\uAD6C\uAC1C\uC74C",velar:"\uC5F0\uAD6C\uAC1C\uC74C",glottal:"\uC131\uBB38\uC74C"},vowel:{frontHigh:"\uC804\uC124 \uACE0\uBAA8\uC74C",backHighUnrounded:"\uD6C4\uC124 \uACE0\uBAA8\uC74C \uD3C9\uC21C",backHighRounded:"\uD6C4\uC124 \uACE0\uBAA8\uC74C \uC6D0\uC21C",frontMid:"\uC804\uC124 \uC911\uBAA8\uC74C",backMidUnrounded:"\uD6C4\uC124 \uC911\uBAA8\uC74C \uD3C9\uC21C",backMidRounded:"\uD6C4\uC124 \uC911\uBAA8\uC74C \uC6D0\uC21C",low:"\uC800\uBAA8\uC74C"},glide:{j:"j\uD65C\uC74C",w:"w\uD65C\uC74C",velar:"\u0270\uD65C\uC74C"}},unknownError:"\uC54C \uC218 \uC5C6\uB294 \uC624\uB958",networkError:"\uB124\uD2B8\uC6CC\uD06C \uC5F0\uACB0\uC774 \uBD88\uC548\uC815\uD569\uB2C8\uB2E4. \uC5F0\uACB0 \uC0C1\uD0DC\uB97C \uD655\uC778\uD55C \uB4A4 \uB2E4\uC2DC \uC2DC\uB3C4\uD574 \uC8FC\uC138\uC694."},lf={rangeSelect:"\uAE30\uAC04 \uC120\uD0DD",dow:["\uC77C","\uC6D4","\uD654","\uC218","\uBAA9","\uAE08","\uD1A0"],yearMonth:"{{year}}\uB144 {{month}}\uC6D4",prevMonth:"\uC774\uC804 \uB2EC",addOnDate:"{{date}}\uC5D0 \uBC29\uBB38 \uB4F1\uB85D",nextMonth:"\uB2E4\uC74C \uB2EC",prevWeek:"\uC774\uC804 \uC8FC",nextWeek:"\uB2E4\uC74C \uC8FC",legend:{visited:"\uBC29\uBB38",scheduled:"\uC608\uC57D",noVisit:"\uBBF8\uBC29\uBB38"},periodSelect:"\uAE30\uAC04 \uB2E8\uC704",visitCount:"\uBC29\uBB38 {{count}}\uAC74"},cf={planSuffix:"\uC774\uC6A9\uAD8C",labeledPlan:"{{label}} \uC774\uC6A9\uAD8C",couponCode:"\uC774\uC6A9\uAD8C \uCF54\uB4DC",specialLabel:"\uC624\uD508\uD2B9\uAC00",unitDay:"\uC77C",unitYear:"\uB144",remainingDay:"{{n}}\uC77C \uB0A8\uC74C",remainingHour:"{{n}}\uC2DC\uAC04 \uB0A8\uC74C",remainingMinute:"{{n}}\uBD84 \uB0A8\uC74C",remainingSecond:"{{n}}\uCD08 \uB0A8\uC74C",menu:{use:"\uC0AC\uC6A9\uD558\uAE30",refund:"\uD658\uBD88\uD558\uAE30",delete:"\uC0AD\uC81C\uD558\uAE30"}},uf={clearAriaLabel:"\uAC80\uC0C9\uC5B4 \uC9C0\uC6B0\uAE30"},df={starLabel:"{{n}}\uBC88\uC9F8 \uBCC4 \uC120\uD0DD",valueLabel:"{{max}}\uC810 \uB9CC\uC810\uC5D0 {{value}}\uC810",groupLabel:"\uBCC4\uC810"},pf={selected:"\uC120\uD0DD\uB428"},mf={placeholder:"\uC120\uD0DD"},hf={collapse:"\uC811\uAE30",expand:"\uD3BC\uCE58\uAE30"},ff={biArea:"BI \uC601\uC5ED",biSymbol:"BI \uC2EC\uBCFC",logoMalgwi:"\uB9D0\uADC0 \uB85C\uACE0",logoManager:"\uB9D0\uADC0\uB9E4\uB2C8\uC800 \uB85C\uACE0",menuOpen:"\uBA54\uB274 \uC5F4\uAE30",utilMenu:"\uC720\uD2F8\uB9AC\uD2F0 \uBA54\uB274",menuClose:"\uBA54\uB274 \uB2EB\uAE30"},Cf={mainMenu:"\uBA54\uC778 \uBA54\uB274",bottomNav:"\uD558\uB2E8 \uB124\uBE44\uAC8C\uC774\uC158",goToManager:"\uB9D0\uADC0\uB9E4\uB2C8\uC800\uB85C \uC774\uB3D9",goToMalgwi:"\uB9D0\uADC0\uB85C \uC774\uB3D9",modeLabelManager:"\uB9D0\uADC0 \uB9E4\uB2C8\uC800",modeLabelMalgwi:"\uB9D0\uADC0",training:"\uD6C8\uB828",settings:"\uC124\uC815",notifications:"\uC54C\uB9BC",account:"\uACC4\uC815",help:"\uB3C4\uC6C0\uB9D0",feedback:"\uBC84\uADF8\uC2E0\uACE0",debug:"\uB514\uBC84\uADF8",coupons:"\uCFE0\uD3F0",topic:"\uC8FC\uC81C\uBCC4 \uB4E3\uAE30",trainingType:"\uD6C8\uB828\uBCC4 \uB4E3\uAE30",wordPairs:"\uB300\uB9BD\uC30D \uCC3E\uAE30",wordSearch:"\uB2E8\uC5B4 \uCC3E\uAE30",wordTable:"\uB2E8\uC5B4\uD45C \uB9CC\uB4E4\uAE30",company:"\uC5C5\uCCB4\uC815\uBCF4",more:"\uB354\uBCF4\uAE30",moreMenu:"\uB354\uBCF4\uAE30 \uBA54\uB274",badgeLabel:"{{label}}, {{count}}\uAC1C"},gf={language:{training:{label:"\uD6C8\uB828 \uC5B8\uC5B4",sub:"\uD6C8\uB828\uC5D0 \uC0AC\uC6A9\uB418\uB294 \uB2E8\uC5B4\uC640 \uC74C\uC131 \uC5B8\uC5B4"}},notifications:{title:"\uC54C\uB9BC"},display:{fontSize:{small:"\uC791\uAC8C",large:"\uD06C\uAC8C"}},cache:{title:"\uCE90\uC2DC \uAD00\uB9AC",confirmMessage:"\uCE90\uC2DC({{size}})\uB97C \uC0AD\uC81C\uD569\uB2C8\uB2E4. \uACC4\uC18D\uD558\uC2DC\uACA0\uC2B5\uB2C8\uAE4C?",delete:"\uC0AD\uC81C",deleting:"\uC0AD\uC81C \uC911",cleared:"\uCE90\uC2DC\uAC00 \uC0AD\uC81C\uB418\uC5C8\uC2B5\uB2C8\uB2E4.",group:{wordData:{label:"\uB2E8\uC5B4 \uB370\uC774\uD130",sub:"\uB2E8\uC5B4 \uBAA9\uB85D \uBC0F \uBC84\uC804 \uC815\uBCF4"},pairIndex:{label:"\uB2E8\uC5B4\uC30D \uC778\uB371\uC2A4",sub:"\uCD08\uC131\xB7\uC911\uC131\xB7\uC885\uC131 \uB300\uB9BD\uC30D \uBD84\uC11D \uCE90\uC2DC"},imageCache:{label:"\uC774\uBBF8\uC9C0 \uCE90\uC2DC",sub:"\uB2E8\uC5B4\uBCC4 \uC774\uBBF8\uC9C0 \uC874\uC7AC \uC5EC\uBD80 \uD655\uC778 \uACB0\uACFC"},trainingRecord:{label:"\uD6C8\uB828 \uAE30\uB85D",sub:"\uC624\uB298\uC758 \uD6C8\uB828 \uC9C4\uD589\uB960 \uBC0F \uD559\uC2B5 \uC77C\uC218"}}},button:{save:"\uC124\uC815 \uC800\uC7A5"},popup:{clear:{confirm:"\uCD08\uAE30\uD654"},update:{confirm:"\uC5C5\uB370\uC774\uD2B8"},cache:{title:"{{label}} \uC0AD\uC81C",message:"{{label}}({{size}})\uB97C \uC0AD\uC81C\uD569\uB2C8\uB2E4. \uACC4\uC18D\uD558\uC2DC\uACA0\uC2B5\uB2C8\uAE4C?"}},saved:"\u2713 \uC800\uC7A5\uB428",account:{title:"\uACC4\uC815",delete:{sub:"\uD0C8\uD1F4 \uD6C4 30\uC77C \uC774\uB0B4 \uC7AC\uAC00\uC785 \uC2DC \uBCF5\uAD6C \uAC00\uB2A5\uD569\uB2C8\uB2E4."}}},bf={addButton:"\uC774\uC6A9\uAD8C \uCD94\uAC00\uD558\uAE30",couponButton:"\uCFE0\uD3F0 \uC785\uB825",loading:"\uBD88\uB7EC\uC624\uB294 \uC911\u2026",segment:{personal:"\uB9D0\uADC0",org:"\uB9D0\uADC0\uB9E4\uB2C8\uC800"},org:{title:"\uD604\uC7AC \uC774\uC6A9\uAD8C",disc:"\uAE30\uAD00\uC5D0\uC11C \uC0AC\uC6A9 \uC911\uC778 \uC774\uC6A9\uAD8C \uC815\uBCF4\uC785\uB2C8\uB2E4.",empty:"\uB4F1\uB85D\uB41C \uAE30\uAD00 \uC774\uC6A9\uAD8C\uC774 \uC5C6\uC2B5\uB2C8\uB2E4.",fallbackTitle:"\uAE30\uAD00 \uC774\uC6A9\uAD8C",startDate:"\uC2DC\uC791\uC77C",endDate:"\uB9CC\uB8CC\uC77C",remaining:"\uB0A8\uC740 \uAE30\uAC04",duration:"\uC774\uC6A9 \uAE30\uAC04"},active:{infoTitle:"\uC774\uC6A9 \uC815\uBCF4",refund:"\uD658\uBD88 \uC694\uCCAD",startDate:"\uC0AC\uC6A9 \uC2DC\uC791\uC77C",endDate:"\uC885\uB8CC\uC77C",remaining:"\uB0A8\uC740 \uAE30\uAC04"},pending:{title:"\uBCF4\uC720",empty:"\uB300\uAE30 \uC911\uC778 \uC774\uC6A9\uAD8C\uC774 \uC5C6\uC2B5\uB2C8\uB2E4."}},yf={profile:{planSuffix:"\uD50C\uB79C",plan:"\uD50C\uB79C"},basicInfo:{name:{placeholder:"\uD64D\uAE38\uB3D9"}},security:{title:"\uBCF4\uC548",password:{label:"\uBE44\uBC00\uBC88\uD638",currentRequired:"\uD604\uC7AC \uBE44\uBC00\uBC88\uD638\uB97C \uC785\uB825\uD558\uC138\uC694.",newRequired:"\uC0C8 \uBE44\uBC00\uBC88\uD638\uB97C \uC785\uB825\uD558\uC138\uC694.",mismatch:"\uC0C8 \uBE44\uBC00\uBC88\uD638\uAC00 \uC77C\uCE58\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.",changed:"\uBE44\uBC00\uBC88\uD638\uAC00 \uBCC0\uACBD\uB418\uC5C8\uC2B5\uB2C8\uB2E4."},twoFactor:{label:"2\uB2E8\uACC4 \uC778\uC99D",sub:"\uACC4\uC815 \uBCF4\uC548\uC744 \uAC15\uD654\uD558\uC138\uC694"}}},vf={guide:{faq:{title:"\uC790\uC8FC \uBB3B\uB294 \uC9C8\uBB38",desc:"FAQ \uBAA8\uC544\uBCF4\uAE30"}}},xf={settings:"\uC124\uC815",start:{title:"\uB2E8\uC5B4\uD6C8\uB828 \uC2DC\uC791",description:"\uC544\uB798 \uD6C8\uB828 \uC720\uD615\uC744 \uC120\uD0DD\uD574 \uC2DC\uC791\uD558\uC138\uC694"},difficulty:{tooltip:"\uAC00\uC7A5 \uC26C\uC6B4 \uB09C\uC774\uB3C4\uB294 '\uBB34\uC791\uC704', \uAC00\uC7A5 \uC5B4\uB824\uC6B4 \uB09C\uC774\uB3C4\uB294 '\uCD08\uC131\uCC28\uC774' \uC785\uB2C8\uB2E4."},contrast:{label:"\uB300\uB9BD",type:"\uB300\uB9BD \uC885\uB958",count:"\uB300\uB9BD \uAC2F\uC218",n:"{{n}}\uAC1C"},filter:{random:"\uBB34\uC791\uC704",trainOnset:"\uCD08\uC131",trainVowel:"\uBAA8\uC74C",trainCoda:"\uC885\uC131",phonemeGroup:"\uD6C8\uB828 \uC74C\uC808",noLimit:"\uBB34\uAD00",codaExclude:"\uC81C\uC678",gradeLabel:"\uB4F1\uAE09",excludeImageInfo:"\uC774\uBBF8\uC9C0 \uC788\uB294 \uB2E8\uC5B4\uB9CC: \uB2E8\uC5B4 \uC911\uC5D0 \uC774\uBBF8\uC9C0\uAC00 \uC788\uB294 \uB2E8\uC5B4\uB9CC \uACB0\uACFC\uC5D0 \uBCF4\uC5EC\uC90D\uB2C8\uB2E4.",sameStructureInfo:"\uC74C\uC18C \uAD6C\uC870 \uAC19\uC740 \uB2E8\uC5B4\uB9CC: \uC815\uB2F5\uACFC \uC624\uB2F5\uC758 \uC74C\uC808 \uAD6C\uC870(\uAE00\uC790 \uC218\xB7\uBC1B\uCE68 \uC720\uBB34 \uB4F1)\uAC00 \uAC19\uC740 \uACB0\uACFC\uB9CC \uB0A8\uACA8\uC694.",selectSection:"\uC120\uD0DD",excludeImage:"\uC774\uBBF8\uC9C0 \uC788\uB294 \uB2E8\uC5B4\uB9CC",sameStructure:"\uC74C\uC18C \uAD6C\uC870 \uAC19\uC740 \uB2E8\uC5B4\uB9CC"},noQuestions:"\uBB38\uC81C\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4.",countQuestions:"{{n}}\uBB38\uC81C",countSentences:"{{n}}\uBB38\uC7A5",comingSoon:"\uC900\uBE44 \uC911",nextQuestion:"\uB2E4\uC74C \uBB38\uC81C",noiseRatioTitle:"\uC18C\uC74C \uBE44\uC728",noiseRatioValue:"{{ratio}}\uBC30",noiseTypeTitle:"\uC18C\uC74C \uC885\uB958",playVolumeTitle:"\uC804\uCCB4 \uC18C\uB9AC",playSpeedTitle:"\uC7AC\uC0DD \uC18D\uB3C4",meter:{sentence:"\uC7AC\uC0DD",noise:"\uC18C\uC74C",toggle:"\uC624\uB514\uC624 \uBBF8\uD130 \uD45C\uC2DC"},viewResult:"\uACB0\uACFC\uBCF4\uAE30",problemNotice:"{{n}}\uBC88 \uBB38\uC81C \uC785\uB2C8\uB2E4.",trainingSettingsTitle:"\uD6C8\uB828 \uC124\uC815",sentencePreview:"\uBB38\uC7A5 \uBBF8\uB9AC\uBCF4\uAE30",notHeard:"\uC548 \uB4E4\uB838\uC5B4\uC694.",heardWell:"\uC798 \uB4E4\uB838\uC5B4\uC694.",confirmTitle:"\uBB38\uC7A5\uC744 \uD655\uC778\uD558\uACE0 \uC798 \uB4E4\uB838\uB294\uC9C0 \uC120\uD0DD\uD558\uC138\uC694.",noSoundWaveform:"\uC18C\uB9AC \uBE44\uAD50 \uBB38\uC81C\uB294 \uC6E8\uC774\uBE0C\uD3FC\uC744 \uD45C\uD604\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.",noise:{level:{none:"\uC5C6\uC74C",weak:"\uC57D\uD568",medium:"\uBCF4\uD1B5",strong:"\uAC15\uD568",veryStrong:"\uB9E4\uC6B0 \uAC15\uD568"},type:{none:"\uC5C6\uC74C",default:"\uAE30\uBCF8",street:"\uAE38\uAC70\uB9AC",buzz:"\uC640\uAE00\uC640\uAE00",restaurant:"\uC2DD\uB2F9"}},listenTitle:"\uC81C\uC2DC\uD558\uB294 \uBB38\uC7A5\uC744 \uB4E4\uC5B4\uC8FC\uC138\uC694.",listenButton:"\uBB38\uC7A5 \uB4E3\uAE30",playSound:"\uC18C\uB9AC \uB4E3\uAE30",playAll:"\uBAA8\uB450 \uB4E3\uAE30",selectInOrder:"\uB4E4\uC740 \uC21C\uC11C\uB300\uB85C \uCE74\uB4DC\uB97C \uC120\uD0DD\uD558\uC138\uC694.",stop:"\uC815\uC9C0",preview:"\uBBF8\uB9AC \uB4E3\uAE30",next:"\uB2E4\uC74C",completed:"\uD6C8\uB828 \uC644\uB8CC",selected:"\uC120\uD0DD\uB428",nthSelected:"{{n}}\uBC88\uC9F8 \uC120\uD0DD",fontSizeMin:"\uAE00\uC528 \uD06C\uAE30\uAC00 \uCD5C\uC18C\uC785\uB2C8\uB2E4.",fontSizeMax:"\uAE00\uC528 \uD06C\uAE30\uAC00 \uCD5C\uB300\uC785\uB2C8\uB2E4.",fontSizeDecrease:"\uAE00\uC790 \uD06C\uAE30 \uAC10\uC18C",fontSizeIncrease:"\uAE00\uC790 \uD06C\uAE30 \uC99D\uAC00",toggleBackground:"\uBC30\uACBD \uC804\uD658",cardInstructions:"\uB0B1\uB9D0 \uCE74\uB4DC\uB97C \uBCF4\uACE0 \uC18C\uB9AC\uB97C \uB4E3\uACE0 \uD655\uC778\uD558\uC138\uC694.",noCards:"\uCE74\uB4DC\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4.",audioFetchError:"\uC0AC\uC6B4\uB4DC \uC18C\uC2A4\uB97C \uAC00\uC838\uC624\uC9C0 \uBABB\uD588\uC2B5\uB2C8\uB2E4.",ttsUnavailable:"\uC774 \uAE30\uAE30\uC5D0\uC11C\uB294 \uC74C\uC131\uC744 \uB4E4\uB824\uC904 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.",selectConfirm:"\uBB38\uC81C\uB97C \uBCF4\uACE0 \uD574\uB2F9\uD558\uB294 \uB0B4\uC6A9\uC744 \uC120\uD0DD\uD558\uC138\uC694.",orderListDefault:"\uBB38\uC7A5\uC744 \uB4E4\uC740 \uC21C\uC11C\uB300\uB85C \uBC30\uCE58\uD558\uC138\uC694.",result:{pendingDone:"\uACB0\uACFC\uB97C \uACC4\uC0B0\uD558\uB294 \uC911\uC774\uB77C \uC544\uC9C1 \uC644\uB8CC\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.",eyebrow:"\uD6C8\uB828 \uC644\uB8CC",title:"\uD6C8\uB828\uC744 \uBAA8\uB450 \uB9C8\uCCE4\uC2B5\uB2C8\uB2E4.",scoreAria:"{{correct}} / {{total}} \uBB38\uD56D",elapsed:"\uC18C\uC694 \uC2DC\uAC04",summary:"{{correct}}\uAC1C\uC758 \uBB38\uD56D\uC744 \uC798 \uB4E4\uC5C8\uC2B5\uB2C8\uB2E4.",tableAriaLabel:"\uBB38\uD56D\uBCC4 \uD310\uC815",colJudge:"\uD310\uC815",colAnswerSelected:"\uC815\uB2F5 \xB7 \uC120\uD0DD",colAnswer:"\uC815\uB2F5",colSelected:"\uC120\uD0DD",heardWell:"\uC798 \uB4E4\uC5C8\uC5B4\uC694",notHeard:"\uBABB \uB4E4\uC5C8\uC5B4\uC694",notJudged:"\uBBF8\uD310\uC815",replay:"\uB2E4\uC2DC\uD558\uAE30",done:"\uC644\uB8CC",viewResult:"\uACB0\uACFC \uD655\uC778",noContent:"(\uB0B4\uC6A9\uC5C6\uC74C)"},up:"\uC704\uB85C",down:"\uC544\uB798\uB85C",prev:"\uC774\uC804",listenLabel:"\uBB38\uC7A5 \uB4E3\uAE30",sourcePlay:"\uC18C\uC2A4 {{n}} \uC7AC\uC0DD",listen:"\uB4E3\uAE30",audioStatus:{idle:"\uB300\uAE30",resolving:"\uB9AC\uC18C\uC2A4 \uB9E4\uD551 \uC911\u2026",checking_exists:"\uD30C\uC77C \uC874\uC7AC \uD655\uC778\u2026",getting_signed_url:"\uC11C\uBA85 URL \uC870\uD68C\u2026",downloading:"\uB2E4\uC6B4\uB85C\uB4DC \uC911\u2026",measuring_duration:"\uC624\uB514\uC624 \uAE38\uC774 \uCE21\uC815\u2026",ready:"\uC900\uBE44 \uC644\uB8CC",error:"\uC624\uB958 \uBC1C\uC0DD"}},_f={totalCount:"\uAC1C\uC758 \uD6C8\uB828 \uBB36\uC74C",renameGroup:"\uADF8\uB8F9 \uC774\uB984 \uBC14\uAFB8\uAE30",itemCount:"\uD6C8\uB828 \uAC1C\uC218",menu:{edit:"\uD6C8\uB828 \uBB36\uC74C \uC218\uC815",rename:"\uC774\uB984 \uBC14\uAFB8\uAE30",move:"\uADF8\uB8F9 \uC774\uB3D9",duplicate:"\uD6C8\uB828 \uBB36\uC74C \uBCF5\uC0AC",publish:"\uB9D0\uADC0\uC790\uB8CC\uC2E4\uC5D0 \uC62C\uB9AC\uAE30"},sort:{customers:"\uD6C8\uB828 \uACE0\uAC1D"},copyLink:"\uB9C1\uD06C \uBCF5\uC0AC",removeLink:"\uB9C1\uD06C \uC81C\uAC70",linkRemoved:"\uB9C1\uD06C\uAC00 \uC81C\uAC70\uB418\uC5C8\uC2B5\uB2C8\uB2E4.",linkSaveFirst:"\uBA3C\uC800 \uD6C8\uB828 \uBB36\uC74C\uC744 \uC800\uC7A5\uD574\uC8FC\uC138\uC694.",linkSaveFirstHint:"\uC800\uC7A5\uB41C \uD6C8\uB828 \uBB36\uC74C\uC5D0\uC11C\uB9CC \uACF5\uC720 \uB9C1\uD06C\uB97C \uC0DD\uC131\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4.",linkCopySelect:"\uBCF5\uC0AC\uAC00 \uB9C9\uD600 \uB9C1\uD06C\uB97C \uC120\uD0DD\uD588\uC2B5\uB2C8\uB2E4. Ctrl/\u2318+C\uB85C \uBCF5\uC0AC\uD558\uC138\uC694.",nameRequired:"\uD6C8\uB828 \uBB36\uC74C \uC774\uB984\uC744 \uC785\uB825\uD574\uC8FC\uC138\uC694.",itemRequired:"\uD6C8\uB828\uC744 1\uAC1C \uC774\uC0C1 \uB2F4\uC544\uC8FC\uC138\uC694.",randomAdd:"\uBB34\uC791\uC704 \uCD94\uAC00"},wf={totalCount:"\uBA85\uC758 \uACE0\uAC1D",loadError:"\uBAA9\uB85D\uC744 \uBD88\uB7EC\uC624\uC9C0 \uBABB\uD588\uC2B5\uB2C8\uB2E4.",basicInfo:{editTooltip:"\uC218\uC815\uD558\uAE30"},member:{placeholder:"\uC774\uBA54\uC77C \uB610\uB294 \uC804\uD654",link:"\uC5F0\uACB0",linking:"\uC5F0\uACB0 \uC911\u2026"},device:{title:"\uCCAD\uAC01\uC7AC\uD65C\uAE30\uAE30",addTooltip:"\uC0C8\uB85C \uC0DD\uC131",addButton:"\uAE30\uAE30 \uCD94\uAC00",listTooltip:"\uBAA9\uB85D \uBCF4\uAE30",listTitle:"\uCE21 \uAE30\uAE30 \uBAA9\uB85D",historyEmpty:"\uB4F1\uB85D\uB41C \uAE30\uAE30 \uC774\uB825\uC774 \uC5C6\uC2B5\uB2C8\uB2E4.",wearing:"\uCE21 \uCC29\uC6A9\uC911",notRegistered:"\uBBF8\uB4F1\uB85D",unit:"\uAC1C",wearingNow:"\uCC29\uC6A9",wear:"\uCC29\uC6A9",unwear:"\uCC29\uC6A9 \uD574\uC81C",wornSince:"{{date}}\uBD80\uD130",release:"\uD574\uC81C",historyTitle:"\uCCAD\uAC01\uC7AC\uD65C\uAE30\uAE30 \uC774\uB825"},schedule:{title:"\uBC29\uBB38 \uC608\uC815",addTooltip:"\uC608\uC815 \uB4F1\uB85D",listTooltip:"\uC804\uCCB4 \uBCF4\uAE30",empty:"\uC608\uC815\uB41C \uBC29\uBB38\uC774 \uC5C6\uC2B5\uB2C8\uB2E4.",registerTitle:" \uACE0\uAC1D\uB2D8 \uBC29\uBB38 \uC608\uC815 \uB4F1\uB85D",memoPlaceholder:"\uBC29\uBB38 \uC608\uC815 \uAD00\uB828 \uBA54\uBAA8\uB97C \uC785\uB825\uD574 \uC8FC\uC138\uC694."},visitHistory:{title:"\uBC29\uBB38 \uC774\uB825",addTooltip:"\uC2E0\uADDC \uB4F1\uB85D",empty:"\uC544\uC9C1 \uBC29\uBB38 \uAE30\uB85D\uC774 \uC5C6\uC2B5\uB2C8\uB2E4.",popupTitle:" \uACE0\uAC1D\uB2D8 \uBC29\uBB38 \uC774\uB825",registerTitle:" \uACE0\uAC1D\uB2D8 \uC2E0\uADDC \uBC29\uBB38 \uB4F1\uB85D"},homework:{title:"\uC219\uC81C \uC9C4\uD589\uC0C1\uD669",active:"\uD65C\uC131",inactive:"\uBE44\uD65C\uC131",copy:"\uB9C1\uD06C \uBCF5\uC0AC",copied:"\uB9C1\uD06C\uAC00 \uBCF5\uC0AC\uB418\uC5C8\uC2B5\uB2C8\uB2E4."},moreItems:"\uB354 \uC788\uC74C",viewAll:"\uC804\uCCB4 \uBCF4\uAE30",visits:{title:"\uBC29\uBB38"},trainingRecord:{title:"\uACE0\uAC1D \uD6C8\uB828 \uAE30\uB85D"},status:{trainingSubtitle:"\uD6C8\uB828 \uD604\uD669"},detail:{session:{completedFmt:"\uC644\uB8CC {{done}}/{{total}} \xB7 {{duration}}"},visitSuffix:"\uC758 \uBC29\uBB38"},duration:{minSec:"{{m}}\uBD84 {{s}}\uCD08",min:"{{m}}\uBD84",sec:"{{s}}\uCD08"}},kf={plan:{recommendedFor:"\uC774\uB7F0 \uBD84\uAED8 \uCD94\uCC9C\uD569\uB2C8\uB2E4.",features:"\uD575\uC2EC \uAE30\uB2A5",freePrice:"\uBB34\uB8CC",contact:"\uBB38\uC758\uD558\uAE30",tierFallback:"\uC774\uC6A9\uAD8C",openPromo:"\uC624\uD508 \uD2B9\uAC00"},products:{mgrEnterprise:{tier:{price:"\uBB38\uC758"}}}},Af={title:"\uCFE0\uD3F0",subtitle:"\uCFE0\uD3F0 \uCF54\uB4DC\uB97C \uC785\uB825\uD558\uAC70\uB098 \uBCF4\uC720 \uCFE0\uD3F0\uC744 \uD655\uC778\uD558\uC138\uC694.",input:{label:"\uCFE0\uD3F0 \uCF54\uB4DC",placeholder:"\uCFE0\uD3F0 \uCF54\uB4DC \uC785\uB825"},applyButton:"\uC801\uC6A9",error:{invalid:"\uC720\uD6A8\uD558\uC9C0 \uC54A\uC740 \uCFE0\uD3F0 \uCF54\uB4DC\uC785\uB2C8\uB2E4.",alreadyUsed:"\uC774\uBBF8 \uC0AC\uC6A9\uB41C \uCFE0\uD3F0\uC785\uB2C8\uB2E4."},success:{applied:'"{{name}}" \uCFE0\uD3F0\uC774 \uC801\uC6A9\uB418\uC5C8\uC2B5\uB2C8\uB2E4.'},section:{owned:"\uBCF4\uC720 \uCFE0\uD3F0"},status:{used:"\uC0AC\uC6A9 \uC644\uB8CC",available:"\uC0AC\uC6A9 \uAC00\uB2A5"}},Bf={unitVisit:"\uAC74",periodAll:"\uC804\uCCB4",showN:"{{n}}\uAC1C\uC529"},Nf={subtitle:"\uC5C5\uCCB4 \uBC0F \uBC95\uC778 \uC815\uBCF4\uB97C \uAD00\uB9AC\uD558\uC138\uC694.",editButton:"\uC815\uBCF4 \uC218\uC815",basicInfo:{title:"\uAE30\uBCF8 \uC815\uBCF4"},contactInfo:{title:"\uC5F0\uB77D\uCC98 \uC815\uBCF4"}},Sf={title:"\uD6C8\uB828\uBCC4 \uB4E3\uAE30",subtitle:"\uC6D0\uD558\uB294 \uD6C8\uB828 \uC720\uD615\uC744 \uC120\uD0DD\uD558\uC138\uC694.",listenInNoise:{title:"\uC18C\uC74C \uD558 \uBB38\uC7A5 \uB4E3\uAE30",desc:"\uB2E4\uC591\uD55C \uC18C\uC74C \uD658\uACBD\uC5D0\uC11C \uBB38\uC7A5 \uCCAD\uB825\uC744 \uD6C8\uB828\uD569\uB2C8\uB2E4."},shortStory:{title:"\uC9E7\uC740 \uC774\uC57C\uAE30 \uB4E3\uAE30",desc:"\uC9E7\uC740 \uC774\uC57C\uAE30\uB97C \uB4E3\uACE0 \uB0B4\uC6A9\uC744 \uC774\uD574\uD569\uB2C8\uB2E4."},longStory:{title:"\uAE34 \uC774\uC57C\uAE30 \uB4E3\uAE30",desc:"\uAE34 \uC774\uC57C\uAE30\uB97C \uC9D1\uC911\uD574\uC11C \uB4E3\uACE0 \uB0B4\uC6A9\uC744 \uD30C\uC545\uD569\uB2C8\uB2E4."},orderingSentence:{title:"\uBB38\uC7A5 \uC21C\uC11C\uD654",desc:"\uB4E4\uC740 \uBB38\uC7A5\uB4E4\uC744 \uC62C\uBC14\uB978 \uC21C\uC11C\uB85C \uBC30\uC5F4\uD569\uB2C8\uB2E4."},SAME_SOUND_PICK:{label:"\uAC19\uC740 \uC18C\uB9AC \uACE0\uB974\uAE30",sub:"\uB4E4\uC740 \uC18C\uB9AC\uC640 \uAC19\uC740 \uB2E8\uC5B4 \uCE74\uB4DC\uB97C \uACE0\uB974\uC138\uC694."},SAME_OR_DIFF:{label:"\uAC19\uC740\uC9C0 \uB2E4\uB978\uC9C0 \uB9DE\uD788\uAE30",sub:"\uB450 \uC18C\uB9AC\uAC00 \uAC19\uC740\uC9C0, \uB2E4\uB978\uC9C0 \uAD6C\uBD84\uD558\uC138\uC694."},HEAR_AND_PICK_SAME:{label:"\uC77C\uCE58\uD558\uB294 \uB2E8\uC5B4 \uB9DE\uD788\uAE30",sub:"\uB4E4\uC740 \uC18C\uB9AC\uC758 \uB2E8\uC5B4 \uCE74\uB4DC\uB97C \uACE0\uB974\uC138\uC694."},HEAR_AND_PICK_INCLUDED:{label:"\uD55C \uC74C\uC808 \uD3EC\uD568 \uB2E8\uC5B4 \uB9DE\uD788\uAE30",sub:"\uB4E4\uC740 \uC74C\uC808\uC774 \uD3EC\uD568\uB41C \uB2E8\uC5B4 \uCE74\uB4DC\uB97C \uACE0\uB974\uC138\uC694."},STARTS_WITH_SAME_SOUND:{label:"\uCCAB \uC74C\uC808\uC774 \uAC19\uC740 \uB2E8\uC5B4 \uB9DE\uD788\uAE30",sub:"\uB4E4\uC740 \uB2E8\uC5B4\uC640 \uAC19\uC740 \uC18C\uB9AC\uB85C \uC2DC\uC791\uD558\uB294 \uB2E8\uC5B4\uB97C \uACE0\uB974\uC138\uC694."},LISTEN_AND_REMEMBER_ORDER:{label:"\uB4E3\uACE0 \uC21C\uC11C\uB300\uB85C \uAE30\uC5B5\uD558\uAE30",sub:"\uC138 \uB2E8\uC5B4\uB97C \uB4E4\uC740 \uC21C\uC11C\uB300\uB85C \uCE74\uB4DC\uB97C \uC120\uD0DD\uD558\uC138\uC694."},MERGE_2_SYLLABLES:{label:"\uC74C\uC808 2\uAC1C \uD569\uCE58\uAE30",sub:"\uB450 \uC74C\uC808\uC744 \uD569\uCE58\uBA74 \uC5B4\uB5A4 \uB2E8\uC5B4\uAC00 \uB420\uAE4C\uC694?"},MERGE_3_SYLLABLES:{label:"\uC74C\uC808 3\uAC1C \uD569\uCE58\uAE30",sub:"\uC138 \uC74C\uC808\uC744 \uD569\uCE58\uBA74 \uC5B4\uB5A4 \uB2E8\uC5B4\uAC00 \uB420\uAE4C\uC694?"},MERGE_2_PHONEMES:{label:"\uC74C\uC18C 2\uAC1C \uD569\uCE58\uAE30",sub:"\uB450 \uC74C\uC18C\uB97C \uD569\uCE58\uBA74 \uC5B4\uB5A4 \uC18C\uB9AC\uAC00 \uB420\uAE4C\uC694?"},MERGE_3_PHONEMES:{label:"\uC74C\uC18C 3\uAC1C \uD569\uCE58\uAE30",sub:"\uC138 \uC74C\uC18C\uB97C \uD569\uCE58\uBA74 \uC5B4\uB5A4 \uC18C\uB9AC\uAC00 \uB420\uAE4C\uC694?"},DROP_1_FROM_2SYLL:{label:"2\uC74C\uC808\uC5D0\uC11C \uD55C \uC74C\uC808 \uD0C8\uB77D",sub:"2\uC74C\uC808 \uB2E8\uC5B4\uC5D0\uC11C \uD55C \uC74C\uC808\uC744 \uBE7C\uBA74 \uC5B4\uB5A4 \uC18C\uB9AC\uAC00 \uB420\uAE4C\uC694?"},DROP_1_FROM_3SYLL:{label:"3\uC74C\uC808\uC5D0\uC11C \uD55C \uC74C\uC808 \uD0C8\uB77D",sub:"3\uC74C\uC808 \uB2E8\uC5B4\uC5D0\uC11C \uD55C \uC74C\uC808\uC744 \uBE7C\uBA74 \uC5B4\uB5A4 \uC18C\uB9AC\uAC00 \uB420\uAE4C\uC694?"},DROP_PART_FROM_COMPOUND:{label:"\uD569\uC131\uC5B4\uC5D0\uC11C \uBD80\uBD84 \uD0C8\uB77D",sub:"\uD569\uC131\uC5B4\uC758 \uC77C\uBD80\uB97C \uBE7C\uBA74 \uC5B4\uB5A4 \uB2E8\uC5B4\uAC00 \uB420\uAE4C\uC694?"},DROP_FINAL_CONSONANT_FROM_1SYLL:{label:"1\uC74C\uC808\uC5D0\uC11C \uBC1B\uCE68 \uD0C8\uB77D",sub:"\uBC1B\uCE68\uC744 \uBE7C\uBA74 \uC5B4\uB5A4 \uC18C\uB9AC\uAC00 \uB420\uAE4C\uC694?"},REMOVE_CONSONANT_AND_IDENTIFY_PHONEME:{label:"1\uC74C\uC808\uC5D0\uC11C \uC790\uC74C \uD0C8\uB77D",sub:"\uC790\uC74C\uC744 \uBE7C\uBA74 \uC5B4\uB5A4 \uC18C\uB9AC\uAC00 \uB0A8\uC744\uAE4C\uC694?"},CHANGE_1_SYLL_IN_2SYLL:{label:"2\uC74C\uC808\uC5D0\uC11C \uD55C \uC74C\uC808 \uBC14\uAFB8\uAE30",sub:"2\uC74C\uC808 \uB2E8\uC5B4\uC758 \uD55C \uC74C\uC808\uC744 \uBC14\uAFD4 \uC0C8 \uB2E8\uC5B4\uB97C \uB9CC\uB4DC\uC138\uC694."},CHANGE_1_SYLL_IN_3SYLL:{label:"3\uC74C\uC808\uC5D0\uC11C \uD55C \uC74C\uC808 \uBC14\uAFB8\uAE30",sub:"3\uC74C\uC808 \uB2E8\uC5B4\uC758 \uD55C \uC74C\uC808\uC744 \uBC14\uAFD4 \uC0C8 \uB2E8\uC5B4\uB97C \uB9CC\uB4DC\uC138\uC694."},CHANGE_1_PHONEME_IN_1SYLL:{label:"1\uC74C\uC808 \uB2E8\uC5B4 \uC911 1\uAC1C \uC74C\uC18C \uBC14\uAFB8\uAE30",sub:"1\uC74C\uC808 \uB2E8\uC5B4\uC758 \uD55C \uC74C\uC18C\uB97C \uBC14\uAFD4 \uC0C8 \uC18C\uB9AC\uB97C \uB9CC\uB4DC\uC138\uC694."},CHANGE_1_PHONEME_IN_2SYLL:{label:"2\uC74C\uC808 \uB2E8\uC5B4 \uC911 1\uAC1C \uC74C\uC18C \uBC14\uAFB8\uAE30",sub:"2\uC74C\uC808 \uB2E8\uC5B4\uC758 \uD55C \uC74C\uC18C\uB97C \uBC14\uAFD4 \uC0C8 \uB2E8\uC5B4\uB97C \uB9CC\uB4DC\uC138\uC694."}},Df={comingSoon:"\uB2E8\uC5B4\uD6C8\uB828 \uAE30\uB2A5\uC744 \uC900\uBE44 \uC911\uC785\uB2C8\uB2E4."},Ef={colName:"\uB2E8\uC5B4\uD45C \uC774\uB984",open:"\uC5F4\uAE30",countSuffix:"\uAC1C\uC758 \uB2E8\uC5B4\uD45C",tab:{cards:"\uB2E8\uC5B4\uD45C \uCE74\uB4DC",tables:"\uB2E8\uC5B4\uD45C"},cardsEmpty:"\uC544\uC9C1 \uB9CC\uB4E0 \uB2E8\uC5B4\uD45C \uCE74\uB4DC\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4.",addCard:"\uB2E8\uC5B4\uD45C \uCE74\uB4DC \uCD94\uAC00",menu:{publishStore:"\uB9D0\uADC0\uC790\uB8CC\uC2E4\uC5D0 \uC62C\uB9AC\uAE30",unpublishStore:"\uB9D0\uADC0\uC790\uB8CC\uC2E4\uC5D0\uC11C \uB0B4\uB9AC\uAE30"},newBadge:"\uC0C8\uB85C \uB9CC\uB4E0 \uD45C",publishedBadge:"\uBC1C\uD589\uB428",sharedBadge:"\uACF5\uC720 \uC911"},jf={title:"\uC8FC\uC694 \uB2E8\uC5B4",empty:"\uCD94\uCD9C\uB41C \uC8FC\uC694 \uB2E8\uC5B4\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4."},Tf={defaultName:"\uB2E8\uC5B4 \uD45C",title:"\uB2E8\uC5B4 \uD45C \uB9CC\uB4E4\uAE30",subtitle:"\uCE78\uC744 \uC124\uC815\uD558\uACE0 \uB2E8\uC5B4\uB97C \uCD94\uAC00\uD558\uC5EC \uD45C\uB97C \uB9CC\uB4ED\uB2C8\uB2E4.",filterTitle:"\uD45C \uC124\uC815",filter:{composition:"\uAD6C\uC131",image:"\uC774\uBBF8\uC9C0",word:"\uB2E8\uC5B4",standardPron:"\uD45C\uC900 \uBC1C\uC74C",colloquialPron:"\uAD6C\uC5B4\uCCB4 \uBC1C\uC74C",paperOrientation:"\uC6A9\uC9C0 \uBC29\uD5A5",landscape:"\uAC00\uB85C",portrait:"\uC138\uB85C",columns:"\uCE78 \uC218",column:"{{count}}\uCE78",itemsPerPageWord:"\uD398\uC774\uC9C0\uB2F9 \uB2E8\uC5B4 \uC218",itemsPerPagePair:"\uD398\uC774\uC9C0\uB2F9 \uB300\uB9BD\uC30D \uC218",itemsPerPageOption:"{{count}}\uAC1C",pageIndicator:"{{current}} / {{total}}",pageNumber:"\uD398\uC774\uC9C0 \uBC88\uD638",pageNumberLeft:"\uC67C\uCABD",pageNumberCenter:"\uC911\uC559",pageNumberRight:"\uC624\uB978\uCABD",border:"\uC678\uACFD\uC120",cutLine:"\uC808\uCDE8\uC120",show:"\uD45C\uC2DC",hide:"\uBBF8\uD45C\uC2DC",dotted:"\uC810\uC120",corner:"\uCF54\uB108"},addWord:"\uCD94\uAC00\uD558\uAE30",wordInfo:"{{word}} \uB0B1\uB9D0 \uC815\uBCF4",emptyItems:"\uB2E8\uC5B4\uB97C 1\uAC1C \uC774\uC0C1 \uCD94\uAC00\uD574\uC8FC\uC138\uC694.",load:"\uBD88\uB7EC\uC624\uAE30",openNewWindow:"\uC0C8 \uCC3D\uC73C\uB85C \uBCF4\uAE30",saveButton:"\uC800\uC7A5\uD558\uAE30",saveAsNewButton:"\uB2E4\uB978 \uC774\uB984\uC73C\uB85C \uC800\uC7A5",print:"\uC778\uC1C4\uD558\uAE30",popupBlocked:"\uD31D\uC5C5\uC774 \uCC28\uB2E8\uB418\uC5C8\uC2B5\uB2C8\uB2E4. \uBE0C\uB77C\uC6B0\uC800 \uC124\uC815\uC5D0\uC11C \uD31D\uC5C5\uC744 \uD5C8\uC6A9\uD574 \uC8FC\uC138\uC694.",printFileNameSingle:"\uB2E8\uC5B4\uD45C",printFileNamePair:"\uB300\uB9BD\uC30D\uD45C",save:{title:"\uB2E8\uC5B4\uD45C \uC800\uC7A5\uD558\uAE30",nameLabel:"\uC774\uB984",desc:"\uC800\uC7A5\uD560 \uB2E8\uC5B4 \uD45C\uC758 \uC774\uB984\uC744 \uC785\uB825\uD558\uC138\uC694.",placeholder:"\uC774 \uB2E8\uC5B4\uD45C\uC5D0 \uB300\uD55C \uC81C\uBAA9\uC744 \uC785\uB825\uD558\uC138\uC694.",descriptionLabel:"\uC124\uBA85",descriptionPlaceholder:"\uC774 \uB2E8\uC5B4\uD45C\uC5D0 \uB300\uD55C \uC124\uBA85\uC744 \uC785\uB825\uD558\uC138\uC694.",duplicateName:"\uC774\uBBF8 \uC0AC\uC6A9 \uC911\uC778 \uC774\uB984\uC785\uB2C8\uB2E4.",nameRequired:"\uD45C \uC774\uB984\uC744 \uC785\uB825\uD574 \uC8FC\uC138\uC694.",autoFillHint:" (Tab \uB610\uB294 space \uC785\uB825\uC2DC \uC790\uB3D9 \uC785\uB825)",copyName:"{{name}} (\uBCF5\uC0AC)"},loadTable:{title:"\uC800\uC7A5\uB41C \uB2E8\uC5B4 \uD45C \uBD88\uB7EC\uC624\uAE30",empty:"\uC800\uC7A5\uB41C \uB2E8\uC5B4 \uD45C\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4.",loadButton:"\uBD88\uB7EC\uC624\uAE30",itemCount:"{{count}}\uAC1C",deleteAriaLabel:"{{name}} \uC0AD\uC81C",sort:{newest:"\uCD5C\uC2E0\uC21C",oldest:"\uC624\uB798\uB41C\uC21C",name:"\uC774\uB984\uC21C",count:"\uB2E8\uC5B4 \uC218"},view:{grid:"\uD45C\uB85C \uBCF4\uAE30",list:"\uB9AC\uC2A4\uD2B8\uB85C \uBCF4\uAE30"}},groupDeleteMessage:"\uADF8\uB8F9 \uB0B4 \uB2E8\uC5B4\uD45C\uB294 '\uADF8\uB8F9 \uC5C6\uC74C'\uC73C\uB85C \uC774\uB3D9\uD569\uB2C8\uB2E4.",groupNamePlaceholder:"\uADF8\uB8F9 \uC774\uB984",store:{badge:"\uB9D0\uADC0\uC790\uB8CC\uC2E4"},card:{sub:"\uB2E8\uC5B4\uD45C \uCE74\uB4DC",empty:"\uC774 \uCE74\uB4DC\uC5D0 \uB2E8\uC5B4\uD45C\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4."},toast:{renameError:"\uC774\uB984 \uBCC0\uACBD\uC5D0 \uC2E4\uD328\uD588\uC2B5\uB2C8\uB2E4",saveError:"\uC800\uC7A5\uC5D0 \uC2E4\uD328\uD588\uC2B5\uB2C8\uB2E4",deleteError:"\uC0AD\uC81C\uC5D0 \uC2E4\uD328\uD588\uC2B5\uB2C8\uB2E4",duplicateError:"\uBCF5\uC81C\uC5D0 \uC2E4\uD328\uD588\uC2B5\uB2C8\uB2E4",saveSuccess:"\uB2E8\uC5B4\uD45C\uAC00 \uC800\uC7A5\uB418\uC5C8\uC2B5\uB2C8\uB2E4."},scoring:{o:"{{word}} \uB9DE\uC74C",triangle:"{{word}} \uC560\uB9E4",x:"{{word}} \uD2C0\uB9BC",button:"\uCC44\uC810\uD558\uAE30",pickTitle:"\uB204\uAD6C\uB97C \uCC44\uC810\uD560\uAE4C\uC694?",pickSubtitle:"\u2018{{name}}\u2019 \uD45C\uB85C \uD6C8\uB828\uD55C \uACE0\uAC1D\uC744 \uACE0\uB974\uC138\uC694.",pickSearch:"\uC774\uB984 \uB610\uB294 \uC804\uD654\uBC88\uD638\uB85C \uCC3E\uAE30",pickEmpty:"\uB4F1\uB85D\uB41C \uACE0\uAC1D\uC774 \uC5C6\uC2B5\uB2C8\uB2E4.",pickNoMatch:"\uCC3E\uB294 \uACE0\uAC1D\uC774 \uC5C6\uC2B5\uB2C8\uB2E4.",pickAgain:"\uACE0\uAC1D \uB2E4\uC2DC \uACE0\uB974\uAE30",scoringFor:"{{name}} \uB2D8 \uCC44\uC810 \uC911",none:"\uCE78 \uC544\uB798 \u25CB \xB7 \u25B3 \xB7 \u2715 \uB97C \uB20C\uB7EC \uB9E4\uAE30\uC138\uC694. \uB9C8\uC6B0\uC2A4\uB85C\uB294 \uCE78\uC5D0 \uC190\uC744 \uC5B9\uC73C\uBA74 \uB098\uD0C0\uB0A9\uB2C8\uB2E4.",tally:"{{marked}}\uCE78 \uCC44\uC810 \xB7 \u25CB {{o}} \xB7 \u25B3 {{triangle}} \xB7 \u2715 {{x}} \xB7 \uC815\uB2F5\uB960 {{rate}}%",save:"\uCC44\uC810 \uC800\uC7A5",saved:"{{name}} \uB2D8\uC758 \uCC44\uC810 {{count}}\uCE78\uC744 \uC800\uC7A5\uD588\uC2B5\uB2C8\uB2E4.",reviewTitle:"\uBCF5\uC2B5\uD45C\uB97C \uB9CC\uB4E4\uAE4C\uC694?",reviewMessage:"{{name}} \uB2D8\uC774 \uD2C0\uB9AC\uAC70\uB098 \uC560\uB9E4\uD588\uB358 {{count}}\uCE78\uC73C\uB85C \uC0C8 \uD45C\uB97C \uB9CC\uB4ED\uB2C8\uB2E4. \uB9DE\uD78C \uCE78\uC740 \uBE60\uC9D1\uB2C8\uB2E4.",reviewConfirm:"\uBCF5\uC2B5\uD45C \uB9CC\uB4E4\uAE30",reviewDescription:"\u2018{{name}}\u2019 \uCC44\uC810\uC5D0\uC11C \uD2C0\uB9AC\uAC70\uB098 \uC560\uB9E4\uD588\uB358 {{count}}\uCE78\uC744 \uBAA8\uC740 \uD45C\uC785\uB2C8\uB2E4.",reviewCreated:"\u2018{{name}}\u2019\uC744(\uB97C) \uB9CC\uB4E4\uC5C8\uC2B5\uB2C8\uB2E4 \u2014 {{count}}\uCE78.",discardTitle:"\uB9E4\uAE34 \uCC44\uC810\uC744 \uBC84\uB9B4\uAE4C\uC694?",discardMessage:"{{count}}\uCE78\uC744 \uB9E4\uACBC\uC9C0\uB9CC \uC544\uC9C1 \uC800\uC7A5\uD558\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4. \uB098\uAC00\uBA74 \uC0AC\uB77C\uC9D1\uB2C8\uB2E4.",discardConfirm:"\uBC84\uB9AC\uACE0 \uB098\uAC00\uAE30"},info:{grade:"\uB09C\uC774\uB3C4: {{n}}\uB4F1\uAE09",syllables:"\uC74C\uC808 \uC218: {{n}}\uC74C\uC808",pos:"\uD488\uC0AC: {{v}}",wordType:"\uC720\uD615: {{v}}"},pos:{noun:"\uBA85\uC0AC",verb:"\uB3D9\uC0AC",adjective:"\uD615\uC6A9\uC0AC",adverb:"\uBD80\uC0AC",numeral:"\uC218\uC0AC",determiner:"\uAD00\uD615\uC0AC",interjection:"\uAC10\uD0C4\uC0AC",particle:"\uC870\uC0AC",affix:"\uC811\uC0AC",dependentNoun:"\uC758\uC874\uBA85\uC0AC",pronoun:"\uB300\uBA85\uC0AC",auxVerb:"\uBCF4\uC870\uB3D9\uC0AC",auxAdjective:"\uBCF4\uC870\uD615\uC6A9\uC0AC"},reorder:{moved:"{{total}}\uCE78 \uAC00\uC6B4\uB370 {{n}}\uBC88\uC9F8\uB85C \uC62E\uAE40",handle:"{{word}} \uC21C\uC11C \uBC14\uAFB8\uAE30 (Alt + \uD654\uC0B4\uD45C)",hint:"Alt + \u2190 \u2192 \uB85C \uC21C\uC11C \uBC14\uAFB8\uAE30"}},Mf={editBanner:{message:"\uC800\uC7A5\uD558\uBA74 \uC9C0\uAE08 \uC218\uC815 \uC911\uC778 \uB2E8\uC5B4\uD45C\uAC00 \uAC31\uC2E0\uB429\uB2C8\uB2E4."},filterTitle:"\uB2E8\uC5B4 \uAC80\uC0C9 \uC124\uC815",filter:{positionAny:"\uBB34\uAD00",positionHead:"\uC5B4\uB450",positionMid:"\uC5B4\uC911",positionTail:"\uC5B4\uB9D0",difficulty:"\uB4F1\uAE09",grade:"{{n}}\uB4F1\uAE09",syllables:"\uC74C\uC808 \uC218",syllable:"{{n}}\uC74C\uC808",syllable5plus:"5\uC74C\uC808 \uC774\uC0C1",partOfSpeech:"\uD488\uC0AC",pos:{noun:"\uCCB4\uC5B8(\uBA85\uC0AC, \uC218\uC0AC)",verb:"\uC6A9\uC5B8(\uB3D9\uC0AC, \uD615\uC6A9\uC0AC)",modifier:"\uC218\uC2DD\uC5B8(\uBD80\uC0AC, \uAD00\uD615\uC0AC)"},wordType:"\uC720\uD615",type:{native:"\uACE0\uC720\uC5B4",sino:"\uD55C\uC790\uC5B4",foreign:"\uC678\uB798\uC5B4",mixed:"\uD63C\uC885\uC5B4"},exclude:"\uC81C\uC678",excludeNoImage:"\uC774\uBBF8\uC9C0 \uC5C6\uC74C"},searchButton:"\uAC80\uC0C9\uD558\uAE30",resultUnit:"\uB2E8\uC5B4",remaining:"{{count}}\uAC1C \uB0A8\uC74C",resultDisc:"\uC6D0\uD558\uB294 {{unit}} \uC120\uD0DD\uD558\uC138\uC694. {{max}}\uAC1C\uAE4C\uC9C0 \uC120\uD0DD\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4. ({{selected}}/{{max}})",resultTitlePrefix:"\uCD1D ",resultTitleSuffix:"\uAC1C\uC758 {{unit}} \uAC80\uC0C9\uB418\uC5C8\uC2B5\uB2C8\uB2E4.",emptyResult:"\uAC80\uC0C9 \uACB0\uACFC\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4.",groupCount:"{{count}}\uAC1C",sort:{aria:"\uC815\uB82C",match:"\uC2DC\uC791 \uC6B0\uC120",ganada:"\uAC00\uB098\uB2E4\uC21C \u2191",ganadaDesc:"\uAC00\uB098\uB2E4\uC21C \u2193",syllable:"\uC74C\uC808 \uC218 \u2191",syllableDesc:"\uC74C\uC808 \uC218 \u2193",grade:"\uB4F1\uAE09\uC21C \u2191",gradeDesc:"\uB4F1\uAE09\uC21C \u2193",original:"\uBC1B\uC740 \uC21C\uC11C"},pageSize:"{{count}}\uAC1C\uC529 \uBCF4\uAE30",pageSizeAria:"\uD398\uC774\uC9C0 \uD06C\uAE30",popup:{title:"{{n}}\uBC88 \uCE78\uC5D0 \uB123\uC744 \uB2E8\uC5B4\uB97C \uC120\uD0DD\uD558\uC138\uC694"}},Lf={clearAllSelection:"\uBAA8\uB450 \uC120\uD0DD \uD574\uC81C",divLine:"\uB300\uB9BD\uC120",removePair:"\uB300\uB9BD\uC30D \uBE7C\uAE30",removeWord:"\uB2E8\uC5B4 \uBE7C\uAE30"},$f={title:"\uC8FC\uC81C\uBCC4 \uB4E3\uAE30",subtitle:"\uC8FC\uC81C\uB97C \uC120\uD0DD\uD558\uACE0 \uB4E3\uAE30 \uD6C8\uB828\uC744 \uC2DC\uC791\uD558\uC138\uC694.",noiseTitle:"\uC18C\uC74C \uD558 \uBB38\uC7A5\uB4E3\uAE30",shortStoryTitle:"\uC9E7\uC740 \uC774\uC57C\uAE30 \uB4E3\uAE30",FOOD:"\uC74C\uC2DD",HLTH:"\uAC74\uAC15",WETH:"\uB0A0\uC528",PRSN:"\uC778\uBB3C",KRCT:"\uD55C\uAD6D\uBB38\uD654",STRY:"\uC774\uC57C\uAE30",LOCA:"\uC9C0\uC5ED",SOAR:"\uC0AC\uD68C\uC640 \uC608\uC220",NTSC:"\uC790\uC5F0\uACFC \uACFC\uD559",SPRT:"\uC2A4\uD3EC\uCE20",sub:{TRKRFD:"\uD55C\uAD6D \uC804\uD1B5\uC74C\uC2DD",MDKRFD:"\uD55C\uAD6D \uD604\uB300\uC74C\uC2DD",WRLDFD:"\uC138\uACC4\uC758 \uC74C\uC2DD",MTRFRT:"\uC2DD\uC7AC\uB8CC\uC640 \uACFC\uC77C",GEFDKL:"\uC74C\uC2DD \uC0C1\uC2DD",HTETHB:"\uAC74\uAC15\uD55C \uC2DD\uC2B5\uAD00",DISILL:"\uBCD1\uACFC \uC9C8\uD658",EXCISE:"\uC6B4\uB3D9",GEHTKL:"\uAC74\uAC15\uC0C1\uC2DD",GESSKL:"\uACC4\uC808\uC0C1\uC2DD",SNWRAN:"\uB208\uACFC \uBE44",WTHFCT:"\uC77C\uAE30\uC608\uBCF4",GEWTKL:"\uB0A0\uC528\uC0C1\uC2DD",JODYPS:"\uC870\uC120\uC2DC\uB300",MDKRPS:"\uD55C\uAD6D \uADFC\uD604\uB300",THKDPS:"\uC0BC\uAD6D\uC2DC\uB300",WRLART:"\uC138\uACC4\uC758 \uC608\uC220\uAC00",WRLPSN:"\uC138\uACC4\uC758 \uC778\uBB3C",KRLANG:"\uC6B0\uB9AC\uB9D0",TRPLCT:"\uC804\uD1B5\uB180\uC774",HERITG:"\uBB38\uD654\uC7AC",EVTFES:"\uD589\uC0AC\uC640 \uCD95\uC81C",GECTKL:"\uC0C1\uC2DD",FRYTAL:"\uB3D9\uD654",AMZING:"\uC2E0\uAE30\uD55C \uC774\uC57C\uAE30",DAYSTR:"\uC77C\uC0C1 \uC18D \uC774\uC57C\uAE30",KRLDMK:"\uD55C\uAD6D\uC758 \uBA85\uC18C",SELNMK:"\uC11C\uC6B8\uC758 \uBA85\uC18C",WRDTRB:"\uC138\uACC4\uC5EC\uD589",NAVIGT:"\uAE38 \uCC3E\uAE30",KRSOCI:"\uD55C\uAD6D",ECONEW:"\uACBD\uC81C\uC640 \uB274\uC2A4",GENART:"\uC608\uC220",GELFKL:"\uC0DD\uD65C \uC0C1\uC2DD",ANIMAL:"\uB3D9\uBB3C",PLANTS:"\uC2DD\uBB3C",ETHPLT:"\uC9C0\uAD6C",TOLELC:"\uB3C4\uAD6C\uC640 \uC804\uC790\uC81C\uD488",GESCKL:"\uACFC\uD559\uC0C1\uC2DD",INVDSP:"\uAC1C\uC778\uACBD\uAE30",MARART:"\uACA9\uD22C\uAE30",TEAMSP:"\uB2E8\uCCB4\uACBD\uAE30",FOOTBL:"\uCD95\uAD6C",GESPKL:"\uC2A4\uD3EC\uCE20 \uC0C1\uC2DD"}},Rf={maxUses:"\uCD5C\uB300 \uC0AC\uC6A9 \uD69F\uC218 (\uBE44\uC6CC\uB450\uBA74 \uBB34\uC81C\uD55C)",redirect:"\uC774\uB3D9\uD560 \uD398\uC774\uC9C0 URL (\uBE44\uC6CC\uB450\uBA74 \uC571 \uBA54\uC778)",creating:"\uC0DD\uC131 \uC911\u2026",create:"\uB9C1\uD06C \uC0DD\uC131",created:"\u2713 \uB9C1\uD06C\uAC00 \uC0DD\uC131\uB418\uC5C8\uC2B5\uB2C8\uB2E4",copied:"\uBCF5\uC0AC\uB428!",copy:"\uBCF5\uC0AC",loading:"\uBD88\uB7EC\uC624\uB294 \uC911\u2026",empty:"\uC0DD\uC131\uB41C \uB9C1\uD06C\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4.",uses:"{{count}}\uD68C \uC0AC\uC6A9",expiresAt:"\uB9CC\uB8CC: {{date}}",createdAt:"\uC0DD\uC131: {{date}}",confirmDelete:"\uC0AD\uC81C\uD560\uAE4C\uC694?",deactivate:"\uBE44\uD65C\uC131\uD654",delete:"\uC0AD\uC81C",status:{active:"\uC720\uD6A8",expired:"\uB9CC\uB8CC",inactive:"\uBE44\uD65C\uC131"}},Pf={passwordPlaceholder:"\uBE44\uBC00\uBC88\uD638 \uC785\uB825"},If={subtitle:"\uC8FC\uC81C\uB97C \uC120\uD0DD\uD558\uC5EC \uB4E3\uAE30 \uC5F0\uC2B5\uC744 \uC9C4\uD589\uD558\uC138\uC694."},Ff={direction:{left:"\uC88C",right:"\uC6B0",label:"\uBC29\uD5A5"},wornDate:"\uCC29\uC6A9\uC77C",deviceType:"\uC885\uB958",brand:"\uBE0C\uB79C\uB4DC",fitType:"\uCC29\uC6A9\uD615\uD0DC",productName:"\uC81C\uD488\uBA85",validationError:{brandAndProduct:"\uBE0C\uB79C\uB4DC\uC640 \uC81C\uD488\uBA85\uC744 \uC785\uB825\uD574 \uC8FC\uC138\uC694."},addNew:"\uC0C8 \uAE30\uAE30 \uCD94\uAC00",selectFromList:"\uBAA9\uB85D\uC5D0\uC11C \uC120\uD0DD",removeDevice:"\uCC29\uC6A9 \uD574\uC81C",type:{hearingAid:"\uBCF4\uCCAD\uAE30",cochlearImplant:"\uC778\uACF5\uC640\uC6B0"}},Of={stat:{totalCustomers:"\uCD1D \uACE0\uAC1D",monthlyVisits:"\uC774\uB2EC \uCD1D \uBC29\uBB38"},chart:{visitDetail:"\uC0C1\uC138 \uBC29\uBB38 \uD604\uD669",trainingDetail:"\uC0C1\uC138 \uD6C8\uB828 \uD604\uD669",weekly:"\uC8FC\uBCC4",daily:"\uC77C\uBCC4",periodMonth:"\uC6D4",periodWeek:"\uC8FC",weeklyPrefix:"\uC8FC\uAC04",monthlyPrefix:"\uC6D4\uAC04",visit:"\uBC29\uBB38",reservation:"\uC608\uC57D",trainingDone:"\uD6C8\uB828 \uC644\uB8CC",trainingInProgress:"\uD6C8\uB828 \uC911",weekRange:"{{start}}~{{end}}",week:"{{n}}\uC8FC"},subscriptionStatus:{active:"{{pct}}% \uD65C\uC131",expired:"{{pct}}% \uB9CC\uB8CC",unused:"{{pct}}% \uBBF8\uC0AC\uC6A9"}},Hf={editBanner:{message:"\uC800\uC7A5\uD558\uBA74 \uC9C0\uAE08 \uC218\uC815 \uC911\uC778 \uB300\uB9BD\uC30D\uD45C\uAC00 \uAC31\uC2E0\uB429\uB2C8\uB2E4."},phonemeSelect:{title:"\uC74C\uC18C \uC120\uD0DD",vs:"\uB300"},caution:"\uC720\uC758\uC0AC\uD56D",mode:{include:"\uC74C\uC18C \uD3EC\uD568",pick:"\uC74C\uC18C \uB300\uB9BD",contrast:"\uC74C\uC18C \uB300\uB9BD \uC9C0\uC815",infoTitle:"\uB300\uB9BD \uBC29\uC2DD",infoInclude:"\uC74C\uC18C \uD3EC\uD568 \u2014 \uC120\uD0DD\uD55C \uC74C\uC18C\uAC00 \uBAA8\uB450 \uB4E4\uC5B4\uAC04 \uB2E8\uC5B4\uC640 \uADF8 \uB300\uB9BD\uC30D\uC744 \uCC3E\uC544\uC694.",infoPick:"\uC74C\uC18C \uB300\uB9BD \u2014 \uC120\uD0DD\uD55C \uC74C\uC18C\uAC00 \uB300\uB9BD\uC30D \uB450 \uB2E8\uC5B4\uC758 \uC2E4\uC81C \uCC28\uC774\uC810\uC77C \uB54C\uB9CC \uB9E4\uCE6D\uB3FC\uC694.",infoContrast:"\uC74C\uC18C \uB300\uB9BD \uC9C0\uC815 \u2014 \uAE30\uC900 \uB2E8\uC5B4\uC640 \uB300\uB9BD \uB2E8\uC5B4\uC758 \uC74C\uC18C\uB97C \uAC01\uAC01 \uC9C1\uC811 \uC120\uD0DD\uD574 \uB300\uB9BD\uC30D\uC744 \uCC3E\uC544\uC694."},count:"{{n}}\uAC1C",input:{char:"\uAE00\uC790 \uC120\uD0DD",pron:"\uBC1C\uC74C \uC120\uD0DD",infoTitle:"\uC785\uB825 \uBC29\uC2DD",infoChar:"\uAE00\uC790 \uC120\uD0DD \u2014 \uC120\uD0DD\uD55C \uC74C\uC18C\uB85C \uB2E8\uC5B4(\uAE00\uC790 \uAE30\uC900)\uB97C \uCC3E\uC740 \uD6C4, \uB2E8\uC5B4\uC758 \uD45C\uC900 \uBC1C\uC74C \uB300\uB9BD\uC30D\uC744 \uCC3E\uC2B5\uB2C8\uB2E4.",infoPron:"\uBC1C\uC74C \uC120\uD0DD \u2014 \uC120\uD0DD\uD55C \uC74C\uC18C\uB85C \uD45C\uC900 \uBC1C\uC74C \uB300\uB9BD\uC30D\uC744 \uCC3E\uC2B5\uB2C8\uB2E4."},phonemeN:"{{n}}\uBC88 \uC74C\uC808",phonemeSingleLabel:"\uC74C\uC808",phonemeContrastSingleLabel:"\uB300\uB9BD \uC74C\uC808",ordinals:["\uCCAB\uBC88\uC9F8","\uB450\uBC88\uC9F8","\uC138\uBC88\uC9F8","\uB124\uBC88\uC9F8"],phonemeOrdinalLabel:"{{ordinal}} \uC74C\uC808",phonemeContrastOrdinalLabel:"\uB300\uB9BD {{ordinal}} \uC74C\uC808",composition:"\uC815\uB2F5 \uB2E8\uC5B4 \uAD6C\uC131",syllableCount:"\uC74C\uC808 \uC218",syllableN:"{{n}}\uC74C\uC808",syllableNPlus:"{{n}}\uC74C\uC808 \uC774\uC0C1",onset:"\uCD08\uC131",vowel:"\uBAA8\uC74C",coda:"\uC885\uC131",filter:{searchOptionsTitle:"\uB300\uB9BD \uC124\uC815",searchModeLabel:"\uB300\uB9BD \uBC29\uC2DD",countLabel:"\uC785\uB825 \uC74C\uC808 \uAC2F\uC218",inputModeLabel:"\uC785\uB825 \uBC29\uC2DD",phonemeOrder:"\uC785\uB825 \uC74C\uC808 \uC704\uCE58",phonemeOrderInfo:["\uC77C\uCE58: \uB300\uB9BD\uC30D\uC774 \uC815\uD655\uD788 \uAC19\uC740 \uC704\uCE58(\uC74C\uC808)\uC5D0\uC11C\uB9CC \uCC28\uC774 \uB098\uC57C \uB9E4\uCE6D\uB3FC\uC694.","\uBB34\uAD00: \uCC28\uC774 \uB098\uB294 \uC704\uCE58\uB294 \uC0C1\uAD00\uC5C6\uC774 \uB9E4\uCE6D\uB3FC\uC694."],orderAny:"\uBB34\uAD00",orderMatch:"\uC77C\uCE58",difficultyInfo:"\uAD6D\uB9BD\uAD6D\uC5B4\uC6D0\uC758 \uAE30\uCD08 \uC5B4\uD718 \uB4F1\uAE09\uC774 \uACB0\uACFC\uC5D0 \uBC18\uC601\uB429\uB2C8\uB2E4.",selectLabel:"\uC120\uD0DD",onlyHasImage:"\uC774\uBBF8\uC9C0 \uC788\uB294 \uB2E8\uC5B4\uB9CC",onlySameStructure:"\uC74C\uC18C \uAD6C\uC870 \uAC19\uC740 \uB2E8\uC5B4\uB9CC"},searchLabel:{error:"\uB370\uC774\uD130 \uBD88\uB7EC\uC624\uAE30 \uC2E4\uD328",loading:"\uBD88\uB7EC\uC624\uB294 \uC911\u2026"},confirmMessage:"\uC120\uD0DD\uD55C {{unit}} {{count}}\uAC1C\uB97C \uD3EC\uD568\uD55C \uB2E8\uC5B4 \uD45C \uC815\uBCF4\uAC00 \uC0AC\uB77C\uC9D1\uB2C8\uB2E4.",resetOptions:"\uAC80\uC0C9 \uC635\uC158 \uCD08\uAE30\uD654",phonemeContrast:"\uB300\uB9BD {{n}}\uBC88 \uC74C\uC808",infoNotes:["\uBBF8\uB9AC\uBCF4\uAE30 \uAE00\uC790\uB294 \uC120\uD0DD\uD55C \uC74C\uC18C\uC758 \uC870\uD569 \uC608\uC2DC\uC785\uB2C8\uB2E4. \uC2E4\uC81C \uAC80\uC0C9\uC740 \uD574\uB2F9 \uC74C\uC18C\uAC00 \uD3EC\uD568\uB41C \uBAA8\uB4E0 \uB2E8\uC5B4\uB97C \uB300\uC0C1\uC73C\uB85C \uD569\uB2C8\uB2E4.","\uCD08\uC131 '\u3147'\uC740 \uC120\uD0DD\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4. \uB2E8\uC5B4 \uC55E\uC5D0 \uC624\uB294 \u3147\uC740 \uC2E4\uC9C8\uC801\uC73C\uB85C \uBB34\uC74C\uC774\uC5B4\uC11C \uB300\uB9BD\uC30D \uC131\uB9BD\uC5D0 \uC601\uD5A5\uC744 \uC8FC\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.","\uCD08\uC131\uACFC \uC885\uC131\uB9CC \uC120\uD0DD\uD558\uBA74 \uBAA8\uC74C\uC740 '\u314F'\uB85C \uC790\uB3D9 \uD45C\uC2DC\uB429\uB2C8\uB2E4.","\uC74C\uC18C \uAC1C\uC218\uB97C \uB298\uB9AC\uBA74 \uAC01 \uC74C\uC18C \uC0AC\uC774\uC758 \uB300\uB9BD\uC30D\uC744 \uAC80\uC0C9\uD569\uB2C8\uB2E4."]},zf={sentenceTyping:{roundCount:"{{rounds}}\uBB38\uC81C \xB7 \uBB38\uC81C\uB2F9 {{timeLimit}}\uCD08"},wordDefense:{me:"\uB098"},dictation:{title:"\uBC1B\uC544\uC4F0\uAE30",desc:"\uBB38\uC7A5\uC744 \uB4E3\uACE0 \uC815\uD655\uD788 \uBC1B\uC544\uC801\uB294 \uC5F0\uC2B5\uC785\uB2C8\uB2E4.",comingSoon:"\uAD6C\uD604 \uC608\uC815: \uC74C\uC131 \uC7AC\uC0DD, \uC785\uB825 \uD544\uB4DC, \uC815\uB2F5 \uBE44\uAD50"},result:{heading:"{{number}}\uB2E8\uACC4 \uD574\uB2F5",retry:"\uB2E4\uC2DC \uD480\uAE30"},common:{accuracy:"{{pct}}% \uC815\uD655\uB3C4"},soundMatch:{title:"\uC18C\uB9AC \uB9E4\uCE6D",desc:"\uAC19\uC740 \uC18C\uB9AC\uB97C \uAC00\uC9C4 \uB2E8\uC5B4 \uB610\uB294 \uBB38\uC7A5\uC744 \uBE60\uB974\uAC8C \uB9E4\uCE6D\uD558\uB294 \uAC8C\uC784\uC785\uB2C8\uB2E4.",comingSoon:"\uAD6C\uD604 \uC608\uC815: \uD50C\uB808\uC774 \uBC84\uD2BC, \uD0C0\uC774\uBA38, \uC810\uC218 \uC9D1\uACC4"},orderSequence:{title:"\uBB38\uC7A5 \uC21C\uC11C\uD654",desc:"\uD769\uC5B4\uC9C4 \uBB38\uC7A5 \uC870\uAC01\uC744 \uC62C\uBC14\uB978 \uC21C\uC11C\uB85C \uBC30\uC5F4\uD558\uB294 \uD6C8\uB828\uC785\uB2C8\uB2E4.",comingSoon:"\uAD6C\uD604 \uC608\uC815: \uBB38\uC7A5 \uC138\uD2B8, \uC21C\uC11C \uD655\uC778 \uC778\uD130\uD398\uC774\uC2A4"},speedListen:{title:"\uC18D\uB3C4 \uB4E3\uAE30",desc:"\uC2DC\uAC04 \uC81C\uD55C \uB0B4\uC5D0 \uBB38\uC7A5\uC758 \uB2E8\uC5B4 \uC218\uB97C \uB9DE\uCD94\uB294 \uB3C4\uC804\uD615 \uAC8C\uC784\uC785\uB2C8\uB2E4.",comingSoon:"\uAD6C\uD604 \uC608\uC815: \uC81C\uD55C\uC2DC\uAC04, \uC810\uC218\uD310"},noiseChallenge:{title:"\uC18C\uC74C \uCC4C\uB9B0\uC9C0",desc:"\uBC30\uACBD \uC18C\uC74C \uC18D\uC5D0\uC11C \uBB38\uC7A5\uC744 \uBD84\uBCC4\uD558\uB294 \uC5F0\uC2B5\uC785\uB2C8\uB2E4.",comingSoon:"\uAD6C\uD604 \uC608\uC815: \uB2E4\uC591\uD55C \uC18C\uC74C \uB808\uBCA8, \uC810\uC218 \uC9D1\uACC4"},fastListen:{title:"\uBE60\uB978 \uB4E3\uAE30",desc:"\uC9E7\uC740 \uBB38\uC7A5\uC744 \uBE60\uB974\uAC8C \uB4E4\uB824\uC8FC\uACE0 \uD575\uC2EC \uB2E8\uC5B4\uB97C \uC120\uD0DD\uD558\uB294 \uAC8C\uC784\uC785\uB2C8\uB2E4.",comingSoon:"\uAD6C\uD604 \uC608\uC815: \uB09C\uC774\uB3C4\uBCC4 \uC18D\uB3C4, \uD0C0\uC774\uBA38"},shadowing:{title:"\uC250\uB3C4\uC789",desc:"\uBB38\uC7A5\uC744 \uB530\uB77C \uB9D0\uD558\uBA70 \uBC1C\uC74C\uACFC \uC5B5\uC591\uC744 \uC5F0\uC2B5\uD558\uB294 \uBAA8\uB4DC\uC785\uB2C8\uB2E4.",comingSoon:"\uAD6C\uD604 \uC608\uC815: \uC7AC\uC0DD, \uB179\uC74C, \uBE44\uAD50 \uD53C\uB4DC\uBC31"},phonemeHunt:{title:"\uC74C\uC6B4 \uCC3E\uAE30",desc:"\uD2B9\uC815 \uC74C\uC6B4(\uBC1C\uC74C)\uC744 \uD3EC\uD568\uD55C \uB2E8\uC5B4\uB97C \uCC3E\uC544\uB0B4\uB294 \uAC8C\uC784\uC785\uB2C8\uB2E4.",comingSoon:"\uAD6C\uD604 \uC608\uC815: \uC74C\uC6B4 \uD544\uD130, \uD78C\uD2B8 \uAE30\uB2A5"}},Vf={lead:`\uC544\uC774\uD574\uBE0C\uB294 \uC18C\uB9AC\uB97C \uD1B5\uD574
|
|
848
848
|
\uC2E0\uB8B0\uB97C \uC313\uACE0
|
|
849
849
|
\uD68C\uBCF5\uC744 \uB3D5\uC2B5\uB2C8\uB2E4.`,site:{title:"\uC0AC\uC774\uD2B8",malgwi:"\uB9D0\uADC0",soundDirection:"\uC18C\uB9AC\uBC29\uD5A5\uC131\uC2DC\uC2A4\uD15C",vrSoundDirection:"VR\uC18C\uB9AC\uBC29\uD5A5\uC131\uC2DC\uC2A4\uD15C",hearingTest:"\uCCAD\uB825\uD14C\uC2A4\uD2B8 \uD504\uB85C"},sns:{title:"SNS",naverBlog:"\uB124\uC774\uBC84 \uBE14\uB85C\uADF8",kakao:"KAKAO Talk \uC624\uD508\uCC44\uD305"},policy:{title:"\uC815\uCC45",terms:"\uC774\uC6A9\uC57D\uAD00",privacy:"\uAC1C\uC778\uC815\uBCF4 \uCC98\uB9AC\uBC29\uCE68"},ceo:"\uB300\uD45C",address:"\uC8FC\uC18C",support:"\uACE0\uAC1D\uC13C\uD130",ceoName:"\uD55C\uC9C0\uD61C",addressValue:"\uAC15\uC6D0\uB3C4 \uCD98\uCC9C\uC2DC \uC2DC\uCCAD\uAE38 32 \uD574\uCC2C\uBE4C\uB529 3\uCE35 302\uD638"},Wf={trainingPhone:{topic:"\uD143\uBC2D\uAC00\uAFB8\uAE30",prev:"\uC774\uC804",next:"\uB2E4\uC74C",speed:"\uBE60\uB974\uAE30 3",noiseType:"\uC640\uAE00\uC640\uAE00",settings:"\uC124\uC815",start:{caption:"\uC544\uB798 \uD50C\uB808\uC774(\u25B6) \uBC84\uD2BC\uC744 \uB20C\uB7EC \uBB38\uC7A5\uC744 \uC798 \uB4E4\uC5B4\uBCF4\uC138\uC694. \uC798 \uB4E4\uC73C\uC2E0 \uB4A4 \uBB38\uC7A5\uC744 \uD655\uC778\uD558\uC138\uC694."},feedback:{caption:"\uC798 \uD0A4\uC6B4 \uBAA8\uC885\uC744 \uD143\uBC2D\uC5D0 \uC2EC\uACE0 \uBE44\uB2D0\uC744 \uC798 \uB36E\uC5B4 \uC90D\uB2C8\uB2E4."},done:{heardWell:"\uC798 \uB4E4\uB9B0 \uBB38\uC7A5",listenAgain:"\uD55C \uBC88 \uB354 \uB4E3\uAE30"}}},qf={timeHM:"{{h}}\uC2DC {{m}}\uBD84",timeH:"{{h}}\uC2DC"},Uf={options:"\uD6C8\uB828 \uC635\uC158",difficulty:"\uB09C\uC774\uB3C4",exclude:"\uC81C\uC678",chosung:"\uCD08\uC131",excludeOptions:{none:"\uC5C6\uC74C",noImage:"\uC774\uBBF8\uC9C0 \uC5C6\uC74C"}},Gf={answer:"\uC815\uB2F5",distractor:"\uC624\uB2F5"},Kf={phaseWordDownload:"\uB2E8\uC5B4 \uB370\uC774\uD130 \uB2E4\uC6B4\uB85C\uB4DC",phaseImageCheck:"\uC774\uBBF8\uC9C0 \uD655\uC778",phasePairAnalysis:"\uB2E8\uC5B4\uC30D \uBD84\uC11D",downloadingCount:"{{n}}\uAC1C \uB2E4\uC6B4\uB85C\uB4DC \uC911",checkingPage:"{{page}}\uD398\uC774\uC9C0 \uBAA9\uB85D \uD655\uC778 \uC911",imageCount:"{{done}} / {{total}}\uAC1C"},Yf={clearAriaLabel:"\uC785\uB825\uAC12 \uC9C0\uC6B0\uAE30"},Zf={ariaLabel:"\uC120\uD0DD \uD0ED"},Xf={ariaLabel:"\uD0ED"},Jf={dragPrompt:"\uD30C\uC77C\uC744 \uC774\uACF3\uC5D0 \uB4DC\uB798\uADF8\uD558\uC5EC \uC5C5\uB85C\uB4DC",browseButton:"\uD30C\uC77C \uC120\uD0DD",removeAriaLabel:"{{name}} \uC81C\uAC70"},Qf={ariaLabel:"\uC0AC\uC6A9\uC790 \uC544\uBC14\uD0C0"},eC={relativeDay:{today:"\uC624\uB298",yesterday:"\uC5B4\uC81C",daysAgo:"{{n}}\uC77C \uC804"},reason:{notLoggedIn:"\uB85C\uADF8\uC778\uC774 \uD544\uC694\uD569\uB2C8\uB2E4."},list:{title:"\uBC1B\uC740 \uC219\uC81C"},status:{expired:"\uB9CC\uB8CC\uB428",done:"\uC644\uB8CC {{count}}\uD68C \xB7 {{date}}",notDone:"\uBBF8\uC644\uB8CC"}},tC={weekly:{title:"\uC8FC\uAC04 \uD6C8\uB828 \uD604\uD669",daily:"\uC624\uB298\uC758 \uB4E3\uAE30",crossword:"\uAC00\uB85C\uC138\uB85C"},homework:{title:"\uC219\uC81C \uC9C4\uD589\uD604\uD669",totalRate:"\uC804\uCCB4 \uC644\uB8CC\uC728",count:"\uC804\uCCB4",done:"\uC644\uB8CC",remaining:"\uBBF8\uC644\uB8CC"},today:{tooltipTotal:"\uC804\uCCB4",tooltipDone:"\uC644\uB8CC"},filter:{countSuffix:" \uD6C8\uB828"},time:{countLabel:"{{n}}\uD68C \uD6C8\uB828",empty:"\uD6C8\uB828 \uAE30\uB85D\uC774 \uC5C6\uC2B5\uB2C8\uB2E4."},daily:{title:"\uC624\uB298\uC758 \uB4E3\uAE30 \uAE30\uB85D",empty:"\uC644\uB8CC\uD55C \uD68C\uCC28\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4."},crossword:{title:"\uAC00\uB85C\uC138\uB85C\uD034\uC988",empty:"\uC644\uB8CC\uD55C \uB808\uBCA8\uC774 \uC5C6\uC2B5\uB2C8\uB2E4"},visit:{title:"\uBC29\uBB38 \uC5F0\uB3D9 \uAE30\uB85D"},detail:"\uC0C1\uC138\uBCF4\uAE30",trainingType:{LISTEN_IN_NOISE:"\uC18C\uC74C \uD558 \uBB38\uC7A5",SHORT_STORY:"\uC9E7\uC740 \uC774\uC57C\uAE30",LONG_STORY:"\uAE34 \uC774\uC57C\uAE30",ORDERING_SENTENCE:"\uBB38\uC7A5 \uC21C\uC11C\uD654"}},nC={publish:{descPlaceholder:"\uB9D0\uADC0\uC790\uB8CC\uC2E4\uC5D0 \uD45C\uC2DC\uD560 \uD55C \uC904 \uC124\uBA85 (\uC120\uD0DD)"},import:"\uB0B4 \uD6C8\uB828\uC5D0 \uAC00\uC838\uC624\uAE30",publisher:"\uAC8C\uC2DC\uC790",time:{justNow:"\uBC29\uAE08 \uC804",minutesAgo:"{{n}}\uBD84 \uC804",hoursAgo:"{{n}}\uC2DC\uAC04 \uC804",daysAgo:"{{n}}\uC77C \uC804",weeksAgo:"{{n}}\uC8FC \uC804",monthsAgo:"{{n}}\uAC1C\uC6D4 \uC804",yearsAgo:"{{n}}\uB144 \uC804"},badge:{shared:"\uB9D0\uADC0\uC790\uB8CC\uC2E4"}},aC={manage:{unit:"\uAC74"}},rC={cancelLabel:"\uCDE8\uC18C"},oC={steps:"\uC9C4\uD589 \uB2E8\uACC4 {{current}} / {{total}}"},sC={panelTitle:"\uD6C8\uB828 \uC624\uB2F5",viewItems:"\uBB38\uD56D",viewTypes:"\uC720\uD615",colPending:"\uB0A8\uC740 \uAC83",colTrend:"\uBCC0\uD654",colRuns:"\uD310",unitItem:"\uAC1C",skippedOnly:"\uC61B \uAE30\uB85D {{n}}\uAC74\uC740 \uBB34\uC5C7\uC744 \uD47C \uAC83\uC778\uC9C0 \uC548 \uB0A8\uC544 \uC788\uC5B4 \uC148\uC5D0\uC11C \uBE90\uC2B5\uB2C8\uB2E4.",summaryLabel:"\uC313\uC778 \uAE30\uB85D",summaryValue:"{{items}}\uBB38\uD56D \xB7 \uC544\uC9C1 \uBABB \uC7A1\uC740 \uAC83 {{pending}}\uAC1C",nextLabel:"\uB2E4\uC74C\uC5D0 \uBCFC \uAC83",nextCount:"{{count}}\uAC1C",nextCountCapped:"{{total}}\uAC1C \uC911 {{shown}}\uAC1C",picked:"\u2192 {{what}}",typeClear:"\uB2E4 \uC7A1\uC558\uC5B4\uC694",typePending:"{{total}}\uAC1C \uC911 {{pending}}\uAC1C \uB0A8\uC74C",flat:"\uBCC0\uD654 \uC5C6\uC74C",runs:"{{count}}\uD310",avgDuration:"\uD3C9\uADE0 {{sec}}\uCD08"},iC={resetColumns:"\uCE78 \uB108\uBE44 \uCD08\uAE30\uD654"},lC={panelTitle:"\uB2E8\uC5B4\uD45C \uCC44\uC810",viewWords:"\uB0B1\uB9D0",viewTables:"\uD45C",colLatest:"\uB9C8\uC9C0\uB9C9",colTrend:"\uBCC0\uD654",unitTime:"\uD68C",summaryLabel:"\uC313\uC778 \uCC44\uC810",summaryValue:"{{times}}\uD68C \xB7 \uB0B1\uB9D0 {{words}}\uAC1C",nextLabel:"\uB2E4\uC74C\uC5D0 \uBCFC \uAC83",nextCount:"{{count}}\uAC1C",allClear:"\uC9C0\uB09C\uBC88\uC5D0 \uBAA8\uB450 \uB9DE\uD614\uC2B5\uB2C8\uB2E4.",times:"{{count}}\uD68C",flat:"\uBCC0\uD654 \uC5C6\uC74C",recentLabel:"\uCD5C\uADFC \uCC44\uC810",nextCountCapped:"{{total}}\uAC1C \uC911 {{shown}}\uAC1C"},cC={ariaLabel:"\uBC30\uB108",dotAriaLabel:"{{count}}\uAC1C \uC911 {{index}}\uBC88\uC9F8 \uBC30\uB108"},uC={selectYearMonth:"\uC5F0\uC6D4 \uC120\uD0DD",chooseDate:"\uB0A0\uC9DC \uC120\uD0DD"},dC={previewRegion:"\uBCF4\uACE0\uC11C \uBBF8\uB9AC\uBCF4\uAE30 \u2014 \uC88C\uC6B0\uB85C \uAD74\uB824 \uBCFC \uC218 \uC788\uC2B5\uB2C8\uB2E4"},pC={description:"\uC124\uBA85",textbox:"\uBCF8\uBB38",training:"\uD6C8\uB828 \uC548\uB0B4",menu:"\uBA54\uB274"},mC={devNone:"\uBC1C\uB2EC \uC790\uB8CC \uC5C6\uC74C",place:{labial:"\uC591\uC21C\uC74C",alveolar:"\uCE58\uC870\uC74C",palatal:"\uACBD\uAD6C\uAC1C\uC74C",velar:"\uC5F0\uAD6C\uAC1C\uC74C",glottal:"\uC131\uBB38\uC74C"}},hC={clearSelection:"\uC120\uD0DD \uD574\uC81C"},fC={showResult:"{{type}} \uACB0\uACFC\uBCF4\uAE30"},CC={selected:"\uC120\uD0DD\uB428",remove:"\uC81C\uAC70",exclude:"\uC81C\uC678",nthSelected:"{{n}}\uBC88\uC9F8 \uC120\uD0DD"},gC={loading:"\uBD88\uB7EC\uC624\uB294 \uC911\u2026"},bC={state:{active:"\uC18C\uB9AC \uB098\uB294 \uC911",played:"\uB4E4\uC74C",correct:"\uC815\uB2F5",wrong:"\uC624\uB2F5"}},yC={ariaLabel:"\uC774\uB3D9 \uACBD\uB85C"},vC={empty:"\uB4F1\uB85D\uB41C \uD56D\uBAA9\uC774 \uC5C6\uC2B5\uB2C8\uB2E4."},xC={main:"\uBA54\uC778 \uADF8\uB77C\uB514\uC5B8\uD2B8",soft:"\uC18C\uD504\uD2B8",sub:"\uC11C\uBE0C \uCEEC\uB7EC",deep:"\uB525 \uADF8\uB77C\uB514\uC5B8\uD2B8",softSub:"\uC18C\uD504\uD2B8 \uC11C\uBE0C",warm:"\uC6DC(\uAC15\uC870)",dark:"\uB2E4\uD06C",radial:"\uBC29\uC0AC\uD615 \uADF8\uB77C\uB514\uC5B8\uD2B8",diagonal:"\uB300\uAC01\uC120 \uD328\uD134",dots:"\uB3C4\uD2B8 \uD328\uD134",outline:"\uC544\uC6C3\uB77C\uC778",success:"\uC131\uACF5/\uC644\uB8CC",naver:"\uB124\uC774\uBC84 \uBE14\uB85C\uADF8 \uC548\uB0B4",instagram:"\uC778\uC2A4\uD0C0\uADF8\uB7A8 \uC548\uB0B4"},_C={common:sf,calendar:lf,passCard:cf,searchField:uf,rating:df,colorPicker:pf,dropdown:mf,accordion:hf,header:ff,nav:Cf,settings:gf,usage:bf,account:yf,help:vf,training:xf,trainingSettings:_f,customers:wf,payment:kf,coupons:Af,visits:Bf,company:Nf,trainingType:Sf,myWordTraining:Df,myWordTable:Ef,keyWords:jf,wordTable:Tf,wordSearch:Mf,wordPrint:Lf,topic:$f,accessLinkManager:Rf,login:Pf,trainingPlanRun:If,device:Ff,manager:Of,wordPairs:Hf,game:zf,footer:Vf,landing:Wf,date:qf,trainingSetPage:Uf,wordTrainingPreview:Gf,wordData:Kf,textField:Yf,segmentedControl:Zf,tabs:Xf,fileUpload:Jf,avatar:Qf,myHomework:eC,trainingStatus:tC,store:nC,homework:aC,inquiry:rC,progress:oC,trainingMiss:sC,table:iC,wordScore:lC,topBanner:cC,datePicker:uC,report:dC,tooltip:pC,phonemeProfile:mC,bulkBar:hC,debug:fC,badge:CC,loader:gC,soundCompass:bC,breadcrumb:yC,board:vC,promoBannerBg:xC},wC={statusFilter:"Filter by status",pageSizeSelect:"Items per page",selectedCount_one:"{{count}} selected",selectedCount_other:"{{count}} selected",moreFor:"More options for {{name}}",cancel:"Cancel",info:"Info",errorState:{message:"Couldn't load this.",retry:"Try again"},save:"Save",confirm:"Confirm",close:"Close",back:"Back",emptyTrainingName:"Training name is empty.",remove:"Remove",image:"Image",delete:"Delete",reset:"Reset",update:"Update",download:"Download",search:"Search",empty:"No data.",yes:"Yes",no:"No",all:"All",none:"None",days_one:"{{count}} day",days_other:"{{count}} days",loadMore:"Load More",retry:"Try Again",prevPage:"Previous page",nextPage:"Next page",play:"Play",pause:"Pause",playPause:"Play / Pause",replay:"Replay",subscription:"Subscription",done:"Done",failed:"Failed",continue:"Continue",notification:"Notice",emptyList:"No items",menu:"Menu",resetSelection:"Reset Selection",pageSizeLabel:"Show {{n}}",totalCountPrefix:"Total: ",totalCountSuffix:"",expand:"Expand",collapse:"Collapse",popup:"Popup",more:"More",codeBlock:"Code block",totalPrefix:"",copyCode:"Copy code",copied:"Copied",col:{problem:"Question"},phonetics:{place:{labial:"Bilabial",alveolar:"Alveolar",palatal:"Palatal",velar:"Velar",glottal:"Glottal"},vowel:{frontHigh:"Front high vowel",backHighUnrounded:"Back high unrounded vowel",backHighRounded:"Back high rounded vowel",frontMid:"Front mid vowel",backMidUnrounded:"Back mid unrounded vowel",backMidRounded:"Back mid rounded vowel",low:"Low vowel"},glide:{j:"j-glide",w:"w-glide",velar:"\u0270-glide"}},unknownError:"Unknown error",networkError:"The network connection is unstable. Check your connection and try again."},kC={rangeSelect:"Select period",dow:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],yearMonth:"{{month}}/{{year}}",prevMonth:"Previous month",addOnDate:"Add a visit on {{date}}",nextMonth:"Next month",prevWeek:"Previous week",nextWeek:"Next week",legend:{visited:"Visited",scheduled:"Scheduled",noVisit:"No Show"},periodSelect:"Period unit",visitCount:"{{count}} visit(s)"},AC={planSuffix:"Plan",labeledPlan:"{{label}} Plan",couponCode:"Pass Code",specialLabel:"Open Special",unitDay:"d",unitYear:"yr",remainingDay:"{{n}}d left",remainingHour:"{{n}}h left",remainingMinute:"{{n}}m left",remainingSecond:"{{n}}s left",menu:{use:"Activate",refund:"Refund",delete:"Delete"}},BC={clearAriaLabel:"Clear search"},NC={starLabel:"Select star {{n}}",valueLabel:"{{value}} out of {{max}}",groupLabel:"Rating"},SC={selected:"selected"},DC={placeholder:"Select"},EC={collapse:"Collapse",expand:"Expand"},jC={biArea:"BI area",biSymbol:"BI symbol",logoMalgwi:"Malgwi logo",logoManager:"Malgwi Manager logo",menuOpen:"Open menu",utilMenu:"Utility menu",menuClose:"Close menu"},TC={mainMenu:"Main menu",bottomNav:"Bottom navigation",goToManager:"Go to Malgwi Manager",goToMalgwi:"Go to Malgwi",modeLabelManager:"Malgwi Manager",modeLabelMalgwi:"Malgwi",training:"Training",settings:"Settings",notifications:"Notifications",account:"Account",help:"Help",feedback:"Report a bug",debug:"Debug",coupons:"Coupons",topic:"By Topic",trainingType:"By Training Type",wordPairs:"Word Pairs",wordSearch:"Word Search",wordTable:"Word Table Creator",company:"Company Info",more:"More",moreMenu:"More menu",badgeLabel:"{{label}}, {{count}}"},MC={language:{training:{label:"Training Language",sub:"Language used for training words and speech"}},notifications:{title:"Notifications"},display:{fontSize:{small:"Small",large:"Large"}},cache:{title:"Cache Management",confirmMessage:"Delete cache ({{size}}). Do you want to continue?",delete:"Delete",deleting:"Deleting",cleared:"Cache cleared successfully.",group:{wordData:{label:"Word Data",sub:"Word list and version info"},pairIndex:{label:"Pair Index",sub:"Onset\xB7vowel\xB7coda minimal pair analysis cache"},imageCache:{label:"Image Cache",sub:"Word image existence check results"},trainingRecord:{label:"Training Record",sub:"Daily training progress and streak"}}},button:{save:"Save Settings"},popup:{clear:{confirm:"Reset"},update:{confirm:"Update"},cache:{title:"Delete {{label}}",message:"Delete {{label}} ({{size}}). Do you want to continue?"}},saved:"\u2713 Saved",account:{title:"Account",delete:{sub:"You can restore your account within 30 days of withdrawal."}}},LC={addButton:"Add Subscription",couponButton:"Enter Coupon",active:{infoTitle:"Subscription Info",refund:"Request Refund",startDate:"Start Date",endDate:"End Date",remaining:"Remaining"},pending:{title:"Pending",empty:"No pending subscriptions."},loading:"Loading\u2026",segment:{personal:"Malgwi",org:"Malgwi Manager"},org:{title:"Current Plan",disc:"Subscription plan in use by your organization.",empty:"No organization plan registered.",fallbackTitle:"Organization Plan",startDate:"Start Date",endDate:"End Date",remaining:"Remaining",duration:"Duration"}},$C={profile:{planSuffix:"",plan:"Plan"},basicInfo:{name:{placeholder:"John Doe"}},security:{title:"Security",password:{label:"Password",currentRequired:"Enter your current password.",newRequired:"Enter a new password.",mismatch:"The new passwords do not match.",changed:"Your password has been changed."},twoFactor:{label:"Two-Factor Authentication",sub:"Strengthen your account security"}}},RC={guide:{faq:{title:"FAQ",desc:"View all frequently asked questions"}}},PC={settings:"Settings",start:{title:"Start Word Training",description:"Select a training type below to begin"},difficulty:{tooltip:"The easiest difficulty is 'Random', the hardest is 'Initial Consonant Difference'."},contrast:{label:"Contrast",type:"Contrast Type",count:"Contrast Count",n:"{{n}}"},filter:{random:"Random",trainOnset:"Onset",trainVowel:"Vowel",trainCoda:"Coda",phonemeGroup:"Training phonemes",noLimit:"Any",codaExclude:"Exclude",gradeLabel:"Grade",excludeImageInfo:"Only words with images: keeps only results with a registered word image.",sameStructureInfo:"Only same phoneme structure: keeps only pairs where the correct and wrong answers share the same syllable structure (length, batchim, etc.).",selectSection:"Select",excludeImage:"Only words with images",sameStructure:"Only same phoneme structure"},noQuestions:"No questions available.",countQuestions:"{{n}} questions",countSentences:"{{n}} sentences",comingSoon:"Coming Soon",nextQuestion:"Next",noiseRatioTitle:"Noise Ratio",noiseRatioValue:"{{ratio}}\xD7",noiseTypeTitle:"Noise Type",playVolumeTitle:"Volume",playSpeedTitle:"Speed",meter:{sentence:"Playback",noise:"Noise",toggle:"Show Audio Meter"},viewResult:"View Results",problemNotice:"Problem {{n}}.",trainingSettingsTitle:"Training Settings",sentencePreview:"Sentence Preview",notHeard:"Didn't hear it.",heardWell:"Heard it well.",confirmTitle:"Check the sentence and select whether you heard it.",noSoundWaveform:"Waveform is not shown for sound-comparison questions.",noise:{level:{none:"None",weak:"Weak",medium:"Medium",strong:"Strong",veryStrong:"Very Strong"},type:{none:"None",default:"Default",street:"Street",buzz:"Buzzing",restaurant:"Restaurant"}},listenTitle:"Please listen to the sentence.",listenButton:"Listen",playSound:"Play Sound",playAll:"Play All",selectInOrder:"Select the cards in the order you heard.",stop:"Stop",preview:"Preview",next:"Next",completed:"Completed",selected:"Selected",nthSelected:"Selection {{n}}",fontSizeMin:"Font size is at the minimum.",fontSizeMax:"Font size is at the maximum.",fontSizeDecrease:"Decrease font size",fontSizeIncrease:"Increase font size",toggleBackground:"Toggle background",cardInstructions:"Look at the word card, listen to the sound, and check it.",noCards:"No cards.",audioFetchError:"Failed to load the sound source.",ttsUnavailable:"Speech playback isn't available on this device.",selectConfirm:"Look at the question and select the answer.",orderListDefault:"Arrange the sentences in the order you heard.",result:{pendingDone:"Results are still being calculated, so you can't finish yet.",eyebrow:"Training Complete",title:"You've finished all the training!",scoreAria:"{{correct}} / {{total}} questions",elapsed:"Time Elapsed",summary:"You heard {{correct}} item(s) correctly.",tableAriaLabel:"Per-question judgement",colJudge:"Judgement",colAnswerSelected:"Answer \xB7 Selected",colAnswer:"Answer",colSelected:"Selected",heardWell:"Heard well",notHeard:"Didn't hear",notJudged:"Not judged",replay:"Replay",done:"Done",viewResult:"View Results",noContent:"(No content)"},up:"Move up",down:"Move down",prev:"Previous",listenLabel:"Listen",sourcePlay:"Play source {{n}}",listen:"Listen",audioStatus:{idle:"Idle",resolving:"Resolving\u2026",checking_exists:"Checking file\u2026",getting_signed_url:"Getting URL\u2026",downloading:"Downloading\u2026",measuring_duration:"Measuring length\u2026",ready:"Ready",error:"Error"}},IC={totalCount:" training bundles",sort:{customers:"Customers"},copyLink:"Copy Link",removeLink:"Remove Link",linkRemoved:"Link removed.",linkSaveFirst:"Please save the training bundle first.",linkSaveFirstHint:"You can only create a shared link from a saved training bundle.",linkCopySelect:"Copy blocked \u2014 link selected. Press Ctrl/\u2318+C to copy.",nameRequired:"Please enter a training bundle name.",itemRequired:"Please add at least one training item.",randomAdd:"Random Add",menu:{publish:"Post to Store",duplicate:"Duplicate Training Bundle",edit:"Edit Training Bundle",move:"Move Group",rename:"Rename"},itemCount:"Number of Items",renameGroup:"Rename Group"},FC={totalCount:" customers",loadError:"Failed to load list",basicInfo:{editTooltip:"Edit"},member:{placeholder:"Email or phone",link:"Link",linking:"Linking\u2026"},device:{title:"Hearing Devices",addTooltip:"Add New",addButton:"Add device",listTooltip:"View List",listTitle:" Device List",historyEmpty:"No device history registered",wearing:" in use",notRegistered:"Not registered",unit:"",wearingNow:"In use",wear:"Wear",unwear:"Remove",wornSince:"Since {{date}}",release:"Release",historyTitle:"Hearing device history"},schedule:{title:"Upcoming Visits",addTooltip:"Add Schedule",listTooltip:"View All",empty:"No upcoming visits",registerTitle:" Register Schedule",memoPlaceholder:"Enter a memo for this visit."},visitHistory:{title:"Visit History",addTooltip:"Add Visit",empty:"No visit history yet",popupTitle:" Visit History",registerTitle:" Register Visit"},moreItems:"more",viewAll:"View All",visits:{title:"Visits"},trainingRecord:{title:"Customer Training Records"},status:{trainingSubtitle:"Training Status"},detail:{session:{completedFmt:"Done {{done}}/{{total}} \xB7 {{duration}}"},visitSuffix:" visits"},homework:{active:"Active",copied:"Link copied.",copy:"Copy Link",inactive:"Inactive",title:"Homework Progress"},duration:{minSec:"{{m}}m {{s}}s",min:"{{m}}m",sec:"{{s}}s"}},OC={plan:{recommendedFor:"Recommended for",features:"Key Features",freePrice:"Free",contact:"Contact Us",tierFallback:"Plan",openPromo:"Launch offer"},products:{mgrEnterprise:{tier:{price:"Contact us"}}}},HC={title:"Coupons",subtitle:"Enter a coupon code or view your coupons",input:{label:"Coupon code",placeholder:"Enter coupon code"},applyButton:"Apply",error:{invalid:"Invalid coupon code.",alreadyUsed:"This coupon has already been used."},success:{applied:'"{{name}}" coupon applied.'},section:{owned:"My Coupons"},status:{used:"Used",available:"Available"}},zC={unitVisit:"",periodAll:"All",showN:"Show {{n}}"},VC={subtitle:"Manage company and business information",editButton:"Edit Info",basicInfo:{title:"Basic Info"},contactInfo:{title:"Contact Info"}},WC={title:"Training by Type",subtitle:"Select the training type you want",listenInNoise:{title:"Sentence Listening in Noise",desc:"Train sentence comprehension in various noise environments."},shortStory:{title:"Short Story Listening",desc:"Listen to short stories and understand the content."},longStory:{title:"Long Story Listening",desc:"Focus on listening to long stories and grasp the content."},orderingSentence:{title:"Sentence Ordering",desc:"Arrange heard sentences in the correct order."},SAME_SOUND_PICK:{label:"Listen & Pick Same Sound",sub:"Pick the word card that matches what you heard."},SAME_OR_DIFF:{label:"Same or Different?",sub:"Decide whether the two sounds are the same or different."},HEAR_AND_PICK_SAME:{label:"Hear & Match Word",sub:"Pick the word card that matches the sound you heard."},HEAR_AND_PICK_INCLUDED:{label:"Find Word Containing Sound",sub:"Pick the word card that contains the syllable you heard."},STARTS_WITH_SAME_SOUND:{label:"Find Word Starting with Same Sound",sub:"Pick a word that starts with the same sound as what you heard."},LISTEN_AND_REMEMBER_ORDER:{label:"Listen & Recall Order",sub:"Select the cards in the order you heard the three words."},MERGE_2_SYLLABLES:{label:"Combine 2 Syllables",sub:"What word do two syllables make?"},MERGE_3_SYLLABLES:{label:"Combine 3 Syllables",sub:"What word do three syllables make?"},MERGE_2_PHONEMES:{label:"Combine 2 Phonemes",sub:"What sound do two phonemes make?"},MERGE_3_PHONEMES:{label:"Combine 3 Phonemes",sub:"What sound do three phonemes make?"},DROP_1_FROM_2SYLL:{label:"Drop 1 Syllable from 2-Syllable",sub:"What sound remains when you remove a syllable from a 2-syllable word?"},DROP_1_FROM_3SYLL:{label:"Drop 1 Syllable from 3-Syllable",sub:"What sound remains when you remove a syllable from a 3-syllable word?"},DROP_PART_FROM_COMPOUND:{label:"Drop Part of Compound Word",sub:"What word remains when you remove part of a compound word?"},DROP_FINAL_CONSONANT_FROM_1SYLL:{label:"Drop Final Consonant",sub:"What sound remains when you remove the final consonant?"},REMOVE_CONSONANT_AND_IDENTIFY_PHONEME:{label:"Drop Consonant",sub:"What sound remains when you remove the consonant?"},CHANGE_1_SYLL_IN_2SYLL:{label:"Change 1 Syllable (2-Syllable)",sub:"Change one syllable in a 2-syllable word to make a new word."},CHANGE_1_SYLL_IN_3SYLL:{label:"Change 1 Syllable (3-Syllable)",sub:"Change one syllable in a 3-syllable word to make a new word."},CHANGE_1_PHONEME_IN_1SYLL:{label:"Change 1 Phoneme (1-Syllable)",sub:"Change one phoneme in a 1-syllable word to make a new sound."},CHANGE_1_PHONEME_IN_2SYLL:{label:"Change 1 Phoneme (2-Syllable)",sub:"Change one phoneme in a 2-syllable word to make a new word."}},qC={comingSoon:"Word training is coming soon."},UC={colName:"Table Name",open:"Open",countSuffix:" tables",addCard:"Add Word Table Card",cardsEmpty:"No word table cards created yet.",menu:{publishStore:"Post to Training Store",unpublishStore:"Remove from Training Store"},newBadge:"Newly created",tab:{cards:"Word Table Cards",tables:"Word Tables"},publishedBadge:"Published",sharedBadge:"Shared"},GC={title:"Key Words",empty:"No key words available."},KC={defaultName:"Word Table",title:"Word Table Builder",subtitle:"Set columns and add words to build a table.",filterTitle:"Table Settings",filter:{composition:"Composition",image:"Image",word:"Word",standardPron:"Standard Pronunciation",colloquialPron:"Colloquial Pronunciation",paperOrientation:"Paper Orientation",landscape:"Landscape",portrait:"Portrait",columns:"Columns",column:"{{count}} col",itemsPerPageWord:"Words per page",itemsPerPagePair:"Pairs per page",itemsPerPageOption:"{{count}}",pageIndicator:"{{current}} / {{total}}",pageNumber:"Page Number",pageNumberLeft:"Left",pageNumberCenter:"Center",pageNumberRight:"Right",border:"Border",cutLine:"Cut Line",show:"Show",hide:"Hide",dotted:"Dotted",corner:"Corner"},addWord:"Add",wordInfo:"Info for {{word}}",emptyItems:"Please add at least one word.",load:"Load",openNewWindow:"Open in New Window",saveButton:"Save",saveAsNewButton:"Save as New",print:"Print",popupBlocked:"Popup was blocked. Please allow popups in your browser settings.",printFileNameSingle:"Word Table",printFileNamePair:"Contrast Pair Table",save:{title:"Save Word Table",nameLabel:"Name",desc:"Enter a name for the word table.",placeholder:"Enter a title for this word table.",descriptionLabel:"Description",descriptionPlaceholder:"Enter a description for this word table.",duplicateName:"This name is already in use.",nameRequired:"Please enter a table name.",autoFillHint:" (Press Tab or Space to autofill)",copyName:"{{name}} (copy)"},loadTable:{title:"Load Saved Word Table",empty:"No saved word tables.",loadButton:"Load",itemCount:"{{count}} words",deleteAriaLabel:"Delete {{name}}",sort:{newest:"Newest",oldest:"Oldest",name:"Name",count:"Word Count"},view:{grid:"Grid View",list:"List View"}},groupDeleteMessage:"Word tables in this group will be moved to 'No Group'.",groupNamePlaceholder:"Group name",store:{badge:"Training Store"},card:{sub:"Word Table Card",empty:"No word tables in this card."},toast:{renameError:"Failed to rename",saveError:"Failed to save",deleteError:"Failed to delete",duplicateError:"Failed to duplicate",saveSuccess:"Word table saved."},scoring:{o:"{{word}} correct",triangle:"{{word}} partial",x:"{{word}} incorrect",button:"Score",pickTitle:"Who are you scoring?",pickSubtitle:"Choose the customer who trained with \u201C{{name}}\u201D.",pickSearch:"Search by name or phone",pickEmpty:"No customers registered.",pickNoMatch:"No matching customer.",pickAgain:"Choose another",scoringFor:"Scoring {{name}}",none:"Tap \u25CB \xB7 \u25B3 \xB7 \u2715 under a cell to mark it. With a mouse, hover the cell to reveal them.",tally:"{{marked}} scored \xB7 \u25CB {{o}} \xB7 \u25B3 {{triangle}} \xB7 \u2715 {{x}} \xB7 {{rate}}%",save:"Save score",saved:"Saved {{count}} marks for {{name}}.",reviewTitle:"Create a review table?",reviewMessage:"Builds a new table from the {{count}} cells {{name}} got wrong or partial. Correct ones are left out.",reviewConfirm:"Create review table",reviewDescription:"Cells marked wrong or partial in \u201C{{name}}\u201D \u2014 {{count}} of them.",reviewCreated:"Created \u201C{{name}}\u201D \u2014 {{count}} cells.",discardTitle:"Discard this scoring?",discardMessage:"You marked {{count}} cells but have not saved. Leaving discards them.",discardConfirm:"Discard and leave"},info:{grade:"Grade: {{n}}",syllables:"Syllables: {{n}}",pos:"Part of speech: {{v}}",wordType:"Type: {{v}}"},pos:{noun:"Noun",verb:"Verb",adjective:"Adjective",adverb:"Adverb",numeral:"Numeral",determiner:"Determiner",interjection:"Interjection",particle:"Particle",affix:"Affix",dependentNoun:"Dependent noun",pronoun:"Pronoun",auxVerb:"Auxiliary verb",auxAdjective:"Auxiliary adjective"},reorder:{moved:"Moved to position {{n}} of {{total}}",handle:"Reorder {{word}} (Alt + arrow keys)",hint:"Alt + \u2190 \u2192 to reorder"}},YC={editBanner:{message:"Saving will update the word table you're editing."},filterTitle:"Word Search Settings",filter:{positionAny:"Any",positionHead:"Start",positionMid:"Middle",positionTail:"End",difficulty:"Grade",grade:"Grade {{n}}",syllables:"Syllables",syllable:"{{n}} Syll.",syllable5plus:"5+ Syllables",partOfSpeech:"Part of Speech",pos:{noun:"Noun/Numeral",verb:"Verb/Adjective",modifier:"Adverb/Determiner"},wordType:"Word Type",type:{native:"Native Korean",sino:"Sino-Korean",foreign:"Loanword",mixed:"Hybrid"},exclude:"Exclude",excludeNoImage:"No Image"},searchButton:"Search",resultUnit:"words",remaining:"{{count}} remaining",resultDisc:"Select {{unit}}. Up to {{max}} items. ({{selected}}/{{max}})",resultTitlePrefix:"",resultTitleSuffix:" {{unit}} found.",emptyResult:"No results found.",groupCount:"{{count}}",sort:{aria:"Sort",match:"Best Match",ganada:"A\u2013Z \u2191",ganadaDesc:"A\u2013Z \u2193",syllable:"Syllables \u2191",syllableDesc:"Syllables \u2193",grade:"Grade \u2191",gradeDesc:"Grade \u2193",original:"Original order"},pageSize:"Show {{count}}",pageSizeAria:"Page size",popup:{title:"Select a word for cell {{n}}"}},ZC={clearAllSelection:"Clear All Selections",divLine:"Contrast Line",removePair:"Remove pair",removeWord:"Remove word"},XC={title:"By Topic",subtitle:"Select a topic to start listening training",noiseTitle:"Sentence Listening in Noise",shortStoryTitle:"Short Story Listening",FOOD:"Food",HLTH:"Health",WETH:"Weather",PRSN:"People",KRCT:"Korean Culture",STRY:"Stories",LOCA:"Locations",SOAR:"Society & Arts",NTSC:"Nature & Science",SPRT:"Sports",sub:{TRKRFD:"Traditional Korean Food",MDKRFD:"Modern Korean Food",WRLDFD:"World Cuisine",MTRFRT:"Ingredients & Fruits",GEFDKL:"Food Facts",HTETHB:"Healthy Eating",DISILL:"Diseases",EXCISE:"Exercise",GEHTKL:"Health Facts",GESSKL:"Seasons",SNWRAN:"Snow & Rain",WTHFCT:"Weather Forecast",GEWTKL:"Weather Facts",JODYPS:"Joseon Dynasty",MDKRPS:"Modern Korea",THKDPS:"Three Kingdoms",WRLART:"World Artists",WRLPSN:"World Figures",KRLANG:"Korean Language",TRPLCT:"Traditional Games",HERITG:"Heritage",EVTFES:"Events & Festivals",GECTKL:"General Knowledge",FRYTAL:"Fairy Tales",AMZING:"Amazing Stories",DAYSTR:"Everyday Stories",KRLDMK:"Korean Landmarks",SELNMK:"Seoul Landmarks",WRDTRB:"World Travel",NAVIGT:"Navigation",KRSOCI:"Korea",ECONEW:"Economy & News",GENART:"Arts",GELFKL:"Life Tips",ANIMAL:"Animals",PLANTS:"Plants",ETHPLT:"Earth",TOLELC:"Tools & Electronics",GESCKL:"Science Facts",INVDSP:"Individual Sports",MARART:"Martial Arts",TEAMSP:"Team Sports",FOOTBL:"Soccer",GESPKL:"Sports Facts"}},JC={maxUses:"Max uses (leave blank for unlimited)",redirect:"Redirect URL (leave blank for app home)",creating:"Creating\u2026",create:"Create link",created:"\u2713 Link created",copied:"Copied!",copy:"Copy",loading:"Loading\u2026",empty:"No links created yet.",uses:"Used {{count}} times",expiresAt:"Expires: {{date}}",createdAt:"Created: {{date}}",confirmDelete:"Delete this link?",deactivate:"Deactivate",delete:"Delete",status:{active:"Active",expired:"Expired",inactive:"Inactive"}},QC={passwordPlaceholder:"Enter password"},eg={direction:{left:"L",right:"R",label:"Side"},wornDate:"Date Worn",deviceType:"Device Type",brand:"Brand",fitType:"Fit Type",productName:"Product Name",validationError:{brandAndProduct:"Please enter brand and product name."},addNew:"Add New Device",selectFromList:"Select from List",removeDevice:"Remove",type:{hearingAid:"Hearing Aid",cochlearImplant:"Cochlear Implant"}},tg={stat:{totalCustomers:"Total Customers",monthlyVisits:"This Month's Visits"},chart:{visitDetail:"Visit Details",trainingDetail:"Training Details",weekly:"Weekly",daily:"Daily",periodMonth:"Month",periodWeek:"Week",weeklyPrefix:"Weekly",monthlyPrefix:"Monthly",visit:"Visits",reservation:"Reservations",trainingDone:"Completed",trainingInProgress:"In Progress",weekRange:"{{start}}\u2013{{end}}",week:"W{{n}}"},subscriptionStatus:{active:"{{pct}}% Active",expired:"{{pct}}% Expired",unused:"{{pct}}% Unused"}},ng={editBanner:{message:"Saving will update the contrast pair table you're editing."},phonemeSelect:{title:"Phoneme Selection",vs:"vs"},caution:"Caution",mode:{include:"Phoneme Include",pick:"Phoneme Contrast",contrast:"Specify Contrast",infoTitle:"Contrast Mode",infoInclude:"Include \u2014 finds words containing all selected phonemes, plus their minimal pair.",infoPick:"Contrast \u2014 matches only if the selected phoneme is the actual point of difference in the pair.",infoContrast:"Specify Contrast \u2014 directly choose phonemes for the base word and the contrasting word to find pairs."},count:"{{n}}",input:{char:"Choose Letters",pron:"Choose Sound",infoTitle:"Input mode",infoChar:"Choose Letters \u2014 finds words by the selected phonemes (spelling), then finds their standard-pronunciation contrast pairs.",infoPron:"Choose Sound \u2014 finds standard-pronunciation contrast pairs directly from the selected phonemes."},phonemeN:"Syllable {{n}}",phonemeSingleLabel:"Syllable",phonemeContrastSingleLabel:"Contrast Syllable",ordinals:["First","Second","Third","Fourth"],phonemeOrdinalLabel:"{{ordinal}} Syllable",phonemeContrastOrdinalLabel:"Contrast {{ordinal}} Syllable",composition:"Answer Word Composition",syllableCount:"Syllables",syllableN:"{{n}} syll.",syllableNPlus:"{{n}}+ syll.",onset:"Onset",vowel:"Vowel",coda:"Coda",filter:{searchOptionsTitle:"Contrast Settings",searchModeLabel:"Contrast Mode",countLabel:"Input Syllable Count",inputModeLabel:"Input mode",phonemeOrder:"Input Syllable Position",phonemeOrderInfo:["Match: the pair must differ at exactly the same position (syllable).","Any: the differing position doesn't matter."],orderAny:"Any",orderMatch:"Match",difficultyInfo:"Reflects the National Institute of Korean Language's basic vocabulary grade.",selectLabel:"Select",onlyHasImage:"Only words with images",onlySameStructure:"Only same phoneme structure"},searchLabel:{error:"Failed to load data",loading:"Loading\u2026"},confirmMessage:"The word table with {{count}} selected {{unit}} will be lost.",resetOptions:"Reset Options",phonemeContrast:"Contrast Syllable {{n}}",infoNotes:["The preview character is an example of the selected phoneme combination. The actual search covers all words containing the phoneme.","Initial consonant '\u3147' cannot be selected. \u3147 at the start of a word is effectively silent.","If only onset and coda are selected, the vowel is automatically displayed as '\u314F'.","Increasing the phoneme count searches for minimal pairs between each phoneme."]},ag={sentenceTyping:{roundCount:"{{rounds}} rounds \xB7 {{timeLimit}}s each"},wordDefense:{me:"Me"},dictation:{title:"Dictation",desc:"Practice writing down exactly what you hear.",comingSoon:"Coming soon: audio playback, input field, answer comparison"},result:{heading:"Level {{number}} Answer",retry:"Try Again"},common:{accuracy:"{{pct}}% accuracy"},soundMatch:{title:"Sound Match",desc:"Quickly match words or sentences that share the same sound.",comingSoon:"Coming soon: play button, timer, score tracking"},orderSequence:{title:"Sentence Ordering",desc:"Arrange scattered sentence fragments in the correct order.",comingSoon:"Coming soon: sentence sets, ordering interface"},speedListen:{title:"Speed Listen",desc:"A challenge game to count the number of words in a sentence within a time limit.",comingSoon:"Coming soon: time limit, scoreboard"},noiseChallenge:{title:"Noise Challenge",desc:"Practice distinguishing sentences amid background noise.",comingSoon:"Coming soon: various noise levels, score tracking"},fastListen:{title:"Fast Listen",desc:"Listen to short sentences at speed and select the key word.",comingSoon:"Coming soon: speed by difficulty, timer"},shadowing:{title:"Shadowing",desc:"Practice pronunciation and intonation by repeating sentences aloud.",comingSoon:"Coming soon: playback, recording, comparison feedback"},phonemeHunt:{title:"Phoneme Hunt",desc:"Find words that contain a specific phoneme (sound).",comingSoon:"Coming soon: phoneme filter, hint feature"}},rg={lead:`IHAB builds trust
|
|
850
850
|
through sound
|
|
@@ -1003,7 +1003,7 @@ ${g.badge}`:g.badge:void 0;if(_&&d(g.code))return null;if(!g.badge&&!p)return m(
|
|
|
1003
1003
|
</html>`}const Vy=1e3;function Bo({getElements:e,paperW:t,paperH:a,fileName:r="",onPopupBlocked:s,header:i=""}){const{t:l}=ve.useTranslation(),c=o.useCallback(()=>{zy(e(),t,a,r,i)},[e,t,a,r,i]),d=o.useCallback(()=>{const p=e();if(p.length===0)return;const m=window.open("","_blank");if(!m){s?.();return}m.document.write(Ao(p,t,a,!1,r,i)),m.document.close()},[e,t,a,r,s,i]),u=o.useCallback(()=>{const p=e();if(p.length===0)return;const m=Ao(p,t,a,!1,r,i),h=new Blob([m],{type:"text/html;charset=utf-8"}),b=URL.createObjectURL(h),v=(r?ko(r):"")||l("wordTable.printFileNameSingle","\uB2E8\uC5B4\uD45C"),C=Object.assign(document.createElement("a"),{href:b,download:`${v}.html`});document.body.appendChild(C),C.click(),document.body.removeChild(C),setTimeout(()=>URL.revokeObjectURL(b),Vy)},[e,t,a,r,i,l]);return{print:c,openNewWindow:d,downloadHtml:u}}function $c(e){const{t}=ve.useTranslation(),[a,r]=o.useState("landscape"),[s,i]=o.useState(["\uC774\uBBF8\uC9C0","\uB2E8\uC5B4","\uD45C\uC900 \uBC1C\uC74C"]),[l,c]=o.useState("\uD45C\uC2DC"),[d,u]=o.useState(!0),[p,m]=o.useState(!0),[h,b]=o.useState(8),[v,C]=o.useState("right"),w=e.length,f=e.some(H=>(H.words??[]).length>1),y=e.some(H=>(H.words??[]).some(j=>!!j.colloquialLabel)),x=Math.min(h,Math.max(w,1)),g=o.useMemo(()=>pc(e,x),[e,x]),k=g.length>1,_=x,[B,N]=o.useState(!1);o.useEffect(()=>{let H=!1;if(!Gn()){N(!1);return}return Promise.all(e.flatMap(j=>(j.words??[]).map(q=>Xs(q.label,q.homonum)))).then(j=>{H||N(j.some(Boolean))},()=>{}),()=>{H=!0}},[e]);const A=o.useMemo(()=>[_c(t,{hasImage:B,hasColloquial:y}),wc(t),...w>0?[Nc(t,{hasPairs:f,itemCount:w})]:[],...k?[Dc(t)]:[],kc(t),..._>1?[Ac(t)]:[],...f?[Bc(t)]:[]],[t,B,y,w,f,k,_]),S={...Tc(t,{contentTypes:s,orientation:a,showOutline:d,cutLine:l,showDivLine:p}),...w>0?{[t(f?"wordTable.filter.itemsPerPagePair":"wordTable.filter.itemsPerPageWord")]:`${x}\uAC1C`}:{},...k?{[t("wordTable.filter.pageNumber","\uD398\uC774\uC9C0 \uBC88\uD638")]:Ec[v]}:{}},O=o.useCallback((H,j)=>{Mc(t,H,j,{setContentTypes:i,setOrientation:r,setShowOutline:u,setCutLine:c,setShowDivLine:m})||(j===t("wordTable.filter.itemsPerPagePair","\uD398\uC774\uC9C0\uB2F9 \uB300\uB9BD\uC30D \uC218")||j===t("wordTable.filter.itemsPerPageWord","\uD398\uC774\uC9C0\uB2F9 \uB2E8\uC5B4 \uC218")?b(Sc(parseInt(H),w)):j===t("wordTable.filter.pageNumber","\uD398\uC774\uC9C0 \uBC88\uD638")&&C(jc(H)))},[t,w]);return{settings:{orientation:a,contentTypes:s,cutLine:l,showOutline:d,showDivLine:p,count:_},filterSections:A,filterSelected:S,handleSelect:O,pages:g,isPaginated:k,pageNumberPosition:v}}function Wy({items:e,words:t,title:a,subtitle:r,emptyText:s,buttons:i,renderButtons:l,renderFooter:c,footerClassName:d,footerLayout:u,printFileName:p,showSettings:m,autoPrint:h,className:b,onClose:v,scoring:C=!1,onScoreChange:w,printHeader:f,beforeClose:y}){const{t:x}=ve.useTranslation(),g=o.useMemo(()=>Array.isArray(e)?e:(Array.isArray(t)?t:[]).filter(ae=>typeof ae=="string"&&ae.length>0).map((ae,ye)=>({id:`${ae}-${ye}`,words:[{label:ae}]})),[e,t]),{settings:k,filterSections:_,filterSelected:B,handleSelect:N,pages:A,isPaginated:S,pageNumberPosition:O}=$c(g),H=o.useMemo(()=>dc(A.map(ae=>ae.length)),[A]),[j,q]=o.useState({}),E=o.useCallback((ae,ye)=>{q(oe=>({...oe,[er(ae)]:lc(oe[er(ae)]??null,ye)}))},[]),M=o.useRef(w);o.useEffect(()=>{M.current=w});const R=o.useRef(j);o.useEffect(()=>{R.current!==j&&(R.current=j,M.current?.(xo(j)))},[j]);const G=o.useMemo(()=>xo(j),[j]),X=o.useRef(null),{toastMessage:U,toastKey:W,showWarning:Y,clearToast:L}=il("warning"),D=o.useRef([]),P=o.useCallback(()=>S?D.current.filter(ae=>ae!==null):X.current?[X.current]:[],[S]),{print:I,openNewWindow:F}=Bo({getElements:P,paperW:aa[k.orientation].width,paperH:aa[k.orientation].height,fileName:p??"",header:f??"",onPopupBlocked:()=>Y(x("wordTable.popupBlocked","\uD31D\uC5C5\uC774 \uCC28\uB2E8\uB418\uC5C8\uC2B5\uB2C8\uB2E4. \uBE0C\uB77C\uC6B0\uC800 \uC124\uC815\uC5D0\uC11C \uD31D\uC5C5\uC744 \uD5C8\uC6A9\uD574 \uC8FC\uC138\uC694."))}),$=o.useMemo(()=>c?void 0:l?l({print:I,openNewWindow:F}):p?[{label:x("wordTable.openNewWindow","\uC0C8 \uCC3D\uC73C\uB85C \uBCF4\uAE30"),variant:"default",onClick:()=>F()},{label:x("wordTable.print","\uC778\uC1C4\uD558\uAE30"),variant:"default",onClick:()=>I()},...i??[]]:i,[c,l,p,i,x,I,F]),J=o.useMemo(()=>c?c({print:I,openNewWindow:F}):void 0,[c,I,F]),Z=o.useRef(!1),K=o.useRef(I);return o.useEffect(()=>{K.current=I},[I]),o.useEffect(()=>{if(!h||Z.current)return;const ae=window.setTimeout(()=>{Z.current=!0,K.current()},100);return()=>window.clearTimeout(ae)},[h]),n.jsxs(jn,{title:a??x("keyWords.title","\uC8FC\uC694 \uB2E8\uC5B4"),subtitle:r,size:"large",className:Se("word-table-popup",b),buttons:$,footer:J,footerClassName:d,footerLayout:u,beforeClose:y,onClose:v,children:[g.length>0?n.jsxs("div",{className:"word-table-popup__body",children:[m&&n.jsx(wo,{sections:_,selected:B,onSelect:N}),S?n.jsx("div",{className:"word-table-popup__pages",children:A.map((ae,ye)=>n.jsx(ra,{items:ae,orientation:k.orientation,contentTypes:k.contentTypes,cutLine:k.cutLine,showOutline:k.showOutline,showDivLine:k.showDivLine,count:k.count,contentRef:oe=>{D.current[ye]=oe},pageNumber:{current:ye+1,total:A.length},pageNumberPosition:O,scoring:C,scoreIndexOffset:H[ye],marks:G,onMarkClick:E},ye))}):n.jsx("div",{className:"word-table-popup__table",children:n.jsx(ra,{items:g,orientation:k.orientation,contentTypes:k.contentTypes,cutLine:k.cutLine,showOutline:k.showOutline,showDivLine:k.showDivLine,count:k.count,contentRef:X,fitHeight:!0,scoring:C,marks:G,onMarkClick:E})})]}):n.jsx("p",{className:"word-table-popup__empty body-3",children:s??x("keyWords.empty","\uCD94\uCD9C\uB41C \uC8FC\uC694 \uB2E8\uC5B4\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4.")}),n.jsx(ea,{message:U,position:"top",onClose:L},W)]})}const qy=new Set(["x","triangle"]);function Uy(e,t){const a=[];for(let r=0;r<e.length;r++){const s=t[String(r)];s&&qy.has(s)&&a.push(e[r])}return a}const Gy=/\s*(?:(\d+)차\s*)?복습\s*\d{2}\.\d{2}$/;function Rc(e){const t=e.name.trim(),a=e.reviewRound;if(typeof a=="number"&&Number.isFinite(a)&&a>=0){const i=Math.floor(a);if(i===0)return{\uBC14\uD0D5:t,\uD68C\uCC28:1};const l=(i===1?/\s*복습\s*\d{2}\.\d{2}$/:new RegExp(`(?:^|\\s)${i}\uCC28\\s*\uBCF5\uC2B5\\s*\\d{2}\\.\\d{2}$`)).exec(t);return{\uBC14\uD0D5:l?t.slice(0,l.index).trim():t,\uD68C\uCC28:i+1}}let r=t,s=1;for(;;){const i=Gy.exec(r);if(!i)break;s=Math.max(s,(i[1]?Number(i[1]):1)+1),r=r.slice(0,i.index).trim()}return{\uBC14\uD0D5:r,\uD68C\uCC28:s}}function Ky(e,t){const[,a,r]=$r(t).split("-"),s=`${a}.${r}`,{\uBC14\uD0D5:i,\uD68C\uCC28:l}=Rc(typeof e=="string"?{name:e}:e),c=l>=2?`${l}\uCC28 `:"";return`${i||"\uB2E8\uC5B4\uD45C"} ${c}\uBCF5\uC2B5 ${s}`}function Yy(e){return{reviewOf:e.reviewOf??e.id??void 0,reviewRound:Rc(e).\uD68C\uCC28}}function Zy(e,t){const a={};for(const[r,s]of Object.entries(t)){if(s!=="o"&&s!=="triangle"&&s!=="x")continue;const i=Number(r),l=e[i];l&&(a[r]=l)}return a}function Xy(e){return e.map(t=>t.label).join(" / ")}function Jy(e){return e.map(t=>t.homonum!=null?`${t.label}#${t.homonum}`:t.label).join(" / ")}function Pc(e){return e.split(" / ").map(t=>t.replace(/#\d+$/,"")).join(" / ")}function Qy(e,t,a){const r=ci(a);return[e.trim(),r,t.trim()].filter(Boolean).join(" \xB7 ")}function Ic(e,t,a){return a===0?0:(e+t*.5)/a}function e5(e){const t=new Map,a=[...e].sort((s,i)=>s.scoredAt.localeCompare(i.scoredAt));for(const s of a)for(const[i,l]of Object.entries(s.marks)){const c=s.labels?.[i];if(!c)continue;const d=t.get(c)??{o:0,triangle:0,x:0,latest:l,latestAt:s.scoredAt};if(l==="o")d.o++;else if(l==="triangle")d.triangle++;else if(l==="x")d.x++;else continue;d.latest=l,d.latestAt=s.scoredAt,t.set(c,d)}const r=[];for(const[s,i]of t){const l=i.o+i.triangle+i.x;r.push({label:Pc(s),key:s,tried:l,o:i.o,triangle:i.triangle,x:i.x,rate:Ic(i.o,i.triangle,l),latest:i.latest,latestAt:i.latestAt})}return r.sort((s,i)=>s.rate-i.rate||i.tried-s.tried||Qn(s.label,i.label)||Qn(s.key??s.label,i.key??i.label)),r}function t5(e){const t=new Map;for(const r of e){const s=r.tableId??`name:${r.tableName}`,i=t.get(s)??{tableName:r.tableName,tableId:r.tableId,rows:[]};i.rows.push(r),t.set(s,i)}const a=[];for(const r of t.values()){const s=c=>Object.values(c.marks).filter(d=>d==="o"||d==="triangle"||d==="x").length,i=r.rows.filter(c=>s(c)>0).sort((c,d)=>c.scoredAt.localeCompare(d.scoredAt));if(i.length===0)continue;const l=i.map(c=>{const d=Object.values(c.marks),u=d.filter(m=>m==="o").length,p=d.filter(m=>m==="triangle").length;return Ic(u,p,s(c))});a.push({tableName:r.tableName,tableId:r.tableId,rates:l,times:i.map(c=>c.scoredAt),delta:l.length>=2?l[l.length-1]-l[0]:null})}return a.sort((r,s)=>(s.times[s.times.length-1]??"").localeCompare(r.times[r.times.length-1]??"")),a}function n5(e,t=8){return e.filter(a=>a.latest!=="o").slice(0,t)}function a5(e,t){if(e==null||t==null||e===""||t==="")return 0;if(typeof e=="number"&&typeof t=="number")return e-t;const a=String(e),r=String(t);return+(a>r)-+(a<r)}function r5(e){const t=new Map;let a=0,r=0;const s=e.map((l,c)=>({r:l,\uC790\uB9AC:c})).sort((l,c)=>l.r.answeredAt.localeCompare(c.r.answeredAt)||a5(l.r.id,c.r.id)||l.\uC790\uB9AC-c.\uC790\uB9AC).map(l=>l.r);for(const l of s){if(l.isCorrect==null)continue;const c=l.itemTitle?.trim();if(!c){r++;continue}a++;const d=l.itemId?.trim()||c,u=`${l.trainingType}|${d}`,p=t.get(u)??{trainingType:l.trainingType,itemId:d,title:c,tried:0,wrong:0,latestCorrect:l.isCorrect,latestAt:l.answeredAt,lastSelected:l.selected,setIds:[]};if(p.tried++,l.isCorrect||p.wrong++,p.title=c,p.latestCorrect=l.isCorrect,p.latestAt=l.answeredAt,p.lastSelected=l.selected,l.setId){const m=p.setIds.indexOf(l.setId);m>0&&p.setIds.splice(m,1),m!==0&&p.setIds.unshift(l.setId)}t.set(u,p)}const i=[...t.entries()].map(([l,c])=>({key:l,trainingType:c.trainingType,itemId:c.itemId,title:c.title,tried:c.tried,wrong:c.wrong,rate:c.tried===0?0:(c.tried-c.wrong)/c.tried,latestCorrect:c.latestCorrect,latestAt:c.latestAt,lastSelected:c.lastSelected,setIds:c.setIds}));return i.sort((l,c)=>l.rate-c.rate||c.tried-l.tried||Qn(l.title,c.title)),{items:i,counted:a,skippedNoTitle:r}}function o5(e,t=8){return e.filter(a=>!a.latestCorrect).slice(0,t)}function s5(e){const t=new Map;for(const r of e){const s=t.get(r.trainingType)??[];s.push(r),t.set(r.trainingType,s)}const a=[...t.entries()].map(([r,s])=>({trainingType:r,items:s,pending:s.filter(i=>!i.latestCorrect).length}));return a.sort((r,s)=>s.pending-r.pending||r.trainingType.localeCompare(s.trainingType)),a}const No=["LISTEN_IN_NOISE","SHORT_STORY","LONG_STORY","ORDERING_SENTENCE"];function i5(e){const t=new Map;let a=0;for(const i of e){if(i.latestCorrect)continue;const l=i.setIds[0];if(!l){a++;continue}const c=`${i.trainingType}|${l}`,d=t.get(c)??{setId:l,trainingType:i.trainingType,pending:0};d.pending++,t.set(c,d)}const r=(i,l)=>l.pending-i.pending||i.trainingType.localeCompare(l.trainingType)||i.setId.localeCompare(l.setId),s=[...t.values()];return{sentence:s.filter(i=>No.includes(i.trainingType)).sort(r),word:s.filter(i=>!No.includes(i.trainingType)).sort(r),noSet:a}}function l5(e,t,a=5){const r=new Set(t);if(r.size===0)return[];const s=[];for(const i of e){const l=new Set,c=[];for(const d of i.cellLabels)r.has(d)&&!l.has(d)&&(l.add(d),c.push(d));c.length!==0&&s.push({id:i.id,name:i.name,kind:i.kind,covered:c,totalCells:i.cellLabels.length})}return s.sort((i,l)=>l.covered.length-i.covered.length||i.totalCells-l.totalCells||Qn(i.name,l.name)),s.slice(0,Math.max(0,a))}function c5(e,t){const a=new Set(e.flatMap(r=>r.covered));return t.filter(r=>!a.has(r))}function u5(e,t){const a=new Map;for(const s of e)for(const i of s.cells){const l=s.labelOf(i);a.has(l)||a.set(l,i)}const r=[];for(const s of t){const i=a.get(s);i!==void 0&&r.push(i)}return r}function So(e,t,a){return typeof e=="string"&&e?e:t.replace(/\{\{(\w+)\}\}/g,(r,s)=>String(a[s]))}function d5(e,t){const a=Number.isFinite(e)?Math.round(e):0;if(!a||a<=0)return"-";const r=Math.floor(a/60),s=a%60;return t?t(r,s):r>0&&s>0?So(St.t("customers.duration.minSec",{m:r,s,defaultValue:"{{m}}\uBD84 {{s}}\uCD08"}),"{{m}}\uBD84 {{s}}\uCD08",{m:r,s}):r>0?So(St.t("customers.duration.min",{m:r,defaultValue:"{{m}}\uBD84"}),"{{m}}\uBD84",{m:r}):So(St.t("customers.duration.sec",{s,defaultValue:"{{s}}\uCD08"}),"{{s}}\uCD08",{s})}function p5(e,t){const a=[],r=new Set;for(const s of e){const i=t(s);r.has(i)||(r.add(i),a.push({key:i,value:s,pinned:!1}))}return a}function m5(e,t){return e.map(a=>a.key===t?{...a,pinned:!a.pinned}:a)}function h5(e,t){return e.filter(a=>a.key!==t)}function f5(e,t,a){const r=e.filter(u=>u.pinned),s=new Set(r.map(u=>u.key)),i=e.length-r.length,l=[],c=new Set(s);for(const u of t){if(l.length>=i)break;const p=a(u);c.has(p)||(c.add(p),l.push({key:p,value:u,pinned:!1}))}const d=[...l];return e.map(u=>u.pinned?u:d.shift()).filter(u=>u!==void 0)}function C5(e){return e.map(t=>t.value)}function g5(e){const{category:t={},isSelected:a=!1,onClick:r}=e||{},s=t?.key?` icon-grid-menu__button--${t.key}`:"",i=o.useId();return n.jsxs("div",{className:`icon-grid-menu__button-wrapper${s}`,children:[n.jsx("button",{className:`icon-grid-menu__button${a?" icon-grid-menu__button--selected":""}`,"data-key":t?.key,type:"button",onClick:a?void 0:r,"aria-pressed":a,"aria-labelledby":i,children:n.jsx(Ke,{icon:t.icon,label:t.label,className:"icon-grid-menu__button-icon",imgClassName:"icon-grid-menu__button-icon-image",maskClassName:"icon-grid-menu__button-icon-mask",svgClassName:"icon-grid-menu__button-icon-svg"})}),n.jsx("span",{id:i,className:"icon-grid-menu__button-label button-1",children:t.label})]})}function b5(e){const{categories:t=[],selected:a,onSelect:r,size:s="medium"}=e||{},i=a!==void 0,[l,c]=o.useState(()=>i?null:(t&&t[0]?.key)??null),d=i?a:l,u=o.useRef(r);o.useEffect(()=>{u.current=r});const p=o.useRef(!1),m=(t&&t[0]?.key)??null;o.useEffect(()=>{if(i||p.current||!m)return;p.current=!0;const b=l??m;l==null&&c(b),u.current?.(b)},[i,m]);const h=o.useCallback(b=>{const v=d===b?null:b;p.current=!0,i||c(v),r?.(v)},[d,i,r]);return n.jsx("div",{className:`icon-grid-menu icon-grid-menu--${s}`,children:(t||[]).map(b=>n.jsx(g5,{category:b,isSelected:d===b.key,onClick:()=>h(b.key)},b.key))})}function y5({subs:e=[],selected:t,onSelect:a,size:r="medium"}){const s=r==="small"?32:40;return n.jsx("div",{className:`choice-chips choice-chips--${r}`,children:n.jsx("div",{className:"choice-chips__list",children:e.map(i=>n.jsx(ce,{htmlType:"button",size:s,type:"bar",label:i.label,selected:t===i.key,className:"choice-chips__button",onClick:()=>a?.(i.key)},i.key))})})}function v5({onTermsClick:e,onPrivacyClick:t,contact:a}={}){const r=a?.email??"support@ihab.co.kr",s=a?.tel??"031-380-3724",{t:i}=ve.useTranslation();return n.jsx("footer",{className:"site-footer",children:n.jsxs("div",{className:"safearea",children:[n.jsxs("div",{className:"site-footer__top",children:[n.jsx("div",{className:"site-footer__brand",children:n.jsx("div",{className:"site-footer__lead h3",children:i("footer.lead",`\uC544\uC774\uD574\uBE0C\uB294 \uC18C\uB9AC\uB97C \uD1B5\uD574
|
|
1004
1004
|
\uC2E0\uB8B0\uB97C \uC313\uACE0
|
|
1005
1005
|
\uD68C\uBCF5\uC744 \uB3D5\uC2B5\uB2C8\uB2E4.`).split(`
|
|
1006
|
-
`).map((l,c,d)=>n.jsxs(o.Fragment,{children:[l,c<d.length-1&&n.jsx("br",{})]},c))})}),n.jsxs("div",{className:"site-footer__links",children:[n.jsxs("div",{className:"site-footer__column",children:[n.jsx("div",{className:"site-footer__column-title footer-title",children:i("footer.site.title","\uC0AC\uC774\uD2B8")}),n.jsxs("ul",{children:[n.jsx("li",{children:n.jsx("a",{className:"footer-link",href:"https://www.ihab.co.kr/",target:"_blank",rel:"noopener noreferrer",children:"IHAB"})}),n.jsx("li",{children:n.jsx("a",{className:"footer-link",href:"https://speechear.ihab.co.kr/",target:"_blank",rel:"noopener noreferrer",children:i("footer.site.malgwi","\uB9D0\uADC0")})}),n.jsx("li",{children:n.jsx("a",{className:"footer-link",href:"https://ihab-offcial-web.vercel.app/product/sound-localization",target:"_blank",rel:"noopener noreferrer",children:i("footer.site.soundDirection","\uC18C\uB9AC\uBC29\uD5A5\uC131\uC2DC\uC2A4\uD15C")})}),n.jsx("li",{children:n.jsx("a",{className:"footer-link",href:"https://ihab-offcial-web.vercel.app/product/vr-sound-localization",target:"_blank",rel:"noopener noreferrer",children:i("footer.site.vrSoundDirection","VR\uC18C\uB9AC\uBC29\uD5A5\uC131\uC2DC\uC2A4\uD15C")})}),n.jsx("li",{children:n.jsx("a",{className:"footer-link",href:"https://ihab-offcial-web.vercel.app/product/hearing-test-pro",target:"_blank",rel:"noopener noreferrer",children:i("footer.site.hearingTest","\uCCAD\uB825\uD14C\uC2A4\uD2B8 \uD504\uB85C")})})]})]}),n.jsxs("div",{className:"site-footer__column",children:[n.jsx("div",{className:"site-footer__column-title footer-title",children:i("footer.sns.title","SNS")}),n.jsxs("ul",{children:[n.jsx("li",{children:n.jsx("a",{className:"footer-link",href:"https://blog.naver.com/ihab_official",target:"_blank",rel:"noopener noreferrer",children:i("footer.sns.naverBlog","\uB124\uC774\uBC84 \uBE14\uB85C\uADF8")})}),n.jsx("li",{children:n.jsx("a",{className:"footer-link",href:"https://www.instagram.com/ihab.official.yt/",target:"_blank",rel:"noopener noreferrer",children:"Instagram"})}),n.jsx("li",{children:n.jsx("a",{className:"footer-link",href:"https://www.youtube.com/@%EC%95%84%EC%9D%B4%ED%95%B4%EB%B8%8C-%EA%B3%B5%EC%8B%9D%EC%B1%84%EB%84%90",target:"_blank",rel:"noopener noreferrer",children:"Youtube"})})]})]}),n.jsxs("div",{className:"site-footer__column",children:[n.jsx("div",{className:"site-footer__column-title footer-title",children:i("footer.policy.title","\uC815\uCC45")}),n.jsxs("ul",{children:[n.jsx("li",{children:n.jsx("a",{className:"footer-link",href:"#",onClick:l=>{e&&(l.preventDefault(),e())},children:i("footer.policy.terms","\uC774\uC6A9\uC57D\uAD00")})}),n.jsx("li",{children:n.jsx("a",{className:"footer-link",href:"#",onClick:l=>{t&&(l.preventDefault(),t())},children:i("footer.policy.privacy","\uAC1C\uC778\uC815\uBCF4 \uCC98\uB9AC\uBC29\uCE68")})})]})]})]})]}),n.jsx("hr",{className:"site-footer__rule"}),n.jsxs("div",{className:"site-footer__bottom",children:[n.jsx("div",{className:"site-footer__brand",children:n.jsx("img",{src:no,alt:"IHAB",className:"site-footer__logo"})}),n.jsxs("div",{className:"site-footer__meta",children:[n.jsxs("div",{children:[n.jsx("span",{className:"footer-title",children:i("footer.ceo","\uB300\uD45C")}),n.jsx("span",{className:"footer-meta caption-1",children:i("footer.ceoName","\uD55C\uC9C0\uD61C")})]}),n.jsxs("div",{children:[n.jsx("span",{className:"footer-title",children:i("footer.address","\uC8FC\uC18C")}),n.jsx("span",{className:"footer-meta caption-1",children:i("footer.addressValue","\uAC15\uC6D0\uB3C4 \uCD98\uCC9C\uC2DC \uC2DC\uCCAD\uAE38 32 \uD574\uCC2C\uBE4C\uB529 3\uCE35 302\uD638")})]}),n.jsxs("div",{children:[n.jsx("span",{className:"footer-title",children:i("footer.support","\uACE0\uAC1D\uC13C\uD130")}),n.jsxs("span",{className:"footer-meta caption-1",children:[r," \xA0 ",s]})]})]})]}),n.jsx("div",{className:"site-footer__copyright footer-copyright caption-1",children:"\xA9 IHAB, Inc. All rights reserved."})]})})}function x5({logo:e,logoAlt:t="",logoHref:a,links:r=[],actions:s,className:i,containerClassName:l,renderLink:c,menuLabel:d}){const{t:u}=ve.useTranslation(),p=d??{open:u("header.menuOpen","\uBA54\uB274 \uC5F4\uAE30"),close:u("header.menuClose","\uBA54\uB274 \uB2EB\uAE30")},[m,h]=o.useState(!1),b=o.useId(),v=o.useRef(null);o.useEffect(()=>{if(!m)return;const f=In(()=>{const g=document.getElementById(b);g&&g.contains(document.activeElement)&&v.current?.focus(),h(!1)}),y=typeof window<"u"&&window.matchMedia?window.matchMedia("(min-width: 961px)"):null,x=g=>{g.matches&&h(!1)};return y&&(y.matches&&h(!1),y.addEventListener?.("change",x)),()=>{f(),y?.removeEventListener?.("change",x)}},[m,b]);const C=l?`${l} landing-header__inner`:"landing-header__inner",w=(f,y)=>c?c(f,{onClick:y}):n.jsx("a",{href:f.href,onClick:y,"aria-current":f.current?"page":void 0,children:f.label});return n.jsxs("header",{className:i?`landing-header ${i}`:"landing-header",children:[n.jsxs("div",{className:C,children:[e!=null&&(()=>{const f=typeof e=="string"?n.jsx("img",{src:e,alt:t,className:"landing-header__logo"}):e;return a?n.jsx("a",{href:a,className:"landing-header__brand",children:f}):n.jsx("div",{className:"landing-header__brand",children:f})})(),r.length>0&&n.jsx("nav",{className:"landing-header__links",children:r.map((f,y)=>n.jsx("span",{children:w(f)},`${y}:${f.href}`))}),n.jsxs("div",{className:"landing-header__actions",children:[s,r.length>0&&n.jsx("button",{ref:v,type:"button",onClick:()=>h(f=>!f),"aria-expanded":m,"aria-controls":b,"aria-label":m?p.close:p.open,className:m?"landing-header__toggle landing-header__toggle--open":"landing-header__toggle",children:n.jsxs("span",{className:"landing-header__burger",children:[n.jsx("span",{}),n.jsx("span",{}),n.jsx("span",{})]})})]})]}),r.length>0&&n.jsx("nav",{id:b,hidden:!m,className:"landing-header__drawer",children:n.jsx("div",{className:l??void 0,children:r.map((f,y)=>n.jsx("span",{className:"landing-header__drawer-item",children:w(f,()=>h(!1))},`${y}:${f.href}`))})})]})}function _5({children:e,action:t,onClick:a,className:r}){const s=a?"bottom-sticky__inner bottom-sticky__inner--clickable":"bottom-sticky__inner";return n.jsx("div",{className:r?`bottom-sticky ${r}`:"bottom-sticky",children:n.jsxs("div",{className:s,onClick:a,...oc(a),children:[n.jsx("div",{className:"bottom-sticky__content",children:e}),t]})})}const sa=9,w5=e=>Math.round(Math.min(sa,Math.max(0,e))/sa*100),k5=e=>e/100*sa,Ea=2,Fc=.1,A5=e=>Math.min(Ea,Math.max(0,e)),B5=.1,N5=e=>Math.round(e*1e6)/1e6;function ja(e){const{noiseRatio:t}=e;if(typeof t=="number"&&Number.isFinite(t))return A5(t);const a=Math.min(sa,Math.max(0,Number(e.level)||0))/sa,r=Number(e.mainVolume);return r>0?a>0?N5(Math.min(Ea,Math.max(B5,a/r))):0:1}const Oc=e=>Math.min(1,Math.max(0,Number(e.mainVolume)||0));function Hc(e){return Oc(e)}function Do(e){return Oc(e)*ja(e)}function Eo(e,t=qs()){const a=Number.isFinite(t)&&t>0?t:1;return Math.min(1,Do(e)/a)}function Ta(e,t){const a={...e,...t??{}};return t&&"level"in t&&typeof t.noiseRatio!="number"&&(a.noiseRatio=ja({level:a.level,mainVolume:a.mainVolume})),a}const Ma={enabled:!0,type:"defaultNoise",level:4.5,noiseRatio:1,speed:1,mainVolume:1,mainSpeed:1},jo=o.createContext(null);function ar(){return o.useContext(jo)}const To=e=>`${Z0()}/${e}`,zc=e=>Array.from({length:10},(t,a)=>To(`${e}-${String(a+1).padStart(2,"0")}.mp3`)),rr={get defaultNoise(){return To("noise1.mp3")},get street(){return zc("noise2")},get restaurant(){return zc("noise3")},get buzz(){return To("noise4.mp3")}};function S5(e){const t=Math.floor(Math.random()*10);switch(e){case"defaultNoise":return rr.defaultNoise;case"street":return rr.street[t];case"restaurant":return rr.restaurant[t];case"buzz":return rr.buzz;default:return null}}function D5({noisePlayer:e,audioRef:t,playbackStateRef:a}){const r=o.useRef(e?.registerAnalyser);r.current=e?.registerAnalyser;const s=o.useRef(null),[i,l]=o.useState(null),c=o.useRef(null),d=o.useRef(null),u=o.useRef(null),p=o.useRef(null),m=o.useRef(0),h=o.useRef(null),b=o.useCallback(()=>{p.current!==null&&(cancelAnimationFrame(p.current),p.current=null),h.current!==null&&(clearTimeout(h.current),h.current=null)},[]),v=o.useCallback((x,g=250)=>{const k=s.current;if(!k)return;const _=d.current;if(_){d.current=null;try{k.pause()}catch{}k.src=_,k.load()}if(!k.src)return;m.current+=1,b();try{Dr(),Pa(k).then(S=>{if(s.current===k)try{r.current?.("noise",S)}catch{}})}catch{}const B=k.paused?0:Ia(k);k.paused&&Dn(k,0),k.play().catch(()=>{});const N=performance.now(),A=()=>{const S=Math.min(1,(performance.now()-N)/g);try{Dn(k,B+(x-B)*S)}catch{}S<1?p.current=requestAnimationFrame(A):p.current=null};p.current=requestAnimationFrame(A)},[b]),C=o.useCallback((x=250,g)=>{const k=s.current;if(!k||k.paused){g?.();return}const _=++m.current;b();const B=performance.now(),N=Ia(k),A=()=>{const S=Math.min(1,(performance.now()-B)/x);try{Dn(k,N*(1-S))}catch{}if(S<1)p.current=requestAnimationFrame(A);else{p.current=null,h.current!==null&&(clearTimeout(h.current),h.current=null);try{k.pause()}catch{}g?.()}};p.current=requestAnimationFrame(A),h.current=setTimeout(()=>{if(h.current=null,m.current===_){p.current!==null&&(cancelAnimationFrame(p.current),p.current=null);try{k.paused||(Dn(k,0),k.pause(),g?.())}catch{}}},x+150)},[b]);o.useEffect(()=>{const x=document.createElement("audio");return x.loop=!0,x.crossOrigin="anonymous",s.current=x,()=>{b();try{x.pause(),x.src=""}catch{}s.current=null,c.current=null,d.current=null}},[b]);const w=e?Eo(e.settings):0,f=!!e?.settings.enabled&&w>0;o.useEffect(()=>{if(!f)return;let x=0;const g=setInterval(()=>{const k=s.current;if(!k||k.paused){x=0;return}const _=t.current;if(_&&!_.paused&&!_.ended||a.current==="playing"){x=0;return}x+=1,x>=2&&(x=0,C())},400);return()=>clearInterval(g)},[C,f,t,a]),o.useEffect(()=>{const x=()=>{const g=s.current;if(document.hidden){if(g&&!g.paused){b();try{g.pause()}catch{}}return}if(!g||!g.paused)return;const k=t.current,_=!!k&&!k.paused&&!k.ended||a.current==="playing",B=u.current;_&&B?.enabled&&B.volume>0&&v(B.volume)};return document.addEventListener("visibilitychange",x),()=>document.removeEventListener("visibilitychange",x)},[b,v,t,a]),o.useEffect(()=>{u.current=e?{enabled:e.settings.enabled,volume:w,type:e.settings.type}:null},[e,e?.settings.enabled,w,e?.settings.type]);const y=o.useRef(null);return o.useEffect(()=>()=>{y.current?.(),y.current=null},[]),o.useEffect(()=>{const x=e?.settings,g=s.current;if(!g)return;const k=x?Eo(x):0;if(!x||!x.enabled||k===0){C();return}if(c.current!==x.type){const _=S5(x.type);_&&(c.current=x.type,l(_),d.current=_,C(150,()=>{if(d.current!==_)return;d.current=null,g.src=_,g.load();const B=t.current;if(B&&!B.paused){y.current?.();const N=()=>{g.removeEventListener("canplay",N),y.current===A&&(y.current=null);const S=t.current,O=u.current;S&&!S.paused&&!S.ended&&O?.enabled&&O.volume>0&&v(O.volume)},A=()=>g.removeEventListener("canplay",N);y.current=A,g.addEventListener("canplay",N)}}))}else{const _=t.current,B=!!_&&!_.paused&&!_.ended||a.current==="playing";if(B&&d.current)v(k);else if(B&&g.paused&&g.src)v(k);else if(!g.paused)if(!B)C();else{b();const N=Ia(g),A=performance.now(),S=()=>{const O=Math.min(1,(performance.now()-A)/150);try{Dn(g,N+(k-N)*O)}catch{}O<1?p.current=requestAnimationFrame(S):p.current=null};p.current=requestAnimationFrame(S)}}},[e?.settings,e?.settings.enabled,w,e?.settings.type,b,v,C,t,a,u]),o.useEffect(()=>{const x=s.current;if(x)try{x.playbackRate=Math.min(1.25,Math.max(.75,e?.settings.speed??1))}catch{}},[e?.settings.speed]),{noiseAudioRef:s,activeNoiseUrl:i,noiseSettingsRef:u,cancelNoiseFade:b,fadeInNoise:v,fadeOutNoise:C}}function E5({ttsText:e,playbackRate:t,mainVolume:a,fillRef:r,waveProgressRef:s,setProgress:i,setPlaybackState:l,setStateLocal:c,fadeInNoise:d,fadeOutNoise:u,noiseSettingsRef:p,onDoneRef:m,handleEndRef:h}){const b=o.useRef(null),v=o.useRef(0),C=o.useRef(null),w=o.useRef(0),f=o.useRef(!1);o.useEffect(()=>()=>{w.current++;try{if(C.current&&(cancelAnimationFrame(C.current),C.current=null),f.current&&window.speechSynthesis){try{window.speechSynthesis.cancel()}catch{}f.current=!1}}catch{}},[]);const y=(k,_=1)=>{try{const B=(k||"").trim().split(/\s+/).filter(Boolean).length||Math.max(1,(k||"").length);return Math.max(700,Math.round(B*300/Math.max(.25,_)))}catch{return 1200}},x=o.useCallback(k=>{if(typeof window>"u"||!window.speechSynthesis){try{typeof m.current=="function"&&m.current(!1)}catch{}return}const _=window.speechSynthesis,B=++w.current;try{try{_.cancel()}catch{}const N=k??e,A=Array.isArray(N)?N.filter(E=>!!E):[N||""];A.length===0&&A.push("");const S=Math.max(.3,Math.min(3,t));v.current=A.reduce((E,M)=>E+y(M,S||1),0),b.current=performance.now(),i(0),l("playing"),c("playMode");const O=p.current;O?.enabled&&(O?.volume??0)>0&&d(O.volume);const H=()=>{try{const E=b.current||performance.now(),M=performance.now()-E,R=v.current||1200,G=Math.min(1,M/R);try{r.current&&(r.current.style.left=`${G*100}%`),s.current&&s.current.style.setProperty("--progress",String(G))}catch{}G<1&&(C.current=requestAnimationFrame(H))}catch{}},j=()=>{if(B===w.current)try{C.current&&(cancelAnimationFrame(C.current),C.current=null),i(1),l("stopped");try{h.current?.()}catch{try{typeof m.current=="function"&&m.current(!0)}catch{}}}catch{}},q=E=>{const M=new SpeechSynthesisUtterance(A[E]);try{M.rate=S}catch{}try{M.volume=Math.max(0,Math.min(1,a))}catch{}M.onend=()=>{if(B===w.current){if(E<A.length-1){try{q(E+1)}catch{j()}return}j()}},M.onerror=()=>{j()},M.onstart=()=>{if(!(E>0))try{C.current&&(cancelAnimationFrame(C.current),C.current=null),C.current=requestAnimationFrame(H)}catch{}},f.current=!0,_.speak(M)};try{q(0)}catch{try{typeof m.current=="function"&&m.current(!0)}catch{}}}catch{try{typeof m.current=="function"&&m.current(!0)}catch{}}},[e,t,a,d,r,s,i,l,c,p,m,h]),g=o.useCallback(()=>{w.current++;try{if(window.speechSynthesis)try{window.speechSynthesis.cancel()}catch{}C.current&&(cancelAnimationFrame(C.current),C.current=null),u(),b.current=null}catch{}l("stopped"),c("active"),i(0)},[u,l,c,i]);return{startTTS:x,stopTTS:g}}async function j5(e,t,a){let r=null;try{const s=window.AudioContext||window.webkitAudioContext;r=new s;const i=await r.decodeAudioData(e.slice(0)),l=i.numberOfChannels>0?i.getChannelData(0):null;if(!l)return null;const c=a&&a>0?Math.min(l.length,Math.floor(a*i.sampleRate)):l.length,d=Math.max(t,c),u=Math.floor(d/t)||1;return new Array(t).fill(0).map((p,m)=>{const h=m*u,b=Math.min(h+u,d);let v=0;for(let C=h;C<b;C++){const w=Math.abs(l[C]);w>v&&(v=w)}return v})}catch{return null}finally{try{r?.close?.()}catch{}}}async function Vc(e,t,a){try{const r=await fetch(e);if(r.ok===!1)return null;const s=await r.arrayBuffer();return await j5(s,t,a)}catch(r){try{const s=ti(r)}catch{}return null}}const Wc=45,T5=74,M5=2;function La(e){const t=Math.min(2,Math.max(0,Number(e)||0));return t<=1?t*45:45+(t-1)*29}function Mo(e){return La(e)/45}const qc=4;function L5(e){const{src:t,segments:a,progress:r=0,waveProgressRef:s,noiseSrc:i,noiseRatio:l=0,noiseSpeed:c=1,totalDuration:d=0,mainVolume:u=1,onReadyChange:p,showSoundWaveForm:m=!0}=e,h=o.useRef(null),b=o.useRef(null),[v,C]=o.useState(null),[w,f]=o.useState(!1),[y,x]=o.useState(null),[g,k]=o.useState(2),[_,B]=o.useState(0),[N,A]=o.useState(null),[S,O]=o.useState(!1),[H,j]=o.useState(!1),q=3,E=3,M=1,R=300,G=o.useRef(0),X=o.useCallback(()=>{const le=h.current,z=b&&b.current?b.current:le?le.closest(".audio-player__wave"):null,re=z?z.getBoundingClientRect():le?le.getBoundingClientRect():null,pe=re?re.width:0,_e=re?Math.max(100,re.width):320,be=re?re.height:0,Ne=Math.max(M,Math.min(R,Math.floor((_e+E)/(q+E)))),fe=Ne*q,xe=Math.max(0,Ne-1),Ee=Math.max(0,xe>0?(_e-fe)/xe:E);return{bars:Ne,gap:Ee,height:be,width:pe}},[]),U=o.useRef(void 0),W=o.useRef(null),Y=o.useCallback(async(le,z,{quiet:re=!1}={})=>{const pe=++G.current,_e=()=>G.current===pe;try{if(re||f(!1),U.current=le,!le){_e()&&C(null);return}let be=z;if(!be)try{for(let xe=0;xe<4&&!(h.current||b.current);xe++)await new Promise(Ee=>requestAnimationFrame(Ee));await new Promise(xe=>requestAnimationFrame(xe));const fe=X();fe.height>0&&B(fe.height),be=fe.bars,k(fe.gap)}catch{be=120}W.current=be;const Ne=await Vc(le,be);if(!_e())return;if(!Ne){C(null),f(!1);return}C(Ne),x(be),f(!0)}catch{if(!_e())return;C(null),f(!1)}},[f,C,B,k,x,X]);o.useEffect(()=>{const le=b.current;if(!le||typeof ResizeObserver>"u")return;let z=null;const re=new ResizeObserver(()=>{z!==null&&cancelAnimationFrame(z),z=requestAnimationFrame(()=>{z=null;try{const pe=X();if(pe.width<=0||(pe.height>0&&B(pe.height),W.current===null||pe.bars===W.current))return;const _e=U.current;k(pe.gap),_e?Y(_e,pe.bars,{quiet:!0}).catch(()=>{}):W.current=pe.bars}catch{}})});return re.observe(le),()=>{re.disconnect(),z!==null&&cancelAnimationFrame(z)}},[X,Y]),o.useEffect(()=>{const le=a&&a[0]&&a[0].src||t||a&&a.length===1&&a[0]&&a[0].src;Y(typeof le=="string"?le:void 0).catch(()=>{}),j(!1)},[t,a,Y]),o.useEffect(()=>{let le=!1;if(O(!1),!i||!y){A(null);return}const z=d>0?d*(c||1):void 0;return Vc(i,y,z).then(re=>{le||(A(re),re||O(!0))}).catch(()=>{le||(A(null),O(!0))}),()=>{le=!0}},[i,y,d,c]);const L=Math.max(0,Math.min(1,u)),D=o.useMemo(()=>v&&v.length&&Math.max(...v)||1,[v]),P=y||40,I=o.useMemo(()=>Array.from({length:P}).map((le,z)=>{const re=v&&v[z]!=null?v[z]:null,pe=re==null?null:Math.min(1,re/D*L),_e=pe!=null&&_>0&&La(pe)<=qc,be=pe==null?.15:_e?0:Mo(pe),Ne=P>1?z/(P-1):0;return n.jsx("div",{className:_e?"audio-player__bar audio-player__bar--hidden":"audio-player__bar",style:{"--val":be,"--i":z,"--mix":Ne}},z)}),[P,v,D,L,_]),F={"--progress":String(Math.max(0,Math.min(1,r)))},$=i?Math.max(1,l):1,J={"--bar-gap":`${g}px`,"--wave-h":`${La($)}px`,"--wave-h1":`${Wc}px`},Z=L*Math.max(0,l)/qs(),K=w&&(i?!!N||S:!0);o.useEffect(()=>{K&&j(!0)},[K]);const ae=H?w:K;o.useEffect(()=>{p?.(ae)},[ae,p]);const ye=y||40,oe=o.useMemo(()=>Array.from({length:ye}).map((le,z)=>{const re=N&&N[z]!=null?N[z]:null,pe=re==null?0:re/D*Z,_e=_>0&&La(pe)<=qc,be=_e?0:Mo(pe),Ne=ye>1?z/(ye-1):0;return n.jsx("div",{className:_e?"audio-player__bar audio-player__bar--hidden":"audio-player__bar",style:{"--val":be,"--i":z,"--mix":Ne}},z)}),[ye,N,D,Z,_]);return n.jsxs("div",{className:"audio-player__wave",ref:b,style:J,children:[i&&n.jsx("div",{className:`audio-player__wave-noise ${K?"is-ready":""}`,"aria-hidden":"true",children:oe}),m&&n.jsxs(n.Fragment,{children:[n.jsx("div",{className:`audio-player__wave-inner audio-player__wave-unplayed ${ae?"is-ready":""}`,ref:h,children:I}),n.jsx("div",{className:`audio-player__wave-inner audio-player__wave-played ${ae?"is-ready":""}`,ref:s,style:F,children:I})]})]})}const $5={idle:"\uB300\uAE30",resolving:"\uB9AC\uC18C\uC2A4 \uB9E4\uD551 \uC911\u2026",checking_exists:"\uD30C\uC77C \uC874\uC7AC \uD655\uC778\u2026",getting_signed_url:"\uC11C\uBA85 URL \uC870\uD68C\u2026",downloading:"\uB2E4\uC6B4\uB85C\uB4DC \uC911\u2026",measuring_duration:"\uC624\uB514\uC624 \uAE38\uC774 \uCE21\uC815\u2026",ready:"\uC900\uBE44 \uC644\uB8CC",error:"\uC624\uB958 \uBC1C\uC0DD"};function Lo(e,t){return new Promise((a,r)=>{const s=document.createElement("audio");let i=!1;const l=()=>{try{s.src=""}catch{}},c=()=>{if(i)return;i=!0;const u=isFinite(s.duration)&&s.duration||0;l(),a(u)},d=u=>{i||(i=!0,l(),t.rejectOnError?r(new Error(u)):a(0))};s.addEventListener("loadedmetadata",c),s.addEventListener("error",()=>d("audio load failed")),setTimeout(()=>d("audio load timeout"),t.timeoutMs),s.src=e})}const R5=2e3;function Uc(e,t=R5){return new Promise(a=>{let r=!1;const s=()=>{r||(r=!0,a())};e.addEventListener("canplay",s,{once:!0}),e.addEventListener("error",s,{once:!0}),setTimeout(s,t)})}function P5({showSoundWaveForm:e,showNoiseWaveForm:t,timeoutMs:a=2500}){const r=o.useRef(!1),s=o.useRef([]),i=o.useCallback(d=>{if(r.current=d,!d||!s.current.length)return;const u=s.current;s.current=[];for(const p of u)p(!0)},[]),l=o.useCallback(()=>{r.current=!1},[]),c=o.useCallback(()=>!e&&!t||r.current?Promise.resolve(!0):new Promise(d=>{const u=m=>{clearTimeout(p),s.current=s.current.filter(h=>h!==u),d(m)},p=setTimeout(()=>u(!0),a);s.current.push(u)}),[e,t,a]);return o.useEffect(()=>()=>{const d=s.current;s.current=[];for(const u of d)u(!1)},[]),{onReadyChange:i,waitForReady:c,markNotReady:l}}function I5(){const e=o.useRef([]),t=o.useCallback(s=>(e.current.push(s),s),[]),a=o.useCallback(s=>{const i=new Set([...s].filter(Boolean));e.current=e.current.filter(l=>{if(i.has(l))return!0;try{URL.revokeObjectURL(l)}catch{}return!1})},[]),r=o.useCallback(()=>{a([])},[a]);return o.useEffect(()=>()=>{for(const s of e.current)try{URL.revokeObjectURL(s)}catch{}e.current=[]},[]),{track:t,keepOnly:a,revokeAll:r}}function F5({offsetY:e=8}={}){const t=o.useRef(null),[a,r]=o.useState(null),s=o.useCallback(()=>r(null),[]),i=o.useCallback(()=>{try{const l=t.current?.getBoundingClientRect();if(!l)return;r({left:l.left,right:l.right,width:l.width,height:l.height,x:l.x,top:l.top+e,bottom:l.bottom+e,y:l.y+e,toJSON:l.toJSON.bind(l)})}catch{}},[e]);return o.useEffect(()=>{if(a)return document.addEventListener("mousedown",s),()=>document.removeEventListener("mousedown",s)},[a,s]),{ref:t,rect:a,show:i,hide:s}}function O5({currentTime:e,sources:t,index:a,audioDuration:r}){const s=a||0,i=Array.isArray(t)&&t.length>0?t[s]:void 0,l=i?i.duration||r||0:r||0;if(!(l>0))return 0;const c=Number.isFinite(e)?e:0;return Math.max(0,Math.min(1,c/l))}function H5(e,t){if(!Array.isArray(e))return null;const a=t||0;return a<e.length-1?a+1:null}function z5({ended:e,completedByEnd:t}){return!!e||!!t}function V5(e){return e.map((t,a)=>({src:t.src,label:String(a+1),color:void 0,duration:t.duration||0}))}function W5(e){return e.reduce((t,a)=>t+(a.duration||0),0)}function q5(e,t,a){const r=Array.isArray(e)?e:e?[e]:[],s=[];for(const i of r)if(i){if(typeof i=="object"&&i!==null&&"src"in i&&i.src){const l=i;s.push({code:l.code??null,src:l.src});continue}if(typeof i=="string"&&(i.startsWith("http")||i.includes("/"))){s.push({code:null,src:i});continue}if(typeof i=="string"||typeof i=="number"){const l=String(i),c=a(l,t);c&&s.push({code:l,resolvedPath:c})}}return s}function U5(e){if(!e)return 0;const t=e.duration;if(Number.isFinite(t)&&t>0)return t;if(t===0)return 0;try{const a=e.seekable;if(a&&a.length>0){const r=a.end(a.length-1);if(Number.isFinite(r)&&r>0)return r}}catch{}return null}function G5({audioRef:e,fillRef:t,waveProgressRef:a,sourcesRef:r,currentIndexRef:s}){const i=o.useRef(null),l=o.useCallback(()=>{i.current!==null&&(cancelAnimationFrame(i.current),i.current=null)},[]),c=o.useCallback(()=>{if(i.current!==null)return;const u=()=>{try{const p=e.current,m=Array.isArray(r.current)?r.current[s.current||0]:void 0,h=m&&Number.isFinite(m.duration)&&(m.duration??0)>0?0:U5(p),b=t.current;if(h===null)try{b&&b.style.visibility!=="hidden"&&(b.style.visibility="hidden")}catch{}else{const v=O5({currentTime:p&&typeof p.currentTime=="number"?p.currentTime:0,sources:r.current,index:s.current,audioDuration:h});try{b&&(b.style.visibility&&(b.style.visibility=""),b.style.left=`${v*100}%`)}catch{}try{a.current?.style.setProperty("--progress",String(v))}catch{}}}catch{}i.current=requestAnimationFrame(u)};i.current=requestAnimationFrame(u)},[e,t,a,r,s]),d=o.useCallback(u=>{l();try{t.current&&(t.current.style.visibility="",t.current.style.left=`${u*100}%`)}catch{}try{a.current?.style.setProperty("--progress",String(u))}catch{}},[l,t,a]);return o.useEffect(()=>l,[l]),{start:c,stop:l,settleTo:d}}function $o({btnLabel:e,soundSrc:t,bucketPath:a,onDone:r,disabled:s=!1,ttsText:i=null,className:l,showSoundWaveForm:c=!0,showNoiseWaveForm:d=!0}){const{t:u}=ve.useTranslation(),p=e,m=ar(),h=o.useRef(m?.registerAnalyser);o.useEffect(()=>{h.current=m?.registerAnalyser});const b=o.useRef(null),v=o.useRef(null),C=o.useRef(null),w=I5(),f=o.useRef(null),y=o.useRef(!1),x=o.useRef(0),g=o.useRef(null),{ref:k,rect:_,show:B,hide:N}=F5();o.useEffect(()=>()=>{h.current?.("main",null),h.current?.("noise",null)},[]);const[A,S]=o.useState(!1),[O,H]=o.useState("idle"),[j,q]=o.useState("stopped"),E=o.useRef("stopped");o.useEffect(()=>{E.current=j},[j]);const[M,R]=o.useState(0),[G,X]=o.useState("active"),U=o.useRef(!1);o.useEffect(()=>{if(G!=="playMode"||!U.current)return;U.current=!1;const V=typeof document<"u"?document.activeElement:null;if(V&&V!==document.body)return;const se=C.current?.querySelectorAll("button")[1];try{se?.focus()}catch{}},[G]);const[W,Y]=o.useState(null),[L,D]=o.useState(null),[P,I]=o.useState(0),[F,$]=o.useState(!1),[J,Z]=o.useState(0),K=m?.playbackRate??1,ae=m?.mainVolume??1,ye=m?Do(m.settings):0,oe=m?Hc(m.settings):ae,[le,z]=o.useState("idle"),[re,pe]=o.useState(""),[_e]=o.useState("top"),be=o.useRef(null),Ne=o.useRef(0),fe=o.useRef(null),{start:xe,stop:Ee,settleTo:Oe}=G5({audioRef:b,fillRef:v,waveProgressRef:fe,sourcesRef:be,currentIndexRef:Ne}),{onReadyChange:$e,waitForReady:ue,markNotReady:Ae}=P5({showSoundWaveForm:c,showNoiseWaveForm:d}),Le=o.useRef(null),Te=o.useRef(s),ne=o.useRef(r),ie=o.useRef(null),ge=o.useRef(!1),[he,Ge]=o.useState(!1),Ue=o.useCallback(V=>{ge.current=V,Ge(V)},[]),Ye=o.useRef(null),{activeNoiseUrl:Ze,noiseSettingsRef:Xe,fadeInNoise:ze,fadeOutNoise:Re}=D5({noisePlayer:m,audioRef:b,playbackStateRef:E}),{startTTS:Ve,stopTTS:ot}=E5({ttsText:i,playbackRate:K,mainVolume:oe,fillRef:v,waveProgressRef:fe,setProgress:R,setPlaybackState:q,setStateLocal:X,fadeInNoise:ze,fadeOutNoise:Re,noiseSettingsRef:Xe,onDoneRef:ne,handleEndRef:Ye});o.useEffect(()=>{ft.current=ot});const Ct=V=>{if(typeof window>"u"||!window.speechSynthesis){try{pe(u("training.ttsUnavailable","\uC774 \uAE30\uAE30\uC5D0\uC11C\uB294 \uC74C\uC131\uC744 \uB4E4\uB824\uC904 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4."))}catch{}Ve(V);return}kt("tts"),Ve(V)},zt=Array.isArray(t)?t.filter(Boolean):t?[t]:[],gt=(!zt||zt.length===0)&&!!i,nt=Array.isArray(W)&&W.length>0?W:Array.isArray(L)&&L.length>0?L:null,Je=Math.max(Array.isArray(nt)?nt.length:0,zt.length),et=o.useRef(!0);o.useEffect(()=>(et.current=!0,()=>{et.current=!1}),[]);const lt=o.useRef(0),We=()=>{lt.current+=1,x.current+=1},ft=o.useRef(null),qe=o.useRef(null),pt=o.useRef(null),Et=o.useRef(null);Et.current||(Et.current=()=>{pt.current=null;const V=b.current;if(qe.current==="audio"&&V&&!V.paused){lt.current+=1,x.current+=1;try{V.pause()}catch{}et.current&&q("paused")}else if(qe.current==="tts")try{ft.current?.()}catch{}});const kt=V=>{qe.current=V,pt.current=Ga(Et.current)},_t=()=>{pt.current?.(),pt.current=null};o.useEffect(()=>()=>{Et.current&&Ka(Et.current)},[]);const st=o.useCallback(async(V,se=3,de=50)=>{const ke=lt.current;for(let Be=0;Be<se;Be++){if(!et.current||ke!==lt.current)return!1;try{return kt("audio"),await V.play(),!0}catch(Me){if((Me instanceof Error||typeof Me=="object"&&Me&&"name"in Me?Me.name:void 0)==="AbortError"){if(ke!==lt.current)return!1;await new Promise(at=>setTimeout(at,de));continue}try{pe(u("training.audioFetchError","\uC0AC\uC6B4\uB4DC \uC18C\uC2A4\uB97C \uAC00\uC838\uC624\uC9C0 \uBABB\uD588\uC2B5\uB2C8\uB2E4."))}catch{}return!1}}try{pe(u("training.audioFetchError","\uC0AC\uC6B4\uB4DC \uC18C\uC2A4\uB97C \uAC00\uC838\uC624\uC9C0 \uBABB\uD588\uC2B5\uB2C8\uB2E4."))}catch{}return!1},[u]),Ie=o.useCallback(()=>{const V=b.current;if(!V)return;const se=()=>{q("playing"),X("playMode"),$(!0),xe();try{Dr(),Pa(V).then(Me=>{if(et.current)try{h.current?.("main",Me)}catch{}})}catch{}const Be=Xe.current;Be?.enabled&&(Be?.volume??0)>0&&ze(Be.volume)},de=()=>{z5({ended:!!V?.ended,completedByEnd:ge.current})||(q("paused"),Ee(),Re())},ke=()=>{try{const Be=be.current,Me=H5(Be,Ne.current);if(Me!==null){Ne.current=Me,I(Me),$(!0);const at=Be?.[Me]&&Be[Me].src;if(at&&V){V.src=at,V.load(),st(V).catch(()=>{});return}}}catch{}q("stopped"),R(1);try{if(V)try{V.currentTime=0}catch{}}catch{}Ee(),$(!1),Re();try{!Te.current&&Ye.current&&Ye.current()}catch{}};return V.addEventListener("play",se),V.addEventListener("pause",de),V.addEventListener("ended",ke),()=>{try{V.removeEventListener("play",se),V.removeEventListener("pause",de),V.removeEventListener("ended",ke),Ee()}catch{}}},[ze,Re,st,Xe,xe,Ee]);o.useEffect(()=>Ie(),[Ie]),o.useEffect(()=>{Te.current=s},[s]),o.useEffect(()=>{ne.current=r},[r]),o.useEffect(()=>{if(s||G!=="active")return;const V=g.current;if(!V)return;let se=null;const de=requestAnimationFrame(()=>{try{const ke=V.getTotalLength();if(!ke)return;const Be=ke*.2;V.style.strokeDasharray=`${ke-Be} ${Be}`;const Me="triFlow_"+Math.random().toString(36).slice(2);se=document.createElement("style"),se.textContent=`@keyframes ${Me}{from{stroke-dashoffset:0}to{stroke-dashoffset:-${ke}}}`,document.head.appendChild(se),V.style.animation=`${Me} 2.4s linear infinite`}catch{}});return()=>{cancelAnimationFrame(de),se?.remove()}},[G,s]),o.useEffect(()=>{be.current=W},[W]),o.useEffect(()=>{Ne.current=P},[P]),o.useEffect(()=>{const V=C.current,se=f.current;if(!V||!se)return;let de=null;const ke=32,Be=60,Me=()=>{try{const vt=Array.from(V.querySelectorAll(":scope > .button"));let ut=0;vt.forEach(hn=>{if(hn===se)return;const dr=hn.getBoundingClientRect();ut+=dr.width});const Nt=V.getBoundingClientRect().width,qt=Math.max(0,Math.floor(Nt-ut-8)),Rt=Je;if(!Rt||qt<=0){Array.from(se.children).forEach(hn=>{try{hn.style.width=""}catch{}});return}let mn=Math.floor(qt/Rt);mn>Be&&(mn=Be),mn<ke&&(mn=Math.max(ke,Math.floor(qt/Rt))),Array.from(se.querySelectorAll(".button")).forEach(hn=>{try{hn.style.width=`${mn}px`}catch{}})}catch{}},at=requestAnimationFrame(Me);try{de=new ResizeObserver(()=>{requestAnimationFrame(Me)}),de.observe(V),de.observe(se),window.addEventListener("resize",Me)}catch{}return()=>{try{cancelAnimationFrame(at)}catch{}try{de&&(de.disconnect(),de=null)}catch{}try{window.removeEventListener("resize",Me)}catch{}}},[W,L,Je]),o.useEffect(()=>()=>{try{Le.current&&(clearTimeout(Le.current),Le.current=null),ie.current&&(clearTimeout(ie.current),ie.current=null)}catch{}},[]);const rt=(V,se)=>{Y(V),Z(se),Ae(),D(V5(V)),be.current=V},bt=async(V,se)=>{Ue(!1),y.current=!1,V.src=se,V.load(),await Uc(V),await ue()!==!1&&(S(!1),await st(V),X("playMode"),I(0),$(!0))},Vt=async(V,se=!1)=>{const de=b.current;S(!0),H("measuring_duration");try{const ke=await Lo(V,{timeoutMs:1e4,rejectOnError:!0});rt([{src:V,objectUrl:null,duration:ke}],ke),H("ready"),se&&de&&await bt(de,V)}finally{y.current=!1,S(!1)}},tt=async(V,se=!1)=>{const de=b.current;S(!0),H("measuring_duration");try{const ke=await Promise.all(V.map(Me=>Lo(Me,{timeoutMs:1e4})));if(!et.current)return;const Be=V.map((Me,at)=>({src:Me,objectUrl:null,duration:ke[at]||0}));rt(Be,W5(Be)),H("ready"),se&&de&&Be.length>0&&await bt(de,Be[0].src)}finally{y.current=!1,S(!1)}},Zt=async(V=!1,se=!0)=>{const de=b.current,ke=t?Array.isArray(t)?t:[t]:[];if(!ke||ke.length===0||!ke.some(Boolean))return!1;if(y.current)return null;y.current=!0,se&&S(!0),H("resolving");try{const Be=q5(t,a,zs),Me=[];let at=0;for(const vt of Be){let ut=vt.src??null,Nt=null;if(!ut&&vt.resolvedPath){try{H("getting_signed_url"),ut=await Vs(vt.resolvedPath)}catch{ut=null}if(!et.current)return!1;if(!ut)try{H("downloading");const Rt=await Ws(vt.resolvedPath);if(!et.current)return!1;if(Rt){const mn=Rt instanceof Blob?Rt:new Blob([Rt]);Nt=w.track(URL.createObjectURL(mn)),ut=Nt}}catch{H("error");try{pe(u("training.audioFetchError","\uC0AC\uC6B4\uB4DC \uC18C\uC2A4\uB97C \uAC00\uC838\uC624\uC9C0 \uBABB\uD588\uC2B5\uB2C8\uB2E4.")),X("active")}catch{}}}if(!ut)continue;let qt=0;try{H("measuring_duration"),qt=await Lo(ut,{timeoutMs:3e3})}catch{qt=0}if(!et.current){if(Nt)try{URL.revokeObjectURL(Nt)}catch{}for(const Rt of Me)if(Rt.objectUrl)try{URL.revokeObjectURL(Rt.objectUrl)}catch{}return!1}at+=qt||0,Me.push({...vt,src:ut,objectUrl:Nt,duration:qt})}if(rt(Me,at),Me.length>0&&V&&de){const vt=Me[0];Ue(!1);try{w.keepOnly(Me.map(ut=>ut.objectUrl))}catch{}if(H("ready"),y.current=!1,vt.src&&de)try{if(de.src=vt.src,de.load(),await Uc(de),await ue()===!1)return!1;se&&S(!1),de&&await st(de)}catch{se&&S(!1)}else se&&S(!1);X("playMode"),I(0),$(!0)}return Me.length>0}finally{y.current=!1,se&&S(!1),H(Be=>Be==="ready"?"ready":"idle")}},An=async()=>{const V=b.current;if(!(!V&&!gt)){if(gt){const se=window.speechSynthesis;if(G==="active"){const de=Br(),ke=Array.isArray(i)?i.filter(Boolean):i?[i]:[];if(de&&ke.length>0){X("load"),S(!0),H("resolving"),y.current=!0;try{const Be=await Promise.all(ke.map(Me=>Promise.resolve(de(Me))));Be.length>1?await tt(Be,!0):await Vt(Be[0],!0)}catch{y.current=!1,S(!1),X("active"),Ct(ke.length>0?ke:void 0)}return}Ct(ke.length>0?ke:void 0);return}if(G==="playMode"){const de=!!se&&(se.speaking||se.paused)&&!(V&&(V.currentSrc||V.getAttribute("src")));if(V&&!de){if(V.paused){if(ge.current){await Bt();return}await st(V),q("playing")}else We(),V.pause(),q("paused");return}try{if(se&&se.paused)try{kt("tts"),se.resume(),q("playing")}catch{}else try{se.pause(),q("paused")}catch{}}catch{}}return}if(G==="active"){if(s&&Array.isArray(be.current)&&be.current.length>0){const de=be.current[0];try{if(de.src&&V)try{V.src=de.src,V.load(),V&&await st(V)}catch{}X("playMode"),I(0),$(!0);return}catch{}}X("load");let se;try{se=await Zt(!0)}catch{se=!1}if(se===!1&&et.current){try{pe(u("training.audioFetchError","\uC0AC\uC6B4\uB4DC \uC18C\uC2A4\uB97C \uAC00\uC838\uC624\uC9C0 \uBABB\uD588\uC2B5\uB2C8\uB2E4."))}catch{}X("active")}return}if(G!=="load"&&(G==="playMode"||G==="active"))try{if(V&&V.paused){if(ge.current){await Bt();return}V&&await st(V),q("playing")}else V&&(We(),V.pause(),q("paused"))}catch(se){(se instanceof Error||typeof se=="object"&&se&&"name"in se)&&se.name}}},Bt=async()=>{const V=b.current;if(V)try{const se=be.current;if(Array.isArray(se)&&se.length>1){await Xt(0);return}Ue(!1);try{V.currentTime=0}catch{}V&&await st(V),q("playing"),X("playMode")}catch{}},Wt=()=>{if(We(),_t(),gt){ot();return}const V=b.current;try{if(V){try{V.pause()}catch{}try{V.currentTime=0}catch{}}}catch{}Re(),q("stopped"),X("active"),R(0),$(!1)},en=async(V,{sameSegment:se=!1}={})=>{const de=++x.current,ke=b.current,Be=be.current?.[V]?.src;try{if(Ue(!1),I(V),$(!0),Ne.current=V,!Be||!ke||(se||Ae(),ke.src=Be,ke.load(),!se&&await ue()===!1)||de!==x.current||(await st(ke),de!==x.current))return;q("playing"),X("playMode")}catch{}},on=async()=>{const V=be.current,se=Ne.current||0;if(!V||se<=0){await Bt();return}await en(se-1)},cn=async()=>{const V=be.current,se=Ne.current||0;if(!V||se>=V.length-1){Wt();return}await en(se+1)},tn=()=>{if(ge.current)return;const V=200,se=340;Ue(!0),We(),_t();try{R(1)}catch{}Oe(1);try{z("hold")}catch{}try{const de=b.current,ke=gt&&!!de?.src;if(!gt||ke){if(de){de.pause();try{de.currentTime=0}catch{}}}else ot();Re()}catch{}try{q("stopped")}catch{}if($(!1),!Te.current)try{ie.current&&(clearTimeout(ie.current),ie.current=null),ie.current=setTimeout(()=>{try{z("out")}catch{}ie.current=setTimeout(()=>{try{typeof ne.current=="function"&&ne.current(!0)}catch{}try{z("idle")}catch{}ie.current=null},se)},V)}catch{}};o.useEffect(()=>{Ye.current=tn});const Bn=o.useCallback(()=>pe(""),[]),Xt=async V=>{(be.current||[])[V]&&await en(V,{sameSegment:V===Ne.current})},yt=j==="playing",un=o.useMemo(()=>{if(!L||L.length<=1)return L;const V=L[P];return V?[V]:L},[L,P]),Jt=s===!0;o.useEffect(()=>{try{const V=b.current;V&&typeof V.playbackRate=="number"&&(V.playbackRate=K||1)}catch{}},[K]);const Tt=o.useRef({raf:null,timer:null});o.useEffect(()=>{const V=b.current;if(!V)return;const se=Math.max(0,Math.min(1,oe)),de=Tt.current,ke=()=>{de.raf!==null&&(cancelAnimationFrame(de.raf),de.raf=null),de.timer!==null&&(clearTimeout(de.timer),de.timer=null)};ke();const Be=Ia(V);if(V.paused||Math.abs(Be-se)<.001||typeof requestAnimationFrame!="function"){try{Dn(V,se)}catch{}return}const Me=performance.now(),at=()=>{const vt=Math.min(1,(performance.now()-Me)/150);try{Dn(V,Be+(se-Be)*vt)}catch{}de.raf=vt<1?requestAnimationFrame(at):null};return de.raf=requestAnimationFrame(at),de.timer=setTimeout(()=>{ke();try{Dn(V,se)}catch{}},200),ke},[oe]);const dn=le==="hold",Qt=le==="out",pn=G==="playMode"&&!A&&!he||dn||Qt,De=j!=="stopped"||dn||Qt,Fe=j==="paused",te=Math.max(0,Math.min(100,(M||0)*100)),Ce=Se("audio-player__fill",pn?"is-visible":"",De?"is-expanded":"",Fe?"is-paused":"",Qt?"is-out":"");return n.jsxs("div",{className:`audio-player ${Jt?"is-disabled":""}${l?` ${l}`:""}`,role:"group","aria-label":typeof p=="string"?p:void 0,children:[n.jsxs("div",{className:`audio-player__panel ${yt?"is-playing":""} ${A?"is-loading":""} ${G!=="default"?"is-revealed":""}`,children:[A?n.jsxs("div",{className:"audio-player__loading",role:"status","aria-live":"polite",children:[n.jsx("span",{className:"audio-player__loading-spinner","aria-hidden":"true"}),n.jsx("span",{className:"audio-player__loading-text",children:u(`training.audioStatus.${O}`,{defaultValue:$5[O]})})]}):null,G==="active"?n.jsx("button",{className:"audio-player__button",type:"button",disabled:Jt,onClick:()=>{U.current=Ja(),N(),An()},"aria-label":typeof p=="string"?p:u("training.listen","\uB4E3\uAE30"),onMouseEnter:B,onMouseLeave:N,onFocus:B,onBlur:N,children:n.jsx("span",{ref:k,className:"audio-player__button-triangle-wrap",children:n.jsx("svg",{className:"audio-player__button-triangle",viewBox:"0 0 24 24","aria-hidden":"true",children:n.jsx("path",{ref:g,d:"M13.2 7.7 L16.5 9.85 Q20.2 12 16.5 14.15 L10 18.3 Q7 19.7 7 16.3 L7 7.7 Q7 4.3 10 5.7 L13.2 7.7"})})})}):null,_&&n.jsx(bn,{anchorRect:_,text:typeof p=="string"&&p?p:u("training.listenLabel","\uBB38\uC7A5 \uB4E3\uAE30"),offset:8}),n.jsxs("div",{className:`audio-player__play ${G==="playMode"||yt?"is-visible":""}`,inert:!(G==="playMode"||yt)||void 0,children:[n.jsxs("div",{ref:C,className:"audio-player__buttons",children:[n.jsx(ce,{htmlType:"button",size:32,showTooltipInfo:!0,type:"dot",shape:"pill",useBorder:!1,icon:"skip-back",onClick:on,ariaLabel:u("training.prev","\uC774\uC804"),width:"60px",variant:"transparent-white","aria-hidden":"true",tabIndex:-1,disabled:G!=="playMode"}),n.jsx(ce,{htmlType:"button",size:32,showTooltipInfo:!0,type:"dot",shape:"pill",useBorder:!1,icon:yt?"pause":"play",onClick:An,ariaLabel:u("common.playPause","\uC7AC\uC0DD / \uBA48\uCDA4"),"aria-pressed":yt,width:"60px",variant:"transparent-white",disabled:G!=="playMode"}),n.jsx(ce,{htmlType:"button",size:32,showTooltipInfo:!0,type:"dot",shape:"pill",useBorder:!1,icon:"square",onClick:Wt,ariaLabel:u("training.stop","\uC815\uC9C0"),width:"60px",variant:"transparent-white","aria-hidden":"true",tabIndex:-1,disabled:G!=="playMode"}),Je>1?n.jsx("div",{ref:f,className:"audio-player__source-buttons",children:Array.from({length:Je}).map((V,se)=>n.jsx(ce,{htmlType:"button",size:32,type:"dot",shape:"pill",useBorder:!1,label:String(se+1),onClick:()=>{try{Xt(se)}catch{}},ariaLabel:u("training.sourcePlay",{n:se+1}),variant:"transparent-white",selected:F&&P===se,disabled:G!=="playMode"||!(Array.isArray(W)&&W[se]),showTooltipInfo:!0},se))}):null,!Array.isArray(W)||W.length<=1?n.jsx(ce,{htmlType:"button",size:32,showTooltipInfo:!0,type:"dot",shape:"pill",useBorder:!1,icon:"repeat",onClick:Bt,ariaLabel:u("common.replay","\uB2E4\uC2DC\uB4E3\uAE30"),width:"60px",variant:"transparent-white",disabled:G!=="playMode"}):null,n.jsx(ce,{htmlType:"button",size:32,showTooltipInfo:!0,type:"dot",shape:"pill",useBorder:!1,icon:"skip-forward",onClick:cn,ariaLabel:u("training.next","\uB2E4\uC74C"),width:"60px",variant:"transparent-white","aria-hidden":!0,tabIndex:-1,disabled:G!=="playMode"}),n.jsx(ce,{htmlType:"button",size:32,showTooltipInfo:!0,type:"dot",shape:"pill",useBorder:!1,icon:"check",onClick:tn,ariaLabel:u("common.done","\uC644\uB8CC"),width:"60px",variant:"transparent-white",disabled:G!=="playMode"})]}),n.jsxs("div",{className:"audio-player__slider",children:[n.jsx("div",{className:Ce,ref:v,style:{left:`${te}%`},"aria-hidden":"true"}),(c||d)&&n.jsx(L5,{segments:un,progress:M,totalDuration:J,waveProgressRef:fe,showSoundWaveForm:c,noiseSrc:d&&m?.settings.enabled&&ye>0?Ze:null,noiseRatio:m?ja(m.settings):0,noiseSpeed:m?.settings.speed??1,mainVolume:ae,onReadyChange:$e})]})]}),n.jsx("audio",{ref:b,crossOrigin:"anonymous",preload:"auto"})]}),!c&&n.jsxs("p",{className:"audio-player__no-waveform caption-1",children:[n.jsx(Ke,{icon:"triangle-alert",size:14}),u("training.noSoundWaveform","\uC18C\uB9AC \uBE44\uAD50 \uBB38\uC81C\uB294 \uC6E8\uC774\uBE0C\uD3FC\uC744 \uD45C\uD604\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.")]}),n.jsx(ea,{message:re,position:_e,onClose:Bn})]})}function or(e){const{t}=ve.useTranslation(),{text:a,label:r,anchorRect:s=null,onClose:i,closeOnOutsideClick:l=!0,isMobilePopup:c=!1}=e||{},[d,u]=o.useState(()=>{try{return localStorage.getItem("tooltip-theme")||"light"}catch{return"light"}});o.useEffect(()=>{try{localStorage.setItem("tooltip-theme",d)}catch{}},[d]);const{increase:p,decrease:m,canIncrease:h,canDecrease:b,fontSize:v,lineHeight:C}=Qi({storageKey:"tooltip-fontScale"}),w=o.useCallback(()=>u(k=>k==="dark"?"light":"dark"),[]),f=o.useCallback(k=>{try{k.stopPropagation()}catch{}try{typeof i=="function"&&i()}catch{}},[i]),y=Array.isArray(a)?a:typeof a>"u"||a===null?[]:[a],x={fontSize:`${v}px`,lineHeight:`${C}px`,"--tt-line-height":`${C}px`,"--tt-marker-size":"28px"},g=n.jsxs("div",{className:`tooltip-textbox__root ${d==="dark"?"is-dark":""}`,children:[n.jsxs("div",{className:"tooltip-textbox__box",children:[r&&n.jsx("div",{className:"tooltip-textbox__label body-2b",children:r}),n.jsx("div",{className:"tooltip-textbox__text body-1",style:x,children:y.map((k,_)=>n.jsxs("div",{className:"tooltip-textbox__line",children:[y.length>1?n.jsx("div",{className:"tooltip-textbox__marker",children:n.jsx("span",{className:"tooltip-textbox__line-number button-1",children:_+1})}):null,n.jsx("span",{className:"tooltip-textbox__line-text",children:k})]},_))})]}),n.jsxs("div",{className:"tooltip-textbox__buttons",children:[n.jsx(ce,{htmlType:"button",size:32,showTooltipInfo:!0,type:"dot",useBorder:!1,width:48,icon:"minus",onClick:m,ariaLabel:t("training.fontSizeDecrease","\uAE00\uC790 \uD06C\uAE30 \uAC10\uC18C"),variant:d==="dark"?"transparent-white":"transparent-gray",disabled:!b}),n.jsx(ce,{htmlType:"button",size:32,showTooltipInfo:!0,type:"dot",useBorder:!1,width:48,icon:"plus",onClick:p,ariaLabel:t("training.fontSizeIncrease","\uAE00\uC790 \uD06C\uAE30 \uC99D\uAC00"),variant:d==="dark"?"transparent-white":"transparent-gray",disabled:!h}),n.jsx(ce,{htmlType:"button",size:32,showTooltipInfo:!0,type:"dot",useBorder:!1,width:48,icon:d==="dark"?"moon":"sun-medium",onClick:w,ariaLabel:t("training.toggleBackground","\uBC30\uACBD \uC804\uD658"),variant:d==="dark"?"transparent-white":"transparent-gray"}),n.jsx(ce,{htmlType:"button",size:32,showTooltipInfo:!0,type:"dot",useBorder:!1,width:48,icon:"x",onClick:f,ariaLabel:t("common.close","\uB2EB\uAE30"),variant:d==="dark"?"transparent-white":"transparent-gray"})]})]});return s?n.jsx(an,{anchorRect:s,className:`tooltip-textbox ${d==="dark"?"is-dark":""}`,onClose:i,closeOnOutsideClick:l,isMobilePopup:c,ariaLabel:r||t("tooltip.textbox","\uBCF8\uBB38"),children:g}):n.jsx("div",{className:`tooltip-textbox ${d==="dark"?"is-dark":""}`,children:g})}function Gc({state:e="disabled"}){const{t}=ve.useTranslation();return n.jsxs("div",{className:`ts-bullet ts-bullet--${e}`,"aria-hidden":!0,children:[n.jsx("div",{className:"bullet__dot",children:n.jsx(Ke,{icon:"chevron-right",label:t("training.next","\uB2E4\uC74C"),className:"bullet__icon",imgClassName:"bullet__icon-img",maskClassName:"bullet__icon-mask",svgClassName:"bullet__icon-svg",wrapperStyle:{},size:20})}),n.jsx("div",{className:"ts-bullet__line"})]})}function Kc(e,t,a){const r=o.useRef(t),s=o.useRef(a);o.useEffect(()=>{r.current=t,s.current=a}),o.useEffect(()=>{if(!e||typeof document>"u")return;let i=null,l=10;const c=()=>{i=null;const d=r.current(),u=d?Array.from(d.querySelectorAll(gn)).find(p=>!p.closest('[aria-hidden="true"]')):void 0;if(u){try{u.focus()}catch{}if(document.activeElement===u)return}--l>0&&(i=requestAnimationFrame(c))};return i=requestAnimationFrame(c),()=>{i!==null&&cancelAnimationFrame(i);const d=document.activeElement;if(!d||d===document.body||!document.contains(d)||d.closest(".tooltip-content")){const u=s.current();if(u)try{u.focus()}catch{}}}},[e])}function Yc({title:e,children:t,className:a="",state:r="disabled",usePreviewTextBtn:s=!1,onPreviewTextBtn:i,previewText:l=null,useFaded:c,usePlayAllBtn:d=!1,onPlayAll:u,playAllActive:p=!1}){const{t:m}=ve.useTranslation(),h=Yt("(max-width: 767px)"),b=`training-step__title h4 ${c&&r==="disabled"?"training-step__title--faded":""} ${a}`.trim(),v=`training-step__title-row training-step__title-row--${r}`.trim(),C=o.useRef(null),[w,f]=o.useState(!1),[y,x]=o.useState(null),[g,k]=o.useState(null);Kc(w&&!!y,()=>{if(typeof document>"u")return null;const S=Array.from(document.querySelectorAll(".tooltip-content"));for(let O=S.length-1;O>=0;O--)if(S[O].querySelector(".tooltip-textbox__root"))return S[O];return null},()=>C.current?.querySelector("button")??null);const _=o.useRef(i);o.useEffect(()=>{_.current=i});const B=o.useMemo(()=>l==null?"":typeof l=="string"||typeof l=="number"?String(l):Array.isArray(l)&&l.every(S=>typeof S=="string"||typeof S=="number")?l.join(""):"",[l]),N=o.useCallback(()=>{f(!1),x(null),k(null)},[]);o.useEffect(()=>{if(!w)return;let S;try{typeof _.current=="function"&&(S=_.current())}catch{}if(S===!1){N();return}k(typeof S<"u"&&S!==null?S:null)},[B]);const A=o.useCallback(()=>{let S;try{typeof i=="function"&&(S=i())}catch{}if(S!==!1){if(k(typeof S<"u"&&S!==null?S:l),!C.current){f(O=>!O);return}if(w)f(!1),x(null),k(null);else{const O=C.current.getBoundingClientRect();x(O),f(!0)}}},[i,l,w]);return n.jsxs("div",{className:v,children:[n.jsx("p",{className:b,children:n.jsx("span",{className:"training-step__title-text",children:e??t})}),s||d?n.jsxs("div",{className:"title-controls",children:[n.jsxs("div",{className:"title-buttons",children:[d&&n.jsx(ce,{htmlType:"button",size:32,type:h?"dot":"bar",icon:"play-circle",label:h?void 0:m("training.playAll","\uBAA8\uB450 \uB4E3\uAE30"),ariaLabel:m("training.playAll","\uBAA8\uB450 \uB4E3\uAE30"),selected:p,onClick:u,variant:r==="disabled"?"disabled":"default",disabled:r==="disabled"||p,onDisabledClick:p&&r!=="disabled"?()=>{}:void 0}),s&&n.jsx("div",{ref:C,children:n.jsx(ce,{htmlType:"button",size:32,type:h?"dot":"bar",icon:"eye",label:h?void 0:m("training.sentencePreview","\uBB38\uC7A5 \uBBF8\uB9AC\uBCF4\uAE30"),ariaLabel:m("training.sentencePreview","\uBB38\uC7A5 \uBBF8\uB9AC\uBCF4\uAE30"),onClick:A,className:w?"is-selected":void 0,"aria-expanded":w,"aria-haspopup":"dialog",variant:r==="disabled"?"disabled":"default",disabled:!l&&typeof i!="function"})})]}),w&&n.jsx(or,{text:g??l,label:m("training.sentencePreview","\uBB38\uC7A5 \uBBF8\uB9AC\uBCF4\uAE30"),anchorRect:y,onClose:N,closeOnOutsideClick:!1,isMobilePopup:!0})]}):null]})}function Ro(e,t){return typeof t!="number"||typeof e!="number"?"disabled":e<t?"done":e===t?"active":"disabled"}function Vn({index:e,stepIndex:t,isLast:a=!1,title:r="",titleProps:s={},children:i,className:l="",onDone:c=void 0,useTitleFaded:d=void 0}){const{t:u}=ve.useTranslation(),[p,m]=o.useState(()=>Ro(e,t));o.useEffect(()=>{const k=Ro(e,t);if(k!==p){const _=setTimeout(()=>m(k),0);return()=>clearTimeout(_)}},[e,t,p]);const h=o.useCallback((...k)=>{Ro(e,t)==="done"||p==="done"||typeof c=="function"&&c(...k)},[e,t,p,c]),[b,v]=o.useState(!1),[C,w]=o.useState({text:"",label:"\uBB38\uC7A5 \uB4E3\uAE30",anchorRect:null,backdrop:!1,alignX:null,alignY:null}),f=o.useCallback(k=>{if(!k)return null;try{const _=k;if(typeof k=="object"&&(_.currentTarget||_.target)&&(_.nativeEvent||_.type)){const A=_.currentTarget??_.target;if(A&&typeof A.getBoundingClientRect=="function")return A.getBoundingClientRect()}if(k instanceof DOMRect)return k;const B=k;if(B&&typeof B.getBoundingClientRect=="function")return B.getBoundingClientRect();const N=k?.current;return N&&typeof N.getBoundingClientRect=="function"?N.getBoundingClientRect():null}catch{return null}},[]),y=o.useCallback((k,{text:_="",label:B="\uBB38\uC7A5 \uB4E3\uAE30",backdrop:N=!1,alignX:A="center",alignY:S="top"}={})=>{const O=f(k);w({text:_,label:B,anchorRect:O,backdrop:N,alignX:A,alignY:S}),v(!0)},[f]),x=o.useCallback(()=>{v(!1),w(k=>({...k,anchorRect:null}))},[]),g=o.Children.map(i,k=>{if(o.isValidElement(k)){const _=k;if(typeof _.type=="string")return _;const B=_.props??{},N=typeof B.onDone=="function"?B.onDone:h,A=typeof B.disabled=="boolean";let S=p==="disabled";return A&&(S=!!B.disabled),o.cloneElement(_,{onDone:N,disabled:S,showTooltip:y,hideTooltip:x})}return k});return n.jsxs("div",{className:`training-step training-step--${p} ${a?"training-step--last":""} ${l}`,"aria-current":p==="active",children:[n.jsx(Gc,{state:p}),n.jsxs("div",{className:"training-step__content",children:[n.jsx(Yc,{state:p,title:r,...s,useFaded:d}),g]}),b?n.jsx(an,{anchorRect:C.anchorRect,backdrop:C.backdrop,onClose:x,ariaLabel:u("tooltip.textbox","\uBCF8\uBB38"),children:n.jsx(or,{text:C.text,onClose:x})}):null]})}function Zc({context:e,state:t="disabled",theme:a="light"}){const{t:r}=ve.useTranslation(),[s,i]=o.useState("disabled"),[l,c]=o.useState(()=>{try{return localStorage.getItem("tooltip-theme")||a}catch{return a}});o.useEffect(()=>{try{localStorage.setItem("tooltip-theme",l)}catch{}},[l]);const d=()=>c(j=>j==="dark"?"light":"dark"),{increase:u,decrease:p,canIncrease:m,canDecrease:h,fontSize:b,lineHeight:v}=Qi({storageKey:"textbox_fontScale"}),[C,w]=o.useState(""),f=o.useRef(null),y=o.useRef(!1),x=o.useCallback(()=>{y.current=Ja()&&!!f.current&&f.current.contains(document.activeElement),i("active")},[]),g=o.useCallback(()=>w(""),[]),k=j=>{try{w(j)}catch{}},_=typeof navigator<"u"&&/Mobi|Android/i.test(navigator.userAgent||"");o.useEffect(()=>{if(t!=="disabled"){const j=setTimeout(()=>i(t),0);return()=>clearTimeout(j)}},[t]);const B=o.useMemo(()=>e&&typeof e=="object"?String(e.sentence??e.text??""):typeof e=="string"?e:"",[e]),[N,A]=o.useState(B);N!==B&&(A(B),i("disabled"));const S=t==="disabled"?s:t,O=S==="disabled"?"training-text-box--disabled":S==="active"?"training-text-box--active":S==="done"?"training-text-box--done":"",H=o.useMemo(()=>({fontSize:`${b}px`,lineHeight:`${v}px`}),[b,v]);return o.useEffect(()=>{if(S==="disabled"||!y.current)return;y.current=!1;const j=document.activeElement;j&&j!==document.body||f.current?.querySelector(".training-text-box__buttons button")?.focus()},[S]),n.jsxs("div",{ref:f,className:`training-text-box ${O} ${S!=="disabled"&&l==="dark"?"is-dark":""}`,children:[S==="disabled"&&n.jsx("div",{className:"training-text-box__preview",children:n.jsx(ce,{htmlType:"button",size:48,type:"bar",onClick:x,icon:"eye",ariaLabel:r("training.sentencePreview","\uBB38\uC7A5 \uBBF8\uB9AC\uBCF4\uAE30"),label:r("training.sentencePreview","\uBB38\uC7A5 \uBBF8\uB9AC\uBCF4\uAE30"),useBorder:!1})}),n.jsx("div",{className:"training-text-box__area","aria-hidden":S==="disabled",children:n.jsx("span",{className:"training-text-box__inner h3",style:H,children:B})}),S!=="disabled"&&n.jsxs("div",{className:"training-text-box__buttons","aria-hidden":S==="disabled",children:[n.jsx(ce,{htmlType:"button",size:32,type:"dot",onClick:p,onDisabledClick:()=>k(r("training.fontSizeMin","\uAE00\uC528 \uD06C\uAE30\uAC00 \uCD5C\uC18C\uC785\uB2C8\uB2E4.")),ariaLabel:r("training.fontSizeDecrease","\uAE00\uC790 \uD06C\uAE30 \uAC10\uC18C"),icon:"minus",variant:l==="dark"?"transparent-white":"transparent-gray",disabled:!h,useBorder:!1,showTooltipInfo:!0,...!_&&{width:"60px"}}),n.jsx(ce,{htmlType:"button",size:32,type:"dot",onClick:u,onDisabledClick:()=>k(r("training.fontSizeMax","\uAE00\uC528 \uD06C\uAE30\uAC00 \uCD5C\uB300\uC785\uB2C8\uB2E4.")),ariaLabel:r("training.fontSizeIncrease","\uAE00\uC790 \uD06C\uAE30 \uC99D\uAC00"),icon:"plus",variant:l==="dark"?"transparent-white":"transparent-gray",disabled:!m,useBorder:!1,showTooltipInfo:!0,...!_&&{width:"60px"}}),n.jsx(ce,{htmlType:"button",size:32,showTooltipInfo:!0,type:"dot",useBorder:!1,width:48,icon:l==="dark"?"moon":"sun-medium",onClick:d,ariaLabel:r("training.toggleBackground","\uBC30\uACBD \uC804\uD658"),variant:l==="dark"?"transparent-white":"transparent-gray"})]}),n.jsx(ea,{message:C,position:"top",onClose:g})]})}function Po({index:e,stepIndex:t,isLast:a=!1,title:r,useTitleFaded:s,onDone:i,onChange:l,answer:c,wrongAnswers:d,choices:u,multiSelect:p=!1,correctCount:m=0,useDisabledCovered:h=!1,choiceIcons:b,shuffleChoices:v=!0}){const{t:C}=ve.useTranslation(),w=r??C("training.selectConfirm","\uBB38\uC81C\uB97C \uBCF4\uACE0 \uD574\uB2F9\uD558\uB294 \uB0B4\uC6A9\uC744 \uC120\uD0DD\uD558\uC138\uC694."),f=typeof e=="number"?e:-1,y=typeof t!="number"?"disabled":f<t?"done":f===t?"active":"disabled",x=Array.isArray(u)&&u.length?u:typeof c<"u"?[c].concat(Array.isArray(d)?d:[]):void 0,g=d?d.join("||"):"",k=u?u.join("||"):"",[_,B]=o.useState(()=>Array.isArray(x)?v?fa(x):x.slice():void 0);o.useEffect(()=>{Array.isArray(x)&&x.length?B(v?fa(x):x.slice()):B(void 0)},[c,g,k,v]);const[N,A]=o.useState(null),[S,O]=o.useState(()=>new Set);o.useEffect(()=>{A(null),O(new Set)},[k,c,g]);const H=o.useRef(void 0);o.useEffect(()=>{const E=H.current;typeof E=="number"&&typeof t=="number"&&typeof e=="number"&&E>=e&&t<e&&(A(null),O(new Set)),H.current=t},[t,e]);const j=o.useCallback(E=>{if(y!=="active")return;const M=_?.[E];if(M==null)return;const R=M,G=y==="active"||y==="done";if(p){const X=new Set(S),U=X.has(R);U?X.delete(R):X.add(R),O(X),typeof l=="function"&&l({selectedValues:[...X],__ts:Date.now()}),G&&(typeof m=="number"&&m>0?X.size>=m:!U)&&typeof i=="function"&&y==="active"&&i({selectedValues:[...X],__ts:Date.now()})}else A(R),typeof l=="function"&&l({selectedIndex:E,selectedValue:R,__ts:Date.now()}),G&&typeof i=="function"&&y==="active"&&i({selectedIndex:E,selectedValue:R,__ts:Date.now()})},[_,y,p,l,i,m,S]),q=`training-step__buttons${Array.isArray(_)&&_.length>3?" training-step__buttons--wrap-3":""}`;return n.jsx(Vn,{index:e,stepIndex:t,isLast:a,title:w,useTitleFaded:s,children:n.jsx("div",{className:q,children:Array.isArray(_)&&_.length>0?_.map((E,M)=>n.jsx(ce,{htmlType:"button",size:56,type:"bar",onClick:()=>j(M),ariaLabel:String(E),label:E,useLabel:!0,icon:b?b[String(E)]:void 0,variant:"default",disabled:y==="disabled",selected:p?S.has(E):N===E,useDisabledCovered:h,minWidth:0},String(E))):null})})}function Io({index:e,stepIndex:t,isLast:a=!1,title:r,onDone:s,onChange:i,context:l,demoSelected:c}){const{t:d}=ve.useTranslation(),u=r??d("training.confirmTitle","\uBB38\uC7A5\uC744 \uD655\uC778\uD558\uACE0 \uC798 \uB4E4\uB838\uB294\uC9C0 \uC120\uD0DD\uD558\uC138\uC694."),p=typeof e=="number"?e:-1,m=typeof t!="number"?"disabled":p<t?"done":p===t?"active":"disabled",h=l&&typeof l=="object"?l.sentence||"":typeof l=="string"?l:"",b=l&&typeof l=="object"?l.choices:void 0,[v,C]=o.useState(c??null),w=`${String(h)}\0${JSON.stringify(b??null)}`,[f,y]=o.useState(w);f!==w&&(y(w),c==null&&C(null));const[x,g]=o.useState(c);Object.is(x,c)||(g(c),C(c??null));const k=o.useRef(void 0);o.useEffect(()=>{const A=k.current;typeof A=="number"&&typeof t=="number"&&typeof e=="number"&&A>=e&&t<e&&c==null&&C(null),k.current=t},[t,e,c]);const _=o.useCallback(A=>{const S=typeof A=="object"&&A!==null?Object.assign({},A,{__ts:Date.now()}):{value:A,__ts:Date.now()};typeof i=="function"&&i(S),m==="active"&&typeof s=="function"&&s(S)},[i,m,s]),B=o.useCallback(()=>{m==="active"&&(C(!1),_(!1))},[_,m]),N=o.useCallback(()=>{m==="active"&&(C(!0),_(!0))},[_,m]);return n.jsxs(Vn,{index:e,stepIndex:t,isLast:a,title:u,onDone:s,useTitleFaded:!1,children:[n.jsx(Zc,{context:l,state:m}),n.jsx("div",{className:"training-step__buttons",children:Array.isArray(b)&&b.length>0?b.slice(0,6).map((A,S)=>n.jsx(ce,{htmlType:"button",size:56,type:"bar",onClick:()=>{m==="active"&&(C(S),_&&_(S))},disabled:m==="disabled",ariaLabel:String(A),label:A,variant:m,selected:v===S},S)):n.jsxs(n.Fragment,{children:[n.jsx(ce,{htmlType:"button",size:56,type:"bar",onClick:B,disabled:m==="disabled",icon:"x",ariaLabel:d("training.notHeard","\uC548 \uB4E4\uB838\uC5B4\uC694."),label:d("training.notHeard","\uC548 \uB4E4\uB838\uC5B4\uC694."),variant:"default",selected:v===!1}),n.jsx(ce,{htmlType:"button",size:56,type:"bar",onClick:N,disabled:m==="disabled",icon:"circle",ariaLabel:d("training.heardWell","\uC798 \uB4E4\uB838\uC5B4\uC694."),label:d("training.heardWell","\uC798 \uB4E4\uB838\uC5B4\uC694."),variant:"default",selected:v===!0})]})})]})}function Fo({index:e,stepIndex:t,isLast:a=!1,title:r,onDone:s,btnLabel:i,soundSrc:l,bucketPath:c,usePreviewTextBtn:d,previewText:u=null,onPreviewTextBtn:p,disabled:m,_pageIndex:h,showSoundWaveForm:b,showNoiseWaveForm:v}){const{t:C}=ve.useTranslation(),w=r??C("training.listenTitle","\uC81C\uC2DC\uD558\uB294 \uBB38\uC7A5\uC744 \uB4E4\uC5B4\uC8FC\uC138\uC694."),f=m??(typeof t=="number"&&typeof e=="number"?e>t:!1);return n.jsx(Vn,{index:e,stepIndex:t,isLast:a,title:w,onDone:s,titleProps:{usePreviewTextBtn:d,previewText:u,onPreviewTextBtn:p},children:n.jsx($o,{soundSrc:l,ttsText:l?null:u??w,bucketPath:c,btnLabel:i||C("training.listenButton","\uBB38\uC7A5 \uB4E3\uAE30"),disabled:f,className:"training-step__listen-sticky",showSoundWaveForm:b,showNoiseWaveForm:v},`audio-p${h??0}-s${e}`)})}const K5=[];function Oo({index:e,stepIndex:t,isLast:a=!1,title:r,onDone:s,onChange:i,context:l=K5}){const{t:c}=ve.useTranslation(),d=r??c("training.orderListDefault","\uBB38\uC7A5\uC744 \uB4E4\uC740 \uC21C\uC11C\uB300\uB85C \uBC30\uCE58\uD558\uC138\uC694."),u=L=>typeof L=="string"?L:L&&(L.context||L.sentence||L.question||"")||"",[p,m]=o.useState(Array.isArray(l)?l:[]),[h,b]=o.useState(()=>(p||[]).map((L,D)=>({id:D,text:u(L)}))),v=o.useMemo(()=>typeof t!="number"||typeof e!="number"?"disabled":e<t?"done":e===t?"active":"disabled",[t,e]),C=v!=="disabled",w=o.useRef(void 0);o.useEffect(()=>{if(w.current===l)return;w.current=l;const L=Array.isArray(l)?l:[];m(L);const D=(P=>{const I=(P||[]).map((Z,K)=>({id:K,text:u(Z)}));if(I.length<=1)return I;const F=(Z,K)=>{if(Z.length!==K.length)return!1;for(let ae=0;ae<Z.length;ae++)if(Z[ae].text!==K[ae].text)return!1;return!0};let $=fa(I),J=0;for(;F($,I)&&J<20;)$=fa(I),J+=1;return $})(L);b(D);try{if(typeof i=="function"){const P=D.filter((I,F)=>I.text===u(L[F])).length;i({shuffled:D,score:P,total:(L||[]).length,initial:!0,__ts:Date.now()})}if(typeof s=="function"&&v==="active"){const P=D.filter((I,F)=>I.text===u(L[F])).length;s({shuffled:D,score:P,total:(L||[]).length,initial:!0,__ts:Date.now()})}}catch{}},[l]);const f=(L,D)=>{const P=[...h],I=L+D;if(I<0||I>=P.length)return;const F=P[I];P[I]=P[L],P[L]=F,M(P);try{if(typeof s=="function"&&v==="active"){const $=P.filter((J,Z)=>J.text===u(p[Z])).length;s({shuffled:P,score:$,total:(p||[]).length,__ts:Date.now()})}}catch{}},[y,x]=o.useState(null),g=o.useRef(null),k=o.useRef(null),_=o.useRef(null),B=o.useRef(null),N=o.useRef(null),A=o.useRef({x:0,y:0}),S=o.useRef(null),O=o.useRef({dx:0,dy:0}),H=()=>{if(S.current!==null)return;const L=()=>{if(!g.current){S.current=null;return}S.current=requestAnimationFrame(L);const D=A.current,P=O.current||{dx:0,dy:0};g.current&&(g.current.style.transform=`translate3d(${D.x-P.dx}px, ${D.y-P.dy}px, 0)`)};S.current=requestAnimationFrame(L)},j=o.useRef(new Map),q=o.useRef(new Map),E=()=>{const L=new Map;return j.current.forEach((D,P)=>{D&&D.getBoundingClientRect&&L.set(P,D.getBoundingClientRect())}),L},M=L=>{const D=E();b(L);try{if(typeof i=="function"){const P=L.filter((I,F)=>I.text===u(p[F])).length;i({shuffled:L,score:P,total:(p||[]).length,__ts:Date.now()})}}catch{}requestAnimationFrame(()=>{const P=E();L.forEach(I=>{const F=D.get(I.id),$=P.get(I.id),J=j.current.get(I.id);if(!J||!F||!$)return;const Z=F.top-$.top;Z&&(J.style.transition="none",J.style.transform=`translateY(${Z}px)`,requestAnimationFrame(()=>{J.style.transition="transform 420ms cubic-bezier(.22,.9,.39,1)",J.style.transform="";const K=()=>{J.style.transition="",J.removeEventListener("transitionend",K)};J.addEventListener("transitionend",K)}))})})},R=(L,D)=>{try{try{D.dataTransfer?.setData("text/plain",String(L))}catch{}try{D.dataTransfer&&(D.dataTransfer.effectAllowed="move")}catch{}try{const P=document.createElement("div");P.style.cssText="position:absolute;top:-9999px;left:-9999px;width:1px;height:1px;opacity:0;pointer-events:none;",document.body.appendChild(P),D.dataTransfer?.setDragImage(P,0,0),requestAnimationFrame(()=>{try{document.body.removeChild(P)}catch{}})}catch{}}catch{}x(L);try{const P=h[L],I=document.createElement("div");I.className="order-list__dragging-object order-list__dragging-object--visible",I.textContent=P&&P.text?P.text:"",document.body.appendChild(I),g.current=I;const F=j.current.get(P.id);let $=D.clientX||0,J=D.clientY||0;try{if(F&&F.getBoundingClientRect){const le=F.getBoundingClientRect();$=le.left+le.width/2,J=le.top+le.height/2}}catch{}const Z=I.getBoundingClientRect(),K=Z.width/2,ae=Z.height/2;O.current={dx:K,dy:ae},I.style.transition="none",A.current={x:$,y:J},I.style.transform=`translate3d(${$-K}px, ${J-ae}px, 0)`,requestAnimationFrame(()=>{try{I.style.transition=""}catch{}H()});const ye=le=>{const z=le;A.current={x:z.clientX,y:z.clientY},H()};_.current=ye,document.addEventListener("mousemove",ye);const oe=le=>{const z=le;A.current={x:z.clientX,y:z.clientY},H()};k.current=oe,document.addEventListener("dragover",oe);try{D.dataTransfer?.setData("text/plain",String(L));try{D.dataTransfer?.setData("application/json",JSON.stringify({idx:L}))}catch{}}catch{}}catch{}},G=(L,D)=>{D.preventDefault();try{D.dataTransfer&&(D.dataTransfer.dropEffect="move")}catch{}try{N.current!==null&&(clearTimeout(N.current),N.current=null);const P=D.currentTarget&&D.currentTarget.closest?D.currentTarget.closest(".order-list__item"):null;if(P&&B.current!==P){if(B.current)try{B.current.classList.remove("drag-over")}catch{}try{P.classList.add("drag-over")}catch{}B.current=P}}catch{}},X=(L,D)=>{D.preventDefault();const P=D.dataTransfer?.getData("text/plain")||"",I=P?parseInt(P,10):y,F=L;if(typeof I!="number"||isNaN(I)||I===F){x(null),Y(),U();return}const $=_2(h,I,F);M($),x(null),U();try{if(typeof s=="function"&&v==="active"){const J=$.filter((Z,K)=>Z.text===u(p[K])).length;s({shuffled:$,score:J,total:(p||[]).length,__ts:Date.now()})}}catch{}try{requestAnimationFrame(()=>{const J=document.querySelectorAll(".order-list .order-list__item")[F];if(!J)return;const Z=J.querySelector(".order-list__slot")||J;try{Z.classList.add("pulse"),Z.offsetHeight,Z.classList.add("to-dark");const K=()=>{Z.classList.remove("pulse","to-dark"),Z.removeEventListener("transitionend",K)};Z.addEventListener("transitionend",K)}catch{}})}catch{}Y()},U=()=>{if(g.current){try{document.body.removeChild(g.current)}catch{}g.current=null}k.current&&(document.removeEventListener("dragover",k.current),k.current=null),_.current&&(document.removeEventListener("mousemove",_.current),_.current=null),S.current!==null&&(cancelAnimationFrame(S.current),S.current=null)},W=()=>{x(null),Y(),U()};o.useEffect(()=>()=>U(),[]);const Y=()=>{try{if(N.current!==null&&(clearTimeout(N.current),N.current=null),B.current){try{B.current.classList.remove("drag-over")}catch{}B.current=null}document.querySelectorAll(".order-list .order-list__item").forEach(L=>L.classList.remove("drag-over"))}catch{}};return o.useEffect(()=>{try{const L=Math.max(1,(h||[]).length);h.forEach((D,P)=>{const I=q.current.get(D.id);if(!I)return;let F=50;L>1&&(F=Math.round(P/(L-1)*100));try{I.style.setProperty("--marker-pos",F+"%")}catch{}})}catch{}},[h]),o.useEffect(()=>()=>{U(),N.current!==null&&(clearTimeout(N.current),N.current=null)},[]),n.jsx(Vn,{index:e,stepIndex:t,isLast:a,title:d,children:n.jsx("div",{className:"order-list",children:h.map((L,D)=>{const P=Math.max(1,(h||[]).length),I=P>1?Math.round(D/(P-1)*100):50;return n.jsx("div",{className:"order-list__item",children:n.jsxs("div",{className:"order-list__slot","data-disabled":v==="disabled","aria-disabled":v==="disabled",children:[v!=="disabled"?n.jsx("div",{className:"order-list__marker caption-1",style:{"--marker-pos":I+"%"},ref:F=>{const $=q.current;F?$.set(L.id,F):$.delete(L.id)},children:n.jsx("span",{className:"order-list__slot-number button-1",children:D+1})}):null,n.jsxs("div",{ref:F=>{const $=j.current;F?$.set(L.id,F):$.delete(L.id)},className:`order-list__draggable ${y===D?"dragging":""}`,"data-disabled":v==="disabled","aria-disabled":v==="disabled",tabIndex:v==="disabled"?-1:0,draggable:C,onDragStart:C?F=>R(D,F):void 0,onDragEnter:C?F=>G(D,F):void 0,onDragOver:C?F=>G(D,F):void 0,onDragLeave:C?()=>{try{N.current!==null&&clearTimeout(N.current),N.current=setTimeout(()=>{try{const F=document.querySelectorAll(".order-list .order-list__item");F&&F[D]&&(F[D].classList.remove("drag-over"),B.current===F[D]&&(B.current=null))}catch{}},80)}catch{}}:void 0,onDrop:C?F=>X(D,F):void 0,onDragEnd:C?W:void 0,children:[n.jsx("span",{className:"order-list__item-text body-2",children:L.text}),C?n.jsxs("span",{className:"order-list__item-buttons",children:[n.jsx(ce,{htmlType:"button",size:32,type:"dot",onClick:()=>f(D,-1),ariaLabel:c("training.up"),icon:"chevron-up",variant:"transparent-gray",width:48,useFaded:"true",disabled:D===0,useBorder:!1,useDisabledInvisible:!0}),n.jsx(ce,{htmlType:"button",size:32,type:"dot",onClick:()=>f(D,1),ariaLabel:c("training.down"),icon:"chevron-down",variant:"transparent-gray",width:48,useFaded:"true",disabled:D===h.length-1,useBorder:!1,useDisabledInvisible:!0})]}):null]})]})},L.id)})})})}const Y5=8e3;function Z5(e,t){return new Promise(a=>{let r=!1;const s=()=>{r||(r=!0,a())};e.then(s,s),setTimeout(s,t)})}function Xc({index:e,stepIndex:t,isLast:a=!1,title:r,onDone:s,onChange:i,context:l=[],selectable:c=!1,hideLabel:d=!1,hideAudio:u=!1,maxCards:p}){const{t:m}=ve.useTranslation(),h=r??m("training.cardInstructions","\uB0B1\uB9D0 \uCE74\uB4DC\uB97C \uBCF4\uACE0 \uC18C\uB9AC\uB97C \uB4E3\uACE0 \uD655\uC778\uD558\uC138\uC694."),b=o.useMemo(()=>Array.isArray(l)?l:l&&l.items||[],[l]),v=p??3,C=(b||[]).slice(0,v);(b||[]).length>v&&console.warn(`TrainingStepCard: ${b.length} items passed but only ${v} shown`);const w=typeof e=="number"?e:-1,f=typeof t!="number"?"disabled":w<t?"done":w===t?"active":"disabled",[y,x]=o.useState(null),g=o.useRef([]),[k,_]=o.useState(!1),B=o.useRef(null),N=o.useRef(!0);o.useEffect(()=>(N.current=!0,()=>{N.current=!1}),[]);const A=o.useMemo(()=>b.map(q=>q?.id??q?.word??"").join("|"),[b]);o.useEffect(()=>{x(null)},[A]);const S=o.useRef(void 0);o.useEffect(()=>{const q=S.current;typeof q=="number"&&typeof t=="number"&&typeof e=="number"&&q>=e&&t<e&&x(null),S.current=t},[t,e]);const O=o.useCallback((q,E)=>{if(c)return;const M={item:q,index:E,__ts:Date.now()};try{typeof i=="function"&&i(M)}catch{}if(f==="active"&&typeof s=="function")try{s(M)}catch{}},[c,i,f,s]),H=o.useCallback(async()=>{if(k||f==="disabled")return;_(!0);let q=!1;const E=new Promise(M=>{B.current=()=>{q=!0,M()}});try{for(let M=0;M<C.length&&!(!N.current||q);M++){const R=g.current[M];R&&await Promise.race([Z5(R.play(),Y5),E])}}finally{B.current=null,_(!1)}},[k,f,C.length]),j=o.useCallback((q,E)=>{if(f!=="active")return;x(E);const M={selectedValue:q.word||q.title||"",selectedIndex:E,item:q,__ts:Date.now()};try{typeof i=="function"&&i(M)}catch{}if(f==="active"&&typeof s=="function")try{s(M)}catch{}},[i,f,s]);return n.jsx(Vn,{index:e,stepIndex:t,isLast:a,title:h,onDone:s,titleProps:{usePlayAllBtn:!u&&C.length>0,onPlayAll:H,playAllActive:k},children:n.jsx("div",{className:"training-step__cards",onClickCapture:q=>{const E=B.current;if(!E)return;const M=q.target;M&&typeof M.closest=="function"&&M.closest(".training-word-card__bottom")&&E()},children:C.length===0?n.jsx("div",{className:"training-step__empty",children:m("training.noCards","\uCE74\uB4DC\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4.")}):C.map((q,E)=>n.jsx(vo,{ref:M=>{g.current[E]=M},item:q,disabled:f==="disabled",onPlayDone:()=>O(q,E),selectable:c,selected:c&&y===E,onSelect:c?()=>j(q,E):void 0,flipDelay:E*120,hideLabel:d,hideAudio:u},q&&q.id||E))})})}const X5=160,J5={\uBCF4\uCCAD\uAE30:"hearingAid",\uC778\uACF5\uC640\uC6B0:"cochlearImplant"};function Q5(e,t){const a=J5[e];return a?t(`device.type.${a}`,{defaultValue:e}):e}const Jc=()=>{};function Tn(e){const t=o.useId();if(!("variant"in e)){const{label:f,sub:y,onClick:x,children:g,align:k="horizontal",icon:_,useFullWidth:B=!1}=e,N=A=>{x&&A.target===A.currentTarget&&(A.key==="Enter"||A.key===" ")&&(A.preventDefault(),x())};return n.jsxs("div",{className:Se("panel-row",k==="vertical"?"panel-row--vertical":"",B?"panel-row--label-fixed panel-row--fill":"",x?"panel-row--clickable":""),onClick:x,onKeyDown:x?N:void 0,role:x?"button":void 0,tabIndex:x?0:void 0,children:[_!=null&&n.jsx("div",{className:"panel-row__icon",children:_}),f!=null&&n.jsxs("div",{className:"panel-row__left",children:[n.jsx("div",{className:"panel-row__label body-3",children:f}),y&&n.jsx("div",{className:"panel-row__sub caption-1",children:y})]}),n.jsx("div",{className:"panel-row__right",children:g})]})}if(e.variant==="description")return n.jsx("div",{className:"panel-row panel-row--block",children:n.jsx("p",{className:"panel-row__description body-3",children:e.children})});if(e.variant==="empty")return n.jsx("div",{className:"panel-row panel-row--empty body-3",children:e.children});if(e.variant==="loading")return n.jsx("div",{className:"panel-row panel-row--loading",children:n.jsx(Sa,{size:28})});if(e.variant==="custom"&&!e.label)return n.jsx("div",{className:"panel-row panel-row--block",children:e.children});const{variant:a,label:r,sub:s,onClick:i,required:l,error:c,align:d="horizontal",useFullWidth:u=!1,icon:p}=e,m=a==="button"?void 0:i;let h=null;const b=a==="toggle"?`panel-toggle-${t}`:void 0,v=c?`panel-error-${t}`:void 0;if(a==="toggle"){const f=e;h=n.jsx(Fl,{checked:f.checked,onChange:f.onChange,id:b})}else if(a==="segmented"){const f=e;h=n.jsx(_n,{options:f.options,value:f.value,onChange:f.onChange,size:f.size??40,ariaLabel:r})}else if(a==="dropdown"){const f=e,y=f.dropdowns?.length?n.jsx("div",{className:`panel-row__dropdown-group${u?" panel-row__dropdown-group--full":""}`,children:f.dropdowns.map((x,g)=>n.jsx("div",{className:u?"panel-row__dropdown-item--full":void 0,children:n.jsx(rn,{options:x.options,value:x.value,onChange:x.onChange,placeholder:x.placeholder,block:u,error:!!c,ariaDescribedBy:v,ariaLabel:x.ariaLabel??([r,x.placeholder].filter(Boolean).join(" ")||void 0)})},g))}):n.jsx(rn,{options:f.options??[],value:f.value??"",onChange:f.onChange??Jc,block:u,error:!!c,ariaLabel:r,ariaDescribedBy:v});h=c?n.jsxs("div",{className:`panel-row__dropdown-error-wrap${u?" panel-row__dropdown-error-wrap--full":""}`,children:[y,n.jsx("span",{id:v,className:"caption-1 panel-row__error",role:"alert",children:c})]}):y}else if(a==="button"){const f=e;f.buttons?.length?h=n.jsx("div",{className:"panel-row__button-group",children:f.buttons.map((y,x)=>n.jsx(ce,{htmlType:"button",size:y.btnSize??40,variant:y.btnVariant??"default",disabled:y.disabled,onClick:y.onClick,children:y.label},x))}):h=n.jsx(ce,{htmlType:"button",size:f.btnSize??40,variant:f.btnVariant??"default",disabled:f.disabled,onClick:f.onClick,children:f.buttonLabel})}else if(a==="text"){const f=e;h=n.jsx("span",{className:`panel-row__text body-2${u?" panel-row__text--full":""}`,style:f.valueColor?{color:f.valueColor}:void 0,children:f.value})}else if(a==="input"){const f=e;h=n.jsxs("div",{className:`panel-row__input-wrap${u?" panel-row__input-wrap--full":""}`,children:[n.jsx(zn,{value:f.value,onChange:f.onChange??Jc,onKeyDown:f.onKeyDown,onEnter:f.onEnter,placeholder:f.placeholder,ghostText:f.ghostText,ghostHint:f.ghostHint,inputMode:f.inputMode,readOnly:f.readOnly,disabled:f.disabled,type:f.type,autoComplete:f.autoComplete,maxLength:f.maxLength,showCount:f.showCount,multiline:f.multiline,rows:f.rows,fullWidth:u,error:c,ariaLabel:r,required:l}),f.helperText&&n.jsx("div",{className:"panel-row__helper caption-1",children:f.helperText})]})}else a==="custom"&&(h=e.children);c&&a!=="input"&&a!=="dropdown"&&(h=n.jsxs("div",{className:`panel-row__dropdown-error-wrap${u?" panel-row__dropdown-error-wrap--full":""}`,children:[h,n.jsx("span",{id:v,className:"caption-1 panel-row__error",role:"alert",children:c})]}));const C=a==="input"||a==="dropdown"||(a==="text"||a==="custom")&&u,w=f=>{m&&f.target===f.currentTarget&&(f.key==="Enter"||f.key===" ")&&(f.preventDefault(),m())};return n.jsxs("div",{className:Se("panel-row",d==="vertical"?"panel-row--vertical":"",C?"panel-row--label-fixed":"",a==="text"?"panel-row--text":"",m?"panel-row--clickable":""),onClick:m,onKeyDown:m?w:void 0,role:m?"button":void 0,tabIndex:m?0:void 0,children:[p!=null&&n.jsx("div",{className:"panel-row__icon",children:p}),n.jsxs("div",{className:"panel-row__left",children:[b?n.jsxs("label",{htmlFor:b,className:"panel-row__label body-3",children:[r,l&&n.jsx("span",{className:"required-mark",children:"*"})]}):n.jsxs("div",{className:"panel-row__label body-3",children:[r,l&&n.jsx("span",{className:"required-mark",children:"*"})]}),s&&n.jsx("div",{className:"panel-row__sub caption-1",children:s})]}),n.jsx("div",{className:"panel-row__right",children:h})]})}function Qc(e){const t=e.productName||e.brand,a=[e.brand,e.fitType].filter(r=>!!r&&r!==t);return[...new Set(a)].join(" \xB7 ")}function e3({devices:e,onRelease:t,emptyLabel:a}){const{t:r}=ve.useTranslation();return n.jsx("div",{className:"panel-row panel-row--device",children:["\uC88C","\uC6B0"].map(s=>{const i=e[s],l=s==="\uC88C"?r("device.direction.left","\uC88C"):r("device.direction.right","\uC6B0");return n.jsxs("div",{className:"panel-row__device-column",children:[n.jsxs("div",{className:"panel-row__device-head",children:[n.jsx("span",{className:"panel-row__device-side body-2b",children:l}),i&&t&&n.jsx(ce,{htmlType:"button",size:32,type:"dot",icon:"x",ariaLabel:`${l} ${r("customers.device.unwear","\uCC29\uC6A9 \uD574\uC81C")}`,showTooltipInfo:r("customers.device.unwear","\uCC29\uC6A9 \uD574\uC81C"),onClick:()=>t(s)})]}),i?n.jsxs("div",{className:"panel-row__device-info",children:[n.jsxs("span",{className:"panel-row__device-kind",children:[i.device&&n.jsx(ht,{size:"small",variant:ac(i.device),fill:"soft",label:Q5(i.device,r)}),Qc(i)&&n.jsx("span",{className:"panel-row__device-detail body-3",children:Qc(i)})]}),n.jsx("span",{className:"panel-row__device-name body-2b",children:i.productName||i.brand}),go(i.wornYear,i.wornMonth,i.wornDay)&&n.jsx("span",{className:"panel-row__device-date caption-1",children:r("customers.device.wornSince",{date:go(i.wornYear,i.wornMonth,i.wornDay)})})]}):n.jsx("span",{className:"panel-row__device-empty body-3",children:a??r("customers.device.notRegistered","\uBBF8\uB4F1\uB85D")})]},s)})})}function sr({title:e,icon:t,disc:a,actions:r,size:s="medium",minHeight:i,maxWidth:l,className:c,scrollable:d,scrollbarGutter:u="auto",compactRows:p=!1,useBorder:m=!0,useBg:h=!0,useRowBorder:b=!0,labelWidth:v,form:C=!1,loading:w,empty:f,children:y}){const x=Se("panel",`panel--${s}`,C?"panel--form":"",i!==void 0?"panel--fill":"",m?"":"panel--no-border",h?"":"panel--no-bg",b?"":"panel--no-row-border",p?"panel--compact-rows":"",c),g={};return i!==void 0&&(g.minHeight=i),l!==void 0&&(g.maxWidth=typeof l=="number"?`${l}px`:l),v!==void 0&&(g["--panel-label-width"]=typeof v=="number"?`${v}px`:v),n.jsxs("div",{className:x,style:Object.keys(g).length?g:void 0,children:[(e!=null||a!=null)&&n.jsxs("div",{className:Se("panel__header",a!=null?"panel__header--with-disc":""),children:[t&&n.jsx(Ke,{icon:t,label:typeof e=="string"?e:void 0,className:"panel__icon"}),n.jsxs("div",{className:"panel__title-group",children:[e!=null&&n.jsx("h2",{className:`panel__title ${a!=null?"body-3b":"h5b"}`,children:e}),a!=null&&n.jsx("p",{className:"panel__disc caption-1",children:a})]}),r&&n.jsx("div",{className:"panel__actions",children:r})]}),w?n.jsx(Tn,{variant:"loading"}):f!=null&&o.Children.toArray(y).length===0?n.jsx(Tn,{variant:"empty",children:f}):d?n.jsx("div",{className:Se("panel__body--scroll",u==="stable"&&"panel__body--gutter-stable"),children:y}):y]})}function t3({cols:e=2,children:t}){return n.jsx("div",{className:"panel-grid",style:{"--panel-grid-cols":e},children:t})}function n3(e){return[{label:e("training.noise.level.none","\uC5C6\uC74C"),value:0},{label:e("training.noise.level.weak","\uC57D\uD568"),value:1},{label:e("training.noise.level.medium","\uBCF4\uD1B5"),value:2},{label:e("training.noise.level.strong","\uAC15\uD568"),value:3},{label:e("training.noise.level.veryStrong","\uB9E4\uC6B0 \uAC15\uD568"),value:4}]}function eu(e){return[{label:e("training.noise.type.default","\uAE30\uBCF8"),value:"defaultNoise",icon:"party-popper"},{label:e("training.noise.type.street","\uAE38\uAC70\uB9AC"),value:"street",icon:"car"},{label:e("training.noise.type.buzz","\uC640\uAE00\uC640\uAE00"),value:"buzz",icon:"message-square-more"},{label:e("training.noise.type.restaurant","\uC2DD\uB2F9"),value:"restaurant",icon:"coffee"}]}n3(St.t.bind(St)),eu(St.t.bind(St));const Ho="none",a3=.5,r3=1.5,o3=.25;function zo({title:e,valueLabel:t,value:a,min:r,max:s,step:i,tickStep:l,size:c,onChange:d}){return n.jsxs(Tn,{variant:"custom",label:e,useFullWidth:!0,children:[n.jsx(Jl,{value:a,onChange:d,min:r,max:s,step:i,size:c,showBgTick:!0,tickStep:l,ariaLabel:e,className:"noise-settings__slider-input"}),n.jsx("div",{className:"noise-settings__value button-1",children:t})]})}function tu({anchorRect:e,onClose:t}){const{t:a}=ve.useTranslation(),r=Yt("(max-width: 767px)")?40:24,s=ar(),i=ja(s?.settings??Ma),l=s?.settings.type??"defaultNoise",c=s?.settings.enabled??!0,d=s?.playbackRate??1,u=s?.mainVolume??1,p=Math.round(u*100),m=o.useCallback(C=>{try{s?.setMainVolume(Math.max(0,Math.min(1,C/100)))}catch{}},[s]),h=o.useCallback(C=>{try{s?.setPlaybackRate(C)}catch{}},[s]),b=o.useCallback(C=>{const w=Math.min(Ea,Math.max(0,Math.round(C*10)/10));try{s?.setSettings({noiseRatio:w})}catch{}},[s]),v=o.useCallback(C=>{try{C===Ho?s?.setSettings({enabled:!1}):s?.setSettings({type:C,enabled:!0})}catch{}},[s]);return n.jsx(an,{anchorRect:e,offset:12,onClose:t,ariaLabel:a("training.trainingSettingsTitle","\uD6C8\uB828 \uC124\uC815"),isMobilePopup:!1,closeOnOutsideClick:!1,header:n.jsxs("div",{className:"noise-settings__header",children:[n.jsx("span",{children:a("training.trainingSettingsTitle","\uD6C8\uB828 \uC124\uC815")}),n.jsx(ce,{htmlType:"button",size:40,type:"dot",icon:"x",variant:"transparent-gray",useBorder:!1,ariaLabel:a("common.close","\uB2EB\uAE30"),onClick:t})]}),children:n.jsxs(sr,{className:"noise-settings",useBorder:!1,labelWidth:72,children:[n.jsx(zo,{title:a("training.playVolumeTitle","\uC804\uCCB4 \uC18C\uB9AC"),valueLabel:`${p}%`,value:p,min:0,max:100,step:10,size:r,onChange:m}),n.jsx(zo,{title:a("training.playSpeedTitle","\uC7AC\uC0DD \uC18D\uB3C4"),valueLabel:`${d.toFixed(2)}x`,value:d,min:a3,max:r3,step:o3,size:r,onChange:h}),n.jsx(Tn,{variant:"custom",label:a("training.noiseTypeTitle","\uC18C\uC74C \uC885\uB958"),useFullWidth:!0,children:n.jsx(_n,{ariaLabel:a("training.noiseTypeTitle","\uC18C\uC74C \uC885\uB958"),size:40,shape:"rounded",options:[{key:Ho,label:a("training.noise.type.none","\uC5C6\uC74C")},...eu(a).map(C=>({key:C.value,label:C.label}))],value:c?l:Ho,onChange:v})}),n.jsx(zo,{title:a("training.noiseRatioTitle","\uC18C\uC74C \uBE44\uC728"),valueLabel:a("training.noiseRatioValue","{{ratio}}\uBC30",{ratio:i.toFixed(1)}),value:i,min:0,max:Ea,step:Fc,size:r,onChange:b})]})})}function nu({useNoiseSettingBtn:e=!1,onSettings:t,onNext:a,onResult:r,stepIndex:s=0,stepCount:i=0,pageIndex:l=0,pageCount:c=1,resultOpen:d=!1}){const{t:u}=ve.useTranslation(),[p,m]=o.useState(!1),[h,b]=o.useState(null),[v,C]=o.useState(!1),w=o.useRef(null),f=o.useRef(null),y=ar(),x=c>0,g=x&&l<c-1,k=!x||l>=c-1,_=s===Math.max(0,i);o.useEffect(()=>{e||(m(!1),b(null))},[e]);const B=o.useCallback(()=>{m(!1),b(null)},[]),N=o.useCallback(()=>{if(p){m(!1),b(null);return}const R=w?.current?.getBoundingClientRect();R&&b(R),t?.(),m(!0)},[p,t]),A=o.useCallback(()=>{if(p){m(!1),b(null);return}const R=f?.current?.getBoundingClientRect();R&&b(R),t?.(),m(!0)},[p,t]),S=Yt("(max-width: 767px)"),O=o.useRef(null),[H,j]=o.useState(null),q=o.useCallback(()=>{C(R=>{const G=!R;return j(G?O.current?.getBoundingClientRect()??null:null),G})},[]),E=o.useCallback(()=>{C(!1),j(null)},[]);o.useEffect(()=>{d&&(C(!1),j(null))},[d]);const M=n.jsxs(n.Fragment,{children:[n.jsxs("div",{className:"pp-bottom__meter",children:[n.jsx("span",{className:"pp-bottom__meter-label caption-1",children:u("training.meter.sentence","\uC7AC\uC0DD")}),n.jsx(ho,{analyser:y?.mainAnalyser??null,orientation:"horizontal",length:112,label:"db",labelPos:"left",ariaLabel:u("training.meter.sentence","\uC7AC\uC0DD")})]}),n.jsxs("div",{className:"pp-bottom__meter",children:[n.jsx("span",{className:"pp-bottom__meter-label caption-1",children:u("training.meter.noise","\uC18C\uC74C")}),n.jsx(ho,{analyser:y?.noiseAnalyser??null,orientation:"horizontal",length:112,label:"db",labelPos:"left",ariaLabel:u("training.meter.noise","\uC18C\uC74C")})]})]});return Kc(e&&p,()=>typeof document<"u"?document.querySelector(".noise-settings__header")?.closest(".tooltip-content")??null:null,()=>[w.current,f.current].map(R=>R?.querySelector("button")??null).find(R=>!!R&&R.getClientRects().length>0)??w.current?.querySelector("button")??null),n.jsxs("div",{className:"pp-bottom",children:[n.jsxs("div",{className:"pp-bottom__left",children:[e?n.jsxs(n.Fragment,{children:[n.jsx("div",{className:"pp-bottom__settings--desktop",children:n.jsx("div",{ref:w,className:"pp-bottom__tooltip-trigger","data-tooltip-ignore":!0,children:n.jsx(ce,{htmlType:"button",size:56,type:"bar",icon:"settings",onClick:N,className:p?"is-selected":void 0,"aria-expanded":p,"aria-haspopup":"dialog",ariaLabel:u("training.trainingSettingsTitle","\uD6C8\uB828 \uC124\uC815"),label:u("training.trainingSettingsTitle","\uD6C8\uB828 \uC124\uC815"),minWidth:140})})}),n.jsx("div",{className:"pp-bottom__settings--mobile",children:n.jsx("div",{ref:f,className:"pp-bottom__tooltip-trigger","data-tooltip-ignore":!0,children:n.jsx(ce,{htmlType:"button",size:56,type:"dot",shape:"pill",icon:"settings",onClick:A,className:p?"is-selected":void 0,"aria-expanded":p,"aria-haspopup":"dialog",ariaLabel:u("training.settings","\uC124\uC815")})})})]}):null,e&&n.jsx("div",{ref:O,className:"pp-bottom__meter-trigger","data-tooltip-ignore":!0,children:n.jsx(ce,{htmlType:"button",size:40,type:"dot",shape:"pill",icon:"audio-lines",onClick:q,selected:v,"aria-expanded":S?v:void 0,ariaLabel:u("training.meter.toggle","\uC624\uB514\uC624 \uBBF8\uD130 \uD45C\uC2DC")})}),e&&v&&!S&&n.jsx("div",{className:"pp-bottom__meters",children:M})]}),e&&v&&S&&H&&n.jsx(an,{anchorRect:H,onClose:E,ariaLabel:u("training.meter.toggle","\uC624\uB514\uC624 \uBBF8\uD130 \uD45C\uC2DC"),children:n.jsx("div",{className:"pp-bottom__meters pp-bottom__meters--floating",children:M})}),n.jsxs("div",{className:"pp-bottom__right",children:[k&&n.jsx(ce,{htmlType:"button",size:56,type:"bar",icon:"check",onClick:typeof r=="function"?r:a,ariaLabel:u("training.viewResult","\uACB0\uACFC\uBCF4\uAE30"),label:u("training.viewResult","\uACB0\uACFC\uBCF4\uAE30"),variant:"main",disabled:!_}),g&&n.jsx(ce,{htmlType:"button",size:56,type:"bar",rightIcon:"chevron-right",align:"right",onClick:a,ariaLabel:u("training.nextQuestion","\uB2E4\uC74C \uBB38\uC81C"),label:u("training.nextQuestion","\uB2E4\uC74C \uBB38\uC81C"),variant:"main",disabled:!_})]}),e&&p&&n.jsx(tu,{anchorRect:h,onClose:B})]})}function au({title:e,subtitle:t,desc:a,depth:r,icon:s,wrapperStyle:i,iconTooltip:l,pageIndex:c,pageCount:d,progressMax:u,progressIndex:p,onBack:m,onClose:h}){const{t:b}=ve.useTranslation(),v=Yt("(max-width: 767px)"),C=Number.isInteger(p)?p:c||0,w=Number.isInteger(u)?u:d||0,f=m||h,y=Array.isArray(r)?v?r[r.length-1]:r.join(" / "):r,x=typeof e=="string"?e.trim():e,g=typeof t=="string"?t.trim():t,k=!!(x||g),_=k?x||g:b("common.emptyTrainingName","\uD6C8\uB828 \uC774\uB984\uC774 \uBE44\uC5B4 \uC788\uC2B5\uB2C8\uB2E4."),B=y||(x?t:void 0),N=v&&typeof B=="string"&&(B.includes(" \xB7 ")||B.includes(" / "))?B.split(/\s[·/]\s/).pop():B,A=o.useMemo(()=>{const S=i&&typeof i=="object"?{...i}:{};return!("width"in S)&&!("height"in S)&&(S.width="40px",S.height="40px"),S},[i]);return n.jsxs("header",{className:"pp-title training-popup-title",children:[n.jsxs("div",{className:"pp-title__left",children:[f?n.jsx(ce,{htmlType:"button",size:48,type:"dot",icon:"chevron-left",ariaLabel:b("common.back","\uB4A4\uB85C"),onClick:f,useBorder:!1,iconSize:"large",iconColor:"--color-black",variant:"transparent-gray"}):null,n.jsx("div",{children:s?n.jsx(jl,{icon:s,label:e,tooltip:l,wrapperStyle:A}):null}),n.jsxs("div",{className:"pp-title__text",children:[N?n.jsx("span",{className:"pp-title__depth caption-1",children:N}):null,n.jsx("span",{className:`pp-title__title h2${k?"":" pp-title__title--empty"}`,children:_}),a?n.jsx("span",{className:"pp-title__description caption-1",children:a}):null]})]}),n.jsx(nc,{max:Math.max(0,w??0),index:Math.max(0,C??0)})]})}function s3(){typeof window<"u"&&window.dispatchEvent(new CustomEvent("speechear.popup.close"))}function i3(e){return!e&&e!==0?[]:Array.isArray(e)?e.flatMap(t=>typeof t=="string"?t.split("|").map(a=>a.trim()).filter(Boolean):t||t===0?[String(t)]:[]):typeof e=="string"?e.split("|").map(t=>t.trim()).filter(Boolean):[String(e)]}const ru=(e,t)=>{if(!t)return t;const a=typeof St?.t=="function"?St.t(e,{defaultValue:t}):void 0;return typeof a=="string"&&a?a:t};function ou(e,t,a){const r=e,s=r?.title||r?.name||(Array.isArray(t)?t[t.length-1]:void 0)||a||"\uD6C8\uB828",i=di().find(c=>c.key===(r?.category_0||r?.category_main_code)),l=i?.subs?.find(c=>c.key===(r?.category_1||r?.category_sub_code));return{title:s,label:r?.title||s,depth:t,icon:i?.icon,wrapperStyle:i?.color?{"--t-item-fg":i.color}:void 0,iconTooltip:[i?ru(`topic.${i.key}`,i.label):void 0,l?ru(`topic.sub.${l.key}`,l.label):void 0].filter(Boolean).join(" / ")||void 0}}function Vo(e){return e&&typeof e=="object"&&typeof e.__ts=="number"?e.__ts:0}function l3(e){const t=e;return Array.isArray(t?.items)?t.items:Array.isArray(e)?e:e?[e]:[]}function c3({idPrefix:e,trainingData:t,depth:a,fallbackTitle:r="\uD6C8\uB828",pages:s=[],emptyMessage:i,buildResults:l,metaPatch:c}){const d=ou(t,a,r),u=typeof c=="function"?c(d)||{}:c||{},p=t?.id||t?.title||s.length;return{id:`${e}:${p}`,meta:{...d,...u},pages:s,emptyMessage:i,buildResults:l}}function u3(e){if(typeof e=="string")return e;if(e&&typeof e=="object"){const t=e;return t.context||t.sentence||t.question||""||""}return""}function d3(e){if(e&&typeof e=="object"){const t=e;if(Array.isArray(t.selectedValues))return t.selectedValues;if(t.selectedValue!==void 0)return t.selectedValue;if(t.selectedIndex!==void 0)return t.selectedIndex;if(t.value!==void 0)return t.value}return e}function p3(e,t=[]){if(Array.isArray(e))return e.join(", ");if(typeof e=="number"&&Array.isArray(t))return String(t[e]??"");if(typeof e=="string")return e}function su(e,t){if(!(!e||typeof e!="object"))return e[`step-${t}`]}function m3(e,t,a,r){return su(e,t*a+r)}function h3({payload:e,selected:t,choices:a=[],correctAnswers:r=[]}){if(e&&typeof e=="object"){const s=e;if(Array.isArray(s.selectedValues))return r.every(i=>s.selectedValues.includes(i))&&s.selectedValues.every(i=>r.includes(i));if(typeof s.correct=="boolean")return s.correct}if(r.length){if(typeof t=="number"&&Array.isArray(a)&&a.length)return r.some(s=>String(s)===String(a[t]));if(typeof t<"u")return r.some(s=>String(s)===String(t))}}function f3(e){return e?Array.isArray(e.items)?e.items.map(t=>{const a=t;return typeof t=="string"?{sentence:t}:{sentence:a.context||a.sentence||"",contextCode:a.contextCode||a.context_code}}):Array.isArray(e.sentences)?e.sentences.map(t=>{const a=t;return typeof t=="string"?{sentence:t}:{sentence:a.sentence||a.context||"",contextCode:a.contextCode}}):Array.isArray(e.contexts)?e.contexts:e.contextCode?[{contextCode:e.contextCode}]:[]:[]}const iu=o.createContext(null);function C3(){const e=o.useContext(iu);if(!e)throw new Error("useTrainingPagePopupContext must be used inside TrainingPagePopup");return e}function g3({index:e,stepIndex:t,isLast:a=!1,title:r,choices:s=[],onDone:i,onChange:l}){const{t:c}=ve.useTranslation(),d=typeof e=="number"?e:-1,u=typeof t!="number"?"disabled":d<t?"done":d===t?"active":"disabled",[p,m]=o.useState(()=>s.map(()=>null)),h=JSON.stringify(s),b=s.length;o.useEffect(()=>{m(Array.from({length:b},()=>null))},[h]);const v=o.useRef(void 0);o.useEffect(()=>{const y=v.current;typeof y=="number"&&typeof t=="number"&&typeof e=="number"&&y>=e&&t<e&&m(Array.from({length:b},()=>null)),v.current=t},[t,e,b]);const C=o.useMemo(()=>p.filter(y=>y!==null).length+1,[p]),w=o.useCallback(y=>{if(u!=="active")return;const x=p;let g;if(x[y]!=null){const _=x[y];g=x.map(B=>B!==null&&B>=_?null:B)}else g=[...x],g[y]=C;m(g);const k={selectedOrder:g,words:s,__ts:Date.now()};try{typeof l=="function"&&l(k)}catch{}if(x[y]==null&&g.length>0&&g.every(_=>_!==null))try{typeof i=="function"&&i(k)}catch{}},[u,p,C,l,i,s]),f=r??c("training.selectInOrder","\uB4E4\uC740 \uC21C\uC11C\uB300\uB85C \uCE74\uB4DC\uB97C \uC120\uD0DD\uD558\uC138\uC694.");return n.jsx(Vn,{index:e,stepIndex:t,isLast:a,title:f,onDone:i,children:n.jsx("div",{className:"training-step__cards",children:s.map((y,x)=>n.jsx(vo,{item:{word:y},disabled:u==="disabled",selectable:!0,selected:p[x]!==null,orderRank:p[x],onSelect:()=>w(x),flipDelay:x*120,hideLabel:!1,hideAudio:!0},`${y}-${x}`))})})}function ir(e){return null}ir.__isTrainingPage=!0;function ia(e,t){const a=C3();return{ctx:a,index:e,stepIndex:a.currentStepIndex,isLast:typeof e=="number"&&typeof t=="number"?e===t-1:!1,onDone:r=>a.handleStepDone(r,e),onChange:r=>a.handleStepChange(r,e)}}function lu({_stepIndex:e,_totalSteps:t,...a}){const{index:r,stepIndex:s,isLast:i,onDone:l}=ia(e,t);return n.jsx(Fo,{...a,index:r,stepIndex:s,isLast:i,onDone:l})}function cu({_stepIndex:e,_totalSteps:t,...a}){const{index:r,stepIndex:s,isLast:i,onDone:l,onChange:c}=ia(e,t);return n.jsx(Po,{...a,index:r,stepIndex:s,isLast:i,onDone:l,onChange:c})}function uu({_stepIndex:e,_totalSteps:t,...a}){const{index:r,stepIndex:s,isLast:i,onDone:l,onChange:c}=ia(e,t);return n.jsx(Io,{...a,index:r,stepIndex:s,isLast:i,onDone:l,onChange:c})}function du({_stepIndex:e,_totalSteps:t,...a}){const{index:r,stepIndex:s,isLast:i,onDone:l,onChange:c}=ia(e,t);return n.jsx(Oo,{...a,index:r,stepIndex:s,isLast:i,onDone:l,onChange:c})}function pu({_stepIndex:e,_totalSteps:t,...a}){const{index:r,stepIndex:s,isLast:i,onDone:l,onChange:c}=ia(e,t);return n.jsx(Xc,{...a,index:r,stepIndex:s,isLast:i,onDone:l,onChange:c})}function b3({_stepIndex:e,_totalSteps:t,...a}){const{index:r,stepIndex:s,isLast:i,onDone:l,onChange:c}=ia(e,t);return n.jsx(g3,{...a,index:r,stepIndex:s,isLast:i,onDone:l,onChange:c})}function Wo(...e){for(const t of e)if(typeof t=="string"){const a=t.trim();if(a.length)return a}else{if(typeof t=="number"||typeof t=="boolean")return String(t);if(Array.isArray(t)&&t.length)return t.join(", ");if(t&&typeof t=="object"){const a=t,r=[a.text,a.label,a.value];for(const s of r){if(typeof s=="string"&&s.trim().length)return s.trim();if(typeof s=="number"||typeof s=="boolean")return String(s)}}}return null}function y3(e){return Wo(e?.question,e?.q,e?.sentence,e?.text,e?.prompt,e?.wording)}function mu(e){if(!e)return;if(typeof e.decision=="boolean")return e.decision;if(typeof e.correct=="boolean")return e.correct;if(typeof e.heard=="boolean")return e.heard;if(typeof e.judgement=="boolean")return e.judgement;const t=Wo(e?.status,e?.result,e?.judge,e?.note);if(t){const a=t.toLowerCase();if(["ok","true","\uB9DE\uC74C","\uC815\uB2F5"].some(r=>a.includes(r)))return!0;if(["ng","false","\uD2C0\uB9BC","\uC624\uB2F5"].some(r=>a.includes(r)))return!1}}function hu(e){const{score:t,contextsLength:a,results:r=[],subtitle:s,onReplay:i,onClose:l,inline:c=!1,pending:d=!1}=e||{},{t:u}=ve.useTranslation(),p=o.useId(),m=o.useCallback(()=>!d,[d]);o.useEffect(()=>{const y=a??0;if(t!=null&&y>0&&t/y>.5){const x=window.setTimeout(()=>{window.dispatchEvent(new CustomEvent("party:trigger",{detail:{count:140,strength:1.6,duration:2200}}))},0);return()=>window.clearTimeout(x)}},[t,a]);const h=o.useCallback(y=>{const x=mu(y),g=Wo(y?.wording,y?.label);return x===!0?{variant:"main",label:g??u("training.result.heardWell","\uC798 \uB4E4\uC5C8\uC5B4\uC694")}:x===!1?{variant:"danger",label:g??u("training.result.notHeard","\uBABB \uB4E4\uC5C8\uC5B4\uC694")}:{variant:"disabled",label:g??u("training.result.notJudged","\uBBF8\uD310\uC815")}},[u]),b=a??0,v=t??0,C=o.useMemo(()=>Array.isArray(r)?r:[],[r]),w=o.useMemo(()=>C.map(y=>{const x=y??{},g=y3(x)||u("training.result.noContent","(\uB0B4\uC6A9\uC5C6\uC74C)"),{variant:k,label:_}=h(x),B=Array.isArray(x.corrects)?x.corrects:[],N=B.length?B.join(", "):x.answer!=null&&x.answer!==""?String(x.answer):null,A=typeof x.selectedText=="string"?x.selectedText:null,S=mu(x)===!0;return{problem:g,variant:k,label:_,answer:N,selectedText:A,isCorrect:S}}),[C,h,u]),f=o.useMemo(()=>w.some(y=>y.answer!==null||y.selectedText!==null),[w]);return n.jsx(jn,{onClose:l,closeOnBackdrop:!1,inline:c,ariaLabel:u("training.result.title","\uD6C8\uB828\uC744 \uBAA8\uB450 \uB9C8\uCCE4\uC2B5\uB2C8\uB2E4."),className:"popup--training-result",beforeClose:m,footerClassName:"trp-result__foot",footer:({animateThen:y,closeWithAnimation:x})=>n.jsxs(n.Fragment,{children:[d&&n.jsx("p",{id:p,className:"trp-actions__reason caption-1",role:"status",children:u("training.result.pendingDone","\uACB0\uACFC\uB97C \uACC4\uC0B0\uD558\uB294 \uC911\uC774\uB77C \uC544\uC9C1 \uC644\uB8CC\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.")}),n.jsxs("div",{className:"trp-actions",children:[n.jsx(ce,{htmlType:"button",size:56,type:"bar",label:u("training.result.replay","\uB2E4\uC2DC\uD558\uAE30"),onClick:()=>y(i)}),n.jsx(ce,{htmlType:"button",size:56,type:"bar",label:u("training.result.done","\uC644\uB8CC"),variant:"main",onClick:x,disabled:d,onDisabledClick:d?()=>{}:void 0,"aria-describedby":d?p:void 0})]})]}),children:()=>n.jsxs("div",{className:"trp-result is-on",children:[n.jsxs("header",{className:"trp-result__head",children:[n.jsx("p",{className:"trp-result__eyebrow caption-1",children:u("training.result.eyebrow","\uD6C8\uB828 \uC644\uB8CC")}),n.jsx("h1",{className:"trp-result__title h2",children:u("training.result.title","\uD6C8\uB828\uC744 \uBAA8\uB450 \uB9C8\uCCE4\uC2B5\uB2C8\uB2E4.")}),s&&n.jsx("p",{className:"trp-result__subtitle body-3",children:s}),n.jsx("div",{className:"trp-score",children:n.jsxs("div",{className:"trp-score__figure","aria-label":u("training.result.scoreAria",{correct:v,total:b}),children:[n.jsx("span",{className:"trp-score__big",children:v}),n.jsx("span",{className:"trp-score__sep",children:"/"}),n.jsx("span",{className:"trp-score__total",children:b})]})})]}),w.length>0&&n.jsx("section",{className:"trp-result__body",children:n.jsxs("div",{className:`result-table${f?" result-table--answer":""}`,role:"table","aria-label":u("training.result.tableAriaLabel","\uBB38\uD56D\uBCC4 \uD310\uC815"),children:[n.jsxs("div",{className:"result-table__head caption-1",role:"row",children:[n.jsx("span",{role:"columnheader",children:u("common.col.problem","\uBB38\uC81C")}),f&&n.jsx("span",{role:"columnheader",children:u("training.result.colAnswerSelected","\uC815\uB2F5 \xB7 \uC120\uD0DD")}),n.jsx("span",{className:"col-right",role:"columnheader",children:u("training.result.colJudge","\uD310\uC815")})]}),w.map((y,x)=>n.jsxs("div",{className:"result-table__row",role:"row",children:[n.jsxs("div",{className:"trp-row__problem",children:[n.jsx("span",{className:"trp-row__no caption-1",children:String(x+1).padStart(2,"0")}),n.jsx("div",{className:"trp-row__q body-2",children:y.problem})]}),f&&n.jsxs("div",{className:"trp-row__answers",children:[y.answer!==null&&n.jsxs("div",{className:"trp-row__answer-line",children:[n.jsx("span",{className:"trp-row__answer-label answer-correct caption-1",children:u("training.result.colAnswer","\uC815\uB2F5")}),n.jsx("span",{className:"trp-row__answer-value body-2",children:y.answer})]}),n.jsxs("div",{className:"trp-row__answer-line",children:[n.jsx("span",{className:`trp-row__answer-label answer-selected caption-1 ${y.isCorrect?"is-correct":"is-wrong"}`,children:u("training.result.colSelected","\uC120\uD0DD")}),n.jsx("span",{className:`trp-row__answer-value body-2 ${y.isCorrect?"is-correct":"is-wrong"}`,children:y.selectedText??"\u2014"})]})]}),n.jsx("div",{className:"trp-row__judge",children:n.jsx(ht,{variant:y.variant,label:y.label,fill:"soft",minWidth:80})})]},x))]})})]})})}function v3(e){o.useEffect(()=>{if(!e)return;const t=()=>typeof document>"u"||document.visibilityState!=="hidden";let a=null,r=null,s=0,i=0;const l=()=>{const p=Date.now();a==null&&(a=p),r==null&&(r=p)},c=()=>{r!=null&&(s+=Date.now()-r,r=null)};t()&&l();const d=()=>{if(c(),a==null||s-i<1e3||i===0&&s<5e3)return;const p=a+i;i=s,A2({trainingType:e,startedAt:new Date(p).toISOString(),endedAt:new Date(a+s).toISOString()})},u=()=>{t()?l():d()};return typeof document<"u"&&document.addEventListener("visibilitychange",u),typeof window<"u"&&window.addEventListener("pagehide",d),()=>{typeof document<"u"&&document.removeEventListener("visibilitychange",u),typeof window<"u"&&window.removeEventListener("pagehide",d),d()}},[e])}function qo(e,t){return e&&e.id||`page-${t??0}`}function Uo(e,t){return e&&e.key||`step-${t??0}`}function lr(){return{pageIndex:0,stepIndex:0,answersByPage:{}}}function x3(e,t){return typeof e?.props=="function"?e.props(t)||{}:e?.props||{}}const _3=300,w3=()=>{try{return typeof window<"u"&&!!window.matchMedia?.("(prefers-reduced-motion: reduce)").matches}catch{return!1}},Mn=Object.freeze({}),fu=new Set(["LISTEN_IN_NOISE","SHORT_STORY","LONG_STORY","ORDERING_SENTENCE"]);function Cu(e){const t=e,a=t?.results||t?.answers||[],r=Array.isArray(a)&&a.length>0?a.length:null,s=Array.isArray(a)?a.filter(i=>i?.correct===!0||i?.isCorrect===!0||i?.score===1||i?.heard===!0||i?.judgement===!0).length:null;return{results:a,correct:r!=null?s:null,total:r}}const k3=e=>n.jsx(hu,{score:e.score,contextsLength:e.contextsLength,results:e.results,onReplay:e.onReplay,onClose:e.onClose,pending:e.pending});function A3(e){const{scenario:t,title:a,subTitle:r,depth:s,icon:i,wrapperStyle:l,iconTooltip:c,pageIndex:d,pageCount:u,stepIndex:p,stepCount:m,onBack:h,onComplete:b,onNext:v,onSettings:C,useNoiseSetting:w=!0,children:f,ariaLabel:y,label:x,buildResults:g,onResult:k,typeKey:_,entryPoint:B,dailyTotal:N,itemRef:A,renderResultPopup:S,noiseOverride:O}=e;v3(_&&!fu.has(_)?_:"");const H=o.useRef(0);o.useEffect(()=>{H.current=Date.now()},[]);const{t:j}=ve.useTranslation(),q=k,E=!!t,M=t?.id||null,R=t?.meta||{},G=Array.isArray(t?.pages)?t.pages:[],X=Array.isArray(f)||o.isValidElement(f)&&typeof f!="function"?o.Children.toArray(f).filter(o.isValidElement):[],U=X.length>0,W=te=>te===ir||te?.__isTrainingPage===!0,Y=U&&X.some(te=>W(te.type)),L=Y?X.filter(te=>W(te.type)).map((te,Ce)=>{const V=te.props||{};return{id:`children-page-${Ce}`,steps:o.Children.toArray(V.children).filter(o.isValidElement),pageTop:V.pageTop||V.top||null,pageBottom:V.pageBottom||V.bottom||null}}):[{id:"children-page-0",steps:X}],D=U&&!E&&typeof f!="function",P=D?Math.max(1,L.length):0;o.useEffect(()=>{if(!(typeof document>"u"||!document.body)&&!document.body.classList.contains("ihabdevteam-core-scope"))return document.body.classList.add("ihabdevteam-core-scope"),()=>{document.body.classList.remove("ihabdevteam-core-scope")}},[]),o.useEffect(()=>{if(typeof document>"u"||!document.body)return;const te=document.body;return te.dataset.ihabTrainingPopupCount=String(Number(te.dataset.ihabTrainingPopupCount||"0")+1),te.classList.add("ihab-training-popup-open"),()=>{const Ce=Number(te.dataset.ihabTrainingPopupCount||"1")-1;Ce>0?te.dataset.ihabTrainingPopupCount=String(Ce):(delete te.dataset.ihabTrainingPopupCount,te.classList.remove("ihab-training-popup-open"))}},[]),o.useEffect(()=>{if(!(typeof document>"u"||!document.body))return w4()},[]);const[I,F]=o.useState({...Ma,enabled:!1}),$=o.useRef(I);o.useEffect(()=>{$.current=I},[I]);const J=o.useRef(O),Z=o.useRef(!1),K=o.useRef(null);o.useEffect(()=>{let te=!1;const Ce=V=>{if(te)return;Z.current=!0;const se=V?Ta({...Ma,enabled:!1},V):{...Ma},de=K.current;K.current=null;const ke=de?Ta(se,de):se;$.current=ke,F(ke),de&&!J.current&&oi(ke),Ha(ke);const Be=J.current;if(Be){const Me=typeof Be=="function"?Be(ke):Be,at=Ta(ke,Me);$.current=at,F(at),Ha(at)}};return D2().then(Ce),()=>{te=!0}},[]);const[ae,ye]=o.useState(null),[oe,le]=o.useState(null),z=o.useCallback((te,Ce)=>{te==="main"?ye(Ce):le(Ce)},[]),re=o.useRef(null),pe=o.useRef(null),_e=o.useCallback(()=>{pe.current!==null&&(clearTimeout(pe.current),pe.current=null);const te=re.current;re.current=null,te&&oi(te)},[]);o.useEffect(()=>{if(typeof window>"u")return;const te=()=>{document.visibilityState==="hidden"&&_e()};return window.addEventListener("pagehide",_e),document.addEventListener("visibilitychange",te),()=>{window.removeEventListener("pagehide",_e),document.removeEventListener("visibilitychange",te),_e()}},[_e]);const be=o.useCallback(te=>{const Ce=Ta($.current,te);if($.current=Ce,F(Ce),!Z.current){K.current={...K.current??{},...te},Ha(Ce);return}J.current||(re.current=Ce,pe.current!==null&&clearTimeout(pe.current),pe.current=setTimeout(_e,_3)),Ha(Ce)},[_e]),Ne=I.mainSpeed,fe=I.mainVolume,xe=o.useCallback(te=>be({mainSpeed:te}),[be]),Ee=o.useCallback(te=>be({mainVolume:te}),[be]),Oe=o.useMemo(()=>({settings:I,setSettings:be,registerAnalyser:z,mainAnalyser:ae,noiseAnalyser:oe,playbackRate:Ne,setPlaybackRate:xe,mainVolume:fe,setMainVolume:Ee}),[I,be,z,ae,oe,Ne,xe,fe,Ee]),$e=o.useRef(null),[ue,Ae]=o.useState(0),Le=o.useRef([]),[Te,ne]=o.useState("center"),[ie,ge]=o.useState(!1),he=o.useRef(!1),Ge=o.useRef(null),Ue=o.useCallback(te=>{he.current||(he.current=!0,ge(!0),Ge.current=setTimeout(()=>{try{te()}catch{he.current=!1,ge(!1)}},w3()?0:X5))},[]);o.useEffect(()=>()=>{Ge.current&&clearTimeout(Ge.current)},[]);const Ye=o.useRef(h);o.useEffect(()=>{Ye.current=h}),o.useEffect(()=>{const te=$e.current,Ce=document.activeElement;if(Fr(te,Ce),te){const V=Array.from(te.querySelectorAll(gn)).filter(se=>!se.closest('[aria-hidden="true"]'))[0];if(V)try{V.focus()}catch{}}return()=>{const V=document.activeElement;if(!V||V===document.body||te&&te.contains(V))try{Or(Ce)?.focus?.()}catch{}}},[]),o.useEffect(()=>In(()=>Ue(()=>{const te=Ye.current;typeof te=="function"&&te()})),[Ue]),Pr($e,!0);const[Ze,Xe]=o.useState(!1),ze=o.useRef(!1),[Re,Ve]=o.useState(null),ot=o.useRef(0),Ct=()=>{ot.current+=1,Ve(null)},[zt,gt]=o.useState(""),[nt,Je]=o.useState(()=>lr()),et=o.useRef(typeof d=="number"?d:null);o.useEffect(()=>{!E&&!D||(Je(lr()),Ct())},[E,M,D]),o.useEffect(()=>{D&&Je(te=>{const Ce=Math.max(0,Math.min(te.pageIndex,Math.max(0,P-1)));return Ce!==te.pageIndex?{...te,pageIndex:Ce,stepIndex:0}:te})},[D,P]);const lt=D?Math.max(0,Math.min(nt.pageIndex,P-1)):0,We=D?L[lt]:null,ft=D&&We&&Array.isArray(We.steps)?We.steps:[],qe=E?nt.pageIndex:D?lt:typeof d=="number"?d:0,pt=E?G[Math.max(0,Math.min(nt.pageIndex,Math.max(0,G.length-1)))]:null,Et=E&&pt&&Array.isArray(pt.steps)?pt.steps:[],kt=E?Et.length:D?ft.length:typeof m=="number"?m:0,_t=E||D?Math.max(0,Math.min(nt.stepIndex,Math.max(0,kt))):typeof p=="number"?p:0,st=E?G.length:D?P:typeof u=="number"?u:0;o.useLayoutEffect(()=>{const te=et.current;if(typeof qe=="number"&&te!==null&&qe!==te&&qe>te)try{gt(j("training.problemNotice",{n:qe+1}))}catch{}et.current=typeof qe=="number"?qe:et.current},[qe,d,j]),o.useLayoutEffect(()=>{const te=$e.current;if(!te)return;const Ce=()=>te.querySelector(".page-popup__scroll");let V=null,se=null,de=null;const ke=ut=>{const Nt=Ce();if(!Nt)return;const qt=Nt.scrollHeight<=Nt.clientHeight;if(ne(qt?"center":"top"),ut&&!ze.current){ze.current=!0;try{Xe(!0)}catch{}try{at.disconnect()}catch{}}},Be=()=>{V!==null&&cancelAnimationFrame(V),V=requestAnimationFrame(()=>{se!==null&&clearTimeout(se),se=setTimeout(()=>ke(!0),60)})},Me=()=>{de!==null&&cancelAnimationFrame(de),de=requestAnimationFrame(()=>ke(!1))};Be(),window.addEventListener("resize",Me);const at=new MutationObserver(Be);at.observe(te,{childList:!0,subtree:!0,attributes:!0});const vt=setTimeout(()=>{ze.current||ke(!0)},400);return()=>{window.removeEventListener("resize",Me),V!==null&&cancelAnimationFrame(V),se!==null&&clearTimeout(se),de!==null&&cancelAnimationFrame(de),clearTimeout(vt);try{at.disconnect()}catch{}}},[$e]);const Ie=o.useCallback(te=>{$e.current&&($e.current._childOnNext=te)},[]),rt=o.useCallback(te=>{$e.current&&($e.current._childOnResult=te)},[]),bt=o.useCallback((te,Ce,V)=>{Je(se=>{const de=se.answersByPage[te]||{},ke=de[Ce],Be=Vo(V),Me=Vo(ke);return ke&&Me>Be?se:{...se,answersByPage:{...se.answersByPage,[te]:{...de,[Ce]:V}}}})},[Je]),Vt=o.useCallback((te,Ce,V)=>{const se=qo(pt,qe),de=Uo(te,Ce);bt(se,de,V)},[pt,qe,bt]),tt=o.useCallback((te,Ce,V)=>{const se=qo(pt,qe),de=Uo(te,Ce);bt(se,de,V),!V?.allowChange&&te?.autoAdvance!==!1&&Je(ke=>({...ke,stepIndex:Math.max(ke.stepIndex,Ce+1)}))},[pt,qe,bt,Je]),Zt=o.useCallback((te,Ce)=>{const V=We?.id||`children-page-${qe??0}`,se=typeof Ce=="number"?Ce:_t??0,de=`step-${se}`;bt(V,de,te),te?.allowChange||Je(ke=>({...ke,stepIndex:Math.max(ke.stepIndex,se+1)}))},[We,qe,_t,bt,Je]),An=o.useCallback((te,Ce)=>{const V=We?.id||`children-page-${qe??0}`,se=`step-${typeof Ce=="number"?Ce:_t??0}`;bt(V,se,te)},[We,qe,_t,bt]),Bt=D?{currentPageIndex:qe??0,currentStepIndex:_t??0,totalStepsInPage:ft.length,handleStepDone:Zt,handleStepChange:An}:null,Wt=async()=>{const te=typeof t?.buildResults=="function"?await Promise.resolve(t.buildResults({scenario:t,pages:G,flowState:nt,answersByPage:nt.answersByPage})):null;return typeof q=="function"&&await Promise.resolve(q(te))||te},en=async()=>{const te=We?.id||`children-page-${nt.pageIndex}`,Ce=nt.answersByPage[te]||{},V=Y?(()=>{const ke={};let Be=0;return L.forEach(Me=>{const at=nt.answersByPage[Me.id]||{},vt=Array.isArray(Me.steps)?Me.steps.length:0;for(let ut=0;ut<vt;ut+=1){const Nt=at[`step-${ut}`];typeof Nt<"u"&&(ke[`step-${Be+ut}`]=Nt)}Be+=vt}),ke})():Ce;if(typeof g=="function"){const ke=await Promise.resolve(g(V,{pageAnswers:Ce,answersByPage:nt.answersByPage,pages:L,currentPageId:te}));return typeof q=="function"&&await Promise.resolve(q(ke))||ke}const se=Object.entries(Ce).map(([ke,Be],Me)=>({index:Me,key:ke,payload:Be})),de={results:se,answers:se,score:0};return typeof q=="function"&&await Promise.resolve(q(de))||de},on=()=>{const te=++ot.current,Ce=()=>te!==ot.current;try{if(typeof document<"u"&&document.body){try{document.dispatchEvent(new CustomEvent("speechear-close-tooltips"))}catch{}document.dispatchEvent(new PointerEvent("pointerdown",{bubbles:!0,cancelable:!0})),document.dispatchEvent(new MouseEvent("click",{bubbles:!0,cancelable:!0}))}}catch{}if(E){const de=Wt();Ve(Mn);const ke=de;Promise.resolve(ke).then(Be=>{Ce()||Ve(Be||{isEmpty:!0})}).catch(Be=>{!Ce()&&Ve({isEmpty:!0})});return}if(D){const de=en();Ve(Mn);const ke=de;Promise.resolve(ke).then(Be=>{Ce()||Ve(Be||{isEmpty:!0})}).catch(Be=>{!Ce()&&Ve({isEmpty:!0})});return}const V=$e.current&&$e.current._childOnResult,se=de=>{try{return de?de():void 0}catch{return}};if(typeof V=="function"){const de=se(V);try{typeof document>"u"?require("url").pathToFileURL(__filename).href:fn&&fn.tagName.toUpperCase()==="SCRIPT"&&fn.src||new URL("components.cjs.js",document.baseURI).href}catch{}de&&typeof de.then!="function"?Ve(de):Ve(de&&typeof de.then=="function"?Mn:{});const ke=()=>{Ce()||Ve(Be=>Be===Mn?{}:Be)};Promise.resolve(de).then(Be=>{Be&&!Ce()?Ve(Be):ke()}).catch(Be=>{ke()});return}if(typeof q=="function"){const de=se(q);try{typeof document>"u"?require("url").pathToFileURL(__filename).href:fn&&fn.tagName.toUpperCase()==="SCRIPT"&&fn.src||new URL("components.cjs.js",document.baseURI).href}catch{}de&&typeof de.then!="function"?Ve(de):Ve(de&&typeof de.then=="function"?Mn:{});const ke=()=>{Ce()||Ve(Be=>Be===Mn?{}:Be)};Promise.resolve(de).then(Be=>{try{typeof document>"u"?require("url").pathToFileURL(__filename).href:fn&&fn.tagName.toUpperCase()==="SCRIPT"&&fn.src||new URL("components.cjs.js",document.baseURI).href}catch{}Be&&!Ce()?Ve(Be):ke()}).catch(Be=>{console.error("viewResults external handler failed",Be),ke()});return}},cn=()=>{if(E){if(typeof qe=="number"&&typeof st=="number"&&qe<st-1){Je(Ce=>({...Ce,pageIndex:Ce.pageIndex+1,stepIndex:0}));return}return on()}if(D){const Ce=ft.length;if(typeof _t=="number"&&_t<Ce-1){Je(V=>({...V,stepIndex:V.stepIndex+1}));return}if(typeof qe=="number"&&typeof st=="number"&&qe<st-1){Je(V=>({...V,pageIndex:V.pageIndex+1,stepIndex:0}));return}return on()}if(typeof v=="function"){try{v()}catch{}return}const te=$e.current&&$e.current._childOnNext;if(typeof te=="function"){try{te()}catch{}return}},tn=E?R.title||R.label||y||j("common.popup","\uD31D\uC5C5"):a||x||(Array.isArray(s)?s[s.length-1]:void 0)||y||j("common.popup","\uD31D\uC5C5"),Bn=y||tn,Xt=E?R.title??R.label??tn:a??x??tn,yt=(te,Ce)=>{const V=qo(pt,qe),se=Uo(te,Ce),de=nt.answersByPage[V]?.[se],ke=x3(te,{page:pt,pageIndex:qe,step:te,stepIndex:Ce,storedPayload:de,answersByPage:nt.answersByPage,flowState:nt}),Be={key:se,index:Ce,stepIndex:_t,isLast:Ce===Et.length-1};switch(te?.type){case"listen":return n.jsx(Fo,{...Be,...ke,onDone:Me=>tt(te,Ce,Me)});case"confirm":return n.jsx(Po,{...Be,...ke,onDone:Me=>tt(te,Ce,Me),onChange:Me=>Vt(te,Ce,Me)});case"confirmWithText":return n.jsx(Io,{...Be,...ke,onDone:Me=>tt(te,Ce,Me),onChange:Me=>Vt(te,Ce,Me)});case"orderList":return n.jsx(Oo,{...Be,...ke,onDone:Me=>tt(te,Ce,Me),onChange:Me=>Vt(te,Ce,Me)});default:return null}},un=o.useRef(void 0);o.useEffect(()=>{const te=un.current;if(un.current=qe,te===void 0||te===qe||!Ja())return;const Ce=$e.current;if(!Ce)return;const V=document.activeElement;if(!(!V||V===document.body||!Ce.contains(V)||V.disabled===!0))return;const se=Ce.querySelector(`.training-steps ${gn.split(", ").join(", .training-steps ")}`)??Array.from(Ce.querySelectorAll(gn)).find(de=>!de.closest('[aria-hidden="true"]'));try{se?.focus()}catch{}},[qe]);const Jt=E?G.length>0?n.jsx("div",{className:"training-steps",children:Et.map((te,Ce)=>yt(te,Ce))},`replay-${ue}`):n.jsx("div",{className:`page-popup__content page-popup__content--center${e.contentFull?" page-popup__content--full":""}`,children:n.jsx("div",{className:"pp-empty",children:t?.emptyMessage||j("training.noQuestions","\uBB38\uC81C\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4.")})}):null,Tt=D?n.jsxs(iu.Provider,{value:Bt,children:[We?.pageTop?n.jsx("div",{className:"training-page-top",children:We.pageTop}):null,n.jsx("div",{className:"training-steps",children:ft.map((te,Ce)=>{const V=te;return o.cloneElement(V,{...V.props,_stepIndex:Ce,_totalSteps:ft.length,_stepKey:`step-${Ce}`,_pageIndex:qe})})},`replay-${ue}`),We?.pageBottom?n.jsx("div",{className:"training-page-bottom",children:We.pageBottom}):null]}):null,dn=o.useCallback(()=>{let te;if(_){const Ce=Re,{results:V,correct:se,total:de}=Cu(Re);B2({items:S2(V),category:fu.has(_)?"sentence":"word",trainingType:_,entryPoint:B??"sentence",itemRef:A??null,correct:se,total:de,score:typeof Ce?.score=="number"?Ce.score:null,durationSeconds:Math.max(0,Math.round((Date.now()-H.current)/1e3)),dailyTotal:N??null}),te={correct:se,total:de,attempt:Le.current.length+1,previousAttempts:[...Le.current]}}Ct(),Ue(()=>{typeof b=="function"&&b(te),typeof h=="function"&&h()})},[b,h,_,B,N,A,Re,Ve,Ue]),Qt=o.useCallback(()=>gt(""),[gt]),pn=o.useCallback(()=>{Ue(()=>{typeof h=="function"&&h()})},[h,Ue]),De=n.jsxs("div",{className:`page-popup${ie?" page-popup--closing":""}`,role:"dialog","aria-modal":"true","aria-label":Bn,children:[n.jsxs("div",{ref:$e,className:`page-popup__panel ${Ze?"":"page-popup__panel--measuring"} ${Te==="center"?"page-popup__panel--center":Te==="top"?"page-popup__panel--top":""}`,children:[n.jsx(au,{title:Xt,subtitle:E?R.subtitle||R.label:Array.isArray(s)?s.join(" / "):void 0,desc:E?void 0:r,depth:E?R.depth:s,icon:E?R.icon:i,wrapperStyle:E?R.wrapperStyle:l,iconTooltip:E?R.iconTooltip:c,progressMax:st,progressIndex:qe,pageIndex:qe,pageCount:st,onBack:pn,onClose:pn}),n.jsx("div",{className:"page-popup__scroll",children:n.jsx("div",{className:`page-popup__content ${Te==="center"?"page-popup__content--center":"page-popup__content--top"}${e.contentFull?" page-popup__content--full":""}`,children:D?Tt:E?Jt:typeof f=="function"?f({registerOnNext:Ie,registerOnResult:rt,panelRef:$e,setResultOverlay:Ve}):f})}),n.jsx(nu,{onSettings:C,onNext:cn,onResult:on,useNoiseSettingBtn:!!(E?R.useNoiseSetting??!0:w),stepIndex:_t,stepCount:kt,pageIndex:qe,pageCount:st,resultOpen:!!(Re&&!Re.isEmpty)})]}),Re&&!Re.isEmpty&&(S??k3)({score:Re.score,results:Re.results||Re.answers||[],contextsLength:Re.results?Re.results.length:Re.answers?Re.answers.length:0,onReplay:()=>{if(H.current=Date.now(),Re!==Mn){const{correct:te,total:Ce}=Cu(Re);Le.current.push({correct:te,total:Ce})}if(Ct(),Ae(te=>te+1),E){if(Je(lr()),typeof t?.onReplay=="function")try{t.onReplay()}catch{}return}if(D){Je(lr());return}try{const te=$e.current&&$e.current._childOnResult;typeof te=="function"&&te({replay:!0})}catch{}},onClose:dn,pending:Re===Mn}),Re?.isEmpty&&n.jsx("div",{className:"page-popup page-popup--result-empty",role:"dialog","aria-modal":"true","aria-label":j("training.result.eyebrow","\uD6C8\uB828 \uC644\uB8CC"),children:n.jsxs("div",{className:"page-popup__panel page-popup__panel--center",children:[n.jsx("div",{className:"page-popup__scroll",children:n.jsx("div",{className:`page-popup__content page-popup__content--center${e.contentFull?" page-popup__content--full":""}`,children:n.jsx("div",{className:"page-popup__empty",children:j("training.result.eyebrow","\uD6C8\uB828 \uC644\uB8CC")})})}),n.jsx("div",{className:"page-popup__bottom",children:n.jsx(ce,{htmlType:"button",variant:"main",size:48,onClick:dn,label:j("training.result.done","\uC644\uB8CC")})})]})}),n.jsx(ea,{message:zt,position:"top",onClose:Qt})]}),Fe=n.jsx(jo.Provider,{value:Oe,children:De});return typeof document<"u"&&document.body?Ut.createPortal(Fe,document.body):Fe}const Ln=A3;Ln.Page=ir,Ln.ListenStep=lu,Ln.ConfirmStep=cu,Ln.ConfirmWithTextStep=uu,Ln.OrderListStep=du,Ln.CardStep=pu,Ln.CardOrderStep=b3;function B3({label:e,homonum:t}){const a=Gn()?.(e,t)??"",{imgRef:r,loading:s,hasImage:i,onLoad:l,onError:c}=yo(a);return i?n.jsxs("div",{className:"tooltip-word-image__cell",children:[s&&n.jsx("div",{className:"tooltip-word-image__spinner"}),n.jsx("img",{ref:r,src:a,alt:e,draggable:!1,style:{opacity:s?0:1},onLoad:l,onError:c})]}):n.jsx("div",{className:"tooltip-word-image__cell tooltip-word-image__cell--text h3",children:n.jsx("span",{children:e})})}function gu({words:e,anchorRect:t}){const a=o.useRef(null),[r,s]=o.useState(null);return o.useLayoutEffect(()=>{if(!t||!a.current)return;const{offsetWidth:i,offsetHeight:l}=a.current,c=window.innerWidth;let d=t.left+t.width/2-i/2,u=t.top-l-8;u<8&&(u=t.bottom+8),d=Math.max(8,Math.min(d,c-i-8)),s({left:d,top:u})},[t]),!t||e.length===0?null:Ut.createPortal(n.jsx("div",{ref:a,className:"tooltip-word-image",style:{visibility:r?"visible":"hidden",left:r?.left??0,top:r?.top??-9999},children:n.jsx("div",{className:"tooltip-word-image__cells",children:e.map(i=>n.jsx(B3,{label:i.label,homonum:i.homonum},`${i.label}_${i.homonum??1}`))})}),document.body)}const N3=new Intl.Collator("ko");function S3({titleIcon:e,resultCount:t,resultUnit:a,searchQuery:r,items:s,groups:i,selected:l=[],onSelect:c,maxSelect:d,onClearSelection:u,onPrint:p,onPrintEmpty:m,className:h,emptyHint:b,sectionType:v="page",disc:C,notice:w}){const{t:f,i18n:y}=ve.useTranslation(),x=y.language?.startsWith("ko")??!1,{anchorRect:g,openAt:k,close:_}=ya(),[B,N]=o.useState(null),A=o.useCallback(()=>{_(),N(null)},[_]);rb(A,!!B);const S=(r??"").trim(),O=/^[^,[\]\s]+$/.test(S)?S:"",H=O.length>0,j=r===void 0&&t===void 0,q=H?"match":j?"original":"ganada",[E,M]=o.useState(()=>q),[R,G]=o.useState("50"),[X,U]=o.useState(1),[W,Y]=o.useState(H);W!==H&&(Y(H),M(q));const L=E==="match"&&!H||E==="original"&&!j?q:E,D=o.useMemo(()=>[...H?[{value:"match",label:f("wordSearch.sort.match",{defaultValue:"\uC2DC\uC791 \uC6B0\uC120"})}]:[],...j?[{value:"original",label:f("wordSearch.sort.original",{defaultValue:"\uBC1B\uC740 \uC21C\uC11C"})}]:[],{value:"ganada",label:f("wordSearch.sort.ganada",{defaultValue:"\uAC00\uB098\uB2E4\uC21C \u2191"})},{value:"ganada_desc",label:f("wordSearch.sort.ganadaDesc",{defaultValue:"\uAC00\uB098\uB2E4\uC21C \u2193"})},{value:"syllable",label:f("wordSearch.sort.syllable",{defaultValue:"\uC74C\uC808 \uC218 \u2191"})},{value:"syllable_desc",label:f("wordSearch.sort.syllableDesc",{defaultValue:"\uC74C\uC808 \uC218 \u2193"})},{value:"grade",label:f("wordSearch.sort.grade",{defaultValue:"\uB4F1\uAE09\uC21C \u2191"})},{value:"grade_desc",label:f("wordSearch.sort.gradeDesc",{defaultValue:"\uB4F1\uAE09\uC21C \u2193"})}],[f,H,j]),P=o.useMemo(()=>["10","25","50","100"].map(fe=>({value:fe,label:f("wordSearch.pageSize",{count:Number(fe),defaultValue:`${fe}\uAC1C\uC529 \uBCF4\uAE30`})})),[f]),I=fe=>fe.words?.[0],F=o.useMemo(()=>{const fe=[...O].length,xe=d2(O),Ee=new Map;return Oe=>{let $e=Ee.get(Oe);return $e===void 0&&($e=xe((Oe.words?.[0]?.label??"").slice(0,fe))?0:1,Ee.set(Oe,$e)),$e}},[O]),$=o.useCallback((fe,xe)=>{const Ee=ue=>I(ue)?.label??"",Oe=ue=>I(ue)?.syllables??[...Ee(ue)].length,$e=ue=>(ue.words??[]).reduce((Ae,Le)=>{const Te=parseInt(Le.grade??"",10);return Number.isFinite(Te)&&Te<Ae?Te:Ae},999);switch(L){case"match":return F(fe)-F(xe)||N3.compare(Ee(fe),Ee(xe));case"ganada":return Ee(fe).localeCompare(Ee(xe),"ko");case"ganada_desc":return Ee(xe).localeCompare(Ee(fe),"ko");case"syllable":return Oe(fe)-Oe(xe)||Ee(fe).localeCompare(Ee(xe),"ko");case"syllable_desc":return Oe(xe)-Oe(fe)||Ee(fe).localeCompare(Ee(xe),"ko");case"grade":return $e(fe)-$e(xe)||Ee(fe).localeCompare(Ee(xe),"ko");case"grade_desc":return $e(xe)-$e(fe)||Ee(fe).localeCompare(Ee(xe),"ko");default:return 0}},[L,F]),J=o.useMemo(()=>s.slice().sort($),[s,$]),Z=Number(R)||10,K=o.useMemo(()=>(i??[]).flatMap(fe=>fe.items.slice().sort($).map(xe=>({item:xe,label:fe.label}))),[i,$]),ae=i?K.length:J.length,ye=Math.max(1,Math.ceil(ae/Z)),oe=Math.min(X,ye),le=o.useMemo(()=>J.slice((oe-1)*Z,oe*Z),[J,oe,Z]),z=o.useMemo(()=>{if(!i)return null;const fe=K.slice((oe-1)*Z,oe*Z),xe=new Map;for(const{item:Ee,label:Oe}of fe)xe.has(Oe)||xe.set(Oe,[]),xe.get(Oe).push(Ee);return[...xe.entries()].map(([Ee,Oe])=>({label:Ee,items:Oe}))},[i,K,oe,Z]);o.useEffect(()=>{U(1)},[E,R,ae,r]);const re=ae>0?n.jsxs("div",{className:"word-search-result-block__toolbar",children:[n.jsx(rn,{size:40,options:D,value:L,onChange:M,ariaLabel:f("wordSearch.sort.aria",{defaultValue:"\uC815\uB82C"})}),n.jsx(rn,{size:40,options:P,value:R,onChange:G,ariaLabel:f("wordSearch.pageSizeAria",{defaultValue:"\uD398\uC774\uC9C0 \uD06C\uAE30"})}),n.jsx(Ya,{page:oe,totalPages:ye,onChange:U})]}):void 0,pe=fe=>{c&&c(fe)},_e=t!==void 0&&a?n.jsxs(n.Fragment,{children:[f("wordSearch.resultTitlePrefix","\uCD1D "),n.jsx("span",{style:{color:"var(--color-main)"},children:t}),f("wordSearch.resultTitleSuffix",{unit:x?y2(a):a})]}):void 0,be=t!==void 0&&t>0&&d!==void 0&&a?f("wordSearch.resultDisc",{unit:x?x2(a):a,max:d,selected:l.length}):void 0,Ne=C??(w?n.jsxs(n.Fragment,{children:[n.jsx("span",{className:"word-search-result-block__notice",children:w}),be?n.jsx("span",{className:"word-search-result-block__disc",children:be}):null]}):be);return n.jsxs(na,{type:v,icon:e,title:_e,action:re,disc:Ne,className:Se("word-search-result-block",h),children:[n.jsxs("div",{className:"word-search-result-block__inner",children:[(i?i.length===0:s.length===0)&&n.jsxs("div",{className:"word-search-result-block__empty-wrap",children:[n.jsx("p",{className:"word-search-result-block__empty body-3",children:f("wordSearch.emptyResult","\uAC80\uC0C9 \uACB0\uACFC\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4.")}),b&&n.jsx("p",{className:"word-search-result-block__empty-hint body-3",children:b})]}),i?(z??[]).map(fe=>n.jsx("div",{className:"word-search-result-block__group",children:n.jsx("div",{className:"word-search-result-block__items",children:fe.items.map(xe=>{const Ee=l.includes(xe.id);return n.jsx("div",{onMouseEnter:Oe=>{k(Oe.currentTarget),N(xe.words??[])},onMouseLeave:A,children:n.jsx(ce,{htmlType:"button",size:"word",align:"grid",label:(xe.words??[]).map(Oe=>Oe.label),subLabel:(xe.words??[]).some(Oe=>Oe.subLabel)?(xe.words??[]).map(Oe=>Oe.subLabel):void 0,selected:Ee,onClick:()=>pe(xe.id),minWidth:200})},xe.id)})})},fe.label)):n.jsx("div",{className:"word-search-result-block__items",children:le.map(fe=>{const xe=l.includes(fe.id);return n.jsx("div",{onMouseEnter:Ee=>{k(Ee.currentTarget),N(fe.words??[])},onMouseLeave:A,children:n.jsx(ce,{htmlType:"button",size:"word",align:"grid",label:(fe.words??[]).map(Ee=>Ee.label),subLabel:(fe.words??[]).some(Ee=>Ee.subLabel)?(fe.words??[]).map(Ee=>Ee.subLabel):void 0,selected:xe,onClick:()=>pe(fe.id),minWidth:200})},fe.id)})}),B&&g&&n.jsx(gu,{words:B,anchorRect:g})]}),ye>1&&n.jsx("div",{className:"word-search-result-block__pagination-bottom",children:n.jsx(Ya,{page:oe,totalPages:ye,onChange:U})}),(u||p)&&n.jsxs("div",{className:"word-search-result-block__actions",children:[u&&n.jsx(ce,{htmlType:"button",size:"56",type:"bar",label:f("common.resetSelection","\uC120\uD0DD \uCD08\uAE30\uD654"),selected:!1,disabled:l.length===0,onClick:l.length===0?void 0:u}),p&&n.jsx("div",{onClick:l.length===0?m:void 0,children:n.jsx(ce,{htmlType:"button",size:"56",type:"bar",variant:"main",label:f("wordTable.title","\uB2E8\uC5B4 \uD45C \uB9CC\uB4E4\uAE30"),disabled:l.length===0,onClick:l.length===0?void 0:p})})]})]})}function D3(e,t){return t.map(a=>{const r=typeof a=="string"?a:a.label,s=typeof a=="string"?void 0:a.displayLabel;return{label:r,value:e[r]??"",displayLabel:s}})}function E3({sections:e,selectedList:t,count:a,onCountChange:r,maxCount:s=4,minCount:i=1,combinationSections:l,combinationSectionsForSlot:c,onSelect:d,placeholder:u="-",className:p,title:m,titleIcon:h,disc:b,showInfoButton:v=!0,onClearPhoneme:C,onSearch:w,onSearchEmpty:f,searchDisabled:y=!1,searchLabel:x,searchChecking:g=!1,pairMode:k=!1,sectionType:_="page",beforeSearchContent:B,beforeContent:N,afterContent:A,hideCountControl:S=!1,ordinal:O=!1}){const{t:H}=ve.useTranslation(),j=o.useMemo(()=>H("wordPairs.infoNotes",{returnObjects:!0}),[H]),q=o.useMemo(()=>Array.from({length:s-i+1},(I,F)=>{const $=i+F;return{key:String($),label:H("wordPairs.count",{n:$})}}),[H,s,i]),E=o.useMemo(()=>H("wordPairs.ordinals",{returnObjects:!0}),[H]),M=o.useCallback(I=>O?H("wordPairs.phonemeOrdinalLabel",{ordinal:E[I-1]??I}):a===1?H("wordPairs.phonemeSingleLabel","\uC74C\uC808"):H("wordPairs.phonemeN",{n:I}),[O,E,a,H]),R=o.useCallback(I=>O?H("wordPairs.phonemeContrastOrdinalLabel",{ordinal:E[I-1]??I}):a===1?H("wordPairs.phonemeContrastSingleLabel","\uB300\uB9BD \uC74C\uC808"):H("wordPairs.phonemeContrast",{n:I}),[O,E,a,H]),G=o.useCallback((I,F)=>F?n.jsxs(n.Fragment,{children:[I,n.jsx("span",{className:"phoneme-select-block__required",children:"*"})]}):I,[]),{anchorRect:X,toggleAt:U,close:W}=ya(),Y=o.useCallback(I=>r(Number(I)),[r]),L=Yt("(max-width: 767px)"),D=o.useCallback(I=>D3(I,e).map(({label:F,value:$,displayLabel:J})=>{const Z=!!$&&$!=="\uC5C6\uC74C";return n.jsxs("span",{className:Se("phoneme-select-block__cell-jamo-part",$?"":"phoneme-select-block__cell-jamo-part--empty",Z?"":"phoneme-select-block__cell-jamo-part--no-label"),children:[n.jsx("span",{className:`phoneme-select-block__cell-jamo-char h1${$==="\uC5C6\uC74C"?" phoneme-select-block__cell-jamo-char--excluded":""}`,children:$==="\uC5C6\uC74C"?"x":$||u}),Z&&n.jsx("span",{className:"phoneme-select-block__cell-jamo-label caption-2",children:J??F})]},F)}),[e,u]),P=n.jsxs(n.Fragment,{children:[n.jsx("div",{"data-tooltip-ignore":!0,children:n.jsx(ce,{htmlType:"button",size:40,type:L?"dot":void 0,icon:"info",label:L?void 0:H("wordPairs.caution","\uC720\uC758\uC0AC\uD56D"),ariaLabel:H("wordPairs.caution","\uC720\uC758\uC0AC\uD56D"),className:X?"is-selected":void 0,"aria-expanded":!!X,"aria-haspopup":"dialog",onClick:I=>U(I.currentTarget)})}),X&&n.jsx(Fn,{title:H("wordPairs.caution","\uC720\uC758\uC0AC\uD56D"),items:j,anchorRect:X,onClose:W})]});return n.jsxs(na,{type:_,title:m,icon:h,disc:b,action:v?P:void 0,className:Se("phoneme-select-block",p),children:[N,!S&&n.jsx("div",{className:"phoneme-select-block__controls",children:n.jsx(_n,{options:q,value:String(a),onChange:Y,size:40,className:"phoneme-select-block__count-control"})}),n.jsx("div",{className:"phoneme-select-block__cells",children:k?n.jsxs(n.Fragment,{children:[n.jsx("div",{className:"phoneme-select-block__cell-group",children:Array.from({length:a}).map((I,F)=>{const $=t[F*2]??{};return n.jsxs("div",{className:"phoneme-select-block__cell",children:[n.jsx("div",{className:"phoneme-select-block__cell-circle",children:n.jsx("div",{className:"phoneme-select-block__cell-jamo",children:D($)})}),n.jsx("span",{className:"phoneme-select-block__cell-index caption-1",children:M(F+1)})]},F)})}),n.jsx("span",{className:"phoneme-select-block__cell-vs h3",children:H("wordPairs.phonemeSelect.vs","\uB300")}),n.jsx("div",{className:"phoneme-select-block__cell-group",children:Array.from({length:a}).map((I,F)=>{const $=t[F*2+1]??{};return n.jsxs("div",{className:"phoneme-select-block__cell",children:[n.jsx("div",{className:"phoneme-select-block__cell-circle",children:n.jsx("div",{className:"phoneme-select-block__cell-jamo",children:D($)})}),n.jsx("span",{className:"phoneme-select-block__cell-index caption-1",children:R(F+1)})]},F)})})]}):t.map((I,F)=>n.jsxs("div",{className:"phoneme-select-block__cell",children:[n.jsx("div",{className:"phoneme-select-block__cell-circle",children:n.jsx("div",{className:"phoneme-select-block__cell-jamo",children:D(I)})}),n.jsx("span",{className:"phoneme-select-block__cell-index caption-1",children:M(F+1)})]},F))}),(l||c)&&n.jsx("div",{className:"phoneme-select-block__panels",children:n.jsx("div",{className:"phoneme-select-block__detail",children:k?n.jsxs("div",{className:"phoneme-select-block__pair-panels",children:[n.jsx("div",{className:"phoneme-select-block__panel-group",children:Array.from({length:a}).map((I,F)=>{const $=t[F*2]??{};return n.jsx(kn,{title:G(M(F+1),F===0),sections:c?c($,F*2):l,selected:$,onSelect:d?.(F*2),align:"newline"},F)})}),n.jsx("div",{className:"phoneme-select-block__panel-group",children:Array.from({length:a}).map((I,F)=>{const $=t[F*2+1]??{};return n.jsx(kn,{title:R(F+1),sections:c?c($,F*2+1):l,selected:$,onSelect:d?.(F*2+1),align:"newline"},F)})})]}):t.map((I,F)=>n.jsx(kn,{title:G(M(F+1),F===0),sections:c?c(I,F):l,selected:I,onSelect:d?.(F),align:"newline"},F))})}),B&&n.jsx("div",{className:"phoneme-select-block__before-search",children:B}),(C||w||g)&&(()=>{const I=t.every(F=>Object.entries(F).every(([$,J])=>!J||$==="\uC885\uC131"&&J==="\uC5C6\uC74C"));return n.jsxs("div",{className:"phoneme-select-block__search-row",onClick:I?f:void 0,children:[C&&n.jsx(ce,{htmlType:"button",size:"56",type:"bar",label:H("wordPairs.resetOptions","\uAC80\uC0C9 \uC635\uC158 \uCD08\uAE30\uD654"),selected:!1,disabled:I,onClick:I?void 0:C}),w?n.jsx(ce,{htmlType:"button",size:"56",type:"bar",variant:"main",icon:g?n.jsx("span",{className:"phoneme-select-block__spinner","aria-hidden":"true"}):void 0,label:x??H("wordSearch.searchButton","\uAC80\uC0C9\uD558\uAE30"),disabled:I||y||g,onDisabledClick:g?()=>{}:void 0,"aria-busy":g||void 0,onClick:w}):g?n.jsxs("div",{className:"phoneme-select-block__checking","aria-busy":"true",children:[n.jsx("div",{className:"phoneme-select-block__spinner"}),n.jsx("span",{className:"button-1 phoneme-select-block__checking-label",children:x??H("wordSearch.searchButton","\uAC80\uC0C9\uD558\uAE30")})]}):null]})})(),A]})}function j3({title:e,sections:t,selected:a,onSelect:r,className:s}){const{t:i}=ve.useTranslation();return n.jsx(kn,{className:s,title:e??i("wordSearch.filterTitle","\uB2E8\uC5B4 \uAC80\uC0C9 \uC124\uC815"),sections:t,selected:a,onSelect:r,align:"inline"})}function T3({title:e,headerAction:t,sections:a,selected:r,onSelect:s,className:i}){const{t:l}=ve.useTranslation();return a.length===0?null:n.jsx(kn,{className:i,title:e??l("training.filter.phonemeGroup",{defaultValue:"\uD6C8\uB828 \uC74C\uC808"}),headerAction:t,sections:a,selected:r,onSelect:s,align:"newline"})}function M3({title:e,mode:t,onModeChange:a,matchMode:r,onMatchModeChange:s,positionCount:i,onPositionCountChange:l,inputMode:c,onInputModeChange:d,className:u}){const{t:p}=ve.useTranslation(),m={searchMode:p("wordPairs.filter.searchModeLabel","\uB300\uB9BD \uBC29\uC2DD"),phonemeOrder:p("wordPairs.filter.phonemeOrder","\uC785\uB825 \uC74C\uC808 \uC704\uCE58"),count:p("wordPairs.filter.countLabel","\uC785\uB825 \uC74C\uC808 \uAC2F\uC218"),inputMode:p("wordPairs.filter.inputModeLabel","\uC785\uB825 \uBC29\uC2DD"),orderAny:p("wordPairs.filter.orderAny","\uBB34\uAD00"),orderMatch:p("wordPairs.filter.orderMatch","\uC77C\uCE58"),include:p("wordPairs.mode.include","\uC74C\uC18C \uD3EC\uD568"),pick:p("wordPairs.mode.pick","\uC74C\uC18C \uB300\uB9BD"),explicit:p("wordPairs.mode.contrast","\uC74C\uC18C \uB300\uB9BD \uC9C0\uC815"),charInput:p("wordPairs.input.char","\uAE00\uC790 \uC120\uD0DD"),pronInput:p("wordPairs.input.pron","\uBC1C\uC74C \uC120\uD0DD")},h=w=>p("wordPairs.count",{n:w}),b=[{label:m.searchMode,items:[m.include,m.pick,m.explicit],display:"segmented",labelAction:n.jsx(Aa,{title:p("wordPairs.mode.infoTitle","\uB300\uB9BD \uBC29\uC2DD"),items:[p("wordPairs.mode.infoInclude","\uC74C\uC18C \uD3EC\uD568 \u2014 \uC120\uD0DD\uD55C \uC74C\uC18C\uAC00 \uBAA8\uB450 \uB4E4\uC5B4\uAC04 \uB2E8\uC5B4\uC640 \uADF8 \uB300\uB9BD\uC30D\uC744 \uCC3E\uC544\uC694."),p("wordPairs.mode.infoPick","\uC74C\uC18C \uB300\uB9BD \u2014 \uC120\uD0DD\uD55C \uC74C\uC18C\uAC00 \uB300\uB9BD\uC30D \uB450 \uB2E8\uC5B4\uC758 \uC2E4\uC81C \uCC28\uC774\uC810\uC77C \uB54C\uB9CC \uB9E4\uCE6D\uB3FC\uC694."),p("wordPairs.mode.infoContrast","\uC74C\uC18C \uB300\uB9BD \uC9C0\uC815 \u2014 \uAE30\uC900 \uB2E8\uC5B4\uC640 \uB300\uB9BD \uB2E8\uC5B4\uC758 \uC74C\uC18C\uB97C \uAC01\uAC01 \uC9C1\uC811 \uC120\uD0DD\uD574 \uB300\uB9BD\uC30D\uC744 \uCC3E\uC544\uC694.")]})},{label:m.phonemeOrder,items:[m.orderAny,m.orderMatch],display:"segmented",labelAction:n.jsx(Aa,{items:p("wordPairs.filter.phonemeOrderInfo",{returnObjects:!0})})},{label:m.count,items:[h(1),h(2)],display:"segmented"},{label:m.inputMode,items:[m.charInput,m.pronInput],display:"segmented",labelAction:n.jsx(Aa,{title:p("wordPairs.input.infoTitle","\uC785\uB825 \uBC29\uC2DD"),items:[p("wordPairs.input.infoChar","\uAE00\uC790 \uC120\uD0DD \u2014 \uC120\uD0DD\uD55C \uC74C\uC18C\uB85C \uB2E8\uC5B4(\uAE00\uC790 \uAE30\uC900)\uB97C \uCC3E\uC740 \uD6C4, \uB2E8\uC5B4\uC758 \uD45C\uC900 \uBC1C\uC74C \uB300\uB9BD\uC30D\uC744 \uCC3E\uC2B5\uB2C8\uB2E4."),p("wordPairs.input.infoPron","\uBC1C\uC74C \uC120\uD0DD \u2014 \uC120\uD0DD\uD55C \uC74C\uC18C\uB85C \uD45C\uC900 \uBC1C\uC74C \uB300\uB9BD\uC30D\uC744 \uCC3E\uC2B5\uB2C8\uB2E4.")]})}],v={[m.searchMode]:t==="explicit"?m.explicit:t==="pick"?m.pick:m.include,[m.phonemeOrder]:r==="ordered"?m.orderMatch:m.orderAny,[m.count]:h(i),[m.inputMode]:c==="phoneme"?m.pronInput:m.charInput},C=(w,f)=>{f===m.searchMode?a(w===m.explicit?"explicit":w===m.pick?"pick":"include"):f===m.phonemeOrder?s(w===m.orderMatch?"ordered":"unordered"):f===m.count?l(w===h(2)?2:1):f===m.inputMode&&d(w===m.pronInput?"phoneme":"word")};return n.jsx(kn,{className:u,title:e??p("wordPairs.filter.searchOptionsTitle","\uB300\uB9BD \uC124\uC815"),sections:b,selected:v,onSelect:C,align:"inline"})}function L3(e){const{title:t,items:a,columns:r,gridTemplateColumns:s,mobileGridTemplateColumns:i,searchPlaceholder:l,searchFn:c,defaultSortKey:d,defaultSortAsc:u=!0,selectedId:p,selectedIds:m,onSelect:h,onClose:b,pageSizeOptions:v=[10,25,50,100],initialPageSize:C,emptyText:w,countLabel:f,topContent:y,className:x=""}=e,{t:g}=ve.useTranslation(),k=l??g("common.search","\uAC80\uC0C9"),_=w??g("common.emptyList","\uD56D\uBAA9\uC774 \uC5C6\uC2B5\uB2C8\uB2E4."),[B,N]=o.useState(""),[A,S]=o.useState(d??r[0]?.key??""),[O,H]=o.useState(u),[j,q]=o.useState(String(C??v[0]??10)),[E,M]=o.useState(1);o.useEffect(()=>{M(1)},[B,j]);const R=c!==null,G=o.useCallback(($,J)=>{if(!J)return!0;const Z=J.toLowerCase();return r.some(K=>{const ae=$[K.key];return ae==null?!1:String(ae).toLowerCase().includes(Z)})},[r]),X=c??G,U=o.useMemo(()=>{const $=R?a.filter(J=>X(J,B)):a;return A?[...$].sort((J,Z)=>{const K=J[A],ae=Z[A];return K===ae?0:Kr(K,ae,O)}):$},[a,B,A,O,R,X]),W=Math.max(1,Math.ceil(U.length/Number(j)));E>W&&M(W);const Y=Math.min(E,W),L=U.slice((Y-1)*Number(j),Y*Number(j)),D=o.useCallback($=>{A===$?H(J=>!J):(S($),H(!0)),M(1)},[A]),P=o.useMemo(()=>{if(typeof f=="function"){const $=U.length,J=f($);if(typeof J=="string"){const Z=J.lastIndexOf(String($));if(Z>=0)return{prefix:J.slice(0,Z),suffix:J.slice(Z+String($).length)}}return{label:J}}if(typeof f=="string"&&f.includes("{n}")){const[$,J]=f.split("{n}");return{prefix:$,suffix:J}}return{prefix:g("common.totalCountPrefix","\uCD1D "),suffix:g("common.totalCountSuffix","\uAC1C")}},[f,U.length,g]),I=o.useMemo(()=>r.map($=>({label:$.label,onClick:$.sortable!==!1?()=>D($.key):void 0,className:$.className,sortDir:$.sortable!==!1&&A===$.key?O?"asc":"desc":null})),[r,A,O,D]),F=o.useMemo(()=>v.map($=>({value:String($),label:g("common.pageSizeLabel",{n:$})})),[v,g]);return n.jsxs(jn,{className:`popup-list ${x}`,title:t,onClose:b,children:[y,"label"in P&&n.jsx("p",{className:"toolbar__count body-1",children:P.label}),n.jsx(so,{count:"label"in P?void 0:{value:U.length,prefix:P.prefix,suffix:P.suffix},search:R?{value:B,onChange:N,placeholder:k}:void 0,pageSize:{options:F,value:j,onChange:q},pagination:{page:Y,total:W,onChange:M}}),n.jsx(Co,{size:"medium",gridTemplateColumns:s,mobileGridTemplateColumns:i,resizable:!0,fields:I,items:L,onRowClick:h,renderRow:$=>{const J=m!=null?$.id!=null&&m.has($.id):p!=null&&$.id===p;return r.map(Z=>({content:Z.render?Z.render($):$[Z.key]??"",className:Se(Z.className,J&&"popup-list__row--selected")}))},empty:_})]})}function $3(e){const{title:t,message:a,topContent:r,details:s,children:i,confirmLabel:l,cancelLabel:c,hideCancel:d=!1,extraAction:u,confirmVariant:p="main",confirmDisabled:m=!1,onConfirm:h,closeOnConfirm:b=!0,onClose:v,inline:C,size:w="small",className:f,initialFocus:y="close"}=e,{t:x}=ve.useTranslation(),g=o.useRef(null);o.useEffect(()=>{if(C||y==="close")return;const S=g.current?.closest(".popup-panel"),O=Array.from(S?.querySelectorAll(".popup-footer--buttons button")??[]),H=y==="confirm"?O[O.length-1]:d?void 0:O[u?1:0];H&&!H.disabled&&H.focus()},[]);const k=o.useRef(!1),[_,B]=o.useState(!1),N=S=>{let O=!1;return{close:()=>{O=!0,S()},\uB2EB\uC558\uB098:()=>O}},A=async S=>{if(k.current)return;k.current=!0;const O=typeof document<"u"?document.activeElement:null;B(!0);let H=!1;try{H=await S()}catch(j){typeof console<"u"&&console.error(j)}finally{H||(k.current=!1,B(!1),requestAnimationFrame(()=>{const j=document.activeElement;(!j||j===document.body)&&O?.isConnected&&O.focus()}))}};return n.jsxs(jn,{title:t,onClose:v,closeDisabled:_,inline:C,size:w,className:Se("confirm-popup",f),buttons:[...u?[{label:u.label,variant:u.variant??"default",disabled:u.disabled||_,onClick:async({closeWithAnimation:S})=>{await A(async()=>{const O=N(S);await u.onClick(O.close);const H=u.closeOnClick??!0;return H&&S(),H||O.\uB2EB\uC558\uB098()})}}]:[],...d?[]:[{label:c??x("common.cancel","\uCDE8\uC18C"),variant:"default",disabled:_,onClick:({closeWithAnimation:S})=>S()}],{label:l??x("common.confirm","\uD655\uC778"),variant:p,disabled:m||_,onClick:async({closeWithAnimation:S})=>{await A(async()=>{const O=N(S);return await h(O.close),b&&S(),b||O.\uB2EB\uC558\uB098()})}}],children:[r!=null&&n.jsx("div",{className:"confirm-popup__top",children:r}),s&&s.length>0&&n.jsx(sr,{children:s.map((S,O)=>n.jsx(Tn,{label:S.label,children:n.jsx("span",{className:"panel-row__text body-2",children:S.value})},O))}),n.jsx("p",{ref:g,className:"body-2 confirm-popup__message",children:a}),i]})}function R3({onApply:e,onCancel:t}){const{t:a}=ve.useTranslation(),[r,s]=o.useState(""),[i,l]=o.useState(!1),[c,d]=o.useState(null),u=o.useRef(null);o.useEffect(()=>{u.current?.focus()},[]);const p=o.useCallback(async b=>{const v=r.trim();if(v){l(!0),d(null);try{await e(v),b()}catch(C){d(ti(C)),l(!1),requestAnimationFrame(()=>u.current?.focus())}}},[r,e]),m=o.useCallback((b,v)=>{b.key==="Enter"&&!b.nativeEvent.isComposing&&p(v)},[p]),h=b=>{s(b.target.value),d(null)};return n.jsx(jn,{className:"coupon-input-popup",title:a("usage.couponButton","\uCFE0\uD3F0 \uC785\uB825"),size:"small",onClose:t,closeDisabled:i,buttons:[{label:a("common.cancel","\uCDE8\uC18C"),variant:"default",disabled:i,onClick:({closeWithAnimation:b})=>b()},{label:a("coupons.applyButton","\uC801\uC6A9"),variant:"main",disabled:!r.trim()||i,onClick:({closeWithAnimation:b})=>{p(b)}}],children:({closeWithAnimation:b})=>n.jsxs(n.Fragment,{children:[n.jsx("input",{ref:u,className:"coupon-input-popup__input body-2","aria-label":a("coupons.input.label","\uCFE0\uD3F0 \uCF54\uB4DC"),placeholder:a("coupons.input.placeholder","\uCFE0\uD3F0 \uCF54\uB4DC \uC785\uB825"),value:r,onChange:h,onKeyDown:v=>m(v,b),disabled:i,autoComplete:"off",spellCheck:!1}),c&&n.jsx("p",{className:"coupon-input-popup__error caption-1",role:"alert",children:c})]})})}const bu=["var(--color-main)","var(--color-sub)"],P3=2e3;function I3(e,t){if(!t.startsWith("var("))return t;try{const a=t.slice(4,-1).trim();return getComputedStyle(e).getPropertyValue(a).trim()||null}catch{return null}}function Go({active:e=!1,count:t=40,duration:a=2e3,strength:r=1,onComplete:s,trigger:i=0}){const l=o.useMemo(()=>{const C=Math.floor(t/2),w=t-C,f=(y,x)=>Array.from({length:y}).map((g,k)=>{const _=6+Math.random()*12,B=Math.round(Math.min(18,_*Math.min(1.5,1+r*.4))),N=bu[Math.floor(Math.random()*bu.length)],A=Math.random()*300,S=(360+Math.random()*260)*r*1.2,O=(x==="left"?-95+Math.random()*40:-85-Math.random()*40)*Math.PI/180,H=Math.cos(O)*S,j=Math.sin(O)*S*1.35,q=Math.random()*720-360,E=(1200+Math.random()*3e3)*Math.min(1.6,1+r*.3),M=Math.random()>.7?"50%":"3px";return{id:`${x}-${k}`,side:x,size:B,color:N,delay:A,vx:H,vy:j,angularVel:q,life:E,borderRadius:M}});return[...f(C,"left"),...f(w,"right")]},[t,r]),c=o.useRef(null),d=o.useRef({}),u=o.useRef(null),p=o.useRef(s);o.useEffect(()=>{p.current=s},[s]);const m=o.useRef(null),h=o.useRef(null),b=()=>{if(typeof document>"u")return null;let C=document.querySelector("[data-ihab-effect-root]");return C||(C=document.createElement("div"),C.className="app-effect",C.dataset.ihabEffectRoot="",C.style.position="fixed",C.style.inset="0",C.style.pointerEvents="none",C.style.zIndex="99998",document.body.appendChild(C)),C};if(typeof document<"u"&&h.current==null&&(h.current=b()),o.useEffect(()=>{if(!e)return;if(typeof window<"u"&&window.matchMedia?.("(prefers-reduced-motion: reduce)").matches){const W=setTimeout(()=>p.current?.(),0);return()=>clearTimeout(W)}const C=1200,w=performance.now(),f=h.current&&h.current!==document.body?h.current.getBoundingClientRect():null,y=Math.max(60,(window.innerHeight||800)*.05),x=W=>Math.max(40,(W||window.innerWidth)*.02),g=f?.width||window.innerWidth||375,k=f?.height||window.innerHeight||812,_=W=>{const Y=[...W].sort((L,D)=>L-D);return Y[Math.floor(Y.length/2)]||1},B=_(l.map(W=>Math.abs(W.vy))),N=_(l.map(W=>Math.abs(W.vx))),A=Math.sqrt(2*C*(k*.72+y))/B,S=B*A/C,O=g*.5/(N*S),H=(W,Y,L)=>Math.min(L,Math.max(Y,W)),j=H(A,.8,2.4),q=H(O,.7,2.2),E=a>0?a/P3:1,M=l.map(W=>({...W,life:W.life*E,vx:W.vx*q,vy:W.vy*j,startTime:w+W.delay,ended:!1})),R=f?{x:f.left-x(f.width),y:f.top+f.height+y}:{x:-x(window.innerWidth),y:window.innerHeight+y},G=f?{x:f.left+f.width+x(f.width),y:f.top+f.height+y}:{x:window.innerWidth+x(window.innerWidth),y:window.innerHeight+y},X=W=>{let Y=!1;for(const L of M){const D=d.current[L.id];if(!D||!D)continue;if(W<L.startTime){D.style.display="none",Y=!0;continue}if(!L._inited){const oe=L.side==="left"?R.x:G.x,le=L.side==="left"?R.y:G.y;D.style.left=`${oe}px`,D.style.top=`${le}px`,D.style.transform="translate3d(0px, 0px, 0)",D.style.display="block",D.style.zIndex="100000",typeof L.color=="string"&&L.color.startsWith("var(")&&(D.style.background=I3(D,L.color)??"#FF0060"),L._inited=!0}const P=(W-L.startTime)/1e3;if(P<0)continue;const I=L.life/1e3;if(P>=I){D.style.opacity="0",D.style.display="none",L.ended=!0;continue}Y=!0;const F=L.side==="left"?R.x:G.x,$=L.side==="left"?R.y:G.y,J=F+L.vx*P,Z=$+L.vy*P+.5*C*P*P,K=(L.angularVel||0)*P,ae=J-F,ye=Z-$;D.style.transform=`translate3d(${ae}px, ${ye}px, 0) rotate(${K}deg)`,D.style.opacity=`${Math.max(0,1-P/I)}`}Y?u.current=requestAnimationFrame(X):p.current?.()};u.current=requestAnimationFrame(X);const U=setTimeout(()=>{try{if((h.current?h.current.querySelectorAll(".confetti"):document.querySelectorAll(".confetti")).length===0&&!document.querySelector(".party-container")){const W=document.createElement("div");W.className="party-container",W.style.position="fixed",W.style.inset="0",W.style.pointerEvents="none",W.style.overflow="visible",W.style.zIndex="2147483647";for(const Y of l){const L=document.createElement("span");L.className=`confetti confetti--${Y.side}`,L.setAttribute("aria-hidden","true"),L.style.display="none",L.style.position="fixed",L.style.left="0px",L.style.top="0px",L.style.width=`${Y.size}px`,L.style.height=`${Math.max(4,Y.size*.6)}px`,L.style.background=Y.color,L.style.borderRadius=Y.borderRadius,L.style.transform="translate3d(0,0,0)",L.style.opacity="0",W.appendChild(L),d.current[Y.id]=L}(document.body||h.current).appendChild(W),m.current=W}}catch{}},300);return()=>{if(u.current&&cancelAnimationFrame(u.current),clearTimeout(U),m.current){try{m.current.remove()}catch{}m.current=null}}},[e,a,i,l]),!e)return null;const v=n.jsx("div",{className:"party-container",ref:c,children:l.map(C=>n.jsx("span",{"aria-hidden":!0,ref:w=>{d.current[C.id]=w},className:`confetti confetti--${C.side}`,style:{width:`${C.size}px`,height:`${Math.max(4,C.size*.6)}px`,background:C.color,borderRadius:C.borderRadius}},`${C.id}-${i}`))});return typeof document<"u"?Ut.createPortal(v,h.current||document.body):v}const Ko=e=>typeof e=="number"&&Number.isFinite(e)&&e>0?e:void 0;function F3({trigger:e=0,active:t=!1}){const[a,r]=o.useState(null);o.useEffect(()=>{if(typeof window>"u")return;const i=l=>{const c=l.detail??{};r(d=>({n:(d?.n??0)+1,count:Ko(c.count),strength:Ko(c.strength),duration:Ko(c.duration)}))};return window.addEventListener("party:trigger",i),()=>window.removeEventListener("party:trigger",i)},[]);const s=o.useCallback(()=>r(null),[]);return n.jsxs(n.Fragment,{children:[n.jsx(Go,{active:t,trigger:e}),a&&n.jsx(Go,{active:!0,trigger:a.n,count:a.count,strength:a.strength,duration:a.duration,onComplete:s})]})}function O3({title:e,sub:t,rightAction:a,titleAction:r,badge:s,badgeVariant:i="default",documentTitle:l,onBack:c,backLabel:d,wrap:u=!1}){const{t:p}=ve.useTranslation();Vg(typeof e=="string"?e:l??null);const m=d??p("common.back","\uB4A4\uB85C");return n.jsxs("div",{className:u?"page-title page-title--wrap":"page-title",children:[n.jsxs("div",{className:"page-title__main",children:[n.jsxs("div",{className:"page-title__title-row",children:[c&&n.jsx(ce,{htmlType:"button",className:"page-title__back",size:48,type:"dot",icon:"chevron-left",iconSize:"large",useBorder:!1,iconColor:"var(--color-text-primary)",ariaLabel:m,showTooltipInfo:m,onClick:c}),n.jsx("h1",{className:"page-title__title h1",children:e}),s&&n.jsx("div",{className:"page-title__badge",children:n.jsx(ht,{label:s,size:"small",variant:i,fill:"outline"})}),r?n.jsx("div",{className:"page-title__title-action",children:r}):null]}),t&&n.jsx("p",{className:"page-title__sub body-2",children:t})]}),a?n.jsx("div",{className:"page-title__action",children:a}):null]})}function H3(e){return e??""}const yu=o.createContext({words:[],loading:!1});function z3(){return o.useContext(yu)}function V3({words:e,loading:t,error:a,statusMessage:r,localVersion:s,remoteVersion:i,progress:l,clearAndRefetch:c,checkRemoteVersion:d,children:u}){return n.jsx(yu.Provider,{value:{words:e,loading:t,error:a,statusMessage:r,localVersion:s,remoteVersion:i,progress:l,clearAndRefetch:c,checkRemoteVersion:d},children:u})}function W3({items:e,actions:t,columns:a,flat:r=!1,className:s,style:i}){const l=a??e.length;return n.jsx("section",{className:Se("summary-strip",r&&"summary-strip--flat",s),style:{"--summary-strip-cols":String(l),...i},children:n.jsxs("div",{className:"summary-strip__row",children:[n.jsx("div",{className:"summary-strip__items",children:e.map((c,d)=>n.jsxs("div",{className:"summary-strip__item",children:[n.jsx("p",{className:"summary-strip__label caption-1",children:c.label}),n.jsx("p",{className:"summary-strip__value body-3b",title:typeof c.value=="string"||typeof c.value=="number"?String(c.value):void 0,children:c.value})]},d))}),t&&n.jsx("div",{className:"summary-strip__actions",children:t})]})})}const q3=(e,t)=>`${e} / ${t}`;function U3({blocks:e,sectionTitles:t,logo:a,footer:r,pageLabel:s=q3,pageWidth:i,pageHeight:l,margin:c,className:d,style:u}){const{t:p}=ve.useTranslation(),m=o.useRef(null),h=o.useRef(null),b=o.useRef(null),v=o.useRef(null),[C,w]=o.useState(null),[f,y]=o.useState(!1);o.useEffect(()=>{const E=m.current;if(!E)return;const M=()=>y(E.scrollWidth>E.clientWidth+1);if(M(),typeof ResizeObserver>"u")return;const R=new ResizeObserver(M);return R.observe(E),()=>R.disconnect()},[C]);const x=e.map(E=>`${E.id}\0${E.section??""}\0${E.group??""}`).join(""),g=C&&C.shape===x?C.pages:null,[k,_]=o.useState(0);o.useEffect(()=>{const E=v.current;if(!E||typeof ResizeObserver>"u")return;const M=new ResizeObserver(()=>_(E.offsetHeight));return M.observe(E),()=>M.disconnect()},[]);const[B,N]=o.useState(0);o.useEffect(()=>{const E=h.current;if(!E||typeof ResizeObserver>"u")return;let M=null;const R=typeof requestAnimationFrame=="function"?U=>requestAnimationFrame(U):U=>setTimeout(U,16),G=typeof cancelAnimationFrame=="function"?cancelAnimationFrame:U=>clearTimeout(U),X=new ResizeObserver(()=>{M==null&&(M=R(()=>{M=null,N(U=>U+1)}))});return Array.from(E.children).forEach(U=>X.observe(U)),()=>{X.disconnect(),M!=null&&G(M)}},[x]),o.useLayoutEffect(()=>{const E=h.current,M=v.current;if(!E||!M)return;const R=I=>I.getBoundingClientRect().height||I.offsetHeight,G=new Map;b.current?.querySelectorAll("[data-chrome-section]").forEach(I=>{G.set(I.dataset.chromeSection??"",R(I))});const X=I=>R(M)-(G.get(I??"")??0),U=Array.from(E.children).map(I=>R(I)),W=[];e.forEach((I,F)=>{const $=W[W.length-1],J=$?e[$[0]]:void 0;J&&I.group!=null&&J.group===I.group&&J.section===I.section?$.push(F):W.push([F])});const Y=[];let L=[],D=0;const P=()=>{L.length&&Y.push(L),L=[],D=0};W.forEach(I=>{const F=I.reduce((J,Z)=>J+U[Z],0),$=X(e[I[0]].section);L.length&&e[L[0]].section!==e[I[0]].section&&P(),F>$?I.forEach(J=>{L.length&&D+U[J]>$+.01&&P(),L.push(J),D+=U[J]}):(L.length&&D+F>$+.01&&P(),I.forEach(J=>L.push(J)),D+=F)}),P(),w(I=>I&&I.shape===x&&JSON.stringify(I.pages)===JSON.stringify(Y)?I:{shape:x,pages:Y})},[x,k,i,l,c,B]);const A=no,S=A,O=r??n.jsxs(n.Fragment,{children:[n.jsx("img",{src:S,alt:"IHAB",className:"report-doc__logo"}),"\xA9 IHAB, Inc. All rights reserved."]}),H=(E,M,R)=>({header:n.jsxs("div",{className:"report-doc__header",children:[n.jsx("h2",{className:"report-doc__title h3b",children:R!=null&&t?.[R]||null}),a]}),footer:n.jsxs("div",{className:"report-doc__footer caption-1",children:[n.jsx("span",{className:"report-doc__footer-left",children:O}),n.jsx("span",{className:"report-doc__page-no",children:s(E,M)})]})}),j=Array.from(new Set(e.map(E=>E.section??""))),q={...i?{"--report-page-w":i}:null,...l?{"--report-page-h":l}:null,...c?{"--report-margin":c}:null,...u};return n.jsxs("div",{ref:m,className:Se("report-doc",d),style:q,tabIndex:f?0:void 0,role:f?"group":void 0,"aria-label":f?p("report.previewRegion","\uBCF4\uACE0\uC11C \uBBF8\uB9AC\uBCF4\uAE30"):void 0,children:[n.jsxs("div",{className:"report-doc__measure","aria-hidden":!0,children:[n.jsx("div",{ref:v,className:"report-doc__ruler"}),n.jsx("div",{ref:b,children:j.map(E=>{const M=H(1,1,E||void 0);return n.jsxs("div",{"data-chrome-section":E,children:[M.header,M.footer]},E)})}),n.jsx("div",{ref:h,className:"report-doc__measure-blocks",children:e.map(E=>n.jsx("div",{children:E.content},E.id))})]}),g&&n.jsx("div",{className:"report-doc__pages",children:g.map((E,M)=>{const{header:R,footer:G}=H(M+1,g.length,e[E[0]].section);return n.jsxs("section",{className:"report-doc__page",children:[R,E.map(X=>n.jsx("div",{children:e[X].content},e[X].id)),G]},M)})})]})}function G3({title:e,fields:t,columns:a=4,className:r,style:s}){return n.jsxs("div",{className:Se("report-info",r),style:{"--report-info-cols":String(a),...s},children:[e&&n.jsx("p",{className:"report-info__title h5b",children:e}),n.jsx("div",{className:"report-info__grid",children:t.map((i,l)=>n.jsxs("div",{className:"report-info__field body-2",children:[n.jsx("span",{className:"report-info__label body-3",children:i.label}),n.jsx("span",{className:"report-info__value",children:i.value})]},l))})]})}const Wn=new Map;let cr=null;const K3=12;function Y3(e){for(let t=e.parentElement;t&&t!==document.body;t=t.parentElement){const a=window.getComputedStyle(t);if(a.transform&&a.transform!=="none"||a.filter&&a.filter!=="none"||a.perspective&&a.perspective!=="none"||/paint|layout|strict|content/.test(a.contain||""))return t}return document}function ur(){const e=new Map;for(const t of Wn.keys()){if(!t.isConnected)continue;const a=Y3(t),r=e.get(a)??[];r.push(t),e.set(a,r)}for(const t of e.values()){t.sort((r,s)=>r.compareDocumentPosition(s)&Node.DOCUMENT_POSITION_FOLLOWING?-1:1);let a=0;for(const r of t){a>0?r.style.setProperty("--update-alert-stack-offset",`${a}px`):r.style.removeProperty("--update-alert-stack-offset");const s=r.getBoundingClientRect().height;s>0&&(a+=s+K3)}}}function Z3(e){return typeof window>"u"?()=>{}:(Wn.set(e,(Wn.get(e)??0)+1),Wn.get(e)===1&&typeof ResizeObserver<"u"&&(cr??(cr=new ResizeObserver(()=>ur())),cr.observe(e)),ur(),()=>{const t=(Wn.get(e)??1)-1;if(t>0){Wn.set(e,t),ur();return}Wn.delete(e),cr?.unobserve(e),e.style.removeProperty("--update-alert-stack-offset"),ur()})}function X3({title:e,message:t,actionLabel:a,onAction:r,icon:s,onClose:i,className:l=""}){const{t:c}=ve.useTranslation(),d=a??c("common.update","\uC5C5\uB370\uC774\uD2B8"),u=o.useRef(null),p=o.useRef(!1);return o.useLayoutEffect(()=>{const m=u.current,h=m?.parentElement?.closest(".update-alert-stack")??m,b=h?Z3(h):null;return()=>{b?.(),p.current&&m&&m.contains(document.activeElement)&&Va(m)}},[]),n.jsxs("div",{ref:u,className:Se("update-alert",l),role:"alert",children:[i&&n.jsx("button",{type:"button",className:"update-alert__close",onClick:()=>{p.current=!0,i()},"aria-label":c("common.close","\uB2EB\uAE30"),children:"\xD7"}),n.jsxs("div",{className:"update-alert__top",children:[n.jsx("div",{className:"update-alert__icon",children:s??n.jsx(ls,{size:20,strokeWidth:2})}),n.jsxs("div",{className:"update-alert__body",children:[n.jsx("div",{className:"update-alert__title h4",children:e}),n.jsx("div",{className:"update-alert__message body-3",children:t})]})]}),r&&n.jsx(ce,{htmlType:"button",size:32,variant:"main",shape:"pill",className:"update-alert__action",onClick:r,children:d})]})}function J3({title:e,description:t,topActions:a,children:r,footerLeft:s,footerRight:i,onClick:l,draggable:c,onDragStart:d,onDragEnd:u,className:p}){const m=s!=null||i!=null,h=r!=null&&r!==!1,b=o.useCallback(v=>{l&&v.target===v.currentTarget&&(v.key==="Enter"||v.key===" ")&&(v.preventDefault(),l())},[l]);return n.jsxs("div",{className:Se("training-card",l?"training-card--clickable":"",p),onClick:l,onKeyDown:l?b:void 0,role:l?"button":void 0,tabIndex:l?0:void 0,draggable:c,onDragStart:d,onDragEnd:u,children:[n.jsxs("div",{className:"training-card__header",children:[n.jsxs("div",{className:"training-card__title-row",children:[typeof e=="string"?n.jsx("h3",{className:"training-card__title h4",children:e}):e,a!=null&&n.jsx("div",{className:"training-card__top-actions",onClick:v=>v.stopPropagation(),children:a})]}),t!=null?typeof t=="string"?n.jsx("p",{className:"training-card__description body-3",children:t}):t:n.jsx("p",{className:"training-card__description body-3","aria-hidden":"true",children:" "})]}),h&&n.jsx("div",{className:"training-card__body",children:r}),m&&n.jsxs("div",{className:"training-card__footer",children:[s!=null&&n.jsx("div",{className:"training-card__footer-left",children:s}),i!=null&&n.jsx("div",{className:"training-card__meta",children:i})]})]})}function Q3({title:e,count:t,collapsed:a=!1,onToggle:r,sort:s,actions:i,empty:l=!1,emptyContent:c,dragOver:d=!1,onDragOver:u,onDragLeave:p,onDrop:m,children:h,className:b}){const{t:v}=ve.useTranslation(),C=r!=null,w=Se("training-card-group",d&&"training-card-group--dragover",a&&"training-card-group--collapsed",C&&"training-card-group--collapsible",b);return n.jsxs("div",{className:w,onDragOver:u,onDragLeave:p,onDrop:m,children:[n.jsxs("header",{className:"training-card-group__header",children:[C&&n.jsx(ce,{htmlType:"button",size:40,type:"dot",variant:"transparent-gray",useBorder:!1,icon:a?"chevron-right":"chevron-down",ariaLabel:a?v("common.expand","\uD3BC\uCE58\uAE30"):v("common.collapse","\uC811\uAE30"),className:"training-card-group__chevron","aria-expanded":!a,onClick:r}),typeof e=="string"?n.jsx("span",{className:"training-card-group__title h5b",children:e}):e,t!==void 0&&n.jsx("span",{className:"training-card-group__count body-3b",children:t}),(s||i!=null)&&n.jsxs("span",{className:"training-card-group__actions",onClick:f=>f.stopPropagation(),children:[s&&n.jsx(rn,{size:40,options:s.options,value:s.value,placeholder:s.placeholder,onChange:s.onChange}),i]})]}),!a&&(l?n.jsx("div",{className:"training-card-group__empty body-3",children:c}):n.jsx("div",{className:"training-card-group__grid",children:h}))]})}const e7="speechear:saved_word_tables";function t7(e){if(typeof e!="object"||e===null)return!1;const t=e;return typeof t.id=="string"&&typeof t.name=="string"&&Array.isArray(t.items)}function n7(){try{const e=localStorage.getItem(e7);if(!e)return[];const t=JSON.parse(e);return Array.isArray(t)?t.filter(t7):[]}catch{return[]}}function vu(e){return{label:e.word,subLabel:e.pronunciation,colloquialLabel:e.colloquialPronunciation,homonum:e.homonum,grade:e.grade,syllables:[...e.word].length,pos:e.pos,wordType:e.wordType}}function Yo(e){return e.map(t=>t.homonum!=null?`${t.word}#${t.homonum}`:t.word).join("|")}function a7(e){const t=new Set;return e.map(a=>{let r=a.id;for(let s=2;t.has(r);s++)r=`${a.id}~${s}`;return t.add(r),r===a.id?a:{...a,id:r}})}function r7({title:e,titleIcon:t,disc:a,items:r,onSaveComplete:s,onLoad:i,onRemoveItem:l,onReset:c,resetLabel:d,saveButtonLabel:u,secondarySaveButtonLabel:p,onReorder:m,showCellCount:h,onAddItem:b,className:v,renderSavePopup:C,renderWordSearch:w,hideControls:f,saveOnly:y,tableName:x,nameValue:g,onNameChange:k,descriptionValue:_,onDescriptionChange:B,namePlaceholder:N,descriptionPlaceholder:A,existingNames:S,editingName:O,onCancel:H}){const{t:j}=ve.useTranslation(),q=d??j("wordPrint.clearAllSelection","\uBAA8\uB450 \uC120\uD0DD \uD574\uC81C"),E=r===void 0,M=!!k,[R,G]=o.useState([]),X=(g??"").trim(),U=X||(N??"").trim(),W=(_??"").trim()||(A??"").trim(),Y=(S??[]).map(De=>De.trim().toLowerCase()),L=[O?.trim().toLowerCase(),...R].filter(De=>!!De),D=[...Y];for(const De of L){const Fe=D.indexOf(De);Fe!==-1&&D.splice(Fe,1)}const P=X!==""&&D.includes(X.toLowerCase()),[I,F]=o.useState(Array(4).fill(null)),[$,J]=o.useState(4),[Z,K]=o.useState(null),ae=I.slice(0,$),[ye,oe]=o.useState("landscape"),[le,z]=o.useState(["\uC774\uBBF8\uC9C0","\uB2E8\uC5B4","\uD45C\uC900 \uBC1C\uC74C"]),[re,pe]=o.useState("\uD45C\uC2DC"),[_e,be]=o.useState(!0),[Ne,fe]=o.useState(!0),xe=o.useRef(null),Ee=o.useRef([]),[Oe,$e]=o.useState(8),[ue,Ae]=o.useState("right"),[Le,Te]=o.useState(!1),[ne,ie]=o.useState(!1),{toastMessage:ge,toastType:he,showWarning:Ge,clearToast:Ue}=il("warning"),Ye=o.useCallback(()=>K(null),[K]);b&&!E&&!h&&Cn("word-table-block-add-without-cell-count",'[WordTableBlock] \uD45C\uC2DC \uBAA8\uB4DC\uC5D0\uC11C onAddItem \uC740 showCellCount \uC640 \uD568\uAED8 \uC918\uC57C "\uCD94\uAC00\uD558\uAE30" \uCE78\uC774 \uC0DD\uAE34\uB2E4.');const[Ze,Xe]=o.useState(()=>Math.max(r?.length??1,1)),ze=E?$:h?Math.max(Ze,r?.length??1,1):Math.max(r?.length??0,1),{width:Re,height:Ve}=aa[ye],ot=!E&&!h,Ct=r?.length??0,zt=Math.min(Oe,Math.max(Ct,1)),gt=ot?zt:ze,nt=ot?pc(r??[],gt):null,Je=!!nt&&nt.length>1,et=E?ae.some(De=>De!==null&&De.length>1):(r??[]).some(De=>(De.words??[]).length>1),lt=x?.trim()||`${ci(Ca())} ${et?j("wordTable.printFileNamePair","\uB300\uB9BD\uC30D\uD45C"):j("wordTable.printFileNameSingle","\uB2E8\uC5B4\uD45C")}`,We=o.useCallback(()=>Je?Ee.current.filter(De=>De!==null):xe.current?[xe.current]:[],[Je]),{print:ft,openNewWindow:qe,downloadHtml:pt}=Bo({getElements:We,paperW:Re,paperH:Ve,fileName:lt,onPopupBlocked:()=>{Ge(j("wordTable.popupBlocked","\uD31D\uC5C5\uC774 \uCC28\uB2E8\uB418\uC5C8\uC2B5\uB2C8\uB2E4. \uBE0C\uB77C\uC6B0\uC800 \uC124\uC815\uC5D0\uC11C \uD31D\uC5C5\uC744 \uD5C8\uC6A9\uD574 \uC8FC\uC138\uC694."))}}),Et=De=>{J(De),F(Fe=>Fe.length>=De?Fe:[...Fe,...Array(De-Fe.length).fill(null)]),K(null)},kt=De=>{F(Fe=>{const te=[...Fe];return te[De]=null,te}),Z===De&&K(null)},_t=De=>{if(Z===null)return;const Fe=Z;F(Ce=>{const V=[...Ce];return V[Fe]=De.length>0?De:null,V});const te=ae.findIndex((Ce,V)=>V>Fe&&Ce===null);K(te!==-1?te:null)},st=E?ae.some(De=>De?.some(Fe=>!!Fe.colloquialPronunciation)):(r??[]).some(De=>(De.words??[]).some(Fe=>!!Fe.colloquialLabel)),Ie=o.useMemo(()=>Gn()?E?I.slice(0,$).flatMap(De=>(De??[]).map(Fe=>[Fe.word,Fe.homonum])):(r??[]).flatMap(De=>(De.words??[]).map(Fe=>[Fe.label,Fe.homonum])):[],[E,I,$,r]),[rt,bt]=o.useState(!1);o.useEffect(()=>{if(Ie.length===0)return;let De=!1;return Promise.all(Ie.map(([Fe,te])=>Xs(Fe,te))).then(Fe=>{De||bt(Fe.some(Boolean))},()=>{}),()=>{De=!0}},[Ie]);const Vt=Ie.length>0&&rt,tt=o.useMemo(()=>[...E||h?[{label:j("wordTable.filter.columns","\uCE78 \uC218"),items:Oy.map(De=>({value:`${De}\uCE78`,displayLabel:j("wordTable.filter.column",{count:De})})),display:"segmented"}]:[],...ot&&(r?.length??0)>0?[Nc(j,{hasPairs:et,itemCount:Ct})]:[],...Je?[Dc(j)]:[]],[j,E,h,ot,r?.length,et,Ct,Je]),Zt={...E||h?{[j("wordTable.filter.columns","\uCE78 \uC218")]:`${ze}\uCE78`}:{},...ot&&(r?.length??0)>0?{[j(et?"wordTable.filter.itemsPerPagePair":"wordTable.filter.itemsPerPageWord")]:`${zt}\uAC1C`}:{},...Je?{[j("wordTable.filter.pageNumber","\uD398\uC774\uC9C0 \uBC88\uD638")]:Ec[ue]}:{}},An=(De,Fe)=>{Fe===j("wordTable.filter.columns","\uCE78 \uC218")?E?Et(parseInt(De)):Xe(parseInt(De)):Fe===j(et?"wordTable.filter.itemsPerPagePair":"wordTable.filter.itemsPerPageWord")?$e(Sc(parseInt(De),Ct)):Fe===j("wordTable.filter.pageNumber","\uD398\uC774\uC9C0 \uBC88\uD638")&&Ae(jc(De))},Bt=E?a7(ae.filter(De=>De!==null&&De.length>0).map(De=>({id:Yo(De),words:De.map(vu)}))):r??[],Wt=()=>{E&&F(De=>De.length>$?De.slice(0,$):De)},en=(De=!1)=>{if(ie(De),M&&s){const Fe=U.trim().toLowerCase();Fe&&G(te=>te.includes(Fe)?te:[...te,Fe]),s(U,Bt,W||void 0,De),Wt();return}if(y&&s){s("",Bt,void 0,De),Wt();return}if(s){Te(!0);return}pt()},[on,cn]=o.useState(!1),[tn,Bn]=o.useState(""),Xt=tn.trim(),yt=Xt!==""&&Y.includes(Xt.toLowerCase()),un=()=>{Bn(U?j("wordTable.save.copyName",{name:U,defaultValue:"{{name}} (\uBCF5\uC0AC)"}):""),cn(!0)},Jt=()=>{!Xt||yt||!s||(s(Xt,Bt,W||void 0,!0),Wt(),cn(!1))},Tt=Bt.length===0,dn=Tt||M&&(U===""||P),Qt=()=>{if(Tt){Ge(j("wordTable.emptyItems","\uB2E8\uC5B4\uB97C 1\uAC1C \uC774\uC0C1 \uCD94\uAC00\uD574\uC8FC\uC138\uC694."));return}if(M&&U===""){Ge(j("wordTable.save.nameRequired","\uD45C \uC774\uB984\uC744 \uC785\uB825\uD574 \uC8FC\uC138\uC694."));return}M&&P&&Ge(j("wordTable.save.duplicateName","\uC774\uBBF8 \uC0AC\uC6A9 \uC911\uC778 \uC774\uB984\uC785\uB2C8\uB2E4."))},pn=n.jsx(ra,{items:Bt,orientation:ye,contentTypes:le,cutLine:re,showOutline:_e,showDivLine:Ne,count:ze});return n.jsxs(n.Fragment,{children:[n.jsxs(na,{type:"page",icon:t,title:e,disc:a,className:Se("word-table-block",v),children:[on&&n.jsx(jn,{size:"small",title:p??j("wordTable.saveAsNewButton","\uB2E4\uB978 \uC774\uB984\uC73C\uB85C \uC800\uC7A5"),onClose:()=>cn(!1),footer:({closeWithAnimation:De})=>n.jsxs(n.Fragment,{children:[n.jsx(ce,{htmlType:"button",size:48,type:"bar",label:j("common.cancel","\uCDE8\uC18C"),onClick:De}),n.jsx(ce,{htmlType:"button",size:48,type:"bar",variant:"main",label:j("common.save","\uC800\uC7A5"),disabled:!Xt||yt,onClick:Jt})]}),children:n.jsx(zn,{label:j("wordTable.save.nameLabel","\uC774\uB984"),value:tn,onChange:Bn,placeholder:j("wordTable.save.placeholder","\uC774 \uB2E8\uC5B4\uD45C\uC5D0 \uB300\uD55C \uC81C\uBAA9\uC744 \uC785\uB825\uD558\uC138\uC694."),maxLength:40,size:48,fullWidth:!0,autoFocus:!0,onEnter:Jt,error:yt?j("wordTable.save.duplicateName","\uC774\uBBF8 \uC0AC\uC6A9 \uC911\uC778 \uC774\uB984\uC785\uB2C8\uB2E4."):void 0})}),Le&&s&&C?.({defaultName:typeof e=="string"?e:j("wordTable.defaultName","\uB2E8\uC5B4 \uD45C"),preview:pn,previewW:Re,previewH:Ve,items:Bt,existingNames:n7().map(De=>De.name),saveAsNew:ne,onSave:(De,Fe)=>{s(De,Bt,Fe,ne),Wt(),Te(!1)},onCancel:()=>Te(!1)}),(E||b)&&Z!==null&&w?.({cellIndex:Z,onConfirm:E?_t:De=>{if(b){const Fe=De[0];if(Fe){const te=new Set((r??[]).map(V=>V.id));let Ce=Yo([Fe]);for(let V=2;te.has(Ce);V++)Ce=`${Yo([Fe])}~${V}`;b({id:Ce,words:[vu(Fe)]})}}K(null)},onClose:Ye}),!f&&n.jsx(wo,{hasImage:Vt,hasColloquial:st,contentTypes:le,orientation:ye,showOutline:_e,cutLine:re,showDivLine:Ne,setters:{setContentTypes:z,setOrientation:oe,setShowOutline:be,setCutLine:pe,setShowDivLine:fe},showCutLine:(ot?gt:ze)>1,showDivLine2:et,middleSections:tt,extraSelected:Zt,onExtraSelect:An}),Je&&nt?n.jsx("div",{className:"word-table-block__pages",children:nt.map((De,Fe)=>n.jsx(ra,{orientation:ye,contentTypes:le,cutLine:re,showOutline:_e,showDivLine:Ne,count:gt,items:De,onRemoveItem:l,onReorder:m&&((te,Ce)=>m(te+Fe*gt,Ce+Fe*gt)),contentRef:te=>{Ee.current[Fe]=te},pageNumber:{current:Fe+1,total:nt.length},pageNumberPosition:ue},Fe))}):n.jsx(ra,{orientation:ye,contentTypes:le,cutLine:re,showOutline:_e,showDivLine:Ne,count:ze,items:E?void 0:r??[],editCells:E?ae:void 0,activeCell:Z,onActivateCell:E||b?K:void 0,onRemoveCell:E?kt:void 0,onRemoveItem:E?void 0:l,onReorder:E?void 0:m,showFillerAdd:!!b,contentRef:xe}),M&&!f&&n.jsxs(sr,{size:"medium",labelWidth:64,useBorder:!1,useRowBorder:!1,className:"word-table-block__meta",children:[n.jsx(Tn,{variant:"custom",label:j("wordTable.save.nameLabel","\uC774\uB984"),required:!0,align:"vertical",useFullWidth:!0,children:n.jsx(zn,{required:!0,value:g??"",onChange:k,placeholder:N?N+j("wordTable.save.autoFillHint"," (Tab \uB610\uB294 space \uC785\uB825\uC2DC \uC790\uB3D9 \uC785\uB825)"):j("wordTable.save.placeholder","\uC774 \uB2E8\uC5B4\uD45C\uC5D0 \uB300\uD55C \uC81C\uBAA9\uC744 \uC785\uB825\uD558\uC138\uC694."),ariaLabel:j("wordTable.save.nameLabel","\uC774\uB984"),maxLength:40,size:48,fullWidth:!0,error:P?j("wordTable.save.duplicateName","\uC774\uBBF8 \uC0AC\uC6A9 \uC911\uC778 \uC774\uB984\uC785\uB2C8\uB2E4."):void 0,onKeyDown:De=>{(De.key==="Tab"&&!De.shiftKey||De.key===" ")&&!(g??"").trim()&&(N??"").trim()&&(De.preventDefault(),k?.(N??""))}})}),n.jsx(Tn,{variant:"custom",label:j("wordTable.save.descriptionLabel","\uC124\uBA85"),align:"vertical",useFullWidth:!0,children:n.jsx(zn,{value:_??"",onChange:B,placeholder:A?A+j("wordTable.save.autoFillHint"," (Tab \uB610\uB294 space \uC785\uB825\uC2DC \uC790\uB3D9 \uC785\uB825)"):j("wordTable.save.descriptionPlaceholder","\uC774 \uB2E8\uC5B4\uD45C\uC5D0 \uB300\uD55C \uC124\uBA85\uC744 \uC785\uB825\uD558\uC138\uC694."),ariaLabel:j("wordTable.save.descriptionLabel","\uC124\uBA85"),maxLength:200,multiline:!0,rows:2,fullWidth:!0,onKeyDown:De=>{(De.key==="Tab"&&!De.shiftKey||De.key===" ")&&!(_??"").trim()&&(A??"").trim()&&(De.preventDefault(),B?.(A??""))}})})]})]}),!f&&n.jsxs("div",{className:"word-table-block__actions",children:[n.jsxs("div",{className:"word-table-block__actions-left",children:[!y&&c&&n.jsx(ce,{htmlType:"button",size:40,type:"bar",label:q,onClick:c}),!y&&i&&n.jsx(ce,{htmlType:"button",size:40,type:"bar",label:j("wordTable.load","\uBD88\uB7EC\uC624\uAE30"),onClick:i}),!y&&n.jsx(ce,{htmlType:"button",size:40,type:"bar",label:j("wordTable.openNewWindow","\uC0C8 \uCC3D\uC73C\uB85C \uBCF4\uAE30"),onClick:qe})]}),n.jsxs("div",{className:"word-table-block__actions-right",children:[H&&n.jsx(ce,{htmlType:"button",size:"56",type:"bar",label:j("common.cancel","\uCDE8\uC18C"),onClick:H}),!y&&n.jsx(ce,{htmlType:"button",size:"56",type:"bar",label:j("wordTable.print","\uC778\uC1C4\uD558\uAE30"),onClick:ft}),p&&n.jsx(ce,{htmlType:"button",size:"56",type:"bar",label:p,onClick:()=>M?un():en(!0),disabled:Tt,onDisabledClick:()=>{Ge(j("wordTable.emptyItems","\uB2E8\uC5B4\uB97C 1\uAC1C \uC774\uC0C1 \uCD94\uAC00\uD574\uC8FC\uC138\uC694."))}}),n.jsx(ce,{htmlType:"button",size:"56",type:"bar",variant:"main",label:u??j("wordTable.saveButton","\uC800\uC7A5\uD558\uAE30"),onClick:()=>en(!1),disabled:dn,onDisabledClick:Qt})]})]}),n.jsx(ea,{message:ge,type:he,onClose:Ue})]})}function xu({items:e,className:t}){const a=e.length,r=a<=3?1:2,s=Math.ceil(a/r)||1,i=r*s;return n.jsx("div",{className:Se("word-table-thumb",t),style:{gridTemplateColumns:`repeat(${r}, 1fr)`},children:Array.from({length:i},(l,c)=>{const d=e[c];return d?n.jsx("div",{className:"word-table-thumb__cell",children:(d.words?.length?d.words:[{label:d.id}]).map((u,p)=>n.jsxs(o.Fragment,{children:[p>0&&n.jsx("span",{className:"word-table-thumb__divider"}),n.jsx("span",{className:"word-table-thumb__word body-3",children:u.label})]},p))},c):n.jsx("div",{className:"word-table-thumb__cell word-table-thumb__cell--empty"},c)})})}function o7({items:e,name:t,description:a,createdAt:r,published:s,publishedLabel:i,shared:l,sharedLabel:c,isNew:d,publisherName:u,publishedAt:p,likeCount:m,downloadCount:h,onPublisherClick:b,selected:v,onClick:C,onMore:w,titleNode:f,className:y}){const{t:x}=ve.useTranslation(),g=f!=null,k=u!=null||p!=null||m!=null||h!=null,_=B=>{B.target===B.currentTarget&&!g&&(B.key==="Enter"||B.key===" ")&&(B.preventDefault(),C?.())};return n.jsxs("div",{className:Se("word-table-button",v?"word-table-button--selected":"",k?"":"word-table-button--no-footer",y),role:"button",tabIndex:0,"aria-label":t,onClick:g?void 0:C,onKeyDown:_,children:[d&&n.jsx("span",{className:"word-table-button__new-dot","aria-label":x("myWordTable.newBadge","\uC0C8\uB85C \uB9CC\uB4E0 \uD45C")}),n.jsx(xu,{items:e,className:"word-table-button__thumb"}),n.jsxs("div",{className:"word-table-button__info",children:[n.jsxs("div",{className:"word-table-button__info-text",children:[f??n.jsx("div",{className:"word-table-button__title h4",children:t}),a&&n.jsx("div",{className:"word-table-button__desc body-3",children:a})]}),w&&!g&&n.jsx(ce,{htmlType:"button",className:"word-table-button__more",size:32,type:"dot",variant:"transparent-gray",useBorder:!1,icon:"ellipsis",ariaLabel:x("common.moreFor",{name:t}),onClick:B=>{B.stopPropagation(),w(B)}})]}),(r||s||l)&&n.jsxs("div",{className:"word-table-button__meta-row",children:[n.jsx("span",{className:"word-table-button__meta caption-1",children:r?li(r,x):""}),n.jsxs("span",{className:"word-table-button__badges",children:[s&&n.jsx(ht,{className:"word-table-button__badge",size:"small",variant:"main",fill:"soft",iconLeft:"book-marked",label:i??x("myWordTable.publishedBadge","\uBC1C\uD589\uB428")}),l&&n.jsx(ht,{className:"word-table-button__badge",size:"small",fill:"soft",iconLeft:"link",label:c??x("myWordTable.sharedBadge","\uACF5\uC720 \uC911")})]})]}),k&&n.jsxs("div",{className:"word-table-button__footer",children:[n.jsxs("span",{className:"word-table-button__store-by",children:[u&&n.jsx("button",{className:"training-card__publisher body-4",type:"button",onClick:B=>{B.stopPropagation(),b?.()},children:u}),p&&n.jsx("span",{className:"training-card__date body-4",children:li(p,x)})]}),n.jsxs("span",{className:"word-table-button__store-stats",children:[m!=null&&n.jsx(ht,{size:"small",fill:"soft",variant:"like",iconLeft:"heart",label:String(m)}),h!=null&&n.jsx(ht,{size:"small",fill:"soft",variant:"main",iconLeft:"download",label:String(h)})]})]})]})}/**
|
|
1006
|
+
`).map((l,c,d)=>n.jsxs(o.Fragment,{children:[l,c<d.length-1&&n.jsx("br",{})]},c))})}),n.jsxs("div",{className:"site-footer__links",children:[n.jsxs("div",{className:"site-footer__column",children:[n.jsx("div",{className:"site-footer__column-title footer-title",children:i("footer.site.title","\uC0AC\uC774\uD2B8")}),n.jsxs("ul",{children:[n.jsx("li",{children:n.jsx("a",{className:"footer-link",href:"https://www.ihab.co.kr/",target:"_blank",rel:"noopener noreferrer",children:"IHAB"})}),n.jsx("li",{children:n.jsx("a",{className:"footer-link",href:"https://speechear.ihab.co.kr/",target:"_blank",rel:"noopener noreferrer",children:i("footer.site.malgwi","\uB9D0\uADC0")})}),n.jsx("li",{children:n.jsx("a",{className:"footer-link",href:"https://ihab-offcial-web.vercel.app/product/sound-localization",target:"_blank",rel:"noopener noreferrer",children:i("footer.site.soundDirection","\uC18C\uB9AC\uBC29\uD5A5\uC131\uC2DC\uC2A4\uD15C")})}),n.jsx("li",{children:n.jsx("a",{className:"footer-link",href:"https://ihab-offcial-web.vercel.app/product/vr-sound-localization",target:"_blank",rel:"noopener noreferrer",children:i("footer.site.vrSoundDirection","VR\uC18C\uB9AC\uBC29\uD5A5\uC131\uC2DC\uC2A4\uD15C")})}),n.jsx("li",{children:n.jsx("a",{className:"footer-link",href:"https://ihab-offcial-web.vercel.app/product/hearing-test-pro",target:"_blank",rel:"noopener noreferrer",children:i("footer.site.hearingTest","\uCCAD\uB825\uD14C\uC2A4\uD2B8 \uD504\uB85C")})})]})]}),n.jsxs("div",{className:"site-footer__column",children:[n.jsx("div",{className:"site-footer__column-title footer-title",children:i("footer.sns.title","SNS")}),n.jsxs("ul",{children:[n.jsx("li",{children:n.jsx("a",{className:"footer-link",href:"https://blog.naver.com/ihab_official",target:"_blank",rel:"noopener noreferrer",children:i("footer.sns.naverBlog","\uB124\uC774\uBC84 \uBE14\uB85C\uADF8")})}),n.jsx("li",{children:n.jsx("a",{className:"footer-link",href:"https://www.instagram.com/ihab.official.yt/",target:"_blank",rel:"noopener noreferrer",children:"Instagram"})}),n.jsx("li",{children:n.jsx("a",{className:"footer-link",href:"https://www.youtube.com/@%EC%95%84%EC%9D%B4%ED%95%B4%EB%B8%8C-%EA%B3%B5%EC%8B%9D%EC%B1%84%EB%84%90",target:"_blank",rel:"noopener noreferrer",children:"Youtube"})})]})]}),n.jsxs("div",{className:"site-footer__column",children:[n.jsx("div",{className:"site-footer__column-title footer-title",children:i("footer.policy.title","\uC815\uCC45")}),n.jsxs("ul",{children:[n.jsx("li",{children:n.jsx("a",{className:"footer-link",href:"#",onClick:l=>{e&&(l.preventDefault(),e())},children:i("footer.policy.terms","\uC774\uC6A9\uC57D\uAD00")})}),n.jsx("li",{children:n.jsx("a",{className:"footer-link",href:"#",onClick:l=>{t&&(l.preventDefault(),t())},children:i("footer.policy.privacy","\uAC1C\uC778\uC815\uBCF4 \uCC98\uB9AC\uBC29\uCE68")})})]})]})]})]}),n.jsx("hr",{className:"site-footer__rule"}),n.jsxs("div",{className:"site-footer__bottom",children:[n.jsx("div",{className:"site-footer__brand",children:n.jsx("img",{src:no,alt:"IHAB",className:"site-footer__logo"})}),n.jsxs("div",{className:"site-footer__meta",children:[n.jsxs("div",{children:[n.jsx("span",{className:"footer-title",children:i("footer.ceo","\uB300\uD45C")}),n.jsx("span",{className:"footer-meta caption-1",children:i("footer.ceoName","\uD55C\uC9C0\uD61C")})]}),n.jsxs("div",{children:[n.jsx("span",{className:"footer-title",children:i("footer.address","\uC8FC\uC18C")}),n.jsx("span",{className:"footer-meta caption-1",children:i("footer.addressValue","\uAC15\uC6D0\uB3C4 \uCD98\uCC9C\uC2DC \uC2DC\uCCAD\uAE38 32 \uD574\uCC2C\uBE4C\uB529 3\uCE35 302\uD638")})]}),n.jsxs("div",{children:[n.jsx("span",{className:"footer-title",children:i("footer.support","\uACE0\uAC1D\uC13C\uD130")}),n.jsxs("span",{className:"footer-meta caption-1",children:[r," \xA0 ",s]})]})]})]}),n.jsx("div",{className:"site-footer__copyright footer-copyright caption-1",children:"\xA9 IHAB, Inc. All rights reserved."})]})})}function x5({logo:e,logoAlt:t="",logoHref:a,links:r=[],actions:s,className:i,containerClassName:l,renderLink:c,menuLabel:d}){const{t:u}=ve.useTranslation(),p=d??{open:u("header.menuOpen","\uBA54\uB274 \uC5F4\uAE30"),close:u("header.menuClose","\uBA54\uB274 \uB2EB\uAE30")},[m,h]=o.useState(!1),b=o.useId(),v=o.useRef(null);o.useEffect(()=>{if(!m)return;const f=In(()=>{const g=document.getElementById(b);g&&g.contains(document.activeElement)&&v.current?.focus(),h(!1)}),y=typeof window<"u"&&window.matchMedia?window.matchMedia("(min-width: 961px)"):null,x=g=>{g.matches&&h(!1)};return y&&(y.matches&&h(!1),y.addEventListener?.("change",x)),()=>{f(),y?.removeEventListener?.("change",x)}},[m,b]);const C=l?`${l} landing-header__inner`:"landing-header__inner",w=(f,y)=>c?c(f,{onClick:y}):n.jsx("a",{href:f.href,onClick:y,"aria-current":f.current?"page":void 0,children:f.label});return n.jsxs("header",{className:i?`landing-header ${i}`:"landing-header",children:[n.jsxs("div",{className:C,children:[e!=null&&(()=>{const f=typeof e=="string"?n.jsx("img",{src:e,alt:t,className:"landing-header__logo"}):e;return a?n.jsx("a",{href:a,className:"landing-header__brand",children:f}):n.jsx("div",{className:"landing-header__brand",children:f})})(),r.length>0&&n.jsx("nav",{className:"landing-header__links",children:r.map((f,y)=>n.jsx("span",{children:w(f)},`${y}:${f.href}`))}),n.jsxs("div",{className:"landing-header__actions",children:[s,r.length>0&&n.jsx("button",{ref:v,type:"button",onClick:()=>h(f=>!f),"aria-expanded":m,"aria-controls":b,"aria-label":m?p.close:p.open,className:m?"landing-header__toggle landing-header__toggle--open":"landing-header__toggle",children:n.jsxs("span",{className:"landing-header__burger",children:[n.jsx("span",{}),n.jsx("span",{}),n.jsx("span",{})]})})]})]}),r.length>0&&n.jsx("nav",{id:b,hidden:!m,className:"landing-header__drawer",children:n.jsx("div",{className:l??void 0,children:r.map((f,y)=>n.jsx("span",{className:"landing-header__drawer-item",children:w(f,()=>h(!1))},`${y}:${f.href}`))})})]})}function _5({children:e,action:t,onClick:a,className:r}){const s=a?"bottom-sticky__inner bottom-sticky__inner--clickable":"bottom-sticky__inner";return n.jsx("div",{className:r?`bottom-sticky ${r}`:"bottom-sticky",children:n.jsxs("div",{className:s,onClick:a,...oc(a),children:[n.jsx("div",{className:"bottom-sticky__content",children:e}),t]})})}const sa=9,w5=e=>Math.round(Math.min(sa,Math.max(0,e))/sa*100),k5=e=>e/100*sa,Ea=2,Fc=.1,A5=e=>Math.min(Ea,Math.max(0,e)),B5=.1,N5=e=>Math.round(e*1e6)/1e6;function ja(e){const{noiseRatio:t}=e;if(typeof t=="number"&&Number.isFinite(t))return A5(t);const a=Math.min(sa,Math.max(0,Number(e.level)||0))/sa,r=Number(e.mainVolume);return r>0?a>0?N5(Math.min(Ea,Math.max(B5,a/r))):0:1}const Oc=e=>Math.min(1,Math.max(0,Number(e.mainVolume)||0));function Hc(e){return Oc(e)}function Do(e){return Oc(e)*ja(e)}function Eo(e,t=qs()){const a=Number.isFinite(t)&&t>0?t:1;return Math.min(1,Do(e)/a)}function Ta(e,t){const a={...e,...t??{}};return t&&"level"in t&&typeof t.noiseRatio!="number"&&(a.noiseRatio=ja({level:a.level,mainVolume:a.mainVolume})),a}const Ma={enabled:!0,type:"defaultNoise",level:4.5,noiseRatio:1,speed:1,mainVolume:1,mainSpeed:1},jo=o.createContext(null);function ar(){return o.useContext(jo)}const To=e=>`${Z0()}/${e}`,zc=e=>Array.from({length:10},(t,a)=>To(`${e}-${String(a+1).padStart(2,"0")}.mp3`)),rr={get defaultNoise(){return To("noise1.mp3")},get street(){return zc("noise2")},get restaurant(){return zc("noise3")},get buzz(){return To("noise4.mp3")}};function S5(e){const t=Math.floor(Math.random()*10);switch(e){case"defaultNoise":return rr.defaultNoise;case"street":return rr.street[t];case"restaurant":return rr.restaurant[t];case"buzz":return rr.buzz;default:return null}}function D5({noisePlayer:e,audioRef:t,playbackStateRef:a}){const r=o.useRef(e?.registerAnalyser);r.current=e?.registerAnalyser;const s=o.useRef(null),[i,l]=o.useState(null),c=o.useRef(null),d=o.useRef(null),u=o.useRef(null),p=o.useRef(null),m=o.useRef(0),h=o.useRef(null),b=o.useCallback(()=>{p.current!==null&&(cancelAnimationFrame(p.current),p.current=null),h.current!==null&&(clearTimeout(h.current),h.current=null)},[]),v=o.useCallback((x,g=250)=>{const k=s.current;if(!k)return;const _=d.current;if(_){d.current=null;try{k.pause()}catch{}k.src=_,k.load()}if(!k.src)return;m.current+=1,b();try{Dr(),Pa(k).then(S=>{if(s.current===k)try{r.current?.("noise",S)}catch{}})}catch{}const B=k.paused?0:Ia(k);k.paused&&Dn(k,0),k.play().catch(()=>{});const N=performance.now(),A=()=>{const S=Math.min(1,(performance.now()-N)/g);try{Dn(k,B+(x-B)*S)}catch{}S<1?p.current=requestAnimationFrame(A):p.current=null};p.current=requestAnimationFrame(A)},[b]),C=o.useCallback((x=250,g)=>{const k=s.current;if(!k||k.paused){g?.();return}const _=++m.current;b();const B=performance.now(),N=Ia(k),A=()=>{const S=Math.min(1,(performance.now()-B)/x);try{Dn(k,N*(1-S))}catch{}if(S<1)p.current=requestAnimationFrame(A);else{p.current=null,h.current!==null&&(clearTimeout(h.current),h.current=null);try{k.pause()}catch{}g?.()}};p.current=requestAnimationFrame(A),h.current=setTimeout(()=>{if(h.current=null,m.current===_){p.current!==null&&(cancelAnimationFrame(p.current),p.current=null);try{k.paused||(Dn(k,0),k.pause(),g?.())}catch{}}},x+150)},[b]);o.useEffect(()=>{const x=document.createElement("audio");return x.loop=!0,x.crossOrigin="anonymous",s.current=x,()=>{b();try{x.pause(),x.src=""}catch{}s.current=null,c.current=null,d.current=null}},[b]);const w=e?Eo(e.settings):0,f=!!e?.settings.enabled&&w>0;o.useEffect(()=>{if(!f)return;let x=0;const g=setInterval(()=>{const k=s.current;if(!k||k.paused){x=0;return}const _=t.current;if(_&&!_.paused&&!_.ended||a.current==="playing"){x=0;return}x+=1,x>=2&&(x=0,C())},400);return()=>clearInterval(g)},[C,f,t,a]),o.useEffect(()=>{const x=()=>{const g=s.current;if(document.hidden){if(g&&!g.paused){b();try{g.pause()}catch{}}return}if(!g||!g.paused)return;const k=t.current,_=!!k&&!k.paused&&!k.ended||a.current==="playing",B=u.current;_&&B?.enabled&&B.volume>0&&v(B.volume)};return document.addEventListener("visibilitychange",x),()=>document.removeEventListener("visibilitychange",x)},[b,v,t,a]),o.useEffect(()=>{u.current=e?{enabled:e.settings.enabled,volume:w,type:e.settings.type}:null},[e,e?.settings.enabled,w,e?.settings.type]);const y=o.useRef(null);return o.useEffect(()=>()=>{y.current?.(),y.current=null},[]),o.useEffect(()=>{const x=e?.settings,g=s.current;if(!g)return;const k=x?Eo(x):0;if(!x||!x.enabled||k===0){C();return}if(c.current!==x.type){const _=S5(x.type);_&&(c.current=x.type,l(_),d.current=_,C(150,()=>{if(d.current!==_)return;d.current=null,g.src=_,g.load();const B=t.current;if(B&&!B.paused){y.current?.();const N=()=>{g.removeEventListener("canplay",N),y.current===A&&(y.current=null);const S=t.current,O=u.current;S&&!S.paused&&!S.ended&&O?.enabled&&O.volume>0&&v(O.volume)},A=()=>g.removeEventListener("canplay",N);y.current=A,g.addEventListener("canplay",N)}}))}else{const _=t.current,B=!!_&&!_.paused&&!_.ended||a.current==="playing";if(B&&d.current)v(k);else if(B&&g.paused&&g.src)v(k);else if(!g.paused)if(!B)C();else{b();const N=Ia(g),A=performance.now(),S=()=>{const O=Math.min(1,(performance.now()-A)/150);try{Dn(g,N+(k-N)*O)}catch{}O<1?p.current=requestAnimationFrame(S):p.current=null};p.current=requestAnimationFrame(S)}}},[e?.settings,e?.settings.enabled,w,e?.settings.type,b,v,C,t,a,u]),o.useEffect(()=>{const x=s.current;if(x)try{x.playbackRate=Math.min(1.25,Math.max(.75,e?.settings.speed??1))}catch{}},[e?.settings.speed]),{noiseAudioRef:s,activeNoiseUrl:i,noiseSettingsRef:u,cancelNoiseFade:b,fadeInNoise:v,fadeOutNoise:C}}function E5({ttsText:e,playbackRate:t,mainVolume:a,fillRef:r,waveProgressRef:s,setProgress:i,setPlaybackState:l,setStateLocal:c,fadeInNoise:d,fadeOutNoise:u,noiseSettingsRef:p,onDoneRef:m,handleEndRef:h}){const b=o.useRef(null),v=o.useRef(0),C=o.useRef(null),w=o.useRef(0),f=o.useRef(!1);o.useEffect(()=>()=>{w.current++;try{if(C.current&&(cancelAnimationFrame(C.current),C.current=null),f.current&&window.speechSynthesis){try{window.speechSynthesis.cancel()}catch{}f.current=!1}}catch{}},[]);const y=(k,_=1)=>{try{const B=(k||"").trim().split(/\s+/).filter(Boolean).length||Math.max(1,(k||"").length);return Math.max(700,Math.round(B*300/Math.max(.25,_)))}catch{return 1200}},x=o.useCallback(k=>{if(typeof window>"u"||!window.speechSynthesis){try{typeof m.current=="function"&&m.current(!1)}catch{}return}const _=window.speechSynthesis,B=++w.current;try{try{_.cancel()}catch{}const N=k??e,A=Array.isArray(N)?N.filter(E=>!!E):[N||""];A.length===0&&A.push("");const S=Math.max(.3,Math.min(3,t));v.current=A.reduce((E,M)=>E+y(M,S||1),0),b.current=performance.now(),i(0),l("playing"),c("playMode");const O=p.current;O?.enabled&&(O?.volume??0)>0&&d(O.volume);const H=()=>{try{const E=b.current||performance.now(),M=performance.now()-E,R=v.current||1200,G=Math.min(1,M/R);try{r.current&&(r.current.style.left=`${G*100}%`),s.current&&s.current.style.setProperty("--progress",String(G))}catch{}G<1&&(C.current=requestAnimationFrame(H))}catch{}},j=()=>{if(B===w.current)try{C.current&&(cancelAnimationFrame(C.current),C.current=null),i(1),l("stopped");try{h.current?.()}catch{try{typeof m.current=="function"&&m.current(!0)}catch{}}}catch{}},q=E=>{const M=new SpeechSynthesisUtterance(A[E]);try{M.rate=S}catch{}try{M.volume=Math.max(0,Math.min(1,a))}catch{}M.onend=()=>{if(B===w.current){if(E<A.length-1){try{q(E+1)}catch{j()}return}j()}},M.onerror=()=>{j()},M.onstart=()=>{if(!(E>0))try{C.current&&(cancelAnimationFrame(C.current),C.current=null),C.current=requestAnimationFrame(H)}catch{}},f.current=!0,_.speak(M)};try{q(0)}catch{try{typeof m.current=="function"&&m.current(!0)}catch{}}}catch{try{typeof m.current=="function"&&m.current(!0)}catch{}}},[e,t,a,d,r,s,i,l,c,p,m,h]),g=o.useCallback(()=>{w.current++;try{if(window.speechSynthesis)try{window.speechSynthesis.cancel()}catch{}C.current&&(cancelAnimationFrame(C.current),C.current=null),u(),b.current=null}catch{}l("stopped"),c("active"),i(0)},[u,l,c,i]);return{startTTS:x,stopTTS:g}}async function j5(e,t,a){let r=null;try{const s=window.AudioContext||window.webkitAudioContext;r=new s;const i=await r.decodeAudioData(e.slice(0)),l=i.numberOfChannels>0?i.getChannelData(0):null;if(!l)return null;const c=a&&a>0?Math.min(l.length,Math.floor(a*i.sampleRate)):l.length,d=Math.max(t,c),u=Math.floor(d/t)||1;return new Array(t).fill(0).map((p,m)=>{const h=m*u,b=Math.min(h+u,d);let v=0;for(let C=h;C<b;C++){const w=Math.abs(l[C]);w>v&&(v=w)}return v})}catch{return null}finally{try{r?.close?.()}catch{}}}async function Vc(e,t,a){try{const r=await fetch(e);if(r.ok===!1)return null;const s=await r.arrayBuffer();return await j5(s,t,a)}catch(r){try{const s=ti(r)}catch{}return null}}const Wc=45,T5=74,M5=2;function La(e){const t=Math.min(2,Math.max(0,Number(e)||0));return t<=1?t*45:45+(t-1)*29}function Mo(e){return La(e)/45}const qc=4;function L5(e){const{src:t,segments:a,progress:r=0,waveProgressRef:s,noiseSrc:i,noiseRatio:l=0,noiseSpeed:c=1,totalDuration:d=0,mainVolume:u=1,onReadyChange:p,showSoundWaveForm:m=!0}=e,h=o.useRef(null),b=o.useRef(null),[v,C]=o.useState(null),[w,f]=o.useState(!1),[y,x]=o.useState(null),[g,k]=o.useState(2),[_,B]=o.useState(0),[N,A]=o.useState(null),[S,O]=o.useState(!1),[H,j]=o.useState(!1),q=3,E=3,M=1,R=300,G=o.useRef(0),X=o.useCallback(()=>{const le=h.current,z=b&&b.current?b.current:le?le.closest(".audio-player__wave"):null,re=z?z.getBoundingClientRect():le?le.getBoundingClientRect():null,pe=re?re.width:0,_e=re?Math.max(100,re.width):320,be=re?re.height:0,Ne=Math.max(M,Math.min(R,Math.floor((_e+E)/(q+E)))),fe=Ne*q,xe=Math.max(0,Ne-1),Ee=Math.max(0,xe>0?(_e-fe)/xe:E);return{bars:Ne,gap:Ee,height:be,width:pe}},[]),U=o.useRef(void 0),W=o.useRef(null),Y=o.useCallback(async(le,z,{quiet:re=!1}={})=>{const pe=++G.current,_e=()=>G.current===pe;try{if(re||f(!1),U.current=le,!le){_e()&&C(null);return}let be=z;if(!be)try{for(let xe=0;xe<4&&!(h.current||b.current);xe++)await new Promise(Ee=>requestAnimationFrame(Ee));await new Promise(xe=>requestAnimationFrame(xe));const fe=X();fe.height>0&&B(fe.height),be=fe.bars,k(fe.gap)}catch{be=120}W.current=be;const Ne=await Vc(le,be);if(!_e())return;if(!Ne){C(null),f(!1);return}C(Ne),x(be),f(!0)}catch{if(!_e())return;C(null),f(!1)}},[f,C,B,k,x,X]);o.useEffect(()=>{const le=b.current;if(!le||typeof ResizeObserver>"u")return;let z=null;const re=new ResizeObserver(()=>{z!==null&&cancelAnimationFrame(z),z=requestAnimationFrame(()=>{z=null;try{const pe=X();if(pe.width<=0||(pe.height>0&&B(pe.height),W.current===null||pe.bars===W.current))return;const _e=U.current;k(pe.gap),_e?Y(_e,pe.bars,{quiet:!0}).catch(()=>{}):W.current=pe.bars}catch{}})});return re.observe(le),()=>{re.disconnect(),z!==null&&cancelAnimationFrame(z)}},[X,Y]),o.useEffect(()=>{const le=a&&a[0]&&a[0].src||t||a&&a.length===1&&a[0]&&a[0].src;Y(typeof le=="string"?le:void 0).catch(()=>{}),j(!1)},[t,a,Y]),o.useEffect(()=>{let le=!1;if(O(!1),!i||!y){A(null);return}const z=d>0?d*(c||1):void 0;return Vc(i,y,z).then(re=>{le||(A(re),re||O(!0))}).catch(()=>{le||(A(null),O(!0))}),()=>{le=!0}},[i,y,d,c]);const L=Math.max(0,Math.min(1,u)),D=o.useMemo(()=>v&&v.length&&Math.max(...v)||1,[v]),P=y||40,I=o.useMemo(()=>Array.from({length:P}).map((le,z)=>{const re=v&&v[z]!=null?v[z]:null,pe=re==null?null:Math.min(1,re/D*L),_e=pe!=null&&_>0&&La(pe)<=qc,be=pe==null?.15:_e?0:Mo(pe),Ne=P>1?z/(P-1):0;return n.jsx("div",{className:_e?"audio-player__bar audio-player__bar--hidden":"audio-player__bar",style:{"--val":be,"--i":z,"--mix":Ne}},z)}),[P,v,D,L,_]),F={"--progress":String(Math.max(0,Math.min(1,r)))},$=i?Math.max(1,l):1,J={"--bar-gap":`${g}px`,"--wave-h":`${La($)}px`,"--wave-h1":`${Wc}px`},Z=L*Math.max(0,l)/qs(),K=w&&(i?!!N||S:!0);o.useEffect(()=>{K&&j(!0)},[K]);const ae=H?w:K;o.useEffect(()=>{p?.(ae)},[ae,p]);const ye=y||40,oe=o.useMemo(()=>Array.from({length:ye}).map((le,z)=>{const re=N&&N[z]!=null?N[z]:null,pe=re==null?0:re/D*Z,_e=_>0&&La(pe)<=qc,be=_e?0:Mo(pe),Ne=ye>1?z/(ye-1):0;return n.jsx("div",{className:_e?"audio-player__bar audio-player__bar--hidden":"audio-player__bar",style:{"--val":be,"--i":z,"--mix":Ne}},z)}),[ye,N,D,Z,_]);return n.jsxs("div",{className:"audio-player__wave",ref:b,style:J,children:[i&&n.jsx("div",{className:`audio-player__wave-noise ${K?"is-ready":""}`,"aria-hidden":"true",children:oe}),m&&n.jsxs(n.Fragment,{children:[n.jsx("div",{className:`audio-player__wave-inner audio-player__wave-unplayed ${ae?"is-ready":""}`,ref:h,children:I}),n.jsx("div",{className:`audio-player__wave-inner audio-player__wave-played ${ae?"is-ready":""}`,ref:s,style:F,children:I})]})]})}const $5={idle:"\uB300\uAE30",resolving:"\uB9AC\uC18C\uC2A4 \uB9E4\uD551 \uC911\u2026",checking_exists:"\uD30C\uC77C \uC874\uC7AC \uD655\uC778\u2026",getting_signed_url:"\uC11C\uBA85 URL \uC870\uD68C\u2026",downloading:"\uB2E4\uC6B4\uB85C\uB4DC \uC911\u2026",measuring_duration:"\uC624\uB514\uC624 \uAE38\uC774 \uCE21\uC815\u2026",ready:"\uC900\uBE44 \uC644\uB8CC",error:"\uC624\uB958 \uBC1C\uC0DD"};function Lo(e,t){return new Promise((a,r)=>{const s=document.createElement("audio");let i=!1;const l=()=>{try{s.src=""}catch{}},c=()=>{if(i)return;i=!0;const u=isFinite(s.duration)&&s.duration||0;l(),a(u)},d=u=>{i||(i=!0,l(),t.rejectOnError?r(new Error(u)):a(0))};s.addEventListener("loadedmetadata",c),s.addEventListener("error",()=>d("audio load failed")),setTimeout(()=>d("audio load timeout"),t.timeoutMs),s.src=e})}const R5=2e3;function Uc(e,t=R5){return new Promise(a=>{let r=!1;const s=()=>{r||(r=!0,a())};e.addEventListener("canplay",s,{once:!0}),e.addEventListener("error",s,{once:!0}),setTimeout(s,t)})}function P5({showSoundWaveForm:e,showNoiseWaveForm:t,timeoutMs:a=2500}){const r=o.useRef(!1),s=o.useRef([]),i=o.useCallback(d=>{if(r.current=d,!d||!s.current.length)return;const u=s.current;s.current=[];for(const p of u)p(!0)},[]),l=o.useCallback(()=>{r.current=!1},[]),c=o.useCallback(()=>!e&&!t||r.current?Promise.resolve(!0):new Promise(d=>{const u=m=>{clearTimeout(p),s.current=s.current.filter(h=>h!==u),d(m)},p=setTimeout(()=>u(!0),a);s.current.push(u)}),[e,t,a]);return o.useEffect(()=>()=>{const d=s.current;s.current=[];for(const u of d)u(!1)},[]),{onReadyChange:i,waitForReady:c,markNotReady:l}}function I5(){const e=o.useRef([]),t=o.useCallback(s=>(e.current.push(s),s),[]),a=o.useCallback(s=>{const i=new Set([...s].filter(Boolean));e.current=e.current.filter(l=>{if(i.has(l))return!0;try{URL.revokeObjectURL(l)}catch{}return!1})},[]),r=o.useCallback(()=>{a([])},[a]);return o.useEffect(()=>()=>{for(const s of e.current)try{URL.revokeObjectURL(s)}catch{}e.current=[]},[]),{track:t,keepOnly:a,revokeAll:r}}function F5({offsetY:e=8}={}){const t=o.useRef(null),[a,r]=o.useState(null),s=o.useCallback(()=>r(null),[]),i=o.useCallback(()=>{try{const l=t.current?.getBoundingClientRect();if(!l)return;r({left:l.left,right:l.right,width:l.width,height:l.height,x:l.x,top:l.top+e,bottom:l.bottom+e,y:l.y+e,toJSON:l.toJSON.bind(l)})}catch{}},[e]);return o.useEffect(()=>{if(a)return document.addEventListener("mousedown",s),()=>document.removeEventListener("mousedown",s)},[a,s]),{ref:t,rect:a,show:i,hide:s}}function O5({currentTime:e,sources:t,index:a,audioDuration:r}){const s=a||0,i=Array.isArray(t)&&t.length>0?t[s]:void 0,l=i?i.duration||r||0:r||0;if(!(l>0))return 0;const c=Number.isFinite(e)?e:0;return Math.max(0,Math.min(1,c/l))}function H5(e,t){if(!Array.isArray(e))return null;const a=t||0;return a<e.length-1?a+1:null}function z5({ended:e,completedByEnd:t}){return!!e||!!t}function V5(e){return e.map((t,a)=>({src:t.src,label:String(a+1),color:void 0,duration:t.duration||0}))}function W5(e){return e.reduce((t,a)=>t+(a.duration||0),0)}function q5(e,t,a){const r=Array.isArray(e)?e:e?[e]:[],s=[];for(const i of r)if(i){if(typeof i=="object"&&i!==null&&"src"in i&&i.src){const l=i;s.push({code:l.code??null,src:l.src});continue}if(typeof i=="string"&&(i.startsWith("http")||i.includes("/"))){s.push({code:null,src:i});continue}if(typeof i=="string"||typeof i=="number"){const l=String(i),c=a(l,t);c&&s.push({code:l,resolvedPath:c})}}return s}function U5(e){if(!e)return 0;const t=e.duration;if(Number.isFinite(t)&&t>0)return t;if(t===0)return 0;try{const a=e.seekable;if(a&&a.length>0){const r=a.end(a.length-1);if(Number.isFinite(r)&&r>0)return r}}catch{}return null}function G5({audioRef:e,fillRef:t,waveProgressRef:a,sourcesRef:r,currentIndexRef:s}){const i=o.useRef(null),l=o.useCallback(()=>{i.current!==null&&(cancelAnimationFrame(i.current),i.current=null)},[]),c=o.useCallback(()=>{if(i.current!==null)return;const u=()=>{try{const p=e.current,m=Array.isArray(r.current)?r.current[s.current||0]:void 0,h=m&&Number.isFinite(m.duration)&&(m.duration??0)>0?0:U5(p),b=t.current;if(h===null)try{b&&b.style.visibility!=="hidden"&&(b.style.visibility="hidden")}catch{}else{const v=O5({currentTime:p&&typeof p.currentTime=="number"?p.currentTime:0,sources:r.current,index:s.current,audioDuration:h});try{b&&(b.style.visibility&&(b.style.visibility=""),b.style.left=`${v*100}%`)}catch{}try{a.current?.style.setProperty("--progress",String(v))}catch{}}}catch{}i.current=requestAnimationFrame(u)};i.current=requestAnimationFrame(u)},[e,t,a,r,s]),d=o.useCallback(u=>{l();try{t.current&&(t.current.style.visibility="",t.current.style.left=`${u*100}%`)}catch{}try{a.current?.style.setProperty("--progress",String(u))}catch{}},[l,t,a]);return o.useEffect(()=>l,[l]),{start:c,stop:l,settleTo:d}}function $o({btnLabel:e,soundSrc:t,bucketPath:a,onDone:r,disabled:s=!1,ttsText:i=null,className:l,showSoundWaveForm:c=!0,showNoiseWaveForm:d=!0}){const{t:u}=ve.useTranslation(),p=e,m=ar(),h=o.useRef(m?.registerAnalyser);o.useEffect(()=>{h.current=m?.registerAnalyser});const b=o.useRef(null),v=o.useRef(null),C=o.useRef(null),w=I5(),f=o.useRef(null),y=o.useRef(!1),x=o.useRef(0),g=o.useRef(null),{ref:k,rect:_,show:B,hide:N}=F5();o.useEffect(()=>()=>{h.current?.("main",null),h.current?.("noise",null)},[]);const[A,S]=o.useState(!1),[O,H]=o.useState("idle"),[j,q]=o.useState("stopped"),E=o.useRef("stopped");o.useEffect(()=>{E.current=j},[j]);const[M,R]=o.useState(0),[G,X]=o.useState("active"),U=o.useRef(!1);o.useEffect(()=>{if(G!=="playMode"||!U.current)return;U.current=!1;const V=typeof document<"u"?document.activeElement:null;if(V&&V!==document.body)return;const se=C.current?.querySelectorAll("button")[1];try{se?.focus()}catch{}},[G]);const[W,Y]=o.useState(null),[L,D]=o.useState(null),[P,I]=o.useState(0),[F,$]=o.useState(!1),[J,Z]=o.useState(0),K=m?.playbackRate??1,ae=m?.mainVolume??1,ye=m?Do(m.settings):0,oe=m?Hc(m.settings):ae,[le,z]=o.useState("idle"),[re,pe]=o.useState(""),[_e]=o.useState("top"),be=o.useRef(null),Ne=o.useRef(0),fe=o.useRef(null),{start:xe,stop:Ee,settleTo:Oe}=G5({audioRef:b,fillRef:v,waveProgressRef:fe,sourcesRef:be,currentIndexRef:Ne}),{onReadyChange:$e,waitForReady:ue,markNotReady:Ae}=P5({showSoundWaveForm:c,showNoiseWaveForm:d}),Le=o.useRef(null),Te=o.useRef(s),ne=o.useRef(r),ie=o.useRef(null),ge=o.useRef(!1),[he,Ge]=o.useState(!1),Ue=o.useCallback(V=>{ge.current=V,Ge(V)},[]),Ye=o.useRef(null),{activeNoiseUrl:Ze,noiseSettingsRef:Xe,fadeInNoise:ze,fadeOutNoise:Re}=D5({noisePlayer:m,audioRef:b,playbackStateRef:E}),{startTTS:Ve,stopTTS:ot}=E5({ttsText:i,playbackRate:K,mainVolume:oe,fillRef:v,waveProgressRef:fe,setProgress:R,setPlaybackState:q,setStateLocal:X,fadeInNoise:ze,fadeOutNoise:Re,noiseSettingsRef:Xe,onDoneRef:ne,handleEndRef:Ye});o.useEffect(()=>{ft.current=ot});const Ct=V=>{if(typeof window>"u"||!window.speechSynthesis){try{pe(u("training.ttsUnavailable","\uC774 \uAE30\uAE30\uC5D0\uC11C\uB294 \uC74C\uC131\uC744 \uB4E4\uB824\uC904 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4."))}catch{}Ve(V);return}kt("tts"),Ve(V)},zt=Array.isArray(t)?t.filter(Boolean):t?[t]:[],gt=(!zt||zt.length===0)&&!!i,nt=Array.isArray(W)&&W.length>0?W:Array.isArray(L)&&L.length>0?L:null,Je=Math.max(Array.isArray(nt)?nt.length:0,zt.length),et=o.useRef(!0);o.useEffect(()=>(et.current=!0,()=>{et.current=!1}),[]);const lt=o.useRef(0),We=()=>{lt.current+=1,x.current+=1},ft=o.useRef(null),qe=o.useRef(null),pt=o.useRef(null),Et=o.useRef(null);Et.current||(Et.current=()=>{pt.current=null;const V=b.current;if(qe.current==="audio"&&V&&!V.paused){lt.current+=1,x.current+=1;try{V.pause()}catch{}et.current&&q("paused")}else if(qe.current==="tts")try{ft.current?.()}catch{}});const kt=V=>{qe.current=V,pt.current=Ga(Et.current)},_t=()=>{pt.current?.(),pt.current=null};o.useEffect(()=>()=>{Et.current&&Ka(Et.current)},[]);const st=o.useCallback(async(V,se=3,de=50)=>{const ke=lt.current;for(let Be=0;Be<se;Be++){if(!et.current||ke!==lt.current)return!1;try{return kt("audio"),await V.play(),!0}catch(Me){if((Me instanceof Error||typeof Me=="object"&&Me&&"name"in Me?Me.name:void 0)==="AbortError"){if(ke!==lt.current)return!1;await new Promise(at=>setTimeout(at,de));continue}try{pe(u("training.audioFetchError","\uC0AC\uC6B4\uB4DC \uC18C\uC2A4\uB97C \uAC00\uC838\uC624\uC9C0 \uBABB\uD588\uC2B5\uB2C8\uB2E4."))}catch{}return!1}}try{pe(u("training.audioFetchError","\uC0AC\uC6B4\uB4DC \uC18C\uC2A4\uB97C \uAC00\uC838\uC624\uC9C0 \uBABB\uD588\uC2B5\uB2C8\uB2E4."))}catch{}return!1},[u]),Ie=o.useCallback(()=>{const V=b.current;if(!V)return;const se=()=>{q("playing"),X("playMode"),$(!0),xe();try{Dr(),Pa(V).then(Me=>{if(et.current)try{h.current?.("main",Me)}catch{}})}catch{}const Be=Xe.current;Be?.enabled&&(Be?.volume??0)>0&&ze(Be.volume)},de=()=>{z5({ended:!!V?.ended,completedByEnd:ge.current})||(q("paused"),Ee(),Re())},ke=()=>{try{const Be=be.current,Me=H5(Be,Ne.current);if(Me!==null){Ne.current=Me,I(Me),$(!0);const at=Be?.[Me]&&Be[Me].src;if(at&&V){V.src=at,V.load(),st(V).catch(()=>{});return}}}catch{}q("stopped"),R(1);try{if(V)try{V.currentTime=0}catch{}}catch{}Ee(),$(!1),Re();try{!Te.current&&Ye.current&&Ye.current()}catch{}};return V.addEventListener("play",se),V.addEventListener("pause",de),V.addEventListener("ended",ke),()=>{try{V.removeEventListener("play",se),V.removeEventListener("pause",de),V.removeEventListener("ended",ke),Ee()}catch{}}},[ze,Re,st,Xe,xe,Ee]);o.useEffect(()=>Ie(),[Ie]),o.useEffect(()=>{Te.current=s},[s]),o.useEffect(()=>{ne.current=r},[r]),o.useEffect(()=>{if(s||G!=="active")return;const V=g.current;if(!V)return;let se=null;const de=requestAnimationFrame(()=>{try{const ke=V.getTotalLength();if(!ke)return;const Be=ke*.2;V.style.strokeDasharray=`${ke-Be} ${Be}`;const Me="triFlow_"+Math.random().toString(36).slice(2);se=document.createElement("style"),se.textContent=`@keyframes ${Me}{from{stroke-dashoffset:0}to{stroke-dashoffset:-${ke}}}`,document.head.appendChild(se),V.style.animation=`${Me} 2.4s linear infinite`}catch{}});return()=>{cancelAnimationFrame(de),se?.remove()}},[G,s]),o.useEffect(()=>{be.current=W},[W]),o.useEffect(()=>{Ne.current=P},[P]),o.useEffect(()=>{const V=C.current,se=f.current;if(!V||!se)return;let de=null;const ke=32,Be=60,Me=()=>{try{const vt=Array.from(V.querySelectorAll(":scope > .button"));let ut=0;vt.forEach(hn=>{if(hn===se)return;const dr=hn.getBoundingClientRect();ut+=dr.width});const Nt=V.getBoundingClientRect().width,qt=Math.max(0,Math.floor(Nt-ut-8)),Rt=Je;if(!Rt||qt<=0){Array.from(se.children).forEach(hn=>{try{hn.style.width=""}catch{}});return}let mn=Math.floor(qt/Rt);mn>Be&&(mn=Be),mn<ke&&(mn=Math.max(ke,Math.floor(qt/Rt))),Array.from(se.querySelectorAll(".button")).forEach(hn=>{try{hn.style.width=`${mn}px`}catch{}})}catch{}},at=requestAnimationFrame(Me);try{de=new ResizeObserver(()=>{requestAnimationFrame(Me)}),de.observe(V),de.observe(se),window.addEventListener("resize",Me)}catch{}return()=>{try{cancelAnimationFrame(at)}catch{}try{de&&(de.disconnect(),de=null)}catch{}try{window.removeEventListener("resize",Me)}catch{}}},[W,L,Je]),o.useEffect(()=>()=>{try{Le.current&&(clearTimeout(Le.current),Le.current=null),ie.current&&(clearTimeout(ie.current),ie.current=null)}catch{}},[]);const rt=(V,se)=>{Y(V),Z(se),Ae(),D(V5(V)),be.current=V},bt=async(V,se)=>{Ue(!1),y.current=!1,V.src=se,V.load(),await Uc(V),await ue()!==!1&&(S(!1),await st(V),X("playMode"),I(0),$(!0))},Vt=async(V,se=!1)=>{const de=b.current;S(!0),H("measuring_duration");try{const ke=await Lo(V,{timeoutMs:1e4,rejectOnError:!0});rt([{src:V,objectUrl:null,duration:ke}],ke),H("ready"),se&&de&&await bt(de,V)}finally{y.current=!1,S(!1)}},tt=async(V,se=!1)=>{const de=b.current;S(!0),H("measuring_duration");try{const ke=await Promise.all(V.map(Me=>Lo(Me,{timeoutMs:1e4})));if(!et.current)return;const Be=V.map((Me,at)=>({src:Me,objectUrl:null,duration:ke[at]||0}));rt(Be,W5(Be)),H("ready"),se&&de&&Be.length>0&&await bt(de,Be[0].src)}finally{y.current=!1,S(!1)}},Zt=async(V=!1,se=!0)=>{const de=b.current,ke=t?Array.isArray(t)?t:[t]:[];if(!ke||ke.length===0||!ke.some(Boolean))return!1;if(y.current)return null;y.current=!0,se&&S(!0),H("resolving");try{const Be=q5(t,a,zs),Me=[];let at=0;for(const vt of Be){let ut=vt.src??null,Nt=null;if(!ut&&vt.resolvedPath){try{H("getting_signed_url"),ut=await Vs(vt.resolvedPath)}catch{ut=null}if(!et.current)return!1;if(!ut)try{H("downloading");const Rt=await Ws(vt.resolvedPath);if(!et.current)return!1;if(Rt){const mn=Rt instanceof Blob?Rt:new Blob([Rt]);Nt=w.track(URL.createObjectURL(mn)),ut=Nt}}catch{H("error");try{pe(u("training.audioFetchError","\uC0AC\uC6B4\uB4DC \uC18C\uC2A4\uB97C \uAC00\uC838\uC624\uC9C0 \uBABB\uD588\uC2B5\uB2C8\uB2E4.")),X("active")}catch{}}}if(!ut)continue;let qt=0;try{H("measuring_duration"),qt=await Lo(ut,{timeoutMs:3e3})}catch{qt=0}if(!et.current){if(Nt)try{URL.revokeObjectURL(Nt)}catch{}for(const Rt of Me)if(Rt.objectUrl)try{URL.revokeObjectURL(Rt.objectUrl)}catch{}return!1}at+=qt||0,Me.push({...vt,src:ut,objectUrl:Nt,duration:qt})}if(rt(Me,at),Me.length>0&&V&&de){const vt=Me[0];Ue(!1);try{w.keepOnly(Me.map(ut=>ut.objectUrl))}catch{}if(H("ready"),y.current=!1,vt.src&&de)try{if(de.src=vt.src,de.load(),await Uc(de),await ue()===!1)return!1;se&&S(!1),de&&await st(de)}catch{se&&S(!1)}else se&&S(!1);X("playMode"),I(0),$(!0)}return Me.length>0}finally{y.current=!1,se&&S(!1),H(Be=>Be==="ready"?"ready":"idle")}},An=async()=>{const V=b.current;if(!(!V&&!gt)){if(gt){const se=window.speechSynthesis;if(G==="active"){const de=Br(),ke=Array.isArray(i)?i.filter(Boolean):i?[i]:[];if(de&&ke.length>0){X("load"),S(!0),H("resolving"),y.current=!0;try{const Be=await Promise.all(ke.map(Me=>Promise.resolve(de(Me))));Be.length>1?await tt(Be,!0):await Vt(Be[0],!0)}catch{y.current=!1,S(!1),X("active"),Ct(ke.length>0?ke:void 0)}return}Ct(ke.length>0?ke:void 0);return}if(G==="playMode"){const de=!!se&&(se.speaking||se.paused)&&!(V&&(V.currentSrc||V.getAttribute("src")));if(V&&!de){if(V.paused){if(ge.current){await Bt();return}await st(V),q("playing")}else We(),V.pause(),q("paused");return}try{if(se&&se.paused)try{kt("tts"),se.resume(),q("playing")}catch{}else try{se.pause(),q("paused")}catch{}}catch{}}return}if(G==="active"){if(s&&Array.isArray(be.current)&&be.current.length>0){const de=be.current[0];try{if(de.src&&V)try{V.src=de.src,V.load(),V&&await st(V)}catch{}X("playMode"),I(0),$(!0);return}catch{}}X("load");let se;try{se=await Zt(!0)}catch{se=!1}if(se===!1&&et.current){try{pe(u("training.audioFetchError","\uC0AC\uC6B4\uB4DC \uC18C\uC2A4\uB97C \uAC00\uC838\uC624\uC9C0 \uBABB\uD588\uC2B5\uB2C8\uB2E4."))}catch{}X("active")}return}if(G!=="load"&&(G==="playMode"||G==="active"))try{if(V&&V.paused){if(ge.current){await Bt();return}V&&await st(V),q("playing")}else V&&(We(),V.pause(),q("paused"))}catch(se){(se instanceof Error||typeof se=="object"&&se&&"name"in se)&&se.name}}},Bt=async()=>{const V=b.current;if(V)try{const se=be.current;if(Array.isArray(se)&&se.length>1){await Xt(0);return}Ue(!1);try{V.currentTime=0}catch{}V&&await st(V),q("playing"),X("playMode")}catch{}},Wt=()=>{if(We(),_t(),gt){ot();return}const V=b.current;try{if(V){try{V.pause()}catch{}try{V.currentTime=0}catch{}}}catch{}Re(),q("stopped"),X("active"),R(0),$(!1)},en=async(V,{sameSegment:se=!1}={})=>{const de=++x.current,ke=b.current,Be=be.current?.[V]?.src;try{if(Ue(!1),I(V),$(!0),Ne.current=V,!Be||!ke||(se||Ae(),ke.src=Be,ke.load(),!se&&await ue()===!1)||de!==x.current||(await st(ke),de!==x.current))return;q("playing"),X("playMode")}catch{}},on=async()=>{const V=be.current,se=Ne.current||0;if(!V||se<=0){await Bt();return}await en(se-1)},cn=async()=>{const V=be.current,se=Ne.current||0;if(!V||se>=V.length-1){Wt();return}await en(se+1)},tn=()=>{if(ge.current)return;const V=200,se=340;Ue(!0),We(),_t();try{R(1)}catch{}Oe(1);try{z("hold")}catch{}try{const de=b.current,ke=gt&&!!de?.src;if(!gt||ke){if(de){de.pause();try{de.currentTime=0}catch{}}}else ot();Re()}catch{}try{q("stopped")}catch{}if($(!1),!Te.current)try{ie.current&&(clearTimeout(ie.current),ie.current=null),ie.current=setTimeout(()=>{try{z("out")}catch{}ie.current=setTimeout(()=>{try{typeof ne.current=="function"&&ne.current(!0)}catch{}try{z("idle")}catch{}ie.current=null},se)},V)}catch{}};o.useEffect(()=>{Ye.current=tn});const Bn=o.useCallback(()=>pe(""),[]),Xt=async V=>{(be.current||[])[V]&&await en(V,{sameSegment:V===Ne.current})},yt=j==="playing",un=o.useMemo(()=>{if(!L||L.length<=1)return L;const V=L[P];return V?[V]:L},[L,P]),Jt=s===!0;o.useEffect(()=>{try{const V=b.current;V&&typeof V.playbackRate=="number"&&(V.playbackRate=K||1)}catch{}},[K]);const Tt=o.useRef({raf:null,timer:null});o.useEffect(()=>{const V=b.current;if(!V)return;const se=Math.max(0,Math.min(1,oe)),de=Tt.current,ke=()=>{de.raf!==null&&(cancelAnimationFrame(de.raf),de.raf=null),de.timer!==null&&(clearTimeout(de.timer),de.timer=null)};ke();const Be=Ia(V);if(V.paused||Math.abs(Be-se)<.001||typeof requestAnimationFrame!="function"){try{Dn(V,se)}catch{}return}const Me=performance.now(),at=()=>{const vt=Math.min(1,(performance.now()-Me)/150);try{Dn(V,Be+(se-Be)*vt)}catch{}de.raf=vt<1?requestAnimationFrame(at):null};return de.raf=requestAnimationFrame(at),de.timer=setTimeout(()=>{ke();try{Dn(V,se)}catch{}},200),ke},[oe]);const dn=le==="hold",Qt=le==="out",pn=G==="playMode"&&!A&&!he||dn||Qt,De=j!=="stopped"||dn||Qt,Fe=j==="paused",te=Math.max(0,Math.min(100,(M||0)*100)),Ce=Se("audio-player__fill",pn?"is-visible":"",De?"is-expanded":"",Fe?"is-paused":"",Qt?"is-out":"");return n.jsxs("div",{className:`audio-player ${Jt?"is-disabled":""}${l?` ${l}`:""}`,role:"group","aria-label":typeof p=="string"?p:void 0,children:[n.jsxs("div",{className:`audio-player__panel ${yt?"is-playing":""} ${A?"is-loading":""} ${G!=="default"?"is-revealed":""}`,children:[A?n.jsxs("div",{className:"audio-player__loading",role:"status","aria-live":"polite",children:[n.jsx("span",{className:"audio-player__loading-spinner","aria-hidden":"true"}),n.jsx("span",{className:"audio-player__loading-text",children:u(`training.audioStatus.${O}`,{defaultValue:$5[O]})})]}):null,G==="active"?n.jsx("button",{className:"audio-player__button",type:"button",disabled:Jt,onClick:()=>{U.current=Ja(),N(),An()},"aria-label":typeof p=="string"?p:u("training.listen","\uB4E3\uAE30"),onMouseEnter:B,onMouseLeave:N,onFocus:B,onBlur:N,children:n.jsx("span",{ref:k,className:"audio-player__button-triangle-wrap",children:n.jsx("svg",{className:"audio-player__button-triangle",viewBox:"0 0 24 24","aria-hidden":"true",children:n.jsx("path",{ref:g,d:"M13.2 7.7 L16.5 9.85 Q20.2 12 16.5 14.15 L10 18.3 Q7 19.7 7 16.3 L7 7.7 Q7 4.3 10 5.7 L13.2 7.7"})})})}):null,_&&n.jsx(bn,{anchorRect:_,text:typeof p=="string"&&p?p:u("training.listenLabel","\uBB38\uC7A5 \uB4E3\uAE30"),offset:8}),n.jsxs("div",{className:`audio-player__play ${G==="playMode"||yt?"is-visible":""}`,inert:!(G==="playMode"||yt)||void 0,children:[n.jsxs("div",{ref:C,className:"audio-player__buttons",children:[n.jsx(ce,{htmlType:"button",size:32,showTooltipInfo:!0,type:"dot",shape:"pill",useBorder:!1,icon:"skip-back",onClick:on,ariaLabel:u("training.prev","\uC774\uC804"),width:"60px",variant:"transparent-white","aria-hidden":"true",tabIndex:-1,disabled:G!=="playMode"}),n.jsx(ce,{htmlType:"button",size:32,showTooltipInfo:!0,type:"dot",shape:"pill",useBorder:!1,icon:yt?"pause":"play",onClick:An,ariaLabel:u("common.playPause","\uC7AC\uC0DD / \uBA48\uCDA4"),"aria-pressed":yt,width:"60px",variant:"transparent-white",disabled:G!=="playMode"}),n.jsx(ce,{htmlType:"button",size:32,showTooltipInfo:!0,type:"dot",shape:"pill",useBorder:!1,icon:"square",onClick:Wt,ariaLabel:u("training.stop","\uC815\uC9C0"),width:"60px",variant:"transparent-white","aria-hidden":"true",tabIndex:-1,disabled:G!=="playMode"}),Je>1?n.jsx("div",{ref:f,className:"audio-player__source-buttons",children:Array.from({length:Je}).map((V,se)=>n.jsx(ce,{htmlType:"button",size:32,type:"dot",shape:"pill",useBorder:!1,label:String(se+1),onClick:()=>{try{Xt(se)}catch{}},ariaLabel:u("training.sourcePlay",{n:se+1}),variant:"transparent-white",selected:F&&P===se,disabled:G!=="playMode"||!(Array.isArray(W)&&W[se]),showTooltipInfo:!0},se))}):null,!Array.isArray(W)||W.length<=1?n.jsx(ce,{htmlType:"button",size:32,showTooltipInfo:!0,type:"dot",shape:"pill",useBorder:!1,icon:"repeat",onClick:Bt,ariaLabel:u("common.replay","\uB2E4\uC2DC\uB4E3\uAE30"),width:"60px",variant:"transparent-white",disabled:G!=="playMode"}):null,n.jsx(ce,{htmlType:"button",size:32,showTooltipInfo:!0,type:"dot",shape:"pill",useBorder:!1,icon:"skip-forward",onClick:cn,ariaLabel:u("training.next","\uB2E4\uC74C"),width:"60px",variant:"transparent-white","aria-hidden":!0,tabIndex:-1,disabled:G!=="playMode"}),n.jsx(ce,{htmlType:"button",size:32,showTooltipInfo:!0,type:"dot",shape:"pill",useBorder:!1,icon:"check",onClick:tn,ariaLabel:u("common.done","\uC644\uB8CC"),width:"60px",variant:"transparent-white",disabled:G!=="playMode"})]}),n.jsxs("div",{className:"audio-player__slider",children:[n.jsx("div",{className:Ce,ref:v,style:{left:`${te}%`},"aria-hidden":"true"}),(c||d)&&n.jsx(L5,{segments:un,progress:M,totalDuration:J,waveProgressRef:fe,showSoundWaveForm:c,noiseSrc:d&&m?.settings.enabled&&ye>0?Ze:null,noiseRatio:m?ja(m.settings):0,noiseSpeed:m?.settings.speed??1,mainVolume:ae,onReadyChange:$e})]})]}),n.jsx("audio",{ref:b,crossOrigin:"anonymous",preload:"auto"})]}),!c&&n.jsxs("p",{className:"audio-player__no-waveform caption-1",children:[n.jsx(Ke,{icon:"triangle-alert",size:14}),u("training.noSoundWaveform","\uC18C\uB9AC \uBE44\uAD50 \uBB38\uC81C\uB294 \uC6E8\uC774\uBE0C\uD3FC\uC744 \uD45C\uD604\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.")]}),n.jsx(ea,{message:re,position:_e,onClose:Bn})]})}function or(e){const{t}=ve.useTranslation(),{text:a,label:r,anchorRect:s=null,onClose:i,closeOnOutsideClick:l=!0,isMobilePopup:c=!1}=e||{},[d,u]=o.useState(()=>{try{return localStorage.getItem("tooltip-theme")||"light"}catch{return"light"}});o.useEffect(()=>{try{localStorage.setItem("tooltip-theme",d)}catch{}},[d]);const{increase:p,decrease:m,canIncrease:h,canDecrease:b,fontSize:v,lineHeight:C}=Qi({storageKey:"tooltip-fontScale"}),w=o.useCallback(()=>u(k=>k==="dark"?"light":"dark"),[]),f=o.useCallback(k=>{try{k.stopPropagation()}catch{}try{typeof i=="function"&&i()}catch{}},[i]),y=Array.isArray(a)?a:typeof a>"u"||a===null?[]:[a],x={fontSize:`${v}px`,lineHeight:`${C}px`,"--tt-line-height":`${C}px`,"--tt-marker-size":"28px"},g=n.jsxs("div",{className:`tooltip-textbox__root ${d==="dark"?"is-dark":""}`,children:[n.jsxs("div",{className:"tooltip-textbox__box",children:[r&&n.jsx("div",{className:"tooltip-textbox__label body-2b",children:r}),n.jsx("div",{className:"tooltip-textbox__text body-1",style:x,children:y.map((k,_)=>n.jsxs("div",{className:"tooltip-textbox__line",children:[y.length>1?n.jsx("div",{className:"tooltip-textbox__marker",children:n.jsx("span",{className:"tooltip-textbox__line-number button-1",children:_+1})}):null,n.jsx("span",{className:"tooltip-textbox__line-text",children:k})]},_))})]}),n.jsxs("div",{className:"tooltip-textbox__buttons",children:[n.jsx(ce,{htmlType:"button",size:32,showTooltipInfo:!0,type:"dot",useBorder:!1,width:48,icon:"minus",onClick:m,ariaLabel:t("training.fontSizeDecrease","\uAE00\uC790 \uD06C\uAE30 \uAC10\uC18C"),variant:d==="dark"?"transparent-white":"transparent-gray",disabled:!b}),n.jsx(ce,{htmlType:"button",size:32,showTooltipInfo:!0,type:"dot",useBorder:!1,width:48,icon:"plus",onClick:p,ariaLabel:t("training.fontSizeIncrease","\uAE00\uC790 \uD06C\uAE30 \uC99D\uAC00"),variant:d==="dark"?"transparent-white":"transparent-gray",disabled:!h}),n.jsx(ce,{htmlType:"button",size:32,showTooltipInfo:!0,type:"dot",useBorder:!1,width:48,icon:d==="dark"?"moon":"sun-medium",onClick:w,ariaLabel:t("training.toggleBackground","\uBC30\uACBD \uC804\uD658"),variant:d==="dark"?"transparent-white":"transparent-gray"}),n.jsx(ce,{htmlType:"button",size:32,showTooltipInfo:!0,type:"dot",useBorder:!1,width:48,icon:"x",onClick:f,ariaLabel:t("common.close","\uB2EB\uAE30"),variant:d==="dark"?"transparent-white":"transparent-gray"})]})]});return s?n.jsx(an,{anchorRect:s,className:`tooltip-textbox ${d==="dark"?"is-dark":""}`,onClose:i,closeOnOutsideClick:l,isMobilePopup:c,ariaLabel:r||t("tooltip.textbox","\uBCF8\uBB38"),children:g}):n.jsx("div",{className:`tooltip-textbox ${d==="dark"?"is-dark":""}`,children:g})}function Gc({state:e="disabled"}){const{t}=ve.useTranslation();return n.jsxs("div",{className:`ts-bullet ts-bullet--${e}`,"aria-hidden":!0,children:[n.jsx("div",{className:"bullet__dot",children:n.jsx(Ke,{icon:"chevron-right",label:t("training.next","\uB2E4\uC74C"),className:"bullet__icon",imgClassName:"bullet__icon-img",maskClassName:"bullet__icon-mask",svgClassName:"bullet__icon-svg",wrapperStyle:{},size:20})}),n.jsx("div",{className:"ts-bullet__line"})]})}function Kc(e,t,a){const r=o.useRef(t),s=o.useRef(a);o.useEffect(()=>{r.current=t,s.current=a}),o.useEffect(()=>{if(!e||typeof document>"u")return;let i=null,l=10;const c=()=>{i=null;const d=r.current(),u=d?Array.from(d.querySelectorAll(gn)).find(p=>!p.closest('[aria-hidden="true"]')):void 0;if(u){try{u.focus()}catch{}if(document.activeElement===u)return}--l>0&&(i=requestAnimationFrame(c))};return i=requestAnimationFrame(c),()=>{i!==null&&cancelAnimationFrame(i);const d=document.activeElement;if(!d||d===document.body||!document.contains(d)||d.closest(".tooltip-content")){const u=s.current();if(u)try{u.focus()}catch{}}}},[e])}function Yc({title:e,children:t,className:a="",state:r="disabled",usePreviewTextBtn:s=!1,onPreviewTextBtn:i,previewText:l=null,useFaded:c,usePlayAllBtn:d=!1,onPlayAll:u,playAllActive:p=!1}){const{t:m}=ve.useTranslation(),h=Yt("(max-width: 767px)"),b=`training-step__title h4 ${c&&r==="disabled"?"training-step__title--faded":""} ${a}`.trim(),v=`training-step__title-row training-step__title-row--${r}`.trim(),C=o.useRef(null),[w,f]=o.useState(!1),[y,x]=o.useState(null),[g,k]=o.useState(null);Kc(w&&!!y,()=>{if(typeof document>"u")return null;const S=Array.from(document.querySelectorAll(".tooltip-content"));for(let O=S.length-1;O>=0;O--)if(S[O].querySelector(".tooltip-textbox__root"))return S[O];return null},()=>C.current?.querySelector("button")??null);const _=o.useRef(i);o.useEffect(()=>{_.current=i});const B=o.useMemo(()=>l==null?"":typeof l=="string"||typeof l=="number"?String(l):Array.isArray(l)&&l.every(S=>typeof S=="string"||typeof S=="number")?l.join(""):"",[l]),N=o.useCallback(()=>{f(!1),x(null),k(null)},[]);o.useEffect(()=>{if(!w)return;let S;try{typeof _.current=="function"&&(S=_.current())}catch{}if(S===!1){N();return}k(typeof S<"u"&&S!==null?S:null)},[B]);const A=o.useCallback(()=>{let S;try{typeof i=="function"&&(S=i())}catch{}if(S!==!1){if(k(typeof S<"u"&&S!==null?S:l),!C.current){f(O=>!O);return}if(w)f(!1),x(null),k(null);else{const O=C.current.getBoundingClientRect();x(O),f(!0)}}},[i,l,w]);return n.jsxs("div",{className:v,children:[n.jsx("p",{className:b,children:n.jsx("span",{className:"training-step__title-text",children:e??t})}),s||d?n.jsxs("div",{className:"title-controls",children:[n.jsxs("div",{className:"title-buttons",children:[d&&n.jsx(ce,{htmlType:"button",size:32,type:h?"dot":"bar",icon:"play-circle",label:h?void 0:m("training.playAll","\uBAA8\uB450 \uB4E3\uAE30"),ariaLabel:m("training.playAll","\uBAA8\uB450 \uB4E3\uAE30"),selected:p,onClick:u,variant:r==="disabled"?"disabled":"default",disabled:r==="disabled"||p,onDisabledClick:p&&r!=="disabled"?()=>{}:void 0}),s&&n.jsx("div",{ref:C,children:n.jsx(ce,{htmlType:"button",size:32,type:h?"dot":"bar",icon:"eye",label:h?void 0:m("training.sentencePreview","\uBB38\uC7A5 \uBBF8\uB9AC\uBCF4\uAE30"),ariaLabel:m("training.sentencePreview","\uBB38\uC7A5 \uBBF8\uB9AC\uBCF4\uAE30"),onClick:A,className:w?"is-selected":void 0,"aria-expanded":w,"aria-haspopup":"dialog",variant:r==="disabled"?"disabled":"default",disabled:!l&&typeof i!="function"})})]}),w&&n.jsx(or,{text:g??l,label:m("training.sentencePreview","\uBB38\uC7A5 \uBBF8\uB9AC\uBCF4\uAE30"),anchorRect:y,onClose:N,closeOnOutsideClick:!1,isMobilePopup:!0})]}):null]})}function Ro(e,t){return typeof t!="number"||typeof e!="number"?"disabled":e<t?"done":e===t?"active":"disabled"}function Vn({index:e,stepIndex:t,isLast:a=!1,title:r="",titleProps:s={},children:i,className:l="",onDone:c=void 0,useTitleFaded:d=void 0}){const{t:u}=ve.useTranslation(),[p,m]=o.useState(()=>Ro(e,t));o.useEffect(()=>{const k=Ro(e,t);if(k!==p){const _=setTimeout(()=>m(k),0);return()=>clearTimeout(_)}},[e,t,p]);const h=o.useCallback((...k)=>{Ro(e,t)==="done"||p==="done"||typeof c=="function"&&c(...k)},[e,t,p,c]),[b,v]=o.useState(!1),[C,w]=o.useState({text:"",label:"\uBB38\uC7A5 \uB4E3\uAE30",anchorRect:null,backdrop:!1,alignX:null,alignY:null}),f=o.useCallback(k=>{if(!k)return null;try{const _=k;if(typeof k=="object"&&(_.currentTarget||_.target)&&(_.nativeEvent||_.type)){const A=_.currentTarget??_.target;if(A&&typeof A.getBoundingClientRect=="function")return A.getBoundingClientRect()}if(k instanceof DOMRect)return k;const B=k;if(B&&typeof B.getBoundingClientRect=="function")return B.getBoundingClientRect();const N=k?.current;return N&&typeof N.getBoundingClientRect=="function"?N.getBoundingClientRect():null}catch{return null}},[]),y=o.useCallback((k,{text:_="",label:B="\uBB38\uC7A5 \uB4E3\uAE30",backdrop:N=!1,alignX:A="center",alignY:S="top"}={})=>{const O=f(k);w({text:_,label:B,anchorRect:O,backdrop:N,alignX:A,alignY:S}),v(!0)},[f]),x=o.useCallback(()=>{v(!1),w(k=>({...k,anchorRect:null}))},[]),g=o.Children.map(i,k=>{if(o.isValidElement(k)){const _=k;if(typeof _.type=="string")return _;const B=_.props??{},N=typeof B.onDone=="function"?B.onDone:h,A=typeof B.disabled=="boolean";let S=p==="disabled";return A&&(S=!!B.disabled),o.cloneElement(_,{onDone:N,disabled:S,showTooltip:y,hideTooltip:x})}return k});return n.jsxs("div",{className:`training-step training-step--${p} ${a?"training-step--last":""} ${l}`,"aria-current":p==="active",children:[n.jsx(Gc,{state:p}),n.jsxs("div",{className:"training-step__content",children:[n.jsx(Yc,{state:p,title:r,...s,useFaded:d}),g]}),b?n.jsx(an,{anchorRect:C.anchorRect,backdrop:C.backdrop,onClose:x,ariaLabel:u("tooltip.textbox","\uBCF8\uBB38"),children:n.jsx(or,{text:C.text,onClose:x})}):null]})}function Zc({context:e,state:t="disabled",theme:a="light"}){const{t:r}=ve.useTranslation(),[s,i]=o.useState("disabled"),[l,c]=o.useState(()=>{try{return localStorage.getItem("tooltip-theme")||a}catch{return a}});o.useEffect(()=>{try{localStorage.setItem("tooltip-theme",l)}catch{}},[l]);const d=()=>c(j=>j==="dark"?"light":"dark"),{increase:u,decrease:p,canIncrease:m,canDecrease:h,fontSize:b,lineHeight:v}=Qi({storageKey:"textbox_fontScale"}),[C,w]=o.useState(""),f=o.useRef(null),y=o.useRef(!1),x=o.useCallback(()=>{y.current=Ja()&&!!f.current&&f.current.contains(document.activeElement),i("active")},[]),g=o.useCallback(()=>w(""),[]),k=j=>{try{w(j)}catch{}},_=typeof navigator<"u"&&/Mobi|Android/i.test(navigator.userAgent||"");o.useEffect(()=>{if(t!=="disabled"){const j=setTimeout(()=>i(t),0);return()=>clearTimeout(j)}},[t]);const B=o.useMemo(()=>e&&typeof e=="object"?String(e.sentence??e.text??""):typeof e=="string"?e:"",[e]),[N,A]=o.useState(B);N!==B&&(A(B),i("disabled"));const S=t==="disabled"?s:t,O=S==="disabled"?"training-text-box--disabled":S==="active"?"training-text-box--active":S==="done"?"training-text-box--done":"",H=o.useMemo(()=>({fontSize:`${b}px`,lineHeight:`${v}px`}),[b,v]);return o.useEffect(()=>{if(S==="disabled"||!y.current)return;y.current=!1;const j=document.activeElement;j&&j!==document.body||f.current?.querySelector(".training-text-box__buttons button")?.focus()},[S]),n.jsxs("div",{ref:f,className:`training-text-box ${O} ${S!=="disabled"&&l==="dark"?"is-dark":""}`,children:[S==="disabled"&&n.jsx("div",{className:"training-text-box__preview",children:n.jsx(ce,{htmlType:"button",size:48,type:"bar",onClick:x,icon:"eye",ariaLabel:r("training.sentencePreview","\uBB38\uC7A5 \uBBF8\uB9AC\uBCF4\uAE30"),label:r("training.sentencePreview","\uBB38\uC7A5 \uBBF8\uB9AC\uBCF4\uAE30"),useBorder:!1})}),n.jsx("div",{className:"training-text-box__area","aria-hidden":S==="disabled",children:n.jsx("span",{className:"training-text-box__inner h3",style:H,children:B})}),S!=="disabled"&&n.jsxs("div",{className:"training-text-box__buttons","aria-hidden":S==="disabled",children:[n.jsx(ce,{htmlType:"button",size:32,type:"dot",onClick:p,onDisabledClick:()=>k(r("training.fontSizeMin","\uAE00\uC528 \uD06C\uAE30\uAC00 \uCD5C\uC18C\uC785\uB2C8\uB2E4.")),ariaLabel:r("training.fontSizeDecrease","\uAE00\uC790 \uD06C\uAE30 \uAC10\uC18C"),icon:"minus",variant:l==="dark"?"transparent-white":"transparent-gray",disabled:!h,useBorder:!1,showTooltipInfo:!0,...!_&&{width:"60px"}}),n.jsx(ce,{htmlType:"button",size:32,type:"dot",onClick:u,onDisabledClick:()=>k(r("training.fontSizeMax","\uAE00\uC528 \uD06C\uAE30\uAC00 \uCD5C\uB300\uC785\uB2C8\uB2E4.")),ariaLabel:r("training.fontSizeIncrease","\uAE00\uC790 \uD06C\uAE30 \uC99D\uAC00"),icon:"plus",variant:l==="dark"?"transparent-white":"transparent-gray",disabled:!m,useBorder:!1,showTooltipInfo:!0,...!_&&{width:"60px"}}),n.jsx(ce,{htmlType:"button",size:32,showTooltipInfo:!0,type:"dot",useBorder:!1,width:48,icon:l==="dark"?"moon":"sun-medium",onClick:d,ariaLabel:r("training.toggleBackground","\uBC30\uACBD \uC804\uD658"),variant:l==="dark"?"transparent-white":"transparent-gray"})]}),n.jsx(ea,{message:C,position:"top",onClose:g})]})}function Po({index:e,stepIndex:t,isLast:a=!1,title:r,useTitleFaded:s,onDone:i,onChange:l,answer:c,wrongAnswers:d,choices:u,multiSelect:p=!1,correctCount:m=0,useDisabledCovered:h=!1,choiceIcons:b,shuffleChoices:v=!0}){const{t:C}=ve.useTranslation(),w=r??C("training.selectConfirm","\uBB38\uC81C\uB97C \uBCF4\uACE0 \uD574\uB2F9\uD558\uB294 \uB0B4\uC6A9\uC744 \uC120\uD0DD\uD558\uC138\uC694."),f=typeof e=="number"?e:-1,y=typeof t!="number"?"disabled":f<t?"done":f===t?"active":"disabled",x=Array.isArray(u)&&u.length?u:typeof c<"u"?[c].concat(Array.isArray(d)?d:[]):void 0,g=d?d.join("||"):"",k=u?u.join("||"):"",[_,B]=o.useState(()=>Array.isArray(x)?v?fa(x):x.slice():void 0);o.useEffect(()=>{Array.isArray(x)&&x.length?B(v?fa(x):x.slice()):B(void 0)},[c,g,k,v]);const[N,A]=o.useState(null),[S,O]=o.useState(()=>new Set);o.useEffect(()=>{A(null),O(new Set)},[k,c,g]);const H=o.useRef(void 0);o.useEffect(()=>{const E=H.current;typeof E=="number"&&typeof t=="number"&&typeof e=="number"&&E>=e&&t<e&&(A(null),O(new Set)),H.current=t},[t,e]);const j=o.useCallback(E=>{if(y!=="active")return;const M=_?.[E];if(M==null)return;const R=M,G=y==="active"||y==="done";if(p){const X=new Set(S),U=X.has(R);U?X.delete(R):X.add(R),O(X),typeof l=="function"&&l({selectedValues:[...X],__ts:Date.now()}),G&&(typeof m=="number"&&m>0?X.size>=m:!U)&&typeof i=="function"&&y==="active"&&i({selectedValues:[...X],__ts:Date.now()})}else A(R),typeof l=="function"&&l({selectedIndex:E,selectedValue:R,__ts:Date.now()}),G&&typeof i=="function"&&y==="active"&&i({selectedIndex:E,selectedValue:R,__ts:Date.now()})},[_,y,p,l,i,m,S]),q=`training-step__buttons${Array.isArray(_)&&_.length>3?" training-step__buttons--wrap-3":""}`;return n.jsx(Vn,{index:e,stepIndex:t,isLast:a,title:w,useTitleFaded:s,children:n.jsx("div",{className:q,children:Array.isArray(_)&&_.length>0?_.map((E,M)=>n.jsx(ce,{htmlType:"button",size:56,type:"bar",onClick:()=>j(M),ariaLabel:String(E),label:E,useLabel:!0,icon:b?b[String(E)]:void 0,variant:"default",disabled:y==="disabled",selected:p?S.has(E):N===E,useDisabledCovered:h,minWidth:0},String(E))):null})})}function Io({index:e,stepIndex:t,isLast:a=!1,title:r,onDone:s,onChange:i,context:l,demoSelected:c}){const{t:d}=ve.useTranslation(),u=r??d("training.confirmTitle","\uBB38\uC7A5\uC744 \uD655\uC778\uD558\uACE0 \uC798 \uB4E4\uB838\uB294\uC9C0 \uC120\uD0DD\uD558\uC138\uC694."),p=typeof e=="number"?e:-1,m=typeof t!="number"?"disabled":p<t?"done":p===t?"active":"disabled",h=l&&typeof l=="object"?l.sentence||"":typeof l=="string"?l:"",b=l&&typeof l=="object"?l.choices:void 0,[v,C]=o.useState(c??null),w=`${String(h)}\0${JSON.stringify(b??null)}`,[f,y]=o.useState(w);f!==w&&(y(w),c==null&&C(null));const[x,g]=o.useState(c);Object.is(x,c)||(g(c),C(c??null));const k=o.useRef(void 0);o.useEffect(()=>{const A=k.current;typeof A=="number"&&typeof t=="number"&&typeof e=="number"&&A>=e&&t<e&&c==null&&C(null),k.current=t},[t,e,c]);const _=o.useCallback(A=>{const S=typeof A=="object"&&A!==null?Object.assign({},A,{__ts:Date.now()}):{value:A,__ts:Date.now()};typeof i=="function"&&i(S),m==="active"&&typeof s=="function"&&s(S)},[i,m,s]),B=o.useCallback(()=>{m==="active"&&(C(!1),_(!1))},[_,m]),N=o.useCallback(()=>{m==="active"&&(C(!0),_(!0))},[_,m]);return n.jsxs(Vn,{index:e,stepIndex:t,isLast:a,title:u,onDone:s,useTitleFaded:!1,children:[n.jsx(Zc,{context:l,state:m}),n.jsx("div",{className:"training-step__buttons",children:Array.isArray(b)&&b.length>0?b.slice(0,6).map((A,S)=>n.jsx(ce,{htmlType:"button",size:56,type:"bar",onClick:()=>{m==="active"&&(C(S),_&&_(S))},disabled:m==="disabled",ariaLabel:String(A),label:A,variant:m,selected:v===S},S)):n.jsxs(n.Fragment,{children:[n.jsx(ce,{htmlType:"button",size:56,type:"bar",onClick:B,disabled:m==="disabled",icon:"x",ariaLabel:d("training.notHeard","\uC548 \uB4E4\uB838\uC5B4\uC694."),label:d("training.notHeard","\uC548 \uB4E4\uB838\uC5B4\uC694."),variant:"default",selected:v===!1}),n.jsx(ce,{htmlType:"button",size:56,type:"bar",onClick:N,disabled:m==="disabled",icon:"circle",ariaLabel:d("training.heardWell","\uC798 \uB4E4\uB838\uC5B4\uC694."),label:d("training.heardWell","\uC798 \uB4E4\uB838\uC5B4\uC694."),variant:"default",selected:v===!0})]})})]})}function Fo({index:e,stepIndex:t,isLast:a=!1,title:r,onDone:s,btnLabel:i,soundSrc:l,bucketPath:c,usePreviewTextBtn:d,previewText:u=null,onPreviewTextBtn:p,disabled:m,_pageIndex:h,showSoundWaveForm:b,showNoiseWaveForm:v}){const{t:C}=ve.useTranslation(),w=r??C("training.listenTitle","\uC81C\uC2DC\uD558\uB294 \uBB38\uC7A5\uC744 \uB4E4\uC5B4\uC8FC\uC138\uC694."),f=m??(typeof t=="number"&&typeof e=="number"?e>t:!1);return n.jsx(Vn,{index:e,stepIndex:t,isLast:a,title:w,onDone:s,titleProps:{usePreviewTextBtn:d,previewText:u,onPreviewTextBtn:p},children:n.jsx($o,{soundSrc:l,ttsText:l?null:u??w,bucketPath:c,btnLabel:i||C("training.listenButton","\uBB38\uC7A5 \uB4E3\uAE30"),disabled:f,className:"training-step__listen-sticky",showSoundWaveForm:b,showNoiseWaveForm:v},`audio-p${h??0}-s${e}`)})}const K5=[];function Oo({index:e,stepIndex:t,isLast:a=!1,title:r,onDone:s,onChange:i,context:l=K5}){const{t:c}=ve.useTranslation(),d=r??c("training.orderListDefault","\uBB38\uC7A5\uC744 \uB4E4\uC740 \uC21C\uC11C\uB300\uB85C \uBC30\uCE58\uD558\uC138\uC694."),u=L=>typeof L=="string"?L:L&&(L.context||L.sentence||L.question||"")||"",[p,m]=o.useState(Array.isArray(l)?l:[]),[h,b]=o.useState(()=>(p||[]).map((L,D)=>({id:D,text:u(L)}))),v=o.useMemo(()=>typeof t!="number"||typeof e!="number"?"disabled":e<t?"done":e===t?"active":"disabled",[t,e]),C=v!=="disabled",w=o.useRef(void 0);o.useEffect(()=>{if(w.current===l)return;w.current=l;const L=Array.isArray(l)?l:[];m(L);const D=(P=>{const I=(P||[]).map((Z,K)=>({id:K,text:u(Z)}));if(I.length<=1)return I;const F=(Z,K)=>{if(Z.length!==K.length)return!1;for(let ae=0;ae<Z.length;ae++)if(Z[ae].text!==K[ae].text)return!1;return!0};let $=fa(I),J=0;for(;F($,I)&&J<20;)$=fa(I),J+=1;return $})(L);b(D);try{if(typeof i=="function"){const P=D.filter((I,F)=>I.text===u(L[F])).length;i({shuffled:D,score:P,total:(L||[]).length,initial:!0,__ts:Date.now()})}if(typeof s=="function"&&v==="active"){const P=D.filter((I,F)=>I.text===u(L[F])).length;s({shuffled:D,score:P,total:(L||[]).length,initial:!0,__ts:Date.now()})}}catch{}},[l]);const f=(L,D)=>{const P=[...h],I=L+D;if(I<0||I>=P.length)return;const F=P[I];P[I]=P[L],P[L]=F,M(P);try{if(typeof s=="function"&&v==="active"){const $=P.filter((J,Z)=>J.text===u(p[Z])).length;s({shuffled:P,score:$,total:(p||[]).length,__ts:Date.now()})}}catch{}},[y,x]=o.useState(null),g=o.useRef(null),k=o.useRef(null),_=o.useRef(null),B=o.useRef(null),N=o.useRef(null),A=o.useRef({x:0,y:0}),S=o.useRef(null),O=o.useRef({dx:0,dy:0}),H=()=>{if(S.current!==null)return;const L=()=>{if(!g.current){S.current=null;return}S.current=requestAnimationFrame(L);const D=A.current,P=O.current||{dx:0,dy:0};g.current&&(g.current.style.transform=`translate3d(${D.x-P.dx}px, ${D.y-P.dy}px, 0)`)};S.current=requestAnimationFrame(L)},j=o.useRef(new Map),q=o.useRef(new Map),E=()=>{const L=new Map;return j.current.forEach((D,P)=>{D&&D.getBoundingClientRect&&L.set(P,D.getBoundingClientRect())}),L},M=L=>{const D=E();b(L);try{if(typeof i=="function"){const P=L.filter((I,F)=>I.text===u(p[F])).length;i({shuffled:L,score:P,total:(p||[]).length,__ts:Date.now()})}}catch{}requestAnimationFrame(()=>{const P=E();L.forEach(I=>{const F=D.get(I.id),$=P.get(I.id),J=j.current.get(I.id);if(!J||!F||!$)return;const Z=F.top-$.top;Z&&(J.style.transition="none",J.style.transform=`translateY(${Z}px)`,requestAnimationFrame(()=>{J.style.transition="transform 420ms cubic-bezier(.22,.9,.39,1)",J.style.transform="";const K=()=>{J.style.transition="",J.removeEventListener("transitionend",K)};J.addEventListener("transitionend",K)}))})})},R=(L,D)=>{try{try{D.dataTransfer?.setData("text/plain",String(L))}catch{}try{D.dataTransfer&&(D.dataTransfer.effectAllowed="move")}catch{}try{const P=document.createElement("div");P.style.cssText="position:absolute;top:-9999px;left:-9999px;width:1px;height:1px;opacity:0;pointer-events:none;",document.body.appendChild(P),D.dataTransfer?.setDragImage(P,0,0),requestAnimationFrame(()=>{try{document.body.removeChild(P)}catch{}})}catch{}}catch{}x(L);try{const P=h[L],I=document.createElement("div");I.className="order-list__dragging-object order-list__dragging-object--visible",I.textContent=P&&P.text?P.text:"",document.body.appendChild(I),g.current=I;const F=j.current.get(P.id);let $=D.clientX||0,J=D.clientY||0;try{if(F&&F.getBoundingClientRect){const le=F.getBoundingClientRect();$=le.left+le.width/2,J=le.top+le.height/2}}catch{}const Z=I.getBoundingClientRect(),K=Z.width/2,ae=Z.height/2;O.current={dx:K,dy:ae},I.style.transition="none",A.current={x:$,y:J},I.style.transform=`translate3d(${$-K}px, ${J-ae}px, 0)`,requestAnimationFrame(()=>{try{I.style.transition=""}catch{}H()});const ye=le=>{const z=le;A.current={x:z.clientX,y:z.clientY},H()};_.current=ye,document.addEventListener("mousemove",ye);const oe=le=>{const z=le;A.current={x:z.clientX,y:z.clientY},H()};k.current=oe,document.addEventListener("dragover",oe);try{D.dataTransfer?.setData("text/plain",String(L));try{D.dataTransfer?.setData("application/json",JSON.stringify({idx:L}))}catch{}}catch{}}catch{}},G=(L,D)=>{D.preventDefault();try{D.dataTransfer&&(D.dataTransfer.dropEffect="move")}catch{}try{N.current!==null&&(clearTimeout(N.current),N.current=null);const P=D.currentTarget&&D.currentTarget.closest?D.currentTarget.closest(".order-list__item"):null;if(P&&B.current!==P){if(B.current)try{B.current.classList.remove("drag-over")}catch{}try{P.classList.add("drag-over")}catch{}B.current=P}}catch{}},X=(L,D)=>{D.preventDefault();const P=D.dataTransfer?.getData("text/plain")||"",I=P?parseInt(P,10):y,F=L;if(typeof I!="number"||isNaN(I)||I===F){x(null),Y(),U();return}const $=_2(h,I,F);M($),x(null),U();try{if(typeof s=="function"&&v==="active"){const J=$.filter((Z,K)=>Z.text===u(p[K])).length;s({shuffled:$,score:J,total:(p||[]).length,__ts:Date.now()})}}catch{}try{requestAnimationFrame(()=>{const J=document.querySelectorAll(".order-list .order-list__item")[F];if(!J)return;const Z=J.querySelector(".order-list__slot")||J;try{Z.classList.add("pulse"),Z.offsetHeight,Z.classList.add("to-dark");const K=()=>{Z.classList.remove("pulse","to-dark"),Z.removeEventListener("transitionend",K)};Z.addEventListener("transitionend",K)}catch{}})}catch{}Y()},U=()=>{if(g.current){try{document.body.removeChild(g.current)}catch{}g.current=null}k.current&&(document.removeEventListener("dragover",k.current),k.current=null),_.current&&(document.removeEventListener("mousemove",_.current),_.current=null),S.current!==null&&(cancelAnimationFrame(S.current),S.current=null)},W=()=>{x(null),Y(),U()};o.useEffect(()=>()=>U(),[]);const Y=()=>{try{if(N.current!==null&&(clearTimeout(N.current),N.current=null),B.current){try{B.current.classList.remove("drag-over")}catch{}B.current=null}document.querySelectorAll(".order-list .order-list__item").forEach(L=>L.classList.remove("drag-over"))}catch{}};return o.useEffect(()=>{try{const L=Math.max(1,(h||[]).length);h.forEach((D,P)=>{const I=q.current.get(D.id);if(!I)return;let F=50;L>1&&(F=Math.round(P/(L-1)*100));try{I.style.setProperty("--marker-pos",F+"%")}catch{}})}catch{}},[h]),o.useEffect(()=>()=>{U(),N.current!==null&&(clearTimeout(N.current),N.current=null)},[]),n.jsx(Vn,{index:e,stepIndex:t,isLast:a,title:d,children:n.jsx("div",{className:"order-list",children:h.map((L,D)=>{const P=Math.max(1,(h||[]).length),I=P>1?Math.round(D/(P-1)*100):50;return n.jsx("div",{className:"order-list__item",children:n.jsxs("div",{className:"order-list__slot","data-disabled":v==="disabled","aria-disabled":v==="disabled",children:[v!=="disabled"?n.jsx("div",{className:"order-list__marker caption-1",style:{"--marker-pos":I+"%"},ref:F=>{const $=q.current;F?$.set(L.id,F):$.delete(L.id)},children:n.jsx("span",{className:"order-list__slot-number button-1",children:D+1})}):null,n.jsxs("div",{ref:F=>{const $=j.current;F?$.set(L.id,F):$.delete(L.id)},className:`order-list__draggable ${y===D?"dragging":""}`,"data-disabled":v==="disabled","aria-disabled":v==="disabled",tabIndex:v==="disabled"?-1:0,draggable:C,onDragStart:C?F=>R(D,F):void 0,onDragEnter:C?F=>G(D,F):void 0,onDragOver:C?F=>G(D,F):void 0,onDragLeave:C?()=>{try{N.current!==null&&clearTimeout(N.current),N.current=setTimeout(()=>{try{const F=document.querySelectorAll(".order-list .order-list__item");F&&F[D]&&(F[D].classList.remove("drag-over"),B.current===F[D]&&(B.current=null))}catch{}},80)}catch{}}:void 0,onDrop:C?F=>X(D,F):void 0,onDragEnd:C?W:void 0,children:[n.jsx("span",{className:"order-list__item-text body-2",children:L.text}),C?n.jsxs("span",{className:"order-list__item-buttons",children:[n.jsx(ce,{htmlType:"button",size:32,type:"dot",onClick:()=>f(D,-1),ariaLabel:c("training.up"),icon:"chevron-up",variant:"transparent-gray",width:48,useFaded:"true",disabled:D===0,useBorder:!1,useDisabledInvisible:!0}),n.jsx(ce,{htmlType:"button",size:32,type:"dot",onClick:()=>f(D,1),ariaLabel:c("training.down"),icon:"chevron-down",variant:"transparent-gray",width:48,useFaded:"true",disabled:D===h.length-1,useBorder:!1,useDisabledInvisible:!0})]}):null]})]})},L.id)})})})}const Y5=8e3;function Z5(e,t){return new Promise(a=>{let r=!1;const s=()=>{r||(r=!0,a())};e.then(s,s),setTimeout(s,t)})}function Xc({index:e,stepIndex:t,isLast:a=!1,title:r,onDone:s,onChange:i,context:l=[],selectable:c=!1,hideLabel:d=!1,hideAudio:u=!1,maxCards:p}){const{t:m}=ve.useTranslation(),h=r??m("training.cardInstructions","\uB0B1\uB9D0 \uCE74\uB4DC\uB97C \uBCF4\uACE0 \uC18C\uB9AC\uB97C \uB4E3\uACE0 \uD655\uC778\uD558\uC138\uC694."),b=o.useMemo(()=>Array.isArray(l)?l:l&&l.items||[],[l]),v=p??3,C=(b||[]).slice(0,v);(b||[]).length>v&&console.warn(`TrainingStepCard: ${b.length} items passed but only ${v} shown`);const w=typeof e=="number"?e:-1,f=typeof t!="number"?"disabled":w<t?"done":w===t?"active":"disabled",[y,x]=o.useState(null),g=o.useRef([]),[k,_]=o.useState(!1),B=o.useRef(null),N=o.useRef(!0);o.useEffect(()=>(N.current=!0,()=>{N.current=!1}),[]);const A=o.useMemo(()=>b.map(q=>q?.id??q?.word??"").join("|"),[b]);o.useEffect(()=>{x(null)},[A]);const S=o.useRef(void 0);o.useEffect(()=>{const q=S.current;typeof q=="number"&&typeof t=="number"&&typeof e=="number"&&q>=e&&t<e&&x(null),S.current=t},[t,e]);const O=o.useCallback((q,E)=>{if(c)return;const M={item:q,index:E,__ts:Date.now()};try{typeof i=="function"&&i(M)}catch{}if(f==="active"&&typeof s=="function")try{s(M)}catch{}},[c,i,f,s]),H=o.useCallback(async()=>{if(k||f==="disabled")return;_(!0);let q=!1;const E=new Promise(M=>{B.current=()=>{q=!0,M()}});try{for(let M=0;M<C.length&&!(!N.current||q);M++){const R=g.current[M];R&&await Promise.race([Z5(R.play(),Y5),E])}}finally{B.current=null,_(!1)}},[k,f,C.length]),j=o.useCallback((q,E)=>{if(f!=="active")return;x(E);const M={selectedValue:q.word||q.title||"",selectedIndex:E,item:q,__ts:Date.now()};try{typeof i=="function"&&i(M)}catch{}if(f==="active"&&typeof s=="function")try{s(M)}catch{}},[i,f,s]);return n.jsx(Vn,{index:e,stepIndex:t,isLast:a,title:h,onDone:s,titleProps:{usePlayAllBtn:!u&&C.length>0,onPlayAll:H,playAllActive:k},children:n.jsx("div",{className:"training-step__cards",onClickCapture:q=>{const E=B.current;if(!E)return;const M=q.target;M&&typeof M.closest=="function"&&M.closest(".training-word-card__bottom")&&E()},children:C.length===0?n.jsx("div",{className:"training-step__empty",children:m("training.noCards","\uCE74\uB4DC\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4.")}):C.map((q,E)=>n.jsx(vo,{ref:M=>{g.current[E]=M},item:q,disabled:f==="disabled",onPlayDone:()=>O(q,E),selectable:c,selected:c&&y===E,onSelect:c?()=>j(q,E):void 0,flipDelay:E*120,hideLabel:d,hideAudio:u},q&&q.id||E))})})}const X5=160,J5={\uBCF4\uCCAD\uAE30:"hearingAid",\uC778\uACF5\uC640\uC6B0:"cochlearImplant"};function Q5(e,t){const a=J5[e];return a?t(`device.type.${a}`,{defaultValue:e}):e}const Jc=()=>{};function Tn(e){const t=o.useId();if(!("variant"in e)){const{label:f,sub:y,onClick:x,children:g,align:k="horizontal",icon:_,useFullWidth:B=!1}=e,N=A=>{x&&A.target===A.currentTarget&&(A.key==="Enter"||A.key===" ")&&(A.preventDefault(),x())};return n.jsxs("div",{className:Se("panel-row",k==="vertical"?"panel-row--vertical":"",B?"panel-row--label-fixed panel-row--fill":"",x?"panel-row--clickable":""),onClick:x,onKeyDown:x?N:void 0,role:x?"button":void 0,tabIndex:x?0:void 0,children:[_!=null&&n.jsx("div",{className:"panel-row__icon",children:_}),f!=null&&n.jsxs("div",{className:"panel-row__left",children:[n.jsx("div",{className:"panel-row__label body-3",children:f}),y&&n.jsx("div",{className:"panel-row__sub caption-1",children:y})]}),n.jsx("div",{className:"panel-row__right",children:g})]})}if(e.variant==="description")return n.jsx("div",{className:"panel-row panel-row--block",children:n.jsx("p",{className:"panel-row__description body-3",children:e.children})});if(e.variant==="empty")return n.jsx("div",{className:"panel-row panel-row--empty body-3",children:e.children});if(e.variant==="loading")return n.jsx("div",{className:"panel-row panel-row--loading",children:n.jsx(Sa,{size:28})});if(e.variant==="custom"&&!e.label)return n.jsx("div",{className:"panel-row panel-row--block",children:e.children});const{variant:a,label:r,sub:s,onClick:i,required:l,error:c,align:d="horizontal",useFullWidth:u=!1,icon:p}=e,m=a==="button"?void 0:i;let h=null;const b=a==="toggle"?`panel-toggle-${t}`:void 0,v=c?`panel-error-${t}`:void 0;if(a==="toggle"){const f=e;h=n.jsx(Fl,{checked:f.checked,onChange:f.onChange,id:b})}else if(a==="segmented"){const f=e;h=n.jsx(_n,{options:f.options,value:f.value,onChange:f.onChange,size:f.size??40,ariaLabel:r})}else if(a==="dropdown"){const f=e,y=f.dropdowns?.length?n.jsx("div",{className:`panel-row__dropdown-group${u?" panel-row__dropdown-group--full":""}`,children:f.dropdowns.map((x,g)=>n.jsx("div",{className:u?"panel-row__dropdown-item--full":void 0,children:n.jsx(rn,{options:x.options,value:x.value,onChange:x.onChange,placeholder:x.placeholder,block:u,error:!!c,ariaDescribedBy:v,ariaLabel:x.ariaLabel??([r,x.placeholder].filter(Boolean).join(" ")||void 0)})},g))}):n.jsx(rn,{options:f.options??[],value:f.value??"",onChange:f.onChange??Jc,block:u,error:!!c,ariaLabel:r,ariaDescribedBy:v});h=c?n.jsxs("div",{className:`panel-row__dropdown-error-wrap${u?" panel-row__dropdown-error-wrap--full":""}`,children:[y,n.jsx("span",{id:v,className:"caption-1 panel-row__error",role:"alert",children:c})]}):y}else if(a==="button"){const f=e;f.buttons?.length?h=n.jsx("div",{className:"panel-row__button-group",children:f.buttons.map((y,x)=>n.jsx(ce,{htmlType:"button",size:y.btnSize??40,variant:y.btnVariant??"default",disabled:y.disabled,onClick:y.onClick,children:y.label},x))}):h=n.jsx(ce,{htmlType:"button",size:f.btnSize??40,variant:f.btnVariant??"default",disabled:f.disabled,onClick:f.onClick,children:f.buttonLabel})}else if(a==="text"){const f=e;h=n.jsx("span",{className:`panel-row__text body-2${u?" panel-row__text--full":""}`,style:f.valueColor?{color:f.valueColor}:void 0,children:f.value})}else if(a==="input"){const f=e;h=n.jsxs("div",{className:`panel-row__input-wrap${u?" panel-row__input-wrap--full":""}`,children:[n.jsx(zn,{value:f.value,onChange:f.onChange??Jc,onKeyDown:f.onKeyDown,onEnter:f.onEnter,placeholder:f.placeholder,ghostText:f.ghostText,ghostHint:f.ghostHint,inputMode:f.inputMode,readOnly:f.readOnly,disabled:f.disabled,type:f.type,autoComplete:f.autoComplete,maxLength:f.maxLength,showCount:f.showCount,multiline:f.multiline,rows:f.rows,fullWidth:u,error:c,ariaLabel:r,required:l}),f.helperText&&n.jsx("div",{className:"panel-row__helper caption-1",children:f.helperText})]})}else a==="custom"&&(h=e.children);c&&a!=="input"&&a!=="dropdown"&&(h=n.jsxs("div",{className:`panel-row__dropdown-error-wrap${u?" panel-row__dropdown-error-wrap--full":""}`,children:[h,n.jsx("span",{id:v,className:"caption-1 panel-row__error",role:"alert",children:c})]}));const C=a==="input"||a==="dropdown"||(a==="text"||a==="custom")&&u,w=f=>{m&&f.target===f.currentTarget&&(f.key==="Enter"||f.key===" ")&&(f.preventDefault(),m())};return n.jsxs("div",{className:Se("panel-row",d==="vertical"?"panel-row--vertical":"",C?"panel-row--label-fixed":"",a==="text"?"panel-row--text":"",m?"panel-row--clickable":""),onClick:m,onKeyDown:m?w:void 0,role:m?"button":void 0,tabIndex:m?0:void 0,children:[p!=null&&n.jsx("div",{className:"panel-row__icon",children:p}),n.jsxs("div",{className:"panel-row__left",children:[b?n.jsxs("label",{htmlFor:b,className:"panel-row__label body-3",children:[r,l&&n.jsx("span",{className:"required-mark",children:"*"})]}):n.jsxs("div",{className:"panel-row__label body-3",children:[r,l&&n.jsx("span",{className:"required-mark",children:"*"})]}),s&&n.jsx("div",{className:"panel-row__sub caption-1",children:s})]}),n.jsx("div",{className:"panel-row__right",children:h})]})}function Qc(e){const t=e.productName||e.brand,a=[e.brand,e.fitType].filter(r=>!!r&&r!==t);return[...new Set(a)].join(" \xB7 ")}function e3({devices:e,onRelease:t,emptyLabel:a}){const{t:r}=ve.useTranslation();return n.jsx("div",{className:"panel-row panel-row--device",children:["\uC88C","\uC6B0"].map(s=>{const i=e[s],l=s==="\uC88C"?r("device.direction.left","\uC88C"):r("device.direction.right","\uC6B0");return n.jsxs("div",{className:"panel-row__device-column",children:[n.jsxs("div",{className:"panel-row__device-head",children:[n.jsx("span",{className:"panel-row__device-side body-2b",children:l}),i&&t&&n.jsx(ce,{htmlType:"button",size:32,type:"dot",icon:"x",ariaLabel:`${l} ${r("customers.device.unwear","\uCC29\uC6A9 \uD574\uC81C")}`,showTooltipInfo:r("customers.device.unwear","\uCC29\uC6A9 \uD574\uC81C"),onClick:()=>t(s)})]}),i?n.jsxs("div",{className:"panel-row__device-info",children:[n.jsxs("span",{className:"panel-row__device-kind",children:[i.device&&n.jsx(ht,{size:"small",variant:ac(i.device),fill:"soft",label:Q5(i.device,r)}),Qc(i)&&n.jsx("span",{className:"panel-row__device-detail body-3",children:Qc(i)})]}),n.jsx("span",{className:"panel-row__device-name body-2b",children:i.productName||i.brand}),go(i.wornYear,i.wornMonth,i.wornDay)&&n.jsx("span",{className:"panel-row__device-date caption-1",children:r("customers.device.wornSince",{date:go(i.wornYear,i.wornMonth,i.wornDay)})})]}):n.jsx("span",{className:"panel-row__device-empty body-3",children:a??r("customers.device.notRegistered","\uBBF8\uB4F1\uB85D")})]},s)})})}function sr({title:e,icon:t,disc:a,actions:r,size:s="medium",minHeight:i,maxWidth:l,className:c,scrollable:d,scrollbarGutter:u="auto",compactRows:p=!1,useBorder:m=!0,useBg:h=!0,useRowBorder:b=!0,labelWidth:v,form:C=!1,loading:w,empty:f,children:y}){const x=Se("panel",`panel--${s}`,C?"panel--form":"",i!==void 0?"panel--fill":"",m?"":"panel--no-border",h?"":"panel--no-bg",b?"":"panel--no-row-border",p?"panel--compact-rows":"",c),g={};return i!==void 0&&(g.minHeight=i),l!==void 0&&(g.maxWidth=typeof l=="number"?`${l}px`:l),v!==void 0&&(g["--panel-label-width"]=typeof v=="number"?`${v}px`:v),n.jsxs("div",{className:x,style:Object.keys(g).length?g:void 0,children:[(e!=null||a!=null)&&n.jsxs("div",{className:Se("panel__header",a!=null?"panel__header--with-disc":""),children:[t&&n.jsx(Ke,{icon:t,label:typeof e=="string"?e:void 0,className:"panel__icon"}),n.jsxs("div",{className:"panel__title-group",children:[e!=null&&n.jsx("h2",{className:`panel__title ${a!=null?"body-3b":"h5b"}`,children:e}),a!=null&&n.jsx("p",{className:"panel__disc caption-1",children:a})]}),r&&n.jsx("div",{className:"panel__actions",children:r})]}),w?n.jsx(Tn,{variant:"loading"}):f!=null&&o.Children.toArray(y).length===0?n.jsx(Tn,{variant:"empty",children:f}):d?n.jsx("div",{className:Se("panel__body--scroll",u==="stable"&&"panel__body--gutter-stable"),children:y}):y]})}function t3({cols:e=2,children:t}){return n.jsx("div",{className:"panel-grid",style:{"--panel-grid-cols":e},children:t})}function n3(e){return[{label:e("training.noise.level.none","\uC5C6\uC74C"),value:0},{label:e("training.noise.level.weak","\uC57D\uD568"),value:1},{label:e("training.noise.level.medium","\uBCF4\uD1B5"),value:2},{label:e("training.noise.level.strong","\uAC15\uD568"),value:3},{label:e("training.noise.level.veryStrong","\uB9E4\uC6B0 \uAC15\uD568"),value:4}]}function eu(e){return[{label:e("training.noise.type.default","\uAE30\uBCF8"),value:"defaultNoise",icon:"party-popper"},{label:e("training.noise.type.street","\uAE38\uAC70\uB9AC"),value:"street",icon:"car"},{label:e("training.noise.type.buzz","\uC640\uAE00\uC640\uAE00"),value:"buzz",icon:"message-square-more"},{label:e("training.noise.type.restaurant","\uC2DD\uB2F9"),value:"restaurant",icon:"coffee"}]}n3(St.t.bind(St)),eu(St.t.bind(St));const Ho="none",a3=.5,r3=1.5,o3=.25;function zo({title:e,valueLabel:t,value:a,min:r,max:s,step:i,tickStep:l,size:c,onChange:d}){return n.jsxs(Tn,{variant:"custom",label:e,useFullWidth:!0,children:[n.jsx(Jl,{value:a,onChange:d,min:r,max:s,step:i,size:c,showBgTick:!0,tickStep:l,ariaLabel:e,className:"noise-settings__slider-input"}),n.jsx("div",{className:"noise-settings__value button-1",children:t})]})}function tu({anchorRect:e,onClose:t}){const{t:a}=ve.useTranslation(),r=Yt("(max-width: 767px)")?40:24,s=ar(),i=ja(s?.settings??Ma),l=s?.settings.type??"defaultNoise",c=s?.settings.enabled??!0,d=s?.playbackRate??1,u=s?.mainVolume??1,p=Math.round(u*100),m=o.useCallback(C=>{try{s?.setMainVolume(Math.max(0,Math.min(1,C/100)))}catch{}},[s]),h=o.useCallback(C=>{try{s?.setPlaybackRate(C)}catch{}},[s]),b=o.useCallback(C=>{const w=Math.min(Ea,Math.max(0,Math.round(C*10)/10));try{s?.setSettings({noiseRatio:w})}catch{}},[s]),v=o.useCallback(C=>{try{C===Ho?s?.setSettings({enabled:!1}):s?.setSettings({type:C,enabled:!0})}catch{}},[s]);return n.jsx(an,{anchorRect:e,offset:12,onClose:t,ariaLabel:a("training.trainingSettingsTitle","\uD6C8\uB828 \uC124\uC815"),isMobilePopup:!1,closeOnOutsideClick:!1,header:n.jsxs("div",{className:"noise-settings__header",children:[n.jsx("span",{children:a("training.trainingSettingsTitle","\uD6C8\uB828 \uC124\uC815")}),n.jsx(ce,{htmlType:"button",size:40,type:"dot",icon:"x",variant:"transparent-gray",useBorder:!1,ariaLabel:a("common.close","\uB2EB\uAE30"),onClick:t})]}),children:n.jsxs(sr,{className:"noise-settings",useBorder:!1,labelWidth:72,children:[n.jsx(zo,{title:a("training.playVolumeTitle","\uC804\uCCB4 \uC18C\uB9AC"),valueLabel:`${p}%`,value:p,min:0,max:100,step:10,size:r,onChange:m}),n.jsx(zo,{title:a("training.playSpeedTitle","\uC7AC\uC0DD \uC18D\uB3C4"),valueLabel:`${d.toFixed(2)}x`,value:d,min:a3,max:r3,step:o3,size:r,onChange:h}),n.jsx(Tn,{variant:"custom",label:a("training.noiseTypeTitle","\uC18C\uC74C \uC885\uB958"),useFullWidth:!0,children:n.jsx(_n,{ariaLabel:a("training.noiseTypeTitle","\uC18C\uC74C \uC885\uB958"),size:40,shape:"rounded",options:[{key:Ho,label:a("training.noise.type.none","\uC5C6\uC74C")},...eu(a).map(C=>({key:C.value,label:C.label}))],value:c?l:Ho,onChange:v})}),n.jsx(zo,{title:a("training.noiseRatioTitle","\uC18C\uC74C \uBE44\uC728"),valueLabel:a("training.noiseRatioValue","{{ratio}}\uBC30",{ratio:i.toFixed(1)}),value:i,min:0,max:Ea,step:Fc,size:r,onChange:b})]})})}function nu({useNoiseSettingBtn:e=!1,onSettings:t,onNext:a,onResult:r,stepIndex:s=0,stepCount:i=0,pageIndex:l=0,pageCount:c=1,resultOpen:d=!1}){const{t:u}=ve.useTranslation(),[p,m]=o.useState(!1),[h,b]=o.useState(null),[v,C]=o.useState(!1),w=o.useRef(null),f=o.useRef(null),y=ar(),x=c>0,g=x&&l<c-1,k=!x||l>=c-1,_=s===Math.max(0,i);o.useEffect(()=>{e||(m(!1),b(null))},[e]);const B=o.useCallback(()=>{m(!1),b(null)},[]),N=o.useCallback(()=>{if(p){m(!1),b(null);return}const R=w?.current?.getBoundingClientRect();R&&b(R),t?.(),m(!0)},[p,t]),A=o.useCallback(()=>{if(p){m(!1),b(null);return}const R=f?.current?.getBoundingClientRect();R&&b(R),t?.(),m(!0)},[p,t]),S=Yt("(max-width: 767px)"),O=o.useRef(null),[H,j]=o.useState(null),q=o.useCallback(()=>{C(R=>{const G=!R;return j(G?O.current?.getBoundingClientRect()??null:null),G})},[]),E=o.useCallback(()=>{C(!1),j(null)},[]);o.useEffect(()=>{d&&(C(!1),j(null))},[d]);const M=n.jsxs(n.Fragment,{children:[n.jsxs("div",{className:"pp-bottom__meter",children:[n.jsx("span",{className:"pp-bottom__meter-label caption-1",children:u("training.meter.sentence","\uC7AC\uC0DD")}),n.jsx(ho,{analyser:y?.mainAnalyser??null,orientation:"horizontal",length:112,label:"db",labelPos:"left",ariaLabel:u("training.meter.sentence","\uC7AC\uC0DD")})]}),n.jsxs("div",{className:"pp-bottom__meter",children:[n.jsx("span",{className:"pp-bottom__meter-label caption-1",children:u("training.meter.noise","\uC18C\uC74C")}),n.jsx(ho,{analyser:y?.noiseAnalyser??null,orientation:"horizontal",length:112,label:"db",labelPos:"left",ariaLabel:u("training.meter.noise","\uC18C\uC74C")})]})]});return Kc(e&&p,()=>typeof document<"u"?document.querySelector(".noise-settings__header")?.closest(".tooltip-content")??null:null,()=>[w.current,f.current].map(R=>R?.querySelector("button")??null).find(R=>!!R&&R.getClientRects().length>0)??w.current?.querySelector("button")??null),n.jsxs("div",{className:"pp-bottom",children:[n.jsxs("div",{className:"pp-bottom__left",children:[e?n.jsxs(n.Fragment,{children:[n.jsx("div",{className:"pp-bottom__settings--desktop",children:n.jsx("div",{ref:w,className:"pp-bottom__tooltip-trigger","data-tooltip-ignore":!0,children:n.jsx(ce,{htmlType:"button",size:56,type:"bar",icon:"settings",onClick:N,className:p?"is-selected":void 0,"aria-expanded":p,"aria-haspopup":"dialog",ariaLabel:u("training.trainingSettingsTitle","\uD6C8\uB828 \uC124\uC815"),label:u("training.trainingSettingsTitle","\uD6C8\uB828 \uC124\uC815"),minWidth:140})})}),n.jsx("div",{className:"pp-bottom__settings--mobile",children:n.jsx("div",{ref:f,className:"pp-bottom__tooltip-trigger","data-tooltip-ignore":!0,children:n.jsx(ce,{htmlType:"button",size:56,type:"dot",shape:"pill",icon:"settings",onClick:A,className:p?"is-selected":void 0,"aria-expanded":p,"aria-haspopup":"dialog",ariaLabel:u("training.settings","\uC124\uC815")})})})]}):null,e&&n.jsx("div",{ref:O,className:"pp-bottom__meter-trigger","data-tooltip-ignore":!0,children:n.jsx(ce,{htmlType:"button",size:40,type:"dot",shape:"pill",icon:"audio-lines",onClick:q,selected:v,"aria-expanded":S?v:void 0,ariaLabel:u("training.meter.toggle","\uC624\uB514\uC624 \uBBF8\uD130 \uD45C\uC2DC")})}),e&&v&&!S&&n.jsx("div",{className:"pp-bottom__meters",children:M})]}),e&&v&&S&&H&&n.jsx(an,{anchorRect:H,onClose:E,ariaLabel:u("training.meter.toggle","\uC624\uB514\uC624 \uBBF8\uD130 \uD45C\uC2DC"),children:n.jsx("div",{className:"pp-bottom__meters pp-bottom__meters--floating",children:M})}),n.jsxs("div",{className:"pp-bottom__right",children:[k&&n.jsx(ce,{htmlType:"button",size:56,type:"bar",icon:"check",onClick:typeof r=="function"?r:a,ariaLabel:u("training.viewResult","\uACB0\uACFC\uBCF4\uAE30"),label:u("training.viewResult","\uACB0\uACFC\uBCF4\uAE30"),variant:"main",disabled:!_}),g&&n.jsx(ce,{htmlType:"button",size:56,type:"bar",rightIcon:"chevron-right",align:"right",onClick:a,ariaLabel:u("training.nextQuestion","\uB2E4\uC74C \uBB38\uC81C"),label:u("training.nextQuestion","\uB2E4\uC74C \uBB38\uC81C"),variant:"main",disabled:!_})]}),e&&p&&n.jsx(tu,{anchorRect:h,onClose:B})]})}function au({title:e,subtitle:t,desc:a,depth:r,icon:s,wrapperStyle:i,iconTooltip:l,pageIndex:c,pageCount:d,progressMax:u,progressIndex:p,onBack:m,onClose:h}){const{t:b}=ve.useTranslation(),v=Yt("(max-width: 767px)"),C=Number.isInteger(p)?p:c||0,w=Number.isInteger(u)?u:d||0,f=m||h,y=Array.isArray(r)?v?r[r.length-1]:r.join(" / "):r,x=typeof e=="string"?e.trim():e,g=typeof t=="string"?t.trim():t,k=!!(x||g),_=k?x||g:b("common.emptyTrainingName","\uD6C8\uB828 \uC774\uB984\uC774 \uBE44\uC5B4 \uC788\uC2B5\uB2C8\uB2E4."),B=y||(x?t:void 0),N=v&&typeof B=="string"&&(B.includes(" \xB7 ")||B.includes(" / "))?B.split(/\s[·/]\s/).pop():B,A=o.useMemo(()=>{const S=i&&typeof i=="object"?{...i}:{};return!("width"in S)&&!("height"in S)&&(S.width="40px",S.height="40px"),S},[i]);return n.jsxs("header",{className:"pp-title training-popup-title",children:[n.jsxs("div",{className:"pp-title__left",children:[f?n.jsx(ce,{htmlType:"button",size:48,type:"dot",icon:"chevron-left",ariaLabel:b("common.back","\uB4A4\uB85C"),onClick:f,useBorder:!1,iconSize:"large",iconColor:"--color-black",variant:"transparent-gray"}):null,n.jsx("div",{children:s?n.jsx(jl,{icon:s,label:e,tooltip:l,wrapperStyle:A}):null}),n.jsxs("div",{className:"pp-title__text",children:[N?n.jsx("span",{className:"pp-title__depth caption-1",children:N}):null,n.jsx("span",{className:`pp-title__title h2${k?"":" pp-title__title--empty"}`,children:_}),a?n.jsx("span",{className:"pp-title__description caption-1",children:a}):null]})]}),n.jsx(nc,{max:Math.max(0,w??0),index:Math.max(0,C??0)})]})}function s3(){typeof window<"u"&&window.dispatchEvent(new CustomEvent("speechear.popup.close"))}function i3(e){return!e&&e!==0?[]:Array.isArray(e)?e.flatMap(t=>typeof t=="string"?t.split("|").map(a=>a.trim()).filter(Boolean):t||t===0?[String(t)]:[]):typeof e=="string"?e.split("|").map(t=>t.trim()).filter(Boolean):[String(e)]}const ru=(e,t)=>{if(!t)return t;const a=typeof St?.t=="function"?St.t(e,{defaultValue:t}):void 0;return typeof a=="string"&&a?a:t};function ou(e,t,a){const r=e,s=r?.title||r?.name||(Array.isArray(t)?t[t.length-1]:void 0)||a||"\uD6C8\uB828",i=di().find(c=>c.key===(r?.category_0||r?.category_main_code)),l=i?.subs?.find(c=>c.key===(r?.category_1||r?.category_sub_code));return{title:s,label:r?.title||s,depth:t,icon:i?.icon,wrapperStyle:i?.color?{"--t-item-fg":i.color}:void 0,iconTooltip:[i?ru(`topic.${i.key}`,i.label):void 0,l?ru(`topic.sub.${l.key}`,l.label):void 0].filter(Boolean).join(" / ")||void 0}}function Vo(e){return e&&typeof e=="object"&&typeof e.__ts=="number"?e.__ts:0}function l3(e){const t=e;return Array.isArray(t?.items)?t.items:Array.isArray(e)?e:e?[e]:[]}function c3({idPrefix:e,trainingData:t,depth:a,fallbackTitle:r="\uD6C8\uB828",pages:s=[],emptyMessage:i,buildResults:l,metaPatch:c}){const d=ou(t,a,r),u=typeof c=="function"?c(d)||{}:c||{},p=t?.id||t?.title||s.length;return{id:`${e}:${p}`,meta:{...d,...u},pages:s,emptyMessage:i,buildResults:l}}function u3(e){if(typeof e=="string")return e;if(e&&typeof e=="object"){const t=e;return t.context||t.sentence||t.question||""||""}return""}function d3(e){if(e&&typeof e=="object"){const t=e;if(Array.isArray(t.selectedValues))return t.selectedValues;if(t.selectedValue!==void 0)return t.selectedValue;if(t.selectedIndex!==void 0)return t.selectedIndex;if(t.value!==void 0)return t.value}return e}function p3(e,t=[]){if(Array.isArray(e))return e.join(", ");if(typeof e=="number"&&Array.isArray(t))return String(t[e]??"");if(typeof e=="string")return e}function su(e,t){if(!(!e||typeof e!="object"))return e[`step-${t}`]}function m3(e,t,a,r){return su(e,t*a+r)}function h3({payload:e,selected:t,choices:a=[],correctAnswers:r=[]}){if(e&&typeof e=="object"){const s=e;if(Array.isArray(s.selectedValues))return r.every(i=>s.selectedValues.includes(i))&&s.selectedValues.every(i=>r.includes(i));if(typeof s.correct=="boolean")return s.correct}if(r.length){if(typeof t=="number"&&Array.isArray(a)&&a.length)return r.some(s=>String(s)===String(a[t]));if(typeof t<"u")return r.some(s=>String(s)===String(t))}}function f3(e){return e?Array.isArray(e.items)?e.items.map(t=>{const a=t;return typeof t=="string"?{sentence:t}:{sentence:a.context||a.sentence||"",contextCode:a.contextCode||a.context_code}}):Array.isArray(e.sentences)?e.sentences.map(t=>{const a=t;return typeof t=="string"?{sentence:t}:{sentence:a.sentence||a.context||"",contextCode:a.contextCode}}):Array.isArray(e.contexts)?e.contexts:e.contextCode?[{contextCode:e.contextCode}]:[]:[]}const iu=o.createContext(null);function C3(){const e=o.useContext(iu);if(!e)throw new Error("useTrainingPagePopupContext must be used inside TrainingPagePopup");return e}function g3({index:e,stepIndex:t,isLast:a=!1,title:r,choices:s=[],onDone:i,onChange:l}){const{t:c}=ve.useTranslation(),d=typeof e=="number"?e:-1,u=typeof t!="number"?"disabled":d<t?"done":d===t?"active":"disabled",[p,m]=o.useState(()=>s.map(()=>null)),h=JSON.stringify(s),b=s.length;o.useEffect(()=>{m(Array.from({length:b},()=>null))},[h]);const v=o.useRef(void 0);o.useEffect(()=>{const y=v.current;typeof y=="number"&&typeof t=="number"&&typeof e=="number"&&y>=e&&t<e&&m(Array.from({length:b},()=>null)),v.current=t},[t,e,b]);const C=o.useMemo(()=>p.filter(y=>y!==null).length+1,[p]),w=o.useCallback(y=>{if(u!=="active")return;const x=p;let g;if(x[y]!=null){const _=x[y];g=x.map(B=>B!==null&&B>=_?null:B)}else g=[...x],g[y]=C;m(g);const k={selectedOrder:g,words:s,__ts:Date.now()};try{typeof l=="function"&&l(k)}catch{}if(x[y]==null&&g.length>0&&g.every(_=>_!==null))try{typeof i=="function"&&i(k)}catch{}},[u,p,C,l,i,s]),f=r??c("training.selectInOrder","\uB4E4\uC740 \uC21C\uC11C\uB300\uB85C \uCE74\uB4DC\uB97C \uC120\uD0DD\uD558\uC138\uC694.");return n.jsx(Vn,{index:e,stepIndex:t,isLast:a,title:f,onDone:i,children:n.jsx("div",{className:"training-step__cards",children:s.map((y,x)=>n.jsx(vo,{item:{word:y},disabled:u==="disabled",selectable:!0,selected:p[x]!==null,orderRank:p[x],onSelect:()=>w(x),flipDelay:x*120,hideLabel:!1,hideAudio:!0},`${y}-${x}`))})})}function ir(e){return null}ir.__isTrainingPage=!0;function ia(e,t){const a=C3();return{ctx:a,index:e,stepIndex:a.currentStepIndex,isLast:typeof e=="number"&&typeof t=="number"?e===t-1:!1,onDone:r=>a.handleStepDone(r,e),onChange:r=>a.handleStepChange(r,e)}}function lu({_stepIndex:e,_totalSteps:t,...a}){const{index:r,stepIndex:s,isLast:i,onDone:l}=ia(e,t);return n.jsx(Fo,{...a,index:r,stepIndex:s,isLast:i,onDone:l})}function cu({_stepIndex:e,_totalSteps:t,...a}){const{index:r,stepIndex:s,isLast:i,onDone:l,onChange:c}=ia(e,t);return n.jsx(Po,{...a,index:r,stepIndex:s,isLast:i,onDone:l,onChange:c})}function uu({_stepIndex:e,_totalSteps:t,...a}){const{index:r,stepIndex:s,isLast:i,onDone:l,onChange:c}=ia(e,t);return n.jsx(Io,{...a,index:r,stepIndex:s,isLast:i,onDone:l,onChange:c})}function du({_stepIndex:e,_totalSteps:t,...a}){const{index:r,stepIndex:s,isLast:i,onDone:l,onChange:c}=ia(e,t);return n.jsx(Oo,{...a,index:r,stepIndex:s,isLast:i,onDone:l,onChange:c})}function pu({_stepIndex:e,_totalSteps:t,...a}){const{index:r,stepIndex:s,isLast:i,onDone:l,onChange:c}=ia(e,t);return n.jsx(Xc,{...a,index:r,stepIndex:s,isLast:i,onDone:l,onChange:c})}function b3({_stepIndex:e,_totalSteps:t,...a}){const{index:r,stepIndex:s,isLast:i,onDone:l,onChange:c}=ia(e,t);return n.jsx(g3,{...a,index:r,stepIndex:s,isLast:i,onDone:l,onChange:c})}function Wo(...e){for(const t of e)if(typeof t=="string"){const a=t.trim();if(a.length)return a}else{if(typeof t=="number"||typeof t=="boolean")return String(t);if(Array.isArray(t)&&t.length)return t.join(", ");if(t&&typeof t=="object"){const a=t,r=[a.text,a.label,a.value];for(const s of r){if(typeof s=="string"&&s.trim().length)return s.trim();if(typeof s=="number"||typeof s=="boolean")return String(s)}}}return null}function y3(e){return Wo(e?.question,e?.q,e?.sentence,e?.text,e?.prompt,e?.wording)}function mu(e){if(!e)return;if(typeof e.decision=="boolean")return e.decision;if(typeof e.correct=="boolean")return e.correct;if(typeof e.heard=="boolean")return e.heard;if(typeof e.judgement=="boolean")return e.judgement;const t=Wo(e?.status,e?.result,e?.judge,e?.note);if(t){const a=t.toLowerCase();if(["ok","true","\uB9DE\uC74C","\uC815\uB2F5"].some(r=>a.includes(r)))return!0;if(["ng","false","\uD2C0\uB9BC","\uC624\uB2F5"].some(r=>a.includes(r)))return!1}}function hu(e){const{score:t,contextsLength:a,results:r=[],subtitle:s,onReplay:i,onClose:l,inline:c=!1,pending:d=!1}=e||{},{t:u}=ve.useTranslation(),p=o.useId(),m=o.useCallback(()=>!d,[d]);o.useEffect(()=>{const y=a??0;if(t!=null&&y>0&&t/y>.5){const x=window.setTimeout(()=>{window.dispatchEvent(new CustomEvent("party:trigger",{detail:{count:140,strength:1.6,duration:2200}}))},0);return()=>window.clearTimeout(x)}},[t,a]);const h=o.useCallback(y=>{const x=mu(y),g=Wo(y?.wording,y?.label);return x===!0?{variant:"main",label:g??u("training.result.heardWell","\uC798 \uB4E4\uC5C8\uC5B4\uC694")}:x===!1?{variant:"danger",label:g??u("training.result.notHeard","\uBABB \uB4E4\uC5C8\uC5B4\uC694")}:{variant:"disabled",label:g??u("training.result.notJudged","\uBBF8\uD310\uC815")}},[u]),b=a??0,v=t??0,C=o.useMemo(()=>Array.isArray(r)?r:[],[r]),w=o.useMemo(()=>C.map(y=>{const x=y??{},g=y3(x)||u("training.result.noContent","(\uB0B4\uC6A9\uC5C6\uC74C)"),{variant:k,label:_}=h(x),B=Array.isArray(x.corrects)?x.corrects:[],N=B.length?B.join(", "):x.answer!=null&&x.answer!==""?String(x.answer):null,A=typeof x.selectedText=="string"?x.selectedText:null,S=mu(x)===!0;return{problem:g,variant:k,label:_,answer:N,selectedText:A,isCorrect:S}}),[C,h,u]),f=o.useMemo(()=>w.some(y=>y.answer!==null||y.selectedText!==null),[w]);return n.jsx(jn,{onClose:l,closeOnBackdrop:!1,inline:c,ariaLabel:u("training.result.title","\uD6C8\uB828\uC744 \uBAA8\uB450 \uB9C8\uCCE4\uC2B5\uB2C8\uB2E4."),className:"popup--training-result",beforeClose:m,footerClassName:"trp-result__foot",footer:({animateThen:y,closeWithAnimation:x})=>n.jsxs(n.Fragment,{children:[d&&n.jsx("p",{id:p,className:"trp-actions__reason caption-1",role:"status",children:u("training.result.pendingDone","\uACB0\uACFC\uB97C \uACC4\uC0B0\uD558\uB294 \uC911\uC774\uB77C \uC544\uC9C1 \uC644\uB8CC\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.")}),n.jsxs("div",{className:"trp-actions",children:[n.jsx(ce,{htmlType:"button",size:56,type:"bar",label:u("training.result.replay","\uB2E4\uC2DC\uD558\uAE30"),onClick:()=>y(i)}),n.jsx(ce,{htmlType:"button",size:56,type:"bar",label:u("training.result.done","\uC644\uB8CC"),variant:"main",onClick:x,disabled:d,onDisabledClick:d?()=>{}:void 0,"aria-describedby":d?p:void 0})]})]}),children:()=>n.jsxs("div",{className:"trp-result is-on",children:[n.jsxs("header",{className:"trp-result__head",children:[n.jsx("p",{className:"trp-result__eyebrow caption-1",children:u("training.result.eyebrow","\uD6C8\uB828 \uC644\uB8CC")}),n.jsx("h1",{className:"trp-result__title h2",children:u("training.result.title","\uD6C8\uB828\uC744 \uBAA8\uB450 \uB9C8\uCCE4\uC2B5\uB2C8\uB2E4.")}),s&&n.jsx("p",{className:"trp-result__subtitle body-3",children:s}),n.jsx("div",{className:"trp-score",children:n.jsxs("div",{className:"trp-score__figure","aria-label":u("training.result.scoreAria",{correct:v,total:b}),children:[n.jsx("span",{className:"trp-score__big",children:v}),n.jsx("span",{className:"trp-score__sep",children:"/"}),n.jsx("span",{className:"trp-score__total",children:b})]})})]}),w.length>0&&n.jsx("section",{className:"trp-result__body",children:n.jsxs("div",{className:`result-table${f?" result-table--answer":""}`,role:"table","aria-label":u("training.result.tableAriaLabel","\uBB38\uD56D\uBCC4 \uD310\uC815"),children:[n.jsxs("div",{className:"result-table__head caption-1",role:"row",children:[n.jsx("span",{role:"columnheader",children:u("common.col.problem","\uBB38\uC81C")}),f&&n.jsx("span",{role:"columnheader",children:u("training.result.colAnswerSelected","\uC815\uB2F5 \xB7 \uC120\uD0DD")}),n.jsx("span",{className:"col-right",role:"columnheader",children:u("training.result.colJudge","\uD310\uC815")})]}),w.map((y,x)=>n.jsxs("div",{className:"result-table__row",role:"row",children:[n.jsxs("div",{className:"trp-row__problem",children:[n.jsx("span",{className:"trp-row__no caption-1",children:String(x+1).padStart(2,"0")}),n.jsx("div",{className:"trp-row__q body-2",children:y.problem})]}),f&&n.jsxs("div",{className:"trp-row__answers",children:[y.answer!==null&&n.jsxs("div",{className:"trp-row__answer-line",children:[n.jsx("span",{className:"trp-row__answer-label answer-correct caption-1",children:u("training.result.colAnswer","\uC815\uB2F5")}),n.jsx("span",{className:"trp-row__answer-value body-2",children:y.answer})]}),n.jsxs("div",{className:"trp-row__answer-line",children:[n.jsx("span",{className:`trp-row__answer-label answer-selected caption-1 ${y.isCorrect?"is-correct":"is-wrong"}`,children:u("training.result.colSelected","\uC120\uD0DD")}),n.jsx("span",{className:`trp-row__answer-value body-2 ${y.isCorrect?"is-correct":"is-wrong"}`,children:y.selectedText??"\u2014"})]})]}),n.jsx("div",{className:"trp-row__judge",children:n.jsx(ht,{variant:y.variant,label:y.label,fill:"soft",minWidth:80})})]},x))]})})]})})}function v3(e){o.useEffect(()=>{if(!e)return;const t=()=>typeof document>"u"||document.visibilityState!=="hidden";let a=null,r=null,s=0,i=0;const l=()=>{const p=Date.now();a==null&&(a=p),r==null&&(r=p)},c=()=>{r!=null&&(s+=Date.now()-r,r=null)};t()&&l();const d=()=>{if(c(),a==null||s-i<1e3||i===0&&s<5e3)return;const p=a+i;i=s,A2({trainingType:e,startedAt:new Date(p).toISOString(),endedAt:new Date(a+s).toISOString()})},u=()=>{t()?l():d()};return typeof document<"u"&&document.addEventListener("visibilitychange",u),typeof window<"u"&&window.addEventListener("pagehide",d),()=>{typeof document<"u"&&document.removeEventListener("visibilitychange",u),typeof window<"u"&&window.removeEventListener("pagehide",d),d()}},[e])}function qo(e,t){return e&&e.id||`page-${t??0}`}function Uo(e,t){return e&&e.key||`step-${t??0}`}function lr(){return{pageIndex:0,stepIndex:0,answersByPage:{}}}function x3(e,t){return typeof e?.props=="function"?e.props(t)||{}:e?.props||{}}const _3=300,w3=()=>{try{return typeof window<"u"&&!!window.matchMedia?.("(prefers-reduced-motion: reduce)").matches}catch{return!1}},Mn=Object.freeze({}),fu=new Set(["LISTEN_IN_NOISE","SHORT_STORY","LONG_STORY","ORDERING_SENTENCE"]);function Cu(e){const t=e,a=t?.results||t?.answers||[],r=Array.isArray(a)&&a.length>0?a.length:null,s=Array.isArray(a)?a.filter(i=>i?.correct===!0||i?.isCorrect===!0||i?.score===1||i?.heard===!0||i?.judgement===!0).length:null;return{results:a,correct:r!=null?s:null,total:r}}const k3=e=>n.jsx(hu,{score:e.score,contextsLength:e.contextsLength,results:e.results,onReplay:e.onReplay,onClose:e.onClose,pending:e.pending});function A3(e){const{scenario:t,title:a,subTitle:r,depth:s,icon:i,wrapperStyle:l,iconTooltip:c,pageIndex:d,pageCount:u,stepIndex:p,stepCount:m,onBack:h,onComplete:b,onNext:v,onSettings:C,useNoiseSetting:w=!0,children:f,ariaLabel:y,label:x,buildResults:g,onResult:k,typeKey:_,entryPoint:B,dailyTotal:N,itemRef:A,renderResultPopup:S,noiseOverride:O}=e;v3(_&&!fu.has(_)?_:"");const H=o.useRef(0);o.useEffect(()=>{H.current=Date.now()},[]);const{t:j}=ve.useTranslation(),q=k,E=!!t,M=t?.id||null,R=t?.meta||{},G=Array.isArray(t?.pages)?t.pages:[],X=Array.isArray(f)||o.isValidElement(f)&&typeof f!="function"?o.Children.toArray(f).filter(o.isValidElement):[],U=X.length>0,W=te=>te===ir||te?.__isTrainingPage===!0,Y=U&&X.some(te=>W(te.type)),L=Y?X.filter(te=>W(te.type)).map((te,Ce)=>{const V=te.props||{};return{id:`children-page-${Ce}`,steps:o.Children.toArray(V.children).filter(o.isValidElement),pageTop:V.pageTop||V.top||null,pageBottom:V.pageBottom||V.bottom||null}}):[{id:"children-page-0",steps:X}],D=U&&!E&&typeof f!="function",P=D?Math.max(1,L.length):0;o.useEffect(()=>{if(!(typeof document>"u"||!document.body)&&!document.body.classList.contains("ihabdevteam-core-scope"))return document.body.classList.add("ihabdevteam-core-scope"),()=>{document.body.classList.remove("ihabdevteam-core-scope")}},[]),o.useEffect(()=>{if(typeof document>"u"||!document.body)return;const te=document.body;return te.dataset.ihabTrainingPopupCount=String(Number(te.dataset.ihabTrainingPopupCount||"0")+1),te.classList.add("ihab-training-popup-open"),()=>{const Ce=Number(te.dataset.ihabTrainingPopupCount||"1")-1;Ce>0?te.dataset.ihabTrainingPopupCount=String(Ce):(delete te.dataset.ihabTrainingPopupCount,te.classList.remove("ihab-training-popup-open"))}},[]),o.useEffect(()=>{if(!(typeof document>"u"||!document.body))return w4()},[]);const[I,F]=o.useState({...Ma,enabled:!1}),$=o.useRef(I);o.useEffect(()=>{$.current=I},[I]);const J=o.useRef(O),Z=o.useRef(!1),K=o.useRef(null);o.useEffect(()=>{let te=!1;const Ce=V=>{if(te)return;Z.current=!0;const se=V?Ta({...Ma,enabled:!1},V):{...Ma},de=K.current;K.current=null;const ke=de?Ta(se,de):se;$.current=ke,F(ke),de&&!J.current&&oi(ke),Ha(ke);const Be=J.current;if(Be){const Me=typeof Be=="function"?Be(ke):Be,at=Ta(ke,Me);$.current=at,F(at),Ha(at)}};return D2().then(Ce),()=>{te=!0}},[]);const[ae,ye]=o.useState(null),[oe,le]=o.useState(null),z=o.useCallback((te,Ce)=>{te==="main"?ye(Ce):le(Ce)},[]),re=o.useRef(null),pe=o.useRef(null),_e=o.useCallback(()=>{pe.current!==null&&(clearTimeout(pe.current),pe.current=null);const te=re.current;re.current=null,te&&oi(te)},[]);o.useEffect(()=>{if(typeof window>"u")return;const te=()=>{document.visibilityState==="hidden"&&_e()};return window.addEventListener("pagehide",_e),document.addEventListener("visibilitychange",te),()=>{window.removeEventListener("pagehide",_e),document.removeEventListener("visibilitychange",te),_e()}},[_e]);const be=o.useCallback(te=>{const Ce=Ta($.current,te);if($.current=Ce,F(Ce),!Z.current){K.current={...K.current??{},...te},Ha(Ce);return}J.current||(re.current=Ce,pe.current!==null&&clearTimeout(pe.current),pe.current=setTimeout(_e,_3)),Ha(Ce)},[_e]),Ne=I.mainSpeed,fe=I.mainVolume,xe=o.useCallback(te=>be({mainSpeed:te}),[be]),Ee=o.useCallback(te=>be({mainVolume:te}),[be]),Oe=o.useMemo(()=>({settings:I,setSettings:be,registerAnalyser:z,mainAnalyser:ae,noiseAnalyser:oe,playbackRate:Ne,setPlaybackRate:xe,mainVolume:fe,setMainVolume:Ee}),[I,be,z,ae,oe,Ne,xe,fe,Ee]),$e=o.useRef(null),[ue,Ae]=o.useState(0),Le=o.useRef([]),[Te,ne]=o.useState("center"),[ie,ge]=o.useState(!1),he=o.useRef(!1),Ge=o.useRef(null),Ue=o.useCallback(te=>{he.current||(he.current=!0,ge(!0),Ge.current=setTimeout(()=>{try{te()}catch{he.current=!1,ge(!1)}},w3()?0:X5))},[]);o.useEffect(()=>()=>{Ge.current&&clearTimeout(Ge.current)},[]);const Ye=o.useRef(h);o.useEffect(()=>{Ye.current=h}),o.useEffect(()=>{const te=$e.current,Ce=document.activeElement;if(Fr(te,Ce),te){const V=Array.from(te.querySelectorAll(gn)).filter(se=>!se.closest('[aria-hidden="true"]'))[0];if(V)try{V.focus()}catch{}}return()=>{const V=document.activeElement;if(!V||V===document.body||te&&te.contains(V))try{Or(Ce)?.focus?.()}catch{}}},[]),o.useEffect(()=>In(()=>Ue(()=>{const te=Ye.current;typeof te=="function"&&te()})),[Ue]),Pr($e,!0);const[Ze,Xe]=o.useState(!1),ze=o.useRef(!1),[Re,Ve]=o.useState(null),ot=o.useRef(0),Ct=()=>{ot.current+=1,Ve(null)},[zt,gt]=o.useState(""),[nt,Je]=o.useState(()=>lr()),et=o.useRef(typeof d=="number"?d:null);o.useEffect(()=>{!E&&!D||(Je(lr()),Ct())},[E,M,D]),o.useEffect(()=>{D&&Je(te=>{const Ce=Math.max(0,Math.min(te.pageIndex,Math.max(0,P-1)));return Ce!==te.pageIndex?{...te,pageIndex:Ce,stepIndex:0}:te})},[D,P]);const lt=D?Math.max(0,Math.min(nt.pageIndex,P-1)):0,We=D?L[lt]:null,ft=D&&We&&Array.isArray(We.steps)?We.steps:[],qe=E?nt.pageIndex:D?lt:typeof d=="number"?d:0,pt=E?G[Math.max(0,Math.min(nt.pageIndex,Math.max(0,G.length-1)))]:null,Et=E&&pt&&Array.isArray(pt.steps)?pt.steps:[],kt=E?Et.length:D?ft.length:typeof m=="number"?m:0,_t=E||D?Math.max(0,Math.min(nt.stepIndex,Math.max(0,kt))):typeof p=="number"?p:0,st=E?G.length:D?P:typeof u=="number"?u:0;o.useLayoutEffect(()=>{const te=et.current;if(typeof qe=="number"&&te!==null&&qe!==te&&qe>te)try{gt(j("training.problemNotice",{n:qe+1}))}catch{}et.current=typeof qe=="number"?qe:et.current},[qe,d,j]),o.useLayoutEffect(()=>{const te=$e.current;if(!te)return;const Ce=()=>te.querySelector(".page-popup__scroll");let V=null,se=null,de=null;const ke=ut=>{const Nt=Ce();if(!Nt)return;const qt=Nt.scrollHeight<=Nt.clientHeight;if(ne(qt?"center":"top"),ut&&!ze.current){ze.current=!0;try{Xe(!0)}catch{}try{at.disconnect()}catch{}}},Be=()=>{V!==null&&cancelAnimationFrame(V),V=requestAnimationFrame(()=>{se!==null&&clearTimeout(se),se=setTimeout(()=>ke(!0),60)})},Me=()=>{de!==null&&cancelAnimationFrame(de),de=requestAnimationFrame(()=>ke(!1))};Be(),window.addEventListener("resize",Me);const at=new MutationObserver(Be);at.observe(te,{childList:!0,subtree:!0,attributes:!0});const vt=setTimeout(()=>{ze.current||ke(!0)},400);return()=>{window.removeEventListener("resize",Me),V!==null&&cancelAnimationFrame(V),se!==null&&clearTimeout(se),de!==null&&cancelAnimationFrame(de),clearTimeout(vt);try{at.disconnect()}catch{}}},[$e]);const Ie=o.useCallback(te=>{$e.current&&($e.current._childOnNext=te)},[]),rt=o.useCallback(te=>{$e.current&&($e.current._childOnResult=te)},[]),bt=o.useCallback((te,Ce,V)=>{Je(se=>{const de=se.answersByPage[te]||{},ke=de[Ce],Be=Vo(V),Me=Vo(ke);return ke&&Me>Be?se:{...se,answersByPage:{...se.answersByPage,[te]:{...de,[Ce]:V}}}})},[Je]),Vt=o.useCallback((te,Ce,V)=>{const se=qo(pt,qe),de=Uo(te,Ce);bt(se,de,V)},[pt,qe,bt]),tt=o.useCallback((te,Ce,V)=>{const se=qo(pt,qe),de=Uo(te,Ce);bt(se,de,V),!V?.allowChange&&te?.autoAdvance!==!1&&Je(ke=>({...ke,stepIndex:Math.max(ke.stepIndex,Ce+1)}))},[pt,qe,bt,Je]),Zt=o.useCallback((te,Ce)=>{const V=We?.id||`children-page-${qe??0}`,se=typeof Ce=="number"?Ce:_t??0,de=`step-${se}`;bt(V,de,te),te?.allowChange||Je(ke=>({...ke,stepIndex:Math.max(ke.stepIndex,se+1)}))},[We,qe,_t,bt,Je]),An=o.useCallback((te,Ce)=>{const V=We?.id||`children-page-${qe??0}`,se=`step-${typeof Ce=="number"?Ce:_t??0}`;bt(V,se,te)},[We,qe,_t,bt]),Bt=D?{currentPageIndex:qe??0,currentStepIndex:_t??0,totalStepsInPage:ft.length,handleStepDone:Zt,handleStepChange:An}:null,Wt=async()=>{const te=typeof t?.buildResults=="function"?await Promise.resolve(t.buildResults({scenario:t,pages:G,flowState:nt,answersByPage:nt.answersByPage})):null;return typeof q=="function"&&await Promise.resolve(q(te))||te},en=async()=>{const te=We?.id||`children-page-${nt.pageIndex}`,Ce=nt.answersByPage[te]||{},V=Y?(()=>{const ke={};let Be=0;return L.forEach(Me=>{const at=nt.answersByPage[Me.id]||{},vt=Array.isArray(Me.steps)?Me.steps.length:0;for(let ut=0;ut<vt;ut+=1){const Nt=at[`step-${ut}`];typeof Nt<"u"&&(ke[`step-${Be+ut}`]=Nt)}Be+=vt}),ke})():Ce;if(typeof g=="function"){const ke=await Promise.resolve(g(V,{pageAnswers:Ce,answersByPage:nt.answersByPage,pages:L,currentPageId:te}));return typeof q=="function"&&await Promise.resolve(q(ke))||ke}const se=Object.entries(Ce).map(([ke,Be],Me)=>({index:Me,key:ke,payload:Be})),de={results:se,answers:se,score:0};return typeof q=="function"&&await Promise.resolve(q(de))||de},on=()=>{const te=++ot.current,Ce=()=>te!==ot.current;try{if(typeof document<"u"&&document.body){try{document.dispatchEvent(new CustomEvent("speechear-close-tooltips"))}catch{}document.dispatchEvent(new PointerEvent("pointerdown",{bubbles:!0,cancelable:!0})),document.dispatchEvent(new MouseEvent("click",{bubbles:!0,cancelable:!0}))}}catch{}if(E){const de=Wt();Ve(Mn);const ke=de;Promise.resolve(ke).then(Be=>{Ce()||Ve(Be||{isEmpty:!0})}).catch(Be=>{!Ce()&&Ve({isEmpty:!0})});return}if(D){const de=en();Ve(Mn);const ke=de;Promise.resolve(ke).then(Be=>{Ce()||Ve(Be||{isEmpty:!0})}).catch(Be=>{!Ce()&&Ve({isEmpty:!0})});return}const V=$e.current&&$e.current._childOnResult,se=de=>{try{return de?de():void 0}catch{return}};if(typeof V=="function"){const de=se(V);try{typeof document>"u"?require("url").pathToFileURL(__filename).href:fn&&fn.tagName.toUpperCase()==="SCRIPT"&&fn.src||new URL("components.cjs.js",document.baseURI).href}catch{}de&&typeof de.then!="function"?Ve(de):Ve(de&&typeof de.then=="function"?Mn:{});const ke=()=>{Ce()||Ve(Be=>Be===Mn?{}:Be)};Promise.resolve(de).then(Be=>{Be&&!Ce()?Ve(Be):ke()}).catch(Be=>{ke()});return}if(typeof q=="function"){const de=se(q);try{typeof document>"u"?require("url").pathToFileURL(__filename).href:fn&&fn.tagName.toUpperCase()==="SCRIPT"&&fn.src||new URL("components.cjs.js",document.baseURI).href}catch{}de&&typeof de.then!="function"?Ve(de):Ve(de&&typeof de.then=="function"?Mn:{});const ke=()=>{Ce()||Ve(Be=>Be===Mn?{}:Be)};Promise.resolve(de).then(Be=>{try{typeof document>"u"?require("url").pathToFileURL(__filename).href:fn&&fn.tagName.toUpperCase()==="SCRIPT"&&fn.src||new URL("components.cjs.js",document.baseURI).href}catch{}Be&&!Ce()?Ve(Be):ke()}).catch(Be=>{console.error("viewResults external handler failed",Be),ke()});return}},cn=()=>{if(E){if(typeof qe=="number"&&typeof st=="number"&&qe<st-1){Je(Ce=>({...Ce,pageIndex:Ce.pageIndex+1,stepIndex:0}));return}return on()}if(D){const Ce=ft.length;if(typeof _t=="number"&&_t<Ce-1){Je(V=>({...V,stepIndex:V.stepIndex+1}));return}if(typeof qe=="number"&&typeof st=="number"&&qe<st-1){Je(V=>({...V,pageIndex:V.pageIndex+1,stepIndex:0}));return}return on()}if(typeof v=="function"){try{v()}catch{}return}const te=$e.current&&$e.current._childOnNext;if(typeof te=="function"){try{te()}catch{}return}},tn=E?R.title||R.label||y||j("common.popup","\uD31D\uC5C5"):a||x||(Array.isArray(s)?s[s.length-1]:void 0)||y||j("common.popup","\uD31D\uC5C5"),Bn=y||tn,Xt=E?R.title??R.label??tn:a??x??tn,yt=(te,Ce)=>{const V=qo(pt,qe),se=Uo(te,Ce),de=nt.answersByPage[V]?.[se],ke=x3(te,{page:pt,pageIndex:qe,step:te,stepIndex:Ce,storedPayload:de,answersByPage:nt.answersByPage,flowState:nt}),Be={key:se,index:Ce,stepIndex:_t,isLast:Ce===Et.length-1};switch(te?.type){case"listen":return n.jsx(Fo,{...Be,...ke,onDone:Me=>tt(te,Ce,Me)});case"confirm":return n.jsx(Po,{...Be,...ke,onDone:Me=>tt(te,Ce,Me),onChange:Me=>Vt(te,Ce,Me)});case"confirmWithText":return n.jsx(Io,{...Be,...ke,onDone:Me=>tt(te,Ce,Me),onChange:Me=>Vt(te,Ce,Me)});case"orderList":return n.jsx(Oo,{...Be,...ke,onDone:Me=>tt(te,Ce,Me),onChange:Me=>Vt(te,Ce,Me)});default:return null}},un=o.useRef(void 0);o.useEffect(()=>{const te=un.current;if(un.current=qe,te===void 0||te===qe||!Ja())return;const Ce=$e.current;if(!Ce)return;const V=document.activeElement;if(!(!V||V===document.body||!Ce.contains(V)||V.disabled===!0))return;const se=Ce.querySelector(`.training-steps ${gn.split(", ").join(", .training-steps ")}`)??Array.from(Ce.querySelectorAll(gn)).find(de=>!de.closest('[aria-hidden="true"]'));try{se?.focus()}catch{}},[qe]);const Jt=E?G.length>0?n.jsx("div",{className:"training-steps",children:Et.map((te,Ce)=>yt(te,Ce))},`replay-${ue}`):n.jsx("div",{className:`page-popup__content page-popup__content--center${e.contentFull?" page-popup__content--full":""}`,children:n.jsx("div",{className:"pp-empty",children:t?.emptyMessage||j("training.noQuestions","\uBB38\uC81C\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4.")})}):null,Tt=D?n.jsxs(iu.Provider,{value:Bt,children:[We?.pageTop?n.jsx("div",{className:"training-page-top",children:We.pageTop}):null,n.jsx("div",{className:"training-steps",children:ft.map((te,Ce)=>{const V=te;return o.cloneElement(V,{...V.props,_stepIndex:Ce,_totalSteps:ft.length,_stepKey:`step-${Ce}`,_pageIndex:qe})})},`replay-${ue}`),We?.pageBottom?n.jsx("div",{className:"training-page-bottom",children:We.pageBottom}):null]}):null,dn=o.useCallback(()=>{let te;if(_){const Ce=Re,{results:V,correct:se,total:de}=Cu(Re);B2({items:S2(V),category:fu.has(_)?"sentence":"word",trainingType:_,entryPoint:B??"sentence",itemRef:A??null,correct:se,total:de,score:typeof Ce?.score=="number"?Ce.score:null,durationSeconds:Math.max(0,Math.round((Date.now()-H.current)/1e3)),dailyTotal:N??null}),te={correct:se,total:de,attempt:Le.current.length+1,previousAttempts:[...Le.current]}}Ct(),Ue(()=>{typeof b=="function"&&b(te),typeof h=="function"&&h()})},[b,h,_,B,N,A,Re,Ve,Ue]),Qt=o.useCallback(()=>gt(""),[gt]),pn=o.useCallback(()=>{Ue(()=>{typeof h=="function"&&h()})},[h,Ue]),De=n.jsxs("div",{className:`page-popup${ie?" page-popup--closing":""}`,role:"dialog","aria-modal":"true","aria-label":Bn,children:[n.jsxs("div",{ref:$e,className:`page-popup__panel ${Ze?"":"page-popup__panel--measuring"} ${Te==="center"?"page-popup__panel--center":Te==="top"?"page-popup__panel--top":""}`,children:[n.jsx(au,{title:Xt,subtitle:E?R.subtitle||R.label:Array.isArray(s)?s.join(" / "):void 0,desc:E?void 0:r,depth:E?R.depth:s,icon:E?R.icon:i,wrapperStyle:E?R.wrapperStyle:l,iconTooltip:E?R.iconTooltip:c,progressMax:st,progressIndex:qe,pageIndex:qe,pageCount:st,onBack:pn,onClose:pn}),n.jsx("div",{className:"page-popup__scroll",children:n.jsx("div",{className:`page-popup__content ${Te==="center"?"page-popup__content--center":"page-popup__content--top"}${e.contentFull?" page-popup__content--full":""}`,children:D?Tt:E?Jt:typeof f=="function"?f({registerOnNext:Ie,registerOnResult:rt,panelRef:$e,setResultOverlay:Ve}):f})}),n.jsx(nu,{onSettings:C,onNext:cn,onResult:on,useNoiseSettingBtn:!!(E?R.useNoiseSetting??!0:w),stepIndex:_t,stepCount:kt,pageIndex:qe,pageCount:st,resultOpen:!!(Re&&!Re.isEmpty)})]}),Re&&!Re.isEmpty&&(S??k3)({score:Re.score,results:Re.results||Re.answers||[],contextsLength:Re.results?Re.results.length:Re.answers?Re.answers.length:0,onReplay:()=>{if(H.current=Date.now(),Re!==Mn){const{correct:te,total:Ce}=Cu(Re);Le.current.push({correct:te,total:Ce})}if(Ct(),Ae(te=>te+1),E){if(Je(lr()),typeof t?.onReplay=="function")try{t.onReplay()}catch{}return}if(D){Je(lr());return}try{const te=$e.current&&$e.current._childOnResult;typeof te=="function"&&te({replay:!0})}catch{}},onClose:dn,pending:Re===Mn}),Re?.isEmpty&&n.jsx("div",{className:"page-popup page-popup--result-empty",role:"dialog","aria-modal":"true","aria-label":j("training.result.eyebrow","\uD6C8\uB828 \uC644\uB8CC"),children:n.jsxs("div",{className:"page-popup__panel page-popup__panel--center",children:[n.jsx("div",{className:"page-popup__scroll",children:n.jsx("div",{className:`page-popup__content page-popup__content--center${e.contentFull?" page-popup__content--full":""}`,children:n.jsx("div",{className:"page-popup__empty",children:j("training.result.eyebrow","\uD6C8\uB828 \uC644\uB8CC")})})}),n.jsx("div",{className:"page-popup__bottom",children:n.jsx(ce,{htmlType:"button",variant:"main",size:48,onClick:dn,label:j("training.result.done","\uC644\uB8CC")})})]})}),n.jsx(ea,{message:zt,position:"top",onClose:Qt})]}),Fe=n.jsx(jo.Provider,{value:Oe,children:De});return typeof document<"u"&&document.body?Ut.createPortal(Fe,document.body):Fe}const Ln=A3;Ln.Page=ir,Ln.ListenStep=lu,Ln.ConfirmStep=cu,Ln.ConfirmWithTextStep=uu,Ln.OrderListStep=du,Ln.CardStep=pu,Ln.CardOrderStep=b3;function B3({label:e,homonum:t}){const a=Gn()?.(e,t)??"",{imgRef:r,loading:s,hasImage:i,onLoad:l,onError:c}=yo(a);return i?n.jsxs("div",{className:"tooltip-word-image__cell",children:[s&&n.jsx("div",{className:"tooltip-word-image__spinner"}),n.jsx("img",{ref:r,src:a,alt:e,draggable:!1,style:{opacity:s?0:1},onLoad:l,onError:c})]}):n.jsx("div",{className:"tooltip-word-image__cell tooltip-word-image__cell--text h3",children:n.jsx("span",{children:e})})}function gu({words:e,anchorRect:t}){const a=o.useRef(null),[r,s]=o.useState(null);return o.useLayoutEffect(()=>{if(!t||!a.current)return;const{offsetWidth:i,offsetHeight:l}=a.current,c=window.innerWidth;let d=t.left+t.width/2-i/2,u=t.top-l-8;u<8&&(u=t.bottom+8),d=Math.max(8,Math.min(d,c-i-8)),s({left:d,top:u})},[t]),!t||e.length===0?null:Ut.createPortal(n.jsx("div",{ref:a,className:"tooltip-word-image",style:{visibility:r?"visible":"hidden",left:r?.left??0,top:r?.top??-9999},children:n.jsx("div",{className:"tooltip-word-image__cells",children:e.map(i=>n.jsx(B3,{label:i.label,homonum:i.homonum},`${i.label}_${i.homonum??1}`))})}),document.body)}const N3=new Intl.Collator("ko");function S3({titleIcon:e,resultCount:t,resultUnit:a,searchQuery:r,items:s,groups:i,selected:l=[],onSelect:c,maxSelect:d,onClearSelection:u,onPrint:p,onPrintEmpty:m,className:h,emptyHint:b,sectionType:v="page",disc:C,notice:w}){const{t:f,i18n:y}=ve.useTranslation(),x=y.language?.startsWith("ko")??!1,{anchorRect:g,openAt:k,close:_}=ya(),[B,N]=o.useState(null),A=o.useCallback(()=>{_(),N(null)},[_]);rb(A,!!B);const S=(r??"").trim(),O=/^[^,[\]\s]+$/.test(S)?S:"",H=O.length>0,j=r===void 0&&t===void 0,q=H?"match":j?"original":"ganada",[E,M]=o.useState(()=>q),[R,G]=o.useState("50"),[X,U]=o.useState(1),[W,Y]=o.useState(H);W!==H&&(Y(H),M(q));const L=E==="match"&&!H||E==="original"&&!j?q:E,D=o.useMemo(()=>[...H?[{value:"match",label:f("wordSearch.sort.match",{defaultValue:"\uC2DC\uC791 \uC6B0\uC120"})}]:[],...j?[{value:"original",label:f("wordSearch.sort.original",{defaultValue:"\uBC1B\uC740 \uC21C\uC11C"})}]:[],{value:"ganada",label:f("wordSearch.sort.ganada",{defaultValue:"\uAC00\uB098\uB2E4\uC21C \u2191"})},{value:"ganada_desc",label:f("wordSearch.sort.ganadaDesc",{defaultValue:"\uAC00\uB098\uB2E4\uC21C \u2193"})},{value:"syllable",label:f("wordSearch.sort.syllable",{defaultValue:"\uC74C\uC808 \uC218 \u2191"})},{value:"syllable_desc",label:f("wordSearch.sort.syllableDesc",{defaultValue:"\uC74C\uC808 \uC218 \u2193"})},{value:"grade",label:f("wordSearch.sort.grade",{defaultValue:"\uB4F1\uAE09\uC21C \u2191"})},{value:"grade_desc",label:f("wordSearch.sort.gradeDesc",{defaultValue:"\uB4F1\uAE09\uC21C \u2193"})}],[f,H,j]),P=o.useMemo(()=>["10","25","50","100"].map(fe=>({value:fe,label:f("wordSearch.pageSize",{count:Number(fe),defaultValue:`${fe}\uAC1C\uC529 \uBCF4\uAE30`})})),[f]),I=fe=>fe.words?.[0],F=o.useMemo(()=>{const fe=[...O].length,xe=d2(O),Ee=new Map;return Oe=>{let $e=Ee.get(Oe);return $e===void 0&&($e=xe((Oe.words?.[0]?.label??"").slice(0,fe))?0:1,Ee.set(Oe,$e)),$e}},[O]),$=o.useCallback((fe,xe)=>{const Ee=ue=>I(ue)?.label??"",Oe=ue=>I(ue)?.syllables??[...Ee(ue)].length,$e=ue=>(ue.words??[]).reduce((Ae,Le)=>{const Te=parseInt(Le.grade??"",10);return Number.isFinite(Te)&&Te<Ae?Te:Ae},999);switch(L){case"match":return F(fe)-F(xe)||N3.compare(Ee(fe),Ee(xe));case"ganada":return Ee(fe).localeCompare(Ee(xe),"ko");case"ganada_desc":return Ee(xe).localeCompare(Ee(fe),"ko");case"syllable":return Oe(fe)-Oe(xe)||Ee(fe).localeCompare(Ee(xe),"ko");case"syllable_desc":return Oe(xe)-Oe(fe)||Ee(fe).localeCompare(Ee(xe),"ko");case"grade":return $e(fe)-$e(xe)||Ee(fe).localeCompare(Ee(xe),"ko");case"grade_desc":return $e(xe)-$e(fe)||Ee(fe).localeCompare(Ee(xe),"ko");default:return 0}},[L,F]),J=o.useMemo(()=>s.slice().sort($),[s,$]),Z=Number(R)||10,K=o.useMemo(()=>(i??[]).flatMap(fe=>fe.items.slice().sort($).map(xe=>({item:xe,label:fe.label}))),[i,$]),ae=i?K.length:J.length,ye=Math.max(1,Math.ceil(ae/Z)),oe=Math.min(X,ye),le=o.useMemo(()=>J.slice((oe-1)*Z,oe*Z),[J,oe,Z]),z=o.useMemo(()=>{if(!i)return null;const fe=K.slice((oe-1)*Z,oe*Z),xe=new Map;for(const{item:Ee,label:Oe}of fe)xe.has(Oe)||xe.set(Oe,[]),xe.get(Oe).push(Ee);return[...xe.entries()].map(([Ee,Oe])=>({label:Ee,items:Oe}))},[i,K,oe,Z]);o.useEffect(()=>{U(1)},[E,R,ae,r]);const re=ae>0?n.jsxs("div",{className:"word-search-result-block__toolbar",children:[n.jsx(rn,{size:40,options:D,value:L,onChange:M,ariaLabel:f("wordSearch.sort.aria",{defaultValue:"\uC815\uB82C"})}),n.jsx(rn,{size:40,options:P,value:R,onChange:G,ariaLabel:f("wordSearch.pageSizeAria",{defaultValue:"\uD398\uC774\uC9C0 \uD06C\uAE30"})}),n.jsx(Ya,{page:oe,totalPages:ye,onChange:U})]}):void 0,pe=fe=>{c&&c(fe)},_e=t!==void 0&&a?n.jsxs(n.Fragment,{children:[f("wordSearch.resultTitlePrefix","\uCD1D "),n.jsx("span",{style:{color:"var(--color-main)"},children:t}),f("wordSearch.resultTitleSuffix",{unit:x?y2(a):a})]}):void 0,be=t!==void 0&&t>0&&d!==void 0&&a?f("wordSearch.resultDisc",{unit:x?x2(a):a,max:d,selected:l.length}):void 0,Ne=C??(w?n.jsxs(n.Fragment,{children:[n.jsx("span",{className:"word-search-result-block__notice",children:w}),be?n.jsx("span",{className:"word-search-result-block__disc",children:be}):null]}):be);return n.jsxs(na,{type:v,icon:e,title:_e,action:re,disc:Ne,className:Se("word-search-result-block",h),children:[n.jsxs("div",{className:"word-search-result-block__inner",children:[(i?i.length===0:s.length===0)&&n.jsxs("div",{className:"word-search-result-block__empty-wrap",children:[n.jsx("p",{className:"word-search-result-block__empty body-3",children:f("wordSearch.emptyResult","\uAC80\uC0C9 \uACB0\uACFC\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4.")}),b&&n.jsx("p",{className:"word-search-result-block__empty-hint body-3",children:b})]}),i?(z??[]).map(fe=>n.jsx("div",{className:"word-search-result-block__group",children:n.jsx("div",{className:"word-search-result-block__items",children:fe.items.map(xe=>{const Ee=l.includes(xe.id);return n.jsx("div",{onMouseEnter:Oe=>{k(Oe.currentTarget),N(xe.words??[])},onMouseLeave:A,children:n.jsx(ce,{htmlType:"button",size:"word",align:"grid",label:(xe.words??[]).map(Oe=>Oe.label),subLabel:(xe.words??[]).some(Oe=>Oe.subLabel)?(xe.words??[]).map(Oe=>Oe.subLabel):void 0,selected:Ee,onClick:()=>pe(xe.id),minWidth:200})},xe.id)})})},fe.label)):n.jsx("div",{className:"word-search-result-block__items",children:le.map(fe=>{const xe=l.includes(fe.id);return n.jsx("div",{onMouseEnter:Ee=>{k(Ee.currentTarget),N(fe.words??[])},onMouseLeave:A,children:n.jsx(ce,{htmlType:"button",size:"word",align:"grid",label:(fe.words??[]).map(Ee=>Ee.label),subLabel:(fe.words??[]).some(Ee=>Ee.subLabel)?(fe.words??[]).map(Ee=>Ee.subLabel):void 0,selected:xe,onClick:()=>pe(fe.id),minWidth:200})},fe.id)})}),B&&g&&n.jsx(gu,{words:B,anchorRect:g})]}),ye>1&&n.jsx("div",{className:"word-search-result-block__pagination-bottom",children:n.jsx(Ya,{page:oe,totalPages:ye,onChange:U})}),(u||p)&&n.jsxs("div",{className:"word-search-result-block__actions",children:[u&&n.jsx(ce,{htmlType:"button",size:"56",type:"bar",label:f("common.resetSelection","\uC120\uD0DD \uCD08\uAE30\uD654"),selected:!1,disabled:l.length===0,onClick:l.length===0?void 0:u}),p&&n.jsx("div",{onClick:l.length===0?m:void 0,children:n.jsx(ce,{htmlType:"button",size:"56",type:"bar",variant:"main",label:f("wordTable.title","\uB2E8\uC5B4 \uD45C \uB9CC\uB4E4\uAE30"),disabled:l.length===0,onClick:l.length===0?void 0:p})})]})]})}function D3(e,t){return t.map(a=>{const r=typeof a=="string"?a:a.label,s=typeof a=="string"?void 0:a.displayLabel;return{label:r,value:e[r]??"",displayLabel:s}})}function E3({sections:e,selectedList:t,count:a,onCountChange:r,maxCount:s=4,minCount:i=1,combinationSections:l,combinationSectionsForSlot:c,onSelect:d,placeholder:u="-",className:p,title:m,titleIcon:h,disc:b,showInfoButton:v=!0,onClearPhoneme:C,onSearch:w,onSearchEmpty:f,searchDisabled:y=!1,searchLabel:x,searchChecking:g=!1,pairMode:k=!1,sectionType:_="page",beforeSearchContent:B,beforeContent:N,afterContent:A,hideCountControl:S=!1,ordinal:O=!1}){const{t:H}=ve.useTranslation(),j=o.useMemo(()=>H("wordPairs.infoNotes",{returnObjects:!0}),[H]),q=o.useMemo(()=>Array.from({length:s-i+1},(I,F)=>{const $=i+F;return{key:String($),label:H("wordPairs.count",{n:$})}}),[H,s,i]),E=o.useMemo(()=>H("wordPairs.ordinals",{returnObjects:!0}),[H]),M=o.useCallback(I=>O?H("wordPairs.phonemeOrdinalLabel",{ordinal:E[I-1]??I}):a===1?H("wordPairs.phonemeSingleLabel","\uC74C\uC808"):H("wordPairs.phonemeN",{n:I}),[O,E,a,H]),R=o.useCallback(I=>O?H("wordPairs.phonemeContrastOrdinalLabel",{ordinal:E[I-1]??I}):a===1?H("wordPairs.phonemeContrastSingleLabel","\uB300\uB9BD \uC74C\uC808"):H("wordPairs.phonemeContrast",{n:I}),[O,E,a,H]),G=o.useCallback((I,F)=>F?n.jsxs(n.Fragment,{children:[I,n.jsx("span",{className:"phoneme-select-block__required",children:"*"})]}):I,[]),{anchorRect:X,toggleAt:U,close:W}=ya(),Y=o.useCallback(I=>r(Number(I)),[r]),L=Yt("(max-width: 767px)"),D=o.useCallback(I=>D3(I,e).map(({label:F,value:$,displayLabel:J})=>{const Z=!!$&&$!=="\uC5C6\uC74C";return n.jsxs("span",{className:Se("phoneme-select-block__cell-jamo-part",$?"":"phoneme-select-block__cell-jamo-part--empty",Z?"":"phoneme-select-block__cell-jamo-part--no-label"),children:[n.jsx("span",{className:`phoneme-select-block__cell-jamo-char h1${$==="\uC5C6\uC74C"?" phoneme-select-block__cell-jamo-char--excluded":""}`,children:$==="\uC5C6\uC74C"?"x":$||u}),Z&&n.jsx("span",{className:"phoneme-select-block__cell-jamo-label caption-2",children:J??F})]},F)}),[e,u]),P=n.jsxs(n.Fragment,{children:[n.jsx("div",{"data-tooltip-ignore":!0,children:n.jsx(ce,{htmlType:"button",size:40,type:L?"dot":void 0,icon:"info",label:L?void 0:H("wordPairs.caution","\uC720\uC758\uC0AC\uD56D"),ariaLabel:H("wordPairs.caution","\uC720\uC758\uC0AC\uD56D"),className:X?"is-selected":void 0,"aria-expanded":!!X,"aria-haspopup":"dialog",onClick:I=>U(I.currentTarget)})}),X&&n.jsx(Fn,{title:H("wordPairs.caution","\uC720\uC758\uC0AC\uD56D"),items:j,anchorRect:X,onClose:W})]});return n.jsxs(na,{type:_,title:m,icon:h,disc:b,action:v?P:void 0,className:Se("phoneme-select-block",p),children:[N,!S&&n.jsx("div",{className:"phoneme-select-block__controls",children:n.jsx(_n,{options:q,value:String(a),onChange:Y,size:40,className:"phoneme-select-block__count-control"})}),n.jsx("div",{className:"phoneme-select-block__cells",children:k?n.jsxs(n.Fragment,{children:[n.jsx("div",{className:"phoneme-select-block__cell-group",children:Array.from({length:a}).map((I,F)=>{const $=t[F*2]??{};return n.jsxs("div",{className:"phoneme-select-block__cell",children:[n.jsx("div",{className:"phoneme-select-block__cell-circle",children:n.jsx("div",{className:"phoneme-select-block__cell-jamo",children:D($)})}),n.jsx("span",{className:"phoneme-select-block__cell-index caption-1",children:M(F+1)})]},F)})}),n.jsx("span",{className:"phoneme-select-block__cell-vs h3",children:H("wordPairs.phonemeSelect.vs","\uB300")}),n.jsx("div",{className:"phoneme-select-block__cell-group",children:Array.from({length:a}).map((I,F)=>{const $=t[F*2+1]??{};return n.jsxs("div",{className:"phoneme-select-block__cell",children:[n.jsx("div",{className:"phoneme-select-block__cell-circle",children:n.jsx("div",{className:"phoneme-select-block__cell-jamo",children:D($)})}),n.jsx("span",{className:"phoneme-select-block__cell-index caption-1",children:R(F+1)})]},F)})})]}):t.map((I,F)=>n.jsxs("div",{className:"phoneme-select-block__cell",children:[n.jsx("div",{className:"phoneme-select-block__cell-circle",children:n.jsx("div",{className:"phoneme-select-block__cell-jamo",children:D(I)})}),n.jsx("span",{className:"phoneme-select-block__cell-index caption-1",children:M(F+1)})]},F))}),(l||c)&&n.jsx("div",{className:"phoneme-select-block__panels",children:n.jsx("div",{className:"phoneme-select-block__detail",children:k?n.jsxs("div",{className:"phoneme-select-block__pair-panels",children:[n.jsx("div",{className:"phoneme-select-block__panel-group",children:Array.from({length:a}).map((I,F)=>{const $=t[F*2]??{};return n.jsx(kn,{title:G(M(F+1),F===0),sections:c?c($,F*2):l,selected:$,onSelect:d?.(F*2),align:"newline"},F)})}),n.jsx("div",{className:"phoneme-select-block__panel-group",children:Array.from({length:a}).map((I,F)=>{const $=t[F*2+1]??{};return n.jsx(kn,{title:R(F+1),sections:c?c($,F*2+1):l,selected:$,onSelect:d?.(F*2+1),align:"newline"},F)})})]}):t.map((I,F)=>n.jsx(kn,{title:G(M(F+1),F===0),sections:c?c(I,F):l,selected:I,onSelect:d?.(F),align:"newline"},F))})}),B&&n.jsx("div",{className:"phoneme-select-block__before-search",children:B}),(C||w||g)&&(()=>{const I=t.every(F=>Object.entries(F).every(([$,J])=>!J||$==="\uC885\uC131"&&J==="\uC5C6\uC74C"));return n.jsxs("div",{className:"phoneme-select-block__search-row",onClick:I?f:void 0,children:[C&&n.jsx(ce,{htmlType:"button",size:"56",type:"bar",label:H("wordPairs.resetOptions","\uAC80\uC0C9 \uC635\uC158 \uCD08\uAE30\uD654"),selected:!1,disabled:I,onClick:I?void 0:C}),w?n.jsx(ce,{htmlType:"button",size:"56",type:"bar",variant:"main",icon:g?n.jsx("span",{className:"phoneme-select-block__spinner","aria-hidden":"true"}):void 0,label:x??H("wordSearch.searchButton","\uAC80\uC0C9\uD558\uAE30"),disabled:I||y||g,onDisabledClick:g?()=>{}:void 0,"aria-busy":g||void 0,onClick:w}):g?n.jsxs("div",{className:"phoneme-select-block__checking","aria-busy":"true",children:[n.jsx("div",{className:"phoneme-select-block__spinner"}),n.jsx("span",{className:"button-1 phoneme-select-block__checking-label",children:x??H("wordSearch.searchButton","\uAC80\uC0C9\uD558\uAE30")})]}):null]})})(),A]})}function j3({title:e,sections:t,selected:a,onSelect:r,className:s}){const{t:i}=ve.useTranslation();return n.jsx(kn,{className:s,title:e??i("wordSearch.filterTitle","\uB2E8\uC5B4 \uAC80\uC0C9 \uC124\uC815"),sections:t,selected:a,onSelect:r,align:"inline"})}function T3({title:e,headerAction:t,sections:a,selected:r,onSelect:s,className:i}){const{t:l}=ve.useTranslation();return a.length===0?null:n.jsx(kn,{className:i,title:e??l("training.filter.phonemeGroup",{defaultValue:"\uD6C8\uB828 \uC74C\uC808"}),headerAction:t,sections:a,selected:r,onSelect:s,align:"newline"})}function M3({title:e,mode:t,onModeChange:a,matchMode:r,onMatchModeChange:s,positionCount:i,onPositionCountChange:l,inputMode:c,onInputModeChange:d,className:u}){const{t:p}=ve.useTranslation(),m={searchMode:p("wordPairs.filter.searchModeLabel","\uB300\uB9BD \uBC29\uC2DD"),phonemeOrder:p("wordPairs.filter.phonemeOrder","\uC785\uB825 \uC74C\uC808 \uC704\uCE58"),count:p("wordPairs.filter.countLabel","\uC785\uB825 \uC74C\uC808 \uAC2F\uC218"),inputMode:p("wordPairs.filter.inputModeLabel","\uC785\uB825 \uBC29\uC2DD"),orderAny:p("wordPairs.filter.orderAny","\uBB34\uAD00"),orderMatch:p("wordPairs.filter.orderMatch","\uC77C\uCE58"),include:p("wordPairs.mode.include","\uC74C\uC18C \uD3EC\uD568"),pick:p("wordPairs.mode.pick","\uC74C\uC18C \uB300\uB9BD"),explicit:p("wordPairs.mode.contrast","\uC74C\uC18C \uB300\uB9BD \uC9C0\uC815"),charInput:p("wordPairs.input.char","\uAE00\uC790 \uC120\uD0DD"),pronInput:p("wordPairs.input.pron","\uBC1C\uC74C \uC120\uD0DD")},h=w=>p("wordPairs.count",{n:w}),b=[{label:m.searchMode,items:[m.include,m.pick,m.explicit],display:"segmented",labelAction:n.jsx(Aa,{title:p("wordPairs.mode.infoTitle","\uB300\uB9BD \uBC29\uC2DD"),items:[p("wordPairs.mode.infoInclude","\uC74C\uC18C \uD3EC\uD568 \u2014 \uC120\uD0DD\uD55C \uC74C\uC18C\uAC00 \uBAA8\uB450 \uB4E4\uC5B4\uAC04 \uB2E8\uC5B4\uC640 \uADF8 \uB300\uB9BD\uC30D\uC744 \uCC3E\uC544\uC694."),p("wordPairs.mode.infoPick","\uC74C\uC18C \uB300\uB9BD \u2014 \uC120\uD0DD\uD55C \uC74C\uC18C\uAC00 \uB300\uB9BD\uC30D \uB450 \uB2E8\uC5B4\uC758 \uC2E4\uC81C \uCC28\uC774\uC810\uC77C \uB54C\uB9CC \uB9E4\uCE6D\uB3FC\uC694."),p("wordPairs.mode.infoContrast","\uC74C\uC18C \uB300\uB9BD \uC9C0\uC815 \u2014 \uAE30\uC900 \uB2E8\uC5B4\uC640 \uB300\uB9BD \uB2E8\uC5B4\uC758 \uC74C\uC18C\uB97C \uAC01\uAC01 \uC9C1\uC811 \uC120\uD0DD\uD574 \uB300\uB9BD\uC30D\uC744 \uCC3E\uC544\uC694.")]})},{label:m.phonemeOrder,items:[m.orderAny,m.orderMatch],display:"segmented",labelAction:n.jsx(Aa,{items:p("wordPairs.filter.phonemeOrderInfo",{returnObjects:!0})})},{label:m.count,items:[h(1),h(2)],display:"segmented"},{label:m.inputMode,items:[m.charInput,m.pronInput],display:"segmented",labelAction:n.jsx(Aa,{title:p("wordPairs.input.infoTitle","\uC785\uB825 \uBC29\uC2DD"),items:[p("wordPairs.input.infoChar","\uAE00\uC790 \uC120\uD0DD \u2014 \uC120\uD0DD\uD55C \uC74C\uC18C\uB85C \uB2E8\uC5B4(\uAE00\uC790 \uAE30\uC900)\uB97C \uCC3E\uC740 \uD6C4, \uB2E8\uC5B4\uC758 \uD45C\uC900 \uBC1C\uC74C \uB300\uB9BD\uC30D\uC744 \uCC3E\uC2B5\uB2C8\uB2E4."),p("wordPairs.input.infoPron","\uBC1C\uC74C \uC120\uD0DD \u2014 \uC120\uD0DD\uD55C \uC74C\uC18C\uB85C \uD45C\uC900 \uBC1C\uC74C \uB300\uB9BD\uC30D\uC744 \uCC3E\uC2B5\uB2C8\uB2E4.")]})}],v={[m.searchMode]:t==="explicit"?m.explicit:t==="pick"?m.pick:m.include,[m.phonemeOrder]:r==="ordered"?m.orderMatch:m.orderAny,[m.count]:h(i),[m.inputMode]:c==="phoneme"?m.pronInput:m.charInput},C=(w,f)=>{f===m.searchMode?a(w===m.explicit?"explicit":w===m.pick?"pick":"include"):f===m.phonemeOrder?s(w===m.orderMatch?"ordered":"unordered"):f===m.count?l(w===h(2)?2:1):f===m.inputMode&&d(w===m.pronInput?"phoneme":"word")};return n.jsx(kn,{className:u,title:e??p("wordPairs.filter.searchOptionsTitle","\uB300\uB9BD \uC124\uC815"),sections:b,selected:v,onSelect:C,align:"inline"})}function L3(e){const{title:t,items:a,columns:r,gridTemplateColumns:s,mobileGridTemplateColumns:i,searchPlaceholder:l,searchFn:c,defaultSortKey:d,defaultSortAsc:u=!0,selectedId:p,selectedIds:m,onSelect:h,onClose:b,pageSizeOptions:v=[10,25,50,100],initialPageSize:C,emptyText:w,countLabel:f,topContent:y,className:x=""}=e,{t:g}=ve.useTranslation(),k=l??g("common.search","\uAC80\uC0C9"),_=w??g("common.emptyList","\uD56D\uBAA9\uC774 \uC5C6\uC2B5\uB2C8\uB2E4."),[B,N]=o.useState(""),[A,S]=o.useState(d??r[0]?.key??""),[O,H]=o.useState(u),[j,q]=o.useState(String(C??v[0]??10)),[E,M]=o.useState(1);o.useEffect(()=>{M(1)},[B,j]);const R=c!==null,G=o.useCallback(($,J)=>{if(!J)return!0;const Z=J.toLowerCase();return r.some(K=>{const ae=$[K.key];return ae==null?!1:String(ae).toLowerCase().includes(Z)})},[r]),X=c??G,U=o.useMemo(()=>{const $=R?a.filter(J=>X(J,B)):a;return A?[...$].sort((J,Z)=>{const K=J[A],ae=Z[A];return K===ae?0:Kr(K,ae,O)}):$},[a,B,A,O,R,X]),W=Math.max(1,Math.ceil(U.length/Number(j)));E>W&&M(W);const Y=Math.min(E,W),L=U.slice((Y-1)*Number(j),Y*Number(j)),D=o.useCallback($=>{A===$?H(J=>!J):(S($),H(!0)),M(1)},[A]),P=o.useMemo(()=>{if(typeof f=="function"){const $=U.length,J=f($);if(typeof J=="string"){const Z=J.lastIndexOf(String($));if(Z>=0)return{prefix:J.slice(0,Z),suffix:J.slice(Z+String($).length)}}return{label:J}}if(typeof f=="string"&&f.includes("{n}")){const[$,J]=f.split("{n}");return{prefix:$,suffix:J}}return{prefix:g("common.totalCountPrefix","\uCD1D "),suffix:g("common.totalCountSuffix","\uAC1C")}},[f,U.length,g]),I=o.useMemo(()=>r.map($=>({label:$.label,onClick:$.sortable!==!1?()=>D($.key):void 0,className:$.className,sortDir:$.sortable!==!1&&A===$.key?O?"asc":"desc":null})),[r,A,O,D]),F=o.useMemo(()=>v.map($=>({value:String($),label:g("common.pageSizeLabel",{n:$})})),[v,g]);return n.jsxs(jn,{className:`popup-list ${x}`,title:t,onClose:b,children:[y,"label"in P&&n.jsx("p",{className:"toolbar__count body-1",children:P.label}),n.jsx(so,{count:"label"in P?void 0:{value:U.length,prefix:P.prefix,suffix:P.suffix},search:R?{value:B,onChange:N,placeholder:k}:void 0,pageSize:{options:F,value:j,onChange:q},pagination:{page:Y,total:W,onChange:M}}),n.jsx(Co,{size:"medium",gridTemplateColumns:s,mobileGridTemplateColumns:i,resizable:!0,fields:I,items:L,onRowClick:h,renderRow:$=>{const J=m!=null?$.id!=null&&m.has($.id):p!=null&&$.id===p;return r.map(Z=>({content:Z.render?Z.render($):$[Z.key]??"",className:Se(Z.className,J&&"popup-list__row--selected")}))},empty:_})]})}function $3(e){const{title:t,message:a,topContent:r,details:s,children:i,confirmLabel:l,cancelLabel:c,hideCancel:d=!1,extraAction:u,confirmVariant:p="main",confirmDisabled:m=!1,onConfirm:h,closeOnConfirm:b=!0,onClose:v,inline:C,size:w="small",className:f,initialFocus:y="close"}=e,{t:x}=ve.useTranslation(),g=o.useRef(null);o.useEffect(()=>{if(C||y==="close")return;const S=g.current?.closest(".popup-panel"),O=Array.from(S?.querySelectorAll(".popup-footer--buttons button")??[]),H=y==="confirm"?O[O.length-1]:d?void 0:O[u?1:0];H&&!H.disabled&&H.focus()},[]);const k=o.useRef(!1),[_,B]=o.useState(!1),N=S=>{let O=!1;return{close:()=>{O=!0,S()},\uB2EB\uC558\uB098:()=>O}},A=async S=>{if(k.current)return;k.current=!0;const O=typeof document<"u"?document.activeElement:null;B(!0);let H=!1;try{H=await S()}catch(j){typeof console<"u"&&console.error(j)}finally{H||(k.current=!1,B(!1),requestAnimationFrame(()=>{const j=document.activeElement;(!j||j===document.body)&&O?.isConnected&&O.focus()}))}};return n.jsxs(jn,{title:t,onClose:v,closeDisabled:_,inline:C,size:w,className:Se("confirm-popup",r!=null&&"confirm-popup--has-top",f),buttons:[...u?[{label:u.label,variant:u.variant??"default",disabled:u.disabled||_,onClick:async({closeWithAnimation:S})=>{await A(async()=>{const O=N(S);await u.onClick(O.close);const H=u.closeOnClick??!0;return H&&S(),H||O.\uB2EB\uC558\uB098()})}}]:[],...d?[]:[{label:c??x("common.cancel","\uCDE8\uC18C"),variant:"default",disabled:_,onClick:({closeWithAnimation:S})=>S()}],{label:l??x("common.confirm","\uD655\uC778"),variant:p,disabled:m||_,onClick:async({closeWithAnimation:S})=>{await A(async()=>{const O=N(S);return await h(O.close),b&&S(),b||O.\uB2EB\uC558\uB098()})}}],children:[r!=null&&n.jsx("div",{className:"confirm-popup__top",children:r}),s&&s.length>0&&n.jsx(sr,{children:s.map((S,O)=>n.jsx(Tn,{label:S.label,children:n.jsx("span",{className:"panel-row__text body-2",children:S.value})},O))}),n.jsx("p",{ref:g,className:"body-2 confirm-popup__message",children:a}),i]})}function R3({onApply:e,onCancel:t}){const{t:a}=ve.useTranslation(),[r,s]=o.useState(""),[i,l]=o.useState(!1),[c,d]=o.useState(null),u=o.useRef(null);o.useEffect(()=>{u.current?.focus()},[]);const p=o.useCallback(async b=>{const v=r.trim();if(v){l(!0),d(null);try{await e(v),b()}catch(C){d(ti(C)),l(!1),requestAnimationFrame(()=>u.current?.focus())}}},[r,e]),m=o.useCallback((b,v)=>{b.key==="Enter"&&!b.nativeEvent.isComposing&&p(v)},[p]),h=b=>{s(b.target.value),d(null)};return n.jsx(jn,{className:"coupon-input-popup",title:a("usage.couponButton","\uCFE0\uD3F0 \uC785\uB825"),size:"small",onClose:t,closeDisabled:i,buttons:[{label:a("common.cancel","\uCDE8\uC18C"),variant:"default",disabled:i,onClick:({closeWithAnimation:b})=>b()},{label:a("coupons.applyButton","\uC801\uC6A9"),variant:"main",disabled:!r.trim()||i,onClick:({closeWithAnimation:b})=>{p(b)}}],children:({closeWithAnimation:b})=>n.jsxs(n.Fragment,{children:[n.jsx("input",{ref:u,className:"coupon-input-popup__input body-2","aria-label":a("coupons.input.label","\uCFE0\uD3F0 \uCF54\uB4DC"),placeholder:a("coupons.input.placeholder","\uCFE0\uD3F0 \uCF54\uB4DC \uC785\uB825"),value:r,onChange:h,onKeyDown:v=>m(v,b),disabled:i,autoComplete:"off",spellCheck:!1}),c&&n.jsx("p",{className:"coupon-input-popup__error caption-1",role:"alert",children:c})]})})}const bu=["var(--color-main)","var(--color-sub)"],P3=2e3;function I3(e,t){if(!t.startsWith("var("))return t;try{const a=t.slice(4,-1).trim();return getComputedStyle(e).getPropertyValue(a).trim()||null}catch{return null}}function Go({active:e=!1,count:t=40,duration:a=2e3,strength:r=1,onComplete:s,trigger:i=0}){const l=o.useMemo(()=>{const C=Math.floor(t/2),w=t-C,f=(y,x)=>Array.from({length:y}).map((g,k)=>{const _=6+Math.random()*12,B=Math.round(Math.min(18,_*Math.min(1.5,1+r*.4))),N=bu[Math.floor(Math.random()*bu.length)],A=Math.random()*300,S=(360+Math.random()*260)*r*1.2,O=(x==="left"?-95+Math.random()*40:-85-Math.random()*40)*Math.PI/180,H=Math.cos(O)*S,j=Math.sin(O)*S*1.35,q=Math.random()*720-360,E=(1200+Math.random()*3e3)*Math.min(1.6,1+r*.3),M=Math.random()>.7?"50%":"3px";return{id:`${x}-${k}`,side:x,size:B,color:N,delay:A,vx:H,vy:j,angularVel:q,life:E,borderRadius:M}});return[...f(C,"left"),...f(w,"right")]},[t,r]),c=o.useRef(null),d=o.useRef({}),u=o.useRef(null),p=o.useRef(s);o.useEffect(()=>{p.current=s},[s]);const m=o.useRef(null),h=o.useRef(null),b=()=>{if(typeof document>"u")return null;let C=document.querySelector("[data-ihab-effect-root]");return C||(C=document.createElement("div"),C.className="app-effect",C.dataset.ihabEffectRoot="",C.style.position="fixed",C.style.inset="0",C.style.pointerEvents="none",C.style.zIndex="99998",document.body.appendChild(C)),C};if(typeof document<"u"&&h.current==null&&(h.current=b()),o.useEffect(()=>{if(!e)return;if(typeof window<"u"&&window.matchMedia?.("(prefers-reduced-motion: reduce)").matches){const W=setTimeout(()=>p.current?.(),0);return()=>clearTimeout(W)}const C=1200,w=performance.now(),f=h.current&&h.current!==document.body?h.current.getBoundingClientRect():null,y=Math.max(60,(window.innerHeight||800)*.05),x=W=>Math.max(40,(W||window.innerWidth)*.02),g=f?.width||window.innerWidth||375,k=f?.height||window.innerHeight||812,_=W=>{const Y=[...W].sort((L,D)=>L-D);return Y[Math.floor(Y.length/2)]||1},B=_(l.map(W=>Math.abs(W.vy))),N=_(l.map(W=>Math.abs(W.vx))),A=Math.sqrt(2*C*(k*.72+y))/B,S=B*A/C,O=g*.5/(N*S),H=(W,Y,L)=>Math.min(L,Math.max(Y,W)),j=H(A,.8,2.4),q=H(O,.7,2.2),E=a>0?a/P3:1,M=l.map(W=>({...W,life:W.life*E,vx:W.vx*q,vy:W.vy*j,startTime:w+W.delay,ended:!1})),R=f?{x:f.left-x(f.width),y:f.top+f.height+y}:{x:-x(window.innerWidth),y:window.innerHeight+y},G=f?{x:f.left+f.width+x(f.width),y:f.top+f.height+y}:{x:window.innerWidth+x(window.innerWidth),y:window.innerHeight+y},X=W=>{let Y=!1;for(const L of M){const D=d.current[L.id];if(!D||!D)continue;if(W<L.startTime){D.style.display="none",Y=!0;continue}if(!L._inited){const oe=L.side==="left"?R.x:G.x,le=L.side==="left"?R.y:G.y;D.style.left=`${oe}px`,D.style.top=`${le}px`,D.style.transform="translate3d(0px, 0px, 0)",D.style.display="block",D.style.zIndex="100000",typeof L.color=="string"&&L.color.startsWith("var(")&&(D.style.background=I3(D,L.color)??"#FF0060"),L._inited=!0}const P=(W-L.startTime)/1e3;if(P<0)continue;const I=L.life/1e3;if(P>=I){D.style.opacity="0",D.style.display="none",L.ended=!0;continue}Y=!0;const F=L.side==="left"?R.x:G.x,$=L.side==="left"?R.y:G.y,J=F+L.vx*P,Z=$+L.vy*P+.5*C*P*P,K=(L.angularVel||0)*P,ae=J-F,ye=Z-$;D.style.transform=`translate3d(${ae}px, ${ye}px, 0) rotate(${K}deg)`,D.style.opacity=`${Math.max(0,1-P/I)}`}Y?u.current=requestAnimationFrame(X):p.current?.()};u.current=requestAnimationFrame(X);const U=setTimeout(()=>{try{if((h.current?h.current.querySelectorAll(".confetti"):document.querySelectorAll(".confetti")).length===0&&!document.querySelector(".party-container")){const W=document.createElement("div");W.className="party-container",W.style.position="fixed",W.style.inset="0",W.style.pointerEvents="none",W.style.overflow="visible",W.style.zIndex="2147483647";for(const Y of l){const L=document.createElement("span");L.className=`confetti confetti--${Y.side}`,L.setAttribute("aria-hidden","true"),L.style.display="none",L.style.position="fixed",L.style.left="0px",L.style.top="0px",L.style.width=`${Y.size}px`,L.style.height=`${Math.max(4,Y.size*.6)}px`,L.style.background=Y.color,L.style.borderRadius=Y.borderRadius,L.style.transform="translate3d(0,0,0)",L.style.opacity="0",W.appendChild(L),d.current[Y.id]=L}(document.body||h.current).appendChild(W),m.current=W}}catch{}},300);return()=>{if(u.current&&cancelAnimationFrame(u.current),clearTimeout(U),m.current){try{m.current.remove()}catch{}m.current=null}}},[e,a,i,l]),!e)return null;const v=n.jsx("div",{className:"party-container",ref:c,children:l.map(C=>n.jsx("span",{"aria-hidden":!0,ref:w=>{d.current[C.id]=w},className:`confetti confetti--${C.side}`,style:{width:`${C.size}px`,height:`${Math.max(4,C.size*.6)}px`,background:C.color,borderRadius:C.borderRadius}},`${C.id}-${i}`))});return typeof document<"u"?Ut.createPortal(v,h.current||document.body):v}const Ko=e=>typeof e=="number"&&Number.isFinite(e)&&e>0?e:void 0;function F3({trigger:e=0,active:t=!1}){const[a,r]=o.useState(null);o.useEffect(()=>{if(typeof window>"u")return;const i=l=>{const c=l.detail??{};r(d=>({n:(d?.n??0)+1,count:Ko(c.count),strength:Ko(c.strength),duration:Ko(c.duration)}))};return window.addEventListener("party:trigger",i),()=>window.removeEventListener("party:trigger",i)},[]);const s=o.useCallback(()=>r(null),[]);return n.jsxs(n.Fragment,{children:[n.jsx(Go,{active:t,trigger:e}),a&&n.jsx(Go,{active:!0,trigger:a.n,count:a.count,strength:a.strength,duration:a.duration,onComplete:s})]})}function O3({title:e,sub:t,rightAction:a,titleAction:r,badge:s,badgeVariant:i="default",documentTitle:l,onBack:c,backLabel:d,wrap:u=!1}){const{t:p}=ve.useTranslation();Vg(typeof e=="string"?e:l??null);const m=d??p("common.back","\uB4A4\uB85C");return n.jsxs("div",{className:u?"page-title page-title--wrap":"page-title",children:[n.jsxs("div",{className:"page-title__main",children:[n.jsxs("div",{className:"page-title__title-row",children:[c&&n.jsx(ce,{htmlType:"button",className:"page-title__back",size:48,type:"dot",icon:"chevron-left",iconSize:"large",useBorder:!1,iconColor:"var(--color-text-primary)",ariaLabel:m,showTooltipInfo:m,onClick:c}),n.jsx("h1",{className:"page-title__title h1",children:e}),s&&n.jsx("div",{className:"page-title__badge",children:n.jsx(ht,{label:s,size:"small",variant:i,fill:"outline"})}),r?n.jsx("div",{className:"page-title__title-action",children:r}):null]}),t&&n.jsx("p",{className:"page-title__sub body-2",children:t})]}),a?n.jsx("div",{className:"page-title__action",children:a}):null]})}function H3(e){return e??""}const yu=o.createContext({words:[],loading:!1});function z3(){return o.useContext(yu)}function V3({words:e,loading:t,error:a,statusMessage:r,localVersion:s,remoteVersion:i,progress:l,clearAndRefetch:c,checkRemoteVersion:d,children:u}){return n.jsx(yu.Provider,{value:{words:e,loading:t,error:a,statusMessage:r,localVersion:s,remoteVersion:i,progress:l,clearAndRefetch:c,checkRemoteVersion:d},children:u})}function W3({items:e,actions:t,columns:a,flat:r=!1,className:s,style:i}){const l=a??e.length;return n.jsx("section",{className:Se("summary-strip",r&&"summary-strip--flat",s),style:{"--summary-strip-cols":String(l),...i},children:n.jsxs("div",{className:"summary-strip__row",children:[n.jsx("div",{className:"summary-strip__items",children:e.map((c,d)=>n.jsxs("div",{className:"summary-strip__item",children:[n.jsx("p",{className:"summary-strip__label caption-1",children:c.label}),n.jsx("p",{className:"summary-strip__value body-3b",title:typeof c.value=="string"||typeof c.value=="number"?String(c.value):void 0,children:c.value})]},d))}),t&&n.jsx("div",{className:"summary-strip__actions",children:t})]})})}const q3=(e,t)=>`${e} / ${t}`;function U3({blocks:e,sectionTitles:t,logo:a,footer:r,pageLabel:s=q3,pageWidth:i,pageHeight:l,margin:c,className:d,style:u}){const{t:p}=ve.useTranslation(),m=o.useRef(null),h=o.useRef(null),b=o.useRef(null),v=o.useRef(null),[C,w]=o.useState(null),[f,y]=o.useState(!1);o.useEffect(()=>{const E=m.current;if(!E)return;const M=()=>y(E.scrollWidth>E.clientWidth+1);if(M(),typeof ResizeObserver>"u")return;const R=new ResizeObserver(M);return R.observe(E),()=>R.disconnect()},[C]);const x=e.map(E=>`${E.id}\0${E.section??""}\0${E.group??""}`).join(""),g=C&&C.shape===x?C.pages:null,[k,_]=o.useState(0);o.useEffect(()=>{const E=v.current;if(!E||typeof ResizeObserver>"u")return;const M=new ResizeObserver(()=>_(E.offsetHeight));return M.observe(E),()=>M.disconnect()},[]);const[B,N]=o.useState(0);o.useEffect(()=>{const E=h.current;if(!E||typeof ResizeObserver>"u")return;let M=null;const R=typeof requestAnimationFrame=="function"?U=>requestAnimationFrame(U):U=>setTimeout(U,16),G=typeof cancelAnimationFrame=="function"?cancelAnimationFrame:U=>clearTimeout(U),X=new ResizeObserver(()=>{M==null&&(M=R(()=>{M=null,N(U=>U+1)}))});return Array.from(E.children).forEach(U=>X.observe(U)),()=>{X.disconnect(),M!=null&&G(M)}},[x]),o.useLayoutEffect(()=>{const E=h.current,M=v.current;if(!E||!M)return;const R=I=>I.getBoundingClientRect().height||I.offsetHeight,G=new Map;b.current?.querySelectorAll("[data-chrome-section]").forEach(I=>{G.set(I.dataset.chromeSection??"",R(I))});const X=I=>R(M)-(G.get(I??"")??0),U=Array.from(E.children).map(I=>R(I)),W=[];e.forEach((I,F)=>{const $=W[W.length-1],J=$?e[$[0]]:void 0;J&&I.group!=null&&J.group===I.group&&J.section===I.section?$.push(F):W.push([F])});const Y=[];let L=[],D=0;const P=()=>{L.length&&Y.push(L),L=[],D=0};W.forEach(I=>{const F=I.reduce((J,Z)=>J+U[Z],0),$=X(e[I[0]].section);L.length&&e[L[0]].section!==e[I[0]].section&&P(),F>$?I.forEach(J=>{L.length&&D+U[J]>$+.01&&P(),L.push(J),D+=U[J]}):(L.length&&D+F>$+.01&&P(),I.forEach(J=>L.push(J)),D+=F)}),P(),w(I=>I&&I.shape===x&&JSON.stringify(I.pages)===JSON.stringify(Y)?I:{shape:x,pages:Y})},[x,k,i,l,c,B]);const A=no,S=A,O=r??n.jsxs(n.Fragment,{children:[n.jsx("img",{src:S,alt:"IHAB",className:"report-doc__logo"}),"\xA9 IHAB, Inc. All rights reserved."]}),H=(E,M,R)=>({header:n.jsxs("div",{className:"report-doc__header",children:[n.jsx("h2",{className:"report-doc__title h3b",children:R!=null&&t?.[R]||null}),a]}),footer:n.jsxs("div",{className:"report-doc__footer caption-1",children:[n.jsx("span",{className:"report-doc__footer-left",children:O}),n.jsx("span",{className:"report-doc__page-no",children:s(E,M)})]})}),j=Array.from(new Set(e.map(E=>E.section??""))),q={...i?{"--report-page-w":i}:null,...l?{"--report-page-h":l}:null,...c?{"--report-margin":c}:null,...u};return n.jsxs("div",{ref:m,className:Se("report-doc",d),style:q,tabIndex:f?0:void 0,role:f?"group":void 0,"aria-label":f?p("report.previewRegion","\uBCF4\uACE0\uC11C \uBBF8\uB9AC\uBCF4\uAE30"):void 0,children:[n.jsxs("div",{className:"report-doc__measure","aria-hidden":!0,children:[n.jsx("div",{ref:v,className:"report-doc__ruler"}),n.jsx("div",{ref:b,children:j.map(E=>{const M=H(1,1,E||void 0);return n.jsxs("div",{"data-chrome-section":E,children:[M.header,M.footer]},E)})}),n.jsx("div",{ref:h,className:"report-doc__measure-blocks",children:e.map(E=>n.jsx("div",{children:E.content},E.id))})]}),g&&n.jsx("div",{className:"report-doc__pages",children:g.map((E,M)=>{const{header:R,footer:G}=H(M+1,g.length,e[E[0]].section);return n.jsxs("section",{className:"report-doc__page",children:[R,E.map(X=>n.jsx("div",{children:e[X].content},e[X].id)),G]},M)})})]})}function G3({title:e,fields:t,columns:a=4,className:r,style:s}){return n.jsxs("div",{className:Se("report-info",r),style:{"--report-info-cols":String(a),...s},children:[e&&n.jsx("p",{className:"report-info__title h5b",children:e}),n.jsx("div",{className:"report-info__grid",children:t.map((i,l)=>n.jsxs("div",{className:"report-info__field body-2",children:[n.jsx("span",{className:"report-info__label body-3",children:i.label}),n.jsx("span",{className:"report-info__value",children:i.value})]},l))})]})}const Wn=new Map;let cr=null;const K3=12;function Y3(e){for(let t=e.parentElement;t&&t!==document.body;t=t.parentElement){const a=window.getComputedStyle(t);if(a.transform&&a.transform!=="none"||a.filter&&a.filter!=="none"||a.perspective&&a.perspective!=="none"||/paint|layout|strict|content/.test(a.contain||""))return t}return document}function ur(){const e=new Map;for(const t of Wn.keys()){if(!t.isConnected)continue;const a=Y3(t),r=e.get(a)??[];r.push(t),e.set(a,r)}for(const t of e.values()){t.sort((r,s)=>r.compareDocumentPosition(s)&Node.DOCUMENT_POSITION_FOLLOWING?-1:1);let a=0;for(const r of t){a>0?r.style.setProperty("--update-alert-stack-offset",`${a}px`):r.style.removeProperty("--update-alert-stack-offset");const s=r.getBoundingClientRect().height;s>0&&(a+=s+K3)}}}function Z3(e){return typeof window>"u"?()=>{}:(Wn.set(e,(Wn.get(e)??0)+1),Wn.get(e)===1&&typeof ResizeObserver<"u"&&(cr??(cr=new ResizeObserver(()=>ur())),cr.observe(e)),ur(),()=>{const t=(Wn.get(e)??1)-1;if(t>0){Wn.set(e,t),ur();return}Wn.delete(e),cr?.unobserve(e),e.style.removeProperty("--update-alert-stack-offset"),ur()})}function X3({title:e,message:t,actionLabel:a,onAction:r,icon:s,onClose:i,className:l=""}){const{t:c}=ve.useTranslation(),d=a??c("common.update","\uC5C5\uB370\uC774\uD2B8"),u=o.useRef(null),p=o.useRef(!1);return o.useLayoutEffect(()=>{const m=u.current,h=m?.parentElement?.closest(".update-alert-stack")??m,b=h?Z3(h):null;return()=>{b?.(),p.current&&m&&m.contains(document.activeElement)&&Va(m)}},[]),n.jsxs("div",{ref:u,className:Se("update-alert",l),role:"alert",children:[i&&n.jsx("button",{type:"button",className:"update-alert__close",onClick:()=>{p.current=!0,i()},"aria-label":c("common.close","\uB2EB\uAE30"),children:"\xD7"}),n.jsxs("div",{className:"update-alert__top",children:[n.jsx("div",{className:"update-alert__icon",children:s??n.jsx(ls,{size:20,strokeWidth:2})}),n.jsxs("div",{className:"update-alert__body",children:[n.jsx("div",{className:"update-alert__title h4",children:e}),n.jsx("div",{className:"update-alert__message body-3",children:t})]})]}),r&&n.jsx(ce,{htmlType:"button",size:32,variant:"main",shape:"pill",className:"update-alert__action",onClick:r,children:d})]})}function J3({title:e,description:t,topActions:a,children:r,footerLeft:s,footerRight:i,onClick:l,draggable:c,onDragStart:d,onDragEnd:u,className:p}){const m=s!=null||i!=null,h=r!=null&&r!==!1,b=o.useCallback(v=>{l&&v.target===v.currentTarget&&(v.key==="Enter"||v.key===" ")&&(v.preventDefault(),l())},[l]);return n.jsxs("div",{className:Se("training-card",l?"training-card--clickable":"",p),onClick:l,onKeyDown:l?b:void 0,role:l?"button":void 0,tabIndex:l?0:void 0,draggable:c,onDragStart:d,onDragEnd:u,children:[n.jsxs("div",{className:"training-card__header",children:[n.jsxs("div",{className:"training-card__title-row",children:[typeof e=="string"?n.jsx("h3",{className:"training-card__title h4",children:e}):e,a!=null&&n.jsx("div",{className:"training-card__top-actions",onClick:v=>v.stopPropagation(),children:a})]}),t!=null?typeof t=="string"?n.jsx("p",{className:"training-card__description body-3",children:t}):t:n.jsx("p",{className:"training-card__description body-3","aria-hidden":"true",children:" "})]}),h&&n.jsx("div",{className:"training-card__body",children:r}),m&&n.jsxs("div",{className:"training-card__footer",children:[s!=null&&n.jsx("div",{className:"training-card__footer-left",children:s}),i!=null&&n.jsx("div",{className:"training-card__meta",children:i})]})]})}function Q3({title:e,count:t,collapsed:a=!1,onToggle:r,sort:s,actions:i,empty:l=!1,emptyContent:c,dragOver:d=!1,onDragOver:u,onDragLeave:p,onDrop:m,children:h,className:b}){const{t:v}=ve.useTranslation(),C=r!=null,w=Se("training-card-group",d&&"training-card-group--dragover",a&&"training-card-group--collapsed",C&&"training-card-group--collapsible",b);return n.jsxs("div",{className:w,onDragOver:u,onDragLeave:p,onDrop:m,children:[n.jsxs("header",{className:"training-card-group__header",children:[C&&n.jsx(ce,{htmlType:"button",size:40,type:"dot",variant:"transparent-gray",useBorder:!1,icon:a?"chevron-right":"chevron-down",ariaLabel:a?v("common.expand","\uD3BC\uCE58\uAE30"):v("common.collapse","\uC811\uAE30"),className:"training-card-group__chevron","aria-expanded":!a,onClick:r}),typeof e=="string"?n.jsx("span",{className:"training-card-group__title h5b",children:e}):e,t!==void 0&&n.jsx("span",{className:"training-card-group__count body-3b",children:t}),(s||i!=null)&&n.jsxs("span",{className:"training-card-group__actions",onClick:f=>f.stopPropagation(),children:[s&&n.jsx(rn,{size:40,options:s.options,value:s.value,placeholder:s.placeholder,onChange:s.onChange}),i]})]}),!a&&(l?n.jsx("div",{className:"training-card-group__empty body-3",children:c}):n.jsx("div",{className:"training-card-group__grid",children:h}))]})}const e7="speechear:saved_word_tables";function t7(e){if(typeof e!="object"||e===null)return!1;const t=e;return typeof t.id=="string"&&typeof t.name=="string"&&Array.isArray(t.items)}function n7(){try{const e=localStorage.getItem(e7);if(!e)return[];const t=JSON.parse(e);return Array.isArray(t)?t.filter(t7):[]}catch{return[]}}function vu(e){return{label:e.word,subLabel:e.pronunciation,colloquialLabel:e.colloquialPronunciation,homonum:e.homonum,grade:e.grade,syllables:[...e.word].length,pos:e.pos,wordType:e.wordType}}function Yo(e){return e.map(t=>t.homonum!=null?`${t.word}#${t.homonum}`:t.word).join("|")}function a7(e){const t=new Set;return e.map(a=>{let r=a.id;for(let s=2;t.has(r);s++)r=`${a.id}~${s}`;return t.add(r),r===a.id?a:{...a,id:r}})}function r7({title:e,titleIcon:t,disc:a,items:r,onSaveComplete:s,onLoad:i,onRemoveItem:l,onReset:c,resetLabel:d,saveButtonLabel:u,secondarySaveButtonLabel:p,onReorder:m,showCellCount:h,onAddItem:b,className:v,renderSavePopup:C,renderWordSearch:w,hideControls:f,saveOnly:y,tableName:x,nameValue:g,onNameChange:k,descriptionValue:_,onDescriptionChange:B,namePlaceholder:N,descriptionPlaceholder:A,existingNames:S,editingName:O,onCancel:H}){const{t:j}=ve.useTranslation(),q=d??j("wordPrint.clearAllSelection","\uBAA8\uB450 \uC120\uD0DD \uD574\uC81C"),E=r===void 0,M=!!k,[R,G]=o.useState([]),X=(g??"").trim(),U=X||(N??"").trim(),W=(_??"").trim()||(A??"").trim(),Y=(S??[]).map(De=>De.trim().toLowerCase()),L=[O?.trim().toLowerCase(),...R].filter(De=>!!De),D=[...Y];for(const De of L){const Fe=D.indexOf(De);Fe!==-1&&D.splice(Fe,1)}const P=X!==""&&D.includes(X.toLowerCase()),[I,F]=o.useState(Array(4).fill(null)),[$,J]=o.useState(4),[Z,K]=o.useState(null),ae=I.slice(0,$),[ye,oe]=o.useState("landscape"),[le,z]=o.useState(["\uC774\uBBF8\uC9C0","\uB2E8\uC5B4","\uD45C\uC900 \uBC1C\uC74C"]),[re,pe]=o.useState("\uD45C\uC2DC"),[_e,be]=o.useState(!0),[Ne,fe]=o.useState(!0),xe=o.useRef(null),Ee=o.useRef([]),[Oe,$e]=o.useState(8),[ue,Ae]=o.useState("right"),[Le,Te]=o.useState(!1),[ne,ie]=o.useState(!1),{toastMessage:ge,toastType:he,showWarning:Ge,clearToast:Ue}=il("warning"),Ye=o.useCallback(()=>K(null),[K]);b&&!E&&!h&&Cn("word-table-block-add-without-cell-count",'[WordTableBlock] \uD45C\uC2DC \uBAA8\uB4DC\uC5D0\uC11C onAddItem \uC740 showCellCount \uC640 \uD568\uAED8 \uC918\uC57C "\uCD94\uAC00\uD558\uAE30" \uCE78\uC774 \uC0DD\uAE34\uB2E4.');const[Ze,Xe]=o.useState(()=>Math.max(r?.length??1,1)),ze=E?$:h?Math.max(Ze,r?.length??1,1):Math.max(r?.length??0,1),{width:Re,height:Ve}=aa[ye],ot=!E&&!h,Ct=r?.length??0,zt=Math.min(Oe,Math.max(Ct,1)),gt=ot?zt:ze,nt=ot?pc(r??[],gt):null,Je=!!nt&&nt.length>1,et=E?ae.some(De=>De!==null&&De.length>1):(r??[]).some(De=>(De.words??[]).length>1),lt=x?.trim()||`${ci(Ca())} ${et?j("wordTable.printFileNamePair","\uB300\uB9BD\uC30D\uD45C"):j("wordTable.printFileNameSingle","\uB2E8\uC5B4\uD45C")}`,We=o.useCallback(()=>Je?Ee.current.filter(De=>De!==null):xe.current?[xe.current]:[],[Je]),{print:ft,openNewWindow:qe,downloadHtml:pt}=Bo({getElements:We,paperW:Re,paperH:Ve,fileName:lt,onPopupBlocked:()=>{Ge(j("wordTable.popupBlocked","\uD31D\uC5C5\uC774 \uCC28\uB2E8\uB418\uC5C8\uC2B5\uB2C8\uB2E4. \uBE0C\uB77C\uC6B0\uC800 \uC124\uC815\uC5D0\uC11C \uD31D\uC5C5\uC744 \uD5C8\uC6A9\uD574 \uC8FC\uC138\uC694."))}}),Et=De=>{J(De),F(Fe=>Fe.length>=De?Fe:[...Fe,...Array(De-Fe.length).fill(null)]),K(null)},kt=De=>{F(Fe=>{const te=[...Fe];return te[De]=null,te}),Z===De&&K(null)},_t=De=>{if(Z===null)return;const Fe=Z;F(Ce=>{const V=[...Ce];return V[Fe]=De.length>0?De:null,V});const te=ae.findIndex((Ce,V)=>V>Fe&&Ce===null);K(te!==-1?te:null)},st=E?ae.some(De=>De?.some(Fe=>!!Fe.colloquialPronunciation)):(r??[]).some(De=>(De.words??[]).some(Fe=>!!Fe.colloquialLabel)),Ie=o.useMemo(()=>Gn()?E?I.slice(0,$).flatMap(De=>(De??[]).map(Fe=>[Fe.word,Fe.homonum])):(r??[]).flatMap(De=>(De.words??[]).map(Fe=>[Fe.label,Fe.homonum])):[],[E,I,$,r]),[rt,bt]=o.useState(!1);o.useEffect(()=>{if(Ie.length===0)return;let De=!1;return Promise.all(Ie.map(([Fe,te])=>Xs(Fe,te))).then(Fe=>{De||bt(Fe.some(Boolean))},()=>{}),()=>{De=!0}},[Ie]);const Vt=Ie.length>0&&rt,tt=o.useMemo(()=>[...E||h?[{label:j("wordTable.filter.columns","\uCE78 \uC218"),items:Oy.map(De=>({value:`${De}\uCE78`,displayLabel:j("wordTable.filter.column",{count:De})})),display:"segmented"}]:[],...ot&&(r?.length??0)>0?[Nc(j,{hasPairs:et,itemCount:Ct})]:[],...Je?[Dc(j)]:[]],[j,E,h,ot,r?.length,et,Ct,Je]),Zt={...E||h?{[j("wordTable.filter.columns","\uCE78 \uC218")]:`${ze}\uCE78`}:{},...ot&&(r?.length??0)>0?{[j(et?"wordTable.filter.itemsPerPagePair":"wordTable.filter.itemsPerPageWord")]:`${zt}\uAC1C`}:{},...Je?{[j("wordTable.filter.pageNumber","\uD398\uC774\uC9C0 \uBC88\uD638")]:Ec[ue]}:{}},An=(De,Fe)=>{Fe===j("wordTable.filter.columns","\uCE78 \uC218")?E?Et(parseInt(De)):Xe(parseInt(De)):Fe===j(et?"wordTable.filter.itemsPerPagePair":"wordTable.filter.itemsPerPageWord")?$e(Sc(parseInt(De),Ct)):Fe===j("wordTable.filter.pageNumber","\uD398\uC774\uC9C0 \uBC88\uD638")&&Ae(jc(De))},Bt=E?a7(ae.filter(De=>De!==null&&De.length>0).map(De=>({id:Yo(De),words:De.map(vu)}))):r??[],Wt=()=>{E&&F(De=>De.length>$?De.slice(0,$):De)},en=(De=!1)=>{if(ie(De),M&&s){const Fe=U.trim().toLowerCase();Fe&&G(te=>te.includes(Fe)?te:[...te,Fe]),s(U,Bt,W||void 0,De),Wt();return}if(y&&s){s("",Bt,void 0,De),Wt();return}if(s){Te(!0);return}pt()},[on,cn]=o.useState(!1),[tn,Bn]=o.useState(""),Xt=tn.trim(),yt=Xt!==""&&Y.includes(Xt.toLowerCase()),un=()=>{Bn(U?j("wordTable.save.copyName",{name:U,defaultValue:"{{name}} (\uBCF5\uC0AC)"}):""),cn(!0)},Jt=()=>{!Xt||yt||!s||(s(Xt,Bt,W||void 0,!0),Wt(),cn(!1))},Tt=Bt.length===0,dn=Tt||M&&(U===""||P),Qt=()=>{if(Tt){Ge(j("wordTable.emptyItems","\uB2E8\uC5B4\uB97C 1\uAC1C \uC774\uC0C1 \uCD94\uAC00\uD574\uC8FC\uC138\uC694."));return}if(M&&U===""){Ge(j("wordTable.save.nameRequired","\uD45C \uC774\uB984\uC744 \uC785\uB825\uD574 \uC8FC\uC138\uC694."));return}M&&P&&Ge(j("wordTable.save.duplicateName","\uC774\uBBF8 \uC0AC\uC6A9 \uC911\uC778 \uC774\uB984\uC785\uB2C8\uB2E4."))},pn=n.jsx(ra,{items:Bt,orientation:ye,contentTypes:le,cutLine:re,showOutline:_e,showDivLine:Ne,count:ze});return n.jsxs(n.Fragment,{children:[n.jsxs(na,{type:"page",icon:t,title:e,disc:a,className:Se("word-table-block",v),children:[on&&n.jsx(jn,{size:"small",title:p??j("wordTable.saveAsNewButton","\uB2E4\uB978 \uC774\uB984\uC73C\uB85C \uC800\uC7A5"),onClose:()=>cn(!1),footer:({closeWithAnimation:De})=>n.jsxs(n.Fragment,{children:[n.jsx(ce,{htmlType:"button",size:48,type:"bar",label:j("common.cancel","\uCDE8\uC18C"),onClick:De}),n.jsx(ce,{htmlType:"button",size:48,type:"bar",variant:"main",label:j("common.save","\uC800\uC7A5"),disabled:!Xt||yt,onClick:Jt})]}),children:n.jsx(zn,{label:j("wordTable.save.nameLabel","\uC774\uB984"),value:tn,onChange:Bn,placeholder:j("wordTable.save.placeholder","\uC774 \uB2E8\uC5B4\uD45C\uC5D0 \uB300\uD55C \uC81C\uBAA9\uC744 \uC785\uB825\uD558\uC138\uC694."),maxLength:40,size:48,fullWidth:!0,autoFocus:!0,onEnter:Jt,error:yt?j("wordTable.save.duplicateName","\uC774\uBBF8 \uC0AC\uC6A9 \uC911\uC778 \uC774\uB984\uC785\uB2C8\uB2E4."):void 0})}),Le&&s&&C?.({defaultName:typeof e=="string"?e:j("wordTable.defaultName","\uB2E8\uC5B4 \uD45C"),preview:pn,previewW:Re,previewH:Ve,items:Bt,existingNames:n7().map(De=>De.name),saveAsNew:ne,onSave:(De,Fe)=>{s(De,Bt,Fe,ne),Wt(),Te(!1)},onCancel:()=>Te(!1)}),(E||b)&&Z!==null&&w?.({cellIndex:Z,onConfirm:E?_t:De=>{if(b){const Fe=De[0];if(Fe){const te=new Set((r??[]).map(V=>V.id));let Ce=Yo([Fe]);for(let V=2;te.has(Ce);V++)Ce=`${Yo([Fe])}~${V}`;b({id:Ce,words:[vu(Fe)]})}}K(null)},onClose:Ye}),!f&&n.jsx(wo,{hasImage:Vt,hasColloquial:st,contentTypes:le,orientation:ye,showOutline:_e,cutLine:re,showDivLine:Ne,setters:{setContentTypes:z,setOrientation:oe,setShowOutline:be,setCutLine:pe,setShowDivLine:fe},showCutLine:(ot?gt:ze)>1,showDivLine2:et,middleSections:tt,extraSelected:Zt,onExtraSelect:An}),Je&&nt?n.jsx("div",{className:"word-table-block__pages",children:nt.map((De,Fe)=>n.jsx(ra,{orientation:ye,contentTypes:le,cutLine:re,showOutline:_e,showDivLine:Ne,count:gt,items:De,onRemoveItem:l,onReorder:m&&((te,Ce)=>m(te+Fe*gt,Ce+Fe*gt)),contentRef:te=>{Ee.current[Fe]=te},pageNumber:{current:Fe+1,total:nt.length},pageNumberPosition:ue},Fe))}):n.jsx(ra,{orientation:ye,contentTypes:le,cutLine:re,showOutline:_e,showDivLine:Ne,count:ze,items:E?void 0:r??[],editCells:E?ae:void 0,activeCell:Z,onActivateCell:E||b?K:void 0,onRemoveCell:E?kt:void 0,onRemoveItem:E?void 0:l,onReorder:E?void 0:m,showFillerAdd:!!b,contentRef:xe}),M&&!f&&n.jsxs(sr,{size:"medium",labelWidth:64,useBorder:!1,useRowBorder:!1,className:"word-table-block__meta",children:[n.jsx(Tn,{variant:"custom",label:j("wordTable.save.nameLabel","\uC774\uB984"),required:!0,align:"vertical",useFullWidth:!0,children:n.jsx(zn,{required:!0,value:g??"",onChange:k,placeholder:N?N+j("wordTable.save.autoFillHint"," (Tab \uB610\uB294 space \uC785\uB825\uC2DC \uC790\uB3D9 \uC785\uB825)"):j("wordTable.save.placeholder","\uC774 \uB2E8\uC5B4\uD45C\uC5D0 \uB300\uD55C \uC81C\uBAA9\uC744 \uC785\uB825\uD558\uC138\uC694."),ariaLabel:j("wordTable.save.nameLabel","\uC774\uB984"),maxLength:40,size:48,fullWidth:!0,error:P?j("wordTable.save.duplicateName","\uC774\uBBF8 \uC0AC\uC6A9 \uC911\uC778 \uC774\uB984\uC785\uB2C8\uB2E4."):void 0,onKeyDown:De=>{(De.key==="Tab"&&!De.shiftKey||De.key===" ")&&!(g??"").trim()&&(N??"").trim()&&(De.preventDefault(),k?.(N??""))}})}),n.jsx(Tn,{variant:"custom",label:j("wordTable.save.descriptionLabel","\uC124\uBA85"),align:"vertical",useFullWidth:!0,children:n.jsx(zn,{value:_??"",onChange:B,placeholder:A?A+j("wordTable.save.autoFillHint"," (Tab \uB610\uB294 space \uC785\uB825\uC2DC \uC790\uB3D9 \uC785\uB825)"):j("wordTable.save.descriptionPlaceholder","\uC774 \uB2E8\uC5B4\uD45C\uC5D0 \uB300\uD55C \uC124\uBA85\uC744 \uC785\uB825\uD558\uC138\uC694."),ariaLabel:j("wordTable.save.descriptionLabel","\uC124\uBA85"),maxLength:200,multiline:!0,rows:2,fullWidth:!0,onKeyDown:De=>{(De.key==="Tab"&&!De.shiftKey||De.key===" ")&&!(_??"").trim()&&(A??"").trim()&&(De.preventDefault(),B?.(A??""))}})})]})]}),!f&&n.jsxs("div",{className:"word-table-block__actions",children:[n.jsxs("div",{className:"word-table-block__actions-left",children:[!y&&c&&n.jsx(ce,{htmlType:"button",size:40,type:"bar",label:q,onClick:c}),!y&&i&&n.jsx(ce,{htmlType:"button",size:40,type:"bar",label:j("wordTable.load","\uBD88\uB7EC\uC624\uAE30"),onClick:i}),!y&&n.jsx(ce,{htmlType:"button",size:40,type:"bar",label:j("wordTable.openNewWindow","\uC0C8 \uCC3D\uC73C\uB85C \uBCF4\uAE30"),onClick:qe})]}),n.jsxs("div",{className:"word-table-block__actions-right",children:[H&&n.jsx(ce,{htmlType:"button",size:"56",type:"bar",label:j("common.cancel","\uCDE8\uC18C"),onClick:H}),!y&&n.jsx(ce,{htmlType:"button",size:"56",type:"bar",label:j("wordTable.print","\uC778\uC1C4\uD558\uAE30"),onClick:ft}),p&&n.jsx(ce,{htmlType:"button",size:"56",type:"bar",label:p,onClick:()=>M?un():en(!0),disabled:Tt,onDisabledClick:()=>{Ge(j("wordTable.emptyItems","\uB2E8\uC5B4\uB97C 1\uAC1C \uC774\uC0C1 \uCD94\uAC00\uD574\uC8FC\uC138\uC694."))}}),n.jsx(ce,{htmlType:"button",size:"56",type:"bar",variant:"main",label:u??j("wordTable.saveButton","\uC800\uC7A5\uD558\uAE30"),onClick:()=>en(!1),disabled:dn,onDisabledClick:Qt})]})]}),n.jsx(ea,{message:ge,type:he,onClose:Ue})]})}function xu({items:e,className:t}){const a=e.length,r=a<=3?1:2,s=Math.ceil(a/r)||1,i=r*s;return n.jsx("div",{className:Se("word-table-thumb",t),style:{gridTemplateColumns:`repeat(${r}, 1fr)`},children:Array.from({length:i},(l,c)=>{const d=e[c];return d?n.jsx("div",{className:"word-table-thumb__cell",children:(d.words?.length?d.words:[{label:d.id}]).map((u,p)=>n.jsxs(o.Fragment,{children:[p>0&&n.jsx("span",{className:"word-table-thumb__divider"}),n.jsx("span",{className:"word-table-thumb__word body-3",children:u.label})]},p))},c):n.jsx("div",{className:"word-table-thumb__cell word-table-thumb__cell--empty"},c)})})}function o7({items:e,name:t,description:a,createdAt:r,published:s,publishedLabel:i,shared:l,sharedLabel:c,isNew:d,publisherName:u,publishedAt:p,likeCount:m,downloadCount:h,onPublisherClick:b,selected:v,onClick:C,onMore:w,titleNode:f,className:y}){const{t:x}=ve.useTranslation(),g=f!=null,k=u!=null||p!=null||m!=null||h!=null,_=B=>{B.target===B.currentTarget&&!g&&(B.key==="Enter"||B.key===" ")&&(B.preventDefault(),C?.())};return n.jsxs("div",{className:Se("word-table-button",v?"word-table-button--selected":"",k?"":"word-table-button--no-footer",y),role:"button",tabIndex:0,"aria-label":t,onClick:g?void 0:C,onKeyDown:_,children:[d&&n.jsx("span",{className:"word-table-button__new-dot","aria-label":x("myWordTable.newBadge","\uC0C8\uB85C \uB9CC\uB4E0 \uD45C")}),n.jsx(xu,{items:e,className:"word-table-button__thumb"}),n.jsxs("div",{className:"word-table-button__info",children:[n.jsxs("div",{className:"word-table-button__info-text",children:[f??n.jsx("div",{className:"word-table-button__title h4",children:t}),a&&n.jsx("div",{className:"word-table-button__desc body-3",children:a})]}),w&&!g&&n.jsx(ce,{htmlType:"button",className:"word-table-button__more",size:32,type:"dot",variant:"transparent-gray",useBorder:!1,icon:"ellipsis",ariaLabel:x("common.moreFor",{name:t}),onClick:B=>{B.stopPropagation(),w(B)}})]}),(r||s||l)&&n.jsxs("div",{className:"word-table-button__meta-row",children:[n.jsx("span",{className:"word-table-button__meta caption-1",children:r?li(r,x):""}),n.jsxs("span",{className:"word-table-button__badges",children:[s&&n.jsx(ht,{className:"word-table-button__badge",size:"small",variant:"main",fill:"soft",iconLeft:"book-marked",label:i??x("myWordTable.publishedBadge","\uBC1C\uD589\uB428")}),l&&n.jsx(ht,{className:"word-table-button__badge",size:"small",fill:"soft",iconLeft:"link",label:c??x("myWordTable.sharedBadge","\uACF5\uC720 \uC911")})]})]}),k&&n.jsxs("div",{className:"word-table-button__footer",children:[n.jsxs("span",{className:"word-table-button__store-by",children:[u&&n.jsx("button",{className:"training-card__publisher body-4",type:"button",onClick:B=>{B.stopPropagation(),b?.()},children:u}),p&&n.jsx("span",{className:"training-card__date body-4",children:li(p,x)})]}),n.jsxs("span",{className:"word-table-button__store-stats",children:[m!=null&&n.jsx(ht,{size:"small",fill:"soft",variant:"like",iconLeft:"heart",label:String(m)}),h!=null&&n.jsx(ht,{size:"small",fill:"soft",variant:"main",iconLeft:"download",label:String(h)})]})]})]})}/**
|
|
1007
1007
|
* @license lucide-react v1.38.0 - ISC
|
|
1008
1008
|
*
|
|
1009
1009
|
* This source code is licensed under the ISC license.
|