@tipp/ui 2.10.3 → 2.10.5

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 (337) hide show
  1. package/dist/app/index.cjs +385 -359
  2. package/dist/app/index.cjs.map +1 -1
  3. package/dist/app/index.js +82 -80
  4. package/dist/app/platform/coach-question-list.cjs +58 -35
  5. package/dist/app/platform/coach-question-list.cjs.map +1 -1
  6. package/dist/app/platform/coach-question-list.js +30 -29
  7. package/dist/app/platform/contents-card.cjs +120 -97
  8. package/dist/app/platform/contents-card.cjs.map +1 -1
  9. package/dist/app/platform/contents-card.js +30 -29
  10. package/dist/app/platform/curriculum-card.cjs +39 -16
  11. package/dist/app/platform/curriculum-card.cjs.map +1 -1
  12. package/dist/app/platform/curriculum-card.js +5 -4
  13. package/dist/app/platform/edit-coaching-time.cjs +160 -134
  14. package/dist/app/platform/edit-coaching-time.cjs.map +1 -1
  15. package/dist/app/platform/edit-coaching-time.js +66 -64
  16. package/dist/app/platform/edit-service-type.cjs +152 -126
  17. package/dist/app/platform/edit-service-type.cjs.map +1 -1
  18. package/dist/app/platform/edit-service-type.js +66 -64
  19. package/dist/app/platform/goal-manage-card-edit.cjs +162 -136
  20. package/dist/app/platform/goal-manage-card-edit.cjs.map +1 -1
  21. package/dist/app/platform/goal-manage-card-edit.js +67 -65
  22. package/dist/app/platform/goal-manage-card-read.cjs +88 -65
  23. package/dist/app/platform/goal-manage-card-read.cjs.map +1 -1
  24. package/dist/app/platform/goal-manage-card-read.js +30 -29
  25. package/dist/app/platform/on-offline-radio-card.cjs +303 -277
  26. package/dist/app/platform/on-offline-radio-card.cjs.map +1 -1
  27. package/dist/app/platform/on-offline-radio-card.js +66 -64
  28. package/dist/app/platform/report-card.cjs +61 -38
  29. package/dist/app/platform/report-card.cjs.map +1 -1
  30. package/dist/app/platform/report-card.js +30 -29
  31. package/dist/app/platform/reservation-card.cjs +176 -150
  32. package/dist/app/platform/reservation-card.cjs.map +1 -1
  33. package/dist/app/platform/reservation-card.js +67 -65
  34. package/dist/app/platform/session-card.cjs +205 -179
  35. package/dist/app/platform/session-card.cjs.map +1 -1
  36. package/dist/app/platform/session-card.js +67 -65
  37. package/dist/app/platform/session-review-simple-read.cjs +59 -36
  38. package/dist/app/platform/session-review-simple-read.cjs.map +1 -1
  39. package/dist/app/platform/session-review-simple-read.js +30 -29
  40. package/dist/app/platform/userInfos/coaching-customer-info/index.cjs +92 -69
  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 +34 -33
  43. package/dist/app/platform/userInfos/coaching-customer-info/large.cjs +69 -46
  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 +30 -29
  46. package/dist/app/platform/userInfos/coaching-customer-info/medium.cjs +72 -49
  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 +30 -29
  49. package/dist/app/platform/userInfos/coaching-customer-info/small.cjs +58 -35
  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 +29 -28
  52. package/dist/app/platform/userInfos/session-user-info-detail.cjs +68 -45
  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 +29 -28
  55. package/dist/app/platform/userInfos/utils.cjs +60 -37
  56. package/dist/app/platform/userInfos/utils.cjs.map +1 -1
  57. package/dist/app/platform/userInfos/utils.js +29 -28
  58. package/dist/app/roleplay/index.cjs +463 -389
  59. package/dist/app/roleplay/index.cjs.map +1 -1
  60. package/dist/app/roleplay/index.js +78 -76
  61. package/dist/app/roleplay/parts/analysis-section.cjs +64 -41
  62. package/dist/app/roleplay/parts/analysis-section.cjs.map +1 -1
  63. package/dist/app/roleplay/parts/analysis-section.js +29 -28
  64. package/dist/app/roleplay/parts/coaching-panel.cjs +65 -42
  65. package/dist/app/roleplay/parts/coaching-panel.cjs.map +1 -1
  66. package/dist/app/roleplay/parts/coaching-panel.js +30 -29
  67. package/dist/app/roleplay/parts/content.cjs +389 -315
  68. package/dist/app/roleplay/parts/content.cjs.map +1 -1
  69. package/dist/app/roleplay/parts/content.js +74 -72
  70. package/dist/app/roleplay/parts/header.cjs +82 -59
  71. package/dist/app/roleplay/parts/header.cjs.map +1 -1
  72. package/dist/app/roleplay/parts/header.js +30 -29
  73. package/dist/app/roleplay/parts/score-summary.cjs +77 -54
  74. package/dist/app/roleplay/parts/score-summary.cjs.map +1 -1
  75. package/dist/app/roleplay/parts/score-summary.js +30 -29
  76. package/dist/app/roleplay/parts/score-trend-section.cjs +232 -158
  77. package/dist/app/roleplay/parts/score-trend-section.cjs.map +1 -1
  78. package/dist/app/roleplay/parts/score-trend-section.js +70 -68
  79. package/dist/app/roleplay/parts/script-transcript.cjs +73 -50
  80. package/dist/app/roleplay/parts/script-transcript.cjs.map +1 -1
  81. package/dist/app/roleplay/parts/script-transcript.js +29 -28
  82. package/dist/app/roleplay/parts/section-nav.cjs +94 -71
  83. package/dist/app/roleplay/parts/section-nav.cjs.map +1 -1
  84. package/dist/app/roleplay/parts/section-nav.js +29 -28
  85. package/dist/app/roleplay/parts/session-replay-dialog.cjs +83 -60
  86. package/dist/app/roleplay/parts/session-replay-dialog.cjs.map +1 -1
  87. package/dist/app/roleplay/parts/session-replay-dialog.js +29 -28
  88. package/dist/app/roleplay/parts/speech-share-bar.cjs +60 -37
  89. package/dist/app/roleplay/parts/speech-share-bar.cjs.map +1 -1
  90. package/dist/app/roleplay/parts/speech-share-bar.js +29 -28
  91. package/dist/app/roleplay/parts/step-detail.cjs +78 -55
  92. package/dist/app/roleplay/parts/step-detail.cjs.map +1 -1
  93. package/dist/app/roleplay/parts/step-detail.js +29 -28
  94. package/dist/app/roleplay/parts/step-summary.cjs +78 -55
  95. package/dist/app/roleplay/parts/step-summary.cjs.map +1 -1
  96. package/dist/app/roleplay/parts/step-summary.js +32 -31
  97. package/dist/app/roleplay/rp-session-detail.cjs +463 -389
  98. package/dist/app/roleplay/rp-session-detail.cjs.map +1 -1
  99. package/dist/app/roleplay/rp-session-detail.js +78 -76
  100. package/dist/atoms/index.cjs +82 -59
  101. package/dist/atoms/index.cjs.map +1 -1
  102. package/dist/atoms/index.js +64 -63
  103. package/dist/atoms/pagination.cjs +38 -15
  104. package/dist/atoms/pagination.cjs.map +1 -1
  105. package/dist/atoms/pagination.js +3 -2
  106. package/dist/chunk-2EPKY2VT.js +70 -0
  107. package/dist/chunk-2EPKY2VT.js.map +1 -0
  108. package/dist/{chunk-RZW6FVML.js → chunk-2IRG44IV.js} +2 -2
  109. package/dist/chunk-2PPLSZ4P.js +1 -0
  110. package/dist/{chunk-ZQLHRK36.js → chunk-2XDAK4B7.js} +4 -4
  111. package/dist/{chunk-AHAGCAQR.js → chunk-3DZIX4CE.js} +7 -7
  112. package/dist/{chunk-QOVPEQS3.js → chunk-4GH4R4VJ.js} +4 -4
  113. package/dist/chunk-5DRITHNR.js +1 -0
  114. package/dist/{chunk-QVGQBTSJ.js → chunk-5IGBFB67.js} +10 -10
  115. package/dist/{chunk-OBJA26HX.js → chunk-6GODZ2YW.js} +8 -8
  116. package/dist/{chunk-UAUA3PMP.js → chunk-74PR3ZWJ.js} +4 -4
  117. package/dist/{chunk-RPQWRKBW.js → chunk-AYWCLLQ2.js} +7 -7
  118. package/dist/{chunk-KQIUOEBS.js → chunk-C4INJWFV.js} +4 -4
  119. package/dist/{chunk-RBWD6IKY.js → chunk-CBYIPRND.js} +4 -4
  120. package/dist/{chunk-JTVBWQJW.js → chunk-CGLDFUOY.js} +4 -4
  121. package/dist/{chunk-PBKV2YMF.js → chunk-CPSXONQO.js} +9 -9
  122. package/dist/{chunk-K4QH4R3O.js → chunk-CUS3ORMD.js} +4 -4
  123. package/dist/{chunk-H533TE6M.js → chunk-D4U2ZV2A.js} +4 -4
  124. package/dist/{chunk-RRC4WFG3.js → chunk-DIFGHMGI.js} +2 -2
  125. package/dist/{chunk-EXMCCYI2.js → chunk-DPMDQA3O.js} +4 -4
  126. package/dist/{chunk-L4KGHM2H.js → chunk-EJXZXUD2.js} +10 -10
  127. package/dist/{chunk-ZIHVLMT5.js → chunk-GA6W62DO.js} +4 -4
  128. package/dist/{chunk-P2H3VCIB.js → chunk-HL3MGRAC.js} +4 -4
  129. package/dist/chunk-IAKMJR72.js +33 -0
  130. package/dist/chunk-IAKMJR72.js.map +1 -0
  131. package/dist/{chunk-6UWQKH6U.js → chunk-IHLFOJD5.js} +2 -2
  132. package/dist/{chunk-SX46O67F.js → chunk-ISSUGCCY.js} +4 -4
  133. package/dist/{chunk-3ZJVSSAA.js → chunk-KQ3ME6XY.js} +8 -8
  134. package/dist/{chunk-YYVSUTXO.js → chunk-LK2H4QTJ.js} +4 -4
  135. package/dist/{chunk-XMZYZJTH.js → chunk-N3FMP27I.js} +4 -4
  136. package/dist/{chunk-UMLYWHB2.js → chunk-NK6S7ZMB.js} +4 -4
  137. package/dist/{chunk-RJ7XSZ2V.js → chunk-OPIVSYLN.js} +4 -4
  138. package/dist/{chunk-NVBAOOAT.js → chunk-OUDDTPEN.js} +4 -4
  139. package/dist/{chunk-V4QYGHOJ.js → chunk-Q2FDF2AB.js} +7 -7
  140. package/dist/{chunk-3FVDFMKP.js → chunk-RBU2TRYY.js} +9 -9
  141. package/dist/{chunk-PS525SZS.js → chunk-RJ62VZ6O.js} +3 -3
  142. package/dist/{chunk-WJ35Y2IU.js → chunk-SQ3FYBJT.js} +2 -2
  143. package/dist/{chunk-2H635UNE.js → chunk-TYM6T7JT.js} +2 -2
  144. package/dist/{chunk-5RIAIE2J.js → chunk-U4XM7VNI.js} +9 -3
  145. package/dist/chunk-U4XM7VNI.js.map +1 -0
  146. package/dist/{chunk-HNAZV4MI.js → chunk-V7KAHLW2.js} +5 -5
  147. package/dist/{chunk-PVDHXFLT.js → chunk-VBXZIIUA.js} +4 -4
  148. package/dist/{chunk-TDWMI7ZT.js → chunk-VBYXXISC.js} +5 -5
  149. package/dist/{chunk-77J4AZEO.js → chunk-VJREZH2Z.js} +4 -4
  150. package/dist/{chunk-66SUBB2N.js → chunk-W7LO5KYT.js} +9 -9
  151. package/dist/{chunk-RJN4QT5J.js → chunk-WLKK5L3P.js} +7 -7
  152. package/dist/{chunk-A5AZWTXV.js → chunk-WYHDQK2S.js} +7 -7
  153. package/dist/{chunk-54GRMFDC.js → chunk-X3TBEGPA.js} +4 -4
  154. package/dist/context/index.js +1 -1
  155. package/dist/icon.cjs +25 -0
  156. package/dist/icon.cjs.map +1 -1
  157. package/dist/icon.d.cts +1 -0
  158. package/dist/icon.d.ts +1 -0
  159. package/dist/icon.js +7 -3
  160. package/dist/icons/empty-box.cjs +90 -0
  161. package/dist/icons/empty-box.cjs.map +1 -0
  162. package/dist/icons/empty-box.d.cts +13 -0
  163. package/dist/icons/empty-box.d.ts +13 -0
  164. package/dist/icons/empty-box.js +8 -0
  165. package/dist/icons/empty-box.js.map +1 -0
  166. package/dist/icons/index.cjs +25 -0
  167. package/dist/icons/index.cjs.map +1 -1
  168. package/dist/icons/index.d.cts +1 -0
  169. package/dist/icons/index.d.ts +1 -0
  170. package/dist/icons/index.js +7 -3
  171. package/dist/index.cjs +963 -885
  172. package/dist/index.cjs.map +1 -1
  173. package/dist/index.d.cts +2 -0
  174. package/dist/index.d.ts +2 -0
  175. package/dist/index.js +156 -148
  176. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/index.cjs +95 -72
  177. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/index.cjs.map +1 -1
  178. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/index.js +11 -10
  179. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-comp.cjs +29 -6
  180. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-comp.cjs.map +1 -1
  181. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-comp.js +3 -2
  182. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-body.cjs +71 -48
  183. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-body.cjs.map +1 -1
  184. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-body.js +9 -8
  185. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-footer.cjs +32 -9
  186. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-footer.cjs.map +1 -1
  187. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-footer.js +3 -2
  188. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-radio.cjs +41 -18
  189. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-radio.cjs.map +1 -1
  190. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-radio.js +5 -4
  191. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-satisfaction-option.cjs +33 -10
  192. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-satisfaction-option.cjs.map +1 -1
  193. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-satisfaction-option.js +5 -4
  194. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-satisfaction-text.cjs +33 -10
  195. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-satisfaction-text.cjs.map +1 -1
  196. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-satisfaction-text.js +4 -3
  197. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-text.cjs +42 -19
  198. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-text.cjs.map +1 -1
  199. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-text.js +6 -5
  200. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/complete-review.cjs +37 -14
  201. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/complete-review.cjs.map +1 -1
  202. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/complete-review.js +3 -2
  203. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/index.cjs +153 -130
  204. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/index.cjs.map +1 -1
  205. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/index.js +14 -13
  206. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/start-review.cjs +45 -22
  207. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/start-review.cjs.map +1 -1
  208. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/start-review.js +5 -4
  209. package/dist/molecules/curriculumV2/CurriculumContents/curriculum-ai-traning.cjs +30 -7
  210. package/dist/molecules/curriculumV2/CurriculumContents/curriculum-ai-traning.cjs.map +1 -1
  211. package/dist/molecules/curriculumV2/CurriculumContents/curriculum-ai-traning.js +3 -2
  212. package/dist/molecules/curriculumV2/CurriculumContents/curriculum-review.cjs +171 -148
  213. package/dist/molecules/curriculumV2/CurriculumContents/curriculum-review.cjs.map +1 -1
  214. package/dist/molecules/curriculumV2/CurriculumContents/curriculum-review.js +15 -14
  215. package/dist/molecules/curriculumV2/CurriculumContents/index.cjs +220 -197
  216. package/dist/molecules/curriculumV2/CurriculumContents/index.cjs.map +1 -1
  217. package/dist/molecules/curriculumV2/CurriculumContents/index.js +18 -17
  218. package/dist/molecules/curriculumV2/CurriculumSidebar/Items/section-item.cjs +33 -10
  219. package/dist/molecules/curriculumV2/CurriculumSidebar/Items/section-item.cjs.map +1 -1
  220. package/dist/molecules/curriculumV2/CurriculumSidebar/Items/section-item.js +3 -2
  221. package/dist/molecules/curriculumV2/CurriculumSidebar/index.cjs +52 -29
  222. package/dist/molecules/curriculumV2/CurriculumSidebar/index.cjs.map +1 -1
  223. package/dist/molecules/curriculumV2/CurriculumSidebar/index.js +8 -7
  224. package/dist/molecules/curriculumV2/CurriculumSidebar/sidebar-item.cjs +44 -21
  225. package/dist/molecules/curriculumV2/CurriculumSidebar/sidebar-item.cjs.map +1 -1
  226. package/dist/molecules/curriculumV2/CurriculumSidebar/sidebar-item.js +6 -5
  227. package/dist/molecules/curriculumV2/curriculum-sub-nav.cjs +36 -13
  228. package/dist/molecules/curriculumV2/curriculum-sub-nav.cjs.map +1 -1
  229. package/dist/molecules/curriculumV2/curriculum-sub-nav.js +3 -2
  230. package/dist/molecules/curriculumV2/index.cjs +264 -241
  231. package/dist/molecules/curriculumV2/index.cjs.map +1 -1
  232. package/dist/molecules/curriculumV2/index.js +28 -27
  233. package/dist/molecules/date-picker/date-picker-button.cjs +52 -29
  234. package/dist/molecules/date-picker/date-picker-button.cjs.map +1 -1
  235. package/dist/molecules/date-picker/date-picker-button.js +3 -2
  236. package/dist/molecules/date-picker/index.cjs +40 -17
  237. package/dist/molecules/date-picker/index.cjs.map +1 -1
  238. package/dist/molecules/date-picker/index.js +3 -2
  239. package/dist/molecules/description-json-render.cjs +31 -8
  240. package/dist/molecules/description-json-render.cjs.map +1 -1
  241. package/dist/molecules/description-json-render.js +5 -4
  242. package/dist/molecules/dynamic-field.js +3 -3
  243. package/dist/molecules/dynamic-form-editor-field-editor-panel.cjs +138 -115
  244. package/dist/molecules/dynamic-form-editor-field-editor-panel.cjs.map +1 -1
  245. package/dist/molecules/dynamic-form-editor-field-editor-panel.js +6 -5
  246. package/dist/molecules/dynamic-form-editor-field-list-panel.js +2 -2
  247. package/dist/molecules/dynamic-form-editor-issues-panel.js +2 -2
  248. package/dist/molecules/dynamic-form-editor-preview-panel.js +6 -6
  249. package/dist/molecules/dynamic-form-editor.cjs +223 -200
  250. package/dist/molecules/dynamic-form-editor.cjs.map +1 -1
  251. package/dist/molecules/dynamic-form-editor.js +14 -13
  252. package/dist/molecules/dynamic-form.js +4 -4
  253. package/dist/molecules/empty-state.cjs +328 -0
  254. package/dist/molecules/empty-state.cjs.map +1 -0
  255. package/dist/molecules/empty-state.d.cts +21 -0
  256. package/dist/molecules/empty-state.d.ts +21 -0
  257. package/dist/molecules/empty-state.js +16 -0
  258. package/dist/molecules/empty-state.js.map +1 -0
  259. package/dist/molecules/expand-table/index.cjs +197 -59
  260. package/dist/molecules/expand-table/index.cjs.map +1 -1
  261. package/dist/molecules/expand-table/index.js +7 -4
  262. package/dist/molecules/index.cjs +866 -790
  263. package/dist/molecules/index.cjs.map +1 -1
  264. package/dist/molecules/index.d.cts +2 -1
  265. package/dist/molecules/index.d.ts +2 -1
  266. package/dist/molecules/index.js +76 -71
  267. package/dist/molecules/learning-post.js +3 -3
  268. package/dist/molecules/stepper.cjs +43 -20
  269. package/dist/molecules/stepper.cjs.map +1 -1
  270. package/dist/molecules/stepper.js +5 -4
  271. package/dist/molecules/tag-selector.cjs +43 -20
  272. package/dist/molecules/tag-selector.cjs.map +1 -1
  273. package/dist/molecules/tag-selector.js +6 -5
  274. package/dist/molecules/time-select.cjs +28 -5
  275. package/dist/molecules/time-select.cjs.map +1 -1
  276. package/dist/molecules/time-select.js +3 -2
  277. package/dist/molecules/training-info-guideline.js +1 -1
  278. package/dist/utils/curriculum.utils.cjs +23 -0
  279. package/dist/utils/curriculum.utils.cjs.map +1 -1
  280. package/dist/utils/curriculum.utils.js +3 -2
  281. package/dist/utils/get-callout-icon-component.cjs +23 -0
  282. package/dist/utils/get-callout-icon-component.cjs.map +1 -1
  283. package/dist/utils/get-callout-icon-component.js +3 -2
  284. package/dist/utils/index.cjs +23 -0
  285. package/dist/utils/index.cjs.map +1 -1
  286. package/dist/utils/index.js +3 -2
  287. package/package.json +1 -1
  288. package/src/icons/empty-box.tsx +29 -0
  289. package/src/icons/index.ts +2 -1
  290. package/src/molecules/empty-state.tsx +79 -0
  291. package/src/molecules/expand-table/index.tsx +5 -3
  292. package/src/molecules/index.ts +1 -0
  293. package/dist/chunk-5RIAIE2J.js.map +0 -1
  294. package/dist/chunk-JVXATVAC.js +0 -1
  295. package/dist/chunk-SYMOHU2B.js +0 -1
  296. /package/dist/{chunk-RZW6FVML.js.map → chunk-2IRG44IV.js.map} +0 -0
  297. /package/dist/{chunk-JVXATVAC.js.map → chunk-2PPLSZ4P.js.map} +0 -0
  298. /package/dist/{chunk-ZQLHRK36.js.map → chunk-2XDAK4B7.js.map} +0 -0
  299. /package/dist/{chunk-AHAGCAQR.js.map → chunk-3DZIX4CE.js.map} +0 -0
  300. /package/dist/{chunk-QOVPEQS3.js.map → chunk-4GH4R4VJ.js.map} +0 -0
  301. /package/dist/{chunk-SYMOHU2B.js.map → chunk-5DRITHNR.js.map} +0 -0
  302. /package/dist/{chunk-QVGQBTSJ.js.map → chunk-5IGBFB67.js.map} +0 -0
  303. /package/dist/{chunk-OBJA26HX.js.map → chunk-6GODZ2YW.js.map} +0 -0
  304. /package/dist/{chunk-UAUA3PMP.js.map → chunk-74PR3ZWJ.js.map} +0 -0
  305. /package/dist/{chunk-RPQWRKBW.js.map → chunk-AYWCLLQ2.js.map} +0 -0
  306. /package/dist/{chunk-KQIUOEBS.js.map → chunk-C4INJWFV.js.map} +0 -0
  307. /package/dist/{chunk-RBWD6IKY.js.map → chunk-CBYIPRND.js.map} +0 -0
  308. /package/dist/{chunk-JTVBWQJW.js.map → chunk-CGLDFUOY.js.map} +0 -0
  309. /package/dist/{chunk-PBKV2YMF.js.map → chunk-CPSXONQO.js.map} +0 -0
  310. /package/dist/{chunk-K4QH4R3O.js.map → chunk-CUS3ORMD.js.map} +0 -0
  311. /package/dist/{chunk-H533TE6M.js.map → chunk-D4U2ZV2A.js.map} +0 -0
  312. /package/dist/{chunk-RRC4WFG3.js.map → chunk-DIFGHMGI.js.map} +0 -0
  313. /package/dist/{chunk-EXMCCYI2.js.map → chunk-DPMDQA3O.js.map} +0 -0
  314. /package/dist/{chunk-L4KGHM2H.js.map → chunk-EJXZXUD2.js.map} +0 -0
  315. /package/dist/{chunk-ZIHVLMT5.js.map → chunk-GA6W62DO.js.map} +0 -0
  316. /package/dist/{chunk-P2H3VCIB.js.map → chunk-HL3MGRAC.js.map} +0 -0
  317. /package/dist/{chunk-6UWQKH6U.js.map → chunk-IHLFOJD5.js.map} +0 -0
  318. /package/dist/{chunk-SX46O67F.js.map → chunk-ISSUGCCY.js.map} +0 -0
  319. /package/dist/{chunk-3ZJVSSAA.js.map → chunk-KQ3ME6XY.js.map} +0 -0
  320. /package/dist/{chunk-YYVSUTXO.js.map → chunk-LK2H4QTJ.js.map} +0 -0
  321. /package/dist/{chunk-XMZYZJTH.js.map → chunk-N3FMP27I.js.map} +0 -0
  322. /package/dist/{chunk-UMLYWHB2.js.map → chunk-NK6S7ZMB.js.map} +0 -0
  323. /package/dist/{chunk-RJ7XSZ2V.js.map → chunk-OPIVSYLN.js.map} +0 -0
  324. /package/dist/{chunk-NVBAOOAT.js.map → chunk-OUDDTPEN.js.map} +0 -0
  325. /package/dist/{chunk-V4QYGHOJ.js.map → chunk-Q2FDF2AB.js.map} +0 -0
  326. /package/dist/{chunk-3FVDFMKP.js.map → chunk-RBU2TRYY.js.map} +0 -0
  327. /package/dist/{chunk-PS525SZS.js.map → chunk-RJ62VZ6O.js.map} +0 -0
  328. /package/dist/{chunk-WJ35Y2IU.js.map → chunk-SQ3FYBJT.js.map} +0 -0
  329. /package/dist/{chunk-2H635UNE.js.map → chunk-TYM6T7JT.js.map} +0 -0
  330. /package/dist/{chunk-HNAZV4MI.js.map → chunk-V7KAHLW2.js.map} +0 -0
  331. /package/dist/{chunk-PVDHXFLT.js.map → chunk-VBXZIIUA.js.map} +0 -0
  332. /package/dist/{chunk-TDWMI7ZT.js.map → chunk-VBYXXISC.js.map} +0 -0
  333. /package/dist/{chunk-77J4AZEO.js.map → chunk-VJREZH2Z.js.map} +0 -0
  334. /package/dist/{chunk-66SUBB2N.js.map → chunk-W7LO5KYT.js.map} +0 -0
  335. /package/dist/{chunk-RJN4QT5J.js.map → chunk-WLKK5L3P.js.map} +0 -0
  336. /package/dist/{chunk-A5AZWTXV.js.map → chunk-WYHDQK2S.js.map} +0 -0
  337. /package/dist/{chunk-54GRMFDC.js.map → chunk-X3TBEGPA.js.map} +0 -0
@@ -2229,8 +2229,31 @@ var HeadsetIcon = React34.forwardRef(
2229
2229
  );
2230
2230
  HeadsetIcon.displayName = "HeadsetIcon";
2231
2231
 
2232
- // src/atoms/pagination.tsx
2232
+ // src/icons/empty-box.tsx
2233
+ var React35 = __toESM(require("react"), 1);
2233
2234
  var import_jsx_runtime51 = require("react/jsx-runtime");
2235
+ var EmptyBoxIcon = React35.forwardRef(
2236
+ (_a, forwardedRef) => {
2237
+ var _b = _a, { color = "currentColor", width = 120, height = 120 } = _b, props = __objRest(_b, ["color", "width", "height"]);
2238
+ return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
2239
+ "svg",
2240
+ __spreadProps(__spreadValues({
2241
+ fill: color,
2242
+ height,
2243
+ viewBox: "0 0 462.035 462.035",
2244
+ width,
2245
+ xmlns: "http://www.w3.org/2000/svg"
2246
+ }, props), {
2247
+ ref: forwardedRef,
2248
+ children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("path", { d: "M457.83,158.441c-0.021-0.028-0.033-0.058-0.057-0.087l-50.184-62.48c-0.564-0.701-1.201-1.305-1.879-1.845c-2.16-2.562-5.355-4.225-8.967-4.225H65.292c-3.615,0-6.804,1.661-8.965,4.225c-0.678,0.54-1.316,1.138-1.885,1.845l-50.178,62.48c-0.023,0.029-0.034,0.059-0.057,0.087C1.655,160.602,0,163.787,0,167.39v193.07c0,6.5,5.27,11.771,11.77,11.771h438.496c6.5,0,11.77-5.271,11.77-11.771V167.39C462.037,163.787,460.381,160.602,457.83,158.441z M408.516,134.615l16.873,21.005h-16.873V134.615z M384.975,113.345v42.274H296.84c-2.514,0-4.955,0.805-6.979,2.293l-58.837,43.299l-58.849-43.305c-2.023-1.482-4.466-2.287-6.978-2.287H77.061v-42.274H384.975z M53.523,155.62H36.65l16.873-21.005V155.62z M438.498,348.69H23.54V179.16h137.796l62.711,46.148c4.15,3.046,9.805,3.052,13.954-0.005l62.698-46.144h137.799V348.69L438.498,348.69z" })
2249
+ })
2250
+ );
2251
+ }
2252
+ );
2253
+ EmptyBoxIcon.displayName = "EmptyBoxIcon";
2254
+
2255
+ // src/atoms/pagination.tsx
2256
+ var import_jsx_runtime52 = require("react/jsx-runtime");
2234
2257
  function Pagination(props) {
2235
2258
  const { onChange, count = 0, siblingCount = 2 } = props;
2236
2259
  const isControlled = props.page !== void 0;
@@ -2299,7 +2322,7 @@ function Pagination(props) {
2299
2322
  const { color: resolvedColor, className: colorClassName } = resolveColor(
2300
2323
  props.color
2301
2324
  );
2302
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(
2325
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(
2303
2326
  import_themes23.Flex,
2304
2327
  {
2305
2328
  align: "center",
@@ -2307,18 +2330,18 @@ function Pagination(props) {
2307
2330
  className: colorClassName ? `tipp-pagination ${colorClassName}` : "tipp-pagination",
2308
2331
  "data-accent-color": resolvedColor,
2309
2332
  children: [
2310
- /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
2333
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
2311
2334
  IconButton,
2312
2335
  __spreadProps(__spreadValues({
2313
2336
  disabled: !doublePrev,
2314
2337
  onClick: onClickDoublePrev
2315
2338
  }, moveButtonProps), {
2316
- children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_react_icons2.DoubleArrowLeftIcon, __spreadValues({}, iconSize))
2339
+ children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_react_icons2.DoubleArrowLeftIcon, __spreadValues({}, iconSize))
2317
2340
  })
2318
2341
  ),
2319
- /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(IconButton, __spreadProps(__spreadValues({ disabled: !prev, onClick: onClickPrev }, moveButtonProps), { children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_react_icons2.ChevronLeftIcon, __spreadValues({}, iconSize)) })),
2320
- /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_themes23.Flex, { gap: "1", children: visibleItems.map((item) => {
2321
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
2342
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(IconButton, __spreadProps(__spreadValues({ disabled: !prev, onClick: onClickPrev }, moveButtonProps), { children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_react_icons2.ChevronLeftIcon, __spreadValues({}, iconSize)) })),
2343
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_themes23.Flex, { gap: "1", children: visibleItems.map((item) => {
2344
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
2322
2345
  "button",
2323
2346
  {
2324
2347
  className: `page-button ${item === page ? "active" : ""}`,
@@ -2326,19 +2349,19 @@ function Pagination(props) {
2326
2349
  goToPage(item);
2327
2350
  },
2328
2351
  type: "button",
2329
- children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(Typo, { variant: "body", children: item })
2352
+ children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Typo, { variant: "body", children: item })
2330
2353
  },
2331
2354
  item
2332
2355
  );
2333
2356
  }) }),
2334
- /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(IconButton, __spreadProps(__spreadValues({ disabled: !next, onClick: onClickNext }, moveButtonProps), { children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_react_icons2.ChevronRightIcon, __spreadValues({}, iconSize)) })),
2335
- /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
2357
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(IconButton, __spreadProps(__spreadValues({ disabled: !next, onClick: onClickNext }, moveButtonProps), { children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_react_icons2.ChevronRightIcon, __spreadValues({}, iconSize)) })),
2358
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
2336
2359
  IconButton,
2337
2360
  __spreadProps(__spreadValues({
2338
2361
  disabled: !doubleNext,
2339
2362
  onClick: onClickDoubleNext
2340
2363
  }, moveButtonProps), {
2341
- children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_react_icons2.DoubleArrowRightIcon, __spreadValues({}, iconSize))
2364
+ children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_react_icons2.DoubleArrowRightIcon, __spreadValues({}, iconSize))
2342
2365
  })
2343
2366
  )
2344
2367
  ]
@@ -2347,23 +2370,23 @@ function Pagination(props) {
2347
2370
  }
2348
2371
 
2349
2372
  // src/atoms/field-error-wrapper.tsx
2350
- var import_jsx_runtime52 = require("react/jsx-runtime");
2373
+ var import_jsx_runtime53 = require("react/jsx-runtime");
2351
2374
 
2352
2375
  // src/atoms/ellipsis-tooltip.tsx
2353
2376
  var import_react37 = require("react");
2354
- var import_jsx_runtime53 = require("react/jsx-runtime");
2377
+ var import_jsx_runtime54 = require("react/jsx-runtime");
2355
2378
 
2356
2379
  // src/atoms/drawer.tsx
2357
2380
  var Dialog2 = __toESM(require("@radix-ui/react-dialog"), 1);
2358
2381
  var import_themes51 = require("@radix-ui/themes");
2359
2382
 
2360
2383
  // src/icons/close-panel-arrow.tsx
2361
- var React37 = __toESM(require("react"), 1);
2362
- var import_jsx_runtime54 = require("react/jsx-runtime");
2363
- var ClosePanelArrowIcon = React37.forwardRef(
2384
+ var React38 = __toESM(require("react"), 1);
2385
+ var import_jsx_runtime55 = require("react/jsx-runtime");
2386
+ var ClosePanelArrowIcon = React38.forwardRef(
2364
2387
  (_a, forwardedRef) => {
2365
2388
  var _b = _a, { color = "currentColor" } = _b, props = __objRest(_b, ["color"]);
2366
- return /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(
2389
+ return /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)(
2367
2390
  "svg",
2368
2391
  __spreadProps(__spreadValues({
2369
2392
  fill: "none",
@@ -2374,7 +2397,7 @@ var ClosePanelArrowIcon = React37.forwardRef(
2374
2397
  }, props), {
2375
2398
  ref: forwardedRef,
2376
2399
  children: [
2377
- /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
2400
+ /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
2378
2401
  "path",
2379
2402
  {
2380
2403
  clipRule: "evenodd",
@@ -2383,7 +2406,7 @@ var ClosePanelArrowIcon = React37.forwardRef(
2383
2406
  fillRule: "evenodd"
2384
2407
  }
2385
2408
  ),
2386
- /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
2409
+ /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
2387
2410
  "path",
2388
2411
  {
2389
2412
  clipRule: "evenodd",
@@ -2400,11 +2423,11 @@ var ClosePanelArrowIcon = React37.forwardRef(
2400
2423
  ClosePanelArrowIcon.displayName = "ArrowDownIcon";
2401
2424
 
2402
2425
  // src/atoms/drawer.tsx
2403
- var import_jsx_runtime55 = require("react/jsx-runtime");
2426
+ var import_jsx_runtime56 = require("react/jsx-runtime");
2404
2427
 
2405
2428
  // src/atoms/toast.tsx
2406
2429
  var import_sonner = require("sonner");
2407
- var import_jsx_runtime56 = require("react/jsx-runtime");
2430
+ var import_jsx_runtime57 = require("react/jsx-runtime");
2408
2431
  var toast = Object.assign(import_sonner.toast, {
2409
2432
  warn: import_sonner.toast.warning
2410
2433
  });
@@ -2412,11 +2435,11 @@ var toast = Object.assign(import_sonner.toast, {
2412
2435
  // src/molecules/form/form.tsx
2413
2436
  var RadixForm = __toESM(require("@radix-ui/react-form"), 1);
2414
2437
  var import_react38 = require("react");
2415
- var import_jsx_runtime57 = require("react/jsx-runtime");
2438
+ var import_jsx_runtime58 = require("react/jsx-runtime");
2416
2439
  var Root15 = (0, import_react38.forwardRef)(
2417
2440
  (_a, ref) => {
2418
2441
  var _b = _a, { children, className } = _b, rest = __objRest(_b, ["children", "className"]);
2419
- return /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
2442
+ return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
2420
2443
  RadixForm.Root,
2421
2444
  __spreadProps(__spreadValues({}, rest), {
2422
2445
  className: `FormRoot ${className || ""}`,
@@ -2433,25 +2456,25 @@ var FieldContext = (0, import_react38.createContext)({
2433
2456
  var Field2 = (0, import_react38.forwardRef)(
2434
2457
  (_a, ref) => {
2435
2458
  var _b = _a, { children, className } = _b, rest = __objRest(_b, ["children", "className"]);
2436
- return /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
2459
+ return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
2437
2460
  RadixForm.Field,
2438
2461
  __spreadProps(__spreadValues({}, rest), {
2439
2462
  className: `FormField ${className || ""}`,
2440
2463
  ref,
2441
- children: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(FieldContext.Provider, { value: rest, children })
2464
+ children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(FieldContext.Provider, { value: rest, children })
2442
2465
  })
2443
2466
  );
2444
2467
  }
2445
2468
  );
2446
2469
  Field2.displayName = "FORM_FIELD";
2447
2470
  function HeadingLabel(props) {
2448
- return /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(Heading2, __spreadProps(__spreadValues({ variant: "heading5" }, props), { children: props.children }));
2471
+ return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(Heading2, __spreadProps(__spreadValues({ variant: "heading5" }, props), { children: props.children }));
2449
2472
  }
2450
2473
  function CaptionLabel(props) {
2451
- return /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(Typo, __spreadProps(__spreadValues({ color: "gray", variant: "caption", weight: "bold" }, props), { children: props.children }));
2474
+ return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(Typo, __spreadProps(__spreadValues({ color: "gray", variant: "caption", weight: "bold" }, props), { children: props.children }));
2452
2475
  }
2453
2476
  function BodyLabel(props) {
2454
- return /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(Typo, __spreadProps(__spreadValues({ variant: "body", weight: "bold" }, props), { children: props.children }));
2477
+ return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(Typo, __spreadProps(__spreadValues({ variant: "body", weight: "bold" }, props), { children: props.children }));
2455
2478
  }
2456
2479
  var Label3 = (0, import_react38.forwardRef)(
2457
2480
  (_a, ref) => {
@@ -2468,15 +2491,15 @@ var Label3 = (0, import_react38.forwardRef)(
2468
2491
  }
2469
2492
  }, [variant]);
2470
2493
  const fieldProps = (0, import_react38.useContext)(FieldContext);
2471
- return /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
2494
+ return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
2472
2495
  RadixForm.Label,
2473
2496
  __spreadProps(__spreadValues({}, rest), {
2474
2497
  asChild: true,
2475
2498
  className: `FormLabel ${className || ""}`,
2476
2499
  ref,
2477
- children: /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(Comp, { children: [
2500
+ children: /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)(Comp, { children: [
2478
2501
  children,
2479
- fieldProps.required ? /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(Typo, { as: "span", color: "tomato", children: ` *` }) : null
2502
+ fieldProps.required ? /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(Typo, { as: "span", color: "tomato", children: ` *` }) : null
2480
2503
  ] })
2481
2504
  })
2482
2505
  );
@@ -2486,13 +2509,13 @@ Label3.displayName = "FORM_Label";
2486
2509
  var Message2 = (0, import_react38.forwardRef)(
2487
2510
  (_a, ref) => {
2488
2511
  var _b = _a, { children, className } = _b, rest = __objRest(_b, ["children", "className"]);
2489
- return /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
2512
+ return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
2490
2513
  RadixForm.Message,
2491
2514
  __spreadProps(__spreadValues({}, rest), {
2492
2515
  asChild: true,
2493
2516
  className: `FormMessage ${className || ""}`,
2494
2517
  ref,
2495
- children: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(Typo, { color: "red", children })
2518
+ children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(Typo, { color: "red", children })
2496
2519
  })
2497
2520
  );
2498
2521
  }
@@ -2502,7 +2525,7 @@ var Control2 = (0, import_react38.forwardRef)(
2502
2525
  (_a, ref) => {
2503
2526
  var _b = _a, { className } = _b, rest = __objRest(_b, ["className"]);
2504
2527
  const fieldProps = (0, import_react38.useContext)(FieldContext);
2505
- return /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
2528
+ return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
2506
2529
  RadixForm.Control,
2507
2530
  __spreadProps(__spreadValues({}, rest), {
2508
2531
  className: `FormControl ${className || ""}`,
@@ -2517,7 +2540,7 @@ Control2.displayName = "FORM_Control";
2517
2540
  // src/atoms/auto-sizing-input.tsx
2518
2541
  var import_themes52 = require("@radix-ui/themes");
2519
2542
  var import_react39 = require("react");
2520
- var import_jsx_runtime58 = require("react/jsx-runtime");
2543
+ var import_jsx_runtime59 = require("react/jsx-runtime");
2521
2544
  var useTextWidth = (text, font) => {
2522
2545
  const [textWidth, setTextWidth] = (0, import_react39.useState)(0);
2523
2546
  (0, import_react39.useEffect)(() => {
@@ -2617,7 +2640,7 @@ var AutoSizingInput = (0, import_react39.forwardRef)(
2617
2640
  (_a2 = inputRef.current) == null ? void 0 : _a2.focus();
2618
2641
  }
2619
2642
  }, [inputRef]);
2620
- return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
2643
+ return /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
2621
2644
  import_themes52.Box,
2622
2645
  {
2623
2646
  className: "auto-sizing-input wrapper",
@@ -2625,7 +2648,7 @@ var AutoSizingInput = (0, import_react39.forwardRef)(
2625
2648
  minWidth,
2626
2649
  onClick,
2627
2650
  style: { width: dynamicWidth },
2628
- children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("input", __spreadValues({ onChange: handleChange, ref: inputRef, value }, rest))
2651
+ children: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)("input", __spreadValues({ onChange: handleChange, ref: inputRef, value }, rest))
2629
2652
  }
2630
2653
  );
2631
2654
  }
@@ -2633,12 +2656,12 @@ var AutoSizingInput = (0, import_react39.forwardRef)(
2633
2656
  AutoSizingInput.displayName = "AutoSizingInput";
2634
2657
 
2635
2658
  // src/atoms/bullet-text.tsx
2636
- var import_jsx_runtime59 = require("react/jsx-runtime");
2659
+ var import_jsx_runtime60 = require("react/jsx-runtime");
2637
2660
 
2638
2661
  // src/atoms/list.tsx
2639
2662
  var import_react40 = require("react");
2640
2663
  var import_clsx28 = require("clsx");
2641
- var import_jsx_runtime60 = require("react/jsx-runtime");
2664
+ var import_jsx_runtime61 = require("react/jsx-runtime");
2642
2665
  var ListContext = (0, import_react40.createContext)({
2643
2666
  size: "large"
2644
2667
  });
@@ -2782,15 +2805,15 @@ function statusLabelOf(status) {
2782
2805
  }
2783
2806
 
2784
2807
  // src/app/roleplay/parts/analysis-section.tsx
2785
- var import_jsx_runtime61 = require("react/jsx-runtime");
2808
+ var import_jsx_runtime62 = require("react/jsx-runtime");
2786
2809
  function Section2({
2787
2810
  title,
2788
2811
  desc,
2789
2812
  children
2790
2813
  }) {
2791
- return /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("section", { children: [
2792
- /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(import_themes7.Box, { mb: "3", children: [
2793
- /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
2814
+ return /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("section", { children: [
2815
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(import_themes7.Box, { mb: "3", children: [
2816
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
2794
2817
  Heading2,
2795
2818
  {
2796
2819
  size: { initial: "4", md: "5" },
@@ -2799,7 +2822,7 @@ function Section2({
2799
2822
  children: title
2800
2823
  }
2801
2824
  ),
2802
- desc ? /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_themes7.Box, { mt: "1", style: { maxWidth: "65ch" }, children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(Typo, { as: "p", color: "gray", variant: "body", children: desc }) }) : null
2825
+ desc ? /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_themes7.Box, { mt: "1", style: { maxWidth: "65ch" }, children: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(Typo, { as: "p", color: "gray", variant: "body", children: desc }) }) : null
2803
2826
  ] }),
2804
2827
  children
2805
2828
  ] });
@@ -2813,9 +2836,9 @@ function AnalysisSection({
2813
2836
  if (items.length === 0) return null;
2814
2837
  const accentBorder = tone === "good" ? "var(--green-a6)" : "var(--amber-a6)";
2815
2838
  const numColor = tone === "good" ? "var(--green-11)" : "var(--amber-11)";
2816
- return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(Section2, { desc, title, children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_themes23.Flex, { direction: "column", children: items.map((item, index) => /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(import_themes7.Box, { children: [
2817
- index > 0 && /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_themes40.Separator, { size: "4" }),
2818
- /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(
2839
+ return /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(Section2, { desc, title, children: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_themes23.Flex, { direction: "column", children: items.map((item, index) => /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(import_themes7.Box, { children: [
2840
+ index > 0 && /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_themes40.Separator, { size: "4" }),
2841
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(
2819
2842
  import_themes23.Flex,
2820
2843
  {
2821
2844
  gap: "3",
@@ -2823,7 +2846,7 @@ function AnalysisSection({
2823
2846
  py: "3",
2824
2847
  style: { borderLeft: `2px solid ${accentBorder}` },
2825
2848
  children: [
2826
- /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
2849
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
2827
2850
  Typo,
2828
2851
  {
2829
2852
  as: "span",
@@ -2834,9 +2857,9 @@ function AnalysisSection({
2834
2857
  children: index + 1
2835
2858
  }
2836
2859
  ),
2837
- /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(import_themes7.Box, { style: { minWidth: 0 }, children: [
2838
- /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(Typo, { as: "p", variant: "body", weight: "medium", children: item.title }),
2839
- /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_themes7.Box, { mt: "1", style: { maxWidth: "65ch" }, children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(Typo, { as: "p", variant: "body", children: item.detail }) })
2860
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(import_themes7.Box, { style: { minWidth: 0 }, children: [
2861
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(Typo, { as: "p", variant: "body", weight: "medium", children: item.title }),
2862
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_themes7.Box, { mt: "1", style: { maxWidth: "65ch" }, children: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(Typo, { as: "p", variant: "body", children: item.detail }) })
2840
2863
  ] })
2841
2864
  ]
2842
2865
  }
@@ -2845,15 +2868,15 @@ function AnalysisSection({
2845
2868
  }
2846
2869
 
2847
2870
  // src/app/roleplay/parts/coaching-panel.tsx
2848
- var import_jsx_runtime62 = require("react/jsx-runtime");
2871
+ var import_jsx_runtime63 = require("react/jsx-runtime");
2849
2872
  function Section3({
2850
2873
  title,
2851
2874
  desc,
2852
2875
  children
2853
2876
  }) {
2854
- return /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("section", { children: [
2855
- /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(import_themes7.Box, { mb: "3", children: [
2856
- /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
2877
+ return /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)("section", { children: [
2878
+ /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(import_themes7.Box, { mb: "3", children: [
2879
+ /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
2857
2880
  Heading2,
2858
2881
  {
2859
2882
  size: { initial: "4", md: "5" },
@@ -2862,21 +2885,21 @@ function Section3({
2862
2885
  children: title
2863
2886
  }
2864
2887
  ),
2865
- desc ? /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_themes7.Box, { mt: "1", style: { maxWidth: "65ch" }, children: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(Typo, { as: "p", color: "gray", variant: "body", children: desc }) }) : null
2888
+ desc ? /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(import_themes7.Box, { mt: "1", style: { maxWidth: "65ch" }, children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(Typo, { as: "p", color: "gray", variant: "body", children: desc }) }) : null
2866
2889
  ] }),
2867
2890
  children
2868
2891
  ] });
2869
2892
  }
2870
2893
  function CoachingPanel({ skills }) {
2871
2894
  if (skills.length === 0) return null;
2872
- return /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(Section3, { desc: "\uB2E4\uC74C \uC7AC\uB3C4\uC804\uC5D0 \uBC14\uB85C \uC4F8 \uB300\uD654 \uAE30\uC220", title: "\uC989\uC2DC \uC801\uC6A9 \uC2A4\uD0AC", children: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_themes24.Grid, { columns: "1", gap: "6", children: skills.map((skill, index) => /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(
2895
+ return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(Section3, { desc: "\uB2E4\uC74C \uC7AC\uB3C4\uC804\uC5D0 \uBC14\uB85C \uC4F8 \uB300\uD654 \uAE30\uC220", title: "\uC989\uC2DC \uC801\uC6A9 \uC2A4\uD0AC", children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(import_themes24.Grid, { columns: "1", gap: "6", children: skills.map((skill, index) => /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(
2873
2896
  Card,
2874
2897
  {
2875
2898
  style: { padding: "var(--space-3)" },
2876
2899
  variant: "surface",
2877
2900
  children: [
2878
- /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(import_themes23.Flex, { align: "center", gap: "2", children: [
2879
- /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
2901
+ /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(import_themes23.Flex, { align: "center", gap: "2", children: [
2902
+ /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
2880
2903
  import_themes23.Flex,
2881
2904
  {
2882
2905
  align: "center",
@@ -2888,7 +2911,7 @@ function CoachingPanel({ skills }) {
2888
2911
  background: "var(--accent-9)",
2889
2912
  flexShrink: 0
2890
2913
  },
2891
- children: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
2914
+ children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
2892
2915
  Typo,
2893
2916
  {
2894
2917
  as: "span",
@@ -2901,10 +2924,10 @@ function CoachingPanel({ skills }) {
2901
2924
  )
2902
2925
  }
2903
2926
  ),
2904
- /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(Typo, { as: "span", variant: "body", weight: "medium", children: skill.title })
2927
+ /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(Typo, { as: "span", variant: "body", weight: "medium", children: skill.title })
2905
2928
  ] }),
2906
- /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_themes7.Box, { mt: "2", style: { maxWidth: "65ch" }, children: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(Typo, { as: "p", variant: "body", children: skill.description }) }),
2907
- /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
2929
+ /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(import_themes7.Box, { mt: "2", style: { maxWidth: "65ch" }, children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(Typo, { as: "p", variant: "body", children: skill.description }) }),
2930
+ /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
2908
2931
  import_themes7.Box,
2909
2932
  {
2910
2933
  mt: "2",
@@ -2913,7 +2936,7 @@ function CoachingPanel({ skills }) {
2913
2936
  borderRadius: "var(--radius-2)",
2914
2937
  background: "var(--accent-a2)"
2915
2938
  },
2916
- children: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(Typo, { as: "p", style: { color: "var(--accent-11)" }, variant: "body", children: skill.example })
2939
+ children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(Typo, { as: "p", style: { color: "var(--accent-11)" }, variant: "body", children: skill.example })
2917
2940
  }
2918
2941
  )
2919
2942
  ]
@@ -2923,14 +2946,14 @@ function CoachingPanel({ skills }) {
2923
2946
  }
2924
2947
 
2925
2948
  // src/app/roleplay/parts/speech-share-bar.tsx
2926
- var import_jsx_runtime63 = require("react/jsx-runtime");
2949
+ var import_jsx_runtime64 = require("react/jsx-runtime");
2927
2950
  function SpeechShareBar({
2928
2951
  share
2929
2952
  }) {
2930
2953
  const isOvertalking = share.userPct > SPEECH_OVERTALK_THRESHOLD;
2931
- return /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(import_themes7.Box, { children: [
2932
- /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(import_themes23.Flex, { align: "center", justify: "between", mb: "1", children: [
2933
- /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(
2954
+ return /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(import_themes7.Box, { children: [
2955
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(import_themes23.Flex, { align: "center", justify: "between", mb: "1", children: [
2956
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(
2934
2957
  Typo,
2935
2958
  {
2936
2959
  as: "span",
@@ -2946,13 +2969,13 @@ function SpeechShareBar({
2946
2969
  ]
2947
2970
  }
2948
2971
  ),
2949
- /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(Typo, { as: "span", color: "gray", variant: "caption", children: [
2972
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(Typo, { as: "span", color: "gray", variant: "caption", children: [
2950
2973
  "\uC0C1\uB300 ",
2951
2974
  share.partnerPct,
2952
2975
  "%"
2953
2976
  ] })
2954
2977
  ] }),
2955
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
2978
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
2956
2979
  import_themes23.Flex,
2957
2980
  {
2958
2981
  style: {
@@ -2961,7 +2984,7 @@ function SpeechShareBar({
2961
2984
  overflow: "hidden",
2962
2985
  background: "var(--gray-4)"
2963
2986
  },
2964
- children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
2987
+ children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
2965
2988
  import_themes7.Box,
2966
2989
  {
2967
2990
  style: {
@@ -2972,12 +2995,12 @@ function SpeechShareBar({
2972
2995
  )
2973
2996
  }
2974
2997
  ),
2975
- isOvertalking ? /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(Typo, { as: "p", color: "red", mt: "1", variant: "caption", children: "\uC0C1\uB300\uC758 \uB9D0\uC744 \uB354 \uB4E3\uACE0 \uC9C8\uBB38\xB7\uACBD\uCCAD\uC758 \uBE44\uC911\uC744 \uB192\uC5EC \uBCF4\uC138\uC694" }) : null
2998
+ isOvertalking ? /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(Typo, { as: "p", color: "red", mt: "1", variant: "caption", children: "\uC0C1\uB300\uC758 \uB9D0\uC744 \uB354 \uB4E3\uACE0 \uC9C8\uBB38\xB7\uACBD\uCCAD\uC758 \uBE44\uC911\uC744 \uB192\uC5EC \uBCF4\uC138\uC694" }) : null
2976
2999
  ] });
2977
3000
  }
2978
3001
 
2979
3002
  // src/app/roleplay/parts/score-summary.tsx
2980
- var import_jsx_runtime64 = require("react/jsx-runtime");
3003
+ var import_jsx_runtime65 = require("react/jsx-runtime");
2981
3004
  function ScoreSummary({
2982
3005
  detail,
2983
3006
  report,
@@ -2986,18 +3009,18 @@ function ScoreSummary({
2986
3009
  var _a;
2987
3010
  const scoreValue = (_a = detail.totalScore) != null ? _a : report.totalScore;
2988
3011
  const comment = report.comment;
2989
- return /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(
3012
+ return /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)(
2990
3013
  import_themes24.Grid,
2991
3014
  {
2992
3015
  align: "start",
2993
3016
  columns: comment ? { initial: "1", md: "minmax(0, 240px) 1fr" } : "1",
2994
3017
  gap: "5",
2995
3018
  children: [
2996
- /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(Card, { variant: "surface", children: [
2997
- /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(import_themes23.Flex, { align: "center", direction: "column", gap: "2", py: "3", children: [
2998
- /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(Typo, { as: "p", color: "gray", variant: "body", weight: "medium", children: "\uC885\uD569 \uC810\uC218" }),
2999
- /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(import_themes23.Flex, { align: "baseline", gap: "1", children: [
3000
- /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
3019
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)(Card, { variant: "surface", children: [
3020
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)(import_themes23.Flex, { align: "center", direction: "column", gap: "2", py: "3", children: [
3021
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(Typo, { as: "p", color: "gray", variant: "body", weight: "medium", children: "\uC885\uD569 \uC810\uC218" }),
3022
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)(import_themes23.Flex, { align: "baseline", gap: "1", children: [
3023
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
3001
3024
  Typo,
3002
3025
  {
3003
3026
  as: "span",
@@ -3011,18 +3034,18 @@ function ScoreSummary({
3011
3034
  children: scoreValue != null ? scoreValue : "\u2014"
3012
3035
  }
3013
3036
  ),
3014
- /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(Typo, { as: "span", color: "gray", mono: true, variant: "subtitle", children: "/100" })
3037
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(Typo, { as: "span", color: "gray", mono: true, variant: "subtitle", children: "/100" })
3015
3038
  ] })
3016
3039
  ] }),
3017
- speechShare ? /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(import_jsx_runtime64.Fragment, { children: [
3018
- /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_themes40.Separator, { my: "3", size: "4" }),
3019
- /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(SpeechShareBar, { share: speechShare })
3040
+ speechShare ? /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)(import_jsx_runtime65.Fragment, { children: [
3041
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_themes40.Separator, { my: "3", size: "4" }),
3042
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(SpeechShareBar, { share: speechShare })
3020
3043
  ] }) : null
3021
3044
  ] }),
3022
- comment ? /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(import_themes23.Flex, { direction: "column", gap: "3", children: [
3023
- /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(Typo, { as: "p", variant: "body", weight: "medium", children: "\uC885\uD569 \uBD84\uC11D" }),
3024
- /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_themes7.Box, { style: { maxWidth: "65ch" }, children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(Typo, { as: "p", variant: "body", children: comment }) }),
3025
- report.deduction ? /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(
3045
+ comment ? /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)(import_themes23.Flex, { direction: "column", gap: "3", children: [
3046
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(Typo, { as: "p", variant: "body", weight: "medium", children: "\uC885\uD569 \uBD84\uC11D" }),
3047
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_themes7.Box, { style: { maxWidth: "65ch" }, children: /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(Typo, { as: "p", variant: "body", children: comment }) }),
3048
+ report.deduction ? /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)(
3026
3049
  import_themes7.Box,
3027
3050
  {
3028
3051
  pl: "3",
@@ -3034,7 +3057,7 @@ function ScoreSummary({
3034
3057
  borderRadius: "var(--radius-2)"
3035
3058
  },
3036
3059
  children: [
3037
- /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(
3060
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)(
3038
3061
  Typo,
3039
3062
  {
3040
3063
  as: "p",
@@ -3049,7 +3072,7 @@ function ScoreSummary({
3049
3072
  ]
3050
3073
  }
3051
3074
  ),
3052
- /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_themes7.Box, { mt: "1", style: { maxWidth: "65ch" }, children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
3075
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_themes7.Box, { mt: "1", style: { maxWidth: "65ch" }, children: /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
3053
3076
  Typo,
3054
3077
  {
3055
3078
  as: "p",
@@ -3076,10 +3099,58 @@ var import_react_table2 = require("@tanstack/react-table");
3076
3099
  var import_react42 = require("react");
3077
3100
  var import_themes53 = require("@radix-ui/themes");
3078
3101
 
3102
+ // src/molecules/empty-state.tsx
3103
+ var import_jsx_runtime66 = require("react/jsx-runtime");
3104
+ var ICON_SIZE = {
3105
+ illustration: 120,
3106
+ compact: 56
3107
+ };
3108
+ function EmptyState(_a) {
3109
+ var _b = _a, {
3110
+ size = "illustration",
3111
+ heading,
3112
+ body,
3113
+ icon
3114
+ } = _b, flexProps = __objRest(_b, [
3115
+ "size",
3116
+ "heading",
3117
+ "body",
3118
+ "icon"
3119
+ ]);
3120
+ const isCompact = size === "compact";
3121
+ const iconSize = ICON_SIZE[size];
3122
+ return /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)(
3123
+ import_themes23.Flex,
3124
+ __spreadProps(__spreadValues({
3125
+ align: "center",
3126
+ direction: "column",
3127
+ gap: isCompact ? "2" : "3",
3128
+ justify: "center",
3129
+ py: isCompact ? "5" : "9",
3130
+ width: "100%"
3131
+ }, flexProps), {
3132
+ children: [
3133
+ icon != null ? icon : /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
3134
+ EmptyBoxIcon,
3135
+ {
3136
+ color: "var(--gray-8)",
3137
+ height: iconSize,
3138
+ width: iconSize
3139
+ }
3140
+ ),
3141
+ heading || body ? /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)(import_themes23.Flex, { align: "center", direction: "column", gap: "1", children: [
3142
+ heading ? isCompact ? /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(Typo, { color: "gray", variant: "subtitle", children: heading }) : /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(Heading2, { color: "gray", variant: "heading5", children: heading }) : null,
3143
+ body ? /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(Typo, { color: "gray", variant: isCompact ? "caption" : "body", children: body }) : null
3144
+ ] }) : null
3145
+ ]
3146
+ })
3147
+ );
3148
+ }
3149
+
3079
3150
  // src/molecules/expand-table/row.tsx
3080
3151
  var import_react_table = require("@tanstack/react-table");
3081
3152
  var import_react41 = require("react");
3082
- var import_jsx_runtime65 = require("react/jsx-runtime");
3153
+ var import_jsx_runtime67 = require("react/jsx-runtime");
3083
3154
  function Row(props) {
3084
3155
  const { row, ExpandComp, gridTemplateColumns, getRowStyle, getCellStyle } = props;
3085
3156
  const [open, setOpen] = (0, import_react41.useState)(false);
@@ -3098,8 +3169,8 @@ function Row(props) {
3098
3169
  }
3099
3170
  return baseCls.join(" ");
3100
3171
  }, [ExpandComp, props.onRowClick]);
3101
- return /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: rowClassName, children: [
3102
- /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
3172
+ return /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("div", { className: rowClassName, children: [
3173
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
3103
3174
  "button",
3104
3175
  {
3105
3176
  className: "tr",
@@ -3112,7 +3183,7 @@ function Row(props) {
3112
3183
  var _a, _b, _c;
3113
3184
  const autoSize = (_a = cell.column.columnDef.meta) == null ? void 0 : _a.autoSize;
3114
3185
  const justifyContent = ((_b = cell.column.columnDef.meta) == null ? void 0 : _b.align) || props.defaultAlign;
3115
- return /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)(
3186
+ return /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(
3116
3187
  "div",
3117
3188
  {
3118
3189
  className: "td",
@@ -3123,7 +3194,7 @@ function Row(props) {
3123
3194
  }, (getCellStyle == null ? void 0 : getCellStyle(row.original)) || {}),
3124
3195
  children: [
3125
3196
  (0, import_react_table.flexRender)(cell.column.columnDef.cell, cell.getContext()),
3126
- ((_c = cell.column.columnDef.meta) == null ? void 0 : _c.OpenBtn) ? /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
3197
+ ((_c = cell.column.columnDef.meta) == null ? void 0 : _c.OpenBtn) ? /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
3127
3198
  cell.column.columnDef.meta.OpenBtn,
3128
3199
  {
3129
3200
  data: row.original,
@@ -3139,12 +3210,12 @@ function Row(props) {
3139
3210
  },
3140
3211
  `tr_${row.id}`
3141
3212
  ),
3142
- ExpandComp ? /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(Collapse, { open, children: /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("div", { className: "expand-comp-wrapper", children: /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(ExpandComp, { row }) }) }) : null
3213
+ ExpandComp ? /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(Collapse, { open, children: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("div", { className: "expand-comp-wrapper", children: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(ExpandComp, { row }) }) }) : null
3143
3214
  ] }, `tr-wrapper_${row.id}`);
3144
3215
  }
3145
3216
 
3146
3217
  // src/molecules/expand-table/index.tsx
3147
- var import_jsx_runtime66 = require("react/jsx-runtime");
3218
+ var import_jsx_runtime68 = require("react/jsx-runtime");
3148
3219
  var sortButtonColorMapper = {
3149
3220
  card: {
3150
3221
  selected: "var(--iris-10)",
@@ -3204,7 +3275,10 @@ function ExpandTable(props) {
3204
3275
  },
3205
3276
  onSortingChange: setSorting,
3206
3277
  getPaginationRowModel: (0, import_react_table2.getPaginationRowModel)(),
3207
- onPaginationChange: setPagination
3278
+ onPaginationChange: setPagination,
3279
+ // data 참조가 바뀔 때(예: 목록 refetch) tanstack이 pageIndex를 0으로
3280
+ // 자동 리셋하지 않도록 끈다. 행 수정 저장 후에도 보던 페이지를 유지하기 위함.
3281
+ autoResetPageIndex: false
3208
3282
  });
3209
3283
  const gridTemplateColumns = (0, import_react42.useMemo)(() => {
3210
3284
  return columns.map((col) => {
@@ -3225,7 +3299,7 @@ function ExpandTable(props) {
3225
3299
  const helpCompRender = (0, import_react42.useCallback)(
3226
3300
  (rowLength) => {
3227
3301
  if (isLoading) {
3228
- return /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
3302
+ return /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
3229
3303
  import_themes23.Flex,
3230
3304
  {
3231
3305
  align: "center",
@@ -3233,12 +3307,12 @@ function ExpandTable(props) {
3233
3307
  justify: "center",
3234
3308
  p: "5",
3235
3309
  width: "100%",
3236
- children: /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(import_themes50.Spinner, {})
3310
+ children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(import_themes50.Spinner, {})
3237
3311
  }
3238
3312
  );
3239
3313
  }
3240
3314
  if (rowLength === 0) {
3241
- return /* @__PURE__ */ (0, import_jsx_runtime66.jsx)("div", { className: "tr", children: /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(import_themes23.Flex, { align: "center", justify: "center", children: placeholder || /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(Typo, { color: "gray", mb: "6", mt: "6", variant: "body", children: "\uB370\uC774\uD130\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4" }) }) }, "expand_placeholder");
3315
+ return /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("div", { className: "tr", children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(import_themes23.Flex, { align: "center", justify: "center", children: placeholder || /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(EmptyState, { heading: "\uB370\uC774\uD130\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4", size: "compact" }) }) }, "expand_placeholder");
3242
3316
  }
3243
3317
  return null;
3244
3318
  },
@@ -3248,9 +3322,9 @@ function ExpandTable(props) {
3248
3322
  if (!data) return 0;
3249
3323
  return Math.ceil(data.length / pageSize);
3250
3324
  }, [data, pageSize]);
3251
- return /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)("div", { className: `expand-table-wrapper ${variant}${slim ? " slim" : ""}`, children: [
3252
- /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)("div", { className: "expand-table", style: tableStyle, children: [
3253
- /* @__PURE__ */ (0, import_jsx_runtime66.jsx)("div", { className: "thead", children: getHeaderGroups().map((headerGroup) => /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
3325
+ return /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)("div", { className: `expand-table-wrapper ${variant}${slim ? " slim" : ""}`, children: [
3326
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)("div", { className: "expand-table", style: tableStyle, children: [
3327
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("div", { className: "thead", children: getHeaderGroups().map((headerGroup) => /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
3254
3328
  "div",
3255
3329
  {
3256
3330
  className: "tr",
@@ -3261,36 +3335,36 @@ function ExpandTable(props) {
3261
3335
  const sortedState = header.column.getIsSorted();
3262
3336
  const justifyContent = ((_a = header.column.columnDef.meta) == null ? void 0 : _a.align) || defaultAlign;
3263
3337
  if (sortable) {
3264
- return /* @__PURE__ */ (0, import_jsx_runtime66.jsx)("div", { className: `${justifyContent} th`, children: /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)(
3338
+ return /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("div", { className: `${justifyContent} th`, children: /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)(
3265
3339
  "button",
3266
3340
  {
3267
3341
  onClick: header.column.getToggleSortingHandler(),
3268
3342
  style: { cursor: "pointer" },
3269
3343
  type: "button",
3270
3344
  children: [
3271
- /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(Typo, { as: "div", variant: "body", children: (0, import_react_table2.flexRender)(
3345
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(Typo, { as: "div", variant: "body", children: (0, import_react_table2.flexRender)(
3272
3346
  header.column.columnDef.header,
3273
3347
  header.getContext()
3274
3348
  ) }),
3275
- /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)(
3349
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)(
3276
3350
  import_themes23.Flex,
3277
3351
  {
3278
3352
  direction: "column",
3279
3353
  style: { marginLeft: "var(--space-2)" },
3280
3354
  children: [
3281
- sortedState === false && /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
3355
+ sortedState === false && /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
3282
3356
  TriangleArrowDownIcon,
3283
3357
  {
3284
3358
  color: sortButtonColorMapper[variant].unselected
3285
3359
  }
3286
3360
  ),
3287
- sortedState === "asc" && /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
3361
+ sortedState === "asc" && /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
3288
3362
  TriangleArrowUpIcon,
3289
3363
  {
3290
3364
  color: sortButtonColorMapper[variant].selected
3291
3365
  }
3292
3366
  ),
3293
- sortedState === "desc" && /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
3367
+ sortedState === "desc" && /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
3294
3368
  TriangleArrowDownIcon,
3295
3369
  {
3296
3370
  color: sortButtonColorMapper[variant].selected
@@ -3303,7 +3377,7 @@ function ExpandTable(props) {
3303
3377
  }
3304
3378
  ) }, header.id);
3305
3379
  }
3306
- return /* @__PURE__ */ (0, import_jsx_runtime66.jsx)("div", { className: `${justifyContent} th`, children: /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(Typo, { as: "div", variant: "body", children: (0, import_react_table2.flexRender)(
3380
+ return /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("div", { className: `${justifyContent} th`, children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(Typo, { as: "div", variant: "body", children: (0, import_react_table2.flexRender)(
3307
3381
  header.column.columnDef.header,
3308
3382
  header.getContext()
3309
3383
  ) }) }, header.id);
@@ -3311,8 +3385,8 @@ function ExpandTable(props) {
3311
3385
  },
3312
3386
  headerGroup.id
3313
3387
  )) }),
3314
- /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(import_themes53.ScrollArea, { className: "tbody", children: helpCompRender(rowModels.rows.length) || rowModels.rows.map((row) => {
3315
- return /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
3388
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(import_themes53.ScrollArea, { className: "tbody", children: helpCompRender(rowModels.rows.length) || rowModels.rows.map((row) => {
3389
+ return /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
3316
3390
  Row,
3317
3391
  {
3318
3392
  ExpandComp,
@@ -3327,7 +3401,7 @@ function ExpandTable(props) {
3327
3401
  );
3328
3402
  }) })
3329
3403
  ] }),
3330
- showPagination ? /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(import_themes23.Flex, { justify: "end", pt: "4", width: "100%", children: /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
3404
+ showPagination ? /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(import_themes23.Flex, { justify: "end", pt: "4", width: "100%", children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
3331
3405
  Pagination,
3332
3406
  {
3333
3407
  count: pageCount,
@@ -3340,13 +3414,13 @@ function ExpandTable(props) {
3340
3414
  }
3341
3415
 
3342
3416
  // src/molecules/navigation.tsx
3343
- var import_jsx_runtime67 = require("react/jsx-runtime");
3417
+ var import_jsx_runtime69 = require("react/jsx-runtime");
3344
3418
 
3345
3419
  // src/molecules/date-picker/index.tsx
3346
3420
  var import_react43 = require("react");
3347
3421
  var import_react_datepicker = __toESM(require("react-datepicker"), 1);
3348
3422
  var import_locale = require("date-fns/locale");
3349
- var import_jsx_runtime68 = require("react/jsx-runtime");
3423
+ var import_jsx_runtime70 = require("react/jsx-runtime");
3350
3424
  var DatePicker = (0, import_react43.forwardRef)(
3351
3425
  (props, ref) => {
3352
3426
  const _a = props, { fullWidth } = _a, rest = __objRest(_a, ["fullWidth"]);
@@ -3377,7 +3451,7 @@ var DatePicker = (0, import_react43.forwardRef)(
3377
3451
  setIsMonthDropdownOpen
3378
3452
  }));
3379
3453
  }, [isMonthDropdownOpen, isYearDropdownOpen, props]);
3380
- return /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(import_themes23.Flex, { p: "0", width: "100%", children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
3454
+ return /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(import_themes23.Flex, { p: "0", width: "100%", children: /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
3381
3455
  import_react_datepicker.default,
3382
3456
  __spreadProps(__spreadValues({
3383
3457
  dateFormat: "yyyy/MM/dd h:mm aa",
@@ -3425,19 +3499,19 @@ function DropdownSelector({
3425
3499
  });
3426
3500
  }
3427
3501
  }, [isOpen]);
3428
- return /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)(Popover.Root, { modal: true, onOpenChange, open: isOpen, children: [
3429
- /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(Popover.Trigger, { children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(Button, { className: "react-datepicker_dropdown_header", variant: "ghost", children: /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)(Heading2, { variant: "heading4", weight: "regular", children: [
3502
+ return /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(Popover.Root, { modal: true, onOpenChange, open: isOpen, children: [
3503
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(Popover.Trigger, { children: /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(Button, { className: "react-datepicker_dropdown_header", variant: "ghost", children: /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(Heading2, { variant: "heading4", weight: "regular", children: [
3430
3504
  selectedValue,
3431
3505
  suffix
3432
3506
  ] }) }) }),
3433
- /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(Popover.Content, { side: "bottom", children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
3507
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(Popover.Content, { side: "bottom", children: /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
3434
3508
  import_themes7.Box,
3435
3509
  {
3436
3510
  maxHeight: "200px",
3437
3511
  overflowY: "auto",
3438
3512
  ref: scrollContainerRef,
3439
3513
  style: { scrollbarWidth: "none" },
3440
- children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(import_themes23.Flex, { direction: "column", gap: "1", children: options.map((item) => /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
3514
+ children: /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(import_themes23.Flex, { direction: "column", gap: "1", children: options.map((item) => /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
3441
3515
  Button,
3442
3516
  {
3443
3517
  className: "react-datepicker_dropdown_item",
@@ -3451,7 +3525,7 @@ function DropdownSelector({
3451
3525
  e.preventDefault();
3452
3526
  },
3453
3527
  variant: "transparent",
3454
- children: /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)(Typo, { weight: item === selectedValue ? "bold" : void 0, children: [
3528
+ children: /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(Typo, { weight: item === selectedValue ? "bold" : void 0, children: [
3455
3529
  item,
3456
3530
  suffix
3457
3531
  ] })
@@ -3482,8 +3556,8 @@ var getRenderCustomHeader = (props) => {
3482
3556
  } = props;
3483
3557
  const year = date ? new Date(date).getFullYear() : "-";
3484
3558
  const month = date ? new Date(date).getMonth() + 1 : "-";
3485
- return /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)(import_themes23.Flex, { align: "center", justify: "between", pl: "2", pr: "2", children: [
3486
- /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
3559
+ return /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(import_themes23.Flex, { align: "center", justify: "between", pl: "2", pr: "2", children: [
3560
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
3487
3561
  IconButton,
3488
3562
  {
3489
3563
  className: "react-datepicker_dropdown_header",
@@ -3491,11 +3565,11 @@ var getRenderCustomHeader = (props) => {
3491
3565
  onClick: decreaseMonth,
3492
3566
  type: "button",
3493
3567
  variant: "ghost",
3494
- children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(import_react_icons2.ChevronLeftIcon, {})
3568
+ children: /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(import_react_icons2.ChevronLeftIcon, {})
3495
3569
  }
3496
3570
  ),
3497
- /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)(import_themes23.Flex, { gap: "3", children: [
3498
- /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
3571
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(import_themes23.Flex, { gap: "3", children: [
3572
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
3499
3573
  DropdownSelector,
3500
3574
  {
3501
3575
  isOpen: isYearDropdownOpen,
@@ -3509,7 +3583,7 @@ var getRenderCustomHeader = (props) => {
3509
3583
  suffix: "\uB144"
3510
3584
  }
3511
3585
  ),
3512
- /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
3586
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
3513
3587
  DropdownSelector,
3514
3588
  {
3515
3589
  isOpen: isMonthDropdownOpen,
@@ -3524,7 +3598,7 @@ var getRenderCustomHeader = (props) => {
3524
3598
  }
3525
3599
  )
3526
3600
  ] }),
3527
- /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
3601
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
3528
3602
  IconButton,
3529
3603
  {
3530
3604
  className: "react-datepicker_dropdown_header",
@@ -3532,7 +3606,7 @@ var getRenderCustomHeader = (props) => {
3532
3606
  onClick: increaseMonth,
3533
3607
  type: "button",
3534
3608
  variant: "ghost",
3535
- children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(import_react_icons2.ChevronRightIcon, {})
3609
+ children: /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(import_react_icons2.ChevronRightIcon, {})
3536
3610
  }
3537
3611
  )
3538
3612
  ] });
@@ -3543,12 +3617,12 @@ var getRenderCustomHeader = (props) => {
3543
3617
  // src/molecules/dot-navigation.tsx
3544
3618
  var import_react44 = require("react");
3545
3619
  var import_react_icons3 = require("@radix-ui/react-icons");
3546
- var import_jsx_runtime69 = require("react/jsx-runtime");
3620
+ var import_jsx_runtime71 = require("react/jsx-runtime");
3547
3621
 
3548
3622
  // src/molecules/stepper.tsx
3549
3623
  var import_react45 = require("react");
3550
3624
  var import_themes54 = require("@radix-ui/themes");
3551
- var import_jsx_runtime70 = require("react/jsx-runtime");
3625
+ var import_jsx_runtime72 = require("react/jsx-runtime");
3552
3626
  var StepContext = (0, import_react45.createContext)({
3553
3627
  active: false,
3554
3628
  completed: false,
@@ -3558,20 +3632,20 @@ var StepContext = (0, import_react45.createContext)({
3558
3632
  // src/molecules/tag-selector.tsx
3559
3633
  var import_react46 = require("react");
3560
3634
  var import_react_icons4 = require("@radix-ui/react-icons");
3561
- var import_jsx_runtime71 = require("react/jsx-runtime");
3635
+ var import_jsx_runtime73 = require("react/jsx-runtime");
3562
3636
 
3563
3637
  // src/molecules/learning-post.tsx
3564
- var import_jsx_runtime72 = require("react/jsx-runtime");
3638
+ var import_jsx_runtime74 = require("react/jsx-runtime");
3565
3639
 
3566
3640
  // src/molecules/force-refresh.tsx
3567
3641
  var import_react_icons5 = require("@radix-ui/react-icons");
3568
- var import_jsx_runtime73 = require("react/jsx-runtime");
3642
+ var import_jsx_runtime75 = require("react/jsx-runtime");
3569
3643
 
3570
3644
  // src/molecules/date-picker/date-picker-button.tsx
3571
3645
  var import_react47 = require("react");
3572
3646
  var import_date_fns2 = require("date-fns");
3573
3647
  var import_clsx29 = require("clsx");
3574
- var import_jsx_runtime74 = require("react/jsx-runtime");
3648
+ var import_jsx_runtime76 = require("react/jsx-runtime");
3575
3649
 
3576
3650
  // src/molecules/time-select.tsx
3577
3651
  var import_react48 = require("react");
@@ -3598,34 +3672,34 @@ for (const opt of AI_CALLOUT_ICON_OPTIONS) {
3598
3672
  }
3599
3673
 
3600
3674
  // src/molecules/time-select.tsx
3601
- var import_jsx_runtime75 = require("react/jsx-runtime");
3675
+ var import_jsx_runtime77 = require("react/jsx-runtime");
3602
3676
 
3603
3677
  // src/molecules/radio-button-card.tsx
3604
3678
  var import_react49 = require("react");
3605
- var import_jsx_runtime76 = require("react/jsx-runtime");
3679
+ var import_jsx_runtime78 = require("react/jsx-runtime");
3606
3680
  var RadioCardContext = (0, import_react49.createContext)({});
3607
3681
 
3608
3682
  // src/molecules/download-card.tsx
3609
3683
  var import_react_icons6 = require("@radix-ui/react-icons");
3610
- var import_jsx_runtime77 = require("react/jsx-runtime");
3684
+ var import_jsx_runtime79 = require("react/jsx-runtime");
3611
3685
 
3612
3686
  // src/molecules/ghost-post.tsx
3613
- var import_jsx_runtime78 = require("react/jsx-runtime");
3687
+ var import_jsx_runtime80 = require("react/jsx-runtime");
3614
3688
 
3615
3689
  // src/molecules/curriculumV2/curriculum-context.tsx
3616
3690
  var import_react50 = require("react");
3617
- var import_jsx_runtime79 = require("react/jsx-runtime");
3691
+ var import_jsx_runtime81 = require("react/jsx-runtime");
3618
3692
  var CurriculumContext = (0, import_react50.createContext)(
3619
3693
  void 0
3620
3694
  );
3621
3695
 
3622
3696
  // src/molecules/curriculumV2/curriculum-sub-nav.tsx
3623
3697
  var import_react51 = require("react");
3624
- var import_jsx_runtime80 = require("react/jsx-runtime");
3698
+ var import_jsx_runtime82 = require("react/jsx-runtime");
3625
3699
 
3626
3700
  // src/molecules/curriculumV2/CurriculumContents/curriculum-video.tsx
3627
3701
  var import_react52 = require("react");
3628
- var import_jsx_runtime81 = require("react/jsx-runtime");
3702
+ var import_jsx_runtime83 = require("react/jsx-runtime");
3629
3703
 
3630
3704
  // src/molecules/curriculumV2/CurriculumContents/curriculum-review.tsx
3631
3705
  var import_react55 = require("react");
@@ -3636,88 +3710,88 @@ var import_react53 = require("react");
3636
3710
  var import_formik = require("formik");
3637
3711
  var import_lodash_es = require("lodash-es");
3638
3712
  var Yup = __toESM(require("yup"), 1);
3639
- var import_jsx_runtime82 = require("react/jsx-runtime");
3713
+ var import_jsx_runtime84 = require("react/jsx-runtime");
3640
3714
  var CurriculumReviewContext = (0, import_react53.createContext)(void 0);
3641
3715
 
3642
3716
  // src/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/start-review.tsx
3643
- var import_jsx_runtime83 = require("react/jsx-runtime");
3717
+ var import_jsx_runtime85 = require("react/jsx-runtime");
3644
3718
 
3645
3719
  // src/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/complete-review.tsx
3646
- var import_jsx_runtime84 = require("react/jsx-runtime");
3720
+ var import_jsx_runtime86 = require("react/jsx-runtime");
3647
3721
 
3648
3722
  // src/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-layout.tsx
3649
- var import_jsx_runtime85 = require("react/jsx-runtime");
3723
+ var import_jsx_runtime87 = require("react/jsx-runtime");
3650
3724
 
3651
3725
  // src/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-header.tsx
3652
- var import_jsx_runtime86 = require("react/jsx-runtime");
3726
+ var import_jsx_runtime88 = require("react/jsx-runtime");
3653
3727
 
3654
3728
  // src/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-footer.tsx
3655
- var import_jsx_runtime87 = require("react/jsx-runtime");
3729
+ var import_jsx_runtime89 = require("react/jsx-runtime");
3656
3730
 
3657
3731
  // src/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-radio.tsx
3658
3732
  var import_react54 = require("react");
3659
3733
 
3660
3734
  // src/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-comp.tsx
3661
- var import_jsx_runtime88 = require("react/jsx-runtime");
3735
+ var import_jsx_runtime90 = require("react/jsx-runtime");
3662
3736
 
3663
3737
  // src/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-radio.tsx
3664
- var import_jsx_runtime89 = require("react/jsx-runtime");
3738
+ var import_jsx_runtime91 = require("react/jsx-runtime");
3665
3739
 
3666
3740
  // src/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-text.tsx
3667
- var import_jsx_runtime90 = require("react/jsx-runtime");
3741
+ var import_jsx_runtime92 = require("react/jsx-runtime");
3668
3742
 
3669
3743
  // src/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-satisfaction-option.tsx
3670
- var import_jsx_runtime91 = require("react/jsx-runtime");
3744
+ var import_jsx_runtime93 = require("react/jsx-runtime");
3671
3745
 
3672
3746
  // src/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-satisfaction-text.tsx
3673
- var import_jsx_runtime92 = require("react/jsx-runtime");
3747
+ var import_jsx_runtime94 = require("react/jsx-runtime");
3674
3748
 
3675
3749
  // src/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-body.tsx
3676
- var import_jsx_runtime93 = require("react/jsx-runtime");
3750
+ var import_jsx_runtime95 = require("react/jsx-runtime");
3677
3751
 
3678
3752
  // src/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/index.tsx
3679
- var import_jsx_runtime94 = require("react/jsx-runtime");
3753
+ var import_jsx_runtime96 = require("react/jsx-runtime");
3680
3754
 
3681
3755
  // src/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/index.tsx
3682
- var import_jsx_runtime95 = require("react/jsx-runtime");
3756
+ var import_jsx_runtime97 = require("react/jsx-runtime");
3683
3757
 
3684
3758
  // src/molecules/curriculumV2/CurriculumContents/curriculum-review.tsx
3685
- var import_jsx_runtime96 = require("react/jsx-runtime");
3759
+ var import_jsx_runtime98 = require("react/jsx-runtime");
3686
3760
 
3687
3761
  // src/molecules/curriculumV2/CurriculumContents/curriculum-ai-traning.tsx
3688
3762
  var import_react56 = require("react");
3689
- var import_jsx_runtime97 = require("react/jsx-runtime");
3763
+ var import_jsx_runtime99 = require("react/jsx-runtime");
3690
3764
 
3691
3765
  // src/molecules/curriculumV2/CurriculumContents/curriculum-file-download.tsx
3692
3766
  var import_react57 = require("react");
3693
- var import_jsx_runtime98 = require("react/jsx-runtime");
3767
+ var import_jsx_runtime100 = require("react/jsx-runtime");
3694
3768
 
3695
3769
  // src/molecules/curriculumV2/CurriculumContents/index.tsx
3696
- var import_jsx_runtime99 = require("react/jsx-runtime");
3770
+ var import_jsx_runtime101 = require("react/jsx-runtime");
3697
3771
 
3698
3772
  // src/molecules/curriculumV2/CurriculumSidebar/index.tsx
3699
3773
  var import_react58 = require("react");
3700
3774
 
3701
3775
  // src/molecules/curriculumV2/CurriculumSidebar/Items/section-title.tsx
3702
- var import_jsx_runtime100 = require("react/jsx-runtime");
3776
+ var import_jsx_runtime102 = require("react/jsx-runtime");
3703
3777
 
3704
3778
  // src/molecules/curriculumV2/CurriculumSidebar/Items/curriculum-sidebar-item-wrapper.tsx
3705
- var import_jsx_runtime101 = require("react/jsx-runtime");
3779
+ var import_jsx_runtime103 = require("react/jsx-runtime");
3706
3780
 
3707
3781
  // src/molecules/curriculumV2/CurriculumSidebar/Items/curriculum-item-title.tsx
3708
- var import_jsx_runtime102 = require("react/jsx-runtime");
3782
+ var import_jsx_runtime104 = require("react/jsx-runtime");
3709
3783
 
3710
3784
  // src/molecules/curriculumV2/CurriculumSidebar/Items/section-item.tsx
3711
- var import_jsx_runtime103 = require("react/jsx-runtime");
3785
+ var import_jsx_runtime105 = require("react/jsx-runtime");
3712
3786
 
3713
3787
  // src/molecules/curriculumV2/CurriculumSidebar/sidebar-item.tsx
3714
- var import_jsx_runtime104 = require("react/jsx-runtime");
3788
+ var import_jsx_runtime106 = require("react/jsx-runtime");
3715
3789
 
3716
3790
  // src/molecules/curriculumV2/CurriculumSidebar/index.tsx
3717
- var import_jsx_runtime105 = require("react/jsx-runtime");
3791
+ var import_jsx_runtime107 = require("react/jsx-runtime");
3718
3792
 
3719
3793
  // src/molecules/curriculumV2/curriculum-v2-layout.tsx
3720
- var import_jsx_runtime106 = require("react/jsx-runtime");
3794
+ var import_jsx_runtime108 = require("react/jsx-runtime");
3721
3795
 
3722
3796
  // src/molecules/dynamic-form.tsx
3723
3797
  var import_react60 = require("react");
@@ -3727,26 +3801,26 @@ var import_themes55 = require("@radix-ui/themes");
3727
3801
 
3728
3802
  // src/context/dynamic-form-context.tsx
3729
3803
  var import_react59 = require("react");
3730
- var import_jsx_runtime107 = require("react/jsx-runtime");
3804
+ var import_jsx_runtime109 = require("react/jsx-runtime");
3731
3805
  var DynamicFormContext = (0, import_react59.createContext)(null);
3732
3806
 
3733
3807
  // src/molecules/dynamic-field.tsx
3734
- var import_jsx_runtime108 = require("react/jsx-runtime");
3808
+ var import_jsx_runtime110 = require("react/jsx-runtime");
3735
3809
 
3736
3810
  // src/molecules/dynamic-form.tsx
3737
- var import_jsx_runtime109 = require("react/jsx-runtime");
3811
+ var import_jsx_runtime111 = require("react/jsx-runtime");
3738
3812
 
3739
3813
  // src/molecules/one-on-one-guide-list.tsx
3740
3814
  var import_react61 = require("react");
3741
- var import_jsx_runtime110 = require("react/jsx-runtime");
3815
+ var import_jsx_runtime112 = require("react/jsx-runtime");
3742
3816
 
3743
3817
  // src/molecules/description-json-render.tsx
3744
- var import_jsx_runtime111 = require("react/jsx-runtime");
3818
+ var import_jsx_runtime113 = require("react/jsx-runtime");
3745
3819
 
3746
3820
  // src/molecules/training-info-guideline.tsx
3747
3821
  var import_react62 = require("react");
3748
3822
  var import_react_icons8 = require("@radix-ui/react-icons");
3749
- var import_jsx_runtime112 = require("react/jsx-runtime");
3823
+ var import_jsx_runtime114 = require("react/jsx-runtime");
3750
3824
 
3751
3825
  // src/molecules/dynamic-form-editor.tsx
3752
3826
  var import_react65 = require("react");
@@ -3754,26 +3828,26 @@ var import_react65 = require("react");
3754
3828
  // src/molecules/dynamic-form-editor-field-editor-panel.tsx
3755
3829
  var import_react63 = require("react");
3756
3830
  var import_themes56 = require("@radix-ui/themes");
3757
- var import_jsx_runtime113 = require("react/jsx-runtime");
3831
+ var import_jsx_runtime115 = require("react/jsx-runtime");
3758
3832
 
3759
3833
  // src/molecules/dynamic-form-editor-field-list-panel.tsx
3760
3834
  var import_react64 = require("react");
3761
3835
  var import_themes57 = require("@radix-ui/themes");
3762
- var import_jsx_runtime114 = require("react/jsx-runtime");
3836
+ var import_jsx_runtime116 = require("react/jsx-runtime");
3763
3837
 
3764
3838
  // src/molecules/dynamic-form-editor-issues-panel.tsx
3765
- var import_jsx_runtime115 = require("react/jsx-runtime");
3839
+ var import_jsx_runtime117 = require("react/jsx-runtime");
3766
3840
 
3767
3841
  // src/molecules/dynamic-form-editor-preview-panel.tsx
3768
- var import_jsx_runtime116 = require("react/jsx-runtime");
3842
+ var import_jsx_runtime118 = require("react/jsx-runtime");
3769
3843
 
3770
3844
  // src/molecules/dynamic-form-editor.tsx
3771
- var import_jsx_runtime117 = require("react/jsx-runtime");
3845
+ var import_jsx_runtime119 = require("react/jsx-runtime");
3772
3846
 
3773
3847
  // src/molecules/autocomplete-textfield.tsx
3774
3848
  var import_react66 = require("react");
3775
3849
  var import_themes58 = require("@radix-ui/themes");
3776
- var import_jsx_runtime118 = require("react/jsx-runtime");
3850
+ var import_jsx_runtime120 = require("react/jsx-runtime");
3777
3851
  var AutocompleteTextfield = (0, import_react66.forwardRef)(
3778
3852
  (_a, ref) => {
3779
3853
  var _b = _a, {
@@ -3899,8 +3973,8 @@ var AutocompleteTextfield = (0, import_react66.forwardRef)(
3899
3973
  const item = listRef.current.children[highlightedIndex];
3900
3974
  item.scrollIntoView({ block: "nearest" });
3901
3975
  }, [highlightedIndex]);
3902
- return /* @__PURE__ */ (0, import_jsx_runtime118.jsxs)(import_themes58.Box, { position: "relative", style: { width: "100%" }, children: [
3903
- /* @__PURE__ */ (0, import_jsx_runtime118.jsxs)(
3976
+ return /* @__PURE__ */ (0, import_jsx_runtime120.jsxs)(import_themes58.Box, { position: "relative", style: { width: "100%" }, children: [
3977
+ /* @__PURE__ */ (0, import_jsx_runtime120.jsxs)(
3904
3978
  TextField.Root,
3905
3979
  __spreadProps(__spreadValues({
3906
3980
  "aria-activedescendant": open && highlightedIndex >= 0 ? `${listboxId}-option-${highlightedIndex}` : void 0,
@@ -3926,12 +4000,12 @@ var AutocompleteTextfield = (0, import_react66.forwardRef)(
3926
4000
  value: inputValue
3927
4001
  }, rest), {
3928
4002
  children: [
3929
- slotLeft && /* @__PURE__ */ (0, import_jsx_runtime118.jsx)(TextField.Slot, { side: "left", children: slotLeft }),
3930
- slotRight && /* @__PURE__ */ (0, import_jsx_runtime118.jsx)(TextField.Slot, { side: "right", children: slotRight })
4003
+ slotLeft && /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(TextField.Slot, { side: "left", children: slotLeft }),
4004
+ slotRight && /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(TextField.Slot, { side: "right", children: slotRight })
3931
4005
  ]
3932
4006
  })
3933
4007
  ),
3934
- /* @__PURE__ */ (0, import_jsx_runtime118.jsxs)(
4008
+ /* @__PURE__ */ (0, import_jsx_runtime120.jsxs)(
3935
4009
  DropdownMenu.Root,
3936
4010
  {
3937
4011
  modal: false,
@@ -3943,7 +4017,7 @@ var AutocompleteTextfield = (0, import_react66.forwardRef)(
3943
4017
  },
3944
4018
  open,
3945
4019
  children: [
3946
- /* @__PURE__ */ (0, import_jsx_runtime118.jsx)(DropdownMenu.Trigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime118.jsx)(
4020
+ /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(DropdownMenu.Trigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(
3947
4021
  "span",
3948
4022
  {
3949
4023
  "aria-hidden": "true",
@@ -3958,7 +4032,7 @@ var AutocompleteTextfield = (0, import_react66.forwardRef)(
3958
4032
  }
3959
4033
  }
3960
4034
  ) }),
3961
- /* @__PURE__ */ (0, import_jsx_runtime118.jsx)(
4035
+ /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(
3962
4036
  DropdownMenu.Content,
3963
4037
  {
3964
4038
  align: "start",
@@ -3975,7 +4049,7 @@ var AutocompleteTextfield = (0, import_react66.forwardRef)(
3975
4049
  padding: 0,
3976
4050
  width: "var(--radix-dropdown-menu-trigger-width)"
3977
4051
  },
3978
- children: filtered.length === 0 && emptyMessage !== null ? /* @__PURE__ */ (0, import_jsx_runtime118.jsx)(import_themes58.Box, { px: "2", py: "2", children: /* @__PURE__ */ (0, import_jsx_runtime118.jsx)(Typo, { color: "gray", children: emptyMessage }) }) : /* @__PURE__ */ (0, import_jsx_runtime118.jsx)(
4052
+ children: filtered.length === 0 && emptyMessage !== null ? /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(import_themes58.Box, { px: "2", py: "2", children: /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(Typo, { color: "gray", children: emptyMessage }) }) : /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(
3979
4053
  "ul",
3980
4054
  {
3981
4055
  id: listboxId,
@@ -3984,7 +4058,7 @@ var AutocompleteTextfield = (0, import_react66.forwardRef)(
3984
4058
  style: { listStyle: "none", margin: 0, padding: 0 },
3985
4059
  children: filtered.map((option, index) => {
3986
4060
  const isHighlighted = index === highlightedIndex;
3987
- return /* @__PURE__ */ (0, import_jsx_runtime118.jsx)(
4061
+ return /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(
3988
4062
  "li",
3989
4063
  {
3990
4064
  "aria-selected": isHighlighted,
@@ -4003,7 +4077,7 @@ var AutocompleteTextfield = (0, import_react66.forwardRef)(
4003
4077
  backgroundColor: isHighlighted ? "var(--accent-3)" : "transparent",
4004
4078
  transition: "background-color 80ms"
4005
4079
  },
4006
- children: /* @__PURE__ */ (0, import_jsx_runtime118.jsx)(Typo, { variant: "body", children: option.label })
4080
+ children: /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(Typo, { variant: "body", children: option.label })
4007
4081
  },
4008
4082
  option.value
4009
4083
  );
@@ -4030,7 +4104,7 @@ var import_renderers = require("echarts/renderers");
4030
4104
  var import_components = require("echarts/components");
4031
4105
 
4032
4106
  // src/charts/horizontal-bar-chart.tsx
4033
- var import_jsx_runtime119 = require("react/jsx-runtime");
4107
+ var import_jsx_runtime121 = require("react/jsx-runtime");
4034
4108
 
4035
4109
  // src/charts/chart-theme.json
4036
4110
  var chart_theme_default = {
@@ -4181,7 +4255,7 @@ var EchartDefaultProps = {
4181
4255
  };
4182
4256
 
4183
4257
  // src/app/roleplay/chart/session-chart.tsx
4184
- var import_jsx_runtime120 = require("react/jsx-runtime");
4258
+ var import_jsx_runtime122 = require("react/jsx-runtime");
4185
4259
  function unwrapDefault(mod) {
4186
4260
  let current = mod;
4187
4261
  while (current !== null && typeof current === "object" && "default" in current) {
@@ -4241,7 +4315,7 @@ function Chart(_a) {
4241
4315
  };
4242
4316
  return deepMerge(baseOption, optionProp);
4243
4317
  }, [optionProp]);
4244
- return /* @__PURE__ */ (0, import_jsx_runtime120.jsx)("div", { ref, style: { width: "100%", height: "100%" }, children: mounted ? /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(
4318
+ return /* @__PURE__ */ (0, import_jsx_runtime122.jsx)("div", { ref, style: { width: "100%", height: "100%" }, children: mounted ? /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(
4245
4319
  ReactEChartsCore,
4246
4320
  __spreadProps(__spreadValues(__spreadProps(__spreadValues({}, EchartDefaultProps), {
4247
4321
  echarts,
@@ -4290,7 +4364,7 @@ function useTokenColors(vars) {
4290
4364
  }
4291
4365
  setResolved(next);
4292
4366
  }, [key]);
4293
- const probe = /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(
4367
+ const probe = /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(
4294
4368
  "span",
4295
4369
  {
4296
4370
  "aria-hidden": true,
@@ -4302,7 +4376,7 @@ function useTokenColors(vars) {
4302
4376
  }
4303
4377
 
4304
4378
  // src/app/roleplay/parts/score-trend-section.tsx
4305
- var import_jsx_runtime121 = require("react/jsx-runtime");
4379
+ var import_jsx_runtime123 = require("react/jsx-runtime");
4306
4380
  function formatDateOnly(iso) {
4307
4381
  const d = new Date(iso);
4308
4382
  if (Number.isNaN(d.getTime())) return iso;
@@ -4313,9 +4387,9 @@ function Section4({
4313
4387
  desc,
4314
4388
  children
4315
4389
  }) {
4316
- return /* @__PURE__ */ (0, import_jsx_runtime121.jsxs)("section", { children: [
4317
- /* @__PURE__ */ (0, import_jsx_runtime121.jsxs)(import_themes7.Box, { mb: "3", children: [
4318
- /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(
4390
+ return /* @__PURE__ */ (0, import_jsx_runtime123.jsxs)("section", { children: [
4391
+ /* @__PURE__ */ (0, import_jsx_runtime123.jsxs)(import_themes7.Box, { mb: "3", children: [
4392
+ /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(
4319
4393
  Heading2,
4320
4394
  {
4321
4395
  size: { initial: "4", md: "5" },
@@ -4324,14 +4398,14 @@ function Section4({
4324
4398
  children: title
4325
4399
  }
4326
4400
  ),
4327
- desc ? /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(import_themes7.Box, { mt: "1", style: { maxWidth: "65ch" }, children: /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(Typo, { as: "p", color: "gray", variant: "body", children: desc }) }) : null
4401
+ desc ? /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(import_themes7.Box, { mt: "1", style: { maxWidth: "65ch" }, children: /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(Typo, { as: "p", color: "gray", variant: "body", children: desc }) }) : null
4328
4402
  ] }),
4329
4403
  children
4330
4404
  ] });
4331
4405
  }
4332
4406
  function AttemptCell({ row }) {
4333
4407
  const d = row.original;
4334
- return /* @__PURE__ */ (0, import_jsx_runtime121.jsxs)(
4408
+ return /* @__PURE__ */ (0, import_jsx_runtime123.jsxs)(
4335
4409
  Typo,
4336
4410
  {
4337
4411
  as: "span",
@@ -4347,11 +4421,11 @@ function AttemptCell({ row }) {
4347
4421
  );
4348
4422
  }
4349
4423
  function DateCell({ row }) {
4350
- return /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(Typo, { as: "span", mono: true, style: { color: "var(--gray-9)" }, variant: "body", children: formatDateOnly(row.original.createdAt) });
4424
+ return /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(Typo, { as: "span", mono: true, style: { color: "var(--gray-9)" }, variant: "body", children: formatDateOnly(row.original.createdAt) });
4351
4425
  }
4352
4426
  function ScoreCell({ row }) {
4353
4427
  var _a;
4354
- return /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(
4428
+ return /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(
4355
4429
  Typo,
4356
4430
  {
4357
4431
  as: "span",
@@ -4365,9 +4439,9 @@ function ScoreCell({ row }) {
4365
4439
  function DeltaCell({ row }) {
4366
4440
  const { delta } = row.original;
4367
4441
  if (delta === null) {
4368
- return /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(Typo, { as: "span", mono: true, style: { color: "var(--gray-9)" }, variant: "body", children: "\u2014" });
4442
+ return /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(Typo, { as: "span", mono: true, style: { color: "var(--gray-9)" }, variant: "body", children: "\u2014" });
4369
4443
  }
4370
- return /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(Typo, { as: "span", mono: true, style: { color: "var(--gray-9)" }, variant: "body", children: delta > 0 ? `+${delta}` : `${delta}` });
4444
+ return /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(Typo, { as: "span", mono: true, style: { color: "var(--gray-9)" }, variant: "body", children: delta > 0 ? `+${delta}` : `${delta}` });
4371
4445
  }
4372
4446
  function ScoreTrendSection({
4373
4447
  history
@@ -4477,13 +4551,13 @@ function ScoreTrendSection({
4477
4551
  })
4478
4552
  ];
4479
4553
  }, []);
4480
- return /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(
4554
+ return /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(
4481
4555
  Section4,
4482
4556
  {
4483
4557
  desc: `\uB3D9\uC77C \uB864\uD50C\uB808\uC789 \uCD5C\uADFC ${ordered.length}\uD68C\uCC28 \uCD1D\uC810 \uBCC0\uD654`,
4484
4558
  title: "\uCD1D\uC810 \uCD94\uC774",
4485
- children: /* @__PURE__ */ (0, import_jsx_runtime121.jsxs)(import_themes23.Flex, { direction: "column", gap: "4", children: [
4486
- /* @__PURE__ */ (0, import_jsx_runtime121.jsxs)(
4559
+ children: /* @__PURE__ */ (0, import_jsx_runtime123.jsxs)(import_themes23.Flex, { direction: "column", gap: "4", children: [
4560
+ /* @__PURE__ */ (0, import_jsx_runtime123.jsxs)(
4487
4561
  "div",
4488
4562
  {
4489
4563
  "aria-label": "\uCD1D\uC810 \uCD94\uC774 \uB77C\uC778 \uCC28\uD2B8",
@@ -4491,11 +4565,11 @@ function ScoreTrendSection({
4491
4565
  style: { position: "relative", width: "100%", height: 200 },
4492
4566
  children: [
4493
4567
  probe,
4494
- /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(Chart, { option })
4568
+ /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(Chart, { option })
4495
4569
  ]
4496
4570
  }
4497
4571
  ),
4498
- /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(import_themes7.Box, { className: "rp-expand-table", children: /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(
4572
+ /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(import_themes7.Box, { className: "rp-expand-table", children: /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(
4499
4573
  ExpandTable,
4500
4574
  {
4501
4575
  columns,
@@ -4513,33 +4587,33 @@ function ScoreTrendSection({
4513
4587
 
4514
4588
  // src/app/roleplay/parts/section-nav.tsx
4515
4589
  var import_react69 = require("react");
4516
- var import_jsx_runtime122 = require("react/jsx-runtime");
4590
+ var import_jsx_runtime124 = require("react/jsx-runtime");
4517
4591
  var NAV_ICONS = {
4518
- "score-summary": /* @__PURE__ */ (0, import_jsx_runtime122.jsxs)(import_jsx_runtime122.Fragment, { children: [
4519
- /* @__PURE__ */ (0, import_jsx_runtime122.jsx)("path", { d: "m12 14 4-4" }),
4520
- /* @__PURE__ */ (0, import_jsx_runtime122.jsx)("path", { d: "M3.34 19a10 10 0 1 1 17.32 0" })
4592
+ "score-summary": /* @__PURE__ */ (0, import_jsx_runtime124.jsxs)(import_jsx_runtime124.Fragment, { children: [
4593
+ /* @__PURE__ */ (0, import_jsx_runtime124.jsx)("path", { d: "m12 14 4-4" }),
4594
+ /* @__PURE__ */ (0, import_jsx_runtime124.jsx)("path", { d: "M3.34 19a10 10 0 1 1 17.32 0" })
4521
4595
  ] }),
4522
- strengths: /* @__PURE__ */ (0, import_jsx_runtime122.jsx)("polygon", { points: "12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2" }),
4523
- improvements: /* @__PURE__ */ (0, import_jsx_runtime122.jsxs)(import_jsx_runtime122.Fragment, { children: [
4524
- /* @__PURE__ */ (0, import_jsx_runtime122.jsx)("circle", { cx: "12", cy: "12", r: "9" }),
4525
- /* @__PURE__ */ (0, import_jsx_runtime122.jsx)("circle", { cx: "12", cy: "12", r: "5" }),
4526
- /* @__PURE__ */ (0, import_jsx_runtime122.jsx)("circle", { cx: "12", cy: "12", r: "1.5" })
4596
+ strengths: /* @__PURE__ */ (0, import_jsx_runtime124.jsx)("polygon", { points: "12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2" }),
4597
+ improvements: /* @__PURE__ */ (0, import_jsx_runtime124.jsxs)(import_jsx_runtime124.Fragment, { children: [
4598
+ /* @__PURE__ */ (0, import_jsx_runtime124.jsx)("circle", { cx: "12", cy: "12", r: "9" }),
4599
+ /* @__PURE__ */ (0, import_jsx_runtime124.jsx)("circle", { cx: "12", cy: "12", r: "5" }),
4600
+ /* @__PURE__ */ (0, import_jsx_runtime124.jsx)("circle", { cx: "12", cy: "12", r: "1.5" })
4527
4601
  ] }),
4528
- "score-trend": /* @__PURE__ */ (0, import_jsx_runtime122.jsxs)(import_jsx_runtime122.Fragment, { children: [
4529
- /* @__PURE__ */ (0, import_jsx_runtime122.jsx)("path", { d: "M3 3v18h18" }),
4530
- /* @__PURE__ */ (0, import_jsx_runtime122.jsx)("path", { d: "m19 8-5 5-4-4-4 4" })
4602
+ "score-trend": /* @__PURE__ */ (0, import_jsx_runtime124.jsxs)(import_jsx_runtime124.Fragment, { children: [
4603
+ /* @__PURE__ */ (0, import_jsx_runtime124.jsx)("path", { d: "M3 3v18h18" }),
4604
+ /* @__PURE__ */ (0, import_jsx_runtime124.jsx)("path", { d: "m19 8-5 5-4-4-4 4" })
4531
4605
  ] }),
4532
- "step-summary": /* @__PURE__ */ (0, import_jsx_runtime122.jsx)("path", { d: "M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z" }),
4533
- "step-detail": /* @__PURE__ */ (0, import_jsx_runtime122.jsxs)(import_jsx_runtime122.Fragment, { children: [
4534
- /* @__PURE__ */ (0, import_jsx_runtime122.jsx)("line", { x1: "8", x2: "21", y1: "6", y2: "6" }),
4535
- /* @__PURE__ */ (0, import_jsx_runtime122.jsx)("line", { x1: "8", x2: "21", y1: "12", y2: "12" }),
4536
- /* @__PURE__ */ (0, import_jsx_runtime122.jsx)("line", { x1: "8", x2: "21", y1: "18", y2: "18" }),
4537
- /* @__PURE__ */ (0, import_jsx_runtime122.jsx)("path", { d: "M3 6h.01M3 12h.01M3 18h.01" })
4606
+ "step-summary": /* @__PURE__ */ (0, import_jsx_runtime124.jsx)("path", { d: "M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z" }),
4607
+ "step-detail": /* @__PURE__ */ (0, import_jsx_runtime124.jsxs)(import_jsx_runtime124.Fragment, { children: [
4608
+ /* @__PURE__ */ (0, import_jsx_runtime124.jsx)("line", { x1: "8", x2: "21", y1: "6", y2: "6" }),
4609
+ /* @__PURE__ */ (0, import_jsx_runtime124.jsx)("line", { x1: "8", x2: "21", y1: "12", y2: "12" }),
4610
+ /* @__PURE__ */ (0, import_jsx_runtime124.jsx)("line", { x1: "8", x2: "21", y1: "18", y2: "18" }),
4611
+ /* @__PURE__ */ (0, import_jsx_runtime124.jsx)("path", { d: "M3 6h.01M3 12h.01M3 18h.01" })
4538
4612
  ] }),
4539
- coaching: /* @__PURE__ */ (0, import_jsx_runtime122.jsx)("polygon", { points: "13 2 3 14 12 14 11 22 21 10 12 10 13 2" })
4613
+ coaching: /* @__PURE__ */ (0, import_jsx_runtime124.jsx)("polygon", { points: "13 2 3 14 12 14 11 22 21 10 12 10 13 2" })
4540
4614
  };
4541
4615
  function NavIcon({ children }) {
4542
- return /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(
4616
+ return /* @__PURE__ */ (0, import_jsx_runtime124.jsx)(
4543
4617
  "svg",
4544
4618
  {
4545
4619
  "aria-hidden": "true",
@@ -4559,7 +4633,7 @@ function NavIcon({ children }) {
4559
4633
  function StepMetricBadge({ step }) {
4560
4634
  const scoreText = stepScoreText(step);
4561
4635
  if (scoreText !== null) {
4562
- return /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(
4636
+ return /* @__PURE__ */ (0, import_jsx_runtime124.jsx)(
4563
4637
  Typo,
4564
4638
  {
4565
4639
  as: "span",
@@ -4574,7 +4648,7 @@ function StepMetricBadge({ step }) {
4574
4648
  }
4575
4649
  const gradeLabel = stepGradeLabel(step);
4576
4650
  if (gradeLabel !== null) {
4577
- return /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(
4651
+ return /* @__PURE__ */ (0, import_jsx_runtime124.jsx)(
4578
4652
  Typo,
4579
4653
  {
4580
4654
  as: "span",
@@ -4617,8 +4691,8 @@ function scrollToId(id) {
4617
4691
  function SectionNav({ items, steps }) {
4618
4692
  const activeId = useScrollSpy(items.map((i) => i.id));
4619
4693
  const stepDetailActive = activeId === "step-summary" || activeId === "step-detail";
4620
- return /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(import_themes7.Box, { asChild: true, className: "rp-section-nav", children: /* @__PURE__ */ (0, import_jsx_runtime122.jsx)("aside", { children: /* @__PURE__ */ (0, import_jsx_runtime122.jsxs)(import_themes7.Box, { children: [
4621
- /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(
4694
+ return /* @__PURE__ */ (0, import_jsx_runtime124.jsx)(import_themes7.Box, { asChild: true, className: "rp-section-nav", children: /* @__PURE__ */ (0, import_jsx_runtime124.jsx)("aside", { children: /* @__PURE__ */ (0, import_jsx_runtime124.jsxs)(import_themes7.Box, { children: [
4695
+ /* @__PURE__ */ (0, import_jsx_runtime124.jsx)(
4622
4696
  Typo,
4623
4697
  {
4624
4698
  as: "p",
@@ -4632,9 +4706,9 @@ function SectionNav({ items, steps }) {
4632
4706
  children: "\uBAA9\uCC28"
4633
4707
  }
4634
4708
  ),
4635
- /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(import_themes7.Box, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime122.jsx)("ul", { style: { listStyle: "none", margin: 0, padding: 0 }, children: items.map((item) => {
4709
+ /* @__PURE__ */ (0, import_jsx_runtime124.jsx)(import_themes7.Box, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime124.jsx)("ul", { style: { listStyle: "none", margin: 0, padding: 0 }, children: items.map((item) => {
4636
4710
  const active = activeId === item.id;
4637
- return /* @__PURE__ */ (0, import_jsx_runtime122.jsx)("li", { children: /* @__PURE__ */ (0, import_jsx_runtime122.jsxs)(
4711
+ return /* @__PURE__ */ (0, import_jsx_runtime124.jsx)("li", { children: /* @__PURE__ */ (0, import_jsx_runtime124.jsxs)(
4638
4712
  "button",
4639
4713
  {
4640
4714
  "aria-current": active ? "true" : void 0,
@@ -4648,9 +4722,9 @@ function SectionNav({ items, steps }) {
4648
4722
  } : void 0,
4649
4723
  type: "button",
4650
4724
  children: [
4651
- /* @__PURE__ */ (0, import_jsx_runtime122.jsxs)(import_themes23.Flex, { align: "center", gap: "2", style: { minWidth: 0 }, children: [
4652
- NAV_ICONS[item.id] ? /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(NavIcon, { children: NAV_ICONS[item.id] }) : null,
4653
- /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(
4725
+ /* @__PURE__ */ (0, import_jsx_runtime124.jsxs)(import_themes23.Flex, { align: "center", gap: "2", style: { minWidth: 0 }, children: [
4726
+ NAV_ICONS[item.id] ? /* @__PURE__ */ (0, import_jsx_runtime124.jsx)(NavIcon, { children: NAV_ICONS[item.id] }) : null,
4727
+ /* @__PURE__ */ (0, import_jsx_runtime124.jsx)(
4654
4728
  Typo,
4655
4729
  {
4656
4730
  as: "span",
@@ -4661,8 +4735,8 @@ function SectionNav({ items, steps }) {
4661
4735
  }
4662
4736
  )
4663
4737
  ] }),
4664
- typeof item.score === "number" ? /* @__PURE__ */ (0, import_jsx_runtime122.jsxs)(Typo, { as: "span", mono: true, style: { flexShrink: 0 }, variant: "body", children: [
4665
- /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(
4738
+ typeof item.score === "number" ? /* @__PURE__ */ (0, import_jsx_runtime124.jsxs)(Typo, { as: "span", mono: true, style: { flexShrink: 0 }, variant: "body", children: [
4739
+ /* @__PURE__ */ (0, import_jsx_runtime124.jsx)(
4666
4740
  Typo,
4667
4741
  {
4668
4742
  as: "span",
@@ -4674,7 +4748,7 @@ function SectionNav({ items, steps }) {
4674
4748
  children: item.score
4675
4749
  }
4676
4750
  ),
4677
- /* @__PURE__ */ (0, import_jsx_runtime122.jsxs)(Typo, { as: "span", style: { color: "var(--gray-9)" }, variant: "body", children: [
4751
+ /* @__PURE__ */ (0, import_jsx_runtime124.jsxs)(Typo, { as: "span", style: { color: "var(--gray-9)" }, variant: "body", children: [
4678
4752
  "/",
4679
4753
  item.max
4680
4754
  ] })
@@ -4683,8 +4757,8 @@ function SectionNav({ items, steps }) {
4683
4757
  }
4684
4758
  ) }, item.id);
4685
4759
  }) }) }),
4686
- steps.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime122.jsxs)(import_themes7.Box, { mt: "3", pt: "3", style: { borderTop: "1px solid var(--gray-4)" }, children: [
4687
- /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(import_themes7.Box, { pb: "1", px: "3", children: /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(
4760
+ steps.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime124.jsxs)(import_themes7.Box, { mt: "3", pt: "3", style: { borderTop: "1px solid var(--gray-4)" }, children: [
4761
+ /* @__PURE__ */ (0, import_jsx_runtime124.jsx)(import_themes7.Box, { pb: "1", px: "3", children: /* @__PURE__ */ (0, import_jsx_runtime124.jsx)(
4688
4762
  Typo,
4689
4763
  {
4690
4764
  as: "span",
@@ -4696,9 +4770,9 @@ function SectionNav({ items, steps }) {
4696
4770
  children: "\uB2E8\uACC4\uBCC4 \uC810\uC218"
4697
4771
  }
4698
4772
  ) }),
4699
- /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(import_themes7.Box, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime122.jsx)("ul", { style: { listStyle: "none", margin: 0, padding: 0 }, children: steps.map((step) => {
4773
+ /* @__PURE__ */ (0, import_jsx_runtime124.jsx)(import_themes7.Box, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime124.jsx)("ul", { style: { listStyle: "none", margin: 0, padding: 0 }, children: steps.map((step) => {
4700
4774
  const ratio = stepRatio(step);
4701
- return /* @__PURE__ */ (0, import_jsx_runtime122.jsx)("li", { children: /* @__PURE__ */ (0, import_jsx_runtime122.jsxs)(
4775
+ return /* @__PURE__ */ (0, import_jsx_runtime124.jsx)("li", { children: /* @__PURE__ */ (0, import_jsx_runtime124.jsxs)(
4702
4776
  "button",
4703
4777
  {
4704
4778
  className: "rp-jump-btn",
@@ -4707,8 +4781,8 @@ function SectionNav({ items, steps }) {
4707
4781
  },
4708
4782
  type: "button",
4709
4783
  children: [
4710
- /* @__PURE__ */ (0, import_jsx_runtime122.jsxs)(import_themes23.Flex, { align: "center", gap: "2", justify: "between", children: [
4711
- /* @__PURE__ */ (0, import_jsx_runtime122.jsxs)(
4784
+ /* @__PURE__ */ (0, import_jsx_runtime124.jsxs)(import_themes23.Flex, { align: "center", gap: "2", justify: "between", children: [
4785
+ /* @__PURE__ */ (0, import_jsx_runtime124.jsxs)(
4712
4786
  Typo,
4713
4787
  {
4714
4788
  as: "span",
@@ -4716,7 +4790,7 @@ function SectionNav({ items, steps }) {
4716
4790
  truncate: true,
4717
4791
  variant: "body",
4718
4792
  children: [
4719
- /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(
4793
+ /* @__PURE__ */ (0, import_jsx_runtime124.jsx)(
4720
4794
  Typo,
4721
4795
  {
4722
4796
  as: "span",
@@ -4728,7 +4802,7 @@ function SectionNav({ items, steps }) {
4728
4802
  }
4729
4803
  ),
4730
4804
  " ",
4731
- /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(
4805
+ /* @__PURE__ */ (0, import_jsx_runtime124.jsx)(
4732
4806
  Typo,
4733
4807
  {
4734
4808
  as: "span",
@@ -4740,9 +4814,9 @@ function SectionNav({ items, steps }) {
4740
4814
  ]
4741
4815
  }
4742
4816
  ),
4743
- /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(StepMetricBadge, { step })
4817
+ /* @__PURE__ */ (0, import_jsx_runtime124.jsx)(StepMetricBadge, { step })
4744
4818
  ] }),
4745
- ratio !== null ? /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(import_themes7.Box, { mt: "1", children: /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(Progress, { color: stepColor(step), size: "1", value: ratio * 100 }) }) : null
4819
+ ratio !== null ? /* @__PURE__ */ (0, import_jsx_runtime124.jsx)(import_themes7.Box, { mt: "1", children: /* @__PURE__ */ (0, import_jsx_runtime124.jsx)(Progress, { color: stepColor(step), size: "1", value: ratio * 100 }) }) : null
4746
4820
  ]
4747
4821
  }
4748
4822
  ) }, step.key);
@@ -4752,14 +4826,14 @@ function SectionNav({ items, steps }) {
4752
4826
  }
4753
4827
 
4754
4828
  // src/app/roleplay/parts/step-detail.tsx
4755
- var import_jsx_runtime123 = require("react/jsx-runtime");
4829
+ var import_jsx_runtime125 = require("react/jsx-runtime");
4756
4830
  function RubricField({
4757
4831
  label,
4758
4832
  value
4759
4833
  }) {
4760
- return /* @__PURE__ */ (0, import_jsx_runtime123.jsxs)(import_themes7.Box, { children: [
4761
- /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(Typo, { as: "p", variant: "body", weight: "medium", children: label }),
4762
- /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(import_themes7.Box, { mt: "1", style: { maxWidth: "65ch" }, children: /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(Typo, { as: "p", variant: "body", children: value }) })
4834
+ return /* @__PURE__ */ (0, import_jsx_runtime125.jsxs)(import_themes7.Box, { children: [
4835
+ /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(Typo, { as: "p", variant: "body", weight: "medium", children: label }),
4836
+ /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(import_themes7.Box, { mt: "1", style: { maxWidth: "65ch" }, children: /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(Typo, { as: "p", variant: "body", children: value }) })
4763
4837
  ] });
4764
4838
  }
4765
4839
  function StepDetail({
@@ -4770,14 +4844,14 @@ function StepDetail({
4770
4844
  const ratio = stepRatio(step);
4771
4845
  const scoreText = stepScoreText(step);
4772
4846
  const gradeLabel = stepGradeLabel(step);
4773
- return /* @__PURE__ */ (0, import_jsx_runtime123.jsxs)(import_themes7.Box, { id: `step-${step.key}`, style: { scrollMarginTop }, children: [
4774
- /* @__PURE__ */ (0, import_jsx_runtime123.jsxs)(import_themes23.Flex, { align: "center", gap: "2", justify: "between", mb: "1", children: [
4775
- /* @__PURE__ */ (0, import_jsx_runtime123.jsxs)(import_themes7.Box, { style: { minWidth: 0 }, children: [
4776
- /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(Typo, { as: "span", color: "gray", mono: true, variant: "body", children: stepCode(step) }),
4777
- /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(Typo, { as: "p", variant: "subtitle", weight: "bold", children: step.label })
4847
+ return /* @__PURE__ */ (0, import_jsx_runtime125.jsxs)(import_themes7.Box, { id: `step-${step.key}`, style: { scrollMarginTop }, children: [
4848
+ /* @__PURE__ */ (0, import_jsx_runtime125.jsxs)(import_themes23.Flex, { align: "center", gap: "2", justify: "between", mb: "1", children: [
4849
+ /* @__PURE__ */ (0, import_jsx_runtime125.jsxs)(import_themes7.Box, { style: { minWidth: 0 }, children: [
4850
+ /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(Typo, { as: "span", color: "gray", mono: true, variant: "body", children: stepCode(step) }),
4851
+ /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(Typo, { as: "p", variant: "subtitle", weight: "bold", children: step.label })
4778
4852
  ] }),
4779
- /* @__PURE__ */ (0, import_jsx_runtime123.jsxs)(import_themes23.Flex, { align: "end", direction: "column", gap: "1", style: { flexShrink: 0 }, children: [
4780
- scoreText !== null ? /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(
4853
+ /* @__PURE__ */ (0, import_jsx_runtime125.jsxs)(import_themes23.Flex, { align: "end", direction: "column", gap: "1", style: { flexShrink: 0 }, children: [
4854
+ scoreText !== null ? /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(
4781
4855
  Typo,
4782
4856
  {
4783
4857
  as: "span",
@@ -4788,7 +4862,7 @@ function StepDetail({
4788
4862
  children: scoreText
4789
4863
  }
4790
4864
  ) : null,
4791
- gradeLabel !== null ? /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(
4865
+ gradeLabel !== null ? /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(
4792
4866
  Typo,
4793
4867
  {
4794
4868
  as: "span",
@@ -4808,16 +4882,16 @@ function StepDetail({
4808
4882
  ) : null
4809
4883
  ] })
4810
4884
  ] }),
4811
- ratio !== null ? /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(import_themes7.Box, { mb: "3", mt: "2", children: /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(Progress, { color: stepColor(step), size: "2", value: ratio * 100 }) }) : null,
4812
- step.description ? /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(import_themes7.Box, { mb: "3", mt: ratio !== null ? "0" : "2", style: { maxWidth: "65ch" }, children: /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(Typo, { as: "p", color: "gray", variant: "body", children: step.description }) }) : null,
4813
- /* @__PURE__ */ (0, import_jsx_runtime123.jsxs)(import_themes23.Flex, { direction: "column", gap: "0", children: [
4814
- step.basis || step.issue ? /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(import_themes7.Box, { pb: "3", style: { borderBottom: "1px solid var(--gray-a4)" }, children: /* @__PURE__ */ (0, import_jsx_runtime123.jsxs)(import_themes23.Flex, { direction: "column", gap: "3", children: [
4815
- step.basis ? /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(RubricField, { label: "\uADFC\uAC70", value: step.basis }) : null,
4816
- step.issue ? /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(RubricField, { label: "\uC544\uC26C\uC6B4 \uC810", value: step.issue }) : null
4885
+ ratio !== null ? /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(import_themes7.Box, { mb: "3", mt: "2", children: /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(Progress, { color: stepColor(step), size: "2", value: ratio * 100 }) }) : null,
4886
+ step.description ? /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(import_themes7.Box, { mb: "3", mt: ratio !== null ? "0" : "2", style: { maxWidth: "65ch" }, children: /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(Typo, { as: "p", color: "gray", variant: "body", children: step.description }) }) : null,
4887
+ /* @__PURE__ */ (0, import_jsx_runtime125.jsxs)(import_themes23.Flex, { direction: "column", gap: "0", children: [
4888
+ step.basis || step.issue ? /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(import_themes7.Box, { pb: "3", style: { borderBottom: "1px solid var(--gray-a4)" }, children: /* @__PURE__ */ (0, import_jsx_runtime125.jsxs)(import_themes23.Flex, { direction: "column", gap: "3", children: [
4889
+ step.basis ? /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(RubricField, { label: "\uADFC\uAC70", value: step.basis }) : null,
4890
+ step.issue ? /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(RubricField, { label: "\uC544\uC26C\uC6B4 \uC810", value: step.issue }) : null
4817
4891
  ] }) }) : null,
4818
- step.improve || step.example || step.idealExample ? /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(import_themes7.Box, { pt: "3", children: /* @__PURE__ */ (0, import_jsx_runtime123.jsxs)(import_themes23.Flex, { direction: "column", gap: "3", children: [
4819
- step.improve ? /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(RubricField, { label: "\uAC1C\uC120\uC810", value: step.improve }) : null,
4820
- step.example ? /* @__PURE__ */ (0, import_jsx_runtime123.jsxs)(
4892
+ step.improve || step.example || step.idealExample ? /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(import_themes7.Box, { pt: "3", children: /* @__PURE__ */ (0, import_jsx_runtime125.jsxs)(import_themes23.Flex, { direction: "column", gap: "3", children: [
4893
+ step.improve ? /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(RubricField, { label: "\uAC1C\uC120\uC810", value: step.improve }) : null,
4894
+ step.example ? /* @__PURE__ */ (0, import_jsx_runtime125.jsxs)(
4821
4895
  import_themes7.Box,
4822
4896
  {
4823
4897
  p: "2",
@@ -4826,7 +4900,7 @@ function StepDetail({
4826
4900
  background: "var(--accent-a2)"
4827
4901
  },
4828
4902
  children: [
4829
- /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(
4903
+ /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(
4830
4904
  Typo,
4831
4905
  {
4832
4906
  as: "p",
@@ -4836,11 +4910,11 @@ function StepDetail({
4836
4910
  children: "\uC608\uC2DC \uC2A4\uD06C\uB9BD\uD2B8"
4837
4911
  }
4838
4912
  ),
4839
- /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(import_themes7.Box, { mt: "1", style: { maxWidth: "65ch" }, children: /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(Typo, { as: "p", style: { color: "var(--accent-11)" }, variant: "body", children: step.example }) })
4913
+ /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(import_themes7.Box, { mt: "1", style: { maxWidth: "65ch" }, children: /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(Typo, { as: "p", style: { color: "var(--accent-11)" }, variant: "body", children: step.example }) })
4840
4914
  ]
4841
4915
  }
4842
4916
  ) : null,
4843
- step.idealExample ? /* @__PURE__ */ (0, import_jsx_runtime123.jsxs)(
4917
+ step.idealExample ? /* @__PURE__ */ (0, import_jsx_runtime125.jsxs)(
4844
4918
  import_themes7.Box,
4845
4919
  {
4846
4920
  p: "2",
@@ -4849,8 +4923,8 @@ function StepDetail({
4849
4923
  background: "var(--gray-a2)"
4850
4924
  },
4851
4925
  children: [
4852
- /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(Typo, { as: "p", color: "gray", variant: "body", weight: "medium", children: "\uBAA8\uBC94 \uC608\uC2DC" }),
4853
- /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(import_themes7.Box, { mt: "1", style: { maxWidth: "65ch" }, children: /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(
4926
+ /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(Typo, { as: "p", color: "gray", variant: "body", weight: "medium", children: "\uBAA8\uBC94 \uC608\uC2DC" }),
4927
+ /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(import_themes7.Box, { mt: "1", style: { maxWidth: "65ch" }, children: /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(
4854
4928
  Typo,
4855
4929
  {
4856
4930
  as: "p",
@@ -4869,7 +4943,7 @@ function StepDetail({
4869
4943
  }
4870
4944
 
4871
4945
  // src/app/roleplay/parts/step-radar.tsx
4872
- var import_jsx_runtime124 = require("react/jsx-runtime");
4946
+ var import_jsx_runtime126 = require("react/jsx-runtime");
4873
4947
  function StepRadar({ steps }) {
4874
4948
  const { colors, probe } = useTokenColors({
4875
4949
  accent: ["--accent-9", "#5b5bd6"],
@@ -4918,7 +4992,7 @@ function StepRadar({ steps }) {
4918
4992
  }
4919
4993
  ]
4920
4994
  };
4921
- return /* @__PURE__ */ (0, import_jsx_runtime124.jsxs)(
4995
+ return /* @__PURE__ */ (0, import_jsx_runtime126.jsxs)(
4922
4996
  "div",
4923
4997
  {
4924
4998
  "aria-label": "\uD3C9\uAC00 \uB2E8\uACC4 \uB808\uC774\uB354 \uCC28\uD2B8",
@@ -4934,23 +5008,23 @@ function StepRadar({ steps }) {
4934
5008
  },
4935
5009
  children: [
4936
5010
  probe,
4937
- /* @__PURE__ */ (0, import_jsx_runtime124.jsx)("div", { style: { width: "100%", maxWidth: 300, height: 280 }, children: /* @__PURE__ */ (0, import_jsx_runtime124.jsx)(Chart, { option }) })
5011
+ /* @__PURE__ */ (0, import_jsx_runtime126.jsx)("div", { style: { width: "100%", maxWidth: 300, height: 280 }, children: /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(Chart, { option }) })
4938
5012
  ]
4939
5013
  }
4940
5014
  );
4941
5015
  }
4942
5016
 
4943
5017
  // src/app/roleplay/parts/step-summary.tsx
4944
- var import_jsx_runtime125 = require("react/jsx-runtime");
5018
+ var import_jsx_runtime127 = require("react/jsx-runtime");
4945
5019
  function Section5({
4946
5020
  title,
4947
5021
  desc,
4948
5022
  children
4949
5023
  }) {
4950
- return /* @__PURE__ */ (0, import_jsx_runtime125.jsxs)("section", { children: [
4951
- /* @__PURE__ */ (0, import_jsx_runtime125.jsxs)(import_themes7.Box, { mb: "3", children: [
4952
- /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(Typo, { as: "p", variant: "subtitle", weight: "bold", children: title }),
4953
- desc ? /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(import_themes7.Box, { mt: "1", style: { maxWidth: "65ch" }, children: /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(Typo, { as: "p", color: "gray", variant: "body", children: desc }) }) : null
5024
+ return /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)("section", { children: [
5025
+ /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(import_themes7.Box, { mb: "3", children: [
5026
+ /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(Typo, { as: "p", variant: "subtitle", weight: "bold", children: title }),
5027
+ desc ? /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_themes7.Box, { mt: "1", style: { maxWidth: "65ch" }, children: /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(Typo, { as: "p", color: "gray", variant: "body", children: desc }) }) : null
4954
5028
  ] }),
4955
5029
  children
4956
5030
  ] });
@@ -4959,13 +5033,13 @@ function StepSummary({ steps }) {
4959
5033
  if (steps.length === 0) return null;
4960
5034
  const radarReady = steps.every((s) => stepRatio(s) !== null);
4961
5035
  const desc = "\uB300\uD654 \uB2E8\uACC4 \uBCC4\uB85C \uB098\uC758 \uAC15\uC57D\uC810\uC744 \uD655\uC778\uD560 \uC218 \uC788\uC5B4\uC694.";
4962
- const list = /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(import_themes23.Flex, { direction: "column", children: steps.map((step, i) => {
5036
+ const list = /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_themes23.Flex, { direction: "column", children: steps.map((step, i) => {
4963
5037
  const ratio = stepRatio(step);
4964
5038
  const scoreText = stepScoreText(step);
4965
5039
  const gradeLabel = stepGradeLabel(step);
4966
- return /* @__PURE__ */ (0, import_jsx_runtime125.jsxs)(import_themes7.Box, { children: [
4967
- i > 0 && /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(import_themes40.Separator, { size: "4" }),
4968
- /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(
5040
+ return /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(import_themes7.Box, { children: [
5041
+ i > 0 && /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_themes40.Separator, { size: "4" }),
5042
+ /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(
4969
5043
  "button",
4970
5044
  {
4971
5045
  className: "rp-rubric-scroll-btn",
@@ -4982,9 +5056,9 @@ function StepSummary({ steps }) {
4982
5056
  textAlign: "left"
4983
5057
  },
4984
5058
  type: "button",
4985
- children: /* @__PURE__ */ (0, import_jsx_runtime125.jsxs)(import_themes23.Flex, { direction: "column", gap: "1", children: [
4986
- /* @__PURE__ */ (0, import_jsx_runtime125.jsxs)(import_themes23.Flex, { align: "center", gap: "2", justify: "between", children: [
4987
- /* @__PURE__ */ (0, import_jsx_runtime125.jsxs)(
5059
+ children: /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(import_themes23.Flex, { direction: "column", gap: "1", children: [
5060
+ /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(import_themes23.Flex, { align: "center", gap: "2", justify: "between", children: [
5061
+ /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(
4988
5062
  Typo,
4989
5063
  {
4990
5064
  as: "span",
@@ -4993,7 +5067,7 @@ function StepSummary({ steps }) {
4993
5067
  variant: "body",
4994
5068
  weight: "medium",
4995
5069
  children: [
4996
- /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(
5070
+ /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(
4997
5071
  Typo,
4998
5072
  {
4999
5073
  as: "span",
@@ -5009,9 +5083,9 @@ function StepSummary({ steps }) {
5009
5083
  ]
5010
5084
  }
5011
5085
  ),
5012
- /* @__PURE__ */ (0, import_jsx_runtime125.jsxs)(import_themes23.Flex, { align: "center", gap: "2", style: { flexShrink: 0 }, children: [
5013
- scoreText !== null ? /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(Typo, { as: "span", mono: true, variant: "body", weight: "bold", children: scoreText }) : null,
5014
- gradeLabel !== null ? /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(
5086
+ /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(import_themes23.Flex, { align: "center", gap: "2", style: { flexShrink: 0 }, children: [
5087
+ scoreText !== null ? /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(Typo, { as: "span", mono: true, variant: "body", weight: "bold", children: scoreText }) : null,
5088
+ gradeLabel !== null ? /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(
5015
5089
  Typo,
5016
5090
  {
5017
5091
  as: "span",
@@ -5024,13 +5098,13 @@ function StepSummary({ steps }) {
5024
5098
  ) : null
5025
5099
  ] })
5026
5100
  ] }),
5027
- ratio !== null ? /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(import_themes7.Box, { style: { flex: 1 }, children: /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(Progress, { color: stepColor(step), size: "1", value: ratio * 100 }) }) : null
5101
+ ratio !== null ? /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_themes7.Box, { style: { flex: 1 }, children: /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(Progress, { color: stepColor(step), size: "1", value: ratio * 100 }) }) : null
5028
5102
  ] })
5029
5103
  }
5030
5104
  )
5031
5105
  ] }, step.key);
5032
5106
  }) });
5033
- return /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(Section5, { desc, title: "\uD3C9\uAC00 \uB2E8\uACC4 \uC694\uC57D", children: radarReady ? /* @__PURE__ */ (0, import_jsx_runtime125.jsxs)(
5107
+ return /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(Section5, { desc, title: "\uD3C9\uAC00 \uB2E8\uACC4 \uC694\uC57D", children: radarReady ? /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(
5034
5108
  import_themes24.Grid,
5035
5109
  {
5036
5110
  align: "center",
@@ -5038,14 +5112,14 @@ function StepSummary({ steps }) {
5038
5112
  gap: "6",
5039
5113
  children: [
5040
5114
  list,
5041
- /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(StepRadar, { steps })
5115
+ /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(StepRadar, { steps })
5042
5116
  ]
5043
5117
  }
5044
5118
  ) : list });
5045
5119
  }
5046
5120
 
5047
5121
  // src/app/roleplay/parts/content.tsx
5048
- var import_jsx_runtime126 = require("react/jsx-runtime");
5122
+ var import_jsx_runtime128 = require("react/jsx-runtime");
5049
5123
  function Content9({
5050
5124
  detail,
5051
5125
  report,
@@ -5068,20 +5142,20 @@ function Content9({
5068
5142
  ...showStepDetail ? [{ id: "step-detail", label: "\uB2E8\uACC4\uBCC4 \uC0C1\uC138 \uBD84\uC11D" }] : [],
5069
5143
  ...skills.length > 0 ? [{ id: "coaching", label: "\uC989\uC2DC \uC801\uC6A9 \uC2A4\uD0AC" }] : []
5070
5144
  ];
5071
- return /* @__PURE__ */ (0, import_jsx_runtime126.jsxs)(
5145
+ return /* @__PURE__ */ (0, import_jsx_runtime128.jsxs)(
5072
5146
  import_themes24.Grid,
5073
5147
  {
5074
5148
  align: "start",
5075
5149
  columns: { initial: "1", md: "minmax(0, 1fr) 224px" },
5076
5150
  gap: "7",
5077
5151
  children: [
5078
- /* @__PURE__ */ (0, import_jsx_runtime126.jsxs)(import_themes23.Flex, { direction: "column", gap: "7", children: [
5079
- report.frameworkTitle !== null || report.frameworkDescription !== null ? /* @__PURE__ */ (0, import_jsx_runtime126.jsxs)(import_themes7.Box, { children: [
5080
- report.frameworkTitle !== null ? /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(Heading2, { size: "5", weight: "bold", children: report.frameworkTitle }) : null,
5081
- report.frameworkDescription !== null ? /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_themes7.Box, { mt: report.frameworkTitle !== null ? "2" : "0", children: /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(Typo, { as: "p", variant: "body", children: report.frameworkDescription }) }) : null
5152
+ /* @__PURE__ */ (0, import_jsx_runtime128.jsxs)(import_themes23.Flex, { direction: "column", gap: "7", children: [
5153
+ report.frameworkTitle !== null || report.frameworkDescription !== null ? /* @__PURE__ */ (0, import_jsx_runtime128.jsxs)(import_themes7.Box, { children: [
5154
+ report.frameworkTitle !== null ? /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(Heading2, { size: "5", weight: "bold", children: report.frameworkTitle }) : null,
5155
+ report.frameworkDescription !== null ? /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(import_themes7.Box, { mt: report.frameworkTitle !== null ? "2" : "0", children: /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(Typo, { as: "p", variant: "body", children: report.frameworkDescription }) }) : null
5082
5156
  ] }) : null,
5083
- /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_themes7.Box, { id: "score-summary", style: { scrollMarginTop }, children: /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(ScoreSummary, { detail, report, speechShare }) }),
5084
- strengths.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_themes7.Box, { id: "strengths", style: { scrollMarginTop }, children: /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(
5157
+ /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(import_themes7.Box, { id: "score-summary", style: { scrollMarginTop }, children: /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(ScoreSummary, { detail, report, speechShare }) }),
5158
+ strengths.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(import_themes7.Box, { id: "strengths", style: { scrollMarginTop }, children: /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(
5085
5159
  AnalysisSection,
5086
5160
  {
5087
5161
  desc: "\uC774\uBC88 \uC138\uC158\uC5D0\uC11C \uAC00\uC7A5 \uB3CB\uBCF4\uC778 \uAC15\uC810\uB4E4\uC774\uC5D0\uC694.",
@@ -5090,7 +5164,7 @@ function Content9({
5090
5164
  tone: "good"
5091
5165
  }
5092
5166
  ) }) : null,
5093
- improvements.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_themes7.Box, { id: "improvements", style: { scrollMarginTop }, children: /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(
5167
+ improvements.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(import_themes7.Box, { id: "improvements", style: { scrollMarginTop }, children: /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(
5094
5168
  AnalysisSection,
5095
5169
  {
5096
5170
  desc: "\uB2E4\uC74C\uC5D0 \uBCF4\uC644\uD55C\uB2E4\uBA74 \uB354 \uB098\uC740 \uACB0\uACFC\uB97C \uC5BB\uC744 \uC218 \uC788\uC744 \uAC70\uC5D0\uC694.",
@@ -5099,15 +5173,15 @@ function Content9({
5099
5173
  tone: "bad"
5100
5174
  }
5101
5175
  ) }) : null,
5102
- showTrend ? /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_themes7.Box, { id: "score-trend", style: { scrollMarginTop }, children: /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(ScoreTrendSection, { history }) }) : null,
5103
- showStepSummary ? /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_themes7.Box, { id: "step-summary", style: { scrollMarginTop }, children: /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(StepSummary, { steps }) }) : null,
5104
- showStepDetail ? /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_themes7.Box, { id: "step-detail", style: { scrollMarginTop }, children: /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(
5176
+ showTrend ? /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(import_themes7.Box, { id: "score-trend", style: { scrollMarginTop }, children: /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(ScoreTrendSection, { history }) }) : null,
5177
+ showStepSummary ? /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(import_themes7.Box, { id: "step-summary", style: { scrollMarginTop }, children: /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(StepSummary, { steps }) }) : null,
5178
+ showStepDetail ? /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(import_themes7.Box, { id: "step-detail", style: { scrollMarginTop }, children: /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(
5105
5179
  Section2,
5106
5180
  {
5107
5181
  desc: "\uC774\uBC88 \uB300\uD654\uC758 \uB354 \uB098\uC544\uC9C8 \uC218 \uC788\uB294 \uBC29\uD5A5\uC744 \uC54C\uB824\uB4DC\uB9B4\uAC8C\uC694.",
5108
5182
  title: "\uB2E8\uACC4\uBCC4 \uC0C1\uC138 \uBD84\uC11D",
5109
- children: /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_themes23.Flex, { direction: "column", children: steps.map((step, i) => /* @__PURE__ */ (0, import_jsx_runtime126.jsxs)(import_themes7.Box, { children: [
5110
- i > 0 ? /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(
5183
+ children: /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(import_themes23.Flex, { direction: "column", children: steps.map((step, i) => /* @__PURE__ */ (0, import_jsx_runtime128.jsxs)(import_themes7.Box, { children: [
5184
+ i > 0 ? /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(
5111
5185
  import_themes40.Separator,
5112
5186
  {
5113
5187
  mb: "6",
@@ -5115,22 +5189,22 @@ function Content9({
5115
5189
  style: { marginTop: "calc(var(--space-9) * 1.6)" }
5116
5190
  }
5117
5191
  ) : null,
5118
- /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(StepDetail, { scrollMarginTop, step })
5192
+ /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(StepDetail, { scrollMarginTop, step })
5119
5193
  ] }, step.key)) })
5120
5194
  }
5121
5195
  ) }) : null,
5122
- skills.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_themes7.Box, { id: "coaching", style: { scrollMarginTop }, children: /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(CoachingPanel, { skills }) }) : null
5196
+ skills.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(import_themes7.Box, { id: "coaching", style: { scrollMarginTop }, children: /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(CoachingPanel, { skills }) }) : null
5123
5197
  ] }),
5124
- /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(SectionNav, { items: navItems, steps: showStepDetail ? steps : [] })
5198
+ /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(SectionNav, { items: navItems, steps: showStepDetail ? steps : [] })
5125
5199
  ]
5126
5200
  }
5127
5201
  );
5128
5202
  }
5129
5203
 
5130
5204
  // src/app/roleplay/parts/header.tsx
5131
- var import_jsx_runtime127 = require("react/jsx-runtime");
5205
+ var import_jsx_runtime129 = require("react/jsx-runtime");
5132
5206
  function PdfIcon() {
5133
- return /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(
5207
+ return /* @__PURE__ */ (0, import_jsx_runtime129.jsxs)(
5134
5208
  "svg",
5135
5209
  {
5136
5210
  "aria-hidden": "true",
@@ -5143,16 +5217,16 @@ function PdfIcon() {
5143
5217
  viewBox: "0 0 24 24",
5144
5218
  width: "13",
5145
5219
  children: [
5146
- /* @__PURE__ */ (0, import_jsx_runtime127.jsx)("path", { d: "M14 3H7a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V8z" }),
5147
- /* @__PURE__ */ (0, import_jsx_runtime127.jsx)("path", { d: "M14 3v5h5" }),
5148
- /* @__PURE__ */ (0, import_jsx_runtime127.jsx)("path", { d: "M12 12v5" }),
5149
- /* @__PURE__ */ (0, import_jsx_runtime127.jsx)("path", { d: "M9.5 14.5 12 17l2.5-2.5" })
5220
+ /* @__PURE__ */ (0, import_jsx_runtime129.jsx)("path", { d: "M14 3H7a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V8z" }),
5221
+ /* @__PURE__ */ (0, import_jsx_runtime129.jsx)("path", { d: "M14 3v5h5" }),
5222
+ /* @__PURE__ */ (0, import_jsx_runtime129.jsx)("path", { d: "M12 12v5" }),
5223
+ /* @__PURE__ */ (0, import_jsx_runtime129.jsx)("path", { d: "M9.5 14.5 12 17l2.5-2.5" })
5150
5224
  ]
5151
5225
  }
5152
5226
  );
5153
5227
  }
5154
5228
  function VideoIcon3() {
5155
- return /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(
5229
+ return /* @__PURE__ */ (0, import_jsx_runtime129.jsxs)(
5156
5230
  "svg",
5157
5231
  {
5158
5232
  "aria-hidden": "true",
@@ -5165,8 +5239,8 @@ function VideoIcon3() {
5165
5239
  viewBox: "0 0 24 24",
5166
5240
  width: "13",
5167
5241
  children: [
5168
- /* @__PURE__ */ (0, import_jsx_runtime127.jsx)("rect", { height: "12", rx: "2", width: "13", x: "2", y: "6" }),
5169
- /* @__PURE__ */ (0, import_jsx_runtime127.jsx)("path", { d: "m15 10 6-3v10l-6-3z" })
5242
+ /* @__PURE__ */ (0, import_jsx_runtime129.jsx)("rect", { height: "12", rx: "2", width: "13", x: "2", y: "6" }),
5243
+ /* @__PURE__ */ (0, import_jsx_runtime129.jsx)("path", { d: "m15 10 6-3v10l-6-3z" })
5170
5244
  ]
5171
5245
  }
5172
5246
  );
@@ -5191,7 +5265,7 @@ function Header({
5191
5265
  });
5192
5266
  };
5193
5267
  const replayActive = hasScript && hasReplayMedia;
5194
- return /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_themes7.Box, { children: /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(
5268
+ return /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(import_themes7.Box, { children: /* @__PURE__ */ (0, import_jsx_runtime129.jsxs)(
5195
5269
  import_themes23.Flex,
5196
5270
  {
5197
5271
  align: { md: "start" },
@@ -5199,16 +5273,16 @@ function Header({
5199
5273
  gap: "4",
5200
5274
  justify: "between",
5201
5275
  children: [
5202
- /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(import_themes7.Box, { style: { minWidth: 0 }, children: [
5203
- /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(import_themes23.Flex, { align: "center", gap: "2", mb: "2", wrap: "wrap", children: [
5204
- /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(Badge, { color: "neutral", size: "small", variant: "soft", children: statusLabelOf(detail.status) }),
5205
- /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(Typo, { as: "span", color: "gray", variant: "body", children: [
5276
+ /* @__PURE__ */ (0, import_jsx_runtime129.jsxs)(import_themes7.Box, { style: { minWidth: 0 }, children: [
5277
+ /* @__PURE__ */ (0, import_jsx_runtime129.jsxs)(import_themes23.Flex, { align: "center", gap: "2", mb: "2", wrap: "wrap", children: [
5278
+ /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(Badge, { color: "neutral", size: "small", variant: "soft", children: statusLabelOf(detail.status) }),
5279
+ /* @__PURE__ */ (0, import_jsx_runtime129.jsxs)(Typo, { as: "span", color: "gray", variant: "body", children: [
5206
5280
  detail.trainingSessionNum,
5207
5281
  "\uD68C\uCC28",
5208
5282
  detail.characterTitle ? ` \xB7 ${detail.characterTitle}` : ""
5209
5283
  ] })
5210
5284
  ] }),
5211
- /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(
5285
+ /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(
5212
5286
  Heading2,
5213
5287
  {
5214
5288
  size: { initial: "5", md: "7" },
@@ -5217,13 +5291,13 @@ function Header({
5217
5291
  children: (_a = detail.scenarioTitle) != null ? _a : "\uB864\uD50C\uB808\uC789 \uC138\uC158"
5218
5292
  }
5219
5293
  ),
5220
- /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(Typo, { as: "p", color: "gray", mono: true, mt: "1", variant: "body", children: [
5294
+ /* @__PURE__ */ (0, import_jsx_runtime129.jsxs)(Typo, { as: "p", color: "gray", mono: true, mt: "1", variant: "body", children: [
5221
5295
  formatDate(detail.createdAt),
5222
5296
  " \xB7 ",
5223
5297
  formatDuration(detail.trainingTime)
5224
5298
  ] })
5225
5299
  ] }),
5226
- /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(
5300
+ /* @__PURE__ */ (0, import_jsx_runtime129.jsxs)(
5227
5301
  import_themes23.Flex,
5228
5302
  {
5229
5303
  gap: "2",
@@ -5231,7 +5305,7 @@ function Header({
5231
5305
  style: { flexShrink: 0 },
5232
5306
  wrap: "wrap",
5233
5307
  children: [
5234
- onResolveMediaUrl ? /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(
5308
+ onResolveMediaUrl ? /* @__PURE__ */ (0, import_jsx_runtime129.jsxs)(
5235
5309
  Button,
5236
5310
  {
5237
5311
  color: "gray",
@@ -5242,11 +5316,11 @@ function Header({
5242
5316
  type: "button",
5243
5317
  variant: "outline",
5244
5318
  children: [
5245
- /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(PdfIcon, {}),
5246
- /* @__PURE__ */ (0, import_jsx_runtime127.jsx)("span", { style: { whiteSpace: "nowrap" }, children: "PDF \uB2E4\uC6B4\uB85C\uB4DC" })
5319
+ /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(PdfIcon, {}),
5320
+ /* @__PURE__ */ (0, import_jsx_runtime129.jsx)("span", { style: { whiteSpace: "nowrap" }, children: "PDF \uB2E4\uC6B4\uB85C\uB4DC" })
5247
5321
  ]
5248
5322
  }
5249
- ) : /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(
5323
+ ) : /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(
5250
5324
  Button,
5251
5325
  {
5252
5326
  asChild: Boolean(pdfHref),
@@ -5256,16 +5330,16 @@ function Header({
5256
5330
  title: pdfHref ? void 0 : "\uC0B0\uCD9C\uBB3C \uC5C6\uC74C",
5257
5331
  type: "button",
5258
5332
  variant: "outline",
5259
- children: pdfHref ? /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)("a", { href: pdfHref, rel: "noopener noreferrer", target: "_blank", children: [
5260
- /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(PdfIcon, {}),
5261
- /* @__PURE__ */ (0, import_jsx_runtime127.jsx)("span", { style: { whiteSpace: "nowrap" }, children: "PDF \uB2E4\uC6B4\uB85C\uB4DC" })
5262
- ] }) : /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)("span", { children: [
5263
- /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(PdfIcon, {}),
5264
- /* @__PURE__ */ (0, import_jsx_runtime127.jsx)("span", { style: { whiteSpace: "nowrap" }, children: "PDF \uB2E4\uC6B4\uB85C\uB4DC" })
5333
+ children: pdfHref ? /* @__PURE__ */ (0, import_jsx_runtime129.jsxs)("a", { href: pdfHref, rel: "noopener noreferrer", target: "_blank", children: [
5334
+ /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(PdfIcon, {}),
5335
+ /* @__PURE__ */ (0, import_jsx_runtime129.jsx)("span", { style: { whiteSpace: "nowrap" }, children: "PDF \uB2E4\uC6B4\uB85C\uB4DC" })
5336
+ ] }) : /* @__PURE__ */ (0, import_jsx_runtime129.jsxs)("span", { children: [
5337
+ /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(PdfIcon, {}),
5338
+ /* @__PURE__ */ (0, import_jsx_runtime129.jsx)("span", { style: { whiteSpace: "nowrap" }, children: "PDF \uB2E4\uC6B4\uB85C\uB4DC" })
5265
5339
  ] })
5266
5340
  }
5267
5341
  ),
5268
- hasScript ? /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(
5342
+ hasScript ? /* @__PURE__ */ (0, import_jsx_runtime129.jsxs)(
5269
5343
  Button,
5270
5344
  {
5271
5345
  color: "gray",
@@ -5276,8 +5350,8 @@ function Header({
5276
5350
  type: "button",
5277
5351
  variant: "outline",
5278
5352
  children: [
5279
- /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(VideoIcon3, {}),
5280
- /* @__PURE__ */ (0, import_jsx_runtime127.jsx)("span", { style: { whiteSpace: "nowrap" }, children: "\uC601\uC0C1" })
5353
+ /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(VideoIcon3, {}),
5354
+ /* @__PURE__ */ (0, import_jsx_runtime129.jsx)("span", { style: { whiteSpace: "nowrap" }, children: "\uC601\uC0C1" })
5281
5355
  ]
5282
5356
  }
5283
5357
  ) : null
@@ -5293,7 +5367,7 @@ function Header({
5293
5367
  var import_react70 = require("react");
5294
5368
 
5295
5369
  // src/app/roleplay/parts/script-transcript.tsx
5296
- var import_jsx_runtime128 = require("react/jsx-runtime");
5370
+ var import_jsx_runtime130 = require("react/jsx-runtime");
5297
5371
  function ScriptTranscript({
5298
5372
  lines,
5299
5373
  partnerName,
@@ -5303,11 +5377,11 @@ function ScriptTranscript({
5303
5377
  onSeek
5304
5378
  }) {
5305
5379
  const activeIndex = canSync ? lines.reduce((acc, line, i) => line.startMs <= currentMs ? i : acc, -1) : -1;
5306
- return /* @__PURE__ */ (0, import_jsx_runtime128.jsxs)(import_themes23.Flex, { direction: "column", gap: "2", style: { minWidth: 0 }, children: [
5307
- /* @__PURE__ */ (0, import_jsx_runtime128.jsxs)(import_themes7.Box, { children: [
5308
- /* @__PURE__ */ (0, import_jsx_runtime128.jsxs)(import_themes23.Flex, { align: "center", gap: "2", justify: "between", children: [
5309
- /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(Typo, { as: "span", variant: "body", weight: "bold", children: "\uB300\uD654 \uC2A4\uD06C\uB9BD\uD2B8" }),
5310
- /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(
5380
+ return /* @__PURE__ */ (0, import_jsx_runtime130.jsxs)(import_themes23.Flex, { direction: "column", gap: "2", style: { minWidth: 0 }, children: [
5381
+ /* @__PURE__ */ (0, import_jsx_runtime130.jsxs)(import_themes7.Box, { children: [
5382
+ /* @__PURE__ */ (0, import_jsx_runtime130.jsxs)(import_themes23.Flex, { align: "center", gap: "2", justify: "between", children: [
5383
+ /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(Typo, { as: "span", variant: "body", weight: "bold", children: "\uB300\uD654 \uC2A4\uD06C\uB9BD\uD2B8" }),
5384
+ /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(
5311
5385
  Typo,
5312
5386
  {
5313
5387
  as: "span",
@@ -5317,16 +5391,16 @@ function ScriptTranscript({
5317
5391
  }
5318
5392
  )
5319
5393
  ] }),
5320
- partnerName ? /* @__PURE__ */ (0, import_jsx_runtime128.jsxs)(Typo, { as: "p", color: "gray", mt: "1", variant: "body", children: [
5394
+ partnerName ? /* @__PURE__ */ (0, import_jsx_runtime130.jsxs)(Typo, { as: "p", color: "gray", mt: "1", variant: "body", children: [
5321
5395
  "\uC0C1\uB300 \xB7 ",
5322
5396
  partnerName
5323
5397
  ] }) : null,
5324
- speechShare ? /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(import_themes7.Box, { mt: "2", children: /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(SpeechShareBar, { share: speechShare }) }) : null
5398
+ speechShare ? /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(import_themes7.Box, { mt: "2", children: /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(SpeechShareBar, { share: speechShare }) }) : null
5325
5399
  ] }),
5326
- lines.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(Typo, { as: "p", color: "gray", variant: "body", children: "\uB300\uD654 \uC2A4\uD06C\uB9BD\uD2B8\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4." }) : /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(import_themes7.Box, { style: { maxHeight: 440, overflowY: "auto" }, children: /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(import_themes23.Flex, { direction: "column", gap: "1", children: lines.map((line, i) => {
5400
+ lines.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(Typo, { as: "p", color: "gray", variant: "body", children: "\uB300\uD654 \uC2A4\uD06C\uB9BD\uD2B8\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4." }) : /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(import_themes7.Box, { style: { maxHeight: 440, overflowY: "auto" }, children: /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(import_themes23.Flex, { direction: "column", gap: "1", children: lines.map((line, i) => {
5327
5401
  const isUser = line.speaker === "user";
5328
5402
  const isActive = i === activeIndex;
5329
- return /* @__PURE__ */ (0, import_jsx_runtime128.jsxs)(
5403
+ return /* @__PURE__ */ (0, import_jsx_runtime130.jsxs)(
5330
5404
  import_themes23.Flex,
5331
5405
  {
5332
5406
  align: "start",
@@ -5342,7 +5416,7 @@ function ScriptTranscript({
5342
5416
  background: isActive ? "var(--accent-a3)" : "transparent"
5343
5417
  },
5344
5418
  children: [
5345
- canSync ? /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(
5419
+ canSync ? /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(
5346
5420
  Typo,
5347
5421
  {
5348
5422
  as: "span",
@@ -5357,7 +5431,7 @@ function ScriptTranscript({
5357
5431
  children: formatTimestamp(line.startMs)
5358
5432
  }
5359
5433
  ) : null,
5360
- /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(
5434
+ /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(
5361
5435
  Typo,
5362
5436
  {
5363
5437
  as: "span",
@@ -5373,7 +5447,7 @@ function ScriptTranscript({
5373
5447
  children: isUser ? "\uB098" : "\uC0C1\uB300"
5374
5448
  }
5375
5449
  ),
5376
- /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(
5450
+ /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(
5377
5451
  Typo,
5378
5452
  {
5379
5453
  as: "span",
@@ -5396,7 +5470,7 @@ function ScriptTranscript({
5396
5470
  }
5397
5471
 
5398
5472
  // src/app/roleplay/parts/session-replay-dialog.tsx
5399
- var import_jsx_runtime129 = require("react/jsx-runtime");
5473
+ var import_jsx_runtime131 = require("react/jsx-runtime");
5400
5474
  function resolveUrl(raw, disp, resolver) {
5401
5475
  return __async(this, null, function* () {
5402
5476
  if (!raw) return void 0;
@@ -5456,14 +5530,14 @@ function SessionReplayDialog({
5456
5530
  setCurrentMs(el.currentTime * 1e3);
5457
5531
  }
5458
5532
  };
5459
- return /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(Dialog.Root, { onOpenChange, open, children: /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(Dialog.Content, { maxWidth: "1040px", title: "\uC138\uC158 \uB2E4\uC2DC\uBCF4\uAE30", width: "100%", children: /* @__PURE__ */ (0, import_jsx_runtime129.jsxs)(
5533
+ return /* @__PURE__ */ (0, import_jsx_runtime131.jsx)(Dialog.Root, { onOpenChange, open, children: /* @__PURE__ */ (0, import_jsx_runtime131.jsx)(Dialog.Content, { maxWidth: "1040px", title: "\uC138\uC158 \uB2E4\uC2DC\uBCF4\uAE30", width: "100%", children: /* @__PURE__ */ (0, import_jsx_runtime131.jsxs)(
5460
5534
  import_themes24.Grid,
5461
5535
  {
5462
5536
  columns: { initial: "1", md: "minmax(0, 1fr) minmax(0, 1.05fr)" },
5463
5537
  gap: "5",
5464
5538
  mt: "2",
5465
5539
  children: [
5466
- /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(import_themes7.Box, { children: /* @__PURE__ */ (0, import_jsx_runtime129.jsxs)(
5540
+ /* @__PURE__ */ (0, import_jsx_runtime131.jsx)(import_themes7.Box, { children: /* @__PURE__ */ (0, import_jsx_runtime131.jsxs)(
5467
5541
  Tabs.Root,
5468
5542
  {
5469
5543
  onValueChange: (v) => {
@@ -5471,11 +5545,11 @@ function SessionReplayDialog({
5471
5545
  },
5472
5546
  value: tab,
5473
5547
  children: [
5474
- /* @__PURE__ */ (0, import_jsx_runtime129.jsxs)(Tabs.List, { children: [
5475
- hasVideo ? /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(Tabs.Trigger, { value: "video", children: "\uC601\uC0C1" }) : null,
5476
- hasAudio ? /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(Tabs.Trigger, { value: "audio", children: "\uC624\uB514\uC624" }) : null
5548
+ /* @__PURE__ */ (0, import_jsx_runtime131.jsxs)(Tabs.List, { children: [
5549
+ hasVideo ? /* @__PURE__ */ (0, import_jsx_runtime131.jsx)(Tabs.Trigger, { value: "video", children: "\uC601\uC0C1" }) : null,
5550
+ hasAudio ? /* @__PURE__ */ (0, import_jsx_runtime131.jsx)(Tabs.Trigger, { value: "audio", children: "\uC624\uB514\uC624" }) : null
5477
5551
  ] }),
5478
- hasVideo ? /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(Tabs.Content, { value: "video", children: /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(
5552
+ hasVideo ? /* @__PURE__ */ (0, import_jsx_runtime131.jsx)(Tabs.Content, { value: "video", children: /* @__PURE__ */ (0, import_jsx_runtime131.jsx)(
5479
5553
  import_themes7.Box,
5480
5554
  {
5481
5555
  mt: "3",
@@ -5484,7 +5558,7 @@ function SessionReplayDialog({
5484
5558
  overflow: "hidden",
5485
5559
  background: "var(--gray-3)"
5486
5560
  },
5487
- children: /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(
5561
+ children: /* @__PURE__ */ (0, import_jsx_runtime131.jsx)(
5488
5562
  "video",
5489
5563
  {
5490
5564
  controls: true,
@@ -5500,7 +5574,7 @@ function SessionReplayDialog({
5500
5574
  )
5501
5575
  }
5502
5576
  ) }) : null,
5503
- hasAudio ? /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(Tabs.Content, { value: "audio", children: /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(import_themes7.Box, { mt: "3", children: /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(
5577
+ hasAudio ? /* @__PURE__ */ (0, import_jsx_runtime131.jsx)(Tabs.Content, { value: "audio", children: /* @__PURE__ */ (0, import_jsx_runtime131.jsx)(import_themes7.Box, { mt: "3", children: /* @__PURE__ */ (0, import_jsx_runtime131.jsx)(
5504
5578
  "audio",
5505
5579
  {
5506
5580
  controls: true,
@@ -5517,7 +5591,7 @@ function SessionReplayDialog({
5517
5591
  ]
5518
5592
  }
5519
5593
  ) }),
5520
- /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(
5594
+ /* @__PURE__ */ (0, import_jsx_runtime131.jsx)(
5521
5595
  ScriptTranscript,
5522
5596
  {
5523
5597
  canSync,
@@ -5534,25 +5608,25 @@ function SessionReplayDialog({
5534
5608
  }
5535
5609
 
5536
5610
  // src/app/roleplay/rp-session-detail.tsx
5537
- var import_jsx_runtime130 = require("react/jsx-runtime");
5611
+ var import_jsx_runtime132 = require("react/jsx-runtime");
5538
5612
  function RpSessionDetailSkeleton() {
5539
- return /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(import_themes7.Box, { py: "6", children: /* @__PURE__ */ (0, import_jsx_runtime130.jsxs)(import_themes23.Flex, { direction: "column", gap: "6", children: [
5540
- /* @__PURE__ */ (0, import_jsx_runtime130.jsxs)(import_themes7.Box, { children: [
5541
- /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(import_themes41.Skeleton, { children: /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(Heading2, { size: "7", children: "\uB864\uD50C\uB808\uC789 \uC138\uC158 \uC81C\uBAA9 \uB85C\uB529 \uC911" }) }),
5542
- /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(import_themes7.Box, { mt: "2", children: /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(import_themes41.Skeleton, { children: /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(Typo, { as: "p", variant: "body", children: "\uB0A0\uC9DC \xB7 \uC18C\uC694 \uC2DC\uAC04\uC774 \uB85C\uB529\uB418\uB294 \uC601\uC5ED\uC785\uB2C8\uB2E4" }) }) })
5613
+ return /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(import_themes7.Box, { py: "6", children: /* @__PURE__ */ (0, import_jsx_runtime132.jsxs)(import_themes23.Flex, { direction: "column", gap: "6", children: [
5614
+ /* @__PURE__ */ (0, import_jsx_runtime132.jsxs)(import_themes7.Box, { children: [
5615
+ /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(import_themes41.Skeleton, { children: /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(Heading2, { size: "7", children: "\uB864\uD50C\uB808\uC789 \uC138\uC158 \uC81C\uBAA9 \uB85C\uB529 \uC911" }) }),
5616
+ /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(import_themes7.Box, { mt: "2", children: /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(import_themes41.Skeleton, { children: /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(Typo, { as: "p", variant: "body", children: "\uB0A0\uC9DC \xB7 \uC18C\uC694 \uC2DC\uAC04\uC774 \uB85C\uB529\uB418\uB294 \uC601\uC5ED\uC785\uB2C8\uB2E4" }) }) })
5543
5617
  ] }),
5544
- /* @__PURE__ */ (0, import_jsx_runtime130.jsxs)("section", { children: [
5545
- /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(import_themes41.Skeleton, { children: /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(Heading2, { size: "5", children: "\uC885\uD569 \uC810\uC218" }) }),
5546
- /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(import_themes7.Box, { mt: "3", children: /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(Card, { variant: "surface", children: /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(import_themes23.Flex, { align: "center", direction: "column", gap: "2", py: "3", children: /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(import_themes41.Skeleton, { children: /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(Heading2, { size: "7", children: "00" }) }) }) }) })
5618
+ /* @__PURE__ */ (0, import_jsx_runtime132.jsxs)("section", { children: [
5619
+ /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(import_themes41.Skeleton, { children: /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(Heading2, { size: "5", children: "\uC885\uD569 \uC810\uC218" }) }),
5620
+ /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(import_themes7.Box, { mt: "3", children: /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(Card, { variant: "surface", children: /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(import_themes23.Flex, { align: "center", direction: "column", gap: "2", py: "3", children: /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(import_themes41.Skeleton, { children: /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(Heading2, { size: "7", children: "00" }) }) }) }) })
5547
5621
  ] }),
5548
- /* @__PURE__ */ (0, import_jsx_runtime130.jsxs)("section", { children: [
5549
- /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(import_themes41.Skeleton, { children: /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(Heading2, { size: "5", children: "\uD3C9\uAC00 \uC9C0\uD45C \uC694\uC57D" }) }),
5550
- /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(import_themes7.Box, { mt: "3", children: /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(import_themes23.Flex, { direction: "column", gap: "3", children: [0, 1, 2].map((i) => /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(import_themes41.Skeleton, { children: /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(Typo, { as: "p", variant: "body", children: "\uD3C9\uAC00 \uC9C0\uD45C \uD56D\uBAA9\uC774 \uB85C\uB529\uB418\uB294 \uC911\uC785\uB2C8\uB2E4" }) }, i)) }) })
5622
+ /* @__PURE__ */ (0, import_jsx_runtime132.jsxs)("section", { children: [
5623
+ /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(import_themes41.Skeleton, { children: /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(Heading2, { size: "5", children: "\uD3C9\uAC00 \uC9C0\uD45C \uC694\uC57D" }) }),
5624
+ /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(import_themes7.Box, { mt: "3", children: /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(import_themes23.Flex, { direction: "column", gap: "3", children: [0, 1, 2].map((i) => /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(import_themes41.Skeleton, { children: /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(Typo, { as: "p", variant: "body", children: "\uD3C9\uAC00 \uC9C0\uD45C \uD56D\uBAA9\uC774 \uB85C\uB529\uB418\uB294 \uC911\uC785\uB2C8\uB2E4" }) }, i)) }) })
5551
5625
  ] })
5552
5626
  ] }) });
5553
5627
  }
5554
5628
  function AnalyzingState() {
5555
- return /* @__PURE__ */ (0, import_jsx_runtime130.jsxs)(
5629
+ return /* @__PURE__ */ (0, import_jsx_runtime132.jsxs)(
5556
5630
  import_themes23.Flex,
5557
5631
  {
5558
5632
  align: "center",
@@ -5566,9 +5640,9 @@ function AnalyzingState() {
5566
5640
  textAlign: "center"
5567
5641
  },
5568
5642
  children: [
5569
- /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(Heading2, { size: { initial: "4", md: "5" }, weight: "bold", children: "AI \uBD84\uC11D \uC911\uC785\uB2C8\uB2E4" }),
5570
- /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(import_themes7.Box, { mt: "2", style: { maxWidth: "480px" }, children: /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(Typo, { as: "p", variant: "body", children: "\uB300\uD654\uC640 \uC0B0\uCD9C\uBB3C\uC740 \uC800\uC7A5\uB418\uC5C8\uACE0, AI\uAC00 \uC9C0\uD45C\uBCC4 \uADFC\uAC70\uC640 \uCF54\uCE6D\uC744 \uC0DD\uC131\uD558\uB294 \uC911\uC785\uB2C8\uB2E4." }) }),
5571
- /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(import_themes7.Box, { mt: "4", style: { width: "100%", maxWidth: "280px" }, children: /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(Progress, { size: "2", value: 66 }) })
5643
+ /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(Heading2, { size: { initial: "4", md: "5" }, weight: "bold", children: "AI \uBD84\uC11D \uC911\uC785\uB2C8\uB2E4" }),
5644
+ /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(import_themes7.Box, { mt: "2", style: { maxWidth: "480px" }, children: /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(Typo, { as: "p", variant: "body", children: "\uB300\uD654\uC640 \uC0B0\uCD9C\uBB3C\uC740 \uC800\uC7A5\uB418\uC5C8\uACE0, AI\uAC00 \uC9C0\uD45C\uBCC4 \uADFC\uAC70\uC640 \uCF54\uCE6D\uC744 \uC0DD\uC131\uD558\uB294 \uC911\uC785\uB2C8\uB2E4." }) }),
5645
+ /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(import_themes7.Box, { mt: "4", style: { width: "100%", maxWidth: "280px" }, children: /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(Progress, { size: "2", value: 66 }) })
5572
5646
  ]
5573
5647
  }
5574
5648
  );
@@ -5594,11 +5668,11 @@ function RpSessionDetail({
5594
5668
  const hasScript = script !== null && script !== void 0;
5595
5669
  const isAnalyzing = detail.status === "analyzing";
5596
5670
  if (isLoading) {
5597
- return /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(RpSessionDetailSkeleton, {});
5671
+ return /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(RpSessionDetailSkeleton, {});
5598
5672
  }
5599
- return /* @__PURE__ */ (0, import_jsx_runtime130.jsxs)(import_themes7.Box, { py: "6", children: [
5600
- /* @__PURE__ */ (0, import_jsx_runtime130.jsxs)(import_themes23.Flex, { direction: "column", gap: { initial: "5", md: "7" }, children: [
5601
- /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(
5673
+ return /* @__PURE__ */ (0, import_jsx_runtime132.jsxs)(import_themes7.Box, { py: "6", children: [
5674
+ /* @__PURE__ */ (0, import_jsx_runtime132.jsxs)(import_themes23.Flex, { direction: "column", gap: { initial: "5", md: "7" }, children: [
5675
+ /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(
5602
5676
  Header,
5603
5677
  {
5604
5678
  detail,
@@ -5609,7 +5683,7 @@ function RpSessionDetail({
5609
5683
  onResolveMediaUrl
5610
5684
  }
5611
5685
  ),
5612
- isAnalyzing ? /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(AnalyzingState, {}) : /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(
5686
+ isAnalyzing ? /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(AnalyzingState, {}) : /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(
5613
5687
  Content9,
5614
5688
  {
5615
5689
  detail,
@@ -5620,7 +5694,7 @@ function RpSessionDetail({
5620
5694
  }
5621
5695
  )
5622
5696
  ] }),
5623
- /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(
5697
+ /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(
5624
5698
  SessionReplayDialog,
5625
5699
  {
5626
5700
  detail,