@ihabdevteam/core 0.357.0 → 0.359.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +34 -0
- package/dist/components.cjs.js +1 -1
- package/dist/components.esm.css +1 -1
- package/dist/hooks.cjs.js +1 -1
- package/dist/i18n.cjs.js +1 -1
- package/dist/ihabdevteam-core.cjs.js +2 -2
- package/dist/ihabdevteam-core.d.ts +19 -4
- package/dist/packages/core/src/components/Footer.css +6 -2
- package/dist/packages/core/src/utils/smsBytes.d.ts +18 -3
- package/dist/packages/core/src/utils/smsBytes.js +18 -3
- package/dist/packages/core/src/version.d.ts +1 -1
- package/dist/packages/core/src/version.js +1 -1
- package/dist/utils.cjs.js +1 -1
- package/package.json +1 -1
|
@@ -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"},policy:{title:"\uC815\uCC45",terms:"\uC774\uC6A9\uC57D\uAD00",privacy:"\uAC1C\uC778\uC815\uBCF4 \uCC98\uB9AC\uBC29\uCE68"},ceo:"\uB300\uD45C",address:"\uC8FC\uC18C",bizNo:"\uC0AC\uC5C5\uC790\uB4F1\uB85D\uBC88\uD638",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",bizNoValue:"526-81-02926"},bx={timeHM:"{{h}}\uC2DC {{m}}\uBD84",timeH:"{{h}}\uC2DC"},gx={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"},fx={clearAriaLabel:"\uC785\uB825\uAC12 \uC9C0\uC6B0\uAE30"},vx={ariaLabel:"\uC120\uD0DD \uD0ED"},xx={ariaLabel:"\uD0ED"},Cx={dragPrompt:"\uD30C\uC77C\uC744 \uC774\uACF3\uC5D0 \uB4DC\uB798\uADF8\uD558\uC5EC \uC5C5\uB85C\uB4DC",browseButton:"\uD30C\uC77C \uC120\uD0DD",removeAriaLabel:"{{name}} \uC81C\uAC70"},yx={ariaLabel:"\uC0AC\uC6A9\uC790 \uC544\uBC14\uD0C0"},_x={relativeDay:{today:"\uC624\uB298",yesterday:"\uC5B4\uC81C",daysAgo:"{{n}}\uC77C \uC804"}},wx={weekly:{title:"\uC8FC\uAC04 \uD6C8\uB828 \uD604\uD669",daily:"\uC624\uB298\uC758 \uB4E3\uAE30"},homework:{title:"\uC219\uC81C \uC9C4\uD589\uD604\uD669",totalRate:"\uC804\uCCB4 \uC644\uB8CC\uC728",done:"\uC644\uB8CC"},today:{tooltipTotal:"\uC804\uCCB4",tooltipDone:"\uC644\uB8CC"},visit:{title:"\uBC29\uBB38 \uC5F0\uB3D9 \uAE30\uB85D"},detail:"\uC0C1\uC138\uBCF4\uAE30",detailFor:"{{name}} \uC0C1\uC138\uBCF4\uAE30"},kx={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"}},Bx={steps:"\uC9C4\uD589 \uB2E8\uACC4 {{current}} / {{total}}"},Ax={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.",runs:"{{count}}\uD310"},Sx={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"},Ex={viewWords:"\uB0B1\uB9D0"},Dx={ariaLabel:"\uBC30\uB108",dotAriaLabel:"{{count}}\uAC1C \uC911 {{index}}\uBC88\uC9F8 \uBC30\uB108"},Nx={chooseDate:"\uB0A0\uC9DC \uC120\uD0DD",selectYear:"\uC5F0 \uC120\uD0DD",selectMonth:"\uC6D4 \uC120\uD0DD"},jx={previewRegion:"\uBCF4\uACE0\uC11C \uBBF8\uB9AC\uBCF4\uAE30 \u2014 \uC88C\uC6B0\uB85C \uAD74\uB824 \uBCFC \uC218 \uC788\uC2B5\uB2C8\uB2E4"},Tx={description:"\uC124\uBA85",textbox:"\uBCF8\uBB38",training:"\uD6C8\uB828 \uC548\uB0B4",menu:"\uBA54\uB274"},Lx={place:{labial:"\uC591\uC21C\uC74C",alveolar:"\uCE58\uC870\uC74C",palatal:"\uACBD\uAD6C\uAC1C\uC74C",velar:"\uC5F0\uAD6C\uAC1C\uC74C",glottal:"\uC131\uBB38\uC74C"}},Mx={clearSelection:"\uC120\uD0DD \uD574\uC81C"},$x={showResult:"{{type}} \uACB0\uACFC\uBCF4\uAE30"},Rx={selected:"\uC120\uD0DD\uB428",remove:"\uC81C\uAC70",exclude:"\uC81C\uC678",nthSelected:"{{n}}\uBC88\uC9F8 \uC120\uD0DD"},Px={loading:"\uBD88\uB7EC\uC624\uB294 \uC911\u2026"},zx={state:{active:"\uC18C\uB9AC \uB098\uB294 \uC911",played:"\uB4E4\uC74C",correct:"\uC815\uB2F5",wrong:"\uC624\uB2F5"}},Ix={ariaLabel:"\uC774\uB3D9 \uACBD\uB85C"},Ox={empty:"\uB4F1\uB85D\uB41C \uD56D\uBAA9\uC774 \uC5C6\uC2B5\uB2C8\uB2E4."},Fx={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"},Wx={common:F1,calendar:W1,passCard:G1,rating:H1,colorPicker:V1,dropdown:U1,accordion:q1,header:Y1,nav:K1,settings:X1,usage:Z1,account:J1,training:Q1,customers:ex,payment:tx,coupons:ax,visits:ox,trainingType:rx,myWordTable:nx,keyWords:ix,wordTable:sx,wordSearch:lx,wordPrint:cx,topic:ux,device:dx,manager:px,wordPairs:hx,footer:mx,date:bx,wordData:gx,textField:fx,segmentedControl:vx,tabs:xx,fileUpload:Cx,avatar:yx,myHomework:_x,trainingStatus:wx,store:kx,progress:Bx,trainingMiss:Ax,table:Sx,wordScore:Ex,topBanner:Dx,datePicker:Nx,report:jx,tooltip:Tx,phonemeProfile:Lx,bulkBar:Mx,debug:$x,badge:Rx,loader:Px,soundCompass:zx,breadcrumb:Ix,board:Ox,promoBannerBg:Fx},Gx={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_one:"{{count}} like",likeCount_other:"{{count}} likes",selectedOfMax:"{{count}} of {{max}}",downloadCount_one:"{{count}} download",downloadCount_other:"{{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."},Hx={rangeSelect:"Select period",dow:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],weekLabel:"Week {{ord}}",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_one:"{{count}} visit",visitCount_other:"{{count}} visits",statusCount:"{{count}} {{label}}",weekOrdinal:["1","2","3","4","5","6","7"]},Vx={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"}},Ux={starLabel:"Select star {{n}}",valueLabel:"{{value}} out of {{max}}",groupLabel:"Rating"},qx={selected:"selected"},Yx={placeholder:"Select"},Kx={collapse:"Collapse",expand:"Expand"},Xx={biArea:"BI area",biSymbol:"BI symbol",logoMalgwi:"Malgwi logo",logoManager:"Malgwi Manager logo",menuOpen:"Open menu",utilMenu:"Utility menu",menuClose:"Close menu"},Zx={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_one:"{{label}}, {{count}} notification inside",badgeInsideLabel_other:"{{label}}, {{count}} notifications inside"},Jx={cache:{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"}}}},Qx={couponButton:"Enter Coupon"},eC={security:{password:{currentRequired:"Enter your current password.",newRequired:"Enter a new password.",mismatch:"The new passwords do not match.",changed:"Your password has been changed."}}},tC={settings:"Settings",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_one:"{{n}} question",countQuestions_other:"{{n}} questions",countSentences_one:"{{n}} sentence",countSentences_other:"{{n}} sentences",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",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",replaySound:"Replay item {{no}}",replaySoundStop:"Stop item {{no}}",done:"Done",noContent:"(No content)"},up:"Move up",down:"Move down",prev:"Previous",listenLabel:"Listen",sourcePlay:"Play source {{n}}",listen:"Listen",audioStatus:{synthesizing:"Preparing the sound\u2026",preparing:"Preparing sound\u2026"}},aC={totalCount:" customers",loadError:"Failed to load list",device:{title:"Hearing Devices",addButton:"Add device",historyEmpty:"No device history registered",wearing:" in use",notRegistered:"Not registered",unit:"",wearingNow:"In use",wear:"Wear",unwear:"Remove",wornSince:"Since {{date}}",historyTitle:"Hearing device history"},schedule:{registerTitle:" Register Schedule"},visitHistory:{empty:"No visit history yet",popupTitle:" Visit History",registerTitle:" Register Visit"},moreItems:"more",viewAll:"View All",duration:{minSec:"{{m}}m {{s}}s",min:"{{m}}m",sec:"{{s}}s"}},oC={plan:{recommendedFor:"Recommended for",features:"Key Features",freePrice:"Free",contact:"Contact Us",tierFallback:"Plan",openPromo:"Launch offer"},products:{mgrEnterprise:{tier:{price:"Contact us"}}}},rC={input:{label:"Coupon code",placeholder:"Enter coupon code"},applyButton:"Apply"},nC={showN:"Show {{n}}"},iC={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."}},sC={newBadge:"Newly created",publishedBadge:"Published",sharedBadge:"Shared"},lC={title:"Key Words",empty:"No key words available."},cC={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_one:"{{count}} word",itemCount_other:"{{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",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_one:"Saved {{count}} mark for {{name}}.",saved_other:"Saved {{count}} marks for {{name}}.",reviewTitle:"Create a review table?",reviewMessage_one:"Builds a new table from the {{count}} cell {{name}} got wrong or partial. Correct ones are left out.",reviewMessage_other:"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_one:"Created \u201C{{name}}\u201D \u2014 {{count}} cell.",reviewCreated_other:"Created \u201C{{name}}\u201D \u2014 {{count}} cells.",discardTitle:"Discard this scoring?",discardMessage_one:"You marked {{count}} cell but have not saved. Leaving discards it.",discardMessage_other:"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"}},uC={filterTitle:"Word Search Settings",filter:{positionAny:"Any",positionHead:"Start",positionMid:"Middle",positionTail:"End",difficulty:"Grade",grade:"Grade {{n}}",gradeNone:"None",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",field:"Semantic Category",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"},dC={clearAllSelection:"Clear All Selections",divLine:"Contrast Line",removePair:"Remove pair",removeWord:"Remove word"},pC={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"}},hC={direction:{left:"L",right:"R",label:"Side"},wornDate:"Date Worn",deviceType:"Device Type",brand:"Brand",fitType:"Fit Type",productName:"Product Name",addNew:"Add New Device",selectFromList:"Select from List",removeDevice:"Remove",type:{hearingAid:"Hearing Aid",cochlearImplant:"Cochlear Implant",other:"Other"}},mC={stat:{totalCustomers:"Total Customers",monthlyVisits:"This Month's Visits"},chart:{visitDetail:"Visit Details",trainingDetail:"Training Details",weekly:"Weekly",periodMonth:"Month",periodWeek:"Week",weeklyPrefix:"Weekly",monthlyPrefix:"Monthly",visit:"Visits",reservation:"Reservations",trainingDone:"Completed",trainingInProgress:"In Progress",weekRange:"{{start}}\u2013{{end}}",week:"W{{n}}"}},bC={phonemeSelect:{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:["Level 1 \u2014 everyday vocabulary acquired before school age and used for life","Level 2 \u2014 difficulty of grades 1\u20132","Level 3 \u2014 difficulty of grades 3\u20134","Level 4 \u2014 difficulty of grades 5\u20136","No level \u2014 frequent everyday words outside the national standard list, plus coinages and loanwords"],selectLabel:"Select",onlyHasImage:"Only words with images",onlySameStructure:"Only same phoneme structure"},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."]},gC={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"},policy:{title:"Policy",terms:"Terms of Service",privacy:"Privacy Policy"},ceo:"CEO",address:"Address",bizNo:"Business no.",support:"Support",ceoName:"Ji-hye Han",addressValue:"302, 3F, Haechan Bldg, 32 Sicheong-gil, Chuncheon, Gangwon, Korea",bizNoValue:"526-81-02926"},fC={timeHM:"{{hh}}:{{mm}}",timeH:"{{hh}}:{{mm}}"},vC={phaseWordDownload:"Download Word Data",phaseImageCheck:"Check Images",phasePairAnalysis:"Analyze Word Pairs",downloadingCount_one:"Downloading {{n}} word",downloadingCount_other:"Downloading {{n}} words",checkingPage:"Checking page {{page}} list",imageCount:"{{done}} / {{total}} items"},xC={clearAriaLabel:"Clear input"},CC={ariaLabel:"Select tab"},yC={ariaLabel:"Tabs"},_C={dragPrompt:"Drag and drop files here",browseButton:"Choose Files",removeAriaLabel:"Remove {{name}}"},wC={ariaLabel:"User avatar"},kC={relativeDay:{today:"Today",yesterday:"Yesterday",daysAgo:"{{n}}d ago"}},BC={weekly:{title:"Weekly Training",daily:"Daily Listening"},homework:{title:"Homework Progress",totalRate:"Overall rate",done:"Done"},today:{tooltipTotal:"Total",tooltipDone:"Done"},visit:{title:"Linked Visit Records"},detail:"Details",detailFor:"{{name}} details"},AC={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"}},SC={steps:"Step {{current}} of {{total}}"},EC={skippedOnly_one:"{{n}} older record was excluded \u2014 it does not say what was answered.",skippedOnly_other:"{{n}} older records were excluded \u2014 they do not say what was answered.",runs_one:"{{count}} run",runs_other:"{{count}} runs"},DC={resetColumns:"Reset column widths",scrollRegion:"Horizontally scrollable table",rowActionHint:"Press a row to open its details"},NC={viewWords:"Words"},jC={ariaLabel:"Banner",dotAriaLabel:"Banner {{index}} of {{count}}"},TC={chooseDate:"Choose a date",selectYear:"Select year",selectMonth:"Select month"},LC={previewRegion:"Report preview \u2014 scrollable sideways"},MC={description:"Description",textbox:"Text",training:"Training guide",menu:"Menu"},$C={place:{labial:"Bilabial",alveolar:"Alveolar",palatal:"Palatal",velar:"Velar",glottal:"Glottal"}},RC={clearSelection:"Clear selection"},PC={showResult:"Show {{type}} result"},zC={selected:"Selected",remove:"Remove",exclude:"Excluded",nthSelected:"Selection {{n}}"},IC={loading:"Loading"},OC={state:{active:"playing",played:"heard",correct:"correct",wrong:"wrong"}},FC={ariaLabel:"Breadcrumb"},WC={empty:"No items yet."},GC={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"},HC={common:Gx,calendar:Hx,passCard:Vx,rating:Ux,colorPicker:qx,dropdown:Yx,accordion:Kx,header:Xx,nav:Zx,settings:Jx,usage:Qx,account:eC,training:tC,customers:aC,payment:oC,coupons:rC,visits:nC,trainingType:iC,myWordTable:sC,keyWords:lC,wordTable:cC,wordSearch:uC,wordPrint:dC,topic:pC,device:hC,manager:mC,wordPairs:bC,footer:gC,date:fC,wordData:vC,textField:xC,segmentedControl:CC,tabs:yC,fileUpload:_C,avatar:wC,myHomework:kC,trainingStatus:BC,store:AC,progress:SC,trainingMiss:EC,table:DC,wordScore:NC,topBanner:jC,datePicker:TC,report:LC,tooltip:MC,phonemeProfile:$C,bulkBar:RC,debug:PC,badge:zC,loader:IC,soundCompass:OC,breadcrumb:FC,board:WC,promoBannerBg:GC};const Yn="0.
|
|
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"},policy:{title:"Policy",terms:"Terms of Service",privacy:"Privacy Policy"},ceo:"CEO",address:"Address",bizNo:"Business no.",support:"Support",ceoName:"Ji-hye Han",addressValue:"302, 3F, Haechan Bldg, 32 Sicheong-gil, Chuncheon, Gangwon, Korea",bizNoValue:"526-81-02926"},fC={timeHM:"{{hh}}:{{mm}}",timeH:"{{hh}}:{{mm}}"},vC={phaseWordDownload:"Download Word Data",phaseImageCheck:"Check Images",phasePairAnalysis:"Analyze Word Pairs",downloadingCount_one:"Downloading {{n}} word",downloadingCount_other:"Downloading {{n}} words",checkingPage:"Checking page {{page}} list",imageCount:"{{done}} / {{total}} items"},xC={clearAriaLabel:"Clear input"},CC={ariaLabel:"Select tab"},yC={ariaLabel:"Tabs"},_C={dragPrompt:"Drag and drop files here",browseButton:"Choose Files",removeAriaLabel:"Remove {{name}}"},wC={ariaLabel:"User avatar"},kC={relativeDay:{today:"Today",yesterday:"Yesterday",daysAgo:"{{n}}d ago"}},BC={weekly:{title:"Weekly Training",daily:"Daily Listening"},homework:{title:"Homework Progress",totalRate:"Overall rate",done:"Done"},today:{tooltipTotal:"Total",tooltipDone:"Done"},visit:{title:"Linked Visit Records"},detail:"Details",detailFor:"{{name}} details"},AC={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"}},SC={steps:"Step {{current}} of {{total}}"},EC={skippedOnly_one:"{{n}} older record was excluded \u2014 it does not say what was answered.",skippedOnly_other:"{{n}} older records were excluded \u2014 they do not say what was answered.",runs_one:"{{count}} run",runs_other:"{{count}} runs"},DC={resetColumns:"Reset column widths",scrollRegion:"Horizontally scrollable table",rowActionHint:"Press a row to open its details"},NC={viewWords:"Words"},jC={ariaLabel:"Banner",dotAriaLabel:"Banner {{index}} of {{count}}"},TC={chooseDate:"Choose a date",selectYear:"Select year",selectMonth:"Select month"},LC={previewRegion:"Report preview \u2014 scrollable sideways"},MC={description:"Description",textbox:"Text",training:"Training guide",menu:"Menu"},$C={place:{labial:"Bilabial",alveolar:"Alveolar",palatal:"Palatal",velar:"Velar",glottal:"Glottal"}},RC={clearSelection:"Clear selection"},PC={showResult:"Show {{type}} result"},zC={selected:"Selected",remove:"Remove",exclude:"Excluded",nthSelected:"Selection {{n}}"},IC={loading:"Loading"},OC={state:{active:"playing",played:"heard",correct:"correct",wrong:"wrong"}},FC={ariaLabel:"Breadcrumb"},WC={empty:"No items yet."},GC={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"},HC={common:Gx,calendar:Hx,passCard:Vx,rating:Ux,colorPicker:qx,dropdown:Yx,accordion:Kx,header:Xx,nav:Zx,settings:Jx,usage:Qx,account:eC,training:tC,customers:aC,payment:oC,coupons:rC,visits:nC,trainingType:iC,myWordTable:sC,keyWords:lC,wordTable:cC,wordSearch:uC,wordPrint:dC,topic:pC,device:hC,manager:mC,wordPairs:bC,footer:gC,date:fC,wordData:vC,textField:xC,segmentedControl:CC,tabs:yC,fileUpload:_C,avatar:wC,myHomework:kC,trainingStatus:BC,store:AC,progress:SC,trainingMiss:EC,table:DC,wordScore:NC,topBanner:jC,datePicker:TC,report:LC,tooltip:MC,phonemeProfile:$C,bulkBar:RC,debug:PC,badge:zC,loader:IC,soundCompass:OC,breadcrumb:FC,board:WC,promoBannerBg:GC};const Yn="0.359.0",Hr=[{code:"ko",label:"\uD55C\uAD6D\uC5B4"},{code:"en",label:"English"}],Lo="ko",Ps="ihab_display_language";function Hp(){if(typeof window>"u")return Lo;try{const e=localStorage.getItem(Ps);if(e&&Hr.some(t=>t.code===e))return e}catch{}return Lo}function VC(e){try{localStorage.setItem(Ps,e)}catch{}}function Vp(e){try{document.documentElement.lang=e}catch{}}wt.on("languageChanged",Vp),Vp(Hp()),wt.use(we.initReactI18next).init({resources:{ko:{translation:Wx},en:{translation:HC}},lng:Hp(),fallbackLng:Lo,interpolation:{escapeValue:!1},react:{useSuspense:!1}});const Up=s.createContext({locale:Lo,supportedLocales:Hr});function UC(){return s.useContext(Up)}function qC(e){const t=o=>Hr.some(n=>n.code===o);if(t(e))return e;const a=e.split(/[-_]/)[0]?.toLowerCase()??"";return t(a)?a:Lo}function YC({locale:e=Lo,children:t}){const a=qC(e);s.useEffect(()=>{wt.language!==a&&wt.changeLanguage(a)},[a]);const o=s.useMemo(()=>({locale:a,supportedLocales:Hr}),[a]);return r.jsx(Up.Provider,{value:o,children:t})}function Se(...e){return e.filter(Boolean).join(" ")}var KC=".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}";se(KC);const qp=new Set,ho=(()=>{try{const e=globalThis;return e.process!=null&&e.process.env?.NODE_ENV!=="production"}catch{return!1}})();function Pt(e,...t){!ho||qp.has(e)||(qp.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.
|
|
@@ -1076,7 +1076,7 @@ ${y.badge}`:y.badge:void 0;if(_&&u(y.code))return null;if(!y.badge&&!h)return p(
|
|
|
1076
1076
|
|
|
1077
1077
|
/* !important \uD544\uC694: Icon.tsx\uC758 \uD3F4\uBC31 SVG(nullSvg)\uB294 style="stroke:...;stroke-width:.." \uC778\uB77C\uC778
|
|
1078
1078
|
\uC18D\uC131\uC73C\uB85C \uB80C\uB354\uB9C1\uB418\uC5B4 \uD074\uB798\uC2A4 \uADDC\uCE59\uBCF4\uB2E4 \uC6B0\uC120\uC21C\uC704\uAC00 \uB192\uC74C. \uC774 \uADDC\uCE59\uC744 \uBAA8\uB4E0 \uC544\uC774\uCF58(\uC77C\uBC18 lucide
|
|
1079
|
-
\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}}`;se(sE);function lE(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(ot,{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 Bv(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),u=i?a:l,d=s.useRef(o);s.useEffect(()=>{d.current=o});const h=s.useRef(!1),p=(t&&t[0]?.key)??null;s.useEffect(()=>{if(i||h.current||!p)return;h.current=!0;const v=l??p;l==null&&c(v),d.current?.(v)},[i,p]);const m=s.useCallback(v=>{const x=u===v?null:v;h.current=!0,i||c(x),o?.(x)},[u,i,o]);return r.jsx("div",{className:`icon-grid-menu icon-grid-menu--${n}`,children:(t||[]).map(v=>r.jsx(lE,{category:v,isSelected:u===v.key,onClick:()=>m(v.key)},v.key))})}var cE=".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)}}";se(cE);function Av({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(ve,{htmlType:"button",size:n,type:"bar",label:i.label,selected:t===i.key,className:"choice-chips__button",onClick:()=>a?.(i.key)},i.key))})})}var uE=".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:96px}.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}}";se(uE);function Sv({onTermsClick:e,onPrivacyClick:t,contact:a}={}){const o=a?.email??"support@ihab.co.kr",n=a?.tel??"031-380-3724",{t:i}=we.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
|
|
1079
|
+
\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}}`;se(sE);function lE(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(ot,{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 Bv(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),u=i?a:l,d=s.useRef(o);s.useEffect(()=>{d.current=o});const h=s.useRef(!1),p=(t&&t[0]?.key)??null;s.useEffect(()=>{if(i||h.current||!p)return;h.current=!0;const v=l??p;l==null&&c(v),d.current?.(v)},[i,p]);const m=s.useCallback(v=>{const x=u===v?null:v;h.current=!0,i||c(x),o?.(x)},[u,i,o]);return r.jsx("div",{className:`icon-grid-menu icon-grid-menu--${n}`,children:(t||[]).map(v=>r.jsx(lE,{category:v,isSelected:u===v.key,onClick:()=>m(v.key)},v.key))})}var cE=".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)}}";se(cE);function Av({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(ve,{htmlType:"button",size:n,type:"bar",label:i.label,selected:t===i.key,className:"choice-chips__button",onClick:()=>a?.(i.key)},i.key))})})}var uE=".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:96px}.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:flex-start;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:flex-start;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}}";se(uE);function Sv({onTermsClick:e,onPrivacyClick:t,contact:a}={}){const o=a?.email??"support@ihab.co.kr",n=a?.tel??"031-380-3724",{t:i}=we.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
|
|
1080
1080
|
\uC2E0\uB8B0\uB97C \uC313\uACE0
|
|
1081
1081
|
\uD68C\uBCF5\uC744 \uB3D5\uC2B5\uB2C8\uB2E4.`).split(`
|
|
1082
1082
|
`).map((l,c,u)=>r.jsxs(s.Fragment,{children:[l,c<u.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:yd,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.bizNo","\uC0AC\uC5C5\uC790\uB4F1\uB85D\uBC88\uD638")})," ",r.jsx("span",{className:"footer-meta caption-1",children:i("footer.bizNoValue","526-81-02926")})]}),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 dE='.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}}';se(dE);function Ev({logo:e,logoAlt:t="",logoHref:a,links:o=[],actions:n,className:i,containerClassName:l,renderLink:c,menuLabel:u}){const{t:d}=we.useTranslation(),h=u??{open:d("header.menuOpen","\uBA54\uB274 \uC5F4\uAE30"),close:d("header.menuClose","\uBA54\uB274 \uB2EB\uAE30")},[p,m]=s.useState(!1),v=s.useId(),x=s.useRef(null);s.useEffect(()=>{if(!p)return;const C=Uo(()=>{const y=document.getElementById(v);y&&y.contains(document.activeElement)&&x.current?.focus(),m(!1)}),f=typeof window<"u"&&window.matchMedia?window.matchMedia("(min-width: 961px)"):null,w=y=>{y.matches&&m(!1)};return f&&(f.matches&&m(!1),f.addEventListener?.("change",w)),()=>{C(),f?.removeEventListener?.("change",w)}},[p,v]);const g=l?`${l} landing-header__inner`:"landing-header__inner",b=(C,f)=>c?c(C,{onClick:f}):r.jsx("a",{href:C.href,onClick:f,"aria-current":C.current?"page":void 0,children:C.label});return r.jsxs("header",{className:i?`landing-header ${i}`:"landing-header",children:[r.jsxs("div",{className:g,children:[e!=null&&(()=>{const C=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:C}):r.jsx("div",{className:"landing-header__brand",children:C})})(),o.length>0&&r.jsx("nav",{className:"landing-header__links",children:o.map((C,f)=>r.jsx("span",{children:b(C)},`${f}:${C.href}`))}),r.jsxs("div",{className:"landing-header__actions",children:[n,o.length>0&&r.jsx("button",{ref:x,type:"button",onClick:()=>m(C=>!C),"aria-expanded":p,"aria-controls":v,"aria-label":p?h.close:h.open,className:p?"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:v,hidden:!p,className:"landing-header__drawer",children:r.jsx("div",{className:l??void 0,children:o.map((C,f)=>r.jsx("span",{className:"landing-header__drawer-item",children:b(C,()=>m(!1))},`${f}:${C.href}`))})})]})}var pE=".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}}";se(pE);function Dv({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]})})}function hE({mountedRef:e}){const t=s.useRef({phase:"sound",at:0}),a=s.useRef(0),o=s.useRef(null),n=s.useRef(null),i=s.useCallback(()=>{const g=t.current,b=g.phase!=="sound"&&g.at>0;n.current=b?{phase:g.phase,elapsed:Math.max(0,Date.now()-g.at)}:null},[]),l=s.useCallback(()=>{const g=n.current;return n.current=null,g},[]),c=s.useCallback(()=>{a.current+=1,t.current={phase:"sound",at:0}},[]),u=s.useCallback((g,b,C=0)=>{if(!(g>0))return Promise.resolve(!0);const f=a.current;return t.current={phase:b,at:Date.now()-Math.max(0,C)},new Promise(w=>{const y=setTimeout(()=>{o.current===y&&(o.current=null),w(!!e.current&&f===a.current)},g);o.current=y})},[e]),d=s.useCallback(()=>{t.current={phase:"sound",at:Date.now()}},[]),h=s.useCallback(()=>{t.current={phase:"sound",at:0}},[]),p=s.useCallback(()=>{const g=t.current;return g.phase!=="sound"&&g.at>0},[]),m=s.useCallback(()=>a.current,[]),v=s.useCallback(g=>g===a.current,[]),x=s.useCallback(()=>{a.current+=1},[]);return s.useEffect(()=>()=>{o.current&&(clearTimeout(o.current),o.current=null)},[]),s.useMemo(()=>({positionRef:t,isRunning:p,generation:m,isCurrent:v,abort:c,waitPad:u,enterSound:d,leave:h,pause:i,resume:l,__bumpGenerationForTest:x}),[p,m,v,c,u,d,h,i,l,x])}const or=9,Nv=e=>Math.round(Math.min(or,Math.max(0,e))/or*100),jv=e=>e/100*or,Or=2,pp=.1,mE=e=>Math.min(Or,Math.max(0,e)),bE=.1,gE=e=>Math.round(e*1e6)/1e6;function Fr(e){const{noiseRatio:t}=e;if(typeof t=="number"&&Number.isFinite(t))return mE(t);const a=Math.min(or,Math.max(0,Number(e.level)||0))/or,o=Number(e.mainVolume);return o>0?a>0?gE(Math.min(Or,Math.max(bE,a/o))):0:1}const Tv=e=>Math.min(1,Math.max(0,Number(e.mainVolume)||0));function hp(e){return Tv(e)}function vs(e){return Tv(e)*Fr(e)}function xs(e,t=al()){const a=Number.isFinite(t)&&t>0?t:1;return Math.min(1,vs(e)/a)}function Eo(e,t){const a={...e,...t??{}};return t&&"level"in t&&typeof t.noiseRatio!="number"&&(a.noiseRatio=Fr({level:a.level,mainVolume:a.mainVolume})),a}const Do={enabled:!0,type:"defaultNoise",level:4.5,noiseRatio:1,speed:1,mainVolume:1,mainSpeed:1},Cs=s.createContext(null);function Wn(){return s.useContext(Cs)}const mp=e=>`${tl()}/${e}`,Lv=e=>Array.from({length:10},(t,a)=>mp(`${e}-${String(a+1).padStart(2,"0")}.mp3`)),ys={get defaultNoise(){return mp("noise1.mp3")},get street(){return Lv("noise2")},get restaurant(){return Lv("noise3")},get buzz(){return mp("noise4.mp3")}};function fE(e){const t=Math.floor(Math.random()*10);switch(e){case"defaultNoise":return ys.defaultNoise;case"street":return ys.street[t];case"restaurant":return ys.restaurant[t];case"buzz":return ys.buzz;default:return null}}function vE({noisePlayer:e,audioRef:t,playbackStateRef:a,sequencer:o}){const n=s.useRef(e?.registerAnalyser);n.current=e?.registerAnalyser;const i=s.useRef(null),[l,c]=s.useState(null),u=s.useRef(null),d=s.useRef(null),h=s.useRef(null),p=s.useRef(null),m=s.useRef(0),v=s.useRef(null),x=s.useCallback(()=>!!o?.isRunning(),[o]),g=s.useCallback(()=>{p.current!==null&&(cancelAnimationFrame(p.current),p.current=null),v.current!==null&&(clearTimeout(v.current),v.current=null)},[]),b=s.useCallback((A,_=250)=>{const k=i.current;if(!k)return;const B=d.current;if(B){d.current=null;try{k.pause()}catch{}k.src=B,k.load()}if(!k.src)return;m.current+=1,g();try{en(),ur(k).then(z=>{if(i.current===k)try{n.current?.("noise",z)}catch{}})}catch{}const E=k.paused?0:dr(k);k.paused&&za(k,0),k.play().catch(()=>{});const S=performance.now(),D=()=>{const z=Math.min(1,(performance.now()-S)/_);try{za(k,E+(A-E)*z)}catch{}z<1?p.current=requestAnimationFrame(D):p.current=null};p.current=requestAnimationFrame(D)},[g]),C=s.useCallback((A=250,_)=>{const k=i.current;if(!k||k.paused){_?.();return}const B=++m.current;g();const E=performance.now(),S=dr(k),D=()=>{const z=Math.min(1,(performance.now()-E)/A);try{za(k,S*(1-z))}catch{}if(z<1)p.current=requestAnimationFrame(D);else{p.current=null,v.current!==null&&(clearTimeout(v.current),v.current=null);try{k.pause()}catch{}_?.()}};p.current=requestAnimationFrame(D),v.current=setTimeout(()=>{if(v.current=null,m.current===B){p.current!==null&&(cancelAnimationFrame(p.current),p.current=null);try{k.paused||(za(k,0),k.pause(),_?.())}catch{}}},A+150)},[g]);s.useEffect(()=>{const A=document.createElement("audio");return A.loop=!0,A.crossOrigin="anonymous",i.current=A,()=>{g();try{A.pause(),A.removeAttribute("src"),A.load()}catch{}i.current=null,u.current=null,d.current=null}},[g]);const f=e?xs(e.settings):0,w=!!e?.settings.enabled&&f>0;s.useEffect(()=>{if(!w)return;let A=0;const _=setInterval(()=>{const k=i.current;if(!k||k.paused){A=0;return}const B=t.current;if(B&&!B.paused&&!B.ended||x()||a.current==="playing"){A=0;return}A+=1,A>=2&&(A=0,C())},400);return()=>clearInterval(_)},[C,w,t,a,x]),s.useEffect(()=>{const A=()=>{const _=i.current;if(document.hidden){if(_&&!_.paused){g();try{_.pause()}catch{}}return}if(!_||!_.paused)return;const k=t.current,B=!!k&&!k.paused&&!k.ended||x()||a.current==="playing",E=h.current;B&&E?.enabled&&E.volume>0&&b(E.volume)};return document.addEventListener("visibilitychange",A),()=>document.removeEventListener("visibilitychange",A)},[g,b,t,a,x]),s.useEffect(()=>{h.current=e?{enabled:e.settings.enabled,volume:f,type:e.settings.type}:null},[e,e?.settings.enabled,f,e?.settings.type]);const y=s.useRef(null);return s.useEffect(()=>()=>{y.current?.(),y.current=null},[]),s.useEffect(()=>{const A=e?.settings,_=i.current;if(!_)return;const k=A?xs(A):0;if(!A||!A.enabled||k===0){C();return}if(u.current!==A.type){const B=fE(A.type);B&&(u.current=A.type,c(B),d.current=B,C(150,()=>{if(d.current!==B)return;d.current=null,_.src=B,_.load();const E=t.current;if(E&&!E.paused||x()){y.current?.();const S=()=>{_.removeEventListener("canplay",S),y.current===D&&(y.current=null);const z=t.current,T=h.current;(z&&!z.paused&&!z.ended||x())&&T?.enabled&&T.volume>0&&b(T.volume)},D=()=>_.removeEventListener("canplay",S);y.current=D,_.addEventListener("canplay",S)}}))}else{const B=t.current,E=!!B&&!B.paused&&!B.ended||x()||a.current==="playing";if(E&&d.current)b(k);else if(E&&_.paused&&_.src)b(k);else if(!_.paused)if(!E)C();else{g();const S=dr(_),D=performance.now(),z=()=>{const T=Math.min(1,(performance.now()-D)/150);try{za(_,S+(k-S)*T)}catch{}T<1?p.current=requestAnimationFrame(z):p.current=null};p.current=requestAnimationFrame(z)}}},[e?.settings,e?.settings.enabled,f,e?.settings.type,g,b,C,t,a,h,x]),s.useEffect(()=>{const A=i.current;if(A)try{A.playbackRate=Math.min(1.25,Math.max(.75,e?.settings.speed??1))}catch{}},[e?.settings.speed]),{noiseAudioRef:i,activeNoiseUrl:l,noiseSettingsRef:h,cancelNoiseFade:g,fadeInNoise:b,fadeOutNoise:C}}function xE({ttsText:e,playbackRate:t,mainVolume:a,fillRef:o,waveProgressRef:n,setProgress:i,setPlaybackState:l,setStateLocal:c,fadeInNoise:u,fadeOutNoise:d,noiseSettingsRef:h,onDoneRef:p,handleEndRef:m}){const v=s.useRef(null),x=s.useRef(0),g=s.useRef(null),b=s.useRef(0),C=s.useRef(!1);s.useEffect(()=>()=>{b.current++;try{if(g.current&&(cancelAnimationFrame(g.current),g.current=null),C.current&&window.speechSynthesis){try{window.speechSynthesis.cancel()}catch{}C.current=!1}}catch{}},[]);const f=(A,_=1)=>{try{const k=(A||"").trim().split(/\s+/).filter(Boolean).length||Math.max(1,(A||"").length);return Math.max(700,Math.round(k*300/Math.max(.25,_)))}catch{return 1200}},w=s.useCallback(A=>{if(typeof window>"u"||!window.speechSynthesis){try{typeof p.current=="function"&&p.current(!1)}catch{}return}const _=window.speechSynthesis,k=++b.current;try{try{_.cancel()}catch{}const B=A??e,E=Array.isArray(B)?B.filter(N=>!!N):[B||""];E.length===0&&E.push("");const S=Math.max(.3,Math.min(3,t));x.current=E.reduce((N,j)=>N+f(j,S||1),0),v.current=performance.now(),i(0),l("playing"),c("playMode");const D=h.current;D?.enabled&&(D?.volume??0)>0&&u(D.volume);const z=()=>{try{const N=v.current||performance.now(),j=performance.now()-N,P=x.current||1200,X=Math.min(1,j/P);try{o.current&&(o.current.style.left=`${X*100}%`),n.current&&n.current.style.setProperty("--progress",String(X))}catch{}X<1&&(g.current=requestAnimationFrame(z))}catch{}},T=()=>{if(k===b.current)try{g.current&&(cancelAnimationFrame(g.current),g.current=null),i(1),l("stopped");try{m.current?.()}catch{try{typeof p.current=="function"&&p.current(!0)}catch{}}}catch{}},G=N=>{const j=new SpeechSynthesisUtterance(E[N]);try{j.rate=S}catch{}try{j.volume=Math.max(0,Math.min(1,a))}catch{}j.onend=()=>{if(k===b.current){if(N<E.length-1){try{G(N+1)}catch{T()}return}T()}},j.onerror=()=>{T()},j.onstart=()=>{if(!(N>0))try{g.current&&(cancelAnimationFrame(g.current),g.current=null),g.current=requestAnimationFrame(z)}catch{}},C.current=!0,_.speak(j)};try{G(0)}catch{try{typeof p.current=="function"&&p.current(!0)}catch{}}}catch{try{typeof p.current=="function"&&p.current(!0)}catch{}}},[e,t,a,u,o,n,i,l,c,h,p,m]),y=s.useCallback(()=>{b.current++;try{if(window.speechSynthesis)try{window.speechSynthesis.cancel()}catch{}g.current&&(cancelAnimationFrame(g.current),g.current=null),d(),v.current=null}catch{}l("stopped"),c("active"),i(0)},[d,l,c,i]);return{startTTS:w,stopTTS:y}}var CE='.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{clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}.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)}';se(CE);const yE=.01,_E=.3;async function wE(e,t,a,o=!1){let n=null;try{const i=window.AudioContext||window.webkitAudioContext;n=new i;const l=await n.decodeAudioData(e.slice(0)),c=l.numberOfChannels>0?l.getChannelData(0):null;if(!c)return null;let u=0;if(o){const v=Math.floor(_E*l.sampleRate),x=Math.min(c.length,v);for(;u<x&&Math.abs(c[u])<=yE;)u++;u>=x&&(u=0)}const d=c.length-u,h=a&&a>0?Math.min(d,Math.floor(a*l.sampleRate)):d,p=Math.max(t,h),m=Math.floor(p/t)||1;return new Array(t).fill(0).map((v,x)=>{const g=u+x*m,b=Math.min(g+m,u+p,c.length);let C=0;for(let f=g;f<b;f++){const w=Math.abs(c[f]);w>C&&(C=w)}return C})}catch{return null}finally{try{n?.close?.()}catch{}}}async function Mv(e,t,a,o=!1){try{const n=await fetch(e);if(n.ok===!1)return null;const i=await n.arrayBuffer();return await wE(i,t,a,o)}catch(n){try{const i=mn(n)}catch{}return null}}const _s=45,$v=74,Rv=2;function Gn(e){const t=Math.min(2,Math.max(0,Number(e)||0));return t<=1?t*45:45+(t-1)*29}function Hn(e){return Gn(e)/45}const kE=e=>Math.max(0,(typeof e=="number"&&Number.isFinite(e)?e:0)*1e3),Pv=e=>Math.max(0,typeof e=="number"&&Number.isFinite(e)?e:0);function zv({durationsSec:e,leadInMs:t=0,tailMs:a=0}){const o=Pv(t),n=Pv(a),i=[];let l=0;return e.forEach((c,u)=>{for(const[d,h]of[["lead",o],["sound",kE(c)],["tail",n]])i.push({kind:d,track:u,startMs:l,durMs:h}),l+=h}),{segments:i,totalMs:l,trackCount:e.length}}function Iv(e,t){const a=(t|0)*3;if(t<0||a+2>=e.segments.length)return null;const[o,n,i]=[e.segments[a],e.segments[a+1],e.segments[a+2]];return{lead:o,sound:n,tail:i,totalMs:o.durMs+n.durMs+i.durMs}}function BE(e,t){const a=Iv(e,t.track);if(!a||!(a.totalMs>0))return 0;const o=a[t.kind],n=Math.min(Math.max(0,Number.isFinite(t.elapsedMs)?t.elapsedMs:0),o.durMs);return Math.max(0,Math.min(1,(o.startMs-a.lead.startMs+n)/a.totalMs))}function AE(e,t,a){const o=Math.max(0,Math.floor(a)),n=Iv(e,t);if(!n||o===0||!(n.totalMs>0)||n.lead.durMs===0&&n.tail.durMs===0||!(n.sound.durMs>0))return{lead:0,sound:o,tail:0};const i=Math.round(n.lead.durMs/n.totalMs*o),l=Math.round(n.tail.durMs/n.totalMs*o),c=Math.max(1,o-i-l),u=i+c+l-o;return{lead:Math.max(0,i-Math.ceil(u/2)),sound:c,tail:Math.max(0,l-Math.floor(u/2))}}function SE({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 EE({phase:e,phaseElapsedMs:t,currentTime:a,trackDurationSec:o,leadInMs:n,tailMs:i}){const l=zv({durationsSec:[o],leadInMs:n,tailMs:i});return BE(l,{track:0,kind:e,elapsedMs:e==="sound"?(Number.isFinite(a)?a:0)*1e3:t})}function DE({bars:e,trackDurationSec:t,leadInMs:a,tailMs:o}){return AE(zv({durationsSec:[t],leadInMs:a,tailMs:o}),0,e)}function NE(e,t){if(!Array.isArray(e))return null;const a=t||0;return a<e.length-1?a+1:null}function jE({ended:e,completedByEnd:t}){return!!e||!!t}function TE(e){return e.map((t,a)=>({src:t.src,label:String(a+1),color:void 0,duration:t.duration||0}))}function LE(e){return e.reduce((t,a)=>t+(a.duration||0),0)}function ME(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}function $E(e,t){if(!t||e.readyState<1)return!0;const a=e.currentSrc||e.src;return a?Ov(a)!==Ov(t):!0}function Ov(e){try{return new URL(e,typeof location>"u"?"http://localhost/":location.href).href}catch{return e}}const Fv=4,RE=Hn(Fv/_s);function PE(e){const{src:t,segments:a,progress:o=0,waveProgressRef:n,noiseSrc:i,noiseRatio:l=0,noiseSpeed:c=1,totalDuration:u=0,mainVolume:d=1,onReadyChange:h,showSoundWaveForm:p=!0,leadInMs:m=0,tailMs:v=0,trackDurationSec:x=0}=e,g=s.useRef(null),b=s.useRef(null),[C,f]=s.useState(null),[w,y]=s.useState(!1),[A,_]=s.useState(null),[k,B]=s.useState(2),[E,S]=s.useState(0),[D,z]=s.useState(null),[T,G]=s.useState(!1),[N,j]=s.useState(!1),P=3,X=3,K=1,M=300,W=s.useRef(0),R=s.useCallback(()=>{const ye=g.current,me=b&&b.current?b.current:ye?ye.closest(".audio-player__wave"):null,ue=me?me.getBoundingClientRect():ye?ye.getBoundingClientRect():null,xe=ue?ue.width:0,V=ue?Math.max(100,ue.width):320,ae=ue?ue.height:0,ge=Math.max(K,Math.min(M,Math.floor((V+X)/(P+X)))),ke=ge*P,Ae=Math.max(0,ge-1),ze=Math.max(0,Ae>0?(V-ke)/Ae:X);return{bars:ge,gap:ze,height:ae,width:xe}},[]),U=s.useRef(void 0),F=s.useRef(null),q=s.useCallback(async(ye,me,{quiet:ue=!1}={})=>{const xe=++W.current,V=()=>W.current===xe;try{if(ue||y(!1),U.current=ye,!ye){V()&&f(null);return}let ae=me;if(!ae)try{for(let Ae=0;Ae<4&&!(g.current||b.current);Ae++)await new Promise(ze=>requestAnimationFrame(ze));await new Promise(Ae=>requestAnimationFrame(Ae));const ke=R();ke.height>0&&S(ke.height),ae=ke.bars,B(ke.gap)}catch{ae=120}F.current=ae;const ge=await Mv(ye,ae);if(!V())return;if(!ge){f(null),y(!1);return}f(ge),_(ae),y(!0)}catch{if(!V())return;f(null),y(!1)}},[y,f,S,B,_,R]);s.useEffect(()=>{const ye=b.current;if(!ye||typeof ResizeObserver>"u")return;let me=null;const ue=new ResizeObserver(()=>{me!==null&&cancelAnimationFrame(me),me=requestAnimationFrame(()=>{me=null;try{const xe=R();if(xe.width<=0||(xe.height>0&&S(xe.height),F.current===null||xe.bars===F.current))return;const V=U.current;B(xe.gap),V?q(V,xe.bars,{quiet:!0}).catch(()=>{}):F.current=xe.bars}catch{}})});return ue.observe(ye),()=>{ue.disconnect(),me!==null&&cancelAnimationFrame(me)}},[R,q]),s.useEffect(()=>{const ye=a&&a[0]&&a[0].src||t||a&&a.length===1&&a[0]&&a[0].src;q(typeof ye=="string"?ye:void 0).catch(()=>{}),j(!1)},[t,a,q]),s.useEffect(()=>{let ye=!1;if(G(!1),z(null),!i||!A)return;const me=u>0?u*(c||1):void 0;return Mv(i,A,me,!0).then(ue=>{ye||(z(ue),ue||G(!0))}).catch(()=>{ye||(z(null),G(!0))}),()=>{ye=!0}},[i,A,u,c]);const L=Math.max(0,Math.min(1,d)),I=s.useMemo(()=>C&&C.length&&Math.max(...C)||1,[C]),O=A||40,Q=s.useMemo(()=>DE({bars:O,trackDurationSec:x,leadInMs:m,tailMs:v}),[O,x,m,v]),ce=s.useMemo(()=>Array.from({length:O}).map((ye,me)=>{const ue=me>=Q.lead&&me<Q.lead+Q.sound,xe=Q.sound>0&&ue?Math.min(O-1,Math.round((me-Q.lead)/Q.sound*O)):-1,V=ue?C&&C[xe]!=null?C[xe]:null:C?0:null,ae=V==null?null:Math.min(1,V/I*L),ge=ae!=null&&E>0&&Gn(ae)<=Fv,ke=ae==null?.15:ge?0:Hn(ae),Ae=ge,ze=O>1?me/(O-1):0;return r.jsx("div",{className:Ae?"audio-player__bar audio-player__bar--hidden":"audio-player__bar",style:{"--val":ke,"--i":me,"--mix":ze}},me)}),[O,C,I,L,E,Q]),ne={"--progress":String(Math.max(0,Math.min(1,o)))},be=s.useMemo(()=>D&&D.length&&Math.max(...D.map(ye=>Number.isFinite(ye)?Math.abs(ye):0))||1,[D]),J=L*Math.max(0,l),H=!i||!D||!D.length?1:Math.max(1,J),le={"--bar-gap":`${k}px`,"--wave-h":`${Gn(H)}px`,"--wave-h1":`${_s}px`},Y=w&&(i?!!D||T:!0);s.useEffect(()=>{Y&&j(!0)},[Y]);const Z=N?w:Y;s.useEffect(()=>{h?.(Z)},[Z,h]);const he=A||40,je=s.useMemo(()=>Array.from({length:he}).map((ye,me)=>{const ue=D&&D[me]!=null?D[me]:null,xe=ue==null?0:Math.abs(ue)/be*J,V=Math.max(RE,Hn(xe)),ae=he>1?me/(he-1):0;return r.jsx("div",{className:"audio-player__bar",style:{"--val":V,"--i":me,"--mix":ae}},me)}),[he,D,be,J,E]);return r.jsxs("div",{className:"audio-player__wave",ref:b,style:le,children:[i&&r.jsx("div",{className:`audio-player__wave-noise ${Y?"is-ready":""}`,"aria-hidden":"true",children:je}),p&&r.jsxs(r.Fragment,{children:[r.jsx("div",{className:`audio-player__wave-inner audio-player__wave-unplayed ${Z?"is-ready":""}`,ref:g,children:ce}),r.jsx("div",{className:`audio-player__wave-inner audio-player__wave-played ${Z?"is-ready":""}`,ref:n,style:ne,children:ce})]})]})}const Wv={idle:!1,synthesizing:!0,resolving:!0,checking_exists:!0,getting_signed_url:!0,downloading:!0,measuring_duration:!0,ready:!1,error:!0};function bp(e,t){return new Promise((a,o)=>{const n=document.createElement("audio");let i=!1;const l=()=>{try{n.removeAttribute("src"),n.load()}catch{}},c=()=>{if(i)return;i=!0;const d=isFinite(n.duration)&&n.duration||0;l(),a(d)},u=d=>{i||(i=!0,l(),t.rejectOnError?o(new Error(d)):a(0))};n.addEventListener("loadedmetadata",c),n.addEventListener("error",()=>u("audio load failed")),setTimeout(()=>u("audio load timeout"),t.timeoutMs),n.src=e})}const zE=2e3;function Gv(e,t=zE){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 IE({showSoundWaveForm:e,showNoiseWaveForm:t,timeoutMs:a=2500}){const o=s.useRef(!1),n=s.useRef([]),i=s.useCallback(u=>{if(o.current=u,!u||!n.current.length)return;const d=n.current;n.current=[];for(const h of d)h(!0)},[]),l=s.useCallback(()=>{o.current=!1},[]),c=s.useCallback(()=>!e&&!t||o.current?Promise.resolve(!0):new Promise(u=>{const d=p=>{clearTimeout(h),n.current=n.current.filter(m=>m!==d),u(p)},h=setTimeout(()=>d(!0),a);n.current.push(d)}),[e,t,a]);return s.useEffect(()=>()=>{const u=n.current;n.current=[];for(const d of u)d(!1)},[]),{onReadyChange:i,waitForReady:c,markNotReady:l}}function OE(){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 FE({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 WE(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}const GE=400,HE=2e3,Hv=5;function VE({audioRef:e,fillRef:t,waveProgressRef:a,sourcesRef:o,currentIndexRef:n,sequencer:i,leadInMs:l=0,tailMs:c=0}){const u=s.useRef(null),d=s.useRef(0),h=s.useRef(null),p=s.useCallback(()=>{u.current!==null&&(cancelAnimationFrame(u.current),u.current=null)},[]),m=s.useCallback(()=>{if(u.current!==null)return;let x=0;const g=()=>{if(ho){const b=typeof performance<"u"&&performance.now?performance.now():Date.now();if(x>0&&b-x>GE){const C=h.current===null||b-h.current>HE;if(h.current=b,C&&d.current<Hv){d.current+=1;const f=d.current;let w=null;try{w=typeof document<"u"?document.visibilityState:null}catch{}Pt(`progress-ticker-slow-frames#${f}`,`[ihab-core] \uC9C4\uD589 \uC0AC\uC2AC\uC758 \uD2C0 \uC0AC\uC774\uAC00 ${Math.round(b-x)}ms \uC785\uB2C8\uB2E4(\uBCF4\uD1B5 16ms).`,w==="hidden"?"\uC774 \uCE78\uC774 **\uC228\uC5B4 \uC788\uC5B4** \uBE0C\uB77C\uC6B0\uC800\uAC00 \uD2C0\uC744 \uC904\uC600\uC2B5\uB2C8\uB2E4 \u2014 \uC7AC\uC0DD\uBC14\xB7\uD30C\uD615\uC740 \uD2C0\uB9C8\uB2E4 \uADF8\uB824\uC9C0\uBBC0\uB85C, \uC9C0\uAE08 \uC7AC\uB294 \uAC12\uC740 **\uC0AC\uB78C\uC774 \uBCF4\uB294 \uD654\uBA74\uACFC \uB2E4\uB985\uB2C8\uB2E4.** \uCE78\uC744 \uC55E\uC73C\uB85C \uAEBC\uB0B4\uACE0 \uB2E4\uC2DC \uC7AC\uC2ED\uC2DC\uC624.":"\uCE78\uC740 \uBCF4\uC774\uB294\uB370 \uD2C0\uC774 \uB290\uB9BD\uB2C8\uB2E4 \u2014 \uAC19\uC740 \uD654\uBA74\uC5D0\uC11C \uBB34\uAC70\uC6B4 \uC77C\uC774 \uB3C4\uB294\uC9C0 \uBCF4\uC2ED\uC2DC\uC624. \uC7AC\uC0DD\uBC14\xB7\uD30C\uD615\uC774 \uB04A\uACA8 \uBCF4\uC774\uB294 \uAC83\uC740 \uC774 \uD0D3\uC77C \uC218 \uC788\uC2B5\uB2C8\uB2E4.",f>=Hv?`(${f}\uBC88\uC9F8 \u2014 \uB354\uB294 \uC548 \uC54C\uB9BD\uB2C8\uB2E4)`:`(${f}\uBC88\uC9F8)`)}}x=b}try{const b=e.current,C=Array.isArray(o.current)?o.current[n.current||0]:void 0,f=!!C&&Number.isFinite(C.duration)&&(C.duration??0)>0,w=f?0:WE(b),y=t.current,A=(l||0)>0||(c||0)>0,_=A&&(i?.positionRef.current?.phase??"sound")!=="sound";if(w===null&&!_)try{y&&y.style.visibility!=="hidden"&&(y.style.visibility="hidden")}catch{}else{const k=f?C.duration:w||0;ho&&_&&!(k>0)&&Pt("progress-ticker-pad-without-duration","[ihab-core] \uB738\uC774 \uB3C4\uB294\uB370 **\uC18C\uB9AC \uAE38\uC774\uB97C \uBAA8\uB985\uB2C8\uB2E4** \u2014 \uC7AC\uC0DD\uBC14\uAC00 \uB738\uB9CC\uC73C\uB85C \uC5B4\uB9BC\uC7A1\uC544 \uC6C0\uC9C1\uC785\uB2C8\uB2E4.","\uC18C\uB9AC \uAE38\uC774 \uC7AC\uAE30(measureAudioDuration)\uAC00 0 \uC744 \uC92C\uAC70\uB098 `<audio>` \uAC00 \uC544\uC9C1 \uC548 \uC2E4\uB838\uC2B5\uB2C8\uB2E4. \uAE38\uC774\uB97C \uC54C\uAC8C \uB418\uBA74 \uB9C8\uCEE4\uAC00 \uADF8 \uC21C\uAC04 **\uB4A4\uB85C \uBB3C\uB7EC\uB0A9\uB2C8\uB2E4**(\uC5B4\uB9BC\uC740 \uB298 \uCC38\uBCF4\uB2E4 \uD07D\uB2C8\uB2E4). \uC774 \uC904\uC774 \uBCF4\uC774\uBA74 \uADF8 \uC790\uB9AC\uB97C \uC54C\uB824 \uC8FC\uC2ED\uC2DC\uC624 \u2014 \uD3C9\uC18C \uAE38\uC5D0\uC11C\uB294 \uC548 \uB098\uC640\uC57C \uD569\uB2C8\uB2E4.");const B=A?EE({phase:i?.positionRef.current?.phase??"sound",phaseElapsedMs:i?.positionRef.current?Math.max(0,Date.now()-i.positionRef.current.at):0,currentTime:b&&typeof b.currentTime=="number"?b.currentTime:0,trackDurationSec:k,leadInMs:l||0,tailMs:c||0}):SE({currentTime:b&&typeof b.currentTime=="number"?b.currentTime:0,sources:o.current,index:n.current,audioDuration:w??0});try{y&&(y.style.visibility&&(y.style.visibility=""),y.style.left=`${B*100}%`)}catch{}try{a.current?.style.setProperty("--progress",String(B))}catch{}}}catch{}u.current=requestAnimationFrame(g)};u.current=requestAnimationFrame(g)},[e,t,a,o,n,i,l,c]),v=s.useCallback(x=>{p();try{t.current&&(t.current.style.visibility="",t.current.style.left=`${x*100}%`)}catch{}try{a.current?.style.setProperty("--progress",String(x))}catch{}},[p,t,a]);return s.useEffect(()=>p,[p]),{start:m,stop:p,settleTo:v}}function Vn({btnLabel:e,soundSrc:t,bucketPath:a,onDone:o,disabled:n=!1,ttsText:i=null,className:l,showSoundWaveForm:c=!0,showNoiseWaveForm:u=!0,leadInMs:d=0,tailMs:h=0}){const{t:p}=we.useTranslation(),m=e,v=Wn(),x=s.useRef(v?.registerAnalyser);s.useEffect(()=>{x.current=v?.registerAnalyser});const g=s.useRef(null),b=s.useRef(null),C=s.useRef(null),f=OE(),w=s.useRef(null),y=s.useRef(!1),A=s.useRef(null),{ref:_,rect:k,show:B,hide:E}=FE();s.useEffect(()=>()=>{x.current?.("main",null),x.current?.("noise",null)},[]);const[S,D]=s.useState(!1),[z,T]=s.useState("idle"),[G,N]=s.useState("stopped"),j=s.useRef("stopped");s.useEffect(()=>{j.current=G},[G]);const[P,X]=s.useState(0),[K,M]=s.useState("active"),W=s.useRef(!1);s.useEffect(()=>{if(K!=="playMode"||!W.current)return;W.current=!1;const ee=typeof document<"u"?document.activeElement:null;if(ee&&ee!==document.body)return;const pe=C.current?.querySelectorAll("button")[1];try{pe?.focus()}catch{}},[K]);const[R,U]=s.useState(null),[F,q]=s.useState(null),[L,I]=s.useState(0),[O,Q]=s.useState(!1),[ce,ne]=s.useState(0),be=v?.playbackRate??1,J=v?.mainVolume??1,H=v?vs(v.settings):0,le=v?hp(v.settings):J,[Y,Z]=s.useState("idle"),[he,je]=s.useState(""),[ye]=s.useState("top"),me=s.useRef(null),ue=s.useRef(0),xe=s.useRef(null),V=s.useRef(!0),ae=hE({mountedRef:V}),ge=s.useRef(null),ke=s.useRef(d),Ae=s.useRef(h);s.useEffect(()=>{ke.current=Math.max(0,d||0)},[d]),s.useEffect(()=>{Ae.current=Math.max(0,h||0)},[h]);const{start:ze,stop:Fe,settleTo:ut}=VE({audioRef:g,fillRef:b,waveProgressRef:xe,sourcesRef:me,currentIndexRef:ue,sequencer:ae,leadInMs:d,tailMs:h}),{onReadyChange:it,waitForReady:et,markNotReady:gt}=IE({showSoundWaveForm:c,showNoiseWaveForm:u}),Ee=s.useRef(null),Ve=s.useRef(n),Be=s.useRef(o),Ue=s.useRef(null),De=s.useRef(!1),[Pe,Me]=s.useState(!1),Qe=s.useCallback(ee=>{De.current=ee,Me(ee)},[]),yt=s.useRef(null),{activeNoiseUrl:nt,noiseSettingsRef:tt,fadeInNoise:Et,fadeOutNoise:vt}=vE({noisePlayer:v,audioRef:g,playbackStateRef:j,sequencer:ae}),{startTTS:Dt,stopTTS:At}=xE({ttsText:i,playbackRate:be,mainVolume:le,fillRef:b,waveProgressRef:xe,setProgress:X,setPlaybackState:N,setStateLocal:M,fadeInNoise:Et,fadeOutNoise:vt,noiseSettingsRef:tt,onDoneRef:Be,handleEndRef:yt});s.useEffect(()=>{lt.current=At});const _t=ee=>{if(typeof window>"u"||!window.speechSynthesis){try{je(p("training.ttsUnavailable","\uC774 \uAE30\uAE30\uC5D0\uC11C\uB294 \uC74C\uC131\uC744 \uB4E4\uB824\uC904 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4."))}catch{}Dt(ee);return}ct("tts"),Dt(ee)},Xe=Array.isArray(t)?t.filter(Boolean):t?[t]:[],ie=(!Xe||Xe.length===0)&&!!i,Te=Array.isArray(R)&&R.length>0?R:Array.isArray(F)&&F.length>0?F:null,at=Math.max(Array.isArray(Te)?Te.length:0,Xe.length);s.useEffect(()=>(V.current=!0,()=>{V.current=!1}),[]);const qe=()=>{ae.abort()},lt=s.useRef(null),Re=s.useRef(null),ht=s.useRef(null),Ie=s.useRef(null);Ie.current||(Ie.current=()=>{ht.current=null;const ee=g.current;if(Re.current==="audio"&&ee&&(!ee.paused||ae.isRunning())){qe();try{ee.pause()}catch{}V.current&&(N("paused"),Fe(),vt())}else if(Re.current==="tts")try{lt.current?.()}catch{}});const ct=ee=>{Re.current=ee,ht.current=Zi(Ie.current)},xt=()=>{ht.current?.(),ht.current=null};s.useEffect(()=>()=>{Ie.current&&Ji(Ie.current)},[]);const Nt=s.useRef(be);s.useEffect(()=>{Nt.current=be||1},[be]);const Je=s.useCallback(ee=>{const pe=Nt.current||1;try{ee.defaultPlaybackRate=pe}catch{}try{ee.playbackRate=pe}catch{}},[]),dt=s.useCallback((ee,pe)=>{if(!$E(ee,pe)){try{ee.currentTime=0}catch{}Je(ee);return}ee.src=pe,Je(ee),ee.load(),Je(ee)},[Je]),pt=s.useCallback(()=>{Ue.current&&(clearTimeout(Ue.current),Ue.current=null),Z("idle")},[]),ft=s.useCallback(async(ee,pe=3,oe=50,_e=0)=>{pt();const Oe=ae.generation(),He=!!ee&&ee.currentTime>0&&!ee.ended,rt=Math.max(0,ke.current-Math.max(0,_e));if(rt>0&&!He){ct("audio"),ze(),N("playing");const Ct=tt.current;if(Ct?.enabled&&(Ct.volume??0)>0)try{Et(Ct.volume)}catch{}if(!await ae.waitPad(rt,"lead",_e)||!V.current||!ae.isCurrent(Oe))return!1}ae.enterSound();for(let Ct=0;Ct<pe;Ct++){if(!V.current||!ae.isCurrent(Oe))return!1;try{return ct("audio"),await ee.play(),!0}catch(Ce){if((Ce instanceof Error||typeof Ce=="object"&&Ce&&"name"in Ce?Ce.name:void 0)==="AbortError"){if(!ae.isCurrent(Oe))return!1;await new Promise($=>setTimeout($,oe));continue}try{je(p("training.audioFetchError","\uC0AC\uC6B4\uB4DC \uC18C\uC2A4\uB97C \uAC00\uC838\uC624\uC9C0 \uBABB\uD588\uC2B5\uB2C8\uB2E4."))}catch{}return!1}}try{je(p("training.audioFetchError","\uC0AC\uC6B4\uB4DC \uC18C\uC2A4\uB97C \uAC00\uC838\uC624\uC9C0 \uBABB\uD588\uC2B5\uB2C8\uB2E4."))}catch{}return!1},[p,ze,ae,Et,tt,pt]),jt=s.useCallback(ee=>{const pe=ae.generation(),oe=Math.max(0,Ae.current-Math.max(0,ee));ze();const _e=tt.current;if(_e?.enabled&&(_e.volume??0)>0)try{Et(_e.volume)}catch{}const Oe=()=>{try{ge.current?.()}catch{}};if(oe<=0){ae.leave(),Oe();return}ae.waitPad(oe,"tail",ee).then(He=>{ae.leave(),He&&ae.isCurrent(pe)&&Oe()}).catch(()=>{})},[ae,ze,Et,tt]),ta=s.useCallback(()=>{const ee=g.current;if(!ee)return;const pe=()=>{N("playing"),M("playMode"),Q(!0),ze();try{en(),ur(ee).then(He=>{if(V.current)try{x.current?.("main",He)}catch{}})}catch{}const Oe=tt.current;Oe?.enabled&&(Oe?.volume??0)>0&&Et(Oe.volume)},oe=()=>{jE({ended:!!ee?.ended,completedByEnd:De.current})||(N("paused"),Fe(),vt())},_e=()=>{const Oe=()=>{try{const He=me.current,rt=NE(He,ue.current);if(rt!==null){ue.current=rt,I(rt),Q(!0);const Ct=He?.[rt]&&He[rt].src;if(Ct&&ee){dt(ee,Ct),ft(ee).catch(()=>{});return}}}catch{}N("stopped"),X(1);try{if(ee)try{ee.currentTime=0}catch{}}catch{}Fe(),Q(!1),vt();try{!Ve.current&&yt.current&&yt.current()}catch{}};if(ge.current=Oe,Ae.current>0){ze(),ae.waitPad(Ae.current,"tail").then(He=>{ae.leave(),He&&Oe()}).catch(()=>{});return}Oe()};return ee.addEventListener("play",pe),ee.addEventListener("pause",oe),ee.addEventListener("ended",_e),()=>{try{ee.removeEventListener("play",pe),ee.removeEventListener("pause",oe),ee.removeEventListener("ended",_e),Fe()}catch{}}},[Et,vt,ft,tt,ze,Fe,ae]);s.useEffect(()=>ta(),[ta]),s.useEffect(()=>{Ve.current=n},[n]),s.useEffect(()=>{Be.current=o},[o]),s.useEffect(()=>{if(n||K!=="active")return;const ee=A.current;if(!ee)return;let pe=null;const oe=requestAnimationFrame(()=>{try{const _e=ee.getTotalLength();if(!_e)return;const Oe=_e*.2;ee.style.strokeDasharray=`${_e-Oe} ${Oe}`;const He="triFlow_"+Math.random().toString(36).slice(2);pe=document.createElement("style"),pe.textContent=`@keyframes ${He}{from{stroke-dashoffset:0}to{stroke-dashoffset:-${_e}}}`,document.head.appendChild(pe),ee.style.animation=`${He} 2.4s linear infinite`}catch{}});return()=>{cancelAnimationFrame(oe),pe?.remove()}},[K,n]),s.useEffect(()=>{me.current=R},[R]),s.useEffect(()=>{ue.current=L},[L]),s.useEffect(()=>{const ee=C.current,pe=w.current;if(!ee||!pe)return;let oe=null;const _e=32,Oe=60,He=()=>{try{const Ct=Array.from(ee.querySelectorAll(":scope > .button"));let Ce=0;Ct.forEach(We=>{if(We===pe)return;const Ze=We.getBoundingClientRect();Ce+=Ze.width});const $=ee.getBoundingClientRect().width,te=Math.max(0,Math.floor($-Ce-8)),fe=at;if(!fe||te<=0){Array.from(pe.children).forEach(We=>{try{We.style.width=""}catch{}});return}let Le=Math.floor(te/fe);Le>Oe&&(Le=Oe),Le<_e&&(Le=Math.max(_e,Math.floor(te/fe))),Array.from(pe.querySelectorAll(".button")).forEach(We=>{try{We.style.width=`${Le}px`}catch{}})}catch{}},rt=requestAnimationFrame(He);try{oe=new ResizeObserver(()=>{requestAnimationFrame(He)}),oe.observe(ee),oe.observe(pe),window.addEventListener("resize",He)}catch{}return()=>{try{cancelAnimationFrame(rt)}catch{}try{oe&&(oe.disconnect(),oe=null)}catch{}try{window.removeEventListener("resize",He)}catch{}}},[R,F,at]),s.useEffect(()=>()=>{try{Ee.current&&(clearTimeout(Ee.current),Ee.current=null),Ue.current&&(clearTimeout(Ue.current),Ue.current=null)}catch{}},[]);const pa=(ee,pe)=>{U(ee),ne(pe),gt(),q(TE(ee)),me.current=ee},Pa=()=>{M("playMode"),I(0),Q(!0)},lo=async(ee,pe)=>{Qe(!1),y.current=!1,dt(ee,pe),await Gv(ee),await et()!==!1&&(D(!1),Pa(),await ft(ee))},jo=async(ee,pe=!1)=>{const oe=g.current;D(!0),T("measuring_duration");try{const _e=await bp(ee,{timeoutMs:1e4,rejectOnError:!0});pa([{src:ee,objectUrl:null,duration:_e}],_e),T("ready"),pe&&oe&&await lo(oe,ee)}finally{y.current=!1,D(!1)}},To=async(ee,pe=!1)=>{const oe=g.current;D(!0),T("measuring_duration");try{const _e=await Promise.all(ee.map(He=>bp(He,{timeoutMs:1e4})));if(!V.current)return;const Oe=ee.map((He,rt)=>({src:He,objectUrl:null,duration:_e[rt]||0}));pa(Oe,LE(Oe)),T("ready"),pe&&oe&&Oe.length>0&&await lo(oe,Oe[0].src)}finally{y.current=!1,D(!1)}},aa=async(ee=!1,pe=!0)=>{const oe=g.current,_e=t?Array.isArray(t)?t:[t]:[];if(!_e||_e.length===0||!_e.some(Boolean))return!1;if(y.current)return null;y.current=!0,pe&&D(!0),T("resolving");try{const Oe=ME(t,a,Xn),He=[];let rt=0;for(const Ct of Oe){let Ce=Ct.src??null,$=null;if(!Ce&&Ct.resolvedPath){try{T("getting_signed_url"),Ce=await Zr(Ct.resolvedPath)}catch{Ce=null}if(!V.current)return!1;if(!Ce)try{T("downloading");const fe=await Zn(Ct.resolvedPath);if(!V.current)return!1;if(fe){const Le=fe instanceof Blob?fe:new Blob([fe]);$=f.track(URL.createObjectURL(Le)),Ce=$}}catch{T("error");try{je(p("training.audioFetchError","\uC0AC\uC6B4\uB4DC \uC18C\uC2A4\uB97C \uAC00\uC838\uC624\uC9C0 \uBABB\uD588\uC2B5\uB2C8\uB2E4.")),M("active")}catch{}}}if(!Ce)continue;let te=0;try{T("measuring_duration"),te=await bp(Ce,{timeoutMs:3e3})}catch{te=0}if(!V.current){if($)try{URL.revokeObjectURL($)}catch{}for(const fe of He)if(fe.objectUrl)try{URL.revokeObjectURL(fe.objectUrl)}catch{}return!1}rt+=te||0,He.push({...Ct,src:Ce,objectUrl:$,duration:te})}if(pa(He,rt),He.length>0&&ee&&oe){const Ct=He[0];Qe(!1);try{f.keepOnly(He.map(Ce=>Ce.objectUrl))}catch{}if(T("ready"),y.current=!1,Ct.src&&oe)try{if(dt(oe,Ct.src),await Gv(oe),await et()===!1)return!1;pe&&D(!1),Pa(),oe&&await ft(oe)}catch{pe&&D(!1)}else pe&&D(!1);M("playMode"),I(0),Q(!0)}return He.length>0}finally{y.current=!1,pe&&D(!1),T(Oe=>Oe==="ready"?"ready":"idle")}},Ba=async ee=>{const pe=ae.isRunning();if(ee.paused&&!pe){if(De.current){await Gt();return}const oe=ae.resume();if(oe){if(N("playing"),oe.phase==="tail"){jt(oe.elapsed);return}await ft(ee,3,50,oe.elapsed);return}await ft(ee),N("playing")}else ae.pause(),qe(),ee.pause(),N("paused"),pe&&(Fe(),vt())},oa=async()=>{const ee=g.current;if(!(!ee&&!ie)){if(ie){const pe=window.speechSynthesis;if(K==="active"){const oe=Ro(),_e=Array.isArray(i)?i.filter(Boolean):i?[i]:[];if(oe&&_e.length>0){if(y.current)return;M("load"),D(!0),T("synthesizing"),y.current=!0;try{const Oe=await Promise.all(_e.map(He=>Promise.resolve(oe(He))));Oe.length>1?await To(Oe,!0):await jo(Oe[0],!0)}catch{y.current=!1,D(!1),M("active"),_t(_e.length>0?_e:void 0)}return}_t(_e.length>0?_e:void 0);return}if(K==="playMode"){const oe=!!pe&&(pe.speaking||pe.paused)&&!(ee&&(ee.currentSrc||ee.getAttribute("src")));if(ee&&!oe){await Ba(ee);return}try{if(pe&&pe.paused)try{ct("tts"),pe.resume(),N("playing")}catch{}else try{pe.pause(),N("paused")}catch{}}catch{}}return}if(K==="active"){if(n&&Array.isArray(me.current)&&me.current.length>0){const oe=me.current[0];try{if(oe.src&&ee)try{dt(ee,oe.src),Pa(),ee&&await ft(ee)}catch{}Pa();return}catch{}}M("load");let pe;try{pe=await aa(!0)}catch{pe=!1}if(pe===!1&&V.current){try{je(p("training.audioFetchError","\uC0AC\uC6B4\uB4DC \uC18C\uC2A4\uB97C \uAC00\uC838\uC624\uC9C0 \uBABB\uD588\uC2B5\uB2C8\uB2E4."))}catch{}M("active")}return}if(K!=="load"&&(K==="playMode"||K==="active"))try{ee&&await Ba(ee)}catch(pe){(pe instanceof Error||typeof pe=="object"&&pe&&"name"in pe)&&pe.name}}},Gt=async()=>{const ee=g.current;if(ee)try{const pe=me.current;if(Array.isArray(pe)&&pe.length>1){await Jt(0);return}Qe(!1);try{ee.currentTime=0}catch{}ee&&await ft(ee),N("playing"),M("playMode")}catch{}},co=()=>{qe(),xt(),lt.current?.();const ee=g.current;try{if(ee){try{ee.pause()}catch{}try{ee.currentTime=0}catch{}}}catch{}vt(),N("stopped"),M("active"),X(0),Q(!1)},ya=async(ee,{sameSegment:pe=!1}={})=>{qe();const oe=ae.generation(),_e=g.current,Oe=me.current?.[ee]?.src;try{if(Qe(!1),I(ee),Q(!0),ue.current=ee,!Oe||!_e||(pe||gt(),dt(_e,Oe),!pe&&await et()===!1)||!ae.isCurrent(oe)||(await ft(_e),!ae.isCurrent(oe)))return;N("playing"),M("playMode")}catch{}},uo=async()=>{const ee=me.current,pe=ue.current||0;if(!ee||pe<=0){await Gt();return}await ya(pe-1)},po=async()=>{const ee=me.current,pe=ue.current||0;if(!ee||pe>=ee.length-1){co();return}await ya(pe+1)},Za=()=>{if(De.current)return;const ee=200,pe=340;Qe(!0),qe(),xt();try{X(1)}catch{}ut(1);try{Z("hold")}catch{}try{const oe=g.current,_e=ie&&!!oe?.src;if(!ie||_e){if(oe){oe.pause();try{oe.currentTime=0}catch{}}}else At();vt()}catch{}try{N("stopped")}catch{}if(Q(!1),!Ve.current)try{Ue.current&&(clearTimeout(Ue.current),Ue.current=null),Ue.current=setTimeout(()=>{try{Z("out")}catch{}Ue.current=setTimeout(()=>{try{typeof Be.current=="function"&&Be.current(!0)}catch{}try{Z("idle")}catch{}Ue.current=null},pe)},ee)}catch{}};s.useEffect(()=>{yt.current=Za});const ra=s.useCallback(()=>je(""),[]),Jt=async ee=>{(me.current||[])[ee]&&await ya(ee,{sameSegment:ee===ue.current})},Ht=G==="playing",Aa=s.useMemo(()=>{if(!F||F.length<=1)return F;const ee=F[L];return ee?[ee]:F},[F,L]),Qt=n===!0;s.useEffect(()=>{try{const ee=g.current;ee&&typeof ee.playbackRate=="number"&&Je(ee)}catch{}},[be,Je]);const ha=s.useRef({raf:null,timer:null});s.useEffect(()=>{const ee=g.current;if(!ee)return;const pe=Math.max(0,Math.min(1,le)),oe=ha.current,_e=()=>{oe.raf!==null&&(cancelAnimationFrame(oe.raf),oe.raf=null),oe.timer!==null&&(clearTimeout(oe.timer),oe.timer=null)};_e();const Oe=dr(ee);if(ee.paused||Math.abs(Oe-pe)<.001||typeof requestAnimationFrame!="function"){try{za(ee,pe)}catch{}return}const He=performance.now(),rt=()=>{const Ct=Math.min(1,(performance.now()-He)/150);try{za(ee,Oe+(pe-Oe)*Ct)}catch{}oe.raf=Ct<1?requestAnimationFrame(rt):null};return oe.raf=requestAnimationFrame(rt),oe.timer=setTimeout(()=>{_e();try{za(ee,pe)}catch{}},200),_e},[le]);const Ft=Y==="hold",na=Y==="out",de=K==="playMode"&&!S&&!Pe||Ft||na,Ne=G!=="stopped"||Ft||na,$e=G==="paused",Ke=Math.max(0,Math.min(100,(P||0)*100)),Ge=Se("audio-player__fill",de?"is-visible":"",Ne?"is-expanded":"",$e?"is-paused":"",na?"is-out":"");return r.jsxs("div",{className:`audio-player ${Qt?"is-disabled":""}${l?` ${l}`:""}`,role:"group","aria-label":typeof m=="string"?m:void 0,children:[r.jsxs("div",{className:`audio-player__panel ${Ht?"is-playing":""} ${S?"is-loading":""} ${K!=="default"?"is-revealed":""}`,children:[S?r.jsxs("div",{className:"audio-player__loading",role:Wv[z]?"status":void 0,"aria-live":Wv[z]?"polite":"off",children:[r.jsx("span",{className:"audio-player__loading-spinner","aria-hidden":"true"}),r.jsx("span",{className:"audio-player__loading-text",children:p("training.audioStatus.preparing",{defaultValue:"\uC18C\uB9AC\uB97C \uC900\uBE44\uD558\uACE0 \uC788\uC2B5\uB2C8\uB2E4\u2026"})})]}):null,K==="active"?r.jsx("button",{className:"audio-player__button",type:"button",disabled:Qt,onClick:()=>{W.current=cs(),E(),oa()},"aria-label":typeof m=="string"?m:p("training.listen","\uB4E3\uAE30"),onMouseEnter:B,onMouseLeave:E,onFocus:B,onBlur:E,children:r.jsx("span",{ref:_,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:A,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,k&&r.jsx(La,{anchorRect:k,text:typeof m=="string"&&m?m:p("training.listenLabel","\uBB38\uC7A5 \uB4E3\uAE30"),offset:8}),r.jsxs("div",{className:`audio-player__play ${K==="playMode"||Ht?"is-visible":""}`,inert:!(K==="playMode"||Ht)||void 0,children:[r.jsxs("div",{ref:C,className:"audio-player__buttons",children:[r.jsx(ve,{htmlType:"button",size:32,showTooltipInfo:!0,type:"dot",shape:"pill",useBorder:!1,icon:"skip-back",onClick:uo,ariaLabel:p("training.prev","\uC774\uC804"),width:"60px",variant:"transparent-white","aria-hidden":"true",tabIndex:-1,disabled:K!=="playMode"}),r.jsx(ve,{htmlType:"button",size:32,showTooltipInfo:!0,type:"dot",shape:"pill",useBorder:!1,icon:Ht?"pause":"play",onClick:oa,ariaLabel:p("common.playPause","\uC7AC\uC0DD / \uBA48\uCDA4"),"aria-pressed":Ht,width:"60px",variant:"transparent-white",disabled:K!=="playMode"}),r.jsx(ve,{htmlType:"button",size:32,showTooltipInfo:!0,type:"dot",shape:"pill",useBorder:!1,icon:"square",onClick:co,ariaLabel:p("training.stop","\uC815\uC9C0"),width:"60px",variant:"transparent-white","aria-hidden":"true",tabIndex:-1,disabled:K!=="playMode"}),at>1?r.jsx("div",{ref:w,className:"audio-player__source-buttons",children:Array.from({length:at}).map((ee,pe)=>r.jsx(ve,{htmlType:"button",size:32,type:"dot",shape:"pill",useBorder:!1,label:String(pe+1),onClick:()=>{try{Jt(pe)}catch{}},ariaLabel:p("training.sourcePlay",{n:pe+1}),variant:"transparent-white",selected:O&&L===pe,disabled:K!=="playMode"||!(Array.isArray(R)&&R[pe]),showTooltipInfo:!0},pe))}):null,!Array.isArray(R)||R.length<=1?r.jsx(ve,{htmlType:"button",size:32,showTooltipInfo:!0,type:"dot",shape:"pill",useBorder:!1,icon:"repeat",onClick:Gt,ariaLabel:p("common.replay","\uB2E4\uC2DC\uB4E3\uAE30"),width:"60px",variant:"transparent-white",disabled:K!=="playMode"}):null,r.jsx(ve,{htmlType:"button",size:32,showTooltipInfo:!0,type:"dot",shape:"pill",useBorder:!1,icon:"skip-forward",onClick:po,ariaLabel:p("training.next","\uB2E4\uC74C"),width:"60px",variant:"transparent-white","aria-hidden":!0,tabIndex:-1,disabled:K!=="playMode"}),r.jsx(ve,{htmlType:"button",size:32,showTooltipInfo:!0,type:"dot",shape:"pill",useBorder:!1,icon:"check",onClick:Za,ariaLabel:p("common.done","\uC644\uB8CC"),width:"60px",variant:"transparent-white",disabled:K!=="playMode"})]}),r.jsxs("div",{className:"audio-player__slider",children:[r.jsx("div",{className:Ge,ref:b,style:{left:`${Ke}%`},"aria-hidden":"true"}),(c||u)&&r.jsx(PE,{segments:Aa,progress:P,totalDuration:ce,waveProgressRef:xe,showSoundWaveForm:c,leadInMs:d,tailMs:h,trackDurationSec:R?.[L]?.duration??0,noiseSrc:u&&v?.settings.enabled&&H>0?nt:null,noiseRatio:v?Fr(v.settings):0,noiseSpeed:v?.settings.speed??1,mainVolume:J,onReadyChange:it})]})]}),r.jsx("audio",{ref:g,crossOrigin:"anonymous",preload:"auto"})]}),!c&&r.jsxs("p",{className:"audio-player__no-waveform caption-1",children:[r.jsx(ot,{icon:"triangle-alert",size:14}),p("training.noSoundWaveform","\uC18C\uB9AC \uBE44\uAD50 \uBB38\uC81C\uB294 \uC6E8\uC774\uBE0C\uD3FC\uC744 \uD45C\uD604\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.")]}),r.jsx(Qo,{message:he,position:ye,onClose:ra})]})}var UE=".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)}";se(UE);function Wr(e){const{t}=we.useTranslation(),{text:a,label:o,anchorRect:n=null,onClose:i,closeOnOutsideClick:l=!0,isMobilePopup:c=!1}=e||{},[u,d]=s.useState(()=>{try{return localStorage.getItem("tooltip-theme")||"light"}catch{return"light"}});s.useEffect(()=>{try{localStorage.setItem("tooltip-theme",u)}catch{}},[u]);const{increase:h,decrease:p,canIncrease:m,canDecrease:v,fontSize:x,lineHeight:g}=Ii({storageKey:"tooltip-fontScale"}),b=s.useCallback(()=>d(A=>A==="dark"?"light":"dark"),[]),C=s.useCallback(A=>{try{A.stopPropagation()}catch{}try{typeof i=="function"&&i()}catch{}},[i]),f=Array.isArray(a)?a:typeof a>"u"||a===null?[]:[a],w={fontSize:`${x}px`,lineHeight:`${g}px`,"--tt-line-height":`${g}px`,"--tt-marker-size":"28px"},y=r.jsxs("div",{className:`tooltip-textbox__root ${u==="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:w,children:f.map((A,_)=>r.jsxs("div",{className:"tooltip-textbox__line",children:[f.length>1?r.jsx("div",{className:"tooltip-textbox__marker",children:r.jsx("span",{className:"tooltip-textbox__line-number button-1",children:_+1})}):null,r.jsx("span",{className:"tooltip-textbox__line-text",children:A})]},_))})]}),r.jsxs("div",{className:"tooltip-textbox__buttons",children:[r.jsx(ve,{htmlType:"button",size:32,showTooltipInfo:!0,type:"dot",useBorder:!1,width:48,icon:"minus",onClick:p,ariaLabel:t("training.fontSizeDecrease","\uAE00\uC790 \uD06C\uAE30 \uAC10\uC18C"),variant:u==="dark"?"transparent-white":"transparent-gray",disabled:!v}),r.jsx(ve,{htmlType:"button",size:32,showTooltipInfo:!0,type:"dot",useBorder:!1,width:48,icon:"plus",onClick:h,ariaLabel:t("training.fontSizeIncrease","\uAE00\uC790 \uD06C\uAE30 \uC99D\uAC00"),variant:u==="dark"?"transparent-white":"transparent-gray",disabled:!m}),r.jsx(ve,{htmlType:"button",size:32,showTooltipInfo:!0,type:"dot",useBorder:!1,width:48,icon:u==="dark"?"moon":"sun-medium",onClick:b,ariaLabel:t("training.toggleBackground","\uBC30\uACBD \uC804\uD658"),variant:u==="dark"?"transparent-white":"transparent-gray"}),r.jsx(ve,{htmlType:"button",size:32,showTooltipInfo:!0,type:"dot",useBorder:!1,width:48,icon:"x",onClick:C,ariaLabel:t("common.close","\uB2EB\uAE30"),variant:u==="dark"?"transparent-white":"transparent-gray"})]})]});return n?r.jsx(ka,{anchorRect:n,className:`tooltip-textbox ${u==="dark"?"is-dark":""}`,onClose:i,closeOnOutsideClick:l,isMobilePopup:c,ariaLabel:o||t("tooltip.textbox","\uBCF8\uBB38"),children:y}):r.jsx("div",{className:`tooltip-textbox ${u==="dark"?"is-dark":""}`,children:y})}var qE=".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;box-sizing:border-box;display:flex;flex-direction:column;gap:2px;height:56px;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}}@media (max-width:1024px){.ihabdevteam-core-scope .pp-bottom__meters{height:50px;padding:4px 12px}}@media (max-width:768px){.ihabdevteam-core-scope .pp-bottom__meters{height:46px;padding:2px 10px}}.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__locked-hint{color:var(--color-gray);margin:0}.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}";se(qE);var YE='.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}}';se(YE);function gp({state:e="disabled"}){const{t}=we.useTranslation();return r.jsxs("div",{className:`ts-bullet ts-bullet--${e}`,"aria-hidden":!0,children:[r.jsx("div",{className:"bullet__dot",children:r.jsx(ot,{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 Vv(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 u=o.current(),d=u?Array.from(u.querySelectorAll(Ga)).find(h=>!h.closest('[aria-hidden="true"]')):void 0;if(d){try{d.focus()}catch{}if(document.activeElement===d)return}--l>0&&(i=requestAnimationFrame(c))};return i=requestAnimationFrame(c),()=>{i!==null&&cancelAnimationFrame(i);const u=document.activeElement;if(!u||u===document.body||!document.contains(u)||u.closest(".tooltip-content")){const d=n.current();if(d)try{d.focus()}catch{}}}},[e])}var KE=".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)}";se(KE);function fp({title:e,children:t,className:a="",state:o="disabled",usePreviewTextBtn:n=!1,onPreviewTextBtn:i,previewText:l=null,useFaded:c,usePlayAllBtn:u=!1,onPlayAll:d,playAllActive:h=!1}){const{t:p}=we.useTranslation(),m=ua("(max-width: 767px)"),v=`training-step__title h4 ${c&&o==="disabled"?"training-step__title--faded":""} ${a}`.trim(),x=`training-step__title-row training-step__title-row--${o}`.trim(),g=s.useRef(null),[b,C]=s.useState(!1),[f,w]=s.useState(null),[y,A]=s.useState(null);Vv(b&&!!f,()=>{if(typeof document>"u")return null;const S=Array.from(document.querySelectorAll(".tooltip-content"));for(let D=S.length-1;D>=0;D--)if(S[D].querySelector(".tooltip-textbox__root"))return S[D];return null},()=>g.current?.querySelector("button")??null);const _=s.useRef(i);s.useEffect(()=>{_.current=i});const k=s.useMemo(()=>l==null?"":typeof l=="string"||typeof l=="number"?String(l):Array.isArray(l)&&l.every(S=>typeof S=="string"||typeof S=="number")?l.join(""):"",[l]),B=s.useCallback(()=>{C(!1),w(null),A(null)},[]);s.useEffect(()=>{if(!b)return;let S;try{typeof _.current=="function"&&(S=_.current())}catch{}if(S===!1){B();return}A(typeof S<"u"&&S!==null?S:null)},[k]);const E=s.useCallback(()=>{let S;try{typeof i=="function"&&(S=i())}catch{}if(S!==!1){if(A(typeof S<"u"&&S!==null?S:l),!g.current){C(D=>!D);return}if(b)C(!1),w(null),A(null);else{const D=g.current.getBoundingClientRect();w(D),C(!0)}}},[i,l,b]);return r.jsxs("div",{className:x,children:[r.jsx("p",{className:v,children:r.jsx("span",{className:"training-step__title-text",children:e??t})}),n||u?r.jsxs("div",{className:"title-controls",children:[r.jsxs("div",{className:"title-buttons",children:[u&&r.jsx(ve,{htmlType:"button",size:32,type:m?"dot":"bar",icon:"play-circle",label:m?void 0:p("training.playAll","\uBAA8\uB450 \uB4E3\uAE30"),ariaLabel:p("training.playAll","\uBAA8\uB450 \uB4E3\uAE30"),selected:h,onClick:d,variant:o==="disabled"?"disabled":"default",disabled:o==="disabled"||h,onDisabledClick:h&&o!=="disabled"?()=>{}:void 0}),n&&r.jsx("div",{ref:g,children:r.jsx(ve,{htmlType:"button",size:32,type:m?"dot":"bar",icon:"eye",label:m?void 0:p("training.sentencePreview","\uBB38\uC7A5 \uBBF8\uB9AC\uBCF4\uAE30"),ariaLabel:p("training.sentencePreview","\uBB38\uC7A5 \uBBF8\uB9AC\uBCF4\uAE30"),onClick:E,className:b?"is-selected":void 0,"aria-expanded":b,"aria-haspopup":"dialog",variant:o==="disabled"?"disabled":"default",disabled:!l&&typeof i!="function"})})]}),b&&r.jsx(Wr,{text:y??l,label:p("training.sentencePreview","\uBB38\uC7A5 \uBBF8\uB9AC\uBCF4\uAE30"),anchorRect:f,onClose:B,closeOnOutsideClick:!1,isMobilePopup:!0})]}):null]})}function vp(e,t){return typeof t!="number"||typeof e!="number"?"disabled":e<t?"done":e===t?"active":"disabled"}function No({index:e,stepIndex:t,isLast:a=!1,title:o="",titleProps:n={},children:i,className:l="",onDone:c=void 0,useTitleFaded:u=void 0,lockedHint:d}){const{t:h}=we.useTranslation(),[p,m]=s.useState(()=>vp(e,t));s.useEffect(()=>{const _=vp(e,t);if(_!==p){const k=setTimeout(()=>m(_),0);return()=>clearTimeout(k)}},[e,t,p]);const v=s.useCallback((..._)=>{vp(e,t)==="done"||p==="done"||typeof c=="function"&&c(..._)},[e,t,p,c]),[x,g]=s.useState(!1),[b,C]=s.useState({text:"",label:"\uBB38\uC7A5 \uB4E3\uAE30",anchorRect:null,backdrop:!1,alignX:null,alignY:null}),f=s.useCallback(_=>{if(!_)return null;try{const k=_;if(typeof _=="object"&&(k.currentTarget||k.target)&&(k.nativeEvent||k.type)){const S=k.currentTarget??k.target;if(S&&typeof S.getBoundingClientRect=="function")return S.getBoundingClientRect()}if(_ instanceof DOMRect)return _;const B=_;if(B&&typeof B.getBoundingClientRect=="function")return B.getBoundingClientRect();const E=_?.current;return E&&typeof E.getBoundingClientRect=="function"?E.getBoundingClientRect():null}catch{return null}},[]),w=s.useCallback((_,{text:k="",label:B="\uBB38\uC7A5 \uB4E3\uAE30",backdrop:E=!1,alignX:S="center",alignY:D="top"}={})=>{const z=f(_);C({text:k,label:B,anchorRect:z,backdrop:E,alignX:S,alignY:D}),g(!0)},[f]),y=s.useCallback(()=>{g(!1),C(_=>({..._,anchorRect:null}))},[]),A=s.Children.map(i,_=>{if(s.isValidElement(_)){const k=_;if(typeof k.type=="string")return k;const B=k.props??{},E=typeof B.onDone=="function"?B.onDone:v,S=typeof B.disabled=="boolean";let D=p==="disabled";return S&&(D=!!B.disabled),s.cloneElement(k,{onDone:E,disabled:D,showTooltip:w,hideTooltip:y})}return _});return r.jsxs("div",{className:`training-step training-step--${p} ${a?"training-step--last":""} ${l}`,"aria-current":p==="active",children:[r.jsx(gp,{state:p}),r.jsxs("div",{className:"training-step__content",children:[r.jsx(fp,{state:p,title:o,...n,useFaded:u}),p==="disabled"&&d&&typeof e=="number"&&typeof t=="number"&&e===t+1&&r.jsx("p",{className:"training-step__locked-hint caption-1",role:"status",children:d}),A]}),x?r.jsx(ka,{anchorRect:b.anchorRect,backdrop:b.backdrop,onClose:y,ariaLabel:h("tooltip.textbox","\uBCF8\uBB38"),children:r.jsx(Wr,{text:b.text,onClose:y})}):null]})}var XE='.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)}';se(XE);function xp({context:e,state:t="disabled",theme:a="light"}){const{t:o}=we.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 u=()=>c(T=>T==="dark"?"light":"dark"),{increase:d,decrease:h,canIncrease:p,canDecrease:m,fontSize:v,lineHeight:x}=Ii({storageKey:"textbox_fontScale"}),[g,b]=s.useState(""),C=s.useRef(null),f=s.useRef(!1),w=s.useCallback(()=>{f.current=cs()&&!!C.current&&C.current.contains(document.activeElement),i("active")},[]),y=s.useCallback(()=>b(""),[]),A=T=>{try{b(T)}catch{}},_=typeof navigator<"u"&&/Mobi|Android/i.test(navigator.userAgent||"");s.useEffect(()=>{if(t!=="disabled"){const T=setTimeout(()=>i(t),0);return()=>clearTimeout(T)}},[t]);const k=s.useMemo(()=>e&&typeof e=="object"?String(e.sentence??e.text??""):typeof e=="string"?e:"",[e]),[B,E]=s.useState(k);B!==k&&(E(k),i("disabled"));const S=t==="disabled"?n:t,D=S==="disabled"?"training-text-box--disabled":S==="active"?"training-text-box--active":S==="done"?"training-text-box--done":"",z=s.useMemo(()=>({fontSize:`${v}px`,lineHeight:`${x}px`}),[v,x]);return s.useEffect(()=>{if(S==="disabled"||!f.current)return;f.current=!1;const T=document.activeElement;T&&T!==document.body||C.current?.querySelector(".training-text-box__buttons button")?.focus()},[S]),r.jsxs("div",{ref:C,className:`training-text-box ${D} ${S!=="disabled"&&l==="dark"?"is-dark":""}`,children:[S==="disabled"&&r.jsx("div",{className:"training-text-box__preview",children:r.jsx(ve,{htmlType:"button",size:48,type:"bar",onClick:w,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":S==="disabled",children:r.jsx("span",{className:"training-text-box__inner h3",style:z,children:k})}),S!=="disabled"&&r.jsxs("div",{className:"training-text-box__buttons","aria-hidden":S==="disabled",children:[r.jsx(ve,{htmlType:"button",size:32,type:"dot",onClick:h,onDisabledClick:()=>A(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,...!_&&{width:"60px"}}),r.jsx(ve,{htmlType:"button",size:32,type:"dot",onClick:d,onDisabledClick:()=>A(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:!p,useBorder:!1,showTooltipInfo:!0,...!_&&{width:"60px"}}),r.jsx(ve,{htmlType:"button",size:32,showTooltipInfo:!0,type:"dot",useBorder:!1,width:48,icon:l==="dark"?"moon":"sun-medium",onClick:u,ariaLabel:o("training.toggleBackground","\uBC30\uACBD \uC804\uD658"),variant:l==="dark"?"transparent-white":"transparent-gray"})]}),r.jsx(Qo,{message:g,position:"top",onClose:y})]})}function rr(e){return e==="active"||e==="done"}function ws({index:e,stepIndex:t,isLast:a=!1,lockedHint:o,title:n,useTitleFaded:i,onDone:l,onChange:c,answer:u,wrongAnswers:d,choices:h,multiSelect:p=!1,correctCount:m=0,useDisabledCovered:v=!1,choiceIcons:x,shuffleChoices:g=!0}){const{t:b}=we.useTranslation(),C=n??b("training.selectConfirm","\uBB38\uC81C\uB97C \uBCF4\uACE0 \uD574\uB2F9\uD558\uB294 \uB0B4\uC6A9\uC744 \uC120\uD0DD\uD558\uC138\uC694."),f=typeof e=="number"?e:-1,w=typeof t!="number"?"disabled":f<t?"done":f===t?"active":"disabled",y=Array.isArray(h)&&h.length?h:typeof u<"u"?[u].concat(Array.isArray(d)?d:[]):void 0,A=d?d.join("||"):"",_=h?h.join("||"):"",[k,B]=s.useState(()=>Array.isArray(y)?g?st(y):y.slice():void 0);s.useEffect(()=>{Array.isArray(y)&&y.length?B(g?st(y):y.slice()):B(void 0)},[u,A,_,g]);const[E,S]=s.useState(null),[D,z]=s.useState(()=>new Set);s.useEffect(()=>{S(null),z(new Set)},[_,u,A]);const T=s.useRef(void 0);s.useEffect(()=>{const j=T.current;typeof j=="number"&&typeof t=="number"&&typeof e=="number"&&j>=e&&t<e&&(S(null),z(new Set)),T.current=t},[t,e]);const G=s.useCallback(j=>{if(!rr(w))return;const P=k?.[j];if(P==null)return;const X=P;if(p){const K=new Set(D);K.has(X)?K.delete(X):K.add(X),z(K),typeof c=="function"&&c({selectedValues:[...K],__ts:Date.now()}),typeof l=="function"&&l({selectedValues:[...K],__ts:Date.now()})}else S(X),typeof c=="function"&&c({selectedIndex:j,selectedValue:X,__ts:Date.now()}),typeof l=="function"&&l({selectedIndex:j,selectedValue:X,__ts:Date.now()})},[k,w,p,c,D]),N=`training-step__buttons${Array.isArray(k)&&k.length>3?" training-step__buttons--wrap-3":""}`;return r.jsx(No,{index:e,stepIndex:t,isLast:a,lockedHint:o,title:C,useTitleFaded:i,children:r.jsx("div",{className:N,children:Array.isArray(k)&&k.length>0?k.map((j,P)=>r.jsx(ve,{htmlType:"button",size:56,type:"bar",onClick:()=>G(P),ariaLabel:String(j),label:j,useLabel:!0,icon:x?x[String(j)]:void 0,variant:"default",disabled:w==="disabled",selected:p?D.has(j):E===j,useDisabledCovered:v,minWidth:0},String(j))):null})})}function ks({index:e,stepIndex:t,isLast:a=!1,lockedHint:o,title:n,onDone:i,onChange:l,context:c,demoSelected:u}){const{t:d}=we.useTranslation(),h=n??d("training.confirmTitle","\uBB38\uC7A5\uC744 \uD655\uC778\uD558\uACE0 \uC798 \uB4E4\uB838\uB294\uC9C0 \uC120\uD0DD\uD558\uC138\uC694."),p=typeof e=="number"?e:-1,m=typeof t!="number"?"disabled":p<t?"done":p===t?"active":"disabled",v=c&&typeof c=="object"?c.sentence||"":typeof c=="string"?c:"",x=c&&typeof c=="object"?c.choices:void 0,[g,b]=s.useState(u??null),C=`${String(v)}\0${JSON.stringify(x??null)}`,[f,w]=s.useState(C);f!==C&&(w(C),u==null&&b(null));const[y,A]=s.useState(u);Object.is(y,u)||(A(u),b(u??null));const _=s.useRef(void 0);s.useEffect(()=>{const S=_.current;typeof S=="number"&&typeof t=="number"&&typeof e=="number"&&S>=e&&t<e&&u==null&&b(null),_.current=t},[t,e,u]);const k=s.useCallback(S=>{const D=typeof S=="object"&&S!==null?Object.assign({},S,{__ts:Date.now()}):{value:S,__ts:Date.now()};typeof l=="function"&&l(D),rr(m)&&typeof i=="function"&&i(D)},[l,m,i]),B=s.useCallback(()=>{rr(m)&&(b(!1),k(!1))},[k,m]),E=s.useCallback(()=>{rr(m)&&(b(!0),k(!0))},[k,m]);return r.jsxs(No,{index:e,stepIndex:t,isLast:a,lockedHint:o,title:h,onDone:i,useTitleFaded:!1,children:[r.jsx(xp,{context:c,state:m}),r.jsx("div",{className:"training-step__buttons",children:Array.isArray(x)&&x.length>0?x.slice(0,6).map((S,D)=>r.jsx(ve,{htmlType:"button",size:56,type:"bar",onClick:()=>{rr(m)&&(b(D),k&&k(D))},disabled:m==="disabled",ariaLabel:String(S),label:S,variant:m,selected:g===D},D)):r.jsxs(r.Fragment,{children:[r.jsx(ve,{htmlType:"button",size:56,type:"bar",onClick:B,disabled:m==="disabled",icon:"x",ariaLabel:d("training.notHeard","\uC548 \uB4E4\uB838\uC5B4\uC694."),label:d("training.notHeard","\uC548 \uB4E4\uB838\uC5B4\uC694."),variant:"default",selected:g===!1}),r.jsx(ve,{htmlType:"button",size:56,type:"bar",onClick:E,disabled:m==="disabled",icon:"circle",ariaLabel:d("training.heardWell","\uC798 \uB4E4\uB838\uC5B4\uC694."),label:d("training.heardWell","\uC798 \uB4E4\uB838\uC5B4\uC694."),variant:"default",selected:g===!0})]})})]})}function Bs({index:e,stepIndex:t,isLast:a=!1,title:o,onDone:n,btnLabel:i,soundSrc:l,bucketPath:c,usePreviewTextBtn:u,previewText:d=null,onPreviewTextBtn:h,disabled:p,_pageIndex:m,showSoundWaveForm:v,showNoiseWaveForm:x,leadInMs:g,tailMs:b}){const{t:C}=we.useTranslation(),f=o??C("training.listenTitle","\uC81C\uC2DC\uD558\uB294 \uBB38\uC7A5\uC744 \uB4E4\uC5B4\uC8FC\uC138\uC694."),w=p??(typeof t=="number"&&typeof e=="number"?e>t:!1);return r.jsx(No,{index:e,stepIndex:t,isLast:a,title:f,onDone:n,titleProps:{usePreviewTextBtn:u,previewText:d,onPreviewTextBtn:h},children:r.jsx(Vn,{soundSrc:l,ttsText:l?null:d??f,bucketPath:c,btnLabel:i||C("training.listenButton","\uBB38\uC7A5 \uB4E3\uAE30"),disabled:w,className:"training-step__listen-sticky",showSoundWaveForm:v,showNoiseWaveForm:x,leadInMs:g,tailMs:b},`audio-p${m??0}-s${e}`)})}var ZE=".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%}";se(ZE);var JE=".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}";se(JE);const QE=[];function As({index:e,stepIndex:t,isLast:a=!1,lockedHint:o,title:n,onDone:i,onChange:l,context:c=QE}){const{t:u}=we.useTranslation(),d=n??u("training.orderListDefault","\uBB38\uC7A5\uC744 \uB4E4\uC740 \uC21C\uC11C\uB300\uB85C \uBC30\uCE58\uD558\uC138\uC694."),h=q=>typeof q=="string"?q:q&&(q.context||q.sentence||q.question||"")||"",[p,m]=s.useState(Array.isArray(c)?c:[]),[v,x]=s.useState(()=>(p||[]).map((q,L)=>({id:L,text:h(q)}))),g=s.useMemo(()=>typeof t!="number"||typeof e!="number"?"disabled":e<t?"done":e===t?"active":"disabled",[t,e]),b=g!=="disabled",C=s.useRef(void 0),f=s.useRef(void 0);s.useEffect(()=>{if(C.current===c)return;C.current=c;const q=Array.isArray(c)?c:[];m(q);const L=(I=>{const O=(I||[]).map((be,J)=>({id:J,text:h(be)}));if(O.length<=1)return O;const Q=(be,J)=>{if(be.length!==J.length)return!1;for(let H=0;H<be.length;H++)if(be[H].text!==J[H].text)return!1;return!0};let ce=st(O),ne=0;for(;Q(ce,O)&&ne<20;)ce=st(O),ne+=1;return ce})(q);x(L);try{if(typeof l=="function"){const I=L.filter((O,Q)=>O.text===h(q[Q])).length;l({shuffled:L,score:I,total:(q||[]).length,initial:!0,__ts:Date.now()})}if(typeof i=="function"&&g==="active"){const I=L.filter((O,Q)=>O.text===h(q[Q])).length;f.current=c,i({shuffled:L,score:I,total:(q||[]).length,initial:!0,__ts:Date.now()})}}catch{}},[c]),s.useEffect(()=>{if(g!=="active"||f.current===c||(f.current=c,typeof i!="function"))return;const q=Array.isArray(c)?c:[],L=v.filter((I,O)=>I.text===h(q[O])).length;i({shuffled:v,score:L,total:q.length,initial:!0,__ts:Date.now()})},[g,c]);const w=(q,L)=>{const I=[...v],O=q+L;if(O<0||O>=I.length)return;const Q=I[O];I[O]=I[q],I[q]=Q,X(I);try{if(typeof i=="function"&&g==="active"){const ce=I.filter((ne,be)=>ne.text===h(p[be])).length;i({shuffled:I,score:ce,total:(p||[]).length,__ts:Date.now()})}}catch{}},[y,A]=s.useState(null),_=s.useRef(null),k=s.useRef(null),B=s.useRef(null),E=s.useRef(null),S=s.useRef(null),D=s.useRef({x:0,y:0}),z=s.useRef(null),T=s.useRef({dx:0,dy:0}),G=()=>{if(z.current!==null)return;const q=()=>{if(!_.current){z.current=null;return}z.current=requestAnimationFrame(q);const L=D.current,I=T.current||{dx:0,dy:0};_.current&&(_.current.style.transform=`translate3d(${L.x-I.dx}px, ${L.y-I.dy}px, 0)`)};z.current=requestAnimationFrame(q)},N=s.useRef(new Map),j=s.useRef(new Map),P=()=>{const q=new Map;return N.current.forEach((L,I)=>{L&&L.getBoundingClientRect&&q.set(I,L.getBoundingClientRect())}),q},X=q=>{const L=P();x(q);try{if(typeof l=="function"){const I=q.filter((O,Q)=>O.text===h(p[Q])).length;l({shuffled:q,score:I,total:(p||[]).length,__ts:Date.now()})}}catch{}requestAnimationFrame(()=>{const I=P();q.forEach(O=>{const Q=L.get(O.id),ce=I.get(O.id),ne=N.current.get(O.id);if(!ne||!Q||!ce)return;const be=Q.top-ce.top;be&&(ne.style.transition="none",ne.style.transform=`translateY(${be}px)`,requestAnimationFrame(()=>{ne.style.transition="transform 420ms cubic-bezier(.22,.9,.39,1)",ne.style.transform="";const J=()=>{ne.style.transition="",ne.removeEventListener("transitionend",J)};ne.addEventListener("transitionend",J)}))})})},K=(q,L)=>{try{try{L.dataTransfer?.setData("text/plain",String(q))}catch{}try{L.dataTransfer&&(L.dataTransfer.effectAllowed="move")}catch{}try{const I=document.createElement("div");I.style.cssText="position:absolute;top:-9999px;left:-9999px;width:1px;height:1px;opacity:0;pointer-events:none;",document.body.appendChild(I),L.dataTransfer?.setDragImage(I,0,0),requestAnimationFrame(()=>{try{document.body.removeChild(I)}catch{}})}catch{}}catch{}A(q);try{const I=v[q],O=document.createElement("div");O.className="order-list__dragging-object order-list__dragging-object--visible",O.textContent=I&&I.text?I.text:"",document.body.appendChild(O),_.current=O;const Q=N.current.get(I.id);let ce=L.clientX||0,ne=L.clientY||0;try{if(Q&&Q.getBoundingClientRect){const Z=Q.getBoundingClientRect();ce=Z.left+Z.width/2,ne=Z.top+Z.height/2}}catch{}const be=O.getBoundingClientRect(),J=be.width/2,H=be.height/2;T.current={dx:J,dy:H},O.style.transition="none",D.current={x:ce,y:ne},O.style.transform=`translate3d(${ce-J}px, ${ne-H}px, 0)`,requestAnimationFrame(()=>{try{O.style.transition=""}catch{}G()});const le=Z=>{const he=Z;D.current={x:he.clientX,y:he.clientY},G()};B.current=le,document.addEventListener("mousemove",le);const Y=Z=>{const he=Z;D.current={x:he.clientX,y:he.clientY},G()};k.current=Y,document.addEventListener("dragover",Y);try{L.dataTransfer?.setData("text/plain",String(q));try{L.dataTransfer?.setData("application/json",JSON.stringify({idx:q}))}catch{}}catch{}}catch{}},M=(q,L)=>{L.preventDefault();try{L.dataTransfer&&(L.dataTransfer.dropEffect="move")}catch{}try{S.current!==null&&(clearTimeout(S.current),S.current=null);const I=L.currentTarget&&L.currentTarget.closest?L.currentTarget.closest(".order-list__item"):null;if(I&&E.current!==I){if(E.current)try{E.current.classList.remove("drag-over")}catch{}try{I.classList.add("drag-over")}catch{}E.current=I}}catch{}},W=(q,L)=>{L.preventDefault();const I=L.dataTransfer?.getData("text/plain")||"",O=I?parseInt(I,10):y,Q=q;if(typeof O!="number"||isNaN(O)||O===Q){A(null),F(),R();return}const ce=Yl(v,O,Q);X(ce),A(null),R();try{if(typeof i=="function"&&g==="active"){const ne=ce.filter((be,J)=>be.text===h(p[J])).length;i({shuffled:ce,score:ne,total:(p||[]).length,__ts:Date.now()})}}catch{}try{requestAnimationFrame(()=>{const ne=document.querySelectorAll(".order-list .order-list__item")[Q];if(!ne)return;const be=ne.querySelector(".order-list__slot")||ne;try{be.classList.add("pulse"),be.offsetHeight,be.classList.add("to-dark");const J=()=>{be.classList.remove("pulse","to-dark"),be.removeEventListener("transitionend",J)};be.addEventListener("transitionend",J)}catch{}})}catch{}F()},R=()=>{if(_.current){try{document.body.removeChild(_.current)}catch{}_.current=null}k.current&&(document.removeEventListener("dragover",k.current),k.current=null),B.current&&(document.removeEventListener("mousemove",B.current),B.current=null),z.current!==null&&(cancelAnimationFrame(z.current),z.current=null)},U=()=>{A(null),F(),R()};s.useEffect(()=>()=>R(),[]);const F=()=>{try{if(S.current!==null&&(clearTimeout(S.current),S.current=null),E.current){try{E.current.classList.remove("drag-over")}catch{}E.current=null}document.querySelectorAll(".order-list .order-list__item").forEach(q=>q.classList.remove("drag-over"))}catch{}};return s.useEffect(()=>{try{const q=Math.max(1,(v||[]).length);v.forEach((L,I)=>{const O=j.current.get(L.id);if(!O)return;let Q=50;q>1&&(Q=Math.round(I/(q-1)*100));try{O.style.setProperty("--marker-pos",Q+"%")}catch{}})}catch{}},[v]),s.useEffect(()=>()=>{R(),S.current!==null&&(clearTimeout(S.current),S.current=null)},[]),r.jsx(No,{index:e,stepIndex:t,isLast:a,lockedHint:o,title:d,children:r.jsx("div",{className:"order-list",children:v.map((q,L)=>{const I=Math.max(1,(v||[]).length),O=I>1?Math.round(L/(I-1)*100):50;return r.jsx("div",{className:"order-list__item",children:r.jsxs("div",{className:"order-list__slot","data-disabled":g==="disabled","aria-disabled":g==="disabled",children:[g!=="disabled"?r.jsx("div",{className:"order-list__marker caption-1",style:{"--marker-pos":O+"%"},ref:Q=>{const ce=j.current;Q?ce.set(q.id,Q):ce.delete(q.id)},children:r.jsx("span",{className:"order-list__slot-number button-1",children:L+1})}):null,r.jsxs("div",{ref:Q=>{const ce=N.current;Q?ce.set(q.id,Q):ce.delete(q.id)},className:`order-list__draggable ${y===L?"dragging":""}`,"data-disabled":g==="disabled","aria-disabled":g==="disabled",tabIndex:g==="disabled"?-1:0,draggable:b,onDragStart:b?Q=>K(L,Q):void 0,onDragEnter:b?Q=>M(L,Q):void 0,onDragOver:b?Q=>M(L,Q):void 0,onDragLeave:b?()=>{try{S.current!==null&&clearTimeout(S.current),S.current=setTimeout(()=>{try{const Q=document.querySelectorAll(".order-list .order-list__item");Q&&Q[L]&&(Q[L].classList.remove("drag-over"),E.current===Q[L]&&(E.current=null))}catch{}},80)}catch{}}:void 0,onDrop:b?Q=>W(L,Q):void 0,onDragEnd:b?U:void 0,children:[r.jsx("span",{className:"order-list__item-text body-2",children:q.text}),b?r.jsxs("span",{className:"order-list__item-buttons",children:[r.jsx(ve,{htmlType:"button",size:32,type:"dot",onClick:()=>w(L,-1),ariaLabel:u("training.up"),icon:"chevron-up",variant:"transparent-gray",width:48,useFaded:"true",disabled:L===0,useBorder:!1,useDisabledInvisible:!0}),r.jsx(ve,{htmlType:"button",size:32,type:"dot",onClick:()=>w(L,1),ariaLabel:u("training.down"),icon:"chevron-down",variant:"transparent-gray",width:48,useFaded:"true",disabled:L===v.length-1,useBorder:!1,useDisabledInvisible:!0})]}):null]})]})},q.id)})})})}var e6="";se(e6);const t6=8e3;function a6(e,t){return new Promise(a=>{let o=!1;const n=()=>{o||(o=!0,a())};e.then(n,n),setTimeout(n,t)})}function Cp({index:e,stepIndex:t,isLast:a=!1,lockedHint:o,title:n,onDone:i,onChange:l,context:c=[],selectable:u=!1,hideLabel:d=!1,hideAudio:h=!1,maxCards:p,playAllGapMs:m=0}){const{t:v}=we.useTranslation(),x=n??v("training.cardInstructions","\uB0B1\uB9D0 \uCE74\uB4DC\uB97C \uBCF4\uACE0 \uC18C\uB9AC\uB97C \uB4E3\uACE0 \uD655\uC778\uD558\uC138\uC694."),g=s.useMemo(()=>Array.isArray(c)?c:c&&c.items||[],[c]),b=p??3,C=(g||[]).slice(0,b);(g||[]).length>b&&console.warn(`TrainingStepCard: ${g.length} items passed but only ${b} shown`);const f=typeof e=="number"?e:-1,w=typeof t!="number"?"disabled":f<t?"done":f===t?"active":"disabled",[y,A]=s.useState(null),_=s.useRef([]),[k,B]=s.useState(!1),E=s.useRef(null),S=s.useRef(!0);s.useEffect(()=>(S.current=!0,()=>{S.current=!1}),[]);const D=s.useMemo(()=>g.map(P=>P?.id??P?.word??"").join("|"),[g]);s.useEffect(()=>{A(null)},[D]);const z=s.useRef(void 0);s.useEffect(()=>{const P=z.current;typeof P=="number"&&typeof t=="number"&&typeof e=="number"&&P>=e&&t<e&&A(null),z.current=t},[t,e]);const T=s.useCallback((P,X)=>{if(u)return;const K={item:P,index:X,__ts:Date.now()};try{typeof l=="function"&&l(K)}catch{}if(w==="active"&&typeof i=="function")try{i(K)}catch{}},[u,l,w,i]),G=s.useRef(m);s.useEffect(()=>{G.current=Math.max(0,m||0)},[m]);const N=s.useCallback(async()=>{if(k||w==="disabled")return;B(!0);let P=!1;const X=new Promise(K=>{E.current=()=>{P=!0,K()}});try{for(let K=0;K<C.length&&!(!S.current||P);K++){const M=_.current[K];if(!M)continue;await Promise.race([a6(M.play(),t6),X]);const W=Math.max(0,G.current||0);W>0&&K<C.length-1&&!P&&S.current&&await Promise.race([new Promise(R=>{setTimeout(R,W)}),X])}}finally{E.current=null,B(!1)}},[k,w,C.length]),j=s.useCallback((P,X)=>{if(!rr(w))return;A(X);const K={selectedValue:P.word||P.title||"",selectedIndex:X,item:P,__ts:Date.now()};try{typeof l=="function"&&l(K)}catch{}if(typeof i=="function")try{i(K)}catch{}},[l,w,i]);return r.jsx(No,{index:e,stepIndex:t,isLast:a,lockedHint:o,title:x,onDone:i,titleProps:{usePlayAllBtn:!h&&C.length>0,onPlayAll:N,playAllActive:k},children:r.jsx("div",{className:"training-step__cards",onClickCapture:P=>{const X=E.current;if(!X)return;const K=P.target;K&&typeof K.closest=="function"&&K.closest(".training-word-card__bottom")&&X()},children:C.length===0?r.jsx("div",{className:"training-step__empty",children:v("training.noCards","\uCE74\uB4DC\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4.")}):C.map((P,X)=>r.jsx(ds,{ref:K=>{_.current[X]=K},item:P,disabled:w==="disabled",onPlayDone:()=>T(P,X),selectable:u,selected:u&&y===X,onSelect:u?()=>j(P,X):void 0,flipDelay:X*120,hideLabel:d,hideAudio:h},P&&P.id||X))})})}const o6=160;var r6=".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}}";se(r6);const Uv=()=>{};function Xa(e){const t=s.useId();if(!("variant"in e)){const{label:f,sub:w,onClick:y,children:A,align:_="horizontal",icon:k,useFullWidth:B=!1}=e,E=S=>{y&&S.target===S.currentTarget&&(S.key==="Enter"||S.key===" ")&&(S.preventDefault(),y())};return r.jsxs("div",{className:Se("panel-row",_==="vertical"?"panel-row--vertical":"",B?"panel-row--label-fixed panel-row--fill":"",y?"panel-row--clickable":""),onClick:y,onKeyDown:y?E:void 0,role:y?"button":void 0,tabIndex:y?0:void 0,children:[k!=null&&r.jsx("div",{className:"panel-row__icon",children:k}),f!=null&&r.jsxs("div",{className:"panel-row__left",children:[r.jsx("div",{className:"panel-row__label body-3",children:f}),w&&r.jsx("div",{className:"panel-row__sub caption-1",children:w})]}),r.jsx("div",{className:"panel-row__right",children:A})]})}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($r,{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:u="horizontal",useFullWidth:d=!1,icon:h}=e,p=a==="button"?void 0:i;let m=null;const v=a==="toggle"?`panel-toggle-${t}`:void 0,x=c?`panel-error-${t}`:void 0,g=`panel-helper-${t}`;if(a==="toggle"){const f=e;m=r.jsx(jd,{checked:f.checked,onChange:f.onChange,id:v})}else if(a==="segmented"){const f=e;m=r.jsx(Ra,{options:f.options,value:f.value,onChange:f.onChange,size:f.size??40,ariaLabel:o})}else if(a==="dropdown"){const f=e,w=f.dropdowns?.length?r.jsx("div",{className:`panel-row__dropdown-group${d?" panel-row__dropdown-group--full":""}`,children:f.dropdowns.map((y,A)=>r.jsx("div",{className:d?"panel-row__dropdown-item--full":void 0,children:r.jsx(xa,{options:y.options,value:y.value,onChange:y.onChange,placeholder:y.placeholder,block:d,error:!!c,ariaDescribedBy:x,ariaLabel:y.ariaLabel??([o,y.placeholder].filter(Boolean).join(" ")||void 0)})},A))}):r.jsx(xa,{options:f.options??[],value:f.value??"",onChange:f.onChange??Uv,block:d,error:!!c,ariaLabel:o,ariaDescribedBy:x});m=c?r.jsxs("div",{className:`panel-row__dropdown-error-wrap${d?" panel-row__dropdown-error-wrap--full":""}`,children:[w,r.jsx("span",{id:x,className:"caption-1 panel-row__error",role:"alert",children:c})]}):w}else if(a==="button"){const f=e;f.buttons?.length?m=r.jsx("div",{className:"panel-row__button-group",children:f.buttons.map((w,y)=>r.jsx(ve,{htmlType:"button",size:w.btnSize??40,variant:w.btnVariant??"default",disabled:w.disabled,onClick:w.onClick,children:w.label},y))}):m=r.jsx(ve,{htmlType:"button",size:f.btnSize??40,variant:f.btnVariant??"default",disabled:f.disabled,onClick:f.onClick,children:f.buttonLabel})}else if(a==="text"){const f=e;m=r.jsx("span",{className:`panel-row__text body-2${d?" panel-row__text--full":""}`,style:f.valueColor?{color:f.valueColor}:void 0,children:f.value})}else if(a==="input"){const f=e;m=r.jsxs("div",{className:`panel-row__input-wrap${d?" panel-row__input-wrap--full":""}`,children:[r.jsx(So,{value:f.value,onChange:f.onChange??Uv,onKeyDown:f.onKeyDown,onEnter:f.onEnter,placeholder:f.placeholder,ghostText:f.ghostText,ghostHint:f.ghostHint,inputMode:f.inputMode,readOnly:f.readOnly,disabled:f.disabled,type:f.type,autoComplete:f.autoComplete,maxLength:f.maxLength,showCount:f.showCount,multiline:f.multiline,rows:f.rows,fullWidth:d,error:c,ariaLabel:o,required:l,ariaDescribedBy:f.helperText?g:void 0}),f.helperText&&r.jsx("div",{id:g,className:"panel-row__helper caption-1",children:f.helperText})]})}else a==="custom"&&(m=e.children);c&&a!=="input"&&a!=="dropdown"&&(m=r.jsxs("div",{className:`panel-row__dropdown-error-wrap${d?" panel-row__dropdown-error-wrap--full":""}`,children:[m,r.jsx("span",{id:x,className:"caption-1 panel-row__error",role:"alert",children:c})]}));const b=a==="input"||a==="dropdown"||(a==="text"||a==="custom")&&d,C=f=>{p&&f.target===f.currentTarget&&(f.key==="Enter"||f.key===" ")&&(f.preventDefault(),p())};return r.jsxs("div",{className:Se("panel-row",u==="vertical"?"panel-row--vertical":"",b?"panel-row--label-fixed":"",a==="text"?"panel-row--text":"",p?"panel-row--clickable":""),onClick:p,onKeyDown:p?C:void 0,role:p?"button":void 0,tabIndex:p?0:void 0,children:[h!=null&&r.jsx("div",{className:"panel-row__icon",children:h}),r.jsxs("div",{className:"panel-row__left",children:[v?r.jsxs("label",{htmlFor:v,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 qv(e){const t=e.productName||e.brand,a=[e.brand,e.fitType].filter(o=>!!o&&o!==t);return[...new Set(a)].join(" \xB7 ")}function Yv({devices:e,onRelease:t,emptyLabel:a}){const{t:o,i18n:n}=we.useTranslation();return r.jsx("div",{className:"panel-row panel-row--device",children:["left","right"].map(i=>{const l=e[i],c=i==="left"?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:c}),l&&t&&r.jsx(ve,{htmlType:"button",size:32,type:"dot",icon:"x",ariaLabel:`${c} ${o("customers.device.unwear","\uCC29\uC6A9 \uD574\uC81C")}`,showTooltipInfo:o("customers.device.unwear","\uCC29\uC6A9 \uD574\uC81C"),onClick:()=>t(i)})]}),l?r.jsxs("div",{className:"panel-row__device-info",children:[r.jsxs("span",{className:"panel-row__device-kind",children:[l.device&&r.jsx(Lt,{size:"small",variant:_0(l.device),fill:"soft",label:w0(l.device,o)}),qv(l)&&r.jsx("span",{className:"panel-row__device-detail body-3",children:qv(l)})]}),r.jsx("span",{className:"panel-row__device-name body-2b",children:l.productName||l.brand}),Ud(l.wornYear,l.wornMonth,l.wornDay,n.language)&&r.jsx("span",{className:"panel-row__device-date caption-1",children:o("customers.device.wornSince",{date:Ud(l.wornYear,l.wornMonth,l.wornDay,n.language)})})]}):r.jsx("span",{className:"panel-row__device-empty body-3",children:a??o("customers.device.notRegistered","\uBBF8\uB4F1\uB85D")})]},i)})})}function Un({title:e,titleLevel:t=2,icon:a,disc:o,actions:n,size:i="medium",minHeight:l,maxWidth:c,className:u,scrollable:d,scrollbarGutter:h="auto",compactRows:p=!1,useBorder:m=!0,useBg:v=!0,useRowBorder:x=!0,labelWidth:g,form:b=!1,loading:C,empty:f,children:w}){const y=Se("panel",`panel--${i}`,b?"panel--form":"",l!==void 0?"panel--fill":"",m?"":"panel--no-border",v?"":"panel--no-bg",x?"":"panel--no-row-border",p?"panel--compact-rows":"",u),A={};l!==void 0&&(A.minHeight=l),c!==void 0&&(A.maxWidth=typeof c=="number"?`${c}px`:c),g!==void 0&&(A["--panel-label-width"]=typeof g=="number"?`${g}px`:g);const _=t?`h${t}`:"div";return r.jsxs("div",{className:y,style:Object.keys(A).length?A:void 0,children:[(!!e||o!=null)&&r.jsxs("div",{className:Se("panel__header",o!=null?"panel__header--with-disc":""),children:[a&&r.jsx(ot,{icon:a,label:typeof e=="string"?e:void 0,className:"panel__icon"}),r.jsxs("div",{className:"panel__title-group",children:[!!e&&r.jsx(_,{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})]}),C?r.jsx(Xa,{variant:"loading"}):f!=null&&s.Children.toArray(w).length===0?r.jsx(Xa,{variant:"empty",children:f}):d?r.jsx("div",{className:Se("panel__body--scroll",h==="stable"&&"panel__body--gutter-stable"),children:w}):w]})}function Kv({cols:e=2,layout:t="grid",gap:a=1,collapseAt:o,className:n,style:i,children:l}){const c=s.useRef(null),[u,d]=s.useState();s.useEffect(()=>{const p=c.current;if(o===void 0||!p||(d(p.clientWidth),typeof ResizeObserver>"u"))return;const m=new ResizeObserver(([v])=>d(v.contentRect.width));return m.observe(p),()=>m.disconnect()},[o]);const h=o!==void 0&&u!==void 0&&u<=o;return r.jsx("div",{ref:c,className:Se("panel-grid",t==="columns"&&"panel-grid--columns",n),style:{"--panel-grid-cols":h?1:e,"--panel-grid-gap":typeof a=="number"?`${a}px`:a,...i},children:l})}function n6(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 Xv(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"}]}n6(wt.t.bind(wt)),Xv(wt.t.bind(wt));var i6='.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}.ihabdevteam-core-scope .noise-settings__value--disabled{opacity:.4}.ihabdevteam-core-scope .noise-settings__width-ghost{height:0;overflow:hidden;pointer-events:none;visibility:hidden}.ihabdevteam-core-scope .noise-settings__width-ghost .panel-row{border:0;margin:0;min-height:0;padding-bottom:0;padding-top:0}';se(i6);const Ss="none",s6=.5,l6=1.5,c6=.25;function yp({title:e,valueLabel:t,value:a,min:o,max:n,step:i,tickStep:l,size:c,disabled:u,onChange:d}){return r.jsxs(Xa,{variant:"custom",label:e,useFullWidth:!0,children:[r.jsx(Od,{value:a,onChange:d,min:o,max:n,step:i,size:c,showBgTick:!0,tickStep:l,ariaLabel:e,disabled:u,className:"noise-settings__slider-input"}),r.jsx("div",{className:Se("noise-settings__value","button-1",u?"noise-settings__value--disabled":""),children:t})]})}function _p({anchorRect:e,onClose:t,hideNoiseRows:a=!1}){const{t:o}=we.useTranslation(),n=ua("(max-width: 767px)")?40:24,i=Wn(),l=Fr(i?.settings??Do),c=i?.settings.type??"defaultNoise",u=i?.settings.enabled??!0,d=i?.playbackRate??1,h=i?.mainVolume??1,p=Math.round(h*100),m=s.useCallback(C=>{try{i?.setMainVolume(Math.max(0,Math.min(1,C/100)))}catch{}},[i]),v=s.useCallback(C=>{try{i?.setPlaybackRate(C)}catch{}},[i]),x=s.useCallback(C=>{const f=Math.min(Or,Math.max(0,Math.round(C*10)/10));try{i?.setSettings({noiseRatio:f})}catch{}},[i]),g=s.useCallback(C=>{try{C===Ss?i?.setSettings({enabled:!1}):i?.setSettings({type:C,enabled:!0})}catch{}},[i]),b=[{key:Ss,label:o("training.noise.type.none","\uC5C6\uC74C")},...Xv(o).map(C=>({key:C.value,label:C.label}))];return r.jsx(ka,{anchorRect:e,offset:12,onClose:t,ariaLabel:o("training.trainingSettingsTitle","\uD6C8\uB828 \uC124\uC815"),isMobilePopup:!1,closeOnOutsideClick:!1,header:r.jsxs("div",{className:"noise-settings__header",children:[r.jsx("span",{children:o("training.trainingSettingsTitle","\uD6C8\uB828 \uC124\uC815")}),r.jsx(ve,{htmlType:"button",size:40,type:"dot",icon:"x",variant:"transparent-gray",useBorder:!1,ariaLabel:o("common.close","\uB2EB\uAE30"),onClick:t})]}),children:r.jsxs(Un,{className:"noise-settings",useBorder:!1,labelWidth:72,children:[r.jsx(yp,{title:o("training.playVolumeTitle","\uC804\uCCB4 \uC18C\uB9AC"),valueLabel:`${p}%`,value:p,min:0,max:100,step:10,size:n,onChange:m}),r.jsx(yp,{title:o("training.playSpeedTitle","\uC7AC\uC0DD \uC18D\uB3C4"),valueLabel:`${d.toFixed(2)}x`,value:d,min:s6,max:l6,step:c6,size:n,onChange:v}),!a&&r.jsxs(r.Fragment,{children:[r.jsx(Xa,{variant:"custom",label:o("training.noiseTypeTitle","\uC18C\uC74C \uC885\uB958"),useFullWidth:!0,children:r.jsx(Ra,{ariaLabel:o("training.noiseTypeTitle","\uC18C\uC74C \uC885\uB958"),size:40,shape:"rounded",options:b,value:u?c:Ss,onChange:g})}),r.jsx(yp,{title:o("training.noiseRatioTitle","\uC18C\uC74C \uBE44\uC728"),valueLabel:o("training.noiseRatioValue","{{ratio}}\uBC30",{ratio:l.toFixed(1)}),value:l,min:0,max:Or,step:pp,size:n,disabled:!u,onChange:x})]}),a&&r.jsx("div",{className:"noise-settings__width-ghost","aria-hidden":"true",inert:!0,children:r.jsx(Xa,{variant:"custom",label:"\xA0",useFullWidth:!0,children:r.jsx(Ra,{ariaLabel:"width-ghost",size:40,shape:"rounded",options:b,value:Ss,onChange:()=>{}})})})]})})}var u6=".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;box-sizing:border-box;display:flex;flex-direction:column;gap:2px;height:56px;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}}@media (max-width:1024px){.ihabdevteam-core-scope .pp-bottom__meters{height:50px;padding:4px 12px}}@media (max-width:768px){.ihabdevteam-core-scope .pp-bottom__meters{height:46px;padding:2px 10px}}.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}";se(u6);function wp({useNoiseSettingBtn:e=!1,onSettings:t,onNext:a,onResult:o,stepIndex:n=0,stepCount:i=0,pageIndex:l=0,pageCount:c=1,resultOpen:u=!1,hideNoiseRows:d=!1}){const{t:h}=we.useTranslation(),[p,m]=s.useState(!1),[v,x]=s.useState(null),[g,b]=s.useState(!1),C=s.useRef(null),f=s.useRef(null),w=Wn(),y=c>0,A=y&&l<c-1,_=!y||l>=c-1,k=n===Math.max(0,i);s.useEffect(()=>{e||(m(!1),x(null))},[e]);const B=s.useCallback(()=>{m(!1),x(null)},[]),E=s.useCallback(()=>{if(p){m(!1),x(null);return}const X=C?.current?.getBoundingClientRect();X&&x(X),t?.(),m(!0)},[p,t]),S=s.useCallback(()=>{if(p){m(!1),x(null);return}const X=f?.current?.getBoundingClientRect();X&&x(X),t?.(),m(!0)},[p,t]),D=ua("(max-width: 767px)"),z=s.useRef(null),[T,G]=s.useState(null),N=s.useCallback(()=>{b(X=>{const K=!X;return G(K?z.current?.getBoundingClientRect()??null:null),K})},[]),j=s.useCallback(()=>{b(!1),G(null)},[]);s.useEffect(()=>{u&&(b(!1),G(null))},[u]);const P=r.jsxs(r.Fragment,{children:[r.jsxs("div",{className:"pp-bottom__meter",children:[r.jsx("span",{className:"pp-bottom__meter-label caption-1",children:h("training.meter.sentence","\uC7AC\uC0DD")}),r.jsx(ss,{analyser:w?.mainAnalyser??null,orientation:"horizontal",length:112,label:"db",labelPos:"left",ariaLabel:h("training.meter.sentence","\uC7AC\uC0DD")})]}),r.jsxs("div",{className:"pp-bottom__meter",children:[r.jsx("span",{className:"pp-bottom__meter-label caption-1",children:h("training.meter.noise","\uC18C\uC74C")}),r.jsx(ss,{analyser:w?.noiseAnalyser??null,orientation:"horizontal",length:112,label:"db",labelPos:"left",ariaLabel:h("training.meter.noise","\uC18C\uC74C")})]})]});return Vv(e&&p,()=>typeof document<"u"?document.querySelector(".noise-settings__header")?.closest(".tooltip-content")??null:null,()=>[C.current,f.current].map(X=>X?.querySelector("button")??null).find(X=>!!X&&X.getClientRects().length>0)??C.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:C,className:"pp-bottom__tooltip-trigger","data-tooltip-ignore":!0,children:r.jsx(ve,{htmlType:"button",size:56,type:"bar",icon:"settings",onClick:E,className:p?"is-selected":void 0,"aria-expanded":p,"aria-haspopup":"dialog",ariaLabel:h("training.trainingSettingsTitle","\uD6C8\uB828 \uC124\uC815"),label:h("training.trainingSettingsTitle","\uD6C8\uB828 \uC124\uC815"),minWidth:140})})}),r.jsx("div",{className:"pp-bottom__settings--mobile",children:r.jsx("div",{ref:f,className:"pp-bottom__tooltip-trigger","data-tooltip-ignore":!0,children:r.jsx(ve,{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:h("training.settings","\uC124\uC815")})})})]}):null,e&&r.jsx("div",{ref:z,className:"pp-bottom__meter-trigger","data-tooltip-ignore":!0,children:r.jsx(ve,{htmlType:"button",size:40,type:"dot",shape:"pill",icon:"audio-lines",onClick:N,selected:g,"aria-expanded":D?g:void 0,ariaLabel:h("training.meter.toggle","\uC624\uB514\uC624 \uBBF8\uD130 \uD45C\uC2DC")})}),e&&g&&!D&&r.jsx("div",{className:"pp-bottom__meters",children:P})]}),e&&g&&D&&T&&r.jsx(ka,{anchorRect:T,onClose:j,ariaLabel:h("training.meter.toggle","\uC624\uB514\uC624 \uBBF8\uD130 \uD45C\uC2DC"),children:r.jsx("div",{className:"pp-bottom__meters pp-bottom__meters--floating",children:P})}),r.jsxs("div",{className:"pp-bottom__right",children:[_&&r.jsx(ve,{htmlType:"button",size:56,type:"bar",icon:"check",onClick:typeof o=="function"?o:a,ariaLabel:h("training.viewResult","\uACB0\uACFC\uBCF4\uAE30"),label:h("training.viewResult","\uACB0\uACFC\uBCF4\uAE30"),variant:"main",disabled:!k}),A&&r.jsx(ve,{htmlType:"button",size:56,type:"bar",rightIcon:"chevron-right",align:"right",onClick:a,ariaLabel:h("training.nextQuestion","\uB2E4\uC74C \uBB38\uC81C"),label:h("training.nextQuestion","\uB2E4\uC74C \uBB38\uC81C"),variant:"main",disabled:!k})]}),e&&p&&r.jsx(_p,{anchorRect:v,onClose:B,hideNoiseRows:d})]})}var d6=".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}}";se(d6);function kp({title:e,subtitle:t,desc:a,depth:o,icon:n,wrapperStyle:i,iconTooltip:l,pageIndex:c,pageCount:u,progressMax:d,progressIndex:h,onBack:p,onClose:m}){const{t:v}=we.useTranslation(),x=ua("(max-width: 767px)"),g=Number.isInteger(h)?h:c||0,b=Number.isInteger(d)?d:u||0,C=p||m,f=Array.isArray(o)?x?o[o.length-1]:o.join(" / "):o,w=typeof e=="string"?e.trim():e,y=typeof t=="string"?t.trim():t,A=!!(w||y),_=A?w||y:v("common.emptyTrainingName","\uD6C8\uB828 \uC774\uB984\uC774 \uBE44\uC5B4 \uC788\uC2B5\uB2C8\uB2E4."),k=f||(w?t:void 0),B=x&&typeof k=="string"&&(k.includes(" \xB7 ")||k.includes(" / "))?k.split(/\s[·/]\s/).pop():k,E=s.useMemo(()=>{const S=i&&typeof i=="object"?{...i}:{};return!("width"in S)&&!("height"in S)&&(S.width="40px",S.height="40px"),S},[i]);return r.jsxs("header",{className:"pp-title training-popup-title",children:[r.jsxs("div",{className:"pp-title__left",children:[C?r.jsx(ve,{htmlType:"button",size:48,type:"dot",icon:"chevron-left",ariaLabel:v("common.back","\uB4A4\uB85C"),onClick:C,useBorder:!1,iconSize:"large",iconColor:"--color-black",variant:"transparent-gray"}):null,r.jsx("div",{children:n?r.jsx(Pf,{icon:n,label:e,tooltip:l,wrapperStyle:E}):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${A?"":" pp-title__title--empty"}`,children:_}),a?r.jsx("span",{className:"pp-title__description caption-1",children:a}):null]})]}),r.jsx(Hd,{max:Math.max(0,b??0),index:Math.max(0,g??0)})]})}function Zv(){typeof window<"u"&&window.dispatchEvent(new CustomEvent("speechear.popup.close"))}function Jv(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 Qv=(e,t)=>{if(!t)return t;const a=typeof wt?.t=="function"?wt.t(e,{defaultValue:t}):void 0;return typeof a=="string"&&a?a:t};function Bp(e,t,a){const o=e,n=o?.title||o?.name||(Array.isArray(t)?t[t.length-1]:void 0)||a||"\uD6C8\uB828",i=ki().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?Qv(`topic.${i.key}`,i.label):void 0,l?Qv(`topic.sub.${l.key}`,l.label):void 0].filter(Boolean).join(" / ")||void 0}}function Es(e){return e&&typeof e=="object"&&typeof e.__ts=="number"?e.__ts:0}function Ap(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 e1(e){const t=e;return Array.isArray(t?.items)?t.items:Array.isArray(e)?e:e?[e]:[]}function t1({idPrefix:e,trainingData:t,depth:a,fallbackTitle:o="\uD6C8\uB828",pages:n=[],emptyMessage:i,buildResults:l,metaPatch:c}){const u=Bp(t,a,o),d=typeof c=="function"?c(u)||{}:c||{},h=t?.id||t?.title||n.length;return{id:`${e}:${h}`,meta:{...u,...d},pages:n,emptyMessage:i,buildResults:l}}function a1(e){if(typeof e=="string")return e;if(e&&typeof e=="object"){const t=e;return t.context||t.sentence||t.question||""||""}return""}function o1(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 r1(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 Sp(e,t){if(!(!e||typeof e!="object"))return e[`step-${t}`]}function n1(e,t,a,o){return Sp(e,t*a+o)}function i1({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 s1(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 l1=s.createContext(null);function p6(){const e=s.useContext(l1);if(!e)throw new Error("useTrainingPagePopupContext must be used inside TrainingPagePopup");return e}function h6({index:e,stepIndex:t,isLast:a=!1,lockedHint:o,title:n,choices:i=[],onDone:l,onChange:c}){const{t:u}=we.useTranslation(),d=typeof e=="number"?e:-1,h=typeof t!="number"?"disabled":d<t?"done":d===t?"active":"disabled",[p,m]=s.useState(()=>i.map(()=>null)),v=JSON.stringify(i),x=i.length;s.useEffect(()=>{m(Array.from({length:x},()=>null))},[v]);const g=s.useRef(void 0);s.useEffect(()=>{const w=g.current;typeof w=="number"&&typeof t=="number"&&typeof e=="number"&&w>=e&&t<e&&m(Array.from({length:x},()=>null)),g.current=t},[t,e,x]);const b=s.useMemo(()=>p.filter(w=>w!==null).length+1,[p]),C=s.useCallback(w=>{if(!rr(h))return;const y=p;let A;if(y[w]!=null){const k=y[w];A=y.map(B=>B!==null&&B>=k?null:B)}else A=[...y],A[w]=b;m(A);const _={selectedOrder:A,words:i,__ts:Date.now()};try{typeof c=="function"&&c(_)}catch{}if(y[w]==null&&A.length>0&&A.every(k=>k!==null))try{typeof l=="function"&&l(_)}catch{}},[h,p,b,c,l,i]),f=n??u("training.selectInOrder","\uB4E4\uC740 \uC21C\uC11C\uB300\uB85C \uCE74\uB4DC\uB97C \uC120\uD0DD\uD558\uC138\uC694.");return r.jsx(No,{index:e,stepIndex:t,isLast:a,lockedHint:o,title:f,onDone:l,children:r.jsx("div",{className:"training-step__cards",children:i.map((w,y)=>r.jsx(ds,{item:{word:w},disabled:h==="disabled",selectable:!0,selected:p[y]!==null,orderRank:p[y],onSelect:()=>C(y),flipDelay:y*120,hideLabel:!1,hideAudio:!0},`${w}-${y}`))})})}function qn(e){return null}qn.__isTrainingPage=!0;function Gr(e,t){const a=p6();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 Ep({_stepIndex:e,_totalSteps:t,...a}){const{index:o,stepIndex:n,isLast:i,onDone:l}=Gr(e,t);return r.jsx(Bs,{...a,index:o,stepIndex:n,isLast:i,onDone:l})}function Dp({_stepIndex:e,_totalSteps:t,...a}){const{index:o,stepIndex:n,isLast:i,onDone:l,onChange:c}=Gr(e,t);return r.jsx(ws,{...a,index:o,stepIndex:n,isLast:i,onDone:l,onChange:c})}function Np({_stepIndex:e,_totalSteps:t,...a}){const{index:o,stepIndex:n,isLast:i,onDone:l,onChange:c}=Gr(e,t);return r.jsx(ks,{...a,index:o,stepIndex:n,isLast:i,onDone:l,onChange:c})}function jp({_stepIndex:e,_totalSteps:t,...a}){const{index:o,stepIndex:n,isLast:i,onDone:l,onChange:c}=Gr(e,t);return r.jsx(As,{...a,index:o,stepIndex:n,isLast:i,onDone:l,onChange:c})}function Tp({_stepIndex:e,_totalSteps:t,...a}){const{index:o,stepIndex:n,isLast:i,onDone:l,onChange:c}=Gr(e,t);return r.jsx(Cp,{...a,index:o,stepIndex:n,isLast:i,onDone:l,onChange:c})}function m6({_stepIndex:e,_totalSteps:t,...a}){const{index:o,stepIndex:n,isLast:i,onDone:l,onChange:c}=Gr(e,t);return r.jsx(h6,{...a,index:o,stepIndex:n,isLast:i,onDone:l,onChange:c})}const c1=3e4,b6=/^(https?:|blob:|data:audio|\/|\.\/)/;function u1(e){return typeof e=="string"&&b6.test(e)?e:null}const g6=e=>typeof e=="string"&&e.trim()!==""?e:null,Lp=Symbol("timed-out");function f6(e,t){if(t<=0)return Promise.resolve(Lp);let a;return Promise.race([Promise.resolve(e),new Promise(o=>{a=setTimeout(()=>o(Lp),t)})]).finally(()=>clearTimeout(a))}function v6(e){return e?Ro()||Jr()?!0:typeof window<"u"&&!!window.speechSynthesis:!1}function x6(e,t){const a=[],o=u1(t);o&&a.push({kind:"raw",resolve:async()=>o});const n=(e??"").trim();if(!n)return a;for(const[i,l]of[["urlResolver",Ro()],["fallbackUrlResolver",Jr()]])l&&a.push({kind:i,resolve:async c=>{let u;try{u=await f6(l(n),c)}catch(h){return Pt(`question-sound-threw-${i}`,`[core] configureTTS \uC758 ${i} \uAC00 \uB358\uC84C\uB2E4 \u2014 \uADF8 \uCC28\uB840\uB294 \uAC74\uB108\uB6F4\uB2E4.`,h),null}return u===Lp?(Pt(`question-sound-slow-${i}`,`[core] configureTTS \uC758 ${i} \uAC00 ${c1}ms \uBC14\uD034 \uC548\uC5D0 \uC548 \uD480\uB838\uB2E4 \u2014 \uADF8 \uCC28\uB840\uB97C \uBC84\uB9AC\uACE0 \uB2E4\uC74C\uC73C\uB85C \uAC04\uB2E4. \uC11C\uBC84 \uD569\uC131\uC744 \uAE30\uB2E4\uB9AC\uB294 \uB9AC\uC878\uBC84\uB77C\uBA74 \uC774 \uC790\uB9AC\uAC00 \uAE38\uC5B4\uC9C4\uB2E4. \uC18C\uB9AC\uAC00 \uC544\uC608 \uC548 \uB098\uBA74 \uC5EC\uAE30\uBD80\uD130 \uBCF4\uB77C.`),null):g6(u)||(Pt(`question-sound-empty-${i}`,`[core] configureTTS \uC758 ${i} \uAC00 \uC8FC\uC18C\uB97C \uC548 \uC92C\uB2E4(\uBC1B\uC740 \uAC83: ${JSON.stringify(u)}) \u2014 \uADF8 \uCC28\uB840\uB294 \uAC74\uB108\uB6F4\uB2E4.`),null)}});return a}function C6(){return Date.now()+c1}const y6=(e,t)=>Math.max(0,e-Date.now())/Math.max(1,t);function _6(e){Pt("question-sound-none",`[core] "${e}" \uC758 \uC18C\uB9AC \uC8FC\uC18C\uB97C \uD55C \uC790\uB9AC\uC5D0\uC11C\uB3C4 \uBABB \uC5BB\uC5C8\uB2E4 \u2014 \uBE0C\uB77C\uC6B0\uC800 \uB0AD\uB3C5\uC73C\uB85C \uAC04\uB2E4. configureTTS \uAC00 \uAC78\uB824 \uC788\uB294\uC9C0, \uB9AC\uC878\uBC84\uAC00 \uC8FC\uC18C\uB97C \uC8FC\uB294\uC9C0 \uC704 \uC904\uB4E4\uC744 \uBCF4\uB77C.`)}var w6=`.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:center;display:flex;gap:10px}.ihabdevteam-core-scope .trp-row__replay{flex-shrink:0}.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}
|