@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
@@ -1970,8 +1970,31 @@ var HeadsetIcon = React34.forwardRef(
1970
1970
  );
1971
1971
  HeadsetIcon.displayName = "HeadsetIcon";
1972
1972
 
1973
- // src/atoms/pagination.tsx
1973
+ // src/icons/empty-box.tsx
1974
+ var React35 = __toESM(require("react"), 1);
1974
1975
  var import_jsx_runtime51 = require("react/jsx-runtime");
1976
+ var EmptyBoxIcon = React35.forwardRef(
1977
+ (_a, forwardedRef) => {
1978
+ var _b = _a, { color = "currentColor", width = 120, height = 120 } = _b, props = __objRest(_b, ["color", "width", "height"]);
1979
+ return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
1980
+ "svg",
1981
+ __spreadProps(__spreadValues({
1982
+ fill: color,
1983
+ height,
1984
+ viewBox: "0 0 462.035 462.035",
1985
+ width,
1986
+ xmlns: "http://www.w3.org/2000/svg"
1987
+ }, props), {
1988
+ ref: forwardedRef,
1989
+ 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" })
1990
+ })
1991
+ );
1992
+ }
1993
+ );
1994
+ EmptyBoxIcon.displayName = "EmptyBoxIcon";
1995
+
1996
+ // src/atoms/pagination.tsx
1997
+ var import_jsx_runtime52 = require("react/jsx-runtime");
1975
1998
  function Pagination(props) {
1976
1999
  const { onChange, count = 0, siblingCount = 2 } = props;
1977
2000
  const isControlled = props.page !== void 0;
@@ -2040,7 +2063,7 @@ function Pagination(props) {
2040
2063
  const { color: resolvedColor, className: colorClassName } = resolveColor(
2041
2064
  props.color
2042
2065
  );
2043
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(
2066
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(
2044
2067
  import_themes23.Flex,
2045
2068
  {
2046
2069
  align: "center",
@@ -2048,18 +2071,18 @@ function Pagination(props) {
2048
2071
  className: colorClassName ? `tipp-pagination ${colorClassName}` : "tipp-pagination",
2049
2072
  "data-accent-color": resolvedColor,
2050
2073
  children: [
2051
- /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
2074
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
2052
2075
  IconButton,
2053
2076
  __spreadProps(__spreadValues({
2054
2077
  disabled: !doublePrev,
2055
2078
  onClick: onClickDoublePrev
2056
2079
  }, moveButtonProps), {
2057
- children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_react_icons2.DoubleArrowLeftIcon, __spreadValues({}, iconSize))
2080
+ children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_react_icons2.DoubleArrowLeftIcon, __spreadValues({}, iconSize))
2058
2081
  })
2059
2082
  ),
2060
- /* @__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)) })),
2061
- /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_themes23.Flex, { gap: "1", children: visibleItems.map((item) => {
2062
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
2083
+ /* @__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)) })),
2084
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_themes23.Flex, { gap: "1", children: visibleItems.map((item) => {
2085
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
2063
2086
  "button",
2064
2087
  {
2065
2088
  className: `page-button ${item === page ? "active" : ""}`,
@@ -2067,19 +2090,19 @@ function Pagination(props) {
2067
2090
  goToPage(item);
2068
2091
  },
2069
2092
  type: "button",
2070
- children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(Typo, { variant: "body", children: item })
2093
+ children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Typo, { variant: "body", children: item })
2071
2094
  },
2072
2095
  item
2073
2096
  );
2074
2097
  }) }),
2075
- /* @__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)) })),
2076
- /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
2098
+ /* @__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)) })),
2099
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
2077
2100
  IconButton,
2078
2101
  __spreadProps(__spreadValues({
2079
2102
  disabled: !doubleNext,
2080
2103
  onClick: onClickDoubleNext
2081
2104
  }, moveButtonProps), {
2082
- children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_react_icons2.DoubleArrowRightIcon, __spreadValues({}, iconSize))
2105
+ children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_react_icons2.DoubleArrowRightIcon, __spreadValues({}, iconSize))
2083
2106
  })
2084
2107
  )
2085
2108
  ]
@@ -2088,23 +2111,23 @@ function Pagination(props) {
2088
2111
  }
2089
2112
 
2090
2113
  // src/atoms/field-error-wrapper.tsx
2091
- var import_jsx_runtime52 = require("react/jsx-runtime");
2114
+ var import_jsx_runtime53 = require("react/jsx-runtime");
2092
2115
 
2093
2116
  // src/atoms/ellipsis-tooltip.tsx
2094
2117
  var import_react37 = require("react");
2095
- var import_jsx_runtime53 = require("react/jsx-runtime");
2118
+ var import_jsx_runtime54 = require("react/jsx-runtime");
2096
2119
 
2097
2120
  // src/atoms/drawer.tsx
2098
2121
  var Dialog2 = __toESM(require("@radix-ui/react-dialog"), 1);
2099
2122
  var import_themes51 = require("@radix-ui/themes");
2100
2123
 
2101
2124
  // src/icons/close-panel-arrow.tsx
2102
- var React37 = __toESM(require("react"), 1);
2103
- var import_jsx_runtime54 = require("react/jsx-runtime");
2104
- var ClosePanelArrowIcon = React37.forwardRef(
2125
+ var React38 = __toESM(require("react"), 1);
2126
+ var import_jsx_runtime55 = require("react/jsx-runtime");
2127
+ var ClosePanelArrowIcon = React38.forwardRef(
2105
2128
  (_a, forwardedRef) => {
2106
2129
  var _b = _a, { color = "currentColor" } = _b, props = __objRest(_b, ["color"]);
2107
- return /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(
2130
+ return /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)(
2108
2131
  "svg",
2109
2132
  __spreadProps(__spreadValues({
2110
2133
  fill: "none",
@@ -2115,7 +2138,7 @@ var ClosePanelArrowIcon = React37.forwardRef(
2115
2138
  }, props), {
2116
2139
  ref: forwardedRef,
2117
2140
  children: [
2118
- /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
2141
+ /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
2119
2142
  "path",
2120
2143
  {
2121
2144
  clipRule: "evenodd",
@@ -2124,7 +2147,7 @@ var ClosePanelArrowIcon = React37.forwardRef(
2124
2147
  fillRule: "evenodd"
2125
2148
  }
2126
2149
  ),
2127
- /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
2150
+ /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
2128
2151
  "path",
2129
2152
  {
2130
2153
  clipRule: "evenodd",
@@ -2141,11 +2164,11 @@ var ClosePanelArrowIcon = React37.forwardRef(
2141
2164
  ClosePanelArrowIcon.displayName = "ArrowDownIcon";
2142
2165
 
2143
2166
  // src/atoms/drawer.tsx
2144
- var import_jsx_runtime55 = require("react/jsx-runtime");
2167
+ var import_jsx_runtime56 = require("react/jsx-runtime");
2145
2168
 
2146
2169
  // src/atoms/toast.tsx
2147
2170
  var import_sonner = require("sonner");
2148
- var import_jsx_runtime56 = require("react/jsx-runtime");
2171
+ var import_jsx_runtime57 = require("react/jsx-runtime");
2149
2172
  var toast = Object.assign(import_sonner.toast, {
2150
2173
  warn: import_sonner.toast.warning
2151
2174
  });
@@ -2153,11 +2176,11 @@ var toast = Object.assign(import_sonner.toast, {
2153
2176
  // src/molecules/form/form.tsx
2154
2177
  var RadixForm = __toESM(require("@radix-ui/react-form"), 1);
2155
2178
  var import_react38 = require("react");
2156
- var import_jsx_runtime57 = require("react/jsx-runtime");
2179
+ var import_jsx_runtime58 = require("react/jsx-runtime");
2157
2180
  var Root15 = (0, import_react38.forwardRef)(
2158
2181
  (_a, ref) => {
2159
2182
  var _b = _a, { children, className } = _b, rest = __objRest(_b, ["children", "className"]);
2160
- return /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
2183
+ return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
2161
2184
  RadixForm.Root,
2162
2185
  __spreadProps(__spreadValues({}, rest), {
2163
2186
  className: `FormRoot ${className || ""}`,
@@ -2174,25 +2197,25 @@ var FieldContext = (0, import_react38.createContext)({
2174
2197
  var Field2 = (0, import_react38.forwardRef)(
2175
2198
  (_a, ref) => {
2176
2199
  var _b = _a, { children, className } = _b, rest = __objRest(_b, ["children", "className"]);
2177
- return /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
2200
+ return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
2178
2201
  RadixForm.Field,
2179
2202
  __spreadProps(__spreadValues({}, rest), {
2180
2203
  className: `FormField ${className || ""}`,
2181
2204
  ref,
2182
- children: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(FieldContext.Provider, { value: rest, children })
2205
+ children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(FieldContext.Provider, { value: rest, children })
2183
2206
  })
2184
2207
  );
2185
2208
  }
2186
2209
  );
2187
2210
  Field2.displayName = "FORM_FIELD";
2188
2211
  function HeadingLabel(props) {
2189
- return /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(Heading2, __spreadProps(__spreadValues({ variant: "heading5" }, props), { children: props.children }));
2212
+ return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(Heading2, __spreadProps(__spreadValues({ variant: "heading5" }, props), { children: props.children }));
2190
2213
  }
2191
2214
  function CaptionLabel(props) {
2192
- return /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(Typo, __spreadProps(__spreadValues({ color: "gray", variant: "caption", weight: "bold" }, props), { children: props.children }));
2215
+ return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(Typo, __spreadProps(__spreadValues({ color: "gray", variant: "caption", weight: "bold" }, props), { children: props.children }));
2193
2216
  }
2194
2217
  function BodyLabel(props) {
2195
- return /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(Typo, __spreadProps(__spreadValues({ variant: "body", weight: "bold" }, props), { children: props.children }));
2218
+ return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(Typo, __spreadProps(__spreadValues({ variant: "body", weight: "bold" }, props), { children: props.children }));
2196
2219
  }
2197
2220
  var Label3 = (0, import_react38.forwardRef)(
2198
2221
  (_a, ref) => {
@@ -2209,15 +2232,15 @@ var Label3 = (0, import_react38.forwardRef)(
2209
2232
  }
2210
2233
  }, [variant]);
2211
2234
  const fieldProps = (0, import_react38.useContext)(FieldContext);
2212
- return /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
2235
+ return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
2213
2236
  RadixForm.Label,
2214
2237
  __spreadProps(__spreadValues({}, rest), {
2215
2238
  asChild: true,
2216
2239
  className: `FormLabel ${className || ""}`,
2217
2240
  ref,
2218
- children: /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(Comp, { children: [
2241
+ children: /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)(Comp, { children: [
2219
2242
  children,
2220
- fieldProps.required ? /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(Typo, { as: "span", color: "tomato", children: ` *` }) : null
2243
+ fieldProps.required ? /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(Typo, { as: "span", color: "tomato", children: ` *` }) : null
2221
2244
  ] })
2222
2245
  })
2223
2246
  );
@@ -2227,13 +2250,13 @@ Label3.displayName = "FORM_Label";
2227
2250
  var Message2 = (0, import_react38.forwardRef)(
2228
2251
  (_a, ref) => {
2229
2252
  var _b = _a, { children, className } = _b, rest = __objRest(_b, ["children", "className"]);
2230
- return /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
2253
+ return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
2231
2254
  RadixForm.Message,
2232
2255
  __spreadProps(__spreadValues({}, rest), {
2233
2256
  asChild: true,
2234
2257
  className: `FormMessage ${className || ""}`,
2235
2258
  ref,
2236
- children: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(Typo, { color: "red", children })
2259
+ children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(Typo, { color: "red", children })
2237
2260
  })
2238
2261
  );
2239
2262
  }
@@ -2243,7 +2266,7 @@ var Control2 = (0, import_react38.forwardRef)(
2243
2266
  (_a, ref) => {
2244
2267
  var _b = _a, { className } = _b, rest = __objRest(_b, ["className"]);
2245
2268
  const fieldProps = (0, import_react38.useContext)(FieldContext);
2246
- return /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
2269
+ return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
2247
2270
  RadixForm.Control,
2248
2271
  __spreadProps(__spreadValues({}, rest), {
2249
2272
  className: `FormControl ${className || ""}`,
@@ -2258,7 +2281,7 @@ Control2.displayName = "FORM_Control";
2258
2281
  // src/atoms/auto-sizing-input.tsx
2259
2282
  var import_themes52 = require("@radix-ui/themes");
2260
2283
  var import_react39 = require("react");
2261
- var import_jsx_runtime58 = require("react/jsx-runtime");
2284
+ var import_jsx_runtime59 = require("react/jsx-runtime");
2262
2285
  var useTextWidth = (text, font) => {
2263
2286
  const [textWidth, setTextWidth] = (0, import_react39.useState)(0);
2264
2287
  (0, import_react39.useEffect)(() => {
@@ -2358,7 +2381,7 @@ var AutoSizingInput = (0, import_react39.forwardRef)(
2358
2381
  (_a2 = inputRef.current) == null ? void 0 : _a2.focus();
2359
2382
  }
2360
2383
  }, [inputRef]);
2361
- return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
2384
+ return /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
2362
2385
  import_themes52.Box,
2363
2386
  {
2364
2387
  className: "auto-sizing-input wrapper",
@@ -2366,7 +2389,7 @@ var AutoSizingInput = (0, import_react39.forwardRef)(
2366
2389
  minWidth,
2367
2390
  onClick,
2368
2391
  style: { width: dynamicWidth },
2369
- children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("input", __spreadValues({ onChange: handleChange, ref: inputRef, value }, rest))
2392
+ children: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)("input", __spreadValues({ onChange: handleChange, ref: inputRef, value }, rest))
2370
2393
  }
2371
2394
  );
2372
2395
  }
@@ -2374,12 +2397,12 @@ var AutoSizingInput = (0, import_react39.forwardRef)(
2374
2397
  AutoSizingInput.displayName = "AutoSizingInput";
2375
2398
 
2376
2399
  // src/atoms/bullet-text.tsx
2377
- var import_jsx_runtime59 = require("react/jsx-runtime");
2400
+ var import_jsx_runtime60 = require("react/jsx-runtime");
2378
2401
 
2379
2402
  // src/atoms/list.tsx
2380
2403
  var import_react40 = require("react");
2381
2404
  var import_clsx28 = require("clsx");
2382
- var import_jsx_runtime60 = require("react/jsx-runtime");
2405
+ var import_jsx_runtime61 = require("react/jsx-runtime");
2383
2406
  var ListContext = (0, import_react40.createContext)({
2384
2407
  size: "large"
2385
2408
  });
@@ -2780,15 +2803,15 @@ function statusLabelOf(status) {
2780
2803
  }
2781
2804
 
2782
2805
  // src/app/roleplay/parts/analysis-section.tsx
2783
- var import_jsx_runtime61 = require("react/jsx-runtime");
2806
+ var import_jsx_runtime62 = require("react/jsx-runtime");
2784
2807
  function Section2({
2785
2808
  title,
2786
2809
  desc,
2787
2810
  children
2788
2811
  }) {
2789
- return /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("section", { children: [
2790
- /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(import_themes7.Box, { mb: "3", children: [
2791
- /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
2812
+ return /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("section", { children: [
2813
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(import_themes7.Box, { mb: "3", children: [
2814
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
2792
2815
  Heading2,
2793
2816
  {
2794
2817
  size: { initial: "4", md: "5" },
@@ -2797,7 +2820,7 @@ function Section2({
2797
2820
  children: title
2798
2821
  }
2799
2822
  ),
2800
- 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
2823
+ 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
2801
2824
  ] }),
2802
2825
  children
2803
2826
  ] });
@@ -2811,9 +2834,9 @@ function AnalysisSection({
2811
2834
  if (items.length === 0) return null;
2812
2835
  const accentBorder = tone === "good" ? "var(--green-a6)" : "var(--amber-a6)";
2813
2836
  const numColor = tone === "good" ? "var(--green-11)" : "var(--amber-11)";
2814
- 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: [
2815
- index > 0 && /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_themes40.Separator, { size: "4" }),
2816
- /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(
2837
+ 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: [
2838
+ index > 0 && /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_themes40.Separator, { size: "4" }),
2839
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(
2817
2840
  import_themes23.Flex,
2818
2841
  {
2819
2842
  gap: "3",
@@ -2821,7 +2844,7 @@ function AnalysisSection({
2821
2844
  py: "3",
2822
2845
  style: { borderLeft: `2px solid ${accentBorder}` },
2823
2846
  children: [
2824
- /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
2847
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
2825
2848
  Typo,
2826
2849
  {
2827
2850
  as: "span",
@@ -2832,9 +2855,9 @@ function AnalysisSection({
2832
2855
  children: index + 1
2833
2856
  }
2834
2857
  ),
2835
- /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(import_themes7.Box, { style: { minWidth: 0 }, children: [
2836
- /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(Typo, { as: "p", variant: "body", weight: "medium", children: item.title }),
2837
- /* @__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 }) })
2858
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(import_themes7.Box, { style: { minWidth: 0 }, children: [
2859
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(Typo, { as: "p", variant: "body", weight: "medium", children: item.title }),
2860
+ /* @__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 }) })
2838
2861
  ] })
2839
2862
  ]
2840
2863
  }
@@ -2843,15 +2866,15 @@ function AnalysisSection({
2843
2866
  }
2844
2867
 
2845
2868
  // src/app/roleplay/parts/coaching-panel.tsx
2846
- var import_jsx_runtime62 = require("react/jsx-runtime");
2869
+ var import_jsx_runtime63 = require("react/jsx-runtime");
2847
2870
  function Section3({
2848
2871
  title,
2849
2872
  desc,
2850
2873
  children
2851
2874
  }) {
2852
- return /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("section", { children: [
2853
- /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(import_themes7.Box, { mb: "3", children: [
2854
- /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
2875
+ return /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)("section", { children: [
2876
+ /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(import_themes7.Box, { mb: "3", children: [
2877
+ /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
2855
2878
  Heading2,
2856
2879
  {
2857
2880
  size: { initial: "4", md: "5" },
@@ -2860,21 +2883,21 @@ function Section3({
2860
2883
  children: title
2861
2884
  }
2862
2885
  ),
2863
- 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
2886
+ 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
2864
2887
  ] }),
2865
2888
  children
2866
2889
  ] });
2867
2890
  }
2868
2891
  function CoachingPanel({ skills }) {
2869
2892
  if (skills.length === 0) return null;
2870
- 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)(
2893
+ 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)(
2871
2894
  Card,
2872
2895
  {
2873
2896
  style: { padding: "var(--space-3)" },
2874
2897
  variant: "surface",
2875
2898
  children: [
2876
- /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(import_themes23.Flex, { align: "center", gap: "2", children: [
2877
- /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
2899
+ /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(import_themes23.Flex, { align: "center", gap: "2", children: [
2900
+ /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
2878
2901
  import_themes23.Flex,
2879
2902
  {
2880
2903
  align: "center",
@@ -2886,7 +2909,7 @@ function CoachingPanel({ skills }) {
2886
2909
  background: "var(--accent-9)",
2887
2910
  flexShrink: 0
2888
2911
  },
2889
- children: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
2912
+ children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
2890
2913
  Typo,
2891
2914
  {
2892
2915
  as: "span",
@@ -2899,10 +2922,10 @@ function CoachingPanel({ skills }) {
2899
2922
  )
2900
2923
  }
2901
2924
  ),
2902
- /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(Typo, { as: "span", variant: "body", weight: "medium", children: skill.title })
2925
+ /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(Typo, { as: "span", variant: "body", weight: "medium", children: skill.title })
2903
2926
  ] }),
2904
- /* @__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 }) }),
2905
- /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
2927
+ /* @__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 }) }),
2928
+ /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
2906
2929
  import_themes7.Box,
2907
2930
  {
2908
2931
  mt: "2",
@@ -2911,7 +2934,7 @@ function CoachingPanel({ skills }) {
2911
2934
  borderRadius: "var(--radius-2)",
2912
2935
  background: "var(--accent-a2)"
2913
2936
  },
2914
- children: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(Typo, { as: "p", style: { color: "var(--accent-11)" }, variant: "body", children: skill.example })
2937
+ children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(Typo, { as: "p", style: { color: "var(--accent-11)" }, variant: "body", children: skill.example })
2915
2938
  }
2916
2939
  )
2917
2940
  ]
@@ -2921,14 +2944,14 @@ function CoachingPanel({ skills }) {
2921
2944
  }
2922
2945
 
2923
2946
  // src/app/roleplay/parts/speech-share-bar.tsx
2924
- var import_jsx_runtime63 = require("react/jsx-runtime");
2947
+ var import_jsx_runtime64 = require("react/jsx-runtime");
2925
2948
  function SpeechShareBar({
2926
2949
  share
2927
2950
  }) {
2928
2951
  const isOvertalking = share.userPct > SPEECH_OVERTALK_THRESHOLD;
2929
- return /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(import_themes7.Box, { children: [
2930
- /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(import_themes23.Flex, { align: "center", justify: "between", mb: "1", children: [
2931
- /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(
2952
+ return /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(import_themes7.Box, { children: [
2953
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(import_themes23.Flex, { align: "center", justify: "between", mb: "1", children: [
2954
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(
2932
2955
  Typo,
2933
2956
  {
2934
2957
  as: "span",
@@ -2944,13 +2967,13 @@ function SpeechShareBar({
2944
2967
  ]
2945
2968
  }
2946
2969
  ),
2947
- /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(Typo, { as: "span", color: "gray", variant: "caption", children: [
2970
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(Typo, { as: "span", color: "gray", variant: "caption", children: [
2948
2971
  "\uC0C1\uB300 ",
2949
2972
  share.partnerPct,
2950
2973
  "%"
2951
2974
  ] })
2952
2975
  ] }),
2953
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
2976
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
2954
2977
  import_themes23.Flex,
2955
2978
  {
2956
2979
  style: {
@@ -2959,7 +2982,7 @@ function SpeechShareBar({
2959
2982
  overflow: "hidden",
2960
2983
  background: "var(--gray-4)"
2961
2984
  },
2962
- children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
2985
+ children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
2963
2986
  import_themes7.Box,
2964
2987
  {
2965
2988
  style: {
@@ -2970,12 +2993,12 @@ function SpeechShareBar({
2970
2993
  )
2971
2994
  }
2972
2995
  ),
2973
- 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
2996
+ 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
2974
2997
  ] });
2975
2998
  }
2976
2999
 
2977
3000
  // src/app/roleplay/parts/score-summary.tsx
2978
- var import_jsx_runtime64 = require("react/jsx-runtime");
3001
+ var import_jsx_runtime65 = require("react/jsx-runtime");
2979
3002
  function ScoreSummary({
2980
3003
  detail,
2981
3004
  report,
@@ -2984,18 +3007,18 @@ function ScoreSummary({
2984
3007
  var _a;
2985
3008
  const scoreValue = (_a = detail.totalScore) != null ? _a : report.totalScore;
2986
3009
  const comment = report.comment;
2987
- return /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(
3010
+ return /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)(
2988
3011
  import_themes24.Grid,
2989
3012
  {
2990
3013
  align: "start",
2991
3014
  columns: comment ? { initial: "1", md: "minmax(0, 240px) 1fr" } : "1",
2992
3015
  gap: "5",
2993
3016
  children: [
2994
- /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(Card, { variant: "surface", children: [
2995
- /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(import_themes23.Flex, { align: "center", direction: "column", gap: "2", py: "3", children: [
2996
- /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(Typo, { as: "p", color: "gray", variant: "body", weight: "medium", children: "\uC885\uD569 \uC810\uC218" }),
2997
- /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(import_themes23.Flex, { align: "baseline", gap: "1", children: [
2998
- /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
3017
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)(Card, { variant: "surface", children: [
3018
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)(import_themes23.Flex, { align: "center", direction: "column", gap: "2", py: "3", children: [
3019
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(Typo, { as: "p", color: "gray", variant: "body", weight: "medium", children: "\uC885\uD569 \uC810\uC218" }),
3020
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)(import_themes23.Flex, { align: "baseline", gap: "1", children: [
3021
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
2999
3022
  Typo,
3000
3023
  {
3001
3024
  as: "span",
@@ -3009,18 +3032,18 @@ function ScoreSummary({
3009
3032
  children: scoreValue != null ? scoreValue : "\u2014"
3010
3033
  }
3011
3034
  ),
3012
- /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(Typo, { as: "span", color: "gray", mono: true, variant: "subtitle", children: "/100" })
3035
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(Typo, { as: "span", color: "gray", mono: true, variant: "subtitle", children: "/100" })
3013
3036
  ] })
3014
3037
  ] }),
3015
- speechShare ? /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(import_jsx_runtime64.Fragment, { children: [
3016
- /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_themes40.Separator, { my: "3", size: "4" }),
3017
- /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(SpeechShareBar, { share: speechShare })
3038
+ speechShare ? /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)(import_jsx_runtime65.Fragment, { children: [
3039
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_themes40.Separator, { my: "3", size: "4" }),
3040
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(SpeechShareBar, { share: speechShare })
3018
3041
  ] }) : null
3019
3042
  ] }),
3020
- comment ? /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(import_themes23.Flex, { direction: "column", gap: "3", children: [
3021
- /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(Typo, { as: "p", variant: "body", weight: "medium", children: "\uC885\uD569 \uBD84\uC11D" }),
3022
- /* @__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 }) }),
3023
- report.deduction ? /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(
3043
+ comment ? /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)(import_themes23.Flex, { direction: "column", gap: "3", children: [
3044
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(Typo, { as: "p", variant: "body", weight: "medium", children: "\uC885\uD569 \uBD84\uC11D" }),
3045
+ /* @__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 }) }),
3046
+ report.deduction ? /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)(
3024
3047
  import_themes7.Box,
3025
3048
  {
3026
3049
  pl: "3",
@@ -3032,7 +3055,7 @@ function ScoreSummary({
3032
3055
  borderRadius: "var(--radius-2)"
3033
3056
  },
3034
3057
  children: [
3035
- /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(
3058
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)(
3036
3059
  Typo,
3037
3060
  {
3038
3061
  as: "p",
@@ -3047,7 +3070,7 @@ function ScoreSummary({
3047
3070
  ]
3048
3071
  }
3049
3072
  ),
3050
- /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_themes7.Box, { mt: "1", style: { maxWidth: "65ch" }, children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
3073
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_themes7.Box, { mt: "1", style: { maxWidth: "65ch" }, children: /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
3051
3074
  Typo,
3052
3075
  {
3053
3076
  as: "p",
@@ -3074,10 +3097,58 @@ var import_react_table2 = require("@tanstack/react-table");
3074
3097
  var import_react42 = require("react");
3075
3098
  var import_themes53 = require("@radix-ui/themes");
3076
3099
 
3100
+ // src/molecules/empty-state.tsx
3101
+ var import_jsx_runtime66 = require("react/jsx-runtime");
3102
+ var ICON_SIZE = {
3103
+ illustration: 120,
3104
+ compact: 56
3105
+ };
3106
+ function EmptyState(_a) {
3107
+ var _b = _a, {
3108
+ size = "illustration",
3109
+ heading,
3110
+ body,
3111
+ icon
3112
+ } = _b, flexProps = __objRest(_b, [
3113
+ "size",
3114
+ "heading",
3115
+ "body",
3116
+ "icon"
3117
+ ]);
3118
+ const isCompact = size === "compact";
3119
+ const iconSize = ICON_SIZE[size];
3120
+ return /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)(
3121
+ import_themes23.Flex,
3122
+ __spreadProps(__spreadValues({
3123
+ align: "center",
3124
+ direction: "column",
3125
+ gap: isCompact ? "2" : "3",
3126
+ justify: "center",
3127
+ py: isCompact ? "5" : "9",
3128
+ width: "100%"
3129
+ }, flexProps), {
3130
+ children: [
3131
+ icon != null ? icon : /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
3132
+ EmptyBoxIcon,
3133
+ {
3134
+ color: "var(--gray-8)",
3135
+ height: iconSize,
3136
+ width: iconSize
3137
+ }
3138
+ ),
3139
+ heading || body ? /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)(import_themes23.Flex, { align: "center", direction: "column", gap: "1", children: [
3140
+ 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,
3141
+ body ? /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(Typo, { color: "gray", variant: isCompact ? "caption" : "body", children: body }) : null
3142
+ ] }) : null
3143
+ ]
3144
+ })
3145
+ );
3146
+ }
3147
+
3077
3148
  // src/molecules/expand-table/row.tsx
3078
3149
  var import_react_table = require("@tanstack/react-table");
3079
3150
  var import_react41 = require("react");
3080
- var import_jsx_runtime65 = require("react/jsx-runtime");
3151
+ var import_jsx_runtime67 = require("react/jsx-runtime");
3081
3152
  function Row(props) {
3082
3153
  const { row, ExpandComp, gridTemplateColumns, getRowStyle, getCellStyle } = props;
3083
3154
  const [open, setOpen] = (0, import_react41.useState)(false);
@@ -3096,8 +3167,8 @@ function Row(props) {
3096
3167
  }
3097
3168
  return baseCls.join(" ");
3098
3169
  }, [ExpandComp, props.onRowClick]);
3099
- return /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: rowClassName, children: [
3100
- /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
3170
+ return /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("div", { className: rowClassName, children: [
3171
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
3101
3172
  "button",
3102
3173
  {
3103
3174
  className: "tr",
@@ -3110,7 +3181,7 @@ function Row(props) {
3110
3181
  var _a, _b, _c;
3111
3182
  const autoSize = (_a = cell.column.columnDef.meta) == null ? void 0 : _a.autoSize;
3112
3183
  const justifyContent = ((_b = cell.column.columnDef.meta) == null ? void 0 : _b.align) || props.defaultAlign;
3113
- return /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)(
3184
+ return /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(
3114
3185
  "div",
3115
3186
  {
3116
3187
  className: "td",
@@ -3121,7 +3192,7 @@ function Row(props) {
3121
3192
  }, (getCellStyle == null ? void 0 : getCellStyle(row.original)) || {}),
3122
3193
  children: [
3123
3194
  (0, import_react_table.flexRender)(cell.column.columnDef.cell, cell.getContext()),
3124
- ((_c = cell.column.columnDef.meta) == null ? void 0 : _c.OpenBtn) ? /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
3195
+ ((_c = cell.column.columnDef.meta) == null ? void 0 : _c.OpenBtn) ? /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
3125
3196
  cell.column.columnDef.meta.OpenBtn,
3126
3197
  {
3127
3198
  data: row.original,
@@ -3137,12 +3208,12 @@ function Row(props) {
3137
3208
  },
3138
3209
  `tr_${row.id}`
3139
3210
  ),
3140
- 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
3211
+ 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
3141
3212
  ] }, `tr-wrapper_${row.id}`);
3142
3213
  }
3143
3214
 
3144
3215
  // src/molecules/expand-table/index.tsx
3145
- var import_jsx_runtime66 = require("react/jsx-runtime");
3216
+ var import_jsx_runtime68 = require("react/jsx-runtime");
3146
3217
  var sortButtonColorMapper = {
3147
3218
  card: {
3148
3219
  selected: "var(--iris-10)",
@@ -3202,7 +3273,10 @@ function ExpandTable(props) {
3202
3273
  },
3203
3274
  onSortingChange: setSorting,
3204
3275
  getPaginationRowModel: (0, import_react_table2.getPaginationRowModel)(),
3205
- onPaginationChange: setPagination
3276
+ onPaginationChange: setPagination,
3277
+ // data 참조가 바뀔 때(예: 목록 refetch) tanstack이 pageIndex를 0으로
3278
+ // 자동 리셋하지 않도록 끈다. 행 수정 저장 후에도 보던 페이지를 유지하기 위함.
3279
+ autoResetPageIndex: false
3206
3280
  });
3207
3281
  const gridTemplateColumns = (0, import_react42.useMemo)(() => {
3208
3282
  return columns.map((col) => {
@@ -3223,7 +3297,7 @@ function ExpandTable(props) {
3223
3297
  const helpCompRender = (0, import_react42.useCallback)(
3224
3298
  (rowLength) => {
3225
3299
  if (isLoading) {
3226
- return /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
3300
+ return /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
3227
3301
  import_themes23.Flex,
3228
3302
  {
3229
3303
  align: "center",
@@ -3231,12 +3305,12 @@ function ExpandTable(props) {
3231
3305
  justify: "center",
3232
3306
  p: "5",
3233
3307
  width: "100%",
3234
- children: /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(import_themes50.Spinner, {})
3308
+ children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(import_themes50.Spinner, {})
3235
3309
  }
3236
3310
  );
3237
3311
  }
3238
3312
  if (rowLength === 0) {
3239
- 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");
3313
+ 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");
3240
3314
  }
3241
3315
  return null;
3242
3316
  },
@@ -3246,9 +3320,9 @@ function ExpandTable(props) {
3246
3320
  if (!data) return 0;
3247
3321
  return Math.ceil(data.length / pageSize);
3248
3322
  }, [data, pageSize]);
3249
- return /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)("div", { className: `expand-table-wrapper ${variant}${slim ? " slim" : ""}`, children: [
3250
- /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)("div", { className: "expand-table", style: tableStyle, children: [
3251
- /* @__PURE__ */ (0, import_jsx_runtime66.jsx)("div", { className: "thead", children: getHeaderGroups().map((headerGroup) => /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
3323
+ return /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)("div", { className: `expand-table-wrapper ${variant}${slim ? " slim" : ""}`, children: [
3324
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)("div", { className: "expand-table", style: tableStyle, children: [
3325
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("div", { className: "thead", children: getHeaderGroups().map((headerGroup) => /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
3252
3326
  "div",
3253
3327
  {
3254
3328
  className: "tr",
@@ -3259,36 +3333,36 @@ function ExpandTable(props) {
3259
3333
  const sortedState = header.column.getIsSorted();
3260
3334
  const justifyContent = ((_a = header.column.columnDef.meta) == null ? void 0 : _a.align) || defaultAlign;
3261
3335
  if (sortable) {
3262
- return /* @__PURE__ */ (0, import_jsx_runtime66.jsx)("div", { className: `${justifyContent} th`, children: /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)(
3336
+ return /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("div", { className: `${justifyContent} th`, children: /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)(
3263
3337
  "button",
3264
3338
  {
3265
3339
  onClick: header.column.getToggleSortingHandler(),
3266
3340
  style: { cursor: "pointer" },
3267
3341
  type: "button",
3268
3342
  children: [
3269
- /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(Typo, { as: "div", variant: "body", children: (0, import_react_table2.flexRender)(
3343
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(Typo, { as: "div", variant: "body", children: (0, import_react_table2.flexRender)(
3270
3344
  header.column.columnDef.header,
3271
3345
  header.getContext()
3272
3346
  ) }),
3273
- /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)(
3347
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)(
3274
3348
  import_themes23.Flex,
3275
3349
  {
3276
3350
  direction: "column",
3277
3351
  style: { marginLeft: "var(--space-2)" },
3278
3352
  children: [
3279
- sortedState === false && /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
3353
+ sortedState === false && /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
3280
3354
  TriangleArrowDownIcon,
3281
3355
  {
3282
3356
  color: sortButtonColorMapper[variant].unselected
3283
3357
  }
3284
3358
  ),
3285
- sortedState === "asc" && /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
3359
+ sortedState === "asc" && /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
3286
3360
  TriangleArrowUpIcon,
3287
3361
  {
3288
3362
  color: sortButtonColorMapper[variant].selected
3289
3363
  }
3290
3364
  ),
3291
- sortedState === "desc" && /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
3365
+ sortedState === "desc" && /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
3292
3366
  TriangleArrowDownIcon,
3293
3367
  {
3294
3368
  color: sortButtonColorMapper[variant].selected
@@ -3301,7 +3375,7 @@ function ExpandTable(props) {
3301
3375
  }
3302
3376
  ) }, header.id);
3303
3377
  }
3304
- 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)(
3378
+ 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)(
3305
3379
  header.column.columnDef.header,
3306
3380
  header.getContext()
3307
3381
  ) }) }, header.id);
@@ -3309,8 +3383,8 @@ function ExpandTable(props) {
3309
3383
  },
3310
3384
  headerGroup.id
3311
3385
  )) }),
3312
- /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(import_themes53.ScrollArea, { className: "tbody", children: helpCompRender(rowModels.rows.length) || rowModels.rows.map((row) => {
3313
- return /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
3386
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(import_themes53.ScrollArea, { className: "tbody", children: helpCompRender(rowModels.rows.length) || rowModels.rows.map((row) => {
3387
+ return /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
3314
3388
  Row,
3315
3389
  {
3316
3390
  ExpandComp,
@@ -3325,7 +3399,7 @@ function ExpandTable(props) {
3325
3399
  );
3326
3400
  }) })
3327
3401
  ] }),
3328
- showPagination ? /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(import_themes23.Flex, { justify: "end", pt: "4", width: "100%", children: /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
3402
+ showPagination ? /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(import_themes23.Flex, { justify: "end", pt: "4", width: "100%", children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
3329
3403
  Pagination,
3330
3404
  {
3331
3405
  count: pageCount,
@@ -3338,13 +3412,13 @@ function ExpandTable(props) {
3338
3412
  }
3339
3413
 
3340
3414
  // src/molecules/navigation.tsx
3341
- var import_jsx_runtime67 = require("react/jsx-runtime");
3415
+ var import_jsx_runtime69 = require("react/jsx-runtime");
3342
3416
 
3343
3417
  // src/molecules/date-picker/index.tsx
3344
3418
  var import_react43 = require("react");
3345
3419
  var import_react_datepicker = __toESM(require("react-datepicker"), 1);
3346
3420
  var import_locale = require("date-fns/locale");
3347
- var import_jsx_runtime68 = require("react/jsx-runtime");
3421
+ var import_jsx_runtime70 = require("react/jsx-runtime");
3348
3422
  var DatePicker = (0, import_react43.forwardRef)(
3349
3423
  (props, ref) => {
3350
3424
  const _a = props, { fullWidth } = _a, rest = __objRest(_a, ["fullWidth"]);
@@ -3375,7 +3449,7 @@ var DatePicker = (0, import_react43.forwardRef)(
3375
3449
  setIsMonthDropdownOpen
3376
3450
  }));
3377
3451
  }, [isMonthDropdownOpen, isYearDropdownOpen, props]);
3378
- return /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(import_themes23.Flex, { p: "0", width: "100%", children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
3452
+ return /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(import_themes23.Flex, { p: "0", width: "100%", children: /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
3379
3453
  import_react_datepicker.default,
3380
3454
  __spreadProps(__spreadValues({
3381
3455
  dateFormat: "yyyy/MM/dd h:mm aa",
@@ -3423,19 +3497,19 @@ function DropdownSelector({
3423
3497
  });
3424
3498
  }
3425
3499
  }, [isOpen]);
3426
- return /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)(Popover.Root, { modal: true, onOpenChange, open: isOpen, children: [
3427
- /* @__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: [
3500
+ return /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(Popover.Root, { modal: true, onOpenChange, open: isOpen, children: [
3501
+ /* @__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: [
3428
3502
  selectedValue,
3429
3503
  suffix
3430
3504
  ] }) }) }),
3431
- /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(Popover.Content, { side: "bottom", children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
3505
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(Popover.Content, { side: "bottom", children: /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
3432
3506
  import_themes7.Box,
3433
3507
  {
3434
3508
  maxHeight: "200px",
3435
3509
  overflowY: "auto",
3436
3510
  ref: scrollContainerRef,
3437
3511
  style: { scrollbarWidth: "none" },
3438
- children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(import_themes23.Flex, { direction: "column", gap: "1", children: options.map((item) => /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
3512
+ children: /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(import_themes23.Flex, { direction: "column", gap: "1", children: options.map((item) => /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
3439
3513
  Button,
3440
3514
  {
3441
3515
  className: "react-datepicker_dropdown_item",
@@ -3449,7 +3523,7 @@ function DropdownSelector({
3449
3523
  e.preventDefault();
3450
3524
  },
3451
3525
  variant: "transparent",
3452
- children: /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)(Typo, { weight: item === selectedValue ? "bold" : void 0, children: [
3526
+ children: /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(Typo, { weight: item === selectedValue ? "bold" : void 0, children: [
3453
3527
  item,
3454
3528
  suffix
3455
3529
  ] })
@@ -3480,8 +3554,8 @@ var getRenderCustomHeader = (props) => {
3480
3554
  } = props;
3481
3555
  const year = date ? new Date(date).getFullYear() : "-";
3482
3556
  const month = date ? new Date(date).getMonth() + 1 : "-";
3483
- return /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)(import_themes23.Flex, { align: "center", justify: "between", pl: "2", pr: "2", children: [
3484
- /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
3557
+ return /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(import_themes23.Flex, { align: "center", justify: "between", pl: "2", pr: "2", children: [
3558
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
3485
3559
  IconButton,
3486
3560
  {
3487
3561
  className: "react-datepicker_dropdown_header",
@@ -3489,11 +3563,11 @@ var getRenderCustomHeader = (props) => {
3489
3563
  onClick: decreaseMonth,
3490
3564
  type: "button",
3491
3565
  variant: "ghost",
3492
- children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(import_react_icons2.ChevronLeftIcon, {})
3566
+ children: /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(import_react_icons2.ChevronLeftIcon, {})
3493
3567
  }
3494
3568
  ),
3495
- /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)(import_themes23.Flex, { gap: "3", children: [
3496
- /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
3569
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(import_themes23.Flex, { gap: "3", children: [
3570
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
3497
3571
  DropdownSelector,
3498
3572
  {
3499
3573
  isOpen: isYearDropdownOpen,
@@ -3507,7 +3581,7 @@ var getRenderCustomHeader = (props) => {
3507
3581
  suffix: "\uB144"
3508
3582
  }
3509
3583
  ),
3510
- /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
3584
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
3511
3585
  DropdownSelector,
3512
3586
  {
3513
3587
  isOpen: isMonthDropdownOpen,
@@ -3522,7 +3596,7 @@ var getRenderCustomHeader = (props) => {
3522
3596
  }
3523
3597
  )
3524
3598
  ] }),
3525
- /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
3599
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
3526
3600
  IconButton,
3527
3601
  {
3528
3602
  className: "react-datepicker_dropdown_header",
@@ -3530,7 +3604,7 @@ var getRenderCustomHeader = (props) => {
3530
3604
  onClick: increaseMonth,
3531
3605
  type: "button",
3532
3606
  variant: "ghost",
3533
- children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(import_react_icons2.ChevronRightIcon, {})
3607
+ children: /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(import_react_icons2.ChevronRightIcon, {})
3534
3608
  }
3535
3609
  )
3536
3610
  ] });
@@ -3541,12 +3615,12 @@ var getRenderCustomHeader = (props) => {
3541
3615
  // src/molecules/dot-navigation.tsx
3542
3616
  var import_react44 = require("react");
3543
3617
  var import_react_icons3 = require("@radix-ui/react-icons");
3544
- var import_jsx_runtime69 = require("react/jsx-runtime");
3618
+ var import_jsx_runtime71 = require("react/jsx-runtime");
3545
3619
 
3546
3620
  // src/molecules/stepper.tsx
3547
3621
  var import_react45 = require("react");
3548
3622
  var import_themes54 = require("@radix-ui/themes");
3549
- var import_jsx_runtime70 = require("react/jsx-runtime");
3623
+ var import_jsx_runtime72 = require("react/jsx-runtime");
3550
3624
  var StepContext = (0, import_react45.createContext)({
3551
3625
  active: false,
3552
3626
  completed: false,
@@ -3556,20 +3630,20 @@ var StepContext = (0, import_react45.createContext)({
3556
3630
  // src/molecules/tag-selector.tsx
3557
3631
  var import_react46 = require("react");
3558
3632
  var import_react_icons4 = require("@radix-ui/react-icons");
3559
- var import_jsx_runtime71 = require("react/jsx-runtime");
3633
+ var import_jsx_runtime73 = require("react/jsx-runtime");
3560
3634
 
3561
3635
  // src/molecules/learning-post.tsx
3562
- var import_jsx_runtime72 = require("react/jsx-runtime");
3636
+ var import_jsx_runtime74 = require("react/jsx-runtime");
3563
3637
 
3564
3638
  // src/molecules/force-refresh.tsx
3565
3639
  var import_react_icons5 = require("@radix-ui/react-icons");
3566
- var import_jsx_runtime73 = require("react/jsx-runtime");
3640
+ var import_jsx_runtime75 = require("react/jsx-runtime");
3567
3641
 
3568
3642
  // src/molecules/date-picker/date-picker-button.tsx
3569
3643
  var import_react47 = require("react");
3570
3644
  var import_date_fns2 = require("date-fns");
3571
3645
  var import_clsx29 = require("clsx");
3572
- var import_jsx_runtime74 = require("react/jsx-runtime");
3646
+ var import_jsx_runtime76 = require("react/jsx-runtime");
3573
3647
 
3574
3648
  // src/molecules/time-select.tsx
3575
3649
  var import_react48 = require("react");
@@ -3596,34 +3670,34 @@ for (const opt of AI_CALLOUT_ICON_OPTIONS) {
3596
3670
  }
3597
3671
 
3598
3672
  // src/molecules/time-select.tsx
3599
- var import_jsx_runtime75 = require("react/jsx-runtime");
3673
+ var import_jsx_runtime77 = require("react/jsx-runtime");
3600
3674
 
3601
3675
  // src/molecules/radio-button-card.tsx
3602
3676
  var import_react49 = require("react");
3603
- var import_jsx_runtime76 = require("react/jsx-runtime");
3677
+ var import_jsx_runtime78 = require("react/jsx-runtime");
3604
3678
  var RadioCardContext = (0, import_react49.createContext)({});
3605
3679
 
3606
3680
  // src/molecules/download-card.tsx
3607
3681
  var import_react_icons6 = require("@radix-ui/react-icons");
3608
- var import_jsx_runtime77 = require("react/jsx-runtime");
3682
+ var import_jsx_runtime79 = require("react/jsx-runtime");
3609
3683
 
3610
3684
  // src/molecules/ghost-post.tsx
3611
- var import_jsx_runtime78 = require("react/jsx-runtime");
3685
+ var import_jsx_runtime80 = require("react/jsx-runtime");
3612
3686
 
3613
3687
  // src/molecules/curriculumV2/curriculum-context.tsx
3614
3688
  var import_react50 = require("react");
3615
- var import_jsx_runtime79 = require("react/jsx-runtime");
3689
+ var import_jsx_runtime81 = require("react/jsx-runtime");
3616
3690
  var CurriculumContext = (0, import_react50.createContext)(
3617
3691
  void 0
3618
3692
  );
3619
3693
 
3620
3694
  // src/molecules/curriculumV2/curriculum-sub-nav.tsx
3621
3695
  var import_react51 = require("react");
3622
- var import_jsx_runtime80 = require("react/jsx-runtime");
3696
+ var import_jsx_runtime82 = require("react/jsx-runtime");
3623
3697
 
3624
3698
  // src/molecules/curriculumV2/CurriculumContents/curriculum-video.tsx
3625
3699
  var import_react52 = require("react");
3626
- var import_jsx_runtime81 = require("react/jsx-runtime");
3700
+ var import_jsx_runtime83 = require("react/jsx-runtime");
3627
3701
 
3628
3702
  // src/molecules/curriculumV2/CurriculumContents/curriculum-review.tsx
3629
3703
  var import_react55 = require("react");
@@ -3634,88 +3708,88 @@ var import_react53 = require("react");
3634
3708
  var import_formik = require("formik");
3635
3709
  var import_lodash_es = require("lodash-es");
3636
3710
  var Yup = __toESM(require("yup"), 1);
3637
- var import_jsx_runtime82 = require("react/jsx-runtime");
3711
+ var import_jsx_runtime84 = require("react/jsx-runtime");
3638
3712
  var CurriculumReviewContext = (0, import_react53.createContext)(void 0);
3639
3713
 
3640
3714
  // src/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/start-review.tsx
3641
- var import_jsx_runtime83 = require("react/jsx-runtime");
3715
+ var import_jsx_runtime85 = require("react/jsx-runtime");
3642
3716
 
3643
3717
  // src/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/complete-review.tsx
3644
- var import_jsx_runtime84 = require("react/jsx-runtime");
3718
+ var import_jsx_runtime86 = require("react/jsx-runtime");
3645
3719
 
3646
3720
  // src/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-layout.tsx
3647
- var import_jsx_runtime85 = require("react/jsx-runtime");
3721
+ var import_jsx_runtime87 = require("react/jsx-runtime");
3648
3722
 
3649
3723
  // src/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-header.tsx
3650
- var import_jsx_runtime86 = require("react/jsx-runtime");
3724
+ var import_jsx_runtime88 = require("react/jsx-runtime");
3651
3725
 
3652
3726
  // src/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-footer.tsx
3653
- var import_jsx_runtime87 = require("react/jsx-runtime");
3727
+ var import_jsx_runtime89 = require("react/jsx-runtime");
3654
3728
 
3655
3729
  // src/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-radio.tsx
3656
3730
  var import_react54 = require("react");
3657
3731
 
3658
3732
  // src/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-comp.tsx
3659
- var import_jsx_runtime88 = require("react/jsx-runtime");
3733
+ var import_jsx_runtime90 = require("react/jsx-runtime");
3660
3734
 
3661
3735
  // src/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-radio.tsx
3662
- var import_jsx_runtime89 = require("react/jsx-runtime");
3736
+ var import_jsx_runtime91 = require("react/jsx-runtime");
3663
3737
 
3664
3738
  // src/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-text.tsx
3665
- var import_jsx_runtime90 = require("react/jsx-runtime");
3739
+ var import_jsx_runtime92 = require("react/jsx-runtime");
3666
3740
 
3667
3741
  // src/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-satisfaction-option.tsx
3668
- var import_jsx_runtime91 = require("react/jsx-runtime");
3742
+ var import_jsx_runtime93 = require("react/jsx-runtime");
3669
3743
 
3670
3744
  // src/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-satisfaction-text.tsx
3671
- var import_jsx_runtime92 = require("react/jsx-runtime");
3745
+ var import_jsx_runtime94 = require("react/jsx-runtime");
3672
3746
 
3673
3747
  // src/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-body.tsx
3674
- var import_jsx_runtime93 = require("react/jsx-runtime");
3748
+ var import_jsx_runtime95 = require("react/jsx-runtime");
3675
3749
 
3676
3750
  // src/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/index.tsx
3677
- var import_jsx_runtime94 = require("react/jsx-runtime");
3751
+ var import_jsx_runtime96 = require("react/jsx-runtime");
3678
3752
 
3679
3753
  // src/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/index.tsx
3680
- var import_jsx_runtime95 = require("react/jsx-runtime");
3754
+ var import_jsx_runtime97 = require("react/jsx-runtime");
3681
3755
 
3682
3756
  // src/molecules/curriculumV2/CurriculumContents/curriculum-review.tsx
3683
- var import_jsx_runtime96 = require("react/jsx-runtime");
3757
+ var import_jsx_runtime98 = require("react/jsx-runtime");
3684
3758
 
3685
3759
  // src/molecules/curriculumV2/CurriculumContents/curriculum-ai-traning.tsx
3686
3760
  var import_react56 = require("react");
3687
- var import_jsx_runtime97 = require("react/jsx-runtime");
3761
+ var import_jsx_runtime99 = require("react/jsx-runtime");
3688
3762
 
3689
3763
  // src/molecules/curriculumV2/CurriculumContents/curriculum-file-download.tsx
3690
3764
  var import_react57 = require("react");
3691
- var import_jsx_runtime98 = require("react/jsx-runtime");
3765
+ var import_jsx_runtime100 = require("react/jsx-runtime");
3692
3766
 
3693
3767
  // src/molecules/curriculumV2/CurriculumContents/index.tsx
3694
- var import_jsx_runtime99 = require("react/jsx-runtime");
3768
+ var import_jsx_runtime101 = require("react/jsx-runtime");
3695
3769
 
3696
3770
  // src/molecules/curriculumV2/CurriculumSidebar/index.tsx
3697
3771
  var import_react58 = require("react");
3698
3772
 
3699
3773
  // src/molecules/curriculumV2/CurriculumSidebar/Items/section-title.tsx
3700
- var import_jsx_runtime100 = require("react/jsx-runtime");
3774
+ var import_jsx_runtime102 = require("react/jsx-runtime");
3701
3775
 
3702
3776
  // src/molecules/curriculumV2/CurriculumSidebar/Items/curriculum-sidebar-item-wrapper.tsx
3703
- var import_jsx_runtime101 = require("react/jsx-runtime");
3777
+ var import_jsx_runtime103 = require("react/jsx-runtime");
3704
3778
 
3705
3779
  // src/molecules/curriculumV2/CurriculumSidebar/Items/curriculum-item-title.tsx
3706
- var import_jsx_runtime102 = require("react/jsx-runtime");
3780
+ var import_jsx_runtime104 = require("react/jsx-runtime");
3707
3781
 
3708
3782
  // src/molecules/curriculumV2/CurriculumSidebar/Items/section-item.tsx
3709
- var import_jsx_runtime103 = require("react/jsx-runtime");
3783
+ var import_jsx_runtime105 = require("react/jsx-runtime");
3710
3784
 
3711
3785
  // src/molecules/curriculumV2/CurriculumSidebar/sidebar-item.tsx
3712
- var import_jsx_runtime104 = require("react/jsx-runtime");
3786
+ var import_jsx_runtime106 = require("react/jsx-runtime");
3713
3787
 
3714
3788
  // src/molecules/curriculumV2/CurriculumSidebar/index.tsx
3715
- var import_jsx_runtime105 = require("react/jsx-runtime");
3789
+ var import_jsx_runtime107 = require("react/jsx-runtime");
3716
3790
 
3717
3791
  // src/molecules/curriculumV2/curriculum-v2-layout.tsx
3718
- var import_jsx_runtime106 = require("react/jsx-runtime");
3792
+ var import_jsx_runtime108 = require("react/jsx-runtime");
3719
3793
 
3720
3794
  // src/molecules/dynamic-form.tsx
3721
3795
  var import_react60 = require("react");
@@ -3725,26 +3799,26 @@ var import_themes55 = require("@radix-ui/themes");
3725
3799
 
3726
3800
  // src/context/dynamic-form-context.tsx
3727
3801
  var import_react59 = require("react");
3728
- var import_jsx_runtime107 = require("react/jsx-runtime");
3802
+ var import_jsx_runtime109 = require("react/jsx-runtime");
3729
3803
  var DynamicFormContext = (0, import_react59.createContext)(null);
3730
3804
 
3731
3805
  // src/molecules/dynamic-field.tsx
3732
- var import_jsx_runtime108 = require("react/jsx-runtime");
3806
+ var import_jsx_runtime110 = require("react/jsx-runtime");
3733
3807
 
3734
3808
  // src/molecules/dynamic-form.tsx
3735
- var import_jsx_runtime109 = require("react/jsx-runtime");
3809
+ var import_jsx_runtime111 = require("react/jsx-runtime");
3736
3810
 
3737
3811
  // src/molecules/one-on-one-guide-list.tsx
3738
3812
  var import_react61 = require("react");
3739
- var import_jsx_runtime110 = require("react/jsx-runtime");
3813
+ var import_jsx_runtime112 = require("react/jsx-runtime");
3740
3814
 
3741
3815
  // src/molecules/description-json-render.tsx
3742
- var import_jsx_runtime111 = require("react/jsx-runtime");
3816
+ var import_jsx_runtime113 = require("react/jsx-runtime");
3743
3817
 
3744
3818
  // src/molecules/training-info-guideline.tsx
3745
3819
  var import_react62 = require("react");
3746
3820
  var import_react_icons8 = require("@radix-ui/react-icons");
3747
- var import_jsx_runtime112 = require("react/jsx-runtime");
3821
+ var import_jsx_runtime114 = require("react/jsx-runtime");
3748
3822
 
3749
3823
  // src/molecules/dynamic-form-editor.tsx
3750
3824
  var import_react65 = require("react");
@@ -3752,26 +3826,26 @@ var import_react65 = require("react");
3752
3826
  // src/molecules/dynamic-form-editor-field-editor-panel.tsx
3753
3827
  var import_react63 = require("react");
3754
3828
  var import_themes56 = require("@radix-ui/themes");
3755
- var import_jsx_runtime113 = require("react/jsx-runtime");
3829
+ var import_jsx_runtime115 = require("react/jsx-runtime");
3756
3830
 
3757
3831
  // src/molecules/dynamic-form-editor-field-list-panel.tsx
3758
3832
  var import_react64 = require("react");
3759
3833
  var import_themes57 = require("@radix-ui/themes");
3760
- var import_jsx_runtime114 = require("react/jsx-runtime");
3834
+ var import_jsx_runtime116 = require("react/jsx-runtime");
3761
3835
 
3762
3836
  // src/molecules/dynamic-form-editor-issues-panel.tsx
3763
- var import_jsx_runtime115 = require("react/jsx-runtime");
3837
+ var import_jsx_runtime117 = require("react/jsx-runtime");
3764
3838
 
3765
3839
  // src/molecules/dynamic-form-editor-preview-panel.tsx
3766
- var import_jsx_runtime116 = require("react/jsx-runtime");
3840
+ var import_jsx_runtime118 = require("react/jsx-runtime");
3767
3841
 
3768
3842
  // src/molecules/dynamic-form-editor.tsx
3769
- var import_jsx_runtime117 = require("react/jsx-runtime");
3843
+ var import_jsx_runtime119 = require("react/jsx-runtime");
3770
3844
 
3771
3845
  // src/molecules/autocomplete-textfield.tsx
3772
3846
  var import_react66 = require("react");
3773
3847
  var import_themes58 = require("@radix-ui/themes");
3774
- var import_jsx_runtime118 = require("react/jsx-runtime");
3848
+ var import_jsx_runtime120 = require("react/jsx-runtime");
3775
3849
  var AutocompleteTextfield = (0, import_react66.forwardRef)(
3776
3850
  (_a, ref) => {
3777
3851
  var _b = _a, {
@@ -3897,8 +3971,8 @@ var AutocompleteTextfield = (0, import_react66.forwardRef)(
3897
3971
  const item = listRef.current.children[highlightedIndex];
3898
3972
  item.scrollIntoView({ block: "nearest" });
3899
3973
  }, [highlightedIndex]);
3900
- return /* @__PURE__ */ (0, import_jsx_runtime118.jsxs)(import_themes58.Box, { position: "relative", style: { width: "100%" }, children: [
3901
- /* @__PURE__ */ (0, import_jsx_runtime118.jsxs)(
3974
+ return /* @__PURE__ */ (0, import_jsx_runtime120.jsxs)(import_themes58.Box, { position: "relative", style: { width: "100%" }, children: [
3975
+ /* @__PURE__ */ (0, import_jsx_runtime120.jsxs)(
3902
3976
  TextField.Root,
3903
3977
  __spreadProps(__spreadValues({
3904
3978
  "aria-activedescendant": open && highlightedIndex >= 0 ? `${listboxId}-option-${highlightedIndex}` : void 0,
@@ -3924,12 +3998,12 @@ var AutocompleteTextfield = (0, import_react66.forwardRef)(
3924
3998
  value: inputValue
3925
3999
  }, rest), {
3926
4000
  children: [
3927
- slotLeft && /* @__PURE__ */ (0, import_jsx_runtime118.jsx)(TextField.Slot, { side: "left", children: slotLeft }),
3928
- slotRight && /* @__PURE__ */ (0, import_jsx_runtime118.jsx)(TextField.Slot, { side: "right", children: slotRight })
4001
+ slotLeft && /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(TextField.Slot, { side: "left", children: slotLeft }),
4002
+ slotRight && /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(TextField.Slot, { side: "right", children: slotRight })
3929
4003
  ]
3930
4004
  })
3931
4005
  ),
3932
- /* @__PURE__ */ (0, import_jsx_runtime118.jsxs)(
4006
+ /* @__PURE__ */ (0, import_jsx_runtime120.jsxs)(
3933
4007
  DropdownMenu.Root,
3934
4008
  {
3935
4009
  modal: false,
@@ -3941,7 +4015,7 @@ var AutocompleteTextfield = (0, import_react66.forwardRef)(
3941
4015
  },
3942
4016
  open,
3943
4017
  children: [
3944
- /* @__PURE__ */ (0, import_jsx_runtime118.jsx)(DropdownMenu.Trigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime118.jsx)(
4018
+ /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(DropdownMenu.Trigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(
3945
4019
  "span",
3946
4020
  {
3947
4021
  "aria-hidden": "true",
@@ -3956,7 +4030,7 @@ var AutocompleteTextfield = (0, import_react66.forwardRef)(
3956
4030
  }
3957
4031
  }
3958
4032
  ) }),
3959
- /* @__PURE__ */ (0, import_jsx_runtime118.jsx)(
4033
+ /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(
3960
4034
  DropdownMenu.Content,
3961
4035
  {
3962
4036
  align: "start",
@@ -3973,7 +4047,7 @@ var AutocompleteTextfield = (0, import_react66.forwardRef)(
3973
4047
  padding: 0,
3974
4048
  width: "var(--radix-dropdown-menu-trigger-width)"
3975
4049
  },
3976
- 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)(
4050
+ 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)(
3977
4051
  "ul",
3978
4052
  {
3979
4053
  id: listboxId,
@@ -3982,7 +4056,7 @@ var AutocompleteTextfield = (0, import_react66.forwardRef)(
3982
4056
  style: { listStyle: "none", margin: 0, padding: 0 },
3983
4057
  children: filtered.map((option, index) => {
3984
4058
  const isHighlighted = index === highlightedIndex;
3985
- return /* @__PURE__ */ (0, import_jsx_runtime118.jsx)(
4059
+ return /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(
3986
4060
  "li",
3987
4061
  {
3988
4062
  "aria-selected": isHighlighted,
@@ -4001,7 +4075,7 @@ var AutocompleteTextfield = (0, import_react66.forwardRef)(
4001
4075
  backgroundColor: isHighlighted ? "var(--accent-3)" : "transparent",
4002
4076
  transition: "background-color 80ms"
4003
4077
  },
4004
- children: /* @__PURE__ */ (0, import_jsx_runtime118.jsx)(Typo, { variant: "body", children: option.label })
4078
+ children: /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(Typo, { variant: "body", children: option.label })
4005
4079
  },
4006
4080
  option.value
4007
4081
  );
@@ -4028,7 +4102,7 @@ var import_renderers = require("echarts/renderers");
4028
4102
  var import_components = require("echarts/components");
4029
4103
 
4030
4104
  // src/charts/horizontal-bar-chart.tsx
4031
- var import_jsx_runtime119 = require("react/jsx-runtime");
4105
+ var import_jsx_runtime121 = require("react/jsx-runtime");
4032
4106
 
4033
4107
  // src/charts/chart-theme.json
4034
4108
  var chart_theme_default = {
@@ -4179,7 +4253,7 @@ var EchartDefaultProps = {
4179
4253
  };
4180
4254
 
4181
4255
  // src/app/roleplay/chart/session-chart.tsx
4182
- var import_jsx_runtime120 = require("react/jsx-runtime");
4256
+ var import_jsx_runtime122 = require("react/jsx-runtime");
4183
4257
  function unwrapDefault(mod) {
4184
4258
  let current = mod;
4185
4259
  while (current !== null && typeof current === "object" && "default" in current) {
@@ -4239,7 +4313,7 @@ function Chart(_a) {
4239
4313
  };
4240
4314
  return deepMerge(baseOption, optionProp);
4241
4315
  }, [optionProp]);
4242
- return /* @__PURE__ */ (0, import_jsx_runtime120.jsx)("div", { ref, style: { width: "100%", height: "100%" }, children: mounted ? /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(
4316
+ return /* @__PURE__ */ (0, import_jsx_runtime122.jsx)("div", { ref, style: { width: "100%", height: "100%" }, children: mounted ? /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(
4243
4317
  ReactEChartsCore,
4244
4318
  __spreadProps(__spreadValues(__spreadProps(__spreadValues({}, EchartDefaultProps), {
4245
4319
  echarts,
@@ -4288,7 +4362,7 @@ function useTokenColors(vars) {
4288
4362
  }
4289
4363
  setResolved(next);
4290
4364
  }, [key]);
4291
- const probe = /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(
4365
+ const probe = /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(
4292
4366
  "span",
4293
4367
  {
4294
4368
  "aria-hidden": true,
@@ -4300,7 +4374,7 @@ function useTokenColors(vars) {
4300
4374
  }
4301
4375
 
4302
4376
  // src/app/roleplay/parts/score-trend-section.tsx
4303
- var import_jsx_runtime121 = require("react/jsx-runtime");
4377
+ var import_jsx_runtime123 = require("react/jsx-runtime");
4304
4378
  function formatDateOnly(iso) {
4305
4379
  const d = new Date(iso);
4306
4380
  if (Number.isNaN(d.getTime())) return iso;
@@ -4311,9 +4385,9 @@ function Section4({
4311
4385
  desc,
4312
4386
  children
4313
4387
  }) {
4314
- return /* @__PURE__ */ (0, import_jsx_runtime121.jsxs)("section", { children: [
4315
- /* @__PURE__ */ (0, import_jsx_runtime121.jsxs)(import_themes7.Box, { mb: "3", children: [
4316
- /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(
4388
+ return /* @__PURE__ */ (0, import_jsx_runtime123.jsxs)("section", { children: [
4389
+ /* @__PURE__ */ (0, import_jsx_runtime123.jsxs)(import_themes7.Box, { mb: "3", children: [
4390
+ /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(
4317
4391
  Heading2,
4318
4392
  {
4319
4393
  size: { initial: "4", md: "5" },
@@ -4322,14 +4396,14 @@ function Section4({
4322
4396
  children: title
4323
4397
  }
4324
4398
  ),
4325
- 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
4399
+ 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
4326
4400
  ] }),
4327
4401
  children
4328
4402
  ] });
4329
4403
  }
4330
4404
  function AttemptCell({ row }) {
4331
4405
  const d = row.original;
4332
- return /* @__PURE__ */ (0, import_jsx_runtime121.jsxs)(
4406
+ return /* @__PURE__ */ (0, import_jsx_runtime123.jsxs)(
4333
4407
  Typo,
4334
4408
  {
4335
4409
  as: "span",
@@ -4345,11 +4419,11 @@ function AttemptCell({ row }) {
4345
4419
  );
4346
4420
  }
4347
4421
  function DateCell({ row }) {
4348
- return /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(Typo, { as: "span", mono: true, style: { color: "var(--gray-9)" }, variant: "body", children: formatDateOnly(row.original.createdAt) });
4422
+ return /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(Typo, { as: "span", mono: true, style: { color: "var(--gray-9)" }, variant: "body", children: formatDateOnly(row.original.createdAt) });
4349
4423
  }
4350
4424
  function ScoreCell({ row }) {
4351
4425
  var _a;
4352
- return /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(
4426
+ return /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(
4353
4427
  Typo,
4354
4428
  {
4355
4429
  as: "span",
@@ -4363,9 +4437,9 @@ function ScoreCell({ row }) {
4363
4437
  function DeltaCell({ row }) {
4364
4438
  const { delta } = row.original;
4365
4439
  if (delta === null) {
4366
- return /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(Typo, { as: "span", mono: true, style: { color: "var(--gray-9)" }, variant: "body", children: "\u2014" });
4440
+ return /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(Typo, { as: "span", mono: true, style: { color: "var(--gray-9)" }, variant: "body", children: "\u2014" });
4367
4441
  }
4368
- return /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(Typo, { as: "span", mono: true, style: { color: "var(--gray-9)" }, variant: "body", children: delta > 0 ? `+${delta}` : `${delta}` });
4442
+ return /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(Typo, { as: "span", mono: true, style: { color: "var(--gray-9)" }, variant: "body", children: delta > 0 ? `+${delta}` : `${delta}` });
4369
4443
  }
4370
4444
  function ScoreTrendSection({
4371
4445
  history
@@ -4475,13 +4549,13 @@ function ScoreTrendSection({
4475
4549
  })
4476
4550
  ];
4477
4551
  }, []);
4478
- return /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(
4552
+ return /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(
4479
4553
  Section4,
4480
4554
  {
4481
4555
  desc: `\uB3D9\uC77C \uB864\uD50C\uB808\uC789 \uCD5C\uADFC ${ordered.length}\uD68C\uCC28 \uCD1D\uC810 \uBCC0\uD654`,
4482
4556
  title: "\uCD1D\uC810 \uCD94\uC774",
4483
- children: /* @__PURE__ */ (0, import_jsx_runtime121.jsxs)(import_themes23.Flex, { direction: "column", gap: "4", children: [
4484
- /* @__PURE__ */ (0, import_jsx_runtime121.jsxs)(
4557
+ children: /* @__PURE__ */ (0, import_jsx_runtime123.jsxs)(import_themes23.Flex, { direction: "column", gap: "4", children: [
4558
+ /* @__PURE__ */ (0, import_jsx_runtime123.jsxs)(
4485
4559
  "div",
4486
4560
  {
4487
4561
  "aria-label": "\uCD1D\uC810 \uCD94\uC774 \uB77C\uC778 \uCC28\uD2B8",
@@ -4489,11 +4563,11 @@ function ScoreTrendSection({
4489
4563
  style: { position: "relative", width: "100%", height: 200 },
4490
4564
  children: [
4491
4565
  probe,
4492
- /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(Chart, { option })
4566
+ /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(Chart, { option })
4493
4567
  ]
4494
4568
  }
4495
4569
  ),
4496
- /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(import_themes7.Box, { className: "rp-expand-table", children: /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(
4570
+ /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(import_themes7.Box, { className: "rp-expand-table", children: /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(
4497
4571
  ExpandTable,
4498
4572
  {
4499
4573
  columns,
@@ -4511,33 +4585,33 @@ function ScoreTrendSection({
4511
4585
 
4512
4586
  // src/app/roleplay/parts/section-nav.tsx
4513
4587
  var import_react69 = require("react");
4514
- var import_jsx_runtime122 = require("react/jsx-runtime");
4588
+ var import_jsx_runtime124 = require("react/jsx-runtime");
4515
4589
  var NAV_ICONS = {
4516
- "score-summary": /* @__PURE__ */ (0, import_jsx_runtime122.jsxs)(import_jsx_runtime122.Fragment, { children: [
4517
- /* @__PURE__ */ (0, import_jsx_runtime122.jsx)("path", { d: "m12 14 4-4" }),
4518
- /* @__PURE__ */ (0, import_jsx_runtime122.jsx)("path", { d: "M3.34 19a10 10 0 1 1 17.32 0" })
4590
+ "score-summary": /* @__PURE__ */ (0, import_jsx_runtime124.jsxs)(import_jsx_runtime124.Fragment, { children: [
4591
+ /* @__PURE__ */ (0, import_jsx_runtime124.jsx)("path", { d: "m12 14 4-4" }),
4592
+ /* @__PURE__ */ (0, import_jsx_runtime124.jsx)("path", { d: "M3.34 19a10 10 0 1 1 17.32 0" })
4519
4593
  ] }),
4520
- 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" }),
4521
- improvements: /* @__PURE__ */ (0, import_jsx_runtime122.jsxs)(import_jsx_runtime122.Fragment, { children: [
4522
- /* @__PURE__ */ (0, import_jsx_runtime122.jsx)("circle", { cx: "12", cy: "12", r: "9" }),
4523
- /* @__PURE__ */ (0, import_jsx_runtime122.jsx)("circle", { cx: "12", cy: "12", r: "5" }),
4524
- /* @__PURE__ */ (0, import_jsx_runtime122.jsx)("circle", { cx: "12", cy: "12", r: "1.5" })
4594
+ 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" }),
4595
+ improvements: /* @__PURE__ */ (0, import_jsx_runtime124.jsxs)(import_jsx_runtime124.Fragment, { children: [
4596
+ /* @__PURE__ */ (0, import_jsx_runtime124.jsx)("circle", { cx: "12", cy: "12", r: "9" }),
4597
+ /* @__PURE__ */ (0, import_jsx_runtime124.jsx)("circle", { cx: "12", cy: "12", r: "5" }),
4598
+ /* @__PURE__ */ (0, import_jsx_runtime124.jsx)("circle", { cx: "12", cy: "12", r: "1.5" })
4525
4599
  ] }),
4526
- "score-trend": /* @__PURE__ */ (0, import_jsx_runtime122.jsxs)(import_jsx_runtime122.Fragment, { children: [
4527
- /* @__PURE__ */ (0, import_jsx_runtime122.jsx)("path", { d: "M3 3v18h18" }),
4528
- /* @__PURE__ */ (0, import_jsx_runtime122.jsx)("path", { d: "m19 8-5 5-4-4-4 4" })
4600
+ "score-trend": /* @__PURE__ */ (0, import_jsx_runtime124.jsxs)(import_jsx_runtime124.Fragment, { children: [
4601
+ /* @__PURE__ */ (0, import_jsx_runtime124.jsx)("path", { d: "M3 3v18h18" }),
4602
+ /* @__PURE__ */ (0, import_jsx_runtime124.jsx)("path", { d: "m19 8-5 5-4-4-4 4" })
4529
4603
  ] }),
4530
- "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" }),
4531
- "step-detail": /* @__PURE__ */ (0, import_jsx_runtime122.jsxs)(import_jsx_runtime122.Fragment, { children: [
4532
- /* @__PURE__ */ (0, import_jsx_runtime122.jsx)("line", { x1: "8", x2: "21", y1: "6", y2: "6" }),
4533
- /* @__PURE__ */ (0, import_jsx_runtime122.jsx)("line", { x1: "8", x2: "21", y1: "12", y2: "12" }),
4534
- /* @__PURE__ */ (0, import_jsx_runtime122.jsx)("line", { x1: "8", x2: "21", y1: "18", y2: "18" }),
4535
- /* @__PURE__ */ (0, import_jsx_runtime122.jsx)("path", { d: "M3 6h.01M3 12h.01M3 18h.01" })
4604
+ "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" }),
4605
+ "step-detail": /* @__PURE__ */ (0, import_jsx_runtime124.jsxs)(import_jsx_runtime124.Fragment, { children: [
4606
+ /* @__PURE__ */ (0, import_jsx_runtime124.jsx)("line", { x1: "8", x2: "21", y1: "6", y2: "6" }),
4607
+ /* @__PURE__ */ (0, import_jsx_runtime124.jsx)("line", { x1: "8", x2: "21", y1: "12", y2: "12" }),
4608
+ /* @__PURE__ */ (0, import_jsx_runtime124.jsx)("line", { x1: "8", x2: "21", y1: "18", y2: "18" }),
4609
+ /* @__PURE__ */ (0, import_jsx_runtime124.jsx)("path", { d: "M3 6h.01M3 12h.01M3 18h.01" })
4536
4610
  ] }),
4537
- coaching: /* @__PURE__ */ (0, import_jsx_runtime122.jsx)("polygon", { points: "13 2 3 14 12 14 11 22 21 10 12 10 13 2" })
4611
+ coaching: /* @__PURE__ */ (0, import_jsx_runtime124.jsx)("polygon", { points: "13 2 3 14 12 14 11 22 21 10 12 10 13 2" })
4538
4612
  };
4539
4613
  function NavIcon({ children }) {
4540
- return /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(
4614
+ return /* @__PURE__ */ (0, import_jsx_runtime124.jsx)(
4541
4615
  "svg",
4542
4616
  {
4543
4617
  "aria-hidden": "true",
@@ -4557,7 +4631,7 @@ function NavIcon({ children }) {
4557
4631
  function StepMetricBadge({ step }) {
4558
4632
  const scoreText = stepScoreText(step);
4559
4633
  if (scoreText !== null) {
4560
- return /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(
4634
+ return /* @__PURE__ */ (0, import_jsx_runtime124.jsx)(
4561
4635
  Typo,
4562
4636
  {
4563
4637
  as: "span",
@@ -4572,7 +4646,7 @@ function StepMetricBadge({ step }) {
4572
4646
  }
4573
4647
  const gradeLabel = stepGradeLabel(step);
4574
4648
  if (gradeLabel !== null) {
4575
- return /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(
4649
+ return /* @__PURE__ */ (0, import_jsx_runtime124.jsx)(
4576
4650
  Typo,
4577
4651
  {
4578
4652
  as: "span",
@@ -4615,8 +4689,8 @@ function scrollToId(id) {
4615
4689
  function SectionNav({ items, steps }) {
4616
4690
  const activeId = useScrollSpy(items.map((i) => i.id));
4617
4691
  const stepDetailActive = activeId === "step-summary" || activeId === "step-detail";
4618
- 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: [
4619
- /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(
4692
+ 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: [
4693
+ /* @__PURE__ */ (0, import_jsx_runtime124.jsx)(
4620
4694
  Typo,
4621
4695
  {
4622
4696
  as: "p",
@@ -4630,9 +4704,9 @@ function SectionNav({ items, steps }) {
4630
4704
  children: "\uBAA9\uCC28"
4631
4705
  }
4632
4706
  ),
4633
- /* @__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) => {
4707
+ /* @__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) => {
4634
4708
  const active = activeId === item.id;
4635
- return /* @__PURE__ */ (0, import_jsx_runtime122.jsx)("li", { children: /* @__PURE__ */ (0, import_jsx_runtime122.jsxs)(
4709
+ return /* @__PURE__ */ (0, import_jsx_runtime124.jsx)("li", { children: /* @__PURE__ */ (0, import_jsx_runtime124.jsxs)(
4636
4710
  "button",
4637
4711
  {
4638
4712
  "aria-current": active ? "true" : void 0,
@@ -4646,9 +4720,9 @@ function SectionNav({ items, steps }) {
4646
4720
  } : void 0,
4647
4721
  type: "button",
4648
4722
  children: [
4649
- /* @__PURE__ */ (0, import_jsx_runtime122.jsxs)(import_themes23.Flex, { align: "center", gap: "2", style: { minWidth: 0 }, children: [
4650
- NAV_ICONS[item.id] ? /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(NavIcon, { children: NAV_ICONS[item.id] }) : null,
4651
- /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(
4723
+ /* @__PURE__ */ (0, import_jsx_runtime124.jsxs)(import_themes23.Flex, { align: "center", gap: "2", style: { minWidth: 0 }, children: [
4724
+ NAV_ICONS[item.id] ? /* @__PURE__ */ (0, import_jsx_runtime124.jsx)(NavIcon, { children: NAV_ICONS[item.id] }) : null,
4725
+ /* @__PURE__ */ (0, import_jsx_runtime124.jsx)(
4652
4726
  Typo,
4653
4727
  {
4654
4728
  as: "span",
@@ -4659,8 +4733,8 @@ function SectionNav({ items, steps }) {
4659
4733
  }
4660
4734
  )
4661
4735
  ] }),
4662
- typeof item.score === "number" ? /* @__PURE__ */ (0, import_jsx_runtime122.jsxs)(Typo, { as: "span", mono: true, style: { flexShrink: 0 }, variant: "body", children: [
4663
- /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(
4736
+ typeof item.score === "number" ? /* @__PURE__ */ (0, import_jsx_runtime124.jsxs)(Typo, { as: "span", mono: true, style: { flexShrink: 0 }, variant: "body", children: [
4737
+ /* @__PURE__ */ (0, import_jsx_runtime124.jsx)(
4664
4738
  Typo,
4665
4739
  {
4666
4740
  as: "span",
@@ -4672,7 +4746,7 @@ function SectionNav({ items, steps }) {
4672
4746
  children: item.score
4673
4747
  }
4674
4748
  ),
4675
- /* @__PURE__ */ (0, import_jsx_runtime122.jsxs)(Typo, { as: "span", style: { color: "var(--gray-9)" }, variant: "body", children: [
4749
+ /* @__PURE__ */ (0, import_jsx_runtime124.jsxs)(Typo, { as: "span", style: { color: "var(--gray-9)" }, variant: "body", children: [
4676
4750
  "/",
4677
4751
  item.max
4678
4752
  ] })
@@ -4681,8 +4755,8 @@ function SectionNav({ items, steps }) {
4681
4755
  }
4682
4756
  ) }, item.id);
4683
4757
  }) }) }),
4684
- steps.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime122.jsxs)(import_themes7.Box, { mt: "3", pt: "3", style: { borderTop: "1px solid var(--gray-4)" }, children: [
4685
- /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(import_themes7.Box, { pb: "1", px: "3", children: /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(
4758
+ steps.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime124.jsxs)(import_themes7.Box, { mt: "3", pt: "3", style: { borderTop: "1px solid var(--gray-4)" }, children: [
4759
+ /* @__PURE__ */ (0, import_jsx_runtime124.jsx)(import_themes7.Box, { pb: "1", px: "3", children: /* @__PURE__ */ (0, import_jsx_runtime124.jsx)(
4686
4760
  Typo,
4687
4761
  {
4688
4762
  as: "span",
@@ -4694,9 +4768,9 @@ function SectionNav({ items, steps }) {
4694
4768
  children: "\uB2E8\uACC4\uBCC4 \uC810\uC218"
4695
4769
  }
4696
4770
  ) }),
4697
- /* @__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) => {
4771
+ /* @__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) => {
4698
4772
  const ratio = stepRatio(step);
4699
- return /* @__PURE__ */ (0, import_jsx_runtime122.jsx)("li", { children: /* @__PURE__ */ (0, import_jsx_runtime122.jsxs)(
4773
+ return /* @__PURE__ */ (0, import_jsx_runtime124.jsx)("li", { children: /* @__PURE__ */ (0, import_jsx_runtime124.jsxs)(
4700
4774
  "button",
4701
4775
  {
4702
4776
  className: "rp-jump-btn",
@@ -4705,8 +4779,8 @@ function SectionNav({ items, steps }) {
4705
4779
  },
4706
4780
  type: "button",
4707
4781
  children: [
4708
- /* @__PURE__ */ (0, import_jsx_runtime122.jsxs)(import_themes23.Flex, { align: "center", gap: "2", justify: "between", children: [
4709
- /* @__PURE__ */ (0, import_jsx_runtime122.jsxs)(
4782
+ /* @__PURE__ */ (0, import_jsx_runtime124.jsxs)(import_themes23.Flex, { align: "center", gap: "2", justify: "between", children: [
4783
+ /* @__PURE__ */ (0, import_jsx_runtime124.jsxs)(
4710
4784
  Typo,
4711
4785
  {
4712
4786
  as: "span",
@@ -4714,7 +4788,7 @@ function SectionNav({ items, steps }) {
4714
4788
  truncate: true,
4715
4789
  variant: "body",
4716
4790
  children: [
4717
- /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(
4791
+ /* @__PURE__ */ (0, import_jsx_runtime124.jsx)(
4718
4792
  Typo,
4719
4793
  {
4720
4794
  as: "span",
@@ -4726,7 +4800,7 @@ function SectionNav({ items, steps }) {
4726
4800
  }
4727
4801
  ),
4728
4802
  " ",
4729
- /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(
4803
+ /* @__PURE__ */ (0, import_jsx_runtime124.jsx)(
4730
4804
  Typo,
4731
4805
  {
4732
4806
  as: "span",
@@ -4738,9 +4812,9 @@ function SectionNav({ items, steps }) {
4738
4812
  ]
4739
4813
  }
4740
4814
  ),
4741
- /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(StepMetricBadge, { step })
4815
+ /* @__PURE__ */ (0, import_jsx_runtime124.jsx)(StepMetricBadge, { step })
4742
4816
  ] }),
4743
- 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
4817
+ 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
4744
4818
  ]
4745
4819
  }
4746
4820
  ) }, step.key);
@@ -4750,14 +4824,14 @@ function SectionNav({ items, steps }) {
4750
4824
  }
4751
4825
 
4752
4826
  // src/app/roleplay/parts/step-detail.tsx
4753
- var import_jsx_runtime123 = require("react/jsx-runtime");
4827
+ var import_jsx_runtime125 = require("react/jsx-runtime");
4754
4828
  function RubricField({
4755
4829
  label,
4756
4830
  value
4757
4831
  }) {
4758
- return /* @__PURE__ */ (0, import_jsx_runtime123.jsxs)(import_themes7.Box, { children: [
4759
- /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(Typo, { as: "p", variant: "body", weight: "medium", children: label }),
4760
- /* @__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 }) })
4832
+ return /* @__PURE__ */ (0, import_jsx_runtime125.jsxs)(import_themes7.Box, { children: [
4833
+ /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(Typo, { as: "p", variant: "body", weight: "medium", children: label }),
4834
+ /* @__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 }) })
4761
4835
  ] });
4762
4836
  }
4763
4837
  function StepDetail({
@@ -4768,14 +4842,14 @@ function StepDetail({
4768
4842
  const ratio = stepRatio(step);
4769
4843
  const scoreText = stepScoreText(step);
4770
4844
  const gradeLabel = stepGradeLabel(step);
4771
- return /* @__PURE__ */ (0, import_jsx_runtime123.jsxs)(import_themes7.Box, { id: `step-${step.key}`, style: { scrollMarginTop }, children: [
4772
- /* @__PURE__ */ (0, import_jsx_runtime123.jsxs)(import_themes23.Flex, { align: "center", gap: "2", justify: "between", mb: "1", children: [
4773
- /* @__PURE__ */ (0, import_jsx_runtime123.jsxs)(import_themes7.Box, { style: { minWidth: 0 }, children: [
4774
- /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(Typo, { as: "span", color: "gray", mono: true, variant: "body", children: stepCode(step) }),
4775
- /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(Typo, { as: "p", variant: "subtitle", weight: "bold", children: step.label })
4845
+ return /* @__PURE__ */ (0, import_jsx_runtime125.jsxs)(import_themes7.Box, { id: `step-${step.key}`, style: { scrollMarginTop }, children: [
4846
+ /* @__PURE__ */ (0, import_jsx_runtime125.jsxs)(import_themes23.Flex, { align: "center", gap: "2", justify: "between", mb: "1", children: [
4847
+ /* @__PURE__ */ (0, import_jsx_runtime125.jsxs)(import_themes7.Box, { style: { minWidth: 0 }, children: [
4848
+ /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(Typo, { as: "span", color: "gray", mono: true, variant: "body", children: stepCode(step) }),
4849
+ /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(Typo, { as: "p", variant: "subtitle", weight: "bold", children: step.label })
4776
4850
  ] }),
4777
- /* @__PURE__ */ (0, import_jsx_runtime123.jsxs)(import_themes23.Flex, { align: "end", direction: "column", gap: "1", style: { flexShrink: 0 }, children: [
4778
- scoreText !== null ? /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(
4851
+ /* @__PURE__ */ (0, import_jsx_runtime125.jsxs)(import_themes23.Flex, { align: "end", direction: "column", gap: "1", style: { flexShrink: 0 }, children: [
4852
+ scoreText !== null ? /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(
4779
4853
  Typo,
4780
4854
  {
4781
4855
  as: "span",
@@ -4786,7 +4860,7 @@ function StepDetail({
4786
4860
  children: scoreText
4787
4861
  }
4788
4862
  ) : null,
4789
- gradeLabel !== null ? /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(
4863
+ gradeLabel !== null ? /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(
4790
4864
  Typo,
4791
4865
  {
4792
4866
  as: "span",
@@ -4806,16 +4880,16 @@ function StepDetail({
4806
4880
  ) : null
4807
4881
  ] })
4808
4882
  ] }),
4809
- 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,
4810
- 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,
4811
- /* @__PURE__ */ (0, import_jsx_runtime123.jsxs)(import_themes23.Flex, { direction: "column", gap: "0", children: [
4812
- 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: [
4813
- step.basis ? /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(RubricField, { label: "\uADFC\uAC70", value: step.basis }) : null,
4814
- step.issue ? /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(RubricField, { label: "\uC544\uC26C\uC6B4 \uC810", value: step.issue }) : null
4883
+ 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,
4884
+ 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,
4885
+ /* @__PURE__ */ (0, import_jsx_runtime125.jsxs)(import_themes23.Flex, { direction: "column", gap: "0", children: [
4886
+ 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: [
4887
+ step.basis ? /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(RubricField, { label: "\uADFC\uAC70", value: step.basis }) : null,
4888
+ step.issue ? /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(RubricField, { label: "\uC544\uC26C\uC6B4 \uC810", value: step.issue }) : null
4815
4889
  ] }) }) : null,
4816
- 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: [
4817
- step.improve ? /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(RubricField, { label: "\uAC1C\uC120\uC810", value: step.improve }) : null,
4818
- step.example ? /* @__PURE__ */ (0, import_jsx_runtime123.jsxs)(
4890
+ 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: [
4891
+ step.improve ? /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(RubricField, { label: "\uAC1C\uC120\uC810", value: step.improve }) : null,
4892
+ step.example ? /* @__PURE__ */ (0, import_jsx_runtime125.jsxs)(
4819
4893
  import_themes7.Box,
4820
4894
  {
4821
4895
  p: "2",
@@ -4824,7 +4898,7 @@ function StepDetail({
4824
4898
  background: "var(--accent-a2)"
4825
4899
  },
4826
4900
  children: [
4827
- /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(
4901
+ /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(
4828
4902
  Typo,
4829
4903
  {
4830
4904
  as: "p",
@@ -4834,11 +4908,11 @@ function StepDetail({
4834
4908
  children: "\uC608\uC2DC \uC2A4\uD06C\uB9BD\uD2B8"
4835
4909
  }
4836
4910
  ),
4837
- /* @__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 }) })
4911
+ /* @__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 }) })
4838
4912
  ]
4839
4913
  }
4840
4914
  ) : null,
4841
- step.idealExample ? /* @__PURE__ */ (0, import_jsx_runtime123.jsxs)(
4915
+ step.idealExample ? /* @__PURE__ */ (0, import_jsx_runtime125.jsxs)(
4842
4916
  import_themes7.Box,
4843
4917
  {
4844
4918
  p: "2",
@@ -4847,8 +4921,8 @@ function StepDetail({
4847
4921
  background: "var(--gray-a2)"
4848
4922
  },
4849
4923
  children: [
4850
- /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(Typo, { as: "p", color: "gray", variant: "body", weight: "medium", children: "\uBAA8\uBC94 \uC608\uC2DC" }),
4851
- /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(import_themes7.Box, { mt: "1", style: { maxWidth: "65ch" }, children: /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(
4924
+ /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(Typo, { as: "p", color: "gray", variant: "body", weight: "medium", children: "\uBAA8\uBC94 \uC608\uC2DC" }),
4925
+ /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(import_themes7.Box, { mt: "1", style: { maxWidth: "65ch" }, children: /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(
4852
4926
  Typo,
4853
4927
  {
4854
4928
  as: "p",
@@ -4867,7 +4941,7 @@ function StepDetail({
4867
4941
  }
4868
4942
 
4869
4943
  // src/app/roleplay/parts/step-radar.tsx
4870
- var import_jsx_runtime124 = require("react/jsx-runtime");
4944
+ var import_jsx_runtime126 = require("react/jsx-runtime");
4871
4945
  function StepRadar({ steps }) {
4872
4946
  const { colors, probe } = useTokenColors({
4873
4947
  accent: ["--accent-9", "#5b5bd6"],
@@ -4916,7 +4990,7 @@ function StepRadar({ steps }) {
4916
4990
  }
4917
4991
  ]
4918
4992
  };
4919
- return /* @__PURE__ */ (0, import_jsx_runtime124.jsxs)(
4993
+ return /* @__PURE__ */ (0, import_jsx_runtime126.jsxs)(
4920
4994
  "div",
4921
4995
  {
4922
4996
  "aria-label": "\uD3C9\uAC00 \uB2E8\uACC4 \uB808\uC774\uB354 \uCC28\uD2B8",
@@ -4932,23 +5006,23 @@ function StepRadar({ steps }) {
4932
5006
  },
4933
5007
  children: [
4934
5008
  probe,
4935
- /* @__PURE__ */ (0, import_jsx_runtime124.jsx)("div", { style: { width: "100%", maxWidth: 300, height: 280 }, children: /* @__PURE__ */ (0, import_jsx_runtime124.jsx)(Chart, { option }) })
5009
+ /* @__PURE__ */ (0, import_jsx_runtime126.jsx)("div", { style: { width: "100%", maxWidth: 300, height: 280 }, children: /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(Chart, { option }) })
4936
5010
  ]
4937
5011
  }
4938
5012
  );
4939
5013
  }
4940
5014
 
4941
5015
  // src/app/roleplay/parts/step-summary.tsx
4942
- var import_jsx_runtime125 = require("react/jsx-runtime");
5016
+ var import_jsx_runtime127 = require("react/jsx-runtime");
4943
5017
  function Section5({
4944
5018
  title,
4945
5019
  desc,
4946
5020
  children
4947
5021
  }) {
4948
- return /* @__PURE__ */ (0, import_jsx_runtime125.jsxs)("section", { children: [
4949
- /* @__PURE__ */ (0, import_jsx_runtime125.jsxs)(import_themes7.Box, { mb: "3", children: [
4950
- /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(Typo, { as: "p", variant: "subtitle", weight: "bold", children: title }),
4951
- 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
5022
+ return /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)("section", { children: [
5023
+ /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(import_themes7.Box, { mb: "3", children: [
5024
+ /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(Typo, { as: "p", variant: "subtitle", weight: "bold", children: title }),
5025
+ 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
4952
5026
  ] }),
4953
5027
  children
4954
5028
  ] });
@@ -4957,13 +5031,13 @@ function StepSummary({ steps }) {
4957
5031
  if (steps.length === 0) return null;
4958
5032
  const radarReady = steps.every((s) => stepRatio(s) !== null);
4959
5033
  const desc = "\uB300\uD654 \uB2E8\uACC4 \uBCC4\uB85C \uB098\uC758 \uAC15\uC57D\uC810\uC744 \uD655\uC778\uD560 \uC218 \uC788\uC5B4\uC694.";
4960
- const list = /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(import_themes23.Flex, { direction: "column", children: steps.map((step, i) => {
5034
+ const list = /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_themes23.Flex, { direction: "column", children: steps.map((step, i) => {
4961
5035
  const ratio = stepRatio(step);
4962
5036
  const scoreText = stepScoreText(step);
4963
5037
  const gradeLabel = stepGradeLabel(step);
4964
- return /* @__PURE__ */ (0, import_jsx_runtime125.jsxs)(import_themes7.Box, { children: [
4965
- i > 0 && /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(import_themes40.Separator, { size: "4" }),
4966
- /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(
5038
+ return /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(import_themes7.Box, { children: [
5039
+ i > 0 && /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_themes40.Separator, { size: "4" }),
5040
+ /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(
4967
5041
  "button",
4968
5042
  {
4969
5043
  className: "rp-rubric-scroll-btn",
@@ -4980,9 +5054,9 @@ function StepSummary({ steps }) {
4980
5054
  textAlign: "left"
4981
5055
  },
4982
5056
  type: "button",
4983
- children: /* @__PURE__ */ (0, import_jsx_runtime125.jsxs)(import_themes23.Flex, { direction: "column", gap: "1", children: [
4984
- /* @__PURE__ */ (0, import_jsx_runtime125.jsxs)(import_themes23.Flex, { align: "center", gap: "2", justify: "between", children: [
4985
- /* @__PURE__ */ (0, import_jsx_runtime125.jsxs)(
5057
+ children: /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(import_themes23.Flex, { direction: "column", gap: "1", children: [
5058
+ /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(import_themes23.Flex, { align: "center", gap: "2", justify: "between", children: [
5059
+ /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(
4986
5060
  Typo,
4987
5061
  {
4988
5062
  as: "span",
@@ -4991,7 +5065,7 @@ function StepSummary({ steps }) {
4991
5065
  variant: "body",
4992
5066
  weight: "medium",
4993
5067
  children: [
4994
- /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(
5068
+ /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(
4995
5069
  Typo,
4996
5070
  {
4997
5071
  as: "span",
@@ -5007,9 +5081,9 @@ function StepSummary({ steps }) {
5007
5081
  ]
5008
5082
  }
5009
5083
  ),
5010
- /* @__PURE__ */ (0, import_jsx_runtime125.jsxs)(import_themes23.Flex, { align: "center", gap: "2", style: { flexShrink: 0 }, children: [
5011
- scoreText !== null ? /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(Typo, { as: "span", mono: true, variant: "body", weight: "bold", children: scoreText }) : null,
5012
- gradeLabel !== null ? /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(
5084
+ /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(import_themes23.Flex, { align: "center", gap: "2", style: { flexShrink: 0 }, children: [
5085
+ scoreText !== null ? /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(Typo, { as: "span", mono: true, variant: "body", weight: "bold", children: scoreText }) : null,
5086
+ gradeLabel !== null ? /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(
5013
5087
  Typo,
5014
5088
  {
5015
5089
  as: "span",
@@ -5022,13 +5096,13 @@ function StepSummary({ steps }) {
5022
5096
  ) : null
5023
5097
  ] })
5024
5098
  ] }),
5025
- 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
5099
+ 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
5026
5100
  ] })
5027
5101
  }
5028
5102
  )
5029
5103
  ] }, step.key);
5030
5104
  }) });
5031
- return /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(Section5, { desc, title: "\uD3C9\uAC00 \uB2E8\uACC4 \uC694\uC57D", children: radarReady ? /* @__PURE__ */ (0, import_jsx_runtime125.jsxs)(
5105
+ return /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(Section5, { desc, title: "\uD3C9\uAC00 \uB2E8\uACC4 \uC694\uC57D", children: radarReady ? /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(
5032
5106
  import_themes24.Grid,
5033
5107
  {
5034
5108
  align: "center",
@@ -5036,14 +5110,14 @@ function StepSummary({ steps }) {
5036
5110
  gap: "6",
5037
5111
  children: [
5038
5112
  list,
5039
- /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(StepRadar, { steps })
5113
+ /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(StepRadar, { steps })
5040
5114
  ]
5041
5115
  }
5042
5116
  ) : list });
5043
5117
  }
5044
5118
 
5045
5119
  // src/app/roleplay/parts/content.tsx
5046
- var import_jsx_runtime126 = require("react/jsx-runtime");
5120
+ var import_jsx_runtime128 = require("react/jsx-runtime");
5047
5121
  function Content9({
5048
5122
  detail,
5049
5123
  report,
@@ -5066,20 +5140,20 @@ function Content9({
5066
5140
  ...showStepDetail ? [{ id: "step-detail", label: "\uB2E8\uACC4\uBCC4 \uC0C1\uC138 \uBD84\uC11D" }] : [],
5067
5141
  ...skills.length > 0 ? [{ id: "coaching", label: "\uC989\uC2DC \uC801\uC6A9 \uC2A4\uD0AC" }] : []
5068
5142
  ];
5069
- return /* @__PURE__ */ (0, import_jsx_runtime126.jsxs)(
5143
+ return /* @__PURE__ */ (0, import_jsx_runtime128.jsxs)(
5070
5144
  import_themes24.Grid,
5071
5145
  {
5072
5146
  align: "start",
5073
5147
  columns: { initial: "1", md: "minmax(0, 1fr) 224px" },
5074
5148
  gap: "7",
5075
5149
  children: [
5076
- /* @__PURE__ */ (0, import_jsx_runtime126.jsxs)(import_themes23.Flex, { direction: "column", gap: "7", children: [
5077
- report.frameworkTitle !== null || report.frameworkDescription !== null ? /* @__PURE__ */ (0, import_jsx_runtime126.jsxs)(import_themes7.Box, { children: [
5078
- report.frameworkTitle !== null ? /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(Heading2, { size: "5", weight: "bold", children: report.frameworkTitle }) : null,
5079
- 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
5150
+ /* @__PURE__ */ (0, import_jsx_runtime128.jsxs)(import_themes23.Flex, { direction: "column", gap: "7", children: [
5151
+ report.frameworkTitle !== null || report.frameworkDescription !== null ? /* @__PURE__ */ (0, import_jsx_runtime128.jsxs)(import_themes7.Box, { children: [
5152
+ report.frameworkTitle !== null ? /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(Heading2, { size: "5", weight: "bold", children: report.frameworkTitle }) : null,
5153
+ 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
5080
5154
  ] }) : null,
5081
- /* @__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 }) }),
5082
- strengths.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_themes7.Box, { id: "strengths", style: { scrollMarginTop }, children: /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(
5155
+ /* @__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 }) }),
5156
+ strengths.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(import_themes7.Box, { id: "strengths", style: { scrollMarginTop }, children: /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(
5083
5157
  AnalysisSection,
5084
5158
  {
5085
5159
  desc: "\uC774\uBC88 \uC138\uC158\uC5D0\uC11C \uAC00\uC7A5 \uB3CB\uBCF4\uC778 \uAC15\uC810\uB4E4\uC774\uC5D0\uC694.",
@@ -5088,7 +5162,7 @@ function Content9({
5088
5162
  tone: "good"
5089
5163
  }
5090
5164
  ) }) : null,
5091
- improvements.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_themes7.Box, { id: "improvements", style: { scrollMarginTop }, children: /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(
5165
+ improvements.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(import_themes7.Box, { id: "improvements", style: { scrollMarginTop }, children: /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(
5092
5166
  AnalysisSection,
5093
5167
  {
5094
5168
  desc: "\uB2E4\uC74C\uC5D0 \uBCF4\uC644\uD55C\uB2E4\uBA74 \uB354 \uB098\uC740 \uACB0\uACFC\uB97C \uC5BB\uC744 \uC218 \uC788\uC744 \uAC70\uC5D0\uC694.",
@@ -5097,15 +5171,15 @@ function Content9({
5097
5171
  tone: "bad"
5098
5172
  }
5099
5173
  ) }) : null,
5100
- 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,
5101
- 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,
5102
- showStepDetail ? /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_themes7.Box, { id: "step-detail", style: { scrollMarginTop }, children: /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(
5174
+ 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,
5175
+ 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,
5176
+ showStepDetail ? /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(import_themes7.Box, { id: "step-detail", style: { scrollMarginTop }, children: /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(
5103
5177
  Section2,
5104
5178
  {
5105
5179
  desc: "\uC774\uBC88 \uB300\uD654\uC758 \uB354 \uB098\uC544\uC9C8 \uC218 \uC788\uB294 \uBC29\uD5A5\uC744 \uC54C\uB824\uB4DC\uB9B4\uAC8C\uC694.",
5106
5180
  title: "\uB2E8\uACC4\uBCC4 \uC0C1\uC138 \uBD84\uC11D",
5107
- 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: [
5108
- i > 0 ? /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(
5181
+ 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: [
5182
+ i > 0 ? /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(
5109
5183
  import_themes40.Separator,
5110
5184
  {
5111
5185
  mb: "6",
@@ -5113,22 +5187,22 @@ function Content9({
5113
5187
  style: { marginTop: "calc(var(--space-9) * 1.6)" }
5114
5188
  }
5115
5189
  ) : null,
5116
- /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(StepDetail, { scrollMarginTop, step })
5190
+ /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(StepDetail, { scrollMarginTop, step })
5117
5191
  ] }, step.key)) })
5118
5192
  }
5119
5193
  ) }) : null,
5120
- 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
5194
+ 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
5121
5195
  ] }),
5122
- /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(SectionNav, { items: navItems, steps: showStepDetail ? steps : [] })
5196
+ /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(SectionNav, { items: navItems, steps: showStepDetail ? steps : [] })
5123
5197
  ]
5124
5198
  }
5125
5199
  );
5126
5200
  }
5127
5201
 
5128
5202
  // src/app/roleplay/parts/header.tsx
5129
- var import_jsx_runtime127 = require("react/jsx-runtime");
5203
+ var import_jsx_runtime129 = require("react/jsx-runtime");
5130
5204
  function PdfIcon() {
5131
- return /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(
5205
+ return /* @__PURE__ */ (0, import_jsx_runtime129.jsxs)(
5132
5206
  "svg",
5133
5207
  {
5134
5208
  "aria-hidden": "true",
@@ -5141,16 +5215,16 @@ function PdfIcon() {
5141
5215
  viewBox: "0 0 24 24",
5142
5216
  width: "13",
5143
5217
  children: [
5144
- /* @__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" }),
5145
- /* @__PURE__ */ (0, import_jsx_runtime127.jsx)("path", { d: "M14 3v5h5" }),
5146
- /* @__PURE__ */ (0, import_jsx_runtime127.jsx)("path", { d: "M12 12v5" }),
5147
- /* @__PURE__ */ (0, import_jsx_runtime127.jsx)("path", { d: "M9.5 14.5 12 17l2.5-2.5" })
5218
+ /* @__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" }),
5219
+ /* @__PURE__ */ (0, import_jsx_runtime129.jsx)("path", { d: "M14 3v5h5" }),
5220
+ /* @__PURE__ */ (0, import_jsx_runtime129.jsx)("path", { d: "M12 12v5" }),
5221
+ /* @__PURE__ */ (0, import_jsx_runtime129.jsx)("path", { d: "M9.5 14.5 12 17l2.5-2.5" })
5148
5222
  ]
5149
5223
  }
5150
5224
  );
5151
5225
  }
5152
5226
  function VideoIcon3() {
5153
- return /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(
5227
+ return /* @__PURE__ */ (0, import_jsx_runtime129.jsxs)(
5154
5228
  "svg",
5155
5229
  {
5156
5230
  "aria-hidden": "true",
@@ -5163,8 +5237,8 @@ function VideoIcon3() {
5163
5237
  viewBox: "0 0 24 24",
5164
5238
  width: "13",
5165
5239
  children: [
5166
- /* @__PURE__ */ (0, import_jsx_runtime127.jsx)("rect", { height: "12", rx: "2", width: "13", x: "2", y: "6" }),
5167
- /* @__PURE__ */ (0, import_jsx_runtime127.jsx)("path", { d: "m15 10 6-3v10l-6-3z" })
5240
+ /* @__PURE__ */ (0, import_jsx_runtime129.jsx)("rect", { height: "12", rx: "2", width: "13", x: "2", y: "6" }),
5241
+ /* @__PURE__ */ (0, import_jsx_runtime129.jsx)("path", { d: "m15 10 6-3v10l-6-3z" })
5168
5242
  ]
5169
5243
  }
5170
5244
  );
@@ -5189,7 +5263,7 @@ function Header({
5189
5263
  });
5190
5264
  };
5191
5265
  const replayActive = hasScript && hasReplayMedia;
5192
- return /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_themes7.Box, { children: /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(
5266
+ return /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(import_themes7.Box, { children: /* @__PURE__ */ (0, import_jsx_runtime129.jsxs)(
5193
5267
  import_themes23.Flex,
5194
5268
  {
5195
5269
  align: { md: "start" },
@@ -5197,16 +5271,16 @@ function Header({
5197
5271
  gap: "4",
5198
5272
  justify: "between",
5199
5273
  children: [
5200
- /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(import_themes7.Box, { style: { minWidth: 0 }, children: [
5201
- /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(import_themes23.Flex, { align: "center", gap: "2", mb: "2", wrap: "wrap", children: [
5202
- /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(Badge, { color: "neutral", size: "small", variant: "soft", children: statusLabelOf(detail.status) }),
5203
- /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(Typo, { as: "span", color: "gray", variant: "body", children: [
5274
+ /* @__PURE__ */ (0, import_jsx_runtime129.jsxs)(import_themes7.Box, { style: { minWidth: 0 }, children: [
5275
+ /* @__PURE__ */ (0, import_jsx_runtime129.jsxs)(import_themes23.Flex, { align: "center", gap: "2", mb: "2", wrap: "wrap", children: [
5276
+ /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(Badge, { color: "neutral", size: "small", variant: "soft", children: statusLabelOf(detail.status) }),
5277
+ /* @__PURE__ */ (0, import_jsx_runtime129.jsxs)(Typo, { as: "span", color: "gray", variant: "body", children: [
5204
5278
  detail.trainingSessionNum,
5205
5279
  "\uD68C\uCC28",
5206
5280
  detail.characterTitle ? ` \xB7 ${detail.characterTitle}` : ""
5207
5281
  ] })
5208
5282
  ] }),
5209
- /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(
5283
+ /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(
5210
5284
  Heading2,
5211
5285
  {
5212
5286
  size: { initial: "5", md: "7" },
@@ -5215,13 +5289,13 @@ function Header({
5215
5289
  children: (_a = detail.scenarioTitle) != null ? _a : "\uB864\uD50C\uB808\uC789 \uC138\uC158"
5216
5290
  }
5217
5291
  ),
5218
- /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(Typo, { as: "p", color: "gray", mono: true, mt: "1", variant: "body", children: [
5292
+ /* @__PURE__ */ (0, import_jsx_runtime129.jsxs)(Typo, { as: "p", color: "gray", mono: true, mt: "1", variant: "body", children: [
5219
5293
  formatDate(detail.createdAt),
5220
5294
  " \xB7 ",
5221
5295
  formatDuration(detail.trainingTime)
5222
5296
  ] })
5223
5297
  ] }),
5224
- /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(
5298
+ /* @__PURE__ */ (0, import_jsx_runtime129.jsxs)(
5225
5299
  import_themes23.Flex,
5226
5300
  {
5227
5301
  gap: "2",
@@ -5229,7 +5303,7 @@ function Header({
5229
5303
  style: { flexShrink: 0 },
5230
5304
  wrap: "wrap",
5231
5305
  children: [
5232
- onResolveMediaUrl ? /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(
5306
+ onResolveMediaUrl ? /* @__PURE__ */ (0, import_jsx_runtime129.jsxs)(
5233
5307
  Button,
5234
5308
  {
5235
5309
  color: "gray",
@@ -5240,11 +5314,11 @@ function Header({
5240
5314
  type: "button",
5241
5315
  variant: "outline",
5242
5316
  children: [
5243
- /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(PdfIcon, {}),
5244
- /* @__PURE__ */ (0, import_jsx_runtime127.jsx)("span", { style: { whiteSpace: "nowrap" }, children: "PDF \uB2E4\uC6B4\uB85C\uB4DC" })
5317
+ /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(PdfIcon, {}),
5318
+ /* @__PURE__ */ (0, import_jsx_runtime129.jsx)("span", { style: { whiteSpace: "nowrap" }, children: "PDF \uB2E4\uC6B4\uB85C\uB4DC" })
5245
5319
  ]
5246
5320
  }
5247
- ) : /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(
5321
+ ) : /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(
5248
5322
  Button,
5249
5323
  {
5250
5324
  asChild: Boolean(pdfHref),
@@ -5254,16 +5328,16 @@ function Header({
5254
5328
  title: pdfHref ? void 0 : "\uC0B0\uCD9C\uBB3C \uC5C6\uC74C",
5255
5329
  type: "button",
5256
5330
  variant: "outline",
5257
- children: pdfHref ? /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)("a", { href: pdfHref, rel: "noopener noreferrer", target: "_blank", children: [
5258
- /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(PdfIcon, {}),
5259
- /* @__PURE__ */ (0, import_jsx_runtime127.jsx)("span", { style: { whiteSpace: "nowrap" }, children: "PDF \uB2E4\uC6B4\uB85C\uB4DC" })
5260
- ] }) : /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)("span", { children: [
5261
- /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(PdfIcon, {}),
5262
- /* @__PURE__ */ (0, import_jsx_runtime127.jsx)("span", { style: { whiteSpace: "nowrap" }, children: "PDF \uB2E4\uC6B4\uB85C\uB4DC" })
5331
+ children: pdfHref ? /* @__PURE__ */ (0, import_jsx_runtime129.jsxs)("a", { href: pdfHref, rel: "noopener noreferrer", target: "_blank", children: [
5332
+ /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(PdfIcon, {}),
5333
+ /* @__PURE__ */ (0, import_jsx_runtime129.jsx)("span", { style: { whiteSpace: "nowrap" }, children: "PDF \uB2E4\uC6B4\uB85C\uB4DC" })
5334
+ ] }) : /* @__PURE__ */ (0, import_jsx_runtime129.jsxs)("span", { children: [
5335
+ /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(PdfIcon, {}),
5336
+ /* @__PURE__ */ (0, import_jsx_runtime129.jsx)("span", { style: { whiteSpace: "nowrap" }, children: "PDF \uB2E4\uC6B4\uB85C\uB4DC" })
5263
5337
  ] })
5264
5338
  }
5265
5339
  ),
5266
- hasScript ? /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(
5340
+ hasScript ? /* @__PURE__ */ (0, import_jsx_runtime129.jsxs)(
5267
5341
  Button,
5268
5342
  {
5269
5343
  color: "gray",
@@ -5274,8 +5348,8 @@ function Header({
5274
5348
  type: "button",
5275
5349
  variant: "outline",
5276
5350
  children: [
5277
- /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(VideoIcon3, {}),
5278
- /* @__PURE__ */ (0, import_jsx_runtime127.jsx)("span", { style: { whiteSpace: "nowrap" }, children: "\uC601\uC0C1" })
5351
+ /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(VideoIcon3, {}),
5352
+ /* @__PURE__ */ (0, import_jsx_runtime129.jsx)("span", { style: { whiteSpace: "nowrap" }, children: "\uC601\uC0C1" })
5279
5353
  ]
5280
5354
  }
5281
5355
  ) : null
@@ -5291,7 +5365,7 @@ function Header({
5291
5365
  var import_react70 = require("react");
5292
5366
 
5293
5367
  // src/app/roleplay/parts/script-transcript.tsx
5294
- var import_jsx_runtime128 = require("react/jsx-runtime");
5368
+ var import_jsx_runtime130 = require("react/jsx-runtime");
5295
5369
  function ScriptTranscript({
5296
5370
  lines,
5297
5371
  partnerName,
@@ -5301,11 +5375,11 @@ function ScriptTranscript({
5301
5375
  onSeek
5302
5376
  }) {
5303
5377
  const activeIndex = canSync ? lines.reduce((acc, line, i) => line.startMs <= currentMs ? i : acc, -1) : -1;
5304
- return /* @__PURE__ */ (0, import_jsx_runtime128.jsxs)(import_themes23.Flex, { direction: "column", gap: "2", style: { minWidth: 0 }, children: [
5305
- /* @__PURE__ */ (0, import_jsx_runtime128.jsxs)(import_themes7.Box, { children: [
5306
- /* @__PURE__ */ (0, import_jsx_runtime128.jsxs)(import_themes23.Flex, { align: "center", gap: "2", justify: "between", children: [
5307
- /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(Typo, { as: "span", variant: "body", weight: "bold", children: "\uB300\uD654 \uC2A4\uD06C\uB9BD\uD2B8" }),
5308
- /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(
5378
+ return /* @__PURE__ */ (0, import_jsx_runtime130.jsxs)(import_themes23.Flex, { direction: "column", gap: "2", style: { minWidth: 0 }, children: [
5379
+ /* @__PURE__ */ (0, import_jsx_runtime130.jsxs)(import_themes7.Box, { children: [
5380
+ /* @__PURE__ */ (0, import_jsx_runtime130.jsxs)(import_themes23.Flex, { align: "center", gap: "2", justify: "between", children: [
5381
+ /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(Typo, { as: "span", variant: "body", weight: "bold", children: "\uB300\uD654 \uC2A4\uD06C\uB9BD\uD2B8" }),
5382
+ /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(
5309
5383
  Typo,
5310
5384
  {
5311
5385
  as: "span",
@@ -5315,16 +5389,16 @@ function ScriptTranscript({
5315
5389
  }
5316
5390
  )
5317
5391
  ] }),
5318
- partnerName ? /* @__PURE__ */ (0, import_jsx_runtime128.jsxs)(Typo, { as: "p", color: "gray", mt: "1", variant: "body", children: [
5392
+ partnerName ? /* @__PURE__ */ (0, import_jsx_runtime130.jsxs)(Typo, { as: "p", color: "gray", mt: "1", variant: "body", children: [
5319
5393
  "\uC0C1\uB300 \xB7 ",
5320
5394
  partnerName
5321
5395
  ] }) : null,
5322
- speechShare ? /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(import_themes7.Box, { mt: "2", children: /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(SpeechShareBar, { share: speechShare }) }) : null
5396
+ speechShare ? /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(import_themes7.Box, { mt: "2", children: /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(SpeechShareBar, { share: speechShare }) }) : null
5323
5397
  ] }),
5324
- 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) => {
5398
+ 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) => {
5325
5399
  const isUser = line.speaker === "user";
5326
5400
  const isActive = i === activeIndex;
5327
- return /* @__PURE__ */ (0, import_jsx_runtime128.jsxs)(
5401
+ return /* @__PURE__ */ (0, import_jsx_runtime130.jsxs)(
5328
5402
  import_themes23.Flex,
5329
5403
  {
5330
5404
  align: "start",
@@ -5340,7 +5414,7 @@ function ScriptTranscript({
5340
5414
  background: isActive ? "var(--accent-a3)" : "transparent"
5341
5415
  },
5342
5416
  children: [
5343
- canSync ? /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(
5417
+ canSync ? /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(
5344
5418
  Typo,
5345
5419
  {
5346
5420
  as: "span",
@@ -5355,7 +5429,7 @@ function ScriptTranscript({
5355
5429
  children: formatTimestamp(line.startMs)
5356
5430
  }
5357
5431
  ) : null,
5358
- /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(
5432
+ /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(
5359
5433
  Typo,
5360
5434
  {
5361
5435
  as: "span",
@@ -5371,7 +5445,7 @@ function ScriptTranscript({
5371
5445
  children: isUser ? "\uB098" : "\uC0C1\uB300"
5372
5446
  }
5373
5447
  ),
5374
- /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(
5448
+ /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(
5375
5449
  Typo,
5376
5450
  {
5377
5451
  as: "span",
@@ -5394,7 +5468,7 @@ function ScriptTranscript({
5394
5468
  }
5395
5469
 
5396
5470
  // src/app/roleplay/parts/session-replay-dialog.tsx
5397
- var import_jsx_runtime129 = require("react/jsx-runtime");
5471
+ var import_jsx_runtime131 = require("react/jsx-runtime");
5398
5472
  function resolveUrl(raw, disp, resolver) {
5399
5473
  return __async(this, null, function* () {
5400
5474
  if (!raw) return void 0;
@@ -5454,14 +5528,14 @@ function SessionReplayDialog({
5454
5528
  setCurrentMs(el.currentTime * 1e3);
5455
5529
  }
5456
5530
  };
5457
- 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)(
5531
+ 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)(
5458
5532
  import_themes24.Grid,
5459
5533
  {
5460
5534
  columns: { initial: "1", md: "minmax(0, 1fr) minmax(0, 1.05fr)" },
5461
5535
  gap: "5",
5462
5536
  mt: "2",
5463
5537
  children: [
5464
- /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(import_themes7.Box, { children: /* @__PURE__ */ (0, import_jsx_runtime129.jsxs)(
5538
+ /* @__PURE__ */ (0, import_jsx_runtime131.jsx)(import_themes7.Box, { children: /* @__PURE__ */ (0, import_jsx_runtime131.jsxs)(
5465
5539
  Tabs.Root,
5466
5540
  {
5467
5541
  onValueChange: (v) => {
@@ -5469,11 +5543,11 @@ function SessionReplayDialog({
5469
5543
  },
5470
5544
  value: tab,
5471
5545
  children: [
5472
- /* @__PURE__ */ (0, import_jsx_runtime129.jsxs)(Tabs.List, { children: [
5473
- hasVideo ? /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(Tabs.Trigger, { value: "video", children: "\uC601\uC0C1" }) : null,
5474
- hasAudio ? /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(Tabs.Trigger, { value: "audio", children: "\uC624\uB514\uC624" }) : null
5546
+ /* @__PURE__ */ (0, import_jsx_runtime131.jsxs)(Tabs.List, { children: [
5547
+ hasVideo ? /* @__PURE__ */ (0, import_jsx_runtime131.jsx)(Tabs.Trigger, { value: "video", children: "\uC601\uC0C1" }) : null,
5548
+ hasAudio ? /* @__PURE__ */ (0, import_jsx_runtime131.jsx)(Tabs.Trigger, { value: "audio", children: "\uC624\uB514\uC624" }) : null
5475
5549
  ] }),
5476
- hasVideo ? /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(Tabs.Content, { value: "video", children: /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(
5550
+ hasVideo ? /* @__PURE__ */ (0, import_jsx_runtime131.jsx)(Tabs.Content, { value: "video", children: /* @__PURE__ */ (0, import_jsx_runtime131.jsx)(
5477
5551
  import_themes7.Box,
5478
5552
  {
5479
5553
  mt: "3",
@@ -5482,7 +5556,7 @@ function SessionReplayDialog({
5482
5556
  overflow: "hidden",
5483
5557
  background: "var(--gray-3)"
5484
5558
  },
5485
- children: /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(
5559
+ children: /* @__PURE__ */ (0, import_jsx_runtime131.jsx)(
5486
5560
  "video",
5487
5561
  {
5488
5562
  controls: true,
@@ -5498,7 +5572,7 @@ function SessionReplayDialog({
5498
5572
  )
5499
5573
  }
5500
5574
  ) }) : null,
5501
- 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)(
5575
+ 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)(
5502
5576
  "audio",
5503
5577
  {
5504
5578
  controls: true,
@@ -5515,7 +5589,7 @@ function SessionReplayDialog({
5515
5589
  ]
5516
5590
  }
5517
5591
  ) }),
5518
- /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(
5592
+ /* @__PURE__ */ (0, import_jsx_runtime131.jsx)(
5519
5593
  ScriptTranscript,
5520
5594
  {
5521
5595
  canSync,
@@ -5532,25 +5606,25 @@ function SessionReplayDialog({
5532
5606
  }
5533
5607
 
5534
5608
  // src/app/roleplay/rp-session-detail.tsx
5535
- var import_jsx_runtime130 = require("react/jsx-runtime");
5609
+ var import_jsx_runtime132 = require("react/jsx-runtime");
5536
5610
  function RpSessionDetailSkeleton() {
5537
- 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: [
5538
- /* @__PURE__ */ (0, import_jsx_runtime130.jsxs)(import_themes7.Box, { children: [
5539
- /* @__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" }) }),
5540
- /* @__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" }) }) })
5611
+ 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: [
5612
+ /* @__PURE__ */ (0, import_jsx_runtime132.jsxs)(import_themes7.Box, { children: [
5613
+ /* @__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" }) }),
5614
+ /* @__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" }) }) })
5541
5615
  ] }),
5542
- /* @__PURE__ */ (0, import_jsx_runtime130.jsxs)("section", { children: [
5543
- /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(import_themes41.Skeleton, { children: /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(Heading2, { size: "5", children: "\uC885\uD569 \uC810\uC218" }) }),
5544
- /* @__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" }) }) }) }) })
5616
+ /* @__PURE__ */ (0, import_jsx_runtime132.jsxs)("section", { children: [
5617
+ /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(import_themes41.Skeleton, { children: /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(Heading2, { size: "5", children: "\uC885\uD569 \uC810\uC218" }) }),
5618
+ /* @__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" }) }) }) }) })
5545
5619
  ] }),
5546
- /* @__PURE__ */ (0, import_jsx_runtime130.jsxs)("section", { children: [
5547
- /* @__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" }) }),
5548
- /* @__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)) }) })
5620
+ /* @__PURE__ */ (0, import_jsx_runtime132.jsxs)("section", { children: [
5621
+ /* @__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" }) }),
5622
+ /* @__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)) }) })
5549
5623
  ] })
5550
5624
  ] }) });
5551
5625
  }
5552
5626
  function AnalyzingState() {
5553
- return /* @__PURE__ */ (0, import_jsx_runtime130.jsxs)(
5627
+ return /* @__PURE__ */ (0, import_jsx_runtime132.jsxs)(
5554
5628
  import_themes23.Flex,
5555
5629
  {
5556
5630
  align: "center",
@@ -5564,9 +5638,9 @@ function AnalyzingState() {
5564
5638
  textAlign: "center"
5565
5639
  },
5566
5640
  children: [
5567
- /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(Heading2, { size: { initial: "4", md: "5" }, weight: "bold", children: "AI \uBD84\uC11D \uC911\uC785\uB2C8\uB2E4" }),
5568
- /* @__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." }) }),
5569
- /* @__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 }) })
5641
+ /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(Heading2, { size: { initial: "4", md: "5" }, weight: "bold", children: "AI \uBD84\uC11D \uC911\uC785\uB2C8\uB2E4" }),
5642
+ /* @__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." }) }),
5643
+ /* @__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 }) })
5570
5644
  ]
5571
5645
  }
5572
5646
  );
@@ -5592,11 +5666,11 @@ function RpSessionDetail({
5592
5666
  const hasScript = script !== null && script !== void 0;
5593
5667
  const isAnalyzing = detail.status === "analyzing";
5594
5668
  if (isLoading) {
5595
- return /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(RpSessionDetailSkeleton, {});
5669
+ return /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(RpSessionDetailSkeleton, {});
5596
5670
  }
5597
- return /* @__PURE__ */ (0, import_jsx_runtime130.jsxs)(import_themes7.Box, { py: "6", children: [
5598
- /* @__PURE__ */ (0, import_jsx_runtime130.jsxs)(import_themes23.Flex, { direction: "column", gap: { initial: "5", md: "7" }, children: [
5599
- /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(
5671
+ return /* @__PURE__ */ (0, import_jsx_runtime132.jsxs)(import_themes7.Box, { py: "6", children: [
5672
+ /* @__PURE__ */ (0, import_jsx_runtime132.jsxs)(import_themes23.Flex, { direction: "column", gap: { initial: "5", md: "7" }, children: [
5673
+ /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(
5600
5674
  Header,
5601
5675
  {
5602
5676
  detail,
@@ -5607,7 +5681,7 @@ function RpSessionDetail({
5607
5681
  onResolveMediaUrl
5608
5682
  }
5609
5683
  ),
5610
- isAnalyzing ? /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(AnalyzingState, {}) : /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(
5684
+ isAnalyzing ? /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(AnalyzingState, {}) : /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(
5611
5685
  Content9,
5612
5686
  {
5613
5687
  detail,
@@ -5618,7 +5692,7 @@ function RpSessionDetail({
5618
5692
  }
5619
5693
  )
5620
5694
  ] }),
5621
- /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(
5695
+ /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(
5622
5696
  SessionReplayDialog,
5623
5697
  {
5624
5698
  detail,