@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,19 @@
1
+ import { type ReactNode } from 'react';
2
+ import './Accordion.css';
3
+ /** @public */
4
+ export interface AccordionItem {
5
+ title: ReactNode;
6
+ body: ReactNode;
7
+ avatar?: ReactNode;
8
+ }
9
+ /** @public */
10
+ export interface AccordionProps {
11
+ items: AccordionItem[];
12
+ defaultOpenIndex?: number;
13
+ /** 헤더 높이 — Button과 동일 체계 (48 / 56 / 72). 기본 72 */
14
+ size?: 48 | 56 | 72;
15
+ className?: string;
16
+ bodyClassName?: string;
17
+ }
18
+ /** @public */
19
+ export default function Accordion({ items, defaultOpenIndex, size, className, bodyClassName, }: AccordionProps): import("react").JSX.Element;
@@ -0,0 +1,33 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { useState } from 'react';
4
+ import { useTranslation } from 'react-i18next';
5
+ import Icon from './Icon';
6
+ import './Accordion.css';
7
+ function Item({ title, body, open = false, onToggle, avatar, titleClassName = 'body-2', bodyClassName = 'body-2', className = '', }) {
8
+ const { t } = useTranslation();
9
+ return (_jsxs("div", { className: `accordion-item ${open ? 'accordion-item--open' : ''} ${className}`.trim(), children: [_jsxs("div", { className: "accordion-item__header", role: "button", tabIndex: 0, "aria-expanded": open, "data-accordion-header": true, onClick: onToggle, onKeyDown: e => {
10
+ if (e.key === 'Enter' || e.key === ' ') {
11
+ // div에 role=button을 씌운 것이라 Space의 기본 동작(페이지 스크롤)이 살아 있다.
12
+ // 막지 않으면 키보드로 항목을 열 때마다 화면이 한 페이지씩 밀려 내려간다.
13
+ e.preventDefault();
14
+ onToggle?.();
15
+ }
16
+ else if (e.key === 'ArrowDown' || e.key === 'ArrowUp') {
17
+ e.preventDefault();
18
+ const group = e.currentTarget.closest('[role="list"]');
19
+ if (!group)
20
+ return;
21
+ const headers = Array.from(group.querySelectorAll('[data-accordion-header]'));
22
+ const idx = headers.indexOf(e.currentTarget);
23
+ const next = e.key === 'ArrowDown' ? headers[idx + 1] : headers[idx - 1];
24
+ next?.focus();
25
+ }
26
+ }, children: [avatar && (_jsx("div", { className: "accordion-item__avatar", children: avatar })), _jsx("div", { className: `accordion-item__title ${titleClassName}`, children: title }), _jsx("div", { className: "accordion-item__chevron", children: _jsx(Icon, { icon: open ? 'chevron-up' : 'chevron-down', label: open ? t('accordion.collapse', '접기') : t('accordion.expand', '펼치기'), className: "accordion-item__chevron-icon", imgClassName: "accordion-item__chevron-image" }) })] }), open && (_jsx("div", { className: `accordion-item__body ${bodyClassName}`, children: typeof body === 'string' ? _jsx("p", { children: body }) : body }))] }));
27
+ }
28
+ // ── Accordion ─────────────────────────────────────────────────────────────
29
+ /** @public */
30
+ export default function Accordion({ items = [], defaultOpenIndex = 0, size = 72, className = '', bodyClassName, }) {
31
+ const [openIndex, setOpenIndex] = useState(defaultOpenIndex);
32
+ return (_jsx("div", { className: `accordion-group accordion-group--s${size} ${className}`.trim(), role: "list", children: items.map((item, i) => (_jsx(Item, { title: item.title, body: item.body, avatar: item.avatar, open: i === openIndex, onToggle: () => setOpenIndex(i === openIndex ? -1 : i), bodyClassName: bodyClassName }, i))) }));
33
+ }
@@ -0,0 +1,109 @@
1
+ /* 큰 정사각형 선택 카드 — 아이콘 · 제목 · 설명 · 행선지(CTA) */
2
+ .action-card {
3
+ /* tone 색: main 이 기본, sub 는 modifier 에서 덮는다 */
4
+ --ac-color: var(--color-main);
5
+ --ac-color-a10: var(--color-main-a10);
6
+
7
+ display: block;
8
+ width: 100%;
9
+ aspect-ratio: 1 / 1;
10
+ overflow: hidden;
11
+ border-radius: var(--radius-l);
12
+ border: 1px solid var(--color-border);
13
+ background: var(--color-surface);
14
+ box-shadow: var(--shadow-card);
15
+ cursor: pointer;
16
+ transition:
17
+ transform 0.2s ease-out,
18
+ box-shadow 0.2s ease-out,
19
+ border-color 0.2s ease-out;
20
+ }
21
+
22
+ .action-card--sub {
23
+ --ac-color: var(--color-sub);
24
+ --ac-color-a10: var(--color-sub-a10);
25
+ }
26
+
27
+ .action-card:focus-visible {
28
+ outline: none;
29
+ }
30
+
31
+ /* 호버·키보드 포커스: 살짝 떠오르고 테두리가 tone 색으로 물들고 그림자가 깊어진다 */
32
+ .action-card:not(.action-card--disabled):hover,
33
+ .action-card:not(.action-card--disabled):focus-visible {
34
+ transform: translateY(-4px);
35
+ border-color: var(--ac-color);
36
+ box-shadow: var(--shadow-panel);
37
+ }
38
+
39
+ .action-card--disabled {
40
+ cursor: wait;
41
+ opacity: 0.6;
42
+ }
43
+
44
+ .action-card__body {
45
+ display: flex;
46
+ height: 100%;
47
+ flex-direction: column;
48
+ gap: var(--spacing-m);
49
+ padding: var(--spacing-l);
50
+ }
51
+
52
+ /* 상단 아이콘 칩 — tone 알파 배경 + tone 글자색 */
53
+ .action-card__chip {
54
+ display: flex;
55
+ align-items: center;
56
+ justify-content: center;
57
+ width: 64px;
58
+ height: 64px;
59
+ border-radius: var(--radius-m);
60
+ background: var(--ac-color-a10);
61
+ color: var(--ac-color);
62
+ }
63
+
64
+ .action-card__text {
65
+ display: flex;
66
+ flex-direction: column;
67
+ gap: var(--spacing-xs);
68
+ }
69
+
70
+ .action-card__title {
71
+ margin: 0;
72
+ font-size: var(--text-h2-size);
73
+ line-height: var(--text-h2-line);
74
+ letter-spacing: var(--text-h2-spacing);
75
+ font-weight: var(--text-h2-weight-bold);
76
+ color: var(--color-text-primary);
77
+ }
78
+
79
+ .action-card__desc {
80
+ margin: 0;
81
+ font-size: var(--text-body-2-size);
82
+ line-height: var(--text-body-2-line);
83
+ font-weight: var(--text-body-2-weight);
84
+ color: var(--color-lightGray);
85
+ }
86
+
87
+ /* 바닥 행선지 — tone 색, 우측 정렬, 호버에서 화살표가 앞으로 */
88
+ .action-card__cta {
89
+ margin-top: auto;
90
+ display: flex;
91
+ align-items: center;
92
+ justify-content: flex-end;
93
+ gap: var(--spacing-xs);
94
+ padding-top: var(--spacing-s);
95
+ padding-right: var(--spacing-s);
96
+ font-size: var(--text-body-2-size);
97
+ line-height: var(--text-body-2-line);
98
+ font-weight: var(--text-body-2-weight-bold);
99
+ color: var(--ac-color);
100
+ }
101
+
102
+ .action-card__arrow {
103
+ display: flex;
104
+ transition: transform 0.2s;
105
+ }
106
+
107
+ .action-card:not(.action-card--disabled):hover .action-card__arrow {
108
+ transform: translateX(4px);
109
+ }
@@ -0,0 +1,33 @@
1
+ import './ActionCard.css';
2
+ /** @public */
3
+ export interface ActionCardProps {
4
+ /** lucide 아이콘 이름 (Icon 의 정적 목록에 있는 것) */
5
+ icon: string;
6
+ /** 카드 제목 */
7
+ title: string;
8
+ /** 제목 아래 설명 */
9
+ description: string;
10
+ /** 바닥의 행선지 문구 — "등록하고 시작" 같은 동사구 */
11
+ cta: string;
12
+ /** 주 동선이면 브랜드색(main), 보조 동선이면 sub. 기본 main */
13
+ tone?: 'main' | 'sub';
14
+ /** 비활성 — 대기 커서 + 흐림, 호버 효과 없음 */
15
+ disabled?: boolean;
16
+ /** 카드 클릭(=주 동작) 핸들러 */
17
+ onClick?: () => void;
18
+ /** 컨테이너에 덧붙일 클래스 — 크기 제한 등 배치 사정은 호출부가 정한다 */
19
+ className?: string;
20
+ }
21
+ /**
22
+ * 아이콘 · 제목 · 설명 · 행선지(CTA)를 담은 큰 정사각형 선택 카드.
23
+ *
24
+ * 카드 전체가 버튼처럼 눌린다 — 갈래가 둘뿐인 첫 화면에서 버튼을 세로로 쌓으면
25
+ * 비어 보이므로, 정사각형 카드 두 장을 나란히 두는 식에 쓴다. 호버하면 살짝
26
+ * 떠오르고 테두리가 tone 색으로 물들며 바닥 화살표가 앞으로 나간다.
27
+ *
28
+ * 시맨틱은 `section[role="button"]` + 키보드 핸들러다 — 통째로 `<button>` 으로
29
+ * 감싸면 제목·설명이 버튼 안에 갇혀 보조기기가 이상하게 읽는다.
30
+ *
31
+ * @public
32
+ */
33
+ export default function ActionCard({ icon, title, description, cta, tone, disabled, onClick, className, }: ActionCardProps): import("react").JSX.Element;
@@ -0,0 +1,28 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { cx } from '../utils/cx';
3
+ import Icon from './Icon';
4
+ import './ActionCard.css';
5
+ /**
6
+ * 아이콘 · 제목 · 설명 · 행선지(CTA)를 담은 큰 정사각형 선택 카드.
7
+ *
8
+ * 카드 전체가 버튼처럼 눌린다 — 갈래가 둘뿐인 첫 화면에서 버튼을 세로로 쌓으면
9
+ * 비어 보이므로, 정사각형 카드 두 장을 나란히 두는 식에 쓴다. 호버하면 살짝
10
+ * 떠오르고 테두리가 tone 색으로 물들며 바닥 화살표가 앞으로 나간다.
11
+ *
12
+ * 시맨틱은 `section[role="button"]` + 키보드 핸들러다 — 통째로 `<button>` 으로
13
+ * 감싸면 제목·설명이 버튼 안에 갇혀 보조기기가 이상하게 읽는다.
14
+ *
15
+ * @public
16
+ */
17
+ export default function ActionCard({ icon, title, description, cta, tone = 'main', disabled = false, onClick, className = '', }) {
18
+ const activate = () => {
19
+ if (!disabled)
20
+ onClick?.();
21
+ };
22
+ return (_jsx("section", { role: "button", tabIndex: disabled ? -1 : 0, "aria-disabled": disabled || undefined, "aria-label": title, onClick: activate, onKeyDown: (e) => {
23
+ if (e.key === 'Enter' || e.key === ' ') {
24
+ e.preventDefault();
25
+ activate();
26
+ }
27
+ }, className: cx('action-card', `action-card--${tone}`, disabled && 'action-card--disabled', className), children: _jsxs("div", { className: "action-card__body", children: [_jsx("span", { "aria-hidden": true, className: "action-card__chip", children: _jsx(Icon, { icon: icon, size: 34 }) }), _jsxs("div", { className: "action-card__text", children: [_jsx("h2", { className: "action-card__title", children: title }), _jsx("p", { className: "action-card__desc", children: description })] }), _jsxs("div", { className: "action-card__cta", children: [_jsx("span", { children: cta }), _jsx("span", { "aria-hidden": true, className: "action-card__arrow", children: _jsx(Icon, { icon: "arrow-right", size: 18 }) })] })] }) }));
28
+ }
@@ -0,0 +1,76 @@
1
+ .alert {
2
+ display: flex;
3
+ align-items: flex-start;
4
+ gap: var(--spacing-s);
5
+ padding: var(--spacing-m);
6
+ border-radius: var(--radius-sm);
7
+ background: color-mix(in srgb, var(--alert-color) 10%, transparent);
8
+ border: 1px solid color-mix(in srgb, var(--alert-color) 25%, transparent);
9
+ }
10
+
11
+ .alert__icon {
12
+ display: inline-flex;
13
+ align-items: center;
14
+ flex-shrink: 0;
15
+ color: var(--alert-color);
16
+ }
17
+
18
+ .alert__body {
19
+ display: flex;
20
+ flex-direction: column;
21
+ gap: 2px;
22
+ flex: 1 1 auto;
23
+ min-width: 0;
24
+ }
25
+
26
+ .alert__header {
27
+ display: flex;
28
+ align-items: center;
29
+ gap: var(--spacing-xs);
30
+ }
31
+
32
+ .alert__message--indented {
33
+ margin-left: calc(20px + var(--spacing-xs));
34
+ }
35
+
36
+ .alert__title {
37
+ color: var(--color-black);
38
+ }
39
+
40
+ .alert__message {
41
+ color: var(--color-darkGray);
42
+ }
43
+
44
+ .alert__dismiss {
45
+ flex-shrink: 0;
46
+ display: inline-flex;
47
+ align-items: center;
48
+ justify-content: center;
49
+ width: 20px;
50
+ height: 20px;
51
+ border: none;
52
+ background: transparent;
53
+ color: var(--color-gray);
54
+ font-size: 18px;
55
+ line-height: 1;
56
+ cursor: pointer;
57
+ padding: 0;
58
+ }
59
+
60
+ .alert__dismiss:hover {
61
+ color: var(--color-darkGray);
62
+ }
63
+
64
+ /* ── tones — define color token only ── */
65
+ .alert--info {
66
+ --alert-color: var(--color-main);
67
+ }
68
+ .alert--success {
69
+ --alert-color: var(--color-success);
70
+ }
71
+ .alert--warning {
72
+ --alert-color: var(--color-warn);
73
+ }
74
+ .alert--danger {
75
+ --alert-color: var(--color-error);
76
+ }
@@ -0,0 +1,18 @@
1
+ import { type ReactNode } from 'react';
2
+ import './Alert.css';
3
+ /** @public */
4
+ export type AlertTone = 'info' | 'success' | 'warning' | 'danger';
5
+ /** @public */
6
+ export interface AlertProps {
7
+ /** 의미 톤 — info(안내), success(성공), warning(경고), danger(오류) */
8
+ tone?: AlertTone;
9
+ title?: string;
10
+ message?: ReactNode;
11
+ children?: ReactNode;
12
+ /** 닫기(×) 버튼 표시 여부 */
13
+ dismissible?: boolean;
14
+ onDismiss?: () => void;
15
+ className?: string;
16
+ }
17
+ /** @public */
18
+ export default function Alert({ tone, title, message, children, dismissible, onDismiss, className, }: AlertProps): import("react").JSX.Element | null;
@@ -0,0 +1,28 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { cx } from '../utils/cx';
4
+ import { useCallback, useState } from 'react';
5
+ import { useTranslation } from 'react-i18next';
6
+ import Icon from './Icon';
7
+ import './Alert.css';
8
+ const TONE_ICON = {
9
+ info: 'info',
10
+ success: 'check-circle',
11
+ warning: 'alert-triangle',
12
+ danger: 'alert-circle',
13
+ };
14
+ /** @public */
15
+ export default function Alert({ tone = 'info', title, message, children, dismissible = false, onDismiss, className = '', }) {
16
+ const { t } = useTranslation();
17
+ const [dismissed, setDismissed] = useState(false);
18
+ const handleDismiss = useCallback(() => {
19
+ setDismissed(true);
20
+ onDismiss?.();
21
+ }, [onDismiss]);
22
+ if (dismissed)
23
+ return null;
24
+ const cls = cx('alert', `alert--${tone}`, className);
25
+ const hasTitle = Boolean(title);
26
+ const hasMessage = Boolean(message || children);
27
+ return (_jsxs("div", { className: cls, role: "alert", children: [_jsxs("div", { className: "alert__body", children: [_jsxs("div", { className: "alert__header", children: [_jsx(Icon, { icon: TONE_ICON[tone], size: 20, className: "alert__icon" }), hasTitle && _jsx("span", { className: "alert__title body-2", children: title }), !hasTitle && hasMessage && _jsx("div", { className: "alert__message body-3", children: message ?? children })] }), hasTitle && hasMessage && (_jsx("div", { className: "alert__message alert__message--indented body-3", children: message ?? children }))] }), dismissible && (_jsx("button", { type: "button", className: "alert__dismiss", onClick: handleDismiss, "aria-label": t('common.close', '닫기'), children: "\u00D7" }))] }));
28
+ }
@@ -0,0 +1,80 @@
1
+ .audio-meter {
2
+ display: inline-flex;
3
+ align-items: center;
4
+ gap: var(--spacing-xs);
5
+ }
6
+
7
+ .audio-meter__track {
8
+ --meter-level: 0;
9
+ position: relative;
10
+ overflow: hidden;
11
+ border-radius: 999px;
12
+ background: var(--color-darkWhite);
13
+ flex-shrink: 0;
14
+ }
15
+
16
+ .audio-meter__fill {
17
+ position: absolute;
18
+ inset: 0;
19
+ }
20
+
21
+ .audio-meter__value {
22
+ color: var(--color-gray);
23
+ font-variant-numeric: tabular-nums;
24
+ /* 부호+2자리 0-패딩으로 글자 수가 항상 고정("+25 dB" 등 6자)이라 min-width 대신
25
+ 고정 width를 써도 잘려나갈 걱정 없이 안전하다. */
26
+ width: 40px;
27
+ text-align: right;
28
+ white-space: nowrap;
29
+ }
30
+ /* ── 가로 ─────────────────────────────────────── */
31
+ .audio-meter--horizontal .audio-meter__track {
32
+ width: 120px;
33
+ height: 8px;
34
+ }
35
+ .audio-meter--horizontal .audio-meter__fill {
36
+ background: linear-gradient(to right, var(--color-success) 0%, var(--color-success) 55%, var(--color-warn) 80%, var(--color-error) 100%);
37
+ transform-origin: left;
38
+ transform: scaleX(var(--meter-level));
39
+ }
40
+
41
+ /* ── 세로 ─────────────────────────────────────── */
42
+ .audio-meter--vertical {
43
+ flex-direction: column;
44
+ }
45
+ .audio-meter--vertical .audio-meter__track {
46
+ width: 8px;
47
+ height: 120px;
48
+ }
49
+ .audio-meter--vertical .audio-meter__fill {
50
+ background: linear-gradient(to top, var(--color-success) 0%, var(--color-success) 55%, var(--color-warn) 80%, var(--color-error) 100%);
51
+ transform-origin: bottom;
52
+ transform: scaleY(var(--meter-level));
53
+ }
54
+
55
+ /* ── 라벨 자리(labelPos·labelAlign) ────────────────────────────────
56
+ ProgressBar·Slider 와 같은 규칙이다 — 자리를 정하는 건 막대 방향이 아니라 labelPos 다.
57
+ 방향 규칙(.audio-meter--vertical)보다 뒤에 오고 특이도도 한 단계 높아, 세로 막대에
58
+ 라벨을 옆에 붙이는 조합도 그대로 먹는다. */
59
+ .audio-meter.audio-meter--label-left,
60
+ .audio-meter.audio-meter--label-right {
61
+ flex-direction: row;
62
+ }
63
+ .audio-meter.audio-meter--label-top,
64
+ .audio-meter.audio-meter--label-bottom {
65
+ flex-direction: column;
66
+ }
67
+
68
+ /* DOM 은 막대 → 라벨 순서라, 앞으로 보내는 자리에만 order 를 준다 */
69
+ .audio-meter--label-left .audio-meter__value,
70
+ .audio-meter--label-top .audio-meter__value {
71
+ order: -1;
72
+ }
73
+
74
+ /* 위·아래 라벨의 가로 정렬. 값 글자 수가 고정이라 같은 줄에서는 쓰이지 않는다. */
75
+ .audio-meter--label-top.audio-meter--align-left,
76
+ .audio-meter--label-bottom.audio-meter--align-left { align-items: flex-start; }
77
+ .audio-meter--label-top.audio-meter--align-center,
78
+ .audio-meter--label-bottom.audio-meter--align-center { align-items: center; }
79
+ .audio-meter--label-top.audio-meter--align-right,
80
+ .audio-meter--label-bottom.audio-meter--align-right { align-items: flex-end; }
@@ -0,0 +1,49 @@
1
+ import './AudioMeter.css';
2
+ /** @public */
3
+ export interface AudioMeterProps {
4
+ /** 직접 AnalyserNode를 주입(우선). */
5
+ analyser?: AnalyserNode | null;
6
+ /** 또는 미디어 엘리먼트를 주면 내부에서 analyser를 생성해 사용. */
7
+ audioElement?: HTMLMediaElement | null;
8
+ /** 방향 — 'horizontal'(기본) | 'vertical' */
9
+ orientation?: 'horizontal' | 'vertical';
10
+ /** 트랙 길이(가로=너비/세로=높이). 숫자=px */
11
+ length?: number | string;
12
+ /**
13
+ * 값 표시. ProgressBar·Slider 와 같은 이름을 쓴다 — 생략하면 막대만 나온다.
14
+ * 여기서 고를 수 있는 표기는 `'db'` 하나뿐이다(기준점 대비 상대 dB).
15
+ */
16
+ label?: 'db';
17
+ /**
18
+ * 라벨이 붙는 면 — 위 / 오른쪽 / 아래 / 왼쪽.
19
+ * 생략하면 방향이 정한다: 가로는 오른쪽, 세로는 아래.
20
+ */
21
+ labelPos?: 'top' | 'right' | 'bottom' | 'left';
22
+ /**
23
+ * 붙은 면 안에서의 가로 자리 — 위·아래에 놓일 때만 쓰인다.
24
+ * 값 글자 수가 부호+2자리로 고정이라 같은 줄에서는 늘 우측 정렬이다.
25
+ */
26
+ labelAlign?: 'left' | 'center' | 'right';
27
+ /** 무음으로 볼 dB 하한(내부 dBFS 클램프). 기본 -60 */
28
+ floorDb?: number;
29
+ /**
30
+ * 표시 기준점(dBFS) — 이 값이 표시상 0으로 매핑된다. 기본 -35.
31
+ * (이 앱에서 실측한 실제 재생 RMS dBFS가 대략 -60(무음)~-20(가장 큰 순간) 범위였다 —
32
+ * 기준점을 이 범위의 중간 지점 부근으로 잡아야 표시 범위 전체를 의미 있게 쓴다.)
33
+ * 실제 물리 음압(dB SPL)을 측정할 방법이 없어 절대값 대신 이 기준점 대비 상대값을
34
+ * 보여준다 — 라벨도 "dBFS"가 아니라 "dB"로 표시(양수엔 + 부호).
35
+ */
36
+ refDb?: number;
37
+ /** 표시 범위 하한(기준점 대비 dB). 기본 -5 */
38
+ displayMin?: number;
39
+ /** 표시 범위 상한(기준점 대비 dB). 기본 25 */
40
+ displayMax?: number;
41
+ className?: string;
42
+ ariaLabel?: string;
43
+ }
44
+ /**
45
+ * 오디오 레벨 미터 — AnalyserNode(또는 미디어 엘리먼트)의 실시간 RMS를 막대로 표시하고,
46
+ * 선택적으로 dB 값을 함께 보여준다. requestAnimationFrame으로 ref를 직접 갱신(리렌더 없음).
47
+ * @public
48
+ */
49
+ export default function AudioMeter({ analyser, audioElement, orientation, length, label, labelPos, labelAlign, floorDb, refDb, displayMin, displayMax, className, ariaLabel, }: AudioMeterProps): import("react").JSX.Element;
@@ -0,0 +1,91 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { cx } from '../utils/cx';
4
+ import { useEffect, useRef } from 'react';
5
+ import { getElementAnalyser, resumeAudioMeter, readLevel } from '../utils/audioMeter';
6
+ import './AudioMeter.css';
7
+ // 레벨 표시 평활화(빠른 어택 / 느린 릴리스)
8
+ const RELEASE = 0.86;
9
+ // dB 텍스트 갱신 주기(ms) — 매 프레임(약 16ms)마다 바뀌면 오히려 값을 읽을 수 없어
10
+ // 0.25초 간격으로만 갱신하고, 그 사이 구간은 평균을 내 순간적인 튐도 함께 줄인다.
11
+ const VALUE_UPDATE_MS = 250;
12
+ // dBFS를 기준점(refDb) 대비 상대값으로 변환해 "+3 dB"/"-2 dB" 형태로 표시.
13
+ // 실제 dB SPL(물리 음압)은 기기·볼륨 캘리브레이션 없이는 알 수 없어, 대신 임의 기준점
14
+ // 대비 상대값임을 라벨(dBFS가 아닌 dB)과 부호로 드러낸다.
15
+ // 부호는 항상 표시(우측 정렬 + 고정폭 박스라 자릿수가 바뀌어도 숫자 끝 위치는 고정된다).
16
+ const formatRelDb = (dbfs, refDb, displayMin, displayMax) => {
17
+ const rel = Math.round(Math.min(displayMax, Math.max(displayMin, dbfs - refDb)));
18
+ const sign = rel < 0 ? '-' : '+';
19
+ return `${sign}${Math.abs(rel)} dB`;
20
+ };
21
+ /**
22
+ * 오디오 레벨 미터 — AnalyserNode(또는 미디어 엘리먼트)의 실시간 RMS를 막대로 표시하고,
23
+ * 선택적으로 dB 값을 함께 보여준다. requestAnimationFrame으로 ref를 직접 갱신(리렌더 없음).
24
+ * @public
25
+ */
26
+ export default function AudioMeter({ analyser, audioElement, orientation = 'horizontal', length, label, labelPos, labelAlign = 'right', floorDb = -60, refDb = -35, displayMin = -5, displayMax = 25, className, ariaLabel, }) {
27
+ const fillRef = useRef(null);
28
+ const valueRef = useRef(null);
29
+ const rafRef = useRef(null);
30
+ useEffect(() => {
31
+ const node = analyser ?? getElementAnalyser(audioElement);
32
+ const fill = fillRef.current;
33
+ if (!node || !fill) {
34
+ fill?.style.setProperty('--meter-level', '0');
35
+ if (valueRef.current)
36
+ valueRef.current.textContent = formatRelDb(floorDb, refDb, displayMin, displayMax);
37
+ return;
38
+ }
39
+ resumeAudioMeter();
40
+ const buffer = new Float32Array(node.fftSize);
41
+ let rawSmooth = 0;
42
+ // 다음 텍스트 갱신 구간 동안의 dB 합/개수 — 갱신 시점에 평균을 내 보여준다
43
+ let dbSum = 0;
44
+ let dbCount = 0;
45
+ let lastUpdate = 0;
46
+ // 갱신 구간(0.5초)별 평균을 그대로 보여주면 구간마다 값이 크게 튈 수 있어, 이전에
47
+ // 표시하던 값과 새 평균을 섞어(지수이동평균) 갱신 시점 사이에도 부드럽게 전환한다.
48
+ let displayedDb = null;
49
+ const tick = (now) => {
50
+ const raw = readLevel(node, buffer);
51
+ // 빠른 어택 / 느린 릴리스(선형 진폭 기준) — 막대·텍스트 둘 다 이 값에서 파생시켜
52
+ // 서로 다른 스케일(막대=게인 기반, 텍스트=dB)을 쓰던 예전 방식의 불일치를 없앤다.
53
+ rawSmooth = raw > rawSmooth ? raw : rawSmooth * RELEASE;
54
+ const db = rawSmooth > 1e-5 ? 20 * Math.log10(rawSmooth) : -Infinity;
55
+ const dbClamped = Math.max(floorDb, db);
56
+ // 막대 채움 — 텍스트와 동일한 표시 범위(displayMin~displayMax)를 0~1로 정규화.
57
+ // "+9"(범위 최대)일 때 막대가 꽉 차고 "-3"(범위 최소)일 때 거의 비어, 숫자와 항상 일치한다.
58
+ const relDb = dbClamped - refDb;
59
+ const fillRatio = Math.min(1, Math.max(0, (relDb - displayMin) / (displayMax - displayMin)));
60
+ fill.style.setProperty('--meter-level', fillRatio.toFixed(3));
61
+ if (valueRef.current) {
62
+ dbSum += dbClamped;
63
+ dbCount += 1;
64
+ if (now - lastUpdate >= VALUE_UPDATE_MS) {
65
+ const windowAvg = dbSum / dbCount;
66
+ displayedDb = displayedDb == null ? windowAvg : displayedDb * 0.6 + windowAvg * 0.4;
67
+ valueRef.current.textContent = formatRelDb(displayedDb, refDb, displayMin, displayMax);
68
+ dbSum = 0;
69
+ dbCount = 0;
70
+ lastUpdate = now;
71
+ }
72
+ }
73
+ rafRef.current = requestAnimationFrame(tick);
74
+ };
75
+ rafRef.current = requestAnimationFrame(tick);
76
+ return () => {
77
+ if (rafRef.current != null)
78
+ cancelAnimationFrame(rafRef.current);
79
+ rafRef.current = null;
80
+ };
81
+ }, [analyser, audioElement, floorDb, refDb, displayMin, displayMax]);
82
+ const lengthCss = typeof length === 'number' ? `${length}px` : length;
83
+ const isVertical = orientation === 'vertical';
84
+ const trackStyle = lengthCss
85
+ ? (isVertical ? { height: lengthCss } : { width: lengthCss })
86
+ : {};
87
+ const track = (_jsx("div", { className: "audio-meter__track", style: trackStyle, children: _jsx("div", { ref: fillRef, className: "audio-meter__fill" }) }));
88
+ // 자리를 지정하지 않으면 방향이 정한다 — 가로 막대 옆(오른쪽), 세로 막대 아래.
89
+ const pos = labelPos ?? (orientation === 'vertical' ? 'bottom' : 'right');
90
+ return (_jsxs("div", { className: cx('audio-meter', `audio-meter--${orientation}`, label && `audio-meter--label-${pos}`, label && `audio-meter--align-${labelAlign}`, className), role: "meter", "aria-label": ariaLabel, children: [track, label && (_jsx("span", { ref: valueRef, className: "audio-meter__value caption-2", children: formatRelDb(floorDb, refDb, displayMin, displayMax) }))] }));
91
+ }
@@ -0,0 +1,42 @@
1
+ .avatar {
2
+ position: relative;
3
+ display: inline-flex;
4
+ align-items: center;
5
+ justify-content: center;
6
+ flex-shrink: 0;
7
+ overflow: hidden;
8
+ background: var(--color-lightGray-a10);
9
+ color: var(--color-gray);
10
+ width: var(--avatar-size);
11
+ height: var(--avatar-size);
12
+ user-select: none;
13
+ }
14
+
15
+ /* shapes */
16
+ .avatar--circle { border-radius: 50%; }
17
+ .avatar--rounded-square { border-radius: var(--radius-card); }
18
+
19
+ /* sizes — define the --avatar-size custom property per size */
20
+ .avatar--xs { --avatar-size: 24px; }
21
+ .avatar--sm { --avatar-size: 32px; }
22
+ .avatar--md { --avatar-size: 40px; }
23
+ .avatar--lg { --avatar-size: 56px; }
24
+ .avatar--xl { --avatar-size: 80px; }
25
+
26
+ .avatar__image {
27
+ width: 100%;
28
+ height: 100%;
29
+ object-fit: cover;
30
+ }
31
+
32
+ .avatar__initials {
33
+ font-weight: 600;
34
+ line-height: 1;
35
+ font-size: calc(var(--avatar-size) * 0.4);
36
+ }
37
+
38
+ .avatar__icon {
39
+ display: inline-flex;
40
+ align-items: center;
41
+ justify-content: center;
42
+ }
@@ -0,0 +1,21 @@
1
+ import './Avatar.css';
2
+ /** @public */
3
+ export type AvatarSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
4
+ /** @public */
5
+ export type AvatarShape = 'circle' | 'rounded-square';
6
+ /** @public */
7
+ export interface AvatarProps {
8
+ /** 이미지 URL. 로드 실패 시 initials(있으면) 또는 아이콘으로 폴백 */
9
+ src?: string;
10
+ /** initials 계산 및 접근성 라벨 소스 */
11
+ name?: string;
12
+ size?: AvatarSize;
13
+ shape?: AvatarShape;
14
+ className?: string;
15
+ }
16
+ /**
17
+ * 사용자 아바타 — src 이미지가 있으면 이미지를, 로드 실패/미지정 시
18
+ * name에서 파생한 initials를, 그마저 없으면 일반 사용자 아이콘을 보여준다.
19
+ * @public
20
+ */
21
+ export default function Avatar({ src, name, size, shape, className }: AvatarProps): import("react").JSX.Element;