@ihabdevteam/core 0.266.0 → 0.267.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.
@@ -2,7 +2,7 @@
2
2
  \uC2E0\uB8B0\uB97C \uC313\uACE0
3
3
  \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"},_v={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"}}},yv={timeHM:"{{h}}\uC2DC {{m}}\uBD84",timeH:"{{h}}\uC2DC"},wv={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"}},kv={answer:"\uC815\uB2F5",distractor:"\uC624\uB2F5"},Bv={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"},Av={clearAriaLabel:"\uC785\uB825\uAC12 \uC9C0\uC6B0\uAE30"},Sv={ariaLabel:"\uC120\uD0DD \uD0ED"},Ev={ariaLabel:"\uD0ED"},Dv={dragPrompt:"\uD30C\uC77C\uC744 \uC774\uACF3\uC5D0 \uB4DC\uB798\uADF8\uD558\uC5EC \uC5C5\uB85C\uB4DC",browseButton:"\uD30C\uC77C \uC120\uD0DD",removeAriaLabel:"{{name}} \uC81C\uAC70"},Nv={ariaLabel:"\uC0AC\uC6A9\uC790 \uC544\uBC14\uD0C0"},Tv={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"}},jv={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"}},Lv={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"}},Mv={manage:{unit:"\uAC74"}},$v={cancelLabel:"\uCDE8\uC18C"},Rv={steps:"\uC9C4\uD589 \uB2E8\uACC4 {{current}} / {{total}}"},Pv={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"},zv={resetColumns:"\uCE78 \uB108\uBE44 \uCD08\uAE30\uD654",scrollRegion:"\uAC00\uB85C\uB85C \uAD74\uB9B4 \uC218 \uC788\uB294 \uD45C",rowActionHint:"\uC904\uC744 \uB204\uB974\uBA74 \uC790\uC138\uD788 \uBD05\uB2C8\uB2E4"},Iv={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"},Ov={ariaLabel:"\uBC30\uB108",dotAriaLabel:"{{count}}\uAC1C \uC911 {{index}}\uBC88\uC9F8 \uBC30\uB108"},Fv={selectYearMonth:"\uC5F0\uC6D4 \uC120\uD0DD",chooseDate:"\uB0A0\uC9DC \uC120\uD0DD"},Hv={previewRegion:"\uBCF4\uACE0\uC11C \uBBF8\uB9AC\uBCF4\uAE30 \u2014 \uC88C\uC6B0\uB85C \uAD74\uB824 \uBCFC \uC218 \uC788\uC2B5\uB2C8\uB2E4"},Vv={description:"\uC124\uBA85",textbox:"\uBCF8\uBB38",training:"\uD6C8\uB828 \uC548\uB0B4",menu:"\uBA54\uB274"},Wv={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"}},Gv={clearSelection:"\uC120\uD0DD \uD574\uC81C"},Uv={showResult:"{{type}} \uACB0\uACFC\uBCF4\uAE30"},qv={selected:"\uC120\uD0DD\uB428",remove:"\uC81C\uAC70",exclude:"\uC81C\uC678",nthSelected:"{{n}}\uBC88\uC9F8 \uC120\uD0DD"},Yv={loading:"\uBD88\uB7EC\uC624\uB294 \uC911\u2026"},Kv={state:{active:"\uC18C\uB9AC \uB098\uB294 \uC911",played:"\uB4E4\uC74C",correct:"\uC815\uB2F5",wrong:"\uC624\uB2F5"}},Zv={ariaLabel:"\uC774\uB3D9 \uACBD\uB85C"},Xv={empty:"\uB4F1\uB85D\uB41C \uD56D\uBAA9\uC774 \uC5C6\uC2B5\uB2C8\uB2E4."},Jv={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"},Qv={common:z1,calendar:I1,passCard:O1,searchField:F1,rating:H1,colorPicker:V1,dropdown:W1,accordion:G1,header:U1,nav:q1,settings:Y1,usage:K1,account:Z1,help:X1,training:J1,trainingSettings:Q1,customers:ev,payment:tv,coupons:av,visits:ov,company:rv,trainingType:nv,myWordTraining:iv,myWordTable:sv,keyWords:lv,wordTable:cv,wordSearch:dv,wordPrint:uv,topic:pv,accessLinkManager:hv,login:mv,trainingPlanRun:bv,device:gv,manager:fv,wordPairs:vv,game:xv,footer:Cv,landing:_v,date:yv,trainingSetPage:wv,wordTrainingPreview:kv,wordData:Bv,textField:Av,segmentedControl:Sv,tabs:Ev,fileUpload:Dv,avatar:Nv,myHomework:Tv,trainingStatus:jv,store:Lv,homework:Mv,inquiry:$v,progress:Rv,trainingMiss:Pv,table:zv,wordScore:Iv,topBanner:Ov,datePicker:Fv,report:Hv,tooltip:Vv,phonemeProfile:Wv,bulkBar:Gv,debug:Uv,badge:qv,loader:Yv,soundCompass:Kv,breadcrumb:Zv,board:Xv,promoBannerBg:Jv},ex={statusFilter:"Filter by status",pageSizeSelect:"Items per page",selectedCount_one:"{{count}} selected",selectedCount_other:"{{count}} selected",moreFor:"More options for {{name}}",collapseFor:"Collapse {{name}}",expandFor:"Expand {{name}}",sortFor:"Sort {{name}}",cancel:"Cancel",info:"Info",errorState:{message:"Couldn't load this.",retry:"Try again"},save:"Save",confirm:"Confirm",discardConfirm:{title:"Discard your changes?",body:"If you do not save, everything you have entered will be lost.",confirm:"Discard"},close:"Close",back:"Back",emptyTrainingName:"Training name is empty.",remove:"Remove",image:"Image",delete:"Delete",reset:"Reset",update:"Update",download:"Download",likeCount:"{{count}} likes",selectedOfMax:"{{count}} of {{max}}",downloadCount:"{{count}} downloads",descriptionFor:"About {{name}}",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",playFor:"Play {{name}}",pauseFor:"Pause {{name}}",pause:"Pause",playPause:"Play / Pause",replay:"Replay",subscription:"Subscription",done:"Done",failed:"Failed",continue:"Continue",notification:"Notice",emptyList:"No items",noMatches:"No matching 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."},tx={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)",statusCount:"{{count}} {{label}}"},ax={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",expired:"Expired",menu:{use:"Activate",refund:"Refund",delete:"Delete"}},ox={clearAriaLabel:"Clear search"},rx={starLabel:"Select star {{n}}",valueLabel:"{{value}} out of {{max}}",groupLabel:"Rating"},nx={selected:"selected"},ix={placeholder:"Select"},sx={collapse:"Collapse",expand:"Expand"},lx={biArea:"BI area",biSymbol:"BI symbol",logoMalgwi:"Malgwi logo",logoManager:"Malgwi Manager logo",menuOpen:"Open menu",utilMenu:"Utility menu",menuClose:"Close menu"},cx={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}}",badgeInsideLabel:"{{label}}, {{count}} notifications inside"},dx={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."}}},ux={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"}},px={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"}}},hx={guide:{faq:{title:"FAQ",desc:"View all frequently asked questions"}}},mx={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",previewFor:"Preview {{name}}",stopFor:"Stop {{name}}",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",synthesizing:"Preparing the sound\u2026"}},bx={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"},gx={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"}},fx={plan:{recommendedFor:"Recommended for",features:"Key Features",freePrice:"Free",contact:"Contact Us",tierFallback:"Plan",openPromo:"Launch offer"},products:{mgrEnterprise:{tier:{price:"Contact us"}}}},vx={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"}},xx={unitVisit:"",periodAll:"All",showN:"Show {{n}}"},Cx={subtitle:"Manage company and business information",editButton:"Edit Info",basicInfo:{title:"Basic Info"},contactInfo:{title:"Contact Info"}},_x={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."}},yx={comingSoon:"Word training is coming soon."},wx={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"},kx={title:"Key Words",empty:"No key words available."},Bx={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",topInfo:"Header",bottomInfo:"Footer",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}}",viewLabel:"View as",sortLabel:"Sort by",sort:{newest:"Newest",oldest:"Oldest",name:"Name",count:"Word Count"},view:{grid:"Grid View",list:"List View"}},publisherFilter:"Show only tables by {{name}}",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",markName:{o:"Correct",triangle:"Partial",x:"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 they appear when you hover the cell; with a keyboard, when focus reaches it.",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"}},Ax={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}}"}},Sx={clearAllSelection:"Clear All Selections",divLine:"Contrast Line",removePair:"Remove pair",removeWord:"Remove word"},Ex={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"}},Dx={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"}},Nx={passwordPlaceholder:"Enter password"},Tx={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"}},jx={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"}},Lx={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}}",countLabel:"Number of phonemes",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."]},Mx={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"}},$x={lead:`IHAB builds trust
4
4
  through sound
5
- and aids recovery.`,site:{title:"Site",malgwi:"Malgwi",soundDirection:"Sound Direction System",vrSoundDirection:"VR Sound Direction System",hearingTest:"Hearing Test Pro"},sns:{title:"SNS",naverBlog:"Naver Blog",kakao:"KAKAO Talk Open Chat"},policy:{title:"Policy",terms:"Terms of Service",privacy:"Privacy Policy"},ceo:"CEO",address:"Address",support:"Support",ceoName:"Ji-hye Han",addressValue:"302, 3F, Haechan Bldg, 32 Siocheong-gil, Chuncheon, Gangwon, Korea"},Rx={trainingPhone:{topic:"Gardening",prev:"Prev",next:"Next",speed:"Speed 3",noiseType:"Crowd noise",settings:"Settings",start:{caption:"Press the play (\u25B6) button below and listen carefully. After listening, check the sentence."},feedback:{caption:"Plant the well-grown seedlings in the garden bed and cover them carefully with plastic film."},done:{heardWell:"Heard clearly",listenAgain:"Listen again"}}},Px={timeHM:"{{hh}}:{{mm}}",timeH:"{{hh}}:{{mm}}"},zx={options:"Training Options",difficulty:"Difficulty",exclude:"Exclude",chosung:"Initial Consonant",excludeOptions:{none:"None",noImage:"No Image"}},Ix={answer:"Answer",distractor:"Distractor"},Ox={phaseWordDownload:"Download Word Data",phaseImageCheck:"Check Images",phasePairAnalysis:"Analyze Word Pairs",downloadingCount:"Downloading {{n}} words",checkingPage:"Checking page {{page}} list",imageCount:"{{done}} / {{total}} items"},Fx={clearAriaLabel:"Clear input"},Hx={ariaLabel:"Select tab"},Vx={ariaLabel:"Tabs"},Wx={dragPrompt:"Drag and drop files here",browseButton:"Choose Files",removeAriaLabel:"Remove {{name}}"},Gx={ariaLabel:"User avatar"},Ux={relativeDay:{today:"Today",yesterday:"Yesterday",daysAgo:"{{n}}d ago"},reason:{notLoggedIn:"Login required."},list:{title:"Received Homework"},status:{expired:"Expired",done:"Done {{count}}\xD7 \xB7 {{date}}",notDone:"Not done"}},qx={weekly:{title:"Weekly Training",daily:"Daily Listening",crossword:"Crossword"},homework:{title:"Homework Progress",totalRate:"Overall rate",count:"Total",done:"Done",remaining:"Remaining"},today:{tooltipTotal:"Total",tooltipDone:"Done"},filter:{countSuffix:" sessions"},time:{countLabel:"{{n}} sessions",empty:"No training records"},daily:{title:"Today's Listening Record",empty:"No completed sessions"},crossword:{title:"Crossword Quiz",empty:"No completed levels"},visit:{title:"Linked Visit Records"},detail:"Details",trainingType:{LISTEN_IN_NOISE:"Sentence in Noise",SHORT_STORY:"Short Story",LONG_STORY:"Long Story",ORDERING_SENTENCE:"Sentence Ordering"}},Yx={import:"Add to my trainings",publisher:"Publisher",time:{justNow:"just now",minutesAgo:"{{n}}m ago",hoursAgo:"{{n}}h ago",daysAgo:"{{n}}d ago",weeksAgo:"{{n}}w ago",monthsAgo:"{{n}}mo ago",yearsAgo:"{{n}}y ago"},badge:{shared:"Store"},publish:{descPlaceholder:"One-line description for the Training Store (optional)"}},Kx={manage:{unit:"item(s)"}},Zx={cancelLabel:"Cancel"},Xx={subtitle:"Select a topic to start listening practice."},Jx={steps:"Step {{current}} of {{total}}"},Qx={panelTitle:"Training misses",viewItems:"Items",viewTypes:"Types",colPending:"Left",colTrend:"Change",colRuns:"Runs",unitItem:" items",skippedOnly:"{{n}} older record(s) were excluded \u2014 they do not say what was answered.",summaryLabel:"Recorded",summaryValue:"{{items}} items \xB7 {{pending}} still missed",nextLabel:"Next to work on",nextCount:"{{count}}",nextCountCapped:"{{shown}} of {{total}}",picked:"\u2192 {{what}}",typeClear:"All caught up",typePending:"{{pending}} of {{total}} left",flat:"no change",runs:"{{count}} run(s)",avgDuration:"{{sec}}s avg"},eC={resetColumns:"Reset column widths",scrollRegion:"Horizontally scrollable table",rowActionHint:"Press a row to open its details"},tC={panelTitle:"Word table scores",viewWords:"Words",viewTables:"Tables",colLatest:"When",colTrend:"Change",unitTime:" times",summaryLabel:"Scored",summaryValue:"{{times}} times \xB7 {{words}} words",nextLabel:"Focus next",nextCount:"{{count}}",allClear:"All correct last time.",times:"{{count}}x",flat:"no change",recentLabel:"Recent scorings",nextCountCapped:"{{shown}} of {{total}}"},aC={ariaLabel:"Banner",dotAriaLabel:"Banner {{index}} of {{count}}"},oC={selectYearMonth:"Select year and month",chooseDate:"Choose a date"},rC={previewRegion:"Report preview \u2014 scrollable sideways"},nC={description:"Description",textbox:"Text",training:"Training guide",menu:"Menu"},iC={devNone:"No acquisition data",place:{labial:"Bilabial",alveolar:"Alveolar",palatal:"Palatal",velar:"Velar",glottal:"Glottal"}},sC={clearSelection:"Clear selection"},lC={showResult:"Show {{type}} result"},cC={selected:"Selected",remove:"Remove",exclude:"Excluded",nthSelected:"Selection {{n}}"},dC={loading:"Loading"},uC={state:{active:"playing",played:"heard",correct:"correct",wrong:"wrong"}},pC={ariaLabel:"Breadcrumb"},hC={empty:"No items yet."},mC={main:"Main gradient",soft:"Soft",sub:"Sub color",deep:"Deep gradient",softSub:"Soft sub",warm:"Warm (accent)",dark:"Dark",radial:"Radial gradient",diagonal:"Diagonal pattern",dots:"Dot pattern",outline:"Outline",success:"Success / done",naver:"Naver blog notice",instagram:"Instagram notice"},bC={common:ex,calendar:tx,passCard:ax,searchField:ox,rating:rx,colorPicker:nx,dropdown:ix,accordion:sx,header:lx,nav:cx,settings:dx,usage:ux,account:px,help:hx,training:mx,trainingSettings:bx,customers:gx,payment:fx,coupons:vx,visits:xx,company:Cx,trainingType:_x,myWordTraining:yx,myWordTable:wx,keyWords:kx,wordTable:Bx,wordSearch:Ax,wordPrint:Sx,topic:Ex,accessLinkManager:Dx,login:Nx,device:Tx,manager:jx,wordPairs:Lx,game:Mx,footer:$x,landing:Rx,date:Px,trainingSetPage:zx,wordTrainingPreview:Ix,wordData:Ox,textField:Fx,segmentedControl:Hx,tabs:Vx,fileUpload:Wx,avatar:Gx,myHomework:Ux,trainingStatus:qx,store:Yx,homework:Kx,inquiry:Zx,trainingPlanRun:Xx,progress:Jx,trainingMiss:Qx,table:eC,wordScore:tC,topBanner:aC,datePicker:oC,report:rC,tooltip:nC,phonemeProfile:iC,bulkBar:sC,debug:lC,badge:cC,loader:dC,soundCompass:uC,breadcrumb:pC,board:hC,promoBannerBg:mC};const Tn="0.266.0",Nr=[{code:"ko",label:"\uD55C\uAD6D\uC5B4"},{code:"en",label:"English"}],Ao="ko",bs="ihab_display_language";function ap(){if(typeof window>"u")return Ao;try{const e=localStorage.getItem(bs);if(e&&Nr.some(t=>t.code===e))return e}catch{}return Ao}function gC(e){try{localStorage.setItem(bs,e)}catch{}}function op(e){try{document.documentElement.lang=e}catch{}}kt.on("languageChanged",op),op(ap()),kt.use(_e.initReactI18next).init({resources:{ko:{translation:Qv},en:{translation:bC}},lng:ap(),fallbackLng:Ao,interpolation:{escapeValue:!1},react:{useSuspense:!1}});const rp=s.createContext({locale:Ao,supportedLocales:Nr});function fC(){return s.useContext(rp)}function vC(e){const t=o=>Nr.some(n=>n.code===o);if(t(e))return e;const a=e.split(/[-_]/)[0]?.toLowerCase()??"";return t(a)?a:Ao}function xC({locale:e=Ao,children:t}){const a=vC(e);return s.useEffect(()=>{kt.language!==a&&kt.changeLanguage(a)},[a]),r.jsx(rp.Provider,{value:{locale:a,supportedLocales:Nr},children:t})}function Ee(...e){return e.filter(Boolean).join(" ")}var CC=".ihabdevteam-core-scope .empty-state{align-items:center;border:1px solid var(--color-whiteLine);border-radius:var(--radius-m);display:flex;flex-direction:column;gap:10px;justify-content:center;margin-block:auto;padding:var(--spacing-page) var(--spacing-xl);text-align:center}.ihabdevteam-core-scope .empty-state__icon{color:var(--color-lightGray);display:inline-flex}.ihabdevteam-core-scope .empty-state__message,.ihabdevteam-core-scope .empty-state__title{color:var(--color-gray);margin:0}.ihabdevteam-core-scope .empty-state__title+.empty-state__message{margin-top:-6px}.ihabdevteam-core-scope .empty-state__action{margin-top:var(--spacing-xs);min-width:120px}";oe(CC);const np=new Set,jn=(()=>{try{const e=globalThis;return e.process!=null&&e.process.env?.NODE_ENV!=="production"}catch{return!1}})();function fa(e,...t){!jn||np.has(e)||(np.add(e),console.warn(...t))}/**
5
+ and aids recovery.`,site:{title:"Site",malgwi:"Malgwi",soundDirection:"Sound Direction System",vrSoundDirection:"VR Sound Direction System",hearingTest:"Hearing Test Pro"},sns:{title:"SNS",naverBlog:"Naver Blog",kakao:"KAKAO Talk Open Chat"},policy:{title:"Policy",terms:"Terms of Service",privacy:"Privacy Policy"},ceo:"CEO",address:"Address",support:"Support",ceoName:"Ji-hye Han",addressValue:"302, 3F, Haechan Bldg, 32 Siocheong-gil, Chuncheon, Gangwon, Korea"},Rx={trainingPhone:{topic:"Gardening",prev:"Prev",next:"Next",speed:"Speed 3",noiseType:"Crowd noise",settings:"Settings",start:{caption:"Press the play (\u25B6) button below and listen carefully. After listening, check the sentence."},feedback:{caption:"Plant the well-grown seedlings in the garden bed and cover them carefully with plastic film."},done:{heardWell:"Heard clearly",listenAgain:"Listen again"}}},Px={timeHM:"{{hh}}:{{mm}}",timeH:"{{hh}}:{{mm}}"},zx={options:"Training Options",difficulty:"Difficulty",exclude:"Exclude",chosung:"Initial Consonant",excludeOptions:{none:"None",noImage:"No Image"}},Ix={answer:"Answer",distractor:"Distractor"},Ox={phaseWordDownload:"Download Word Data",phaseImageCheck:"Check Images",phasePairAnalysis:"Analyze Word Pairs",downloadingCount:"Downloading {{n}} words",checkingPage:"Checking page {{page}} list",imageCount:"{{done}} / {{total}} items"},Fx={clearAriaLabel:"Clear input"},Hx={ariaLabel:"Select tab"},Vx={ariaLabel:"Tabs"},Wx={dragPrompt:"Drag and drop files here",browseButton:"Choose Files",removeAriaLabel:"Remove {{name}}"},Gx={ariaLabel:"User avatar"},Ux={relativeDay:{today:"Today",yesterday:"Yesterday",daysAgo:"{{n}}d ago"},reason:{notLoggedIn:"Login required."},list:{title:"Received Homework"},status:{expired:"Expired",done:"Done {{count}}\xD7 \xB7 {{date}}",notDone:"Not done"}},qx={weekly:{title:"Weekly Training",daily:"Daily Listening",crossword:"Crossword"},homework:{title:"Homework Progress",totalRate:"Overall rate",count:"Total",done:"Done",remaining:"Remaining"},today:{tooltipTotal:"Total",tooltipDone:"Done"},filter:{countSuffix:" sessions"},time:{countLabel:"{{n}} sessions",empty:"No training records"},daily:{title:"Today's Listening Record",empty:"No completed sessions"},crossword:{title:"Crossword Quiz",empty:"No completed levels"},visit:{title:"Linked Visit Records"},detail:"Details",trainingType:{LISTEN_IN_NOISE:"Sentence in Noise",SHORT_STORY:"Short Story",LONG_STORY:"Long Story",ORDERING_SENTENCE:"Sentence Ordering"}},Yx={import:"Add to my trainings",publisher:"Publisher",time:{justNow:"just now",minutesAgo:"{{n}}m ago",hoursAgo:"{{n}}h ago",daysAgo:"{{n}}d ago",weeksAgo:"{{n}}w ago",monthsAgo:"{{n}}mo ago",yearsAgo:"{{n}}y ago"},badge:{shared:"Store"},publish:{descPlaceholder:"One-line description for the Training Store (optional)"}},Kx={manage:{unit:"item(s)"}},Zx={cancelLabel:"Cancel"},Xx={subtitle:"Select a topic to start listening practice."},Jx={steps:"Step {{current}} of {{total}}"},Qx={panelTitle:"Training misses",viewItems:"Items",viewTypes:"Types",colPending:"Left",colTrend:"Change",colRuns:"Runs",unitItem:" items",skippedOnly:"{{n}} older record(s) were excluded \u2014 they do not say what was answered.",summaryLabel:"Recorded",summaryValue:"{{items}} items \xB7 {{pending}} still missed",nextLabel:"Next to work on",nextCount:"{{count}}",nextCountCapped:"{{shown}} of {{total}}",picked:"\u2192 {{what}}",typeClear:"All caught up",typePending:"{{pending}} of {{total}} left",flat:"no change",runs:"{{count}} run(s)",avgDuration:"{{sec}}s avg"},eC={resetColumns:"Reset column widths",scrollRegion:"Horizontally scrollable table",rowActionHint:"Press a row to open its details"},tC={panelTitle:"Word table scores",viewWords:"Words",viewTables:"Tables",colLatest:"When",colTrend:"Change",unitTime:" times",summaryLabel:"Scored",summaryValue:"{{times}} times \xB7 {{words}} words",nextLabel:"Focus next",nextCount:"{{count}}",allClear:"All correct last time.",times:"{{count}}x",flat:"no change",recentLabel:"Recent scorings",nextCountCapped:"{{shown}} of {{total}}"},aC={ariaLabel:"Banner",dotAriaLabel:"Banner {{index}} of {{count}}"},oC={selectYearMonth:"Select year and month",chooseDate:"Choose a date"},rC={previewRegion:"Report preview \u2014 scrollable sideways"},nC={description:"Description",textbox:"Text",training:"Training guide",menu:"Menu"},iC={devNone:"No acquisition data",place:{labial:"Bilabial",alveolar:"Alveolar",palatal:"Palatal",velar:"Velar",glottal:"Glottal"}},sC={clearSelection:"Clear selection"},lC={showResult:"Show {{type}} result"},cC={selected:"Selected",remove:"Remove",exclude:"Excluded",nthSelected:"Selection {{n}}"},dC={loading:"Loading"},uC={state:{active:"playing",played:"heard",correct:"correct",wrong:"wrong"}},pC={ariaLabel:"Breadcrumb"},hC={empty:"No items yet."},mC={main:"Main gradient",soft:"Soft",sub:"Sub color",deep:"Deep gradient",softSub:"Soft sub",warm:"Warm (accent)",dark:"Dark",radial:"Radial gradient",diagonal:"Diagonal pattern",dots:"Dot pattern",outline:"Outline",success:"Success / done",naver:"Naver blog notice",instagram:"Instagram notice"},bC={common:ex,calendar:tx,passCard:ax,searchField:ox,rating:rx,colorPicker:nx,dropdown:ix,accordion:sx,header:lx,nav:cx,settings:dx,usage:ux,account:px,help:hx,training:mx,trainingSettings:bx,customers:gx,payment:fx,coupons:vx,visits:xx,company:Cx,trainingType:_x,myWordTraining:yx,myWordTable:wx,keyWords:kx,wordTable:Bx,wordSearch:Ax,wordPrint:Sx,topic:Ex,accessLinkManager:Dx,login:Nx,device:Tx,manager:jx,wordPairs:Lx,game:Mx,footer:$x,landing:Rx,date:Px,trainingSetPage:zx,wordTrainingPreview:Ix,wordData:Ox,textField:Fx,segmentedControl:Hx,tabs:Vx,fileUpload:Wx,avatar:Gx,myHomework:Ux,trainingStatus:qx,store:Yx,homework:Kx,inquiry:Zx,trainingPlanRun:Xx,progress:Jx,trainingMiss:Qx,table:eC,wordScore:tC,topBanner:aC,datePicker:oC,report:rC,tooltip:nC,phonemeProfile:iC,bulkBar:sC,debug:lC,badge:cC,loader:dC,soundCompass:uC,breadcrumb:pC,board:hC,promoBannerBg:mC};const Tn="0.267.0",Nr=[{code:"ko",label:"\uD55C\uAD6D\uC5B4"},{code:"en",label:"English"}],Ao="ko",bs="ihab_display_language";function ap(){if(typeof window>"u")return Ao;try{const e=localStorage.getItem(bs);if(e&&Nr.some(t=>t.code===e))return e}catch{}return Ao}function gC(e){try{localStorage.setItem(bs,e)}catch{}}function op(e){try{document.documentElement.lang=e}catch{}}kt.on("languageChanged",op),op(ap()),kt.use(_e.initReactI18next).init({resources:{ko:{translation:Qv},en:{translation:bC}},lng:ap(),fallbackLng:Ao,interpolation:{escapeValue:!1},react:{useSuspense:!1}});const rp=s.createContext({locale:Ao,supportedLocales:Nr});function fC(){return s.useContext(rp)}function vC(e){const t=o=>Nr.some(n=>n.code===o);if(t(e))return e;const a=e.split(/[-_]/)[0]?.toLowerCase()??"";return t(a)?a:Ao}function xC({locale:e=Ao,children:t}){const a=vC(e);return s.useEffect(()=>{kt.language!==a&&kt.changeLanguage(a)},[a]),r.jsx(rp.Provider,{value:{locale:a,supportedLocales:Nr},children:t})}function Ee(...e){return e.filter(Boolean).join(" ")}var CC=".ihabdevteam-core-scope .empty-state{align-items:center;border:1px solid var(--color-whiteLine);border-radius:var(--radius-m);display:flex;flex-direction:column;gap:10px;justify-content:center;margin-block:auto;padding:var(--spacing-page) var(--spacing-xl);text-align:center}.ihabdevteam-core-scope .empty-state__icon{color:var(--color-lightGray);display:inline-flex}.ihabdevteam-core-scope .empty-state__message,.ihabdevteam-core-scope .empty-state__title{color:var(--color-gray);margin:0}.ihabdevteam-core-scope .empty-state__title+.empty-state__message{margin-top:-6px}.ihabdevteam-core-scope .empty-state__action{margin-top:var(--spacing-xs);min-width:120px}";oe(CC);const np=new Set,jn=(()=>{try{const e=globalThis;return e.process!=null&&e.process.env?.NODE_ENV!=="production"}catch{return!1}})();function fa(e,...t){!jn||np.has(e)||(np.add(e),console.warn(...t))}/**
6
6
  * @license lucide-react v1.38.0 - ISC
7
7
  *
8
8
  * This source code is licensed under the ISC license.
@@ -1057,7 +1057,7 @@ ${C.badge}`:C.badge:void 0;if(w&&d(C.code))return null;if(!C.badge&&!p)return h(
1057
1057
  \uC544\uC774\uCF58 + \uD3F4\uBC31)\uC5D0 \uB3D9\uC77C\uD558\uAC8C \uC801\uC6A9\uD558\uB824\uBA74 !important\uAC00 \uBD88\uAC00\uD53C\uD568. */.ihabdevteam-core-scope .icon-grid-menu__button-icon-svg svg,.ihabdevteam-core-scope .icon-grid-menu__button-icon-svg svg *{stroke:currentColor!important;stroke-width:2px!important;stroke-width:var(--icon-grid-menu-button-stroke-width,2px)!important;vector-effect:non-scaling-stroke}.ihabdevteam-core-scope .icon-grid-menu__button-icon-svg{height:24px;width:24px}.ihabdevteam-core-scope .icon-grid-menu__button-icon-svg svg{display:block;height:28px;width:28px}.ihabdevteam-core-scope .icon-grid-menu__button-icon-mask{background-color:currentColor;display:inline-block;height:28px;-webkit-mask-image:var(--icon-url);mask-image:var(--icon-url);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;width:28px}.ihabdevteam-core-scope .icon-grid-menu__button-icon-image{display:block;height:28px;-o-object-fit:contain;object-fit:contain;width:28px}.ihabdevteam-core-scope .icon-grid-menu__button-wrapper{align-items:center;display:inline-flex;flex-direction:column;gap:6px}.ihabdevteam-core-scope .icon-grid-menu__button-label{color:var(--color-darkGray);overflow-wrap:break-word;word-break:keep-all}.ihabdevteam-core-scope .icon-grid-menu__button.icon-grid-menu__button--selected{animation:sub-to-main .36s cubic-bezier(.4,0,.2,1) forwards;background-color:var(--color-main);border-color:transparent;box-shadow:var(--shadow-button);color:#fff}.ihabdevteam-core-scope .icon-grid-menu__button.icon-grid-menu__button--selected .icon-grid-menu__button-icon{color:#fff}.ihabdevteam-core-scope .icon-grid-menu--small .icon-grid-menu__button-wrapper{gap:4px;margin:4px 8px;width:56px}.ihabdevteam-core-scope .icon-grid-menu--medium .icon-grid-menu__button-wrapper{margin-left:6px;margin-right:6px}.ihabdevteam-core-scope .icon-grid-menu--small .icon-grid-menu__button{border-radius:20px;height:48px;width:48px}.ihabdevteam-core-scope .icon-grid-menu--small .icon-grid-menu__button-icon{font-size:20px;height:24px;width:24px}.ihabdevteam-core-scope .icon-grid-menu--small .icon-grid-menu__button-icon-image,.ihabdevteam-core-scope .icon-grid-menu--small .icon-grid-menu__button-icon-mask,.ihabdevteam-core-scope .icon-grid-menu--small .icon-grid-menu__button-icon-svg,.ihabdevteam-core-scope .icon-grid-menu--small .icon-grid-menu__button-icon-svg svg{height:20px;width:20px}.ihabdevteam-core-scope .icon-grid-menu--small .icon-grid-menu__button-label{font-size:12px;line-height:1.3}@media (min-width:1024px){.ihabdevteam-core-scope .icon-grid-menu__button-wrapper{margin:8px 12px;width:80px}.ihabdevteam-core-scope .icon-grid-menu__button{border-radius:28px;height:68px;width:68px}.ihabdevteam-core-scope .icon-grid-menu__button-icon-mask{height:28px;width:28px}}@media (min-width:768px) and (max-width:1023px){.ihabdevteam-core-scope .icon-grid-menu__button-wrapper{margin:8px 10px;width:64px}.ihabdevteam-core-scope .icon-grid-menu__button{border-radius:24px;height:58px;width:58px}.ihabdevteam-core-scope .icon-grid-menu__button-icon-mask{height:24px;width:24px}}@media (max-width:767px){.ihabdevteam-core-scope .icon-grid-menu__button-wrapper{margin:var(--spacing-xs);width:50px}.ihabdevteam-core-scope .icon-grid-menu__button{border-radius:20px;height:48px;width:48px}.ihabdevteam-core-scope .icon-grid-menu__button-icon-mask{height:20px;width:20px}}`;oe(hB);function mB(e){const{category:t={},isSelected:a=!1,onClick:o}=e||{},n=t?.key?` icon-grid-menu__button--${t.key}`:"",i=s.useId();return r.jsxs("div",{className:`icon-grid-menu__button-wrapper${n}`,children:[r.jsx("button",{className:`icon-grid-menu__button${a?" icon-grid-menu__button--selected":""}`,"data-key":t?.key,type:"button",onClick:a?void 0:o,"aria-pressed":a,"aria-labelledby":i,children:r.jsx(et,{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"})}),r.jsx("span",{id:i,className:"icon-grid-menu__button-label button-1",children:t.label})]})}function Ef(e){const{categories:t=[],selected:a,onSelect:o,size:n="medium"}=e||{},i=a!==void 0,[l,c]=s.useState(()=>i?null:(t&&t[0]?.key)??null),d=i?a:l,u=s.useRef(o);s.useEffect(()=>{u.current=o});const p=s.useRef(!1),h=(t&&t[0]?.key)??null;s.useEffect(()=>{if(i||p.current||!h)return;p.current=!0;const g=l??h;l==null&&c(g),u.current?.(g)},[i,h]);const m=s.useCallback(g=>{const v=d===g?null:g;p.current=!0,i||c(v),o?.(v)},[d,i,o]);return r.jsx("div",{className:`icon-grid-menu icon-grid-menu--${n}`,children:(t||[]).map(g=>r.jsx(mB,{category:g,isSelected:d===g.key,onClick:()=>m(g.key)},g.key))})}var bB=".ihabdevteam-core-scope .choice-chips{display:block;width:100%}.ihabdevteam-core-scope .choice-chips--medium{margin-bottom:60px}.ihabdevteam-core-scope .choice-chips--small{margin-bottom:var(--spacing-l)}.ihabdevteam-core-scope .choice-chips__list{align-items:center;display:flex;flex-wrap:wrap;gap:var(--spacing-s);justify-content:center;padding-bottom:6px}.ihabdevteam-core-scope .choice-chips__list::-webkit-scrollbar{height:8px}.ihabdevteam-core-scope .choice-chips__list::-webkit-scrollbar-thumb{background:rgba(0,0,0,.08);border-radius:var(--radius-sm)}.ihabdevteam-core-scope .choice-chips__button{background:var(--color-deepWhite)!important;border:1px solid var(--color-whiteLine)!important;border-radius:var(--radius-s)!important;color:var(--color-darkGray)!important;height:40px!important;padding:0 24px!important;transition:all .12s!important;white-space:nowrap}.ihabdevteam-core-scope .choice-chips__button:hover{border-color:var(--color-main)!important}.ihabdevteam-core-scope .choice-chips--small .choice-chips__button{height:32px!important;padding:0 16px!important}.ihabdevteam-core-scope .choice-chips--small .choice-chips__list{gap:var(--spacing-xs)}.ihabdevteam-core-scope .choice-chips__button.is-selected{animation:chip-sub-to-main .36s cubic-bezier(.4,0,.2,1) forwards;background:var(--color-main)!important;border:1px solid var(--color-main)!important;box-shadow:var(--shadow-dropdown);color:#fff!important}@keyframes chip-sub-to-main{0%{background-color:var(--color-sub)}to{background-color:var(--color-main)}}";oe(bB);function Df({subs:e=[],selected:t,onSelect:a,size:o="medium"}){const n=o==="small"?32:40;return r.jsx("div",{className:`choice-chips choice-chips--${o}`,children:r.jsx("div",{className:"choice-chips__list",children:e.map(i=>r.jsx(fe,{htmlType:"button",size:n,type:"bar",label:i.label,selected:t===i.key,className:"choice-chips__button",onClick:()=>a?.(i.key)},i.key))})})}var gB=".ihabdevteam-core-scope .site-footer{background:var(--color-deepWhite);border-top:1px solid var(--color-whiteLine);box-sizing:border-box;color:var(--color-gray);padding:var(--spacing-page)}.ihabdevteam-core-scope .site-footer__top{align-items:flex-start;display:flex;gap:40px;justify-content:space-between}.ihabdevteam-core-scope .site-footer__brand{flex:0 0 220px;width:220px}.ihabdevteam-core-scope .site-footer__lead{color:var(--color-gray);text-align:left}.ihabdevteam-core-scope .site-footer__links{align-items:flex-start;display:flex;flex:1 1 auto;flex-wrap:wrap;gap:100px 10px;min-width:320px}.ihabdevteam-core-scope .site-footer__column{flex:0 0 160px;min-width:160px;text-align:left}.ihabdevteam-core-scope .site-footer__column-title{color:var(--color-lightGray)}.ihabdevteam-core-scope .footer-title{color:var(--color-lightGray);display:inline-block;font-size:13px;font-weight:600;line-height:20px;width:80px}.ihabdevteam-core-scope .site-footer__column ul{list-style:none;margin:10px 0 0;padding:0}.ihabdevteam-core-scope .site-footer__column li{margin-bottom:6px}.ihabdevteam-core-scope .footer-link,.ihabdevteam-core-scope .site-footer__column a{color:var(--color-lightGray);text-decoration:none}.ihabdevteam-core-scope .footer-link{align-items:center;display:inline-flex;font-size:13px;line-height:20px;min-height:24px;min-width:24px;transition:color .12s ease}.ihabdevteam-core-scope .footer-copyright,.ihabdevteam-core-scope .footer-meta{line-height:18px}.ihabdevteam-core-scope .footer-link:focus,.ihabdevteam-core-scope .footer-link:hover{color:var(--color-main);text-decoration:none}.ihabdevteam-core-scope .site-footer__rule{border:none;border-top:1px solid var(--color-darkWhite);margin:40px 0}.ihabdevteam-core-scope .site-footer__bottom{align-items:center;display:flex;gap:40px;justify-content:flex-start}.ihabdevteam-core-scope .site-footer__logo{height:52px}.ihabdevteam-core-scope .site-footer__bottom .site-footer__brand{align-items:center;display:flex;justify-content:center}.ihabdevteam-core-scope .site-footer__meta{color:var(--color-lightGray);text-align:left}.ihabdevteam-core-scope .site-footer__copyright{align-items:center;box-sizing:border-box;color:var(--color-lightGray);display:flex;justify-content:center;margin:var(--spacing-page) 0 0 0;text-align:center;width:100%}@media (max-width:1024px){.ihabdevteam-core-scope .site-footer__top{flex-direction:column;gap:var(--spacing-page)}.ihabdevteam-core-scope .site-footer__brand{flex:0 0 auto;width:100%}.ihabdevteam-core-scope .site-footer__links{gap:20px 10px;margin:0;min-width:0;width:100%}.ihabdevteam-core-scope .site-footer__bottom{align-items:flex-start;flex-direction:column;gap:var(--spacing-page)}.ihabdevteam-core-scope .site-footer__meta{width:100%}.ihabdevteam-core-scope .site-footer__logo{height:50px}}@media (max-width:767px){.ihabdevteam-core-scope .site-footer__logo{height:48px}}";oe(gB);function Nf({onTermsClick:e,onPrivacyClick:t,contact:a}={}){const o=a?.email??"support@ihab.co.kr",n=a?.tel??"031-380-3724",{t:i}=_e.useTranslation();return r.jsx("footer",{className:"site-footer",children:r.jsxs("div",{className:"safearea",children:[r.jsxs("div",{className:"site-footer__top",children:[r.jsx("div",{className:"site-footer__brand",children:r.jsx("div",{className:"site-footer__lead h3",children:i("footer.lead",`\uC544\uC774\uD574\uBE0C\uB294 \uC18C\uB9AC\uB97C \uD1B5\uD574
1058
1058
  \uC2E0\uB8B0\uB97C \uC313\uACE0
1059
1059
  \uD68C\uBCF5\uC744 \uB3D5\uC2B5\uB2C8\uB2E4.`).split(`
1060
- `).map((l,c,d)=>r.jsxs(s.Fragment,{children:[l,c<d.length-1&&r.jsx("br",{})]},c))})}),r.jsxs("div",{className:"site-footer__links",children:[r.jsxs("div",{className:"site-footer__column",children:[r.jsx("div",{className:"site-footer__column-title footer-title",children:i("footer.site.title","\uC0AC\uC774\uD2B8")}),r.jsxs("ul",{children:[r.jsx("li",{children:r.jsx("a",{className:"footer-link",href:"https://www.ihab.co.kr/",target:"_blank",rel:"noopener noreferrer",children:"IHAB"})}),r.jsx("li",{children:r.jsx("a",{className:"footer-link",href:"https://speechear.ihab.co.kr/",target:"_blank",rel:"noopener noreferrer",children:i("footer.site.malgwi","\uB9D0\uADC0")})}),r.jsx("li",{children:r.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")})}),r.jsx("li",{children:r.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")})}),r.jsx("li",{children:r.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")})})]})]}),r.jsxs("div",{className:"site-footer__column",children:[r.jsx("div",{className:"site-footer__column-title footer-title",children:i("footer.sns.title","SNS")}),r.jsxs("ul",{children:[r.jsx("li",{children:r.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")})}),r.jsx("li",{children:r.jsx("a",{className:"footer-link",href:"https://www.instagram.com/ihab.official.yt/",target:"_blank",rel:"noopener noreferrer",children:"Instagram"})}),r.jsx("li",{children:r.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"})})]})]}),r.jsxs("div",{className:"site-footer__column",children:[r.jsx("div",{className:"site-footer__column-title footer-title",children:i("footer.policy.title","\uC815\uCC45")}),r.jsxs("ul",{children:[r.jsx("li",{children:r.jsx("a",{className:"footer-link",href:"#",onClick:l=>{e&&(l.preventDefault(),e())},children:i("footer.policy.terms","\uC774\uC6A9\uC57D\uAD00")})}),r.jsx("li",{children:r.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")})})]})]})]})]}),r.jsx("hr",{className:"site-footer__rule"}),r.jsxs("div",{className:"site-footer__bottom",children:[r.jsx("div",{className:"site-footer__brand",children:r.jsx("img",{src:Id,alt:"IHAB",className:"site-footer__logo"})}),r.jsxs("div",{className:"site-footer__meta",children:[r.jsxs("div",{children:[r.jsx("span",{className:"footer-title",children:i("footer.ceo","\uB300\uD45C")}),r.jsx("span",{className:"footer-meta caption-1",children:i("footer.ceoName","\uD55C\uC9C0\uD61C")})]}),r.jsxs("div",{children:[r.jsx("span",{className:"footer-title",children:i("footer.address","\uC8FC\uC18C")}),r.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")})]}),r.jsxs("div",{children:[r.jsx("span",{className:"footer-title",children:i("footer.support","\uACE0\uAC1D\uC13C\uD130")}),r.jsxs("span",{className:"footer-meta caption-1",children:[o," \xA0 ",n]})]})]})]}),r.jsx("div",{className:"site-footer__copyright footer-copyright caption-1",children:"\xA9 IHAB, Inc. All rights reserved."})]})})}var fB='.ihabdevteam-core-scope .landing-header{background:var(--landing-header-bg,var(--color-deepWhite));border-bottom:1px solid rgba(15,18,60,.05);border-bottom:1px solid var(--landing-header-border,rgba(15,18,60,.05));position:sticky;top:0;transform:translateZ(0);will-change:transform;z-index:500;z-index:var(--z-sticky,500)}.ihabdevteam-core-scope .landing-header__inner{align-items:center;display:flex;height:72px;height:var(--landing-header-height,72px);justify-content:space-between;position:relative}.ihabdevteam-core-scope .landing-header__brand{align-items:center;display:flex;flex:0 0 auto;margin-right:auto;text-decoration:none}.ihabdevteam-core-scope .landing-header__logo{display:block;height:40px;height:var(--landing-header-logo-height,40px);max-width:none;transform-origin:left center;transition:transform .3s cubic-bezier(.2,.9,.2,1.2),filter .3s;width:auto}.ihabdevteam-core-scope .landing-header__brand:hover .landing-header__logo{filter:brightness(1.08);transform:scale(1.05)}.ihabdevteam-core-scope .landing-header__links{align-items:center;color:var(--landing-header-link-color,var(--color-deepGray));display:flex;font-size:15px;font-weight:500;gap:36px;left:50%;position:absolute;transform:translateX(-50%)}.ihabdevteam-core-scope .landing-header__links a{color:inherit;padding:6px 0;position:relative;text-decoration:none;transition:color .2s}.ihabdevteam-core-scope .landing-header__links a:hover{color:var(--landing-header-link-hover,var(--color-main))}.ihabdevteam-core-scope .landing-header__links a:after{background:linear-gradient(90deg,var(--color-main),var(--color-sub));border-radius:1px;bottom:0;content:"";height:2px;left:0;position:absolute;right:100%;transition:right .35s cubic-bezier(.2,.7,.2,1)}.ihabdevteam-core-scope .landing-header__links a:hover:after{right:0}.ihabdevteam-core-scope .landing-header__actions{align-items:center;display:flex;gap:8px;gap:var(--spacing-xs,8px)}.ihabdevteam-core-scope .landing-header__toggle{align-items:center;background:none;border:0;color:var(--landing-header-link-color,var(--color-deepGray));cursor:pointer;display:none;height:44px;justify-content:center;margin-right:-10px;width:44px}.ihabdevteam-core-scope .landing-header__burger{display:block;height:14px;position:relative;width:22px}.ihabdevteam-core-scope .landing-header__burger>span{background:currentColor;border-radius:1px;height:2px;inset-inline:0;position:absolute;transition:transform .2s cubic-bezier(.2,.7,.2,1),opacity .2s cubic-bezier(.2,.7,.2,1)}.ihabdevteam-core-scope .landing-header__burger>span:first-child{top:0}.ihabdevteam-core-scope .landing-header__burger>span:nth-child(2){top:6px}.ihabdevteam-core-scope .landing-header__burger>span:nth-child(3){top:12px}.ihabdevteam-core-scope .landing-header__toggle--open .landing-header__burger>span:first-child{transform:translateY(6px) rotate(45deg)}.ihabdevteam-core-scope .landing-header__toggle--open .landing-header__burger>span:nth-child(2){opacity:0}.ihabdevteam-core-scope .landing-header__toggle--open .landing-header__burger>span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}.ihabdevteam-core-scope .landing-header__drawer{background:var(--landing-header-bg,var(--color-deepWhite));border-top:1px solid rgba(15,18,60,.05)}.ihabdevteam-core-scope .landing-header__drawer-item{display:block}.ihabdevteam-core-scope .landing-header__drawer-item a{align-items:center;color:var(--landing-header-link-color,var(--color-deepGray));display:flex;font-size:15px;font-weight:500;min-height:48px;text-decoration:none;transition:color .2s}.ihabdevteam-core-scope .landing-header__drawer-item a:hover,.ihabdevteam-core-scope .landing-header__drawer-item a[aria-current=page]{color:var(--landing-header-link-hover,var(--color-main))}@media (max-width:960px){.ihabdevteam-core-scope .landing-header__links{display:none}.ihabdevteam-core-scope .landing-header__toggle{display:flex}}@media (min-width:961px){.ihabdevteam-core-scope .landing-header__drawer{display:none}}';oe(fB);function Tf({logo:e,logoAlt:t="",logoHref:a,links:o=[],actions:n,className:i,containerClassName:l,renderLink:c,menuLabel:d}){const{t:u}=_e.useTranslation(),p=d??{open:u("header.menuOpen","\uBA54\uB274 \uC5F4\uAE30"),close:u("header.menuClose","\uBA54\uB274 \uB2EB\uAE30")},[h,m]=s.useState(!1),g=s.useId(),v=s.useRef(null);s.useEffect(()=>{if(!h)return;const _=Po(()=>{const C=document.getElementById(g);C&&C.contains(document.activeElement)&&v.current?.focus(),m(!1)}),b=typeof window<"u"&&window.matchMedia?window.matchMedia("(min-width: 961px)"):null,y=C=>{C.matches&&m(!1)};return b&&(b.matches&&m(!1),b.addEventListener?.("change",y)),()=>{_(),b?.removeEventListener?.("change",y)}},[h,g]);const f=l?`${l} landing-header__inner`:"landing-header__inner",x=(_,b)=>c?c(_,{onClick:b}):r.jsx("a",{href:_.href,onClick:b,"aria-current":_.current?"page":void 0,children:_.label});return r.jsxs("header",{className:i?`landing-header ${i}`:"landing-header",children:[r.jsxs("div",{className:f,children:[e!=null&&(()=>{const _=typeof e=="string"?r.jsx("img",{src:e,alt:t,className:"landing-header__logo"}):e;return a?r.jsx("a",{href:a,className:"landing-header__brand",children:_}):r.jsx("div",{className:"landing-header__brand",children:_})})(),o.length>0&&r.jsx("nav",{className:"landing-header__links",children:o.map((_,b)=>r.jsx("span",{children:x(_)},`${b}:${_.href}`))}),r.jsxs("div",{className:"landing-header__actions",children:[n,o.length>0&&r.jsx("button",{ref:v,type:"button",onClick:()=>m(_=>!_),"aria-expanded":h,"aria-controls":g,"aria-label":h?p.close:p.open,className:h?"landing-header__toggle landing-header__toggle--open":"landing-header__toggle",children:r.jsxs("span",{className:"landing-header__burger",children:[r.jsx("span",{}),r.jsx("span",{}),r.jsx("span",{})]})})]})]}),o.length>0&&r.jsx("nav",{id:g,hidden:!h,className:"landing-header__drawer",children:r.jsx("div",{className:l??void 0,children:o.map((_,b)=>r.jsx("span",{className:"landing-header__drawer-item",children:x(_,()=>m(!1))},`${b}:${_.href}`))})})]})}var vB=".ihabdevteam-core-scope .bottom-sticky{animation:bottom-sticky-in .4s cubic-bezier(.2,.9,.2,1) both;bottom:24px;bottom:var(--bottom-sticky-offset,24px);left:50%;max-width:680px;max-width:var(--bottom-sticky-max-width,680px);position:fixed;transform:translateX(-50%);width:calc(100% - 48px);z-index:500;z-index:var(--z-sticky,500)}@keyframes bottom-sticky-in{0%{opacity:0;transform:translateX(-50%) translateY(16px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}.ihabdevteam-core-scope .bottom-sticky__inner{align-items:center;background:var(--bottom-sticky-bg,var(--color-pureWhite));border-radius:20px;border-radius:var(--radius-m,20px);box-shadow:0 8px 40px rgba(15,18,60,.18),0 2px 8px rgba(15,18,60,.06);display:flex;gap:16px;gap:var(--spacing-m,16px);justify-content:space-between;padding:12px 12px 12px 24px;transition:box-shadow .2s,transform .2s}.ihabdevteam-core-scope .bottom-sticky__inner--clickable{cursor:pointer}.ihabdevteam-core-scope .bottom-sticky__inner--clickable:hover{border:1px solid var(--color-main);box-shadow:0 16px 56px color-mix(in srgb,var(--color-main) 30%,transparent),0 4px 12px color-mix(in srgb,var(--color-main) 15%,transparent);transform:translateY(-4px)}.ihabdevteam-core-scope .bottom-sticky__content{align-items:center;display:flex;flex:1;gap:12px;gap:var(--spacing-s,12px);justify-content:center}.ihabdevteam-core-scope .bottom-sticky__tagline{align-items:center;color:var(--color-black);display:flex;gap:0;margin:0;white-space:nowrap}.ihabdevteam-core-scope .bottom-sticky__tagline-highlight{background:linear-gradient(90deg,var(--color-main),var(--color-sub),var(--color-infoLink));-webkit-background-clip:text;background-clip:text;color:transparent;display:inline}.ihabdevteam-core-scope .bottom-sticky__tagline-part{align-items:center;display:flex;white-space:nowrap}.ihabdevteam-core-scope .bottom-sticky__tagline-logo{display:block;height:32px;width:auto}@media (max-width:600px){.ihabdevteam-core-scope .bottom-sticky{bottom:16px;bottom:var(--bottom-sticky-offset,16px);width:calc(100% - 32px)}.ihabdevteam-core-scope .bottom-sticky__inner{align-items:stretch;flex-direction:column;gap:12px;gap:var(--spacing-s,12px);padding:16px;padding:var(--spacing-m,16px)}.ihabdevteam-core-scope .bottom-sticky__content{flex:none;gap:6px;justify-content:center}.ihabdevteam-core-scope .bottom-sticky__tagline{flex-wrap:wrap;justify-content:center;text-align:center;white-space:normal}.ihabdevteam-core-scope .bottom-sticky__tagline-logo{height:26px}}";oe(vB);function jf({children:e,action:t,onClick:a,className:o}){const n=a?"bottom-sticky__inner bottom-sticky__inner--clickable":"bottom-sticky__inner";return r.jsx("div",{className:o?`bottom-sticky ${o}`:"bottom-sticky",children:r.jsxs("div",{className:n,onClick:a,...A0(a),children:[r.jsx("div",{className:"bottom-sticky__content",children:e}),t]})})}const Uo=9,Lf=e=>Math.round(Math.min(Uo,Math.max(0,e))/Uo*100),Mf=e=>e/100*Uo,kr=2,Bu=.1,xB=e=>Math.min(kr,Math.max(0,e)),CB=.1,_B=e=>Math.round(e*1e6)/1e6;function Br(e){const{noiseRatio:t}=e;if(typeof t=="number"&&Number.isFinite(t))return xB(t);const a=Math.min(Uo,Math.max(0,Number(e.level)||0))/Uo,o=Number(e.mainVolume);return o>0?a>0?_B(Math.min(kr,Math.max(CB,a/o))):0:1}const $f=e=>Math.min(1,Math.max(0,Number(e.mainVolume)||0));function Au(e){return $f(e)}function Ji(e){return $f(e)*Br(e)}function Qi(e,t=Rn()){const a=Number.isFinite(t)&&t>0?t:1;return Math.min(1,Ji(e)/a)}function Ar(e,t){const a={...e,...t??{}};return t&&"level"in t&&typeof t.noiseRatio!="number"&&(a.noiseRatio=Br({level:a.level,mainVolume:a.mainVolume})),a}const Sr={enabled:!0,type:"defaultNoise",level:4.5,noiseRatio:1,speed:1,mainVolume:1,mainSpeed:1},es=s.createContext(null);function Bn(){return s.useContext(es)}const Su=e=>`${Ls()}/${e}`,Rf=e=>Array.from({length:10},(t,a)=>Su(`${e}-${String(a+1).padStart(2,"0")}.mp3`)),ts={get defaultNoise(){return Su("noise1.mp3")},get street(){return Rf("noise2")},get restaurant(){return Rf("noise3")},get buzz(){return Su("noise4.mp3")}};function yB(e){const t=Math.floor(Math.random()*10);switch(e){case"defaultNoise":return ts.defaultNoise;case"street":return ts.street[t];case"restaurant":return ts.restaurant[t];case"buzz":return ts.buzz;default:return null}}function wB({noisePlayer:e,audioRef:t,playbackStateRef:a}){const o=s.useRef(e?.registerAnalyser);o.current=e?.registerAnalyser;const n=s.useRef(null),[i,l]=s.useState(null),c=s.useRef(null),d=s.useRef(null),u=s.useRef(null),p=s.useRef(null),h=s.useRef(0),m=s.useRef(null),g=s.useCallback(()=>{p.current!==null&&(cancelAnimationFrame(p.current),p.current=null),m.current!==null&&(clearTimeout(m.current),m.current=null)},[]),v=s.useCallback((y,C=250)=>{const k=n.current;if(!k)return;const w=d.current;if(w){d.current=null;try{k.pause()}catch{}k.src=w,k.load()}if(!k.src)return;h.current+=1,g();try{Ir(),Xo(k).then(D=>{if(n.current===k)try{o.current?.("noise",D)}catch{}})}catch{}const A=k.paused?0:Jo(k);k.paused&&La(k,0),k.play().catch(()=>{});const B=performance.now(),S=()=>{const D=Math.min(1,(performance.now()-B)/C);try{La(k,A+(y-A)*D)}catch{}D<1?p.current=requestAnimationFrame(S):p.current=null};p.current=requestAnimationFrame(S)},[g]),f=s.useCallback((y=250,C)=>{const k=n.current;if(!k||k.paused){C?.();return}const w=++h.current;g();const A=performance.now(),B=Jo(k),S=()=>{const D=Math.min(1,(performance.now()-A)/y);try{La(k,B*(1-D))}catch{}if(D<1)p.current=requestAnimationFrame(S);else{p.current=null,m.current!==null&&(clearTimeout(m.current),m.current=null);try{k.pause()}catch{}C?.()}};p.current=requestAnimationFrame(S),m.current=setTimeout(()=>{if(m.current=null,h.current===w){p.current!==null&&(cancelAnimationFrame(p.current),p.current=null);try{k.paused||(La(k,0),k.pause(),C?.())}catch{}}},y+150)},[g]);s.useEffect(()=>{const y=document.createElement("audio");return y.loop=!0,y.crossOrigin="anonymous",n.current=y,()=>{g();try{y.pause(),y.src=""}catch{}n.current=null,c.current=null,d.current=null}},[g]);const x=e?Qi(e.settings):0,_=!!e?.settings.enabled&&x>0;s.useEffect(()=>{if(!_)return;let y=0;const C=setInterval(()=>{const k=n.current;if(!k||k.paused){y=0;return}const w=t.current;if(w&&!w.paused&&!w.ended||a.current==="playing"){y=0;return}y+=1,y>=2&&(y=0,f())},400);return()=>clearInterval(C)},[f,_,t,a]),s.useEffect(()=>{const y=()=>{const C=n.current;if(document.hidden){if(C&&!C.paused){g();try{C.pause()}catch{}}return}if(!C||!C.paused)return;const k=t.current,w=!!k&&!k.paused&&!k.ended||a.current==="playing",A=u.current;w&&A?.enabled&&A.volume>0&&v(A.volume)};return document.addEventListener("visibilitychange",y),()=>document.removeEventListener("visibilitychange",y)},[g,v,t,a]),s.useEffect(()=>{u.current=e?{enabled:e.settings.enabled,volume:x,type:e.settings.type}:null},[e,e?.settings.enabled,x,e?.settings.type]);const b=s.useRef(null);return s.useEffect(()=>()=>{b.current?.(),b.current=null},[]),s.useEffect(()=>{const y=e?.settings,C=n.current;if(!C)return;const k=y?Qi(y):0;if(!y||!y.enabled||k===0){f();return}if(c.current!==y.type){const w=yB(y.type);w&&(c.current=y.type,l(w),d.current=w,f(150,()=>{if(d.current!==w)return;d.current=null,C.src=w,C.load();const A=t.current;if(A&&!A.paused){b.current?.();const B=()=>{C.removeEventListener("canplay",B),b.current===S&&(b.current=null);const D=t.current,T=u.current;D&&!D.paused&&!D.ended&&T?.enabled&&T.volume>0&&v(T.volume)},S=()=>C.removeEventListener("canplay",B);b.current=S,C.addEventListener("canplay",B)}}))}else{const w=t.current,A=!!w&&!w.paused&&!w.ended||a.current==="playing";if(A&&d.current)v(k);else if(A&&C.paused&&C.src)v(k);else if(!C.paused)if(!A)f();else{g();const B=Jo(C),S=performance.now(),D=()=>{const T=Math.min(1,(performance.now()-S)/150);try{La(C,B+(k-B)*T)}catch{}T<1?p.current=requestAnimationFrame(D):p.current=null};p.current=requestAnimationFrame(D)}}},[e?.settings,e?.settings.enabled,x,e?.settings.type,g,v,f,t,a,u]),s.useEffect(()=>{const y=n.current;if(y)try{y.playbackRate=Math.min(1.25,Math.max(.75,e?.settings.speed??1))}catch{}},[e?.settings.speed]),{noiseAudioRef:n,activeNoiseUrl:i,noiseSettingsRef:u,cancelNoiseFade:g,fadeInNoise:v,fadeOutNoise:f}}function kB({ttsText:e,playbackRate:t,mainVolume:a,fillRef:o,waveProgressRef:n,setProgress:i,setPlaybackState:l,setStateLocal:c,fadeInNoise:d,fadeOutNoise:u,noiseSettingsRef:p,onDoneRef:h,handleEndRef:m}){const g=s.useRef(null),v=s.useRef(0),f=s.useRef(null),x=s.useRef(0),_=s.useRef(!1);s.useEffect(()=>()=>{x.current++;try{if(f.current&&(cancelAnimationFrame(f.current),f.current=null),_.current&&window.speechSynthesis){try{window.speechSynthesis.cancel()}catch{}_.current=!1}}catch{}},[]);const b=(k,w=1)=>{try{const A=(k||"").trim().split(/\s+/).filter(Boolean).length||Math.max(1,(k||"").length);return Math.max(700,Math.round(A*300/Math.max(.25,w)))}catch{return 1200}},y=s.useCallback(k=>{if(typeof window>"u"||!window.speechSynthesis){try{typeof h.current=="function"&&h.current(!1)}catch{}return}const w=window.speechSynthesis,A=++x.current;try{try{w.cancel()}catch{}const B=k??e,S=Array.isArray(B)?B.filter(N=>!!N):[B||""];S.length===0&&S.push("");const D=Math.max(.3,Math.min(3,t));v.current=S.reduce((N,j)=>N+b(j,D||1),0),g.current=performance.now(),i(0),l("playing"),c("playMode");const T=p.current;T?.enabled&&(T?.volume??0)>0&&d(T.volume);const I=()=>{try{const N=g.current||performance.now(),j=performance.now()-N,H=v.current||1200,X=Math.min(1,j/H);try{o.current&&(o.current.style.left=`${X*100}%`),n.current&&n.current.style.setProperty("--progress",String(X))}catch{}X<1&&(f.current=requestAnimationFrame(I))}catch{}},L=()=>{if(A===x.current)try{f.current&&(cancelAnimationFrame(f.current),f.current=null),i(1),l("stopped");try{m.current?.()}catch{try{typeof h.current=="function"&&h.current(!0)}catch{}}}catch{}},V=N=>{const j=new SpeechSynthesisUtterance(S[N]);try{j.rate=D}catch{}try{j.volume=Math.max(0,Math.min(1,a))}catch{}j.onend=()=>{if(A===x.current){if(N<S.length-1){try{V(N+1)}catch{L()}return}L()}},j.onerror=()=>{L()},j.onstart=()=>{if(!(N>0))try{f.current&&(cancelAnimationFrame(f.current),f.current=null),f.current=requestAnimationFrame(I)}catch{}},_.current=!0,w.speak(j)};try{V(0)}catch{try{typeof h.current=="function"&&h.current(!0)}catch{}}}catch{try{typeof h.current=="function"&&h.current(!0)}catch{}}},[e,t,a,d,o,n,i,l,c,p,h,m]),C=s.useCallback(()=>{x.current++;try{if(window.speechSynthesis)try{window.speechSynthesis.cancel()}catch{}f.current&&(cancelAnimationFrame(f.current),f.current=null),u(),g.current=null}catch{}l("stopped"),c("active"),i(0)},[u,l,c,i]);return{startTTS:y,stopTTS:C}}var BB='.ihabdevteam-core-scope .audio-player{align-items:center;display:flex;flex-direction:column;width:100%}.ihabdevteam-core-scope .audio-player__no-waveform{align-items:center;align-self:flex-start;color:var(--color-lightGray);display:flex;gap:4px;margin:6px 0 0}.ihabdevteam-core-scope .audio-player__no-waveform .iconRenderer-icon{align-items:center;display:inline-flex}.ihabdevteam-core-scope .audio-player__panel{align-items:center;background:linear-gradient(90deg,var(--color-main),var(--color-sub));background:linear-gradient(var(--angle,90deg),var(--color-main),var(--color-sub));border-radius:var(--radius-m);display:flex;height:120px;position:relative;width:100%}.ihabdevteam-core-scope .audio-player.is-disabled .audio-player__panel{background:var(--color-darkWhite);border:1px solid var(--color-darkWhite)}.ihabdevteam-core-scope .audio-player.is-disabled .audio-player__buttons,.ihabdevteam-core-scope .audio-player.is-disabled .audio-player__play,.ihabdevteam-core-scope .audio-player.is-disabled .audio-player__wave{pointer-events:none}.ihabdevteam-core-scope .audio-player.is-disabled .audio-player__buttons .button,.ihabdevteam-core-scope .audio-player.is-disabled .audio-player__play .button{opacity:.7}.ihabdevteam-core-scope .audio-player__play{align-items:center;bottom:0;display:flex;height:100%;justify-content:center;left:0;opacity:0;pointer-events:none;position:relative;right:0;top:0;transition:opacity .16s ease,transform .16s ease;width:100%;z-index:10}.ihabdevteam-core-scope .audio-player__play.is-visible{opacity:1;pointer-events:auto}.ihabdevteam-core-scope .audio-player__panel>.button{left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);transition:opacity .16s ease,transform .16s ease;will-change:opacity,transform;z-index:35}.ihabdevteam-core-scope .audio-player__button{align-items:center;background:transparent;border:0;cursor:pointer;display:flex;inset:0;justify-content:center;padding:0;position:absolute;z-index:35}.ihabdevteam-core-scope .audio-player__button-triangle-wrap{align-items:center;display:flex;height:90px;justify-content:center;transition:transform .32s cubic-bezier(.2,.7,.2,1);width:90px}.ihabdevteam-core-scope .audio-player__button:hover .audio-player__button-triangle-wrap{transform:scale(1.18)}.ihabdevteam-core-scope .audio-player__button:active .audio-player__button-triangle-wrap{transform:scale(1.06)}.ihabdevteam-core-scope .audio-player__button-triangle{height:100%;width:100%}.ihabdevteam-core-scope .audio-player__button-triangle path{fill:none;stroke:#fff;stroke-linecap:round;stroke-linejoin:round;stroke-width:2.6}.ihabdevteam-core-scope .audio-player.is-disabled .audio-player__button{cursor:default;opacity:.5;pointer-events:none}.ihabdevteam-core-scope .audio-player__slider{align-items:center;bottom:50px;box-sizing:border-box;display:flex;left:20px;pointer-events:none;position:absolute;right:20px;top:20px}.ihabdevteam-core-scope .audio-player__buttons{align-items:center;border-radius:999px;bottom:10px;box-sizing:border-box;display:flex;gap:0;height:28px;justify-content:center;left:0;pointer-events:auto;position:absolute;right:0;z-index:40}.ihabdevteam-core-scope .audio-player__source-buttons{align-items:center;border:1px solid var(--color-white-a30);border-radius:var(--radius-m);display:inline-flex;justify-content:center;overflow:visible}.ihabdevteam-core-scope .audio-player__source-buttons .button{flex:0 0 auto;max-width:60px}.ihabdevteam-core-scope .audio-player__buttons .button[aria-label=\\B2E4\\C74C],.ihabdevteam-core-scope .audio-player__buttons .button[aria-label=\\C774\\C804],.ihabdevteam-core-scope .audio-player__buttons .button[aria-label=\\C815\\C9C0]{display:none}.ihabdevteam-core-scope .audio-player__buttons>.button{align-items:center;display:inline-flex;justify-content:center;margin:0;width:auto}.ihabdevteam-core-scope .audio-player__fill{backface-visibility:hidden;background:var(--color-pureWhite);border-radius:var(--radius-sm);height:100%;left:0;opacity:0;pointer-events:none;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) scaleY(0);transform-origin:center center;transition:transform .28s cubic-bezier(.2,.8,.2,1),opacity .16s ease;width:8px;will-change:transform,opacity;z-index:70}.ihabdevteam-core-scope .audio-player__fill.is-visible{opacity:1}.ihabdevteam-core-scope .audio-player__fill.is-expanded{transform:translateX(-50%) translateY(-50%) scaleY(1)}.ihabdevteam-core-scope .audio-player__fill.is-paused{transition:opacity .16s ease}.ihabdevteam-core-scope .audio-player__fill.is-out{animation:audio-player-fill-out .28s cubic-bezier(.2,.8,.2,1) forwards}@keyframes audio-player-fill-out{0%{opacity:1;transform:translateX(-50%) translateY(-50%) scaleY(1)}to{opacity:0;transform:translateX(-50%) translateY(-50%) scaleY(0)}}.ihabdevteam-core-scope .audio-player__loading{align-items:center;background:transparent;border-radius:var(--radius-sm);color:rgba(0,0,0,.85);color:var(--audio-loading-foreground,rgba(0,0,0,.85));display:inline-flex;font-size:13px;gap:var(--spacing-xs);left:50%;padding:0;pointer-events:none;position:absolute;top:50%;transform:translate(-50%,-50%);z-index:999}.ihabdevteam-core-scope .audio-player__debug{align-items:center;background:hsla(0,0%,100%,.06);border-radius:18px;color:#fff;display:flex;font-size:12px;gap:8px;padding:6px 10px;pointer-events:none;position:absolute;right:12px;top:12px}.ihabdevteam-core-scope .audio-player__debug-dot{border-radius:10px;box-shadow:0 0 6px rgba(0,0,0,.4);display:inline-block;height:10px;width:10px}.ihabdevteam-core-scope .audio-player__loading .audio-player__loading-text,.ihabdevteam-core-scope .audio-player__panel.is-loading .audio-player__loading-text{display:none}.ihabdevteam-core-scope .audio-player__loading-spinner{animation:audio-player-spinner .9s linear infinite;border:4px solid hsla(0,0%,100%,.2);border-radius:50%;border-top-color:#fff;filter:drop-shadow(0 2px 6px rgba(0,0,0,.25));height:40px;width:40px}@keyframes audio-player-spinner{to{transform:rotate(1turn)}}.ihabdevteam-core-scope .audio-player__wave{height:90%;height:var(--wave-h,90%);position:absolute;transition:height .35s cubic-bezier(.22,.9,.3,1)}.ihabdevteam-core-scope .audio-player__wave,.ihabdevteam-core-scope .audio-player__wave-inner{align-items:center;display:flex;justify-content:center;pointer-events:none;width:100%;z-index:60}.ihabdevteam-core-scope .audio-player__wave-inner{cursor:default;gap:3px;gap:var(--bar-gap,3px);height:100%;margin:0 auto;padding:0}.ihabdevteam-core-scope .audio-player__wave-inner:not(.is-ready) .audio-player__bar:after{opacity:0}.ihabdevteam-core-scope .audio-player__wave-inner.is-ready .audio-player__bar:after{animation:wave-bar-in .35s cubic-bezier(.22,.9,.3,1) backwards;animation-delay:0ms;animation-delay:calc(var(--i, 0)*2ms)}@keyframes wave-bar-in{0%{opacity:0;transform:translateY(-50%) scaleY(.05)}to{opacity:1;transform:translateY(-50%) scaleY(.15);transform:translateY(-50%) scaleY(var(--val,.15))}}.ihabdevteam-core-scope .audio-player__wave-inner.is-ready .audio-player__bar--hidden:after,.ihabdevteam-core-scope .audio-player__wave-noise.is-ready .audio-player__bar--hidden:after{animation:none;opacity:0}.ihabdevteam-core-scope .audio-player__wave-played{bottom:0;clip-path:inset(0 100% 0 0);clip-path:inset(0 calc((1 - var(--progress, 0))*100%) 0 0);left:0;pointer-events:none;position:absolute;right:0;top:0}.ihabdevteam-core-scope .audio-player__bar{box-sizing:border-box;flex:0 0 3px;flex:0 0 var(--bar-w,3px);height:100%;position:relative}.ihabdevteam-core-scope .audio-player__wave-unplayed .audio-player__bar:after{background:color-mix(in srgb,var(--color-lightMain),var(--color-lightSub) 0);border-radius:999px;content:"";height:100%;height:var(--wave-h1,100%);left:0;opacity:1;position:absolute;right:0;top:50%;transform:translateY(-50%) scaleY(.15);transform:translateY(-50%) scaleY(var(--val,.15));transform-origin:center center;transition:transform .35s cubic-bezier(.22,.9,.3,1);z-index:61}@supports (color:color-mix(in lch,red,blue)) and (top:var(--f )){.ihabdevteam-core-scope .audio-player__wave-unplayed .audio-player__bar:after{background:color-mix(in srgb,var(--color-lightMain),var(--color-lightSub) calc(var(--mix, 0)*100%))}}.ihabdevteam-core-scope .audio-player__wave-played .audio-player__bar:after{background:color-mix(in srgb,var(--color-lightMain),var(--color-lightSub) 0);border-radius:999px;content:"";height:100%;height:var(--wave-h1,100%);left:0;opacity:1;position:absolute;right:0;top:50%;transform:translateY(-50%) scaleY(.15);transform:translateY(-50%) scaleY(var(--val,.15));transform-origin:center center;transition:transform .35s cubic-bezier(.22,.9,.3,1);z-index:62}@supports (color:color-mix(in lch,red,blue)) and (top:var(--f )){.ihabdevteam-core-scope .audio-player__wave-played .audio-player__bar:after{background:color-mix(in srgb,var(--color-lightMain),var(--color-lightSub) calc(var(--mix, 0)*100%))}}.ihabdevteam-core-scope .audio-player__wave-noise{align-items:center;bottom:0;display:flex;gap:3px;gap:var(--bar-gap,3px);justify-content:center;left:0;margin:0 auto;pointer-events:none;position:absolute;right:0;top:0;width:100%;z-index:58}.ihabdevteam-core-scope .audio-player__wave-noise .audio-player__bar:after{background:color-mix(in srgb,var(--color-deepMain),var(--color-deepSub) 0);border-radius:999px;content:"";height:100%;height:var(--wave-h1,100%);left:0;opacity:1;position:absolute;right:0;top:50%;transform:translateY(-50%) scaleY(.1);transform:translateY(-50%) scaleY(var(--val,.1));transform-origin:center center;transition:transform .35s cubic-bezier(.22,.9,.3,1);z-index:58}@supports (color:color-mix(in lch,red,blue)) and (top:var(--f )){.ihabdevteam-core-scope .audio-player__wave-noise .audio-player__bar:after{background:color-mix(in srgb,var(--color-deepMain),var(--color-deepSub) calc(var(--mix, 0)*100%))}}.ihabdevteam-core-scope .audio-player__wave-noise:not(.is-ready) .audio-player__bar:after{opacity:0}.ihabdevteam-core-scope .audio-player__wave-noise.is-ready .audio-player__bar:after{animation:wave-bar-in .35s cubic-bezier(.22,.9,.3,1) backwards;animation-delay:0ms;animation-delay:calc(var(--i, 0)*2ms)}.ihabdevteam-core-scope .audio-player__segments{align-items:center;display:flex;gap:3px;gap:var(--bar-gap,3px);height:100%;position:relative;width:100%}.ihabdevteam-core-scope .audio-player__segment{align-items:center;cursor:pointer;display:flex;height:100%;justify-content:center;padding:10px 0;pointer-events:auto;position:relative}.ihabdevteam-core-scope .audio-player__segment-inner{align-items:center;display:flex;gap:3px;gap:var(--bar-gap,3px);height:100%;justify-content:center;width:100%}.ihabdevteam-core-scope .audio-player__buttons>.button--variant-transparent-white[aria-pressed=true]:not(:hover):not(:focus-visible){background:transparent;color:#fbfdff}.ihabdevteam-core-scope .audio-player__source-buttons .button--variant-transparent-white[aria-pressed=true]{background:var(--color-white);color:var(--color-darkGray)}';oe(BB);async function AB(e,t,a){let o=null;try{const n=window.AudioContext||window.webkitAudioContext;o=new n;const i=await o.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,h)=>{const m=h*u,g=Math.min(m+u,d);let v=0;for(let f=m;f<g;f++){const x=Math.abs(l[f]);x>v&&(v=x)}return v})}catch{return null}finally{try{o?.close?.()}catch{}}}async function Pf(e,t,a){try{const o=await fetch(e);if(o.ok===!1)return null;const n=await o.arrayBuffer();return await AB(n,t,a)}catch(o){try{const n=Jr(o)}catch{}return null}}const as=45,zf=74,If=2;function An(e){const t=Math.min(2,Math.max(0,Number(e)||0));return t<=1?t*45:45+(t-1)*29}function Sn(e){return An(e)/45}function SB({currentTime:e,sources:t,index:a,audioDuration:o}){const n=a||0,i=Array.isArray(t)&&t.length>0?t[n]:void 0,l=i?i.duration||o||0:o||0;if(!(l>0))return 0;const c=Number.isFinite(e)?e:0;return Math.max(0,Math.min(1,c/l))}function EB({phase:e,phaseElapsedMs:t,currentTime:a,trackDurationSec:o,leadInMs:n,tailMs:i}){const l=Math.max(0,n),c=Math.max(0,i),d=Math.max(0,(Number.isFinite(o)?o:0)*1e3),u=l+d+c;if(!(u>0)||!(d>0))return 0;const p=e==="lead"?Math.min(Math.max(0,t),l):e==="sound"?l+Math.min(Math.max(0,(Number.isFinite(a)?a:0)*1e3),d):l+d+Math.min(Math.max(0,t),c);return Math.max(0,Math.min(1,p/u))}function DB({bars:e,trackDurationSec:t,leadInMs:a,tailMs:o}){const n=Math.max(0,Math.floor(e)),i=Math.max(0,a),l=Math.max(0,o),c=Math.max(0,(Number.isFinite(t)?t:0)*1e3),d=i+c+l;if(n===0||!(d>0)||i===0&&l===0||!(c>0))return{lead:0,sound:n,tail:0};const u=Math.round(i/d*n),p=Math.round(l/d*n),h=Math.max(1,n-u-p),m=u+h+p-n;return{lead:Math.max(0,u-Math.ceil(m/2)),sound:h,tail:Math.max(0,p-Math.floor(m/2))}}function NB(e,t){if(!Array.isArray(e))return null;const a=t||0;return a<e.length-1?a+1:null}function TB({ended:e,completedByEnd:t}){return!!e||!!t}function jB(e){return e.map((t,a)=>({src:t.src,label:String(a+1),color:void 0,duration:t.duration||0}))}function LB(e){return e.reduce((t,a)=>t+(a.duration||0),0)}function MB(e,t,a){const o=Array.isArray(e)?e:e?[e]:[],n=[];for(const i of o)if(i){if(typeof i=="object"&&i!==null&&"src"in i&&i.src){const l=i;n.push({code:l.code??null,src:l.src});continue}if(typeof i=="string"&&(i.startsWith("http")||i.includes("/"))){n.push({code:null,src:i});continue}if(typeof i=="string"||typeof i=="number"){const l=String(i),c=a(l,t);c&&n.push({code:l,resolvedPath:c})}}return n}const Of=4,Ff=Sn(Of/as);function $B(e){const{src:t,segments:a,progress:o=0,waveProgressRef:n,noiseSrc:i,noiseRatio:l=0,noiseSpeed:c=1,totalDuration:d=0,mainVolume:u=1,onReadyChange:p,showSoundWaveForm:h=!0,leadInMs:m=0,tailMs:g=0,trackDurationSec:v=0}=e,f=s.useRef(null),x=s.useRef(null),[_,b]=s.useState(null),[y,C]=s.useState(!1),[k,w]=s.useState(null),[A,B]=s.useState(2),[S,D]=s.useState(0),[T,I]=s.useState(null),[L,V]=s.useState(!1),[N,j]=s.useState(!1),H=3,X=3,ae=1,M=300,G=s.useRef(0),P=s.useCallback(()=>{const we=f.current,ge=x&&x.current?x.current:we?we.closest(".audio-player__wave"):null,de=ge?ge.getBoundingClientRect():we?we.getBoundingClientRect():null,me=de?de.width:0,he=de?Math.max(100,de.width):320,U=de?de.height:0,ue=Math.max(ae,Math.min(M,Math.floor((he+X)/(H+X)))),pe=ue*H,Ne=Math.max(0,ue-1),Le=Math.max(0,Ne>0?(he-pe)/Ne:X);return{bars:ue,gap:Le,height:U,width:me}},[]),O=s.useRef(void 0),E=s.useRef(null),F=s.useCallback(async(we,ge,{quiet:de=!1}={})=>{const me=++G.current,he=()=>G.current===me;try{if(de||C(!1),O.current=we,!we){he()&&b(null);return}let U=ge;if(!U)try{for(let Ne=0;Ne<4&&!(f.current||x.current);Ne++)await new Promise(Le=>requestAnimationFrame(Le));await new Promise(Ne=>requestAnimationFrame(Ne));const pe=P();pe.height>0&&D(pe.height),U=pe.bars,B(pe.gap)}catch{U=120}E.current=U;const ue=await Pf(we,U);if(!he())return;if(!ue){b(null),C(!1);return}b(ue),w(U),C(!0)}catch{if(!he())return;b(null),C(!1)}},[C,b,D,B,w,P]);s.useEffect(()=>{const we=x.current;if(!we||typeof ResizeObserver>"u")return;let ge=null;const de=new ResizeObserver(()=>{ge!==null&&cancelAnimationFrame(ge),ge=requestAnimationFrame(()=>{ge=null;try{const me=P();if(me.width<=0||(me.height>0&&D(me.height),E.current===null||me.bars===E.current))return;const he=O.current;B(me.gap),he?F(he,me.bars,{quiet:!0}).catch(()=>{}):E.current=me.bars}catch{}})});return de.observe(we),()=>{de.disconnect(),ge!==null&&cancelAnimationFrame(ge)}},[P,F]),s.useEffect(()=>{const we=a&&a[0]&&a[0].src||t||a&&a.length===1&&a[0]&&a[0].src;F(typeof we=="string"?we:void 0).catch(()=>{}),j(!1)},[t,a,F]),s.useEffect(()=>{let we=!1;if(V(!1),!i||!k){I(null);return}const ge=d>0?d*(c||1):void 0;return Pf(i,k,ge).then(de=>{we||(I(de),de||V(!0))}).catch(()=>{we||(I(null),V(!0))}),()=>{we=!0}},[i,k,d,c]);const R=Math.max(0,Math.min(1,u)),z=s.useMemo(()=>_&&_.length&&Math.max(..._)||1,[_]),W=k||40,Q=s.useMemo(()=>DB({bars:W,trackDurationSec:v,leadInMs:m,tailMs:g}),[W,v,m,g]),K=s.useMemo(()=>Array.from({length:W}).map((we,ge)=>{const de=ge>=Q.lead&&ge<Q.lead+Q.sound,me=Q.sound>0&&de?Math.min(W-1,Math.round((ge-Q.lead)/Q.sound*W)):-1,he=de?_&&_[me]!=null?_[me]:null:_?0:null,U=he==null?null:Math.min(1,he/z*R),ue=U!=null&&S>0&&An(U)<=Of,pe=!i,Ne=U==null?.15:ue?pe?Ff:0:Sn(U),Le=ue&&!pe,Oe=W>1?ge/(W-1):0;return r.jsx("div",{className:Le?"audio-player__bar audio-player__bar--hidden":"audio-player__bar",style:{"--val":Ne,"--i":ge,"--mix":Oe}},ge)}),[W,_,z,R,S,Q,i]),Z={"--progress":String(Math.max(0,Math.min(1,o)))},ie=i?Math.max(1,l):1,te={"--bar-gap":`${A}px`,"--wave-h":`${An(ie)}px`,"--wave-h1":`${as}px`},ce=R*Math.max(0,l)/Rn(),De=y&&(i?!!T||L:!0);s.useEffect(()=>{De&&j(!0)},[De]);const q=N?y:De;s.useEffect(()=>{p?.(q)},[q,p]);const ne=k||40,xe=s.useMemo(()=>Array.from({length:ne}).map((we,ge)=>{const de=T&&T[ge]!=null?T[ge]:null,me=de==null?0:de/z*ce,he=Math.max(Ff,Sn(me)),U=ne>1?ge/(ne-1):0;return r.jsx("div",{className:"audio-player__bar",style:{"--val":he,"--i":ge,"--mix":U}},ge)}),[ne,T,z,ce,S]);return r.jsxs("div",{className:"audio-player__wave",ref:x,style:te,children:[i&&r.jsx("div",{className:`audio-player__wave-noise ${De?"is-ready":""}`,"aria-hidden":"true",children:xe}),h&&r.jsxs(r.Fragment,{children:[r.jsx("div",{className:`audio-player__wave-inner audio-player__wave-unplayed ${q?"is-ready":""}`,ref:f,children:K}),r.jsx("div",{className:`audio-player__wave-inner audio-player__wave-played ${q?"is-ready":""}`,ref:n,style:Z,children:K})]})]})}const RB={idle:"\uB300\uAE30",synthesizing:"\uC18C\uB9AC\uB97C \uB9CC\uB4E4\uACE0 \uC788\uC2B5\uB2C8\uB2E4\u2026",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 Eu(e,t){return new Promise((a,o)=>{const n=document.createElement("audio");let i=!1;const l=()=>{try{n.src=""}catch{}},c=()=>{if(i)return;i=!0;const u=isFinite(n.duration)&&n.duration||0;l(),a(u)},d=u=>{i||(i=!0,l(),t.rejectOnError?o(new Error(u)):a(0))};n.addEventListener("loadedmetadata",c),n.addEventListener("error",()=>d("audio load failed")),setTimeout(()=>d("audio load timeout"),t.timeoutMs),n.src=e})}const PB=2e3;function Hf(e,t=PB){return new Promise(a=>{let o=!1;const n=()=>{o||(o=!0,a())};e.addEventListener("canplay",n,{once:!0}),e.addEventListener("error",n,{once:!0}),setTimeout(n,t)})}function zB({showSoundWaveForm:e,showNoiseWaveForm:t,timeoutMs:a=2500}){const o=s.useRef(!1),n=s.useRef([]),i=s.useCallback(d=>{if(o.current=d,!d||!n.current.length)return;const u=n.current;n.current=[];for(const p of u)p(!0)},[]),l=s.useCallback(()=>{o.current=!1},[]),c=s.useCallback(()=>!e&&!t||o.current?Promise.resolve(!0):new Promise(d=>{const u=h=>{clearTimeout(p),n.current=n.current.filter(m=>m!==u),d(h)},p=setTimeout(()=>u(!0),a);n.current.push(u)}),[e,t,a]);return s.useEffect(()=>()=>{const d=n.current;n.current=[];for(const u of d)u(!1)},[]),{onReadyChange:i,waitForReady:c,markNotReady:l}}function IB(){const e=s.useRef([]),t=s.useCallback(n=>(e.current.push(n),n),[]),a=s.useCallback(n=>{const i=new Set([...n].filter(Boolean));e.current=e.current.filter(l=>{if(i.has(l))return!0;try{URL.revokeObjectURL(l)}catch{}return!1})},[]),o=s.useCallback(()=>{a([])},[a]);return s.useEffect(()=>()=>{for(const n of e.current)try{URL.revokeObjectURL(n)}catch{}e.current=[]},[]),{track:t,keepOnly:a,revokeAll:o}}function OB({offsetY:e=8}={}){const t=s.useRef(null),[a,o]=s.useState(null),n=s.useCallback(()=>o(null),[]),i=s.useCallback(()=>{try{const l=t.current?.getBoundingClientRect();if(!l)return;o({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 s.useEffect(()=>{if(a)return document.addEventListener("mousedown",n),()=>document.removeEventListener("mousedown",n)},[a,n]),{ref:t,rect:a,show:i,hide:n}}function FB(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 o=a.end(a.length-1);if(Number.isFinite(o)&&o>0)return o}}catch{}return null}function HB({audioRef:e,fillRef:t,waveProgressRef:a,sourcesRef:o,currentIndexRef:n,padRef:i,leadInMs:l=0,tailMs:c=0}){const d=s.useRef(null),u=s.useCallback(()=>{d.current!==null&&(cancelAnimationFrame(d.current),d.current=null)},[]),p=s.useCallback(()=>{if(d.current!==null)return;const m=()=>{try{const g=e.current,v=Array.isArray(o.current)?o.current[n.current||0]:void 0,f=!!v&&Number.isFinite(v.duration)&&(v.duration??0)>0,x=f?0:FB(g),_=t.current;if(x===null)try{_&&_.style.visibility!=="hidden"&&(_.style.visibility="hidden")}catch{}else{const b=(l||0)>0||(c||0)>0?EB({phase:i?.current?.phase??"sound",phaseElapsedMs:i?.current?Math.max(0,Date.now()-i.current.at):0,currentTime:g&&typeof g.currentTime=="number"?g.currentTime:0,trackDurationSec:f?v.duration:x||0,leadInMs:l||0,tailMs:c||0}):SB({currentTime:g&&typeof g.currentTime=="number"?g.currentTime:0,sources:o.current,index:n.current,audioDuration:x});try{_&&(_.style.visibility&&(_.style.visibility=""),_.style.left=`${b*100}%`)}catch{}try{a.current?.style.setProperty("--progress",String(b))}catch{}}}catch{}d.current=requestAnimationFrame(m)};d.current=requestAnimationFrame(m)},[e,t,a,o,n,i,l,c]),h=s.useCallback(m=>{u();try{t.current&&(t.current.style.visibility="",t.current.style.left=`${m*100}%`)}catch{}try{a.current?.style.setProperty("--progress",String(m))}catch{}},[u,t,a]);return s.useEffect(()=>u,[u]),{start:p,stop:u,settleTo:h}}function En({btnLabel:e,soundSrc:t,bucketPath:a,onDone:o,disabled:n=!1,ttsText:i=null,className:l,showSoundWaveForm:c=!0,showNoiseWaveForm:d=!0,leadInMs:u=0,tailMs:p=0}){const{t:h}=_e.useTranslation(),m=e,g=Bn(),v=s.useRef(g?.registerAnalyser);s.useEffect(()=>{v.current=g?.registerAnalyser});const f=s.useRef(null),x=s.useRef(null),_=s.useRef(null),b=IB(),y=s.useRef(null),C=s.useRef(!1),k=s.useRef(0),w=s.useRef(null),{ref:A,rect:B,show:S,hide:D}=OB();s.useEffect(()=>()=>{v.current?.("main",null),v.current?.("noise",null)},[]);const[T,I]=s.useState(!1),[L,V]=s.useState("idle"),[N,j]=s.useState("stopped"),H=s.useRef("stopped");s.useEffect(()=>{H.current=N},[N]);const[X,ae]=s.useState(0),[M,G]=s.useState("active"),P=s.useRef(!1);s.useEffect(()=>{if(M!=="playMode"||!P.current)return;P.current=!1;const re=typeof document<"u"?document.activeElement:null;if(re&&re!==document.body)return;const Se=_.current?.querySelectorAll("button")[1];try{Se?.focus()}catch{}},[M]);const[O,E]=s.useState(null),[F,R]=s.useState(null),[z,W]=s.useState(0),[Q,K]=s.useState(!1),[Z,ie]=s.useState(0),te=g?.playbackRate??1,ce=g?.mainVolume??1,De=g?Ji(g.settings):0,q=g?Au(g.settings):ce,[ne,xe]=s.useState("idle"),[we,ge]=s.useState(""),[de]=s.useState("top"),me=s.useRef(null),he=s.useRef(0),U=s.useRef(null),ue=s.useRef({phase:"sound",at:0}),pe=s.useRef(u),Ne=s.useRef(p);s.useEffect(()=>{pe.current=Math.max(0,u||0)},[u]),s.useEffect(()=>{Ne.current=Math.max(0,p||0)},[p]);const Le=s.useRef(null),Oe=s.useCallback(()=>{Le.current&&(clearTimeout(Le.current),Le.current=null),ue.current={phase:"sound",at:0}},[]),Ie=s.useCallback((re,Se)=>{if(!(re>0))return Promise.resolve(!0);const Pe=_t.current;return ue.current={phase:Se,at:Date.now()},new Promise(Ge=>{Le.current=setTimeout(()=>{Le.current=null,Ge(pt.current&&Pe===_t.current)},re)})},[]);s.useEffect(()=>()=>Oe(),[Oe]);const{start:ct,stop:ot,settleTo:tt}=HB({audioRef:f,fillRef:x,waveProgressRef:U,sourcesRef:me,currentIndexRef:he,padRef:ue,leadInMs:u,tailMs:p}),{onReadyChange:ht,waitForReady:Ae,markNotReady:He}=zB({showSoundWaveForm:c,showNoiseWaveForm:d}),Be=s.useRef(null),rt=s.useRef(n),J=s.useRef(o),se=s.useRef(null),ve=s.useRef(!1),[je,ut]=s.useState(!1),Xe=s.useCallback(re=>{ve.current=re,ut(re)},[]),St=s.useRef(null),{activeNoiseUrl:yt,noiseSettingsRef:bt,fadeInNoise:dt,fadeOutNoise:nt}=wB({noisePlayer:g,audioRef:f,playbackStateRef:H}),{startTTS:it,stopTTS:ze}=kB({ttsText:i,playbackRate:te,mainVolume:q,fillRef:x,waveProgressRef:U,setProgress:ae,setPlaybackState:j,setStateLocal:G,fadeInNoise:dt,fadeOutNoise:nt,noiseSettingsRef:bt,onDoneRef:J,handleEndRef:St});s.useEffect(()=>{gt.current=ze});const Ze=re=>{if(typeof window>"u"||!window.speechSynthesis){try{ge(h("training.ttsUnavailable","\uC774 \uAE30\uAE30\uC5D0\uC11C\uB294 \uC74C\uC131\uC744 \uB4E4\uB824\uC904 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4."))}catch{}it(re);return}Mt("tts"),it(re)},Ve=Array.isArray(t)?t.filter(Boolean):t?[t]:[],vt=(!Ve||Ve.length===0)&&!!i,Ht=Array.isArray(O)&&O.length>0?O:Array.isArray(F)&&F.length>0?F:null,Rt=Math.max(Array.isArray(Ht)?Ht.length:0,Ve.length),pt=s.useRef(!0);s.useEffect(()=>(pt.current=!0,()=>{pt.current=!1}),[]);const _t=s.useRef(0),We=()=>{_t.current+=1,k.current+=1,Oe()},gt=s.useRef(null),Pt=s.useRef(null),qt=s.useRef(null),Qe=s.useRef(null);Qe.current||(Qe.current=()=>{qt.current=null;const re=f.current;if(Pt.current==="audio"&&re&&!re.paused){_t.current+=1,k.current+=1;try{re.pause()}catch{}pt.current&&j("paused")}else if(Pt.current==="tts")try{gt.current?.()}catch{}});const Mt=re=>{Pt.current=re,qt.current=Li(Qe.current)},Yt=()=>{qt.current?.(),qt.current=null};s.useEffect(()=>()=>{Qe.current&&Mi(Qe.current)},[]);const Lt=s.useCallback(async(re,Se=3,Pe=50)=>{const Ge=_t.current;if(pe.current>0&&(ct(),!await Ie(pe.current,"lead")||!pt.current||Ge!==_t.current))return!1;ue.current={phase:"sound",at:Date.now()};for(let at=0;at<Se;at++){if(!pt.current||Ge!==_t.current)return!1;try{return Mt("audio"),await re.play(),!0}catch(be){if((be instanceof Error||typeof be=="object"&&be&&"name"in be?be.name:void 0)==="AbortError"){if(Ge!==_t.current)return!1;await new Promise(Re=>setTimeout(Re,Pe));continue}try{ge(h("training.audioFetchError","\uC0AC\uC6B4\uB4DC \uC18C\uC2A4\uB97C \uAC00\uC838\uC624\uC9C0 \uBABB\uD588\uC2B5\uB2C8\uB2E4."))}catch{}return!1}}try{ge(h("training.audioFetchError","\uC0AC\uC6B4\uB4DC \uC18C\uC2A4\uB97C \uAC00\uC838\uC624\uC9C0 \uBABB\uD588\uC2B5\uB2C8\uB2E4."))}catch{}return!1},[h,ct,Ie]),Na=s.useCallback(()=>{const re=f.current;if(!re)return;const Se=()=>{j("playing"),G("playMode"),K(!0),ct();try{Ir(),Xo(re).then(be=>{if(pt.current)try{v.current?.("main",be)}catch{}})}catch{}const at=bt.current;at?.enabled&&(at?.volume??0)>0&&dt(at.volume)},Pe=()=>{TB({ended:!!re?.ended,completedByEnd:ve.current})||(j("paused"),ot(),nt())},Ge=()=>{const at=()=>{try{const be=me.current,Re=NB(be,he.current);if(Re!==null){he.current=Re,W(Re),K(!0);const st=be?.[Re]&&be[Re].src;if(st&&re){re.src=st,re.load(),Lt(re).catch(()=>{});return}}}catch{}j("stopped"),ae(1);try{if(re)try{re.currentTime=0}catch{}}catch{}ot(),K(!1),nt();try{!rt.current&&St.current&&St.current()}catch{}};if(Ne.current>0){ct(),Ie(Ne.current,"tail").then(be=>{ue.current={phase:"sound",at:0},be&&at()}).catch(()=>{});return}at()};return re.addEventListener("play",Se),re.addEventListener("pause",Pe),re.addEventListener("ended",Ge),()=>{try{re.removeEventListener("play",Se),re.removeEventListener("pause",Pe),re.removeEventListener("ended",Ge),ot()}catch{}}},[dt,nt,Lt,bt,ct,ot,Ie]);s.useEffect(()=>Na(),[Na]),s.useEffect(()=>{rt.current=n},[n]),s.useEffect(()=>{J.current=o},[o]),s.useEffect(()=>{if(n||M!=="active")return;const re=w.current;if(!re)return;let Se=null;const Pe=requestAnimationFrame(()=>{try{const Ge=re.getTotalLength();if(!Ge)return;const at=Ge*.2;re.style.strokeDasharray=`${Ge-at} ${at}`;const be="triFlow_"+Math.random().toString(36).slice(2);Se=document.createElement("style"),Se.textContent=`@keyframes ${be}{from{stroke-dashoffset:0}to{stroke-dashoffset:-${Ge}}}`,document.head.appendChild(Se),re.style.animation=`${be} 2.4s linear infinite`}catch{}});return()=>{cancelAnimationFrame(Pe),Se?.remove()}},[M,n]),s.useEffect(()=>{me.current=O},[O]),s.useEffect(()=>{he.current=z},[z]),s.useEffect(()=>{const re=_.current,Se=y.current;if(!re||!Se)return;let Pe=null;const Ge=32,at=60,be=()=>{try{const st=Array.from(re.querySelectorAll(":scope > .button"));let Ct=0;st.forEach(Y=>{if(Y===Se)return;const Ce=Y.getBoundingClientRect();Ct+=Ce.width});const Nt=re.getBoundingClientRect().width,ba=Math.max(0,Math.floor(Nt-Ct-8)),ye=Rt;if(!ye||ba<=0){Array.from(Se.children).forEach(Y=>{try{Y.style.width=""}catch{}});return}let $=Math.floor(ba/ye);$>at&&($=at),$<Ge&&($=Math.max(Ge,Math.floor(ba/ye))),Array.from(Se.querySelectorAll(".button")).forEach(Y=>{try{Y.style.width=`${$}px`}catch{}})}catch{}},Re=requestAnimationFrame(be);try{Pe=new ResizeObserver(()=>{requestAnimationFrame(be)}),Pe.observe(re),Pe.observe(Se),window.addEventListener("resize",be)}catch{}return()=>{try{cancelAnimationFrame(Re)}catch{}try{Pe&&(Pe.disconnect(),Pe=null)}catch{}try{window.removeEventListener("resize",be)}catch{}}},[O,F,Rt]),s.useEffect(()=>()=>{try{Be.current&&(clearTimeout(Be.current),Be.current=null),se.current&&(clearTimeout(se.current),se.current=null)}catch{}},[]);const Ta=(re,Se)=>{E(re),ie(Se),He(),R(jB(re)),me.current=re},Ga=async(re,Se)=>{Xe(!1),C.current=!1,re.src=Se,re.load(),await Hf(re),await Ae()!==!1&&(I(!1),await Lt(re),G("playMode"),W(0),K(!0))},wo=async(re,Se=!1)=>{const Pe=f.current;I(!0),V("measuring_duration");try{const Ge=await Eu(re,{timeoutMs:1e4,rejectOnError:!0});Ta([{src:re,objectUrl:null,duration:Ge}],Ge),V("ready"),Se&&Pe&&await Ga(Pe,re)}finally{C.current=!1,I(!1)}},Ua=async(re,Se=!1)=>{const Pe=f.current;I(!0),V("measuring_duration");try{const Ge=await Promise.all(re.map(be=>Eu(be,{timeoutMs:1e4})));if(!pt.current)return;const at=re.map((be,Re)=>({src:be,objectUrl:null,duration:Ge[Re]||0}));Ta(at,LB(at)),V("ready"),Se&&Pe&&at.length>0&&await Ga(Pe,at[0].src)}finally{C.current=!1,I(!1)}},ko=async(re=!1,Se=!0)=>{const Pe=f.current,Ge=t?Array.isArray(t)?t:[t]:[];if(!Ge||Ge.length===0||!Ge.some(Boolean))return!1;if(C.current)return null;C.current=!0,Se&&I(!0),V("resolving");try{const at=MB(t,a,Mn),be=[];let Re=0;for(const st of at){let Ct=st.src??null,Nt=null;if(!Ct&&st.resolvedPath){try{V("getting_signed_url"),Ct=await Rr(st.resolvedPath)}catch{Ct=null}if(!pt.current)return!1;if(!Ct)try{V("downloading");const ye=await $n(st.resolvedPath);if(!pt.current)return!1;if(ye){const $=ye instanceof Blob?ye:new Blob([ye]);Nt=b.track(URL.createObjectURL($)),Ct=Nt}}catch{V("error");try{ge(h("training.audioFetchError","\uC0AC\uC6B4\uB4DC \uC18C\uC2A4\uB97C \uAC00\uC838\uC624\uC9C0 \uBABB\uD588\uC2B5\uB2C8\uB2E4.")),G("active")}catch{}}}if(!Ct)continue;let ba=0;try{V("measuring_duration"),ba=await Eu(Ct,{timeoutMs:3e3})}catch{ba=0}if(!pt.current){if(Nt)try{URL.revokeObjectURL(Nt)}catch{}for(const ye of be)if(ye.objectUrl)try{URL.revokeObjectURL(ye.objectUrl)}catch{}return!1}Re+=ba||0,be.push({...st,src:Ct,objectUrl:Nt,duration:ba})}if(Ta(be,Re),be.length>0&&re&&Pe){const st=be[0];Xe(!1);try{b.keepOnly(be.map(Ct=>Ct.objectUrl))}catch{}if(V("ready"),C.current=!1,st.src&&Pe)try{if(Pe.src=st.src,Pe.load(),await Hf(Pe),await Ae()===!1)return!1;Se&&I(!1),Pe&&await Lt(Pe)}catch{Se&&I(!1)}else Se&&I(!1);G("playMode"),W(0),K(!0)}return be.length>0}finally{C.current=!1,Se&&I(!1),V(at=>at==="ready"?"ready":"idle")}},ja=async()=>{const re=f.current;if(!(!re&&!vt)){if(vt){const Se=window.speechSynthesis;if(M==="active"){const Pe=Pr(),Ge=Array.isArray(i)?i.filter(Boolean):i?[i]:[];if(Pe&&Ge.length>0){G("load"),I(!0),V("synthesizing"),C.current=!0;try{const at=await Promise.all(Ge.map(be=>Promise.resolve(Pe(be))));at.length>1?await Ua(at,!0):await wo(at[0],!0)}catch{C.current=!1,I(!1),G("active"),Ze(Ge.length>0?Ge:void 0)}return}Ze(Ge.length>0?Ge:void 0);return}if(M==="playMode"){const Pe=!!Se&&(Se.speaking||Se.paused)&&!(re&&(re.currentSrc||re.getAttribute("src")));if(re&&!Pe){if(re.paused){if(ve.current){await Vt();return}await Lt(re),j("playing")}else We(),re.pause(),j("paused");return}try{if(Se&&Se.paused)try{Mt("tts"),Se.resume(),j("playing")}catch{}else try{Se.pause(),j("paused")}catch{}}catch{}}return}if(M==="active"){if(n&&Array.isArray(me.current)&&me.current.length>0){const Pe=me.current[0];try{if(Pe.src&&re)try{re.src=Pe.src,re.load(),re&&await Lt(re)}catch{}G("playMode"),W(0),K(!0);return}catch{}}G("load");let Se;try{Se=await ko(!0)}catch{Se=!1}if(Se===!1&&pt.current){try{ge(h("training.audioFetchError","\uC0AC\uC6B4\uB4DC \uC18C\uC2A4\uB97C \uAC00\uC838\uC624\uC9C0 \uBABB\uD588\uC2B5\uB2C8\uB2E4."))}catch{}G("active")}return}if(M!=="load"&&(M==="playMode"||M==="active"))try{if(re&&re.paused){if(ve.current){await Vt();return}re&&await Lt(re),j("playing")}else re&&(We(),re.pause(),j("paused"))}catch(Se){(Se instanceof Error||typeof Se=="object"&&Se&&"name"in Se)&&Se.name}}},Vt=async()=>{const re=f.current;if(re)try{const Se=me.current;if(Array.isArray(Se)&&Se.length>1){await ro(0);return}Xe(!1);try{re.currentTime=0}catch{}re&&await Lt(re),j("playing"),G("playMode")}catch{}},qa=()=>{if(We(),Yt(),vt){ze();return}const re=f.current;try{if(re){try{re.pause()}catch{}try{re.currentTime=0}catch{}}}catch{}nt(),j("stopped"),G("active"),ae(0),K(!1)},Qt=async(re,{sameSegment:Se=!1}={})=>{const Pe=++k.current,Ge=f.current,at=me.current?.[re]?.src;try{if(Xe(!1),W(re),K(!0),he.current=re,!at||!Ge||(Se||He(),Ge.src=at,Ge.load(),!Se&&await Ae()===!1)||Pe!==k.current||(await Lt(Ge),Pe!==k.current))return;j("playing"),G("playMode")}catch{}},aa=async()=>{const re=me.current,Se=he.current||0;if(!re||Se<=0){await Vt();return}await Qt(Se-1)},Bo=async()=>{const re=me.current,Se=he.current||0;if(!re||Se>=re.length-1){qa();return}await Qt(Se+1)},_a=()=>{if(ve.current)return;const re=200,Se=340;Xe(!0),We(),Yt();try{ae(1)}catch{}tt(1);try{xe("hold")}catch{}try{const Pe=f.current,Ge=vt&&!!Pe?.src;if(!vt||Ge){if(Pe){Pe.pause();try{Pe.currentTime=0}catch{}}}else ze();nt()}catch{}try{j("stopped")}catch{}if(K(!1),!rt.current)try{se.current&&(clearTimeout(se.current),se.current=null),se.current=setTimeout(()=>{try{xe("out")}catch{}se.current=setTimeout(()=>{try{typeof J.current=="function"&&J.current(!0)}catch{}try{xe("idle")}catch{}se.current=null},Se)},re)}catch{}};s.useEffect(()=>{St.current=_a});const Ya=s.useCallback(()=>ge(""),[]),ro=async re=>{(me.current||[])[re]&&await Qt(re,{sameSegment:re===he.current})},da=N==="playing",oa=s.useMemo(()=>{if(!F||F.length<=1)return F;const re=F[z];return re?[re]:F},[F,z]),ea=n===!0;s.useEffect(()=>{try{const re=f.current;re&&typeof re.playbackRate=="number"&&(re.playbackRate=te||1)}catch{}},[te]);const le=s.useRef({raf:null,timer:null});s.useEffect(()=>{const re=f.current;if(!re)return;const Se=Math.max(0,Math.min(1,q)),Pe=le.current,Ge=()=>{Pe.raf!==null&&(cancelAnimationFrame(Pe.raf),Pe.raf=null),Pe.timer!==null&&(clearTimeout(Pe.timer),Pe.timer=null)};Ge();const at=Jo(re);if(re.paused||Math.abs(at-Se)<.001||typeof requestAnimationFrame!="function"){try{La(re,Se)}catch{}return}const be=performance.now(),Re=()=>{const st=Math.min(1,(performance.now()-be)/150);try{La(re,at+(Se-at)*st)}catch{}Pe.raf=st<1?requestAnimationFrame(Re):null};return Pe.raf=requestAnimationFrame(Re),Pe.timer=setTimeout(()=>{Ge();try{La(re,Se)}catch{}},200),Ge},[q]);const ke=ne==="hold",Te=ne==="out",Ke=M==="playMode"&&!T&&!je||ke||Te,$e=N!=="stopped"||ke||Te,qe=N==="paused",Ye=Math.max(0,Math.min(100,(X||0)*100)),ft=Ee("audio-player__fill",Ke?"is-visible":"",$e?"is-expanded":"",qe?"is-paused":"",Te?"is-out":"");return r.jsxs("div",{className:`audio-player ${ea?"is-disabled":""}${l?` ${l}`:""}`,role:"group","aria-label":typeof m=="string"?m:void 0,children:[r.jsxs("div",{className:`audio-player__panel ${da?"is-playing":""} ${T?"is-loading":""} ${M!=="default"?"is-revealed":""}`,children:[T?r.jsxs("div",{className:"audio-player__loading",role:"status","aria-live":"polite",children:[r.jsx("span",{className:"audio-player__loading-spinner","aria-hidden":"true"}),r.jsx("span",{className:"audio-player__loading-text",children:h(`training.audioStatus.${L}`,{defaultValue:RB[L]})})]}):null,M==="active"?r.jsx("button",{className:"audio-player__button",type:"button",disabled:ea,onClick:()=>{P.current=Vi(),D(),ja()},"aria-label":typeof m=="string"?m:h("training.listen","\uB4E3\uAE30"),onMouseEnter:S,onMouseLeave:D,onFocus:S,onBlur:D,children:r.jsx("span",{ref:A,className:"audio-player__button-triangle-wrap",children:r.jsx("svg",{className:"audio-player__button-triangle",viewBox:"0 0 24 24","aria-hidden":"true",children:r.jsx("path",{ref:w,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,B&&r.jsx(Sa,{anchorRect:B,text:typeof m=="string"&&m?m:h("training.listenLabel","\uBB38\uC7A5 \uB4E3\uAE30"),offset:8}),r.jsxs("div",{className:`audio-player__play ${M==="playMode"||da?"is-visible":""}`,inert:!(M==="playMode"||da)||void 0,children:[r.jsxs("div",{ref:_,className:"audio-player__buttons",children:[r.jsx(fe,{htmlType:"button",size:32,showTooltipInfo:!0,type:"dot",shape:"pill",useBorder:!1,icon:"skip-back",onClick:aa,ariaLabel:h("training.prev","\uC774\uC804"),width:"60px",variant:"transparent-white","aria-hidden":"true",tabIndex:-1,disabled:M!=="playMode"}),r.jsx(fe,{htmlType:"button",size:32,showTooltipInfo:!0,type:"dot",shape:"pill",useBorder:!1,icon:da?"pause":"play",onClick:ja,ariaLabel:h("common.playPause","\uC7AC\uC0DD / \uBA48\uCDA4"),"aria-pressed":da,width:"60px",variant:"transparent-white",disabled:M!=="playMode"}),r.jsx(fe,{htmlType:"button",size:32,showTooltipInfo:!0,type:"dot",shape:"pill",useBorder:!1,icon:"square",onClick:qa,ariaLabel:h("training.stop","\uC815\uC9C0"),width:"60px",variant:"transparent-white","aria-hidden":"true",tabIndex:-1,disabled:M!=="playMode"}),Rt>1?r.jsx("div",{ref:y,className:"audio-player__source-buttons",children:Array.from({length:Rt}).map((re,Se)=>r.jsx(fe,{htmlType:"button",size:32,type:"dot",shape:"pill",useBorder:!1,label:String(Se+1),onClick:()=>{try{ro(Se)}catch{}},ariaLabel:h("training.sourcePlay",{n:Se+1}),variant:"transparent-white",selected:Q&&z===Se,disabled:M!=="playMode"||!(Array.isArray(O)&&O[Se]),showTooltipInfo:!0},Se))}):null,!Array.isArray(O)||O.length<=1?r.jsx(fe,{htmlType:"button",size:32,showTooltipInfo:!0,type:"dot",shape:"pill",useBorder:!1,icon:"repeat",onClick:Vt,ariaLabel:h("common.replay","\uB2E4\uC2DC\uB4E3\uAE30"),width:"60px",variant:"transparent-white",disabled:M!=="playMode"}):null,r.jsx(fe,{htmlType:"button",size:32,showTooltipInfo:!0,type:"dot",shape:"pill",useBorder:!1,icon:"skip-forward",onClick:Bo,ariaLabel:h("training.next","\uB2E4\uC74C"),width:"60px",variant:"transparent-white","aria-hidden":!0,tabIndex:-1,disabled:M!=="playMode"}),r.jsx(fe,{htmlType:"button",size:32,showTooltipInfo:!0,type:"dot",shape:"pill",useBorder:!1,icon:"check",onClick:_a,ariaLabel:h("common.done","\uC644\uB8CC"),width:"60px",variant:"transparent-white",disabled:M!=="playMode"})]}),r.jsxs("div",{className:"audio-player__slider",children:[r.jsx("div",{className:ft,ref:x,style:{left:`${Ye}%`},"aria-hidden":"true"}),(c||d)&&r.jsx($B,{segments:oa,progress:X,totalDuration:Z,waveProgressRef:U,showSoundWaveForm:c,leadInMs:u,tailMs:p,trackDurationSec:O?.[z]?.duration??0,noiseSrc:d&&g?.settings.enabled&&De>0?yt:null,noiseRatio:g?Br(g.settings):0,noiseSpeed:g?.settings.speed??1,mainVolume:ce,onReadyChange:ht})]})]}),r.jsx("audio",{ref:f,crossOrigin:"anonymous",preload:"auto"})]}),!c&&r.jsxs("p",{className:"audio-player__no-waveform caption-1",children:[r.jsx(et,{icon:"triangle-alert",size:14}),h("training.noSoundWaveform","\uC18C\uB9AC \uBE44\uAD50 \uBB38\uC81C\uB294 \uC6E8\uC774\uBE0C\uD3FC\uC744 \uD45C\uD604\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.")]}),r.jsx(Ho,{message:we,position:de,onClose:Ya})]})}var VB=".ihabdevteam-core-scope .tooltip-textbox{background:var(--color-deepWhite);border:1px solid var(--color-whiteLine);border-radius:var(--radius-m);box-sizing:border-box;max-width:520px;padding:var(--spacing-content)}.ihabdevteam-core-scope .tooltip-textbox__root{display:flex;flex-direction:column;gap:var(--spacing-xs)}.ihabdevteam-core-scope .tooltip-textbox__box{background:transparent}.ihabdevteam-core-scope .tooltip-textbox__label{color:var(--color-darkGray)}.ihabdevteam-core-scope .tooltip-textbox__text{color:var(--color-darkGray);overflow-wrap:anywhere;white-space:normal;word-break:keep-all}.ihabdevteam-core-scope .tooltip-textbox__line{align-items:center;display:flex;gap:var(--spacing-s);margin-bottom:0;min-height:60px;padding:10px 0}.ihabdevteam-core-scope .tooltip-textbox__line:last-child{margin-bottom:0}.ihabdevteam-core-scope .tooltip-textbox__line:not(:last-child){border-bottom:1px solid var(--color-darkWhite)}.ihabdevteam-core-scope .tooltip-textbox.is-dark .tooltip-textbox__line:not(:last-child){border-bottom-color:hsla(0,0%,100%,.06)}.ihabdevteam-core-scope .tooltip-textbox__marker{--marker-pos:50%;align-items:center;background-color:var(--color-main);background:color-mix(in srgb,var(--color-main) 50%,var(--color-sub) 50%);border:2px solid var(--color-pureWhite);border-radius:var(--radius-sm);box-sizing:border-box;color:#fff;display:inline-flex;height:24px;justify-content:center;min-width:24px}@supports (color:color-mix(in lch,red,blue)) and (top:var(--f )){.ihabdevteam-core-scope .tooltip-textbox__marker{background:color-mix(in srgb,var(--color-main) calc(100% - var(--marker-pos)),var(--color-sub) var(--marker-pos))}}.ihabdevteam-core-scope .tooltip-textbox__line-number{color:#fff;min-width:auto;text-align:center}.ihabdevteam-core-scope .tooltip-textbox__line-text{flex:1 1 auto}.ihabdevteam-core-scope .tooltip-textbox__buttons{align-items:center;display:flex;gap:var(--spacing-xs);justify-content:center;margin-top:10px;position:relative}.ihabdevteam-core-scope .tooltip-textbox.is-dark{background:var(--color-darkGray);border-color:var(--color-gray)}.ihabdevteam-core-scope .tooltip-textbox.is-dark .tooltip-textbox__text{color:var(--color-deepWhite)}";oe(VB);function Er(e){const{t}=_e.useTranslation(),{text:a,label:o,anchorRect:n=null,onClose:i,closeOnOutsideClick:l=!0,isMobilePopup:c=!1}=e||{},[d,u]=s.useState(()=>{try{return localStorage.getItem("tooltip-theme")||"light"}catch{return"light"}});s.useEffect(()=>{try{localStorage.setItem("tooltip-theme",d)}catch{}},[d]);const{increase:p,decrease:h,canIncrease:m,canDecrease:g,fontSize:v,lineHeight:f}=vi({storageKey:"tooltip-fontScale"}),x=s.useCallback(()=>u(k=>k==="dark"?"light":"dark"),[]),_=s.useCallback(k=>{try{k.stopPropagation()}catch{}try{typeof i=="function"&&i()}catch{}},[i]),b=Array.isArray(a)?a:typeof a>"u"||a===null?[]:[a],y={fontSize:`${v}px`,lineHeight:`${f}px`,"--tt-line-height":`${f}px`,"--tt-marker-size":"28px"},C=r.jsxs("div",{className:`tooltip-textbox__root ${d==="dark"?"is-dark":""}`,children:[r.jsxs("div",{className:"tooltip-textbox__box",children:[o&&r.jsx("div",{className:"tooltip-textbox__label body-2b",children:o}),r.jsx("div",{className:"tooltip-textbox__text body-1",style:y,children:b.map((k,w)=>r.jsxs("div",{className:"tooltip-textbox__line",children:[b.length>1?r.jsx("div",{className:"tooltip-textbox__marker",children:r.jsx("span",{className:"tooltip-textbox__line-number button-1",children:w+1})}):null,r.jsx("span",{className:"tooltip-textbox__line-text",children:k})]},w))})]}),r.jsxs("div",{className:"tooltip-textbox__buttons",children:[r.jsx(fe,{htmlType:"button",size:32,showTooltipInfo:!0,type:"dot",useBorder:!1,width:48,icon:"minus",onClick:h,ariaLabel:t("training.fontSizeDecrease","\uAE00\uC790 \uD06C\uAE30 \uAC10\uC18C"),variant:d==="dark"?"transparent-white":"transparent-gray",disabled:!g}),r.jsx(fe,{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:!m}),r.jsx(fe,{htmlType:"button",size:32,showTooltipInfo:!0,type:"dot",useBorder:!1,width:48,icon:d==="dark"?"moon":"sun-medium",onClick:x,ariaLabel:t("training.toggleBackground","\uBC30\uACBD \uC804\uD658"),variant:d==="dark"?"transparent-white":"transparent-gray"}),r.jsx(fe,{htmlType:"button",size:32,showTooltipInfo:!0,type:"dot",useBorder:!1,width:48,icon:"x",onClick:_,ariaLabel:t("common.close","\uB2EB\uAE30"),variant:d==="dark"?"transparent-white":"transparent-gray"})]})]});return n?r.jsx(xa,{anchorRect:n,className:`tooltip-textbox ${d==="dark"?"is-dark":""}`,onClose:i,closeOnOutsideClick:l,isMobilePopup:c,ariaLabel:o||t("tooltip.textbox","\uBCF8\uBB38"),children:C}):r.jsx("div",{className:`tooltip-textbox ${d==="dark"?"is-dark":""}`,children:C})}var WB=".ihabdevteam-core-scope .training-page-bottom{box-sizing:border-box;width:100%}.ihabdevteam-core-scope .pp-bottom{align-items:center;background:var(--color-deepWhite);border-top:1px solid var(--color-whiteLine);box-sizing:border-box;display:flex;flex:0 0 auto;gap:var(--spacing-s);justify-content:space-between;padding:12px 18px calc(12px + env(safe-area-inset-bottom));width:100%;z-index:5}.ihabdevteam-core-scope .pp-bottom__left{align-items:center;display:flex;gap:var(--spacing-m)}.ihabdevteam-core-scope .pp-bottom__right{align-items:center;display:flex;gap:8px}.ihabdevteam-core-scope .pp-bottom__meters{border:1px solid var(--color-whiteLine);border-radius:14px;display:flex;flex-direction:column;gap:2px;justify-content:center;padding:8px 12px}.ihabdevteam-core-scope .pp-bottom__meter{align-items:center;display:flex;flex-direction:row;gap:var(--spacing-xs)}.ihabdevteam-core-scope .pp-bottom__meter-label{color:var(--color-gray);min-width:28px}.ihabdevteam-core-scope .pp-bottom__settings--desktop{display:none}.ihabdevteam-core-scope .pp-bottom__settings--mobile{display:flex}@media (min-width:768px){.ihabdevteam-core-scope .pp-bottom__settings--desktop{display:block}.ihabdevteam-core-scope .pp-bottom__settings--mobile{display:none}}.ihabdevteam-core-scope .pp-bottom__tooltip-trigger{display:inline-block}.ihabdevteam-core-scope .pp-bottom__meters--floating{display:flex;flex-direction:column;gap:var(--spacing-xs)}.ihabdevteam-core-scope .pp-bottom__meter-trigger{display:inline-flex;flex-shrink:0}.ihabdevteam-core-scope .training-steps{box-sizing:border-box;display:flex;flex-direction:column;overflow:visible;width:100%}.ihabdevteam-core-scope .training-step{align-items:stretch;box-sizing:border-box;display:flex;flex-direction:row;flex-wrap:nowrap;gap:var(--spacing-m);overflow:visible;width:100%}.ihabdevteam-core-scope .training-step__content{box-sizing:border-box;display:flex;flex:1 1 auto;flex-direction:column;gap:var(--spacing-s);gap:var(--spacing-m);min-width:0;overflow:visible;width:100%}.ihabdevteam-core-scope .training-step__title{color:#0b2b35;color:var(--text,#0b2b35);margin:0;text-align:left}.ihabdevteam-core-scope .training-step__buttons{-ms-overflow-style:none;align-items:stretch;display:flex;flex-direction:row;gap:var(--spacing-content);overflow-x:auto;scrollbar-width:none;width:100%}.ihabdevteam-core-scope .training-step__buttons::-webkit-scrollbar{display:none}.ihabdevteam-core-scope .training-step__buttons>*{align-self:stretch;flex:1 1 0;margin:0;min-width:0}.ihabdevteam-core-scope .training-step__buttons.training-step__buttons--wrap-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));overflow-x:visible}.ihabdevteam-core-scope .training-step__buttons.training-step__buttons--wrap-3>*{width:100%}.ihabdevteam-core-scope .training-step__buttons .button{align-items:center;align-self:stretch;display:flex}@media (max-width:640px){.ihabdevteam-core-scope .training-step{flex-direction:row;gap:10px}}.ihabdevteam-core-scope .training-step__cards{box-sizing:border-box;display:flex;gap:var(--spacing-s);width:100%}@media (max-width:767px){.ihabdevteam-core-scope .training-step__cards{grid-gap:var(--spacing-s);display:grid;gap:var(--spacing-s);grid-template-columns:repeat(3,1fr)}}.ihabdevteam-core-scope .training-step__listen-sticky{width:100%}.ihabdevteam-core-scope .training-step.training-step--has-nested .training-step__content{margin-bottom:100px}.ihabdevteam-core-scope .training-steps>.training-step:last-child .training-step__content{margin-bottom:0}.ihabdevteam-core-scope .training-step:not(.training-step--last) .training-step__content{margin-bottom:var( --margin-page)}.ihabdevteam-core-scope .training-step.training-step--last .training-step__content{margin-bottom:0}";oe(WB);var GB='.ihabdevteam-core-scope .ts-bullet{--dot-size:28px;--dot-gap:10px;align-items:center;align-self:stretch;display:flex;flex-direction:column;justify-content:flex-start;position:relative;width:28px;width:var(--dot-size)}.ihabdevteam-core-scope .bullet__dot{align-items:center;border:2px solid rgba(43,138,125,.12);border-radius:50%;display:flex;height:var(--dot-size);justify-content:center;width:var(--dot-size);z-index:2}.ihabdevteam-core-scope .bullet__icon{align-items:center;color:var(--color-darkGray);display:inline-flex;height:20px;justify-content:center;position:relative;width:20px;z-index:1}.ihabdevteam-core-scope .bullet__icon-img{display:block;height:100%;-o-object-fit:contain;object-fit:contain;width:100%}.ihabdevteam-core-scope .bullet__icon-mask{background-color:currentColor;height:100%;-webkit-mask-image:var(--icon-url);mask-image:var(--icon-url);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;width:100%}.ihabdevteam-core-scope .bullet__icon-svg svg{fill:currentColor;height:100%;width:100%}.ihabdevteam-core-scope .ts-bullet__line{background:var(--color-whiteLine);border-radius:var(--radius-xs);bottom:20px;left:50%;position:absolute;top:calc(var(--dot-size) + var(--dot-gap));transform:translateX(-50%);width:2px;z-index:1}.ihabdevteam-core-scope .ts-bullet--done .bullet__icon{color:transparent}.ihabdevteam-core-scope .ts-bullet--active .bullet__icon{color:#fff}.ihabdevteam-core-scope .ts-bullet--disabled .bullet__icon{color:transparent}.ihabdevteam-core-scope .ts-bullet--done .bullet__dot{border:2px solid var(--color-main)}.ihabdevteam-core-scope .ts-bullet--active .bullet__dot{background-color:var(--color-main);position:relative}.ihabdevteam-core-scope .ts-bullet--active .bullet__dot:after,.ihabdevteam-core-scope .ts-bullet--active .bullet__dot:before{animation:bullet-ripple 3s cubic-bezier(.2,.6,.2,1) infinite;background:var(--color-main);border-radius:50%;content:"";inset:0;opacity:.5;pointer-events:none;position:absolute}.ihabdevteam-core-scope .ts-bullet--active .bullet__dot:after{animation-delay:1.5s;opacity:.3}@keyframes bullet-ripple{0%{opacity:.5;transform:scale(1)}to{opacity:0;transform:scale(2.2)}}.ihabdevteam-core-scope .ts-bullet--disabled .bullet__dot{border:2px solid var(--color-whiteLine)}.ihabdevteam-core-scope .ts-bullet--done .bullet__line{background-color:var(--color-main)}.ihabdevteam-core-scope .ts-bullet--active .bullet__line,.ihabdevteam-core-scope .ts-bullet--disabled .bullet__line{background-color:var(--color-whiteLine)}.ihabdevteam-core-scope .training-step--last .ts-bullet__line,.ihabdevteam-core-scope .training-step.training-step--last .ts-bullet__line{display:none}@media (max-width:1024px){.ihabdevteam-core-scope .ts-bullet{--dot-size:26px}}@media (max-width:768px){.ihabdevteam-core-scope .ts-bullet{--dot-size:24px}}';oe(GB);function Du({state:e="disabled"}){const{t}=_e.useTranslation();return r.jsxs("div",{className:`ts-bullet ts-bullet--${e}`,"aria-hidden":!0,children:[r.jsx("div",{className:"bullet__dot",children:r.jsx(et,{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})}),r.jsx("div",{className:"ts-bullet__line"})]})}function Vf(e,t,a){const o=s.useRef(t),n=s.useRef(a);s.useEffect(()=>{o.current=t,n.current=a}),s.useEffect(()=>{if(!e||typeof document>"u")return;let i=null,l=10;const c=()=>{i=null;const d=o.current(),u=d?Array.from(d.querySelectorAll(za)).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=n.current();if(u)try{u.focus()}catch{}}}},[e])}var UB=".ihabdevteam-core-scope .training-step__title-row{align-items:center;display:flex;gap:var(--spacing-xs);padding-right:72px;position:relative;width:100%}.ihabdevteam-core-scope .training-step__title-row .training-step__title{color:var(--color-black);margin:0;padding:0}.ihabdevteam-core-scope .training-step__title--faded .training-step__title-text{background-color:var(--color-darkWhite);border-radius:var(--radius-xs);color:transparent;opacity:1;transition:color .14s ease,opacity .14s ease}.ihabdevteam-core-scope .training-step__title-row .title-controls{align-items:center;display:flex;gap:6px;margin-left:auto}.ihabdevteam-core-scope .training-step__title-row .title-controls .title-buttons{align-items:center;display:inline-flex;gap:6px;justify-content:center;overflow:visible;position:absolute;right:0;top:50%;transform:translateY(-50%)}.ihabdevteam-core-scope .training-step__title-row .title-controls .title-buttons .button28{align-items:center;display:inline-flex;justify-content:center}.ihabdevteam-core-scope .training-step__title-row--disabled .training-step__title,.ihabdevteam-core-scope .training-step__title-row--done .training-step__title{pointer-events:none}.ihabdevteam-core-scope .training-step__title-row--disabled .title-controls{opacity:.6;pointer-events:none}.ihabdevteam-core-scope .training-step__title-row--active .title-controls,.ihabdevteam-core-scope .training-step__title-row--done .title-controls{opacity:1;pointer-events:auto}.ihabdevteam-core-scope .training-step__title-row--disabled .training-step__title,.ihabdevteam-core-scope .training-step__title-row--done .training-step__title{color:var(--color-disabled)}.ihabdevteam-core-scope .training-step__title-row--active .training-step__title{color:var(--color-black)}";oe(UB);function Nu({title:e,children:t,className:a="",state:o="disabled",usePreviewTextBtn:n=!1,onPreviewTextBtn:i,previewText:l=null,useFaded:c,usePlayAllBtn:d=!1,onPlayAll:u,playAllActive:p=!1}){const{t:h}=_e.useTranslation(),m=la("(max-width: 767px)"),g=`training-step__title h4 ${c&&o==="disabled"?"training-step__title--faded":""} ${a}`.trim(),v=`training-step__title-row training-step__title-row--${o}`.trim(),f=s.useRef(null),[x,_]=s.useState(!1),[b,y]=s.useState(null),[C,k]=s.useState(null);Vf(x&&!!b,()=>{if(typeof document>"u")return null;const D=Array.from(document.querySelectorAll(".tooltip-content"));for(let T=D.length-1;T>=0;T--)if(D[T].querySelector(".tooltip-textbox__root"))return D[T];return null},()=>f.current?.querySelector("button")??null);const w=s.useRef(i);s.useEffect(()=>{w.current=i});const A=s.useMemo(()=>l==null?"":typeof l=="string"||typeof l=="number"?String(l):Array.isArray(l)&&l.every(D=>typeof D=="string"||typeof D=="number")?l.join(""):"",[l]),B=s.useCallback(()=>{_(!1),y(null),k(null)},[]);s.useEffect(()=>{if(!x)return;let D;try{typeof w.current=="function"&&(D=w.current())}catch{}if(D===!1){B();return}k(typeof D<"u"&&D!==null?D:null)},[A]);const S=s.useCallback(()=>{let D;try{typeof i=="function"&&(D=i())}catch{}if(D!==!1){if(k(typeof D<"u"&&D!==null?D:l),!f.current){_(T=>!T);return}if(x)_(!1),y(null),k(null);else{const T=f.current.getBoundingClientRect();y(T),_(!0)}}},[i,l,x]);return r.jsxs("div",{className:v,children:[r.jsx("p",{className:g,children:r.jsx("span",{className:"training-step__title-text",children:e??t})}),n||d?r.jsxs("div",{className:"title-controls",children:[r.jsxs("div",{className:"title-buttons",children:[d&&r.jsx(fe,{htmlType:"button",size:32,type:m?"dot":"bar",icon:"play-circle",label:m?void 0:h("training.playAll","\uBAA8\uB450 \uB4E3\uAE30"),ariaLabel:h("training.playAll","\uBAA8\uB450 \uB4E3\uAE30"),selected:p,onClick:u,variant:o==="disabled"?"disabled":"default",disabled:o==="disabled"||p,onDisabledClick:p&&o!=="disabled"?()=>{}:void 0}),n&&r.jsx("div",{ref:f,children:r.jsx(fe,{htmlType:"button",size:32,type:m?"dot":"bar",icon:"eye",label:m?void 0:h("training.sentencePreview","\uBB38\uC7A5 \uBBF8\uB9AC\uBCF4\uAE30"),ariaLabel:h("training.sentencePreview","\uBB38\uC7A5 \uBBF8\uB9AC\uBCF4\uAE30"),onClick:S,className:x?"is-selected":void 0,"aria-expanded":x,"aria-haspopup":"dialog",variant:o==="disabled"?"disabled":"default",disabled:!l&&typeof i!="function"})})]}),x&&r.jsx(Er,{text:C??l,label:h("training.sentencePreview","\uBB38\uC7A5 \uBBF8\uB9AC\uBCF4\uAE30"),anchorRect:b,onClose:B,closeOnOutsideClick:!1,isMobilePopup:!0})]}):null]})}function Tu(e,t){return typeof t!="number"||typeof e!="number"?"disabled":e<t?"done":e===t?"active":"disabled"}function _o({index:e,stepIndex:t,isLast:a=!1,title:o="",titleProps:n={},children:i,className:l="",onDone:c=void 0,useTitleFaded:d=void 0}){const{t:u}=_e.useTranslation(),[p,h]=s.useState(()=>Tu(e,t));s.useEffect(()=>{const k=Tu(e,t);if(k!==p){const w=setTimeout(()=>h(k),0);return()=>clearTimeout(w)}},[e,t,p]);const m=s.useCallback((...k)=>{Tu(e,t)==="done"||p==="done"||typeof c=="function"&&c(...k)},[e,t,p,c]),[g,v]=s.useState(!1),[f,x]=s.useState({text:"",label:"\uBB38\uC7A5 \uB4E3\uAE30",anchorRect:null,backdrop:!1,alignX:null,alignY:null}),_=s.useCallback(k=>{if(!k)return null;try{const w=k;if(typeof k=="object"&&(w.currentTarget||w.target)&&(w.nativeEvent||w.type)){const S=w.currentTarget??w.target;if(S&&typeof S.getBoundingClientRect=="function")return S.getBoundingClientRect()}if(k instanceof DOMRect)return k;const A=k;if(A&&typeof A.getBoundingClientRect=="function")return A.getBoundingClientRect();const B=k?.current;return B&&typeof B.getBoundingClientRect=="function"?B.getBoundingClientRect():null}catch{return null}},[]),b=s.useCallback((k,{text:w="",label:A="\uBB38\uC7A5 \uB4E3\uAE30",backdrop:B=!1,alignX:S="center",alignY:D="top"}={})=>{const T=_(k);x({text:w,label:A,anchorRect:T,backdrop:B,alignX:S,alignY:D}),v(!0)},[_]),y=s.useCallback(()=>{v(!1),x(k=>({...k,anchorRect:null}))},[]),C=s.Children.map(i,k=>{if(s.isValidElement(k)){const w=k;if(typeof w.type=="string")return w;const A=w.props??{},B=typeof A.onDone=="function"?A.onDone:m,S=typeof A.disabled=="boolean";let D=p==="disabled";return S&&(D=!!A.disabled),s.cloneElement(w,{onDone:B,disabled:D,showTooltip:b,hideTooltip:y})}return k});return r.jsxs("div",{className:`training-step training-step--${p} ${a?"training-step--last":""} ${l}`,"aria-current":p==="active",children:[r.jsx(Du,{state:p}),r.jsxs("div",{className:"training-step__content",children:[r.jsx(Nu,{state:p,title:o,...n,useFaded:d}),C]}),g?r.jsx(xa,{anchorRect:f.anchorRect,backdrop:f.backdrop,onClose:y,ariaLabel:u("tooltip.textbox","\uBCF8\uBB38"),children:r.jsx(Er,{text:f.text,onClose:y})}):null]})}var qB='.ihabdevteam-core-scope .training-text-box{background:var(--color-darkWhite);border:1px solid var(--color-deepWhite);border-radius:var(--radius-m);color:var(--color-black);display:flex;flex-direction:column;max-width:100%;min-height:160px;overflow:visible;overflow-wrap:anywhere;padding:var(--spacing-content);position:relative;text-align:center;word-break:keep-all}.ihabdevteam-core-scope .training-text-box--disabled{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.ihabdevteam-core-scope .training-text-box--disabled .training-text-box__inner{visibility:hidden}.ihabdevteam-core-scope .training-text-box--disabled:after{content:"";pointer-events:none;position:absolute;z-index:5}.ihabdevteam-core-scope .training-text-box__preview{align-items:center;display:flex;justify-content:center;left:50%;pointer-events:auto;position:absolute;top:50%;transform:translate(-50%,-50%);z-index:60}.ihabdevteam-core-scope .training-text-box__buttons{border-radius:999px;gap:4px;height:28px;left:0;right:0}.ihabdevteam-core-scope .training-text-box__area,.ihabdevteam-core-scope .training-text-box__buttons{align-items:center;box-sizing:border-box;display:flex;justify-content:center;pointer-events:auto;position:relative;z-index:40}.ihabdevteam-core-scope .training-text-box__area{flex:1 1 auto;margin:0 auto;min-height:0;text-align:center;width:100%}.ihabdevteam-core-scope .training-text-box--active,.ihabdevteam-core-scope .training-text-box--done{background-color:var(--color-white);border-color:var(--color-main);pointer-events:auto;transition:box-shadow .18s ease,transform .18s ease,opacity .16s ease;-webkit-user-select:auto;-moz-user-select:auto;user-select:auto}.ihabdevteam-core-scope .training-text-box.is-dark{background:var(--color-darkGray);border:1px solid var(--color-black);color:var(--color-deepWhite)}.ihabdevteam-core-scope .training-text-box .training-text-box__inner{display:block;overflow-wrap:anywhere;text-align:center;white-space:normal;width:100%;word-break:keep-all}.ihabdevteam-core-scope .training-text-box.is-dark .tooltip-textbox__text,.ihabdevteam-core-scope .training-text-box.is-dark .training-text-box__inner{color:var(--color-deepWhite)}';oe(qB);function ju({context:e,state:t="disabled",theme:a="light"}){const{t:o}=_e.useTranslation(),[n,i]=s.useState("disabled"),[l,c]=s.useState(()=>{try{return localStorage.getItem("tooltip-theme")||a}catch{return a}});s.useEffect(()=>{try{localStorage.setItem("tooltip-theme",l)}catch{}},[l]);const d=()=>c(L=>L==="dark"?"light":"dark"),{increase:u,decrease:p,canIncrease:h,canDecrease:m,fontSize:g,lineHeight:v}=vi({storageKey:"textbox_fontScale"}),[f,x]=s.useState(""),_=s.useRef(null),b=s.useRef(!1),y=s.useCallback(()=>{b.current=Vi()&&!!_.current&&_.current.contains(document.activeElement),i("active")},[]),C=s.useCallback(()=>x(""),[]),k=L=>{try{x(L)}catch{}},w=typeof navigator<"u"&&/Mobi|Android/i.test(navigator.userAgent||"");s.useEffect(()=>{if(t!=="disabled"){const L=setTimeout(()=>i(t),0);return()=>clearTimeout(L)}},[t]);const A=s.useMemo(()=>e&&typeof e=="object"?String(e.sentence??e.text??""):typeof e=="string"?e:"",[e]),[B,S]=s.useState(A);B!==A&&(S(A),i("disabled"));const D=t==="disabled"?n:t,T=D==="disabled"?"training-text-box--disabled":D==="active"?"training-text-box--active":D==="done"?"training-text-box--done":"",I=s.useMemo(()=>({fontSize:`${g}px`,lineHeight:`${v}px`}),[g,v]);return s.useEffect(()=>{if(D==="disabled"||!b.current)return;b.current=!1;const L=document.activeElement;L&&L!==document.body||_.current?.querySelector(".training-text-box__buttons button")?.focus()},[D]),r.jsxs("div",{ref:_,className:`training-text-box ${T} ${D!=="disabled"&&l==="dark"?"is-dark":""}`,children:[D==="disabled"&&r.jsx("div",{className:"training-text-box__preview",children:r.jsx(fe,{htmlType:"button",size:48,type:"bar",onClick:y,icon:"eye",ariaLabel:o("training.sentencePreview","\uBB38\uC7A5 \uBBF8\uB9AC\uBCF4\uAE30"),label:o("training.sentencePreview","\uBB38\uC7A5 \uBBF8\uB9AC\uBCF4\uAE30"),useBorder:!1})}),r.jsx("div",{className:"training-text-box__area","aria-hidden":D==="disabled",children:r.jsx("span",{className:"training-text-box__inner h3",style:I,children:A})}),D!=="disabled"&&r.jsxs("div",{className:"training-text-box__buttons","aria-hidden":D==="disabled",children:[r.jsx(fe,{htmlType:"button",size:32,type:"dot",onClick:p,onDisabledClick:()=>k(o("training.fontSizeMin","\uAE00\uC528 \uD06C\uAE30\uAC00 \uCD5C\uC18C\uC785\uB2C8\uB2E4.")),ariaLabel:o("training.fontSizeDecrease","\uAE00\uC790 \uD06C\uAE30 \uAC10\uC18C"),icon:"minus",variant:l==="dark"?"transparent-white":"transparent-gray",disabled:!m,useBorder:!1,showTooltipInfo:!0,...!w&&{width:"60px"}}),r.jsx(fe,{htmlType:"button",size:32,type:"dot",onClick:u,onDisabledClick:()=>k(o("training.fontSizeMax","\uAE00\uC528 \uD06C\uAE30\uAC00 \uCD5C\uB300\uC785\uB2C8\uB2E4.")),ariaLabel:o("training.fontSizeIncrease","\uAE00\uC790 \uD06C\uAE30 \uC99D\uAC00"),icon:"plus",variant:l==="dark"?"transparent-white":"transparent-gray",disabled:!h,useBorder:!1,showTooltipInfo:!0,...!w&&{width:"60px"}}),r.jsx(fe,{htmlType:"button",size:32,showTooltipInfo:!0,type:"dot",useBorder:!1,width:48,icon:l==="dark"?"moon":"sun-medium",onClick:d,ariaLabel:o("training.toggleBackground","\uBC30\uACBD \uC804\uD658"),variant:l==="dark"?"transparent-white":"transparent-gray"})]}),r.jsx(Ho,{message:f,position:"top",onClose:C})]})}function os({index:e,stepIndex:t,isLast:a=!1,title:o,useTitleFaded:n,onDone:i,onChange:l,answer:c,wrongAnswers:d,choices:u,multiSelect:p=!1,correctCount:h=0,useDisabledCovered:m=!1,choiceIcons:g,shuffleChoices:v=!0}){const{t:f}=_e.useTranslation(),x=o??f("training.selectConfirm","\uBB38\uC81C\uB97C \uBCF4\uACE0 \uD574\uB2F9\uD558\uB294 \uB0B4\uC6A9\uC744 \uC120\uD0DD\uD558\uC138\uC694."),_=typeof e=="number"?e:-1,b=typeof t!="number"?"disabled":_<t?"done":_===t?"active":"disabled",y=Array.isArray(u)&&u.length?u:typeof c<"u"?[c].concat(Array.isArray(d)?d:[]):void 0,C=d?d.join("||"):"",k=u?u.join("||"):"",[w,A]=s.useState(()=>Array.isArray(y)?v?lt(y):y.slice():void 0);s.useEffect(()=>{Array.isArray(y)&&y.length?A(v?lt(y):y.slice()):A(void 0)},[c,C,k,v]);const[B,S]=s.useState(null),[D,T]=s.useState(()=>new Set);s.useEffect(()=>{S(null),T(new Set)},[k,c,C]);const I=s.useRef(void 0);s.useEffect(()=>{const N=I.current;typeof N=="number"&&typeof t=="number"&&typeof e=="number"&&N>=e&&t<e&&(S(null),T(new Set)),I.current=t},[t,e]);const L=s.useCallback(N=>{if(b!=="active")return;const j=w?.[N];if(j==null)return;const H=j,X=b==="active"||b==="done";if(p){const ae=new Set(D),M=ae.has(H);M?ae.delete(H):ae.add(H),T(ae),typeof l=="function"&&l({selectedValues:[...ae],__ts:Date.now()}),X&&(typeof h=="number"&&h>0?ae.size>=h:!M)&&typeof i=="function"&&b==="active"&&i({selectedValues:[...ae],__ts:Date.now()})}else S(H),typeof l=="function"&&l({selectedIndex:N,selectedValue:H,__ts:Date.now()}),X&&typeof i=="function"&&b==="active"&&i({selectedIndex:N,selectedValue:H,__ts:Date.now()})},[w,b,p,l,i,h,D]),V=`training-step__buttons${Array.isArray(w)&&w.length>3?" training-step__buttons--wrap-3":""}`;return r.jsx(_o,{index:e,stepIndex:t,isLast:a,title:x,useTitleFaded:n,children:r.jsx("div",{className:V,children:Array.isArray(w)&&w.length>0?w.map((N,j)=>r.jsx(fe,{htmlType:"button",size:56,type:"bar",onClick:()=>L(j),ariaLabel:String(N),label:N,useLabel:!0,icon:g?g[String(N)]:void 0,variant:"default",disabled:b==="disabled",selected:p?D.has(N):B===N,useDisabledCovered:m,minWidth:0},String(N))):null})})}function rs({index:e,stepIndex:t,isLast:a=!1,title:o,onDone:n,onChange:i,context:l,demoSelected:c}){const{t:d}=_e.useTranslation(),u=o??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,h=typeof t!="number"?"disabled":p<t?"done":p===t?"active":"disabled",m=l&&typeof l=="object"?l.sentence||"":typeof l=="string"?l:"",g=l&&typeof l=="object"?l.choices:void 0,[v,f]=s.useState(c??null),x=`${String(m)}\0${JSON.stringify(g??null)}`,[_,b]=s.useState(x);_!==x&&(b(x),c==null&&f(null));const[y,C]=s.useState(c);Object.is(y,c)||(C(c),f(c??null));const k=s.useRef(void 0);s.useEffect(()=>{const S=k.current;typeof S=="number"&&typeof t=="number"&&typeof e=="number"&&S>=e&&t<e&&c==null&&f(null),k.current=t},[t,e,c]);const w=s.useCallback(S=>{const D=typeof S=="object"&&S!==null?Object.assign({},S,{__ts:Date.now()}):{value:S,__ts:Date.now()};typeof i=="function"&&i(D),h==="active"&&typeof n=="function"&&n(D)},[i,h,n]),A=s.useCallback(()=>{h==="active"&&(f(!1),w(!1))},[w,h]),B=s.useCallback(()=>{h==="active"&&(f(!0),w(!0))},[w,h]);return r.jsxs(_o,{index:e,stepIndex:t,isLast:a,title:u,onDone:n,useTitleFaded:!1,children:[r.jsx(ju,{context:l,state:h}),r.jsx("div",{className:"training-step__buttons",children:Array.isArray(g)&&g.length>0?g.slice(0,6).map((S,D)=>r.jsx(fe,{htmlType:"button",size:56,type:"bar",onClick:()=>{h==="active"&&(f(D),w&&w(D))},disabled:h==="disabled",ariaLabel:String(S),label:S,variant:h,selected:v===D},D)):r.jsxs(r.Fragment,{children:[r.jsx(fe,{htmlType:"button",size:56,type:"bar",onClick:A,disabled:h==="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}),r.jsx(fe,{htmlType:"button",size:56,type:"bar",onClick:B,disabled:h==="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 ns({index:e,stepIndex:t,isLast:a=!1,title:o,onDone:n,btnLabel:i,soundSrc:l,bucketPath:c,usePreviewTextBtn:d,previewText:u=null,onPreviewTextBtn:p,disabled:h,_pageIndex:m,showSoundWaveForm:g,showNoiseWaveForm:v}){const{t:f}=_e.useTranslation(),x=o??f("training.listenTitle","\uC81C\uC2DC\uD558\uB294 \uBB38\uC7A5\uC744 \uB4E4\uC5B4\uC8FC\uC138\uC694."),_=h??(typeof t=="number"&&typeof e=="number"?e>t:!1);return r.jsx(_o,{index:e,stepIndex:t,isLast:a,title:x,onDone:n,titleProps:{usePreviewTextBtn:d,previewText:u,onPreviewTextBtn:p},children:r.jsx(En,{soundSrc:l,ttsText:l?null:u??x,bucketPath:c,btnLabel:i||f("training.listenButton","\uBB38\uC7A5 \uB4E3\uAE30"),disabled:_,className:"training-step__listen-sticky",showSoundWaveForm:g,showNoiseWaveForm:v},`audio-p${m??0}-s${e}`)})}var YB=".ihabdevteam-core-scope .page-popup--closing{opacity:0;pointer-events:none;transition:opacity .16s ease}.ihabdevteam-core-scope .page-popup__panel{overflow:auto}.ihabdevteam-core-scope .page-popup__close{font-size:20px;right:12px;top:10px}.ihabdevteam-core-scope .page-popup{align-items:stretch;display:flex;inset:0;justify-content:center;position:fixed;z-index:var(--z-page-popup)}.ihabdevteam-core-scope .page-popup__panel{background:var(--color-deepWhite);border-radius:0;box-shadow:none;color:var(--color-black);display:flex;flex-direction:column;height:100%;max-height:none;max-width:none;overflow:hidden;position:relative;width:100%}.ihabdevteam-core-scope .page-popup__scroll{-webkit-overflow-scrolling:touch;align-items:flex-start;display:flex;flex:1 1 0;justify-content:center;min-height:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;scrollbar-color:rgba(0,0,0,.15) transparent;scrollbar-width:thin;touch-action:pan-y}.ihabdevteam-core-scope .page-popup__scroll::-webkit-scrollbar{width:4px}.ihabdevteam-core-scope .page-popup__scroll::-webkit-scrollbar-track{background:transparent}.ihabdevteam-core-scope .page-popup__scroll::-webkit-scrollbar-thumb{background:rgba(0,0,0,.15);border-radius:var(--radius-xs)}.ihabdevteam-core-scope .page-popup__scroll::-webkit-scrollbar-thumb:hover{background:rgba(0,0,0,.28)}.ihabdevteam-core-scope .page-popup__panel--measuring .page-popup__scroll{opacity:0;pointer-events:none}.ihabdevteam-core-scope .page-popup__scroll{transition:opacity .12s ease}.ihabdevteam-core-scope .nt-debug{background:rgba(0,0,0,.03);border-radius:var(--radius-sm);color:var(--text,var(--color-black));font-family:monospace;font-size:12px;line-height:1.2;max-width:300px;padding:8px 10px;position:absolute;right:20px;top:84px;white-space:pre-wrap;z-index:calc(var(--z-page-popup) + 1)}.ihabdevteam-core-scope .page-popup--backdrop{display:none}.ihabdevteam-core-scope .page-popup__close{background:transparent;border:none;color:var(--text,var(--color-black));cursor:pointer;font-size:22px;line-height:1;position:absolute;right:14px;top:12px}.ihabdevteam-core-scope .page-popup__panel>*{box-sizing:border-box}.ihabdevteam-core-scope .page-popup__body{padding:16px 20px}.ihabdevteam-core-scope .page-popup__content{box-sizing:border-box;margin:0 auto;max-width:800px;min-width:0;padding:var(--spacing-page);width:100%}.ihabdevteam-core-scope .page-popup__content--full{max-width:none;padding:0}.ihabdevteam-core-scope .page-popup__content--center{margin-bottom:auto;margin-top:auto}.ihabdevteam-core-scope .pp-empty{color:var(--color-gray);padding:24px 0;text-align:center;width:100%}.ihabdevteam-core-scope .page-popup__content .training-steps{box-sizing:border-box;min-width:0;width:100%}.ihabdevteam-core-scope .page-popup__bottom,.ihabdevteam-core-scope .page-popup__top{flex-shrink:0}.ihabdevteam-core-scope .page-popup__panel--center .page-popup__scroll{align-items:center}.ihabdevteam-core-scope .page-popup--result-empty{background:var(--color-deepWhite)}.ihabdevteam-core-scope .page-popup__empty{align-items:center;color:var(--color-gray);display:flex;flex-direction:column;justify-content:center;padding:2rem;text-align:center;width:100%}";oe(YB);var KB=".ihabdevteam-core-scope .order-list{display:flex;flex-direction:column;gap:var(--spacing-xs)}.ihabdevteam-core-scope .order-list__item{align-items:flex-start;display:flex;gap:var(--spacing-s)}.ihabdevteam-core-scope .order-list__draggable{align-items:center;border-radius:var(--radius-m);display:flex;flex:1;gap:var(--spacing-xs);justify-content:space-between;min-height:60px;padding:0 0 0 4px;will-change:transform}.ihabdevteam-core-scope .order-list__item-text{color:var(--color-black)}.ihabdevteam-core-scope .order-list__item-buttons{align-items:center;align-self:center;display:inline-flex;gap:2px}@media (max-width:600px){.ihabdevteam-core-scope .order-list__item-buttons{align-items:center;align-self:center;display:flex;flex-direction:column}.ihabdevteam-core-scope .order-list__item-buttons>*{box-sizing:border-box;display:inline-flex}}.ihabdevteam-core-scope .order-list__item.correct{border:1px solid var(--color-main)}.ihabdevteam-core-scope .order-list__slot{align-items:center;background-color:var(--color-darkWhite);border-radius:var(--radius-m);box-sizing:border-box;display:flex;gap:var(--spacing-xs);height:auto;padding:4px 10px;width:100%}.ihabdevteam-core-scope .order-list__marker{--marker-pos:50%;align-items:center;background-color:var(--color-main);background:color-mix(in srgb,var(--color-main) 50%,var(--color-sub) 50%);border:2px solid var(--color-pureWhite);border-radius:var(--radius-sm);box-sizing:border-box;color:#fff;display:inline-flex;height:24px;justify-content:center;width:24px}@supports (color:color-mix(in lch,red,blue)) and (top:var(--f )){.ihabdevteam-core-scope .order-list__marker{background:color-mix(in srgb,var(--color-main) calc(100% - var(--marker-pos)),var(--color-sub) var(--marker-pos))}}@media (max-width:600px){.ihabdevteam-core-scope .order-list__marker{height:24px;min-width:24px;width:24px}}.ihabdevteam-core-scope .order-list__item:hover .order-list__slot{background-color:var(--color-deepWhite);box-shadow:inset 0 0 0 1px var(--color-main);transition:box-shadow .16s cubic-bezier(.22,.9,.39,1)}.ihabdevteam-core-scope .order-list__item.drag-over .order-list__slot{background-color:var(--color-white);box-shadow:inset 0 0 0 1px var(--color-main)}.ihabdevteam-core-scope .order-list__slot.pulse{background-color:var(--color-white);transition:background-color .42s cubic-bezier(.22,.9,.39,1)}.ihabdevteam-core-scope .order-list__slot.pulse.to-dark{background-color:var(--color-darkWhite)}.ihabdevteam-core-scope .order-list__slot-number{align-items:center;align-self:center;border-radius:var(--radius-sm);color:#fff;display:inline-flex;height:32px;justify-content:center;width:32px}.ihabdevteam-core-scope .order-list__draggable.dragging{background-color:var(--color-white);opacity:.2}.ihabdevteam-core-scope .order-list__dragging-object{align-items:center;background:var(--color-white);border-radius:var(--radius-m);box-shadow:0 14px 40px rgba(16,24,40,.18);box-sizing:border-box;color:var(--color-black);display:inline-flex;gap:var(--spacing-s);left:0;max-width:calc(100vw - var(--spacing-page)*3);min-height:60px;opacity:1;overflow-wrap:anywhere;padding:20px;pointer-events:none;position:fixed;top:0;transform:translate3d(-9999px,-9999px,0) scale(1);transition:transform .16s cubic-bezier(.22,.9,.39,1),opacity .18s ease;white-space:normal;width:auto;will-change:transform,opacity;word-break:keep-all;z-index:var(--z-popover)}.ihabdevteam-core-scope .order-list__dragging-object--visible{opacity:1}.ihabdevteam-core-scope .order-list__item.drag-over .order-list__slot:hover{background-color:var(--color-white);border-radius:var(--radius-m);box-shadow:inset 0 0 0 1px var(--color-main);transition:box-shadow .16s cubic-bezier(.22,.9,.39,1)}.ihabdevteam-core-scope .order-list__item-text{display:block;line-height:1.4;margin:0;overflow-wrap:anywhere;white-space:normal;width:100%;word-break:keep-all}.ihabdevteam-core-scope .order-list__draggable[data-disabled=true],.ihabdevteam-core-scope .order-list__draggable[draggable=false]{background-color:var(--color-darkWhite);box-shadow:none!important;cursor:default;opacity:.9;pointer-events:none}.ihabdevteam-core-scope .order-list__draggable[data-disabled=true] .order-list__item-text,.ihabdevteam-core-scope .order-list__draggable[draggable=false] .order-list__item-text{color:var(--color-gray);display:none!important;opacity:.9}.ihabdevteam-core-scope .order-list__draggable[data-disabled=true] .order-list__item-buttons,.ihabdevteam-core-scope .order-list__draggable[data-disabled=true]~.order-list__slot .order-list__slot-number,.ihabdevteam-core-scope .order-list__draggable[draggable=false] .order-list__item-buttons,.ihabdevteam-core-scope .order-list__draggable[draggable=false]~.order-list__slot .order-list__slot-number,.ihabdevteam-core-scope .order-list__slot-number[hidden]{display:none!important}.ihabdevteam-core-scope .order-list__draggable[data-disabled=true] .order-list__slot,.ihabdevteam-core-scope .order-list__draggable[data-disabled=true]+.order-list__slot,.ihabdevteam-core-scope .order-list__draggable[draggable=false] .order-list__slot,.ihabdevteam-core-scope .order-list__draggable[draggable=false]+.order-list__slot,.ihabdevteam-core-scope .order-list__slot[data-disabled=true]{background-color:var(--color-darkWhite)!important;box-shadow:none!important}.ihabdevteam-core-scope .order-list__slot[data-disabled=true]{cursor:default!important;pointer-events:none!important}.ihabdevteam-core-scope .order-list__slot[data-disabled=true] .order-list__slot-number{display:none!important}";oe(KB);const ZB=[];function is({index:e,stepIndex:t,isLast:a=!1,title:o,onDone:n,onChange:i,context:l=ZB}){const{t:c}=_e.useTranslation(),d=o??c("training.orderListDefault","\uBB38\uC7A5\uC744 \uB4E4\uC740 \uC21C\uC11C\uB300\uB85C \uBC30\uCE58\uD558\uC138\uC694."),u=O=>typeof O=="string"?O:O&&(O.context||O.sentence||O.question||"")||"",[p,h]=s.useState(Array.isArray(l)?l:[]),[m,g]=s.useState(()=>(p||[]).map((O,E)=>({id:E,text:u(O)}))),v=s.useMemo(()=>typeof t!="number"||typeof e!="number"?"disabled":e<t?"done":e===t?"active":"disabled",[t,e]),f=v!=="disabled",x=s.useRef(void 0);s.useEffect(()=>{if(x.current===l)return;x.current=l;const O=Array.isArray(l)?l:[];h(O);const E=(F=>{const R=(F||[]).map((K,Z)=>({id:Z,text:u(K)}));if(R.length<=1)return R;const z=(K,Z)=>{if(K.length!==Z.length)return!1;for(let ie=0;ie<K.length;ie++)if(K[ie].text!==Z[ie].text)return!1;return!0};let W=lt(R),Q=0;for(;z(W,R)&&Q<20;)W=lt(R),Q+=1;return W})(O);g(E);try{if(typeof i=="function"){const F=E.filter((R,z)=>R.text===u(O[z])).length;i({shuffled:E,score:F,total:(O||[]).length,initial:!0,__ts:Date.now()})}if(typeof n=="function"&&v==="active"){const F=E.filter((R,z)=>R.text===u(O[z])).length;n({shuffled:E,score:F,total:(O||[]).length,initial:!0,__ts:Date.now()})}}catch{}},[l]);const _=(O,E)=>{const F=[...m],R=O+E;if(R<0||R>=F.length)return;const z=F[R];F[R]=F[O],F[O]=z,j(F);try{if(typeof n=="function"&&v==="active"){const W=F.filter((Q,K)=>Q.text===u(p[K])).length;n({shuffled:F,score:W,total:(p||[]).length,__ts:Date.now()})}}catch{}},[b,y]=s.useState(null),C=s.useRef(null),k=s.useRef(null),w=s.useRef(null),A=s.useRef(null),B=s.useRef(null),S=s.useRef({x:0,y:0}),D=s.useRef(null),T=s.useRef({dx:0,dy:0}),I=()=>{if(D.current!==null)return;const O=()=>{if(!C.current){D.current=null;return}D.current=requestAnimationFrame(O);const E=S.current,F=T.current||{dx:0,dy:0};C.current&&(C.current.style.transform=`translate3d(${E.x-F.dx}px, ${E.y-F.dy}px, 0)`)};D.current=requestAnimationFrame(O)},L=s.useRef(new Map),V=s.useRef(new Map),N=()=>{const O=new Map;return L.current.forEach((E,F)=>{E&&E.getBoundingClientRect&&O.set(F,E.getBoundingClientRect())}),O},j=O=>{const E=N();g(O);try{if(typeof i=="function"){const F=O.filter((R,z)=>R.text===u(p[z])).length;i({shuffled:O,score:F,total:(p||[]).length,__ts:Date.now()})}}catch{}requestAnimationFrame(()=>{const F=N();O.forEach(R=>{const z=E.get(R.id),W=F.get(R.id),Q=L.current.get(R.id);if(!Q||!z||!W)return;const K=z.top-W.top;K&&(Q.style.transition="none",Q.style.transform=`translateY(${K}px)`,requestAnimationFrame(()=>{Q.style.transition="transform 420ms cubic-bezier(.22,.9,.39,1)",Q.style.transform="";const Z=()=>{Q.style.transition="",Q.removeEventListener("transitionend",Z)};Q.addEventListener("transitionend",Z)}))})})},H=(O,E)=>{try{try{E.dataTransfer?.setData("text/plain",String(O))}catch{}try{E.dataTransfer&&(E.dataTransfer.effectAllowed="move")}catch{}try{const F=document.createElement("div");F.style.cssText="position:absolute;top:-9999px;left:-9999px;width:1px;height:1px;opacity:0;pointer-events:none;",document.body.appendChild(F),E.dataTransfer?.setDragImage(F,0,0),requestAnimationFrame(()=>{try{document.body.removeChild(F)}catch{}})}catch{}}catch{}y(O);try{const F=m[O],R=document.createElement("div");R.className="order-list__dragging-object order-list__dragging-object--visible",R.textContent=F&&F.text?F.text:"",document.body.appendChild(R),C.current=R;const z=L.current.get(F.id);let W=E.clientX||0,Q=E.clientY||0;try{if(z&&z.getBoundingClientRect){const De=z.getBoundingClientRect();W=De.left+De.width/2,Q=De.top+De.height/2}}catch{}const K=R.getBoundingClientRect(),Z=K.width/2,ie=K.height/2;T.current={dx:Z,dy:ie},R.style.transition="none",S.current={x:W,y:Q},R.style.transform=`translate3d(${W-Z}px, ${Q-ie}px, 0)`,requestAnimationFrame(()=>{try{R.style.transition=""}catch{}I()});const te=De=>{const q=De;S.current={x:q.clientX,y:q.clientY},I()};w.current=te,document.addEventListener("mousemove",te);const ce=De=>{const q=De;S.current={x:q.clientX,y:q.clientY},I()};k.current=ce,document.addEventListener("dragover",ce);try{E.dataTransfer?.setData("text/plain",String(O));try{E.dataTransfer?.setData("application/json",JSON.stringify({idx:O}))}catch{}}catch{}}catch{}},X=(O,E)=>{E.preventDefault();try{E.dataTransfer&&(E.dataTransfer.dropEffect="move")}catch{}try{B.current!==null&&(clearTimeout(B.current),B.current=null);const F=E.currentTarget&&E.currentTarget.closest?E.currentTarget.closest(".order-list__item"):null;if(F&&A.current!==F){if(A.current)try{A.current.classList.remove("drag-over")}catch{}try{F.classList.add("drag-over")}catch{}A.current=F}}catch{}},ae=(O,E)=>{E.preventDefault();const F=E.dataTransfer?.getData("text/plain")||"",R=F?parseInt(F,10):b,z=O;if(typeof R!="number"||isNaN(R)||R===z){y(null),P(),M();return}const W=wl(m,R,z);j(W),y(null),M();try{if(typeof n=="function"&&v==="active"){const Q=W.filter((K,Z)=>K.text===u(p[Z])).length;n({shuffled:W,score:Q,total:(p||[]).length,__ts:Date.now()})}}catch{}try{requestAnimationFrame(()=>{const Q=document.querySelectorAll(".order-list .order-list__item")[z];if(!Q)return;const K=Q.querySelector(".order-list__slot")||Q;try{K.classList.add("pulse"),K.offsetHeight,K.classList.add("to-dark");const Z=()=>{K.classList.remove("pulse","to-dark"),K.removeEventListener("transitionend",Z)};K.addEventListener("transitionend",Z)}catch{}})}catch{}P()},M=()=>{if(C.current){try{document.body.removeChild(C.current)}catch{}C.current=null}k.current&&(document.removeEventListener("dragover",k.current),k.current=null),w.current&&(document.removeEventListener("mousemove",w.current),w.current=null),D.current!==null&&(cancelAnimationFrame(D.current),D.current=null)},G=()=>{y(null),P(),M()};s.useEffect(()=>()=>M(),[]);const P=()=>{try{if(B.current!==null&&(clearTimeout(B.current),B.current=null),A.current){try{A.current.classList.remove("drag-over")}catch{}A.current=null}document.querySelectorAll(".order-list .order-list__item").forEach(O=>O.classList.remove("drag-over"))}catch{}};return s.useEffect(()=>{try{const O=Math.max(1,(m||[]).length);m.forEach((E,F)=>{const R=V.current.get(E.id);if(!R)return;let z=50;O>1&&(z=Math.round(F/(O-1)*100));try{R.style.setProperty("--marker-pos",z+"%")}catch{}})}catch{}},[m]),s.useEffect(()=>()=>{M(),B.current!==null&&(clearTimeout(B.current),B.current=null)},[]),r.jsx(_o,{index:e,stepIndex:t,isLast:a,title:d,children:r.jsx("div",{className:"order-list",children:m.map((O,E)=>{const F=Math.max(1,(m||[]).length),R=F>1?Math.round(E/(F-1)*100):50;return r.jsx("div",{className:"order-list__item",children:r.jsxs("div",{className:"order-list__slot","data-disabled":v==="disabled","aria-disabled":v==="disabled",children:[v!=="disabled"?r.jsx("div",{className:"order-list__marker caption-1",style:{"--marker-pos":R+"%"},ref:z=>{const W=V.current;z?W.set(O.id,z):W.delete(O.id)},children:r.jsx("span",{className:"order-list__slot-number button-1",children:E+1})}):null,r.jsxs("div",{ref:z=>{const W=L.current;z?W.set(O.id,z):W.delete(O.id)},className:`order-list__draggable ${b===E?"dragging":""}`,"data-disabled":v==="disabled","aria-disabled":v==="disabled",tabIndex:v==="disabled"?-1:0,draggable:f,onDragStart:f?z=>H(E,z):void 0,onDragEnter:f?z=>X(E,z):void 0,onDragOver:f?z=>X(E,z):void 0,onDragLeave:f?()=>{try{B.current!==null&&clearTimeout(B.current),B.current=setTimeout(()=>{try{const z=document.querySelectorAll(".order-list .order-list__item");z&&z[E]&&(z[E].classList.remove("drag-over"),A.current===z[E]&&(A.current=null))}catch{}},80)}catch{}}:void 0,onDrop:f?z=>ae(E,z):void 0,onDragEnd:f?G:void 0,children:[r.jsx("span",{className:"order-list__item-text body-2",children:O.text}),f?r.jsxs("span",{className:"order-list__item-buttons",children:[r.jsx(fe,{htmlType:"button",size:32,type:"dot",onClick:()=>_(E,-1),ariaLabel:c("training.up"),icon:"chevron-up",variant:"transparent-gray",width:48,useFaded:"true",disabled:E===0,useBorder:!1,useDisabledInvisible:!0}),r.jsx(fe,{htmlType:"button",size:32,type:"dot",onClick:()=>_(E,1),ariaLabel:c("training.down"),icon:"chevron-down",variant:"transparent-gray",width:48,useFaded:"true",disabled:E===m.length-1,useBorder:!1,useDisabledInvisible:!0})]}):null]})]})},O.id)})})})}var XB="";oe(XB);const JB=8e3;function QB(e,t){return new Promise(a=>{let o=!1;const n=()=>{o||(o=!0,a())};e.then(n,n),setTimeout(n,t)})}function Lu({index:e,stepIndex:t,isLast:a=!1,title:o,onDone:n,onChange:i,context:l=[],selectable:c=!1,hideLabel:d=!1,hideAudio:u=!1,maxCards:p}){const{t:h}=_e.useTranslation(),m=o??h("training.cardInstructions","\uB0B1\uB9D0 \uCE74\uB4DC\uB97C \uBCF4\uACE0 \uC18C\uB9AC\uB97C \uB4E3\uACE0 \uD655\uC778\uD558\uC138\uC694."),g=s.useMemo(()=>Array.isArray(l)?l:l&&l.items||[],[l]),v=p??3,f=(g||[]).slice(0,v);(g||[]).length>v&&console.warn(`TrainingStepCard: ${g.length} items passed but only ${v} shown`);const x=typeof e=="number"?e:-1,_=typeof t!="number"?"disabled":x<t?"done":x===t?"active":"disabled",[b,y]=s.useState(null),C=s.useRef([]),[k,w]=s.useState(!1),A=s.useRef(null),B=s.useRef(!0);s.useEffect(()=>(B.current=!0,()=>{B.current=!1}),[]);const S=s.useMemo(()=>g.map(V=>V?.id??V?.word??"").join("|"),[g]);s.useEffect(()=>{y(null)},[S]);const D=s.useRef(void 0);s.useEffect(()=>{const V=D.current;typeof V=="number"&&typeof t=="number"&&typeof e=="number"&&V>=e&&t<e&&y(null),D.current=t},[t,e]);const T=s.useCallback((V,N)=>{if(c)return;const j={item:V,index:N,__ts:Date.now()};try{typeof i=="function"&&i(j)}catch{}if(_==="active"&&typeof n=="function")try{n(j)}catch{}},[c,i,_,n]),I=s.useCallback(async()=>{if(k||_==="disabled")return;w(!0);let V=!1;const N=new Promise(j=>{A.current=()=>{V=!0,j()}});try{for(let j=0;j<f.length&&!(!B.current||V);j++){const H=C.current[j];H&&await Promise.race([QB(H.play(),JB),N])}}finally{A.current=null,w(!1)}},[k,_,f.length]),L=s.useCallback((V,N)=>{if(_!=="active")return;y(N);const j={selectedValue:V.word||V.title||"",selectedIndex:N,item:V,__ts:Date.now()};try{typeof i=="function"&&i(j)}catch{}if(_==="active"&&typeof n=="function")try{n(j)}catch{}},[i,_,n]);return r.jsx(_o,{index:e,stepIndex:t,isLast:a,title:m,onDone:n,titleProps:{usePlayAllBtn:!u&&f.length>0,onPlayAll:I,playAllActive:k},children:r.jsx("div",{className:"training-step__cards",onClickCapture:V=>{const N=A.current;if(!N)return;const j=V.target;j&&typeof j.closest=="function"&&j.closest(".training-word-card__bottom")&&N()},children:f.length===0?r.jsx("div",{className:"training-step__empty",children:h("training.noCards","\uCE74\uB4DC\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4.")}):f.map((V,N)=>r.jsx(Gi,{ref:j=>{C.current[N]=j},item:V,disabled:_==="disabled",onPlayDone:()=>T(V,N),selectable:c,selected:c&&b===N,onSelect:c?()=>L(V,N):void 0,flipDelay:N*120,hideLabel:d,hideAudio:u},V&&V.id||N))})})}const eA=160;var tA=".ihabdevteam-core-scope .panel{background:var(--color-white);border:1px solid var(--color-whiteLine);border-radius:var(--radius-card);display:flex;flex-direction:column;overflow:visible;padding:0;text-align:left}.ihabdevteam-core-scope .panel--no-border{border:none}.ihabdevteam-core-scope .panel--no-bg{background:transparent;border-radius:0}.ihabdevteam-core-scope .panel--no-border .panel-row{padding-left:0;padding-right:0}.ihabdevteam-core-scope .panel--no-row-border .panel-row+.panel-row{border-top:none}.ihabdevteam-core-scope .panel__header{align-items:center;border-bottom:1px solid var(--color-darkWhite);box-sizing:border-box;display:flex;gap:var(--spacing-xs);justify-content:space-between;margin:0;padding:0 20px}.ihabdevteam-core-scope .panel__header:last-child{border-bottom:none}.ihabdevteam-core-scope .panel--small .panel__header{min-height:48px}.ihabdevteam-core-scope .panel--medium .panel__header{min-height:56px}.ihabdevteam-core-scope .panel--large .panel__header{min-height:64px}.ihabdevteam-core-scope .panel__icon{align-items:center;color:var(--t-item-fg,var(--color-main));display:flex;flex-shrink:0;height:20px;justify-content:center;margin-right:var(--spacing-s);width:20px}.ihabdevteam-core-scope .panel__title-group{display:flex;flex-direction:column;gap:4px;margin-right:auto;min-width:0}.ihabdevteam-core-scope .panel__title{color:var(--color-darkGray);margin:0}.ihabdevteam-core-scope .panel__disc{color:var(--color-gray);margin:0}.ihabdevteam-core-scope .panel__actions{display:flex;flex-shrink:0;gap:6px}.ihabdevteam-core-scope .panel-row{align-items:center;box-sizing:border-box;display:flex;gap:var(--spacing-m);justify-content:space-between;padding:4px 20px}.ihabdevteam-core-scope .panel--small .panel-row{min-height:48px}.ihabdevteam-core-scope .panel--medium .panel-row{min-height:56px}.ihabdevteam-core-scope .panel--large .panel-row{min-height:64px}.ihabdevteam-core-scope .panel--compact-rows .panel-row{min-height:46px;padding-bottom:3px;padding-top:3px}.ihabdevteam-core-scope .panel-row+.panel-row{border-top:1px solid var(--color-darkWhite)}.ihabdevteam-core-scope .panel--fill .panel-row{border-bottom:1px solid var(--color-darkWhite)}.ihabdevteam-core-scope .panel--fill .panel-row+.panel-row{border-top:none}.ihabdevteam-core-scope .panel--no-row-border .panel-row{border-bottom:none}.ihabdevteam-core-scope .panel>:not(.panel-row)+.panel-row{border-top:none}.ihabdevteam-core-scope .panel-grid{grid-gap:1px;grid-gap:var(--panel-grid-gap,1px);background:var(--color-darkWhite);display:grid;gap:1px;gap:var(--panel-grid-gap,1px);grid-template-columns:repeat(2,1fr);grid-template-columns:repeat(var(--panel-grid-cols,2),1fr);overflow:hidden;padding-bottom:1px}.ihabdevteam-core-scope .panel-grid:not(.panel-grid--columns) .panel-row{background:var(--color-white)}.ihabdevteam-core-scope .panel-grid:not(.panel-grid--columns) .panel-row+.panel-row{border-top:none}.ihabdevteam-core-scope .panel-grid--columns{background:transparent;-moz-column-count:2;column-count:2;-moz-column-count:var(--panel-grid-cols,2);column-count:var(--panel-grid-cols,2);-moz-column-gap:1px;column-gap:1px;-moz-column-gap:var(--panel-grid-gap,1px);column-gap:var(--panel-grid-gap,1px);display:block;overflow:visible;padding-bottom:0}.ihabdevteam-core-scope .panel-grid--columns>*{-moz-column-break-inside:avoid;box-sizing:border-box;break-inside:avoid;display:inline-flex;flex-direction:column;margin-bottom:1px;margin-bottom:var(--panel-grid-gap,1px);page-break-inside:avoid;vertical-align:top;width:100%}.ihabdevteam-core-scope .panel-grid--columns>:last-child{margin-bottom:0}.ihabdevteam-core-scope .panel-row--empty{color:var(--color-lightGray);justify-content:center}.ihabdevteam-core-scope .panel-row--loading{justify-content:center}.ihabdevteam-core-scope .panel__body--scroll{flex:1;min-height:0;overflow-y:auto;overscroll-behavior-y:contain}.ihabdevteam-core-scope .panel__body--gutter-stable{scrollbar-gutter:stable}.ihabdevteam-core-scope .panel-row--content{display:block;min-height:0;padding:16px}.ihabdevteam-core-scope .panel-row--content+.panel-row--content{border-top:none}.ihabdevteam-core-scope .panel-row__icon{align-items:center;display:flex;flex-shrink:0;margin-right:-4px}.ihabdevteam-core-scope .panel-row__left{flex:1;min-width:0}.ihabdevteam-core-scope .panel-row__label{color:var(--color-deepGray)}.ihabdevteam-core-scope .panel-row__sub{color:var(--color-gray);margin-top:2px}.ihabdevteam-core-scope .panel-row__right{align-items:center;display:flex;flex:0 0 auto;justify-content:flex-end}@media (max-width:767px){.ihabdevteam-core-scope .panel-row{flex-wrap:wrap}.ihabdevteam-core-scope .panel-row__right{flex:0 1 auto;min-width:0}}.ihabdevteam-core-scope .panel--form .panel-row{grid-gap:var(--spacing-m);align-items:center;display:grid;gap:var(--spacing-m);grid-template-columns:80px 1fr;grid-template-columns:var(--panel-label-width,80px) 1fr}.ihabdevteam-core-scope .panel--form .panel-row:has(.text-field--full-width){align-items:flex-start}.ihabdevteam-core-scope .panel--form .panel-row:has(.text-field--full-width) .panel-row__left{padding-top:9px}.ihabdevteam-core-scope .panel-row--label-fixed .panel-row__left{flex:0 0 120px;flex:0 0 var(--panel-label-width,120px)}.ihabdevteam-core-scope .panel-row--label-fixed .panel-row__right{flex:1;min-width:0}.ihabdevteam-core-scope .panel-row--fill .panel-row__right{align-items:center;display:flex}.ihabdevteam-core-scope .panel-row--fill .panel-row__right>*,.ihabdevteam-core-scope .panel-row--fill>.dropdown,.ihabdevteam-core-scope .panel-row--fill>.form-input,.ihabdevteam-core-scope .panel-row--fill>.text-field{flex:1;min-width:0}.ihabdevteam-core-scope .panel-row--clickable{cursor:pointer;transition:background .1s,box-shadow .1s}.ihabdevteam-core-scope .panel-row--clickable:hover{background:var(--color-darkWhite)}.ihabdevteam-core-scope .panel-row__text{color:var(--color-darkGray);overflow-wrap:break-word;text-align:right;word-break:break-word}.ihabdevteam-core-scope .panel-row--text .panel-row__right{flex:1;min-width:0}.ihabdevteam-core-scope .panel-row--block{align-items:stretch;display:flex;flex-direction:column;justify-content:center}.ihabdevteam-core-scope .panel-row__description{color:var(--color-gray);line-height:1.6;margin:0;overflow-wrap:break-word;word-break:break-word}.ihabdevteam-core-scope .panel-row__dropdown-group{display:flex;gap:var(--spacing-s)}.ihabdevteam-core-scope .panel-row__dropdown-group--full,.ihabdevteam-core-scope .panel-row__dropdown-item--full{flex:1;min-width:0}.ihabdevteam-core-scope .panel-row__dropdown-error-wrap{display:flex;flex-direction:column}.ihabdevteam-core-scope .panel-row__dropdown-error-wrap--full{flex:1;min-width:0}.ihabdevteam-core-scope .panel-row__text--full{text-align:left;width:100%}.ihabdevteam-core-scope .panel-row__input-wrap{display:flex;flex-direction:column}.ihabdevteam-core-scope .panel-row__input-wrap--full{flex:1;min-width:0}.ihabdevteam-core-scope .panel-row--vertical{align-items:flex-start;flex-direction:column;gap:8px;gap:var(--spacing-xs,8px)}.ihabdevteam-core-scope .panel-row--vertical .panel-row__left{flex:none;width:100%}.ihabdevteam-core-scope .panel-row--vertical .panel-row__right{align-items:flex-start;flex:none;justify-content:flex-start;width:100%}.ihabdevteam-core-scope .panel-row--vertical .panel-row__text{margin-left:0;text-align:left}.ihabdevteam-core-scope .panel-row--device{grid-gap:0;align-items:stretch;display:grid;gap:0;grid-template-columns:1fr 1fr;min-height:0;padding:0}.ihabdevteam-core-scope .panel-row__device-column{box-sizing:border-box;display:flex;flex-direction:column;gap:0;min-height:164px;padding:14px 16px}.ihabdevteam-core-scope .panel-row__device-column+.panel-row__device-column{border-left:1px solid var(--color-darkWhite)}.ihabdevteam-core-scope .panel-row__device-head{align-items:center;display:flex;gap:8px;justify-content:space-between;margin-bottom:8px;min-height:32px}.ihabdevteam-core-scope .panel-row__device-side{color:var(--color-darkGray);margin:0;text-align:left}.ihabdevteam-core-scope .panel-row__device-info{margin:0;text-align:left}.ihabdevteam-core-scope .panel-row__device-info,.ihabdevteam-core-scope .panel-row__device-kind{align-items:flex-start;display:flex;flex-direction:column;gap:3px}.ihabdevteam-core-scope .panel-row__device-name{color:var(--color-darkGray)}.ihabdevteam-core-scope .panel-row__device-detail{color:var(--color-gray)}.ihabdevteam-core-scope .panel-row__device-date{color:var(--color-lightGray);margin-top:2px}.ihabdevteam-core-scope .panel-row__device-empty{align-items:center;color:var(--color-lightGray);display:flex;flex:1;justify-content:center;text-align:center}.ihabdevteam-core-scope .required-mark{color:var(--color-main);margin-left:2px}.ihabdevteam-core-scope .panel-row__error{color:var(--color-error);margin-top:4px}.ihabdevteam-core-scope .panel-row__helper{color:var(--color-lightGray);margin-top:4px}.ihabdevteam-core-scope .panel-row__button-group{display:flex;gap:6px}@media (max-width:767px){.ihabdevteam-core-scope .panel-row__dropdown-group{flex-wrap:wrap}.ihabdevteam-core-scope .panel-row__dropdown-error-wrap--full,.ihabdevteam-core-scope .panel-row__dropdown-item--full{flex:1 1 104px}}";oe(tA);const aA={\uBCF4\uCCAD\uAE30:"hearingAid",\uC778\uACF5\uC640\uC6B0:"cochlearImplant"};function oA(e,t){const a=aA[e];return a?t(`device.type.${a}`,{defaultValue:e}):e}const Wf=()=>{};function ao(e){const t=s.useId();if(!("variant"in e)){const{label:b,sub:y,onClick:C,children:k,align:w="horizontal",icon:A,useFullWidth:B=!1}=e,S=D=>{C&&D.target===D.currentTarget&&(D.key==="Enter"||D.key===" ")&&(D.preventDefault(),C())};return r.jsxs("div",{className:Ee("panel-row",w==="vertical"?"panel-row--vertical":"",B?"panel-row--label-fixed panel-row--fill":"",C?"panel-row--clickable":""),onClick:C,onKeyDown:C?S:void 0,role:C?"button":void 0,tabIndex:C?0:void 0,children:[A!=null&&r.jsx("div",{className:"panel-row__icon",children:A}),b!=null&&r.jsxs("div",{className:"panel-row__left",children:[r.jsx("div",{className:"panel-row__label body-3",children:b}),y&&r.jsx("div",{className:"panel-row__sub caption-1",children:y})]}),r.jsx("div",{className:"panel-row__right",children:k})]})}if(e.variant==="description")return r.jsx("div",{className:"panel-row panel-row--block",children:r.jsx("p",{className:"panel-row__description body-3",children:e.children})});if(e.variant==="empty")return r.jsx("div",{className:"panel-row panel-row--empty body-3",children:e.children});if(e.variant==="loading")return r.jsx("div",{className:"panel-row panel-row--loading",children:r.jsx(Cr,{size:28})});if(e.variant==="custom"&&!e.label)return r.jsx("div",{className:"panel-row panel-row--block",children:e.children});const{variant:a,label:o,sub:n,onClick:i,required:l,error:c,align:d="horizontal",useFullWidth:u=!1,icon:p}=e,h=a==="button"?void 0:i;let m=null;const g=a==="toggle"?`panel-toggle-${t}`:void 0,v=c?`panel-error-${t}`:void 0,f=`panel-helper-${t}`;if(a==="toggle"){const b=e;m=r.jsx(Kd,{checked:b.checked,onChange:b.onChange,id:g})}else if(a==="segmented"){const b=e;m=r.jsx(Ha,{options:b.options,value:b.value,onChange:b.onChange,size:b.size??40,ariaLabel:o})}else if(a==="dropdown"){const b=e,y=b.dropdowns?.length?r.jsx("div",{className:`panel-row__dropdown-group${u?" panel-row__dropdown-group--full":""}`,children:b.dropdowns.map((C,k)=>r.jsx("div",{className:u?"panel-row__dropdown-item--full":void 0,children:r.jsx(Ca,{options:C.options,value:C.value,onChange:C.onChange,placeholder:C.placeholder,block:u,error:!!c,ariaDescribedBy:v,ariaLabel:C.ariaLabel??([o,C.placeholder].filter(Boolean).join(" ")||void 0)})},k))}):r.jsx(Ca,{options:b.options??[],value:b.value??"",onChange:b.onChange??Wf,block:u,error:!!c,ariaLabel:o,ariaDescribedBy:v});m=c?r.jsxs("div",{className:`panel-row__dropdown-error-wrap${u?" panel-row__dropdown-error-wrap--full":""}`,children:[y,r.jsx("span",{id:v,className:"caption-1 panel-row__error",role:"alert",children:c})]}):y}else if(a==="button"){const b=e;b.buttons?.length?m=r.jsx("div",{className:"panel-row__button-group",children:b.buttons.map((y,C)=>r.jsx(fe,{htmlType:"button",size:y.btnSize??40,variant:y.btnVariant??"default",disabled:y.disabled,onClick:y.onClick,children:y.label},C))}):m=r.jsx(fe,{htmlType:"button",size:b.btnSize??40,variant:b.btnVariant??"default",disabled:b.disabled,onClick:b.onClick,children:b.buttonLabel})}else if(a==="text"){const b=e;m=r.jsx("span",{className:`panel-row__text body-2${u?" panel-row__text--full":""}`,style:b.valueColor?{color:b.valueColor}:void 0,children:b.value})}else if(a==="input"){const b=e;m=r.jsxs("div",{className:`panel-row__input-wrap${u?" panel-row__input-wrap--full":""}`,children:[r.jsx(Co,{value:b.value,onChange:b.onChange??Wf,onKeyDown:b.onKeyDown,onEnter:b.onEnter,placeholder:b.placeholder,ghostText:b.ghostText,ghostHint:b.ghostHint,inputMode:b.inputMode,readOnly:b.readOnly,disabled:b.disabled,type:b.type,autoComplete:b.autoComplete,maxLength:b.maxLength,showCount:b.showCount,multiline:b.multiline,rows:b.rows,fullWidth:u,error:c,ariaLabel:o,required:l,ariaDescribedBy:b.helperText?f:void 0}),b.helperText&&r.jsx("div",{id:f,className:"panel-row__helper caption-1",children:b.helperText})]})}else a==="custom"&&(m=e.children);c&&a!=="input"&&a!=="dropdown"&&(m=r.jsxs("div",{className:`panel-row__dropdown-error-wrap${u?" panel-row__dropdown-error-wrap--full":""}`,children:[m,r.jsx("span",{id:v,className:"caption-1 panel-row__error",role:"alert",children:c})]}));const x=a==="input"||a==="dropdown"||(a==="text"||a==="custom")&&u,_=b=>{h&&b.target===b.currentTarget&&(b.key==="Enter"||b.key===" ")&&(b.preventDefault(),h())};return r.jsxs("div",{className:Ee("panel-row",d==="vertical"?"panel-row--vertical":"",x?"panel-row--label-fixed":"",a==="text"?"panel-row--text":"",h?"panel-row--clickable":""),onClick:h,onKeyDown:h?_:void 0,role:h?"button":void 0,tabIndex:h?0:void 0,children:[p!=null&&r.jsx("div",{className:"panel-row__icon",children:p}),r.jsxs("div",{className:"panel-row__left",children:[g?r.jsxs("label",{htmlFor:g,className:"panel-row__label body-3",children:[o,l&&r.jsx("span",{className:"required-mark",children:"*"})]}):r.jsxs("div",{className:"panel-row__label body-3",children:[o,l&&r.jsx("span",{className:"required-mark",children:"*"})]}),n&&r.jsx("div",{className:"panel-row__sub caption-1",children:n})]}),r.jsx("div",{className:"panel-row__right",children:m})]})}function Gf(e){const t=e.productName||e.brand,a=[e.brand,e.fitType].filter(o=>!!o&&o!==t);return[...new Set(a)].join(" \xB7 ")}function Uf({devices:e,onRelease:t,emptyLabel:a}){const{t:o}=_e.useTranslation();return r.jsx("div",{className:"panel-row panel-row--device",children:["\uC88C","\uC6B0"].map(n=>{const i=e[n],l=n==="\uC88C"?o("device.direction.left","\uC88C"):o("device.direction.right","\uC6B0");return r.jsxs("div",{className:"panel-row__device-column",children:[r.jsxs("div",{className:"panel-row__device-head",children:[r.jsx("span",{className:"panel-row__device-side body-2b",children:l}),i&&t&&r.jsx(fe,{htmlType:"button",size:32,type:"dot",icon:"x",ariaLabel:`${l} ${o("customers.device.unwear","\uCC29\uC6A9 \uD574\uC81C")}`,showTooltipInfo:o("customers.device.unwear","\uCC29\uC6A9 \uD574\uC81C"),onClick:()=>t(n)})]}),i?r.jsxs("div",{className:"panel-row__device-info",children:[r.jsxs("span",{className:"panel-row__device-kind",children:[i.device&&r.jsx(Dt,{size:"small",variant:w0(i.device),fill:"soft",label:oA(i.device,o)}),Gf(i)&&r.jsx("span",{className:"panel-row__device-detail body-3",children:Gf(i)})]}),r.jsx("span",{className:"panel-row__device-name body-2b",children:i.productName||i.brand}),du(i.wornYear,i.wornMonth,i.wornDay)&&r.jsx("span",{className:"panel-row__device-date caption-1",children:o("customers.device.wornSince",{date:du(i.wornYear,i.wornMonth,i.wornDay)})})]}):r.jsx("span",{className:"panel-row__device-empty body-3",children:a??o("customers.device.notRegistered","\uBBF8\uB4F1\uB85D")})]},n)})})}function Dn({title:e,titleLevel:t=2,icon:a,disc:o,actions:n,size:i="medium",minHeight:l,maxWidth:c,className:d,scrollable:u,scrollbarGutter:p="auto",compactRows:h=!1,useBorder:m=!0,useBg:g=!0,useRowBorder:v=!0,labelWidth:f,form:x=!1,loading:_,empty:b,children:y}){const C=Ee("panel",`panel--${i}`,x?"panel--form":"",l!==void 0?"panel--fill":"",m?"":"panel--no-border",g?"":"panel--no-bg",v?"":"panel--no-row-border",h?"panel--compact-rows":"",d),k={};l!==void 0&&(k.minHeight=l),c!==void 0&&(k.maxWidth=typeof c=="number"?`${c}px`:c),f!==void 0&&(k["--panel-label-width"]=typeof f=="number"?`${f}px`:f);const w=t?`h${t}`:"div";return r.jsxs("div",{className:C,style:Object.keys(k).length?k:void 0,children:[(!!e||o!=null)&&r.jsxs("div",{className:Ee("panel__header",o!=null?"panel__header--with-disc":""),children:[a&&r.jsx(et,{icon:a,label:typeof e=="string"?e:void 0,className:"panel__icon"}),r.jsxs("div",{className:"panel__title-group",children:[!!e&&r.jsx(w,{className:`panel__title ${o!=null?"body-3b":"h5b"}`,children:e}),o!=null&&r.jsx("p",{className:"panel__disc caption-1",children:o})]}),n&&r.jsx("div",{className:"panel__actions",children:n})]}),_?r.jsx(ao,{variant:"loading"}):b!=null&&s.Children.toArray(y).length===0?r.jsx(ao,{variant:"empty",children:b}):u?r.jsx("div",{className:Ee("panel__body--scroll",p==="stable"&&"panel__body--gutter-stable"),children:y}):y]})}function qf({cols:e=2,layout:t="grid",gap:a=1,collapseAt:o,className:n,style:i,children:l}){const c=s.useRef(null),[d,u]=s.useState();s.useEffect(()=>{const h=c.current;if(o===void 0||!h||(u(h.clientWidth),typeof ResizeObserver>"u"))return;const m=new ResizeObserver(([g])=>u(g.contentRect.width));return m.observe(h),()=>m.disconnect()},[o]);const p=o!==void 0&&d!==void 0&&d<=o;return r.jsx("div",{ref:c,className:Ee("panel-grid",t==="columns"&&"panel-grid--columns",n),style:{"--panel-grid-cols":p?1:e,"--panel-grid-gap":typeof a=="number"?`${a}px`:a,...i},children:l})}function rA(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 Yf(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"}]}rA(kt.t.bind(kt)),Yf(kt.t.bind(kt));var nA='.ihabdevteam-core-scope .noise-settings{border-radius:var(--radius-m);box-sizing:border-box;max-width:calc(100vw - 40px);padding:0 20px 20px}.ihabdevteam-core-scope .tooltip-content:has(.noise-settings__header) .tooltip-content__header{border-bottom:1px solid var(--color-darkWhite);height:60px;padding:0 20px}.ihabdevteam-core-scope .noise-settings__header{align-items:center;display:flex;justify-content:space-between;width:100%}.ihabdevteam-core-scope .noise-settings__header span{color:var(--color-darkGray);font-weight:600}.ihabdevteam-core-scope .noise-settings__slider-input.slider--horizontal{flex:1 1 auto}.ihabdevteam-core-scope .noise-settings__value{font-feature-settings:"tnum";color:var(--color-main);flex:0 0 auto;font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap;width:44px}';oe(nA);const Mu="none",iA=.5,sA=1.5,lA=.25;function $u({title:e,valueLabel:t,value:a,min:o,max:n,step:i,tickStep:l,size:c,onChange:d}){return r.jsxs(ao,{variant:"custom",label:e,useFullWidth:!0,children:[r.jsx(ru,{value:a,onChange:d,min:o,max:n,step:i,size:c,showBgTick:!0,tickStep:l,ariaLabel:e,className:"noise-settings__slider-input"}),r.jsx("div",{className:"noise-settings__value button-1",children:t})]})}function Ru({anchorRect:e,onClose:t}){const{t:a}=_e.useTranslation(),o=la("(max-width: 767px)")?40:24,n=Bn(),i=Br(n?.settings??Sr),l=n?.settings.type??"defaultNoise",c=n?.settings.enabled??!0,d=n?.playbackRate??1,u=n?.mainVolume??1,p=Math.round(u*100),h=s.useCallback(f=>{try{n?.setMainVolume(Math.max(0,Math.min(1,f/100)))}catch{}},[n]),m=s.useCallback(f=>{try{n?.setPlaybackRate(f)}catch{}},[n]),g=s.useCallback(f=>{const x=Math.min(kr,Math.max(0,Math.round(f*10)/10));try{n?.setSettings({noiseRatio:x})}catch{}},[n]),v=s.useCallback(f=>{try{f===Mu?n?.setSettings({enabled:!1}):n?.setSettings({type:f,enabled:!0})}catch{}},[n]);return r.jsx(xa,{anchorRect:e,offset:12,onClose:t,ariaLabel:a("training.trainingSettingsTitle","\uD6C8\uB828 \uC124\uC815"),isMobilePopup:!1,closeOnOutsideClick:!1,header:r.jsxs("div",{className:"noise-settings__header",children:[r.jsx("span",{children:a("training.trainingSettingsTitle","\uD6C8\uB828 \uC124\uC815")}),r.jsx(fe,{htmlType:"button",size:40,type:"dot",icon:"x",variant:"transparent-gray",useBorder:!1,ariaLabel:a("common.close","\uB2EB\uAE30"),onClick:t})]}),children:r.jsxs(Dn,{className:"noise-settings",useBorder:!1,labelWidth:72,children:[r.jsx($u,{title:a("training.playVolumeTitle","\uC804\uCCB4 \uC18C\uB9AC"),valueLabel:`${p}%`,value:p,min:0,max:100,step:10,size:o,onChange:h}),r.jsx($u,{title:a("training.playSpeedTitle","\uC7AC\uC0DD \uC18D\uB3C4"),valueLabel:`${d.toFixed(2)}x`,value:d,min:iA,max:sA,step:lA,size:o,onChange:m}),r.jsx(ao,{variant:"custom",label:a("training.noiseTypeTitle","\uC18C\uC74C \uC885\uB958"),useFullWidth:!0,children:r.jsx(Ha,{ariaLabel:a("training.noiseTypeTitle","\uC18C\uC74C \uC885\uB958"),size:40,shape:"rounded",options:[{key:Mu,label:a("training.noise.type.none","\uC5C6\uC74C")},...Yf(a).map(f=>({key:f.value,label:f.label}))],value:c?l:Mu,onChange:v})}),r.jsx($u,{title:a("training.noiseRatioTitle","\uC18C\uC74C \uBE44\uC728"),valueLabel:a("training.noiseRatioValue","{{ratio}}\uBC30",{ratio:i.toFixed(1)}),value:i,min:0,max:kr,step:Bu,size:o,onChange:g})]})})}var cA=".ihabdevteam-core-scope .training-page-bottom{box-sizing:border-box;width:100%}.ihabdevteam-core-scope .pp-bottom{align-items:center;background:var(--color-deepWhite);border-top:1px solid var(--color-whiteLine);box-sizing:border-box;display:flex;flex:0 0 auto;gap:var(--spacing-s);justify-content:space-between;padding:12px 18px calc(12px + env(safe-area-inset-bottom));width:100%;z-index:5}.ihabdevteam-core-scope .pp-bottom__left{align-items:center;display:flex;gap:var(--spacing-m)}.ihabdevteam-core-scope .pp-bottom__right{align-items:center;display:flex;gap:8px}.ihabdevteam-core-scope .pp-bottom__meters{border:1px solid var(--color-whiteLine);border-radius:14px;display:flex;flex-direction:column;gap:2px;justify-content:center;padding:8px 12px}.ihabdevteam-core-scope .pp-bottom__meter{align-items:center;display:flex;flex-direction:row;gap:var(--spacing-xs)}.ihabdevteam-core-scope .pp-bottom__meter-label{color:var(--color-gray);min-width:28px}.ihabdevteam-core-scope .pp-bottom__settings--desktop{display:none}.ihabdevteam-core-scope .pp-bottom__settings--mobile{display:flex}@media (min-width:768px){.ihabdevteam-core-scope .pp-bottom__settings--desktop{display:block}.ihabdevteam-core-scope .pp-bottom__settings--mobile{display:none}}.ihabdevteam-core-scope .pp-bottom__tooltip-trigger{display:inline-block}.ihabdevteam-core-scope .pp-bottom__meters--floating{display:flex;flex-direction:column;gap:var(--spacing-xs)}.ihabdevteam-core-scope .pp-bottom__meter-trigger{display:inline-flex;flex-shrink:0}";oe(cA);function Pu({useNoiseSettingBtn:e=!1,onSettings:t,onNext:a,onResult:o,stepIndex:n=0,stepCount:i=0,pageIndex:l=0,pageCount:c=1,resultOpen:d=!1}){const{t:u}=_e.useTranslation(),[p,h]=s.useState(!1),[m,g]=s.useState(null),[v,f]=s.useState(!1),x=s.useRef(null),_=s.useRef(null),b=Bn(),y=c>0,C=y&&l<c-1,k=!y||l>=c-1,w=n===Math.max(0,i);s.useEffect(()=>{e||(h(!1),g(null))},[e]);const A=s.useCallback(()=>{h(!1),g(null)},[]),B=s.useCallback(()=>{if(p){h(!1),g(null);return}const H=x?.current?.getBoundingClientRect();H&&g(H),t?.(),h(!0)},[p,t]),S=s.useCallback(()=>{if(p){h(!1),g(null);return}const H=_?.current?.getBoundingClientRect();H&&g(H),t?.(),h(!0)},[p,t]),D=la("(max-width: 767px)"),T=s.useRef(null),[I,L]=s.useState(null),V=s.useCallback(()=>{f(H=>{const X=!H;return L(X?T.current?.getBoundingClientRect()??null:null),X})},[]),N=s.useCallback(()=>{f(!1),L(null)},[]);s.useEffect(()=>{d&&(f(!1),L(null))},[d]);const j=r.jsxs(r.Fragment,{children:[r.jsxs("div",{className:"pp-bottom__meter",children:[r.jsx("span",{className:"pp-bottom__meter-label caption-1",children:u("training.meter.sentence","\uC7AC\uC0DD")}),r.jsx(Fi,{analyser:b?.mainAnalyser??null,orientation:"horizontal",length:112,label:"db",labelPos:"left",ariaLabel:u("training.meter.sentence","\uC7AC\uC0DD")})]}),r.jsxs("div",{className:"pp-bottom__meter",children:[r.jsx("span",{className:"pp-bottom__meter-label caption-1",children:u("training.meter.noise","\uC18C\uC74C")}),r.jsx(Fi,{analyser:b?.noiseAnalyser??null,orientation:"horizontal",length:112,label:"db",labelPos:"left",ariaLabel:u("training.meter.noise","\uC18C\uC74C")})]})]});return Vf(e&&p,()=>typeof document<"u"?document.querySelector(".noise-settings__header")?.closest(".tooltip-content")??null:null,()=>[x.current,_.current].map(H=>H?.querySelector("button")??null).find(H=>!!H&&H.getClientRects().length>0)??x.current?.querySelector("button")??null),r.jsxs("div",{className:"pp-bottom",children:[r.jsxs("div",{className:"pp-bottom__left",children:[e?r.jsxs(r.Fragment,{children:[r.jsx("div",{className:"pp-bottom__settings--desktop",children:r.jsx("div",{ref:x,className:"pp-bottom__tooltip-trigger","data-tooltip-ignore":!0,children:r.jsx(fe,{htmlType:"button",size:56,type:"bar",icon:"settings",onClick:B,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})})}),r.jsx("div",{className:"pp-bottom__settings--mobile",children:r.jsx("div",{ref:_,className:"pp-bottom__tooltip-trigger","data-tooltip-ignore":!0,children:r.jsx(fe,{htmlType:"button",size:56,type:"dot",shape:"pill",icon:"settings",onClick:S,className:p?"is-selected":void 0,"aria-expanded":p,"aria-haspopup":"dialog",ariaLabel:u("training.settings","\uC124\uC815")})})})]}):null,e&&r.jsx("div",{ref:T,className:"pp-bottom__meter-trigger","data-tooltip-ignore":!0,children:r.jsx(fe,{htmlType:"button",size:40,type:"dot",shape:"pill",icon:"audio-lines",onClick:V,selected:v,"aria-expanded":D?v:void 0,ariaLabel:u("training.meter.toggle","\uC624\uB514\uC624 \uBBF8\uD130 \uD45C\uC2DC")})}),e&&v&&!D&&r.jsx("div",{className:"pp-bottom__meters",children:j})]}),e&&v&&D&&I&&r.jsx(xa,{anchorRect:I,onClose:N,ariaLabel:u("training.meter.toggle","\uC624\uB514\uC624 \uBBF8\uD130 \uD45C\uC2DC"),children:r.jsx("div",{className:"pp-bottom__meters pp-bottom__meters--floating",children:j})}),r.jsxs("div",{className:"pp-bottom__right",children:[k&&r.jsx(fe,{htmlType:"button",size:56,type:"bar",icon:"check",onClick:typeof o=="function"?o:a,ariaLabel:u("training.viewResult","\uACB0\uACFC\uBCF4\uAE30"),label:u("training.viewResult","\uACB0\uACFC\uBCF4\uAE30"),variant:"main",disabled:!w}),C&&r.jsx(fe,{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:!w})]}),e&&p&&r.jsx(Ru,{anchorRect:m,onClose:A})]})}var dA=".ihabdevteam-core-scope .training-page-top{box-sizing:border-box;width:100%}.ihabdevteam-core-scope .pp-title.training-popup-title{align-items:center;background:var(--color-deepWhite);border-bottom:1px solid var(--color-whiteLine);box-sizing:border-box;display:flex;gap:var(--spacing-s);justify-content:space-between;padding:12px 16px;position:relative;width:100%;z-index:6}.ihabdevteam-core-scope .pp-title__left{align-items:center;display:flex;gap:var(--spacing-s);min-width:0}.ihabdevteam-core-scope .pp-title__text{display:flex;flex-direction:column;min-width:0}.ihabdevteam-core-scope .pp-title__depth{color:var(--color-gray)}.ihabdevteam-core-scope .pp-title__title{font-weight:700;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ihabdevteam-core-scope .pp-title__title--empty{color:var(--color-whiteLine)}.ihabdevteam-core-scope .pp-title__description{color:var(--color-gray);margin-top:1px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (max-width:767px){.ihabdevteam-core-scope .pp-title.training-popup-title{gap:var(--spacing-xs);padding:10px 12px}.ihabdevteam-core-scope .pp-title__depth{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ihabdevteam-core-scope .pp-title__left{flex:1;min-width:0;overflow:hidden}}";oe(dA);function zu({title:e,subtitle:t,desc:a,depth:o,icon:n,wrapperStyle:i,iconTooltip:l,pageIndex:c,pageCount:d,progressMax:u,progressIndex:p,onBack:h,onClose:m}){const{t:g}=_e.useTranslation(),v=la("(max-width: 767px)"),f=Number.isInteger(p)?p:c||0,x=Number.isInteger(u)?u:d||0,_=h||m,b=Array.isArray(o)?v?o[o.length-1]:o.join(" / "):o,y=typeof e=="string"?e.trim():e,C=typeof t=="string"?t.trim():t,k=!!(y||C),w=k?y||C:g("common.emptyTrainingName","\uD6C8\uB828 \uC774\uB984\uC774 \uBE44\uC5B4 \uC788\uC2B5\uB2C8\uB2E4."),A=b||(y?t:void 0),B=v&&typeof A=="string"&&(A.includes(" \xB7 ")||A.includes(" / "))?A.split(/\s[·/]\s/).pop():A,S=s.useMemo(()=>{const D=i&&typeof i=="object"?{...i}:{};return!("width"in D)&&!("height"in D)&&(D.width="40px",D.height="40px"),D},[i]);return r.jsxs("header",{className:"pp-title training-popup-title",children:[r.jsxs("div",{className:"pp-title__left",children:[_?r.jsx(fe,{htmlType:"button",size:48,type:"dot",icon:"chevron-left",ariaLabel:g("common.back","\uB4A4\uB85C"),onClick:_,useBorder:!1,iconSize:"large",iconColor:"--color-black",variant:"transparent-gray"}):null,r.jsx("div",{children:n?r.jsx(Hg,{icon:n,label:e,tooltip:l,wrapperStyle:S}):null}),r.jsxs("div",{className:"pp-title__text",children:[B?r.jsx("span",{className:"pp-title__depth caption-1",children:B}):null,r.jsx("span",{className:`pp-title__title h2${k?"":" pp-title__title--empty"}`,children:w}),a?r.jsx("span",{className:"pp-title__description caption-1",children:a}):null]})]}),r.jsx(lu,{max:Math.max(0,x??0),index:Math.max(0,f??0)})]})}function Kf(){typeof window<"u"&&window.dispatchEvent(new CustomEvent("speechear.popup.close"))}function Zf(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 Xf=(e,t)=>{if(!t)return t;const a=typeof kt?.t=="function"?kt.t(e,{defaultValue:t}):void 0;return typeof a=="string"&&a?a:t};function Iu(e,t,a){const o=e,n=o?.title||o?.name||(Array.isArray(t)?t[t.length-1]:void 0)||a||"\uD6C8\uB828",i=ni().find(c=>c.key===(o?.category_0||o?.category_main_code)),l=i?.subs?.find(c=>c.key===(o?.category_1||o?.category_sub_code));return{title:n,label:o?.title||n,depth:t,icon:i?.icon,wrapperStyle:i?.color?{"--t-item-fg":i.color}:void 0,iconTooltip:[i?Xf(`topic.${i.key}`,i.label):void 0,l?Xf(`topic.sub.${l.key}`,l.label):void 0].filter(Boolean).join(" / ")||void 0}}function ss(e){return e&&typeof e=="object"&&typeof e.__ts=="number"?e.__ts:0}function Ou(e,t,a){if(!e||typeof e!="object"||Array.isArray(e))return e;const o=e,n=typeof a=="number"&&a>0?a:Date.now();return{...o,...o.shownAt===void 0&&t?{shownAt:t}:{},...o.answeredAt===void 0?{answeredAt:new Date(n).toISOString()}:{}}}function Jf(e){const t=e;return Array.isArray(t?.items)?t.items:Array.isArray(e)?e:e?[e]:[]}function Qf({idPrefix:e,trainingData:t,depth:a,fallbackTitle:o="\uD6C8\uB828",pages:n=[],emptyMessage:i,buildResults:l,metaPatch:c}){const d=Iu(t,a,o),u=typeof c=="function"?c(d)||{}:c||{},p=t?.id||t?.title||n.length;return{id:`${e}:${p}`,meta:{...d,...u},pages:n,emptyMessage:i,buildResults:l}}function e1(e){if(typeof e=="string")return e;if(e&&typeof e=="object"){const t=e;return t.context||t.sentence||t.question||""||""}return""}function t1(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 a1(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 Fu(e,t){if(!(!e||typeof e!="object"))return e[`step-${t}`]}function o1(e,t,a,o){return Fu(e,t*a+o)}function r1({payload:e,selected:t,choices:a=[],correctAnswers:o=[]}){if(e&&typeof e=="object"){const n=e;if(Array.isArray(n.selectedValues))return o.every(i=>n.selectedValues.includes(i))&&n.selectedValues.every(i=>o.includes(i));if(typeof n.correct=="boolean")return n.correct}if(o.length){if(typeof t=="number"&&Array.isArray(a)&&a.length)return o.some(n=>String(n)===String(a[t]));if(typeof t<"u")return o.some(n=>String(n)===String(t))}}function n1(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 i1=s.createContext(null);function uA(){const e=s.useContext(i1);if(!e)throw new Error("useTrainingPagePopupContext must be used inside TrainingPagePopup");return e}function pA({index:e,stepIndex:t,isLast:a=!1,title:o,choices:n=[],onDone:i,onChange:l}){const{t:c}=_e.useTranslation(),d=typeof e=="number"?e:-1,u=typeof t!="number"?"disabled":d<t?"done":d===t?"active":"disabled",[p,h]=s.useState(()=>n.map(()=>null)),m=JSON.stringify(n),g=n.length;s.useEffect(()=>{h(Array.from({length:g},()=>null))},[m]);const v=s.useRef(void 0);s.useEffect(()=>{const b=v.current;typeof b=="number"&&typeof t=="number"&&typeof e=="number"&&b>=e&&t<e&&h(Array.from({length:g},()=>null)),v.current=t},[t,e,g]);const f=s.useMemo(()=>p.filter(b=>b!==null).length+1,[p]),x=s.useCallback(b=>{if(u!=="active")return;const y=p;let C;if(y[b]!=null){const w=y[b];C=y.map(A=>A!==null&&A>=w?null:A)}else C=[...y],C[b]=f;h(C);const k={selectedOrder:C,words:n,__ts:Date.now()};try{typeof l=="function"&&l(k)}catch{}if(y[b]==null&&C.length>0&&C.every(w=>w!==null))try{typeof i=="function"&&i(k)}catch{}},[u,p,f,l,i,n]),_=o??c("training.selectInOrder","\uB4E4\uC740 \uC21C\uC11C\uB300\uB85C \uCE74\uB4DC\uB97C \uC120\uD0DD\uD558\uC138\uC694.");return r.jsx(_o,{index:e,stepIndex:t,isLast:a,title:_,onDone:i,children:r.jsx("div",{className:"training-step__cards",children:n.map((b,y)=>r.jsx(Gi,{item:{word:b},disabled:u==="disabled",selectable:!0,selected:p[y]!==null,orderRank:p[y],onSelect:()=>x(y),flipDelay:y*120,hideLabel:!1,hideAudio:!0},`${b}-${y}`))})})}function Nn(e){return null}Nn.__isTrainingPage=!0;function Dr(e,t){const a=uA();return{ctx:a,index:e,stepIndex:a.currentStepIndex,isLast:typeof e=="number"&&typeof t=="number"?e===t-1:!1,onDone:o=>a.handleStepDone(o,e),onChange:o=>a.handleStepChange(o,e)}}function Hu({_stepIndex:e,_totalSteps:t,...a}){const{index:o,stepIndex:n,isLast:i,onDone:l}=Dr(e,t);return r.jsx(ns,{...a,index:o,stepIndex:n,isLast:i,onDone:l})}function Vu({_stepIndex:e,_totalSteps:t,...a}){const{index:o,stepIndex:n,isLast:i,onDone:l,onChange:c}=Dr(e,t);return r.jsx(os,{...a,index:o,stepIndex:n,isLast:i,onDone:l,onChange:c})}function Wu({_stepIndex:e,_totalSteps:t,...a}){const{index:o,stepIndex:n,isLast:i,onDone:l,onChange:c}=Dr(e,t);return r.jsx(rs,{...a,index:o,stepIndex:n,isLast:i,onDone:l,onChange:c})}function Gu({_stepIndex:e,_totalSteps:t,...a}){const{index:o,stepIndex:n,isLast:i,onDone:l,onChange:c}=Dr(e,t);return r.jsx(is,{...a,index:o,stepIndex:n,isLast:i,onDone:l,onChange:c})}function Uu({_stepIndex:e,_totalSteps:t,...a}){const{index:o,stepIndex:n,isLast:i,onDone:l,onChange:c}=Dr(e,t);return r.jsx(Lu,{...a,index:o,stepIndex:n,isLast:i,onDone:l,onChange:c})}function hA({_stepIndex:e,_totalSteps:t,...a}){const{index:o,stepIndex:n,isLast:i,onDone:l,onChange:c}=Dr(e,t);return r.jsx(pA,{...a,index:o,stepIndex:n,isLast:i,onDone:l,onChange:c})}var mA=`.ihabdevteam-core-scope .trp-result{display:flex;flex:1;flex-direction:column;min-height:0;padding:0;position:relative}.ihabdevteam-core-scope .popup--training-result .popup-header{padding:var(--spacing-l) var(--spacing-l) 0;position:absolute;right:0;top:0;z-index:1}.ihabdevteam-core-scope .trp-result__head{padding:12px 72px 20px;position:relative;text-align:center}.ihabdevteam-core-scope .trp-result__eyebrow{align-items:center;color:var(--color-main);display:inline-flex;gap:var(--spacing-xs);letter-spacing:.22em;margin:0 0 14px;text-transform:uppercase}.ihabdevteam-core-scope .trp-result__eyebrow:after,.ihabdevteam-core-scope .trp-result__eyebrow:before{background:currentColor;content:"";height:1px;opacity:.35;width:24px}.ihabdevteam-core-scope .trp-result__title{color:var(--color-black);font-size:28px;margin:0}.ihabdevteam-core-scope .trp-result__subtitle{color:var(--color-gray);margin:10px 0 0}.ihabdevteam-core-scope .trp-score{align-items:center;display:flex;flex-direction:column;gap:var(--spacing-m);margin:36px auto 8px}.ihabdevteam-core-scope .trp-score__figure{font-feature-settings:"tnum";align-items:baseline;display:flex;font-variant-numeric:tabular-nums;gap:var(--spacing-s)}.ihabdevteam-core-scope .trp-score__sep,.ihabdevteam-core-scope .trp-score__total{align-self:flex-end;color:var(--color-lightGray);font-size:44px;letter-spacing:-1px;padding-bottom:18px}.ihabdevteam-core-scope .trp-score__big{background:var(--color-main);-webkit-background-clip:text;background-clip:text;color:transparent;font-size:112px;letter-spacing:-5px;line-height:.92}.ihabdevteam-core-scope .trp-result__body{padding:16px 0 0}.ihabdevteam-core-scope .result-table{width:100%}.ihabdevteam-core-scope .result-table__head{grid-gap:var(--spacing-m);border-bottom:1px solid var(--color-whiteLine);color:var(--color-lightGray);display:grid;gap:var(--spacing-m);grid-template-columns:1fr 100px;letter-spacing:.16em;padding:12px 4px 14px;text-transform:uppercase}.ihabdevteam-core-scope .result-table--answer .result-table__head,.ihabdevteam-core-scope .result-table--answer .result-table__row{grid-template-columns:1fr 200px 100px}.ihabdevteam-core-scope .result-table__head .col-right{text-align:center}.ihabdevteam-core-scope .result-table__row{grid-gap:var(--spacing-m);align-items:center;border-bottom:1px solid var(--color-whiteLine);display:grid;gap:var(--spacing-m);grid-template-columns:1fr 100px;padding:22px 4px;transition:background .18s ease}.ihabdevteam-core-scope .result-table__row:hover{background:var(--color-deepWhite)}.ihabdevteam-core-scope .result-table__row:last-child{border-bottom:0}.ihabdevteam-core-scope .trp-row__problem{align-items:baseline;display:flex;gap:10px}.ihabdevteam-core-scope .trp-row__no{font-feature-settings:"tnum";color:var(--color-lightGray);flex-shrink:0;font-variant-numeric:tabular-nums;width:32px}.ihabdevteam-core-scope .trp-row__q{color:var(--color-black);letter-spacing:-.1px}.ihabdevteam-core-scope .trp-row__judge{align-self:center;display:flex;justify-content:center}.ihabdevteam-core-scope .trp-row__answers{align-self:center;display:flex;flex-direction:column;gap:var(--spacing-xs)}.ihabdevteam-core-scope .trp-row__answer-line{align-items:baseline;display:flex;gap:10px}.ihabdevteam-core-scope .trp-row__answer-label{flex-shrink:0;width:32px}.ihabdevteam-core-scope .trp-row__answer-label.answer-correct{color:var(--color-lightGray)}.ihabdevteam-core-scope .trp-row__answer-label.answer-selected.is-correct{color:var(--color-main)}.ihabdevteam-core-scope .trp-row__answer-label.answer-selected.is-wrong{color:var(--color-error)}.ihabdevteam-core-scope .trp-row__answer-value{color:var(--color-black)}.ihabdevteam-core-scope .trp-row__answer-value.is-correct{color:var(--color-main)}.ihabdevteam-core-scope .trp-row__answer-value.is-wrong{color:var(--color-error)}.ihabdevteam-core-scope .popup-footer.trp-result__foot{align-items:center;background:var(--color-white);display:flex;flex-shrink:0;gap:var(--spacing-s);justify-content:center;padding:var(--spacing-l)}.ihabdevteam-core-scope .trp-actions{display:flex;gap:var(--spacing-s)}.ihabdevteam-core-scope .popup-footer.trp-result__foot{flex-wrap:wrap}.ihabdevteam-core-scope .trp-actions__reason{flex-basis:100%;margin:0;text-align:center}@keyframes result-rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.ihabdevteam-core-scope .trp-result.is-on{animation:result-rise .5s cubic-bezier(.22,.9,.3,1) both}.ihabdevteam-core-scope .trp-result.is-on .trp-score__big{animation:result-rise .7s cubic-bezier(.22,.9,.3,1) .1s both}.ihabdevteam-core-scope .trp-result.is-on .result-table__row{animation:result-rise .5s cubic-bezier(.22,.9,.3,1) both}.ihabdevteam-core-scope .trp-result.is-on .result-table__row:nth-child(2){animation-delay:.18s}.ihabdevteam-core-scope .trp-result.is-on .result-table__row:nth-child(3){animation-delay:.24s}.ihabdevteam-core-scope .trp-result.is-on .result-table__row:nth-child(4){animation-delay:.3s}.ihabdevteam-core-scope .trp-result.is-on .result-table__row:nth-child(5){animation-delay:.36s}@media (max-width:767px){.ihabdevteam-core-scope .trp-result{padding:0}.ihabdevteam-core-scope .trp-result__head{padding:0 20px 20px}.ihabdevteam-core-scope .trp-result__body{padding:0}.ihabdevteam-core-scope .popup-footer.trp-result__foot{border-top:1px solid var(--color-whiteLine);gap:var(--spacing-xs);padding:var(--spacing-l)}.ihabdevteam-core-scope .trp-actions{display:flex;gap:var(--spacing-xs);width:100%}.ihabdevteam-core-scope .trp-actions>*{flex:1;min-width:0}.ihabdevteam-core-scope .trp-score{gap:10px;margin:20px auto 4px}.ihabdevteam-core-scope .trp-score__big{font-size:72px;letter-spacing:-3px}.ihabdevteam-core-scope .trp-score__sep,.ihabdevteam-core-scope .trp-score__total{font-size:28px;padding-bottom:10px}.ihabdevteam-core-scope .result-table__head{display:none}.ihabdevteam-core-scope .result-table__head,.ihabdevteam-core-scope .result-table__row{gap:var(--spacing-xs);grid-template-columns:1fr auto}.ihabdevteam-core-scope .result-table__row{padding:14px 4px}.ihabdevteam-core-scope .trp-row__judge{justify-content:flex-start}.ihabdevteam-core-scope .result-table--answer .result-table__row{align-items:start;gap:6px;grid-template-columns:1fr;grid-template-rows:auto auto auto;padding:14px 4px}.ihabdevteam-core-scope .result-table--answer .trp-row__judge{grid-row:1;justify-content:flex-start}.ihabdevteam-core-scope .result-table--answer .trp-row__problem{grid-row:2}.ihabdevteam-core-scope .result-table--answer .trp-row__answers{grid-row:3}
1060
+ `).map((l,c,d)=>r.jsxs(s.Fragment,{children:[l,c<d.length-1&&r.jsx("br",{})]},c))})}),r.jsxs("div",{className:"site-footer__links",children:[r.jsxs("div",{className:"site-footer__column",children:[r.jsx("div",{className:"site-footer__column-title footer-title",children:i("footer.site.title","\uC0AC\uC774\uD2B8")}),r.jsxs("ul",{children:[r.jsx("li",{children:r.jsx("a",{className:"footer-link",href:"https://www.ihab.co.kr/",target:"_blank",rel:"noopener noreferrer",children:"IHAB"})}),r.jsx("li",{children:r.jsx("a",{className:"footer-link",href:"https://speechear.ihab.co.kr/",target:"_blank",rel:"noopener noreferrer",children:i("footer.site.malgwi","\uB9D0\uADC0")})}),r.jsx("li",{children:r.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")})}),r.jsx("li",{children:r.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")})}),r.jsx("li",{children:r.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")})})]})]}),r.jsxs("div",{className:"site-footer__column",children:[r.jsx("div",{className:"site-footer__column-title footer-title",children:i("footer.sns.title","SNS")}),r.jsxs("ul",{children:[r.jsx("li",{children:r.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")})}),r.jsx("li",{children:r.jsx("a",{className:"footer-link",href:"https://www.instagram.com/ihab.official.yt/",target:"_blank",rel:"noopener noreferrer",children:"Instagram"})}),r.jsx("li",{children:r.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"})})]})]}),r.jsxs("div",{className:"site-footer__column",children:[r.jsx("div",{className:"site-footer__column-title footer-title",children:i("footer.policy.title","\uC815\uCC45")}),r.jsxs("ul",{children:[r.jsx("li",{children:r.jsx("a",{className:"footer-link",href:"#",onClick:l=>{e&&(l.preventDefault(),e())},children:i("footer.policy.terms","\uC774\uC6A9\uC57D\uAD00")})}),r.jsx("li",{children:r.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")})})]})]})]})]}),r.jsx("hr",{className:"site-footer__rule"}),r.jsxs("div",{className:"site-footer__bottom",children:[r.jsx("div",{className:"site-footer__brand",children:r.jsx("img",{src:Id,alt:"IHAB",className:"site-footer__logo"})}),r.jsxs("div",{className:"site-footer__meta",children:[r.jsxs("div",{children:[r.jsx("span",{className:"footer-title",children:i("footer.ceo","\uB300\uD45C")}),r.jsx("span",{className:"footer-meta caption-1",children:i("footer.ceoName","\uD55C\uC9C0\uD61C")})]}),r.jsxs("div",{children:[r.jsx("span",{className:"footer-title",children:i("footer.address","\uC8FC\uC18C")}),r.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")})]}),r.jsxs("div",{children:[r.jsx("span",{className:"footer-title",children:i("footer.support","\uACE0\uAC1D\uC13C\uD130")}),r.jsxs("span",{className:"footer-meta caption-1",children:[o," \xA0 ",n]})]})]})]}),r.jsx("div",{className:"site-footer__copyright footer-copyright caption-1",children:"\xA9 IHAB, Inc. All rights reserved."})]})})}var fB='.ihabdevteam-core-scope .landing-header{background:var(--landing-header-bg,var(--color-deepWhite));border-bottom:1px solid rgba(15,18,60,.05);border-bottom:1px solid var(--landing-header-border,rgba(15,18,60,.05));position:sticky;top:0;transform:translateZ(0);will-change:transform;z-index:500;z-index:var(--z-sticky,500)}.ihabdevteam-core-scope .landing-header__inner{align-items:center;display:flex;height:72px;height:var(--landing-header-height,72px);justify-content:space-between;position:relative}.ihabdevteam-core-scope .landing-header__brand{align-items:center;display:flex;flex:0 0 auto;margin-right:auto;text-decoration:none}.ihabdevteam-core-scope .landing-header__logo{display:block;height:40px;height:var(--landing-header-logo-height,40px);max-width:none;transform-origin:left center;transition:transform .3s cubic-bezier(.2,.9,.2,1.2),filter .3s;width:auto}.ihabdevteam-core-scope .landing-header__brand:hover .landing-header__logo{filter:brightness(1.08);transform:scale(1.05)}.ihabdevteam-core-scope .landing-header__links{align-items:center;color:var(--landing-header-link-color,var(--color-deepGray));display:flex;font-size:15px;font-weight:500;gap:36px;left:50%;position:absolute;transform:translateX(-50%)}.ihabdevteam-core-scope .landing-header__links a{color:inherit;padding:6px 0;position:relative;text-decoration:none;transition:color .2s}.ihabdevteam-core-scope .landing-header__links a:hover{color:var(--landing-header-link-hover,var(--color-main))}.ihabdevteam-core-scope .landing-header__links a:after{background:linear-gradient(90deg,var(--color-main),var(--color-sub));border-radius:1px;bottom:0;content:"";height:2px;left:0;position:absolute;right:100%;transition:right .35s cubic-bezier(.2,.7,.2,1)}.ihabdevteam-core-scope .landing-header__links a:hover:after{right:0}.ihabdevteam-core-scope .landing-header__actions{align-items:center;display:flex;gap:8px;gap:var(--spacing-xs,8px)}.ihabdevteam-core-scope .landing-header__toggle{align-items:center;background:none;border:0;color:var(--landing-header-link-color,var(--color-deepGray));cursor:pointer;display:none;height:44px;justify-content:center;margin-right:-10px;width:44px}.ihabdevteam-core-scope .landing-header__burger{display:block;height:14px;position:relative;width:22px}.ihabdevteam-core-scope .landing-header__burger>span{background:currentColor;border-radius:1px;height:2px;inset-inline:0;position:absolute;transition:transform .2s cubic-bezier(.2,.7,.2,1),opacity .2s cubic-bezier(.2,.7,.2,1)}.ihabdevteam-core-scope .landing-header__burger>span:first-child{top:0}.ihabdevteam-core-scope .landing-header__burger>span:nth-child(2){top:6px}.ihabdevteam-core-scope .landing-header__burger>span:nth-child(3){top:12px}.ihabdevteam-core-scope .landing-header__toggle--open .landing-header__burger>span:first-child{transform:translateY(6px) rotate(45deg)}.ihabdevteam-core-scope .landing-header__toggle--open .landing-header__burger>span:nth-child(2){opacity:0}.ihabdevteam-core-scope .landing-header__toggle--open .landing-header__burger>span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}.ihabdevteam-core-scope .landing-header__drawer{background:var(--landing-header-bg,var(--color-deepWhite));border-top:1px solid rgba(15,18,60,.05)}.ihabdevteam-core-scope .landing-header__drawer-item{display:block}.ihabdevteam-core-scope .landing-header__drawer-item a{align-items:center;color:var(--landing-header-link-color,var(--color-deepGray));display:flex;font-size:15px;font-weight:500;min-height:48px;text-decoration:none;transition:color .2s}.ihabdevteam-core-scope .landing-header__drawer-item a:hover,.ihabdevteam-core-scope .landing-header__drawer-item a[aria-current=page]{color:var(--landing-header-link-hover,var(--color-main))}@media (max-width:960px){.ihabdevteam-core-scope .landing-header__links{display:none}.ihabdevteam-core-scope .landing-header__toggle{display:flex}}@media (min-width:961px){.ihabdevteam-core-scope .landing-header__drawer{display:none}}';oe(fB);function Tf({logo:e,logoAlt:t="",logoHref:a,links:o=[],actions:n,className:i,containerClassName:l,renderLink:c,menuLabel:d}){const{t:u}=_e.useTranslation(),p=d??{open:u("header.menuOpen","\uBA54\uB274 \uC5F4\uAE30"),close:u("header.menuClose","\uBA54\uB274 \uB2EB\uAE30")},[h,m]=s.useState(!1),g=s.useId(),v=s.useRef(null);s.useEffect(()=>{if(!h)return;const _=Po(()=>{const C=document.getElementById(g);C&&C.contains(document.activeElement)&&v.current?.focus(),m(!1)}),b=typeof window<"u"&&window.matchMedia?window.matchMedia("(min-width: 961px)"):null,y=C=>{C.matches&&m(!1)};return b&&(b.matches&&m(!1),b.addEventListener?.("change",y)),()=>{_(),b?.removeEventListener?.("change",y)}},[h,g]);const f=l?`${l} landing-header__inner`:"landing-header__inner",x=(_,b)=>c?c(_,{onClick:b}):r.jsx("a",{href:_.href,onClick:b,"aria-current":_.current?"page":void 0,children:_.label});return r.jsxs("header",{className:i?`landing-header ${i}`:"landing-header",children:[r.jsxs("div",{className:f,children:[e!=null&&(()=>{const _=typeof e=="string"?r.jsx("img",{src:e,alt:t,className:"landing-header__logo"}):e;return a?r.jsx("a",{href:a,className:"landing-header__brand",children:_}):r.jsx("div",{className:"landing-header__brand",children:_})})(),o.length>0&&r.jsx("nav",{className:"landing-header__links",children:o.map((_,b)=>r.jsx("span",{children:x(_)},`${b}:${_.href}`))}),r.jsxs("div",{className:"landing-header__actions",children:[n,o.length>0&&r.jsx("button",{ref:v,type:"button",onClick:()=>m(_=>!_),"aria-expanded":h,"aria-controls":g,"aria-label":h?p.close:p.open,className:h?"landing-header__toggle landing-header__toggle--open":"landing-header__toggle",children:r.jsxs("span",{className:"landing-header__burger",children:[r.jsx("span",{}),r.jsx("span",{}),r.jsx("span",{})]})})]})]}),o.length>0&&r.jsx("nav",{id:g,hidden:!h,className:"landing-header__drawer",children:r.jsx("div",{className:l??void 0,children:o.map((_,b)=>r.jsx("span",{className:"landing-header__drawer-item",children:x(_,()=>m(!1))},`${b}:${_.href}`))})})]})}var vB=".ihabdevteam-core-scope .bottom-sticky{animation:bottom-sticky-in .4s cubic-bezier(.2,.9,.2,1) both;bottom:24px;bottom:var(--bottom-sticky-offset,24px);left:50%;max-width:680px;max-width:var(--bottom-sticky-max-width,680px);position:fixed;transform:translateX(-50%);width:calc(100% - 48px);z-index:500;z-index:var(--z-sticky,500)}@keyframes bottom-sticky-in{0%{opacity:0;transform:translateX(-50%) translateY(16px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}.ihabdevteam-core-scope .bottom-sticky__inner{align-items:center;background:var(--bottom-sticky-bg,var(--color-pureWhite));border-radius:20px;border-radius:var(--radius-m,20px);box-shadow:0 8px 40px rgba(15,18,60,.18),0 2px 8px rgba(15,18,60,.06);display:flex;gap:16px;gap:var(--spacing-m,16px);justify-content:space-between;padding:12px 12px 12px 24px;transition:box-shadow .2s,transform .2s}.ihabdevteam-core-scope .bottom-sticky__inner--clickable{cursor:pointer}.ihabdevteam-core-scope .bottom-sticky__inner--clickable:hover{border:1px solid var(--color-main);box-shadow:0 16px 56px color-mix(in srgb,var(--color-main) 30%,transparent),0 4px 12px color-mix(in srgb,var(--color-main) 15%,transparent);transform:translateY(-4px)}.ihabdevteam-core-scope .bottom-sticky__content{align-items:center;display:flex;flex:1;gap:12px;gap:var(--spacing-s,12px);justify-content:center}.ihabdevteam-core-scope .bottom-sticky__tagline{align-items:center;color:var(--color-black);display:flex;gap:0;margin:0;white-space:nowrap}.ihabdevteam-core-scope .bottom-sticky__tagline-highlight{background:linear-gradient(90deg,var(--color-main),var(--color-sub),var(--color-infoLink));-webkit-background-clip:text;background-clip:text;color:transparent;display:inline}.ihabdevteam-core-scope .bottom-sticky__tagline-part{align-items:center;display:flex;white-space:nowrap}.ihabdevteam-core-scope .bottom-sticky__tagline-logo{display:block;height:32px;width:auto}@media (max-width:600px){.ihabdevteam-core-scope .bottom-sticky{bottom:16px;bottom:var(--bottom-sticky-offset,16px);width:calc(100% - 32px)}.ihabdevteam-core-scope .bottom-sticky__inner{align-items:stretch;flex-direction:column;gap:12px;gap:var(--spacing-s,12px);padding:16px;padding:var(--spacing-m,16px)}.ihabdevteam-core-scope .bottom-sticky__content{flex:none;gap:6px;justify-content:center}.ihabdevteam-core-scope .bottom-sticky__tagline{flex-wrap:wrap;justify-content:center;text-align:center;white-space:normal}.ihabdevteam-core-scope .bottom-sticky__tagline-logo{height:26px}}";oe(vB);function jf({children:e,action:t,onClick:a,className:o}){const n=a?"bottom-sticky__inner bottom-sticky__inner--clickable":"bottom-sticky__inner";return r.jsx("div",{className:o?`bottom-sticky ${o}`:"bottom-sticky",children:r.jsxs("div",{className:n,onClick:a,...A0(a),children:[r.jsx("div",{className:"bottom-sticky__content",children:e}),t]})})}const Uo=9,Lf=e=>Math.round(Math.min(Uo,Math.max(0,e))/Uo*100),Mf=e=>e/100*Uo,kr=2,Bu=.1,xB=e=>Math.min(kr,Math.max(0,e)),CB=.1,_B=e=>Math.round(e*1e6)/1e6;function Br(e){const{noiseRatio:t}=e;if(typeof t=="number"&&Number.isFinite(t))return xB(t);const a=Math.min(Uo,Math.max(0,Number(e.level)||0))/Uo,o=Number(e.mainVolume);return o>0?a>0?_B(Math.min(kr,Math.max(CB,a/o))):0:1}const $f=e=>Math.min(1,Math.max(0,Number(e.mainVolume)||0));function Au(e){return $f(e)}function Ji(e){return $f(e)*Br(e)}function Qi(e,t=Rn()){const a=Number.isFinite(t)&&t>0?t:1;return Math.min(1,Ji(e)/a)}function Ar(e,t){const a={...e,...t??{}};return t&&"level"in t&&typeof t.noiseRatio!="number"&&(a.noiseRatio=Br({level:a.level,mainVolume:a.mainVolume})),a}const Sr={enabled:!0,type:"defaultNoise",level:4.5,noiseRatio:1,speed:1,mainVolume:1,mainSpeed:1},es=s.createContext(null);function Bn(){return s.useContext(es)}const Su=e=>`${Ls()}/${e}`,Rf=e=>Array.from({length:10},(t,a)=>Su(`${e}-${String(a+1).padStart(2,"0")}.mp3`)),ts={get defaultNoise(){return Su("noise1.mp3")},get street(){return Rf("noise2")},get restaurant(){return Rf("noise3")},get buzz(){return Su("noise4.mp3")}};function yB(e){const t=Math.floor(Math.random()*10);switch(e){case"defaultNoise":return ts.defaultNoise;case"street":return ts.street[t];case"restaurant":return ts.restaurant[t];case"buzz":return ts.buzz;default:return null}}function wB({noisePlayer:e,audioRef:t,playbackStateRef:a}){const o=s.useRef(e?.registerAnalyser);o.current=e?.registerAnalyser;const n=s.useRef(null),[i,l]=s.useState(null),c=s.useRef(null),d=s.useRef(null),u=s.useRef(null),p=s.useRef(null),h=s.useRef(0),m=s.useRef(null),g=s.useCallback(()=>{p.current!==null&&(cancelAnimationFrame(p.current),p.current=null),m.current!==null&&(clearTimeout(m.current),m.current=null)},[]),v=s.useCallback((y,C=250)=>{const k=n.current;if(!k)return;const w=d.current;if(w){d.current=null;try{k.pause()}catch{}k.src=w,k.load()}if(!k.src)return;h.current+=1,g();try{Ir(),Xo(k).then(D=>{if(n.current===k)try{o.current?.("noise",D)}catch{}})}catch{}const A=k.paused?0:Jo(k);k.paused&&La(k,0),k.play().catch(()=>{});const B=performance.now(),S=()=>{const D=Math.min(1,(performance.now()-B)/C);try{La(k,A+(y-A)*D)}catch{}D<1?p.current=requestAnimationFrame(S):p.current=null};p.current=requestAnimationFrame(S)},[g]),f=s.useCallback((y=250,C)=>{const k=n.current;if(!k||k.paused){C?.();return}const w=++h.current;g();const A=performance.now(),B=Jo(k),S=()=>{const D=Math.min(1,(performance.now()-A)/y);try{La(k,B*(1-D))}catch{}if(D<1)p.current=requestAnimationFrame(S);else{p.current=null,m.current!==null&&(clearTimeout(m.current),m.current=null);try{k.pause()}catch{}C?.()}};p.current=requestAnimationFrame(S),m.current=setTimeout(()=>{if(m.current=null,h.current===w){p.current!==null&&(cancelAnimationFrame(p.current),p.current=null);try{k.paused||(La(k,0),k.pause(),C?.())}catch{}}},y+150)},[g]);s.useEffect(()=>{const y=document.createElement("audio");return y.loop=!0,y.crossOrigin="anonymous",n.current=y,()=>{g();try{y.pause(),y.src=""}catch{}n.current=null,c.current=null,d.current=null}},[g]);const x=e?Qi(e.settings):0,_=!!e?.settings.enabled&&x>0;s.useEffect(()=>{if(!_)return;let y=0;const C=setInterval(()=>{const k=n.current;if(!k||k.paused){y=0;return}const w=t.current;if(w&&!w.paused&&!w.ended||a.current==="playing"){y=0;return}y+=1,y>=2&&(y=0,f())},400);return()=>clearInterval(C)},[f,_,t,a]),s.useEffect(()=>{const y=()=>{const C=n.current;if(document.hidden){if(C&&!C.paused){g();try{C.pause()}catch{}}return}if(!C||!C.paused)return;const k=t.current,w=!!k&&!k.paused&&!k.ended||a.current==="playing",A=u.current;w&&A?.enabled&&A.volume>0&&v(A.volume)};return document.addEventListener("visibilitychange",y),()=>document.removeEventListener("visibilitychange",y)},[g,v,t,a]),s.useEffect(()=>{u.current=e?{enabled:e.settings.enabled,volume:x,type:e.settings.type}:null},[e,e?.settings.enabled,x,e?.settings.type]);const b=s.useRef(null);return s.useEffect(()=>()=>{b.current?.(),b.current=null},[]),s.useEffect(()=>{const y=e?.settings,C=n.current;if(!C)return;const k=y?Qi(y):0;if(!y||!y.enabled||k===0){f();return}if(c.current!==y.type){const w=yB(y.type);w&&(c.current=y.type,l(w),d.current=w,f(150,()=>{if(d.current!==w)return;d.current=null,C.src=w,C.load();const A=t.current;if(A&&!A.paused){b.current?.();const B=()=>{C.removeEventListener("canplay",B),b.current===S&&(b.current=null);const D=t.current,T=u.current;D&&!D.paused&&!D.ended&&T?.enabled&&T.volume>0&&v(T.volume)},S=()=>C.removeEventListener("canplay",B);b.current=S,C.addEventListener("canplay",B)}}))}else{const w=t.current,A=!!w&&!w.paused&&!w.ended||a.current==="playing";if(A&&d.current)v(k);else if(A&&C.paused&&C.src)v(k);else if(!C.paused)if(!A)f();else{g();const B=Jo(C),S=performance.now(),D=()=>{const T=Math.min(1,(performance.now()-S)/150);try{La(C,B+(k-B)*T)}catch{}T<1?p.current=requestAnimationFrame(D):p.current=null};p.current=requestAnimationFrame(D)}}},[e?.settings,e?.settings.enabled,x,e?.settings.type,g,v,f,t,a,u]),s.useEffect(()=>{const y=n.current;if(y)try{y.playbackRate=Math.min(1.25,Math.max(.75,e?.settings.speed??1))}catch{}},[e?.settings.speed]),{noiseAudioRef:n,activeNoiseUrl:i,noiseSettingsRef:u,cancelNoiseFade:g,fadeInNoise:v,fadeOutNoise:f}}function kB({ttsText:e,playbackRate:t,mainVolume:a,fillRef:o,waveProgressRef:n,setProgress:i,setPlaybackState:l,setStateLocal:c,fadeInNoise:d,fadeOutNoise:u,noiseSettingsRef:p,onDoneRef:h,handleEndRef:m}){const g=s.useRef(null),v=s.useRef(0),f=s.useRef(null),x=s.useRef(0),_=s.useRef(!1);s.useEffect(()=>()=>{x.current++;try{if(f.current&&(cancelAnimationFrame(f.current),f.current=null),_.current&&window.speechSynthesis){try{window.speechSynthesis.cancel()}catch{}_.current=!1}}catch{}},[]);const b=(k,w=1)=>{try{const A=(k||"").trim().split(/\s+/).filter(Boolean).length||Math.max(1,(k||"").length);return Math.max(700,Math.round(A*300/Math.max(.25,w)))}catch{return 1200}},y=s.useCallback(k=>{if(typeof window>"u"||!window.speechSynthesis){try{typeof h.current=="function"&&h.current(!1)}catch{}return}const w=window.speechSynthesis,A=++x.current;try{try{w.cancel()}catch{}const B=k??e,S=Array.isArray(B)?B.filter(N=>!!N):[B||""];S.length===0&&S.push("");const D=Math.max(.3,Math.min(3,t));v.current=S.reduce((N,j)=>N+b(j,D||1),0),g.current=performance.now(),i(0),l("playing"),c("playMode");const T=p.current;T?.enabled&&(T?.volume??0)>0&&d(T.volume);const I=()=>{try{const N=g.current||performance.now(),j=performance.now()-N,H=v.current||1200,X=Math.min(1,j/H);try{o.current&&(o.current.style.left=`${X*100}%`),n.current&&n.current.style.setProperty("--progress",String(X))}catch{}X<1&&(f.current=requestAnimationFrame(I))}catch{}},L=()=>{if(A===x.current)try{f.current&&(cancelAnimationFrame(f.current),f.current=null),i(1),l("stopped");try{m.current?.()}catch{try{typeof h.current=="function"&&h.current(!0)}catch{}}}catch{}},V=N=>{const j=new SpeechSynthesisUtterance(S[N]);try{j.rate=D}catch{}try{j.volume=Math.max(0,Math.min(1,a))}catch{}j.onend=()=>{if(A===x.current){if(N<S.length-1){try{V(N+1)}catch{L()}return}L()}},j.onerror=()=>{L()},j.onstart=()=>{if(!(N>0))try{f.current&&(cancelAnimationFrame(f.current),f.current=null),f.current=requestAnimationFrame(I)}catch{}},_.current=!0,w.speak(j)};try{V(0)}catch{try{typeof h.current=="function"&&h.current(!0)}catch{}}}catch{try{typeof h.current=="function"&&h.current(!0)}catch{}}},[e,t,a,d,o,n,i,l,c,p,h,m]),C=s.useCallback(()=>{x.current++;try{if(window.speechSynthesis)try{window.speechSynthesis.cancel()}catch{}f.current&&(cancelAnimationFrame(f.current),f.current=null),u(),g.current=null}catch{}l("stopped"),c("active"),i(0)},[u,l,c,i]);return{startTTS:y,stopTTS:C}}var BB='.ihabdevteam-core-scope .audio-player{align-items:center;display:flex;flex-direction:column;width:100%}.ihabdevteam-core-scope .audio-player__no-waveform{align-items:center;align-self:flex-start;color:var(--color-lightGray);display:flex;gap:4px;margin:6px 0 0}.ihabdevteam-core-scope .audio-player__no-waveform .iconRenderer-icon{align-items:center;display:inline-flex}.ihabdevteam-core-scope .audio-player__panel{align-items:center;background:linear-gradient(90deg,var(--color-main),var(--color-sub));background:linear-gradient(var(--angle,90deg),var(--color-main),var(--color-sub));border-radius:var(--radius-m);display:flex;height:120px;position:relative;width:100%}.ihabdevteam-core-scope .audio-player.is-disabled .audio-player__panel{background:var(--color-darkWhite);border:1px solid var(--color-darkWhite)}.ihabdevteam-core-scope .audio-player.is-disabled .audio-player__buttons,.ihabdevteam-core-scope .audio-player.is-disabled .audio-player__play,.ihabdevteam-core-scope .audio-player.is-disabled .audio-player__wave{pointer-events:none}.ihabdevteam-core-scope .audio-player.is-disabled .audio-player__buttons .button,.ihabdevteam-core-scope .audio-player.is-disabled .audio-player__play .button{opacity:.7}.ihabdevteam-core-scope .audio-player__play{align-items:center;bottom:0;display:flex;height:100%;justify-content:center;left:0;opacity:0;pointer-events:none;position:relative;right:0;top:0;transition:opacity .16s ease,transform .16s ease;width:100%;z-index:10}.ihabdevteam-core-scope .audio-player__play.is-visible{opacity:1;pointer-events:auto}.ihabdevteam-core-scope .audio-player__panel>.button{left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);transition:opacity .16s ease,transform .16s ease;will-change:opacity,transform;z-index:35}.ihabdevteam-core-scope .audio-player__button{align-items:center;background:transparent;border:0;cursor:pointer;display:flex;inset:0;justify-content:center;padding:0;position:absolute;z-index:35}.ihabdevteam-core-scope .audio-player__button-triangle-wrap{align-items:center;display:flex;height:90px;justify-content:center;transition:transform .32s cubic-bezier(.2,.7,.2,1);width:90px}.ihabdevteam-core-scope .audio-player__button:hover .audio-player__button-triangle-wrap{transform:scale(1.18)}.ihabdevteam-core-scope .audio-player__button:active .audio-player__button-triangle-wrap{transform:scale(1.06)}.ihabdevteam-core-scope .audio-player__button-triangle{height:100%;width:100%}.ihabdevteam-core-scope .audio-player__button-triangle path{fill:none;stroke:#fff;stroke-linecap:round;stroke-linejoin:round;stroke-width:2.6}.ihabdevteam-core-scope .audio-player.is-disabled .audio-player__button{cursor:default;opacity:.5;pointer-events:none}.ihabdevteam-core-scope .audio-player__slider{align-items:center;bottom:50px;box-sizing:border-box;display:flex;left:20px;pointer-events:none;position:absolute;right:20px;top:20px}.ihabdevteam-core-scope .audio-player__buttons{align-items:center;border-radius:999px;bottom:10px;box-sizing:border-box;display:flex;gap:0;height:28px;justify-content:center;left:0;pointer-events:auto;position:absolute;right:0;z-index:40}.ihabdevteam-core-scope .audio-player__source-buttons{align-items:center;border:1px solid var(--color-white-a30);border-radius:var(--radius-m);display:inline-flex;justify-content:center;overflow:visible}.ihabdevteam-core-scope .audio-player__source-buttons .button{flex:0 0 auto;max-width:60px}.ihabdevteam-core-scope .audio-player__buttons .button[aria-label=\\B2E4\\C74C],.ihabdevteam-core-scope .audio-player__buttons .button[aria-label=\\C774\\C804],.ihabdevteam-core-scope .audio-player__buttons .button[aria-label=\\C815\\C9C0]{display:none}.ihabdevteam-core-scope .audio-player__buttons>.button{align-items:center;display:inline-flex;justify-content:center;margin:0;width:auto}.ihabdevteam-core-scope .audio-player__fill{backface-visibility:hidden;background:var(--color-pureWhite);border-radius:var(--radius-sm);height:100%;left:0;opacity:0;pointer-events:none;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) scaleY(0);transform-origin:center center;transition:transform .28s cubic-bezier(.2,.8,.2,1),opacity .16s ease;width:8px;will-change:transform,opacity;z-index:70}.ihabdevteam-core-scope .audio-player__fill.is-visible{opacity:1}.ihabdevteam-core-scope .audio-player__fill.is-expanded{transform:translateX(-50%) translateY(-50%) scaleY(1)}.ihabdevteam-core-scope .audio-player__fill.is-paused{transition:opacity .16s ease}.ihabdevteam-core-scope .audio-player__fill.is-out{animation:audio-player-fill-out .28s cubic-bezier(.2,.8,.2,1) forwards}@keyframes audio-player-fill-out{0%{opacity:1;transform:translateX(-50%) translateY(-50%) scaleY(1)}to{opacity:0;transform:translateX(-50%) translateY(-50%) scaleY(0)}}.ihabdevteam-core-scope .audio-player__loading{align-items:center;background:transparent;border-radius:var(--radius-sm);color:rgba(0,0,0,.85);color:var(--audio-loading-foreground,rgba(0,0,0,.85));display:inline-flex;font-size:13px;gap:var(--spacing-xs);left:50%;padding:0;pointer-events:none;position:absolute;top:50%;transform:translate(-50%,-50%);z-index:999}.ihabdevteam-core-scope .audio-player__debug{align-items:center;background:hsla(0,0%,100%,.06);border-radius:18px;color:#fff;display:flex;font-size:12px;gap:8px;padding:6px 10px;pointer-events:none;position:absolute;right:12px;top:12px}.ihabdevteam-core-scope .audio-player__debug-dot{border-radius:10px;box-shadow:0 0 6px rgba(0,0,0,.4);display:inline-block;height:10px;width:10px}.ihabdevteam-core-scope .audio-player__loading .audio-player__loading-text,.ihabdevteam-core-scope .audio-player__panel.is-loading .audio-player__loading-text{display:none}.ihabdevteam-core-scope .audio-player__loading-spinner{animation:audio-player-spinner .9s linear infinite;border:4px solid hsla(0,0%,100%,.2);border-radius:50%;border-top-color:#fff;filter:drop-shadow(0 2px 6px rgba(0,0,0,.25));height:40px;width:40px}@keyframes audio-player-spinner{to{transform:rotate(1turn)}}.ihabdevteam-core-scope .audio-player__wave{height:90%;height:var(--wave-h,90%);position:absolute;transition:height .35s cubic-bezier(.22,.9,.3,1)}.ihabdevteam-core-scope .audio-player__wave,.ihabdevteam-core-scope .audio-player__wave-inner{align-items:center;display:flex;justify-content:center;pointer-events:none;width:100%;z-index:60}.ihabdevteam-core-scope .audio-player__wave-inner{cursor:default;gap:3px;gap:var(--bar-gap,3px);height:100%;margin:0 auto;padding:0}.ihabdevteam-core-scope .audio-player__wave-inner:not(.is-ready) .audio-player__bar:after{opacity:0}.ihabdevteam-core-scope .audio-player__wave-inner.is-ready .audio-player__bar:after{animation:wave-bar-in .35s cubic-bezier(.22,.9,.3,1) backwards;animation-delay:0ms;animation-delay:calc(var(--i, 0)*2ms)}@keyframes wave-bar-in{0%{opacity:0;transform:translateY(-50%) scaleY(.05)}to{opacity:1;transform:translateY(-50%) scaleY(.15);transform:translateY(-50%) scaleY(var(--val,.15))}}.ihabdevteam-core-scope .audio-player__wave-inner.is-ready .audio-player__bar--hidden:after,.ihabdevteam-core-scope .audio-player__wave-noise.is-ready .audio-player__bar--hidden:after{animation:none;opacity:0}.ihabdevteam-core-scope .audio-player__wave-played{bottom:0;clip-path:inset(0 100% 0 0);clip-path:inset(0 calc((1 - var(--progress, 0))*100%) 0 0);left:0;pointer-events:none;position:absolute;right:0;top:0}.ihabdevteam-core-scope .audio-player__bar{box-sizing:border-box;flex:0 0 3px;flex:0 0 var(--bar-w,3px);height:100%;position:relative}.ihabdevteam-core-scope .audio-player__wave-unplayed .audio-player__bar:after{background:color-mix(in srgb,var(--color-lightMain),var(--color-lightSub) 0);border-radius:999px;content:"";height:100%;height:var(--wave-h1,100%);left:0;opacity:1;position:absolute;right:0;top:50%;transform:translateY(-50%) scaleY(.15);transform:translateY(-50%) scaleY(var(--val,.15));transform-origin:center center;transition:transform .35s cubic-bezier(.22,.9,.3,1);z-index:61}@supports (color:color-mix(in lch,red,blue)) and (top:var(--f )){.ihabdevteam-core-scope .audio-player__wave-unplayed .audio-player__bar:after{background:color-mix(in srgb,var(--color-lightMain),var(--color-lightSub) calc(var(--mix, 0)*100%))}}.ihabdevteam-core-scope .audio-player__wave-played .audio-player__bar:after{background:color-mix(in srgb,var(--color-lightMain),var(--color-lightSub) 0);border-radius:999px;content:"";height:100%;height:var(--wave-h1,100%);left:0;opacity:1;position:absolute;right:0;top:50%;transform:translateY(-50%) scaleY(.15);transform:translateY(-50%) scaleY(var(--val,.15));transform-origin:center center;transition:transform .35s cubic-bezier(.22,.9,.3,1);z-index:62}@supports (color:color-mix(in lch,red,blue)) and (top:var(--f )){.ihabdevteam-core-scope .audio-player__wave-played .audio-player__bar:after{background:color-mix(in srgb,var(--color-lightMain),var(--color-lightSub) calc(var(--mix, 0)*100%))}}.ihabdevteam-core-scope .audio-player__wave-noise{align-items:center;bottom:0;display:flex;gap:3px;gap:var(--bar-gap,3px);justify-content:center;left:0;margin:0 auto;pointer-events:none;position:absolute;right:0;top:0;width:100%;z-index:58}.ihabdevteam-core-scope .audio-player__wave-noise .audio-player__bar:after{background:color-mix(in srgb,var(--color-deepMain),var(--color-deepSub) 0);border-radius:999px;content:"";height:100%;height:var(--wave-h1,100%);left:0;opacity:1;position:absolute;right:0;top:50%;transform:translateY(-50%) scaleY(.1);transform:translateY(-50%) scaleY(var(--val,.1));transform-origin:center center;transition:transform .35s cubic-bezier(.22,.9,.3,1);z-index:58}@supports (color:color-mix(in lch,red,blue)) and (top:var(--f )){.ihabdevteam-core-scope .audio-player__wave-noise .audio-player__bar:after{background:color-mix(in srgb,var(--color-deepMain),var(--color-deepSub) calc(var(--mix, 0)*100%))}}.ihabdevteam-core-scope .audio-player__wave-noise:not(.is-ready) .audio-player__bar:after{opacity:0}.ihabdevteam-core-scope .audio-player__wave-noise.is-ready .audio-player__bar:after{animation:wave-bar-in .35s cubic-bezier(.22,.9,.3,1) backwards;animation-delay:0ms;animation-delay:calc(var(--i, 0)*2ms)}.ihabdevteam-core-scope .audio-player__segments{align-items:center;display:flex;gap:3px;gap:var(--bar-gap,3px);height:100%;position:relative;width:100%}.ihabdevteam-core-scope .audio-player__segment{align-items:center;cursor:pointer;display:flex;height:100%;justify-content:center;padding:10px 0;pointer-events:auto;position:relative}.ihabdevteam-core-scope .audio-player__segment-inner{align-items:center;display:flex;gap:3px;gap:var(--bar-gap,3px);height:100%;justify-content:center;width:100%}.ihabdevteam-core-scope .audio-player__buttons>.button--variant-transparent-white[aria-pressed=true]:not(:hover):not(:focus-visible){background:transparent;color:#fbfdff}.ihabdevteam-core-scope .audio-player__source-buttons .button--variant-transparent-white[aria-pressed=true]{background:var(--color-white);color:var(--color-darkGray)}';oe(BB);async function AB(e,t,a){let o=null;try{const n=window.AudioContext||window.webkitAudioContext;o=new n;const i=await o.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,h)=>{const m=h*u,g=Math.min(m+u,d);let v=0;for(let f=m;f<g;f++){const x=Math.abs(l[f]);x>v&&(v=x)}return v})}catch{return null}finally{try{o?.close?.()}catch{}}}async function Pf(e,t,a){try{const o=await fetch(e);if(o.ok===!1)return null;const n=await o.arrayBuffer();return await AB(n,t,a)}catch(o){try{const n=Jr(o)}catch{}return null}}const as=45,zf=74,If=2;function An(e){const t=Math.min(2,Math.max(0,Number(e)||0));return t<=1?t*45:45+(t-1)*29}function Sn(e){return An(e)/45}function SB({currentTime:e,sources:t,index:a,audioDuration:o}){const n=a||0,i=Array.isArray(t)&&t.length>0?t[n]:void 0,l=i?i.duration||o||0:o||0;if(!(l>0))return 0;const c=Number.isFinite(e)?e:0;return Math.max(0,Math.min(1,c/l))}function EB({phase:e,phaseElapsedMs:t,currentTime:a,trackDurationSec:o,leadInMs:n,tailMs:i}){const l=Math.max(0,n),c=Math.max(0,i),d=Math.max(0,(Number.isFinite(o)?o:0)*1e3),u=l+d+c;if(!(u>0)||!(d>0))return 0;const p=e==="lead"?Math.min(Math.max(0,t),l):e==="sound"?l+Math.min(Math.max(0,(Number.isFinite(a)?a:0)*1e3),d):l+d+Math.min(Math.max(0,t),c);return Math.max(0,Math.min(1,p/u))}function DB({bars:e,trackDurationSec:t,leadInMs:a,tailMs:o}){const n=Math.max(0,Math.floor(e)),i=Math.max(0,a),l=Math.max(0,o),c=Math.max(0,(Number.isFinite(t)?t:0)*1e3),d=i+c+l;if(n===0||!(d>0)||i===0&&l===0||!(c>0))return{lead:0,sound:n,tail:0};const u=Math.round(i/d*n),p=Math.round(l/d*n),h=Math.max(1,n-u-p),m=u+h+p-n;return{lead:Math.max(0,u-Math.ceil(m/2)),sound:h,tail:Math.max(0,p-Math.floor(m/2))}}function NB(e,t){if(!Array.isArray(e))return null;const a=t||0;return a<e.length-1?a+1:null}function TB({ended:e,completedByEnd:t}){return!!e||!!t}function jB(e){return e.map((t,a)=>({src:t.src,label:String(a+1),color:void 0,duration:t.duration||0}))}function LB(e){return e.reduce((t,a)=>t+(a.duration||0),0)}function MB(e,t,a){const o=Array.isArray(e)?e:e?[e]:[],n=[];for(const i of o)if(i){if(typeof i=="object"&&i!==null&&"src"in i&&i.src){const l=i;n.push({code:l.code??null,src:l.src});continue}if(typeof i=="string"&&(i.startsWith("http")||i.includes("/"))){n.push({code:null,src:i});continue}if(typeof i=="string"||typeof i=="number"){const l=String(i),c=a(l,t);c&&n.push({code:l,resolvedPath:c})}}return n}const Of=4,Ff=Sn(Of/as);function $B(e){const{src:t,segments:a,progress:o=0,waveProgressRef:n,noiseSrc:i,noiseRatio:l=0,noiseSpeed:c=1,totalDuration:d=0,mainVolume:u=1,onReadyChange:p,showSoundWaveForm:h=!0,leadInMs:m=0,tailMs:g=0,trackDurationSec:v=0}=e,f=s.useRef(null),x=s.useRef(null),[_,b]=s.useState(null),[y,C]=s.useState(!1),[k,w]=s.useState(null),[A,B]=s.useState(2),[S,D]=s.useState(0),[T,I]=s.useState(null),[L,V]=s.useState(!1),[N,j]=s.useState(!1),H=3,X=3,ae=1,M=300,G=s.useRef(0),P=s.useCallback(()=>{const we=f.current,ge=x&&x.current?x.current:we?we.closest(".audio-player__wave"):null,de=ge?ge.getBoundingClientRect():we?we.getBoundingClientRect():null,me=de?de.width:0,he=de?Math.max(100,de.width):320,U=de?de.height:0,ue=Math.max(ae,Math.min(M,Math.floor((he+X)/(H+X)))),pe=ue*H,Ne=Math.max(0,ue-1),Le=Math.max(0,Ne>0?(he-pe)/Ne:X);return{bars:ue,gap:Le,height:U,width:me}},[]),O=s.useRef(void 0),E=s.useRef(null),F=s.useCallback(async(we,ge,{quiet:de=!1}={})=>{const me=++G.current,he=()=>G.current===me;try{if(de||C(!1),O.current=we,!we){he()&&b(null);return}let U=ge;if(!U)try{for(let Ne=0;Ne<4&&!(f.current||x.current);Ne++)await new Promise(Le=>requestAnimationFrame(Le));await new Promise(Ne=>requestAnimationFrame(Ne));const pe=P();pe.height>0&&D(pe.height),U=pe.bars,B(pe.gap)}catch{U=120}E.current=U;const ue=await Pf(we,U);if(!he())return;if(!ue){b(null),C(!1);return}b(ue),w(U),C(!0)}catch{if(!he())return;b(null),C(!1)}},[C,b,D,B,w,P]);s.useEffect(()=>{const we=x.current;if(!we||typeof ResizeObserver>"u")return;let ge=null;const de=new ResizeObserver(()=>{ge!==null&&cancelAnimationFrame(ge),ge=requestAnimationFrame(()=>{ge=null;try{const me=P();if(me.width<=0||(me.height>0&&D(me.height),E.current===null||me.bars===E.current))return;const he=O.current;B(me.gap),he?F(he,me.bars,{quiet:!0}).catch(()=>{}):E.current=me.bars}catch{}})});return de.observe(we),()=>{de.disconnect(),ge!==null&&cancelAnimationFrame(ge)}},[P,F]),s.useEffect(()=>{const we=a&&a[0]&&a[0].src||t||a&&a.length===1&&a[0]&&a[0].src;F(typeof we=="string"?we:void 0).catch(()=>{}),j(!1)},[t,a,F]),s.useEffect(()=>{let we=!1;if(V(!1),!i||!k){I(null);return}const ge=d>0?d*(c||1):void 0;return Pf(i,k,ge).then(de=>{we||(I(de),de||V(!0))}).catch(()=>{we||(I(null),V(!0))}),()=>{we=!0}},[i,k,d,c]);const R=Math.max(0,Math.min(1,u)),z=s.useMemo(()=>_&&_.length&&Math.max(..._)||1,[_]),W=k||40,Q=s.useMemo(()=>DB({bars:W,trackDurationSec:v,leadInMs:m,tailMs:g}),[W,v,m,g]),K=s.useMemo(()=>Array.from({length:W}).map((we,ge)=>{const de=ge>=Q.lead&&ge<Q.lead+Q.sound,me=Q.sound>0&&de?Math.min(W-1,Math.round((ge-Q.lead)/Q.sound*W)):-1,he=de?_&&_[me]!=null?_[me]:null:_?0:null,U=he==null?null:Math.min(1,he/z*R),ue=U!=null&&S>0&&An(U)<=Of,pe=!i,Ne=U==null?.15:ue?pe?Ff:0:Sn(U),Le=ue&&!pe,Oe=W>1?ge/(W-1):0;return r.jsx("div",{className:Le?"audio-player__bar audio-player__bar--hidden":"audio-player__bar",style:{"--val":Ne,"--i":ge,"--mix":Oe}},ge)}),[W,_,z,R,S,Q,i]),Z={"--progress":String(Math.max(0,Math.min(1,o)))},ie=i?Math.max(1,l):1,te={"--bar-gap":`${A}px`,"--wave-h":`${An(ie)}px`,"--wave-h1":`${as}px`},ce=R*Math.max(0,l)/Rn(),De=y&&(i?!!T||L:!0);s.useEffect(()=>{De&&j(!0)},[De]);const q=N?y:De;s.useEffect(()=>{p?.(q)},[q,p]);const ne=k||40,xe=s.useMemo(()=>Array.from({length:ne}).map((we,ge)=>{const de=T&&T[ge]!=null?T[ge]:null,me=de==null?0:de/z*ce,he=Math.max(Ff,Sn(me)),U=ne>1?ge/(ne-1):0;return r.jsx("div",{className:"audio-player__bar",style:{"--val":he,"--i":ge,"--mix":U}},ge)}),[ne,T,z,ce,S]);return r.jsxs("div",{className:"audio-player__wave",ref:x,style:te,children:[i&&r.jsx("div",{className:`audio-player__wave-noise ${De?"is-ready":""}`,"aria-hidden":"true",children:xe}),h&&r.jsxs(r.Fragment,{children:[r.jsx("div",{className:`audio-player__wave-inner audio-player__wave-unplayed ${q?"is-ready":""}`,ref:f,children:K}),r.jsx("div",{className:`audio-player__wave-inner audio-player__wave-played ${q?"is-ready":""}`,ref:n,style:Z,children:K})]})]})}const RB={idle:"\uB300\uAE30",synthesizing:"\uC18C\uB9AC\uB97C \uB9CC\uB4E4\uACE0 \uC788\uC2B5\uB2C8\uB2E4\u2026",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 Eu(e,t){return new Promise((a,o)=>{const n=document.createElement("audio");let i=!1;const l=()=>{try{n.src=""}catch{}},c=()=>{if(i)return;i=!0;const u=isFinite(n.duration)&&n.duration||0;l(),a(u)},d=u=>{i||(i=!0,l(),t.rejectOnError?o(new Error(u)):a(0))};n.addEventListener("loadedmetadata",c),n.addEventListener("error",()=>d("audio load failed")),setTimeout(()=>d("audio load timeout"),t.timeoutMs),n.src=e})}const PB=2e3;function Hf(e,t=PB){return new Promise(a=>{let o=!1;const n=()=>{o||(o=!0,a())};e.addEventListener("canplay",n,{once:!0}),e.addEventListener("error",n,{once:!0}),setTimeout(n,t)})}function zB({showSoundWaveForm:e,showNoiseWaveForm:t,timeoutMs:a=2500}){const o=s.useRef(!1),n=s.useRef([]),i=s.useCallback(d=>{if(o.current=d,!d||!n.current.length)return;const u=n.current;n.current=[];for(const p of u)p(!0)},[]),l=s.useCallback(()=>{o.current=!1},[]),c=s.useCallback(()=>!e&&!t||o.current?Promise.resolve(!0):new Promise(d=>{const u=h=>{clearTimeout(p),n.current=n.current.filter(m=>m!==u),d(h)},p=setTimeout(()=>u(!0),a);n.current.push(u)}),[e,t,a]);return s.useEffect(()=>()=>{const d=n.current;n.current=[];for(const u of d)u(!1)},[]),{onReadyChange:i,waitForReady:c,markNotReady:l}}function IB(){const e=s.useRef([]),t=s.useCallback(n=>(e.current.push(n),n),[]),a=s.useCallback(n=>{const i=new Set([...n].filter(Boolean));e.current=e.current.filter(l=>{if(i.has(l))return!0;try{URL.revokeObjectURL(l)}catch{}return!1})},[]),o=s.useCallback(()=>{a([])},[a]);return s.useEffect(()=>()=>{for(const n of e.current)try{URL.revokeObjectURL(n)}catch{}e.current=[]},[]),{track:t,keepOnly:a,revokeAll:o}}function OB({offsetY:e=8}={}){const t=s.useRef(null),[a,o]=s.useState(null),n=s.useCallback(()=>o(null),[]),i=s.useCallback(()=>{try{const l=t.current?.getBoundingClientRect();if(!l)return;o({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 s.useEffect(()=>{if(a)return document.addEventListener("mousedown",n),()=>document.removeEventListener("mousedown",n)},[a,n]),{ref:t,rect:a,show:i,hide:n}}function FB(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 o=a.end(a.length-1);if(Number.isFinite(o)&&o>0)return o}}catch{}return null}function HB({audioRef:e,fillRef:t,waveProgressRef:a,sourcesRef:o,currentIndexRef:n,padRef:i,leadInMs:l=0,tailMs:c=0}){const d=s.useRef(null),u=s.useCallback(()=>{d.current!==null&&(cancelAnimationFrame(d.current),d.current=null)},[]),p=s.useCallback(()=>{if(d.current!==null)return;const m=()=>{try{const g=e.current,v=Array.isArray(o.current)?o.current[n.current||0]:void 0,f=!!v&&Number.isFinite(v.duration)&&(v.duration??0)>0,x=f?0:FB(g),_=t.current;if(x===null)try{_&&_.style.visibility!=="hidden"&&(_.style.visibility="hidden")}catch{}else{const b=(l||0)>0||(c||0)>0?EB({phase:i?.current?.phase??"sound",phaseElapsedMs:i?.current?Math.max(0,Date.now()-i.current.at):0,currentTime:g&&typeof g.currentTime=="number"?g.currentTime:0,trackDurationSec:f?v.duration:x||0,leadInMs:l||0,tailMs:c||0}):SB({currentTime:g&&typeof g.currentTime=="number"?g.currentTime:0,sources:o.current,index:n.current,audioDuration:x});try{_&&(_.style.visibility&&(_.style.visibility=""),_.style.left=`${b*100}%`)}catch{}try{a.current?.style.setProperty("--progress",String(b))}catch{}}}catch{}d.current=requestAnimationFrame(m)};d.current=requestAnimationFrame(m)},[e,t,a,o,n,i,l,c]),h=s.useCallback(m=>{u();try{t.current&&(t.current.style.visibility="",t.current.style.left=`${m*100}%`)}catch{}try{a.current?.style.setProperty("--progress",String(m))}catch{}},[u,t,a]);return s.useEffect(()=>u,[u]),{start:p,stop:u,settleTo:h}}function En({btnLabel:e,soundSrc:t,bucketPath:a,onDone:o,disabled:n=!1,ttsText:i=null,className:l,showSoundWaveForm:c=!0,showNoiseWaveForm:d=!0,leadInMs:u=0,tailMs:p=0}){const{t:h}=_e.useTranslation(),m=e,g=Bn(),v=s.useRef(g?.registerAnalyser);s.useEffect(()=>{v.current=g?.registerAnalyser});const f=s.useRef(null),x=s.useRef(null),_=s.useRef(null),b=IB(),y=s.useRef(null),C=s.useRef(!1),k=s.useRef(0),w=s.useRef(null),{ref:A,rect:B,show:S,hide:D}=OB();s.useEffect(()=>()=>{v.current?.("main",null),v.current?.("noise",null)},[]);const[T,I]=s.useState(!1),[L,V]=s.useState("idle"),[N,j]=s.useState("stopped"),H=s.useRef("stopped");s.useEffect(()=>{H.current=N},[N]);const[X,ae]=s.useState(0),[M,G]=s.useState("active"),P=s.useRef(!1);s.useEffect(()=>{if(M!=="playMode"||!P.current)return;P.current=!1;const re=typeof document<"u"?document.activeElement:null;if(re&&re!==document.body)return;const Se=_.current?.querySelectorAll("button")[1];try{Se?.focus()}catch{}},[M]);const[O,E]=s.useState(null),[F,R]=s.useState(null),[z,W]=s.useState(0),[Q,K]=s.useState(!1),[Z,ie]=s.useState(0),te=g?.playbackRate??1,ce=g?.mainVolume??1,De=g?Ji(g.settings):0,q=g?Au(g.settings):ce,[ne,xe]=s.useState("idle"),[we,ge]=s.useState(""),[de]=s.useState("top"),me=s.useRef(null),he=s.useRef(0),U=s.useRef(null),ue=s.useRef({phase:"sound",at:0}),pe=s.useRef(u),Ne=s.useRef(p);s.useEffect(()=>{pe.current=Math.max(0,u||0)},[u]),s.useEffect(()=>{Ne.current=Math.max(0,p||0)},[p]);const Le=s.useRef(null),Oe=s.useCallback(()=>{Le.current&&(clearTimeout(Le.current),Le.current=null),ue.current={phase:"sound",at:0}},[]),Ie=s.useCallback((re,Se)=>{if(!(re>0))return Promise.resolve(!0);const Pe=_t.current;return ue.current={phase:Se,at:Date.now()},new Promise(Ge=>{Le.current=setTimeout(()=>{Le.current=null,Ge(pt.current&&Pe===_t.current)},re)})},[]);s.useEffect(()=>()=>Oe(),[Oe]);const{start:ct,stop:ot,settleTo:tt}=HB({audioRef:f,fillRef:x,waveProgressRef:U,sourcesRef:me,currentIndexRef:he,padRef:ue,leadInMs:u,tailMs:p}),{onReadyChange:ht,waitForReady:Ae,markNotReady:He}=zB({showSoundWaveForm:c,showNoiseWaveForm:d}),Be=s.useRef(null),rt=s.useRef(n),J=s.useRef(o),se=s.useRef(null),ve=s.useRef(!1),[je,ut]=s.useState(!1),Xe=s.useCallback(re=>{ve.current=re,ut(re)},[]),St=s.useRef(null),{activeNoiseUrl:yt,noiseSettingsRef:bt,fadeInNoise:dt,fadeOutNoise:nt}=wB({noisePlayer:g,audioRef:f,playbackStateRef:H}),{startTTS:it,stopTTS:ze}=kB({ttsText:i,playbackRate:te,mainVolume:q,fillRef:x,waveProgressRef:U,setProgress:ae,setPlaybackState:j,setStateLocal:G,fadeInNoise:dt,fadeOutNoise:nt,noiseSettingsRef:bt,onDoneRef:J,handleEndRef:St});s.useEffect(()=>{gt.current=ze});const Ze=re=>{if(typeof window>"u"||!window.speechSynthesis){try{ge(h("training.ttsUnavailable","\uC774 \uAE30\uAE30\uC5D0\uC11C\uB294 \uC74C\uC131\uC744 \uB4E4\uB824\uC904 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4."))}catch{}it(re);return}Mt("tts"),it(re)},Ve=Array.isArray(t)?t.filter(Boolean):t?[t]:[],vt=(!Ve||Ve.length===0)&&!!i,Ht=Array.isArray(O)&&O.length>0?O:Array.isArray(F)&&F.length>0?F:null,Rt=Math.max(Array.isArray(Ht)?Ht.length:0,Ve.length),pt=s.useRef(!0);s.useEffect(()=>(pt.current=!0,()=>{pt.current=!1}),[]);const _t=s.useRef(0),We=()=>{_t.current+=1,k.current+=1,Oe()},gt=s.useRef(null),Pt=s.useRef(null),qt=s.useRef(null),Qe=s.useRef(null);Qe.current||(Qe.current=()=>{qt.current=null;const re=f.current;if(Pt.current==="audio"&&re&&!re.paused){_t.current+=1,k.current+=1;try{re.pause()}catch{}pt.current&&j("paused")}else if(Pt.current==="tts")try{gt.current?.()}catch{}});const Mt=re=>{Pt.current=re,qt.current=Li(Qe.current)},Yt=()=>{qt.current?.(),qt.current=null};s.useEffect(()=>()=>{Qe.current&&Mi(Qe.current)},[]);const Lt=s.useCallback(async(re,Se=3,Pe=50)=>{const Ge=_t.current;if(pe.current>0&&(ct(),!await Ie(pe.current,"lead")||!pt.current||Ge!==_t.current))return!1;ue.current={phase:"sound",at:Date.now()};for(let at=0;at<Se;at++){if(!pt.current||Ge!==_t.current)return!1;try{return Mt("audio"),await re.play(),!0}catch(be){if((be instanceof Error||typeof be=="object"&&be&&"name"in be?be.name:void 0)==="AbortError"){if(Ge!==_t.current)return!1;await new Promise(Re=>setTimeout(Re,Pe));continue}try{ge(h("training.audioFetchError","\uC0AC\uC6B4\uB4DC \uC18C\uC2A4\uB97C \uAC00\uC838\uC624\uC9C0 \uBABB\uD588\uC2B5\uB2C8\uB2E4."))}catch{}return!1}}try{ge(h("training.audioFetchError","\uC0AC\uC6B4\uB4DC \uC18C\uC2A4\uB97C \uAC00\uC838\uC624\uC9C0 \uBABB\uD588\uC2B5\uB2C8\uB2E4."))}catch{}return!1},[h,ct,Ie]),Na=s.useCallback(()=>{const re=f.current;if(!re)return;const Se=()=>{j("playing"),G("playMode"),K(!0),ct();try{Ir(),Xo(re).then(be=>{if(pt.current)try{v.current?.("main",be)}catch{}})}catch{}const at=bt.current;at?.enabled&&(at?.volume??0)>0&&dt(at.volume)},Pe=()=>{TB({ended:!!re?.ended,completedByEnd:ve.current})||(j("paused"),ot(),nt())},Ge=()=>{const at=()=>{try{const be=me.current,Re=NB(be,he.current);if(Re!==null){he.current=Re,W(Re),K(!0);const st=be?.[Re]&&be[Re].src;if(st&&re){re.src=st,re.load(),Lt(re).catch(()=>{});return}}}catch{}j("stopped"),ae(1);try{if(re)try{re.currentTime=0}catch{}}catch{}ot(),K(!1),nt();try{!rt.current&&St.current&&St.current()}catch{}};if(Ne.current>0){ct(),Ie(Ne.current,"tail").then(be=>{ue.current={phase:"sound",at:0},be&&at()}).catch(()=>{});return}at()};return re.addEventListener("play",Se),re.addEventListener("pause",Pe),re.addEventListener("ended",Ge),()=>{try{re.removeEventListener("play",Se),re.removeEventListener("pause",Pe),re.removeEventListener("ended",Ge),ot()}catch{}}},[dt,nt,Lt,bt,ct,ot,Ie]);s.useEffect(()=>Na(),[Na]),s.useEffect(()=>{rt.current=n},[n]),s.useEffect(()=>{J.current=o},[o]),s.useEffect(()=>{if(n||M!=="active")return;const re=w.current;if(!re)return;let Se=null;const Pe=requestAnimationFrame(()=>{try{const Ge=re.getTotalLength();if(!Ge)return;const at=Ge*.2;re.style.strokeDasharray=`${Ge-at} ${at}`;const be="triFlow_"+Math.random().toString(36).slice(2);Se=document.createElement("style"),Se.textContent=`@keyframes ${be}{from{stroke-dashoffset:0}to{stroke-dashoffset:-${Ge}}}`,document.head.appendChild(Se),re.style.animation=`${be} 2.4s linear infinite`}catch{}});return()=>{cancelAnimationFrame(Pe),Se?.remove()}},[M,n]),s.useEffect(()=>{me.current=O},[O]),s.useEffect(()=>{he.current=z},[z]),s.useEffect(()=>{const re=_.current,Se=y.current;if(!re||!Se)return;let Pe=null;const Ge=32,at=60,be=()=>{try{const st=Array.from(re.querySelectorAll(":scope > .button"));let Ct=0;st.forEach(Y=>{if(Y===Se)return;const Ce=Y.getBoundingClientRect();Ct+=Ce.width});const Nt=re.getBoundingClientRect().width,ba=Math.max(0,Math.floor(Nt-Ct-8)),ye=Rt;if(!ye||ba<=0){Array.from(Se.children).forEach(Y=>{try{Y.style.width=""}catch{}});return}let $=Math.floor(ba/ye);$>at&&($=at),$<Ge&&($=Math.max(Ge,Math.floor(ba/ye))),Array.from(Se.querySelectorAll(".button")).forEach(Y=>{try{Y.style.width=`${$}px`}catch{}})}catch{}},Re=requestAnimationFrame(be);try{Pe=new ResizeObserver(()=>{requestAnimationFrame(be)}),Pe.observe(re),Pe.observe(Se),window.addEventListener("resize",be)}catch{}return()=>{try{cancelAnimationFrame(Re)}catch{}try{Pe&&(Pe.disconnect(),Pe=null)}catch{}try{window.removeEventListener("resize",be)}catch{}}},[O,F,Rt]),s.useEffect(()=>()=>{try{Be.current&&(clearTimeout(Be.current),Be.current=null),se.current&&(clearTimeout(se.current),se.current=null)}catch{}},[]);const Ta=(re,Se)=>{E(re),ie(Se),He(),R(jB(re)),me.current=re},Ga=async(re,Se)=>{Xe(!1),C.current=!1,re.src=Se,re.load(),await Hf(re),await Ae()!==!1&&(I(!1),await Lt(re),G("playMode"),W(0),K(!0))},wo=async(re,Se=!1)=>{const Pe=f.current;I(!0),V("measuring_duration");try{const Ge=await Eu(re,{timeoutMs:1e4,rejectOnError:!0});Ta([{src:re,objectUrl:null,duration:Ge}],Ge),V("ready"),Se&&Pe&&await Ga(Pe,re)}finally{C.current=!1,I(!1)}},Ua=async(re,Se=!1)=>{const Pe=f.current;I(!0),V("measuring_duration");try{const Ge=await Promise.all(re.map(be=>Eu(be,{timeoutMs:1e4})));if(!pt.current)return;const at=re.map((be,Re)=>({src:be,objectUrl:null,duration:Ge[Re]||0}));Ta(at,LB(at)),V("ready"),Se&&Pe&&at.length>0&&await Ga(Pe,at[0].src)}finally{C.current=!1,I(!1)}},ko=async(re=!1,Se=!0)=>{const Pe=f.current,Ge=t?Array.isArray(t)?t:[t]:[];if(!Ge||Ge.length===0||!Ge.some(Boolean))return!1;if(C.current)return null;C.current=!0,Se&&I(!0),V("resolving");try{const at=MB(t,a,Mn),be=[];let Re=0;for(const st of at){let Ct=st.src??null,Nt=null;if(!Ct&&st.resolvedPath){try{V("getting_signed_url"),Ct=await Rr(st.resolvedPath)}catch{Ct=null}if(!pt.current)return!1;if(!Ct)try{V("downloading");const ye=await $n(st.resolvedPath);if(!pt.current)return!1;if(ye){const $=ye instanceof Blob?ye:new Blob([ye]);Nt=b.track(URL.createObjectURL($)),Ct=Nt}}catch{V("error");try{ge(h("training.audioFetchError","\uC0AC\uC6B4\uB4DC \uC18C\uC2A4\uB97C \uAC00\uC838\uC624\uC9C0 \uBABB\uD588\uC2B5\uB2C8\uB2E4.")),G("active")}catch{}}}if(!Ct)continue;let ba=0;try{V("measuring_duration"),ba=await Eu(Ct,{timeoutMs:3e3})}catch{ba=0}if(!pt.current){if(Nt)try{URL.revokeObjectURL(Nt)}catch{}for(const ye of be)if(ye.objectUrl)try{URL.revokeObjectURL(ye.objectUrl)}catch{}return!1}Re+=ba||0,be.push({...st,src:Ct,objectUrl:Nt,duration:ba})}if(Ta(be,Re),be.length>0&&re&&Pe){const st=be[0];Xe(!1);try{b.keepOnly(be.map(Ct=>Ct.objectUrl))}catch{}if(V("ready"),C.current=!1,st.src&&Pe)try{if(Pe.src=st.src,Pe.load(),await Hf(Pe),await Ae()===!1)return!1;Se&&I(!1),Pe&&await Lt(Pe)}catch{Se&&I(!1)}else Se&&I(!1);G("playMode"),W(0),K(!0)}return be.length>0}finally{C.current=!1,Se&&I(!1),V(at=>at==="ready"?"ready":"idle")}},ja=async()=>{const re=f.current;if(!(!re&&!vt)){if(vt){const Se=window.speechSynthesis;if(M==="active"){const Pe=Pr(),Ge=Array.isArray(i)?i.filter(Boolean):i?[i]:[];if(Pe&&Ge.length>0){G("load"),I(!0),V("synthesizing"),C.current=!0;try{const at=await Promise.all(Ge.map(be=>Promise.resolve(Pe(be))));at.length>1?await Ua(at,!0):await wo(at[0],!0)}catch{C.current=!1,I(!1),G("active"),Ze(Ge.length>0?Ge:void 0)}return}Ze(Ge.length>0?Ge:void 0);return}if(M==="playMode"){const Pe=!!Se&&(Se.speaking||Se.paused)&&!(re&&(re.currentSrc||re.getAttribute("src")));if(re&&!Pe){if(re.paused){if(ve.current){await Vt();return}await Lt(re),j("playing")}else We(),re.pause(),j("paused");return}try{if(Se&&Se.paused)try{Mt("tts"),Se.resume(),j("playing")}catch{}else try{Se.pause(),j("paused")}catch{}}catch{}}return}if(M==="active"){if(n&&Array.isArray(me.current)&&me.current.length>0){const Pe=me.current[0];try{if(Pe.src&&re)try{re.src=Pe.src,re.load(),re&&await Lt(re)}catch{}G("playMode"),W(0),K(!0);return}catch{}}G("load");let Se;try{Se=await ko(!0)}catch{Se=!1}if(Se===!1&&pt.current){try{ge(h("training.audioFetchError","\uC0AC\uC6B4\uB4DC \uC18C\uC2A4\uB97C \uAC00\uC838\uC624\uC9C0 \uBABB\uD588\uC2B5\uB2C8\uB2E4."))}catch{}G("active")}return}if(M!=="load"&&(M==="playMode"||M==="active"))try{if(re&&re.paused){if(ve.current){await Vt();return}re&&await Lt(re),j("playing")}else re&&(We(),re.pause(),j("paused"))}catch(Se){(Se instanceof Error||typeof Se=="object"&&Se&&"name"in Se)&&Se.name}}},Vt=async()=>{const re=f.current;if(re)try{const Se=me.current;if(Array.isArray(Se)&&Se.length>1){await ro(0);return}Xe(!1);try{re.currentTime=0}catch{}re&&await Lt(re),j("playing"),G("playMode")}catch{}},qa=()=>{if(We(),Yt(),vt){ze();return}const re=f.current;try{if(re){try{re.pause()}catch{}try{re.currentTime=0}catch{}}}catch{}nt(),j("stopped"),G("active"),ae(0),K(!1)},Qt=async(re,{sameSegment:Se=!1}={})=>{const Pe=++k.current,Ge=f.current,at=me.current?.[re]?.src;try{if(Xe(!1),W(re),K(!0),he.current=re,!at||!Ge||(Se||He(),Ge.src=at,Ge.load(),!Se&&await Ae()===!1)||Pe!==k.current||(await Lt(Ge),Pe!==k.current))return;j("playing"),G("playMode")}catch{}},aa=async()=>{const re=me.current,Se=he.current||0;if(!re||Se<=0){await Vt();return}await Qt(Se-1)},Bo=async()=>{const re=me.current,Se=he.current||0;if(!re||Se>=re.length-1){qa();return}await Qt(Se+1)},_a=()=>{if(ve.current)return;const re=200,Se=340;Xe(!0),We(),Yt();try{ae(1)}catch{}tt(1);try{xe("hold")}catch{}try{const Pe=f.current,Ge=vt&&!!Pe?.src;if(!vt||Ge){if(Pe){Pe.pause();try{Pe.currentTime=0}catch{}}}else ze();nt()}catch{}try{j("stopped")}catch{}if(K(!1),!rt.current)try{se.current&&(clearTimeout(se.current),se.current=null),se.current=setTimeout(()=>{try{xe("out")}catch{}se.current=setTimeout(()=>{try{typeof J.current=="function"&&J.current(!0)}catch{}try{xe("idle")}catch{}se.current=null},Se)},re)}catch{}};s.useEffect(()=>{St.current=_a});const Ya=s.useCallback(()=>ge(""),[]),ro=async re=>{(me.current||[])[re]&&await Qt(re,{sameSegment:re===he.current})},da=N==="playing",oa=s.useMemo(()=>{if(!F||F.length<=1)return F;const re=F[z];return re?[re]:F},[F,z]),ea=n===!0;s.useEffect(()=>{try{const re=f.current;re&&typeof re.playbackRate=="number"&&(re.playbackRate=te||1)}catch{}},[te]);const le=s.useRef({raf:null,timer:null});s.useEffect(()=>{const re=f.current;if(!re)return;const Se=Math.max(0,Math.min(1,q)),Pe=le.current,Ge=()=>{Pe.raf!==null&&(cancelAnimationFrame(Pe.raf),Pe.raf=null),Pe.timer!==null&&(clearTimeout(Pe.timer),Pe.timer=null)};Ge();const at=Jo(re);if(re.paused||Math.abs(at-Se)<.001||typeof requestAnimationFrame!="function"){try{La(re,Se)}catch{}return}const be=performance.now(),Re=()=>{const st=Math.min(1,(performance.now()-be)/150);try{La(re,at+(Se-at)*st)}catch{}Pe.raf=st<1?requestAnimationFrame(Re):null};return Pe.raf=requestAnimationFrame(Re),Pe.timer=setTimeout(()=>{Ge();try{La(re,Se)}catch{}},200),Ge},[q]);const ke=ne==="hold",Te=ne==="out",Ke=M==="playMode"&&!T&&!je||ke||Te,$e=N!=="stopped"||ke||Te,qe=N==="paused",Ye=Math.max(0,Math.min(100,(X||0)*100)),ft=Ee("audio-player__fill",Ke?"is-visible":"",$e?"is-expanded":"",qe?"is-paused":"",Te?"is-out":"");return r.jsxs("div",{className:`audio-player ${ea?"is-disabled":""}${l?` ${l}`:""}`,role:"group","aria-label":typeof m=="string"?m:void 0,children:[r.jsxs("div",{className:`audio-player__panel ${da?"is-playing":""} ${T?"is-loading":""} ${M!=="default"?"is-revealed":""}`,children:[T?r.jsxs("div",{className:"audio-player__loading",role:"status","aria-live":"polite",children:[r.jsx("span",{className:"audio-player__loading-spinner","aria-hidden":"true"}),r.jsx("span",{className:"audio-player__loading-text",children:h(`training.audioStatus.${L}`,{defaultValue:RB[L]})})]}):null,M==="active"?r.jsx("button",{className:"audio-player__button",type:"button",disabled:ea,onClick:()=>{P.current=Vi(),D(),ja()},"aria-label":typeof m=="string"?m:h("training.listen","\uB4E3\uAE30"),onMouseEnter:S,onMouseLeave:D,onFocus:S,onBlur:D,children:r.jsx("span",{ref:A,className:"audio-player__button-triangle-wrap",children:r.jsx("svg",{className:"audio-player__button-triangle",viewBox:"0 0 24 24","aria-hidden":"true",children:r.jsx("path",{ref:w,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,B&&r.jsx(Sa,{anchorRect:B,text:typeof m=="string"&&m?m:h("training.listenLabel","\uBB38\uC7A5 \uB4E3\uAE30"),offset:8}),r.jsxs("div",{className:`audio-player__play ${M==="playMode"||da?"is-visible":""}`,inert:!(M==="playMode"||da)||void 0,children:[r.jsxs("div",{ref:_,className:"audio-player__buttons",children:[r.jsx(fe,{htmlType:"button",size:32,showTooltipInfo:!0,type:"dot",shape:"pill",useBorder:!1,icon:"skip-back",onClick:aa,ariaLabel:h("training.prev","\uC774\uC804"),width:"60px",variant:"transparent-white","aria-hidden":"true",tabIndex:-1,disabled:M!=="playMode"}),r.jsx(fe,{htmlType:"button",size:32,showTooltipInfo:!0,type:"dot",shape:"pill",useBorder:!1,icon:da?"pause":"play",onClick:ja,ariaLabel:h("common.playPause","\uC7AC\uC0DD / \uBA48\uCDA4"),"aria-pressed":da,width:"60px",variant:"transparent-white",disabled:M!=="playMode"}),r.jsx(fe,{htmlType:"button",size:32,showTooltipInfo:!0,type:"dot",shape:"pill",useBorder:!1,icon:"square",onClick:qa,ariaLabel:h("training.stop","\uC815\uC9C0"),width:"60px",variant:"transparent-white","aria-hidden":"true",tabIndex:-1,disabled:M!=="playMode"}),Rt>1?r.jsx("div",{ref:y,className:"audio-player__source-buttons",children:Array.from({length:Rt}).map((re,Se)=>r.jsx(fe,{htmlType:"button",size:32,type:"dot",shape:"pill",useBorder:!1,label:String(Se+1),onClick:()=>{try{ro(Se)}catch{}},ariaLabel:h("training.sourcePlay",{n:Se+1}),variant:"transparent-white",selected:Q&&z===Se,disabled:M!=="playMode"||!(Array.isArray(O)&&O[Se]),showTooltipInfo:!0},Se))}):null,!Array.isArray(O)||O.length<=1?r.jsx(fe,{htmlType:"button",size:32,showTooltipInfo:!0,type:"dot",shape:"pill",useBorder:!1,icon:"repeat",onClick:Vt,ariaLabel:h("common.replay","\uB2E4\uC2DC\uB4E3\uAE30"),width:"60px",variant:"transparent-white",disabled:M!=="playMode"}):null,r.jsx(fe,{htmlType:"button",size:32,showTooltipInfo:!0,type:"dot",shape:"pill",useBorder:!1,icon:"skip-forward",onClick:Bo,ariaLabel:h("training.next","\uB2E4\uC74C"),width:"60px",variant:"transparent-white","aria-hidden":!0,tabIndex:-1,disabled:M!=="playMode"}),r.jsx(fe,{htmlType:"button",size:32,showTooltipInfo:!0,type:"dot",shape:"pill",useBorder:!1,icon:"check",onClick:_a,ariaLabel:h("common.done","\uC644\uB8CC"),width:"60px",variant:"transparent-white",disabled:M!=="playMode"})]}),r.jsxs("div",{className:"audio-player__slider",children:[r.jsx("div",{className:ft,ref:x,style:{left:`${Ye}%`},"aria-hidden":"true"}),(c||d)&&r.jsx($B,{segments:oa,progress:X,totalDuration:Z,waveProgressRef:U,showSoundWaveForm:c,leadInMs:u,tailMs:p,trackDurationSec:O?.[z]?.duration??0,noiseSrc:d&&g?.settings.enabled&&De>0?yt:null,noiseRatio:g?Br(g.settings):0,noiseSpeed:g?.settings.speed??1,mainVolume:ce,onReadyChange:ht})]})]}),r.jsx("audio",{ref:f,crossOrigin:"anonymous",preload:"auto"})]}),!c&&r.jsxs("p",{className:"audio-player__no-waveform caption-1",children:[r.jsx(et,{icon:"triangle-alert",size:14}),h("training.noSoundWaveform","\uC18C\uB9AC \uBE44\uAD50 \uBB38\uC81C\uB294 \uC6E8\uC774\uBE0C\uD3FC\uC744 \uD45C\uD604\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.")]}),r.jsx(Ho,{message:we,position:de,onClose:Ya})]})}var VB=".ihabdevteam-core-scope .tooltip-textbox{background:var(--color-deepWhite);border:1px solid var(--color-whiteLine);border-radius:var(--radius-m);box-sizing:border-box;max-width:520px;padding:var(--spacing-content)}.ihabdevteam-core-scope .tooltip-textbox__root{display:flex;flex-direction:column;gap:var(--spacing-xs)}.ihabdevteam-core-scope .tooltip-textbox__box{background:transparent}.ihabdevteam-core-scope .tooltip-textbox__label{color:var(--color-darkGray)}.ihabdevteam-core-scope .tooltip-textbox__text{color:var(--color-darkGray);overflow-wrap:anywhere;white-space:normal;word-break:keep-all}.ihabdevteam-core-scope .tooltip-textbox__line{align-items:center;display:flex;gap:var(--spacing-s);margin-bottom:0;min-height:60px;padding:10px 0}.ihabdevteam-core-scope .tooltip-textbox__line:last-child{margin-bottom:0}.ihabdevteam-core-scope .tooltip-textbox__line:not(:last-child){border-bottom:1px solid var(--color-darkWhite)}.ihabdevteam-core-scope .tooltip-textbox.is-dark .tooltip-textbox__line:not(:last-child){border-bottom-color:hsla(0,0%,100%,.06)}.ihabdevteam-core-scope .tooltip-textbox__marker{--marker-pos:50%;align-items:center;background-color:var(--color-main);background:color-mix(in srgb,var(--color-main) 50%,var(--color-sub) 50%);border:2px solid var(--color-pureWhite);border-radius:var(--radius-sm);box-sizing:border-box;color:#fff;display:inline-flex;height:24px;justify-content:center;min-width:24px}@supports (color:color-mix(in lch,red,blue)) and (top:var(--f )){.ihabdevteam-core-scope .tooltip-textbox__marker{background:color-mix(in srgb,var(--color-main) calc(100% - var(--marker-pos)),var(--color-sub) var(--marker-pos))}}.ihabdevteam-core-scope .tooltip-textbox__line-number{color:#fff;min-width:auto;text-align:center}.ihabdevteam-core-scope .tooltip-textbox__line-text{flex:1 1 auto}.ihabdevteam-core-scope .tooltip-textbox__buttons{align-items:center;display:flex;gap:var(--spacing-xs);justify-content:center;margin-top:10px;position:relative}.ihabdevteam-core-scope .tooltip-textbox.is-dark{background:var(--color-darkGray);border-color:var(--color-gray)}.ihabdevteam-core-scope .tooltip-textbox.is-dark .tooltip-textbox__text{color:var(--color-deepWhite)}";oe(VB);function Er(e){const{t}=_e.useTranslation(),{text:a,label:o,anchorRect:n=null,onClose:i,closeOnOutsideClick:l=!0,isMobilePopup:c=!1}=e||{},[d,u]=s.useState(()=>{try{return localStorage.getItem("tooltip-theme")||"light"}catch{return"light"}});s.useEffect(()=>{try{localStorage.setItem("tooltip-theme",d)}catch{}},[d]);const{increase:p,decrease:h,canIncrease:m,canDecrease:g,fontSize:v,lineHeight:f}=vi({storageKey:"tooltip-fontScale"}),x=s.useCallback(()=>u(k=>k==="dark"?"light":"dark"),[]),_=s.useCallback(k=>{try{k.stopPropagation()}catch{}try{typeof i=="function"&&i()}catch{}},[i]),b=Array.isArray(a)?a:typeof a>"u"||a===null?[]:[a],y={fontSize:`${v}px`,lineHeight:`${f}px`,"--tt-line-height":`${f}px`,"--tt-marker-size":"28px"},C=r.jsxs("div",{className:`tooltip-textbox__root ${d==="dark"?"is-dark":""}`,children:[r.jsxs("div",{className:"tooltip-textbox__box",children:[o&&r.jsx("div",{className:"tooltip-textbox__label body-2b",children:o}),r.jsx("div",{className:"tooltip-textbox__text body-1",style:y,children:b.map((k,w)=>r.jsxs("div",{className:"tooltip-textbox__line",children:[b.length>1?r.jsx("div",{className:"tooltip-textbox__marker",children:r.jsx("span",{className:"tooltip-textbox__line-number button-1",children:w+1})}):null,r.jsx("span",{className:"tooltip-textbox__line-text",children:k})]},w))})]}),r.jsxs("div",{className:"tooltip-textbox__buttons",children:[r.jsx(fe,{htmlType:"button",size:32,showTooltipInfo:!0,type:"dot",useBorder:!1,width:48,icon:"minus",onClick:h,ariaLabel:t("training.fontSizeDecrease","\uAE00\uC790 \uD06C\uAE30 \uAC10\uC18C"),variant:d==="dark"?"transparent-white":"transparent-gray",disabled:!g}),r.jsx(fe,{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:!m}),r.jsx(fe,{htmlType:"button",size:32,showTooltipInfo:!0,type:"dot",useBorder:!1,width:48,icon:d==="dark"?"moon":"sun-medium",onClick:x,ariaLabel:t("training.toggleBackground","\uBC30\uACBD \uC804\uD658"),variant:d==="dark"?"transparent-white":"transparent-gray"}),r.jsx(fe,{htmlType:"button",size:32,showTooltipInfo:!0,type:"dot",useBorder:!1,width:48,icon:"x",onClick:_,ariaLabel:t("common.close","\uB2EB\uAE30"),variant:d==="dark"?"transparent-white":"transparent-gray"})]})]});return n?r.jsx(xa,{anchorRect:n,className:`tooltip-textbox ${d==="dark"?"is-dark":""}`,onClose:i,closeOnOutsideClick:l,isMobilePopup:c,ariaLabel:o||t("tooltip.textbox","\uBCF8\uBB38"),children:C}):r.jsx("div",{className:`tooltip-textbox ${d==="dark"?"is-dark":""}`,children:C})}var WB=".ihabdevteam-core-scope .training-page-bottom{box-sizing:border-box;width:100%}.ihabdevteam-core-scope .pp-bottom{align-items:center;background:var(--color-deepWhite);border-top:1px solid var(--color-whiteLine);box-sizing:border-box;display:flex;flex:0 0 auto;gap:var(--spacing-s);justify-content:space-between;padding:12px 18px calc(12px + env(safe-area-inset-bottom));width:100%;z-index:5}.ihabdevteam-core-scope .pp-bottom__left{align-items:center;display:flex;gap:var(--spacing-m)}.ihabdevteam-core-scope .pp-bottom__right{align-items:center;display:flex;gap:8px}.ihabdevteam-core-scope .pp-bottom__meters{border:1px solid var(--color-whiteLine);border-radius:14px;display:flex;flex-direction:column;gap:2px;justify-content:center;padding:8px 12px}.ihabdevteam-core-scope .pp-bottom__meter{align-items:center;display:flex;flex-direction:row;gap:var(--spacing-xs)}.ihabdevteam-core-scope .pp-bottom__meter-label{color:var(--color-gray);min-width:28px}.ihabdevteam-core-scope .pp-bottom__settings--desktop{display:none}.ihabdevteam-core-scope .pp-bottom__settings--mobile{display:flex}@media (min-width:768px){.ihabdevteam-core-scope .pp-bottom__settings--desktop{display:block}.ihabdevteam-core-scope .pp-bottom__settings--mobile{display:none}}.ihabdevteam-core-scope .pp-bottom__tooltip-trigger{display:inline-block}.ihabdevteam-core-scope .pp-bottom__meters--floating{display:flex;flex-direction:column;gap:var(--spacing-xs)}.ihabdevteam-core-scope .pp-bottom__meter-trigger{display:inline-flex;flex-shrink:0}.ihabdevteam-core-scope .training-steps{box-sizing:border-box;display:flex;flex-direction:column;overflow:visible;width:100%}.ihabdevteam-core-scope .training-step{align-items:stretch;box-sizing:border-box;display:flex;flex-direction:row;flex-wrap:nowrap;gap:var(--spacing-m);overflow:visible;width:100%}.ihabdevteam-core-scope .training-step__content{box-sizing:border-box;display:flex;flex:1 1 auto;flex-direction:column;gap:var(--spacing-s);gap:var(--spacing-m);min-width:0;overflow:visible;width:100%}.ihabdevteam-core-scope .training-step__title{color:#0b2b35;color:var(--text,#0b2b35);margin:0;text-align:left}.ihabdevteam-core-scope .training-step__buttons{-ms-overflow-style:none;align-items:stretch;display:flex;flex-direction:row;gap:var(--spacing-content);overflow-x:auto;scrollbar-width:none;width:100%}.ihabdevteam-core-scope .training-step__buttons::-webkit-scrollbar{display:none}.ihabdevteam-core-scope .training-step__buttons>*{align-self:stretch;flex:1 1 0;margin:0;min-width:0}.ihabdevteam-core-scope .training-step__buttons.training-step__buttons--wrap-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));overflow-x:visible}.ihabdevteam-core-scope .training-step__buttons.training-step__buttons--wrap-3>*{width:100%}.ihabdevteam-core-scope .training-step__buttons .button{align-items:center;align-self:stretch;display:flex}@media (max-width:640px){.ihabdevteam-core-scope .training-step{flex-direction:row;gap:10px}}.ihabdevteam-core-scope .training-step__cards{box-sizing:border-box;display:flex;gap:var(--spacing-s);width:100%}@media (max-width:767px){.ihabdevteam-core-scope .training-step__cards{grid-gap:var(--spacing-s);display:grid;gap:var(--spacing-s);grid-template-columns:repeat(3,1fr)}}.ihabdevteam-core-scope .training-step__listen-sticky{width:100%}.ihabdevteam-core-scope .training-step.training-step--has-nested .training-step__content{margin-bottom:100px}.ihabdevteam-core-scope .training-steps>.training-step:last-child .training-step__content{margin-bottom:0}.ihabdevteam-core-scope .training-step:not(.training-step--last) .training-step__content{margin-bottom:var( --margin-page)}.ihabdevteam-core-scope .training-step.training-step--last .training-step__content{margin-bottom:0}";oe(WB);var GB='.ihabdevteam-core-scope .ts-bullet{--dot-size:28px;--dot-gap:10px;align-items:center;align-self:stretch;display:flex;flex-direction:column;justify-content:flex-start;position:relative;width:28px;width:var(--dot-size)}.ihabdevteam-core-scope .bullet__dot{align-items:center;border:2px solid rgba(43,138,125,.12);border-radius:50%;display:flex;height:var(--dot-size);justify-content:center;width:var(--dot-size);z-index:2}.ihabdevteam-core-scope .bullet__icon{align-items:center;color:var(--color-darkGray);display:inline-flex;height:20px;justify-content:center;position:relative;width:20px;z-index:1}.ihabdevteam-core-scope .bullet__icon-img{display:block;height:100%;-o-object-fit:contain;object-fit:contain;width:100%}.ihabdevteam-core-scope .bullet__icon-mask{background-color:currentColor;height:100%;-webkit-mask-image:var(--icon-url);mask-image:var(--icon-url);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;width:100%}.ihabdevteam-core-scope .bullet__icon-svg svg{fill:currentColor;height:100%;width:100%}.ihabdevteam-core-scope .ts-bullet__line{background:var(--color-whiteLine);border-radius:var(--radius-xs);bottom:20px;left:50%;position:absolute;top:calc(var(--dot-size) + var(--dot-gap));transform:translateX(-50%);width:2px;z-index:1}.ihabdevteam-core-scope .ts-bullet--done .bullet__icon{color:transparent}.ihabdevteam-core-scope .ts-bullet--active .bullet__icon{color:#fff}.ihabdevteam-core-scope .ts-bullet--disabled .bullet__icon{color:transparent}.ihabdevteam-core-scope .ts-bullet--done .bullet__dot{border:2px solid var(--color-main)}.ihabdevteam-core-scope .ts-bullet--active .bullet__dot{background-color:var(--color-main);position:relative}.ihabdevteam-core-scope .ts-bullet--active .bullet__dot:after,.ihabdevteam-core-scope .ts-bullet--active .bullet__dot:before{animation:bullet-ripple 3s cubic-bezier(.2,.6,.2,1) infinite;background:var(--color-main);border-radius:50%;content:"";inset:0;opacity:.5;pointer-events:none;position:absolute}.ihabdevteam-core-scope .ts-bullet--active .bullet__dot:after{animation-delay:1.5s;opacity:.3}@keyframes bullet-ripple{0%{opacity:.5;transform:scale(1)}to{opacity:0;transform:scale(2.2)}}.ihabdevteam-core-scope .ts-bullet--disabled .bullet__dot{border:2px solid var(--color-whiteLine)}.ihabdevteam-core-scope .ts-bullet--done .bullet__line{background-color:var(--color-main)}.ihabdevteam-core-scope .ts-bullet--active .bullet__line,.ihabdevteam-core-scope .ts-bullet--disabled .bullet__line{background-color:var(--color-whiteLine)}.ihabdevteam-core-scope .training-step--last .ts-bullet__line,.ihabdevteam-core-scope .training-step.training-step--last .ts-bullet__line{display:none}@media (max-width:1024px){.ihabdevteam-core-scope .ts-bullet{--dot-size:26px}}@media (max-width:768px){.ihabdevteam-core-scope .ts-bullet{--dot-size:24px}}';oe(GB);function Du({state:e="disabled"}){const{t}=_e.useTranslation();return r.jsxs("div",{className:`ts-bullet ts-bullet--${e}`,"aria-hidden":!0,children:[r.jsx("div",{className:"bullet__dot",children:r.jsx(et,{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})}),r.jsx("div",{className:"ts-bullet__line"})]})}function Vf(e,t,a){const o=s.useRef(t),n=s.useRef(a);s.useEffect(()=>{o.current=t,n.current=a}),s.useEffect(()=>{if(!e||typeof document>"u")return;let i=null,l=10;const c=()=>{i=null;const d=o.current(),u=d?Array.from(d.querySelectorAll(za)).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=n.current();if(u)try{u.focus()}catch{}}}},[e])}var UB=".ihabdevteam-core-scope .training-step__title-row{align-items:center;display:flex;gap:var(--spacing-xs);padding-right:72px;position:relative;width:100%}.ihabdevteam-core-scope .training-step__title-row .training-step__title{color:var(--color-black);margin:0;padding:0}.ihabdevteam-core-scope .training-step__title--faded .training-step__title-text{background-color:var(--color-darkWhite);border-radius:var(--radius-xs);color:transparent;opacity:1;transition:color .14s ease,opacity .14s ease}.ihabdevteam-core-scope .training-step__title-row .title-controls{align-items:center;display:flex;gap:6px;margin-left:auto}.ihabdevteam-core-scope .training-step__title-row .title-controls .title-buttons{align-items:center;display:inline-flex;gap:6px;justify-content:center;overflow:visible;position:absolute;right:0;top:50%;transform:translateY(-50%)}.ihabdevteam-core-scope .training-step__title-row .title-controls .title-buttons .button28{align-items:center;display:inline-flex;justify-content:center}.ihabdevteam-core-scope .training-step__title-row--disabled .training-step__title,.ihabdevteam-core-scope .training-step__title-row--done .training-step__title{pointer-events:none}.ihabdevteam-core-scope .training-step__title-row--disabled .title-controls{opacity:.6;pointer-events:none}.ihabdevteam-core-scope .training-step__title-row--active .title-controls,.ihabdevteam-core-scope .training-step__title-row--done .title-controls{opacity:1;pointer-events:auto}.ihabdevteam-core-scope .training-step__title-row--disabled .training-step__title,.ihabdevteam-core-scope .training-step__title-row--done .training-step__title{color:var(--color-disabled)}.ihabdevteam-core-scope .training-step__title-row--active .training-step__title{color:var(--color-black)}";oe(UB);function Nu({title:e,children:t,className:a="",state:o="disabled",usePreviewTextBtn:n=!1,onPreviewTextBtn:i,previewText:l=null,useFaded:c,usePlayAllBtn:d=!1,onPlayAll:u,playAllActive:p=!1}){const{t:h}=_e.useTranslation(),m=la("(max-width: 767px)"),g=`training-step__title h4 ${c&&o==="disabled"?"training-step__title--faded":""} ${a}`.trim(),v=`training-step__title-row training-step__title-row--${o}`.trim(),f=s.useRef(null),[x,_]=s.useState(!1),[b,y]=s.useState(null),[C,k]=s.useState(null);Vf(x&&!!b,()=>{if(typeof document>"u")return null;const D=Array.from(document.querySelectorAll(".tooltip-content"));for(let T=D.length-1;T>=0;T--)if(D[T].querySelector(".tooltip-textbox__root"))return D[T];return null},()=>f.current?.querySelector("button")??null);const w=s.useRef(i);s.useEffect(()=>{w.current=i});const A=s.useMemo(()=>l==null?"":typeof l=="string"||typeof l=="number"?String(l):Array.isArray(l)&&l.every(D=>typeof D=="string"||typeof D=="number")?l.join(""):"",[l]),B=s.useCallback(()=>{_(!1),y(null),k(null)},[]);s.useEffect(()=>{if(!x)return;let D;try{typeof w.current=="function"&&(D=w.current())}catch{}if(D===!1){B();return}k(typeof D<"u"&&D!==null?D:null)},[A]);const S=s.useCallback(()=>{let D;try{typeof i=="function"&&(D=i())}catch{}if(D!==!1){if(k(typeof D<"u"&&D!==null?D:l),!f.current){_(T=>!T);return}if(x)_(!1),y(null),k(null);else{const T=f.current.getBoundingClientRect();y(T),_(!0)}}},[i,l,x]);return r.jsxs("div",{className:v,children:[r.jsx("p",{className:g,children:r.jsx("span",{className:"training-step__title-text",children:e??t})}),n||d?r.jsxs("div",{className:"title-controls",children:[r.jsxs("div",{className:"title-buttons",children:[d&&r.jsx(fe,{htmlType:"button",size:32,type:m?"dot":"bar",icon:"play-circle",label:m?void 0:h("training.playAll","\uBAA8\uB450 \uB4E3\uAE30"),ariaLabel:h("training.playAll","\uBAA8\uB450 \uB4E3\uAE30"),selected:p,onClick:u,variant:o==="disabled"?"disabled":"default",disabled:o==="disabled"||p,onDisabledClick:p&&o!=="disabled"?()=>{}:void 0}),n&&r.jsx("div",{ref:f,children:r.jsx(fe,{htmlType:"button",size:32,type:m?"dot":"bar",icon:"eye",label:m?void 0:h("training.sentencePreview","\uBB38\uC7A5 \uBBF8\uB9AC\uBCF4\uAE30"),ariaLabel:h("training.sentencePreview","\uBB38\uC7A5 \uBBF8\uB9AC\uBCF4\uAE30"),onClick:S,className:x?"is-selected":void 0,"aria-expanded":x,"aria-haspopup":"dialog",variant:o==="disabled"?"disabled":"default",disabled:!l&&typeof i!="function"})})]}),x&&r.jsx(Er,{text:C??l,label:h("training.sentencePreview","\uBB38\uC7A5 \uBBF8\uB9AC\uBCF4\uAE30"),anchorRect:b,onClose:B,closeOnOutsideClick:!1,isMobilePopup:!0})]}):null]})}function Tu(e,t){return typeof t!="number"||typeof e!="number"?"disabled":e<t?"done":e===t?"active":"disabled"}function _o({index:e,stepIndex:t,isLast:a=!1,title:o="",titleProps:n={},children:i,className:l="",onDone:c=void 0,useTitleFaded:d=void 0}){const{t:u}=_e.useTranslation(),[p,h]=s.useState(()=>Tu(e,t));s.useEffect(()=>{const k=Tu(e,t);if(k!==p){const w=setTimeout(()=>h(k),0);return()=>clearTimeout(w)}},[e,t,p]);const m=s.useCallback((...k)=>{Tu(e,t)==="done"||p==="done"||typeof c=="function"&&c(...k)},[e,t,p,c]),[g,v]=s.useState(!1),[f,x]=s.useState({text:"",label:"\uBB38\uC7A5 \uB4E3\uAE30",anchorRect:null,backdrop:!1,alignX:null,alignY:null}),_=s.useCallback(k=>{if(!k)return null;try{const w=k;if(typeof k=="object"&&(w.currentTarget||w.target)&&(w.nativeEvent||w.type)){const S=w.currentTarget??w.target;if(S&&typeof S.getBoundingClientRect=="function")return S.getBoundingClientRect()}if(k instanceof DOMRect)return k;const A=k;if(A&&typeof A.getBoundingClientRect=="function")return A.getBoundingClientRect();const B=k?.current;return B&&typeof B.getBoundingClientRect=="function"?B.getBoundingClientRect():null}catch{return null}},[]),b=s.useCallback((k,{text:w="",label:A="\uBB38\uC7A5 \uB4E3\uAE30",backdrop:B=!1,alignX:S="center",alignY:D="top"}={})=>{const T=_(k);x({text:w,label:A,anchorRect:T,backdrop:B,alignX:S,alignY:D}),v(!0)},[_]),y=s.useCallback(()=>{v(!1),x(k=>({...k,anchorRect:null}))},[]),C=s.Children.map(i,k=>{if(s.isValidElement(k)){const w=k;if(typeof w.type=="string")return w;const A=w.props??{},B=typeof A.onDone=="function"?A.onDone:m,S=typeof A.disabled=="boolean";let D=p==="disabled";return S&&(D=!!A.disabled),s.cloneElement(w,{onDone:B,disabled:D,showTooltip:b,hideTooltip:y})}return k});return r.jsxs("div",{className:`training-step training-step--${p} ${a?"training-step--last":""} ${l}`,"aria-current":p==="active",children:[r.jsx(Du,{state:p}),r.jsxs("div",{className:"training-step__content",children:[r.jsx(Nu,{state:p,title:o,...n,useFaded:d}),C]}),g?r.jsx(xa,{anchorRect:f.anchorRect,backdrop:f.backdrop,onClose:y,ariaLabel:u("tooltip.textbox","\uBCF8\uBB38"),children:r.jsx(Er,{text:f.text,onClose:y})}):null]})}var qB='.ihabdevteam-core-scope .training-text-box{background:var(--color-darkWhite);border:1px solid var(--color-deepWhite);border-radius:var(--radius-m);color:var(--color-black);display:flex;flex-direction:column;max-width:100%;min-height:160px;overflow:visible;overflow-wrap:anywhere;padding:var(--spacing-content);position:relative;text-align:center;word-break:keep-all}.ihabdevteam-core-scope .training-text-box--disabled{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.ihabdevteam-core-scope .training-text-box--disabled .training-text-box__inner{visibility:hidden}.ihabdevteam-core-scope .training-text-box--disabled:after{content:"";pointer-events:none;position:absolute;z-index:5}.ihabdevteam-core-scope .training-text-box__preview{align-items:center;display:flex;justify-content:center;left:50%;pointer-events:auto;position:absolute;top:50%;transform:translate(-50%,-50%);z-index:60}.ihabdevteam-core-scope .training-text-box__buttons{border-radius:999px;gap:4px;height:28px;left:0;right:0}.ihabdevteam-core-scope .training-text-box__area,.ihabdevteam-core-scope .training-text-box__buttons{align-items:center;box-sizing:border-box;display:flex;justify-content:center;pointer-events:auto;position:relative;z-index:40}.ihabdevteam-core-scope .training-text-box__area{flex:1 1 auto;margin:0 auto;min-height:0;text-align:center;width:100%}.ihabdevteam-core-scope .training-text-box--active,.ihabdevteam-core-scope .training-text-box--done{background-color:var(--color-white);border-color:var(--color-main);pointer-events:auto;transition:box-shadow .18s ease,transform .18s ease,opacity .16s ease;-webkit-user-select:auto;-moz-user-select:auto;user-select:auto}.ihabdevteam-core-scope .training-text-box.is-dark{background:var(--color-darkGray);border:1px solid var(--color-black);color:var(--color-deepWhite)}.ihabdevteam-core-scope .training-text-box .training-text-box__inner{display:block;overflow-wrap:anywhere;text-align:center;white-space:normal;width:100%;word-break:keep-all}.ihabdevteam-core-scope .training-text-box.is-dark .tooltip-textbox__text,.ihabdevteam-core-scope .training-text-box.is-dark .training-text-box__inner{color:var(--color-deepWhite)}';oe(qB);function ju({context:e,state:t="disabled",theme:a="light"}){const{t:o}=_e.useTranslation(),[n,i]=s.useState("disabled"),[l,c]=s.useState(()=>{try{return localStorage.getItem("tooltip-theme")||a}catch{return a}});s.useEffect(()=>{try{localStorage.setItem("tooltip-theme",l)}catch{}},[l]);const d=()=>c(L=>L==="dark"?"light":"dark"),{increase:u,decrease:p,canIncrease:h,canDecrease:m,fontSize:g,lineHeight:v}=vi({storageKey:"textbox_fontScale"}),[f,x]=s.useState(""),_=s.useRef(null),b=s.useRef(!1),y=s.useCallback(()=>{b.current=Vi()&&!!_.current&&_.current.contains(document.activeElement),i("active")},[]),C=s.useCallback(()=>x(""),[]),k=L=>{try{x(L)}catch{}},w=typeof navigator<"u"&&/Mobi|Android/i.test(navigator.userAgent||"");s.useEffect(()=>{if(t!=="disabled"){const L=setTimeout(()=>i(t),0);return()=>clearTimeout(L)}},[t]);const A=s.useMemo(()=>e&&typeof e=="object"?String(e.sentence??e.text??""):typeof e=="string"?e:"",[e]),[B,S]=s.useState(A);B!==A&&(S(A),i("disabled"));const D=t==="disabled"?n:t,T=D==="disabled"?"training-text-box--disabled":D==="active"?"training-text-box--active":D==="done"?"training-text-box--done":"",I=s.useMemo(()=>({fontSize:`${g}px`,lineHeight:`${v}px`}),[g,v]);return s.useEffect(()=>{if(D==="disabled"||!b.current)return;b.current=!1;const L=document.activeElement;L&&L!==document.body||_.current?.querySelector(".training-text-box__buttons button")?.focus()},[D]),r.jsxs("div",{ref:_,className:`training-text-box ${T} ${D!=="disabled"&&l==="dark"?"is-dark":""}`,children:[D==="disabled"&&r.jsx("div",{className:"training-text-box__preview",children:r.jsx(fe,{htmlType:"button",size:48,type:"bar",onClick:y,icon:"eye",ariaLabel:o("training.sentencePreview","\uBB38\uC7A5 \uBBF8\uB9AC\uBCF4\uAE30"),label:o("training.sentencePreview","\uBB38\uC7A5 \uBBF8\uB9AC\uBCF4\uAE30"),useBorder:!1})}),r.jsx("div",{className:"training-text-box__area","aria-hidden":D==="disabled",children:r.jsx("span",{className:"training-text-box__inner h3",style:I,children:A})}),D!=="disabled"&&r.jsxs("div",{className:"training-text-box__buttons","aria-hidden":D==="disabled",children:[r.jsx(fe,{htmlType:"button",size:32,type:"dot",onClick:p,onDisabledClick:()=>k(o("training.fontSizeMin","\uAE00\uC528 \uD06C\uAE30\uAC00 \uCD5C\uC18C\uC785\uB2C8\uB2E4.")),ariaLabel:o("training.fontSizeDecrease","\uAE00\uC790 \uD06C\uAE30 \uAC10\uC18C"),icon:"minus",variant:l==="dark"?"transparent-white":"transparent-gray",disabled:!m,useBorder:!1,showTooltipInfo:!0,...!w&&{width:"60px"}}),r.jsx(fe,{htmlType:"button",size:32,type:"dot",onClick:u,onDisabledClick:()=>k(o("training.fontSizeMax","\uAE00\uC528 \uD06C\uAE30\uAC00 \uCD5C\uB300\uC785\uB2C8\uB2E4.")),ariaLabel:o("training.fontSizeIncrease","\uAE00\uC790 \uD06C\uAE30 \uC99D\uAC00"),icon:"plus",variant:l==="dark"?"transparent-white":"transparent-gray",disabled:!h,useBorder:!1,showTooltipInfo:!0,...!w&&{width:"60px"}}),r.jsx(fe,{htmlType:"button",size:32,showTooltipInfo:!0,type:"dot",useBorder:!1,width:48,icon:l==="dark"?"moon":"sun-medium",onClick:d,ariaLabel:o("training.toggleBackground","\uBC30\uACBD \uC804\uD658"),variant:l==="dark"?"transparent-white":"transparent-gray"})]}),r.jsx(Ho,{message:f,position:"top",onClose:C})]})}function os({index:e,stepIndex:t,isLast:a=!1,title:o,useTitleFaded:n,onDone:i,onChange:l,answer:c,wrongAnswers:d,choices:u,multiSelect:p=!1,correctCount:h=0,useDisabledCovered:m=!1,choiceIcons:g,shuffleChoices:v=!0}){const{t:f}=_e.useTranslation(),x=o??f("training.selectConfirm","\uBB38\uC81C\uB97C \uBCF4\uACE0 \uD574\uB2F9\uD558\uB294 \uB0B4\uC6A9\uC744 \uC120\uD0DD\uD558\uC138\uC694."),_=typeof e=="number"?e:-1,b=typeof t!="number"?"disabled":_<t?"done":_===t?"active":"disabled",y=Array.isArray(u)&&u.length?u:typeof c<"u"?[c].concat(Array.isArray(d)?d:[]):void 0,C=d?d.join("||"):"",k=u?u.join("||"):"",[w,A]=s.useState(()=>Array.isArray(y)?v?lt(y):y.slice():void 0);s.useEffect(()=>{Array.isArray(y)&&y.length?A(v?lt(y):y.slice()):A(void 0)},[c,C,k,v]);const[B,S]=s.useState(null),[D,T]=s.useState(()=>new Set);s.useEffect(()=>{S(null),T(new Set)},[k,c,C]);const I=s.useRef(void 0);s.useEffect(()=>{const N=I.current;typeof N=="number"&&typeof t=="number"&&typeof e=="number"&&N>=e&&t<e&&(S(null),T(new Set)),I.current=t},[t,e]);const L=s.useCallback(N=>{if(b!=="active")return;const j=w?.[N];if(j==null)return;const H=j,X=b==="active"||b==="done";if(p){const ae=new Set(D),M=ae.has(H);M?ae.delete(H):ae.add(H),T(ae),typeof l=="function"&&l({selectedValues:[...ae],__ts:Date.now()}),X&&(typeof h=="number"&&h>0?ae.size>=h:!M)&&typeof i=="function"&&b==="active"&&i({selectedValues:[...ae],__ts:Date.now()})}else S(H),typeof l=="function"&&l({selectedIndex:N,selectedValue:H,__ts:Date.now()}),X&&typeof i=="function"&&b==="active"&&i({selectedIndex:N,selectedValue:H,__ts:Date.now()})},[w,b,p,l,i,h,D]),V=`training-step__buttons${Array.isArray(w)&&w.length>3?" training-step__buttons--wrap-3":""}`;return r.jsx(_o,{index:e,stepIndex:t,isLast:a,title:x,useTitleFaded:n,children:r.jsx("div",{className:V,children:Array.isArray(w)&&w.length>0?w.map((N,j)=>r.jsx(fe,{htmlType:"button",size:56,type:"bar",onClick:()=>L(j),ariaLabel:String(N),label:N,useLabel:!0,icon:g?g[String(N)]:void 0,variant:"default",disabled:b==="disabled",selected:p?D.has(N):B===N,useDisabledCovered:m,minWidth:0},String(N))):null})})}function rs({index:e,stepIndex:t,isLast:a=!1,title:o,onDone:n,onChange:i,context:l,demoSelected:c}){const{t:d}=_e.useTranslation(),u=o??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,h=typeof t!="number"?"disabled":p<t?"done":p===t?"active":"disabled",m=l&&typeof l=="object"?l.sentence||"":typeof l=="string"?l:"",g=l&&typeof l=="object"?l.choices:void 0,[v,f]=s.useState(c??null),x=`${String(m)}\0${JSON.stringify(g??null)}`,[_,b]=s.useState(x);_!==x&&(b(x),c==null&&f(null));const[y,C]=s.useState(c);Object.is(y,c)||(C(c),f(c??null));const k=s.useRef(void 0);s.useEffect(()=>{const S=k.current;typeof S=="number"&&typeof t=="number"&&typeof e=="number"&&S>=e&&t<e&&c==null&&f(null),k.current=t},[t,e,c]);const w=s.useCallback(S=>{const D=typeof S=="object"&&S!==null?Object.assign({},S,{__ts:Date.now()}):{value:S,__ts:Date.now()};typeof i=="function"&&i(D),h==="active"&&typeof n=="function"&&n(D)},[i,h,n]),A=s.useCallback(()=>{h==="active"&&(f(!1),w(!1))},[w,h]),B=s.useCallback(()=>{h==="active"&&(f(!0),w(!0))},[w,h]);return r.jsxs(_o,{index:e,stepIndex:t,isLast:a,title:u,onDone:n,useTitleFaded:!1,children:[r.jsx(ju,{context:l,state:h}),r.jsx("div",{className:"training-step__buttons",children:Array.isArray(g)&&g.length>0?g.slice(0,6).map((S,D)=>r.jsx(fe,{htmlType:"button",size:56,type:"bar",onClick:()=>{h==="active"&&(f(D),w&&w(D))},disabled:h==="disabled",ariaLabel:String(S),label:S,variant:h,selected:v===D},D)):r.jsxs(r.Fragment,{children:[r.jsx(fe,{htmlType:"button",size:56,type:"bar",onClick:A,disabled:h==="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}),r.jsx(fe,{htmlType:"button",size:56,type:"bar",onClick:B,disabled:h==="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 ns({index:e,stepIndex:t,isLast:a=!1,title:o,onDone:n,btnLabel:i,soundSrc:l,bucketPath:c,usePreviewTextBtn:d,previewText:u=null,onPreviewTextBtn:p,disabled:h,_pageIndex:m,showSoundWaveForm:g,showNoiseWaveForm:v,leadInMs:f,tailMs:x}){const{t:_}=_e.useTranslation(),b=o??_("training.listenTitle","\uC81C\uC2DC\uD558\uB294 \uBB38\uC7A5\uC744 \uB4E4\uC5B4\uC8FC\uC138\uC694."),y=h??(typeof t=="number"&&typeof e=="number"?e>t:!1);return r.jsx(_o,{index:e,stepIndex:t,isLast:a,title:b,onDone:n,titleProps:{usePreviewTextBtn:d,previewText:u,onPreviewTextBtn:p},children:r.jsx(En,{soundSrc:l,ttsText:l?null:u??b,bucketPath:c,btnLabel:i||_("training.listenButton","\uBB38\uC7A5 \uB4E3\uAE30"),disabled:y,className:"training-step__listen-sticky",showSoundWaveForm:g,showNoiseWaveForm:v,leadInMs:f,tailMs:x},`audio-p${m??0}-s${e}`)})}var YB=".ihabdevteam-core-scope .page-popup--closing{opacity:0;pointer-events:none;transition:opacity .16s ease}.ihabdevteam-core-scope .page-popup__panel{overflow:auto}.ihabdevteam-core-scope .page-popup__close{font-size:20px;right:12px;top:10px}.ihabdevteam-core-scope .page-popup{align-items:stretch;display:flex;inset:0;justify-content:center;position:fixed;z-index:var(--z-page-popup)}.ihabdevteam-core-scope .page-popup__panel{background:var(--color-deepWhite);border-radius:0;box-shadow:none;color:var(--color-black);display:flex;flex-direction:column;height:100%;max-height:none;max-width:none;overflow:hidden;position:relative;width:100%}.ihabdevteam-core-scope .page-popup__scroll{-webkit-overflow-scrolling:touch;align-items:flex-start;display:flex;flex:1 1 0;justify-content:center;min-height:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;scrollbar-color:rgba(0,0,0,.15) transparent;scrollbar-width:thin;touch-action:pan-y}.ihabdevteam-core-scope .page-popup__scroll::-webkit-scrollbar{width:4px}.ihabdevteam-core-scope .page-popup__scroll::-webkit-scrollbar-track{background:transparent}.ihabdevteam-core-scope .page-popup__scroll::-webkit-scrollbar-thumb{background:rgba(0,0,0,.15);border-radius:var(--radius-xs)}.ihabdevteam-core-scope .page-popup__scroll::-webkit-scrollbar-thumb:hover{background:rgba(0,0,0,.28)}.ihabdevteam-core-scope .page-popup__panel--measuring .page-popup__scroll{opacity:0;pointer-events:none}.ihabdevteam-core-scope .page-popup__scroll{transition:opacity .12s ease}.ihabdevteam-core-scope .nt-debug{background:rgba(0,0,0,.03);border-radius:var(--radius-sm);color:var(--text,var(--color-black));font-family:monospace;font-size:12px;line-height:1.2;max-width:300px;padding:8px 10px;position:absolute;right:20px;top:84px;white-space:pre-wrap;z-index:calc(var(--z-page-popup) + 1)}.ihabdevteam-core-scope .page-popup--backdrop{display:none}.ihabdevteam-core-scope .page-popup__close{background:transparent;border:none;color:var(--text,var(--color-black));cursor:pointer;font-size:22px;line-height:1;position:absolute;right:14px;top:12px}.ihabdevteam-core-scope .page-popup__panel>*{box-sizing:border-box}.ihabdevteam-core-scope .page-popup__body{padding:16px 20px}.ihabdevteam-core-scope .page-popup__content{box-sizing:border-box;margin:0 auto;max-width:800px;min-width:0;padding:var(--spacing-page);width:100%}.ihabdevteam-core-scope .page-popup__content--full{max-width:none;padding:0}.ihabdevteam-core-scope .page-popup__content--center{margin-bottom:auto;margin-top:auto}.ihabdevteam-core-scope .pp-empty{color:var(--color-gray);padding:24px 0;text-align:center;width:100%}.ihabdevteam-core-scope .page-popup__content .training-steps{box-sizing:border-box;min-width:0;width:100%}.ihabdevteam-core-scope .page-popup__bottom,.ihabdevteam-core-scope .page-popup__top{flex-shrink:0}.ihabdevteam-core-scope .page-popup__panel--center .page-popup__scroll{align-items:center}.ihabdevteam-core-scope .page-popup--result-empty{background:var(--color-deepWhite)}.ihabdevteam-core-scope .page-popup__empty{align-items:center;color:var(--color-gray);display:flex;flex-direction:column;justify-content:center;padding:2rem;text-align:center;width:100%}";oe(YB);var KB=".ihabdevteam-core-scope .order-list{display:flex;flex-direction:column;gap:var(--spacing-xs)}.ihabdevteam-core-scope .order-list__item{align-items:flex-start;display:flex;gap:var(--spacing-s)}.ihabdevteam-core-scope .order-list__draggable{align-items:center;border-radius:var(--radius-m);display:flex;flex:1;gap:var(--spacing-xs);justify-content:space-between;min-height:60px;padding:0 0 0 4px;will-change:transform}.ihabdevteam-core-scope .order-list__item-text{color:var(--color-black)}.ihabdevteam-core-scope .order-list__item-buttons{align-items:center;align-self:center;display:inline-flex;gap:2px}@media (max-width:600px){.ihabdevteam-core-scope .order-list__item-buttons{align-items:center;align-self:center;display:flex;flex-direction:column}.ihabdevteam-core-scope .order-list__item-buttons>*{box-sizing:border-box;display:inline-flex}}.ihabdevteam-core-scope .order-list__item.correct{border:1px solid var(--color-main)}.ihabdevteam-core-scope .order-list__slot{align-items:center;background-color:var(--color-darkWhite);border-radius:var(--radius-m);box-sizing:border-box;display:flex;gap:var(--spacing-xs);height:auto;padding:4px 10px;width:100%}.ihabdevteam-core-scope .order-list__marker{--marker-pos:50%;align-items:center;background-color:var(--color-main);background:color-mix(in srgb,var(--color-main) 50%,var(--color-sub) 50%);border:2px solid var(--color-pureWhite);border-radius:var(--radius-sm);box-sizing:border-box;color:#fff;display:inline-flex;height:24px;justify-content:center;width:24px}@supports (color:color-mix(in lch,red,blue)) and (top:var(--f )){.ihabdevteam-core-scope .order-list__marker{background:color-mix(in srgb,var(--color-main) calc(100% - var(--marker-pos)),var(--color-sub) var(--marker-pos))}}@media (max-width:600px){.ihabdevteam-core-scope .order-list__marker{height:24px;min-width:24px;width:24px}}.ihabdevteam-core-scope .order-list__item:hover .order-list__slot{background-color:var(--color-deepWhite);box-shadow:inset 0 0 0 1px var(--color-main);transition:box-shadow .16s cubic-bezier(.22,.9,.39,1)}.ihabdevteam-core-scope .order-list__item.drag-over .order-list__slot{background-color:var(--color-white);box-shadow:inset 0 0 0 1px var(--color-main)}.ihabdevteam-core-scope .order-list__slot.pulse{background-color:var(--color-white);transition:background-color .42s cubic-bezier(.22,.9,.39,1)}.ihabdevteam-core-scope .order-list__slot.pulse.to-dark{background-color:var(--color-darkWhite)}.ihabdevteam-core-scope .order-list__slot-number{align-items:center;align-self:center;border-radius:var(--radius-sm);color:#fff;display:inline-flex;height:32px;justify-content:center;width:32px}.ihabdevteam-core-scope .order-list__draggable.dragging{background-color:var(--color-white);opacity:.2}.ihabdevteam-core-scope .order-list__dragging-object{align-items:center;background:var(--color-white);border-radius:var(--radius-m);box-shadow:0 14px 40px rgba(16,24,40,.18);box-sizing:border-box;color:var(--color-black);display:inline-flex;gap:var(--spacing-s);left:0;max-width:calc(100vw - var(--spacing-page)*3);min-height:60px;opacity:1;overflow-wrap:anywhere;padding:20px;pointer-events:none;position:fixed;top:0;transform:translate3d(-9999px,-9999px,0) scale(1);transition:transform .16s cubic-bezier(.22,.9,.39,1),opacity .18s ease;white-space:normal;width:auto;will-change:transform,opacity;word-break:keep-all;z-index:var(--z-popover)}.ihabdevteam-core-scope .order-list__dragging-object--visible{opacity:1}.ihabdevteam-core-scope .order-list__item.drag-over .order-list__slot:hover{background-color:var(--color-white);border-radius:var(--radius-m);box-shadow:inset 0 0 0 1px var(--color-main);transition:box-shadow .16s cubic-bezier(.22,.9,.39,1)}.ihabdevteam-core-scope .order-list__item-text{display:block;line-height:1.4;margin:0;overflow-wrap:anywhere;white-space:normal;width:100%;word-break:keep-all}.ihabdevteam-core-scope .order-list__draggable[data-disabled=true],.ihabdevteam-core-scope .order-list__draggable[draggable=false]{background-color:var(--color-darkWhite);box-shadow:none!important;cursor:default;opacity:.9;pointer-events:none}.ihabdevteam-core-scope .order-list__draggable[data-disabled=true] .order-list__item-text,.ihabdevteam-core-scope .order-list__draggable[draggable=false] .order-list__item-text{color:var(--color-gray);display:none!important;opacity:.9}.ihabdevteam-core-scope .order-list__draggable[data-disabled=true] .order-list__item-buttons,.ihabdevteam-core-scope .order-list__draggable[data-disabled=true]~.order-list__slot .order-list__slot-number,.ihabdevteam-core-scope .order-list__draggable[draggable=false] .order-list__item-buttons,.ihabdevteam-core-scope .order-list__draggable[draggable=false]~.order-list__slot .order-list__slot-number,.ihabdevteam-core-scope .order-list__slot-number[hidden]{display:none!important}.ihabdevteam-core-scope .order-list__draggable[data-disabled=true] .order-list__slot,.ihabdevteam-core-scope .order-list__draggable[data-disabled=true]+.order-list__slot,.ihabdevteam-core-scope .order-list__draggable[draggable=false] .order-list__slot,.ihabdevteam-core-scope .order-list__draggable[draggable=false]+.order-list__slot,.ihabdevteam-core-scope .order-list__slot[data-disabled=true]{background-color:var(--color-darkWhite)!important;box-shadow:none!important}.ihabdevteam-core-scope .order-list__slot[data-disabled=true]{cursor:default!important;pointer-events:none!important}.ihabdevteam-core-scope .order-list__slot[data-disabled=true] .order-list__slot-number{display:none!important}";oe(KB);const ZB=[];function is({index:e,stepIndex:t,isLast:a=!1,title:o,onDone:n,onChange:i,context:l=ZB}){const{t:c}=_e.useTranslation(),d=o??c("training.orderListDefault","\uBB38\uC7A5\uC744 \uB4E4\uC740 \uC21C\uC11C\uB300\uB85C \uBC30\uCE58\uD558\uC138\uC694."),u=O=>typeof O=="string"?O:O&&(O.context||O.sentence||O.question||"")||"",[p,h]=s.useState(Array.isArray(l)?l:[]),[m,g]=s.useState(()=>(p||[]).map((O,E)=>({id:E,text:u(O)}))),v=s.useMemo(()=>typeof t!="number"||typeof e!="number"?"disabled":e<t?"done":e===t?"active":"disabled",[t,e]),f=v!=="disabled",x=s.useRef(void 0);s.useEffect(()=>{if(x.current===l)return;x.current=l;const O=Array.isArray(l)?l:[];h(O);const E=(F=>{const R=(F||[]).map((K,Z)=>({id:Z,text:u(K)}));if(R.length<=1)return R;const z=(K,Z)=>{if(K.length!==Z.length)return!1;for(let ie=0;ie<K.length;ie++)if(K[ie].text!==Z[ie].text)return!1;return!0};let W=lt(R),Q=0;for(;z(W,R)&&Q<20;)W=lt(R),Q+=1;return W})(O);g(E);try{if(typeof i=="function"){const F=E.filter((R,z)=>R.text===u(O[z])).length;i({shuffled:E,score:F,total:(O||[]).length,initial:!0,__ts:Date.now()})}if(typeof n=="function"&&v==="active"){const F=E.filter((R,z)=>R.text===u(O[z])).length;n({shuffled:E,score:F,total:(O||[]).length,initial:!0,__ts:Date.now()})}}catch{}},[l]);const _=(O,E)=>{const F=[...m],R=O+E;if(R<0||R>=F.length)return;const z=F[R];F[R]=F[O],F[O]=z,j(F);try{if(typeof n=="function"&&v==="active"){const W=F.filter((Q,K)=>Q.text===u(p[K])).length;n({shuffled:F,score:W,total:(p||[]).length,__ts:Date.now()})}}catch{}},[b,y]=s.useState(null),C=s.useRef(null),k=s.useRef(null),w=s.useRef(null),A=s.useRef(null),B=s.useRef(null),S=s.useRef({x:0,y:0}),D=s.useRef(null),T=s.useRef({dx:0,dy:0}),I=()=>{if(D.current!==null)return;const O=()=>{if(!C.current){D.current=null;return}D.current=requestAnimationFrame(O);const E=S.current,F=T.current||{dx:0,dy:0};C.current&&(C.current.style.transform=`translate3d(${E.x-F.dx}px, ${E.y-F.dy}px, 0)`)};D.current=requestAnimationFrame(O)},L=s.useRef(new Map),V=s.useRef(new Map),N=()=>{const O=new Map;return L.current.forEach((E,F)=>{E&&E.getBoundingClientRect&&O.set(F,E.getBoundingClientRect())}),O},j=O=>{const E=N();g(O);try{if(typeof i=="function"){const F=O.filter((R,z)=>R.text===u(p[z])).length;i({shuffled:O,score:F,total:(p||[]).length,__ts:Date.now()})}}catch{}requestAnimationFrame(()=>{const F=N();O.forEach(R=>{const z=E.get(R.id),W=F.get(R.id),Q=L.current.get(R.id);if(!Q||!z||!W)return;const K=z.top-W.top;K&&(Q.style.transition="none",Q.style.transform=`translateY(${K}px)`,requestAnimationFrame(()=>{Q.style.transition="transform 420ms cubic-bezier(.22,.9,.39,1)",Q.style.transform="";const Z=()=>{Q.style.transition="",Q.removeEventListener("transitionend",Z)};Q.addEventListener("transitionend",Z)}))})})},H=(O,E)=>{try{try{E.dataTransfer?.setData("text/plain",String(O))}catch{}try{E.dataTransfer&&(E.dataTransfer.effectAllowed="move")}catch{}try{const F=document.createElement("div");F.style.cssText="position:absolute;top:-9999px;left:-9999px;width:1px;height:1px;opacity:0;pointer-events:none;",document.body.appendChild(F),E.dataTransfer?.setDragImage(F,0,0),requestAnimationFrame(()=>{try{document.body.removeChild(F)}catch{}})}catch{}}catch{}y(O);try{const F=m[O],R=document.createElement("div");R.className="order-list__dragging-object order-list__dragging-object--visible",R.textContent=F&&F.text?F.text:"",document.body.appendChild(R),C.current=R;const z=L.current.get(F.id);let W=E.clientX||0,Q=E.clientY||0;try{if(z&&z.getBoundingClientRect){const De=z.getBoundingClientRect();W=De.left+De.width/2,Q=De.top+De.height/2}}catch{}const K=R.getBoundingClientRect(),Z=K.width/2,ie=K.height/2;T.current={dx:Z,dy:ie},R.style.transition="none",S.current={x:W,y:Q},R.style.transform=`translate3d(${W-Z}px, ${Q-ie}px, 0)`,requestAnimationFrame(()=>{try{R.style.transition=""}catch{}I()});const te=De=>{const q=De;S.current={x:q.clientX,y:q.clientY},I()};w.current=te,document.addEventListener("mousemove",te);const ce=De=>{const q=De;S.current={x:q.clientX,y:q.clientY},I()};k.current=ce,document.addEventListener("dragover",ce);try{E.dataTransfer?.setData("text/plain",String(O));try{E.dataTransfer?.setData("application/json",JSON.stringify({idx:O}))}catch{}}catch{}}catch{}},X=(O,E)=>{E.preventDefault();try{E.dataTransfer&&(E.dataTransfer.dropEffect="move")}catch{}try{B.current!==null&&(clearTimeout(B.current),B.current=null);const F=E.currentTarget&&E.currentTarget.closest?E.currentTarget.closest(".order-list__item"):null;if(F&&A.current!==F){if(A.current)try{A.current.classList.remove("drag-over")}catch{}try{F.classList.add("drag-over")}catch{}A.current=F}}catch{}},ae=(O,E)=>{E.preventDefault();const F=E.dataTransfer?.getData("text/plain")||"",R=F?parseInt(F,10):b,z=O;if(typeof R!="number"||isNaN(R)||R===z){y(null),P(),M();return}const W=wl(m,R,z);j(W),y(null),M();try{if(typeof n=="function"&&v==="active"){const Q=W.filter((K,Z)=>K.text===u(p[Z])).length;n({shuffled:W,score:Q,total:(p||[]).length,__ts:Date.now()})}}catch{}try{requestAnimationFrame(()=>{const Q=document.querySelectorAll(".order-list .order-list__item")[z];if(!Q)return;const K=Q.querySelector(".order-list__slot")||Q;try{K.classList.add("pulse"),K.offsetHeight,K.classList.add("to-dark");const Z=()=>{K.classList.remove("pulse","to-dark"),K.removeEventListener("transitionend",Z)};K.addEventListener("transitionend",Z)}catch{}})}catch{}P()},M=()=>{if(C.current){try{document.body.removeChild(C.current)}catch{}C.current=null}k.current&&(document.removeEventListener("dragover",k.current),k.current=null),w.current&&(document.removeEventListener("mousemove",w.current),w.current=null),D.current!==null&&(cancelAnimationFrame(D.current),D.current=null)},G=()=>{y(null),P(),M()};s.useEffect(()=>()=>M(),[]);const P=()=>{try{if(B.current!==null&&(clearTimeout(B.current),B.current=null),A.current){try{A.current.classList.remove("drag-over")}catch{}A.current=null}document.querySelectorAll(".order-list .order-list__item").forEach(O=>O.classList.remove("drag-over"))}catch{}};return s.useEffect(()=>{try{const O=Math.max(1,(m||[]).length);m.forEach((E,F)=>{const R=V.current.get(E.id);if(!R)return;let z=50;O>1&&(z=Math.round(F/(O-1)*100));try{R.style.setProperty("--marker-pos",z+"%")}catch{}})}catch{}},[m]),s.useEffect(()=>()=>{M(),B.current!==null&&(clearTimeout(B.current),B.current=null)},[]),r.jsx(_o,{index:e,stepIndex:t,isLast:a,title:d,children:r.jsx("div",{className:"order-list",children:m.map((O,E)=>{const F=Math.max(1,(m||[]).length),R=F>1?Math.round(E/(F-1)*100):50;return r.jsx("div",{className:"order-list__item",children:r.jsxs("div",{className:"order-list__slot","data-disabled":v==="disabled","aria-disabled":v==="disabled",children:[v!=="disabled"?r.jsx("div",{className:"order-list__marker caption-1",style:{"--marker-pos":R+"%"},ref:z=>{const W=V.current;z?W.set(O.id,z):W.delete(O.id)},children:r.jsx("span",{className:"order-list__slot-number button-1",children:E+1})}):null,r.jsxs("div",{ref:z=>{const W=L.current;z?W.set(O.id,z):W.delete(O.id)},className:`order-list__draggable ${b===E?"dragging":""}`,"data-disabled":v==="disabled","aria-disabled":v==="disabled",tabIndex:v==="disabled"?-1:0,draggable:f,onDragStart:f?z=>H(E,z):void 0,onDragEnter:f?z=>X(E,z):void 0,onDragOver:f?z=>X(E,z):void 0,onDragLeave:f?()=>{try{B.current!==null&&clearTimeout(B.current),B.current=setTimeout(()=>{try{const z=document.querySelectorAll(".order-list .order-list__item");z&&z[E]&&(z[E].classList.remove("drag-over"),A.current===z[E]&&(A.current=null))}catch{}},80)}catch{}}:void 0,onDrop:f?z=>ae(E,z):void 0,onDragEnd:f?G:void 0,children:[r.jsx("span",{className:"order-list__item-text body-2",children:O.text}),f?r.jsxs("span",{className:"order-list__item-buttons",children:[r.jsx(fe,{htmlType:"button",size:32,type:"dot",onClick:()=>_(E,-1),ariaLabel:c("training.up"),icon:"chevron-up",variant:"transparent-gray",width:48,useFaded:"true",disabled:E===0,useBorder:!1,useDisabledInvisible:!0}),r.jsx(fe,{htmlType:"button",size:32,type:"dot",onClick:()=>_(E,1),ariaLabel:c("training.down"),icon:"chevron-down",variant:"transparent-gray",width:48,useFaded:"true",disabled:E===m.length-1,useBorder:!1,useDisabledInvisible:!0})]}):null]})]})},O.id)})})})}var XB="";oe(XB);const JB=8e3;function QB(e,t){return new Promise(a=>{let o=!1;const n=()=>{o||(o=!0,a())};e.then(n,n),setTimeout(n,t)})}function Lu({index:e,stepIndex:t,isLast:a=!1,title:o,onDone:n,onChange:i,context:l=[],selectable:c=!1,hideLabel:d=!1,hideAudio:u=!1,maxCards:p}){const{t:h}=_e.useTranslation(),m=o??h("training.cardInstructions","\uB0B1\uB9D0 \uCE74\uB4DC\uB97C \uBCF4\uACE0 \uC18C\uB9AC\uB97C \uB4E3\uACE0 \uD655\uC778\uD558\uC138\uC694."),g=s.useMemo(()=>Array.isArray(l)?l:l&&l.items||[],[l]),v=p??3,f=(g||[]).slice(0,v);(g||[]).length>v&&console.warn(`TrainingStepCard: ${g.length} items passed but only ${v} shown`);const x=typeof e=="number"?e:-1,_=typeof t!="number"?"disabled":x<t?"done":x===t?"active":"disabled",[b,y]=s.useState(null),C=s.useRef([]),[k,w]=s.useState(!1),A=s.useRef(null),B=s.useRef(!0);s.useEffect(()=>(B.current=!0,()=>{B.current=!1}),[]);const S=s.useMemo(()=>g.map(V=>V?.id??V?.word??"").join("|"),[g]);s.useEffect(()=>{y(null)},[S]);const D=s.useRef(void 0);s.useEffect(()=>{const V=D.current;typeof V=="number"&&typeof t=="number"&&typeof e=="number"&&V>=e&&t<e&&y(null),D.current=t},[t,e]);const T=s.useCallback((V,N)=>{if(c)return;const j={item:V,index:N,__ts:Date.now()};try{typeof i=="function"&&i(j)}catch{}if(_==="active"&&typeof n=="function")try{n(j)}catch{}},[c,i,_,n]),I=s.useCallback(async()=>{if(k||_==="disabled")return;w(!0);let V=!1;const N=new Promise(j=>{A.current=()=>{V=!0,j()}});try{for(let j=0;j<f.length&&!(!B.current||V);j++){const H=C.current[j];H&&await Promise.race([QB(H.play(),JB),N])}}finally{A.current=null,w(!1)}},[k,_,f.length]),L=s.useCallback((V,N)=>{if(_!=="active")return;y(N);const j={selectedValue:V.word||V.title||"",selectedIndex:N,item:V,__ts:Date.now()};try{typeof i=="function"&&i(j)}catch{}if(_==="active"&&typeof n=="function")try{n(j)}catch{}},[i,_,n]);return r.jsx(_o,{index:e,stepIndex:t,isLast:a,title:m,onDone:n,titleProps:{usePlayAllBtn:!u&&f.length>0,onPlayAll:I,playAllActive:k},children:r.jsx("div",{className:"training-step__cards",onClickCapture:V=>{const N=A.current;if(!N)return;const j=V.target;j&&typeof j.closest=="function"&&j.closest(".training-word-card__bottom")&&N()},children:f.length===0?r.jsx("div",{className:"training-step__empty",children:h("training.noCards","\uCE74\uB4DC\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4.")}):f.map((V,N)=>r.jsx(Gi,{ref:j=>{C.current[N]=j},item:V,disabled:_==="disabled",onPlayDone:()=>T(V,N),selectable:c,selected:c&&b===N,onSelect:c?()=>L(V,N):void 0,flipDelay:N*120,hideLabel:d,hideAudio:u},V&&V.id||N))})})}const eA=160;var tA=".ihabdevteam-core-scope .panel{background:var(--color-white);border:1px solid var(--color-whiteLine);border-radius:var(--radius-card);display:flex;flex-direction:column;overflow:visible;padding:0;text-align:left}.ihabdevteam-core-scope .panel--no-border{border:none}.ihabdevteam-core-scope .panel--no-bg{background:transparent;border-radius:0}.ihabdevteam-core-scope .panel--no-border .panel-row{padding-left:0;padding-right:0}.ihabdevteam-core-scope .panel--no-row-border .panel-row+.panel-row{border-top:none}.ihabdevteam-core-scope .panel__header{align-items:center;border-bottom:1px solid var(--color-darkWhite);box-sizing:border-box;display:flex;gap:var(--spacing-xs);justify-content:space-between;margin:0;padding:0 20px}.ihabdevteam-core-scope .panel__header:last-child{border-bottom:none}.ihabdevteam-core-scope .panel--small .panel__header{min-height:48px}.ihabdevteam-core-scope .panel--medium .panel__header{min-height:56px}.ihabdevteam-core-scope .panel--large .panel__header{min-height:64px}.ihabdevteam-core-scope .panel__icon{align-items:center;color:var(--t-item-fg,var(--color-main));display:flex;flex-shrink:0;height:20px;justify-content:center;margin-right:var(--spacing-s);width:20px}.ihabdevteam-core-scope .panel__title-group{display:flex;flex-direction:column;gap:4px;margin-right:auto;min-width:0}.ihabdevteam-core-scope .panel__title{color:var(--color-darkGray);margin:0}.ihabdevteam-core-scope .panel__disc{color:var(--color-gray);margin:0}.ihabdevteam-core-scope .panel__actions{display:flex;flex-shrink:0;gap:6px}.ihabdevteam-core-scope .panel-row{align-items:center;box-sizing:border-box;display:flex;gap:var(--spacing-m);justify-content:space-between;padding:4px 20px}.ihabdevteam-core-scope .panel--small .panel-row{min-height:48px}.ihabdevteam-core-scope .panel--medium .panel-row{min-height:56px}.ihabdevteam-core-scope .panel--large .panel-row{min-height:64px}.ihabdevteam-core-scope .panel--compact-rows .panel-row{min-height:46px;padding-bottom:3px;padding-top:3px}.ihabdevteam-core-scope .panel-row+.panel-row{border-top:1px solid var(--color-darkWhite)}.ihabdevteam-core-scope .panel--fill .panel-row{border-bottom:1px solid var(--color-darkWhite)}.ihabdevteam-core-scope .panel--fill .panel-row+.panel-row{border-top:none}.ihabdevteam-core-scope .panel--no-row-border .panel-row{border-bottom:none}.ihabdevteam-core-scope .panel>:not(.panel-row)+.panel-row{border-top:none}.ihabdevteam-core-scope .panel-grid{grid-gap:1px;grid-gap:var(--panel-grid-gap,1px);background:var(--color-darkWhite);display:grid;gap:1px;gap:var(--panel-grid-gap,1px);grid-template-columns:repeat(2,1fr);grid-template-columns:repeat(var(--panel-grid-cols,2),1fr);overflow:hidden;padding-bottom:1px}.ihabdevteam-core-scope .panel-grid:not(.panel-grid--columns) .panel-row{background:var(--color-white)}.ihabdevteam-core-scope .panel-grid:not(.panel-grid--columns) .panel-row+.panel-row{border-top:none}.ihabdevteam-core-scope .panel-grid--columns{background:transparent;-moz-column-count:2;column-count:2;-moz-column-count:var(--panel-grid-cols,2);column-count:var(--panel-grid-cols,2);-moz-column-gap:1px;column-gap:1px;-moz-column-gap:var(--panel-grid-gap,1px);column-gap:var(--panel-grid-gap,1px);display:block;overflow:visible;padding-bottom:0}.ihabdevteam-core-scope .panel-grid--columns>*{-moz-column-break-inside:avoid;box-sizing:border-box;break-inside:avoid;display:inline-flex;flex-direction:column;margin-bottom:1px;margin-bottom:var(--panel-grid-gap,1px);page-break-inside:avoid;vertical-align:top;width:100%}.ihabdevteam-core-scope .panel-grid--columns>:last-child{margin-bottom:0}.ihabdevteam-core-scope .panel-row--empty{color:var(--color-lightGray);justify-content:center}.ihabdevteam-core-scope .panel-row--loading{justify-content:center}.ihabdevteam-core-scope .panel__body--scroll{flex:1;min-height:0;overflow-y:auto;overscroll-behavior-y:contain}.ihabdevteam-core-scope .panel__body--gutter-stable{scrollbar-gutter:stable}.ihabdevteam-core-scope .panel-row--content{display:block;min-height:0;padding:16px}.ihabdevteam-core-scope .panel-row--content+.panel-row--content{border-top:none}.ihabdevteam-core-scope .panel-row__icon{align-items:center;display:flex;flex-shrink:0;margin-right:-4px}.ihabdevteam-core-scope .panel-row__left{flex:1;min-width:0}.ihabdevteam-core-scope .panel-row__label{color:var(--color-deepGray)}.ihabdevteam-core-scope .panel-row__sub{color:var(--color-gray);margin-top:2px}.ihabdevteam-core-scope .panel-row__right{align-items:center;display:flex;flex:0 0 auto;justify-content:flex-end}@media (max-width:767px){.ihabdevteam-core-scope .panel-row{flex-wrap:wrap}.ihabdevteam-core-scope .panel-row__right{flex:0 1 auto;min-width:0}}.ihabdevteam-core-scope .panel--form .panel-row{grid-gap:var(--spacing-m);align-items:center;display:grid;gap:var(--spacing-m);grid-template-columns:80px 1fr;grid-template-columns:var(--panel-label-width,80px) 1fr}.ihabdevteam-core-scope .panel--form .panel-row:has(.text-field--full-width){align-items:flex-start}.ihabdevteam-core-scope .panel--form .panel-row:has(.text-field--full-width) .panel-row__left{padding-top:9px}.ihabdevteam-core-scope .panel-row--label-fixed .panel-row__left{flex:0 0 120px;flex:0 0 var(--panel-label-width,120px)}.ihabdevteam-core-scope .panel-row--label-fixed .panel-row__right{flex:1;min-width:0}.ihabdevteam-core-scope .panel-row--fill .panel-row__right{align-items:center;display:flex}.ihabdevteam-core-scope .panel-row--fill .panel-row__right>*,.ihabdevteam-core-scope .panel-row--fill>.dropdown,.ihabdevteam-core-scope .panel-row--fill>.form-input,.ihabdevteam-core-scope .panel-row--fill>.text-field{flex:1;min-width:0}.ihabdevteam-core-scope .panel-row--clickable{cursor:pointer;transition:background .1s,box-shadow .1s}.ihabdevteam-core-scope .panel-row--clickable:hover{background:var(--color-darkWhite)}.ihabdevteam-core-scope .panel-row__text{color:var(--color-darkGray);overflow-wrap:break-word;text-align:right;word-break:break-word}.ihabdevteam-core-scope .panel-row--text .panel-row__right{flex:1;min-width:0}.ihabdevteam-core-scope .panel-row--block{align-items:stretch;display:flex;flex-direction:column;justify-content:center}.ihabdevteam-core-scope .panel-row__description{color:var(--color-gray);line-height:1.6;margin:0;overflow-wrap:break-word;word-break:break-word}.ihabdevteam-core-scope .panel-row__dropdown-group{display:flex;gap:var(--spacing-s)}.ihabdevteam-core-scope .panel-row__dropdown-group--full,.ihabdevteam-core-scope .panel-row__dropdown-item--full{flex:1;min-width:0}.ihabdevteam-core-scope .panel-row__dropdown-error-wrap{display:flex;flex-direction:column}.ihabdevteam-core-scope .panel-row__dropdown-error-wrap--full{flex:1;min-width:0}.ihabdevteam-core-scope .panel-row__text--full{text-align:left;width:100%}.ihabdevteam-core-scope .panel-row__input-wrap{display:flex;flex-direction:column}.ihabdevteam-core-scope .panel-row__input-wrap--full{flex:1;min-width:0}.ihabdevteam-core-scope .panel-row--vertical{align-items:flex-start;flex-direction:column;gap:8px;gap:var(--spacing-xs,8px)}.ihabdevteam-core-scope .panel-row--vertical .panel-row__left{flex:none;width:100%}.ihabdevteam-core-scope .panel-row--vertical .panel-row__right{align-items:flex-start;flex:none;justify-content:flex-start;width:100%}.ihabdevteam-core-scope .panel-row--vertical .panel-row__text{margin-left:0;text-align:left}.ihabdevteam-core-scope .panel-row--device{grid-gap:0;align-items:stretch;display:grid;gap:0;grid-template-columns:1fr 1fr;min-height:0;padding:0}.ihabdevteam-core-scope .panel-row__device-column{box-sizing:border-box;display:flex;flex-direction:column;gap:0;min-height:164px;padding:14px 16px}.ihabdevteam-core-scope .panel-row__device-column+.panel-row__device-column{border-left:1px solid var(--color-darkWhite)}.ihabdevteam-core-scope .panel-row__device-head{align-items:center;display:flex;gap:8px;justify-content:space-between;margin-bottom:8px;min-height:32px}.ihabdevteam-core-scope .panel-row__device-side{color:var(--color-darkGray);margin:0;text-align:left}.ihabdevteam-core-scope .panel-row__device-info{margin:0;text-align:left}.ihabdevteam-core-scope .panel-row__device-info,.ihabdevteam-core-scope .panel-row__device-kind{align-items:flex-start;display:flex;flex-direction:column;gap:3px}.ihabdevteam-core-scope .panel-row__device-name{color:var(--color-darkGray)}.ihabdevteam-core-scope .panel-row__device-detail{color:var(--color-gray)}.ihabdevteam-core-scope .panel-row__device-date{color:var(--color-lightGray);margin-top:2px}.ihabdevteam-core-scope .panel-row__device-empty{align-items:center;color:var(--color-lightGray);display:flex;flex:1;justify-content:center;text-align:center}.ihabdevteam-core-scope .required-mark{color:var(--color-main);margin-left:2px}.ihabdevteam-core-scope .panel-row__error{color:var(--color-error);margin-top:4px}.ihabdevteam-core-scope .panel-row__helper{color:var(--color-lightGray);margin-top:4px}.ihabdevteam-core-scope .panel-row__button-group{display:flex;gap:6px}@media (max-width:767px){.ihabdevteam-core-scope .panel-row__dropdown-group{flex-wrap:wrap}.ihabdevteam-core-scope .panel-row__dropdown-error-wrap--full,.ihabdevteam-core-scope .panel-row__dropdown-item--full{flex:1 1 104px}}";oe(tA);const aA={\uBCF4\uCCAD\uAE30:"hearingAid",\uC778\uACF5\uC640\uC6B0:"cochlearImplant"};function oA(e,t){const a=aA[e];return a?t(`device.type.${a}`,{defaultValue:e}):e}const Wf=()=>{};function ao(e){const t=s.useId();if(!("variant"in e)){const{label:b,sub:y,onClick:C,children:k,align:w="horizontal",icon:A,useFullWidth:B=!1}=e,S=D=>{C&&D.target===D.currentTarget&&(D.key==="Enter"||D.key===" ")&&(D.preventDefault(),C())};return r.jsxs("div",{className:Ee("panel-row",w==="vertical"?"panel-row--vertical":"",B?"panel-row--label-fixed panel-row--fill":"",C?"panel-row--clickable":""),onClick:C,onKeyDown:C?S:void 0,role:C?"button":void 0,tabIndex:C?0:void 0,children:[A!=null&&r.jsx("div",{className:"panel-row__icon",children:A}),b!=null&&r.jsxs("div",{className:"panel-row__left",children:[r.jsx("div",{className:"panel-row__label body-3",children:b}),y&&r.jsx("div",{className:"panel-row__sub caption-1",children:y})]}),r.jsx("div",{className:"panel-row__right",children:k})]})}if(e.variant==="description")return r.jsx("div",{className:"panel-row panel-row--block",children:r.jsx("p",{className:"panel-row__description body-3",children:e.children})});if(e.variant==="empty")return r.jsx("div",{className:"panel-row panel-row--empty body-3",children:e.children});if(e.variant==="loading")return r.jsx("div",{className:"panel-row panel-row--loading",children:r.jsx(Cr,{size:28})});if(e.variant==="custom"&&!e.label)return r.jsx("div",{className:"panel-row panel-row--block",children:e.children});const{variant:a,label:o,sub:n,onClick:i,required:l,error:c,align:d="horizontal",useFullWidth:u=!1,icon:p}=e,h=a==="button"?void 0:i;let m=null;const g=a==="toggle"?`panel-toggle-${t}`:void 0,v=c?`panel-error-${t}`:void 0,f=`panel-helper-${t}`;if(a==="toggle"){const b=e;m=r.jsx(Kd,{checked:b.checked,onChange:b.onChange,id:g})}else if(a==="segmented"){const b=e;m=r.jsx(Ha,{options:b.options,value:b.value,onChange:b.onChange,size:b.size??40,ariaLabel:o})}else if(a==="dropdown"){const b=e,y=b.dropdowns?.length?r.jsx("div",{className:`panel-row__dropdown-group${u?" panel-row__dropdown-group--full":""}`,children:b.dropdowns.map((C,k)=>r.jsx("div",{className:u?"panel-row__dropdown-item--full":void 0,children:r.jsx(Ca,{options:C.options,value:C.value,onChange:C.onChange,placeholder:C.placeholder,block:u,error:!!c,ariaDescribedBy:v,ariaLabel:C.ariaLabel??([o,C.placeholder].filter(Boolean).join(" ")||void 0)})},k))}):r.jsx(Ca,{options:b.options??[],value:b.value??"",onChange:b.onChange??Wf,block:u,error:!!c,ariaLabel:o,ariaDescribedBy:v});m=c?r.jsxs("div",{className:`panel-row__dropdown-error-wrap${u?" panel-row__dropdown-error-wrap--full":""}`,children:[y,r.jsx("span",{id:v,className:"caption-1 panel-row__error",role:"alert",children:c})]}):y}else if(a==="button"){const b=e;b.buttons?.length?m=r.jsx("div",{className:"panel-row__button-group",children:b.buttons.map((y,C)=>r.jsx(fe,{htmlType:"button",size:y.btnSize??40,variant:y.btnVariant??"default",disabled:y.disabled,onClick:y.onClick,children:y.label},C))}):m=r.jsx(fe,{htmlType:"button",size:b.btnSize??40,variant:b.btnVariant??"default",disabled:b.disabled,onClick:b.onClick,children:b.buttonLabel})}else if(a==="text"){const b=e;m=r.jsx("span",{className:`panel-row__text body-2${u?" panel-row__text--full":""}`,style:b.valueColor?{color:b.valueColor}:void 0,children:b.value})}else if(a==="input"){const b=e;m=r.jsxs("div",{className:`panel-row__input-wrap${u?" panel-row__input-wrap--full":""}`,children:[r.jsx(Co,{value:b.value,onChange:b.onChange??Wf,onKeyDown:b.onKeyDown,onEnter:b.onEnter,placeholder:b.placeholder,ghostText:b.ghostText,ghostHint:b.ghostHint,inputMode:b.inputMode,readOnly:b.readOnly,disabled:b.disabled,type:b.type,autoComplete:b.autoComplete,maxLength:b.maxLength,showCount:b.showCount,multiline:b.multiline,rows:b.rows,fullWidth:u,error:c,ariaLabel:o,required:l,ariaDescribedBy:b.helperText?f:void 0}),b.helperText&&r.jsx("div",{id:f,className:"panel-row__helper caption-1",children:b.helperText})]})}else a==="custom"&&(m=e.children);c&&a!=="input"&&a!=="dropdown"&&(m=r.jsxs("div",{className:`panel-row__dropdown-error-wrap${u?" panel-row__dropdown-error-wrap--full":""}`,children:[m,r.jsx("span",{id:v,className:"caption-1 panel-row__error",role:"alert",children:c})]}));const x=a==="input"||a==="dropdown"||(a==="text"||a==="custom")&&u,_=b=>{h&&b.target===b.currentTarget&&(b.key==="Enter"||b.key===" ")&&(b.preventDefault(),h())};return r.jsxs("div",{className:Ee("panel-row",d==="vertical"?"panel-row--vertical":"",x?"panel-row--label-fixed":"",a==="text"?"panel-row--text":"",h?"panel-row--clickable":""),onClick:h,onKeyDown:h?_:void 0,role:h?"button":void 0,tabIndex:h?0:void 0,children:[p!=null&&r.jsx("div",{className:"panel-row__icon",children:p}),r.jsxs("div",{className:"panel-row__left",children:[g?r.jsxs("label",{htmlFor:g,className:"panel-row__label body-3",children:[o,l&&r.jsx("span",{className:"required-mark",children:"*"})]}):r.jsxs("div",{className:"panel-row__label body-3",children:[o,l&&r.jsx("span",{className:"required-mark",children:"*"})]}),n&&r.jsx("div",{className:"panel-row__sub caption-1",children:n})]}),r.jsx("div",{className:"panel-row__right",children:m})]})}function Gf(e){const t=e.productName||e.brand,a=[e.brand,e.fitType].filter(o=>!!o&&o!==t);return[...new Set(a)].join(" \xB7 ")}function Uf({devices:e,onRelease:t,emptyLabel:a}){const{t:o}=_e.useTranslation();return r.jsx("div",{className:"panel-row panel-row--device",children:["\uC88C","\uC6B0"].map(n=>{const i=e[n],l=n==="\uC88C"?o("device.direction.left","\uC88C"):o("device.direction.right","\uC6B0");return r.jsxs("div",{className:"panel-row__device-column",children:[r.jsxs("div",{className:"panel-row__device-head",children:[r.jsx("span",{className:"panel-row__device-side body-2b",children:l}),i&&t&&r.jsx(fe,{htmlType:"button",size:32,type:"dot",icon:"x",ariaLabel:`${l} ${o("customers.device.unwear","\uCC29\uC6A9 \uD574\uC81C")}`,showTooltipInfo:o("customers.device.unwear","\uCC29\uC6A9 \uD574\uC81C"),onClick:()=>t(n)})]}),i?r.jsxs("div",{className:"panel-row__device-info",children:[r.jsxs("span",{className:"panel-row__device-kind",children:[i.device&&r.jsx(Dt,{size:"small",variant:w0(i.device),fill:"soft",label:oA(i.device,o)}),Gf(i)&&r.jsx("span",{className:"panel-row__device-detail body-3",children:Gf(i)})]}),r.jsx("span",{className:"panel-row__device-name body-2b",children:i.productName||i.brand}),du(i.wornYear,i.wornMonth,i.wornDay)&&r.jsx("span",{className:"panel-row__device-date caption-1",children:o("customers.device.wornSince",{date:du(i.wornYear,i.wornMonth,i.wornDay)})})]}):r.jsx("span",{className:"panel-row__device-empty body-3",children:a??o("customers.device.notRegistered","\uBBF8\uB4F1\uB85D")})]},n)})})}function Dn({title:e,titleLevel:t=2,icon:a,disc:o,actions:n,size:i="medium",minHeight:l,maxWidth:c,className:d,scrollable:u,scrollbarGutter:p="auto",compactRows:h=!1,useBorder:m=!0,useBg:g=!0,useRowBorder:v=!0,labelWidth:f,form:x=!1,loading:_,empty:b,children:y}){const C=Ee("panel",`panel--${i}`,x?"panel--form":"",l!==void 0?"panel--fill":"",m?"":"panel--no-border",g?"":"panel--no-bg",v?"":"panel--no-row-border",h?"panel--compact-rows":"",d),k={};l!==void 0&&(k.minHeight=l),c!==void 0&&(k.maxWidth=typeof c=="number"?`${c}px`:c),f!==void 0&&(k["--panel-label-width"]=typeof f=="number"?`${f}px`:f);const w=t?`h${t}`:"div";return r.jsxs("div",{className:C,style:Object.keys(k).length?k:void 0,children:[(!!e||o!=null)&&r.jsxs("div",{className:Ee("panel__header",o!=null?"panel__header--with-disc":""),children:[a&&r.jsx(et,{icon:a,label:typeof e=="string"?e:void 0,className:"panel__icon"}),r.jsxs("div",{className:"panel__title-group",children:[!!e&&r.jsx(w,{className:`panel__title ${o!=null?"body-3b":"h5b"}`,children:e}),o!=null&&r.jsx("p",{className:"panel__disc caption-1",children:o})]}),n&&r.jsx("div",{className:"panel__actions",children:n})]}),_?r.jsx(ao,{variant:"loading"}):b!=null&&s.Children.toArray(y).length===0?r.jsx(ao,{variant:"empty",children:b}):u?r.jsx("div",{className:Ee("panel__body--scroll",p==="stable"&&"panel__body--gutter-stable"),children:y}):y]})}function qf({cols:e=2,layout:t="grid",gap:a=1,collapseAt:o,className:n,style:i,children:l}){const c=s.useRef(null),[d,u]=s.useState();s.useEffect(()=>{const h=c.current;if(o===void 0||!h||(u(h.clientWidth),typeof ResizeObserver>"u"))return;const m=new ResizeObserver(([g])=>u(g.contentRect.width));return m.observe(h),()=>m.disconnect()},[o]);const p=o!==void 0&&d!==void 0&&d<=o;return r.jsx("div",{ref:c,className:Ee("panel-grid",t==="columns"&&"panel-grid--columns",n),style:{"--panel-grid-cols":p?1:e,"--panel-grid-gap":typeof a=="number"?`${a}px`:a,...i},children:l})}function rA(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 Yf(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"}]}rA(kt.t.bind(kt)),Yf(kt.t.bind(kt));var nA='.ihabdevteam-core-scope .noise-settings{border-radius:var(--radius-m);box-sizing:border-box;max-width:calc(100vw - 40px);padding:0 20px 20px}.ihabdevteam-core-scope .tooltip-content:has(.noise-settings__header) .tooltip-content__header{border-bottom:1px solid var(--color-darkWhite);height:60px;padding:0 20px}.ihabdevteam-core-scope .noise-settings__header{align-items:center;display:flex;justify-content:space-between;width:100%}.ihabdevteam-core-scope .noise-settings__header span{color:var(--color-darkGray);font-weight:600}.ihabdevteam-core-scope .noise-settings__slider-input.slider--horizontal{flex:1 1 auto}.ihabdevteam-core-scope .noise-settings__value{font-feature-settings:"tnum";color:var(--color-main);flex:0 0 auto;font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap;width:44px}';oe(nA);const Mu="none",iA=.5,sA=1.5,lA=.25;function $u({title:e,valueLabel:t,value:a,min:o,max:n,step:i,tickStep:l,size:c,onChange:d}){return r.jsxs(ao,{variant:"custom",label:e,useFullWidth:!0,children:[r.jsx(ru,{value:a,onChange:d,min:o,max:n,step:i,size:c,showBgTick:!0,tickStep:l,ariaLabel:e,className:"noise-settings__slider-input"}),r.jsx("div",{className:"noise-settings__value button-1",children:t})]})}function Ru({anchorRect:e,onClose:t}){const{t:a}=_e.useTranslation(),o=la("(max-width: 767px)")?40:24,n=Bn(),i=Br(n?.settings??Sr),l=n?.settings.type??"defaultNoise",c=n?.settings.enabled??!0,d=n?.playbackRate??1,u=n?.mainVolume??1,p=Math.round(u*100),h=s.useCallback(f=>{try{n?.setMainVolume(Math.max(0,Math.min(1,f/100)))}catch{}},[n]),m=s.useCallback(f=>{try{n?.setPlaybackRate(f)}catch{}},[n]),g=s.useCallback(f=>{const x=Math.min(kr,Math.max(0,Math.round(f*10)/10));try{n?.setSettings({noiseRatio:x})}catch{}},[n]),v=s.useCallback(f=>{try{f===Mu?n?.setSettings({enabled:!1}):n?.setSettings({type:f,enabled:!0})}catch{}},[n]);return r.jsx(xa,{anchorRect:e,offset:12,onClose:t,ariaLabel:a("training.trainingSettingsTitle","\uD6C8\uB828 \uC124\uC815"),isMobilePopup:!1,closeOnOutsideClick:!1,header:r.jsxs("div",{className:"noise-settings__header",children:[r.jsx("span",{children:a("training.trainingSettingsTitle","\uD6C8\uB828 \uC124\uC815")}),r.jsx(fe,{htmlType:"button",size:40,type:"dot",icon:"x",variant:"transparent-gray",useBorder:!1,ariaLabel:a("common.close","\uB2EB\uAE30"),onClick:t})]}),children:r.jsxs(Dn,{className:"noise-settings",useBorder:!1,labelWidth:72,children:[r.jsx($u,{title:a("training.playVolumeTitle","\uC804\uCCB4 \uC18C\uB9AC"),valueLabel:`${p}%`,value:p,min:0,max:100,step:10,size:o,onChange:h}),r.jsx($u,{title:a("training.playSpeedTitle","\uC7AC\uC0DD \uC18D\uB3C4"),valueLabel:`${d.toFixed(2)}x`,value:d,min:iA,max:sA,step:lA,size:o,onChange:m}),r.jsx(ao,{variant:"custom",label:a("training.noiseTypeTitle","\uC18C\uC74C \uC885\uB958"),useFullWidth:!0,children:r.jsx(Ha,{ariaLabel:a("training.noiseTypeTitle","\uC18C\uC74C \uC885\uB958"),size:40,shape:"rounded",options:[{key:Mu,label:a("training.noise.type.none","\uC5C6\uC74C")},...Yf(a).map(f=>({key:f.value,label:f.label}))],value:c?l:Mu,onChange:v})}),r.jsx($u,{title:a("training.noiseRatioTitle","\uC18C\uC74C \uBE44\uC728"),valueLabel:a("training.noiseRatioValue","{{ratio}}\uBC30",{ratio:i.toFixed(1)}),value:i,min:0,max:kr,step:Bu,size:o,onChange:g})]})})}var cA=".ihabdevteam-core-scope .training-page-bottom{box-sizing:border-box;width:100%}.ihabdevteam-core-scope .pp-bottom{align-items:center;background:var(--color-deepWhite);border-top:1px solid var(--color-whiteLine);box-sizing:border-box;display:flex;flex:0 0 auto;gap:var(--spacing-s);justify-content:space-between;padding:12px 18px calc(12px + env(safe-area-inset-bottom));width:100%;z-index:5}.ihabdevteam-core-scope .pp-bottom__left{align-items:center;display:flex;gap:var(--spacing-m)}.ihabdevteam-core-scope .pp-bottom__right{align-items:center;display:flex;gap:8px}.ihabdevteam-core-scope .pp-bottom__meters{border:1px solid var(--color-whiteLine);border-radius:14px;display:flex;flex-direction:column;gap:2px;justify-content:center;padding:8px 12px}.ihabdevteam-core-scope .pp-bottom__meter{align-items:center;display:flex;flex-direction:row;gap:var(--spacing-xs)}.ihabdevteam-core-scope .pp-bottom__meter-label{color:var(--color-gray);min-width:28px}.ihabdevteam-core-scope .pp-bottom__settings--desktop{display:none}.ihabdevteam-core-scope .pp-bottom__settings--mobile{display:flex}@media (min-width:768px){.ihabdevteam-core-scope .pp-bottom__settings--desktop{display:block}.ihabdevteam-core-scope .pp-bottom__settings--mobile{display:none}}.ihabdevteam-core-scope .pp-bottom__tooltip-trigger{display:inline-block}.ihabdevteam-core-scope .pp-bottom__meters--floating{display:flex;flex-direction:column;gap:var(--spacing-xs)}.ihabdevteam-core-scope .pp-bottom__meter-trigger{display:inline-flex;flex-shrink:0}";oe(cA);function Pu({useNoiseSettingBtn:e=!1,onSettings:t,onNext:a,onResult:o,stepIndex:n=0,stepCount:i=0,pageIndex:l=0,pageCount:c=1,resultOpen:d=!1}){const{t:u}=_e.useTranslation(),[p,h]=s.useState(!1),[m,g]=s.useState(null),[v,f]=s.useState(!1),x=s.useRef(null),_=s.useRef(null),b=Bn(),y=c>0,C=y&&l<c-1,k=!y||l>=c-1,w=n===Math.max(0,i);s.useEffect(()=>{e||(h(!1),g(null))},[e]);const A=s.useCallback(()=>{h(!1),g(null)},[]),B=s.useCallback(()=>{if(p){h(!1),g(null);return}const H=x?.current?.getBoundingClientRect();H&&g(H),t?.(),h(!0)},[p,t]),S=s.useCallback(()=>{if(p){h(!1),g(null);return}const H=_?.current?.getBoundingClientRect();H&&g(H),t?.(),h(!0)},[p,t]),D=la("(max-width: 767px)"),T=s.useRef(null),[I,L]=s.useState(null),V=s.useCallback(()=>{f(H=>{const X=!H;return L(X?T.current?.getBoundingClientRect()??null:null),X})},[]),N=s.useCallback(()=>{f(!1),L(null)},[]);s.useEffect(()=>{d&&(f(!1),L(null))},[d]);const j=r.jsxs(r.Fragment,{children:[r.jsxs("div",{className:"pp-bottom__meter",children:[r.jsx("span",{className:"pp-bottom__meter-label caption-1",children:u("training.meter.sentence","\uC7AC\uC0DD")}),r.jsx(Fi,{analyser:b?.mainAnalyser??null,orientation:"horizontal",length:112,label:"db",labelPos:"left",ariaLabel:u("training.meter.sentence","\uC7AC\uC0DD")})]}),r.jsxs("div",{className:"pp-bottom__meter",children:[r.jsx("span",{className:"pp-bottom__meter-label caption-1",children:u("training.meter.noise","\uC18C\uC74C")}),r.jsx(Fi,{analyser:b?.noiseAnalyser??null,orientation:"horizontal",length:112,label:"db",labelPos:"left",ariaLabel:u("training.meter.noise","\uC18C\uC74C")})]})]});return Vf(e&&p,()=>typeof document<"u"?document.querySelector(".noise-settings__header")?.closest(".tooltip-content")??null:null,()=>[x.current,_.current].map(H=>H?.querySelector("button")??null).find(H=>!!H&&H.getClientRects().length>0)??x.current?.querySelector("button")??null),r.jsxs("div",{className:"pp-bottom",children:[r.jsxs("div",{className:"pp-bottom__left",children:[e?r.jsxs(r.Fragment,{children:[r.jsx("div",{className:"pp-bottom__settings--desktop",children:r.jsx("div",{ref:x,className:"pp-bottom__tooltip-trigger","data-tooltip-ignore":!0,children:r.jsx(fe,{htmlType:"button",size:56,type:"bar",icon:"settings",onClick:B,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})})}),r.jsx("div",{className:"pp-bottom__settings--mobile",children:r.jsx("div",{ref:_,className:"pp-bottom__tooltip-trigger","data-tooltip-ignore":!0,children:r.jsx(fe,{htmlType:"button",size:56,type:"dot",shape:"pill",icon:"settings",onClick:S,className:p?"is-selected":void 0,"aria-expanded":p,"aria-haspopup":"dialog",ariaLabel:u("training.settings","\uC124\uC815")})})})]}):null,e&&r.jsx("div",{ref:T,className:"pp-bottom__meter-trigger","data-tooltip-ignore":!0,children:r.jsx(fe,{htmlType:"button",size:40,type:"dot",shape:"pill",icon:"audio-lines",onClick:V,selected:v,"aria-expanded":D?v:void 0,ariaLabel:u("training.meter.toggle","\uC624\uB514\uC624 \uBBF8\uD130 \uD45C\uC2DC")})}),e&&v&&!D&&r.jsx("div",{className:"pp-bottom__meters",children:j})]}),e&&v&&D&&I&&r.jsx(xa,{anchorRect:I,onClose:N,ariaLabel:u("training.meter.toggle","\uC624\uB514\uC624 \uBBF8\uD130 \uD45C\uC2DC"),children:r.jsx("div",{className:"pp-bottom__meters pp-bottom__meters--floating",children:j})}),r.jsxs("div",{className:"pp-bottom__right",children:[k&&r.jsx(fe,{htmlType:"button",size:56,type:"bar",icon:"check",onClick:typeof o=="function"?o:a,ariaLabel:u("training.viewResult","\uACB0\uACFC\uBCF4\uAE30"),label:u("training.viewResult","\uACB0\uACFC\uBCF4\uAE30"),variant:"main",disabled:!w}),C&&r.jsx(fe,{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:!w})]}),e&&p&&r.jsx(Ru,{anchorRect:m,onClose:A})]})}var dA=".ihabdevteam-core-scope .training-page-top{box-sizing:border-box;width:100%}.ihabdevteam-core-scope .pp-title.training-popup-title{align-items:center;background:var(--color-deepWhite);border-bottom:1px solid var(--color-whiteLine);box-sizing:border-box;display:flex;gap:var(--spacing-s);justify-content:space-between;padding:12px 16px;position:relative;width:100%;z-index:6}.ihabdevteam-core-scope .pp-title__left{align-items:center;display:flex;gap:var(--spacing-s);min-width:0}.ihabdevteam-core-scope .pp-title__text{display:flex;flex-direction:column;min-width:0}.ihabdevteam-core-scope .pp-title__depth{color:var(--color-gray)}.ihabdevteam-core-scope .pp-title__title{font-weight:700;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ihabdevteam-core-scope .pp-title__title--empty{color:var(--color-whiteLine)}.ihabdevteam-core-scope .pp-title__description{color:var(--color-gray);margin-top:1px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (max-width:767px){.ihabdevteam-core-scope .pp-title.training-popup-title{gap:var(--spacing-xs);padding:10px 12px}.ihabdevteam-core-scope .pp-title__depth{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ihabdevteam-core-scope .pp-title__left{flex:1;min-width:0;overflow:hidden}}";oe(dA);function zu({title:e,subtitle:t,desc:a,depth:o,icon:n,wrapperStyle:i,iconTooltip:l,pageIndex:c,pageCount:d,progressMax:u,progressIndex:p,onBack:h,onClose:m}){const{t:g}=_e.useTranslation(),v=la("(max-width: 767px)"),f=Number.isInteger(p)?p:c||0,x=Number.isInteger(u)?u:d||0,_=h||m,b=Array.isArray(o)?v?o[o.length-1]:o.join(" / "):o,y=typeof e=="string"?e.trim():e,C=typeof t=="string"?t.trim():t,k=!!(y||C),w=k?y||C:g("common.emptyTrainingName","\uD6C8\uB828 \uC774\uB984\uC774 \uBE44\uC5B4 \uC788\uC2B5\uB2C8\uB2E4."),A=b||(y?t:void 0),B=v&&typeof A=="string"&&(A.includes(" \xB7 ")||A.includes(" / "))?A.split(/\s[·/]\s/).pop():A,S=s.useMemo(()=>{const D=i&&typeof i=="object"?{...i}:{};return!("width"in D)&&!("height"in D)&&(D.width="40px",D.height="40px"),D},[i]);return r.jsxs("header",{className:"pp-title training-popup-title",children:[r.jsxs("div",{className:"pp-title__left",children:[_?r.jsx(fe,{htmlType:"button",size:48,type:"dot",icon:"chevron-left",ariaLabel:g("common.back","\uB4A4\uB85C"),onClick:_,useBorder:!1,iconSize:"large",iconColor:"--color-black",variant:"transparent-gray"}):null,r.jsx("div",{children:n?r.jsx(Hg,{icon:n,label:e,tooltip:l,wrapperStyle:S}):null}),r.jsxs("div",{className:"pp-title__text",children:[B?r.jsx("span",{className:"pp-title__depth caption-1",children:B}):null,r.jsx("span",{className:`pp-title__title h2${k?"":" pp-title__title--empty"}`,children:w}),a?r.jsx("span",{className:"pp-title__description caption-1",children:a}):null]})]}),r.jsx(lu,{max:Math.max(0,x??0),index:Math.max(0,f??0)})]})}function Kf(){typeof window<"u"&&window.dispatchEvent(new CustomEvent("speechear.popup.close"))}function Zf(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 Xf=(e,t)=>{if(!t)return t;const a=typeof kt?.t=="function"?kt.t(e,{defaultValue:t}):void 0;return typeof a=="string"&&a?a:t};function Iu(e,t,a){const o=e,n=o?.title||o?.name||(Array.isArray(t)?t[t.length-1]:void 0)||a||"\uD6C8\uB828",i=ni().find(c=>c.key===(o?.category_0||o?.category_main_code)),l=i?.subs?.find(c=>c.key===(o?.category_1||o?.category_sub_code));return{title:n,label:o?.title||n,depth:t,icon:i?.icon,wrapperStyle:i?.color?{"--t-item-fg":i.color}:void 0,iconTooltip:[i?Xf(`topic.${i.key}`,i.label):void 0,l?Xf(`topic.sub.${l.key}`,l.label):void 0].filter(Boolean).join(" / ")||void 0}}function ss(e){return e&&typeof e=="object"&&typeof e.__ts=="number"?e.__ts:0}function Ou(e,t,a){if(!e||typeof e!="object"||Array.isArray(e))return e;const o=e,n=typeof a=="number"&&a>0?a:Date.now();return{...o,...o.shownAt===void 0&&t?{shownAt:t}:{},...o.answeredAt===void 0?{answeredAt:new Date(n).toISOString()}:{}}}function Jf(e){const t=e;return Array.isArray(t?.items)?t.items:Array.isArray(e)?e:e?[e]:[]}function Qf({idPrefix:e,trainingData:t,depth:a,fallbackTitle:o="\uD6C8\uB828",pages:n=[],emptyMessage:i,buildResults:l,metaPatch:c}){const d=Iu(t,a,o),u=typeof c=="function"?c(d)||{}:c||{},p=t?.id||t?.title||n.length;return{id:`${e}:${p}`,meta:{...d,...u},pages:n,emptyMessage:i,buildResults:l}}function e1(e){if(typeof e=="string")return e;if(e&&typeof e=="object"){const t=e;return t.context||t.sentence||t.question||""||""}return""}function t1(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 a1(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 Fu(e,t){if(!(!e||typeof e!="object"))return e[`step-${t}`]}function o1(e,t,a,o){return Fu(e,t*a+o)}function r1({payload:e,selected:t,choices:a=[],correctAnswers:o=[]}){if(e&&typeof e=="object"){const n=e;if(Array.isArray(n.selectedValues))return o.every(i=>n.selectedValues.includes(i))&&n.selectedValues.every(i=>o.includes(i));if(typeof n.correct=="boolean")return n.correct}if(o.length){if(typeof t=="number"&&Array.isArray(a)&&a.length)return o.some(n=>String(n)===String(a[t]));if(typeof t<"u")return o.some(n=>String(n)===String(t))}}function n1(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 i1=s.createContext(null);function uA(){const e=s.useContext(i1);if(!e)throw new Error("useTrainingPagePopupContext must be used inside TrainingPagePopup");return e}function pA({index:e,stepIndex:t,isLast:a=!1,title:o,choices:n=[],onDone:i,onChange:l}){const{t:c}=_e.useTranslation(),d=typeof e=="number"?e:-1,u=typeof t!="number"?"disabled":d<t?"done":d===t?"active":"disabled",[p,h]=s.useState(()=>n.map(()=>null)),m=JSON.stringify(n),g=n.length;s.useEffect(()=>{h(Array.from({length:g},()=>null))},[m]);const v=s.useRef(void 0);s.useEffect(()=>{const b=v.current;typeof b=="number"&&typeof t=="number"&&typeof e=="number"&&b>=e&&t<e&&h(Array.from({length:g},()=>null)),v.current=t},[t,e,g]);const f=s.useMemo(()=>p.filter(b=>b!==null).length+1,[p]),x=s.useCallback(b=>{if(u!=="active")return;const y=p;let C;if(y[b]!=null){const w=y[b];C=y.map(A=>A!==null&&A>=w?null:A)}else C=[...y],C[b]=f;h(C);const k={selectedOrder:C,words:n,__ts:Date.now()};try{typeof l=="function"&&l(k)}catch{}if(y[b]==null&&C.length>0&&C.every(w=>w!==null))try{typeof i=="function"&&i(k)}catch{}},[u,p,f,l,i,n]),_=o??c("training.selectInOrder","\uB4E4\uC740 \uC21C\uC11C\uB300\uB85C \uCE74\uB4DC\uB97C \uC120\uD0DD\uD558\uC138\uC694.");return r.jsx(_o,{index:e,stepIndex:t,isLast:a,title:_,onDone:i,children:r.jsx("div",{className:"training-step__cards",children:n.map((b,y)=>r.jsx(Gi,{item:{word:b},disabled:u==="disabled",selectable:!0,selected:p[y]!==null,orderRank:p[y],onSelect:()=>x(y),flipDelay:y*120,hideLabel:!1,hideAudio:!0},`${b}-${y}`))})})}function Nn(e){return null}Nn.__isTrainingPage=!0;function Dr(e,t){const a=uA();return{ctx:a,index:e,stepIndex:a.currentStepIndex,isLast:typeof e=="number"&&typeof t=="number"?e===t-1:!1,onDone:o=>a.handleStepDone(o,e),onChange:o=>a.handleStepChange(o,e)}}function Hu({_stepIndex:e,_totalSteps:t,...a}){const{index:o,stepIndex:n,isLast:i,onDone:l}=Dr(e,t);return r.jsx(ns,{...a,index:o,stepIndex:n,isLast:i,onDone:l})}function Vu({_stepIndex:e,_totalSteps:t,...a}){const{index:o,stepIndex:n,isLast:i,onDone:l,onChange:c}=Dr(e,t);return r.jsx(os,{...a,index:o,stepIndex:n,isLast:i,onDone:l,onChange:c})}function Wu({_stepIndex:e,_totalSteps:t,...a}){const{index:o,stepIndex:n,isLast:i,onDone:l,onChange:c}=Dr(e,t);return r.jsx(rs,{...a,index:o,stepIndex:n,isLast:i,onDone:l,onChange:c})}function Gu({_stepIndex:e,_totalSteps:t,...a}){const{index:o,stepIndex:n,isLast:i,onDone:l,onChange:c}=Dr(e,t);return r.jsx(is,{...a,index:o,stepIndex:n,isLast:i,onDone:l,onChange:c})}function Uu({_stepIndex:e,_totalSteps:t,...a}){const{index:o,stepIndex:n,isLast:i,onDone:l,onChange:c}=Dr(e,t);return r.jsx(Lu,{...a,index:o,stepIndex:n,isLast:i,onDone:l,onChange:c})}function hA({_stepIndex:e,_totalSteps:t,...a}){const{index:o,stepIndex:n,isLast:i,onDone:l,onChange:c}=Dr(e,t);return r.jsx(pA,{...a,index:o,stepIndex:n,isLast:i,onDone:l,onChange:c})}var mA=`.ihabdevteam-core-scope .trp-result{display:flex;flex:1;flex-direction:column;min-height:0;padding:0;position:relative}.ihabdevteam-core-scope .popup--training-result .popup-header{padding:var(--spacing-l) var(--spacing-l) 0;position:absolute;right:0;top:0;z-index:1}.ihabdevteam-core-scope .trp-result__head{padding:12px 72px 20px;position:relative;text-align:center}.ihabdevteam-core-scope .trp-result__eyebrow{align-items:center;color:var(--color-main);display:inline-flex;gap:var(--spacing-xs);letter-spacing:.22em;margin:0 0 14px;text-transform:uppercase}.ihabdevteam-core-scope .trp-result__eyebrow:after,.ihabdevteam-core-scope .trp-result__eyebrow:before{background:currentColor;content:"";height:1px;opacity:.35;width:24px}.ihabdevteam-core-scope .trp-result__title{color:var(--color-black);font-size:28px;margin:0}.ihabdevteam-core-scope .trp-result__subtitle{color:var(--color-gray);margin:10px 0 0}.ihabdevteam-core-scope .trp-score{align-items:center;display:flex;flex-direction:column;gap:var(--spacing-m);margin:36px auto 8px}.ihabdevteam-core-scope .trp-score__figure{font-feature-settings:"tnum";align-items:baseline;display:flex;font-variant-numeric:tabular-nums;gap:var(--spacing-s)}.ihabdevteam-core-scope .trp-score__sep,.ihabdevteam-core-scope .trp-score__total{align-self:flex-end;color:var(--color-lightGray);font-size:44px;letter-spacing:-1px;padding-bottom:18px}.ihabdevteam-core-scope .trp-score__big{background:var(--color-main);-webkit-background-clip:text;background-clip:text;color:transparent;font-size:112px;letter-spacing:-5px;line-height:.92}.ihabdevteam-core-scope .trp-result__body{padding:16px 0 0}.ihabdevteam-core-scope .result-table{width:100%}.ihabdevteam-core-scope .result-table__head{grid-gap:var(--spacing-m);border-bottom:1px solid var(--color-whiteLine);color:var(--color-lightGray);display:grid;gap:var(--spacing-m);grid-template-columns:1fr 100px;letter-spacing:.16em;padding:12px 4px 14px;text-transform:uppercase}.ihabdevteam-core-scope .result-table--answer .result-table__head,.ihabdevteam-core-scope .result-table--answer .result-table__row{grid-template-columns:1fr 200px 100px}.ihabdevteam-core-scope .result-table__head .col-right{text-align:center}.ihabdevteam-core-scope .result-table__row{grid-gap:var(--spacing-m);align-items:center;border-bottom:1px solid var(--color-whiteLine);display:grid;gap:var(--spacing-m);grid-template-columns:1fr 100px;padding:22px 4px;transition:background .18s ease}.ihabdevteam-core-scope .result-table__row:hover{background:var(--color-deepWhite)}.ihabdevteam-core-scope .result-table__row:last-child{border-bottom:0}.ihabdevteam-core-scope .trp-row__problem{align-items:baseline;display:flex;gap:10px}.ihabdevteam-core-scope .trp-row__no{font-feature-settings:"tnum";color:var(--color-lightGray);flex-shrink:0;font-variant-numeric:tabular-nums;width:32px}.ihabdevteam-core-scope .trp-row__q{color:var(--color-black);letter-spacing:-.1px}.ihabdevteam-core-scope .trp-row__judge{align-self:center;display:flex;justify-content:center}.ihabdevteam-core-scope .trp-row__answers{align-self:center;display:flex;flex-direction:column;gap:var(--spacing-xs)}.ihabdevteam-core-scope .trp-row__answer-line{align-items:baseline;display:flex;gap:10px}.ihabdevteam-core-scope .trp-row__answer-label{flex-shrink:0;width:32px}.ihabdevteam-core-scope .trp-row__answer-label.answer-correct{color:var(--color-lightGray)}.ihabdevteam-core-scope .trp-row__answer-label.answer-selected.is-correct{color:var(--color-main)}.ihabdevteam-core-scope .trp-row__answer-label.answer-selected.is-wrong{color:var(--color-error)}.ihabdevteam-core-scope .trp-row__answer-value{color:var(--color-black)}.ihabdevteam-core-scope .trp-row__answer-value.is-correct{color:var(--color-main)}.ihabdevteam-core-scope .trp-row__answer-value.is-wrong{color:var(--color-error)}.ihabdevteam-core-scope .popup-footer.trp-result__foot{align-items:center;background:var(--color-white);display:flex;flex-shrink:0;gap:var(--spacing-s);justify-content:center;padding:var(--spacing-l)}.ihabdevteam-core-scope .trp-actions{display:flex;gap:var(--spacing-s)}.ihabdevteam-core-scope .popup-footer.trp-result__foot{flex-wrap:wrap}.ihabdevteam-core-scope .trp-actions__reason{flex-basis:100%;margin:0;text-align:center}@keyframes result-rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.ihabdevteam-core-scope .trp-result.is-on{animation:result-rise .5s cubic-bezier(.22,.9,.3,1) both}.ihabdevteam-core-scope .trp-result.is-on .trp-score__big{animation:result-rise .7s cubic-bezier(.22,.9,.3,1) .1s both}.ihabdevteam-core-scope .trp-result.is-on .result-table__row{animation:result-rise .5s cubic-bezier(.22,.9,.3,1) both}.ihabdevteam-core-scope .trp-result.is-on .result-table__row:nth-child(2){animation-delay:.18s}.ihabdevteam-core-scope .trp-result.is-on .result-table__row:nth-child(3){animation-delay:.24s}.ihabdevteam-core-scope .trp-result.is-on .result-table__row:nth-child(4){animation-delay:.3s}.ihabdevteam-core-scope .trp-result.is-on .result-table__row:nth-child(5){animation-delay:.36s}@media (max-width:767px){.ihabdevteam-core-scope .trp-result{padding:0}.ihabdevteam-core-scope .trp-result__head{padding:0 20px 20px}.ihabdevteam-core-scope .trp-result__body{padding:0}.ihabdevteam-core-scope .popup-footer.trp-result__foot{border-top:1px solid var(--color-whiteLine);gap:var(--spacing-xs);padding:var(--spacing-l)}.ihabdevteam-core-scope .trp-actions{display:flex;gap:var(--spacing-xs);width:100%}.ihabdevteam-core-scope .trp-actions>*{flex:1;min-width:0}.ihabdevteam-core-scope .trp-score{gap:10px;margin:20px auto 4px}.ihabdevteam-core-scope .trp-score__big{font-size:72px;letter-spacing:-3px}.ihabdevteam-core-scope .trp-score__sep,.ihabdevteam-core-scope .trp-score__total{font-size:28px;padding-bottom:10px}.ihabdevteam-core-scope .result-table__head{display:none}.ihabdevteam-core-scope .result-table__head,.ihabdevteam-core-scope .result-table__row{gap:var(--spacing-xs);grid-template-columns:1fr auto}.ihabdevteam-core-scope .result-table__row{padding:14px 4px}.ihabdevteam-core-scope .trp-row__judge{justify-content:flex-start}.ihabdevteam-core-scope .result-table--answer .result-table__row{align-items:start;gap:6px;grid-template-columns:1fr;grid-template-rows:auto auto auto;padding:14px 4px}.ihabdevteam-core-scope .result-table--answer .trp-row__judge{grid-row:1;justify-content:flex-start}.ihabdevteam-core-scope .result-table--answer .trp-row__problem{grid-row:2}.ihabdevteam-core-scope .result-table--answer .trp-row__answers{grid-row:3}
1061
1061
  /* !important \uD544\uC694 \u2014 TrainingResultPopup.tsx\uAC00 Badge\uC5D0 minWidth={80}\uC744 \uC778\uB77C\uC778\uC73C\uB85C
1062
1062
  \uC804\uB2EC\uD558\uBBC0\uB85C(\uCF54\uB4DC \uD655\uC778\uB428) \uBAA8\uBC14\uC77C\uC5D0\uC11C \uC790\uC5F0 \uD3ED\uC73C\uB85C \uB418\uB3CC\uB9AC\uB824\uBA74 \uD2B9\uC774\uB3C4\uB85C\uB294 \uBD80\uC871. */.ihabdevteam-core-scope .trp-row__judge .badge{min-width:0!important;min-width:auto!important}.ihabdevteam-core-scope .result-table--answer .trp-row__judge .badge{height:26px;padding:0 12px}}`;oe(mA);function qu(...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,o=[a.text,a.label,a.value];for(const n of o){if(typeof n=="string"&&n.trim().length)return n.trim();if(typeof n=="number"||typeof n=="boolean")return String(n)}}}return null}function bA(e){return qu(e?.question,e?.q,e?.sentence,e?.text,e?.prompt,e?.wording)}function s1(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=qu(e?.status,e?.result,e?.judge,e?.note);if(t){const a=t.toLowerCase();if(["ok","true","\uB9DE\uC74C","\uC815\uB2F5"].some(o=>a.includes(o)))return!0;if(["ng","false","\uD2C0\uB9BC","\uC624\uB2F5"].some(o=>a.includes(o)))return!1}}function Yu(e){const{score:t,contextsLength:a,results:o=[],subtitle:n,onReplay:i,onClose:l,inline:c=!1,pending:d=!1}=e||{},{t:u}=_e.useTranslation(),p=s.useId(),h=s.useCallback(()=>!d,[d]);s.useEffect(()=>{const b=a??0;if(t!=null&&b>0&&t/b>.5){const y=window.setTimeout(()=>{window.dispatchEvent(new CustomEvent("party:trigger",{detail:{count:140,strength:1.6,duration:2200}}))},0);return()=>window.clearTimeout(y)}},[t,a]);const m=s.useCallback(b=>{const y=s1(b),C=qu(b?.wording,b?.label);return y===!0?{variant:"main",label:C??u("training.result.heardWell","\uC798 \uB4E4\uC5C8\uC5B4\uC694")}:y===!1?{variant:"danger",label:C??u("training.result.notHeard","\uBABB \uB4E4\uC5C8\uC5B4\uC694")}:{variant:"disabled",label:C??u("training.result.notJudged","\uBBF8\uD310\uC815")}},[u]),g=a??0,v=t??0,f=s.useMemo(()=>Array.isArray(o)?o:[],[o]),x=s.useMemo(()=>f.map(b=>{const y=b??{},C=bA(y)||u("training.result.noContent","(\uB0B4\uC6A9\uC5C6\uC74C)"),{variant:k,label:w}=m(y),A=Array.isArray(y.corrects)?y.corrects:[],B=A.length?A.join(", "):y.answer!=null&&y.answer!==""?String(y.answer):null,S=typeof y.selectedText=="string"?y.selectedText:null,D=s1(y)===!0;return{problem:C,variant:k,label:w,answer:B,selectedText:S,isCorrect:D}}),[f,m,u]),_=s.useMemo(()=>x.some(b=>b.answer!==null||b.selectedText!==null),[x]);return r.jsx(to,{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:h,footerClassName:"trp-result__foot",footer:({animateThen:b,closeWithAnimation:y})=>r.jsxs(r.Fragment,{children:[d&&r.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.")}),r.jsxs("div",{className:"trp-actions",children:[r.jsx(fe,{htmlType:"button",size:56,type:"bar",label:u("training.result.replay","\uB2E4\uC2DC\uD558\uAE30"),onClick:()=>b(i)}),r.jsx(fe,{htmlType:"button",size:56,type:"bar",label:u("training.result.done","\uC644\uB8CC"),variant:"main",onClick:y,disabled:d,onDisabledClick:d?()=>{}:void 0,"aria-describedby":d?p:void 0})]})]}),children:()=>r.jsxs("div",{className:"trp-result is-on",children:[r.jsxs("header",{className:"trp-result__head",children:[r.jsx("p",{className:"trp-result__eyebrow caption-1",children:u("training.result.eyebrow","\uD6C8\uB828 \uC644\uB8CC")}),r.jsx("h1",{className:"trp-result__title h2",children:u("training.result.title","\uD6C8\uB828\uC744 \uBAA8\uB450 \uB9C8\uCCE4\uC2B5\uB2C8\uB2E4.")}),n&&r.jsx("p",{className:"trp-result__subtitle body-3",children:n}),r.jsx("div",{className:"trp-score",children:r.jsxs("div",{className:"trp-score__figure","aria-label":u("training.result.scoreAria",{correct:v,total:g}),children:[r.jsx("span",{className:"trp-score__big",children:v}),r.jsx("span",{className:"trp-score__sep",children:"/"}),r.jsx("span",{className:"trp-score__total",children:g})]})})]}),x.length>0&&r.jsx("section",{className:"trp-result__body",children:r.jsxs("div",{className:`result-table${_?" result-table--answer":""}`,role:"table","aria-label":u("training.result.tableAriaLabel","\uBB38\uD56D\uBCC4 \uD310\uC815"),children:[r.jsxs("div",{className:"result-table__head caption-1",role:"row",children:[r.jsx("span",{role:"columnheader",children:u("common.col.problem","\uBB38\uC81C")}),_&&r.jsx("span",{role:"columnheader",children:u("training.result.colAnswerSelected","\uC815\uB2F5 \xB7 \uC120\uD0DD")}),r.jsx("span",{className:"col-right",role:"columnheader",children:u("training.result.colJudge","\uD310\uC815")})]}),x.map((b,y)=>r.jsxs("div",{className:"result-table__row",role:"row",children:[r.jsxs("div",{className:"trp-row__problem",children:[r.jsx("span",{className:"trp-row__no caption-1",children:String(y+1).padStart(2,"0")}),r.jsx("div",{className:"trp-row__q body-2",children:b.problem})]}),_&&r.jsxs("div",{className:"trp-row__answers",children:[b.answer!==null&&r.jsxs("div",{className:"trp-row__answer-line",children:[r.jsx("span",{className:"trp-row__answer-label answer-correct caption-1",children:u("training.result.colAnswer","\uC815\uB2F5")}),r.jsx("span",{className:"trp-row__answer-value body-2",children:b.answer})]}),r.jsxs("div",{className:"trp-row__answer-line",children:[r.jsx("span",{className:`trp-row__answer-label answer-selected caption-1 ${b.isCorrect?"is-correct":"is-wrong"}`,children:u("training.result.colSelected","\uC120\uD0DD")}),r.jsx("span",{className:`trp-row__answer-value body-2 ${b.isCorrect?"is-correct":"is-wrong"}`,children:b.selectedText??"\u2014"})]})]}),r.jsx("div",{className:"trp-row__judge",children:r.jsx(Dt,{variant:b.variant,label:b.label,fill:"soft",minWidth:80})})]},y))]})})]})})}function gA(e){s.useEffect(()=>{if(!e)return;const t=()=>typeof document>"u"||document.visibilityState!=="hidden";let a=null,o=null,n=0,i=0;const l=()=>{const p=Date.now();a==null&&(a=p),o==null&&(o=p)},c=()=>{o!=null&&(n+=Date.now()-o,o=null)};t()&&l();const d=()=>{if(c(),a==null||n-i<1e3||i===0&&n<5e3)return;const p=a+i;i=n,Il({trainingType:e,startedAt:new Date(p).toISOString(),endedAt:new Date(a+n).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 ls(e,t){return e&&e.id||`page-${t??0}`}function cs(e,t){return e&&e.key||`step-${t??0}`}function ds(){return{pageIndex:0,stepIndex:0,answersByPage:{}}}function fA(e,t){return typeof e?.props=="function"?e.props(t)||{}:e?.props||{}}const vA=300,xA=()=>{try{return typeof window<"u"&&!!window.matchMedia?.("(prefers-reduced-motion: reduce)").matches}catch{return!1}},yo=Object.freeze({}),l1=new Set(["LISTEN_IN_NOISE","SHORT_STORY","LONG_STORY","ORDERING_SENTENCE"]);function c1(e){const t=e,a=t?.results||t?.answers||[],o=Array.isArray(a)&&a.length>0?a.length:null,n=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:o!=null?n:null,total:o}}const CA=e=>r.jsx(Yu,{score:e.score,contextsLength:e.contextsLength,results:e.results,onReplay:e.onReplay,onClose:e.onClose,pending:e.pending});function _A(e){const{scenario:t,title:a,subTitle:o,depth:n,icon:i,wrapperStyle:l,iconTooltip:c,pageIndex:d,pageCount:u,stepIndex:p,stepCount:h,onBack:m,onComplete:g,onNext:v,onSettings:f,useNoiseSetting:x=!0,children:_,ariaLabel:b,label:y,buildResults:C,onResult:k,typeKey:w,entryPoint:A,dailyTotal:B,itemRef:S,renderResultPopup:D,noiseOverride:T}=e;gA(w&&!l1.has(w)?w:"");const I=s.useRef(0);s.useEffect(()=>{I.current=Date.now()},[]);const{t:L}=_e.useTranslation(),V=k,N=!!t,j=t?.id||null,H=t?.meta||{},X=Array.isArray(t?.pages)?t.pages:[],ae=Array.isArray(_)||s.isValidElement(_)&&typeof _!="function"?s.Children.toArray(_).filter(s.isValidElement):[],M=ae.length>0,G=le=>le===Nn||le?.__isTrainingPage===!0,P=M&&ae.some(le=>G(le.type)),O=P?ae.filter(le=>G(le.type)).map((le,ke)=>{const Te=le.props||{};return{id:`children-page-${ke}`,steps:s.Children.toArray(Te.children).filter(s.isValidElement),pageTop:Te.pageTop||Te.top||null,pageBottom:Te.pageBottom||Te.bottom||null}}):[{id:"children-page-0",steps:ae}],E=M&&!N&&typeof _!="function",F=E?Math.max(1,O.length):0;s.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")}},[]),s.useEffect(()=>{if(typeof document>"u"||!document.body)return;const le=document.body;return le.dataset.ihabTrainingPopupCount=String(Number(le.dataset.ihabTrainingPopupCount||"0")+1),le.classList.add("ihab-training-popup-open"),()=>{const ke=Number(le.dataset.ihabTrainingPopupCount||"1")-1;ke>0?le.dataset.ihabTrainingPopupCount=String(ke):(delete le.dataset.ihabTrainingPopupCount,le.classList.remove("ihab-training-popup-open"))}},[]),s.useEffect(()=>{if(!(typeof document>"u"||!document.body))return x6()},[]);const[R,z]=s.useState({...Sr,enabled:!1}),W=s.useRef(R);s.useEffect(()=>{W.current=R},[R]);const Q=s.useRef(T),K=s.useRef(!1),Z=s.useRef(null);s.useEffect(()=>{let le=!1;const ke=Te=>{if(le)return;K.current=!0;const Ke=Te?Ar({...Sr,enabled:!1},Te):{...Sr},$e=Z.current;Z.current=null;const qe=$e?Ar(Ke,$e):Ke;W.current=qe,z(qe),$e&&!Q.current&&Qn(qe),sr(qe);const Ye=Q.current;if(Ye){const ft=typeof Ye=="function"?Ye(qe):Ye,re=Ar(qe,ft);W.current=re,z(re),sr(re)}};return Vl().then(ke),()=>{le=!0}},[]);const[ie,te]=s.useState(null),[ce,De]=s.useState(null),q=s.useCallback((le,ke)=>{le==="main"?te(ke):De(ke)},[]),ne=s.useRef(null),xe=s.useRef(null),we=s.useCallback(()=>{xe.current!==null&&(clearTimeout(xe.current),xe.current=null);const le=ne.current;ne.current=null,le&&Qn(le)},[]);s.useEffect(()=>{if(typeof window>"u")return;const le=()=>{document.visibilityState==="hidden"&&we()};return window.addEventListener("pagehide",we),document.addEventListener("visibilitychange",le),()=>{window.removeEventListener("pagehide",we),document.removeEventListener("visibilitychange",le),we()}},[we]);const ge=s.useCallback(le=>{const ke=Ar(W.current,le);if(W.current=ke,z(ke),!K.current){Z.current={...Z.current??{},...le},sr(ke);return}Q.current||(ne.current=ke,xe.current!==null&&clearTimeout(xe.current),xe.current=setTimeout(we,vA)),sr(ke)},[we]),de=R.mainSpeed,me=R.mainVolume,he=s.useCallback(le=>ge({mainSpeed:le}),[ge]),U=s.useCallback(le=>ge({mainVolume:le}),[ge]),ue=s.useMemo(()=>({settings:R,setSettings:ge,registerAnalyser:q,mainAnalyser:ie,noiseAnalyser:ce,playbackRate:de,setPlaybackRate:he,mainVolume:me,setMainVolume:U}),[R,ge,q,ie,ce,de,he,me,U]),pe=s.useRef(null),[Ne,Le]=s.useState(0),Oe=s.useRef([]),[Ie,ct]=s.useState("center"),[ot,tt]=s.useState(!1),ht=s.useRef(!1),Ae=s.useRef(null),He=s.useCallback(le=>{ht.current||(ht.current=!0,tt(!0),Ae.current=setTimeout(()=>{try{le()}catch{ht.current=!1,tt(!1)}},xA()?0:eA))},[]);s.useEffect(()=>()=>{Ae.current&&clearTimeout(Ae.current)},[]);const Be=s.useRef(m);s.useEffect(()=>{Be.current=m}),s.useEffect(()=>{const le=pe.current,ke=document.activeElement;if(gc(le,ke),le){const Te=Array.from(le.querySelectorAll(za)).filter(Ke=>!Ke.closest('[aria-hidden="true"]'))[0];if(Te)try{Te.focus()}catch{}}return()=>{const Te=document.activeElement;if(!Te||Te===document.body||le&&le.contains(Te))try{fc(ke)?.focus?.()}catch{}}},[]),s.useEffect(()=>Po(()=>He(()=>{const le=Be.current;typeof le=="function"&&le()})),[He]),mc(pe,!0);const[rt,J]=s.useState(!1),se=s.useRef(!1),[ve,je]=s.useState(null),ut=s.useRef(0),Xe=()=>{ut.current+=1,je(null)},[St,yt]=s.useState(""),[bt,dt]=s.useState(()=>ds()),nt=s.useRef(typeof d=="number"?d:null);s.useEffect(()=>{!N&&!E||(dt(ds()),Xe())},[N,j,E]),s.useEffect(()=>{E&&dt(le=>{const ke=Math.max(0,Math.min(le.pageIndex,Math.max(0,F-1)));return ke!==le.pageIndex?{...le,pageIndex:ke,stepIndex:0}:le})},[E,F]);const it=E?Math.max(0,Math.min(bt.pageIndex,F-1)):0,ze=E?O[it]:null,Ze=E&&ze&&Array.isArray(ze.steps)?ze.steps:[],Ve=N?bt.pageIndex:E?it:typeof d=="number"?d:0,vt=N?X[Math.max(0,Math.min(bt.pageIndex,Math.max(0,X.length-1)))]:null,Ht=N&&vt&&Array.isArray(vt.steps)?vt.steps:[],Rt=N?Ht.length:E?Ze.length:typeof h=="number"?h:0,pt=N||E?Math.max(0,Math.min(bt.stepIndex,Math.max(0,Rt))):typeof p=="number"?p:0,_t=N?X.length:E?F:typeof u=="number"?u:0;s.useEffect(()=>{if(!N&&!E)return;const le=N?ls(vt,Ve):ze?.id||`children-page-${Ve??0}`,ke=new Date().toISOString();for(let Te=0;Te<=pt;Te+=1){const Ke=N?cs(Ht[Te],Te):`step-${Te}`,$e=qt(le,Ke);Pt.current.has($e)||Pt.current.set($e,ke)}},[N,E,Ve,pt,ze?.id]),s.useLayoutEffect(()=>{const le=nt.current;if(typeof Ve=="number"&&le!==null&&Ve!==le&&Ve>le)try{yt(L("training.problemNotice",{n:Ve+1}))}catch{}nt.current=typeof Ve=="number"?Ve:nt.current},[Ve,d,L]),s.useLayoutEffect(()=>{const le=pe.current;if(!le)return;const ke=()=>le.querySelector(".page-popup__scroll");let Te=null,Ke=null,$e=null;const qe=Pe=>{const Ge=ke();if(!Ge)return;const at=Ge.scrollHeight<=Ge.clientHeight;if(ct(at?"center":"top"),Pe&&!se.current){se.current=!0;try{J(!0)}catch{}try{re.disconnect()}catch{}}},Ye=()=>{Te!==null&&cancelAnimationFrame(Te),Te=requestAnimationFrame(()=>{Ke!==null&&clearTimeout(Ke),Ke=setTimeout(()=>qe(!0),60)})},ft=()=>{$e!==null&&cancelAnimationFrame($e),$e=requestAnimationFrame(()=>qe(!1))};Ye(),window.addEventListener("resize",ft);const re=new MutationObserver(Ye);re.observe(le,{childList:!0,subtree:!0,attributes:!0});const Se=setTimeout(()=>{se.current||qe(!0)},400);return()=>{window.removeEventListener("resize",ft),Te!==null&&cancelAnimationFrame(Te),Ke!==null&&clearTimeout(Ke),$e!==null&&cancelAnimationFrame($e),clearTimeout(Se);try{re.disconnect()}catch{}}},[pe]);const We=s.useCallback(le=>{pe.current&&(pe.current._childOnNext=le)},[]),gt=s.useCallback(le=>{pe.current&&(pe.current._childOnResult=le)},[]),Pt=s.useRef(new Map),qt=(le,ke)=>`${le}\0${ke}`,Qe=s.useCallback((le,ke,Te)=>{dt(Ke=>{const $e=Ke.answersByPage[le]||{},qe=$e[ke],Ye=ss(Te),ft=ss(qe);if(qe&&ft>Ye)return Ke;const re=Ou(Te,Pt.current.get(qt(le,ke)),Ye);return{...Ke,answersByPage:{...Ke.answersByPage,[le]:{...$e,[ke]:re}}}})},[dt]),Mt=s.useCallback((le,ke,Te)=>{const Ke=ls(vt,Ve),$e=cs(le,ke);Qe(Ke,$e,Te)},[vt,Ve,Qe]),Yt=s.useCallback((le,ke,Te)=>{const Ke=ls(vt,Ve),$e=cs(le,ke);Qe(Ke,$e,Te),!Te?.allowChange&&le?.autoAdvance!==!1&&dt(qe=>({...qe,stepIndex:Math.max(qe.stepIndex,ke+1)}))},[vt,Ve,Qe,dt]),Lt=s.useCallback((le,ke)=>{const Te=ze?.id||`children-page-${Ve??0}`,Ke=typeof ke=="number"?ke:pt??0,$e=`step-${Ke}`;Qe(Te,$e,le),le?.allowChange||dt(qe=>({...qe,stepIndex:Math.max(qe.stepIndex,Ke+1)}))},[ze,Ve,pt,Qe,dt]),Na=s.useCallback((le,ke)=>{const Te=ze?.id||`children-page-${Ve??0}`,Ke=`step-${typeof ke=="number"?ke:pt??0}`;Qe(Te,Ke,le)},[ze,Ve,pt,Qe]),Ta=E?{currentPageIndex:Ve??0,currentStepIndex:pt??0,totalStepsInPage:Ze.length,handleStepDone:Lt,handleStepChange:Na}:null,Ga=async()=>{const le=typeof t?.buildResults=="function"?await Promise.resolve(t.buildResults({scenario:t,pages:X,flowState:bt,answersByPage:bt.answersByPage})):null;return typeof V=="function"&&await Promise.resolve(V(le))||le},wo=async()=>{const le=ze?.id||`children-page-${bt.pageIndex}`,ke=bt.answersByPage[le]||{},Te=P?(()=>{const qe={};let Ye=0;return O.forEach(ft=>{const re=bt.answersByPage[ft.id]||{},Se=Array.isArray(ft.steps)?ft.steps.length:0;for(let Pe=0;Pe<Se;Pe+=1){const Ge=re[`step-${Pe}`];typeof Ge<"u"&&(qe[`step-${Ye+Pe}`]=Ge)}Ye+=Se}),qe})():ke;if(typeof C=="function"){const qe=await Promise.resolve(C(Te,{pageAnswers:ke,answersByPage:bt.answersByPage,pages:O,currentPageId:le}));return typeof V=="function"&&await Promise.resolve(V(qe))||qe}const Ke=Object.entries(ke).map(([qe,Ye],ft)=>({index:ft,key:qe,payload:Ye})),$e={results:Ke,answers:Ke,score:0};return typeof V=="function"&&await Promise.resolve(V($e))||$e},Ua=()=>{const le=++ut.current,ke=()=>le!==ut.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(N){const $e=Ga();je(yo);const qe=$e;Promise.resolve(qe).then(Ye=>{ke()||je(Ye||{isEmpty:!0})}).catch(Ye=>{!ke()&&je({isEmpty:!0})});return}if(E){const $e=wo();je(yo);const qe=$e;Promise.resolve(qe).then(Ye=>{ke()||je(Ye||{isEmpty:!0})}).catch(Ye=>{!ke()&&je({isEmpty:!0})});return}const Te=pe.current&&pe.current._childOnResult,Ke=$e=>{try{return $e?$e():void 0}catch{return}};if(typeof Te=="function"){const $e=Ke(Te);try{typeof document>"u"?require("url").pathToFileURL(__filename).href:ga&&ga.tagName.toUpperCase()==="SCRIPT"&&ga.src||new URL("ihabdevteam-core.cjs.js",document.baseURI).href}catch{}$e&&typeof $e.then!="function"?je($e):je($e&&typeof $e.then=="function"?yo:{});const qe=()=>{ke()||je(Ye=>Ye===yo?{}:Ye)};Promise.resolve($e).then(Ye=>{Ye&&!ke()?je(Ye):qe()}).catch(Ye=>{qe()});return}if(typeof V=="function"){const $e=Ke(V);try{typeof document>"u"?require("url").pathToFileURL(__filename).href:ga&&ga.tagName.toUpperCase()==="SCRIPT"&&ga.src||new URL("ihabdevteam-core.cjs.js",document.baseURI).href}catch{}$e&&typeof $e.then!="function"?je($e):je($e&&typeof $e.then=="function"?yo:{});const qe=()=>{ke()||je(Ye=>Ye===yo?{}:Ye)};Promise.resolve($e).then(Ye=>{try{typeof document>"u"?require("url").pathToFileURL(__filename).href:ga&&ga.tagName.toUpperCase()==="SCRIPT"&&ga.src||new URL("ihabdevteam-core.cjs.js",document.baseURI).href}catch{}Ye&&!ke()?je(Ye):qe()}).catch(Ye=>{console.error("viewResults external handler failed",Ye),qe()});return}},ko=()=>{if(N){if(typeof Ve=="number"&&typeof _t=="number"&&Ve<_t-1){dt(ke=>({...ke,pageIndex:ke.pageIndex+1,stepIndex:0}));return}return Ua()}if(E){const ke=Ze.length;if(typeof pt=="number"&&pt<ke-1){dt(Te=>({...Te,stepIndex:Te.stepIndex+1}));return}if(typeof Ve=="number"&&typeof _t=="number"&&Ve<_t-1){dt(Te=>({...Te,pageIndex:Te.pageIndex+1,stepIndex:0}));return}return Ua()}if(typeof v=="function"){try{v()}catch{}return}const le=pe.current&&pe.current._childOnNext;if(typeof le=="function"){try{le()}catch{}return}},ja=N?H.title||H.label||b||L("common.popup","\uD31D\uC5C5"):a||y||(Array.isArray(n)?n[n.length-1]:void 0)||b||L("common.popup","\uD31D\uC5C5"),Vt=b||ja,qa=N?H.title??H.label??ja:a??y??ja,Qt=(le,ke)=>{const Te=ls(vt,Ve),Ke=cs(le,ke),$e=bt.answersByPage[Te]?.[Ke],qe=fA(le,{page:vt,pageIndex:Ve,step:le,stepIndex:ke,storedPayload:$e,answersByPage:bt.answersByPage,flowState:bt}),Ye={key:Ke,index:ke,stepIndex:pt,isLast:ke===Ht.length-1};switch(le?.type){case"listen":return r.jsx(ns,{...Ye,...qe,onDone:ft=>Yt(le,ke,ft)});case"confirm":return r.jsx(os,{...Ye,...qe,onDone:ft=>Yt(le,ke,ft),onChange:ft=>Mt(le,ke,ft)});case"confirmWithText":return r.jsx(rs,{...Ye,...qe,onDone:ft=>Yt(le,ke,ft),onChange:ft=>Mt(le,ke,ft)});case"orderList":return r.jsx(is,{...Ye,...qe,onDone:ft=>Yt(le,ke,ft),onChange:ft=>Mt(le,ke,ft)});default:return null}},aa=s.useRef(void 0);s.useEffect(()=>{const le=aa.current;if(aa.current=Ve,le===void 0||le===Ve||!Vi())return;const ke=pe.current;if(!ke)return;const Te=document.activeElement;if(!(!Te||Te===document.body||!ke.contains(Te)||Te.disabled===!0))return;const Ke=ke.querySelector(`.training-steps ${za.split(", ").join(", .training-steps ")}`)??Array.from(ke.querySelectorAll(za)).find($e=>!$e.closest('[aria-hidden="true"]'));try{Ke?.focus()}catch{}},[Ve]);const Bo=N?X.length>0?r.jsx("div",{className:"training-steps",children:Ht.map((le,ke)=>Qt(le,ke))},`replay-${Ne}`):r.jsx("div",{className:`page-popup__content page-popup__content--center${e.contentFull?" page-popup__content--full":""}`,children:r.jsx("div",{className:"pp-empty",children:t?.emptyMessage||L("training.noQuestions","\uBB38\uC81C\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4.")})}):null,_a=E?r.jsxs(i1.Provider,{value:Ta,children:[ze?.pageTop?r.jsx("div",{className:"training-page-top",children:ze.pageTop}):null,r.jsx("div",{className:"training-steps",children:Ze.map((le,ke)=>{const Te=le;return s.cloneElement(Te,{...Te.props,_stepIndex:ke,_totalSteps:Ze.length,_stepKey:`step-${ke}`,_pageIndex:Ve})})},`replay-${Ne}`),ze?.pageBottom?r.jsx("div",{className:"training-page-bottom",children:ze.pageBottom}):null]}):null,Ya=s.useCallback(()=>{let le;if(w){const ke=ve,{results:Te,correct:Ke,total:$e}=c1(ve);Ol({items:Hl(Te),category:l1.has(w)?"sentence":"word",trainingType:w,entryPoint:A??"sentence",itemRef:S??null,correct:Ke,total:$e,score:typeof ke?.score=="number"?ke.score:null,durationSeconds:Math.max(0,Math.round((Date.now()-I.current)/1e3)),dailyTotal:B??null}),le={correct:Ke,total:$e,attempt:Oe.current.length+1,previousAttempts:[...Oe.current]}}Xe(),He(()=>{typeof g=="function"&&g(le),typeof m=="function"&&m()})},[g,m,w,A,B,S,ve,je,He]),ro=s.useCallback(()=>yt(""),[yt]),da=s.useCallback(()=>{He(()=>{typeof m=="function"&&m()})},[m,He]),oa=r.jsxs("div",{className:`page-popup${ot?" page-popup--closing":""}`,role:"dialog","aria-modal":"true","aria-label":Vt,children:[r.jsxs("div",{ref:pe,className:`page-popup__panel ${rt?"":"page-popup__panel--measuring"} ${Ie==="center"?"page-popup__panel--center":Ie==="top"?"page-popup__panel--top":""}`,children:[r.jsx(zu,{title:qa,subtitle:N?H.subtitle||H.label:Array.isArray(n)?n.join(" / "):void 0,desc:N?void 0:o,depth:N?H.depth:n,icon:N?H.icon:i,wrapperStyle:N?H.wrapperStyle:l,iconTooltip:N?H.iconTooltip:c,progressMax:_t,progressIndex:Ve,pageIndex:Ve,pageCount:_t,onBack:da,onClose:da}),r.jsx("div",{className:"page-popup__scroll",children:r.jsx("div",{className:`page-popup__content ${Ie==="center"?"page-popup__content--center":"page-popup__content--top"}${e.contentFull?" page-popup__content--full":""}`,children:E?_a:N?Bo:typeof _=="function"?_({registerOnNext:We,registerOnResult:gt,panelRef:pe,setResultOverlay:je}):_})}),r.jsx(Pu,{onSettings:f,onNext:ko,onResult:Ua,useNoiseSettingBtn:!!(N?H.useNoiseSetting??!0:x),stepIndex:pt,stepCount:Rt,pageIndex:Ve,pageCount:_t,resultOpen:!!(ve&&!ve.isEmpty)})]}),ve&&!ve.isEmpty&&(D??CA)({score:ve.score,results:ve.results||ve.answers||[],contextsLength:ve.results?ve.results.length:ve.answers?ve.answers.length:0,onReplay:()=>{if(I.current=Date.now(),ve!==yo){const{correct:le,total:ke}=c1(ve);Oe.current.push({correct:le,total:ke})}if(Xe(),Le(le=>le+1),N){if(dt(ds()),typeof t?.onReplay=="function")try{t.onReplay()}catch{}return}if(E){dt(ds());return}try{const le=pe.current&&pe.current._childOnResult;typeof le=="function"&&le({replay:!0})}catch{}},onClose:Ya,pending:ve===yo}),ve?.isEmpty&&r.jsx("div",{className:"page-popup page-popup--result-empty",role:"dialog","aria-modal":"true","aria-label":L("training.result.eyebrow","\uD6C8\uB828 \uC644\uB8CC"),children:r.jsxs("div",{className:"page-popup__panel page-popup__panel--center",children:[r.jsx("div",{className:"page-popup__scroll",children:r.jsx("div",{className:`page-popup__content page-popup__content--center${e.contentFull?" page-popup__content--full":""}`,children:r.jsx("div",{className:"page-popup__empty",children:L("training.result.eyebrow","\uD6C8\uB828 \uC644\uB8CC")})})}),r.jsx("div",{className:"page-popup__bottom",children:r.jsx(fe,{htmlType:"button",variant:"main",size:48,onClick:Ya,label:L("training.result.done","\uC644\uB8CC")})})]})}),r.jsx(Ho,{message:St,position:"top",onClose:ro})]}),ea=r.jsx(es.Provider,{value:ue,children:oa});return typeof document<"u"&&document.body?ua.createPortal(ea,document.body):ea}const oo=_A;oo.Page=Nn,oo.ListenStep=Hu,oo.ConfirmStep=Vu,oo.ConfirmWithTextStep=Wu,oo.OrderListStep=Gu,oo.CardStep=Uu,oo.CardOrderStep=hA;var yA=".ihabdevteam-core-scope .word-search-result-block__actions{display:flex;gap:var(--spacing-xs);justify-content:center}.ihabdevteam-core-scope .word-search-result-block__toolbar{align-items:center;display:flex;flex-wrap:wrap;gap:var(--spacing-xs);justify-content:flex-end}.ihabdevteam-core-scope .word-search-result-block__inner{background:var(--color-white);border:1px solid var(--color-darkWhite);border-radius:var(--radius-m);display:flex;flex-direction:column;gap:var(--spacing-m);padding:var(--spacing-l)}.ihabdevteam-core-scope .word-search-result-block__head{align-items:center;-moz-column-gap:var(--spacing-xs);column-gap:var(--spacing-xs);display:flex;flex-wrap:wrap;row-gap:0}.ihabdevteam-core-scope .word-search-result-block__head-main{align-items:center;display:flex;gap:var(--spacing-xs);min-width:0}.ihabdevteam-core-scope .word-search-result-block__head-icon{color:var(--color-gray);flex-shrink:0}.ihabdevteam-core-scope .word-search-result-block__title{min-width:0;text-align:left}.ihabdevteam-core-scope .word-search-result-block__head-actions{align-items:center;display:flex;gap:var(--spacing-xs);margin-left:auto}.ihabdevteam-core-scope .word-search-result-block__head-disc{color:var(--color-gray);flex:0 0 100%;margin:0;min-width:0}.ihabdevteam-core-scope .word-search-result-block__inner:has(+.word-search-result-block__actions:not(:empty)){margin-bottom:var(--spacing-content)}.ihabdevteam-core-scope .word-search-result-block__items{grid-gap:var(--spacing-xs);display:grid;gap:var(--spacing-xs);grid-template-columns:repeat(auto-fill,200px);justify-content:center}.ihabdevteam-core-scope .word-search-result-block__items .button__label-text,.ihabdevteam-core-scope .word-search-result-block__items .button__sub-label-text{white-space:nowrap;word-break:keep-all}.ihabdevteam-core-scope .word-search-result-block__items .button__label:has(.button__label-text:nth-child(4)){gap:4px 10px;grid-auto-columns:auto;grid-auto-flow:row;grid-template-columns:repeat(2,minmax(0,1fr))}.ihabdevteam-core-scope .word-search-result-block__items .button-word:has(.button__label-text:nth-child(4)){height:auto;min-height:72px;padding-bottom:8px;padding-top:8px}@media (max-width:767px){.ihabdevteam-core-scope .word-search-result-block__items{grid-template-columns:repeat(2,1fr);justify-content:normal}.ihabdevteam-core-scope .word-search-result-block__items .button{min-width:0!important;width:100%}}.ihabdevteam-core-scope .word-search-result-block__empty{color:var(--color-gray);margin:0;padding:24px 0;text-align:center}.ihabdevteam-core-scope .word-search-result-block__group{display:flex;flex-direction:column;gap:10px}.ihabdevteam-core-scope .word-search-result-block__group+.word-search-result-block__group{border-top:1px solid var(--color-darkWhite);margin-top:var(--spacing-l);padding-top:var(--spacing-l)}.ihabdevteam-core-scope .word-search-result-block__pagination-bottom{display:flex;justify-content:center;margin-top:16px}.ihabdevteam-core-scope .word-search-result-block__empty-wrap{align-items:center;display:flex;flex-direction:column;gap:8px;gap:var(--spacing-xs,8px)}.ihabdevteam-core-scope .word-search-result-block__empty-hint{color:var(--color-sub);line-height:1.6;max-width:34em;text-align:center}";oe(yA);var wA='.ihabdevteam-core-scope .tooltip-word-image{background:var(--color-white);border-radius:var(--radius-m);box-shadow:var(--shadow-dropdown);padding:var(--spacing-s);position:fixed;z-index:var(--z-tooltip)}.ihabdevteam-core-scope .tooltip-word-image__cells{display:flex;gap:var(--spacing-s)}.ihabdevteam-core-scope .tooltip-word-image__cell{background:#f5f5f5;background:var(--color-white,#f5f5f5);border-radius:var(--radius-card);flex-shrink:0;height:120px;overflow:hidden;position:relative;width:120px}.ihabdevteam-core-scope .tooltip-word-image__cell img{display:block;height:100%;-o-object-fit:cover;object-fit:cover;transition:opacity .2s;width:100%}.ihabdevteam-core-scope .tooltip-word-image__spinner{align-items:center;display:flex;inset:0;justify-content:center;position:absolute}.ihabdevteam-core-scope .tooltip-word-image__spinner:after{animation:tooltip-spin .7s linear infinite;border:3px solid #e0e0e0;border-radius:50%;border-top:3px solid var(--color-white,#e0e0e0);border:3px solid var(--color-white,#e0e0e0);border-top-color:var(--color-main,#4f6ef7);content:"";height:24px;width:24px}@keyframes tooltip-spin{to{transform:rotate(1turn)}}.ihabdevteam-core-scope .tooltip-word-image__cell--text{align-items:center;color:var(--color-black);display:flex;font-weight:700;justify-content:center}';oe(wA);function kA({label:e,homonum:t}){const a=so()?.(e,t)??"",{imgRef:o,loading:n,hasImage:i,onLoad:l,onError:c}=pu(a);return i?r.jsxs("div",{className:"tooltip-word-image__cell",children:[n&&r.jsx("div",{className:"tooltip-word-image__spinner"}),r.jsx("img",{ref:o,src:a,alt:e,draggable:!1,style:{opacity:n?0:1},onLoad:l,onError:c})]}):r.jsx("div",{className:"tooltip-word-image__cell tooltip-word-image__cell--text h3",children:r.jsx("span",{children:e})})}function Ku({words:e,anchorRect:t}){const a=s.useRef(null),[o,n]=s.useState(null);return s.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)),n({left:d,top:u})},[t]),!t||e.length===0?null:ua.createPortal(r.jsx("div",{ref:a,className:"tooltip-word-image",style:{visibility:o?"visible":"hidden",left:o?.left??0,top:o?.top??-9999},children:r.jsx("div",{className:"tooltip-word-image__cells",children:e.map(i=>r.jsx(kA,{label:i.label,homonum:i.homonum},`${i.label}_${i.homonum??1}`))})}),document.body)}const BA=new Intl.Collator("ko");function d1({titleIcon:e,resultCount:t,resultUnit:a,searchQuery:o,items:n,groups:i,selected:l=[],onSelect:c,maxSelect:d,onClearSelection:u,onPrint:p,onPrintEmpty:h,className:m,emptyHint:g,sectionType:v="page",disc:f}){const{t:x,i18n:_}=_e.useTranslation(),b=_.language?.startsWith("ko")??!1,{anchorRect:y,openAt:C,close:k}=Oo(),[w,A]=s.useState(null),B=s.useCallback(()=>{k(),A(null)},[k]);wd(B,!!w);const S=(o??"").trim(),D=/^[^,[\]\s]+$/.test(S)?S:"",T=D.length>0,I=o===void 0&&t===void 0,L=T?"match":I?"original":"ganada",[V,N]=s.useState(()=>L),[j,H]=s.useState("50"),[X,ae]=s.useState(1),[M,G]=s.useState(T);M!==T&&(G(T),N(L));const P=V==="match"&&!T||V==="original"&&!I?L:V,O=s.useMemo(()=>[...T?[{value:"match",label:x("wordSearch.sort.match",{defaultValue:"\uC2DC\uC791 \uC6B0\uC120"})}]:[],...I?[{value:"original",label:x("wordSearch.sort.original",{defaultValue:"\uBC1B\uC740 \uC21C\uC11C"})}]:[],{value:"ganada",label:x("wordSearch.sort.ganada",{defaultValue:"\uAC00\uB098\uB2E4\uC21C \u2191"})},{value:"ganada_desc",label:x("wordSearch.sort.ganadaDesc",{defaultValue:"\uAC00\uB098\uB2E4\uC21C \u2193"})},{value:"syllable",label:x("wordSearch.sort.syllable",{defaultValue:"\uC74C\uC808 \uC218 \u2191"})},{value:"syllable_desc",label:x("wordSearch.sort.syllableDesc",{defaultValue:"\uC74C\uC808 \uC218 \u2193"})},{value:"grade",label:x("wordSearch.sort.grade",{defaultValue:"\uB4F1\uAE09\uC21C \u2191"})},{value:"grade_desc",label:x("wordSearch.sort.gradeDesc",{defaultValue:"\uB4F1\uAE09\uC21C \u2193"})}],[x,T,I]),E=s.useMemo(()=>["10","25","50","100"].map(de=>({value:de,label:x("wordSearch.pageSize",{count:Number(de),defaultValue:`${de}\uAC1C\uC529 \uBCF4\uAE30`})})),[x]),F=de=>de.words?.[0],R=s.useMemo(()=>{const de=[...D].length,me=Zs(D),he=new Map;return U=>{let ue=he.get(U);return ue===void 0&&(ue=me((U.words?.[0]?.label??"").slice(0,de))?0:1,he.set(U,ue)),ue}},[D]),z=s.useCallback((de,me)=>{const he=pe=>F(pe)?.label??"",U=pe=>F(pe)?.syllables??[...he(pe)].length,ue=pe=>(pe.words??[]).reduce((Ne,Le)=>{const Oe=parseInt(Le.grade??"",10);return Number.isFinite(Oe)&&Oe<Ne?Oe:Ne},999);switch(P){case"match":return R(de)-R(me)||BA.compare(he(de),he(me));case"ganada":return he(de).localeCompare(he(me),"ko");case"ganada_desc":return he(me).localeCompare(he(de),"ko");case"syllable":return U(de)-U(me)||he(de).localeCompare(he(me),"ko");case"syllable_desc":return U(me)-U(de)||he(de).localeCompare(he(me),"ko");case"grade":return ue(de)-ue(me)||he(de).localeCompare(he(me),"ko");case"grade_desc":return ue(me)-ue(de)||he(de).localeCompare(he(me),"ko");default:return 0}},[P,R]),W=s.useMemo(()=>n.slice().sort(z),[n,z]),Q=Number(j)||10,K=s.useMemo(()=>(i??[]).flatMap(de=>de.items.slice().sort(z).map(me=>({item:me,label:de.label}))),[i,z]),Z=i?K.length:W.length,ie=Math.max(1,Math.ceil(Z/Q)),te=Math.min(X,ie),ce=s.useMemo(()=>W.slice((te-1)*Q,te*Q),[W,te,Q]),De=s.useMemo(()=>{if(!i)return null;const de=K.slice((te-1)*Q,te*Q),me=new Map;for(const{item:he,label:U}of de)me.has(U)||me.set(U,[]),me.get(U).push(he);return[...me.entries()].map(([he,U])=>({label:he,items:U}))},[i,K,te,Q]);s.useEffect(()=>{ae(1)},[V,j,Z,o]);const q=Z>0?r.jsxs("div",{className:"word-search-result-block__toolbar",children:[r.jsx(Ca,{size:40,options:O,value:P,onChange:N,ariaLabel:x("wordSearch.sort.aria",{defaultValue:"\uC815\uB82C"})}),r.jsx(Ca,{size:40,options:E,value:j,onChange:H,ariaLabel:x("wordSearch.pageSizeAria",{defaultValue:"\uD398\uC774\uC9C0 \uD06C\uAE30"})}),r.jsx(_n,{page:te,totalPages:ie,onChange:ae})]}):void 0,ne=de=>{c&&c(de)},xe=t!==void 0&&a?r.jsxs(r.Fragment,{children:[x("wordSearch.resultTitlePrefix","\uCD1D "),r.jsx("span",{style:{color:"var(--color-main)"},children:t}),x("wordSearch.resultTitleSuffix",{unit:b?fl(a):a})]}):void 0,we=t!==void 0&&t>0&&d!==void 0&&a?x("wordSearch.resultDisc",{unit:b?xl(a):a,max:d,selected:l.length}):void 0,ge=f??we;return r.jsxs(Vo,{type:v,className:Ee("word-search-result-block",m),children:[r.jsxs("div",{className:"word-search-result-block__inner",children:[(xe||q||ge)&&r.jsxs("div",{className:"word-search-result-block__head",children:[r.jsxs("div",{className:"word-search-result-block__head-main",children:[e&&r.jsx(et,{icon:e,className:"word-search-result-block__head-icon"}),xe&&r.jsx("span",{className:"word-search-result-block__title h3",children:xe})]}),q&&r.jsx("div",{className:"word-search-result-block__head-actions",children:q}),ge&&r.jsx("div",{className:"word-search-result-block__head-disc body-3",children:ge})]}),(i?i.length===0:n.length===0)&&r.jsxs("div",{className:"word-search-result-block__empty-wrap",children:[r.jsx("p",{className:"word-search-result-block__empty body-3",children:x("wordSearch.emptyResult","\uAC80\uC0C9 \uACB0\uACFC\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4.")}),g&&r.jsx("p",{className:"word-search-result-block__empty-hint body-3",children:g})]}),i?(De??[]).map(de=>r.jsx("div",{className:"word-search-result-block__group",children:r.jsx("div",{className:"word-search-result-block__items",children:de.items.map(me=>{const he=l.includes(me.id);return r.jsx("div",{onMouseEnter:U=>{C(U.currentTarget),A(me.words??[])},onMouseLeave:B,children:r.jsx(fe,{htmlType:"button",size:"word",align:"grid",label:(me.words??[]).map(U=>U.label),subLabel:(me.words??[]).some(U=>U.subLabel)?(me.words??[]).map(U=>U.subLabel):void 0,selected:he,onClick:()=>ne(me.id),minWidth:200})},me.id)})})},de.label)):r.jsx("div",{className:"word-search-result-block__items",children:ce.map(de=>{const me=l.includes(de.id);return r.jsx("div",{onMouseEnter:he=>{C(he.currentTarget),A(de.words??[])},onMouseLeave:B,children:r.jsx(fe,{htmlType:"button",size:"word",align:"grid",label:(de.words??[]).map(he=>he.label),subLabel:(de.words??[]).some(he=>he.subLabel)?(de.words??[]).map(he=>he.subLabel):void 0,selected:me,onClick:()=>ne(de.id),minWidth:200})},de.id)})}),w&&y&&r.jsx(Ku,{words:w,anchorRect:y})]}),ie>1&&r.jsx("div",{className:"word-search-result-block__pagination-bottom",children:r.jsx(_n,{page:te,totalPages:ie,onChange:ae})}),(u||p)&&r.jsxs("div",{className:"word-search-result-block__actions",children:[u&&r.jsx(fe,{htmlType:"button",size:"56",type:"bar",label:x("common.resetSelection","\uC120\uD0DD \uCD08\uAE30\uD654"),selected:!1,disabled:l.length===0,onClick:l.length===0?void 0:u}),p&&r.jsx("div",{onClick:l.length===0?h:void 0,children:r.jsx(fe,{htmlType:"button",size:"56",type:"bar",variant:"main",label:x("wordTable.title","\uB2E8\uC5B4 \uD45C \uB9CC\uB4E4\uAE30"),disabled:l.length===0,onClick:l.length===0?void 0:p})})]})]})}var AA='.ihabdevteam-core-scope .phoneme-select-block{align-items:flex-start;flex:1 1 auto;width:100%}.ihabdevteam-core-scope .phoneme-select-block__cell{align-items:center;display:flex;flex-direction:column;gap:12px}.ihabdevteam-core-scope .phoneme-select-block__controls{align-items:center;display:flex;flex-direction:row;gap:var(--spacing-xs);justify-content:center;width:100%}@media (max-width:767px){.ihabdevteam-core-scope .phoneme-select-block__controls{align-items:center;flex-direction:column}}.ihabdevteam-core-scope .phoneme-select-block__count-control{align-self:center}.ihabdevteam-core-scope .phoneme-select-block__cell-group{align-items:flex-start;display:flex;gap:var(--spacing-xs)}.ihabdevteam-core-scope .phoneme-select-block__cell-vs{align-self:center;color:var(--color-lightGray);margin-bottom:22px;padding:0 16px}.ihabdevteam-core-scope .phoneme-select-block__pair-panels{display:flex;gap:var(--spacing-s);width:100%}.ihabdevteam-core-scope .phoneme-select-block__panel-group{display:flex;flex:1;flex-direction:column;gap:var(--spacing-m)}.ihabdevteam-core-scope .phoneme-select-block__cells{align-items:flex-start;display:flex;gap:var(--spacing-xs);justify-content:center;padding:var(--spacing-m) 0;width:100%}.ihabdevteam-core-scope .phoneme-select-block__cell-circle{align-items:center;background:var(--color-white);border:1px solid var(--color-whiteLine);border-radius:var(--radius-m);box-shadow:var(--shadow-tooltip);display:flex;height:80px;justify-content:center;position:relative;width:240px}.ihabdevteam-core-scope .phoneme-select-block__cell-index{color:var(--color-gray);line-height:1}.ihabdevteam-core-scope .phoneme-select-block__cell-jamo{align-items:stretch;display:flex;flex-direction:row;height:100%;justify-content:center;width:100%}.ihabdevteam-core-scope .phoneme-select-block__cell-jamo-part{align-items:center;color:var(--color-black);display:flex;flex:1;flex-direction:column;gap:4px;justify-content:center;padding-top:3px;position:relative}.ihabdevteam-core-scope .phoneme-select-block__cell-jamo-part--no-label{padding-top:0}.ihabdevteam-core-scope .phoneme-select-block__cell-jamo-char.h1{line-height:1}.ihabdevteam-core-scope .phoneme-select-block__cell-jamo-char--excluded{color:var(--color-whiteLine);transform:translateY(-2px)}.ihabdevteam-core-scope .phoneme-select-block__cell-jamo-part--empty .phoneme-select-block__cell-jamo-char{transform:translateY(-2px)}.ihabdevteam-core-scope .phoneme-select-block__cell-jamo-label{color:var(--color-lightGray);line-height:1}.ihabdevteam-core-scope .phoneme-select-block__cell-jamo-part--empty .phoneme-select-block__cell-jamo-label{color:var(--color-darkWhite)}.ihabdevteam-core-scope .phoneme-select-block__cell-jamo-part+.phoneme-select-block__cell-jamo-part:before{background:var(--color-whiteLine);content:"";height:20px;left:0;position:absolute;top:50%;transform:translateY(-50%);width:1px}.ihabdevteam-core-scope .phoneme-select-block__cell-jamo-part--empty{color:var(--color-darkWhite)}.ihabdevteam-core-scope .phoneme-select-block__panels{align-items:stretch;align-self:stretch;display:flex;flex-direction:column;gap:var(--spacing-m);width:100%}.ihabdevteam-core-scope .phoneme-select-block__detail{align-items:flex-start;display:flex;flex-direction:row;gap:var(--spacing-s);justify-content:center}.ihabdevteam-core-scope .phoneme-select-block__detail>.filter-panel{flex:1}.ihabdevteam-core-scope .phoneme-select-block>.filter-panel{align-self:stretch;width:100%}.ihabdevteam-core-scope .phoneme-select-block__controls .button38--bar{min-width:96px}.ihabdevteam-core-scope .phoneme-select-block__required{color:var(--color-main);line-height:1;margin-left:2px}.ihabdevteam-core-scope .phoneme-select-block__before-search{display:flex;justify-content:center;text-align:center;width:100%}.ihabdevteam-core-scope .phoneme-select-block__search-row{display:flex;gap:var(--spacing-xs);justify-content:center;width:100%}.ihabdevteam-core-scope .phoneme-select-block__checking{align-items:center;background:transparent;border:1px solid var(--color-whiteLine);border-radius:var(--radius-m);color:var(--color-disabled);cursor:default;display:flex;gap:10px;height:60px;min-width:198px;padding:0 28px}.ihabdevteam-core-scope .phoneme-select-block__checking-label{white-space:nowrap}.ihabdevteam-core-scope .phoneme-select-block__spinner{animation:phonemeSpinner .7s linear infinite;border:2px solid var(--color-whiteLine);border-radius:50%;border-top-color:var(--color-disabled);flex-shrink:0;height:18px;width:18px}@keyframes phonemeSpinner{to{transform:rotate(1turn)}}@media (max-width:767px){.ihabdevteam-core-scope .phoneme-select-block__detail,.ihabdevteam-core-scope .phoneme-select-block__pair-panels{flex-direction:column}.ihabdevteam-core-scope .phoneme-select-block__detail>.filter-panel{width:100%}.ihabdevteam-core-scope .phoneme-select-block__cell-vs{align-self:center;margin-bottom:0;padding:4px 0}.ihabdevteam-core-scope .phoneme-select-block__cells{flex-wrap:wrap}.ihabdevteam-core-scope .phoneme-select-block__cell-group{flex-shrink:0;width:min(240px,100%)}.ihabdevteam-core-scope .phoneme-select-block__cell-group>.phoneme-select-block__cell{flex:1 1 auto;min-width:0;width:auto}.ihabdevteam-core-scope .phoneme-select-block__cell{flex-shrink:0;width:min(240px,100%)}.ihabdevteam-core-scope .phoneme-select-block__cell-circle{height:64px;width:100%}.ihabdevteam-core-scope .phoneme-select-block__cell-jamo-part{font-size:24px}}';oe(AA);function SA(e,t){return t.map(a=>{const o=typeof a=="string"?a:a.label,n=typeof a=="string"?void 0:a.displayLabel;return{label:o,value:e[o]??"",displayLabel:n}})}function u1({sections:e,selectedList:t,count:a,onCountChange:o,maxCount:n=4,minCount:i=1,combinationSections:l,combinationSectionsForSlot:c,onSelect:d,placeholder:u="-",className:p,title:h,titleIcon:m,disc:g,showInfoButton:v=!0,onClearPhoneme:f,onSearch:x,onSearchEmpty:_,searchDisabled:b=!1,searchLabel:y,searchChecking:C=!1,pairMode:k=!1,sectionType:w="page",beforeSearchContent:A,beforeContent:B,afterContent:S,hideCountControl:D=!1,ordinal:T=!1}){const{t:I}=_e.useTranslation(),L=s.useMemo(()=>I("wordPairs.infoNotes",{returnObjects:!0}),[I]),V=s.useMemo(()=>Array.from({length:n-i+1},(R,z)=>{const W=i+z;return{key:String(W),label:I("wordPairs.count",{n:W})}}),[I,n,i]),N=s.useMemo(()=>I("wordPairs.ordinals",{returnObjects:!0}),[I]),j=s.useCallback(R=>T?I("wordPairs.phonemeOrdinalLabel",{ordinal:N[R-1]??R}):a===1?I("wordPairs.phonemeSingleLabel","\uC74C\uC808"):I("wordPairs.phonemeN",{n:R}),[T,N,a,I]),H=s.useCallback(R=>T?I("wordPairs.phonemeContrastOrdinalLabel",{ordinal:N[R-1]??R}):a===1?I("wordPairs.phonemeContrastSingleLabel","\uB300\uB9BD \uC74C\uC808"):I("wordPairs.phonemeContrast",{n:R}),[T,N,a,I]),X=s.useCallback((R,z)=>z?r.jsxs(r.Fragment,{children:[R,r.jsx("span",{className:"phoneme-select-block__required",children:"*"})]}):R,[]),{anchorRect:ae,toggleAt:M,close:G}=Oo(),P=s.useCallback(R=>o(Number(R)),[o]),O=la("(max-width: 767px)"),E=s.useCallback(R=>SA(R,e).map(({label:z,value:W,displayLabel:Q})=>{const K=!!W&&W!=="\uC5C6\uC74C";return r.jsxs("span",{className:Ee("phoneme-select-block__cell-jamo-part",W?"":"phoneme-select-block__cell-jamo-part--empty",K?"":"phoneme-select-block__cell-jamo-part--no-label"),children:[r.jsx("span",{className:`phoneme-select-block__cell-jamo-char h1${W==="\uC5C6\uC74C"?" phoneme-select-block__cell-jamo-char--excluded":""}`,children:W==="\uC5C6\uC74C"?"x":W||u}),K&&r.jsx("span",{className:"phoneme-select-block__cell-jamo-label caption-2",children:Q??z})]},z)}),[e,u]),F=r.jsxs(r.Fragment,{children:[r.jsx("div",{"data-tooltip-ignore":!0,children:r.jsx(fe,{htmlType:"button",size:40,type:O?"dot":void 0,icon:"info",label:O?void 0:I("wordPairs.caution","\uC720\uC758\uC0AC\uD56D"),ariaLabel:I("wordPairs.caution","\uC720\uC758\uC0AC\uD56D"),className:ae?"is-selected":void 0,"aria-expanded":!!ae,"aria-haspopup":"dialog",onClick:R=>M(R.currentTarget)})}),ae&&r.jsx(fo,{title:I("wordPairs.caution","\uC720\uC758\uC0AC\uD56D"),items:L,anchorRect:ae,onClose:G})]});return r.jsxs(Vo,{type:w,title:h,icon:m,disc:g,action:v?F:void 0,className:Ee("phoneme-select-block",p),children:[B,!D&&r.jsx("div",{className:"phoneme-select-block__controls",children:r.jsx(Ha,{options:V,value:String(a),onChange:P,size:40,ariaLabel:I("wordPairs.countLabel","\uC74C\uC18C \uAC1C\uC218"),className:"phoneme-select-block__count-control"})}),r.jsx("div",{className:"phoneme-select-block__cells",children:k?r.jsxs(r.Fragment,{children:[r.jsx("div",{className:"phoneme-select-block__cell-group",children:Array.from({length:a}).map((R,z)=>{const W=t[z*2]??{};return r.jsxs("div",{className:"phoneme-select-block__cell",children:[r.jsx("div",{className:"phoneme-select-block__cell-circle",children:r.jsx("div",{className:"phoneme-select-block__cell-jamo",children:E(W)})}),r.jsx("span",{className:"phoneme-select-block__cell-index caption-1",children:j(z+1)})]},z)})}),r.jsx("span",{className:"phoneme-select-block__cell-vs h3",children:I("wordPairs.phonemeSelect.vs","\uB300")}),r.jsx("div",{className:"phoneme-select-block__cell-group",children:Array.from({length:a}).map((R,z)=>{const W=t[z*2+1]??{};return r.jsxs("div",{className:"phoneme-select-block__cell",children:[r.jsx("div",{className:"phoneme-select-block__cell-circle",children:r.jsx("div",{className:"phoneme-select-block__cell-jamo",children:E(W)})}),r.jsx("span",{className:"phoneme-select-block__cell-index caption-1",children:H(z+1)})]},z)})})]}):t.map((R,z)=>r.jsxs("div",{className:"phoneme-select-block__cell",children:[r.jsx("div",{className:"phoneme-select-block__cell-circle",children:r.jsx("div",{className:"phoneme-select-block__cell-jamo",children:E(R)})}),r.jsx("span",{className:"phoneme-select-block__cell-index caption-1",children:j(z+1)})]},z))}),(l||c)&&r.jsx("div",{className:"phoneme-select-block__panels",children:r.jsx("div",{className:"phoneme-select-block__detail",children:k?r.jsxs("div",{className:"phoneme-select-block__pair-panels",children:[r.jsx("div",{className:"phoneme-select-block__panel-group",children:Array.from({length:a}).map((R,z)=>{const W=t[z*2]??{};return r.jsx(Wa,{title:X(j(z+1),z===0),sections:c?c(W,z*2):l,selected:W,onSelect:d?.(z*2),align:"newline"},z)})}),r.jsx("div",{className:"phoneme-select-block__panel-group",children:Array.from({length:a}).map((R,z)=>{const W=t[z*2+1]??{};return r.jsx(Wa,{title:H(z+1),sections:c?c(W,z*2+1):l,selected:W,onSelect:d?.(z*2+1),align:"newline"},z)})})]}):t.map((R,z)=>r.jsx(Wa,{title:X(j(z+1),z===0),sections:c?c(R,z):l,selected:R,onSelect:d?.(z),align:"newline"},z))})}),A&&r.jsx("div",{className:"phoneme-select-block__before-search",children:A}),(f||x||C)&&(()=>{const R=t.every(z=>Object.entries(z).every(([W,Q])=>!Q||W==="\uC885\uC131"&&Q==="\uC5C6\uC74C"));return r.jsxs("div",{className:"phoneme-select-block__search-row",onClick:R?_:void 0,children:[f&&r.jsx(fe,{htmlType:"button",size:"56",type:"bar",label:I("wordPairs.resetOptions","\uAC80\uC0C9 \uC635\uC158 \uCD08\uAE30\uD654"),selected:!1,disabled:R,onClick:R?void 0:f}),x?r.jsx(fe,{htmlType:"button",size:"56",type:"bar",variant:"main",icon:C?r.jsx("span",{className:"phoneme-select-block__spinner","aria-hidden":"true"}):void 0,label:y??I("wordSearch.searchButton","\uAC80\uC0C9\uD558\uAE30"),disabled:R||b||C,onDisabledClick:C?()=>{}:void 0,"aria-busy":C||void 0,onClick:x}):C?r.jsxs("div",{className:"phoneme-select-block__checking","aria-busy":"true",children:[r.jsx("div",{className:"phoneme-select-block__spinner"}),r.jsx("span",{className:"button-1 phoneme-select-block__checking-label",children:y??I("wordSearch.searchButton","\uAC80\uC0C9\uD558\uAE30")})]}):null]})})(),S]})}function p1({title:e,sections:t,selected:a,onSelect:o,collapsible:n,defaultCollapsed:i,collapsed:l,onCollapsedChange:c,headerSummary:d,headerAction:u,className:p}){const{t:h}=_e.useTranslation();return r.jsx(Wa,{className:p,title:e??h("wordSearch.filterTitle","\uB2E8\uC5B4 \uAC80\uC0C9 \uC124\uC815"),sections:t,selected:a,onSelect:o,collapsible:n,defaultCollapsed:i,collapsed:l,onCollapsedChange:c,headerSummary:d,headerAction:u,align:"inline"})}function h1({title:e,headerAction:t,sections:a,selected:o,onSelect:n,className:i}){const{t:l}=_e.useTranslation();return a.length===0?null:r.jsx(Wa,{className:i,title:e??l("training.filter.phonemeGroup",{defaultValue:"\uD6C8\uB828 \uC74C\uC808"}),headerAction:t,sections:a,selected:o,onSelect:n,align:"newline"})}function m1({title:e,mode:t,onModeChange:a,matchMode:o,onMatchModeChange:n,positionCount:i,onPositionCountChange:l,inputMode:c,onInputModeChange:d,className:u}){const{t:p}=_e.useTranslation(),h={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")},m=x=>p("wordPairs.count",{n:x}),g=[{label:h.searchMode,items:[h.include,h.pick,h.explicit],display:"segmented",labelAction:r.jsx(xr,{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:h.phonemeOrder,items:[h.orderAny,h.orderMatch],display:"segmented",labelAction:r.jsx(xr,{items:p("wordPairs.filter.phonemeOrderInfo",{returnObjects:!0})})},{label:h.count,items:[m(1),m(2)],display:"segmented"},{label:h.inputMode,items:[h.charInput,h.pronInput],display:"segmented",labelAction:r.jsx(xr,{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={[h.searchMode]:t==="explicit"?h.explicit:t==="pick"?h.pick:h.include,[h.phonemeOrder]:o==="ordered"?h.orderMatch:h.orderAny,[h.count]:m(i),[h.inputMode]:c==="phoneme"?h.pronInput:h.charInput},f=(x,_)=>{_===h.searchMode?a(x===h.explicit?"explicit":x===h.pick?"pick":"include"):_===h.phonemeOrder?n(x===h.orderMatch?"ordered":"unordered"):_===h.count?l(x===m(2)?2:1):_===h.inputMode&&d(x===h.pronInput?"phoneme":"word")};return r.jsx(Wa,{className:u,title:e??p("wordPairs.filter.searchOptionsTitle","\uB300\uB9BD \uC124\uC815"),sections:g,selected:v,onSelect:f,align:"inline"})}var EA=".ihabdevteam-core-scope .popup-list .popup-panel{max-height:calc(100% - 60px);max-width:880px;width:calc(100% - 40px)}.ihabdevteam-core-scope .popup-list .popup-content{display:flex;flex-direction:column;gap:var(--spacing-m);min-height:0;overflow:hidden}.ihabdevteam-core-scope .popup-list .table-wrap{flex:1;min-height:0;overflow-x:auto;overflow-y:auto;overscroll-behavior-y:contain}.ihabdevteam-core-scope .popup-list .table-fields,.ihabdevteam-core-scope .popup-list .table-row{min-width:520px}.ihabdevteam-core-scope .popup-list__row--selected{background:var(--color-deepWhite);color:var(--color-main);font-weight:600}";oe(EA);function b1(e){const{title:t,items:a,columns:o,gridTemplateColumns:n,mobileGridTemplateColumns:i,searchPlaceholder:l,searchFn:c,defaultSortKey:d,defaultSortAsc:u=!0,selectedId:p,selectedIds:h,onSelect:m,onClose:g,pageSizeOptions:v=[10,25,50,100],initialPageSize:f,emptyText:x,noMatchText:_,countLabel:b,topContent:y,className:C=""}=e,{t:k}=_e.useTranslation(),w=l??k("common.search","\uAC80\uC0C9"),A=x??k("common.emptyList","\uD56D\uBAA9\uC774 \uC5C6\uC2B5\uB2C8\uB2E4."),B=_??k("common.noMatches","\uB9DE\uB294 \uD56D\uBAA9\uC774 \uC5C6\uC2B5\uB2C8\uB2E4"),[S,D]=s.useState(""),[T,I]=s.useState(d??o[0]?.key??""),[L,V]=s.useState(u),[N,j]=s.useState(String(f??v[0]??10)),[H,X]=s.useState(1);s.useEffect(()=>{X(1)},[S,N]);const ae=c!==null,M=s.useCallback((K,Z)=>{if(!Z)return!0;const ie=Z.toLowerCase();return o.some(te=>{const ce=K[te.key];return ce==null?!1:String(ce).toLowerCase().includes(ie)})},[o]),G=c??M,P=s.useMemo(()=>{const K=ae?a.filter(Z=>G(Z,S)):a;return T?[...K].sort((Z,ie)=>{const te=Z[T],ce=ie[T];return te===ce?0:ad(te,ce,L)}):K},[a,S,T,L,ae,G]),O=Math.max(1,Math.ceil(P.length/Number(N)));H>O&&X(O);const E=Math.min(H,O),F=P.slice((E-1)*Number(N),E*Number(N)),R=s.useCallback(K=>{T===K?V(Z=>!Z):(I(K),V(!0)),X(1)},[T]),z=s.useMemo(()=>{if(typeof b=="function"){const K=P.length,Z=b(K);if(typeof Z=="string"){const ie=Z.lastIndexOf(String(K));if(ie>=0)return{prefix:Z.slice(0,ie),suffix:Z.slice(ie+String(K).length)}}return{label:Z}}if(typeof b=="string"&&b.includes("{n}")){const[K,Z]=b.split("{n}");return{prefix:K,suffix:Z}}return{prefix:k("common.totalCountPrefix","\uCD1D "),suffix:k("common.totalCountSuffix","\uAC1C")}},[b,P.length,k]),W=s.useMemo(()=>o.map(K=>({label:K.label,onClick:K.sortable!==!1?()=>R(K.key):void 0,className:K.className,sortDir:K.sortable!==!1&&T===K.key?L?"asc":"desc":null})),[o,T,L,R]),Q=s.useMemo(()=>v.map(K=>({value:String(K),label:k("common.pageSizeLabel",{n:K})})),[v,k]);return r.jsxs(to,{className:`popup-list ${C}`,title:t,onClose:g,children:[y,"label"in z&&r.jsx("p",{className:"toolbar__count body-1",children:z.label}),r.jsx(Ri,{count:"label"in z?void 0:{value:P.length,prefix:z.prefix,suffix:z.suffix},search:ae?{value:S,onChange:D,placeholder:w}:void 0,pageSize:{options:Q,value:N,onChange:j},pagination:{page:E,total:O,onChange:X}}),r.jsx(Hi,{size:"medium",gridTemplateColumns:n,mobileGridTemplateColumns:i,resizable:!0,fields:W,items:F,onRowClick:m,renderRow:K=>{const Z=h!=null?K.id!=null&&h.has(K.id):p!=null&&K.id===p;return o.map(ie=>({content:ie.render?ie.render(K):K[ie.key]??"",className:Ee(ie.className,Z&&"popup-list__row--selected")}))},empty:ae&&S!==""&&a.length>0?B:A})]})}function Zu(e){const{title:t,message:a,topContent:o,details:n,children:i,confirmLabel:l,cancelLabel:c,hideCancel:d=!1,extraAction:u,confirmVariant:p="main",confirmDisabled:h=!1,onConfirm:m,closeOnConfirm:g=!0,onClose:v,inline:f,size:x="small",className:_,initialFocus:b="close"}=e,{t:y}=_e.useTranslation(),C=s.useRef(null);s.useEffect(()=>{if(f||b==="close")return;const D=C.current?.closest(".popup-panel"),T=Array.from(D?.querySelectorAll(".popup-footer--buttons button")??[]),I=b==="confirm"?T[T.length-1]:d?void 0:T[u?1:0];I&&!I.disabled&&I.focus()},[]);const k=s.useRef(!1),[w,A]=s.useState(!1),B=D=>{let T=!1;return{close:()=>{T=!0,D()},\uB2EB\uC558\uB098:()=>T}},S=async D=>{if(k.current)return;k.current=!0;const T=typeof document<"u"?document.activeElement:null;A(!0);let I=!1;try{I=await D()}catch(L){typeof console<"u"&&console.error(L)}finally{I||(k.current=!1,A(!1),requestAnimationFrame(()=>{const L=document.activeElement;(!L||L===document.body)&&T?.isConnected&&T.focus()}))}};return r.jsxs(to,{title:t,onClose:v,closeDisabled:w,inline:f,size:x,className:Ee("confirm-popup",o!=null&&"confirm-popup--has-top",_),buttons:[...u?[{label:u.label,variant:u.variant??"default",disabled:u.disabled||w,onClick:async({closeWithAnimation:D})=>{await S(async()=>{const T=B(D);await u.onClick(T.close);const I=u.closeOnClick??!0;return I&&D(),I||T.\uB2EB\uC558\uB098()})}}]:[],...d?[]:[{label:c??y("common.cancel","\uCDE8\uC18C"),variant:"default",disabled:w,onClick:({closeWithAnimation:D})=>D()}],{label:l??y("common.confirm","\uD655\uC778"),variant:p,disabled:h||w,onClick:async({closeWithAnimation:D})=>{await S(async()=>{const T=B(D);return await m(T.close),g&&D(),g||T.\uB2EB\uC558\uB098()})}}],children:[o!=null&&r.jsx("div",{className:"confirm-popup__top",children:o}),n&&n.length>0&&r.jsx(Dn,{children:n.map((D,T)=>r.jsx(ao,{label:D.label,children:r.jsx("span",{className:"panel-row__text body-2",children:D.value})},T))}),r.jsx("p",{ref:C,className:"body-2 confirm-popup__message",children:a}),i]})}function g1(e,t,a={}){const{t:o}=_e.useTranslation(),[n,i]=s.useState(!1),l=s.useRef(!1),c=s.useCallback(()=>{l.current=!0},[]),d=s.useCallback(()=>l.current?(l.current=!1,!0):e?(i(!0),!1):!0,[e]),u=n?r.jsx(Zu,{title:a.title??o("common.discardConfirm.title","\uC785\uB825\uC744 \uCDE8\uC18C\uD560\uAE4C\uC694?"),message:a.message??o("common.discardConfirm.body","\uC800\uC7A5\uD558\uC9C0 \uC54A\uC73C\uBA74 \uC9C0\uAE08\uAE4C\uC9C0 \uC785\uB825\uD55C \uB0B4\uC6A9\uC774 \uC0AC\uB77C\uC9D1\uB2C8\uB2E4."),confirmLabel:a.confirmLabel??o("common.discardConfirm.confirm","\uC785\uB825 \uCDE8\uC18C"),confirmVariant:"danger",onConfirm:()=>{i(!1),t()},onClose:()=>i(!1)}):null;return{beforeClose:d,discardPopup:u,allowClose:c}}var DA=".ihabdevteam-core-scope .coupon-input-popup__input{background:var(--color-white);border:1px solid var(--color-whiteLine);border-radius:var(--radius-s);box-sizing:border-box;color:var(--color-darkGray);font-family:inherit;height:48px;letter-spacing:.06em;padding:0 14px;text-transform:uppercase;transition:border-color .15s;width:100%}.ihabdevteam-core-scope .coupon-input-popup__input:focus{border-color:var(--color-main);outline:none}.ihabdevteam-core-scope .coupon-input-popup__input::-moz-placeholder{color:var(--color-lightGray);letter-spacing:normal;text-transform:none}.ihabdevteam-core-scope .coupon-input-popup__input::placeholder{color:var(--color-lightGray);letter-spacing:normal;text-transform:none}.ihabdevteam-core-scope .coupon-input-popup__error{color:#e84040;color:var(--color-red,#e84040);margin:var(--spacing-xs) 0 0}";oe(DA);function f1({onApply:e,onCancel:t}){const{t:a}=_e.useTranslation(),[o,n]=s.useState(""),[i,l]=s.useState(!1),[c,d]=s.useState(null),u=s.useRef(null);s.useEffect(()=>{u.current?.focus()},[]);const p=s.useCallback(async g=>{const v=o.trim();if(v){l(!0),d(null);try{await e(v),g()}catch(f){d(Jr(f)),l(!1),requestAnimationFrame(()=>u.current?.focus())}}},[o,e]),h=s.useCallback((g,v)=>{g.key==="Enter"&&!g.nativeEvent.isComposing&&p(v)},[p]),m=g=>{n(g.target.value),d(null)};return r.jsx(to,{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:g})=>g()},{label:a("coupons.applyButton","\uC801\uC6A9"),variant:"main",disabled:!o.trim()||i,onClick:({closeWithAnimation:g})=>{p(g)}}],children:({closeWithAnimation:g})=>r.jsxs(r.Fragment,{children:[r.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:o,onChange:m,onKeyDown:v=>h(v,g),disabled:i,autoComplete:"off",spellCheck:!1}),c&&r.jsx("p",{className:"coupon-input-popup__error caption-1",role:"alert",children:c})]})})}var NA=".ihabdevteam-core-scope .party-container{inset:0;overflow:visible;pointer-events:none;position:fixed}.ihabdevteam-core-scope .confetti{display:none;left:0;opacity:0;position:fixed;top:0;transform:translateZ(0);will-change:transform,opacity}.ihabdevteam-core-scope .confetti--left{transform-origin:left bottom}.ihabdevteam-core-scope .confetti--right{transform-origin:right bottom}.ihabdevteam-core-scope .confetti.show{display:block;opacity:1;transition:opacity .2s linear}";oe(NA);const v1=["var(--color-main)","var(--color-sub)"],TA=2e3;function jA(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 us({active:e=!1,count:t=40,duration:a=2e3,strength:o=1,onComplete:n,trigger:i=0}){const l=s.useMemo(()=>{const f=Math.floor(t/2),x=t-f,_=(b,y)=>Array.from({length:b}).map((C,k)=>{const w=6+Math.random()*12,A=Math.round(Math.min(18,w*Math.min(1.5,1+o*.4))),B=v1[Math.floor(Math.random()*v1.length)],S=Math.random()*300,D=(360+Math.random()*260)*o*1.2,T=(y==="left"?-95+Math.random()*40:-85-Math.random()*40)*Math.PI/180,I=Math.cos(T)*D,L=Math.sin(T)*D*1.35,V=Math.random()*720-360,N=(1200+Math.random()*3e3)*Math.min(1.6,1+o*.3),j=Math.random()>.7?"50%":"3px";return{id:`${y}-${k}`,side:y,size:A,color:B,delay:S,vx:I,vy:L,angularVel:V,life:N,borderRadius:j}});return[..._(f,"left"),..._(x,"right")]},[t,o]),c=s.useRef(null),d=s.useRef({}),u=s.useRef(null),p=s.useRef(n);s.useEffect(()=>{p.current=n},[n]);const h=s.useRef(null),m=s.useRef(null),g=()=>{if(typeof document>"u")return null;let f=document.querySelector("[data-ihab-effect-root]");return f||(f=document.createElement("div"),f.className="app-effect",f.dataset.ihabEffectRoot="",f.style.position="fixed",f.style.inset="0",f.style.pointerEvents="none",f.style.zIndex="99998",document.body.appendChild(f)),f};if(typeof document<"u"&&m.current==null&&(m.current=g()),s.useEffect(()=>{if(!e)return;if(typeof window<"u"&&window.matchMedia?.("(prefers-reduced-motion: reduce)").matches){const G=setTimeout(()=>p.current?.(),0);return()=>clearTimeout(G)}const f=1200,x=performance.now(),_=m.current&&m.current!==document.body?m.current.getBoundingClientRect():null,b=Math.max(60,(window.innerHeight||800)*.05),y=G=>Math.max(40,(G||window.innerWidth)*.02),C=_?.width||window.innerWidth||375,k=_?.height||window.innerHeight||812,w=G=>{const P=[...G].sort((O,E)=>O-E);return P[Math.floor(P.length/2)]||1},A=w(l.map(G=>Math.abs(G.vy))),B=w(l.map(G=>Math.abs(G.vx))),S=Math.sqrt(2*f*(k*.72+b))/A,D=A*S/f,T=C*.5/(B*D),I=(G,P,O)=>Math.min(O,Math.max(P,G)),L=I(S,.8,2.4),V=I(T,.7,2.2),N=a>0?a/TA:1,j=l.map(G=>({...G,life:G.life*N,vx:G.vx*V,vy:G.vy*L,startTime:x+G.delay,ended:!1})),H=_?{x:_.left-y(_.width),y:_.top+_.height+b}:{x:-y(window.innerWidth),y:window.innerHeight+b},X=_?{x:_.left+_.width+y(_.width),y:_.top+_.height+b}:{x:window.innerWidth+y(window.innerWidth),y:window.innerHeight+b},ae=G=>{let P=!1;for(const O of j){const E=d.current[O.id];if(!E||!E)continue;if(G<O.startTime){E.style.display="none",P=!0;continue}if(!O._inited){const ce=O.side==="left"?H.x:X.x,De=O.side==="left"?H.y:X.y;E.style.left=`${ce}px`,E.style.top=`${De}px`,E.style.transform="translate3d(0px, 0px, 0)",E.style.display="block",E.style.zIndex="100000",typeof O.color=="string"&&O.color.startsWith("var(")&&(E.style.background=jA(E,O.color)??"#FF0060"),O._inited=!0}const F=(G-O.startTime)/1e3;if(F<0)continue;const R=O.life/1e3;if(F>=R){E.style.opacity="0",E.style.display="none",O.ended=!0;continue}P=!0;const z=O.side==="left"?H.x:X.x,W=O.side==="left"?H.y:X.y,Q=z+O.vx*F,K=W+O.vy*F+.5*f*F*F,Z=(O.angularVel||0)*F,ie=Q-z,te=K-W;E.style.transform=`translate3d(${ie}px, ${te}px, 0) rotate(${Z}deg)`,E.style.opacity=`${Math.max(0,1-F/R)}`}P?u.current=requestAnimationFrame(ae):p.current?.()};u.current=requestAnimationFrame(ae);const M=setTimeout(()=>{try{if((m.current?m.current.querySelectorAll(".confetti"):document.querySelectorAll(".confetti")).length===0&&!document.querySelector(".party-container")){const G=document.createElement("div");G.className="party-container",G.style.position="fixed",G.style.inset="0",G.style.pointerEvents="none",G.style.overflow="visible",G.style.zIndex="2147483647";for(const P of l){const O=document.createElement("span");O.className=`confetti confetti--${P.side}`,O.setAttribute("aria-hidden","true"),O.style.display="none",O.style.position="fixed",O.style.left="0px",O.style.top="0px",O.style.width=`${P.size}px`,O.style.height=`${Math.max(4,P.size*.6)}px`,O.style.background=P.color,O.style.borderRadius=P.borderRadius,O.style.transform="translate3d(0,0,0)",O.style.opacity="0",G.appendChild(O),d.current[P.id]=O}(document.body||m.current).appendChild(G),h.current=G}}catch{}},300);return()=>{if(u.current&&cancelAnimationFrame(u.current),clearTimeout(M),h.current){try{h.current.remove()}catch{}h.current=null}}},[e,a,i,l]),!e)return null;const v=r.jsx("div",{className:"party-container",ref:c,children:l.map(f=>r.jsx("span",{"aria-hidden":!0,ref:x=>{d.current[f.id]=x},className:`confetti confetti--${f.side}`,style:{width:`${f.size}px`,height:`${Math.max(4,f.size*.6)}px`,background:f.color,borderRadius:f.borderRadius}},`${f.id}-${i}`))});return typeof document<"u"?ua.createPortal(v,m.current||document.body):v}const Xu=e=>typeof e=="number"&&Number.isFinite(e)&&e>0?e:void 0;function x1({trigger:e=0,active:t=!1}){const[a,o]=s.useState(null);s.useEffect(()=>{if(typeof window>"u")return;const i=l=>{const c=l.detail??{};o(d=>({n:(d?.n??0)+1,count:Xu(c.count),strength:Xu(c.strength),duration:Xu(c.duration)}))};return window.addEventListener("party:trigger",i),()=>window.removeEventListener("party:trigger",i)},[]);const n=s.useCallback(()=>o(null),[]);return r.jsxs(r.Fragment,{children:[r.jsx(us,{active:t,trigger:e}),a&&r.jsx(us,{active:!0,trigger:a.n,count:a.count,strength:a.strength,duration:a.duration,onComplete:n})]})}var LA=".ihabdevteam-core-scope .page-title{align-items:center;display:flex;gap:12px;justify-content:space-between;padding-bottom:var(--spacing-page)}.ihabdevteam-core-scope .page-title__main{align-items:flex-start;display:flex;flex:1;flex-direction:column;min-width:0;text-align:left}.ihabdevteam-core-scope .page-title__title-row{align-items:center;display:flex;gap:12px}.ihabdevteam-core-scope .page-title__title{margin:0}.ihabdevteam-core-scope .page-title__title-action{align-items:center;display:flex;flex-shrink:0}.ihabdevteam-core-scope .page-title__badge{align-items:center;display:flex}.ihabdevteam-core-scope .page-title__sub{color:var(--color-gray);margin:6px 0 0}.ihabdevteam-core-scope .page-title__action{flex-shrink:0;margin-left:var(--spacing-s)}@media (max-width:767px){.ihabdevteam-core-scope .page-title{align-items:flex-start;flex-direction:column;gap:10px}.ihabdevteam-core-scope .page-title__action{align-self:center;margin-left:0}}.ihabdevteam-core-scope .page-title__back{flex-shrink:0;margin-left:-8px;margin-right:-4px}.ihabdevteam-core-scope .page-title--wrap{flex-wrap:wrap}.ihabdevteam-core-scope .page-title--wrap .page-title__main{min-width:min(320px,100%)}";oe(LA);function C1({title:e,sub:t,rightAction:a,titleAction:o,badge:n,badgeVariant:i="default",documentTitle:l,onBack:c,backLabel:d,wrap:u=!1}){const{t:p}=_e.useTranslation();Qc(typeof e=="string"?e:l??null);const h=d??p("common.back","\uB4A4\uB85C");return r.jsxs("div",{className:u?"page-title page-title--wrap":"page-title",children:[r.jsxs("div",{className:"page-title__main",children:[r.jsxs("div",{className:"page-title__title-row",children:[c&&r.jsx(fe,{htmlType:"button",className:"page-title__back",size:48,type:"dot",icon:"chevron-left",iconSize:"large",useBorder:!1,iconColor:"var(--color-text-primary)",ariaLabel:h,showTooltipInfo:h,onClick:c}),r.jsx("h1",{className:"page-title__title h1",children:e}),n&&r.jsx("div",{className:"page-title__badge",children:r.jsx(Dt,{label:n,size:"small",variant:i,fill:"outline"})}),o?r.jsx("div",{className:"page-title__title-action",children:o}):null]}),t&&r.jsx("p",{className:"page-title__sub body-2",children:t})]}),a?r.jsx("div",{className:"page-title__action",children:a}):null]})}function _1(e){return e??""}const y1=s.createContext({words:[],loading:!1});function w1(){return s.useContext(y1)}function k1({words:e,loading:t,error:a,statusMessage:o,localVersion:n,remoteVersion:i,progress:l,clearAndRefetch:c,checkRemoteVersion:d,children:u}){return r.jsx(y1.Provider,{value:{words:e,loading:t,error:a,statusMessage:o,localVersion:n,remoteVersion:i,progress:l,clearAndRefetch:c,checkRemoteVersion:d},children:u})}var MA=".ihabdevteam-core-scope .summary-strip{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-card);box-shadow:var(--shadow-card);padding:var(--spacing-m) var(--spacing-l);width:100%}.ihabdevteam-core-scope .summary-strip--flat{box-shadow:none}.ihabdevteam-core-scope .summary-strip__row{align-items:center;display:flex;gap:var(--spacing-l)}.ihabdevteam-core-scope .summary-strip__items{grid-gap:var(--spacing-s) var(--spacing-l);display:grid;flex:1;gap:var(--spacing-s) var(--spacing-l);grid-template-columns:repeat(2,minmax(0,1fr));min-width:0}@media (min-width:640px){.ihabdevteam-core-scope .summary-strip__items{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (min-width:1024px){.ihabdevteam-core-scope .summary-strip__items{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (min-width:1280px){.ihabdevteam-core-scope .summary-strip__items{grid-template-columns:repeat(4,minmax(0,1fr));grid-template-columns:repeat(var(--summary-strip-cols,4),minmax(0,1fr))}}.ihabdevteam-core-scope .summary-strip__item{min-width:0}.ihabdevteam-core-scope .summary-strip__label{color:var(--color-gray);margin:0}.ihabdevteam-core-scope .summary-strip__value{margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ihabdevteam-core-scope .summary-strip__actions{align-items:center;display:flex;flex-shrink:0;gap:var(--spacing-xs)}";oe(MA);function B1({items:e,actions:t,columns:a,flat:o=!1,className:n,style:i}){const l=a??e.length;return r.jsx("section",{className:Ee("summary-strip",o&&"summary-strip--flat",n),style:{"--summary-strip-cols":String(l),...i},children:r.jsxs("div",{className:"summary-strip__row",children:[r.jsx("div",{className:"summary-strip__items",children:e.map((c,d)=>r.jsxs("div",{className:"summary-strip__item",children:[r.jsx("p",{className:"summary-strip__label caption-1",children:c.label}),r.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&&r.jsx("div",{className:"summary-strip__actions",children:t})]})})}var $A='.ihabdevteam-core-scope .report-doc{--report-page-w:210mm;--report-page-h:297mm;--report-margin:14mm;display:flex;justify-content:safe center;max-width:100%;min-width:0;overflow-x:auto;padding-block:var(--spacing-s);position:relative;width:100%}.ihabdevteam-core-scope .report-doc__pages{align-items:center;display:flex;flex-direction:column;gap:var(--spacing-l)}.ihabdevteam-core-scope .report-doc__page{background:#fff;box-shadow:var(--shadow-card);color:#000;display:flex;flex-direction:column;flex-shrink:0;min-height:var(--report-page-h);padding:var(--report-margin);width:var(--report-page-w)}.ihabdevteam-core-scope .report-doc__header{align-items:center;display:flex;justify-content:space-between;margin-bottom:var(--spacing-s)}.ihabdevteam-core-scope .report-doc__title{margin:0}.ihabdevteam-core-scope .report-doc__footer{align-items:center;color:var(--color-gray);display:flex;justify-content:space-between;margin-top:auto;padding-top:var(--spacing-s)}.ihabdevteam-core-scope .report-doc__footer-left{align-items:center;display:flex;gap:var(--spacing-s)}.ihabdevteam-core-scope .report-doc__page-no{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.ihabdevteam-core-scope .report-doc__logo{height:28px;width:auto}.ihabdevteam-core-scope .report-doc__measure{display:flex;flex-direction:column;opacity:0;pointer-events:none;position:absolute;width:calc(var(--report-page-w) - var(--report-margin)*2);z-index:-10}.ihabdevteam-core-scope .report-doc__measure-blocks{display:flex;flex-direction:column}.ihabdevteam-core-scope .report-doc__ruler{height:calc(var(--report-page-h) - var(--report-margin)*2)}@media print{.ihabdevteam-core-scope .report-doc{display:block;overflow:visible;padding-block:0}.ihabdevteam-core-scope .report-doc__pages{display:block}.ihabdevteam-core-scope .report-doc__page{-moz-column-break-after:page;box-shadow:none;break-after:page;page-break-after:always}.ihabdevteam-core-scope .report-doc__page:last-child{-moz-column-break-after:auto;break-after:auto;page-break-after:auto}.ihabdevteam-core-scope .report-doc__measure{height:0;overflow:hidden}.ihabdevteam-core-scope .report-doc__measure>*{flex-shrink:0}}';oe($A);const RA=(e,t)=>`${e} / ${t}`;function A1({blocks:e,sectionTitles:t,logo:a,footer:o,pageLabel:n=RA,pageWidth:i,pageHeight:l,margin:c,className:d,style:u}){const{t:p}=_e.useTranslation(),h=s.useRef(null),m=s.useRef(null),g=s.useRef(null),v=s.useRef(null),[f,x]=s.useState(null),[_,b]=s.useState(!1);s.useEffect(()=>{const N=h.current;if(!N)return;const j=()=>b(N.scrollWidth>N.clientWidth+1);if(j(),typeof ResizeObserver>"u")return;const H=new ResizeObserver(j);return H.observe(N),()=>H.disconnect()},[f]);const y=e.map(N=>`${N.id}\0${N.section??""}\0${N.group??""}`).join(""),C=f&&f.shape===y?f.pages:null,[k,w]=s.useState(0);s.useEffect(()=>{const N=v.current;if(!N||typeof ResizeObserver>"u")return;const j=new ResizeObserver(()=>w(N.offsetHeight));return j.observe(N),()=>j.disconnect()},[]);const[A,B]=s.useState(0);s.useEffect(()=>{const N=m.current;if(!N||typeof ResizeObserver>"u")return;let j=null;const H=typeof requestAnimationFrame=="function"?M=>requestAnimationFrame(M):M=>setTimeout(M,16),X=typeof cancelAnimationFrame=="function"?cancelAnimationFrame:M=>clearTimeout(M),ae=new ResizeObserver(()=>{j==null&&(j=H(()=>{j=null,B(M=>M+1)}))});return Array.from(N.children).forEach(M=>ae.observe(M)),()=>{ae.disconnect(),j!=null&&X(j)}},[y]),s.useLayoutEffect(()=>{const N=m.current,j=v.current;if(!N||!j)return;const H=R=>R.getBoundingClientRect().height||R.offsetHeight,X=new Map;g.current?.querySelectorAll("[data-chrome-section]").forEach(R=>{X.set(R.dataset.chromeSection??"",H(R))});const ae=R=>H(j)-(X.get(R??"")??0),M=Array.from(N.children).map(R=>H(R)),G=[];e.forEach((R,z)=>{const W=G[G.length-1],Q=W?e[W[0]]:void 0;Q&&R.group!=null&&Q.group===R.group&&Q.section===R.section?W.push(z):G.push([z])});const P=[];let O=[],E=0;const F=()=>{O.length&&P.push(O),O=[],E=0};G.forEach(R=>{const z=R.reduce((Q,K)=>Q+M[K],0),W=ae(e[R[0]].section);O.length&&e[O[0]].section!==e[R[0]].section&&F(),z>W?R.forEach(Q=>{O.length&&E+M[Q]>W+.01&&F(),O.push(Q),E+=M[Q]}):(O.length&&E+z>W+.01&&F(),R.forEach(Q=>O.push(Q)),E+=z)}),F(),x(R=>R&&R.shape===y&&JSON.stringify(R.pages)===JSON.stringify(P)?R:{shape:y,pages:P})},[y,k,i,l,c,A]);const S=Id,D=S,T=o??r.jsxs(r.Fragment,{children:[r.jsx("img",{src:D,alt:"IHAB",className:"report-doc__logo"}),"\xA9 IHAB, Inc. All rights reserved."]}),I=(N,j,H)=>({header:r.jsxs("div",{className:"report-doc__header",children:[r.jsx("h2",{className:"report-doc__title h3b",children:H!=null&&t?.[H]||null}),a]}),footer:r.jsxs("div",{className:"report-doc__footer caption-1",children:[r.jsx("span",{className:"report-doc__footer-left",children:T}),r.jsx("span",{className:"report-doc__page-no",children:n(N,j)})]})}),L=Array.from(new Set(e.map(N=>N.section??""))),V={...i?{"--report-page-w":i}:null,...l?{"--report-page-h":l}:null,...c?{"--report-margin":c}:null,...u};return r.jsxs("div",{ref:h,className:Ee("report-doc",d),style:V,tabIndex:_?0:void 0,role:_?"group":void 0,"aria-label":_?p("report.previewRegion","\uBCF4\uACE0\uC11C \uBBF8\uB9AC\uBCF4\uAE30"):void 0,children:[r.jsxs("div",{className:"report-doc__measure","aria-hidden":!0,children:[r.jsx("div",{ref:v,className:"report-doc__ruler"}),r.jsx("div",{ref:g,children:L.map(N=>{const j=I(1,1,N||void 0);return r.jsxs("div",{"data-chrome-section":N,children:[j.header,j.footer]},N)})}),r.jsx("div",{ref:m,className:"report-doc__measure-blocks",children:e.map(N=>r.jsx("div",{children:N.content},N.id))})]}),C&&r.jsx("div",{className:"report-doc__pages",children:C.map((N,j)=>{const{header:H,footer:X}=I(j+1,C.length,e[N[0]].section);return r.jsxs("section",{className:"report-doc__page",children:[H,N.map(ae=>r.jsx("div",{children:e[ae].content},e[ae].id)),X]},j)})})]})}var PA=".ihabdevteam-core-scope .report-info{border:1px solid var(--color-border);border-radius:var(--radius-card);margin-bottom:var(--spacing-l);padding:var(--spacing-s) var(--spacing-m)}.ihabdevteam-core-scope .report-info__title{color:var(--color-darkGray);margin:0 0 var(--spacing-s)}.ihabdevteam-core-scope .report-info__grid{grid-gap:var(--spacing-xs) var(--spacing-l);display:grid;gap:var(--spacing-xs) var(--spacing-l);grid-template-columns:repeat(4,minmax(0,1fr));grid-template-columns:repeat(var(--report-info-cols,4),minmax(0,1fr))}@media (max-width:640px){.ihabdevteam-core-scope .report-info__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.ihabdevteam-core-scope .report-info__field{align-items:baseline;display:flex;gap:var(--spacing-s)}.ihabdevteam-core-scope .report-info__label{color:var(--color-gray);flex-shrink:0;width:3.5rem}.ihabdevteam-core-scope .report-info__value{color:var(--color-darkGray);white-space:nowrap}";oe(PA);function S1({title:e,fields:t,columns:a=4,className:o,style:n}){return r.jsxs("div",{className:Ee("report-info",o),style:{"--report-info-cols":String(a),...n},children:[e&&r.jsx("p",{className:"report-info__title h5b",children:e}),r.jsx("div",{className:"report-info__grid",children:t.map((i,l)=>r.jsxs("div",{className:"report-info__field body-2",children:[r.jsx("span",{className:"report-info__label body-3",children:i.label}),r.jsx("span",{className:"report-info__value",children:i.value})]},l))})]})}const qo=new Map;let ps=null;const zA=12;function IA(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 hs(){const e=new Map;for(const t of qo.keys()){if(!t.isConnected)continue;const a=IA(t),o=e.get(a)??[];o.push(t),e.set(a,o)}for(const t of e.values()){t.sort((o,n)=>o.compareDocumentPosition(n)&Node.DOCUMENT_POSITION_FOLLOWING?-1:1);let a=0;for(const o of t){a>0?o.style.setProperty("--update-alert-stack-offset",`${a}px`):o.style.removeProperty("--update-alert-stack-offset");const n=o.getBoundingClientRect().height;n>0&&(a+=n+zA)}}}function OA(e){return typeof window>"u"?()=>{}:(qo.set(e,(qo.get(e)??0)+1),qo.get(e)===1&&typeof ResizeObserver<"u"&&(ps??(ps=new ResizeObserver(()=>hs())),ps.observe(e)),hs(),()=>{const t=(qo.get(e)??1)-1;if(t>0){qo.set(e,t),hs();return}qo.delete(e),ps?.unobserve(e),e.style.removeProperty("--update-alert-stack-offset"),hs()})}var FA=".ihabdevteam-core-scope .update-alert{animation:update-alert-slide-in .32s cubic-bezier(.34,1.56,.64,1) both;backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);background:hsla(0,0%,97%,.92);border:1px solid var(--color-main);border-radius:var(--radius-m);box-shadow:0 4px 24px rgba(0,0,0,.14),0 1px 4px rgba(0,0,0,.08),inset 0 0 0 .5px rgba(0,0,0,.1);padding:var(--spacing-l);width:380px}.ihabdevteam-core-scope .update-alert,.ihabdevteam-core-scope .update-alert-stack{display:flex;flex-direction:column;gap:12px;max-width:calc(100vw - 32px);position:fixed;right:16px;top:16px;top:calc(16px + var(--update-alert-stack-offset, 0px));z-index:var(--z-alert)}.ihabdevteam-core-scope .update-alert-stack{align-items:flex-end}.ihabdevteam-core-scope .update-alert-stack .update-alert{position:relative;top:auto;z-index:auto}.ihabdevteam-core-scope .update-alert:has(.update-alert__close) .update-alert__title{padding-right:24px}.ihabdevteam-core-scope .update-alert__close{align-items:center;background:none;border:none;border-radius:6px;border-radius:var(--radius-s,6px);color:#888;cursor:pointer;display:flex;font-size:20px;height:24px;justify-content:center;line-height:1;position:absolute;right:8px;top:8px;width:24px}.ihabdevteam-core-scope .update-alert__close:hover{background:rgba(0,0,0,.06);color:#333}.ihabdevteam-core-scope .update-alert__top{align-items:center;display:flex;gap:10px}@keyframes update-alert-slide-in{0%{opacity:0;transform:translateX(calc(100% + 24px))}to{opacity:1;transform:translateX(0)}}.ihabdevteam-core-scope .update-alert__icon{align-items:center;color:var(--color-main);display:flex;flex-shrink:0;font-size:20px;height:40px;justify-content:center;width:40px}.ihabdevteam-core-scope .update-alert__body{flex:1;min-width:0}.ihabdevteam-core-scope .update-alert__title{color:#1a1a1a;text-align:left}.ihabdevteam-core-scope .update-alert__message{color:#555;margin-top:2px;text-align:left}.ihabdevteam-core-scope .update-alert__action{width:100%}";oe(FA);function E1({title:e,message:t,actionLabel:a,onAction:o,icon:n,onClose:i,className:l=""}){const{t:c}=_e.useTranslation(),d=a??c("common.update","\uC5C5\uB370\uC774\uD2B8"),u=s.useRef(null),p=s.useRef(!1);return s.useLayoutEffect(()=>{const h=u.current,m=h?.parentElement?.closest(".update-alert-stack")??h,g=m?OA(m):null;return()=>{g?.(),p.current&&h&&h.contains(document.activeElement)&&mi(h)}},[]),r.jsxs("div",{ref:u,className:Ee("update-alert",l),role:"alert",children:[i&&r.jsx("button",{type:"button",className:"update-alert__close",onClick:()=>{p.current=!0,i()},"aria-label":c("common.close","\uB2EB\uAE30"),children:"\xD7"}),r.jsxs("div",{className:"update-alert__top",children:[r.jsx("div",{className:"update-alert__icon",children:n??r.jsx(hp,{size:20,strokeWidth:2})}),r.jsxs("div",{className:"update-alert__body",children:[r.jsx("div",{className:"update-alert__title h4",children:e}),r.jsx("div",{className:"update-alert__message body-3",children:t})]})]}),o&&r.jsx(fe,{htmlType:"button",size:32,variant:"main",shape:"pill",className:"update-alert__action",onClick:o,children:d})]})}var HA=".ihabdevteam-core-scope .training-card{background:var(--color-white);border:1px solid transparent;border-radius:var(--radius-card);display:flex;flex-direction:column;gap:10px;max-width:100%;padding:18px;position:relative;transition:border-color .15s,box-shadow .15s;width:360px}.ihabdevteam-core-scope .training-card:hover{border-color:var(--color-main);box-shadow:0 4px 16px var(--color-main-a10)}.ihabdevteam-core-scope .training-card--dragging{opacity:.5}.ihabdevteam-core-scope .training-card--clickable{cursor:pointer}.ihabdevteam-core-scope .training-card__header{grid-column-gap:8px;grid-row-gap:4px;align-items:start;-moz-column-gap:8px;column-gap:8px;display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto auto;row-gap:4px}.ihabdevteam-core-scope .training-card__title-row{display:contents}.ihabdevteam-core-scope .training-card__title-row>:first-child{grid-area:1/1;min-width:0}.ihabdevteam-core-scope .training-card__header>:last-child{grid-area:2/1}.ihabdevteam-core-scope .training-card__title{color:var(--color-darkGray);margin:0;overflow:hidden;text-align:left;text-overflow:ellipsis;white-space:nowrap}.ihabdevteam-core-scope .training-card__top-actions{align-items:center;align-self:start;display:flex;flex-shrink:0;gap:2px;grid-column:2;grid-row:1/3;margin-right:-8px}.ihabdevteam-core-scope .training-card__publisher{background:none;border:none;color:var(--color-gray);cursor:pointer;font-size:11px;font-weight:400;margin-block:-6px;max-width:120px;min-height:24px;overflow:hidden;padding:0;padding-block:6px;text-align:left;text-overflow:ellipsis;white-space:nowrap;width:-moz-fit-content;width:fit-content}.ihabdevteam-core-scope .training-card__publisher:hover{color:var(--color-main);text-decoration:underline}.ihabdevteam-core-scope .training-card__description{color:var(--color-gray);margin:0;min-height:1.55em;overflow:hidden;text-align:left;text-overflow:ellipsis;white-space:nowrap}.ihabdevteam-core-scope .training-card__body{display:flex;flex:1;flex-direction:column;gap:8px;justify-content:flex-end}.ihabdevteam-core-scope .training-card__empty{color:var(--color-lightGray)}.ihabdevteam-core-scope .training-card__types{display:flex;flex-wrap:wrap;gap:6px;justify-content:center}.ihabdevteam-core-scope .training-card__types .button{min-width:0;padding-inline:12px}.ihabdevteam-core-scope .training-card__words{align-content:flex-start;display:flex;flex-wrap:wrap;gap:4px}.ihabdevteam-core-scope .training-card__footer{align-items:center;display:flex;gap:var(--spacing-xs);justify-content:space-between;margin-top:auto;padding-top:8px}.ihabdevteam-core-scope .training-card__footer-left{align-items:center;display:flex;gap:6px;min-width:0}.ihabdevteam-core-scope .training-card__date{color:var(--color-gray);font-size:11px;white-space:nowrap}.ihabdevteam-core-scope .training-card__meta{align-items:center;display:flex;gap:4px}.ihabdevteam-core-scope .training-card__publisher--static{cursor:default}.ihabdevteam-core-scope .training-card__publisher--static:hover{color:var(--color-gray);text-decoration:none}";oe(HA);function D1({title:e,titleLevel:t=3,description:a,topActions:o,children:n,footerLeft:i,footerRight:l,ariaLabel:c,onClick:d,draggable:u,onDragStart:p,onDragEnd:h,className:m}){const g=t?`h${t}`:"div",v=i!=null||l!=null,f=n!=null&&n!==!1,x=s.useCallback(_=>{d&&_.target===_.currentTarget&&(_.key==="Enter"||_.key===" ")&&(_.preventDefault(),d())},[d]);return r.jsxs("div",{className:Ee("training-card",d?"training-card--clickable":"",m),onClick:d,onKeyDown:d?x:void 0,role:d?"button":void 0,"aria-label":d?c??(typeof e=="string"?e:void 0):void 0,tabIndex:d?0:void 0,draggable:u,onDragStart:p,onDragEnd:h,children:[r.jsxs("div",{className:"training-card__header",children:[r.jsxs("div",{className:"training-card__title-row",children:[typeof e=="string"?r.jsx(g,{className:"training-card__title h4",children:e}):e,o!=null&&r.jsx("div",{className:"training-card__top-actions",onClick:_=>_.stopPropagation(),children:o})]}),a!=null?typeof a=="string"?r.jsx("p",{className:"training-card__description body-3",children:a}):a:r.jsx("p",{className:"training-card__description body-3","aria-hidden":"true",children:" "})]}),f&&r.jsx("div",{className:"training-card__body",children:n}),v&&r.jsxs("div",{className:"training-card__footer",children:[i!=null&&r.jsx("div",{className:"training-card__footer-left",children:i}),l!=null&&r.jsx("div",{className:"training-card__meta",children:l})]})]})}var VA=".ihabdevteam-core-scope .training-card-group{background:var(--color-darkWhite);border:1px solid var(--color-darkWhite);border-radius:var(--radius-card);overflow:hidden;transition:border-color .15s,box-shadow .15s}.ihabdevteam-core-scope .training-card-group--dragover{border-color:var(--color-main);box-shadow:0 0 0 2px var(--color-main-a10)}.ihabdevteam-core-scope .training-card-group__header{align-items:center;display:flex;gap:8px;height:60px;padding:0 12px}.ihabdevteam-core-scope .training-card-group--collapsible .training-card-group__header{-webkit-user-select:none;-moz-user-select:none;user-select:none}.ihabdevteam-core-scope .training-card-group__chevron{flex-shrink:0}.ihabdevteam-core-scope .training-card-group__title{color:var(--color-black);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ihabdevteam-core-scope .training-card-group__count{color:var(--color-main);flex-shrink:0}.ihabdevteam-core-scope .training-card-group__actions{align-items:center;display:flex;flex-shrink:0;gap:8px;margin-left:auto}.ihabdevteam-core-scope .training-card-group__empty{color:var(--color-lightGray);padding:24px 16px;text-align:center}.ihabdevteam-core-scope .training-card-group__grid{align-items:stretch;display:flex;flex-wrap:wrap;gap:12px;padding:0 12px 12px}.ihabdevteam-core-scope .training-card-group__grid>*{min-width:0}";oe(VA);function N1({title:e,titleLevel:t=3,count:a,collapsed:o=!1,onToggle:n,sort:i,actions:l,empty:c=!1,emptyContent:d,dragOver:u=!1,onDragOver:p,onDragLeave:h,onDrop:m,children:g,className:v}){const{t:f}=_e.useTranslation(),x=s.useId(),_=t?`h${t}`:"span",b=n!=null,y=Ee("training-card-group",u&&"training-card-group--dragover",o&&"training-card-group--collapsed",b&&"training-card-group--collapsible",v);return r.jsxs("div",{className:y,onDragOver:p,onDragLeave:h,onDrop:m,role:typeof e=="string"&&e?"group":void 0,"aria-labelledby":typeof e=="string"&&e?x:void 0,children:[r.jsxs("header",{className:"training-card-group__header",children:[b&&r.jsx(fe,{htmlType:"button",size:40,type:"dot",variant:"transparent-gray",useBorder:!1,icon:o?"chevron-right":"chevron-down",ariaLabel:typeof e=="string"&&e?o?f("common.expandFor",{name:e}):f("common.collapseFor",{name:e}):o?f("common.expand","\uD3BC\uCE58\uAE30"):f("common.collapse","\uC811\uAE30"),className:"training-card-group__chevron","aria-expanded":!o,onClick:n}),typeof e=="string"?r.jsx(_,{id:x,className:"training-card-group__title h5b",children:e}):e,a!==void 0&&r.jsx("span",{className:"training-card-group__count body-3b",children:a}),(i||l!=null)&&r.jsxs("span",{className:"training-card-group__actions",onClick:C=>C.stopPropagation(),children:[i&&r.jsx(Ca,{size:40,options:i.options,value:i.value,placeholder:i.placeholder,onChange:i.onChange,ariaLabel:typeof e=="string"&&e?f("common.sortFor",{name:e}):void 0}),l]})]}),!o&&(c?r.jsx("div",{className:"training-card-group__empty body-3",children:d}):r.jsx("div",{className:"training-card-group__grid",children:g}))]})}var WA=".ihabdevteam-core-scope .word-table-block__meta{background:transparent}.ihabdevteam-core-scope .word-table-block__actions{align-items:center;display:flex;flex-wrap:wrap;gap:var(--spacing-xs);justify-content:space-between}.ihabdevteam-core-scope .word-table-block__actions-right{margin-left:auto}.ihabdevteam-core-scope .word-table-block__actions-left,.ihabdevteam-core-scope .word-table-block__actions-right{display:flex;gap:var(--spacing-xs)}@media (max-width:767px){.ihabdevteam-core-scope .word-table-block__actions{align-items:stretch;flex-direction:column}.ihabdevteam-core-scope .word-table-block__actions-left,.ihabdevteam-core-scope .word-table-block__actions-right{display:grid;grid-template-columns:repeat(2,1fr)}.ihabdevteam-core-scope .word-table-block__actions-right{margin-left:0}.ihabdevteam-core-scope .word-table-block__actions .button{min-width:0;width:100%}}.ihabdevteam-core-scope .my-word-table-preview-popup .popup-panel{max-width:none;width:min(1400px,94vw)}.ihabdevteam-core-scope .my-word-table-preview-popup .popup-body{overflow:auto;overscroll-behavior-y:contain}.ihabdevteam-core-scope .word-table-block__pages{display:flex;flex-direction:column;gap:24px;gap:var(--spacing-content,24px)}@media print{.ihabdevteam-core-scope .word-table-block>.filter-panel,.ihabdevteam-core-scope .word-table-block>.section__header,.ihabdevteam-core-scope .word-table-block__actions{display:none}.ihabdevteam-core-scope .word-table-block__pages .word-table{-moz-column-break-after:page;break-after:page;page-break-after:always;position:static}.ihabdevteam-core-scope .word-table-block__pages .word-table:last-child{-moz-column-break-after:auto;break-after:auto;page-break-after:auto}}";oe(WA);const GA="speechear:saved_word_tables";function UA(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 qA(){try{const e=localStorage.getItem(GA);if(!e)return[];const t=JSON.parse(e);return Array.isArray(t)?t.filter(UA):[]}catch{return[]}}function T1(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 Ju(e){return e.map(t=>t.homonum!=null?`${t.word}#${t.homonum}`:t.word).join("|")}function YA(e){const t=new Set;return e.map(a=>{let o=a.id;for(let n=2;t.has(o);n++)o=`${a.id}~${n}`;return t.add(o),o===a.id?a:{...a,id:o}})}function j1({title:e,titleIcon:t,disc:a,filterTitle:o,filterCollapsible:n,filterDefaultCollapsed:i,filterCollapsed:l,onFilterCollapsedChange:c,filterHeaderSummary:d,brand:u,code:p,items:h,onSaveComplete:m,onLoad:g,onRemoveItem:v,onReset:f,resetLabel:x,saveButtonLabel:_,secondarySaveButtonLabel:b,onReorder:y,showCellCount:C,onAddItem:k,className:w,renderSavePopup:A,renderWordSearch:B,hideControls:S,saveOnly:D,tableName:T,nameValue:I,onNameChange:L,descriptionValue:V,onDescriptionChange:N,namePlaceholder:j,descriptionPlaceholder:H,existingNames:X,editingName:ae,onCancel:M,initialItemsPerPage:G,renderCellAction:P,actionsLeftExtra:O}){const{t:E}=_e.useTranslation(),F=x??E("wordPrint.clearAllSelection","\uBAA8\uB450 \uC120\uD0DD \uD574\uC81C"),R=h===void 0,z=!!L,[W,Q]=s.useState([]),K=(I??"").trim(),Z=K||(j??"").trim(),ie=(V??"").trim()||(H??"").trim(),te=(X??[]).map(be=>be.trim().toLowerCase()),ce=[ae?.trim().toLowerCase(),...W].filter(be=>!!be),De=[...te];for(const be of ce){const Re=De.indexOf(be);Re!==-1&&De.splice(Re,1)}const q=K!==""&&De.includes(K.toLowerCase()),[ne,xe]=s.useState(Array(4).fill(null)),[we,ge]=s.useState(4),[de,me]=s.useState(null),he=ne.slice(0,we),U=!!u?.show,[ue,pe]=s.useState(!0),[Ne,Le]=s.useState(!0),Oe=u&&{...u,top:ue,bottom:Ne},[Ie,ct]=s.useState("landscape"),[ot,tt]=s.useState(["\uC774\uBBF8\uC9C0","\uB2E8\uC5B4","\uD45C\uC900 \uBC1C\uC74C"]),[ht,Ae]=s.useState("\uD45C\uC2DC"),[He,Be]=s.useState(!0),[rt,J]=s.useState(!0),se=s.useRef(null),ve=s.useRef([]),[je,ut]=s.useState(G==="all"?Number.POSITIVE_INFINITY:G??8),[Xe,St]=s.useState("right"),[yt,bt]=s.useState(!1),[dt,nt]=s.useState(!1),{toastMessage:it,toastType:ze,showWarning:Ze,clearToast:Ve}=Ei("warning"),vt=s.useCallback(()=>me(null),[me]);k&&!R&&!C&&fa("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[Ht,Rt]=s.useState(()=>Math.max(h?.length??1,1)),pt=R?we:C?Math.max(Ht,h?.length??1,1):Math.max(h?.length??0,1),{width:_t,height:We}=Wo[Ie],gt=!R&&!C,Pt=h?.length??0,qt=Math.min(je,Math.max(Pt,1)),Qe=gt?qt:pt,Mt=gt?M0(h??[],Qe):null,Yt=!!Mt&&Mt.length>1,Lt=R?he.some(be=>be!==null&&be.length>1):(h??[]).some(be=>(be.words??[]).length>1),Na=T?.trim()||`${oi(va())} ${Lt?E("wordTable.printFileNamePair","\uB300\uB9BD\uC30D\uD45C"):E("wordTable.printFileNameSingle","\uB2E8\uC5B4\uD45C")}`,Ta=s.useCallback(()=>Yt?ve.current.filter(be=>be!==null):se.current?[se.current]:[],[Yt]),{print:Ga,openNewWindow:wo,downloadHtml:Ua}=Zi({getElements:Ta,paperW:_t,paperH:We,fileName:Na,onPopupBlocked:()=>{Ze(E("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."))}}),ko=be=>{ge(be),xe(Re=>Re.length>=be?Re:[...Re,...Array(be-Re.length).fill(null)]),me(null)},ja=be=>{xe(Re=>{const st=[...Re];return st[be]=null,st}),de===be&&me(null)},Vt=be=>{if(de===null)return;const Re=de;xe(Ct=>{const Nt=[...Ct];return Nt[Re]=be.length>0?be:null,Nt});const st=he.findIndex((Ct,Nt)=>Nt>Re&&Ct===null);me(st!==-1?st:null)},qa=R?he.some(be=>be?.some(Re=>!!Re.colloquialPronunciation)):(h??[]).some(be=>(be.words??[]).some(Re=>!!Re.colloquialLabel)),Qt=s.useMemo(()=>so()?R?ne.slice(0,we).flatMap(be=>(be??[]).map(Re=>[Re.word,Re.homonum])):(h??[]).flatMap(be=>(be.words??[]).map(Re=>[Re.label,Re.homonum])):[],[R,ne,we,h]),[aa,Bo]=s.useState(!1);s.useEffect(()=>{if(Qt.length===0)return;let be=!1;return Promise.all(Qt.map(([Re,st])=>Hr(Re,st))).then(Re=>{be||Bo(Re.some(Boolean))},()=>{}),()=>{be=!0}},[Qt]);const _a=Qt.length>0&&aa,Ya=s.useMemo(()=>[...R||C?[{label:E("wordTable.filter.columns","\uCE78 \uC218"),items:rB.map(be=>({value:`${be}\uCE78`,displayLabel:E("wordTable.filter.column",{count:be})})),display:"segmented"}]:[],...gt&&(h?.length??0)>0?[Y0(E,{hasPairs:Lt,itemCount:Pt})]:[],...Yt?[nB(E)]:[]],[E,R,C,gt,h?.length,Lt,Pt,Yt]),ro={...R||C?{[E("wordTable.filter.columns","\uCE78 \uC218")]:`${pt}\uCE78`}:{},...gt&&(h?.length??0)>0?{[E(Lt?"wordTable.filter.itemsPerPagePair":"wordTable.filter.itemsPerPageWord")]:`${qt}\uAC1C`}:{},...Yt?{[E("wordTable.filter.pageNumber","\uD398\uC774\uC9C0 \uBC88\uD638")]:Z0[Xe]}:{}},da=(be,Re)=>{Re===E("wordTable.filter.columns","\uCE78 \uC218")?R?ko(parseInt(be)):Rt(parseInt(be)):Re===E(Lt?"wordTable.filter.itemsPerPagePair":"wordTable.filter.itemsPerPageWord")?ut(K0(parseInt(be),Pt)):Re===E("wordTable.filter.pageNumber","\uD398\uC774\uC9C0 \uBC88\uD638")&&St(X0(be))},oa=R?YA(he.filter(be=>be!==null&&be.length>0).map(be=>({id:Ju(be),words:be.map(T1)}))):h??[],ea=()=>{R&&xe(be=>be.length>we?be.slice(0,we):be)},le=(be=!1)=>{if(nt(be),z&&m){const Re=Z.trim().toLowerCase();Re&&Q(st=>st.includes(Re)?st:[...st,Re]),m(Z,oa,ie||void 0,be),ea();return}if(D&&m){m("",oa,void 0,be),ea();return}if(m){bt(!0);return}Ua()},[ke,Te]=s.useState(!1),[Ke,$e]=s.useState(""),qe=Ke.trim(),Ye=qe!==""&&te.includes(qe.toLowerCase()),ft=()=>{$e(Z?E("wordTable.save.copyName",{name:Z,defaultValue:"{{name}} (\uBCF5\uC0AC)"}):""),Te(!0)},re=()=>{!qe||Ye||!m||(m(qe,oa,ie||void 0,!0),ea(),Te(!1))},Se=oa.length===0,Pe=Se||z&&(Z===""||q),Ge=()=>{if(Se){Ze(E("wordTable.emptyItems","\uB2E8\uC5B4\uB97C 1\uAC1C \uC774\uC0C1 \uCD94\uAC00\uD574\uC8FC\uC138\uC694."));return}if(z&&Z===""){Ze(E("wordTable.save.nameRequired","\uD45C \uC774\uB984\uC744 \uC785\uB825\uD574 \uC8FC\uC138\uC694."));return}z&&q&&Ze(E("wordTable.save.duplicateName","\uC774\uBBF8 \uC0AC\uC6A9 \uC911\uC778 \uC774\uB984\uC785\uB2C8\uB2E4."))},at=r.jsx(Go,{items:oa,orientation:Ie,contentTypes:ot,cutLine:ht,showOutline:He,showDivLine:rt,count:pt});return r.jsxs(r.Fragment,{children:[r.jsxs(Vo,{type:"page",icon:t,title:e,disc:a,className:Ee("word-table-block",w),children:[ke&&r.jsx(to,{size:"small",title:b??E("wordTable.saveAsNewButton","\uB2E4\uB978 \uC774\uB984\uC73C\uB85C \uC800\uC7A5"),onClose:()=>Te(!1),footer:({closeWithAnimation:be})=>r.jsxs(r.Fragment,{children:[r.jsx(fe,{htmlType:"button",size:48,type:"bar",label:E("common.cancel","\uCDE8\uC18C"),onClick:be}),r.jsx(fe,{htmlType:"button",size:48,type:"bar",variant:"main",label:E("common.save","\uC800\uC7A5"),disabled:!qe||Ye,onClick:re})]}),children:r.jsx(Co,{label:E("wordTable.save.nameLabel","\uC774\uB984"),value:Ke,onChange:$e,placeholder:E("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:re,error:Ye?E("wordTable.save.duplicateName","\uC774\uBBF8 \uC0AC\uC6A9 \uC911\uC778 \uC774\uB984\uC785\uB2C8\uB2E4."):void 0})}),yt&&m&&A?.({defaultName:typeof e=="string"?e:E("wordTable.defaultName","\uB2E8\uC5B4 \uD45C"),preview:at,previewW:_t,previewH:We,items:oa,existingNames:qA().map(be=>be.name),saveAsNew:dt,onSave:(be,Re)=>{m(be,oa,Re,dt),ea(),bt(!1)},onCancel:()=>bt(!1)}),(R||k)&&de!==null&&B?.({cellIndex:de,onConfirm:R?Vt:be=>{if(k){const Re=be[0];if(Re){const st=new Set((h??[]).map(Nt=>Nt.id));let Ct=Ju([Re]);for(let Nt=2;st.has(Ct);Nt++)Ct=`${Ju([Re])}~${Nt}`;k({id:Ct,words:[T1(Re)]})}}me(null)},onClose:vt}),!S&&r.jsx(Yi,{title:o,collapsible:n,defaultCollapsed:i,collapsed:l,onCollapsedChange:c,headerSummary:d,hasImage:_a,hasColloquial:qa,contentTypes:ot,orientation:Ie,showOutline:He,cutLine:ht,showDivLine:rt,setters:{setContentTypes:tt,setOrientation:ct,setShowOutline:Be,setCutLine:Ae,setShowDivLine:J,setShowTopInfo:pe,setShowBottomInfo:Le},showCutLine:(gt?Qe:pt)>1,showDivLine2:Lt,middleSections:Ya,extraSelected:ro,onExtraSelect:da,showPaperBands:U,showTopInfo:ue,showBottomInfo:Ne}),Yt&&Mt?r.jsx("div",{className:"word-table-block__pages",children:Mt.map((be,Re)=>r.jsx(Go,{orientation:Ie,contentTypes:ot,cutLine:ht,showOutline:He,showDivLine:rt,count:Qe,items:be,onRemoveItem:v,onReorder:y&&((st,Ct)=>y(st+Re*Qe,Ct+Re*Qe)),renderCellAction:P&&((st,Ct)=>P(st+Re*Qe,Ct)),brand:Oe,code:p,contentRef:st=>{ve.current[Re]=st},pageNumber:{current:Re+1,total:Mt.length},pageNumberPosition:Xe},Re))}):r.jsx(Go,{orientation:Ie,contentTypes:ot,cutLine:ht,showOutline:He,showDivLine:rt,count:pt,items:R?void 0:h??[],editCells:R?he:void 0,activeCell:de,onActivateCell:R||k?me:void 0,onRemoveCell:R?ja:void 0,onRemoveItem:R?void 0:v,onReorder:R?void 0:y,renderCellAction:R?void 0:P,brand:Oe,code:p,showFillerAdd:!!k,contentRef:se}),z&&!S&&r.jsxs(Dn,{size:"medium",labelWidth:64,useBorder:!1,useRowBorder:!1,className:"word-table-block__meta",children:[r.jsx(ao,{variant:"custom",label:E("wordTable.save.nameLabel","\uC774\uB984"),required:!0,align:"vertical",useFullWidth:!0,children:r.jsx(Co,{required:!0,value:I??"",onChange:L,placeholder:j?j+E("wordTable.save.autoFillHint"," (Tab \uB610\uB294 space \uC785\uB825\uC2DC \uC790\uB3D9 \uC785\uB825)"):E("wordTable.save.placeholder","\uC774 \uB2E8\uC5B4\uD45C\uC5D0 \uB300\uD55C \uC81C\uBAA9\uC744 \uC785\uB825\uD558\uC138\uC694."),ariaLabel:E("wordTable.save.nameLabel","\uC774\uB984"),maxLength:40,size:48,fullWidth:!0,error:q?E("wordTable.save.duplicateName","\uC774\uBBF8 \uC0AC\uC6A9 \uC911\uC778 \uC774\uB984\uC785\uB2C8\uB2E4."):void 0,onKeyDown:be=>{(be.key==="Tab"&&!be.shiftKey||be.key===" ")&&!(I??"").trim()&&(j??"").trim()&&(be.preventDefault(),L?.(j??""))}})}),r.jsx(ao,{variant:"custom",label:E("wordTable.save.descriptionLabel","\uC124\uBA85"),align:"vertical",useFullWidth:!0,children:r.jsx(Co,{value:V??"",onChange:N,placeholder:H?H+E("wordTable.save.autoFillHint"," (Tab \uB610\uB294 space \uC785\uB825\uC2DC \uC790\uB3D9 \uC785\uB825)"):E("wordTable.save.descriptionPlaceholder","\uC774 \uB2E8\uC5B4\uD45C\uC5D0 \uB300\uD55C \uC124\uBA85\uC744 \uC785\uB825\uD558\uC138\uC694."),ariaLabel:E("wordTable.save.descriptionLabel","\uC124\uBA85"),maxLength:200,multiline:!0,rows:2,fullWidth:!0,onKeyDown:be=>{(be.key==="Tab"&&!be.shiftKey||be.key===" ")&&!(V??"").trim()&&(H??"").trim()&&(be.preventDefault(),N?.(H??""))}})})]})]}),!S&&r.jsxs("div",{className:"word-table-block__actions",children:[r.jsxs("div",{className:"word-table-block__actions-left",children:[!D&&f&&r.jsx(fe,{htmlType:"button",size:40,type:"bar",label:F,onClick:f}),!D&&O,!D&&g&&r.jsx(fe,{htmlType:"button",size:40,type:"bar",label:E("wordTable.load","\uBD88\uB7EC\uC624\uAE30"),onClick:g}),!D&&r.jsx(fe,{htmlType:"button",size:40,type:"bar",label:E("wordTable.openNewWindow","\uC0C8 \uCC3D\uC73C\uB85C \uBCF4\uAE30"),onClick:wo})]}),r.jsxs("div",{className:"word-table-block__actions-right",children:[M&&r.jsx(fe,{htmlType:"button",size:"56",type:"bar",label:E("common.cancel","\uCDE8\uC18C"),onClick:M}),!D&&r.jsx(fe,{htmlType:"button",size:"56",type:"bar",label:E("wordTable.print","\uC778\uC1C4\uD558\uAE30"),onClick:Ga}),b&&r.jsx(fe,{htmlType:"button",size:"56",type:"bar",label:b,onClick:()=>z?ft():le(!0),disabled:Se,onDisabledClick:()=>{Ze(E("wordTable.emptyItems","\uB2E8\uC5B4\uB97C 1\uAC1C \uC774\uC0C1 \uCD94\uAC00\uD574\uC8FC\uC138\uC694."))}}),r.jsx(fe,{htmlType:"button",size:"56",type:"bar",variant:"main",label:_??E("wordTable.saveButton","\uC800\uC7A5\uD558\uAE30"),onClick:()=>le(!1),disabled:Pe,onDisabledClick:Ge})]})]}),r.jsx(Ho,{message:it,type:ze,onClose:Ve})]})}var KA=".ihabdevteam-core-scope .word-table-thumb{grid-gap:1px;background:var(--color-darkWhite);border-bottom:1px solid var(--color-darkWhite);display:grid;gap:1px;grid-auto-rows:minmax(min-content,1fr);height:140px;overflow:hidden}.ihabdevteam-core-scope .word-table-thumb__cell{align-items:center;background:var(--color-white);display:flex;flex-direction:column;gap:1px;justify-content:center;min-height:0;overflow:hidden;padding:4px}.ihabdevteam-core-scope .word-table-thumb__word{color:var(--color-black)}.ihabdevteam-core-scope .word-table-thumb .word-table-thumb__word{line-height:1.2}.ihabdevteam-core-scope .word-table-thumb__divider{background:var(--color-darkWhite);display:block;height:1px;margin:1px 0;width:30%}";oe(KA);function Qu({items:e,className:t}){const a=e.length,o=a<=3?1:2,n=Math.ceil(a/o)||1,i=o*n;return r.jsx("div",{className:Ee("word-table-thumb",t),style:{gridTemplateColumns:`repeat(${o}, 1fr)`},children:Array.from({length:i},(l,c)=>{const d=e[c];return d?r.jsx("div",{className:"word-table-thumb__cell",children:(d.words?.length?d.words:[{label:d.id}]).map((u,p)=>r.jsxs(s.Fragment,{children:[p>0&&r.jsx("span",{className:"word-table-thumb__divider"}),r.jsx("span",{className:"word-table-thumb__word body-3",children:u.label})]},p))},c):r.jsx("div",{className:"word-table-thumb__cell word-table-thumb__cell--empty"},c)})})}var ZA=".ihabdevteam-core-scope .word-table-button{background:var(--color-white);border:1px solid var(--color-whiteLine);border-radius:8px;border-radius:var(--radius-s,8px);box-sizing:border-box;cursor:pointer;display:flex;flex-direction:column;overflow:hidden;position:relative;transition:border-color .15s,box-shadow .15s;width:240px}.ihabdevteam-core-scope .word-table-button:hover{border-color:var(--color-main);box-shadow:0 2px 10px rgba(0,0,0,.06)}.ihabdevteam-core-scope .word-table-button:focus-visible{outline:2px solid var(--color-main);outline-offset:1px}.ihabdevteam-core-scope .word-table-button--selected{border-color:var(--color-main);box-shadow:0 0 0 1px var(--color-main) inset}.ihabdevteam-core-scope .word-table-button__thumb{flex:0 0 auto;height:290px}.ihabdevteam-core-scope .word-table-button__info{align-items:flex-start;display:flex;flex-direction:row;gap:8px;min-width:0;padding:12px 14px 0;position:relative}.ihabdevteam-core-scope .word-table-button__more{position:absolute;right:10px;top:8px}.ihabdevteam-core-scope .word-table-button__title{padding-right:34px}.ihabdevteam-core-scope .word-table-button--no-footer .word-table-button__info{flex:1 1 auto;min-height:0}.ihabdevteam-core-scope .word-table-button--no-footer .word-table-button__info-text{align-self:stretch}.ihabdevteam-core-scope .word-table-button__info-text{align-items:flex-start;display:flex;flex:1 1 auto;flex-direction:column;gap:4px;min-width:0;text-align:left}.ihabdevteam-core-scope .word-table-button__title{-webkit-line-clamp:2;-webkit-box-orient:vertical;color:var(--color-black);display:-webkit-box;overflow:hidden;overflow-wrap:anywhere}.ihabdevteam-core-scope .word-table-button__desc{-webkit-line-clamp:2;-webkit-box-orient:vertical;color:var(--color-gray);display:-webkit-box;overflow:hidden}.ihabdevteam-core-scope .word-table-button__meta{color:var(--color-gray)}.ihabdevteam-core-scope .word-table-button__meta-left{align-items:center;display:flex;gap:6px;min-width:0}.ihabdevteam-core-scope .word-table-button__meta-right{align-items:center;display:flex;flex-shrink:0;gap:8px;min-width:0}.ihabdevteam-core-scope .word-table-button__code{color:var(--color-gray);flex-shrink:0;white-space:nowrap}.ihabdevteam-core-scope .word-table-button__meta-left .word-table-button__meta{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ihabdevteam-core-scope .word-table-button__meta-row{align-items:center;display:flex;gap:8px;justify-content:space-between;min-width:0;padding:12px 14px 14px}.ihabdevteam-core-scope .word-table-button__badges{align-items:center;display:flex;flex:0 0 auto;gap:4px}.ihabdevteam-core-scope .word-table-button--no-footer .word-table-button__meta-row{margin-top:auto}.ihabdevteam-core-scope .word-table-button__footer{display:flex;flex-direction:column;gap:8px;margin-top:auto;min-width:0;padding:12px 14px 14px}.ihabdevteam-core-scope .word-table-button__store-by{align-items:center;display:inline-flex;gap:6px;min-width:0;overflow:hidden}.ihabdevteam-core-scope .word-table-button__store-by .training-card__date{white-space:nowrap}.ihabdevteam-core-scope .word-table-button__store-stats{align-items:center;align-self:flex-end;display:inline-flex;gap:4px}.ihabdevteam-core-scope .word-table-button__more{flex:0 0 auto}.ihabdevteam-core-scope .word-table-button__badge{pointer-events:none}.ihabdevteam-core-scope .word-table-button__new-dot{background:var(--color-main);border-radius:50%;box-shadow:0 0 0 2px var(--color-white);height:10px;pointer-events:none;position:absolute;right:8px;top:8px;width:10px;z-index:3}";oe(ZA);function L1({items:e,name:t,description:a,createdAt:o,code:n,published:i,publishedLabel:l,shared:c,sharedLabel:d,isNew:u,publisherName:p,publishedAt:h,likeCount:m,downloadCount:g,onPublisherClick:v,selected:f,onClick:x,onMore:_,titleNode:b,className:y}){const{t:C}=_e.useTranslation(),k=b!=null,w=p!=null||h!=null||m!=null||g!=null,A=B=>{B.target===B.currentTarget&&!k&&(B.key==="Enter"||B.key===" ")&&(B.preventDefault(),x?.())};return r.jsxs("div",{className:Ee("word-table-button",f?"word-table-button--selected":"",w?"":"word-table-button--no-footer",y),role:"button",tabIndex:0,"aria-label":n?`${t} (${n})`:t,onClick:k?void 0:x,onKeyDown:A,children:[u&&r.jsx("span",{className:"word-table-button__new-dot","aria-label":C("myWordTable.newBadge","\uC0C8\uB85C \uB9CC\uB4E0 \uD45C")}),r.jsx(Qu,{items:e,className:"word-table-button__thumb"}),r.jsxs("div",{className:"word-table-button__info",children:[r.jsxs("div",{className:"word-table-button__info-text",children:[b??r.jsx("div",{className:"word-table-button__title h4",children:t}),a&&r.jsx("div",{className:"word-table-button__desc body-3",children:a})]}),_&&!k&&r.jsx(fe,{htmlType:"button",className:"word-table-button__more",size:32,type:"dot",variant:"transparent-gray",useBorder:!1,icon:"ellipsis",ariaLabel:C("common.moreFor",{name:t}),onClick:B=>{B.stopPropagation(),_(B)}})]}),(n||o||i||c)&&r.jsxs("div",{className:"word-table-button__meta-row",children:[r.jsx("span",{className:"word-table-button__meta-left",children:r.jsx("span",{className:"word-table-button__meta caption-1",children:o?ai(o,C):""})}),r.jsxs("span",{className:"word-table-button__meta-right",children:[(i||c)&&r.jsxs("span",{className:"word-table-button__badges",children:[i&&r.jsx(Dt,{className:"word-table-button__badge",size:"small",variant:"main",fill:"soft",iconLeft:"book-marked",label:l??C("myWordTable.publishedBadge","\uBC1C\uD589\uB428")}),c&&r.jsx(Dt,{className:"word-table-button__badge",size:"small",fill:"soft",iconLeft:"link",label:d??C("myWordTable.sharedBadge","\uACF5\uC720 \uC911")})]}),n&&r.jsx("span",{className:"word-table-button__code caption-1",children:n})]})]}),w&&r.jsxs("div",{className:"word-table-button__footer",children:[r.jsxs("span",{className:"word-table-button__store-by",children:[p&&(v?r.jsx("button",{className:"training-card__publisher body-4",type:"button","aria-label":C("wordTable.publisherFilter",{name:p,defaultValue:"{{name}} \uAC8C\uC2DC\uD55C \uAC83\uB9CC \uBCF4\uAE30"}),onClick:B=>{B.stopPropagation(),v()},children:p}):r.jsx("span",{className:"training-card__publisher training-card__publisher--static body-4",children:p})),h&&r.jsx("span",{className:"training-card__date body-4",children:ai(h,C)})]}),r.jsxs("span",{className:"word-table-button__store-stats",children:[m!=null&&r.jsx(Dt,{size:"small",fill:"soft",variant:"like",iconLeft:"heart",label:String(m),"aria-label":C("common.likeCount",{count:m,defaultValue:`\uC88B\uC544\uC694 ${m}`})}),g!=null&&r.jsx(Dt,{size:"small",fill:"soft",variant:"main",iconLeft:"download",label:String(g),"aria-label":C("common.downloadCount",{count:g,defaultValue:`\uAC00\uC838\uAC04 \uC218 ${g}`})})]})]})]})}/**
1063
1063
  * @license lucide-react v1.38.0 - ISC