@ihabdevteam/core 0.8.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.
Files changed (848) hide show
  1. package/README.md +591 -0
  2. package/dist/components.cjs.css +19 -0
  3. package/dist/components.cjs.js +975 -0
  4. package/dist/components.esm.css +19 -0
  5. package/dist/components.esm.js +975 -0
  6. package/dist/hooks.cjs.css +1 -0
  7. package/dist/hooks.cjs.js +799 -0
  8. package/dist/hooks.esm.css +1 -0
  9. package/dist/hooks.esm.js +799 -0
  10. package/dist/ihabdevteam-core-tokens.css +1 -0
  11. package/dist/ihabdevteam-core.cjs.js +993 -0
  12. package/dist/ihabdevteam-core.css +1 -0
  13. package/dist/ihabdevteam-core.d.ts +8272 -0
  14. package/dist/ihabdevteam-core.esm.js +993 -0
  15. package/dist/logo/Logo_APEB.svg +53 -0
  16. package/dist/logo/Logo_APEB_black.svg +42 -0
  17. package/dist/logo/Logo_APEB_white.svg +42 -0
  18. package/dist/logo/Logo_HTP_kr.svg +21 -0
  19. package/dist/logo/Logo_HTP_kr_black.svg +17 -0
  20. package/dist/logo/Logo_HTP_kr_white.svg +17 -0
  21. package/dist/logo/Logo_IHAB_en.svg +18 -0
  22. package/dist/logo/Logo_IHAB_en_black.svg +14 -0
  23. package/dist/logo/Logo_IHAB_en_white.svg +14 -0
  24. package/dist/logo/Logo_IHAB_kr.svg +18 -0
  25. package/dist/logo/Logo_IHAB_kr_black.svg +14 -0
  26. package/dist/logo/Logo_IHAB_kr_white.svg +14 -0
  27. package/dist/logo/Logo_SDS_kr.svg +22 -0
  28. package/dist/logo/Logo_SDS_kr_black.svg +18 -0
  29. package/dist/logo/Logo_SDS_kr_white.svg +18 -0
  30. package/dist/logo/Logo_speechearManager_kr.svg +20 -0
  31. package/dist/logo/Logo_speechearManager_kr_black.svg +21 -0
  32. package/dist/logo/Logo_speechearManager_kr_textWhite.svg +45 -0
  33. package/dist/logo/Logo_speechearManager_kr_white.svg +21 -0
  34. package/dist/logo/Logo_speechear_kr.svg +17 -0
  35. package/dist/logo/Logo_speechear_kr_black.svg +16 -0
  36. package/dist/logo/Logo_speechear_kr_textWhite.svg +42 -0
  37. package/dist/logo/Logo_speechear_kr_white.svg +16 -0
  38. package/dist/logo/Symbol_APEB.svg +34 -0
  39. package/dist/logo/Symbol_APEB_black.svg +15 -0
  40. package/dist/logo/Symbol_APEB_white.svg +15 -0
  41. package/dist/logo/Symbol_HTP.svg +14 -0
  42. package/dist/logo/Symbol_HTP_black.svg +10 -0
  43. package/dist/logo/Symbol_HTP_white.svg +10 -0
  44. package/dist/logo/Symbol_IHAB.svg +14 -0
  45. package/dist/logo/Symbol_IHAB_black.svg +10 -0
  46. package/dist/logo/Symbol_IHAB_white.svg +10 -0
  47. package/dist/logo/Symbol_SDS.svg +14 -0
  48. package/dist/logo/Symbol_SDS_black.svg +10 -0
  49. package/dist/logo/Symbol_SDS_white.svg +10 -0
  50. package/dist/logo/Symbol_speechear.svg +15 -0
  51. package/dist/logo/Symbol_speechear_black.svg +16 -0
  52. package/dist/logo/Symbol_speechear_white.svg +16 -0
  53. package/dist/logo/qr_speechear.svg +1 -0
  54. package/dist/packages/core/src/CoreScope.d.ts +40 -0
  55. package/dist/packages/core/src/CoreScope.js +19 -0
  56. package/dist/packages/core/src/components/Accordion.css +125 -0
  57. package/dist/packages/core/src/components/Accordion.d.ts +19 -0
  58. package/dist/packages/core/src/components/Accordion.js +33 -0
  59. package/dist/packages/core/src/components/ActionCard.css +109 -0
  60. package/dist/packages/core/src/components/ActionCard.d.ts +33 -0
  61. package/dist/packages/core/src/components/ActionCard.js +28 -0
  62. package/dist/packages/core/src/components/Alert.css +76 -0
  63. package/dist/packages/core/src/components/Alert.d.ts +18 -0
  64. package/dist/packages/core/src/components/Alert.js +28 -0
  65. package/dist/packages/core/src/components/AudioMeter.css +80 -0
  66. package/dist/packages/core/src/components/AudioMeter.d.ts +49 -0
  67. package/dist/packages/core/src/components/AudioMeter.js +91 -0
  68. package/dist/packages/core/src/components/Avatar.css +42 -0
  69. package/dist/packages/core/src/components/Avatar.d.ts +21 -0
  70. package/dist/packages/core/src/components/Avatar.js +31 -0
  71. package/dist/packages/core/src/components/Badge.css +166 -0
  72. package/dist/packages/core/src/components/Badge.d.ts +82 -0
  73. package/dist/packages/core/src/components/Badge.js +62 -0
  74. package/dist/packages/core/src/components/BarChart.css +142 -0
  75. package/dist/packages/core/src/components/BarChart.d.ts +16 -0
  76. package/dist/packages/core/src/components/BarChart.js +187 -0
  77. package/dist/packages/core/src/components/Board.css +85 -0
  78. package/dist/packages/core/src/components/Board.d.ts +39 -0
  79. package/dist/packages/core/src/components/Board.js +12 -0
  80. package/dist/packages/core/src/components/BottomNav.css +105 -0
  81. package/dist/packages/core/src/components/BottomNav.d.ts +32 -0
  82. package/dist/packages/core/src/components/BottomNav.js +92 -0
  83. package/dist/packages/core/src/components/Breadcrumb.css +62 -0
  84. package/dist/packages/core/src/components/Breadcrumb.d.ts +13 -0
  85. package/dist/packages/core/src/components/Breadcrumb.js +10 -0
  86. package/dist/packages/core/src/components/BulkBar.css +75 -0
  87. package/dist/packages/core/src/components/BulkBar.d.ts +22 -0
  88. package/dist/packages/core/src/components/BulkBar.js +40 -0
  89. package/dist/packages/core/src/components/Button.css +655 -0
  90. package/dist/packages/core/src/components/Button.d.ts +5 -0
  91. package/dist/packages/core/src/components/Button.js +202 -0
  92. package/dist/packages/core/src/components/Calendar.css +249 -0
  93. package/dist/packages/core/src/components/Calendar.d.ts +23 -0
  94. package/dist/packages/core/src/components/Calendar.js +92 -0
  95. package/dist/packages/core/src/components/ChartSection.css +191 -0
  96. package/dist/packages/core/src/components/ChartSection.d.ts +42 -0
  97. package/dist/packages/core/src/components/ChartSection.js +22 -0
  98. package/dist/packages/core/src/components/Checkbox.css +94 -0
  99. package/dist/packages/core/src/components/Checkbox.d.ts +16 -0
  100. package/dist/packages/core/src/components/Checkbox.js +15 -0
  101. package/dist/packages/core/src/components/ChoiceChips.css +65 -0
  102. package/dist/packages/core/src/components/ChoiceChips.d.ts +15 -0
  103. package/dist/packages/core/src/components/ChoiceChips.js +8 -0
  104. package/dist/packages/core/src/components/CircleBadge.d.ts +31 -0
  105. package/dist/packages/core/src/components/CircleBadge.js +20 -0
  106. package/dist/packages/core/src/components/CodeBox.css +62 -0
  107. package/dist/packages/core/src/components/CodeBox.d.ts +18 -0
  108. package/dist/packages/core/src/components/CodeBox.js +132 -0
  109. package/dist/packages/core/src/components/ColorPicker.css +40 -0
  110. package/dist/packages/core/src/components/ColorPicker.d.ts +17 -0
  111. package/dist/packages/core/src/components/ColorPicker.js +23 -0
  112. package/dist/packages/core/src/components/CompanyMeta.css +33 -0
  113. package/dist/packages/core/src/components/CompanyMeta.d.ts +14 -0
  114. package/dist/packages/core/src/components/CompanyMeta.js +12 -0
  115. package/dist/packages/core/src/components/CountTile.css +47 -0
  116. package/dist/packages/core/src/components/CountTile.d.ts +22 -0
  117. package/dist/packages/core/src/components/CountTile.js +24 -0
  118. package/dist/packages/core/src/components/DatePicker.css +151 -0
  119. package/dist/packages/core/src/components/DatePicker.d.ts +13 -0
  120. package/dist/packages/core/src/components/DatePicker.js +107 -0
  121. package/dist/packages/core/src/components/Dialog.css +98 -0
  122. package/dist/packages/core/src/components/Dialog.d.ts +31 -0
  123. package/dist/packages/core/src/components/Dialog.js +51 -0
  124. package/dist/packages/core/src/components/Divider.css +33 -0
  125. package/dist/packages/core/src/components/Divider.d.ts +13 -0
  126. package/dist/packages/core/src/components/Divider.js +14 -0
  127. package/dist/packages/core/src/components/Dropdown.css +175 -0
  128. package/dist/packages/core/src/components/Dropdown.d.ts +23 -0
  129. package/dist/packages/core/src/components/Dropdown.js +117 -0
  130. package/dist/packages/core/src/components/Effect/EffectPartyPopper.css +25 -0
  131. package/dist/packages/core/src/components/Effect/EffectPartyPopper.d.ts +11 -0
  132. package/dist/packages/core/src/components/Effect/EffectPartyPopper.js +298 -0
  133. package/dist/packages/core/src/components/Effect/EffectPartyPopperHost.d.ts +5 -0
  134. package/dist/packages/core/src/components/Effect/EffectPartyPopperHost.js +13 -0
  135. package/dist/packages/core/src/components/EmptyState.css +23 -0
  136. package/dist/packages/core/src/components/EmptyState.d.ts +19 -0
  137. package/dist/packages/core/src/components/EmptyState.js +7 -0
  138. package/dist/packages/core/src/components/ErrorState.css +2 -0
  139. package/dist/packages/core/src/components/ErrorState.d.ts +18 -0
  140. package/dist/packages/core/src/components/ErrorState.js +11 -0
  141. package/dist/packages/core/src/components/FileUpload.css +114 -0
  142. package/dist/packages/core/src/components/FileUpload.d.ts +25 -0
  143. package/dist/packages/core/src/components/FileUpload.js +111 -0
  144. package/dist/packages/core/src/components/FilterPanel.css +188 -0
  145. package/dist/packages/core/src/components/FilterPanel.d.ts +34 -0
  146. package/dist/packages/core/src/components/FilterPanel.js +82 -0
  147. package/dist/packages/core/src/components/FilterSectionInfo.d.ts +12 -0
  148. package/dist/packages/core/src/components/FilterSectionInfo.js +15 -0
  149. package/dist/packages/core/src/components/Footer.css +186 -0
  150. package/dist/packages/core/src/components/Footer.d.ts +18 -0
  151. package/dist/packages/core/src/components/Footer.js +19 -0
  152. package/dist/packages/core/src/components/Header.css +274 -0
  153. package/dist/packages/core/src/components/Header.d.ts +44 -0
  154. package/dist/packages/core/src/components/Header.js +98 -0
  155. package/dist/packages/core/src/components/HearingDeviceInfo.css +48 -0
  156. package/dist/packages/core/src/components/HearingDeviceInfo.d.ts +22 -0
  157. package/dist/packages/core/src/components/HearingDeviceInfo.js +13 -0
  158. package/dist/packages/core/src/components/Icon.d.ts +14 -0
  159. package/dist/packages/core/src/components/Icon.js +73 -0
  160. package/dist/packages/core/src/components/IconGridMenu.css +141 -0
  161. package/dist/packages/core/src/components/IconGridMenu.d.ts +20 -0
  162. package/dist/packages/core/src/components/IconGridMenu.js +45 -0
  163. package/dist/packages/core/src/components/LandingBottomSticky.css +114 -0
  164. package/dist/packages/core/src/components/LandingBottomSticky.d.ts +26 -0
  165. package/dist/packages/core/src/components/LandingBottomSticky.js +20 -0
  166. package/dist/packages/core/src/components/LandingHeader.css +192 -0
  167. package/dist/packages/core/src/components/LandingHeader.d.ts +67 -0
  168. package/dist/packages/core/src/components/LandingHeader.js +40 -0
  169. package/dist/packages/core/src/components/Loader.css +88 -0
  170. package/dist/packages/core/src/components/Loader.d.ts +14 -0
  171. package/dist/packages/core/src/components/Loader.js +12 -0
  172. package/dist/packages/core/src/components/NoticeBox.css +79 -0
  173. package/dist/packages/core/src/components/NoticeBox.d.ts +21 -0
  174. package/dist/packages/core/src/components/NoticeBox.js +19 -0
  175. package/dist/packages/core/src/components/PageTitle.css +27 -0
  176. package/dist/packages/core/src/components/PageTitle.d.ts +23 -0
  177. package/dist/packages/core/src/components/PageTitle.js +10 -0
  178. package/dist/packages/core/src/components/Pagination.css +11 -0
  179. package/dist/packages/core/src/components/Pagination.d.ts +22 -0
  180. package/dist/packages/core/src/components/Pagination.js +20 -0
  181. package/dist/packages/core/src/components/Panel.css +361 -0
  182. package/dist/packages/core/src/components/Panel.d.ts +166 -0
  183. package/dist/packages/core/src/components/Panel.js +162 -0
  184. package/dist/packages/core/src/components/PassCard/PassCard.css +289 -0
  185. package/dist/packages/core/src/components/PassCard/PassCard.d.ts +56 -0
  186. package/dist/packages/core/src/components/PassCard/PassCard.js +313 -0
  187. package/dist/packages/core/src/components/PassCard/PassCardBg.css +39 -0
  188. package/dist/packages/core/src/components/PassCard/PassCardBg.d.ts +8 -0
  189. package/dist/packages/core/src/components/PassCard/PassCardBg.js +6 -0
  190. package/dist/packages/core/src/components/PassCard/PassCardBgIHAB.css +25 -0
  191. package/dist/packages/core/src/components/PassCard/PassCardBgIHAB.d.ts +7 -0
  192. package/dist/packages/core/src/components/PassCard/PassCardBgIHAB.js +18 -0
  193. package/dist/packages/core/src/components/PassCard/PassCardBgLeftColorGrid.css +45 -0
  194. package/dist/packages/core/src/components/PassCard/PassCardBgLeftColorGrid.d.ts +9 -0
  195. package/dist/packages/core/src/components/PassCard/PassCardBgLeftColorGrid.js +19 -0
  196. package/dist/packages/core/src/components/PassCard/PassCardBgSoundLine.css +19 -0
  197. package/dist/packages/core/src/components/PassCard/PassCardBgSoundLine.d.ts +9 -0
  198. package/dist/packages/core/src/components/PassCard/PassCardBgSoundLine.js +23 -0
  199. package/dist/packages/core/src/components/PassCard/PassCardBgSoundLineV1.css +15 -0
  200. package/dist/packages/core/src/components/PassCard/PassCardBgSoundLineV1.d.ts +9 -0
  201. package/dist/packages/core/src/components/PassCard/PassCardBgSoundLineV1.js +24 -0
  202. package/dist/packages/core/src/components/PassCard/PassCardBgSoundMove.css +16 -0
  203. package/dist/packages/core/src/components/PassCard/PassCardBgSoundMove.d.ts +9 -0
  204. package/dist/packages/core/src/components/PassCard/PassCardBgSoundMove.js +31 -0
  205. package/dist/packages/core/src/components/PassCard/PassCardBgSoundMoveV1.css +16 -0
  206. package/dist/packages/core/src/components/PassCard/PassCardBgSoundMoveV1.d.ts +9 -0
  207. package/dist/packages/core/src/components/PassCard/PassCardBgSoundMoveV1.js +32 -0
  208. package/dist/packages/core/src/components/PassCard/PassCardBgTalk.css +33 -0
  209. package/dist/packages/core/src/components/PassCard/PassCardBgTalk.d.ts +9 -0
  210. package/dist/packages/core/src/components/PassCard/PassCardBgTalk.js +18 -0
  211. package/dist/packages/core/src/components/PassCard/PassCardBgTalkV1.css +36 -0
  212. package/dist/packages/core/src/components/PassCard/PassCardBgTalkV1.d.ts +13 -0
  213. package/dist/packages/core/src/components/PassCard/PassCardBgTalkV1.js +22 -0
  214. package/dist/packages/core/src/components/PassCard/PassCardBgTheme.d.ts +38 -0
  215. package/dist/packages/core/src/components/PassCard/PassCardBgTheme.js +34 -0
  216. package/dist/packages/core/src/components/PassCard/PassCardBgTwoCircle.css +36 -0
  217. package/dist/packages/core/src/components/PassCard/PassCardBgTwoCircle.d.ts +9 -0
  218. package/dist/packages/core/src/components/PassCard/PassCardBgTwoCircle.js +18 -0
  219. package/dist/packages/core/src/components/PassCard/PassCard_Back.css +76 -0
  220. package/dist/packages/core/src/components/PassCard/PassCard_Back.d.ts +13 -0
  221. package/dist/packages/core/src/components/PassCard/PassCard_Back.js +20 -0
  222. package/dist/packages/core/src/components/PassCard/ihabOutlinePath.d.ts +12 -0
  223. package/dist/packages/core/src/components/PassCard/ihabOutlinePath.js +19 -0
  224. package/dist/packages/core/src/components/PassCard/passCardProduct.d.ts +48 -0
  225. package/dist/packages/core/src/components/PassCard/passCardProduct.js +56 -0
  226. package/dist/packages/core/src/components/PaymentPlan.css +318 -0
  227. package/dist/packages/core/src/components/PaymentPlan.d.ts +57 -0
  228. package/dist/packages/core/src/components/PaymentPlan.js +126 -0
  229. package/dist/packages/core/src/components/PersonCard.css +72 -0
  230. package/dist/packages/core/src/components/PersonCard.d.ts +27 -0
  231. package/dist/packages/core/src/components/PersonCard.js +11 -0
  232. package/dist/packages/core/src/components/Popup/ConfirmPopup.d.ts +58 -0
  233. package/dist/packages/core/src/components/Popup/ConfirmPopup.js +59 -0
  234. package/dist/packages/core/src/components/Popup/CouponInputPopup.css +28 -0
  235. package/dist/packages/core/src/components/Popup/CouponInputPopup.d.ts +8 -0
  236. package/dist/packages/core/src/components/Popup/CouponInputPopup.js +45 -0
  237. package/dist/packages/core/src/components/Popup/DeviceListPopup.css +78 -0
  238. package/dist/packages/core/src/components/Popup/DeviceListPopup.d.ts +28 -0
  239. package/dist/packages/core/src/components/Popup/DeviceListPopup.js +31 -0
  240. package/dist/packages/core/src/components/Popup/DeviceSideTable.d.ts +41 -0
  241. package/dist/packages/core/src/components/Popup/DeviceSideTable.js +92 -0
  242. package/dist/packages/core/src/components/Popup/ListPopup.css +44 -0
  243. package/dist/packages/core/src/components/Popup/ListPopup.d.ts +75 -0
  244. package/dist/packages/core/src/components/Popup/ListPopup.js +85 -0
  245. package/dist/packages/core/src/components/Popup/LoadTablePopup.css +248 -0
  246. package/dist/packages/core/src/components/Popup/LoadTablePopup.d.ts +12 -0
  247. package/dist/packages/core/src/components/Popup/LoadTablePopup.js +86 -0
  248. package/dist/packages/core/src/components/Popup/Popup.css +136 -0
  249. package/dist/packages/core/src/components/Popup/Popup.d.ts +77 -0
  250. package/dist/packages/core/src/components/Popup/Popup.js +135 -0
  251. package/dist/packages/core/src/components/Popup/SaveTablePopup.css +32 -0
  252. package/dist/packages/core/src/components/Popup/SaveTablePopup.d.ts +25 -0
  253. package/dist/packages/core/src/components/Popup/SaveTablePopup.js +55 -0
  254. package/dist/packages/core/src/components/Popup/TrainingResultPopup.css +277 -0
  255. package/dist/packages/core/src/components/Popup/TrainingResultPopup.d.ts +14 -0
  256. package/dist/packages/core/src/components/Popup/TrainingResultPopup.js +104 -0
  257. package/dist/packages/core/src/components/Popup/WordDataUpdatePopup.css +119 -0
  258. package/dist/packages/core/src/components/Popup/WordDataUpdatePopup.d.ts +12 -0
  259. package/dist/packages/core/src/components/Popup/WordDataUpdatePopup.js +73 -0
  260. package/dist/packages/core/src/components/Popup/customerDetailUtils.d.ts +19 -0
  261. package/dist/packages/core/src/components/Popup/customerDetailUtils.js +45 -0
  262. package/dist/packages/core/src/components/ProgressBar.css +114 -0
  263. package/dist/packages/core/src/components/ProgressBar.d.ts +65 -0
  264. package/dist/packages/core/src/components/ProgressBar.js +51 -0
  265. package/dist/packages/core/src/components/ProgressIndicator.css +41 -0
  266. package/dist/packages/core/src/components/ProgressIndicator.d.ts +18 -0
  267. package/dist/packages/core/src/components/ProgressIndicator.js +45 -0
  268. package/dist/packages/core/src/components/PromoBanner.css +54 -0
  269. package/dist/packages/core/src/components/PromoBanner.d.ts +30 -0
  270. package/dist/packages/core/src/components/PromoBanner.js +54 -0
  271. package/dist/packages/core/src/components/PromoBannerBg/PromoBannerBg.css +8 -0
  272. package/dist/packages/core/src/components/PromoBannerBg/PromoBannerBgDark.css +3 -0
  273. package/dist/packages/core/src/components/PromoBannerBg/PromoBannerBgDark.d.ts +11 -0
  274. package/dist/packages/core/src/components/PromoBannerBg/PromoBannerBgDark.js +20 -0
  275. package/dist/packages/core/src/components/PromoBannerBg/PromoBannerBgDeep.css +3 -0
  276. package/dist/packages/core/src/components/PromoBannerBg/PromoBannerBgDeep.d.ts +10 -0
  277. package/dist/packages/core/src/components/PromoBannerBg/PromoBannerBgDeep.js +19 -0
  278. package/dist/packages/core/src/components/PromoBannerBg/PromoBannerBgDiagonal.css +10 -0
  279. package/dist/packages/core/src/components/PromoBannerBg/PromoBannerBgDiagonal.d.ts +10 -0
  280. package/dist/packages/core/src/components/PromoBannerBg/PromoBannerBgDiagonal.js +19 -0
  281. package/dist/packages/core/src/components/PromoBannerBg/PromoBannerBgDots.css +5 -0
  282. package/dist/packages/core/src/components/PromoBannerBg/PromoBannerBgDots.d.ts +10 -0
  283. package/dist/packages/core/src/components/PromoBannerBg/PromoBannerBgDots.js +19 -0
  284. package/dist/packages/core/src/components/PromoBannerBg/PromoBannerBgInstagram.css +3 -0
  285. package/dist/packages/core/src/components/PromoBannerBg/PromoBannerBgInstagram.d.ts +11 -0
  286. package/dist/packages/core/src/components/PromoBannerBg/PromoBannerBgInstagram.js +20 -0
  287. package/dist/packages/core/src/components/PromoBannerBg/PromoBannerBgMain.css +3 -0
  288. package/dist/packages/core/src/components/PromoBannerBg/PromoBannerBgMain.d.ts +12 -0
  289. package/dist/packages/core/src/components/PromoBannerBg/PromoBannerBgMain.js +21 -0
  290. package/dist/packages/core/src/components/PromoBannerBg/PromoBannerBgNaver.css +3 -0
  291. package/dist/packages/core/src/components/PromoBannerBg/PromoBannerBgNaver.d.ts +11 -0
  292. package/dist/packages/core/src/components/PromoBannerBg/PromoBannerBgNaver.js +20 -0
  293. package/dist/packages/core/src/components/PromoBannerBg/PromoBannerBgOutline.css +16 -0
  294. package/dist/packages/core/src/components/PromoBannerBg/PromoBannerBgOutline.d.ts +11 -0
  295. package/dist/packages/core/src/components/PromoBannerBg/PromoBannerBgOutline.js +20 -0
  296. package/dist/packages/core/src/components/PromoBannerBg/PromoBannerBgRadial.css +3 -0
  297. package/dist/packages/core/src/components/PromoBannerBg/PromoBannerBgRadial.d.ts +10 -0
  298. package/dist/packages/core/src/components/PromoBannerBg/PromoBannerBgRadial.js +19 -0
  299. package/dist/packages/core/src/components/PromoBannerBg/PromoBannerBgSoft.css +3 -0
  300. package/dist/packages/core/src/components/PromoBannerBg/PromoBannerBgSoft.d.ts +12 -0
  301. package/dist/packages/core/src/components/PromoBannerBg/PromoBannerBgSoft.js +21 -0
  302. package/dist/packages/core/src/components/PromoBannerBg/PromoBannerBgSoftSub.css +3 -0
  303. package/dist/packages/core/src/components/PromoBannerBg/PromoBannerBgSoftSub.d.ts +10 -0
  304. package/dist/packages/core/src/components/PromoBannerBg/PromoBannerBgSoftSub.js +19 -0
  305. package/dist/packages/core/src/components/PromoBannerBg/PromoBannerBgSub.css +3 -0
  306. package/dist/packages/core/src/components/PromoBannerBg/PromoBannerBgSub.d.ts +10 -0
  307. package/dist/packages/core/src/components/PromoBannerBg/PromoBannerBgSub.js +19 -0
  308. package/dist/packages/core/src/components/PromoBannerBg/PromoBannerBgSuccess.css +3 -0
  309. package/dist/packages/core/src/components/PromoBannerBg/PromoBannerBgSuccess.d.ts +11 -0
  310. package/dist/packages/core/src/components/PromoBannerBg/PromoBannerBgSuccess.js +20 -0
  311. package/dist/packages/core/src/components/PromoBannerBg/PromoBannerBgTheme.d.ts +32 -0
  312. package/dist/packages/core/src/components/PromoBannerBg/PromoBannerBgTheme.js +29 -0
  313. package/dist/packages/core/src/components/PromoBannerBg/PromoBannerBgWarm.css +3 -0
  314. package/dist/packages/core/src/components/PromoBannerBg/PromoBannerBgWarm.d.ts +11 -0
  315. package/dist/packages/core/src/components/PromoBannerBg/PromoBannerBgWarm.js +20 -0
  316. package/dist/packages/core/src/components/PromoBannerBg/promoBannerBg.d.ts +21 -0
  317. package/dist/packages/core/src/components/PromoBannerBg/promoBannerBg.js +49 -0
  318. package/dist/packages/core/src/components/PublicationCard.css +70 -0
  319. package/dist/packages/core/src/components/PublicationCard.d.ts +31 -0
  320. package/dist/packages/core/src/components/PublicationCard.js +11 -0
  321. package/dist/packages/core/src/components/Radio.css +64 -0
  322. package/dist/packages/core/src/components/Radio.d.ts +13 -0
  323. package/dist/packages/core/src/components/Radio.js +9 -0
  324. package/dist/packages/core/src/components/RadioGroup.css +14 -0
  325. package/dist/packages/core/src/components/RadioGroup.d.ts +21 -0
  326. package/dist/packages/core/src/components/RadioGroup.js +14 -0
  327. package/dist/packages/core/src/components/Rating.css +69 -0
  328. package/dist/packages/core/src/components/Rating.d.ts +21 -0
  329. package/dist/packages/core/src/components/Rating.js +51 -0
  330. package/dist/packages/core/src/components/RingChart.css +50 -0
  331. package/dist/packages/core/src/components/RingChart.d.ts +68 -0
  332. package/dist/packages/core/src/components/RingChart.js +57 -0
  333. package/dist/packages/core/src/components/SearchSummary.css +62 -0
  334. package/dist/packages/core/src/components/SearchSummary.d.ts +32 -0
  335. package/dist/packages/core/src/components/SearchSummary.js +48 -0
  336. package/dist/packages/core/src/components/Section.css +73 -0
  337. package/dist/packages/core/src/components/Section.d.ts +16 -0
  338. package/dist/packages/core/src/components/Section.js +15 -0
  339. package/dist/packages/core/src/components/SectionHeader.css +87 -0
  340. package/dist/packages/core/src/components/SectionHeader.d.ts +31 -0
  341. package/dist/packages/core/src/components/SectionHeader.js +16 -0
  342. package/dist/packages/core/src/components/SegmentedControl.css +67 -0
  343. package/dist/packages/core/src/components/SegmentedControl.d.ts +26 -0
  344. package/dist/packages/core/src/components/SegmentedControl.js +13 -0
  345. package/dist/packages/core/src/components/ShortcutBadge.css +68 -0
  346. package/dist/packages/core/src/components/ShortcutBadge.d.ts +31 -0
  347. package/dist/packages/core/src/components/ShortcutBadge.js +23 -0
  348. package/dist/packages/core/src/components/SideNav.css +281 -0
  349. package/dist/packages/core/src/components/SideNav.d.ts +32 -0
  350. package/dist/packages/core/src/components/SideNav.js +92 -0
  351. package/dist/packages/core/src/components/Slider.css +184 -0
  352. package/dist/packages/core/src/components/Slider.d.ts +67 -0
  353. package/dist/packages/core/src/components/Slider.js +97 -0
  354. package/dist/packages/core/src/components/SoundCompass.css +138 -0
  355. package/dist/packages/core/src/components/SoundCompass.d.ts +42 -0
  356. package/dist/packages/core/src/components/SoundCompass.js +136 -0
  357. package/dist/packages/core/src/components/SplashLogo.css +32 -0
  358. package/dist/packages/core/src/components/SplashLogo.d.ts +35 -0
  359. package/dist/packages/core/src/components/SplashLogo.js +32 -0
  360. package/dist/packages/core/src/components/StatChart.css +83 -0
  361. package/dist/packages/core/src/components/StatChart.d.ts +26 -0
  362. package/dist/packages/core/src/components/StatChart.js +41 -0
  363. package/dist/packages/core/src/components/Table.css +158 -0
  364. package/dist/packages/core/src/components/Table.d.ts +94 -0
  365. package/dist/packages/core/src/components/Table.js +200 -0
  366. package/dist/packages/core/src/components/TableCell.css +12 -0
  367. package/dist/packages/core/src/components/TableField.css +60 -0
  368. package/dist/packages/core/src/components/Tabs.css +55 -0
  369. package/dist/packages/core/src/components/Tabs.d.ts +30 -0
  370. package/dist/packages/core/src/components/Tabs.js +55 -0
  371. package/dist/packages/core/src/components/TextField.css +266 -0
  372. package/dist/packages/core/src/components/TextField.d.ts +86 -0
  373. package/dist/packages/core/src/components/TextField.js +149 -0
  374. package/dist/packages/core/src/components/Timeline.css +62 -0
  375. package/dist/packages/core/src/components/Timeline.d.ts +26 -0
  376. package/dist/packages/core/src/components/Timeline.js +11 -0
  377. package/dist/packages/core/src/components/Toast.css +76 -0
  378. package/dist/packages/core/src/components/Toast.d.ts +10 -0
  379. package/dist/packages/core/src/components/Toast.js +19 -0
  380. package/dist/packages/core/src/components/Toggle.css +61 -0
  381. package/dist/packages/core/src/components/Toggle.d.ts +18 -0
  382. package/dist/packages/core/src/components/Toggle.js +7 -0
  383. package/dist/packages/core/src/components/Toolbar.css +86 -0
  384. package/dist/packages/core/src/components/Toolbar.d.ts +52 -0
  385. package/dist/packages/core/src/components/Toolbar.js +20 -0
  386. package/dist/packages/core/src/components/Tooltip/DebugTooltip.css +27 -0
  387. package/dist/packages/core/src/components/Tooltip/DebugTooltip.d.ts +12 -0
  388. package/dist/packages/core/src/components/Tooltip/DebugTooltip.js +79 -0
  389. package/dist/packages/core/src/components/Tooltip/DescriptionTooltip.css +50 -0
  390. package/dist/packages/core/src/components/Tooltip/DescriptionTooltip.d.ts +16 -0
  391. package/dist/packages/core/src/components/Tooltip/DescriptionTooltip.js +11 -0
  392. package/dist/packages/core/src/components/Tooltip/InfoTooltip.css +39 -0
  393. package/dist/packages/core/src/components/Tooltip/InfoTooltip.d.ts +13 -0
  394. package/dist/packages/core/src/components/Tooltip/InfoTooltip.js +10 -0
  395. package/dist/packages/core/src/components/Tooltip/MenuTooltip.css +93 -0
  396. package/dist/packages/core/src/components/Tooltip/MenuTooltip.d.ts +30 -0
  397. package/dist/packages/core/src/components/Tooltip/MenuTooltip.js +92 -0
  398. package/dist/packages/core/src/components/Tooltip/TextBoxTooltip.css +95 -0
  399. package/dist/packages/core/src/components/Tooltip/TextBoxTooltip.d.ts +13 -0
  400. package/dist/packages/core/src/components/Tooltip/TextBoxTooltip.js +55 -0
  401. package/dist/packages/core/src/components/Tooltip/Tooltip.css +120 -0
  402. package/dist/packages/core/src/components/Tooltip/Tooltip.d.ts +25 -0
  403. package/dist/packages/core/src/components/Tooltip/Tooltip.js +296 -0
  404. package/dist/packages/core/src/components/Tooltip/TrainingTooltip.css +67 -0
  405. package/dist/packages/core/src/components/Tooltip/TrainingTooltip.d.ts +16 -0
  406. package/dist/packages/core/src/components/Tooltip/TrainingTooltip.js +40 -0
  407. package/dist/packages/core/src/components/Tooltip/WordImageTooltip.css +61 -0
  408. package/dist/packages/core/src/components/Tooltip/WordImageTooltip.d.ts +12 -0
  409. package/dist/packages/core/src/components/Tooltip/WordImageTooltip.js +39 -0
  410. package/dist/packages/core/src/components/Tooltip/tooltipConstants.d.ts +44 -0
  411. package/dist/packages/core/src/components/Tooltip/tooltipConstants.js +38 -0
  412. package/dist/packages/core/src/components/TopBanner.css +100 -0
  413. package/dist/packages/core/src/components/TopBanner.d.ts +25 -0
  414. package/dist/packages/core/src/components/TopBanner.js +36 -0
  415. package/dist/packages/core/src/components/Training/AudioPlayerWaveForm.d.ts +17 -0
  416. package/dist/packages/core/src/components/Training/AudioPlayerWaveForm.js +237 -0
  417. package/dist/packages/core/src/components/Training/CategoryIcon.css +85 -0
  418. package/dist/packages/core/src/components/Training/CategoryIcon.d.ts +16 -0
  419. package/dist/packages/core/src/components/Training/CategoryIcon.js +79 -0
  420. package/dist/packages/core/src/components/Training/NoisePlayerContext.d.ts +43 -0
  421. package/dist/packages/core/src/components/Training/NoisePlayerContext.js +26 -0
  422. package/dist/packages/core/src/components/Training/NoiseSettingsTooltip.css +52 -0
  423. package/dist/packages/core/src/components/Training/NoiseSettingsTooltip.d.ts +13 -0
  424. package/dist/packages/core/src/components/Training/NoiseSettingsTooltip.js +81 -0
  425. package/dist/packages/core/src/components/Training/TrainingBlock.css +33 -0
  426. package/dist/packages/core/src/components/Training/TrainingBlock.d.ts +45 -0
  427. package/dist/packages/core/src/components/Training/TrainingBlock.js +44 -0
  428. package/dist/packages/core/src/components/Training/TrainingBlockButton.css +337 -0
  429. package/dist/packages/core/src/components/Training/TrainingBlockButton.d.ts +5 -0
  430. package/dist/packages/core/src/components/Training/TrainingBlockButton.js +193 -0
  431. package/dist/packages/core/src/components/Training/TrainingCard.css +178 -0
  432. package/dist/packages/core/src/components/Training/TrainingCard.d.ts +24 -0
  433. package/dist/packages/core/src/components/Training/TrainingCard.js +29 -0
  434. package/dist/packages/core/src/components/Training/TrainingCardGroup.css +73 -0
  435. package/dist/packages/core/src/components/Training/TrainingCardGroup.d.ts +41 -0
  436. package/dist/packages/core/src/components/Training/TrainingCardGroup.js +16 -0
  437. package/dist/packages/core/src/components/Training/TrainingPagePopup.css +210 -0
  438. package/dist/packages/core/src/components/Training/TrainingPagePopup.d.ts +91 -0
  439. package/dist/packages/core/src/components/Training/TrainingPagePopup.js +799 -0
  440. package/dist/packages/core/src/components/Training/TrainingPagePopupBottom.css +45 -0
  441. package/dist/packages/core/src/components/Training/TrainingPagePopupBottom.d.ts +14 -0
  442. package/dist/packages/core/src/components/Training/TrainingPagePopupBottom.js +60 -0
  443. package/dist/packages/core/src/components/Training/TrainingPagePopupContext.d.ts +13 -0
  444. package/dist/packages/core/src/components/Training/TrainingPagePopupContext.js +12 -0
  445. package/dist/packages/core/src/components/Training/TrainingPagePopupTitle.css +77 -0
  446. package/dist/packages/core/src/components/Training/TrainingPagePopupTitle.d.ts +21 -0
  447. package/dist/packages/core/src/components/Training/TrainingPagePopupTitle.js +41 -0
  448. package/dist/packages/core/src/components/Training/TrainingStep.css +236 -0
  449. package/dist/packages/core/src/components/Training/TrainingStep.d.ts +15 -0
  450. package/dist/packages/core/src/components/Training/TrainingStep.js +89 -0
  451. package/dist/packages/core/src/components/Training/TrainingStepAudioPlayer.css +320 -0
  452. package/dist/packages/core/src/components/Training/TrainingStepAudioPlayer.d.ts +5 -0
  453. package/dist/packages/core/src/components/Training/TrainingStepAudioPlayer.js +971 -0
  454. package/dist/packages/core/src/components/Training/TrainingStepBullet.css +148 -0
  455. package/dist/packages/core/src/components/Training/TrainingStepBullet.d.ts +6 -0
  456. package/dist/packages/core/src/components/Training/TrainingStepBullet.js +11 -0
  457. package/dist/packages/core/src/components/Training/TrainingStepCard.css +0 -0
  458. package/dist/packages/core/src/components/Training/TrainingStepCard.d.ts +36 -0
  459. package/dist/packages/core/src/components/Training/TrainingStepCard.js +110 -0
  460. package/dist/packages/core/src/components/Training/TrainingStepCardOrder.d.ts +15 -0
  461. package/dist/packages/core/src/components/Training/TrainingStepCardOrder.js +58 -0
  462. package/dist/packages/core/src/components/Training/TrainingStepComponents.d.ts +35 -0
  463. package/dist/packages/core/src/components/Training/TrainingStepComponents.js +60 -0
  464. package/dist/packages/core/src/components/Training/TrainingStepConfirm.d.ts +24 -0
  465. package/dist/packages/core/src/components/Training/TrainingStepConfirm.js +117 -0
  466. package/dist/packages/core/src/components/Training/TrainingStepConfirmWithText.d.ts +16 -0
  467. package/dist/packages/core/src/components/Training/TrainingStepConfirmWithText.js +60 -0
  468. package/dist/packages/core/src/components/Training/TrainingStepListen.d.ts +27 -0
  469. package/dist/packages/core/src/components/Training/TrainingStepListen.js +13 -0
  470. package/dist/packages/core/src/components/Training/TrainingStepOrderList.css +221 -0
  471. package/dist/packages/core/src/components/Training/TrainingStepOrderList.d.ts +7 -0
  472. package/dist/packages/core/src/components/Training/TrainingStepOrderList.js +445 -0
  473. package/dist/packages/core/src/components/Training/TrainingStepTextBox.css +111 -0
  474. package/dist/packages/core/src/components/Training/TrainingStepTextBox.d.ts +8 -0
  475. package/dist/packages/core/src/components/Training/TrainingStepTextBox.js +74 -0
  476. package/dist/packages/core/src/components/Training/TrainingStepTitle.css +89 -0
  477. package/dist/packages/core/src/components/Training/TrainingStepTitle.d.ts +21 -0
  478. package/dist/packages/core/src/components/Training/TrainingStepTitle.js +91 -0
  479. package/dist/packages/core/src/components/Training/TrainingWordCard.css +266 -0
  480. package/dist/packages/core/src/components/Training/TrainingWordCard.d.ts +43 -0
  481. package/dist/packages/core/src/components/Training/TrainingWordCard.js +229 -0
  482. package/dist/packages/core/src/components/Training/WordTablePopup.css +56 -0
  483. package/dist/packages/core/src/components/Training/WordTablePopup.d.ts +61 -0
  484. package/dist/packages/core/src/components/Training/WordTablePopup.js +105 -0
  485. package/dist/packages/core/src/components/Training/audioPlaybackRules.d.ts +95 -0
  486. package/dist/packages/core/src/components/Training/audioPlaybackRules.js +125 -0
  487. package/dist/packages/core/src/components/Training/audioWaits.d.ts +27 -0
  488. package/dist/packages/core/src/components/Training/audioWaits.js +64 -0
  489. package/dist/packages/core/src/components/Training/currentSound.d.ts +26 -0
  490. package/dist/packages/core/src/components/Training/currentSound.js +46 -0
  491. package/dist/packages/core/src/components/Training/pagePopupTiming.d.ts +17 -0
  492. package/dist/packages/core/src/components/Training/pagePopupTiming.js +17 -0
  493. package/dist/packages/core/src/components/Training/trainingBlockButtonTypes.d.ts +79 -0
  494. package/dist/packages/core/src/components/Training/trainingBlockButtonTypes.js +27 -0
  495. package/dist/packages/core/src/components/Training/trainingMissStats.d.ts +148 -0
  496. package/dist/packages/core/src/components/Training/trainingMissStats.js +163 -0
  497. package/dist/packages/core/src/components/Training/trainingPopupUtils.d.ts +108 -0
  498. package/dist/packages/core/src/components/Training/trainingPopupUtils.js +226 -0
  499. package/dist/packages/core/src/components/Training/trainingScenario.d.ts +42 -0
  500. package/dist/packages/core/src/components/Training/trainingScenario.js +25 -0
  501. package/dist/packages/core/src/components/Training/trainingStepAudioPlayerTypes.d.ts +37 -0
  502. package/dist/packages/core/src/components/Training/trainingStepAudioPlayerTypes.js +20 -0
  503. package/dist/packages/core/src/components/Training/trainingStepOrderListTypes.d.ts +34 -0
  504. package/dist/packages/core/src/components/Training/trainingStepOrderListTypes.js +5 -0
  505. package/dist/packages/core/src/components/Training/useAnchorRect.d.ts +26 -0
  506. package/dist/packages/core/src/components/Training/useAnchorRect.js +52 -0
  507. package/dist/packages/core/src/components/Training/useAudioPreview.d.ts +11 -0
  508. package/dist/packages/core/src/components/Training/useAudioPreview.js +178 -0
  509. package/dist/packages/core/src/components/Training/useNoiseFade.d.ts +24 -0
  510. package/dist/packages/core/src/components/Training/useNoiseFade.js +303 -0
  511. package/dist/packages/core/src/components/Training/useObjectUrls.d.ts +25 -0
  512. package/dist/packages/core/src/components/Training/useObjectUrls.js +56 -0
  513. package/dist/packages/core/src/components/Training/useProgressTicker.d.ts +33 -0
  514. package/dist/packages/core/src/components/Training/useProgressTicker.js +74 -0
  515. package/dist/packages/core/src/components/Training/useTTSPlayback.d.ts +30 -0
  516. package/dist/packages/core/src/components/Training/useTTSPlayback.js +172 -0
  517. package/dist/packages/core/src/components/Training/useWaveReady.d.ts +36 -0
  518. package/dist/packages/core/src/components/Training/useWaveReady.js +65 -0
  519. package/dist/packages/core/src/components/UpdateAlert.css +116 -0
  520. package/dist/packages/core/src/components/UpdateAlert.d.ts +23 -0
  521. package/dist/packages/core/src/components/UpdateAlert.js +25 -0
  522. package/dist/packages/core/src/components/Word/ContrastFilterPanel.d.ts +25 -0
  523. package/dist/packages/core/src/components/Word/ContrastFilterPanel.js +69 -0
  524. package/dist/packages/core/src/components/Word/PhonemeFilterPanel.d.ts +24 -0
  525. package/dist/packages/core/src/components/Word/PhonemeFilterPanel.js +15 -0
  526. package/dist/packages/core/src/components/Word/PhonemeSelectBlock.css +272 -0
  527. package/dist/packages/core/src/components/Word/PhonemeSelectBlock.d.ts +45 -0
  528. package/dist/packages/core/src/components/Word/PhonemeSelectBlock.js +71 -0
  529. package/dist/packages/core/src/components/Word/TableFilterPanel.d.ts +56 -0
  530. package/dist/packages/core/src/components/Word/TableFilterPanel.js +42 -0
  531. package/dist/packages/core/src/components/Word/WordSearchFilterPanel.d.ts +23 -0
  532. package/dist/packages/core/src/components/Word/WordSearchFilterPanel.js +14 -0
  533. package/dist/packages/core/src/components/Word/WordSearchResultBlock.css +130 -0
  534. package/dist/packages/core/src/components/Word/WordSearchResultBlock.d.ts +47 -0
  535. package/dist/packages/core/src/components/Word/WordSearchResultBlock.js +141 -0
  536. package/dist/packages/core/src/components/Word/WordTableBlock.css +85 -0
  537. package/dist/packages/core/src/components/Word/WordTableBlock.d.ts +5 -0
  538. package/dist/packages/core/src/components/Word/WordTableBlock.js +297 -0
  539. package/dist/packages/core/src/components/Word/WordTableButton.css +185 -0
  540. package/dist/packages/core/src/components/Word/WordTableButton.d.ts +48 -0
  541. package/dist/packages/core/src/components/Word/WordTableButton.js +28 -0
  542. package/dist/packages/core/src/components/Word/WordTableThumbnail.css +56 -0
  543. package/dist/packages/core/src/components/Word/WordTableThumbnail.d.ts +10 -0
  544. package/dist/packages/core/src/components/Word/WordTableThumbnail.js +21 -0
  545. package/dist/packages/core/src/components/Word/generatedDraft.d.ts +39 -0
  546. package/dist/packages/core/src/components/Word/generatedDraft.js +69 -0
  547. package/dist/packages/core/src/components/Word/phonemeSelectBlockUtils.d.ts +14 -0
  548. package/dist/packages/core/src/components/Word/phonemeSelectBlockUtils.js +10 -0
  549. package/dist/packages/core/src/components/Word/useWordTableDisplaySettings.d.ts +35 -0
  550. package/dist/packages/core/src/components/Word/useWordTableDisplaySettings.js +82 -0
  551. package/dist/packages/core/src/components/Word/useWordTablePrint.d.ts +31 -0
  552. package/dist/packages/core/src/components/Word/useWordTablePrint.js +43 -0
  553. package/dist/packages/core/src/components/Word/wordScoreStats.d.ts +77 -0
  554. package/dist/packages/core/src/components/Word/wordScoreStats.js +100 -0
  555. package/dist/packages/core/src/components/Word/wordTableBlockTypes.d.ts +85 -0
  556. package/dist/packages/core/src/components/Word/wordTableBlockTypes.js +3 -0
  557. package/dist/packages/core/src/components/Word/wordTablePrint.d.ts +14 -0
  558. package/dist/packages/core/src/components/Word/wordTablePrint.js +210 -0
  559. package/dist/packages/core/src/components/Word/wordTableRecommend.d.ts +67 -0
  560. package/dist/packages/core/src/components/Word/wordTableRecommend.js +91 -0
  561. package/dist/packages/core/src/components/Word/wordTableReview.d.ts +49 -0
  562. package/dist/packages/core/src/components/Word/wordTableReview.js +112 -0
  563. package/dist/packages/core/src/components/Word/wordTableScoring.d.ts +100 -0
  564. package/dist/packages/core/src/components/Word/wordTableScoring.js +126 -0
  565. package/dist/packages/core/src/components/Word/wordTableSettings.d.ts +56 -0
  566. package/dist/packages/core/src/components/Word/wordTableSettings.js +140 -0
  567. package/dist/packages/core/src/components/WordTable.css +424 -0
  568. package/dist/packages/core/src/components/WordTable.d.ts +75 -0
  569. package/dist/packages/core/src/components/WordTable.js +184 -0
  570. package/dist/packages/core/src/components/barChartData.d.ts +48 -0
  571. package/dist/packages/core/src/components/barChartData.js +111 -0
  572. package/dist/packages/core/src/components/barChartTypes.d.ts +82 -0
  573. package/dist/packages/core/src/components/barChartTypes.js +22 -0
  574. package/dist/packages/core/src/components/buttonTypes.d.ts +102 -0
  575. package/dist/packages/core/src/components/buttonTypes.js +1 -0
  576. package/dist/packages/core/src/components/tableTrackList.d.ts +9 -0
  577. package/dist/packages/core/src/components/tableTrackList.js +32 -0
  578. package/dist/packages/core/src/components/useAnchoredMenu.d.ts +28 -0
  579. package/dist/packages/core/src/components/useAnchoredMenu.js +72 -0
  580. package/dist/packages/core/src/components/useBarChartControl.d.ts +8 -0
  581. package/dist/packages/core/src/components/useBarChartControl.js +76 -0
  582. package/dist/packages/core/src/components/useCalendarMonth.d.ts +12 -0
  583. package/dist/packages/core/src/components/useCalendarMonth.js +50 -0
  584. package/dist/packages/core/src/components/useComboboxSuggestions.d.ts +22 -0
  585. package/dist/packages/core/src/components/useComboboxSuggestions.js +60 -0
  586. package/dist/packages/core/src/components/useFitScale.d.ts +16 -0
  587. package/dist/packages/core/src/components/useFitScale.js +43 -0
  588. package/dist/packages/core/src/components/useSoundCompassExam.d.ts +54 -0
  589. package/dist/packages/core/src/components/useSoundCompassExam.js +128 -0
  590. package/dist/packages/core/src/components/useToastLifecycle.d.ts +16 -0
  591. package/dist/packages/core/src/components/useToastLifecycle.js +140 -0
  592. package/dist/packages/core/src/components/wordTableLayout.d.ts +76 -0
  593. package/dist/packages/core/src/components/wordTableLayout.js +162 -0
  594. package/dist/packages/core/src/components.d.ts +314 -0
  595. package/dist/packages/core/src/components.js +232 -0
  596. package/dist/packages/core/src/context/I18nContext.d.ts +11 -0
  597. package/dist/packages/core/src/context/I18nContext.js +20 -0
  598. package/dist/packages/core/src/context/I18nProvider.d.ts +9 -0
  599. package/dist/packages/core/src/context/I18nProvider.js +15 -0
  600. package/dist/packages/core/src/context/WordDataContext.d.ts +25 -0
  601. package/dist/packages/core/src/context/WordDataContext.js +6 -0
  602. package/dist/packages/core/src/context/WordDataProvider.d.ts +5 -0
  603. package/dist/packages/core/src/context/WordDataProvider.js +5 -0
  604. package/dist/packages/core/src/hooks/bodyScrollLock.d.ts +5 -0
  605. package/dist/packages/core/src/hooks/bodyScrollLock.js +62 -0
  606. package/dist/packages/core/src/hooks/escStack.d.ts +2 -0
  607. package/dist/packages/core/src/hooks/escStack.js +38 -0
  608. package/dist/packages/core/src/hooks/useBackgroundUrl.d.ts +2 -0
  609. package/dist/packages/core/src/hooks/useBackgroundUrl.js +13 -0
  610. package/dist/packages/core/src/hooks/useCacheManagement.d.ts +34 -0
  611. package/dist/packages/core/src/hooks/useCacheManagement.js +107 -0
  612. package/dist/packages/core/src/hooks/useDailyTrainingSelection.d.ts +17 -0
  613. package/dist/packages/core/src/hooks/useDailyTrainingSelection.js +87 -0
  614. package/dist/packages/core/src/hooks/useDeviceManagement.d.ts +37 -0
  615. package/dist/packages/core/src/hooks/useDeviceManagement.js +40 -0
  616. package/dist/packages/core/src/hooks/useDocumentTitle.d.ts +22 -0
  617. package/dist/packages/core/src/hooks/useDocumentTitle.js +49 -0
  618. package/dist/packages/core/src/hooks/useEditableList.d.ts +20 -0
  619. package/dist/packages/core/src/hooks/useEditableList.js +73 -0
  620. package/dist/packages/core/src/hooks/useEscToClose.d.ts +19 -0
  621. package/dist/packages/core/src/hooks/useEscToClose.js +30 -0
  622. package/dist/packages/core/src/hooks/useFocusTrap.d.ts +19 -0
  623. package/dist/packages/core/src/hooks/useFocusTrap.js +50 -0
  624. package/dist/packages/core/src/hooks/useFontScale.d.ts +20 -0
  625. package/dist/packages/core/src/hooks/useFontScale.js +51 -0
  626. package/dist/packages/core/src/hooks/useHoverAnchor.d.ts +33 -0
  627. package/dist/packages/core/src/hooks/useHoverAnchor.js +49 -0
  628. package/dist/packages/core/src/hooks/useIcon.d.ts +7 -0
  629. package/dist/packages/core/src/hooks/useIcon.js +124 -0
  630. package/dist/packages/core/src/hooks/useLatestRef.d.ts +12 -0
  631. package/dist/packages/core/src/hooks/useLatestRef.js +17 -0
  632. package/dist/packages/core/src/hooks/useLucideIcon.d.ts +15 -0
  633. package/dist/packages/core/src/hooks/useLucideIcon.js +71 -0
  634. package/dist/packages/core/src/hooks/useMediaQuery.d.ts +17 -0
  635. package/dist/packages/core/src/hooks/useMediaQuery.js +45 -0
  636. package/dist/packages/core/src/hooks/usePagedList.d.ts +23 -0
  637. package/dist/packages/core/src/hooks/usePagedList.js +26 -0
  638. package/dist/packages/core/src/hooks/useParentBgTheme.d.ts +8 -0
  639. package/dist/packages/core/src/hooks/useParentBgTheme.js +18 -0
  640. package/dist/packages/core/src/hooks/usePasswordChange.d.ts +28 -0
  641. package/dist/packages/core/src/hooks/usePasswordChange.js +54 -0
  642. package/dist/packages/core/src/hooks/useRelativeDay.d.ts +12 -0
  643. package/dist/packages/core/src/hooks/useRelativeDay.js +30 -0
  644. package/dist/packages/core/src/hooks/useTablePaging.d.ts +46 -0
  645. package/dist/packages/core/src/hooks/useTablePaging.js +63 -0
  646. package/dist/packages/core/src/hooks/useToastState.d.ts +15 -0
  647. package/dist/packages/core/src/hooks/useToastState.js +29 -0
  648. package/dist/packages/core/src/hooks/useTrainingSessionLog.d.ts +7 -0
  649. package/dist/packages/core/src/hooks/useTrainingSessionLog.js +26 -0
  650. package/dist/packages/core/src/hooks/useTrainingTypeLabels.d.ts +16 -0
  651. package/dist/packages/core/src/hooks/useTrainingTypeLabels.js +25 -0
  652. package/dist/packages/core/src/hooks/useVisitAllPanel.d.ts +30 -0
  653. package/dist/packages/core/src/hooks/useVisitAllPanel.js +43 -0
  654. package/dist/packages/core/src/hooks/useVisitHistory.d.ts +38 -0
  655. package/dist/packages/core/src/hooks/useVisitHistory.js +59 -0
  656. package/dist/packages/core/src/hooks/useVisitSchedule.d.ts +31 -0
  657. package/dist/packages/core/src/hooks/useVisitSchedule.js +101 -0
  658. package/dist/packages/core/src/hooks/useWindowEvent.d.ts +11 -0
  659. package/dist/packages/core/src/hooks/useWindowEvent.js +27 -0
  660. package/dist/packages/core/src/hooks/useWordAttributeFilter.d.ts +70 -0
  661. package/dist/packages/core/src/hooks/useWordAttributeFilter.js +115 -0
  662. package/dist/packages/core/src/hooks/useWordDataStats.d.ts +22 -0
  663. package/dist/packages/core/src/hooks/useWordDataStats.js +40 -0
  664. package/dist/packages/core/src/hooks/useWordImage.d.ts +19 -0
  665. package/dist/packages/core/src/hooks/useWordImage.js +28 -0
  666. package/dist/packages/core/src/hooks/useWordMeanings.d.ts +39 -0
  667. package/dist/packages/core/src/hooks/useWordMeanings.js +62 -0
  668. package/dist/packages/core/src/hooks/useWordTrainingDataGeneration.d.ts +34 -0
  669. package/dist/packages/core/src/hooks/useWordTrainingDataGeneration.js +98 -0
  670. package/dist/packages/core/src/hooks/useWordTrainingFilter.d.ts +91 -0
  671. package/dist/packages/core/src/hooks/useWordTrainingFilter.js +549 -0
  672. package/dist/packages/core/src/hooks/wordTrainingFilterModel.d.ts +61 -0
  673. package/dist/packages/core/src/hooks/wordTrainingFilterModel.js +102 -0
  674. package/dist/packages/core/src/hooks.d.ts +27 -0
  675. package/dist/packages/core/src/hooks.js +28 -0
  676. package/dist/packages/core/src/i18n/index.d.ts +21 -0
  677. package/dist/packages/core/src/i18n/index.js +68 -0
  678. package/dist/packages/core/src/i18n/locales/en.json +4055 -0
  679. package/dist/packages/core/src/i18n/locales/ko.json +4052 -0
  680. package/dist/packages/core/src/icon/none.svg +4 -0
  681. package/dist/packages/core/src/icon/null.svg +3 -0
  682. package/dist/packages/core/src/index.d.ts +16 -0
  683. package/dist/packages/core/src/index.js +25 -0
  684. package/dist/packages/core/src/logo/Logo_APEB.svg +53 -0
  685. package/dist/packages/core/src/logo/Logo_APEB_black.svg +42 -0
  686. package/dist/packages/core/src/logo/Logo_APEB_white.svg +42 -0
  687. package/dist/packages/core/src/logo/Logo_HTP_kr.svg +21 -0
  688. package/dist/packages/core/src/logo/Logo_HTP_kr_black.svg +17 -0
  689. package/dist/packages/core/src/logo/Logo_HTP_kr_white.svg +17 -0
  690. package/dist/packages/core/src/logo/Logo_IHAB_en.svg +18 -0
  691. package/dist/packages/core/src/logo/Logo_IHAB_en_black.svg +14 -0
  692. package/dist/packages/core/src/logo/Logo_IHAB_en_white.svg +14 -0
  693. package/dist/packages/core/src/logo/Logo_IHAB_kr.svg +18 -0
  694. package/dist/packages/core/src/logo/Logo_IHAB_kr_black.svg +14 -0
  695. package/dist/packages/core/src/logo/Logo_IHAB_kr_white.svg +14 -0
  696. package/dist/packages/core/src/logo/Logo_SDS_kr.svg +22 -0
  697. package/dist/packages/core/src/logo/Logo_SDS_kr_black.svg +18 -0
  698. package/dist/packages/core/src/logo/Logo_SDS_kr_white.svg +18 -0
  699. package/dist/packages/core/src/logo/Logo_speechearManager_kr.svg +20 -0
  700. package/dist/packages/core/src/logo/Logo_speechearManager_kr_black.svg +21 -0
  701. package/dist/packages/core/src/logo/Logo_speechearManager_kr_textWhite.svg +45 -0
  702. package/dist/packages/core/src/logo/Logo_speechearManager_kr_white.svg +21 -0
  703. package/dist/packages/core/src/logo/Logo_speechear_kr.svg +17 -0
  704. package/dist/packages/core/src/logo/Logo_speechear_kr_black.svg +16 -0
  705. package/dist/packages/core/src/logo/Logo_speechear_kr_textWhite.svg +42 -0
  706. package/dist/packages/core/src/logo/Logo_speechear_kr_white.svg +16 -0
  707. package/dist/packages/core/src/logo/Symbol_APEB.svg +34 -0
  708. package/dist/packages/core/src/logo/Symbol_APEB_black.svg +15 -0
  709. package/dist/packages/core/src/logo/Symbol_APEB_white.svg +15 -0
  710. package/dist/packages/core/src/logo/Symbol_HTP.svg +14 -0
  711. package/dist/packages/core/src/logo/Symbol_HTP_black.svg +10 -0
  712. package/dist/packages/core/src/logo/Symbol_HTP_white.svg +10 -0
  713. package/dist/packages/core/src/logo/Symbol_IHAB.svg +14 -0
  714. package/dist/packages/core/src/logo/Symbol_IHAB_black.svg +10 -0
  715. package/dist/packages/core/src/logo/Symbol_IHAB_white.svg +10 -0
  716. package/dist/packages/core/src/logo/Symbol_SDS.svg +14 -0
  717. package/dist/packages/core/src/logo/Symbol_SDS_black.svg +10 -0
  718. package/dist/packages/core/src/logo/Symbol_SDS_white.svg +10 -0
  719. package/dist/packages/core/src/logo/Symbol_speechear.svg +15 -0
  720. package/dist/packages/core/src/logo/Symbol_speechear_black.svg +16 -0
  721. package/dist/packages/core/src/logo/Symbol_speechear_white.svg +16 -0
  722. package/dist/packages/core/src/logo/qr_speechear.svg +1 -0
  723. package/dist/packages/core/src/sounds/noiseAssets.d.ts +6 -0
  724. package/dist/packages/core/src/sounds/noiseAssets.js +24 -0
  725. package/dist/packages/core/src/styles.css +144 -0
  726. package/dist/packages/core/src/tokens.css +407 -0
  727. package/dist/packages/core/src/types/audio.d.ts +11 -0
  728. package/dist/packages/core/src/types/audio.js +1 -0
  729. package/dist/packages/core/src/types/device.d.ts +10 -0
  730. package/dist/packages/core/src/types/device.js +1 -0
  731. package/dist/packages/core/src/types/filterPanel.d.ts +63 -0
  732. package/dist/packages/core/src/types/filterPanel.js +8 -0
  733. package/dist/packages/core/src/types/geometry.d.ts +14 -0
  734. package/dist/packages/core/src/types/geometry.js +1 -0
  735. package/dist/packages/core/src/types/training.d.ts +131 -0
  736. package/dist/packages/core/src/types/training.js +1 -0
  737. package/dist/packages/core/src/types/wordSearch.d.ts +49 -0
  738. package/dist/packages/core/src/types/wordSearch.js +1 -0
  739. package/dist/packages/core/src/types.d.ts +3 -0
  740. package/dist/packages/core/src/types.js +1 -0
  741. package/dist/packages/core/src/utils/CategoryData.d.ts +91 -0
  742. package/dist/packages/core/src/utils/CategoryData.js +57 -0
  743. package/dist/packages/core/src/utils/array.d.ts +20 -0
  744. package/dist/packages/core/src/utils/array.js +36 -0
  745. package/dist/packages/core/src/utils/assets.d.ts +41 -0
  746. package/dist/packages/core/src/utils/assets.js +62 -0
  747. package/dist/packages/core/src/utils/audioMeter.d.ts +19 -0
  748. package/dist/packages/core/src/utils/audioMeter.js +70 -0
  749. package/dist/packages/core/src/utils/categories.d.ts +67 -0
  750. package/dist/packages/core/src/utils/categories.js +70 -0
  751. package/dist/packages/core/src/utils/clipboard.d.ts +10 -0
  752. package/dist/packages/core/src/utils/clipboard.js +46 -0
  753. package/dist/packages/core/src/utils/companyTypes.d.ts +2 -0
  754. package/dist/packages/core/src/utils/companyTypes.js +6 -0
  755. package/dist/packages/core/src/utils/csv.d.ts +22 -0
  756. package/dist/packages/core/src/utils/csv.js +35 -0
  757. package/dist/packages/core/src/utils/cx.d.ts +7 -0
  758. package/dist/packages/core/src/utils/cx.js +9 -0
  759. package/dist/packages/core/src/utils/dailySelectionUtils.d.ts +15 -0
  760. package/dist/packages/core/src/utils/dailySelectionUtils.js +68 -0
  761. package/dist/packages/core/src/utils/date.d.ts +86 -0
  762. package/dist/packages/core/src/utils/date.js +171 -0
  763. package/dist/packages/core/src/utils/deviceKind.d.ts +13 -0
  764. package/dist/packages/core/src/utils/deviceKind.js +19 -0
  765. package/dist/packages/core/src/utils/encoding.d.ts +26 -0
  766. package/dist/packages/core/src/utils/encoding.js +33 -0
  767. package/dist/packages/core/src/utils/errorMessage.d.ts +44 -0
  768. package/dist/packages/core/src/utils/errorMessage.js +63 -0
  769. package/dist/packages/core/src/utils/fontScale.d.ts +10 -0
  770. package/dist/packages/core/src/utils/fontScale.js +28 -0
  771. package/dist/packages/core/src/utils/format.d.ts +48 -0
  772. package/dist/packages/core/src/utils/format.js +122 -0
  773. package/dist/packages/core/src/utils/gameScoreLogger.d.ts +48 -0
  774. package/dist/packages/core/src/utils/gameScoreLogger.js +42 -0
  775. package/dist/packages/core/src/utils/getTrainingData.d.ts +61 -0
  776. package/dist/packages/core/src/utils/getTrainingData.js +156 -0
  777. package/dist/packages/core/src/utils/imageConfig.d.ts +48 -0
  778. package/dist/packages/core/src/utils/imageConfig.js +159 -0
  779. package/dist/packages/core/src/utils/josa.d.ts +29 -0
  780. package/dist/packages/core/src/utils/josa.js +103 -0
  781. package/dist/packages/core/src/utils/koreanPronunciation.d.ts +16 -0
  782. package/dist/packages/core/src/utils/koreanPronunciation.js +223 -0
  783. package/dist/packages/core/src/utils/koreanSyllable.d.ts +174 -0
  784. package/dist/packages/core/src/utils/koreanSyllable.js +654 -0
  785. package/dist/packages/core/src/utils/lucideIconSet.d.ts +16 -0
  786. package/dist/packages/core/src/utils/lucideIconSet.js +350 -0
  787. package/dist/packages/core/src/utils/lucideLoader.d.ts +44 -0
  788. package/dist/packages/core/src/utils/lucideLoader.js +76 -0
  789. package/dist/packages/core/src/utils/noiseSettingsStore.d.ts +22 -0
  790. package/dist/packages/core/src/utils/noiseSettingsStore.js +36 -0
  791. package/dist/packages/core/src/utils/phonemeConvert.d.ts +9 -0
  792. package/dist/packages/core/src/utils/phonemeConvert.js +53 -0
  793. package/dist/packages/core/src/utils/phonemeGroups.d.ts +22 -0
  794. package/dist/packages/core/src/utils/phonemeGroups.js +29 -0
  795. package/dist/packages/core/src/utils/phonemePairSearch.d.ts +22 -0
  796. package/dist/packages/core/src/utils/phonemePairSearch.js +583 -0
  797. package/dist/packages/core/src/utils/phonemePairSearchTypes.d.ts +46 -0
  798. package/dist/packages/core/src/utils/phonemePairSearchTypes.js +1 -0
  799. package/dist/packages/core/src/utils/planFeatures.d.ts +61 -0
  800. package/dist/packages/core/src/utils/planFeatures.js +168 -0
  801. package/dist/packages/core/src/utils/pronunciationConfig.d.ts +7 -0
  802. package/dist/packages/core/src/utils/pronunciationConfig.js +21 -0
  803. package/dist/packages/core/src/utils/savedWordTables.d.ts +18 -0
  804. package/dist/packages/core/src/utils/savedWordTables.js +70 -0
  805. package/dist/packages/core/src/utils/sortValue.d.ts +24 -0
  806. package/dist/packages/core/src/utils/sortValue.js +26 -0
  807. package/dist/packages/core/src/utils/speak.d.ts +7 -0
  808. package/dist/packages/core/src/utils/speak.js +35 -0
  809. package/dist/packages/core/src/utils/storage.d.ts +102 -0
  810. package/dist/packages/core/src/utils/storage.js +118 -0
  811. package/dist/packages/core/src/utils/theme.d.ts +11 -0
  812. package/dist/packages/core/src/utils/theme.js +28 -0
  813. package/dist/packages/core/src/utils/trainingItemResults.d.ts +60 -0
  814. package/dist/packages/core/src/utils/trainingItemResults.js +72 -0
  815. package/dist/packages/core/src/utils/trainingLogger.d.ts +58 -0
  816. package/dist/packages/core/src/utils/trainingLogger.js +50 -0
  817. package/dist/packages/core/src/utils/trainingPalette.d.ts +12 -0
  818. package/dist/packages/core/src/utils/trainingPalette.js +12 -0
  819. package/dist/packages/core/src/utils/ttsConfig.d.ts +78 -0
  820. package/dist/packages/core/src/utils/ttsConfig.js +89 -0
  821. package/dist/packages/core/src/utils/ttsResolver.d.ts +17 -0
  822. package/dist/packages/core/src/utils/ttsResolver.js +56 -0
  823. package/dist/packages/core/src/utils/wordContrast.d.ts +54 -0
  824. package/dist/packages/core/src/utils/wordContrast.js +198 -0
  825. package/dist/packages/core/src/utils/wordPairIndex.d.ts +26 -0
  826. package/dist/packages/core/src/utils/wordPairIndex.js +194 -0
  827. package/dist/packages/core/src/utils/wordPool.d.ts +34 -0
  828. package/dist/packages/core/src/utils/wordPool.js +20 -0
  829. package/dist/packages/core/src/utils/wordSuggestionPolicy.d.ts +55 -0
  830. package/dist/packages/core/src/utils/wordSuggestionPolicy.js +97 -0
  831. package/dist/packages/core/src/utils/wordTrainingGenerators.d.ts +122 -0
  832. package/dist/packages/core/src/utils/wordTrainingGenerators.js +560 -0
  833. package/dist/packages/core/src/utils/wordTrainingGroups.d.ts +10 -0
  834. package/dist/packages/core/src/utils/wordTrainingGroups.js +69 -0
  835. package/dist/packages/core/src/utils/wordTrainingPool.d.ts +51 -0
  836. package/dist/packages/core/src/utils/wordTrainingPool.js +436 -0
  837. package/dist/packages/core/src/utils/wordTrainingRuntime.d.ts +38 -0
  838. package/dist/packages/core/src/utils/wordTrainingRuntime.js +641 -0
  839. package/dist/packages/core/src/utils/wordTrainingRuntimeTypes.d.ts +89 -0
  840. package/dist/packages/core/src/utils/wordTrainingRuntimeTypes.js +77 -0
  841. package/dist/packages/core/src/utils.d.ts +57 -0
  842. package/dist/packages/core/src/utils.js +46 -0
  843. package/dist/tsdoc-metadata.json +11 -0
  844. package/dist/types.cjs.js +1 -0
  845. package/dist/types.esm.js +1 -0
  846. package/dist/utils.cjs.js +20 -0
  847. package/dist/utils.esm.js +20 -0
  848. package/package.json +171 -0
@@ -0,0 +1,163 @@
1
+ /**
2
+ * 대면 훈련에서 **무엇을 틀렸는지** 모아 읽는다. 화면도 통신도 없다.
3
+ *
4
+ * 단어표 채점(`wordScoreStats`)이 종이로 한 것을 세는 자리라면, 여기는 아이가 앱에서
5
+ * 푼 것을 세는 자리다. 치료사가 묻는 것은 같다 — *계속 걸리는 것이 무엇인가*,
6
+ * *다음 시간에 무엇을 볼까*. 그래서 셈의 결도 같게 맞췄다.
7
+ *
8
+ * ── 문항 행만 센다 ──
9
+ * `customer_training_result` 에는 세 가지가 섞여 있다. 문항 하나(`kind:'item'`),
10
+ * 판 전체 요약(`kind:'summary'`), 세션 시간(`kind:'time'`). 뒤의 둘은 `is_correct` 가
11
+ * 비어 있다. 그것을 '틀림' 으로 세면 한 판 할 때마다 오답이 두 개씩 늘어난다.
12
+ *
13
+ * ── 글자가 없으면 빼되, 뺐다고 말한다 ──
14
+ * 문항에 식별자를 남기기 시작한 것은 2026-08-30 부터다. 그 전 기록은 `item_title` 이
15
+ * 비어 있어 **무엇을 틀렸는지 보여 줄 수가 없다.** 조용히 빼면 화면의 수가 전부인 줄
16
+ * 알게 되므로 몇 건을 뺐는지 함께 돌려준다.
17
+ */
18
+ /**
19
+ * @public 문항별로 모아 **약한 것부터** 늘어놓는다.
20
+ *
21
+ * 정렬은 세 겹이다. 정답률이 낮은 것이 먼저이되, **같은 정답률이면 여러 번 푼 것을
22
+ * 앞에 둔다** — 한 번 틀린 것과 다섯 번 내리 틀린 것은 무게가 다르다. 그래도 같으면
23
+ * 글자순으로 못 박는다(그러지 않으면 다시 읽을 때마다 차례가 흔들려 보던 줄을 놓친다).
24
+ */
25
+ export function summarizeMisses(records) {
26
+ const 모음 = new Map();
27
+ let counted = 0;
28
+ let skippedNoTitle = 0;
29
+ /* 최근 것을 알려면 시간순으로 훑어야 한다. 서버는 최신순으로 주지만 여기서 다시
30
+ 정렬한다 — 부르는 쪽의 차례에 기대면 그쪽이 바뀔 때 조용히 어긋난다. */
31
+ const 시간순 = [...records].sort((a, b) => a.answeredAt.localeCompare(b.answeredAt));
32
+ for (const r of 시간순) {
33
+ // 요약·시간 행은 문항이 아니다. 틀림으로 세면 한 판마다 오답이 늘어난다.
34
+ if (r.isCorrect == null)
35
+ continue;
36
+ const title = r.itemTitle?.trim();
37
+ if (!title) {
38
+ skippedNoTitle++;
39
+ continue;
40
+ }
41
+ counted++;
42
+ const id = r.itemId?.trim() || title;
43
+ const key = `${r.trainingType}|${id}`;
44
+ const cur = 모음.get(key) ?? {
45
+ trainingType: r.trainingType, itemId: id, title,
46
+ tried: 0, wrong: 0,
47
+ latestCorrect: r.isCorrect, latestAt: r.answeredAt, lastSelected: r.selected,
48
+ setIds: [],
49
+ };
50
+ cur.tried++;
51
+ if (!r.isCorrect)
52
+ cur.wrong++;
53
+ cur.title = title; // 지문이 고쳐졌으면 마지막에 보인 글자를 쓴다
54
+ cur.latestCorrect = r.isCorrect;
55
+ cur.latestAt = r.answeredAt;
56
+ cur.lastSelected = r.selected;
57
+ /* 세트는 **최근 것이 앞**이어야 한다 — 다음 훈련을 짤 때 옛 세트를 먼저 집으면
58
+ 그 사이 세트가 바뀌었을 수 있다. 시간순으로 훑고 있으니 앞에 넣는다. */
59
+ if (r.setId && !cur.setIds.includes(r.setId))
60
+ cur.setIds.unshift(r.setId);
61
+ 모음.set(key, cur);
62
+ }
63
+ const items = [...모음.entries()].map(([key, v]) => ({
64
+ key,
65
+ trainingType: v.trainingType,
66
+ itemId: v.itemId,
67
+ title: v.title,
68
+ tried: v.tried,
69
+ wrong: v.wrong,
70
+ rate: v.tried === 0 ? 0 : (v.tried - v.wrong) / v.tried,
71
+ latestCorrect: v.latestCorrect,
72
+ latestAt: v.latestAt,
73
+ lastSelected: v.lastSelected,
74
+ setIds: v.setIds,
75
+ }));
76
+ items.sort((a, b) => a.rate - b.rate || b.tried - a.tried || a.title.localeCompare(b.title));
77
+ return { items, counted, skippedNoTitle };
78
+ }
79
+ /**
80
+ * @public 다음에 무엇을 볼지.
81
+ *
82
+ * **아직 잡히지 않은 문항**을 고른다 — 마지막에 틀린 것들. 정답률이 낮아도 지난번에
83
+ * 맞혔다면 지금 급한 것이 아니고, 정답률이 높아도 방금 틀렸으면 다시 봐야 한다.
84
+ * "지난번에 어땠나"가 "여태 어땠나"보다 다음 시간을 정한다.
85
+ *
86
+ * `limit` 은 한 시간에 다룰 만한 양이다. 스무 개를 늘어놓으면 고르는 일이 다시 숙제가 된다.
87
+ *
88
+ * **이 저장소는 더 이상 이것으로 화면을 그리지 않는다.** 잘라 주는 편리함이 그대로
89
+ * '조용한 축소'가 됐기 때문이다 — 스물다섯 개가 밀려 있어도 화면에는 여덟만 뜨고,
90
+ * 세는 수까지 여덟로 적히면 나머지는 없는 것이 된다(실제로 그렇게 있었다). 지금은
91
+ * 못 잡은 것을 **전부** 표로 늘어놓고 쪽넘김을 둔다. 다음 훈련에 담을 양을 고르는
92
+ * 셈에는 여전히 쓸 수 있지만, **늘어놓는 데에는 쓰지 않는다.**
93
+ */
94
+ export function nextMisses(items, limit = 8) {
95
+ return items.filter(i => !i.latestCorrect).slice(0, limit);
96
+ }
97
+ /**
98
+ * @public 유형별로 가른다 — 다음 훈련 세트는 **한 유형 안에서** 짜야 하기 때문이다.
99
+ *
100
+ * 못 잡은 것이 많은 유형이 먼저. 같으면 유형 키로 갈라 차례를 못 박는다.
101
+ */
102
+ export function missesByType(items) {
103
+ const 모음 = new Map();
104
+ for (const i of items) {
105
+ const arr = 모음.get(i.trainingType) ?? [];
106
+ arr.push(i);
107
+ 모음.set(i.trainingType, arr);
108
+ }
109
+ const out = [...모음.entries()].map(([trainingType, list]) => ({
110
+ trainingType,
111
+ items: list,
112
+ pending: list.filter(i => !i.latestCorrect).length,
113
+ }));
114
+ out.sort((a, b) => b.pending - a.pending || a.trainingType.localeCompare(b.trainingType));
115
+ return out;
116
+ }
117
+ /**
118
+ * @public 훈련 플랜(`managed_training_set`)의 `part1~4` 에 자리가 있는 유형.
119
+ *
120
+ * 플랜은 문장 훈련 넷만 담는다. **단어 유형은 여기 자리가 없고** 그릇이 아예 다르다
121
+ * (`word_training_card.set_ids`). 그래서 다음 훈련을 짤 때 둘을 갈라야 한다.
122
+ */
123
+ export const SENTENCE_TRAINING_TYPES = ['LISTEN_IN_NOISE', 'SHORT_STORY', 'LONG_STORY', 'ORDERING_SENTENCE'];
124
+ /**
125
+ * @public 못 잡은 문항들이 **어느 세트에 들어 있었는지** 모아 다음 훈련거리를 짠다.
126
+ * 단어표의 복습표와 같은 결이다 — 틀린 것만 다시 돌린다.
127
+ *
128
+ * ── 세트는 **가장 최근 것 하나만** ──
129
+ * 같은 문항이 여러 세트에 있을 수 있는데 전부 담으면, 그 세트들에 든 *맞힌* 문항까지
130
+ * 딸려 와 결국 원래 훈련을 통째로 다시 하게 된다. 치료사가 마지막에 쓴 세트가 지금
131
+ * 아이에게 맞춰진 것이므로 그것을 쓴다(`setIds[0]` 이 최근 것이다).
132
+ *
133
+ * ── 세트가 안 남은 문항은 담지 못한다 ──
134
+ * 진입점이 세트 uuid 를 넘기기 시작한 것은 2026-08-30 부터다. 그 전 기록은 문항은
135
+ * 남았는데 **어느 세트였는지가 없어** 다시 꺼낼 방법이 없다. 조용히 빼면 "다섯 개가
136
+ * 밀렸다"고 해 놓고 두 개짜리 세트가 나온다 — 몇 개를 못 담았는지 함께 돌려준다.
137
+ */
138
+ export function reviewSetPlan(items) {
139
+ const 모음 = new Map();
140
+ let noSet = 0;
141
+ for (const i of items) {
142
+ if (i.latestCorrect)
143
+ continue; // 지난번에 잡혔으면 다시 낼 것이 아니다
144
+ const setId = i.setIds[0];
145
+ if (!setId) {
146
+ noSet++;
147
+ continue;
148
+ }
149
+ const key = `${i.trainingType}|${setId}`;
150
+ const cur = 모음.get(key) ?? { setId, trainingType: i.trainingType, pending: 0 };
151
+ cur.pending++;
152
+ 모음.set(key, cur);
153
+ }
154
+ /* 못 잡은 것이 많은 세트가 먼저. 같으면 유형·uuid 로 갈라 차례를 못 박는다 —
155
+ 같은 자료에 두 번 물어 순서가 다르면 사람은 값이 바뀐 줄 안다. */
156
+ const 정렬 = (a, b) => b.pending - a.pending || a.trainingType.localeCompare(b.trainingType) || a.setId.localeCompare(b.setId);
157
+ const all = [...모음.values()];
158
+ return {
159
+ sentence: all.filter(r => SENTENCE_TRAINING_TYPES.includes(r.trainingType)).sort(정렬),
160
+ word: all.filter(r => !SENTENCE_TRAINING_TYPES.includes(r.trainingType)).sort(정렬),
161
+ noSet,
162
+ };
163
+ }
@@ -0,0 +1,108 @@
1
+ /** @public */
2
+ export declare function normalizeCats(item: unknown): {
3
+ c0: string;
4
+ c1: string;
5
+ };
6
+ /** @public */
7
+ export declare function closeTrainingPopup(): void;
8
+ /**
9
+ * Resolves the onBack handler from spread props.
10
+ * Falls back: props.onBack → props.onClose → closeTrainingPopup
11
+ * @public
12
+ */
13
+ export declare function resolveOnBack(rest: Record<string, unknown>): () => void;
14
+ /** @public */
15
+ export declare function splitTrainingVariants(value: unknown): string[];
16
+ /** @public */
17
+ export declare function resolveTrainingPopupMeta(trainingData: Record<string, unknown> | null | undefined, depth: string | string[] | null | undefined, fallbackTitle: string): {
18
+ title: string;
19
+ label: string;
20
+ depth: string | string[] | null | undefined;
21
+ icon: string | undefined;
22
+ wrapperStyle: {
23
+ "--t-item-fg": string;
24
+ } | undefined;
25
+ iconTooltip: string | undefined;
26
+ };
27
+ /** @public */
28
+ export declare function getPayloadTimestamp(payload: unknown): number;
29
+ /** @public */
30
+ export declare function resolveTrainingItems(trainingData: unknown): unknown[];
31
+ interface CreateTrainingScenarioParams {
32
+ idPrefix: string;
33
+ trainingData?: Record<string, unknown> | null;
34
+ depth?: string | string[] | null;
35
+ fallbackTitle?: string;
36
+ pages?: unknown[];
37
+ emptyMessage?: string;
38
+ buildResults?: (pageAnswers: Record<string, unknown>) => unknown;
39
+ metaPatch?: ((meta: ReturnType<typeof resolveTrainingPopupMeta>) => Partial<ReturnType<typeof resolveTrainingPopupMeta>>) | Partial<ReturnType<typeof resolveTrainingPopupMeta>>;
40
+ }
41
+ /** @public */
42
+ export declare function createTrainingScenario({ idPrefix, trainingData, depth, fallbackTitle, pages, emptyMessage, buildResults, metaPatch, }: CreateTrainingScenarioParams): {
43
+ id: string;
44
+ meta: {
45
+ title: string;
46
+ label: string;
47
+ depth: string | string[] | null | undefined;
48
+ icon: string | undefined;
49
+ wrapperStyle: {
50
+ "--t-item-fg": string;
51
+ } | undefined;
52
+ iconTooltip: string | undefined;
53
+ };
54
+ pages: unknown[];
55
+ emptyMessage: string | undefined;
56
+ buildResults: ((pageAnswers: Record<string, unknown>) => unknown) | undefined;
57
+ };
58
+ /** @public */
59
+ export declare function toTrainingText(value: unknown): string;
60
+ /** @public */
61
+ export declare function getSelectedFromPayload(payload: unknown): unknown;
62
+ /** @public */
63
+ export declare function getSelectedText(selected: unknown, choices?: unknown[]): string | undefined;
64
+ /** @public */
65
+ export declare function getStepPayload(pageAnswers: unknown, stepIndex: number | string): unknown;
66
+ /** @public */
67
+ export declare function getSteppedPayload(pageAnswers: unknown, itemIndex: number, stride: number, offset: number): unknown;
68
+ interface IsSelectionCorrectParams {
69
+ payload?: unknown;
70
+ selected?: unknown;
71
+ choices?: unknown[];
72
+ correctAnswers?: unknown[];
73
+ }
74
+ /** @public */
75
+ export declare function isSelectionCorrect({ payload, selected, choices, correctAnswers }: IsSelectionCorrectParams): boolean | undefined;
76
+ interface NoiseContext {
77
+ sentence?: string;
78
+ contextCode?: string;
79
+ }
80
+ /** @public */
81
+ export declare function deriveNoiseContexts(trainingData: Record<string, unknown> | null | undefined): NoiseContext[];
82
+ /** {@link buildTwoStepPickResults} 가 내는 한 문제의 채점 결과. */
83
+ interface TwoStepPickResult {
84
+ question: unknown;
85
+ choices: unknown[];
86
+ selected: unknown;
87
+ selectedText: unknown;
88
+ correct: boolean | undefined;
89
+ answer: unknown;
90
+ }
91
+ /**
92
+ * @public "듣고 → 보기 카드 고르기" 두 단계짜리 훈련의 채점.
93
+ *
94
+ * 일치하는 단어 맞히기·한 음절 포함 단어 맞히기·첫 음절이 같은 단어 맞히기 셋이
95
+ * 한 글자도 다르지 않은 채점을 한 벌씩 들고 있었다. 정말 다른 것은 **결과지에 무엇을
96
+ * 문제로 적을 것인가** 하나뿐이라(들려준 낱말이냐, 음절이냐, 원본 낱말이냐), 그것만
97
+ * 밖에서 받는다.
98
+ *
99
+ * 정답은 answerIndex 가 있으면 보기에서 그 자리를 쓰고, 없으면 item.answer 를 쓴다.
100
+ *
101
+ * @param questionOf - 결과지의 '문제' 칸에 적을 것을 항목에서 뽑는다
102
+ */
103
+ export declare function buildTwoStepPickResults(items: unknown[] | undefined, pageAnswers: Record<string, unknown>, questionOf: (item: Record<string, unknown>) => unknown): {
104
+ score: number;
105
+ results: TwoStepPickResult[];
106
+ answers: TwoStepPickResult[];
107
+ };
108
+ export {};
@@ -0,0 +1,226 @@
1
+ 'use client';
2
+ import { getTopicTypes } from "../../utils/categories";
3
+ /** @public */
4
+ export function normalizeCats(item) {
5
+ if (!item || typeof item !== 'object')
6
+ return { c0: '', c1: '' };
7
+ const it = item;
8
+ const grp = it.group;
9
+ const raw = it.raw;
10
+ const c0 = (it.category_0 || it.category_main_code || it.category_main ||
11
+ grp?.category_0 || grp?.category_main_code || raw?.category_main_code || '').toString().toUpperCase();
12
+ const c1 = (it.category_1 || it.category_sub_code || it.category_sub ||
13
+ grp?.category_1 || grp?.category_sub_code || raw?.category_sub_code || '').toString().toUpperCase();
14
+ return { c0, c1 };
15
+ }
16
+ /** @public */
17
+ export function closeTrainingPopup() {
18
+ if (typeof window !== "undefined") {
19
+ window.dispatchEvent(new CustomEvent("speechear.popup.close"));
20
+ }
21
+ }
22
+ /**
23
+ * Resolves the onBack handler from spread props.
24
+ * Falls back: props.onBack → props.onClose → closeTrainingPopup
25
+ * @public
26
+ */
27
+ export function resolveOnBack(rest) {
28
+ return (rest.onBack ?? rest.onClose ?? closeTrainingPopup);
29
+ }
30
+ /** @public */
31
+ export function splitTrainingVariants(value) {
32
+ if (!value && value !== 0)
33
+ return [];
34
+ if (Array.isArray(value)) {
35
+ return value.flatMap((entry) => typeof entry === "string"
36
+ ? entry.split("|").map((item) => item.trim()).filter(Boolean)
37
+ : entry || entry === 0
38
+ ? [String(entry)]
39
+ : []);
40
+ }
41
+ if (typeof value === "string") {
42
+ return value.split("|").map((item) => item.trim()).filter(Boolean);
43
+ }
44
+ return [String(value)];
45
+ }
46
+ /** @public */
47
+ export function resolveTrainingPopupMeta(trainingData, depth, fallbackTitle) {
48
+ const td = trainingData;
49
+ const title = td?.title ||
50
+ td?.name ||
51
+ (Array.isArray(depth) ? depth[depth.length - 1] : undefined) ||
52
+ fallbackTitle ||
53
+ "훈련";
54
+ const topicTypes = getTopicTypes();
55
+ const category = topicTypes.find((entry) => entry.key === (td?.category_0 || td?.category_main_code));
56
+ const subCategory = category?.subs?.find((entry) => entry.key === (td?.category_1 || td?.category_sub_code));
57
+ return {
58
+ title,
59
+ label: td?.title || title,
60
+ depth,
61
+ icon: category?.icon,
62
+ wrapperStyle: category?.color
63
+ ? { "--t-item-fg": category.color }
64
+ : undefined,
65
+ iconTooltip: [category?.label, subCategory?.label].filter(Boolean).join(" / ") || undefined,
66
+ };
67
+ }
68
+ /** @public */
69
+ export function getPayloadTimestamp(payload) {
70
+ if (payload && typeof payload === "object" && typeof payload.__ts === "number") {
71
+ return payload.__ts;
72
+ }
73
+ return 0;
74
+ }
75
+ /** @public */
76
+ export function resolveTrainingItems(trainingData) {
77
+ const td = trainingData;
78
+ if (Array.isArray(td?.items))
79
+ return td.items;
80
+ if (Array.isArray(trainingData))
81
+ return trainingData;
82
+ return trainingData ? [trainingData] : [];
83
+ }
84
+ /** @public */
85
+ export function createTrainingScenario({ idPrefix, trainingData, depth, fallbackTitle = "훈련", pages = [],
86
+ /* 기본값을 두지 않는다. 화면은 `scenario?.emptyMessage || t('training.noQuestions',
87
+ '문제가 없습니다.')` 로 그리는데, 여기서 한국어를 채워 두면 그 뒤 갈래가 **한 번도
88
+ 안 쓰인다** — (이 예시도 한때 관문을 빨갛게 만들었다. 이제 i18n 지킴이가 주석을
89
+ 걷어 내므로 그대로 적어 둔다.)
90
+ 영어로 쓰는 사람도 그 자리만 한국어를 본다. 주면 그것을 쓰고, 안 주면 비워 둬
91
+ 무슨 말로 보여 줄지는 화면이 정하게 한다. */
92
+ emptyMessage, buildResults, metaPatch, }) {
93
+ const baseMeta = resolveTrainingPopupMeta(trainingData, depth, fallbackTitle);
94
+ const extraMeta = typeof metaPatch === "function" ? (metaPatch(baseMeta) || {}) : (metaPatch || {});
95
+ const suffix = trainingData?.id || trainingData?.title || pages.length;
96
+ return {
97
+ id: `${idPrefix}:${suffix}`,
98
+ meta: {
99
+ ...baseMeta,
100
+ ...extraMeta,
101
+ },
102
+ pages,
103
+ emptyMessage,
104
+ buildResults,
105
+ };
106
+ }
107
+ /** @public */
108
+ export function toTrainingText(value) {
109
+ if (typeof value === "string")
110
+ return value;
111
+ if (value && typeof value === "object") {
112
+ const v = value;
113
+ return (v.context || v.sentence || v.question || "") || "";
114
+ }
115
+ return "";
116
+ }
117
+ /** @public */
118
+ export function getSelectedFromPayload(payload) {
119
+ if (payload && typeof payload === "object") {
120
+ const p = payload;
121
+ if (Array.isArray(p.selectedValues))
122
+ return p.selectedValues;
123
+ if (p.selectedValue !== undefined)
124
+ return p.selectedValue;
125
+ if (p.selectedIndex !== undefined)
126
+ return p.selectedIndex;
127
+ if (p.value !== undefined)
128
+ return p.value;
129
+ }
130
+ return payload;
131
+ }
132
+ /** @public */
133
+ export function getSelectedText(selected, choices = []) {
134
+ if (Array.isArray(selected))
135
+ return selected.join(", ");
136
+ if (typeof selected === "number" && Array.isArray(choices))
137
+ return String(choices[selected] ?? '');
138
+ if (typeof selected === "string")
139
+ return selected;
140
+ return undefined;
141
+ }
142
+ /** @public */
143
+ export function getStepPayload(pageAnswers, stepIndex) {
144
+ if (!pageAnswers || typeof pageAnswers !== "object")
145
+ return undefined;
146
+ return pageAnswers[`step-${stepIndex}`];
147
+ }
148
+ /** @public */
149
+ export function getSteppedPayload(pageAnswers, itemIndex, stride, offset) {
150
+ return getStepPayload(pageAnswers, itemIndex * stride + offset);
151
+ }
152
+ /** @public */
153
+ export function isSelectionCorrect({ payload, selected, choices = [], correctAnswers = [] }) {
154
+ if (payload && typeof payload === "object") {
155
+ const p = payload;
156
+ if (Array.isArray(p.selectedValues)) {
157
+ return (correctAnswers.every((entry) => p.selectedValues.includes(entry)) &&
158
+ p.selectedValues.every((entry) => correctAnswers.includes(entry)));
159
+ }
160
+ if (typeof p.correct === "boolean")
161
+ return p.correct;
162
+ }
163
+ if (!correctAnswers.length)
164
+ return undefined;
165
+ if (typeof selected === "number" && Array.isArray(choices) && choices.length) {
166
+ return correctAnswers.some((entry) => String(entry) === String(choices[selected]));
167
+ }
168
+ if (typeof selected !== "undefined") {
169
+ return correctAnswers.some((entry) => String(entry) === String(selected));
170
+ }
171
+ return undefined;
172
+ }
173
+ /** @public */
174
+ export function deriveNoiseContexts(trainingData) {
175
+ if (!trainingData)
176
+ return [];
177
+ if (Array.isArray(trainingData.items)) {
178
+ return trainingData.items.map((item) => {
179
+ const it = item;
180
+ return typeof item === "string"
181
+ ? { sentence: item }
182
+ : { sentence: (it.context || it.sentence || ""), contextCode: (it.contextCode || it.context_code) };
183
+ });
184
+ }
185
+ if (Array.isArray(trainingData.sentences)) {
186
+ return trainingData.sentences.map((sentence) => {
187
+ const s = sentence;
188
+ return typeof sentence === "string"
189
+ ? { sentence }
190
+ : { sentence: (s.sentence || s.context || ""), contextCode: s.contextCode };
191
+ });
192
+ }
193
+ if (Array.isArray(trainingData.contexts))
194
+ return trainingData.contexts;
195
+ if (trainingData.contextCode)
196
+ return [{ contextCode: trainingData.contextCode }];
197
+ return [];
198
+ }
199
+ /**
200
+ * @public "듣고 → 보기 카드 고르기" 두 단계짜리 훈련의 채점.
201
+ *
202
+ * 일치하는 단어 맞히기·한 음절 포함 단어 맞히기·첫 음절이 같은 단어 맞히기 셋이
203
+ * 한 글자도 다르지 않은 채점을 한 벌씩 들고 있었다. 정말 다른 것은 **결과지에 무엇을
204
+ * 문제로 적을 것인가** 하나뿐이라(들려준 낱말이냐, 음절이냐, 원본 낱말이냐), 그것만
205
+ * 밖에서 받는다.
206
+ *
207
+ * 정답은 answerIndex 가 있으면 보기에서 그 자리를 쓰고, 없으면 item.answer 를 쓴다.
208
+ *
209
+ * @param questionOf - 결과지의 '문제' 칸에 적을 것을 항목에서 뽑는다
210
+ */
211
+ export function buildTwoStepPickResults(items = [], pageAnswers, questionOf) {
212
+ const results = items.map((raw, index) => {
213
+ const item = (raw ?? {});
214
+ const payload = getSteppedPayload(pageAnswers, index, 2, 1);
215
+ const selected = getSelectedFromPayload(payload);
216
+ const choices = (Array.isArray(item.choices) ? item.choices : []);
217
+ const selectedText = getSelectedText(selected, choices);
218
+ const answerIndex = typeof item.answerIndex === 'number' ? item.answerIndex : undefined;
219
+ const answer = typeof answerIndex === 'number' ? choices[answerIndex] : item.answer;
220
+ const correct = isSelectionCorrect({
221
+ payload, selected, choices, correctAnswers: answer ? [answer] : [],
222
+ });
223
+ return { question: questionOf(item), choices, selected, selectedText, correct, answer };
224
+ });
225
+ return { score: results.filter(r => r.correct).length, results, answers: results };
226
+ }
@@ -0,0 +1,42 @@
1
+ import type { ReactNode } from 'react';
2
+ /**
3
+ * 훈련 시나리오를 **읽는 규칙** — 쪽·단계에 이름을 붙이고, 단계가 받을 props 를 푼다.
4
+ *
5
+ * TrainingPagePopup 이 1,023줄이고 그중 화면과 무관한 이 넷이 앞머리에 섞여 있었다.
6
+ * 넷 다 순수 함수다 — 리액트도, 상태도 모르고, 같은 입력에 늘 같은 값을 준다.
7
+ *
8
+ * 이름을 붙이는 두 함수가 중요한 이유: 여기서 나오는 문자열이 그대로 리스트의 key 가
9
+ * 된다. id 나 key 가 없으면 자리 번호로 대신하는데, 그러면 쪽·단계가 재배치될 때
10
+ * 리액트가 다른 것을 같은 것으로 보고 상태를 잘못 물려준다. 그래서 **주어진 이름이
11
+ * 있으면 반드시 그것을 쓴다**는 게 이 함수들의 약속이다.
12
+ */
13
+ /** @public */
14
+ export type ScenarioPage = {
15
+ id?: string;
16
+ steps?: ReactNode[];
17
+ pageTop?: ReactNode | null;
18
+ pageBottom?: ReactNode | null;
19
+ } & Record<string, unknown>;
20
+ /** @public */
21
+ export type ScenarioStep = {
22
+ key?: string;
23
+ props?: ((context: Record<string, unknown>) => Record<string, unknown>) | Record<string, unknown>;
24
+ type?: string;
25
+ } & Record<string, unknown>;
26
+ /** @public 한 판(page)의 진행 상태 — 몇 쪽 몇 단계인지와, 쪽마다 담아 둔 답. */
27
+ export type FlowState = {
28
+ pageIndex: number;
29
+ stepIndex: number;
30
+ answersByPage: Record<string, Record<string, unknown>>;
31
+ };
32
+ /** 쪽 이름 — 주어진 id 가 있으면 그것을, 없으면 자리 번호로. */
33
+ export declare function getScenarioPageId(page: ScenarioPage | null | undefined, index?: number): string;
34
+ /** 단계 이름 — 주어진 key 가 있으면 그것을, 없으면 자리 번호로. */
35
+ export declare function getScenarioStepKey(step: ScenarioStep | null | undefined, index?: number): string;
36
+ /** 처음 상태 — 첫 쪽 첫 단계, 담아 둔 답 없음. */
37
+ export declare function createScenarioFlowState(): FlowState;
38
+ /**
39
+ * 단계가 받을 props 를 푼다. 함수로 주어졌으면 그때의 문맥을 넘겨 부른다 —
40
+ * 앞 단계의 답에 따라 달라지는 단계를 그렇게 쓴다. 무엇을 주든 객체를 돌려준다.
41
+ */
42
+ export declare function resolveScenarioStepProps(step: ScenarioStep | null | undefined, context: Record<string, unknown>): Record<string, unknown>;
@@ -0,0 +1,25 @@
1
+ /** 쪽 이름 — 주어진 id 가 있으면 그것을, 없으면 자리 번호로. */
2
+ export function getScenarioPageId(page, index) {
3
+ return (page && page.id) || `page-${index ?? 0}`;
4
+ }
5
+ /** 단계 이름 — 주어진 key 가 있으면 그것을, 없으면 자리 번호로. */
6
+ export function getScenarioStepKey(step, index) {
7
+ return (step && step.key) || `step-${index ?? 0}`;
8
+ }
9
+ /** 처음 상태 — 첫 쪽 첫 단계, 담아 둔 답 없음. */
10
+ export function createScenarioFlowState() {
11
+ return {
12
+ pageIndex: 0,
13
+ stepIndex: 0,
14
+ answersByPage: {},
15
+ };
16
+ }
17
+ /**
18
+ * 단계가 받을 props 를 푼다. 함수로 주어졌으면 그때의 문맥을 넘겨 부른다 —
19
+ * 앞 단계의 답에 따라 달라지는 단계를 그렇게 쓴다. 무엇을 주든 객체를 돌려준다.
20
+ */
21
+ export function resolveScenarioStepProps(step, context) {
22
+ if (typeof step?.props === 'function')
23
+ return step.props(context) || {};
24
+ return step?.props || {};
25
+ }
@@ -0,0 +1,37 @@
1
+ import type { ReactNode } from 'react';
2
+ /** @public */
3
+ export type SoundSource = string | {
4
+ src?: string;
5
+ code?: string;
6
+ } | null;
7
+ export interface Source {
8
+ code?: string | number | null | undefined;
9
+ src?: string | null;
10
+ objectUrl?: string | null;
11
+ duration?: number;
12
+ resolvedPath?: string;
13
+ }
14
+ export interface Segment {
15
+ src?: string | null;
16
+ label?: string;
17
+ color?: string | undefined;
18
+ duration?: number;
19
+ }
20
+ export type FetchDebugStatus = 'idle' | 'resolving' | 'checking_exists' | 'getting_signed_url' | 'downloading' | 'measuring_duration' | 'ready' | 'error';
21
+ /** @public */
22
+ export interface TrainingStepAudioPlayerProps {
23
+ btnLabel?: ReactNode;
24
+ soundSrc?: SoundSource | SoundSource[];
25
+ bucketPath?: string | null;
26
+ onDone?: (ok?: boolean) => void;
27
+ disabled?: boolean;
28
+ ttsText?: string | string[] | null;
29
+ className?: string;
30
+ /** 문장(재생 소리) waveform 표시 여부. 기본 true — 두 소리를 비교해 같음/다름을 판단하는
31
+ * 훈련처럼 waveform 모양으로 답이 드러나면 안 되는 화면에서는 false로 끈다. */
32
+ showSoundWaveForm?: boolean;
33
+ /** 소음 waveform 표시 여부. 기본 true. */
34
+ showNoiseWaveForm?: boolean;
35
+ }
36
+ export declare const STATUS_MESSAGES: Record<FetchDebugStatus, string>;
37
+ export declare const STATUS_COLORS: Record<FetchDebugStatus, string>;
@@ -0,0 +1,20 @@
1
+ export const STATUS_MESSAGES = {
2
+ idle: '대기',
3
+ resolving: '리소스 매핑 중…',
4
+ checking_exists: '파일 존재 확인…',
5
+ getting_signed_url: '서명 URL 조회…',
6
+ downloading: '다운로드 중…',
7
+ measuring_duration: '오디오 길이 측정…',
8
+ ready: '준비 완료',
9
+ error: '오류 발생',
10
+ };
11
+ export const STATUS_COLORS = {
12
+ idle: '#757575',
13
+ resolving: '#1e90ff',
14
+ checking_exists: '#1e90ff',
15
+ getting_signed_url: '#1e90ff',
16
+ downloading: '#ff9800',
17
+ measuring_duration: '#9c27b0',
18
+ ready: '#4caf50',
19
+ error: '#f44336',
20
+ };
@@ -0,0 +1,34 @@
1
+ /**
2
+ * trainingStepOrderListTypes.ts
3
+ * TrainingStepOrderList의 순수 타입 정의.
4
+ */
5
+ /** @public */
6
+ export type TrainingContextItem = string | {
7
+ context?: string;
8
+ sentence?: string;
9
+ question?: string;
10
+ [key: string]: unknown;
11
+ };
12
+ /** @public */
13
+ export type ShuffledItem = {
14
+ id: number;
15
+ text: string;
16
+ };
17
+ /** @public */
18
+ export interface ChangeResult {
19
+ shuffled: ShuffledItem[];
20
+ score: number;
21
+ total: number;
22
+ initial?: boolean;
23
+ __ts: number;
24
+ }
25
+ /** @public */
26
+ export interface TrainingStepOrderListProps {
27
+ index?: number;
28
+ stepIndex?: number;
29
+ isLast?: boolean;
30
+ title?: string;
31
+ onDone?: (res: ChangeResult) => void;
32
+ onChange?: (res: ChangeResult) => void;
33
+ context?: TrainingContextItem[];
34
+ }
@@ -0,0 +1,5 @@
1
+ /**
2
+ * trainingStepOrderListTypes.ts
3
+ * TrainingStepOrderList의 순수 타입 정의.
4
+ */
5
+ export {};