@tipp/ui 2.4.0 → 2.6.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 (727) hide show
  1. package/dist/app/index.cjs +1291 -837
  2. package/dist/app/index.cjs.map +1 -1
  3. package/dist/app/index.js +121 -120
  4. package/dist/app/platform/coach-question-list.cjs +822 -364
  5. package/dist/app/platform/coach-question-list.cjs.map +1 -1
  6. package/dist/app/platform/coach-question-list.js +48 -46
  7. package/dist/app/platform/contents-card.cjs +815 -357
  8. package/dist/app/platform/contents-card.cjs.map +1 -1
  9. package/dist/app/platform/contents-card.js +48 -46
  10. package/dist/app/platform/curriculum-card.cjs +65 -13
  11. package/dist/app/platform/curriculum-card.cjs.map +1 -1
  12. package/dist/app/platform/curriculum-card.js +6 -5
  13. package/dist/app/platform/edit-coaching-time.cjs +1012 -558
  14. package/dist/app/platform/edit-coaching-time.cjs.map +1 -1
  15. package/dist/app/platform/edit-coaching-time.js +96 -95
  16. package/dist/app/platform/edit-service-type.cjs +995 -541
  17. package/dist/app/platform/edit-service-type.cjs.map +1 -1
  18. package/dist/app/platform/edit-service-type.js +97 -96
  19. package/dist/app/platform/goal-manage-card-edit.cjs +991 -537
  20. package/dist/app/platform/goal-manage-card-edit.cjs.map +1 -1
  21. package/dist/app/platform/goal-manage-card-edit.js +96 -95
  22. package/dist/app/platform/goal-manage-card-read.cjs +865 -407
  23. package/dist/app/platform/goal-manage-card-read.cjs.map +1 -1
  24. package/dist/app/platform/goal-manage-card-read.js +48 -46
  25. package/dist/app/platform/on-offline-radio-card.cjs +785 -331
  26. package/dist/app/platform/on-offline-radio-card.cjs.map +1 -1
  27. package/dist/app/platform/on-offline-radio-card.js +96 -95
  28. package/dist/app/platform/report-card.cjs +828 -370
  29. package/dist/app/platform/report-card.cjs.map +1 -1
  30. package/dist/app/platform/report-card.js +48 -46
  31. package/dist/app/platform/reservation-card.cjs +1016 -562
  32. package/dist/app/platform/reservation-card.cjs.map +1 -1
  33. package/dist/app/platform/reservation-card.js +97 -96
  34. package/dist/app/platform/session-card.cjs +1069 -615
  35. package/dist/app/platform/session-card.cjs.map +1 -1
  36. package/dist/app/platform/session-card.js +99 -98
  37. package/dist/app/platform/session-review-simple-read.cjs +825 -367
  38. package/dist/app/platform/session-review-simple-read.cjs.map +1 -1
  39. package/dist/app/platform/session-review-simple-read.js +48 -46
  40. package/dist/app/platform/userInfos/coaching-customer-info/index.cjs +857 -399
  41. package/dist/app/platform/userInfos/coaching-customer-info/index.cjs.map +1 -1
  42. package/dist/app/platform/userInfos/coaching-customer-info/index.js +54 -52
  43. package/dist/app/platform/userInfos/coaching-customer-info/large.cjs +833 -375
  44. package/dist/app/platform/userInfos/coaching-customer-info/large.cjs.map +1 -1
  45. package/dist/app/platform/userInfos/coaching-customer-info/large.js +49 -47
  46. package/dist/app/platform/userInfos/coaching-customer-info/medium.cjs +836 -378
  47. package/dist/app/platform/userInfos/coaching-customer-info/medium.cjs.map +1 -1
  48. package/dist/app/platform/userInfos/coaching-customer-info/medium.js +49 -47
  49. package/dist/app/platform/userInfos/coaching-customer-info/small.cjs +823 -365
  50. package/dist/app/platform/userInfos/coaching-customer-info/small.cjs.map +1 -1
  51. package/dist/app/platform/userInfos/coaching-customer-info/small.js +48 -46
  52. package/dist/app/platform/userInfos/session-user-info-detail.cjs +832 -374
  53. package/dist/app/platform/userInfos/session-user-info-detail.cjs.map +1 -1
  54. package/dist/app/platform/userInfos/session-user-info-detail.js +49 -47
  55. package/dist/app/platform/userInfos/utils.cjs +824 -366
  56. package/dist/app/platform/userInfos/utils.cjs.map +1 -1
  57. package/dist/app/platform/userInfos/utils.js +48 -46
  58. package/dist/atoms/alert-dialog.cjs +85 -1
  59. package/dist/atoms/alert-dialog.cjs.map +1 -1
  60. package/dist/atoms/alert-dialog.d.cts +18 -2
  61. package/dist/atoms/alert-dialog.d.ts +18 -2
  62. package/dist/atoms/alert-dialog.js +3 -1
  63. package/dist/atoms/aspect-ratio.d.cts +1 -0
  64. package/dist/atoms/aspect-ratio.d.ts +1 -0
  65. package/dist/atoms/avatar.cjs +39 -2
  66. package/dist/atoms/avatar.cjs.map +1 -1
  67. package/dist/atoms/avatar.d.cts +5 -2
  68. package/dist/atoms/avatar.d.ts +5 -2
  69. package/dist/atoms/avatar.js +2 -1
  70. package/dist/atoms/badge.cjs +34 -9
  71. package/dist/atoms/badge.cjs.map +1 -1
  72. package/dist/atoms/badge.d.cts +4 -5
  73. package/dist/atoms/badge.d.ts +4 -5
  74. package/dist/atoms/badge.js +2 -1
  75. package/dist/atoms/blockquote.cjs +71 -1
  76. package/dist/atoms/blockquote.cjs.map +1 -1
  77. package/dist/atoms/blockquote.d.cts +12 -1
  78. package/dist/atoms/blockquote.d.ts +12 -1
  79. package/dist/atoms/blockquote.js +2 -1
  80. package/dist/atoms/bullet-text.cjs +39 -2
  81. package/dist/atoms/bullet-text.cjs.map +1 -1
  82. package/dist/atoms/bullet-text.d.cts +1 -0
  83. package/dist/atoms/bullet-text.d.ts +1 -0
  84. package/dist/atoms/bullet-text.js +3 -2
  85. package/dist/atoms/button.cjs +33 -3
  86. package/dist/atoms/button.cjs.map +1 -1
  87. package/dist/atoms/button.d.cts +5 -3
  88. package/dist/atoms/button.d.ts +5 -3
  89. package/dist/atoms/button.js +2 -1
  90. package/dist/atoms/button.type.cjs.map +1 -1
  91. package/dist/atoms/button.type.d.cts +3 -1
  92. package/dist/atoms/button.type.d.ts +3 -1
  93. package/dist/atoms/call-out.cjs +78 -1
  94. package/dist/atoms/call-out.cjs.map +1 -1
  95. package/dist/atoms/call-out.d.cts +13 -1
  96. package/dist/atoms/call-out.d.ts +13 -1
  97. package/dist/atoms/call-out.js +2 -1
  98. package/dist/atoms/check-box-card.cjs +78 -1
  99. package/dist/atoms/check-box-card.cjs.map +1 -1
  100. package/dist/atoms/check-box-card.d.cts +12 -1
  101. package/dist/atoms/check-box-card.d.ts +12 -1
  102. package/dist/atoms/check-box-card.js +2 -1
  103. package/dist/atoms/check-box-group.cjs +40 -2
  104. package/dist/atoms/check-box-group.cjs.map +1 -1
  105. package/dist/atoms/check-box-group.d.cts +6 -0
  106. package/dist/atoms/check-box-group.d.ts +6 -0
  107. package/dist/atoms/check-box-group.js +2 -1
  108. package/dist/atoms/check-box.cjs +37 -2
  109. package/dist/atoms/check-box.cjs.map +1 -1
  110. package/dist/atoms/check-box.d.cts +5 -2
  111. package/dist/atoms/check-box.d.ts +5 -2
  112. package/dist/atoms/check-box.js +2 -1
  113. package/dist/atoms/code.cjs +73 -1
  114. package/dist/atoms/code.cjs.map +1 -1
  115. package/dist/atoms/code.d.cts +12 -1
  116. package/dist/atoms/code.d.ts +12 -1
  117. package/dist/atoms/code.js +2 -1
  118. package/dist/atoms/data-list.cjs +77 -1
  119. package/dist/atoms/data-list.cjs.map +1 -1
  120. package/dist/atoms/data-list.d.cts +14 -1
  121. package/dist/atoms/data-list.d.ts +14 -1
  122. package/dist/atoms/data-list.js +2 -1
  123. package/dist/atoms/dialog.cjs +49 -6
  124. package/dist/atoms/dialog.cjs.map +1 -1
  125. package/dist/atoms/dialog.js +4 -3
  126. package/dist/atoms/drawer.cjs +33 -3
  127. package/dist/atoms/drawer.cjs.map +1 -1
  128. package/dist/atoms/drawer.js +3 -2
  129. package/dist/atoms/dropdown-menu.cjs +63 -12
  130. package/dist/atoms/dropdown-menu.cjs.map +1 -1
  131. package/dist/atoms/dropdown-menu.d.cts +27 -17
  132. package/dist/atoms/dropdown-menu.d.ts +27 -17
  133. package/dist/atoms/dropdown-menu.js +3 -1
  134. package/dist/atoms/ellipsis-tooltip.cjs +73 -22
  135. package/dist/atoms/ellipsis-tooltip.cjs.map +1 -1
  136. package/dist/atoms/ellipsis-tooltip.d.cts +1 -0
  137. package/dist/atoms/ellipsis-tooltip.d.ts +1 -0
  138. package/dist/atoms/ellipsis-tooltip.js +5 -3
  139. package/dist/atoms/field-error-wrapper.cjs +39 -2
  140. package/dist/atoms/field-error-wrapper.cjs.map +1 -1
  141. package/dist/atoms/field-error-wrapper.js +3 -2
  142. package/dist/atoms/heading.cjs +38 -2
  143. package/dist/atoms/heading.cjs.map +1 -1
  144. package/dist/atoms/heading.d.cts +3 -1
  145. package/dist/atoms/heading.d.ts +3 -1
  146. package/dist/atoms/heading.js +2 -1
  147. package/dist/atoms/hover-card.cjs +85 -1
  148. package/dist/atoms/hover-card.cjs.map +1 -1
  149. package/dist/atoms/hover-card.d.cts +14 -1
  150. package/dist/atoms/hover-card.d.ts +14 -1
  151. package/dist/atoms/hover-card.js +3 -1
  152. package/dist/atoms/icon-button.cjs +33 -3
  153. package/dist/atoms/icon-button.cjs.map +1 -1
  154. package/dist/atoms/icon-button.d.cts +5 -3
  155. package/dist/atoms/icon-button.d.ts +5 -3
  156. package/dist/atoms/icon-button.js +2 -1
  157. package/dist/atoms/index.cjs +996 -506
  158. package/dist/atoms/index.cjs.map +1 -1
  159. package/dist/atoms/index.d.cts +18 -2
  160. package/dist/atoms/index.d.ts +18 -2
  161. package/dist/atoms/index.js +82 -80
  162. package/dist/atoms/link.cjs +40 -2
  163. package/dist/atoms/link.cjs.map +1 -1
  164. package/dist/atoms/link.d.cts +3 -1
  165. package/dist/atoms/link.d.ts +3 -1
  166. package/dist/atoms/link.js +2 -1
  167. package/dist/atoms/list.cjs +43 -4
  168. package/dist/atoms/list.cjs.map +1 -1
  169. package/dist/atoms/list.js +3 -2
  170. package/dist/atoms/pagination.cjs +100 -42
  171. package/dist/atoms/pagination.cjs.map +1 -1
  172. package/dist/atoms/pagination.d.cts +4 -0
  173. package/dist/atoms/pagination.d.ts +4 -0
  174. package/dist/atoms/pagination.js +5 -4
  175. package/dist/atoms/popover.cjs +85 -1
  176. package/dist/atoms/popover.cjs.map +1 -1
  177. package/dist/atoms/popover.d.cts +16 -1
  178. package/dist/atoms/popover.d.ts +16 -1
  179. package/dist/atoms/popover.js +3 -1
  180. package/dist/atoms/progress.cjs +71 -1
  181. package/dist/atoms/progress.cjs.map +1 -1
  182. package/dist/atoms/progress.d.cts +12 -1
  183. package/dist/atoms/progress.d.ts +12 -1
  184. package/dist/atoms/progress.js +2 -1
  185. package/dist/atoms/radio-cards.cjs +78 -1
  186. package/dist/atoms/radio-cards.cjs.map +1 -1
  187. package/dist/atoms/radio-cards.d.cts +12 -1
  188. package/dist/atoms/radio-cards.d.ts +12 -1
  189. package/dist/atoms/radio-cards.js +2 -1
  190. package/dist/atoms/radio-group.cjs +78 -1
  191. package/dist/atoms/radio-group.cjs.map +1 -1
  192. package/dist/atoms/radio-group.d.cts +12 -1
  193. package/dist/atoms/radio-group.d.ts +12 -1
  194. package/dist/atoms/radio-group.js +2 -1
  195. package/dist/atoms/radio.cjs +71 -1
  196. package/dist/atoms/radio.cjs.map +1 -1
  197. package/dist/atoms/radio.d.cts +12 -1
  198. package/dist/atoms/radio.d.ts +12 -1
  199. package/dist/atoms/radio.js +2 -1
  200. package/dist/atoms/segmented-control.cjs.map +1 -1
  201. package/dist/atoms/segmented-control.js +1 -1
  202. package/dist/atoms/select.cjs +78 -24
  203. package/dist/atoms/select.cjs.map +1 -1
  204. package/dist/atoms/select.d.cts +14 -4
  205. package/dist/atoms/select.d.ts +14 -4
  206. package/dist/atoms/select.js +3 -1
  207. package/dist/atoms/switch.cjs +71 -1
  208. package/dist/atoms/switch.cjs.map +1 -1
  209. package/dist/atoms/switch.d.cts +12 -1
  210. package/dist/atoms/switch.d.ts +12 -1
  211. package/dist/atoms/switch.js +2 -1
  212. package/dist/atoms/tab-nav.cjs +76 -1
  213. package/dist/atoms/tab-nav.cjs.map +1 -1
  214. package/dist/atoms/tab-nav.d.cts +16 -1
  215. package/dist/atoms/tab-nav.d.ts +16 -1
  216. package/dist/atoms/tab-nav.js +2 -1
  217. package/dist/atoms/tabs.cjs +76 -1
  218. package/dist/atoms/tabs.cjs.map +1 -1
  219. package/dist/atoms/tabs.d.cts +19 -1
  220. package/dist/atoms/tabs.d.ts +19 -1
  221. package/dist/atoms/tabs.js +2 -1
  222. package/dist/atoms/tooltip.cjs +46 -9
  223. package/dist/atoms/tooltip.cjs.map +1 -1
  224. package/dist/atoms/tooltip.js +3 -1
  225. package/dist/atoms/typo.cjs +39 -2
  226. package/dist/atoms/typo.cjs.map +1 -1
  227. package/dist/atoms/typo.d.cts +3 -1
  228. package/dist/atoms/typo.d.ts +3 -1
  229. package/dist/atoms/typo.js +2 -1
  230. package/dist/chunk-24PX34TH.js +42 -0
  231. package/dist/chunk-24PX34TH.js.map +1 -0
  232. package/dist/{chunk-EWFZXCMV.js → chunk-2FB75HU2.js} +3 -3
  233. package/dist/{chunk-HTNDVNLQ.js → chunk-2I37QLRA.js} +11 -11
  234. package/dist/{chunk-ZVDAEY5Q.js → chunk-2LCH3PDF.js} +14 -4
  235. package/dist/chunk-2LCH3PDF.js.map +1 -0
  236. package/dist/{chunk-3NUQAVE6.js → chunk-2M3UFZUD.js} +15 -2
  237. package/dist/chunk-2M3UFZUD.js.map +1 -0
  238. package/dist/{chunk-7R65MUL6.js → chunk-2O7NVLVP.js} +6 -6
  239. package/dist/{chunk-OE2AVQED.js → chunk-2SM37SB4.js} +7 -7
  240. package/dist/{chunk-FMAOB6BX.js → chunk-2WNLUQX5.js} +7 -7
  241. package/dist/chunk-3TOUVBIB.js +34 -0
  242. package/dist/chunk-3TOUVBIB.js.map +1 -0
  243. package/dist/{chunk-ADD4KFPG.js → chunk-447H6BVE.js} +7 -7
  244. package/dist/{chunk-W7TBPRHG.js → chunk-5OW76AER.js} +2 -2
  245. package/dist/chunk-6TU647KJ.js +37 -0
  246. package/dist/chunk-6TU647KJ.js.map +1 -0
  247. package/dist/{chunk-62HSZXVT.js → chunk-6YJGQWD6.js} +8 -8
  248. package/dist/{chunk-AA6OYHCE.js → chunk-7JW5Z2TL.js} +5 -5
  249. package/dist/{chunk-ZA4NYPSW.js → chunk-7PBLFV5L.js} +6 -6
  250. package/dist/{chunk-XK6VEVOK.js → chunk-7RJYF5L3.js} +14 -4
  251. package/dist/chunk-7RJYF5L3.js.map +1 -0
  252. package/dist/{chunk-HBQY4ELG.js → chunk-A26UWBVB.js} +4 -4
  253. package/dist/{chunk-BYFSYL7V.js → chunk-A4YOY75P.js} +4 -4
  254. package/dist/{chunk-LSDD4TAP.js → chunk-AJTGTGOC.js} +3 -3
  255. package/dist/{chunk-ADAQSPUA.js → chunk-BEKSO5JG.js} +2 -2
  256. package/dist/chunk-BI6TW3ZO.js +51 -0
  257. package/dist/chunk-BI6TW3ZO.js.map +1 -0
  258. package/dist/chunk-BK74U562.js +52 -0
  259. package/dist/chunk-BK74U562.js.map +1 -0
  260. package/dist/{chunk-JWAQUXGB.js → chunk-BZ3EXV6A.js} +3 -3
  261. package/dist/{chunk-Z34HR7RE.js → chunk-C2G3IB7G.js} +2 -2
  262. package/dist/chunk-CGDBUDY3.js +37 -0
  263. package/dist/chunk-CGDBUDY3.js.map +1 -0
  264. package/dist/chunk-DX3DLP5Z.js +39 -0
  265. package/dist/chunk-DX3DLP5Z.js.map +1 -0
  266. package/dist/{chunk-4U6DFH7Z.js → chunk-E6GCU5IQ.js} +2 -2
  267. package/dist/chunk-EIKFXUNC.js +39 -0
  268. package/dist/chunk-EIKFXUNC.js.map +1 -0
  269. package/dist/{chunk-CSKNBWPB.js → chunk-EZN5PMTC.js} +3 -3
  270. package/dist/chunk-EZN5PMTC.js.map +1 -0
  271. package/dist/{chunk-ZOPYFDLO.js → chunk-GAA3RTRW.js} +2 -2
  272. package/dist/{chunk-RSZDAY62.js → chunk-GE4M5GOQ.js} +3 -3
  273. package/dist/chunk-GI4AN2IZ.js +42 -0
  274. package/dist/chunk-GI4AN2IZ.js.map +1 -0
  275. package/dist/{chunk-RNRZ3LV7.js → chunk-GPULIICW.js} +8 -8
  276. package/dist/{chunk-K36TPMKL.js → chunk-GPZXD762.js} +18 -3
  277. package/dist/chunk-GPZXD762.js.map +1 -0
  278. package/dist/{chunk-PMJIFLDT.js → chunk-GR4PG6HY.js} +20 -3
  279. package/dist/chunk-GR4PG6HY.js.map +1 -0
  280. package/dist/{chunk-7PF6I4RN.js → chunk-GRDRXD53.js} +2 -2
  281. package/dist/{chunk-SH6FSA7T.js → chunk-GREYLAMY.js} +6 -6
  282. package/dist/{chunk-SAEPW5JF.js → chunk-GYSRHZRS.js} +4 -4
  283. package/dist/{chunk-UMUSNH2D.js → chunk-H3GQHGFA.js} +5 -5
  284. package/dist/{chunk-OILH5J7Q.js → chunk-HH6LML5K.js} +8 -8
  285. package/dist/{chunk-SE5TPTP2.js → chunk-IA74OBFY.js} +58 -41
  286. package/dist/chunk-IA74OBFY.js.map +1 -0
  287. package/dist/{chunk-KP4SGRJZ.js → chunk-IM6E52L2.js} +11 -11
  288. package/dist/{chunk-TVDKGMBI.js → chunk-IT7ZTP7F.js} +1 -1
  289. package/dist/chunk-IT7ZTP7F.js.map +1 -0
  290. package/dist/{chunk-6OKBTWEC.js → chunk-J7N2IZQW.js} +6 -6
  291. package/dist/{chunk-EEAHZCIK.js → chunk-JCUG2XKB.js} +2 -2
  292. package/dist/chunk-JETG3WEI.js +39 -0
  293. package/dist/chunk-JETG3WEI.js.map +1 -0
  294. package/dist/{chunk-REPTW53S.js → chunk-JNEGSY5N.js} +3 -3
  295. package/dist/chunk-KNIIDDYM.js +34 -0
  296. package/dist/chunk-KNIIDDYM.js.map +1 -0
  297. package/dist/{chunk-4TST4UK5.js → chunk-KO3V7KB6.js} +2 -2
  298. package/dist/{chunk-KTQREW2K.js → chunk-LIWQ47VQ.js} +9 -9
  299. package/dist/{chunk-B37MCN6F.js → chunk-LQ3WGFS7.js} +8 -8
  300. package/dist/{chunk-YADSNPMG.js → chunk-M77YPVQN.js} +3 -3
  301. package/dist/{chunk-GTO7GG2K.js → chunk-MCKWO7K4.js} +5 -5
  302. package/dist/{chunk-OHNBVT52.js → chunk-MGR37YQB.js} +4 -4
  303. package/dist/{chunk-QDC3LFHS.js → chunk-MMLVZWMD.js} +3 -3
  304. package/dist/{chunk-3G3RPU6Q.js → chunk-MP5KZULQ.js} +12 -12
  305. package/dist/{chunk-JRT6KTBG.js → chunk-MSLSD7F6.js} +3 -3
  306. package/dist/{chunk-FGLOHHYP.js → chunk-MSM2QG23.js} +10 -10
  307. package/dist/{chunk-V7IC4EAC.js → chunk-NFMEBYNY.js} +5 -5
  308. package/dist/{chunk-C6ZC7TXX.js → chunk-NIHOKIYW.js} +6 -6
  309. package/dist/{chunk-BESTU2AY.js → chunk-NLHVQJQ2.js} +19 -3
  310. package/dist/chunk-NLHVQJQ2.js.map +1 -0
  311. package/dist/{chunk-M2PVHXOE.js → chunk-NYG34MV6.js} +3 -3
  312. package/dist/{chunk-N7NDDJW5.js → chunk-OA3DGWVL.js} +16 -16
  313. package/dist/{chunk-XLKJYRFY.js → chunk-OBWQ3N5D.js} +4 -4
  314. package/dist/{chunk-IN6S7PPW.js → chunk-OEHVGPWL.js} +17 -17
  315. package/dist/chunk-OLJN3WXR.js +1 -0
  316. package/dist/{chunk-X4OCUESK.js → chunk-OPYRV6XJ.js} +2 -2
  317. package/dist/{chunk-6QVHJ5WW.js → chunk-OQN4E2QP.js} +4 -4
  318. package/dist/{chunk-LE6CNJWH.js → chunk-OWQUXTQ2.js} +4 -4
  319. package/dist/{chunk-NTJLECYY.js → chunk-OYXUWBKS.js} +6 -6
  320. package/dist/{chunk-B5CKZFDM.js → chunk-PE4EBBU4.js} +3 -3
  321. package/dist/{chunk-5TZNUXBT.js → chunk-PXMJK5D5.js} +6 -6
  322. package/dist/{chunk-Y4U24VXI.js → chunk-Q3M6GFHY.js} +3 -3
  323. package/dist/{chunk-ZFTQ2XBH.js → chunk-QPL7SJQM.js} +3 -3
  324. package/dist/{chunk-NX5ESRCX.js → chunk-RMVVV5NH.js} +7 -7
  325. package/dist/chunk-RMW3MQF5.js +42 -0
  326. package/dist/chunk-RMW3MQF5.js.map +1 -0
  327. package/dist/{chunk-Q7KT3UPO.js → chunk-RUJZ5PE7.js} +4 -4
  328. package/dist/chunk-SA7AYYQS.js +39 -0
  329. package/dist/chunk-SA7AYYQS.js.map +1 -0
  330. package/dist/{chunk-6SQZJN5Y.js → chunk-T2CGNUCP.js} +7 -7
  331. package/dist/chunk-T73HHR3I.js +67 -0
  332. package/dist/chunk-T73HHR3I.js.map +1 -0
  333. package/dist/chunk-TNNF5Q62.js +34 -0
  334. package/dist/chunk-TNNF5Q62.js.map +1 -0
  335. package/dist/{chunk-SLFUYRIC.js → chunk-TU6SGJ5Z.js} +6 -6
  336. package/dist/{chunk-AHXS2MBK.js → chunk-TYEGB5FQ.js} +4 -4
  337. package/dist/{chunk-DQ6EIA2T.js → chunk-UFM3EL52.js} +7 -7
  338. package/dist/chunk-UFRB2BVD.js +34 -0
  339. package/dist/chunk-UFRB2BVD.js.map +1 -0
  340. package/dist/chunk-UFWDQGOK.js +36 -0
  341. package/dist/chunk-UFWDQGOK.js.map +1 -0
  342. package/dist/{chunk-CNW3YEAK.js → chunk-VD5ZDFCM.js} +2 -2
  343. package/dist/chunk-VFQD57ZY.js +27 -0
  344. package/dist/chunk-VFQD57ZY.js.map +1 -0
  345. package/dist/chunk-VOME2TE7.js +641 -0
  346. package/dist/chunk-VOME2TE7.js.map +1 -0
  347. package/dist/{chunk-W7X7KSJP.js → chunk-WG5OK3YN.js} +19 -3
  348. package/dist/chunk-WG5OK3YN.js.map +1 -0
  349. package/dist/{chunk-64XYTE54.js → chunk-WY37V3W4.js} +7 -7
  350. package/dist/chunk-WYWM2HSZ.js +33 -0
  351. package/dist/chunk-WYWM2HSZ.js.map +1 -0
  352. package/dist/{chunk-MJMHPIYX.js → chunk-XOQXIPLL.js} +2 -2
  353. package/dist/{chunk-YDNVHAS4.js → chunk-YCLYKBWZ.js} +10 -10
  354. package/dist/{chunk-OOXXMKJS.js → chunk-YGNHAFBW.js} +5 -5
  355. package/dist/{chunk-6PFEG7GQ.js → chunk-YWWYA2JZ.js} +6 -6
  356. package/dist/chunk-YXMB4MCM.js +87 -0
  357. package/dist/chunk-YXMB4MCM.js.map +1 -0
  358. package/dist/{chunk-O5FEYLEG.js → chunk-Z5LPHG2D.js} +3 -3
  359. package/dist/{chunk-6HMQEUHX.js → chunk-ZAFLWQOV.js} +5 -5
  360. package/dist/{chunk-GVUXGWAM.js → chunk-ZC2JPF7B.js} +13 -13
  361. package/dist/{chunk-VYCYVN3L.js → chunk-ZCGH6TJ3.js} +16 -3
  362. package/dist/chunk-ZCGH6TJ3.js.map +1 -0
  363. package/dist/{chunk-5JQOU3IR.js → chunk-ZCQMCIT5.js} +6 -6
  364. package/dist/chunk-ZPUNTAVI.js +38 -0
  365. package/dist/chunk-ZPUNTAVI.js.map +1 -0
  366. package/dist/{chunk-LIV5LHHZ.js → chunk-ZUL3NYQ4.js} +2 -2
  367. package/dist/{chunk-O7DAGKLJ.js → chunk-ZWYQ44CB.js} +12 -12
  368. package/dist/context/dynamic-form-context.cjs +54 -4
  369. package/dist/context/dynamic-form-context.cjs.map +1 -1
  370. package/dist/context/dynamic-form-context.js +5 -4
  371. package/dist/context/index.cjs +54 -4
  372. package/dist/context/index.cjs.map +1 -1
  373. package/dist/context/index.js +5 -4
  374. package/dist/icon.cjs +492 -2
  375. package/dist/icon.cjs.map +1 -1
  376. package/dist/icon.d.cts +1 -1
  377. package/dist/icon.d.ts +1 -1
  378. package/dist/icon.js +493 -3
  379. package/dist/index.cjs +2621 -1631
  380. package/dist/index.cjs.map +1 -1
  381. package/dist/index.css +73 -0
  382. package/dist/index.d.cts +20 -4
  383. package/dist/index.d.ts +20 -4
  384. package/dist/index.js +664 -168
  385. package/dist/molecules/autocomplete-textfield.cjs +111 -46
  386. package/dist/molecules/autocomplete-textfield.cjs.map +1 -1
  387. package/dist/molecules/autocomplete-textfield.js +5 -3
  388. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/index.cjs +367 -209
  389. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/index.cjs.map +1 -1
  390. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/index.js +21 -20
  391. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-comp.cjs +39 -2
  392. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-comp.cjs.map +1 -1
  393. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-comp.js +4 -3
  394. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-body.cjs +293 -164
  395. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-body.cjs.map +1 -1
  396. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-body.js +16 -15
  397. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-footer.cjs +33 -3
  398. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-footer.cjs.map +1 -1
  399. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-footer.js +4 -3
  400. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-header.cjs +85 -19
  401. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-header.cjs.map +1 -1
  402. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-header.js +5 -4
  403. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-radio.cjs +217 -134
  404. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-radio.cjs.map +1 -1
  405. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-radio.js +10 -9
  406. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-satisfaction-option.cjs +172 -110
  407. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-satisfaction-option.cjs.map +1 -1
  408. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-satisfaction-option.js +7 -6
  409. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-satisfaction-text.cjs +39 -2
  410. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-satisfaction-text.cjs.map +1 -1
  411. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-satisfaction-text.js +6 -5
  412. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-text.cjs +80 -20
  413. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-text.cjs.map +1 -1
  414. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-text.js +7 -6
  415. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/complete-review.cjs +64 -7
  416. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/complete-review.cjs.map +1 -1
  417. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/complete-review.js +6 -5
  418. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/index.cjs +275 -115
  419. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/index.cjs.map +1 -1
  420. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/index.js +25 -24
  421. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/start-review.cjs +76 -17
  422. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/start-review.cjs.map +1 -1
  423. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/start-review.js +7 -6
  424. package/dist/molecules/curriculumV2/CurriculumContents/curriculum-ai-traning.cjs +49 -5
  425. package/dist/molecules/curriculumV2/CurriculumContents/curriculum-ai-traning.cjs.map +1 -1
  426. package/dist/molecules/curriculumV2/CurriculumContents/curriculum-ai-traning.js +5 -4
  427. package/dist/molecules/curriculumV2/CurriculumContents/curriculum-file-download.cjs +49 -5
  428. package/dist/molecules/curriculumV2/CurriculumContents/curriculum-file-download.cjs.map +1 -1
  429. package/dist/molecules/curriculumV2/CurriculumContents/curriculum-file-download.js +4 -3
  430. package/dist/molecules/curriculumV2/CurriculumContents/curriculum-review.cjs +318 -153
  431. package/dist/molecules/curriculumV2/CurriculumContents/curriculum-review.cjs.map +1 -1
  432. package/dist/molecules/curriculumV2/CurriculumContents/curriculum-review.js +28 -27
  433. package/dist/molecules/curriculumV2/CurriculumContents/index.cjs +346 -181
  434. package/dist/molecules/curriculumV2/CurriculumContents/index.cjs.map +1 -1
  435. package/dist/molecules/curriculumV2/CurriculumContents/index.js +31 -30
  436. package/dist/molecules/curriculumV2/CurriculumSidebar/Items/curriculum-item-title.cjs +39 -2
  437. package/dist/molecules/curriculumV2/CurriculumSidebar/Items/curriculum-item-title.cjs.map +1 -1
  438. package/dist/molecules/curriculumV2/CurriculumSidebar/Items/curriculum-item-title.js +3 -2
  439. package/dist/molecules/curriculumV2/CurriculumSidebar/Items/section-item.cjs +39 -2
  440. package/dist/molecules/curriculumV2/CurriculumSidebar/Items/section-item.cjs.map +1 -1
  441. package/dist/molecules/curriculumV2/CurriculumSidebar/Items/section-item.js +5 -4
  442. package/dist/molecules/curriculumV2/CurriculumSidebar/Items/section-title.cjs +39 -2
  443. package/dist/molecules/curriculumV2/CurriculumSidebar/Items/section-title.cjs.map +1 -1
  444. package/dist/molecules/curriculumV2/CurriculumSidebar/Items/section-title.js +3 -2
  445. package/dist/molecules/curriculumV2/CurriculumSidebar/index.cjs +195 -135
  446. package/dist/molecules/curriculumV2/CurriculumSidebar/index.cjs.map +1 -1
  447. package/dist/molecules/curriculumV2/CurriculumSidebar/index.js +9 -8
  448. package/dist/molecules/curriculumV2/CurriculumSidebar/sidebar-item.cjs +39 -2
  449. package/dist/molecules/curriculumV2/CurriculumSidebar/sidebar-item.cjs.map +1 -1
  450. package/dist/molecules/curriculumV2/CurriculumSidebar/sidebar-item.js +7 -6
  451. package/dist/molecules/curriculumV2/curriculum-sub-nav.cjs +65 -8
  452. package/dist/molecules/curriculumV2/curriculum-sub-nav.cjs.map +1 -1
  453. package/dist/molecules/curriculumV2/curriculum-sub-nav.js +6 -5
  454. package/dist/molecules/curriculumV2/index.cjs +406 -220
  455. package/dist/molecules/curriculumV2/index.cjs.map +1 -1
  456. package/dist/molecules/curriculumV2/index.js +38 -37
  457. package/dist/molecules/date-picker/date-picker-button.cjs +160 -64
  458. package/dist/molecules/date-picker/date-picker-button.cjs.map +1 -1
  459. package/dist/molecules/date-picker/date-picker-button.d.cts +1 -0
  460. package/dist/molecules/date-picker/date-picker-button.d.ts +1 -0
  461. package/dist/molecules/date-picker/date-picker-button.js +10 -8
  462. package/dist/molecules/date-picker/index.cjs +242 -146
  463. package/dist/molecules/date-picker/index.cjs.map +1 -1
  464. package/dist/molecules/date-picker/index.js +9 -7
  465. package/dist/molecules/description-json-render.cjs +182 -120
  466. package/dist/molecules/description-json-render.cjs.map +1 -1
  467. package/dist/molecules/description-json-render.js +7 -6
  468. package/dist/molecules/download-card.cjs +67 -8
  469. package/dist/molecules/download-card.cjs.map +1 -1
  470. package/dist/molecules/download-card.js +5 -4
  471. package/dist/molecules/dynamic-field.cjs +222 -72
  472. package/dist/molecules/dynamic-field.cjs.map +1 -1
  473. package/dist/molecules/dynamic-field.js +13 -11
  474. package/dist/molecules/dynamic-form-editor-field-editor-panel.cjs +359 -267
  475. package/dist/molecules/dynamic-form-editor-field-editor-panel.cjs.map +1 -1
  476. package/dist/molecules/dynamic-form-editor-field-editor-panel.js +10 -8
  477. package/dist/molecules/dynamic-form-editor-field-list-panel.cjs +115 -47
  478. package/dist/molecules/dynamic-form-editor-field-list-panel.cjs.map +1 -1
  479. package/dist/molecules/dynamic-form-editor-field-list-panel.js +6 -4
  480. package/dist/molecules/dynamic-form-editor-issues-panel.cjs +39 -2
  481. package/dist/molecules/dynamic-form-editor-issues-panel.cjs.map +1 -1
  482. package/dist/molecules/dynamic-form-editor-issues-panel.js +4 -3
  483. package/dist/molecules/dynamic-form-editor-preview-panel.cjs +239 -89
  484. package/dist/molecules/dynamic-form-editor-preview-panel.cjs.map +1 -1
  485. package/dist/molecules/dynamic-form-editor-preview-panel.js +16 -14
  486. package/dist/molecules/dynamic-form-editor.cjs +571 -407
  487. package/dist/molecules/dynamic-form-editor.cjs.map +1 -1
  488. package/dist/molecules/dynamic-form-editor.js +23 -21
  489. package/dist/molecules/dynamic-form.cjs +235 -85
  490. package/dist/molecules/dynamic-form.cjs.map +1 -1
  491. package/dist/molecules/dynamic-form.js +14 -12
  492. package/dist/molecules/expand-table/index.cjs +100 -42
  493. package/dist/molecules/expand-table/index.cjs.map +1 -1
  494. package/dist/molecules/expand-table/index.js +7 -6
  495. package/dist/molecules/force-refresh.cjs +79 -24
  496. package/dist/molecules/force-refresh.cjs.map +1 -1
  497. package/dist/molecules/force-refresh.js +4 -3
  498. package/dist/molecules/form/form.cjs +54 -4
  499. package/dist/molecules/form/form.cjs.map +1 -1
  500. package/dist/molecules/form/form.js +4 -3
  501. package/dist/molecules/form/index.cjs +54 -4
  502. package/dist/molecules/form/index.cjs.map +1 -1
  503. package/dist/molecules/form/index.js +4 -3
  504. package/dist/molecules/ghost-post.cjs +72 -14
  505. package/dist/molecules/ghost-post.cjs.map +1 -1
  506. package/dist/molecules/ghost-post.d.cts +1 -0
  507. package/dist/molecules/ghost-post.d.ts +1 -0
  508. package/dist/molecules/ghost-post.js +5 -4
  509. package/dist/molecules/index.cjs +1334 -989
  510. package/dist/molecules/index.cjs.map +1 -1
  511. package/dist/molecules/index.d.cts +1 -0
  512. package/dist/molecules/index.d.ts +1 -0
  513. package/dist/molecules/index.js +79 -78
  514. package/dist/molecules/learning-post.cjs +109 -37
  515. package/dist/molecules/learning-post.cjs.map +1 -1
  516. package/dist/molecules/learning-post.d.cts +1 -0
  517. package/dist/molecules/learning-post.d.ts +1 -0
  518. package/dist/molecules/learning-post.js +7 -6
  519. package/dist/molecules/navigation.cjs +49 -5
  520. package/dist/molecules/navigation.cjs.map +1 -1
  521. package/dist/molecules/navigation.js +4 -3
  522. package/dist/molecules/one-on-one-guide-list.cjs +56 -6
  523. package/dist/molecules/one-on-one-guide-list.cjs.map +1 -1
  524. package/dist/molecules/one-on-one-guide-list.js +5 -4
  525. package/dist/molecules/radio-button-card.cjs +77 -13
  526. package/dist/molecules/radio-button-card.cjs.map +1 -1
  527. package/dist/molecules/radio-button-card.js +4 -3
  528. package/dist/molecules/stepper.cjs +55 -4
  529. package/dist/molecules/stepper.cjs.map +1 -1
  530. package/dist/molecules/stepper.js +5 -4
  531. package/dist/molecules/tag-selector.cjs +256 -180
  532. package/dist/molecules/tag-selector.cjs.map +1 -1
  533. package/dist/molecules/tag-selector.js +9 -7
  534. package/dist/molecules/time-select.cjs +180 -126
  535. package/dist/molecules/time-select.cjs.map +1 -1
  536. package/dist/molecules/time-select.d.cts +1 -0
  537. package/dist/molecules/time-select.d.ts +1 -0
  538. package/dist/molecules/time-select.js +7 -5
  539. package/dist/molecules/training-info-guideline.cjs +75 -11
  540. package/dist/molecules/training-info-guideline.cjs.map +1 -1
  541. package/dist/molecules/training-info-guideline.js +7 -6
  542. package/dist/theme/theme-provider.cjs +53 -1
  543. package/dist/theme/theme-provider.cjs.map +1 -1
  544. package/dist/theme/theme-provider.d.cts +18 -2
  545. package/dist/theme/theme-provider.d.ts +18 -2
  546. package/dist/theme/theme-provider.js +4 -1
  547. package/dist/utils/convert-button-size.d.cts +1 -0
  548. package/dist/utils/convert-button-size.d.ts +1 -0
  549. package/dist/utils/convert-icon-button-size.d.cts +1 -0
  550. package/dist/utils/convert-icon-button-size.d.ts +1 -0
  551. package/dist/utils/curriculum.utils.cjs.map +1 -1
  552. package/dist/utils/curriculum.utils.js +1 -1
  553. package/dist/utils/get-callout-icon-component.cjs.map +1 -1
  554. package/dist/utils/get-callout-icon-component.js +2 -2
  555. package/dist/utils/index.cjs +25 -0
  556. package/dist/utils/index.cjs.map +1 -1
  557. package/dist/utils/index.d.cts +2 -0
  558. package/dist/utils/index.d.ts +2 -0
  559. package/dist/utils/index.js +7 -3
  560. package/dist/utils/resolve-color.cjs +51 -0
  561. package/dist/utils/resolve-color.cjs.map +1 -0
  562. package/dist/utils/resolve-color.d.cts +38 -0
  563. package/dist/utils/resolve-color.d.ts +38 -0
  564. package/dist/utils/resolve-color.js +8 -0
  565. package/dist/utils/resolve-color.js.map +1 -0
  566. package/package.json +1 -1
  567. package/src/atoms/alert-dialog.tsx +38 -1
  568. package/src/atoms/avatar.tsx +18 -3
  569. package/src/atoms/badge.tsx +15 -22
  570. package/src/atoms/blockquote.tsx +31 -1
  571. package/src/atoms/button.tsx +12 -3
  572. package/src/atoms/button.type.ts +6 -1
  573. package/src/atoms/call-out.tsx +48 -1
  574. package/src/atoms/check-box-card.tsx +51 -1
  575. package/src/atoms/check-box-group.tsx +19 -2
  576. package/src/atoms/check-box.tsx +17 -3
  577. package/src/atoms/code.tsx +31 -1
  578. package/src/atoms/data-list.tsx +47 -1
  579. package/src/atoms/dropdown-menu.tsx +53 -6
  580. package/src/atoms/heading.tsx +22 -4
  581. package/src/atoms/hover-card.tsx +37 -1
  582. package/src/atoms/icon-button.tsx +12 -3
  583. package/src/atoms/link.tsx +21 -3
  584. package/src/atoms/pagination.tsx +21 -2
  585. package/src/atoms/popover.tsx +37 -1
  586. package/src/atoms/progress.tsx +31 -1
  587. package/src/atoms/radio-cards.tsx +49 -1
  588. package/src/atoms/radio-group.tsx +49 -1
  589. package/src/atoms/radio.tsx +31 -1
  590. package/src/atoms/segmented-control.tsx +3 -0
  591. package/src/atoms/select.tsx +67 -19
  592. package/src/atoms/switch.tsx +31 -1
  593. package/src/atoms/tab-nav.tsx +42 -1
  594. package/src/atoms/tabs.tsx +40 -1
  595. package/src/atoms/tooltip.tsx +14 -1
  596. package/src/atoms/typo.tsx +21 -3
  597. package/src/icon.ts +303 -57
  598. package/src/molecules/radio-button-card.tsx +6 -4
  599. package/src/theme/theme-provider.tsx +38 -3
  600. package/src/utils/index.ts +2 -1
  601. package/src/utils/resolve-color.ts +86 -0
  602. package/dist/chunk-365QMK4D.js +0 -7
  603. package/dist/chunk-365QMK4D.js.map +0 -1
  604. package/dist/chunk-3NUQAVE6.js.map +0 -1
  605. package/dist/chunk-5AVBYDPB.js +0 -7
  606. package/dist/chunk-5AVBYDPB.js.map +0 -1
  607. package/dist/chunk-5ZITU5L7.js +0 -7
  608. package/dist/chunk-5ZITU5L7.js.map +0 -1
  609. package/dist/chunk-6DJOIRMF.js +0 -7
  610. package/dist/chunk-6DJOIRMF.js.map +0 -1
  611. package/dist/chunk-6IVCARWS.js +0 -7
  612. package/dist/chunk-6IVCARWS.js.map +0 -1
  613. package/dist/chunk-7FKRQQYK.js +0 -15
  614. package/dist/chunk-7FKRQQYK.js.map +0 -1
  615. package/dist/chunk-B6XJN6EC.js +0 -7
  616. package/dist/chunk-B6XJN6EC.js.map +0 -1
  617. package/dist/chunk-BESTU2AY.js.map +0 -1
  618. package/dist/chunk-CSKNBWPB.js.map +0 -1
  619. package/dist/chunk-DHZVOXFM.js +0 -35
  620. package/dist/chunk-DHZVOXFM.js.map +0 -1
  621. package/dist/chunk-FPD73OHW.js +0 -7
  622. package/dist/chunk-FPD73OHW.js.map +0 -1
  623. package/dist/chunk-HFVVQEOZ.js +0 -1
  624. package/dist/chunk-J242TTFH.js +0 -7
  625. package/dist/chunk-J242TTFH.js.map +0 -1
  626. package/dist/chunk-JU7GB6R2.js +0 -151
  627. package/dist/chunk-JU7GB6R2.js.map +0 -1
  628. package/dist/chunk-K36TPMKL.js.map +0 -1
  629. package/dist/chunk-KTSEZC6A.js +0 -49
  630. package/dist/chunk-KTSEZC6A.js.map +0 -1
  631. package/dist/chunk-MIMJ7LON.js +0 -7
  632. package/dist/chunk-MIMJ7LON.js.map +0 -1
  633. package/dist/chunk-O3T3TM3V.js +0 -7
  634. package/dist/chunk-O3T3TM3V.js.map +0 -1
  635. package/dist/chunk-OHMOP5PV.js +0 -7
  636. package/dist/chunk-OHMOP5PV.js.map +0 -1
  637. package/dist/chunk-OYM4XCHQ.js +0 -7
  638. package/dist/chunk-OYM4XCHQ.js.map +0 -1
  639. package/dist/chunk-PMJIFLDT.js.map +0 -1
  640. package/dist/chunk-SE5TPTP2.js.map +0 -1
  641. package/dist/chunk-SMLC2O3V.js +0 -42
  642. package/dist/chunk-SMLC2O3V.js.map +0 -1
  643. package/dist/chunk-TVDKGMBI.js.map +0 -1
  644. package/dist/chunk-VTJZMOSP.js +0 -7
  645. package/dist/chunk-VTJZMOSP.js.map +0 -1
  646. package/dist/chunk-VYCYVN3L.js.map +0 -1
  647. package/dist/chunk-W7X7KSJP.js.map +0 -1
  648. package/dist/chunk-X2GMDZ7M.js +0 -59
  649. package/dist/chunk-X2GMDZ7M.js.map +0 -1
  650. package/dist/chunk-XK6VEVOK.js.map +0 -1
  651. package/dist/chunk-YGL6SWKN.js +0 -7
  652. package/dist/chunk-YGL6SWKN.js.map +0 -1
  653. package/dist/chunk-YJ7ZFOYL.js +0 -7
  654. package/dist/chunk-YJ7ZFOYL.js.map +0 -1
  655. package/dist/chunk-ZVDAEY5Q.js.map +0 -1
  656. /package/dist/{chunk-EWFZXCMV.js.map → chunk-2FB75HU2.js.map} +0 -0
  657. /package/dist/{chunk-HTNDVNLQ.js.map → chunk-2I37QLRA.js.map} +0 -0
  658. /package/dist/{chunk-7R65MUL6.js.map → chunk-2O7NVLVP.js.map} +0 -0
  659. /package/dist/{chunk-OE2AVQED.js.map → chunk-2SM37SB4.js.map} +0 -0
  660. /package/dist/{chunk-FMAOB6BX.js.map → chunk-2WNLUQX5.js.map} +0 -0
  661. /package/dist/{chunk-ADD4KFPG.js.map → chunk-447H6BVE.js.map} +0 -0
  662. /package/dist/{chunk-W7TBPRHG.js.map → chunk-5OW76AER.js.map} +0 -0
  663. /package/dist/{chunk-62HSZXVT.js.map → chunk-6YJGQWD6.js.map} +0 -0
  664. /package/dist/{chunk-AA6OYHCE.js.map → chunk-7JW5Z2TL.js.map} +0 -0
  665. /package/dist/{chunk-ZA4NYPSW.js.map → chunk-7PBLFV5L.js.map} +0 -0
  666. /package/dist/{chunk-HBQY4ELG.js.map → chunk-A26UWBVB.js.map} +0 -0
  667. /package/dist/{chunk-BYFSYL7V.js.map → chunk-A4YOY75P.js.map} +0 -0
  668. /package/dist/{chunk-LSDD4TAP.js.map → chunk-AJTGTGOC.js.map} +0 -0
  669. /package/dist/{chunk-ADAQSPUA.js.map → chunk-BEKSO5JG.js.map} +0 -0
  670. /package/dist/{chunk-JWAQUXGB.js.map → chunk-BZ3EXV6A.js.map} +0 -0
  671. /package/dist/{chunk-Z34HR7RE.js.map → chunk-C2G3IB7G.js.map} +0 -0
  672. /package/dist/{chunk-4U6DFH7Z.js.map → chunk-E6GCU5IQ.js.map} +0 -0
  673. /package/dist/{chunk-ZOPYFDLO.js.map → chunk-GAA3RTRW.js.map} +0 -0
  674. /package/dist/{chunk-RSZDAY62.js.map → chunk-GE4M5GOQ.js.map} +0 -0
  675. /package/dist/{chunk-RNRZ3LV7.js.map → chunk-GPULIICW.js.map} +0 -0
  676. /package/dist/{chunk-7PF6I4RN.js.map → chunk-GRDRXD53.js.map} +0 -0
  677. /package/dist/{chunk-SH6FSA7T.js.map → chunk-GREYLAMY.js.map} +0 -0
  678. /package/dist/{chunk-SAEPW5JF.js.map → chunk-GYSRHZRS.js.map} +0 -0
  679. /package/dist/{chunk-UMUSNH2D.js.map → chunk-H3GQHGFA.js.map} +0 -0
  680. /package/dist/{chunk-OILH5J7Q.js.map → chunk-HH6LML5K.js.map} +0 -0
  681. /package/dist/{chunk-KP4SGRJZ.js.map → chunk-IM6E52L2.js.map} +0 -0
  682. /package/dist/{chunk-6OKBTWEC.js.map → chunk-J7N2IZQW.js.map} +0 -0
  683. /package/dist/{chunk-EEAHZCIK.js.map → chunk-JCUG2XKB.js.map} +0 -0
  684. /package/dist/{chunk-REPTW53S.js.map → chunk-JNEGSY5N.js.map} +0 -0
  685. /package/dist/{chunk-4TST4UK5.js.map → chunk-KO3V7KB6.js.map} +0 -0
  686. /package/dist/{chunk-KTQREW2K.js.map → chunk-LIWQ47VQ.js.map} +0 -0
  687. /package/dist/{chunk-B37MCN6F.js.map → chunk-LQ3WGFS7.js.map} +0 -0
  688. /package/dist/{chunk-YADSNPMG.js.map → chunk-M77YPVQN.js.map} +0 -0
  689. /package/dist/{chunk-GTO7GG2K.js.map → chunk-MCKWO7K4.js.map} +0 -0
  690. /package/dist/{chunk-OHNBVT52.js.map → chunk-MGR37YQB.js.map} +0 -0
  691. /package/dist/{chunk-QDC3LFHS.js.map → chunk-MMLVZWMD.js.map} +0 -0
  692. /package/dist/{chunk-3G3RPU6Q.js.map → chunk-MP5KZULQ.js.map} +0 -0
  693. /package/dist/{chunk-JRT6KTBG.js.map → chunk-MSLSD7F6.js.map} +0 -0
  694. /package/dist/{chunk-FGLOHHYP.js.map → chunk-MSM2QG23.js.map} +0 -0
  695. /package/dist/{chunk-V7IC4EAC.js.map → chunk-NFMEBYNY.js.map} +0 -0
  696. /package/dist/{chunk-C6ZC7TXX.js.map → chunk-NIHOKIYW.js.map} +0 -0
  697. /package/dist/{chunk-M2PVHXOE.js.map → chunk-NYG34MV6.js.map} +0 -0
  698. /package/dist/{chunk-N7NDDJW5.js.map → chunk-OA3DGWVL.js.map} +0 -0
  699. /package/dist/{chunk-XLKJYRFY.js.map → chunk-OBWQ3N5D.js.map} +0 -0
  700. /package/dist/{chunk-IN6S7PPW.js.map → chunk-OEHVGPWL.js.map} +0 -0
  701. /package/dist/{chunk-HFVVQEOZ.js.map → chunk-OLJN3WXR.js.map} +0 -0
  702. /package/dist/{chunk-X4OCUESK.js.map → chunk-OPYRV6XJ.js.map} +0 -0
  703. /package/dist/{chunk-6QVHJ5WW.js.map → chunk-OQN4E2QP.js.map} +0 -0
  704. /package/dist/{chunk-LE6CNJWH.js.map → chunk-OWQUXTQ2.js.map} +0 -0
  705. /package/dist/{chunk-NTJLECYY.js.map → chunk-OYXUWBKS.js.map} +0 -0
  706. /package/dist/{chunk-B5CKZFDM.js.map → chunk-PE4EBBU4.js.map} +0 -0
  707. /package/dist/{chunk-5TZNUXBT.js.map → chunk-PXMJK5D5.js.map} +0 -0
  708. /package/dist/{chunk-Y4U24VXI.js.map → chunk-Q3M6GFHY.js.map} +0 -0
  709. /package/dist/{chunk-ZFTQ2XBH.js.map → chunk-QPL7SJQM.js.map} +0 -0
  710. /package/dist/{chunk-NX5ESRCX.js.map → chunk-RMVVV5NH.js.map} +0 -0
  711. /package/dist/{chunk-Q7KT3UPO.js.map → chunk-RUJZ5PE7.js.map} +0 -0
  712. /package/dist/{chunk-6SQZJN5Y.js.map → chunk-T2CGNUCP.js.map} +0 -0
  713. /package/dist/{chunk-SLFUYRIC.js.map → chunk-TU6SGJ5Z.js.map} +0 -0
  714. /package/dist/{chunk-AHXS2MBK.js.map → chunk-TYEGB5FQ.js.map} +0 -0
  715. /package/dist/{chunk-DQ6EIA2T.js.map → chunk-UFM3EL52.js.map} +0 -0
  716. /package/dist/{chunk-CNW3YEAK.js.map → chunk-VD5ZDFCM.js.map} +0 -0
  717. /package/dist/{chunk-64XYTE54.js.map → chunk-WY37V3W4.js.map} +0 -0
  718. /package/dist/{chunk-MJMHPIYX.js.map → chunk-XOQXIPLL.js.map} +0 -0
  719. /package/dist/{chunk-YDNVHAS4.js.map → chunk-YCLYKBWZ.js.map} +0 -0
  720. /package/dist/{chunk-OOXXMKJS.js.map → chunk-YGNHAFBW.js.map} +0 -0
  721. /package/dist/{chunk-6PFEG7GQ.js.map → chunk-YWWYA2JZ.js.map} +0 -0
  722. /package/dist/{chunk-O5FEYLEG.js.map → chunk-Z5LPHG2D.js.map} +0 -0
  723. /package/dist/{chunk-6HMQEUHX.js.map → chunk-ZAFLWQOV.js.map} +0 -0
  724. /package/dist/{chunk-GVUXGWAM.js.map → chunk-ZC2JPF7B.js.map} +0 -0
  725. /package/dist/{chunk-5JQOU3IR.js.map → chunk-ZCQMCIT5.js.map} +0 -0
  726. /package/dist/{chunk-LIV5LHHZ.js.map → chunk-ZUL3NYQ4.js.map} +0 -0
  727. /package/dist/{chunk-O7DAGKLJ.js.map → chunk-ZWYQ44CB.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/molecules/curriculumV2/CurriculumContents/curriculum-file-download.tsx","../../../../src/atoms/button.tsx","../../../../src/utils/convert-button-size.ts","../../../../src/atoms/flex.tsx","../../../../src/atoms/typo.tsx","../../../../src/utils/map-with-responsive.ts","../../../../src/molecules/curriculumV2/curriculum-context.tsx"],"sourcesContent":["import React, { useMemo } from 'react';\nimport { Button } from '@/atoms/button';\nimport { Flex } from '@/atoms/flex';\nimport { Typo } from '@/atoms/typo';\nimport type {\n CurriculumFileDownloadContents,\n CurriculumFileDownloadFile,\n} from '@/types/curriculumContents.type';\nimport { useCurriculumContext } from '../curriculum-context';\n\ninterface CurriculumFileDownloadProps {\n item: CurriculumFileDownloadContents;\n}\n\nfunction CurriculumFileDownload(\n props: CurriculumFileDownloadProps\n): React.ReactNode {\n const { item } = props;\n const { title, description, files } = item;\n const { onClickfileDownload } = useCurriculumContext();\n\n const isCallbackReady = useMemo((): boolean => {\n return typeof onClickfileDownload === 'function';\n }, [onClickfileDownload]);\n\n const handleClickFile = (file: CurriculumFileDownloadFile): void => {\n if (!onClickfileDownload) {\n return;\n }\n onClickfileDownload(item, file);\n };\n\n return (\n <Flex\n align=\"center\"\n direction=\"column\"\n height=\"100%\"\n justify=\"center\"\n px=\"3\"\n py=\"3\"\n width=\"100%\"\n >\n <Typo color=\"gray\" weight=\"bold\">\n {title}\n </Typo>\n {description ? (\n <Typo align=\"center\" as=\"p\" color=\"gray\">\n {description}\n </Typo>\n ) : null}\n\n <Flex\n direction=\"column\"\n gap=\"2\"\n mt=\"4\"\n style={{ width: '100%', maxWidth: 520 }}\n >\n {files.map((file) => {\n return (\n <Button\n disabled={!isCallbackReady}\n key={file.url}\n onClick={() => {\n handleClickFile(file);\n }}\n variant=\"outline\"\n >\n <Typo truncate>{file.name}</Typo>\n </Button>\n );\n })}\n </Flex>\n\n {!isCallbackReady ? (\n <Typo align=\"center\" color=\"gray\" mt=\"3\" variant=\"caption\">\n 파일 다운로드 기능이 설정되지 않았습니다.\n </Typo>\n ) : null}\n </Flex>\n );\n}\n\nexport default CurriculumFileDownload;\n\n","import React, { forwardRef, useMemo } from 'react';\nimport { Button as RadixButton } from '@radix-ui/themes';\nimport { clsx } from 'clsx';\nimport { convertSize } from '../utils/convert-button-size';\nimport type { ButtonProps } from './button.type';\n\nexport const Button = forwardRef<HTMLButtonElement, ButtonProps>(\n (props, ref): React.ReactNode => {\n const { size, style, variant, ...restProps } = props;\n\n const radixSize = useMemo(() => {\n return convertSize(size);\n }, [size]);\n\n const radixVariant = useMemo(() => {\n if (variant === 'transparent') return 'ghost';\n return variant;\n }, [variant]);\n\n const className = useMemo(() => {\n return clsx(props.className, { transparent: variant === 'transparent' });\n }, [props.className, variant]);\n\n return (\n <RadixButton\n style={style}\n type=\"button\"\n variant={radixVariant}\n {...restProps}\n className={className}\n ref={ref}\n size={radixSize}\n />\n );\n }\n);\n\nButton.displayName = 'Button';\n","import { type ButtonProps as RadixButtonProps } from '@radix-ui/themes';\nimport type { Breakpoint } from '@radix-ui/themes/props';\nimport type { ButtonProps } from '../atoms/button.type';\n\nexport const convertSizeStr = (\n size: ButtonProps['size']\n): '1' | '2' | '3' | '4' => {\n switch (size) {\n case 'small':\n return '1';\n case 'medium':\n return '2';\n case 'large':\n return '3';\n default:\n return '2';\n }\n};\n\nexport const convertSizeResponse = (\n size: ButtonProps['size']\n): RadixButtonProps['size'] => {\n if (typeof size === 'string' || typeof size === 'undefined') {\n return convertSizeStr(size);\n }\n const radixSize: RadixButtonProps['size'] = {};\n let key: Breakpoint = 'initial';\n for (key in size) {\n radixSize[key] = convertSizeStr(size[key]);\n }\n return radixSize;\n};\n\nexport const convertSize = (\n size: ButtonProps['size']\n): RadixButtonProps['size'] => {\n if (typeof size === 'string') {\n return convertSizeStr(size);\n }\n return convertSizeResponse(size);\n};\n","export { Flex, type FlexProps } from '@radix-ui/themes';\n","import type { TextProps as RadixTextProps } from '@radix-ui/themes';\nimport type { Responsive } from '@radix-ui/themes/props';\nimport { Text as RadixText } from '@radix-ui/themes';\nimport React, { useMemo, forwardRef } from 'react';\nimport { mapWithResponsive } from '@/utils/map-with-responsive';\n\nexport type TypoProps = RadixTextProps & {\n variant?: Responsive<'body' | 'caption' | 'subtitle'>;\n};\n\nexport const Typo = forwardRef<HTMLSpanElement, TypoProps>(\n (props: TypoProps, ref): React.ReactNode => {\n const { size, variant, children, ...rest } = props;\n\n const radixSize = useMemo<RadixTextProps['size']>(() => {\n if (size !== undefined) return size;\n\n if (variant === undefined) return '2';\n\n return mapWithResponsive({\n value: variant,\n mapFn: (variantValue?: 'body' | 'caption' | 'subtitle') => {\n switch (variantValue) {\n case 'caption':\n return '1';\n case 'subtitle':\n return '3';\n case 'body':\n default:\n return '2';\n }\n },\n });\n }, [size, variant]);\n\n return (\n <RadixText {...rest} ref={ref} size={radixSize}>\n {children}\n </RadixText>\n );\n }\n);\n\nTypo.displayName = 'Typo';\n","import type { Breakpoint, Responsive } from \"@radix-ui/themes/props\";\n\nexport const mapWithResponsive = <T extends string,K extends string>(\n args: {value: Responsive<T>, mapFn: (value?:T)=>K |undefined}\n): Responsive<K> | undefined => {\n const {value, mapFn} = args;\n if(typeof value === 'string'){\n return mapFn(value);\n };\n \n if(typeof value === 'object'){\n const newObj: Partial<Record<Breakpoint, K>> = {};\n let key: Breakpoint;\n for(key in value){\n newObj[key] = mapFn(value[key]);\n }\n return newObj;\n }\n return value;\n};\n","import React, {\n createContext,\n useContext,\n useState,\n useMemo,\n useCallback,\n useRef,\n useEffect,\n} from 'react';\nimport {\n type CurriculumFileDownloadContents,\n type CurriculumFileDownloadFile,\n type CurriculumSectionTitleContents,\n} from '@/types/curriculumContents.type';\nimport type {\n Curriculum,\n CurriculumListContents,\n} from '@/types/curriculum.type';\n\nconst EMPTY_SELECTED_ITEM: CurriculumListContents = {\n uuid: '',\n type: 'sectionTitle',\n title: '',\n};\n\nfunction getInitialSelectedIndex(args: {\n initialSelectedIndex?: number;\n selectableIndexes: number[];\n}): number {\n const { initialSelectedIndex, selectableIndexes } = args;\n\n if (\n typeof initialSelectedIndex === 'number' &&\n selectableIndexes.includes(initialSelectedIndex)\n ) {\n return initialSelectedIndex;\n }\n\n if (selectableIndexes.length > 0) {\n return selectableIndexes[0];\n }\n\n return 0;\n}\n\nexport interface CurriculumContextValue {\n curriculum: Curriculum;\n selectedIndex: number;\n setSelectedIndex: (idx: number) => void;\n selectedId: string;\n hasPrev: boolean;\n hasNext: boolean;\n selectPrev: (cb?: (moveIndex: number) => void) => void;\n selectNext: (cb?: (moveIndex: number) => void) => void;\n selectedItem: CurriculumListContents;\n /** 선택된 아이템의 이전 아이템 중 가장 가까운 섹션 타이틀 */\n selectedSectionTitle: CurriculumSectionTitleContents | null;\n /** 컨텐츠 목록 스크롤 이동 함수 */\n scrollNavItem: (uuid: string) => void;\n /** 스크롤 영역 참조 */\n scrollAreaRef: React.RefObject<HTMLDivElement | null>;\n /** 리뷰 제출 함수 */\n onReviewSubmit: ({\n reviewId,\n answer,\n }: {\n reviewId: string;\n answer: Record<string, string>;\n }) => Promise<boolean>;\n /** 리뷰 응답 값 변경 시 호출 */\n onReviewValueChange: ({\n reviewId,\n answer,\n }: {\n reviewId: string;\n answer: Record<string, string>;\n }) => void;\n /** 파일 다운로드 클릭 시 호출 */\n onClickfileDownload?: (\n item: CurriculumFileDownloadContents,\n file: CurriculumFileDownloadFile\n ) => void;\n /** 과제 완료 후 저장된 값 */\n curriculumReviewAnswers: Record<string, string>;\n /** 과제 완료 전 임시 저장된 값 */\n tempCurriculumReviewAnswers: Record<string, string>;\n /** 항목 수강 완료 여부 */\n curriculumCompleteMap: Record<string, boolean>;\n /** action Button 클릭시 호출 */\n onActionButtonClick: (item: CurriculumListContents) => void;\n /** 초기 선택 인덱스 */\n initialSelectedIndex?: number;\n /** 커스텀 탭 주입값 */\n customTabs?: {\n content: React.ReactElement;\n label: string;\n value: string;\n }[];\n}\n\nconst CurriculumContext = createContext<CurriculumContextValue | undefined>(\n undefined\n);\n\nexport interface CurriculumProviderProps\n extends Pick<\n CurriculumContextValue,\n | 'customTabs'\n | 'curriculum'\n | 'onReviewSubmit'\n | 'onReviewValueChange'\n | 'onClickfileDownload'\n | 'curriculumReviewAnswers'\n | 'tempCurriculumReviewAnswers'\n | 'curriculumCompleteMap'\n | 'onActionButtonClick'\n | 'initialSelectedIndex'\n > {\n children: React.ReactNode;\n onReviewValueChange: ({\n reviewId,\n answer,\n }: {\n reviewId: string;\n answer: Record<string, string>;\n }) => void;\n\n /** 현재 화면에 표시 중인 컨텐츠 인덱스 변경 시 호출 */\n onChangeSelectedContent?: (item: CurriculumListContents) => void;\n}\n\nexport function CurriculumProvider(\n props: CurriculumProviderProps\n): React.ReactElement {\n const {\n children,\n curriculum,\n onReviewSubmit,\n onReviewValueChange,\n onClickfileDownload,\n curriculumReviewAnswers,\n tempCurriculumReviewAnswers,\n curriculumCompleteMap,\n onChangeSelectedContent,\n onActionButtonClick,\n initialSelectedIndex,\n customTabs,\n } = props;\n const sidebarRef = useRef<HTMLDivElement>(null);\n\n const scrollNavItem = useCallback((index: string) => {\n const element = sidebarRef.current?.querySelector(\n `[data-curriculum-item-index=\"${index}\"]`\n );\n if (element) {\n element.scrollIntoView({ behavior: 'smooth', block: 'start' });\n }\n }, []);\n\n const list = curriculum.contents.list;\n // 선택 가능한 인덱스만 추출\n const selectableIndexes = useMemo(\n () =>\n list\n .map((item, i) => (item.type !== 'sectionTitle' ? i : null))\n .filter((i): i is number => i !== null),\n [list]\n );\n // 최초 선택값: 첫 번째 선택 가능한 인덱스\n const [selectedIndexState, setSelectedIndexState] = useState<number>(\n getInitialSelectedIndex({ initialSelectedIndex, selectableIndexes })\n );\n\n // 리스트/선택 가능 인덱스가 변할 때 선택값을 자동 보정\n useEffect(() => {\n if (selectableIndexes.length === 0) {\n if (selectedIndexState !== 0) {\n setSelectedIndexState(0);\n }\n return;\n }\n\n if (!selectableIndexes.includes(selectedIndexState)) {\n setSelectedIndexState(selectableIndexes[0]);\n }\n }, [selectableIndexes, selectedIndexState]);\n\n // 선택 인덱스 보정 함수\n const setSelectedIndex = useCallback(\n (idx: number) => {\n if (selectableIndexes.includes(idx)) {\n setSelectedIndexState(idx);\n } else {\n // idx가 선택 불가면, selectableIndexes에서 가장 가까운 다음 인덱스 선택\n const next = selectableIndexes.find((i) => i > idx);\n const prev = [...selectableIndexes].reverse().find((i) => i < idx);\n if (next !== undefined) setSelectedIndexState(next);\n else if (prev !== undefined) setSelectedIndexState(prev);\n }\n },\n [selectableIndexes]\n );\n\n // 현재 선택 인덱스가 selectableIndexes 내 몇 번째인지\n const selectablePos = useMemo(\n () => selectableIndexes.indexOf(selectedIndexState),\n [selectableIndexes, selectedIndexState]\n );\n const hasPrev = selectablePos > 0;\n const hasNext = selectablePos < selectableIndexes.length - 1;\n\n const selectPrev = useCallback(\n (cb?: (moveIndex: number) => void) => {\n setSelectedIndexState((cur) => {\n let prevIndex = cur;\n const pos = selectableIndexes.indexOf(cur);\n if (pos > 0) {\n prevIndex = selectableIndexes[pos - 1];\n }\n if (cb) cb(prevIndex);\n return prevIndex;\n });\n },\n [selectableIndexes]\n );\n const selectNext = useCallback(\n (cb?: (moveIndex: number) => void) => {\n setSelectedIndexState((cur) => {\n let nextIndex = cur;\n const pos = selectableIndexes.indexOf(cur);\n if (pos < selectableIndexes.length - 1) {\n nextIndex = selectableIndexes[pos + 1];\n }\n if (cb) cb(nextIndex);\n return nextIndex;\n });\n },\n [selectableIndexes]\n );\n\n const selectedId = useMemo(\n () => {\n if (selectedIndexState < 0 || selectedIndexState >= list.length) {\n return '';\n }\n return list[selectedIndexState]?.uuid ?? '';\n },\n [list, selectedIndexState]\n );\n\n const selectedItem = useMemo(() => {\n if (selectedIndexState < 0 || selectedIndexState >= list.length) {\n return EMPTY_SELECTED_ITEM;\n }\n return list[selectedIndexState] ?? EMPTY_SELECTED_ITEM;\n }, [list, selectedIndexState]);\n\n const selectedSectionTitle = useMemo(() => {\n // selectedIndexState 이전 인덱스 중 가장 가까운 섹션 타이틀 찾기\n const prevItems = list.slice(0, selectedIndexState).reverse();\n return prevItems.find((item) => item.type === 'sectionTitle') ?? null;\n }, [list, selectedIndexState]);\n\n useEffect(() => {\n const inBounds: boolean =\n selectedIndexState >= 0 && selectedIndexState < list.length;\n if (!inBounds) return;\n\n const item: CurriculumListContents = list[selectedIndexState];\n if (item.type === 'sectionTitle') return;\n\n onChangeSelectedContent?.(item);\n }, [list, onChangeSelectedContent, selectedIndexState]);\n\n return (\n <CurriculumContext.Provider\n value={{\n curriculum,\n scrollNavItem,\n selectedIndex: selectedIndexState,\n setSelectedIndex,\n selectedId,\n hasPrev,\n hasNext,\n selectPrev,\n selectNext,\n selectedSectionTitle,\n selectedItem,\n scrollAreaRef: sidebarRef,\n onReviewSubmit,\n onReviewValueChange,\n onClickfileDownload,\n curriculumReviewAnswers,\n tempCurriculumReviewAnswers,\n curriculumCompleteMap,\n onActionButtonClick,\n customTabs,\n }}\n >\n {children}\n </CurriculumContext.Provider>\n );\n}\n\nexport function useCurriculumContext(): CurriculumContextValue {\n const ctx = useContext(CurriculumContext);\n if (!ctx)\n throw new Error(\n 'useCurriculumContext must be used within CurriculumProvider'\n );\n return ctx;\n}\n"],"mappings":"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","names":["import_react","RadixButton","import_themes","import_themes","import_react","import_jsx_runtime","RadixText","import_react","import_jsx_runtime","import_jsx_runtime"]}
1
+ {"version":3,"sources":["../../../../src/molecules/curriculumV2/CurriculumContents/curriculum-file-download.tsx","../../../../src/atoms/button.tsx","../../../../src/utils/convert-button-size.ts","../../../../src/utils/resolve-color.ts","../../../../src/atoms/flex.tsx","../../../../src/atoms/typo.tsx","../../../../src/utils/map-with-responsive.ts","../../../../src/molecules/curriculumV2/curriculum-context.tsx"],"sourcesContent":["import React, { useMemo } from 'react';\nimport { Button } from '@/atoms/button';\nimport { Flex } from '@/atoms/flex';\nimport { Typo } from '@/atoms/typo';\nimport type {\n CurriculumFileDownloadContents,\n CurriculumFileDownloadFile,\n} from '@/types/curriculumContents.type';\nimport { useCurriculumContext } from '../curriculum-context';\n\ninterface CurriculumFileDownloadProps {\n item: CurriculumFileDownloadContents;\n}\n\nfunction CurriculumFileDownload(\n props: CurriculumFileDownloadProps\n): React.ReactNode {\n const { item } = props;\n const { title, description, files } = item;\n const { onClickfileDownload } = useCurriculumContext();\n\n const isCallbackReady = useMemo((): boolean => {\n return typeof onClickfileDownload === 'function';\n }, [onClickfileDownload]);\n\n const handleClickFile = (file: CurriculumFileDownloadFile): void => {\n if (!onClickfileDownload) {\n return;\n }\n onClickfileDownload(item, file);\n };\n\n return (\n <Flex\n align=\"center\"\n direction=\"column\"\n height=\"100%\"\n justify=\"center\"\n px=\"3\"\n py=\"3\"\n width=\"100%\"\n >\n <Typo color=\"gray\" weight=\"bold\">\n {title}\n </Typo>\n {description ? (\n <Typo align=\"center\" as=\"p\" color=\"gray\">\n {description}\n </Typo>\n ) : null}\n\n <Flex\n direction=\"column\"\n gap=\"2\"\n mt=\"4\"\n style={{ width: '100%', maxWidth: 520 }}\n >\n {files.map((file) => {\n return (\n <Button\n disabled={!isCallbackReady}\n key={file.url}\n onClick={() => {\n handleClickFile(file);\n }}\n variant=\"outline\"\n >\n <Typo truncate>{file.name}</Typo>\n </Button>\n );\n })}\n </Flex>\n\n {!isCallbackReady ? (\n <Typo align=\"center\" color=\"gray\" mt=\"3\" variant=\"caption\">\n 파일 다운로드 기능이 설정되지 않았습니다.\n </Typo>\n ) : null}\n </Flex>\n );\n}\n\nexport default CurriculumFileDownload;\n\n","import React, { forwardRef, useMemo } from 'react';\nimport { Button as RadixButton } from '@radix-ui/themes';\nimport { clsx } from 'clsx';\nimport { convertSize } from '../utils/convert-button-size';\nimport { resolveColor } from '../utils/resolve-color';\nimport type { ButtonProps } from './button.type';\n\nexport const Button = forwardRef<HTMLButtonElement, ButtonProps>(\n (props, ref): React.ReactNode => {\n const { size, style, variant, color, ...restProps } = props;\n\n const radixSize = useMemo(() => {\n return convertSize(size);\n }, [size]);\n\n const radixVariant = useMemo(() => {\n if (variant === 'transparent') return 'ghost';\n return variant;\n }, [variant]);\n\n const { color: radixColor, className: colorClassName } = useMemo(\n () => resolveColor(color),\n [color]\n );\n\n const className = useMemo(() => {\n return clsx(props.className, colorClassName, {\n transparent: variant === 'transparent',\n });\n }, [props.className, colorClassName, variant]);\n\n return (\n <RadixButton\n style={style}\n type=\"button\"\n variant={radixVariant}\n {...restProps}\n className={className}\n color={radixColor}\n ref={ref}\n size={radixSize}\n />\n );\n }\n);\n\nButton.displayName = 'Button';\n","import { type ButtonProps as RadixButtonProps } from '@radix-ui/themes';\nimport type { Breakpoint } from '@radix-ui/themes/props';\nimport type { ButtonProps } from '../atoms/button.type';\n\nexport const convertSizeStr = (\n size: ButtonProps['size']\n): '1' | '2' | '3' | '4' => {\n switch (size) {\n case 'small':\n return '1';\n case 'medium':\n return '2';\n case 'large':\n return '3';\n default:\n return '2';\n }\n};\n\nexport const convertSizeResponse = (\n size: ButtonProps['size']\n): RadixButtonProps['size'] => {\n if (typeof size === 'string' || typeof size === 'undefined') {\n return convertSizeStr(size);\n }\n const radixSize: RadixButtonProps['size'] = {};\n let key: Breakpoint = 'initial';\n for (key in size) {\n radixSize[key] = convertSizeStr(size[key]);\n }\n return radixSize;\n};\n\nexport const convertSize = (\n size: ButtonProps['size']\n): RadixButtonProps['size'] => {\n if (typeof size === 'string') {\n return convertSizeStr(size);\n }\n return convertSizeResponse(size);\n};\n","import type { BadgeProps as RadixBadgeProps } from '@radix-ui/themes';\n\n/**\n * Radix Themes가 제공하는 accent color union (gray, red, blue, ...).\n * 모든 color 지원 컴포넌트가 동일한 union을 공유하므로 Badge에서 파생한다.\n */\nexport type RadixColor = NonNullable<RadixBadgeProps['color']>;\n\n/** TIPP 시맨틱 color 별칭. */\nexport type SemanticColor = 'error' | 'accent' | 'neutral' | 'success';\n\n/**\n * Radix accent에 대응이 없어 CSS accent override로 처리하는 커스텀 color.\n * (예: black — `style/black.scss`의 `.tipp-accent-black` 참고)\n */\nexport type CustomColor = 'black';\n\n/** color 지원 컴포넌트가 노출하는 통합 color 타입. */\nexport type UiColor = RadixColor | SemanticColor | CustomColor;\n\n/**\n * union 각 멤버에 분배되는 Omit.\n * Radix의 polymorphic 컴포넌트 props(Text/Heading/Link 등 `as`로 분기되는 union)에서\n * 키를 제거할 때 일반 Omit은 union을 단일 객체로 합쳐 `as` 분기를 무너뜨리므로 이 타입을 쓴다.\n */\nexport type DistributiveOmit<T, K extends PropertyKey> = T extends unknown\n ? Omit<T, K>\n : never;\n\nconst SEMANTIC_COLOR_MAP: Record<SemanticColor, RadixColor | undefined> = {\n error: 'red',\n neutral: 'gray',\n success: 'green',\n accent: undefined,\n};\n\ninterface CustomColorConfig {\n /**\n * accent override를 적용할 className.\n */\n className: string;\n /**\n * Radix에 넘길 fallback color.\n * Text/Heading/Link 등은 `color` prop이 있어야 `data-accent-color`가 붙어\n * `--accent-*`를 참조하므로, 유효한 Radix color를 함께 넘긴 뒤 className으로\n * `--accent-*`를 덮어쓴다. (Badge/Button은 prop 없이도 accent 기반이라 무해)\n */\n fallbackColor: RadixColor;\n}\n\nconst CUSTOM_COLOR_MAP: Record<CustomColor, CustomColorConfig> = {\n black: { className: 'tipp-accent-black', fallbackColor: 'gray' },\n};\n\nconst isSemanticColor = (color?: UiColor): color is SemanticColor =>\n color !== undefined && color in SEMANTIC_COLOR_MAP;\n\nconst isCustomColor = (color?: UiColor): color is CustomColor =>\n color !== undefined && color in CUSTOM_COLOR_MAP;\n\nexport interface ResolvedColor {\n /** Radix 컴포넌트의 `color` prop에 그대로 전달할 값. custom color면 undefined. */\n color?: RadixColor;\n /** accent override를 적용하기 위해 요소에 붙일 className. */\n className?: string;\n}\n\n/**\n * 통합 color 입력을 Radix color prop과 className으로 정규화한다.\n *\n * - custom color(black 등): Radix color는 비우고 accent override className을 반환\n * - semantic color(error/neutral/success/accent): 대응 Radix color로 변환\n * - Radix color: 그대로 pass-through\n */\nexport const resolveColor = (color?: UiColor): ResolvedColor => {\n if (isCustomColor(color)) {\n const { className, fallbackColor } = CUSTOM_COLOR_MAP[color];\n return { color: fallbackColor, className };\n }\n\n if (isSemanticColor(color)) {\n return { color: SEMANTIC_COLOR_MAP[color] };\n }\n\n return { color };\n};\n","export { Flex, type FlexProps } from '@radix-ui/themes';\n","import type { TextProps as RadixTextProps } from '@radix-ui/themes';\nimport type { Responsive } from '@radix-ui/themes/props';\nimport { Text as RadixText } from '@radix-ui/themes';\nimport { clsx } from 'clsx';\nimport React, { useMemo, forwardRef } from 'react';\nimport { mapWithResponsive } from '@/utils/map-with-responsive';\nimport {\n resolveColor,\n type DistributiveOmit,\n type UiColor,\n} from '../utils/resolve-color';\n\nexport type TypoProps = DistributiveOmit<RadixTextProps, 'color'> & {\n variant?: Responsive<'body' | 'caption' | 'subtitle'>;\n color?: UiColor;\n};\n\nexport const Typo = forwardRef<HTMLSpanElement, TypoProps>(\n (props: TypoProps, ref): React.ReactNode => {\n const { size, variant, children, color, className, ...rest } = props;\n\n const { color: radixColor, className: colorClassName } = useMemo(\n () => resolveColor(color),\n [color]\n );\n\n const radixSize = useMemo<RadixTextProps['size']>(() => {\n if (size !== undefined) return size;\n\n if (variant === undefined) return '2';\n\n return mapWithResponsive({\n value: variant,\n mapFn: (variantValue?: 'body' | 'caption' | 'subtitle') => {\n switch (variantValue) {\n case 'caption':\n return '1';\n case 'subtitle':\n return '3';\n case 'body':\n default:\n return '2';\n }\n },\n });\n }, [size, variant]);\n\n return (\n <RadixText\n {...rest}\n className={clsx(colorClassName, className)}\n color={radixColor}\n ref={ref}\n size={radixSize}\n >\n {children}\n </RadixText>\n );\n }\n);\n\nTypo.displayName = 'Typo';\n","import type { Breakpoint, Responsive } from \"@radix-ui/themes/props\";\n\nexport const mapWithResponsive = <T extends string,K extends string>(\n args: {value: Responsive<T>, mapFn: (value?:T)=>K |undefined}\n): Responsive<K> | undefined => {\n const {value, mapFn} = args;\n if(typeof value === 'string'){\n return mapFn(value);\n };\n \n if(typeof value === 'object'){\n const newObj: Partial<Record<Breakpoint, K>> = {};\n let key: Breakpoint;\n for(key in value){\n newObj[key] = mapFn(value[key]);\n }\n return newObj;\n }\n return value;\n};\n","import React, {\n createContext,\n useContext,\n useState,\n useMemo,\n useCallback,\n useRef,\n useEffect,\n} from 'react';\nimport {\n type CurriculumFileDownloadContents,\n type CurriculumFileDownloadFile,\n type CurriculumSectionTitleContents,\n} from '@/types/curriculumContents.type';\nimport type {\n Curriculum,\n CurriculumListContents,\n} from '@/types/curriculum.type';\n\nconst EMPTY_SELECTED_ITEM: CurriculumListContents = {\n uuid: '',\n type: 'sectionTitle',\n title: '',\n};\n\nfunction getInitialSelectedIndex(args: {\n initialSelectedIndex?: number;\n selectableIndexes: number[];\n}): number {\n const { initialSelectedIndex, selectableIndexes } = args;\n\n if (\n typeof initialSelectedIndex === 'number' &&\n selectableIndexes.includes(initialSelectedIndex)\n ) {\n return initialSelectedIndex;\n }\n\n if (selectableIndexes.length > 0) {\n return selectableIndexes[0];\n }\n\n return 0;\n}\n\nexport interface CurriculumContextValue {\n curriculum: Curriculum;\n selectedIndex: number;\n setSelectedIndex: (idx: number) => void;\n selectedId: string;\n hasPrev: boolean;\n hasNext: boolean;\n selectPrev: (cb?: (moveIndex: number) => void) => void;\n selectNext: (cb?: (moveIndex: number) => void) => void;\n selectedItem: CurriculumListContents;\n /** 선택된 아이템의 이전 아이템 중 가장 가까운 섹션 타이틀 */\n selectedSectionTitle: CurriculumSectionTitleContents | null;\n /** 컨텐츠 목록 스크롤 이동 함수 */\n scrollNavItem: (uuid: string) => void;\n /** 스크롤 영역 참조 */\n scrollAreaRef: React.RefObject<HTMLDivElement | null>;\n /** 리뷰 제출 함수 */\n onReviewSubmit: ({\n reviewId,\n answer,\n }: {\n reviewId: string;\n answer: Record<string, string>;\n }) => Promise<boolean>;\n /** 리뷰 응답 값 변경 시 호출 */\n onReviewValueChange: ({\n reviewId,\n answer,\n }: {\n reviewId: string;\n answer: Record<string, string>;\n }) => void;\n /** 파일 다운로드 클릭 시 호출 */\n onClickfileDownload?: (\n item: CurriculumFileDownloadContents,\n file: CurriculumFileDownloadFile\n ) => void;\n /** 과제 완료 후 저장된 값 */\n curriculumReviewAnswers: Record<string, string>;\n /** 과제 완료 전 임시 저장된 값 */\n tempCurriculumReviewAnswers: Record<string, string>;\n /** 항목 수강 완료 여부 */\n curriculumCompleteMap: Record<string, boolean>;\n /** action Button 클릭시 호출 */\n onActionButtonClick: (item: CurriculumListContents) => void;\n /** 초기 선택 인덱스 */\n initialSelectedIndex?: number;\n /** 커스텀 탭 주입값 */\n customTabs?: {\n content: React.ReactElement;\n label: string;\n value: string;\n }[];\n}\n\nconst CurriculumContext = createContext<CurriculumContextValue | undefined>(\n undefined\n);\n\nexport interface CurriculumProviderProps\n extends Pick<\n CurriculumContextValue,\n | 'customTabs'\n | 'curriculum'\n | 'onReviewSubmit'\n | 'onReviewValueChange'\n | 'onClickfileDownload'\n | 'curriculumReviewAnswers'\n | 'tempCurriculumReviewAnswers'\n | 'curriculumCompleteMap'\n | 'onActionButtonClick'\n | 'initialSelectedIndex'\n > {\n children: React.ReactNode;\n onReviewValueChange: ({\n reviewId,\n answer,\n }: {\n reviewId: string;\n answer: Record<string, string>;\n }) => void;\n\n /** 현재 화면에 표시 중인 컨텐츠 인덱스 변경 시 호출 */\n onChangeSelectedContent?: (item: CurriculumListContents) => void;\n}\n\nexport function CurriculumProvider(\n props: CurriculumProviderProps\n): React.ReactElement {\n const {\n children,\n curriculum,\n onReviewSubmit,\n onReviewValueChange,\n onClickfileDownload,\n curriculumReviewAnswers,\n tempCurriculumReviewAnswers,\n curriculumCompleteMap,\n onChangeSelectedContent,\n onActionButtonClick,\n initialSelectedIndex,\n customTabs,\n } = props;\n const sidebarRef = useRef<HTMLDivElement>(null);\n\n const scrollNavItem = useCallback((index: string) => {\n const element = sidebarRef.current?.querySelector(\n `[data-curriculum-item-index=\"${index}\"]`\n );\n if (element) {\n element.scrollIntoView({ behavior: 'smooth', block: 'start' });\n }\n }, []);\n\n const list = curriculum.contents.list;\n // 선택 가능한 인덱스만 추출\n const selectableIndexes = useMemo(\n () =>\n list\n .map((item, i) => (item.type !== 'sectionTitle' ? i : null))\n .filter((i): i is number => i !== null),\n [list]\n );\n // 최초 선택값: 첫 번째 선택 가능한 인덱스\n const [selectedIndexState, setSelectedIndexState] = useState<number>(\n getInitialSelectedIndex({ initialSelectedIndex, selectableIndexes })\n );\n\n // 리스트/선택 가능 인덱스가 변할 때 선택값을 자동 보정\n useEffect(() => {\n if (selectableIndexes.length === 0) {\n if (selectedIndexState !== 0) {\n setSelectedIndexState(0);\n }\n return;\n }\n\n if (!selectableIndexes.includes(selectedIndexState)) {\n setSelectedIndexState(selectableIndexes[0]);\n }\n }, [selectableIndexes, selectedIndexState]);\n\n // 선택 인덱스 보정 함수\n const setSelectedIndex = useCallback(\n (idx: number) => {\n if (selectableIndexes.includes(idx)) {\n setSelectedIndexState(idx);\n } else {\n // idx가 선택 불가면, selectableIndexes에서 가장 가까운 다음 인덱스 선택\n const next = selectableIndexes.find((i) => i > idx);\n const prev = [...selectableIndexes].reverse().find((i) => i < idx);\n if (next !== undefined) setSelectedIndexState(next);\n else if (prev !== undefined) setSelectedIndexState(prev);\n }\n },\n [selectableIndexes]\n );\n\n // 현재 선택 인덱스가 selectableIndexes 내 몇 번째인지\n const selectablePos = useMemo(\n () => selectableIndexes.indexOf(selectedIndexState),\n [selectableIndexes, selectedIndexState]\n );\n const hasPrev = selectablePos > 0;\n const hasNext = selectablePos < selectableIndexes.length - 1;\n\n const selectPrev = useCallback(\n (cb?: (moveIndex: number) => void) => {\n setSelectedIndexState((cur) => {\n let prevIndex = cur;\n const pos = selectableIndexes.indexOf(cur);\n if (pos > 0) {\n prevIndex = selectableIndexes[pos - 1];\n }\n if (cb) cb(prevIndex);\n return prevIndex;\n });\n },\n [selectableIndexes]\n );\n const selectNext = useCallback(\n (cb?: (moveIndex: number) => void) => {\n setSelectedIndexState((cur) => {\n let nextIndex = cur;\n const pos = selectableIndexes.indexOf(cur);\n if (pos < selectableIndexes.length - 1) {\n nextIndex = selectableIndexes[pos + 1];\n }\n if (cb) cb(nextIndex);\n return nextIndex;\n });\n },\n [selectableIndexes]\n );\n\n const selectedId = useMemo(\n () => {\n if (selectedIndexState < 0 || selectedIndexState >= list.length) {\n return '';\n }\n return list[selectedIndexState]?.uuid ?? '';\n },\n [list, selectedIndexState]\n );\n\n const selectedItem = useMemo(() => {\n if (selectedIndexState < 0 || selectedIndexState >= list.length) {\n return EMPTY_SELECTED_ITEM;\n }\n return list[selectedIndexState] ?? EMPTY_SELECTED_ITEM;\n }, [list, selectedIndexState]);\n\n const selectedSectionTitle = useMemo(() => {\n // selectedIndexState 이전 인덱스 중 가장 가까운 섹션 타이틀 찾기\n const prevItems = list.slice(0, selectedIndexState).reverse();\n return prevItems.find((item) => item.type === 'sectionTitle') ?? null;\n }, [list, selectedIndexState]);\n\n useEffect(() => {\n const inBounds: boolean =\n selectedIndexState >= 0 && selectedIndexState < list.length;\n if (!inBounds) return;\n\n const item: CurriculumListContents = list[selectedIndexState];\n if (item.type === 'sectionTitle') return;\n\n onChangeSelectedContent?.(item);\n }, [list, onChangeSelectedContent, selectedIndexState]);\n\n return (\n <CurriculumContext.Provider\n value={{\n curriculum,\n scrollNavItem,\n selectedIndex: selectedIndexState,\n setSelectedIndex,\n selectedId,\n hasPrev,\n hasNext,\n selectPrev,\n selectNext,\n selectedSectionTitle,\n selectedItem,\n scrollAreaRef: sidebarRef,\n onReviewSubmit,\n onReviewValueChange,\n onClickfileDownload,\n curriculumReviewAnswers,\n tempCurriculumReviewAnswers,\n curriculumCompleteMap,\n onActionButtonClick,\n customTabs,\n }}\n >\n {children}\n </CurriculumContext.Provider>\n );\n}\n\nexport function useCurriculumContext(): CurriculumContextValue {\n const ctx = useContext(CurriculumContext);\n if (!ctx)\n throw new Error(\n 'useCurriculumContext must be used within CurriculumProvider'\n );\n return ctx;\n}\n"],"mappings":"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","names":["import_react","RadixButton","import_themes","import_themes","import_clsx","import_react","import_jsx_runtime","RadixText","import_react","import_jsx_runtime","import_jsx_runtime"]}
@@ -1,12 +1,13 @@
1
1
  import {
2
2
  curriculum_file_download_default
3
- } from "../../../chunk-ZFTQ2XBH.js";
3
+ } from "../../../chunk-QPL7SJQM.js";
4
4
  import "../../../chunk-WA5A2GB4.js";
5
- import "../../../chunk-PMJIFLDT.js";
5
+ import "../../../chunk-GR4PG6HY.js";
6
6
  import "../../../chunk-LDBWASUA.js";
7
7
  import "../../../chunk-25HMMI7R.js";
8
- import "../../../chunk-ZVDAEY5Q.js";
8
+ import "../../../chunk-2LCH3PDF.js";
9
9
  import "../../../chunk-LQY4RKWI.js";
10
+ import "../../../chunk-VFQD57ZY.js";
10
11
  import "../../../chunk-CRTRMMJ7.js";
11
12
  export {
12
13
  curriculum_file_download_default as default